CGEM BOSS 6.6.5.h
BESIII Offline Software System
Loading...
Searching...
No Matches
MrpcDBSTrack.cxx
Go to the documentation of this file.
2#include "Identifier/TofID.h"
4// #include "TofQCorrSvc/ITofQCorrSvc.h"
5// #include "TofQElecSvc/ITofQElecSvc.h"
9#include "TofSim/BesTofDigitizerEcV4_dbs.hh" //For the single end readout
10#include "G4LogicalVolume.hh"
11#include "globals.hh"
12#include <G4String.hh>
13
14
16
17
19// extern ITofQCorrSvc* tofQCorrSvc;
20// extern ITofQElecSvc* tofQElecSvc;
21
23 m_trackId = -1;
24 m_tofTrackId = -1;
25 m_id1 = -99;
26 m_id2 = -99;
27 m_hitCase = NoHit;
28 m_momentum = -99.0;
29 m_path = 0.0;
30 m_path1 = 0.0;
31 m_path2 = 0.0;
32 m_zrhit1 = 9999.0;
33 m_errzr1 = 9999.0;
34 m_zrhit2 = 9999.0;
35 m_errzr2 = 9999.0;
36 for( unsigned int i=0; i<5; i++ ) {
37 m_kal[i] = -1;
38 m_zr1[i] = 9999.0;
39 m_zr2[i] = 9999.0;
40 m_ezr1[i] = 9999.0;
41 m_ezr2[i] = 9999.0;
42 }
43 if( m_tofData1.size()>0 ) {
44 std::vector<TofData*>::iterator iter1 = m_tofData1.begin();
45 m_tofData1.clear();
46 }
47 if( m_tofData2.size()>0 ) {
48 std::vector<TofData*>::iterator iter2 = m_tofData2.begin();
49 m_tofData2.clear();
50 }
51 if( m_tofData3.size()>0 ) {
52 std::vector<TofData*>::iterator iter3 = m_tofData3.begin();
53 m_tofData3.clear();
54 }
55 if( m_tofData4.size()>0 ) {
56 std::vector<TofData*>::iterator iter4 = m_tofData4.begin();
57 m_tofData4.clear();
58 }
59 m_quality1 = 0;
60 m_quality2 = 0;
61 m_quality = 10;
62
63 m_tofId1 = -99;
64 m_tofId2 = -99;
65
66 m_ph11 = -999.0;
67 m_ph12 = -999.0;
68 m_ph21 = -999.0;
69 m_ph22 = -999.0;
70 m_ph1 = -999.0;
71 m_ph2 = -999.0;
72 m_ph = -999.0;
73
74 for( unsigned int i=0; i<5; i++ ) {
75 m_tof11[i] = 0.0;
76 m_tof12[i] = 0.0;
77 m_tof21[i] = 0.0;
78 m_tof22[i] = 0.0;
79 m_tof1[i] = 0.0;
80 m_tof2[i] = 0.0;
81 m_tof[i] = 0.0;
82 m_sigma_mrpc[i]=-999.0;
83 }
84
85 m_sigma11 = -999.0;
86 m_sigma12 = -999.0;
87 m_sigma21 = -999.0;
88 m_sigma22 = -999.0;
89 m_sigma1 = -999.0;
90 m_sigma2 = -999.0;
91 m_sigma = -999.0;
92
93 m_qch1 = -999.0;
94 m_qch2 = -999.0;
95 m_qch3 = -999.0;
96 m_qch4 = -999.0;
97 m_adc1 = -999.0;
98 m_adc2 = -999.0;
99 m_adc3 = -999.0;
100 m_adc4 = -999.0;
101 m_tdc1 = -999.0;
102 m_tdc2 = -999.0;
103 m_tdc3 = -999.0;
104 m_tdc4 = -999.0;
105
106 for( unsigned int i=0; i<5; i++ ) {
107 m_texpInner[i] = -999.0;
108 m_texpOuter[i] = -999.0;
109 m_texp[i] = -999.0;
110 }
111
112 m_ztdc1 = -999.0;
113 m_ztdc2 = -999.0;
114 m_zadc1 = -999.0;
115 m_zadc2 = -999.0;
116
117 m_estime = -999.0;
118 m_tdiff1 = -999.0;
119 m_tdiff2 = -999.0;
120
121
122 m_corresponding_time=-999.0;
123 t_trans_with_extrap=false;
124 t_trans_with_dbs=false;
125
126 m_flag = 0;
127
128 m_partID=-999;
129 m_stripidentifier=-999;;
130 m_time_1=-999;;
131 m_time_2=-999;;
132 m_trans_time=-999;;
133 m_r_ext=-999;;
134 m_phi_ext=-999;
135 m_simulated_transtime=-999;;
136 m_mrpc_dbs=-999;;
137 m_mrpc_extrap=-999;;
138 m_mrpc_ave=-999;;
139
140
141
142
143
144 return;
145}
146
147
149 if( m_tofData1.size()>0 ) {
150 std::vector<TofData*>::iterator iter1 = m_tofData1.begin();
151 m_tofData1.clear();
152 }
153 if( m_tofData2.size()>0 ) {
154 std::vector<TofData*>::iterator iter2 = m_tofData2.begin();
155 m_tofData2.clear();
156 }
157 if( m_tofData3.size()>0 ) {
158 std::vector<TofData*>::iterator iter3 = m_tofData3.begin();
159 m_tofData3.clear();
160 }
161 if( m_tofData4.size()>0 ) {
162 std::vector<TofData*>::iterator iter4 = m_tofData4.begin();
163 m_tofData4.clear();
164 }
165 return;
166}
167
168//------- setExtTrack ----------------------------------------------
169// get information from RecExtTrackCol
170// tofId1(), tofId2(), hitCase(),
171// p(), path1(), path2(), zrhit1(), zrhit2(), errz1(), errz2()
172// quality() = 3 ( no hit )
173//
174void MrpcDBSTrack::setExtTrack( RecExtTrack* extTrack, int kal[5], double t0, int t0Stat ) {
175
176 m_estime = t0;
177 m_t0Stat = t0Stat;
178
179 int tofId1 = extTrack->tof1VolumeNumber();
180 int tofId2 = extTrack->tof2VolumeNumber();
181
182 G4String tof1volumename = extTrack->tof1VolumeName();
183 G4String tof2volumename = extTrack->tof2VolumeName();
184
185
186 m_barrel = 7;
187
188 if(tof1volumename == "logical_sensitive_detector_east_1")
189 {
190 m_id1 = tofId1;
191
192 if(m_id1%25==0)
193 {
194 m_barrel = 7;
195 m_hitCase = NoHit;
196 }
197 else
198 {
199 m_barrel = 4;
200 m_hitCase = eastendcap_1;
201 }
202
203 // std::cout << "MrpcDBSTrack m_barrel | m_id1 | m_hitCase " << m_barrel << " | " << m_id1 << " | " << m_hitCase << std::endl;
204
205 }
206 else if(tof1volumename == "logical_sensitive_detector_east_2")
207 {
208 m_id1 = tofId1;
209
210 if(m_id1%25==0)
211 {
212 m_barrel = 7;
213 m_hitCase = NoHit;
214 }
215 else
216 {
217 m_barrel = 3;
218 m_hitCase = eastendcap_2;
219 }
220 //std::cout << "MrpcDBSTrack m_barrel | m_id1 | m_hitCase " << m_barrel << " | " << m_id1 << " | " << m_hitCase << std::endl;
221 }
222 else if(tof1volumename == "logical_sensitive_detector_west_1")
223 {
224 m_id1 = tofId1;
225
226 if(m_id1%25==0)
227 {
228 m_barrel = 7;
229 m_hitCase = NoHit;
230 }
231 else
232 {
233 m_barrel =5 ;
234 m_hitCase = westendcap_1;
235 }
236 //std::cout << "MrpcDBSTrack m_barrel | m_id1 | m_hitCase " << m_barrel << " | " << m_id1 << " | " << m_hitCase << std::endl;
237 }
238 else if(tof1volumename == "logical_sensitive_detector_west_2")
239 {
240 m_id1 = tofId1;
241 if(m_id1%25==0)
242 {
243 m_barrel = 7;
244 m_hitCase = NoHit;
245 }
246 else
247 {
248 m_barrel =6 ;
249 m_hitCase = westendcap_2;
250 }
251 //std::cout << "MrpcDBSTrack m_barrel | m_id1 | m_hitCase " << m_barrel << " | " << m_id1 << " | " << m_hitCase << std::endl;
252 }
253 else if( tofId1>=0 && tofId1<=87 && ( tof1volumename.contains("ScinBr") || tof1volumename.contains("ScinEc") || tof2volumename.contains("ScinBr") || tof2volumename.contains("ScinEc") ))
254 {
255 m_id1 = tofId1;
256 m_barrel = 1;
257 m_hitCase = InnerLayer;
258 //std::cout << "MrpcDBSTrack 0<i<87 m_barrel | m_id1 | m_hitCase " << m_barrel << " | " << m_id1 << " | " << m_hitCase << std::endl;
259 }
260 else if( tofId1>=176 && tofId1<=223 && ( tof1volumename.contains("ScinBr") || tof1volumename.contains("ScinEc") || tof2volumename.contains("ScinBr") || tof2volumename.contains("ScinEc" ) ))
261 {
262 m_id1 = tofId1 - 176 + 48;
263 m_barrel = 2;
264 m_hitCase = WestEndcap;
265
266 //std::cout << "MrpcDBSTrack setExTrck 176<i<223 m_barrel | m_id5B1 | m_hitCase " << m_barrel << " | " << m_id1 << " | " << m_hitCase << std::endl;
267 }
268 else if( tofId1>=224 && tofId1<=271 && ( tof1volumename.contains("ScinBr") || tof1volumename.contains("ScinEc") || tof2volumename.contains("ScinBr") || tof2volumename.contains("ScinEc") )) {
269 m_id1 = tofId1 - 176 - 48;
270 m_barrel = 0;
271 m_hitCase = EastEndcap;
272 //std::cout << "MrpcDBSTrack setExTrck 224<i<271 m_barrel | m_id1 | m_hitCase " << m_barrel << " | " << m_id1 << " | " << m_hitCase << std::endl;
273 }
274 else {
275 m_barrel = 7;
276 m_hitCase = NoHit;
277 //std::cout << "MrpcDBSTrack nohit m_barrel | m_id1 | m_hitCase " << m_barrel << " | " << m_id1 << " | " << m_hitCase << std::endl;
278 }
279
280
281
282
283 if( tofId2>=88 && tofId2<=175 && ( tof1volumename.contains("ScinBr") || tof1volumename.contains("ScinEc") || tof2volumename.contains("ScinBr") || tof2volumename.contains("ScinEc") )) {
284 m_id2 = tofId2;
285 m_barrel = 1;
286 if( m_hitCase == InnerLayer ) {
287 m_hitCase = DoubleLayer;
288 }
289 else if( m_hitCase==NoHit ) {
290 m_hitCase = OuterLayer;
291 }
292 //std::cout << "MrpcDBSTrack 88<i<175 m_barrel | m_id1 | m_hitCase " << m_barrel << " | " << m_id1 << " | " << m_hitCase << std::endl;
293 }
294
295
296 m_trackId = extTrack->trackId();
297
298 m_momentum = extTrack->tof1Momentum().r();
299 if( m_hitCase == InnerLayer || m_hitCase == DoubleLayer ) {
300 for( unsigned int i=0; i<5; i++ ) {
301 m_texpInner[i] = extTrack->tof1(i);
302 // std::cout << "MrpcDBSTrack setExtTrack - BR: m_texpInner[" << i<< "] " << m_texpInner[i] << std::endl;
303 }
304 m_path1 = extTrack->tof1Path();
305 m_zrhit1 = extTrack->tof1Position().z();
306 // std::cout << "MrpcDBSTrack setExtTrack - BR: m_zrhit1 extTrack->tof1Position().rho() " << m_zrhit1 << std::endl;
307 m_errzr1 = extTrack->tof1PosSigmaAlongZ();
308 m_theta1 = extTrack->tof1Momentum().rho()/extTrack->tof1Momentum().r();
309 m_phi1 = extTrack->tof1Position().phi();
310 for( unsigned int i=0; i<5; i++ ) {
311 m_zr1[i] = extTrack->tof1Position(i).z();
312 m_ezr1[i] = extTrack->tof1PosSigmaAlongZ(i);
313 //std::cout << "MrpcDBSTrack setExtTrack - BR: m_zr1["<<i<< "] extTrack->tof1Position(i).rho() " << m_zr1 << std::endl;
314 }
315 }
316 else if( m_hitCase == EastEndcap || m_hitCase == WestEndcap || m_hitCase == eastendcap_1 || m_hitCase == eastendcap_2 || m_hitCase == westendcap_1 || m_hitCase == westendcap_2){
317 for( unsigned int i=0; i<5; i++ ) {
318 m_texpInner[i] = extTrack->tof1(i);
319 //std::cout << "MrpcDBSTrack setExtTrack - EC: m_texpInner[" << i<< "] " << m_texpInner[i] << std::endl;
320
321 }
322 m_path1 = extTrack->tof1Path();
323 m_zrhit1 = extTrack->tof1Position().rho();
324 //std::cout << "MrpcDBSTrack setExtTrack - EC: m_zrhit1 extTrack->tof1Position().rho() " << m_zrhit1 << std::endl;
325 m_errzr1 = sqrt( extTrack->tof1PosSigmaAlongX()*extTrack->tof1PosSigmaAlongX() + extTrack->tof1PosSigmaAlongY()*extTrack->tof1PosSigmaAlongY() );
326 m_theta1 = extTrack->tof1Momentum().z()/extTrack->tof1Momentum().r();
327 m_phi1 = extTrack->tof1Position().phi();
328 for( unsigned int i=0; i<5; i++ ) {
329 m_zr1[i] = extTrack->tof1Position(i).rho();
330 m_ezr1[i] = sqrt( extTrack->tof1PosSigmaAlongX(i)*extTrack->tof1PosSigmaAlongX(i) + extTrack->tof1PosSigmaAlongY(i)*extTrack->tof1PosSigmaAlongY(i) );
331
332 //std::cout << "MrpcDBSTrack setExtTrack - EC: m_zr1["<<i<< "] extTrack->tof1Position(i).rho() " << m_zr1 << std::endl;
333 }
334 }
335
336 if( m_hitCase == OuterLayer || m_hitCase == DoubleLayer ) {
337 for( unsigned int i=0; i<5; i++ ) {
338 m_texpOuter[i] = extTrack->tof2(i);
339 }
340 m_path2 = extTrack->tof2Path();
341 m_zrhit2 = extTrack->tof2Position().z();
342 m_errzr2 = extTrack->tof2PosSigmaAlongZ();
343 m_theta2 = extTrack->tof2Momentum().rho()/extTrack->tof2Momentum().r();
344 m_phi2 = extTrack->tof2Position().phi();
345 for( unsigned int i=0; i<5; i++ ) {
346 m_zr2[i] = extTrack->tof2Position(i).z();
347 m_ezr2[i] = extTrack->tof2PosSigmaAlongZ(i);
348 }
349 }
350
351 if( m_hitCase == NoHit ) { m_quality = 11; }
352
353 for( unsigned int i=0; i<5; i++ ) {
354 m_kal[i] = kal[i];
355 }
356
357
358
359 return;
360
361}
362
363
364
365//------- get Multi hit ----------------------------------------------
366// get Multi-hit of one TOF Counter
367//
369 if( m_hitCase == InnerLayer || m_hitCase == OuterLayer || m_hitCase == DoubleLayer ) {
370
371 if( ( m_hitCase==InnerLayer || m_hitCase==DoubleLayer ) && ( track->hitCase()==InnerLayer || track->hitCase()==DoubleLayer ) ) {
372 if( ( abs(m_id1-track->id1())<=1 ) || ( m_id1==0 && track->id1()==87 ) || ( m_id1==87 && track->id1()==0 ) ) {
373 track->setQuality1( ( track->quality1() | 0x400 ) );
374 m_quality1 = ( m_quality1 | 0x400 );
375 }
376 }
377
378 if( ( m_hitCase==OuterLayer || m_hitCase==DoubleLayer ) && ( track->hitCase()==OuterLayer || track->hitCase()==DoubleLayer ) ) {
379 if( ( abs(m_id2-track->id2())<=1 ) || ( m_id2==88 && track->id2()==175 ) || ( m_id2==175 && track->id2()==88 ) ) {
380 track->setQuality2( ( track->quality2() | 0x400 ) );
381 m_quality2 = ( m_quality2 | 0x400 );
382 }
383 }
384
385 }
386 else if( m_hitCase == EastEndcap ) {
387 if( track->hitCase()==EastEndcap ) {
388 if( ( abs(m_id1-track->id1())<=1 ) || ( m_id1==0 && track->id1()==47 ) || ( m_id1==47 && track->id1()==0 ) ) {
389 track->setQuality1( ( track->quality1() | 0x400 ) );
390 m_quality1 = ( m_quality1 | 0x400 );
391 }
392 }
393 }
394 else if( m_hitCase == WestEndcap ) {
395 if( track->hitCase()==WestEndcap ) {
396 if( ( abs(m_id1-track->id1())<=1 ) || ( m_id1==48 && track->id1()==95 ) || ( m_id1==95 && track->id1()==48 ) ) {
397 track->setQuality1( ( track->quality1() | 0x400 ) );
398 m_quality1 = ( m_quality1 | 0x400 );
399 }
400 }
401 }
402 else if( m_hitCase == westendcap_1 || m_hitCase == westendcap_2 || m_hitCase == eastendcap_1 || m_hitCase == eastendcap_2)
403 {
404 //We do not consider the multihits yet.(This feature was not implemented in 6.5.5) (It seems also not to affect the colected endcap data!)
405 //How to do it:
406 // Search within the (direct) neighborhood for hits
407
408 }
409
410 return;
411}
412
413
414//------- setTofData --------------------------------------------
415// do TOF hits and extrapolated track match
416// tofTrackId(), tofMod1(), tofMod2()
417// quality() = 3 ( no hit )
418//
419void MrpcDBSTrack::setTofData( TofDataMap tofDataMap,int neighborhood ) {
420
421
422
423 if( m_hitCase == NoHit ) return;
424
425 if(mrpc_dbs_debug_counter) std::cout << "---------------- BEGIN EVENT -> mrpc_dbs_debug_counter ------------------------" << std::endl;
426
427
428
429
430
431 unsigned int identify0 = 0x0000c000;
432 unsigned int identify1 = 0x0000c000;
433 unsigned int identify2 = 0x0000c000;
434 unsigned int count0 = 0;
435 unsigned int count1 = 0;
436 unsigned int count2 = 0;
437
438 //Region 1 : x
439 unsigned int identify_it_o=0x0000c000; //_o = odd will check for the information from odd numbers Ninos (left side of a module)
440 unsigned int identify_it_e=0x0000c000; //_e = even will check for the information from even numbers Ninos (right side of a module)
441 //Region 2:
442 // x
443 // x
444 // x
445 unsigned int identify_u_o =0x0000c000; //upper strip
446 unsigned int identify_b_o =0x0000c000; //lower strip
447 unsigned int identify_u_e =0x0000c000; //upper strip
448 unsigned int identify_b_e =0x0000c000; //lower strip
449 //Region 3
450 // x x x
451 // x x x
452 // x x x
453 unsigned int identify_l_o =0x0000c000; // strip left
454 unsigned int identify_lu_o=0x0000c000; // strip left upper
455 unsigned int identify_lb_o=0x0000c000; // strip left below
456 unsigned int identify_r_o =0x0000c000; // strip right
457 unsigned int identify_ru_o=0x0000c000; // strip right upper
458 unsigned int identify_rb_o=0x0000c000; // strip right below
459 unsigned int identify_l_e =0x0000c000; // strip left
460 unsigned int identify_lu_e=0x0000c000; // strip left upper
461 unsigned int identify_lb_e=0x0000c000; // strip left below
462 unsigned int identify_r_e =0x0000c000; // strip right
463 unsigned int identify_ru_e=0x0000c000; // strip right upper
464 unsigned int identify_rb_e=0x0000c000; // strip right below
465
466 //Region 4
467 // ^
468 // x
469 // v
470 unsigned int identify_if4_it_e=0x0000c000;
471 unsigned int identify_if4_m1_e=0x0000c000;
472 unsigned int identify_if4_m2_e=0x0000c000;
473 unsigned int identify_if4_m3_e=0x0000c000;
474 unsigned int identify_if4_m4_e=0x0000c000;
475 unsigned int identify_if4_m5_e=0x0000c000;
476 unsigned int identify_if4_m6_e=0x0000c000;
477 unsigned int identify_if4_m7_e=0x0000c000;
478 unsigned int identify_if4_m8_e=0x0000c000;
479 unsigned int identify_if4_m9_e=0x0000c000;
480 unsigned int identify_if4_m10_e=0x0000c000;
481 unsigned int identify_if4_m11_e=0x0000c000;
482 unsigned int identify_if4_m12_e=0x0000c000;
483 unsigned int identify_if4_it_o=0x0000c000;
484 unsigned int identify_if4_m1_o=0x0000c000;
485 unsigned int identify_if4_m2_o=0x0000c000;
486 unsigned int identify_if4_m3_o=0x0000c000;
487 unsigned int identify_if4_m4_o=0x0000c000;
488 unsigned int identify_if4_m5_o=0x0000c000;
489 unsigned int identify_if4_m6_o=0x0000c000;
490 unsigned int identify_if4_m7_o=0x0000c000;
491 unsigned int identify_if4_m8_o=0x0000c000;
492 unsigned int identify_if4_m9_o=0x0000c000;
493 unsigned int identify_if4_m10_o=0x0000c000;
494 unsigned int identify_if4_m11_o=0x0000c000;
495 unsigned int identify_if4_m12_o=0x0000c000;
496
497 //Region 5
498 // ^ ^ ^
499 // x x x
500 // v v v
501 unsigned int identify_if5_it_o=0x0000c000;
502 unsigned int identify_if5_m1_o=0x0000c000;
503 unsigned int identify_if5_m2_o=0x0000c000;
504 unsigned int identify_if5_m3_o=0x0000c000;
505 unsigned int identify_if5_m4_o=0x0000c000;
506 unsigned int identify_if5_m5_o=0x0000c000;
507 unsigned int identify_if5_m6_o=0x0000c000;
508 unsigned int identify_if5_m7_o=0x0000c000;
509 unsigned int identify_if5_m8_o=0x0000c000;
510 unsigned int identify_if5_m9_o=0x0000c000;
511 unsigned int identify_if5_m10_o=0x0000c000;
512 unsigned int identify_if5_m11_o=0x0000c000;
513 unsigned int identify_if5_m12_o=0x0000c000;
514 unsigned int identify_if5_l1_o=0x0000c000;
515 unsigned int identify_if5_l2_o=0x0000c000;
516 unsigned int identify_if5_l3_o=0x0000c000;
517 unsigned int identify_if5_l4_o=0x0000c000;
518 unsigned int identify_if5_l5_o=0x0000c000;
519 unsigned int identify_if5_l6_o=0x0000c000;
520 unsigned int identify_if5_l7_o=0x0000c000;
521 unsigned int identify_if5_l8_o=0x0000c000;
522 unsigned int identify_if5_l9_o=0x0000c000;
523 unsigned int identify_if5_l10_o=0x0000c000;
524 unsigned int identify_if5_l11_o=0x0000c000;
525 unsigned int identify_if5_l12_o=0x0000c000;
526 unsigned int identify_if5_r1_o=0x0000c000;
527 unsigned int identify_if5_r2_o=0x0000c000;
528 unsigned int identify_if5_r3_o=0x0000c000;
529 unsigned int identify_if5_r4_o=0x0000c000;
530 unsigned int identify_if5_r5_o=0x0000c000;
531 unsigned int identify_if5_r6_o=0x0000c000;
532 unsigned int identify_if5_r7_o=0x0000c000;
533 unsigned int identify_if5_r8_o=0x0000c000;
534 unsigned int identify_if5_r9_o=0x0000c000;
535 unsigned int identify_if5_r10_o=0x0000c000;
536 unsigned int identify_if5_r11_o=0x0000c000;
537 unsigned int identify_if5_r12_o=0x0000c000;
538 unsigned int identify_if5_it_e=0x0000c000;
539 unsigned int identify_if5_m1_e=0x0000c000;
540 unsigned int identify_if5_m2_e=0x0000c000;
541 unsigned int identify_if5_m3_e=0x0000c000;
542 unsigned int identify_if5_m4_e=0x0000c000;
543 unsigned int identify_if5_m5_e=0x0000c000;
544 unsigned int identify_if5_m6_e=0x0000c000;
545 unsigned int identify_if5_m7_e=0x0000c000;
546 unsigned int identify_if5_m8_e=0x0000c000;
547 unsigned int identify_if5_m9_e=0x0000c000;
548 unsigned int identify_if5_m10_e=0x0000c000;
549 unsigned int identify_if5_m11_e=0x0000c000;
550 unsigned int identify_if5_m12_e=0x0000c000;
551 unsigned int identify_if5_l1_e=0x0000c000;
552 unsigned int identify_if5_l2_e=0x0000c000;
553 unsigned int identify_if5_l3_e=0x0000c000;
554 unsigned int identify_if5_l4_e=0x0000c000;
555 unsigned int identify_if5_l5_e=0x0000c000;
556 unsigned int identify_if5_l6_e=0x0000c000;
557 unsigned int identify_if5_l7_e=0x0000c000;
558 unsigned int identify_if5_l8_e=0x0000c000;
559 unsigned int identify_if5_l9_e=0x0000c000;
560 unsigned int identify_if5_l10_e=0x0000c000;
561 unsigned int identify_if5_l11_e=0x0000c000;
562 unsigned int identify_if5_l12_e=0x0000c000;
563 unsigned int identify_if5_r1_e=0x0000c000;
564 unsigned int identify_if5_r2_e=0x0000c000;
565 unsigned int identify_if5_r3_e=0x0000c000;
566 unsigned int identify_if5_r4_e=0x0000c000;
567 unsigned int identify_if5_r5_e=0x0000c000;
568 unsigned int identify_if5_r6_e=0x0000c000;
569 unsigned int identify_if5_r7_e=0x0000c000;
570 unsigned int identify_if5_r8_e=0x0000c000;
571 unsigned int identify_if5_r9_e=0x0000c000;
572 unsigned int identify_if5_r10_e=0x0000c000;
573 unsigned int identify_if5_r11_e=0x0000c000;
574 unsigned int identify_if5_r12_e=0x0000c000;
575
576 //Will contain the sum of the count variables!
577 unsigned int count_it=0;
578 //Region 2:
579 unsigned int count_u =0; //upper strip
580 unsigned int count_b =0; //lower strip
581 //Region 3
582 unsigned int count_l =0; // strip left
583 unsigned int count_lu=0; // strip left upper
584 unsigned int count_lb=0; // strip left below
585 unsigned int count_r =0; // strip right
586 unsigned int count_ru=0; // strip right upper
587 unsigned int count_rb=0; // strip right below
588 //Region 4
589 unsigned int count_if4_m1=0; unsigned int count_if4_m2=0; unsigned int count_if4_m3=0; unsigned int count_if4_m4=0; unsigned int count_if4_m5=0; unsigned int count_if4_m6=0; unsigned int count_if4_m7=0;
590 unsigned int count_if4_m8=0; unsigned int count_if4_m9=0; unsigned int count_if4_m10=0; unsigned int count_if4_m11=0; unsigned int count_if4_m12=0;
591 //Region 5
592 unsigned int count_if5_m1=0; unsigned int count_if5_m2=0; unsigned int count_if5_m3=0; unsigned int count_if5_m4=0; unsigned int count_if5_m5=0; unsigned int count_if5_m6=0; unsigned int count_if5_m7=0;
593 unsigned int count_if5_m8=0; unsigned int count_if5_m9=0; unsigned int count_if5_m10=0; unsigned int count_if5_m11=0; unsigned int count_if5_m12=0; unsigned int count_if5_l1=0; unsigned int count_if5_l2=0;
594 unsigned int count_if5_l3=0; unsigned int count_if5_l4=0; unsigned int count_if5_l5=0; unsigned int count_if5_l6=0; unsigned int count_if5_l7=0; unsigned int count_if5_l8=0; unsigned int count_if5_l9=0;
595 unsigned int count_if5_l10=0; unsigned int count_if5_l11=0; unsigned int count_if5_l12=0; unsigned int count_if5_r1=0; unsigned int count_if5_r2=0; unsigned int count_if5_r3=0; unsigned int count_if5_r4=0;
596 unsigned int count_if5_r5=0; unsigned int count_if5_r6=0; unsigned int count_if5_r7=0; unsigned int count_if5_r8=0; unsigned int count_if5_r9=0; unsigned int count_if5_r10=0; unsigned int count_if5_r11=0;
597 unsigned int count_if5_r12=0;
598
599
600 unsigned int count_it_e=0;
601 //Region 2:
602 unsigned int count_u_e=0; //upper strip
603 unsigned int count_b_e=0; //lower strip
604 //Region 3
605 unsigned int count_l_e=0; // strip left
606 unsigned int count_lu_e=0; // strip left upper
607 unsigned int count_lb_e=0; // strip left below
608 unsigned int count_r_e=0; // strip right
609 unsigned int count_ru_e=0; // strip right upper
610 unsigned int count_rb_e=0; // strip right below
611 //Region 4
612 unsigned int count_if4_m1_e=0; unsigned int count_if4_m2_e=0; unsigned int count_if4_m3_e=0; unsigned int count_if4_m4_e=0; unsigned int count_if4_m5_e=0; unsigned int count_if4_m6_e=0; unsigned int count_if4_m7_e=0;
613 unsigned int count_if4_m8_e=0; unsigned int count_if4_m9_e=0; unsigned int count_if4_m10_e=0; unsigned int count_if4_m11_e=0; unsigned int count_if4_m12_e=0;
614 //Region 5
615 unsigned int count_if5_m1_e=0; unsigned int count_if5_m2_e=0; unsigned int count_if5_m3_e=0; unsigned int count_if5_m4_e=0; unsigned int count_if5_m5_e=0; unsigned int count_if5_m6_e=0; unsigned int count_if5_m7_e=0;
616 unsigned int count_if5_m8_e=0; unsigned int count_if5_m9_e=0; unsigned int count_if5_m10_e=0; unsigned int count_if5_m11_e=0; unsigned int count_if5_m12_e=0; unsigned int count_if5_l1_e=0; unsigned int count_if5_l2_e=0;
617 unsigned int count_if5_l3_e=0; unsigned int count_if5_l4_e=0; unsigned int count_if5_l5_e=0; unsigned int count_if5_l6_e=0; unsigned int count_if5_l7_e=0; unsigned int count_if5_l8_e=0; unsigned int count_if5_l9_e=0;
618 unsigned int count_if5_l10_e=0; unsigned int count_if5_l11_e=0; unsigned int count_if5_l12_e=0; unsigned int count_if5_r1_e=0; unsigned int count_if5_r2_e=0; unsigned int count_if5_r3_e=0; unsigned int count_if5_r4_e=0;
619 unsigned int count_if5_r5_e=0; unsigned int count_if5_r6_e=0; unsigned int count_if5_r7_e=0; unsigned int count_if5_r8_e=0; unsigned int count_if5_r9_e=0; unsigned int count_if5_r10_e=0; unsigned int count_if5_r11_e=0;
620 unsigned int count_if5_r12_e=0;
621
622 unsigned int count_it_o=0;
623 //Region 2:
624 unsigned int count_u_o=0; //upper strip
625 unsigned int count_b_o=0; //lower strip
626 //Region 3
627 unsigned int count_l_o=0; // strip left
628 unsigned int count_lu_o=0; // strip left upper
629 unsigned int count_lb_o=0; // strip left below
630 unsigned int count_r_o=0; // strip right
631 unsigned int count_ru_o=0; // strip right upper
632 unsigned int count_rb_o=0; // strip right below
633 //Region 4
634 unsigned int count_if4_m1_o=0; unsigned int count_if4_m2_o=0; unsigned int count_if4_m3_o=0; unsigned int count_if4_m4_o=0; unsigned int count_if4_m5_o=0; unsigned int count_if4_m6_o=0; unsigned int count_if4_m7_o=0;
635 unsigned int count_if4_m8_o=0; unsigned int count_if4_m9_o=0; unsigned int count_if4_m10_o=0; unsigned int count_if4_m11_o=0; unsigned int count_if4_m12_o=0;
636 //Region 5
637 unsigned int count_if5_m1_o=0; unsigned int count_if5_m2_o=0; unsigned int count_if5_m3_o=0; unsigned int count_if5_m4_o=0; unsigned int count_if5_m5_o=0; unsigned int count_if5_m6_o=0; unsigned int count_if5_m7_o=0;
638 unsigned int count_if5_m8_o=0; unsigned int count_if5_m9_o=0; unsigned int count_if5_m10_o=0; unsigned int count_if5_m11_o=0; unsigned int count_if5_m12_o=0; unsigned int count_if5_l1_o=0; unsigned int count_if5_l2_o=0;
639 unsigned int count_if5_l3_o=0; unsigned int count_if5_l4_o=0; unsigned int count_if5_l5_o=0; unsigned int count_if5_l6_o=0; unsigned int count_if5_l7_o=0; unsigned int count_if5_l8_o=0; unsigned int count_if5_l9_o=0;
640 unsigned int count_if5_l10_o=0; unsigned int count_if5_l11_o=0; unsigned int count_if5_l12_o=0; unsigned int count_if5_r1_o=0; unsigned int count_if5_r2_o=0; unsigned int count_if5_r3_o=0; unsigned int count_if5_r4_o=0;
641 unsigned int count_if5_r5_o=0; unsigned int count_if5_r6_o=0; unsigned int count_if5_r7_o=0; unsigned int count_if5_r8_o=0; unsigned int count_if5_r9_o=0; unsigned int count_if5_r10_o=0; unsigned int count_if5_r11_o=0;
642 unsigned int count_if5_r12_o=0;
643
644
645
646
647
648 if( ((m_hitCase==eastendcap_1) || (m_hitCase==eastendcap_2) || (m_hitCase==westendcap_1) || (m_hitCase==westendcap_2)) && (m_id1 > 25))
649 {
650
651 int tofid_help=m_id1;//This is my stripidentifier from the extrapolated track (12 strip system)! Get the second one, as the digicollection (should) contains two digis for each strip (both sides!!!)
654
655
656
657 int tofid_it_o = BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help,(strip_help*2-1));
658 int tofid_it_e = BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help,(strip_help*2));
659
660
661 int this_partID=0;
662 if((m_hitCase==eastendcap_1)) this_partID=4;
663 if((m_hitCase==eastendcap_2)) this_partID=3;
664 if((m_hitCase==westendcap_1)) this_partID=5;
665 if((m_hitCase==westendcap_2)) this_partID=6;
666
667
668 if(this_partID==0){ cout <<"MRPCDBSREC --- MrpcDBSTrack --- Fatal Error: PartID is not existing ---> " << this_partID << endl;return; }
669
670 identify_it_o = TofID::getIntID_mrpc(this_partID,tofid_it_o); //Get the whole identifier for the MRPC cell
671 identify_it_e = TofID::getIntID_mrpc(this_partID,tofid_it_e); //Get the whole identifier for the MRPC cell
672
673 count_it_o = tofDataMap.count(identify_it_o);
674 count_it_e = tofDataMap.count(identify_it_e); //How often are the digis, which correspond to the strip, found in the digi-collection?
675 count_it=count_it_o+count_it_e;
676
677
678
679
680 // get_mrpc_module_id_neighbour(string which,int stripid,int layer)
681 // get_mrpc_partid_neighbour
682 int module_help_l = get_mrpc_module_id_neighbour("l",tofid_it_e,this_partID);//We only have to determine the left module with one strip, I could also use the odd one!
683 int partid_l = get_mrpc_partid_neighbour("l",this_partID);
684 int strip_l_help_12 = get_strip_number_neighbour_base_12("l", (strip_help*2-1) ); //Takes as input a strip in the system of 24
685
686 int module_help_r = get_mrpc_module_id_neighbour("r",tofid_it_e,this_partID);
687 int partid_r = get_mrpc_partid_neighbour("r",this_partID);
688 int strip_r_help_12 = get_strip_number_neighbour_base_12("r", (strip_help*2-1) ); //Takes as input a strip in the system of 24
689
690 int module_help_u = get_mrpc_module_id_neighbour("u",tofid_it_e,this_partID);
691 int partid_u = get_mrpc_partid_neighbour("u",this_partID);
692 int strip_u_help_12 = get_strip_number_neighbour_base_12("u", (strip_help*2-1) ); //Takes as input a strip in the system of 24
693
694 int module_help_b = get_mrpc_module_id_neighbour("b",tofid_it_e,this_partID);
695 int partid_b = get_mrpc_partid_neighbour("b",this_partID);
696 int strip_b_help_12 = get_strip_number_neighbour_base_12("b", (strip_help*2-1) ); //Takes as input a strip in the system of 24
697
698
699 //Now from neighbours where we need two operation
700 int module_help_lu =module_help_l;
701 int partid_lu = partid_l;
702 int strip_lu_help_12=strip_u_help_12;
703
704 int module_help_lb = module_help_l;
705 int partid_lb =partid_l;
706 int strip_lb_help_12=strip_b_help_12;
707
708 int module_help_ru = module_help_r;
709 int partid_ru = partid_r;
710 int strip_ru_help_12=strip_u_help_12;
711
712 int module_help_rb = module_help_r;
713 int partid_rb = partid_r;
714 int strip_rb_help_12=strip_b_help_12;
715
716
717
718 //Get the both digis, which correspond to the one strip:
719 int tofid_l_o= BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_l, (strip_l_help_12*2-1) );
720 int tofid_r_o= BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_r, (strip_r_help_12*2-1) );
721 int tofid_u_o= BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_u, (strip_u_help_12*2-1) );
722 int tofid_b_o= BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_b, (strip_b_help_12*2-1) );
723 int tofid_lu_o= BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_lu, (strip_lu_help_12*2-1) );
724 int tofid_lb_o= BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_lb, (strip_lb_help_12*2-1) );
725 int tofid_ru_o= BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_ru, (strip_ru_help_12*2-1) );
726 int tofid_rb_o= BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_rb, (strip_rb_help_12*2-1) );
727
728 int tofid_l_e= BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_l, (strip_l_help_12*2) );
729 int tofid_r_e= BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_r, (strip_r_help_12*2) );
730 int tofid_u_e= BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_u, (strip_u_help_12*2) );
731 int tofid_b_e= BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_b, (strip_b_help_12*2) );
732 int tofid_lu_e= BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_lu, (strip_lu_help_12*2) );
733 int tofid_lb_e= BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_lb, (strip_lb_help_12*2) );
734 int tofid_ru_e= BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_ru, (strip_ru_help_12*2) );
735 int tofid_rb_e= BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_rb, (strip_rb_help_12*2) );
736
737
738
739
740 //Get the identifier and search the datamap for those identifier
741 if( (neighborhood==2) || (neighborhood==3))
742 {
743 identify_u_e = TofID::getIntID_mrpc(partid_u,tofid_u_e);
744 identify_u_o = TofID::getIntID_mrpc(partid_u,tofid_u_o);
745 count_u_e = tofDataMap.count(identify_u_e);
746 count_u_o = tofDataMap.count(identify_u_o);
747 count_u = count_u_e + count_u_o;
748
749 identify_b_e = TofID::getIntID_mrpc(partid_b,tofid_b_e);
750 identify_b_o = TofID::getIntID_mrpc(partid_b,tofid_b_o);
751 count_b_e = tofDataMap.count(identify_b_e);
752 count_b_o = tofDataMap.count(identify_b_o);
753 count_b= count_b_e + count_b_o;
754
755 }
756
757 if((neighborhood==3))
758 {
759 identify_l_e = TofID::getIntID_mrpc(partid_l,tofid_l_e);
760 identify_l_o = TofID::getIntID_mrpc(partid_l,tofid_l_o);
761 count_l_e = tofDataMap.count(identify_l_e);
762 count_l_o = tofDataMap.count(identify_l_o);
763 count_l= count_l_e + count_l_o;
764
765
766 identify_r_e = TofID::getIntID_mrpc(partid_r,tofid_r_e);
767 identify_r_o = TofID::getIntID_mrpc(partid_r,tofid_r_o);
768 count_r_e = tofDataMap.count(identify_r_e);
769 count_r_o = tofDataMap.count(identify_r_o);
770 count_r= count_r_e + count_r_o;
771
772
773
774 identify_lu_e = TofID::getIntID_mrpc(partid_lu,tofid_lu_e);
775 identify_lu_o = TofID::getIntID_mrpc(partid_lu,tofid_lu_o);
776 count_lu_e = tofDataMap.count(identify_lu_e);
777 count_lu_o = tofDataMap.count(identify_lu_o);
778 count_lu= count_lu_e + count_lu_o;
779
780
781 identify_lb_e = TofID::getIntID_mrpc(partid_lb,tofid_lb_e);
782 identify_lb_o = TofID::getIntID_mrpc(partid_lb,tofid_lb_o);
783 count_lb_e = tofDataMap.count(identify_lb_e);
784 count_lb_o = tofDataMap.count(identify_lb_o);
785 count_lb= count_lb_e + count_lb_o;
786
787
788 identify_ru_e = TofID::getIntID_mrpc(partid_ru,tofid_ru_e);
789 identify_ru_o = TofID::getIntID_mrpc(partid_ru,tofid_ru_o);
790 count_ru_e = tofDataMap.count(identify_ru_e);
791 count_ru_o = tofDataMap.count(identify_ru_o);
792 count_ru= count_ru_e + count_ru_o;
793
794
795 identify_rb_e = TofID::getIntID_mrpc(partid_rb,tofid_rb_e);
796 identify_rb_o = TofID::getIntID_mrpc(partid_rb,tofid_rb_o);
797 count_rb = tofDataMap.count(identify_rb_e) + tofDataMap.count(identify_rb_o);
798 count_rb_e = tofDataMap.count(identify_rb_e);
799 count_rb_o = tofDataMap.count(identify_rb_o);
800 count_rb= count_rb_e + count_rb_o;
801
802 }
803
804
805 if((neighborhood==4))
806 {
807
810
811 identify_if4_it_o=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if4, (strip_number_if4*2-1) ));
812 identify_if4_it_e=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if4,strip_number_if4*2));
813
814 identify_if4_m1_o=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if4,1*2-1));
815 identify_if4_m2_o=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if4,2*2-1));
816 identify_if4_m3_o=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if4,3*2-1));
817 identify_if4_m4_o=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if4,4*2-1));
818 identify_if4_m5_o=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if4,5*2-1));
819 identify_if4_m6_o=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if4,6*2-1));
820 identify_if4_m7_o=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if4,7*2-1));
821 identify_if4_m8_o=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if4,8*2-1));
822 identify_if4_m9_o=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if4,9*2-1));
823 identify_if4_m10_o=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if4,10*2-1));
824 identify_if4_m11_o=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if4,11*2-1));
825 identify_if4_m12_o=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if4,12*2-1));
826 identify_if4_m1_e=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if4,1*2));
827 identify_if4_m2_e=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if4,2*2));
828 identify_if4_m3_e=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if4,3*2));
829 identify_if4_m4_e=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if4,4*2));
830 identify_if4_m5_e=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if4,5*2));
831 identify_if4_m6_e=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if4,6*2));
832 identify_if4_m7_e=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if4,7*2));
833 identify_if4_m8_e=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if4,8*2));
834 identify_if4_m9_e=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if4,9*2));
835 identify_if4_m10_e=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if4,10*2));
836 identify_if4_m11_e=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if4,11*2));
837 identify_if4_m12_e=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if4,12*2));
838
839 if( (identify_it_e!=identify_if4_m1_e) ) count_if4_m1_e= tofDataMap.count(identify_if4_m1_e);
840 if( (identify_it_e!=identify_if4_m2_e) ) count_if4_m2_e= tofDataMap.count(identify_if4_m2_e);
841 if( (identify_it_e!=identify_if4_m3_e) ) count_if4_m3_e= tofDataMap.count(identify_if4_m3_e);
842 if( (identify_it_e!=identify_if4_m4_e) ) count_if4_m4_e= tofDataMap.count(identify_if4_m4_e);
843 if( (identify_it_e!=identify_if4_m5_e) ) count_if4_m5_e= tofDataMap.count(identify_if4_m5_e);
844 if( (identify_it_e!=identify_if4_m6_e) ) count_if4_m6_e= tofDataMap.count(identify_if4_m6_e);
845 if( (identify_it_e!=identify_if4_m7_e) ) count_if4_m7_e= tofDataMap.count(identify_if4_m7_e);
846 if( (identify_it_e!=identify_if4_m8_e) ) count_if4_m8_e= tofDataMap.count(identify_if4_m8_e);
847 if( (identify_it_e!=identify_if4_m9_e) ) count_if4_m9_e= tofDataMap.count(identify_if4_m9_e);
848 if( (identify_it_e!=identify_if4_m10_e) ) count_if4_m10_e= tofDataMap.count(identify_if4_m10_e);
849 if( (identify_it_e!=identify_if4_m11_e) ) count_if4_m11_e= tofDataMap.count(identify_if4_m11_e);
850 if( (identify_it_e!=identify_if4_m12_e) ) count_if4_m12_e= tofDataMap.count(identify_if4_m12_e);
851
852 if( (identify_it_o!=identify_if4_m1_o) ) count_if4_m1_o= tofDataMap.count(identify_if4_m1_o);
853 if( (identify_it_o!=identify_if4_m2_o) ) count_if4_m2_o= tofDataMap.count(identify_if4_m2_o);
854 if( (identify_it_o!=identify_if4_m3_o) ) count_if4_m3_o= tofDataMap.count(identify_if4_m3_o);
855 if( (identify_it_o!=identify_if4_m4_o) ) count_if4_m4_o= tofDataMap.count(identify_if4_m4_o);
856 if( (identify_it_o!=identify_if4_m5_o) ) count_if4_m5_o= tofDataMap.count(identify_if4_m5_o);
857 if( (identify_it_o!=identify_if4_m6_o) ) count_if4_m6_o= tofDataMap.count(identify_if4_m6_o);
858 if( (identify_it_o!=identify_if4_m7_o) ) count_if4_m7_o= tofDataMap.count(identify_if4_m7_o);
859 if( (identify_it_o!=identify_if4_m8_o) ) count_if4_m8_o= tofDataMap.count(identify_if4_m8_o);
860 if( (identify_it_o!=identify_if4_m9_o) ) count_if4_m9_o= tofDataMap.count(identify_if4_m9_o);
861 if( (identify_it_o!=identify_if4_m10_o) ) count_if4_m10_o= tofDataMap.count(identify_if4_m10_o);
862 if( (identify_it_o!=identify_if4_m11_o) ) count_if4_m11_o= tofDataMap.count(identify_if4_m11_o);
863 if( (identify_it_o!=identify_if4_m12_o) ) count_if4_m12_o= tofDataMap.count(identify_if4_m12_o);
864
865 count_if4_m1 = count_if4_m1_o + count_if4_m1_e;
866 count_if4_m2 = count_if4_m2_o + count_if4_m2_e;
867 count_if4_m3 = count_if4_m3_o + count_if4_m3_e;
868 count_if4_m4 = count_if4_m4_o + count_if4_m4_e;
869 count_if4_m5 = count_if4_m5_o + count_if4_m5_e;
870 count_if4_m6 = count_if4_m6_o + count_if4_m6_e;
871 count_if4_m7 = count_if4_m7_o + count_if4_m7_e;
872 count_if4_m8 = count_if4_m8_o + count_if4_m8_e;
873 count_if4_m9 = count_if4_m9_o + count_if4_m9_e;
874 count_if4_m10 = count_if4_m10_o + count_if4_m10_e;
875 count_if4_m11 = count_if4_m11_o + count_if4_m11_e;
876 count_if4_m12 = count_if4_m12_o + count_if4_m12_e;
877
878
879
880 }//close if neighboorhood=4
881
882 if((neighborhood==5))
883 {
884
887
888
889
890
891 identify_if5_it_o=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if5, (strip_number_if5*2-1) ));
892 identify_if5_it_e=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if5,strip_number_if5*2));
893
894 identify_if5_m1_o=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if5,1*2-1));
895 identify_if5_m2_o=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if5,2*2-1));
896 identify_if5_m3_o=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if5,3*2-1));
897 identify_if5_m4_o=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if5,4*2-1));
898 identify_if5_m5_o=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if5,5*2-1));
899 identify_if5_m6_o=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if5,6*2-1));
900 identify_if5_m7_o=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if5,7*2-1));
901 identify_if5_m8_o=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if5,8*2-1));
902 identify_if5_m9_o=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if5,9*2-1));
903 identify_if5_m10_o=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if5,10*2-1));
904 identify_if5_m11_o=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if5,11*2-1));
905 identify_if5_m12_o=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if5,12*2-1));
906 identify_if5_m1_e=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if5,1*2));
907 identify_if5_m2_e=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if5,2*2));
908 identify_if5_m3_e=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if5,3*2));
909 identify_if5_m4_e=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if5,4*2));
910 identify_if5_m5_e=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if5,5*2));
911 identify_if5_m6_e=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if5,6*2));
912 identify_if5_m7_e=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if5,7*2));
913 identify_if5_m8_e=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if5,8*2));
914 identify_if5_m9_e=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if5,9*2));
915 identify_if5_m10_e=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if5,10*2));
916 identify_if5_m11_e=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if5,11*2));
917 identify_if5_m12_e=TofID::getIntID_mrpc(this_partID, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_number_if5,12*2));
918
919 if( (identify_it_e!=identify_if5_m1_e) ) count_if5_m1_e= tofDataMap.count(identify_if5_m1_e);
920 if( (identify_it_e!=identify_if5_m2_e) ) count_if5_m2_e= tofDataMap.count(identify_if5_m2_e);
921 if( (identify_it_e!=identify_if5_m3_e) ) count_if5_m3_e= tofDataMap.count(identify_if5_m3_e);
922 if( (identify_it_e!=identify_if5_m4_e) ) count_if5_m4_e= tofDataMap.count(identify_if5_m4_e);
923 if( (identify_it_e!=identify_if5_m5_e) ) count_if5_m5_e= tofDataMap.count(identify_if5_m5_e);
924 if( (identify_it_e!=identify_if5_m6_e) ) count_if5_m6_e= tofDataMap.count(identify_if5_m6_e);
925 if( (identify_it_e!=identify_if5_m7_e) ) count_if5_m7_e= tofDataMap.count(identify_if5_m7_e);
926 if( (identify_it_e!=identify_if5_m8_e) ) count_if5_m8_e= tofDataMap.count(identify_if5_m8_e);
927 if( (identify_it_e!=identify_if5_m9_e) ) count_if5_m9_e= tofDataMap.count(identify_if5_m9_e);
928 if( (identify_it_e!=identify_if5_m10_e) ) count_if5_m10_e= tofDataMap.count(identify_if5_m10_e);
929 if( (identify_it_e!=identify_if5_m11_e) ) count_if5_m11_e= tofDataMap.count(identify_if5_m11_e);
930 if( (identify_it_e!=identify_if5_m12_e) ) count_if5_m12_e= tofDataMap.count(identify_if5_m12_e);
931
932 if( (identify_it_o!=identify_if5_m1_o) ) count_if5_m1_o= tofDataMap.count(identify_if5_m1_o);
933 if( (identify_it_o!=identify_if5_m2_o) ) count_if5_m2_o= tofDataMap.count(identify_if5_m2_o);
934 if( (identify_it_o!=identify_if5_m3_o) ) count_if5_m3_o= tofDataMap.count(identify_if5_m3_o);
935 if( (identify_it_o!=identify_if5_m4_o) ) count_if5_m4_o= tofDataMap.count(identify_if5_m4_o);
936 if( (identify_it_o!=identify_if5_m5_o) ) count_if5_m5_o= tofDataMap.count(identify_if5_m5_o);
937 if( (identify_it_o!=identify_if5_m6_o) ) count_if5_m6_o= tofDataMap.count(identify_if5_m6_o);
938 if( (identify_it_o!=identify_if5_m7_o) ) count_if5_m7_o= tofDataMap.count(identify_if5_m7_o);
939 if( (identify_it_o!=identify_if5_m8_o) ) count_if5_m8_o= tofDataMap.count(identify_if5_m8_o);
940 if( (identify_it_o!=identify_if5_m9_o) ) count_if5_m9_o= tofDataMap.count(identify_if5_m9_o);
941 if( (identify_it_o!=identify_if5_m10_o) ) count_if5_m10_o= tofDataMap.count(identify_if5_m10_o);
942 if( (identify_it_o!=identify_if5_m11_o) ) count_if5_m11_o= tofDataMap.count(identify_if5_m11_o);
943 if( (identify_it_o!=identify_if5_m12_o) ) count_if5_m12_o= tofDataMap.count(identify_if5_m12_o);
944
945 count_if5_m1 = count_if5_m1_o + count_if5_m1_e;
946 count_if5_m2 = count_if5_m2_o + count_if5_m2_e;
947 count_if5_m3 = count_if5_m3_o + count_if5_m3_e;
948 count_if5_m4 = count_if5_m4_o + count_if5_m4_e;
949 count_if5_m5 = count_if5_m5_o + count_if5_m5_e;
950 count_if5_m6 = count_if5_m6_o + count_if5_m6_e;
951 count_if5_m7 = count_if5_m7_o + count_if5_m7_e;
952 count_if5_m8 = count_if5_m8_o + count_if5_m8_e;
953 count_if5_m9 = count_if5_m9_o + count_if5_m9_e;
954 count_if5_m10 = count_if5_m10_o + count_if5_m10_e;
955 count_if5_m11 = count_if5_m11_o + count_if5_m11_e;
956 count_if5_m12 = count_if5_m12_o + count_if5_m12_e;
957
958
959
960 int partid_l = get_mrpc_partid_neighbour("l",this_partID);
961 int module_help_l = get_mrpc_module_id_neighbour("l",tofid_it_e,this_partID);//We only have to determine the left module with one strip, I could also use the odd one!
962
963 int partid_r = get_mrpc_partid_neighbour("r",this_partID);
964 int module_help_r = get_mrpc_module_id_neighbour("r",tofid_it_e,this_partID);//We only have to determine the left module with one strip, I could also use the odd one!
965
966
967
968 identify_if5_l1_o=TofID::getIntID_mrpc(partid_l, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_l,1) );
969 identify_if5_l2_o=TofID::getIntID_mrpc(partid_l, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_l,3) );
970 identify_if5_l3_o=TofID::getIntID_mrpc(partid_l, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_l,5) );
971 identify_if5_l4_o=TofID::getIntID_mrpc(partid_l, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_l,7) );
972 identify_if5_l5_o=TofID::getIntID_mrpc(partid_l, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_l,9) );
973 identify_if5_l6_o=TofID::getIntID_mrpc(partid_l, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_l,11) );
974 identify_if5_l7_o=TofID::getIntID_mrpc(partid_l, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_l,13) );
975 identify_if5_l8_o=TofID::getIntID_mrpc(partid_l, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_l,15) );
976 identify_if5_l9_o=TofID::getIntID_mrpc(partid_l, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_l,17) );
977 identify_if5_l10_o=TofID::getIntID_mrpc(partid_l, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_l,19) );
978 identify_if5_l11_o=TofID::getIntID_mrpc(partid_l, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_l,21) );
979 identify_if5_l12_o=TofID::getIntID_mrpc(partid_l, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_l,23) );
980
981 identify_if5_r1_o=TofID::getIntID_mrpc(partid_r, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_r,1) );
982 identify_if5_r2_o=TofID::getIntID_mrpc(partid_r, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_r,3) );
983 identify_if5_r3_o=TofID::getIntID_mrpc(partid_r, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_r,5) );
984 identify_if5_r4_o=TofID::getIntID_mrpc(partid_r, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_r,7) );
985 identify_if5_r5_o=TofID::getIntID_mrpc(partid_r, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_r,9) );
986 identify_if5_r6_o=TofID::getIntID_mrpc(partid_r, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_r,11) );
987 identify_if5_r7_o=TofID::getIntID_mrpc(partid_r, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_r,13) );
988 identify_if5_r8_o=TofID::getIntID_mrpc(partid_r, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_r,15) );
989 identify_if5_r9_o=TofID::getIntID_mrpc(partid_r, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_r,17) );
990 identify_if5_r10_o=TofID::getIntID_mrpc(partid_r, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_r,19) );
991 identify_if5_r11_o=TofID::getIntID_mrpc(partid_r, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_r,21) );
992 identify_if5_r12_o=TofID::getIntID_mrpc(partid_r, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_r,23) );
993
994
995 identify_if5_l1_e=TofID::getIntID_mrpc(partid_l, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_l,2) );
996 identify_if5_l2_e=TofID::getIntID_mrpc(partid_l, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_l,4) );
997 identify_if5_l3_e=TofID::getIntID_mrpc(partid_l, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_l,6) );
998 identify_if5_l4_e=TofID::getIntID_mrpc(partid_l, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_l,8) );
999 identify_if5_l5_e=TofID::getIntID_mrpc(partid_l, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_l,10) );
1000 identify_if5_l6_e=TofID::getIntID_mrpc(partid_l, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_l,12) );
1001 identify_if5_l7_e=TofID::getIntID_mrpc(partid_l, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_l,14) );
1002 identify_if5_l8_e=TofID::getIntID_mrpc(partid_l, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_l,16) );
1003 identify_if5_l9_e=TofID::getIntID_mrpc(partid_l, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_l,18) );
1004 identify_if5_l10_e=TofID::getIntID_mrpc(partid_l, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_l,20) );
1005 identify_if5_l11_e=TofID::getIntID_mrpc(partid_l, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_l,22) );
1006 identify_if5_l12_e=TofID::getIntID_mrpc(partid_l, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_l,24) );
1007
1008 identify_if5_r1_e=TofID::getIntID_mrpc(partid_r, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_r,2) );
1009 identify_if5_r2_e=TofID::getIntID_mrpc(partid_r, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_r,4) );
1010 identify_if5_r3_e=TofID::getIntID_mrpc(partid_r, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_r,6) );
1011 identify_if5_r4_e=TofID::getIntID_mrpc(partid_r, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_r,8) );
1012 identify_if5_r5_e=TofID::getIntID_mrpc(partid_r, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_r,10) );
1013 identify_if5_r6_e=TofID::getIntID_mrpc(partid_r, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_r,12) );
1014 identify_if5_r7_e=TofID::getIntID_mrpc(partid_r, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_r,14) );
1015 identify_if5_r8_e=TofID::getIntID_mrpc(partid_r, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_r,16) );
1016 identify_if5_r9_e=TofID::getIntID_mrpc(partid_r, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_r,18) );
1017 identify_if5_r10_e=TofID::getIntID_mrpc(partid_r, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_r,20) );
1018 identify_if5_r11_e=TofID::getIntID_mrpc(partid_r, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_r,22) );
1019 identify_if5_r12_e=TofID::getIntID_mrpc(partid_r, BesTofDigitizerEcV4_dbs::Produce_unique_identifier(module_help_r,24) );
1020
1021
1022
1023 if(identify_it_e!=identify_if5_l1_e ) count_if5_l1_e= tofDataMap.count(identify_if5_l1_e);
1024 if(identify_it_e!=identify_if5_l2_e ) count_if5_l2_e= tofDataMap.count(identify_if5_l2_e);
1025 if(identify_it_e!=identify_if5_l3_e ) count_if5_l3_e= tofDataMap.count(identify_if5_l3_e);
1026 if(identify_it_e!=identify_if5_l4_e ) count_if5_l4_e= tofDataMap.count(identify_if5_l4_e);
1027 if(identify_it_e!=identify_if5_l5_e ) count_if5_l5_e= tofDataMap.count(identify_if5_l5_e);
1028 if(identify_it_e!=identify_if5_l6_e ) count_if5_l6_e= tofDataMap.count(identify_if5_l6_e);
1029 if(identify_it_e!=identify_if5_l7_e ) count_if5_l7_e= tofDataMap.count(identify_if5_l7_e);
1030 if(identify_it_e!=identify_if5_l8_e ) count_if5_l8_e= tofDataMap.count(identify_if5_l8_e);
1031 if(identify_it_e!=identify_if5_l9_e ) count_if5_l9_e= tofDataMap.count(identify_if5_l9_e);
1032 if(identify_it_e!=identify_if5_l10_e ) count_if5_l10_e= tofDataMap.count(identify_if5_l10_e);
1033 if(identify_it_e!=identify_if5_l11_e ) count_if5_l11_e= tofDataMap.count(identify_if5_l11_e);
1034 if(identify_it_e!=identify_if5_l12_e ) count_if5_l12_e= tofDataMap.count(identify_if5_l12_e);
1035
1036 if(identify_it_o!=identify_if5_l1_o ) count_if5_l1_o= tofDataMap.count(identify_if5_l1_o);
1037 if(identify_it_o!=identify_if5_l2_o ) count_if5_l2_o= tofDataMap.count(identify_if5_l2_o);
1038 if(identify_it_o!=identify_if5_l3_o ) count_if5_l3_o= tofDataMap.count(identify_if5_l3_o);
1039 if(identify_it_o!=identify_if5_l4_o ) count_if5_l4_o= tofDataMap.count(identify_if5_l4_o);
1040 if(identify_it_o!=identify_if5_l5_o ) count_if5_l5_o= tofDataMap.count(identify_if5_l5_o);
1041 if(identify_it_o!=identify_if5_l6_o ) count_if5_l6_o= tofDataMap.count(identify_if5_l6_o);
1042 if(identify_it_o!=identify_if5_l7_o ) count_if5_l7_o= tofDataMap.count(identify_if5_l7_o);
1043 if(identify_it_o!=identify_if5_l8_o ) count_if5_l8_o= tofDataMap.count(identify_if5_l8_o);
1044 if(identify_it_o!=identify_if5_l9_o ) count_if5_l9_o= tofDataMap.count(identify_if5_l9_o);
1045 if(identify_it_o!=identify_if5_l10_o ) count_if5_l10_o= tofDataMap.count(identify_if5_l10_o);
1046 if(identify_it_o!=identify_if5_l11_o ) count_if5_l11_o= tofDataMap.count(identify_if5_l11_o);
1047 if(identify_it_o!=identify_if5_l12_o ) count_if5_l12_o= tofDataMap.count(identify_if5_l12_o);
1048
1049 count_if5_l1 = count_if5_l1_e + count_if5_l1_o;
1050 count_if5_l2 = count_if5_l2_e + count_if5_l2_o;
1051 count_if5_l3 = count_if5_l3_e + count_if5_l3_o;
1052 count_if5_l4 = count_if5_l4_e + count_if5_l4_o;
1053 count_if5_l5 = count_if5_l5_e + count_if5_l5_o;
1054 count_if5_l6 = count_if5_l6_e + count_if5_l6_o;
1055 count_if5_l7 = count_if5_l7_e + count_if5_l7_o;
1056 count_if5_l8 = count_if5_l8_e + count_if5_l8_o;
1057 count_if5_l9 = count_if5_l9_e + count_if5_l9_o;
1058 count_if5_l10 = count_if5_l10_e + count_if5_l10_o;
1059 count_if5_l11 = count_if5_l11_e + count_if5_l11_o;
1060 count_if5_l12 = count_if5_l12_e + count_if5_l12_o;
1061
1062
1063 if(identify_it_e!=identify_if5_r1_e ) count_if5_r1_e= tofDataMap.count(identify_if5_r1_e);
1064 if(identify_it_e!=identify_if5_r2_e ) count_if5_r2_e= tofDataMap.count(identify_if5_r2_e);
1065 if(identify_it_e!=identify_if5_r3_e ) count_if5_r3_e= tofDataMap.count(identify_if5_r3_e);
1066 if(identify_it_e!=identify_if5_r4_e ) count_if5_r4_e= tofDataMap.count(identify_if5_r4_e);
1067 if(identify_it_e!=identify_if5_r5_e ) count_if5_r5_e= tofDataMap.count(identify_if5_r5_e);
1068 if(identify_it_e!=identify_if5_r6_e ) count_if5_r6_e= tofDataMap.count(identify_if5_r6_e);
1069 if(identify_it_e!=identify_if5_r7_e ) count_if5_r7_e= tofDataMap.count(identify_if5_r7_e);
1070 if(identify_it_e!=identify_if5_r8_e ) count_if5_r8_e= tofDataMap.count(identify_if5_r8_e);
1071 if(identify_it_e!=identify_if5_r9_e ) count_if5_r9_e= tofDataMap.count(identify_if5_r9_e);
1072 if(identify_it_e!=identify_if5_r10_e ) count_if5_r10_e= tofDataMap.count(identify_if5_r10_e);
1073 if(identify_it_e!=identify_if5_r11_e ) count_if5_r11_e= tofDataMap.count(identify_if5_r11_e);
1074 if(identify_it_e!=identify_if5_r12_e ) count_if5_r12_e= tofDataMap.count(identify_if5_r12_e);
1075
1076 if(identify_it_o!=identify_if5_r1_o ) count_if5_r1_o= tofDataMap.count(identify_if5_r1_o);
1077 if(identify_it_o!=identify_if5_r2_o ) count_if5_r2_o= tofDataMap.count(identify_if5_r2_o);
1078 if(identify_it_o!=identify_if5_r3_o ) count_if5_r3_o= tofDataMap.count(identify_if5_r3_o);
1079 if(identify_it_o!=identify_if5_r4_o ) count_if5_r4_o= tofDataMap.count(identify_if5_r4_o);
1080 if(identify_it_o!=identify_if5_r5_o ) count_if5_r5_o= tofDataMap.count(identify_if5_r5_o);
1081 if(identify_it_o!=identify_if5_r6_o ) count_if5_r6_o= tofDataMap.count(identify_if5_r6_o);
1082 if(identify_it_o!=identify_if5_r7_o ) count_if5_r7_o= tofDataMap.count(identify_if5_r7_o);
1083 if(identify_it_o!=identify_if5_r8_o ) count_if5_r8_o= tofDataMap.count(identify_if5_r8_o);
1084 if(identify_it_o!=identify_if5_r9_o ) count_if5_r9_o= tofDataMap.count(identify_if5_r9_o);
1085 if(identify_it_o!=identify_if5_r10_o ) count_if5_r10_o= tofDataMap.count(identify_if5_r10_o);
1086 if(identify_it_o!=identify_if5_r11_o ) count_if5_r11_o= tofDataMap.count(identify_if5_r11_o);
1087 if(identify_it_o!=identify_if5_r12_o ) count_if5_r12_o= tofDataMap.count(identify_if5_r12_o);
1088
1089 count_if5_r1 = count_if5_r1_e + count_if5_r1_o;
1090 count_if5_r2 = count_if5_r2_e + count_if5_r2_o;
1091 count_if5_r3 = count_if5_r3_e + count_if5_r3_o;
1092 count_if5_r4 = count_if5_r4_e + count_if5_r4_o;
1093 count_if5_r5 = count_if5_r5_e + count_if5_r5_o;
1094 count_if5_r6 = count_if5_r6_e + count_if5_r6_o;
1095 count_if5_r7 = count_if5_r7_e + count_if5_r7_o;
1096 count_if5_r8 = count_if5_r8_e + count_if5_r8_o;
1097 count_if5_r9 = count_if5_r9_e + count_if5_r9_o;
1098 count_if5_r10 = count_if5_r10_e + count_if5_r10_o;
1099 count_if5_r11 = count_if5_r11_e + count_if5_r11_o;
1100 count_if5_r12 = count_if5_r12_e + count_if5_r12_o;
1101
1102 }//close if neighboorhood=5
1103
1104 }//close if (m_hitCase)
1105
1106
1107 if(mrpc_dbs_debug_counter) //List all entries of Tofdatamap
1108 {
1109 int data_map_size = tofDataMap.size();
1110 std::cout << "MrpcDBSTrack setTofData Number of elements in TofDataMap " << data_map_size << std::endl;
1111 IterTofDataMap it=tofDataMap.begin();
1112 for ( it=tofDataMap.begin() ; it != tofDataMap.end(); it++ )
1113 std::cout << " MrpcDBSTrack setTofData TofDataMap entries : "<< (*it).first <<" P_id " << (((*it).first & 0x7000)>>12) << " S_id "<< ((*it).first & 0xFFF) << std::endl;
1114 }
1115
1116 if(mrpc_dbs_debug_counter && ( neighborhood==1 || neighborhood==2 || neighborhood==3) )//List all the constructed identifieres:
1117 {
1118 std::cout << "Constructed Identifiers: " << std::endl;
1119 std::cout << " it "<< identify_it_e << " " << identify_it_o<< " P " << ((identify_it_o & 0x7000)>>12) <<" S " << (identify_it_o & 0xFFF) << std::endl;
1120 std::cout << " u "<< identify_u_e << " " << identify_u_o << " P " << ((identify_u_o & 0x7000)>>12) <<" S " << (identify_u_o & 0xFFF) << std::endl;
1121 std::cout << " b "<< identify_b_e << " " << identify_b_o << " P " << ((identify_b_o & 0x7000)>>12) <<" S " << (identify_b_o & 0xFFF) << std::endl;
1122 std::cout << " l "<< identify_l_e << " " << identify_l_o << " P " << ((identify_l_o & 0x7000)>>12) <<" S " << (identify_l_o & 0xFFF) << std::endl;
1123 std::cout << " r "<< identify_r_e << " " << identify_r_o << " P " << ((identify_r_o & 0x7000)>>12) <<" S " << (identify_r_o & 0xFFF) << std::endl;
1124 std::cout << " lu "<< identify_lu_e << " " << identify_lu_o<< " P " << ((identify_lu_o & 0x7000)>>12) <<" S " << (identify_lu_o & 0xFFF) << std::endl;
1125 std::cout << " ru "<< identify_ru_e << " " << identify_ru_o<< " P " << ((identify_ru_o & 0x7000)>>12) <<" S " << (identify_ru_o & 0xFFF) << std::endl;
1126 std::cout << " lb "<< identify_lb_e << " " << identify_lb_o<< " P " << ((identify_lb_o & 0x7000)>>12) <<" S " << (identify_lb_o & 0xFFF) << std::endl;
1127 std::cout << " rb "<< identify_rb_e << " " << identify_rb_o<< " P " << ((identify_rb_o & 0x7000)>>12) <<" S " << (identify_rb_o & 0xFFF) << std::endl;
1128
1129 }
1130
1131
1132 if(mrpc_dbs_debug_counter && ( neighborhood==4) )//List all the constructed identifieres:
1133 {
1134
1135
1136 std::cout << "Constructed Identifiers: " << std::endl;
1137 std::cout << " it "<< identify_it_e << " " << identify_it_o << std::endl;
1138 std::cout << " it if4 "<< identify_if4_it_e << " " << identify_if4_it_o << " P " << ((identify_if4_it_o & 0x7000)>>12) <<" S " << (identify_if4_it_o & 0xFFF) <<std::endl;
1139 std::cout << " m1 " <<identify_if4_m1_e << " " << identify_if4_m1_o << " P " << ((identify_if4_m1_o & 0x7000)>>12) <<" S " << (identify_if4_m1_o & 0xFFF) << std::endl;
1140 std::cout << " m2 " <<identify_if4_m2_e << " " << identify_if4_m2_o << " P " << ((identify_if4_m2_o & 0x7000)>>12) <<" S " << (identify_if4_m2_o & 0xFFF) << std::endl;
1141 std::cout << " m3 " <<identify_if4_m3_e << " " << identify_if4_m3_o <<" P " << ((identify_if4_m3_o & 0x7000)>>12) <<" S " << (identify_if4_m3_o & 0xFFF) << std::endl;
1142 std::cout << " m4 " <<identify_if4_m4_e << " " << identify_if4_m4_o <<" P " << ((identify_if4_m4_o & 0x7000)>>12) <<" S " << (identify_if4_m4_o & 0xFFF) << std::endl;
1143 std::cout << " m5 " <<identify_if4_m5_e << " " << identify_if4_m5_o <<" P " << ((identify_if4_m5_o & 0x7000)>>12) <<" S " << (identify_if4_m5_o & 0xFFF) << std::endl;
1144 std::cout << " m6 " <<identify_if4_m6_e << " " << identify_if4_m6_o <<" P " << ((identify_if4_m6_o & 0x7000)>>12) <<" S " << (identify_if4_m6_o & 0xFFF) << std::endl;
1145 std::cout << " m7 " <<identify_if4_m7_e << " " << identify_if4_m7_o <<" P " << ((identify_if4_m7_o & 0x7000)>>12) <<" S " << (identify_if4_m7_o & 0xFFF) << std::endl;
1146 std::cout << " m8 " <<identify_if4_m8_e << " " << identify_if4_m8_o <<" P " << ((identify_if4_m8_o & 0x7000)>>12) <<" S " << (identify_if4_m8_o & 0xFFF) << std::endl;
1147 std::cout << " m9 " <<identify_if4_m9_e << " " << identify_if4_m9_o <<" P " << ((identify_if4_m9_o & 0x7000)>>12) <<" S " << (identify_if4_m9_o & 0xFFF) << std::endl;
1148 std::cout << " m10 " <<identify_if4_m10_e << " " << identify_if4_m10_o<<" P " << ((identify_if4_m10_o & 0x7000)>>12) <<" S " << (identify_if4_m10_o & 0xFFF) << std::endl;
1149 std::cout << " m11 " <<identify_if4_m11_e << " " << identify_if4_m11_o <<" P " << ((identify_if4_m11_o & 0x7000)>>12) <<" S " << (identify_if4_m11_o & 0xFFF) << std::endl;
1150 std::cout << " m12 " <<identify_if4_m12_e << " " << identify_if4_m12_o <<" P " << ((identify_if4_m12_o & 0x7000)>>12) <<" S " << (identify_if4_m12_o & 0xFFF) << std::endl;
1151 std::cout << endl;
1152 }
1153
1154
1155 if(mrpc_dbs_debug_counter && ( neighborhood==5) )//List all the constructed identifieres:
1156 {
1157
1158
1159 std::cout << "Constructed Identifiers: " << std::endl;
1160 std::cout << " it "<< identify_it_e << " " << identify_it_o << std::endl;
1161 std::cout << " it if5 "<< identify_if5_it_e << " " << identify_if5_it_o << " P " << ((identify_if5_it_o & 0x7000)>>12) <<" S " << (identify_if5_it_o & 0xFFF) <<std::endl;
1162 std::cout << " m1 " <<identify_if5_m1_e << " " << identify_if5_m1_o << " P " << ((identify_if5_m1_o & 0x7000)>>12) <<" S " << (identify_if5_m1_o & 0xFFF) << std::endl;
1163 std::cout << " m2 " <<identify_if5_m2_e << " " << identify_if5_m2_o << " P " << ((identify_if5_m2_o & 0x7000)>>12) <<" S " << (identify_if5_m2_o & 0xFFF) << std::endl;
1164 std::cout << " m3 " <<identify_if5_m3_e << " " << identify_if5_m3_o <<" P " << ((identify_if5_m3_o & 0x7000)>>12) <<" S " << (identify_if5_m3_o & 0xFFF) << std::endl;
1165 std::cout << " m4 " <<identify_if5_m4_e << " " << identify_if5_m4_o <<" P " << ((identify_if5_m4_o & 0x7000)>>12) <<" S " << (identify_if5_m4_o & 0xFFF) << std::endl;
1166 std::cout << " m5 " <<identify_if5_m5_e << " " << identify_if5_m5_o <<" P " << ((identify_if5_m5_o & 0x7000)>>12) <<" S " << (identify_if5_m5_o & 0xFFF) << std::endl;
1167 std::cout << " m6 " <<identify_if5_m6_e << " " << identify_if5_m6_o <<" P " << ((identify_if5_m6_o & 0x7000)>>12) <<" S " << (identify_if5_m6_o & 0xFFF) << std::endl;
1168 std::cout << " m7 " <<identify_if5_m7_e << " " << identify_if5_m7_o <<" P " << ((identify_if5_m7_o & 0x7000)>>12) <<" S " << (identify_if5_m7_o & 0xFFF) << std::endl;
1169 std::cout << " m8 " <<identify_if5_m8_e << " " << identify_if5_m8_o <<" P " << ((identify_if5_m8_o & 0x7000)>>12) <<" S " << (identify_if5_m8_o & 0xFFF) << std::endl;
1170 std::cout << " m9 " <<identify_if5_m9_e << " " << identify_if5_m9_o <<" P " << ((identify_if5_m9_o & 0x7000)>>12) <<" S " << (identify_if5_m9_o & 0xFFF) << std::endl;
1171 std::cout << " m10 " <<identify_if5_m10_e << " " << identify_if5_m10_o<<" P " << ((identify_if5_m10_o & 0x7000)>>12) <<" S " << (identify_if5_m10_o & 0xFFF) << std::endl;
1172 std::cout << " m11 " <<identify_if5_m11_e << " " << identify_if5_m11_o <<" P " << ((identify_if5_m11_o & 0x7000)>>12) <<" S " << (identify_if5_m11_o & 0xFFF) << std::endl;
1173 std::cout << " m12 " <<identify_if5_m12_e << " " << identify_if5_m12_o <<" P " << ((identify_if5_m12_o & 0x7000)>>12) <<" S " << (identify_if5_m12_o & 0xFFF) << std::endl;
1174 std::cout << endl;
1175 std::cout << " l1 " <<identify_if5_l1_e << " " << identify_if5_l1_o<<" P " << ((identify_if5_l1_o & 0x7000)>>12) <<" S " << (identify_if5_l1_o & 0xFFF) << std::endl;
1176 std::cout << " l2 " <<identify_if5_l2_e << " " << identify_if5_l2_o<<" P " << ((identify_if5_l2_o & 0x7000)>>12) <<" S " << (identify_if5_l2_o & 0xFFF) <<std::endl;
1177 std::cout << " l3 " <<identify_if5_l3_e << " " << identify_if5_l3_o<<" P " << ((identify_if5_l3_o & 0x7000)>>12) <<" S " << (identify_if5_l3_o & 0xFFF) << std::endl;
1178 std::cout << " l4 " <<identify_if5_l4_e << " " << identify_if5_l4_o<<" P " << ((identify_if5_l4_o & 0x7000)>>12) <<" S " << (identify_if5_l4_o & 0xFFF) << std::endl;
1179 std::cout << " l5 " <<identify_if5_l5_e << " " << identify_if5_l5_o<<" P " << ((identify_if5_l5_o & 0x7000)>>12) <<" S " << (identify_if5_l5_o & 0xFFF) << std::endl;
1180 std::cout << " l6 " <<identify_if5_l6_e << " " << identify_if5_l6_o<<" P " << ((identify_if5_l6_o & 0x7000)>>12) <<" S " << (identify_if5_l6_o & 0xFFF) << std::endl;
1181 std::cout << " l7 " <<identify_if5_l7_e << " " << identify_if5_l7_o<<" P " << ((identify_if5_l7_o & 0x7000)>>12) <<" S " << (identify_if5_l7_o & 0xFFF) << std::endl;
1182 std::cout << " l8 " <<identify_if5_l8_e << " " << identify_if5_l8_o<<" P " << ((identify_if5_l8_o & 0x7000)>>12) <<" S " << (identify_if5_l8_o & 0xFFF) << std::endl;
1183 std::cout << " l9 " <<identify_if5_l9_e << " " << identify_if5_l9_o<<" P " << ((identify_if5_l9_o & 0x7000)>>12) <<" S " << (identify_if5_l9_o & 0xFFF) << std::endl;
1184 std::cout << " l10 " <<identify_if5_l10_e << " " << identify_if5_l10_o<<" P " << ((identify_if5_l10_o & 0x7000)>>12) <<" S " << (identify_if5_l10_o & 0xFFF) << std::endl;
1185 std::cout << " l11 " <<identify_if5_l11_e << " " << identify_if5_l11_o<<" P " << ((identify_if5_l11_o & 0x7000)>>12) <<" S " << (identify_if5_l11_o & 0xFFF) << std::endl;
1186 std::cout << " l12 " <<identify_if5_l12_e << " " << identify_if5_l12_o<<" P " << ((identify_if5_l12_o & 0x7000)>>12) <<" S " << (identify_if5_l12_o & 0xFFF) << std::endl;
1187 std::cout << endl;
1188 std::cout << " r1 " <<identify_if5_r1_e << " " << identify_if5_r1_o<<" P " << ((identify_if5_r1_o & 0x7000)>>12) <<" S " << (identify_if5_r1_o & 0xFFF) << std::endl;
1189 std::cout << " r2 " <<identify_if5_r2_e << " " << identify_if5_r2_o<<" P " << ((identify_if5_r2_o & 0x7000)>>12) <<" S " << (identify_if5_r2_o & 0xFFF) << std::endl;
1190 std::cout << " r3 " <<identify_if5_r3_e << " " << identify_if5_r3_o<<" P " << ((identify_if5_r3_o & 0x7000)>>12) <<" S " << (identify_if5_r3_o & 0xFFF) << std::endl;
1191 std::cout << " r4 " <<identify_if5_r4_e << " " << identify_if5_r4_o<<" P " << ((identify_if5_r4_o & 0x7000)>>12) <<" S " << (identify_if5_r4_o & 0xFFF) << std::endl;
1192 std::cout << " r5 " <<identify_if5_r5_e << " " << identify_if5_r5_o<<" P " << ((identify_if5_r5_o & 0x7000)>>12) <<" S " << (identify_if5_r5_o & 0xFFF) << std::endl;
1193 std::cout << " r6 " <<identify_if5_r6_e << " " << identify_if5_r6_o<<" P " << ((identify_if5_r6_o & 0x7000)>>12) <<" S " << (identify_if5_r6_o & 0xFFF) << std::endl;
1194 std::cout << " r7 " <<identify_if5_r7_e << " " << identify_if5_r7_o<<" P " << ((identify_if5_r7_o & 0x7000)>>12) <<" S " << (identify_if5_r7_o & 0xFFF) << std::endl;
1195 std::cout << " r8 " <<identify_if5_r8_e << " " << identify_if5_r8_o<<" P " << ((identify_if5_r8_o & 0x7000)>>12) <<" S " << (identify_if5_r8_o & 0xFFF) << std::endl;
1196 std::cout << " r9 " <<identify_if5_r9_e << " " << identify_if5_r9_o<<" P " << ((identify_if5_r9_o & 0x7000)>>12) <<" S " << (identify_if5_r9_o & 0xFFF) << std::endl;
1197 std::cout << " r10 " <<identify_if5_r10_e << " " << identify_if5_r10_o<<" P " << ((identify_if5_r10_o & 0x7000)>>12) <<" S " << (identify_if5_r10_o & 0xFFF) << std::endl;
1198 std::cout << " r11 " <<identify_if5_r11_e << " " << identify_if5_r11_o<<" P " << ((identify_if5_r11_o & 0x7000)>>12) <<" S " << (identify_if5_r11_o & 0xFFF) << std::endl;
1199std::cout << " r12 " <<identify_if5_r12_e << " " << identify_if5_r12_o<<" P " << ((identify_if5_r12_o & 0x7000)>>12) <<" S " << (identify_if5_r12_o & 0xFFF) << std::endl;
1200 std::cout << endl;
1201
1202 }
1203
1204
1205 if(count_it >0)
1206 {
1207 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_it > 0 count_it = " << count_it << std::endl;
1208
1209 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_it_e );
1210 IterTofDataMap iter_e = range_e.first;
1211 for( unsigned int i = 0; i < count_it_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 1 );
1212
1213 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_it_o );
1214 IterTofDataMap iter_o = range_o.first;
1215 for( unsigned int i = 0; i < count_it_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 1 );
1216
1217
1218 }//close if(count_it >0)
1219
1220 if(count_u >0)
1221 {
1222 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_u > 0 count_u = " << count_u << std::endl;
1223
1224
1225
1226 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_u_e );
1227 IterTofDataMap iter_e = range_e.first;
1228 for( unsigned int i = 0; i < count_u_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1229
1230 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_u_o );
1231 IterTofDataMap iter_o = range_o.first;
1232 for( unsigned int i = 0; i < count_u_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1233
1234 }//close if(count_u >0)
1235 if(count_b >0)
1236 {
1237 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_b > 0 count_b = " << count_b << std::endl;
1238
1239
1240 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_b_e );
1241 IterTofDataMap iter_e = range_e.first;
1242 for( unsigned int i = 0; i < count_b_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1243
1244 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_b_o );
1245 IterTofDataMap iter_o = range_o.first;
1246 for( unsigned int i = 0; i < count_b_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1247
1248 }//close if(count_b >0)
1249
1250 if(count_l >0)
1251 {
1252 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_l > 0 count_l = " << count_l << std::endl;
1253
1254
1255 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_l_e );
1256 IterTofDataMap iter_e = range_e.first;
1257 for( unsigned int i = 0; i < count_l_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1258
1259 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_l_o );
1260 IterTofDataMap iter_o = range_o.first;
1261 for( unsigned int i = 0; i < count_l_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1262
1263 }//close if(count_l >0)
1264
1265 if(count_r >0)
1266 {
1267 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_r > 0 count_r = " << count_r << std::endl;
1268
1269 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_r_e );
1270 IterTofDataMap iter_e = range_e.first;
1271 for( unsigned int i = 0; i < count_r_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1272
1273 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_r_o );
1274 IterTofDataMap iter_o = range_o.first;
1275 for( unsigned int i = 0; i < count_r_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1276
1277
1278 }//close if(count_r >0)
1279 if(count_lu >0)
1280 {
1281 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_lu > 0 count_lu = " << count_lu << std::endl;
1282
1283
1284
1285 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_lu_e );
1286 IterTofDataMap iter_e = range_e.first;
1287 for( unsigned int i = 0; i < count_lu_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1288
1289 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_lu_o );
1290 IterTofDataMap iter_o = range_o.first;
1291 for( unsigned int i = 0; i < count_lu_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1292
1293 }//close if(count_lu >0)
1294
1295 if(count_ru >0)
1296 {
1297 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_ru > 0 count_ru = " << count_ru << std::endl;
1298
1299
1300 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_ru_e );
1301 IterTofDataMap iter_e = range_e.first;
1302 for( unsigned int i = 0; i < count_ru_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1303
1304 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_ru_o );
1305 IterTofDataMap iter_o = range_o.first;
1306 for( unsigned int i = 0; i < count_ru_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1307
1308 }//close if(count_ru >0)
1309
1310 if(count_lb >0)
1311 {
1312 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_lb > 0 count_lb = " << count_lb << std::endl;
1313
1314
1315 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_lb_e );
1316 IterTofDataMap iter_e = range_e.first;
1317 for( unsigned int i = 0; i < count_lb_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1318
1319 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_lb_o );
1320 IterTofDataMap iter_o = range_o.first;
1321 for( unsigned int i = 0; i < count_lb_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1322
1323 }//close if(count_lb >0)
1324
1325 if(count_rb >0)
1326 {
1327 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_rb > 0 count_rb = " << count_rb << std::endl;
1328
1329
1330 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_rb_e );
1331 IterTofDataMap iter_e = range_e.first;
1332 for( unsigned int i = 0; i < count_rb_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1333
1334 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_rb_o );
1335 IterTofDataMap iter_o = range_o.first;
1336 for( unsigned int i = 0; i < count_rb_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1337
1338 }//close if(count_rb >0)
1339
1340 ///IF 4:
1341 if(count_if4_m1>0)
1342 {
1343
1344 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if4_m1 > 0 count_if4_m1 = " << count_if4_m1 << std::endl;
1345
1346 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if4_m1_e );
1347 IterTofDataMap iter_e = range_e.first;
1348 for( unsigned int i = 0; i < count_if4_m1_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1349
1350 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if4_m1_o );
1351 IterTofDataMap iter_o = range_o.first;
1352 for( unsigned int i = 0; i < count_if4_m1_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1353
1354 }
1355 if(count_if4_m2>0)
1356 {
1357 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if4_m2 > 0 count_if4_m2 = " << count_if4_m2 << std::endl;
1358
1359
1360 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if4_m2_e );
1361 IterTofDataMap iter_e = range_e.first;
1362 for( unsigned int i = 0; i < count_if4_m2_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1363
1364 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if4_m2_o );
1365 IterTofDataMap iter_o = range_o.first;
1366 for( unsigned int i = 0; i < count_if4_m2_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1367
1368
1369
1370
1371 }
1372 if(count_if4_m3>0)
1373 {
1374 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if4_m3 > 0 count_if4_m3 = " << count_if4_m3 << std::endl;
1375
1376
1377 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if4_m3_e );
1378 IterTofDataMap iter_e = range_e.first;
1379 for( unsigned int i = 0; i < count_if4_m3_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1380
1381 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if4_m3_o );
1382 IterTofDataMap iter_o = range_o.first;
1383 for( unsigned int i = 0; i < count_if4_m3_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1384
1385
1386 }
1387 if(count_if4_m4>0)
1388 {
1389 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if4_m4 > 0 count_if4_m4 = " << count_if4_m4 << std::endl;
1390
1391
1392 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if4_m4_e );
1393 IterTofDataMap iter_e = range_e.first;
1394 for( unsigned int i = 0; i < count_if4_m4_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1395
1396 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if4_m4_o );
1397 IterTofDataMap iter_o = range_o.first;
1398 for( unsigned int i = 0; i < count_if4_m4_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1399
1400
1401 }
1402 if(count_if4_m5>0)
1403 {
1404 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if4_m5 > 0 count_if4_m5 = " << count_if4_m5 << std::endl;
1405
1406
1407 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if4_m5_e );
1408 IterTofDataMap iter_e = range_e.first;
1409 for( unsigned int i = 0; i < count_if4_m5_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1410
1411 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if4_m5_o );
1412 IterTofDataMap iter_o = range_o.first;
1413 for( unsigned int i = 0; i < count_if4_m5_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1414
1415
1416
1417
1418 }
1419 if(count_if4_m6>0)
1420 {
1421 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if4_m6 > 0 count_if4_m6 = " << count_if4_m6 << std::endl;
1422
1423
1424
1425 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if4_m6_e );
1426 IterTofDataMap iter_e = range_e.first;
1427 for( unsigned int i = 0; i < count_if4_m6_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1428
1429 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if4_m6_o );
1430 IterTofDataMap iter_o = range_o.first;
1431 for( unsigned int i = 0; i < count_if4_m6_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1432
1433
1434
1435 }
1436 if(count_if4_m7>0)
1437 {
1438 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if4_m7 > 0 count_if4_m7 = " << count_if4_m7 << std::endl;
1439
1440
1441 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if4_m7_e );
1442 IterTofDataMap iter_e = range_e.first;
1443 for( unsigned int i = 0; i < count_if4_m7_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1444
1445 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if4_m7_o );
1446 IterTofDataMap iter_o = range_o.first;
1447 for( unsigned int i = 0; i < count_if4_m7_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1448
1449
1450
1451
1452 }
1453 if(count_if4_m8>0)
1454 {
1455 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if4_m8 > 0 count_if4_m8 = " << count_if4_m8 << std::endl;
1456
1457
1458
1459 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if4_m8_e );
1460 IterTofDataMap iter_e = range_e.first;
1461 for( unsigned int i = 0; i < count_if4_m8_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1462
1463 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if4_m8_o );
1464 IterTofDataMap iter_o = range_o.first;
1465 for( unsigned int i = 0; i < count_if4_m8_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1466
1467
1468
1469
1470 }
1471 if(count_if4_m9>0)
1472 {
1473 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if4_m9 > 0 count_if4_m9 = " << count_if4_m9 << std::endl;
1474
1475
1476 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if4_m9_e );
1477 IterTofDataMap iter_e = range_e.first;
1478 for( unsigned int i = 0; i < count_if4_m9_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1479
1480 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if4_m9_o );
1481 IterTofDataMap iter_o = range_o.first;
1482 for( unsigned int i = 0; i < count_if4_m9_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1483
1484
1485
1486
1487 }
1488 if(count_if4_m10>0)
1489 {
1490 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if4_m10 > 0 count_if4_m10 = " << count_if4_m10 << std::endl;
1491
1492
1493 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if4_m10_e );
1494 IterTofDataMap iter_e = range_e.first;
1495 for( unsigned int i = 0; i < count_if4_m10_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1496
1497 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if4_m10_o );
1498 IterTofDataMap iter_o = range_o.first;
1499 for( unsigned int i = 0; i < count_if4_m10_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1500
1501
1502
1503
1504
1505 }
1506 if(count_if4_m11>0)
1507 {
1508 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if4_m11 > 0 count_if4_m11 = " << count_if4_m11 << std::endl;
1509
1510
1511
1512 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if4_m11_e );
1513 IterTofDataMap iter_e = range_e.first;
1514 for( unsigned int i = 0; i < count_if4_m11_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1515
1516 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if4_m11_o );
1517 IterTofDataMap iter_o = range_o.first;
1518 for( unsigned int i = 0; i < count_if4_m11_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1519
1520
1521
1522
1523 }
1524 if(count_if4_m12>0)
1525 {
1526 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if4_m12 > 0 count_if4_m12 = " << count_if4_m12 << std::endl;
1527
1528
1529 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if4_m12_e );
1530 IterTofDataMap iter_e = range_e.first;
1531 for( unsigned int i = 0; i < count_if4_m12_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1532
1533 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if4_m12_o );
1534 IterTofDataMap iter_o = range_o.first;
1535 for( unsigned int i = 0; i < count_if4_m12_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1536
1537
1538 }
1539
1540 //If5 :
1541 if(count_if5_m1>0)
1542 {
1543 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_m1 > 0 count_if5_m1 = " << count_if5_m1 << std::endl;
1544
1545 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_m1_e );
1546 IterTofDataMap iter_e = range_e.first;
1547 for( unsigned int i = 0; i < count_if5_m1_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1548
1549 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_m1_o );
1550 IterTofDataMap iter_o = range_o.first;
1551 for( unsigned int i = 0; i < count_if5_m1_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1552
1553 }
1554 if(count_if5_m2>0)
1555 {
1556 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_m2 > 0 count_if5_m2 = " << count_if5_m2 << std::endl;
1557
1558 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_m2_e );
1559 IterTofDataMap iter_e = range_e.first;
1560 for( unsigned int i = 0; i < count_if5_m2_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1561
1562 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_m2_o );
1563 IterTofDataMap iter_o = range_o.first;
1564 for( unsigned int i = 0; i < count_if5_m2_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1565
1566
1567 }
1568 if(count_if5_m3>0)
1569 {
1570 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_m3 > 0 count_if5_m3 = " << count_if5_m3 << std::endl;
1571
1572
1573 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_m3_e );
1574 IterTofDataMap iter_e = range_e.first;
1575 for( unsigned int i = 0; i < count_if5_m3_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1576
1577 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_m3_o );
1578 IterTofDataMap iter_o = range_o.first;
1579 for( unsigned int i = 0; i < count_if5_m3_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1580
1581
1582 }
1583 if(count_if5_m4>0)
1584 {
1585 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_m4 > 0 count_if5_m4 = " << count_if5_m4 << std::endl;
1586
1587
1588 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_m4_e );
1589 IterTofDataMap iter_e = range_e.first;
1590 for( unsigned int i = 0; i < count_if5_m4_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1591
1592 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_m4_o );
1593 IterTofDataMap iter_o = range_o.first;
1594 for( unsigned int i = 0; i < count_if5_m4_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1595
1596
1597 }
1598 if(count_if5_m5>0)
1599 {
1600 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_m5 > 0 count_if5_m5 = " << count_if5_m5 << std::endl;
1601
1602 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_m5_e );
1603 IterTofDataMap iter_e = range_e.first;
1604 for( unsigned int i = 0; i < count_if5_m5_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1605
1606 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_m5_o );
1607 IterTofDataMap iter_o = range_o.first;
1608 for( unsigned int i = 0; i < count_if5_m5_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1609
1610
1611 }
1612 if(count_if5_m6>0)
1613 {
1614 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_m6 > 0 count_if5_m6 = " << count_if5_m6 << std::endl;
1615
1616
1617 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_m6_e );
1618 IterTofDataMap iter_e = range_e.first;
1619 for( unsigned int i = 0; i < count_if5_m6_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1620
1621 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_m6_o );
1622 IterTofDataMap iter_o = range_o.first;
1623 for( unsigned int i = 0; i < count_if5_m6_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1624
1625
1626 }
1627 if(count_if5_m7>0)
1628 {
1629 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_m7 > 0 count_if5_m7 = " << count_if5_m7 << std::endl;
1630
1631
1632 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_m7_e );
1633 IterTofDataMap iter_e = range_e.first;
1634 for( unsigned int i = 0; i < count_if5_m7_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1635
1636 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_m7_o );
1637 IterTofDataMap iter_o = range_o.first;
1638 for( unsigned int i = 0; i < count_if5_m7_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1639
1640
1641 }
1642 if(count_if5_m8>0)
1643 {
1644 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_m8 > 0 count_if5_m8 = " << count_if5_m8 << std::endl;
1645
1646
1647 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_m8_e );
1648 IterTofDataMap iter_e = range_e.first;
1649 for( unsigned int i = 0; i < count_if5_m8_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1650
1651 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_m8_o );
1652 IterTofDataMap iter_o = range_o.first;
1653 for( unsigned int i = 0; i < count_if5_m8_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1654
1655 }
1656 if(count_if5_m9>0)
1657 {
1658 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_m9 > 0 count_if5_m9 = " << count_if5_m9 << std::endl;
1659
1660
1661 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_m9_e );
1662 IterTofDataMap iter_e = range_e.first;
1663 for( unsigned int i = 0; i < count_if5_m9_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1664
1665 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_m9_o );
1666 IterTofDataMap iter_o = range_o.first;
1667 for( unsigned int i = 0; i < count_if5_m9_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1668
1669
1670 }
1671 if(count_if5_m10>0)
1672 {
1673 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_m10 > 0 count_if5_m10 = " << count_if5_m10 << std::endl;
1674
1675
1676 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_m10_e );
1677 IterTofDataMap iter_e = range_e.first;
1678 for( unsigned int i = 0; i < count_if5_m10_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1679
1680 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_m10_o );
1681 IterTofDataMap iter_o = range_o.first;
1682 for( unsigned int i = 0; i < count_if5_m10_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1683
1684 }
1685 if(count_if5_m11>0)
1686 {
1687 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_m11 > 0 count_if5_m11 = " << count_if5_m11 << std::endl;
1688
1689
1690 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_m11_e );
1691 IterTofDataMap iter_e = range_e.first;
1692 for( unsigned int i = 0; i < count_if5_m11_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1693
1694 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_m11_o );
1695 IterTofDataMap iter_o = range_o.first;
1696 for( unsigned int i = 0; i < count_if5_m11_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1697
1698 }
1699 if(count_if5_m12>0)
1700 {
1701 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_m12 > 0 count_if5_m12 = " << count_if5_m12 << std::endl;
1702
1703
1704 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_m12_e );
1705 IterTofDataMap iter_e = range_e.first;
1706 for( unsigned int i = 0; i < count_if5_m12_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1707
1708 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_m12_o );
1709 IterTofDataMap iter_o = range_o.first;
1710 for( unsigned int i = 0; i < count_if5_m12_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1711
1712 }
1713 if(count_if5_l1>0)
1714 {
1715 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_l1 > 0 count_if5_l1 = " << count_if5_l1 << std::endl;
1716
1717 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_l1_e );
1718 IterTofDataMap iter_e = range_e.first;
1719 for( unsigned int i = 0; i < count_if5_l1_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1720
1721 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_l1_o );
1722 IterTofDataMap iter_o = range_o.first;
1723 for( unsigned int i = 0; i < count_if5_l1_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1724
1725
1726 }
1727 if(count_if5_l2>0)
1728 {
1729 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_l2 > 0 count_if5_l2 = " << count_if5_l2 << std::endl;
1730
1731 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_l2_e );
1732 IterTofDataMap iter_e = range_e.first;
1733 for( unsigned int i = 0; i < count_if5_l2_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1734
1735 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_l2_o );
1736 IterTofDataMap iter_o = range_o.first;
1737 for( unsigned int i = 0; i < count_if5_l2_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1738
1739 }
1740 if(count_if5_l3>0)
1741 {
1742 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_l3 > 0 count_if5_l3 = " << count_if5_l3 << std::endl;
1743
1744 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_l3_e );
1745 IterTofDataMap iter_e = range_e.first;
1746 for( unsigned int i = 0; i < count_if5_l3_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1747
1748 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_l3_o );
1749 IterTofDataMap iter_o = range_o.first;
1750 for( unsigned int i = 0; i < count_if5_l3_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1751
1752 }
1753 if(count_if5_l4>0)
1754 {
1755 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_l4 > 0 count_if5_l4 = " << count_if5_l4 << std::endl;
1756
1757 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_l4_e );
1758 IterTofDataMap iter_e = range_e.first;
1759 for( unsigned int i = 0; i < count_if5_l4_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1760
1761 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_l4_o );
1762 IterTofDataMap iter_o = range_o.first;
1763 for( unsigned int i = 0; i < count_if5_l4_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1764
1765 }
1766 if(count_if5_l5>0)
1767 {
1768 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_l5 > 0 count_if5_l5 = " << count_if5_l5 << std::endl;
1769
1770
1771 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_l5_e );
1772 IterTofDataMap iter_e = range_e.first;
1773 for( unsigned int i = 0; i < count_if5_l5_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1774
1775 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_l5_o );
1776 IterTofDataMap iter_o = range_o.first;
1777 for( unsigned int i = 0; i < count_if5_l5_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1778
1779 }
1780 if(count_if5_l6>0)
1781 {
1782 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_l6 > 0 count_if5_l6 = " << count_if5_l6 << std::endl;
1783
1784 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_l6_e );
1785 IterTofDataMap iter_e = range_e.first;
1786 for( unsigned int i = 0; i < count_if5_l6_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1787
1788 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_l6_o );
1789 IterTofDataMap iter_o = range_o.first;
1790 for( unsigned int i = 0; i < count_if5_l6_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1791
1792 }
1793 if(count_if5_l7>0)
1794 {
1795 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_l7 > 0 count_if5_l7 = " << count_if5_l7 << std::endl;
1796
1797 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_l7_e );
1798 IterTofDataMap iter_e = range_e.first;
1799 for( unsigned int i = 0; i < count_if5_l7_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1800
1801 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_l7_o );
1802 IterTofDataMap iter_o = range_o.first;
1803 for( unsigned int i = 0; i < count_if5_l7_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1804
1805 }
1806 if(count_if5_l8>0)
1807 {
1808 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_l8 > 0 count_if5_l8 = " << count_if5_l8 << std::endl;
1809
1810 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_l8_e );
1811 IterTofDataMap iter_e = range_e.first;
1812 for( unsigned int i = 0; i < count_if5_l8_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1813
1814 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_l8_o );
1815 IterTofDataMap iter_o = range_o.first;
1816 for( unsigned int i = 0; i < count_if5_l8_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1817
1818 }
1819 if(count_if5_l9>0)
1820 {
1821 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_l9 > 0 count_if5_l9 = " << count_if5_l9 << std::endl;
1822
1823 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_l9_e );
1824 IterTofDataMap iter_e = range_e.first;
1825 for( unsigned int i = 0; i < count_if5_l9_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1826
1827 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_l9_o );
1828 IterTofDataMap iter_o = range_o.first;
1829 for( unsigned int i = 0; i < count_if5_l9_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1830
1831 }
1832 if(count_if5_l10>0)
1833 {
1834 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_l10 > 0 count_if5_l10 = " << count_if5_l10 << std::endl;
1835
1836
1837 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_l10_e );
1838 IterTofDataMap iter_e = range_e.first;
1839 for( unsigned int i = 0; i < count_if5_l10_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1840
1841 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_l10_o );
1842 IterTofDataMap iter_o = range_o.first;
1843 for( unsigned int i = 0; i < count_if5_l10_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1844
1845
1846 }
1847 if(count_if5_l11>0)
1848 {
1849 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_l11 > 0 count_if5_l11 = " << count_if5_l11 << std::endl;
1850
1851
1852 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_l11_e );
1853 IterTofDataMap iter_e = range_e.first;
1854 for( unsigned int i = 0; i < count_if5_l11_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1855
1856 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_l11_o );
1857 IterTofDataMap iter_o = range_o.first;
1858 for( unsigned int i = 0; i < count_if5_l11_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1859
1860
1861 }
1862 if(count_if5_l12>0)
1863 {
1864 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_l12 > 0 count_if5_l12 = " << count_if5_l12 << std::endl;
1865
1866
1867 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_l12_e );
1868 IterTofDataMap iter_e = range_e.first;
1869 for( unsigned int i = 0; i < count_if5_l12_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1870
1871 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_l12_o );
1872 IterTofDataMap iter_o = range_o.first;
1873 for( unsigned int i = 0; i < count_if5_l12_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1874
1875
1876 }
1877
1878 if(count_if5_r1>0)
1879 {
1880 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_r1 > 0 count_if5_r1 = " << count_if5_r1 << std::endl;
1881
1882 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_r1_e );
1883 IterTofDataMap iter_e = range_e.first;
1884 for( unsigned int i = 0; i < count_if5_r1_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1885
1886 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_r1_o );
1887 IterTofDataMap iter_o = range_o.first;
1888 for( unsigned int i = 0; i < count_if5_r1_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1889
1890
1891 }
1892 if(count_if5_r2>0)
1893 {
1894 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_r2 > 0 count_if5_r2 = " << count_if5_r2 << std::endl;
1895
1896
1897 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_r2_e );
1898 IterTofDataMap iter_e = range_e.first;
1899 for( unsigned int i = 0; i < count_if5_r2_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1900
1901 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_r2_o );
1902 IterTofDataMap iter_o = range_o.first;
1903 for( unsigned int i = 0; i < count_if5_r2_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1904
1905
1906
1907 }
1908 if(count_if5_r3>0)
1909 {
1910 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_r3 > 0 count_if5_r3 = " << count_if5_r3 << std::endl;
1911
1912
1913 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_r3_e );
1914 IterTofDataMap iter_e = range_e.first;
1915 for( unsigned int i = 0; i < count_if5_r3_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1916
1917 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_r3_o );
1918 IterTofDataMap iter_o = range_o.first;
1919 for( unsigned int i = 0; i < count_if5_r3_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1920
1921
1922 }
1923 if(count_if5_r4>0)
1924 {
1925 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_r4 > 0 count_if5_r4 = " << count_if5_r4 << std::endl;
1926
1927
1928 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_r4_e );
1929 IterTofDataMap iter_e = range_e.first;
1930 for( unsigned int i = 0; i < count_if5_r4_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1931
1932 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_r4_o );
1933 IterTofDataMap iter_o = range_o.first;
1934 for( unsigned int i = 0; i < count_if5_r4_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1935
1936
1937
1938 }
1939 if(count_if5_r5>0)
1940 {
1941 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_r5 > 0 count_if5_r5 = " << count_if5_r5 << std::endl;
1942
1943
1944 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_r5_e );
1945 IterTofDataMap iter_e = range_e.first;
1946 for( unsigned int i = 0; i < count_if5_r5_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1947
1948 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_r5_o );
1949 IterTofDataMap iter_o = range_o.first;
1950 for( unsigned int i = 0; i < count_if5_r5_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1951
1952
1953 }
1954 if(count_if5_r6>0)
1955 {
1956 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_r6 > 0 count_if5_r6 = " << count_if5_r6 << std::endl;
1957
1958 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_r6_e );
1959 IterTofDataMap iter_e = range_e.first;
1960 for( unsigned int i = 0; i < count_if5_r6_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1961
1962 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_r6_o );
1963 IterTofDataMap iter_o = range_o.first;
1964 for( unsigned int i = 0; i < count_if5_r6_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1965
1966
1967 }
1968 if(count_if5_r7>0)
1969 {
1970 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_r7 > 0 count_if5_r7 = " << count_if5_r7 << std::endl;
1971
1972
1973 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_r7_e );
1974 IterTofDataMap iter_e = range_e.first;
1975 for( unsigned int i = 0; i < count_if5_r7_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1976
1977 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_r7_o );
1978 IterTofDataMap iter_o = range_o.first;
1979 for( unsigned int i = 0; i < count_if5_r7_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1980
1981 }
1982 if(count_if5_r8>0)
1983 {
1984 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_r8 > 0 count_if5_r8 = " << count_if5_r8 << std::endl;
1985
1986
1987 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_r8_e );
1988 IterTofDataMap iter_e = range_e.first;
1989 for( unsigned int i = 0; i < count_if5_r8_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
1990
1991 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_r8_o );
1992 IterTofDataMap iter_o = range_o.first;
1993 for( unsigned int i = 0; i < count_if5_r8_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
1994
1995
1996 }
1997 if(count_if5_r9>0)
1998 {
1999 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_r9 > 0 count_if5_r9 = " << count_if5_r9 << std::endl;
2000
2001
2002 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_r9_e );
2003 IterTofDataMap iter_e = range_e.first;
2004 for( unsigned int i = 0; i < count_if5_r9_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
2005
2006 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_r9_o );
2007 IterTofDataMap iter_o = range_o.first;
2008 for( unsigned int i = 0; i < count_if5_r9_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
2009
2010
2011 }
2012 if(count_if5_r10>0)
2013 {
2014 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_r10 > 0 count_if5_r10 = " << count_if5_r10 << std::endl;
2015
2016
2017 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_r10_e );
2018 IterTofDataMap iter_e = range_e.first;
2019 for( unsigned int i = 0; i < count_if5_r10_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
2020
2021 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_r10_o );
2022 IterTofDataMap iter_o = range_o.first;
2023 for( unsigned int i = 0; i < count_if5_r10_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
2024
2025
2026
2027 }
2028 if(count_if5_r11>0)
2029 {
2030 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_r11 > 0 count_if5_r11 = " << count_if5_r11 << std::endl;
2031
2032
2033 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_r11_e );
2034 IterTofDataMap iter_e = range_e.first;
2035 for( unsigned int i = 0; i < count_if5_r11_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
2036
2037 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_r11_o );
2038 IterTofDataMap iter_o = range_o.first;
2039 for( unsigned int i = 0; i < count_if5_r11_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
2040
2041
2042
2043 }
2044 if(count_if5_r12>0)
2045 {
2046 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData -match count_if5_r12 > 0 count_if5_r12 = " << count_if5_r12 << std::endl;
2047
2048
2049 pair< IterTofDataMap, IterTofDataMap > range_e = tofDataMap.equal_range( identify_if5_r12_e );
2050 IterTofDataMap iter_e = range_e.first;
2051 for( unsigned int i = 0; i < count_if5_r12_e; i++, iter_e++ ) tofDataAnalysis( (*iter_e).second, 2 );
2052
2053 pair< IterTofDataMap, IterTofDataMap > range_o = tofDataMap.equal_range( identify_if5_r12_o );
2054 IterTofDataMap iter_o = range_o.first;
2055 for( unsigned int i = 0; i < count_if5_r12_o; i++, iter_o++ ) tofDataAnalysis( (*iter_o).second, 2 );
2056
2057
2058 }
2059
2060
2061
2062
2063
2064 // ------------------------------------------------------------------------
2065 // --------------------Old Tof analyis, but also barrel part! -------------
2066 // ------------------------------------------------------------------------
2067 if( ( ( m_hitCase == InnerLayer ) || ( m_hitCase == DoubleLayer ) ) && ( m_id1 > -1 ) ) {
2068 int tofid0 = m_id1;
2069 identify0 = TofID::getIntID( 1, 0, tofid0, 0 );
2070 count0 = tofDataMap.count( identify0 );
2071 int tofid1 = tofid0 - 1;
2072 if( tofid1 == -1 ) { tofid1 = 87; }
2073 identify1 = TofID::getIntID( 1, 0, tofid1, 0 );
2074 count1 = tofDataMap.count( identify1 );
2075 int tofid2 = tofid0 + 1;
2076 if( tofid2 == 88 ) { tofid2 = 0; }
2077 identify2 = TofID::getIntID( 1, 0, tofid2, 0 );
2078 count2 = tofDataMap.count( identify2 );
2079
2080 }
2081
2082 if( ( m_hitCase == EastEndcap ) && ( m_id1 > -1 ) ) {
2083 int tofid0 = m_id1;
2084 identify0 = TofID::getIntID( 0, 0, tofid0, 0 );
2085 count0 = tofDataMap.count( identify0 );
2086 int tofid1 = tofid0 - 1;
2087 if( tofid1 == -1 ) { tofid1 = 47; }
2088 identify1 = TofID::getIntID( 0, 0, tofid1, 0 );
2089 count1 = tofDataMap.count( identify1 );
2090 int tofid2 = tofid0 + 1;
2091 if( tofid2 == 48 ) { tofid2 = 0; }
2092 identify2 = TofID::getIntID( 0, 0, tofid2, 0 );
2093 count2 = tofDataMap.count( identify2 );
2094
2095 //std::cout << "MrpcDBSTrack setTofData EastEndcap c0 c1 c2 : " << count0 << " | " << count1 << " | " << count2 << std::endl;
2096 }
2097
2098 if( ( m_hitCase == WestEndcap ) && ( m_id1 > -1 ) ) {
2099 int tofid0 = m_id1 - 48;
2100 identify0 = TofID::getIntID( 2, 0, tofid0, 0 );
2101 count0 = tofDataMap.count( identify0 );
2102 int tofid1 = tofid0 - 1;
2103 if( tofid1 == -1 ) { tofid1 = 47; }
2104 identify1 = TofID::getIntID( 2, 0, tofid1, 0 );
2105 count1 = tofDataMap.count( identify1 );
2106 int tofid2 = tofid0 + 1;
2107 if( tofid2 == 48 ) { tofid2 = 0; }
2108 identify2 = TofID::getIntID( 2, 0, tofid2, 0 );
2109 count2 = tofDataMap.count( identify2 );
2110
2111 //std::cout << "MrpcDBSTrack setTofData WsstEndcap c0 c1 c2 : " << count0 << " | "<< count1 << " | " << count2 <<std::endl;
2112 }
2113
2114 if( count0 > 0 ) {
2115 pair< IterTofDataMap, IterTofDataMap > range = tofDataMap.equal_range( identify0 );
2116 IterTofDataMap iter = range.first;
2117 for( unsigned int i = 0; i < count0; i++, iter++ ) {
2118 tofDataAnalysis( (*iter).second, 1 );
2119 }
2120 }
2121 if( count1 > 0 ) {
2122 pair< IterTofDataMap, IterTofDataMap > range = tofDataMap.equal_range( identify1 );
2123 IterTofDataMap iter = range.first;
2124 for( unsigned int i = 0; i < count1; i++, iter++ ) {
2125 tofDataAnalysis( (*iter).second, 2 );
2126 }
2127 }
2128 if( count2 > 0 ) {
2129 pair< IterTofDataMap, IterTofDataMap > range = tofDataMap.equal_range( identify2 );
2130 IterTofDataMap iter = range.first;
2131 for( unsigned int i = 0; i < count2; i++, iter++ ) {
2132 tofDataAnalysis( (*iter).second, 2 );
2133 }
2134 }
2135
2136 if( ( count0 == 0 ) && ( count1 == 0 ) && ( count2 == 0 )
2137 //Region 1
2138 && (count_it==0)
2139 //Region 2
2140 && (count_u==0) && (count_b==0)
2141 //Region 3
2142 && (count_l==0) && (count_lu==0) && (count_lb==0) && (count_r==0) && (count_ru==0) && (count_rb==0)
2143 //Neighborhood if=4:
2144 && (count_if4_m1==0) && (count_if4_m2==0) && (count_if4_m3==0) && (count_if4_m4==0) && (count_if4_m5==0) && (count_if4_m6==0) && (count_if4_m7==0) && (count_if4_m8==0)
2145 && (count_if4_m9==0) && (count_if4_m10==0) && (count_if4_m11==0) && (count_if4_m11==0) && (count_if4_m12==0)
2146 //Neighborhood if=5
2147 && (count_if5_m1 ==0) && (count_if5_m2 ==0) && (count_if5_m3 ==0) && (count_if5_m4 ==0) && (count_if5_m5 ==0) && (count_if5_m6 ==0) && (count_if5_m7 ==0) && (count_if5_m8 ==0) && (count_if5_m9 ==0)
2148 && (count_if5_m10 ==0) && (count_if5_m11 ==0) && (count_if5_m12 ==0)
2149 && (count_if5_l1 ==0) && (count_if5_l2 ==0) && (count_if5_l3 ==0)&& (count_if5_l4 ==0) && (count_if5_l5 ==0) && (count_if5_l6 ==0) && (count_if5_l7 ==0)&& (count_if5_l8 ==0) && (count_if5_l9 ==0)
2150 && (count_if5_l10 ==0) && (count_if5_l11 ==0) && (count_if5_l12 ==0)
2151 && (count_if5_r1 ==0) && (count_if5_r2 ==0) && (count_if5_r3 ==0)&& (count_if5_r4 ==0) && (count_if5_r5 ==0) && (count_if5_r6 ==0) && (count_if5_r7 ==0)&& (count_if5_r8 ==0) && (count_if5_r9 ==0)
2152 && (count_if5_r10 ==0) && (count_if5_r11 ==0) && (count_if5_r12 ==0)
2153 ) {
2154
2155 if(mrpc_dbs_debug_counter) std::cout << "MrpcDBSTrack setTofData - All count variables are equal 0. m_hitCase | m_id1 " << m_hitCase << " | " << m_id1 << std::endl;
2156
2157 if( m_hitCase != DoubleLayer ) {
2158 m_hitCase = NoHit;
2159 m_quality = 12;
2160 }
2161 else {
2162 m_hitCase = OuterLayer;
2163 }
2164 }
2165
2166 if( ( ( m_hitCase == OuterLayer ) || ( m_hitCase == DoubleLayer ) ) && ( m_id2 > 87 ) ) {
2167 int tofid0 = m_id2 - 88;
2168 identify0 = TofID::getIntID( 1, 1, tofid0, 0 );
2169 count0 = tofDataMap.count( identify0 );
2170 int tofid1 = tofid0 - 1;
2171 if( tofid1 == -1 ) { tofid1 = 87; }
2172 identify1 = TofID::getIntID( 1, 1, tofid1, 0 );
2173 count1 = tofDataMap.count( identify1 );
2174 int tofid2 = tofid0 + 1;
2175 if( tofid2 == 88 ) { tofid2 = 0; }
2176 identify2 = TofID::getIntID( 1, 1, tofid2, 0 );
2177 count2 = tofDataMap.count( identify2 );
2178
2179 if( count0 > 0 ) {
2180 pair< IterTofDataMap, IterTofDataMap > range = tofDataMap.equal_range( identify0 );
2181 IterTofDataMap iter = range.first;
2182 for( unsigned int i = 0; i < count0; i++, iter++ ) {
2183 tofDataAnalysis( (*iter).second, 3 );
2184 }
2185 }
2186 if( count1 > 0 ) {
2187 pair< IterTofDataMap, IterTofDataMap > range = tofDataMap.equal_range( identify1 );
2188 IterTofDataMap iter = range.first;
2189 for( unsigned int i = 0; i < count1; i++, iter++ ) {
2190 tofDataAnalysis( (*iter).second, 4 );
2191 }
2192 }
2193 if( count2 > 0 ) {
2194 pair< IterTofDataMap, IterTofDataMap > range = tofDataMap.equal_range( identify2 );
2195 IterTofDataMap iter = range.first;
2196 for( unsigned int i = 0; i < count2; i++, iter++ ) {
2197 tofDataAnalysis( (*iter).second, 4 );
2198 }
2199 }
2200
2201 if( ( count0 == 0 ) && ( count1 == 0 ) && ( count2 == 0 ) ) {
2202 if( m_hitCase != DoubleLayer ) {
2203 m_hitCase = NoHit;
2204 m_quality = 12;
2205 }
2206 else {
2207 m_hitCase = InnerLayer;
2208 }
2209 }
2210 }
2211
2212
2213 if(mrpc_dbs_debug_counter) std::cout << "---------------- END EVENT -> mrpc_dbs_debug_counter ------------------------" << std::endl;
2214
2215 return;
2216}
2217
2218
2219//------- tofDataAnalysis ----------------------------------------
2220// analysis tof data
2221//
2222void MrpcDBSTrack::tofDataAnalysis( TofData* tof, unsigned int iflag ) {
2223
2224 unsigned int qual = tof->quality();
2225
2226 if( ( qual & 0x10 ) == 0 )
2227 {
2228
2229 qual = ( qual | 0x10 ); // zadc, ztdc unmatched, and track matched
2230
2231 if( tof->barrel() )
2232 { // Barrel, Endcap has been done
2233
2234 if( ( tof->quality() == 0x7 ) || ( tof->quality() == 0xd ) ) {qual = ( qual | 0x20 );} // lost one Q
2235
2236 if( ( tof->quality() == 0xb ) || ( tof->quality() == 0xe ) ) { qual = ( qual | 0x40 );} // lost one T
2237
2238 if( ( tof->quality() == 0x3 ) || ( tof->quality() == 0xc ) ) {qual = ( qual | 0x80 ); } // single end
2239
2240 if( ( tof->quality() & 0x5 ) == 0x5 )
2241 {
2242 double ztdc = tofCaliSvc->ZTDC( tof->tdc1(), tof->tdc2(), tof->tofId() );
2243 tof->setZTdc( ztdc );
2244 }
2245
2246 if( ( tof->quality() & 0xa ) == 0xa )
2247 {
2248 double zadc = tofCaliSvc->ZADC( tof->adc1(), tof->adc2(), tof->tofId() );
2249 tof->setZAdc( zadc );
2250 }
2251 }//close if barrel
2252
2253 tof->setQuality( qual );
2254 }
2255
2256 if( iflag == 1 ) m_tofData1.push_back( tof );
2257 else if( iflag == 2 ) m_tofData2.push_back( tof );
2258 else if( iflag == 3 ) m_tofData3.push_back( tof );
2259 else if( iflag == 4 ) m_tofData4.push_back( tof );
2260 else {
2261 cout << "MrpcRecDBS::MrpcDBSTrack::TofDataAnalylsis: the Flag should be 1-4, out of the Range!" << endl;
2262 }
2263
2264 return;
2265}
2266
2267
2268//------- match --------------------------------------------------
2269// Tof Data - Extrapolated Track Match
2270//
2271void MrpcDBSTrack::match(std::vector<MrpcDBSTrack*>*& tofTrackVec ) {
2272
2273
2274
2275 if( m_hitCase == NoHit ) return;
2276
2277 if( m_hitCase == InnerLayer ) {
2278 findTofDataBarrel( m_tofData1, m_tofData2, m_zrhit1, 1, tofTrackVec );
2279 if( ( m_quality1 & 0x10 ) == 0 ) { m_hitCase = NoHit; }
2280 }
2281 else if( m_hitCase == OuterLayer ) {
2282 findTofDataBarrel( m_tofData3, m_tofData4, m_zrhit2, 2, tofTrackVec );
2283 if( ( m_quality2 & 0x10 ) == 0 ) { m_hitCase = NoHit; }
2284 }
2285 else if( m_hitCase == DoubleLayer ) {
2286 findTofDataBarrel( m_tofData1, m_tofData2, m_zrhit1, 1, tofTrackVec );
2287 if( ( m_quality1 & 0x10 ) == 0 ) { m_hitCase = OuterLayer; }
2288 findTofDataBarrel( m_tofData3, m_tofData4, m_zrhit2, 2, tofTrackVec );
2289 if( ( m_quality2 & 0x10 ) == 0 ) {
2290 if( m_hitCase == DoubleLayer ) {
2291 m_hitCase = InnerLayer;
2292 }
2293 else if( m_hitCase == OuterLayer ) {
2294 m_hitCase = NoHit;
2295 }
2296 else {
2297 cout << "MrpcRecDBS::MrpcDBSTrack::match: 2- Impossible!" << endl;
2298 }
2299 }
2300 }
2301 else if( ( m_hitCase == EastEndcap ) || ( m_hitCase == WestEndcap ) ) {
2302 findTofDataEndcap( m_tofData1, m_tofData2, m_zr1 );
2303 }
2304 else if((m_hitCase==westendcap_1) || (m_hitCase==westendcap_2) || (m_hitCase==eastendcap_2) || (m_hitCase==eastendcap_1))
2305 {
2306 findTofDataMRPC( m_tofData1, m_tofData2, m_zrhit1, 3 );
2307 }
2308 else {
2309 cout << "MrpcRecDBS::MrpcDBSTrack::match: 1- Impossible!" << endl;
2310 }
2311
2312 return;
2313}
2314
2315
2316//------- findTofDataBarrel ----------------------------------------
2317// find the right TOF information in TOF data vector
2318// of the exact TOF ID and of the neighbor
2319//
2320void MrpcDBSTrack::findTofDataBarrel( std::vector<TofData*> tofDataVec1, std::vector<TofData*> tofDataVec2, double zrhit, unsigned int iflag, std::vector<MrpcDBSTrack*>*& tofTrackVec ) {
2321
2322 unsigned int qual = 0xf;
2323 TofData* tof = 0;
2324 if( tofDataVec2.size() == 0 ) {
2325 if( tofDataVec1.size() == 0 ) {
2326 qual = 0;
2327 }
2328 else if( tofDataVec1.size() == 1 ) {
2329 std::vector<TofData*>::iterator iter1 = tofDataVec1.begin();
2330 tof = (*iter1);
2331 qual = 0x1;
2332 }
2333 else if( tofDataVec1.size() > 1 ) {
2334 tof= chooseTofData( tofDataVec1, zrhit );
2335 qual = 0x2;
2336 }
2337 else {
2338 cout << "MrpcRecDBS::MrpcDBSTrack::findTofDataBarrel: 1- Impossible!" << endl;
2339 }
2340 }
2341 else if( ( tofDataVec2.size() == 1 ) ) {
2342 if( tofDataVec1.size() == 0 ) {
2343 std::vector<TofData*>::iterator iter2 = tofDataVec2.begin();
2344 tof = (*iter2);
2345 qual = 0x4;
2346 }
2347 else if( tofDataVec1.size() == 1 ) {
2348 std::vector<TofData*>::iterator iter1 = tofDataVec1.begin();
2349 if( ((*iter1)->quality()&0x1ff)==0x01f && abs((*iter1)->ztdc()-zrhit)<ztdc_Cut ) {
2350 tof = (*iter1);
2351 }
2352 else {
2353 std::vector<TofData*>::iterator iter2 = tofDataVec2.begin();
2354 tof = compareTofData( (*iter1), (*iter2), zrhit );
2355 }
2356 qual = 0x5;
2357 }
2358 else if( tofDataVec1.size() > 1 ) {
2359 TofData* tofData1 = chooseTofData( tofDataVec1, zrhit );
2360 if( (tofData1->quality()&0x1ff)==0x01f && abs(tofData1->ztdc()-zrhit)<ztdc_Cut ) {
2361 tof = tofData1;
2362 }
2363 else {
2364 std::vector<TofData*>::iterator iter2 = tofDataVec2.begin();
2365 tof = compareTofData( tofData1, (*iter2), zrhit );
2366 }
2367 qual = 0x6;
2368 }
2369 else {
2370 cout << "MrpcRecDBS::MrpcDBSTrack::findTofDataBarrel: 2- Impossible!" << endl;
2371 }
2372 }
2373 else if( ( tofDataVec2.size() > 1 ) ) {
2374 if( tofDataVec1.size() == 0 ) {
2375 tof = chooseTofData( tofDataVec2, zrhit );
2376 qual = 0x8;
2377 }
2378 else if( tofDataVec1.size() == 1 ) {
2379 std::vector<TofData*>::iterator iter1 = tofDataVec1.begin();
2380 if( ((*iter1)->quality()&0x1ff)==0x01f && abs((*iter1)->ztdc()-zrhit)<ztdc_Cut ) {
2381 tof = (*iter1);
2382 }
2383 else {
2384 TofData* tofData2 = chooseTofData( tofDataVec2, zrhit );
2385 tof = compareTofData( (*iter1), tofData2, zrhit );
2386 }
2387 qual = 0x9;
2388 }
2389 else if( tofDataVec1.size() > 1 ) {
2390 TofData* tofData1 = chooseTofData( tofDataVec1, zrhit );
2391 if( (tofData1->quality()&0x1ff)==0x01f && abs(tofData1->ztdc()-zrhit)<ztdc_Cut ) {
2392 tof = tofData1;
2393 }
2394 else {
2395 TofData* tofData2 = chooseTofData( tofDataVec2, zrhit );
2396 tof = compareTofData( tofData1, tofData2, zrhit );
2397 }
2398 qual = 0xa;
2399 }
2400 else {
2401 cout << "MrpcRecDBS::MrpcDBSTrack::findTofDataBarrel: 3- Impossible!" << endl;
2402 }
2403 }
2404
2405 if( qual != 0 ) {
2406 if( !(tof->used()) ) {
2407 getTofData( tof, iflag );
2408 }
2409 else {
2410 bool z1=false, z2=false;
2411 bool zc1=false, zc2=false;
2412 MrpcDBSTrack* track=0;
2413 if( iflag==1 ) {
2414 z1 = ( abs( m_zrhit1 - tof->ztdc() ) < ztdc_Cut );
2415 zc1 = ( m_zrhit1 > tof->ztdc() );
2416 std::vector<MrpcDBSTrack*>::iterator iter = tofTrackVec->begin();
2417 for( ; iter!=tofTrackVec->end(); iter++ ) {
2418 if( tof->tofId()==(*iter)->tofId1() ) {
2419 track = (*iter);
2420 z2 = ( abs( (*iter)->zrhit1() - tof->ztdc() ) < ztdc_Cut );
2421 zc2 = ( (*iter)->zrhit1() > tof->ztdc() );
2422 }
2423 }
2424 }
2425 else if( iflag==2 ) {
2426 z1 = ( abs( m_zrhit2 - tof->ztdc() ) < ztdc_Cut );
2427 zc1 = ( m_zrhit2 > tof->ztdc() );
2428 std::vector<MrpcDBSTrack*>::iterator iter = tofTrackVec->begin();
2429 for( ; iter!=tofTrackVec->end(); iter++ ) {
2430 if( tof->tofId()==(*iter)->tofId2() ) {
2431 track = (*iter);
2432 z2 = ( abs( (*iter)->zrhit2() - tof->ztdc() ) < ztdc_Cut );
2433 zc2 = ( (*iter)->zrhit2() > tof->ztdc() );
2434 }
2435 }
2436 }
2437
2438 if( ( z1 && z2 )||( (!z1) && (!z2) ) ) {
2439 if( zc1 && !zc2 ) {
2440 getTofDataEast( tof, iflag );
2441 track->getTofDataWest( tof, iflag );
2442 }
2443 else if( !zc1 && zc2 ) {
2444 getTofDataWest( tof, iflag );
2445 track->getTofDataEast( tof, iflag );
2446 }
2447 }
2448 else if( z1 && !z2 ) {
2449 getTofData( tof, iflag );
2450 track->getTofDataNohit( iflag );
2451 cout << iflag << " " << track->quality1() << " " << track->quality2() << endl;
2452 }
2453 else if( !z1 && z2 ) {
2454 qual = 0;
2455 }
2456 }
2457 }
2458
2459 if( qual == 0 ) {
2460 if( ( iflag == 1 ) || ( iflag == 3 ) ) {
2461 m_quality1 = ( m_quality1 | 0x300 );
2462 }
2463 else if( iflag == 2 ) {
2464 m_quality2 = ( m_quality2 | 0x300 );
2465 }
2466 else {
2467 cout << "MrpcRecDBS::MrpcDBSTrack::findTofDataBarrel: the 1- IFLAG is Out of Range!" << endl;
2468 }
2469 }
2470 else {
2471 qual = ( qual << 12 );
2472 if( ( iflag == 1 ) || ( iflag == 3 ) ) {
2473 m_quality1 = ( m_quality1 | qual );
2474 }
2475 else if( iflag == 2 ) {
2476 m_quality2 = ( m_quality2 | qual );
2477 }
2478 else {
2479 cout << "MrpcRecDBS::MrpcDBSTrack::findTofDataBarrel: the 2- IFLAG is Out of Range!" << endl;
2480 }
2481 }
2482
2483 return;
2484}
2485
2486
2487
2488void MrpcDBSTrack::findTofDataMRPC( std::vector<TofData*> tofDataVec1, std::vector<TofData*> tofDataVec2, double zrhit, unsigned int iflag )
2489{
2490
2491
2492
2493 unsigned int qual = 0xf;
2494 if( tofDataVec2.size() == 0 )
2495 {
2496 if( tofDataVec1.size() == 0 ) {
2497 qual = 0;
2498 }
2499 else if( tofDataVec1.size() == 1 ) {//There is no neighbour cell. In order to determine the transition time we have to use the extrapolated track information
2500 std::vector<TofData*>::iterator iter1 = tofDataVec1.begin();
2501 getTofDataMRPC( (*iter1), iflag );
2502 qual = 0x1;
2503 t_trans_with_extrap=true;
2504 t_trans_with_dbs=false;
2505 }
2506 else if( tofDataVec1.size() == 2 ) {
2507 //Are the both digis from the same readoutsrip?
2508 bool help = two_digis_from_same_strip(tofDataVec1);
2509
2510 if(help)//If the both elements are from the same strip, we can use the measured times to correct for the transition time!
2511 {
2512 std::vector<TofData*>::iterator iter1 = tofDataVec1.begin();
2513 getTofDataMRPC( (*iter1), iflag );
2514 qual = 0x1;
2515
2516 std::vector<TofData*>::iterator iter = tofDataVec1.begin();
2517 for( ; iter != tofDataVec1.end(); iter++ )
2518 {
2519 if( (*iter1)->tofId() == (*iter)->tofId() ) continue;
2520 m_corresponding_time=(*iter)->tdc();
2521 }
2522
2523
2524 t_trans_with_dbs=true;
2525 t_trans_with_extrap=true;
2526
2527 }
2528 else//choose the most possible one and correct with extrapolated transition time
2529 {
2530 getTofDataMRPC( chooseTofDataMRPC( tofDataVec1), iflag );
2531 qual = 0x2;
2532 t_trans_with_extrap=true;
2533 t_trans_with_dbs=false;
2534 }
2535
2536 }
2537 else if( tofDataVec1.size() > 2 ) {
2538
2539 TofData* tofData1 = chooseTofDataMRPC( tofDataVec1);//Wich is the most possible digi?
2540
2541 //Loop over the tofDataVector: When for the most possible a digi another fitting digi exists: T_trans with measured times!
2544 int strip_2=0;
2545 int module_2=0;
2546
2547
2548 std::vector<TofData*>::iterator iter = tofDataVec1.begin();
2549 for( ; iter != tofDataVec1.end(); iter++ )
2550 {
2551 if( tofData1->tofId() == (*iter)->tofId()) continue;
2552
2555 if(strip_2%2==0)
2556 {
2557 if( ((strip_2-1)==strip_1) && module_1==module_2)
2558 {
2559 t_trans_with_dbs=true;
2560 t_trans_with_extrap=true;
2561 m_corresponding_time=(*iter)->tdc();
2562 }
2563 }
2564 else
2565 {
2566 if( ((strip_1-1)==strip_2) && module_1==module_2)
2567 {
2568 t_trans_with_dbs=true;
2569 t_trans_with_extrap=true;
2570 m_corresponding_time=(*iter)->tdc();
2571 }
2572 }
2573
2574 }
2575
2576 getTofDataMRPC( chooseTofDataMRPC( tofDataVec1 ), iflag ); //choose the most possible one
2577 qual = 0x2;
2578 }
2579 else {
2580 cout << "MrpcRecDBS::MrpcDBSTrack::findTofData: 1- Impossible!" << endl;
2581 }
2582 }//close if "no neighbours are existing
2583
2584
2585 else if( ( tofDataVec2.size() == 1 ) ) {//One neighbour is existing!
2586
2587 if( tofDataVec1.size() == 0 )
2588 {//1 neighbour, 0 correct extrapolation
2589 std::vector<TofData*>::iterator iter2 = tofDataVec2.begin();
2590 getTofDataMRPC( (*iter2), iflag );
2591 qual = 0x4;
2592 t_trans_with_extrap=false;
2593 t_trans_with_dbs=false;
2594 }
2595 else if( tofDataVec1.size() == 1 ) {//1 neighbour, 1 correct extrapolation
2596 std::vector<TofData*>::iterator iter1 = tofDataVec1.begin();
2597 std::vector<TofData*>::iterator iter2 = tofDataVec2.begin();
2598 getTofDataMRPC( compareTofDataMRPC( (*iter1), (*iter2)), iflag );
2599 qual = 0x5;
2600
2601 if(compareTofDataMRPC( (*iter1), (*iter2)) == (*iter1) ) t_trans_with_extrap=true;
2602 else t_trans_with_extrap=false;
2603 t_trans_with_dbs=false;
2604 }
2605 else if( tofDataVec1.size() == 2 ) {////1 neighbour, 2 correct extrapolation
2606
2607 TofData* tofData1 = chooseTofDataMRPC( tofDataVec1);
2608 std::vector<TofData*>::iterator iter2 = tofDataVec2.begin();
2609
2610 if(compareTofDataMRPC( tofData1, (*iter2)) == (*iter2))//The neighbour seems to be the correct candidate
2611 {
2612 t_trans_with_extrap=false;
2613 t_trans_with_dbs=false;
2614 }
2615 else //The extrapolated ones seem to be the correct candidate
2616 {
2617 bool help = two_digis_from_same_strip(tofDataVec1);
2618 if(help)//We can use the information from both NINO chips to determine the transmission time
2619 {
2620 t_trans_with_extrap=true;
2621 t_trans_with_dbs=true;
2622
2623 std::vector<TofData*>::iterator iter = tofDataVec1.begin();
2624 for( ; iter != tofDataVec1.end(); iter++ )
2625 {
2626 if( tofData1->tofId() == (*iter)->tofId()) continue;
2627 m_corresponding_time=(*iter)->tdc();
2628 }
2629
2630 }
2631 else
2632 {
2633 t_trans_with_extrap=true;
2634 t_trans_with_dbs=false;
2635 }
2636 }
2637
2638
2639 getTofDataMRPC( compareTofDataMRPC( tofData1, (*iter2)), iflag );
2640 qual = 0x6;
2641 }
2642 else if( tofDataVec1.size() > 2 )
2643 {
2644
2645 TofData* tofData1 = chooseTofDataMRPC( tofDataVec1 );
2646 std::vector<TofData*>::iterator iter2 = tofDataVec2.begin();
2647 if(compareTofDataMRPC( tofData1, (*iter2)) == (*iter2))//The neighbour seems to be the correct candidate
2648 {
2649 t_trans_with_extrap=false;
2650 t_trans_with_dbs=false;
2651 }
2652 else //The extrapolated ones seem to be the correct candidate
2653 {
2654 t_trans_with_extrap=true;
2655
2656 //Loop over the tofDataVector: When for the most possible a digi another fitting digi exists: T_trans with measured times!
2659 int strip_2=0;
2660 int module_2=0;
2661
2662 std::vector<TofData*>::iterator iter = tofDataVec1.begin();
2663 for( ; iter != tofDataVec1.end(); iter++ )
2664 {
2665 if( tofData1->tofId() == (*iter)->tofId()) continue;
2666
2669 if(strip_2%2==0)
2670 {
2671 if( ((strip_2-1)==strip_1) && module_1==module_2)
2672 {
2673 t_trans_with_dbs=true;
2674 m_corresponding_time=(*iter)->tdc();
2675 }
2676 }
2677 else
2678 {
2679 if( ((strip_1-1)==strip_2) && module_1==module_2)
2680 {
2681 t_trans_with_dbs=true;
2682 m_corresponding_time=(*iter)->tdc();
2683 }
2684 }
2685
2686 }
2687 }//close else
2688
2689 getTofDataMRPC( compareTofDataMRPC( tofData1, (*iter2)), iflag );
2690 qual = 0x6;
2691 }
2692 else
2693 {
2694 cout << "MrpcRecDBS::MrpcDBSTrack::findTofData: 2- Impossible!" << endl;
2695 }
2696 }
2697 else if( ( tofDataVec2.size() > 1 ) )
2698 {
2699 if( tofDataVec1.size() == 0 )
2700 {
2701
2702 TofData* tofData2 = chooseTofDataMRPC( tofDataVec2 );
2703
2704 //Loop over the tofDataVector: When for the most possible a digi another fitting digi exists: T_trans with measured times!
2707 int strip_2=0;
2708 int module_2=0;
2709
2710 std::vector<TofData*>::iterator iter = tofDataVec2.begin();
2711 for( ; iter != tofDataVec2.end(); iter++ )
2712 {
2713 if( tofData2->tofId() == (*iter)->tofId()) continue;
2714
2717 if(strip_2%2==0)
2718 {
2719 if( ((strip_2-1)==strip_1) && module_1==module_2)
2720 {
2721 t_trans_with_dbs=true;
2722 m_corresponding_time=(*iter)->tdc();;
2723 }
2724 }
2725 else
2726 {
2727 if( ((strip_1-1)==strip_2) && module_1==module_2)
2728 {
2729 t_trans_with_dbs=true;
2730 m_corresponding_time=(*iter)->tdc();
2731 }
2732 }
2733 }
2734 getTofDataMRPC( chooseTofDataMRPC( tofDataVec2 ), iflag );
2735 qual = 0x8;
2736 }
2737 else if( tofDataVec1.size() == 1 )
2738 {
2739 std::vector<TofData*>::iterator iter1 = tofDataVec1.begin();
2740 TofData* tofData2 = chooseTofDataMRPC( tofDataVec2 );
2741
2742 if( compareTofDataMRPC( (*iter1), tofData2) == (*iter1) )
2743 {
2744 t_trans_with_extrap=true;
2745 t_trans_with_dbs=false;
2746 }
2747 else
2748 {
2749
2750
2751 //Loop over the tofDataVector: When for the most possible a digi another fitting digi exists: T_trans with measured times!
2754 int strip_2=0;
2755 int module_2=0;
2756
2757 std::vector<TofData*>::iterator iter = tofDataVec2.begin();
2758 for( ; iter != tofDataVec2.end(); iter++ )
2759 {
2760 if( tofData2->tofId() == (*iter)->tofId()) continue;
2761
2764 if(strip_2%2==0)
2765 {
2766 if( ((strip_2-1)==strip_1) && module_1==module_2)
2767 {
2768 t_trans_with_dbs=true;
2769 m_corresponding_time=(*iter)->tdc();
2770 }
2771 }
2772 else
2773 {
2774 if( ((strip_1-1)==strip_2) && module_1==module_2)
2775 {
2776 t_trans_with_dbs=true;
2777 m_corresponding_time=(*iter)->tdc();
2778 }
2779 }
2780 }
2781
2782 }
2783
2784 getTofDataMRPC( compareTofDataMRPC( (*iter1), tofData2), iflag );
2785 qual = 0x9;
2786 }
2787 else if( tofDataVec1.size() > 1 )
2788 {
2789 TofData* tofData1 = chooseTofDataMRPC( tofDataVec1 );
2790 TofData* tofData2 = chooseTofDataMRPC( tofDataVec2 );
2791
2793 {
2794
2795 t_trans_with_extrap=true;
2796 //Loop over the tofDataVector: When for the most possible a digi another fitting digi exists: T_trans with measured times!
2799 int strip_2=0;
2800 int module_2=0;
2801
2802 std::vector<TofData*>::iterator iter = tofDataVec1.begin();
2803 for( ; iter != tofDataVec1.end(); iter++ )
2804 {
2805 if( tofData1->tofId() == (*iter)->tofId()) continue;
2806
2809 if(strip_2%2==0)
2810 {
2811 if( ((strip_2-1)==strip_1) && module_1==module_2)
2812 {
2813 t_trans_with_dbs=true;
2814 m_corresponding_time=(*iter)->tdc();
2815 }
2816 }
2817 else
2818 {
2819 if( ((strip_1-1)==strip_2) && module_1==module_2)
2820 {
2821 t_trans_with_dbs=true;
2822 m_corresponding_time=(*iter)->tdc();
2823 }
2824 }
2825 }
2826 }
2827 else
2828 {
2829
2830 //Loop over the tofDataVector: When for the most possible a digi another fitting digi exists: T_trans with measured times!
2833 int strip_2=0;
2834 int module_2=0;
2835
2836 std::vector<TofData*>::iterator iter = tofDataVec2.begin();
2837 for( ; iter != tofDataVec2.end(); iter++ )
2838 {
2839 if( tofData2->tofId() == (*iter)->tofId()) continue;
2840
2843 if(strip_2%2==0)
2844 {
2845 if( ((strip_2-1)==strip_1) && module_1==module_2)
2846 {
2847 t_trans_with_dbs=true;
2848 m_corresponding_time=(*iter)->tdc();
2849 }
2850 }
2851 else
2852 {
2853 if( ((strip_1-1)==strip_2) && module_1==module_2)
2854 {
2855 t_trans_with_dbs=true;
2856 m_corresponding_time=(*iter)->tdc();
2857 }
2858 }
2859 }
2860 }
2862 qual = 0xa;
2863 }
2864 else
2865 {
2866 cout << "MrpcRecDBS::MrpcDBSTrack::findTofData: 3- Impossible!" << endl;
2867 }
2868 }
2869
2870 if( qual == 0 ) {
2871 if( iflag == 3 ) {
2872 m_quality1 = 0x300;
2873 }
2874 else
2875 {
2876 cout << "MrpcRecDBS::MrpcDBSTrack::findTofData: the 1- IFLAG is Out of Range!" << endl;
2877 }
2878 }
2879 else
2880 {
2881 qual = ( qual << 12 );
2882 if( ( iflag == 3 ) )
2883 {
2884 m_quality1 = ( m_quality1 | qual );
2885 }
2886 else
2887 {
2888 cout << "MrpcRecDBS::MrpcDBSTrack::findTofData: the 2- IFLAG is Out of Range!" << endl;
2889 }
2890 }
2891
2892 return;
2893}
2894
2895
2896bool MrpcDBSTrack::two_digis_from_same_strip(std::vector<TofData*> tofDataVec )
2897{
2898 std::vector<TofData*>::iterator iter = tofDataVec.begin();
2899 int tof_id[2];
2900 int j=0;
2901
2902 for( ; iter != tofDataVec.end(); iter++ )
2903 {
2904 if(j>=2) break;//This function is only for two digis!
2905 tof_id[j]=(*iter)->tofId();
2906 j++;
2907 }
2908
2913
2914 if(strip_1%2==0)
2915 {
2916 if( ((strip_1-1)==strip_2) && module_1==module_2) return true;
2917 }
2918 else if(strip_2%2==0)
2919 {
2920 if( ((strip_2-1)==strip_1) && module_1==module_2) return true;
2921 }
2922 else return false;
2923}
2924
2925
2926
2927//------- chooseTofDataMRPC -------------------------------------------
2928// choose the most possible TofData from TofDataVector -> Max charged is the winner!
2929TofData* MrpcDBSTrack::chooseTofDataMRPC( std::vector<TofData*> tofDataVec) {
2930 if( tofDataVec.size() == 0 ) {
2931 cout << "MrpcRecDBS::MrpcDBSTrack::ChooseTofDataMRPC: Size of TofData Vector is Zero!" << endl;
2932 return 0;
2933 }
2934 std::vector<TofData*>::iterator igood = tofDataVec.begin();
2935 if( tofDataVec.size() > 1 ) {
2936 std::vector<TofData*>::iterator iter = tofDataVec.begin();
2937
2938 double maxQ = 0.0;
2939 for( ; iter != tofDataVec.end(); iter++ )
2940 {
2941 if( (*iter)->adc() > maxQ ) {
2942 maxQ = (*iter)->adc();
2943 igood = iter;
2944 }
2945 }
2946 }
2947
2948 return (*igood);
2949}
2950
2951
2952
2953
2954
2955//------- compareTofDataMRPC -------------------------------
2956// choose the most possible TofData from TofDataVector
2957//
2959 TofData* tof = tofData1;
2960 //mrpc_extrapolation_good=true; //TofData1 contains the correct extrapolated tracks!
2961 if( tof->adc() < tofData2->adc() ) {
2962 tof = tofData2;
2963 //mrpc_extrapolation_good=false;
2964 }
2965 return tof;
2966}
2967
2968
2969
2970
2971//------- chooseTofData -------------------------------------------
2972// choose the most possible TofData from TofDataVector
2973// ZTDC, ZADC, SingleEnd/NoQ/NoT are jugded.
2974//
2975TofData* MrpcDBSTrack::chooseTofData( std::vector<TofData*> tofDataVec, double zrhit ) {
2976 if( tofDataVec.size() == 0 ) {
2977 cout << "MrpcRecDBS::MrpcDBSTrack::ChooseTofData: Size of TofData Vector is Zero!" << endl;
2978 return 0;
2979 }
2980 std::vector<TofData*>::iterator igood = tofDataVec.begin();
2981 if( tofDataVec.size() > 1 ) {
2982
2983 double deltaZ = 1000.0;
2984 std::vector<TofData*>::iterator iter = tofDataVec.begin();
2985 // ZTDC compare
2986 for( ; iter != tofDataVec.end(); iter++ ) {
2987 if( ( (*iter)->quality() & 0x5 ) == 0x5 ) {
2988 if( abs( (*iter)->ztdc() - zrhit ) < deltaZ ) {
2989 deltaZ = abs( (*iter)->ztdc() - zrhit );
2990 igood = iter;
2991 }
2992 }
2993 }
2994 // ZADC compare
2995 if( deltaZ > 999.0 ) {
2996 iter = tofDataVec.begin();
2997 for( ; iter != tofDataVec.end(); iter++ ) {
2998 if( ( (*iter)->quality() & 0xa ) == 0xa ) {
2999 if( abs( (*iter)->zadc() - zrhit ) < deltaZ ) {
3000 deltaZ = abs( (*iter)->zadc() - zrhit );
3001 igood = iter;
3002 }
3003 }
3004 }
3005
3006 }
3007 // Max Q
3008 if( deltaZ > 999.0 ) {
3009 unsigned int ibad = 0xf0;
3010 iter = tofDataVec.begin();
3011 for( ; iter != tofDataVec.end(); iter++ ) {
3012 if( ( (*iter)->quality() & 0xf0 ) < ibad ) {
3013 igood = iter;
3014 ibad = ( (*iter)->quality() & 0xf0 );
3015 }
3016 else if( ( (*iter)->quality() & 0xf0 ) == ibad ) {
3017 if( ( (*iter)->adc1() + (*iter)->adc2() ) > ( (*igood)->adc1() + (*igood)->adc2() ) ) {
3018 igood = iter;
3019 ibad = ( (*iter)->quality() & 0xf0 );
3020 }
3021 }
3022 }
3023
3024 }
3025 }
3026
3027 return (*igood);
3028}
3029
3030
3031//------- compareTofData -------------------------------------------
3032// choose the most possible TofData from TofDataVector
3033// ZTDC, ZADC, SingleEnd/NoQ/NoT are jugded.
3034//
3035TofData* MrpcDBSTrack::compareTofData( TofData* tofData1, TofData* tofData2, double zrhit ) {
3036 TofData* tof = tofData1;
3037 // ZTDC compare
3038 if( abs(tofData1->ztdc() - zrhit ) > abs(tofData2->ztdc() - zrhit ) ) {
3039 // SingleEnd/NoT/NoQ compare
3040 if( ( tofData1->quality() & 0xf0 ) >= ( tofData1->quality() & 0xf0 ) ) {
3041 // QDC compare
3042 //if( ( tofData1->adc1() + tofData1->adc2() ) < ( tofData2->adc1() + tofData2->adc2() ) ) {
3043 tof = tofData2;
3044 //}
3045 }
3046 // }
3047 }
3048
3049 return tof;
3050}
3051
3052
3053//------- findTofDataEndcap --------------------------------------
3054// find the right TOF information in TOF data vector
3055// of the exact TOF ID and of the neighbor
3056//
3057void MrpcDBSTrack::findTofDataEndcap( std::vector<TofData*> tofDataVec1, std::vector<TofData*> tofDataVec2, double zr1[5] ) {
3058
3059 unsigned int iflag = 3;
3060 unsigned int qual = 0xf;
3061
3062 if( tofDataVec2.size() == 0 ) {
3063 if( tofDataVec1.size() == 0 ) {
3064 qual = 0;
3065 }
3066 else if( tofDataVec1.size() == 1 ) {
3067 std::vector<TofData*>::iterator iter1 = tofDataVec1.begin();
3068 getTofData( (*iter1), iflag );
3069 qual = 0x1;
3070 }
3071 else if( tofDataVec1.size() > 1 ) {
3072 getTofData( chooseTofDataEndcap( tofDataVec1, zr1 ), iflag );
3073 qual = 0x2;
3074 }
3075 else {
3076 cout << "MrpcRecDBS::MrpcDBSTrack::findTofDataEndcap: 1- Impossible!" << endl;
3077 }
3078 }
3079 else if( ( tofDataVec2.size() == 1 ) ) {
3080 if( tofDataVec1.size() == 0 ) {
3081 std::vector<TofData*>::iterator iter2 = tofDataVec2.begin();
3082 getTofData( (*iter2), iflag );
3083 qual = 0x4;
3084 }
3085 else if( tofDataVec1.size() == 1 ) {
3086 std::vector<TofData*>::iterator iter1 = tofDataVec1.begin();
3087 std::vector<TofData*>::iterator iter2 = tofDataVec2.begin();
3088 getTofData( compareTofDataEndcap( (*iter1), (*iter2) ), iflag );
3089 qual = 0x5;
3090 }
3091 else if( tofDataVec1.size() > 1 ) {
3092 TofData* tofData1 = chooseTofDataEndcap( tofDataVec1, zr1 );
3093 std::vector<TofData*>::iterator iter2 = tofDataVec2.begin();
3094 getTofData( compareTofDataEndcap( tofData1, (*iter2) ), iflag );
3095 qual = 0x6;
3096 }
3097 else {
3098 cout << "MrpcRecDBS::MrpcDBSTrack::findTofDataBarrel: 2- Impossible!" << endl;
3099 }
3100 }
3101 else if( ( tofDataVec2.size() > 1 ) ) {
3102 if( tofDataVec1.size() == 0 ) {
3103 getTofData( chooseTofDataEndcap( tofDataVec2, zr1 ), iflag );
3104 qual = 0x8;
3105 }
3106 else if( tofDataVec1.size() == 1 ) {
3107 std::vector<TofData*>::iterator iter1 = tofDataVec1.begin();
3108 TofData* tofData2 = chooseTofDataEndcap( tofDataVec2, zr1 );
3109 getTofData( compareTofDataEndcap( (*iter1), tofData2 ), iflag );
3110 qual = 0x9;
3111 }
3112 else if( tofDataVec1.size() > 1 ) {
3113 TofData* tofData1 = chooseTofDataEndcap( tofDataVec1, zr1 );
3114 TofData* tofData2 = chooseTofDataEndcap( tofDataVec2, zr1 );
3116 qual = 0xa;
3117 }
3118 else {
3119 cout << "MrpcRecDBS::MrpcDBSTrack::findTofDataBarrel: 3- Impossible!" << endl;
3120 }
3121 }
3122
3123 if( qual == 0 ) {
3124 m_quality1 = ( m_quality1 | 0x300 );
3125 }
3126 else {
3127 qual = ( qual << 12 );
3128 m_quality1 = ( m_quality1 | qual );
3129 }
3130
3131 return;
3132}
3133
3134
3135//------- chooseTofDataEndcap --------------------------------
3136// choose the most possible TofData from TofDataVector
3137//
3138TofData* MrpcDBSTrack::chooseTofDataEndcap( std::vector<TofData*> tofDataVec, double zr1[5] ) {
3139 if( tofDataVec.size() == 0 ) {
3140 cout << "MrpcRecDBS::MrpcDBSTrack::ChooseTofData: Size of TofData Vector is Zero!" << endl;
3141 return 0;
3142 }
3143 std::vector<TofData*>::iterator igood = tofDataVec.begin();
3144 if( tofDataVec.size() > 1 ) {
3145 bool multihit = false;
3146 std::vector<TofData*>::iterator iter = tofDataVec.begin();
3147 for( ; iter != tofDataVec.end(); iter++ ) {
3148 if( (*iter)->qtimes1()>1 ) { multihit = true; }
3149 }
3150
3151 iter = tofDataVec.begin();
3152 if( multihit ) {
3153 double tcorr = -999.0;
3154 double deltaTMin = 999.0;
3155 for( ; iter != tofDataVec.end(); iter++ ) {
3156 tcorr = tofCaliSvc->ETime( (*iter)->adc(), (*iter)->tdc()-m_estime, zr1[2], (*iter)->tofId() );
3157 for( unsigned int i=0; i<5; i++ ) {
3158 if( abs(tcorr-m_texpInner[i]) < deltaTMin ) {
3159 deltaTMin = abs(tcorr-m_texpInner[i]);
3160 igood = iter;
3161 }
3162 }
3163 }
3164 }//close if multihit
3165 else {
3166 double maxQ = 0.0;
3167 for( ; iter != tofDataVec.end(); iter++ ) {
3168 if( (*iter)->adc() > maxQ ) {
3169 maxQ = (*iter)->adc();
3170 igood = iter;
3171 }
3172 }
3173 }
3174 }//close else
3175 return (*igood);
3176}
3177
3178
3179//------- compareTofDataEndcap -------------------------------
3180// choose the most possible TofData from TofDataVector
3181//
3183 TofData* tof = tofData1;
3184 if( tof->adc() < tofData2->adc() ) {
3185 tof = tofData2;
3186 }
3187 return tof;
3188}
3189
3190
3191//------- getTofData -----------------------------------------
3192// set Tof Data of Inner / Outer Layer Barrel TOF and Endcap TOF
3193//
3194void MrpcDBSTrack::getTofData( TofData* tof, unsigned int iflag ) {
3195
3196 if( iflag == 1 ) {
3197 m_tofId1 = tof->tofId();
3198 m_qch1 = tof->adcChannelEast();
3199 m_adc1 = tof->adc1();
3200 m_tdc1 = tof->tdc1();
3201 m_qch2 = tof->adcChannelWest();
3202 m_adc2 = tof->adc2();
3203 m_tdc2 = tof->tdc2();
3204 m_ztdc1 = tof->ztdc();
3205 m_zadc1 = tof->zadc();
3206 m_quality1 = ( m_quality1 | ( 0x1f & tof->quality() ) );
3207 if( ( ( tof->quality() & 0x5 ) != 0x5 ) || ( ( ( tof->quality() & 0x5 ) == 0x5 ) && ( abs( tof->ztdc() - m_zrhit1 ) > ztdc_Cut ) ) ) {
3208 m_quality1 = ( m_quality1 | 0x100 );
3209 }
3210 if( ( ( tof->quality() & 0xa ) != 0xa ) || ( ( ( tof->quality() & 0xa ) == 0xa ) && ( abs( tof->zadc() - m_zrhit1 ) > zadc_Cut ) ) ) {
3211 m_quality1 = ( m_quality1 | 0x200 );
3212 }
3213 }
3214 else if( iflag == 2 ) {
3215 m_tofId2 = tof->tofId();
3216 m_qch3 = tof->adcChannelEast();
3217 m_adc3 = tof->adc1();
3218 m_tdc3 = tof->tdc1();
3219 m_qch4 = tof->adcChannelWest();
3220 m_adc4 = tof->adc2();
3221 m_tdc4 = tof->tdc2();
3222 m_ztdc2 = tof->ztdc();
3223 m_zadc2 = tof->zadc();
3224 m_quality2 = ( m_quality2 | ( 0x1f & tof->quality() ) );
3225 if( ( ( tof->quality() & 0x5 ) != 0x5 ) || ( ( ( tof->quality() & 0x5 ) == 0x5 ) && ( abs( tof->ztdc() - m_zrhit2 ) > ztdc_Cut ) ) ) {
3226 m_quality2 = ( m_quality2 | 0x100 );
3227 }
3228 if( ( ( tof->quality() & 0xa ) != 0xa ) || ( ( ( tof->quality() & 0xa ) == 0xa ) && ( abs( tof->zadc() - m_zrhit2 ) > zadc_Cut ) ) ) {
3229 m_quality2 = ( m_quality2 | 0x200 );
3230 }
3231 }
3232 else if( iflag == 3 ) {
3233 m_tofId1 = tof->tofId();
3234 m_qch1 = tof->adcChannel();
3235 m_adc1 = tof->adc();
3236 m_tdc1 = tof->tdc();
3237 m_quality1 = ( m_quality1 | ( 0x1f & tof->quality() ) );
3238 m_quality1 = ( m_quality1 | 0x300 );
3239 }
3240 else {
3241 cout << "MrpcRecDBS::MrpcDBSTrack::getTofData: Flag which sign the Barrel/Endcap or Inner/Outer is wrong! Please check it!" << endl;
3242 }
3243 tof->setUsed();
3244 return;
3245}
3246
3247
3248//------- getTofDataMRPC -----------------------------------------
3249// set Tof Data of Inner / Outer Layer Barrel TOF and Endcap TOF
3250//
3251void MrpcDBSTrack::getTofDataMRPC( TofData* tof, unsigned int iflag ) {
3252
3253if( iflag == 3 ) {
3254 m_tofId1 = tof->tofId();
3255 m_adc1 = tof->adc();
3256 m_tdc1 = tof->tdc();
3257 m_quality1 = tof->quality();
3258 m_quality1 = ( m_quality1 | 0x300 );
3259 /*
3260 std::cout << "MrpcDBSTrack ::getTofdata() EC begin" << std::endl;
3261 std::cout << " m_tofId1 = "<< m_tofId1 << std::endl;
3262 std::cout << " m_identify "<< tof->identify() << std::endl;
3263 std::cout << " m_adc1 = "<< m_adc1 << std::endl;
3264 std::cout << " m_tdc1 = "<< m_tdc1 << std::endl;
3265 std::cout << " m_quality = "<< m_quality1 << std::endl;
3266 std::cout << "MrpcDBSTrack ::getTofdata() EC end "<< std::endl;
3267 */
3268 }
3269 else {
3270 cout << "MrpcRecDBS::MrpcDBSTrack::setTofData: Flag which sign the Barrel/Endcap or Inner/Outer is wrong! Please check it!" << endl;
3271 }
3272 tof->setUsed();
3273 return;
3274}
3275
3276
3277
3278//------- getTofDataEast ------------------------------------
3279// set Tof Data of Inner / Outer Layer Barrel TOF and Endcap TOF
3280//
3281void MrpcDBSTrack::getTofDataEast( TofData* tof, unsigned int iflag ) {
3282
3283 if( iflag == 1 ) {
3284 m_tofId1 = tof->tofId();
3285 m_qch1 = tof->adcChannelEast();
3286 m_adc1 = tof->adc1();
3287 m_tdc1 = tof->tdc1();
3288 m_qch2 = -999.0;
3289 m_adc2 = -999.0;
3290 m_tdc2 = -999.0;
3291 m_ztdc1 = tof->ztdc();
3292 m_zadc1 = tof->zadc();
3293 m_quality1 = ( ( m_quality1 & 0xfffffff0 ) | ( 0x1c & tof->quality() ) );
3294 if( ( ( tof->quality() & 0x5 ) != 0x5 ) || ( ( ( tof->quality() & 0x5 ) == 0x5 ) && ( abs( tof->ztdc() - m_zrhit1 ) > ztdc_Cut ) ) ) {
3295 m_quality1 = ( m_quality1 | 0x100 );
3296 }
3297 if( ( ( tof->quality() & 0xa ) != 0xa ) || ( ( ( tof->quality() & 0xa ) == 0xa ) && ( abs( tof->zadc() - m_zrhit1 ) > zadc_Cut ) ) ) {
3298 m_quality1 = ( m_quality1 | 0x200 );
3299 }
3300 }
3301 else if( iflag == 2 ) {
3302 m_tofId2 = tof->tofId();
3303 m_qch3 = tof->adcChannelEast();
3304 m_adc3 = tof->adc1();
3305 m_tdc3 = tof->tdc1();
3306 m_qch4 = -999.0;
3307 m_adc4 = -999.0;
3308 m_tdc4 = -999.0;
3309 m_ztdc2 = tof->ztdc();
3310 m_zadc2 = tof->zadc();
3311 m_quality2 = ( ( m_quality2 & 0xfffffff0 ) | ( 0x1c & tof->quality() ) );
3312 if( ( ( tof->quality() & 0x5 ) != 0x5 ) || ( ( ( tof->quality() & 0x5 ) == 0x5 ) && ( abs( tof->ztdc() - m_zrhit2 ) > ztdc_Cut ) ) ) {
3313 m_quality2 = ( m_quality2 | 0x100 );
3314 }
3315 if( ( ( tof->quality() & 0xa ) != 0xa ) || ( ( ( tof->quality() & 0xa ) == 0xa ) && ( abs( tof->zadc() - m_zrhit2 ) > zadc_Cut ) ) ) {
3316 m_quality2 = ( m_quality2 | 0x200 );
3317 }
3318 }
3319 else {
3320 cout << "MrpcRecDBS::MrpcDBSTrack::getTofDataEast: Flag which sign the Barrel/Endcap or Inner/Outer is wrong! Please check it!" << endl;
3321 }
3322 tof->setUsed();
3323 return;
3324}
3325
3326
3327//------- getTofDataWest ------------------------------------
3328// set Tof Data of Inner / Outer Layer Barrel TOF and Endcap TOF
3329//
3330void MrpcDBSTrack::getTofDataWest( TofData* tof, unsigned int iflag ) {
3331
3332 if( iflag == 1 ) {
3333 m_tofId1 = tof->tofId();
3334 m_qch1 = -999.0;
3335 m_adc1 = -999.0;
3336 m_tdc1 = -999.0;
3337 m_qch2 = tof->adcChannelWest();
3338 m_adc2 = tof->adc2();
3339 m_tdc2 = tof->tdc2();
3340 m_ztdc1 = tof->ztdc();
3341 m_zadc1 = tof->zadc();
3342 m_quality1 = ( ( m_quality1 & 0xfffffff0 ) | ( 0x13 & tof->quality() ) );
3343 if( ( ( tof->quality() & 0x5 ) != 0x5 ) || ( ( ( tof->quality() & 0x5 ) == 0x5 ) && ( abs( tof->ztdc() - m_zrhit1 ) > ztdc_Cut ) ) ) {
3344 m_quality1 = ( m_quality1 | 0x100 );
3345 }
3346 if( ( ( tof->quality() & 0xa ) != 0xa ) || ( ( ( tof->quality() & 0xa ) == 0xa ) && ( abs( tof->zadc() - m_zrhit1 ) > zadc_Cut ) ) ) {
3347 m_quality1 = ( m_quality1 | 0x200 );
3348 }
3349 }
3350 else if( iflag == 2 ) {
3351 m_tofId2 = tof->tofId();
3352 m_qch3 = -999.0;
3353 m_adc3 = -999.0;
3354 m_tdc3 = -999.0;
3355 m_qch4 = tof->adcChannelWest();
3356 m_adc4 = tof->adc2();
3357 m_tdc4 = tof->tdc2();
3358 m_ztdc2 = tof->ztdc();
3359 m_zadc2 = tof->zadc();
3360 m_quality2 = ( ( m_quality2 & 0xfffffff0 ) | ( 0x13 & tof->quality() ) );
3361 if( ( ( tof->quality() & 0x5 ) != 0x5 ) || ( ( ( tof->quality() & 0x5 ) == 0x5 ) && ( abs( tof->ztdc() - m_zrhit2 ) > ztdc_Cut ) ) ) {
3362 m_quality2 = ( m_quality2 | 0x100 );
3363 }
3364 if( ( ( tof->quality() & 0xa ) != 0xa ) || ( ( ( tof->quality() & 0xa ) == 0xa ) && ( abs( tof->zadc() - m_zrhit2 ) > zadc_Cut ) ) ) {
3365 m_quality2 = ( m_quality2 | 0x200 );
3366 }
3367 }
3368 else {
3369 cout << "MrpcRecDBS::MrpcDBSTrack::getTofDataWest: Flag which sign the Barrel/Endcap or Inner/Outer is wrong! Please check it!" << endl;
3370 }
3371 tof->setUsed();
3372 return;
3373}
3374
3375
3376//------- getTofData -----------------------------------------
3377// set Tof Data of Inner / Outer Layer Barrel TOF and Endcap TOF
3378//
3379void MrpcDBSTrack::getTofDataNohit( unsigned int iflag ) {
3380
3381 if( iflag == 1 ) {
3382 m_tofId1 = -99;
3383 m_qch1 = -999.0;
3384 m_adc1 = -999.0;
3385 m_tdc1 = -999.0;
3386 m_qch2 = -999.0;
3387 m_adc2 = -999.0;
3388 m_tdc2 = -999.0;
3389 m_ztdc1 = -999.0;
3390 m_zadc1 = -999.0;
3391 m_quality1 = ( m_quality1 & 0x700 );
3392 if( m_hitCase == InnerLayer ) { m_hitCase = NoHit; }
3393 else if( m_hitCase == DoubleLayer ) { m_hitCase = OuterLayer; }
3394 }
3395 else if( iflag == 2 ) {
3396 m_tofId2 = -99;
3397 m_qch3 = -999.0;
3398 m_adc3 = -999.0;
3399 m_tdc3 = -999.0;
3400 m_qch4 = -999.0;
3401 m_adc4 = -999.0;
3402 m_tdc4 = -999.0;
3403 m_ztdc2 = -999.0;
3404 m_zadc2 = -999.0;
3405 m_quality2 = ( m_quality2 & 0x700 );
3406 if( m_hitCase == OuterLayer ) { m_hitCase = NoHit; }
3407 else if( m_hitCase == DoubleLayer ) { m_hitCase = InnerLayer; }
3408 }
3409 else {
3410 cout << "MrpcRecDBS::MrpcDBSTrack::getTofData: Flag which sign the Barrel/Endcap or Inner/Outer is wrong! Please check it!" << endl;
3411 }
3412
3413 return;
3414}
3415
3416
3417//------- setCalibration() ----------------------------------------
3418// get calibration constants
3419// ph11() - ph22(), tof11() -- tof22()
3420// ph1() ph2() ph(), tof1() tof2() tof()
3421//
3423
3424 bool barrel = ( ( m_hitCase == InnerLayer ) || ( m_hitCase == OuterLayer ) || ( m_hitCase == DoubleLayer ) );
3425 bool endcap = ( ( m_hitCase == EastEndcap ) || ( m_hitCase == WestEndcap ) );
3426 bool newmrpcendcap = ((m_hitCase == westendcap_1) || (m_hitCase == westendcap_2) || (m_hitCase == eastendcap_1) || (m_hitCase == eastendcap_2));
3427
3428 bool innerEast = ( ( m_quality1 & 0xc ) == 0xc );
3429 bool innerWest = ( ( m_quality1 & 0x3 ) == 0x3 );
3430 bool outerEast = ( ( m_quality2 & 0xc ) == 0xc );
3431 bool outerWest = ( ( m_quality2 & 0x3 ) == 0x3 );
3432 bool innerLayer = ( ( m_quality1 & 0xf ) == 0xf );
3433 bool outerLayer = ( ( m_quality2 & 0xf ) == 0xf );
3434
3435 bool endcapData = ( ( m_quality1 & 0xc ) == 0xc );
3436 bool newmrpcendcapData = ( ( m_quality1 & 0xc ) == 0xc );
3437
3438 if( m_hitCase == DoubleLayer ) {
3439 for( unsigned int i=0; i<5; i++ ) {
3440 m_texp[i] = tofCaliSvc->BTimeCluster( m_texpInner[i], m_texpOuter[i], m_zr1[i], m_zr2[i], m_tofId1, m_tofId2 );
3441 }
3442 m_path = tofCaliSvc->BTimeCluster( m_path1, m_path2, m_zrhit1, m_zrhit2, m_tofId1, m_tofId2 );
3443 }
3444
3445 if( barrel ) {
3446 if( innerEast ) {
3447 for( unsigned int i=0; i<5; i++ ) {
3448 m_tof11[i] = tofCaliSvc->BTime1( m_adc1, m_tdc1-m_estime, m_zr1[i], m_tofId1,m_estime );
3449 //m_tof11[i] = tofCaliSvc->BTime1( m_adc1, m_tdc1-m_estime, m_zr1[i], m_tofId1);
3450
3451 }
3452 m_sigma11 = tofCaliSvc->BSigma1( m_zrhit1, m_tofId1 );
3453 m_ph11 = m_adc1;
3454 }
3455
3456 if( innerWest ) {
3457 for( unsigned int i=0; i<5; i++ ) {
3458 m_tof12[i] = tofCaliSvc->BTime2( m_adc2, m_tdc2-m_estime, m_zr1[i], m_tofId1,m_estime );
3459 //m_tof12[i] = tofCaliSvc->BTime2( m_adc2, m_tdc2-m_estime, m_zr1[i], m_tofId1 );
3460 }
3461 m_sigma12 = tofCaliSvc->BSigma2( m_zrhit1, m_tofId1 );
3462 m_ph12 = m_adc2;
3463 }
3464
3465 if( innerLayer ) {
3466 for( unsigned int i=0; i<5; i++ ) {
3467 m_tof1[i] = tofCaliSvc->BTimeCounter( m_tof11[i], m_tof12[i], m_zr1[i], m_tofId1 );
3468 }
3469 m_sigma1 = tofCaliSvc->BSigmaCounter( m_zrhit1, m_tofId1 );
3470 m_ph1 = tofCaliSvc->BPulseHeight( m_adc1, m_adc2, m_zrhit1, m_theta1, m_tofId1 );
3471 /*
3472 if( m_hitCase == InnerLayer ) {
3473 for( unsigned int i=0; i<5; i++ ) {
3474 m_tof[i] = m_tof1[i];
3475 }
3476 m_sigma = m_sigma1;
3477 }
3478 */
3479 }
3480
3481 if( outerEast ) {
3482 for( unsigned int i=0; i<5; i++ ) {
3483 m_tof21[i] = tofCaliSvc->BTime1( m_adc3, m_tdc3-m_estime, m_zr2[i], m_tofId2,m_estime );
3484 //m_tof21[i] = tofCaliSvc->BTime1( m_adc3, m_tdc3-m_estime, m_zr2[i], m_tofId2 );
3485 }
3486 m_sigma21 = tofCaliSvc->BSigma1( m_zrhit2, m_tofId2 );
3487 m_ph21 = m_adc3;
3488 }
3489
3490 if( outerWest ) {
3491 for( unsigned int i=0; i<5; i++ ) {
3492 m_tof22[i] = tofCaliSvc->BTime2( m_adc4, m_tdc4-m_estime, m_zr2[i], m_tofId2,m_estime );
3493 //m_tof22[i] = tofCaliSvc->BTime2( m_adc4, m_tdc4-m_estime, m_zr2[i], m_tofId2 );
3494 }
3495 m_sigma22 = tofCaliSvc->BSigma2( m_zrhit2, m_tofId2 );
3496 m_ph22 = m_adc4;
3497 }
3498
3499 if( outerLayer ) {
3500 for( unsigned int i=0; i<5; i++ ) {
3501 m_tof2[i] = tofCaliSvc->BTimeCounter( m_tof21[i], m_tof22[i], m_zr2[i], m_tofId2 );
3502 }
3503 m_sigma2 = tofCaliSvc->BSigmaCounter( m_zrhit2, m_tofId2 );
3504 m_ph2 = tofCaliSvc->BPulseHeight( m_adc3, m_adc4, m_zrhit2, m_theta2, m_tofId2 );
3505 /*
3506 if( m_hitCase == OuterLayer ) {
3507 for( unsigned int i=0; i<5; i++ ) {
3508 m_tof[i] = m_tof2[i];
3509 }
3510 m_sigma = m_sigma2;
3511 }
3512 */
3513 }
3514
3515 if( innerLayer && outerLayer ) {
3516 for( unsigned int i=0; i<5; i++ ) {
3517 m_tof[i] = tofCaliSvc->BTimeCluster( m_tof1[i], m_tof2[i], m_zr1[i], m_zr2[i], m_tofId1, m_tofId2 );
3518 }
3519 m_sigma = tofCaliSvc->BSigmaCluster( m_zrhit1, m_zrhit2, m_tofId1, m_tofId2 );
3520 m_ph = tofCaliSvc->BTimeCluster( m_ph1, m_ph2, m_zrhit1, m_zrhit2, m_tofId1, m_tofId2 );
3521 }
3522 }
3523
3524 if( endcap ) {
3525 if( endcapData ) {
3526 for( unsigned int i=0; i<5; i++ ) {
3527 m_tof11[i] = tofCaliSvc->ETime( m_adc1, m_tdc1-m_estime, m_zr1[i], m_tofId1 );
3528 }
3529 m_sigma11 = tofCaliSvc->ESigma( m_zrhit1, m_tofId1 );
3530 m_ph11 = tofCaliSvc->EPulseHeight( m_adc1, m_zrhit1, m_theta1, m_tofId1 );
3531 m_quality = 1;
3532 if( (m_quality1&0xa000)!=0 ) { m_quality = 4; }
3533 }
3534 }
3535
3536 if( newmrpcendcap ) {
3537 if( newmrpcendcapData ) {
3538 //std::cout << "MrpcDBSTrack setCalibration(): Set the values for the new endcap!" << std::endl;
3539
3540 double my_partID=0;
3541 if(m_hitCase==eastendcap_2) my_partID=3;
3542 if(m_hitCase==eastendcap_1) my_partID=4;
3543 if(m_hitCase==westendcap_1) my_partID=5;
3544 if(m_hitCase==westendcap_2) my_partID=6;
3547
3548 double transmission_time=0;
3549
3550
3551 for( unsigned int i=0; i<5; i++ )
3552 {
3553
3554
3555 ////////////////////////////////////////////////////////////////////////
3556 // Priority of transmissiontime determination
3557 // 1. Use extrapolated track when available
3558 // 2. Use DBS info, when available
3559 // 3. Use average transmissiontime if nothing above possibel
3560 ////////////////////////////////////////////////////////////////////////
3561
3562 if(t_trans_with_extrap==true)
3563 {
3564
3565 transmission_time=BesTofDigitizerEcV4_dbs::GetTransitionTime_extrap_track( m_zrhit1*cos(m_phi1)*10., m_zrhit1*sin(m_phi1)*10., my_partID , my_module, my_strip);
3566
3567 }
3568 else if(t_trans_with_dbs==true && t_trans_with_extrap==false)//There is a second correpsonding digi, which can be used for the calculation of the transmission time!
3569 {
3570
3571
3572 double delta_t=(m_tdc1-m_corresponding_time);//Larger 0: m_tdc1 == m_tofId1 was the time with the longer transmission distance
3573 //Smaller 0: vice versa
3574
3575 transmission_time=BesTofDigitizerEcV4_dbs::GetTransitionTime_dbsmatch(delta_t,my_strip);
3576
3577 if(transmission_time<0.)
3578 {
3579 t_trans_with_dbs=false; //This may happen for small or relative large charge depositions!
3580 }
3581
3582 }//close if(t_trans_with_dbs==true && t_trans_with_extrap=false)
3583
3584 if(t_trans_with_dbs==false && t_trans_with_extrap==false)
3585 {
3586 transmission_time=BesTofDigitizerEcV4_dbs::Average_transition_time_dbs(my_strip);
3587 }
3588
3589
3590 m_tof11[i] = m_tdc1-m_estime-transmission_time;
3591
3592 if(i==0)//store only variables of the first iteration -> They do not differ!
3593 {
3594
3595 if(t_trans_with_extrap==true){m_mrpc_dbs=0; m_mrpc_extrap=1; m_mrpc_ave=0;}
3596 else if(t_trans_with_dbs==true && t_trans_with_extrap==false){m_mrpc_dbs=1; m_mrpc_extrap=0; m_mrpc_ave=0;}
3597 else if(t_trans_with_dbs==false && t_trans_with_extrap==false){m_mrpc_dbs=0; m_mrpc_extrap=0; m_mrpc_ave=1;}
3598
3599
3600 m_partID=my_partID;
3601 m_stripidentifier=m_tofId1;
3602 m_time_1=m_tdc1;
3603 m_time_2=m_adc1;
3604 m_trans_time=transmission_time;
3605 m_r_ext=m_zrhit1;
3606 m_phi_ext=m_phi1;
3607 }
3608
3609
3610 m_sigma_mrpc[i] = mrpcCaliSvc->GetSigma(m_momentum, m_tofId1, i, true);// 0 = GetSigmaElectron, 1 = GetSigmaMuon, 2 = GetSigmaPion, 3 = GetSigmaKaon, 4=GetSigmaProton,\ - false = SE Readout
3611
3612 }//close for loop
3613
3614
3615 m_ph11 = m_adc1;
3616
3617 m_quality = 1;
3618 if( (m_quality1&0xa000)!=0 ) { m_quality = 4; }
3619
3620 }
3621 }
3622
3623 // set Quality of Barrel TOF
3624 if( barrel ) {
3625
3626 // double layer
3627 if( innerLayer && outerLayer ) {
3628 m_quality = 1;
3629 }
3630 else {
3631 // single layer
3632 if( innerLayer || outerLayer ) {
3633 m_quality = 2;
3634 }
3635 else {
3636 // single-end of one layer
3637 if( innerEast || innerWest || outerEast || outerWest ) {
3638 m_quality = 3;
3639 }
3640 }
3641 }
3642
3643 // multi-hit
3644 if( ( (m_quality1&0xa000)!=0 ) || ( (m_quality2&0xa000)!=0 ) ) {
3645 m_quality = m_quality + 3;
3646 }
3647
3648 // ztdc and extrapolated zhit is not matched
3649 if( ( (m_quality1&0x100)==0x100 ) || ( (m_quality2&0x100)==0x100 ) ) {
3650 if( ( m_quality == 1 ) || ( m_quality == 4 ) ) { m_quality = 7; }
3651 else if( ( m_quality == 2 ) || ( m_quality == 5 ) ) { m_quality = 8; }
3652 else if( ( m_quality == 3 ) || ( m_quality == 6 ) ) { m_quality = 9; }
3653 else {
3654 cout << "MrpcRecDBS::MrpcDBSTrack::setCalibration: Impossible!" << endl;
3655 }
3656 }
3657
3658 }
3659
3660 return;
3661}
3662
3663
3664//------- convert2RecMrpcDBSTrackCol() -----------------------------------
3665// generate RecMrpcDBSTrackCol
3666//
3668
3669 bool barrel = ( ( m_hitCase == InnerLayer ) || ( m_hitCase == OuterLayer ) || ( m_hitCase == DoubleLayer ) );
3670
3671 bool innerEast = ( ( m_quality1 & 0xc ) == 0xc );
3672 bool innerWest = ( ( m_quality1 & 0x3 ) == 0x3 );
3673 bool outerEast = ( ( m_quality2 & 0xc ) == 0xc );
3674 bool outerWest = ( ( m_quality2 & 0x3 ) == 0x3 );
3675
3676 if( barrel ) {
3677
3678 if( innerEast ) {
3679 RecTofTrack* atrack11 = new RecTofTrack;
3680 buildRecTofTrack( atrack11, 11 ); // innerlayer east readout
3681 TofHitStatus* hitStatus11 = new TofHitStatus;
3682 if( innerWest ) {
3683 hitStatus11->setBarrelReadout( 1, true ); // innerlayer east readout
3684 }
3685 else {
3686 if( m_hitCase == InnerLayer ) {
3687 hitStatus11->setBarrelCluster( 11 ); // innerlayer east cluster
3688 }
3689 else if( m_hitCase == DoubleLayer ) {
3690 if( outerEast && outerWest ) {
3691 hitStatus11->setBarrelCounter( 11 ); // innerlayer east counter
3692 }
3693 else {
3694 hitStatus11->setBarrelCluster( 11 ); // innerlayer east cluster
3695 }
3696 }
3697 else {
3698 cout << "MrpcRecDBS::MrpcDBSTrack:convert2RecTofTrackCol: 11- Impossible!" << endl;
3699 }
3700 }
3701 atrack11->setStatus( hitStatus11->value() );
3702 delete hitStatus11;
3703 recTofTrackCol->push_back( atrack11 );
3704 } //close innerEast
3705
3706 if( innerWest ) {
3707 RecTofTrack* atrack12 = new RecTofTrack;
3708 buildRecTofTrack( atrack12, 12 ); // innerlayer west readout
3709 TofHitStatus* hitStatus12 = new TofHitStatus;
3710 if( innerEast ) {
3711 hitStatus12->setBarrelReadout( 1, false ); // innerlayer west
3712 }
3713 else {
3714 if( m_hitCase == InnerLayer ) {
3715 hitStatus12->setBarrelCluster( 12 ); // innerlayer west cluster
3716 }
3717 else if( m_hitCase == DoubleLayer ) {
3718 if( outerEast && outerWest ) {
3719 hitStatus12->setBarrelCounter( 12 ); // innerlayer west counter
3720 }
3721 else {
3722 hitStatus12->setBarrelCluster( 12 ); // innerlayer west cluster
3723 }
3724 }
3725 else {
3726 cout << "MrpcRecDBS::MrpcDBSTrack:convert2RecTofTrackCol: 12- Impossible!" << endl;
3727 }
3728 }
3729 atrack12->setStatus( hitStatus12->value() );
3730 delete hitStatus12;
3731 recTofTrackCol->push_back( atrack12 );
3732 } //close innerWest
3733
3734 if( innerEast && innerWest ) {
3735 RecTofTrack* atrack1 = new RecTofTrack;
3736 buildRecTofTrack( atrack1, 1 ); // innerlayer counter
3737 TofHitStatus* hitStatus1 = new TofHitStatus;
3738 if( m_hitCase == InnerLayer ) {
3739 hitStatus1->setBarrelCluster( 1 ); // innerlayer cluster and counter
3740 }
3741 else if( m_hitCase == DoubleLayer ) {
3742 if( outerEast && outerWest ) {
3743 hitStatus1->setBarrelCounter( 1 ); // innerlayer counter
3744 }
3745 else {
3746 hitStatus1->setBarrelCluster( 1 ); // innerlayer cluster and counter
3747 }
3748 }
3749 else {
3750 cout << "MrpcRecDBS::TofTrack:convert2RecTofTrackCol: 1- Impossible!" << endl;
3751 }
3752 atrack1->setStatus( hitStatus1->value() );
3753 delete hitStatus1;
3754 recTofTrackCol->push_back( atrack1 );
3755 }//close innerEast && innerWest
3756
3757 if( outerEast ) {
3758 RecTofTrack* atrack21 = new RecTofTrack;
3759 buildRecTofTrack( atrack21, 21 ); // outerlayer east readout
3760 TofHitStatus* hitStatus21 = new TofHitStatus;
3761 if( outerWest ) {
3762 hitStatus21->setBarrelReadout( 2, true ); // outerlayer east readout
3763 }
3764 else {
3765 if( m_hitCase == OuterLayer ) {
3766 hitStatus21->setBarrelCluster( 21 ); // outerlayer east cluster
3767 }
3768 else if( m_hitCase == DoubleLayer ) {
3769 if( innerEast || innerWest ) {
3770 hitStatus21->setBarrelCounter( 21 ); // outerlayer east counter
3771 }
3772 // else {
3773 // hitStatus21->setBarrelCluster( 21 ); // outerlayer east cluster
3774 // }
3775 }
3776 else {
3777 cout << "MrpcRecDBS::MrpcDBSTrack:convert2RecTofTrackCol: 21- Impossible!" << endl;
3778 }
3779 }
3780 atrack21->setStatus( hitStatus21->value() );
3781 delete hitStatus21;
3782 recTofTrackCol->push_back( atrack21 );
3783 }//close outerEast
3784
3785 if( outerWest ) {
3786 RecTofTrack* atrack22 = new RecTofTrack;
3787 buildRecTofTrack( atrack22, 22 ); // outerlayer west readout
3788 TofHitStatus* hitStatus22 = new TofHitStatus;
3789 if( outerEast ) {
3790 hitStatus22->setBarrelReadout( 2, false ); // outerlayer west readout
3791 }
3792 else {
3793 if( m_hitCase == OuterLayer ) {
3794 hitStatus22->setBarrelCluster( 22 ); // outerlayer west cluster
3795 }
3796 else if( m_hitCase == DoubleLayer ) {
3797 if( innerEast || innerWest ) {
3798 hitStatus22->setBarrelCounter( 22 ); // outerlayer west counter
3799 }
3800 // else {
3801 // hitStatus22->setBarrelCluster( 22 ); // outerlayer west cluster
3802 // }
3803 }
3804 else {
3805 cout << "MrpcRecDBS::MrpcDBSTrack:convert2RecTofTrackCol: 22- Impossible!" << endl;
3806 }
3807 }
3808 atrack22->setStatus( hitStatus22->value() );
3809 delete hitStatus22;
3810 recTofTrackCol->push_back( atrack22 );
3811 }//close oterWest
3812
3813 if( outerEast && outerWest ) {
3814 RecTofTrack* atrack2 = new RecTofTrack;
3815 buildRecTofTrack( atrack2, 2 ); // outerlayer counter
3816 TofHitStatus* hitStatus2 = new TofHitStatus;
3817 if( m_hitCase == OuterLayer ) {
3818 hitStatus2->setBarrelCluster( 2 ); // outerlayer cluster and counter
3819 }
3820 else if( m_hitCase == DoubleLayer ) {
3821 if( innerEast && innerWest ) {
3822 hitStatus2->setBarrelCounter( 2 ); // outerlayer counter
3823 }
3824 else {
3825 hitStatus2->setBarrelCluster( 2 ); // outerlayer cluster and counter
3826 }
3827 }
3828 else {
3829 cout << "MrpcRecDBS::MrpcDBSTrack:convert2RecTofTrackCol: 2- Impossible!" << endl;
3830 }
3831 atrack2->setStatus( hitStatus2->value() );
3832 delete hitStatus2;
3833 recTofTrackCol->push_back( atrack2 );
3834 } //close outerEast && outerWest
3835
3836 if( innerEast && innerWest && outerEast && outerWest ) {
3837 RecTofTrack* atrack = new RecTofTrack;
3838 buildRecTofTrack( atrack, 0 ); // doublelayer cluster
3839 TofHitStatus* hitStatus = new TofHitStatus;
3840 hitStatus->setBarrelCluster( 3 ); // doublelayer cluster
3841 atrack->setStatus( hitStatus->value() );
3842 delete hitStatus;
3843 recTofTrackCol->push_back( atrack );
3844 } //close innerEast && innerWest && outerEast && outerWest
3845
3846 } //close if(barrel)
3847
3848 if( ( m_hitCase == EastEndcap ) || ( m_hitCase == WestEndcap ) || (m_hitCase ==eastendcap_1) || (m_hitCase ==eastendcap_2) || (m_hitCase ==westendcap_1) || (m_hitCase ==westendcap_2)) {
3849
3850 RecTofTrack* atrack = new RecTofTrack;
3851 buildRecTofTrack( atrack, 11 ); // eastendcap counter
3852
3853 TofHitStatus* hitStatus = new TofHitStatus;
3854 // std::cout << "MrpcDBSTrack convert2RecTofTrackCol hitStatus->value() after initialize= " << hitStatus->value() << std::endl;
3855
3856 if( m_hitCase == EastEndcap ||(m_hitCase ==eastendcap_1) || (m_hitCase ==eastendcap_2) ) {
3857 hitStatus->setEndcapCluster( true ); // east endcap cluster counter readout
3858 }
3859 else if( (m_hitCase == WestEndcap) || (m_hitCase ==westendcap_1) || (m_hitCase ==westendcap_2) ) {
3860 hitStatus->setEndcapCluster( false ); // west endcap cluster counter readout
3861 }
3862 else {
3863 cout << "MrpcRecDBS::MrpcDBSTrack:convert2RecTofTrackCol: endcap- Impossible!" << endl;
3864 }
3865 // std::cout << "MrpcDBSTrack convert2RecTofTrackCol hitStatus->value() = " << hitStatus->value() << std::endl;
3866 atrack->setStatus( hitStatus->value() );//Set m_status within DstTofTrack.h
3867
3868 delete hitStatus;
3869 recTofTrackCol->push_back( atrack );
3870 }
3871
3872 if( m_hitCase == NoHit ) {
3873 RecTofTrack* atrack = new RecTofTrack;
3874 buildRecTofTrack( atrack, 3 ); // no hit
3875 TofHitStatus* hitStatus = new TofHitStatus;
3876 hitStatus->setNoHit(); // no hit
3877 atrack->setStatus( hitStatus->value() );
3878 delete hitStatus;
3879 recTofTrackCol->push_back( atrack );
3880 }
3881
3882 return;
3883}
3884
3885
3886
3887void MrpcDBSTrack::buildRecTofTrack( RecTofTrack* track, int layerorend ) {
3888
3889 track->setTofTrackID( m_tofTrackId );
3890 track->setTrackID( m_trackId );
3891
3892 // std::cout << "MrpcDBSTrack::buildRecTofTrack m_tofTrackId= " << m_tofTrackId <<std::endl;
3893 // std::cout << "MrpcDBSTrack::buildRecTofTrack m_trackId= " << m_trackId <<std::endl;
3894
3895 track->setErrTof( 0.0 );
3896 track->setBeta( 0.0 );
3897
3898 double sigma[6];
3899 for( int i=0; i<6; i++ ) {
3900 sigma[i] = 0.0;
3901 }
3902 track->setSigma( sigma );
3903 track->setQuality( m_quality );
3904 track->setT0( m_estime );
3905 // std::cout << "MrpcDBSTrack buildRecTofTrack : Set m_quality | m_estime " << m_quality << " | " << m_estime << std::endl;
3906 track->setErrT0( 0.0 );
3907 track->setPhi( 9999.0 );
3908 track->setErrPhi( 9999.0 );
3909 track->setEnergy( 9999.0 );
3910 track->setErrEnergy( 9999.0 );
3911
3912 if( ( layerorend == 11 ) || ( layerorend == 12 ) || ( layerorend == 1 ) ) {
3913
3914
3915
3916
3917
3918 //Within RecTofTrack and DstTrack the partID or the identifier is not stored anymore. Only the cellID and an east or westinformation (within TofHitstatus).
3919 //In order to identfy the elements correctly we add to the new MRPC innerlayer +100 : They will have a larger number than the old Tof EC.
3920 //For the the outer layer we add +100 +474.
3921 //Hence it is possible to identify the correct readoutstrip with east/west information and unique number.
3922
3923 if( (m_hitCase ==eastendcap_1) || (m_hitCase == westendcap_1))
3924 {
3925 m_tofId1 = m_tofId1 + 100;
3926 //std::cout << "MrpcDBSTrack Layer --- 1 : m_tofId1+100 = "<< m_tofId1 << std::endl;
3927 }
3928
3929 if( (m_hitCase ==eastendcap_2) || (m_hitCase == westendcap_2))
3930 {
3931 m_tofId1 = m_tofId1 + 100 + 474;
3932 //std::cout <<"MrpcDBSTrack Layer --- 2 : m_tofId1+474 = "<< m_tofId1 << std::endl;
3933 }
3934
3935 track->setTofID( m_tofId1 );
3936 track->setPath( m_path1 );
3937 track->setZrHit( m_zrhit1 );
3938 track->setErrZ( m_errzr1 );
3939 track->setTexp( m_texpInner );
3940
3941 //std::cout << "MrpcDBSTrack buildRecMrpcDBSTrack :layerorend == 11,12,1 Set m_tofId1 = " << m_tofId1 << std::endl;
3942 //std::cout << "MrpcDBSTrack buildRecMrpcDBSTrack : Set m_path1 = " << m_path1 << std::endl;
3943 //std::cout << "MrpcDBSTrack buildRecTofTrack : Set m_zrhit1 = " << m_zrhit1 << std::endl;
3944 //std::cout << "MrpcDBSTrack buildRecTofTrack : Set m_errzr1 = " << m_errzr1 << std::endl;
3945 //std::cout << "MrpcDBSTrack buildRecTofTrack : Set m_texpInner = " << m_texpInner << std::endl;
3946
3947 setRecTofTrack( track, layerorend );
3948 }
3949
3950 if( ( layerorend==21 ) || ( layerorend==22 ) || ( layerorend==2 ) ) {
3951 track->setTofID( m_tofId2 );
3952 track->setPath( m_path2 );
3953 track->setZrHit( m_zrhit2 );
3954 track->setErrZ( m_errzr2 );
3955 track->setTexp( m_texpOuter );
3956 //std::cout << "MrpcDBSTrack buildRecTofTrack :layerorend == 21,22,2 Set m_tofId2 = " << m_tofId2 << std::endl;
3957 setRecTofTrack( track, layerorend );
3958 }
3959
3960 if( layerorend==0 ) {
3961 track->setTofID( m_tofId1 );
3962 track->setPath( m_path2 );
3963 track->setZrHit( m_zrhit2 );
3964 track->setErrZ( m_errzr2 );
3965 track->setTexp( m_texp );
3966
3967 //std::cout << "MrpcDBSTrack buildRecTofTrack :layerorend == 0 Set m_tofId1 = " << m_tofId1 << std::endl;
3968 setRecTofTrack( track, layerorend );
3969 }
3970
3971 if( layerorend == 3 ) {
3972 track->setTofID( m_id1 );
3973 track->setPath( m_path1 );
3974 track->setZrHit( m_zrhit1 );
3975 track->setErrZ( m_errzr1 );
3976 track->setTexp( m_texpInner );
3977
3978 //std::cout << "MrpcDBSTrack buildRecTofTrack :layerorend == 3 Set m_tofId1 = " << m_id1 << std::endl;
3979 }
3980
3981 return;
3982}
3983
3984
3985void MrpcDBSTrack::setRecTofTrack( RecTofTrack* track, int layerorend ) {
3986
3987 double toffset[6];
3988 for( unsigned int i=0; i<6; i++ ) {
3989 toffset[i] = 0.0;
3990 }
3991
3992 if( layerorend == 0 ) { // cluster or double layer hit
3993 track->setPh( m_ph );
3994 track->setTof( m_tof[0] );
3995 track->setSigmaElectron( m_sigma );
3996 for( unsigned int i=0; i<5; i++ ) {
3997 toffset[i] = m_tof[0] - m_tof[i];
3998 }
3999 track->setToffset( toffset );
4000 track->setBeta( m_path/m_tof[0]/30.0 );
4001 }
4002 else if( layerorend == 1 ) { // inner layer
4003 track->setPh( m_ph1 );
4004 track->setTof( m_tof1[0] );
4005 track->setSigmaElectron( m_sigma1 );
4006 for( unsigned int i=0; i<5; i++ ) {
4007 toffset[i] = m_tof1[0] - m_tof1[i];
4008 }
4009 track->setToffset( toffset );
4010 track->setBeta( m_path1/m_tof1[0]/30.0 );
4011 }
4012 else if( layerorend == 2 ) { // outer layer
4013 track->setPh( m_ph2 );
4014 track->setTof( m_tof2[0] );
4015 track->setSigmaElectron( m_sigma2 );
4016 for( unsigned int i=0; i<5; i++ ) {
4017 toffset[i] = m_tof2[0] - m_tof2[i];
4018 }
4019 track->setToffset( toffset );
4020 track->setBeta( m_path2/m_tof2[0]/30.0 );
4021 }
4022 else if( layerorend == 11 ) { // inner layer east end readout
4023 track->setPh( m_ph11 );
4024 track->setTof( m_tof11[0] );
4025 track->setSigmaElectron( m_sigma11 );
4026
4027 if((m_hitCase ==eastendcap_1) || (m_hitCase ==eastendcap_2) || (m_hitCase ==westendcap_1) || (m_hitCase ==westendcap_2))
4028 {
4029 track->setSigmaElectron(m_sigma_mrpc[0]);
4030 track->setSigmaMuon(m_sigma_mrpc[1]);
4031 track->setSigmaPion(m_sigma_mrpc[2]);
4032 track->setSigmaKaon(m_sigma_mrpc[3]);
4033 track->setSigmaProton(m_sigma_mrpc[4]);
4034
4035 }
4036
4037
4038
4039
4040
4041 for( unsigned int i=0; i<5; i++ ) {
4042 toffset[i] = m_tof11[0] - m_tof11[i];
4043 }
4044 track->setToffset( toffset );
4045 track->setBeta( m_path1/m_tof11[0]/30.0 );
4046 //std::cout << "MrpcDBSTrack setRecTofTrack : Set Beta = " <<m_path1/m_tof11[0]/30.0 << std::endl;
4047
4048 }
4049 else if( layerorend == 12 ) { // inner layer west end readout
4050 track->setPh( m_ph12 );
4051 track->setTof( m_tof12[0] );
4052 track->setSigmaElectron( m_sigma12 );
4053 for( unsigned int i=0; i<5; i++ ) {
4054 toffset[i] = m_tof12[0] - m_tof12[i];
4055 }
4056 track->setToffset( toffset );
4057 track->setBeta( m_path1/m_tof12[0]/30.0 );
4058 }
4059 else if( layerorend == 21 ) { // outer layer east end readout
4060 track->setPh( m_ph21 );
4061 track->setTof( m_tof21[0] );
4062 track->setSigmaElectron( m_sigma21 );
4063 for( unsigned int i=0; i<5; i++ ) {
4064 toffset[i] = m_tof21[0] - m_tof21[i];
4065 }
4066 track->setToffset( toffset );
4067 track->setBeta( m_path2/m_tof21[0]/30.0 );
4068 }
4069 else if( layerorend == 22 ) { // outer layer west end readout
4070 track->setPh( m_ph22 );
4071 track->setTof( m_tof22[0] );
4072 track->setSigmaElectron( m_sigma22 );
4073 for( unsigned int i=0; i<5; i++ ) {
4074 toffset[i] = m_tof22[0] - m_tof22[i];
4075 }
4076 track->setToffset( toffset );
4077 track->setBeta( m_path2/m_tof22[0]/30.0 );
4078 }
4079 else{
4080 cout << "MrpcRecDBS MrpcDBSTrack::SetRecTofTrack layerorend = " << layerorend << endl;
4081 }
4082 return;
4083}
4084
4085
4086
4087
4088int MrpcDBSTrack::get_mrpc_module_id_neighbour(string which,int stripid,int layer)
4089{
4092
4093 int neighbourmodule=0;
4094
4095 int returnvalue=0;
4096
4097 if(strip==0) return 0; //Falls vorher schon strip 1,2 oder 23,24 gibt die Funtion 0 zur��ck, diese vlt. nochmalige Eingabe wird hier abgefangen und wieder eine 0 zureuckgegebn!
4098
4099
4100 if(which=="l")
4101 {
4102
4103
4104 if(layer==3 || layer== 5)
4105 {
4106 neighbourmodule=module; //In diesem Fall sind die Nachbarschaftsmodule immer gleich
4107 }
4108 else
4109 {
4110 neighbourmodule=module+1;
4111 if(neighbourmodule==19){neighbourmodule=1;}
4112 }
4113
4114 returnvalue= neighbourmodule;
4115 } //close if which==l
4116
4117 else if(which=="r")
4118 {
4119
4120 if(layer==4 || layer== 6)
4121 {neighbourmodule=module;}//In diesem Fall ist das rechte Nachbarmodul immer die gleiche modulnummer
4122 else
4123 {neighbourmodule=module-1;
4124 if(neighbourmodule==0){neighbourmodule=18;}
4125 }
4126
4127 returnvalue=neighbourmodule;
4128 } //close if which==r
4129
4130 else if(which=="u")
4131 {
4132 if(strip==23 || strip==24) {neighbourmodule=0;}
4133 else
4134 {
4135 neighbourmodule=module;
4136 }
4137 returnvalue=neighbourmodule;
4138 } //close if which==u
4139
4140 else if(which=="b")
4141 {
4142 if(strip==1 || strip==2) {neighbourmodule=0;}
4143 else
4144 {
4145 neighbourmodule=module;
4146 }
4147 returnvalue=neighbourmodule;
4148 } //close if which==b
4149
4150
4151 return returnvalue;
4152}
4153
4154
4155
4156
4157
4158
4160{
4161
4162 int returnvalue=0;
4163
4164 if( (which=="l") || (which=="r"))
4165 {
4166 if(layer==3) returnvalue = 4;
4167 if(layer==4) returnvalue = 3;
4168 if(layer==5) returnvalue = 6;
4169 if(layer==6) returnvalue = 5;
4170 }
4171
4172 if(which=="u")returnvalue = layer;
4173 if(which=="b")returnvalue = layer;
4174
4175
4176
4177 return returnvalue;
4178
4179}
4180
4181
4182int MrpcDBSTrack::get_strip_number_neighbour_base_12(string which,int strip_base_24)
4183{
4184
4185 if(strip_base_24==0) return 0;
4186
4187 //Convert the number in base 24 into the 12 base:
4188 if((strip_base_24%2)==0)
4189 {
4190 strip_base_24=strip_base_24/2;
4191 }
4192 else
4193 {
4194 strip_base_24=(strip_base_24+1)/2;
4195 }
4196
4197 int returnvalue=0;
4198
4199 if(which=="u")
4200 {
4201 returnvalue= strip_base_24+1;
4202 if(returnvalue>12) returnvalue=0;
4203 }
4204
4205 if(which=="b")
4206 {
4207 returnvalue= strip_base_24-1;
4208 if(returnvalue<1) returnvalue=0;
4209 }
4210
4211 if( (which=="l") || (which=="r"))
4212 {
4213 returnvalue= strip_base_24;
4214 }
4215
4216
4217 return returnvalue;
4218
4219
4220}
4221
4222
4223
4224
4225
4226
4227
4228
4229
double sin(const BesAngle a)
Definition BesAngle.h:210
double cos(const BesAngle a)
Definition BesAngle.h:213
double abs(const EvtComplex &c)
EvtStreamInputIterator< typename Generator::result_type > iter(Generator gen, int N=0)
std::string help()
bool innerLayer(HoughHit hit1, HoughHit hit2)
ITofCaliSvc * tofCaliSvc
bool mrpc_dbs_debug_counter
const double zadc_Cut
@ WestEndcap
@ westendcap_2
@ OuterLayer
@ westendcap_1
@ InnerLayer
@ eastendcap_2
@ EastEndcap
@ DoubleLayer
@ eastendcap_1
@ NoHit
const double ztdc_Cut
ObjectVector< RecTofTrack > RecTofTrackCol
Definition RecTofTrack.h:33
std::multimap< unsigned int, TofData * > TofDataMap
Definition TofData.h:244
std::multimap< unsignedint, TofData * >::iterator IterTofDataMap
Definition TofData.h:245
ITofCaliSvc * tofCaliSvc
static double GetTransitionTime_dbsmatch(double delta_t, int my_strip)
static G4int Get_module_mrpc_from_unique_identifier(G4int unique_identifier_f)
static double Average_transition_time_dbs(G4int my_module)
static G4int Produce_unique_identifier(G4int module_mrpc_f, G4int readoutstripnumber_f)
static double GetTransitionTime_extrap_track(G4double x_mm, G4double y_mm, int partId_f, int module_mrpc_f, int my_strip)
static G4int Get_stripnumber_from_unique_identifier(G4int unique_identifier_f)
const double tof1Path() const
Definition DstExtTrack.h:68
const Hep3Vector tof1Position() const
Definition DstExtTrack.h:58
const string tof1VolumeName() const
Definition DstExtTrack.h:62
const int tof1VolumeNumber() const
Definition DstExtTrack.h:64
const double tof1() const
Definition DstExtTrack.h:66
const Hep3Vector tof2Momentum() const
Definition DstExtTrack.h:96
const Hep3Vector tof1Momentum() const
Definition DstExtTrack.h:60
const double tof2() const
const double tof2PosSigmaAlongZ() const
const double tof1PosSigmaAlongX() const
Definition DstExtTrack.h:74
const double tof2Path() const
const string tof2VolumeName() const
Definition DstExtTrack.h:98
const int trackId() const
Definition DstExtTrack.h:43
const double tof1PosSigmaAlongY() const
Definition DstExtTrack.h:76
const double tof1PosSigmaAlongZ() const
Definition DstExtTrack.h:70
const int tof2VolumeNumber() const
const Hep3Vector tof2Position() const
Definition DstExtTrack.h:94
void setStatus(unsigned int status)
Definition DstTofTrack.h:92
void setSigma(double sigma[6])
void setToffset(double toffset[6])
void setEnergy(double energy)
void setPath(double path)
Definition DstTofTrack.h:94
void setTofTrackID(int tofTrackID)
Definition DstTofTrack.h:89
void setPh(double ph)
Definition DstTofTrack.h:96
void setSigmaMuon(double smu)
void setQuality(int quality)
void setZrHit(double zrhit)
Definition DstTofTrack.h:95
void setTof(double tof)
Definition DstTofTrack.h:97
void setSigmaProton(double sp)
void setPhi(double phi)
void setErrTof(double etof)
Definition DstTofTrack.h:98
void setErrT0(double errt0)
void setTexp(double texp[5])
void setBeta(double beta)
Definition DstTofTrack.h:99
void setSigmaKaon(double sk)
void setErrEnergy(double errenergy)
void setTrackID(int trackID)
Definition DstTofTrack.h:90
void setT0(double t0)
void setErrZ(double errz)
void setErrPhi(double errphi)
void setSigmaPion(double spi)
void setTofID(int tofID)
Definition DstTofTrack.h:91
void setSigmaElectron(double se)
virtual const double BSigmaCounter(double zHit, unsigned id)=0
virtual const double BSigma2(double zHit, unsigned id)=0
virtual const double BTimeCluster(double tlayer1, double tlayer2, double z1, double z2, unsigned id1, unsigned int id2)=0
virtual const double EPulseHeight(double ADC, double rHit, double cost, unsigned int id)=0
virtual const double BTime2(double ADC, double TDC, double zHit, unsigned id, double t0)=0
virtual const double BTime1(double ADC, double TDC, double zHit, unsigned id, double t0)=0
virtual const double BTimeCounter(double tleft, double tright, double z, unsigned id)=0
virtual const double ZTDC(double tleft, double tright, unsigned id)=0
virtual const double BSigmaCluster(double zHit1, double zHit2, unsigned id1, unsigned id2)=0
virtual const double BPulseHeight(double ADC1, double ADC2, double zHit, double sint, unsigned int id)=0
virtual const double BSigma1(double zHit, unsigned id)=0
virtual const double ESigma(double rHit, unsigned id)=0
virtual const double ZADC(double qleft, double qright, unsigned id)=0
virtual const double ETime(double ADC, double TDC, double rHit, unsigned id)=0
double GetSigma(double, unsigned, int, bool)
void findTofDataEndcap(std::vector< TofData * > tofDataVec1, std::vector< TofData * > tofDataVec2, double zr1[5])
unsigned int quality1() const
ExtTrackCase hitCase() const
unsigned int barrel() const
void setRecTofTrack(RecTofTrack *track, int layerorend)
int tofId2() const
TofData * compareTofData(TofData *tofData1, TofData *tofData2, double zrhit)
void getTofDataNohit(unsigned int iflag)
MrpcCalibSvc * mrpcCaliSvc
unsigned int quality2() const
int kal(unsigned int i) const
TofData * chooseTofData(std::vector< TofData * > tofDataVec, double zrhit)
void setExtTrack(RecExtTrack *extTrack, int kal[5], double t0, int t0Stat)
void getTofData(TofData *tof, unsigned int iflag)
void getTofDataWest(TofData *tof, unsigned int iflag)
int t0Stat() const
void setQuality1(int qual1)
void findTofDataMRPC(std::vector< TofData * > tofDataVec1, std::vector< TofData * > tofDataVec2, double zrhit, unsigned int iflag)
void setQuality2(int qual2)
std::vector< TofData * > tofData1() const
int get_mrpc_module_id_neighbour(string which, int stripid, int layer)
double tof(unsigned int i) const
int get_strip_number_neighbour_base_12(string which, int strip_base_24)
void getMultiHit(MrpcDBSTrack *&)
TofData * compareTofDataMRPC(TofData *tofData1, TofData *tofData2)
void getTofDataEast(TofData *tof, unsigned int iflag)
void getTofDataMRPC(TofData *, unsigned int)
int tofId1() const
void buildRecTofTrack(RecTofTrack *track, int layerorend)
TofData * chooseTofDataMRPC(std::vector< TofData *, std::allocator< TofData * > >)
void setTofData(TofDataMap tofDataMap, int)
TofData * chooseTofDataEndcap(std::vector< TofData * > tofDataVec, double zr1[5])
void findTofDataBarrel(std::vector< TofData * > tofDataVec1, std::vector< TofData * > tofDataVec2, double zrhit, unsigned int iflag, std::vector< MrpcDBSTrack * > *&tofTrackVec)
void tofDataAnalysis(TofData *tof, unsigned int iflag)
int get_mrpc_partid_neighbour(std::string, int)
std::vector< TofData * > tofData2() const
void match(std::vector< MrpcDBSTrack * > *&tofTrackVec)
void convert2RecTofTrackCol(RecTofTrackCol *recTofTrackCol)
bool two_digis_from_same_strip(std::vector< TofData * > tofDataVec)
int id2() const
TofData * compareTofDataEndcap(TofData *tofData1, TofData *tofData2)
int id1() const
void setUsed()
Definition TofData.cxx:945
unsigned int value() const
void setBarrelReadout(unsigned int layer, bool east)
void setEndcapCluster(bool east)
void setBarrelCounter(unsigned int layer)
void setBarrelCluster(unsigned int layer)
static value_type getIntID_mrpc(int partID, int scinNum)
Definition TofID.cxx:216
static value_type getIntID(int barrel_ec, int layer, int phi_module, int end)
Definition TofID.cxx:200