MarlinTPC  1.2.0
libgem.h
1 //
2 // libgem.h: Header file for libgem.o:
3 // Library with functions for parametrized charge transfer
4 // (single GEM coefficients + Effective Gain and Ion Feedback
5 // Author: Sven Lotze
6 
7 #ifndef LIBGEM_H
8  #define LIBGEM_H
9 
10 
11 // Chamber Parameters
12 enum parameters { DRIFT, GEM1, TRANS1, GEM2, TRANS2, GEM3, IND };
13 
14 
15 
16 //
17 // Attributes of each single GEM
18 //
19 
20 
21 // Calculate Electric field in GEM hole from GEM voltage
22 double holefield( double gemvoltage, double upperfield, double lowerfield );
23 
24 // Calculate gain of a GEM
25 double gain( double gemvoltage, double upperfield, double lowerfield );
26 
27 // Calculate collection efficiency of a GEM (differentiating ions/e-)
28 double ecoll( double field, double gemvoltage );
29 
30 double Icoll( double field, double gemvoltage );
31 
32 // Calculate extraction efficiency of a GEM (differentiating ions/e-)
33 double eextr( double field, double gemvoltage );
34 
35 double Iextr( double field, double gemvoltage );
36 
37 // Calculate secondary extraction efficiency (for ions) of a GEM
38 double sextr( double fromfield, double gemvoltage, double tofield );
39 
40 // Calculate parallel plate multiplication for other fields (2mm)
41 double pgain( double field );
42 
43 
44 //
45 // Attributes of whole multi-GEM-structure
46 //
47 
48 // Calculate effective gain
49 double effgain( double *params );
50 
51 // Calculate effective ion feedback (see thesis Sobloher p. 80)
52 double ionf( double *params );
53 
54 
55 // Read charge transfer parameters from file
56 // (instead of hardcoding as in previous versions)
57 
58 int readpar( const char *filename );
59 
60 
61 
62 #endif