11 #include "TClonesArray.h"
29 #include "FairMCPoint.h"
30 #include "FairTrackParam.h"
37 #include <boost/assign/list_of.hpp>
43 using boost::assign::list_of;
46 : FairTask(
"CbmRichUrqmdTest")
53 , fRichRingMatches(NULL)
54 , fRichProjections(NULL)
59 , fNofHitsInRingMap() {}
64 cout <<
"CbmRichUrqmdTest::Init" << endl;
65 FairRootManager* ioman = FairRootManager::Instance();
67 Fatal(
"CbmRichUrqmdTest::Init",
"RootManager not instantised!");
72 if (mcManager ==
nullptr)
73 LOG(fatal) <<
"CbmRichUrqmdTest::Init() NULL MCDataManager.";
76 if (NULL ==
fMcTracks) { LOG(fatal) <<
"CbmRichUrqmdTest::Init No MCTrack!"; }
80 LOG(fatal) <<
"CbmRichUrqmdTest::Init No RichPoint!";
83 fRichHits = (TClonesArray*) ioman->GetObject(
"RichHit");
84 if (NULL ==
fRichHits) { LOG(fatal) <<
"CbmRichUrqmdTest::Init No RichHit!"; }
86 fRichRings = (TClonesArray*) ioman->GetObject(
"RichRing");
88 LOG(fatal) <<
"CbmRichUrqmdTest::Init No RichRing!";
96 LOG(fatal) <<
"CbmRichUrqmdTest::Init No RichRingMatch!";
101 LOG(fatal) <<
"CbmRichUrqmdTest::Init No fRichProjection !";
106 LOG(fatal) <<
"CbmRichUrqmdTest::Init No MCEventList!";
117 cout <<
"CbmRichUrqmdTest, event No. " <<
fEventNum << endl;
131 "fh_vertex_z",
"fh_vertex_z;z [cm];# vertices per event", 350, -1., 350);
133 "fh_vertex_z_sts;z [cm];# vertices per event",
138 "fh_vertex_xy;x [cm];y [cm];# vertices per event",
146 "fh_vertex_zy;z [cm];y [cm];# vertices per event",
154 "fh_vertex_zx;z [cm];x [cm];# vertices per event",
162 "fh_vertex_xy_z100_180;x [cm];y [cm];# vertices per event",
170 "fh_vertex_xy_z180_370;x [cm];y [cm];# vertices per event",
178 "fh_vertex_xy_z180_230;x [cm];y [cm];# vertices per event",
187 "fh_vertex_xy_z5;x [cm];y [cm];# vertices per event",
195 "fh_vertex_xy_z5_15;x [cm];y [cm];# vertices per event",
203 "fh_vertex_xy_z15_25;x [cm];y [cm];# vertices per event",
211 "fh_vertex_xy_z25_35;x [cm];y [cm];# vertices per event",
219 "fh_vertex_xy_z35_45;x [cm];y [cm];# vertices per event",
227 "fh_vertex_xy_z45_55;x [cm];y [cm];# vertices per event",
235 "fh_vertex_xy_z55_65;x [cm];y [cm];# vertices per event",
243 "fh_vertex_xy_z65_75;x [cm];y [cm];# vertices per event",
251 "fh_vertex_xy_z75_85;x [cm];y [cm];# vertices per event",
259 "fh_vertex_xy_z85_95;x [cm];y [cm];# vertices per event",
267 "fh_vertex_xy_z95_105;x [cm];y [cm];# vertices per event",
276 "fh_nof_rings_1hit;# detected particles/event;Yield",
281 "fh_nof_rings_7hits;# detected particles/event;Yield",
286 "fh_nof_rings_prim_1hit;# detected particles/event;Yield",
291 "fh_nof_rings_prim_7hits;# detected particles/event;Yield",
296 "fh_nof_rings_target_1hit",
297 "fh_nof_rings_target_1hit;# detected particles/event;Yield",
302 "fh_nof_rings_target_7hits",
303 "fh_nof_rings_target_7hits;# detected particles/event;Yield",
309 "fh_secel_mom",
"fh_secel_mom;p [GeV/c];Number per event", 100, 0., 20);
311 "fh_gamma_target_mom;p [GeV/c];Number per event",
316 "fh_gamma_nontarget_mom;p [GeV/c];Number per event",
321 "fh_pi_mom",
"fh_pi_mom;p [GeV/c];Number per event", 100, 0., 20);
323 "fh_kaon_mom",
"fh_kaon_mom;p [GeV/c];Number per event", 100, 0., 20);
325 "fh_mu_mom",
"fh_mu_mom;p [GeV/c];Number per event", 100, 0., 20);
328 "fh_nof_points_per_event;Particle;# MC points per event",
333 "fh_nof_hits_per_event;# hits per event;Yield",
338 "fh_nof_hits_per_pmt;# hits per PMT;% of total",
347 TH2D* fh_hitrate_xy =
new TH2D(
"fh_hitrate_xy",
348 "fh_hitrate_xy;X [cm];Y [cm];# hits/pixel/s",
353 fHM->
Add(
"fh_hitrate_xy", fh_hitrate_xy);
355 TH2D* fh_hits_xy =
new TH2D(
"fh_hits_xy",
356 "fh_hits_xy;X [cm];Y [cm];# hits/PMT/event",
361 fHM->
Add(
"fh_hits_xy", fh_hits_xy);
364 new TH2D(
"fh_points_xy",
365 "fh_points_xy;X [cm];Y [cm];# MC points/PMT/event",
370 fHM->
Add(
"fh_points_xy", fh_points_xy);
372 TH2D* fh_points_xy_pions =
373 new TH2D(
"fh_points_xy_pions",
374 "fh_points_xy_pions;X [cm];Y [cm];# MC points/PMT/event",
379 fHM->
Add(
"fh_points_xy_pions", fh_points_xy_pions);
381 TH2D* fh_points_xy_gamma_target =
382 new TH2D(
"fh_points_xy_gamma_target",
383 "fh_points_xy_gamma_target;X [cm];Y [cm];# MC points/PMT/event",
388 fHM->
Add(
"fh_points_xy_gamma_target", fh_points_xy_gamma_target);
390 TH2D* fh_points_xy_gamma_nontarget =
391 new TH2D(
"fh_points_xy_gamma_nontarget",
392 "fh_points_xy_gamma_nontarget;X [cm];Y [cm];# MC points/PMT/event",
397 fHM->
Add(
"fh_points_xy_gamma_nontarget", fh_points_xy_gamma_nontarget);
399 TH2D* fh_skipped_pmt_10_xy =
400 new TH2D(
"fh_skipped_pmt_10_xy",
401 "fh_skipped_pmt_10_xy;X [cm];Y [cm];# skipped PMTs (>10 hits) [%]",
406 fHM->
Add(
"fh_skipped_pmt_10_xy", fh_skipped_pmt_10_xy);
408 TH2D* fh_skipped_pmt_20_xy =
409 new TH2D(
"fh_skipped_pmt_20_xy",
410 "fh_skipped_pmt_20_xy;X [cm];Y [cm];# skipped PMTs (>20 hits) [%]",
415 fHM->
Add(
"fh_skipped_pmt_20_xy", fh_skipped_pmt_20_xy);
417 TH2D* fh_skipped_pmt_30_xy =
418 new TH2D(
"fh_skipped_pmt_30_xy",
419 "fh_skipped_pmt_30_xy;X [cm];Y [cm];# skipped PMTs (>30 hits) [%]",
424 fHM->
Add(
"fh_skipped_pmt_30_xy", fh_skipped_pmt_30_xy);
427 "fh_nof_proj_per_event;# tracks per event;Yield",
432 "fh_proj_xy;X [cm];Y [cm];# tracks/cm^{2}/event",
443 Int_t nofRichHits =
fRichHits->GetEntriesFast();
444 for (Int_t iHit = 0; iHit < nofRichHits; iHit++) {
446 if (NULL == hit)
continue;
448 if (digiIndex < 0)
continue;
450 if (NULL == digi)
continue;
453 if (NULL == digiMatch)
continue;
456 vector<pair<Int_t, Int_t>> motherIds =
459 for (UInt_t
i = 0;
i < motherIds.size();
i++) {
467 Int_t nofRings =
fRichRings->GetEntriesFast();
468 int nRings1hit = 0, nRings7hits = 0;
469 int nRingsPrim1hit = 0, nRingsPrim7hits = 0;
470 int nRingsTarget1hit = 0, nRingsTarget7hits = 0;
471 for (Int_t iR = 0; iR < nofRings; iR++) {
473 if (NULL == ring)
continue;
476 if (NULL == ringMatch)
continue;
482 if (NULL == mcTrack)
continue;
484 Int_t pdg = TMath::Abs(mcTrack->
GetPdgCode());
485 double mom = mcTrack->
GetP();
488 double dZ = vert.Z();
490 if (motherId == -1 && pdg == 11)
494 if (nofHits >= 1) nRings1hit++;
497 if (motherId == -1 && nofHits >= 1) nRingsPrim1hit++;
498 if (motherId == -1 && nofHits >=
fMinNofHits) nRingsPrim7hits++;
500 if (dZ < 0.1 && nofHits >= 1) nRingsTarget1hit++;
501 if (dZ < 0.1 && nofHits >=
fMinNofHits) nRingsTarget7hits++;
504 if (motherId != -1) {
508 if (NULL != mother) motherPdg = mother->
GetPdgCode();
509 if (motherId != -1 && pdg == 11 && motherPdg != 22)
510 fHM->
H1(
"fh_secel_mom")->Fill(mom);
512 if (motherId != -1 && pdg == 11 && motherPdg == 22) {
514 fHM->
H1(
"fh_gamma_target_mom")->Fill(mom);
516 fHM->
H1(
"fh_gamma_nontarget_mom")->Fill(mom);
520 if (pdg == 211)
fHM->
H1(
"fh_pi_mom")->Fill(mom);
521 if (pdg == 321)
fHM->
H1(
"fh_kaon_mom")->Fill(mom);
522 if (pdg == 13)
fHM->
H1(
"fh_mu_mom")->Fill(mom);
525 fHM->
H1(
"fh_nof_rings_1hit")->Fill(nRings1hit);
526 fHM->
H1(
"fh_nof_rings_7hits")->Fill(nRings7hits);
528 fHM->
H1(
"fh_nof_rings_prim_1hit")->Fill(nRingsPrim1hit);
529 fHM->
H1(
"fh_nof_rings_prim_7hits")->Fill(nRingsPrim7hits);
531 fHM->
H1(
"fh_nof_rings_target_1hit")->Fill(nRingsTarget1hit);
532 fHM->
H1(
"fh_nof_rings_target_7hits")->Fill(nRingsTarget7hits);
536 int nofHits =
fRichHits->GetEntriesFast();
537 fHM->
H1(
"fh_nof_hits_per_event")->Fill(nofHits);
538 map<Int_t, Int_t> digisPerPmtMap;
539 for (
int iH = 0; iH < nofHits; iH++) {
541 if (
nullptr == hit)
continue;
547 if (
nullptr == richDigi)
continue;
551 if (
nullptr == pixelData)
continue;
552 Int_t pmtId = pixelData->
fPmtId;
553 digisPerPmtMap[pmtId]++;
556 for (
auto const& it : digisPerPmtMap) {
557 Int_t pmtId = it.first;
558 Int_t nofDigis = it.second;
561 TVector3 inPos(pmtData->
fX, pmtData->
fY, pmtData->
fZ);
565 fHM->
H2(
"fh_skipped_pmt_10_xy")->Fill(outPos.X(), outPos.Y());
567 fHM->
H2(
"fh_skipped_pmt_20_xy")->Fill(outPos.X(), outPos.Y());
569 fHM->
H2(
"fh_skipped_pmt_30_xy")->Fill(outPos.X(), outPos.Y());
573 for (Int_t pmtId : allPmtIds) {
574 fHM->
H1(
"fh_nof_hits_per_pmt")->Fill(digisPerPmtMap[pmtId]);
578 for (Int_t iE = 0; iE < nofEvents; iE++) {
582 for (
int i = 0;
i < nofPoints;
i++) {
585 if (NULL == point)
continue;
586 fHM->
H1(
"fh_nof_points_per_event")->Fill(1);
588 Int_t mcPhotonTrackId = point->GetTrackID();
589 if (mcPhotonTrackId < 0)
continue;
592 if (NULL == mcPhotonTrack)
continue;
593 Int_t motherPhotonId = mcPhotonTrack->
GetMotherId();
594 if (motherPhotonId < 0)
continue;
597 if (NULL == mcTrack)
continue;
600 Int_t pdg = TMath::Abs(mcTrack->
GetPdgCode());
603 double dZ = vert.Z();
605 if (motherId == -1 && pdg == 11)
608 if (motherId != -1) {
612 if (NULL != mother) motherPdg = mother->
GetPdgCode();
613 if (motherId != -1 && pdg == 11 && motherPdg != 22)
614 fHM->
H1(
"fh_nof_points_per_event")->Fill(2);
616 if (motherId != -1 && pdg == 11 && motherPdg == 22) {
618 fHM->
H1(
"fh_nof_points_per_event")->Fill(3);
620 fHM->
H1(
"fh_nof_points_per_event")->Fill(4);
624 if (pdg == 211)
fHM->
H1(
"fh_nof_points_per_event")->Fill(5);
625 if (pdg == 321)
fHM->
H1(
"fh_nof_points_per_event")->Fill(6);
626 if (pdg == 13)
fHM->
H1(
"fh_nof_points_per_event")->Fill(7);
633 for (Int_t iE = 0; iE < nofEvents; iE++) {
637 for (
int i = 0;
i < nofPoints;
i++) {
640 if (NULL == point)
continue;
642 Int_t iMCTrack = point->GetTrackID();
645 if (NULL == track)
continue;
648 if (iMother == -1)
continue;
652 if (NULL == track2)
continue;
655 TVector3 inPos(point->GetX(), point->GetY(), point->GetZ());
659 fHM->
H2(
"fh_points_xy")->Fill(outPos.X(), outPos.Y());
660 if (motherId != -1) {
664 if (NULL != mother) motherPdg = mother->
GetPdgCode();
667 if (motherId != -1 && pdg == 11 && motherPdg == 22) {
668 if (vert.Z() < 0.1) {
669 fHM->
H2(
"fh_points_xy_gamma_target")->Fill(outPos.X(), outPos.Y());
671 fHM->
H2(
"fh_points_xy_gamma_nontarget")
672 ->Fill(outPos.X(), outPos.Y());
677 fHM->
H2(
"fh_points_xy_pions")->Fill(outPos.X(), outPos.Y());
686 for (
int i = 0;
i < nofProj;
i++) {
688 if (NULL == proj)
continue;
689 fHM->
H2(
"fh_proj_xy")->Fill(proj->GetX(), proj->GetY());
690 if (proj->GetX() != 0 && proj->GetY() != 0) nofGoodProj++;
692 fHM->
H1(
"fh_nof_proj_per_event")->Fill(nofGoodProj);
697 for (Int_t iE = 0; iE < nofEvents; iE++) {
702 for (
int i = 0;
i < nMcTracks;
i++) {
704 pair<Int_t, Int_t> val = std::make_pair(eventId,
i);
710 fHM->
H1(
"fh_vertex_z")->Fill(
v.Z());
711 fHM->
H1(
"fh_vertex_z_sts")->Fill(
v.Z());
712 fHM->
H2(
"fh_vertex_xy")->Fill(
v.X(),
v.Y());
713 fHM->
H2(
"fh_vertex_zy")->Fill(
v.Z(),
v.Y());
714 fHM->
H2(
"fh_vertex_zx")->Fill(
v.Z(),
v.X());
715 if (
v.Z() >= 100 &&
v.Z() <= 180)
716 fHM->
H2(
"fh_vertex_xy_z100_180")->Fill(
v.X(),
v.Y());
717 if (
v.Z() >= 180 &&
v.Z() <= 370)
718 fHM->
H2(
"fh_vertex_xy_z180_370")->Fill(
v.X(),
v.Y());
719 if (
v.Z() >= 180 &&
v.Z() <= 230)
720 fHM->
H2(
"fh_vertex_xy_z180_230")->Fill(
v.X(),
v.Y());
722 if (
v.Z() <= 5)
fHM->
H2(
"fh_vertex_xy_z5")->Fill(
v.X(),
v.Y());
723 if (
v.Z() > 5 &&
v.Z() <= 15)
724 fHM->
H2(
"fh_vertex_xy_z5_15")->Fill(
v.X(),
v.Y());
725 if (
v.Z() > 15 &&
v.Z() <= 25)
726 fHM->
H2(
"fh_vertex_xy_z15_25")->Fill(
v.X(),
v.Y());
727 if (
v.Z() > 25 &&
v.Z() <= 35)
728 fHM->
H2(
"fh_vertex_xy_z25_35")->Fill(
v.X(),
v.Y());
729 if (
v.Z() > 35 &&
v.Z() <= 45)
730 fHM->
H2(
"fh_vertex_xy_z35_45")->Fill(
v.X(),
v.Y());
731 if (
v.Z() > 45 &&
v.Z() <= 55)
732 fHM->
H2(
"fh_vertex_xy_z45_55")->Fill(
v.X(),
v.Y());
733 if (
v.Z() > 55 &&
v.Z() <= 65)
734 fHM->
H2(
"fh_vertex_xy_z55_65")->Fill(
v.X(),
v.Y());
735 if (
v.Z() > 65 &&
v.Z() <= 75)
736 fHM->
H2(
"fh_vertex_xy_z65_75")->Fill(
v.X(),
v.Y());
737 if (
v.Z() > 75 &&
v.Z() <= 85)
738 fHM->
H2(
"fh_vertex_xy_z75_85")->Fill(
v.X(),
v.Y());
739 if (
v.Z() > 85 &&
v.Z() <= 95)
740 fHM->
H2(
"fh_vertex_xy_z85_95")->Fill(
v.X(),
v.Y());
741 if (
v.Z() > 95 &&
v.Z() <= 105)
742 fHM->
H2(
"fh_vertex_xy_z95_105")->Fill(
v.X(),
v.Y());
754 fHM->
CreateCanvas(
"rich_urqmd_vertex_z",
"rich_urqmd_vertex_z", 800, 800);
761 "rich_urqmd_vertex_z_sts",
"rich_urqmd_vertex_z_sts", 800, 800);
771 "rich_urqmd_vertex_xyz",
"rich_urqmd_vertex_xyz", 1500, 500);
782 gStyle->SetOptTitle(1);
798 "rich_urqmd_vertex_sts_xyz",
"rich_urqmd_vertex_sts_xyz", 1600, 1200);
834 gStyle->SetOptTitle(0);
840 "rich_urqmd_vertex_xy_z100_180",
849 "rich_urqmd_vertex_xy_z180_370",
858 "rich_urqmd_vertex_xy_z180_230",
867 "rich_urqmd_nof_points_per_event",
871 string labels[7] = {
"all",
872 "e^{#pm}_{sec} other",
873 "e^{#pm}_{target} from #gamma",
874 "e^{#pm}_{not target} from #gamma",
878 for (Int_t
i = 1;
i <= 7;
i++) {
879 fHM->
H1(
"fh_nof_points_per_event")
881 ->SetBinLabel(
i, labels[
i - 1].c_str());
883 fHM->
H1(
"fh_nof_points_per_event")->GetXaxis()->SetLabelSize(0.05);
889 fHM->
CreateCanvas(
"rich_urqmd_nof_rings",
"rich_urqmd_nof_rings", 800, 800);
890 fHM->
H1(
"fh_nof_rings_1hit")
891 ->Scale(1. /
fHM->
H1(
"fh_nof_rings_1hit")->Integral());
892 fHM->
H1(
"fh_nof_rings_7hits")
893 ->Scale(1. /
fHM->
H1(
"fh_nof_rings_7hits")->Integral());
894 stringstream ss1, ss2;
895 ss1 <<
"At least 1 hit detected ("
896 <<
fHM->
H1(
"fh_nof_rings_1hit")->GetMean() <<
")";
897 ss2 <<
"At least 7 hits detected ("
898 <<
fHM->
H1(
"fh_nof_rings_7hits")->GetMean() <<
")";
900 {ss1.str(), ss2.str()},
913 "rich_urqmd_nof_rings_prim",
"rich_urqmd_nof_rings_prim", 800, 800);
914 fHM->
H1(
"fh_nof_rings_prim_1hit")
915 ->Scale(1. /
fHM->
H1(
"fh_nof_rings_prim_1hit")->Integral());
916 fHM->
H1(
"fh_nof_rings_prim_7hits")
917 ->Scale(1. /
fHM->
H1(
"fh_nof_rings_prim_7hits")->Integral());
918 stringstream ss1, ss2;
919 ss1 <<
"At least 1 hit detected ("
920 <<
fHM->
H1(
"fh_nof_rings_prim_1hit")->GetMean() <<
")";
921 ss2 <<
"At least 7 hits detected ("
922 <<
fHM->
H1(
"fh_nof_rings_prim_7hits")->GetMean() <<
")";
924 {
fHM->
H1(
"fh_nof_rings_prim_1hit"),
fHM->
H1(
"fh_nof_rings_prim_7hits")},
925 {ss1.str(), ss2.str()},
938 "rich_urqmd_nof_rings_target",
"rich_urqmd_nof_rings_target", 800, 800);
939 fHM->
H1(
"fh_nof_rings_target_1hit")
940 ->Scale(1. /
fHM->
H1(
"fh_nof_rings_target_1hit")->Integral());
941 fHM->
H1(
"fh_nof_rings_target_7hits")
942 ->Scale(1. /
fHM->
H1(
"fh_nof_rings_target_7hits")->Integral());
943 stringstream ss1, ss2;
944 ss1 <<
"At least 1 hit detected ("
945 <<
fHM->
H1(
"fh_nof_rings_target_1hit")->GetMean() <<
")";
946 ss2 <<
"At least 7 hits detected ("
947 <<
fHM->
H1(
"fh_nof_rings_target_7hits")->GetMean() <<
")";
949 fHM->
H1(
"fh_nof_rings_target_7hits")},
950 {ss1.str(), ss2.str()},
963 "rich_urqmd_sources_mom",
"rich_urqmd_sources_mom", 800, 800);
970 stringstream ss1, ss2, ss3, ss4, ss5, ss6;
971 ss1 <<
"e^{#pm}_{target} from #gamma ("
972 <<
fHM->
H1(
"fh_gamma_target_mom")->GetEntries() /
fEventNum <<
")";
973 ss2 <<
"e^{#pm}_{not target} from #gamma ("
974 <<
fHM->
H1(
"fh_gamma_nontarget_mom")->GetEntries() /
fEventNum <<
")";
975 ss3 <<
"e^{#pm}_{sec} other ("
977 ss4 <<
"#pi^{#pm} (" <<
fHM->
H1(
"fh_pi_mom")->GetEntries() /
fEventNum
979 ss5 <<
"K^{#pm} (" <<
fHM->
H1(
"fh_kaon_mom")->GetEntries() /
fEventNum
981 ss6 <<
"#mu^{#pm} (" <<
fHM->
H1(
"fh_mu_mom")->GetEntries() /
fEventNum
984 {
fHM->
H1(
"fh_gamma_target_mom"),
985 fHM->
H1(
"fh_gamma_nontarget_mom"),
986 fHM->
H1(
"fh_secel_mom"),
987 fHM->
H1(
"fh_pi_mom"),
988 fHM->
H1(
"fh_kaon_mom"),
989 fHM->
H1(
"fh_mu_mom")},
990 list_of(ss1.str())(ss2.str())(ss3.str())(ss4.str())(ss5.str())(ss6.str()),
1003 fHM->
CreateCanvas(
"rich_urqmd_hits_xy",
"rich_urqmd_hits_xy", 800, 800);
1004 TH2D* clone = (TH2D*)
fHM->
H2(
"fh_hits_xy")->Clone();
1011 "rich_urqmd_occupancy_xy",
"rich_urqmd_occupancy_xy", 800, 800);
1012 TH2D* clone = (TH2D*)
fHM->
H2(
"fh_hits_xy")->Clone();
1013 clone->GetZaxis()->SetTitle(
"Occupancy:# hits/PMT/ev./64 [%]");
1020 "rich_urqmd_skipped_pmt_10_xy",
"rich_urqmd_skipped_pmt_10_xy", 800, 800);
1027 "rich_urqmd_skipped_pmt_20_xy",
"rich_urqmd_skipped_pmt_20_xy", 800, 800);
1034 "rich_urqmd_skipped_pmt_30_xy",
"rich_urqmd_skipped_pmt_30_xy", 800, 800);
1041 "rich_urqmd_nof_hits_per_pmt",
"rich_urqmd_nof_hits_per_pmt", 800, 800);
1042 fHM->
H1(
"fh_nof_hits_per_pmt")
1043 ->Scale(100. /
fHM->
H1(
"fh_nof_hits_per_pmt")->Integral());
1049 "rich_urqmd_points_xy",
"rich_urqmd_points_xy", 800, 800);
1056 "rich_urqmd_points_xy_pions",
"rich_urqmd_points_xy_pions", 800, 800);
1063 "rich_urqmd_points_xy_gamma_target",
1071 TCanvas* c =
fHM->
CreateCanvas(
"rich_urqmd_points_xy_gamma_nontarget",
1072 "rich_urqmd_points_xy_gamma_nontarget",
1081 "rich_urqmd_nof_hits_per_event",
1084 fHM->
H1(
"fh_nof_hits_per_event")
1085 ->Scale(1. /
fHM->
H1(
"fh_nof_hits_per_event")->Integral());
1087 cout <<
"Mean number of hits per event = "
1088 <<
fHM->
H1(
"fh_nof_hits_per_event")->GetMean() << endl;
1093 "rich_urqmd_hitrate_xy",
"rich_urqmd_hitrate_xy", 800, 800);
1101 fHM->
CreateCanvas(
"rich_urqmd_proj_xy",
"rich_urqmd_proj_xy", 800, 800);
1108 "rich_urqmd_nof_proj_per_event",
1113 cout <<
"Number of track projections per event = "
1114 <<
fHM->
H1(
"fh_nof_proj_per_event")->GetMean() << endl;
1121 TDirectory* oldir = gDirectory;
1122 TFile* outFile = FairRootManager::Instance()->GetOutFile();
1123 if (outFile != NULL) {
1127 gDirectory->cd(oldir->GetPath());