4 template <
class T>
const T&
max (
const T&
a,
const T&
b ) {
11 std::shared_ptr<TestHistoMgr> mgr,
23 std::cout <<
"=== booking user histos ===" << std::endl;
36 hmgr->addHistoProf1(
new TProfile(
"10",
"MB prof Eta;#eta;x/X_{0} ", 250, -5., 5. ) );
37 hmgr->addHisto1(
new TH1F(
"11",
"Eta " , 250, -5., 5. ) );
38 hmgr->addHistoProf1(
new TProfile(
"20",
"MB prof Phi;#varphi [rad];x/X_{0} ", 180, -3.2, 3.2 ) );
39 hmgr->addHisto1(
new TH1F(
"21",
"Phi " , 180, -3.2, 3.2 ) );
40 hmgr->addHistoProf2(
new TProfile2D(
"30",
"MB prof Eta Phi;#eta;#varphi;x/X_{0} ", 250, -5., 5., 180, -3.2, 3.2) );
41 hmgr->addHisto2(
new TH2F(
"31",
"Eta vs Phi " , 250, -5., 5., 180, -3.2, 3.2 ) );
42 hmgr->addHistoProf1(
new TProfile(
"40",
"MB prof R;R [mm];x/X_{0} ", 300, 0., 3000. ) );
43 hmgr->addHisto1(
new TH1F(
"41",
"R " , 300, 0., 3000. ) );
44 hmgr->addHistoProf2(
new TProfile2D(
"50",
"MB prof sum R z;z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
45 hmgr->addHisto2(
new TH2F(
"999",
"Tot track length for MB", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
46 hmgr->addHisto2(
new TH2F(
"51",
"R vs z " , nzbin, zMin, zMax, nrbin, rMin, rMax ) );
47 hmgr->addHistoProf2(
new TProfile2D(
"52",
"MB ortho prof sum R z;z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
48 hmgr->addHisto2(
new TH2F(
"60",
"MB prof local R z;z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
49 hmgr->addHistoProf2(
new TProfile2D(
"70",
"MB prof local R z;z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
50 hmgr->addHistoProf2(
new TProfile2D(
"72",
"MB ortho prof local R z;z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
53 hmgr->addHistoProf1(
new TProfile(
"110",
"MB prof Eta [Copper];#eta;x/X_{0}", 250, -5.0, 5.0 ) );
54 hmgr->addHistoProf1(
new TProfile(
"120",
"MB prof Phi [Copper];#varphi [rad];x/X_{0}", 180, -3.2, 3.2 ) );
55 hmgr->addHistoProf2(
new TProfile2D(
"130",
"MB prof Eta Phi [Copper];#eta;#varphi;x/X_{0}", 250, -5., 5., 180, -3.2, 3.2 ) );
56 hmgr->addHistoProf1(
new TProfile(
"140",
"MB prof R [Copper];R [mm];x/X_{0}", 300, 0., 3000. ) );
57 hmgr->addHistoProf2(
new TProfile2D(
"150",
"MB prof sum R z [Copper];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
58 hmgr->addHistoProf2(
new TProfile2D(
"152",
"MB ortho prof sum R z [Copper];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
59 hmgr->addHisto2(
new TH2F(
"160",
"MB prof local R z [Copper];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
60 hmgr->addHistoProf2(
new TProfile2D(
"170",
"MB prof local R z [Copper];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
61 hmgr->addHistoProf2(
new TProfile2D(
"172",
"MB ortho prof local R z [Copper];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
64 hmgr->addHistoProf1(
new TProfile(
"210",
"MB prof Eta [Scintillator];#eta;x/X_{0}", 250, -5.0, 5.0 ) );
65 hmgr->addHistoProf1(
new TProfile(
"220",
"MB prof Phi [Scintillator];#varphi [rad];x/X_{0}", 180, -3.2, 3.2 ) );
66 hmgr->addHistoProf2(
new TProfile2D(
"230",
"MB prof Eta Phi [Scintillator];#eta;#varphi;x/X_{0}", 250, -5., 5., 180, -3.2, 3.2 ) );
67 hmgr->addHistoProf1(
new TProfile(
"240",
"MB prof R [Scintillator];R [mm];x/X_{0}", 300, 0., 3000. ) );
68 hmgr->addHistoProf2(
new TProfile2D(
"250",
"MB prof sum R z [Scintillator];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
69 hmgr->addHistoProf2(
new TProfile2D(
"252",
"MB ortho prof sum R z [Scintillator];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
70 hmgr->addHisto2(
new TH2F(
"260",
"MB prof local R z [Scintillator];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
71 hmgr->addHistoProf2(
new TProfile2D(
"270",
"MB prof local R z [Scintillator];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
72 hmgr->addHistoProf2(
new TProfile2D(
"272",
"MB ortho prof local R z [Scintillator];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
75 hmgr->addHistoProf1(
new TProfile(
"310",
"MB prof Eta [Cables];#eta;x/X_{0}", 250, -5.0, 5.0 ) );
76 hmgr->addHistoProf1(
new TProfile(
"320",
"MB prof Phi [Cables];#varphi [rad];x/X_{0}", 180, -3.2, 3.2 ) );
77 hmgr->addHistoProf2(
new TProfile2D(
"330",
"MB prof Eta Phi [Cables];#eta;#varphi;x/X_{0}", 250, -5., 5., 180, -3.2, 3.2 ) );
78 hmgr->addHistoProf1(
new TProfile(
"340",
"MB prof R [Cables];R [mm];x/X_{0}", 300, 0., 3000. ) );
79 hmgr->addHistoProf2(
new TProfile2D(
"350",
"MB prof sum R z [Cables];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
80 hmgr->addHistoProf2(
new TProfile2D(
"352",
"MB ortho prof sum R z [Cables];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
81 hmgr->addHisto2(
new TH2F(
"360",
"MB prof local R z [Cables];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
82 hmgr->addHistoProf2(
new TProfile2D(
"370",
"MB prof local R z [Cables];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
83 hmgr->addHistoProf2(
new TProfile2D(
"372",
"MB ortho prof local R z [Cables];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
86 hmgr->addHistoProf1(
new TProfile(
"410",
"MB prof Eta [M_NEMA_FR4_plate];#eta;x/X_{0}", 250, -5.0, 5.0 ) );
87 hmgr->addHistoProf1(
new TProfile(
"420",
"MB prof Phi [M_NEMA_FR4_plate];#varphi [rad];x/X_{0}", 180, -3.2, 3.2 ) );
88 hmgr->addHistoProf2(
new TProfile2D(
"430",
"MB prof Eta Phi [M_NEMA_FR4_plate];#eta;#varphi;x/X_{0}", 250, -5., 5., 180, -3.2, 3.2 ) );
89 hmgr->addHistoProf1(
new TProfile(
"440",
"MB prof R [M_NEMA_FR4_plate];R [mm];x/X_{0}", 300, 0., 3000. ) );
90 hmgr->addHistoProf2(
new TProfile2D(
"450",
"MB prof sum R z [M_NEMA_FR4_plate];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
91 hmgr->addHistoProf2(
new TProfile2D(
"452",
"MB ortho prof sum R z [M_NEMA_FR4_plate];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
92 hmgr->addHisto2(
new TH2F(
"460",
"MB prof local R z [M_NEMA_FR4_plate];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
93 hmgr->addHistoProf2(
new TProfile2D(
"470",
"MB prof local R z [M_NEMA_FR4_plate];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
94 hmgr->addHistoProf2(
new TProfile2D(
"472",
"MB ortho prof local R z [M_NEMA_FR4_plate];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
97 hmgr->addHistoProf1(
new TProfile(
"510",
"MB prof Eta [Silicon];#eta;x/X_{0}", 250, -5.0, 5.0 ) );
98 hmgr->addHistoProf1(
new TProfile(
"520",
"MB prof Phi [Silicon];#varphi [rad];x/X_{0}", 180, -3.2, 3.2 ) );
99 hmgr->addHistoProf2(
new TProfile2D(
"530",
"MB prof Eta Phi [Silicon];#eta;#varphi;x/X_{0}", 250, -5., 5., 180, -3.2, 3.2 ) );
100 hmgr->addHistoProf1(
new TProfile(
"540",
"MB prof R [Silicon];R [mm];x/X_{0}", 300, 0., 3000. ) );
101 hmgr->addHistoProf2(
new TProfile2D(
"550",
"MB prof sum R z [Silicon];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
102 hmgr->addHistoProf2(
new TProfile2D(
"552",
"MB ortho prof sum R z [Silicon];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
103 hmgr->addHisto2(
new TH2F(
"560",
"MB prof local R z [Silicon];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
104 hmgr->addHistoProf2(
new TProfile2D(
"570",
"MB prof local R z [Silicon];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
105 hmgr->addHistoProf2(
new TProfile2D(
"572",
"MB ortho prof local R z [Silicon];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
108 hmgr->addHistoProf1(
new TProfile(
"610",
"MB prof Eta [Other];#eta;x/X_{0}", 250, -5.0, 5.0 ) );
109 hmgr->addHistoProf1(
new TProfile(
"620",
"MB prof Phi [Other];#varphi [rad];x/X_{0}", 180, -3.2, 3.2 ) );
110 hmgr->addHistoProf2(
new TProfile2D(
"630",
"MB prof Eta Phi [Other];#eta;#varphi;x/X_{0}", 250, -5., 5., 180, -3.2, 3.2 ) );
111 hmgr->addHistoProf1(
new TProfile(
"640",
"MB prof R [Other];R [mm];x/X_{0}", 300, 0., 3000. ) );
112 hmgr->addHistoProf2(
new TProfile2D(
"650",
"MB prof sum R z [Other];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
113 hmgr->addHistoProf2(
new TProfile2D(
"652",
"MB ortho prof sum R z [Other];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
114 hmgr->addHisto2(
new TH2F(
"660",
"MB prof local R z [Other];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
115 hmgr->addHistoProf2(
new TProfile2D(
"670",
"MB prof local R z [Other];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
116 hmgr->addHistoProf2(
new TProfile2D(
"672",
"MB ortho prof local R z [Other];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
119 hmgr->addHistoProf1(
new TProfile(
"710",
"MB prof Eta [Air];#eta;x/X_{0}", 250, -5.0, 5.0 ) );
120 hmgr->addHistoProf1(
new TProfile(
"720",
"MB prof Phi [Air];#varphi [rad];x/X_{0}", 180, -3.2, 3.2 ) );
121 hmgr->addHistoProf2(
new TProfile2D(
"730",
"MB prof Eta Phi [Air];#eta;#varphi;x/X_{0}", 250, -5., 5., 180, -3.2, 3.2 ) );
122 hmgr->addHistoProf1(
new TProfile(
"740",
"MB prof R [Air];R [mm];x/X_{0}", 300, 0., 3000. ) );
123 hmgr->addHistoProf2(
new TProfile2D(
"750",
"MB prof sum R z [Air];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
124 hmgr->addHistoProf2(
new TProfile2D(
"752",
"MB ortho prof sum R z [Air];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
125 hmgr->addHisto2(
new TH2F(
"760",
"MB prof local R z [Air];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
126 hmgr->addHistoProf2(
new TProfile2D(
"770",
"MB prof local R z [Air];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
127 hmgr->addHistoProf2(
new TProfile2D(
"772",
"MB ortho prof local R z [Air];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
130 hmgr->addHistoProf1(
new TProfile(
"810",
"MB prof Eta [StainlessSteel];#eta;x/X_{0}", 250, -5.0, 5.0 ) );
131 hmgr->addHistoProf1(
new TProfile(
"820",
"MB prof Phi [StainlessSteel];#varphi [rad];x/X_{0}", 180, -3.2, 3.2 ) );
132 hmgr->addHistoProf2(
new TProfile2D(
"830",
"MB prof Eta Phi [StainlessSteel];#eta;#varphi;x/X_{0}", 250, -5., 5., 180, -3.2, 3.2 ) );
133 hmgr->addHistoProf1(
new TProfile(
"840",
"MB prof R [StainlessSteel];R [mm];x/X_{0}", 300, 0., 3000. ) );
134 hmgr->addHistoProf2(
new TProfile2D(
"850",
"MB prof sum R z [StainlessSteel];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
135 hmgr->addHistoProf2(
new TProfile2D(
"852",
"MB ortho prof sum R z [StainlessSteel];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
136 hmgr->addHisto2(
new TH2F(
"860",
"MB prof local R z [StainlessSteel];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
137 hmgr->addHistoProf2(
new TProfile2D(
"870",
"MB prof local R z [StainlessSteel];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
138 hmgr->addHistoProf2(
new TProfile2D(
"872",
"MB ortho prof local R z [StainlessSteel];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
141 hmgr->addHistoProf1(
new TProfile(
"910",
"MB prof Eta [WCu];#eta;x/X_{0}", 250, -5.0, 5.0 ) );
142 hmgr->addHistoProf1(
new TProfile(
"920",
"MB prof Phi [WCu];#varphi [rad];x/X_{0}", 180, -3.2, 3.2 ) );
143 hmgr->addHistoProf2(
new TProfile2D(
"930",
"MB prof Eta Phi [WCu];#eta;#varphi;x/X_{0}", 250, -5., 5., 180, -3.2, 3.2 ) );
144 hmgr->addHistoProf1(
new TProfile(
"940",
"MB prof R [WCu];R [mm];x/X_{0}", 300, 0., 3000. ) );
145 hmgr->addHistoProf2(
new TProfile2D(
"950",
"MB prof sum R z [WCu];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
146 hmgr->addHistoProf2(
new TProfile2D(
"952",
"MB ortho prof sum R z [WCu];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
147 hmgr->addHisto2(
new TH2F(
"960",
"MB prof local R z [WCu];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
148 hmgr->addHistoProf2(
new TProfile2D(
"970",
"MB prof local R z [WCu];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
149 hmgr->addHistoProf2(
new TProfile2D(
"972",
"MB ortho prof local R z [WCu];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
152 hmgr->addHistoProf1(
new TProfile(
"1010",
"MB prof Eta [Lead];#eta;x/X_{0}", 250, -5.0, 5.0 ) );
153 hmgr->addHistoProf1(
new TProfile(
"1020",
"MB prof Phi [Lead];#varphi [rad];x/X_{0}", 180, -3.2, 3.2 ) );
154 hmgr->addHistoProf2(
new TProfile2D(
"1030",
"MB prof Eta Phi [Lead];#eta;#varphi;x/X_{0}", 250, -5., 5., 180, -3.2, 3.2 ) );
155 hmgr->addHistoProf1(
new TProfile(
"1040",
"MB prof R [Lead];R [mm];x/X_{0}", 300, 0., 3000. ) );
156 hmgr->addHistoProf2(
new TProfile2D(
"1050",
"MB prof sum R z [Lead];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
157 hmgr->addHistoProf2(
new TProfile2D(
"1052",
"MB ortho prof sum R z [Lead];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
158 hmgr->addHisto2(
new TH2F(
"1060",
"MB prof local R z [Lead];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
159 hmgr->addHistoProf2(
new TProfile2D(
"1070",
"MB prof local R z [Lead];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
160 hmgr->addHistoProf2(
new TProfile2D(
"1072",
"MB ortho prof local R z [Lead];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
164 hmgr->addHistoProf1(
new TProfile(
"10010",
"IL prof Eta;#eta;#lambda/#lambda_{0} ", 250, -5., 5. ) );
165 hmgr->addHistoProf1(
new TProfile(
"10020",
"IL prof Phi;#varphi [rad];#lambda/#lambda_{0} ", 180, -3.2, 3.2 ) );
166 hmgr->addHistoProf2(
new TProfile2D(
"10030",
"IL prof Eta Phi;#eta;#varphi;#lambda/#lambda_{0} ", 250, -5., 5., 180, -3.2, 3.2 ) );
169 hmgr->addHistoProf1(
new TProfile(
"10040",
"IL prof R;R [mm];#lambda/#lambda_{0} ", 300, 0., 3000. ) );
170 hmgr->addHistoProf2(
new TProfile2D(
"10050",
"IL prof sum R z;z [mm];R [mm];#lambda/#lambda_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
171 hmgr->addHistoProf2(
new TProfile2D(
"10052",
"IL ortho prof sum R z;z [mm];R [mm];#lambda/#lambda_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
172 hmgr->addHisto2(
new TH2F(
"1999",
"Tot track length for l0", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
173 hmgr->addHisto2(
new TH2F(
"10060",
"IL prof local R z;z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
174 hmgr->addHistoProf2(
new TProfile2D(
"10070",
"IL prof local R z;z [mm];R [mm];#lambda/#lambda_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
175 hmgr->addHistoProf2(
new TProfile2D(
"10072",
"IL ortho prof local R z;z [mm];R [mm];#lambda/#lambda_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
178 hmgr->addHistoProf1(
new TProfile(
"10110",
"IL prof Eta [Copper];#eta;#lambda/#lambda_{0}", 250, -5.0, 5.0 ) );
179 hmgr->addHistoProf1(
new TProfile(
"10120",
"IL prof Phi [Copper];#varphi [rad];#lambda/#lambda_{0}", 180, -3.2, 3.2 ) );
180 hmgr->addHistoProf2(
new TProfile2D(
"10130",
"IL prof Eta Phi [Copper];#eta;#varphi;#lambda/#lambda_{0}", 250, -5., 5., 180, -3.2, 3.2 ) );
181 hmgr->addHistoProf1(
new TProfile(
"10140",
"IL prof R [Copper];R [mm];#lambda/#lambda_{0}", 300, 0., 3000. ) );
182 hmgr->addHistoProf2(
new TProfile2D(
"10150",
"IL prof sum R z [Copper];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
183 hmgr->addHistoProf2(
new TProfile2D(
"10152",
"IL ortho prof sum R z [Copper];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
184 hmgr->addHisto2(
new TH2F(
"10160",
"IL prof local R z [Copper];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
185 hmgr->addHistoProf2(
new TProfile2D(
"10170",
"IL prof local R z [Copper];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
186 hmgr->addHistoProf2(
new TProfile2D(
"10172",
"IL ortho prof local R z [Copper];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
189 hmgr->addHistoProf1(
new TProfile(
"10210",
"IL prof Eta [Scintillator];#eta;#lambda/#lambda_{0}", 250, -5.0, 5.0 ) );
190 hmgr->addHistoProf1(
new TProfile(
"10220",
"IL prof Phi [Scintillator];#varphi [rad];#lambda/#lambda_{0}", 180, -3.2, 3.2 ) );
191 hmgr->addHistoProf2(
new TProfile2D(
"10230",
"IL prof Eta Phi [Scintillator];#eta;#varphi;#lambda/#lambda_{0}", 250, -5., 5., 180, -3.2, 3.2 ) );
192 hmgr->addHistoProf1(
new TProfile(
"10240",
"IL prof R [Scintillator];R [mm];#lambda/#lambda_{0}", 300, 0., 3000. ) );
193 hmgr->addHistoProf2(
new TProfile2D(
"10250",
"IL prof sum R z [Scintillator];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
194 hmgr->addHistoProf2(
new TProfile2D(
"10252",
"IL ortho prof sum R z [Scintillator];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
195 hmgr->addHisto2(
new TH2F(
"10260",
"IL prof local R z [Scintillator];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
196 hmgr->addHistoProf2(
new TProfile2D(
"10270",
"IL prof local R z [Scintillator];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
197 hmgr->addHistoProf2(
new TProfile2D(
"10272",
"IL ortho prof local R z [Scintillator];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
200 hmgr->addHistoProf1(
new TProfile(
"10310",
"IL prof Eta [Cables];#eta;#lambda/#lambda_{0}", 250, -5.0, 5.0 ) );
201 hmgr->addHistoProf1(
new TProfile(
"10320",
"IL prof Phi [Cables];#varphi [rad];#lambda/#lambda_{0}", 180, -3.2, 3.2 ) );
202 hmgr->addHistoProf2(
new TProfile2D(
"10330",
"IL prof Eta Phi [Cables];#eta;#varphi;#lambda/#lambda_{0}", 250, -5., 5., 180, -3.2, 3.2 ) );
203 hmgr->addHistoProf1(
new TProfile(
"10340",
"IL prof R [Cables];R [mm];#lambda/#lambda_{0}", 300, 0., 3000. ) );
204 hmgr->addHistoProf2(
new TProfile2D(
"10350",
"IL prof sum R z [Cables];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
205 hmgr->addHistoProf2(
new TProfile2D(
"10352",
"IL ortho prof sum R z [Cables];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
206 hmgr->addHisto2(
new TH2F(
"10360",
"IL prof local R z [Cables];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
207 hmgr->addHistoProf2(
new TProfile2D(
"10370",
"IL prof local R z [Cables];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
208 hmgr->addHistoProf2(
new TProfile2D(
"10372",
"IL ortho prof local R z [Cables];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
211 hmgr->addHistoProf1(
new TProfile(
"10410",
"IL prof Eta [M_NEMA_FR4_plate];#eta;#lambda/#lambda_{0}", 250, -5.0, 5.0 ) );
212 hmgr->addHistoProf1(
new TProfile(
"10420",
"IL prof Phi [M_NEMA_FR4_plate];#varphi [rad];#lambda/#lambda_{0}", 180, -3.2, 3.2 ) );
213 hmgr->addHistoProf2(
new TProfile2D(
"10430",
"IL prof Eta Phi [M_NEMA_FR4_plate];#eta;#varphi;#lambda/#lambda_{0}", 250, -5., 5., 180, -3.2, 3.2 ) );
214 hmgr->addHistoProf1(
new TProfile(
"10440",
"IL prof R [M_NEMA_FR4_plate];R [mm];#lambda/#lambda_{0}", 300, 0., 3000. ) );
215 hmgr->addHistoProf2(
new TProfile2D(
"10450",
"IL prof sum R z [M_NEMA_FR4_plate];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
216 hmgr->addHistoProf2(
new TProfile2D(
"10452",
"IL ortho prof sum R z [M_NEMA_FR4_plate];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
217 hmgr->addHisto2(
new TH2F(
"10460",
"IL prof local R z [M_NEMA_FR4_plate];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
218 hmgr->addHistoProf2(
new TProfile2D(
"10470",
"IL prof local R z [M_NEMA_FR4_plate];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
219 hmgr->addHistoProf2(
new TProfile2D(
"10472",
"IL ortho prof local R z [M_NEMA_FR4_plate];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
222 hmgr->addHistoProf1(
new TProfile(
"10510",
"IL prof Eta [Silicon];#eta;#lambda/#lambda_{0}", 250, -5.0, 5.0 ) );
223 hmgr->addHistoProf1(
new TProfile(
"10520",
"IL prof Phi [Silicon];#varphi [rad];#lambda/#lambda_{0}", 180, -3.2, 3.2 ) );
224 hmgr->addHistoProf2(
new TProfile2D(
"10530",
"IL prof Eta Phi [Silicon];#eta;#varphi;#lambda/#lambda_{0}", 250, -5., 5., 180, -3.2, 3.2 ) );
225 hmgr->addHistoProf1(
new TProfile(
"10540",
"IL prof R [Silicon];R [mm];#lambda/#lambda_{0}", 300, 0., 3000. ) );
226 hmgr->addHistoProf2(
new TProfile2D(
"10550",
"IL prof sum R z [Silicon];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
227 hmgr->addHistoProf2(
new TProfile2D(
"10552",
"IL ortho prof sum R z [Silicon];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
228 hmgr->addHisto2(
new TH2F(
"10560",
"IL prof local R z [Silicon];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
229 hmgr->addHistoProf2(
new TProfile2D(
"10570",
"IL prof local R z [Silicon];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
230 hmgr->addHistoProf2(
new TProfile2D(
"10572",
"IL ortho prof local R z [Silicon];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
233 hmgr->addHistoProf1(
new TProfile(
"10610",
"IL prof Eta [Other];#eta;#lambda/#lambda_{0}", 250, -5.0, 5.0 ) );
234 hmgr->addHistoProf1(
new TProfile(
"10620",
"IL prof Phi [Other];#varphi [rad];#lambda/#lambda_{0}", 180, -3.2, 3.2 ) );
235 hmgr->addHistoProf2(
new TProfile2D(
"10630",
"IL prof Eta Phi [Other];#eta;#varphi;#lambda/#lambda_{0}", 250, -5., 5., 180, -3.2, 3.2 ) );
236 hmgr->addHistoProf1(
new TProfile(
"10640",
"IL prof R [Other];R [mm];#lambda/#lambda_{0}", 300, 0., 3000. ) );
237 hmgr->addHistoProf2(
new TProfile2D(
"10650",
"IL prof sum R z [Other];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
238 hmgr->addHistoProf2(
new TProfile2D(
"10652",
"IL ortho prof sum R z [Other];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
239 hmgr->addHisto2(
new TH2F(
"10660",
"IL prof local R z [Other];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
240 hmgr->addHistoProf2(
new TProfile2D(
"10670",
"IL prof local R z [Other];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
241 hmgr->addHistoProf2(
new TProfile2D(
"10672",
"IL ortho prof local R z [Other];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
244 hmgr->addHistoProf1(
new TProfile(
"10710",
"IL prof Eta [Air];#eta;#lambda/#lambda_{0}", 250, -5.0, 5.0 ) );
245 hmgr->addHistoProf1(
new TProfile(
"10720",
"IL prof Phi [Air];#varphi [rad];#lambda/#lambda_{0}", 180, -3.2, 3.2 ) );
246 hmgr->addHistoProf2(
new TProfile2D(
"10730",
"IL prof Eta Phi [Air];#eta;#varphi;#lambda/#lambda_{0}", 250, -5., 5., 180, -3.2, 3.2 ) );
247 hmgr->addHistoProf1(
new TProfile(
"10740",
"IL prof R [Air];R [mm];#lambda/#lambda_{0}", 300, 0., 3000. ) );
248 hmgr->addHistoProf2(
new TProfile2D(
"10750",
"IL prof sum R z [Air];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
249 hmgr->addHistoProf2(
new TProfile2D(
"10752",
"IL ortho prof sum R z [Air];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
250 hmgr->addHisto2(
new TH2F(
"10760",
"IL prof local R z [Air];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
251 hmgr->addHistoProf2(
new TProfile2D(
"10770",
"IL prof local R z [Air];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
252 hmgr->addHistoProf2(
new TProfile2D(
"10772",
"IL ortho prof local R z [Air];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
255 hmgr->addHistoProf1(
new TProfile(
"10810",
"IL prof Eta [StainlessSteel];#eta;#lambda/#lambda_{0}", 250, -5.0, 5.0 ) );
256 hmgr->addHistoProf1(
new TProfile(
"10820",
"IL prof Phi [StainlessSteel];#varphi [rad];#lambda/#lambda_{0}", 180, -3.2, 3.2 ) );
257 hmgr->addHistoProf2(
new TProfile2D(
"10830",
"IL prof Eta Phi [StainlessSteel];#eta;#varphi;#lambda/#lambda_{0}", 250, -5., 5., 180, -3.2, 3.2 ) );
258 hmgr->addHistoProf1(
new TProfile(
"10840",
"IL prof R [StainlessSteel];R [mm];#lambda/#lambda_{0}", 300, 0., 3000. ) );
259 hmgr->addHistoProf2(
new TProfile2D(
"10850",
"IL prof sum R z [StainlessSteel];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
260 hmgr->addHistoProf2(
new TProfile2D(
"10852",
"IL ortho prof sum R z [StainlessSteel];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
261 hmgr->addHisto2(
new TH2F(
"10860",
"IL prof local R z [StainlessSteel];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
262 hmgr->addHistoProf2(
new TProfile2D(
"10870",
"IL prof local R z [StainlessSteel];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
263 hmgr->addHistoProf2(
new TProfile2D(
"10872",
"IL ortho prof local R z [StainlessSteel];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
266 hmgr->addHistoProf1(
new TProfile(
"10910",
"IL prof Eta [WCu];#eta;#lambda/#lambda_{0}", 250, -5.0, 5.0 ) );
267 hmgr->addHistoProf1(
new TProfile(
"10920",
"IL prof Phi [WCu];#varphi [rad];#lambda/#lambda_{0}", 180, -3.2, 3.2 ) );
268 hmgr->addHistoProf2(
new TProfile2D(
"10930",
"IL prof Eta Phi [WCu];#eta;#varphi;#lambda/#lambda_{0}", 250, -5., 5., 180, -3.2, 3.2 ) );
269 hmgr->addHistoProf1(
new TProfile(
"10940",
"IL prof R [WCu];R [mm];#lambda/#lambda_{0}", 300, 0., 3000. ) );
270 hmgr->addHistoProf2(
new TProfile2D(
"10950",
"IL prof sum R z [WCu];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
271 hmgr->addHistoProf2(
new TProfile2D(
"10952",
"IL ortho prof sum R z [WCu];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
272 hmgr->addHisto2(
new TH2F(
"10960",
"IL prof local R z [WCu];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
273 hmgr->addHistoProf2(
new TProfile2D(
"10970",
"IL prof local R z [WCu];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
274 hmgr->addHistoProf2(
new TProfile2D(
"10972",
"IL ortho prof local R z [WCu];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
277 hmgr->addHistoProf1(
new TProfile(
"11010",
"IL prof Eta [Lead];#eta;#lambda/#lambda_{0}", 250, -5.0, 5.0 ) );
278 hmgr->addHistoProf1(
new TProfile(
"11020",
"IL prof Phi [Lead];#varphi [rad];#lambda/#lambda_{0}", 180, -3.2, 3.2 ) );
279 hmgr->addHistoProf2(
new TProfile2D(
"11030",
"IL prof Eta Phi [Lead];#eta;#varphi;#lambda/#lambda_{0}", 250, -5., 5., 180, -3.2, 3.2 ) );
280 hmgr->addHistoProf1(
new TProfile(
"11040",
"IL prof R [Lead];R [mm];#lambda/#lambda_{0}", 300, 0., 3000. ) );
281 hmgr->addHistoProf2(
new TProfile2D(
"11050",
"IL prof sum R z [Lead];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
282 hmgr->addHistoProf2(
new TProfile2D(
"11052",
"IL ortho prof sum R z [Lead];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
283 hmgr->addHisto2(
new TH2F(
"11060",
"IL prof local R z [Lead];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
284 hmgr->addHistoProf2(
new TProfile2D(
"11070",
"IL prof local R z [Lead];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
285 hmgr->addHistoProf2(
new TProfile2D(
"11072",
"IL ortho prof local R z [Lead];z [mm];R [mm];x/X_{0} ", nzbin, zMin, zMax, nrbin, rMin, rMax ) );
288 std::cout <<
"=== booking user histos done ===" << std::endl;
311 if(
theData->getNumberOfSteps() != 0 ) {
378 float theTotalMB_TOT = 0.0;
379 float theTotalMB_COP = 0.0;
380 float theTotalMB_SCI = 0.0;
381 float theTotalMB_CAB = 0.0;
382 float theTotalMB_MNE = 0.0;
383 float theTotalMB_NIM = 0.0;
384 float theTotalMB_OTH = 0.0;
385 float theTotalMB_AIR = 0.0;
386 float theTotalMB_SST = 0.0;
387 float theTotalMB_WCU = 0.0;
388 float theTotalMB_LEA = 0.0;
389 for(
int iStep = 0; iStep <
theData->getNumberOfSteps(); iStep++) {
390 theTotalMB_TOT +=
theData->getStepDmb(iStep);
391 theTotalMB_COP +=
theData->getCopperDmb(iStep);
392 theTotalMB_SCI +=
theData->getH_ScintillatorDmb(iStep);
393 theTotalMB_CAB +=
theData->getCablesDmb(iStep);
394 theTotalMB_MNE +=
theData->getM_NEMA_FR4_plateDmb(iStep);
395 theTotalMB_NIM +=
theData->getSiliconDmb(iStep);
396 theTotalMB_OTH +=
theData->getOtherDmb(iStep);
397 theTotalMB_AIR +=
theData->getAirDmb(iStep);
398 theTotalMB_SST +=
theData->getStainlessSteelDmb(iStep);
399 theTotalMB_WCU +=
theData->getWCuDmb(iStep);
400 theTotalMB_LEA +=
theData->getLeadDmb(iStep);
412 if(
theData->getCopperDmb(iStep)>0. ) { iCop = 1; }
413 if(
theData->getH_ScintillatorDmb(iStep)>0. ) { iSci = 1; }
414 if(
theData->getCablesDmb(iStep)>0. ) { iCab = 1; }
415 if(
theData->getM_NEMA_FR4_plateDmb(iStep)>0. ) { iMne = 1; }
416 if(
theData->getSiliconDmb(iStep)>0. ) { iSil = 1; }
417 if(
theData->getOtherDmb(iStep)>0. ) { iOth = 1; }
418 if(
theData->getAirDmb(iStep)>0. ) { iAir = 1; }
419 if(
theData->getStainlessSteelDmb(iStep)>0. ) { iSst = 1; }
420 if(
theData->getWCuDmb(iStep)>0. ) { iWcu = 1; }
421 if(
theData->getLeadDmb(iStep)>0. ) { iLea = 1; }
423 float deltaRadius =
sqrt(
428 float deltaz =
theData->getStepFinalZ(iStep)-
theData->getStepInitialZ(iStep) ;
430 float deltaeta =
theData->getStepFinalEta(iStep)-
theData->getStepInitialEta(iStep) ;
434 float x0 =
theData->getStepMaterialX0(iStep);
437 float boxWidth = 0.1;
438 if( (deltaRadius>boxWidth) || (fabs(deltaz)>boxWidth) ) {
439 nSubStep =
static_cast<int>(
max(
440 ceil(deltaRadius/boxWidth/2.)*2,
441 ceil(fabs(deltaz)/boxWidth/2.)*2
445 for(
int iSubStep = 1; iSubStep < nSubStep; iSubStep+=2) {
447 float subdeltaRadius = deltaRadius/nSubStep;
448 float polarRadius =
sqrt(
452 ) + iSubStep*subdeltaRadius;
454 float subdeltaz = deltaz/nSubStep;
455 float z =
theData->getStepInitialZ(iStep) + iSubStep*subdeltaz;
457 float subdeltaeta = deltaeta/nSubStep;
458 float eta =
theData->getStepInitialEta(iStep) + iSubStep*subdeltaeta;
463 float subdelta =
sqrt(
464 pow ( subdeltaRadius,2 ) +
pow( subdeltaz,2 )
467 float fillValue=subdelta/x0;
469 float costhetacorrection =
cos( 2 * atan(
exp(-fabs(eta))) );
471 hmgr->getHisto2(999)->Fill(z,polarRadius,subdelta);
473 hmgr->getHisto1(41)->Fill(polarRadius);
474 hmgr->getHistoProf1(40)->Fill(polarRadius,theTotalMB_TOT);
475 hmgr->getHisto2(51)->Fill(z,polarRadius);
476 hmgr->getHistoProf2(50)->Fill(z,polarRadius,theTotalMB_TOT);
477 hmgr->getHistoProf2(52)->Fill(z,polarRadius, theTotalMB_TOT * costhetacorrection );
478 hmgr->getHisto2(60)->Fill(z,polarRadius,fillValue);
479 hmgr->getHistoProf2(70)->Fill(z,polarRadius,fillValue);
480 hmgr->getHistoProf2(72)->Fill(z,polarRadius, fillValue * costhetacorrection );
483 hmgr->getHistoProf1(140)->Fill(polarRadius,theTotalMB_COP);
484 hmgr->getHistoProf2(150)->Fill(z,polarRadius,theTotalMB_COP);
485 hmgr->getHistoProf2(152)->Fill(z,polarRadius,theTotalMB_COP * costhetacorrection );
486 hmgr->getHisto2(160)->Fill(z,polarRadius,iCop*fillValue);
487 hmgr->getHistoProf2(170)->Fill(z,polarRadius,iCop*fillValue);
488 hmgr->getHistoProf2(172)->Fill(z,polarRadius, iCop * fillValue * costhetacorrection );
491 hmgr->getHistoProf1(240)->Fill(polarRadius,theTotalMB_SCI);
492 hmgr->getHistoProf2(250)->Fill(z,polarRadius,theTotalMB_SCI);
493 hmgr->getHistoProf2(252)->Fill(z,polarRadius,theTotalMB_SCI * costhetacorrection );
494 hmgr->getHisto2(260)->Fill(z,polarRadius,iSci*fillValue);
495 hmgr->getHistoProf2(270)->Fill(z,polarRadius,iSci*fillValue);
496 hmgr->getHistoProf2(272)->Fill(z,polarRadius, iSci * fillValue * costhetacorrection );
499 hmgr->getHistoProf1(340)->Fill(polarRadius,theTotalMB_CAB);
500 hmgr->getHistoProf2(350)->Fill(z,polarRadius,theTotalMB_CAB);
501 hmgr->getHistoProf2(352)->Fill(z,polarRadius,theTotalMB_CAB * costhetacorrection );
502 hmgr->getHisto2(360)->Fill(z,polarRadius,iCab*fillValue);
503 hmgr->getHistoProf2(370)->Fill(z,polarRadius,iCab*fillValue);
504 hmgr->getHistoProf2(372)->Fill(z,polarRadius, iCab * fillValue * costhetacorrection );
507 hmgr->getHistoProf1(440)->Fill(polarRadius,theTotalMB_MNE);
508 hmgr->getHistoProf2(450)->Fill(z,polarRadius,theTotalMB_MNE);
509 hmgr->getHistoProf2(452)->Fill(z,polarRadius,theTotalMB_MNE * costhetacorrection );
510 hmgr->getHisto2(460)->Fill(z,polarRadius,iMne*fillValue);
511 hmgr->getHistoProf2(470)->Fill(z,polarRadius,iMne*fillValue);
512 hmgr->getHistoProf2(472)->Fill(z,polarRadius, iMne * fillValue * costhetacorrection );
515 hmgr->getHistoProf1(540)->Fill(polarRadius,theTotalMB_NIM);
516 hmgr->getHistoProf2(550)->Fill(z,polarRadius,theTotalMB_NIM);
517 hmgr->getHistoProf2(552)->Fill(z,polarRadius,theTotalMB_NIM * costhetacorrection );
518 hmgr->getHisto2(560)->Fill(z,polarRadius,iSil*fillValue);
519 hmgr->getHistoProf2(570)->Fill(z,polarRadius,iSil*fillValue);
520 hmgr->getHistoProf2(572)->Fill(z,polarRadius, iSil * fillValue * costhetacorrection );
523 hmgr->getHistoProf1(640)->Fill(polarRadius,theTotalMB_OTH);
524 hmgr->getHistoProf2(650)->Fill(z,polarRadius,theTotalMB_OTH);
525 hmgr->getHistoProf2(652)->Fill(z,polarRadius,theTotalMB_OTH * costhetacorrection );
526 hmgr->getHisto2(660)->Fill(z,polarRadius,iOth*fillValue);
527 hmgr->getHistoProf2(670)->Fill(z,polarRadius,iOth*fillValue);
528 hmgr->getHistoProf2(672)->Fill(z,polarRadius, iOth * fillValue * costhetacorrection );
531 hmgr->getHistoProf1(740)->Fill(polarRadius,theTotalMB_AIR);
532 hmgr->getHistoProf2(750)->Fill(z,polarRadius,theTotalMB_AIR);
533 hmgr->getHistoProf2(752)->Fill(z,polarRadius,theTotalMB_AIR * costhetacorrection );
534 hmgr->getHisto2(760)->Fill(z,polarRadius,iAir*fillValue);
535 hmgr->getHistoProf2(770)->Fill(z,polarRadius,iAir*fillValue);
536 hmgr->getHistoProf2(772)->Fill(z,polarRadius, iAir * fillValue * costhetacorrection );
539 hmgr->getHistoProf1(840)->Fill(polarRadius,theTotalMB_SST);
540 hmgr->getHistoProf2(850)->Fill(z,polarRadius,theTotalMB_SST);
541 hmgr->getHistoProf2(852)->Fill(z,polarRadius,theTotalMB_SST * costhetacorrection );
542 hmgr->getHisto2(860)->Fill(z,polarRadius,iSst*fillValue);
543 hmgr->getHistoProf2(870)->Fill(z,polarRadius,iSst*fillValue);
544 hmgr->getHistoProf2(872)->Fill(z,polarRadius, iSst * fillValue * costhetacorrection );
547 hmgr->getHistoProf1(940)->Fill(polarRadius,theTotalMB_WCU);
548 hmgr->getHistoProf2(950)->Fill(z,polarRadius,theTotalMB_WCU);
549 hmgr->getHistoProf2(952)->Fill(z,polarRadius,theTotalMB_WCU * costhetacorrection );
550 hmgr->getHisto2(960)->Fill(z,polarRadius,iWcu*fillValue);
551 hmgr->getHistoProf2(970)->Fill(z,polarRadius,iWcu*fillValue);
552 hmgr->getHistoProf2(972)->Fill(z,polarRadius, iWcu * fillValue * costhetacorrection );
555 hmgr->getHistoProf1(1040)->Fill(polarRadius,theTotalMB_LEA);
556 hmgr->getHistoProf2(1050)->Fill(z,polarRadius,theTotalMB_LEA);
557 hmgr->getHistoProf2(1052)->Fill(z,polarRadius,theTotalMB_LEA * costhetacorrection );
558 hmgr->getHisto2(1060)->Fill(z,polarRadius,iLea*fillValue);
559 hmgr->getHistoProf2(1070)->Fill(z,polarRadius,iLea*fillValue);
560 hmgr->getHistoProf2(1072)->Fill(z,polarRadius, iLea * fillValue * costhetacorrection );
622 float theTotalIL_TOT = 0.0;
623 float theTotalIL_COP = 0.0;
624 float theTotalIL_SCI = 0.0;
625 float theTotalIL_CAB = 0.0;
626 float theTotalIL_MNE = 0.0;
627 float theTotalIL_NIM = 0.0;
628 float theTotalIL_OTH = 0.0;
629 float theTotalIL_AIR = 0.0;
630 float theTotalIL_SST = 0.0;
631 float theTotalIL_WCU = 0.0;
632 float theTotalIL_LEA = 0.0;
633 for(
int iStep = 0; iStep <
theData->getNumberOfSteps(); iStep++) {
634 theTotalIL_TOT +=
theData->getStepDil(iStep);
635 theTotalIL_COP +=
theData->getCopperDil(iStep);
636 theTotalIL_SCI +=
theData->getH_ScintillatorDil(iStep);
637 theTotalIL_CAB +=
theData->getCablesDil(iStep);
638 theTotalIL_MNE +=
theData->getM_NEMA_FR4_plateDil(iStep);
639 theTotalIL_NIM +=
theData->getSiliconDil(iStep);
640 theTotalIL_OTH +=
theData->getOtherDil(iStep);
641 theTotalIL_AIR +=
theData->getAirDil(iStep);
642 theTotalIL_SST +=
theData->getStainlessSteelDil(iStep);
643 theTotalIL_WCU +=
theData->getWCuDil(iStep);
644 theTotalIL_LEA +=
theData->getLeadDil(iStep);
657 if(
theData->getCopperDil(iStep)>0. ) { iCop = 1; }
658 if(
theData->getH_ScintillatorDil(iStep)>0. ) { iSci = 1; }
659 if(
theData->getCablesDil(iStep)>0. ) { iCab = 1; }
660 if(
theData->getM_NEMA_FR4_plateDil(iStep)>0. ) { iMne = 1; }
661 if(
theData->getSiliconDil(iStep)>0. ) { iSil = 1; }
662 if(
theData->getOtherDil(iStep)>0. ) { iOth = 1; }
663 if(
theData->getAirDil(iStep)>0. ) { iAir = 1; }
664 if(
theData->getStainlessSteelDil(iStep)>0. ) { iSst = 1; }
665 if(
theData->getWCuDil(iStep)>0. ) { iWcu = 1; }
666 if(
theData->getLeadDil(iStep)>0. ) { iLea = 1; }
668 float deltaRadius =
sqrt(
673 float deltaz =
theData->getStepFinalZ(iStep)-
theData->getStepInitialZ(iStep) ;
675 float deltaeta =
theData->getStepFinalEta(iStep)-
theData->getStepInitialEta(iStep) ;
679 float il =
theData->getStepMaterialLambda0(iStep);
682 float boxWidth = 0.1;
683 if( (deltaRadius>boxWidth) || (fabs(deltaz)>boxWidth) ) {
684 nSubStep =
static_cast<int>(
max(
685 ceil(deltaRadius/boxWidth/2.)*2,
686 ceil(fabs(deltaz)/boxWidth/2.)*2
690 for(
int iSubStep = 1; iSubStep < nSubStep; iSubStep+=2) {
692 float subdeltaRadius = deltaRadius/nSubStep;
693 float polarRadius =
sqrt(
697 ) + iSubStep*subdeltaRadius;
699 float subdeltaz = deltaz/nSubStep;
700 float z =
theData->getStepInitialZ(iStep) + iSubStep*subdeltaz;
702 float subdeltaeta = deltaeta/nSubStep;
703 float eta =
theData->getStepInitialEta(iStep) + iSubStep*subdeltaeta;
708 float subdelta =
sqrt(
709 pow ( subdeltaRadius,2 ) +
pow( subdeltaz,2 )
712 float fillValue=subdelta/il;
714 float costhetacorrection =
cos( 2 * atan(
exp(-fabs(eta))) );
716 hmgr->getHisto2(1999)->Fill(z,polarRadius,subdelta);
718 hmgr->getHistoProf1(10040)->Fill(polarRadius,theTotalIL_TOT);
719 hmgr->getHistoProf2(10050)->Fill(z,polarRadius,theTotalIL_TOT);
720 hmgr->getHistoProf2(10052)->Fill(z,polarRadius,theTotalIL_TOT * costhetacorrection );
721 hmgr->getHisto2(10060)->Fill(z,polarRadius,fillValue);
722 hmgr->getHistoProf2(10070)->Fill(z,polarRadius,fillValue);
723 hmgr->getHistoProf2(10072)->Fill(z,polarRadius, fillValue * costhetacorrection );
726 hmgr->getHistoProf1(10140)->Fill(polarRadius,theTotalIL_COP);
727 hmgr->getHistoProf2(10150)->Fill(z,polarRadius,theTotalIL_COP);
728 hmgr->getHistoProf2(10152)->Fill(z,polarRadius,theTotalIL_COP * costhetacorrection );
729 hmgr->getHisto2(10160)->Fill(z,polarRadius,iCop*fillValue);
730 hmgr->getHistoProf2(10170)->Fill(z,polarRadius,iCop*fillValue);
731 hmgr->getHistoProf2(10172)->Fill(z,polarRadius, iCop * fillValue * costhetacorrection );
734 hmgr->getHistoProf1(10240)->Fill(polarRadius,theTotalIL_SCI);
735 hmgr->getHistoProf2(10250)->Fill(z,polarRadius,theTotalIL_SCI);
736 hmgr->getHistoProf2(10252)->Fill(z,polarRadius,theTotalIL_SCI * costhetacorrection );
737 hmgr->getHisto2(10260)->Fill(z,polarRadius,iSci*fillValue);
738 hmgr->getHistoProf2(10270)->Fill(z,polarRadius,iSci*fillValue);
739 hmgr->getHistoProf2(10272)->Fill(z,polarRadius, iSci * fillValue * costhetacorrection );
742 hmgr->getHistoProf1(10340)->Fill(polarRadius,theTotalIL_CAB);
743 hmgr->getHistoProf2(10350)->Fill(z,polarRadius,theTotalIL_CAB);
744 hmgr->getHistoProf2(10352)->Fill(z,polarRadius,theTotalIL_CAB * costhetacorrection );
745 hmgr->getHisto2(10360)->Fill(z,polarRadius,iCab*fillValue);
746 hmgr->getHistoProf2(10370)->Fill(z,polarRadius,iCab*fillValue);
747 hmgr->getHistoProf2(10372)->Fill(z,polarRadius, iCab * fillValue * costhetacorrection );
750 hmgr->getHistoProf1(10440)->Fill(polarRadius,theTotalIL_MNE);
751 hmgr->getHistoProf2(10450)->Fill(z,polarRadius,theTotalIL_MNE);
752 hmgr->getHistoProf2(10452)->Fill(z,polarRadius,theTotalIL_MNE * costhetacorrection );
753 hmgr->getHisto2(10460)->Fill(z,polarRadius,iMne*fillValue);
754 hmgr->getHistoProf2(10470)->Fill(z,polarRadius,iMne*fillValue);
755 hmgr->getHistoProf2(10472)->Fill(z,polarRadius, iMne * fillValue * costhetacorrection );
758 hmgr->getHistoProf1(10540)->Fill(polarRadius,theTotalIL_NIM);
759 hmgr->getHistoProf2(10550)->Fill(z,polarRadius,theTotalIL_NIM);
760 hmgr->getHistoProf2(10552)->Fill(z,polarRadius,theTotalIL_NIM * costhetacorrection );
761 hmgr->getHisto2(10560)->Fill(z,polarRadius,iSil*fillValue);
762 hmgr->getHistoProf2(10570)->Fill(z,polarRadius,iSil*fillValue);
763 hmgr->getHistoProf2(10572)->Fill(z,polarRadius, iSil * fillValue * costhetacorrection );
766 hmgr->getHistoProf1(10640)->Fill(polarRadius,theTotalIL_OTH);
767 hmgr->getHistoProf2(10650)->Fill(z,polarRadius,theTotalIL_OTH);
768 hmgr->getHistoProf2(10652)->Fill(z,polarRadius,theTotalIL_OTH * costhetacorrection );
769 hmgr->getHisto2(10660)->Fill(z,polarRadius,iOth*fillValue);
770 hmgr->getHistoProf2(10670)->Fill(z,polarRadius,iOth*fillValue);
771 hmgr->getHistoProf2(10672)->Fill(z,polarRadius, iOth * fillValue * costhetacorrection );
774 hmgr->getHistoProf1(10740)->Fill(polarRadius,theTotalIL_AIR);
775 hmgr->getHistoProf2(10750)->Fill(z,polarRadius,theTotalIL_AIR);
776 hmgr->getHistoProf2(10752)->Fill(z,polarRadius,theTotalIL_AIR * costhetacorrection );
777 hmgr->getHisto2(10760)->Fill(z,polarRadius,iAir*fillValue);
778 hmgr->getHistoProf2(10770)->Fill(z,polarRadius,iAir*fillValue);
779 hmgr->getHistoProf2(10772)->Fill(z,polarRadius, iAir * fillValue * costhetacorrection );
782 hmgr->getHistoProf1(10840)->Fill(polarRadius,theTotalIL_SST);
783 hmgr->getHistoProf2(10850)->Fill(z,polarRadius,theTotalIL_SST);
784 hmgr->getHistoProf2(10852)->Fill(z,polarRadius,theTotalIL_SST * costhetacorrection );
785 hmgr->getHisto2(10860)->Fill(z,polarRadius,iSst*fillValue);
786 hmgr->getHistoProf2(10870)->Fill(z,polarRadius,iSst*fillValue);
787 hmgr->getHistoProf2(10872)->Fill(z,polarRadius, iSst * fillValue * costhetacorrection );
790 hmgr->getHistoProf1(10940)->Fill(polarRadius,theTotalIL_WCU);
791 hmgr->getHistoProf2(10950)->Fill(z,polarRadius,theTotalIL_WCU);
792 hmgr->getHistoProf2(10952)->Fill(z,polarRadius,theTotalIL_WCU * costhetacorrection );
793 hmgr->getHisto2(10960)->Fill(z,polarRadius,iWcu*fillValue);
794 hmgr->getHistoProf2(10970)->Fill(z,polarRadius,iWcu*fillValue);
795 hmgr->getHistoProf2(10972)->Fill(z,polarRadius, iWcu * fillValue * costhetacorrection );
798 hmgr->getHistoProf1(11040)->Fill(polarRadius,theTotalIL_LEA);
799 hmgr->getHistoProf2(11050)->Fill(z,polarRadius,theTotalIL_LEA);
800 hmgr->getHistoProf2(11052)->Fill(z,polarRadius,theTotalIL_LEA * costhetacorrection );
801 hmgr->getHisto2(11060)->Fill(z,polarRadius,iLea*fillValue);
802 hmgr->getHistoProf2(11070)->Fill(z,polarRadius,iLea*fillValue);
803 hmgr->getHistoProf2(11072)->Fill(z,polarRadius, iLea * fillValue * costhetacorrection );
811 std::cout <<
"*** WARNING This event is out of the acceptance *** " << std::endl;
813 <<
"\t phi = " <<
theData->getPhi()
814 <<
"\t x/X0 = " <<
theData->getTotalMB()
815 <<
"\t l/l0 = " <<
theData->getTotalIL()
816 <<
"\t steps = " <<
theData->getNumberOfSteps()
827 hmgr->getHisto2(60)->Divide(
hmgr->getHisto2(999));
828 hmgr->getHisto2(160)->Divide(
hmgr->getHisto2(999));
829 hmgr->getHisto2(260)->Divide(
hmgr->getHisto2(999));
830 hmgr->getHisto2(360)->Divide(
hmgr->getHisto2(999));
831 hmgr->getHisto2(460)->Divide(
hmgr->getHisto2(999));
832 hmgr->getHisto2(560)->Divide(
hmgr->getHisto2(999));
833 hmgr->getHisto2(660)->Divide(
hmgr->getHisto2(999));
834 hmgr->getHisto2(760)->Divide(
hmgr->getHisto2(999));
835 hmgr->getHisto2(860)->Divide(
hmgr->getHisto2(999));
836 hmgr->getHisto2(960)->Divide(
hmgr->getHisto2(999));
837 hmgr->getHisto2(1060)->Divide(
hmgr->getHisto2(999));
839 hmgr->getHisto2(10060)->Divide(
hmgr->getHisto2(1999));
840 hmgr->getHisto2(10160)->Divide(
hmgr->getHisto2(1999));
841 hmgr->getHisto2(10260)->Divide(
hmgr->getHisto2(1999));
842 hmgr->getHisto2(10360)->Divide(
hmgr->getHisto2(1999));
843 hmgr->getHisto2(10460)->Divide(
hmgr->getHisto2(1999));
844 hmgr->getHisto2(10560)->Divide(
hmgr->getHisto2(1999));
845 hmgr->getHisto2(10660)->Divide(
hmgr->getHisto2(1999));
846 hmgr->getHisto2(10760)->Divide(
hmgr->getHisto2(1999));
847 hmgr->getHisto2(10860)->Divide(
hmgr->getHisto2(1999));
848 hmgr->getHisto2(10960)->Divide(
hmgr->getHisto2(1999));
849 hmgr->getHisto2(11060)->Divide(
hmgr->getHisto2(1999));
851 std::cout <<
"=== save user histos ===" << std::endl;
void fillStartTrack() override
void fillPerStep() override
MaterialBudgetHGCalHistos(std::shared_ptr< MaterialBudgetData > data, std::shared_ptr< TestHistoMgr > mgr, const std::string &fileName)
Cos< T >::type cos(const T &t)
const T & max(const T &a, const T &b)
char data[epos_bytes_allocation]
void fillEndTrack() override
std::shared_ptr< TestHistoMgr > hmgr
Power< A, B >::type pow(const A &a, const B &b)