/[PAMELA software]/DarthVader/TrackerLevel2/inc/TrkStruct.h
ViewVC logotype

Contents of /DarthVader/TrackerLevel2/inc/TrkStruct.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5 - (show annotations) (download)
Tue Sep 5 12:52:20 2006 UTC (18 years, 3 months ago) by pam-fi
Branch: MAIN
CVS Tags: v2r00BETA
Changes since 1.4: +26 -12 lines
File MIME type: text/plain
implemented class TrkLevel1

1 /**
2 * \file TrkStruct.h
3 * \author Elena Vannuccini
4 * \date
5 */
6 #ifndef trkstruct_h
7 #define trkstruct_h
8
9 #define NTRKMAX 10
10 #define NSINGMAX 100
11
12 #define NCLMAX_VIEW 200
13 #define NCLSTR 19
14 #define NCLMAX (NCLMAX_VIEW*12)
15 #define NCLBUFF (NCLMAX*NCLSTR)
16
17 #include <CalibTrk1Event.h>
18 #include <CalibTrk2Event.h>
19
20 #include <TString.h>
21 #include <TFile.h>
22 #include <TTree.h>
23
24 #include <fstream>
25 #include <iostream>
26 /**
27 * \brief Struct to pass calibration parameters to F77 routines
28 */
29 struct cTrkCalib {
30
31 float pedestal[128][24][12];
32 float pedestal_t[128][24][12];
33 float sigma[128][24][12];
34 float sigma_t[128][24][12];
35 int bad[128][24][12];
36
37 void FillACalibFrom(TFile* , Int_t , Int_t );
38 void FillFCalibFrom(TFile* , Int_t , Int_t );
39 void FillTCalibFrom(TFile* , Int_t , Int_t );
40 void FillTCalibFrom(TString);
41
42 };
43 // ==================================================================
44 /**
45 * \brief Struct to pass tracker LEVEL0 data to F77 routines
46 */
47 struct cTrkLevel0 {
48 int DAQmode[12];
49 int DSPnumber[12];
50 int DATAlength[12];
51 int eventn[12];
52 int nclust[12];
53 int cutc[12];
54 int cutcl[12];
55 int addrcluster[3][12];
56 int signcluster[3][12];
57 int fc[12];
58 int compressiontime[12];
59 int fl5[12];
60 int fl4[12];
61 int fl3[12];
62 int fl2[12];
63 int fl1[12];
64 int fl6[12];
65 int checksum[12];
66 int TOTDATAlength;
67 int datatracker[49152];
68 int pnum[12];
69 int cmdnum[12];
70 int bid[12];
71 int alarm[12];
72 int aswr[12];
73 int good0;
74 int crc[12];
75 };
76 // ==================================================================
77 /**
78 * \brief Struct to pass tracker LEVEL1 data to F77 routines
79 */
80 struct cTrkLevel1 {
81 int good1;
82 int nclstr1;
83 int view[NCLMAX];
84 int ladder[NCLMAX];
85 int maxs[NCLMAX];
86 int mult[NCLMAX];
87 float dedx[NCLMAX];
88 int indstart[NCLMAX];
89 int indmax[NCLMAX];
90 int totCLlength;
91 float clsignal[NCLBUFF];
92 float clsigma[NCLBUFF];
93 int cladc[NCLBUFF];
94 int clbad[NCLBUFF];
95 float cnev[24][12];
96 int cnnev[24][12];
97 int fshower[12];
98 int whichtrack[NCLMAX];
99 };
100 // ==================================================================
101 /**
102 * \brief Struct to pass tracker LEVEL2 data to F77 routines
103 */
104 struct cTrkLevel2 {
105 int good2;
106 int crc[12];
107 // ----------------------------
108 int nclsx;
109 int planex[NSINGMAX];
110 float xs[NSINGMAX][2];
111 float signlxs[NSINGMAX];
112 int clsx[NSINGMAX];
113 // ----------------------------
114 int nclsy;
115 int planey[NSINGMAX];
116 float ys[NSINGMAX][2];
117 float signlys[NSINGMAX];
118 int clsy[NSINGMAX];
119 // ----------------------------
120 int ntrk;
121 int image[NTRKMAX];
122 float xm_nt[NTRKMAX][6];
123 float ym_nt[NTRKMAX][6];
124 float zm_nt[NTRKMAX][6];
125 float resx_nt[NTRKMAX][6];
126 float resy_nt[NTRKMAX][6];
127 float al_nt[NTRKMAX][5];
128 float coval[NTRKMAX][5][5];
129 float chi2_nt[NTRKMAX];
130 int xgood_nt[NTRKMAX][6];
131 int ygood_nt[NTRKMAX][6];
132 float xv_nt[NTRKMAX][6];
133 float yv_nt[NTRKMAX][6];
134 float zv_nt[NTRKMAX][6];
135 float axv_nt[NTRKMAX][6];
136 float ayv_nt[NTRKMAX][6];
137 float dedx_x[NTRKMAX][6];
138 float dedx_y[NTRKMAX][6];
139 int cltrx[NTRKMAX][6];
140 int cltry[NTRKMAX][6];
141 // float bdl[NTRKMAX];
142
143 void InitcTrkLevel2(){
144
145 good2 = 0;
146 for(Int_t i=0; i<12 ; i++)
147 crc[i] = 0;
148 // ----------------------------
149 nclsx = 0;
150 nclsy = 0;
151 for(Int_t i=0; i<NSINGMAX ; i++){
152 planex[i] = 0;
153 xs[i][0] = 0;
154 xs[i][1] = 0;
155 signlxs[i] = 0;
156 planey[i] = 0;
157 ys[i][0] = 0;
158 ys[i][1] = 0;
159 signlys[i] = 0;
160 }
161 // ----------------------------
162 ntrk =0 ;
163
164 for(Int_t i=0; i<NTRKMAX ; i++){
165 image[i] = 0;
166 chi2_nt[i] = 0;
167 // bdl[i] = 0;
168
169 for(Int_t ii=0; ii<5 ; ii++){
170 al_nt[i][ii] = 0;
171 for(Int_t iii=0; iii<5 ; iii++)
172 coval[i][ii][iii] = 0;
173 }
174
175 for(Int_t ii=0; ii<6 ; ii++){
176 xm_nt[i][ii] = 0;
177 ym_nt[i][ii] = 0;
178 zm_nt[i][ii] = 0;
179 resx_nt[i][ii] = 0;
180 resy_nt[i][ii] = 0;
181 xgood_nt[i][ii] = 0;
182 ygood_nt[i][ii] = 0;
183 xv_nt[i][ii] = 0;
184 yv_nt[i][ii] = 0;
185 zv_nt[i][ii] = 0;
186 axv_nt[i][ii] = 0;
187 ayv_nt[i][ii] = 0;
188 dedx_x[i][ii] = 0;
189 dedx_y[i][ii] = 0;
190 }
191 }
192 }
193
194 };
195 // ==================================================================
196 /**
197 * \brief Struct to pass calibration/parameter file paths to F77 routines
198 */
199 struct cPath {
200 char path[80];
201 int pathlen;
202 int error;
203 /**
204 * Fill the struct variables from a TString object
205 */
206 void FillWith(TString s){
207 pathlen = s.Length();
208 const char *pc = s.Data();
209 for(Int_t i=0; i<=pathlen; i++) path[i] = *pc++;
210 };
211
212
213 };
214
215 // ==================================================================
216 /**
217 * \brief Struct to pass magnetic-field file paths to F77 routines
218 */
219 struct cBPath {
220 char b_path[80];
221 int b_pathlen;
222 int b_error;
223 int b_loaded;
224 /**
225 * Fill the struct variables from a TString object and set
226 * the load flag to FALSE.
227 */
228 void FillWith(TString s){
229 b_loaded = 0;
230 b_pathlen = s.Length();
231 const char *pc = s.Data();
232 for(Int_t i=0; i<=b_pathlen; i++) b_path[i] = *pc++;
233 };
234 /**
235 * Fill the struct variables from a TString object
236 */
237 int BIsLoaded(){ return b_loaded; };
238
239 };
240
241 // ==================================================================
242 /**
243 * \brief Struct to set debug mode in F77 routines
244 */
245 struct cDbg {
246 int debug;
247 int verbose;
248 int warning;
249 // bool debug;
250 // bool verbose;
251 void SetNone() {debug=0; verbose=0; warning=0;};
252 void SetWarning(){debug=0; verbose=0; warning=1;};
253 void SetVerbose(){debug=0; verbose=1; warning=1;};
254 void SetDebug() {debug=1; verbose=1; warning=1;};
255 };
256
257 extern "C" {
258 extern struct cTrkCalib pedsigbad_;
259 extern struct cTrkLevel0 level0event_;
260 extern struct cTrkLevel1 level1event_;
261 extern struct cTrkLevel2 level2event_;
262 extern struct cPath path_;
263 extern struct cBPath bpath_;
264 extern struct cDbg dbg_;
265 void fillpedsigfromdefault_();
266 int readmipparam_();
267 int readchargeparam_();
268 int readvkmask_();
269 int readalignparam_();
270 int readetaparam_();
271 void reductionflight_(int*);
272 int analysisflight_();
273 }
274
275
276 #endif
277

  ViewVC Help
Powered by ViewVC 1.1.23