17 #include "CbmTofHit.h"
25 #include "FairLogger.h"
26 #include "FairMCEventHeader.h"
27 #include "FairRootManager.h"
28 #include "FairRunAna.h"
29 #include "FairRuntimeDb.h"
32 #include "Riostream.h"
33 #include "TClonesArray.h"
39 #include "TProfile2D.h"
102 : FairTask(
"TofHitFinderQa")
115 , fMCEventHeader(NULL)
116 , fTofPointsColl(NULL)
117 , fMcTracksColl(NULL)
118 , fTofDigisColl(NULL)
119 , fTofDigiMatchPointsColl(NULL)
121 , fTofDigiMatchColl(NULL)
122 , fTofHitMatchColl(NULL)
123 , fbHitProducerSource(kFALSE)
124 , fRealTofPointsColl(NULL)
125 , fRealTofMatchColl(NULL)
126 , fbRealPointAvail(kFALSE)
127 , fbNormHistGenMode(kFALSE)
128 , fsHistoInNormCartFilename(
"")
129 , fsHistoInNormAngFilename(
"")
130 , fsHistoInNormSphFilename(
"")
131 , fsHistoOutFilename(
"./tofQa.hst.root")
133 , fuNbEventsForHitsNbPlots(30000)
134 , fhNbHitsPerEvent(NULL)
135 , fhNbHitsSingPntPerEvent(NULL)
136 , fhNbHitsMultPntPerEvent(NULL)
137 , fhNbHitsSingTrkPerEvent(NULL)
138 , fhNbHitsMultTrkPerEvent(NULL)
139 , fhNbDigisInHit(NULL)
140 , fhNbDigisInHitMapXY(NULL)
141 , fvhTrackAllStartZCent()
143 fvhTrackSecStartZCent()
145 fvhTrackAllStartXZCent()
151 fvhTofPntAllAngCent()
166 , fhPointMapAng(NULL)
167 , fhPointMapSph(NULL)
168 , fhRealPointMapXY(NULL)
169 , fhRealPointMapXZ(NULL)
170 , fhRealPointMapYZ(NULL)
171 , fhRealPointMapAng(NULL)
172 , fhRealPointMapSph(NULL)
183 , fhLeftRightDigiMatch(NULL)
184 , fhNbPointsInHit(NULL)
185 , fhNbTracksInHit(NULL)
186 , fhHitMapSingPntXY(NULL)
187 , fhHitMapSingPntXZ(NULL)
188 , fhHitMapSingPntYZ(NULL)
189 , fhHitMapSingPntAng(NULL)
190 , fhHitMapSingPntSph(NULL)
191 , fhHitMapMultPntXY(NULL)
192 , fhHitMapMultPntXZ(NULL)
193 , fhHitMapMultPntYZ(NULL)
194 , fhHitMapMultPntAng(NULL)
195 , fhHitMapMultPntSph(NULL)
196 , fhHitMapSingTrkXY(NULL)
197 , fhHitMapSingTrkXZ(NULL)
198 , fhHitMapSingTrkYZ(NULL)
199 , fhHitMapSingTrkAng(NULL)
200 , fhHitMapSingTrkSph(NULL)
201 , fhHitMapMultTrkXY(NULL)
202 , fhHitMapMultTrkXZ(NULL)
203 , fhHitMapMultTrkYZ(NULL)
204 , fhHitMapMultTrkAng(NULL)
205 , fhHitMapMultTrkSph(NULL)
206 , fhSinglePointHitDeltaX(NULL)
207 , fhSinglePointHitDeltaY(NULL)
208 , fhSinglePointHitDeltaZ(NULL)
209 , fhSinglePointHitDeltaR(NULL)
210 , fhSinglePointHitDeltaT(NULL)
211 , fhSinglePointHitPullX(NULL)
212 , fhSinglePointHitPullY(NULL)
213 , fhSinglePointHitPullZ(NULL)
214 , fhSinglePointHitPullR(NULL)
215 , fhSinglePointHitPullT(NULL)
216 , fhCltSzSinglePointHitPullX(NULL)
217 , fhCltSzSinglePointHitPullY(NULL)
218 , fhCltSzSinglePointHitPullZ(NULL)
219 , fhCltSzSinglePointHitPullR(NULL)
220 , fhCltSzSinglePointHitPullT(NULL)
221 , fhMultiPntHitClosestDeltaX(NULL)
222 , fhMultiPntHitClosestDeltaY(NULL)
223 , fhMultiPntHitClosestDeltaZ(NULL)
224 , fhMultiPntHitClosestDeltaR(NULL)
225 , fhMultiPntHitClosestDeltaT(NULL)
226 , fhMultiPntHitClosestPullX(NULL)
227 , fhMultiPntHitClosestPullY(NULL)
228 , fhMultiPntHitClosestPullZ(NULL)
229 , fhMultiPntHitClosestPullR(NULL)
230 , fhMultiPntHitClosestPullT(NULL)
231 , fhMultiPntHitFurthestDeltaX(NULL)
232 , fhMultiPntHitFurthestDeltaY(NULL)
233 , fhMultiPntHitFurthestDeltaZ(NULL)
234 , fhMultiPntHitFurthestDeltaR(NULL)
235 , fhMultiPntHitFurthestDeltaT(NULL)
236 , fhMultiPntHitFurthestPullX(NULL)
237 , fhMultiPntHitFurthestPullY(NULL)
238 , fhMultiPntHitFurthestPullZ(NULL)
239 , fhMultiPntHitFurthestPullR(NULL)
240 , fhMultiPntHitFurthestPullT(NULL)
241 , fhMultiPntHitMeanDeltaX(NULL)
242 , fhMultiPntHitMeanDeltaY(NULL)
243 , fhMultiPntHitMeanDeltaZ(NULL)
244 , fhMultiPntHitMeanDeltaR(NULL)
245 , fhMultiPntHitMeanDeltaT(NULL)
246 , fhMultiPntHitMeanPullX(NULL)
247 , fhMultiPntHitMeanPullY(NULL)
248 , fhMultiPntHitMeanPullZ(NULL)
249 , fhMultiPntHitMeanPullR(NULL)
250 , fhMultiPntHitMeanPullT(NULL)
251 , fhMultiPntHitBestDeltaX(NULL)
252 , fhMultiPntHitBestDeltaY(NULL)
253 , fhMultiPntHitBestDeltaZ(NULL)
254 , fhMultiPntHitBestDeltaR(NULL)
255 , fhMultiPntHitBestDeltaT(NULL)
256 , fhMultiPntHitBestPullX(NULL)
257 , fhMultiPntHitBestPullY(NULL)
258 , fhMultiPntHitBestPullZ(NULL)
259 , fhMultiPntHitBestPullR(NULL)
260 , fhMultiPntHitBestPullT(NULL)
261 , fhSingleTrackHitDeltaX(NULL)
262 , fhSingleTrackHitDeltaY(NULL)
263 , fhSingleTrackHitDeltaZ(NULL)
264 , fhSingleTrackHitDeltaR(NULL)
265 , fhSingleTrackHitDeltaT(NULL)
266 , fhSingleTrackHitPullX(NULL)
267 , fhSingleTrackHitPullY(NULL)
268 , fhSingleTrackHitPullZ(NULL)
269 , fhSingleTrackHitPullR(NULL)
270 , fhSingleTrackHitPullT(NULL)
271 , fhSingTrkMultiPntHitDeltaX(NULL)
272 , fhSingTrkMultiPntHitDeltaY(NULL)
273 , fhSingTrkMultiPntHitDeltaZ(NULL)
274 , fhSingTrkMultiPntHitDeltaR(NULL)
275 , fhSingTrkMultiPntHitDeltaT(NULL)
276 , fhSingTrkMultiPntHitPullX(NULL)
277 , fhSingTrkMultiPntHitPullY(NULL)
278 , fhSingTrkMultiPntHitPullZ(NULL)
279 , fhSingTrkMultiPntHitPullR(NULL)
280 , fhSingTrkMultiPntHitPullT(NULL)
281 , fhMultiTrkHitClosestDeltaX(NULL)
282 , fhMultiTrkHitClosestDeltaY(NULL)
283 , fhMultiTrkHitClosestDeltaZ(NULL)
284 , fhMultiTrkHitClosestDeltaR(NULL)
285 , fhMultiTrkHitClosestDeltaT(NULL)
286 , fhMultiTrkHitClosestPullX(NULL)
287 , fhMultiTrkHitClosestPullY(NULL)
288 , fhMultiTrkHitClosestPullZ(NULL)
289 , fhMultiTrkHitClosestPullR(NULL)
290 , fhMultiTrkHitClosestPullT(NULL)
291 , fhMultiTrkHitFurthestDeltaX(NULL)
292 , fhMultiTrkHitFurthestDeltaY(NULL)
293 , fhMultiTrkHitFurthestDeltaZ(NULL)
294 , fhMultiTrkHitFurthestDeltaR(NULL)
295 , fhMultiTrkHitFurthestDeltaT(NULL)
296 , fhMultiTrkHitFurthestPullX(NULL)
297 , fhMultiTrkHitFurthestPullY(NULL)
298 , fhMultiTrkHitFurthestPullZ(NULL)
299 , fhMultiTrkHitFurthestPullR(NULL)
300 , fhMultiTrkHitFurthestPullT(NULL)
301 , fhMultiTrkHitMeanDeltaX(NULL)
302 , fhMultiTrkHitMeanDeltaY(NULL)
303 , fhMultiTrkHitMeanDeltaZ(NULL)
304 , fhMultiTrkHitMeanDeltaR(NULL)
305 , fhMultiTrkHitMeanDeltaT(NULL)
306 , fhMultiTrkHitMeanPullX(NULL)
307 , fhMultiTrkHitMeanPullY(NULL)
308 , fhMultiTrkHitMeanPullZ(NULL)
309 , fhMultiTrkHitMeanPullR(NULL)
310 , fhMultiTrkHitMeanPullT(NULL)
311 , fhMultiTrkHitBestDeltaX(NULL)
312 , fhMultiTrkHitBestDeltaY(NULL)
313 , fhMultiTrkHitBestDeltaZ(NULL)
314 , fhMultiTrkHitBestDeltaR(NULL)
315 , fhMultiTrkHitBestDeltaT(NULL)
316 , fhMultiTrkHitBestPullX(NULL)
317 , fhMultiTrkHitBestPullY(NULL)
318 , fhMultiTrkHitBestPullZ(NULL)
319 , fhMultiTrkHitBestPullR(NULL)
320 , fhMultiTrkHitBestPullT(NULL)
325 , fvhPtmRapTofHitSinglePnt()
326 , fvhPtmRapTofHitSingleTrk()
327 , fvhPtmRapSecGenTrk()
328 , fvhPtmRapSecStsPnt()
329 , fvhPtmRapSecTofPnt()
330 , fvhPtmRapSecTofHit()
331 , fvhPtmRapSecTofHitSinglePnt()
332 , fvhPtmRapSecTofHitSingleTrk()
337 , fvhPlabTofHitSinglePnt()
338 , fvhPlabTofHitSingleTrk()
343 , fvhPlabSecTofHitSinglePnt()
344 , fvhPlabSecTofHitSingleTrk()
345 , fvhPtmRapGenTrkTofPnt()
346 , fvhPtmRapGenTrkTofHit()
347 , fvhPlabGenTrkTofPnt()
348 , fvhPlabGenTrkTofHit()
349 , fvhPlabStsTrkTofPnt()
350 , fvhPlabStsTrkTofHit()
351 , fvhPtmRapSecGenTrkTofPnt()
352 , fvhPtmRapSecGenTrkTofHit()
353 , fvhPlabSecGenTrkTofPnt()
354 , fvhPlabSecGenTrkTofHit()
355 , fvhPlabSecStsTrkTofPnt()
356 , fvhPlabSecStsTrkTofHit()
357 , fvulIdxTracksWithPnt()
358 , fvulIdxTracksWithHit()
359 , fhIntegratedHitPntEff(NULL)
360 , fvulIdxPrimTracksWithPnt()
361 , fvulIdxPrimTracksWithHit()
362 , fhIntegratedHitPntEffPrim(NULL)
363 , fvulIdxSecTracksWithPnt()
364 , fvulIdxSecTracksWithHit()
365 , fhIntegratedHitPntEffSec(NULL)
366 , fvulIdxHiddenTracksWithHit()
367 , fhIntegratedHiddenHitPntLoss(NULL)
368 , fvulIdxHiddenPrimTracksWithHit()
369 , fhIntegratedHiddenHitPntLossPrim(NULL)
370 , fvulIdxHiddenSecTracksWithHit()
371 , fhIntegratedHiddenHitPntLossSec(NULL)
372 , fvulIdxTracksWithPntGaps()
373 , fvulIdxTracksWithHitGaps()
374 , fhIntegratedHitPntEffGaps(NULL)
375 , fvulIdxPrimTracksWithPntGaps()
376 , fvulIdxPrimTracksWithHitGaps()
377 , fhIntegratedHitPntEffPrimGaps(NULL)
378 , fvulIdxSecTracksWithPntGaps()
379 , fvulIdxSecTracksWithHitGaps()
380 , fhIntegratedHitPntEffSecGaps(NULL)
381 , fhMcTrkStartPrimSingTrk(NULL)
382 , fhMcTrkStartSecSingTrk(NULL)
383 , fhMcTrkStartPrimMultiTrk(NULL)
384 , fhMcTrkStartSecMultiTrk(NULL)
385 , fhPointMatchWeight(NULL) {
386 cout <<
"CbmTofHitFinderQa: Task started " << endl;
392 : FairTask(name, verbose)
405 , fMCEventHeader(NULL)
406 , fTofPointsColl(NULL)
407 , fMcTracksColl(NULL)
408 , fTofDigisColl(NULL)
409 , fTofDigiMatchPointsColl(NULL)
411 , fTofDigiMatchColl(NULL)
412 , fTofHitMatchColl(NULL)
413 , fbHitProducerSource(kFALSE)
414 , fRealTofPointsColl(NULL)
415 , fRealTofMatchColl(NULL)
416 , fbRealPointAvail(kFALSE)
417 , fbNormHistGenMode(kFALSE)
418 , fsHistoInNormCartFilename(
"")
419 , fsHistoInNormAngFilename(
"")
420 , fsHistoInNormSphFilename(
"")
421 , fsHistoOutFilename(
"./tofQa.hst.root")
423 , fuNbEventsForHitsNbPlots(30000)
424 , fhNbHitsPerEvent(NULL)
425 , fhNbHitsSingPntPerEvent(NULL)
426 , fhNbHitsMultPntPerEvent(NULL)
427 , fhNbHitsSingTrkPerEvent(NULL)
428 , fhNbHitsMultTrkPerEvent(NULL)
429 , fhNbDigisInHit(NULL)
430 , fhNbDigisInHitMapXY(NULL)
431 , fvhTrackAllStartZCent()
433 fvhTrackSecStartZCent()
435 fvhTrackAllStartXZCent()
441 fvhTofPntAllAngCent()
456 , fhPointMapAng(NULL)
457 , fhPointMapSph(NULL)
458 , fhRealPointMapXY(NULL)
459 , fhRealPointMapXZ(NULL)
460 , fhRealPointMapYZ(NULL)
461 , fhRealPointMapAng(NULL)
462 , fhRealPointMapSph(NULL)
473 , fhLeftRightDigiMatch(NULL)
474 , fhNbPointsInHit(NULL)
475 , fhNbTracksInHit(NULL)
476 , fhHitMapSingPntXY(NULL)
477 , fhHitMapSingPntXZ(NULL)
478 , fhHitMapSingPntYZ(NULL)
479 , fhHitMapSingPntAng(NULL)
480 , fhHitMapSingPntSph(NULL)
481 , fhHitMapMultPntXY(NULL)
482 , fhHitMapMultPntXZ(NULL)
483 , fhHitMapMultPntYZ(NULL)
484 , fhHitMapMultPntAng(NULL)
485 , fhHitMapMultPntSph(NULL)
486 , fhHitMapSingTrkXY(NULL)
487 , fhHitMapSingTrkXZ(NULL)
488 , fhHitMapSingTrkYZ(NULL)
489 , fhHitMapSingTrkAng(NULL)
490 , fhHitMapSingTrkSph(NULL)
491 , fhHitMapMultTrkXY(NULL)
492 , fhHitMapMultTrkXZ(NULL)
493 , fhHitMapMultTrkYZ(NULL)
494 , fhHitMapMultTrkAng(NULL)
495 , fhHitMapMultTrkSph(NULL)
496 , fhSinglePointHitDeltaX(NULL)
497 , fhSinglePointHitDeltaY(NULL)
498 , fhSinglePointHitDeltaZ(NULL)
499 , fhSinglePointHitDeltaR(NULL)
500 , fhSinglePointHitDeltaT(NULL)
501 , fhSinglePointHitPullX(NULL)
502 , fhSinglePointHitPullY(NULL)
503 , fhSinglePointHitPullZ(NULL)
504 , fhSinglePointHitPullR(NULL)
505 , fhSinglePointHitPullT(NULL)
506 , fhCltSzSinglePointHitPullX(NULL)
507 , fhCltSzSinglePointHitPullY(NULL)
508 , fhCltSzSinglePointHitPullZ(NULL)
509 , fhCltSzSinglePointHitPullR(NULL)
510 , fhCltSzSinglePointHitPullT(NULL)
511 , fhMultiPntHitClosestDeltaX(NULL)
512 , fhMultiPntHitClosestDeltaY(NULL)
513 , fhMultiPntHitClosestDeltaZ(NULL)
514 , fhMultiPntHitClosestDeltaR(NULL)
515 , fhMultiPntHitClosestDeltaT(NULL)
516 , fhMultiPntHitClosestPullX(NULL)
517 , fhMultiPntHitClosestPullY(NULL)
518 , fhMultiPntHitClosestPullZ(NULL)
519 , fhMultiPntHitClosestPullR(NULL)
520 , fhMultiPntHitClosestPullT(NULL)
521 , fhMultiPntHitFurthestDeltaX(NULL)
522 , fhMultiPntHitFurthestDeltaY(NULL)
523 , fhMultiPntHitFurthestDeltaZ(NULL)
524 , fhMultiPntHitFurthestDeltaR(NULL)
525 , fhMultiPntHitFurthestDeltaT(NULL)
526 , fhMultiPntHitFurthestPullX(NULL)
527 , fhMultiPntHitFurthestPullY(NULL)
528 , fhMultiPntHitFurthestPullZ(NULL)
529 , fhMultiPntHitFurthestPullR(NULL)
530 , fhMultiPntHitFurthestPullT(NULL)
531 , fhMultiPntHitMeanDeltaX(NULL)
532 , fhMultiPntHitMeanDeltaY(NULL)
533 , fhMultiPntHitMeanDeltaZ(NULL)
534 , fhMultiPntHitMeanDeltaR(NULL)
535 , fhMultiPntHitMeanDeltaT(NULL)
536 , fhMultiPntHitMeanPullX(NULL)
537 , fhMultiPntHitMeanPullY(NULL)
538 , fhMultiPntHitMeanPullZ(NULL)
539 , fhMultiPntHitMeanPullR(NULL)
540 , fhMultiPntHitMeanPullT(NULL)
541 , fhMultiPntHitBestDeltaX(NULL)
542 , fhMultiPntHitBestDeltaY(NULL)
543 , fhMultiPntHitBestDeltaZ(NULL)
544 , fhMultiPntHitBestDeltaR(NULL)
545 , fhMultiPntHitBestDeltaT(NULL)
546 , fhMultiPntHitBestPullX(NULL)
547 , fhMultiPntHitBestPullY(NULL)
548 , fhMultiPntHitBestPullZ(NULL)
549 , fhMultiPntHitBestPullR(NULL)
550 , fhMultiPntHitBestPullT(NULL)
551 , fhSingleTrackHitDeltaX(NULL)
552 , fhSingleTrackHitDeltaY(NULL)
553 , fhSingleTrackHitDeltaZ(NULL)
554 , fhSingleTrackHitDeltaR(NULL)
555 , fhSingleTrackHitDeltaT(NULL)
556 , fhSingleTrackHitPullX(NULL)
557 , fhSingleTrackHitPullY(NULL)
558 , fhSingleTrackHitPullZ(NULL)
559 , fhSingleTrackHitPullR(NULL)
560 , fhSingleTrackHitPullT(NULL)
561 , fhSingTrkMultiPntHitDeltaX(NULL)
562 , fhSingTrkMultiPntHitDeltaY(NULL)
563 , fhSingTrkMultiPntHitDeltaZ(NULL)
564 , fhSingTrkMultiPntHitDeltaR(NULL)
565 , fhSingTrkMultiPntHitDeltaT(NULL)
566 , fhSingTrkMultiPntHitPullX(NULL)
567 , fhSingTrkMultiPntHitPullY(NULL)
568 , fhSingTrkMultiPntHitPullZ(NULL)
569 , fhSingTrkMultiPntHitPullR(NULL)
570 , fhSingTrkMultiPntHitPullT(NULL)
571 , fhMultiTrkHitClosestDeltaX(NULL)
572 , fhMultiTrkHitClosestDeltaY(NULL)
573 , fhMultiTrkHitClosestDeltaZ(NULL)
574 , fhMultiTrkHitClosestDeltaR(NULL)
575 , fhMultiTrkHitClosestDeltaT(NULL)
576 , fhMultiTrkHitClosestPullX(NULL)
577 , fhMultiTrkHitClosestPullY(NULL)
578 , fhMultiTrkHitClosestPullZ(NULL)
579 , fhMultiTrkHitClosestPullR(NULL)
580 , fhMultiTrkHitClosestPullT(NULL)
581 , fhMultiTrkHitFurthestDeltaX(NULL)
582 , fhMultiTrkHitFurthestDeltaY(NULL)
583 , fhMultiTrkHitFurthestDeltaZ(NULL)
584 , fhMultiTrkHitFurthestDeltaR(NULL)
585 , fhMultiTrkHitFurthestDeltaT(NULL)
586 , fhMultiTrkHitFurthestPullX(NULL)
587 , fhMultiTrkHitFurthestPullY(NULL)
588 , fhMultiTrkHitFurthestPullZ(NULL)
589 , fhMultiTrkHitFurthestPullR(NULL)
590 , fhMultiTrkHitFurthestPullT(NULL)
591 , fhMultiTrkHitMeanDeltaX(NULL)
592 , fhMultiTrkHitMeanDeltaY(NULL)
593 , fhMultiTrkHitMeanDeltaZ(NULL)
594 , fhMultiTrkHitMeanDeltaR(NULL)
595 , fhMultiTrkHitMeanDeltaT(NULL)
596 , fhMultiTrkHitMeanPullX(NULL)
597 , fhMultiTrkHitMeanPullY(NULL)
598 , fhMultiTrkHitMeanPullZ(NULL)
599 , fhMultiTrkHitMeanPullR(NULL)
600 , fhMultiTrkHitMeanPullT(NULL)
601 , fhMultiTrkHitBestDeltaX(NULL)
602 , fhMultiTrkHitBestDeltaY(NULL)
603 , fhMultiTrkHitBestDeltaZ(NULL)
604 , fhMultiTrkHitBestDeltaR(NULL)
605 , fhMultiTrkHitBestDeltaT(NULL)
606 , fhMultiTrkHitBestPullX(NULL)
607 , fhMultiTrkHitBestPullY(NULL)
608 , fhMultiTrkHitBestPullZ(NULL)
609 , fhMultiTrkHitBestPullR(NULL)
610 , fhMultiTrkHitBestPullT(NULL)
615 , fvhPtmRapTofHitSinglePnt()
616 , fvhPtmRapTofHitSingleTrk()
617 , fvhPtmRapSecGenTrk()
618 , fvhPtmRapSecStsPnt()
619 , fvhPtmRapSecTofPnt()
620 , fvhPtmRapSecTofHit()
621 , fvhPtmRapSecTofHitSinglePnt()
622 , fvhPtmRapSecTofHitSingleTrk()
627 , fvhPlabTofHitSinglePnt()
628 , fvhPlabTofHitSingleTrk()
633 , fvhPlabSecTofHitSinglePnt()
634 , fvhPlabSecTofHitSingleTrk()
635 , fvhPtmRapGenTrkTofPnt()
636 , fvhPtmRapGenTrkTofHit()
637 , fvhPlabGenTrkTofPnt()
638 , fvhPlabGenTrkTofHit()
639 , fvhPlabStsTrkTofPnt()
640 , fvhPlabStsTrkTofHit()
641 , fvhPtmRapSecGenTrkTofPnt()
642 , fvhPtmRapSecGenTrkTofHit()
643 , fvhPlabSecGenTrkTofPnt()
644 , fvhPlabSecGenTrkTofHit()
645 , fvhPlabSecStsTrkTofPnt()
646 , fvhPlabSecStsTrkTofHit()
647 , fvulIdxTracksWithPnt()
648 , fvulIdxTracksWithHit()
649 , fhIntegratedHitPntEff(NULL)
650 , fvulIdxPrimTracksWithPnt()
651 , fvulIdxPrimTracksWithHit()
652 , fhIntegratedHitPntEffPrim(NULL)
653 , fvulIdxSecTracksWithPnt()
654 , fvulIdxSecTracksWithHit()
655 , fhIntegratedHitPntEffSec(NULL)
656 , fvulIdxHiddenTracksWithHit()
657 , fhIntegratedHiddenHitPntLoss(NULL)
658 , fvulIdxHiddenPrimTracksWithHit()
659 , fhIntegratedHiddenHitPntLossPrim(NULL)
660 , fvulIdxHiddenSecTracksWithHit()
661 , fhIntegratedHiddenHitPntLossSec(NULL)
662 , fvulIdxTracksWithPntGaps()
663 , fvulIdxTracksWithHitGaps()
664 , fhIntegratedHitPntEffGaps(NULL)
665 , fvulIdxPrimTracksWithPntGaps()
666 , fvulIdxPrimTracksWithHitGaps()
667 , fhIntegratedHitPntEffPrimGaps(NULL)
668 , fvulIdxSecTracksWithPntGaps()
669 , fvulIdxSecTracksWithHitGaps()
670 , fhIntegratedHitPntEffSecGaps(NULL)
671 , fhMcTrkStartPrimSingTrk(NULL)
672 , fhMcTrkStartSecSingTrk(NULL)
673 , fhMcTrkStartPrimMultiTrk(NULL)
674 , fhMcTrkStartSecMultiTrk(NULL)
675 , fhPointMatchWeight(NULL) {}
689 Bool_t isSimulation = kFALSE;
691 LOG(info) <<
"CbmTofHitFinderQa::Init with GeoVersion " << iGeoVersion;
693 if (
k12b > iGeoVersion) {
694 LOG(error) <<
"CbmTofHitFinderQa::Init => Only compatible with geometries "
700 LOG(info) <<
"CbmTofHitFinderQa::Init with GeoVersion "
703 switch (iGeoVersion) {
707 LOG(error) <<
"CbmTofHitFinderQa::Init => Invalid geometry!!!"
721 LOG(info) <<
" CbmTofHitFinderQa => Get the digi parameters for tof";
724 FairRunAna* ana = FairRunAna::Instance();
725 FairRuntimeDb* rtdb = ana->GetRuntimeDb();
735 LOG(debug) <<
" CbmTofHitFinderQa => New event";
740 cout <<
"-I- CbmTofHitFinderQa::Exec : "
741 <<
"event " <<
fEvents <<
" processed." << endl;
748 cout <<
"CbmTofHitFinderQa::Finish up with " <<
fEvents <<
" analyzed events "
764 FairRootManager* fManager = FairRootManager::Instance();
766 fMCEventHeader = (FairMCEventHeader*) fManager->GetObject(
"MCEventHeader.");
768 LOG(error) <<
"CbmTofHitFinderQa::RegisterInputs => Could not get the "
769 "MCEventHeader object!!!";
775 LOG(error) <<
"CbmTofHitFinderQa::RegisterInputs => Could not get the "
776 "TofPoint TClonesArray!!!";
780 fMcTracksColl = (TClonesArray*) fManager->GetObject(
"MCTrack");
782 LOG(error) <<
"CbmTofHitFinderQa::RegisterInputs => Could not get the "
783 "MCTrack TClonesArray!!!";
787 fTofDigisColl = (TClonesArray*) fManager->GetObject(
"TofDigi");
789 LOG(WARNING) <<
"CbmTofHitFinderQa::RegisterInputs => Could not get the "
790 "TofDigi TClonesArray!!!";
791 LOG(WARNING) <<
" => Assuming that the "
792 "CbmTofHitProducerNew is used!!!";
796 (TClonesArray*) fManager->GetObject(
"TofDigiMatchPoints");
798 LOG(WARNING) <<
"CbmTofHitFinderQa::RegisterInputs => Could not get the "
799 "TofDigiMatchPoints TClonesArray!!!";
800 LOG(WARNING) <<
" => Assuming that the "
801 "CbmTofHitProducerNew is used!!!";
805 fTofHitsColl = (TClonesArray*) fManager->GetObject(
"TofHit");
807 LOG(error) <<
"CbmTofHitFinderQa::RegisterInputs => Could not get the "
808 "TofHit TClonesArray!!!";
813 LOG(WARNING) <<
"CbmTofHitFinderQa::RegisterInputs => Could not get the "
814 "TofDigiMatch TClonesArray!!!";
815 LOG(WARNING) <<
" => Assuming that the "
816 "CbmTofHitProducerNew is used!!!";
822 LOG(error) <<
"CbmTofHitFinderQa::RegisterInputs => Could not get the "
823 "TofHitMatch TClonesArray!!!";
834 LOG(error) <<
"CbmTofHitFinderQa::RegisterInputs => fTofDigisColl or "
835 "fTofDigiMatchPointsColl or fTofDigiMatchColl present while "
836 "the other is missing";
837 LOG(error) <<
" => Cannot be the result "
838 "of CbmTofHitProducerNew use!!!";
847 <<
"CbmTofHitFinderQa::RegisterInputs => Both fRealTofPointsColl & "
848 "fRealTofMatchColl there, realistic mean TOF MC point used for QA";
873 for (Int_t iSmType = 0; iSmType < iNbSmTypes; iSmType++) {
883 for (Int_t iSm = 0; iSm < iNbSm; iSm++) {
888 for (Int_t iRpc = 0; iRpc < iNbRpc; iRpc++) {
901 LOG(info) <<
"CbmTofHitFinderQa::SetWallPosZ => Change histograms center on "
903 << dWallPosCm <<
" cm";
928 Double_t xrange = 750.;
929 Double_t yrange = 500.;
934 Int_t iNbBinThetaX = 1200;
935 Double_t dThetaXMin = -60.0;
936 Double_t dThetaXMax = 60.0;
937 Int_t iNbBinThetaY = 900;
938 Double_t dThetaYMin = -45.0;
939 Double_t dThetaYMax = 45.0;
941 Int_t iNbBinTheta = 180;
942 Double_t dThetaMin = 0;
943 Double_t dThetaMax =
TMath::Pi() * 90 / 180;
944 Int_t iNbBinPhi = 180;
949 Int_t iNbBinsDeltaPos = 600;
950 Double_t dDeltaPosRange = 30;
951 Int_t iNbBinsDeltaTime = 1000;
952 Double_t dDeltaTimeRange = 1000;
953 Int_t iNbBinsMulti = 18;
954 Double_t iMinMulti = 2 - 0.5;
955 Double_t iMaxMulti = 19 + 0.5;
957 Int_t iNbBinsPullPos = 500;
958 Double_t dPullPosRange = 5;
961 Int_t iNbBinsStartZ = 1250;
962 Double_t dMinStartZ = -50.0;
963 Double_t dMaxStartZ = 1200.0;
964 Int_t iNbBinsStartXY = 1200;
965 Double_t dMinStartXY = -600.0;
966 Double_t dMaxStartXY = 600.0;
967 Int_t iNbBinsCentr = 16;
968 Double_t dNbMinCentr = 0.0;
969 Double_t dNbMaxCentr = 16.0;
973 new TH1I(
"TofTests_NbHitsPerEvent",
974 "Number of Hits per event; EventsIdx []; # [Hits]",
979 new TH1I(
"TofTests_NbHitsSingPntPerEvent",
980 "Number of Single Point Hits per event; EventsIdx []; # [Hits]",
985 new TH1I(
"TofTests_NbHitsMultPntPerEvent",
986 "Number of Multi Point Hits per event; EventsIdx []; # [Hits]",
991 new TH1I(
"TofTests_NbHitsSingTrkPerEvent",
992 "Number of Single Track Hits per event; EventsIdx []; # [Hits]",
997 new TH1I(
"TofTests_NbHitsMultTrkPerEvent",
998 "Number of Multi Track Hits per event; EventsIdx []; # [Hits]",
1004 "Number of Digis per Hit; # [Digis]",
1009 "TofTests_NbDigisInHitMapXY",
1010 "Number of Digis per Hit vs Position; X[cm]; Y[cm]; Mean [Digis/Hit]",
1026 for (Int_t iPartIdx = 0; iPartIdx <
kiNbPart; iPartIdx++) {
1029 Form(
"TofTests_TrackAllStartZCent_%s",
ksPartTag[iPartIdx].Data()),
1030 Form(
"Centrality vs Start Z distribution for MC tracks w/ TOF Pnt, %s, "
1031 "all tracks; Start Z [cm]; B [fm]; # []",
1040 Form(
"TofTests_TrackSecStartZCent_%s",
ksPartTag[iPartIdx].Data()),
1041 Form(
"Centrality vs Start Z distribution for MC tracks w/ TOF Pnt, %s, "
1042 "secondary tracks; Start Z [cm]; B [fm]; # []",
1052 Form(
"TofTests_TrackAllStartXZCent_%s",
ksPartTag[iPartIdx].Data()),
1053 Form(
"Centrality vs Start Z distribution for MC tracks w/ TOF Pnt, %s, "
1054 "all tracks; Start X [cm]; Start Z [cm]; B [fm];",
1066 new TH2D(Form(
"TofTests_TrackAllStartXZ_%s",
ksPartTag[iPartIdx].Data()),
1067 Form(
"Start X vs Z distribution for MC tracks w/ TOF Pnt, %s, "
1068 "all tracks; Start Z [cm]; Start X [cm]; # []",
1077 new TH2D(Form(
"TofTests_TrackAllStartYZ_%s",
ksPartTag[iPartIdx].Data()),
1078 Form(
"Start Y vs Z distribution for MC tracks w/ TOF Pnt, %s, "
1079 "all tracks; Start Z [cm]; Start Y [cm]; # []",
1088 new TH3D(Form(
"TofTests_TofPntAllAngCent_%s",
ksPartTag[iPartIdx].Data()),
1089 Form(
"Centrality vs Angular position of TOF Pnt, %s, all "
1090 "tracks; #theta_{x}[Deg.]; #theta_{y}[Deg.]; B [fm];",
1105 "Position of the MC Tracks assuming along Z axis; "
1106 "X[cm]; Y[cm]; # [Tracks]",
1114 "Position of the MC Tracks assuming along Z axis; "
1115 "X[cm]; Z[cm]; # [Tracks]",
1123 "Position of the MC Tracks assuming along Z axis; "
1124 "Y[cm]; Z[cm]; # [Tracks]",
1132 "Position of the MC Tracks assuming from origin; "
1133 "#theta_{x}[Deg.]; #theta_{y}[Deg.]; # [Tracks]",
1141 "Position of the MC Tracks assuming from origin; "
1142 "#theta[rad.]; #phi[rad.]; # [Tracks]",
1152 new TH2D(
"TofTests_PointsMapXY",
1153 "Position of the Tof Points; X[cm]; Y[cm]; # [Points]",
1161 new TH2D(
"TofTests_PointsMapXZ",
1162 "Position of the Tof Points; X[cm]; Z[cm]; # [Points]",
1170 new TH2D(
"TofTests_PointsMapYZ",
1171 "Position of the Tof Points; Y[cm]; Z[cm]; # [Points]",
1179 "Position of the Tof Points; #theta_{x}[Deg.]; "
1180 "#theta_{y}[Deg.]; # [Points]",
1188 new TH2D(
"TofTests_PointsMapSph",
1189 "Position of the Tof Points; #theta[rad.]; #phi[rad.]; # [Points]",
1198 "TofTests_RealPointsMapXY",
1199 "Position of the Tof Points (mean o/ gaps); X[cm]; Y[cm]; # [Points]",
1207 "TofTests_RealPointsMapXZ",
1208 "Position of the Tof Points (mean o/ gaps); X[cm]; Z[cm]; # [Points]",
1216 "TofTests_RealPointsMapYZ",
1217 "Position of the Tof Points (mean o/ gaps); Y[cm]; Z[cm]; # [Points]",
1225 "Position of the Tof Points (mean o/ gaps); "
1226 "#theta_{x}[Deg.]; #theta_{y}[Deg.]; # [Points]",
1234 "Position of the Tof Points (mean o/ gaps); "
1235 "#theta[rad.]; #phi[rad.]; # [Points]",
1244 "Position of the Tof Digis; X[cm]; Y[cm]; # [Digi]",
1252 "Position of the Tof Digis; X[cm]; Z[cm]; # [Digi]",
1260 "Position of the Tof Digis; Y[cm]; Z[cm]; # [Digi]",
1268 "TofTests_DigisMapAng",
1269 "Position of the Tof Digis; #theta_{x}[Deg.]; #theta_{y}[Deg.]; # [Digi]",
1277 new TH2D(
"TofTests_DigisMapSph",
1278 "Position of the Tof Digis; #theta[rad.]; #phi[rad.]; # [Points]",
1288 "Position of the Tof Hits; X[cm]; Y[cm]; # [Hits]",
1296 "Position of the Tof Hits; X[cm]; Z[cm]; # [Hits]",
1304 "Position of the Tof Hits; Y[cm]; Z[cm]; # [Hits]",
1312 "TofTests_HitsMapAng",
1313 "Position of the Tof Hits; #theta_{x}[Deg.]; #theta_{y}[Deg.]; # [Hits]",
1321 new TH2D(
"TofTests_HitsMapSph",
1322 "Position of the Tof Hits; #theta[rad.]; #phi[rad.]; # [Points]",
1336 "Matching between the left an right digi for "
1337 "strips added to hit; Global Strip Index []",
1350 new TH1D(
"TofTests_NbPointsInHit",
1351 "Number of different MC Points in Hit; # [MC Points]",
1356 new TH1D(
"TofTests_NbTracksInHit",
1357 "Number of different MC Tracks in Hit; # [MC Tracks]",
1364 "TofTests_HitsMapSingPntXY",
1365 "Position of the Tof Hits from a single MC Point; X[cm]; Y[cm]; # [Hits]",
1373 "TofTests_HitsMapSingPntXZ",
1374 "Position of the Tof Hits from a single MC Point; X[cm]; Z[cm]; # [Hits]",
1382 "TofTests_HitsMapSingPntYZ",
1383 "Position of the Tof Hits from a single MC Point; Y[cm]; Z[cm]; # [Hits]",
1391 new TH2D(
"TofTests_HitsMapSingPntAng",
1392 "Position of the Tof Hits from a single MC Point; "
1393 "#theta_{x}[Deg.]; #theta_{y}[Deg.]; # [Hits]",
1401 "Position of the Tof Hits from a single MC "
1402 "Point; #theta[rad.]; #phi[rad.]; # [Points]",
1411 "TofTests_HitsMapMultPntXY",
1412 "Position of the Tof Hits from multiple MC Points; X[cm]; Y[cm]; # [Hits]",
1420 "TofTests_HitsMapMultPntXZ",
1421 "Position of the Tof Hits from multiple MC Points; X[cm]; Z[cm]; # [Hits]",
1429 "TofTests_HitsMapMultPntYZ",
1430 "Position of the Tof Hits from multiple MC Points; Y[cm]; Z[cm]; # [Hits]",
1438 new TH2D(
"TofTests_HitsMapMultPntAng",
1439 "Position of the Tof Hits from multiple MC Points; "
1440 "#theta_{x}[Deg.]; #theta_{y}[Deg.]; # [Hits]",
1448 "Position of the Tof Hits from multiple MC "
1449 "Points; #theta[rad.]; #phi[rad.]; # [Points]",
1458 "TofTests_HitsMapSingTrkXY",
1459 "Position of the Tof Hits from a single MC Track; X[cm]; Y[cm]; # [Hits]",
1467 "TofTests_HitsMapSingTrkXZ",
1468 "Position of the Tof Hits from a single MC Track; X[cm]; Z[cm]; # [Hits]",
1476 "TofTests_HitsMapSingTrkYZ",
1477 "Position of the Tof Hits from a single MC Track; Y[cm]; Z[cm]; # [Hits]",
1485 new TH2D(
"TofTests_HitsMapSingTrkAng",
1486 "Position of the Tof Hits from a single MC Track; "
1487 "#theta_{x}[Deg.]; #theta_{y}[Deg.]; # [Hits]",
1495 "Position of the Tof Hits from a single MC "
1496 "Track; #theta[rad.]; #phi[rad.]; # [Points]",
1505 "TofTests_HitsMapMultTrkXY",
1506 "Position of the Tof Hits from multiple MC Tracks; X[cm]; Y[cm]; # [Hits]",
1514 "TofTests_HitsMapMultTrkXZ",
1515 "Position of the Tof Hits from multiple MC Tracks; X[cm]; Z[cm]; # [Hits]",
1523 "TofTests_HitsMapMultTrkYZ",
1524 "Position of the Tof Hits from multiple MC Tracks; Y[cm]; Z[cm]; # [Hits]",
1532 new TH2D(
"TofTests_HitsMapMultTrkAng",
1533 "Position of the Tof Hits from multiple MC Tracks; "
1534 "#theta_{x}[Deg.]; #theta_{y}[Deg.]; # [Hits]",
1542 "Position of the Tof Hits from multiple MC "
1543 "Tracks; #theta[rad.]; #phi[rad.]; # [Points]",
1554 new TH1D(
"TofTests_SinglePointHitDeltaX",
1555 "Quality of the Tof Hits position on X axis, for hit coming from "
1556 "a single MC Point; X(Hit) - X(Point) [cm]; # [Hits]",
1561 new TH1D(
"TofTests_SinglePointHitDeltaY",
1562 "Quality of the Tof Hits position on Y axis, for hit coming from "
1563 "a single MC Point; Y(Hit) - Y(Point) [cm]; # [Hits]",
1568 new TH1D(
"TofTests_SinglePointHitDeltaZ",
1569 "Quality of the Tof Hits position on Z axis, for hit coming from "
1570 "a single MC Point; Z(Hit) - Z(Point) [cm]; # [Hits]",
1575 new TH1D(
"TofTests_SinglePointHitDeltaR",
1576 "Quality of the Tof Hits position, for hit coming from a single "
1577 "MC Point; R(Hit -> Point) [cm]; # [Hits]",
1582 new TH1D(
"TofTests_SinglePointHitDeltaT",
1583 "Quality of the Tof Hits Time, for hit coming from a single MC "
1584 "Point; T(hit) - T(Point) [ps]; # [Hits]",
1589 new TH1D(
"TofTests_SinglePointHitPullX",
1590 "Quality of the Tof Hits position error on X axis, for hit coming "
1591 "from a single MC Point; Pull X(Hit -> Point) []; # [Hits]",
1596 new TH1D(
"TofTests_SinglePointHitPullY",
1597 "Quality of the Tof Hits position error on Y axis, for hit coming "
1598 "from a single MC Point; Pull Y(Hit -> Point) []; # [Hits]",
1603 new TH1D(
"TofTests_SinglePointHitPullZ",
1604 "Quality of the Tof Hits position error on Z axis, for hit coming "
1605 "from a single MC Point; Pull Z(Hit -> Point) []; # [Hits]",
1610 new TH1D(
"TofTests_SinglePointHitPullR",
1611 "Quality of the Tof Hits position error, for hit coming from a "
1612 "single MC Point; Pull R(Hit -> Point) []; # [Hits]",
1617 new TH1D(
"TofTests_SinglePointHitPullT",
1618 "Quality of the Tof Hits time error, for hit coming from a single "
1619 "MC Point; Pull T(Hit -> Point) []; # [Hits]",
1624 new TH2D(
"TofTests_CltSzSinglePointHitPullX",
1625 "Quality of the Tof Hits position error on X axis, for hit coming "
1626 "from a single MC Point; Pull X(Hit -> Point) []; # [Hits]",
1634 new TH2D(
"TofTests_CltSzSinglePointHitPullY",
1635 "Quality of the Tof Hits position error on Y axis, for hit coming "
1636 "from a single MC Point; Pull Y(Hit -> Point) []; # [Hits]",
1644 new TH2D(
"TofTests_CltSzSinglePointHitPullZ",
1645 "Quality of the Tof Hits position error on Z axis, for hit coming "
1646 "from a single MC Point; Pull Z(Hit -> Point) []; # [Hits]",
1654 new TH2D(
"TofTests_CltSzSinglePointHitPullR",
1655 "Quality of the Tof Hits position error, for hit coming from a "
1656 "single MC Point; Pull R(Hit -> Point) []; # [Hits]",
1664 new TH2D(
"TofTests_CltSzSinglePointHitPullT",
1665 "Quality of the Tof Hits time error, for hit coming from a single "
1666 "MC Point; Pull T(Hit -> Point) []; # [Hits]",
1677 new TH2D(
"TofTests_MultiPntHitClosestDeltaX",
1678 "Quality of the Tof Hits position on X axis relative to closest "
1679 "Point, for hit coming from multiple MC Point; X(Hit) - X(Point) "
1680 "[cm]; # [Hits]; Multi [Pnt]",
1688 new TH2D(
"TofTests_MultiPntHitClosestDeltaY",
1689 "Quality of the Tof Hits position on Y axis relative to closest "
1690 "Point, for hit coming from multiple MC Point; Y(Hit) - Y(Point) "
1691 "[cm]; # [Hits]; Multi [Pnt]",
1699 new TH2D(
"TofTests_MultiPntHitClosestDeltaZ",
1700 "Quality of the Tof Hits position on Z axis relative to closest "
1701 "Point, for hit coming from multiple MC Point; Z(Hit) - Z(Point) "
1702 "[cm]; # [Hits]; Multi [Pnt]",
1710 new TH2D(
"TofTests_MultiPntHitClosestDeltaR",
1711 "Quality of the Tof Hits position relative to closest Point, for "
1712 "hit coming from multiple MC Point; R(Hit -> Point) [cm]; # "
1713 "[Hits]; Multi [Pnt]",
1721 "TofTests_MultiPntHitClosestDeltaT",
1722 "Quality of the Tof Hits Time relative to closest Point, for hit coming "
1723 "from multiple MC Point; T(hit) - T(Point) [ps]; # [Hits]; Multi [Pnt]",
1731 new TH2D(
"TofTests_MultiPntHitClosestPullX",
1732 "Quality of the Tof Hits position error on X axis relative to "
1733 "closest Point, for hit coming from multiple MC Point; Pull X(Hit "
1734 "-> Point) []; # [Hits]; Multi [Pnt]",
1742 new TH2D(
"TofTests_MultiPntHitClosestPullY",
1743 "Quality of the Tof Hits position error on Y axis relative to "
1744 "closest Point, for hit coming from multiple MC Point; Pull Y(Hit "
1745 "-> Point) []; # [Hits]; Multi [Pnt]",
1753 new TH2D(
"TofTests_MultiPntHitClosestPullZ",
1754 "Quality of the Tof Hits position error on Z axis relative to "
1755 "closest Point, for hit coming from multiple MC Point; Pull Z(Hit "
1756 "-> Point) []; # [Hits]; Multi [Pnt]",
1764 new TH2D(
"TofTests_MultiPntHitClosestPullR",
1765 "Quality of the Tof Hits position error relative to closest "
1766 "Point, for hit coming from multiple MC Point; Pull R(Hit -> "
1767 "Point) []; # [Hits]; Multi [Pnt]",
1775 new TH2D(
"TofTests_MultiPntHitClosestPullT",
1776 "Quality of the Tof Hits time error relative to closest Point, "
1777 "for hit coming from multiple MC Point; Pull T(Hit -> Point) []; "
1778 "# [Hits]; Multi [Pnt]",
1787 new TH2D(
"TofTests_MultiPntHitFurthestDeltaX",
1788 "Quality of the Tof Hits position on X axis relative to furthest "
1789 "Point, for hit coming from multiple MC Point; X(Hit) - X(Point) "
1790 "[cm]; # [Hits]; Multi [Pnt]",
1798 new TH2D(
"TofTests_MultiPntHitFurthestDeltaY",
1799 "Quality of the Tof Hits position on Y axis relative to furthest "
1800 "Point, for hit coming from multiple MC Point; Y(Hit) - Y(Point) "
1801 "[cm]; # [Hits]; Multi [Pnt]",
1809 new TH2D(
"TofTests_MultiPntHitFurthestDeltaZ",
1810 "Quality of the Tof Hits position on Z axis relative to furthest "
1811 "Point, for hit coming from multiple MC Point; Z(Hit) - Z(Point) "
1812 "[cm]; # [Hits]; Multi [Pnt]",
1820 new TH2D(
"TofTests_MultiPntHitFurthestDeltaR",
1821 "Quality of the Tof Hits position relative to furthest Point, for "
1822 "hit coming from multiple MC Point; R(Hit -> Point) [cm]; # "
1823 "[Hits]; Multi [Pnt]",
1831 "TofTests_MultiPntHitFurthestDeltaT",
1832 "Quality of the Tof Hits Time relative to furthest Point, for hit coming "
1833 "from multiple MC Point; T(hit) - T(Point) [ps]; # [Hits]; Multi [Pnt]",
1841 new TH2D(
"TofTests_MultiPntHitFurthestPullX",
1842 "Quality of the Tof Hits position error on X axis relative to "
1843 "furthest Point, for hit coming from multiple MC Point; Pull "
1844 "X(Hit -> Point) []; # [Hits]; Multi [Pnt]",
1852 new TH2D(
"TofTests_MultiPntHitFurthestPullY",
1853 "Quality of the Tof Hits position error on Y axis relative to "
1854 "furthest Point, for hit coming from multiple MC Point; Pull "
1855 "Y(Hit -> Point) []; # [Hits]; Multi [Pnt]",
1863 new TH2D(
"TofTests_MultiPntHitFurthestPullZ",
1864 "Quality of the Tof Hits position error on Z axis relative to "
1865 "furthest Point, for hit coming from multiple MC Point; Pull "
1866 "Z(Hit -> Point) []; # [Hits]; Multi [Pnt]",
1874 new TH2D(
"TofTests_MultiPntHitFurthestPullR",
1875 "Quality of the Tof Hits position error relative to furthest "
1876 "Point, for hit coming from multiple MC Point; Pull R(Hit -> "
1877 "Point) []; # [Hits]; Multi [Pnt]",
1885 new TH2D(
"TofTests_MultiPntHitFurthestPullT",
1886 "Quality of the Tof Hits time error relative to furthest Point, "
1887 "for hit coming from multiple MC Point; Pull T(Hit -> Point) []; "
1888 "# [Hits]; Multi [Pnt]",
1897 new TH2D(
"TofTests_MultiPntHitMeanDeltaX",
1898 "Quality of the Tof Hits position on X axis relative to mean "
1899 "Point position, for hit coming from multiple MC Point; X(Hit) - "
1900 "X(Point) [cm]; # [Hits]; Multi [Pnt]",
1908 new TH2D(
"TofTests_MultiPntHitMeanDeltaY",
1909 "Quality of the Tof Hits position on Y axis relative to mean "
1910 "Point position, for hit coming from multiple MC Point; Y(Hit) - "
1911 "Y(Point) [cm]; # [Hits]; Multi [Pnt]",
1919 new TH2D(
"TofTests_MultiPntHitMeanDeltaZ",
1920 "Quality of the Tof Hits position on Z axis relative to mean "
1921 "Point position, for hit coming from multiple MC Point; Z(Hit) - "
1922 "Z(Point) [cm]; # [Hits]; Multi [Pnt]",
1930 new TH2D(
"TofTests_MultiPntHitMeanDeltaR",
1931 "Quality of the Tof Hits position relative to mean Point "
1932 "position, for hit coming from multiple MC Point; R(Hit -> Point) "
1933 "[cm]; # [Hits]; Multi [Pnt]",
1941 "TofTests_MultiPntHitMeanDeltaT",
1942 "Quality of the Tof Hits Time relative to mean Point time, for hit coming "
1943 "from multiple MC Point; T(hit) - T(Point) [ps]; # [Hits]; Multi [Pnt]",
1951 new TH2D(
"TofTests_MultiPntHitMeanPullX",
1952 "Quality of the Tof Hits position error on X axis relative to "
1953 "mean Point position, for hit coming from multiple MC Point; Pull "
1954 "X(Hit -> Point) []; # [Hits]; Multi [Pnt]",
1962 new TH2D(
"TofTests_MultiPntHitMeanPullY",
1963 "Quality of the Tof Hits position error on Y axis relative to "
1964 "mean Point position, for hit coming from multiple MC Point; Pull "
1965 "Y(Hit -> Point) []; # [Hits]; Multi [Pnt]",
1973 new TH2D(
"TofTests_MultiPntHitMeanPullZ",
1974 "Quality of the Tof Hits position error on Z axis relative to "
1975 "mean Point position, for hit coming from multiple MC Point; Pull "
1976 "Z(Hit -> Point) []; # [Hits]; Multi [Pnt]",
1984 new TH2D(
"TofTests_MultiPntHitMeanPullR",
1985 "Quality of the Tof Hits position error relative to mean Point "
1986 "position, for hit coming from multiple MC Point; Pull R(Hit -> "
1987 "Point) []; # [Hits]; Multi [Pnt]",
1995 new TH2D(
"TofTests_MultiPntHitMeanPullT",
1996 "Quality of the Tof Hits time error relative to mean Point time, "
1997 "for hit coming from multiple MC Point; Pull T(Hit -> Point) []; "
1998 "# [Hits]; Multi [Pnt]",
2007 new TH2D(
"TofTests_MultiPntHitBestDeltaX",
2008 "Quality of the Tof Hits position on X axis relative to best "
2009 "Point position, for hit coming from multiple MC Point; X(Hit) - "
2010 "X(Point) [cm]; # [Hits]; Multi [Pnt]",
2018 new TH2D(
"TofTests_MultiPntHitBestDeltaY",
2019 "Quality of the Tof Hits position on Y axis relative to best "
2020 "Point position, for hit coming from multiple MC Point; Y(Hit) - "
2021 "Y(Point) [cm]; # [Hits]; Multi [Pnt]",
2029 new TH2D(
"TofTests_MultiPntHitBestDeltaZ",
2030 "Quality of the Tof Hits position on Z axis relative to best "
2031 "Point position, for hit coming from multiple MC Point; Z(Hit) - "
2032 "Z(Point) [cm]; # [Hits]; Multi [Pnt]",
2040 new TH2D(
"TofTests_MultiPntHitBestDeltaR",
2041 "Quality of the Tof Hits position relative to best Point "
2042 "position, for hit coming from multiple MC Point; R(Hit -> Point) "
2043 "[cm]; # [Hits]; Multi [Pnt]",
2051 "TofTests_MultiPntHitBestDeltaT",
2052 "Quality of the Tof Hits Time relative to best Point time, for hit coming "
2053 "from multiple MC Point; T(hit) - T(Point) [ps]; # [Hits]; Multi [Pnt]",
2061 new TH2D(
"TofTests_MultiPntHitBestPullX",
2062 "Quality of the Tof Hits position error on X axis relative to "
2063 "best Point position, for hit coming from multiple MC Point; Pull "
2064 "X(Hit -> Point) []; # [Hits]; Multi [Pnt]",
2072 new TH2D(
"TofTests_MultiPntHitBestPullY",
2073 "Quality of the Tof Hits position error on Y axis relative to "
2074 "best Point position, for hit coming from multiple MC Point; Pull "
2075 "Y(Hit -> Point) []; # [Hits]; Multi [Pnt]",
2083 new TH2D(
"TofTests_MultiPntHitBestPullZ",
2084 "Quality of the Tof Hits position error on Z axis relative to "
2085 "best Point position, for hit coming from multiple MC Point; Pull "
2086 "Z(Hit -> Point) []; # [Hits]; Multi [Pnt]",
2094 new TH2D(
"TofTests_MultiPntHitBestPullR",
2095 "Quality of the Tof Hits position error relative to best Point "
2096 "position, for hit coming from multiple MC Point; Pull R(Hit -> "
2097 "Point) []; # [Hits]; Multi [Pnt]",
2105 new TH2D(
"TofTests_MultiPntHitBestPullT",
2106 "Quality of the Tof Hits time error relative to best Point time, "
2107 "for hit coming from multiple MC Point; Pull T(Hit -> Point) []; "
2108 "# [Hits]; Multi [Pnt]",
2118 new TH1D(
"TofTests_SingleTrackHitDeltaX",
2119 "Quality of the Tof Hits position on X axis, for hit coming from "
2120 "a single MC Track; X(Hit) - X(Track) [cm]; # [Hits]",
2125 new TH1D(
"TofTests_SingleTrackHitDeltaY",
2126 "Quality of the Tof Hits position on Y axis, for hit coming from "
2127 "a single MC Track; Y(Hit) - X(Track) [cm]; # [Hits]",
2132 new TH1D(
"TofTests_SingleTrackHitDeltaZ",
2133 "Quality of the Tof Hits position on Z axis, for hit coming from "
2134 "a single MC Track; Z(Hit) - X(Track) [cm]; # [Hits]",
2139 new TH1D(
"TofTests_SingleTrackHitDeltaR",
2140 "Quality of the Tof Hits position, for hit coming from a single "
2141 "MC Track; R(Hit -> Track) [cm]; # [Hits]",
2146 new TH1D(
"TofTests_SingleTrackHitDeltaT",
2147 "Quality of the Tof Hits Time, for hit coming from a single MC "
2148 "Track; T(hit) - T(Track) [ps]; # [Hits]",
2153 new TH1D(
"TofTests_SingleTrackHitPullX",
2154 "Quality of the Tof Hits position error on X axis, for hit coming "
2155 "from a single MC Track; Pull X(Hit -> Track) []; # [Hits]",
2160 new TH1D(
"TofTests_SingleTrackHitPullY",
2161 "Quality of the Tof Hits position error on Y axis, for hit coming "
2162 "from a single MC Track; Y(Hit) - X(Track) []; # [Hits]",
2167 new TH1D(
"TofTests_SingleTrackHitPullZ",
2168 "Quality of the Tof Hits position error on Z axis, for hit coming "
2169 "from a single MC Track; Z(Hit) - X(Track) []; # [Hits]",
2174 new TH1D(
"TofTests_SingleTrackHitPullR",
2175 "Quality of the Tof Hits position error, for hit coming from a "
2176 "single MC Track; Pull R(Hit -> Track) []; # [Hits]",
2181 new TH1D(
"TofTests_SingleTrackHitPullT",
2182 "Quality of the Tof Hits time error, for hit coming from a single "
2183 "MC Track; Pull T(Hit -> Track) []; # [Hits]",
2190 new TH1D(
"TofTests_SingTrkMultiPntHitDeltaX",
2191 "Quality of the Tof Hits position on X axis, for hit coming from "
2192 "a single MC Track; X(Hit) - X(Track) [cm]; # [Hits]",
2197 new TH1D(
"TofTests_SingTrkMultiPntHitDeltaY",
2198 "Quality of the Tof Hits position on Y axis, for hit coming from "
2199 "a single MC Track; Y(Hit) - X(Track) [cm]; # [Hits]",
2204 new TH1D(
"TofTests_SingTrkMultiPntHitDeltaZ",
2205 "Quality of the Tof Hits position on Z axis, for hit coming from "
2206 "a single MC Track; Z(Hit) - X(Track) [cm]; # [Hits]",
2211 new TH1D(
"TofTests_SingTrkMultiPntHitDeltaR",
2212 "Quality of the Tof Hits position, for hit coming from a single "
2213 "MC Track; R(Hit -> Track) [cm]; # [Hits]",
2218 new TH1D(
"TofTests_SingTrkMultiPntHitDeltaT",
2219 "Quality of the Tof Hits Time, for hit coming from a single MC "
2220 "Track; T(hit) - T(Track) [ps]; # [Hits]",
2225 new TH1D(
"TofTests_SingTrkMultiPntHitPullX",
2226 "Quality of the Tof Hits position error on X axis, for hit coming "
2227 "from a single MC Track; Pull X(Hit -> Track) []; # [Hits]",
2232 new TH1D(
"TofTests_SingTrkMultiPntHitPullY",
2233 "Quality of the Tof Hits position error on Y axis, for hit coming "
2234 "from a single MC Track; Y(Hit) - X(Track) []; # [Hits]",
2239 new TH1D(
"TofTests_SingTrkMultiPntHitPullZ",
2240 "Quality of the Tof Hits position error on Z axis, for hit coming "
2241 "from a single MC Track; Z(Hit) - X(Track) []; # [Hits]",
2246 new TH1D(
"TofTests_SingTrkMultiPntHitPullR",
2247 "Quality of the Tof Hits position error, for hit coming from a "
2248 "single MC Track; Pull R(Hit -> Track) []; # [Hits]",
2253 new TH1D(
"TofTests_SingTrkMultiPntHitPullT",
2254 "Quality of the Tof Hits time error, for hit coming from a single "
2255 "MC Track; Pull T(Hit -> Track) []; # [Hits]",
2263 new TH2D(
"TofTests_MultiTrkHitClosestDeltaX",
2264 "Quality of the Tof Hits position on X axis relative to closest "
2265 "Track, for hit coming from multiple MC Track; X(Hit) - X(Track) "
2266 "[cm]; # [Hits]; Multi [Trk]",
2274 new TH2D(
"TofTests_MultiTrkHitClosestDeltaY",
2275 "Quality of the Tof Hits position on Y axis relative to closest "
2276 "Track, for hit coming from multiple MC Track; Y(Hit) - Y(Track) "
2277 "[cm]; # [Hits]; Multi [Trk]",
2285 new TH2D(
"TofTests_MultiTrkHitClosestDeltaZ",
2286 "Quality of the Tof Hits position on Z axis relative to closest "
2287 "Track, for hit coming from multiple MC Track; Z(Hit) - Z(Track) "
2288 "[cm]; # [Hits]; Multi [Trk]",
2296 new TH2D(
"TofTests_MultiTrkHitClosestDeltaR",
2297 "Quality of the Tof Hits position relative to closest Track, for "
2298 "hit coming from multiple MC Track; R(Hit -> Track) [cm]; # "
2299 "[Hits]; Multi [Trk]",
2307 "TofTests_MultiTrkHitClosestDeltaT",
2308 "Quality of the Tof Hits Time relative to closest Track, for hit coming "
2309 "from multiple MC Track; T(hit) - T(Track) [ps]; # [Hits]; Multi [Trk]",
2317 new TH2D(
"TofTests_MultiTrkHitClosestPullX",
2318 "Quality of the Tof Hits position error on X axis relative to "
2319 "closest Track, for hit coming from multiple MC Track; Pull X(Hit "
2320 "-> Track) []; # [Hits]; Multi [Trk]",
2328 new TH2D(
"TofTests_MultiTrkHitClosestPullY",
2329 "Quality of the Tof Hits position error on Y axis relative to "
2330 "closest Track, for hit coming from multiple MC Track; Pull Y(Hit "
2331 "-> Track) []; # [Hits]; Multi [Trk]",
2339 new TH2D(
"TofTests_MultiTrkHitClosestPullZ",
2340 "Quality of the Tof Hits position error on Z axis relative to "
2341 "closest Track, for hit coming from multiple MC Track; Pull Z(Hit "
2342 "-> Track) []; # [Hits]; Multi [Trk]",
2350 new TH2D(
"TofTests_MultiTrkHitClosestPullR",
2351 "Quality of the Tof Hits position error relative to closest "
2352 "Track, for hit coming from multiple MC Track; Pull R(Hit -> "
2353 "Track) []; # [Hits]; Multi [Trk]",
2361 new TH2D(
"TofTests_MultiTrkHitClosestPullT",
2362 "Quality of the Tof Hits time error relative to closest Track, "
2363 "for hit coming from multiple MC Track; Pull T(Hit -> Track) []; "
2364 "# [Hits]; Multi [Trk]",
2373 new TH2D(
"TofTests_MultiTrkHitFurthestDeltaX",
2374 "Quality of the Tof Hits position on X axis relative to furthest "
2375 "Track, for hit coming from multiple MC Track; X(Hit) - X(Track) "
2376 "[cm]; # [Hits]; Multi [Trk]",
2384 new TH2D(
"TofTests_MultiTrkHitFurthestDeltaY",
2385 "Quality of the Tof Hits position on Y axis relative to furthest "
2386 "Track, for hit coming from multiple MC Track; Y(Hit) - Y(Track) "
2387 "[cm]; # [Hits]; Multi [Trk]",
2395 new TH2D(
"TofTests_MultiTrkHitFurthestDeltaZ",
2396 "Quality of the Tof Hits position on Z axis relative to furthest "
2397 "Track, for hit coming from multiple MC Track; Z(Hit) - Z(Track) "
2398 "[cm]; # [Hits]; Multi [Trk]",
2406 new TH2D(
"TofTests_MultiTrkHitFurthestDeltaR",
2407 "Quality of the Tof Hits position relative to furthest Track, for "
2408 "hit coming from multiple MC Track; R(Hit -> Track) [cm]; # "
2409 "[Hits]; Multi [Trk]",
2417 "TofTests_MultiTrkHitFurthestDeltaT",
2418 "Quality of the Tof Hits Time relative to furthest Track, for hit coming "
2419 "from multiple MC Track; T(hit) - T(Track) [ps]; # [Hits]; Multi [Trk]",
2427 new TH2D(
"TofTests_MultiTrkHitFurthestPullX",
2428 "Quality of the Tof Hits position error on X axis relative to "
2429 "furthest Track, for hit coming from multiple MC Track; Pull "
2430 "X(Hit -> Track) []; # [Hits]; Multi [Trk]",
2438 new TH2D(
"TofTests_MultiTrkHitFurthestPullY",
2439 "Quality of the Tof Hits position error on Y axis relative to "
2440 "furthest Track, for hit coming from multiple MC Track; Pull "
2441 "Y(Hit -> Track) []; # [Hits]; Multi [Trk]",
2449 new TH2D(
"TofTests_MultiTrkHitFurthestPullZ",
2450 "Quality of the Tof Hits position error on Z axis relative to "
2451 "furthest Track, for hit coming from multiple MC Track; Pull "
2452 "Z(Hit -> Track) []; # [Hits]; Multi [Trk]",
2460 new TH2D(
"TofTests_MultiTrkHitFurthestPullR",
2461 "Quality of the Tof Hits position error relative to furthest "
2462 "Track, for hit coming from multiple MC Track; Pull R(Hit -> "
2463 "Track) []; # [Hits]; Multi [Trk]",
2471 new TH2D(
"TofTests_MultiTrkHitFurthestPullT",
2472 "Quality of the Tof Hits time error relative to furthest Track, "
2473 "for hit coming from multiple MC Track; Pull T(Hit -> Track) []; "
2474 "# [Hits]; Multi [Trk]",
2483 new TH2D(
"TofTests_MultiTrkHitMeanDeltaX",
2484 "Quality of the Tof Hits position on X axis relative to mean "
2485 "Track position, for hit coming from multiple MC Track; X(Hit) - "
2486 "X(Track) [cm]; # [Hits]; Multi [Trk]",
2494 new TH2D(
"TofTests_MultiTrkHitMeanDeltaY",
2495 "Quality of the Tof Hits position on Y axis relative to mean "
2496 "Track position, for hit coming from multiple MC Track; Y(Hit) - "
2497 "Y(Track) [cm]; # [Hits]; Multi [Trk]",
2505 new TH2D(
"TofTests_MultiTrkHitMeanDeltaZ",
2506 "Quality of the Tof Hits position on Z axis relative to mean "
2507 "Track position, for hit coming from multiple MC Track; Z(Hit) - "
2508 "Z(Track) [cm]; # [Hits]; Multi [Trk]",
2516 new TH2D(
"TofTests_MultiTrkHitMeanDeltaR",
2517 "Quality of the Tof Hits position relative to mean Track "
2518 "position, for hit coming from multiple MC Track; R(Hit -> Track) "
2519 "[cm]; # [Hits]; Multi [Trk]",
2527 "TofTests_MultiTrkHitMeanDeltaT",
2528 "Quality of the Tof Hits Time relative to mean Track time, for hit coming "
2529 "from multiple MC Track; T(hit) - T(Track) [ps]; # [Hits]; Multi [Trk]",
2537 new TH2D(
"TofTests_MultiTrkHitMeanPullX",
2538 "Quality of the Tof Hits position error on X axis relative to "
2539 "mean Track position, for hit coming from multiple MC Track; Pull "
2540 "X(Hit -> Track) []; # [Hits]; Multi [Trk]",
2548 new TH2D(
"TofTests_MultiTrkHitMeanPullY",
2549 "Quality of the Tof Hits position error on Y axis relative to "
2550 "mean Track position, for hit coming from multiple MC Track; Pull "
2551 "Y(Hit -> Track) []; # [Hits]; Multi [Trk]",
2559 new TH2D(
"TofTests_MultiTrkHitMeanPullZ",
2560 "Quality of the Tof Hits position error on Z axis relative to "
2561 "mean Track position, for hit coming from multiple MC Track; Pull "
2562 "Z(Hit -> Track) []; # [Hits]; Multi [Trk]",
2570 new TH2D(
"TofTests_MultiTrkHitMeanPullR",
2571 "Quality of the Tof Hits position error relative to mean Track "
2572 "position, for hit coming from multiple MC Track; Pull R(Hit -> "
2573 "Track) []; # [Hits]; Multi [Trk]",
2581 new TH2D(
"TofTests_MultiTrkHitMeanPullT",
2582 "Quality of the Tof Hits time error relative to mean Track "
2583 "position, for hit coming from multiple MC Track; Pull T(Hit -> "
2584 "Track) []; # [Hits]; Multi [Trk]",
2593 new TH2D(
"TofTests_MultiTrkHitBestDeltaX",
2594 "Quality of the Tof Hits position on X axis relative to best "
2595 "Track position, for hit coming from multiple MC Track; X(Hit) - "
2596 "X(Track) [cm]; # [Hits]; Multi [Trk]",
2604 new TH2D(
"TofTests_MultiTrkHitBestDeltaY",
2605 "Quality of the Tof Hits position on Y axis relative to best "
2606 "Track position, for hit coming from multiple MC Track; Y(Hit) - "
2607 "Y(Track) [cm]; # [Hits]; Multi [Trk]",
2615 new TH2D(
"TofTests_MultiTrkHitBestDeltaZ",
2616 "Quality of the Tof Hits position on Z axis relative to best "
2617 "Track position, for hit coming from multiple MC Track; Z(Hit) - "
2618 "Z(Track) [cm]; # [Hits]; Multi [Trk]",
2626 new TH2D(
"TofTests_MultiTrkHitBestDeltaR",
2627 "Quality of the Tof Hits position relative to best Track "
2628 "position, for hit coming from multiple MC Track; R(Hit -> Track) "
2629 "[cm]; # [Hits]; Multi [Trk]",
2637 "TofTests_MultiTrkHitBestDeltaT",
2638 "Quality of the Tof Hits Time relative to best Track time, for hit coming "
2639 "from multiple MC Track; T(hit) - T(Track) [ps]; # [Hits]; Multi [Trk]",
2647 new TH2D(
"TofTests_MultiTrkHitBestPullX",
2648 "Quality of the Tof Hits position error on X axis relative to "
2649 "best Track position, for hit coming from multiple MC Track; Pull "
2650 "X(Hit -> Track) []; # [Hits]; Multi [Trk]",
2658 new TH2D(
"TofTests_MultiTrkHitBestPullY",
2659 "Quality of the Tof Hits position error on Y axis relative to "
2660 "best Track position, for hit coming from multiple MC Track; Pull "
2661 "Y(Hit -> Track) []; # [Hits]; Multi [Trk]",
2669 new TH2D(
"TofTests_MultiTrkHitBestPullZ",
2670 "Quality of the Tof Hits position error on Z axis relative to "
2671 "best Track position, for hit coming from multiple MC Track; Pull "
2672 "Z(Hit -> Track) []; # [Hits]; Multi [Trk]",
2680 new TH2D(
"TofTests_MultiTrkHitBestPullR",
2681 "Quality of the Tof Hits position error relative to best Track "
2682 "position, for hit coming from multiple MC Track; Pull R(Hit -> "
2683 "Track) []; # [Hits]; Multi [Trk]",
2691 new TH2D(
"TofTests_MultiTrkHitBestPullT",
2692 "Quality of the Tof Hits time error relative to best Track "
2693 "position, for hit coming from multiple MC Track; Pull T(Hit -> "
2694 "Track) []; # [Hits]; Multi [Trk]",
2704 Int_t iNbBinsY = 30;
2705 Double_t dMinY = -1.;
2706 Double_t dMaxY = 4.;
2707 Int_t iNbBNinsPtm = 30;
2708 Double_t dMinPtm = 0.0;
2709 Double_t dMaxPtm = 2.5;
2723 Int_t iNbBinsPlab = 100;
2724 Double_t dMinPlab = 0.0;
2725 Double_t dMaxPlab = 10.0;
2751 for (Int_t iPartIdx = 0; iPartIdx <
kiNbPart; iPartIdx++) {
2754 new TH2D(Form(
"TofTests_PtmRapGenTrk_%s",
ksPartTag[iPartIdx].Data()),
2755 Form(
"P_{t}/M vs y distribution for MC tracks, %s, primary "
2756 "tracks; y; P_{t}/M; # []",
2765 new TH2D(Form(
"TofTests_PtmRapStsPnt_%s",
ksPartTag[iPartIdx].Data()),
2766 Form(
"P_{t}/M vs y distribution from MC Track with STS points, "
2767 "%s, primary tracks; y; P_{t}/M; # []",
2776 new TH2D(Form(
"TofTests_PtmRapTofPnt_%s",
ksPartTag[iPartIdx].Data()),
2777 Form(
"P_{t}/M vs y distribution from MC Track for TOF points, "
2778 "%s, primary tracks; y; P_{t}/M; # []",
2787 new TH2D(Form(
"TofTests_PtmRapTofHit_%s",
ksPartTag[iPartIdx].Data()),
2788 Form(
"P_{t}/M vs y distribution from MC Track for TOF Hits, %s, "
2789 "primary tracks; y; P_{t}/M; # []",
2798 Form(
"TofTests_PtmRapTofHitSinglePnt_%s",
ksPartTag[iPartIdx].Data()),
2799 Form(
"P_{t}/M vs y distribution from MC Track for TOF Hits from a single "
2800 "TOF Point, %s, primary tracks; y; P_{t}/M; # []",
2809 Form(
"TofTests_PtmRapTofHitSingleTrk_%s",
ksPartTag[iPartIdx].Data()),
2810 Form(
"P_{t}/M vs y distribution from MC Track for TOF Hits from a single "
2811 "MC track, %s, primary tracks; y; P_{t}/M; # []",
2821 new TH1D(Form(
"TofTests_PlabGenTrk_%s",
ksPartTag[iPartIdx].Data()),
2822 Form(
"P_{lab} distribution for MC tracks, %s, primary tracks; "
2823 "P_{lab} [GeV/c]; # []",
2829 new TH1D(Form(
"TofTests_PlabStsPnt_%s",
ksPartTag[iPartIdx].Data()),
2830 Form(
"P_{lab} distribution from MC Track with STS points, %s, "
2831 "primary tracks; P_{lab} [GeV/c]; # []",
2837 new TH1D(Form(
"TofTests_PlabTofPnt_%s",
ksPartTag[iPartIdx].Data()),
2838 Form(
"P_{lab} distribution from MC Track for TOF points, %s, "
2839 "primary tracks; P_{lab} [GeV/c]; # []",
2845 new TH1D(Form(
"TofTests_PlabTofHit_%s",
ksPartTag[iPartIdx].Data()),
2846 Form(
"P_{lab} distribution from MC Track for TOF Hits, %s, "
2847 "primary tracks; P_{lab} [GeV/c]; # []",
2853 Form(
"TofTests_PlabTofHitSinglePnt_%s",
ksPartTag[iPartIdx].Data()),
2854 Form(
"P_{lab} distribution from MC Track for TOF Hits from a single TOF "
2855 "Point, %s, primary tracks; P_{lab} [GeV/c]; # []",
2861 Form(
"TofTests_PlabTofHitSingleTrk_%s",
ksPartTag[iPartIdx].Data()),
2862 Form(
"P_{lab} distribution from MC Track for TOF Hits from a single MC "
2863 "tracks, %s, primary tracks; P_{lab} [GeV/c]; # []",
2872 Form(
"TofTests_PtmRapGenTrkTofPnt_%s",
ksPartTag[iPartIdx].Data()),
2873 Form(
"P_{t}/M vs y distribution for MC tracks with TOF Point(s), %s, "
2874 "primary tracks; y; P_{t}/M; # []",
2883 Form(
"TofTests_PtmRapGenTrkTofHit_%s",
ksPartTag[iPartIdx].Data()),
2884 Form(
"P_{t}/M vs y distribution for MC tracks with TOF Hit(s), %s, "
2885 "primary tracks; y; P_{t}/M; # []",
2895 new TH1D(Form(
"TofTests_PlabGenTrkTofPnt_%s",
ksPartTag[iPartIdx].Data()),
2896 Form(
"P_{lab} distribution for MC tracks with TOF Point(s), %s, "
2897 "primary tracks; P_{lab} [GeV/c]; # []",
2903 new TH1D(Form(
"TofTests_PlabGenTrkTofHit_%s",
ksPartTag[iPartIdx].Data()),
2904 Form(
"P_{lab} distribution from MC Track with TOF Hit(s), %s, "
2905 "primary tracks; P_{lab} [GeV/c]; # []",
2911 new TH1D(Form(
"TofTests_PlabStsTrkTofPnt_%s",
ksPartTag[iPartIdx].Data()),
2912 Form(
"P_{lab} distribution for MC tracks with STS and TOF "
2913 "Point(s), %s, primary tracks; P_{lab} [GeV/c]; # []",
2919 new TH1D(Form(
"TofTests_PlabStsTrkTofHit_%s",
ksPartTag[iPartIdx].Data()),
2920 Form(
"P_{lab} distribution from MC Track with STS points and "
2921 "TOF Hit(s), %s, primary tracks; P_{lab} [GeV/c]; # []",
2930 new TH2D(Form(
"TofTests_PtmRapSecGenTrk_%s",
ksPartTag[iPartIdx].Data()),
2931 Form(
"P_{t}/M vs y distribution for MC tracks, %s, secondary "
2932 "tracks; y; P_{t}/M; # []",
2941 new TH2D(Form(
"TofTests_PtmRapSecStsPnt_%s",
ksPartTag[iPartIdx].Data()),
2942 Form(
"P_{t}/M vs y distribution from MC Track with STS points, "
2943 "%s, secondary tracks; y; P_{t}/M; # []",
2952 new TH2D(Form(
"TofTests_PtmRapSecTofPnt_%s",
ksPartTag[iPartIdx].Data()),
2953 Form(
"P_{t}/M vs y distribution from MC Track for TOF points, "
2954 "%s, secondary tracks; y; P_{t}/M; # []",
2963 new TH2D(Form(
"TofTests_PtmRapSecTofHit_%s",
ksPartTag[iPartIdx].Data()),
2964 Form(
"P_{t}/M vs y distribution from MC Track for TOF Hits, %s, "
2965 "secondary tracks; y; P_{t}/M; # []",
2974 Form(
"TofTests_PtmRapSecTofHitSinglePnt_%s",
ksPartTag[iPartIdx].Data()),
2975 Form(
"P_{t}/M vs y distribution from MC Track for TOF Hits from a single "
2976 "TOF Point, %s, secondary tracks; y; P_{t}/M; # []",
2985 Form(
"TofTests_PtmRapSecTofHitSingleTrk_%s",
ksPartTag[iPartIdx].Data()),
2986 Form(
"P_{t}/M vs y distribution from MC Track for TOF Hits from a single "
2987 "MC track, %s, secondary tracks; y; P_{t}/M; # []",
2997 new TH1D(Form(
"TofTests_PlabSecGenTrk_%s",
ksPartTag[iPartIdx].Data()),
2998 Form(
"P_{lab} distribution for MC tracks, %s, secondary tracks; "
2999 "P_{lab} [GeV/c]; # []",
3005 new TH1D(Form(
"TofTests_PlabSecStsPnt_%s",
ksPartTag[iPartIdx].Data()),
3006 Form(
"P_{lab} distribution from MC Track with STS points, %s, "
3007 "secondary tracks; P_{lab} [GeV/c]; # []",
3013 new TH1D(Form(
"TofTests_PlabSecTofPnt_%s",
ksPartTag[iPartIdx].Data()),
3014 Form(
"P_{lab} distribution from MC Track for TOF points, %s, "
3015 "secondary tracks; P_{lab} [GeV/c]; # []",
3021 new TH1D(Form(
"TofTests_PlabSecTofHit_%s",
ksPartTag[iPartIdx].Data()),
3022 Form(
"P_{lab} distribution from MC Track for TOF Hits, %s, "
3023 "secondary tracks; P_{lab} [GeV/c]; # []",
3029 Form(
"TofTests_PlabSecTofHitSinglePnt_%s",
ksPartTag[iPartIdx].Data()),
3030 Form(
"P_{lab} distribution from MC Track for TOF Hits from a single TOF "
3031 "Point, %s, secondary tracks; P_{lab} [GeV/c]; # []",
3037 Form(
"TofTests_PlabSecTofHitSingleTrk_%s",
ksPartTag[iPartIdx].Data()),
3038 Form(
"P_{lab} distribution from MC Track for TOF Hits from a single MC "
3039 "tracks, %s, secondary tracks; P_{lab} [GeV/c]; # []",
3048 Form(
"TofTests_PtmRapSecGenTrkTofPnt_%s",
ksPartTag[iPartIdx].Data()),
3049 Form(
"P_{t}/M vs y distribution for MC tracks with TOF Point(s), %s, "
3050 "secondary tracks; y; P_{t}/M; # []",
3059 Form(
"TofTests_PtmRapSecGenTrkTofHit_%s",
ksPartTag[iPartIdx].Data()),
3060 Form(
"P_{t}/M vs y distribution for MC tracks with TOF Hit(s), %s, "
3061 "secondary tracks; y; P_{t}/M; # []",
3071 Form(
"TofTests_PlabSecGenTrkTofPnt_%s",
ksPartTag[iPartIdx].Data()),
3072 Form(
"P_{lab} distribution for MC tracks with TOF Point(s), %s, "
3073 "secondary tracks; P_{lab} [GeV/c]; # []",
3079 Form(
"TofTests_PlabSecGenTrkTofHit_%s",
ksPartTag[iPartIdx].Data()),
3080 Form(
"P_{lab} distribution from MC Track with TOF Hit(s), %s, secondary "
3081 "tracks; P_{lab} [GeV/c]; # []",
3088 Form(
"TofTests_PlabSecStsTrkTofPnt_%s",
ksPartTag[iPartIdx].Data()),
3089 Form(
"P_{lab} distribution for MC tracks with STS and TOF Point(s), %s, "
3090 "secondary tracks; P_{lab} [GeV/c]; # []",
3096 Form(
"TofTests_PlabSecStsTrkTofHit_%s",
ksPartTag[iPartIdx].Data()),
3097 Form(
"P_{lab} distribution from MC Track with STS points and TOF Hit(s), "
3098 "%s, secondary tracks; P_{lab} [GeV/c]; # []",
3107 new TH1D(
"TofTests_IntegratedHitPntEff",
3108 "Efficiency of TOF hit generation, all tracks; Eff = Nb_{Trk w/ "
3109 "Hit}/Nb_{Trk w/ Pnt} [\%]; # [Events]",
3114 new TH1D(
"TofTests_IntegratedHitPntEffPrim",
3115 "Efficiency of TOF hit generation, primary tracks; Eff = Nb_{Trk "
3116 "w/ Hit}/Nb_{Trk w/ Pnt} [\%]; # [Events]",
3121 new TH1D(
"TofTests_IntegratedHitPntEffSec",
3122 "Efficiency of TOF hit generation, secondary tracks; Eff = "
3123 "Nb_{Trk w/ Hit}/Nb_{Trk w/ Pnt} [\%]; # [Events]",
3131 new TH1D(
"TofTests_IntegratedHiddenHitPntLoss",
3132 "Losses of TOF hit generation due to multiplicity, all tracks; "
3133 "Loss = Nb_{Trk w/ Hidden Hit}/Nb_{Trk w/ Pnt} [\%]; # [Events]",
3138 "TofTests_IntegratedHiddenHitPntLossPrim",
3139 "Efficiency of TOF hit generation due to multiplicity, primary tracks; "
3140 "Loss = Nb_{Trk w/ Hidden Hit}/Nb_{Trk w/ Pnt} [\%]; # [Events]",
3145 "TofTests_IntegratedHiddenHitPntLossSec",
3146 "Efficiency of TOF hit generation due to multiplicity, secondary tracks; "
3147 "Loss = Nb_{Trk w/ Hidden Hit}/Nb_{Trk w/ Pnt} [\%]; # [Events]",
3160 "TofTests_IntegratedHitPntEffGaps",
3161 "Efficiency of TOF hit generation VS gaps crossed, all tracks; Eff = "
3162 "Nb_{Trk w/ Hit}/Nb_{Trk w/ Pnt} [\%]; Nb TofPoint (gaps) []; # [Events]",
3170 "TofTests_IntegratedHitPntEffPrimGaps",
3171 "Efficiency of TOF hit generation VS gaps crossed, primary tracks; Eff = "
3172 "Nb_{Trk w/ Hit}/Nb_{Trk w/ Pnt} [\%]; Nb TofPoint (gaps) []; # [Events]",
3180 "TofTests_IntegratedHitPntEffSecGaps",
3181 "Efficiency of TOF hit generation VS gaps crossed, secondary tracks; Eff = "
3182 "Nb_{Trk w/ Hit}/Nb_{Trk w/ Pnt} [\%]; Nb TofPoint (gaps) []; # [Events]",
3190 Float_t fMaxCbmLen = 1500;
3192 new TH2D(
"TofTests_McTrkStartPrimSingTrk",
3193 "Origin in Z of the MC primary tracks in hits with a single "
3194 "track; MC trk Start Z [cm]; ; # [Events]",
3202 new TH2D(
"TofTests_McTrkStartSecSingTrk",
3203 "Origin in Z of the MC secondary tracks in hits with a single "
3204 "track; MC trk Start Z [cm]; ; # [Events]",
3212 new TH2D(
"TofTests_McTrkStartPrimMultiTrk",
3213 "Origin in Z of the MC primary tracks in hits with multiple "
3214 "tracks; MC trk Start Z [cm]; ; # [Events]",
3222 new TH2D(
"TofTests_McTrkStartSecMultiTrk",
3223 "Origin in Z of the MC secondary tracks in hits with multiple "
3224 "tracks; MC trk Start Z [cm]; ; # [Events]",
3231 for (Int_t iPartIdx = 0; iPartIdx <
kiNbPart; iPartIdx++) {
3243 new TH1I(
"TofTests_PointMatchWeight",
3244 "Weigth of TofPoints contributing to Hits; w [Prop. or ps]; #",
3267 Int_t iNbTracks, iNbTofPts, iNbTofRealPts, iNbTofDigisMatch, iNbTofHits,
3269 Int_t iNbTofDigis = 0;
3282 if (iNbTofDigis != iNbTofDigisMatch)
3284 <<
"CbmTofHitFinderQa::FillHistos => Nb entries in TofDigiMatchPoints "
3285 "TClonesArray doe not match nb entries in TofDigi!!!";
3286 if (iNbTofHits != iNbTofHitsMatch)
3288 <<
"CbmTofHitFinderQa::FillHistos => Nb entries in TofDigiMatch "
3289 "TClonesArray doe not match nb entries in TofHit!!! "
3290 << iNbTofHits <<
" VS " << iNbTofHitsMatch
3291 <<
" (Prev step: " << iNbTofDigis <<
" VS " << iNbTofDigisMatch <<
" )";
3313 Int_t iNbTofTracks = 0;
3314 Int_t iNbTofTracksPrim = 0;
3315 std::vector<Bool_t> vbTrackHasHit(iNbTracks, kFALSE);
3318 for (Int_t iTrkInd = 0; iTrkInd < iNbTracks; iTrkInd++) {
3371 if (pMcTrk->
GetPz() == pMcTrk->
GetP()) {
3378 if (0 != pMcTrk->
GetPz()
3379 && ((0 != pMcTrk->
GetPx()) || (0 != pMcTrk->
GetPy())))
3385 if (0 != pMcTrk->
GetPz() && 0 != pMcTrk->
GetPx())
3387 TMath::ATan2(pMcTrk->
GetPy(), pMcTrk->
GetPx()));
3392 Int_t iPartIdx = -1;
3393 for (Int_t iPart = 0; iPart <
kiNbPart; iPart++)
3398 if (-1 == iPartIdx) iPartIdx = 0;
3467 for (Int_t iPntInd = 0; iPntInd < iNbTofPts; iPntInd++) {
3475 pTofPoint->Position(vPntPos);
3477 Double_t dX = vPntPos.X();
3478 Double_t dY = vPntPos.Y();
3479 Double_t dZ = vPntPos.Z();
3497 Double_t dThetaX = TMath::ATan2(dX, dZ) * 180.0 /
TMath::Pi();
3498 Double_t dThetaY = TMath::ATan2(dY, dZ) * 180.0 /
TMath::Pi();
3502 TMath::ATan2(TMath::Sqrt(dX * dX + dY * dY), dZ);
3503 Double_t dPhi = TMath::ATan2(dY, dX);
3508 Int_t iPartIdx = -1;
3509 for (Int_t iPart = 0; iPart <
kiNbPart; iPart++)
3514 if (-1 == iPartIdx) iPartIdx = 0;
3540 for (Int_t iPntInd = 0; iPntInd < iNbTofRealPts; iPntInd++) {
3552 pTofPoint->Position(vPntPos);
3554 Double_t dX = vPntPos.X();
3555 Double_t dY = vPntPos.Y();
3556 Double_t dZ = vPntPos.Z();
3562 Double_t dThetaX = TMath::ATan2(dX, dZ) * 180.0 /
TMath::Pi();
3563 Double_t dThetaY = TMath::ATan2(dY, dZ) * 180.0 /
TMath::Pi();
3566 Double_t dTheta = TMath::ATan2(TMath::Sqrt(dX * dX + dY * dY),
3568 Double_t dPhi = TMath::ATan2(dY, dX);
3577 for (Int_t iDigInd = 0; iDigInd < iNbTofDigis; iDigInd++) {
3580 Int_t iSmType = pTofDigi->
GetType();
3581 Int_t iSm = pTofDigi->
GetSm();
3582 Int_t iRpc = pTofDigi->
GetRpc();
3600 Double_t dThetaX = TMath::ATan2(dX, dZ) * 180.0 /
TMath::Pi();
3601 Double_t dThetaY = TMath::ATan2(dY, dZ) * 180.0 /
TMath::Pi();
3604 Double_t dTheta = TMath::ATan2(TMath::Sqrt(dX * dX + dY * dY),
3606 Double_t dPhi = TMath::ATan2(dY, dX);
3613 Int_t iNbTofHitsSingPnt = 0;
3614 Int_t iNbTofHitsMultPnt = 0;
3615 Int_t iNbTofHitsSingTrk = 0;
3616 Int_t iNbTofHitsMultTrk = 0;
3617 for (Int_t iHitInd = 0; iHitInd < iNbTofHits; iHitInd++) {
3618 std::vector<Int_t> vTofPointsId;
3619 std::vector<Int_t> vTofTracksId;
3620 std::vector<Double_t> vTofTracksWeight;
3621 std::vector<Int_t> vTofTracksFirstPntId;
3622 Double_t dPntMeanPosX = 0;
3623 Double_t dPntMeanPosY = 0;
3624 Double_t dPntMeanPosZ = 0;
3625 Double_t dPntMeanTime = 0;
3626 Double_t dTrkMeanPosX = 0;
3627 Double_t dTrkMeanPosY = 0;
3628 Double_t dTrkMeanPosZ = 0;
3629 Double_t dTrkMeanTime = 0;
3630 Int_t iClosestPntIdx = -1;
3631 Double_t dClosestPntDr = 1e18;
3632 Int_t iFurthestPntIdx = -1;
3633 Double_t dFurthestPntDr = -1;
3634 Int_t iClosestTrkIdx = -1;
3635 Double_t dClosestTrkDr = 1e18;
3636 Int_t iFurthestTrkIdx = -1;
3637 Double_t dFurthestTrkDr = -1;
3643 Double_t dX = pTofHit->
GetX();
3644 Double_t dY = pTofHit->
GetY();
3645 Double_t dZ = pTofHit->
GetZ();
3646 Double_t dErrX = pTofHit->
GetDx();
3647 Double_t dErrY = pTofHit->
GetDy();
3648 Double_t dErrZ = pTofHit->
GetDz();
3651 Double_t dErrR = TMath::Sqrt(dErrX * dErrX + dErrY * dErrY);
3665 Double_t dThetaX = TMath::ATan2(dX, dZ) * 180.0 /
TMath::Pi();
3666 Double_t dThetaY = TMath::ATan2(dY, dZ) * 180.0 /
TMath::Pi();
3670 TMath::ATan2(TMath::Sqrt(dX * dX + dY * dY), dZ);
3671 Double_t dPhi = TMath::ATan2(dY, dX);
3679 if (0 != iNbDigisHit % 2)
3681 <<
"CbmTofHitFinderQa::FillHistos => Nb of digis matching Hit #"
3682 << iHitInd <<
" in event #" <<
fEvents
3683 <<
" is not a multiple of 2 => should not happen as both ends of "
3693 for (Int_t iDigi = 0; iDigi < iNbDigisHit; iDigi++) {
3697 if (iNbTofDigis <= iDigiIdx) {
3699 <<
"CbmTofHitFinderQa::FillHistos => Digi index from Hit #"
3700 << iHitInd <<
" in event #" <<
fEvents
3701 <<
" is bigger than nb entries in Digis arrays => ignore it!!!";
3713 Int_t iSmType = pTofDigi->
GetType();
3714 Int_t iSm = pTofDigi->
GetSm();
3715 Int_t iRpc = pTofDigi->
GetRpc();
3717 Int_t iGlobalChan = iCh +
fvRpcChOffs[iSmType][iSm][iRpc];
3720 if (0 == iDigi % 2) {
3729 if (iPtIdx != iPtIdxB) {
3748 for (Int_t iPnt = 0; iPnt < iNbPntHit; iPnt++) {
3752 if (iNbTofPts <= iPtIdx) {
3754 <<
"CbmTofHitFinderQa::FillHistos => Pnt index from Hit #"
3755 << iHitInd <<
" in event #" <<
fEvents
3756 <<
" is bigger than nb entries in TofPoints arrays => ignore it!!!";
3770 iPtIdx = iRealPntIdx;
3773 Int_t iTrkId = pTofPoint->GetTrackID();
3776 if (kFALSE == vbTrackHasHit[iTrkId]) vbTrackHasHit[iTrkId] = kTRUE;
3779 Bool_t bPointFound = kFALSE;
3780 for (UInt_t uPrevPtIdx = 0; uPrevPtIdx < vTofPointsId.size();
3782 if (iPtIdx == vTofPointsId[uPrevPtIdx]) {
3783 bPointFound = kTRUE;
3786 if (kFALSE == bPointFound) {
3787 vTofPointsId.push_back(iPtIdx);
3792 pTofPoint->Position(vPntPos);
3795 dPntMeanPosX += vPntPos.X();
3796 dPntMeanPosY += vPntPos.Y();
3797 dPntMeanPosZ += vPntPos.Z();
3798 dPntMeanTime += pTofPoint->GetTime();
3801 Double_t dPntDeltaR =
3802 TMath::Sqrt((dX - vPntPos.X()) * (dX - vPntPos.X())
3803 + (dY - vPntPos.Y()) * (dY - vPntPos.Y()));
3805 if (dPntDeltaR < dClosestPntDr) {
3806 iClosestPntIdx = iPtIdx;
3807 dClosestPntDr = dPntDeltaR;
3810 if (dFurthestPntDr < dPntDeltaR) {
3811 iFurthestPntIdx = iPtIdx;
3812 dFurthestPntDr = dPntDeltaR;
3818 Bool_t bTrackFound = kFALSE;
3819 for (UInt_t uPrevTrkIdx = 0; uPrevTrkIdx < vTofTracksId.size();
3821 if (iTrkId == vTofTracksId[uPrevTrkIdx]) {
3822 bTrackFound = kTRUE;
3823 vTofTracksWeight[uPrevTrkIdx] += lPnt.
GetWeight();
3826 if (kFALSE == bTrackFound) {
3827 vTofTracksId.push_back(iTrkId);
3828 vTofTracksWeight.push_back(lPnt.
GetWeight());
3829 vTofTracksFirstPntId.push_back(iPtIdx);
3834 pTofPoint->Position(vPntPos);
3837 dTrkMeanPosX += vPntPos.X();
3838 dTrkMeanPosY += vPntPos.Y();
3839 dTrkMeanPosZ += vPntPos.Z();
3840 dTrkMeanTime += pTofPoint->GetTime();
3843 Double_t dTrkDeltaR =
3844 TMath::Sqrt((dX - vPntPos.X()) * (dX - vPntPos.X())
3845 + (dY - vPntPos.Y()) * (dY - vPntPos.Y()));
3847 if (dTrkDeltaR < dClosestTrkDr) {
3848 iClosestTrkIdx = iPtIdx;
3849 dClosestTrkDr = dTrkDeltaR;
3852 if (dFurthestTrkDr < dTrkDeltaR) {
3853 iFurthestTrkIdx = iPtIdx;
3854 dFurthestTrkDr = dTrkDeltaR;
3860 UInt_t uNbPointsInHit = vTofPointsId.size();
3863 UInt_t uNbTracksInHit = vTofTracksId.size();
3868 for (UInt_t uTrkInHit = 0; uTrkInHit < vTofTracksId.size(); uTrkInHit++) {
3870 if (
static_cast<ULong64_t
>(vTofTracksId[uTrkInHit])
3882 if (
static_cast<ULong64_t
>(vTofTracksId[uTrkInHit])
3890 if (
static_cast<ULong64_t
>(vTofTracksId[uTrkInHit])
3903 if (
static_cast<ULong64_t
>(vTofTracksId[uTrkInHit])
3908 vTofTracksId[uTrkInHit]);
3914 if (
static_cast<ULong64_t
>(vTofTracksId[uTrkInHit])
3919 vTofTracksId[uTrkInHit]);
3925 if (
static_cast<ULong64_t
>(vTofTracksId[uTrkInHit])
3930 vTofTracksId[uTrkInHit]);
3934 if (0 == vTofTracksWeight[uTrkInHit]) {
3939 if (
static_cast<ULong64_t
>(vTofTracksId[uTrkInHit])
3951 if (
static_cast<ULong64_t
>(vTofTracksId[uTrkInHit])
3960 if (
static_cast<ULong64_t
>(vTofTracksId[uTrkInHit])
3970 if (1 == uNbPointsInHit) {
3971 iNbTofHitsSingPnt++;
3987 pTofPoint->Position(vPntPos);
3989 Double_t dDeltaX = dX - vPntPos.X();
3990 Double_t dDeltaY = dY - vPntPos.Y();
3991 Double_t dDeltaZ = dZ - vPntPos.Z();
3992 Double_t dDeltaR = TMath::Sqrt(dDeltaX * dDeltaX + dDeltaY * dDeltaY);
3993 Double_t dDeltaT = 1000.0 * (pTofHit->
GetTime() - pTofPoint->GetTime());
4017 iNbTofHitsMultPnt++;
4026 dPntMeanPosX /= vTofPointsId.size();
4027 dPntMeanPosY /= vTofPointsId.size();
4028 dPntMeanPosZ /= vTofPointsId.size();
4029 dPntMeanTime /= vTofPointsId.size();
4031 Double_t dDeltaMeanX = dX - dPntMeanPosX;
4032 Double_t dDeltaMeanY = dY - dPntMeanPosY;
4033 Double_t dDeltaMeanZ = dZ - dPntMeanPosZ;
4034 Double_t dDeltaMeanR =
4035 TMath::Sqrt(dDeltaMeanX * dDeltaMeanX + dDeltaMeanY * dDeltaMeanY);
4036 Double_t dDeltaMeanT = 1000.0 * (pTofHit->
GetTime() - dPntMeanTime);
4046 dDeltaMeanZ / dErrZ,
4059 TVector3 vPntPosClo;
4060 pTofPoint->Position(vPntPosClo);
4062 Double_t dDeltaCloX = dX - vPntPosClo.X();
4063 Double_t dDeltaCloY = dY - vPntPosClo.Y();
4064 Double_t dDeltaCloZ = dZ - vPntPosClo.Z();
4065 Double_t dDeltaCloR =
4066 TMath::Sqrt(dDeltaCloX * dDeltaCloX + dDeltaCloY * dDeltaCloY);
4067 Double_t dDeltaCloT =
4068 1000.0 * (pTofHit->
GetTime() - pTofPoint->GetTime());
4091 TVector3 vPntPosFar;
4092 pTofPoint->Position(vPntPosFar);
4094 Double_t dDeltaFarX = dX - vPntPosFar.X();
4095 Double_t dDeltaFarY = dY - vPntPosFar.Y();
4096 Double_t dDeltaFarZ = dZ - vPntPosFar.Z();
4097 Double_t dDeltaFarR =
4098 TMath::Sqrt(dDeltaFarX * dDeltaFarX + dDeltaFarY * dDeltaFarY);
4099 Double_t dDeltaFarT =
4100 1000.0 * (pTofHit->
GetTime() - pTofPoint->GetTime());
4128 iPtIdx = iRealPntIdx;
4132 TVector3 vPntPosBest;
4133 pTofPoint->Position(vPntPosBest);
4135 Double_t dDeltaBestX = dX - vPntPosBest.X();
4136 Double_t dDeltaBestY = dY - vPntPosBest.Y();
4137 Double_t dDeltaBestZ = dZ - vPntPosBest.Z();
4138 Double_t dDeltaBestR =
4139 TMath::Sqrt(dDeltaBestX * dDeltaBestX + dDeltaBestY * dDeltaBestY);
4140 Double_t dDeltaBestT =
4141 1000.0 * (pTofHit->
GetTime() - pTofPoint->GetTime());
4151 dDeltaBestZ / dErrZ,
4159 if (1 == uNbTracksInHit) {
4160 iNbTofHitsSingTrk++;
4178 pTofPoint->Position(vPntPos);
4180 Double_t dDeltaX = dX - vPntPos.X();
4181 Double_t dDeltaY = dY - vPntPos.Y();
4182 Double_t dDeltaZ = dZ - vPntPos.Z();
4183 Double_t dDeltaR = TMath::Sqrt(dDeltaX * dDeltaX + dDeltaY * dDeltaY);
4184 Double_t dDeltaT = 1000.0 * (pTofHit->
GetTime() - pTofPoint->GetTime());
4198 if (1 < uNbPointsInHit) {
4204 1000.0 * (pTofHit->
GetTime() - pTofPoint->GetTime()));
4217 Int_t iPartIdx = -1;
4218 for (Int_t iPart = 0; iPart <
kiNbPart; iPart++)
4223 if (-1 == iPartIdx) iPartIdx = 0;
4231 iNbTofHitsMultTrk++;
4240 dTrkMeanPosX /= vTofTracksId.size();
4241 dTrkMeanPosY /= vTofTracksId.size();
4242 dTrkMeanPosZ /= vTofTracksId.size();
4243 dTrkMeanTime /= vTofTracksId.size();
4245 Double_t dDeltaMeanX = dX - dTrkMeanPosX;
4246 Double_t dDeltaMeanY = dY - dTrkMeanPosY;
4247 Double_t dDeltaMeanZ = dZ - dTrkMeanPosZ;
4248 Double_t dDeltaMeanR =
4249 TMath::Sqrt(dDeltaMeanX * dDeltaMeanX + dDeltaMeanY * dDeltaMeanY);
4250 Double_t dDeltaMeanT = 1000.0 * (pTofHit->
GetTime() - dTrkMeanTime);
4260 dDeltaMeanZ / dErrZ,
4273 TVector3 vPntPosClo;
4274 pTofPoint->Position(vPntPosClo);
4276 Double_t dDeltaCloX = dX - vPntPosClo.X();
4277 Double_t dDeltaCloY = dY - vPntPosClo.Y();
4278 Double_t dDeltaCloZ = dZ - vPntPosClo.Z();
4279 Double_t dDeltaCloR =
4280 TMath::Sqrt(dDeltaCloX * dDeltaCloX + dDeltaCloY * dDeltaCloY);
4281 Double_t dDeltaCloT =
4282 1000.0 * (pTofHit->
GetTime() - pTofPoint->GetTime());
4305 TVector3 vPntPosFar;
4306 pTofPoint->Position(vPntPosFar);
4308 Double_t dDeltaFarX = dX - vPntPosFar.X();
4309 Double_t dDeltaFarY = dY - vPntPosFar.Y();
4310 Double_t dDeltaFarZ = dZ - vPntPosFar.Z();
4311 Double_t dDeltaFarR =
4312 TMath::Sqrt(dDeltaFarX * dDeltaFarX + dDeltaFarY * dDeltaFarY);
4313 Double_t dDeltaFarT =
4314 1000.0 * (pTofHit->
GetTime() - pTofPoint->GetTime());
4333 UInt_t uBestTrackIdx = 0;
4334 Double_t dBestTrackWeight = -1.0;
4335 for (UInt_t uTrkIdx = 0; uTrkIdx < vTofTracksId.size(); uTrkIdx++)
4336 if (dBestTrackWeight < vTofTracksWeight[uTrkIdx]) {
4337 uBestTrackIdx = uTrkIdx;
4338 dBestTrackWeight = vTofTracksWeight[uTrkIdx];
4345 vTofTracksFirstPntId[uBestTrackIdx]);
4348 vTofTracksFirstPntId[uBestTrackIdx]);
4350 TVector3 vPntPosBest;
4351 pTofPoint->Position(vPntPosBest);
4353 Double_t dDeltaBestX = dX - vPntPosBest.X();
4354 Double_t dDeltaBestY = dY - vPntPosBest.Y();
4355 Double_t dDeltaBestZ = dZ - vPntPosBest.Z();
4356 Double_t dDeltaBestR =
4357 TMath::Sqrt(dDeltaBestX * dDeltaBestX + dDeltaBestY * dDeltaBestY);
4358 Double_t dDeltaBestT =
4359 1000.0 * (pTofHit->
GetTime() - pTofPoint->GetTime());
4369 dDeltaBestZ / dErrZ,
4376 for (UInt_t uTrkIdx = 0; uTrkIdx < vTofTracksId.size(); uTrkIdx++) {
4380 vTofTracksFirstPntId[uTrkIdx]);
4388 Int_t iPartIdx = -1;
4389 for (Int_t iPart = 0; iPart <
kiNbPart; iPart++)
4394 if (-1 == iPartIdx) iPartIdx = 0;
4433 iPtIdx = iRealPntIdx;
4440 Int_t iPartIdx = -1;
4441 for (Int_t iPart = 0; iPart <
kiNbPart; iPart++)
4446 if (-1 == iPartIdx) iPartIdx = 0;
4454 if (1 == vTofPointsId.size()) {
4459 if (1 == vTofTracksId.size()) {
4472 if (1 == vTofPointsId.size()) {
4477 if (1 == vTofTracksId.size()) {
4484 vTofPointsId.clear();
4485 vTofTracksId.clear();
4497 for (Int_t iTrkInd = 0; iTrkInd < iNbTracks; iTrkInd++) {
4500 if (kTRUE == vbTrackHasHit[iTrkInd]) {
4503 Int_t iPartIdx = -1;
4504 for (Int_t iPart = 0; iPart <
kiNbPart; iPart++)
4509 if (-1 == iPartIdx) iPartIdx = 0;
4530 vbTrackHasHit.clear();
4560 LOG(debug2) <<
"CbmTofHitFinderQa::FillHistos => nb prim trk w/ pnt: "
4566 "CbmTofHitFinderQa::FillHistos => N pnt: ";
4568 "CbmTofHitFinderQa::FillHistos => nb prim trk w/ N pnt: ";
4570 "CbmTofHitFinderQa::FillHistos => nb prim trk w/ N pnt & hit: ";
4572 sHead += Form(
"%4u ", uNbGaps);
4585 * (
static_cast<Double_t
>(
4587 / (
static_cast<Double_t
>(
4594 / (
static_cast<Double_t
>(
4598 LOG(debug2) << sHead;
4599 LOG(debug2) << sPnt;
4600 LOG(debug2) << sHit;
4624 TDirectory* oldir = gDirectory;
4626 if (NULL == fHistNorm) {
4628 <<
"CbmTofHitFinderQa::NormalizeMapHistos => Could not open file"
4629 <<
" with Normalization histos of Cartesian coordinates maps with name "
4636 TH2* fhPointMapNormXY = NULL;
4637 TH2* fhPointMapNormXZ = NULL;
4638 TH2* fhPointMapNormYZ = NULL;
4639 TH2* fhDigiMapNormXY = NULL;
4640 TH2* fhDigiMapNormXZ = NULL;
4641 TH2* fhDigiMapNormYZ = NULL;
4642 TH2* fhHitMapNormXY = NULL;
4643 TH2* fhHitMapNormXZ = NULL;
4644 TH2* fhHitMapNormYZ = NULL;
4648 static_cast<TH2*
>(fHistNorm->FindObjectAny(
"TofTests_PointsMapXY"));
4650 static_cast<TH2*
>(fHistNorm->FindObjectAny(
"TofTests_PointsMapXZ"));
4652 static_cast<TH2*
>(fHistNorm->FindObjectAny(
"TofTests_PointsMapYZ"));
4655 static_cast<TH2*
>(fHistNorm->FindObjectAny(
"TofTests_DigisMapXY"));
4657 static_cast<TH2*
>(fHistNorm->FindObjectAny(
"TofTests_DigisMapXZ"));
4659 static_cast<TH2*
>(fHistNorm->FindObjectAny(
"TofTests_DigisMapYZ"));
4662 static_cast<TH2*
>(fHistNorm->FindObjectAny(
"TofTests_HitsMapXY"));
4664 static_cast<TH2*
>(fHistNorm->FindObjectAny(
"TofTests_HitsMapXZ"));
4666 static_cast<TH2*
>(fHistNorm->FindObjectAny(
"TofTests_HitsMapYZ"));
4667 LOG(info) <<
"CbmTofHitFinderQa::NormalizeMapHistos => XY norm histos: "
4668 << fhPointMapNormXY <<
" " << fhDigiMapNormXY <<
" "
4669 << fhHitMapNormXY <<
" ";
4670 LOG(info) <<
"CbmTofHitFinderQa::NormalizeMapHistos => XZ norm histos: "
4671 << fhPointMapNormXZ <<
" " << fhDigiMapNormXZ <<
" "
4672 << fhHitMapNormXZ <<
" ";
4673 LOG(info) <<
"CbmTofHitFinderQa::NormalizeMapHistos => YZ norm histos: "
4674 << fhPointMapNormYZ <<
" " << fhDigiMapNormYZ <<
" "
4675 << fhHitMapNormYZ <<
" ";
4678 if (NULL != fhPointMapNormXY) {
4681 if (NULL != fhPointMapNormXZ) {
4684 if (NULL != fhPointMapNormYZ) {
4687 if (NULL != fhDigiMapNormXY) {
4690 if (NULL != fhDigiMapNormXZ) {
4693 if (NULL != fhDigiMapNormYZ) {
4696 if (NULL != fhHitMapNormXY) {
4703 if (NULL != fhHitMapNormXZ) {
4710 if (NULL != fhHitMapNormYZ) {
4719 gDirectory->cd(oldir->GetPath());
4725 <<
"CbmTofHitFinderQa::NormalizeMapHistos => Name of input file for"
4726 <<
" Normalization of Cartesian coordinates maps not given"
4727 <<
" => no normalization for these maps!";
4731 TDirectory* oldir = gDirectory;
4733 if (NULL == fHistNorm) {
4735 <<
"CbmTofHitFinderQa::NormalizeMapHistos => Could not open file"
4736 <<
" with Normalization histos of Angular coordinates maps with name "
4743 TH2* fhPointMapNormAng = NULL;
4744 TH2* fhDigiMapNormAng = NULL;
4745 TH2* fhHitMapNormAng = NULL;
4749 static_cast<TH2*
>(fHistNorm->FindObjectAny(
"TofTests_PointsMapAng"));
4751 static_cast<TH2*
>(fHistNorm->FindObjectAny(
"TofTests_DigisMapAng"));
4753 static_cast<TH2*
>(fHistNorm->FindObjectAny(
"TofTests_HitsMapAng"));
4755 <<
"CbmTofHitFinderQa::NormalizeMapHistos => Angular norm histos: "
4756 << fhPointMapNormAng <<
" " << fhDigiMapNormAng <<
" " << fhHitMapNormAng
4760 if (NULL != fhPointMapNormAng)
fhPointMapAng->Divide(fhPointMapNormAng);
4761 if (NULL != fhDigiMapNormAng)
fhDigiMapAng->Divide(fhDigiMapNormAng);
4762 if (NULL != fhHitMapNormAng) {
4771 gDirectory->cd(oldir->GetPath());
4777 <<
"CbmTofHitFinderQa::NormalizeMapHistos => Name of input file for"
4778 <<
" Normalization of Angular coordinates maps not given"
4779 <<
" => no normalization for these maps!";
4783 TDirectory* oldir = gDirectory;
4785 if (NULL == fHistNorm) {
4787 <<
"CbmTofHitFinderQa::NormalizeMapHistos => Could not open file"
4788 <<
" with Normalization histos of Spherical coordinates maps with name "
4795 TH2* fhPointMapNormSph = NULL;
4796 TH2* fhDigiMapNormSph = NULL;
4797 TH2* fhHitMapNormSph = NULL;
4801 static_cast<TH2*
>(fHistNorm->FindObjectAny(
"TofTests_PointsMapSph"));
4803 static_cast<TH2*
>(fHistNorm->FindObjectAny(
"TofTests_DigisMapSph"));
4805 static_cast<TH2*
>(fHistNorm->FindObjectAny(
"TofTests_HitsMapSph"));
4807 <<
"CbmTofHitFinderQa::NormalizeMapHistos => Spherical norm histos: "
4808 << fhPointMapNormSph <<
" " << fhDigiMapNormSph <<
" " << fhHitMapNormSph
4812 if (NULL != fhPointMapNormSph)
fhPointMapSph->Divide(fhPointMapNormSph);
4813 if (NULL != fhDigiMapNormSph)
fhDigiMapSph->Divide(fhDigiMapNormSph);
4814 if (NULL != fhHitMapNormSph) {
4823 gDirectory->cd(oldir->GetPath());
4829 <<
"CbmTofHitFinderQa::NormalizeMapHistos => Name of input file for"
4830 <<
" Normalization of Spherical coordinates maps not given"
4831 <<
" => no normalization for these maps!";
4873 TDirectory* oldir = gDirectory;
4888 TDirectory* cdGeomMap = fHist->mkdir(
"GeomMap");
4926 TDirectory* cdStartZ = fHist->mkdir(
"StartZ");
4929 for (Int_t iPartIdx = 0; iPartIdx <
kiNbPart; iPartIdx++) {
4939 TDirectory* cdMixMap = fHist->mkdir(
"MixMap");
4966 TDirectory* cdHitQual = fHist->mkdir(
"HitQual");
5098 TDirectory* cdPhysMap = fHist->mkdir(
"PhysMap");
5101 for (Int_t iPartIdx = 0; iPartIdx <
kiNbPart; iPartIdx++) {
5125 TDirectory* cdPhysMapSec = fHist->mkdir(
"PhysMapSec");
5128 for (Int_t iPartIdx = 0; iPartIdx <
kiNbPart; iPartIdx++) {
5172 gDirectory->cd(oldir->GetPath());
5191 for (Int_t iPartIdx = 0; iPartIdx <
kiNbPart; iPartIdx++) {
5394 for (Int_t iPartIdx = 0; iPartIdx <
kiNbPart; iPartIdx++) {