CMS 3D CMS Logo

SiStripTrackingRecHitsValid.h
Go to the documentation of this file.
1 #ifndef Validation_RecoTrack_SiStripTrackingRecHitsValid_h
2 #define Validation_RecoTrack_SiStripTrackingRecHitsValid_h
3 
4 //DQM services for histogram
11 
14 
16 
18 
26 
38 
39 #include <TROOT.h>
40 #include <TTree.h>
41 #include <TFile.h>
42 #include <TH1F.h>
43 #include <TProfile.h>
44 
50 
51 //--- for SimHit association
65 
67 
69 
70 #include <string>
71 
72 class SiStripDetCabling;
73 class SiStripDCSStatus;
74 
76 {
77  public:
78 
80 
82 
83  // ALL
84  //Simple hits MEs either from matched either
85  //from hit1D, hit2D in all subdetectors.
86  struct SimpleHitsMEs{
99 
104 
119 
120  };
121 
122  struct LayerMEs{ // MEs for Layer Level
162 
171 
182 
183 
184  };
185 
186  struct StereoAndMatchedMEs{ // MEs for stereo and matched hits
187 
215 
224 
225  };
226 
228  float x;
229  float y;
230  float z;
231  float resolxx;
232  float resolxy;
233  float resolyy;
234  float resolxxMF; // in Measurement Frame
235 // float phi;
236  float resx;
237  float resy;
238  float resxMF;// in Measurement Frame
239  float pullx;
240  float pully;
241  float pullxMF;// in Measurement Frame
242  float trackangle;
244 // float trackangle2;
245  float trackwidth;
247  int category;
248  float thickness;
249  int clusiz;
250  float cluchg;
251  };
252 
253  protected:
254 
255  virtual void analyze(const edm::Event& e, const edm::EventSetup& c);
256  void bookHistograms(DQMStore::IBooker & ibooker,const edm::Run& run, const edm::EventSetup& es);
258  void beginJob(const edm::EventSetup& es);
259  void endJob();
260 
261  private:
262 
267 
269 
270 
393 
395  std::vector<PSimHit> matched;
396  std::map<std::string, LayerMEs> LayerMEsMap;
397  std::map<std::string, StereoAndMatchedMEs> StereoAndMatchedMEsMap;
398  std::map<std::string, std::vector< uint32_t > > LayerDetMap;
399  std::map<std::string, std::vector< uint32_t > > StereoAndMatchedDetMap;
400 
402 
403  std::pair<LocalPoint,LocalVector> projectHit( const PSimHit& hit, const StripGeomDetUnit* stripDet,const BoundPlane& plane);
404 
406 
407  MonitorElement* Fit_SliceY(TH2F * Histo2D);
408 
409  void createMEs(DQMStore::IBooker & ibooker,const edm::EventSetup& es);
410  void createSimpleHitsMEs(DQMStore::IBooker & ibooker);
413 
414  MonitorElement* bookME1D(DQMStore::IBooker & ibooker,const char* ParameterSetLabel, const char* HistoName, const char* HistoTitle);
415  MonitorElement* bookMEProfile(DQMStore::IBooker & ibooker,const char* ParameterSetLabel, const char* HistoName, const char* HistoTitle);
416 
417  inline void fillME(MonitorElement* ME,float value1){if (ME!=0)ME->Fill(value1);}
418  inline void fillME(MonitorElement* ME,float value1,float value2){if (ME!=0)ME->Fill(value1,value2);}
419  inline void fillME(MonitorElement* ME,float value1,float value2,float value3){if (ME!=0)ME->Fill(value1,value2,value3);}
420  inline void fillME(MonitorElement* ME,float value1,float value2,float value3,float value4){if (ME!=0)ME->Fill(value1,value2,value3,value4);}
421 
422 
425  unsigned long long m_cacheID_;
427 
429 
430  void rechitanalysis(LocalVector ldir, const TrackingRecHit *rechit, const StripGeomDetUnit *stripdet, edm::ESHandle < StripClusterParameterEstimator > stripcpe, TrackerHitAssociator& associate, bool simplehit1or2D);
431 
432  enum class MatchStatus { matched, monoHit, stereoHit};
433  void rechitanalysis_matched(LocalVector ldir, const TrackingRecHit *rechit, const GluedGeomDet* gluedDet,TrackerHitAssociator& associate, edm::ESHandle < StripClusterParameterEstimator > stripcpe, const MatchStatus matchedmonorstereo);
434 
435 
438 
439 };
440 
441 
442 #endif
SiStripTrackingRecHitsValid(const edm::ParameterSet &conf)
edm::ESHandle< SiStripDetCabling > SiStripDetCabling_
void rechitanalysis_matched(LocalVector ldir, const TrackingRecHit *rechit, const GluedGeomDet *gluedDet, TrackerHitAssociator &associate, edm::ESHandle< StripClusterParameterEstimator > stripcpe, const MatchStatus matchedmonorstereo)
void fillME(MonitorElement *ME, float value1, float value2, float value3, float value4)
std::map< std::string, StereoAndMatchedMEs > StereoAndMatchedMEsMap
MonitorElement * bookME1D(DQMStore::IBooker &ibooker, const char *ParameterSetLabel, const char *HistoName, const char *HistoTitle)
void fillME(MonitorElement *ME, float value1)
void fillME(MonitorElement *ME, float value1, float value2, float value3)
MonitorElement * Fit_SliceY(TH2F *Histo2D)
std::map< std::string, LayerMEs > LayerMEsMap
void createLayerMEs(DQMStore::IBooker &ibooker, std::string label)
void Fill(long long x)
Definition: ME.h:11
void createSimpleHitsMEs(DQMStore::IBooker &ibooker)
void bookHistograms(DQMStore::IBooker &ibooker, const edm::Run &run, const edm::EventSetup &es)
TrackerHitAssociator::Config trackerHitAssociatorConfig_
edm::EDGetTokenT< std::vector< reco::Track > > tracksInputToken_
virtual void analyze(const edm::Event &e, const edm::EventSetup &c)
void createMEs(DQMStore::IBooker &ibooker, const edm::EventSetup &es)
std::pair< LocalPoint, LocalVector > projectHit(const PSimHit &hit, const StripGeomDetUnit *stripDet, const BoundPlane &plane)
MonitorElement * bookMEProfile(DQMStore::IBooker &ibooker, const char *ParameterSetLabel, const char *HistoName, const char *HistoTitle)
void createStereoAndMatchedMEs(DQMStore::IBooker &ibooker, std::string label)
std::string HistoName
void rechitanalysis(LocalVector ldir, const TrackingRecHit *rechit, const StripGeomDetUnit *stripdet, edm::ESHandle< StripClusterParameterEstimator > stripcpe, TrackerHitAssociator &associate, bool simplehit1or2D)
void fillME(MonitorElement *ME, float value1, float value2)
std::map< std::string, std::vector< uint32_t > > StereoAndMatchedDetMap
std::map< std::string, std::vector< uint32_t > > LayerDetMap
LocalVector driftDirection(const StripGeomDetUnit *det) const
Definition: Run.h:43
void beginJob(const edm::EventSetup &es)