CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes
tadqm::TrackAnalyzer Class Reference

#include <TrackAnalyzer.h>

Classes

struct  Key
 
struct  KeyHasher
 
struct  TkParameterMEs
 
struct  TkRecHitsPerSubDetMEs
 

Public Types

typedef dqm::legacy::DQMStore DQMStore
 
typedef dqm::legacy::MonitorElement MonitorElement
 

Public Member Functions

void analyze (const edm::Event &iEvent, const edm::EventSetup &iSetup, const reco::Track &track)
 
void initHisto (DQMStore::IBooker &ibooker, const edm::EventSetup &, const edm::ParameterSet &)
 
void setBX (const edm::Event &)
 
void setLumi (const edm::Event &, const edm::EventSetup &iSetup)
 
void setNumberOfGoodVertices (const edm::Event &)
 
 TrackAnalyzer (const edm::ParameterSet &)
 
 TrackAnalyzer (const edm::ParameterSet &, edm::ConsumesCollector &iC)
 
 ~TrackAnalyzer ()
 

Private Types

enum  monQuantity {
  VsPU, VsBX, VsPIXELLUMI, VsOnlineLUMI,
  END
}
 

Private Member Functions

void bookHistosForBeamSpot (DQMStore::IBooker &ibooker)
 
void bookHistosForEfficiencyFromHitPatter (DQMStore::IBooker &ibooker, const edm::EventSetup &iSetup, const std::string suffix, bool useInac)
 
void bookHistosForHitProperties (DQMStore::IBooker &ibooker)
 
void bookHistosForLScertification (DQMStore::IBooker &ibooker)
 
void bookHistosForState (std::string sname, DQMStore::IBooker &ibooker)
 
void bookHistosForTrackerSpecific (DQMStore::IBooker &ibooker)
 
void fillHistosForEfficiencyFromHitPatter (const reco::Track &track, const std::string suffix, const float monitoring, bool useInac)
 
void fillHistosForHitProperties (const edm::EventSetup &iSetup, const reco::Track &track, std::string sname)
 
void fillHistosForLScertification (const edm::EventSetup &iSetup, const reco::Track &track, std::string sname)
 
void fillHistosForState (const edm::EventSetup &iSetup, const reco::Track &track, std::string sname)
 
void fillHistosForTrackerSpecific (const reco::Track &track)
 
void initHistos ()
 

Private Attributes

MonitorElementAbsDistanceOfClosestApproachToBS
 
MonitorElementalgorithm
 
edm::EDGetTokenT< reco::BeamSpotbeamSpotToken_
 
unsigned int bx_
 
MonitorElementChi2
 
MonitorElementChi2oNDF
 
MonitorElementChi2oNDF_lumiFlag
 
MonitorElementChi2oNDFVsEta = nullptr
 
MonitorElementChi2oNDFVsNHits = nullptr
 
MonitorElementChi2oNDFVsPhi
 
MonitorElementChi2oNDFVsPt = nullptr
 
MonitorElementChi2oNDFVsTheta
 
MonitorElementChi2Prob
 
MonitorElementChi2ProbVsEta
 
MonitorElementChi2ProbVsPhi
 
MonitorElementChi2ProbVsTheta
 
edm::ParameterSet const * conf_
 
MonitorElementDeltaZToPV
 
MonitorElementDeltaZToPVZoom
 
MonitorElementDistanceOfClosestApproach
 
MonitorElementDistanceOfClosestApproachError
 
MonitorElementDistanceOfClosestApproachErrorVsDxy
 
MonitorElementDistanceOfClosestApproachErrorVsEta
 
MonitorElementDistanceOfClosestApproachErrorVsPhi
 
MonitorElementDistanceOfClosestApproachErrorVsPt
 
MonitorElementDistanceOfClosestApproachToBS
 
MonitorElementDistanceOfClosestApproachToBSdz
 
MonitorElementDistanceOfClosestApproachToBSVsEta
 
MonitorElementDistanceOfClosestApproachToBSVsPhi
 
MonitorElementDistanceOfClosestApproachToPV
 
MonitorElementDistanceOfClosestApproachToPVVsPhi
 
MonitorElementDistanceOfClosestApproachToPVZoom
 
MonitorElementDistanceOfClosestApproachVsEta
 
MonitorElementDistanceOfClosestApproachVsPhi
 
MonitorElementDistanceOfClosestApproachVsTheta
 
MonitorElementdNdEta_HighPurity
 
MonitorElementdNdPhi_HighPurity
 
MonitorElementdNdPt_HighPurity
 
MonitorElementdNhitdPt_HighPurity
 
bool doAllPlots_
 
bool doBSPlots_
 
bool doDCAPlots_
 
bool doDCAwrt000Plots_
 
bool doDCAwrtPVPlots_
 
bool doEffFromHitPatternVsBX_
 
bool doEffFromHitPatternVsLUMI_
 
bool doEffFromHitPatternVsPU_
 
bool doGeneralPropertiesPlots_
 
bool doHIPlots_
 
bool doHitPropertiesPlots_
 
bool doLayersVsPhiVsEtaPerTrack_
 
bool doLumiAnalysis_
 
bool doMeasurementStatePlots_
 
bool doPVPlots_
 
bool doRecHitsPerTrackProfile_
 
bool doRecHitVsPhiVsEtaPerTrack_
 
bool doRecHitVsPtVsEtaPerTrack_
 
bool doSIPPlots_
 
bool doTestPlots_
 
bool doThetaPlots_
 
bool doTrack2DChi2Plots_
 
bool doTrackerSpecific_
 
bool doTrackLayersVsPhiVsEtaPerTrack_
 
bool doTrackPxPyPlots_
 
bool doTrackRecHitVsPhiVsEtaPerTrack_
 
bool doTrackRecHitVsPtVsEtaPerTrack_
 
const bool forceSCAL_
 
unsigned int good_vertices_
 
std::string histname
 
std::unordered_map< Key, MonitorElement *, KeyHasherhits_bad_
 
std::unordered_map< Key, MonitorElement *, KeyHasherhits_inactive_
 
std::unordered_map< Key, MonitorElement *, KeyHasherhits_missing_
 
std::unordered_map< Key, MonitorElement *, KeyHasherhits_total_
 
std::unordered_map< Key, MonitorElement *, KeyHasherhits_valid_
 
MonitorElementLongDCASig
 
float lumi_factor_per_bx_
 
edm::EDGetTokenT< LumiScalersCollectionlumiscalersToken_
 
edm::EDGetTokenT< OnlineLuminosityRecordmetaDataToken_
 
int minNumberOfPixelsPerCluster_
 
float minPixelClusterCharge_
 
std::string monName [monQuantity::END] = {"", "VsBX", "VsPIXELLUMI", "VsOnlineLUMI"}
 
MonitorElementNhitVsEta_HighPurity
 
MonitorElementNhitVsPhi_HighPurity
 
MonitorElementNumberOfLayersPerTrack [4] = {nullptr, nullptr, nullptr, nullptr}
 
MonitorElementNumberOfLayersPerTrackVsEta
 
MonitorElementNumberOfLayersPerTrackVsPhi
 
MonitorElementNumberOfLayersPerTrackVsTheta
 
MonitorElementNumberOfLayersVsPhiVsEtaPerTrack [5] = {nullptr, nullptr, nullptr, nullptr, nullptr}
 
MonitorElementNumberOfLostRecHitsPerTrack
 
MonitorElementNumberOfLostRecHitsPerTrackVsEta = nullptr
 
MonitorElementNumberOfLostRecHitsPerTrackVsPhi = nullptr
 
MonitorElementNumberOfLostRecHitsPerTrackVsPt = nullptr
 
MonitorElementNumberOfLostRecHitsPerTrackVsTheta = nullptr
 
MonitorElementNumberOfLostRecHitVsPhiVsEtaPerTrack = nullptr
 
MonitorElementNumberOfLostRecHitVsPtVsEtaPerTrack = nullptr
 
MonitorElementNumberOfMIRecHitsPerTrack = nullptr
 
MonitorElementNumberOfMIRecHitsPerTrackVsEta = nullptr
 
MonitorElementNumberOfMIRecHitsPerTrackVsPhi = nullptr
 
MonitorElementNumberOfMIRecHitsPerTrackVsPt = nullptr
 
MonitorElementNumberOfMIRecHitsPerTrackVsTheta = nullptr
 
MonitorElementNumberOfMIRecHitVsPhiVsEtaPerTrack = nullptr
 
MonitorElementNumberOfMIRecHitVsPtVsEtaPerTrack = nullptr
 
MonitorElementNumberOfMORecHitsPerTrack = nullptr
 
MonitorElementNumberOfMORecHitsPerTrackVsEta = nullptr
 
MonitorElementNumberOfMORecHitsPerTrackVsPhi = nullptr
 
MonitorElementNumberOfMORecHitsPerTrackVsPt = nullptr
 
MonitorElementNumberOfMORecHitsPerTrackVsTheta = nullptr
 
MonitorElementNumberOfMORecHitVsPhiVsEtaPerTrack = nullptr
 
MonitorElementNumberOfMORecHitVsPtVsEtaPerTrack = nullptr
 
MonitorElementNumberOfRecHitsPerTrack
 
MonitorElementNumberOfRecHitsPerTrack_lumiFlag
 
MonitorElementNumberOfRecHitsPerTrackVsEta = nullptr
 
MonitorElementNumberOfRecHitsPerTrackVsPhi = nullptr
 
MonitorElementNumberOfRecHitsPerTrackVsTheta = nullptr
 
MonitorElementNumberOfRecHitVsPhiVsEtaPerTrack = nullptr
 
MonitorElementNumberOfValidRecHitsPerTrack
 
MonitorElementNumberOfValidRecHitsPerTrackVsEta = nullptr
 
MonitorElementNumberOfValidRecHitsPerTrackVsPhi = nullptr
 
MonitorElementNumberOfValidRecHitsPerTrackVsPt = nullptr
 
MonitorElementNumberOfValidRecHitsPerTrackVsTheta = nullptr
 
MonitorElementNumberOfValidRecHitVsPhiVsEtaPerTrack = nullptr
 
MonitorElementNumberOfValidRecHitVsPtVsEtaPerTrack = nullptr
 
float online_lumi_
 
MonitorElementoriAlgo
 
float pixel_lumi_
 
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClustersToken_
 
MonitorElementPtdist_HighPurity
 
int pvNDOF_
 
edm::EDGetTokenT< reco::VertexCollectionpvToken_
 
std::string qualityString_
 
MonitorElementsip2dToPV
 
MonitorElementsip3dToPV
 
MonitorElementsipDxyToBS
 
MonitorElementsipDxyToPV
 
MonitorElementsipDzToBS
 
MonitorElementsipDzToPV
 
std::string stateName_
 
MonitorElementstoppingSource
 
MonitorElementstoppingSourceVSeta
 
MonitorElementstoppingSourceVSphi
 
MonitorElementTESTDistanceOfClosestApproachToBS
 
MonitorElementTESTDistanceOfClosestApproachToBSVsPhi
 
std::map< std::string, TkParameterMEsTkParameterMEMap
 
std::map< std::string, TkRecHitsPerSubDetMEsTkRecHitsPerSubDetMEMap
 
std::string TopFolder_
 
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecordtrackerGeometryToken_
 
edm::ESGetToken< TrackerTopology, TrackerTopologyRcdtrackerTopologyToken_
 
MonitorElementTransDCASig
 
edm::ESGetToken< TransientTrackBuilder, TransientTrackRecordtransientTrackBuilderToken_
 
bool useBPixLayer1_
 
MonitorElementValidFractionPerTrack = nullptr
 
MonitorElementValidFractionVsPhiVsEtaPerTrack = nullptr
 
MonitorElementxPointOfClosestApproach
 
MonitorElementxPointOfClosestApproachToPV
 
MonitorElementxPointOfClosestApproachVsZ0wrt000
 
MonitorElementxPointOfClosestApproachVsZ0wrtBS
 
MonitorElementxPointOfClosestApproachVsZ0wrtPV
 
MonitorElementyPointOfClosestApproach
 
MonitorElementyPointOfClosestApproachToPV
 
MonitorElementyPointOfClosestApproachVsZ0wrt000
 
MonitorElementyPointOfClosestApproachVsZ0wrtBS
 
MonitorElementyPointOfClosestApproachVsZ0wrtPV
 
MonitorElementzPointOfClosestApproach
 
MonitorElementzPointOfClosestApproachToPV
 
MonitorElementzPointOfClosestApproachVsPhi
 

Detailed Description

Definition at line 39 of file TrackAnalyzer.h.

Member Typedef Documentation

◆ DQMStore

Definition at line 41 of file TrackAnalyzer.h.

◆ MonitorElement

Definition at line 42 of file TrackAnalyzer.h.

Member Enumeration Documentation

◆ monQuantity

Constructor & Destructor Documentation

◆ TrackAnalyzer() [1/2]

TrackAnalyzer::TrackAnalyzer ( const edm::ParameterSet iConfig)

Definition at line 40 of file TrackAnalyzer.cc.

References edm::ParameterSet::getParameter(), initHistos(), AlCaHLTBitMon_QueryRunRegistry::string, and TopFolder_.

41  : conf_(nullptr),
42  stateName_(iConfig.getParameter<std::string>("MeasurementState")),
43  doTrackerSpecific_(iConfig.getParameter<bool>("doTrackerSpecific")),
44  doAllPlots_(iConfig.getParameter<bool>("doAllPlots")),
45  doBSPlots_(iConfig.getParameter<bool>("doBeamSpotPlots")),
46  doPVPlots_(iConfig.getParameter<bool>("doPrimaryVertexPlots")),
47  doDCAPlots_(iConfig.getParameter<bool>("doDCAPlots")),
48  doGeneralPropertiesPlots_(iConfig.getParameter<bool>("doGeneralPropertiesPlots")),
49  doMeasurementStatePlots_(iConfig.getParameter<bool>("doMeasurementStatePlots")),
50  doHitPropertiesPlots_(iConfig.getParameter<bool>("doHitPropertiesPlots")),
51  doRecHitVsPhiVsEtaPerTrack_(iConfig.getParameter<bool>("doRecHitVsPhiVsEtaPerTrack")),
52  doRecHitVsPtVsEtaPerTrack_(iConfig.getParameter<bool>("doRecHitVsPtVsEtaPerTrack")),
53  doLayersVsPhiVsEtaPerTrack_(iConfig.getParameter<bool>("doLayersVsPhiVsEtaPerTrack")),
54  doRecHitsPerTrackProfile_(iConfig.getParameter<bool>("doRecHitsPerTrackProfile")),
55  doThetaPlots_(iConfig.getParameter<bool>("doThetaPlots")),
56  doTrackPxPyPlots_(iConfig.getParameter<bool>("doTrackPxPyPlots")),
57  doDCAwrtPVPlots_(iConfig.getParameter<bool>("doDCAwrtPVPlots")),
58  doDCAwrt000Plots_(iConfig.getParameter<bool>("doDCAwrt000Plots")),
59  doLumiAnalysis_(iConfig.getParameter<bool>("doLumiAnalysis")),
60  doTestPlots_(iConfig.getParameter<bool>("doTestPlots")),
61  doHIPlots_(iConfig.getParameter<bool>("doHIPlots")),
62  doSIPPlots_(iConfig.getParameter<bool>("doSIPPlots")),
63  doEffFromHitPatternVsPU_(iConfig.getParameter<bool>("doEffFromHitPatternVsPU")),
64  doEffFromHitPatternVsBX_(iConfig.getParameter<bool>("doEffFromHitPatternVsBX")),
65  doEffFromHitPatternVsLUMI_(iConfig.getParameter<bool>("doEffFromHitPatternVsLUMI")),
66  pvNDOF_(iConfig.getParameter<int>("pvNDOF")),
67  forceSCAL_(iConfig.getParameter<bool>("forceSCAL")),
68  useBPixLayer1_(iConfig.getParameter<bool>("useBPixLayer1")),
69  minNumberOfPixelsPerCluster_(iConfig.getParameter<int>("minNumberOfPixelsPerCluster")),
70  minPixelClusterCharge_(iConfig.getParameter<double>("minPixelClusterCharge")),
71  qualityString_(iConfig.getParameter<std::string>("qualityString")),
72  good_vertices_(0),
73  bx_(0),
74  pixel_lumi_(0.),
75  online_lumi_(0.) {
76  initHistos();
77  TopFolder_ = iConfig.getParameter<std::string>("FolderName");
78 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
std::string qualityString_
unsigned int good_vertices_
std::string stateName_
Definition: TrackAnalyzer.h:96
edm::ParameterSet const * conf_
Definition: TrackAnalyzer.h:94
std::string TopFolder_
Definition: TrackAnalyzer.h:81

◆ TrackAnalyzer() [2/2]

TrackAnalyzer::TrackAnalyzer ( const edm::ParameterSet iConfig,
edm::ConsumesCollector iC 
)

Definition at line 80 of file TrackAnalyzer.cc.

References beamSpotToken_, edm::BeginRun, edm::ConsumesCollector::consumes(), doAllPlots_, doEffFromHitPatternVsBX_, doEffFromHitPatternVsLUMI_, doEffFromHitPatternVsPU_, doMeasurementStatePlots_, doSIPPlots_, edm::ConsumesCollector::esConsumes(), GetLumi::FREQ_ORBIT, edm::ParameterSet::getParameter(), lumi_factor_per_bx_, lumiscalersToken_, edm::ConsumesCollector::mayConsume(), metaDataToken_, pixelClustersToken_, pvToken_, GetLumi::rXSEC_PIXEL_CLUSTER, GetLumi::SECONDS_PER_LS, stateName_, trackerGeometryToken_, trackerTopologyToken_, transientTrackBuilderToken_, useBPixLayer1_, and GetLumi::XSEC_PIXEL_CLUSTER.

80  : TrackAnalyzer(iConfig) {
81  edm::InputTag bsSrc = iConfig.getParameter<edm::InputTag>("beamSpot");
82  edm::InputTag primaryVertexInputTag = iConfig.getParameter<edm::InputTag>("primaryVertex");
83  edm::InputTag pixelClusterInputTag = iConfig.getParameter<edm::InputTag>("pixelCluster4lumi");
84  edm::InputTag scalInputTag = iConfig.getParameter<edm::InputTag>("scal");
85  edm::InputTag metaDataInputTag = iConfig.getParameter<edm::InputTag>("metadata");
87  pvToken_ = iC.consumes<reco::VertexCollection>(primaryVertexInputTag);
90  metaDataToken_ = iC.mayConsume<OnlineLuminosityRecord>(metaDataInputTag);
91 
94  }
96  if (doSIPPlots_ ||
97  ((doMeasurementStatePlots_ || doAllPlots_) && (stateName_ == "All" || stateName_ == "OuterSurface" ||
98  stateName_ == "InnerSurface" || stateName_ == "ImpactPoint"))) {
100  iC.esConsumes<TransientTrackBuilder, TransientTrackRecord>(edm::ESInputTag("", "TransientTrackBuilder"));
101  }
102 
103  if (useBPixLayer1_)
105  else
107 }
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
EDGetTokenT< ProductType > mayConsume(edm::InputTag const &tag)
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClustersToken_
Definition: TrackAnalyzer.h:85
Class to contain the online luminosity from soft FED 1022.
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
TrackAnalyzer(const edm::ParameterSet &)
static constexpr double FREQ_ORBIT
Definition: GetLumi.h:23
edm::EDGetTokenT< OnlineLuminosityRecord > metaDataToken_
Definition: TrackAnalyzer.h:87
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > trackerGeometryToken_
Definition: TrackAnalyzer.h:88
edm::EDGetTokenT< LumiScalersCollection > lumiscalersToken_
Definition: TrackAnalyzer.h:86
static constexpr double SECONDS_PER_LS
Definition: GetLumi.h:24
std::string stateName_
Definition: TrackAnalyzer.h:96
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
Definition: TrackAnalyzer.h:83
edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > transientTrackBuilderToken_
Definition: TrackAnalyzer.h:90
edm::EDGetTokenT< reco::VertexCollection > pvToken_
Definition: TrackAnalyzer.h:84
static constexpr double rXSEC_PIXEL_CLUSTER
Definition: GetLumi.h:37
std::vector< LumiScalers > LumiScalersCollection
Definition: LumiScalers.h:144
static constexpr double XSEC_PIXEL_CLUSTER
Definition: GetLumi.h:33
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > trackerTopologyToken_
Definition: TrackAnalyzer.h:89

◆ ~TrackAnalyzer()

TrackAnalyzer::~TrackAnalyzer ( )

Definition at line 192 of file TrackAnalyzer.cc.

192 {}

Member Function Documentation

◆ analyze()

void TrackAnalyzer::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup,
const reco::Track track 
)

Definition at line 1168 of file TrackAnalyzer.cc.

References funct::abs(), AbsDistanceOfClosestApproachToBS, algorithm, beamSpotToken_, cms::cuda::bs, TransientTrackBuilder::build(), bx_, nano_mu_local_reco_cff::chi2, Chi2oNDF, Chi2oNDF_lumiFlag, Chi2Prob, DeltaZToPV, DeltaZToPVZoom, DeadROC_duringRun::dir, DistanceOfClosestApproach, DistanceOfClosestApproachError, DistanceOfClosestApproachErrorVsDxy, DistanceOfClosestApproachErrorVsEta, DistanceOfClosestApproachErrorVsPhi, DistanceOfClosestApproachErrorVsPt, DistanceOfClosestApproachToBS, DistanceOfClosestApproachToBSdz, DistanceOfClosestApproachToBSVsEta, DistanceOfClosestApproachToBSVsPhi, DistanceOfClosestApproachToPV, DistanceOfClosestApproachToPVVsPhi, DistanceOfClosestApproachToPVZoom, DistanceOfClosestApproachVsEta, DistanceOfClosestApproachVsPhi, DistanceOfClosestApproachVsTheta, dNdEta_HighPurity, dNdPhi_HighPurity, dNdPt_HighPurity, dNhitdPt_HighPurity, doAllPlots_, doBSPlots_, doDCAPlots_, doDCAwrt000Plots_, doEffFromHitPatternVsBX_, doEffFromHitPatternVsLUMI_, doEffFromHitPatternVsPU_, doGeneralPropertiesPlots_, doHIPlots_, doHitPropertiesPlots_, doLayersVsPhiVsEtaPerTrack_, doLumiAnalysis_, doMeasurementStatePlots_, doPVPlots_, doRecHitVsPhiVsEtaPerTrack_, doRecHitVsPtVsEtaPerTrack_, doSIPPlots_, doTestPlots_, doThetaPlots_, doTrackerSpecific_, dqm::impl::MonitorElement::Fill(), HcalObjRepresent::Fill(), fillHistosForEfficiencyFromHitPatter(), fillHistosForState(), fillHistosForTrackerSpecific(), edm::EventSetup::getData(), dqm::impl::MonitorElement::getNbinsX(), good_vertices_, mps_fire::i, iEvent, createfilelist::int, electrons_cff::ip3d, edm::HandleBase::isValid(), LongDCASig, SiStripPI::max, reco::HitPattern::MISSING_INNER_HITS, reco::HitPattern::MISSING_OUTER_HITS, NhitVsEta_HighPurity, NhitVsPhi_HighPurity, MuonTCMETValueMapProducer_cff::nLayers, NOT_STOPPED, NumberOfLayersPerTrack, NumberOfLayersVsPhiVsEtaPerTrack, NumberOfLostRecHitsPerTrack, NumberOfLostRecHitsPerTrackVsPt, NumberOfLostRecHitVsPhiVsEtaPerTrack, NumberOfLostRecHitVsPtVsEtaPerTrack, NumberOfMIRecHitsPerTrack, NumberOfMIRecHitsPerTrackVsPt, NumberOfMIRecHitVsPhiVsEtaPerTrack, NumberOfMIRecHitVsPtVsEtaPerTrack, NumberOfMORecHitsPerTrack, NumberOfMORecHitsPerTrackVsPt, NumberOfMORecHitVsPhiVsEtaPerTrack, NumberOfMORecHitVsPtVsEtaPerTrack, NumberOfRecHitsPerTrack, NumberOfRecHitsPerTrack_lumiFlag, NumberOfValidRecHitsPerTrack, NumberOfValidRecHitsPerTrackVsPt, NumberOfValidRecHitVsPhiVsEtaPerTrack, NumberOfValidRecHitVsPtVsEtaPerTrack, online_lumi_, oriAlgo, DiDispStaMuonMonitor_cfi::pt, Ptdist_HighPurity, pvToken_, reco::TrackBase::qualityByName(), qualityString_, IPTools::signedImpactParameter3D(), IPTools::signedTransverseImpactParameter(), sip2dToPV, sip3dToPV, sipDxyToBS, sipDxyToPV, sipDzToBS, sipDzToPV, stateName_, stoppingSource, stoppingSourceVSeta, stoppingSourceVSphi, AlCaHLTBitMon_QueryRunRegistry::string, TESTDistanceOfClosestApproachToBS, TESTDistanceOfClosestApproachToBSVsPhi, TopFolder_, HLT_2024v13_cff::track, reco::HitPattern::TRACK_HITS, TransDCASig, transientTrackBuilderToken_, ValidFractionPerTrack, ValidFractionVsPhiVsEtaPerTrack, x, xPointOfClosestApproach, xPointOfClosestApproachToPV, xPointOfClosestApproachVsZ0wrt000, xPointOfClosestApproachVsZ0wrtBS, xPointOfClosestApproachVsZ0wrtPV, yPointOfClosestApproach, yPointOfClosestApproachToPV, yPointOfClosestApproachVsZ0wrt000, yPointOfClosestApproachVsZ0wrtBS, yPointOfClosestApproachVsZ0wrtPV, zPointOfClosestApproach, zPointOfClosestApproachToPV, and zPointOfClosestApproachVsPhi.

Referenced by TrackingMonitor::analyze().

1168  {
1169  auto pt = track.pt();
1170  auto phi = track.phi();
1171  // double eta = track.eta();
1172  auto phiIn = track.innerPosition().phi();
1173  auto etaIn = track.innerPosition().eta();
1174  auto phiOut = track.outerPosition().phi();
1175  auto etaOut = track.outerPosition().eta();
1176 
1177  int nRecHits = track.hitPattern().numberOfAllHits(reco::HitPattern::TRACK_HITS);
1178  int nValidRecHits = track.numberOfValidHits();
1179  int nLostRecHits = track.numberOfLostHits();
1180  int nLostIn = track.hitPattern().numberOfLostTrackerHits(reco::HitPattern::MISSING_INNER_HITS);
1181  int nLostOut = track.hitPattern().numberOfLostTrackerHits(reco::HitPattern::MISSING_OUTER_HITS);
1182 
1183  auto chi2 = track.chi2();
1184  auto chi2prob = TMath::Prob(track.chi2(), (int)track.ndof());
1185  auto chi2oNDF = track.normalizedChi2();
1186 
1187  std::string Folder = TopFolder_.substr(0, 2);
1188 
1190  // rec hits
1191  NumberOfRecHitsPerTrack->Fill(nRecHits);
1192  NumberOfValidRecHitsPerTrack->Fill(nValidRecHits);
1193  NumberOfLostRecHitsPerTrack->Fill(nLostRecHits);
1194  NumberOfMIRecHitsPerTrack->Fill(nLostIn);
1195  NumberOfMORecHitsPerTrack->Fill(nLostOut);
1196  ValidFractionPerTrack->Fill(track.validFraction());
1197 
1198  // 2D plots
1200  NumberOfValidRecHitVsPhiVsEtaPerTrack->Fill(etaIn, phiIn, nValidRecHits);
1201  NumberOfLostRecHitVsPhiVsEtaPerTrack->Fill(etaIn, phiIn, nLostRecHits);
1202  NumberOfMIRecHitVsPhiVsEtaPerTrack->Fill(etaIn, phiIn, nLostIn);
1203  NumberOfMORecHitVsPhiVsEtaPerTrack->Fill(etaOut, phiOut, nLostOut);
1204  ValidFractionVsPhiVsEtaPerTrack->Fill(etaIn, phiIn, track.validFraction());
1205  }
1207  NumberOfValidRecHitVsPtVsEtaPerTrack->Fill(etaIn, pt, nValidRecHits);
1208  NumberOfLostRecHitVsPtVsEtaPerTrack->Fill(etaIn, pt, nLostRecHits);
1209  NumberOfMIRecHitVsPtVsEtaPerTrack->Fill(etaIn, pt, nLostIn);
1210  NumberOfMORecHitVsPtVsEtaPerTrack->Fill(etaOut, pt, nLostOut);
1211  }
1212  NumberOfValidRecHitsPerTrackVsPt->Fill(pt, nValidRecHits);
1213  NumberOfLostRecHitsPerTrackVsPt->Fill(pt, nLostRecHits);
1216 
1217  int nLayers[5] = {track.hitPattern().trackerLayersWithMeasurement(),
1218  track.hitPattern().trackerLayersTotallyOffOrBad(),
1219  track.hitPattern().numberOfValidStripLayersWithMonoAndStereo() +
1220  track.hitPattern().pixelLayersWithMeasurement(),
1221  track.hitPattern().trackerLayersWithoutMeasurement(reco::HitPattern::TRACK_HITS),
1222  track.hitPattern().pixelLayersWithMeasurement()};
1223 
1224  // layers
1225  for (int i = 0; i < 4; ++i)
1227 
1228  // 2D plots
1230  for (int i = 0; i < 5; ++i)
1231  NumberOfLayersVsPhiVsEtaPerTrack[i]->Fill(etaIn, phiIn, nLayers[i]);
1232  }
1233 
1237  fillHistosForEfficiencyFromHitPatter(track, "VsBX", float(bx_), false);
1239  fillHistosForEfficiencyFromHitPatter(track, "VsOnlineLUMI", online_lumi_, false);
1240  // if (doEffFromHitPatternVsLUMI_ || doAllPlots_) fillHistosForEfficiencyFromHitPatter(track,"VsPIXELLUMI", pixel_lumi_ );
1245 
1247  // fitting
1248  Chi2->Fill(chi2);
1249  Chi2Prob->Fill(chi2prob);
1250  Chi2oNDF->Fill(chi2oNDF);
1251 
1252  // DCA
1253  // temporary patch in order to put back those MEs in Muon Workspace
1254  if (doDCAPlots_) {
1255  if (doDCAwrt000Plots_) {
1258  }
1259 
1260  // PCA
1261  xPointOfClosestApproach->Fill(track.referencePoint().x());
1262  yPointOfClosestApproach->Fill(track.referencePoint().y());
1263  zPointOfClosestApproach->Fill(track.referencePoint().z());
1264  }
1265 
1266  // algorithm
1267  algorithm->Fill(static_cast<double>(track.algo()));
1268  oriAlgo->Fill(static_cast<double>(track.originalAlgo()));
1269 
1270  // stopping source
1271  int max = stoppingSource->getNbinsX();
1272  double stop = track.stopReason() > max ? double(max - 1) : static_cast<double>(track.stopReason());
1273  double stopped = int(StopReason::NOT_STOPPED) == track.stopReason() ? 0. : 1.;
1274  stoppingSource->Fill(stop);
1275  stoppingSourceVSeta->Fill(track.eta(), stopped);
1276  stoppingSourceVSphi->Fill(track.phi(), stopped);
1277  }
1278 
1279  if (doLumiAnalysis_) {
1281  Chi2oNDF_lumiFlag->Fill(chi2oNDF);
1282  }
1283 
1285  edm::Handle<reco::BeamSpot> recoBeamSpotHandle = iEvent.getHandle(beamSpotToken_);
1286  const reco::BeamSpot& bs = *recoBeamSpotHandle;
1287 
1292  DistanceOfClosestApproachErrorVsDxy->Fill(track.dxy(bs.position()), track.dxyError());
1293 
1294  DistanceOfClosestApproachToBS->Fill(track.dxy(bs.position()));
1295 
1296  if (Folder == "Tr") {
1297  DistanceOfClosestApproachToBSdz->Fill(track.dz(bs.position()));
1298  DistanceOfClosestApproachToBSVsEta->Fill(track.eta(), track.dxy(bs.position()));
1299  }
1300 
1302  DistanceOfClosestApproachToBSVsPhi->Fill(track.phi(), track.dxy(bs.position()));
1306  xPointOfClosestApproachVsZ0wrtBS->Fill(track.dz(bs.position()), (track.vx() - bs.position(track.vz()).x()));
1307  yPointOfClosestApproachVsZ0wrtBS->Fill(track.dz(bs.position()), (track.vy() - bs.position(track.vz()).y()));
1308  if (doTestPlots_) {
1309  TESTDistanceOfClosestApproachToBS->Fill(track.dxy(bs.position(track.vz())));
1310  TESTDistanceOfClosestApproachToBSVsPhi->Fill(track.phi(), track.dxy(bs.position(track.vz())));
1311  }
1312 
1313  if (doSIPPlots_) {
1314  sipDxyToBS->Fill(track.dxy(bs.position()) / track.dxyError());
1315  sipDzToBS->Fill(track.dz(bs.position()) / track.dzError());
1316  }
1317  }
1318 
1320  edm::Handle<reco::VertexCollection> recoPrimaryVerticesHandle = iEvent.getHandle(pvToken_);
1321  if (recoPrimaryVerticesHandle.isValid() && !recoPrimaryVerticesHandle->empty()) {
1322  const reco::Vertex& pv = (*recoPrimaryVerticesHandle)[0];
1323 
1325  //HI PLOTS///////
1327 
1328  if (doHIPlots_) {
1329  double longDCAsig = 0, transDCAsig = 0;
1330  double zerr2 = track.dzError() * track.dzError() + pv.zError() * pv.zError();
1331  double xyerr2 = track.d0Error() * track.d0Error() + pv.xError() * pv.yError();
1332  if (zerr2 > 0)
1333  longDCAsig = track.dz(pv.position()) / zerr2;
1334  if (xyerr2 > 0)
1335  transDCAsig = track.dxy(pv.position()) / xyerr2;
1336  LongDCASig->Fill(longDCAsig);
1337  TransDCASig->Fill(transDCAsig);
1338 
1340  dNdEta_HighPurity->Fill(track.eta());
1341  dNdPhi_HighPurity->Fill(track.phi());
1342  dNdPt_HighPurity->Fill(track.ptError() / track.pt());
1343  NhitVsEta_HighPurity->Fill(track.eta(), track.numberOfValidHits());
1344  NhitVsPhi_HighPurity->Fill(track.phi(), track.numberOfValidHits());
1345  dNhitdPt_HighPurity->Fill(track.pt(), track.numberOfValidHits());
1346  Ptdist_HighPurity->Fill(track.pt());
1347  } //end of high quality tracks requirement
1348  }
1349 
1350  xPointOfClosestApproachToPV->Fill(track.vx() - pv.position().x());
1351  yPointOfClosestApproachToPV->Fill(track.vy() - pv.position().y());
1352  zPointOfClosestApproachToPV->Fill(track.dz(pv.position()));
1353  DistanceOfClosestApproachToPV->Fill(track.dxy(pv.position()));
1354  DeltaZToPV->Fill(track.dz(pv.position()));
1355  DistanceOfClosestApproachToPVZoom->Fill(track.dxy(pv.position()));
1356  DeltaZToPVZoom->Fill(track.dz(pv.position()));
1357  DistanceOfClosestApproachToPVVsPhi->Fill(track.phi(), track.dxy(pv.position()));
1358  xPointOfClosestApproachVsZ0wrtPV->Fill(track.dz(pv.position()), (track.vx() - pv.position().x()));
1359  yPointOfClosestApproachVsZ0wrtPV->Fill(track.dz(pv.position()), (track.vy() - pv.position().y()));
1360 
1361  if (doSIPPlots_) {
1363  reco::TransientTrack transTrack = theB.build(track);
1364 
1365  GlobalVector dir(track.px(), track.py(), track.pz());
1366  std::pair<bool, Measurement1D> ip3d = IPTools::signedImpactParameter3D(transTrack, dir, pv);
1367  std::pair<bool, Measurement1D> ip2d = IPTools::signedTransverseImpactParameter(transTrack, dir, pv);
1368  if (ip3d.first)
1369  sip3dToPV->Fill(ip3d.second.value() / ip3d.second.error());
1370  if (ip2d.first)
1371  sip2dToPV->Fill(ip2d.second.value() / ip2d.second.error());
1372  sipDxyToPV->Fill(track.dxy(pv.position()) / track.dxyError());
1373  sipDzToPV->Fill(track.dz(pv.position()) / track.dzError());
1374  }
1375  }
1376  }
1377 
1378  if (doDCAPlots_ || doAllPlots_) {
1379  if (doDCAwrt000Plots_) {
1380  if (doThetaPlots_) {
1382  }
1384  }
1385  }
1386 
1387  //Tracker Specific Histograms
1390  }
1392  if (stateName_ == "All") {
1393  fillHistosForState(iSetup, track, std::string("OuterSurface"));
1394  fillHistosForState(iSetup, track, std::string("InnerSurface"));
1395  fillHistosForState(iSetup, track, std::string("ImpactPoint"));
1396  } else if (stateName_ != "OuterSurface" && stateName_ != "InnerSurface" && stateName_ != "ImpactPoint" &&
1397  stateName_ != "default") {
1398  fillHistosForState(iSetup, track, std::string("default"));
1399  } else {
1401  }
1402  }
1403 
1404  if (doAllPlots_) {
1405  }
1406 }
MonitorElement * dNdPhi_HighPurity
MonitorElement * NumberOfValidRecHitsPerTrackVsPt
MonitorElement * NumberOfLayersPerTrack[4]
MonitorElement * ValidFractionVsPhiVsEtaPerTrack
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
MonitorElement * LongDCASig
MonitorElement * algorithm
MonitorElement * sipDxyToPV
MonitorElement * DistanceOfClosestApproach
std::string qualityString_
MonitorElement * stoppingSource
MonitorElement * NumberOfLostRecHitsPerTrackVsPt
std::pair< bool, Measurement1D > signedTransverseImpactParameter(const reco::TransientTrack &track, const GlobalVector &direction, const reco::Vertex &vertex)
Definition: IPTools.cc:57
std::pair< bool, Measurement1D > signedImpactParameter3D(const reco::TransientTrack &track, const GlobalVector &direction, const reco::Vertex &vertex)
Definition: IPTools.cc:81
MonitorElement * DistanceOfClosestApproachToBSdz
MonitorElement * NumberOfMORecHitVsPhiVsEtaPerTrack
MonitorElement * DistanceOfClosestApproachError
MonitorElement * DeltaZToPVZoom
MonitorElement * xPointOfClosestApproachVsZ0wrtPV
MonitorElement * sip2dToPV
MonitorElement * Chi2oNDF
MonitorElement * DeltaZToPV
MonitorElement * NumberOfLostRecHitsPerTrack
MonitorElement * yPointOfClosestApproach
MonitorElement * sipDxyToBS
MonitorElement * xPointOfClosestApproach
MonitorElement * DistanceOfClosestApproachErrorVsEta
MonitorElement * TransDCASig
MonitorElement * DistanceOfClosestApproachVsPhi
reco::TransientTrack build(const reco::Track *p) const
void Fill(long long x)
MonitorElement * NumberOfMIRecHitVsPhiVsEtaPerTrack
MonitorElement * DistanceOfClosestApproachToPVVsPhi
int iEvent
Definition: GenABIO.cc:224
MonitorElement * stoppingSourceVSeta
MonitorElement * dNdPt_HighPurity
MonitorElement * Chi2oNDF_lumiFlag
MonitorElement * stoppingSourceVSphi
MonitorElement * DistanceOfClosestApproachErrorVsPt
MonitorElement * sip3dToPV
void fillHistosForState(const edm::EventSetup &iSetup, const reco::Track &track, std::string sname)
MonitorElement * xPointOfClosestApproachToPV
MonitorElement * NumberOfMORecHitsPerTrack
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
MonitorElement * Chi2Prob
MonitorElement * dNhitdPt_HighPurity
unsigned int good_vertices_
MonitorElement * NumberOfValidRecHitVsPhiVsEtaPerTrack
void fillHistosForTrackerSpecific(const reco::Track &track)
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
std::string stateName_
Definition: TrackAnalyzer.h:96
MonitorElement * yPointOfClosestApproachVsZ0wrtPV
MonitorElement * zPointOfClosestApproachToPV
MonitorElement * NhitVsEta_HighPurity
MonitorElement * DistanceOfClosestApproachVsTheta
MonitorElement * NumberOfLayersVsPhiVsEtaPerTrack[5]
MonitorElement * NumberOfMIRecHitVsPtVsEtaPerTrack
MonitorElement * zPointOfClosestApproach
MonitorElement * sipDzToPV
MonitorElement * sipDzToBS
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
Definition: TrackAnalyzer.h:83
edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > transientTrackBuilderToken_
Definition: TrackAnalyzer.h:90
MonitorElement * DistanceOfClosestApproachErrorVsPhi
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:126
MonitorElement * DistanceOfClosestApproachVsEta
MonitorElement * TESTDistanceOfClosestApproachToBSVsPhi
MonitorElement * DistanceOfClosestApproachToBS
std::string TopFolder_
Definition: TrackAnalyzer.h:81
MonitorElement * NumberOfMIRecHitsPerTrackVsPt
MonitorElement * NhitVsPhi_HighPurity
MonitorElement * NumberOfRecHitsPerTrack
MonitorElement * xPointOfClosestApproachVsZ0wrtBS
MonitorElement * NumberOfRecHitsPerTrack_lumiFlag
edm::EDGetTokenT< reco::VertexCollection > pvToken_
Definition: TrackAnalyzer.h:84
MonitorElement * Ptdist_HighPurity
MonitorElement * DistanceOfClosestApproachToPVZoom
bool isValid() const
Definition: HandleBase.h:70
MonitorElement * DistanceOfClosestApproachToBSVsEta
MonitorElement * DistanceOfClosestApproachErrorVsDxy
MonitorElement * NumberOfValidRecHitsPerTrack
void fillHistosForEfficiencyFromHitPatter(const reco::Track &track, const std::string suffix, const float monitoring, bool useInac)
MonitorElement * AbsDistanceOfClosestApproachToBS
MonitorElement * yPointOfClosestApproachVsZ0wrtBS
MonitorElement * TESTDistanceOfClosestApproachToBS
MonitorElement * yPointOfClosestApproachToPV
MonitorElement * oriAlgo
MonitorElement * NumberOfLostRecHitVsPtVsEtaPerTrack
virtual int getNbinsX() const
get # of bins in X-axis
MonitorElement * yPointOfClosestApproachVsZ0wrt000
MonitorElement * NumberOfMORecHitsPerTrackVsPt
MonitorElement * dNdEta_HighPurity
MonitorElement * NumberOfValidRecHitVsPtVsEtaPerTrack
Definition: Chi2.h:15
MonitorElement * xPointOfClosestApproachVsZ0wrt000
MonitorElement * NumberOfMIRecHitsPerTrack
MonitorElement * zPointOfClosestApproachVsPhi
MonitorElement * NumberOfLostRecHitVsPhiVsEtaPerTrack
MonitorElement * NumberOfMORecHitVsPtVsEtaPerTrack
MonitorElement * DistanceOfClosestApproachToPV
MonitorElement * DistanceOfClosestApproachToBSVsPhi
MonitorElement * ValidFractionPerTrack

◆ bookHistosForBeamSpot()

void TrackAnalyzer::bookHistosForBeamSpot ( DQMStore::IBooker ibooker)
private

Definition at line 780 of file TrackAnalyzer.cc.

References AbsDistanceOfClosestApproachToBS, beam_dqm_sourceclient-live_cfg::AbsDxyBin, beam_dqm_sourceclient-live_cfg::AbsDxyMax, TrackingMonitor_cfi::AbsDxyMin, HLTSiStripMonitoring_cff::AlgoName, dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::bookProfile(), conf_, DeltaZToPV, DeltaZToPVZoom, DistanceOfClosestApproach, DistanceOfClosestApproachError, DistanceOfClosestApproachErrorVsDxy, DistanceOfClosestApproachErrorVsEta, DistanceOfClosestApproachErrorVsPhi, DistanceOfClosestApproachErrorVsPt, DistanceOfClosestApproachToBS, DistanceOfClosestApproachToBSdz, DistanceOfClosestApproachToBSVsEta, DistanceOfClosestApproachToBSVsPhi, DistanceOfClosestApproachToPV, DistanceOfClosestApproachToPVVsPhi, DistanceOfClosestApproachToPVZoom, DistanceOfClosestApproachVsEta, DistanceOfClosestApproachVsPhi, DistanceOfClosestApproachVsTheta, doAllPlots_, doBSPlots_, doDCAPlots_, doDCAwrt000Plots_, doPVPlots_, doSIPPlots_, doTestPlots_, doThetaPlots_, beam_dqm_sourceclient-live_cfg::DxyBin, TrackingMonitor_cfi::DxyErrBin, TrackingMonitor_cfi::DxyErrMax, beam_dqm_sourceclient-live_cfg::DxyMax, beam_dqm_sourceclient-live_cfg::DxyMin, MonitorTrackInnerTrackMuons_cff::EtaBin, MonitorTrackInnerTrackMuons_cff::EtaMax, MonitorTrackInnerTrackMuons_cff::EtaMin, edm::ParameterSet::getParameter(), histname, MonitorTrackSTAMuons_cfi::PhiBin, MonitorTrackSTAMuons_cfi::PhiMax, MonitorTrackSTAMuons_cfi::PhiMin, electronDQMIsoDist_cfi::PtMax, HLT_2024v13_cff::PtMin, dqm::impl::MonitorElement::setAxisTitle(), dqm::implementation::NavigatorBase::setCurrentFolder(), sip2dToPV, sip3dToPV, sipDxyToBS, sipDxyToPV, sipDzToBS, sipDzToPV, AlCaHLTBitMon_QueryRunRegistry::string, TESTDistanceOfClosestApproachToBS, TESTDistanceOfClosestApproachToBSVsPhi, MonitorTrackSTAMuons_cfi::ThetaBin, MonitorTrackSTAMuons_cfi::ThetaMax, MonitorTrackSTAMuons_cfi::ThetaMin, TopFolder_, TrackingMonitor_cfi::VZBinProf, TrackingMonitor_cfi::VZMaxProf, TrackingMonitor_cfi::VZMinProf, MonitorTrackSTAMuons_cfi::X0Bin, MonitorTrackSTAMuons_cfi::X0Max, MonitorTrackSTAMuons_cfi::X0Min, xPointOfClosestApproachVsZ0wrt000, xPointOfClosestApproachVsZ0wrtBS, xPointOfClosestApproachVsZ0wrtPV, MonitorTrackSTAMuons_cfi::Y0Bin, MonitorTrackSTAMuons_cfi::Y0Max, MonitorTrackSTAMuons_cfi::Y0Min, yPointOfClosestApproachVsZ0wrt000, yPointOfClosestApproachVsZ0wrtBS, yPointOfClosestApproachVsZ0wrtPV, MonitorTrackSTAMuons_cfi::Z0Bin, MonitorTrackSTAMuons_cfi::Z0Max, MonitorTrackSTAMuons_cfi::Z0Min, and zPointOfClosestApproachVsPhi.

Referenced by initHisto().

780  {
781  // parameters from the configuration
782  std::string QualName = conf_->getParameter<std::string>("Quality");
784 
785  // use the AlgoName and Quality Name
786  std::string CategoryName = !QualName.empty() ? AlgoName + "_" + QualName : AlgoName;
787  std::string Folder = TopFolder_.substr(0, 2);
788 
789  // book the Beam Spot related histograms
790  // ---------------------------------------------------------------------------------//
791 
792  if (doDCAPlots_ || doBSPlots_ || doAllPlots_) {
793  int DxyErrBin = conf_->getParameter<int>("DxyErrBin");
794  double DxyErrMax = conf_->getParameter<double>("DxyErrMax");
795 
796  int DxyBin = conf_->getParameter<int>("DxyBin");
797  double DxyMin = conf_->getParameter<double>("DxyMin");
798  double DxyMax = conf_->getParameter<double>("DxyMax");
799 
800  int AbsDxyBin = conf_->getParameter<int>("AbsDxyBin");
801  double AbsDxyMin = conf_->getParameter<double>("AbsDxyMin");
802  double AbsDxyMax = conf_->getParameter<double>("AbsDxyMax");
803 
804  int PhiBin = conf_->getParameter<int>("PhiBin");
805  double PhiMin = conf_->getParameter<double>("PhiMin");
806  double PhiMax = conf_->getParameter<double>("PhiMax");
807 
808  int EtaBin = conf_->getParameter<int>("EtaBin");
809  double EtaMin = conf_->getParameter<double>("EtaMin");
810  double EtaMax = conf_->getParameter<double>("EtaMax");
811 
812  int PtBin = conf_->getParameter<int>("TrackPtBin");
813  double PtMin = conf_->getParameter<double>("TrackPtMin");
814  double PtMax = conf_->getParameter<double>("TrackPtMax");
815 
816  int X0Bin = conf_->getParameter<int>("X0Bin");
817  double X0Min = conf_->getParameter<double>("X0Min");
818  double X0Max = conf_->getParameter<double>("X0Max");
819 
820  int Y0Bin = conf_->getParameter<int>("Y0Bin");
821  double Y0Min = conf_->getParameter<double>("Y0Min");
822  double Y0Max = conf_->getParameter<double>("Y0Max");
823 
824  int Z0Bin = conf_->getParameter<int>("Z0Bin");
825  double Z0Min = conf_->getParameter<double>("Z0Min");
826  double Z0Max = conf_->getParameter<double>("Z0Max");
827 
828  int VZBinProf = conf_->getParameter<int>("VZBinProf");
829  double VZMinProf = conf_->getParameter<double>("VZMinProf");
830  double VZMaxProf = conf_->getParameter<double>("VZMaxProf");
831 
832  ibooker.setCurrentFolder(TopFolder_ + "/GeneralProperties");
833 
834  histname = "DistanceOfClosestApproachError_";
836  ibooker.book1D(histname + CategoryName, histname + CategoryName, DxyErrBin, 0., DxyErrMax);
837  DistanceOfClosestApproachError->setAxisTitle("Track d_{xy} error (cm)", 1);
838  DistanceOfClosestApproachError->setAxisTitle("Number of Tracks", 2);
839 
840  histname = "DistanceOfClosestApproachErrorVsPt_";
842  ibooker.bookProfile(histname + CategoryName, histname + CategoryName, PtBin, PtMin, PtMax, 0., DxyErrMax);
843  DistanceOfClosestApproachErrorVsPt->setAxisTitle("Track p_{T} (GeV)", 1);
844  DistanceOfClosestApproachErrorVsPt->setAxisTitle("Track d_{xy} error (cm)", 2);
845 
846  histname = "DistanceOfClosestApproachErrorVsEta_";
848  ibooker.bookProfile(histname + CategoryName, histname + CategoryName, EtaBin, EtaMin, EtaMax, 0., DxyErrMax);
850  DistanceOfClosestApproachErrorVsEta->setAxisTitle("Track d_{xy} error (cm)", 2);
851 
852  histname = "DistanceOfClosestApproachErrorVsPhi_";
854  ibooker.bookProfile(histname + CategoryName, histname + CategoryName, PhiBin, PhiMin, PhiMax, 0., DxyErrMax);
856  DistanceOfClosestApproachErrorVsPhi->setAxisTitle("Track d_{xy} error (cm)", 2);
857 
858  histname = "DistanceOfClosestApproachErrorVsDxy_";
860  ibooker.bookProfile(histname + CategoryName, histname + CategoryName, DxyBin, DxyMin, DxyMax, 0., DxyErrMax);
862  DistanceOfClosestApproachErrorVsDxy->setAxisTitle("Track d_{xy} error (cm)", 2);
863 
864  histname = "DistanceOfClosestApproachToBS_";
866  ibooker.book1D(histname + CategoryName, histname + CategoryName, DxyBin, DxyMin, DxyMax);
867  DistanceOfClosestApproachToBS->setAxisTitle("Track d_{xy} wrt beam spot (cm)", 1);
868  DistanceOfClosestApproachToBS->setAxisTitle("Number of Tracks", 2);
869 
870  if (Folder == "Tr") {
871  histname = "DistanceOfClosestApproachToBSdz_";
873  ibooker.book1D(histname + CategoryName, histname + CategoryName, 100, -20.1, 20.1);
874  DistanceOfClosestApproachToBSdz->setAxisTitle("Track d_{z} wrt beam spot (cm)", 1);
875  DistanceOfClosestApproachToBSdz->setAxisTitle("Number of Tracks", 2);
876 
877  histname = "DistanceOfClosestApproachToBSVsEta_";
879  histname + CategoryName, histname + CategoryName, EtaBin, EtaMin, EtaMax, DxyBin, DxyMin, DxyMax, "");
881  DistanceOfClosestApproachToBSVsEta->setAxisTitle("Track d_{xy} wrt beam spot (cm)", 2);
882  }
883 
884  histname = "AbsDistanceOfClosestApproachToBS_";
886  ibooker.book1D(histname + CategoryName, histname + CategoryName, AbsDxyBin, AbsDxyMin, AbsDxyMax);
887  AbsDistanceOfClosestApproachToBS->setAxisTitle("Track |d_{xy}| wrt beam spot (cm)", 1);
888  AbsDistanceOfClosestApproachToBS->setAxisTitle("Number of Tracks", 2);
889 
890  histname = "DistanceOfClosestApproachToBSVsPhi_";
892  histname + CategoryName, histname + CategoryName, PhiBin, PhiMin, PhiMax, DxyBin, DxyMin, DxyMax, "");
894  DistanceOfClosestApproachToBSVsPhi->setAxisTitle("Track d_{xy} wrt beam spot (cm)", 2);
895 
896  histname = "xPointOfClosestApproachVsZ0wrt000_";
898  histname + CategoryName, histname + CategoryName, Z0Bin, Z0Min, Z0Max, X0Bin, X0Min, X0Max, "");
900  xPointOfClosestApproachVsZ0wrt000->setAxisTitle("x component of Track PCA to beam line (cm)", 2);
901 
902  histname = "yPointOfClosestApproachVsZ0wrt000_";
904  histname + CategoryName, histname + CategoryName, Z0Bin, Z0Min, Z0Max, Y0Bin, Y0Min, Y0Max, "");
906  yPointOfClosestApproachVsZ0wrt000->setAxisTitle("y component of Track PCA to beam line (cm)", 2);
907 
908  histname = "xPointOfClosestApproachVsZ0wrtBS_";
910  histname + CategoryName, histname + CategoryName, Z0Bin, Z0Min, Z0Max, X0Bin, X0Min, X0Max, "");
911  xPointOfClosestApproachVsZ0wrtBS->setAxisTitle("d_{z} w.r.t. Beam Spot (cm)", 1);
912  xPointOfClosestApproachVsZ0wrtBS->setAxisTitle("x component of Track PCA to BS (cm)", 2);
913 
914  histname = "yPointOfClosestApproachVsZ0wrtBS_";
916  histname + CategoryName, histname + CategoryName, Z0Bin, Z0Min, Z0Max, Y0Bin, Y0Min, Y0Max, "");
917  yPointOfClosestApproachVsZ0wrtBS->setAxisTitle("d_{z} w.r.t. Beam Spot (cm)", 1);
918  yPointOfClosestApproachVsZ0wrtBS->setAxisTitle("y component of Track PCA to BS (cm)", 2);
919 
920  histname = "zPointOfClosestApproachVsPhi_";
922  histname + CategoryName, histname + CategoryName, PhiBin, PhiMin, PhiMax, VZBinProf, VZMinProf, VZMaxProf, "");
923  zPointOfClosestApproachVsPhi->setAxisTitle("Track #phi", 1);
924  zPointOfClosestApproachVsPhi->setAxisTitle("z component of Track PCA to beam line (cm)", 2);
925  }
926 
927  if (doDCAPlots_ || doPVPlots_ || doAllPlots_) {
928  int DxyBin = conf_->getParameter<int>("DxyBin");
929  double DxyMin = conf_->getParameter<double>("DxyMin");
930  double DxyMax = conf_->getParameter<double>("DxyMax");
931 
932  int PhiBin = conf_->getParameter<int>("PhiBin");
933  double PhiMin = conf_->getParameter<double>("PhiMin");
934  double PhiMax = conf_->getParameter<double>("PhiMax");
935 
936  int X0Bin = conf_->getParameter<int>("X0Bin");
937  double X0Min = conf_->getParameter<double>("X0Min");
938  double X0Max = conf_->getParameter<double>("X0Max");
939 
940  int Y0Bin = conf_->getParameter<int>("Y0Bin");
941  double Y0Min = conf_->getParameter<double>("Y0Min");
942  double Y0Max = conf_->getParameter<double>("Y0Max");
943 
944  int Z0Bin = conf_->getParameter<int>("Z0Bin");
945  double Z0Min = conf_->getParameter<double>("Z0Min");
946  double Z0Max = conf_->getParameter<double>("Z0Max");
947 
948  ibooker.setCurrentFolder(TopFolder_ + "/GeneralProperties");
949 
950  histname = "DistanceOfClosestApproachToPV_";
952  ibooker.book1D(histname + CategoryName, histname + CategoryName, DxyBin, DxyMin, DxyMax);
953  DistanceOfClosestApproachToPV->setAxisTitle("Track d_{xy} w.r.t. PV (cm)", 1);
954  DistanceOfClosestApproachToPV->setAxisTitle("Number of Tracks", 2);
955 
956  histname = "DistanceOfClosestApproachToPVZoom_";
958  ibooker.book1D(histname + CategoryName, histname + CategoryName, 100, -0.08, 0.08);
959  DistanceOfClosestApproachToPVZoom->setAxisTitle("Track d_{xy} w.r.t. PV (cm)", 1);
960  DistanceOfClosestApproachToPVZoom->setAxisTitle("Number of Tracks", 2);
961 
962  histname = "DeltaZToPV_";
963  DeltaZToPV = ibooker.book1D(histname + CategoryName, histname + CategoryName, Z0Bin, Z0Min, Z0Max);
964  DeltaZToPV->setAxisTitle("Track d_{z} w.r.t. PV (cm)", 1);
965  DeltaZToPV->setAxisTitle("Number of Tracks", 2);
966 
967  histname = "DeltaZToPVZoom_";
968  DeltaZToPVZoom = ibooker.book1D(histname + CategoryName, histname + CategoryName, 100, -0.15, 0.15);
969  DeltaZToPVZoom->setAxisTitle("Track d_{z} w.r.t. PV (cm)", 1);
970  DeltaZToPVZoom->setAxisTitle("Number of Tracks", 2);
971 
972  histname = "DistanceOfClosestApproachToPVVsPhi_";
974  histname + CategoryName, histname + CategoryName, PhiBin, PhiMin, PhiMax, DxyBin, DxyMin, DxyMax, "");
976  DistanceOfClosestApproachToPVVsPhi->setAxisTitle("Track d_{xy} w.r.t. PV (cm)", 2);
977 
978  histname = "xPointOfClosestApproachVsZ0wrtPV_";
980  histname + CategoryName, histname + CategoryName, Z0Bin, Z0Min, Z0Max, X0Bin, X0Min, X0Max, "");
981  xPointOfClosestApproachVsZ0wrtPV->setAxisTitle("d_{z} w.r.t. PV (cm)", 1);
982  xPointOfClosestApproachVsZ0wrtPV->setAxisTitle("x component of Track PCA to PV (cm)", 2);
983 
984  histname = "yPointOfClosestApproachVsZ0wrtPV_";
986  histname + CategoryName, histname + CategoryName, Z0Bin, Z0Min, Z0Max, Y0Bin, Y0Min, Y0Max, "");
987  yPointOfClosestApproachVsZ0wrtPV->setAxisTitle("d_{z} w.r.t. PV (cm)", 1);
988  yPointOfClosestApproachVsZ0wrtPV->setAxisTitle("y component of Track PCA to PV (cm)", 2);
989  }
990 
991  if (doBSPlots_ || doAllPlots_) {
992  if (doTestPlots_) {
993  int DxyBin = conf_->getParameter<int>("DxyBin");
994  double DxyMin = conf_->getParameter<double>("DxyMin");
995  double DxyMax = conf_->getParameter<double>("DxyMax");
996 
997  int PhiBin = conf_->getParameter<int>("PhiBin");
998  double PhiMin = conf_->getParameter<double>("PhiMin");
999  double PhiMax = conf_->getParameter<double>("PhiMax");
1000 
1001  histname = "TESTDistanceOfClosestApproachToBS_";
1003  ibooker.book1D(histname + CategoryName, histname + CategoryName, DxyBin, DxyMin, DxyMax);
1004  TESTDistanceOfClosestApproachToBS->setAxisTitle("Track d_{xy} wrt beam spot (cm)", 1);
1005  TESTDistanceOfClosestApproachToBS->setAxisTitle("Number of Tracks", 2);
1006 
1007  histname = "TESTDistanceOfClosestApproachToBSVsPhi_";
1009  histname + CategoryName, histname + CategoryName, PhiBin, PhiMin, PhiMax, DxyBin, DxyMin, DxyMax, "");
1011  TESTDistanceOfClosestApproachToBSVsPhi->setAxisTitle("Track d_{xy} wrt beam spot (cm)", 2);
1012  }
1013  }
1014 
1015  // book the Profile plots for DCA related histograms
1016  // ---------------------------------------------------------------------------------//
1017  if (doDCAPlots_ || doAllPlots_) {
1018  if (doDCAwrt000Plots_) {
1019  int EtaBin = conf_->getParameter<int>("EtaBin");
1020  double EtaMin = conf_->getParameter<double>("EtaMin");
1021  double EtaMax = conf_->getParameter<double>("EtaMax");
1022 
1023  int PhiBin = conf_->getParameter<int>("PhiBin");
1024  double PhiMin = conf_->getParameter<double>("PhiMin");
1025  double PhiMax = conf_->getParameter<double>("PhiMax");
1026 
1027  int DxyBin = conf_->getParameter<int>("DxyBin");
1028  double DxyMin = conf_->getParameter<double>("DxyMin");
1029  double DxyMax = conf_->getParameter<double>("DxyMax");
1030 
1031  if (doThetaPlots_) {
1032  int ThetaBin = conf_->getParameter<int>("ThetaBin");
1033  double ThetaMin = conf_->getParameter<double>("ThetaMin");
1034  double ThetaMax = conf_->getParameter<double>("ThetaMax");
1035 
1036  ibooker.setCurrentFolder(TopFolder_ + "/GeneralProperties");
1037  histname = "DistanceOfClosestApproachVsTheta_";
1039  histname + CategoryName, histname + CategoryName, ThetaBin, ThetaMin, ThetaMax, DxyMin, DxyMax, "");
1040  DistanceOfClosestApproachVsTheta->setAxisTitle("Track #theta", 1);
1041  DistanceOfClosestApproachVsTheta->setAxisTitle("Track d_{xy} wrt (0,0,0) (cm)", 2);
1042  }
1043 
1044  histname = "DistanceOfClosestApproachVsEta_";
1046  histname + CategoryName, histname + CategoryName, EtaBin, EtaMin, EtaMax, DxyMin, DxyMax, "");
1047  DistanceOfClosestApproachVsEta->setAxisTitle("Track #eta", 1);
1048  DistanceOfClosestApproachVsEta->setAxisTitle("Track d_{xy} wrt (0,0,0) (cm)", 2);
1049  // temporary patch in order to put back those MEs in Muon Workspace
1050 
1051  histname = "DistanceOfClosestApproach_";
1053  ibooker.book1D(histname + CategoryName, histname + CategoryName, DxyBin, DxyMin, DxyMax);
1054  DistanceOfClosestApproach->setAxisTitle("Track d_{xy} wrt (0,0,0) (cm)", 1);
1055  DistanceOfClosestApproach->setAxisTitle("Number of Tracks", 2);
1056 
1057  histname = "DistanceOfClosestApproachVsPhi_";
1059  histname + CategoryName, histname + CategoryName, PhiBin, PhiMin, PhiMax, DxyMin, DxyMax, "");
1060  DistanceOfClosestApproachVsPhi->setAxisTitle("Track #phi", 1);
1061  DistanceOfClosestApproachVsPhi->setAxisTitle("Track d_{xy} wrt (0,0,0) (cm)", 2);
1062  }
1063  }
1064 
1065  if (doSIPPlots_ || doAllPlots_) {
1066  const double sipBins = 200;
1067  const double sipMin = -20;
1068  const double sipMax = 20;
1069 
1070  ibooker.setCurrentFolder(TopFolder_ + "/GeneralProperties");
1071 
1072  // SIP wrt. beamspot
1073  histname = "SIPDxyToBS_";
1074  sipDxyToBS = ibooker.book1D(histname + CategoryName, histname + CategoryName, sipBins, sipMin, sipMax);
1075  sipDxyToBS->setAxisTitle("Track dxy significance wrt beam spot", 1);
1076  sipDxyToBS->setAxisTitle("Number of Tracks", 2);
1077 
1078  histname = "SIPDzToBS_";
1079  sipDzToBS = ibooker.book1D(histname + CategoryName, histname + CategoryName, sipBins, sipMin, sipMax);
1080  sipDzToBS->setAxisTitle("Track dz significance wrt beam spot", 1);
1081  sipDzToBS->setAxisTitle("Number of Tracks", 2);
1082 
1083  // SIP wrt. vertex
1084  histname = "SIP3DToPV_";
1085  sip3dToPV = ibooker.book1D(histname + CategoryName, histname + CategoryName, sipBins, sipMin, sipMax);
1086  sip3dToPV->setAxisTitle("3D IP significance wrt primary vertex", 1);
1087  sip3dToPV->setAxisTitle("Number of Tracks", 2);
1088 
1089  histname = "SIP2DToPV_";
1090  sip2dToPV = ibooker.book1D(histname + CategoryName, histname + CategoryName, sipBins, sipMin, sipMax);
1091  sip2dToPV->setAxisTitle("2D IP significance wrt primary vertex", 1);
1092  sip2dToPV->setAxisTitle("Number of Tracks", 2);
1093 
1094  histname = "SIPDxyToPV_";
1095  sipDxyToPV = ibooker.book1D(histname + CategoryName, histname + CategoryName, sipBins, sipMin, sipMax);
1096  sipDxyToPV->setAxisTitle("Track dxy significance wrt primary vertex", 1);
1097  sipDxyToPV->setAxisTitle("Number of Tracks", 2);
1098 
1099  histname = "SIPDzToPV_";
1100  sipDzToPV = ibooker.book1D(histname + CategoryName, histname + CategoryName, sipBins, sipMin, sipMax);
1101  sipDzToPV->setAxisTitle("Track dz significance wrt primary vertex", 1);
1102  sipDzToPV->setAxisTitle("Number of Tracks", 2);
1103  }
1104 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
MonitorElement * sipDxyToPV
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
MonitorElement * DistanceOfClosestApproach
DxyErrBin
it might need to be adjust if CMS asks to have lumi levelling at lower values
MonitorElement * DistanceOfClosestApproachToBSdz
MonitorElement * DistanceOfClosestApproachError
MonitorElement * DeltaZToPVZoom
MonitorElement * xPointOfClosestApproachVsZ0wrtPV
MonitorElement * sip2dToPV
MonitorElement * DeltaZToPV
MonitorElement * sipDxyToBS
MonitorElement * DistanceOfClosestApproachErrorVsEta
MonitorElement * DistanceOfClosestApproachVsPhi
MonitorElement * DistanceOfClosestApproachToPVVsPhi
MonitorElement * DistanceOfClosestApproachErrorVsPt
MonitorElement * sip3dToPV
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:408
MonitorElement * yPointOfClosestApproachVsZ0wrtPV
MonitorElement * DistanceOfClosestApproachVsTheta
edm::ParameterSet const * conf_
Definition: TrackAnalyzer.h:94
MonitorElement * sipDzToPV
MonitorElement * sipDzToBS
MonitorElement * DistanceOfClosestApproachErrorVsPhi
MonitorElement * DistanceOfClosestApproachVsEta
MonitorElement * TESTDistanceOfClosestApproachToBSVsPhi
MonitorElement * DistanceOfClosestApproachToBS
std::string TopFolder_
Definition: TrackAnalyzer.h:81
MonitorElement * xPointOfClosestApproachVsZ0wrtBS
MonitorElement * DistanceOfClosestApproachToPVZoom
MonitorElement * DistanceOfClosestApproachToBSVsEta
MonitorElement * DistanceOfClosestApproachErrorVsDxy
MonitorElement * AbsDistanceOfClosestApproachToBS
MonitorElement * yPointOfClosestApproachVsZ0wrtBS
MonitorElement * TESTDistanceOfClosestApproachToBS
MonitorElement * yPointOfClosestApproachVsZ0wrt000
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 * xPointOfClosestApproachVsZ0wrt000
MonitorElement * zPointOfClosestApproachVsPhi
MonitorElement * DistanceOfClosestApproachToPV
MonitorElement * DistanceOfClosestApproachToBSVsPhi
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)

◆ bookHistosForEfficiencyFromHitPatter()

void TrackAnalyzer::bookHistosForEfficiencyFromHitPatter ( DQMStore::IBooker ibooker,
const edm::EventSetup iSetup,
const std::string  suffix,
bool  useInac 
)
private

Definition at line 236 of file TrackAnalyzer.cc.

References dqm::implementation::IBooker::book1D(), eostools::cat(), conf_, ALPAKA_ACCELERATOR_NAMESPACE::brokenline::constexpr(), DiLeptonHelp::END, nano_mu_digi_cff::float, edm::EventSetup::getData(), edm::ParameterSet::getParameter(), hits_total_, hits_valid_, mps_fire::i, createfilelist::int, GetLumi::lastBunchCrossing, LogDebug, TrackingMonitor_cfi::LUMIBin, TrackingMonitor_cfi::LUMIMax, TrackingMonitor_cfi::LUMIMin, MAX, SiStripPI::max, MIN, SiStripPI::min, LaserDQM_cfi::mon, monName, Skims_PA_cff::name, NBINS, LaserClient_cfi::nbins, TrackerGeometry::numberOfLayers(), MonitorTrackInnerTrackMuons_cff::PVBin, MonitorTrackInnerTrackMuons_cff::PVMax, MonitorTrackInnerTrackMuons_cff::PVMin, dqm::implementation::NavigatorBase::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, makePlotsFromDump::suffix, runGCPTkAlMap::title, TopFolder_, and trackerGeometryToken_.

Referenced by initHisto().

239  {
240  ibooker.setCurrentFolder(TopFolder_ + "/HitEffFromHitPattern" + (useInac ? "All" : "") + suffix);
241 
242  constexpr int LUMIBin = 300; // conf_->getParameter<int>("LUMIBin");
243  float LUMIMin = conf_->getParameter<double>("LUMIMin");
244  float LUMIMax = conf_->getParameter<double>("LUMIMax");
245 
246  int PVBin = conf_->getParameter<int>("PVBin");
247  float PVMin = conf_->getParameter<double>("PVMin");
248  float PVMax = conf_->getParameter<double>("PVMax");
249 
251  float MIN[] = {PVMin, 0.5, LUMIMin, LUMIMin};
253  std::string NAME[] = {"", "VsBX", "VsLUMI", "VsLUMI"};
254 
255  auto logBins = makeLogBins<float, LUMIBin>(LUMIMin, LUMIMax);
256 
257  int mon = -1;
258  int nbins = -1;
259  float min = -1.;
260  float max = -1.;
261  bool logQ = false;
262  std::string name = "";
263  for (int i = 0; i < monQuantity::END; i++) {
264  if (monName[i] == suffix) {
265  logQ = (i > 1); // VsLUMI
266  mon = i;
267  if (useInac)
269  nbins = NBINS[i];
270  min = MIN[i];
271  max = MAX[i];
272  name = NAME[i];
273  }
274  }
275 
276  TrackerGeometry const& trackerGeometry = iSetup.getData(trackerGeometryToken_);
277 
278  // Values are not ordered randomly, but the order is taken from
279  // http://cmslxr.fnal.gov/dxr/CMSSW/source/Geometry/CommonDetUnit/interface/GeomDetEnumerators.h#15
280  const char* dets[] = {"None", "PXB", "PXF", "TIB", "TID", "TOB", "TEC"};
281 
282  // Also in this case, ordering is not random but extracted from
283  // http://cmslxr.fnal.gov/dxr/CMSSW/source/DataFormats/TrackReco/interface/HitPattern.h
284  // The category "total" is an addition to ease the computation of
285  // the efficiencies and is not part of the original HitPattern.
286  const char* hit_category[] = {"valid", "missing", "inactive", "bad", "total"};
287 
288  // We set sub_det to be a 1-based index since to it is the sub-sub-structure in the HitPattern
289  char title[50];
290  for (unsigned int det = 1; det < sizeof(dets) / sizeof(char*); ++det) {
291  for (unsigned int sub_det = 1; sub_det <= trackerGeometry.numberOfLayers(det); ++sub_det) {
292  for (unsigned int cat = 0; cat < sizeof(hit_category) / sizeof(char*); ++cat) {
293  memset(title, 0, sizeof(title));
294  snprintf(title, sizeof(title), "Hits%s_%s_%s_Subdet%d", name.c_str(), hit_category[cat], dets[det], sub_det);
295  switch (cat) {
296  case 0:
297  hits_valid_.insert(std::make_pair(Key(det, sub_det, mon),
298  logQ ? ibooker.book1D(title, title, nbins, &logBins[0])
299  : ibooker.book1D(title, title, nbins, min, max)));
300  break;
301  case 4:
302  hits_total_.insert(std::make_pair(Key(det, sub_det, mon),
303  logQ ? ibooker.book1D(title, title, nbins, &logBins[0])
304  : ibooker.book1D(title, title, nbins, min, max)));
305  break;
306  default:
307  LogDebug("TrackAnalyzer") << "Invalid hit category used " << cat << " ignored\n";
308  }
309  }
310  }
311  }
312 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
std::string monName[monQuantity::END]
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_total_
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
#define MAX(n, d)
Definition: nnet_common.h:9
unsigned int numberOfLayers(int subdet) const
#define MIN(n, d)
Definition: nnet_common.h:8
static const unsigned int lastBunchCrossing
Definition: GetLumi.h:40
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > trackerGeometryToken_
Definition: TrackAnalyzer.h:88
def cat(path)
Definition: eostools.py:401
edm::ParameterSet const * conf_
Definition: TrackAnalyzer.h:94
std::string TopFolder_
Definition: TrackAnalyzer.h:81
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_valid_
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
const int NBINS
#define LogDebug(id)

◆ bookHistosForHitProperties()

void TrackAnalyzer::bookHistosForHitProperties ( DQMStore::IBooker ibooker)
private

Definition at line 315 of file TrackAnalyzer.cc.

References HLTSiStripMonitoring_cff::AlgoName, reco::TrackBase::algoNames, algorithm, reco::TrackBase::algoSize, dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::bookProfile(), dqm::implementation::IBooker::bookProfile2D(), MonitorTrackSTAMuons_cfi::Chi2Bin, MonitorTrackSTAMuons_cfi::Chi2Max, MonitorTrackSTAMuons_cfi::Chi2Min, beam_dqm_sourceclient-live_cfg::Chi2NDFBin, beam_dqm_sourceclient-live_cfg::Chi2NDFMax, beam_dqm_sourceclient-live_cfg::Chi2NDFMin, Chi2oNDF, Chi2Prob, MonitorTrackSTAMuons_cfi::Chi2ProbBin, MonitorTrackSTAMuons_cfi::Chi2ProbMax, MonitorTrackSTAMuons_cfi::Chi2ProbMin, conf_, dNdEta_HighPurity, dNdPhi_HighPurity, dNdPt_HighPurity, dNhitdPt_HighPurity, doAllPlots_, doDCAPlots_, doGeneralPropertiesPlots_, doHIPlots_, doHitPropertiesPlots_, doLayersVsPhiVsEtaPerTrack_, doPVPlots_, doRecHitVsPhiVsEtaPerTrack_, doRecHitVsPtVsEtaPerTrack_, doSIPPlots_, MonitorTrackInnerTrackMuons_cff::Eta2DBin, MonitorTrackInnerTrackMuons_cff::EtaBin, MonitorTrackInnerTrackMuons_cff::EtaMax, MonitorTrackInnerTrackMuons_cff::EtaMin, edm::ParameterSet::getParameter(), histname, mps_fire::i, TrackingMonitor_cfi::LongDCABins, TrackingMonitor_cfi::LongDCAMax, TrackingMonitor_cfi::LongDCAMin, LongDCASig, NhitVsEta_HighPurity, NhitVsPhi_HighPurity, NumberOfLayersPerTrack, NumberOfLayersVsPhiVsEtaPerTrack, NumberOfLostRecHitsPerTrack, NumberOfLostRecHitsPerTrackVsPt, NumberOfLostRecHitVsPhiVsEtaPerTrack, NumberOfLostRecHitVsPtVsEtaPerTrack, NumberOfMIRecHitsPerTrack, NumberOfMIRecHitsPerTrackVsPt, NumberOfMIRecHitVsPhiVsEtaPerTrack, NumberOfMIRecHitVsPtVsEtaPerTrack, NumberOfMORecHitsPerTrack, NumberOfMORecHitsPerTrackVsPt, NumberOfMORecHitVsPhiVsEtaPerTrack, NumberOfMORecHitVsPtVsEtaPerTrack, NumberOfRecHitsPerTrack, NumberOfValidRecHitsPerTrack, NumberOfValidRecHitsPerTrackVsPt, NumberOfValidRecHitVsPhiVsEtaPerTrack, NumberOfValidRecHitVsPtVsEtaPerTrack, oriAlgo, MonitorTrackInnerTrackMuons_cff::Phi2DBin, MonitorTrackSTAMuons_cfi::PhiBin, MonitorTrackSTAMuons_cfi::PhiMax, MonitorTrackSTAMuons_cfi::PhiMin, Ptdist_HighPurity, electronDQMIsoDist_cfi::PtMax, HLT_2024v13_cff::PtMin, dqm::impl::MonitorElement::setAxisTitle(), dqm::impl::MonitorElement::setBinLabel(), dqm::implementation::NavigatorBase::setCurrentFolder(), SIZE, stoppingSource, stoppingSourceVSeta, stoppingSourceVSphi, StopReasonName::StopReasonName, AlCaHLTBitMon_QueryRunRegistry::string, TopFolder_, TrackingMonitor_cfi::TransDCABins, TrackingMonitor_cfi::TransDCAMax, TrackingMonitor_cfi::TransDCAMin, TransDCASig, ValidFractionPerTrack, ValidFractionVsPhiVsEtaPerTrack, MonitorTrackSTAMuons_cfi::VXBin, MonitorTrackSTAMuons_cfi::VXMax, MonitorTrackSTAMuons_cfi::VXMin, MonitorTrackSTAMuons_cfi::VYBin, MonitorTrackSTAMuons_cfi::VYMax, MonitorTrackSTAMuons_cfi::VYMin, TrackingMonitor_cfi::VZ_PVMax, TrackingMonitor_cfi::VZ_PVMin, beam_dqm_sourceclient-live_cfg::VZBin, beam_dqm_sourceclient-live_cfg::VZMax, beam_dqm_sourceclient-live_cfg::VZMin, xPointOfClosestApproach, xPointOfClosestApproachToPV, yPointOfClosestApproach, yPointOfClosestApproachToPV, zPointOfClosestApproach, and zPointOfClosestApproachToPV.

Referenced by initHisto().

315  {
316  // parameters from the configuration
317  std::string QualName = conf_->getParameter<std::string>("Quality");
319  std::string MEBSFolderName = conf_->getParameter<std::string>("BSFolderName");
320 
321  // use the AlgoName and Quality Name
322  std::string CategoryName = !QualName.empty() ? AlgoName + "_" + QualName : AlgoName;
323 
324  // get binning from the configuration
325  int TKHitBin = conf_->getParameter<int>("RecHitBin");
326  double TKHitMin = conf_->getParameter<double>("RecHitMin");
327  double TKHitMax = conf_->getParameter<double>("RecHitMax");
328 
329  int TKLostBin = conf_->getParameter<int>("RecLostBin");
330  double TKLostMin = conf_->getParameter<double>("RecLostMin");
331  double TKLostMax = conf_->getParameter<double>("RecLostMax");
332 
333  int TKLayBin = conf_->getParameter<int>("RecLayBin");
334  double TKLayMin = conf_->getParameter<double>("RecLayMin");
335  double TKLayMax = conf_->getParameter<double>("RecLayMax");
336 
337  int PhiBin = conf_->getParameter<int>("PhiBin");
338  double PhiMin = conf_->getParameter<double>("PhiMin");
339  double PhiMax = conf_->getParameter<double>("PhiMax");
340 
341  int EtaBin = conf_->getParameter<int>("EtaBin");
342  double EtaMin = conf_->getParameter<double>("EtaMin");
343  double EtaMax = conf_->getParameter<double>("EtaMax");
344 
345  int PtBin = conf_->getParameter<int>("TrackPtBin");
346  double PtMin = conf_->getParameter<double>("TrackPtMin");
347  double PtMax = conf_->getParameter<double>("TrackPtMax");
348 
349  int Phi2DBin = conf_->getParameter<int>("Phi2DBin");
350  int Eta2DBin = conf_->getParameter<int>("Eta2DBin");
351  int Pt2DBin = conf_->getParameter<int>("TrackPt2DBin");
352 
353  int VXBin = conf_->getParameter<int>("VXBin");
354  double VXMin = conf_->getParameter<double>("VXMin");
355  double VXMax = conf_->getParameter<double>("VXMax");
356 
357  int VYBin = conf_->getParameter<int>("VYBin");
358  double VYMin = conf_->getParameter<double>("VYMin");
359  double VYMax = conf_->getParameter<double>("VYMax");
360 
361  int VZBin = conf_->getParameter<int>("VZBin");
362  double VZMin = conf_->getParameter<double>("VZMin");
363  double VZMax = conf_->getParameter<double>("VZMax");
364 
365  double VZ_PVMin = conf_->getParameter<double>("VZ_PVMin");
366  double VZ_PVMax = conf_->getParameter<double>("VZ_PVMax");
367 
368  ibooker.setCurrentFolder(TopFolder_);
369 
370  // book the Hit Property histograms
371  // ---------------------------------------------------------------------------------//
372 
373  TkParameterMEs tkmes;
375  ibooker.setCurrentFolder(TopFolder_ + "/HitProperties");
376 
377  histname = "NumberOfRecHitsPerTrack_";
379  ibooker.book1D(histname + CategoryName, histname + CategoryName, TKHitBin, TKHitMin, TKHitMax);
380  NumberOfRecHitsPerTrack->setAxisTitle("Number of all RecHits of each Track");
381  NumberOfRecHitsPerTrack->setAxisTitle("Number of Tracks", 2);
382 
383  histname = "NumberOfValidRecHitsPerTrack_";
385  ibooker.book1D(histname + CategoryName, histname + CategoryName, TKHitBin, TKHitMin, TKHitMax);
386  NumberOfValidRecHitsPerTrack->setAxisTitle("Number of valid RecHits for each Track");
387 
388  NumberOfValidRecHitsPerTrack->setAxisTitle("Number of Tracks", 2);
389 
390  histname = "NumberOfLostRecHitsPerTrack_";
392  ibooker.book1D(histname + CategoryName, histname + CategoryName, TKLostBin, TKLostMin, TKLostMax);
393  NumberOfLostRecHitsPerTrack->setAxisTitle("Number of lost RecHits for each Track");
394  NumberOfLostRecHitsPerTrack->setAxisTitle("Number of Tracks", 2);
395 
396  histname = "NumberOfMissingInnerRecHitsPerTrack_";
397  NumberOfMIRecHitsPerTrack = ibooker.book1D(histname + CategoryName, histname + CategoryName, 10, -0.5, 9.5);
398  NumberOfMIRecHitsPerTrack->setAxisTitle("Number of missing-inner RecHits for each Track");
399  NumberOfMIRecHitsPerTrack->setAxisTitle("Number of Tracks", 2);
400 
401  histname = "NumberOfMissingOuterRecHitsPerTrack_";
402  NumberOfMORecHitsPerTrack = ibooker.book1D(histname + CategoryName, histname + CategoryName, 10, -0.5, 9.5);
403  NumberOfMORecHitsPerTrack->setAxisTitle("Number of missing-outer RecHits for each Track");
404  NumberOfMORecHitsPerTrack->setAxisTitle("Number of Tracks", 2);
405 
406  histname = "ValidFractionPerTrack_";
407  ValidFractionPerTrack = ibooker.book1D(histname + CategoryName, histname + CategoryName, 101, 0., 1.01);
408  ValidFractionPerTrack->setAxisTitle("ValidFraction of RecHits for each Track");
409  ValidFractionPerTrack->setAxisTitle("Number of Tracks", 2);
410 
412  histname = "NumberOfValidRecHitVsPhiVsEtaPerTrack_";
414  histname + CategoryName,
415  Eta2DBin,
416  EtaMin,
417  EtaMax,
418  Phi2DBin,
419  PhiMin,
420  PhiMax,
421  0,
422  40.,
423  "");
426 
427  histname = "NumberOfLostRecHitVsPhiVsEtaPerTrack_";
429  histname + CategoryName,
430  Eta2DBin,
431  EtaMin,
432  EtaMax,
433  Phi2DBin,
434  PhiMin,
435  PhiMax,
436  0,
437  5.,
438  "");
441 
442  histname = "NumberMIRecHitVsPhiVsEtaPerTrack_";
444  histname + CategoryName,
445  Eta2DBin,
446  EtaMin,
447  EtaMax,
448  Phi2DBin,
449  PhiMin,
450  PhiMax,
451  0,
452  15.,
453  "");
456 
457  histname = "NumberMORecHitVsPhiVsEtaPerTrack_";
459  histname + CategoryName,
460  Eta2DBin,
461  EtaMin,
462  EtaMax,
463  Phi2DBin,
464  PhiMin,
465  PhiMax,
466  0,
467  15.,
468  "");
471 
472  histname = "ValidFractionVsPhiVsEtaPerTrack_";
473  ValidFractionVsPhiVsEtaPerTrack = ibooker.bookProfile2D(histname + CategoryName,
474  histname + CategoryName,
475  Eta2DBin,
476  EtaMin,
477  EtaMax,
478  Phi2DBin,
479  PhiMin,
480  PhiMax,
481  0,
482  2.,
483  "");
486  }
487 
489  histname = "NumberOfValidRecHitVsPtVsEtaPerTrack_";
491  histname + CategoryName, histname + CategoryName, Eta2DBin, EtaMin, EtaMax, Pt2DBin, PtMin, PtMax, 0, 40., "");
493  NumberOfValidRecHitVsPtVsEtaPerTrack->setAxisTitle("Track p_{T} [GeV] ", 2);
494 
495  histname = "NumberOfLostRecHitVsPtVsEtaPerTrack_";
497  histname + CategoryName, histname + CategoryName, Eta2DBin, EtaMin, EtaMax, Pt2DBin, PtMin, PtMax, 0, 5., "");
499  NumberOfLostRecHitVsPtVsEtaPerTrack->setAxisTitle("Track p_{T} [GeV] ", 2);
500 
501  histname = "NumberMIRecHitVsPtVsEtaPerTrack_";
503  histname + CategoryName, histname + CategoryName, Eta2DBin, EtaMin, EtaMax, Pt2DBin, PtMin, PtMax, 0, 15., "");
505  NumberOfMIRecHitVsPtVsEtaPerTrack->setAxisTitle("Track p_{T} [GeV] ", 2);
506 
507  histname = "NumberMORecHitVsPtVsEtaPerTrack_";
509  histname + CategoryName, histname + CategoryName, Eta2DBin, EtaMin, EtaMax, Pt2DBin, PtMin, PtMax, 0, 15., "");
511  NumberOfMORecHitVsPtVsEtaPerTrack->setAxisTitle("Track p_{T} [GeV] ", 2);
512  }
513 
514  histname = "NumberOfValidRecHitsPerTrackVsPt_";
516  histname + CategoryName, histname + CategoryName, PtBin, PtMin, PtMax, TKHitMin, TKHitMax, "");
517  NumberOfValidRecHitsPerTrackVsPt->setAxisTitle("Track p_{T} [GeV]", 1);
518  NumberOfValidRecHitsPerTrackVsPt->setAxisTitle("Number of valid RecHits in each Track", 2);
519 
520  histname = "NumberOfLostRecHitsPerTrackVsPt_";
522  histname + CategoryName, histname + CategoryName, PtBin, PtMin, PtMax, TKHitMin, TKHitMax, "");
523  NumberOfLostRecHitsPerTrackVsPt->setAxisTitle("Track p_{T} [GeV]", 1);
524  NumberOfLostRecHitsPerTrackVsPt->setAxisTitle("Average Number of Lost RecHits per Track", 2);
525 
526  histname = "NumberMIRecHitsPerTrackVsPt_";
528  histname + CategoryName, histname + CategoryName, PtBin, PtMin, PtMax, TKHitMin, TKHitMax, "");
529  NumberOfMIRecHitsPerTrackVsPt->setAxisTitle("Track p_{T} [GeV]", 1);
530  NumberOfMIRecHitsPerTrackVsPt->setAxisTitle("Average Number of Lost RecHits per Track", 2);
531 
532  histname = "NumberMORecHitsPerTrackVsPt_";
534  histname + CategoryName, histname + CategoryName, PtBin, PtMin, PtMax, TKHitMin, TKHitMax, "");
535  NumberOfMORecHitsPerTrackVsPt->setAxisTitle("Track p_{T} [GeV]", 1);
536  NumberOfMORecHitsPerTrackVsPt->setAxisTitle("Average Number of Lost RecHits per Track", 2);
537 
538  std::string layerTypeName[5] = {"", "Off", "3D", "Missing", "Pixel"};
539  for (int i = 0; i < 4; ++i) {
540  histname = "NumberOf" + layerTypeName[i] + "LayersPerTrack_";
542  ibooker.book1D(histname + CategoryName, histname + CategoryName, TKLayBin, TKLayMin, TKLayMax);
543  NumberOfLayersPerTrack[i]->setAxisTitle("Number of " + layerTypeName[i] + " Layers of each Track", 1);
544  NumberOfLayersPerTrack[i]->setAxisTitle("Number of Tracks", 2);
545  }
547  for (int i = 0; i < 5; ++i) {
548  histname = "NumberOf" + layerTypeName[i] + "LayersVsPhiVsEtaPerTrack_";
549  NumberOfLayersVsPhiVsEtaPerTrack[i] = ibooker.bookProfile2D(histname + CategoryName,
550  histname + CategoryName,
551  Eta2DBin,
552  EtaMin,
553  EtaMax,
554  Phi2DBin,
555  PhiMin,
556  PhiMax,
557  0,
558  40.,
559  "");
560  NumberOfLayersVsPhiVsEtaPerTrack[i]->setAxisTitle("Track #eta ", 1);
561  NumberOfLayersVsPhiVsEtaPerTrack[i]->setAxisTitle("Track #phi ", 2);
562  }
563  }
564 
565  // book the General Property histograms
566  // ---------------------------------------------------------------------------------//
567 
569  int Chi2Bin = conf_->getParameter<int>("Chi2Bin");
570  double Chi2Min = conf_->getParameter<double>("Chi2Min");
571  double Chi2Max = conf_->getParameter<double>("Chi2Max");
572 
573  int Chi2NDFBin = conf_->getParameter<int>("Chi2NDFBin");
574  double Chi2NDFMin = conf_->getParameter<double>("Chi2NDFMin");
575  double Chi2NDFMax = conf_->getParameter<double>("Chi2NDFMax");
576 
577  int Chi2ProbBin = conf_->getParameter<int>("Chi2ProbBin");
578  double Chi2ProbMin = conf_->getParameter<double>("Chi2ProbMin");
579  double Chi2ProbMax = conf_->getParameter<double>("Chi2ProbMax");
580 
581  //HI PLOTS////
582  int TransDCABins = conf_->getParameter<int>("TransDCABins");
583  double TransDCAMin = conf_->getParameter<double>("TransDCAMin");
584  double TransDCAMax = conf_->getParameter<double>("TransDCAMax");
585 
586  int LongDCABins = conf_->getParameter<int>("LongDCABins");
587  double LongDCAMin = conf_->getParameter<double>("LongDCAMin");
588  double LongDCAMax = conf_->getParameter<double>("LongDCAMax");
590 
591  ibooker.setCurrentFolder(TopFolder_ + "/GeneralProperties");
592 
593  histname = "Chi2_";
594  Chi2 = ibooker.book1D(histname + CategoryName, histname + CategoryName, Chi2Bin, Chi2Min, Chi2Max);
595  Chi2->setAxisTitle("Track #chi^{2}", 1);
596  Chi2->setAxisTitle("Number of Tracks", 2);
597 
598  histname = "Chi2Prob_";
599  Chi2Prob = ibooker.book1D(histname + CategoryName, histname + CategoryName, Chi2ProbBin, Chi2ProbMin, Chi2ProbMax);
600  Chi2Prob->setAxisTitle("Track #chi^{2} probability", 1);
601  Chi2Prob->setAxisTitle("Number of Tracks", 2);
602 
603  histname = "Chi2oNDF_";
604  Chi2oNDF = ibooker.book1D(histname + CategoryName, histname + CategoryName, Chi2NDFBin, Chi2NDFMin, Chi2NDFMax);
605  Chi2oNDF->setAxisTitle("Track #chi^{2}/ndf", 1);
606  Chi2oNDF->setAxisTitle("Number of Tracks", 2);
607 
609  //HI PLOTS///
611  if (doHIPlots_) {
612  histname = "LongDCASig_";
613  LongDCASig =
614  ibooker.book1D(histname + CategoryName, histname + CategoryName, LongDCABins, LongDCAMin, LongDCAMax);
615  LongDCASig->setAxisTitle("dz/#sigma_{dz}", 1);
616 
617  histname = "TransDCASig_";
618  TransDCASig =
619  ibooker.book1D(histname + CategoryName, histname + CategoryName, TransDCABins, TransDCAMin, TransDCAMax);
620  TransDCASig->setAxisTitle("dxy/#sigma_{dxy}", 1);
621 
622  histname = "dNdPhi_HighPurity_";
623  dNdPhi_HighPurity = ibooker.book1D(histname + CategoryName, histname + CategoryName, PhiBin, PhiMin, PhiMax);
624  dNdPhi_HighPurity->setAxisTitle("#phi", 1);
625 
626  histname = "dNdEta_HighPurity_";
627  dNdEta_HighPurity = ibooker.book1D(histname + CategoryName, histname + CategoryName, EtaBin, EtaMin, EtaMax);
628  dNdEta_HighPurity->setAxisTitle("#eta", 1);
629 
630  histname = "dNdPt_HighPurity_";
631  dNdPt_HighPurity = ibooker.book1D(histname + CategoryName, histname + CategoryName, 150, 0, 0.3);
632  dNdPt_HighPurity->setAxisTitle("#sigma_{p_{T}}/p_{T}", 1);
633 
634  histname = "NhitVsEta_HighPurity_";
636  ibooker.bookProfile(histname + CategoryName, histname + CategoryName, EtaBin, EtaMin, EtaMax, -0.5, 39.5, "");
637  NhitVsEta_HighPurity->setAxisTitle("Track #eta", 1);
638  NhitVsEta_HighPurity->setAxisTitle("Number of Valid RecHits in each Track", 2);
639 
640  histname = "NhitVsPhi_HighPurity_";
642  ibooker.bookProfile(histname + CategoryName, histname + CategoryName, PhiBin, PhiMin, PhiMax, -0.5, 39.5, "");
643  NhitVsPhi_HighPurity->setAxisTitle("Track #phi", 1);
644  NhitVsPhi_HighPurity->setAxisTitle("Number of Valid RecHits in each Track", 2);
645 
646  histname = "Ptdist_HighPurity_";
647  Ptdist_HighPurity = ibooker.book1D(histname + CategoryName, histname + CategoryName, 150, 0, 50.);
648  Ptdist_HighPurity->setAxisTitle("p_{T} (GeV/c)", 1);
649  Ptdist_HighPurity->setAxisTitle("Number of Tracks", 2);
650 
651  histname = "dNhitdPt_HighPurity_";
653  ibooker.bookProfile(histname + CategoryName, histname + CategoryName, 150, 0, 25., -0.5, 39.5, "");
654  dNhitdPt_HighPurity->setAxisTitle("p_{T} (GeV/c)", 1);
655  dNhitdPt_HighPurity->setAxisTitle("N_{hit}", 2);
656  }
657 
659  histname = "xPointOfClosestApproach_";
660  xPointOfClosestApproach = ibooker.book1D(histname + CategoryName, histname + CategoryName, VXBin, VXMin, VXMax);
661  xPointOfClosestApproach->setAxisTitle("x component of Track PCA to beam line (cm)", 1);
662  xPointOfClosestApproach->setAxisTitle("Number of Tracks", 2);
663 
664  histname = "yPointOfClosestApproach_";
665  yPointOfClosestApproach = ibooker.book1D(histname + CategoryName, histname + CategoryName, VYBin, VYMin, VYMax);
666  yPointOfClosestApproach->setAxisTitle("y component of Track PCA to beam line (cm)", 1);
667  yPointOfClosestApproach->setAxisTitle("Number of Tracks", 2);
668 
669  histname = "zPointOfClosestApproach_";
670  zPointOfClosestApproach = ibooker.book1D(histname + CategoryName, histname + CategoryName, VZBin, VZMin, VZMax);
671  zPointOfClosestApproach->setAxisTitle("z component of Track PCA to beam line (cm)", 1);
672  zPointOfClosestApproach->setAxisTitle("Number of Tracks", 2);
673 
674  histname = "xPointOfClosestApproachToPV_";
676  ibooker.book1D(histname + CategoryName, histname + CategoryName, VXBin, VXMin, VXMax);
677  xPointOfClosestApproachToPV->setAxisTitle("x component of Track PCA to pv (cm)", 1);
678  xPointOfClosestApproachToPV->setAxisTitle("Number of Tracks", 2);
679 
680  histname = "yPointOfClosestApproachToPV_";
682  ibooker.book1D(histname + CategoryName, histname + CategoryName, VYBin, VYMin, VYMax);
683  yPointOfClosestApproachToPV->setAxisTitle("y component of Track PCA to pv line (cm)", 1);
684  yPointOfClosestApproachToPV->setAxisTitle("Number of Tracks", 2);
685 
686  histname = "zPointOfClosestApproachToPV_";
688  ibooker.book1D(histname + CategoryName, histname + CategoryName, VZBin, VZ_PVMin, VZ_PVMax);
689  zPointOfClosestApproachToPV->setAxisTitle("z component of Track PCA to pv line (cm)", 1);
690  zPointOfClosestApproachToPV->setAxisTitle("Number of Tracks", 2);
691  }
692 
693  // See DataFormats/TrackReco/interface/TrackBase.h for track algorithm enum definition
694  // http://cmssw.cvs.cern.ch/cgi-bin/cmssw.cgi/CMSSW/DataFormats/TrackReco/interface/TrackBase.h?view=log
695  histname = "algorithm_";
696  algorithm = ibooker.book1D(histname + CategoryName,
697  histname + CategoryName,
699  0.,
700  double(reco::TrackBase::algoSize));
701  algorithm->setAxisTitle("Tracking algorithm", 1);
702  algorithm->setAxisTitle("Number of Tracks", 2);
703 
704  histname = "originalAlgorithm_";
705  oriAlgo = ibooker.book1D(histname + CategoryName,
706  histname + CategoryName,
708  0.,
709  double(reco::TrackBase::algoSize));
710  oriAlgo->setAxisTitle("Tracking algorithm", 1);
711  oriAlgo->setAxisTitle("Number of Tracks", 2);
712 
713  for (size_t ibin = 0; ibin < reco::TrackBase::algoSize - 1; ibin++) {
716  }
717 
718  size_t StopReasonNameSize = static_cast<size_t>(StopReason::SIZE);
719  histname = "stoppingSource_";
720  stoppingSource = ibooker.book1D(
721  histname + CategoryName, histname + CategoryName, StopReasonNameSize, 0., double(StopReasonNameSize));
722  stoppingSource->setAxisTitle("stopping reason", 1);
723  stoppingSource->setAxisTitle("Number of Tracks", 2);
724 
725  histname = "stoppingSourceVSeta_";
727  ibooker.bookProfile(histname + CategoryName, histname + CategoryName, EtaBin, EtaMin, EtaMax, 2, 0., 2.);
728  stoppingSourceVSeta->setAxisTitle("track #eta", 1);
729  stoppingSourceVSeta->setAxisTitle("stopped fraction", 2);
730 
731  histname = "stoppingSourceVSphi_";
733  ibooker.bookProfile(histname + CategoryName, histname + CategoryName, PhiBin, PhiMin, PhiMax, 2, 0., 2.);
734  stoppingSourceVSphi->setAxisTitle("track #phi", 1);
735  stoppingSourceVSphi->setAxisTitle("stopped fraction", 2);
736 
737  for (size_t ibin = 0; ibin < StopReasonNameSize; ibin++) {
739  }
740  }
741 }
MonitorElement * dNdPhi_HighPurity
MonitorElement * NumberOfValidRecHitsPerTrackVsPt
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
MonitorElement * bookProfile2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, double lowZ, double highZ, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:485
MonitorElement * NumberOfLayersPerTrack[4]
MonitorElement * ValidFractionVsPhiVsEtaPerTrack
MonitorElement * LongDCASig
MonitorElement * algorithm
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
MonitorElement * stoppingSource
MonitorElement * NumberOfLostRecHitsPerTrackVsPt
MonitorElement * NumberOfMORecHitVsPhiVsEtaPerTrack
MonitorElement * Chi2oNDF
MonitorElement * NumberOfLostRecHitsPerTrack
MonitorElement * yPointOfClosestApproach
MonitorElement * xPointOfClosestApproach
MonitorElement * TransDCASig
MonitorElement * NumberOfMIRecHitVsPhiVsEtaPerTrack
MonitorElement * stoppingSourceVSeta
MonitorElement * dNdPt_HighPurity
MonitorElement * stoppingSourceVSphi
MonitorElement * xPointOfClosestApproachToPV
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:408
MonitorElement * NumberOfMORecHitsPerTrack
MonitorElement * Chi2Prob
MonitorElement * dNhitdPt_HighPurity
MonitorElement * NumberOfValidRecHitVsPhiVsEtaPerTrack
const std::string StopReasonName[]
MonitorElement * zPointOfClosestApproachToPV
MonitorElement * NhitVsEta_HighPurity
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)
MonitorElement * NumberOfLayersVsPhiVsEtaPerTrack[5]
MonitorElement * NumberOfMIRecHitVsPtVsEtaPerTrack
MonitorElement * zPointOfClosestApproach
edm::ParameterSet const * conf_
Definition: TrackAnalyzer.h:94
std::string TopFolder_
Definition: TrackAnalyzer.h:81
MonitorElement * NumberOfMIRecHitsPerTrackVsPt
MonitorElement * NhitVsPhi_HighPurity
MonitorElement * NumberOfRecHitsPerTrack
MonitorElement * Ptdist_HighPurity
static const std::string algoNames[]
Definition: TrackBase.h:147
MonitorElement * NumberOfValidRecHitsPerTrack
TransDCABins
FOR HI PLOTS#####################.
MonitorElement * yPointOfClosestApproachToPV
MonitorElement * oriAlgo
MonitorElement * NumberOfLostRecHitVsPtVsEtaPerTrack
MonitorElement * NumberOfMORecHitsPerTrackVsPt
MonitorElement * dNdEta_HighPurity
MonitorElement * NumberOfValidRecHitVsPtVsEtaPerTrack
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
Definition: Chi2.h:15
MonitorElement * NumberOfMIRecHitsPerTrack
MonitorElement * NumberOfLostRecHitVsPhiVsEtaPerTrack
MonitorElement * NumberOfMORecHitVsPtVsEtaPerTrack
MonitorElement * ValidFractionPerTrack
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)

◆ bookHistosForLScertification()

void TrackAnalyzer::bookHistosForLScertification ( DQMStore::IBooker ibooker)
private

Definition at line 743 of file TrackAnalyzer.cc.

References HLTSiStripMonitoring_cff::AlgoName, dqm::implementation::IBooker::book1D(), beam_dqm_sourceclient-live_cfg::Chi2NDFBin, beam_dqm_sourceclient-live_cfg::Chi2NDFMax, beam_dqm_sourceclient-live_cfg::Chi2NDFMin, Chi2oNDF_lumiFlag, conf_, doLumiAnalysis_, edm::ParameterSet::getParameter(), histname, NumberOfRecHitsPerTrack_lumiFlag, dqm::impl::MonitorElement::setAxisTitle(), dqm::implementation::NavigatorBase::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, and TopFolder_.

Referenced by initHisto().

743  {
744  // parameters from the configuration
745  std::string QualName = conf_->getParameter<std::string>("Quality");
747 
748  // use the AlgoName and Quality Name
749  std::string CategoryName = !QualName.empty() ? AlgoName + "_" + QualName : AlgoName;
750 
751  // book LS analysis related histograms
752  // -----------------------------------
753  if (doLumiAnalysis_) {
754  // get binning from the configuration
755  int TKHitBin = conf_->getParameter<int>("RecHitBin");
756  double TKHitMin = conf_->getParameter<double>("RecHitMin");
757  double TKHitMax = conf_->getParameter<double>("RecHitMax");
758 
759  int Chi2NDFBin = conf_->getParameter<int>("Chi2NDFBin");
760  double Chi2NDFMin = conf_->getParameter<double>("Chi2NDFMin");
761  double Chi2NDFMax = conf_->getParameter<double>("Chi2NDFMax");
762 
763  // add by Mia in order to deal w/ LS transitions
764  ibooker.setCurrentFolder(TopFolder_ + "/LSanalysis");
765 
766  histname = "NumberOfRecHitsPerTrack_lumiFlag_";
768  ibooker.book1D(histname + CategoryName, histname + CategoryName, TKHitBin, TKHitMin, TKHitMax);
769  NumberOfRecHitsPerTrack_lumiFlag->setAxisTitle("Number of all RecHits of each Track");
770  NumberOfRecHitsPerTrack_lumiFlag->setAxisTitle("Number of Tracks", 2);
771 
772  histname = "Chi2oNDF_lumiFlag_";
774  ibooker.book1D(histname + CategoryName, histname + CategoryName, Chi2NDFBin, Chi2NDFMin, Chi2NDFMax);
775  Chi2oNDF_lumiFlag->setAxisTitle("Track #chi^{2}/ndf", 1);
776  Chi2oNDF_lumiFlag->setAxisTitle("Number of Tracks", 2);
777  }
778 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
MonitorElement * Chi2oNDF_lumiFlag
edm::ParameterSet const * conf_
Definition: TrackAnalyzer.h:94
std::string TopFolder_
Definition: TrackAnalyzer.h:81
MonitorElement * NumberOfRecHitsPerTrack_lumiFlag
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)

◆ bookHistosForState()

void TrackAnalyzer::bookHistosForState ( std::string  sname,
DQMStore::IBooker ibooker 
)
private

Definition at line 1464 of file TrackAnalyzer.cc.

References HLTSiStripMonitoring_cff::AlgoName, dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), dqm::implementation::IBooker::bookProfile(), beam_dqm_sourceclient-live_cfg::Chi2NDFMax, beam_dqm_sourceclient-live_cfg::Chi2NDFMin, tadqm::TrackAnalyzer::TkParameterMEs::Chi2oNDFVsEta, tadqm::TrackAnalyzer::TkParameterMEs::Chi2oNDFVsNHits, tadqm::TrackAnalyzer::TkParameterMEs::Chi2oNDFVsPhi, tadqm::TrackAnalyzer::TkParameterMEs::Chi2oNDFVsPt, tadqm::TrackAnalyzer::TkParameterMEs::Chi2oNDFVsTheta, MonitorTrackSTAMuons_cfi::Chi2ProbMax, MonitorTrackSTAMuons_cfi::Chi2ProbMin, tadqm::TrackAnalyzer::TkParameterMEs::Chi2ProbVsEta, tadqm::TrackAnalyzer::TkParameterMEs::Chi2ProbVsPhi, conf_, doAllPlots_, doThetaPlots_, doTrackPxPyPlots_, MonitorTrackInnerTrackMuons_cff::Eta2DBin, MonitorTrackInnerTrackMuons_cff::EtaBin, MonitorTrackSTAMuons_cfi::etaErrBin, MonitorTrackInnerTrackMuons_cff::etaErrMax, MonitorTrackSTAMuons_cfi::etaErrMin, MonitorTrackInnerTrackMuons_cff::EtaMax, MonitorTrackInnerTrackMuons_cff::EtaMin, edm::ParameterSet::getParameter(), histname, tadqm::TrackAnalyzer::TkParameterMEs::NumberOfLayersPerTrackVsEta, tadqm::TrackAnalyzer::TkParameterMEs::NumberOfLayersPerTrackVsPhi, tadqm::TrackAnalyzer::TkParameterMEs::NumberOfLayersPerTrackVsTheta, tadqm::TrackAnalyzer::TkParameterMEs::NumberOfRecHitsPerTrackVsEta, tadqm::TrackAnalyzer::TkParameterMEs::NumberOfRecHitsPerTrackVsPhi, tadqm::TrackAnalyzer::TkParameterMEs::NumberOfRecHitsPerTrackVsTheta, tadqm::TrackAnalyzer::TkParameterMEs::NumberOfValidRecHitsPerTrackVsEta, tadqm::TrackAnalyzer::TkParameterMEs::NumberOfValidRecHitsPerTrackVsPhi, tadqm::TrackAnalyzer::TkParameterMEs::NumberOfValidRecHitsPerTrackVsPt, MonitorTrackSTAMuons_cfi::pErrBin, MonitorTrackSTAMuons_cfi::pErrMax, MonitorTrackSTAMuons_cfi::pErrMin, MonitorTrackInnerTrackMuons_cff::Phi2DBin, MonitorTrackSTAMuons_cfi::PhiBin, MonitorTrackSTAMuons_cfi::phiErrBin, MonitorTrackInnerTrackMuons_cff::phiErrMax, MonitorTrackSTAMuons_cfi::phiErrMin, MonitorTrackSTAMuons_cfi::PhiMax, MonitorTrackSTAMuons_cfi::PhiMin, MonitorTrackSTAMuons_cfi::ptErrBin, MonitorTrackSTAMuons_cfi::ptErrMax, MonitorTrackSTAMuons_cfi::ptErrMin, MonitorTrackSTAMuons_cfi::pxErrBin, MonitorTrackSTAMuons_cfi::pxErrMax, MonitorTrackSTAMuons_cfi::pxErrMin, MonitorTrackSTAMuons_cfi::pyErrBin, MonitorTrackSTAMuons_cfi::pyErrMax, MonitorTrackSTAMuons_cfi::pyErrMin, MonitorTrackSTAMuons_cfi::pzErrBin, MonitorTrackSTAMuons_cfi::pzErrMax, MonitorTrackSTAMuons_cfi::pzErrMin, tadqm::TrackAnalyzer::TkParameterMEs::Quality, reco::TrackBase::qualityNames, tadqm::TrackAnalyzer::TkParameterMEs::Ratio_byFolding, tadqm::TrackAnalyzer::TkParameterMEs::Ratio_byFolding2, MonitorTrackSTAMuons_cfi::RecHitBin, MonitorTrackSTAMuons_cfi::RecHitMax, MonitorTrackSTAMuons_cfi::RecHitMin, MonitorTrackSTAMuons_cfi::RecLayBin, MonitorTrackSTAMuons_cfi::RecLayMax, MonitorTrackSTAMuons_cfi::RecLayMin, dqm::impl::MonitorElement::setAxisTitle(), dqm::impl::MonitorElement::setBinLabel(), dqm::implementation::NavigatorBase::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, MonitorTrackSTAMuons_cfi::ThetaBin, MonitorTrackSTAMuons_cfi::ThetaMax, MonitorTrackSTAMuons_cfi::ThetaMin, TkParameterMEMap, TopFolder_, tadqm::TrackAnalyzer::TkParameterMEs::TrackEta, tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaErr, tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaHighPurity, tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaLoose, tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaPhi, tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaPhiInner, tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaPhiInverted, tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaPhiInvertedoutofphase, tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaPhiOuter, tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaTight, tadqm::TrackAnalyzer::TkParameterMEs::TrackP, MonitorTrackSTAMuons_cfi::TrackPBin, tadqm::TrackAnalyzer::TkParameterMEs::TrackPErr, tadqm::TrackAnalyzer::TkParameterMEs::TrackPhi, tadqm::TrackAnalyzer::TkParameterMEs::TrackPhiErr, MonitorTrackSTAMuons_cfi::TrackPMax, MonitorTrackSTAMuons_cfi::TrackPMin, tadqm::TrackAnalyzer::TkParameterMEs::TrackPt, tadqm::TrackAnalyzer::TkParameterMEs::TrackPt_NegEta_Phi_btw_0_neg16, tadqm::TrackAnalyzer::TkParameterMEs::TrackPt_NegEta_Phi_btw_16_0, tadqm::TrackAnalyzer::TkParameterMEs::TrackPt_NegEta_Phi_btw_32_16, tadqm::TrackAnalyzer::TkParameterMEs::TrackPt_NegEta_Phi_btw_neg16_neg32, tadqm::TrackAnalyzer::TkParameterMEs::TrackPt_PosEta_Phi_btw_0_neg16, tadqm::TrackAnalyzer::TkParameterMEs::TrackPt_PosEta_Phi_btw_16_0, tadqm::TrackAnalyzer::TkParameterMEs::TrackPt_PosEta_Phi_btw_32_16, tadqm::TrackAnalyzer::TkParameterMEs::TrackPt_PosEta_Phi_btw_neg16_neg32, beam_dqm_sourceclient-live_cfg::TrackPtBin, tadqm::TrackAnalyzer::TkParameterMEs::TrackPtErr, tadqm::TrackAnalyzer::TkParameterMEs::TrackPtErrVsEta, tadqm::TrackAnalyzer::TkParameterMEs::TrackPtHighPurity, tadqm::TrackAnalyzer::TkParameterMEs::TrackPtLoose, beam_dqm_sourceclient-live_cfg::TrackPtMax, beam_dqm_sourceclient-live_cfg::TrackPtMin, tadqm::TrackAnalyzer::TkParameterMEs::TrackPtTight, tadqm::TrackAnalyzer::TkParameterMEs::TrackPx, MonitorTrackSTAMuons_cfi::TrackPxBin, tadqm::TrackAnalyzer::TkParameterMEs::TrackPxErr, MonitorTrackSTAMuons_cfi::TrackPxMax, MonitorTrackSTAMuons_cfi::TrackPxMin, tadqm::TrackAnalyzer::TkParameterMEs::TrackPy, MonitorTrackSTAMuons_cfi::TrackPyBin, tadqm::TrackAnalyzer::TkParameterMEs::TrackPyErr, MonitorTrackSTAMuons_cfi::TrackPyMax, MonitorTrackSTAMuons_cfi::TrackPyMin, tadqm::TrackAnalyzer::TkParameterMEs::TrackPz, MonitorTrackSTAMuons_cfi::TrackPzBin, tadqm::TrackAnalyzer::TkParameterMEs::TrackPzErr, MonitorTrackSTAMuons_cfi::TrackPzMax, MonitorTrackSTAMuons_cfi::TrackPzMin, tadqm::TrackAnalyzer::TkParameterMEs::TrackQ, MonitorTrackSTAMuons_cfi::TrackQBin, MonitorTrackSTAMuons_cfi::TrackQMax, MonitorTrackSTAMuons_cfi::TrackQMin, tadqm::TrackAnalyzer::TkParameterMEs::TrackQoverP, and tadqm::TrackAnalyzer::TkParameterMEs::TrackTheta.

Referenced by initHisto().

1464  {
1465  // parameters from the configuration
1466  std::string QualName = conf_->getParameter<std::string>("Quality");
1468  std::string Folder = TopFolder_.substr(0, 2);
1469 
1470  // use the AlgoName and Quality Name
1471  std::string CategoryName = !QualName.empty() ? AlgoName + "_" + QualName : AlgoName;
1472 
1473  // get binning from the configuration
1474  double Chi2NDFMin = conf_->getParameter<double>("Chi2NDFMin");
1475  double Chi2NDFMax = conf_->getParameter<double>("Chi2NDFMax");
1476 
1477  int RecHitBin = conf_->getParameter<int>("RecHitBin");
1478  double RecHitMin = conf_->getParameter<double>("RecHitMin");
1479  double RecHitMax = conf_->getParameter<double>("RecHitMax");
1480 
1481  int RecLayBin = conf_->getParameter<int>("RecHitBin");
1482  double RecLayMin = conf_->getParameter<double>("RecHitMin");
1483  double RecLayMax = conf_->getParameter<double>("RecHitMax");
1484 
1485  int PhiBin = conf_->getParameter<int>("PhiBin");
1486  double PhiMin = conf_->getParameter<double>("PhiMin");
1487  double PhiMax = conf_->getParameter<double>("PhiMax");
1488 
1489  int EtaBin = conf_->getParameter<int>("EtaBin");
1490  double EtaMin = conf_->getParameter<double>("EtaMin");
1491  double EtaMax = conf_->getParameter<double>("EtaMax");
1492 
1493  int Phi2DBin = conf_->getParameter<int>("Phi2DBin");
1494  int Eta2DBin = conf_->getParameter<int>("Eta2DBin");
1495 
1496  int ThetaBin = conf_->getParameter<int>("ThetaBin");
1497  double ThetaMin = conf_->getParameter<double>("ThetaMin");
1498  double ThetaMax = conf_->getParameter<double>("ThetaMax");
1499 
1500  int TrackQBin = conf_->getParameter<int>("TrackQBin");
1501  double TrackQMin = conf_->getParameter<double>("TrackQMin");
1502  double TrackQMax = conf_->getParameter<double>("TrackQMax");
1503 
1504  int TrackPtBin = conf_->getParameter<int>("TrackPtBin");
1505  double TrackPtMin = conf_->getParameter<double>("TrackPtMin");
1506  double TrackPtMax = conf_->getParameter<double>("TrackPtMax");
1507 
1508  int TrackPBin = conf_->getParameter<int>("TrackPBin");
1509  double TrackPMin = conf_->getParameter<double>("TrackPMin");
1510  double TrackPMax = conf_->getParameter<double>("TrackPMax");
1511 
1512  int TrackPxBin = conf_->getParameter<int>("TrackPxBin");
1513  double TrackPxMin = conf_->getParameter<double>("TrackPxMin");
1514  double TrackPxMax = conf_->getParameter<double>("TrackPxMax");
1515 
1516  int TrackPyBin = conf_->getParameter<int>("TrackPyBin");
1517  double TrackPyMin = conf_->getParameter<double>("TrackPyMin");
1518  double TrackPyMax = conf_->getParameter<double>("TrackPyMax");
1519 
1520  int TrackPzBin = conf_->getParameter<int>("TrackPzBin");
1521  double TrackPzMin = conf_->getParameter<double>("TrackPzMin");
1522  double TrackPzMax = conf_->getParameter<double>("TrackPzMax");
1523 
1524  int ptErrBin = conf_->getParameter<int>("ptErrBin");
1525  double ptErrMin = conf_->getParameter<double>("ptErrMin");
1526  double ptErrMax = conf_->getParameter<double>("ptErrMax");
1527 
1528  int pxErrBin = conf_->getParameter<int>("pxErrBin");
1529  double pxErrMin = conf_->getParameter<double>("pxErrMin");
1530  double pxErrMax = conf_->getParameter<double>("pxErrMax");
1531 
1532  int pyErrBin = conf_->getParameter<int>("pyErrBin");
1533  double pyErrMin = conf_->getParameter<double>("pyErrMin");
1534  double pyErrMax = conf_->getParameter<double>("pyErrMax");
1535 
1536  int pzErrBin = conf_->getParameter<int>("pzErrBin");
1537  double pzErrMin = conf_->getParameter<double>("pzErrMin");
1538  double pzErrMax = conf_->getParameter<double>("pzErrMax");
1539 
1540  int pErrBin = conf_->getParameter<int>("pErrBin");
1541  double pErrMin = conf_->getParameter<double>("pErrMin");
1542  double pErrMax = conf_->getParameter<double>("pErrMax");
1543 
1544  int phiErrBin = conf_->getParameter<int>("phiErrBin");
1545  double phiErrMin = conf_->getParameter<double>("phiErrMin");
1546  double phiErrMax = conf_->getParameter<double>("phiErrMax");
1547 
1548  int etaErrBin = conf_->getParameter<int>("etaErrBin");
1549  double etaErrMin = conf_->getParameter<double>("etaErrMin");
1550  double etaErrMax = conf_->getParameter<double>("etaErrMax");
1551 
1552  double Chi2ProbMin = conf_->getParameter<double>("Chi2ProbMin");
1553  double Chi2ProbMax = conf_->getParameter<double>("Chi2ProbMax");
1554 
1555  ibooker.setCurrentFolder(TopFolder_);
1556 
1557  TkParameterMEs tkmes;
1558 
1559  std::string histTag = (sname == "default") ? CategoryName : sname + "_" + CategoryName;
1560 
1561  if (doAllPlots_) {
1562  // general properties
1563  ibooker.setCurrentFolder(TopFolder_ + "/GeneralProperties");
1564 
1565  if (doThetaPlots_) {
1566  histname = "Chi2oNDFVsTheta_" + histTag;
1567  tkmes.Chi2oNDFVsTheta =
1569  tkmes.Chi2oNDFVsTheta->setAxisTitle("Track #theta", 1);
1570  tkmes.Chi2oNDFVsTheta->setAxisTitle("Track #chi^{2}/ndf", 2);
1571  }
1572  histname = "Chi2oNDFVsPhi_" + histTag;
1573  tkmes.Chi2oNDFVsPhi = ibooker.bookProfile(histname, histname, PhiBin, PhiMin, PhiMax, Chi2NDFMin, Chi2NDFMax, "");
1574  tkmes.Chi2oNDFVsPhi->setAxisTitle("Track #phi", 1);
1575  tkmes.Chi2oNDFVsPhi->setAxisTitle("Track #chi^{2}/ndf", 2);
1576 
1577  histname = "Chi2ProbVsPhi_" + histTag;
1578  tkmes.Chi2ProbVsPhi = ibooker.bookProfile(
1579  histname + CategoryName, histname + CategoryName, PhiBin, PhiMin, PhiMax, Chi2ProbMin, Chi2ProbMax);
1580  tkmes.Chi2ProbVsPhi->setAxisTitle("Tracks #phi", 1);
1581  tkmes.Chi2ProbVsPhi->setAxisTitle("Track #chi^{2} probability", 2);
1582 
1583  histname = "Chi2ProbVsEta_" + histTag;
1584  tkmes.Chi2ProbVsEta = ibooker.bookProfile(
1585  histname + CategoryName, histname + CategoryName, EtaBin, EtaMin, EtaMax, Chi2ProbMin, Chi2ProbMax);
1586  tkmes.Chi2ProbVsEta->setAxisTitle("Tracks #eta", 1);
1587  tkmes.Chi2ProbVsEta->setAxisTitle("Track #chi^{2} probability", 2);
1588  }
1589 
1590  // general properties
1591  ibooker.setCurrentFolder(TopFolder_ + "/GeneralProperties");
1592 
1593  histname = "Chi2oNDFVsEta_" + histTag;
1594  tkmes.Chi2oNDFVsEta = ibooker.bookProfile(histname, histname, EtaBin, EtaMin, EtaMax, Chi2NDFMin, Chi2NDFMax, "");
1595  tkmes.Chi2oNDFVsEta->setAxisTitle("Track #eta", 1);
1596  tkmes.Chi2oNDFVsEta->setAxisTitle("Track #chi^{2}/ndf", 2);
1597 
1598  histname = "Chi2oNDFVsPt_" + histTag;
1599  tkmes.Chi2oNDFVsPt =
1601  tkmes.Chi2oNDFVsPt->setAxisTitle("Track p_{T} (GeV/c)", 1);
1602  tkmes.Chi2oNDFVsPt->setAxisTitle("Track #chi^{2}/ndf", 2);
1603 
1604  histname = "Chi2oNDFVsNHits_" + histTag;
1605  tkmes.Chi2oNDFVsNHits = ibooker.bookProfile(histname, histname, 50, 0., 50, Chi2NDFMin, Chi2NDFMax, "");
1606  tkmes.Chi2oNDFVsNHits->setAxisTitle("Track NHits", 1);
1607  tkmes.Chi2oNDFVsNHits->setAxisTitle("Track #chi^{2}/ndf", 2);
1608 
1609  histname = "TrackP_" + histTag;
1610  tkmes.TrackP = ibooker.book1D(histname, histname, TrackPBin, TrackPMin, TrackPMax);
1611  tkmes.TrackP->setAxisTitle("Track |p| (GeV/c)", 1);
1612  tkmes.TrackP->setAxisTitle("Number of Tracks", 2);
1613 
1614  histname = "TrackPt_" + histTag;
1615  tkmes.TrackPt = ibooker.book1D(histname, histname, TrackPtBin, TrackPtMin, TrackPtMax);
1616  tkmes.TrackPt->setAxisTitle("Track p_{T} (GeV/c)", 1);
1617  tkmes.TrackPt->setAxisTitle("Number of Tracks", 2);
1618 
1619  if (doTrackPxPyPlots_) {
1620  histname = "TrackPx_" + histTag;
1621  tkmes.TrackPx = ibooker.book1D(histname, histname, TrackPxBin, TrackPxMin, TrackPxMax);
1622  tkmes.TrackPx->setAxisTitle("Track p_{x} (GeV/c)", 1);
1623  tkmes.TrackPx->setAxisTitle("Number of Tracks", 2);
1624 
1625  histname = "TrackPy_" + histTag;
1626  tkmes.TrackPy = ibooker.book1D(histname, histname, TrackPyBin, TrackPyMin, TrackPyMax);
1627  tkmes.TrackPy->setAxisTitle("Track p_{y} (GeV/c)", 1);
1628  tkmes.TrackPy->setAxisTitle("Number of Tracks", 2);
1629  }
1630  histname = "TrackPz_" + histTag;
1631  tkmes.TrackPz = ibooker.book1D(histname, histname, TrackPzBin, TrackPzMin, TrackPzMax);
1632  tkmes.TrackPz->setAxisTitle("Track p_{z} (GeV/c)", 1);
1633  tkmes.TrackPz->setAxisTitle("Number of Tracks", 2);
1634 
1635  histname = "TrackPhi_" + histTag;
1636  tkmes.TrackPhi = ibooker.book1D(histname, histname, PhiBin, PhiMin, PhiMax);
1637  tkmes.TrackPhi->setAxisTitle("Track #phi", 1);
1638  tkmes.TrackPhi->setAxisTitle("Number of Tracks", 2);
1639 
1640  histname = "TrackEta_" + histTag;
1641  tkmes.TrackEta = ibooker.book1D(histname, histname, EtaBin, EtaMin, EtaMax);
1642  tkmes.TrackEta->setAxisTitle("Track #eta", 1);
1643  tkmes.TrackEta->setAxisTitle("Number of Tracks", 2);
1644 
1645  if (Folder == "Tr") {
1646  histname = "TrackPtHighPurity_" + histTag;
1647  tkmes.TrackPtHighPurity = ibooker.book1D(histname, histname, TrackPtBin, TrackPtMin, TrackPtMax);
1648  tkmes.TrackPtHighPurity->setAxisTitle("Track p_{T} (GeV/c)", 1);
1649  tkmes.TrackPtHighPurity->setAxisTitle("Number of High Purity Tracks", 2);
1650 
1651  histname = "TrackPtTight_" + histTag;
1652  tkmes.TrackPtTight = ibooker.book1D(histname, histname, TrackPtBin, TrackPtMin, TrackPtMax);
1653  tkmes.TrackPtTight->setAxisTitle("Track p_{T} (GeV/c)", 1);
1654  tkmes.TrackPtTight->setAxisTitle("Number of Tight Tracks", 2);
1655 
1656  histname = "TrackPtLoose_" + histTag;
1657  tkmes.TrackPtLoose = ibooker.book1D(histname, histname, TrackPtBin, TrackPtMin, TrackPtMax);
1658  tkmes.TrackPtLoose->setAxisTitle("Track p_{T} (GeV/c)", 1);
1659  tkmes.TrackPtLoose->setAxisTitle("Number of Loose Tracks", 2);
1660 
1661  histname = "Quality_";
1662  tkmes.Quality = ibooker.book1D(histname + CategoryName, histname + CategoryName, 3, 0., 3.);
1663  tkmes.Quality->setAxisTitle("Track quality", 1);
1664  tkmes.Quality->setAxisTitle("Number of Tracks", 2);
1665 
1666  for (size_t ibin = 0; ibin < 3; ibin++) {
1667  tkmes.Quality->setBinLabel(ibin + 1, reco::TrackBase::qualityNames[ibin]);
1668  }
1669 
1670  histname = "TrackPt_NegEta_Phi_btw_neg16_neg32_" + histTag;
1671  tkmes.TrackPt_NegEta_Phi_btw_neg16_neg32 = ibooker.book1D(histname, histname, TrackPtBin, TrackPtMin, TrackPtMax);
1672  tkmes.TrackPt_NegEta_Phi_btw_neg16_neg32->setAxisTitle("Track p_{T} (GeV/c)", 1);
1673  tkmes.TrackPt_NegEta_Phi_btw_neg16_neg32->setAxisTitle("Number of Tracks", 2);
1674 
1675  histname = "TrackPt_NegEta_Phi_btw_0_neg16_" + histTag;
1676  tkmes.TrackPt_NegEta_Phi_btw_0_neg16 = ibooker.book1D(histname, histname, TrackPtBin, TrackPtMin, TrackPtMax);
1677  tkmes.TrackPt_NegEta_Phi_btw_0_neg16->setAxisTitle("Track p_{T} (GeV/c)", 1);
1678  tkmes.TrackPt_NegEta_Phi_btw_0_neg16->setAxisTitle("Number of Tracks", 2);
1679 
1680  histname = "TrackPt_NegEta_Phi_btw_16_0_" + histTag;
1681  tkmes.TrackPt_NegEta_Phi_btw_16_0 = ibooker.book1D(histname, histname, TrackPtBin, TrackPtMin, TrackPtMax);
1682  tkmes.TrackPt_NegEta_Phi_btw_16_0->setAxisTitle("Track p_{T} (GeV/c)", 1);
1683  tkmes.TrackPt_NegEta_Phi_btw_16_0->setAxisTitle("Number of Tracks", 2);
1684 
1685  histname = "TrackPt_NegEta_Phi_btw_32_16_" + histTag;
1686  tkmes.TrackPt_NegEta_Phi_btw_32_16 = ibooker.book1D(histname, histname, TrackPtBin, TrackPtMin, TrackPtMax);
1687  tkmes.TrackPt_NegEta_Phi_btw_32_16->setAxisTitle("Track p_{T} (GeV/c)", 1);
1688  tkmes.TrackPt_NegEta_Phi_btw_32_16->setAxisTitle("Number of Tracks", 2);
1689 
1690  histname = "TrackPt_PosEta_Phi_btw_neg16_neg32_" + histTag;
1691  tkmes.TrackPt_PosEta_Phi_btw_neg16_neg32 = ibooker.book1D(histname, histname, TrackPtBin, TrackPtMin, TrackPtMax);
1692  tkmes.TrackPt_PosEta_Phi_btw_neg16_neg32->setAxisTitle("Track p_{T} (GeV/c)", 1);
1693  tkmes.TrackPt_PosEta_Phi_btw_neg16_neg32->setAxisTitle("Number of Tracks", 2);
1694 
1695  histname = "TrackPt_PosEta_Phi_btw_0_neg16_" + histTag;
1696  tkmes.TrackPt_PosEta_Phi_btw_0_neg16 = ibooker.book1D(histname, histname, TrackPtBin, TrackPtMin, TrackPtMax);
1697  tkmes.TrackPt_PosEta_Phi_btw_0_neg16->setAxisTitle("Track p_{T} (GeV/c)", 1);
1698  tkmes.TrackPt_PosEta_Phi_btw_0_neg16->setAxisTitle("Number of Tracks", 2);
1699 
1700  histname = "TrackPt_PosEta_Phi_btw_16_0_" + histTag;
1701  tkmes.TrackPt_PosEta_Phi_btw_16_0 = ibooker.book1D(histname, histname, TrackPtBin, TrackPtMin, TrackPtMax);
1702  tkmes.TrackPt_PosEta_Phi_btw_16_0->setAxisTitle("Track p_{T} (GeV/c)", 1);
1703  tkmes.TrackPt_PosEta_Phi_btw_16_0->setAxisTitle("Number of Tracks", 2);
1704 
1705  histname = "TrackPt_PosEta_Phi_btw_32_16_" + histTag;
1706  tkmes.TrackPt_PosEta_Phi_btw_32_16 = ibooker.book1D(histname, histname, TrackPtBin, TrackPtMin, TrackPtMax);
1707  tkmes.TrackPt_PosEta_Phi_btw_32_16->setAxisTitle("Track p_{T} (GeV/c)", 1);
1708  tkmes.TrackPt_PosEta_Phi_btw_32_16->setAxisTitle("Number of Tracks", 2);
1709 
1710  histname = "Ratio_byFolding_" + histTag;
1711  tkmes.Ratio_byFolding = ibooker.book1D(histname, histname, TrackPtBin, TrackPtMin, TrackPtMax);
1712  tkmes.Ratio_byFolding->setAxisTitle("Track p_{T} (GeV/c)", 1);
1713 
1714  histname = "Ratio_byFolding2_" + histTag;
1715  tkmes.Ratio_byFolding2 = ibooker.book1D(histname, histname, TrackPtBin, TrackPtMin, TrackPtMax);
1716  tkmes.Ratio_byFolding2->setAxisTitle("Track p_{T} (GeV/c)", 1);
1717 
1718  histname = "TrackEtaHighpurity_" + histTag;
1719  tkmes.TrackEtaHighPurity = ibooker.book1D(histname, histname, EtaBin, EtaMin, EtaMax);
1720  tkmes.TrackEtaHighPurity->setAxisTitle("Track #eta", 1);
1721  tkmes.TrackEtaHighPurity->setAxisTitle("Number of High Purity Tracks", 2);
1722 
1723  histname = "TrackEtaTight_" + histTag;
1724  tkmes.TrackEtaTight = ibooker.book1D(histname, histname, EtaBin, EtaMin, EtaMax);
1725  tkmes.TrackEtaTight->setAxisTitle("Track #eta", 1);
1726  tkmes.TrackEtaTight->setAxisTitle("Number of Tight Tracks", 2);
1727 
1728  histname = "TrackEtaLoose_" + histTag;
1729  tkmes.TrackEtaLoose = ibooker.book1D(histname, histname, EtaBin, EtaMin, EtaMax);
1730  tkmes.TrackEtaLoose->setAxisTitle("Track #eta", 1);
1731  tkmes.TrackEtaLoose->setAxisTitle("Number of Loose Tracks", 2);
1732 
1733  histname = "TrackEtaPhiInverted_" + histTag;
1734  tkmes.TrackEtaPhiInverted = ibooker.book2D(histname, histname, Eta2DBin, EtaMin, EtaMax, Phi2DBin, PhiMin, PhiMax);
1735  tkmes.TrackEtaPhiInverted->setAxisTitle("Track #eta", 1);
1736  tkmes.TrackEtaPhiInverted->setAxisTitle("Track #phi", 2);
1737 
1738  histname = "TrackEtaPhiInvertedoutofphase_" + histTag;
1739  tkmes.TrackEtaPhiInvertedoutofphase =
1741  tkmes.TrackEtaPhiInvertedoutofphase->setAxisTitle("Track #eta", 1);
1742  tkmes.TrackEtaPhiInvertedoutofphase->setAxisTitle("Track #phi", 2);
1743 
1744  histname = "TrackQoverP_" + histTag;
1745  tkmes.TrackQoverP = ibooker.book1D(histname, histname, 10 * TrackQBin, TrackQMin, TrackQMax);
1746  tkmes.TrackQoverP->setAxisTitle("Track QoverP", 1);
1747  tkmes.TrackQoverP->setAxisTitle("Number of Tracks", 2);
1748  }
1749 
1750  histname = "TrackEtaPhi_" + histTag;
1751  tkmes.TrackEtaPhi = ibooker.book2D(histname, histname, Eta2DBin, EtaMin, EtaMax, Phi2DBin, PhiMin, PhiMax);
1752  tkmes.TrackEtaPhi->setAxisTitle("Track #eta", 1);
1753  tkmes.TrackEtaPhi->setAxisTitle("Track #phi", 2);
1754 
1755  histname = "TrackEtaPhiInner_" + histTag;
1756  tkmes.TrackEtaPhiInner = ibooker.book2D(histname, histname, Eta2DBin, EtaMin, EtaMax, Phi2DBin, PhiMin, PhiMax);
1757  tkmes.TrackEtaPhiInner->setAxisTitle("Track #eta", 1);
1758  tkmes.TrackEtaPhiInner->setAxisTitle("Track #phi", 2);
1759 
1760  histname = "TrackEtaPhiOuter_" + histTag;
1761  tkmes.TrackEtaPhiOuter = ibooker.book2D(histname, histname, Eta2DBin, EtaMin, EtaMax, Phi2DBin, PhiMin, PhiMax);
1762  tkmes.TrackEtaPhiOuter->setAxisTitle("Track #eta", 1);
1763  tkmes.TrackEtaPhiOuter->setAxisTitle("Track #phi", 2);
1764 
1765  if (doThetaPlots_) {
1766  histname = "TrackTheta_" + histTag;
1767  tkmes.TrackTheta = ibooker.book1D(histname, histname, ThetaBin, ThetaMin, ThetaMax);
1768  tkmes.TrackTheta->setAxisTitle("Track #theta", 1);
1769  tkmes.TrackTheta->setAxisTitle("Number of Tracks", 2);
1770  }
1771  histname = "TrackQ_" + histTag;
1772  tkmes.TrackQ = ibooker.book1D(histname, histname, TrackQBin, TrackQMin, TrackQMax);
1773  tkmes.TrackQ->setAxisTitle("Track Charge", 1);
1774  tkmes.TrackQ->setAxisTitle("Number of Tracks", 2);
1775 
1776  histname = "TrackPErrOverP_" + histTag;
1777  tkmes.TrackPErr = ibooker.book1D(histname, histname, pErrBin, pErrMin, pErrMax);
1778  tkmes.TrackPErr->setAxisTitle("track error(p)/p", 1);
1779  tkmes.TrackPErr->setAxisTitle("Number of Tracks", 2);
1780 
1781  histname = "TrackPtErrOverPt_" + histTag;
1782  tkmes.TrackPtErr = ibooker.book1D(histname, histname, ptErrBin, ptErrMin, ptErrMax);
1783  tkmes.TrackPtErr->setAxisTitle("track error(p_{T})/p_{T}", 1);
1784  tkmes.TrackPtErr->setAxisTitle("Number of Tracks", 2);
1785 
1786  histname = "TrackPtErrOverPtVsEta_" + histTag;
1787  tkmes.TrackPtErrVsEta = ibooker.bookProfile(histname, histname, EtaBin, EtaMin, EtaMax, ptErrMin, ptErrMax);
1788  tkmes.TrackPtErrVsEta->setAxisTitle("Track #eta", 1);
1789  tkmes.TrackPtErrVsEta->setAxisTitle("track error(p_{T})/p_{T}", 2);
1790 
1791  if (doTrackPxPyPlots_) {
1792  histname = "TrackPxErrOverPx_" + histTag;
1793  tkmes.TrackPxErr = ibooker.book1D(histname, histname, pxErrBin, pxErrMin, pxErrMax);
1794  tkmes.TrackPxErr->setAxisTitle("track error(p_{x})/p_{x}", 1);
1795  tkmes.TrackPxErr->setAxisTitle("Number of Tracks", 2);
1796 
1797  histname = "TrackPyErrOverPy_" + histTag;
1798  tkmes.TrackPyErr = ibooker.book1D(histname, histname, pyErrBin, pyErrMin, pyErrMax);
1799  tkmes.TrackPyErr->setAxisTitle("track error(p_{y})/p_{y}", 1);
1800  tkmes.TrackPyErr->setAxisTitle("Number of Tracks", 2);
1801  }
1802  histname = "TrackPzErrOverPz_" + histTag;
1803  tkmes.TrackPzErr = ibooker.book1D(histname, histname, pzErrBin, pzErrMin, pzErrMax);
1804  tkmes.TrackPzErr->setAxisTitle("track error(p_{z})/p_{z}", 1);
1805  tkmes.TrackPzErr->setAxisTitle("Number of Tracks", 2);
1806 
1807  histname = "TrackPhiErr_" + histTag;
1808  tkmes.TrackPhiErr = ibooker.book1D(histname, histname, phiErrBin, phiErrMin, phiErrMax);
1809  tkmes.TrackPhiErr->setAxisTitle("track error(#phi)");
1810  tkmes.TrackPhiErr->setAxisTitle("Number of Tracks", 2);
1811 
1812  histname = "TrackEtaErr_" + histTag;
1813  tkmes.TrackEtaErr = ibooker.book1D(histname, histname, etaErrBin, etaErrMin, etaErrMax);
1814  tkmes.TrackEtaErr->setAxisTitle("track error(#eta)");
1815  tkmes.TrackEtaErr->setAxisTitle("Number of Tracks", 2);
1816 
1817  // rec hit profiles
1818  ibooker.setCurrentFolder(TopFolder_ + "/GeneralProperties");
1819  histname = "NumberOfRecHitsPerTrackVsPhi_" + histTag;
1820  tkmes.NumberOfRecHitsPerTrackVsPhi =
1822  tkmes.NumberOfRecHitsPerTrackVsPhi->setAxisTitle("Track #phi", 1);
1823  tkmes.NumberOfRecHitsPerTrackVsPhi->setAxisTitle("Number of RecHits in each Track", 2);
1824 
1825  if (doThetaPlots_) {
1826  histname = "NumberOfRecHitsPerTrackVsTheta_" + histTag;
1827  tkmes.NumberOfRecHitsPerTrackVsTheta =
1829  tkmes.NumberOfRecHitsPerTrackVsTheta->setAxisTitle("Track #phi", 1);
1830  tkmes.NumberOfRecHitsPerTrackVsTheta->setAxisTitle("Number of RecHits in each Track", 2);
1831  }
1832  histname = "NumberOfRecHitsPerTrackVsEta_" + histTag;
1833  tkmes.NumberOfRecHitsPerTrackVsEta =
1835  tkmes.NumberOfRecHitsPerTrackVsEta->setAxisTitle("Track #eta", 1);
1836  tkmes.NumberOfRecHitsPerTrackVsEta->setAxisTitle("Number of RecHits in each Track", 2);
1837 
1838  histname = "NumberOfValidRecHitsPerTrackVsPhi_" + histTag;
1839  tkmes.NumberOfValidRecHitsPerTrackVsPhi =
1841  tkmes.NumberOfValidRecHitsPerTrackVsPhi->setAxisTitle("Track #phi", 1);
1842  tkmes.NumberOfValidRecHitsPerTrackVsPhi->setAxisTitle("Number of valid RecHits in each Track", 2);
1843 
1844  histname = "NumberOfValidRecHitsPerTrackVsEta_" + histTag;
1845  tkmes.NumberOfValidRecHitsPerTrackVsEta =
1847  tkmes.NumberOfValidRecHitsPerTrackVsEta->setAxisTitle("Track #eta", 1);
1848  tkmes.NumberOfValidRecHitsPerTrackVsEta->setAxisTitle("Number of valid RecHits in each Track", 2);
1849 
1850  histname = "NumberOfValidRecHitsPerTrackVsPt_" + histTag;
1851  tkmes.NumberOfValidRecHitsPerTrackVsPt =
1853  tkmes.NumberOfValidRecHitsPerTrackVsPt->setAxisTitle("Track p_{T} [GeV]", 1);
1854  tkmes.NumberOfValidRecHitsPerTrackVsPt->setAxisTitle("Number of valid RecHits in each Track", 2);
1855 
1857  histname = "NumberOfLayersPerTrackVsPhi_" + histTag;
1858  tkmes.NumberOfLayersPerTrackVsPhi =
1860  tkmes.NumberOfLayersPerTrackVsPhi->setAxisTitle("Track #phi", 1);
1861  tkmes.NumberOfLayersPerTrackVsPhi->setAxisTitle("Number of Layers in each Track", 2);
1862 
1863  if (doThetaPlots_) {
1864  histname = "NumberOfLayersPerTrackVsTheta_" + histTag;
1865  tkmes.NumberOfLayersPerTrackVsTheta =
1867  tkmes.NumberOfLayersPerTrackVsTheta->setAxisTitle("Track #phi", 1);
1868  tkmes.NumberOfLayersPerTrackVsTheta->setAxisTitle("Number of Layers in each Track", 2);
1869  }
1870  histname = "NumberOfLayersPerTrackVsEta_" + histTag;
1871  tkmes.NumberOfLayersPerTrackVsEta =
1873  tkmes.NumberOfLayersPerTrackVsEta->setAxisTitle("Track #eta", 1);
1874  tkmes.NumberOfLayersPerTrackVsEta->setAxisTitle("Number of Layers in each Track", 2);
1875 
1876  if (doThetaPlots_) {
1877  histname = "Chi2oNDFVsTheta_" + histTag;
1878  tkmes.Chi2oNDFVsTheta =
1880  tkmes.Chi2oNDFVsTheta->setAxisTitle("Track #theta", 1);
1881  tkmes.Chi2oNDFVsTheta->setAxisTitle("Track #chi^{2}/ndf", 2);
1882  }
1883  if (doAllPlots_) {
1884  histname = "Chi2oNDFVsPhi_" + histTag;
1885  tkmes.Chi2oNDFVsPhi = ibooker.bookProfile(histname, histname, PhiBin, PhiMin, PhiMax, Chi2NDFMin, Chi2NDFMax, "");
1886  tkmes.Chi2oNDFVsPhi->setAxisTitle("Track #phi", 1);
1887  tkmes.Chi2oNDFVsPhi->setAxisTitle("Track #chi^{2}/ndf", 2);
1888 
1889  histname = "Chi2oNDFVsEta_" + histTag;
1890  tkmes.Chi2oNDFVsEta = ibooker.bookProfile(histname, histname, EtaBin, EtaMin, EtaMax, Chi2NDFMin, Chi2NDFMax, "");
1891  tkmes.Chi2oNDFVsEta->setAxisTitle("Track #eta", 1);
1892  tkmes.Chi2oNDFVsEta->setAxisTitle("Track #chi^{2}/ndf", 2);
1893 
1894  histname = "Chi2ProbVsPhi_" + histTag;
1895  tkmes.Chi2ProbVsPhi = ibooker.bookProfile(
1896  histname + CategoryName, histname + CategoryName, PhiBin, PhiMin, PhiMax, Chi2ProbMin, Chi2ProbMax);
1897  tkmes.Chi2ProbVsPhi->setAxisTitle("Tracks #phi", 1);
1898  tkmes.Chi2ProbVsPhi->setAxisTitle("Track #chi^{2} probability", 2);
1899 
1900  histname = "Chi2ProbVsEta_" + histTag;
1901  tkmes.Chi2ProbVsEta = ibooker.bookProfile(
1902  histname + CategoryName, histname + CategoryName, EtaBin, EtaMin, EtaMax, Chi2ProbMin, Chi2ProbMax);
1903  tkmes.Chi2ProbVsEta->setAxisTitle("Tracks #eta", 1);
1904  tkmes.Chi2ProbVsEta->setAxisTitle("Track #chi^{2} probability", 2);
1905  }
1906 
1907  // now put the MEs in the map
1908  TkParameterMEMap.insert(std::make_pair(sname, tkmes));
1909 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
static const std::string qualityNames[]
Definition: TrackBase.h:163
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:408
std::map< std::string, TkParameterMEs > TkParameterMEMap
edm::ParameterSet const * conf_
Definition: TrackAnalyzer.h:94
std::string TopFolder_
Definition: TrackAnalyzer.h:81
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:221
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)

◆ bookHistosForTrackerSpecific()

void TrackAnalyzer::bookHistosForTrackerSpecific ( DQMStore::IBooker ibooker)
private

Definition at line 2188 of file TrackAnalyzer.cc.

References HLTSiStripMonitoring_cff::AlgoName, dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::bookProfile(), conf_, tadqm::TrackAnalyzer::TkRecHitsPerSubDetMEs::detectorId, tadqm::TrackAnalyzer::TkRecHitsPerSubDetMEs::detectorTag, MonitorTrackInnerTrackMuons_cff::EtaBin, MonitorTrackInnerTrackMuons_cff::EtaMax, MonitorTrackInnerTrackMuons_cff::EtaMin, edm::ParameterSet::getParameter(), histname, tadqm::TrackAnalyzer::TkRecHitsPerSubDetMEs::NumberOfLayersPerTrack, tadqm::TrackAnalyzer::TkRecHitsPerSubDetMEs::NumberOfLayersPerTrackVsEta, tadqm::TrackAnalyzer::TkRecHitsPerSubDetMEs::NumberOfLayersPerTrackVsPhi, tadqm::TrackAnalyzer::TkRecHitsPerSubDetMEs::NumberOfLayersPerTrackVsPt, tadqm::TrackAnalyzer::TkRecHitsPerSubDetMEs::NumberOfRecHitsPerTrack, tadqm::TrackAnalyzer::TkRecHitsPerSubDetMEs::NumberOfRecHitsPerTrackVsEta, tadqm::TrackAnalyzer::TkRecHitsPerSubDetMEs::NumberOfRecHitsPerTrackVsPhi, tadqm::TrackAnalyzer::TkRecHitsPerSubDetMEs::NumberOfRecHitsPerTrackVsPt, MonitorTrackSTAMuons_cfi::PhiBin, MonitorTrackSTAMuons_cfi::PhiMax, MonitorTrackSTAMuons_cfi::PhiMin, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, electronDQMIsoDist_cfi::PtMax, HLT_2024v13_cff::PtMin, dqm::impl::MonitorElement::setAxisTitle(), dqm::implementation::NavigatorBase::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, TrackingMonitor_cfi::subdetectors, StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, TkRecHitsPerSubDetMEMap, StripSubdetector::TOB, and TopFolder_.

Referenced by initHisto().

2188  {
2189  // parameters from the configuration
2190  std::string QualName = conf_->getParameter<std::string>("Quality");
2192 
2193  // use the AlgoName and Quality Name
2194  std::string CategoryName = !QualName.empty() ? AlgoName + "_" + QualName : AlgoName;
2195 
2196  int PhiBin = conf_->getParameter<int>("PhiBin");
2197  double PhiMin = conf_->getParameter<double>("PhiMin");
2198  double PhiMax = conf_->getParameter<double>("PhiMax");
2199 
2200  int EtaBin = conf_->getParameter<int>("EtaBin");
2201  double EtaMin = conf_->getParameter<double>("EtaMin");
2202  double EtaMax = conf_->getParameter<double>("EtaMax");
2203 
2204  int PtBin = conf_->getParameter<int>("TrackPtBin");
2205  double PtMin = conf_->getParameter<double>("TrackPtMin");
2206  double PtMax = conf_->getParameter<double>("TrackPtMax");
2207 
2208  // book hit property histograms
2209  // ---------------------------------------------------------------------------------//
2210  ibooker.setCurrentFolder(TopFolder_ + "/HitProperties");
2211 
2212  std::vector<std::string> subdetectors = conf_->getParameter<std::vector<std::string> >("subdetectors");
2213  int detBin = conf_->getParameter<int>("subdetectorBin");
2214 
2215  for (const auto& det : subdetectors) {
2216  // hits properties
2217  ibooker.setCurrentFolder(TopFolder_ + "/HitProperties/" + det);
2218 
2219  TkRecHitsPerSubDetMEs recHitsPerSubDet_mes;
2220 
2221  recHitsPerSubDet_mes.detectorTag = det;
2222  int detID = -1;
2223  if (det == "TIB")
2224  detID = StripSubdetector::TIB; // 3
2225  if (det == "TOB")
2226  detID = StripSubdetector::TOB; // 5
2227  if (det == "TID")
2228  detID = StripSubdetector::TID; // 4
2229  if (det == "TEC")
2230  detID = StripSubdetector::TEC; // 6
2231  if (det == "PixBarrel")
2232  detID = PixelSubdetector::PixelBarrel; // 1
2233  if (det == "PixEndcap")
2234  detID = PixelSubdetector::PixelEndcap; // 2
2235  if (det == "Pixel")
2236  detID = 0;
2237  if (det == "Strip")
2238  detID = 7;
2239 
2240  recHitsPerSubDet_mes.detectorId = detID;
2241 
2242  histname = "NumberOfRecHitsPerTrack_" + det + "_" + CategoryName;
2243  recHitsPerSubDet_mes.NumberOfRecHitsPerTrack =
2244  ibooker.book1D(histname, histname, detBin, -0.5, double(detBin) - 0.5);
2245  recHitsPerSubDet_mes.NumberOfRecHitsPerTrack->setAxisTitle("Number of " + det + " valid RecHits in each Track", 1);
2246  recHitsPerSubDet_mes.NumberOfRecHitsPerTrack->setAxisTitle("Number of Tracks", 2);
2247 
2248  histname = "NumberOfRecHitsPerTrackVsPhi_" + det + "_" + CategoryName;
2249  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsPhi =
2250  ibooker.bookProfile(histname, histname, PhiBin, PhiMin, PhiMax, detBin, -0.5, double(detBin) - 0.5, "");
2251  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsPhi->setAxisTitle("Track #phi", 1);
2252  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsPhi->setAxisTitle("Number of " + det + " valid RecHits in each Track",
2253  2);
2254 
2255  histname = "NumberOfRecHitsPerTrackVsEta_" + det + "_" + CategoryName;
2256  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsEta =
2257  ibooker.bookProfile(histname, histname, EtaBin, EtaMin, EtaMax, detBin, -0.5, double(detBin) - 0.5, "");
2258  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsEta->setAxisTitle("Track #eta", 1);
2259  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsEta->setAxisTitle("Number of " + det + " valid RecHits in each Track",
2260  2);
2261 
2262  histname = "NumberOfRecHitsPerTrackVsPt_" + det + "_" + CategoryName;
2263  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsPt =
2264  ibooker.bookProfile(histname, histname, PtBin, PtMin, PtMax, detBin, -0.5, double(detBin) - 0.5, "");
2265  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsPt->setAxisTitle("Track p_{T} [GeV]", 1);
2266  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsPt->setAxisTitle("Number of " + det + " valid RecHits in each Track",
2267  2);
2268 
2269  histname = "NumberOfLayersPerTrack_" + det + "_" + CategoryName;
2270  recHitsPerSubDet_mes.NumberOfLayersPerTrack =
2271  ibooker.book1D(histname, histname, detBin, -0.5, double(detBin) - 0.5);
2272  recHitsPerSubDet_mes.NumberOfLayersPerTrack->setAxisTitle("Number of " + det + " valid Layers in each Track", 1);
2273  recHitsPerSubDet_mes.NumberOfLayersPerTrack->setAxisTitle("Number of Tracks", 2);
2274 
2275  histname = "NumberOfLayersPerTrackVsPhi_" + det + "_" + CategoryName;
2276  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsPhi =
2277  ibooker.bookProfile(histname, histname, PhiBin, PhiMin, PhiMax, detBin, -0.5, double(detBin) - 0.5, "");
2278  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsPhi->setAxisTitle("Track #phi", 1);
2279  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsPhi->setAxisTitle("Number of " + det + " valid Layers in each Track",
2280  2);
2281 
2282  histname = "NumberOfLayersPerTrackVsEta_" + det + "_" + CategoryName;
2283  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsEta =
2284  ibooker.bookProfile(histname, histname, EtaBin, EtaMin, EtaMax, detBin, -0.5, double(detBin) - 0.5, "");
2285  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsEta->setAxisTitle("Track #eta", 1);
2286  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsEta->setAxisTitle("Number of " + det + " valid Layers in each Track",
2287  2);
2288 
2289  histname = "NumberOfLayersPerTrackVsPt_" + det + "_" + CategoryName;
2290  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsPt =
2291  ibooker.bookProfile(histname, histname, PtBin, PtMin, PtMax, detBin, -0.5, double(detBin) - 0.5, "");
2292  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsPt->setAxisTitle("Track p_{T} [GeV]", 1);
2293  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsPt->setAxisTitle("Number of " + det + " valid Layers in each Track",
2294  2);
2295 
2296  TkRecHitsPerSubDetMEMap.insert(std::pair<std::string, TkRecHitsPerSubDetMEs>(det, recHitsPerSubDet_mes));
2297  }
2298 }
static constexpr auto TEC
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:408
static constexpr auto TOB
edm::ParameterSet const * conf_
Definition: TrackAnalyzer.h:94
static constexpr auto TIB
std::string TopFolder_
Definition: TrackAnalyzer.h:81
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
std::map< std::string, TkRecHitsPerSubDetMEs > TkRecHitsPerSubDetMEMap
static constexpr auto TID
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)

◆ fillHistosForEfficiencyFromHitPatter()

void TrackAnalyzer::fillHistosForEfficiencyFromHitPatter ( const reco::Track track,
const std::string  suffix,
const float  monitoring,
bool  useInac 
)
private

Definition at line 1408 of file TrackAnalyzer.cc.

References validateAlignments::category, DiLeptonHelp::END, HcalObjRepresent::Fill(), hits_total_, hits_valid_, trackingPlots::hp, mps_fire::i, LogDebug, combine::missing, LaserDQM_cfi::mon, singleTopDQM_cfi::monitoring, monName, topSingleLeptonDQM_PU_cfi::pattern, makePlotsFromDump::suffix, HLT_2024v13_cff::track, and validateGeometry_cfg::valid.

Referenced by analyze().

1411  {
1412  int mon = -1;
1413  for (int i = 0; i < monQuantity::END; i++) {
1414  if (monName[i] == suffix)
1415  mon = i;
1416  }
1417  if (useInac)
1418  mon += monQuantity::END;
1419 
1420  // if (track.pt() > 1.0 && track.dxy() < 0.1 and monitoring > 0) {
1421  if (track.pt() > 1.0 && track.dxy() < 0.1 and monitoring > -9.) {
1422  auto hp = track.hitPattern();
1423  // Here hit_category is meant to iterate over
1424  // reco::HitPattern::HitCategory, defined here:
1425  // http://cmslxr.fnal.gov/dxr/CMSSW/source/DataFormats/TrackReco/interface/HitPattern.h
1426  for (unsigned int category = 0; category < 3; ++category) {
1427  for (int hit = 0; hit < hp.numberOfAllHits((reco::HitPattern::HitCategory)(category)); ++hit) {
1428  auto pattern = hp.getHitPattern((reco::HitPattern::HitCategory)(category), hit);
1429  // Boolean bad is missing simply because it is inferred and the only missing case.
1430  bool valid = hp.validHitFilter(pattern);
1431  bool missing = hp.missingHitFilter(pattern);
1432  bool inactive = hp.inactiveHitFilter(pattern);
1433  int hit_type = -1;
1434  hit_type = valid ? 0 : (missing ? 1 : (inactive ? 2 : 3));
1435  if (hits_valid_.find(Key(hp.getSubStructure(pattern), hp.getSubSubStructure(pattern), mon)) ==
1436  hits_valid_.end()) {
1437  LogDebug("TrackAnalyzer") << "Invalid combination of detector and subdetector: ("
1438  << hp.getSubStructure(pattern) << ", " << hp.getSubSubStructure(pattern) << ", "
1439  << mon << "): ignoring it.\n";
1440  continue;
1441  }
1442  switch (hit_type) {
1443  case 0:
1444  hits_valid_[Key(hp.getSubStructure(pattern), hp.getSubSubStructure(pattern), mon)]->Fill(monitoring);
1445  hits_total_[Key(hp.getSubStructure(pattern), hp.getSubSubStructure(pattern), mon)]->Fill(monitoring);
1446  break;
1447  case 2:
1448  if (!useInac)
1449  break;
1450  [[fallthrough]];
1451  case 1:
1452  hits_total_[Key(hp.getSubStructure(pattern), hp.getSubSubStructure(pattern), mon)]->Fill(monitoring);
1453  break;
1454  default:
1455  LogDebug("TrackAnalyzer") << "Invalid hit category used " << hit_type << " ignored\n";
1456  }
1457  }
1458  }
1459  }
1460 }
std::string monName[monQuantity::END]
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_total_
missing
Definition: combine.py:5
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_valid_
#define LogDebug(id)

◆ fillHistosForHitProperties()

void tadqm::TrackAnalyzer::fillHistosForHitProperties ( const edm::EventSetup iSetup,
const reco::Track track,
std::string  sname 
)
private

◆ fillHistosForLScertification()

void tadqm::TrackAnalyzer::fillHistosForLScertification ( const edm::EventSetup iSetup,
const reco::Track track,
std::string  sname 
)
private

◆ fillHistosForState()

void TrackAnalyzer::fillHistosForState ( const edm::EventSetup iSetup,
const reco::Track track,
std::string  sname 
)
private

Definition at line 1913 of file TrackAnalyzer.cc.

References A, TransientTrackBuilder::build(), TrajectoryStateOnSurface::cartesianError(), TrajectoryStateOnSurface::charge(), tadqm::TrackAnalyzer::TkParameterMEs::Chi2oNDFVsEta, tadqm::TrackAnalyzer::TkParameterMEs::Chi2oNDFVsNHits, tadqm::TrackAnalyzer::TkParameterMEs::Chi2oNDFVsPhi, tadqm::TrackAnalyzer::TkParameterMEs::Chi2oNDFVsPt, tadqm::TrackAnalyzer::TkParameterMEs::Chi2oNDFVsTheta, tadqm::TrackAnalyzer::TkParameterMEs::Chi2ProbVsEta, tadqm::TrackAnalyzer::TkParameterMEs::Chi2ProbVsPhi, TrajectoryStateOnSurface::curvilinearError(), dqm::impl::MonitorElement::divide(), doAllPlots_, doThetaPlots_, doTrackPxPyPlots_, nano_mu_digi_cff::errors, PVValHelper::eta, PV3DBase< T, PVType, FrameType >::eta(), dqm::impl::MonitorElement::Fill(), edm::EventSetup::getData(), TrajectoryStateOnSurface::globalMomentum(), reco::TrackBase::highPurity, reco::TransientTrack::impactPointState(), reco::TransientTrack::innermostMeasurementState(), createfilelist::int, dqm::impl::MonitorElement::integral(), reco::TrackBase::loose, M_PI, PV3DBase< T, PVType, FrameType >::mag(), CartesianTrajectoryError::matrix(), CurvilinearTrajectoryError::matrix(), MuonTCMETValueMapProducer_cff::nLayers, tadqm::TrackAnalyzer::TkParameterMEs::NumberOfLayersPerTrackVsEta, tadqm::TrackAnalyzer::TkParameterMEs::NumberOfLayersPerTrackVsPhi, tadqm::TrackAnalyzer::TkParameterMEs::NumberOfLayersPerTrackVsTheta, tadqm::TrackAnalyzer::TkParameterMEs::NumberOfRecHitsPerTrackVsEta, tadqm::TrackAnalyzer::TkParameterMEs::NumberOfRecHitsPerTrackVsPhi, tadqm::TrackAnalyzer::TkParameterMEs::NumberOfRecHitsPerTrackVsTheta, tadqm::TrackAnalyzer::TkParameterMEs::NumberOfValidRecHitsPerTrackVsEta, tadqm::TrackAnalyzer::TkParameterMEs::NumberOfValidRecHitsPerTrackVsPhi, tadqm::TrackAnalyzer::TkParameterMEs::NumberOfValidRecHitsPerTrackVsPt, reco::TransientTrack::outermostMeasurementState(), AlCaHLTBitMon_ParallelJobs::p, PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), funct::pow(), DiDispStaMuonMonitor_cfi::pt, HiEvtPlane_cfi::pterror, multPhiCorr_741_25nsDY_cfi::px, multPhiCorr_741_25nsDY_cfi::py, submitPVResolutionJobs::q, tadqm::TrackAnalyzer::TkParameterMEs::Quality, tadqm::TrackAnalyzer::TkParameterMEs::Ratio_byFolding, tadqm::TrackAnalyzer::TkParameterMEs::Ratio_byFolding2, dqm::impl::MonitorElement::setAxisTitle(), funct::sin(), mathSSE::sqrt(), AlCaHLTBitMon_QueryRunRegistry::string, PV3DBase< T, PVType, FrameType >::theta(), theta(), reco::TrackBase::tight, TkParameterMEMap, to_string(), TopFolder_, HLT_2024v13_cff::track, reco::HitPattern::TRACK_HITS, tadqm::TrackAnalyzer::TkParameterMEs::TrackEta, tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaErr, tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaHighPurity, tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaLoose, tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaPhi, tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaPhiInner, tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaPhiInverted, tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaPhiInvertedoutofphase, tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaPhiOuter, tadqm::TrackAnalyzer::TkParameterMEs::TrackEtaTight, tadqm::TrackAnalyzer::TkParameterMEs::TrackP, tadqm::TrackAnalyzer::TkParameterMEs::TrackPErr, tadqm::TrackAnalyzer::TkParameterMEs::TrackPhi, tadqm::TrackAnalyzer::TkParameterMEs::TrackPhiErr, tadqm::TrackAnalyzer::TkParameterMEs::TrackPt, tadqm::TrackAnalyzer::TkParameterMEs::TrackPt_NegEta_Phi_btw_0_neg16, tadqm::TrackAnalyzer::TkParameterMEs::TrackPt_NegEta_Phi_btw_16_0, tadqm::TrackAnalyzer::TkParameterMEs::TrackPt_NegEta_Phi_btw_32_16, tadqm::TrackAnalyzer::TkParameterMEs::TrackPt_NegEta_Phi_btw_neg16_neg32, tadqm::TrackAnalyzer::TkParameterMEs::TrackPt_PosEta_Phi_btw_0_neg16, tadqm::TrackAnalyzer::TkParameterMEs::TrackPt_PosEta_Phi_btw_16_0, tadqm::TrackAnalyzer::TkParameterMEs::TrackPt_PosEta_Phi_btw_32_16, tadqm::TrackAnalyzer::TkParameterMEs::TrackPt_PosEta_Phi_btw_neg16_neg32, tadqm::TrackAnalyzer::TkParameterMEs::TrackPtErr, tadqm::TrackAnalyzer::TkParameterMEs::TrackPtErrVsEta, tadqm::TrackAnalyzer::TkParameterMEs::TrackPtHighPurity, tadqm::TrackAnalyzer::TkParameterMEs::TrackPtLoose, tadqm::TrackAnalyzer::TkParameterMEs::TrackPtTight, tadqm::TrackAnalyzer::TkParameterMEs::TrackPx, tadqm::TrackAnalyzer::TkParameterMEs::TrackPxErr, tadqm::TrackAnalyzer::TkParameterMEs::TrackPy, tadqm::TrackAnalyzer::TkParameterMEs::TrackPyErr, tadqm::TrackAnalyzer::TkParameterMEs::TrackPz, tadqm::TrackAnalyzer::TkParameterMEs::TrackPzErr, tadqm::TrackAnalyzer::TkParameterMEs::TrackQ, tadqm::TrackAnalyzer::TkParameterMEs::TrackQoverP, tadqm::TrackAnalyzer::TkParameterMEs::TrackTheta, transientTrackBuilderToken_, w(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by analyze().

1913  {
1914  //get the kinematic parameters
1915  double p, px, py, pz, pt, theta, phi, eta, q;
1916  double pxerror, pyerror, pzerror, pterror, perror, phierror, etaerror;
1917 
1918  std::string Folder = TopFolder_.substr(0, 2);
1919 
1920  auto phiIn = track.innerPosition().phi();
1921  auto etaIn = track.innerPosition().eta();
1922  auto phiOut = track.outerPosition().phi();
1923  auto etaOut = track.outerPosition().eta();
1924 
1925  if (sname == "default") {
1926  p = track.p();
1927  px = track.px();
1928  py = track.py();
1929  pz = track.pz();
1930  pt = track.pt();
1931  phi = track.phi();
1932  theta = track.theta();
1933  eta = track.eta();
1934  q = track.charge();
1935 
1936  pterror = (pt) ? track.ptError() / (pt * pt) : 0.0;
1937  pxerror = -1.0;
1938  pyerror = -1.0;
1939  pzerror = -1.0;
1940  perror = -1.0;
1941  phierror = track.phiError();
1942  etaerror = track.etaError();
1943 
1944  } else {
1946  reco::TransientTrack TransTrack = theB.build(track);
1947 
1949 
1950  if (sname == "OuterSurface")
1951  TSOS = TransTrack.outermostMeasurementState();
1952  else if (sname == "InnerSurface")
1953  TSOS = TransTrack.innermostMeasurementState();
1954  else if (sname == "ImpactPoint")
1955  TSOS = TransTrack.impactPointState();
1956 
1957  p = TSOS.globalMomentum().mag();
1958  px = TSOS.globalMomentum().x();
1959  py = TSOS.globalMomentum().y();
1960  pz = TSOS.globalMomentum().z();
1961  pt = TSOS.globalMomentum().perp();
1962  phi = TSOS.globalMomentum().phi();
1964  eta = TSOS.globalMomentum().eta();
1965  q = TSOS.charge();
1966 
1967  //get the error of the kinimatic parameters
1969  double partialPterror =
1970  errors(3, 3) * pow(TSOS.globalMomentum().x(), 2) + errors(4, 4) * pow(TSOS.globalMomentum().y(), 2);
1971  pterror = sqrt(partialPterror) / TSOS.globalMomentum().perp();
1972  pxerror = sqrt(errors(3, 3)) / TSOS.globalMomentum().x();
1973  pyerror = sqrt(errors(4, 4)) / TSOS.globalMomentum().y();
1974  pzerror = sqrt(errors(5, 5)) / TSOS.globalMomentum().z();
1975  perror = sqrt(partialPterror + errors(5, 5) * pow(TSOS.globalMomentum().z(), 2)) / TSOS.globalMomentum().mag();
1976  phierror = sqrt(TSOS.curvilinearError().matrix()(2, 2));
1977  etaerror = sqrt(TSOS.curvilinearError().matrix()(1, 1)) * fabs(sin(TSOS.globalMomentum().theta()));
1978  }
1979 
1980  std::map<std::string, TkParameterMEs>::iterator iPos = TkParameterMEMap.find(sname);
1981  if (iPos != TkParameterMEMap.end()) {
1982  TkParameterMEs tkmes = iPos->second;
1983 
1984  // momentum
1985  tkmes.TrackP->Fill(p);
1986  if (doTrackPxPyPlots_) {
1987  tkmes.TrackPx->Fill(px);
1988  tkmes.TrackPy->Fill(py);
1989  }
1990  tkmes.TrackPz->Fill(pz);
1991  tkmes.TrackPt->Fill(pt);
1992 
1993  // angles
1994  tkmes.TrackPhi->Fill(phi);
1995  tkmes.TrackEta->Fill(eta);
1996  tkmes.TrackEtaPhi->Fill(eta, phi);
1997 
1998  if (Folder == "Tr") {
1999  tkmes.TrackEtaPhiInverted->Fill(eta, -1 * phi);
2000  tkmes.TrackEtaPhiInvertedoutofphase->Fill(eta, M_PI - phi);
2001  tkmes.TrackEtaPhiInvertedoutofphase->Fill(eta, -(phi + M_PI));
2002  //pT histograms to create efficiency vs pT plot, only for the most inefficient region.
2003 
2004  if (eta < 0. && phi < -1.6) {
2005  tkmes.TrackPt_NegEta_Phi_btw_neg16_neg32->Fill(pt);
2006  }
2007  if (eta < 0. && phi < 0 && phi >= -1.6) {
2008  tkmes.TrackPt_NegEta_Phi_btw_0_neg16->Fill(pt);
2009  }
2010  if (eta < 0. && phi < 1.6 && phi >= 0) {
2011  tkmes.TrackPt_NegEta_Phi_btw_16_0->Fill(pt);
2012  }
2013  if (eta < 0. && phi >= 1.6) {
2014  tkmes.TrackPt_NegEta_Phi_btw_32_16->Fill(pt);
2015  }
2016  if (eta >= 0. && phi < -1.6) {
2017  tkmes.TrackPt_PosEta_Phi_btw_neg16_neg32->Fill(pt);
2018  }
2019  if (eta >= 0. && phi < 0 && phi >= -1.6) {
2020  tkmes.TrackPt_PosEta_Phi_btw_0_neg16->Fill(pt);
2021  }
2022  if (eta >= 0. && phi < 1.6 && phi >= 0) {
2023  tkmes.TrackPt_PosEta_Phi_btw_16_0->Fill(pt);
2024  }
2025  if (eta >= 0. && phi >= 1.6) {
2026  tkmes.TrackPt_PosEta_Phi_btw_32_16->Fill(pt);
2027  }
2028 
2029  float A[8];
2030  A[0] = tkmes.TrackPt_NegEta_Phi_btw_neg16_neg32->integral();
2031  A[1] = tkmes.TrackPt_NegEta_Phi_btw_0_neg16->integral();
2032  A[2] = tkmes.TrackPt_NegEta_Phi_btw_16_0->integral();
2033  A[3] = tkmes.TrackPt_NegEta_Phi_btw_32_16->integral();
2034  A[4] = tkmes.TrackPt_PosEta_Phi_btw_neg16_neg32->integral();
2035  A[5] = tkmes.TrackPt_PosEta_Phi_btw_0_neg16->integral();
2036  A[6] = tkmes.TrackPt_PosEta_Phi_btw_16_0->integral();
2037  A[7] = tkmes.TrackPt_PosEta_Phi_btw_32_16->integral();
2038 
2039  //WZ (the worst zone)
2040  int WZ = 0;
2041  float minA = A[0];
2042  for (int w = 1; w < 8; w++) {
2043  if (minA > A[w]) {
2044  minA = A[w];
2045  WZ = w;
2046  }
2047  }
2048 
2049  switch (WZ) {
2050  case 1:
2051  tkmes.Ratio_byFolding->divide(
2052  tkmes.TrackPt_NegEta_Phi_btw_neg16_neg32, tkmes.TrackPt_NegEta_Phi_btw_32_16, 1., 1., "B");
2053  tkmes.Ratio_byFolding2->divide(
2054  tkmes.TrackPt_NegEta_Phi_btw_neg16_neg32, tkmes.TrackPt_NegEta_Phi_btw_0_neg16, 1., 1., "B");
2055  break;
2056  case 2:
2057  tkmes.Ratio_byFolding->divide(
2058  tkmes.TrackPt_NegEta_Phi_btw_0_neg16, tkmes.TrackPt_NegEta_Phi_btw_16_0, 1., 1., "B");
2059  tkmes.Ratio_byFolding2->divide(
2060  tkmes.TrackPt_NegEta_Phi_btw_0_neg16, tkmes.TrackPt_NegEta_Phi_btw_neg16_neg32, 1., 1., "B");
2061  break;
2062  case 3:
2063  tkmes.Ratio_byFolding->divide(
2064  tkmes.TrackPt_NegEta_Phi_btw_16_0, tkmes.TrackPt_NegEta_Phi_btw_0_neg16, 1., 1., "B");
2065  tkmes.Ratio_byFolding2->divide(
2066  tkmes.TrackPt_NegEta_Phi_btw_16_0, tkmes.TrackPt_NegEta_Phi_btw_32_16, 1., 1., "B");
2067  break;
2068  case 4:
2069  tkmes.Ratio_byFolding->divide(
2070  tkmes.TrackPt_NegEta_Phi_btw_32_16, tkmes.TrackPt_NegEta_Phi_btw_neg16_neg32, 1., 1., "B");
2071  tkmes.Ratio_byFolding2->divide(
2072  tkmes.TrackPt_NegEta_Phi_btw_32_16, tkmes.TrackPt_NegEta_Phi_btw_16_0, 1., 1., "B");
2073  break;
2074  case 5:
2075  tkmes.Ratio_byFolding->divide(
2076  tkmes.TrackPt_PosEta_Phi_btw_neg16_neg32, tkmes.TrackPt_PosEta_Phi_btw_32_16, 1., 1., "B");
2077  tkmes.Ratio_byFolding2->divide(
2078  tkmes.TrackPt_PosEta_Phi_btw_neg16_neg32, tkmes.TrackPt_PosEta_Phi_btw_0_neg16, 1., 1., "B");
2079  break;
2080  case 6:
2081  tkmes.Ratio_byFolding->divide(
2082  tkmes.TrackPt_PosEta_Phi_btw_0_neg16, tkmes.TrackPt_PosEta_Phi_btw_16_0, 1., 1., "B");
2083  tkmes.Ratio_byFolding2->divide(
2084  tkmes.TrackPt_PosEta_Phi_btw_0_neg16, tkmes.TrackPt_PosEta_Phi_btw_neg16_neg32, 1., 1., "B");
2085  break;
2086  case 7:
2087  tkmes.Ratio_byFolding->divide(
2088  tkmes.TrackPt_PosEta_Phi_btw_16_0, tkmes.TrackPt_PosEta_Phi_btw_0_neg16, 1., 1., "B");
2089  tkmes.Ratio_byFolding2->divide(
2090  tkmes.TrackPt_PosEta_Phi_btw_16_0, tkmes.TrackPt_PosEta_Phi_btw_32_16, 1., 1., "B");
2091  break;
2092  case 8:
2093  tkmes.Ratio_byFolding->divide(
2094  tkmes.TrackPt_PosEta_Phi_btw_32_16, tkmes.TrackPt_PosEta_Phi_btw_neg16_neg32, 1., 1., "B");
2095  tkmes.Ratio_byFolding2->divide(
2096  tkmes.TrackPt_PosEta_Phi_btw_32_16, tkmes.TrackPt_PosEta_Phi_btw_16_0, 1., 1., "B");
2097  break;
2098  }
2099  tkmes.Ratio_byFolding->setAxisTitle("Efficiency(Ratio)_" + std::to_string(WZ), 2);
2100  tkmes.Ratio_byFolding2->setAxisTitle("Efficiency(Ratio)_" + std::to_string(WZ), 2);
2101 
2102  if (track.quality(reco::TrackBase::highPurity)) {
2103  tkmes.TrackPtHighPurity->Fill(pt);
2104  tkmes.Quality->Fill(reco::TrackBase::highPurity, 1.);
2105  }
2106  if (track.quality(reco::TrackBase::tight)) {
2107  tkmes.TrackPtTight->Fill(pt);
2108  tkmes.Quality->Fill(reco::TrackBase::tight, 1.);
2109  }
2110  if (track.quality(reco::TrackBase::loose)) {
2111  tkmes.TrackPtLoose->Fill(pt);
2112  tkmes.Quality->Fill(reco::TrackBase::loose, 1.);
2113  }
2114  if (track.quality(reco::TrackBase::highPurity)) {
2115  tkmes.TrackEtaHighPurity->Fill(eta);
2116  }
2117  if (track.quality(reco::TrackBase::tight)) {
2118  tkmes.TrackEtaTight->Fill(eta);
2119  }
2120  if (track.quality(reco::TrackBase::loose)) {
2121  tkmes.TrackEtaLoose->Fill(eta);
2122  }
2123 
2124  if (p > 0.) {
2125  tkmes.TrackQoverP->Fill(q / p);
2126  }
2127  }
2128 
2129  tkmes.TrackEtaPhiInner->Fill(etaIn, phiIn);
2130  tkmes.TrackEtaPhiOuter->Fill(etaOut, phiOut);
2131 
2132  if (doThetaPlots_) {
2133  tkmes.TrackTheta->Fill(theta);
2134  }
2135  tkmes.TrackQ->Fill(q);
2136 
2137  // errors
2138  tkmes.TrackPtErr->Fill(pterror);
2139  tkmes.TrackPtErrVsEta->Fill(eta, pterror);
2140  if (doTrackPxPyPlots_) {
2141  tkmes.TrackPxErr->Fill(pxerror);
2142  tkmes.TrackPyErr->Fill(pyerror);
2143  }
2144  tkmes.TrackPzErr->Fill(pzerror);
2145  tkmes.TrackPErr->Fill(perror);
2146  tkmes.TrackPhiErr->Fill(phierror);
2147  tkmes.TrackEtaErr->Fill(etaerror);
2148 
2149  int nRecHits = track.hitPattern().numberOfAllHits(reco::HitPattern::TRACK_HITS);
2150  int nValidRecHits = track.numberOfValidHits();
2151  // rec hits
2152  tkmes.NumberOfRecHitsPerTrackVsPhi->Fill(phi, nRecHits);
2153  if (doThetaPlots_) {
2154  tkmes.NumberOfRecHitsPerTrackVsTheta->Fill(theta, nRecHits);
2155  }
2156  tkmes.NumberOfRecHitsPerTrackVsEta->Fill(eta, nRecHits);
2157  tkmes.NumberOfValidRecHitsPerTrackVsPhi->Fill(phi, nValidRecHits);
2158  tkmes.NumberOfValidRecHitsPerTrackVsEta->Fill(eta, nValidRecHits);
2159  tkmes.NumberOfValidRecHitsPerTrackVsPt->Fill(pt, nValidRecHits);
2160 
2161  int nLayers = track.hitPattern().trackerLayersWithMeasurement();
2162  // rec layers
2163  tkmes.NumberOfLayersPerTrackVsPhi->Fill(phi, nLayers);
2164  if (doThetaPlots_) {
2165  tkmes.NumberOfLayersPerTrackVsTheta->Fill(theta, nLayers);
2166  }
2167  tkmes.NumberOfLayersPerTrackVsEta->Fill(eta, nLayers);
2168 
2169  double chi2prob = TMath::Prob(track.chi2(), (int)track.ndof());
2170  double chi2oNDF = track.normalizedChi2();
2171 
2172  tkmes.Chi2oNDFVsEta->Fill(eta, chi2oNDF);
2173  tkmes.Chi2oNDFVsPt->Fill(pt, chi2oNDF);
2174  tkmes.Chi2oNDFVsNHits->Fill(nRecHits, chi2oNDF);
2175 
2176  if (doAllPlots_) {
2177  // general properties
2178  if (doThetaPlots_) {
2179  tkmes.Chi2oNDFVsTheta->Fill(theta, chi2oNDF);
2180  }
2181  tkmes.Chi2oNDFVsPhi->Fill(phi, chi2oNDF);
2182  tkmes.Chi2ProbVsPhi->Fill(phi, chi2prob);
2183  tkmes.Chi2ProbVsEta->Fill(eta, chi2prob);
2184  }
2185  }
2186 }
T perp() const
Definition: PV3DBase.h:69
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
T w() const
T z() const
Definition: PV3DBase.h:61
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
T eta() const
Definition: PV3DBase.h:73
static std::string to_string(const XMLCh *ch)
const CartesianTrajectoryError cartesianError() const
reco::TransientTrack build(const reco::Track *p) const
T x() const
Definition: PV3DBase.h:59
T y() const
Definition: PV3DBase.h:60
TrajectoryStateOnSurface outermostMeasurementState() const
T sqrt(T t)
Definition: SSEVec.h:23
T mag() const
Definition: PV3DBase.h:64
TrajectoryStateOnSurface innermostMeasurementState() const
std::map< std::string, TkParameterMEs > TkParameterMEMap
#define M_PI
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > AlgebraicSymMatrix66
TrajectoryStateOnSurface TSOS
Definition: TestHits.cc:19
edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > transientTrackBuilderToken_
Definition: TrackAnalyzer.h:90
const CurvilinearTrajectoryError & curvilinearError() const
std::string TopFolder_
Definition: TrackAnalyzer.h:81
const AlgebraicSymMatrix55 & matrix() const
GlobalVector globalMomentum() const
const AlgebraicSymMatrix66 & matrix() const
Definition: errors.py:1
Definition: APVGainStruct.h:7
Geom::Theta< T > theta() const
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29
TrajectoryStateOnSurface impactPointState() const
Geom::Theta< T > theta() const
Definition: PV3DBase.h:72

◆ fillHistosForTrackerSpecific()

void TrackAnalyzer::fillHistosForTrackerSpecific ( const reco::Track track)
private

Definition at line 2300 of file TrackAnalyzer.cc.

References PVValHelper::eta, ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, DiDispStaMuonMonitor_cfi::pt, StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, TkRecHitsPerSubDetMEMap, StripSubdetector::TOB, and HLT_2024v13_cff::track.

Referenced by analyze().

2300  {
2301  double phi = track.phi();
2302  double eta = track.eta();
2303  double pt = track.pt();
2304 
2305  for (std::map<std::string, TkRecHitsPerSubDetMEs>::iterator it = TkRecHitsPerSubDetMEMap.begin();
2306  it != TkRecHitsPerSubDetMEMap.end();
2307  it++) {
2308  int nValidLayers = 0;
2309  int nValidRecHits = 0;
2310  int substr = it->second.detectorId;
2311  switch (substr) {
2312  case 0:
2313  nValidLayers = track.hitPattern().pixelBarrelLayersWithMeasurement() +
2314  track.hitPattern().pixelEndcapLayersWithMeasurement(); // case 0: pixel
2315  nValidRecHits = track.hitPattern().numberOfValidPixelBarrelHits() +
2316  track.hitPattern().numberOfValidPixelEndcapHits(); // case 0: pixel
2317  break;
2318  case StripSubdetector::TIB:
2319  nValidLayers = track.hitPattern().stripTIBLayersWithMeasurement(); // case 3: strip TIB
2320  nValidRecHits = track.hitPattern().numberOfValidStripTIBHits(); // case 3: strip TIB
2321  break;
2322  case StripSubdetector::TID:
2323  nValidLayers = track.hitPattern().stripTIDLayersWithMeasurement(); // case 4: strip TID
2324  nValidRecHits = track.hitPattern().numberOfValidStripTIDHits(); // case 4: strip TID
2325  break;
2326  case StripSubdetector::TOB:
2327  nValidLayers = track.hitPattern().stripTOBLayersWithMeasurement(); // case 5: strip TOB
2328  nValidRecHits = track.hitPattern().numberOfValidStripTOBHits(); // case 5: strip TOB
2329  break;
2330  case StripSubdetector::TEC:
2331  nValidLayers = track.hitPattern().stripTECLayersWithMeasurement(); // case 6: strip TEC
2332  nValidRecHits = track.hitPattern().numberOfValidStripTECHits(); // case 6: strip TEC
2333  break;
2335  nValidLayers = track.hitPattern().pixelBarrelLayersWithMeasurement(); // case 1: pixel PXB
2336  nValidRecHits = track.hitPattern().numberOfValidPixelBarrelHits(); // case 1: pixel PXB
2337  break;
2339  nValidLayers = track.hitPattern().pixelEndcapLayersWithMeasurement(); // case 2: pixel PXF
2340  nValidRecHits = track.hitPattern().numberOfValidPixelEndcapHits(); // case 2: pixel PXF
2341  break;
2342  case 7:
2343  nValidLayers = track.hitPattern().stripTIBLayersWithMeasurement() // case 7: strip
2344  + track.hitPattern().stripTIDLayersWithMeasurement() +
2345  track.hitPattern().stripTOBLayersWithMeasurement() +
2346  track.hitPattern().stripTECLayersWithMeasurement();
2347  nValidRecHits = track.hitPattern().numberOfValidStripTIBHits() // case 7: strip
2348  + track.hitPattern().numberOfValidStripTIDHits() +
2349  track.hitPattern().numberOfValidStripTOBHits() + track.hitPattern().numberOfValidStripTECHits();
2350  break;
2351  default:
2352  break;
2353  }
2354 
2355  //Fill Layers and RecHits
2356  it->second.NumberOfRecHitsPerTrack->Fill(nValidRecHits);
2357  it->second.NumberOfRecHitsPerTrackVsPhi->Fill(phi, nValidRecHits);
2358  it->second.NumberOfRecHitsPerTrackVsEta->Fill(eta, nValidRecHits);
2359  it->second.NumberOfRecHitsPerTrackVsPt->Fill(pt, nValidRecHits);
2360 
2361  it->second.NumberOfLayersPerTrack->Fill(nValidLayers);
2362  it->second.NumberOfLayersPerTrackVsPhi->Fill(phi, nValidLayers);
2363  it->second.NumberOfLayersPerTrackVsEta->Fill(eta, nValidLayers);
2364  it->second.NumberOfLayersPerTrackVsPt->Fill(pt, nValidLayers);
2365  }
2366 }
static constexpr auto TEC
static constexpr auto TOB
static constexpr auto TIB
std::map< std::string, TkRecHitsPerSubDetMEs > TkRecHitsPerSubDetMEMap
static constexpr auto TID

◆ initHisto()

void TrackAnalyzer::initHisto ( DQMStore::IBooker ibooker,
const edm::EventSetup iSetup,
const edm::ParameterSet iConfig 
)

Definition at line 194 of file TrackAnalyzer.cc.

References bookHistosForBeamSpot(), bookHistosForEfficiencyFromHitPatter(), bookHistosForHitProperties(), bookHistosForLScertification(), bookHistosForState(), bookHistosForTrackerSpecific(), conf_, doAllPlots_, doEffFromHitPatternVsBX_, doEffFromHitPatternVsLUMI_, doEffFromHitPatternVsPU_, doMeasurementStatePlots_, doTrackerSpecific_, and stateName_.

Referenced by TrackingMonitor::bookHistograms().

196  {
197  conf_ = &iConfig;
199  bookHistosForBeamSpot(ibooker);
202  bookHistosForEfficiencyFromHitPatter(ibooker, iSetup, "", false);
204  bookHistosForEfficiencyFromHitPatter(ibooker, iSetup, "VsBX", false);
206  bookHistosForEfficiencyFromHitPatter(ibooker, iSetup, "VsOnlineLUMI", false);
207  // if (doEffFromHitPatternVsLUMI_ || doAllPlots_) bookHistosForEfficiencyFromHitPatter(ibooker, iSetup, "VsPIXELLUMI");
209  bookHistosForEfficiencyFromHitPatter(ibooker, iSetup, "", true);
211  bookHistosForEfficiencyFromHitPatter(ibooker, iSetup, "VsOnlineLUMI", true);
212 
213  // book tracker specific related histograms
214  // ---------------------------------------------------------------------------------//
217 
218  // book state related histograms
219  // ---------------------------------------------------------------------------------//
221  if (stateName_ == "All") {
222  bookHistosForState("OuterSurface", ibooker);
223  bookHistosForState("InnerSurface", ibooker);
224  bookHistosForState("ImpactPoint", ibooker);
225  } else if (stateName_ != "OuterSurface" && stateName_ != "InnerSurface" && stateName_ != "ImpactPoint" &&
226  stateName_ != "default") {
227  bookHistosForState("default", ibooker);
228 
229  } else {
230  bookHistosForState(stateName_, ibooker);
231  }
232  conf_ = nullptr;
233  }
234 }
void bookHistosForTrackerSpecific(DQMStore::IBooker &ibooker)
void bookHistosForHitProperties(DQMStore::IBooker &ibooker)
void bookHistosForEfficiencyFromHitPatter(DQMStore::IBooker &ibooker, const edm::EventSetup &iSetup, const std::string suffix, bool useInac)
std::string stateName_
Definition: TrackAnalyzer.h:96
edm::ParameterSet const * conf_
Definition: TrackAnalyzer.h:94
void bookHistosForState(std::string sname, DQMStore::IBooker &ibooker)
void bookHistosForBeamSpot(DQMStore::IBooker &ibooker)
void bookHistosForLScertification(DQMStore::IBooker &ibooker)

◆ initHistos()

void TrackAnalyzer::initHistos ( )
private

Definition at line 109 of file TrackAnalyzer.cc.

References AbsDistanceOfClosestApproachToBS, algorithm, Chi2oNDF, Chi2oNDF_lumiFlag, Chi2oNDFVsEta, Chi2oNDFVsPhi, Chi2oNDFVsTheta, Chi2Prob, Chi2ProbVsEta, Chi2ProbVsPhi, DeltaZToPV, DeltaZToPVZoom, DistanceOfClosestApproach, DistanceOfClosestApproachError, DistanceOfClosestApproachErrorVsDxy, DistanceOfClosestApproachErrorVsEta, DistanceOfClosestApproachErrorVsPhi, DistanceOfClosestApproachErrorVsPt, DistanceOfClosestApproachToBS, DistanceOfClosestApproachToBSdz, DistanceOfClosestApproachToBSVsEta, DistanceOfClosestApproachToBSVsPhi, DistanceOfClosestApproachToPV, DistanceOfClosestApproachToPVVsPhi, DistanceOfClosestApproachToPVZoom, DistanceOfClosestApproachVsEta, DistanceOfClosestApproachVsPhi, DistanceOfClosestApproachVsTheta, dNdEta_HighPurity, dNdPhi_HighPurity, dNdPt_HighPurity, LongDCASig, NhitVsEta_HighPurity, NhitVsPhi_HighPurity, NumberOfLostRecHitsPerTrack, NumberOfRecHitsPerTrack, NumberOfRecHitsPerTrack_lumiFlag, NumberOfRecHitsPerTrackVsEta, NumberOfRecHitsPerTrackVsPhi, NumberOfRecHitsPerTrackVsTheta, NumberOfRecHitVsPhiVsEtaPerTrack, NumberOfValidRecHitsPerTrack, NumberOfValidRecHitsPerTrackVsEta, NumberOfValidRecHitsPerTrackVsPhi, oriAlgo, sip2dToPV, sip3dToPV, sipDxyToBS, sipDxyToPV, sipDzToBS, sipDzToPV, stoppingSource, stoppingSourceVSeta, stoppingSourceVSphi, TESTDistanceOfClosestApproachToBS, TESTDistanceOfClosestApproachToBSVsPhi, TransDCASig, xPointOfClosestApproach, xPointOfClosestApproachVsZ0wrt000, xPointOfClosestApproachVsZ0wrtBS, yPointOfClosestApproach, yPointOfClosestApproachVsZ0wrt000, yPointOfClosestApproachVsZ0wrtBS, zPointOfClosestApproach, and zPointOfClosestApproachVsPhi.

Referenced by TrackAnalyzer().

109  {
110  Chi2 = nullptr;
111  Chi2Prob = nullptr;
112  Chi2ProbVsPhi = nullptr;
113  Chi2ProbVsEta = nullptr;
114  Chi2oNDF = nullptr;
115  Chi2oNDFVsEta = nullptr;
116  Chi2oNDFVsPhi = nullptr;
117  Chi2oNDFVsTheta = nullptr;
118 
119  NumberOfRecHitsPerTrack = nullptr;
121  NumberOfLostRecHitsPerTrack = nullptr;
122 
126 
128 
131 
132  DistanceOfClosestApproach = nullptr;
143  DeltaZToPV = nullptr;
144  DeltaZToPVZoom = nullptr;
151  xPointOfClosestApproach = nullptr;
154  yPointOfClosestApproach = nullptr;
157  zPointOfClosestApproach = nullptr;
159  algorithm = nullptr;
160  oriAlgo = nullptr;
161  stoppingSource = nullptr;
162  stoppingSourceVSeta = nullptr;
163  stoppingSourceVSphi = nullptr;
164  // TESTING
167 
168  // by Mia in order to deal w/ LS transitions
169  Chi2oNDF_lumiFlag = nullptr;
171 
173  //special Plots for HI DQM //SHOULD I ADD THE BOOL HERE??
175  LongDCASig = nullptr;
176  TransDCASig = nullptr;
177  dNdPhi_HighPurity = nullptr;
178  dNdEta_HighPurity = nullptr;
179  dNdPt_HighPurity = nullptr;
180  NhitVsEta_HighPurity = nullptr;
181  NhitVsPhi_HighPurity = nullptr;
182 
183  // IP significance
184  sipDxyToBS = nullptr;
185  sipDzToBS = nullptr;
186  sip3dToPV = nullptr;
187  sip2dToPV = nullptr;
188  sipDxyToPV = nullptr;
189  sipDzToPV = nullptr;
190 }
MonitorElement * dNdPhi_HighPurity
MonitorElement * LongDCASig
MonitorElement * NumberOfRecHitsPerTrackVsEta
MonitorElement * algorithm
MonitorElement * sipDxyToPV
MonitorElement * DistanceOfClosestApproach
MonitorElement * stoppingSource
MonitorElement * DistanceOfClosestApproachToBSdz
MonitorElement * DistanceOfClosestApproachError
MonitorElement * Chi2oNDFVsPhi
MonitorElement * DeltaZToPVZoom
MonitorElement * sip2dToPV
MonitorElement * Chi2oNDF
MonitorElement * DeltaZToPV
MonitorElement * NumberOfLostRecHitsPerTrack
MonitorElement * yPointOfClosestApproach
MonitorElement * sipDxyToBS
MonitorElement * xPointOfClosestApproach
MonitorElement * DistanceOfClosestApproachErrorVsEta
MonitorElement * TransDCASig
MonitorElement * DistanceOfClosestApproachVsPhi
MonitorElement * Chi2oNDFVsTheta
MonitorElement * DistanceOfClosestApproachToPVVsPhi
MonitorElement * stoppingSourceVSeta
MonitorElement * dNdPt_HighPurity
MonitorElement * Chi2oNDF_lumiFlag
MonitorElement * stoppingSourceVSphi
MonitorElement * DistanceOfClosestApproachErrorVsPt
MonitorElement * sip3dToPV
MonitorElement * Chi2Prob
MonitorElement * Chi2ProbVsEta
MonitorElement * NhitVsEta_HighPurity
MonitorElement * DistanceOfClosestApproachVsTheta
MonitorElement * Chi2ProbVsPhi
MonitorElement * NumberOfRecHitsPerTrackVsPhi
MonitorElement * zPointOfClosestApproach
MonitorElement * sipDzToPV
MonitorElement * sipDzToBS
MonitorElement * DistanceOfClosestApproachErrorVsPhi
MonitorElement * DistanceOfClosestApproachVsEta
MonitorElement * TESTDistanceOfClosestApproachToBSVsPhi
MonitorElement * DistanceOfClosestApproachToBS
MonitorElement * NumberOfValidRecHitsPerTrackVsEta
MonitorElement * NhitVsPhi_HighPurity
MonitorElement * NumberOfRecHitsPerTrack
MonitorElement * xPointOfClosestApproachVsZ0wrtBS
MonitorElement * NumberOfRecHitsPerTrack_lumiFlag
MonitorElement * DistanceOfClosestApproachToPVZoom
MonitorElement * DistanceOfClosestApproachToBSVsEta
MonitorElement * DistanceOfClosestApproachErrorVsDxy
MonitorElement * NumberOfValidRecHitsPerTrack
MonitorElement * AbsDistanceOfClosestApproachToBS
MonitorElement * yPointOfClosestApproachVsZ0wrtBS
MonitorElement * TESTDistanceOfClosestApproachToBS
MonitorElement * NumberOfRecHitsPerTrackVsTheta
MonitorElement * oriAlgo
MonitorElement * yPointOfClosestApproachVsZ0wrt000
MonitorElement * dNdEta_HighPurity
Definition: Chi2.h:15
MonitorElement * xPointOfClosestApproachVsZ0wrt000
MonitorElement * NumberOfValidRecHitsPerTrackVsPhi
MonitorElement * zPointOfClosestApproachVsPhi
MonitorElement * DistanceOfClosestApproachToPV
MonitorElement * Chi2oNDFVsEta
MonitorElement * DistanceOfClosestApproachToBSVsPhi
MonitorElement * NumberOfRecHitVsPhiVsEtaPerTrack

◆ setBX()

void TrackAnalyzer::setBX ( const edm::Event iEvent)

Definition at line 1119 of file TrackAnalyzer.cc.

References bx_, and iEvent.

Referenced by TrackingMonitor::analyze().

1119 { bx_ = iEvent.bunchCrossing(); }
int iEvent
Definition: GenABIO.cc:224

◆ setLumi()

void TrackAnalyzer::setLumi ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)

Definition at line 1121 of file TrackAnalyzer.cc.

References edmNew::DetSetVector< T >::begin(), GetLumi::CM2_TO_NANOBARN, edmNew::DetSetVector< T >::end(), forceSCAL_, edm::EventSetup::getData(), iEvent, OnlineLuminosityRecord::instLumi(), edm::HandleBase::isValid(), TrackerTopology::layer(), lumi_factor_per_bx_, V0Monitor_cfi::lumiScalers, lumiscalersToken_, metaDataToken_, minNumberOfPixelsPerCluster_, minPixelClusterCharge_, online_lumi_, pixel_lumi_, PixelSubdetector::PixelBarrel, DQMOffline_LumiMonitoring_cff::pixelClusters, pixelClustersToken_, edmNew::DetSet< T >::size(), DetId::subdetId(), and trackerTopologyToken_.

Referenced by TrackingMonitor::analyze().

1121  {
1122  // as done by pixelLumi http://cmslxr.fnal.gov/source/DQM/PixelLumi/plugins/PixelLumiDQM.cc
1123 
1124  if (forceSCAL_) {
1126  if (lumiScalers.isValid() && !lumiScalers->empty()) {
1127  LumiScalersCollection::const_iterator scalit = lumiScalers->begin();
1128  online_lumi_ = scalit->instantLumi();
1129  } else
1130  online_lumi_ = -1;
1131  } else {
1133  if (metaData.isValid())
1134  online_lumi_ = metaData->instLumi();
1135  else
1136  online_lumi_ = -1;
1137  }
1138 
1140  if (pixelClusters.isValid()) {
1141  TrackerTopology const& tTopo = iSetup.getData(trackerTopologyToken_);
1142 
1143  // Count the number of clusters with at least a minimum
1144  // number of pixels per cluster and at least a minimum charge.
1145  size_t numClusters = 0;
1146 
1148  for (; pixCluDet != pixelClusters->end(); ++pixCluDet) {
1149  DetId detid = pixCluDet->detId();
1150  size_t subdetid = detid.subdetId();
1151  // std::cout << tTopo.print(detid) << std::endl;
1152  if (subdetid == (int)PixelSubdetector::PixelBarrel)
1153  if (tTopo.layer(detid) == 1)
1154  continue;
1155 
1157  for (; pixClu != pixCluDet->end(); ++pixClu) {
1158  if ((pixClu->size() >= minNumberOfPixelsPerCluster_) && (pixClu->charge() >= minPixelClusterCharge_)) {
1159  ++numClusters;
1160  }
1161  }
1162  }
1163  pixel_lumi_ = lumi_factor_per_bx_ * numClusters / GetLumi::CM2_TO_NANOBARN; // ?!?!
1164  } else
1165  pixel_lumi_ = -1.;
1166 }
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClustersToken_
Definition: TrackAnalyzer.h:85
data_type const * const_iterator
Definition: DetSetNew.h:31
float instLumi() const
Return the luminosity for the current nibble.
edm::EDGetTokenT< OnlineLuminosityRecord > metaDataToken_
Definition: TrackAnalyzer.h:87
unsigned int layer(const DetId &id) const
const_iterator end(bool update=false) const
int iEvent
Definition: GenABIO.cc:224
edm::EDGetTokenT< LumiScalersCollection > lumiscalersToken_
Definition: TrackAnalyzer.h:86
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:48
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
Definition: DetId.h:17
const_iterator begin(bool update=false) const
bool isValid() const
Definition: HandleBase.h:70
size_type size() const
Definition: DetSetNew.h:65
static constexpr double CM2_TO_NANOBARN
Definition: GetLumi.h:39
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > trackerTopologyToken_
Definition: TrackAnalyzer.h:89

◆ setNumberOfGoodVertices()

void TrackAnalyzer::setNumberOfGoodVertices ( const edm::Event iEvent)

Definition at line 1108 of file TrackAnalyzer.cc.

References good_vertices_, iEvent, edm::HandleBase::isValid(), pvNDOF_, pvToken_, and findQualityFiles::v.

Referenced by TrackingMonitor::analyze().

1108  {
1109  good_vertices_ = 0;
1110 
1111  edm::Handle<reco::VertexCollection> recoPrimaryVerticesHandle = iEvent.getHandle(pvToken_);
1112  if (recoPrimaryVerticesHandle.isValid())
1113  if (!recoPrimaryVerticesHandle->empty())
1114  for (const auto& v : *recoPrimaryVerticesHandle)
1115  if (v.ndof() >= pvNDOF_ && !v.isFake())
1116  ++good_vertices_;
1117 }
int iEvent
Definition: GenABIO.cc:224
unsigned int good_vertices_
edm::EDGetTokenT< reco::VertexCollection > pvToken_
Definition: TrackAnalyzer.h:84
bool isValid() const
Definition: HandleBase.h:70

Member Data Documentation

◆ AbsDistanceOfClosestApproachToBS

MonitorElement* tadqm::TrackAnalyzer::AbsDistanceOfClosestApproachToBS
private

Definition at line 402 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ algorithm

MonitorElement* tadqm::TrackAnalyzer::algorithm
private

Definition at line 426 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForHitProperties(), and initHistos().

◆ beamSpotToken_

edm::EDGetTokenT<reco::BeamSpot> tadqm::TrackAnalyzer::beamSpotToken_
private

Definition at line 83 of file TrackAnalyzer.h.

Referenced by analyze(), and TrackAnalyzer().

◆ bx_

unsigned int tadqm::TrackAnalyzer::bx_
private

Definition at line 498 of file TrackAnalyzer.h.

Referenced by analyze(), and setBX().

◆ Chi2

MonitorElement* tadqm::TrackAnalyzer::Chi2
private

Definition at line 380 of file TrackAnalyzer.h.

◆ Chi2oNDF

MonitorElement* tadqm::TrackAnalyzer::Chi2oNDF
private

Definition at line 382 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForHitProperties(), and initHistos().

◆ Chi2oNDF_lumiFlag

MonitorElement* tadqm::TrackAnalyzer::Chi2oNDF_lumiFlag
private

Definition at line 435 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForLScertification(), and initHistos().

◆ Chi2oNDFVsEta

MonitorElement* tadqm::TrackAnalyzer::Chi2oNDFVsEta = nullptr
private

Definition at line 386 of file TrackAnalyzer.h.

Referenced by initHistos().

◆ Chi2oNDFVsNHits

MonitorElement* tadqm::TrackAnalyzer::Chi2oNDFVsNHits = nullptr
private

Definition at line 384 of file TrackAnalyzer.h.

◆ Chi2oNDFVsPhi

MonitorElement* tadqm::TrackAnalyzer::Chi2oNDFVsPhi
private

Definition at line 387 of file TrackAnalyzer.h.

Referenced by initHistos().

◆ Chi2oNDFVsPt

MonitorElement* tadqm::TrackAnalyzer::Chi2oNDFVsPt = nullptr
private

Definition at line 385 of file TrackAnalyzer.h.

◆ Chi2oNDFVsTheta

MonitorElement* tadqm::TrackAnalyzer::Chi2oNDFVsTheta
private

Definition at line 388 of file TrackAnalyzer.h.

Referenced by initHistos().

◆ Chi2Prob

MonitorElement* tadqm::TrackAnalyzer::Chi2Prob
private

Definition at line 381 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForHitProperties(), and initHistos().

◆ Chi2ProbVsEta

MonitorElement* tadqm::TrackAnalyzer::Chi2ProbVsEta
private

Definition at line 390 of file TrackAnalyzer.h.

Referenced by initHistos().

◆ Chi2ProbVsPhi

MonitorElement* tadqm::TrackAnalyzer::Chi2ProbVsPhi
private

Definition at line 391 of file TrackAnalyzer.h.

Referenced by initHistos().

◆ Chi2ProbVsTheta

MonitorElement* tadqm::TrackAnalyzer::Chi2ProbVsTheta
private

Definition at line 392 of file TrackAnalyzer.h.

◆ conf_

edm::ParameterSet const* tadqm::TrackAnalyzer::conf_
private

◆ DeltaZToPV

MonitorElement* tadqm::TrackAnalyzer::DeltaZToPV
private

Definition at line 405 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ DeltaZToPVZoom

MonitorElement* tadqm::TrackAnalyzer::DeltaZToPVZoom
private

Definition at line 406 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ DistanceOfClosestApproach

MonitorElement* tadqm::TrackAnalyzer::DistanceOfClosestApproach
private

Definition at line 394 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ DistanceOfClosestApproachError

MonitorElement* tadqm::TrackAnalyzer::DistanceOfClosestApproachError
private

Definition at line 395 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ DistanceOfClosestApproachErrorVsDxy

MonitorElement* tadqm::TrackAnalyzer::DistanceOfClosestApproachErrorVsDxy
private

Definition at line 399 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ DistanceOfClosestApproachErrorVsEta

MonitorElement* tadqm::TrackAnalyzer::DistanceOfClosestApproachErrorVsEta
private

Definition at line 397 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ DistanceOfClosestApproachErrorVsPhi

MonitorElement* tadqm::TrackAnalyzer::DistanceOfClosestApproachErrorVsPhi
private

Definition at line 398 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ DistanceOfClosestApproachErrorVsPt

MonitorElement* tadqm::TrackAnalyzer::DistanceOfClosestApproachErrorVsPt
private

Definition at line 396 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ DistanceOfClosestApproachToBS

MonitorElement* tadqm::TrackAnalyzer::DistanceOfClosestApproachToBS
private

Definition at line 400 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ DistanceOfClosestApproachToBSdz

MonitorElement* tadqm::TrackAnalyzer::DistanceOfClosestApproachToBSdz
private

Definition at line 401 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ DistanceOfClosestApproachToBSVsEta

MonitorElement* tadqm::TrackAnalyzer::DistanceOfClosestApproachToBSVsEta
private

Definition at line 410 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ DistanceOfClosestApproachToBSVsPhi

MonitorElement* tadqm::TrackAnalyzer::DistanceOfClosestApproachToBSVsPhi
private

Definition at line 409 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ DistanceOfClosestApproachToPV

MonitorElement* tadqm::TrackAnalyzer::DistanceOfClosestApproachToPV
private

Definition at line 403 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ DistanceOfClosestApproachToPVVsPhi

MonitorElement* tadqm::TrackAnalyzer::DistanceOfClosestApproachToPVVsPhi
private

Definition at line 411 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ DistanceOfClosestApproachToPVZoom

MonitorElement* tadqm::TrackAnalyzer::DistanceOfClosestApproachToPVZoom
private

Definition at line 404 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ DistanceOfClosestApproachVsEta

MonitorElement* tadqm::TrackAnalyzer::DistanceOfClosestApproachVsEta
private

Definition at line 412 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ DistanceOfClosestApproachVsPhi

MonitorElement* tadqm::TrackAnalyzer::DistanceOfClosestApproachVsPhi
private

Definition at line 408 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ DistanceOfClosestApproachVsTheta

MonitorElement* tadqm::TrackAnalyzer::DistanceOfClosestApproachVsTheta
private

Definition at line 407 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ dNdEta_HighPurity

MonitorElement* tadqm::TrackAnalyzer::dNdEta_HighPurity
private

Definition at line 442 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForHitProperties(), and initHistos().

◆ dNdPhi_HighPurity

MonitorElement* tadqm::TrackAnalyzer::dNdPhi_HighPurity
private

Definition at line 441 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForHitProperties(), and initHistos().

◆ dNdPt_HighPurity

MonitorElement* tadqm::TrackAnalyzer::dNdPt_HighPurity
private

Definition at line 443 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForHitProperties(), and initHistos().

◆ dNhitdPt_HighPurity

MonitorElement* tadqm::TrackAnalyzer::dNhitdPt_HighPurity
private

Definition at line 447 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ doAllPlots_

bool tadqm::TrackAnalyzer::doAllPlots_
private

◆ doBSPlots_

bool tadqm::TrackAnalyzer::doBSPlots_
private

Definition at line 100 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForBeamSpot().

◆ doDCAPlots_

bool tadqm::TrackAnalyzer::doDCAPlots_
private

Definition at line 102 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and bookHistosForHitProperties().

◆ doDCAwrt000Plots_

bool tadqm::TrackAnalyzer::doDCAwrt000Plots_
private

Definition at line 122 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForBeamSpot().

◆ doDCAwrtPVPlots_

bool tadqm::TrackAnalyzer::doDCAwrtPVPlots_
private

Definition at line 121 of file TrackAnalyzer.h.

◆ doEffFromHitPatternVsBX_

bool tadqm::TrackAnalyzer::doEffFromHitPatternVsBX_
private

Definition at line 138 of file TrackAnalyzer.h.

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

◆ doEffFromHitPatternVsLUMI_

bool tadqm::TrackAnalyzer::doEffFromHitPatternVsLUMI_
private

Definition at line 139 of file TrackAnalyzer.h.

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

◆ doEffFromHitPatternVsPU_

bool tadqm::TrackAnalyzer::doEffFromHitPatternVsPU_
private

Definition at line 137 of file TrackAnalyzer.h.

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

◆ doGeneralPropertiesPlots_

bool tadqm::TrackAnalyzer::doGeneralPropertiesPlots_
private

Definition at line 103 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ doHIPlots_

bool tadqm::TrackAnalyzer::doHIPlots_
private

Definition at line 130 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ doHitPropertiesPlots_

bool tadqm::TrackAnalyzer::doHitPropertiesPlots_
private

Definition at line 105 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ doLayersVsPhiVsEtaPerTrack_

bool tadqm::TrackAnalyzer::doLayersVsPhiVsEtaPerTrack_
private

Definition at line 109 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ doLumiAnalysis_

bool tadqm::TrackAnalyzer::doLumiAnalysis_
private

Definition at line 124 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForLScertification().

◆ doMeasurementStatePlots_

bool tadqm::TrackAnalyzer::doMeasurementStatePlots_
private

Definition at line 104 of file TrackAnalyzer.h.

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

◆ doPVPlots_

bool tadqm::TrackAnalyzer::doPVPlots_
private

Definition at line 101 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and bookHistosForHitProperties().

◆ doRecHitsPerTrackProfile_

bool tadqm::TrackAnalyzer::doRecHitsPerTrackProfile_
private

Definition at line 114 of file TrackAnalyzer.h.

◆ doRecHitVsPhiVsEtaPerTrack_

bool tadqm::TrackAnalyzer::doRecHitVsPhiVsEtaPerTrack_
private

Definition at line 106 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ doRecHitVsPtVsEtaPerTrack_

bool tadqm::TrackAnalyzer::doRecHitVsPtVsEtaPerTrack_
private

Definition at line 107 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ doSIPPlots_

bool tadqm::TrackAnalyzer::doSIPPlots_
private

◆ doTestPlots_

bool tadqm::TrackAnalyzer::doTestPlots_
private

Definition at line 127 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForBeamSpot().

◆ doThetaPlots_

bool tadqm::TrackAnalyzer::doThetaPlots_
private

◆ doTrack2DChi2Plots_

bool tadqm::TrackAnalyzer::doTrack2DChi2Plots_
private

Definition at line 113 of file TrackAnalyzer.h.

◆ doTrackerSpecific_

bool tadqm::TrackAnalyzer::doTrackerSpecific_
private

Definition at line 98 of file TrackAnalyzer.h.

Referenced by analyze(), and initHisto().

◆ doTrackLayersVsPhiVsEtaPerTrack_

bool tadqm::TrackAnalyzer::doTrackLayersVsPhiVsEtaPerTrack_
private

Definition at line 112 of file TrackAnalyzer.h.

◆ doTrackPxPyPlots_

bool tadqm::TrackAnalyzer::doTrackPxPyPlots_
private

Definition at line 118 of file TrackAnalyzer.h.

Referenced by bookHistosForState(), and fillHistosForState().

◆ doTrackRecHitVsPhiVsEtaPerTrack_

bool tadqm::TrackAnalyzer::doTrackRecHitVsPhiVsEtaPerTrack_
private

Definition at line 110 of file TrackAnalyzer.h.

◆ doTrackRecHitVsPtVsEtaPerTrack_

bool tadqm::TrackAnalyzer::doTrackRecHitVsPtVsEtaPerTrack_
private

Definition at line 111 of file TrackAnalyzer.h.

◆ forceSCAL_

const bool tadqm::TrackAnalyzer::forceSCAL_
private

Definition at line 141 of file TrackAnalyzer.h.

Referenced by setLumi().

◆ good_vertices_

unsigned int tadqm::TrackAnalyzer::good_vertices_
private

Definition at line 497 of file TrackAnalyzer.h.

Referenced by analyze(), and setNumberOfGoodVertices().

◆ histname

std::string tadqm::TrackAnalyzer::histname
private

◆ hits_bad_

std::unordered_map<Key, MonitorElement*, KeyHasher> tadqm::TrackAnalyzer::hits_bad_
private

Definition at line 495 of file TrackAnalyzer.h.

◆ hits_inactive_

std::unordered_map<Key, MonitorElement*, KeyHasher> tadqm::TrackAnalyzer::hits_inactive_
private

Definition at line 494 of file TrackAnalyzer.h.

◆ hits_missing_

std::unordered_map<Key, MonitorElement*, KeyHasher> tadqm::TrackAnalyzer::hits_missing_
private

Definition at line 493 of file TrackAnalyzer.h.

◆ hits_total_

std::unordered_map<Key, MonitorElement*, KeyHasher> tadqm::TrackAnalyzer::hits_total_
private

◆ hits_valid_

std::unordered_map<Key, MonitorElement*, KeyHasher> tadqm::TrackAnalyzer::hits_valid_
private

◆ LongDCASig

MonitorElement* tadqm::TrackAnalyzer::LongDCASig
private

Definition at line 439 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForHitProperties(), and initHistos().

◆ lumi_factor_per_bx_

float tadqm::TrackAnalyzer::lumi_factor_per_bx_
private

Definition at line 92 of file TrackAnalyzer.h.

Referenced by setLumi(), and TrackAnalyzer().

◆ lumiscalersToken_

edm::EDGetTokenT<LumiScalersCollection> tadqm::TrackAnalyzer::lumiscalersToken_
private

Definition at line 86 of file TrackAnalyzer.h.

Referenced by setLumi(), and TrackAnalyzer().

◆ metaDataToken_

edm::EDGetTokenT<OnlineLuminosityRecord> tadqm::TrackAnalyzer::metaDataToken_
private

Definition at line 87 of file TrackAnalyzer.h.

Referenced by setLumi(), and TrackAnalyzer().

◆ minNumberOfPixelsPerCluster_

int tadqm::TrackAnalyzer::minNumberOfPixelsPerCluster_
private

Definition at line 143 of file TrackAnalyzer.h.

Referenced by setLumi().

◆ minPixelClusterCharge_

float tadqm::TrackAnalyzer::minPixelClusterCharge_
private

Definition at line 144 of file TrackAnalyzer.h.

Referenced by setLumi().

◆ monName

std::string tadqm::TrackAnalyzer::monName[monQuantity::END] = {"", "VsBX", "VsPIXELLUMI", "VsOnlineLUMI"}
private

◆ NhitVsEta_HighPurity

MonitorElement* tadqm::TrackAnalyzer::NhitVsEta_HighPurity
private

Definition at line 444 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForHitProperties(), and initHistos().

◆ NhitVsPhi_HighPurity

MonitorElement* tadqm::TrackAnalyzer::NhitVsPhi_HighPurity
private

Definition at line 445 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForHitProperties(), and initHistos().

◆ NumberOfLayersPerTrack

MonitorElement* tadqm::TrackAnalyzer::NumberOfLayersPerTrack[4] = {nullptr, nullptr, nullptr, nullptr}
private

Definition at line 372 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ NumberOfLayersPerTrackVsEta

MonitorElement* tadqm::TrackAnalyzer::NumberOfLayersPerTrackVsEta
private

Definition at line 376 of file TrackAnalyzer.h.

◆ NumberOfLayersPerTrackVsPhi

MonitorElement* tadqm::TrackAnalyzer::NumberOfLayersPerTrackVsPhi
private

Definition at line 374 of file TrackAnalyzer.h.

◆ NumberOfLayersPerTrackVsTheta

MonitorElement* tadqm::TrackAnalyzer::NumberOfLayersPerTrackVsTheta
private

Definition at line 375 of file TrackAnalyzer.h.

◆ NumberOfLayersVsPhiVsEtaPerTrack

MonitorElement* tadqm::TrackAnalyzer::NumberOfLayersVsPhiVsEtaPerTrack[5] = {nullptr, nullptr, nullptr, nullptr, nullptr}
private

Definition at line 378 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ NumberOfLostRecHitsPerTrack

MonitorElement* tadqm::TrackAnalyzer::NumberOfLostRecHitsPerTrack
private

Definition at line 332 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForHitProperties(), and initHistos().

◆ NumberOfLostRecHitsPerTrackVsEta

MonitorElement* tadqm::TrackAnalyzer::NumberOfLostRecHitsPerTrackVsEta = nullptr
private

Definition at line 350 of file TrackAnalyzer.h.

◆ NumberOfLostRecHitsPerTrackVsPhi

MonitorElement* tadqm::TrackAnalyzer::NumberOfLostRecHitsPerTrackVsPhi = nullptr
private

Definition at line 348 of file TrackAnalyzer.h.

◆ NumberOfLostRecHitsPerTrackVsPt

MonitorElement* tadqm::TrackAnalyzer::NumberOfLostRecHitsPerTrackVsPt = nullptr
private

Definition at line 351 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ NumberOfLostRecHitsPerTrackVsTheta

MonitorElement* tadqm::TrackAnalyzer::NumberOfLostRecHitsPerTrackVsTheta = nullptr
private

Definition at line 349 of file TrackAnalyzer.h.

◆ NumberOfLostRecHitVsPhiVsEtaPerTrack

MonitorElement* tadqm::TrackAnalyzer::NumberOfLostRecHitVsPhiVsEtaPerTrack = nullptr
private

Definition at line 352 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ NumberOfLostRecHitVsPtVsEtaPerTrack

MonitorElement* tadqm::TrackAnalyzer::NumberOfLostRecHitVsPtVsEtaPerTrack = nullptr
private

Definition at line 353 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ NumberOfMIRecHitsPerTrack

MonitorElement* tadqm::TrackAnalyzer::NumberOfMIRecHitsPerTrack = nullptr
private

Definition at line 333 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ NumberOfMIRecHitsPerTrackVsEta

MonitorElement* tadqm::TrackAnalyzer::NumberOfMIRecHitsPerTrackVsEta = nullptr
private

Definition at line 357 of file TrackAnalyzer.h.

◆ NumberOfMIRecHitsPerTrackVsPhi

MonitorElement* tadqm::TrackAnalyzer::NumberOfMIRecHitsPerTrackVsPhi = nullptr
private

Definition at line 355 of file TrackAnalyzer.h.

◆ NumberOfMIRecHitsPerTrackVsPt

MonitorElement* tadqm::TrackAnalyzer::NumberOfMIRecHitsPerTrackVsPt = nullptr
private

Definition at line 358 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ NumberOfMIRecHitsPerTrackVsTheta

MonitorElement* tadqm::TrackAnalyzer::NumberOfMIRecHitsPerTrackVsTheta = nullptr
private

Definition at line 356 of file TrackAnalyzer.h.

◆ NumberOfMIRecHitVsPhiVsEtaPerTrack

MonitorElement* tadqm::TrackAnalyzer::NumberOfMIRecHitVsPhiVsEtaPerTrack = nullptr
private

Definition at line 359 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ NumberOfMIRecHitVsPtVsEtaPerTrack

MonitorElement* tadqm::TrackAnalyzer::NumberOfMIRecHitVsPtVsEtaPerTrack = nullptr
private

Definition at line 360 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ NumberOfMORecHitsPerTrack

MonitorElement* tadqm::TrackAnalyzer::NumberOfMORecHitsPerTrack = nullptr
private

Definition at line 334 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ NumberOfMORecHitsPerTrackVsEta

MonitorElement* tadqm::TrackAnalyzer::NumberOfMORecHitsPerTrackVsEta = nullptr
private

Definition at line 364 of file TrackAnalyzer.h.

◆ NumberOfMORecHitsPerTrackVsPhi

MonitorElement* tadqm::TrackAnalyzer::NumberOfMORecHitsPerTrackVsPhi = nullptr
private

Definition at line 362 of file TrackAnalyzer.h.

◆ NumberOfMORecHitsPerTrackVsPt

MonitorElement* tadqm::TrackAnalyzer::NumberOfMORecHitsPerTrackVsPt = nullptr
private

Definition at line 365 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ NumberOfMORecHitsPerTrackVsTheta

MonitorElement* tadqm::TrackAnalyzer::NumberOfMORecHitsPerTrackVsTheta = nullptr
private

Definition at line 363 of file TrackAnalyzer.h.

◆ NumberOfMORecHitVsPhiVsEtaPerTrack

MonitorElement* tadqm::TrackAnalyzer::NumberOfMORecHitVsPhiVsEtaPerTrack = nullptr
private

Definition at line 366 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ NumberOfMORecHitVsPtVsEtaPerTrack

MonitorElement* tadqm::TrackAnalyzer::NumberOfMORecHitVsPtVsEtaPerTrack = nullptr
private

Definition at line 367 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ NumberOfRecHitsPerTrack

MonitorElement* tadqm::TrackAnalyzer::NumberOfRecHitsPerTrack
private

Definition at line 330 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForHitProperties(), and initHistos().

◆ NumberOfRecHitsPerTrack_lumiFlag

MonitorElement* tadqm::TrackAnalyzer::NumberOfRecHitsPerTrack_lumiFlag
private

Definition at line 436 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForLScertification(), and initHistos().

◆ NumberOfRecHitsPerTrackVsEta

MonitorElement* tadqm::TrackAnalyzer::NumberOfRecHitsPerTrackVsEta = nullptr
private

Definition at line 338 of file TrackAnalyzer.h.

Referenced by initHistos().

◆ NumberOfRecHitsPerTrackVsPhi

MonitorElement* tadqm::TrackAnalyzer::NumberOfRecHitsPerTrackVsPhi = nullptr
private

Definition at line 336 of file TrackAnalyzer.h.

Referenced by initHistos().

◆ NumberOfRecHitsPerTrackVsTheta

MonitorElement* tadqm::TrackAnalyzer::NumberOfRecHitsPerTrackVsTheta = nullptr
private

Definition at line 337 of file TrackAnalyzer.h.

Referenced by initHistos().

◆ NumberOfRecHitVsPhiVsEtaPerTrack

MonitorElement* tadqm::TrackAnalyzer::NumberOfRecHitVsPhiVsEtaPerTrack = nullptr
private

Definition at line 339 of file TrackAnalyzer.h.

Referenced by initHistos().

◆ NumberOfValidRecHitsPerTrack

MonitorElement* tadqm::TrackAnalyzer::NumberOfValidRecHitsPerTrack
private

Definition at line 331 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForHitProperties(), and initHistos().

◆ NumberOfValidRecHitsPerTrackVsEta

MonitorElement* tadqm::TrackAnalyzer::NumberOfValidRecHitsPerTrackVsEta = nullptr
private

Definition at line 343 of file TrackAnalyzer.h.

Referenced by initHistos().

◆ NumberOfValidRecHitsPerTrackVsPhi

MonitorElement* tadqm::TrackAnalyzer::NumberOfValidRecHitsPerTrackVsPhi = nullptr
private

Definition at line 341 of file TrackAnalyzer.h.

Referenced by initHistos().

◆ NumberOfValidRecHitsPerTrackVsPt

MonitorElement* tadqm::TrackAnalyzer::NumberOfValidRecHitsPerTrackVsPt = nullptr
private

Definition at line 344 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ NumberOfValidRecHitsPerTrackVsTheta

MonitorElement* tadqm::TrackAnalyzer::NumberOfValidRecHitsPerTrackVsTheta = nullptr
private

Definition at line 342 of file TrackAnalyzer.h.

◆ NumberOfValidRecHitVsPhiVsEtaPerTrack

MonitorElement* tadqm::TrackAnalyzer::NumberOfValidRecHitVsPhiVsEtaPerTrack = nullptr
private

Definition at line 345 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ NumberOfValidRecHitVsPtVsEtaPerTrack

MonitorElement* tadqm::TrackAnalyzer::NumberOfValidRecHitVsPtVsEtaPerTrack = nullptr
private

Definition at line 346 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ online_lumi_

float tadqm::TrackAnalyzer::online_lumi_
private

Definition at line 500 of file TrackAnalyzer.h.

Referenced by analyze(), and setLumi().

◆ oriAlgo

MonitorElement * tadqm::TrackAnalyzer::oriAlgo
private

Definition at line 426 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForHitProperties(), and initHistos().

◆ pixel_lumi_

float tadqm::TrackAnalyzer::pixel_lumi_
private

Definition at line 499 of file TrackAnalyzer.h.

Referenced by setLumi().

◆ pixelClustersToken_

edm::EDGetTokenT<edmNew::DetSetVector<SiPixelCluster> > tadqm::TrackAnalyzer::pixelClustersToken_
private

Definition at line 85 of file TrackAnalyzer.h.

Referenced by setLumi(), and TrackAnalyzer().

◆ Ptdist_HighPurity

MonitorElement* tadqm::TrackAnalyzer::Ptdist_HighPurity
private

Definition at line 446 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ pvNDOF_

int tadqm::TrackAnalyzer::pvNDOF_
private

Definition at line 140 of file TrackAnalyzer.h.

Referenced by setNumberOfGoodVertices().

◆ pvToken_

edm::EDGetTokenT<reco::VertexCollection> tadqm::TrackAnalyzer::pvToken_
private

Definition at line 84 of file TrackAnalyzer.h.

Referenced by analyze(), setNumberOfGoodVertices(), and TrackAnalyzer().

◆ qualityString_

std::string tadqm::TrackAnalyzer::qualityString_
private

Definition at line 145 of file TrackAnalyzer.h.

Referenced by analyze().

◆ sip2dToPV

MonitorElement* tadqm::TrackAnalyzer::sip2dToPV
private

Definition at line 453 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ sip3dToPV

MonitorElement* tadqm::TrackAnalyzer::sip3dToPV
private

Definition at line 452 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ sipDxyToBS

MonitorElement* tadqm::TrackAnalyzer::sipDxyToBS
private

Definition at line 450 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ sipDxyToPV

MonitorElement* tadqm::TrackAnalyzer::sipDxyToPV
private

Definition at line 454 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ sipDzToBS

MonitorElement* tadqm::TrackAnalyzer::sipDzToBS
private

Definition at line 451 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ sipDzToPV

MonitorElement* tadqm::TrackAnalyzer::sipDzToPV
private

Definition at line 455 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ stateName_

std::string tadqm::TrackAnalyzer::stateName_
private

Definition at line 96 of file TrackAnalyzer.h.

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

◆ stoppingSource

MonitorElement* tadqm::TrackAnalyzer::stoppingSource
private

Definition at line 427 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForHitProperties(), and initHistos().

◆ stoppingSourceVSeta

MonitorElement* tadqm::TrackAnalyzer::stoppingSourceVSeta
private

Definition at line 428 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForHitProperties(), and initHistos().

◆ stoppingSourceVSphi

MonitorElement* tadqm::TrackAnalyzer::stoppingSourceVSphi
private

Definition at line 429 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForHitProperties(), and initHistos().

◆ TESTDistanceOfClosestApproachToBS

MonitorElement* tadqm::TrackAnalyzer::TESTDistanceOfClosestApproachToBS
private

Definition at line 431 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ TESTDistanceOfClosestApproachToBSVsPhi

MonitorElement* tadqm::TrackAnalyzer::TESTDistanceOfClosestApproachToBSVsPhi
private

Definition at line 432 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ TkParameterMEMap

std::map<std::string, TkParameterMEs> tadqm::TrackAnalyzer::TkParameterMEMap
private

Definition at line 328 of file TrackAnalyzer.h.

Referenced by bookHistosForState(), and fillHistosForState().

◆ TkRecHitsPerSubDetMEMap

std::map<std::string, TkRecHitsPerSubDetMEs> tadqm::TrackAnalyzer::TkRecHitsPerSubDetMEMap
private

Definition at line 471 of file TrackAnalyzer.h.

Referenced by bookHistosForTrackerSpecific(), and fillHistosForTrackerSpecific().

◆ TopFolder_

std::string tadqm::TrackAnalyzer::TopFolder_
private

◆ trackerGeometryToken_

edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> tadqm::TrackAnalyzer::trackerGeometryToken_
private

Definition at line 88 of file TrackAnalyzer.h.

Referenced by bookHistosForEfficiencyFromHitPatter(), and TrackAnalyzer().

◆ trackerTopologyToken_

edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> tadqm::TrackAnalyzer::trackerTopologyToken_
private

Definition at line 89 of file TrackAnalyzer.h.

Referenced by setLumi(), and TrackAnalyzer().

◆ TransDCASig

MonitorElement* tadqm::TrackAnalyzer::TransDCASig
private

Definition at line 440 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForHitProperties(), and initHistos().

◆ transientTrackBuilderToken_

edm::ESGetToken<TransientTrackBuilder, TransientTrackRecord> tadqm::TrackAnalyzer::transientTrackBuilderToken_
private

Definition at line 90 of file TrackAnalyzer.h.

Referenced by analyze(), fillHistosForState(), and TrackAnalyzer().

◆ useBPixLayer1_

bool tadqm::TrackAnalyzer::useBPixLayer1_
private

Definition at line 142 of file TrackAnalyzer.h.

Referenced by TrackAnalyzer().

◆ ValidFractionPerTrack

MonitorElement* tadqm::TrackAnalyzer::ValidFractionPerTrack = nullptr
private

Definition at line 369 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ ValidFractionVsPhiVsEtaPerTrack

MonitorElement* tadqm::TrackAnalyzer::ValidFractionVsPhiVsEtaPerTrack = nullptr
private

Definition at line 370 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ xPointOfClosestApproach

MonitorElement* tadqm::TrackAnalyzer::xPointOfClosestApproach
private

Definition at line 413 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForHitProperties(), and initHistos().

◆ xPointOfClosestApproachToPV

MonitorElement* tadqm::TrackAnalyzer::xPointOfClosestApproachToPV
private

Definition at line 414 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ xPointOfClosestApproachVsZ0wrt000

MonitorElement* tadqm::TrackAnalyzer::xPointOfClosestApproachVsZ0wrt000
private

Definition at line 415 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ xPointOfClosestApproachVsZ0wrtBS

MonitorElement* tadqm::TrackAnalyzer::xPointOfClosestApproachVsZ0wrtBS
private

Definition at line 416 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ xPointOfClosestApproachVsZ0wrtPV

MonitorElement* tadqm::TrackAnalyzer::xPointOfClosestApproachVsZ0wrtPV
private

Definition at line 417 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForBeamSpot().

◆ yPointOfClosestApproach

MonitorElement* tadqm::TrackAnalyzer::yPointOfClosestApproach
private

Definition at line 418 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForHitProperties(), and initHistos().

◆ yPointOfClosestApproachToPV

MonitorElement* tadqm::TrackAnalyzer::yPointOfClosestApproachToPV
private

Definition at line 419 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ yPointOfClosestApproachVsZ0wrt000

MonitorElement* tadqm::TrackAnalyzer::yPointOfClosestApproachVsZ0wrt000
private

Definition at line 420 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ yPointOfClosestApproachVsZ0wrtBS

MonitorElement* tadqm::TrackAnalyzer::yPointOfClosestApproachVsZ0wrtBS
private

Definition at line 421 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().

◆ yPointOfClosestApproachVsZ0wrtPV

MonitorElement* tadqm::TrackAnalyzer::yPointOfClosestApproachVsZ0wrtPV
private

Definition at line 422 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForBeamSpot().

◆ zPointOfClosestApproach

MonitorElement* tadqm::TrackAnalyzer::zPointOfClosestApproach
private

Definition at line 423 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForHitProperties(), and initHistos().

◆ zPointOfClosestApproachToPV

MonitorElement* tadqm::TrackAnalyzer::zPointOfClosestApproachToPV
private

Definition at line 424 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

◆ zPointOfClosestApproachVsPhi

MonitorElement* tadqm::TrackAnalyzer::zPointOfClosestApproachVsPhi
private

Definition at line 425 of file TrackAnalyzer.h.

Referenced by analyze(), bookHistosForBeamSpot(), and initHistos().