CMS 3D CMS Logo

MaterialBudgetMtdHistos.cc
Go to the documentation of this file.
3 
4 #include "CLHEP/Units/GlobalSystemOfUnits.h"
5 
6 MaterialBudgetMtdHistos::MaterialBudgetMtdHistos(std::shared_ptr<MaterialBudgetData> data,
7  std::shared_ptr<TestHistoMgr> mgr,
8  const std::string& fileName)
9  : MaterialBudgetFormat(data), hmgr(mgr) {
11  book();
12 }
13 
15  edm::LogInfo("MaterialBudget") << "MaterialBudgetMtdHistos: Booking user histos";
16 
17  static constexpr double minEta = -5.;
18  static constexpr double maxEta = 5.;
19  static constexpr double minPhi = -3.1416;
20  static constexpr double maxPhi = 3.1416;
21  static constexpr int nbinEta = 250;
22  static constexpr int nbinPhi = 180;
23 
24  // Material budget: radiation length
25  // total X0
26  hmgr->addHistoProf1(new TProfile("10", "MB prof Eta [Total];#eta;x/X_{0} ", nbinEta, minEta, maxEta));
27  hmgr->addHisto1(new TH1F("11", "Eta ", nbinEta, minEta, maxEta));
28  hmgr->addHistoProf1(new TProfile("20", "MB prof Phi [Total];#varphi [rad];x/X_{0} ", nbinPhi, minPhi, maxPhi));
29  hmgr->addHisto1(new TH1F("21", "Phi ", nbinPhi, minPhi, maxPhi));
30  hmgr->addHistoProf2(new TProfile2D(
31  "30", "MB prof Eta Phi [Total];#eta;#varphi;x/X_{0} ", nbinEta, minEta, maxEta, nbinPhi, minPhi, maxPhi));
32  hmgr->addHisto2(new TH2F("31", "Eta vs Phi ", nbinEta, minEta, maxEta, nbinPhi, minPhi, maxPhi));
33 
34  // Support
35  hmgr->addHistoProf1(new TProfile("110", "MB prof Eta [Support];#eta;x/X_{0}", nbinEta, minEta, maxEta));
36  hmgr->addHisto1(new TH1F("111", "Eta [Support]", nbinEta, minEta, maxEta));
37  hmgr->addHistoProf1(new TProfile("120", "MB prof Phi [Support];#varphi [rad];x/X_{0}", nbinPhi, minPhi, maxPhi));
38  hmgr->addHisto1(new TH1F("121", "Phi [Support]", nbinPhi, minPhi, maxPhi));
39  hmgr->addHistoProf2(new TProfile2D(
40  "130", "MB prof Eta Phi [Support];#eta;#varphi;x/X_{0}", nbinEta, minEta, maxEta, nbinPhi, minPhi, maxPhi));
41  hmgr->addHisto2(new TH2F("131", "Eta vs Phi [Support]", nbinEta, minEta, maxEta, nbinPhi, minPhi, maxPhi));
42 
43  // Sensitive
44  hmgr->addHistoProf1(new TProfile("210", "MB prof Eta [Sensitive];#eta;x/X_{0}", nbinEta, minEta, maxEta));
45  hmgr->addHisto1(new TH1F("211", "Eta [Sensitive]", nbinEta, minEta, maxEta));
46  hmgr->addHistoProf1(new TProfile("220", "MB prof Phi [Sensitive];#varphi [rad];x/X_{0}", nbinPhi, minPhi, maxPhi));
47  hmgr->addHisto1(new TH1F("221", "Phi [Sensitive]", nbinPhi, minPhi, maxPhi));
48  hmgr->addHistoProf2(new TProfile2D(
49  "230", "MB prof Eta Phi [Sensitive];#eta;#varphi;x/X_{0}", nbinEta, minEta, maxEta, nbinPhi, minPhi, maxPhi));
50  hmgr->addHisto2(new TH2F("231", "Eta vs Phi [Sensitive]", nbinEta, minEta, maxEta, nbinPhi, minPhi, maxPhi));
51 
52  // Cables
53  hmgr->addHistoProf1(new TProfile("310", "MB prof Eta [Cables];#eta;x/X_{0}", nbinEta, minEta, maxEta));
54  hmgr->addHisto1(new TH1F("311", "Eta [Cables]", nbinEta, minEta, maxEta));
55  hmgr->addHistoProf1(new TProfile("320", "MB prof Phi [Cables];#varphi [rad];x/X_{0}", nbinPhi, minPhi, maxPhi));
56  hmgr->addHisto1(new TH1F("321", "Phi [Cables]", nbinPhi, minPhi, maxPhi));
57  hmgr->addHistoProf2(new TProfile2D(
58  "330", "MB prof Eta Phi [Cables];#eta;#varphi;x/X_{0}", nbinEta, minEta, maxEta, nbinPhi, minPhi, maxPhi));
59  hmgr->addHisto2(new TH2F("331", "Eta vs Phi [Cables]", nbinEta, minEta, maxEta, nbinPhi, minPhi, maxPhi));
60 
61  // Cooling
62  hmgr->addHistoProf1(new TProfile("410", "MB prof Eta [Cooling];#eta;x/X_{0}", nbinEta, minEta, maxEta));
63  hmgr->addHisto1(new TH1F("411", "Eta [Cooling]", nbinEta, minEta, maxEta));
64  hmgr->addHistoProf1(new TProfile("420", "MB prof Phi [Cooling];#varphi [rad];x/X_{0}", nbinPhi, minPhi, maxPhi));
65  hmgr->addHisto1(new TH1F("421", "Phi [Cooling]", nbinPhi, minPhi, maxPhi));
66  hmgr->addHistoProf2(new TProfile2D(
67  "430", "MB prof Eta Phi [Cooling];#eta;#varphi;x/X_{0}", nbinEta, minEta, maxEta, nbinPhi, minPhi, maxPhi));
68  hmgr->addHisto2(new TH2F("431", "Eta vs Phi [Cooling]", nbinEta, minEta, maxEta, nbinPhi, minPhi, maxPhi));
69 
70  // Electronics
71  hmgr->addHistoProf1(new TProfile("510", "MB prof Eta [Electronics];#eta;x/X_{0}", nbinEta, minEta, maxEta));
72  hmgr->addHisto1(new TH1F("511", "Eta [Electronics]", nbinEta, minEta, maxEta));
73  hmgr->addHistoProf1(new TProfile("520", "MB prof Phi [Electronics];#varphi [rad];x/X_{0}", nbinPhi, minPhi, maxPhi));
74  hmgr->addHisto1(new TH1F("521", "Phi [Electronics]", nbinPhi, minPhi, maxPhi));
75  hmgr->addHistoProf2(new TProfile2D(
76  "530", "MB prof Eta Phi [Electronics];#eta;#varphi;x/X_{0}", nbinEta, minEta, maxEta, nbinPhi, minPhi, maxPhi));
77  hmgr->addHisto2(new TH2F("531", "Eta vs Phi [Electronics]", nbinEta, minEta, maxEta, nbinPhi, minPhi, maxPhi));
78 
79  // Other
80  hmgr->addHistoProf1(new TProfile("610", "MB prof Eta [Other];#eta;x/X_{0}", nbinEta, minEta, maxEta));
81  hmgr->addHisto1(new TH1F("611", "Eta [Other]", nbinEta, minEta, maxEta));
82  hmgr->addHistoProf1(new TProfile("620", "MB prof Phi [Other];#varphi [rad];x/X_{0}", nbinPhi, minPhi, maxPhi));
83  hmgr->addHisto1(new TH1F("621", "Phi [Other]", nbinPhi, minPhi, maxPhi));
84  hmgr->addHistoProf2(new TProfile2D(
85  "630", "MB prof Eta Phi [Other];#eta;#varphi;x/X_{0}", nbinEta, minEta, maxEta, nbinPhi, minPhi, maxPhi));
86  hmgr->addHisto2(new TH2F("631", "Eta vs Phi [Other]", nbinEta, minEta, maxEta, nbinPhi, minPhi, maxPhi));
87 
88  // Material budget: interaction length
89  // total Lambda0
90  hmgr->addHistoProf1(new TProfile("1010", "MB prof Eta [Total];#eta;#lambda/#lambda_{0} ", nbinEta, minEta, maxEta));
91  hmgr->addHisto1(new TH1F("1011", "Eta ", nbinEta, minEta, maxEta));
92  hmgr->addHistoProf1(
93  new TProfile("1020", "MB prof Phi [Total];#varphi [rad];#lambda/#lambda_{0} ", nbinPhi, minPhi, maxPhi));
94  hmgr->addHisto1(new TH1F("1021", "Phi ", nbinPhi, minPhi, maxPhi));
95  hmgr->addHistoProf2(new TProfile2D("1030",
96  "MB prof Eta Phi [Total];#eta;#varphi;#lambda/#lambda_{0} ",
97  nbinEta,
98  minEta,
99  maxEta,
100  nbinPhi,
101  minPhi,
102  maxPhi));
103  hmgr->addHisto2(new TH2F("1031", "Eta vs Phi ", nbinEta, minEta, maxEta, nbinPhi, minPhi, maxPhi));
104 
105  // Support
106  hmgr->addHistoProf1(new TProfile("1110", "MB prof Eta [Support];#eta;#lambda/#lambda_{0}", nbinEta, minEta, maxEta));
107  hmgr->addHisto1(new TH1F("1111", "Eta [Support]", nbinEta, minEta, maxEta));
108  hmgr->addHistoProf1(
109  new TProfile("1120", "MB prof Phi [Support];#varphi [rad];#lambda/#lambda_{0}", nbinPhi, minPhi, maxPhi));
110  hmgr->addHisto1(new TH1F("1121", "Phi [Support]", nbinPhi, minPhi, maxPhi));
111  hmgr->addHistoProf2(new TProfile2D("1130",
112  "MB prof Eta Phi [Support];#eta;#varphi;#lambda/#lambda_{0}",
113  nbinEta,
114  minEta,
115  maxEta,
116  nbinPhi,
117  minPhi,
118  maxPhi));
119  hmgr->addHisto2(new TH2F("1131", "Eta vs Phi [Support]", nbinEta, minEta, maxEta, nbinPhi, minPhi, maxPhi));
120 
121  // Sensitive
122  hmgr->addHistoProf1(
123  new TProfile("1210", "MB prof Eta [Sensitive];#eta;#lambda/#lambda_{0}", nbinEta, minEta, maxEta));
124  hmgr->addHisto1(new TH1F("1211", "Eta [Sensitive]", nbinEta, minEta, maxEta));
125  hmgr->addHistoProf1(
126  new TProfile("1220", "MB prof Phi [Sensitive];#varphi [rad];#lambda/#lambda_{0}", nbinPhi, minPhi, maxPhi));
127  hmgr->addHisto1(new TH1F("1221", "Phi [Sensitive]", nbinPhi, minPhi, maxPhi));
128  hmgr->addHistoProf2(new TProfile2D("1230",
129  "MB prof Eta Phi [Sensitive];#eta;#varphi;#lambda/#lambda_{0}",
130  nbinEta,
131  minEta,
132  maxEta,
133  nbinPhi,
134  minPhi,
135  maxPhi));
136  hmgr->addHisto2(new TH2F("1231", "Eta vs Phi [Sensitive]", nbinEta, minEta, maxEta, nbinPhi, minPhi, maxPhi));
137 
138  // Cables
139  hmgr->addHistoProf1(new TProfile("1310", "MB prof Eta [Cables];#eta;#lambda/#lambda_{0}", nbinEta, minEta, maxEta));
140  hmgr->addHisto1(new TH1F("1311", "Eta [Cables]", nbinEta, minEta, maxEta));
141  hmgr->addHistoProf1(
142  new TProfile("1320", "MB prof Phi [Cables];#varphi [rad];#lambda/#lambda_{0}", nbinPhi, minPhi, maxPhi));
143  hmgr->addHisto1(new TH1F("1321", "Phi [Cables]", nbinPhi, minPhi, maxPhi));
144  hmgr->addHistoProf2(new TProfile2D("1330",
145  "MB prof Eta Phi [Cables];#eta;#varphi;#lambda/#lambda_{0}",
146  nbinEta,
147  minEta,
148  maxEta,
149  nbinPhi,
150  minPhi,
151  maxPhi));
152  hmgr->addHisto2(new TH2F("1331", "Eta vs Phi [Cables]", nbinEta, minEta, maxEta, nbinPhi, minPhi, maxPhi));
153 
154  // Cooling
155  hmgr->addHistoProf1(new TProfile("1410", "MB prof Eta [Cooling];#eta;#lambda/#lambda_{0}", nbinEta, minEta, maxEta));
156  hmgr->addHisto1(new TH1F("1411", "Eta [Cooling]", nbinEta, minEta, maxEta));
157  hmgr->addHistoProf1(
158  new TProfile("1420", "MB prof Phi [Cooling];#varphi [rad];#lambda/#lambda_{0}", nbinPhi, minPhi, maxPhi));
159  hmgr->addHisto1(new TH1F("1421", "Phi [Cooling]", nbinPhi, minPhi, maxPhi));
160  hmgr->addHistoProf2(new TProfile2D("1430",
161  "MB prof Eta Phi [Cooling];#eta;#varphi;#lambda/#lambda_{0}",
162  nbinEta,
163  minEta,
164  maxEta,
165  nbinPhi,
166  minPhi,
167  maxPhi));
168  hmgr->addHisto2(new TH2F("1431", "Eta vs Phi [Cooling]", nbinEta, minEta, maxEta, nbinPhi, minPhi, maxPhi));
169 
170  // Electronics
171  hmgr->addHistoProf1(
172  new TProfile("1510", "MB prof Eta [Electronics];#eta;#lambda/#lambda_{0}", nbinEta, minEta, maxEta));
173  hmgr->addHisto1(new TH1F("1511", "Eta [Electronics]", nbinEta, minEta, maxEta));
174  hmgr->addHistoProf1(
175  new TProfile("1520", "MB prof Phi [Electronics];#varphi [rad];#lambda/#lambda_{0}", nbinPhi, minPhi, maxPhi));
176  hmgr->addHisto1(new TH1F("1521", "Phi [Electronics]", nbinPhi, minPhi, maxPhi));
177  hmgr->addHistoProf2(new TProfile2D("1530",
178  "MB prof Eta Phi [Electronics];#eta;#varphi;#lambda/#lambda_{0}",
179  nbinEta,
180  minEta,
181  maxEta,
182  nbinPhi,
183  minPhi,
184  maxPhi));
185  hmgr->addHisto2(new TH2F("1531", "Eta vs Phi [Electronics]", nbinEta, minEta, maxEta, nbinPhi, minPhi, maxPhi));
186 
187  // Other
188  hmgr->addHistoProf1(new TProfile("1610", "MB prof Eta [Other];#eta;#lambda/#lambda_{0}", nbinEta, minEta, maxEta));
189  hmgr->addHisto1(new TH1F("1611", "Eta [Other]", nbinEta, minEta, maxEta));
190  hmgr->addHistoProf1(
191  new TProfile("1620", "MB prof Phi [Other];#varphi [rad];#lambda/#lambda_{0}", nbinPhi, minPhi, maxPhi));
192  hmgr->addHisto1(new TH1F("1621", "Phi [Other]", nbinPhi, minPhi, maxPhi));
193  hmgr->addHistoProf2(new TProfile2D("1630",
194  "MB prof Eta Phi [Other];#eta;#varphi;#lambda/#lambda_{0}",
195  nbinEta,
196  minEta,
197  maxEta,
198  nbinPhi,
199  minPhi,
200  maxPhi));
201  hmgr->addHisto2(new TH2F("1631", "Eta vs Phi [Other]", nbinEta, minEta, maxEta, nbinPhi, minPhi, maxPhi));
202 
203  edm::LogInfo("MaterialBudget") << "MaterialBudgetMtdHistos: booking user histos done";
204 }
205 
207 
209 
211  // Total X0
212  hmgr->getHisto1(11)->Fill(theData->getEta());
213  hmgr->getHisto1(21)->Fill(theData->getPhi());
214  hmgr->getHisto2(31)->Fill(theData->getEta(), theData->getPhi());
215 
216  hmgr->getHistoProf1(10)->Fill(theData->getEta(), theData->getTotalMB());
217  hmgr->getHistoProf1(20)->Fill(theData->getPhi(), theData->getTotalMB());
218  hmgr->getHistoProf2(30)->Fill(theData->getEta(), theData->getPhi(), theData->getTotalMB());
219 
220  // Support
221  hmgr->getHisto1(111)->Fill(theData->getEta());
222  hmgr->getHisto1(121)->Fill(theData->getPhi());
223  hmgr->getHisto2(131)->Fill(theData->getEta(), theData->getPhi());
224 
225  hmgr->getHistoProf1(110)->Fill(theData->getEta(), theData->getSupportMB());
226  hmgr->getHistoProf1(120)->Fill(theData->getPhi(), theData->getSupportMB());
227  hmgr->getHistoProf2(130)->Fill(theData->getEta(), theData->getPhi(), theData->getSupportMB());
228 
229  // Sensitive
230  hmgr->getHisto1(211)->Fill(theData->getEta());
231  hmgr->getHisto1(221)->Fill(theData->getPhi());
232  hmgr->getHisto2(231)->Fill(theData->getEta(), theData->getPhi());
233 
234  hmgr->getHistoProf1(210)->Fill(theData->getEta(), theData->getSensitiveMB());
235  hmgr->getHistoProf1(220)->Fill(theData->getPhi(), theData->getSensitiveMB());
236  hmgr->getHistoProf2(230)->Fill(theData->getEta(), theData->getPhi(), theData->getSensitiveMB());
237 
238  // Cables
239  hmgr->getHisto1(311)->Fill(theData->getEta());
240  hmgr->getHisto1(321)->Fill(theData->getPhi());
241  hmgr->getHisto2(331)->Fill(theData->getEta(), theData->getPhi());
242 
243  hmgr->getHistoProf1(310)->Fill(theData->getEta(), theData->getCablesMB());
244  hmgr->getHistoProf1(320)->Fill(theData->getPhi(), theData->getCablesMB());
245  hmgr->getHistoProf2(330)->Fill(theData->getEta(), theData->getPhi(), theData->getCablesMB());
246 
247  // Cooling
248  hmgr->getHisto1(411)->Fill(theData->getEta());
249  hmgr->getHisto1(421)->Fill(theData->getPhi());
250  hmgr->getHisto2(431)->Fill(theData->getEta(), theData->getPhi());
251 
252  hmgr->getHistoProf1(410)->Fill(theData->getEta(), theData->getCoolingMB());
253  hmgr->getHistoProf1(420)->Fill(theData->getPhi(), theData->getCoolingMB());
254  hmgr->getHistoProf2(430)->Fill(theData->getEta(), theData->getPhi(), theData->getCoolingMB());
255 
256  // Electronics
257  hmgr->getHisto1(511)->Fill(theData->getEta());
258  hmgr->getHisto1(521)->Fill(theData->getPhi());
259  hmgr->getHisto2(531)->Fill(theData->getEta(), theData->getPhi());
260 
261  hmgr->getHistoProf1(510)->Fill(theData->getEta(), theData->getElectronicsMB());
262  hmgr->getHistoProf1(520)->Fill(theData->getPhi(), theData->getElectronicsMB());
263  hmgr->getHistoProf2(530)->Fill(theData->getEta(), theData->getPhi(), theData->getElectronicsMB());
264 
265  // Other
266  hmgr->getHisto1(611)->Fill(theData->getEta());
267  hmgr->getHisto1(621)->Fill(theData->getPhi());
268  hmgr->getHisto2(631)->Fill(theData->getEta(), theData->getPhi());
269 
270  hmgr->getHistoProf1(610)->Fill(theData->getEta(), theData->getOtherMB());
271  hmgr->getHistoProf1(620)->Fill(theData->getPhi(), theData->getOtherMB());
272  hmgr->getHistoProf2(630)->Fill(theData->getEta(), theData->getPhi(), theData->getOtherMB());
273 
274  // Total Lambda0
275  hmgr->getHisto1(1011)->Fill(theData->getEta());
276  hmgr->getHisto1(1021)->Fill(theData->getPhi());
277  hmgr->getHisto2(1031)->Fill(theData->getEta(), theData->getPhi());
278 
279  hmgr->getHistoProf1(1010)->Fill(theData->getEta(), theData->getTotalIL());
280  hmgr->getHistoProf1(1020)->Fill(theData->getPhi(), theData->getTotalIL());
281  hmgr->getHistoProf2(1030)->Fill(theData->getEta(), theData->getPhi(), theData->getTotalIL());
282 
283  // Support
284  hmgr->getHisto1(1111)->Fill(theData->getEta());
285  hmgr->getHisto1(1121)->Fill(theData->getPhi());
286  hmgr->getHisto2(1131)->Fill(theData->getEta(), theData->getPhi());
287 
288  hmgr->getHistoProf1(1110)->Fill(theData->getEta(), theData->getSupportIL());
289  hmgr->getHistoProf1(1120)->Fill(theData->getPhi(), theData->getSupportIL());
290  hmgr->getHistoProf2(1130)->Fill(theData->getEta(), theData->getPhi(), theData->getSupportIL());
291 
292  // Sensitive
293  hmgr->getHisto1(1211)->Fill(theData->getEta());
294  hmgr->getHisto1(1221)->Fill(theData->getPhi());
295  hmgr->getHisto2(1231)->Fill(theData->getEta(), theData->getPhi());
296 
297  hmgr->getHistoProf1(1210)->Fill(theData->getEta(), theData->getSensitiveIL());
298  hmgr->getHistoProf1(1220)->Fill(theData->getPhi(), theData->getSensitiveIL());
299  hmgr->getHistoProf2(1230)->Fill(theData->getEta(), theData->getPhi(), theData->getSensitiveIL());
300 
301  // Cables
302  hmgr->getHisto1(1311)->Fill(theData->getEta());
303  hmgr->getHisto1(1321)->Fill(theData->getPhi());
304  hmgr->getHisto2(1331)->Fill(theData->getEta(), theData->getPhi());
305 
306  hmgr->getHistoProf1(1310)->Fill(theData->getEta(), theData->getCablesIL());
307  hmgr->getHistoProf1(1320)->Fill(theData->getPhi(), theData->getCablesIL());
308  hmgr->getHistoProf2(1330)->Fill(theData->getEta(), theData->getPhi(), theData->getCablesIL());
309 
310  // Cooling
311  hmgr->getHisto1(1411)->Fill(theData->getEta());
312  hmgr->getHisto1(1421)->Fill(theData->getPhi());
313  hmgr->getHisto2(1431)->Fill(theData->getEta(), theData->getPhi());
314 
315  hmgr->getHistoProf1(1410)->Fill(theData->getEta(), theData->getCoolingIL());
316  hmgr->getHistoProf1(1420)->Fill(theData->getPhi(), theData->getCoolingIL());
317  hmgr->getHistoProf2(1430)->Fill(theData->getEta(), theData->getPhi(), theData->getCoolingIL());
318 
319  // Electronics
320  hmgr->getHisto1(1511)->Fill(theData->getEta());
321  hmgr->getHisto1(1521)->Fill(theData->getPhi());
322  hmgr->getHisto2(1531)->Fill(theData->getEta(), theData->getPhi());
323 
324  hmgr->getHistoProf1(1510)->Fill(theData->getEta(), theData->getElectronicsIL());
325  hmgr->getHistoProf1(1520)->Fill(theData->getPhi(), theData->getElectronicsIL());
326  hmgr->getHistoProf2(1530)->Fill(theData->getEta(), theData->getPhi(), theData->getElectronicsIL());
327 
328  // Other
329  hmgr->getHisto1(1611)->Fill(theData->getEta());
330  hmgr->getHisto1(1621)->Fill(theData->getPhi());
331  hmgr->getHisto2(1631)->Fill(theData->getEta(), theData->getPhi());
332 
333  hmgr->getHistoProf1(1610)->Fill(theData->getEta(), theData->getOtherIL());
334  hmgr->getHistoProf1(1620)->Fill(theData->getPhi(), theData->getOtherIL());
335  hmgr->getHistoProf2(1630)->Fill(theData->getEta(), theData->getPhi(), theData->getOtherIL());
336 }
337 
339  edm::LogInfo("MaterialBudget") << "MaterialBudgetMtdHistos: Writing histos ROOT file to:" << theFileName;
340  hmgr->save(theFileName);
341 }
double maxEta
std::shared_ptr< TestHistoMgr > hmgr
Log< level::Info, false > LogInfo
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
MaterialBudgetMtdHistos(std::shared_ptr< MaterialBudgetData > data, std::shared_ptr< TestHistoMgr > mgr, const std::string &fileName)
std::shared_ptr< MaterialBudgetData > theData