CMS 3D CMS Logo

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

#include <TrackBuildingAnalyzer.h>

Public Types

typedef dqm::legacy::DQMStore DQMStore
 
typedef dqm::legacy::MonitorElement MonitorElement
 
using MVACollection = std::vector< float >
 
using QualityMaskCollection = std::vector< unsigned char >
 

Public Member Functions

void analyze (const edm::Event &iEvent, const edm::EventSetup &iSetup, const TrajectorySeed &seed, const SeedStopInfo &stopInfo, const reco::BeamSpot &bs, const edm::ESHandle< MagneticField > &theMF, const edm::ESHandle< TransientTrackingRecHitBuilder > &theTTRHBuilder)
 
void analyze (const edm::Event &iEvent, const edm::EventSetup &iSetup, const TrackCandidate &candidate, const reco::BeamSpot &bs, const edm::ESHandle< MagneticField > &theMF, const edm::ESHandle< TransientTrackingRecHitBuilder > &theTTRHBuilder)
 
void analyze (const edm::View< reco::Track > &trackCollection, const std::vector< const MVACollection * > &mvaCollections, const std::vector< const QualityMaskCollection * > &qualityMaskCollections)
 
void analyze (const reco::CandidateView &regionCandidates)
 
void analyze (const edm::OwnVector< TrackingRegion > &regions)
 
void analyze (const TrackingRegionsSeedingLayerSets &regions)
 
void initHisto (DQMStore::IBooker &ibooker, const edm::ParameterSet &)
 
 TrackBuildingAnalyzer (const edm::ParameterSet &)
 
 ~TrackBuildingAnalyzer ()=default
 

Private Member Functions

template<typename T >
void analyzeRegions (const T &regions)
 
void bookHistos (std::string sname, DQMStore::IBooker &ibooker)
 
void fillHistos (const edm::EventSetup &iSetup, const reco::Track &track, std::string sname)
 

Private Attributes

const bool doAllPlots
 
const bool doAllSeedPlots
 
const bool doAllTCPlots
 
const bool doDxy
 
const bool doDz
 
const bool doETA
 
const bool doMVAPlots
 
const bool doNRecHits
 
const bool doPHI
 
const bool doPHIVsETA
 
const bool doProfETA
 
const bool doProfPHI
 
const bool doPT
 
const bool doQ
 
const bool doRegionCandidatePlots
 
const bool doRegionPlots
 
const bool doStopSource
 
const bool doTCPlots
 
const bool doTheta
 
double etaBinWidth = 0.
 
std::string histname
 
MonitorElementNumberOfRecHitsPerSeed = 0
 
MonitorElementNumberOfRecHitsPerSeedVsEtaProfile = 0
 
MonitorElementNumberOfRecHitsPerSeedVsPhiProfile = 0
 
MonitorElementNumberOfRecHitsPerTrackCand = 0
 
MonitorElementNumberOfRecHitsPerTrackCandVsEtaProfile = 0
 
MonitorElementNumberOfRecHitsPerTrackCandVsPhiProfile = 0
 
MonitorElementnumberOfTrajCandsPerSeed = 0
 
MonitorElementnumberOfTrajCandsPerSeedVsEta = 0
 
MonitorElementnumberOfTrajCandsPerSeedVsPhi = 0
 
double phiBinWidth = 0.
 
MonitorElementSeedDxy = 0
 
MonitorElementSeedDz = 0
 
MonitorElementSeedEta = 0
 
MonitorElementSeedPhi = 0
 
MonitorElementSeedPhiVsEta = 0
 
MonitorElementSeedPt = 0
 
MonitorElementSeedQ = 0
 
MonitorElementseedStoppingSource = 0
 
MonitorElementseedStoppingSourceVsEta = 0
 
MonitorElementseedStoppingSourceVsNumberOfTrajCandsPerSeed = 0
 
MonitorElementseedStoppingSourceVsPhi = 0
 
MonitorElementSeedTheta = 0
 
MonitorElementstoppingSource = 0
 
MonitorElementstoppingSourceVSeta = 0
 
MonitorElementstoppingSourceVSphi = 0
 
MonitorElementTrackCandDxy = 0
 
MonitorElementTrackCandDz = 0
 
MonitorElementTrackCandEta = 0
 
MonitorElementTrackCandPhi = 0
 
MonitorElementTrackCandPhiVsEta = 0
 
MonitorElementTrackCandPt = 0
 
MonitorElementTrackCandQ = 0
 
MonitorElementTrackCandTheta = 0
 
MonitorElementTrackingRegionCandidateEta = 0
 
MonitorElementTrackingRegionCandidatePhi = 0
 
MonitorElementTrackingRegionCandidatePhiVsEta = 0
 
MonitorElementTrackingRegionCandidatePt = 0
 
MonitorElementTrackingRegionEta = 0
 
MonitorElementTrackingRegionPhi = 0
 
MonitorElementTrackingRegionPhiVsEta = 0
 
std::vector< MonitorElement * > trackMVAs
 
std::vector< MonitorElement * > trackMVAsHP
 
std::vector< MonitorElement * > trackMVAsHPVsEtaProfile
 
std::vector< MonitorElement * > trackMVAsHPVsPtProfile
 
std::vector< MonitorElement * > trackMVAsVsEtaProfile
 
std::vector< MonitorElement * > trackMVAsVsPtProfile
 

Detailed Description

Monitoring source for general quantities related to tracks.

Definition at line 36 of file TrackBuildingAnalyzer.h.

Member Typedef Documentation

Definition at line 38 of file TrackBuildingAnalyzer.h.

Definition at line 39 of file TrackBuildingAnalyzer.h.

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

Definition at line 40 of file TrackBuildingAnalyzer.h.

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

Definition at line 41 of file TrackBuildingAnalyzer.h.

Constructor & Destructor Documentation

TrackBuildingAnalyzer::TrackBuildingAnalyzer ( const edm::ParameterSet iConfig)

Definition at line 25 of file TrackBuildingAnalyzer.cc.

26  : doAllPlots(iConfig.getParameter<bool>("doAllPlots")),
27  doAllSeedPlots(iConfig.getParameter<bool>("doSeedParameterHistos")),
28  doTCPlots(iConfig.getParameter<bool>("doTrackCandHistos")),
29  doAllTCPlots(iConfig.getParameter<bool>("doAllTrackCandHistos")),
30  doPT(iConfig.getParameter<bool>("doSeedPTHisto")),
31  doETA(iConfig.getParameter<bool>("doSeedETAHisto")),
32  doPHI(iConfig.getParameter<bool>("doSeedPHIHisto")),
33  doPHIVsETA(iConfig.getParameter<bool>("doSeedPHIVsETAHisto")),
34  doTheta(iConfig.getParameter<bool>("doSeedThetaHisto")),
35  doQ(iConfig.getParameter<bool>("doSeedQHisto")),
36  doDxy(iConfig.getParameter<bool>("doSeedDxyHisto")),
37  doDz(iConfig.getParameter<bool>("doSeedDzHisto")),
38  doNRecHits(iConfig.getParameter<bool>("doSeedNRecHitsHisto")),
39  doProfPHI(iConfig.getParameter<bool>("doSeedNVsPhiProf")),
40  doProfETA(iConfig.getParameter<bool>("doSeedNVsEtaProf")),
41  doStopSource(iConfig.getParameter<bool>("doStopSource")),
42  doMVAPlots(iConfig.getParameter<bool>("doMVAPlots")),
43  doRegionPlots(iConfig.getParameter<bool>("doRegionPlots")),
44  doRegionCandidatePlots(iConfig.getParameter<bool>("doRegionCandidatePlots")) {}
T getParameter(std::string const &) const
TrackBuildingAnalyzer::~TrackBuildingAnalyzer ( )
default

Member Function Documentation

void TrackBuildingAnalyzer::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup,
const TrajectorySeed seed,
const SeedStopInfo stopInfo,
const reco::BeamSpot bs,
const edm::ESHandle< MagneticField > &  theMF,
const edm::ESHandle< TransientTrackingRecHitBuilder > &  theTTRHBuilder 
)

Definition at line 495 of file TrackBuildingAnalyzer.cc.

References SeedStopInfo::candidatesPerSeed(), TrajectoryStateOnSurface::charge(), funct::cos(), doAllSeedPlots, doDxy, doDz, doETA, doNRecHits, doPHI, doPHIVsETA, doProfETA, doProfPHI, doPT, doQ, doStopSource, doTheta, PVValHelper::dxy, PVValHelper::dz, PVValHelper::eta, PV3DBase< T, PVType, FrameType >::eta(), dqm::impl::MonitorElement::Fill(), TrajectoryStateOnSurface::freeState(), TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::globalPosition(), NOT_STOPPED, NumberOfRecHitsPerSeed, NumberOfRecHitsPerSeedVsEtaProfile, NumberOfRecHitsPerSeedVsPhiProfile, numberOfTrajCandsPerSeed, numberOfTrajCandsPerSeedVsEta, numberOfTrajCandsPerSeedVsPhi, AlCaHLTBitMon_ParallelJobs::p, PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::perp2(), phi, PV3DBase< T, PVType, FrameType >::phi(), edm::ESHandle< T >::product(), DiDispStaMuonMonitor_cfi::pt, TrajectorySeed::recHits(), SeedDxy, SeedDz, SeedEta, SeedPhi, SeedPhiVsEta, SeedPt, SeedQ, seedStoppingSource, seedStoppingSourceVsEta, seedStoppingSourceVsNumberOfTrajCandsPerSeed, seedStoppingSourceVsPhi, SeedTheta, funct::sin(), mathSSE::sqrt(), TrajectorySeed::startingState(), SeedStopInfo::stopReason(), SeedStopInfo::stopReasonUC(), PV3DBase< T, PVType, FrameType >::theta(), theta(), trajectoryStateTransform::transientState(), findQualityFiles::v, V0Monitor_cff::v0, PV3DBase< T, PVType, FrameType >::x(), reco::BeamSpot::x0(), PV3DBase< T, PVType, FrameType >::y(), reco::BeamSpot::y0(), PV3DBase< T, PVType, FrameType >::z(), and reco::BeamSpot::z0().

Referenced by TrackingMonitor::analyze().

501  {
502  TSCBLBuilderNoMaterial tscblBuilder;
503 
504  //get parameters and errors from the candidate state
505  auto const& theG = ((TkTransientTrackingRecHitBuilder const*)(theTTRHBuilder.product()))->geometry();
506  auto const& candSS = candidate.startingState();
508  trajectoryStateTransform::transientState(candSS, &(theG->idToDet(candSS.detId())->surface()), theMF.product());
509  TrajectoryStateClosestToBeamLine tsAtClosestApproachSeed =
510  tscblBuilder(*state.freeState(), bs); //as in TrackProducerAlgorithm
511  if (!(tsAtClosestApproachSeed.isValid())) {
512  edm::LogVerbatim("TrackBuilding") << "TrajectoryStateClosestToBeamLine not valid";
513  return;
514  }
515  GlobalPoint v0 = tsAtClosestApproachSeed.trackStateAtPCA().position();
516  GlobalVector p = tsAtClosestApproachSeed.trackStateAtPCA().momentum();
517  GlobalPoint v(v0.x() - bs.x0(), v0.y() - bs.y0(), v0.z() - bs.z0());
518 
519  double pt = sqrt(state.globalMomentum().perp2());
520  double eta = state.globalPosition().eta();
521  double phi = state.globalPosition().phi();
522  double theta = state.globalPosition().theta();
523  //double pm = sqrt(state.globalMomentum().mag2());
524  //double pz = state.globalMomentum().z();
525  //double qoverp = tsAtClosestApproachSeed.trackStateAtPCA().charge()/p.mag();
526  //double theta = p.theta();
527  //double lambda = M_PI/2-p.theta();
528  double numberOfHits = candidate.recHits().second - candidate.recHits().first;
529  double dxy = (-v.x() * sin(p.phi()) + v.y() * cos(p.phi()));
530  double dz = v.z() - (v.x() * p.x() + v.y() * p.y()) / p.perp() * p.z() / p.perp();
531 
532  // fill the ME's
533  if (doAllSeedPlots || doQ)
534  SeedQ->Fill(state.charge());
535  if (doAllSeedPlots || doPT)
536  SeedPt->Fill(pt);
537  if (doAllSeedPlots || doETA)
538  SeedEta->Fill(eta);
539  if (doAllSeedPlots || doPHI)
540  SeedPhi->Fill(phi);
541  if (doAllSeedPlots || doPHIVsETA)
542  SeedPhiVsEta->Fill(eta, phi);
543  if (doAllSeedPlots || doTheta)
544  SeedTheta->Fill(theta);
545  if (doAllSeedPlots || doDxy)
546  SeedDxy->Fill(dxy);
547  if (doAllSeedPlots || doDz)
548  SeedDz->Fill(dz);
549  if (doAllSeedPlots || doNRecHits)
550  NumberOfRecHitsPerSeed->Fill(numberOfHits);
551  if (doAllSeedPlots || doProfETA)
552  NumberOfRecHitsPerSeedVsEtaProfile->Fill(eta, numberOfHits);
553  if (doAllSeedPlots || doProfPHI)
554  NumberOfRecHitsPerSeedVsPhiProfile->Fill(phi, numberOfHits);
555  if (doAllSeedPlots || doStopSource) {
556  const double stopped = stopInfo.stopReason() == SeedStopReason::NOT_STOPPED ? 0. : 1.;
557  seedStoppingSource->Fill(stopInfo.stopReasonUC());
558  seedStoppingSourceVsPhi->Fill(phi, stopped);
559  seedStoppingSourceVsEta->Fill(eta, stopped);
560 
561  const auto ncands = stopInfo.candidatesPerSeed();
563  numberOfTrajCandsPerSeedVsPhi->Fill(phi, ncands);
564  numberOfTrajCandsPerSeedVsEta->Fill(eta, ncands);
565 
567  }
568 }
MonitorElement * seedStoppingSourceVsPhi
double z0() const
z coordinate
Definition: BeamSpot.h:65
MonitorElement * numberOfTrajCandsPerSeed
T perp() const
Definition: PV3DBase.h:69
SeedStopReason stopReason() const
Definition: SeedStopInfo.h:15
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
Geom::Theta< T > theta() const
T y() const
Definition: PV3DBase.h:60
GlobalPoint globalPosition() const
T perp2() const
Definition: PV3DBase.h:68
unsigned short candidatesPerSeed() const
Definition: SeedStopInfo.h:12
Geom::Theta< T > theta() const
Definition: PV3DBase.h:72
void Fill(long long x)
MonitorElement * NumberOfRecHitsPerSeed
MonitorElement * NumberOfRecHitsPerSeedVsPhiProfile
T sqrt(T t)
Definition: SSEVec.h:19
FreeTrajectoryState const * freeState(bool withErrors=true) const
T z() const
Definition: PV3DBase.h:61
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
MonitorElement * numberOfTrajCandsPerSeedVsPhi
unsigned char stopReasonUC() const
Definition: SeedStopInfo.h:16
MonitorElement * numberOfTrajCandsPerSeedVsEta
TrajectoryStateOnSurface transientState(const PTrajectoryStateOnDet &ts, const Surface *surface, const MagneticField *field)
MonitorElement * SeedPhiVsEta
T eta() const
Definition: PV3DBase.h:73
GlobalVector globalMomentum() const
MonitorElement * seedStoppingSourceVsEta
double y0() const
y coordinate
Definition: BeamSpot.h:63
MonitorElement * seedStoppingSourceVsNumberOfTrajCandsPerSeed
MonitorElement * NumberOfRecHitsPerSeedVsEtaProfile
T x() const
Definition: PV3DBase.h:59
T const * product() const
Definition: ESHandle.h:86
MonitorElement * seedStoppingSource
double x0() const
x coordinate
Definition: BeamSpot.h:61
void TrackBuildingAnalyzer::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup,
const TrackCandidate candidate,
const reco::BeamSpot bs,
const edm::ESHandle< MagneticField > &  theMF,
const edm::ESHandle< TransientTrackingRecHitBuilder > &  theTTRHBuilder 
)

Definition at line 572 of file TrackBuildingAnalyzer.cc.

References TrajectoryStateOnSurface::charge(), funct::cos(), doAllTCPlots, doStopSource, doTCPlots, doTheta, PVValHelper::dxy, PVValHelper::dz, PVValHelper::eta, PV3DBase< T, PVType, FrameType >::eta(), dqm::impl::MonitorElement::Fill(), TrajectoryStateOnSurface::freeState(), dqm::impl::MonitorElement::getNbinsX(), TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::globalPosition(), createfilelist::int, SiStripPI::max, NOT_STOPPED, NumberOfRecHitsPerTrackCand, NumberOfRecHitsPerTrackCandVsEtaProfile, NumberOfRecHitsPerTrackCandVsPhiProfile, AlCaHLTBitMon_ParallelJobs::p, PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::perp2(), phi, PV3DBase< T, PVType, FrameType >::phi(), edm::ESHandle< T >::product(), DiDispStaMuonMonitor_cfi::pt, TrackCandidate::recHits(), funct::sin(), mathSSE::sqrt(), stoppingSource, stoppingSourceVSeta, stoppingSourceVSphi, TrackCandidate::stopReason(), PV3DBase< T, PVType, FrameType >::theta(), theta(), TrackCandDxy, TrackCandDz, TrackCandEta, TrackCandPhi, TrackCandPhiVsEta, TrackCandPt, TrackCandQ, TrackCandTheta, TrackCandidate::trajectoryStateOnDet(), trajectoryStateTransform::transientState(), findQualityFiles::v, V0Monitor_cff::v0, PV3DBase< T, PVType, FrameType >::x(), reco::BeamSpot::x0(), PV3DBase< T, PVType, FrameType >::y(), reco::BeamSpot::y0(), PV3DBase< T, PVType, FrameType >::z(), and reco::BeamSpot::z0().

577  {
578  TSCBLBuilderNoMaterial tscblBuilder;
579 
580  //get parameters and errors from the candidate state
581  auto const& theG = ((TkTransientTrackingRecHitBuilder const*)(theTTRHBuilder.product()))->geometry();
582  auto const& candSS = candidate.trajectoryStateOnDet();
584  trajectoryStateTransform::transientState(candSS, &(theG->idToDet(candSS.detId())->surface()), theMF.product());
585  TrajectoryStateClosestToBeamLine tsAtClosestApproachTrackCand =
586  tscblBuilder(*state.freeState(), bs); //as in TrackProducerAlgorithm
587  if (!(tsAtClosestApproachTrackCand.isValid())) {
588  edm::LogVerbatim("TrackBuilding") << "TrajectoryStateClosestToBeamLine not valid";
589  return;
590  }
591  GlobalPoint v0 = tsAtClosestApproachTrackCand.trackStateAtPCA().position();
592  GlobalVector p = tsAtClosestApproachTrackCand.trackStateAtPCA().momentum();
593  GlobalPoint v(v0.x() - bs.x0(), v0.y() - bs.y0(), v0.z() - bs.z0());
594 
595  double pt = sqrt(state.globalMomentum().perp2());
596  double eta = state.globalPosition().eta();
597  double phi = state.globalPosition().phi();
598  double theta = state.globalPosition().theta();
599  //double pm = sqrt(state.globalMomentum().mag2());
600  //double pz = state.globalMomentum().z();
601  //double qoverp = tsAtClosestApproachTrackCand.trackStateAtPCA().charge()/p.mag();
602  //double theta = p.theta();
603  //double lambda = M_PI/2-p.theta();
604  double numberOfHits = candidate.recHits().second - candidate.recHits().first;
605  double dxy = (-v.x() * sin(p.phi()) + v.y() * cos(p.phi()));
606 
607  double dz = v.z() - (v.x() * p.x() + v.y() * p.y()) / p.perp() * p.z() / p.perp();
608 
609  if (doAllTCPlots || doStopSource) {
610  // stopping source
611  int max = stoppingSource->getNbinsX();
612  double stop = candidate.stopReason() > max ? double(max - 1) : static_cast<double>(candidate.stopReason());
613  double stopped = int(StopReason::NOT_STOPPED) == candidate.stopReason() ? 0. : 1.;
614  stoppingSource->Fill(stop);
615  stoppingSourceVSeta->Fill(eta, stopped);
616  stoppingSourceVSphi->Fill(phi, stopped);
617  }
618 
619  if (doTCPlots) {
620  // fill the ME's
621  if (doAllTCPlots)
622  TrackCandQ->Fill(state.charge());
623  TrackCandPt->Fill(pt);
624  TrackCandEta->Fill(eta);
625  TrackCandPhi->Fill(phi);
626  TrackCandPhiVsEta->Fill(eta, phi);
627  if (doTheta)
628  TrackCandTheta->Fill(theta);
629  if (doAllTCPlots)
630  TrackCandDxy->Fill(dxy);
631  if (doAllTCPlots)
632  TrackCandDz->Fill(dz);
633  if (doAllTCPlots)
634  NumberOfRecHitsPerTrackCand->Fill(numberOfHits);
635  if (doAllTCPlots)
636  NumberOfRecHitsPerTrackCandVsEtaProfile->Fill(eta, numberOfHits);
637  if (doAllTCPlots)
638  NumberOfRecHitsPerTrackCandVsPhiProfile->Fill(phi, numberOfHits);
639  }
640 }
MonitorElement * NumberOfRecHitsPerTrackCandVsPhiProfile
double z0() const
z coordinate
Definition: BeamSpot.h:65
T perp() const
Definition: PV3DBase.h:69
range recHits() const
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
Geom::Theta< T > theta() const
T y() const
Definition: PV3DBase.h:60
MonitorElement * stoppingSourceVSphi
GlobalPoint globalPosition() const
T perp2() const
Definition: PV3DBase.h:68
MonitorElement * TrackCandPhiVsEta
Geom::Theta< T > theta() const
Definition: PV3DBase.h:72
MonitorElement * NumberOfRecHitsPerTrackCandVsEtaProfile
void Fill(long long x)
MonitorElement * stoppingSource
PTrajectoryStateOnDet const & trajectoryStateOnDet() const
virtual int getNbinsX() const
get # of bins in X-axis
T sqrt(T t)
Definition: SSEVec.h:19
FreeTrajectoryState const * freeState(bool withErrors=true) const
T z() const
Definition: PV3DBase.h:61
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
MonitorElement * stoppingSourceVSeta
TrajectoryStateOnSurface transientState(const PTrajectoryStateOnDet &ts, const Surface *surface, const MagneticField *field)
MonitorElement * TrackCandTheta
T eta() const
Definition: PV3DBase.h:73
GlobalVector globalMomentum() const
double y0() const
y coordinate
Definition: BeamSpot.h:63
T x() const
Definition: PV3DBase.h:59
T const * product() const
Definition: ESHandle.h:86
MonitorElement * NumberOfRecHitsPerTrackCand
uint8_t stopReason() const
double x0() const
x coordinate
Definition: BeamSpot.h:61
void TrackBuildingAnalyzer::analyze ( const edm::View< reco::Track > &  trackCollection,
const std::vector< const MVACollection * > &  mvaCollections,
const std::vector< const QualityMaskCollection * > &  qualityMaskCollections 
)

Definition at line 645 of file TrackBuildingAnalyzer.cc.

References doAllTCPlots, doMVAPlots, edm::View< T >::empty(), PVValHelper::eta, reco::TrackBase::highPurity, reco::TrackBase::loose, beam_dqm_sourceclient-live_cfg::mva, DiDispStaMuonMonitor_cfi::pt, edm::View< T >::size(), trackMVAs, trackMVAsHP, trackMVAsHPVsEtaProfile, trackMVAsHPVsPtProfile, trackMVAsVsEtaProfile, and trackMVAsVsPtProfile.

647  {
648  if (!(doAllTCPlots || doMVAPlots))
649  return;
650  if (trackCollection.empty())
651  return;
652 
653  const auto ntracks = trackCollection.size();
654  const auto nmva = mvaCollections.size();
655  for (const auto mva : mvaCollections) {
656  if (mva->size() != ntracks) {
657  edm::LogError("LogicError") << "TrackBuildingAnalyzer: Incompatible size of MVACollection, " << mva->size()
658  << " differs from the size of the track collection " << ntracks;
659  return;
660  }
661  }
662  for (const auto qual : qualityMaskCollections) {
663  if (qual->size() != ntracks) {
664  edm::LogError("LogicError") << "TrackBuildingAnalyzer: Incompatible size of QualityMaskCollection, "
665  << qual->size() << " differs from the size of the track collection " << ntracks;
666  return;
667  }
668  }
669 
670  for (size_t iTrack = 0; iTrack < ntracks; ++iTrack) {
671  // Fill MVA1 histos with all tracks, MVA2 histos only with tracks
672  // not selected by MVA1 etc
673  bool selectedLoose = false;
674  bool selectedHP = false;
675 
676  const auto pt = trackCollection[iTrack].pt();
677  const auto eta = trackCollection[iTrack].eta();
678 
679  for (size_t iMVA = 0; iMVA < nmva; ++iMVA) {
680  const auto mva = (*(mvaCollections[iMVA]))[iTrack];
681  if (!selectedLoose) {
682  trackMVAs[iMVA]->Fill(mva);
683  trackMVAsVsPtProfile[iMVA]->Fill(pt, mva);
684  trackMVAsVsEtaProfile[iMVA]->Fill(eta, mva);
685  }
686  if (iMVA >= 1 && !selectedHP) {
687  trackMVAsHP[iMVA]->Fill(mva);
688  trackMVAsHPVsPtProfile[iMVA]->Fill(pt, mva);
689  trackMVAsHPVsEtaProfile[iMVA]->Fill(eta, mva);
690  }
691 
692  const auto qual = (*(qualityMaskCollections)[iMVA])[iTrack];
693  selectedLoose |= trackSelected(qual, reco::TrackBase::loose);
694  selectedHP |= trackSelected(qual, reco::TrackBase::highPurity);
695 
696  if (selectedLoose && selectedHP)
697  break;
698  }
699  }
700 }
std::vector< MonitorElement * > trackMVAsVsPtProfile
size_type size() const
std::vector< MonitorElement * > trackMVAs
bool empty() const
std::vector< MonitorElement * > trackMVAsHP
std::vector< MonitorElement * > trackMVAsVsEtaProfile
std::vector< MonitorElement * > trackMVAsHPVsEtaProfile
std::vector< MonitorElement * > trackMVAsHPVsPtProfile
void TrackBuildingAnalyzer::analyze ( const reco::CandidateView regionCandidates)

Definition at line 702 of file TrackBuildingAnalyzer.cc.

References doAllSeedPlots, doETA, doPHI, doPHIVsETA, doPT, doRegionCandidatePlots, doRegionPlots, PVValHelper::eta, dqm::impl::MonitorElement::Fill(), phi, TrackingRegionCandidateEta, TrackingRegionCandidatePhi, TrackingRegionCandidatePhiVsEta, and TrackingRegionCandidatePt.

702  {
704  return;
705 
706  for (const auto& candidate : regionCandidates) {
707  const auto eta = candidate.eta();
708  const auto phi = candidate.phi();
709  if (doAllSeedPlots || doPT)
710  TrackingRegionCandidatePt->Fill(candidate.pt());
711  if (doAllSeedPlots || doETA)
713  if (doAllSeedPlots || doPHI)
715  if (doAllSeedPlots || doPHIVsETA)
717  }
718 }
MonitorElement * TrackingRegionCandidatePhiVsEta
MonitorElement * TrackingRegionCandidatePt
void Fill(long long x)
MonitorElement * TrackingRegionCandidateEta
MonitorElement * TrackingRegionCandidatePhi
void TrackBuildingAnalyzer::analyze ( const edm::OwnVector< TrackingRegion > &  regions)

Definition at line 720 of file TrackBuildingAnalyzer.cc.

References analyzeRegions().

720 { analyzeRegions(regions); }
void analyzeRegions(const T &regions)
void TrackBuildingAnalyzer::analyze ( const TrackingRegionsSeedingLayerSets regions)
template<typename T >
void TrackBuildingAnalyzer::analyzeRegions ( const T regions)
private

Definition at line 731 of file TrackBuildingAnalyzer.cc.

References doAllSeedPlots, doETA, doPHI, doPHIVsETA, doRegionPlots, PVValHelper::eta, etaBinWidth, ALCARECOTkAlBeamHalo_cff::etaMax, ALCARECOTkAlBeamHalo_cff::etaMin, generateTowerEtThresholdLUT::etaRange, dqm::impl::MonitorElement::Fill(), phi, phiBinWidth, AlignmentTrackSelector_cfi::phiMax, AlignmentTrackSelector_cfi::phiMin, reco::reduceRange(), createJobs::tmp, TrackingRegionEta, TrackingRegionPhi, and TrackingRegionPhiVsEta.

Referenced by analyze().

731  {
732  if (!doRegionPlots && etaBinWidth <= 0. && phiBinWidth <= 0.)
733  return;
734 
735  for (const auto& tmp : regions) {
736  if (const auto* etaPhiRegion = dynamic_cast<const RectangularEtaPhiTrackingRegion*>(regionPtr(tmp))) {
737  const auto& etaRange = etaPhiRegion->etaRange();
738  const auto& phiMargin = etaPhiRegion->phiMargin();
739 
740  const auto etaMin = etaRange.min();
741  const auto etaMax = etaRange.max();
742 
743  const auto phiMin = etaPhiRegion->phiDirection() - phiMargin.left();
744  const auto phiMax = etaPhiRegion->phiDirection() + phiMargin.right();
745 
746  if (doAllSeedPlots || doETA) {
747  for (auto eta = etaMin; eta < etaMax; eta += etaBinWidth) {
749  }
750  }
751  if (doAllSeedPlots || doPHI) {
752  for (auto phi = phiMin; phi < phiMax; phi += phiBinWidth) {
754  }
755  }
756  if (doAllSeedPlots || doPHIVsETA) {
757  for (auto phi = phiMin; phi < phiMax; phi += phiBinWidth) {
758  const auto reducedPhi = reco::reduceRange(phi);
759  for (auto eta = etaMin; eta < etaMax; eta += etaBinWidth) {
760  TrackingRegionPhiVsEta->Fill(eta, reducedPhi);
761  }
762  }
763  }
764  }
765  }
766 }
constexpr T reduceRange(T x)
Definition: deltaPhi.h:18
void Fill(long long x)
MonitorElement * TrackingRegionPhi
MonitorElement * TrackingRegionPhiVsEta
MonitorElement * TrackingRegionEta
tmp
align.sh
Definition: createJobs.py:716
void TrackBuildingAnalyzer::bookHistos ( std::string  sname,
DQMStore::IBooker ibooker 
)
private
void TrackBuildingAnalyzer::fillHistos ( const edm::EventSetup iSetup,
const reco::Track track,
std::string  sname 
)
private
void TrackBuildingAnalyzer::initHisto ( DQMStore::IBooker ibooker,
const edm::ParameterSet iConfig 
)

Definition at line 46 of file TrackBuildingAnalyzer.cc.

References HLTSiStripMonitoring_cff::AlgoName, dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), dqm::dqmstoreimpl::DQMStore::IBooker::book2D(), dqm::dqmstoreimpl::DQMStore::IBooker::bookProfile(), doAllSeedPlots, doAllTCPlots, doDxy, doDz, doETA, doMVAPlots, doNRecHits, doPHI, doPHIVsETA, doProfETA, doProfPHI, doPT, doQ, doRegionCandidatePlots, doRegionPlots, doStopSource, doTCPlots, doTheta, end, MonitorTrackInnerTrackMuons_cff::EtaBin, etaBinWidth, MonitorTrackInnerTrackMuons_cff::EtaMax, MonitorTrackInnerTrackMuons_cff::EtaMin, edm::ParameterSet::getParameter(), histname, mps_fire::i, TrackingMonitor_cfi::MVABin, TrackingMonitor_cfi::MVAMax, TrackingMonitor_cfi::MVAMin, EgammaValidation_cff::num, NumberOfRecHitsPerSeed, NumberOfRecHitsPerSeedVsEtaProfile, NumberOfRecHitsPerSeedVsPhiProfile, NumberOfRecHitsPerTrackCand, NumberOfRecHitsPerTrackCandVsEtaProfile, NumberOfRecHitsPerTrackCandVsPhiProfile, numberOfTrajCandsPerSeed, numberOfTrajCandsPerSeedVsEta, numberOfTrajCandsPerSeedVsPhi, MonitorTrackSTAMuons_cfi::PhiBin, phiBinWidth, MonitorTrackSTAMuons_cfi::PhiMax, MonitorTrackSTAMuons_cfi::PhiMin, muonRecoAnalyzer_cfi::ptBin, AlignmentTrackSelector_cfi::ptMax, ptMin, SeedDxy, MonitorTrackSTAMuons_cfi::SeedDxyBin, MonitorTrackSTAMuons_cfi::SeedDxyMax, MonitorTrackSTAMuons_cfi::SeedDxyMin, SeedDz, MonitorTrackSTAMuons_cfi::SeedDzBin, MonitorTrackSTAMuons_cfi::SeedDzMax, MonitorTrackSTAMuons_cfi::SeedDzMin, SeedEta, MonitorTrackSTAMuons_cfi::SeedHitBin, MonitorTrackSTAMuons_cfi::SeedHitMax, MonitorTrackSTAMuons_cfi::SeedHitMin, SeedPhi, SeedPhiVsEta, SeedPt, SeedQ, seedStoppingSource, seedStoppingSourceVsEta, seedStoppingSourceVsNumberOfTrajCandsPerSeed, seedStoppingSourceVsPhi, SeedStopReasonName::SeedStopReasonName, SeedTheta, dqm::impl::MonitorElement::setAxisTitle(), dqm::impl::MonitorElement::setBinLabel(), dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), SIZE, stoppingSource, stoppingSourceVSeta, stoppingSourceVSphi, StopReasonName::StopReasonName, AlCaHLTBitMon_QueryRunRegistry::string, MonitorTrackSTAMuons_cfi::TCDxyBin, MonitorTrackSTAMuons_cfi::TCDxyMax, MonitorTrackSTAMuons_cfi::TCDxyMin, MonitorTrackSTAMuons_cfi::TCDzBin, MonitorTrackSTAMuons_cfi::TCDzMax, MonitorTrackSTAMuons_cfi::TCDzMin, MonitorTrackSTAMuons_cfi::TCHitBin, MonitorTrackSTAMuons_cfi::TCHitMax, MonitorTrackSTAMuons_cfi::TCHitMin, MonitorTrackSTAMuons_cfi::ThetaBin, MonitorTrackSTAMuons_cfi::ThetaMax, MonitorTrackSTAMuons_cfi::ThetaMin, TrackCandDxy, TrackCandDz, TrackCandEta, TrackCandPhi, TrackCandPhiVsEta, TrackCandPt, TrackCandQ, TrackCandTheta, TrackingRegionCandidateEta, TrackingRegionCandidatePhi, TrackingRegionCandidatePhiVsEta, TrackingRegionCandidatePt, TrackingRegionEta, TrackingRegionPhi, TrackingRegionPhiVsEta, trackMVAs, trackMVAsHP, trackMVAsHPVsEtaProfile, trackMVAsHPVsPtProfile, trackMVAsVsEtaProfile, trackMVAsVsPtProfile, beam_dqm_sourceclient-live_cfg::TrackPtBin, beam_dqm_sourceclient-live_cfg::TrackPtMax, beam_dqm_sourceclient-live_cfg::TrackPtMin, MonitorTrackSTAMuons_cfi::TrackQBin, MonitorTrackSTAMuons_cfi::TrackQMax, and MonitorTrackSTAMuons_cfi::TrackQMin.

Referenced by TrackingMonitor::bookHistograms().

46  {
47  // parameters from the configuration
48  std::string AlgoName = iConfig.getParameter<std::string>("AlgoName");
49  std::string MEFolderName = iConfig.getParameter<std::string>("FolderName");
50 
51  // std::cout << "[TrackBuildingAnalyzer::beginRun] AlgoName: " << AlgoName << std::endl;
52 
53  // use the AlgoName and Quality Name
54  const std::string& CatagoryName = AlgoName;
55 
56  // get binning from the configuration
57  int TrackPtBin = iConfig.getParameter<int>("TrackPtBin");
58  double TrackPtMin = iConfig.getParameter<double>("TrackPtMin");
59  double TrackPtMax = iConfig.getParameter<double>("TrackPtMax");
60 
61  int PhiBin = iConfig.getParameter<int>("PhiBin");
62  double PhiMin = iConfig.getParameter<double>("PhiMin");
63  double PhiMax = iConfig.getParameter<double>("PhiMax");
64  phiBinWidth = PhiBin > 0 ? (PhiMax - PhiMin) / PhiBin : 0.;
65 
66  int EtaBin = iConfig.getParameter<int>("EtaBin");
67  double EtaMin = iConfig.getParameter<double>("EtaMin");
68  double EtaMax = iConfig.getParameter<double>("EtaMax");
69  etaBinWidth = EtaBin > 0 ? (EtaMax - EtaMin) / EtaBin : 0.;
70 
71  int ThetaBin = iConfig.getParameter<int>("ThetaBin");
72  double ThetaMin = iConfig.getParameter<double>("ThetaMin");
73  double ThetaMax = iConfig.getParameter<double>("ThetaMax");
74 
75  int TrackQBin = iConfig.getParameter<int>("TrackQBin");
76  double TrackQMin = iConfig.getParameter<double>("TrackQMin");
77  double TrackQMax = iConfig.getParameter<double>("TrackQMax");
78 
79  int SeedDxyBin = iConfig.getParameter<int>("SeedDxyBin");
80  double SeedDxyMin = iConfig.getParameter<double>("SeedDxyMin");
81  double SeedDxyMax = iConfig.getParameter<double>("SeedDxyMax");
82 
83  int SeedDzBin = iConfig.getParameter<int>("SeedDzBin");
84  double SeedDzMin = iConfig.getParameter<double>("SeedDzMin");
85  double SeedDzMax = iConfig.getParameter<double>("SeedDzMax");
86 
87  int SeedHitBin = iConfig.getParameter<int>("SeedHitBin");
88  double SeedHitMin = iConfig.getParameter<double>("SeedHitMin");
89  double SeedHitMax = iConfig.getParameter<double>("SeedHitMax");
90 
91  int TCDxyBin = iConfig.getParameter<int>("TCDxyBin");
92  double TCDxyMin = iConfig.getParameter<double>("TCDxyMin");
93  double TCDxyMax = iConfig.getParameter<double>("TCDxyMax");
94 
95  int TCDzBin = iConfig.getParameter<int>("TCDzBin");
96  double TCDzMin = iConfig.getParameter<double>("TCDzMin");
97  double TCDzMax = iConfig.getParameter<double>("TCDzMax");
98 
99  int TCHitBin = iConfig.getParameter<int>("TCHitBin");
100  double TCHitMin = iConfig.getParameter<double>("TCHitMin");
101  double TCHitMax = iConfig.getParameter<double>("TCHitMax");
102 
103  int MVABin = iConfig.getParameter<int>("MVABin");
104  double MVAMin = iConfig.getParameter<double>("MVAMin");
105  double MVAMax = iConfig.getParameter<double>("MVAMax");
106 
107  edm::InputTag seedProducer = iConfig.getParameter<edm::InputTag>("SeedProducer");
108  edm::InputTag tcProducer = iConfig.getParameter<edm::InputTag>("TCProducer");
109  std::vector<std::string> mvaProducers = iConfig.getParameter<std::vector<std::string> >("MVAProducers");
110  edm::InputTag regionProducer = iConfig.getParameter<edm::InputTag>("RegionProducer");
111 
112  // if (doAllPlots){doAllSeedPlots=true; doTCPlots=true;}
113 
114  ibooker.setCurrentFolder(MEFolderName);
115 
116  // book the Seed histograms
117  // ---------------------------------------------------------------------------------//
118  // std::cout << "[TrackBuildingAnalyzer::beginRun] MEFolderName: " << MEFolderName << std::endl;
119  ibooker.setCurrentFolder(MEFolderName + "/TrackBuilding");
120 
121  if (doAllSeedPlots || doPT) {
122  histname = "SeedPt_" + seedProducer.label() + "_";
123  SeedPt = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, TrackPtBin, TrackPtMin, TrackPtMax);
124  SeedPt->setAxisTitle("Seed p_{T} (GeV/c)", 1);
125  SeedPt->setAxisTitle("Number of Seeds", 2);
126  }
127 
128  if (doAllSeedPlots || doETA) {
129  histname = "SeedEta_" + seedProducer.label() + "_";
130  SeedEta = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, EtaBin, EtaMin, EtaMax);
131  SeedEta->setAxisTitle("Seed #eta", 1);
132  SeedEta->setAxisTitle("Number of Seeds", 2);
133  }
134 
135  if (doAllSeedPlots || doPHI) {
136  histname = "SeedPhi_" + seedProducer.label() + "_";
137  SeedPhi = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, PhiBin, PhiMin, PhiMax);
138  SeedPhi->setAxisTitle("Seed #phi", 1);
139  SeedPhi->setAxisTitle("Number of Seed", 2);
140  }
141 
142  if (doAllSeedPlots || doPHIVsETA) {
143  histname = "SeedPhiVsEta_" + seedProducer.label() + "_";
144  SeedPhiVsEta = ibooker.book2D(
145  histname + CatagoryName, histname + CatagoryName, EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax);
146  SeedPhiVsEta->setAxisTitle("Seed #eta", 1);
147  SeedPhiVsEta->setAxisTitle("Seed #phi", 2);
148  }
149 
150  if (doAllSeedPlots || doTheta) {
151  histname = "SeedTheta_" + seedProducer.label() + "_";
152  SeedTheta = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, ThetaBin, ThetaMin, ThetaMax);
153  SeedTheta->setAxisTitle("Seed #theta", 1);
154  SeedTheta->setAxisTitle("Number of Seeds", 2);
155  }
156 
157  if (doAllSeedPlots || doQ) {
158  histname = "SeedQ_" + seedProducer.label() + "_";
159  SeedQ = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, TrackQBin, TrackQMin, TrackQMax);
160  SeedQ->setAxisTitle("Seed Charge", 1);
161  SeedQ->setAxisTitle("Number of Seeds", 2);
162  }
163 
164  if (doAllSeedPlots || doDxy) {
165  histname = "SeedDxy_" + seedProducer.label() + "_";
166  SeedDxy = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, SeedDxyBin, SeedDxyMin, SeedDxyMax);
167  SeedDxy->setAxisTitle("Seed d_{xy} (cm)", 1);
168  SeedDxy->setAxisTitle("Number of Seeds", 2);
169  }
170 
171  if (doAllSeedPlots || doDz) {
172  histname = "SeedDz_" + seedProducer.label() + "_";
173  SeedDz = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, SeedDzBin, SeedDzMin, SeedDzMax);
174  SeedDz->setAxisTitle("Seed d_{z} (cm)", 1);
175  SeedDz->setAxisTitle("Number of Seeds", 2);
176  }
177 
178  if (doAllSeedPlots || doNRecHits) {
179  histname = "NumberOfRecHitsPerSeed_" + seedProducer.label() + "_";
181  ibooker.book1D(histname + CatagoryName, histname + CatagoryName, SeedHitBin, SeedHitMin, SeedHitMax);
182  NumberOfRecHitsPerSeed->setAxisTitle("Number of RecHits per Seed", 1);
183  NumberOfRecHitsPerSeed->setAxisTitle("Number of Seeds", 2);
184  }
185 
186  if (doAllSeedPlots || doProfPHI) {
187  histname = "NumberOfRecHitsPerSeedVsPhiProfile_" + seedProducer.label() + "_";
188  NumberOfRecHitsPerSeedVsPhiProfile = ibooker.bookProfile(histname + CatagoryName,
189  histname + CatagoryName,
190  PhiBin,
191  PhiMin,
192  PhiMax,
193  SeedHitBin,
194  SeedHitMin,
195  SeedHitMax,
196  "s");
198  NumberOfRecHitsPerSeedVsPhiProfile->setAxisTitle("Number of RecHits of each Seed", 2);
199  }
200 
201  if (doAllSeedPlots || doProfETA) {
202  histname = "NumberOfRecHitsPerSeedVsEtaProfile_" + seedProducer.label() + "_";
203  NumberOfRecHitsPerSeedVsEtaProfile = ibooker.bookProfile(histname + CatagoryName,
204  histname + CatagoryName,
205  EtaBin,
206  EtaMin,
207  EtaMax,
208  SeedHitBin,
209  SeedHitMin,
210  SeedHitMax,
211  "s");
213  NumberOfRecHitsPerSeedVsEtaProfile->setAxisTitle("Number of RecHits of each Seed", 2);
214  }
215 
216  if (doRegionPlots) {
217  if (doAllSeedPlots || doETA) {
218  histname = "TrackingRegionEta_" + seedProducer.label() + "_";
219  TrackingRegionEta = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, EtaBin, EtaMin, EtaMax);
220  TrackingRegionEta->setAxisTitle("TrackingRegion-covered #eta", 1);
221  TrackingRegionEta->setAxisTitle("Number of TrackingRegions", 2);
222  }
223 
224  if (doAllSeedPlots || doPHI) {
225  histname = "TrackingRegionPhi_" + seedProducer.label() + "_";
226  TrackingRegionPhi = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, PhiBin, PhiMin, PhiMax);
227  TrackingRegionPhi->setAxisTitle("TrackingRegion-covered #phi", 1);
228  TrackingRegionPhi->setAxisTitle("Number of TrackingRegions", 2);
229  }
230 
231  if (doAllSeedPlots || doPHIVsETA) {
232  histname = "TrackingRegionPhiVsEta_" + seedProducer.label() + "_";
233  TrackingRegionPhiVsEta = ibooker.book2D(
234  histname + CatagoryName, histname + CatagoryName, EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax);
235  TrackingRegionPhiVsEta->setAxisTitle("TrackingRegion-covered #eta", 1);
236  TrackingRegionPhiVsEta->setAxisTitle("TrackingRegion-covered #phi", 2);
237  }
238 
240  if (doAllSeedPlots || doPT) {
241  auto ptBin = iConfig.getParameter<int>("RegionCandidatePtBin");
242  auto ptMin = iConfig.getParameter<double>("RegionCandidatePtMin");
243  auto ptMax = iConfig.getParameter<double>("RegionCandidatePtMax");
244 
245  histname = "TrackingRegionCandidatePt_" + seedProducer.label() + "_";
247  ibooker.book1D(histname + CatagoryName, histname + CatagoryName, ptBin, ptMin, ptMax);
248  TrackingRegionCandidatePt->setAxisTitle("TrackingRegion Candidate p_{T} (GeV/c)", 1);
249  TrackingRegionCandidatePt->setAxisTitle("Number of TrackingRegion Candidates", 2);
250  }
251 
252  if (doAllSeedPlots || doETA) {
253  histname = "TrackingRegionCandidateEta_" + seedProducer.label() + "_";
255  ibooker.book1D(histname + CatagoryName, histname + CatagoryName, EtaBin, EtaMin, EtaMax);
256  TrackingRegionCandidateEta->setAxisTitle("TrackingRegion Candidate #eta", 1);
257  TrackingRegionCandidateEta->setAxisTitle("Number of TrackingRegion Candidates", 2);
258  }
259 
260  if (doAllSeedPlots || doPHI) {
261  histname = "TrackingRegionCandidatePhi_" + seedProducer.label() + "_";
263  ibooker.book1D(histname + CatagoryName, histname + CatagoryName, PhiBin, PhiMin, PhiMax);
264  TrackingRegionCandidatePhi->setAxisTitle("TrackingRegion Candidate #phi", 1);
265  TrackingRegionCandidatePhi->setAxisTitle("Number of TrackingRegion Candidates", 2);
266  }
267 
268  if (doAllSeedPlots || doPHIVsETA) {
269  histname = "TrackingRegionCandidatePhiVsEta_" + seedProducer.label() + "_";
270  TrackingRegionCandidatePhiVsEta = ibooker.book2D(
271  histname + CatagoryName, histname + CatagoryName, EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax);
272  TrackingRegionCandidatePhiVsEta->setAxisTitle("TrackingRegion Candidate #eta", 1);
273  TrackingRegionCandidatePhiVsEta->setAxisTitle("TrackingRegion Candidate #phi", 2);
274  }
275  }
276  }
277 
278  if (doAllSeedPlots || doStopSource) {
279  const auto stopReasonSize = static_cast<unsigned int>(SeedStopReason::SIZE);
280 
281  const auto candsBin = iConfig.getParameter<int>("SeedCandBin");
282  const auto candsMin = iConfig.getParameter<double>("SeedCandMin");
283  const auto candsMax = iConfig.getParameter<double>("SeedCandMax");
284 
285  histname = "SeedStoppingSource_" + seedProducer.label() + "_";
287  ibooker.book1D(histname + CatagoryName, histname + CatagoryName, stopReasonSize, 0., stopReasonSize);
288  seedStoppingSource->setAxisTitle("Stopping reason", 1);
289  seedStoppingSource->setAxisTitle("Number of seeds", 2);
290 
291  histname = "SeedStoppingSourceVsPhi_" + seedProducer.label() + "_";
293  ibooker.bookProfile(histname + CatagoryName, histname + CatagoryName, PhiBin, PhiMin, PhiMax, 2, 0., 2.);
294  seedStoppingSourceVsPhi->setAxisTitle("seed #phi", 1);
295  seedStoppingSourceVsPhi->setAxisTitle("fraction stopped", 2);
296 
297  histname = "SeedStoppingSourceVsEta_" + seedProducer.label() + "_";
299  ibooker.bookProfile(histname + CatagoryName, histname + CatagoryName, EtaBin, EtaMin, EtaMax, 2, 0., 2.);
300  seedStoppingSourceVsEta->setAxisTitle("seed #eta", 1);
301  seedStoppingSourceVsEta->setAxisTitle("fraction stopped", 2);
302 
303  histname = "NumberOfTrajCandsPerSeed_" + seedProducer.label() + "_";
305  ibooker.book1D(histname + CatagoryName, histname + CatagoryName, candsBin, candsMin, candsMax);
306  numberOfTrajCandsPerSeed->setAxisTitle("Number of Trajectory Candidate for each Seed", 1);
307  numberOfTrajCandsPerSeed->setAxisTitle("Number of Seeds", 2);
308 
309  histname = "NumberOfTrajCandsPerSeedVsPhi_" + seedProducer.label() + "_";
310  numberOfTrajCandsPerSeedVsPhi = ibooker.bookProfile(
311  histname + CatagoryName, histname + CatagoryName, PhiBin, PhiMin, PhiMax, candsBin, candsMin, candsMax);
313  numberOfTrajCandsPerSeedVsPhi->setAxisTitle("Number of Trajectory Candidates for each Seed", 2);
314 
315  histname = "NumberOfTrajCandsPerSeedVsEta_" + seedProducer.label() + "_";
316  numberOfTrajCandsPerSeedVsEta = ibooker.bookProfile(
317  histname + CatagoryName, histname + CatagoryName, EtaBin, EtaMin, EtaMax, candsBin, candsMin, candsMax);
319  numberOfTrajCandsPerSeedVsEta->setAxisTitle("Number of Trajectory Candidates for each Seed", 2);
320 
321  histname = "SeedStoppingSourceVsNumberOfTrajCandsPerSeed_" + seedProducer.label() + "_";
323  ibooker.bookProfile(histname + CatagoryName, histname + CatagoryName, candsBin, candsMin, candsMax, 2, 0., 2.);
324  seedStoppingSourceVsNumberOfTrajCandsPerSeed->setAxisTitle("Number of Trajectory Candidates for each Seed", 1);
326 
327  for (unsigned int i = 0; i < stopReasonSize; ++i) {
329  }
330  }
331 
332  if (doAllTCPlots || doStopSource) {
333  // DataFormats/TrackReco/interface/TrajectoryStopReasons.h
334  size_t StopReasonNameSize = sizeof(StopReasonName::StopReasonName) / sizeof(std::string);
335 
336  histname = "StoppingSource_" + seedProducer.label() + "_";
337  stoppingSource = ibooker.book1D(
338  histname + CatagoryName, histname + CatagoryName, StopReasonNameSize, 0., double(StopReasonNameSize));
339  stoppingSource->setAxisTitle("stopping reason", 1);
340  stoppingSource->setAxisTitle("Number of Tracks", 2);
341 
342  histname = "StoppingSourceVSeta_" + seedProducer.label() + "_";
344  ibooker.bookProfile(histname + CatagoryName, histname + CatagoryName, EtaBin, EtaMin, EtaMax, 2, 0., 2.);
345  stoppingSourceVSeta->setAxisTitle("track #eta", 1);
346  stoppingSourceVSeta->setAxisTitle("fraction stopped", 2);
347 
348  histname = "StoppingSourceVSphi_" + seedProducer.label() + "_";
350  ibooker.bookProfile(histname + CatagoryName, histname + CatagoryName, PhiBin, PhiMin, PhiMax, 2, 0., 2.);
351  stoppingSourceVSphi->setAxisTitle("track #phi", 1);
352  stoppingSourceVSphi->setAxisTitle("fraction stopped", 2);
353 
354  for (size_t ibin = 0; ibin < StopReasonNameSize; ibin++) {
356  }
357  }
358 
359  // book the TrackCandidate histograms
360  // ---------------------------------------------------------------------------------//
361 
362  if (doTCPlots) {
363  ibooker.setCurrentFolder(MEFolderName + "/TrackBuilding");
364 
365  histname = "TrackCandPt_" + tcProducer.label() + "_";
366  TrackCandPt = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, TrackPtBin, TrackPtMin, TrackPtMax);
367  TrackCandPt->setAxisTitle("Track Candidate p_{T} (GeV/c)", 1);
368  TrackCandPt->setAxisTitle("Number of Track Candidates", 2);
369 
370  histname = "TrackCandEta_" + tcProducer.label() + "_";
371  TrackCandEta = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, EtaBin, EtaMin, EtaMax);
372  TrackCandEta->setAxisTitle("Track Candidate #eta", 1);
373  TrackCandEta->setAxisTitle("Number of Track Candidates", 2);
374 
375  histname = "TrackCandPhi_" + tcProducer.label() + "_";
376  TrackCandPhi = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, PhiBin, PhiMin, PhiMax);
377  TrackCandPhi->setAxisTitle("Track Candidate #phi", 1);
378  TrackCandPhi->setAxisTitle("Number of Track Candidates", 2);
379 
380  if (doTheta) {
381  histname = "TrackCandTheta_" + tcProducer.label() + "_";
382  TrackCandTheta = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, ThetaBin, ThetaMin, ThetaMax);
383  TrackCandTheta->setAxisTitle("Track Candidate #theta", 1);
384  TrackCandTheta->setAxisTitle("Number of Track Candidates", 2);
385  }
386 
387  if (doAllTCPlots) {
388  histname = "TrackCandQ_" + tcProducer.label() + "_";
389  TrackCandQ = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, TrackQBin, TrackQMin, TrackQMax);
390  TrackCandQ->setAxisTitle("Track Candidate Charge", 1);
391  TrackCandQ->setAxisTitle("Number of Track Candidates", 2);
392 
393  histname = "TrackCandDxy_" + tcProducer.label() + "_";
394  TrackCandDxy = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, TCDxyBin, TCDxyMin, TCDxyMax);
395  TrackCandDxy->setAxisTitle("Track Candidate d_{xy} (cm)", 1);
396  TrackCandDxy->setAxisTitle("Number of Track Candidates", 2);
397 
398  histname = "TrackCandDz_" + tcProducer.label() + "_";
399  TrackCandDz = ibooker.book1D(histname + CatagoryName, histname + CatagoryName, TCDzBin, TCDzMin, TCDzMax);
400  TrackCandDz->setAxisTitle("Track Candidate d_{z} (cm)", 1);
401  TrackCandDz->setAxisTitle("Number of Track Candidates", 2);
402 
403  histname = "NumberOfRecHitsPerTrackCand_" + tcProducer.label() + "_";
405  ibooker.book1D(histname + CatagoryName, histname + CatagoryName, TCHitBin, TCHitMin, TCHitMax);
406  NumberOfRecHitsPerTrackCand->setAxisTitle("Number of RecHits per Track Candidate", 1);
407  NumberOfRecHitsPerTrackCand->setAxisTitle("Number of Track Candidates", 2);
408 
409  histname = "NumberOfRecHitsPerTrackCandVsPhiProfile_" + tcProducer.label() + "_";
410  NumberOfRecHitsPerTrackCandVsPhiProfile = ibooker.bookProfile(
411  histname + CatagoryName, histname + CatagoryName, PhiBin, PhiMin, PhiMax, TCHitBin, TCHitMin, TCHitMax, "s");
412  NumberOfRecHitsPerTrackCandVsPhiProfile->setAxisTitle("Track Candidate #phi", 1);
413  NumberOfRecHitsPerTrackCandVsPhiProfile->setAxisTitle("Number of RecHits of each Track Candidate", 2);
414 
415  histname = "NumberOfRecHitsPerTrackCandVsEtaProfile_" + tcProducer.label() + "_";
416  NumberOfRecHitsPerTrackCandVsEtaProfile = ibooker.bookProfile(
417  histname + CatagoryName, histname + CatagoryName, EtaBin, EtaMin, EtaMax, TCHitBin, TCHitMin, TCHitMax, "s");
418  NumberOfRecHitsPerTrackCandVsEtaProfile->setAxisTitle("Track Candidate #eta", 1);
419  NumberOfRecHitsPerTrackCandVsEtaProfile->setAxisTitle("Number of RecHits of each Track Candidate", 2);
420  }
421 
422  histname = "TrackCandPhiVsEta_" + tcProducer.label() + "_";
423  TrackCandPhiVsEta = ibooker.book2D(
424  histname + CatagoryName, histname + CatagoryName, EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax);
425  TrackCandPhiVsEta->setAxisTitle("Track Candidate #eta", 1);
426  TrackCandPhiVsEta->setAxisTitle("Track Candidate #phi", 2);
427 
428  if (doAllTCPlots || doMVAPlots) {
429  for (size_t i = 1, end = mvaProducers.size(); i <= end; ++i) {
430  auto num = std::to_string(i);
431  std::string pfix;
432 
433  if (i == 1) {
434  trackMVAsHP.push_back(nullptr);
435  trackMVAsHPVsPtProfile.push_back(nullptr);
436  trackMVAsHPVsEtaProfile.push_back(nullptr);
437  } else {
438  pfix = " (not loose-selected)";
439  std::string pfix2 = " (not HP-selected)";
440  histname = "TrackMVA" + num + "HP_" + tcProducer.label() + "_";
441  trackMVAsHP.push_back(
442  ibooker.book1D(histname + CatagoryName, histname + CatagoryName + pfix2, MVABin, MVAMin, MVAMax));
443  trackMVAsHP.back()->setAxisTitle("Track selection MVA" + num, 1);
444  trackMVAsHP.back()->setAxisTitle("Number of tracks", 2);
445 
446  histname = "TrackMVA" + num + "HPVsPtProfile_" + tcProducer.label() + "_";
447  trackMVAsHPVsPtProfile.push_back(ibooker.bookProfile(histname + CatagoryName,
448  histname + CatagoryName + pfix2,
449  TrackPtBin,
450  TrackPtMin,
451  TrackPtMax,
452  MVABin,
453  MVAMin,
454  MVAMax));
455  trackMVAsHPVsPtProfile.back()->setAxisTitle("Track p_{T} (GeV/c)", 1);
456  trackMVAsHPVsPtProfile.back()->setAxisTitle("Track selection MVA" + num, 2);
457 
458  histname = "TrackMVA" + num + "HPVsEtaProfile_" + tcProducer.label() + "_";
459  trackMVAsHPVsEtaProfile.push_back(ibooker.bookProfile(
460  histname + CatagoryName, histname + CatagoryName + pfix2, EtaBin, EtaMin, EtaMax, MVABin, MVAMin, MVAMax));
461  trackMVAsHPVsEtaProfile.back()->setAxisTitle("Track #eta", 1);
462  trackMVAsHPVsEtaProfile.back()->setAxisTitle("Track selection MVA" + num, 2);
463  }
464 
465  histname = "TrackMVA" + num + "_" + tcProducer.label() + "_";
466  trackMVAs.push_back(
467  ibooker.book1D(histname + CatagoryName, histname + CatagoryName + pfix, MVABin, MVAMin, MVAMax));
468  trackMVAs.back()->setAxisTitle("Track selection MVA" + num, 1);
469  trackMVAs.back()->setAxisTitle("Number of tracks", 2);
470 
471  histname = "TrackMVA" + num + "VsPtProfile_" + tcProducer.label() + "_";
472  trackMVAsVsPtProfile.push_back(ibooker.bookProfile(histname + CatagoryName,
473  histname + CatagoryName + pfix,
474  TrackPtBin,
475  TrackPtMin,
476  TrackPtMax,
477  MVABin,
478  MVAMin,
479  MVAMax));
480  trackMVAsVsPtProfile.back()->setAxisTitle("Track p_{T} (GeV/c)", 1);
481  trackMVAsVsPtProfile.back()->setAxisTitle("Track selection MVA" + num, 2);
482 
483  histname = "TrackMVA" + num + "VsEtaProfile_" + tcProducer.label() + "_";
484  trackMVAsVsEtaProfile.push_back(ibooker.bookProfile(
485  histname + CatagoryName, histname + CatagoryName + pfix, EtaBin, EtaMin, EtaMax, MVABin, MVAMin, MVAMax));
486  trackMVAsVsEtaProfile.back()->setAxisTitle("Track #eta", 1);
487  trackMVAsVsEtaProfile.back()->setAxisTitle("Track selection MVA" + num, 2);
488  }
489  }
490  }
491 }
MonitorElement * NumberOfRecHitsPerTrackCandVsPhiProfile
T getParameter(std::string const &) const
MonitorElement * seedStoppingSourceVsPhi
MonitorElement * numberOfTrajCandsPerSeed
MonitorElement * TrackingRegionCandidatePhiVsEta
std::vector< MonitorElement * > trackMVAsVsPtProfile
MonitorElement * stoppingSourceVSphi
static const std::string StopReasonName[]
std::vector< MonitorElement * > trackMVAs
MonitorElement * TrackCandPhiVsEta
MonitorElement * TrackingRegionCandidatePt
static const std::string SeedStopReasonName[]
MonitorElement * NumberOfRecHitsPerTrackCandVsEtaProfile
MonitorElement * stoppingSource
MonitorElement * NumberOfRecHitsPerSeed
MonitorElement * NumberOfRecHitsPerSeedVsPhiProfile
std::vector< MonitorElement * > trackMVAsHP
#define end
Definition: vmac.h:39
MonitorElement * numberOfTrajCandsPerSeedVsPhi
MonitorElement * TrackingRegionPhi
std::vector< MonitorElement * > trackMVAsVsEtaProfile
MonitorElement * numberOfTrajCandsPerSeedVsEta
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 * > trackMVAsHPVsEtaProfile
MonitorElement * TrackingRegionPhiVsEta
MonitorElement * stoppingSourceVSeta
MonitorElement * TrackingRegionEta
std::vector< MonitorElement * > trackMVAsHPVsPtProfile
MonitorElement * TrackCandTheta
MonitorElement * SeedPhiVsEta
MonitorElement * TrackingRegionCandidateEta
MonitorElement * seedStoppingSourceVsEta
MonitorElement * TrackingRegionCandidatePhi
MonitorElement * seedStoppingSourceVsNumberOfTrajCandsPerSeed
MonitorElement * NumberOfRecHitsPerSeedVsEtaProfile
MonitorElement * NumberOfRecHitsPerTrackCand
MonitorElement * seedStoppingSource
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)

Member Data Documentation

const bool TrackBuildingAnalyzer::doAllPlots
private

Definition at line 137 of file TrackBuildingAnalyzer.h.

const bool TrackBuildingAnalyzer::doAllSeedPlots
private

Definition at line 138 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), analyzeRegions(), and initHisto().

const bool TrackBuildingAnalyzer::doAllTCPlots
private

Definition at line 140 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

const bool TrackBuildingAnalyzer::doDxy
private

Definition at line 147 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

const bool TrackBuildingAnalyzer::doDz
private

Definition at line 148 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

const bool TrackBuildingAnalyzer::doETA
private

Definition at line 142 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), analyzeRegions(), and initHisto().

const bool TrackBuildingAnalyzer::doMVAPlots
private

Definition at line 153 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

const bool TrackBuildingAnalyzer::doNRecHits
private

Definition at line 149 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

const bool TrackBuildingAnalyzer::doPHI
private

Definition at line 143 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), analyzeRegions(), and initHisto().

const bool TrackBuildingAnalyzer::doPHIVsETA
private

Definition at line 144 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), analyzeRegions(), and initHisto().

const bool TrackBuildingAnalyzer::doProfETA
private

Definition at line 151 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

const bool TrackBuildingAnalyzer::doProfPHI
private

Definition at line 150 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

const bool TrackBuildingAnalyzer::doPT
private

Definition at line 141 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

const bool TrackBuildingAnalyzer::doQ
private

Definition at line 146 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

const bool TrackBuildingAnalyzer::doRegionCandidatePlots
private

Definition at line 155 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

const bool TrackBuildingAnalyzer::doRegionPlots
private

Definition at line 154 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), analyzeRegions(), and initHisto().

const bool TrackBuildingAnalyzer::doStopSource
private

Definition at line 152 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

const bool TrackBuildingAnalyzer::doTCPlots
private

Definition at line 139 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

const bool TrackBuildingAnalyzer::doTheta
private

Definition at line 145 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

double TrackBuildingAnalyzer::etaBinWidth = 0.
private

Definition at line 79 of file TrackBuildingAnalyzer.h.

Referenced by analyzeRegions(), and initHisto().

std::string TrackBuildingAnalyzer::histname
private

Definition at line 134 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

MonitorElement* TrackBuildingAnalyzer::NumberOfRecHitsPerSeed = 0
private

Definition at line 96 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::NumberOfRecHitsPerSeedVsEtaProfile = 0
private

Definition at line 98 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::NumberOfRecHitsPerSeedVsPhiProfile = 0
private

Definition at line 97 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::NumberOfRecHitsPerTrackCand = 0
private

Definition at line 119 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::NumberOfRecHitsPerTrackCandVsEtaProfile = 0
private

Definition at line 121 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::NumberOfRecHitsPerTrackCandVsPhiProfile = 0
private

Definition at line 120 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::numberOfTrajCandsPerSeed = 0
private

Definition at line 104 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::numberOfTrajCandsPerSeedVsEta = 0
private

Definition at line 106 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::numberOfTrajCandsPerSeedVsPhi = 0
private

Definition at line 105 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

double TrackBuildingAnalyzer::phiBinWidth = 0.
private

Definition at line 80 of file TrackBuildingAnalyzer.h.

Referenced by analyzeRegions(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::SeedDxy = 0
private

Definition at line 94 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::SeedDz = 0
private

Definition at line 95 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::SeedEta = 0
private

Definition at line 89 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::SeedPhi = 0
private

Definition at line 90 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::SeedPhiVsEta = 0
private

Definition at line 91 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::SeedPt = 0
private

Definition at line 88 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::SeedQ = 0
private

Definition at line 93 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::seedStoppingSource = 0
private

Definition at line 100 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::seedStoppingSourceVsEta = 0
private

Definition at line 102 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::seedStoppingSourceVsNumberOfTrajCandsPerSeed = 0
private

Definition at line 108 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::seedStoppingSourceVsPhi = 0
private

Definition at line 101 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::SeedTheta = 0
private

Definition at line 92 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::stoppingSource = 0
private

Definition at line 123 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::stoppingSourceVSeta = 0
private

Definition at line 124 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::stoppingSourceVSphi = 0
private

Definition at line 125 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::TrackCandDxy = 0
private

Definition at line 117 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::TrackCandDz = 0
private

Definition at line 118 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::TrackCandEta = 0
private

Definition at line 112 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::TrackCandPhi = 0
private

Definition at line 113 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::TrackCandPhiVsEta = 0
private

Definition at line 114 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::TrackCandPt = 0
private

Definition at line 111 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::TrackCandQ = 0
private

Definition at line 116 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::TrackCandTheta = 0
private

Definition at line 115 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::TrackingRegionCandidateEta = 0
private

Definition at line 83 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::TrackingRegionCandidatePhi = 0
private

Definition at line 84 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::TrackingRegionCandidatePhiVsEta = 0
private

Definition at line 85 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::TrackingRegionCandidatePt = 0
private

Definition at line 82 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::TrackingRegionEta = 0
private

Definition at line 76 of file TrackBuildingAnalyzer.h.

Referenced by analyzeRegions(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::TrackingRegionPhi = 0
private

Definition at line 77 of file TrackBuildingAnalyzer.h.

Referenced by analyzeRegions(), and initHisto().

MonitorElement* TrackBuildingAnalyzer::TrackingRegionPhiVsEta = 0
private

Definition at line 78 of file TrackBuildingAnalyzer.h.

Referenced by analyzeRegions(), and initHisto().

std::vector<MonitorElement*> TrackBuildingAnalyzer::trackMVAs
private

Definition at line 127 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

std::vector<MonitorElement*> TrackBuildingAnalyzer::trackMVAsHP
private

Definition at line 128 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

std::vector<MonitorElement*> TrackBuildingAnalyzer::trackMVAsHPVsEtaProfile
private

Definition at line 132 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

std::vector<MonitorElement*> TrackBuildingAnalyzer::trackMVAsHPVsPtProfile
private

Definition at line 130 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

std::vector<MonitorElement*> TrackBuildingAnalyzer::trackMVAsVsEtaProfile
private

Definition at line 131 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().

std::vector<MonitorElement*> TrackBuildingAnalyzer::trackMVAsVsPtProfile
private

Definition at line 129 of file TrackBuildingAnalyzer.h.

Referenced by analyze(), and initHisto().