ATLAS Offline Software
MDTRawDataUtilsRun3.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // Utils for the main MdtRawDataMonAlg.cxx
7 // Part of MdtRawDataMonAlg.h
8 // Authors
9 // see MdtRawDataMonAlg.cxx
11 
12 #include <TLine.h>
13 #include <TList.h>
14 #include <TString.h>
15 
16 #include <string>
17 
18 #include "MdtRawDataMonAlg.h"
21 
22 using std::string;
23 
25  // Set x-axis labels
26  int LowerEta = 0;
27  int UpperEta = 0;
28  if (ecap == 'B') {
29  LowerEta = -8;
30  UpperEta = 8;
31  } else {
32  LowerEta = -6;
33  UpperEta = 6;
34  }
35  TString eta_s;
36  for (int ieta = LowerEta; ieta != UpperEta + 1; ++ieta) {
37  if (ieta == 0 && ecap == 'E') continue;
38  eta_s = ecap;
39  (ieta < 0) ? eta_s += "C" : ((ieta > 0) ? eta_s += "A" : eta_s += "B");
40  eta_s += std::to_string(std::abs(ieta));
41  h->Fill(eta_s, 1, 0);
42  }
43 
44  // Set y-axis labels
45  TString phi_s;
46  for (int iphi = 1; iphi <= 16; iphi++) {
47  if (iphi < 10)
48  phi_s = "0" + std::to_string(iphi);
49  else
50  phi_s = std::to_string(iphi);
51  if (ecap == 'B' && (iphi == 11 || iphi == 15)) {
52  h->Fill(eta_s, "I," + phi_s + ",R", 0);
53  h->Fill(eta_s, "I," + phi_s + ",M", 0);
54  h->Fill(eta_s, "M," + phi_s, 0);
55  h->Fill(eta_s, "O," + phi_s, 0);
56  } else {
57  h->Fill(eta_s, "I," + phi_s, 0);
58  h->Fill(eta_s, "M," + phi_s, 0);
59  h->Fill(eta_s, "O," + phi_s, 0);
60  if (iphi % 2 == 0 && ecap == 'B')
61  h->Fill(eta_s, "E," + phi_s, 0);
62  else if (ecap == 'E')
63  h->Fill(eta_s, "E," + phi_s, 0);
64  }
65  }
66 
67  h->LabelsDeflate("X");
68  h->LabelsDeflate("Y");
69  h->LabelsOption("a", "Y");
70  h->Reset();
71 
72  return StatusCode::SUCCESS;
73 }
74 
75 StatusCode MdtRawDataMonAlg::binMdtRegional(TH2* h, std::string_view xAxis) {
77  int LowerEta = -0;
78  int UpperEta = 0;
79  if (xAxis.substr(0, 2) == "BO" || xAxis.substr(0, 2) == "BI") { // Barrel Hit Mutltiplicities
80  LowerEta = -8;
81  UpperEta = 8;
82  } else if (xAxis.substr(0, 2) == "BM" || xAxis.substr(0, 2) == "EO") {
83  LowerEta = -6;
84  UpperEta = 6;
85  } else if (xAxis.substr(0, 2) == "EM" || xAxis.substr(0, 2) == "EI") {
86  LowerEta = -5;
87  UpperEta = 5;
88  } else {
89  LowerEta = -2;
90  UpperEta = 2;
91  }
92 
93  // Set x-axis labels
94  TString eta_s;
95  for (int ieta = LowerEta; ieta != UpperEta + 1; ++ieta) {
96  if (xAxis.substr(2, 1) == "A" && ieta < 0) continue; // A side goes from 1-...
97  if (xAxis.substr(2, 1) == "C" && ieta == 0) break; // C side goes from ...-1
98  if (ieta == 0 && xAxis.substr(0, 2) == "BO")
99  eta_s = "BOB";
100  else if (ieta == 0)
101  continue;
102  else
103  eta_s = xAxis.substr(0, 3);
104  eta_s += std::to_string(std::abs(ieta));
105  h->Fill(eta_s, 1, 0);
106  }
107 
108  bool barrelExtra = (xAxis == "BEA" || xAxis == "BEC");
109  // Set y-axis labels
110  TString phi_s;
111  for (int iphi = 1; iphi <= 16; iphi++) {
112  if (iphi < 10)
113  phi_s = "0" + std::to_string(iphi);
114  else
115  phi_s = std::to_string(iphi);
116  if (!barrelExtra) {
117  // Also uncomment lines in MdtRawDataValAlg.cxx in fillMDTSummaryHistograms() that actually fill these values
118  if (xAxis.substr(0, 2) == "BI" && (iphi == 11 || iphi == 15)) {
119  h->Fill(eta_s, phi_s + ",1,R", 0);
120  h->Fill(eta_s, phi_s + ",2,R", 0);
121  h->Fill(eta_s, phi_s + ",1,M", 0);
122  h->Fill(eta_s, phi_s + ",2,M", 0);
123  } else {
124  h->Fill(eta_s, phi_s + ",1", 0);
125  h->Fill(eta_s, phi_s + ",2", 0);
126  }
127  } else if (iphi % 2 == 0)
128  h->Fill(eta_s, phi_s + ",1", 0);
129  } // loop over phi
130 
131  h->LabelsDeflate("X");
132  h->LabelsDeflate("Y");
133  h->Reset();
134 
135  return StatusCode::SUCCESS;
136 }
137 
138 StatusCode MdtRawDataMonAlg::binMdtGlobal_byLayer(TH2* nHits_In, TH2* nHits_Mid, TH2* nHits_Out) {
139  for (int iPhi = 1; iPhi != 17; ++iPhi) {
140  TString phiString = "";
141  if (iPhi < 10)
142  phiString = "0" + std::to_string(iPhi);
143  else
144  phiString = std::to_string(iPhi);
145  TString phiString_ml1 = phiString + ",1";
146  TString phiString_ml2 = phiString + ",2";
147  if (iPhi == 11 || iPhi == 15) {
148  TString phiString_ml1_BIR = phiString + ",1,R";
149  TString phiString_ml2_BIR = phiString + ",2,R";
150  nHits_In->Fill("EIC5", phiString_ml1_BIR, 0.);
151  nHits_In->Fill("EIC5", phiString_ml2_BIR, 0.);
152  TString phiString_ml1_BIM = phiString + ",1,M";
153  TString phiString_ml2_BIM = phiString + ",2,M";
154  nHits_In->Fill("EIC5", phiString_ml1_BIM, 0.);
155  nHits_In->Fill("EIC5", phiString_ml2_BIM, 0.);
156  } else {
157  nHits_In->Fill("EIC5", phiString_ml1, 0.);
158  nHits_In->Fill("EIC5", phiString_ml2, 0.);
159  }
160  nHits_Mid->Fill("EMC5", phiString_ml1, 0.);
161  nHits_Mid->Fill("EMC5", phiString_ml2, 0.);
162  nHits_Out->Fill("EOC6", phiString_ml1, 0.);
163  nHits_Out->Fill("EOC6", phiString_ml2, 0.);
164  }
165  for (int iEta = 6; iEta != -2; --iEta) {
166  TString etaIn = "EIC" + std::to_string(iEta);
167  TString etaMid = "EMC" + std::to_string(iEta);
168  TString etaOut = "EOC" + std::to_string(iEta);
169  if (iEta > 0) {
170  if (iEta < 6) {
171  nHits_In->Fill(etaIn, "01,1", 0);
172  nHits_Mid->Fill(etaMid, "01,1", 0);
173  }
174  nHits_Out->Fill(etaOut, "01,1", 0);
175  } else {
176  nHits_In->Fill("", "01,1", 0);
177  nHits_Mid->Fill("", "01,1", 0);
178  nHits_Out->Fill("", "01,1", 0);
179  }
180  }
181  // Add BIR11/15 separately at a higher eta station
182 
183  // BEE, EE chambers on inner plots
184  for (int iEta = -4; iEta != 1; ++iEta) {
185  TString etaIn = "";
186  if (iEta < -2) {
187  etaIn = "EEC" + std::to_string(std::abs(iEta + 2));
188  nHits_In->Fill(etaIn, "01,1", 0);
189  } else if (iEta < 0) {
190  etaIn = "BEC" + std::to_string(std::abs(iEta));
191  nHits_In->Fill(etaIn, "01,1", 0);
192  } else
193  nHits_In->Fill(" ", "01,1", 0);
194  }
195 
196  for (int iEta = -8; iEta != 11; ++iEta) {
197  TString etaIn = "";
198  TString etaMid = "";
199  TString etaOut = "";
200  if (iEta < 0) {
201  etaIn = "BIC" + std::to_string(std::abs(iEta));
202  etaOut = "BOC" + std::to_string(std::abs(iEta));
203  if (iEta > -7) { etaMid = "BMC" + std::to_string(std::abs(iEta)); }
204  } else if (iEta == 0) {
205  etaOut = "BOB" + std::to_string(iEta);
206  } else if (iEta < 9) {
207  etaIn = "BIA" + std::to_string(iEta);
208  etaOut = "BOA" + std::to_string(iEta);
209  if (iEta < 7) { etaMid = "BMA" + std::to_string(iEta); }
210  }
211  if (iEta < 9) {
212  nHits_In->Fill(etaIn, "01,1", 0);
213  nHits_Mid->Fill(etaMid, "01,1", 0);
214  nHits_Out->Fill(etaOut, "01,1", 0);
215  } else {
216  nHits_In->Fill(" ", "01,1", 0);
217  nHits_Mid->Fill(" ", "01,1", 0);
218  nHits_Out->Fill(" ", "01,1", 0);
219  }
220  }
221 
222  // BEE, EE chambers on inner plots
223  for (int iEta = 1; iEta != 6; ++iEta) {
224  TString etaIn = "";
225  if (iEta < 3) {
226  etaIn = "BEA" + std::to_string(std::abs(iEta));
227  nHits_In->Fill(etaIn, "01,1", 0);
228  } else if (iEta < 5) {
229  etaIn = "EEA" + std::to_string(std::abs(iEta - 2));
230  nHits_In->Fill(etaIn, "01,1", 0);
231  } else
232  nHits_In->Fill(" ", "01,1", 0);
233  }
234 
235  for (int iEta = 1; iEta != 7; ++iEta) {
236  TString etaIn = "EIA" + std::to_string(iEta);
237  TString etaMid = "EMA" + std::to_string(iEta);
238  TString etaOut = "EOA" + std::to_string(iEta);
239  if (iEta < 6) {
240  nHits_In->Fill(etaIn, "01,1", 0);
241  nHits_Mid->Fill(etaMid, "01,1", 0);
242  }
243  nHits_Out->Fill(etaOut, "01,1", 0);
244  }
245 
246  nHits_In->LabelsDeflate("X");
247  nHits_In->LabelsDeflate("Y");
248  nHits_In->LabelsOption("v", "x");
249  nHits_In->Reset();
250  nHits_Mid->LabelsDeflate("X");
251  nHits_Mid->LabelsDeflate("Y");
252  nHits_Mid->LabelsOption("v", "x");
253  nHits_Mid->Reset();
254  nHits_Out->LabelsDeflate("X");
255  nHits_Out->LabelsDeflate("Y");
256  nHits_Out->LabelsOption("v", "x");
257  nHits_Out->Reset();
258 
259  return StatusCode::SUCCESS;
260 }
261 
262 // Correct for CutOuts
263 void MdtRawDataMonAlg::ChamberTubeNumberCorrection(int& tubeNum, std::string_view hardware_name, int tubePos, int numLayers) {
264  // numLayers should be mdt_layer-1 so numLayers = 0 implies layer 1 ML 1 or mdt_layer==1
265  if (hardware_name.substr(0, 4) == "BMS4" || hardware_name.substr(0, 4) == "BMS6") { // layer 1-4 tubeId 41-48 cut out
266  if (numLayers <= 2) tubeNum = tubePos + numLayers * 48;
267  }
268  if (hardware_name.substr(0, 3) == "BIR" && numLayers <= 3) {
269  if (hardware_name.substr(5, 2) == "11" || hardware_name.substr(5, 2) == "15") {
270  if (hardware_name.substr(3, 1) == "1") tubeNum = tubePos + 6 + numLayers * 30; // layer 1-4 tube id 1-6 cut out
271  if (hardware_name.substr(3, 1) == "2") tubeNum = tubePos + numLayers * 30; // layer 1-4 tube id 28-30 cut out
272  if (hardware_name.substr(3, 1) == "4") tubeNum = tubePos + 3 + numLayers * 30; // layer 1-4 tube id 1-3 cut out
273  if (hardware_name.substr(3, 1) == "5") tubeNum = tubePos + numLayers * 24; // layer 1-4 tube id 22-24 cut out
274  }
275  }
276  if (hardware_name.substr(0, 3) == "BIR" && hardware_name.substr(3, 1) == "3") tubeNum = tubePos + numLayers * 36; // cut out on both ML
277  if (hardware_name == "EEL1A05" || hardware_name == "EEL1C05")
278  tubeNum = tubePos + numLayers * 48; // mdtIdHelper gives wrong #tubes/layer (incidentally also wrong #layers)
279 }
280 
281 // Correct for F@#!ing mdtIdHelper
282 void MdtRawDataMonAlg::CorrectTubeMax(const std::string& hardware_name, int& numTubes) {
283  if (hardware_name == "EEL1A05" || hardware_name == "EEL1C05") numTubes = 48;
284 }
285 
286 // Correct for F@#!ing mdtIdHelper
287 void MdtRawDataMonAlg::CorrectLayerMax(const std::string& hardware_name, int& numLayers) {
288  if (hardware_name == "EEL1A05" || hardware_name == "EEL1C05") numLayers = 3;
289 }
290 
291 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
292 // Private function to select mdt chambersId of the spectrometer
293 
295  ATH_MSG_DEBUG("in MDT ChambersIDvector");
296 
297  std::vector<Identifier>::const_iterator idfirst = m_idHelperSvc->mdtIdHelper().module_begin();
298  std::vector<Identifier>::const_iterator idlast = m_idHelperSvc->mdtIdHelper().module_end();
299 
300  IdContext mdtModuleContext = m_idHelperSvc->mdtIdHelper().module_context();
301  Identifier Id;
302  IdentifierHash Idhash;
303  for (std::vector<Identifier>::const_iterator i = idfirst; i != idlast; ++i) {
304  Id = *i;
305  int gethash_code = m_idHelperSvc->mdtIdHelper().get_hash(Id, Idhash, &mdtModuleContext);
306  m_chambersId.push_back(Id);
307  m_chambersIdHash.push_back(Idhash);
308 
309  std::string extid = m_idHelperSvc->mdtIdHelper().show_to_string(Id);
310  ATH_MSG_DEBUG("Adding the chamber Identifier: " << extid);
311  if (gethash_code == 0) {
312  ATH_MSG_VERBOSE(" its hash Id is " << Idhash);
313  } else {
314  ATH_MSG_VERBOSE(" hash Id NOT computed " << Idhash);
315  }
316  }
317  m_hist_hash_list.resize(m_chambersIdHash.size());
318 }
319 
320 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
321 int MdtRawDataMonAlg::mezzmdt(const Identifier& digcoll_id) const {
322  int TotmezzTubes = 8;
323  if (cachedTubeLayerMax(digcoll_id) == 4) TotmezzTubes = 6;
324  int Imezz = (int)((m_idHelperSvc->mdtIdHelper().tube(digcoll_id) - 1) / TotmezzTubes) +
325  (int)((m_idHelperSvc->mdtIdHelper().multilayer(digcoll_id) - 1) * ((cachedTubeMax(digcoll_id)) / TotmezzTubes));
326 
327  return Imezz;
328 }
329 
330 // Get the Maximum # of tubes in the chamber
331 // the 'if' statements are for chambers with ML1 != ML2
332 // except for BIS8 -- mdtIdHelper gets the # layers wrong in this instance
333 int MdtRawDataMonAlg::GetTubeMax(const Identifier& digcoll_id, std::string_view hardware_name) {
334  int tubeMax(0);
335  if (hardware_name.substr(0, 4) == "BIS8") { // Why does mdtIdHelper get this one wrong?
336  tubeMax = 16 * 3;
337  } else if (hardware_name.substr(0, 4) == "BIR5") {
338  // tubeMax = 21*4 + 24*4;
339  tubeMax = 24 * 4 + 24 * 4;
340  } else if (hardware_name.substr(0, 4) == "BIR2" || hardware_name.substr(0, 4) == "BIR4") {
341  // tubeMax = 27*4 + 30*4;
342  tubeMax = 30 * 4 + 30 * 4;
343  } else if (hardware_name.substr(0, 4) == "BIR3") {
344  tubeMax = 36 * 4 + 36 * 4;
345  } else if (hardware_name.substr(0, 4) == "BIR1") {
346  // tubeMax = 24*4 + 30*4;
347  tubeMax = 30 * 4 + 30 * 4;
348  } else if (hardware_name.substr(0, 4) == "BMS4" || hardware_name.substr(0, 4) == "BMS6") {
349  // tubeMax = 40*3 + 48*3;
350  tubeMax = 48 * 3 + 48 * 3;
351  } else if (hardware_name == "EEL1A05" || hardware_name == "EEL1C05") {
352  tubeMax = 48 * 3 + 48 * 3;
353  } else if (hardware_name.substr(0, 3) == "BME") {
354  tubeMax = 546;
355  } else {
356  int numtubes = m_idHelperSvc->mdtIdHelper().tubeMax(digcoll_id);
357  int numlayers = m_idHelperSvc->mdtIdHelper().tubeLayerMax(digcoll_id);
358  int numML = m_idHelperSvc->mdtIdHelper().numberOfMultilayers(digcoll_id);
359  tubeMax = numtubes * numlayers * numML;
360  }
361  return tubeMax;
362 }
363 
364 bool MdtRawDataMonAlg::AinB(int A, std::vector<int>& B) {
365  for (int i : B) {
366  if (i == A) return true;
367  }
368  return false;
369 }
370 
371 // StatusCode MdtRawDataMonAlg::GetTimingInfo() {
372 // m_time = -1;
373 
374 // SG::ReadHandle<xAOD::EventInfo> evt(m_eventInfo);
375 // m_time = (1000000000L*(uint64_t)evt->timeStamp()+evt->timeStampNSOffset()) * 0.000000001;
376 
377 // // protection against simulated cosmics when the trigger_info() of the event_info is not filled and returns a null pointer.
378 // //trigtype = eventInfo->level1TriggerType();
379 
381  bool filterresult(true);
382  if (!m_DQFilterTools.empty()) {
383  ToolHandleArray<IDQFilterTool>::const_iterator ifilter(m_DQFilterTools.begin()), filterend(m_DQFilterTools.end());
384  for (; filterresult && (ifilter != filterend); ++ifilter) { filterresult = (filterresult && (*ifilter)->accept()); }
385  }
386  m_atlas_ready = filterresult;
387 }
388 
389 std::string MdtRawDataMonAlg::getChamberName(const Muon::MdtPrepData* hit) const { return getChamberName(hit->identify()); }
390 
391 std::string MdtRawDataMonAlg::getChamberName(const Identifier& id) const {
392  IdentifierHash idHash{0};
393  const MdtIdHelper& id_helper = m_idHelperSvc->mdtIdHelper();
394  id_helper.get_module_hash(id, idHash);
395  MDTChamber* chamber{nullptr};
396  if (getChamber(idHash, chamber).isSuccess()) return chamber->getName();
397  return convertChamberName(id_helper.stationName(id), id_helper.stationEta(id), id_helper.stationPhi(id), "MDT");
398 }
399 
401  if (id >= m_hist_hash_list.size()) return StatusCode::FAILURE;
402  chamber = m_hist_hash_list[id].get();
403  if (!chamber) return StatusCode::FAILURE;
404 
405  return StatusCode::SUCCESS;
406 }
407 
408 int MdtRawDataMonAlg::get_bin_for_LB_hist(int region, int layer, int phi, int eta, bool isBIM) const {
409  if (region == 0 || region == 1) { // Barrel
410 
411  if (layer == 0) { // Inner
412  if (eta < 6) {
413  if (phi < 11 && !isBIM)
414  return 18 * (eta - 1) + phi;
415  else if ((phi == 10 && isBIM) || (phi < 15 && !isBIM))
416  return 18 * (eta - 1) + phi + 1;
417  else
418  return 18 * (eta - 1) + phi + 2;
419  } else if (eta == 6)
420  return 90 + phi;
421  else if (eta == 7)
422  return 106 + (phi / 2);
423  else if (eta == 8)
424  return 114 + (phi / 2);
425  }
426 
427  else if (layer == 1) { // Middle
428  // 95 = 1 + 16 + 16 + 16 + 16 + 16 + 14 total number of phi sectors (+1)
429  // in the last eta-sector (6) there is no phi-sector 13; ie there are no chambers BML6A13 and BML6C13, so there are only 14 phi
430  // sectos we move the bin of phi=14 directly above phi=12 so there is no white line in the histogram
431  if (eta == 6 && phi > 11)
432  return 16 * (eta - 1) + phi - 1;
433  else
434  return 16 * (eta - 1) + phi;
435 
436  } else if (layer == 2 && region == 0) { // Outer, side A (must be separated due to presence of eta=0 chambers)
437  if (eta == 0 && phi == 11)
438  return 0;
439  else if (eta == 0 && phi == 13)
440  return 1;
441  else if (eta < 7)
442  return 16 * (eta - 1) + phi + 2;
443  else if (eta == 7 && phi == 11)
444  return 98;
445  else if (eta == 7 && phi == 13)
446  return 99;
447  else if (eta == 8 && phi == 11)
448  return 100;
449  else if (eta == 8 && phi == 13)
450  return 101;
451  } else if (layer == 3 && region == 0) { // Extra: put with outer
452  return 102 + 8 * (eta - 1) + (phi - 1) / 2;
453  } else if (layer == 2 && region == 1) { // Outer, side C
454  if (eta < 7)
455  return 16 * (eta - 1) + phi;
456  else if (eta == 7 && phi == 11)
457  return 96;
458  else if (eta == 7 && phi == 13)
459  return 97;
460  else if (eta == 8 && phi == 11)
461  return 98;
462  else if (eta == 8 && phi == 13)
463  return 99;
464  } else if (layer == 3 && region == 1) { // Extra: put with outer
465  return 100 + 8 * (eta - 1) + (phi - 1) / 2;
466  }
467 
468  }
469 
470  else { // Endcap
471  if (layer == 0) { // Inner
472  int run3_offset = 0;
473  if (m_do_run3Geometry) run3_offset = 40;
474  if (eta < 3)
475  return 16 * (eta - 1) + phi - run3_offset;
476  else if (eta == 3)
477  return 32 + phi / 2 - run3_offset;
478  else if (eta == 4)
479  return 40 + phi / 2 - run3_offset;
480  else if (eta == 5)
481  return 48 + phi / 8 - run3_offset;
482 
483  } else if (layer == 1) { // Middle
484  return 16 * (eta - 1) + phi;
485  } else if (layer == 2) { // Outer
486  return 16 * (eta - 1) + phi;
487  } else if (layer == 3 && region == 2) { // Extra A: put with outer. Asymmetry between A and C
488  if (eta == 1 && phi == 2) return 96;
489  if (eta == 1 && phi == 4) return 97;
490  if (eta == 1 && phi == 10) return 98;
491  if (eta == 1 && phi == 12) return 99;
492  if (eta == 2 && phi == 2) return 100;
493  if (eta == 2 && phi == 10) return 101;
494  if (eta == 2 && phi == 12) return 102;
495  } else if (layer == 3 && region == 3) { // Extra C: put with outer.
496  if (eta == 1 || phi < 5)
497  return 80 + 16 * eta + phi;
498  else
499  return 79 + 16 * eta + phi; //(missing eta = 2, phi = 5)
500  }
501  }
502 
503  return -1;
504 }
505 
507  if (region == 0 || region == 1) { // Barrel
508  if (layer == 0) { // Inner
509  // Add Labels
510  h->SetBins(834, 1, 2502, 122, 0, 122);
511  h->GetYaxis()->SetBinLabel(1, "BI1");
512  h->GetYaxis()->SetBinLabel(19, "BI2");
513  h->GetYaxis()->SetBinLabel(37, "BI3");
514  h->GetYaxis()->SetBinLabel(55, "BI4");
515  h->GetYaxis()->SetBinLabel(73, "BI5");
516  h->GetYaxis()->SetBinLabel(91, "BI6");
517  h->GetYaxis()->SetBinLabel(107, "BI7");
518  h->GetYaxis()->SetBinLabel(115, "BI8");
519  // Add lines
520  h->GetYaxis()->SetTickLength(0);
521  for (int i = 0; i < 6; i++) {
522  TLine* l = new TLine(1, 18 * i, 50, 18 * i);
523  h->GetListOfFunctions()->Add(l);
524  }
525  TLine* l2 = new TLine(1, 106, 50, 106);
526  h->GetListOfFunctions()->Add(l2);
527  TLine* l3 = new TLine(1, 114, 50, 114);
528  h->GetListOfFunctions()->Add(l3);
529  for (int i = 1; i < 122; i++) {
530  if (i < 90 && (i % 18 == 11 || i % 18 == 16)) {
531  TLine* l = new TLine(1, i, 10, i);
532  h->GetListOfFunctions()->Add(l);
533  } else {
534  TLine* l = new TLine(1, i, 20, i);
535  h->GetListOfFunctions()->Add(l);
536  }
537  }
538  }
539 
540  else if (layer == 1) { // Middle
541  h->SetBins(834, 1, 2502, 95, 0, 95); // 95 = 1 + 16 + 16 + 16 + 16 + 16 + 14 total number of phi sectors (+1)
542  // in the last eta-sector (6) there is no phi-sector 13; ie there arent chambers BML6A13
543  // and BML6C13 so there are only 14 phi sectors
544  // Add Labels
545  h->GetYaxis()->SetBinLabel(1, "BM1");
546  h->GetYaxis()->SetBinLabel(17, "BM2");
547  h->GetYaxis()->SetBinLabel(33, "BM3");
548  h->GetYaxis()->SetBinLabel(49, "BM4");
549  h->GetYaxis()->SetBinLabel(65, "BM5");
550  h->GetYaxis()->SetBinLabel(81, "BM6");
551  // Add lines
552  h->GetYaxis()->SetTickLength(0);
553  for (int i = 1; i < 95; i++) {
554  TLine* l = new TLine(1, i, 20, i);
555  h->GetListOfFunctions()->Add(l);
556  }
557  TLine* l1 = new TLine(1, 16, 50, 16);
558  h->GetListOfFunctions()->Add(l1);
559  TLine* l2 = new TLine(1, 32, 50, 32);
560  h->GetListOfFunctions()->Add(l2);
561  TLine* l3 = new TLine(1, 48, 50, 48);
562  h->GetListOfFunctions()->Add(l3);
563  TLine* l4 = new TLine(1, 64, 50, 64);
564  h->GetListOfFunctions()->Add(l4);
565  TLine* l5 = new TLine(1, 80, 50, 80);
566  h->GetListOfFunctions()->Add(l5);
567  }
568 
569  else if (layer == 2 && region == 0) { // Outer, side A
570  h->SetBins(834, 1, 2502, 118, 0, 118);
571  // Add labels
572  h->GetYaxis()->SetBinLabel(1, "BO0");
573  h->GetYaxis()->SetBinLabel(4, "BO1");
574  h->GetYaxis()->SetBinLabel(19, "BO2");
575  h->GetYaxis()->SetBinLabel(35, "BO3");
576  h->GetYaxis()->SetBinLabel(51, "BO4");
577  h->GetYaxis()->SetBinLabel(67, "BO5");
578  h->GetYaxis()->SetBinLabel(83, "BO6");
579  h->GetYaxis()->SetBinLabel(99, "BO7,8");
580  // h->GetYaxis()->SetBinLabel(101,"BO8");
581  h->GetYaxis()->SetBinLabel(103, "BE1");
582  h->GetYaxis()->SetBinLabel(111, "BE2");
583  // Add lines
584  h->GetYaxis()->SetTickLength(0);
585  for (int i = 1; i < 118; i++) {
586  TLine* l = new TLine(1, i, 20, i);
587  h->GetListOfFunctions()->Add(l);
588  }
589  TLine* l1 = new TLine(1, 2, 50, 2);
590  h->GetListOfFunctions()->Add(l1);
591  TLine* l2 = new TLine(1, 18, 50, 18);
592  h->GetListOfFunctions()->Add(l2);
593  TLine* l3 = new TLine(1, 34, 50, 34);
594  h->GetListOfFunctions()->Add(l3);
595  TLine* l4 = new TLine(1, 50, 50, 50);
596  h->GetListOfFunctions()->Add(l4);
597  TLine* l5 = new TLine(1, 66, 50, 66);
598  h->GetListOfFunctions()->Add(l5);
599  TLine* l6 = new TLine(1, 82, 50, 82);
600  h->GetListOfFunctions()->Add(l6);
601  TLine* l7 = new TLine(1, 98, 50, 98);
602  h->GetListOfFunctions()->Add(l7);
603  TLine* l8 = new TLine(1, 100, 50, 100);
604  h->GetListOfFunctions()->Add(l8);
605  TLine* l9 = new TLine(1, 102, 50, 102);
606  h->GetListOfFunctions()->Add(l9);
607  TLine* l10 = new TLine(1, 110, 50, 110);
608  h->GetListOfFunctions()->Add(l10);
609  }
610 
611  else if (layer == 2 && region == 1) { // Outer, side C (no eta = 0)
612  h->SetBins(834, 1, 2502, 116, 0, 116);
613  // Add labels
614  h->GetYaxis()->SetBinLabel(1, "BO1");
615  h->GetYaxis()->SetBinLabel(17, "BO2");
616  h->GetYaxis()->SetBinLabel(33, "BO3");
617  h->GetYaxis()->SetBinLabel(49, "BO4");
618  h->GetYaxis()->SetBinLabel(65, "BO5");
619  h->GetYaxis()->SetBinLabel(81, "BO6");
620  h->GetYaxis()->SetBinLabel(97, "BO7,8");
621  // h->GetYaxis()->SetBinLabel(101,"BO8");
622  h->GetYaxis()->SetBinLabel(101, "BE1");
623  h->GetYaxis()->SetBinLabel(109, "BE2");
624  // Add lines
625  h->GetYaxis()->SetTickLength(0);
626  for (int i = 1; i < 116; i++) {
627  TLine* l = new TLine(1, i, 20, i);
628  h->GetListOfFunctions()->Add(l);
629  }
630  TLine* l1 = new TLine(1, 16, 50, 16);
631  h->GetListOfFunctions()->Add(l1);
632  TLine* l2 = new TLine(1, 32, 50, 32);
633  h->GetListOfFunctions()->Add(l2);
634  TLine* l3 = new TLine(1, 48, 50, 48);
635  h->GetListOfFunctions()->Add(l3);
636  TLine* l4 = new TLine(1, 64, 50, 64);
637  h->GetListOfFunctions()->Add(l4);
638  TLine* l5 = new TLine(1, 80, 50, 80);
639  h->GetListOfFunctions()->Add(l5);
640  TLine* l6 = new TLine(1, 96, 50, 96);
641  h->GetListOfFunctions()->Add(l6);
642  TLine* l7 = new TLine(1, 98, 50, 98);
643  h->GetListOfFunctions()->Add(l7);
644  TLine* l8 = new TLine(1, 100, 50, 100);
645  h->GetListOfFunctions()->Add(l8);
646  TLine* l9 = new TLine(1, 108, 50, 108);
647  h->GetListOfFunctions()->Add(l9);
648  }
649  }
650 
651  else { // Endcap
652  if (layer == 0) { // Inner
653  h->SetBins(834, 1, 2502, 50, 0, 50);
654  // Add labels
655  h->GetYaxis()->SetBinLabel(1, "EI1");
656  h->GetYaxis()->SetBinLabel(17, "EI2");
657  h->GetYaxis()->SetBinLabel(33, "EI3");
658  h->GetYaxis()->SetBinLabel(41, "EI4");
659  h->GetYaxis()->SetBinLabel(49, "EI5");
660  // Add lines
661  h->GetYaxis()->SetTickLength(0);
662  for (int i = 1; i < 50; i++) {
663  TLine* l = new TLine(1, i, 20, i);
664  h->GetListOfFunctions()->Add(l);
665  }
666  TLine* l1 = new TLine(1, 16, 50, 16);
667  h->GetListOfFunctions()->Add(l1);
668  TLine* l2 = new TLine(1, 32, 50, 32);
669  h->GetListOfFunctions()->Add(l2);
670  TLine* l3 = new TLine(1, 40, 50, 40);
671  h->GetListOfFunctions()->Add(l3);
672  TLine* l4 = new TLine(1, 48, 50, 48);
673  h->GetListOfFunctions()->Add(l4);
674  }
675 
676  else if (layer == 1) { // Middle
677  h->SetBins(834, 1, 2502, 80, 0, 80);
678  // Add labels
679  h->GetYaxis()->SetBinLabel(1, "EM1");
680  h->GetYaxis()->SetBinLabel(17, "EM2");
681  h->GetYaxis()->SetBinLabel(33, "EM3");
682  h->GetYaxis()->SetBinLabel(49, "EM4");
683  h->GetYaxis()->SetBinLabel(65, "EM5");
684  // Add lines
685  h->GetYaxis()->SetTickLength(0);
686  for (int i = 1; i < 80; i++) {
687  TLine* l = new TLine(1, i, 20, i);
688  h->GetListOfFunctions()->Add(l);
689  }
690  TLine* l1 = new TLine(1, 16, 50, 16);
691  h->GetListOfFunctions()->Add(l1);
692  TLine* l2 = new TLine(1, 32, 50, 32);
693  h->GetListOfFunctions()->Add(l2);
694  TLine* l3 = new TLine(1, 48, 50, 48);
695  h->GetListOfFunctions()->Add(l3);
696  TLine* l4 = new TLine(1, 64, 50, 64);
697  h->GetListOfFunctions()->Add(l4);
698  }
699 
700  else if (layer == 2) { // Outer + extra
701 
702  if (region == 2) { // side A
703  h->SetBins(834, 1, 2502, 103, 0, 103);
704  // Add labels
705  h->GetYaxis()->SetBinLabel(1, "EO1");
706  h->GetYaxis()->SetBinLabel(17, "EO2");
707  h->GetYaxis()->SetBinLabel(33, "EO3");
708  h->GetYaxis()->SetBinLabel(49, "EO4");
709  h->GetYaxis()->SetBinLabel(65, "EO5");
710  h->GetYaxis()->SetBinLabel(81, "EO6");
711  h->GetYaxis()->SetBinLabel(97, "EE1,2");
712  // Add lines
713  h->GetYaxis()->SetTickLength(0);
714  for (int i = 1; i < 103; i++) {
715  TLine* l = new TLine(1, i, 20, i);
716  h->GetListOfFunctions()->Add(l);
717  }
718  TLine* l1 = new TLine(1, 16, 50, 16);
719  h->GetListOfFunctions()->Add(l1);
720  TLine* l2 = new TLine(1, 32, 50, 32);
721  h->GetListOfFunctions()->Add(l2);
722  TLine* l3 = new TLine(1, 48, 50, 48);
723  h->GetListOfFunctions()->Add(l3);
724  TLine* l4 = new TLine(1, 64, 50, 64);
725  h->GetListOfFunctions()->Add(l4);
726  TLine* l5 = new TLine(1, 80, 50, 80);
727  h->GetListOfFunctions()->Add(l5);
728  TLine* l6 = new TLine(1, 96, 50, 96);
729  h->GetListOfFunctions()->Add(l6);
730  TLine* l7 = new TLine(1, 100, 50, 100);
731  h->GetListOfFunctions()->Add(l7);
732  } else if (region == 3) { // side C
733  h->SetBins(834, 1, 2502, 127, 0, 127);
734  // Add labels
735  h->GetYaxis()->SetBinLabel(1, "EO1");
736  h->GetYaxis()->SetBinLabel(17, "EO2");
737  h->GetYaxis()->SetBinLabel(33, "EO3");
738  h->GetYaxis()->SetBinLabel(49, "EO4");
739  h->GetYaxis()->SetBinLabel(65, "EO5");
740  h->GetYaxis()->SetBinLabel(81, "EO6");
741  h->GetYaxis()->SetBinLabel(97, "EE1");
742  h->GetYaxis()->SetBinLabel(113, "EE2");
743  // Add lines
744  h->GetYaxis()->SetTickLength(0);
745  for (int i = 1; i < 127; i++) {
746  TLine* l = new TLine(1, i, 20, i);
747  h->GetListOfFunctions()->Add(l);
748  }
749  TLine* l1 = new TLine(1, 16, 50, 16);
750  h->GetListOfFunctions()->Add(l1);
751  TLine* l2 = new TLine(1, 32, 50, 32);
752  h->GetListOfFunctions()->Add(l2);
753  TLine* l3 = new TLine(1, 48, 50, 48);
754  h->GetListOfFunctions()->Add(l3);
755  TLine* l4 = new TLine(1, 64, 50, 64);
756  h->GetListOfFunctions()->Add(l4);
757  TLine* l5 = new TLine(1, 80, 50, 80);
758  h->GetListOfFunctions()->Add(l5);
759  TLine* l6 = new TLine(1, 96, 50, 96);
760  h->GetListOfFunctions()->Add(l6);
761  TLine* l7 = new TLine(1, 112, 50, 112);
762  h->GetListOfFunctions()->Add(l7);
763  }
764  }
765  }
766 
767  return StatusCode::SUCCESS;
768 }
769 
770 StatusCode MdtRawDataMonAlg::binMdtOccVsLB_Crate(TH2*& h, int region, int crate) {
771  if (region == 0 || region == 1) { // Barrel
772  if (crate == 0) { // Crate BA01 or BC01
773  // Add Labels
774  h->SetBins(834, 1, 2502, 73, 0, 73);
775  h->GetYaxis()->SetBinLabel(1, "BIL");
776  h->GetYaxis()->SetBinLabel(13, "BIS");
777  h->GetYaxis()->SetBinLabel(25, "BME");
778  h->GetYaxis()->SetBinLabel(26, "BML");
779  h->GetYaxis()->SetBinLabel(38, "BMS");
780  h->GetYaxis()->SetBinLabel(50, "BOL");
781  h->GetYaxis()->SetBinLabel(62, "BOS");
782  // Add lines
783  h->GetYaxis()->SetTickLength(0);
784  for (int i = 0; i < 73; i++) {
785  TLine* l = new TLine(1, i, 20, i);
786  h->GetListOfFunctions()->Add(l);
787  }
788  TLine* l2 = new TLine(1, 0, 50, 0);
789  h->GetListOfFunctions()->Add(l2);
790  TLine* l3 = new TLine(1, 12, 50, 12);
791  h->GetListOfFunctions()->Add(l3);
792  TLine* l4 = new TLine(1, 24, 50, 24);
793  h->GetListOfFunctions()->Add(l4);
794  TLine* l5 = new TLine(1, 25, 50, 25);
795  h->GetListOfFunctions()->Add(l5);
796  TLine* l6 = new TLine(1, 37, 50, 37);
797  h->GetListOfFunctions()->Add(l6);
798  TLine* l8 = new TLine(1, 49, 50, 49);
799  h->GetListOfFunctions()->Add(l8);
800  TLine* l9 = new TLine(1, 61, 50, 61);
801  h->GetListOfFunctions()->Add(l9);
802  }
803 
804  else if (crate == 1) { // BA02, BC02
805  h->SetBins(834, 1, 2502, 73, 0, 73);
806  // Add Labels
807  h->GetYaxis()->SetBinLabel(1, "BIL");
808  h->GetYaxis()->SetBinLabel(13, "BIS");
809  h->GetYaxis()->SetBinLabel(25, "BME");
810  h->GetYaxis()->SetBinLabel(37, "BMS");
811  h->GetYaxis()->SetBinLabel(49, "BOL");
812  h->GetYaxis()->SetBinLabel(61, "BOS");
813  // Add lines
814  h->GetYaxis()->SetTickLength(0);
815  for (int i = 1; i < 73; i++) {
816  TLine* l = new TLine(1, i, 20, i);
817  h->GetListOfFunctions()->Add(l);
818  }
819  TLine* l1 = new TLine(1, 12, 50, 12);
820  h->GetListOfFunctions()->Add(l1);
821  TLine* l2 = new TLine(1, 24, 50, 24);
822  h->GetListOfFunctions()->Add(l2);
823  TLine* l3 = new TLine(1, 36, 50, 36);
824  h->GetListOfFunctions()->Add(l3);
825  TLine* l4 = new TLine(1, 48, 50, 48);
826  h->GetListOfFunctions()->Add(l4);
827  TLine* l6 = new TLine(1, 60, 50, 60);
828  h->GetListOfFunctions()->Add(l6);
829 
830  } else if (crate == 2) { // BA03, BC03
831  // Add Labels
832  h->SetBins(834, 1, 2502, 80, 0, 80);
833  h->GetYaxis()->SetBinLabel(1, "BIL");
834  h->GetYaxis()->SetBinLabel(7, "BIM");
835  h->GetYaxis()->SetBinLabel(12, "BIR");
836  h->GetYaxis()->SetBinLabel(18, "BIS");
837  h->GetYaxis()->SetBinLabel(30, "BMF");
838  h->GetYaxis()->SetBinLabel(33, "BMG");
839  h->GetYaxis()->SetBinLabel(36, "BML");
840  h->GetYaxis()->SetBinLabel(48, "BMS");
841  h->GetYaxis()->SetBinLabel(54, "BOF");
842  h->GetYaxis()->SetBinLabel(58, "BOG");
843  if (region == 0) {
844  h->GetYaxis()->SetBinLabel(63, "BOL");
845  h->GetYaxis()->SetBinLabel(75, "BOS");
846  } else if (region == 1) {
847  h->GetYaxis()->SetBinLabel(62, "BOL");
848  h->GetYaxis()->SetBinLabel(74, "BOS");
849  }
850  // Add lines
851  h->GetYaxis()->SetTickLength(0);
852  for (int i = 0; i < 80; i++) {
853  TLine* l = new TLine(1, i, 20, i);
854  h->GetListOfFunctions()->Add(l);
855  }
856  TLine* l2 = new TLine(1, 6, 50, 6);
857  h->GetListOfFunctions()->Add(l2);
858  TLine* l3 = new TLine(1, 11, 50, 11);
859  h->GetListOfFunctions()->Add(l3);
860  TLine* l3b = new TLine(1, 17, 50, 17);
861  h->GetListOfFunctions()->Add(l3b);
862  // TLine* l4 = new TLine(1,26,50,26); h->GetListOfFunctions()->Add(l4); //removed this line because it doesnt correspond to
863  // anything
864  TLine* l5 = new TLine(1, 29, 50, 29);
865  h->GetListOfFunctions()->Add(l5);
866  TLine* l6 = new TLine(1, 32, 50, 32);
867  h->GetListOfFunctions()->Add(l6);
868  TLine* l7 = new TLine(1, 35, 50, 35);
869  h->GetListOfFunctions()->Add(l7);
870  TLine* l8 = new TLine(1, 47, 50, 47);
871  h->GetListOfFunctions()->Add(l8);
872  TLine* l9 = new TLine(1, 53, 50, 53);
873  h->GetListOfFunctions()->Add(l9);
874  TLine* l9b = new TLine(1, 57, 50, 57);
875  h->GetListOfFunctions()->Add(l9b);
876  if (region == 0) {
877  TLine* l10 = new TLine(1, 62, 50, 62);
878  h->GetListOfFunctions()->Add(l10);
879  TLine* l11 = new TLine(1, 74, 50, 74);
880  h->GetListOfFunctions()->Add(l11);
881  } else if (region == 1) {
882  TLine* l10 = new TLine(1, 61, 50, 61);
883  h->GetListOfFunctions()->Add(l10);
884  TLine* l11 = new TLine(1, 73, 50, 73);
885  h->GetListOfFunctions()->Add(l11);
886  }
887  }
888 
889  else if (crate == 3) { // BA04, BC04
890  // Add Labels
891  h->SetBins(834, 1, 2502, 79, 0, 79);
892  h->GetYaxis()->SetBinLabel(1, "BIL");
893  h->GetYaxis()->SetBinLabel(7, "BIM");
894  h->GetYaxis()->SetBinLabel(12, "BIR");
895  h->GetYaxis()->SetBinLabel(18, "BIS");
896  h->GetYaxis()->SetBinLabel(30, "BMF");
897  h->GetYaxis()->SetBinLabel(33, "BMG");
898  h->GetYaxis()->SetBinLabel(36, "BML");
899  h->GetYaxis()->SetBinLabel(47, "BMS");
900  h->GetYaxis()->SetBinLabel(53, "BOF");
901  h->GetYaxis()->SetBinLabel(57, "BOG");
902  if (region == 0) {
903  h->GetYaxis()->SetBinLabel(62, "BOL");
904  h->GetYaxis()->SetBinLabel(75, "BOS");
905  } else if (region == 1) {
906  h->GetYaxis()->SetBinLabel(61, "BOL");
907  h->GetYaxis()->SetBinLabel(74, "BOS");
908  }
909 
910  // Add lines
911  h->GetYaxis()->SetTickLength(0);
912  for (int i = 0; i < 79; i++) {
913  TLine* l = new TLine(1, i, 20, i);
914  h->GetListOfFunctions()->Add(l);
915  }
916  TLine* l2 = new TLine(1, 6, 50, 6);
917  h->GetListOfFunctions()->Add(l2);
918  TLine* l3 = new TLine(1, 11, 50, 11);
919  h->GetListOfFunctions()->Add(l3);
920  TLine* l3b = new TLine(1, 17, 50, 17);
921  h->GetListOfFunctions()->Add(l3b);
922  // TLine* l4 = new TLine(1,26,50,26); h->GetListOfFunctions()->Add(l4);//removed this line because it doesnt correspond to
923  // anything
924  TLine* l5 = new TLine(1, 29, 50, 29);
925  h->GetListOfFunctions()->Add(l5);
926  TLine* l6 = new TLine(1, 32, 50, 32);
927  h->GetListOfFunctions()->Add(l6);
928  TLine* l7 = new TLine(1, 35, 50, 35);
929  h->GetListOfFunctions()->Add(l7);
930  TLine* l8 = new TLine(1, 46, 50, 46);
931  h->GetListOfFunctions()->Add(l8);
932  TLine* l9 = new TLine(1, 52, 50, 52);
933  h->GetListOfFunctions()->Add(l9);
934  TLine* l9b = new TLine(1, 56, 50, 56);
935  h->GetListOfFunctions()->Add(l9b);
936  if (region == 0) {
937  TLine* l10 = new TLine(1, 61, 50, 61);
938  h->GetListOfFunctions()->Add(l10);
939  TLine* l11 = new TLine(1, 74, 50, 74);
940  h->GetListOfFunctions()->Add(l11);
941  } else if (region == 1) {
942  TLine* l10 = new TLine(1, 60, 50, 60);
943  h->GetListOfFunctions()->Add(l10);
944  TLine* l11 = new TLine(1, 73, 50, 73);
945  h->GetListOfFunctions()->Add(l11);
946  }
947  }
948  }
949 
950  else { // Endcap
951  if (crate == 0 || crate == 2) { // EA01, EC01 and EA03, EC03 are the same
952  h->SetBins(834, 1, 2502, 73, 0, 73);
953  // Add labels
954  h->GetYaxis()->SetBinLabel(1, "BEE");
955  h->GetYaxis()->SetBinLabel(5, "BIS");
956  h->GetYaxis()->SetBinLabel(9, "EEL");
957  h->GetYaxis()->SetBinLabel(13, "EES");
958  h->GetYaxis()->SetBinLabel(17, "EIL");
959  h->GetYaxis()->SetBinLabel(26, "EIS");
960  h->GetYaxis()->SetBinLabel(30, "EML");
961  h->GetYaxis()->SetBinLabel(40, "EMS");
962  h->GetYaxis()->SetBinLabel(50, "EOL");
963  h->GetYaxis()->SetBinLabel(62, "EOS");
964  // Add lines
965  h->GetYaxis()->SetTickLength(0);
966  for (int i = 1; i < 73; i++) {
967  TLine* l = new TLine(1, i, 20, i);
968  h->GetListOfFunctions()->Add(l);
969  }
970  TLine* l2 = new TLine(1, 4, 50, 4);
971  h->GetListOfFunctions()->Add(l2);
972  TLine* l3 = new TLine(1, 8, 50, 8);
973  h->GetListOfFunctions()->Add(l3);
974  TLine* l4 = new TLine(1, 12, 50, 12);
975  h->GetListOfFunctions()->Add(l4);
976  TLine* l5 = new TLine(1, 16, 50, 16);
977  h->GetListOfFunctions()->Add(l5);
978  TLine* l6 = new TLine(1, 25, 50, 25);
979  h->GetListOfFunctions()->Add(l6);
980  TLine* l7 = new TLine(1, 29, 50, 29);
981  h->GetListOfFunctions()->Add(l7);
982  TLine* l8 = new TLine(1, 39, 50, 39);
983  h->GetListOfFunctions()->Add(l8);
984  TLine* l9 = new TLine(1, 49, 50, 49);
985  h->GetListOfFunctions()->Add(l9);
986  TLine* l10 = new TLine(1, 61, 50, 61);
987  h->GetListOfFunctions()->Add(l10);
988  } else if (crate == 1) { // EA02, EC02
989  h->SetBins(834, 1, 2502, 71, 0, 71);
990  // Add labels
991  h->GetYaxis()->SetBinLabel(1, "BEE");
992  h->GetYaxis()->SetBinLabel(5, "BIS");
993  h->GetYaxis()->SetBinLabel(9, "EEL");
994  h->GetYaxis()->SetBinLabel(12, "EES");
995  h->GetYaxis()->SetBinLabel(16, "EIL");
996  h->GetYaxis()->SetBinLabel(24, "EIS");
997  h->GetYaxis()->SetBinLabel(28, "EML");
998  h->GetYaxis()->SetBinLabel(38, "EMS");
999  h->GetYaxis()->SetBinLabel(48, "EOL");
1000  h->GetYaxis()->SetBinLabel(60, "EOS");
1001  // Add lines
1002  h->GetYaxis()->SetTickLength(0);
1003  for (int i = 1; i < 71; i++) {
1004  TLine* l = new TLine(1, i, 20, i);
1005  h->GetListOfFunctions()->Add(l);
1006  }
1007  TLine* l2 = new TLine(1, 4, 50, 4);
1008  h->GetListOfFunctions()->Add(l2);
1009  TLine* l3 = new TLine(1, 8, 50, 8);
1010  h->GetListOfFunctions()->Add(l3);
1011  TLine* l4 = new TLine(1, 11, 50, 11);
1012  h->GetListOfFunctions()->Add(l4);
1013  TLine* l5 = new TLine(1, 15, 50, 15);
1014  h->GetListOfFunctions()->Add(l5);
1015  TLine* l6 = new TLine(1, 23, 50, 23);
1016  h->GetListOfFunctions()->Add(l6);
1017  TLine* l7 = new TLine(1, 27, 50, 27);
1018  h->GetListOfFunctions()->Add(l7);
1019  TLine* l8 = new TLine(1, 37, 50, 37);
1020  h->GetListOfFunctions()->Add(l8);
1021  TLine* l9 = new TLine(1, 47, 50, 47);
1022  h->GetListOfFunctions()->Add(l9);
1023  TLine* l10 = new TLine(1, 59, 50, 59);
1024  h->GetListOfFunctions()->Add(l10);
1025  } else if (crate == 3) { // EA04, EC04
1026  h->SetBins(834, 1, 2502, 72, 0, 72);
1027  // Add labels
1028  h->GetYaxis()->SetBinLabel(1, "BEE");
1029  h->GetYaxis()->SetBinLabel(5, "BIS");
1030  h->GetYaxis()->SetBinLabel(9, "EEL");
1031  h->GetYaxis()->SetBinLabel(13, "EES");
1032  h->GetYaxis()->SetBinLabel(17, "EIL");
1033  h->GetYaxis()->SetBinLabel(25, "EIS");
1034  h->GetYaxis()->SetBinLabel(29, "EML");
1035  h->GetYaxis()->SetBinLabel(39, "EMS");
1036  h->GetYaxis()->SetBinLabel(49, "EOL");
1037  h->GetYaxis()->SetBinLabel(61, "EOS");
1038  // Add lines
1039  h->GetYaxis()->SetTickLength(0);
1040  for (int i = 1; i < 72; i++) {
1041  TLine* l = new TLine(1, i, 20, i);
1042  h->GetListOfFunctions()->Add(l);
1043  }
1044  TLine* l2 = new TLine(1, 4, 50, 4);
1045  h->GetListOfFunctions()->Add(l2);
1046  TLine* l3 = new TLine(1, 8, 50, 8);
1047  h->GetListOfFunctions()->Add(l3);
1048  TLine* l4 = new TLine(1, 12, 50, 12);
1049  h->GetListOfFunctions()->Add(l4);
1050  TLine* l5 = new TLine(1, 16, 50, 16);
1051  h->GetListOfFunctions()->Add(l5);
1052  TLine* l6 = new TLine(1, 24, 50, 24);
1053  h->GetListOfFunctions()->Add(l6);
1054  TLine* l7 = new TLine(1, 28, 50, 28);
1055  h->GetListOfFunctions()->Add(l7);
1056  TLine* l8 = new TLine(1, 38, 50, 38);
1057  h->GetListOfFunctions()->Add(l8);
1058  TLine* l9 = new TLine(1, 48, 50, 48);
1059  h->GetListOfFunctions()->Add(l9);
1060  TLine* l10 = new TLine(1, 60, 50, 60);
1061  h->GetListOfFunctions()->Add(l10);
1062  }
1063  }
1064 
1065  return StatusCode::SUCCESS;
1066 }
1067 
1068 int MdtRawDataMonAlg::get_bin_for_LB_crate_hist(int region, int crate, int phi, int eta, std::string_view chamber) const {
1069  int binNum = 999;
1070  std::string_view stName = chamber.substr(0, 3);
1071  if (region == 0 || region == 1) { // Barrel
1072  if (crate == 1) { // BA01, BC01
1073  if (stName == "BIL")
1074  binNum = 2 * eta + (phi - 1) / 2 - 1;
1075  else if (stName == "BIS")
1076  binNum = 12 + 2 * eta + (phi - 2) / 2 - 1;
1077  else if (stName == "BME")
1078  binNum = 25;
1079  else if (stName == "BML")
1080  binNum = 25 + 2 * eta + (phi - 1) / 2 - 1;
1081  else if (stName == "BMS")
1082  binNum = 37 + 2 * eta + (phi - 2) / 2 - 1;
1083  else if (stName == "BOL")
1084  binNum = 49 + 2 * eta + (phi - 1) / 2 - 1;
1085  else if (stName == "BOS")
1086  binNum = 61 + 2 * eta + (phi - 2) / 2 - 1;
1087  else
1088  ATH_MSG_INFO("chamber " << chamber << " didn't exist in crate Bx01");
1089  return binNum - 1;
1090  } else if (crate == 2) { // BA02, BC02
1091 
1092  if (stName == "BIL")
1093  binNum = 2 * eta + (phi - 5) / 2 - 1;
1094  else if (stName == "BIS")
1095  binNum = 12 + 2 * eta + (phi - 6) / 2 - 1;
1096  else if (stName == "BML")
1097  binNum = 24 + 2 * eta + (phi - 5) / 2 - 1;
1098  else if (stName == "BMS")
1099  binNum = 36 + 2 * eta + (phi - 6) / 2 - 1;
1100  else if (stName == "BOL")
1101  binNum = 48 + 2 * eta + (phi - 5) / 2 - 1;
1102  else if (stName == "BOS")
1103  binNum = 60 + 2 * eta + (phi - 6) / 2 - 1;
1104  else
1105  ATH_MSG_INFO("chamber " << chamber << " didn't exist in crate Bx02");
1106  return binNum - 1;
1107  } else if (crate == 3) { // BA03,BC03
1108  if (stName == "BIL")
1109  binNum = eta;
1110  else if (stName == "BIM")
1111  binNum = 6 + eta;
1112  else if (stName == "BIR")
1113  binNum = 11 + eta;
1114  else if (stName == "BIS")
1115  binNum = 17 + 2 * eta + (phi - 10) / 2 - 1;
1116  else if (stName == "BMF")
1117  binNum = 29 + (eta + 1) / 2;
1118  else if (stName == "BMG")
1119  binNum = 32 + eta / 2;
1120  else if (stName == "BML")
1121  binNum = 35 + 2 * eta + (phi - 9) / 2 - 1;
1122  else if (stName == "BMS")
1123  binNum = 47 + eta;
1124  else if (stName == "BOF")
1125  binNum = 53 + (eta + 1) / 2;
1126  else if (chamber.substr(0, 4) == "BOG0" && region == 0)
1127  binNum = 58;
1128  else if (stName == "BOG")
1129  binNum = 58 + eta / 2 - region;
1130  else if (stName == "BOL")
1131  binNum = 62 + 2 * eta + (phi - 9) / 2 - 1 - region;
1132  else if (stName == "BOS")
1133  binNum = 74 + eta - region;
1134  else
1135  ATH_MSG_INFO("chamber " << chamber << " didn't exist in crate Bx03");
1136  return binNum - 1;
1137  } else if (crate == 4) { // BA04, BC04
1138 
1139  if (stName == "BIL")
1140  binNum = eta;
1141  else if (stName == "BIM")
1142  binNum = 6 + eta;
1143  else if (stName == "BIR")
1144  binNum = 11 + eta;
1145  else if (stName == "BIS")
1146  binNum = 17 + 2 * eta + (phi - 14) / 2 - 1;
1147  else if (stName == "BMF")
1148  binNum = 29 + (eta + 1) / 2;
1149  else if (stName == "BMG")
1150  binNum = 32 + eta / 2;
1151  else if (stName == "BML" && eta < 6)
1152  binNum = 35 + 2 * eta + (phi - 13) / 2 - 1;
1153  else if (chamber.substr(0, 7) == "BML6A15" || chamber.substr(0, 7) == "BML6C15")
1154  binNum = 46;
1155  else if (stName == "BMS")
1156  binNum = 46 + eta;
1157  else if (stName == "BOF")
1158  binNum = 52 + (eta + 1) / 2;
1159  else if (chamber.substr(0, 4) == "BOG0" && region == 0)
1160  binNum = 57;
1161  else if (stName == "BOG")
1162  binNum = 57 + eta / 2 - region;
1163  else if (stName == "BOL")
1164  binNum = 61 + 2 * eta + (phi - 13) / 2 - 1 - region;
1165  else if (stName == "BOS")
1166  binNum = 74 + eta - region;
1167  else
1168  ATH_MSG_INFO("chamber " << chamber << " didn't exist in crate Bx04");
1169  return binNum - 1;
1170  }
1171  } else if (region == 2 || region == 3) {
1172  if (crate == 1) { // EA01, EC01
1173  if (stName == "BEE")
1174  binNum = 2 * eta + (phi - 2) / 2 - 1;
1175  else if (stName == "BIS")
1176  binNum = 4 + 2 * (eta - 6) + (phi - 2) / 2 - 1;
1177  else if (stName == "EEL")
1178  binNum = 8 + 2 * eta + (phi - 1) / 2 - 1;
1179  else if (stName == "EES")
1180  binNum = 12 + 2 * eta + (phi - 2) / 2 - 1;
1181  else if (stName == "EIL" && eta < 5)
1182  binNum = 16 + 2 * eta + (phi - 1) / 2 - 1;
1183  else if (stName == "EIL" && eta == 5)
1184  binNum = 25;
1185  else if (stName == "EIS")
1186  binNum = 25 + 2 * eta + (phi - 2) / 2 - 1;
1187  else if (stName == "EML")
1188  binNum = 29 + 2 * eta + (phi - 1) / 2 - 1;
1189  else if (stName == "EMS")
1190  binNum = 39 + 2 * eta + (phi - 2) / 2 - 1;
1191  else if (stName == "EOL")
1192  binNum = 49 + 2 * eta + (phi - 1) / 2 - 1;
1193  else if (stName == "EOS")
1194  binNum = 61 + 2 * eta + (phi - 2) / 2 - 1;
1195  else
1196  ATH_MSG_INFO("chamber " << chamber << " didn't exist in crate Ex01");
1197  if (m_do_run3Geometry) {
1198  if (region == 2) {
1199  if (binNum > 8 && binNum < 23)
1200  binNum = binNum - 2;
1201  else if (binNum > 22 && binNum < 30)
1202  binNum = binNum - 8;
1203  else if (binNum > 29)
1204  binNum = binNum - 12;
1205  } else if (region == 3) {
1206  if (binNum > 22 && binNum < 30)
1207  binNum = binNum - 6;
1208  else if (binNum > 29)
1209  binNum = binNum - 10;
1210  }
1211  }
1212  return binNum - 1;
1213  } else if (crate == 2) { // EA02, EC02
1214  if (stName == "BEE")
1215  binNum = 2 * eta + (phi - 6) / 2 - 1;
1216  else if (stName == "BIS")
1217  binNum = 4 + 2 * (eta - 6) + (phi - 6) / 2 - 1;
1218  else if (chamber.substr(0, 4) == "EEL1")
1219  binNum = 9 + (phi - 3) / 2 - 1;
1220  else if (chamber.substr(0, 4) == "EEL2")
1221  binNum = 11;
1222  else if (stName == "EES")
1223  binNum = 11 + 2 * eta + (phi - 6) / 2 - 1;
1224  else if (stName == "EIL")
1225  binNum = 15 + 2 * eta + (phi - 5) / 2 - 1;
1226  else if (stName == "EIS")
1227  binNum = 23 + 2 * eta + (phi - 6) / 2 - 1;
1228  else if (stName == "EML")
1229  binNum = 27 + 2 * eta + (phi - 5) / 2 - 1;
1230  else if (stName == "EMS")
1231  binNum = 37 + 2 * eta + (phi - 6) / 2 - 1;
1232  else if (stName == "EOL")
1233  binNum = 47 + 2 * eta + (phi - 5) / 2 - 1;
1234  else if (stName == "EOS")
1235  binNum = 59 + 2 * eta + (phi - 6) / 2 - 1;
1236  else
1237  ATH_MSG_INFO("chamber " << chamber << " didn't exist in crate Ex02");
1238  if (m_do_run3Geometry) {
1239  if (region == 2) {
1240  if (binNum > 8 && binNum < 22)
1241  binNum = binNum - 2;
1242  else if (binNum > 21 && binNum < 28)
1243  binNum = binNum - 8;
1244  else if (binNum > 27)
1245  binNum = binNum - 12;
1246  } else if (region == 3) {
1247  if (binNum > 21 && binNum < 28)
1248  binNum = binNum - 6;
1249  else if (binNum > 27)
1250  binNum = binNum - 10;
1251  }
1252  }
1253  return binNum - 1;
1254  } else if (crate == 3) { // EA03, EC03
1255 
1256  if (stName == "BEE")
1257  binNum = 2 * eta + (phi - 10) / 2 - 1;
1258  else if (stName == "BIS")
1259  binNum = 4 + 2 * (eta - 6) + (phi - 10) / 2 - 1;
1260  else if (stName == "EEL")
1261  binNum = 8 + 2 * eta + (phi - 9) / 2 - 1;
1262  else if (stName == "EES")
1263  binNum = 12 + 2 * eta + (phi - 10) / 2 - 1;
1264  else if (stName == "EIL" && eta < 5)
1265  binNum = 16 + 2 * eta + (phi - 9) / 2 - 1;
1266  else if (chamber.substr(0, 4) == "EIL5")
1267  binNum = 25;
1268  else if (stName == "EIS")
1269  binNum = 25 + 2 * eta + (phi - 10) / 2 - 1;
1270  else if (stName == "EML")
1271  binNum = 29 + 2 * eta + (phi - 9) / 2 - 1;
1272  else if (stName == "EMS")
1273  binNum = 39 + 2 * eta + (phi - 10) / 2 - 1;
1274  else if (stName == "EOL")
1275  binNum = 49 + 2 * eta + (phi - 9) / 2 - 1;
1276  else if (stName == "EOS")
1277  binNum = 61 + 2 * eta + (phi - 10) / 2 - 1;
1278  else
1279  ATH_MSG_INFO("chamber " << chamber << " didn't exist in crate Ex03");
1280  if (m_do_run3Geometry) {
1281  if (region == 2) {
1282  if (binNum > 8 && binNum < 23)
1283  binNum = binNum - 2;
1284  else if (binNum > 22 && binNum < 30)
1285  binNum = binNum - 8;
1286  else if (binNum > 29)
1287  binNum = binNum - 12;
1288  }
1289  if (region == 3) {
1290  if (binNum > 22 && binNum < 30)
1291  binNum = binNum - 6;
1292  else if (binNum > 29)
1293  binNum = binNum - 10;
1294  }
1295  }
1296  return binNum - 1;
1297  } else if (crate == 4) { // EA04, EC04
1298  if (stName == "BEE")
1299  binNum = 2 * eta + (phi - 14) / 2 - 1;
1300  else if (stName == "BIS")
1301  binNum = 4 + 2 * (eta - 6) + (phi - 14) / 2 - 1;
1302  else if (stName == "EEL")
1303  binNum = 8 + 2 * eta + (phi - 13) / 2 - 1;
1304  else if (stName == "EES")
1305  binNum = 12 + 2 * eta + (phi - 14) / 2 - 1;
1306  else if (stName == "EIL")
1307  binNum = 16 + 2 * eta + (phi - 13) / 2 - 1;
1308  else if (stName == "EIS")
1309  binNum = 24 + 2 * eta + (phi - 14) / 2 - 1;
1310  else if (stName == "EML")
1311  binNum = 28 + 2 * eta + (phi - 13) / 2 - 1;
1312  else if (stName == "EMS")
1313  binNum = 38 + 2 * eta + (phi - 14) / 2 - 1;
1314  else if (stName == "EOL")
1315  binNum = 48 + 2 * eta + (phi - 13) / 2 - 1;
1316  else if (stName == "EOS")
1317  binNum = 60 + 2 * eta + (phi - 14) / 2 - 1;
1318  else
1319  ATH_MSG_INFO("chamber " << chamber << " didn't exist in crate Ex04");
1320  if (m_do_run3Geometry) {
1321  if (region == 2) {
1322  if (binNum > 8 && binNum < 23)
1323  binNum = binNum - 2;
1324  else if (binNum > 22 && binNum < 29)
1325  binNum = binNum - 8;
1326  else if (binNum > 28)
1327  binNum = binNum - 12;
1328  }
1329  if (region == 3) {
1330  if (binNum > 22 && binNum < 28)
1331  binNum = binNum - 6;
1332  else if (binNum > 28)
1333  binNum = binNum - 10;
1334  }
1335  }
1336 
1337  return binNum - 1;
1338  }
1339  }
1340  return -1;
1341 }
1344  return roe ? roe->getNtubesperlayer() : -1;
1345 }
1348  return roe ? roe->getNLayers() : -1;
1349 }
MdtRawDataMonAlg::cachedTubeMax
int cachedTubeMax(const Identifier &id) const
Definition: MDTRawDataUtilsRun3.cxx:1342
convertChamberName
std::string convertChamberName(int, int, int, const std::string &)
Definition: MuonDQA/MuonDQAUtils/src/MuonChamberNameConverter.cxx:10
MdtReadoutElement.h
MdtRawDataMonAlg::m_detMgr
const MuonGM::MuonDetectorManager * m_detMgr
Definition: MdtRawDataMonAlg.h:193
MuonGM::MdtReadoutElement::getNLayers
int getNLayers() const
Returns the number of tube layers inside the multilayer.
MdtRawDataMonAlg::binMdtOccVsLB_Crate
virtual StatusCode binMdtOccVsLB_Crate(TH2 *&h, int region, int crate)
Definition: MDTRawDataUtilsRun3.cxx:770
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
MdtRawDataMonAlg::mdtchamberId
void mdtchamberId()
Definition: MDTRawDataUtilsRun3.cxx:294
calibdata.chamber
chamber
Definition: calibdata.py:32
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
MdtRawDataMonAlg::setIsATLASReady
void setIsATLASReady()
Definition: MDTRawDataUtilsRun3.cxx:380
MdtRawDataMonAlg::get_bin_for_LB_hist
int get_bin_for_LB_hist(int region, int layer, int phi, int eta, bool isBIM) const
Definition: MDTRawDataUtilsRun3.cxx:408
MdtRawDataMonAlg::get_bin_for_LB_crate_hist
int get_bin_for_LB_crate_hist(int region, int layer, int phi, int eta, std::string_view chamber) const
Definition: MDTRawDataUtilsRun3.cxx:1068
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
MdtRawDataMonAlg::ChamberTubeNumberCorrection
static void ChamberTubeNumberCorrection(int &tubeNum, std::string_view hardware_name, int tubePos, int numLayers)
Definition: MDTRawDataUtilsRun3.cxx:263
MuonIdHelper::stationName
int stationName(const Identifier &id) const
Definition: MuonIdHelper.cxx:800
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
MdtRawDataMonAlg.h
MuonChamberNameConverter.h
MdtRawDataMonAlg::binMdtRegional
virtual StatusCode binMdtRegional(TH2 *, std::string_view xAxis)
Definition: MDTRawDataUtilsRun3.cxx:75
MdtRawDataMonAlg::GetTubeMax
int GetTubeMax(const Identifier &digcoll_id, std::string_view hardware_name)
Definition: MDTRawDataUtilsRun3.cxx:333
tubeMax
double tubeMax
Definition: MDT_ResponseTest.cxx:31
A
skel.l2
l2
Definition: skel.GENtoEVGEN.py:399
AthMonitorAlgorithm::m_DQFilterTools
ToolHandleArray< IDQFilterTool > m_DQFilterTools
Array of Data Quality filter tools.
Definition: AthMonitorAlgorithm.h:341
MdtRawDataMonAlg::m_chambersIdHash
std::vector< IdentifierHash > m_chambersIdHash
Definition: MdtRawDataMonAlg.h:152
MdtRawDataMonAlg::getChamber
StatusCode getChamber(const IdentifierHash &id, MDTChamber *&chamber) const
Definition: MDTRawDataUtilsRun3.cxx:400
MDTChamber
Definition: MDTChamber.h:22
MuonGM::MuonDetectorManager::getMdtReadoutElement
const MdtReadoutElement * getMdtReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:204
MuonGM::MdtReadoutElement
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:51
lumiFormat.i
int i
Definition: lumiFormat.py:85
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
MdtIdHelper
Definition: MdtIdHelper.h:61
MdtRawDataMonAlg::m_atlas_ready
bool m_atlas_ready
Definition: MdtRawDataMonAlg.h:187
MdtRawDataMonAlg::m_hist_hash_list
std::vector< std::unique_ptr< MDTChamber > > m_hist_hash_list
Definition: MdtRawDataMonAlg.h:163
MdtRawDataMonAlg::cachedTubeLayerMax
int cachedTubeLayerMax(const Identifier &id) const
Definition: MDTRawDataUtilsRun3.cxx:1346
MuonIdHelper::stationPhi
int stationPhi(const Identifier &id) const
Definition: MuonIdHelper.cxx:810
MdtRawDataMonAlg::binMdtGlobal
virtual StatusCode binMdtGlobal(TH2 *, char ecap)
Definition: MDTRawDataUtilsRun3.cxx:24
Trk::PrepRawData::identify
Identifier identify() const
return the identifier
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:227
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition: GeometryDefs.h:34
MdtRawDataMonAlg::AinB
static bool AinB(int A, std::vector< int > &B)
Definition: MDTRawDataUtilsRun3.cxx:364
MdtRawDataMonAlg::m_chambersId
std::vector< Identifier > m_chambersId
Definition: MdtRawDataMonAlg.h:151
MdtRawDataMonAlg::mezzmdt
int mezzmdt(const Identifier &id) const
Definition: MDTRawDataUtilsRun3.cxx:321
MdtRawDataMonAlg::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MdtRawDataMonAlg.h:109
dqt_zlumi_alleff_HIST.B
B
Definition: dqt_zlumi_alleff_HIST.py:110
HI::TowerBins::numLayers
constexpr unsigned int numLayers()
Definition: HIEventDefs.h:23
MuonIdHelper::stationEta
int stationEta(const Identifier &id) const
Definition: MuonIdHelper.cxx:805
MdtRawDataMonAlg::CorrectTubeMax
static void CorrectTubeMax(const std::string &hardware_name, int &numTubes)
Definition: MDTRawDataUtilsRun3.cxx:282
Muon::MdtPrepData
Class to represent measurements from the Monitored Drift Tubes.
Definition: MdtPrepData.h:33
Trk::iPhi
@ iPhi
Definition: ParamDefs.h:47
MdtRawDataMonAlg::CorrectLayerMax
static void CorrectLayerMax(const std::string &hardware_name, int &numLayers)
Definition: MDTRawDataUtilsRun3.cxx:287
h
MdtRawDataMonAlg::m_do_run3Geometry
Gaudi::Property< bool > m_do_run3Geometry
Definition: MdtRawDataMonAlg.h:178
skel.l1
l1
Definition: skel.GENtoEVGEN.py:398
MdtIdHelper::get_module_hash
virtual int get_module_hash(const Identifier &id, IdentifierHash &hash_id) const override
Definition: MdtIdHelper.cxx:319
IdentifierHash
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Definition: IdentifierHash.h:25
MuonGM::MdtReadoutElement::getNtubesperlayer
int getNtubesperlayer() const
Returns the number of tubes in each tube layer.
xAOD::iEta
setScale setgFexType iEta
Definition: gFexJetRoI_v1.cxx:77
MdtRawDataMonAlg::binMdtGlobal_byLayer
virtual StatusCode binMdtGlobal_byLayer(TH2 *, TH2 *, TH2 *)
Definition: MDTRawDataUtilsRun3.cxx:138
IdContext
This class saves the "context" of an expanded identifier (ExpandedIdentifier) for compact or hash ver...
Definition: IdContext.h:26
MdtRawDataMonAlg::binMdtOccVsLB
virtual StatusCode binMdtOccVsLB(TH2 *&h, int region, int layer)
Definition: MDTRawDataUtilsRun3.cxx:506
MdtRawDataMonAlg::getChamberName
std::string getChamberName(const Muon::MdtPrepData *) const
Definition: MDTRawDataUtilsRun3.cxx:389
Identifier
Definition: IdentifierFieldParser.cxx:14