"MarlinReco"  1.16.0
tktkbank.h
1 // A header file which defines the basics of a tpc
2 
3 #ifndef Tk_Tk_Bank_h
4 #define Tk_Tk_Bank_h 1
5 
6 #include<vector>
7 #include <cfortran.h>
8 
9 
10 
11 
13 {
14 
15  public:
16  Tk_Tk_Bank() ;
17  ~Tk_Tk_Bank() ;
18 
19  void clear();
20  void add_tk(int,int,int,int,int,int,int,int,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float) ;
21 
22  void remove_tk(int) ;
23 
24  // int tkmktkcpp(int,int,int,int,int,int,int,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float,float) ;
25 
26  int tkmktkcpp(int,int,int,int,int,int,int,int,float,float,float,float,float,float,float,float,float,float,float,float,float,float *) ;
27 
28  void setMod_ID(int modid, int tk){tk_bank[tk].modid = modid ; } ;
29  void setSubdetbits(int subdetbits, int tk){tk_bank[tk].subdetbits = subdetbits ; } ;
30  void setMeasurement_code(int MesrCode, int tk){tk_bank[tk].measurement_code = MesrCode ; } ;
31  void setTrackType(int tracktype, int tk){tk_bank[tk].tracktype = tracktype ; } ;
32  void setNumTEs(int numtes, int tk){tk_bank[tk].numtes = numtes ; } ;
33  void setCharge(int Charge, int tk){tk_bank[tk].charge = Charge ; } ;
34  void setUnused(int unused, int tk){tk_bank[tk].unused = unused ; } ;
35  void setNdf(int ndf, int tk){tk_bank[tk].ndf = ndf ; } ;
36  void setChi2(float chi2, int tk){tk_bank[tk].chi2 = chi2 ; } ;
37  void setLength(float L, int tk){tk_bank[tk].length = L ; } ;
38  void setStartX(float xstart, int tk){tk_bank[tk].xstart = xstart ; } ;
39  void setStartY(float ystart, int tk){tk_bank[tk].ystart = ystart ; } ;
40  void setStartZ(float zstart, int tk){tk_bank[tk].zstart = zstart ; } ;
41  void setEndX(float xend, int tk){tk_bank[tk].xend = xend ; } ;
42  void setEndY(float yend, int tk){tk_bank[tk].yend = yend ; } ;
43  void setEndZ(float zend, int tk){tk_bank[tk].zend = zend ; } ;
44  void setCoord1_of_ref_point(float cord1, int tk){tk_bank[tk].coord1_of_ref_point = cord1 ; } ;
45  void setCoord2_of_ref_point(float cord2, int tk){tk_bank[tk].coord2_of_ref_point = cord2 ; } ;
46  void setCoord3_of_ref_point(float cord3, int tk){tk_bank[tk].coord3_of_ref_point = cord3 ; } ;
47  void setTheta(float theta, int tk){tk_bank[tk].theta = theta ; } ;
48  void setPhi(float phi, int tk){tk_bank[tk].phi = phi ; } ;
49  void setInvp(float invp, int tk){tk_bank[tk].invp = invp ; } ;
50  void setCovmatrix1(float cov1, int tk){tk_bank[tk].covmatrix1 = cov1 ; };
51  void setCovmatrix2(float cov2, int tk){tk_bank[tk].covmatrix2 = cov2 ; } ;
52  void setCovmatrix3(float cov3, int tk){tk_bank[tk].covmatrix3 = cov3 ; } ;
53  void setCovmatrix4(float cov4, int tk){tk_bank[tk].covmatrix4 = cov4 ; } ;
54  void setCovmatrix5(float cov5, int tk){tk_bank[tk].covmatrix5 = cov5 ; } ;
55  void setCovmatrix6(float cov6, int tk){tk_bank[tk].covmatrix6 = cov6 ; } ;
56  void setCovmatrix7(float cov7, int tk){tk_bank[tk].covmatrix7 = cov7 ; } ;
57  void setCovmatrix8(float cov8, int tk){tk_bank[tk].covmatrix8 = cov8 ; } ;
58  void setCovmatrix9(float cov9, int tk){tk_bank[tk].covmatrix9 = cov9 ; } ;
59  void setCovmatrix10(float cov10, int tk){tk_bank[tk].covmatrix10 = cov10 ; } ;
60  void setCovmatrix11(float cov11, int tk){tk_bank[tk].covmatrix11 = cov11 ; } ;
61  void setCovmatrix12(float cov12, int tk){tk_bank[tk].covmatrix12 = cov12 ; } ;
62  void setCovmatrix13(float cov13, int tk){tk_bank[tk].covmatrix13 = cov13 ; } ;
63  void setCovmatrix14(float cov14, int tk){tk_bank[tk].covmatrix14 = cov14 ; } ;
64  void setCovmatrix15(float cov15, int tk){tk_bank[tk].covmatrix15 = cov15 ; } ;
65 
66  void setPosOfFirstTEInTEList(int itkdat1, int tk){ itkdat_bank[tk].posOfFirstTEInTEList = itkdat1 ; } ;
67  void setNumOfTEs(int itkdat2, int tk){ itkdat_bank[tk].numOfTEs = itkdat2 ; } ;
68  void setTrackNo(int itkdat5, int tk){ itkdat_bank[tk].trackNo = itkdat5 ; } ;
69 
70  void addTE(int te, int tk){tk_bank[tk].telist.push_back(te) ; } ;
71 
72  int size(){return tk_bank.size() ; } ;
73 
74  int getMod_ID(int tk){return tk_bank[tk].modid ; } ;
75  int getSubdetbits(int tk){return tk_bank[tk].subdetbits ; } ;
76  int getMeasurement_code(int tk){return tk_bank[tk].measurement_code ; } ;
77  int getTrackType(int tk){return tk_bank[tk].tracktype ; } ;
78  int getNumTEs(int tk){return tk_bank[tk].numtes ; } ;
79  int getCharge(int tk){return tk_bank[tk].charge ; } ;
80  int getUnused(int tk){return tk_bank[tk].unused ; } ;
81  int getNdf(int tk){return tk_bank[tk].ndf ; } ;
82  float getChi2(int tk){return tk_bank[tk].chi2 ; } ;
83  float getLength(int tk){return tk_bank[tk].length ; } ;
84  float getStartX(int tk){return tk_bank[tk].xstart ; } ;
85  float getStartY(int tk){return tk_bank[tk].ystart ; } ;
86  float getStartZ(int tk){return tk_bank[tk].zstart ; } ;
87  float getEndX(int tk){return tk_bank[tk].xend ; } ;
88  float getEndY(int tk){return tk_bank[tk].yend ; } ;
89  float getEndZ(int tk){return tk_bank[tk].zend ; } ;
90  float getCoord1_of_ref_point(int tk){return tk_bank[tk].coord1_of_ref_point ; } ;
91  float getCoord2_of_ref_point(int tk){return tk_bank[tk].coord2_of_ref_point ; } ;
92  float getCoord3_of_ref_point(int tk){return tk_bank[tk].coord3_of_ref_point ; } ;
93  float getTheta(int tk){return tk_bank[tk].theta ; } ;
94  float getPhi(int tk){return tk_bank[tk].phi ; } ;
95  float getInvp(int tk){return tk_bank[tk].invp ; } ;
96  float getCovmatrix1(int tk){return tk_bank[tk].covmatrix1 ; } ;
97  float getCovmatrix2(int tk){return tk_bank[tk].covmatrix2 ; } ;
98  float getCovmatrix3(int tk){return tk_bank[tk].covmatrix3 ; } ;
99  float getCovmatrix4(int tk){return tk_bank[tk].covmatrix4 ; } ;
100  float getCovmatrix5(int tk){return tk_bank[tk].covmatrix5 ; } ;
101  float getCovmatrix6(int tk){return tk_bank[tk].covmatrix6 ; } ;
102  float getCovmatrix7(int tk){return tk_bank[tk].covmatrix7 ; } ;
103  float getCovmatrix8(int tk){return tk_bank[tk].covmatrix8 ; } ;
104  float getCovmatrix9(int tk){return tk_bank[tk].covmatrix9 ; } ;
105  float getCovmatrix10(int tk){return tk_bank[tk].covmatrix10 ; } ;
106  float getCovmatrix11(int tk){return tk_bank[tk].covmatrix11 ; } ;
107  float getCovmatrix12(int tk){return tk_bank[tk].covmatrix12 ; } ;
108  float getCovmatrix13(int tk){return tk_bank[tk].covmatrix13 ; } ;
109  float getCovmatrix14(int tk){return tk_bank[tk].covmatrix14 ; } ;
110  float getCovmatrix15(int tk){return tk_bank[tk].covmatrix15 ; } ;
111 
112  int getPosOfFirstTEInTEList( int tk){ return itkdat_bank[tk].posOfFirstTEInTEList ; } ;
113  int getNumOfTEs( int tk){ return itkdat_bank[tk].numOfTEs ; } ;
114  int getTrackNo( int tk){ return itkdat_bank[tk].trackNo ; } ;
115 
116  const std::vector<int> * getTElist(int tk){return &tk_bank[tk].telist ; } ;
117 
118  private:
119 
120 struct tk_tk
121 {
122  int modid ;
123  int subdetbits ;
124  int measurement_code ;
125  int tracktype ;
126  int numtes ;
127  int charge ;
128  int unused ;
129  int ndf ;
130  float chi2 ;
131  float length ;
132  float xstart ;
133  float ystart ;
134  float zstart ;
135  float xend ;
136  float yend ;
137  float zend ;
138  float coord1_of_ref_point ;
139  float coord2_of_ref_point ;
140  float coord3_of_ref_point ;
141  float theta ;
142  float phi ;
143  float invp ;
144  float covmatrix1 ;
145  float covmatrix2 ;
146  float covmatrix3 ;
147  float covmatrix4 ;
148  float covmatrix5 ;
149  float covmatrix6 ;
150  float covmatrix7 ;
151  float covmatrix8 ;
152  float covmatrix9 ;
153  float covmatrix10 ;
154  float covmatrix11 ;
155  float covmatrix12 ;
156  float covmatrix13 ;
157  float covmatrix14 ;
158  float covmatrix15 ;
159 
160  std::vector <int> telist ;
161 
162 } ;
163 
164  std::vector <tk_tk> tk_bank ;
165 
166  // documentation of the ITKDAT from BRAHMS
167 /* * --- additional information. first index: */
168 /* * 1 (integer) position of first associated TE in TE list (see below) */
169 /* * 2 (integer) number of TEs */
170 /* * 5 (integer) track no. (positive if 95% of the hits belong to */
171 /* * same track, negative if 75%, zero below.) */
172 
173 struct tk_itkdat
174 {
175  int posOfFirstTEInTEList ;
176  int numOfTEs ;
177  int trackNo ;
178 } ;
179 
180  std::vector <tk_itkdat> itkdat_bank ;
181 
182 } ;
183 
184 // Global pointer to the Tk_Tk_Bank structure which is defined in tktkbank.cc
185 extern Tk_Tk_Bank * TkTkBank ;
186 
187 
188 #endif
Definition: tktkbank.h:12