File indexing completed on 2024-04-06 12:08:22
0001 #ifndef SiPixelMonitorDigi_SiPixelDigiSource_h
0002 #define SiPixelMonitorDigi_SiPixelDigiSource_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #include <memory>
0022
0023
0024 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
0025 #include "Geometry/Records/interface/TrackerDigiGeometryRecord.h"
0026 #include "Geometry/CommonTopologies/interface/PixelTopology.h"
0027 #include "Geometry/Records/interface/TrackerTopologyRcd.h"
0028 #include "DQM/SiPixelMonitorDigi/interface/SiPixelDigiModule.h"
0029 #include <DQMServices/Core/interface/DQMOneEDAnalyzer.h>
0030 #include <cstdint>
0031
0032 class SiPixelDigiSource : public DQMOneEDAnalyzer<edm::LuminosityBlockCache<bool>> {
0033 public:
0034 explicit SiPixelDigiSource(const edm::ParameterSet& conf);
0035 ~SiPixelDigiSource() override;
0036
0037 typedef edm::DetSet<PixelDigi>::const_iterator DigiIterator;
0038
0039 void analyze(const edm::Event&, const edm::EventSetup&) override;
0040 void dqmBeginRun(const edm::Run&, edm::EventSetup const&) override;
0041 void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
0042 std::shared_ptr<bool> globalBeginLuminosityBlock(const edm::LuminosityBlock& lumi,
0043 const edm::EventSetup& iSetup) const override;
0044 void globalEndLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&) override;
0045
0046 virtual void buildStructure(edm::EventSetup const&);
0047 virtual void bookMEs(DQMStore::IBooker&, const edm::EventSetup& iSetup);
0048
0049 virtual void CountZeroROCsInSubstructure(bool, bool&, SiPixelDigiModule*);
0050
0051 std::string topFolderName_;
0052
0053 private:
0054 edm::ParameterSet conf_;
0055 edm::InputTag src_;
0056 bool saveFile;
0057 bool isPIB;
0058 bool slowDown;
0059 bool modOn;
0060 bool perLSsaving;
0061 bool twoDimOn;
0062 bool twoDimModOn;
0063 bool twoDimOnlyLayDisk;
0064 bool hiRes;
0065 bool reducedSet;
0066
0067 bool ladOn, layOn, phiOn;
0068
0069 bool ringOn, bladeOn, diskOn;
0070 std::map<uint32_t, SiPixelDigiModule*> thePixelStructure;
0071
0072 int nDP1P1M1;
0073 int nDP1P1M2;
0074 int nDP1P1M3;
0075 int nDP1P1M4;
0076 int nDP1P2M1;
0077 int nDP1P2M2;
0078 int nDP1P2M3;
0079 int nDP2P1M1;
0080 int nDP2P1M2;
0081 int nDP2P1M3;
0082 int nDP2P1M4;
0083 int nDP2P2M1;
0084 int nDP2P2M2;
0085 int nDP2P2M3;
0086 int nDP3P1M1;
0087 int nDP3P2M1;
0088 int nDM1P1M1;
0089 int nDM1P1M2;
0090 int nDM1P1M3;
0091 int nDM1P1M4;
0092 int nDM1P2M1;
0093 int nDM1P2M2;
0094 int nDM1P2M3;
0095 int nDM2P1M1;
0096 int nDM2P1M2;
0097 int nDM2P1M3;
0098 int nDM2P1M4;
0099 int nDM2P2M1;
0100 int nDM2P2M2;
0101 int nDM2P2M3;
0102 int nDM3P1M1;
0103 int nDM3P2M1;
0104 int nL1M1;
0105 int nL1M2;
0106 int nL1M3;
0107 int nL1M4;
0108 int nL2M1;
0109 int nL2M2;
0110 int nL2M3;
0111 int nL2M4;
0112 int nL3M1;
0113 int nL3M2;
0114 int nL3M3;
0115 int nL3M4;
0116 int nL4M1;
0117 int nL4M2;
0118 int nL4M3;
0119 int nL4M4;
0120 int nBigEvents;
0121 int nBPIXDigis;
0122 int nFPIXDigis;
0123 MonitorElement* bigEventRate;
0124 MonitorElement* pixEvtsPerBX;
0125 MonitorElement* pixEventRate;
0126 MonitorElement* noOccROCsBarrel;
0127 MonitorElement* loOccROCsBarrel;
0128 MonitorElement* noOccROCsEndcap;
0129 MonitorElement* loOccROCsEndcap;
0130 MonitorElement* averageDigiOccupancy;
0131 MonitorElement* avgBarrelFedOccvsLumi;
0132 MonitorElement* avgEndcapFedOccvsLumi;
0133 MonitorElement* avgfedDigiOccvsLumi;
0134 MonitorElement* meNDigisCOMBBarrel_;
0135 MonitorElement* meNDigisCOMBEndcap_;
0136 MonitorElement* meNDigisCHANBarrel_;
0137 std::vector<MonitorElement*> meNDigisCHANBarrelLs_;
0138 MonitorElement* meNDigisCHANBarrelCh1_;
0139 MonitorElement* meNDigisCHANBarrelCh2_;
0140 MonitorElement* meNDigisCHANBarrelCh3_;
0141 MonitorElement* meNDigisCHANBarrelCh4_;
0142 MonitorElement* meNDigisCHANBarrelCh5_;
0143 MonitorElement* meNDigisCHANBarrelCh6_;
0144 MonitorElement* meNDigisCHANBarrelCh7_;
0145 MonitorElement* meNDigisCHANBarrelCh8_;
0146 MonitorElement* meNDigisCHANBarrelCh9_;
0147 MonitorElement* meNDigisCHANBarrelCh10_;
0148 MonitorElement* meNDigisCHANBarrelCh11_;
0149 MonitorElement* meNDigisCHANBarrelCh12_;
0150 MonitorElement* meNDigisCHANBarrelCh13_;
0151 MonitorElement* meNDigisCHANBarrelCh14_;
0152 MonitorElement* meNDigisCHANBarrelCh15_;
0153 MonitorElement* meNDigisCHANBarrelCh16_;
0154 MonitorElement* meNDigisCHANBarrelCh17_;
0155 MonitorElement* meNDigisCHANBarrelCh18_;
0156 MonitorElement* meNDigisCHANBarrelCh19_;
0157 MonitorElement* meNDigisCHANBarrelCh20_;
0158 MonitorElement* meNDigisCHANBarrelCh21_;
0159 MonitorElement* meNDigisCHANBarrelCh22_;
0160 MonitorElement* meNDigisCHANBarrelCh23_;
0161 MonitorElement* meNDigisCHANBarrelCh24_;
0162 MonitorElement* meNDigisCHANBarrelCh25_;
0163 MonitorElement* meNDigisCHANBarrelCh26_;
0164 MonitorElement* meNDigisCHANBarrelCh27_;
0165 MonitorElement* meNDigisCHANBarrelCh28_;
0166 MonitorElement* meNDigisCHANBarrelCh29_;
0167 MonitorElement* meNDigisCHANBarrelCh30_;
0168 MonitorElement* meNDigisCHANBarrelCh31_;
0169 MonitorElement* meNDigisCHANBarrelCh32_;
0170 MonitorElement* meNDigisCHANBarrelCh33_;
0171 MonitorElement* meNDigisCHANBarrelCh34_;
0172 MonitorElement* meNDigisCHANBarrelCh35_;
0173 MonitorElement* meNDigisCHANBarrelCh36_;
0174 MonitorElement* meNDigisCHANEndcap_;
0175 std::vector<MonitorElement*> meNDigisCHANEndcapDps_;
0176 std::vector<MonitorElement*> meNDigisCHANEndcapDms_;
0177
0178 int NzeroROCs[2];
0179 int NloEffROCs[2];
0180
0181 bool ROCMapToReset;
0182
0183
0184 bool DoZeroRocsBMO1;
0185 bool DoZeroRocsBMO2;
0186 bool DoZeroRocsBMO3;
0187
0188 bool DoZeroRocsBMI1;
0189 bool DoZeroRocsBMI2;
0190 bool DoZeroRocsBMI3;
0191
0192 bool DoZeroRocsBPO1;
0193 bool DoZeroRocsBPO2;
0194 bool DoZeroRocsBPO3;
0195
0196 bool DoZeroRocsBPI1;
0197 bool DoZeroRocsBPI2;
0198 bool DoZeroRocsBPI3;
0199
0200 bool DoZeroRocsFPO1;
0201 bool DoZeroRocsFPO2;
0202
0203 bool DoZeroRocsFMO1;
0204 bool DoZeroRocsFMO2;
0205
0206 bool DoZeroRocsFPI1;
0207 bool DoZeroRocsFPI2;
0208
0209 bool DoZeroRocsFMI1;
0210 bool DoZeroRocsFMI2;
0211
0212 int bigEventSize;
0213 bool isUpgrade;
0214 bool firstRun;
0215
0216 std::string I_name[1856];
0217 unsigned int I_detId[1856];
0218 int I_fedId[1856];
0219 int I_linkId1[1856];
0220 int I_linkId2[1856];
0221 int nDigisPerFed[40];
0222 int nDigisPerChan[1152];
0223 int nDigisPerDisk[6];
0224 int numberOfDigis[336];
0225 int nDigisA;
0226 int nDigisB;
0227
0228
0229 edm::EDGetTokenT<edm::DetSetVector<PixelDigi>> srcToken_;
0230 edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> trackerTopoToken_;
0231 edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> trackerTopoTokenBeginRun_;
0232 edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> trackerGeomTokenBeginRun_;
0233 int noOfLayers;
0234 int noOfDisks;
0235 };
0236
0237 #endif