CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Member Functions | Protected Attributes | Private Attributes
RecoMuonValidator Class Reference

#include <RecoMuonValidator.h>

Inheritance diagram for RecoMuonValidator:
thread_unsafe::DQMEDAnalyzer edm::EDAnalyzer edm::EDConsumerBase

Classes

struct  CommonME
 
struct  HistoDimensions
 
struct  MuonME
 

Public Member Functions

virtual void analyze (const edm::Event &event, const edm::EventSetup &eventSetup)
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
virtual int countMuonHits (const reco::Track &track) const
 
virtual int countTrackerHits (const reco::Track &track) const
 
virtual void dqmBeginRun (const edm::Run &, const edm::EventSetup &eventSetup)
 
virtual void endRun ()
 
 RecoMuonValidator (const edm::ParameterSet &pset)
 
 ~RecoMuonValidator ()
 
- Public Member Functions inherited from thread_unsafe::DQMEDAnalyzer
virtual void beginRun (edm::Run const &, edm::EventSetup const &) final
 
 DQMEDAnalyzer (void)
 
- Public Member Functions inherited from edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzer ()
 
ModuleDescription const & moduleDescription () const
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 
- Public Member Functions inherited from edm::EDConsumerBase
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Protected Attributes

const MuonAssociatorByHitsassoByHits
 
edm::InputTag beamspotLabel_
 
edm::EDGetTokenT< reco::BeamSpotbeamspotToken_
 
CommonMEcommonME_
 
DQMStoredbe_
 
bool doAbsEta_
 
bool doAssoc_
 
HistoDimensions hDim
 
edm::InputTag muAssocLabel_
 
edm::InputTag muonLabel_
 
MuonMEmuonME_
 
std::string muonSelection_
 
edm::EDGetTokenT< edm::View
< reco::Muon > > 
muonToken_
 
std::string outputFileName_
 
edm::InputTag primvertexLabel_
 
edm::EDGetTokenT
< reco::VertexCollection
primvertexToken_
 
edm::ParameterSet pset
 
edm::InputTag simLabel_
 
edm::EDGetTokenT
< TrackingParticleCollection
simToken_
 
std::string subDir_
 
std::string subsystemname_
 
MuonServiceProxytheMuonService
 
TrackingParticleSelector tpSelector_
 
MuonAssociatorByHits::MuonTrackType trackType_
 
bool usePFMuon_
 
unsigned int verbose_
 

Private Attributes

StringCutObjectSelector
< reco::Muon
selector_
 
bool wantTightMuon_
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
- 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

Definition at line 33 of file RecoMuonValidator.h.

Constructor & Destructor Documentation

RecoMuonValidator::RecoMuonValidator ( const edm::ParameterSet pset)

Definition at line 419 of file RecoMuonValidator.cc.

References beamspotLabel_, beamspotToken_, dbe_, RecoMuonValidator::HistoDimensions::doAbsEta, doAbsEta_, doAssoc_, edm::hlt::Exception, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), MuonAssociatorByHits::GlobalTk, hDim, MuonAssociatorByHits::InnerTk, RecoMuonValidator::HistoDimensions::maxDxy, RecoMuonValidator::HistoDimensions::maxDz, RecoMuonValidator::HistoDimensions::maxErrDxy, RecoMuonValidator::HistoDimensions::maxErrDz, RecoMuonValidator::HistoDimensions::maxErrEta, RecoMuonValidator::HistoDimensions::maxErrP, RecoMuonValidator::HistoDimensions::maxErrPhi, RecoMuonValidator::HistoDimensions::maxErrPt, RecoMuonValidator::HistoDimensions::maxErrQPt, RecoMuonValidator::HistoDimensions::maxEta, RecoMuonValidator::HistoDimensions::maxP, RecoMuonValidator::HistoDimensions::maxPhi, RecoMuonValidator::HistoDimensions::maxPt, RecoMuonValidator::HistoDimensions::minDxy, RecoMuonValidator::HistoDimensions::minDz, RecoMuonValidator::HistoDimensions::minErrDxy, RecoMuonValidator::HistoDimensions::minErrDz, RecoMuonValidator::HistoDimensions::minErrEta, RecoMuonValidator::HistoDimensions::minErrP, RecoMuonValidator::HistoDimensions::minErrPhi, RecoMuonValidator::HistoDimensions::minErrPt, RecoMuonValidator::HistoDimensions::minErrQPt, RecoMuonValidator::HistoDimensions::minEta, RecoMuonValidator::HistoDimensions::minP, RecoMuonValidator::HistoDimensions::minPhi, RecoMuonValidator::HistoDimensions::minPt, muAssocLabel_, muonLabel_, MuonServiceProxy_cff::MuonServiceProxy, muonToken_, RecoMuonValidator::HistoDimensions::nAssoc, RecoMuonValidator::HistoDimensions::nBinDxy, RecoMuonValidator::HistoDimensions::nBinDz, RecoMuonValidator::HistoDimensions::nBinErr, RecoMuonValidator::HistoDimensions::nBinEta, RecoMuonValidator::HistoDimensions::nBinP, RecoMuonValidator::HistoDimensions::nBinPhi, RecoMuonValidator::HistoDimensions::nBinPt, RecoMuonValidator::HistoDimensions::nBinPull, RecoMuonValidator::HistoDimensions::nDof, RecoMuonValidator::HistoDimensions::nTrks, cppFunctionSkipper::operator, MuonAssociatorByHits::OuterTk, outputFileName_, Pi, primvertexLabel_, primvertexToken_, MuonAssociatorByHits::Segments, simLabel_, simToken_, AlCaHLTBitMon_QueryRunRegistry::string, subDir_, subsystemname_, theMuonService, tpSelector_, trackType_, RecoMuonValidator::HistoDimensions::usePFMuon, usePFMuon_, verbose_, wantTightMuon_, and RecoMuonValidator::HistoDimensions::wPull.

419  :
420  selector_(pset.getParameter<std::string>("selection"))
421 {
422 // pset=ps;
423  verbose_ = pset.getUntrackedParameter<unsigned int>("verbose", 0);
424 
425  outputFileName_ = pset.getUntrackedParameter<string>("outputFileName", "");
426 
427  wantTightMuon_ = pset.getParameter<bool>("wantTightMuon");
428  beamspotLabel_ = pset.getParameter< edm::InputTag >("beamSpot");
429  primvertexLabel_ = pset.getParameter< edm::InputTag >("primaryVertex");
430  beamspotToken_ = consumes<reco::BeamSpot>(beamspotLabel_);
431  primvertexToken_ = consumes<reco::VertexCollection>(primvertexLabel_);
432 
433  // Set histogram dimensions from config
434 
435 
436  hDim.nBinP = pset.getUntrackedParameter<unsigned int>("nBinP");
437  hDim.minP = pset.getUntrackedParameter<double>("minP");
438  hDim.maxP = pset.getUntrackedParameter<double>("maxP");
439 
440  hDim.nBinPt = pset.getUntrackedParameter<unsigned int>("nBinPt");
441  hDim.minPt = pset.getUntrackedParameter<double>("minPt");
442  hDim.maxPt = pset.getUntrackedParameter<double>("maxPt");
443 
444  doAbsEta_ = pset.getUntrackedParameter<bool>("doAbsEta");
446  hDim.nBinEta = pset.getUntrackedParameter<unsigned int>("nBinEta");
447  hDim.minEta = pset.getUntrackedParameter<double>("minEta");
448  hDim.maxEta = pset.getUntrackedParameter<double>("maxEta");
449 
450  hDim.nBinDxy = pset.getUntrackedParameter<unsigned int>("nBinDxy");
451  hDim.minDxy = pset.getUntrackedParameter<double>("minDxy");
452  hDim.maxDxy = pset.getUntrackedParameter<double>("maxDxy");
453 
454  hDim.nBinDz = pset.getUntrackedParameter<unsigned int>("nBinDz");
455  hDim.minDz = pset.getUntrackedParameter<double>("minDz");
456  hDim.maxDz = pset.getUntrackedParameter<double>("maxDz");
457 
458  hDim.nBinPhi = pset.getUntrackedParameter<unsigned int>("nBinPhi");
459  hDim.minPhi = pset.getUntrackedParameter<double>("minPhi", -TMath::Pi());
460  hDim.maxPhi = pset.getUntrackedParameter<double>("maxPhi", TMath::Pi());
461 
462  hDim.nBinErr = pset.getUntrackedParameter<unsigned int>("nBinErr");
463  hDim.nBinPull = pset.getUntrackedParameter<unsigned int>("nBinPull");
464 
465  hDim.wPull = pset.getUntrackedParameter<double>("wPull");
466 
467  hDim.minErrP = pset.getUntrackedParameter<double>("minErrP");
468  hDim.maxErrP = pset.getUntrackedParameter<double>("maxErrP");
469 
470  hDim.minErrPt = pset.getUntrackedParameter<double>("minErrPt");
471  hDim.maxErrPt = pset.getUntrackedParameter<double>("maxErrPt");
472 
473  hDim.minErrQPt = pset.getUntrackedParameter<double>("minErrQPt");
474  hDim.maxErrQPt = pset.getUntrackedParameter<double>("maxErrQPt");
475 
476  hDim.minErrEta = pset.getUntrackedParameter<double>("minErrEta");
477  hDim.maxErrEta = pset.getUntrackedParameter<double>("maxErrEta");
478 
479  hDim.minErrPhi = pset.getUntrackedParameter<double>("minErrPhi");
480  hDim.maxErrPhi = pset.getUntrackedParameter<double>("maxErrPhi");
481 
482  hDim.minErrDxy = pset.getUntrackedParameter<double>("minErrDxy");
483  hDim.maxErrDxy = pset.getUntrackedParameter<double>("maxErrDxy");
484 
485  hDim.minErrDz = pset.getUntrackedParameter<double>("minErrDz" );
486  hDim.maxErrDz = pset.getUntrackedParameter<double>("maxErrDz" );
487 
488  hDim.nTrks = pset.getUntrackedParameter<unsigned int>("nTrks");
489  hDim.nAssoc = pset.getUntrackedParameter<unsigned int>("nAssoc");
490  hDim.nDof = pset.getUntrackedParameter<unsigned int>("nDof", 55);
491 
492 
493  // Labels for simulation and reconstruction tracks
494  simLabel_ = pset.getParameter<InputTag>("simLabel" );
495  muonLabel_ = pset.getParameter<InputTag>("muonLabel");
496  simToken_ = consumes<TrackingParticleCollection>(simLabel_);
497  muonToken_ = consumes<edm::View<reco::Muon> >(muonLabel_);
498 
499  // Labels for sim-reco association
500  doAssoc_ = pset.getUntrackedParameter<bool>("doAssoc", true);
501  muAssocLabel_ = pset.getParameter<InputTag>("muAssocLabel");
502  // muAssocToken = consumes<>(muAssocLabel_);
503 
504 // Different momentum assignment and additional histos in case of PF muons
505  usePFMuon_ = pset.getUntrackedParameter<bool>("usePFMuon");
507 
508 
509 
510  //type of track
511  std::string trackType = pset.getParameter< std::string >("trackType");
512  if (trackType == "inner") trackType_ = MuonAssociatorByHits::InnerTk;
513  else if (trackType == "outer") trackType_ = MuonAssociatorByHits::OuterTk;
514  else if (trackType == "global") trackType_ = MuonAssociatorByHits::GlobalTk;
515  else if (trackType == "segments") trackType_ = MuonAssociatorByHits::Segments;
516  else throw cms::Exception("Configuration") << "Track type '" << trackType << "' not supported.\n";
517 
518 // seedPropagatorName_ = pset.getParameter<string>("SeedPropagator");
519 
520  ParameterSet tpset = pset.getParameter<ParameterSet>("tpSelector");
521  tpSelector_ = TrackingParticleSelector(tpset.getParameter<double>("ptMin"),
522  tpset.getParameter<double>("minRapidity"),
523  tpset.getParameter<double>("maxRapidity"),
524  tpset.getParameter<double>("tip"),
525  tpset.getParameter<double>("lip"),
526  tpset.getParameter<int>("minHit"),
527  tpset.getParameter<bool>("signalOnly"),
528  tpset.getParameter<bool>("chargedOnly"),
529  tpset.getParameter<bool>("stableOnly"),
530  tpset.getParameter<std::vector<int> >("pdgId"));
531 
532 
533  // the service parameters
534  ParameterSet serviceParameters
535  = pset.getParameter<ParameterSet>("ServiceParameters");
536  theMuonService = new MuonServiceProxy(serviceParameters);
537 
538  // retrieve the instance of DQMService
540  subsystemname_ = pset.getUntrackedParameter<std::string>("subSystemFolder", "YourSubsystem") ;
541 
542  subDir_ = pset.getUntrackedParameter<string>("subDir");
543  if ( subDir_.empty() ) subDir_ = "RecoMuonV";
544  if ( subDir_[subDir_.size()-1] == '/' ) subDir_.erase(subDir_.size()-1);
545 
546 
547 }
const double Pi
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< edm::View< reco::Muon > > muonToken_
edm::EDGetTokenT< TrackingParticleCollection > simToken_
edm::InputTag simLabel_
StringCutObjectSelector< reco::Muon > selector_
edm::EDGetTokenT< reco::VertexCollection > primvertexToken_
TrackingParticleSelector tpSelector_
SingleObjectSelector< TrackingParticleCollection,::TrackingParticleSelector > TrackingParticleSelector
MuonServiceProxy * theMuonService
edm::InputTag muAssocLabel_
HistoDimensions hDim
std::string outputFileName_
edm::EDGetTokenT< reco::BeamSpot > beamspotToken_
unsigned int verbose_
edm::InputTag muonLabel_
MuonAssociatorByHits::MuonTrackType trackType_
std::string subsystemname_
edm::InputTag beamspotLabel_
edm::InputTag primvertexLabel_
RecoMuonValidator::~RecoMuonValidator ( )

Definition at line 606 of file RecoMuonValidator.cc.

References theMuonService.

607 {
608  if ( theMuonService ) delete theMuonService;
609 }
MuonServiceProxy * theMuonService

Member Function Documentation

void RecoMuonValidator::analyze ( const edm::Event event,
const edm::EventSetup eventSetup 
)
virtual

Implements edm::EDAnalyzer.

Definition at line 639 of file RecoMuonValidator.cc.

References assoByHits, MuonAssociatorByHits::associateMuons(), beamspotToken_, reco::BeamSpot::BeamWidthX(), reco::BeamSpot::BeamWidthY(), edm::View< T >::begin(), commonME_, funct::cos(), countMuonHits(), countTrackerHits(), doAbsEta_, doAssoc_, edm::View< T >::end(), relativeConstraints::error, MonitorElement::Fill(), RecoMuonValidator::MuonME::fill(), edm::Ref< C, T, F >::get(), RecoMuonValidator::CommonME::hMuonAllEta_, RecoMuonValidator::CommonME::hMuonAllP_, RecoMuonValidator::CommonME::hMuonAllPhi_, RecoMuonValidator::CommonME::hMuonAllPt_, RecoMuonValidator::CommonME::hMuonEta_, RecoMuonValidator::CommonME::hMuonP_, RecoMuonValidator::CommonME::hMuonPhi_, RecoMuonValidator::CommonME::hMuonPt_, RecoMuonValidator::CommonME::hMuonTrackDxy_, RecoMuonValidator::CommonME::hMuonTrackDz_, RecoMuonValidator::CommonME::hMuonTrackEta_, RecoMuonValidator::CommonME::hMuonTrackP_, RecoMuonValidator::CommonME::hMuonTrackPhi_, RecoMuonValidator::CommonME::hMuonTrackPt_, RecoMuonValidator::CommonME::hNDeltaInvalidHitsHitPattern_, RecoMuonValidator::CommonME::hNInvalidHitsGTHitPattern_, RecoMuonValidator::CommonME::hNInvalidHitsITHitPattern_, RecoMuonValidator::CommonME::hNInvalidHitsOTHitPattern_, RecoMuonValidator::MuonME::hNMuon_, RecoMuonValidator::MuonME::hNMuonHits_, RecoMuonValidator::MuonME::hNMuonHits_vs_Eta_, RecoMuonValidator::MuonME::hNMuonHits_vs_Pt_, RecoMuonValidator::MuonME::hNSim_, RecoMuonValidator::MuonME::hNSimHits_, RecoMuonValidator::MuonME::hNSimToReco_, RecoMuonValidator::MuonME::hNTrackerHits_, RecoMuonValidator::MuonME::hNTrackerHits_vs_Eta_, RecoMuonValidator::MuonME::hNTrackerHits_vs_Pt_, RecoMuonValidator::MuonME::hNTrksEta_, RecoMuonValidator::MuonME::hNTrksPt_, RecoMuonValidator::MuonME::hSimDxy_, RecoMuonValidator::MuonME::hSimDz_, RecoMuonValidator::MuonME::hSimEta_, RecoMuonValidator::MuonME::hSimP_, RecoMuonValidator::MuonME::hSimPhi_, RecoMuonValidator::MuonME::hSimPt_, RecoMuonValidator::CommonME::hStaToGlbDiffNMuonHits_, RecoMuonValidator::CommonME::hStaToGlbDiffNMuonHitsEta_, RecoMuonValidator::CommonME::hStaToGlbDiffNMuonHitsPt_, RecoMuonValidator::CommonME::hTrkToGlbDiffNTrackerHits_, RecoMuonValidator::CommonME::hTrkToGlbDiffNTrackerHitsEta_, RecoMuonValidator::CommonME::hTrkToGlbDiffNTrackerHitsPt_, i, edm::Ref< C, T, F >::isNonnull(), muon::isTightMuon(), Mu, PatBasicFWLiteAnalyzer::muonEta, muonME_, PatBasicFWLiteAnalyzer::muonPhi, PatBasicFWLiteAnalyzer::muonPt, muonToken_, reco::BeamSpot::position(), position, primvertexToken_, edm::Handle< T >::product(), edm::RefVector< C, T, F >::push_back(), selector_, reco::BeamSpot::sigmaZ(), simToken_, funct::sin(), edm::View< T >::size(), tpSelector_, trackType_, usePFMuon_, wantTightMuon_, and PV3DBase< T, PVType, FrameType >::x().

640 {
641  // Look for the Primary Vertex (and use the BeamSpot instead, if you can't find it):
642  reco::Vertex::Point posVtx;
643  reco::Vertex::Error errVtx;
645  event.getByToken(primvertexToken_,recVtxs);
646  unsigned int theIndexOfThePrimaryVertex = 999.;
647  for (unsigned int ind=0; ind<recVtxs->size(); ++ind) {
648  if ( (*recVtxs)[ind].isValid() && !((*recVtxs)[ind].isFake()) ) {
649  theIndexOfThePrimaryVertex = ind;
650  break;
651  }
652  }
653  if (theIndexOfThePrimaryVertex<100) {
654  posVtx = ((*recVtxs)[theIndexOfThePrimaryVertex]).position();
655  errVtx = ((*recVtxs)[theIndexOfThePrimaryVertex]).error();
656  }
657  else {
658  LogInfo("RecoMuonValidator") << "reco::PrimaryVertex not found, use BeamSpot position instead\n";
659  edm::Handle<reco::BeamSpot> recoBeamSpotHandle;
660  event.getByToken(beamspotToken_,recoBeamSpotHandle);
661  reco::BeamSpot bs = *recoBeamSpotHandle;
662  posVtx = bs.position();
663  errVtx(0,0) = bs.BeamWidthX();
664  errVtx(1,1) = bs.BeamWidthY();
665  errVtx(2,2) = bs.sigmaZ();
666  }
667  const reco::Vertex thePrimaryVertex(posVtx,errVtx);
668 
669 
670  // Get TrackingParticles
672  event.getByToken(simToken_, simHandle);
673  const TrackingParticleCollection simColl = *(simHandle.product());
674 
675  // Get Muons
676  Handle<edm::View<Muon> > muonHandle;
677  event.getByToken(muonToken_, muonHandle);
678  View<Muon> muonColl = *(muonHandle.product());
679 
680  const TrackingParticleCollection::size_type nSim = simColl.size();
681 
683  Muons = muonHandle->refVector();
684 
686  for (size_t i = 0; i < nSim; ++i) {
687  allTPs.push_back(TrackingParticleRef(simHandle,i));
688  }
689 
690 
691  muonME_->hNSim_->Fill(nSim);
692  muonME_->hNMuon_->Fill(muonColl.size());
693 
696 
697 
698  if ( doAssoc_ ) {
699  assoByHits->associateMuons(muonToSimColl, simToMuonColl, Muons, trackType_, allTPs, &event, &eventSetup);
700  } else {
701 
702 /*
703  // SimToMuon associations
704  Handle<reco::RecoToSimCollection> simToTrkMuHandle;
705  event.getByLabel(trkMuAssocLabel_, simToTrkMuHandle);
706  trkSimRecColl = *(simToTrkMuHandle.product());
707 
708  Handle<reco::RecoToSimCollection> simToStaMuHandle;
709  event.getByLabel(staMuAssocLabel_, simToStaMuHandle);
710  staSimRecColl = *(simToStaMuHandle.product());
711 
712  Handle<reco::RecoToSimCollection> simToGlbMuHandle;
713  event.getByLabel(glbMuAssocLabel_, simToGlbMuHandle);
714  glbSimRecColl = *(simToGlbMuHandle.product());
715 
716  // MuonToSim associations
717  Handle<reco::SimToRecoCollection> trkMuToSimHandle;
718  event.getByLabel(trkMuAssocLabel_, trkMuToSimHandle);
719  trkRecSimColl = *(trkMuToSimHandle.product());
720 
721  Handle<reco::SimToRecoCollection> staMuToSimHandle;
722  event.getByLabel(staMuAssocLabel_, staMuToSimHandle);
723  staRecSimColl = *(staMuToSimHandle.product());
724 
725  Handle<reco::SimToRecoCollection> glbMuToSimHandle;
726  event.getByLabel(glbMuAssocLabel_, glbMuToSimHandle);
727  glbRecSimColl = *(glbMuToSimHandle.product());
728 */
729  }
730 
731 
732 
733  int glbNTrackerHits = 0; int trkNTrackerHits = 0;
734  int glbNMuonHits = 0; int staNMuonHits = 0;
735  int NTrackerHits = 0; int NMuonHits = 0;
736 
737 
738  // Analyzer reco::Muon
739  for(View<Muon>::const_iterator iMuon = muonColl.begin();
740  iMuon != muonColl.end(); ++iMuon) {
741 
742  double muonP, muonPt, muonEta, muonPhi;
743  if (usePFMuon_) {
744  muonP = iMuon->pfP4().P();
745  muonPt = iMuon->pfP4().Pt();
746  muonEta = iMuon->pfP4().Eta();
747  muonPhi = iMuon->pfP4().Phi();
748  }
749  else {
750  muonP = iMuon->p();
751  muonPt = iMuon->pt();
752  muonEta = iMuon->eta();
753  muonPhi = iMuon->phi();
754  }
755 
756  //histograms for fractions
757  commonME_->hMuonAllP_->Fill(muonP);
758  commonME_->hMuonAllPt_->Fill(muonPt);
759  commonME_->hMuonAllEta_->Fill(muonEta);
760  commonME_->hMuonAllPhi_->Fill(muonPhi);
761 
762  if (!selector_(*iMuon)) continue;
763  if (wantTightMuon_)
764  {
765  if (!muon::isTightMuon(*iMuon, thePrimaryVertex)) continue;
766  }
767 
768  TrackRef Track = iMuon->track();
769 
770  if (Track.isNonnull()) {
771  commonME_->hMuonTrackP_->Fill(Track->p());
772  commonME_->hMuonTrackPt_->Fill(Track->pt());
773  commonME_->hMuonTrackEta_->Fill(Track->eta());
774  commonME_->hMuonTrackPhi_->Fill(Track->phi());
775 
776  //ip histograms
777  commonME_->hMuonTrackDxy_->Fill(Track->dxy());
778  commonME_->hMuonTrackDz_->Fill(Track->dz());
779  }
780 
781  if (iMuon->isGlobalMuon()) {
782  Track = iMuon->combinedMuon();
783  glbNTrackerHits = countTrackerHits(*Track);
784  glbNMuonHits = countMuonHits(*Track);
785  } else if (iMuon->isTrackerMuon()) {
786  Track = iMuon->track();
787  trkNTrackerHits = countTrackerHits(*Track);
788  } else {
789  Track = iMuon->standAloneMuon();
790  }
791 
792  NTrackerHits = countTrackerHits(*Track);
793  muonME_->hNTrackerHits_->Fill(NTrackerHits);
794  muonME_->hNTrackerHits_vs_Pt_->Fill(Track->pt(), NTrackerHits);
795  muonME_->hNTrackerHits_vs_Eta_->Fill(Track->eta(), NTrackerHits);
796 
797  NMuonHits = countMuonHits(*Track);
798  muonME_->hNMuonHits_->Fill(NMuonHits);
799  muonME_->hNMuonHits_vs_Pt_->Fill(Track->pt(), NMuonHits);
800  muonME_->hNMuonHits_vs_Eta_->Fill(Track->eta(), NMuonHits);
801 
802 //list of histos for each type
803 
804 // muonME_->hNTrks_->Fill();
805  muonME_->hNTrksEta_->Fill(Track->eta());
806  muonME_->hNTrksPt_->Fill(Track->pt());
807 
808  commonME_->hMuonP_->Fill(muonP);
809  commonME_->hMuonPt_->Fill(muonPt);
810  commonME_->hMuonEta_->Fill(muonEta);
811  commonME_->hMuonPhi_->Fill(muonPhi);
812 
813  if (iMuon->isGlobalMuon()) {
814  double gtHitPat = iMuon->globalTrack()->hitPattern().numberOfHits() - iMuon->globalTrack()->hitPattern().numberOfValidHits();
815  double itHitPat = iMuon->innerTrack()->hitPattern().numberOfHits() - iMuon->innerTrack()->hitPattern().numberOfValidHits();
816  double otHitPat = iMuon->outerTrack()->hitPattern().numberOfHits() - iMuon->outerTrack()->hitPattern().numberOfValidHits();
817 
821  commonME_->hNDeltaInvalidHitsHitPattern_->Fill(gtHitPat - itHitPat - otHitPat);
822 
823  //must be global and standalone
824  if (iMuon->isStandAloneMuon()) {
825  commonME_->hStaToGlbDiffNMuonHitsEta_->Fill(Track->eta(),staNMuonHits-glbNMuonHits);
826  commonME_->hStaToGlbDiffNMuonHitsPt_->Fill(Track->pt(),staNMuonHits-glbNMuonHits);
827  commonME_->hStaToGlbDiffNMuonHits_->Fill(staNMuonHits-glbNMuonHits);
828  }
829 
830  //must be global and tracker
831  if (iMuon->isTrackerMuon()) {
832  commonME_->hTrkToGlbDiffNTrackerHitsEta_->Fill(Track->eta(),trkNTrackerHits-glbNTrackerHits);
833  commonME_->hTrkToGlbDiffNTrackerHitsPt_->Fill(Track->pt(),trkNTrackerHits-glbNTrackerHits);
834  commonME_->hTrkToGlbDiffNTrackerHits_->Fill(trkNTrackerHits-glbNTrackerHits);
835  }
836  }
837 
838  }//end of reco muon loop
839 
840 
841  // Associate by hits
842  for(TrackingParticleCollection::size_type i=0; i<nSim; i++) {
843  TrackingParticleRef simRef(simHandle, i);
844  const TrackingParticle* simTP = simRef.get();
845  if ( ! tpSelector_(*simTP) ) continue;
846 
847  //denominators for efficiency plots
848  const double simP = simRef->p();
849  const double simPt = simRef->pt();
850  const double simEta = doAbsEta_ ? fabs(simRef->eta()) : simRef->eta();
851  const double simPhi = simRef->phi();
852 
853  GlobalPoint simVtx(simRef->vertex().x(), simRef->vertex().y(), simRef->vertex().z());
854  GlobalVector simMom(simRef->momentum().x(), simRef->momentum().y(), simRef->momentum().z());
855  const double simDxy = -simVtx.x()*sin(simPhi)+simVtx.y()*cos(simPhi);
856  const double simDz = simVtx.z() - (simVtx.x()*simMom.x()+simVtx.y()*simMom.y())*simMom.z()/simMom.perp2();
857 
858  const unsigned int nSimHits = simRef->numberOfHits();
859 
860  muonME_->hSimP_ ->Fill(simP );
861  muonME_->hSimPt_ ->Fill(simPt );
862  muonME_->hSimEta_->Fill(simEta);
863  muonME_->hSimPhi_->Fill(simPhi);
864  muonME_->hSimDxy_->Fill(simDxy);
865  muonME_->hSimDz_->Fill(simDz);
866  muonME_->hNSimHits_->Fill(nSimHits);
867 
868  // Get sim-reco association for a simRef
869  vector<pair<RefToBase<Muon>, double> > MuRefV;
870  if ( simToMuonColl.find(simRef) != simToMuonColl.end() ) {
871  MuRefV = simToMuonColl[simRef];
872 
873  if ( !MuRefV.empty()) {
874  muonME_->hNSimToReco_->Fill(MuRefV.size());
875  const Muon* Mu = MuRefV.begin()->first.get();
876  if (!selector_(*Mu)) continue;
877  if (wantTightMuon_)
878  {
879  if (!muon::isTightMuon(*Mu, thePrimaryVertex)) continue;
880  }
881 
882  muonME_->fill(&*simTP, Mu);
883  }
884  }
885  }
886 }
edm::EDGetTokenT< edm::View< reco::Muon > > muonToken_
edm::EDGetTokenT< TrackingParticleCollection > simToken_
int i
Definition: DBlmapReader.cc:9
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:81
std::vector< TrackingParticle > TrackingParticleCollection
void associateMuons(MuonToSimCollection &recoToSim, SimToMuonCollection &simToReco, const edm::RefToBaseVector< reco::Muon > &, MuonTrackType, const edm::RefVector< TrackingParticleCollection > &, const edm::Event *event=0, const edm::EventSetup *setup=0) const
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
StringCutObjectSelector< reco::Muon > selector_
math::Error< dimension >::type Error
covariance error matrix (3x3)
Definition: Vertex.h:43
edm::EDGetTokenT< reco::VertexCollection > primvertexToken_
virtual int countTrackerHits(const reco::Track &track) const
uint16_t size_type
void Fill(long long x)
TrackingParticleSelector tpSelector_
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:250
std::map< TrackingParticleRef, std::vector< std::pair< edm::RefToBase< reco::Muon >, double > > > SimToMuonCollection
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
virtual int countMuonHits(const reco::Track &track) const
const MuonAssociatorByHits * assoByHits
edm::EDGetTokenT< reco::BeamSpot > beamspotToken_
double p() const
Magnitude of momentum vector. Note this is taken from the first SimTrack only.
math::XYZPoint Point
point in the space
Definition: Vertex.h:39
double BeamWidthX() const
beam width X
Definition: BeamSpot.h:86
MuonAssociatorByHits::MuonTrackType trackType_
void fill(const TrackingParticle *simRef, const Muon *muonRef)
Definition: L1GtObject.h:30
double sigmaZ() const
sigma z
Definition: BeamSpot.h:80
double BeamWidthY() const
beam width Y
Definition: BeamSpot.h:88
size_type size() const
T const * product() const
Definition: Handle.h:81
static int position[264][3]
Definition: ReadPGInfo.cc:509
void push_back(value_type const &ref)
Add a Ref&lt;C, T&gt; to the RefVector.
Definition: RefVector.h:64
Monte Carlo truth information used for tracking validation.
const_iterator begin() const
const Point & position() const
position
Definition: BeamSpot.h:62
const_iterator end() const
bool isTightMuon(const reco::Muon &, const reco::Vertex &)
T x() const
Definition: PV3DBase.h:62
std::map< edm::RefToBase< reco::Muon >, std::vector< std::pair< TrackingParticleRef, double > >, RefToBaseSort > MuonToSimCollection
edm::Ref< TrackingParticleCollection > TrackingParticleRef
void RecoMuonValidator::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  iRun,
edm::EventSetup const &   
)
overridevirtual

Implements thread_unsafe::DQMEDAnalyzer.

Definition at line 549 of file RecoMuonValidator.cc.

References DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), RecoMuonValidator::MuonME::bookHistos(), DQMStore::IBooker::cd(), commonME_, hDim, RecoMuonValidator::CommonME::hMuonAllEta_, RecoMuonValidator::CommonME::hMuonAllP_, RecoMuonValidator::CommonME::hMuonAllPhi_, RecoMuonValidator::CommonME::hMuonAllPt_, RecoMuonValidator::CommonME::hMuonEta_, RecoMuonValidator::CommonME::hMuonP_, RecoMuonValidator::CommonME::hMuonPhi_, RecoMuonValidator::CommonME::hMuonPt_, RecoMuonValidator::CommonME::hMuonTrackDxy_, RecoMuonValidator::CommonME::hMuonTrackDz_, RecoMuonValidator::CommonME::hMuonTrackEta_, RecoMuonValidator::CommonME::hMuonTrackP_, RecoMuonValidator::CommonME::hMuonTrackPhi_, RecoMuonValidator::CommonME::hMuonTrackPt_, RecoMuonValidator::CommonME::hNDeltaInvalidHitsHitPattern_, RecoMuonValidator::CommonME::hNInvalidHitsGTHitPattern_, RecoMuonValidator::CommonME::hNInvalidHitsITHitPattern_, RecoMuonValidator::CommonME::hNInvalidHitsOTHitPattern_, RecoMuonValidator::CommonME::hStaToGlbDiffNMuonHits_, RecoMuonValidator::CommonME::hStaToGlbDiffNMuonHitsEta_, RecoMuonValidator::CommonME::hStaToGlbDiffNMuonHitsPt_, RecoMuonValidator::CommonME::hTrkToGlbDiffNTrackerHits_, RecoMuonValidator::CommonME::hTrkToGlbDiffNTrackerHitsEta_, RecoMuonValidator::CommonME::hTrkToGlbDiffNTrackerHitsPt_, RecoMuonValidator::HistoDimensions::maxDxy, RecoMuonValidator::HistoDimensions::maxDz, RecoMuonValidator::HistoDimensions::maxEta, RecoMuonValidator::HistoDimensions::maxP, RecoMuonValidator::HistoDimensions::maxPhi, RecoMuonValidator::HistoDimensions::maxPt, RecoMuonValidator::HistoDimensions::minDxy, RecoMuonValidator::HistoDimensions::minDz, RecoMuonValidator::HistoDimensions::minEta, RecoMuonValidator::HistoDimensions::minP, RecoMuonValidator::HistoDimensions::minPhi, RecoMuonValidator::HistoDimensions::minPt, muonME_, RecoMuonValidator::HistoDimensions::nBinDxy, RecoMuonValidator::HistoDimensions::nBinDz, RecoMuonValidator::HistoDimensions::nBinEta, RecoMuonValidator::HistoDimensions::nBinP, RecoMuonValidator::HistoDimensions::nBinPhi, RecoMuonValidator::HistoDimensions::nBinPt, DQMStore::IBooker::setCurrentFolder(), and subDir_.

551  {
552 
553 
554  // book histograms
555  ibooker.cd();
556 
557  ibooker.setCurrentFolder(subDir_);
558 
559  commonME_ = new CommonME;
560  muonME_ = new MuonME;
561 
562  //commonME
563  const int nHits = 100;
564 
565  // - diffs
566  commonME_->hTrkToGlbDiffNTrackerHits_ = ibooker.book1D("TrkGlbDiffNTrackerHits", "Difference of number of tracker hits (tkMuon - globalMuon)", 2*nHits+1, -nHits-0.5, nHits+0.5);
567  commonME_->hStaToGlbDiffNMuonHits_ = ibooker.book1D("StaGlbDiffNMuonHits", "Difference of number of muon hits (staMuon - globalMuon)", 2*nHits+1, -nHits-0.5, nHits+0.5);
568 
569  commonME_->hTrkToGlbDiffNTrackerHitsEta_ = ibooker.book2D("TrkGlbDiffNTrackerHitsEta", "Difference of number of tracker hits (tkMuon - globalMuon)", hDim.nBinEta, hDim.minEta, hDim.maxEta,2*nHits+1, -nHits-0.5, nHits+0.5);
570  commonME_->hStaToGlbDiffNMuonHitsEta_ = ibooker.book2D("StaGlbDiffNMuonHitsEta", "Difference of number of muon hits (staMuon - globalMuon)", hDim.nBinEta, hDim.minEta, hDim.maxEta,2*nHits+1, -nHits-0.5, nHits+0.5);
571 
572  commonME_->hTrkToGlbDiffNTrackerHitsPt_ = ibooker.book2D("TrkGlbDiffNTrackerHitsPt", "Difference of number of tracker hits (tkMuon - globalMuon)", hDim.nBinPt, hDim.minPt, hDim.maxPt,2*nHits+1, -nHits-0.5, nHits+0.5);
573  commonME_->hStaToGlbDiffNMuonHitsPt_ = ibooker.book2D("StaGlbDiffNMuonHitsPt", "Difference of number of muon hits (staMuon - globalMuon)", hDim.nBinPt, hDim.minPt, hDim.maxPt,2*nHits+1, -nHits-0.5, nHits+0.5);
574 
575  // -global muon hit pattern
576  commonME_->hNInvalidHitsGTHitPattern_ = ibooker.book1D("NInvalidHitsGTHitPattern", "Number of invalid hits on a global track", nHits+1, -0.5, nHits+0.5);
577  commonME_->hNInvalidHitsITHitPattern_ = ibooker.book1D("NInvalidHitsITHitPattern", "Number of invalid hits on an inner track", nHits+1, -0.5, nHits+0.5);
578  commonME_->hNInvalidHitsOTHitPattern_ = ibooker.book1D("NInvalidHitsOTHitPattern", "Number of invalid hits on an outer track", nHits+1, -0.5, nHits+0.5);
579  commonME_->hNDeltaInvalidHitsHitPattern_ = ibooker.book1D("hNDeltaInvalidHitsHitPattern", "The discrepancy for Number of invalid hits on an global track and inner and outer tracks", 2*nHits+1, -nHits-0.5, nHits+0.5);
580 
581  //muon based kinematics
582  commonME_->hMuonP_ = ibooker.book1D("PMuon" , "p of muon" , hDim.nBinP , hDim.minP , hDim.maxP );
583  commonME_->hMuonPt_ = ibooker.book1D("PtMuon" , "p_{T} of muon", hDim.nBinPt , hDim.minPt , hDim.maxPt );
584  commonME_->hMuonEta_ = ibooker.book1D("EtaMuon", "#eta of muon" , hDim.nBinEta, hDim.minEta, hDim.maxEta);
585  commonME_->hMuonPhi_ = ibooker.book1D("PhiMuon", "#phi of muon" , hDim.nBinPhi, hDim.minPhi, hDim.maxPhi);
586  //track based kinematics
587  commonME_->hMuonTrackP_ = ibooker.book1D("PMuonTrack" , "p of reco muon track" , hDim.nBinP , hDim.minP , hDim.maxP );
588  commonME_->hMuonTrackPt_ = ibooker.book1D("PtMuonTrack" , "p_{T} of reco muon track", hDim.nBinPt , hDim.minPt , hDim.maxPt );
589  commonME_->hMuonTrackEta_ = ibooker.book1D("EtaMuonTrack", "#eta of reco muon track" , hDim.nBinEta, hDim.minEta, hDim.maxEta);
590  commonME_->hMuonTrackPhi_ = ibooker.book1D("PhiMuonTrack", "#phi of reco muon track" , hDim.nBinPhi, hDim.minPhi, hDim.maxPhi);
591  commonME_->hMuonTrackDxy_ = ibooker.book1D("DxyMuonTrack", "Dxy of reco muon track" , hDim.nBinDxy, hDim.minDxy, hDim.maxDxy);
592  commonME_->hMuonTrackDz_ = ibooker.book1D("DzMuonTrack", "Dz of reco muon track" , hDim.nBinDz, hDim.minDz, hDim.maxDz);
593 
594  //histograms for fractions
595  commonME_->hMuonAllP_ = ibooker.book1D("PMuonAll" , "p of muons of all types" , hDim.nBinP , hDim.minP , hDim.maxP );
596  commonME_->hMuonAllPt_ = ibooker.book1D("PtMuonAll" , "p_{T} of muon of all types", hDim.nBinPt , hDim.minPt , hDim.maxPt );
597  commonME_->hMuonAllEta_ = ibooker.book1D("EtaMuonAll", "#eta of muon of all types" , hDim.nBinEta, hDim.minEta, hDim.maxEta);
598  commonME_->hMuonAllPhi_ = ibooker.book1D("PhiMuonAll", "#phi of muon of all types" , hDim.nBinPhi, hDim.minPhi, hDim.maxPhi);
599 
600  muonME_->bookHistos(ibooker, subDir_, hDim);
601 }
void cd(void)
Definition: DQMStore.cc:266
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:113
HistoDimensions hDim
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:274
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:131
void bookHistos(DQMStore::IBooker &ibooker, const string &dirName, const HistoDimensions &hDim)
int RecoMuonValidator::countMuonHits ( const reco::Track track) const
virtual

Definition at line 889 of file RecoMuonValidator.cc.

References prof2calltree::count, DetId::det(), DetId::Muon, reco::Track::recHitsBegin(), reco::Track::recHitsEnd(), and query::result.

Referenced by analyze().

889  {
891 
892  int count = 0;
893 
894  for (trackingRecHit_iterator hit = track.recHitsBegin(); hit != track.recHitsEnd(); ++hit) {
895  if((*hit)->isValid()) {
896  DetId recoid = (*hit)->geographicalId();
897  if ( recoid.det() == DetId::Muon ) count++;
898  }
899  }
900  return count;
901 }
tuple result
Definition: query.py:137
trackingRecHit_iterator recHitsBegin() const
Iterator to first hit on the track.
Definition: Track.h:63
std::vector< ConstRecHitPointer > ConstRecHitContainer
Definition: DetId.h:18
Detector det() const
get the detector field from this detid
Definition: DetId.h:35
trackingRecHit_iterator recHitsEnd() const
Iterator to last hit on the track.
Definition: Track.h:65
int RecoMuonValidator::countTrackerHits ( const reco::Track track) const
virtual

Definition at line 904 of file RecoMuonValidator.cc.

References prof2calltree::count, DetId::det(), reco::Track::recHitsBegin(), reco::Track::recHitsEnd(), query::result, and DetId::Tracker.

Referenced by analyze().

904  {
906 
907  int count = 0;
908 
909  for (trackingRecHit_iterator hit = track.recHitsBegin(); hit != track.recHitsEnd(); ++hit) {
910  if((*hit)->isValid()) {
911  DetId recoid = (*hit)->geographicalId();
912  if ( recoid.det() == DetId::Tracker ) count++;
913  }
914  }
915  return count;
916 }
tuple result
Definition: query.py:137
trackingRecHit_iterator recHitsBegin() const
Iterator to first hit on the track.
Definition: Track.h:63
std::vector< ConstRecHitPointer > ConstRecHitContainer
Definition: DetId.h:18
Detector det() const
get the detector field from this detid
Definition: DetId.h:35
trackingRecHit_iterator recHitsEnd() const
Iterator to last hit on the track.
Definition: Track.h:65
void RecoMuonValidator::dqmBeginRun ( const edm::Run ,
const edm::EventSetup eventSetup 
)
virtual

Reimplemented from thread_unsafe::DQMEDAnalyzer.

Definition at line 615 of file RecoMuonValidator.cc.

References assoByHits, doAssoc_, edm::hlt::Exception, edm::EventSetup::get(), edm::InputTag::label(), muAssocLabel_, edm::ESHandle< class >::product(), and theMuonService.

616 {
617  if ( theMuonService ) theMuonService->update(eventSetup);
618 
619  if ( doAssoc_ ) {
620  edm::ESHandle<TrackAssociatorBase> associatorBase;
621  eventSetup.get<TrackAssociatorRecord>().get(muAssocLabel_.label(), associatorBase);
622  assoByHits = dynamic_cast<const MuonAssociatorByHits *>(associatorBase.product());
623  if (assoByHits == 0) throw cms::Exception("Configuration") << "The Track Associator with label '" << muAssocLabel_.label() << "' is not a MuonAssociatorByHits.\n";
624  }
625 
626 }
MuonServiceProxy * theMuonService
edm::InputTag muAssocLabel_
const MuonAssociatorByHits * assoByHits
const T & get() const
Definition: EventSetup.h:55
T const * product() const
Definition: ESHandle.h:62
std::string const & label() const
Definition: InputTag.h:42
void RecoMuonValidator::endRun ( void  )
virtual

Definition at line 631 of file RecoMuonValidator.cc.

References dbe_, outputFileName_, and DQMStore::save().

632 {
633  if ( dbe_ && ! outputFileName_.empty() ) dbe_->save(outputFileName_);
634 }
std::string outputFileName_
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", const uint32_t run=0, const uint32_t lumi=0, SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE", const bool resetMEsAfterWriting=false)
Definition: DQMStore.cc:2540

Member Data Documentation

const MuonAssociatorByHits* RecoMuonValidator::assoByHits
protected

Definition at line 56 of file RecoMuonValidator.h.

Referenced by analyze(), and dqmBeginRun().

edm::InputTag RecoMuonValidator::beamspotLabel_
protected

Definition at line 59 of file RecoMuonValidator.h.

Referenced by RecoMuonValidator().

edm::EDGetTokenT<reco::BeamSpot> RecoMuonValidator::beamspotToken_
protected

Definition at line 61 of file RecoMuonValidator.h.

Referenced by analyze(), and RecoMuonValidator().

CommonME* RecoMuonValidator::commonME_
protected

Definition at line 85 of file RecoMuonValidator.h.

Referenced by analyze(), and bookHistograms().

DQMStore* RecoMuonValidator::dbe_
protected

Definition at line 70 of file RecoMuonValidator.h.

Referenced by endRun(), and RecoMuonValidator().

bool RecoMuonValidator::doAbsEta_
protected

Definition at line 72 of file RecoMuonValidator.h.

Referenced by analyze(), and RecoMuonValidator().

bool RecoMuonValidator::doAssoc_
protected

Definition at line 73 of file RecoMuonValidator.h.

Referenced by analyze(), dqmBeginRun(), and RecoMuonValidator().

HistoDimensions RecoMuonValidator::hDim
protected

Definition at line 131 of file RecoMuonValidator.h.

Referenced by bookHistograms(), and RecoMuonValidator().

edm::InputTag RecoMuonValidator::muAssocLabel_
protected

Definition at line 55 of file RecoMuonValidator.h.

Referenced by dqmBeginRun(), and RecoMuonValidator().

edm::InputTag RecoMuonValidator::muonLabel_
protected

Definition at line 50 of file RecoMuonValidator.h.

Referenced by RecoMuonValidator().

MuonME* RecoMuonValidator::muonME_
protected

Definition at line 82 of file RecoMuonValidator.h.

Referenced by analyze(), and bookHistograms().

std::string RecoMuonValidator::muonSelection_
protected

Definition at line 51 of file RecoMuonValidator.h.

edm::EDGetTokenT<edm::View<reco::Muon> > RecoMuonValidator::muonToken_
protected

Definition at line 53 of file RecoMuonValidator.h.

Referenced by analyze(), and RecoMuonValidator().

std::string RecoMuonValidator::outputFileName_
protected

Definition at line 64 of file RecoMuonValidator.h.

Referenced by endRun(), and RecoMuonValidator().

edm::InputTag RecoMuonValidator::primvertexLabel_
protected

Definition at line 60 of file RecoMuonValidator.h.

Referenced by RecoMuonValidator().

edm::EDGetTokenT<reco::VertexCollection> RecoMuonValidator::primvertexToken_
protected

Definition at line 62 of file RecoMuonValidator.h.

Referenced by analyze(), and RecoMuonValidator().

edm::ParameterSet RecoMuonValidator::pset
protected

Definition at line 67 of file RecoMuonValidator.h.

StringCutObjectSelector<reco::Muon> RecoMuonValidator::selector_
private

Definition at line 133 of file RecoMuonValidator.h.

Referenced by analyze().

edm::InputTag RecoMuonValidator::simLabel_
protected

Definition at line 49 of file RecoMuonValidator.h.

Referenced by RecoMuonValidator().

edm::EDGetTokenT<TrackingParticleCollection> RecoMuonValidator::simToken_
protected

Definition at line 52 of file RecoMuonValidator.h.

Referenced by analyze(), and RecoMuonValidator().

std::string RecoMuonValidator::subDir_
protected

Definition at line 65 of file RecoMuonValidator.h.

Referenced by bookHistograms(), and RecoMuonValidator().

std::string RecoMuonValidator::subsystemname_
protected

Definition at line 66 of file RecoMuonValidator.h.

Referenced by RecoMuonValidator().

MuonServiceProxy* RecoMuonValidator::theMuonService
protected

Definition at line 69 of file RecoMuonValidator.h.

Referenced by dqmBeginRun(), RecoMuonValidator(), and ~RecoMuonValidator().

TrackingParticleSelector RecoMuonValidator::tpSelector_
protected

Definition at line 77 of file RecoMuonValidator.h.

Referenced by analyze(), and RecoMuonValidator().

MuonAssociatorByHits::MuonTrackType RecoMuonValidator::trackType_
protected

Definition at line 80 of file RecoMuonValidator.h.

Referenced by analyze(), and RecoMuonValidator().

bool RecoMuonValidator::usePFMuon_
protected

Definition at line 74 of file RecoMuonValidator.h.

Referenced by analyze(), and RecoMuonValidator().

unsigned int RecoMuonValidator::verbose_
protected

Definition at line 47 of file RecoMuonValidator.h.

Referenced by RecoMuonValidator().

bool RecoMuonValidator::wantTightMuon_
private

Definition at line 134 of file RecoMuonValidator.h.

Referenced by analyze(), and RecoMuonValidator().