CMS 3D CMS Logo

TrackingMonitor.h
Go to the documentation of this file.
1 #ifndef TrackingMonitor_H
2 #define TrackingMonitor_H
3 // -*- C++ -*-
4 //
5 // Package: TrackingMonitor
6 // Class: TrackingMonitor
7 //
11 // Original Author: Suchandra Dutta, Giorgia Mila
12 // Created: Thu 28 22:45:30 CEST 2008
13 
14 #include <memory>
15 #include <fstream>
26 
28 
31 
34 
36 
38 
41 
44 
48 
50 
55 
56 class TrackAnalyzer;
58 class VertexMonitor;
59 class GetLumi;
60 class TProfile;
62 
64 public:
65  using MVACollection = std::vector<float>;
66  using QualityMaskCollection = std::vector<unsigned char>;
67 
68  explicit TrackingMonitor(const edm::ParameterSet&);
69  ~TrackingMonitor() override;
70 
71  virtual void setMaxMinBin(
72  std::vector<double>&, std::vector<double>&, std::vector<int>&, double, double, int, double, double, int);
73  virtual void setNclus(const edm::Event&, std::vector<int>&);
74 
75  void analyze(const edm::Event&, const edm::EventSetup&) override;
76  void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
77 
78 private:
79  void doProfileX(TH2* th2, MonitorElement* me);
81 
82  // ----------member data ---------------------------
83 
85  std::string histname; //for naming the histograms according to algorithm used
86 
87  // DQMStore * dqmStore_;
88 
90 
91  // the track analyzer
96 
105 
108 
113 
114  std::vector<std::tuple<edm::EDGetTokenT<MVACollection>, edm::EDGetTokenT<QualityMaskCollection> > > mvaQualityTokens_;
116 
119 
122 
125  std::vector<VertexMonitor*> theVertexMonitor;
127 
128  // Tracks
135 
136  // Good Tracks
138 
139  // Tracking regions
141 
142  // Track Seeds
145  std::vector<MonitorElement*> SeedsVsClusters;
146  std::vector<std::string> ClusterLabels;
147 
148  // Track Candidates
151 
152  // Cluster Properties
153  std::vector<MonitorElement*> NumberOfTrkVsClusters;
157 
158  // Monitoring vs LS
165 
166  // Monitoring vs BX
173 
175 
176  // Monitoring PU
185 
186  // Monitoring vs lumi
195 
196  // add in order to deal with LS transitions
198 
200 
217  // ADD by Mia in order to have GoodTrack plots only for collision
224 
226 
229  int pvNDOF_;
230  const bool forceSCAL_;
231 };
232 
233 #endif //define TrackingMonitor_H
edm::EDGetTokenT< std::vector< SeedStopInfo > > seedStopInfoToken_
edm::EDGetTokenT< edm::View< reco::Track > > trackToken_
StringCutObjectSelector< reco::Track, true > denSelection_
edm::EDGetTokenT< edm::OwnVector< TrackingRegion > > regionToken_
edm::EDGetTokenT< edm::View< TrajectorySeed > > seedToken_
std::vector< MonitorElement * > NumberOfTrkVsClusters
MonitorElement * FractionOfGoodTracks
virtual void setMaxMinBin(std::vector< double > &, std::vector< double > &, std::vector< int > &, double, double, int, double, double, int)
MonitorElement * NumberOfTracksVsBX
edm::EDGetTokenT< OnlineLuminosityRecord > metaDataToken_
MonitorElement * NumberOfRecHitsPerTrackVsBX
MonitorElement * NumberOfRecHitsPerTrackVsLUMI
virtual void setNclus(const edm::Event &, std::vector< int > &)
~TrackingMonitor() override
MonitorElement * NumberEventsOfVsGoodPVtx
GetLumi * theLumiDetails_
MonitorElement * FractionCandidatesOverSeeds
std::string MEFolderName
edm::InputTag pvSrc_
MonitorElement * GoodTracksFractionVsLUMI
Provides a code based selection for trigger and DCS information in order to have no failing filters i...
MonitorElement * NumberOfPVtxVsGoodPVtx
MonitorElement * NumberOfMeanRecHitsPerTrack
MonitorElement * NumberOfTracksVsGoodPVtx
void analyze(const edm::Event &, const edm::EventSetup &) override
MonitorElement * NumberOfStripClustersVsLUMI
MonitorElement * GoodTracksFractionVsLS
MonitorElement * NumberofTracks_Hardvtx_PUvtx
edm::EDGetTokenT< edm::View< reco::Track > > mvaTrackToken_
std::string Quality_
MonitorElement * NumberOfGoodPVtxWO0VsLUMI
edm::InputTag bsSrc_
MonitorElement * NumberOfSeeds
MonitorElement * NumberOfTrackingRegions
MonitorElement * NumberOfGoodPVtxVsLS
edm::EDGetTokenT< edm::View< reco::Track > > allTrackToken_
MonitorElement * NumberOfGoodPVtxVsLUMI
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
MonitorElement * NumberOfTracks_PUvtx
MonitorElement * NumberOfTracksVsLS
MonitorElement * NumberOfGoodPVtxWO0VsLS
MonitorElement * NumberOfTracksVsPUPVtx
edm::EDGetTokenT< LumiScalersCollection > lumiscalersToken_
MonitorElement * NumberEventsOfVsBX
bool runTrackBuildingAnalyzerForSeed
MonitorElement * NumberOfStripClustersVsGoodPVtx
MonitorElement * NumberOfPixelClustersVsGoodPVtx
MonitorElement * NumberOfRecHitsPerTrackVsLS
MonitorElement * GoodTracksFractionVsGoodPVtx
MonitorElement * NumberOfRecHitsPerTrackVsGoodPVtx
edm::EDGetTokenT< TrackingRegionsSeedingLayerSets > regionLayerSetsToken_
std::string histname
edm::ParameterSetID confID_
MonitorElement * NumberOfPixelClustersVsLUMI
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magneticFieldToken_
std::vector< VertexMonitor * > theVertexMonitor
MonitorElement * NumberOfTrkVsPixelClus
MonitorElement * NumberOfTracksVsBXlumi
edm::InputTag stripClusterInputTag_
bool doGeneralPropertiesPlots_
std::vector< unsigned char > QualityMaskCollection
edm::ESGetToken< TransientTrackingRecHitBuilder, TransientRecHitRecord > transientTrackingRecHitBuilderToken_
TrackBuildingAnalyzer * theTrackBuildingAnalyzer
std::string AlgoName_
edm::EDGetTokenT< TrackCandidateCollection > trackCandidateToken_
MonitorElement * NumberOfMeanLayersPerTrack
void doProfileX(TH2 *th2, MonitorElement *me)
tadqm::TrackAnalyzer * theTrackAnalyzer
GenericTriggerEventFlag * genTriggerEventFlag_
edm::EDGetTokenT< reco::CandidateView > regionCandidateToken_
const bool forceSCAL_
MonitorElement * GoodTracksFractionVsBX
edm::InputTag pixelClusterInputTag_
MonitorElement * NumberOfSeeds_lumiFlag
TrackingMonitor(const edm::ParameterSet &)
MonitorElement * NumberofTracks_Hardvtx
MonitorElement * NumberOfTrackCandidates
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClustersToken_
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > stripClustersToken_
MonitorElement * NumberOfGoodPVtxVsBX
MonitorElement * NumberOfTrkVsStripClus
MonitorElement * NumberEventsOfVsLUMI
std::vector< MonitorElement * > SeedsVsClusters
std::vector< std::tuple< edm::EDGetTokenT< MVACollection >, edm::EDGetTokenT< QualityMaskCollection > > > mvaQualityTokens_
MonitorElement * NumberOfTracks_lumiFlag
MonitorElement * NumberOfTrkVsClus
StringCutObjectSelector< reco::Track, true > numSelection_
std::vector< float > MVACollection
edm::EDGetTokenT< reco::BeamSpot > bsSrcToken_
MonitorElement * NumberOfTracks
edm::EDGetTokenT< reco::VertexCollection > pvSrcToken_
Definition: Run.h:45
MonitorElement * NumberEventsOfVsLS
MonitorElement * NumberOfTracksVsLUMI
std::vector< std::string > ClusterLabels
MonitorElement * NumberOfGoodPVtxWO0VsBX
std::string builderName