CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups 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
32 
33 #include <TROOT.h>
34 #include <TTree.h>
35 #include <TFile.h>
36 #include <TH1F.h>
37 #include <TProfile.h>
38 #include <string>
39 
46 
47 //--- for SimHit association
63 
64 class SiStripDetCabling;
65 class SiStripDCSStatus;
66 
68 public:
70 
72 
73  // ALL
74  //Simple hits MEs either from matched either
75  //from hit1D, hit2D in all subdetectors.
76  struct SimpleHitsMEs {
89 
94 
109  };
110 
111  struct LayerMEs { // MEs for Layer Level
151 
160 
171  };
172 
173  struct StereoAndMatchedMEs { // MEs for stereo and matched hits
174 
202 
211  };
212 
214  float x;
215  float y;
216  float z;
217  float resolxx;
218  float resolxy;
219  float resolyy;
220  float resolxxMF; // in Measurement Frame
221  // float phi;
222  float resx;
223  float resy;
224  float resxMF; // in Measurement Frame
225  float pullx;
226  float pully;
227  float pullxMF; // in Measurement Frame
228  float trackangle;
230  // float trackangle2;
231  float trackwidth;
233  int category;
234  float thickness;
235  int clusiz;
236  float cluchg;
237  };
238 
239 protected:
240  void analyze(const edm::Event& e, const edm::EventSetup& c) override;
241  void bookHistograms(DQMStore::IBooker& ibooker, const edm::Run& run, const edm::EventSetup& es) override;
242 
243 private:
248 
250 
255 
257 
380 
382  std::vector<PSimHit> matched;
383  std::map<std::string, LayerMEs> LayerMEsMap;
384  std::map<std::string, StereoAndMatchedMEs> StereoAndMatchedMEsMap;
385  std::map<std::string, std::vector<uint32_t> > LayerDetMap;
386  std::map<std::string, std::vector<uint32_t> > StereoAndMatchedDetMap;
387  std::pair<LocalPoint, LocalVector> projectHit(const PSimHit& hit,
388  const StripGeomDetUnit* stripDet,
389  const BoundPlane& plane);
390 
391  LocalVector driftDirection(const StripGeomDetUnit* det) const;
392 
393  MonitorElement* Fit_SliceY(TH2F* Histo2D);
394 
395  void createMEs(DQMStore::IBooker& ibooker, const edm::EventSetup& es);
396  void createSimpleHitsMEs(DQMStore::IBooker& ibooker);
399 
401  const char* ParameterSetLabel,
402  const char* HistoName,
403  const char* HistoTitle);
405  const char* ParameterSetLabel,
406  const char* HistoName,
407  const char* HistoTitle);
408 
409  inline void fillME(MonitorElement* ME, float value1) {
410  if (ME != nullptr)
411  ME->Fill(value1);
412  }
413  inline void fillME(MonitorElement* ME, float value1, float value2) {
414  if (ME != nullptr)
415  ME->Fill(value1, value2);
416  }
417  inline void fillME(MonitorElement* ME, float value1, float value2, float value3) {
418  if (ME != nullptr)
419  ME->Fill(value1, value2, value3);
420  }
421  inline void fillME(MonitorElement* ME, float value1, float value2, float value3, float value4) {
422  if (ME != nullptr)
423  ME->Fill(value1, value2, value3, value4);
424  }
425 
429 
431 
432  void rechitanalysis(LocalVector ldir,
433  const TrackingRecHit* rechit,
434  const StripGeomDetUnit* stripdet,
435  const StripClusterParameterEstimator* stripcpe,
436  TrackerHitAssociator& associate,
437  bool simplehit1or2D);
438 
441  const TrackingRecHit* rechit,
442  const GluedGeomDet* gluedDet,
443  TrackerHitAssociator& associate,
444  const StripClusterParameterEstimator* stripcpe,
445  const MatchStatus matchedmonorstereo);
446 
449 };
450 
451 #endif
SiStripTrackingRecHitsValid(const edm::ParameterSet &conf)
void fillME(MonitorElement *ME, float value1, float value2, float value3, float value4)
const edm::EventSetup & c
std::map< std::string, std::vector< uint32_t > > StereoAndMatchedDetMap
std::map< std::string, StereoAndMatchedMEs > StereoAndMatchedMEsMap
void rechitanalysis(LocalVector ldir, const TrackingRecHit *rechit, const StripGeomDetUnit *stripdet, const StripClusterParameterEstimator *stripcpe, TrackerHitAssociator &associate, bool simplehit1or2D)
void fillME(MonitorElement *ME, float value1)
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > m_topoToken
void fillME(MonitorElement *ME, float value1, float value2, float value3)
MonitorElement * Fit_SliceY(TH2F *Histo2D)
void rechitanalysis_matched(LocalVector ldir, const TrackingRecHit *rechit, const GluedGeomDet *gluedDet, TrackerHitAssociator &associate, const StripClusterParameterEstimator *stripcpe, const MatchStatus matchedmonorstereo)
std::map< std::string, LayerMEs > LayerMEsMap
const edm::ESGetToken< StripClusterParameterEstimator, TkStripCPERecord > m_stripCPEToken
edm::ESWatcher< SiStripDetCablingRcd > watchSiStripDetCablingRcd_
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > m_topoTokenBR
void createLayerMEs(DQMStore::IBooker &ibooker, std::string label)
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > m_geomToken
MonitorElement * bookME1D(DQMStore::IBooker &ibooker, const char *ParameterSetLabel, const char *HistoName, const char *HistoTitle)
void Fill(long long x)
void analyze(const edm::Event &e, const edm::EventSetup &c) override
Definition: ME.h:11
char const * label
void createSimpleHitsMEs(DQMStore::IBooker &ibooker)
TrackerHitAssociator::Config trackerHitAssociatorConfig_
edm::EDGetTokenT< std::vector< reco::Track > > tracksInputToken_
void createMEs(DQMStore::IBooker &ibooker, const edm::EventSetup &es)
std::pair< LocalPoint, LocalVector > projectHit(const PSimHit &hit, const StripGeomDetUnit *stripDet, const BoundPlane &plane)
void createStereoAndMatchedMEs(DQMStore::IBooker &ibooker, std::string label)
std::map< std::string, std::vector< uint32_t > > LayerDetMap
const edm::ESGetToken< SiStripDetCabling, SiStripDetCablingRcd > m_SiStripDetCablingToken
std::string HistoName
void fillME(MonitorElement *ME, float value1, float value2)
void bookHistograms(DQMStore::IBooker &ibooker, const edm::Run &run, const edm::EventSetup &es) override
MonitorElement * bookMEProfile(DQMStore::IBooker &ibooker, const char *ParameterSetLabel, const char *HistoName, const char *HistoTitle)
LocalVector driftDirection(const StripGeomDetUnit *det) const
Definition: Run.h:45