CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
424  unsigned long long m_cacheID_;
426 
427  //const StripTopology* topol;
428  std::vector<RecHitProperties> rechitrphi;
429  std::vector<RecHitProperties> rechitstereo;
430  std::vector<RecHitProperties> rechitmatched;
432 
434 
436 
437 
439  //edm::InputTag trajectoryInput_;
441 
442 };
443 
444 
445 #endif
SiStripTrackingRecHitsValid(const edm::ParameterSet &conf)
virtual void beginJob()
Definition: EDAnalyzer.h:72
edm::ESHandle< SiStripDetCabling > SiStripDetCabling_
void fillME(MonitorElement *ME, float value1, float value2, float value3, float value4)
void rechitanalysis(TrajectoryStateOnSurface tsos, const TransientTrackingRecHit::ConstRecHitPointer thit, const StripGeomDetUnit *stripdet, edm::ESHandle< StripClusterParameterEstimator > stripcpe, TrackerHitAssociator &associate, bool simplehit1or2D)
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::vector< RecHitProperties > rechitstereo
edm::EDGetTokenT< std::vector< Trajectory > > trajectoryInputToken_
void rechitanalysis_matched(TrajectoryStateOnSurface tsos, const TransientTrackingRecHit::ConstRecHitPointer thit, const GluedGeomDet *gluedDet, TrackerHitAssociator &associate, edm::ESHandle< StripClusterParameterEstimator > stripcpe, std::string matchedmonorstereo)
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)
std::vector< RecHitProperties > rechitmatched
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
void bookHistograms(DQMStore::IBooker &ibooker, const edm::Run &run, const edm::EventSetup &es)
std::vector< RecHitProperties > rechitrphi
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)
tuple conf
Definition: dbtoconf.py:185
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 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:41