CMS 3D CMS Logo

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

#include <MuonRecoAnalyzer.h>

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

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 Inizialize parameters for histo binning. More...
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
double getDeltaR (reco::Track track1, reco::Track track2)
 
int getPv (int tidx, const reco::VertexCollection *vc)
 
void GetRes (reco::TrackRef t1, reco::TrackRef t2, std::string par, float &res, float &pull)
 
 MuonRecoAnalyzer (const edm::ParameterSet &)
 Constructor. More...
 
 ~MuonRecoAnalyzer () 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
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Private Attributes

int chi2Bin
 
MonitorElementchi2LocMomSoftMuonMVA
 
MonitorElementchi2LocPosSoftMuonMVA
 
double chi2Max
 
double chi2Min
 
std::vector< MonitorElement * > chi2OvDFGlbTrack
 
MonitorElementchi2OvDFStaTrack
 
MonitorElementchi2OvDFTrack
 
edm::EDGetTokenT
< DcsStatusCollection
dcsStatusCollection_
 
MonitorElementdeltaRSoftMuonMVA
 
bool doMVA
 
MonitorElementdxyRefSoftMuonMVA
 
MonitorElementdzRefSoftMuonMVA
 
int etaBin
 
std::vector< MonitorElement * > etaEfficiency
 
std::vector< MonitorElement * > etaGlbTrack
 
double etaMax
 
double etaMin
 
MonitorElementetaPull
 
std::vector< MonitorElement * > etaResolution
 
MonitorElementetaStaTrack
 
MonitorElementetaTrack
 
MonitorElementgetMuonHitsPerStationSoftMuonMVA
 
MonitorElementglbDeltaEtaPhiSoftMuonMVA
 
MonitorElementglbKinkFinderLogSoftMuonMVA
 
MonitorElementglbKinkFinderSoftMuonMVA
 
MonitorElementglbTrackTailProbSoftMuonMVA
 
MonitorElementgNchi2SoftMuonMVA
 
MonitorElementinnerChi2SoftMuonMVA
 
bool IsminiAOD
 
MonitorElementiValFracSoftMuonMVA
 
MonitorElementkinkFinderSoftMuonMVA
 
MonitorElementLWHSoftMuonMVA
 
int maxGEMhitsSoftMuonMVA
 
std::string metname
 
MonitorElementmNuStationsSoftMuonMVA
 
MonitorElementmuReco
 
std::vector< MonitorElement * > muVStkSytemRotation
 
MonitorElementNTrkVHitsSoftMuonMVA
 
MonitorElementoneOverpPull
 
std::vector< MonitorElement * > oneOverpResolution
 
MonitorElementoneOverptPull
 
std::vector< MonitorElement * > oneOverptResolution
 
MonitorElementouterChi2SoftMuonMVA
 
edm::ParameterSet parameters
 
int pBin
 
std::vector< MonitorElement * > pGlbTrack
 
int phiBin
 
std::vector< MonitorElement * > phiEfficiency
 
std::vector< MonitorElement * > phiGlbTrack
 
double phiMax
 
double phiMin
 
MonitorElementphiPull
 
std::vector< MonitorElement * > phiResolution
 
MonitorElementphiStaTrack
 
MonitorElementphiTrack
 
std::vector< MonitorElement * > phiVsetaGlbTrack
 
std::vector< MonitorElement * > phiVsetaGlbTrack_badlumi
 
double pMax
 
double pMin
 
int pResBin
 
double pResMax
 
double pResMin
 
std::vector< MonitorElement * > probchi2GlbTrack
 
MonitorElementprobchi2StaTrack
 
MonitorElementprobchi2Track
 
MonitorElementpStaTrack
 
int ptBin
 
std::vector< MonitorElement * > ptGlbTrack
 
double ptMax
 
double ptMin
 
MonitorElementpTrack
 
MonitorElementptSoftMuonMVA
 
MonitorElementptStaTrack
 
MonitorElementptTrack
 
std::vector< MonitorElement * > qGlbTrack
 
MonitorElementqOverpPull
 
std::vector< MonitorElement * > qOverpResolution
 
MonitorElementqOverptPull
 
std::vector< MonitorElement * > qOverptResolution
 
MonitorElementQprodSoftMuonMVA
 
MonitorElementqStaTrack
 
MonitorElementqTrack
 
std::vector< MonitorElement * > rhAnalysis
 
int rhBin
 
double rhMax
 
double rhMin
 
MonitorElementsegCompSoftMuonMVA
 
MonitorElementstaRelChi2SoftMuonMVA
 
edm::EDGetTokenT< reco::BeamSpottheBeamSpotLabel_
 
std::string theFolder
 
edm::EDGetTokenT< edm::View
< reco::Muon > > 
theMuonCollectionLabel_
 
int thetaBin
 
std::vector< MonitorElement * > thetaGlbTrack
 
double thetaMax
 
double thetaMin
 
MonitorElementthetaPull
 
std::vector< MonitorElement * > thetaResolution
 
MonitorElementthetaStaTrack
 
MonitorElementthetaTrack
 
edm::EDGetTokenT
< reco::VertexCollection
theVertexLabel_
 
MonitorElementtimeAtIpInOutErrSoftMuonMVA
 
MonitorElementtimeAtIpInOutSoftMuonMVA
 
MonitorElementtrkRelChi2SoftMuonMVA
 
int tunePBin
 
double tunePMax
 
double tunePMin
 
MonitorElementtunePResolution
 
bool useGEM
 
MonitorElementvalPixHitsSoftMuonMVA
 
MonitorElementvCSChitsSoftMuonMVA
 
MonitorElementvDThitsSoftMuonMVA
 
MonitorElementvGEMhitsSoftMuonMVA
 
MonitorElementvMuHitsSoftMuonMVA
 
MonitorElementvRPChitsSoftMuonMVA
 

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 >
using CacheTypes = CacheContexts< T...>
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T...>
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::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
< DQMEDAnalyzerGlobalCache
initializeGlobalCache (edm::ParameterSet const &)
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

Definition at line 29 of file MuonRecoAnalyzer.h.

Constructor & Destructor Documentation

MuonRecoAnalyzer::MuonRecoAnalyzer ( const edm::ParameterSet pSet)

Constructor.

Definition at line 18 of file MuonRecoAnalyzer.cc.

References gpuVertexFinder::chi2Max, etaBin(), Puppi_cff::etaMax, Puppi_cff::etaMin, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), L1TMuonDQMOffline_cfi::phiMax, L1TMuonDQMOffline_cfi::phiMin, HLT_FULL_cff::pMin, HLT_FULL_cff::ptMax, ptMin, and AlCaHLTBitMon_QueryRunRegistry::string.

18  {
19  parameters = pSet;
20 
21  // Input booleans
22  IsminiAOD = parameters.getParameter<bool>("IsminiAOD");
23  doMVA = parameters.getParameter<bool>("doMVA");
24  useGEM = parameters.getUntrackedParameter<bool>("useGEM");
25  maxGEMhitsSoftMuonMVA = parameters.getUntrackedParameter<int>("maxGEMhitsSoftMuonMVA");
26 
27  // the services:
28  theMuonCollectionLabel_ = consumes<edm::View<reco::Muon> >(parameters.getParameter<edm::InputTag>("MuonCollection"));
29  theVertexLabel_ = consumes<reco::VertexCollection>(pSet.getParameter<InputTag>("inputTagVertex"));
30  theBeamSpotLabel_ = consumes<reco::BeamSpot>(pSet.getParameter<InputTag>("inputTagBeamSpot"));
32  consumes<DcsStatusCollection>(pSet.getUntrackedParameter<std::string>("dcsStatusCollection", "scalersRawToDigi"));
33 
34  ptBin = parameters.getParameter<int>("ptBin");
35  ptMin = parameters.getParameter<double>("ptMin");
36  ptMax = parameters.getParameter<double>("ptMax");
37  pResBin = parameters.getParameter<int>("pResBin");
38  pResMin = parameters.getParameter<double>("pResMin");
39  pResMax = parameters.getParameter<double>("pResMax");
40  rhBin = parameters.getParameter<int>("rhBin");
41  rhMin = parameters.getParameter<double>("rhMin");
42  rhMax = parameters.getParameter<double>("rhMax");
43  pBin = parameters.getParameter<int>("pBin");
44  pMin = parameters.getParameter<double>("pMin");
45  pMax = parameters.getParameter<double>("pMax");
46  chi2Bin = parameters.getParameter<int>("chi2Bin");
47  chi2Min = parameters.getParameter<double>("chi2Min");
48  chi2Max = parameters.getParameter<double>("chi2Max");
49  phiBin = parameters.getParameter<int>("phiBin");
50  phiMin = parameters.getParameter<double>("phiMin");
51  phiMax = parameters.getParameter<double>("phiMax");
52  tunePBin = parameters.getParameter<int>("tunePBin");
53  tunePMax = parameters.getParameter<double>("tunePMax");
54  tunePMin = parameters.getParameter<double>("tunePMin");
55  thetaBin = parameters.getParameter<int>("thetaBin");
56  thetaMin = parameters.getParameter<double>("thetaMin");
57  thetaMax = parameters.getParameter<double>("thetaMax");
58  etaBin = parameters.getParameter<int>("etaBin");
59  etaMin = parameters.getParameter<double>("etaMin");
60  etaMax = parameters.getParameter<double>("etaMax");
61 
62  theFolder = parameters.getParameter<string>("folder");
63 }
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< DcsStatusCollection > dcsStatusCollection_
std::string theFolder
edm::EDGetTokenT< reco::BeamSpot > theBeamSpotLabel_
edm::EDGetTokenT< edm::View< reco::Muon > > theMuonCollectionLabel_
edm::ParameterSet parameters
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::EDGetTokenT< reco::VertexCollection > theVertexLabel_
MuonRecoAnalyzer::~MuonRecoAnalyzer ( )
override

Destructor.

Definition at line 65 of file MuonRecoAnalyzer.cc.

65 {}

Member Function Documentation

void MuonRecoAnalyzer::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overridevirtual

Inizialize parameters for histo binning.

Reimplemented from DQMEDAnalyzer.

Definition at line 585 of file MuonRecoAnalyzer.cc.

References beam_dqm_sourceclient-live_cfg::beamSpot, DcsStatus::BPIX, reco::MuonQuality::chi2LocalMomentum, reco::MuonQuality::chi2LocalPosition, DcsStatus::CSCm, DcsStatus::CSCp, DcsStatus::DT0, DcsStatus::DTm, DcsStatus::DTp, DcsStatus::EBm, DcsStatus::EBp, DcsStatus::EEm, DcsStatus::EEp, DcsStatus::ESm, DcsStatus::ESp, HcalObjRepresent::Fill(), DcsStatus::FPIX, edm::Event::getByToken(), reco::MuonQuality::glbKink, reco::MuonQuality::glbTrackProbability, reco::MuonQuality::globalDeltaEtaPhi, DcsStatus::HBHEa, DcsStatus::HBHEb, DcsStatus::HBHEc, DcsStatus::HF, DcsStatus::HO, edm::Ref< C, T, F >::index(), edm::Ref< C, T, F >::isNonnull(), edm::HandleBase::isValid(), LogTrace, metname, DetId::Muon, HLT_FULL_cff::muon, patZpeak::muons, reco::HitPattern::numberOfValidMuonCSCHits(), reco::HitPattern::numberOfValidMuonDTHits(), reco::HitPattern::numberOfValidMuonGEMHits(), reco::HitPattern::numberOfValidMuonHits(), reco::HitPattern::numberOfValidMuonRPCHits(), reco::HitPattern::numberOfValidPixelHits(), reco::HitPattern::numberOfValidTrackerHits(), DcsStatus::RPC, reco::MuonQuality::staRelChi2, DcsStatus::TECm, DcsStatus::TECp, DcsStatus::TIBTID, DcsStatus::TOB, DetId::Tracker, reco::HitPattern::trackerLayersWithMeasurement(), reco::MuonQuality::trkKink, and reco::MuonQuality::trkRelChi2.

585  {
586  LogTrace(metname) << "[MuonRecoAnalyzer] Analyze the mu";
587 
588  // Take the muon container
590  iEvent.getByToken(theMuonCollectionLabel_, muons);
591 
594  if (doMVA) {
595  iEvent.getByToken(theBeamSpotLabel_, beamSpot);
596  if (!beamSpot.isValid()) {
597  edm::LogInfo("MuonRecoAnalyzer") << "Error: Can't get the beamspot" << endl;
598  doMVA = false;
599  }
600  iEvent.getByToken(theVertexLabel_, vertex);
601  if (!vertex.isValid()) {
602  edm::LogInfo("MuonRecoAnalyzer") << "Error: Can't get the vertex collection" << endl;
603  doMVA = false;
604  }
605  }
606 
607  //In this part we determine if we want to fill the plots for events where the DCS flag was set to bad
609  bool fillBadLumi = false;
610  if (iEvent.getByToken(dcsStatusCollection_, dcsStatus) && dcsStatus.isValid()) {
611  for (auto const& dcsStatusItr : *dcsStatus) {
612  if (!dcsStatusItr.ready(DcsStatus::CSCp))
613  fillBadLumi = true;
614  if (!dcsStatusItr.ready(DcsStatus::CSCm))
615  fillBadLumi = true;
616  if (!dcsStatusItr.ready(DcsStatus::DT0))
617  fillBadLumi = true;
618  if (!dcsStatusItr.ready(DcsStatus::DTp))
619  fillBadLumi = true;
620  if (!dcsStatusItr.ready(DcsStatus::DTm))
621  fillBadLumi = true;
622  if (!dcsStatusItr.ready(DcsStatus::EBp))
623  fillBadLumi = true;
624  if (!dcsStatusItr.ready(DcsStatus::EBm))
625  fillBadLumi = true;
626  if (!dcsStatusItr.ready(DcsStatus::EEp))
627  fillBadLumi = true;
628  if (!dcsStatusItr.ready(DcsStatus::EEm))
629  fillBadLumi = true;
630  if (!dcsStatusItr.ready(DcsStatus::ESp))
631  fillBadLumi = true;
632  if (!dcsStatusItr.ready(DcsStatus::ESm))
633  fillBadLumi = true;
634  if (!dcsStatusItr.ready(DcsStatus::HBHEa))
635  fillBadLumi = true;
636  if (!dcsStatusItr.ready(DcsStatus::HBHEb))
637  fillBadLumi = true;
638  if (!dcsStatusItr.ready(DcsStatus::HBHEc))
639  fillBadLumi = true;
640  if (!dcsStatusItr.ready(DcsStatus::HF))
641  fillBadLumi = true;
642  if (!dcsStatusItr.ready(DcsStatus::HO))
643  fillBadLumi = true;
644  if (!dcsStatusItr.ready(DcsStatus::BPIX))
645  fillBadLumi = true;
646  if (!dcsStatusItr.ready(DcsStatus::FPIX))
647  fillBadLumi = true;
648  if (!dcsStatusItr.ready(DcsStatus::RPC))
649  fillBadLumi = true;
650  if (!dcsStatusItr.ready(DcsStatus::TIBTID))
651  fillBadLumi = true;
652  if (!dcsStatusItr.ready(DcsStatus::TOB))
653  fillBadLumi = true;
654  if (!dcsStatusItr.ready(DcsStatus::TECp))
655  fillBadLumi = true;
656  if (!dcsStatusItr.ready(DcsStatus::TECm))
657  fillBadLumi = true;
658  //if (!dcsStatusItr.ready(DcsStatus::CASTOR)) fillBadLumi = true;
659  }
660  }
661 
662  float res = 0, pull = 0;
663  if (!muons.isValid())
664  return;
665 
666  for (edm::View<reco::Muon>::const_iterator muon = muons->begin(); muon != muons->end(); ++muon) {
667  //Needed for MVA soft muon
668 
669  reco::TrackRef gTrack = muon->globalTrack();
670  reco::TrackRef iTrack = muon->innerTrack();
671  reco::TrackRef oTrack = muon->outerTrack();
672  if (iTrack.isNonnull() && oTrack.isNonnull() && gTrack.isNonnull()) {
673  const reco::HitPattern gHits = gTrack->hitPattern();
674  const reco::HitPattern iHits = iTrack->hitPattern();
675  const reco::MuonQuality muonQuality = muon->combinedQuality();
676  int pvIndex = 0;
677  math::XYZPoint refPoint;
678  if (doMVA) {
679  pvIndex = getPv(iTrack.index(), &(*vertex)); //HFDumpUtitilies
680  if (pvIndex > -1) {
681  refPoint = vertex->at(pvIndex).position();
682  } else {
683  if (beamSpot.isValid()) {
684  refPoint = beamSpot->position();
685  } else {
686  edm::LogInfo("MuonRecoAnalyzer") << "ERROR: No beam sport found!" << endl;
687  }
688  }
689  }
690  ptSoftMuonMVA->Fill(iTrack->eta());
691  deltaRSoftMuonMVA->Fill(getDeltaR(*iTrack, *oTrack));
692  gNchi2SoftMuonMVA->Fill(gTrack->normalizedChi2());
694  mNuStationsSoftMuonMVA->Fill(muon->numberOfMatchedStations());
695  if (doMVA) {
696  dxyRefSoftMuonMVA->Fill(iTrack->dxy(refPoint));
697  dzRefSoftMuonMVA->Fill(iTrack->dz(refPoint));
698  }
701  innerChi2SoftMuonMVA->Fill(iTrack->normalizedChi2());
702  outerChi2SoftMuonMVA->Fill(oTrack->normalizedChi2());
703  iValFracSoftMuonMVA->Fill(iTrack->validFraction());
704  //segCompSoftMuonMVA->Fill(reco::Muon::segmentCompatibility(*muon));
709  kinkFinderSoftMuonMVA->Fill(muonQuality.trkKink);
711  glbKinkFinderSoftMuonMVA->Fill(muonQuality.glbKink);
712  glbKinkFinderLogSoftMuonMVA->Fill(TMath::Log(2 + muonQuality.glbKink));
713  staRelChi2SoftMuonMVA->Fill(muonQuality.staRelChi2);
715  trkRelChi2SoftMuonMVA->Fill(muonQuality.trkRelChi2);
718  if (useGEM) {
720  }
721  timeAtIpInOutSoftMuonMVA->Fill(muon->time().timeAtIpInOut);
722  timeAtIpInOutErrSoftMuonMVA->Fill(muon->time().timeAtIpInOutErr);
723  //getMuonHitsPerStationSoftMuonMVA->Fill(gTrack);
724  QprodSoftMuonMVA->Fill((iTrack->charge() * oTrack->charge()));
725  }
726 
727  if (muon->isGlobalMuon()) {
728  LogTrace(metname) << "[MuonRecoAnalyzer] The mu is global - filling the histos";
729  if (muon->isTrackerMuon() && muon->isStandAloneMuon())
730  muReco->Fill(1);
731  if (!(muon->isTrackerMuon()) && muon->isStandAloneMuon())
732  muReco->Fill(2);
733  if (!muon->isStandAloneMuon())
734  LogTrace(metname) << "[MuonRecoAnalyzer] ERROR: the mu is global but not standalone!";
735  // get the track combinig the information from both the Tracker and the Spectrometer
736  reco::TrackRef recoCombinedGlbTrack = muon->combinedMuon();
737 
738  // get the track using only the tracker data
739  reco::TrackRef recoTkGlbTrack = muon->track();
740  // get the track using only the mu spectrometer data
741  reco::TrackRef recoStaGlbTrack = muon->standAloneMuon();
742  etaGlbTrack[0]->Fill(recoCombinedGlbTrack->eta());
743  etaGlbTrack[1]->Fill(recoTkGlbTrack->eta());
744  etaGlbTrack[2]->Fill(recoStaGlbTrack->eta());
745 
746  phiVsetaGlbTrack[0]->Fill(recoCombinedGlbTrack->eta(), recoCombinedGlbTrack->phi());
747  phiVsetaGlbTrack[1]->Fill(recoTkGlbTrack->eta(), recoTkGlbTrack->phi());
748  phiVsetaGlbTrack[2]->Fill(recoStaGlbTrack->eta(), recoStaGlbTrack->phi());
749 
750  if (fillBadLumi) {
751  phiVsetaGlbTrack_badlumi[0]->Fill(recoCombinedGlbTrack->eta(), recoCombinedGlbTrack->phi());
752  phiVsetaGlbTrack_badlumi[1]->Fill(recoTkGlbTrack->eta(), recoTkGlbTrack->phi());
753  phiVsetaGlbTrack_badlumi[2]->Fill(recoStaGlbTrack->eta(), recoStaGlbTrack->phi());
754  }
755 
756  GetRes(recoTkGlbTrack, recoCombinedGlbTrack, "eta", res, pull);
757  etaResolution[0]->Fill(res);
758  GetRes(recoCombinedGlbTrack, recoStaGlbTrack, "eta", res, pull);
759  etaResolution[1]->Fill(res);
760  GetRes(recoTkGlbTrack, recoStaGlbTrack, "eta", res, pull);
761  etaResolution[2]->Fill(res);
762  etaPull->Fill(pull);
763  etaResolution[3]->Fill(recoCombinedGlbTrack->eta(), recoTkGlbTrack->eta() - recoCombinedGlbTrack->eta());
764  etaResolution[4]->Fill(recoCombinedGlbTrack->eta(), -recoStaGlbTrack->eta() + recoCombinedGlbTrack->eta());
765  etaResolution[5]->Fill(recoCombinedGlbTrack->eta(), recoTkGlbTrack->eta() - recoStaGlbTrack->eta());
766 
767  thetaGlbTrack[0]->Fill(recoCombinedGlbTrack->theta());
768  thetaGlbTrack[1]->Fill(recoTkGlbTrack->theta());
769  thetaGlbTrack[2]->Fill(recoStaGlbTrack->theta());
770  GetRes(recoTkGlbTrack, recoCombinedGlbTrack, "theta", res, pull);
771  thetaResolution[0]->Fill(res);
772  GetRes(recoCombinedGlbTrack, recoStaGlbTrack, "theta", res, pull);
773  thetaResolution[1]->Fill(res);
774 
775  GetRes(recoTkGlbTrack, recoStaGlbTrack, "theta", res, pull);
776  thetaResolution[2]->Fill(res);
777  thetaPull->Fill(pull);
778  thetaResolution[3]->Fill(recoCombinedGlbTrack->theta(), recoTkGlbTrack->theta() - recoCombinedGlbTrack->theta());
779  thetaResolution[4]->Fill(recoCombinedGlbTrack->theta(),
780  -recoStaGlbTrack->theta() + recoCombinedGlbTrack->theta());
781  thetaResolution[5]->Fill(recoCombinedGlbTrack->theta(), recoTkGlbTrack->theta() - recoStaGlbTrack->theta());
782 
783  phiGlbTrack[0]->Fill(recoCombinedGlbTrack->phi());
784  phiGlbTrack[1]->Fill(recoTkGlbTrack->phi());
785  phiGlbTrack[2]->Fill(recoStaGlbTrack->phi());
786  GetRes(recoTkGlbTrack, recoCombinedGlbTrack, "phi", res, pull);
787  phiResolution[0]->Fill(res);
788  GetRes(recoCombinedGlbTrack, recoStaGlbTrack, "phi", res, pull);
789  phiResolution[1]->Fill(res);
790  GetRes(recoTkGlbTrack, recoStaGlbTrack, "phi", res, pull);
791  phiResolution[2]->Fill(res);
792  phiPull->Fill(pull);
793  phiResolution[3]->Fill(recoCombinedGlbTrack->phi(), recoTkGlbTrack->phi() - recoCombinedGlbTrack->phi());
794  phiResolution[4]->Fill(recoCombinedGlbTrack->phi(), -recoStaGlbTrack->phi() + recoCombinedGlbTrack->phi());
795  phiResolution[5]->Fill(recoCombinedGlbTrack->phi(), recoTkGlbTrack->phi() - recoStaGlbTrack->phi());
796 
797  chi2OvDFGlbTrack[0]->Fill(recoCombinedGlbTrack->normalizedChi2());
798  chi2OvDFGlbTrack[1]->Fill(recoTkGlbTrack->normalizedChi2());
799  chi2OvDFGlbTrack[2]->Fill(recoStaGlbTrack->normalizedChi2());
800  //-------------------------
801  // double probchi = TMath::Prob(recoCombinedGlbTrack->normalizedChi2(),recoCombinedGlbTrack->ndof());
802  // cout << "rellenando histos."<<endl;
803  probchi2GlbTrack[0]->Fill(TMath::Prob(recoCombinedGlbTrack->chi2(), recoCombinedGlbTrack->ndof()));
804  probchi2GlbTrack[1]->Fill(TMath::Prob(recoTkGlbTrack->chi2(), recoTkGlbTrack->ndof()));
805  probchi2GlbTrack[2]->Fill(TMath::Prob(recoStaGlbTrack->chi2(), recoStaGlbTrack->ndof()));
806  // cout << "rellenados histos."<<endl;
807  //-------------------------
808 
809  pGlbTrack[0]->Fill(recoCombinedGlbTrack->p());
810  pGlbTrack[1]->Fill(recoTkGlbTrack->p());
811  pGlbTrack[2]->Fill(recoStaGlbTrack->p());
812 
813  ptGlbTrack[0]->Fill(recoCombinedGlbTrack->pt());
814  ptGlbTrack[1]->Fill(recoTkGlbTrack->pt());
815  ptGlbTrack[2]->Fill(recoStaGlbTrack->pt());
816 
817  qGlbTrack[0]->Fill(recoCombinedGlbTrack->charge());
818  qGlbTrack[1]->Fill(recoTkGlbTrack->charge());
819  qGlbTrack[2]->Fill(recoStaGlbTrack->charge());
820  if (recoCombinedGlbTrack->charge() == recoStaGlbTrack->charge())
821  qGlbTrack[3]->Fill(1);
822  else
823  qGlbTrack[3]->Fill(2);
824  if (recoCombinedGlbTrack->charge() == recoTkGlbTrack->charge())
825  qGlbTrack[3]->Fill(3);
826  else
827  qGlbTrack[3]->Fill(4);
828  if (recoStaGlbTrack->charge() == recoTkGlbTrack->charge())
829  qGlbTrack[3]->Fill(5);
830  else
831  qGlbTrack[3]->Fill(6);
832  if (recoCombinedGlbTrack->charge() != recoStaGlbTrack->charge() &&
833  recoCombinedGlbTrack->charge() != recoTkGlbTrack->charge())
834  qGlbTrack[3]->Fill(7);
835  if (recoCombinedGlbTrack->charge() == recoStaGlbTrack->charge() &&
836  recoCombinedGlbTrack->charge() == recoTkGlbTrack->charge())
837  qGlbTrack[3]->Fill(8);
838 
839  GetRes(recoTkGlbTrack, recoCombinedGlbTrack, "qOverp", res, pull);
840  qOverpResolution[0]->Fill(res);
841  GetRes(recoCombinedGlbTrack, recoStaGlbTrack, "qOverp", res, pull);
842  qOverpResolution[1]->Fill(res);
843  GetRes(recoTkGlbTrack, recoStaGlbTrack, "qOverp", res, pull);
844  qOverpResolution[2]->Fill(res);
845  qOverpPull->Fill(pull);
846 
847  GetRes(recoTkGlbTrack, recoCombinedGlbTrack, "oneOverp", res, pull);
848  oneOverpResolution[0]->Fill(res);
849  GetRes(recoCombinedGlbTrack, recoStaGlbTrack, "oneOverp", res, pull);
850  oneOverpResolution[1]->Fill(res);
851  GetRes(recoTkGlbTrack, recoStaGlbTrack, "oneOverp", res, pull);
852  oneOverpResolution[2]->Fill(res);
853  oneOverpPull->Fill(pull);
854 
855  GetRes(recoTkGlbTrack, recoCombinedGlbTrack, "qOverpt", res, pull);
856  qOverptResolution[0]->Fill(res);
857  GetRes(recoCombinedGlbTrack, recoStaGlbTrack, "qOverpt", res, pull);
858  qOverptResolution[1]->Fill(res);
859  GetRes(recoTkGlbTrack, recoStaGlbTrack, "qOverpt", res, pull);
860  qOverptResolution[2]->Fill(res);
861  qOverptPull->Fill(pull);
862 
863  GetRes(recoTkGlbTrack, recoCombinedGlbTrack, "oneOverpt", res, pull);
864  oneOverptResolution[0]->Fill(res);
865  GetRes(recoCombinedGlbTrack, recoStaGlbTrack, "oneOverpt", res, pull);
866  oneOverptResolution[1]->Fill(res);
867  GetRes(recoTkGlbTrack, recoStaGlbTrack, "oneOverpt", res, pull);
868  oneOverptResolution[2]->Fill(res);
869  oneOverptPull->Fill(pull);
870 
871  // //--- Test new tunePMuonBestTrack() method from Muon.h
872 
873  reco::TrackRef recoBestTrack = muon->muonBestTrack();
874 
875  reco::TrackRef recoTunePBestTrack = muon->tunePMuonBestTrack();
876 
877  double bestTrackPt = recoBestTrack->pt();
878 
879  double tunePBestTrackPt = recoTunePBestTrack->pt();
880 
881  double tunePBestTrackRes = (bestTrackPt - tunePBestTrackPt) / bestTrackPt;
882 
883  tunePResolution->Fill(tunePBestTrackRes);
884 
885  oneOverptResolution[3]->Fill(recoCombinedGlbTrack->eta(),
886  (1 / recoTkGlbTrack->pt()) - (1 / recoCombinedGlbTrack->pt()));
887  oneOverptResolution[4]->Fill(recoCombinedGlbTrack->eta(),
888  -(1 / recoStaGlbTrack->pt()) + (1 / recoCombinedGlbTrack->pt()));
889  oneOverptResolution[5]->Fill(recoCombinedGlbTrack->eta(),
890  (1 / recoTkGlbTrack->pt()) - (1 / recoStaGlbTrack->pt()));
891  oneOverptResolution[6]->Fill(recoCombinedGlbTrack->phi(),
892  (1 / recoTkGlbTrack->pt()) - (1 / recoCombinedGlbTrack->pt()));
893  oneOverptResolution[7]->Fill(recoCombinedGlbTrack->phi(),
894  -(1 / recoStaGlbTrack->pt()) + (1 / recoCombinedGlbTrack->pt()));
895  oneOverptResolution[8]->Fill(recoCombinedGlbTrack->phi(),
896  (1 / recoTkGlbTrack->pt()) - (1 / recoStaGlbTrack->pt()));
897  oneOverptResolution[9]->Fill(recoCombinedGlbTrack->pt(),
898  (1 / recoTkGlbTrack->pt()) - (1 / recoCombinedGlbTrack->pt()));
899  oneOverptResolution[10]->Fill(recoCombinedGlbTrack->pt(),
900  -(1 / recoStaGlbTrack->pt()) + (1 / recoCombinedGlbTrack->pt()));
901  oneOverptResolution[11]->Fill(recoCombinedGlbTrack->pt(),
902  (1 / recoTkGlbTrack->pt()) - (1 / recoStaGlbTrack->pt()));
903 
904  if (!IsminiAOD) {
905  // valid hits Glb track
906  double rhGlb = recoCombinedGlbTrack->found();
907  // valid hits Glb track from Tracker
908  double rhGlb_StaProvenance = 0;
909  // valid hits Glb track from Sta system
910  double rhGlb_TkProvenance = 0;
911 
912  for (trackingRecHit_iterator recHit = recoCombinedGlbTrack->recHitsBegin();
913  recHit != recoCombinedGlbTrack->recHitsEnd();
914  ++recHit) {
915  if ((*recHit)->isValid()) {
916  DetId id = (*recHit)->geographicalId();
917  if (id.det() == DetId::Muon)
918  rhGlb_StaProvenance++;
919  if (id.det() == DetId::Tracker)
920  rhGlb_TkProvenance++;
921  }
922  }
923  // valid hits Sta track associated to Glb track
924  double rhStaGlb = recoStaGlbTrack->recHitsSize();
925  // valid hits Traker track associated to Glb track
926  double rhTkGlb = recoTkGlbTrack->found();
927  // invalid hits Traker track associated to Glb track
928  double rhTkGlb_notValid = recoTkGlbTrack->lost();
929 
930  // fill the histos
931  rhAnalysis[0]->Fill(rhGlb_StaProvenance / rhGlb);
932  rhAnalysis[1]->Fill(rhGlb_TkProvenance / rhGlb);
933  rhAnalysis[2]->Fill(rhGlb_StaProvenance / rhStaGlb);
934  rhAnalysis[3]->Fill(rhGlb_TkProvenance / rhTkGlb);
935  rhAnalysis[4]->Fill(rhGlb / (rhStaGlb + rhTkGlb));
936  rhAnalysis[5]->Fill(rhTkGlb_notValid / rhGlb);
937  }
938  // aligment plots (mu system w.r.t. tracker rotation)
939  if (recoCombinedGlbTrack->charge() > 0)
940  muVStkSytemRotation[0]->Fill(recoCombinedGlbTrack->pt(), recoTkGlbTrack->pt() / recoCombinedGlbTrack->pt());
941  else
942  muVStkSytemRotation[1]->Fill(recoCombinedGlbTrack->pt(), recoTkGlbTrack->pt() / recoCombinedGlbTrack->pt());
943  }
944 
945  if (muon->isTrackerMuon() && !(muon->isGlobalMuon())) {
946  LogTrace(metname) << "[MuonRecoAnalyzer] The mu is tracker only - filling the histos";
947  if (muon->isStandAloneMuon())
948  muReco->Fill(3);
949  if (!(muon->isStandAloneMuon()))
950  muReco->Fill(4);
951 
952  // get the track using only the tracker data
953  reco::TrackRef recoTrack = muon->track();
954 
955  etaTrack->Fill(recoTrack->eta());
956  thetaTrack->Fill(recoTrack->theta());
957  phiTrack->Fill(recoTrack->phi());
958  chi2OvDFTrack->Fill(recoTrack->normalizedChi2());
959  probchi2Track->Fill(TMath::Prob(recoTrack->chi2(), recoTrack->ndof()));
960  pTrack->Fill(recoTrack->p());
961  ptTrack->Fill(recoTrack->pt());
962  qTrack->Fill(recoTrack->charge());
963  }
964 
965  if (muon->isStandAloneMuon() && !(muon->isGlobalMuon())) {
966  LogTrace(metname) << "[MuonRecoAnalyzer] The mu is STA only - filling the histos";
967  if (!(muon->isTrackerMuon()))
968  muReco->Fill(5);
969 
970  // get the track using only the mu spectrometer data
971  reco::TrackRef recoStaTrack = muon->standAloneMuon();
972 
973  etaStaTrack->Fill(recoStaTrack->eta());
974  thetaStaTrack->Fill(recoStaTrack->theta());
975  phiStaTrack->Fill(recoStaTrack->phi());
976  chi2OvDFStaTrack->Fill(recoStaTrack->normalizedChi2());
977  probchi2StaTrack->Fill(TMath::Prob(recoStaTrack->chi2(), recoStaTrack->ndof()));
978  pStaTrack->Fill(recoStaTrack->p());
979  ptStaTrack->Fill(recoStaTrack->pt());
980  qStaTrack->Fill(recoStaTrack->charge());
981  }
982 
983  if (muon->isCaloMuon() && !(muon->isGlobalMuon()) && !(muon->isTrackerMuon()) && !(muon->isStandAloneMuon()))
984  muReco->Fill(6);
985 
986  //efficiency plots
987 
988  // get the track using only the mu spectrometer data
989  reco::TrackRef recoStaGlbTrack = muon->standAloneMuon();
990 
991  if (muon->isStandAloneMuon()) {
992  etaEfficiency[0]->Fill(recoStaGlbTrack->eta());
993  phiEfficiency[0]->Fill(recoStaGlbTrack->phi());
994  }
995  if (muon->isStandAloneMuon() && muon->isGlobalMuon()) {
996  etaEfficiency[1]->Fill(recoStaGlbTrack->eta());
997  phiEfficiency[1]->Fill(recoStaGlbTrack->phi());
998  }
999  }
1000 }
float chi2LocalPosition
chi2 value for the STA-TK matching of local position
Definition: MuonQuality.h:19
MonitorElement * NTrkVHitsSoftMuonMVA
MonitorElement * muReco
std::vector< MonitorElement * > oneOverpResolution
MonitorElement * deltaRSoftMuonMVA
MonitorElement * trkRelChi2SoftMuonMVA
MonitorElement * qOverptPull
std::vector< MonitorElement * > ptGlbTrack
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:238
std::vector< MonitorElement * > chi2OvDFGlbTrack
float chi2LocalMomentum
chi2 value for the STA-TK matching of local momentum
Definition: MuonQuality.h:21
std::vector< MonitorElement * > phiVsetaGlbTrack_badlumi
MonitorElement * gNchi2SoftMuonMVA
std::vector< MonitorElement * > phiVsetaGlbTrack
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
float glbKink
value of the kink algorithm applied to the global track
Definition: MuonQuality.h:13
MonitorElement * iValFracSoftMuonMVA
MonitorElement * outerChi2SoftMuonMVA
MonitorElement * etaStaTrack
float glbTrackProbability
the tail probability (-ln(P)) of the global fit
Definition: MuonQuality.h:29
MonitorElement * vGEMhitsSoftMuonMVA
key_type index() const
Definition: Ref.h:253
MonitorElement * vRPChitsSoftMuonMVA
float trkKink
value of the kink algorithm applied to the inner track stub
Definition: MuonQuality.h:11
MonitorElement * dzRefSoftMuonMVA
edm::EDGetTokenT< DcsStatusCollection > dcsStatusCollection_
std::vector< MonitorElement * > phiGlbTrack
MonitorElement * LWHSoftMuonMVA
MonitorElement * chi2OvDFStaTrack
MonitorElement * vMuHitsSoftMuonMVA
float trkRelChi2
chi2 value for the inner track stub with respect to the global track
Definition: MuonQuality.h:15
MonitorElement * phiStaTrack
MonitorElement * vDThitsSoftMuonMVA
int trackerLayersWithMeasurement() const
Definition: HitPattern.cc:521
MonitorElement * qOverpPull
int numberOfValidMuonCSCHits() const
Definition: HitPattern.h:861
#define LogTrace(id)
std::vector< MonitorElement * > phiEfficiency
MonitorElement * mNuStationsSoftMuonMVA
int numberOfValidMuonRPCHits() const
Definition: HitPattern.h:865
void Fill(long long x)
MonitorElement * etaTrack
MonitorElement * innerChi2SoftMuonMVA
double getDeltaR(reco::Track track1, reco::Track track2)
MonitorElement * chi2OvDFTrack
std::vector< MonitorElement * > qOverptResolution
std::vector< MonitorElement * > etaGlbTrack
std::vector< MonitorElement * > pGlbTrack
std::vector< MonitorElement * > qOverpResolution
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
MonitorElement * timeAtIpInOutSoftMuonMVA
MonitorElement * oneOverpPull
std::string metname
MonitorElement * valPixHitsSoftMuonMVA
std::vector< MonitorElement * > qGlbTrack
MonitorElement * pTrack
MonitorElement * timeAtIpInOutErrSoftMuonMVA
std::vector< MonitorElement * > probchi2GlbTrack
std::vector< MonitorElement * > etaResolution
edm::EDGetTokenT< reco::BeamSpot > theBeamSpotLabel_
MonitorElement * ptSoftMuonMVA
MonitorElement * oneOverptPull
MonitorElement * tunePResolution
float globalDeltaEtaPhi
global delta-Eta-Phi of STA-TK matching
Definition: MuonQuality.h:25
MonitorElement * glbKinkFinderLogSoftMuonMVA
bool isValid() const
Definition: HandleBase.h:70
std::vector< MonitorElement * > etaEfficiency
MonitorElement * dxyRefSoftMuonMVA
void GetRes(reco::TrackRef t1, reco::TrackRef t2, std::string par, float &res, float &pull)
MonitorElement * staRelChi2SoftMuonMVA
MonitorElement * thetaStaTrack
Log< level::Info, false > LogInfo
edm::EDGetTokenT< edm::View< reco::Muon > > theMuonCollectionLabel_
float staRelChi2
chi2 value for the outer track stub with respect to the global track
Definition: MuonQuality.h:17
Definition: DetId.h:17
std::vector< MonitorElement * > phiResolution
MonitorElement * chi2LocMomSoftMuonMVA
std::vector< MonitorElement * > thetaGlbTrack
int getPv(int tidx, const reco::VertexCollection *vc)
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
MonitorElement * phiPull
MonitorElement * phiTrack
MonitorElement * vCSChitsSoftMuonMVA
std::vector< MonitorElement * > oneOverptResolution
MonitorElement * probchi2Track
std::vector< MonitorElement * > muVStkSytemRotation
MonitorElement * kinkFinderSoftMuonMVA
MonitorElement * ptTrack
MonitorElement * glbKinkFinderSoftMuonMVA
MonitorElement * chi2LocPosSoftMuonMVA
MonitorElement * glbDeltaEtaPhiSoftMuonMVA
int numberOfValidTrackerHits() const
Definition: HitPattern.h:813
MonitorElement * QprodSoftMuonMVA
int numberOfValidMuonGEMHits() const
Definition: HitPattern.h:869
tuple muons
Definition: patZpeak.py:39
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
MonitorElement * probchi2StaTrack
MonitorElement * ptStaTrack
int numberOfValidMuonDTHits() const
Definition: HitPattern.h:857
std::vector< MonitorElement * > rhAnalysis
MonitorElement * etaPull
int numberOfValidPixelHits() const
Definition: HitPattern.h:825
int numberOfValidMuonHits() const
Definition: HitPattern.h:817
MonitorElement * pStaTrack
MonitorElement * thetaTrack
std::vector< MonitorElement * > thetaResolution
MonitorElement * glbTrackTailProbSoftMuonMVA
MonitorElement * qTrack
MonitorElement * thetaPull
MonitorElement * qStaTrack
edm::EDGetTokenT< reco::VertexCollection > theVertexLabel_
void MuonRecoAnalyzer::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  ,
edm::EventSetup const &   
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 66 of file MuonRecoAnalyzer.cc.

References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), dqm::implementation::NavigatorBase::cd(), gpuVertexFinder::chi2Max, etaBin(), Puppi_cff::etaMax, Puppi_cff::etaMin, L1TMuonDQMOffline_cfi::phiMax, L1TMuonDQMOffline_cfi::phiMin, HLT_FULL_cff::pMin, HLT_FULL_cff::ptMax, ptMin, dqm::impl::MonitorElement::setAxisTitle(), dqm::impl::MonitorElement::setBinLabel(), dqm::implementation::NavigatorBase::setCurrentFolder(), dqm::impl::MonitorElement::setXTitle(), and AlCaHLTBitMon_QueryRunRegistry::string.

68  {
69  ibooker.cd();
70  ibooker.setCurrentFolder(theFolder);
71 
72  muReco = ibooker.book1D("muReco", "muon reconstructed tracks", 6, 1, 7);
73  muReco->setBinLabel(1, "glb+tk+sta");
74  muReco->setBinLabel(2, "glb+sta");
75  muReco->setBinLabel(3, "tk+sta");
76  muReco->setBinLabel(4, "tk");
77  muReco->setBinLabel(5, "sta");
78  muReco->setBinLabel(6, "calo");
79 
80  int binFactor = 4;
81 
83  // monitoring of eta parameter
85  std::string histname = "GlbMuon_";
86  etaGlbTrack.push_back(ibooker.book1D(histname + "Glb_eta", "#eta_{GLB}", etaBin, etaMin, etaMax));
87  etaGlbTrack.push_back(ibooker.book1D(histname + "Tk_eta", "#eta_{TKfromGLB}", etaBin, etaMin, etaMax));
88  etaGlbTrack.push_back(ibooker.book1D(histname + "Sta_eta", "#eta_{STAfromGLB}", etaBin, etaMin, etaMax));
89  etaResolution.push_back(ibooker.book1D(
90  "Res_TkGlb_eta", "#eta_{TKfromGLB} - #eta_{GLB}", etaBin * binFactor, etaMin / 3000, etaMax / 3000));
91  etaResolution.push_back(ibooker.book1D(
92  "Res_GlbSta_eta", "#eta_{GLB} - #eta_{STAfromGLB}", etaBin * binFactor, etaMin / 100, etaMax / 100));
93  etaResolution.push_back(ibooker.book1D(
94  "Res_TkSta_eta", "#eta_{TKfromGLB} - #eta_{STAfromGLB}", etaBin * binFactor, etaMin / 100, etaMax / 100));
95  etaResolution.push_back(ibooker.book2D("ResVsEta_TkGlb_eta",
96  "(#eta_{TKfromGLB} - #eta_{GLB}) vs #eta_{GLB}",
97  etaBin,
98  etaMin,
99  etaMax,
100  etaBin * binFactor,
101  etaMin / 3000,
102  etaMax / 3000));
103  etaResolution.push_back(ibooker.book2D("ResVsEta_GlbSta_eta",
104  "(#eta_{GLB} - #eta_{STAfromGLB}) vs #eta_{GLB}",
105  etaBin,
106  etaMin,
107  etaMax,
108  etaBin * binFactor,
109  etaMin / 100,
110  etaMax / 100));
111  etaResolution.push_back(ibooker.book2D("ResVsEta_TkSta_eta",
112  "(#eta_{TKfromGLB} - #eta_{STAfromGLB}) vs #eta_{TKfromGLB}",
113  etaBin,
114  etaMin,
115  etaMax,
116  etaBin * binFactor,
117  etaMin / 100,
118  etaMax / 100));
119  etaPull = ibooker.book1D("Pull_TkSta_eta", "#eta_{TKfromGLB} - #eta_{GLB} / error", 100, -10, 10);
120  etaTrack = ibooker.book1D("TkMuon_eta", "#eta_{TK}", etaBin, etaMin, etaMax);
121  etaStaTrack = ibooker.book1D("StaMuon_eta", "#eta_{STA}", etaBin, etaMin, etaMax);
122  etaEfficiency.push_back(ibooker.book1D("StaEta", "#eta_{STAfromGLB}", etaBin, etaMin, etaMax));
123  etaEfficiency.push_back(
124  ibooker.book1D("StaEta_ifCombinedAlso", "#eta_{STAfromGLB} if isGlb=true", etaBin, etaMin, etaMax));
125 
127  // monitoring of theta parameter
129  thetaGlbTrack.push_back(ibooker.book1D(histname + "Glb_theta", "#theta_{GLB}", thetaBin, thetaMin, thetaMax));
130  thetaGlbTrack[0]->setAxisTitle("rad");
131  thetaGlbTrack.push_back(ibooker.book1D(histname + "Tk_theta", "#theta_{TKfromGLB}", thetaBin, thetaMin, thetaMax));
132  thetaGlbTrack[1]->setAxisTitle("rad");
133  thetaGlbTrack.push_back(ibooker.book1D(histname + "Sta_theta", "#theta_{STAfromGLB}", thetaBin, thetaMin, thetaMax));
134  thetaGlbTrack[2]->setAxisTitle("rad");
135  thetaResolution.push_back(ibooker.book1D("Res_TkGlb_theta",
136  "#theta_{TKfromGLB} - #theta_{GLB}",
137  thetaBin * binFactor,
138  -(thetaMax / 3000),
139  thetaMax / 3000));
140  thetaResolution[0]->setAxisTitle("rad");
141  thetaResolution.push_back(ibooker.book1D("Res_GlbSta_theta",
142  "#theta_{GLB} - #theta_{STAfromGLB}",
143  thetaBin * binFactor,
144  -(thetaMax / 100),
145  thetaMax / 100));
146  thetaResolution[1]->setAxisTitle("rad");
147  thetaResolution.push_back(ibooker.book1D("Res_TkSta_theta",
148  "#theta_{TKfromGLB} - #theta_{STAfromGLB}",
149  thetaBin * binFactor,
150  -(thetaMax / 100),
151  thetaMax / 100));
152  thetaResolution[2]->setAxisTitle("rad");
153  thetaResolution.push_back(ibooker.book2D("ResVsTheta_TkGlb_theta",
154  "(#theta_{TKfromGLB} - #theta_{GLB}) vs #theta_{GLB}",
155  thetaBin,
156  thetaMin,
157  thetaMax,
158  thetaBin * binFactor,
159  -(thetaMax / 3000),
160  thetaMax / 3000));
161  thetaResolution[3]->setAxisTitle("rad", 1);
162  thetaResolution[3]->setAxisTitle("rad", 2);
163  thetaResolution.push_back(ibooker.book2D("ResVsTheta_GlbSta_theta",
164  "(#theta_{GLB} - #theta_{STAfromGLB}) vs #theta_{GLB}",
165  thetaBin,
166  thetaMin,
167  thetaMax,
168  thetaBin * binFactor,
169  -(thetaMax / 100),
170  thetaMax / 100));
171  thetaResolution[4]->setAxisTitle("rad", 1);
172  thetaResolution[4]->setAxisTitle("rad", 2);
173  thetaResolution.push_back(ibooker.book2D("ResVsTheta_TkSta_theta",
174  "(#theta_{TKfromGLB} - #theta_{STAfromGLB}) vs #theta_{TKfromGLB}",
175  thetaBin,
176  thetaMin,
177  thetaMax,
178  thetaBin * binFactor,
179  -(thetaMax / 100),
180  thetaMax / 100));
181  thetaResolution[5]->setAxisTitle("rad", 1);
182  thetaResolution[5]->setAxisTitle("rad", 2);
183  thetaPull = ibooker.book1D("Pull_TkSta_theta", "#theta_{TKfromGLB} - #theta_{STAfromGLB} / error", 100, -10, 10);
184  thetaTrack = ibooker.book1D("TkMuon_theta", "#theta_{TK}", thetaBin, thetaMin, thetaMax);
185  thetaTrack->setAxisTitle("rad");
186  thetaStaTrack = ibooker.book1D("StaMuon_theta", "#theta_{STA}", thetaBin, thetaMin, thetaMax);
187  thetaStaTrack->setAxisTitle("rad");
188 
189  // monitoring tunePMuonBestTrack Pt
190  tunePResolution = ibooker.book1D(
191  "Res_TuneP_pt", "Pt_{MuonBestTrack}-Pt_{tunePMuonBestTrack}/Pt_{MuonBestTrack}", tunePBin, tunePMin, tunePMax);
192 
193  // monitoring of phi paramater
194  phiGlbTrack.push_back(ibooker.book1D(histname + "Glb_phi", "#phi_{GLB}", phiBin, phiMin, phiMax));
195  phiGlbTrack[0]->setAxisTitle("rad");
196  phiGlbTrack.push_back(ibooker.book1D(histname + "Tk_phi", "#phi_{TKfromGLB}", phiBin, phiMin, phiMax));
197  phiGlbTrack[1]->setAxisTitle("rad");
198  phiGlbTrack.push_back(ibooker.book1D(histname + "Sta_phi", "#phi_{STAfromGLB}", phiBin, phiMin, phiMax));
199  phiGlbTrack[2]->setAxisTitle("rad");
200  phiResolution.push_back(ibooker.book1D(
201  "Res_TkGlb_phi", "#phi_{TKfromGLB} - #phi_{GLB}", phiBin * binFactor, phiMin / 3000, phiMax / 3000));
202  phiResolution[0]->setAxisTitle("rad");
203  phiResolution.push_back(ibooker.book1D(
204  "Res_GlbSta_phi", "#phi_{GLB} - #phi_{STAfromGLB}", phiBin * binFactor, phiMin / 100, phiMax / 100));
205  phiResolution[1]->setAxisTitle("rad");
206  phiResolution.push_back(ibooker.book1D(
207  "Res_TkSta_phi", "#phi_{TKfromGLB} - #phi_{STAfromGLB}", phiBin * binFactor, phiMin / 100, phiMax / 100));
208  phiResolution[2]->setAxisTitle("rad");
209  phiResolution.push_back(ibooker.book2D("ResVsPhi_TkGlb_phi",
210  "(#phi_{TKfromGLB} - #phi_{GLB}) vs #phi_GLB",
211  phiBin,
212  phiMin,
213  phiMax,
214  phiBin * binFactor,
215  phiMin / 3000,
216  phiMax / 3000));
217  phiResolution[3]->setAxisTitle("rad", 1);
218  phiResolution[3]->setAxisTitle("rad", 2);
219  phiResolution.push_back(ibooker.book2D("ResVsPhi_GlbSta_phi",
220  "(#phi_{GLB} - #phi_{STAfromGLB}) vs #phi_{GLB}",
221  phiBin,
222  phiMin,
223  phiMax,
224  phiBin * binFactor,
225  phiMin / 100,
226  phiMax / 100));
227  phiResolution[4]->setAxisTitle("rad", 1);
228  phiResolution[4]->setAxisTitle("rad", 2);
229  phiResolution.push_back(ibooker.book2D("ResVsPhi_TkSta_phi",
230  "(#phi_{TKfromGLB} - #phi_{STAfromGLB}) vs #phi_{TKfromGLB}",
231  phiBin,
232  phiMin,
233  phiMax,
234  phiBin * binFactor,
235  phiMin / 100,
236  phiMax / 100));
237  phiResolution[5]->setAxisTitle("rad", 1);
238  phiResolution[5]->setAxisTitle("rad", 2);
239  phiPull = ibooker.book1D("Pull_TkSta_phi", "#phi_{TKfromGLB} - #phi_{STAfromGLB} / error", 100, -10, 10);
240  phiTrack = ibooker.book1D("TkMuon_phi", "#phi_{TK}", phiBin, phiMin, phiMax);
241  phiTrack->setAxisTitle("rad");
242  phiStaTrack = ibooker.book1D("StaMuon_phi", "#phi_{STA}", phiBin, phiMin, phiMax);
243  phiStaTrack->setAxisTitle("rad");
244  phiEfficiency.push_back(ibooker.book1D("StaPhi", "#phi_{STAfromGLB}", phiBin, phiMin, phiMax));
245  phiEfficiency[0]->setAxisTitle("rad");
246  phiEfficiency.push_back(
247  ibooker.book1D("StaPhi_ifCombinedAlso", "#phi_{STAfromGLB} if the isGlb=true", phiBin, phiMin, phiMax));
248  phiEfficiency[1]->setAxisTitle("rad");
249 
250  // monitoring of the chi2 parameter
251  chi2OvDFGlbTrack.push_back(
252  ibooker.book1D(histname + "Glb_chi2OverDf", "#chi_{2}OverDF_{GLB}", chi2Bin, chi2Min, chi2Max));
253  chi2OvDFGlbTrack.push_back(
254  ibooker.book1D(histname + "Tk_chi2OverDf", "#chi_{2}OverDF_{TKfromGLB}", phiBin, chi2Min, chi2Max));
255  chi2OvDFGlbTrack.push_back(
256  ibooker.book1D(histname + "Sta_chi2OverDf", "#chi_{2}OverDF_{STAfromGLB}", chi2Bin, chi2Min, chi2Max));
257  chi2OvDFTrack = ibooker.book1D("TkMuon_chi2OverDf", "#chi_{2}OverDF_{TK}", chi2Bin, chi2Min, chi2Max);
258  chi2OvDFStaTrack = ibooker.book1D("StaMuon_chi2OverDf", "#chi_{2}OverDF_{STA}", chi2Bin, chi2Min, chi2Max);
259  //--------------------------
260  probchi2GlbTrack.push_back(ibooker.book1D(histname + "Glb_probchi", "Prob #chi_{GLB}", 120, chi2Min, 1.20));
261  probchi2GlbTrack.push_back(ibooker.book1D(histname + "Tk_probchi", "Prob #chi_{TKfromGLB}", 120, chi2Min, 1.20));
262  probchi2GlbTrack.push_back(ibooker.book1D(histname + "Sta_probchi", "Prob #chi_{STAfromGLB}", 120, chi2Min, 1.20));
263  probchi2Track = ibooker.book1D("TkMuon_probchi", "Prob #chi_{TK}", 120, chi2Min, 1.20);
264  probchi2StaTrack = ibooker.book1D("StaMuon_probchi", "Prob #chi_{STA}", 120, chi2Min, 1.20);
265 
266  // monitoring of the momentum
267  pGlbTrack.push_back(ibooker.book1D(histname + "Glb_p", "p_{GLB}", pBin, pMin, pMax));
268  pGlbTrack[0]->setAxisTitle("GeV");
269  pGlbTrack.push_back(ibooker.book1D(histname + "Tk_p", "p_{TKfromGLB}", pBin, pMin, pMax));
270  pGlbTrack[1]->setAxisTitle("GeV");
271  pGlbTrack.push_back(ibooker.book1D(histname + "Sta_p", "p_{STAfromGLB}", pBin, pMin, pMax));
272  pGlbTrack[2]->setAxisTitle("GeV");
273  pTrack = ibooker.book1D("TkMuon_p", "p_{TK}", pBin, pMin, pMax);
274  pTrack->setAxisTitle("GeV");
275  pStaTrack = ibooker.book1D("StaMuon_p", "p_{STA}", pBin, pMin, pMax);
276  pStaTrack->setAxisTitle("GeV");
277 
278  // monitoring of the transverse momentum
279  ptGlbTrack.push_back(ibooker.book1D(histname + "Glb_pt", "pt_{GLB}", ptBin, ptMin, ptMax));
280  ptGlbTrack[0]->setAxisTitle("GeV");
281  ptGlbTrack.push_back(ibooker.book1D(histname + "Tk_pt", "pt_{TKfromGLB}", ptBin, ptMin, ptMax));
282  ptGlbTrack[1]->setAxisTitle("GeV");
283  ptGlbTrack.push_back(ibooker.book1D(histname + "Sta_pt", "pt_{STAfromGLB}", ptBin, ptMin, ptMax));
284  ptGlbTrack[2]->setAxisTitle("GeV");
285  ptTrack = ibooker.book1D("TkMuon_pt", "pt_{TK}", ptBin, ptMin, ptMax);
286  ptTrack->setAxisTitle("GeV");
287  ptStaTrack = ibooker.book1D("StaMuon_pt", "pt_{STA}", ptBin, ptMin, pMax);
288  ptStaTrack->setAxisTitle("GeV");
289 
290  //monitoring of variables needed by the MVA soft muon
291 
292  ptSoftMuonMVA = ibooker.book1D("ptSoftMuonMVA", "pt_{SoftMuon}", 50, 0, 50);
293  deltaRSoftMuonMVA = ibooker.book1D("deltaRSoftMuonMVA", "#Delta R", 50, 0, 5);
294  gNchi2SoftMuonMVA = ibooker.book1D("gNchi2SoftMuonMVA", "gNchi2", 50, 0, 3);
295  vMuHitsSoftMuonMVA = ibooker.book1D("vMuHitsSoftMuonMVA", "vMuHits", 50, 0, 50);
296  mNuStationsSoftMuonMVA = ibooker.book1D("mNuStationsSoftMuonMVA", "mNuStations", 6, 0, 6);
297  dxyRefSoftMuonMVA = ibooker.book1D("dxyRefSoftMuonMVA", "dxyRef", 50, -0.1, 0.1);
298  dzRefSoftMuonMVA = ibooker.book1D("dzRefSoftMuonMVA", "dzRef", 50, -0.1, 0.1);
299  LWHSoftMuonMVA = ibooker.book1D("LWHSoftMuonMVA", "LWH", 20, 0, 20);
300  valPixHitsSoftMuonMVA = ibooker.book1D("valPixHitsSoftMuonMVA", "valPixHits", 8, 0, 8);
301  innerChi2SoftMuonMVA = ibooker.book1D("innerChi2SoftMuonMVA", "innerChi2", 50, 0, 3);
302  outerChi2SoftMuonMVA = ibooker.book1D("outerChi2SoftMuonMVA", "outerChi2", 50, 0, 4);
303  iValFracSoftMuonMVA = ibooker.book1D("iValFracSoftMuonMVA", "iValFrac", 50, 0.5, 1.0);
304  segCompSoftMuonMVA = ibooker.book1D("segCompSoftMuonMVA", "segComp", 50, 0, 1.2);
305  chi2LocMomSoftMuonMVA = ibooker.book1D("chi2LocMomSoftMuonMVA", "chi2LocMom", 50, 0, 40);
306  chi2LocPosSoftMuonMVA = ibooker.book1D("chi2LocPosSoftMuonMVA", "chi2LocPos", 0, 0, 8);
307  glbTrackTailProbSoftMuonMVA = ibooker.book1D("glbTrackTailProbSoftMuonMVA", "glbTrackTailProb", 50, 0, 8);
308  NTrkVHitsSoftMuonMVA = ibooker.book1D("NTrkVHitsSoftMuonMVA", "NTrkVHits", 50, 0, 35);
309  kinkFinderSoftMuonMVA = ibooker.book1D("kinkFinderSoftMuonMVA", "kinkFinder", 50, 0, 30);
310  vRPChitsSoftMuonMVA = ibooker.book1D("vRPChitsSoftMuonMVA", "vRPChits", 50, 0, 50);
311  glbKinkFinderSoftMuonMVA = ibooker.book1D("glbKinkFinderSoftMuonMVA", "glbKinkFinder", 50, 0, 50);
312  glbKinkFinderLogSoftMuonMVA = ibooker.book1D("glbKinkFinderLogSoftMuonMVA", "glbKinkFinderLog", 50, 0, 50);
313  staRelChi2SoftMuonMVA = ibooker.book1D("staRelChi2SoftMuonMVA", "staRelChi2", 50, 0, 2);
314  glbDeltaEtaPhiSoftMuonMVA = ibooker.book1D("glbDeltaEtaPhiSoftMuonMVA", "glbDeltaEtaPhi", 50, 0, 0.15);
315  trkRelChi2SoftMuonMVA = ibooker.book1D("trkRelChi2SoftMuonMVA", "trkRelChi2", 50, 0, 1.2);
316  vDThitsSoftMuonMVA = ibooker.book1D("vDThitsSoftMuonMVA", "vDThits", 50, 0, 50);
317  vCSChitsSoftMuonMVA = ibooker.book1D("vCSChitsSoftMuonMVA", "vCSChits", 50, 0, 50);
318  if (useGEM) {
320  ibooker.book1D("vGEMhitsSoftMuonMVA", "vGEMhits", maxGEMhitsSoftMuonMVA, 0, maxGEMhitsSoftMuonMVA);
321  vGEMhitsSoftMuonMVA->setXTitle("Number of Valid GEM Hits of Global Muon");
322  } else {
323  vGEMhitsSoftMuonMVA = nullptr;
324  }
325  timeAtIpInOutSoftMuonMVA = ibooker.book1D("timeAtIpInOutSoftMuonMVA", "timeAtIpInOut", 50, -10.0, 10.0);
326  timeAtIpInOutErrSoftMuonMVA = ibooker.book1D("timeAtIpInOutErrSoftMuonMVA", "timeAtIpInOutErr", 50, 0, 3.5);
328  ibooker.book1D("getMuonHitsPerStationSoftMuonMVA", "getMuonHitsPerStation", 6, 0, 6);
329  QprodSoftMuonMVA = ibooker.book1D("QprodSoftMuonMVA", "Qprod", 4, -2, 2);
330 
331  // monitoring of the muon charge
332  qGlbTrack.push_back(ibooker.book1D(histname + "Glb_q", "q_{GLB}", 5, -2.5, 2.5));
333  qGlbTrack.push_back(ibooker.book1D(histname + "Tk_q", "q_{TKfromGLB}", 5, -2.5, 2.5));
334  qGlbTrack.push_back(ibooker.book1D(histname + "Sta_q", "q_{STAformGLB}", 5, -2.5, 2.5));
335  qGlbTrack.push_back(ibooker.book1D(
336  histname + "qComparison", "comparison between q_{GLB} and q_{TKfromGLB}, q_{STAfromGLB}", 8, 0.5, 8.5));
337  qGlbTrack[3]->setBinLabel(1, "qGlb=qSta");
338  qGlbTrack[3]->setBinLabel(2, "qGlb!=qSta");
339  qGlbTrack[3]->setBinLabel(3, "qGlb=qTk");
340  qGlbTrack[3]->setBinLabel(4, "qGlb!=qTk");
341  qGlbTrack[3]->setBinLabel(5, "qSta=qTk");
342  qGlbTrack[3]->setBinLabel(6, "qSta!=qTk");
343  qGlbTrack[3]->setBinLabel(7, "qGlb!=qSta,qGlb!=Tk");
344  qGlbTrack[3]->setBinLabel(8, "qGlb=qSta,qGlb=Tk");
345  qTrack = ibooker.book1D("TkMuon_q", "q_{TK}", 5, -2.5, 2.5);
346  qStaTrack = ibooker.book1D("StaMuon_q", "q_{STA}", 5, -2.5, 2.5);
347 
349  // monitoring of the momentum resolution
350  qOverpResolution.push_back(ibooker.book1D(
351  "Res_TkGlb_qOverp", "(q/p)_{TKfromGLB} - (q/p)_{GLB}", pResBin * binFactor * 2, pResMin / 10, pResMax / 10));
352  qOverpResolution[0]->setAxisTitle("GeV^{-1}");
353  qOverpResolution.push_back(
354  ibooker.book1D("Res_GlbSta_qOverp", "(q/p)_{GLB} - (q/p)_{STAfromGLB}", pResBin * binFactor, pResMin, pResMax));
355  qOverpResolution[1]->setAxisTitle("GeV^{-1}");
356  qOverpResolution.push_back(ibooker.book1D(
357  "Res_TkSta_qOverp", "(q/p)_{TKfromGLB} - (q/p)_{STAfromGLB}", pResBin * binFactor, pResMin, pResMax));
358  qOverpResolution[2]->setAxisTitle("GeV^{-1}");
359  qOverpPull = ibooker.book1D("Pull_TkSta_qOverp", "(q/p)_{TKfromGLB} - (q/p)_{STAfromGLB} / error", 100, -10, 10);
360 
361  oneOverpResolution.push_back(ibooker.book1D(
362  "Res_TkGlb_oneOverp", "(1/p)_{TKfromGLB} - (1/p)_{GLB}", pResBin * binFactor * 2, pResMin / 10, pResMax / 10));
363  oneOverpResolution[0]->setAxisTitle("GeV^{-1}");
364  oneOverpResolution.push_back(
365  ibooker.book1D("Res_GlbSta_oneOverp", "(1/p)_{GLB} - (1/p)_{STAfromGLB}", pResBin * binFactor, pResMin, pResMax));
366  oneOverpResolution[1]->setAxisTitle("GeV^{-1}");
367  oneOverpResolution.push_back(ibooker.book1D(
368  "Res_TkSta_oneOverp", "(q/p)_{TKfromGLB} - (q/p)_{STAfromGLB}", pResBin * binFactor, pResMin, pResMax));
369  oneOverpResolution[2]->setAxisTitle("GeV^{-1}");
370  oneOverpPull = ibooker.book1D("Pull_TkSta_oneOverp", "(1/p)_{TKfromGLB} - (1/p)_{STAfromGLB} / error", 100, -10, 10);
371 
372  qOverptResolution.push_back(ibooker.book1D("Res_TkGlb_qOverpt",
373  "(q/p_{t})_{TKfromGLB} - (q/p_{t})_{GLB}",
374  pResBin * binFactor * 2,
375  pResMin / 10,
376  pResMax / 10));
377  qOverptResolution[0]->setAxisTitle("GeV^{-1}");
378  qOverptResolution.push_back(ibooker.book1D(
379  "Res_GlbSta_qOverpt", "(q/p_{t})_{GLB} - (q/p_{t})_{STAfromGLB}", pResBin * binFactor, pResMin, pResMax));
380  qOverptResolution[1]->setAxisTitle("GeV^{-1}");
381  qOverptResolution.push_back(ibooker.book1D(
382  "Res_TkSta_qOverpt", "(q/p_{t})_{TKfromGLB} - (q/p_{t})_{STAfromGLB}", pResBin * binFactor, pResMin, pResMax));
383  qOverptResolution[2]->setAxisTitle("GeV^{-1}");
384  qOverptPull = ibooker.book1D("Pull_TkSta_qOverpt", "(q/pt)_{TKfromGLB} - (q/pt)_{STAfromGLB} / error", 100, -10, 10);
385 
386  oneOverptResolution.push_back(ibooker.book1D("Res_TkGlb_oneOverpt",
387  "(1/p_{t})_{TKfromGLB} - (1/p_{t})_{GLB}",
388  pResBin * binFactor * 2,
389  pResMin / 10,
390  pResMax / 10));
391  oneOverptResolution[0]->setAxisTitle("GeV^{-1}");
392  oneOverptResolution.push_back(ibooker.book1D(
393  "Res_GlbSta_oneOverpt", "(1/p_{t})_{GLB} - (1/p_{t})_{STAfromGLB}", pResBin * binFactor, pResMin, pResMax));
394  oneOverptResolution[1]->setAxisTitle("GeV^{-1}");
395  oneOverptResolution.push_back(ibooker.book1D(
396  "Res_TkSta_oneOverpt", "(1/p_{t})_{TKfromGLB} - (1/p_{t})_{STAfromGLB}", pResBin * binFactor, pResMin, pResMax));
397  oneOverptResolution[2]->setAxisTitle("GeV^{-1}");
398  oneOverptResolution.push_back(ibooker.book2D("ResVsEta_TkGlb_oneOverpt",
399  "(#eta_{TKfromGLB} - #eta_{GLB}) vs (1/p_{t})_{GLB}",
400  etaBin,
401  etaMin,
402  etaMax,
403  pResBin * binFactor * 2,
404  pResMin / 10,
405  pResMax / 10));
406  oneOverptResolution[3]->setAxisTitle("GeV^{-1}", 2);
407  oneOverptResolution.push_back(ibooker.book2D("ResVsEta_GlbSta_oneOverpt",
408  "(#eta_{GLB} - #eta_{STAfromGLB} vs (1/p_{t})_{GLB}",
409  etaBin,
410  etaMin,
411  etaMax,
412  pResBin * binFactor,
413  pResMin,
414  pResMax));
415  oneOverptResolution[4]->setAxisTitle("GeV^{-1}", 2);
416  oneOverptResolution.push_back(ibooker.book2D("ResVsEta_TkSta_oneOverpt",
417  "(#eta_{TKfromGLB} - #eta_{STAfromGLB}) vs (1/p_{t})_{TKfromGLB}",
418  etaBin,
419  etaMin,
420  etaMax,
421  pResBin * binFactor,
422  pResMin,
423  pResMax));
424  oneOverptResolution[5]->setAxisTitle("GeV^{-1}", 2);
425  oneOverptResolution.push_back(ibooker.book2D("ResVsPhi_TkGlb_oneOverpt",
426  "(#phi_{TKfromGLB} - #phi_{GLB}) vs (1/p_{t})_{GLB}",
427  phiBin,
428  phiMin,
429  phiMax,
430  pResBin * binFactor * 2,
431  pResMin / 10,
432  pResMax / 10));
433  oneOverptResolution[6]->setAxisTitle("rad", 1);
434  oneOverptResolution[6]->setAxisTitle("GeV^{-1}", 2);
435  oneOverptResolution.push_back(ibooker.book2D("ResVsPhi_GlbSta_oneOverpt",
436  "(#phi_{GLB} - #phi_{STAfromGLB} vs (1/p_{t})_{GLB}",
437  phiBin,
438  phiMin,
439  phiMax,
440  pResBin * binFactor,
441  pResMin,
442  pResMax));
443  oneOverptResolution[7]->setAxisTitle("rad", 1);
444  oneOverptResolution[7]->setAxisTitle("GeV^{-1}", 2);
445  oneOverptResolution.push_back(ibooker.book2D("ResVsPhi_TkSta_oneOverpt",
446  "(#phi_{TKfromGLB} - #phi_{STAfromGLB}) vs (1/p_{t})_{TKfromGLB}",
447  phiBin,
448  phiMin,
449  phiMax,
450  pResBin * binFactor,
451  pResMin,
452  pResMax));
453  oneOverptResolution[8]->setAxisTitle("rad", 1);
454  oneOverptResolution[8]->setAxisTitle("GeV^{-1}", 2);
455  oneOverptResolution.push_back(ibooker.book2D("ResVsPt_TkGlb_oneOverpt",
456  "((1/p_{t})_{TKfromGLB} - (1/p_{t})_{GLB}) vs (1/p_{t})_{GLB}",
457  ptBin / 5,
458  ptMin,
459  ptMax / 100,
460  pResBin * binFactor * 2,
461  pResMin / 10,
462  pResMax / 10));
463  oneOverptResolution[9]->setAxisTitle("GeV^{-1}", 1);
464  oneOverptResolution[9]->setAxisTitle("GeV^{-1}", 2);
465  oneOverptResolution.push_back(ibooker.book2D("ResVsPt_GlbSta_oneOverpt",
466  "((1/p_{t})_{GLB} - (1/p_{t})_{STAfromGLB} vs (1/p_{t})_{GLB}",
467  ptBin / 5,
468  ptMin,
469  ptMax / 100,
470  pResBin * binFactor,
471  pResMin,
472  pResMax));
473  oneOverptResolution[10]->setAxisTitle("GeV^{-1}", 1);
474  oneOverptResolution[10]->setAxisTitle("GeV^{-1}", 2);
475  oneOverptResolution.push_back(
476  ibooker.book2D("ResVsPt_TkSta_oneOverpt",
477  "((1/p_{t})_{TKfromGLB} - (1/p_{t})_{STAfromGLB}) vs (1/p_{t})_{TKfromGLB}",
478  ptBin / 5,
479  ptMin,
480  ptMax / 100,
481  pResBin * binFactor,
482  pResMin,
483  pResMax));
484  oneOverptResolution[11]->setAxisTitle("GeV^{-1}", 1);
485  oneOverptResolution[11]->setAxisTitle("GeV^{-1}", 2);
486  oneOverptPull =
487  ibooker.book1D("Pull_TkSta_oneOverpt", "(1/pt)_{TKfromGLB} - (1/pt)_{STAfromGLB} / error", 100, -10, 10);
488 
490  // monitoring of the phi-eta
491  phiVsetaGlbTrack.push_back(ibooker.book2D(
492  histname + "Glb_phiVSeta", "#phi vs #eta (GLB)", etaBin / 2, etaMin, etaMax, phiBin / 2, phiMin, phiMax));
493  phiVsetaGlbTrack.push_back(ibooker.book2D(
494  histname + "Tk_phiVSeta", "#phi vs #eta (TKfromGLB)", etaBin / 2, etaMin, etaMax, phiBin / 2, phiMin, phiMax));
495  phiVsetaGlbTrack.push_back(ibooker.book2D(
496  histname + "Sta_phiVseta", "#phi vs #eta (STAfromGLB)", etaBin / 2, etaMin, etaMax, phiBin / 2, phiMin, phiMax));
497 
498  phiVsetaGlbTrack_badlumi.push_back(ibooker.book2D(
499  histname + "Glb_phiVSeta_badlumi", "#phi vs #eta (GLB)", etaBin / 2, etaMin, etaMax, phiBin / 2, phiMin, phiMax));
500  phiVsetaGlbTrack_badlumi.push_back(ibooker.book2D(histname + "Tk_phiVSeta_badlumi",
501  "#phi vs #eta (TKfromGLB)",
502  etaBin / 2,
503  etaMin,
504  etaMax,
505  phiBin / 2,
506  phiMin,
507  phiMax));
508  phiVsetaGlbTrack_badlumi.push_back(ibooker.book2D(histname + "Sta_phiVseta_badlumi",
509  "#phi vs #eta (STAfromGLB)",
510  etaBin / 2,
511  etaMin,
512  etaMax,
513  phiBin / 2,
514  phiMin,
515  phiMax));
516 
518  // monitoring of the recHits provenance
519  rhAnalysis.push_back(ibooker.book1D("StaRh_Frac_inGlb", "recHits_{STAinGLB} / recHits_{GLB}", rhBin, rhMin, rhMax));
520  rhAnalysis.push_back(ibooker.book1D("TkRh_Frac_inGlb", "recHits_{TKinGLB} / recHits_{GLB}", rhBin, rhMin, rhMax));
521  rhAnalysis.push_back(
522  ibooker.book1D("StaRh_inGlb_Div_RhAssoSta", "recHits_{STAinGLB} / recHits_{STAfromGLB}", rhBin, rhMin, rhMax));
523  rhAnalysis.push_back(
524  ibooker.book1D("TkRh_inGlb_Div_RhAssoTk", "recHits_{TKinGLB} / recHits_{TKfromGLB}", rhBin, rhMin, rhMax));
525  rhAnalysis.push_back(ibooker.book1D(
526  "GlbRh_Div_RhAssoStaTk", "recHits_{GLB} / (recHits_{TKfromGLB}+recHits_{STAfromGLB})", rhBin, rhMin, rhMax));
527  rhAnalysis.push_back(ibooker.book1D("invalidRh_Frac_inTk", "Invalid recHits / rechits_{GLB}", rhBin, rhMin, rhMax));
528 
530  // monitoring of the muon system rotation w.r.t. tracker
531  muVStkSytemRotation.push_back(ibooker.book2D(
532  "muVStkSytemRotation_posMu", "pT_{TK} / pT_{GLB} vs pT_{GLB} for #mu^{+}", 50, 0, 200, 100, 0.8, 1.2));
533  muVStkSytemRotation.push_back(ibooker.book2D(
534  "muVStkSytemRotation_negMu", "pT_{TK} / pT_{GLB} vs pT_{GLB} for #mu^{-}", 50, 0, 200, 100, 0.8, 1.2));
535 }
MonitorElement * NTrkVHitsSoftMuonMVA
MonitorElement * muReco
std::vector< MonitorElement * > oneOverpResolution
MonitorElement * deltaRSoftMuonMVA
MonitorElement * trkRelChi2SoftMuonMVA
MonitorElement * qOverptPull
std::vector< MonitorElement * > ptGlbTrack
std::vector< MonitorElement * > chi2OvDFGlbTrack
std::vector< MonitorElement * > phiVsetaGlbTrack_badlumi
MonitorElement * gNchi2SoftMuonMVA
std::vector< MonitorElement * > phiVsetaGlbTrack
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
MonitorElement * getMuonHitsPerStationSoftMuonMVA
MonitorElement * segCompSoftMuonMVA
MonitorElement * iValFracSoftMuonMVA
MonitorElement * outerChi2SoftMuonMVA
MonitorElement * etaStaTrack
MonitorElement * vGEMhitsSoftMuonMVA
MonitorElement * vRPChitsSoftMuonMVA
MonitorElement * dzRefSoftMuonMVA
std::vector< MonitorElement * > phiGlbTrack
MonitorElement * LWHSoftMuonMVA
MonitorElement * chi2OvDFStaTrack
MonitorElement * vMuHitsSoftMuonMVA
MonitorElement * phiStaTrack
MonitorElement * vDThitsSoftMuonMVA
std::string theFolder
MonitorElement * qOverpPull
std::vector< MonitorElement * > phiEfficiency
MonitorElement * mNuStationsSoftMuonMVA
MonitorElement * etaTrack
MonitorElement * innerChi2SoftMuonMVA
virtual void setXTitle(std::string const &title)
MonitorElement * chi2OvDFTrack
std::vector< MonitorElement * > qOverptResolution
std::vector< MonitorElement * > etaGlbTrack
std::vector< MonitorElement * > pGlbTrack
std::vector< MonitorElement * > qOverpResolution
MonitorElement * timeAtIpInOutSoftMuonMVA
MonitorElement * oneOverpPull
MonitorElement * valPixHitsSoftMuonMVA
std::vector< MonitorElement * > qGlbTrack
MonitorElement * pTrack
MonitorElement * timeAtIpInOutErrSoftMuonMVA
std::vector< MonitorElement * > probchi2GlbTrack
std::vector< MonitorElement * > etaResolution
MonitorElement * ptSoftMuonMVA
MonitorElement * oneOverptPull
MonitorElement * tunePResolution
MonitorElement * glbKinkFinderLogSoftMuonMVA
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
std::vector< MonitorElement * > etaEfficiency
MonitorElement * dxyRefSoftMuonMVA
MonitorElement * staRelChi2SoftMuonMVA
MonitorElement * thetaStaTrack
std::vector< MonitorElement * > phiResolution
MonitorElement * chi2LocMomSoftMuonMVA
std::vector< MonitorElement * > thetaGlbTrack
MonitorElement * phiPull
MonitorElement * phiTrack
MonitorElement * vCSChitsSoftMuonMVA
std::vector< MonitorElement * > oneOverptResolution
MonitorElement * probchi2Track
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
std::vector< MonitorElement * > muVStkSytemRotation
MonitorElement * kinkFinderSoftMuonMVA
MonitorElement * ptTrack
MonitorElement * glbKinkFinderSoftMuonMVA
MonitorElement * chi2LocPosSoftMuonMVA
MonitorElement * glbDeltaEtaPhiSoftMuonMVA
MonitorElement * QprodSoftMuonMVA
MonitorElement * probchi2StaTrack
MonitorElement * ptStaTrack
std::vector< MonitorElement * > rhAnalysis
MonitorElement * etaPull
MonitorElement * pStaTrack
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
MonitorElement * thetaTrack
std::vector< MonitorElement * > thetaResolution
MonitorElement * glbTrackTailProbSoftMuonMVA
MonitorElement * qTrack
MonitorElement * thetaPull
MonitorElement * qStaTrack
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
double MuonRecoAnalyzer::getDeltaR ( reco::Track  track1,
reco::Track  track2 
)

Definition at line 1003 of file MuonRecoAnalyzer.cc.

References funct::cos(), reco::TrackBase::eta(), reco::TrackBase::phi(), and mathSSE::sqrt().

1003  {
1004  double dphi = acos(cos(track1.phi() - track2.phi()));
1005  double deta = track1.eta() - track2.eta();
1006  return sqrt(dphi * dphi + deta * deta);
1007 }
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:649
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:652
T sqrt(T t)
Definition: SSEVec.h:19
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
int MuonRecoAnalyzer::getPv ( int  tidx,
const reco::VertexCollection vc 
)

Definition at line 1010 of file MuonRecoAnalyzer.cc.

References mps_fire::i.

1010  {
1011  if (vc) {
1012  for (unsigned int i = 0; i < vc->size(); ++i) {
1013  reco::Vertex::trackRef_iterator v1TrackIter;
1014  reco::Vertex::trackRef_iterator v1TrackBegin = vc->at(i).tracks_begin();
1015  reco::Vertex::trackRef_iterator v1TrackEnd = vc->at(i).tracks_end();
1016  for (v1TrackIter = v1TrackBegin; v1TrackIter != v1TrackEnd; v1TrackIter++) {
1017  if (static_cast<unsigned int>(tidx) == v1TrackIter->key())
1018  return i;
1019  }
1020  }
1021  }
1022  return -1;
1023 }
std::vector< TrackBaseRef >::const_iterator trackRef_iterator
The iteratator for the vector&lt;TrackRef&gt;
Definition: Vertex.h:38
void MuonRecoAnalyzer::GetRes ( reco::TrackRef  t1,
reco::TrackRef  t2,
std::string  par,
float &  res,
float &  pull 
)

Definition at line 537 of file MuonRecoAnalyzer.cc.

References fireworks::p1, fireworks::p2, and mathSSE::sqrt().

537  {
538  float p1 = 0, p2 = 0, p1e = 1, p2e = 1;
539 
540  if (par == "eta") {
541  p1 = t1->eta();
542  p1e = t1->etaError();
543  p2 = t2->eta();
544  p2e = t2->etaError();
545  } else if (par == "theta") {
546  p1 = t1->theta();
547  p1e = t1->thetaError();
548  p2 = t2->theta();
549  p2e = t2->thetaError();
550  } else if (par == "phi") {
551  p1 = t1->phi();
552  p1e = t1->phiError();
553  p2 = t2->phi();
554  p2e = t2->phiError();
555  } else if (par == "qOverp") {
556  p1 = t1->charge() / t1->p();
557  p1e = t1->qoverpError();
558  p2 = t2->charge() / t2->p();
559  p2e = t2->qoverpError();
560  } else if (par == "oneOverp") {
561  p1 = 1. / t1->p();
562  p1e = t1->qoverpError();
563  p2 = 1. / t2->p();
564  p2e = t2->qoverpError();
565  } else if (par == "qOverpt") {
566  p1 = t1->charge() / t1->pt();
567  p1e = t1->ptError() * p1 * p1;
568  p2 = t2->charge() / t2->pt();
569  p2e = t2->ptError() * p2 * p2;
570  } else if (par == "oneOverpt") {
571  p1 = 1. / t1->pt();
572  p1e = t1->ptError() * p1 * p1;
573  p2 = 1. / t2->pt();
574  p2e = t2->ptError() * p2 * p2;
575  }
576 
577  res = p1 - p2;
578  if (p1e != 0 || p2e != 0)
579  pull = res / sqrt(p1e * p1e + p2e * p2e);
580  else
581  pull = -99;
582  return;
583 }
const TString p2
Definition: fwPaths.cc:13
T sqrt(T t)
Definition: SSEVec.h:19
const TString p1
Definition: fwPaths.cc:12

Member Data Documentation

int MuonRecoAnalyzer::chi2Bin
private

Definition at line 77 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::chi2LocMomSoftMuonMVA
private

Definition at line 138 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::chi2LocPosSoftMuonMVA
private

Definition at line 139 of file MuonRecoAnalyzer.h.

double MuonRecoAnalyzer::chi2Max
private

Definition at line 79 of file MuonRecoAnalyzer.h.

double MuonRecoAnalyzer::chi2Min
private

Definition at line 78 of file MuonRecoAnalyzer.h.

std::vector<MonitorElement*> MuonRecoAnalyzer::chi2OvDFGlbTrack
private

Definition at line 110 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::chi2OvDFStaTrack
private

Definition at line 180 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::chi2OvDFTrack
private

Definition at line 171 of file MuonRecoAnalyzer.h.

edm::EDGetTokenT<DcsStatusCollection> MuonRecoAnalyzer::dcsStatusCollection_
private

Definition at line 56 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::deltaRSoftMuonMVA
private

Definition at line 126 of file MuonRecoAnalyzer.h.

bool MuonRecoAnalyzer::doMVA
private

Definition at line 60 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::dxyRefSoftMuonMVA
private

Definition at line 130 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::dzRefSoftMuonMVA
private

Definition at line 131 of file MuonRecoAnalyzer.h.

int MuonRecoAnalyzer::etaBin
private

Definition at line 65 of file MuonRecoAnalyzer.h.

std::vector<MonitorElement*> MuonRecoAnalyzer::etaEfficiency
private

Definition at line 186 of file MuonRecoAnalyzer.h.

std::vector<MonitorElement*> MuonRecoAnalyzer::etaGlbTrack
private

Definition at line 104 of file MuonRecoAnalyzer.h.

double MuonRecoAnalyzer::etaMax
private

Definition at line 67 of file MuonRecoAnalyzer.h.

double MuonRecoAnalyzer::etaMin
private

Definition at line 66 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::etaPull
private

Definition at line 159 of file MuonRecoAnalyzer.h.

std::vector<MonitorElement*> MuonRecoAnalyzer::etaResolution
private

Definition at line 105 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::etaStaTrack
private

Definition at line 177 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::etaTrack
private

Definition at line 168 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::getMuonHitsPerStationSoftMuonMVA
private

Definition at line 154 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::glbDeltaEtaPhiSoftMuonMVA
private

Definition at line 147 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::glbKinkFinderLogSoftMuonMVA
private

Definition at line 145 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::glbKinkFinderSoftMuonMVA
private

Definition at line 144 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::glbTrackTailProbSoftMuonMVA
private

Definition at line 140 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::gNchi2SoftMuonMVA
private

Definition at line 127 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::innerChi2SoftMuonMVA
private

Definition at line 134 of file MuonRecoAnalyzer.h.

bool MuonRecoAnalyzer::IsminiAOD
private

Definition at line 189 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::iValFracSoftMuonMVA
private

Definition at line 136 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::kinkFinderSoftMuonMVA
private

Definition at line 142 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::LWHSoftMuonMVA
private

Definition at line 132 of file MuonRecoAnalyzer.h.

int MuonRecoAnalyzer::maxGEMhitsSoftMuonMVA
private

Definition at line 62 of file MuonRecoAnalyzer.h.

std::string MuonRecoAnalyzer::metname
private

Definition at line 59 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::mNuStationsSoftMuonMVA
private

Definition at line 129 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::muReco
private

Definition at line 102 of file MuonRecoAnalyzer.h.

std::vector<MonitorElement*> MuonRecoAnalyzer::muVStkSytemRotation
private

Definition at line 120 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::NTrkVHitsSoftMuonMVA
private

Definition at line 141 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::oneOverpPull
private

Definition at line 164 of file MuonRecoAnalyzer.h.

std::vector<MonitorElement*> MuonRecoAnalyzer::oneOverpResolution
private

Definition at line 117 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::oneOverptPull
private

Definition at line 165 of file MuonRecoAnalyzer.h.

std::vector<MonitorElement*> MuonRecoAnalyzer::oneOverptResolution
private

Definition at line 118 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::outerChi2SoftMuonMVA
private

Definition at line 135 of file MuonRecoAnalyzer.h.

edm::ParameterSet MuonRecoAnalyzer::parameters
private

Definition at line 51 of file MuonRecoAnalyzer.h.

int MuonRecoAnalyzer::pBin
private

Definition at line 81 of file MuonRecoAnalyzer.h.

std::vector<MonitorElement*> MuonRecoAnalyzer::pGlbTrack
private

Definition at line 112 of file MuonRecoAnalyzer.h.

int MuonRecoAnalyzer::phiBin
private

Definition at line 73 of file MuonRecoAnalyzer.h.

std::vector<MonitorElement*> MuonRecoAnalyzer::phiEfficiency
private

Definition at line 187 of file MuonRecoAnalyzer.h.

std::vector<MonitorElement*> MuonRecoAnalyzer::phiGlbTrack
private

Definition at line 108 of file MuonRecoAnalyzer.h.

double MuonRecoAnalyzer::phiMax
private

Definition at line 75 of file MuonRecoAnalyzer.h.

double MuonRecoAnalyzer::phiMin
private

Definition at line 74 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::phiPull
private

Definition at line 161 of file MuonRecoAnalyzer.h.

std::vector<MonitorElement*> MuonRecoAnalyzer::phiResolution
private

Definition at line 109 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::phiStaTrack
private

Definition at line 179 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::phiTrack
private

Definition at line 170 of file MuonRecoAnalyzer.h.

std::vector<MonitorElement*> MuonRecoAnalyzer::phiVsetaGlbTrack
private

Definition at line 121 of file MuonRecoAnalyzer.h.

std::vector<MonitorElement*> MuonRecoAnalyzer::phiVsetaGlbTrack_badlumi
private

Definition at line 122 of file MuonRecoAnalyzer.h.

double MuonRecoAnalyzer::pMax
private

Definition at line 83 of file MuonRecoAnalyzer.h.

double MuonRecoAnalyzer::pMin
private

Definition at line 82 of file MuonRecoAnalyzer.h.

int MuonRecoAnalyzer::pResBin
private

Definition at line 89 of file MuonRecoAnalyzer.h.

double MuonRecoAnalyzer::pResMax
private

Definition at line 91 of file MuonRecoAnalyzer.h.

double MuonRecoAnalyzer::pResMin
private

Definition at line 90 of file MuonRecoAnalyzer.h.

std::vector<MonitorElement*> MuonRecoAnalyzer::probchi2GlbTrack
private

Definition at line 111 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::probchi2StaTrack
private

Definition at line 181 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::probchi2Track
private

Definition at line 172 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::pStaTrack
private

Definition at line 182 of file MuonRecoAnalyzer.h.

int MuonRecoAnalyzer::ptBin
private

Definition at line 85 of file MuonRecoAnalyzer.h.

std::vector<MonitorElement*> MuonRecoAnalyzer::ptGlbTrack
private

Definition at line 113 of file MuonRecoAnalyzer.h.

double MuonRecoAnalyzer::ptMax
private

Definition at line 87 of file MuonRecoAnalyzer.h.

double MuonRecoAnalyzer::ptMin
private

Definition at line 86 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::pTrack
private

Definition at line 173 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::ptSoftMuonMVA
private

Definition at line 125 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::ptStaTrack
private

Definition at line 183 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::ptTrack
private

Definition at line 174 of file MuonRecoAnalyzer.h.

std::vector<MonitorElement*> MuonRecoAnalyzer::qGlbTrack
private

Definition at line 114 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::qOverpPull
private

Definition at line 162 of file MuonRecoAnalyzer.h.

std::vector<MonitorElement*> MuonRecoAnalyzer::qOverpResolution
private

Definition at line 115 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::qOverptPull
private

Definition at line 163 of file MuonRecoAnalyzer.h.

std::vector<MonitorElement*> MuonRecoAnalyzer::qOverptResolution
private

Definition at line 116 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::QprodSoftMuonMVA
private

Definition at line 155 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::qStaTrack
private

Definition at line 184 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::qTrack
private

Definition at line 175 of file MuonRecoAnalyzer.h.

std::vector<MonitorElement*> MuonRecoAnalyzer::rhAnalysis
private

Definition at line 119 of file MuonRecoAnalyzer.h.

int MuonRecoAnalyzer::rhBin
private

Definition at line 93 of file MuonRecoAnalyzer.h.

double MuonRecoAnalyzer::rhMax
private

Definition at line 95 of file MuonRecoAnalyzer.h.

double MuonRecoAnalyzer::rhMin
private

Definition at line 94 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::segCompSoftMuonMVA
private

Definition at line 137 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::staRelChi2SoftMuonMVA
private

Definition at line 146 of file MuonRecoAnalyzer.h.

edm::EDGetTokenT<reco::BeamSpot> MuonRecoAnalyzer::theBeamSpotLabel_
private

Definition at line 55 of file MuonRecoAnalyzer.h.

std::string MuonRecoAnalyzer::theFolder
private

Definition at line 190 of file MuonRecoAnalyzer.h.

edm::EDGetTokenT<edm::View<reco::Muon> > MuonRecoAnalyzer::theMuonCollectionLabel_
private

Definition at line 53 of file MuonRecoAnalyzer.h.

int MuonRecoAnalyzer::thetaBin
private

Definition at line 69 of file MuonRecoAnalyzer.h.

std::vector<MonitorElement*> MuonRecoAnalyzer::thetaGlbTrack
private

Definition at line 106 of file MuonRecoAnalyzer.h.

double MuonRecoAnalyzer::thetaMax
private

Definition at line 71 of file MuonRecoAnalyzer.h.

double MuonRecoAnalyzer::thetaMin
private

Definition at line 70 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::thetaPull
private

Definition at line 160 of file MuonRecoAnalyzer.h.

std::vector<MonitorElement*> MuonRecoAnalyzer::thetaResolution
private

Definition at line 107 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::thetaStaTrack
private

Definition at line 178 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::thetaTrack
private

Definition at line 169 of file MuonRecoAnalyzer.h.

edm::EDGetTokenT<reco::VertexCollection> MuonRecoAnalyzer::theVertexLabel_
private

Definition at line 54 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::timeAtIpInOutErrSoftMuonMVA
private

Definition at line 153 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::timeAtIpInOutSoftMuonMVA
private

Definition at line 152 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::trkRelChi2SoftMuonMVA
private

Definition at line 148 of file MuonRecoAnalyzer.h.

int MuonRecoAnalyzer::tunePBin
private

Definition at line 97 of file MuonRecoAnalyzer.h.

double MuonRecoAnalyzer::tunePMax
private

Definition at line 99 of file MuonRecoAnalyzer.h.

double MuonRecoAnalyzer::tunePMin
private

Definition at line 98 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::tunePResolution
private

Definition at line 157 of file MuonRecoAnalyzer.h.

bool MuonRecoAnalyzer::useGEM
private

Definition at line 61 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::valPixHitsSoftMuonMVA
private

Definition at line 133 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::vCSChitsSoftMuonMVA
private

Definition at line 150 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::vDThitsSoftMuonMVA
private

Definition at line 149 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::vGEMhitsSoftMuonMVA
private

Definition at line 151 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::vMuHitsSoftMuonMVA
private

Definition at line 128 of file MuonRecoAnalyzer.h.

MonitorElement* MuonRecoAnalyzer::vRPChitsSoftMuonMVA
private

Definition at line 143 of file MuonRecoAnalyzer.h.