CMS 3D CMS Logo

SiStripRecHitsValid.h
Go to the documentation of this file.
1 #ifndef SiStripRecHitsValid_h
2 #define SiStripRecHitsValid_h
3 
10 //only mine
15 
16 //DQM services for histogram
18 
20 
21 //--- for SimHit association
24 
36 
37 // -- for es tokens
42 
43 #include <string>
45 //For RecHit
49 
50 class SiStripDetCabling;
51 class SiStripDCSStatus;
52 
54 public:
56 
57  ~SiStripRecHitsValid() override;
58 
59  struct TotalMEs { // MEs for total detector Level
63  };
64 
65  struct SubDetMEs { // MEs for Subdetector Level
75  };
76 
77  struct LayerMEs { // MEs for Layer Level
87  };
88 
89  struct StereoAndMatchedMEs { // MEs for Layer Level
107  };
108 
110  float x;
111  float y;
112  // float z;
113  float resolxx;
114  // float resolxy;
115  float resolyy;
116  float resx;
117  float resy;
118  float pullMF;
119  int clusiz;
120  float cluchg;
121  float chi2;
122  int NsimHit;
123  int bunch;
124  int event;
125  };
126 
127 protected:
128  void analyze(const edm::Event& e, const edm::EventSetup& c) override;
129  void bookHistograms(DQMStore::IBooker& ibooker, const edm::Run& run, const edm::EventSetup& es) override;
130 
131 private:
135 
137 
139 
143 
153 
180 
182  std::vector<std::string> SubDetList_;
183 
184  std::map<std::string, LayerMEs> LayerMEsMap;
185  std::map<std::string, StereoAndMatchedMEs> StereoAndMatchedMEsMap;
186  std::map<std::string, SubDetMEs> SubDetMEsMap;
187  std::map<std::string, std::vector<uint32_t> > LayerDetMap;
188  std::map<std::string, std::vector<uint32_t> > StereoAndMatchedDetMap;
189 
191 
192  std::pair<LocalPoint, LocalVector> projectHit(const PSimHit& hit,
193  const StripGeomDetUnit* stripDet,
194  const BoundPlane& plane);
195  void createMEs(DQMStore::IBooker& ibooker, const edm::EventSetup& es);
196  void createTotalMEs(DQMStore::IBooker& ibooker);
200 
202  const char* ParameterSetLabel,
203  const char* HistoName,
204  const char* HistoTitle);
205 
206  inline void fillME(MonitorElement* ME, float value1) {
207  if (ME != nullptr)
208  ME->Fill(value1);
209  }
210  inline void fillME(MonitorElement* ME, float value1, float value2) {
211  if (ME != nullptr)
212  ME->Fill(value1, value2);
213  }
214  inline void fillME(MonitorElement* ME, float value1, float value2, float value3) {
215  if (ME != nullptr)
216  ME->Fill(value1, value2, value3);
217  }
218  inline void fillME(MonitorElement* ME, float value1, float value2, float value3, float value4) {
219  if (ME != nullptr)
220  ME->Fill(value1, value2, value3, value4);
221  }
222 
225  //const StripTopology* topol;
226 
227  /* static const int MAXHIT = 1000; */
228 
229  // std::vector<RecHitProperties> rechitrphi;
230  // std::vector<RecHitProperties> rechitstereo;
231  // std::vector<RecHitProperties> rechitmatched;
233 
234  void rechitanalysis(SiStripRecHit2D const rechit, const StripTopology& topol, TrackerHitAssociator& associate);
236  const GluedGeomDet* gluedDet,
237  TrackerHitAssociator& associate);
238 
242 };
243 
244 #endif
RecHitProperties rechitpro
std::vector< std::string > SubDetList_
edm::ESWatcher< SiStripDetCablingRcd > watchSiStripDetCablingRcd_
void rechitanalysis_matched(SiStripMatchedRecHit2D const rechit, const GluedGeomDet *gluedDet, TrackerHitAssociator &associate)
void createStereoAndMatchedMEs(DQMStore::IBooker &ibooker, std::string label)
void fillME(MonitorElement *ME, float value1, float value2, float value3)
void bookHistograms(DQMStore::IBooker &ibooker, const edm::Run &run, const edm::EventSetup &es) override
void createSubDetMEs(DQMStore::IBooker &ibooker, std::string label)
TrackerHitAssociator::Config trackerHitAssociatorConfig_
std::map< std::string, SubDetMEs > SubDetMEsMap
void rechitanalysis(SiStripRecHit2D const rechit, const StripTopology &topol, TrackerHitAssociator &associate)
std::map< std::string, StereoAndMatchedMEs > StereoAndMatchedMEsMap
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > m_topoToken
void analyze(const edm::Event &e, const edm::EventSetup &c) override
edm::EDGetTokenT< SiStripRecHit2DCollection > stereoRecHitsToken_
Definition: ME.h:11
char const * label
const edm::ESGetToken< SiStripDetCabling, SiStripDetCablingRcd > m_SiStripDetCablingToken
std::map< std::string, std::vector< uint32_t > > LayerDetMap
void fillME(MonitorElement *ME, float value1, float value2, float value3, float value4)
void createMEs(DQMStore::IBooker &ibooker, const edm::EventSetup &es)
edm::EDGetTokenT< SiStripRecHit2DCollection > rphiRecHitsToken_
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > m_topoTokenBR
MonitorElement * bookME1D(DQMStore::IBooker &ibooker, const char *ParameterSetLabel, const char *HistoName, const char *HistoTitle)
SiStripRecHitsValid(const edm::ParameterSet &conf)
std::map< std::string, LayerMEs > LayerMEsMap
edm::ESHandle< SiStripDetCabling > SiStripDetCabling_
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > m_geomToken
std::pair< LocalPoint, LocalVector > projectHit(const PSimHit &hit, const StripGeomDetUnit *stripDet, const BoundPlane &plane)
std::string HistoName
void createTotalMEs(DQMStore::IBooker &ibooker)
edm::ParameterSet conf_
void fillME(MonitorElement *ME, float value1, float value2)
edm::EDGetTokenT< SiStripMatchedRecHit2DCollection > matchedRecHitsToken_
void createLayerMEs(DQMStore::IBooker &ibooker, std::string label)
void fillME(MonitorElement *ME, float value1)
std::map< std::string, std::vector< uint32_t > > StereoAndMatchedDetMap
Definition: Run.h:45