CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
SiStripRecHitsValid.h
Go to the documentation of this file.
1 #ifndef SiStripRecHitsValid_h
2 #define SiStripRecHitsValid_h
3 
11 //only mine
16 
17 //DQM services for histogram
19 
21 
22 //--- for SimHit association
25 
37 
38 // -- for es tokens
43 
44 #include <string>
46 //For RecHit
50 
51 class SiStripDetCabling;
52 class SiStripDCSStatus;
53 
55 public:
57 
58  ~SiStripRecHitsValid() override;
59 
60  struct TotalMEs { // MEs for total detector Level
64  };
65 
66  struct SubDetMEs { // MEs for Subdetector Level
76  };
77 
78  struct LayerMEs { // MEs for Layer Level
88  };
89 
90  struct StereoAndMatchedMEs { // MEs for Layer Level
108  };
109 
111  float x;
112  float y;
113  // float z;
114  float resolxx;
115  // float resolxy;
116  float resolyy;
117  float resx;
118  float resy;
119  float pullMF;
120  int clusiz;
121  float cluchg;
122  float chi2;
123  int NsimHit;
124  int bunch;
125  int event;
126  };
127 
128 protected:
129  void analyze(const edm::Event& e, const edm::EventSetup& c) override;
130  void bookHistograms(DQMStore::IBooker& ibooker, const edm::Run& run, const edm::EventSetup& es) override;
131 
132 private:
136 
138 
140 
144 
154 
181 
183  std::vector<std::string> SubDetList_;
184 
185  std::map<std::string, LayerMEs> LayerMEsMap;
186  std::map<std::string, StereoAndMatchedMEs> StereoAndMatchedMEsMap;
187  std::map<std::string, SubDetMEs> SubDetMEsMap;
188  std::map<std::string, std::vector<uint32_t> > LayerDetMap;
189  std::map<std::string, std::vector<uint32_t> > StereoAndMatchedDetMap;
190 
192 
193  std::pair<LocalPoint, LocalVector> projectHit(const PSimHit& hit,
194  const StripGeomDetUnit* stripDet,
195  const BoundPlane& plane);
196  void createMEs(DQMStore::IBooker& ibooker, const edm::EventSetup& es);
197  void createTotalMEs(DQMStore::IBooker& ibooker);
201 
203  const char* ParameterSetLabel,
204  const char* HistoName,
205  const char* HistoTitle);
206 
207  inline void fillME(MonitorElement* ME, float value1) {
208  if (ME != nullptr)
209  ME->Fill(value1);
210  }
211  inline void fillME(MonitorElement* ME, float value1, float value2) {
212  if (ME != nullptr)
213  ME->Fill(value1, value2);
214  }
215  inline void fillME(MonitorElement* ME, float value1, float value2, float value3) {
216  if (ME != nullptr)
217  ME->Fill(value1, value2, value3);
218  }
219  inline void fillME(MonitorElement* ME, float value1, float value2, float value3, float value4) {
220  if (ME != nullptr)
221  ME->Fill(value1, value2, value3, value4);
222  }
223 
226  //const StripTopology* topol;
227 
228  /* static const int MAXHIT = 1000; */
229 
230  // std::vector<RecHitProperties> rechitrphi;
231  // std::vector<RecHitProperties> rechitstereo;
232  // std::vector<RecHitProperties> rechitmatched;
234 
235  void rechitanalysis(SiStripRecHit2D const rechit, const StripTopology& topol, TrackerHitAssociator& associate);
237  const GluedGeomDet* gluedDet,
238  TrackerHitAssociator& associate);
239 
243 };
244 
245 #endif
RecHitProperties rechitpro
std::vector< std::string > SubDetList_
edm::ESWatcher< SiStripDetCablingRcd > watchSiStripDetCablingRcd_
void rechitanalysis_matched(SiStripMatchedRecHit2D const rechit, const GluedGeomDet *gluedDet, TrackerHitAssociator &associate)
const edm::EventSetup & c
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_
void Fill(long long x)
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