CMS 3D CMS Logo

SiStripMonitorCluster.h
Go to the documentation of this file.
1 #ifndef SiStripMonitorCluster_SiStripMonitorCluster_h
2 #define SiStripMonitorCluster_SiStripMonitorCluster_h
3 // -*- C++ -*-
4 // Package: SiStripMonitorCluster
5 // Class : SiStripMonitorCluster
11 // Original Author: dkcira
12 // Created: Wed Feb 1 16:47:14 CET 2006
13 #include <memory>
14 #include <vector>
15 
39 
40 class SiStripCluster;
41 class SiPixelCluster;
42 class EventWithHistory;
44 class SiStripDCSStatus;
46 
48 public:
50  ~SiStripMonitorCluster() override;
51  void analyze(const edm::Event&, const edm::EventSetup&) override;
52  void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
53  void dqmBeginRun(const edm::Run&, const edm::EventSetup&) override;
54 
55  struct ModMEs { // MEs for one single detector module
56 
66  MonitorElement* NrOfClusterizedStrips = nullptr; // can be used at client level for occupancy calculations
68  };
69 
70  struct LayerMEs { // MEs for Layer Level
87  };
88 
89  struct SubDetMEs { // MEs for Subdetector Level
90  int totNClusters = 0;
101  };
102 
103  struct ClusterProperties { // Cluster Properties
104  float charge;
105  float position;
106  short start;
107  short width;
108  float noise;
109  };
110 
127  MonitorElement* NumberOfStripClus_vs_BX = nullptr; // plot n. 3
128  MonitorElement* NumberOfPixelClus_vs_BX = nullptr; // plot n. 4
130 
131 private:
132  void createMEs(const edm::EventSetup& es, DQMStore::IBooker& ibooker);
133  void createLayerMEs(std::string label, int ndets, DQMStore::IBooker& ibooker);
134  void createModuleMEs(ModMEs& mod_single, uint32_t detid, DQMStore::IBooker& ibooker, const SiStripDetCabling&);
136  int FindRegion(int nstrip, int npixel);
137  void fillModuleMEs(ModMEs& mod_mes, ClusterProperties& cluster);
138  void fillLayerMEs(LayerMEs&, ClusterProperties& cluster);
139 
140  void ResetModuleMEs(uint32_t idet);
141 
142  inline void fillME(MonitorElement* ME, float value1) {
143  if (ME != nullptr)
144  ME->Fill(value1);
145  }
146  inline void fillME(MonitorElement* ME, float value1, float value2) {
147  if (ME != nullptr)
148  ME->Fill(value1, value2);
149  }
150  inline void fillME(MonitorElement* ME, float value1, float value2, float value3) {
151  if (ME != nullptr)
152  ME->Fill(value1, value2, value3);
153  }
154  inline void fillME(MonitorElement* ME, float value1, float value2, float value3, float value4) {
155  if (ME != nullptr)
156  ME->Fill(value1, value2, value3, value4);
157  }
158  MonitorElement* bookMETrend(const char*, DQMStore::IBooker& ibooker);
159  MonitorElement* bookME1D(const char* ParameterSetLabel, const char* HistoName, DQMStore::IBooker& ibooker);
160  MonitorElement* bookME2D(const char* ParameterSetLabel, const char* HistoName, DQMStore::IBooker& ibooker);
161 
163  std::map<uint32_t, ModMEs> ModuleMEsMap;
164  std::map<std::string, LayerMEs> LayerMEsMap;
165  std::map<std::string, std::vector<uint32_t> > LayerDetMap;
166  std::map<std::string, SubDetMEs> SubDetMEsMap;
167  std::map<std::string, std::string> SubDetPhasePartMap;
168 
169  // flags
171  unsigned long long m_cacheID_;
172 
173  std::vector<uint32_t> ModulesToBeExcluded_;
174 
176 
177  // TkHistoMap added
178  std::unique_ptr<TkHistoMap> tkmapcluster;
179  std::unique_ptr<TkHistoMap> tkmapclusterch;
180 
183  float trendVar;
184 
198 
203 
233 
234  bool Mod_On_;
236 
239 
240  /*
241  edm::InputTag clusterProducerStrip_;
242  edm::InputTag clusterProducerPix_;
243  edm::InputTag historyProducer_;
244  edm::InputTag apvPhaseProducer_;
245  */
246 
251 
260 
266 
267  double k0;
268  double q0;
269  double dk0;
270  double maxClus;
271  double minPix;
272 
274 
275  // add for selecting on ZeroBias events in the MinimumBias PD
279 
283 };
284 #endif
MonitorElement * GlobalABXTH1_CSCP
void ResetModuleMEs(uint32_t idet)
int FindRegion(int nstrip, int npixel)
edm::ESGetToken< SiStripDetCabling, SiStripDetCablingRcd > siStripDetCablingRunToken_
MonitorElement * NumberOfPixelClus_vs_BX
MonitorElement * PixVsStripMultiplicityRegions
MonitorElement * GlobalTH2MainDiagonalPosition_vs_BX
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > trackerTopologyEventToken_
edm::ESGetToken< SiStripQuality, SiStripQualityRcd > siStripQualityToken_
MonitorElement * GlobalCStripVsCpix
MonitorElement * ClusterSignalOverNoiseVsPos
Provides a code based selection for trigger and DCS information in order to have no failing filters i...
MonitorElement * StripNoise2Cycle
void createLayerMEs(std::string label, int ndets, DQMStore::IBooker &ibooker)
std::map< std::string, LayerMEs > LayerMEsMap
void analyze(const edm::Event &, const edm::EventSetup &) override
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
MonitorElement * NumberOfPixelClus
unsigned long long m_cacheID_
void createSubDetMEs(std::string label, DQMStore::IBooker &ibooker)
Definition: ME.h:11
std::map< uint32_t, ModMEs > ModuleMEsMap
char const * label
void createMEs(const edm::EventSetup &es, DQMStore::IBooker &ibooker)
std::map< std::string, std::string > SubDetPhasePartMap
MonitorElement * GlobalApvCycleDBxTH2
edm::ParameterSet Parameters
GenericTriggerEventFlag * genTriggerEventFlagPixelDCSfilter_
MonitorElement * bookMETrend(const char *, DQMStore::IBooker &ibooker)
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > trackerTopologyRunToken_
edm::ESGetToken< SiStripDetCabling, SiStripDetCablingRcd > siStripDetCablingEventToken_
void fillME(MonitorElement *ME, float value1, float value2, float value3, float value4)
MonitorElement * NumberOfStripClus
void createModuleMEs(ModMEs &mod_single, uint32_t detid, DQMStore::IBooker &ibooker, const SiStripDetCabling &)
MonitorElement * GlobalMainDiagonalPosition_vs_BX
MonitorElement * NumberOfStripClus_vs_BX
edm::EDGetTokenT< EventWithHistory > historyProducerToken_
MonitorElement * bookME2D(const char *ParameterSetLabel, const char *HistoName, DQMStore::IBooker &ibooker)
MonitorElement * ClusWidthVsAmpTH2
edm::ESGetToken< SiStripNoises, SiStripNoisesRcd > siStripNoisesToken_
MonitorElement * GlobalMainDiagonalPosition
std::vector< uint32_t > ModulesToBeExcluded_
SiStripDCSStatus * dcsStatus_
GenericTriggerEventFlag * genTriggerEventFlagBPTXfilter_
MonitorElement * LayerNumberOfClusterPerRingTrend
void fillME(MonitorElement *ME, float value1)
SiStripMonitorCluster(const edm::ParameterSet &)
MonitorElement * NumberOfFEDClus
std::string HistoName
MonitorElement * StripNoise3Cycle
void fillME(MonitorElement *ME, float value1, float value2)
edm::ESGetToken< SiStripGain, SiStripGainRcd > siStripGainToken_
Pixel cluster – collection of neighboring pixels above threshold.
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > clusterProducerPixToken_
std::map< std::string, SubDetMEs > SubDetMEsMap
void fillLayerMEs(LayerMEs &, ClusterProperties &cluster)
std::unique_ptr< TkHistoMap > tkmapcluster
void fillME(MonitorElement *ME, float value1, float value2, float value3)
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > clusterProducerStripToken_
std::map< std::string, std::vector< uint32_t > > LayerDetMap
edm::ESGetToken< TkDetMap, TrackerTopologyRcd > tkDetMapToken_
std::unique_ptr< TkHistoMap > tkmapclusterch
MonitorElement * GlobalDBxCycleTH1
edm::EDGetTokenT< APVCyclePhaseCollection > apvPhaseProducerToken_
void dqmBeginRun(const edm::Run &, const edm::EventSetup &) override
GenericTriggerEventFlag * genTriggerEventFlagStripDCSfilter_
MonitorElement * NclusVsCycleTimeProf2D
MonitorElement * BPTXrateTrend
MonitorElement * bookME1D(const char *ParameterSetLabel, const char *HistoName, DQMStore::IBooker &ibooker)
void fillModuleMEs(ModMEs &mod_mes, ClusterProperties &cluster)
Definition: Run.h:45