ATLAS Offline Software
InDetGlobalNoiseOccupancyMonTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
21 //Local
23 //Framework
29 #include "GaudiKernel/StatusCode.h"
32 
33 //Root
34 #include "LWHists/TH1F_LW.h"
35 #include "LWHists/TH2F_LW.h"
36 #include "LWHists/TProfile_LW.h"
37 
38 //Standard c++
39 #include <string>
40 #include <vector>
41 #include <cmath>
42 #include <iostream>
43 #include <fstream>
44 
45 #define SCT_BARREL_SEL 0
46 #define SCT_POSEC_SEL 2
47 #define SCT_NEGEC_SEL -2
48 
49 
50 using namespace std;
51 
52 namespace{
53  //use anonymous namespace to restrict scope to this file,
54  // equivalent to 'static' keyword here
55  // is a variable in the specified range?
56  // __NOTE__
57  // This code is copied from
58  // SCT_Monitoring/src/SCTHitsNoiseMonTool.cxx
59  //Timing patterns for SCT (IXX is 1XX etc.)
60 
61  enum Pattern{ IXX=0, XIX, XXI };
62 
63  bool timeBinInPattern(const int tbin, const Pattern xxx){
64  switch(xxx){
65  case IXX:
66  return (tbin>3);
67  break;
68  case XIX:
69  return(tbin==2||tbin==3||tbin==6||tbin==7);
70  break;
71  case XXI:
72  return(tbin==1||tbin==3||tbin==5||tbin==7);
73  break;
74  default:
75  cout << "A strange timepattern was found;"
76  " this should never happen" << endl;
77  return false;
78  break;
79  }
80  }
81 } //end of anonymous namespace
82 
83 //----------------------------------------------------------------------
85  const string & type,
86  const string & name,
87  const IInterface* parent)
89  m_tracks(nullptr),
90  m_nStraws(0),
91  m_nStraws_B(0),
92  m_nStraws_ECA(0),
93  m_nStraws_ECC(0),
94  m_nStrips(0),
95  m_nStrips_B(0),
96  m_nStrips_ECA(0),
97  m_nStrips_ECC(0),
98  m_nPixels(0),
99  m_nPixels_B(0),
100  m_nPixels_ECA(0),
101  m_nPixels_ECC(0),
102  m_pixelMax(0.001),
103  m_pixel_nBins(100),
104  m_sctMax(0.001),
105  m_sct_nBins(100),
106  m_trtMax(0.03),
107  m_trt_nBins(100),
108  m_start(true),
109  m_doData(true),
110  m_SCT_TRT_NO(nullptr),
111  m_SCT_PIX_NO(nullptr),
112  m_PIX_TRT_NO(nullptr),
113  //m_PIX_SCT_TRT_NO(0),
114  m_TRT_SCTvTRT_PIX_10evt(nullptr),
115  m_TRT_SCTvSCT_PIX_10evt(nullptr),
116  m_TRT_PIXvSCT_PIX_10evt(nullptr),
117  m_PIX_NO_evt(nullptr),
118  m_PIX_NO(nullptr),
119  m_PIX_NO_B(nullptr),
120  m_PIX_NO_ECA(nullptr),
121  m_PIX_NO_ECC(nullptr),
122  m_PIX_NO_nseg(nullptr),
123  m_PIX_NO_ntrk(nullptr),
124  m_SCT_NO_evt(nullptr),
125  m_SCT_NO(nullptr),
126  m_SCT_NO_B(nullptr),
127  m_SCT_NO_ECA(nullptr),
128  m_SCT_NO_ECC(nullptr),
129  m_SCT_NO_nseg(nullptr),
130  m_SCT_NO_ntrk(nullptr),
131  m_TRT_NO_evt(nullptr),
132  m_TRT_NO_BA_phi(nullptr),
133  m_TRT_NO_BC_phi(nullptr),
134  m_TRT_NO_ECA_phi(nullptr),
135  m_TRT_NO_ECC_phi(nullptr),
136  m_TRT_HL_NO_evt(nullptr),
137  m_TRT_NO(nullptr),
138  m_TRT_HL_NO(nullptr),
139  m_TRT_NO_nseg(nullptr),
140  m_TRT_NO_ntrk(nullptr)
141 {
142  declareProperty("doData", m_doData);
143  declareProperty("pixelMax",m_pixelMax);
144  declareProperty("pixelNBins",m_pixel_nBins);
145  declareProperty("sctMax",m_sctMax);
146  declareProperty("sctNBins",m_sct_nBins);
147  declareProperty("trtMax",m_trtMax);
148  declareProperty("trtNBins",m_trt_nBins);
149 }
150 
151 /* Define Histograms */
152 //----------------------------------------------------------------------
154 {
155  MonGroup monGr_exp(this, "InDetGlobal/NO", run);
156  MonGroup monGr_bug(this, "InDetGlobal/NO", run);
157  MonGroup monGr_shift(this,"InDetGlobal/NO", run);
158  bool status = true;
159  //--- Registration of histograms per run
160  if(newRunFlag()){
161 
162  //--- ID histograms---------------------
163  status &= registerHist( monGr_shift, m_SCT_TRT_NO =
164  TH2F_LW::create("m_SCT_TRT_NO","TRT noise occupancy vs SCT noise occupancy",
165  m_sct_nBins,0,m_sctMax, m_trt_nBins,0,m_trtMax)).isSuccess();
166  status &= registerHist( monGr_shift, m_SCT_PIX_NO =
167  TH2F_LW::create("m_SCT_PIX_NO","Pixel noise occupancy vs SCT noise occupancy",
168  m_sct_nBins, 0, m_sctMax, m_pixel_nBins, 0, m_pixelMax)).isSuccess();
169  status &= registerHist( monGr_shift, m_PIX_TRT_NO =
170  TH2F_LW::create("m_PIX_TRT_NO","TRT noise occupancy vs Pixel noise occupancy",
171  m_pixel_nBins, 0, m_pixelMax, m_trt_nBins, 0, m_trtMax)).isSuccess();
172 
173  /*
174  * combined NO histos using correlation coefficient
175  * Added by m
176  */
177 
178  status &= registerHist( monGr_shift, m_TRT_SCTvTRT_PIX_10evt =
179  TH2F_LW::create("m_TRT_SCTvTRT_PIX_10evt",
180  "TRT,SCT, PIX combined "
181  "occupancy",100,-1,1,100,-1,1)).isSuccess();
182  status &= registerHist( monGr_shift, m_TRT_SCTvSCT_PIX_10evt =
183  TH2F_LW::create("m_TRT_SCTvSCT_PIX_10evt",
184  "TRT,SCT, PIX combined "
185  "occupancy",100,-1,1,100,-1,1)).isSuccess();
186  status &= registerHist( monGr_shift, m_TRT_PIXvSCT_PIX_10evt =
187  TH2F_LW::create("m_TRT_PIXvSCT_PIX_10evt",
188  "TRT,SCT, PIX combined "
189  "occupancy",100,-1,1,100,-1,1)).isSuccess();
190 
191  //---Pixel debug histograms
192  status &= registerHist( monGr_shift, m_PIX_NO_evt =
193  TProfile_LW::create("m_PIX_NO_evt","PIX noise "
194  "occupancy vs bin of 10 events",m_checkRate/10,
195  0,m_checkRate)).isSuccess();
196  status &= registerHist( monGr_exp, m_PIX_NO =
197  TH1F_LW::create("m_PIX_NO","PIX noise occupancy",
198  m_pixel_nBins,0,m_pixelMax)).isSuccess();
199  status &= registerHist( monGr_exp, m_PIX_NO_B =
200  TH1F_LW::create("m_PIX_NO_B","PIX noise occupancy (B)",
201  m_pixel_nBins,0,m_pixelMax)).isSuccess();
202  status &= registerHist( monGr_exp, m_PIX_NO_ECA =
203  TH1F_LW::create("m_PIX_NO_ECA","PIX noise occupancy (ECA)",
204  m_pixel_nBins,0,m_pixelMax)).isSuccess();
205  status &= registerHist( monGr_exp, m_PIX_NO_ECC =
206  TH1F_LW::create("m_PIX_NO_ECC","PIX noise occupancy (ECC)",
207  m_pixel_nBins,0,m_pixelMax)).isSuccess();
208  status &= registerHist( monGr_exp, m_PIX_NO_nseg =
209  TH2F_LW::create("m_PIX_NO_nseg","PIX noise occupancy "
210  "vs number of PIX segments",500,0,500,
211  150,0,m_pixelMax)).isSuccess();
212  status &= registerHist( monGr_exp, m_PIX_NO_ntrk =
213  TH2F_LW::create("m_PIX_NO_ntrk","PIX noise occupancy "
214  "vs number of combinedtracks",500,0,500,
215  200,0,m_pixelMax)).isSuccess();
216  //---SCT debug histograms
217  status &= registerHist( monGr_shift, m_SCT_NO_evt =
218  TProfile_LW::create("m_SCT_NO_evt","SCT noise "
219  "occupancy vs bin of 10 events",m_checkRate/10,
220  0,m_checkRate)).isSuccess();
221  status &= registerHist( monGr_exp, m_SCT_NO =
222  TH1F_LW::create("m_SCT_NO","SCT noise occupancy",
223  100,0,m_sctMax)).isSuccess();
224  status &= registerHist( monGr_exp, m_SCT_NO_B =
225  TH1F_LW::create("m_SCT_NO_B","SCT noise occupancy (B)",
226  100,0,m_sctMax)).isSuccess();
227  status &= registerHist( monGr_exp, m_SCT_NO_ECA =
228  TH1F_LW::create("m_SCT_NO_ECA","SCT noise occupancy (ECA)",
229  100,0,m_sctMax)).isSuccess();
230  status &= registerHist( monGr_exp, m_SCT_NO_ECC =
231  TH1F_LW::create("m_SCT_NO_ECC","SCT noise occupancy (ECC)",
232  100,0,m_sctMax)).isSuccess();
233  status &= registerHist( monGr_exp, m_SCT_NO_nseg =
234  TH2F_LW::create("m_SCT_NO_nseg","SCT noise occupancy "
235  "vs number of SCT segments"
236  ,50,0,50,150,0,m_sctMax)).isSuccess();
237  status &= registerHist( monGr_exp, m_SCT_NO_ntrk =
238  TH2F_LW::create("m_SCT_NO_ntrk", "SCT noise occupancy "
239  "vs number of combined tracks",
240  100,0,100,200,0,m_sctMax)).isSuccess();
241 
242  //---TRT debug histograms
243  status &= registerHist( monGr_shift, m_TRT_NO_evt =
244  TProfile_LW::create("m_TRT_NO_evt","TRT noise "
245  "occupancy vs bin of 10 events",
246  m_checkRate/10,0,m_checkRate)).isSuccess();
247  status &= registerHist( monGr_exp, m_TRT_NO =
248  TH1F_LW::create("m_TRT_NO","TRT noise occupancy",100,
249  0,m_trtMax)).isSuccess();
250  status &= registerHist( monGr_exp, m_TRT_NO_BC_phi=
251  TProfile_LW::create("m_TRT_NO_BC_phi","TRT noise occupancy in phi sectors (Barrel C)",32,
252  -0.5,31.5,0,m_trtMax)).isSuccess();
253  status &= registerHist( monGr_exp, m_TRT_NO_BA_phi=
254  TProfile_LW::create("m_TRT_NO_BA_phi","TRT noise occupancy in phi sectors (Barrel A)",32,
255  -0.5,31.5,0,m_trtMax)).isSuccess();
256  status &= registerHist( monGr_exp, m_TRT_NO_ECA_phi=
257  TProfile_LW::create("m_TRT_NO_ECA_phi","TRT noise occupancy in phi sectors (ECA)",32,
258  -0.5,31.5,0,m_trtMax)).isSuccess();
259  status &= registerHist( monGr_exp, m_TRT_NO_ECC_phi=
260  TProfile_LW::create("m_TRT_NO_ECC_phi","TRT noise occupancy in phi sectors (ECC)",32,
261  -0.5,31.5,0,m_trtMax)).isSuccess();
262 
263  status &= registerHist( monGr_exp, m_TRT_HL_NO_evt =
264  TProfile_LW::create("m_TRT_HL_NO_evt","TRT HL noise "
265  "occupancy vs event number",
266  m_checkRate,0,m_checkRate)).isSuccess();
267  status &= registerHist( monGr_exp, m_TRT_HL_NO =
268  TH1F_LW::create("m_TRT_HL_NO","TRT HL noise occupancy",
269  100,0,m_trtMax)).isSuccess();
270  status &= registerHist( monGr_exp, m_TRT_NO_nseg =
271  TH2F_LW::create("m_TRT_NO_nseg","TRT noise occupancy "
272  "vs number of TRT segments",500,0,500,
273  150,0,m_trtMax)).isSuccess();
274  status &= registerHist( monGr_exp, m_TRT_NO_ntrk =
275  TH2F_LW::create("m_TRT_NO_ntrk","TRT noise occupancy "
276  "vs number of combined tracks",
277  500,0,500,200,0,m_trtMax)).isSuccess();
278 
279  // To be moved to conditions data?
280  m_nStraws = 0.;
281  m_nStrips = 0.;
282  m_nPixels = 0.;
283  m_start= true;
284 
285 
286  }
287  // if isNewRun
288  /* FIXME
289  * this if statement does nothing -- should it be paired with the
290  * return statement below?
291  * compiler will just remove it as it is
292  */
293  if ( status ) return StatusCode::SUCCESS;
294  else return StatusCode::FAILURE;
295 }
296 
297 
298 //----------------------------------------------------------------------
300 {
301  /* Output streams used for debug...
302  * ofstream msg("create_vector.out");
303  * msg << "m_evt at start of fillHistograms() " << m_evt << endl;
304  */
305  if(!evtStore()){
306  if(msgLvl(MSG::DEBUG))
307  msg(MSG::DEBUG) << "No pointer to StoreGateSvc"
308  << endmsg;
309  return StatusCode::FAILURE;
310  }
311 
312  // awful hack to be changed with condition databases ....
313 
314  /*
315  * FOR REF: this hack contains lots of hard coded numbers
316  * which should be allocated dynamically
317  */
318 
319  if(m_start){
320  if(m_doData){
321  m_nStraws += 1642.*2.*32; // 2 sides
322  m_nStraws_B = 1642.*2.*32;
323 
326  // full barrel... check w/ experts if everything cabled up
327  // 768 strips/rectangle, 2 rectangles, 12 in z, 4 #cylinders
328 
329  m_nPixels_B = 46080*(286+494+676);//GetPixelCounts(SCT_BARREL_SEL, false);
331  //46080*(286+494+676); //GetPixelCounts(SCT_BARREL_SEL, false);
332  //47232 pixels per sensors, 3 cylinders
333 
334 
335 
336  m_nStraws += 24.*16.*10.*32;
337  m_nStraws_ECA = 24.*16.*10.*32;
338 
339  // 24 straws 16 layers 10 disks
340 
343  // 52 modules/ring type 1 - 9 rings of type 1
344  // 40 modules/ring type 2,3,4 - 13 rings of type 2,3,4
345  // TDR p. 53,54 ... to be checked
346 
347  m_nPixels_ECA = 46080*(48+48+48); //GetPixelCounts(SCT_NEGEC_SEL, false);
349  //46080*(48+48+48); //GetPixelCounts(SCT_NEGEC_SEL, false);
350  // 47232 pixel46080s per sensors, 3 disks -->CHECK THIS
351 
352 
353  m_nStraws += 24.*16.*10.*32;
354  m_nStraws_ECC = 24.*16.*10.*32;
355 
356  // 24 straws 16 layers 10 disks
357 
360 
361  m_nPixels_ECC = 46080*(48+48+48); //GetPixelCounts(SCT_POSEC_SEL, false);
363  //46080*(48+48+48); //GetPixelCounts(SCT_POSEC_SEL, false);
364 
365  m_start = false;
366 
367  }
368  }
369  // end of awful hack
370 
371  int nComb_trk=0;
372 
374  nComb_trk = m_combined_tracks->size();
375 
376 
378  m_dcidOnTrack.clear();
379 
380  //--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*
381  // Loop over Combined tracks
382  //--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*
383 
384  float nTRT_RDOs=0.;
385  int nTRT_seg = 0;
386  int nTRT_trk = 0;
387  float nTRT_HL_RDOs=0.;
388  float nTRT_HL_trk=0.;
389  int nSCT_seg = 0;
390  int nSCT_trk = 0;
391  int nSCT_trk_B = 0;
392  int nSCT_trk_ECA = 0;
393  int nSCT_trk_ECC = 0;
394 
395  int nPIX_seg = 0;
396  int nPIX_trk = 0;
397  int nPIX_trk_B = 0;
398  int nPIX_trk_ECA = 0;
399  int nPIX_trk_ECC = 0;
400 
401  int TRT_nOnTrack_phi_BA[32] = {0};
402  int TRT_nOnTrack_phi_BC[32] = {0};
403  int TRT_nOnTrack_phi_ECA[32] = {0};
404  int TRT_nOnTrack_phi_ECC[32] = {0};
405 
406 
407  if (m_tracks) {
408  TrackCollection::const_iterator itrack = m_tracks->begin();
409  TrackCollection::const_iterator itrack_end = m_tracks->end();
410  for ( ; itrack!=itrack_end ; ++itrack) {
411 
412  // Get track
413  const Trk::Track *track=(*itrack);
414  if (track == nullptr){
415  if ( msgLvl(MSG::WARNING) ) {
416  msg(MSG::WARNING) << "no pointer to track!!!" << endmsg;
417  }
418  break;
419  }
420 
421  const Trk::TrackStates*
422  trackStates=track->trackStateOnSurfaces();
423  if (trackStates == nullptr) {
424  if ( msgLvl(MSG::ERROR) ) msg(MSG::ERROR)
425  << "for current track is TrackStateOnSurfaces == Null "
426  << endmsg;
427  } else {
429  it=trackStates->begin();
431  it_end=trackStates->end();
432  for ( ; it != it_end ; ++it) {
433  const Trk::TrackStateOnSurface* trackState=(*it);
434 
435  if (trackState == nullptr) {
436  if ( msgLvl(MSG::WARNING) ) msg(MSG::WARNING) << "TrackStateOnSurface == Null, is the tracking OK?" << endmsg;
437  continue;
438  }
439  const InDet::TRT_DriftCircleOnTrack *trtcircle = dynamic_cast<const InDet::TRT_DriftCircleOnTrack*>(trackState->measurementOnTrack());
440  if (trtcircle!=nullptr) {
441  nTRT_trk++;
442  m_dcidOnTrack.push_back(trtcircle->identify());
443  Identifier rdoId = trtcircle->identify();
444  // Fill the number of RDO per phi sector arrays.
445  switch ( m_trtID->barrel_ec(rdoId) )
446  {
447  case 1:
448  TRT_nOnTrack_phi_BA[m_trtID->phi_module(rdoId)]++;
449  break;
450  case -1:
451  TRT_nOnTrack_phi_BC[m_trtID->phi_module(rdoId)]++;
452  break;
453  case -2:
454  TRT_nOnTrack_phi_ECA[m_trtID->phi_module(rdoId)]++;
455  break;
456  case 2:
457  TRT_nOnTrack_phi_ECC[m_trtID->phi_module(rdoId)]++;
458  break;
459  }
460 
461  if(trtcircle->highLevel()) nTRT_HL_trk++;
462  }
463  const InDet::SiClusterOnTrack *clus =
464  dynamic_cast<const InDet::SiClusterOnTrack*>(trackState->measurementOnTrack());
465  if (clus) {
466  const InDet::SiCluster *RawDataClus =
467  dynamic_cast<const InDet::SiCluster*>(clus->prepRawData());
468  if(!RawDataClus){
469  if ( msgLvl(MSG::WARNING) ) msg(MSG::WARNING) <<
470  "SiCluster WITHOUT " <<
471  "prepRawData!!!!" <<
472  endmsg;
473  continue;
474  }
475 
476  if (RawDataClus==nullptr) {
477  if ( msgLvl(MSG::WARNING) ) msg(MSG::WARNING)
478  << "SiCluster WITHOUT prepRawData!!!!"
479  << endmsg;
480  } else {
481  if (RawDataClus->detectorElement()->isSCT()) {
482  nSCT_trk += RawDataClus->rdoList().size();
483  switch ( m_sctID->barrel_ec(RawDataClus->identify()) )
484  {
485  case 0:
486  nSCT_trk_B++;
487  break;
488  case -2:
489  nSCT_trk_ECA++;
490  break;
491  case 2:
492  nSCT_trk_ECC++;
493  break;
494  }
495 
496  }else{
497  nPIX_trk += RawDataClus->rdoList().size();
498  switch ( m_pixelID->barrel_ec(RawDataClus->identify()) )
499  {
500  case 0:
501  nPIX_trk_B++;
502  break;
503  case -2:
504  nPIX_trk_ECA++;
505  break;
506  case 2:
507  nPIX_trk_ECC++;
508  break;
509  }
510 
511  }
512  }
513  }
514  }
515  }
516  }
517  }
518 
519 
520 
521  //--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*
522  // loop over TRT RDOs collections
523  //--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*
524 
525  int TRT_nRDOs_phi_BA[32] = {0};
526  int TRT_nRDOs_phi_BC[32] = {0};
527  int TRT_nRDOs_phi_ECA[32] = {0};
528  int TRT_nRDOs_phi_ECC[32] = {0};
529 
530  if(m_driftCircleContainer!=nullptr){
531  TRT_DriftCircleContainer::const_iterator colIt =
532  m_driftCircleContainer->begin();
533  TRT_DriftCircleContainer::const_iterator colIt_end =
534  m_driftCircleContainer->end();
535  for( ; colIt != colIt_end; ++colIt){
536  const TRT_DriftCircleCollection *colNext=(*colIt);
537 
538  if(!colNext)
539  continue;
540 
541  // loop over RDOs
543  colNext->begin();
545  colNext->end();
546  for(; p_rdo!=p_rdo_end; ++p_rdo){
547  const TRT_DriftCircle* rdo = (*p_rdo);
548  if(!rdo)
549  continue;
550 
551  Identifier rdoId = rdo->identify();
552 
553  // Fill the number of RDO per phi sector arrays.
554  switch ( m_trtID->barrel_ec(rdoId) )
555  {
556  case 1:
557  TRT_nRDOs_phi_BA[m_trtID->phi_module(rdoId)]++;
558  break;
559  case -1:
560  TRT_nRDOs_phi_BC[m_trtID->phi_module(rdoId)]++;
561  break;
562  case -2:
563  TRT_nRDOs_phi_ECA[m_trtID->phi_module(rdoId)]++;
564  break;
565  case 2:
566  TRT_nRDOs_phi_ECC[m_trtID->phi_module(rdoId)]++;
567  break;
568  }
569 
570  nTRT_RDOs++;
571 
572  if(rdo->highLevel())
573  nTRT_HL_RDOs++;
574  }
575  }
576  }
577 
578 
579  //--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*
580  // loop over SCT RDOs collections
581  //--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*
582 
583  int nSCT_RDOs=0;
584  int nSCT_RDOs_B=0;
585  int nSCT_RDOs_ECA=0;
586  int nSCT_RDOs_ECC=0;
587 
588  if(m_sctRdoContainer != nullptr){
591  SCT_RDO_Container::const_iterator colNextsct_end =
593  for( ; colNextsct != colNextsct_end; ++colNextsct){
594  const InDetRawDataCollection<SCT_RDORawData>* SCT_Collection(*colNextsct);
595 
596  if(!SCT_Collection)
597  continue;
598 
599  if(msgLvl(MSG::DEBUG))
600  msg(MSG::DEBUG) << "SCT_Collection found with "
601  << SCT_Collection->size() << " RDOs"
602  << endmsg;
603 
605  SCT_Collection->begin();
607  SCT_Collection->end();
608  for( ; p_rdo!=p_rdo_end; ++p_rdo){
609  const SCT_RDORawData* rdo = (*p_rdo);
610 
611  if(!rdo)
612  continue;
613 
614  const SCT3_RawData* rdo3 =
615  dynamic_cast<const SCT3_RawData*>(rdo);
616 
617  // if valid rdo pointer,get time bin,otherwise
618  // assume it's 3
619  int tbin = rdo3 ? rdo3->getTimeBin() : 3;
620 
621  if(timeBinInPattern(tbin, XIX)){
622  nSCT_RDOs++;
623  switch ( m_sctID->barrel_ec(rdo->identify()) )
624  {
625  case 0:
626  nSCT_RDOs_B++;
627  break;
628  case -2:
629  nSCT_RDOs_ECA++;
630  break;
631  case 2:
632  nSCT_RDOs_ECC++;
633  break;
634  }
635  }
636  }
637  }
638  }
639 
640  //--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*
641  // loop over PIX RDOs collections
642  //--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*
643 
644  int nPIX_RDOs=0;
645  int nPIX_RDOs_B=0;
646  int nPIX_RDOs_ECA=0;
647  int nPIX_RDOs_ECC=0;
648  if ( m_pixRdoContainer != nullptr ){
651  PixelRDO_Container::const_iterator colNextpix_end =
653  for(; colNextpix != colNextpix_end; ++colNextpix){
655  PIX_Collection(*colNextpix);
656 
657  if(!PIX_Collection)
658  continue;
659 
660  if(msgLvl(MSG::DEBUG))
661  msg(MSG::DEBUG) << "PIX_Collection found with "
662  << PIX_Collection->size() << " RDOs"
663  << endmsg;
664 
666  PIX_Collection->begin();
668  PIX_Collection->end();
669  for(; p_rdo!=p_rdo_end; ++p_rdo){
670  const PixelRDORawData* rdo = (*p_rdo);
671 
672  if(!rdo)
673  continue;
674 
675  nPIX_RDOs++;
676  switch ( m_pixelID->barrel_ec(rdo->identify()) )
677  {
678  case 0:
679  nPIX_RDOs_B++;
680  break;
681  case -2:
682  nPIX_RDOs_ECA++;
683  break;
684  case 2:
685  nPIX_RDOs_ECC++;
686  break;
687  }
688  }
689  }
690  }
691 
692  //--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*
693  // Filling histograms
694  //--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*
695 
696  // msg << "m_evt" << m_evt << endl;
697  m_evt++;
698 
699  //pre-calculate RDOs-tracks / unit for TRT, SCT and Pixel
700  const float dTRTstraw = (nTRT_RDOs-nTRT_trk)/m_nStraws;
701  const float dSCTstrip = (nSCT_RDOs-nSCT_trk)/m_nStrips;
702  const float dSCTstrip_B = (nSCT_RDOs_B-nSCT_trk_B)/m_nStrips_B;
703  const float dSCTstrip_ECA = (nSCT_RDOs_ECA-nSCT_trk_ECA)/m_nStrips_ECA;
704  const float dSCTstrip_ECC = (nSCT_RDOs_ECC-nSCT_trk_ECC)/m_nStrips_ECC;
705  const float dPIXpixel = (nPIX_RDOs-nPIX_trk)/m_nPixels;
706  const float dPIXpixel_B = (nPIX_RDOs_B-nPIX_trk_B)/m_nPixels_B;
707  const float dPIXpixel_ECA = (nPIX_RDOs_ECA-nPIX_trk_ECA)/m_nPixels_ECA;
708  const float dPIXpixel_ECC = (nPIX_RDOs_ECC-nPIX_trk_ECC)/m_nPixels_ECC;
709  const float dTRTHLstraw = (nTRT_HL_RDOs-nTRT_HL_trk)/m_nStraws;
710 
711  /*
712  * fill the vector required for calculating the correlation coeff
713  * on the noise occupancies
714  * Only fill if all detectors have proper NO values
715  * Ad`OBded by m
716  */
717 
718  /*output strem used for debug*/
719  //msg(MSG::WARNING) << m_evt << "dTRTstraw " << dTRTstraw << endl;
720  //msg(MSG::WARNING) << m_evt << "dSCTstrip " << dSCTstrip << endl;
721  //msg(MSG::WARNING) << m_evt << "dPIXpixel " << dPIXpixel << endl;
722  //msg(MSG::WARNING) << "nTRT_RDOs " << nTRT_RDOs << " nTRT_trk " << nTRT_trk << endl;
723  //msg(MSG::WARNING) << "nSCT_RDOs " << nSCT_RDOs << " nSCT_trk " << nSCT_trk << endl;
724  //msg(MSG::WARNING) << "nPIX_RDOs " << nPIX_RDOs << " nPIX_trk " << nPIX_trk << endl;
725  //msg(MSG::WARNING) << "m_checkRate " << m_checkRate << endl;
726 
727  /*
728  * Fill combined histograms
729  * This will only call if noise in all detectors currently
730  * Added by m
731  */
732  if( nTRT_RDOs > nTRT_trk &&
733  nSCT_RDOs > nSCT_trk &&
734  nPIX_RDOs > nPIX_trk ){
735  /* create a struct of type noise to contain the NOs */
736  struct noise noise_occupancy{};
737 
738  /*set the elements of the struct*/
739  noise_occupancy.trt_no = dTRTstraw;
740  noise_occupancy.sct_no = dSCTstrip;
741  noise_occupancy.pix_no = dPIXpixel;
742 
743  /*
744  * add the current struct to end of the vector
745  * m_NO - declared in header
746  */
747  m_NO.push_back(noise_occupancy);
748 
749  /* strem for debug
750  * msg << "added strct to vector" << endl;
751  * msg << m_evt << " noise_occupancy.trt_no "
752  * << noise_occupancy.trt_no;
753  */
754  }
755 
756 
757  if(nTRT_RDOs > nTRT_trk && nSCT_RDOs > nSCT_trk)
758  m_SCT_TRT_NO->Fill(dSCTstrip,dTRTstraw);
759  else
760  m_SCT_TRT_NO->Fill(0.,0.);
761 
762  if(nPIX_RDOs > nPIX_trk && nSCT_RDOs > nSCT_trk)
763  m_SCT_PIX_NO->Fill(dSCTstrip,dPIXpixel);
764  else
765  m_SCT_PIX_NO->Fill(0.,0.);
766 
767  if (nPIX_RDOs > nPIX_trk && nTRT_RDOs > nTRT_trk)
768  m_PIX_TRT_NO->Fill(dPIXpixel,dTRTstraw);
769  else
770  m_PIX_TRT_NO->Fill(0.,0.);
771 
772  //if (nPIX_RDOs > nPIX_trk && nSCT_RDOs > nSCT_trk &&
773  // nTRT_RDOs>nTRT_trk )
774  // m_PIX_SCT_TRT_NO->Fill(dSCTstrip-dPIXpixel, dSCTstrip-dTRTstraw);
775  //else
776  // m_PIX_SCT_TRT_NO->Fill(0.,0.);
777 
778 
779  if(nTRT_RDOs > nTRT_trk){
780  m_TRT_NO_evt->Fill(m_evt,dTRTstraw,1);
781  m_TRT_NO->Fill(dTRTstraw);
782 
783  for (int i = 0;i < 32;i++){
784  m_TRT_NO_BA_phi->Fill(i,((float)TRT_nRDOs_phi_BA[i]-(float)TRT_nOnTrack_phi_BA[i])/(float)m_nStraws_B*32.0*2);
785  m_TRT_NO_BC_phi->Fill(i,((float)TRT_nRDOs_phi_BC[i]-(float)TRT_nOnTrack_phi_BC[i])/(float)m_nStraws_B*32.0*2);
786  m_TRT_NO_ECA_phi->Fill(i,((float)TRT_nRDOs_phi_ECA[i]-(float)TRT_nOnTrack_phi_ECA[i])/(float)m_nStraws_ECA*32.0 );
787  m_TRT_NO_ECC_phi->Fill(i,((float)TRT_nRDOs_phi_ECC[i]-(float)TRT_nOnTrack_phi_ECC[i])/(float)m_nStraws_ECC*32.0 );
788  }
789 
790  m_TRT_NO_nseg->Fill(nTRT_seg,dTRTstraw);
791  m_TRT_NO_ntrk->Fill(nComb_trk,dTRTstraw);
792  }
793  else{
794  m_TRT_NO_evt->Fill(m_evt,0.,1);
795  m_TRT_NO->Fill(0.);
796  m_TRT_NO_nseg->Fill(nTRT_seg,0.);
797  m_TRT_NO_ntrk->Fill(nComb_trk,0.);
798  }
799 
800  m_TRT_HL_NO_evt->Fill(m_evt,dTRTHLstraw,1);
801  m_TRT_HL_NO->Fill(dTRTHLstraw);
802 
803  if(nSCT_RDOs > nSCT_trk){
804  m_SCT_NO_evt->Fill(m_evt,dSCTstrip,1);
805  m_SCT_NO->Fill(dSCTstrip);
806  m_SCT_NO_B->Fill(dSCTstrip_B);
807  m_SCT_NO_ECA->Fill(dSCTstrip_ECA);
808  m_SCT_NO_ECC->Fill(dSCTstrip_ECC);
809  m_SCT_NO_nseg->Fill(nSCT_seg,dSCTstrip);
810  m_SCT_NO_ntrk->Fill(nComb_trk,dSCTstrip);
811  }
812  else{
813  m_SCT_NO_evt->Fill(m_evt,0.,1);
814  m_SCT_NO->Fill(0.);
815  m_SCT_NO_nseg->Fill(nSCT_seg,0.);
816  m_SCT_NO_ntrk->Fill(nComb_trk,0.);
817  }
818  if(nPIX_RDOs > nPIX_trk){
819  m_PIX_NO_evt->Fill(m_evt,dPIXpixel,1);
820  m_PIX_NO->Fill(dPIXpixel);
821  m_PIX_NO_B->Fill(dPIXpixel_B);
822  m_PIX_NO_ECA->Fill(dPIXpixel_ECA);
823  m_PIX_NO_ECC->Fill(dPIXpixel_ECC);
824  m_PIX_NO_nseg->Fill(nPIX_seg,dPIXpixel);
825  m_PIX_NO_ntrk->Fill(nComb_trk,dPIXpixel);
826  }
827  else{
828  m_PIX_NO_evt->Fill(m_evt,0.,1);
829  m_PIX_NO->Fill(0.);
830  m_PIX_NO_nseg->Fill(nPIX_seg,0.);
831  m_PIX_NO_ntrk->Fill(nComb_trk,0.);
832  }
833 
836  xaxis_ST->SetTitle("SCT");
837  yaxis_ST->SetTitle("TRT");
838 
841  xaxis_SP->SetTitle("SCT");
842  yaxis_SP->SetTitle("PIX");
843 
846  xaxis_PT->SetTitle("PIX");
847  yaxis_PT->SetTitle("TRT");
848 
849  LWHist::LWHistAxis *xaxis_PIX_NO_ntrk = m_PIX_NO_ntrk->GetXaxis();
850  xaxis_PIX_NO_ntrk->SetTitle("Number of tracks");
851 
852  LWHist::LWHistAxis *xaxis_PIX_NO_nseg = m_PIX_NO_nseg->GetXaxis();
853  xaxis_PIX_NO_nseg->SetTitle("Number of PIX segments");
854 
855  LWHist::LWHistAxis *xaxis_SCT_NO_ntrk = m_SCT_NO_ntrk->GetXaxis();
856  xaxis_SCT_NO_ntrk->SetTitle("Number of tracks");
857 
858  LWHist::LWHistAxis *xaxis_SCT_NO_nseg = m_SCT_NO_nseg->GetXaxis();
859  xaxis_SCT_NO_nseg->SetTitle("Number of SCT segments");
860 
861  LWHist::LWHistAxis *xaxis_TRT_NO_ntrk = m_TRT_NO_ntrk->GetXaxis();
862  xaxis_TRT_NO_ntrk->SetTitle("Number of tracks");
863 
864  LWHist::LWHistAxis *xaxis_TRT_NO_nseg = m_TRT_NO_nseg->GetXaxis();
865  xaxis_TRT_NO_nseg->SetTitle("Number of TRT segments");
866 
867  /*
868  * Calculate correlation coefficients and fill histos on
869  * every 10th pass - the vector should be filled by then
870  * Added by m
871  */
872  if(m_evt%10==0){
874 
875  /*
876  * clear the m_NO occupancy vector as .push_back()
877  * will continue to add onto the end even although
878  * we're starting a new calcualtion
879  */
880  m_NO.clear();
881  }
882 
883  //--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*
884  // Reseting histograms
885  //--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*
886 
887  /*
888  * Resetting the histograms can lead to blank
889  * histograms if m_evt%m_checkRate = int
890  * Might have to think of some other way of doing this
891  */
892 
893  if(m_evt%m_checkRate==0){
894 
895  //Reset pixel histograms
896  m_PIX_NO_evt->Reset();
897  m_PIX_NO->Reset();
898  m_PIX_NO_nseg->Reset();
899  m_PIX_NO_ntrk->Reset();
900 
901  //Reset sct histograms
902  m_SCT_NO_evt->Reset();
903  m_SCT_NO->Reset();
904  m_SCT_NO_nseg->Reset();
905  m_SCT_NO_ntrk->Reset();
906 
907  //Reset trt histograms
908  m_TRT_NO_evt->Reset();
910  m_TRT_NO->Reset();
911  m_TRT_NO_nseg->Reset();
912  m_TRT_NO_ntrk->Reset();
913 
914  //Reset id combined histograms
915  m_SCT_TRT_NO->Reset();
916  m_SCT_PIX_NO->Reset();
917  m_PIX_TRT_NO->Reset();
918 
919  /*
920  * Reset combined histos
921  * Added by m
922  */
926 
927  /* Set m_evt counter to 0 again */
928  m_evt = 0;
929 
930  }
931  return StatusCode::SUCCESS;
932 }
933 //-------------------------------------------------------------------------
934 bool InDetGlobalNoiseOccupancyMonTool::isOnTrack(const Identifier & DCId) const{
935 return(find(m_dcidOnTrack.begin(), m_dcidOnTrack.end(), DCId )
936  != m_dcidOnTrack.end());
937  }
938 
939 
940 //------------------------------------------------------------------------
941 int InDetGlobalNoiseOccupancyMonTool::histIdx(const vector<int> &aList,
942  const Identifier &rdoId) const{
943  //get triplet identifier
944  int trplID = 20*vecContains(aList,m_trtID->phi_module(rdoId));
945 
946  //get layer or wheel id
947  const int layer_or_wheel=m_trtID->layer_or_wheel(rdoId);
948 
949  //add layer or wheel
950  if(layer_or_wheel<6){
951  trplID += layer_or_wheel*2;
952  }
953  else
954  if(layer_or_wheel>5){
955  trplID += 6 + layer_or_wheel;
956  }
957  //add straw layer
958  if(m_trtID->straw_layer(rdoId) > 7) trplID +=1;
959 
960  //return triplet id
961  return trplID;
962 }
963 
964 /*
965  * method to calculate the correlation coefficient for a group of points
966  * this method takes in the already summed points and calculates the
967  * Pearson Moment correlation coefficient
968  * Added by m
969  */
971  const float *sum_y, const float *sum_xy, const float *sum_x_sq, const float *sum_y_sq,
972  const int *points)
973 {
974  /* define tmp floats */
975  float r;
976  float denom_1;
977  float denom_2;
978  float num;
979 
980  /* calculate the sections of the sum
981  */
982  num = (float)*points * *sum_xy - *sum_x * *sum_y;
983  denom_1 = (float)*points * *sum_x_sq - *sum_x * *sum_x;
984  denom_2 = (float)*points * *sum_y_sq - *sum_y * *sum_y;
985 
986  r = num / sqrt((denom_1 * denom_2));
987 
988  return r;
989 }
990 
991 
992 /*
993  * Method to calculate the correlation coefficient for every n events
994  * Added my m
995  */
997  &no){
998 
999  /* get the number of events saved in the vector
1000  * this should be 10 currently
1001  */
1002  int size = no.size();
1003 
1004  if(size!=10){
1005 
1006  /*if(msgLvl(MSG::WARNING)){
1007  msg(MSG::WARNING) << "less than " << size <<
1008  " events saved for correlation calculation "
1009  "- manually setting numbers to -2"
1010  << endmsg;
1011  }*/
1012 
1013  m_TRT_SCTvTRT_PIX_10evt->Fill(-2,-2);
1014  m_TRT_SCTvSCT_PIX_10evt->Fill(-2,-2);
1015  m_TRT_PIXvSCT_PIX_10evt->Fill(-2,-2);
1016  }
1017  else{
1018  /*
1019  * n is the 'bin size' we will use for calculating
1020  * correlation coefficient = number of points used
1021  */
1022  int n = 10;
1023 
1024  /* calculate x = the number of correlation coefficients to be
1025  * calculated
1026  * x should be 1 currently
1027  * this extra stage has been left from a previous version as
1028  * a check.
1029  */
1030  int x = (int)(size / n);
1031 
1032  /* floats for final calculation */
1033  float corr_trt_sct;
1034  float corr_trt_pix;
1035  float corr_sct_pix;
1036 
1037 
1038  /* loop over the number of correlation coefficients to be
1039  * calculated
1040  */
1041  for(int i=0; i < x; i++){
1042 
1043  /*
1044  * temp floats to be used for summing the values required
1045  * for the calc_correlation method - reset to 0 each time
1046  */
1047  float sum_trt_sct = 0;
1048  float sum_trt_pix = 0;
1049  float sum_sct_pix = 0;
1050 
1051  float sum_trt = 0;
1052  float sum_sct = 0;
1053  float sum_pix = 0;
1054 
1055  float sum_trt_sq = 0;
1056  float sum_sct_sq = 0;
1057  float sum_pix_sq = 0;
1058 
1059  /* debug...
1060  * ofstream msg1("corr_coeff.out");
1061  */
1062 
1063  /* loop over the individual events in this 'block'*/
1064  for(int j = n*i; j < n*i+n; j++){
1065 
1066  /* get the values stored in the struct
1067  * in the vector */
1068  float trt = no.at(j).trt_no;
1069  //msg1 << i << " trt_no from storage =
1070  //" << trt << endl;
1071  float sct = no.at(j).sct_no;
1072  //msg1 << i << " sct_no from storage =
1073  //" << sct << endl;
1074  float pix = no.at(j).pix_no;
1075  //msg1 << i << " pix_no from storage = "
1076  //<< pix << endl;
1077 
1078  /* add to the counters*/
1079  sum_trt += trt;
1080  sum_sct += sct;
1081  sum_pix += pix;
1082 
1083  sum_trt_sct += trt*sct;
1084  sum_trt_pix += trt*pix;
1085  sum_sct_pix += sct*pix;
1086 
1087  sum_trt_sq += trt*trt;
1088  sum_sct_sq += sct*sct;
1089  sum_pix_sq += pix*pix;
1090  }
1091 
1092  /* call calc_correlation with the current numbers */
1093  corr_trt_sct = calc_correlation(&sum_trt,&sum_sct,
1094  &sum_trt_sct, &sum_trt_sq, &sum_sct_sq,
1095  &n);
1096  corr_trt_pix = calc_correlation(&sum_trt,&sum_pix,
1097  &sum_trt_pix, &sum_trt_sq, &sum_pix_sq,
1098  &n);
1099  corr_sct_pix = calc_correlation(&sum_pix,&sum_sct,
1100  &sum_sct_pix, &sum_pix_sq, &sum_sct_sq,
1101  &n);
1102 
1103  /* debug...
1104  * msg1 << "corr_trt_sct " << corr_trt_sct << endl;
1105  * msg1 << "corr_trt_pix " << corr_trt_pix << endl;
1106  * msg1 << "corr_sct_pix " << corr_sct_pix << endl;
1107  */
1108 
1109  /*
1110  * fill the histograms
1111  */
1112  m_TRT_SCTvTRT_PIX_10evt->Fill(corr_trt_sct,
1113  corr_trt_pix);
1114  m_TRT_SCTvSCT_PIX_10evt->Fill(corr_trt_sct,
1115  corr_sct_pix);
1116  m_TRT_PIXvSCT_PIX_10evt->Fill(corr_trt_pix,
1117  corr_sct_pix);
1118  }
1119  }
1120 }
1121 
1122 
1123 // Preliminar code to count the number of strips using the SCT_ID information
1124 // John Idarraga <idarraga@cern.ch>, 2008.
1125 
1126 int InDetGlobalNoiseOccupancyMonTool::GetSCTCounts(int barrel_ec_sel, bool do_checks_flg){
1127 
1129  // SCT part
1130  // Barrel part
1131  // /// For an individual strip Barrel | NegEc, PosEc
1132  // Identifier strip_id ( int barrel_ec, 0 -2 2
1133  // int layer_disk, 0 -> 3 0 --> 8
1134  // int phi_module, 0 --> <56 0 --> <52
1135  // int eta_module, -6 --> -1, 1 --> 6 0 --> 2
1136  // int side, 0,1
1137  // int strip) const; 0 --> 767
1138 
1139  if(barrel_ec_sel != 0 && barrel_ec_sel != -2 && barrel_ec_sel != 2)
1140  {
1141  if ( msgLvl(MSG::WARNING) ) msg(MSG::WARNING) << "Wrong selection on SCTCounts !" << endmsg;
1142  return -1;
1143  }
1144 
1145  int barrel_ec = barrel_ec_sel;
1146  int nStripsCntr = 0;
1147 
1148  Identifier rdoId;
1149  int layer_disk_max = 0;
1150  if(barrel_ec_sel == 0)
1151  {
1152  layer_disk_max = 3;
1153  rdoId= m_sctID->strip_id(barrel_ec, 0, 0, -6, 0, 0, do_checks_flg); // start point for barrel
1154  }
1155  else if(barrel_ec_sel == -2 || barrel_ec_sel == 2)
1156  {
1157  layer_disk_max = 8;
1158  rdoId = m_sctID->strip_id(barrel_ec, 0, 0, 0, 0, 0, do_checks_flg); // start point for ec
1159  }
1160 
1161  for(int layerItr = 0 ; layerItr <= layer_disk_max ; layerItr++) // 3 layer_disk for Barrel
1162  {
1163  for(int phiItr = 0 ; phiItr <= m_sctID->phi_module_max(rdoId) ; phiItr++) // phi modules
1164  {
1165  for(int etaItr = m_sctID->eta_module_min(rdoId) ;
1166  etaItr <= m_sctID->eta_module_max(rdoId) ; etaItr++) // eta modules
1167  {
1168  for(int sideItr = 0 ; sideItr <= 1 ; sideItr++) // always two sides 0,1
1169  {
1170  int strip_max_m = m_sctID->strip_max(rdoId);
1171  for(int stripItr = 0 ; stripItr <= strip_max_m ; stripItr++) // strips
1172  {
1173  rdoId = m_sctID->strip_id(barrel_ec, layerItr, phiItr, etaItr, sideItr, stripItr, do_checks_flg);
1174  nStripsCntr++;
1175  }
1176  }
1177  }
1178  }
1179  }
1180 
1181  // Start point for the positive part. Good for barrel and ec.
1182  rdoId = m_sctID->strip_id(barrel_ec, 0, 0, 1, 0, 0, do_checks_flg);
1183  for(int layerItr = 0 ; layerItr <= layer_disk_max ; layerItr++) // 3 layer_disk for Barrel
1184  {
1185  for(int phiItr = 0 ; phiItr <= m_sctID->phi_module_max(rdoId) ; phiItr++) // phi modules
1186  {
1187  for(int etaItr = m_sctID->eta_module_min(rdoId) ;
1188  etaItr <= m_sctID->eta_module_max(rdoId) ; etaItr++) // From 1 to 6 for barrel and 0 to 2 for ec.
1189  {
1190  for(int sideItr = 0 ; sideItr <= 1 ; sideItr++) // always two sides 0,1
1191  {
1192  int strip_max_m = m_sctID->strip_max(rdoId);
1193  for(int stripItr = 0 ; stripItr <= strip_max_m ; stripItr++) // strips
1194  {
1195  rdoId = m_sctID->strip_id(barrel_ec, layerItr, phiItr, etaItr, sideItr, stripItr, do_checks_flg);
1196  //m_sctID->print(rdoId);
1197  nStripsCntr++;
1198  }
1199  }
1200  }
1201  }
1202  }
1203 
1204  if ( msgLvl(MSG::DEBUG) ) msg(MSG::DEBUG) << " SCT nStripsCntr: " << nStripsCntr << endmsg;
1205  return nStripsCntr;
1206 }
1207 
1208 int InDetGlobalNoiseOccupancyMonTool::GetPixelCounts(int barrel_ec_sel, bool do_checks_flg){
1209 
1211  // SCT part
1212  // Barrel part
1213  // /// For an individual strip Barrel | NegEc, PosEc
1214  // Identifier strip_id ( int barrel_ec, 0 -2 2
1215  // int layer_disk, 0 -> 3 0 --> 8
1216  // int phi_module, 0 --> <56 0 --> <52
1217  // int eta_module, -6 --> -1, 1 --> 6 0 --> 2
1218  // int side, 0,1
1219  // int strip) const; 0 --> 767
1220 
1221  if(barrel_ec_sel != 0 && barrel_ec_sel != -2 && barrel_ec_sel != 2)
1222  {
1223  if ( msgLvl(MSG::WARNING) ) msg(MSG::WARNING) << "Wrong selection on GetPixelCounts !" << endmsg;
1224  return -1;
1225  }
1226 
1227  int barrel_ec = barrel_ec_sel;
1228  int nPixelCntr = 0;
1229 
1230  Identifier rdoId;
1231  int layer_disk_max = 0;
1232  if(barrel_ec_sel == 0)
1233  {
1234  layer_disk_max = 2;
1235  rdoId= m_pixelID->pixel_id(barrel_ec, 0, 0, 0, 0, 0, do_checks_flg); // start point for barrel
1236  }
1237  else if(barrel_ec_sel == -2 || barrel_ec_sel == 2)
1238  {
1239  layer_disk_max = 2;
1240  rdoId = m_pixelID->pixel_id(barrel_ec, 0, 0, 0, 0, 0, do_checks_flg); // start point for ec
1241  }
1242 
1243  for(int layerItr = 0 ; layerItr <= layer_disk_max ; layerItr++) // 3 layer_disk for Barrel
1244  {
1245  int eta_module_min = m_pixelID->eta_module_min( m_pixelID->pixel_id(barrel_ec, layerItr, 0, 0, 0, 0, do_checks_flg) );
1246  int phi_module_max = m_pixelID->phi_module_max( m_pixelID->pixel_id(barrel_ec, layerItr, 0, 0, 0, 0, do_checks_flg) );
1247  int eta_module_max = m_pixelID->eta_module_max( m_pixelID->pixel_id(barrel_ec, layerItr, 0, 0, 0, 0, do_checks_flg) );
1248  for(int phiItr = 0 ; phiItr <= phi_module_max ; phiItr++) // phi modules
1249  {
1250  for(int etaItr = eta_module_min; etaItr <= eta_module_max; etaItr++) // eta modules
1251  {
1252  int pixel_phi_max = m_pixelID->phi_index_max( m_pixelID->wafer_id(barrel_ec, layerItr, phiItr, etaItr) );
1253  int pixel_eta_max = m_pixelID->eta_index_max( m_pixelID->wafer_id(barrel_ec, layerItr, phiItr, etaItr) );
1254  for(int pixel_phi = 0 ; pixel_phi <= pixel_phi_max ; pixel_phi++){
1255  for(int pixel_eta = 0 ; pixel_eta <= pixel_eta_max ; pixel_eta++){
1256  nPixelCntr++;
1257  }
1258  }
1259  }
1260  }
1261  }
1262 
1263  if ( msgLvl(MSG::DEBUG) ) msg(MSG::DEBUG) << " Pixel Cntr: " << nPixelCntr << endmsg;
1264 
1265  return nPixelCntr;
1266 }
TH2F_LW::Fill
virtual void Fill(const double &x, const double &y) override
Definition: TH2F_LW.cxx:329
InDetGlobalNoiseOccupancyMonTool::m_TRT_NO_BC_phi
TProfile_LW * m_TRT_NO_BC_phi
Definition: InDetGlobalNoiseOccupancyMonTool.h:201
beamspotman.r
def r
Definition: beamspotman.py:676
InDetGlobalNoiseOccupancyMonTool::m_SCT_NO
TH1F_LW * m_SCT_NO
SCT noise occupancy.
Definition: InDetGlobalNoiseOccupancyMonTool.h:183
InDetGlobalMotherMonTool::m_pixRdoContainer
const PixelRDO_Container * m_pixRdoContainer
Definition: InDetGlobalMotherMonTool.h:615
TH1F_LW.h
TH2F_LW.h
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
InDetGlobalNoiseOccupancyMonTool::m_SCT_NO_B
TH1F_LW * m_SCT_NO_B
Definition: InDetGlobalNoiseOccupancyMonTool.h:184
InDetGlobalNoiseOccupancyMonTool::noise::pix_no
float pix_no
Definition: InDetGlobalNoiseOccupancyMonTool.h:83
InDetGlobalMotherMonTool::m_trtID
const TRT_ID * m_trtID
the TRT ID helper
Definition: InDetGlobalMotherMonTool.h:598
InDetGlobalNoiseOccupancyMonTool::m_NO
std::vector< struct noise > m_NO
Definition: InDetGlobalNoiseOccupancyMonTool.h:240
InDetGlobalNoiseOccupancyMonTool::m_nPixels_ECA
float m_nPixels_ECA
Definition: InDetGlobalNoiseOccupancyMonTool.h:117
TH1F_LW::Fill
virtual void Fill(const double &x) override
Definition: TH1F_LW.cxx:246
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
InDetGlobalMotherMonTool::m_checkRate
int m_checkRate
Check rate used in histograms.
Definition: InDetGlobalMotherMonTool.h:549
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
TH1F_LW::create
static TH1F_LW * create(const char *name, const char *title, unsigned nbinsx, const double &xlow, const double &xup)
Definition: TH1F_LW.cxx:33
PixelID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: PixelID.h:619
InDetGlobalNoiseOccupancyMonTool::m_TRT_SCTvSCT_PIX_10evt
TH2F_LW * m_TRT_SCTvSCT_PIX_10evt
Definition: InDetGlobalNoiseOccupancyMonTool.h:157
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
InDetGlobalMotherMonTool::registerHist
StatusCode registerHist(MonGroup &theGroup, TH1 *h1)
Register single histogram.
Definition: InDetGlobalMotherMonTool.cxx:121
InDetGlobalMotherMonTool::TRT_DriftCircleCollection
InDet::TRT_DriftCircleCollection TRT_DriftCircleCollection
Definition: InDetGlobalMotherMonTool.h:610
InDetGlobalNoiseOccupancyMonTool::m_doData
bool m_doData
Definition: InDetGlobalNoiseOccupancyMonTool.h:133
InDetGlobalNoiseOccupancyMonTool::m_TRT_NO
TH1F_LW * m_TRT_NO
TRT noise occupancy.
Definition: InDetGlobalNoiseOccupancyMonTool.h:213
InDetGlobalMotherMonTool::m_sctRdoContainer
const SCT_RDO_Container * m_sctRdoContainer
Definition: InDetGlobalMotherMonTool.h:617
InDetGlobalNoiseOccupancyMonTool::m_nPixels_B
float m_nPixels_B
Definition: InDetGlobalNoiseOccupancyMonTool.h:116
InDetGlobalNoiseOccupancyMonTool::m_PIX_TRT_NO
TH2F_LW * m_PIX_TRT_NO
PIX noise occupancy vs TRT noise occupancy.
Definition: InDetGlobalNoiseOccupancyMonTool.h:144
InDetGlobalMotherMonTool::m_sctID
const SCT_ID * m_sctID
the SCT ID helper
Definition: InDetGlobalMotherMonTool.h:601
skel.it
it
Definition: skel.GENtoEVGEN.py:423
InDetGlobalNoiseOccupancyMonTool::m_PIX_NO_B
TH1F_LW * m_PIX_NO_B
Definition: InDetGlobalNoiseOccupancyMonTool.h:167
SCT_BARREL_SEL
#define SCT_BARREL_SEL
Definition: InDetGlobalNoiseOccupancyMonTool.cxx:45
Trk::PrepRawData::rdoList
const std::vector< Identifier > & rdoList() const
return the List of rdo identifiers (pointers)
InDetGlobalNoiseOccupancyMonTool::m_SCT_TRT_NO
TH2F_LW * m_SCT_TRT_NO
TRT noise occupancy vs SCT noise occupancy.
Definition: InDetGlobalNoiseOccupancyMonTool.h:138
AthCommonMsg< AlgTool >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
Trk::TrackStateOnSurface::measurementOnTrack
const MeasurementBase * measurementOnTrack() const
returns MeasurementBase const overload
TProfile_LW.h
InDet::TRT_DriftCircleOnTrack::highLevel
bool highLevel() const
returns true if the high level threshold was passed
Definition: TRT_DriftCircleOnTrack.h:234
SiClusterOnTrack.h
InDetGlobalNoiseOccupancyMonTool::noise::trt_no
float trt_no
Definition: InDetGlobalNoiseOccupancyMonTool.h:81
SCT_RDORawData
Definition: SCT_RDORawData.h:24
SCT_ID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: SCT_ID.h:728
InDetGlobalNoiseOccupancyMonTool::m_PIX_NO
TH1F_LW * m_PIX_NO
PIX noise occupancy.
Definition: InDetGlobalNoiseOccupancyMonTool.h:166
SCT_ID::phi_module_max
int phi_module_max(const Identifier &id) const
Definition: SCT_ID.cxx:203
InDetRawDataContainer.h
InDetGlobalNoiseOccupancyMonTool::m_nPixels_ECC
float m_nPixels_ECC
Definition: InDetGlobalNoiseOccupancyMonTool.h:118
InDetGlobalNoiseOccupancyMonTool::histIdx
int histIdx(const std::vector< int > &aList, const Identifier &rdoId) const
Get triplet id @paraFGem list.
Definition: InDetGlobalNoiseOccupancyMonTool.cxx:941
SCT_POSEC_SEL
#define SCT_POSEC_SEL
Definition: InDetGlobalNoiseOccupancyMonTool.cxx:46
InDet::TRT_DriftCircleOnTrack
Definition: TRT_DriftCircleOnTrack.h:53
InDetGlobalMotherMonTool::vecContains
int vecContains(const std::vector< int > &ivector, const int &totest) const
Check if vector contains value.
Definition: InDetGlobalMotherMonTool.h:419
InDetGlobalNoiseOccupancyMonTool::m_SCT_NO_nseg
TH2F_LW * m_SCT_NO_nseg
SCT noise occupancy vs number of SCT segments".
Definition: InDetGlobalNoiseOccupancyMonTool.h:189
x
#define x
InDetGlobalNoiseOccupancyMonTool::m_trtMax
float m_trtMax
TRT histogram limit
Definition: InDetGlobalNoiseOccupancyMonTool.h:129
PixelID::eta_module_max
int eta_module_max(const Identifier &id) const
Definition: PixelID.cxx:79
InDet::TRT_DriftCircle
Definition: TRT_DriftCircle.h:32
PixelID::wafer_id
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module) const
For a single crystal.
Definition: PixelID.h:364
InDetGlobalNoiseOccupancyMonTool::m_sct_nBins
int m_sct_nBins
Definition: InDetGlobalNoiseOccupancyMonTool.h:126
TProfile_LW::Reset
virtual void Reset() override
Definition: TProfile_LW.cxx:182
LWHist::GetXaxis
LWHistAxis * GetXaxis()
Definition: LWHist.cxx:309
SCT_TB03_RawData.h
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
ManagedMonitorToolBase::MonGroup
A container of information describing a monitoring object.
Definition: ManagedMonitorToolBase.h:138
InDetGlobalMotherMonTool
This tool derives from InDetGlobalMonitorToolBase The Mother tool interfaces to all subtools.
Definition: InDetGlobalMotherMonTool.h:75
InDetGlobalMotherMonTool::m_evt
int m_evt
Definition: InDetGlobalMotherMonTool.h:576
SCT3_RawData.h
InDetGlobalNoiseOccupancyMonTool::m_SCT_NO_ECA
TH1F_LW * m_SCT_NO_ECA
Definition: InDetGlobalNoiseOccupancyMonTool.h:185
PixelID::phi_index_max
int phi_index_max(const Identifier &id) const
Definition: PixelID.cxx:143
LWHist::LWHistAxis::SetTitle
void SetTitle(const char *)
Definition: LWHist.cxx:359
TProfile_LW::create
static TProfile_LW * create(const char *name, const char *title, unsigned nbinsx, const double &xlow, const double &xup, const char *option=" ")
Definition: TProfile_LW.cxx:32
lumiFormat.i
int i
Definition: lumiFormat.py:92
InDetGlobalNoiseOccupancyMonTool::m_nStraws_ECA
float m_nStraws_ECA
Definition: InDetGlobalNoiseOccupancyMonTool.h:107
SCT3_RawData
Definition: SCT3_RawData.h:24
InDetGlobalNoiseOccupancyMonTool::m_TRT_NO_evt
TProfile_LW * m_TRT_NO_evt
TRT noise occupancy vs event number.
Definition: InDetGlobalNoiseOccupancyMonTool.h:197
beamspotman.n
n
Definition: beamspotman.py:731
PixelID::eta_index_max
int eta_index_max(const Identifier &id) const
Definition: PixelID.cxx:162
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
InDetGlobalNoiseOccupancyMonTool::m_TRT_PIXvSCT_PIX_10evt
TH2F_LW * m_TRT_PIXvSCT_PIX_10evt
Definition: InDetGlobalNoiseOccupancyMonTool.h:158
InDetGlobalNoiseOccupancyMonTool::m_SCT_PIX_NO
TH2F_LW * m_SCT_PIX_NO
PIX noise occupancy vs SCT noise occupancy.
Definition: InDetGlobalNoiseOccupancyMonTool.h:141
InDetGlobalNoiseOccupancyMonTool::noise::sct_no
float sct_no
Definition: InDetGlobalNoiseOccupancyMonTool.h:82
InDetRawDataCollection
Definition: InDetRawDataCollection.h:31
InDetGlobalNoiseOccupancyMonTool::m_SCT_NO_ntrk
TH2F_LW * m_SCT_NO_ntrk
SCT noise occupancy vs number of combined tracks.
Definition: InDetGlobalNoiseOccupancyMonTool.h:192
test_pyathena.parent
parent
Definition: test_pyathena.py:15
InDetGlobalNoiseOccupancyMonTool::m_pixelMax
float m_pixelMax
pixel histogram max limit
Definition: InDetGlobalNoiseOccupancyMonTool.h:121
InDetGlobalNoiseOccupancyMonTool::m_PIX_NO_ntrk
TH2F_LW * m_PIX_NO_ntrk
PIX noise occupancy vs number of PIX segments.
Definition: InDetGlobalNoiseOccupancyMonTool.h:175
InDetGlobalNoiseOccupancyMonTool::m_dcidOnTrack
std::list< Identifier > m_dcidOnTrack
list of trt circle identifiers
Definition: InDetGlobalNoiseOccupancyMonTool.h:230
IdentifiableContainerMT::end
const_iterator end() const
return const_iterator for end of container
Definition: IdentifiableContainerMT.h:242
SCT3_RawData::getTimeBin
int getTimeBin() const
Definition: SCT3_RawData.h:92
run
Definition: run.py:1
IdentifiableContainerMT::const_iterator
Definition: IdentifiableContainerMT.h:82
IdentifiableContainerMT::begin
const_iterator begin() const
return const_iterator for first entry
Definition: IdentifiableContainerMT.h:236
InDetGlobalNoiseOccupancyMonTool::m_SCT_NO_evt
TProfile_LW * m_SCT_NO_evt
SCT noise occupancy vs event number.
Definition: InDetGlobalNoiseOccupancyMonTool.h:180
TRT_DriftCircleOnTrack.h
TRT_ID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: TRT_ID.h:866
InDetGlobalNoiseOccupancyMonTool::m_start
bool m_start
Definition: InDetGlobalNoiseOccupancyMonTool.h:132
InDetGlobalNoiseOccupancyMonTool::m_PIX_NO_ECA
TH1F_LW * m_PIX_NO_ECA
Definition: InDetGlobalNoiseOccupancyMonTool.h:168
TRT_ID::straw_layer
int straw_layer(const Identifier &id) const
Definition: TRT_ID.h:893
DataVector< const Trk::TrackStateOnSurface >
TRT_ID::layer_or_wheel
int layer_or_wheel(const Identifier &id) const
Definition: TRT_ID.h:884
InDetGlobalNoiseOccupancyMonTool.h
InDet::SiCluster::detectorElement
virtual const InDetDD::SiDetectorElement * detectorElement() const override final
return the detector element corresponding to this PRD The pointer will be zero if the det el is not d...
InDetGlobalNoiseOccupancyMonTool::m_nStrips_ECA
float m_nStrips_ECA
Definition: InDetGlobalNoiseOccupancyMonTool.h:112
TProfile_LW::Fill
void Fill(const double &x, const double &y)
Definition: TProfile_LW.cxx:223
InDetGlobalNoiseOccupancyMonTool::m_sctMax
float m_sctMax
SCT histogram limit.
Definition: InDetGlobalNoiseOccupancyMonTool.h:125
InDetGlobalNoiseOccupancyMonTool::m_nStraws
float m_nStraws
Geometric description (to be replaced with database entries)
Definition: InDetGlobalNoiseOccupancyMonTool.h:105
LWHist::LWHistAxis
Definition: LWHist.h:109
InDetGlobalNoiseOccupancyMonTool::m_TRT_NO_ntrk
TH2F_LW * m_TRT_NO_ntrk
TRT noise occupancy vs number of combined tracks.
Definition: InDetGlobalNoiseOccupancyMonTool.h:222
PixelID::phi_module_max
int phi_module_max(const Identifier &id) const
Definition: PixelID.cxx:123
trigbs_pickEvents.num
num
Definition: trigbs_pickEvents.py:76
SCT_ID::eta_module_min
int eta_module_min(const Identifier &id) const
Definition: SCT_ID.cxx:156
Trk::PrepRawData::identify
Identifier identify() const
return the identifier
InDetGlobalMotherMonTool::m_pixelID
const PixelID * m_pixelID
the Pixel ID helper
Definition: InDetGlobalMotherMonTool.h:604
InDetGlobalNoiseOccupancyMonTool::GetSCTCounts
int GetSCTCounts(int barrel_ec_sel, bool do_checks_flg)
Definition: InDetGlobalNoiseOccupancyMonTool.cxx:1126
InDetGlobalNoiseOccupancyMonTool::GetPixelCounts
int GetPixelCounts(int barrel_ec_sel, bool do_checks_flg)
Definition: InDetGlobalNoiseOccupancyMonTool.cxx:1208
InDetGlobalNoiseOccupancyMonTool::m_PIX_NO_ECC
TH1F_LW * m_PIX_NO_ECC
Definition: InDetGlobalNoiseOccupancyMonTool.h:169
InDetGlobalNoiseOccupancyMonTool::m_TRT_NO_ECC_phi
TProfile_LW * m_TRT_NO_ECC_phi
TRT noise occupancy vs phi sector (ECC)
Definition: InDetGlobalNoiseOccupancyMonTool.h:207
Trk::TrackStateOnSurface
represents the track state (measurement, material, fit parameters and quality) at a surface.
Definition: TrackStateOnSurface.h:71
InDetGlobalNoiseOccupancyMonTool::m_PIX_NO_evt
TProfile_LW * m_PIX_NO_evt
PIX noise occupancy vs event number.
Definition: InDetGlobalNoiseOccupancyMonTool.h:163
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
TH2F_LW::create
static TH2F_LW * create(const char *name, const char *title, unsigned nbinsx, const double &xmin, const double &xmax, unsigned nbinsy, const double &ymin, const double &ymax)
Definition: TH2F_LW.cxx:33
InDetGlobalNoiseOccupancyMonTool::m_nStrips_ECC
float m_nStrips_ECC
Definition: InDetGlobalNoiseOccupancyMonTool.h:113
SiCluster.h
InDetGlobalNoiseOccupancyMonTool::InDetGlobalNoiseOccupancyMonTool
InDetGlobalNoiseOccupancyMonTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
Definition: InDetGlobalNoiseOccupancyMonTool.cxx:84
python.changerun.m_start
m_start
Definition: changerun.py:84
TRT_ID::phi_module
int phi_module(const Identifier &id) const
Definition: TRT_ID.h:875
Trk::RIO_OnTrack::prepRawData
virtual const Trk::PrepRawData * prepRawData() const =0
returns the PrepRawData (also known as RIO) object to which this RIO_OnTrack is associated.
InDetGlobalNoiseOccupancyMonTool::m_trt_nBins
int m_trt_nBins
Definition: InDetGlobalNoiseOccupancyMonTool.h:130
InDetGlobalNoiseOccupancyMonTool::m_nStraws_ECC
float m_nStraws_ECC
Definition: InDetGlobalNoiseOccupancyMonTool.h:108
InDetGlobalNoiseOccupancyMonTool::m_SCT_NO_ECC
TH1F_LW * m_SCT_NO_ECC
Definition: InDetGlobalNoiseOccupancyMonTool.h:186
InDetGlobalNoiseOccupancyMonTool::correlation_coeffs
void correlation_coeffs(std::vector< struct noise > &no)
Definition: InDetGlobalNoiseOccupancyMonTool.cxx:996
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
InDetGlobalNoiseOccupancyMonTool::m_pixel_nBins
int m_pixel_nBins
Definition: InDetGlobalNoiseOccupancyMonTool.h:122
PixelID::eta_module_min
int eta_module_min(const Identifier &id) const
Definition: PixelID.cxx:96
Trk::Pattern
@ Pattern
Definition: ParametersCommon.h:29
InDetGlobalNoiseOccupancyMonTool::fillHistograms
virtual StatusCode fillHistograms()
An inheriting class should either override this function or fillHists().
Definition: InDetGlobalNoiseOccupancyMonTool.cxx:299
TH2F_LW::Reset
virtual void Reset() override
Definition: TH2F_LW.cxx:250
InDet::TRT_DriftCircle::highLevel
bool highLevel() const
returns true if the high level threshold was passed
TH1F_LW::Reset
virtual void Reset() override
Definition: TH1F_LW.cxx:183
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
PixelID::pixel_id
Identifier pixel_id(int barrel_ec, int layer_disk, int phi_module, int eta_module, int phi_index, int eta_index) const
For an individual pixel.
Definition: PixelID.h:432
DEBUG
#define DEBUG
Definition: page_access.h:11
SCT_ID::strip_max
int strip_max(const Identifier &id) const
Definition: SCT_ID.cxx:186
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
InDetGlobalNoiseOccupancyMonTool::m_nPixels
float m_nPixels
Definition: InDetGlobalNoiseOccupancyMonTool.h:115
Trk::RIO_OnTrack::identify
virtual Identifier identify() const final
return the identifier -extends MeasurementBase
Definition: RIO_OnTrack.h:155
InDetGlobalNoiseOccupancyMonTool::m_TRT_HL_NO_evt
TProfile_LW * m_TRT_HL_NO_evt
TRT HL noise occupancy vs event number.
Definition: InDetGlobalNoiseOccupancyMonTool.h:210
InDetGlobalNoiseOccupancyMonTool::m_TRT_NO_BA_phi
TProfile_LW * m_TRT_NO_BA_phi
TRT noise occupancy vs phi sector (barrel)
Definition: InDetGlobalNoiseOccupancyMonTool.h:200
InDetGlobalNoiseOccupancyMonTool::m_tracks
const TrackCollection * m_tracks
Definition: InDetGlobalNoiseOccupancyMonTool.h:102
PixelRDORawData
Definition: PixelRDORawData.h:23
InDetGlobalNoiseOccupancyMonTool::noise
Definition: InDetGlobalNoiseOccupancyMonTool.h:80
InDetDD::SiDetectorElement::isSCT
bool isSCT() const
merge.status
status
Definition: merge.py:17
InDetRawData::identify
virtual Identifier identify() const override final
Definition: InDetRawData.h:41
SCT_NEGEC_SEL
#define SCT_NEGEC_SEL
Definition: InDetGlobalNoiseOccupancyMonTool.cxx:47
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
InDetGlobalNoiseOccupancyMonTool::m_TRT_SCTvTRT_PIX_10evt
TH2F_LW * m_TRT_SCTvTRT_PIX_10evt
PIX noise occupancy vs event number
Definition: InDetGlobalNoiseOccupancyMonTool.h:156
InDetGlobalNoiseOccupancyMonTool::m_TRT_NO_nseg
TH2F_LW * m_TRT_NO_nseg
TRT noise occupancy vs number of TRT segments.
Definition: InDetGlobalNoiseOccupancyMonTool.h:219
InDetGlobalNoiseOccupancyMonTool::m_nStraws_B
float m_nStraws_B
Definition: InDetGlobalNoiseOccupancyMonTool.h:106
InDetGlobalNoiseOccupancyMonTool::isOnTrack
bool isOnTrack(const Identifier &DCId) const
Check if Drift Circle is on Track.
Definition: InDetGlobalNoiseOccupancyMonTool.cxx:934
InDetRawDataCLASS_DEF.h
InDetGlobalNoiseOccupancyMonTool::m_TRT_HL_NO
TH1F_LW * m_TRT_HL_NO
TRT HL noise occupancy.
Definition: InDetGlobalNoiseOccupancyMonTool.h:216
InDetGlobalNoiseOccupancyMonTool::m_PIX_NO_nseg
TH2F_LW * m_PIX_NO_nseg
PIX noise occupancy vs number of PIX segments.
Definition: InDetGlobalNoiseOccupancyMonTool.h:172
InDetGlobalMotherMonTool::m_driftCircleContainer
const TRT_DriftCircleContainer * m_driftCircleContainer
the TRT drift circle container
Definition: InDetGlobalMotherMonTool.h:620
pix
Definition: PixelMapping.cxx:16
InDetGlobalNoiseOccupancyMonTool::m_nStrips
float m_nStrips
Definition: InDetGlobalNoiseOccupancyMonTool.h:110
InDetGlobalNoiseOccupancyMonTool::m_nStrips_B
float m_nStrips_B
Definition: InDetGlobalNoiseOccupancyMonTool.h:111
InDetGlobalMotherMonTool::m_combined_tracks
const TrackCollection * m_combined_tracks
Definition: InDetGlobalMotherMonTool.h:590
InDetGlobalNoiseOccupancyMonTool::bookHistogramsRecurrent
virtual StatusCode bookHistogramsRecurrent()
An inheriting class should either override this function, bookHists() or bookHistograms().
Definition: InDetGlobalNoiseOccupancyMonTool.cxx:153
LWHist::GetYaxis
LWHistAxis * GetYaxis()
Definition: LWHist.cxx:319
DataVector< RawDataT >::size
size_type size() const noexcept
Returns the number of elements in the collection.
readCCLHist.float
float
Definition: readCCLHist.py:83
InDet::SiCluster
Definition: InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/SiCluster.h:40
InDetGlobalNoiseOccupancyMonTool::calc_correlation
static float calc_correlation(const float *sum_x, const float *sum_y, const float *sum_xy, const float *sum_x_sq, const float *sum_y_sq, const int *points)
Definition: InDetGlobalNoiseOccupancyMonTool.cxx:970
InDetGlobalNoiseOccupancyMonTool::m_TRT_NO_ECA_phi
TProfile_LW * m_TRT_NO_ECA_phi
TRT noise occupancy vs phi sector (ECA)
Definition: InDetGlobalNoiseOccupancyMonTool.h:204
ReadFromCoolCompare.no
no
Definition: ReadFromCoolCompare.py:232
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
InDet::SiClusterOnTrack
Definition: SiClusterOnTrack.h:39
ManagedMonitorToolBase::newRunFlag
bool newRunFlag() const
Definition: ManagedMonitorToolBase.h:854
SCT_ID::strip_id
Identifier strip_id(int barrel_ec, int layer_disk, int phi_module, int eta_module, int side, int strip) const
For an individual strip.
Definition: SCT_ID.h:535