54 for (
int i = 0; i < 5; i++) {
72 h_dosi_edep0[i] =
new TH1F(TString::Format(
"dosi_edep0_%d", i),
"Energy deposited [MeV]", 50000, 0., 400.);
73 h_dosi_edep1[i] =
new TH1F(TString::Format(
"dosi_edep1_%d", i),
"Energy deposited [MeV]", 50000, 0., 400.);
74 h_dosi_edep2[i] =
new TH1F(TString::Format(
"dosi_edep2_%d", i),
"Energy deposited [MeV]", 50000, 0., 400.);
75 h_dosi_edep3[i] =
new TH1F(TString::Format(
"dosi_edep3_%d", i),
"Energy deposited [MeV]", 50000, 0., 400.);
76 h_dosi_edep4[i] =
new TH1F(TString::Format(
"dosi_edep4_%d", i),
"Energy deposited [MeV]", 50000, 0., 400.);
77 h_dosi_edep5[i] =
new TH1F(TString::Format(
"dosi_edep5_%d", i),
"Energy deposited [MeV]", 50000, 0., 400.);
78 h_dosi_edep6[i] =
new TH1F(TString::Format(
"dosi_edep6_%d", i),
"Energy deposited [MeV]", 50000, 0., 400.);
79 h_dosi_edep7[i] =
new TH1F(TString::Format(
"dosi_edep7_%d", i),
"Energy deposited [MeV]", 50000, 0., 400.);
80 h_dosi_edep8[i] =
new TH1F(TString::Format(
"dosi_edep8_%d", i),
"Energy deposited [MeV]", 50000, 0., 400.);
92 h_dosi_rs_edep0[i] =
new TH2F(TString::Format(
"dosi_rs_edep0_%d", i),
"Energy deposited [MeV]", 50000, 0., 400., 12, 0., 12.);
93 h_dosi_rs_edep1[i] =
new TH2F(TString::Format(
"dosi_rs_edep1_%d", i),
"Energy deposited [MeV]", 50000, 0., 400., 12, 0., 12.);
94 h_dosi_rs_edep2[i] =
new TH2F(TString::Format(
"dosi_rs_edep2_%d", i),
"Energy deposited [MeV]", 50000, 0., 400., 12, 0., 12.);
95 h_dosi_rs_edep3[i] =
new TH2F(TString::Format(
"dosi_rs_edep3_%d", i),
"Energy deposited [MeV]", 50000, 0., 400., 12, 0., 12.);
96 h_dosi_rs_edep4[i] =
new TH2F(TString::Format(
"dosi_rs_edep4_%d", i),
"Energy deposited [MeV]", 50000, 0., 400., 12, 0., 12.);
97 h_dosi_rs_edep5[i] =
new TH2F(TString::Format(
"dosi_rs_edep5_%d", i),
"Energy deposited [MeV]", 50000, 0., 400., 12, 0., 12.);
98 h_dosi_rs_edep6[i] =
new TH2F(TString::Format(
"dosi_rs_edep6_%d", i),
"Energy deposited [MeV]", 50000, 0., 400., 12, 0., 12.);
99 h_dosi_rs_edep7[i] =
new TH2F(TString::Format(
"dosi_rs_edep7_%d", i),
"Energy deposited [MeV]", 50000, 0., 400., 12, 0., 12.);
100 h_dosi_rs_edep8[i] =
new TH2F(TString::Format(
"dosi_rs_edep8_%d", i),
"Energy deposited [MeV]", 50000, 0., 400., 12, 0., 12.);
145 int ring_section = -1;
146 const int section_ordering[12] = {1, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2};
147 for (
const auto& MetaHit : MetaHits) {
149 double sad_ssraw = MetaHit.getssraw();
151 if (sad_ssraw >= 0) ssraw = sad_ssraw / 100.;
152 else ssraw = 3000. + sad_ssraw / 100.;
154 ring_section = section_ordering[(int)((ssraw) / 250.)] - 1;
161 for (
const auto& SimHit : SimHits) {
162 const int detNB = SimHit.getCellId();
163 const double Edep = SimHit.getEnergyDep() * 1e3;
168 const float Mass = particle->getMass();
169 const float Energy = particle->getEnergy();
170 const float Kinetic = (Energy - Mass) * 1e3;
171 const int pdg = particle->getPDG();
173 if (0.005 <= Kinetic && Kinetic <= 10.0)
175 if (0.005 <= Kinetic && Kinetic <= 10.0 && (fabs(pdg) ==
Const::electron.getPDGCode()))
177 if (0.1 <= Kinetic && Kinetic <= 10.0 && (fabs(pdg) ==
Const::electron.getPDGCode()))
179 if (0.001 <= Kinetic && Kinetic <= 0.050)
183 if (pdg ==
Const::neutron.getPDGCode() && (0.001 <= Kinetic && Kinetic <= 10.0))
188 if (0.005 <= Kinetic && Kinetic <= 10.0)
190 if (0.005 <= Kinetic && Kinetic <= 10.0 && (fabs(pdg) ==
Const::electron.getPDGCode()))
192 if (0.1 <= Kinetic && Kinetic <= 10.0 && (fabs(pdg) ==
Const::electron.getPDGCode()))
194 if (0.001 <= Kinetic && Kinetic <= 0.050)
198 if (pdg ==
Const::neutron.getPDGCode() && (0.001 <= Kinetic && Kinetic <= 10.0))
A Class to store the Monte Carlo particle information.