29 #include "FairLogger.h"
30 #include "FairTrackParam.h"
35 #include "TClonesArray.h"
57 : FairTask(name, iVerbose)
59 , fNHitsOfLongTracks(0)
72 , fStsTrackArray(nullptr)
73 , fStsTrackArrayP(nullptr)
74 , fStsTrackArrayN(nullptr)
75 , fStsTrackMatches(nullptr)
76 , fGlobalTrackArray(nullptr)
77 , fListMCTracks(nullptr)
78 , fMCTrackArrayP(nullptr)
79 , fMCTrackArrayN(nullptr)
82 , fMvdCluster(nullptr)
84 , fMvdHitMatchArray(nullptr)
85 , fMvdDigiMatchArray(nullptr)
114 cout <<
"--------------------------------------------------------------------"
117 <<
"-I- " << GetName() <<
"::Init: "
118 <<
" Start Initilisation " << endl
119 <<
"--------------------------------------------------------------------"
123 FairRootManager* ioman = FairRootManager::Instance();
125 cout <<
"-E- " << GetName() <<
"::Init: "
126 <<
"RootManager not instantised!" << endl;
129 fBadTracks =
new TClonesArray(
"CbmStsTrack", 5000);
131 "BadTracks",
"sts",
fBadTracks, IsOutputBranchPersistent(
"BadTracks"));
138 Fatal(
"CbmMvdQa: StsTrackArray not found (!)",
" That's bad. ");
142 (TClonesArray*) ioman->GetObject(
"MvdPileUpMC");
143 fMvdDigis = (TClonesArray*) ioman->GetObject(
"MvdDigi");
144 fMvdCluster = (TClonesArray*) ioman->GetObject(
"MvdCluster");
145 fMvdHits = (TClonesArray*) ioman->GetObject(
"MvdHit");
151 <<
"MvdHit and MvdHitMatch Arrays do not have the same size" << endl;
168 cout << endl <<
"Mvd Pile Up Mc array missing";
185 cout <<
"--------------------------------------------------------------------"
188 <<
"-I- " << GetName() <<
"::Init: "
189 <<
" Finished Initialisation " << endl
190 <<
"--------------------------------------------------------------------"
212 new TH1F(
"fMC1F[0]",
"Matching efficientcy in the mvd", 100, 0, 1.5);
213 fMC1F[0]->GetXaxis()->SetTitle(
" 1 - (Incorrect / Total) ");
214 fMC1F[0]->GetYaxis()->SetTitle(
"Entries");
221 "fMC2F[0]",
"MC-Distribution on the first Station", 100, 0, 10, 100, 0, 10);
222 fMC2F[0]->GetXaxis()->SetTitle(
"X-Pos[cm]");
223 fMC2F[0]->GetYaxis()->SetTitle(
"Y-Pos[cm]");
234 new TH1F(
"fDigi1F[0]",
"Number of digis per MC-Point", 100, 0, 30);
235 fDigi1F[0]->GetXaxis()->SetTitle(
"number of digis");
236 fDigi1F[0]->GetYaxis()->SetTitle(
"entries");
239 new TH1F(
"fDigi1F[1]",
"Number of MC-Point per Digi", 100, 0, 10);
240 fDigi1F[1]->GetXaxis()->SetTitle(
"number of MC-Points");
241 fDigi1F[1]->GetYaxis()->SetTitle(
"entries");
248 new TH2F(
"fDigi2F[0]",
249 "Distribution of digis on worst spot on the first MVD statio",
256 fDigi2F[0]->GetXaxis()->SetTitle(
"x [cm]");
257 fDigi2F[0]->GetYaxis()->SetTitle(
"y [cm]");
259 fDigi2F[1] =
new TH2F(
"fDigi2F[1]",
260 "Distribution of digis on first MVD station",
267 fDigi2F[1]->GetXaxis()->SetTitle(
"x [cm]");
268 fDigi2F[1]->GetYaxis()->SetTitle(
"y [cm]");
270 fDigi2F[2] =
new TH2F(
"fDigi2F[2]",
271 "Distribution of digis on second MVD station",
278 fDigi2F[2]->GetXaxis()->SetTitle(
"x [cm]");
279 fDigi2F[2]->GetYaxis()->SetTitle(
"y [cm]");
281 fDigi2F[3] =
new TH2F(
"fDigi2F[3]",
282 "Distribution of digis on third MVD station",
289 fDigi2F[3]->GetXaxis()->SetTitle(
"x [cm]");
290 fDigi2F[3]->GetYaxis()->SetTitle(
"y [cm]");
292 fDigi2F[4] =
new TH2F(
"fDigi2F[4]",
293 "Distribution of digis on fourth MVD station",
300 fDigi2F[4]->GetXaxis()->SetTitle(
"x [cm]");
301 fDigi2F[4]->GetYaxis()->SetTitle(
"y [cm]");
311 fHits1F[0] =
new TH1F(
"fHits1F[0]",
"Hit per Digi", 100, 0, 3);
312 fHits1F[0]->GetXaxis()->SetTitle(
"number of hits");
313 fHits1F[0]->GetYaxis()->SetTitle(
"entries");
315 fHits1F[1] =
new TH1F(
"fHits1F[1]",
"Digis Per Hit", 100, 0, 12);
316 fHits1F[1]->GetXaxis()->SetTitle(
"number of digis");
317 fHits1F[1]->GetYaxis()->SetTitle(
"entries");
320 "fHits1F[2]",
"Error in x position of reconstructed hit", 1000, -100, 100);
321 fHits1F[2]->GetXaxis()->SetTitle(
"x_hit - x_mc [mu m]");
322 fHits1F[2]->GetYaxis()->SetTitle(
"entries");
325 "fHits1F[3]",
"Error in y position of reconstructed hit", 1000, -100, 100);
326 fHits1F[3]->GetXaxis()->SetTitle(
"y_hit - y_mc [mu m]");
327 fHits1F[3]->GetYaxis()->SetTitle(
"entries");
330 "fHits1F[4]",
"Pull in x position of reconstructed hit", 1000, -20, 20);
331 fHits1F[4]->GetXaxis()->SetTitle(
"x_error / xRes");
332 fHits1F[4]->GetYaxis()->SetTitle(
"entries");
335 "fHits1F[5]",
"Pull in y position of reconstructed hit", 1000, -20, 20);
336 fHits1F[5]->GetXaxis()->SetTitle(
"y_error / yRes");
337 fHits1F[5]->GetYaxis()->SetTitle(
"entries");
341 new TH2F(
"fHits2F[0]",
342 "Distribution of Hits in worst spot on the first Station",
349 fHits2F[0]->GetXaxis()->SetTitle(
"x [cm]");
350 fHits2F[0]->GetYaxis()->SetTitle(
"y [cm]");
362 new TH1F(
"fTracks1F[0]",
"reconstructed tracks in bins of p", 300, 0, 3);
363 fTracks1F[0]->GetXaxis()->SetTitle(
"Momentum [GeV]");
364 fTracks1F[0]->GetYaxis()->SetTitle(
"Entries");
367 "fTracks1F[1]",
"track reconstruction efficiency in bins of p", 300, 0, 3);
368 fTracks1F[1]->GetXaxis()->SetTitle(
"Momentum [GeV]");
369 fTracks1F[1]->GetYaxis()->SetTitle(
"correct reco / all reco");
372 new TH1F(
"fTracks1F[2]",
"tracks with 4 hits in the mvd", 200, 0, 15);
373 fTracks1F[2]->GetXaxis()->SetTitle(
"Momentum [GeV]");
374 fTracks1F[2]->GetYaxis()->SetTitle(
"Entries");
377 "fTracks1F[3]",
"tracks with 4 correct hits in the mvd", 200, 0, 15);
378 fTracks1F[3]->GetXaxis()->SetTitle(
"Momentum [GeV]");
379 fTracks1F[3]->GetYaxis()->SetTitle(
"Entries");
382 "correct reconstructed tracks with 4 hits in the mvd",
386 fTracks1F[4]->GetXaxis()->SetTitle(
"Momentum [GeV]");
387 fTracks1F[4]->GetYaxis()->SetTitle(
"Entries");
390 "fTracks1F[5]",
"Resolution in x at z = z Mc Vertex", 1000, -0.02, 0.02);
391 fTracks1F[5]->GetXaxis()->SetTitle(
"x [cm]");
392 fTracks1F[5]->GetYaxis()->SetTitle(
"Entries");
395 "fTracks1F[6]",
"Resolution in y at z = z Mc Vertex", 1000, -0.02, 0.02);
396 fTracks1F[6]->GetXaxis()->SetTitle(
"y [cm]");
397 fTracks1F[6]->GetYaxis()->SetTitle(
"Entries");
400 "Resolution in x at z = z Mc Vertex, 4 mvd hits",
404 fTracks1F[7]->GetXaxis()->SetTitle(
"x [cm]");
405 fTracks1F[7]->GetYaxis()->SetTitle(
"Entries");
408 "Resolution in y at z = z Mc Vertex, 4 mvd hits",
412 fTracks1F[8]->GetXaxis()->SetTitle(
"y [cm]");
413 fTracks1F[8]->GetYaxis()->SetTitle(
"Entries");
416 new TH1F(
"fTracks1F[9]",
417 "Resolution in x at z = z Mc Vertex, hit in first mvd",
421 fTracks1F[9]->GetXaxis()->SetTitle(
"x [cm]");
422 fTracks1F[9]->GetYaxis()->SetTitle(
"Entries");
425 new TH1F(
"fTracks1F[10]",
426 "Resolution in y at z = z Mc Vertex, hit in first mvd",
430 fTracks1F[10]->GetXaxis()->SetTitle(
"y [cm]");
431 fTracks1F[10]->GetYaxis()->SetTitle(
"Entries");
434 new TH1F(
"fTracks1F[11]",
435 "Resolution in x at z = z Mc Vertex, no hit in first mvd",
439 fTracks1F[11]->GetXaxis()->SetTitle(
"x [cm]");
440 fTracks1F[11]->GetYaxis()->SetTitle(
"Entries");
443 new TH1F(
"fTracks1F[12]",
444 "Resolution in y at z = z Mc Vertex, no hit in first mvd",
448 fTracks1F[12]->GetXaxis()->SetTitle(
"y [cm]");
449 fTracks1F[12]->GetYaxis()->SetTitle(
"Entries");
452 new TH1F(
"fTracks1F[13]",
453 "Resolution in x at z = z Mc Vertex, true hit in first mvd",
457 fTracks1F[13]->GetXaxis()->SetTitle(
"x [cm]");
458 fTracks1F[13]->GetYaxis()->SetTitle(
"Entries");
461 new TH1F(
"fTracks1F[14]",
462 "Resolution in y at z = z Mc Vertex, true hit in first mvd",
466 fTracks1F[14]->GetXaxis()->SetTitle(
"y [cm]");
467 fTracks1F[14]->GetYaxis()->SetTitle(
"Entries");
470 new TH1F(
"fTracks1F[15]",
471 "Resolution in x at z = z Mc Vertex, wrong hit in first mvd",
475 fTracks1F[15]->GetXaxis()->SetTitle(
"x [cm]");
476 fTracks1F[15]->GetYaxis()->SetTitle(
"Entries");
479 new TH1F(
"fTracks1F[16]",
480 "Resolution in y at z = z Mc Vertex, wrong hit in first mvd",
484 fTracks1F[16]->GetXaxis()->SetTitle(
"y [cm]");
485 fTracks1F[16]->GetYaxis()->SetTitle(
"Entries");
489 "Chi Squard over NDF of Tracks with wrong attached hit in first Mvd",
493 fTracks1F[17]->GetXaxis()->SetTitle(
"chi^2 / NDF");
494 fTracks1F[17]->GetYaxis()->SetTitle(
"Entries");
497 new TH1F(
"fTracks1F[18]",
498 "Chi Squard over NDF of Tracks with correct hit in first Mvd",
502 fTracks1F[18]->GetXaxis()->SetTitle(
"chi^2 / NDF");
503 fTracks1F[18]->GetYaxis()->SetTitle(
"Entries");
506 new TH1F(
"fTracks1F[19]",
507 "Chi Squard over NDF of all Tracks with hit in first Mvd",
511 fTracks1F[19]->GetXaxis()->SetTitle(
"chi^2 / NDF");
512 fTracks1F[19]->GetYaxis()->SetTitle(
"Entries");
515 "fTracks1F[20]",
"Impactparam Tracks with ChiSq/NDF > 1", 100, 0, 0.10);
516 fTracks1F[20]->GetXaxis()->SetTitle(
"impactparam R [cm]");
517 fTracks1F[20]->GetYaxis()->SetTitle(
"Entries");
520 "fTracks1F[21]",
"Impactparam Tracks with ChiSq/NDF <= 1", 100, 0, 0.1);
521 fTracks1F[21]->GetXaxis()->SetTitle(
"impactparam R [cm]");
522 fTracks1F[21]->GetYaxis()->SetTitle(
"Entries");
524 fTracks1F[22] =
new TH1F(
"fTracks1F[22]",
525 "Resolution in x at z = z Mc Vertex, wrong hit in "
526 "first mvd, Positive Tracks",
530 fTracks1F[22]->GetXaxis()->SetTitle(
"x [cm]");
531 fTracks1F[22]->GetYaxis()->SetTitle(
"Entries");
533 fTracks1F[23] =
new TH1F(
"fTracks1F[23]",
534 "Resolution in x at z = z Mc Vertex, wrong hit in "
535 "first mvd, Negative Tracks",
539 fTracks1F[23]->GetXaxis()->SetTitle(
"x [cm]");
540 fTracks1F[23]->GetYaxis()->SetTitle(
"Entries");
544 "Impactparam X Tracks with ChiSq/NDF > 1, wrong hit in first station",
548 fTracks1F[24]->GetXaxis()->SetTitle(
"x [cm]");
549 fTracks1F[24]->GetYaxis()->SetTitle(
"Entries");
553 "Impactparam x Tracks with ChiSq/NDF <= 1, wrong hit in first station",
557 fTracks1F[25]->GetXaxis()->SetTitle(
"x [cm]");
558 fTracks1F[25]->GetYaxis()->SetTitle(
"Entries");
560 fTracks1F[26] =
new TH1F(
"fTracks1F[26]",
561 "Impactparam X Tracks with momentum >= 1 GeV, wrong "
562 "hit in first station, p Tracks",
566 fTracks1F[26]->GetXaxis()->SetTitle(
"x [cm]");
567 fTracks1F[26]->GetYaxis()->SetTitle(
"Entries");
569 fTracks1F[27] =
new TH1F(
"fTracks1F[27]",
570 "Impactparam X Tracks with momentum < 1 GeV, wrong "
571 "hit in first station, p Tracks",
575 fTracks1F[27]->GetXaxis()->SetTitle(
"x [cm]");
576 fTracks1F[27]->GetYaxis()->SetTitle(
"Entries");
578 fTracks1F[28] =
new TH1F(
"fTracks1F[28]",
579 "Impactparam X Tracks with momentum >= 1 GeV, wrong "
580 "hit in first station, n Tracks",
584 fTracks1F[28]->GetXaxis()->SetTitle(
"x [cm]");
585 fTracks1F[28]->GetYaxis()->SetTitle(
"Entries");
587 fTracks1F[29] =
new TH1F(
"fTracks1F[29]",
588 "Impactparam X Tracks with momentum < 1 GeV, wrong "
589 "hit in first station, n Tracks",
593 fTracks1F[29]->GetXaxis()->SetTitle(
"x [cm]");
594 fTracks1F[29]->GetYaxis()->SetTitle(
"Entries");
597 new TH1F(
"fTracks1F[30]",
598 "mc x position of correct hit - x pos of wrongly attached hit",
602 fTracks1F[30]->GetXaxis()->SetTitle(
"x [mu m]");
603 fTracks1F[30]->GetYaxis()->SetTitle(
"Entries");
606 new TH1F(
"fTracks1F[31]",
607 "mc y position of correct hit - y pos of wrongly attached hit",
611 fTracks1F[31]->GetXaxis()->SetTitle(
"y [mu m]");
612 fTracks1F[31]->GetYaxis()->SetTitle(
"Entries");
615 new TH1F(
"fTracks1F[32]",
616 "Resolution in x at z = z Mc Vertex, 4 mvd hits, trueOverAll == 1",
620 fTracks1F[32]->GetXaxis()->SetTitle(
"x [cm]");
621 fTracks1F[32]->GetYaxis()->SetTitle(
"Entries");
624 new TH1F(
"fTracks1F[33]",
625 "Resolution in y at z = z Mc Vertex, 4 mvd hits, trueOverAll == 1",
629 fTracks1F[33]->GetXaxis()->SetTitle(
"y [cm]");
630 fTracks1F[33]->GetYaxis()->SetTitle(
"Entries");
634 "Momentumresolution all Tracks",
641 fTracks2F[0]->GetXaxis()->SetTitle(
"MC-Momentum [GeV]");
642 fTracks2F[0]->GetYaxis()->SetTitle(
"MC-Momentum - Reco-Momentum [GeV]");
645 "Momentumresolution correct reconstructed Tracks",
652 fTracks2F[1]->GetXaxis()->SetTitle(
"MC-Momentum [GeV]");
653 fTracks2F[1]->GetYaxis()->SetTitle(
"MC-Momentum - Reco-Momentum [GeV]");
656 "Momentumresolution Tracks with 4 hits in the mvd",
663 fTracks2F[2]->GetXaxis()->SetTitle(
"MC-Momentum [GeV]");
664 fTracks2F[2]->GetYaxis()->SetTitle(
"MC-Momentum - Reco-Momentum [GeV]");
667 new TH2F(
"fTracks2F[3]",
668 "Momentumresolution Tracks with 4 correct hits in the mvd",
675 fTracks2F[3]->GetXaxis()->SetTitle(
"MC-Momentum [GeV]");
676 fTracks2F[3]->GetYaxis()->SetTitle(
"MC-Momentum - Reco-Momentum [GeV]");
680 "Momentumresolution correct reconstructed Tracks with 4 hits in the mvd",
687 fTracks2F[4]->GetXaxis()->SetTitle(
"MC-Momentum [GeV]");
688 fTracks2F[4]->GetYaxis()->SetTitle(
"MC-Momentum - Reco-Momentum [GeV]");
691 new TH2F(
"fTracks2F[5]",
692 "Momentumresolution Tracks with hit in the first mvd station",
699 fTracks2F[5]->GetXaxis()->SetTitle(
"MC-Momentum [GeV]");
700 fTracks2F[5]->GetYaxis()->SetTitle(
"MC-Momentum - Reco-Momentum [GeV]");
703 new TH2F(
"fTracks2F[6]",
704 "Momentumresolution Tracks with no hit in the first mvd station",
711 fTracks2F[6]->GetXaxis()->SetTitle(
"MC-Momentum [GeV]");
712 fTracks2F[6]->GetYaxis()->SetTitle(
"MC-Momentum - Reco-Momentum [GeV]");
715 "Position of wrong attached Hit in first Mvd Station",
722 fTracks2F[7]->GetXaxis()->SetTitle(
"x [cm]");
723 fTracks2F[7]->GetYaxis()->SetTitle(
"y [cm]");
726 "Position of wrong attached Hit in first Mvd "
727 "Station, with good ChiSq over NDF",
734 fTracks2F[8]->GetXaxis()->SetTitle(
"x [cm]");
735 fTracks2F[8]->GetYaxis()->SetTitle(
"y [cm]");
738 "Propability to pick up the wrong hit on the first "
739 "MVD Station 2 bins cut at 1.5 GeV",
746 fTracks2F[9]->GetXaxis()->SetBinLabel(1,
"0 - 1 GeV");
747 fTracks2F[9]->GetXaxis()->SetBinLabel(2,
"1 - 1.5 GeV");
748 fTracks2F[9]->GetYaxis()->SetBinLabel(1,
"wrong Hit");
749 fTracks2F[9]->GetYaxis()->SetBinLabel(2,
"correct Hit");
752 new TH2F(
"fTracks2F[10]",
753 "Vertexresolution of wrong attached Hit in first Mvd Station",
760 fTracks2F[10]->GetXaxis()->SetTitle(
"X at glVertex [cm]");
761 fTracks2F[10]->GetYaxis()->SetTitle(
"Y at glVertex [cm] ");
763 fTracks2F[11] =
new TH2F(
"fTracks2F[11]",
764 "Propability to pick up the wrong hit on the first "
765 "MVD Station 2 bins cut at 0.5 , 1 GeV",
772 fTracks2F[11]->GetXaxis()->SetBinLabel(1,
"0 - 0.5 GeV");
773 fTracks2F[11]->GetXaxis()->SetBinLabel(2,
"0.5 - 1 GeV");
774 fTracks2F[11]->GetXaxis()->SetBinLabel(3,
"1 - 1.5 GeV");
775 fTracks2F[11]->GetYaxis()->SetBinLabel(1,
"wrong Hit");
776 fTracks2F[11]->GetYaxis()->SetBinLabel(2,
"correct Hit");
784 LOG(info) <<
"CbmMvdQa is running Event " <<
fEventNumber;
795 Int_t nrMcPoints =
fMcPoints->GetEntriesFast();
797 for (Int_t
i = 0;
i < nrMcPoints; ++
i) {
800 fMC2F[0]->Fill(curMc->GetX(), curMc->GetY());
808 Int_t nrDigis =
fMvdDigis->GetEntriesFast();
810 Int_t nrMcPoints =
fMcPoints->GetEntriesFast();
812 Int_t digisPerMcPoints[nrMcPoints];
813 Int_t McPointsPerDigi[nrDigis];
815 for (Int_t
i = 0;
i < nrDigis;
i++) {
819 for (Int_t j = 0; j < nrOfContributors; j++) {
822 McPointsPerDigi[
i] = nrOfContributors;
824 for (Int_t n = 0; n < nrSensor; n++) {
826 Double_t
lab[3] = {0., 0., 0.};
829 if (curSens->
GetZ() < 6)
831 else if (curSens->
GetZ() < 11)
833 else if (curSens->
GetZ() < 16)
838 if (
lab[0] > -2 &&
lab[0] <= -0.5 &&
lab[1] >= -1.5 &&
lab[1] <= 1.5) {
845 for (Int_t
i = 0;
i < nrMcPoints;
i++)
848 for (Int_t
i = 0;
i < nrDigis;
i++)
855 Int_t nrHits =
fMvdHits->GetEntriesFast();
858 Int_t DigisPerHit[nrHits];
863 for (Int_t k = 0; k < nrHits; k++) {
868 Float_t xErr = 10000 * (curHit->
GetX() - curMc->GetX());
869 Float_t yErr = 10000 * (curHit->
GetY() - curMc->GetY());
876 if (curHit->
GetX() > -2 && curHit->
GetX() <= -0.5 && curHit->
GetY() >= -1.5
877 && curHit->
GetY() <= 1.5) {
887 for (Int_t
i = 0;
i < nrHits;
i++)
907 Bool_t hasHitFirst, hasHitFirstTrue;
909 Float_t glX, glY, ChiSqOverNDF, glP, mcP, trueOverAll, glQP;
910 Float_t mcPosFirst[3] = {0};
913 LOG(debug) <<
" CbmMvdQa: Entries: " << nTracks <<
" StsTracks from "
914 << nMcTracks <<
" McTracks";
917 for (Int_t itr = 0; itr < nGlobalTracks; itr++) {
937 glP =
fabs(1 / glQP);
938 mcP = mcTrack->
GetP();
960 if (trueOverAll == 1.)
fTracks1F[1]->Fill(glP, 1);
965 if (trueOverAll == 1.) {
989 if (hasHitFirstTrue) {
995 if (!hasHitFirstTrue && hasHitFirst) {
1001 fTracks1F[30]->Fill(mcPosFirst[0] - hitFirst[0]);
1002 fTracks1F[31]->Fill(mcPosFirst[1] - hitFirst[1]);
1018 if (ChiSqOverNDF > 1)
1024 if (ChiSqOverNDF > 1) {
1032 if (trueOverAll == 1.)
fTracks2F[1]->Fill(mcP, mcP - glP);
1034 if (nHitsMvd == 4) {
1037 if (trueOverAll == 1.)
fTracks2F[4]->Fill(mcP, mcP - glP);
1045 if (!hasHitFirstTrue && hasHitFirst) {
1046 fTracks2F[7]->Fill(hitFirst[0], hitFirst[1]);
1047 if (ChiSqOverNDF <= 1)
fTracks2F[8]->Fill(hitFirst[0], hitFirst[1]);
1052 else if (mcP >= 0.5)
1060 if (hasHitFirstTrue) {
1065 else if (mcP >= 0.5)
1077 for (Int_t itr = 0; itr < nrMvdHits; itr++) {
1081 hitPos[0] = curHit->
GetX();
1082 hitPos[1] = curHit->
GetY();
1090 for (Int_t itr = 0; itr < nrMvdHits; itr++) {
1103 Int_t nrOfLinks = 0;
1104 Int_t mcTrackId = 0;
1106 for (Int_t iHit = 0; iHit < nrOfMvdHits; iHit++) {
1114 for (Int_t iLink = 0; iLink < nrOfLinks; iLink++) {
1116 if (pointIndex < fMcPoints->GetEntriesFast())
1118 if (NULL == point) {
1121 mcTrackId = point->GetTrackID();
1135 Int_t nrOfLinks = 0;
1137 for (Int_t iHit = 0; iHit < nrOfMvdHits; iHit++) {
1145 for (Int_t iLink = 0; iLink < nrOfLinks; iLink++) {
1147 if (pointIndex < fMcPoints->GetEntriesFast())
1149 if (NULL == point) {
1152 pos[0] = point->GetX();
1153 pos[1] = point->GetY();
1167 Int_t mcTrackId = 0;
1168 Float_t falseCounter = 0;
1170 Int_t nrOfLinks = 0;
1173 for (Int_t iHit = 0; iHit < nrOfMvdHits; iHit++) {
1183 for (Int_t iLink = 0; iLink < nrOfLinks; iLink++) {
1185 if (pointIndex < fMcPoints->GetEntriesFast())
1187 if (NULL == point) {
1190 mcTrackId = point->GetTrackID();
1191 if (mcTrackId == MCtrackID) { hasTrack = kTRUE; }
1193 if (!hasTrack) falseCounter++;
1195 Float_t
counter = (Float_t) falseCounter / (Float_t) nrOfMvdHits;
1219 TCanvas* mcCanvas1 =
new TCanvas();
1231 TCanvas* digiCanvas1a =
new TCanvas();
1235 TCanvas* digiCanvas1b =
new TCanvas();
1251 TCanvas* hitCanvas1b =
new TCanvas();
1255 TCanvas* hitCanvas1c =
new TCanvas();
1259 TCanvas* hitCanvas1d =
new TCanvas();
1263 TCanvas* hitCanvas1e =
new TCanvas();
1267 TCanvas* hitCanvas1f =
new TCanvas();
1272 TCanvas* hitCanvas2a =
new TCanvas();
1277 for (Int_t
i = 0;
i < 6;
i++) {
1292 TCanvas* TrackCanvas1 =
new TCanvas();
1293 TrackCanvas1->Divide(3, 2);
1294 TrackCanvas1->cd(1);
1296 TrackCanvas1->cd(2);
1298 TrackCanvas1->cd(3);
1300 TrackCanvas1->cd(4);
1302 TrackCanvas1->cd(5);
1305 TCanvas* TrackCanvas1b =
new TCanvas();
1306 TrackCanvas1b->Divide(2, 2);
1307 TrackCanvas1b->cd(1);
1309 TrackCanvas1b->cd(2);
1311 TrackCanvas1b->cd(3);
1313 TrackCanvas1b->cd(4);
1316 TCanvas* TrackCanvas1c =
new TCanvas();
1317 TrackCanvas1c->Divide(2, 2);
1318 TrackCanvas1c->cd(1);
1320 TrackCanvas1c->cd(2);
1322 TrackCanvas1c->cd(3);
1324 TrackCanvas1c->cd(4);
1327 TCanvas* TrackCanvas1d =
new TCanvas();
1328 TrackCanvas1d->Divide(2, 2);
1329 TrackCanvas1d->cd(1);
1331 TrackCanvas1d->cd(2);
1333 TrackCanvas1d->cd(3);
1335 TrackCanvas1d->cd(4);
1338 TCanvas* TrackCanvas1e =
new TCanvas();
1339 TrackCanvas1e->Divide(2, 2);
1340 TrackCanvas1e->cd(1);
1342 TrackCanvas1e->cd(2);
1344 TrackCanvas1e->cd(3);
1346 TrackCanvas1e->cd(4);
1349 TCanvas* TrackCanvas1f =
new TCanvas();
1350 TrackCanvas1f->Divide(2, 2);
1351 TrackCanvas1f->cd(1);
1353 TrackCanvas1f->cd(2);
1355 TrackCanvas1f->cd(3);
1357 TrackCanvas1f->cd(4);
1360 TCanvas* TrackCanvas1g =
new TCanvas();
1361 TrackCanvas1g->Divide(2, 2);
1362 TrackCanvas1g->cd(1);
1364 TrackCanvas1g->cd(2);
1366 TrackCanvas1g->cd(3);
1368 TrackCanvas1g->cd(4);
1371 TCanvas* TrackCanvas1h =
new TCanvas();
1372 TrackCanvas1h->Divide(2, 2);
1373 TrackCanvas1h->cd(1);
1375 TrackCanvas1h->cd(2);
1377 TrackCanvas1h->cd(3);
1379 TrackCanvas1h->cd(4);
1382 TCanvas* TrackCanvas1i =
new TCanvas();
1383 TrackCanvas1i->Divide(2, 2);
1384 TrackCanvas1i->cd(1);
1386 TrackCanvas1i->cd(2);
1390 for (Int_t k = 0; k <
f1FSize; k++) {
1417 TCanvas* TrackCanvas2 =
new TCanvas();
1418 TrackCanvas2->Divide(3, 2);
1419 TrackCanvas2->cd(1);
1421 TrackCanvas2->cd(2);
1423 TrackCanvas2->cd(3);
1425 TrackCanvas2->cd(4);
1427 TrackCanvas2->cd(5);
1431 TCanvas* TrackCanvas2b =
new TCanvas();
1432 TrackCanvas2b->Divide(2, 2);
1433 TrackCanvas2b->cd(1);
1435 TrackCanvas2b->cd(2);
1439 TCanvas* BadTracks =
new TCanvas();
1440 BadTracks->Divide(2, 2);
1453 gStyle->SetPaintTextFormat(
"4.1f %");
1455 TCanvas* asd =
new TCanvas();
1459 TCanvas* asd2 =
new TCanvas();