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
10 
13 
15 
17 
25 
38 
39 #include <TROOT.h>
40 #include <TTree.h>
41 #include <TFile.h>
42 #include <TH1F.h>
43 #include <TProfile.h>
44 
51 
52 //--- for SimHit association
66 
68 
70 
71 #include <string>
72 
73 class SiStripDetCabling;
74 class SiStripDCSStatus;
75 
77 public:
79 
81 
82  // ALL
83  //Simple hits MEs either from matched either
84  //from hit1D, hit2D in all subdetectors.
85  struct SimpleHitsMEs {
98 
103 
118  };
119 
120  struct LayerMEs { // MEs for Layer Level
160 
169 
180  };
181 
182  struct StereoAndMatchedMEs { // MEs for stereo and matched hits
183 
211 
220  };
221 
223  float x;
224  float y;
225  float z;
226  float resolxx;
227  float resolxy;
228  float resolyy;
229  float resolxxMF; // in Measurement Frame
230  // float phi;
231  float resx;
232  float resy;
233  float resxMF; // in Measurement Frame
234  float pullx;
235  float pully;
236  float pullxMF; // in Measurement Frame
237  float trackangle;
239  // float trackangle2;
240  float trackwidth;
242  int category;
243  float thickness;
244  int clusiz;
245  float cluchg;
246  };
247 
248 protected:
249  void analyze(const edm::Event& e, const edm::EventSetup& c) override;
250  void bookHistograms(DQMStore::IBooker& ibooker, const edm::Run& run, const edm::EventSetup& es) override;
251 
252 private:
257 
259 
264 
266 
389 
391  std::vector<PSimHit> matched;
392  std::map<std::string, LayerMEs> LayerMEsMap;
393  std::map<std::string, StereoAndMatchedMEs> StereoAndMatchedMEsMap;
394  std::map<std::string, std::vector<uint32_t> > LayerDetMap;
395  std::map<std::string, std::vector<uint32_t> > StereoAndMatchedDetMap;
396  std::pair<LocalPoint, LocalVector> projectHit(const PSimHit& hit,
397  const StripGeomDetUnit* stripDet,
398  const BoundPlane& plane);
399 
400  LocalVector driftDirection(const StripGeomDetUnit* det) const;
401 
402  MonitorElement* Fit_SliceY(TH2F* Histo2D);
403 
404  void createMEs(DQMStore::IBooker& ibooker, const edm::EventSetup& es);
405  void createSimpleHitsMEs(DQMStore::IBooker& ibooker);
408 
410  const char* ParameterSetLabel,
411  const char* HistoName,
412  const char* HistoTitle);
414  const char* ParameterSetLabel,
415  const char* HistoName,
416  const char* HistoTitle);
417 
418  inline void fillME(MonitorElement* ME, float value1) {
419  if (ME != nullptr)
420  ME->Fill(value1);
421  }
422  inline void fillME(MonitorElement* ME, float value1, float value2) {
423  if (ME != nullptr)
424  ME->Fill(value1, value2);
425  }
426  inline void fillME(MonitorElement* ME, float value1, float value2, float value3) {
427  if (ME != nullptr)
428  ME->Fill(value1, value2, value3);
429  }
430  inline void fillME(MonitorElement* ME, float value1, float value2, float value3, float value4) {
431  if (ME != nullptr)
432  ME->Fill(value1, value2, value3, value4);
433  }
434 
438 
440 
441  void rechitanalysis(LocalVector ldir,
442  const TrackingRecHit* rechit,
443  const StripGeomDetUnit* stripdet,
444  const StripClusterParameterEstimator* stripcpe,
445  TrackerHitAssociator& associate,
446  bool simplehit1or2D);
447 
450  const TrackingRecHit* rechit,
451  const GluedGeomDet* gluedDet,
452  TrackerHitAssociator& associate,
453  const StripClusterParameterEstimator* stripcpe,
454  const MatchStatus matchedmonorstereo);
455 
458 };
459 
460 #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