CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
TrackingMonitor Class Reference

#include <DQM/TrackerMonitorTrack/src/TrackingMonitor.cc>

Inheritance diagram for TrackingMonitor:
DQMEDAnalyzer edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > > edm::stream::EDAnalyzerBase edm::EDConsumerBase

Public Types

using MVACollection = std::vector< float >
 
using QualityMaskCollection = std::vector< unsigned char >
 
- Public Types inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDAnalyzerBase
typedef EDAnalyzerAdaptorBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
virtual void beginJob (void)
 
void beginLuminosityBlock (const edm::LuminosityBlock &lumi, const edm::EventSetup &eSetup) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void endRun (const edm::Run &, const edm::EventSetup &) override
 
virtual void setMaxMinBin (std::vector< double > &, std::vector< double > &, std::vector< int > &, double, double, int, double, double, int)
 
virtual void setNclus (const edm::Event &, std::vector< int > &)
 
 TrackingMonitor (const edm::ParameterSet &)
 
 ~TrackingMonitor () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void beginRun (edm::Run const &, edm::EventSetup const &) final
 
void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer (void)
 
void endLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
void endRunSummary (edm::Run const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
uint32_t streamId () const
 
- Public Member Functions inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::stream::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDAnalyzerBase () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void doProfileX (TH2 *th2, MonitorElement *me)
 
void doProfileX (MonitorElement *th2m, MonitorElement *me)
 

Private Attributes

std::string AlgoName_
 
edm::EDGetTokenT< edm::View< reco::Track > > allTrackToken_
 
edm::InputTag bsSrc_
 
edm::EDGetTokenT< reco::BeamSpotbsSrcToken_
 
std::string builderName
 
std::vector< std::string > ClusterLabels
 
edm::ParameterSetID confID_
 
StringCutObjectSelector< reco::Track, true > denSelection_
 
bool doAllPlots
 
bool doAllSeedPlots
 
bool doDCAPlots_
 
bool doFractionPlot_
 
bool doGeneralPropertiesPlots_
 
bool doHitPropertiesPlots_
 
bool doLumiAnalysis
 
bool doMVAPlots
 
bool doPlotsVsBX_
 
bool doPlotsVsBXlumi_
 
bool doPlotsVsGoodPVtx_
 
bool doPlotsVsLUMI_
 
bool doProfilesVsLS_
 
bool doPUmonitoring_
 
bool doRegionPlots
 
bool doSeedLumiAnalysis_
 
bool doSeedNumberPlot
 
bool doSeedVsClusterPlot
 
bool doTkCandPlots
 
bool doTrackerSpecific_
 
MonitorElementFractionCandidatesOverSeeds
 
MonitorElementFractionOfGoodTracks
 
GenericTriggerEventFlaggenTriggerEventFlag_
 
MonitorElementGoodTracksFractionVsBX
 
MonitorElementGoodTracksFractionVsGoodPVtx
 
MonitorElementGoodTracksFractionVsLS
 
MonitorElementGoodTracksFractionVsLUMI
 
std::string histname
 
edm::EDGetTokenT< LumiScalersCollectionlumiscalersToken_
 
std::vector< std::tuple< edm::EDGetTokenT< MVACollection >, edm::EDGetTokenT< QualityMaskCollection > > > mvaQualityTokens_
 
edm::EDGetTokenT< edm::View< reco::Track > > mvaTrackToken_
 
MonitorElementNumberEventsOfVsBX
 
MonitorElementNumberEventsOfVsGoodPVtx
 
MonitorElementNumberEventsOfVsLS
 
MonitorElementNumberEventsOfVsLUMI
 
MonitorElementNumberOfGoodPVtxVsBX
 
MonitorElementNumberOfGoodPVtxVsLS
 
MonitorElementNumberOfGoodPVtxVsLUMI
 
MonitorElementNumberOfGoodPVtxWO0VsBX
 
MonitorElementNumberOfGoodPVtxWO0VsLS
 
MonitorElementNumberOfGoodPVtxWO0VsLUMI
 
MonitorElementNumberOfMeanLayersPerTrack
 
MonitorElementNumberOfMeanRecHitsPerTrack
 
MonitorElementNumberOfPixelClustersVsGoodPVtx
 
MonitorElementNumberOfPixelClustersVsLUMI
 
MonitorElementNumberOfPVtxVsGoodPVtx
 
MonitorElementNumberOfRecHitsPerTrackVsBX
 
MonitorElementNumberOfRecHitsPerTrackVsGoodPVtx
 
MonitorElementNumberOfRecHitsPerTrackVsLS
 
MonitorElementNumberOfRecHitsPerTrackVsLUMI
 
MonitorElementNumberOfSeeds
 
MonitorElementNumberOfSeeds_lumiFlag
 
MonitorElementNumberOfStripClustersVsGoodPVtx
 
MonitorElementNumberOfStripClustersVsLUMI
 
MonitorElementNumberOfTrackCandidates
 
MonitorElementNumberOfTrackingRegions
 
MonitorElementNumberOfTracks
 
MonitorElementNumberOfTracks_lumiFlag
 
MonitorElementNumberOfTracksVsBX
 
MonitorElementNumberOfTracksVsBXlumi
 
MonitorElementNumberOfTracksVsGoodPVtx
 
MonitorElementNumberOfTracksVsLS
 
MonitorElementNumberOfTracksVsLUMI
 
MonitorElementNumberOfTracksVsPUPVtx
 
MonitorElementNumberOfTrkVsClus
 
std::vector< MonitorElement * > NumberOfTrkVsClusters
 
MonitorElementNumberOfTrkVsPixelClus
 
MonitorElementNumberOfTrkVsStripClus
 
StringCutObjectSelector< reco::Track, true > numSelection_
 
edm::InputTag pixelClusterInputTag_
 
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClustersToken_
 
int pvNDOF_
 
edm::InputTag pvSrc_
 
edm::EDGetTokenT< reco::VertexCollectionpvSrcToken_
 
std::string Quality_
 
edm::EDGetTokenT< reco::CandidateViewregionCandidateToken_
 
edm::EDGetTokenT< edm::OwnVector< TrackingRegion > > regionToken_
 
bool runTrackBuildingAnalyzerForSeed
 
edm::EDGetTokenT< std::vector< SeedStopInfo > > seedStopInfoToken_
 
std::vector< MonitorElement * > SeedsVsClusters
 
edm::EDGetTokenT< edm::View< TrajectorySeed > > seedToken_
 
edm::InputTag stripClusterInputTag_
 
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > stripClustersToken_
 
GetLumitheLumiDetails_
 
dqm::TrackAnalyzertheTrackAnalyzer
 
TrackBuildingAnalyzertheTrackBuildingAnalyzer
 
edm::ESHandle< TransientTrackingRecHitBuildertheTTRHBuilder
 
std::vector< VertexMonitor * > theVertexMonitor
 
edm::EDGetTokenT< TrackCandidateCollectiontrackCandidateToken_
 
edm::EDGetTokenT< edm::View< reco::Track > > trackToken_
 

Additional Inherited Members

- Static Public Member Functions inherited from DQMEDAnalyzer
static std::shared_ptr< dqmDetails::NoCacheglobalBeginLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *)
 
static std::shared_ptr< dqmDetails::NoCacheglobalBeginRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *)
 
static void globalEndLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *, dqmDetails::NoCache *)
 
static void globalEndRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *, dqmDetails::NoCache *)
 
- Static Public Member Functions inherited from edm::stream::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Monitoring source for general quantities related to tracks.

Definition at line 54 of file TrackingMonitor.h.

Member Typedef Documentation

using TrackingMonitor::MVACollection = std::vector<float>

Definition at line 57 of file TrackingMonitor.h.

using TrackingMonitor::QualityMaskCollection = std::vector<unsigned char>

Definition at line 58 of file TrackingMonitor.h.

Constructor & Destructor Documentation

TrackingMonitor::TrackingMonitor ( const edm::ParameterSet iConfig)
explicit

Definition at line 45 of file TrackingMonitor.cc.

References AlgoName_, allTrackToken_, bsSrc_, bsSrcToken_, EnergyCorrector::c, edm::EDConsumerBase::consumesCollector(), doFractionPlot_, doMVAPlots, doPlotsVsBX_, doPlotsVsBXlumi_, doPlotsVsGoodPVtx_, doPlotsVsLUMI_, doPUmonitoring_, doRegionPlots, edm::ParameterSet::getParameter(), mps_fire::i, edm::InputTag::label(), lumiscalersToken_, mvaQualityTokens_, mvaTrackToken_, pixelClusterInputTag_, pixelClustersToken_, pvSrc_, pvSrcToken_, Quality_, regionCandidateToken_, regionToken_, seedStopInfoToken_, seedToken_, AlCaHLTBitMon_QueryRunRegistry::string, stripClusterInputTag_, stripClustersToken_, GlobalPosition_Frontier_DevDB_cff::tag, theLumiDetails_, theTrackAnalyzer, theVertexMonitor, trackCandidateToken_, findElectronsInSiStrips_cfi::trackProducer, trackToken_, and edm::vector_transform().

46  : confID_ ( iConfig.id() )
48  , NumberOfTracks(nullptr)
51  // , NumberOfGoodTracks(NULL)
52  , FractionOfGoodTracks(nullptr)
53  , NumberOfTrackingRegions(nullptr)
54  , NumberOfSeeds(nullptr)
55  , NumberOfSeeds_lumiFlag(nullptr)
56  , NumberOfTrackCandidates(nullptr)
58  // , NumberOfGoodTrkVsClus(NULL)
59  , NumberEventsOfVsLS(nullptr)
60  , NumberOfTracksVsLS(nullptr)
61  // , NumberOfGoodTracksVsLS(NULL)
62  , GoodTracksFractionVsLS(nullptr)
63  // , GoodTracksNumberOfRecHitsPerTrackVsLS(NULL)
64  // ADD by Mia for PU monitoring
65  // vertex plots to be moved in ad hoc class
66  , NumberOfGoodPVtxVsLS(nullptr)
67  , NumberOfGoodPVtxWO0VsLS(nullptr)
68  , NumberEventsOfVsBX (nullptr)
69  , NumberOfTracksVsBX(nullptr)
70  , GoodTracksFractionVsBX(nullptr)
72  , NumberOfGoodPVtxVsBX(nullptr)
73  , NumberOfGoodPVtxWO0VsBX(nullptr)
74  , NumberOfTracksVsBXlumi(nullptr)
75  , NumberOfTracksVsGoodPVtx(nullptr)
76  , NumberOfTracksVsPUPVtx(nullptr)
77  , NumberEventsOfVsGoodPVtx(nullptr)
80  , NumberOfPVtxVsGoodPVtx(nullptr)
83  , NumberEventsOfVsLUMI(nullptr)
84  , NumberOfTracksVsLUMI(nullptr)
85  , GoodTracksFractionVsLUMI(nullptr)
87  , NumberOfGoodPVtxVsLUMI(nullptr)
88  , NumberOfGoodPVtxWO0VsLUMI(nullptr)
91  , NumberOfTracks_lumiFlag(nullptr)
92  // , NumberOfGoodTracks_lumiFlag(NULL)
93 
94  , builderName ( iConfig.getParameter<std::string>("TTRHBuilder"))
95  , doTrackerSpecific_ ( iConfig.getParameter<bool>("doTrackerSpecific") )
96  , doLumiAnalysis ( iConfig.getParameter<bool>("doLumiAnalysis"))
97  , doProfilesVsLS_ ( iConfig.getParameter<bool>("doProfilesVsLS"))
98  , doAllPlots ( iConfig.getParameter<bool>("doAllPlots"))
99  , doGeneralPropertiesPlots_( iConfig.getParameter<bool>("doGeneralPropertiesPlots"))
100  , doHitPropertiesPlots_ ( iConfig.getParameter<bool>("doHitPropertiesPlots"))
101  , doPUmonitoring_ ( iConfig.getParameter<bool>("doPUmonitoring") )
102  , genTriggerEventFlag_(new GenericTriggerEventFlag(iConfig.getParameter<edm::ParameterSet>("genericTriggerEventPSet"),consumesCollector(), *this))
103  , numSelection_ (iConfig.getParameter<std::string>("numCut"))
104  , denSelection_ (iConfig.getParameter<std::string>("denCut"))
105  , pvNDOF_ ( iConfig.getParameter<int> ("pvNDOF") )
106 {
107 
109  theTrackAnalyzer = new dqm::TrackAnalyzer( iConfig,c );
110 
111  // input tags for collections from the configuration
112  bsSrc_ = iConfig.getParameter<edm::InputTag>("beamSpot");
113  pvSrc_ = iConfig.getParameter<edm::InputTag>("primaryVertex");
114  bsSrcToken_ = consumes<reco::BeamSpot>(bsSrc_);
115  pvSrcToken_ = mayConsume<reco::VertexCollection>(pvSrc_);
116 
117  lumiscalersToken_ = consumes<LumiScalersCollection>(iConfig.getParameter<edm::InputTag>("scal") );
118 
119  edm::InputTag alltrackProducer = iConfig.getParameter<edm::InputTag>("allTrackProducer");
120  edm::InputTag trackProducer = iConfig.getParameter<edm::InputTag>("TrackProducer");
121  edm::InputTag tcProducer = iConfig.getParameter<edm::InputTag>("TCProducer");
122  edm::InputTag seedProducer = iConfig.getParameter<edm::InputTag>("SeedProducer");
123  allTrackToken_ = consumes<edm::View<reco::Track> >(alltrackProducer);
124  trackToken_ = consumes<edm::View<reco::Track> >(trackProducer);
125  trackCandidateToken_ = consumes<TrackCandidateCollection>(tcProducer);
126  seedToken_ = consumes<edm::View<TrajectorySeed> >(seedProducer);
127  seedStopInfoToken_ = consumes<std::vector<SeedStopInfo> >(tcProducer);
128 
129  doMVAPlots = iConfig.getParameter<bool>("doMVAPlots");
130  if(doMVAPlots) {
131  mvaQualityTokens_ = edm::vector_transform(iConfig.getParameter<std::vector<std::string> >("MVAProducers"),
132  [&](const std::string& tag) {
133  return std::make_tuple(consumes<MVACollection>(edm::InputTag(tag, "MVAValues")),
134  consumes<QualityMaskCollection>(edm::InputTag(tag, "QualityMasks")));
135  });
136  mvaTrackToken_ = consumes<edm::View<reco::Track> >(iConfig.getParameter<edm::InputTag>("TrackProducerForMVA"));
137  }
138 
139  doRegionPlots = iConfig.getParameter<bool>("doRegionPlots");
140  if(doRegionPlots) {
141  regionToken_ = consumes<edm::OwnVector<TrackingRegion> >(iConfig.getParameter<edm::InputTag>("RegionProducer"));
142  regionCandidateToken_ = consumes<reco::CandidateView>(iConfig.getParameter<edm::InputTag>("RegionCandidates"));
143  }
144 
147  stripClustersToken_ = mayConsume<edmNew::DetSetVector<SiStripCluster> > (stripClusterInputTag_);
148  pixelClustersToken_ = mayConsume<edmNew::DetSetVector<SiPixelCluster> > (pixelClusterInputTag_);
149 
150  doFractionPlot_ = true;
151  if (alltrackProducer.label()==trackProducer.label()) doFractionPlot_ = false;
152 
153  Quality_ = iConfig.getParameter<std::string>("Quality");
154  AlgoName_ = iConfig.getParameter<std::string>("AlgoName");
155 
156  // get flag from the configuration
157  doPlotsVsBXlumi_ = iConfig.getParameter<bool>("doPlotsVsBXlumi");
158  if ( doPlotsVsBXlumi_ )
159  theLumiDetails_ = new GetLumi( iConfig.getParameter<edm::ParameterSet>("BXlumiSetup"), c );
160  doPlotsVsGoodPVtx_ = iConfig.getParameter<bool>("doPlotsVsGoodPVtx");
161  doPlotsVsLUMI_ = iConfig.getParameter<bool>("doPlotsVsLUMI");
162  doPlotsVsBX_ = iConfig.getParameter<bool>("doPlotsVsBX");
163 
164  if ( doPUmonitoring_ ) {
165 
166  std::vector<edm::InputTag> primaryVertexInputTags = iConfig.getParameter<std::vector<edm::InputTag> >("primaryVertexInputTags");
167  std::vector<edm::InputTag> selPrimaryVertexInputTags = iConfig.getParameter<std::vector<edm::InputTag> >("selPrimaryVertexInputTags");
168  std::vector<std::string> pvLabels = iConfig.getParameter<std::vector<std::string> > ("pvLabels");
169 
170  if (primaryVertexInputTags.size()==pvLabels.size() and primaryVertexInputTags.size()==selPrimaryVertexInputTags.size()) {
171  for (size_t i=0; i<primaryVertexInputTags.size(); i++) {
172  edm::InputTag iPVinputTag = primaryVertexInputTags[i];
173  edm::InputTag iSelPVinputTag = selPrimaryVertexInputTags[i];
174  std::string iPVlabel = pvLabels[i];
175 
176  theVertexMonitor.push_back(new VertexMonitor(iConfig,iPVinputTag,iSelPVinputTag,iPVlabel,c) );
177  }
178  }
179  }
180 
181 }
edm::EDGetTokenT< std::vector< SeedStopInfo > > seedStopInfoToken_
edm::EDGetTokenT< edm::View< reco::Track > > trackToken_
T getParameter(std::string const &) const
edm::EDGetTokenT< edm::OwnVector< TrackingRegion > > regionToken_
edm::EDGetTokenT< edm::View< TrajectorySeed > > seedToken_
MonitorElement * FractionOfGoodTracks
MonitorElement * NumberOfTracksVsBX
MonitorElement * NumberOfRecHitsPerTrackVsBX
MonitorElement * NumberOfRecHitsPerTrackVsLUMI
MonitorElement * NumberEventsOfVsGoodPVtx
GetLumi * theLumiDetails_
ParameterSetID id() const
MonitorElement * FractionCandidatesOverSeeds
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
auto vector_transform(std::vector< InputType > const &input, Function predicate) -> std::vector< typename std::remove_cv< typename std::remove_reference< decltype(predicate(input.front()))>::type >::type >
Definition: transform.h:11
MonitorElement * NumberOfStripClustersVsLUMI
MonitorElement * GoodTracksFractionVsLS
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
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
MonitorElement * NumberOfTracksVsLS
MonitorElement * NumberOfGoodPVtxWO0VsLS
MonitorElement * NumberOfTracksVsPUPVtx
edm::EDGetTokenT< LumiScalersCollection > lumiscalersToken_
MonitorElement * NumberEventsOfVsBX
MonitorElement * NumberOfStripClustersVsGoodPVtx
MonitorElement * NumberOfPixelClustersVsGoodPVtx
dqm::TrackAnalyzer * theTrackAnalyzer
MonitorElement * GoodTracksFractionVsGoodPVtx
MonitorElement * NumberOfRecHitsPerTrackVsGoodPVtx
edm::ParameterSetID confID_
MonitorElement * NumberOfPixelClustersVsLUMI
std::vector< VertexMonitor * > theVertexMonitor
MonitorElement * NumberOfTracksVsBXlumi
edm::InputTag stripClusterInputTag_
bool doGeneralPropertiesPlots_
TrackBuildingAnalyzer * theTrackBuildingAnalyzer
std::string AlgoName_
edm::EDGetTokenT< TrackCandidateCollection > trackCandidateToken_
MonitorElement * NumberOfMeanLayersPerTrack
StringCutObjectSelector< reco::Track, true > denSelection_
StringCutObjectSelector< reco::Track, true > numSelection_
GenericTriggerEventFlag * genTriggerEventFlag_
edm::EDGetTokenT< reco::CandidateView > regionCandidateToken_
MonitorElement * GoodTracksFractionVsBX
edm::InputTag pixelClusterInputTag_
MonitorElement * NumberOfSeeds_lumiFlag
MonitorElement * NumberOfTrackCandidates
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClustersToken_
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > stripClustersToken_
MonitorElement * NumberOfGoodPVtxVsBX
MonitorElement * NumberEventsOfVsLUMI
std::vector< std::tuple< edm::EDGetTokenT< MVACollection >, edm::EDGetTokenT< QualityMaskCollection > > > mvaQualityTokens_
MonitorElement * NumberOfTracks_lumiFlag
edm::EDGetTokenT< reco::BeamSpot > bsSrcToken_
MonitorElement * NumberOfTracks
edm::EDGetTokenT< reco::VertexCollection > pvSrcToken_
MonitorElement * NumberEventsOfVsLS
MonitorElement * NumberOfTracksVsLUMI
MonitorElement * NumberOfGoodPVtxWO0VsBX
std::string builderName
TrackingMonitor::~TrackingMonitor ( )
override

Definition at line 184 of file TrackingMonitor.cc.

References doPUmonitoring_, genTriggerEventFlag_, mps_fire::i, theTrackAnalyzer, theTrackBuildingAnalyzer, and theVertexMonitor.

185 {
188  if ( doPUmonitoring_ )
189  for (size_t i=0; i<theVertexMonitor.size(); i++)
190  if (theVertexMonitor[i]) delete theVertexMonitor[i];
192 }
dqm::TrackAnalyzer * theTrackAnalyzer
std::vector< VertexMonitor * > theVertexMonitor
TrackBuildingAnalyzer * theTrackBuildingAnalyzer
GenericTriggerEventFlag * genTriggerEventFlag_

Member Function Documentation

void TrackingMonitor::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 734 of file TrackingMonitor.cc.

References funct::abs(), GenericTriggerEventFlag::accept(), allTrackToken_, dqm::TrackAnalyzer::analyze(), TrackBuildingAnalyzer::analyze(), edm::View< T >::begin(), bsSrcToken_, builderName, edm::EventBase::bunchCrossing(), ClusterLabels, denSelection_, doAllPlots, doAllSeedPlots, doFractionPlot_, doGeneralPropertiesPlots_, doLumiAnalysis, doMVAPlots, doPlotsVsBX_, doPlotsVsBXlumi_, doPlotsVsGoodPVtx_, doPlotsVsLUMI_, doProfilesVsLS_, doPUmonitoring_, doRegionPlots, doSeedLumiAnalysis_, doSeedNumberPlot, doSeedVsClusterPlot, doTkCandPlots, doTrackerSpecific_, edm::View< T >::empty(), edm::View< T >::end(), MonitorElement::Fill(), HcalObjRepresent::Fill(), cropTnPTrees::frac, FractionCandidatesOverSeeds, FractionOfGoodTracks, genTriggerEventFlag_, edm::EventSetup::get(), edm::Event::getByToken(), GetLumi::getValue(), GoodTracksFractionVsBX, GoodTracksFractionVsGoodPVtx, GoodTracksFractionVsLS, GoodTracksFractionVsLUMI, mps_fire::i, edm::EventBase::id(), reco::Vertex::isFake(), edm::HandleBase::isValid(), edm::EventID::luminosityBlock(), lumiscalersToken_, mvaQualityTokens_, mvaTrackToken_, reco::Vertex::ndof(), NumberEventsOfVsBX, NumberEventsOfVsGoodPVtx, NumberEventsOfVsLS, NumberEventsOfVsLUMI, NumberOfGoodPVtxVsBX, NumberOfGoodPVtxVsLS, NumberOfGoodPVtxVsLUMI, NumberOfGoodPVtxWO0VsBX, NumberOfGoodPVtxWO0VsLS, NumberOfGoodPVtxWO0VsLUMI, NumberOfMeanLayersPerTrack, NumberOfMeanRecHitsPerTrack, NumberOfPixelClustersVsGoodPVtx, NumberOfPixelClustersVsLUMI, NumberOfPVtxVsGoodPVtx, NumberOfRecHitsPerTrackVsBX, NumberOfRecHitsPerTrackVsGoodPVtx, NumberOfRecHitsPerTrackVsLS, NumberOfRecHitsPerTrackVsLUMI, NumberOfSeeds, NumberOfSeeds_lumiFlag, NumberOfStripClustersVsGoodPVtx, NumberOfStripClustersVsLUMI, NumberOfTrackCandidates, NumberOfTrackingRegions, NumberOfTracks, NumberOfTracks_lumiFlag, NumberOfTracksVsBX, NumberOfTracksVsBXlumi, NumberOfTracksVsGoodPVtx, NumberOfTracksVsLS, NumberOfTracksVsLUMI, NumberOfTracksVsPUPVtx, NumberOfTrkVsClusters, numSelection_, GenericTriggerEventFlag::on(), reco::Vertex::position(), edm::Handle< T >::product(), MetAnalyzer::pv(), pvNDOF_, pvSrcToken_, regionCandidateToken_, regionToken_, runTrackBuildingAnalyzerForSeed, seedStopInfoToken_, SeedsVsClusters, seedToken_, dqm::TrackAnalyzer::setBX(), dqm::TrackAnalyzer::setLumi(), setNclus(), dqm::TrackAnalyzer::setNumberOfGoodVertices(), edm::View< T >::size(), theLumiDetails_, theTrackAnalyzer, theTrackBuildingAnalyzer, theTTRHBuilder, theVertexMonitor, HiIsolationCommonParameters_cff::track, trackCandidateToken_, findElectronsInSiStrips_cfi::trackCollection, reco::Vertex::tracksSize(), trackToken_, and reco::Vertex::z().

735 {
736 
737  // Filter out events if Trigger Filtering is requested
738  if (genTriggerEventFlag_->on()&& ! genTriggerEventFlag_->accept( iEvent, iSetup) ) return;
739 
740  float lumi = -1.;
742  iEvent.getByToken(lumiscalersToken_, lumiScalers);
743  if ( lumiScalers.isValid() && !lumiScalers->empty() ) {
744  LumiScalersCollection::const_iterator scalit = lumiScalers->begin();
745  lumi = scalit->instantLumi();
746  } else
747  lumi = -1.;
748 
749  if (doPlotsVsLUMI_ || doAllPlots)
750  NumberEventsOfVsLUMI->Fill(lumi);
751 
752  // Analyse the tracks
753  // if the collection is empty, do not fill anything
754  // ---------------------------------------------------------------------------------//
755 
756  size_t bx = iEvent.bunchCrossing();
757  if ( doPlotsVsBX_ || doAllPlots )
759 
760  // get the track collection
762  iEvent.getByToken(trackToken_, trackHandle);
763 
764  int numberOfTracks_den = 0;
765  edm::Handle<edm::View<reco::Track> > allTrackHandle;
766  iEvent.getByToken(allTrackToken_,allTrackHandle);
767  if (allTrackHandle.isValid()) {
768  for ( edm::View<reco::Track>::const_iterator track = allTrackHandle->begin();
769  track != allTrackHandle->end(); ++track ) {
770 
771  if ( denSelection_(*track) )
772  numberOfTracks_den++;
773  }
774  }
775 
777  iEvent.getByToken(pvSrcToken_, pvHandle );
778  reco::Vertex const * pv0 = nullptr;
779  if (pvHandle.isValid()) {
780  pv0 = &pvHandle->front();
781  //--- pv fake (the pv collection should have size==1 and the pv==beam spot)
782  if ( pv0->isFake() || pv0->tracksSize()==0
783  // definition of goodOfflinePrimaryVertex
784  || pv0->ndof() < pvNDOF_ || pv0->z() > 24.) pv0 = nullptr;
785  }
786 
787 
788  if (trackHandle.isValid()) {
789 
790  int numberOfTracks = trackHandle->size();
791  int numberOfTracks_num = 0;
792  int numberOfTracks_pv0 = 0;
793 
794  const edm::View<reco::Track>& trackCollection = *trackHandle;
795  // calculate the mean # rechits and layers
796  int totalRecHits = 0, totalLayers = 0;
797 
799  theTrackAnalyzer->setBX(iEvent);
800  theTrackAnalyzer->setLumi(iEvent,iSetup);
801  for ( edm::View<reco::Track>::const_iterator track = trackCollection.begin();
802  track != trackCollection.end(); ++track ) {
803 
804  if ( doPlotsVsBX_ || doAllPlots )
805  NumberOfRecHitsPerTrackVsBX->Fill(bx,track->numberOfValidHits());
806  if ( numSelection_(*track) ) {
807  numberOfTracks_num++;
808  if (pv0 && std::abs(track->dz(pv0->position()))<0.15) ++numberOfTracks_pv0;
809  }
810 
811  if ( doProfilesVsLS_ || doAllPlots)
812  NumberOfRecHitsPerTrackVsLS->Fill(static_cast<double>(iEvent.id().luminosityBlock()),track->numberOfValidHits());
813 
814  if (doPlotsVsLUMI_ || doAllPlots)
815  NumberOfRecHitsPerTrackVsLUMI->Fill(lumi,track->numberOfValidHits());
816 
817  totalRecHits += track->numberOfValidHits();
818  totalLayers += track->hitPattern().trackerLayersWithMeasurement();
819 
820  // do analysis per track
821  theTrackAnalyzer->analyze(iEvent, iSetup, *track);
822  }
823 
824  double frac = -1.;
825  // if (numberOfAllTracks > 0) frac = static_cast<double>(numberOfTracks)/static_cast<double>(numberOfAllTracks);
826  if (numberOfTracks_den > 0) frac = static_cast<double>(numberOfTracks_num)/static_cast<double>(numberOfTracks_den);
827 
829  NumberOfTracks -> Fill(numberOfTracks);
830  if ( doPlotsVsBX_ || doAllPlots )
831  NumberOfTracksVsBX -> Fill(bx,numberOfTracks);
832  if (doPlotsVsLUMI_ || doAllPlots)
833  NumberOfTracksVsLUMI -> Fill(lumi,numberOfTracks);
834  if (doFractionPlot_) {
835  FractionOfGoodTracks -> Fill(frac);
836 
837  if (doFractionPlot_) {
838  if ( doPlotsVsBX_ || doAllPlots )
839  GoodTracksFractionVsBX -> Fill(bx, frac);
840  if (doPlotsVsLUMI_ || doAllPlots)
841  GoodTracksFractionVsLUMI -> Fill(lumi,frac);
842  }
843  }
844  if( numberOfTracks > 0 ) {
845  double meanRecHits = static_cast<double>(totalRecHits) / static_cast<double>(numberOfTracks);
846  double meanLayers = static_cast<double>(totalLayers) / static_cast<double>(numberOfTracks);
847  NumberOfMeanRecHitsPerTrack -> Fill(meanRecHits);
848  NumberOfMeanLayersPerTrack -> Fill(meanLayers);
849  }
850  }
851 
852  if ( doProfilesVsLS_ || doAllPlots) {
853  float nLS = static_cast<double>(iEvent.id().luminosityBlock());
854  NumberEventsOfVsLS ->Fill(nLS);
855  NumberOfTracksVsLS ->Fill(nLS,numberOfTracks);
856  if (doFractionPlot_)
857  GoodTracksFractionVsLS->Fill(nLS,frac);
858  }
859 
860  if ( doLumiAnalysis ) {
861  NumberOfTracks_lumiFlag -> Fill(numberOfTracks);
862  }
863 
864 
865  // Analyse the Track Building variables
866  // if the collection is empty, do not fill anything
867  // ---------------------------------------------------------------------------------//
868 
869 
870  // fill the TrackCandidate info
871  if (doTkCandPlots) {
872  // magnetic field
874  iSetup.get<IdealMagneticFieldRecord>().get(theMF);
875 
876  // get the candidate collection
878  iEvent.getByToken( trackCandidateToken_, theTCHandle );
879  const TrackCandidateCollection& theTCCollection = *theTCHandle;
880 
881  if (theTCHandle.isValid()) {
882 
883  // get the beam spot
884  edm::Handle<reco::BeamSpot> recoBeamSpotHandle;
885  iEvent.getByToken(bsSrcToken_, recoBeamSpotHandle );
886  const reco::BeamSpot& bs = *recoBeamSpotHandle;
887 
888  NumberOfTrackCandidates->Fill(theTCCollection.size());
889 
890  // get the seed collection
892  iEvent.getByToken(seedToken_, seedHandle );
893  const edm::View<TrajectorySeed>& seedCollection = *seedHandle;
894  if (seedHandle.isValid() && !seedCollection.empty())
895  FractionCandidatesOverSeeds->Fill(double(theTCCollection.size())/double(seedCollection.size()));
896 
898  for( TrackCandidateCollection::const_iterator cand = theTCCollection.begin(); cand != theTCCollection.end(); ++cand) {
899 
900  theTrackBuildingAnalyzer->analyze(iEvent, iSetup, *cand, bs, theMF, theTTRHBuilder);
901  }
902  } else {
903  edm::LogWarning("TrackingMonitor") << "No Track Candidates in the event. Not filling associated histograms";
904  }
905 
906  if(doMVAPlots) {
907  // Get MVA and quality mask collections
908  std::vector<const MVACollection *> mvaCollections;
909  std::vector<const QualityMaskCollection *> qualityMaskCollections;
910 
912  iEvent.getByToken(mvaTrackToken_, htracks);
913 
916  for(const auto& tokenTpl: mvaQualityTokens_) {
917  iEvent.getByToken(std::get<0>(tokenTpl), hmva);
918  iEvent.getByToken(std::get<1>(tokenTpl), hqual);
919 
920  mvaCollections.push_back(hmva.product());
921  qualityMaskCollections.push_back(hqual.product());
922  }
923  theTrackBuildingAnalyzer->analyze(*htracks, mvaCollections, qualityMaskCollections);
924  }
925  }
926 
927  //plots for trajectory seeds
928 
930 
931  // get the seed collection
933  iEvent.getByToken(seedToken_, seedHandle );
934 
935  // fill the seed info
936  if (seedHandle.isValid()) {
937  const auto& seedCollection = *seedHandle;
938 
940  NumberOfSeeds->Fill(seedCollection.size());
941  if ( doSeedLumiAnalysis_ )
942  NumberOfSeeds_lumiFlag->Fill(seedCollection.size());
943  }
944 
946 
947  std::vector<int> NClus;
948  setNclus(iEvent,NClus);
949  for (uint i=0; i< ClusterLabels.size(); i++){
950  SeedsVsClusters[i]->Fill(NClus[i],seedCollection.size());
951  }
952  }
953 
956  iEvent.getByToken(seedStopInfoToken_, stopHandle);
957  const auto& seedStopInfo = *stopHandle;
958 
959  if(seedStopInfo.size() == seedCollection.size()) {
960  //here duplication of mag field and be informations is needed to allow seed and track cand histos to be independent
961  // magnetic field
963  iSetup.get<IdealMagneticFieldRecord>().get(theMF);
964 
965  // get the beam spot
966  edm::Handle<reco::BeamSpot> recoBeamSpotHandle;
967  iEvent.getByToken(bsSrcToken_, recoBeamSpotHandle);
968  const reco::BeamSpot& bs = *recoBeamSpotHandle;
969 
971  for(size_t i=0; i < seedCollection.size(); ++i) {
972  theTrackBuildingAnalyzer->analyze(iEvent, iSetup, seedCollection[i], seedStopInfo[i], bs, theMF, theTTRHBuilder);
973  }
974  }
975  else {
976  edm::LogWarning("TrackingMonitor") << "Seed collection size (" << seedCollection.size()
977  << ") differs from seed stop info collection size (" << seedStopInfo.size()
978  << "). This is a sign of inconsistency in the configuration. Not filling associated histograms.";
979  }
980  }
981 
982  } else {
983  edm::LogWarning("TrackingMonitor") << "No Trajectory seeds in the event. Not filling associated histograms";
984  }
985  }
986 
987 
988  // plots for tracking regions
989  if (doRegionPlots) {
991  iEvent.getByToken(regionToken_, hregions);
992  NumberOfTrackingRegions->Fill(hregions->size());
993 
995  iEvent.getByToken(regionCandidateToken_, hcandidates);
996  theTrackBuildingAnalyzer->analyze(*hcandidates);
997  }
998 
1000 
1001  std::vector<int> NClus;
1002  setNclus(iEvent,NClus);
1003  for (uint i=0; i< ClusterLabels.size(); i++) {
1004  NumberOfTrkVsClusters[i]->Fill(NClus[i],numberOfTracks);
1005  }
1006  }
1007 
1008  if ( doPUmonitoring_ ) {
1009 
1010  // do vertex monitoring
1011  for (size_t i=0; i<theVertexMonitor.size(); i++)
1012  theVertexMonitor[i]->analyze(iEvent, iSetup);
1013  }
1014  if ( doPlotsVsGoodPVtx_ ) {
1015 
1016  size_t totalNumGoodPV = 0;
1017  if (pvHandle.isValid()) {
1018 
1019  for (reco::VertexCollection::const_iterator pv = pvHandle->begin();
1020  pv != pvHandle->end(); ++pv) {
1021 
1022  //--- pv fake (the pv collection should have size==1 and the pv==beam spot)
1023  if (pv->isFake() || pv->tracksSize()==0) continue;
1024 
1025  // definition of goodOfflinePrimaryVertex
1026  if (pv->ndof() < pvNDOF_ || pv->z() > 24.) continue;
1027  totalNumGoodPV++;
1028  }
1029 
1030  NumberEventsOfVsGoodPVtx -> Fill( float(totalNumGoodPV) );
1031  NumberOfTracksVsGoodPVtx -> Fill( float(totalNumGoodPV), numberOfTracks );
1032  if (totalNumGoodPV>1) NumberOfTracksVsPUPVtx-> Fill( totalNumGoodPV-1, double(numberOfTracks-numberOfTracks_pv0)/double(totalNumGoodPV-1) );
1033  NumberOfPVtxVsGoodPVtx -> Fill(float(totalNumGoodPV),pvHandle->size());
1034 
1035  for ( edm::View<reco::Track>::const_iterator track = trackCollection.begin();
1036  track != trackCollection.end(); ++track ) {
1037 
1038  NumberOfRecHitsPerTrackVsGoodPVtx -> Fill(float(totalNumGoodPV), track->numberOfValidHits());
1039  }
1040 
1041  if ( doProfilesVsLS_ || doAllPlots)
1042  NumberOfGoodPVtxVsLS->Fill(static_cast<double>(iEvent.id().luminosityBlock()),totalNumGoodPV);
1043  if ( doPlotsVsBX_ || doAllPlots )
1044  NumberOfGoodPVtxVsBX->Fill(bx, float(totalNumGoodPV));
1045 
1046  if (doFractionPlot_)
1047  GoodTracksFractionVsGoodPVtx->Fill(float(totalNumGoodPV),frac);
1048 
1049  if ( doPlotsVsLUMI_ || doAllPlots )
1050  NumberOfGoodPVtxVsLUMI->Fill(lumi,float(totalNumGoodPV));
1051  }
1052 
1053  std::vector<int> NClus;
1054  setNclus(iEvent,NClus);
1055  for (uint i=0; i< ClusterLabels.size(); i++){
1056  if ( doPlotsVsLUMI_ || doAllPlots ) {
1057  if (ClusterLabels[i] =="Pix") NumberOfPixelClustersVsLUMI->Fill(lumi,NClus[i]);
1058  if (ClusterLabels[i]=="Strip") NumberOfStripClustersVsLUMI->Fill(lumi,NClus[i]);
1059  }
1060  if (ClusterLabels[i] =="Pix") NumberOfPixelClustersVsGoodPVtx->Fill(float(totalNumGoodPV),NClus[i]);
1061  if (ClusterLabels[i]=="Strip") NumberOfStripClustersVsGoodPVtx->Fill(float(totalNumGoodPV),NClus[i]);
1062  }
1063 
1064  if ( doPlotsVsBXlumi_ ) {
1065  double bxlumi = theLumiDetails_->getValue(iEvent);
1066  NumberOfTracksVsBXlumi -> Fill( bxlumi, numberOfTracks );
1067  }
1068 
1069  if ( doProfilesVsLS_ || doAllPlots ) if ( totalNumGoodPV != 0 ) NumberOfGoodPVtxWO0VsLS -> Fill(static_cast<double>(iEvent.id().luminosityBlock()),float(totalNumGoodPV));
1070  if ( doPlotsVsBX_ || doAllPlots ) if ( totalNumGoodPV != 0 ) NumberOfGoodPVtxWO0VsBX -> Fill(bx, float(totalNumGoodPV));
1071  if ( doPlotsVsLUMI_ || doAllPlots ) if ( totalNumGoodPV != 0 ) NumberOfGoodPVtxWO0VsLUMI-> Fill(lumi,float(totalNumGoodPV));
1072 
1073  } // PU monitoring
1074 
1075  } // trackHandle is valid
1076 
1077 }
edm::EDGetTokenT< std::vector< SeedStopInfo > > seedStopInfoToken_
edm::EDGetTokenT< edm::View< reco::Track > > trackToken_
edm::EDGetTokenT< edm::OwnVector< TrackingRegion > > regionToken_
edm::EDGetTokenT< edm::View< TrajectorySeed > > seedToken_
std::vector< MonitorElement * > NumberOfTrkVsClusters
MonitorElement * FractionOfGoodTracks
void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup, const TrajectorySeed &seed, const SeedStopInfo &stopInfo, const reco::BeamSpot &bs, const edm::ESHandle< MagneticField > &theMF, const edm::ESHandle< TransientTrackingRecHitBuilder > &theTTRHBuilder)
MonitorElement * NumberOfTracksVsBX
MonitorElement * NumberOfRecHitsPerTrackVsBX
MonitorElement * NumberOfRecHitsPerTrackVsLUMI
virtual void setNclus(const edm::Event &, std::vector< int > &)
MonitorElement * NumberEventsOfVsGoodPVtx
GetLumi * theLumiDetails_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:508
std::vector< TrackCandidate > TrackCandidateCollection
MonitorElement * FractionCandidatesOverSeeds
int bunchCrossing() const
Definition: EventBase.h:66
size_type size() const
MonitorElement * GoodTracksFractionVsLUMI
MonitorElement * NumberOfPVtxVsGoodPVtx
MonitorElement * NumberOfMeanRecHitsPerTrack
MonitorElement * NumberOfTracksVsGoodPVtx
LuminosityBlockNumber_t luminosityBlock() const
Definition: EventID.h:40
const Point & position() const
position
Definition: Vertex.h:109
void analyze(const edm::Event &, const edm::EventSetup &) override
MonitorElement * NumberOfStripClustersVsLUMI
MonitorElement * GoodTracksFractionVsLS
void Fill(long long x)
edm::EDGetTokenT< edm::View< reco::Track > > mvaTrackToken_
double getValue(const edm::Event &)
Definition: GetLumi.cc:64
MonitorElement * NumberOfGoodPVtxWO0VsLUMI
MonitorElement * NumberOfSeeds
const_iterator begin() const
MonitorElement * NumberOfTrackingRegions
void setBX(const edm::Event &)
MonitorElement * NumberOfGoodPVtxVsLS
edm::EDGetTokenT< edm::View< reco::Track > > allTrackToken_
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
MonitorElement * NumberOfGoodPVtxVsLUMI
bool accept(const edm::Event &event, const edm::EventSetup &setup)
To be called from analyze/filter() methods.
bool empty() const
MonitorElement * NumberOfTracksVsLS
def pv(vc)
Definition: MetAnalyzer.py:6
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
MonitorElement * NumberOfGoodPVtxWO0VsLS
double z() const
z coordinate
Definition: Vertex.h:115
MonitorElement * NumberOfTracksVsPUPVtx
edm::EDGetTokenT< LumiScalersCollection > lumiscalersToken_
MonitorElement * NumberEventsOfVsBX
bool runTrackBuildingAnalyzerForSeed
MonitorElement * NumberOfStripClustersVsGoodPVtx
bool isValid() const
Definition: HandleBase.h:74
std::vector< MonitorElement * > SeedsVsClusters
MonitorElement * NumberOfPixelClustersVsGoodPVtx
dqm::TrackAnalyzer * theTrackAnalyzer
MonitorElement * NumberOfRecHitsPerTrackVsLS
MonitorElement * GoodTracksFractionVsGoodPVtx
double ndof() const
Definition: Vertex.h:105
MonitorElement * NumberOfRecHitsPerTrackVsGoodPVtx
MonitorElement * NumberOfPixelClustersVsLUMI
void setNumberOfGoodVertices(const edm::Event &)
std::vector< VertexMonitor * > theVertexMonitor
MonitorElement * NumberOfTracksVsBXlumi
bool doGeneralPropertiesPlots_
TrackBuildingAnalyzer * theTrackBuildingAnalyzer
bool isFake() const
Definition: Vertex.h:72
T const * product() const
Definition: Handle.h:81
edm::EDGetTokenT< TrackCandidateCollection > trackCandidateToken_
MonitorElement * NumberOfMeanLayersPerTrack
StringCutObjectSelector< reco::Track, true > denSelection_
const T & get() const
Definition: EventSetup.h:55
StringCutObjectSelector< reco::Track, true > numSelection_
GenericTriggerEventFlag * genTriggerEventFlag_
edm::EDGetTokenT< reco::CandidateView > regionCandidateToken_
MonitorElement * GoodTracksFractionVsBX
MonitorElement * NumberOfSeeds_lumiFlag
edm::EventID id() const
Definition: EventBase.h:60
edm::ESHandle< TransientTrackingRecHitBuilder > theTTRHBuilder
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
MonitorElement * NumberOfTrackCandidates
const_iterator end() const
MonitorElement * NumberOfGoodPVtxVsBX
MonitorElement * NumberEventsOfVsLUMI
std::vector< std::tuple< edm::EDGetTokenT< MVACollection >, edm::EDGetTokenT< QualityMaskCollection > > > mvaQualityTokens_
MonitorElement * NumberOfTracks_lumiFlag
void setLumi(const edm::Event &, const edm::EventSetup &iSetup)
edm::EDGetTokenT< reco::BeamSpot > bsSrcToken_
MonitorElement * NumberOfTracks
size_t tracksSize() const
number of tracks
Definition: Vertex.cc:71
void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup, const reco::Track &track)
edm::EDGetTokenT< reco::VertexCollection > pvSrcToken_
MonitorElement * NumberEventsOfVsLS
MonitorElement * NumberOfTracksVsLUMI
std::vector< std::string > ClusterLabels
MonitorElement * NumberOfGoodPVtxWO0VsBX
std::string builderName
void TrackingMonitor::beginJob ( void  )
virtual

Definition at line 195 of file TrackingMonitor.cc.

196 {
197 
198 
199 }
void TrackingMonitor::beginLuminosityBlock ( const edm::LuminosityBlock lumi,
const edm::EventSetup eSetup 
)
override

Definition at line 720 of file TrackingMonitor.cc.

References doAllSeedPlots, doLumiAnalysis, dqm::TrackAnalyzer::doReset(), doSeedLumiAnalysis_, doSeedNumberPlot, NumberOfSeeds_lumiFlag, NumberOfTracks_lumiFlag, MonitorElement::Reset(), HcalObjRepresent::Reset(), and theTrackAnalyzer.

720  {
721 
722  if (doLumiAnalysis) {
725  }
727  if ( doSeedLumiAnalysis_ )
729  }
730 }
dqm::TrackAnalyzer * theTrackAnalyzer
MonitorElement * NumberOfSeeds_lumiFlag
void Reset(std::vector< TH2F > &depth)
MonitorElement * NumberOfTracks_lumiFlag
void Reset(void)
reset ME (ie. contents, errors, etc)
void TrackingMonitor::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  iRun,
edm::EventSetup const &  iSetup 
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 201 of file TrackingMonitor.cc.

References AlgoName_, DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), DQMStore::IBooker::bookProfile(), ClusterLabels, confID_, doAllPlots, doAllSeedPlots, doFractionPlot_, doGeneralPropertiesPlots_, doLumiAnalysis, doPlotsVsBX_, doPlotsVsBXlumi_, doPlotsVsGoodPVtx_, doPlotsVsLUMI_, doProfilesVsLS_, doPUmonitoring_, doRegionPlots, doSeedLumiAnalysis_, doSeedNumberPlot, doSeedVsClusterPlot, doTkCandPlots, doTrackerSpecific_, FractionCandidatesOverSeeds, FractionOfGoodTracks, genTriggerEventFlag_, edm::pset::Registry::getMapped(), edm::ParameterSet::getParameter(), MonitorElement::getTH1(), GoodTracksFractionVsBX, GoodTracksFractionVsGoodPVtx, GoodTracksFractionVsLS, GoodTracksFractionVsLUMI, histname, mps_fire::i, dqm::TrackAnalyzer::initHisto(), TrackBuildingAnalyzer::initHisto(), GenericTriggerEventFlag::initRun(), edm::pset::Registry::instance(), edm::InputTag::label(), NumberEventsOfVsBX, NumberEventsOfVsGoodPVtx, NumberEventsOfVsLS, NumberEventsOfVsLUMI, NumberOfGoodPVtxVsBX, NumberOfGoodPVtxVsLS, NumberOfGoodPVtxVsLUMI, NumberOfGoodPVtxWO0VsBX, NumberOfGoodPVtxWO0VsLS, NumberOfGoodPVtxWO0VsLUMI, NumberOfMeanLayersPerTrack, NumberOfMeanRecHitsPerTrack, NumberOfPixelClustersVsGoodPVtx, NumberOfPixelClustersVsLUMI, NumberOfPVtxVsGoodPVtx, NumberOfRecHitsPerTrackVsBX, NumberOfRecHitsPerTrackVsGoodPVtx, NumberOfRecHitsPerTrackVsLS, NumberOfRecHitsPerTrackVsLUMI, NumberOfSeeds, NumberOfSeeds_lumiFlag, NumberOfStripClustersVsGoodPVtx, NumberOfStripClustersVsLUMI, NumberOfTrackCandidates, NumberOfTrackingRegions, NumberOfTracks, NumberOfTracks_lumiFlag, NumberOfTracksVsBX, NumberOfTracksVsBXlumi, NumberOfTracksVsGoodPVtx, NumberOfTracksVsLS, NumberOfTracksVsLUMI, NumberOfTracksVsPUPVtx, NumberOfTrkVsClusters, GenericTriggerEventFlag::on(), Quality_, runTrackBuildingAnalyzerForSeed, SeedsVsClusters, MonitorElement::setAxisTitle(), DQMStore::IBooker::setCurrentFolder(), dqm::TrackAnalyzer::setLumiFlag(), MonitorElement::setLumiFlag(), setMaxMinBin(), AlCaHLTBitMon_QueryRunRegistry::string, theTrackAnalyzer, theTrackBuildingAnalyzer, theVertexMonitor, and fftjetcommon_cfi::title.

204 {
205  // parameters from the configuration
206  auto const* conf = edm::pset::Registry::instance()->getMapped(confID_);
207  assert(conf != nullptr);
208  std::string Quality = conf->getParameter<std::string>("Quality");
209  std::string AlgoName = conf->getParameter<std::string>("AlgoName");
210  std::string MEFolderName = conf->getParameter<std::string>("FolderName");
211 
212  // test for the Quality veriable validity
213  if( Quality_ != "") {
214  if( Quality_ != "highPurity" && Quality_ != "tight" && Quality_ != "loose") {
215  edm::LogWarning("TrackingMonitor") << "Qualty Name is invalid, using no quality criterea by default";
216  Quality_ = "";
217  }
218  }
219 
220  // use the AlgoName and Quality Name
221  std::string CategoryName = Quality_ != "" ? AlgoName_ + "_" + Quality_ : AlgoName_;
222 
223  // get binning from the configuration
224  int TKNoBin = conf->getParameter<int>( "TkSizeBin");
225  double TKNoMin = conf->getParameter<double>("TkSizeMin");
226  double TKNoMax = conf->getParameter<double>("TkSizeMax");
227 
228  int TCNoBin = conf->getParameter<int>( "TCSizeBin");
229  double TCNoMin = conf->getParameter<double>("TCSizeMin");
230  double TCNoMax = conf->getParameter<double>("TCSizeMax");
231 
232  int TKNoSeedBin = conf->getParameter<int>( "TkSeedSizeBin");
233  double TKNoSeedMin = conf->getParameter<double>("TkSeedSizeMin");
234  double TKNoSeedMax = conf->getParameter<double>("TkSeedSizeMax");
235 
236  int MeanHitBin = conf->getParameter<int>( "MeanHitBin");
237  double MeanHitMin = conf->getParameter<double>("MeanHitMin");
238  double MeanHitMax = conf->getParameter<double>("MeanHitMax");
239 
240  int MeanLayBin = conf->getParameter<int>( "MeanLayBin");
241  double MeanLayMin = conf->getParameter<double>("MeanLayMin");
242  double MeanLayMax = conf->getParameter<double>("MeanLayMax");
243 
244  int LSBin = conf->getParameter<int>( "LSBin");
245  int LSMin = conf->getParameter<double>("LSMin");
246  int LSMax = conf->getParameter<double>("LSMax");
247 
248  std::string StateName = conf->getParameter<std::string>("MeasurementState");
249  if (
250  StateName != "OuterSurface" &&
251  StateName != "InnerSurface" &&
252  StateName != "ImpactPoint" &&
253  StateName != "default" &&
254  StateName != "All"
255  ) {
256  // print warning
257  edm::LogWarning("TrackingMonitor") << "State Name is invalid, using 'ImpactPoint' by default";
258  }
259 
260  ibooker.setCurrentFolder(MEFolderName);
261 
262  // book the General Property histograms
263  // ---------------------------------------------------------------------------------//
264 
266 
267  ibooker.setCurrentFolder(MEFolderName+"/GeneralProperties");
268 
269  histname = "NumberOfTracks_" + CategoryName;
270  // MODIFY by Mia in order to cope w/ high multiplicity
271  NumberOfTracks = ibooker.book1D(histname, histname, 3*TKNoBin, TKNoMin, (TKNoMax+0.5)*3.-0.5);
272  NumberOfTracks->setAxisTitle("Number of Tracks per Event", 1);
273  NumberOfTracks->setAxisTitle("Number of Events", 2);
274 
275  histname = "NumberOfMeanRecHitsPerTrack_" + CategoryName;
276  NumberOfMeanRecHitsPerTrack = ibooker.book1D(histname, histname, MeanHitBin, MeanHitMin, MeanHitMax);
277  NumberOfMeanRecHitsPerTrack->setAxisTitle("Mean number of valid RecHits per Track", 1);
279 
280  histname = "NumberOfMeanLayersPerTrack_" + CategoryName;
281  NumberOfMeanLayersPerTrack = ibooker.book1D(histname, histname, MeanLayBin, MeanLayMin, MeanLayMax);
282  NumberOfMeanLayersPerTrack->setAxisTitle("Mean number of Layers per Track", 1);
284 
285  if (doFractionPlot_) {
286  histname = "FractionOfGoodTracks_" + CategoryName;
287  FractionOfGoodTracks = ibooker.book1D(histname, histname, 101, -0.005, 1.005);
288  FractionOfGoodTracks->setAxisTitle("Fraction of Tracks (w.r.t. generalTracks)", 1);
289  FractionOfGoodTracks->setAxisTitle("Entries", 2);
290  }
291  }
292 
293  if ( doLumiAnalysis ) {
294  // add by Mia in order to deal with LS transitions
295  ibooker.setCurrentFolder(MEFolderName+"/LSanalysis");
296 
297  histname = "NumberOfTracks_lumiFlag_" + CategoryName;
298  NumberOfTracks_lumiFlag = ibooker.book1D(histname, histname, 3*TKNoBin, TKNoMin, (TKNoMax+0.5)*3.-0.5);
299  NumberOfTracks_lumiFlag->setAxisTitle("Number of Tracks per Event", 1);
300  NumberOfTracks_lumiFlag->setAxisTitle("Number of Events", 2);
301 
302  }
303 
304  // book profile plots vs LS :
305  //---------------------------
306 
307 
308  if ( doProfilesVsLS_ || doAllPlots) {
309 
310  ibooker.setCurrentFolder(MEFolderName+"/GeneralProperties");
311 
312  histname = "NumberOfTracksVsLS_"+ CategoryName;
313  NumberOfTracksVsLS = ibooker.bookProfile(histname,histname, LSBin,LSMin,LSMax, TKNoMin, TKNoMax*3.,"");
314  NumberOfTracksVsLS->getTH1()->SetCanExtend(TH1::kAllAxes);
315  NumberOfTracksVsLS->setAxisTitle("#Lumi section",1);
316  NumberOfTracksVsLS->setAxisTitle("Number of Tracks",2);
317 
318  histname = "NumberOfRecHitsPerTrackVsLS_" + CategoryName;
319  NumberOfRecHitsPerTrackVsLS = ibooker.bookProfile(histname,histname, LSBin,LSMin,LSMax,0.,200.,"");
320  NumberOfRecHitsPerTrackVsLS->getTH1()->SetCanExtend(TH1::kAllAxes);
321  NumberOfRecHitsPerTrackVsLS->setAxisTitle("#Lumi section",1);
322  NumberOfRecHitsPerTrackVsLS->setAxisTitle("Mean number of Valid RecHits per track",2);
323 
324  histname = "NumberEventsVsLS_" + CategoryName;
325  NumberEventsOfVsLS = ibooker.book1D(histname,histname, LSBin,LSMin,LSMax);
326  NumberEventsOfVsLS->getTH1()->SetCanExtend(TH1::kAllAxes);
327  NumberEventsOfVsLS->setAxisTitle("#Lumi section",1);
328  NumberEventsOfVsLS->setAxisTitle("Number of events",2);
329 
330  double GoodPVtxMin = conf->getParameter<double>("GoodPVtxMin");
331  double GoodPVtxMax = conf->getParameter<double>("GoodPVtxMax");
332 
333  histname = "NumberOfGoodPVtxVsLS_" + CategoryName;
334  NumberOfGoodPVtxVsLS = ibooker.bookProfile(histname,histname, LSBin,LSMin,LSMax,GoodPVtxMin,3.*GoodPVtxMax,"");
335  NumberOfGoodPVtxVsLS->getTH1()->SetCanExtend(TH1::kAllAxes);
336  NumberOfGoodPVtxVsLS->setAxisTitle("#Lumi section",1);
337  NumberOfGoodPVtxVsLS->setAxisTitle("Mean number of good PV",2);
338 
339  histname = "NumberOfGoodPVtxWO0VsLS_" + CategoryName;
340  NumberOfGoodPVtxWO0VsLS = ibooker.bookProfile(histname,histname, LSBin,LSMin,LSMax,GoodPVtxMin,3.*GoodPVtxMax,"");
341  NumberOfGoodPVtxWO0VsLS->getTH1()->SetCanExtend(TH1::kAllAxes);
342  NumberOfGoodPVtxWO0VsLS->setAxisTitle("#Lumi section",1);
343  NumberOfGoodPVtxWO0VsLS->setAxisTitle("Mean number of good PV",2);
344 
345  if (doFractionPlot_) {
346  histname = "GoodTracksFractionVsLS_"+ CategoryName;
347  GoodTracksFractionVsLS = ibooker.bookProfile(histname,histname, LSBin,LSMin,LSMax,0,1.1,"");
348  GoodTracksFractionVsLS->getTH1()->SetCanExtend(TH1::kAllAxes);
349  GoodTracksFractionVsLS->setAxisTitle("#Lumi section",1);
350  GoodTracksFractionVsLS->setAxisTitle("Fraction of Good Tracks",2);
351  }
352 
353  if ( doPlotsVsBX_ || doAllPlots ) {
354  ibooker.setCurrentFolder(MEFolderName+"/BXanalysis");
355  int BXBin = 3564; double BXMin = 0.5; double BXMax = 3564.5;
356 
357  histname = "NumberEventsVsBX_" + CategoryName;
358  NumberEventsOfVsBX = ibooker.book1D(histname,histname, BXBin,BXMin,BXMax);
359  NumberEventsOfVsBX->getTH1()->SetCanExtend(TH1::kAllAxes);
361  NumberEventsOfVsBX->setAxisTitle("Number of events",2);
362 
363  histname = "NumberOfTracksVsBX_"+ CategoryName;
364  NumberOfTracksVsBX = ibooker.bookProfile(histname,histname, BXBin,BXMin,BXMax, TKNoMin, TKNoMax*3.,"");
365  NumberOfTracksVsBX->getTH1()->SetCanExtend(TH1::kAllAxes);
367  NumberOfTracksVsBX->setAxisTitle("Number of Tracks",2);
368 
369  histname = "NumberOfRecHitsPerTrackVsBX_" + CategoryName;
370  NumberOfRecHitsPerTrackVsBX = ibooker.bookProfile(histname,histname, BXBin,BXMin,BXMax,0.,200.,"");
371  NumberOfRecHitsPerTrackVsBX->getTH1()->SetCanExtend(TH1::kAllAxes);
373  NumberOfRecHitsPerTrackVsBX->setAxisTitle("Mean number of Valid RecHits per track",2);
374 
375  histname = "NumberOfGoodPVtxVsBX_" + CategoryName;
376  NumberOfGoodPVtxVsBX = ibooker.bookProfile(histname,histname, BXBin,BXMin,BXMax,GoodPVtxMin,3.*GoodPVtxMax,"");
377  NumberOfGoodPVtxVsBX->getTH1()->SetCanExtend(TH1::kAllAxes);
379  NumberOfGoodPVtxVsBX->setAxisTitle("Mean number of good PV",2);
380 
381  histname = "NumberOfGoodPVtxWO0VsBX_" + CategoryName;
382  NumberOfGoodPVtxWO0VsBX = ibooker.bookProfile(histname,histname, BXBin,BXMin,BXMax,GoodPVtxMin,3.*GoodPVtxMax,"");
383  NumberOfGoodPVtxWO0VsBX->getTH1()->SetCanExtend(TH1::kAllAxes);
385  NumberOfGoodPVtxWO0VsBX->setAxisTitle("Mean number of good PV",2);
386 
387  if (doFractionPlot_) {
388  histname = "GoodTracksFractionVsBX_"+ CategoryName;
389  GoodTracksFractionVsBX = ibooker.bookProfile(histname,histname, BXBin,BXMin,BXMax,0,1.1,"");
390  GoodTracksFractionVsBX->getTH1()->SetCanExtend(TH1::kAllAxes);
392  GoodTracksFractionVsBX->setAxisTitle("Fraction of Good Tracks",2);
393  }
394  }
395 
396  }
397 
398  // book PU monitoring plots :
399  //---------------------------
400 
401  if ( doPUmonitoring_ ) {
402 
403  for (size_t i=0; i<theVertexMonitor.size(); i++)
404  theVertexMonitor[i]->initHisto(ibooker);
405  }
406 
407  if ( doPlotsVsGoodPVtx_ ) {
408  ibooker.setCurrentFolder(MEFolderName+"/PUmonitoring");
409  // get binning from the configuration
410  int GoodPVtxBin = conf->getParameter<int>("GoodPVtxBin");
411  double GoodPVtxMin = conf->getParameter<double>("GoodPVtxMin");
412  double GoodPVtxMax = conf->getParameter<double>("GoodPVtxMax");
413 
414  histname = "NumberOfTracksVsGoodPVtx";
415  NumberOfTracksVsGoodPVtx = ibooker.bookProfile(histname,histname,GoodPVtxBin,GoodPVtxMin,GoodPVtxMax,TKNoMin, TKNoMax*5.,"");
416  NumberOfTracksVsGoodPVtx->getTH1()->SetCanExtend(TH1::kAllAxes);
417  NumberOfTracksVsGoodPVtx->setAxisTitle("Number of PV",1);
418  NumberOfTracksVsGoodPVtx->setAxisTitle("Mean number of Tracks per Event",2);
419 
420  histname = "NumberOfTracksVsPUPVtx";
421  NumberOfTracksVsPUPVtx = ibooker.bookProfile(histname,histname,GoodPVtxBin,GoodPVtxMin,GoodPVtxMax,0., 5000.,"");
422  NumberOfTracksVsPUPVtx->getTH1()->SetCanExtend(TH1::kAllAxes);
423  NumberOfTracksVsPUPVtx->setAxisTitle("Number of PU",1);
424  NumberOfTracksVsPUPVtx->setAxisTitle("Mean number of Tracks per PUvtx",2);
425 
426  histname = "NumberEventsVsGoodPVtx";
427  NumberEventsOfVsGoodPVtx = ibooker.book1D(histname,histname,GoodPVtxBin,GoodPVtxMin,GoodPVtxMax);
428  NumberEventsOfVsGoodPVtx->getTH1()->SetCanExtend(TH1::kAllAxes);
429  NumberEventsOfVsGoodPVtx->setAxisTitle("Number of good PV (PU)",1);
430  NumberEventsOfVsGoodPVtx->setAxisTitle("Number of events",2);
431 
432  if (doFractionPlot_) {
433  histname = "GoodTracksFractionVsGoodPVtx";
434  GoodTracksFractionVsGoodPVtx = ibooker.bookProfile(histname,histname,GoodPVtxBin,GoodPVtxMin,GoodPVtxMax,0., 1.1,"");
435  GoodTracksFractionVsGoodPVtx->getTH1()->SetCanExtend(TH1::kAllAxes);
436  GoodTracksFractionVsGoodPVtx->setAxisTitle("Number of good PV (PU)",1);
437  GoodTracksFractionVsGoodPVtx->setAxisTitle("Mean fraction of good tracks",2);
438  }
439 
440  histname = "NumberOfRecHitsPerTrackVsGoodPVtx";
441  NumberOfRecHitsPerTrackVsGoodPVtx = ibooker.bookProfile(histname,histname,GoodPVtxBin,GoodPVtxMin,GoodPVtxMax,0., 200.,"");
442  NumberOfRecHitsPerTrackVsGoodPVtx->getTH1()->SetCanExtend(TH1::kAllAxes);
443  NumberOfRecHitsPerTrackVsGoodPVtx->setAxisTitle("Number of good PV (PU)",1);
444  NumberOfRecHitsPerTrackVsGoodPVtx->setAxisTitle("Mean number of valid rechits per Tracks",2);
445 
446  histname = "NumberOfPVtxVsGoodPVtx";
447  NumberOfPVtxVsGoodPVtx = ibooker.bookProfile(histname,histname,GoodPVtxBin,GoodPVtxMin,GoodPVtxMax,0., 3.*GoodPVtxMax,"");
448  NumberOfPVtxVsGoodPVtx->getTH1()->SetCanExtend(TH1::kAllAxes);
449  NumberOfPVtxVsGoodPVtx->setAxisTitle("Number of good PV (PU)",1);
450  NumberOfPVtxVsGoodPVtx->setAxisTitle("Mean number of vertices",2);
451 
452  double NClusPxMin = conf->getParameter<double>("NClusPxMin");
453  double NClusPxMax = conf->getParameter<double>("NClusPxMax");
454  histname = "NumberOfPixelClustersVsGoodPVtx";
455  NumberOfPixelClustersVsGoodPVtx = ibooker.bookProfile(histname,histname,GoodPVtxBin,GoodPVtxMin,GoodPVtxMax,NClusPxMin,3.*NClusPxMax,"");
456  NumberOfPixelClustersVsGoodPVtx->getTH1()->SetCanExtend(TH1::kAllAxes);
457  NumberOfPixelClustersVsGoodPVtx->setAxisTitle("Number of good PV (PU)",1);
458  NumberOfPixelClustersVsGoodPVtx->setAxisTitle("Mean number of pixel clusters",2);
459 
460  double NClusStrMin = conf->getParameter<double>("NClusStrMin");
461  double NClusStrMax = conf->getParameter<double>("NClusStrMax");
462  histname = "NumberOfStripClustersVsGoodPVtx";
463  NumberOfStripClustersVsGoodPVtx = ibooker.bookProfile(histname,histname,GoodPVtxBin,GoodPVtxMin,GoodPVtxMax,NClusStrMin,3.*NClusStrMax,"");
464  NumberOfStripClustersVsGoodPVtx->getTH1()->SetCanExtend(TH1::kAllAxes);
465  NumberOfStripClustersVsGoodPVtx->setAxisTitle("Number of good PV (PU)",1);
466  NumberOfStripClustersVsGoodPVtx->setAxisTitle("Mean number of strip clusters",2);
467 
468  }
469 
470 
471  if ( doPlotsVsLUMI_ || doAllPlots ) {
472  ibooker.setCurrentFolder(MEFolderName+"/LUMIanalysis");
473  int LUMIBin = conf->getParameter<int>("LUMIBin");
474  float LUMIMin = conf->getParameter<double>("LUMIMin");
475  float LUMIMax = conf->getParameter<double>("LUMIMax");
476 
477  histname = "NumberEventsVsLUMI";
478  NumberEventsOfVsLUMI = ibooker.book1D(histname,histname,LUMIBin,LUMIMin,LUMIMax);
479  NumberEventsOfVsLUMI->getTH1()->SetCanExtend(TH1::kAllAxes);
480  NumberEventsOfVsLUMI->setAxisTitle("scal lumi [10e30 Hz cm^{-2}]",1);
481  NumberEventsOfVsLUMI->setAxisTitle("Number of events",2);
482 
483  histname = "NumberOfTracksVsLUMI";
484  NumberOfTracksVsLUMI = ibooker.bookProfile(histname,histname,LUMIBin,LUMIMin,LUMIMax,0., 2000.,"");
485  NumberOfTracksVsLUMI->getTH1()->SetCanExtend(TH1::kAllAxes);
486  NumberOfTracksVsLUMI->setAxisTitle("scal lumi [10e30 Hz cm^{-2}]",1);
487  NumberOfTracksVsLUMI->setAxisTitle("Mean number of vertices",2);
488 
489  if (doFractionPlot_) {
490  histname = "GoodTracksFractionVsLUMI";
491  GoodTracksFractionVsLUMI = ibooker.bookProfile(histname,histname,LUMIBin,LUMIMin,LUMIMax,0., 1.1,"");
492  GoodTracksFractionVsLUMI->getTH1()->SetCanExtend(TH1::kAllAxes);
493  GoodTracksFractionVsLUMI->setAxisTitle("scal lumi [10e30 Hz cm^{-2}]",1);
494  GoodTracksFractionVsLUMI->setAxisTitle("Mean number of vertices",2);
495  }
496 
497  histname = "NumberOfRecHitsPerTrackVsLUMI";
498  NumberOfRecHitsPerTrackVsLUMI = ibooker.bookProfile(histname,histname,LUMIBin,LUMIMin,LUMIMax,0., 200.,"");
499  NumberOfRecHitsPerTrackVsLUMI->getTH1()->SetCanExtend(TH1::kAllAxes);
500  NumberOfRecHitsPerTrackVsLUMI->setAxisTitle("scal lumi [10e30 Hz cm^{-2}]",1);
501  NumberOfRecHitsPerTrackVsLUMI->setAxisTitle("Mean number of vertices",2);
502 
503  double GoodPVtxMin = conf->getParameter<double>("GoodPVtxMin");
504  double GoodPVtxMax = conf->getParameter<double>("GoodPVtxMax");
505 
506  histname = "NumberOfGoodPVtxVsLUMI";
507  NumberOfGoodPVtxVsLUMI = ibooker.bookProfile(histname,histname,LUMIBin,LUMIMin,LUMIMax,GoodPVtxMin,3.*GoodPVtxMax,"");
508  NumberOfGoodPVtxVsLUMI->getTH1()->SetCanExtend(TH1::kAllAxes);
509  NumberOfGoodPVtxVsLUMI->setAxisTitle("scal lumi [10e30 Hz cm^{-2}]",1);
510  NumberOfGoodPVtxVsLUMI->setAxisTitle("Mean number of vertices",2);
511 
512  histname = "NumberOfGoodPVtxWO0VsLUMI";
513  NumberOfGoodPVtxWO0VsLUMI = ibooker.bookProfile(histname,histname,LUMIBin,LUMIMin,LUMIMax,GoodPVtxMin,3.*GoodPVtxMax,"");
514  NumberOfGoodPVtxWO0VsLUMI->getTH1()->SetCanExtend(TH1::kAllAxes);
515  NumberOfGoodPVtxWO0VsLUMI->setAxisTitle("scal lumi [10e30 Hz cm^{-2}]",1);
516  NumberOfGoodPVtxWO0VsLUMI->setAxisTitle("Mean number of vertices",2);
517 
518  double NClusPxMin = conf->getParameter<double>("NClusPxMin");
519  double NClusPxMax = conf->getParameter<double>("NClusPxMax");
520  histname = "NumberOfPixelClustersVsGoodPVtx";
521  NumberOfPixelClustersVsLUMI = ibooker.bookProfile(histname,histname,LUMIBin,LUMIMin,LUMIMax,NClusPxMin,3.*NClusPxMax,"");
522  NumberOfPixelClustersVsLUMI->getTH1()->SetCanExtend(TH1::kAllAxes);
523  NumberOfPixelClustersVsLUMI->setAxisTitle("scal lumi [10e30 Hz cm^{-2}]",1);
524  NumberOfPixelClustersVsLUMI->setAxisTitle("Mean number of pixel clusters",2);
525 
526  double NClusStrMin = conf->getParameter<double>("NClusStrMin");
527  double NClusStrMax = conf->getParameter<double>("NClusStrMax");
528  histname = "NumberOfStripClustersVsLUMI";
529  NumberOfStripClustersVsLUMI = ibooker.bookProfile(histname,histname,LUMIBin,LUMIMin,LUMIMax,NClusStrMin,3.*NClusStrMax,"");
530  NumberOfStripClustersVsLUMI->getTH1()->SetCanExtend(TH1::kAllAxes);
531  NumberOfStripClustersVsLUMI->setAxisTitle("scal lumi [10e30 Hz cm^{-2}]",1);
532  NumberOfStripClustersVsLUMI->setAxisTitle("Mean number of strip clusters",2);
533 
534  }
535 
536 
537  if ( doPlotsVsBXlumi_ ) {
538  ibooker.setCurrentFolder(MEFolderName+"/PUmonitoring");
539  // get binning from the configuration
540  edm::ParameterSet BXlumiParameters = conf->getParameter<edm::ParameterSet>("BXlumiSetup");
541  int BXlumiBin = BXlumiParameters.getParameter<int>("BXlumiBin");
542  double BXlumiMin = BXlumiParameters.getParameter<double>("BXlumiMin");
543  double BXlumiMax = BXlumiParameters.getParameter<double>("BXlumiMax");
544 
545  histname = "NumberOfTracksVsBXlumi_"+ CategoryName;
546  NumberOfTracksVsBXlumi = ibooker.bookProfile(histname,histname, BXlumiBin,BXlumiMin,BXlumiMax, TKNoMin, 3.*TKNoMax,"");
547  NumberOfTracksVsBXlumi->getTH1()->SetCanExtend(TH1::kAllAxes);
548  NumberOfTracksVsBXlumi->setAxisTitle("lumi BX [10^{30}Hzcm^{-2}]",1);
549  NumberOfTracksVsBXlumi->setAxisTitle("Mean number of Tracks",2);
550 
551  }
552 
553 
554  theTrackAnalyzer->initHisto(ibooker, iSetup, *conf);
555 
556  // book the Seed Property histograms
557  // ---------------------------------------------------------------------------------//
558 
559  ibooker.setCurrentFolder(MEFolderName+"/TrackBuilding");
560 
561  doAllSeedPlots = conf->getParameter<bool>("doSeedParameterHistos");
562  doSeedNumberPlot = conf->getParameter<bool>("doSeedNumberHisto");
563  doSeedLumiAnalysis_ = conf->getParameter<bool>("doSeedLumiAnalysis");
564  doSeedVsClusterPlot = conf->getParameter<bool>("doSeedVsClusterHisto");
565  // if (doAllPlots) doAllSeedPlots=true;
566 
567  runTrackBuildingAnalyzerForSeed=(doAllSeedPlots || conf->getParameter<bool>("doSeedPTHisto") ||conf->getParameter<bool>("doSeedETAHisto") || conf->getParameter<bool>("doSeedPHIHisto") || conf->getParameter<bool>("doSeedPHIVsETAHisto") || conf->getParameter<bool>("doSeedThetaHisto") || conf->getParameter<bool>("doSeedQHisto") || conf->getParameter<bool>("doSeedDxyHisto") || conf->getParameter<bool>("doSeedDzHisto") || conf->getParameter<bool>("doSeedNRecHitsHisto") || conf->getParameter<bool>("doSeedNVsPhiProf")|| conf->getParameter<bool>("doSeedNVsEtaProf"));
568 
569  edm::InputTag seedProducer = conf->getParameter<edm::InputTag>("SeedProducer");
570 
571  if (doAllSeedPlots || doSeedNumberPlot){
572  ibooker.setCurrentFolder(MEFolderName+"/TrackBuilding");
573  histname = "NumberOfSeeds_"+ seedProducer.label() + "_"+ CategoryName;
574  NumberOfSeeds = ibooker.book1D(histname, histname, TKNoSeedBin, TKNoSeedMin, TKNoSeedMax);
575  NumberOfSeeds->setAxisTitle("Number of Seeds per Event", 1);
576  NumberOfSeeds->setAxisTitle("Number of Events", 2);
577 
578  if ( doSeedLumiAnalysis_ ) {
579  ibooker.setCurrentFolder(MEFolderName+"/LSanalysis");
580  histname = "NumberOfSeeds_lumiFlag_"+ seedProducer.label() + "_"+ CategoryName;
581  NumberOfSeeds_lumiFlag = ibooker.book1D(histname, histname, TKNoSeedBin, TKNoSeedMin, TKNoSeedMax);
582  NumberOfSeeds_lumiFlag->setAxisTitle("Number of Seeds per Event", 1);
583  NumberOfSeeds_lumiFlag->setAxisTitle("Number of Events", 2);
584  }
585 
586  }
587 
588  if (doAllSeedPlots || doSeedVsClusterPlot){
589  ibooker.setCurrentFolder(MEFolderName+"/TrackBuilding");
590 
591  ClusterLabels= conf->getParameter<std::vector<std::string> >("ClusterLabels");
592 
593  std::vector<double> histoMin,histoMax;
594  std::vector<int> histoBin; //these vectors are for max min and nbins in histograms
595 
596  int NClusPxBin = conf->getParameter<int>( "NClusPxBin");
597  double NClusPxMin = conf->getParameter<double>("NClusPxMin");
598  double NClusPxMax = conf->getParameter<double>("NClusPxMax");
599 
600  int NClusStrBin = conf->getParameter<int>( "NClusStrBin");
601  double NClusStrMin = conf->getParameter<double>("NClusStrMin");
602  double NClusStrMax = conf->getParameter<double>("NClusStrMax");
603 
604  setMaxMinBin(histoMin,histoMax,histoBin,NClusStrMin,NClusStrMax,NClusStrBin,NClusPxMin,NClusPxMax,NClusPxBin);
605 
606  for (uint i=0; i<ClusterLabels.size(); i++){
607  histname = "SeedsVsClusters_" + seedProducer.label() + "_Vs_" + ClusterLabels[i] + "_" + CategoryName;
608  SeedsVsClusters.push_back(dynamic_cast<MonitorElement*>(ibooker.book2D(histname, histname, histoBin[i], histoMin[i], histoMax[i],
609  TKNoSeedBin, TKNoSeedMin, TKNoSeedMax)));
610  SeedsVsClusters[i]->setAxisTitle("Number of Clusters", 1);
611  SeedsVsClusters[i]->setAxisTitle("Number of Seeds", 2);
612  SeedsVsClusters[i]->getTH2F()->SetCanExtend(TH1::kAllAxes);
613  }
614  }
615 
616  if(doRegionPlots) {
617  ibooker.setCurrentFolder(MEFolderName+"/TrackBuilding");
618 
619  int regionBin = conf->getParameter<int>( "RegionSizeBin");
620  double regionMin = conf->getParameter<double>("RegionSizeMin");
621  double regionMax = conf->getParameter<double>("RegionSizeMax");
622 
623  histname = "NumberOfTrackingRegions_"+ seedProducer.label() + "_"+ CategoryName;
624  NumberOfTrackingRegions = ibooker.book1D(histname, histname, regionBin, regionMin, regionMax);
625  NumberOfTrackingRegions->setAxisTitle("Number of TrackingRegions per Event", 1);
626  NumberOfTrackingRegions->setAxisTitle("Number of Events", 2);
627  }
628 
629  doTkCandPlots=conf->getParameter<bool>("doTrackCandHistos");
630  // if (doAllPlots) doTkCandPlots=true;
631 
632  if (doTkCandPlots){
633  ibooker.setCurrentFolder(MEFolderName+"/TrackBuilding");
634 
635  edm::InputTag tcProducer = conf->getParameter<edm::InputTag>("TCProducer");
636 
637  histname = "NumberOfTrackCandidates_"+ tcProducer.label() + "_"+ CategoryName;
638  NumberOfTrackCandidates = ibooker.book1D(histname, histname, TCNoBin, TCNoMin, TCNoMax);
639  NumberOfTrackCandidates->setAxisTitle("Number of Track Candidates per Event", 1);
640  NumberOfTrackCandidates->setAxisTitle("Number of Event", 2);
641 
642  histname = "FractionOfCandOverSeeds_"+ tcProducer.label() + "_"+ CategoryName;
643  FractionCandidatesOverSeeds = ibooker.book1D(histname, histname, 101, 0., 1.01);
644  FractionCandidatesOverSeeds->setAxisTitle("Number of Track Candidates / Number of Seeds per Event", 1);
645  FractionCandidatesOverSeeds->setAxisTitle("Number of Event", 2);
646 
647  }
648 
649  theTrackBuildingAnalyzer->initHisto(ibooker,*conf);
650 
651 
652  if (doLumiAnalysis) {
653  if ( NumberOfTracks_lumiFlag ) NumberOfTracks_lumiFlag -> setLumiFlag();
655  }
656 
657  if(doAllSeedPlots || doSeedNumberPlot){
658  if ( doSeedLumiAnalysis_ )
660  }
661 
663 
664  ClusterLabels= conf->getParameter<std::vector<std::string> >("ClusterLabels");
665 
666  std::vector<double> histoMin,histoMax;
667  std::vector<int> histoBin; //these vectors are for max min and nbins in histograms
668 
669  int NClusStrBin = conf->getParameter<int>( "NClusStrBin");
670  double NClusStrMin = conf->getParameter<double>("NClusStrMin");
671  double NClusStrMax = conf->getParameter<double>("NClusStrMax");
672 
673  int NClusPxBin = conf->getParameter<int>( "NClusPxBin");
674  double NClusPxMin = conf->getParameter<double>("NClusPxMin");
675  double NClusPxMax = conf->getParameter<double>("NClusPxMax");
676 
677  int NTrk2DBin = conf->getParameter<int>( "NTrk2DBin");
678  double NTrk2DMin = conf->getParameter<double>("NTrk2DMin");
679  double NTrk2DMax = conf->getParameter<double>("NTrk2DMax");
680 
681  setMaxMinBin(histoMin,histoMax,histoBin,
682  NClusStrMin,NClusStrMax,NClusStrBin,
683  NClusPxMin, NClusPxMax, NClusPxBin);
684 
685  ibooker.setCurrentFolder(MEFolderName+"/HitProperties");
686 
687  for (uint i=0; i<ClusterLabels.size(); i++){
688 
689  ibooker.setCurrentFolder(MEFolderName+"/HitProperties");
690  histname = "TracksVs" + ClusterLabels[i] + "Cluster_" + CategoryName;
691  NumberOfTrkVsClusters.push_back(dynamic_cast<MonitorElement*>(ibooker.book2D(histname, histname,
692  histoBin[i], histoMin[i], histoMax[i],
693  NTrk2DBin,NTrk2DMin,NTrk2DMax
694  )));
695  std::string title = "Number of " + ClusterLabels[i] + " Clusters";
696  if(ClusterLabels[i]=="Tot")
697  title = "# of Clusters in (Pixel+Strip) Detectors";
698  NumberOfTrkVsClusters[i]->setAxisTitle(title, 1);
699  NumberOfTrkVsClusters[i]->setAxisTitle("Number of Tracks", 2);
700  NumberOfTrkVsClusters[i]->getTH1()->SetCanExtend(TH1::kXaxis);
701  }
702  }
703 
704  // Initialize the GenericTriggerEventFlag
705  if ( genTriggerEventFlag_->on() ) genTriggerEventFlag_->initRun( iRun, iSetup );
706 
707 }
T getParameter(std::string const &) const
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
MonitorElement * NumberOfRecHitsPerTrackVsBX
MonitorElement * NumberOfRecHitsPerTrackVsLUMI
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:157
MonitorElement * NumberEventsOfVsGoodPVtx
void initHisto(DQMStore::IBooker &ibooker, const edm::EventSetup &, const edm::ParameterSet &)
MonitorElement * FractionCandidatesOverSeeds
MonitorElement * GoodTracksFractionVsLUMI
MonitorElement * NumberOfPVtxVsGoodPVtx
MonitorElement * NumberOfMeanRecHitsPerTrack
MonitorElement * NumberOfTracksVsGoodPVtx
void initHisto(DQMStore::IBooker &ibooker, const edm::ParameterSet &)
MonitorElement * NumberOfStripClustersVsLUMI
MonitorElement * GoodTracksFractionVsLS
std::string Quality_
MonitorElement * NumberOfGoodPVtxWO0VsLUMI
MonitorElement * NumberOfSeeds
MonitorElement * NumberOfTrackingRegions
MonitorElement * NumberOfGoodPVtxVsLS
MonitorElement * NumberOfGoodPVtxVsLUMI
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
MonitorElement * NumberOfTracksVsLS
MonitorElement * NumberOfGoodPVtxWO0VsLS
TH1 * getTH1(void) const
bool getMapped(key_type const &k, value_type &result) const
Definition: Registry.cc:18
MonitorElement * NumberOfTracksVsPUPVtx
MonitorElement * NumberEventsOfVsBX
bool runTrackBuildingAnalyzerForSeed
MonitorElement * NumberOfStripClustersVsGoodPVtx
std::vector< MonitorElement * > SeedsVsClusters
MonitorElement * NumberOfPixelClustersVsGoodPVtx
dqm::TrackAnalyzer * theTrackAnalyzer
MonitorElement * NumberOfRecHitsPerTrackVsLS
MonitorElement * GoodTracksFractionVsGoodPVtx
MonitorElement * NumberOfRecHitsPerTrackVsGoodPVtx
std::string histname
edm::ParameterSetID confID_
MonitorElement * NumberOfPixelClustersVsLUMI
std::vector< VertexMonitor * > theVertexMonitor
MonitorElement * NumberOfTracksVsBXlumi
bool doGeneralPropertiesPlots_
TrackBuildingAnalyzer * theTrackBuildingAnalyzer
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:277
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
std::string AlgoName_
MonitorElement * NumberOfMeanLayersPerTrack
GenericTriggerEventFlag * genTriggerEventFlag_
MonitorElement * GoodTracksFractionVsBX
std::string const & label() const
Definition: InputTag.h:36
MonitorElement * NumberOfSeeds_lumiFlag
MonitorElement * NumberOfTrackCandidates
void initRun(const edm::Run &run, const edm::EventSetup &setup)
To be called from beginRun() methods.
MonitorElement * NumberOfGoodPVtxVsBX
void setLumiFlag(void)
this ME is meant to be stored for each luminosity section
MonitorElement * NumberEventsOfVsLUMI
MonitorElement * NumberOfTracks_lumiFlag
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * NumberOfTracks
static Registry * instance()
Definition: Registry.cc:12
MonitorElement * NumberEventsOfVsLS
MonitorElement * NumberOfTracksVsLUMI
std::vector< std::string > ClusterLabels
MonitorElement * NumberOfGoodPVtxWO0VsBX
void TrackingMonitor::doProfileX ( TH2 *  th2,
MonitorElement me 
)
private
void TrackingMonitor::doProfileX ( MonitorElement th2m,
MonitorElement me 
)
private
void TrackingMonitor::endRun ( const edm::Run ,
const edm::EventSetup  
)
override

Definition at line 1080 of file TrackingMonitor.cc.

1081 {
1082 }
void TrackingMonitor::setMaxMinBin ( std::vector< double > &  arrayMin,
std::vector< double > &  arrayMax,
std::vector< int > &  arrayBin,
double  smin,
double  smax,
int  sbin,
double  pmin,
double  pmax,
int  pbin 
)
virtual

Definition at line 1084 of file TrackingMonitor.cc.

References ClusterLabels, and mps_fire::i.

Referenced by bookHistograms().

1085 {
1086  arrayMin.resize(ClusterLabels.size());
1087  arrayMax.resize(ClusterLabels.size());
1088  arrayBin.resize(ClusterLabels.size());
1089 
1090  for (uint i=0; i<ClusterLabels.size(); ++i) {
1091 
1092  if (ClusterLabels[i]=="Pix" ) {arrayMin[i]=pmin; arrayMax[i]=pmax; arrayBin[i]=pbin;}
1093  else if(ClusterLabels[i]=="Strip") {arrayMin[i]=smin; arrayMax[i]=smax; arrayBin[i]=sbin;}
1094  else if(ClusterLabels[i]=="Tot" ) {arrayMin[i]=smin; arrayMax[i]=smax+pmax; arrayBin[i]=sbin;}
1095  else {edm::LogWarning("TrackingMonitor") << "Cluster Label " << ClusterLabels[i] << " not defined, using strip parameters ";
1096  arrayMin[i]=smin; arrayMax[i]=smax; arrayBin[i]=sbin;}
1097 
1098  }
1099 
1100 }
std::vector< std::string > ClusterLabels
void TrackingMonitor::setNclus ( const edm::Event iEvent,
std::vector< int > &  arrayNclus 
)
virtual

Definition at line 1102 of file TrackingMonitor.cc.

References ClusterLabels, DEFINE_FWK_MODULE, edm::Event::getByToken(), mps_fire::i, edm::HandleBase::isValid(), pixelClustersToken_, and stripClustersToken_.

Referenced by analyze().

1103 {
1104 
1105  int ncluster_pix=-1;
1106  int ncluster_strip=-1;
1107 
1109  iEvent.getByToken(stripClustersToken_, strip_clusters );
1111  iEvent.getByToken(pixelClustersToken_, pixel_clusters );
1112 
1113  if (strip_clusters.isValid() && pixel_clusters.isValid()) {
1114  ncluster_pix = (*pixel_clusters).dataSize();
1115  ncluster_strip = (*strip_clusters).dataSize();
1116  }
1117 
1118  arrayNclus.resize(ClusterLabels.size());
1119  for (uint i=0; i<ClusterLabels.size(); ++i){
1120 
1121  if (ClusterLabels[i]=="Pix" ) arrayNclus[i]=ncluster_pix ;
1122  else if(ClusterLabels[i]=="Strip") arrayNclus[i]=ncluster_strip;
1123  else if(ClusterLabels[i]=="Tot" ) arrayNclus[i]=ncluster_pix+ncluster_strip;
1124  else {edm::LogWarning("TrackingMonitor") << "Cluster Label " << ClusterLabels[i] << " not defined using stri parametrs ";
1125  arrayNclus[i]=ncluster_strip ;}
1126  }
1127 
1128 }
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:508
bool isValid() const
Definition: HandleBase.h:74
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClustersToken_
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > stripClustersToken_
std::vector< std::string > ClusterLabels

Member Data Documentation

std::string TrackingMonitor::AlgoName_
private

Definition at line 111 of file TrackingMonitor.h.

Referenced by bookHistograms(), and TrackingMonitor().

edm::EDGetTokenT<edm::View<reco::Track> > TrackingMonitor::allTrackToken_
private

Definition at line 92 of file TrackingMonitor.h.

Referenced by analyze(), and TrackingMonitor().

edm::InputTag TrackingMonitor::bsSrc_
private

Definition at line 87 of file TrackingMonitor.h.

Referenced by TrackingMonitor().

edm::EDGetTokenT<reco::BeamSpot> TrackingMonitor::bsSrcToken_
private

Definition at line 89 of file TrackingMonitor.h.

Referenced by analyze(), and TrackingMonitor().

std::string TrackingMonitor::builderName
private

Definition at line 188 of file TrackingMonitor.h.

Referenced by analyze().

std::vector<std::string> TrackingMonitor::ClusterLabels
private

Definition at line 134 of file TrackingMonitor.h.

Referenced by analyze(), bookHistograms(), setMaxMinBin(), and setNclus().

edm::ParameterSetID TrackingMonitor::confID_
private

Definition at line 84 of file TrackingMonitor.h.

Referenced by bookHistograms().

StringCutObjectSelector<reco::Track,true> TrackingMonitor::denSelection_
private

Definition at line 217 of file TrackingMonitor.h.

Referenced by analyze().

bool TrackingMonitor::doAllPlots
private

Definition at line 195 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

bool TrackingMonitor::doAllSeedPlots
private

Definition at line 194 of file TrackingMonitor.h.

Referenced by analyze(), beginLuminosityBlock(), and bookHistograms().

bool TrackingMonitor::doDCAPlots_
private

Definition at line 196 of file TrackingMonitor.h.

bool TrackingMonitor::doFractionPlot_
private

Definition at line 212 of file TrackingMonitor.h.

Referenced by analyze(), bookHistograms(), and TrackingMonitor().

bool TrackingMonitor::doGeneralPropertiesPlots_
private

Definition at line 197 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

bool TrackingMonitor::doHitPropertiesPlots_
private

Definition at line 198 of file TrackingMonitor.h.

bool TrackingMonitor::doLumiAnalysis
private

Definition at line 192 of file TrackingMonitor.h.

Referenced by analyze(), beginLuminosityBlock(), and bookHistograms().

bool TrackingMonitor::doMVAPlots
private

Definition at line 200 of file TrackingMonitor.h.

Referenced by analyze(), and TrackingMonitor().

bool TrackingMonitor::doPlotsVsBX_
private

Definition at line 211 of file TrackingMonitor.h.

Referenced by analyze(), bookHistograms(), and TrackingMonitor().

bool TrackingMonitor::doPlotsVsBXlumi_
private

Definition at line 208 of file TrackingMonitor.h.

Referenced by analyze(), bookHistograms(), and TrackingMonitor().

bool TrackingMonitor::doPlotsVsGoodPVtx_
private

Definition at line 209 of file TrackingMonitor.h.

Referenced by analyze(), bookHistograms(), and TrackingMonitor().

bool TrackingMonitor::doPlotsVsLUMI_
private

Definition at line 210 of file TrackingMonitor.h.

Referenced by analyze(), bookHistograms(), and TrackingMonitor().

bool TrackingMonitor::doProfilesVsLS_
private

Definition at line 193 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

bool TrackingMonitor::doPUmonitoring_
private

Definition at line 207 of file TrackingMonitor.h.

Referenced by analyze(), bookHistograms(), TrackingMonitor(), and ~TrackingMonitor().

bool TrackingMonitor::doRegionPlots
private

Definition at line 201 of file TrackingMonitor.h.

Referenced by analyze(), bookHistograms(), and TrackingMonitor().

bool TrackingMonitor::doSeedLumiAnalysis_
private

Definition at line 203 of file TrackingMonitor.h.

Referenced by analyze(), beginLuminosityBlock(), and bookHistograms().

bool TrackingMonitor::doSeedNumberPlot
private

Definition at line 202 of file TrackingMonitor.h.

Referenced by analyze(), beginLuminosityBlock(), and bookHistograms().

bool TrackingMonitor::doSeedVsClusterPlot
private

Definition at line 204 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

bool TrackingMonitor::doTkCandPlots
private

Definition at line 199 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

bool TrackingMonitor::doTrackerSpecific_
private

Definition at line 191 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::FractionCandidatesOverSeeds
private

Definition at line 139 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::FractionOfGoodTracks
private

Definition at line 125 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

GenericTriggerEventFlag* TrackingMonitor::genTriggerEventFlag_
private

Definition at line 214 of file TrackingMonitor.h.

Referenced by analyze(), bookHistograms(), and ~TrackingMonitor().

MonitorElement* TrackingMonitor::GoodTracksFractionVsBX
private

Definition at line 158 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::GoodTracksFractionVsGoodPVtx
private

Definition at line 169 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::GoodTracksFractionVsLS
private

Definition at line 150 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::GoodTracksFractionVsLUMI
private

Definition at line 178 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

std::string TrackingMonitor::histname
private

Definition at line 80 of file TrackingMonitor.h.

Referenced by bookHistograms().

edm::EDGetTokenT<LumiScalersCollection> TrackingMonitor::lumiscalersToken_
private

Definition at line 100 of file TrackingMonitor.h.

Referenced by analyze(), and TrackingMonitor().

std::vector<std::tuple<edm::EDGetTokenT<MVACollection>, edm::EDGetTokenT<QualityMaskCollection> > > TrackingMonitor::mvaQualityTokens_
private

Definition at line 107 of file TrackingMonitor.h.

Referenced by analyze(), and TrackingMonitor().

edm::EDGetTokenT<edm::View<reco::Track> > TrackingMonitor::mvaTrackToken_
private

Definition at line 108 of file TrackingMonitor.h.

Referenced by analyze(), and TrackingMonitor().

MonitorElement* TrackingMonitor::NumberEventsOfVsBX
private

Definition at line 156 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberEventsOfVsGoodPVtx
private

Definition at line 168 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberEventsOfVsLS
private

Definition at line 148 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberEventsOfVsLUMI
private

Definition at line 176 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfGoodPVtxVsBX
private

Definition at line 160 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfGoodPVtxVsLS
private

Definition at line 152 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfGoodPVtxVsLUMI
private

Definition at line 180 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfGoodPVtxWO0VsBX
private

Definition at line 161 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfGoodPVtxWO0VsLS
private

Definition at line 153 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfGoodPVtxWO0VsLUMI
private

Definition at line 181 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfMeanLayersPerTrack
private

Definition at line 122 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfMeanRecHitsPerTrack
private

Definition at line 121 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfPixelClustersVsGoodPVtx
private

Definition at line 172 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfPixelClustersVsLUMI
private

Definition at line 182 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfPVtxVsGoodPVtx
private

Definition at line 171 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfRecHitsPerTrackVsBX
private

Definition at line 159 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfRecHitsPerTrackVsGoodPVtx
private

Definition at line 170 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfRecHitsPerTrackVsLS
private

Definition at line 151 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfRecHitsPerTrackVsLUMI
private

Definition at line 179 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfSeeds
private

Definition at line 131 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfSeeds_lumiFlag
private

Definition at line 132 of file TrackingMonitor.h.

Referenced by analyze(), beginLuminosityBlock(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfStripClustersVsGoodPVtx
private

Definition at line 173 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfStripClustersVsLUMI
private

Definition at line 183 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfTrackCandidates
private

Definition at line 138 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfTrackingRegions
private

Definition at line 128 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfTracks
private

Definition at line 120 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfTracks_lumiFlag
private

Definition at line 186 of file TrackingMonitor.h.

Referenced by analyze(), beginLuminosityBlock(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfTracksVsBX
private

Definition at line 157 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfTracksVsBXlumi
private

Definition at line 163 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfTracksVsGoodPVtx
private

Definition at line 166 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfTracksVsLS
private

Definition at line 149 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfTracksVsLUMI
private

Definition at line 177 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfTracksVsPUPVtx
private

Definition at line 167 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfTrkVsClus
private

Definition at line 143 of file TrackingMonitor.h.

std::vector<MonitorElement*> TrackingMonitor::NumberOfTrkVsClusters
private

Definition at line 142 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackingMonitor::NumberOfTrkVsPixelClus
private

Definition at line 145 of file TrackingMonitor.h.

MonitorElement* TrackingMonitor::NumberOfTrkVsStripClus
private

Definition at line 144 of file TrackingMonitor.h.

StringCutObjectSelector<reco::Track,true> TrackingMonitor::numSelection_
private

Definition at line 216 of file TrackingMonitor.h.

Referenced by analyze().

edm::InputTag TrackingMonitor::pixelClusterInputTag_
private

Definition at line 103 of file TrackingMonitor.h.

Referenced by TrackingMonitor().

edm::EDGetTokenT<edmNew::DetSetVector<SiPixelCluster> > TrackingMonitor::pixelClustersToken_
private

Definition at line 105 of file TrackingMonitor.h.

Referenced by setNclus(), and TrackingMonitor().

int TrackingMonitor::pvNDOF_
private

Definition at line 218 of file TrackingMonitor.h.

Referenced by analyze().

edm::InputTag TrackingMonitor::pvSrc_
private

Definition at line 88 of file TrackingMonitor.h.

Referenced by TrackingMonitor().

edm::EDGetTokenT<reco::VertexCollection> TrackingMonitor::pvSrcToken_
private

Definition at line 90 of file TrackingMonitor.h.

Referenced by analyze(), and TrackingMonitor().

std::string TrackingMonitor::Quality_
private

Definition at line 110 of file TrackingMonitor.h.

Referenced by bookHistograms(), and TrackingMonitor().

edm::EDGetTokenT<reco::CandidateView> TrackingMonitor::regionCandidateToken_
private

Definition at line 98 of file TrackingMonitor.h.

Referenced by analyze(), and TrackingMonitor().

edm::EDGetTokenT<edm::OwnVector<TrackingRegion> > TrackingMonitor::regionToken_
private

Definition at line 97 of file TrackingMonitor.h.

Referenced by analyze(), and TrackingMonitor().

bool TrackingMonitor::runTrackBuildingAnalyzerForSeed
private

Definition at line 205 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

edm::EDGetTokenT<std::vector<SeedStopInfo> > TrackingMonitor::seedStopInfoToken_
private

Definition at line 96 of file TrackingMonitor.h.

Referenced by analyze(), and TrackingMonitor().

std::vector<MonitorElement *> TrackingMonitor::SeedsVsClusters
private

Definition at line 133 of file TrackingMonitor.h.

Referenced by analyze(), and bookHistograms().

edm::EDGetTokenT<edm::View<TrajectorySeed> > TrackingMonitor::seedToken_
private

Definition at line 95 of file TrackingMonitor.h.

Referenced by analyze(), and TrackingMonitor().

edm::InputTag TrackingMonitor::stripClusterInputTag_
private

Definition at line 102 of file TrackingMonitor.h.

Referenced by TrackingMonitor().

edm::EDGetTokenT<edmNew::DetSetVector<SiStripCluster> > TrackingMonitor::stripClustersToken_
private

Definition at line 104 of file TrackingMonitor.h.

Referenced by setNclus(), and TrackingMonitor().

GetLumi* TrackingMonitor::theLumiDetails_
private

Definition at line 117 of file TrackingMonitor.h.

Referenced by analyze(), and TrackingMonitor().

dqm::TrackAnalyzer* TrackingMonitor::theTrackAnalyzer
private
TrackBuildingAnalyzer* TrackingMonitor::theTrackBuildingAnalyzer
private

Definition at line 115 of file TrackingMonitor.h.

Referenced by analyze(), bookHistograms(), and ~TrackingMonitor().

edm::ESHandle<TransientTrackingRecHitBuilder> TrackingMonitor::theTTRHBuilder
private

Definition at line 189 of file TrackingMonitor.h.

Referenced by analyze().

std::vector<VertexMonitor*> TrackingMonitor::theVertexMonitor
private

Definition at line 116 of file TrackingMonitor.h.

Referenced by analyze(), bookHistograms(), TrackingMonitor(), and ~TrackingMonitor().

edm::EDGetTokenT<TrackCandidateCollection> TrackingMonitor::trackCandidateToken_
private

Definition at line 94 of file TrackingMonitor.h.

Referenced by analyze(), and TrackingMonitor().

edm::EDGetTokenT<edm::View<reco::Track> > TrackingMonitor::trackToken_
private

Definition at line 93 of file TrackingMonitor.h.

Referenced by analyze(), and TrackingMonitor().