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
9 // Original Author: dkcira
10 // Created: Wed Feb 1 16:47:14 CET 2006
11 #include <memory>
22 
23 #include <vector>
24 
27 
29 
30 class DQMStore;
31 class SiStripDetCabling;
32 class SiStripCluster;
33 class SiPixelCluster;
34 class EventWithHistory;
36 class SiStripDCSStatus;
38 
40  public:
43  virtual void analyze(const edm::Event&, const edm::EventSetup&) override;
44  void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
45  void dqmBeginRun(const edm::Run&, const edm::EventSetup&) override;
46 
47  struct ModMEs{ // MEs for one single detector module
48 
58  MonitorElement* NrOfClusterizedStrips = 0; // can be used at client level for occupancy calculations
60  };
61 
62  struct LayerMEs{ // MEs for Layer Level
63  MonitorElement* LayerClusterStoN = 0;
64  MonitorElement* LayerClusterStoNTrend = 0;
65  MonitorElement* LayerClusterCharge = 0;
66  MonitorElement* LayerClusterChargeTrend = 0;
67  MonitorElement* LayerClusterNoise = 0;
68  MonitorElement* LayerClusterNoiseTrend = 0;
69  MonitorElement* LayerClusterWidth = 0;
70  MonitorElement* LayerClusterWidthTrend = 0;
71  MonitorElement* LayerLocalOccupancy = 0;
72  MonitorElement* LayerLocalOccupancyTrend = 0;
73  MonitorElement* LayerNumberOfClusterProfile = 0;
74  MonitorElement* LayerNumberOfClusterPerRingTrend = 0;
75  MonitorElement* LayerNumberOfClusterTrend = 0;
76  MonitorElement* LayerClusterWidthProfile = 0;
77  MonitorElement* LayerClusWidthVsAmpTH2 = 0;
78  MonitorElement* LayerClusterPosition = 0;
79  };
80 
81  struct SubDetMEs{ // MEs for Subdetector Level
82  int totNClusters = 0;
83  MonitorElement* SubDetTotClusterTH1 = 0;
84  MonitorElement* SubDetTotClusterProf = 0;
85  MonitorElement* SubDetClusterApvProf = 0;
86  MonitorElement* SubDetClusterApvTH2 = 0;
87  MonitorElement* SubDetClusterDBxCycleProf = 0;
88  MonitorElement* SubDetApvDBxProf2 = 0;
89  MonitorElement* SubDetClusterChargeTH1 = 0;
90  MonitorElement* SubDetClusterWidthTH1 = 0;
91  MonitorElement* SubDetClusWidthVsAmpTH2 = 0;
92  MonitorElement* SubDetNumberOfClusterPerLayerTrend = 0;
93  };
94 
95  struct ClusterProperties { // Cluster Properties
96  float charge;
97  float position;
98  short start;
99  short width;
100  float noise;
101  };
102 
122 
123  private:
124 
125  void createMEs(const edm::EventSetup& es , DQMStore::IBooker & ibooker);
126  void createLayerMEs(std::string label, int ndets , DQMStore::IBooker & ibooker );
127  void createModuleMEs(ModMEs& mod_single, uint32_t detid , DQMStore::IBooker & ibooker);
129  int FindRegion(int nstrip,int npixel);
130  void fillModuleMEs(ModMEs& mod_mes, ClusterProperties& cluster);
131  void fillLayerMEs(LayerMEs&, ClusterProperties& cluster);
132 
133  void ResetModuleMEs(uint32_t idet);
134 
135  inline void fillME(MonitorElement* ME,float value1){if (ME!=0)ME->Fill(value1);}
136  inline void fillME(MonitorElement* ME,float value1,float value2){if (ME!=0)ME->Fill(value1,value2);}
137  inline void fillME(MonitorElement* ME,float value1,float value2,float value3){if (ME!=0)ME->Fill(value1,value2,value3);}
138  inline void fillME(MonitorElement* ME,float value1,float value2,float value3,float value4){if (ME!=0)ME->Fill(value1,value2,value3,value4);}
139  MonitorElement * bookMETrend(const char* , DQMStore::IBooker & ibooker);
140  MonitorElement* bookME1D(const char* ParameterSetLabel, const char* HistoName , DQMStore::IBooker & ibooker);
141  MonitorElement* bookME2D(const char* ParameterSetLabel, const char* HistoName , DQMStore::IBooker & ibooker);
142 
144  std::map<uint32_t, ModMEs> ModuleMEsMap;
145  std::map<std::string, LayerMEs> LayerMEsMap;
146  std::map<std::string, std::vector< uint32_t > > LayerDetMap;
147  std::map<std::string, SubDetMEs> SubDetMEsMap;
148  std::map<std::string, std::string> SubDetPhasePartMap;
149 
150  // flags
152  unsigned long long m_cacheID_;
153 
155  std::vector<uint32_t> ModulesToBeExcluded_;
156 
158 
159  // TkHistoMap added
162 
165  float trendVar;
166 
180 
185 
215 
216  bool Mod_On_;
218 
221 
222  /*
223  edm::InputTag clusterProducerStrip_;
224  edm::InputTag clusterProducerPix_;
225  edm::InputTag historyProducer_;
226  edm::InputTag apvPhaseProducer_;
227  */
228 
233 
239 
240  double k0;
241  double q0;
242  double dk0;
243  double maxClus;
244  double minPix;
245 
247 
248  // add for selecting on ZeroBias events in the MinimumBias PD
252 
256 };
257 #endif
MonitorElement * GlobalABXTH1_CSCP
void ResetModuleMEs(uint32_t idet)
MonitorElement * bookME1D(const char *ParameterSetLabel, const char *HistoName, DQMStore::IBooker &ibooker)
int FindRegion(int nstrip, int npixel)
MonitorElement * NumberOfPixelClus_vs_BX
MonitorElement * PixVsStripMultiplicityRegions
MonitorElement * GlobalTH2MainDiagonalPosition_vs_BX
MonitorElement * GlobalCStripVsCpix
edm::ESHandle< SiStripDetCabling > SiStripDetCabling_
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
virtual void analyze(const edm::Event &, const edm::EventSetup &) override
std::map< std::string, std::vector< uint32_t > > LayerDetMap
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
void Fill(long long x)
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
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)
void fillME(MonitorElement *ME, float value1, float value2, float value3, float value4)
MonitorElement * NumberOfStripClus
MonitorElement * GlobalMainDiagonalPosition_vs_BX
MonitorElement * NumberOfStripClus_vs_BX
edm::EDGetTokenT< EventWithHistory > historyProducerToken_
MonitorElement * ClusWidthVsAmpTH2
MonitorElement * GlobalMainDiagonalPosition
std::vector< uint32_t > ModulesToBeExcluded_
MonitorElement * bookME2D(const char *ParameterSetLabel, const char *HistoName, DQMStore::IBooker &ibooker)
SiStripDCSStatus * dcsStatus_
GenericTriggerEventFlag * genTriggerEventFlagBPTXfilter_
void fillME(MonitorElement *ME, float value1)
SiStripMonitorCluster(const edm::ParameterSet &)
MonitorElement * NumberOfFEDClus
std::string HistoName
MonitorElement * StripNoise3Cycle
void createModuleMEs(ModMEs &mod_single, uint32_t detid, DQMStore::IBooker &ibooker)
void fillME(MonitorElement *ME, float value1, float value2)
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)
void fillME(MonitorElement *ME, float value1, float value2, float value3)
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > clusterProducerStripToken_
MonitorElement * GlobalDBxCycleTH1
edm::EDGetTokenT< APVCyclePhaseCollection > apvPhaseProducerToken_
void dqmBeginRun(const edm::Run &, const edm::EventSetup &) override
GenericTriggerEventFlag * genTriggerEventFlagStripDCSfilter_
MonitorElement * NclusVsCycleTimeProf2D
MonitorElement * BPTXrateTrend
void fillModuleMEs(ModMEs &mod_mes, ClusterProperties &cluster)
Definition: Run.h:42