47 {
48
49 MsgStream log(
msgSvc(),
"TreeDedxCalibDataCnv");
50 log<<MSG::DEBUG<<"SetProperty"<<endreq;
51
55
56
57
58
59
60
61
62
63
64
65
66 TBufferFile *buf1 = new TBufferFile(TBuffer::kRead);
67 TBufferFile *buf2 = new TBufferFile(TBuffer::kRead);
68 TBufferFile *buf3 = new TBufferFile(TBuffer::kRead);
69 TBufferFile *buf4 = new TBufferFile(TBuffer::kRead);
70 TBufferFile *buf5 = new TBufferFile(TBuffer::kRead);
71 TBufferFile *buf6 = new TBufferFile(TBuffer::kRead);
72 TBufferFile *buf7 = new TBufferFile(TBuffer::kRead);
73 TBufferFile *buf8 = new TBufferFile(TBuffer::kRead);
74 TBufferFile *buf9 = new TBufferFile(TBuffer::kRead);
75
76 buf1->SetBuffer((*records)["DriftDist"],512000,kFALSE);
77 buf2->SetBuffer((*records)["EntranceAng"],512000,kFALSE);
78 buf3->SetBuffer((*records)["MeanGain"],512000,kFALSE);
79 buf4->SetBuffer((*records)["GasGain"],512000,kFALSE);
80 buf5->SetBuffer((*records)["LayerGain"],512000,kFALSE);
81 buf6->SetBuffer((*records)["Resolution"],512000,kFALSE);
82 buf7->SetBuffer((*records)["WireGain"],512000,kFALSE);
83 buf8->SetBuffer((*records)["ZDep"],512000,kFALSE);
84 buf9->SetBuffer((*records)["RunGain"],1024000,kFALSE);
85
86
87
88 std::cout<<" SftVer is "<<(*records)["SftVer"];
89 std::cout<<" CalVerSft is "<<(*records)["CalParVer"];
90 std::cout<<" File name is "<<(*records)["FileName"]<<std::endl;
91
92
93
94 TTree* ddgtree = new TTree();
95 ddgtree->Streamer(*buf1);
96
97 TTree* entratree = new TTree();
98 entratree->Streamer(*buf2);
99
100 TTree* gaintree= new TTree();
101 gaintree->Streamer(*buf3);
102
103 TTree* ggstree = new TTree();
104 ggstree->Streamer(*buf4);
105
106 TTree* layergtree = new TTree();
107 layergtree->Streamer(*buf5);
108
109 TTree* resoltree = new TTree();
110 resoltree->Streamer(*buf6);
111
112 TTree* wiregtree = new TTree();
113 wiregtree->Streamer(*buf7);
114
115 TTree* zdeptree = new TTree();
116 zdeptree->Streamer(*buf8);
117
118 TTree *rungtree = new TTree();
119 rungtree->Streamer(*buf9);
120
121 double rungain;
122 double runmean;
123 int runno, evtfrom, evtto;
124 double runresol;
125
130 if(rungtree->GetBranchStatus("evtfrom")){
133 }
134 else{
135 evtfrom = 0;
136 evtto = 1000000000;
137 }
138 int N = rungtree -> GetEntries();
139 tmpObject -> setrunNO(N);
140 for(int i=0; i<N; i++){
142 tmpObject -> setrung(rungain,0);
143 tmpObject -> setrung(runmean,1);
144 tmpObject -> setrung(runno,2);
145 tmpObject -> setrung(runresol,3);
146 tmpObject -> setrung(evtfrom,4);
147 tmpObject -> setrung(evtto,5);
148 }
149
150
151 double ddg0[43];
152 double ddg1[43];
153 double ddg2[43];
154 double ddg3[43];
155 double id_doca[1600];
156 double iner_chi[1600];
157 double iner_gain[1600];
158 double iner_hits[1600];
159 double ip_eangle[1600];
160 double out_chi[1600];
161 double out_gain[1600];
162 double out_hits[1600];
163
168 TBranch *bbb = ddgtree->FindBranch("Id_doca");
169 if(bbb){
178 }
179
181 for(int i=0; i<43; i++){
182
183 tmpObject -> setddg(ddg0[i],0,i);
184 tmpObject -> setddg(ddg1[i],1,i);
185 tmpObject -> setddg(ddg2[i],2,i);
186 tmpObject -> setddg(ddg3[i],3,i);
187 }
188
189 for(int i=0; i<1600; i++){
190 if(!bbb){
191 id_doca[i]=0;
192 iner_chi[i]=0;
193 iner_gain[i]=0;
194 iner_hits[i]=0;
195 ip_eangle[i]=0;
196 out_chi[i]=0;
197 out_gain[i]=0;
198 out_hits[i]=0;
199 }
200 tmpObject -> set_id_doca(id_doca[i],i);
201 tmpObject -> set_iner_chi(iner_chi[i],i);
202 tmpObject -> set_iner_gain(iner_gain[i],i);
203 tmpObject -> set_iner_hits(iner_hits[i],i);
204 tmpObject -> set_ip_eangle(ip_eangle[i],i);
205 tmpObject -> set_out_chi(out_chi[i],i);
206 tmpObject -> set_out_gain(out_gain[i],i);
207 tmpObject -> set_out_hits(out_hits[i],i);
208 }
209
210
211 double entra0[43];
212 double entra1[43];
213 double entra2[43];
214 double entra3[43];
215 double engle[100];
216 int engle_no;
224 for(int i=0; i<43; i++){
225 tmpObject -> setenta(entra0[i],0,i);
226 tmpObject -> setenta(entra1[i],1,i);
227 tmpObject -> setenta(entra2[i],2,i);
228 tmpObject -> setenta(entra3[i],3,i);
229 }
230
231 tmpObject -> set_enanglesize(engle_no);
232 for(int i=0; i<engle_no; i++){
233 tmpObject -> set_enangle(engle[i],i);
234 }
235
236
237
238
239
240 double ggs0[43];
241 double ggs1[43];
242 double ggs2[43];
243 double ggs3[43];
244 double gcostheta[80];
245 int hadron_entry;
246 double hadron[20];
253 if(bbb){
256 for(int i=0; i<43;i++){
257 tmpObject -> setggs(ggs0[i],0,i);
258 tmpObject -> setggs(ggs1[i],1,i);
259 tmpObject -> setggs(ggs2[i],2,i);
260 tmpObject -> setggs(ggs3[i],3,i);
261 }
262 for(int i=0; i<80;i++){
263 if(!bbb) gcostheta[i]=0;
265 }
266 if(hadron_entry>20){
267 log<<MSG::FATAL<<"hadron entry is larger than 20, larger than designed"<<endreq;
268 return StatusCode::FAILURE;
269 }
271 for(int i=0;i<hadron_entry;i++){
273 }
274
275
276
277 double zdep0[43];
278 double zdep1[43];
279 double zdep2[43];
280 double zdep3[43];
286
287 for(int i=0; i<43;i++){
288 tmpObject -> setzdep(zdep0[i],0,i);
289 tmpObject -> setzdep(zdep1[i],1,i);
290 tmpObject -> setzdep(zdep2[i],2,i);
291 tmpObject -> setzdep(zdep3[i],3,i);
292 }
293
294 double gain;
295 double gt0[35],gdedx[35];
297 if(bbb){
301 tmpObject -> setgain(gain);
302 for(int i=0; i<35;i++){
303 if(!bbb){
304 gt0[i]=0;
305 gdedx[i]=0;
306 }
307 tmpObject->
set_t0(gt0[i],i);
309 }
310
311
312 double resol;
315 tmpObject -> setresol(resol);
316
317
318 double wireg[6796];
321 for(int i=0;i<6796;i++){
322 if(wireg[i]>5||wireg[i]<0.2) wireg[i]=0;
323 tmpObject -> setwireg(wireg[i],i);
324 }
325
326
327 double layerg[43];
330
331 for(int i=0;i<43;i++){
332 tmpObject -> setlayerg(layerg[i],i);
333 }
334
335
336
337
338
339
340 refpObject=tmpObject;
341
342 delete ddgtree;
343 delete entratree;
344 delete gaintree;
345 delete ggstree;
346 delete layergtree;
347 delete resoltree;
348 delete wiregtree;
349 delete zdeptree;
350 delete rungtree;
351
352 return StatusCode::SUCCESS;
353
354
355}
data SetBranchAddress("time",&time)
void set_costheta(const double aa, int i)
void set_hadronNo(int no)
void set_hadron(const double aa, int i)
void set_t0(const double aa, int i)
void set_dedx(const double aa, int i)
virtual DatabaseRecord * pp()