CMS 3D CMS Logo

SiPixelDigiSource.h
Go to the documentation of this file.
1 #ifndef SiPixelMonitorDigi_SiPixelDigiSource_h
2 #define SiPixelMonitorDigi_SiPixelDigiSource_h
3 // -*- C++ -*-
4 //
5 // Package: SiPixelMonitorDigi
6 // Class : SiPixelDigiSource
7 //
16 //
17 // Original Author: Vincenzo Chiochia
18 // Created:
19 //
20 
21 #include <memory>
22 
23 // user include files
30 #include <cstdint>
31 
32 class SiPixelDigiSource : public DQMOneEDAnalyzer<edm::LuminosityBlockCache<bool>> {
33 public:
34  explicit SiPixelDigiSource(const edm::ParameterSet& conf);
35  ~SiPixelDigiSource() override;
36 
38 
39  void analyze(const edm::Event&, const edm::EventSetup&) override;
40  void dqmBeginRun(const edm::Run&, edm::EventSetup const&) override;
41  void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
42  std::shared_ptr<bool> globalBeginLuminosityBlock(const edm::LuminosityBlock& lumi,
43  const edm::EventSetup& iSetup) const override;
45 
46  virtual void buildStructure(edm::EventSetup const&);
47  virtual void bookMEs(DQMStore::IBooker&, const edm::EventSetup& iSetup);
48 
49  virtual void CountZeroROCsInSubstructure(bool, bool&, SiPixelDigiModule*);
50 
52 
53 private:
56  bool saveFile;
57  bool isPIB;
58  bool slowDown;
59  bool modOn;
60  bool perLSsaving; //to avoid nanoDQMIO crashing, driven by DQMServices/Core/python/DQMStore_cfi.py
61  bool twoDimOn;
64  bool hiRes;
65  bool reducedSet;
66  //barrel:
67  bool ladOn, layOn, phiOn;
68  //forward:
70  std::map<uint32_t, SiPixelDigiModule*> thePixelStructure;
71 
72  int nDP1P1M1;
73  int nDP1P1M2;
74  int nDP1P1M3;
75  int nDP1P1M4;
76  int nDP1P2M1;
77  int nDP1P2M2;
78  int nDP1P2M3;
79  int nDP2P1M1;
80  int nDP2P1M2;
81  int nDP2P1M3;
82  int nDP2P1M4;
83  int nDP2P2M1;
84  int nDP2P2M2;
85  int nDP2P2M3;
86  int nDP3P1M1;
87  int nDP3P2M1;
88  int nDM1P1M1;
89  int nDM1P1M2;
90  int nDM1P1M3;
91  int nDM1P1M4;
92  int nDM1P2M1;
93  int nDM1P2M2;
94  int nDM1P2M3;
95  int nDM2P1M1;
96  int nDM2P1M2;
97  int nDM2P1M3;
98  int nDM2P1M4;
99  int nDM2P2M1;
100  int nDM2P2M2;
101  int nDM2P2M3;
102  int nDM3P1M1;
103  int nDM3P2M1;
104  int nL1M1;
105  int nL1M2;
106  int nL1M3;
107  int nL1M4;
108  int nL2M1;
109  int nL2M2;
110  int nL2M3;
111  int nL2M4;
112  int nL3M1;
113  int nL3M2;
114  int nL3M3;
115  int nL3M4;
116  int nL4M1;
117  int nL4M2;
118  int nL4M3;
119  int nL4M4;
137  std::vector<MonitorElement*> meNDigisCHANBarrelLs_;
175  std::vector<MonitorElement*> meNDigisCHANEndcapDps_;
176  std::vector<MonitorElement*> meNDigisCHANEndcapDms_;
177 
178  int NzeroROCs[2];
179  int NloEffROCs[2];
180 
182  //the following long list of bools is to patch the ZeroOccupancy ROC filling in a way that a substructure (like BPix/BmO/Layer1) is counted only once as it should be (in the past for each module in the substructure the same number of ZeroOccupancy rocs was added)
183 
187 
191 
195 
199 
202 
205 
208 
211 
213  bool isUpgrade;
214  bool firstRun;
215 
217  unsigned int I_detId[1856];
218  int I_fedId[1856];
219  int I_linkId1[1856];
220  int I_linkId2[1856];
221  int nDigisPerFed[40];
222  int nDigisPerChan[1152];
224  int numberOfDigis[336];
225  int nDigisA;
226  int nDigisB;
227 
228  //define Token(-s)
235 };
236 
237 #endif
MonitorElement * meNDigisCHANBarrelCh19_
MonitorElement * meNDigisCHANBarrelCh35_
MonitorElement * meNDigisCHANBarrelCh2_
MonitorElement * meNDigisCHANBarrelCh30_
MonitorElement * meNDigisCHANBarrelCh31_
MonitorElement * meNDigisCHANBarrelCh8_
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > trackerTopoTokenBeginRun_
MonitorElement * meNDigisCHANBarrelCh36_
MonitorElement * loOccROCsEndcap
MonitorElement * meNDigisCHANBarrelCh17_
MonitorElement * meNDigisCHANBarrelCh25_
edm::DetSet< PixelDigi >::const_iterator DigiIterator
MonitorElement * meNDigisCHANBarrelCh6_
MonitorElement * meNDigisCOMBBarrel_
std::string topFolderName_
MonitorElement * meNDigisCOMBEndcap_
MonitorElement * meNDigisCHANBarrelCh14_
MonitorElement * meNDigisCHANBarrelCh12_
MonitorElement * meNDigisCHANBarrelCh29_
MonitorElement * avgBarrelFedOccvsLumi
edm::EDGetTokenT< edm::DetSetVector< PixelDigi > > srcToken_
void globalEndLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &) override
MonitorElement * meNDigisCHANBarrelCh27_
virtual void bookMEs(DQMStore::IBooker &, const edm::EventSetup &iSetup)
SiPixelDigiSource(const edm::ParameterSet &conf)
std::shared_ptr< bool > globalBeginLuminosityBlock(const edm::LuminosityBlock &lumi, const edm::EventSetup &iSetup) const override
MonitorElement * meNDigisCHANBarrelCh3_
MonitorElement * meNDigisCHANBarrelCh9_
MonitorElement * meNDigisCHANBarrelCh4_
MonitorElement * meNDigisCHANBarrelCh34_
MonitorElement * meNDigisCHANBarrelCh26_
MonitorElement * noOccROCsBarrel
void analyze(const edm::Event &, const edm::EventSetup &) override
MonitorElement * meNDigisCHANEndcap_
void dqmBeginRun(const edm::Run &, edm::EventSetup const &) override
MonitorElement * meNDigisCHANBarrelCh28_
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > trackerGeomTokenBeginRun_
~SiPixelDigiSource() override
MonitorElement * noOccROCsEndcap
MonitorElement * meNDigisCHANBarrel_
std::vector< MonitorElement * > meNDigisCHANEndcapDms_
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > trackerTopoToken_
std::map< uint32_t, SiPixelDigiModule * > thePixelStructure
MonitorElement * meNDigisCHANBarrelCh33_
MonitorElement * pixEventRate
MonitorElement * meNDigisCHANBarrelCh21_
unsigned int I_detId[1856]
MonitorElement * meNDigisCHANBarrelCh32_
MonitorElement * meNDigisCHANBarrelCh10_
MonitorElement * loOccROCsBarrel
MonitorElement * meNDigisCHANBarrelCh1_
MonitorElement * averageDigiOccupancy
MonitorElement * meNDigisCHANBarrelCh5_
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
MonitorElement * meNDigisCHANBarrelCh7_
MonitorElement * meNDigisCHANBarrelCh15_
MonitorElement * meNDigisCHANBarrelCh13_
MonitorElement * meNDigisCHANBarrelCh23_
MonitorElement * meNDigisCHANBarrelCh18_
MonitorElement * bigEventRate
MonitorElement * meNDigisCHANBarrelCh20_
MonitorElement * avgfedDigiOccvsLumi
edm::ParameterSet conf_
MonitorElement * meNDigisCHANBarrelCh22_
MonitorElement * avgEndcapFedOccvsLumi
std::vector< MonitorElement * > meNDigisCHANEndcapDps_
MonitorElement * pixEvtsPerBX
std::vector< MonitorElement * > meNDigisCHANBarrelLs_
collection_type::const_iterator const_iterator
Definition: DetSet.h:31
MonitorElement * meNDigisCHANBarrelCh16_
MonitorElement * meNDigisCHANBarrelCh11_
virtual void CountZeroROCsInSubstructure(bool, bool &, SiPixelDigiModule *)
virtual void buildStructure(edm::EventSetup const &)
edm::InputTag src_
std::string I_name[1856]
MonitorElement * meNDigisCHANBarrelCh24_
Definition: Run.h:45