216 fDigi1F[0] =
new TH1F(
"fDigi1F[0]",
"Number of digis per MC-Point", 100, 0, 30);
217 fDigi1F[0]->GetXaxis()->SetTitle(
"number of digis");
218 fDigi1F[0]->GetYaxis()->SetTitle(
"entries");
220 fDigi1F[1] =
new TH1F(
"fDigi1F[1]",
"Number of MC-Point per Digi", 100, 0, 10);
221 fDigi1F[1]->GetXaxis()->SetTitle(
"number of MC-Points");
222 fDigi1F[1]->GetYaxis()->SetTitle(
"entries");
229 new TH2F(
"fDigi2F[0]",
"Distribution of digis on worst spot on the first MVD statio", 100, -4, 0, 100, -2, 5);
230 fDigi2F[0]->GetXaxis()->SetTitle(
"x [cm]");
231 fDigi2F[0]->GetYaxis()->SetTitle(
"y [cm]");
233 fDigi2F[1] =
new TH2F(
"fDigi2F[1]",
"Distribution of digis on first MVD station", 100, -4, 4, 100, -4, 4);
234 fDigi2F[1]->GetXaxis()->SetTitle(
"x [cm]");
235 fDigi2F[1]->GetYaxis()->SetTitle(
"y [cm]");
237 fDigi2F[2] =
new TH2F(
"fDigi2F[2]",
"Distribution of digis on second MVD station", 100, -8, 8, 100, 8, 8);
238 fDigi2F[2]->GetXaxis()->SetTitle(
"x [cm]");
239 fDigi2F[2]->GetYaxis()->SetTitle(
"y [cm]");
241 fDigi2F[3] =
new TH2F(
"fDigi2F[3]",
"Distribution of digis on third MVD station", 100, -12, 12, 100, -12, 12);
242 fDigi2F[3]->GetXaxis()->SetTitle(
"x [cm]");
243 fDigi2F[3]->GetYaxis()->SetTitle(
"y [cm]");
245 fDigi2F[4] =
new TH2F(
"fDigi2F[4]",
"Distribution of digis on fourth MVD station", 100, -16, 16, 100, -16, 16);
246 fDigi2F[4]->GetXaxis()->SetTitle(
"x [cm]");
247 fDigi2F[4]->GetYaxis()->SetTitle(
"y [cm]");
298 fTracks1F[0] =
new TH1F(
"fTracks1F[0]",
"reconstructed tracks in bins of p", 300, 0, 3);
299 fTracks1F[0]->GetXaxis()->SetTitle(
"Momentum [GeV]");
300 fTracks1F[0]->GetYaxis()->SetTitle(
"Entries");
302 fTracks1F[1] =
new TH1F(
"fTracks1F[1]",
"track reconstruction efficiency in bins of p", 300, 0, 3);
303 fTracks1F[1]->GetXaxis()->SetTitle(
"Momentum [GeV]");
304 fTracks1F[1]->GetYaxis()->SetTitle(
"correct reco / all reco");
306 fTracks1F[2] =
new TH1F(
"fTracks1F[2]",
"tracks with 4 hits in the mvd", 200, 0, 15);
307 fTracks1F[2]->GetXaxis()->SetTitle(
"Momentum [GeV]");
308 fTracks1F[2]->GetYaxis()->SetTitle(
"Entries");
310 fTracks1F[3] =
new TH1F(
"fTracks1F[3]",
"tracks with 4 correct hits in the mvd", 200, 0, 15);
311 fTracks1F[3]->GetXaxis()->SetTitle(
"Momentum [GeV]");
312 fTracks1F[3]->GetYaxis()->SetTitle(
"Entries");
314 fTracks1F[4] =
new TH1F(
"fTracks1F[4]",
"correct reconstructed tracks with 4 hits in the mvd", 200, 0, 15);
315 fTracks1F[4]->GetXaxis()->SetTitle(
"Momentum [GeV]");
316 fTracks1F[4]->GetYaxis()->SetTitle(
"Entries");
318 fTracks1F[5] =
new TH1F(
"fTracks1F[5]",
"Resolution in x at z = z Mc Vertex", 1000, -0.02, 0.02);
319 fTracks1F[5]->GetXaxis()->SetTitle(
"x [cm]");
320 fTracks1F[5]->GetYaxis()->SetTitle(
"Entries");
322 fTracks1F[6] =
new TH1F(
"fTracks1F[6]",
"Resolution in y at z = z Mc Vertex", 1000, -0.02, 0.02);
323 fTracks1F[6]->GetXaxis()->SetTitle(
"y [cm]");
324 fTracks1F[6]->GetYaxis()->SetTitle(
"Entries");
326 fTracks1F[7] =
new TH1F(
"fTracks1F[7]",
"Resolution in x at z = z Mc Vertex, 4 mvd hits", 1000, -0.02, 0.02);
327 fTracks1F[7]->GetXaxis()->SetTitle(
"x [cm]");
328 fTracks1F[7]->GetYaxis()->SetTitle(
"Entries");
330 fTracks1F[8] =
new TH1F(
"fTracks1F[8]",
"Resolution in y at z = z Mc Vertex, 4 mvd hits", 1000, -0.02, 0.02);
331 fTracks1F[8]->GetXaxis()->SetTitle(
"y [cm]");
332 fTracks1F[8]->GetYaxis()->SetTitle(
"Entries");
334 fTracks1F[9] =
new TH1F(
"fTracks1F[9]",
"Resolution in x at z = z Mc Vertex, hit in first mvd", 1000, -0.02, 0.02);
335 fTracks1F[9]->GetXaxis()->SetTitle(
"x [cm]");
336 fTracks1F[9]->GetYaxis()->SetTitle(
"Entries");
338 fTracks1F[10] =
new TH1F(
"fTracks1F[10]",
"Resolution in y at z = z Mc Vertex, hit in first mvd", 1000, -0.02, 0.02);
339 fTracks1F[10]->GetXaxis()->SetTitle(
"y [cm]");
340 fTracks1F[10]->GetYaxis()->SetTitle(
"Entries");
343 new TH1F(
"fTracks1F[11]",
"Resolution in x at z = z Mc Vertex, no hit in first mvd", 1000, -0.02, 0.02);
344 fTracks1F[11]->GetXaxis()->SetTitle(
"x [cm]");
345 fTracks1F[11]->GetYaxis()->SetTitle(
"Entries");
348 new TH1F(
"fTracks1F[12]",
"Resolution in y at z = z Mc Vertex, no hit in first mvd", 1000, -0.02, 0.02);
349 fTracks1F[12]->GetXaxis()->SetTitle(
"y [cm]");
350 fTracks1F[12]->GetYaxis()->SetTitle(
"Entries");
353 new TH1F(
"fTracks1F[13]",
"Resolution in x at z = z Mc Vertex, true hit in first mvd", 1000, -0.02, 0.02);
354 fTracks1F[13]->GetXaxis()->SetTitle(
"x [cm]");
355 fTracks1F[13]->GetYaxis()->SetTitle(
"Entries");
358 new TH1F(
"fTracks1F[14]",
"Resolution in y at z = z Mc Vertex, true hit in first mvd", 1000, -0.02, 0.02);
359 fTracks1F[14]->GetXaxis()->SetTitle(
"y [cm]");
360 fTracks1F[14]->GetYaxis()->SetTitle(
"Entries");
363 new TH1F(
"fTracks1F[15]",
"Resolution in x at z = z Mc Vertex, wrong hit in first mvd", 1000, -0.02, 0.02);
364 fTracks1F[15]->GetXaxis()->SetTitle(
"x [cm]");
365 fTracks1F[15]->GetYaxis()->SetTitle(
"Entries");
368 new TH1F(
"fTracks1F[16]",
"Resolution in y at z = z Mc Vertex, wrong hit in first mvd", 1000, -0.02, 0.02);
369 fTracks1F[16]->GetXaxis()->SetTitle(
"y [cm]");
370 fTracks1F[16]->GetYaxis()->SetTitle(
"Entries");
373 new TH1F(
"fTracks1F[17]",
"Chi Squard over NDF of Tracks with wrong attached hit in first Mvd", 100, 0, 10);
374 fTracks1F[17]->GetXaxis()->SetTitle(
"chi^2 / NDF");
375 fTracks1F[17]->GetYaxis()->SetTitle(
"Entries");
377 fTracks1F[18] =
new TH1F(
"fTracks1F[18]",
"Chi Squard over NDF of Tracks with correct hit in first Mvd", 100, 0, 10);
378 fTracks1F[18]->GetXaxis()->SetTitle(
"chi^2 / NDF");
379 fTracks1F[18]->GetYaxis()->SetTitle(
"Entries");
381 fTracks1F[19] =
new TH1F(
"fTracks1F[19]",
"Chi Squard over NDF of all Tracks with hit in first Mvd", 100, 0, 10);
382 fTracks1F[19]->GetXaxis()->SetTitle(
"chi^2 / NDF");
383 fTracks1F[19]->GetYaxis()->SetTitle(
"Entries");
385 fTracks1F[20] =
new TH1F(
"fTracks1F[20]",
"Impactparam Tracks with ChiSq/NDF > 1", 100, 0, 0.10);
386 fTracks1F[20]->GetXaxis()->SetTitle(
"impactparam R [cm]");
387 fTracks1F[20]->GetYaxis()->SetTitle(
"Entries");
389 fTracks1F[21] =
new TH1F(
"fTracks1F[21]",
"Impactparam Tracks with ChiSq/NDF <= 1", 100, 0, 0.1);
390 fTracks1F[21]->GetXaxis()->SetTitle(
"impactparam R [cm]");
391 fTracks1F[21]->GetYaxis()->SetTitle(
"Entries");
393 fTracks1F[22] =
new TH1F(
"fTracks1F[22]",
394 "Resolution in x at z = z Mc Vertex, wrong hit in "
395 "first mvd, Positive Tracks",
397 fTracks1F[22]->GetXaxis()->SetTitle(
"x [cm]");
398 fTracks1F[22]->GetYaxis()->SetTitle(
"Entries");
400 fTracks1F[23] =
new TH1F(
"fTracks1F[23]",
401 "Resolution in x at z = z Mc Vertex, wrong hit in "
402 "first mvd, Negative Tracks",
404 fTracks1F[23]->GetXaxis()->SetTitle(
"x [cm]");
405 fTracks1F[23]->GetYaxis()->SetTitle(
"Entries");
408 new TH1F(
"fTracks1F[24]",
"Impactparam X Tracks with ChiSq/NDF > 1, wrong hit in first station", 100, -0.10, 0.10);
409 fTracks1F[24]->GetXaxis()->SetTitle(
"x [cm]");
410 fTracks1F[24]->GetYaxis()->SetTitle(
"Entries");
413 new TH1F(
"fTracks1F[25]",
"Impactparam x Tracks with ChiSq/NDF <= 1, wrong hit in first station", 100, -0.10, 0.10);
414 fTracks1F[25]->GetXaxis()->SetTitle(
"x [cm]");
415 fTracks1F[25]->GetYaxis()->SetTitle(
"Entries");
417 fTracks1F[26] =
new TH1F(
"fTracks1F[26]",
418 "Impactparam X Tracks with momentum >= 1 GeV, wrong "
419 "hit in first station, p Tracks",
421 fTracks1F[26]->GetXaxis()->SetTitle(
"x [cm]");
422 fTracks1F[26]->GetYaxis()->SetTitle(
"Entries");
424 fTracks1F[27] =
new TH1F(
"fTracks1F[27]",
425 "Impactparam X Tracks with momentum < 1 GeV, wrong "
426 "hit in first station, p Tracks",
428 fTracks1F[27]->GetXaxis()->SetTitle(
"x [cm]");
429 fTracks1F[27]->GetYaxis()->SetTitle(
"Entries");
431 fTracks1F[28] =
new TH1F(
"fTracks1F[28]",
432 "Impactparam X Tracks with momentum >= 1 GeV, wrong "
433 "hit in first station, n Tracks",
435 fTracks1F[28]->GetXaxis()->SetTitle(
"x [cm]");
436 fTracks1F[28]->GetYaxis()->SetTitle(
"Entries");
438 fTracks1F[29] =
new TH1F(
"fTracks1F[29]",
439 "Impactparam X Tracks with momentum < 1 GeV, wrong "
440 "hit in first station, n Tracks",
442 fTracks1F[29]->GetXaxis()->SetTitle(
"x [cm]");
443 fTracks1F[29]->GetYaxis()->SetTitle(
"Entries");
446 new TH1F(
"fTracks1F[30]",
"mc x position of correct hit - x pos of wrongly attached hit", 100, -0.01, 0.01);
447 fTracks1F[30]->GetXaxis()->SetTitle(
"x [mu m]");
448 fTracks1F[30]->GetYaxis()->SetTitle(
"Entries");
451 new TH1F(
"fTracks1F[31]",
"mc y position of correct hit - y pos of wrongly attached hit", 100, -0.01, 0.01);
452 fTracks1F[31]->GetXaxis()->SetTitle(
"y [mu m]");
453 fTracks1F[31]->GetYaxis()->SetTitle(
"Entries");
456 new TH1F(
"fTracks1F[32]",
"Resolution in x at z = z Mc Vertex, 4 mvd hits, trueOverAll == 1", 1000, -0.02, 0.02);
457 fTracks1F[32]->GetXaxis()->SetTitle(
"x [cm]");
458 fTracks1F[32]->GetYaxis()->SetTitle(
"Entries");
461 new TH1F(
"fTracks1F[33]",
"Resolution in y at z = z Mc Vertex, 4 mvd hits, trueOverAll == 1", 1000, -0.02, 0.02);
462 fTracks1F[33]->GetXaxis()->SetTitle(
"y [cm]");
463 fTracks1F[33]->GetYaxis()->SetTitle(
"Entries");
466 fTracks2F[0] =
new TH2F(
"fTracks2F[0]",
"Momentumresolution all Tracks", 200, 0, 15, 100, -0.2, 0.2);
467 fTracks2F[0]->GetXaxis()->SetTitle(
"MC-Momentum [GeV]");
468 fTracks2F[0]->GetYaxis()->SetTitle(
"MC-Momentum - Reco-Momentum [GeV]");
471 new TH2F(
"fTracks2F[1]",
"Momentumresolution correct reconstructed Tracks", 200, 0, 15, 100, -0.2, 0.2);
472 fTracks2F[1]->GetXaxis()->SetTitle(
"MC-Momentum [GeV]");
473 fTracks2F[1]->GetYaxis()->SetTitle(
"MC-Momentum - Reco-Momentum [GeV]");
476 new TH2F(
"fTracks2F[2]",
"Momentumresolution Tracks with 4 hits in the mvd", 200, 0, 15, 100, -0.2, 0.2);
477 fTracks2F[2]->GetXaxis()->SetTitle(
"MC-Momentum [GeV]");
478 fTracks2F[2]->GetYaxis()->SetTitle(
"MC-Momentum - Reco-Momentum [GeV]");
481 new TH2F(
"fTracks2F[3]",
"Momentumresolution Tracks with 4 correct hits in the mvd", 200, 0, 15, 100, -0.2, 0.2);
482 fTracks2F[3]->GetXaxis()->SetTitle(
"MC-Momentum [GeV]");
483 fTracks2F[3]->GetYaxis()->SetTitle(
"MC-Momentum - Reco-Momentum [GeV]");
485 fTracks2F[4] =
new TH2F(
"fTracks2F[4]",
"Momentumresolution correct reconstructed Tracks with 4 hits in the mvd", 200,
486 0, 15, 100, -0.2, 0.2);
487 fTracks2F[4]->GetXaxis()->SetTitle(
"MC-Momentum [GeV]");
488 fTracks2F[4]->GetYaxis()->SetTitle(
"MC-Momentum - Reco-Momentum [GeV]");
491 new TH2F(
"fTracks2F[5]",
"Momentumresolution Tracks with hit in the first mvd station", 200, 0, 15, 100, -0.2, 0.2);
492 fTracks2F[5]->GetXaxis()->SetTitle(
"MC-Momentum [GeV]");
493 fTracks2F[5]->GetYaxis()->SetTitle(
"MC-Momentum - Reco-Momentum [GeV]");
495 fTracks2F[6] =
new TH2F(
"fTracks2F[6]",
"Momentumresolution Tracks with no hit in the first mvd station", 200, 0, 15,
497 fTracks2F[6]->GetXaxis()->SetTitle(
"MC-Momentum [GeV]");
498 fTracks2F[6]->GetYaxis()->SetTitle(
"MC-Momentum - Reco-Momentum [GeV]");
501 new TH2F(
"fTracks2F[7]",
"Position of wrong attached Hit in first Mvd Station", 200, -3, 3, 200, -3, 3);
502 fTracks2F[7]->GetXaxis()->SetTitle(
"x [cm]");
503 fTracks2F[7]->GetYaxis()->SetTitle(
"y [cm]");
506 "Position of wrong attached Hit in first Mvd "
507 "Station, with good ChiSq over NDF",
508 200, -3, 3, 200, -3, 3);
509 fTracks2F[8]->GetXaxis()->SetTitle(
"x [cm]");
510 fTracks2F[8]->GetYaxis()->SetTitle(
"y [cm]");
513 "Propability to pick up the wrong hit on the first "
514 "MVD Station 2 bins cut at 1.5 GeV",
516 fTracks2F[9]->GetXaxis()->SetBinLabel(1,
"0 - 1 GeV");
517 fTracks2F[9]->GetXaxis()->SetBinLabel(2,
"1 - 1.5 GeV");
518 fTracks2F[9]->GetYaxis()->SetBinLabel(1,
"wrong Hit");
519 fTracks2F[9]->GetYaxis()->SetBinLabel(2,
"correct Hit");
521 fTracks2F[10] =
new TH2F(
"fTracks2F[10]",
"Vertexresolution of wrong attached Hit in first Mvd Station", 200, -0.04,
522 0.04, 200, -0.01, 0.01);
523 fTracks2F[10]->GetXaxis()->SetTitle(
"X at glVertex [cm]");
524 fTracks2F[10]->GetYaxis()->SetTitle(
"Y at glVertex [cm] ");
526 fTracks2F[11] =
new TH2F(
"fTracks2F[11]",
527 "Propability to pick up the wrong hit on the first "
528 "MVD Station 2 bins cut at 0.5 , 1 GeV",
530 fTracks2F[11]->GetXaxis()->SetBinLabel(1,
"0 - 0.5 GeV");
531 fTracks2F[11]->GetXaxis()->SetBinLabel(2,
"0.5 - 1 GeV");
532 fTracks2F[11]->GetXaxis()->SetBinLabel(3,
"1 - 1.5 GeV");
533 fTracks2F[11]->GetYaxis()->SetBinLabel(1,
"wrong Hit");
534 fTracks2F[11]->GetYaxis()->SetBinLabel(2,
"correct Hit");
666 Bool_t hasHitFirst, hasHitFirstTrue;
668 Float_t glX, glY, ChiSqOverNDF, glP, mcP, trueOverAll, glQP;
669 Float_t mcPosFirst[3] = {0};
672 LOG(debug) <<
" CbmMvdQa: Entries: " << nTracks <<
" StsTracks from " << nMcTracks <<
" McTracks";
675 for (Int_t itr = 0; itr < nGlobalTracks; itr++) {
694 glP = fabs(1 / glQP);
695 mcP = mcTrack->
GetP();
718 if (trueOverAll == 1.)
fTracks1F[1]->Fill(glP, 1);
723 if (trueOverAll == 1.) {
748 if (hasHitFirstTrue) {
754 if (!hasHitFirstTrue && hasHitFirst) {
760 fTracks1F[30]->Fill(mcPosFirst[0] - hitFirst[0]);
761 fTracks1F[31]->Fill(mcPosFirst[1] - hitFirst[1]);
777 if (ChiSqOverNDF > 1)
783 if (ChiSqOverNDF > 1) {
792 if (trueOverAll == 1.)
fTracks2F[1]->Fill(mcP, mcP - glP);
797 if (trueOverAll == 1.)
fTracks2F[4]->Fill(mcP, mcP - glP);
805 if (!hasHitFirstTrue && hasHitFirst) {
806 fTracks2F[7]->Fill(hitFirst[0], hitFirst[1]);
807 if (ChiSqOverNDF <= 1)
fTracks2F[8]->Fill(hitFirst[0], hitFirst[1]);
821 if (hasHitFirstTrue) {
1065 TCanvas* TrackCanvas1 =
new TCanvas();
1066 TrackCanvas1->Divide(3, 2);
1067 TrackCanvas1->cd(1);
1069 TrackCanvas1->cd(2);
1071 TrackCanvas1->cd(3);
1073 TrackCanvas1->cd(4);
1075 TrackCanvas1->cd(5);
1078 TCanvas* TrackCanvas1b =
new TCanvas();
1079 TrackCanvas1b->Divide(2, 2);
1080 TrackCanvas1b->cd(1);
1082 TrackCanvas1b->cd(2);
1084 TrackCanvas1b->cd(3);
1086 TrackCanvas1b->cd(4);
1089 TCanvas* TrackCanvas1c =
new TCanvas();
1090 TrackCanvas1c->Divide(2, 2);
1091 TrackCanvas1c->cd(1);
1093 TrackCanvas1c->cd(2);
1095 TrackCanvas1c->cd(3);
1097 TrackCanvas1c->cd(4);
1100 TCanvas* TrackCanvas1d =
new TCanvas();
1101 TrackCanvas1d->Divide(2, 2);
1102 TrackCanvas1d->cd(1);
1104 TrackCanvas1d->cd(2);
1106 TrackCanvas1d->cd(3);
1108 TrackCanvas1d->cd(4);
1111 TCanvas* TrackCanvas1e =
new TCanvas();
1112 TrackCanvas1e->Divide(2, 2);
1113 TrackCanvas1e->cd(1);
1115 TrackCanvas1e->cd(2);
1117 TrackCanvas1e->cd(3);
1119 TrackCanvas1e->cd(4);
1122 TCanvas* TrackCanvas1f =
new TCanvas();
1123 TrackCanvas1f->Divide(2, 2);
1124 TrackCanvas1f->cd(1);
1126 TrackCanvas1f->cd(2);
1128 TrackCanvas1f->cd(3);
1130 TrackCanvas1f->cd(4);
1133 TCanvas* TrackCanvas1g =
new TCanvas();
1134 TrackCanvas1g->Divide(2, 2);
1135 TrackCanvas1g->cd(1);
1137 TrackCanvas1g->cd(2);
1139 TrackCanvas1g->cd(3);
1141 TrackCanvas1g->cd(4);
1144 TCanvas* TrackCanvas1h =
new TCanvas();
1145 TrackCanvas1h->Divide(2, 2);
1146 TrackCanvas1h->cd(1);
1148 TrackCanvas1h->cd(2);
1150 TrackCanvas1h->cd(3);
1152 TrackCanvas1h->cd(4);
1155 TCanvas* TrackCanvas1i =
new TCanvas();
1156 TrackCanvas1i->Divide(2, 2);
1157 TrackCanvas1i->cd(1);
1159 TrackCanvas1i->cd(2);
1163 for (Int_t k = 0; k <
f1FSize; k++) {
1180 TCanvas* TrackCanvas2 =
new TCanvas();
1181 TrackCanvas2->Divide(3, 2);
1182 TrackCanvas2->cd(1);
1184 TrackCanvas2->cd(2);
1186 TrackCanvas2->cd(3);
1188 TrackCanvas2->cd(4);
1190 TrackCanvas2->cd(5);
1194 TCanvas* TrackCanvas2b =
new TCanvas();
1195 TrackCanvas2b->Divide(2, 2);
1196 TrackCanvas2b->cd(1);
1198 TrackCanvas2b->cd(2);
1202 TCanvas* BadTracks =
new TCanvas();
1203 BadTracks->Divide(2, 2);
1216 gStyle->SetPaintTextFormat(
"4.1f %");
1218 TCanvas* asd =
new TCanvas();
1222 TCanvas* asd2 =
new TCanvas();
1229 for (Int_t i = 0; i <
f2FSize; i++) {