CMS 3D CMS Logo

MaterialBudgetHGCalHistos.cc
Go to the documentation of this file.
3 
4 template <class T> const T& max ( const T& a, const T& b ) {
5  return (b<a)?a:b; // or: return comp(b,a)?a:b; for the comp version
6 }
7 
8 
9 
10 MaterialBudgetHGCalHistos::MaterialBudgetHGCalHistos(std::shared_ptr<MaterialBudgetData> data,
11  std::shared_ptr<TestHistoMgr> mgr,
12  const std::string& fileName )
13  : MaterialBudgetFormat( data ),
14  hmgr(mgr)
15 {
17  book();
18 }
19 
20 
22 {
23  std::cout << "=== booking user histos ===" << std::endl;
24 
25  // Parameters for 2D histograms
26  // Make z 1mm per bin
27  int nzbin = 11000;
28  float zMax = 5500.;//
29  float zMin = -5500.;//
30  // Make r 1cm per bin
31  int nrbin = 345;
32  float rMin = -50.;
33  float rMax = 3400.;
34 
35  // total X0
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 ) );
51 
52  // Copper
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 ) );
62 
63  // H_Scintillator
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 ) );
73 
74  // Cables
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 ) );
84 
85  // M_NEMA_FR4_plate
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 ) );
95 
96  // Silicon
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 ) );
106 
107  // Other
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 ) );
117 
118  // Air
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 ) );
128 
129  //StainlessSteel
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 ) );
139 
140  //WCu
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 ) );
150 
151  // Lead
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 ) );
161 
162  //=========================================================================================================
163  // total Lambda0
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 ) );
167 
168  // rr
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 ) );
176 
177  // Copper
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 ) );
187 
188  // H_Scintillator
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 ) );
198 
199  // Cables
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 ) );
209 
210  // M_NEMA_FR4_plate
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 ) );
220 
221  // Silicon
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 ) );
231 
232  // Other
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 ) );
242 
243  // Air
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 ) );
253 
254  //StainlessSteel
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 ) );
264 
265  //WCu
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 ) );
275 
276  // Lead
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 ) );
286 
287 
288  std::cout << "=== booking user histos done ===" << std::endl;
289 
290 }
291 
292 
294 {
295 
296 }
297 
298 
300 {
301 
302 }
303 
304 
306 {
307  //
308  // fill histograms and profiles only if the material has been crossed
309  //
310 
311  if( theData->getNumberOfSteps() != 0 ) {
312 
313  // Total X0
314  hmgr->getHisto1(11)->Fill(theData->getEta());
315  hmgr->getHisto1(21)->Fill(theData->getPhi());
316  hmgr->getHisto2(31)->Fill(theData->getEta(),theData->getPhi());
317 
318  hmgr->getHistoProf1(10)->Fill(theData->getEta(),theData->getTotalMB());
319  hmgr->getHistoProf1(20)->Fill(theData->getPhi(),theData->getTotalMB());
320  hmgr->getHistoProf2(30)->Fill(theData->getEta(),theData->getPhi(),theData->getTotalMB());
321 
322  // rr
323 
324  // Copper
325  hmgr->getHistoProf1(110)->Fill(theData->getEta(),theData->getCopperMB());
326  hmgr->getHistoProf1(120)->Fill(theData->getPhi(),theData->getCopperMB());
327  hmgr->getHistoProf2(130)->Fill(theData->getEta(),theData->getPhi(),theData->getCopperMB());
328 
329  // H_Scintillator
330  hmgr->getHistoProf1(210)->Fill(theData->getEta(),theData->getH_ScintillatorMB());
331  hmgr->getHistoProf1(220)->Fill(theData->getPhi(),theData->getH_ScintillatorMB());
332  hmgr->getHistoProf2(230)->Fill(theData->getEta(),theData->getPhi(),theData->getH_ScintillatorMB());
333 
334  // Cables
335  hmgr->getHistoProf1(310)->Fill(theData->getEta(),theData->getCablesMB());
336  hmgr->getHistoProf1(320)->Fill(theData->getPhi(),theData->getCablesMB());
337  hmgr->getHistoProf2(330)->Fill(theData->getEta(),theData->getPhi(),theData->getCablesMB());
338 
339  // M_NEMA_FR4_plate
340  hmgr->getHistoProf1(410)->Fill(theData->getEta(),theData->getM_NEMA_FR4_plateMB());
341  hmgr->getHistoProf1(420)->Fill(theData->getPhi(),theData->getM_NEMA_FR4_plateMB());
342  hmgr->getHistoProf2(430)->Fill(theData->getEta(),theData->getPhi(),theData->getM_NEMA_FR4_plateMB());
343 
344  // Silicon
345  hmgr->getHistoProf1(510)->Fill(theData->getEta(),theData->getSiliconMB());
346  hmgr->getHistoProf1(520)->Fill(theData->getPhi(),theData->getSiliconMB());
347  hmgr->getHistoProf2(530)->Fill(theData->getEta(),theData->getPhi(),theData->getSiliconMB());
348 
349  // Other
350  hmgr->getHistoProf1(610)->Fill(theData->getEta(),theData->getOtherMB());
351  hmgr->getHistoProf1(620)->Fill(theData->getPhi(),theData->getOtherMB());
352  hmgr->getHistoProf2(630)->Fill(theData->getEta(),theData->getPhi(),theData->getOtherMB());
353 
354  // Air
355  hmgr->getHistoProf1(710)->Fill(theData->getEta(),theData->getAirMB());
356  hmgr->getHistoProf1(720)->Fill(theData->getPhi(),theData->getAirMB());
357  hmgr->getHistoProf2(730)->Fill(theData->getEta(),theData->getPhi(),theData->getAirMB());
358 
359  // StainlessSteel
360  hmgr->getHistoProf1(810)->Fill(theData->getEta(),theData->getStainlessSteelMB());
361  hmgr->getHistoProf1(820)->Fill(theData->getPhi(),theData->getStainlessSteelMB());
362  hmgr->getHistoProf2(830)->Fill(theData->getEta(),theData->getPhi(),theData->getStainlessSteelMB());
363 
364  // WCu
365  hmgr->getHistoProf1(910)->Fill(theData->getEta(),theData->getWCuMB());
366  hmgr->getHistoProf1(920)->Fill(theData->getPhi(),theData->getWCuMB());
367  hmgr->getHistoProf2(930)->Fill(theData->getEta(),theData->getPhi(),theData->getWCuMB());
368 
369  // Lead
370  hmgr->getHistoProf1(1010)->Fill(theData->getEta(),theData->getLeadMB());
371  hmgr->getHistoProf1(1020)->Fill(theData->getPhi(),theData->getLeadMB());
372  hmgr->getHistoProf2(1030)->Fill(theData->getEta(),theData->getPhi(),theData->getLeadMB());
373 
374  //
375  // Compute the total x/X0 crossed at each step radius for each path
376  //
377  //
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);
401 
402  int iCop = 0;
403  int iSci = 0;
404  int iCab = 0;
405  int iMne = 0;
406  int iSil = 0;
407  int iOth = 0;
408  int iAir = 0;
409  int iSst = 0;
410  int iWcu = 0;
411  int iLea = 0;
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; }
422 
423  float deltaRadius = sqrt(
424  pow( theData->getStepFinalX(iStep)-theData->getStepInitialX(iStep),2 )
425  +
426  pow( theData->getStepFinalY(iStep)-theData->getStepInitialY(iStep),2 )
427  );
428  float deltaz = theData->getStepFinalZ(iStep)-theData->getStepInitialZ(iStep) ;
429 
430  float deltaeta = theData->getStepFinalEta(iStep)-theData->getStepInitialEta(iStep) ;
431 
432  // float deltaphi = theData->getStepFinalPhi(iStep)-theData->getStepInitialPhi(iStep) ;
433 
434  float x0 = theData->getStepMaterialX0(iStep);
435 
436  int nSubStep = 2;
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
442  ));
443  }
444 
445  for(int iSubStep = 1; iSubStep < nSubStep; iSubStep+=2) {
446 
447  float subdeltaRadius = deltaRadius/nSubStep;
448  float polarRadius = sqrt(
449  pow( theData->getStepInitialX(iStep),2 )
450  +
451  pow( theData->getStepInitialY(iStep),2 )
452  ) + iSubStep*subdeltaRadius;
453 
454  float subdeltaz = deltaz/nSubStep;
455  float z = theData->getStepInitialZ(iStep) + iSubStep*subdeltaz;
456 
457  float subdeltaeta = deltaeta/nSubStep;
458  float eta = theData->getStepInitialEta(iStep) + iSubStep*subdeltaeta;
459 
460  // float subdeltaphi = deltaphi/nSubStep;
461  // float phi = theData->getStepInitialPhi(iStep) + iSubStep*subdeltaphi;
462 
463  float subdelta = sqrt(
464  pow ( subdeltaRadius,2 ) + pow( subdeltaz,2 )
465  );
466 
467  float fillValue=subdelta/x0;
468 
469  float costhetacorrection = cos( 2 * atan(exp(-fabs(eta))) );
470  // Average length
471  hmgr->getHisto2(999)->Fill(z,polarRadius,subdelta);
472  // Total
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 );
481 
482  // Copper
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 );
489 
490  // H_Scintillator
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 );
497 
498  // Cables
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 );
505 
506  // M_NEMA_FR4_plate
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 );
513 
514  // Silicon
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 );
521 
522  // Other
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 );
529 
530  // Air
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 );
537 
538  // StainlessSteel
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 );
545 
546  // WCu
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 );
553 
554  // Lead
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 );
561 
562  }
563  }
564 
565  //============================================================================================
566  // Total Lambda0
567  hmgr->getHistoProf1(10010)->Fill(theData->getEta(),theData->getTotalIL());
568  hmgr->getHistoProf1(10020)->Fill(theData->getPhi(),theData->getTotalIL());
569  hmgr->getHistoProf2(10030)->Fill(theData->getEta(),theData->getPhi(),theData->getTotalIL());
570 
571  // Copper
572  hmgr->getHistoProf1(10110)->Fill(theData->getEta(),theData->getCopperIL());
573  hmgr->getHistoProf1(10120)->Fill(theData->getPhi(),theData->getCopperIL());
574  hmgr->getHistoProf2(10130)->Fill(theData->getEta(),theData->getPhi(),theData->getCopperIL());
575 
576  // H_Scintillator
577  hmgr->getHistoProf1(10210)->Fill(theData->getEta(),theData->getH_ScintillatorIL());
578  hmgr->getHistoProf1(10220)->Fill(theData->getPhi(),theData->getH_ScintillatorIL());
579  hmgr->getHistoProf2(10230)->Fill(theData->getEta(),theData->getPhi(),theData->getH_ScintillatorIL());
580 
581  // Cables
582  hmgr->getHistoProf1(10310)->Fill(theData->getEta(),theData->getCablesIL());
583  hmgr->getHistoProf1(10320)->Fill(theData->getPhi(),theData->getCablesIL());
584  hmgr->getHistoProf2(10330)->Fill(theData->getEta(),theData->getPhi(),theData->getCablesIL());
585 
586  // M_NEMA_FR4_plate
587  hmgr->getHistoProf1(10410)->Fill(theData->getEta(),theData->getM_NEMA_FR4_plateIL());
588  hmgr->getHistoProf1(10420)->Fill(theData->getPhi(),theData->getM_NEMA_FR4_plateIL());
589  hmgr->getHistoProf2(10430)->Fill(theData->getEta(),theData->getPhi(),theData->getM_NEMA_FR4_plateIL());
590 
591  // Silicon
592  hmgr->getHistoProf1(10510)->Fill(theData->getEta(),theData->getSiliconIL());
593  hmgr->getHistoProf1(10520)->Fill(theData->getPhi(),theData->getSiliconIL());
594  hmgr->getHistoProf2(10530)->Fill(theData->getEta(),theData->getPhi(),theData->getSiliconIL());
595 
596  // Other
597  hmgr->getHistoProf1(10610)->Fill(theData->getEta(),theData->getOtherIL());
598  hmgr->getHistoProf1(10620)->Fill(theData->getPhi(),theData->getOtherIL());
599  hmgr->getHistoProf2(10630)->Fill(theData->getEta(),theData->getPhi(),theData->getOtherIL());
600 
601  // Air
602  hmgr->getHistoProf1(10710)->Fill(theData->getEta(),theData->getAirIL());
603  hmgr->getHistoProf1(10720)->Fill(theData->getPhi(),theData->getAirIL());
604  hmgr->getHistoProf2(10730)->Fill(theData->getEta(),theData->getPhi(),theData->getAirIL());
605 
606  // StainlessSteel
607  hmgr->getHistoProf1(10810)->Fill(theData->getEta(),theData->getStainlessSteelIL());
608  hmgr->getHistoProf1(10820)->Fill(theData->getPhi(),theData->getStainlessSteelIL());
609  hmgr->getHistoProf2(10830)->Fill(theData->getEta(),theData->getPhi(),theData->getStainlessSteelIL());
610 
611  // WCu
612  hmgr->getHistoProf1(10910)->Fill(theData->getEta(),theData->getWCuIL());
613  hmgr->getHistoProf1(10920)->Fill(theData->getPhi(),theData->getWCuIL());
614  hmgr->getHistoProf2(10930)->Fill(theData->getEta(),theData->getPhi(),theData->getWCuIL());
615 
616  // Lead
617  hmgr->getHistoProf1(11010)->Fill(theData->getEta(),theData->getLeadIL());
618  hmgr->getHistoProf1(11020)->Fill(theData->getPhi(),theData->getLeadIL());
619  hmgr->getHistoProf2(11030)->Fill(theData->getEta(),theData->getPhi(),theData->getLeadIL());
620 
621  // Compute the total l/l0 crossed at each step radius for each path
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);
645 
646  int iCop = 0;
647  int iSci = 0;
648  int iCab = 0;
649  int iMne = 0;
650  int iSil = 0;
651  int iOth = 0;
652  int iAir = 0;
653  int iSst = 0;
654  int iWcu = 0;
655  int iLea = 0;
656 
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; }
667 
668  float deltaRadius = sqrt(
669  pow( theData->getStepFinalX(iStep)-theData->getStepInitialX(iStep),2 )
670  +
671  pow( theData->getStepFinalY(iStep)-theData->getStepInitialY(iStep),2 )
672  );
673  float deltaz = theData->getStepFinalZ(iStep)-theData->getStepInitialZ(iStep) ;
674 
675  float deltaeta = theData->getStepFinalEta(iStep)-theData->getStepInitialEta(iStep) ;
676 
677  // float deltaphi = theData->getStepFinalPhi(iStep)-theData->getStepInitialPhi(iStep) ;
678 
679  float il = theData->getStepMaterialLambda0(iStep);
680 
681  int nSubStep = 2;
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
687  ));
688  }
689 
690  for(int iSubStep = 1; iSubStep < nSubStep; iSubStep+=2) {
691 
692  float subdeltaRadius = deltaRadius/nSubStep;
693  float polarRadius = sqrt(
694  pow( theData->getStepInitialX(iStep),2 )
695  +
696  pow( theData->getStepInitialY(iStep),2 )
697  ) + iSubStep*subdeltaRadius;
698 
699  float subdeltaz = deltaz/nSubStep;
700  float z = theData->getStepInitialZ(iStep) + iSubStep*subdeltaz;
701 
702  float subdeltaeta = deltaeta/nSubStep;
703  float eta = theData->getStepInitialEta(iStep) + iSubStep*subdeltaeta;
704 
705  // float subdeltaphi = deltaphi/nSubStep;
706  // float phi = theData->getStepInitialPhi(iStep) + iSubStep*subdeltaphi;
707 
708  float subdelta = sqrt(
709  pow ( subdeltaRadius,2 ) + pow( subdeltaz,2 )
710  );
711 
712  float fillValue=subdelta/il;
713 
714  float costhetacorrection = cos( 2 * atan(exp(-fabs(eta))) );
715  // Average length
716  hmgr->getHisto2(1999)->Fill(z,polarRadius,subdelta);
717  // Total
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 );
724 
725  // Copper
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 );
732 
733  // H_Scintillator
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 );
740 
741  // Cables
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 );
748 
749  // M_NEMA_FR4_plate
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 );
756 
757  // Silicon
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 );
764 
765  // Other
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 );
772 
773  // Air
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 );
780 
781  // StainlessSteel
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 );
788 
789  // WCu
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 );
796 
797  // Lead
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 );
804 
805  }
806 
807  }
808 
809  // rr
810  } else {
811  std::cout << "*** WARNING This event is out of the acceptance *** " << std::endl;
812  std::cout << "eta = " << theData->getEta()
813  << "\t phi = " << theData->getPhi()
814  << "\t x/X0 = " << theData->getTotalMB()
815  << "\t l/l0 = " << theData->getTotalIL()
816  << "\t steps = " << theData->getNumberOfSteps()
817  << std::endl;
818  std::cout << "***" << std::endl;
819  }
820 
821 
822 }
823 
825 {
826 
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));
838 
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));
850 
851  std::cout << "=== save user histos ===" << std::endl;
852  hmgr->save( theFileName );
853 
854 }
855 
856 
MaterialBudgetHGCalHistos(std::shared_ptr< MaterialBudgetData > data, std::shared_ptr< TestHistoMgr > mgr, const std::string &fileName)
T sqrt(T t)
Definition: SSEVec.h:18
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
const T & max(const T &a, const T &b)
double b
Definition: hdecay.h:120
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
double a
Definition: hdecay.h:121
std::shared_ptr< TestHistoMgr > hmgr
long double T
std::shared_ptr< MaterialBudgetData > theData
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40