ATLAS Offline Software
HitMapBuilder.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef PIXELCONDITIONSALGS_HITMAPBUILDER_H
6 #define PIXELCONDITIONSALGS_HITMAPBUILDER_H
7 
9 #include "GaudiKernel/ServiceHandle.h"
13 #include "GaudiKernel/ITHistSvc.h"
14 
15 #include <string>
16 #include <vector>
17 #include <utility> // pair
18 
19 // EDM
21 
22 #include "TH1.h"
23 #include "TH2.h"
24 
25 
26 class PixelID;
27 
28 
29 namespace InDetDD{
30  class PixelDetectorManager;
31 }
32 
46 class HitMapBuilder: public AthAlgorithm {
47 
48  public:
49 
50  //Delegate to base-class constructor
52 
54 
58 
59  private:
60  std::string getDCSIDFromPosition(int bec, int layer, int modPhi, int modEta);
61  std::vector<std::string> &splitter(const std::string &str, char delim, std::vector<std::string> &elems);
62  std::vector<std::string> splitter(const std::string &str, char delim);
64  const std::string histoSuffix(const int bec, const int layer);
65 
66  private:
67  ServiceHandle <ITHistSvc> m_tHistSvc{this, "THistSvc", "THistSvc/THistSvc"};
68  SG::ReadHandleKey<PixelRDO_Container> m_pixelRDOKey{this,"PixelRDOKey","PixelRDOs","StoreGate Key of Pixel RDOs"};
69 
71  const PixelID *m_pixelID=nullptr;
72 
73  // vector of modulename and vector(barrel/endcap, layer, phi, eta)
74  std::vector< std::pair< std::string, std::vector<int> > > m_pixelMapping;
75 
76  double m_nEvents=0;
77  std::vector<double> m_nEventsLB; // Events per LB
78  std::vector<double> m_nEventsLBCategory; // Events per certain LB for LB category
79 
80  std::unique_ptr<TH1F> m_nEventsHist;
81  std::unique_ptr<TH1F> m_nEventsLBHist;
82  std::vector<std::unique_ptr<TH2F>> m_occupancyMaps;
83  std::vector<std::unique_ptr<TH2F>> m_occupancyMapsIBL2dLB;
84  std::vector<std::unique_ptr<TH1F>> m_TOTdistributions;
85  std::vector<std::unique_ptr<TH1F>> m_TOTdistributionsIBL2dLB;
86  std::vector<std::unique_ptr<TH1F>> m_occupancyLB;
87 
88  Gaudi::Property<int> m_hist_lbMax{this,"nLBmax", 3001, "Maximum number of LB (for histograms binning)"}; // max number of LB
89  Gaudi::Property<int> m_evt_lbMin{this,"LBMin",0,"First lumi block to consider"}; // lower limit for LB to be taken into account
90  Gaudi::Property<int> m_evt_lbMax{this,"LBMax",-1,"Last lumi block to consider"}; // upper limit for LB to be taken into account
91 
92  int m_LBrange_max = -9999;
93 
94  const unsigned int m_nIblFes = 14 * (4 + 6*2) * 2; // 14 stave * (4 3Ds + 6 2Ds * 2 Fes) * 2 sides = 448
95  const int m_perLB_min=0, m_perLB_max=3000, m_perLB_step=100; // For plots per certain LBs
96  const int m_perLB_n = (m_perLB_max-m_perLB_min)/m_perLB_step; // For plots per certain LBs
97 
98  const int m_fei4bPixels = 26880; // 80 * 336
99  const int m_pixModPixels = 46080; // 144 * 320;
100 };
101 
102 
103 #endif // PIXELCONDITIONSALGS_HITMAPBUILDER_H
HitMapBuilder::splitter
std::vector< std::string > & splitter(const std::string &str, char delim, std::vector< std::string > &elems)
Definition: HitMapBuilder.cxx:59
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
HitMapBuilder::m_nEventsLBCategory
std::vector< double > m_nEventsLBCategory
Definition: HitMapBuilder.h:78
HitMapBuilder::m_nEventsLBHist
std::unique_ptr< TH1F > m_nEventsLBHist
Definition: HitMapBuilder.h:81
HitMapBuilder::m_pixelID
const PixelID * m_pixelID
Definition: HitMapBuilder.h:71
HitMapBuilder::m_tHistSvc
ServiceHandle< ITHistSvc > m_tHistSvc
Definition: HitMapBuilder.h:67
HitMapBuilder::m_evt_lbMin
Gaudi::Property< int > m_evt_lbMin
Definition: HitMapBuilder.h:89
HitMapBuilder::m_perLB_min
const int m_perLB_min
Definition: HitMapBuilder.h:95
HitMapBuilder::histoSuffix
const std::string histoSuffix(const int bec, const int layer)
Definition: HitMapBuilder.cxx:43
ParticleGun_SamplingFraction.bec
int bec
Definition: ParticleGun_SamplingFraction.py:89
HitMapBuilder::m_TOTdistributionsIBL2dLB
std::vector< std::unique_ptr< TH1F > > m_TOTdistributionsIBL2dLB
Definition: HitMapBuilder.h:85
HitMapBuilder::registerHistograms
StatusCode registerHistograms()
Definition: HitMapBuilder.cxx:121
HitMapBuilder::m_pixModPixels
const int m_pixModPixels
Definition: HitMapBuilder.h:99
HitMapBuilder
HitMapBuilder.h.
Definition: HitMapBuilder.h:46
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
AthAlgorithm.h
HitMapBuilder::m_occupancyMapsIBL2dLB
std::vector< std::unique_ptr< TH2F > > m_occupancyMapsIBL2dLB
Definition: HitMapBuilder.h:83
HitMapBuilder::m_occupancyMaps
std::vector< std::unique_ptr< TH2F > > m_occupancyMaps
Definition: HitMapBuilder.h:82
HitMapBuilder::m_pixelMapping
std::vector< std::pair< std::string, std::vector< int > > > m_pixelMapping
Definition: HitMapBuilder.h:74
HitMapBuilder::m_TOTdistributions
std::vector< std::unique_ptr< TH1F > > m_TOTdistributions
Definition: HitMapBuilder.h:84
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
HitMapBuilder::m_perLB_step
const int m_perLB_step
Definition: HitMapBuilder.h:95
HitMapBuilder::m_nIblFes
const unsigned int m_nIblFes
Definition: HitMapBuilder.h:94
HitMapBuilder::initialize
StatusCode initialize()
Definition: HitMapBuilder.cxx:79
HitMapBuilder::execute
StatusCode execute()
Definition: HitMapBuilder.cxx:334
HitMapBuilder::m_nEvents
double m_nEvents
Definition: HitMapBuilder.h:76
HitMapBuilder::m_pixelRDOKey
SG::ReadHandleKey< PixelRDO_Container > m_pixelRDOKey
Definition: HitMapBuilder.h:68
IPixelReadoutManager.h
AthAlgorithm
Definition: AthAlgorithm.h:47
ReadCondHandleKey.h
HitMapBuilder::m_nEventsLB
std::vector< double > m_nEventsLB
Definition: HitMapBuilder.h:77
HitMapBuilder::m_LBrange_max
int m_LBrange_max
Definition: HitMapBuilder.h:92
InDetDD::PixelDetectorManager
Definition: PixelDetectorManager.h:47
HitMapBuilder::m_nEventsHist
std::unique_ptr< TH1F > m_nEventsHist
Definition: HitMapBuilder.h:80
PixelRDO_Container.h
HitMapBuilder::m_perLB_n
const int m_perLB_n
Definition: HitMapBuilder.h:96
HitMapBuilder::m_hist_lbMax
Gaudi::Property< int > m_hist_lbMax
Definition: HitMapBuilder.h:88
HitMapBuilder::finalize
StatusCode finalize()
Definition: HitMapBuilder.cxx:425
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
HitMapBuilder::m_occupancyLB
std::vector< std::unique_ptr< TH1F > > m_occupancyLB
Definition: HitMapBuilder.h:86
HitMapBuilder::~HitMapBuilder
~HitMapBuilder()
Definition: HitMapBuilder.cxx:24
HitMapBuilder::m_fei4bPixels
const int m_fei4bPixels
Definition: HitMapBuilder.h:98
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
str
Definition: BTagTrackIpAccessor.cxx:11
PixelID
Definition: PixelID.h:67
HitMapBuilder::m_perLB_max
const int m_perLB_max
Definition: HitMapBuilder.h:95
HitMapBuilder::getDCSIDFromPosition
std::string getDCSIDFromPosition(int bec, int layer, int modPhi, int modEta)
Definition: HitMapBuilder.cxx:27
HitMapBuilder::m_evt_lbMax
Gaudi::Property< int > m_evt_lbMax
Definition: HitMapBuilder.h:90
HitMapBuilder::m_pixman
const InDetDD::PixelDetectorManager * m_pixman
Definition: HitMapBuilder.h:70
ServiceHandle< ITHistSvc >