CMS 3D CMS Logo

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

#include <MuonTrackValidator.h>

Inheritance diagram for MuonTrackValidator:
DQMEDAnalyzer MuonTrackValidatorBase edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 Method called before the event loop. More...
 
void bookHistograms (DQMEDAnalyzer::DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 Method called at the end of the event loop. More...
 
 MuonTrackValidator (const edm::ParameterSet &pset)
 Constructor. More...
 
 ~MuonTrackValidator () override
 Destructor. More...
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Private Attributes

edm::EDGetTokenT< SimHitTPAssociationProducer::SimHitTPAssociationList_simHitTpMapTag
 
edm::InputTag associatormap
 
bool BiDirectional_RecoToSim_association
 
CosmicTrackingParticleSelector cosmictpSelector
 
std::string dirName_
 
bool MABH
 
edm::EDGetTokenT< reco::RecoToSimCollectionrecoToSimCollection_Token
 
edm::EDGetTokenT< reco::SimToRecoCollectionsimToRecoCollection_Token
 
TrackingParticleSelector tpSelector
 
bool UseAssociators
 
bool useGEMs_
 
bool useME0_
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
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
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (edm::ParameterSet const &)
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 
- Protected Member Functions inherited from MuonTrackValidatorBase
void BinLogX (TH1 *h)
 
void doProfileX (MonitorElement *th2m, MonitorElement *me)
 
void doProfileX (TH2 *th2, MonitorElement *me)
 
template<typename T >
void fillPlotNoFlow (MonitorElement *h, T val)
 
double getEta (double eta)
 
double getPt (double pt)
 
 MuonTrackValidatorBase (const edm::ParameterSet &pset)
 
 MuonTrackValidatorBase (const edm::ParameterSet &pset, edm::ConsumesCollector iC)
 Constructor. More...
 
virtual ~MuonTrackValidatorBase () noexcept(false)
 Destructor. More...
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 
- Protected Attributes inherited from MuonTrackValidatorBase
std::vector< std::string > associators
 
edm::InputTag bsSrc
 
edm::EDGetTokenT< reco::BeamSpotbsSrc_Token
 
std::vector< MonitorElement * > chi2_vs_eta
 
std::vector< MonitorElement * > chi2_vs_nhits
 
std::vector< MonitorElement * > chi2_vs_phi
 
int cotThetaRes_nbin
 
double cotThetaRes_rangeMax
 
double cotThetaRes_rangeMin
 
bool do_MUOhitsPlots
 
bool do_TRKhitsPlots
 
std::vector< MonitorElement * > dxypull_vs_eta
 
int dxyRes_nbin
 
double dxyRes_rangeMax
 
double dxyRes_rangeMin
 
std::vector< MonitorElement * > dxyres_vs_eta
 
std::vector< MonitorElement * > dxyres_vs_pt
 
std::vector< MonitorElement * > dzpull_vs_eta
 
int dzRes_nbin
 
double dzRes_rangeMax
 
double dzRes_rangeMin
 
std::vector< MonitorElement * > dzres_vs_eta
 
std::vector< MonitorElement * > dzres_vs_pt
 
int etaRes_nbin
 
double etaRes_rangeMax
 
double etaRes_rangeMin
 
std::vector< MonitorElement * > etares_vs_eta
 
std::vector< MonitorElement * > h_assoc2dxy
 
std::vector< MonitorElement * > h_assoc2dz
 
std::vector< MonitorElement * > h_assoc2eta
 
std::vector< MonitorElement * > h_assoc2hit
 
std::vector< MonitorElement * > h_assoc2phi
 
std::vector< MonitorElement * > h_assoc2pT
 
std::vector< MonitorElement * > h_assoc2pu
 
std::vector< MonitorElement * > h_assocdxy
 
std::vector< MonitorElement * > h_assocdz
 
std::vector< MonitorElement * > h_assoceta
 
std::vector< MonitorElement * > h_assocFraction
 
std::vector< MonitorElement * > h_assochi2
 
std::vector< MonitorElement * > h_assochi2_prob
 
std::vector< MonitorElement * > h_assochit
 
std::vector< MonitorElement * > h_assocphi
 
std::vector< MonitorElement * > h_assocpT
 
std::vector< MonitorElement * > h_assocpu
 
std::vector< MonitorElement * > h_assocRpos
 
std::vector< MonitorElement * > h_assocSharedHit
 
std::vector< MonitorElement * > h_assocZpos
 
std::vector< MonitorElement * > h_charge
 
std::vector< MonitorElement * > h_dxypull
 
std::vector< MonitorElement * > h_dxypulleta
 
std::vector< MonitorElement * > h_dzpull
 
std::vector< MonitorElement * > h_dzpulleta
 
std::vector< MonitorElement * > h_etaRes
 
std::vector< MonitorElement * > h_fakes
 
std::vector< MonitorElement * > h_losthits
 
std::vector< MonitorElement * > h_misiddxy
 
std::vector< MonitorElement * > h_misiddz
 
std::vector< MonitorElement * > h_misideta
 
std::vector< MonitorElement * > h_misidhit
 
std::vector< MonitorElement * > h_misidphi
 
std::vector< MonitorElement * > h_misidpT
 
std::vector< MonitorElement * > h_misidpu
 
std::vector< MonitorElement * > h_nchi2
 
std::vector< MonitorElement * > h_nchi2_prob
 
std::vector< MonitorElement * > h_nhits
 
std::vector< MonitorElement * > h_nlosthits
 
std::vector< MonitorElement * > h_nmisslayers_inner
 
std::vector< MonitorElement * > h_nmisslayers_outer
 
std::vector< MonitorElement * > h_phipull
 
std::vector< MonitorElement * > h_phipulleta
 
std::vector< MonitorElement * > h_phipullphi
 
std::vector< MonitorElement * > h_ptpull
 
std::vector< MonitorElement * > h_ptpulleta
 
std::vector< MonitorElement * > h_ptpullphi
 
std::vector< MonitorElement * > h_PurityVsQuality
 
std::vector< MonitorElement * > h_qoverppull
 
std::vector< MonitorElement * > h_recodxy
 
std::vector< MonitorElement * > h_recodz
 
std::vector< MonitorElement * > h_recoeta
 
std::vector< MonitorElement * > h_recohit
 
std::vector< MonitorElement * > h_recophi
 
std::vector< MonitorElement * > h_recopT
 
std::vector< MonitorElement * > h_recopu
 
std::vector< MonitorElement * > h_simuldxy
 
std::vector< MonitorElement * > h_simuldz
 
std::vector< MonitorElement * > h_simuleta
 
std::vector< MonitorElement * > h_simulhit
 
std::vector< MonitorElement * > h_simulphi
 
std::vector< MonitorElement * > h_simulpT
 
std::vector< MonitorElement * > h_simulpu
 
std::vector< MonitorElement * > h_simulRpos
 
std::vector< MonitorElement * > h_simulZpos
 
std::vector< MonitorElement * > h_thetapull
 
std::vector< MonitorElement * > h_thetapulleta
 
std::vector< MonitorElement * > h_thetapullphi
 
std::vector< MonitorElement * > h_tracks
 
bool ignoremissingtkcollection_
 
std::vector< edm::InputTaglabel
 
edm::InputTag label_pileupinfo
 
edm::InputTag label_tp_effic
 
edm::InputTag label_tp_fake
 
double maxCSCHit
 
double maxDTHit
 
double maxDxy
 
double maxDz
 
double maxEta
 
int maxFTracks
 
double maxLayers
 
double maxNHit
 
int maxNTracks
 
double maxPhi
 
double maxPixels
 
double maxPt
 
double maxPU
 
double maxRPCHit
 
double maxRpos
 
double maxZpos
 
double minCSCHit
 
double minDTHit
 
double minDxy
 
double minDz
 
double minEta
 
int minFTracks
 
double minLayers
 
double minNHit
 
int minNTracks
 
double minPhi
 
double minPixels
 
double minPt
 
double minPU
 
double minRPCHit
 
double minRpos
 
double minZpos
 
edm::ParameterSet muonHistoParameters
 
std::vector< MonitorElement * > nCSChits_vs_eta
 
std::vector< MonitorElement * > nDThits_vs_eta
 
std::vector< MonitorElement * > nGEMhits_vs_eta
 
std::vector< MonitorElement * > nhits_vs_eta
 
std::vector< MonitorElement * > nhits_vs_phi
 
int nintCSCHit
 
int nintDTHit
 
int nintDxy
 
int nintDz
 
int nintEta
 
int nintFTracks
 
int nintLayers
 
int nintNHit
 
int nintNTracks
 
int nintPhi
 
int nintPixels
 
int nintPt
 
int nintPU
 
int nintRPCHit
 
int nintRpos
 
int nintZpos
 
std::vector< MonitorElement * > nlosthits_vs_eta
 
std::vector< MonitorElement * > nME0hits_vs_eta
 
std::vector< MonitorElement * > nPixel_LayersWithMeas_vs_eta
 
std::vector< MonitorElement * > nRecHits_vs_nSimHits
 
std::vector< MonitorElement * > nRPChits_vs_eta
 
std::vector< MonitorElement * > nTRK_LayersWithMeas_vs_eta
 
std::string out
 
std::string parametersDefiner
 
std::vector< MonitorElement * > phipull_vs_eta
 
std::vector< MonitorElement * > phipull_vs_phi
 
int phiRes_nbin
 
double phiRes_rangeMax
 
double phiRes_rangeMin
 
std::vector< MonitorElement * > phires_vs_eta
 
std::vector< MonitorElement * > phires_vs_phi
 
std::vector< MonitorElement * > phires_vs_pt
 
edm::EDGetTokenT< std::vector< PileupSummaryInfo > > pileupinfo_Token
 
std::vector< MonitorElement * > ptpull_vs_eta
 
std::vector< MonitorElement * > ptpull_vs_phi
 
int ptRes_nbin
 
double ptRes_rangeMax
 
double ptRes_rangeMin
 
std::vector< MonitorElement * > ptres_vs_eta
 
std::vector< MonitorElement * > ptres_vs_phi
 
std::vector< MonitorElement * > ptres_vs_pt
 
edm::ESHandle< MagneticFieldtheMF
 
std::vector< MonitorElement * > thetaCotres_vs_eta
 
std::vector< MonitorElement * > thetaCotres_vs_pt
 
std::vector< MonitorElement * > thetapull_vs_eta
 
std::vector< MonitorElement * > thetapull_vs_phi
 
edm::EDGetTokenT< TrackingParticleCollectiontp_effic_Token
 
edm::EDGetTokenT< TrackingParticleCollectiontp_fake_Token
 
std::vector< edm::EDGetTokenT< edm::View< reco::Track > > > track_Collection_Token
 
bool useFabsEta
 
bool useInvPt
 
bool useLogPt
 
bool usemuon
 
bool usetracker
 

Detailed Description

Class that produces histograms to validate Muon Track Reconstruction performances

Definition at line 17 of file MuonTrackValidator.h.

Constructor & Destructor Documentation

◆ MuonTrackValidator()

MuonTrackValidator::MuonTrackValidator ( const edm::ParameterSet pset)
inline

Constructor.

Definition at line 20 of file MuonTrackValidator.h.

21  dirName_ = pset.getParameter<std::string>("dirName");
22  associatormap = pset.getParameter<edm::InputTag>("associatormap");
23  UseAssociators = pset.getParameter<bool>("UseAssociators");
24  useGEMs_ = pset.getParameter<bool>("useGEMs");
25  useME0_ = pset.getParameter<bool>("useME0");
26  edm::ParameterSet tpset = pset.getParameter<edm::ParameterSet>("muonTPSelector");
27  tpSelector = TrackingParticleSelector(tpset.getParameter<double>("ptMin"),
28  tpset.getParameter<double>("ptMax"),
29  tpset.getParameter<double>("minRapidity"),
30  tpset.getParameter<double>("maxRapidity"),
31  tpset.getParameter<double>("tip"),
32  tpset.getParameter<double>("lip"),
33  tpset.getParameter<int>("minHit"),
34  tpset.getParameter<bool>("signalOnly"),
35  tpset.getParameter<bool>("intimeOnly"),
36  tpset.getParameter<bool>("chargedOnly"),
37  tpset.getParameter<bool>("stableOnly"),
38  tpset.getParameter<std::vector<int> >("pdgId"));
39 
40  cosmictpSelector = CosmicTrackingParticleSelector(tpset.getParameter<double>("ptMin"),
41  tpset.getParameter<double>("minRapidity"),
42  tpset.getParameter<double>("maxRapidity"),
43  tpset.getParameter<double>("tip"),
44  tpset.getParameter<double>("lip"),
45  tpset.getParameter<int>("minHit"),
46  tpset.getParameter<bool>("chargedOnly"),
47  tpset.getParameter<std::vector<int> >("pdgId"));
48 
49  BiDirectional_RecoToSim_association = pset.getParameter<bool>("BiDirectional_RecoToSim_association");
50 
51  // dump cfg parameters
52  edm::LogVerbatim("MuonTrackValidator") << "constructing MuonTrackValidator: " << pset.dump();
53 
54  // Declare consumes (also for the base class)
55  bsSrc_Token = consumes<reco::BeamSpot>(bsSrc);
56  tp_effic_Token = consumes<TrackingParticleCollection>(label_tp_effic);
57  tp_fake_Token = consumes<TrackingParticleCollection>(label_tp_fake);
58  pileupinfo_Token = consumes<std::vector<PileupSummaryInfo> >(label_pileupinfo);
59  for (unsigned int www = 0; www < label.size(); www++) {
60  track_Collection_Token.push_back(consumes<edm::View<reco::Track> >(label[www]));
61  }
62  simToRecoCollection_Token = consumes<reco::SimToRecoCollection>(associatormap);
63  recoToSimCollection_Token = consumes<reco::RecoToSimCollection>(associatormap);
64 
65  _simHitTpMapTag = mayConsume<SimHitTPAssociationProducer::SimHitTPAssociationList>(
66  pset.getParameter<edm::InputTag>("simHitTpMapTag"));
67 
68  MABH = false;
69  if (!UseAssociators) {
70  // flag MuonAssociatorByHits
71  if (associators[0] == "MuonAssociationByHits")
72  MABH = true;
73  // reset string associators to the map label
74  associators.clear();
75  associators.push_back(associatormap.label());
76  edm::LogVerbatim("MuonTrackValidator") << "--> associators reset to: " << associators[0];
77  } else {
78  for (auto const& associator : associators) {
79  consumes<reco::TrackToTrackingParticleAssociator>(edm::InputTag(associator));
80  }
81  }
82 
83  // inform on which SimHits will be counted
84  if (usetracker)
85  edm::LogVerbatim("MuonTrackValidator") << "\n usetracker = TRUE : Tracker SimHits WILL be counted";
86  else
87  edm::LogVerbatim("MuonTrackValidator") << "\n usetracker = FALSE : Tracker SimHits WILL NOT be counted";
88  if (usemuon)
89  edm::LogVerbatim("MuonTrackValidator") << " usemuon = TRUE : Muon SimHits WILL be counted";
90  else
91  edm::LogVerbatim("MuonTrackValidator") << " usemuon = FALSE : Muon SimHits WILL NOT be counted" << std::endl;
92 
93  // loop over the reco::Track collections to validate: check for inconsistent input settings
94  for (unsigned int www = 0; www < label.size(); www++) {
95  std::string recoTracksLabel = label[www].label();
96  std::string recoTracksInstance = label[www].instance();
97 
98  // tracks with hits only on tracker
99  if (recoTracksLabel == "generalTracks" || (recoTracksLabel.find("cutsRecoTracks") != std::string::npos) ||
100  recoTracksLabel == "ctfWithMaterialTracksP5LHCNavigation" || recoTracksLabel == "hltL3TkTracksFromL2" ||
101  (recoTracksLabel == "hltL3Muons" && recoTracksInstance == "L2Seeded")) {
102  if (usemuon) {
103  edm::LogWarning("MuonTrackValidator")
104  << "\n*** WARNING : inconsistent input tracksTag = " << label[www] << "\n with usemuon == true"
105  << "\n ---> please change to usemuon == false ";
106  }
107  if (!usetracker) {
108  edm::LogWarning("MuonTrackValidator")
109  << "\n*** WARNING : inconsistent input tracksTag = " << label[www] << "\n with usetracker == false"
110  << "\n ---> please change to usetracker == true ";
111  }
112  }
113 
114  // tracks with hits only on muon detectors
115  else if (recoTracksLabel == "standAloneMuons" || recoTracksLabel == "standAloneSETMuons" ||
116  recoTracksLabel == "cosmicMuons" || recoTracksLabel == "hltL2Muons") {
117  if (usetracker) {
118  edm::LogWarning("MuonTrackValidator")
119  << "\n*** WARNING : inconsistent input tracksTag = " << label[www] << "\n with usetracker == true"
120  << "\n ---> please change to usetracker == false ";
121  }
122  if (!usemuon) {
123  edm::LogWarning("MuonTrackValidator")
124  << "\n*** WARNING : inconsistent input tracksTag = " << label[www] << "\n with usemuon == false"
125  << "\n ---> please change to usemuon == true ";
126  }
127  }
128 
129  } // for (unsigned int www=0;www<label.size();www++)
130  }

References _simHitTpMapTag, LCToCPAssociation_cfi::associator, associatormap, MuonTrackValidatorBase::associators, BiDirectional_RecoToSim_association, MuonTrackValidatorBase::bsSrc, MuonTrackValidatorBase::bsSrc_Token, cosmictpSelector, dirName_, edm::InputTag::label(), MuonTrackValidatorBase::label, MuonTrackValidatorBase::label_pileupinfo, MuonTrackValidatorBase::label_tp_effic, MuonTrackValidatorBase::label_tp_fake, MABH, MuonTrackValidatorBase::pileupinfo_Token, muonDTDigis_cfi::pset, recoToSimCollection_Token, simToRecoCollection_Token, AlCaHLTBitMon_QueryRunRegistry::string, MuonTrackValidatorBase::tp_effic_Token, MuonTrackValidatorBase::tp_fake_Token, tpSelector, MuonTrackValidatorBase::track_Collection_Token, UseAssociators, useGEMs_, useME0_, MuonTrackValidatorBase::usemuon, and MuonTrackValidatorBase::usetracker.

◆ ~MuonTrackValidator()

MuonTrackValidator::~MuonTrackValidator ( )
inlineoverride

Destructor.

Definition at line 133 of file MuonTrackValidator.h.

133 {}

Member Function Documentation

◆ analyze()

void MuonTrackValidator::analyze ( const edm::Event event,
const edm::EventSetup setup 
)
overridevirtual

Method called before the event loop.

Method called once per event

Reimplemented from DQMEDAnalyzer.

Definition at line 359 of file MuonTrackValidator.cc.

359  {
360  using namespace reco;
361 
362  edm::LogInfo("MuonTrackValidator") << "\n===================================================="
363  << "\n"
364  << "Analyzing new event"
365  << "\n"
366  << "====================================================\n"
367  << "\n";
368 
370  int PU_NumInteractions(-1);
371 
372  edm::ESHandle<ParametersDefinerForTP> Lhc_parametersDefinerTP;
373  std::unique_ptr<ParametersDefinerForTP> Cosmic_parametersDefinerTP;
374 
375  if (parametersDefiner == "LhcParametersDefinerForTP") {
376  setup.get<TrackAssociatorRecord>().get(parametersDefiner, Lhc_parametersDefinerTP);
377 
378  // PileupSummaryInfo is contained only in collision events
379  event.getByToken(pileupinfo_Token, puinfoH);
380  for (std::vector<PileupSummaryInfo>::const_iterator puInfoIt = puinfoH->begin(); puInfoIt != puinfoH->end();
381  ++puInfoIt) {
382  if (puInfoIt->getBunchCrossing() == 0) {
383  PU_NumInteractions = puInfoIt->getPU_NumInteractions();
384  break;
385  }
386  }
387 
388  } else if (parametersDefiner == "CosmicParametersDefinerForTP") {
389  edm::ESHandle<CosmicParametersDefinerForTP> _Cosmic_parametersDefinerTP;
390  setup.get<TrackAssociatorRecord>().get(parametersDefiner, _Cosmic_parametersDefinerTP);
391 
392  //Since we modify the object, we must clone it
393  Cosmic_parametersDefinerTP = _Cosmic_parametersDefinerTP->clone();
394 
396  //warning: make sure the TP collection used in the map is the same used here
397  event.getByToken(_simHitTpMapTag, simHitsTPAssoc);
398  Cosmic_parametersDefinerTP->initEvent(simHitsTPAssoc);
399  cosmictpSelector.initEvent(simHitsTPAssoc);
400  } else {
401  edm::LogError("MuonTrackValidator") << "Unexpected label: parametersDefiner = " << parametersDefiner.c_str()
402  << "\n";
403  }
404 
406  event.getByToken(tp_effic_Token, TPCollectionHeff);
407  TrackingParticleCollection const& tPCeff = *(TPCollectionHeff.product());
408 
409  edm::Handle<TrackingParticleCollection> TPCollectionHfake;
410  event.getByToken(tp_fake_Token, TPCollectionHfake);
411 
412  edm::Handle<reco::BeamSpot> recoBeamSpotHandle;
413  event.getByToken(bsSrc_Token, recoBeamSpotHandle);
414  reco::BeamSpot bs = *recoBeamSpotHandle;
415 
416  std::vector<const reco::TrackToTrackingParticleAssociator*> associator;
417  if (UseAssociators) {
419  for (auto const& associatorName : associators) {
420  event.getByLabel(associatorName, theAssociator);
421  associator.push_back(theAssociator.product());
422  }
423  }
424 
425  int w = 0;
426  for (unsigned int ww = 0; ww < associators.size(); ww++) {
427  for (unsigned int www = 0; www < label.size(); www++) {
428  //
429  //get collections from the event
430  //
432  unsigned int trackCollectionSize = 0;
433 
434  reco::RecoToSimCollection recSimColl;
435  reco::SimToRecoCollection simRecColl;
436 
437  // account for missing track collections (HLT case)
439  recSimColl.post_insert();
440  simRecColl.post_insert();
441  }
442 
443  //associate tracks to TrackingParticles
444  else {
445  trackCollectionSize = trackCollection->size();
446 
447  if (UseAssociators) {
448  edm::LogVerbatim("MuonTrackValidator")
449  << "Analyzing " << label[www].process() << ":" << label[www].label() << ":" << label[www].instance()
450  << " with " << associators[ww].c_str() << "\n";
451 
452  LogTrace("MuonTrackValidator") << "Calling associateRecoToSim method"
453  << "\n";
454  recSimColl = associator[ww]->associateRecoToSim(trackCollection, TPCollectionHfake);
455  LogTrace("MuonTrackValidator") << "Calling associateSimToReco method"
456  << "\n";
457  simRecColl = associator[ww]->associateSimToReco(trackCollection, TPCollectionHeff);
458  } else {
459  edm::LogVerbatim("MuonTrackValidator")
460  << "Analyzing " << label[www].process() << ":" << label[www].label() << ":" << label[www].instance()
461  << " with " << associatormap.process() << ":" << associatormap.label() << ":" << associatormap.instance()
462  << "\n";
463 
464  Handle<reco::SimToRecoCollection> simtorecoCollectionH;
465  event.getByToken(simToRecoCollection_Token, simtorecoCollectionH);
466  simRecColl = *simtorecoCollectionH.product();
467 
468  Handle<reco::RecoToSimCollection> recotosimCollectionH;
469  event.getByToken(recoToSimCollection_Token, recotosimCollectionH);
470  recSimColl = *recotosimCollectionH.product();
471  }
472  }
473 
474  //
475  //fill simulation histograms
476  //
477  edm::LogVerbatim("MuonTrackValidator") << "\n# of TrackingParticles: " << tPCeff.size() << "\n";
478  int ats = 0;
479  int st = 0;
480  for (TrackingParticleCollection::size_type i = 0; i < tPCeff.size(); i++) {
481  bool TP_is_matched = false;
482  bool isChargeOK = true;
483  double quality = 0.;
484 
485  TrackingParticleRef tpr(TPCollectionHeff, i);
486  TrackingParticle* tp = const_cast<TrackingParticle*>(tpr.get());
487 
488  TrackingParticle::Vector momentumTP;
489  TrackingParticle::Point vertexTP;
490  double dxySim = 0;
491  double dzSim = 0;
492 
493  //If the TrackingParticle is collision-like, get the momentum and vertex at production state
494  //and the impact parameters w.r.t. PCA
495  if (parametersDefiner == "LhcParametersDefinerForTP") {
496  LogTrace("MuonTrackValidator") << "TrackingParticle " << i;
497  if (!tpSelector(*tp))
498  continue;
499  momentumTP = tp->momentum();
500  vertexTP = tp->vertex();
501  TrackingParticle::Vector momentum = Lhc_parametersDefinerTP->momentum(event, setup, tpr);
502  TrackingParticle::Point vertex = Lhc_parametersDefinerTP->vertex(event, setup, tpr);
503  dxySim = TrackingParticleIP::dxy(vertex, momentum, bs.position());
504  dzSim = TrackingParticleIP::dz(vertex, momentum, bs.position());
505  }
506  //for cosmics get the momentum and vertex at PCA
507  else if (parametersDefiner == "CosmicParametersDefinerForTP") {
508  edm::LogVerbatim("MuonTrackValidator") << "TrackingParticle " << i;
509  if (!cosmictpSelector(tpr, &bs, event, setup))
510  continue;
511  momentumTP = Cosmic_parametersDefinerTP->momentum(event, setup, tpr);
512  vertexTP = Cosmic_parametersDefinerTP->vertex(event, setup, tpr);
513  dxySim = TrackingParticleIP::dxy(vertexTP, momentumTP, bs.position());
514  dzSim = TrackingParticleIP::dz(vertexTP, momentumTP, bs.position());
515  }
516  edm::LogVerbatim("MuonTrackValidator") << "--------------------Selected TrackingParticle #" << tpr.key();
517  edm::LogVerbatim("MuonTrackValidator")
518  << "momentumTP: pt = " << sqrt(momentumTP.perp2()) << ", pz = " << momentumTP.z()
519  << ", \t vertexTP: radius = " << sqrt(vertexTP.perp2()) << ", z = " << vertexTP.z() << "\n";
520  st++;
521 
522  double TPeta = momentumTP.eta();
523  double xTPeta = getEta(TPeta); // may be |eta| in histos according to useFabsEta
524  double TPpt = sqrt(momentumTP.perp2());
525  double xTPpt = getPt(TPpt); // may be 1/pt in histos according to useInvPt
526  double TPphi = momentumTP.phi();
527  double TPrpos = sqrt(vertexTP.perp2());
528  double TPzpos = vertexTP.z();
529 
530  // Number of counted SimHits depend on the selection of tracker and muon detectors (via cfg parameters)
531  int nSimHits = 0;
532  if (usetracker && usemuon) {
533  nSimHits = tpr.get()->numberOfHits();
534  } else if (!usetracker && usemuon) {
535  nSimHits = tpr.get()->numberOfHits() - tpr.get()->numberOfTrackerHits();
536  } else if (usetracker && !usemuon) {
537  nSimHits = tpr.get()->numberOfTrackerHits();
538  }
539  edm::LogVerbatim("MuonTrackValidator") << "\t N simhits = " << nSimHits << "\n";
540 
541  int assoc_recoTrack_NValidHits = 0;
542  if (simRecColl.find(tpr) != simRecColl.end()) {
543  auto const& rt = simRecColl[tpr];
544  if (!rt.empty()) {
545  RefToBase<Track> assoc_recoTrack = rt.begin()->first;
546  edm::LogVerbatim("MuonTrackValidator")
547  << "-----------------------------associated Track #" << assoc_recoTrack.key();
548  TP_is_matched = true;
549  ats++;
550  if (assoc_recoTrack->charge() != tpr->charge())
551  isChargeOK = false;
552  quality = rt.begin()->second;
553  assoc_recoTrack_NValidHits = assoc_recoTrack->numberOfValidHits();
554  edm::LogVerbatim("MuonTrackValidator")
555  << "TrackingParticle #" << tpr.key() << " with pt=" << sqrt(momentumTP.perp2())
556  << " associated with quality:" << quality << "\n";
557  }
558  } else {
559  edm::LogVerbatim("MuonTrackValidator")
560  << "TrackingParticle #" << tpr.key() << " with pt,eta,phi: " << sqrt(momentumTP.perp2()) << " , "
561  << momentumTP.eta() << " , " << momentumTP.phi() << " , "
562  << " NOT associated to any reco::Track"
563  << "\n";
564  }
565 
566  // histos for efficiency vs eta
567 
568  fillPlotNoFlow(h_simuleta[w], xTPeta);
569  if (TP_is_matched) {
570  fillPlotNoFlow(h_assoceta[w], xTPeta);
571  if (!isChargeOK)
572  fillPlotNoFlow(h_misideta[w], xTPeta);
573  }
574 
575  // histos for efficiency vs phi
576  fillPlotNoFlow(h_simulphi[w], TPphi);
577  if (TP_is_matched) {
578  fillPlotNoFlow(h_assocphi[w], TPphi);
579  if (!isChargeOK)
580  fillPlotNoFlow(h_misidphi[w], TPphi);
581  }
582 
583  // histos for efficiency vs pT
584  fillPlotNoFlow(h_simulpT[w], xTPpt);
585  if (TP_is_matched) {
586  fillPlotNoFlow(h_assocpT[w], xTPpt);
587  if (!isChargeOK)
588  fillPlotNoFlow(h_misidpT[w], xTPpt);
589  }
590 
591  // histos for efficiency vs dxy
592  fillPlotNoFlow(h_simuldxy[w], dxySim);
593  if (TP_is_matched) {
594  fillPlotNoFlow(h_assocdxy[w], dxySim);
595  if (!isChargeOK)
596  fillPlotNoFlow(h_misiddxy[w], dxySim);
597  }
598 
599  // histos for efficiency vs dz
600  fillPlotNoFlow(h_simuldz[w], dzSim);
601  if (TP_is_matched) {
602  fillPlotNoFlow(h_assocdz[w], dzSim);
603  if (!isChargeOK)
604  fillPlotNoFlow(h_misiddz[w], dzSim);
605  }
606 
607  // histos for efficiency vs Radius
608  fillPlotNoFlow(h_simulRpos[w], TPrpos);
609  if (TP_is_matched)
610  fillPlotNoFlow(h_assocRpos[w], TPrpos);
611 
612  // histos for efficiency vs z position
613  fillPlotNoFlow(h_simulZpos[w], TPzpos);
614  if (TP_is_matched)
615  fillPlotNoFlow(h_assocZpos[w], TPzpos);
616 
617  // histos for efficiency vs Number of Hits
618  fillPlotNoFlow(h_simulhit[w], nSimHits);
619  if (TP_is_matched) {
620  fillPlotNoFlow(h_assochit[w], nSimHits);
621  nRecHits_vs_nSimHits[w]->Fill(nSimHits, assoc_recoTrack_NValidHits);
622 
623  // charge misid is more useful w.r.t. nRecHits (filled after)
624  //if (!isChargeOK) fillPlotNoFlow(h_misidhit[w], nSimHits);
625  }
626 
627  // histos for efficiency vs PileUp
628  fillPlotNoFlow(h_simulpu[w], PU_NumInteractions);
629  if (TP_is_matched) {
630  fillPlotNoFlow(h_assocpu[w], PU_NumInteractions);
631  if (!isChargeOK)
632  fillPlotNoFlow(h_misidpu[w], PU_NumInteractions);
633  }
634 
635  } // End for (TrackingParticleCollection::size_type i=0; i<tPCeff.size(); i++){
636 
637  //
638  //fill reconstructed track histograms
639  //
640  edm::LogVerbatim("MuonTrackValidator")
641  << "\n# of reco::Tracks with " << label[www].process() << ":" << label[www].label() << ":"
642  << label[www].instance() << ": " << trackCollectionSize << "\n";
643 
644  int at = 0;
645  int rT = 0;
646  for (edm::View<Track>::size_type i = 0; i < trackCollectionSize; ++i) {
647  bool Track_is_matched = false;
648  bool isChargeOK = true;
650  rT++;
651 
652  std::vector<std::pair<TrackingParticleRef, double> > tp;
654 
655  // new logic (bidirectional)
657  edm::LogVerbatim("MuonTrackValidator") << "----------------------------------------Track #" << track.key();
658 
659  if (recSimColl.find(track) != recSimColl.end()) {
660  tp = recSimColl[track];
661  if (!tp.empty()) {
662  tpr = tp.begin()->first;
663  // RtS and StR must associate the same pair !
664  if (simRecColl.find(tpr) != simRecColl.end()) {
665  auto const& assoc_track_checkback = simRecColl[tpr].begin()->first;
666 
667  if (assoc_track_checkback.key() == track.key()) {
668  edm::LogVerbatim("MuonTrackValidator")
669  << "------------------associated TrackingParticle #" << tpr.key();
670  Track_is_matched = true;
671  at++;
672  if (track->charge() != tpr->charge())
673  isChargeOK = false;
674  double Purity = tp.begin()->second;
675  double Quality = simRecColl[tpr].begin()->second;
676  edm::LogVerbatim("MuonTrackValidator") << "reco::Track #" << track.key() << " with pt=" << track->pt()
677  << " associated with purity:" << Purity << "\n";
678  if (MABH)
679  h_PurityVsQuality[w]->Fill(Quality, Purity);
680  }
681  }
682  }
683  }
684 
685  if (!Track_is_matched)
686  edm::LogVerbatim("MuonTrackValidator") << "reco::Track #" << track.key() << " with pt=" << track->pt()
687  << " NOT associated to any TrackingParticle"
688  << "\n";
689  }
690  // old logic, valid for cosmics 2-legs reco (bugged for collision scenario)
691  else {
692  if (recSimColl.find(track) != recSimColl.end()) {
693  tp = recSimColl[track];
694  if (!tp.empty()) {
695  tpr = tp.begin()->first;
696  Track_is_matched = true;
697  at++;
698  if (track->charge() != tpr->charge())
699  isChargeOK = false;
700  edm::LogVerbatim("MuonTrackValidator") << "reco::Track #" << track.key() << " with pt=" << track->pt()
701  << " associated with quality:" << tp.begin()->second << "\n";
702  }
703  } else {
704  edm::LogVerbatim("MuonTrackValidator") << "reco::Track #" << track.key() << " with pt=" << track->pt()
705  << " NOT associated to any TrackingParticle"
706  << "\n";
707  }
708  }
709 
710  //
711  int nRecHits = track->numberOfValidHits();
712  edm::LogVerbatim("MuonTrackValidator") << "\t N valid rechits = " << nRecHits << "\n";
713 
714  double etaRec = track->eta();
715  double xetaRec = getEta(etaRec);
716 
717  double ptRec = track->pt();
718  double xptRec = getPt(ptRec);
719 
720  double qoverpRec = track->qoverp();
721  double phiRec = track->phi();
722  double thetaRec = track->theta();
723  double dxyRec = track->dxy(bs.position());
724  double dzRec = track->dz(bs.position());
725 
726  double qoverpError = track->qoverpError();
727  double ptError = track->ptError();
728  double thetaError = track->thetaError();
729  double phiError = track->phiError();
730  double dxyError = track->dxyError();
731  double dzError = track->dzError();
732 
733  // histos for fake rate vs eta
734  fillPlotNoFlow(h_recoeta[w], xetaRec);
735  if (Track_is_matched) {
736  fillPlotNoFlow(h_assoc2eta[w], xetaRec);
737  }
738 
739  // histos for fake rate vs phi
740  fillPlotNoFlow(h_recophi[w], phiRec);
741  if (Track_is_matched) {
742  fillPlotNoFlow(h_assoc2phi[w], phiRec);
743  }
744 
745  // histos for fake rate vs pT
746  fillPlotNoFlow(h_recopT[w], xptRec);
747  if (Track_is_matched) {
748  fillPlotNoFlow(h_assoc2pT[w], xptRec);
749  }
750 
751  // histos for fake rate vs dxy
752  fillPlotNoFlow(h_recodxy[w], dxyRec);
753  if (Track_is_matched) {
754  fillPlotNoFlow(h_assoc2dxy[w], dxyRec);
755  }
756 
757  // histos for fake rate vs dz
758  fillPlotNoFlow(h_recodz[w], dzRec);
759  if (Track_is_matched) {
760  fillPlotNoFlow(h_assoc2dz[w], dzRec);
761  }
762 
763  // histos for fake rate vs Number of RecHits in track
764  fillPlotNoFlow(h_recohit[w], nRecHits);
765  if (Track_is_matched) {
766  fillPlotNoFlow(h_assoc2hit[w], nRecHits);
767  // charge misid w.r.t. nRecHits
768  if (!isChargeOK)
769  fillPlotNoFlow(h_misidhit[w], nRecHits);
770  }
771 
772  // histos for fake rate vs Number of PU interactions
773  fillPlotNoFlow(h_recopu[w], PU_NumInteractions);
774  if (Track_is_matched) {
775  fillPlotNoFlow(h_assoc2pu[w], PU_NumInteractions);
776  }
777 
778  // Fill other histos
779  TrackingParticle* tpp = const_cast<TrackingParticle*>(tpr.get());
780  // TrackingParticle parameters at point of closest approach to the beamline
781  TrackingParticle::Vector momentumTP;
782  TrackingParticle::Point vertexTP;
783 
784  if (parametersDefiner == "LhcParametersDefinerForTP") {
785  // following reco plots are made only from tracks associated to selected signal TPs
786  if (!(Track_is_matched && tpSelector(*tpp)))
787  continue;
788  else {
789  momentumTP = Lhc_parametersDefinerTP->momentum(event, setup, tpr);
790  vertexTP = Lhc_parametersDefinerTP->vertex(event, setup, tpr);
791  }
792  } else if (parametersDefiner == "CosmicParametersDefinerForTP") {
793  // following reco plots are made only from tracks associated to selected signal TPs
794  if (!(Track_is_matched && cosmictpSelector(tpr, &bs, event, setup)))
795  continue;
796  else {
797  momentumTP = Cosmic_parametersDefinerTP->momentum(event, setup, tpr);
798  vertexTP = Cosmic_parametersDefinerTP->vertex(event, setup, tpr);
799  }
800  }
801 
802  if (associators[ww] == "trackAssociatorByChi2") {
803  //association chi2
804  double assocChi2 = -tp.begin()->second; //in association map is stored -chi2
805  h_assochi2[www]->Fill(assocChi2);
806  h_assochi2_prob[www]->Fill(TMath::Prob((assocChi2)*5, 5));
807  } else if (associators[ww] == "trackAssociatorByHits") {
808  double fraction = tp.begin()->second;
809  h_assocFraction[www]->Fill(fraction);
810  h_assocSharedHit[www]->Fill(fraction * nRecHits);
811  }
812 
813  h_charge[w]->Fill(track->charge());
814 
815  // Hits
816  h_nhits[w]->Fill(nRecHits);
817  nhits_vs_eta[w]->Fill(xetaRec, nRecHits);
818  nhits_vs_phi[w]->Fill(phiRec, nRecHits);
819 
820  if (do_MUOhitsPlots) {
821  nDThits_vs_eta[w]->Fill(xetaRec, track->hitPattern().numberOfValidMuonDTHits());
822  nCSChits_vs_eta[w]->Fill(xetaRec, track->hitPattern().numberOfValidMuonCSCHits());
823  nRPChits_vs_eta[w]->Fill(xetaRec, track->hitPattern().numberOfValidMuonRPCHits());
824  if (useGEMs_)
825  nGEMhits_vs_eta[w]->Fill(xetaRec, track->hitPattern().numberOfValidMuonGEMHits());
826  if (useME0_)
827  nME0hits_vs_eta[w]->Fill(xetaRec, track->hitPattern().numberOfValidMuonME0Hits());
828  }
829 
830  if (do_TRKhitsPlots) {
831  nTRK_LayersWithMeas_vs_eta[w]->Fill(xetaRec, track->hitPattern().trackerLayersWithMeasurement());
832  nPixel_LayersWithMeas_vs_eta[w]->Fill(xetaRec, track->hitPattern().pixelLayersWithMeasurement());
833  h_nlosthits[w]->Fill(track->numberOfLostHits());
834  h_nmisslayers_inner[w]->Fill(track->hitPattern().numberOfLostHits(reco::HitPattern::MISSING_INNER_HITS));
835  h_nmisslayers_outer[w]->Fill(track->hitPattern().numberOfLostHits(reco::HitPattern::MISSING_OUTER_HITS));
836  nlosthits_vs_eta[w]->Fill(xetaRec, track->numberOfLostHits());
837  }
838 
839  // normalized chi2
840  h_nchi2[w]->Fill(track->normalizedChi2());
841  h_nchi2_prob[w]->Fill(TMath::Prob(track->chi2(), (int)track->ndof()));
842  chi2_vs_nhits[w]->Fill(nRecHits, track->normalizedChi2());
843  chi2_vs_eta[w]->Fill(xetaRec, track->normalizedChi2());
844  chi2_vs_phi[w]->Fill(phiRec, track->normalizedChi2());
845 
846  double ptSim = sqrt(momentumTP.perp2());
847  double xptSim = getPt(ptSim);
848  double qoverpSim = tpr->charge() / sqrt(momentumTP.x() * momentumTP.x() + momentumTP.y() * momentumTP.y() +
849  momentumTP.z() * momentumTP.z());
850  double etaSim = momentumTP.eta();
851  double thetaSim = momentumTP.theta();
852  double phiSim = momentumTP.phi();
853  double dxySim = TrackingParticleIP::dxy(vertexTP, momentumTP, bs.position());
854  double dzSim = TrackingParticleIP::dz(vertexTP, momentumTP, bs.position());
855 
856  double etares = etaRec - etaSim;
857  double ptRelRes = (ptRec - ptSim) / ptSim; // relative residual -> resolution
858  double ptPull = (ptRec - ptSim) / ptError;
859  double qoverpPull = (qoverpRec - qoverpSim) / qoverpError;
860  double thetaPull = (thetaRec - thetaSim) / thetaError;
861  double phiDiff = phiRec - phiSim;
862  if (abs(phiDiff) > M_PI) {
863  if (phiDiff > 0.)
864  phiDiff = phiDiff - 2. * M_PI;
865  else
866  phiDiff = phiDiff + 2. * M_PI;
867  }
868  double phiPull = phiDiff / phiError;
869  double dxyPull = (dxyRec - dxySim) / dxyError;
870  double dzPull = (dzRec - dzSim) / dzError;
871 
872  h_etaRes[w]->Fill(etares);
873  etares_vs_eta[w]->Fill(xetaRec, etares);
874 
875  ptres_vs_eta[w]->Fill(xetaRec, ptRelRes);
876  ptres_vs_pt[w]->Fill(xptSim, ptRelRes);
877  ptres_vs_phi[w]->Fill(phiRec, ptRelRes);
878  h_ptpull[w]->Fill(ptPull);
879  ptpull_vs_eta[w]->Fill(xetaRec, ptPull);
880  ptpull_vs_phi[w]->Fill(phiRec, ptPull);
881  h_qoverppull[w]->Fill(qoverpPull);
882 
883  thetaCotres_vs_eta[w]->Fill(xetaRec, cos(thetaRec) / sin(thetaRec) - cos(thetaSim) / sin(thetaSim));
884  thetaCotres_vs_pt[w]->Fill(xptSim, cos(thetaRec) / sin(thetaRec) - cos(thetaSim) / sin(thetaSim));
885  h_thetapull[w]->Fill(thetaPull);
886  thetapull_vs_eta[w]->Fill(xetaRec, thetaPull);
887  thetapull_vs_phi[w]->Fill(phiRec, thetaPull);
888 
889  phires_vs_eta[w]->Fill(xetaRec, phiDiff);
890  phires_vs_pt[w]->Fill(xptSim, phiDiff);
891  phires_vs_phi[w]->Fill(phiRec, phiDiff);
892  h_phipull[w]->Fill(phiPull);
893  phipull_vs_eta[w]->Fill(xetaRec, phiPull);
894  phipull_vs_phi[w]->Fill(phiRec, phiPull);
895 
896  dxyres_vs_eta[w]->Fill(xetaRec, dxyRec - dxySim);
897  dxyres_vs_pt[w]->Fill(xptSim, dxyRec - dxySim);
898  h_dxypull[w]->Fill(dxyPull);
899  dxypull_vs_eta[w]->Fill(xetaRec, dxyPull);
900 
901  dzres_vs_eta[w]->Fill(xetaRec, dzRec - dzSim);
902  dzres_vs_pt[w]->Fill(xptSim, dzRec - dzSim);
903  h_dzpull[w]->Fill(dzPull);
904  dzpull_vs_eta[w]->Fill(xetaRec, dzPull);
905 
906  double contrib_Qoverp = qoverpPull * qoverpPull / 5;
907  double contrib_dxy = dxyPull * dxyPull / 5;
908  double contrib_dz = dzPull * dzPull / 5;
909  double contrib_theta = thetaPull * thetaPull / 5;
910  double contrib_phi = phiPull * phiPull / 5;
911  double assoChi2 = contrib_Qoverp + contrib_dxy + contrib_dz + contrib_theta + contrib_phi;
912 
913  edm::LogVerbatim("MuonTrackValidator") << "normalized Chi2 (track 5-dofs matching) = " << assoChi2 << "\n"
914  << "\t contrib_Qoverp = " << contrib_Qoverp << "\n"
915  << "\t contrib_theta = " << contrib_theta << "\n"
916  << "\t contrib_phi = " << contrib_phi << "\n"
917  << "\t contrib_dxy = " << contrib_dxy << "\n"
918  << "\t contrib_dz = " << contrib_dz << "\n";
919 
920  edm::LogVerbatim("MuonTrackValidator") << "ptRec = " << ptRec << "\n"
921  << "etaRec = " << etaRec << "\n"
922  << "qoverpRec = " << qoverpRec << "\n"
923  << "thetaRec = " << thetaRec << "\n"
924  << "phiRec = " << phiRec << "\n"
925  << "dxyRec = " << dxyRec << "\n"
926  << "dzRec = " << dzRec << "\n"
927  << ""
928  << "\n"
929  << "qoverpError = " << qoverpError << "\n"
930  << "thetaError = " << thetaError << "\n"
931  << "phiError = " << phiError << "\n"
932  << "dxyError = " << dxyError << "\n"
933  << "dzError = " << dzError << "\n"
934  << ""
935  << "\n"
936  << "ptSim = " << ptSim << "\n"
937  << "etaSim = " << etaSim << "\n"
938  << "qoverpSim = " << qoverpSim << "\n"
939  << "thetaSim = " << thetaSim << "\n"
940  << "phiSim = " << phiSim << "\n"
941  << "dxySim = " << dxySim << "\n"
942  << "dzSim = " << dzSim << "\n";
943  } // End of for(edm::View<Track>::size_type i=0; i<trackCollectionSize; ++i) {
944 
945  h_tracks[w]->Fill(at);
946  h_fakes[w]->Fill(rT - at);
947  edm::LogVerbatim("MuonTrackValidator") << "Total Simulated: " << st << "\n"
948  << "Total Associated (simToReco): " << ats << "\n"
949  << "Total Reconstructed: " << rT << "\n"
950  << "Total Associated (recoToSim): " << at << "\n"
951  << "Total Fakes: " << rT - at << "\n";
952  w++;
953  } // End of for (unsigned int www=0;www<label.size();www++){
954  } //END of for (unsigned int ww=0;ww<associators.size();ww++){
955 }

References funct::abs(), LCToCPAssociation_cfi::associator, muonValidationHeavyIons_cff::associatormap, MuonErrorMatrixAnalyzer_cfi::associatorName, trackTimeValueMapProducer_cfi::associators, edm::AssociationMap< Tag >::begin(), MuonTrackValidator_cfi::BiDirectional_RecoToSim_association, cms::cuda::bs, reco::TrackBase::charge(), CosmicParametersDefinerForTP::clone(), funct::cos(), histoParameters_cff::do_MUOhitsPlots, histoParameters_cff::do_TRKhitsPlots, TrackingParticleIP::dxy(), TrackingParticleIP::dz(), edm::AssociationMap< Tag >::end(), edm::AssociationMap< Tag >::find(), HLT_FULL_cff::fraction, get, edm::Ref< C, T, F >::get(), mps_fire::i, createfilelist::int, edm::RefToBase< T >::key(), edm::Ref< C, T, F >::key(), label, LogTrace, M_PI, associators_cff::MABH, reco::HitPattern::MISSING_INNER_HITS, reco::HitPattern::MISSING_OUTER_HITS, ParametersDefinerForTP::momentum(), reco::TrackBase::numberOfValidHits(), MuonTrackValidator_cfi::parametersDefiner, muonME0PseudoDigis_cfi::phiError, edm::AssociationMap< Tag >::post_insert(), edm::Handle< T >::product(), quality, hcal_runs::rt, singleTopDQM_cfi::setup, funct::sin(), mathSSE::sqrt(), cmsswSequenceInfo::tp, RecoMuonValidator_cfi::tpSelector, HLT_FULL_cff::track, duplicaterechits_cfi::trackCollection, TrackAlgoCompareUtil_cfi::UseAssociators, histoParameters_cff::usemuon, histoParameters_cff::usetracker, bphysicsOniaDQM_cfi::vertex, ParametersDefinerForTP::vertex(), and w.

◆ bookHistograms()

void MuonTrackValidator::bookHistograms ( DQMEDAnalyzer::DQMStore::IBooker ibooker,
edm::Run const &  ,
edm::EventSetup const &  setup 
)
overridevirtual

Method called at the end of the event loop.

Implements DQMEDAnalyzer.

Definition at line 24 of file MuonTrackValidator.cc.

26  {
27  for (unsigned int ww = 0; ww < associators.size(); ww++) {
28  for (unsigned int www = 0; www < label.size(); www++) {
29  ibooker.cd();
30  InputTag algo = label[www];
31  string dirName = dirName_;
32 
33  auto setBinLogX = [this](TH1* th1) {
34  if (this->useLogPt) {
35  BinLogX(th1);
36  }
37  };
38 
39  if (!algo.process().empty())
40  dirName += algo.process() + "_";
41  if (!algo.label().empty())
42  dirName += algo.label();
43  if (!algo.instance().empty())
44  dirName += ("_" + algo.instance());
45  if (dirName.find("Tracks") < dirName.length()) {
46  dirName.replace(dirName.find("Tracks"), 6, "Trks");
47  }
48  if (dirName.find("UpdatedAtVtx") < dirName.length()) {
49  dirName.replace(dirName.find("UpdatedAtVtx"), 12, "UpdAtVtx");
50  }
51  string assoc = associators[ww];
52  if (assoc.find("tpToTkmuTrackAssociation") < assoc.length()) {
53  dirName += "_TkAsso";
54  }
55  std::replace(dirName.begin(), dirName.end(), ':', '_');
56  ibooker.setCurrentFolder(dirName);
57 
58  h_tracks.push_back(
59  ibooker.book1D("Ntracks", "Number of reconstructed tracks", nintNTracks, minNTracks, maxNTracks));
60  h_fakes.push_back(ibooker.book1D("Nfakes", "Number of fake reco tracks", nintFTracks, minFTracks, maxFTracks));
61  h_charge.push_back(ibooker.book1D("Ncharge", "track charge", 3, -1.5, 1.5));
62 
63  h_recoeta.push_back(ibooker.book1D("num_reco_eta", "N of reco track vs eta", nintEta, minEta, maxEta));
64  h_assoceta.push_back(ibooker.book1D(
65  "num_assoSimToReco_eta", "N of associated tracks (simToReco) vs eta", nintEta, minEta, maxEta));
66  h_assoc2eta.push_back(ibooker.book1D(
67  "num_assoRecoToSim_eta", "N of associated (recoToSim) tracks vs eta", nintEta, minEta, maxEta));
68  h_simuleta.push_back(ibooker.book1D("num_simul_eta", "N of simulated tracks vs eta", nintEta, minEta, maxEta));
69  h_misideta.push_back(ibooker.book1D("num_chargemisid_eta",
70  "N of associated (simToReco) tracks with charge misID vs eta",
71  nintEta,
72  minEta,
73  maxEta));
74 
75  h_recopT.push_back(ibooker.book1D("num_reco_pT", "N of reco track vs pT", nintPt, minPt, maxPt, setBinLogX));
76  h_assocpT.push_back(ibooker.book1D(
77  "num_assoSimToReco_pT", "N of associated tracks (simToReco) vs pT", nintPt, minPt, maxPt, setBinLogX));
78  h_assoc2pT.push_back(ibooker.book1D(
79  "num_assoRecoToSim_pT", "N of associated (recoToSim) tracks vs pT", nintPt, minPt, maxPt, setBinLogX));
80  h_simulpT.push_back(
81  ibooker.book1D("num_simul_pT", "N of simulated tracks vs pT", nintPt, minPt, maxPt, setBinLogX));
82  h_misidpT.push_back(ibooker.book1D("num_chargemisid_pT",
83  "N of associated (simToReco) tracks with charge misID vs pT",
84  nintPt,
85  minPt,
86  maxPt,
87  setBinLogX));
88 
89  h_recophi.push_back(ibooker.book1D("num_reco_phi", "N of reco track vs phi", nintPhi, minPhi, maxPhi));
90  h_assocphi.push_back(ibooker.book1D(
91  "num_assoSimToReco_phi", "N of associated tracks (simToReco) vs phi", nintPhi, minPhi, maxPhi));
92  h_assoc2phi.push_back(ibooker.book1D(
93  "num_assoRecoToSim_phi", "N of associated (recoToSim) tracks vs phi", nintPhi, minPhi, maxPhi));
94  h_simulphi.push_back(ibooker.book1D("num_simul_phi", "N of simulated tracks vs phi", nintPhi, minPhi, maxPhi));
95  h_misidphi.push_back(ibooker.book1D("num_chargemisid_phi",
96  "N of associated (simToReco) tracks with charge misID vs phi",
97  nintPhi,
98  minPhi,
99  maxPhi));
100 
101  h_recohit.push_back(ibooker.book1D("num_reco_hit", "N of reco tracks vs N SimHits", nintNHit, minNHit, maxNHit));
102  h_assochit.push_back(ibooker.book1D(
103  "num_assoSimToReco_hit", "N of associated tracks (simToReco) vs N SimHits", nintNHit, minNHit, maxNHit));
104  h_assoc2hit.push_back(ibooker.book1D(
105  "num_assoRecoToSim_hit", "N of associated (recoToSim) tracks vs N Rechits", nintNHit, minNHit, maxNHit));
106  h_simulhit.push_back(
107  ibooker.book1D("num_simul_hit", "N of simulated tracks vs N SimHits", nintNHit, minNHit, maxNHit));
108  h_misidhit.push_back(ibooker.book1D("num_chargemisid_hit",
109  "N of associated (recoToSim) tracks with charge misID vs N RecHits",
110  nintNHit,
111  minNHit,
112  maxNHit));
113 
114  h_recodxy.push_back(ibooker.book1D("num_reco_dxy", "N of reco track vs dxy", nintDxy, minDxy, maxDxy));
115  h_assocdxy.push_back(ibooker.book1D(
116  "num_assoSimToReco_dxy", "N of associated tracks (simToReco) vs dxy", nintDxy, minDxy, maxDxy));
117  h_assoc2dxy.push_back(ibooker.book1D(
118  "num_assoRecoToSim_dxy", "N of associated (recoToSim) tracks vs dxy", nintDxy, minDxy, maxDxy));
119  h_simuldxy.push_back(ibooker.book1D("num_simul_dxy", "N of simulated tracks vs dxy", nintDxy, minDxy, maxDxy));
120  h_misiddxy.push_back(ibooker.book1D("num_chargemisid_dxy",
121  "N of associated (simToReco) tracks with charge misID vs dxy",
122  nintDxy,
123  minDxy,
124  maxDxy));
125  h_recodz.push_back(ibooker.book1D("num_reco_dz", "N of reco track vs dz", nintDz, minDz, maxDz));
126  h_assocdz.push_back(
127  ibooker.book1D("num_assoSimToReco_dz", "N of associated tracks (simToReco) vs dz", nintDz, minDz, maxDz));
128  h_assoc2dz.push_back(
129  ibooker.book1D("num_assoRecoToSim_dz", "N of associated (recoToSim) tracks vs dz", nintDz, minDz, maxDz));
130  h_simuldz.push_back(ibooker.book1D("num_simul_dz", "N of simulated tracks vs dz", nintDz, minDz, maxDz));
131  h_misiddz.push_back(ibooker.book1D(
132  "num_chargemisid_dz", "N of associated (simToReco) tracks with charge misID vs dz", nintDz, minDz, maxDz));
133 
134  h_assocRpos.push_back(ibooker.book1D(
135  "num_assoSimToReco_Rpos", "N of associated tracks (simToReco) vs Radius", nintRpos, minRpos, maxRpos));
136  h_simulRpos.push_back(
137  ibooker.book1D("num_simul_Rpos", "N of simulated tracks vs Radius", nintRpos, minRpos, maxRpos));
138 
139  h_assocZpos.push_back(ibooker.book1D(
140  "num_assoSimToReco_Zpos", "N of associated tracks (simToReco) vs Z", nintZpos, minZpos, maxZpos));
141  h_simulZpos.push_back(ibooker.book1D("num_simul_Zpos", "N of simulated tracks vs Z", nintZpos, minZpos, maxZpos));
142 
143  h_recopu.push_back(ibooker.book1D("num_reco_pu", "N of reco track vs pu", nintPU, minPU, maxPU));
144  h_assocpu.push_back(
145  ibooker.book1D("num_assoSimToReco_pu", "N of associated tracks (simToReco) vs pu", nintPU, minPU, maxPU));
146  h_assoc2pu.push_back(
147  ibooker.book1D("num_assoRecoToSim_pu", "N of associated (recoToSim) tracks vs pu", nintPU, minPU, maxPU));
148  h_simulpu.push_back(ibooker.book1D("num_simul_pu", "N of simulated tracks vs pu", nintPU, minPU, maxPU));
149  h_misidpu.push_back(ibooker.book1D(
150  "num_chargemisid_pu", "N of associated (simToReco) charge misIDed tracks vs pu", nintPU, minPU, maxPU));
151 
152  h_nchi2.push_back(ibooker.book1D("chi2", "Track normalized #chi^{2}", 80, 0., 20.));
153  h_nchi2_prob.push_back(ibooker.book1D("chi2prob", "Probability of track normalized #chi^{2}", 100, 0., 1.));
154 
155  chi2_vs_nhits.push_back(
156  ibooker.book2D("chi2_vs_nhits", "#chi^{2} vs nhits", nintNHit, minNHit, maxNHit, 20, 0., 10.));
157  chi2_vs_eta.push_back(ibooker.book2D("chi2_vs_eta", "chi2_vs_eta", nintEta, minEta, maxEta, 40, 0., 20.));
158  chi2_vs_phi.push_back(ibooker.book2D("chi2_vs_phi", "#chi^{2} vs #phi", nintPhi, minPhi, maxPhi, 40, 0., 20.));
159 
160  h_nhits.push_back(ibooker.book1D("nhits", "Number of hits per track", nintNHit, minNHit, maxNHit));
161  nhits_vs_eta.push_back(
162  ibooker.book2D("nhits_vs_eta", "Number of Hits vs eta", nintEta, minEta, maxEta, nintNHit, minNHit, maxNHit));
163  nhits_vs_phi.push_back(
164  ibooker.book2D("nhits_vs_phi", "#hits vs #phi", nintPhi, minPhi, maxPhi, nintNHit, minNHit, maxNHit));
165 
166  if (do_MUOhitsPlots) {
167  nDThits_vs_eta.push_back(ibooker.book2D(
168  "nDThits_vs_eta", "Number of DT hits vs eta", nintEta, minEta, maxEta, nintDTHit, minDTHit, maxDTHit));
169  nCSChits_vs_eta.push_back(ibooker.book2D(
170  "nCSChits_vs_eta", "Number of CSC hits vs eta", nintEta, minEta, maxEta, nintCSCHit, minCSCHit, maxCSCHit));
171  nRPChits_vs_eta.push_back(ibooker.book2D(
172  "nRPChits_vs_eta", "Number of RPC hits vs eta", nintEta, minEta, maxEta, nintRPCHit, minRPCHit, maxRPCHit));
173  if (useGEMs_)
174  nGEMhits_vs_eta.push_back(ibooker.book2D(
175  "nGEMhits_vs_eta", "Number of GEM hits vs eta", nintEta, minEta, maxEta, nintNHit, minNHit, maxNHit));
176  if (useME0_)
177  nME0hits_vs_eta.push_back(ibooker.book2D(
178  "nME0hits_vs_eta", "Number of ME0 hits vs eta", nintEta, minEta, maxEta, nintNHit, minNHit, maxNHit));
179  }
180 
181  if (do_TRKhitsPlots) {
182  nTRK_LayersWithMeas_vs_eta.push_back(ibooker.book2D("nTRK_LayersWithMeas_vs_eta",
183  "# TRK Layers with measurement vs eta",
184  nintEta,
185  minEta,
186  maxEta,
187  nintLayers,
188  minLayers,
189  maxLayers));
190  nPixel_LayersWithMeas_vs_eta.push_back(ibooker.book2D("nPixel_LayersWithMeas_vs_eta",
191  "Number of Pixel Layers with measurement vs eta",
192  nintEta,
193  minEta,
194  maxEta,
195  nintPixels,
196  minPixels,
197  maxPixels));
198  h_nmisslayers_inner.push_back(ibooker.book1D(
199  "nTRK_misslayers_inner", "Number of missing inner TRK layers", nintLayers, minLayers, maxLayers));
200  h_nmisslayers_outer.push_back(ibooker.book1D(
201  "nTRK_misslayers_outer", "Number of missing outer TRK layers", nintLayers, minLayers, maxLayers));
202  h_nlosthits.push_back(ibooker.book1D("nlosthits", "Number of lost hits per track", 6, -0.5, 5.5));
203  nlosthits_vs_eta.push_back(ibooker.book2D(
204  "nlosthits_vs_eta", "Number of lost hits per track vs eta", nintEta, minEta, maxEta, 6, -0.5, 5.5));
205  }
206 
207  ptres_vs_eta.push_back(ibooker.book2D("ptres_vs_eta",
208  "p_{T} Relative Residual vs #eta",
209  nintEta,
210  minEta,
211  maxEta,
212  ptRes_nbin,
214  ptRes_rangeMax));
215  ptres_vs_phi.push_back(ibooker.book2D("ptres_vs_phi",
216  "p_{T} Relative Residual vs #phi",
217  nintPhi,
218  minPhi,
219  maxPhi,
220  ptRes_nbin,
222  ptRes_rangeMax));
223  ptres_vs_pt.push_back(ibooker.book2D("ptres_vs_pt",
224  "p_{T} Relative Residual vs p_{T}",
225  nintPt,
226  minPt,
227  maxPt,
228  ptRes_nbin,
231  setBinLogX));
232  h_ptpull.push_back(ibooker.book1D("ptpull", "p_{T} Pull", 100, -10., 10.));
233  ptpull_vs_eta.push_back(
234  ibooker.book2D("ptpull_vs_eta", "p_{T} Pull vs #eta", nintEta, minEta, maxEta, 100, -10., 10.));
235  ptpull_vs_phi.push_back(
236  ibooker.book2D("ptpull_vs_phi", "p_{T} Pull vs #phi", nintPhi, minPhi, maxPhi, 100, -10., 10.));
237  h_qoverppull.push_back(ibooker.book1D("qoverppull", "q/p Pull", 100, -10., 10.));
238 
239  h_etaRes.push_back(ibooker.book1D("etaRes", "#eta residual", etaRes_nbin, etaRes_rangeMin, etaRes_rangeMax));
240  etares_vs_eta.push_back(ibooker.book2D("etares_vs_eta",
241  "#eta Residual vs #eta",
242  nintEta,
243  minEta,
244  maxEta,
245  etaRes_nbin,
247  etaRes_rangeMax));
248 
249  thetaCotres_vs_eta.push_back(ibooker.book2D("thetaCotres_vs_eta",
250  "cot(#theta) Residual vs #eta",
251  nintEta,
252  minEta,
253  maxEta,
257  thetaCotres_vs_pt.push_back(ibooker.book2D("thetaCotres_vs_pt",
258  "cot(#theta) Residual vs p_{T}",
259  nintPt,
260  minPt,
261  maxPt,
265  setBinLogX));
266  h_thetapull.push_back(ibooker.book1D("thetapull", "#theta Pull", 100, -10., 10.));
267  thetapull_vs_eta.push_back(
268  ibooker.book2D("thetapull_vs_eta", "#theta Pull vs #eta", nintEta, minEta, maxEta, 100, -10, 10));
269  thetapull_vs_phi.push_back(
270  ibooker.book2D("thetapull_vs_phi", "#theta Pull vs #phi", nintPhi, minPhi, maxPhi, 100, -10, 10));
271 
272  phires_vs_eta.push_back(ibooker.book2D("phires_vs_eta",
273  "#phi Residual vs #eta",
274  nintEta,
275  minEta,
276  maxEta,
277  phiRes_nbin,
279  phiRes_rangeMax));
280  phires_vs_pt.push_back(ibooker.book2D("phires_vs_pt",
281  "#phi Residual vs p_{T}",
282  nintPt,
283  minPt,
284  maxPt,
285  phiRes_nbin,
288  setBinLogX));
289  phires_vs_phi.push_back(ibooker.book2D("phires_vs_phi",
290  "#phi Residual vs #phi",
291  nintPhi,
292  minPhi,
293  maxPhi,
294  phiRes_nbin,
296  phiRes_rangeMax));
297  h_phipull.push_back(ibooker.book1D("phipull", "#phi Pull", 100, -10., 10.));
298  phipull_vs_eta.push_back(
299  ibooker.book2D("phipull_vs_eta", "#phi Pull vs #eta", nintEta, minEta, maxEta, 100, -10, 10));
300  phipull_vs_phi.push_back(
301  ibooker.book2D("phipull_vs_phi", "#phi Pull vs #phi", nintPhi, minPhi, maxPhi, 100, -10, 10));
302 
303  dxyres_vs_eta.push_back(ibooker.book2D("dxyres_vs_eta",
304  "dxy Residual vs #eta",
305  nintEta,
306  minEta,
307  maxEta,
308  dxyRes_nbin,
310  dxyRes_rangeMax));
311  dxyres_vs_pt.push_back(ibooker.book2D("dxyres_vs_pt",
312  "dxy Residual vs p_{T}",
313  nintPt,
314  minPt,
315  maxPt,
316  dxyRes_nbin,
319  setBinLogX));
320  h_dxypull.push_back(ibooker.book1D("dxypull", "dxy Pull", 100, -10., 10.));
321  dxypull_vs_eta.push_back(
322  ibooker.book2D("dxypull_vs_eta", "dxy Pull vs #eta", nintEta, minEta, maxEta, 100, -10, 10));
323 
324  dzres_vs_eta.push_back(ibooker.book2D(
325  "dzres_vs_eta", "dz Residual vs #eta", nintEta, minEta, maxEta, dzRes_nbin, dzRes_rangeMin, dzRes_rangeMax));
326  dzres_vs_pt.push_back(ibooker.book2D("dzres_vs_pt",
327  "dz Residual vs p_{T}",
328  nintPt,
329  minPt,
330  maxPt,
331  dzRes_nbin,
334  setBinLogX));
335  h_dzpull.push_back(ibooker.book1D("dzpull", "dz Pull", 100, -10., 10.));
336  dzpull_vs_eta.push_back(
337  ibooker.book2D("dzpull_vs_eta", "dz Pull vs #eta", nintEta, minEta, maxEta, 100, -10, 10));
338 
339  nRecHits_vs_nSimHits.push_back(ibooker.book2D(
340  "nRecHits_vs_nSimHits", "nRecHits vs nSimHits", nintNHit, minNHit, maxNHit, nintNHit, minNHit, maxNHit));
341 
342  if (MABH) {
343  h_PurityVsQuality.push_back(
344  ibooker.book2D("PurityVsQuality", "Purity vs Quality (MABH)", 20, 0.01, 1.01, 20, 0.01, 1.01));
345  }
346 
347  if (associators[ww] == "trackAssociatorByChi2") {
348  h_assochi2.push_back(ibooker.book1D("assocChi2", "track association #chi^{2}", 1000, 0., 100.));
349  h_assochi2_prob.push_back(ibooker.book1D("assocChi2_prob", "probability of association #chi^{2}", 100, 0., 1.));
350  } else if (associators[ww] == "trackAssociatorByHits") {
351  h_assocFraction.push_back(ibooker.book1D("assocFraction", "fraction of shared hits", 22, 0., 1.1));
352  h_assocSharedHit.push_back(ibooker.book1D("assocSharedHit", "number of shared hits", 41, -0.5, 40.5));
353  }
354 
355  } //for (unsigned int www=0;www<label.size();www++)
356  } //for (unsigned int ww=0;ww<associators.size();ww++)
357 }

References trackingPlots::assoc, trackTimeValueMapProducer_cfi::associators, dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), dqm::implementation::NavigatorBase::cd(), histoParameters_cff::cotThetaRes_nbin, histoParameters_cff::cotThetaRes_rangeMax, histoParameters_cff::cotThetaRes_rangeMin, TrackerOfflineValidation_Dqm_cff::dirName, histoParameters_cff::do_MUOhitsPlots, histoParameters_cff::do_TRKhitsPlots, histoParameters_cff::dxyRes_nbin, histoParameters_cff::dxyRes_rangeMax, histoParameters_cff::dxyRes_rangeMin, histoParameters_cff::dzRes_nbin, histoParameters_cff::dzRes_rangeMax, histoParameters_cff::dzRes_rangeMin, histoParameters_cff::etaRes_nbin, histoParameters_cff::etaRes_rangeMax, histoParameters_cff::etaRes_rangeMin, label, associators_cff::MABH, histoParameters_cff::maxCSCHit, histoParameters_cff::maxDTHit, gather_cfg::maxDxy, beam_dqm_sourceclient-live_cfg::maxDz, maxEta, histoParameters_cff::maxFTracks, histoParameters_cff::maxLayers, histoParameters_cff::maxNHit, HLT_FULL_cff::maxNTracks, HLT_FULL_cff::maxPhi, histoParameters_cff::maxPixels, MuonErrorMatrixAnalyzer_cfi::maxPt, pileupFilter_cff::maxPU, histoParameters_cff::maxRPCHit, histoParameters_cff::maxRpos, HGVHistoProducerAlgoBlock_cfi::maxZpos, histoParameters_cff::minCSCHit, histoParameters_cff::minDTHit, histoParameters_cff::minDxy, pfMETCorrectionType0_cfi::minDz, EgHLTOffEleSelection_cfi::minEta, histoParameters_cff::minFTracks, beam_dqm_sourceclient-live_cfg::minLayers, histoParameters_cff::minNHit, histoParameters_cff::minNTracks, HLT_FULL_cff::minPhi, histoParameters_cff::minPixels, beam_dqm_sourceclient-live_cfg::minPt, pileupFilter_cff::minPU, histoParameters_cff::minRPCHit, histoParameters_cff::minRpos, HGVHistoProducerAlgoBlock_cfi::minZpos, histoParameters_cff::nintCSCHit, histoParameters_cff::nintDTHit, histoParameters_cff::nintDxy, histoParameters_cff::nintDz, HGVHistoProducerAlgoBlock_cfi::nintEta, histoParameters_cff::nintFTracks, histoParameters_cff::nintLayers, histoParameters_cff::nintNHit, histoParameters_cff::nintNTracks, HGVHistoProducerAlgoBlock_cfi::nintPhi, histoParameters_cff::nintPixels, HGVHistoProducerAlgoBlock_cfi::nintPt, histoParameters_cff::nintPU, histoParameters_cff::nintRPCHit, histoParameters_cff::nintRpos, HGVHistoProducerAlgoBlock_cfi::nintZpos, histoParameters_cff::phiRes_nbin, histoParameters_cff::phiRes_rangeMax, histoParameters_cff::phiRes_rangeMin, histoParameters_cff::ptRes_nbin, histoParameters_cff::ptRes_rangeMax, histoParameters_cff::ptRes_rangeMin, python.rootplot.root2matplotlib::replace(), dqm::implementation::NavigatorBase::setCurrentFolder(), and TrackValidationHeavyIons_cff::useLogPt.

Member Data Documentation

◆ _simHitTpMapTag

edm::EDGetTokenT<SimHitTPAssociationProducer::SimHitTPAssociationList> MuonTrackValidator::_simHitTpMapTag
private

Definition at line 148 of file MuonTrackValidator.h.

Referenced by MuonTrackValidator().

◆ associatormap

edm::InputTag MuonTrackValidator::associatormap
private

Definition at line 145 of file MuonTrackValidator.h.

Referenced by MuonTrackValidator().

◆ BiDirectional_RecoToSim_association

bool MuonTrackValidator::BiDirectional_RecoToSim_association
private

Definition at line 160 of file MuonTrackValidator.h.

Referenced by MuonTrackValidator().

◆ cosmictpSelector

CosmicTrackingParticleSelector MuonTrackValidator::cosmictpSelector
private

Definition at line 157 of file MuonTrackValidator.h.

Referenced by MuonTrackValidator().

◆ dirName_

std::string MuonTrackValidator::dirName_
private

Definition at line 144 of file MuonTrackValidator.h.

Referenced by MuonTrackValidator().

◆ MABH

bool MuonTrackValidator::MABH
private

Definition at line 162 of file MuonTrackValidator.h.

Referenced by MuonTrackValidator().

◆ recoToSimCollection_Token

edm::EDGetTokenT<reco::RecoToSimCollection> MuonTrackValidator::recoToSimCollection_Token
private

Definition at line 147 of file MuonTrackValidator.h.

Referenced by MuonTrackValidator().

◆ simToRecoCollection_Token

edm::EDGetTokenT<reco::SimToRecoCollection> MuonTrackValidator::simToRecoCollection_Token
private

Definition at line 146 of file MuonTrackValidator.h.

Referenced by MuonTrackValidator().

◆ tpSelector

TrackingParticleSelector MuonTrackValidator::tpSelector
private

Definition at line 156 of file MuonTrackValidator.h.

Referenced by MuonTrackValidator().

◆ UseAssociators

bool MuonTrackValidator::UseAssociators
private

Definition at line 150 of file MuonTrackValidator.h.

Referenced by MuonTrackValidator().

◆ useGEMs_

bool MuonTrackValidator::useGEMs_
private

Definition at line 151 of file MuonTrackValidator.h.

Referenced by MuonTrackValidator().

◆ useME0_

bool MuonTrackValidator::useME0_
private

Definition at line 152 of file MuonTrackValidator.h.

Referenced by MuonTrackValidator().

LCToCPAssociation_cfi.associator
associator
Definition: LCToCPAssociation_cfi.py:4
MuonTrackValidatorBase::h_misiddz
std::vector< MonitorElement * > h_misiddz
Definition: MuonTrackValidatorBase.h:281
MuonTrackValidatorBase::h_simulRpos
std::vector< MonitorElement * > h_simulRpos
Definition: MuonTrackValidatorBase.h:284
MuonTrackValidatorBase::chi2_vs_eta
std::vector< MonitorElement * > chi2_vs_eta
Definition: MuonTrackValidatorBase.h:300
MuonTrackValidatorBase::ptres_vs_phi
std::vector< MonitorElement * > ptres_vs_phi
Definition: MuonTrackValidatorBase.h:296
MuonTrackValidatorBase::ptRes_rangeMax
double ptRes_rangeMax
Definition: MuonTrackValidatorBase.h:257
reco::HitPattern::MISSING_OUTER_HITS
Definition: HitPattern.h:155
MuonTrackValidatorBase::ptres_vs_pt
std::vector< MonitorElement * > ptres_vs_pt
Definition: MuonTrackValidatorBase.h:304
MuonTrackValidatorBase::maxNHit
double maxNHit
Definition: MuonTrackValidatorBase.h:232
MuonTrackValidatorBase::h_assocpT
std::vector< MonitorElement * > h_assocpT
Definition: MuonTrackValidatorBase.h:277
MuonTrackValidatorBase::dzpull_vs_eta
std::vector< MonitorElement * > dzpull_vs_eta
Definition: MuonTrackValidatorBase.h:306
MuonTrackValidatorBase::h_assocZpos
std::vector< MonitorElement * > h_assocZpos
Definition: MuonTrackValidatorBase.h:284
edm::AssociationMap::find
const_iterator find(const key_type &k) const
find element with specified reference key
Definition: AssociationMap.h:173
mps_fire.i
i
Definition: mps_fire.py:428
MuonTrackValidatorBase::tp_fake_Token
edm::EDGetTokenT< TrackingParticleCollection > tp_fake_Token
Definition: MuonTrackValidatorBase.h:217
HLT_FULL_cff.track
track
Definition: HLT_FULL_cff.py:11713
MuonTrackValidatorBase::h_misidphi
std::vector< MonitorElement * > h_misidphi
Definition: MuonTrackValidatorBase.h:279
MuonTrackValidatorBase::label
std::vector< edm::InputTag > label
Definition: MuonTrackValidatorBase.h:206
MuonTrackValidator::recoToSimCollection_Token
edm::EDGetTokenT< reco::RecoToSimCollection > recoToSimCollection_Token
Definition: MuonTrackValidator.h:147
MuonTrackValidatorBase::nintEta
int nintEta
Definition: MuonTrackValidatorBase.h:226
MuonTrackValidatorBase::h_misidpu
std::vector< MonitorElement * > h_misidpu
Definition: MuonTrackValidatorBase.h:282
edm::Handle::product
T const * product() const
Definition: Handle.h:70
MuonTrackValidatorBase::h_misideta
std::vector< MonitorElement * > h_misideta
Definition: MuonTrackValidatorBase.h:276
MuonTrackValidatorBase::nintNHit
int nintNHit
Definition: MuonTrackValidatorBase.h:233
MuonTrackValidatorBase::maxRPCHit
double maxRPCHit
Definition: MuonTrackValidatorBase.h:238
edm::InputTag::instance
std::string const & instance() const
Definition: InputTag.h:37
MuonTrackValidatorBase::nintRpos
int nintRpos
Definition: MuonTrackValidatorBase.h:251
MuonTrackValidatorBase::minRpos
double minRpos
Definition: MuonTrackValidatorBase.h:250
MuonTrackValidatorBase::nintLayers
int nintLayers
Definition: MuonTrackValidatorBase.h:241
MuonTrackValidatorBase::label_tp_effic
edm::InputTag label_tp_effic
Definition: MuonTrackValidatorBase.h:208
MuonTrackValidatorBase::phires_vs_eta
std::vector< MonitorElement * > phires_vs_eta
Definition: MuonTrackValidatorBase.h:303
edm::RefToBase::key
size_t key() const
Definition: RefToBase.h:219
MuonTrackValidatorBase::maxZpos
double maxZpos
Definition: MuonTrackValidatorBase.h:252
MuonTrackValidatorBase::BinLogX
void BinLogX(TH1 *h)
Definition: MuonTrackValidatorBase.h:189
MuonTrackValidatorBase::minZpos
double minZpos
Definition: MuonTrackValidatorBase.h:252
MuonTrackValidator::UseAssociators
bool UseAssociators
Definition: MuonTrackValidator.h:150
MuonTrackValidatorBase::dxypull_vs_eta
std::vector< MonitorElement * > dxypull_vs_eta
Definition: MuonTrackValidatorBase.h:306
MuonTrackValidatorBase::etaRes_rangeMin
double etaRes_rangeMin
Definition: MuonTrackValidatorBase.h:259
MuonTrackValidatorBase::minDxy
double minDxy
Definition: MuonTrackValidatorBase.h:246
MuonTrackValidatorBase::nintZpos
int nintZpos
Definition: MuonTrackValidatorBase.h:253
MuonTrackValidatorBase::minPt
double minPt
Definition: MuonTrackValidatorBase.h:228
MuonTrackValidatorBase::maxPt
double maxPt
Definition: MuonTrackValidatorBase.h:228
MuonTrackValidatorBase::h_misidhit
std::vector< MonitorElement * > h_misidhit
Definition: MuonTrackValidatorBase.h:278
MuonTrackValidatorBase::h_assocpu
std::vector< MonitorElement * > h_assocpu
Definition: MuonTrackValidatorBase.h:282
MuonTrackValidatorBase::h_simulZpos
std::vector< MonitorElement * > h_simulZpos
Definition: MuonTrackValidatorBase.h:284
MuonTrackValidatorBase::h_recodxy
std::vector< MonitorElement * > h_recodxy
Definition: MuonTrackValidatorBase.h:280
hcal_runs.rt
rt
Definition: hcal_runs.py:76
MuonTrackValidatorBase::h_simulpT
std::vector< MonitorElement * > h_simulpT
Definition: MuonTrackValidatorBase.h:277
MuonTrackValidatorBase::useLogPt
bool useLogPt
Definition: MuonTrackValidatorBase.h:230
MuonTrackValidatorBase::minCSCHit
double minCSCHit
Definition: MuonTrackValidatorBase.h:236
MuonTrackValidatorBase::maxDTHit
double maxDTHit
Definition: MuonTrackValidatorBase.h:234
MuonTrackValidatorBase::cotThetaRes_nbin
int cotThetaRes_nbin
Definition: MuonTrackValidatorBase.h:264
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
MuonTrackValidatorBase::thetaCotres_vs_pt
std::vector< MonitorElement * > thetaCotres_vs_pt
Definition: MuonTrackValidatorBase.h:304
MuonTrackValidatorBase::h_recodz
std::vector< MonitorElement * > h_recodz
Definition: MuonTrackValidatorBase.h:281
MuonTrackValidatorBase::minFTracks
int minFTracks
Definition: MuonTrackValidatorBase.h:224
MuonTrackValidatorBase::do_TRKhitsPlots
bool do_TRKhitsPlots
Definition: MuonTrackValidatorBase.h:271
MuonTrackValidatorBase::nME0hits_vs_eta
std::vector< MonitorElement * > nME0hits_vs_eta
Definition: MuonTrackValidatorBase.h:298
edm::Ref::get
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:232
MuonTrackValidatorBase::maxRpos
double maxRpos
Definition: MuonTrackValidatorBase.h:250
MuonTrackValidatorBase::nlosthits_vs_eta
std::vector< MonitorElement * > nlosthits_vs_eta
Definition: MuonTrackValidatorBase.h:300
MuonTrackValidatorBase::nPixel_LayersWithMeas_vs_eta
std::vector< MonitorElement * > nPixel_LayersWithMeas_vs_eta
Definition: MuonTrackValidatorBase.h:301
edm::InputTag::process
std::string const & process() const
Definition: InputTag.h:40
MuonTrackValidatorBase::etares_vs_eta
std::vector< MonitorElement * > etares_vs_eta
Definition: MuonTrackValidatorBase.h:295
MuonTrackValidatorBase::h_nlosthits
std::vector< MonitorElement * > h_nlosthits
Definition: MuonTrackValidatorBase.h:288
MuonTrackValidatorBase::do_MUOhitsPlots
bool do_MUOhitsPlots
Definition: MuonTrackValidatorBase.h:271
TrackingParticle::Vector
math::XYZVectorD Vector
point in the space
Definition: TrackingParticle.h:37
ParametersDefinerForTP::momentum
virtual TrackingParticle::Vector momentum(const edm::Event &iEvent, const edm::EventSetup &iSetup, const Charge ch, const Point &vtx, const LorentzVector &lv) const
Definition: ParametersDefinerForTP.cc:17
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
MuonTrackValidatorBase::h_nmisslayers_outer
std::vector< MonitorElement * > h_nmisslayers_outer
Definition: MuonTrackValidatorBase.h:288
MuonTrackValidator::useME0_
bool useME0_
Definition: MuonTrackValidator.h:152
MuonTrackValidatorBase::h_assocRpos
std::vector< MonitorElement * > h_assocRpos
Definition: MuonTrackValidatorBase.h:284
edm::Handle
Definition: AssociativeIterator.h:50
MuonTrackValidatorBase::minPU
double minPU
Definition: MuonTrackValidatorBase.h:254
reco::TrackBase::numberOfValidHits
unsigned short numberOfValidHits() const
number of valid hits found
Definition: TrackBase.h:798
MuonTrackValidatorBase::getEta
double getEta(double eta)
Definition: MuonTrackValidatorBase.h:174
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
MuonTrackValidatorBase::dzRes_rangeMin
double dzRes_rangeMin
Definition: MuonTrackValidatorBase.h:267
MuonTrackValidatorBase::h_recopu
std::vector< MonitorElement * > h_recopu
Definition: MuonTrackValidatorBase.h:282
MuonTrackValidatorBase::nintDTHit
int nintDTHit
Definition: MuonTrackValidatorBase.h:235
edm::Ref< TrackingParticleCollection >
MuonTrackValidatorBase::maxPU
double maxPU
Definition: MuonTrackValidatorBase.h:254
MuonTrackValidatorBase::tp_effic_Token
edm::EDGetTokenT< TrackingParticleCollection > tp_effic_Token
Definition: MuonTrackValidatorBase.h:216
MuonTrackValidatorBase::h_assocFraction
std::vector< MonitorElement * > h_assocFraction
Definition: MuonTrackValidatorBase.h:290
quality
const uint32_t *__restrict__ Quality * quality
Definition: CAHitNtupletGeneratorKernelsImpl.h:109
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
MuonTrackValidatorBase::minRPCHit
double minRPCHit
Definition: MuonTrackValidatorBase.h:238
trackingPlots.assoc
assoc
Definition: trackingPlots.py:184
MuonTrackValidatorBase::maxPixels
double maxPixels
Definition: MuonTrackValidatorBase.h:242
MuonTrackValidatorBase::h_misidpT
std::vector< MonitorElement * > h_misidpT
Definition: MuonTrackValidatorBase.h:277
MuonTrackValidatorBase::minEta
double minEta
Definition: MuonTrackValidatorBase.h:225
edm::InputTag::label
std::string const & label() const
Definition: InputTag.h:36
cmsdt::algo
algo
Definition: constants.h:165
edm::AssociationMap::end
const_iterator end() const
last iterator over the map (read only)
Definition: AssociationMap.h:171
edm::AssociationMap::post_insert
void post_insert()
post insert action
Definition: AssociationMap.h:229
cms::cuda::bs
bs
Definition: HistoContainer.h:127
pixelTrack::Quality
Quality
Definition: TrackSoAHeterogeneousT.h:10
MuonTrackValidatorBase::h_recoeta
std::vector< MonitorElement * > h_recoeta
Definition: MuonTrackValidatorBase.h:276
trigger::size_type
uint16_t size_type
Definition: TriggerTypeDefs.h:18
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
TrackingParticleIP::dxy
auto dxy(const T_Vertex &vertex, const T_Momentum &momentum, const T_Point &point)
Definition: TrackingParticleIP.h:11
MuonTrackValidator::useGEMs_
bool useGEMs_
Definition: MuonTrackValidator.h:151
MuonTrackValidatorBase::pileupinfo_Token
edm::EDGetTokenT< std::vector< PileupSummaryInfo > > pileupinfo_Token
Definition: MuonTrackValidatorBase.h:218
MuonTrackValidatorBase::dxyRes_rangeMin
double dxyRes_rangeMin
Definition: MuonTrackValidatorBase.h:265
MuonTrackValidatorBase::phipull_vs_phi
std::vector< MonitorElement * > phipull_vs_phi
Definition: MuonTrackValidatorBase.h:307
HLT_FULL_cff.fraction
fraction
Definition: HLT_FULL_cff.py:52806
MuonTrackValidatorBase::maxNTracks
int maxNTracks
Definition: MuonTrackValidatorBase.h:223
MuonTrackValidatorBase::nintPhi
int nintPhi
Definition: MuonTrackValidatorBase.h:245
MuonTrackValidatorBase::dxyRes_nbin
int dxyRes_nbin
Definition: MuonTrackValidatorBase.h:266
MuonTrackValidatorBase::phiRes_rangeMin
double phiRes_rangeMin
Definition: MuonTrackValidatorBase.h:261
MuonTrackValidator::_simHitTpMapTag
edm::EDGetTokenT< SimHitTPAssociationProducer::SimHitTPAssociationList > _simHitTpMapTag
Definition: MuonTrackValidator.h:148
MuonTrackValidatorBase::minNHit
double minNHit
Definition: MuonTrackValidatorBase.h:232
w
const double w
Definition: UKUtility.cc:23
MuonTrackValidatorBase::nintPU
int nintPU
Definition: MuonTrackValidatorBase.h:255
MuonTrackValidatorBase::h_assoc2pT
std::vector< MonitorElement * > h_assoc2pT
Definition: MuonTrackValidatorBase.h:277
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
MuonTrackValidatorBase::nCSChits_vs_eta
std::vector< MonitorElement * > nCSChits_vs_eta
Definition: MuonTrackValidatorBase.h:298
TrackingParticle
Monte Carlo truth information used for tracking validation.
Definition: TrackingParticle.h:29
reco::BeamSpot
Definition: BeamSpot.h:21
reco::modules::TrackingParticleSelector
SingleObjectSelector< TrackingParticleCollection, ::TrackingParticleSelector > TrackingParticleSelector
Definition: TrackingParticleSelector.cc:17
MuonTrackValidatorBase::h_recopT
std::vector< MonitorElement * > h_recopT
Definition: MuonTrackValidatorBase.h:277
TrackAssociatorRecord
Definition: TrackAssociatorRecord.h:18
MuonTrackValidatorBase::ptRes_nbin
int ptRes_nbin
Definition: MuonTrackValidatorBase.h:258
edm::ESHandle
Definition: DTSurvey.h:22
MuonTrackValidatorBase::h_assochi2
std::vector< MonitorElement * > h_assochi2
Definition: MuonTrackValidatorBase.h:289
dqm::implementation::NavigatorBase::cd
virtual void cd()
Definition: DQMStore.cc:29
MuonTrackValidatorBase::nintDxy
int nintDxy
Definition: MuonTrackValidatorBase.h:247
reco::TrackBase::charge
int charge() const
track electric charge
Definition: TrackBase.h:596
MuonTrackValidatorBase::bsSrc_Token
edm::EDGetTokenT< reco::BeamSpot > bsSrc_Token
Definition: MuonTrackValidatorBase.h:215
MuonTrackValidatorBase::nintRPCHit
int nintRPCHit
Definition: MuonTrackValidatorBase.h:239
MuonTrackValidator::dirName_
std::string dirName_
Definition: MuonTrackValidator.h:144
MuonTrackValidatorBase::dzRes_rangeMax
double dzRes_rangeMax
Definition: MuonTrackValidatorBase.h:267
MuonTrackValidatorBase::h_assocdz
std::vector< MonitorElement * > h_assocdz
Definition: MuonTrackValidatorBase.h:281
MuonTrackValidatorBase::nRPChits_vs_eta
std::vector< MonitorElement * > nRPChits_vs_eta
Definition: MuonTrackValidatorBase.h:298
MuonTrackValidatorBase::thetaCotres_vs_eta
std::vector< MonitorElement * > thetaCotres_vs_eta
Definition: MuonTrackValidatorBase.h:303
cmsswSequenceInfo.tp
tp
Definition: cmsswSequenceInfo.py:17
MuonTrackValidatorBase::h_dzpull
std::vector< MonitorElement * > h_dzpull
Definition: MuonTrackValidatorBase.h:310
MuonTrackValidatorBase::h_phipull
std::vector< MonitorElement * > h_phipull
Definition: MuonTrackValidatorBase.h:310
MuonTrackValidator::associatormap
edm::InputTag associatormap
Definition: MuonTrackValidator.h:145
MuonTrackValidatorBase::h_assochi2_prob
std::vector< MonitorElement * > h_assochi2_prob
Definition: MuonTrackValidatorBase.h:289
MuonTrackValidatorBase::nintPt
int nintPt
Definition: MuonTrackValidatorBase.h:229
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
MuonTrackValidatorBase::etaRes_nbin
int etaRes_nbin
Definition: MuonTrackValidatorBase.h:260
edm::View
Definition: CaloClusterFwd.h:14
reco::CosmicTrackingParticleSelector
ObjectSelector< CosmicTrackingParticleSelector > CosmicTrackingParticleSelector
Definition: CosmicTrackingParticleSelector.cc:16
MuonTrackValidatorBase::h_dxypull
std::vector< MonitorElement * > h_dxypull
Definition: MuonTrackValidatorBase.h:310
MuonTrackValidatorBase::chi2_vs_phi
std::vector< MonitorElement * > chi2_vs_phi
Definition: MuonTrackValidatorBase.h:296
bphysicsOniaDQM_cfi.vertex
vertex
Definition: bphysicsOniaDQM_cfi.py:7
edm::ParameterSet
Definition: ParameterSet.h:47
MuonTrackValidatorBase::maxDz
double maxDz
Definition: MuonTrackValidatorBase.h:248
MuonTrackValidatorBase::fillPlotNoFlow
void fillPlotNoFlow(MonitorElement *h, T val)
Definition: MuonTrackValidatorBase.h:157
MuonTrackValidatorBase::h_assoc2phi
std::vector< MonitorElement * > h_assoc2phi
Definition: MuonTrackValidatorBase.h:279
duplicaterechits_cfi.trackCollection
trackCollection
Definition: duplicaterechits_cfi.py:4
MuonTrackValidatorBase::nintFTracks
int nintFTracks
Definition: MuonTrackValidatorBase.h:224
MuonTrackValidator::cosmictpSelector
CosmicTrackingParticleSelector cosmictpSelector
Definition: MuonTrackValidator.h:157
MuonTrackValidatorBase::etaRes_rangeMax
double etaRes_rangeMax
Definition: MuonTrackValidatorBase.h:259
MuonTrackValidatorBase::associators
std::vector< std::string > associators
Definition: MuonTrackValidatorBase.h:211
MuonTrackValidatorBase::h_etaRes
std::vector< MonitorElement * > h_etaRes
Definition: MuonTrackValidatorBase.h:285
MuonTrackValidatorBase::h_thetapull
std::vector< MonitorElement * > h_thetapull
Definition: MuonTrackValidatorBase.h:310
edm::AssociationMap< edm::OneToManyWithQualityGeneric< edm::View< reco::Track >, TrackingParticleCollection, double > >
MuonTrackValidatorBase::minDz
double minDz
Definition: MuonTrackValidatorBase.h:248
MuonTrackValidatorBase::dxyres_vs_pt
std::vector< MonitorElement * > dxyres_vs_pt
Definition: MuonTrackValidatorBase.h:304
MuonTrackValidatorBase::phiRes_nbin
int phiRes_nbin
Definition: MuonTrackValidatorBase.h:262
MuonTrackValidatorBase::h_assochit
std::vector< MonitorElement * > h_assochit
Definition: MuonTrackValidatorBase.h:278
MuonTrackValidatorBase::h_assocdxy
std::vector< MonitorElement * > h_assocdxy
Definition: MuonTrackValidatorBase.h:280
MuonTrackValidatorBase::nintDz
int nintDz
Definition: MuonTrackValidatorBase.h:249
MuonTrackValidatorBase::minPhi
double minPhi
Definition: MuonTrackValidatorBase.h:244
MuonTrackValidatorBase::nGEMhits_vs_eta
std::vector< MonitorElement * > nGEMhits_vs_eta
Definition: MuonTrackValidatorBase.h:298
MuonTrackValidatorBase::h_simulpu
std::vector< MonitorElement * > h_simulpu
Definition: MuonTrackValidatorBase.h:282
MuonTrackValidatorBase::dzRes_nbin
int dzRes_nbin
Definition: MuonTrackValidatorBase.h:268
MuonTrackValidatorBase::minNTracks
int minNTracks
Definition: MuonTrackValidatorBase.h:223
createfilelist.int
int
Definition: createfilelist.py:10
MuonTrackValidatorBase::h_simuleta
std::vector< MonitorElement * > h_simuleta
Definition: MuonTrackValidatorBase.h:276
MuonTrackValidatorBase::minPixels
double minPixels
Definition: MuonTrackValidatorBase.h:242
MuonTrackValidatorBase::nintNTracks
int nintNTracks
Definition: MuonTrackValidatorBase.h:223
MuonTrackValidatorBase::dxyres_vs_eta
std::vector< MonitorElement * > dxyres_vs_eta
Definition: MuonTrackValidatorBase.h:303
MuonErrorMatrixAnalyzer_cfi.associatorName
associatorName
Definition: MuonErrorMatrixAnalyzer_cfi.py:28
MuonTrackValidatorBase::nintCSCHit
int nintCSCHit
Definition: MuonTrackValidatorBase.h:237
MuonTrackValidatorBase::phipull_vs_eta
std::vector< MonitorElement * > phipull_vs_eta
Definition: MuonTrackValidatorBase.h:306
M_PI
#define M_PI
Definition: BXVectorInputProducer.cc:49
MuonTrackValidatorBase::maxPhi
double maxPhi
Definition: MuonTrackValidatorBase.h:244
MuonTrackValidatorBase::h_nchi2_prob
std::vector< MonitorElement * > h_nchi2_prob
Definition: MuonTrackValidatorBase.h:287
MuonTrackValidatorBase::h_assoc2eta
std::vector< MonitorElement * > h_assoc2eta
Definition: MuonTrackValidatorBase.h:276
MuonTrackValidatorBase::nDThits_vs_eta
std::vector< MonitorElement * > nDThits_vs_eta
Definition: MuonTrackValidatorBase.h:298
MuonTrackValidatorBase::h_assoc2pu
std::vector< MonitorElement * > h_assoc2pu
Definition: MuonTrackValidatorBase.h:282
MuonTrackValidatorBase::usemuon
bool usemuon
Definition: MuonTrackValidatorBase.h:270
MuonTrackValidatorBase::h_PurityVsQuality
std::vector< MonitorElement * > h_PurityVsQuality
Definition: MuonTrackValidatorBase.h:294
MuonTrackValidatorBase::track_Collection_Token
std::vector< edm::EDGetTokenT< edm::View< reco::Track > > > track_Collection_Token
Definition: MuonTrackValidatorBase.h:214
MuonTrackValidatorBase::h_recohit
std::vector< MonitorElement * > h_recohit
Definition: MuonTrackValidatorBase.h:278
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
MuonTrackValidatorBase::parametersDefiner
std::string parametersDefiner
Definition: MuonTrackValidatorBase.h:213
get
#define get
MuonTrackValidatorBase::h_assoc2hit
std::vector< MonitorElement * > h_assoc2hit
Definition: MuonTrackValidatorBase.h:278
MuonTrackValidatorBase::h_fakes
std::vector< MonitorElement * > h_fakes
Definition: MuonTrackValidatorBase.h:275
MuonTrackValidatorBase::h_ptpull
std::vector< MonitorElement * > h_ptpull
Definition: MuonTrackValidatorBase.h:310
MuonTrackValidatorBase::h_misiddxy
std::vector< MonitorElement * > h_misiddxy
Definition: MuonTrackValidatorBase.h:280
MuonTrackValidatorBase::ptpull_vs_phi
std::vector< MonitorElement * > ptpull_vs_phi
Definition: MuonTrackValidatorBase.h:307
MuonTrackValidatorBase::ptRes_rangeMin
double ptRes_rangeMin
Definition: MuonTrackValidatorBase.h:257
MuonTrackValidatorBase::nhits_vs_eta
std::vector< MonitorElement * > nhits_vs_eta
Definition: MuonTrackValidatorBase.h:298
MuonTrackValidatorBase::h_assoc2dxy
std::vector< MonitorElement * > h_assoc2dxy
Definition: MuonTrackValidatorBase.h:280
MuonTrackValidator::simToRecoCollection_Token
edm::EDGetTokenT< reco::SimToRecoCollection > simToRecoCollection_Token
Definition: MuonTrackValidator.h:146
MuonTrackValidatorBase::cotThetaRes_rangeMin
double cotThetaRes_rangeMin
Definition: MuonTrackValidatorBase.h:263
MuonTrackValidatorBase::h_nmisslayers_inner
std::vector< MonitorElement * > h_nmisslayers_inner
Definition: MuonTrackValidatorBase.h:288
MuonTrackValidatorBase::thetapull_vs_eta
std::vector< MonitorElement * > thetapull_vs_eta
Definition: MuonTrackValidatorBase.h:306
MuonTrackValidatorBase::phires_vs_phi
std::vector< MonitorElement * > phires_vs_phi
Definition: MuonTrackValidatorBase.h:296
MuonTrackValidatorBase::label_pileupinfo
edm::InputTag label_pileupinfo
Definition: MuonTrackValidatorBase.h:210
MuonTrackValidatorBase::dzres_vs_pt
std::vector< MonitorElement * > dzres_vs_pt
Definition: MuonTrackValidatorBase.h:304
edm::LogVerbatim
Log< level::Info, true > LogVerbatim
Definition: MessageLogger.h:128
MuonTrackValidatorBase::ignoremissingtkcollection_
bool ignoremissingtkcollection_
Definition: MuonTrackValidatorBase.h:272
dqm::implementation::IBooker::book2D
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:177
MuonTrackValidatorBase::phiRes_rangeMax
double phiRes_rangeMax
Definition: MuonTrackValidatorBase.h:261
MuonTrackValidatorBase::h_nhits
std::vector< MonitorElement * > h_nhits
Definition: MuonTrackValidatorBase.h:275
MuonTrackValidatorBase::bsSrc
edm::InputTag bsSrc
Definition: MuonTrackValidatorBase.h:207
reco::HitPattern::MISSING_INNER_HITS
Definition: HitPattern.h:155
edm::AssociationMap::begin
const_iterator begin() const
first iterator over the map (read only)
Definition: AssociationMap.h:169
MuonTrackValidatorBase::maxEta
double maxEta
Definition: MuonTrackValidatorBase.h:225
MuonTrackValidatorBase::h_assocSharedHit
std::vector< MonitorElement * > h_assocSharedHit
Definition: MuonTrackValidatorBase.h:290
MuonTrackValidatorBase::usetracker
bool usetracker
Definition: MuonTrackValidatorBase.h:270
TrackerOfflineValidation_Dqm_cff.dirName
dirName
Definition: TrackerOfflineValidation_Dqm_cff.py:55
TrackingParticleCollection
std::vector< TrackingParticle > TrackingParticleCollection
Definition: TrackingParticleFwd.h:9
MuonTrackValidatorBase::maxCSCHit
double maxCSCHit
Definition: MuonTrackValidatorBase.h:236
MuonTrackValidator::BiDirectional_RecoToSim_association
bool BiDirectional_RecoToSim_association
Definition: MuonTrackValidator.h:160
edm::RefToBase
Definition: AssociativeIterator.h:54
MuonTrackValidatorBase::h_tracks
std::vector< MonitorElement * > h_tracks
Definition: MuonTrackValidatorBase.h:275
MuonTrackValidatorBase::h_assoceta
std::vector< MonitorElement * > h_assoceta
Definition: MuonTrackValidatorBase.h:276
MuonTrackValidatorBase::minLayers
double minLayers
Definition: MuonTrackValidatorBase.h:240
CosmicParametersDefinerForTP::clone
std::unique_ptr< ParametersDefinerForTP > clone() const override
Definition: CosmicParametersDefinerForTP.h:45
MuonTrackValidatorBase::label_tp_fake
edm::InputTag label_tp_fake
Definition: MuonTrackValidatorBase.h:209
MuonTrackValidatorBase::h_qoverppull
std::vector< MonitorElement * > h_qoverppull
Definition: MuonTrackValidatorBase.h:310
edm::Ref::key
key_type key() const
Accessor for product key.
Definition: Ref.h:250
MuonTrackValidator::tpSelector
TrackingParticleSelector tpSelector
Definition: MuonTrackValidator.h:156
MuonTrackValidatorBase::nRecHits_vs_nSimHits
std::vector< MonitorElement * > nRecHits_vs_nSimHits
Definition: MuonTrackValidatorBase.h:293
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:234
MuonTrackValidatorBase::thetapull_vs_phi
std::vector< MonitorElement * > thetapull_vs_phi
Definition: MuonTrackValidatorBase.h:307
MuonTrackValidatorBase::nTRK_LayersWithMeas_vs_eta
std::vector< MonitorElement * > nTRK_LayersWithMeas_vs_eta
Definition: MuonTrackValidatorBase.h:301
MuonTrackValidatorBase::h_simuldz
std::vector< MonitorElement * > h_simuldz
Definition: MuonTrackValidatorBase.h:281
MuonTrackValidatorBase::dxyRes_rangeMax
double dxyRes_rangeMax
Definition: MuonTrackValidatorBase.h:265
MuonTrackValidatorBase::ptres_vs_eta
std::vector< MonitorElement * > ptres_vs_eta
Definition: MuonTrackValidatorBase.h:303
MuonTrackValidatorBase::maxFTracks
int maxFTracks
Definition: MuonTrackValidatorBase.h:224
MuonTrackValidatorBase::cotThetaRes_rangeMax
double cotThetaRes_rangeMax
Definition: MuonTrackValidatorBase.h:263
MuonTrackValidatorBase::getPt
double getPt(double pt)
Definition: MuonTrackValidatorBase.h:182
MuonTrackValidatorBase::h_simuldxy
std::vector< MonitorElement * > h_simuldxy
Definition: MuonTrackValidatorBase.h:280
event
Definition: event.py:1
MuonTrackValidatorBase::h_simulhit
std::vector< MonitorElement * > h_simulhit
Definition: MuonTrackValidatorBase.h:278
TrackingParticle::Point
math::XYZPointD Point
point in the space
Definition: TrackingParticle.h:36
MuonTrackValidatorBase::h_nchi2
std::vector< MonitorElement * > h_nchi2
Definition: MuonTrackValidatorBase.h:287
MuonTrackValidatorBase::nhits_vs_phi
std::vector< MonitorElement * > nhits_vs_phi
Definition: MuonTrackValidatorBase.h:296
MuonTrackValidatorBase::h_assoc2dz
std::vector< MonitorElement * > h_assoc2dz
Definition: MuonTrackValidatorBase.h:281
MuonTrackValidatorBase::MuonTrackValidatorBase
MuonTrackValidatorBase(const edm::ParameterSet &pset, edm::ConsumesCollector iC)
Constructor.
Definition: MuonTrackValidatorBase.h:43
MuonTrackValidatorBase::ptpull_vs_eta
std::vector< MonitorElement * > ptpull_vs_eta
Definition: MuonTrackValidatorBase.h:306
MuonTrackValidatorBase::h_recophi
std::vector< MonitorElement * > h_recophi
Definition: MuonTrackValidatorBase.h:279
MuonTrackValidatorBase::h_charge
std::vector< MonitorElement * > h_charge
Definition: MuonTrackValidatorBase.h:275
MuonTrackValidatorBase::chi2_vs_nhits
std::vector< MonitorElement * > chi2_vs_nhits
Definition: MuonTrackValidatorBase.h:295
MuonTrackValidatorBase::phires_vs_pt
std::vector< MonitorElement * > phires_vs_pt
Definition: MuonTrackValidatorBase.h:304
edm::InputTag
Definition: InputTag.h:15
MuonTrackValidatorBase::dzres_vs_eta
std::vector< MonitorElement * > dzres_vs_eta
Definition: MuonTrackValidatorBase.h:303
MuonTrackValidatorBase::minDTHit
double minDTHit
Definition: MuonTrackValidatorBase.h:234
edm::View::size_type
unsigned int size_type
Definition: View.h:90
MuonTrackValidatorBase::maxDxy
double maxDxy
Definition: MuonTrackValidatorBase.h:246
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
dqm::implementation::IBooker::book1D
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
MuonTrackValidatorBase::h_simulphi
std::vector< MonitorElement * > h_simulphi
Definition: MuonTrackValidatorBase.h:279
MuonTrackValidatorBase::h_assocphi
std::vector< MonitorElement * > h_assocphi
Definition: MuonTrackValidatorBase.h:279
MuonTrackValidatorBase::nintPixels
int nintPixels
Definition: MuonTrackValidatorBase.h:243
muonME0PseudoDigis_cfi.phiError
phiError
Definition: muonME0PseudoDigis_cfi.py:9
ParametersDefinerForTP::vertex
virtual TrackingParticle::Point vertex(const edm::Event &iEvent, const edm::EventSetup &iSetup, const Charge ch, const Point &vtx, const LorentzVector &lv) const
Definition: ParametersDefinerForTP.cc:50
TrackingParticleIP::dz
auto dz(const T_Vertex &vertex, const T_Momentum &momentum, const T_Point &point)
Definition: TrackingParticleIP.h:16
python.rootplot.root2matplotlib.replace
def replace(string, replacements)
Definition: root2matplotlib.py:444
MuonTrackValidator::MABH
bool MABH
Definition: MuonTrackValidator.h:162
MuonTrackValidatorBase::maxLayers
double maxLayers
Definition: MuonTrackValidatorBase.h:240