CMS 3D CMS Logo

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

#include <TrackAnalyzer.h>

Classes

struct  Key
 
struct  KeyHasher
 
struct  TkParameterMEs
 
struct  TkRecHitsPerSubDetMEs
 

Public Member Functions

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

Private Types

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

Private Member Functions

void bookHistosForBeamSpot (DQMStore::IBooker &ibooker)
 
void bookHistosForEfficiencyFromHitPatter (DQMStore::IBooker &ibooker, const edm::EventSetup &iSetup, const std::string suffix)
 
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)
 
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 = 0
 
MonitorElementChi2oNDFVsNHits = 0
 
MonitorElementChi2oNDFVsPhi
 
MonitorElementChi2oNDFVsPt = 0
 
MonitorElementChi2oNDFVsTheta
 
MonitorElementChi2Prob
 
MonitorElementChi2ProbVsEta
 
MonitorElementChi2ProbVsPhi
 
MonitorElementChi2ProbVsTheta
 
edm::ParameterSet conf_
 
MonitorElementDeltaZToPV
 
MonitorElementDistanceOfClosestApproach
 
MonitorElementDistanceOfClosestApproachToBS
 
MonitorElementDistanceOfClosestApproachToBSVsPhi
 
MonitorElementDistanceOfClosestApproachToPV
 
MonitorElementDistanceOfClosestApproachToPVVsPhi
 
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_
 
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_
 
int minNumberOfPixelsPerCluster_
 
float minPixelClusterCharge_
 
std::string monName [monQuantity::END] = { "", "VsBX", "VsPIXELLUMI", "VsSCALLUMI" }
 
MonitorElementNhitVsEta_HighPurity
 
MonitorElementNhitVsPhi_HighPurity
 
MonitorElementNumberOfLayersPerTrack [4] = { 0 , 0 , 0 , 0 }
 
MonitorElementNumberOfLayersPerTrackVsEta
 
MonitorElementNumberOfLayersPerTrackVsPhi
 
MonitorElementNumberOfLayersPerTrackVsTheta
 
MonitorElementNumberOfLayersVsPhiVsEtaPerTrack [4] = { 0 , 0 , 0 , 0 }
 
MonitorElementNumberOfLostRecHitsPerTrack
 
MonitorElementNumberOfLostRecHitsPerTrackVsEta = 0
 
MonitorElementNumberOfLostRecHitsPerTrackVsPhi = 0
 
MonitorElementNumberOfLostRecHitsPerTrackVsPt = 0
 
MonitorElementNumberOfLostRecHitsPerTrackVsTheta = 0
 
MonitorElementNumberOfLostRecHitVsPhiVsEtaPerTrack = 0
 
MonitorElementNumberOfLostRecHitVsPtVsEtaPerTrack = 0
 
MonitorElementNumberOfMIRecHitsPerTrack = 0
 
MonitorElementNumberOfMIRecHitsPerTrackVsEta = 0
 
MonitorElementNumberOfMIRecHitsPerTrackVsPhi = 0
 
MonitorElementNumberOfMIRecHitsPerTrackVsPt = 0
 
MonitorElementNumberOfMIRecHitsPerTrackVsTheta = 0
 
MonitorElementNumberOfMIRecHitVsPhiVsEtaPerTrack = 0
 
MonitorElementNumberOfMIRecHitVsPtVsEtaPerTrack = 0
 
MonitorElementNumberOfMORecHitsPerTrack = 0
 
MonitorElementNumberOfMORecHitsPerTrackVsEta = 0
 
MonitorElementNumberOfMORecHitsPerTrackVsPhi = 0
 
MonitorElementNumberOfMORecHitsPerTrackVsPt = 0
 
MonitorElementNumberOfMORecHitsPerTrackVsTheta = 0
 
MonitorElementNumberOfMORecHitVsPhiVsEtaPerTrack = 0
 
MonitorElementNumberOfMORecHitVsPtVsEtaPerTrack = 0
 
MonitorElementNumberOfRecHitsPerTrack
 
MonitorElementNumberOfRecHitsPerTrack_lumiFlag
 
MonitorElementNumberOfRecHitsPerTrackVsEta = 0
 
MonitorElementNumberOfRecHitsPerTrackVsPhi = 0
 
MonitorElementNumberOfRecHitsPerTrackVsTheta = 0
 
MonitorElementNumberOfRecHitVsPhiVsEtaPerTrack = 0
 
MonitorElementNumberOfValidRecHitsPerTrack
 
MonitorElementNumberOfValidRecHitsPerTrackVsEta = 0
 
MonitorElementNumberOfValidRecHitsPerTrackVsPhi = 0
 
MonitorElementNumberOfValidRecHitsPerTrackVsPt = 0
 
MonitorElementNumberOfValidRecHitsPerTrackVsTheta = 0
 
MonitorElementNumberOfValidRecHitVsPhiVsEtaPerTrack = 0
 
MonitorElementNumberOfValidRecHitVsPtVsEtaPerTrack = 0
 
MonitorElementoriAlgo
 
float pixel_lumi_
 
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClustersToken_
 
MonitorElementPtdist_HighPurity
 
int pvNDOF_
 
edm::EDGetTokenT< reco::VertexCollectionpvToken_
 
std::string qualityString_
 
float scal_lumi_
 
MonitorElementsip2dToPV
 
MonitorElementsip3dToPV
 
MonitorElementsipDxyToBS
 
MonitorElementsipDxyToPV
 
MonitorElementsipDzToBS
 
MonitorElementsipDzToPV
 
MonitorElementstoppingSource
 
MonitorElementstoppingSourceVSeta
 
MonitorElementstoppingSourceVSphi
 
MonitorElementTESTDistanceOfClosestApproachToBS
 
MonitorElementTESTDistanceOfClosestApproachToBSVsPhi
 
std::map< std::string, TkParameterMEsTkParameterMEMap
 
std::map< std::string, TkRecHitsPerSubDetMEsTkRecHitsPerSubDetMEMap
 
std::string TopFolder_
 
MonitorElementTransDCASig
 
bool useBPixLayer1_
 
MonitorElementValidFractionPerTrack = 0
 
MonitorElementValidFractionVsPhiVsEtaPerTrack = 0
 
MonitorElementxPointOfClosestApproach
 
MonitorElementxPointOfClosestApproachToPV
 
MonitorElementxPointOfClosestApproachVsZ0wrt000
 
MonitorElementxPointOfClosestApproachVsZ0wrtBS
 
MonitorElementxPointOfClosestApproachVsZ0wrtPV
 
MonitorElementyPointOfClosestApproach
 
MonitorElementyPointOfClosestApproachToPV
 
MonitorElementyPointOfClosestApproachVsZ0wrt000
 
MonitorElementyPointOfClosestApproachVsZ0wrtBS
 
MonitorElementyPointOfClosestApproachVsZ0wrtPV
 
MonitorElementzPointOfClosestApproach
 
MonitorElementzPointOfClosestApproachToPV
 
MonitorElementzPointOfClosestApproachVsPhi
 

Detailed Description

Definition at line 35 of file TrackAnalyzer.h.

Member Enumeration Documentation

Enumerator
VsPU 
VsBX 
VsPIXELLUMI 
VsSCALLUMI 
END 

Definition at line 453 of file TrackAnalyzer.h.

Constructor & Destructor Documentation

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

Definition at line 24 of file TrackAnalyzer.cc.

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

25  : conf_( iConfig )
26  , doTrackerSpecific_ ( conf_.getParameter<bool>("doTrackerSpecific") )
27  , doAllPlots_ ( conf_.getParameter<bool>("doAllPlots") )
28  , doBSPlots_ ( conf_.getParameter<bool>("doBeamSpotPlots") )
29  , doPVPlots_ ( conf_.getParameter<bool>("doPrimaryVertexPlots") )
30  , doDCAPlots_ ( conf_.getParameter<bool>("doDCAPlots") )
31  , doGeneralPropertiesPlots_ ( conf_.getParameter<bool>("doGeneralPropertiesPlots") )
32  , doMeasurementStatePlots_ ( conf_.getParameter<bool>("doMeasurementStatePlots") )
33  , doHitPropertiesPlots_ ( conf_.getParameter<bool>("doHitPropertiesPlots") )
34  , doRecHitVsPhiVsEtaPerTrack_ ( conf_.getParameter<bool>("doRecHitVsPhiVsEtaPerTrack") )
35  , doRecHitVsPtVsEtaPerTrack_ ( conf_.getParameter<bool>("doRecHitVsPtVsEtaPerTrack") )
36  , doLayersVsPhiVsEtaPerTrack_ ( conf_.getParameter<bool>("doLayersVsPhiVsEtaPerTrack") )
37  , doRecHitsPerTrackProfile_ ( conf_.getParameter<bool>("doRecHitsPerTrackProfile") )
38  , doThetaPlots_ ( conf_.getParameter<bool>("doThetaPlots") )
39  , doTrackPxPyPlots_ ( conf_.getParameter<bool>("doTrackPxPyPlots") )
40  , doDCAwrtPVPlots_ ( conf_.getParameter<bool>("doDCAwrtPVPlots") )
41  , doDCAwrt000Plots_ ( conf_.getParameter<bool>("doDCAwrt000Plots") )
42  , doLumiAnalysis_ ( conf_.getParameter<bool>("doLumiAnalysis") )
43  , doTestPlots_ ( conf_.getParameter<bool>("doTestPlots") )
44  , doHIPlots_ ( conf_.getParameter<bool>("doHIPlots") )
45  , doSIPPlots_ ( conf_.getParameter<bool>("doSIPPlots") )
46  , doEffFromHitPatternVsPU_ ( conf_.getParameter<bool>("doEffFromHitPatternVsPU") )
47  , doEffFromHitPatternVsBX_ ( conf_.getParameter<bool>("doEffFromHitPatternVsBX") )
48  , doEffFromHitPatternVsLUMI_ ( conf_.getParameter<bool>("doEffFromHitPatternVsLUMI") )
49  , pvNDOF_ ( conf_.getParameter<int> ("pvNDOF") )
50  , useBPixLayer1_ ( conf_.getParameter<bool>("useBPixLayer1") )
51  , minNumberOfPixelsPerCluster_ ( conf_.getParameter<int>("minNumberOfPixelsPerCluster") )
52  , minPixelClusterCharge_ ( conf_.getParameter<double>("minPixelClusterCharge") )
53  , qualityString_ ( conf_.getParameter<std::string>("qualityString"))
54  , good_vertices_(0)
55  , bx_(0)
56  , pixel_lumi_(0.)
57  , scal_lumi_(0.)
58 {
59  initHistos();
60  TopFolder_ = conf_.getParameter<std::string>("FolderName");
61 }
T getParameter(std::string const &) const
bool doTrackerSpecific_
Definition: TrackAnalyzer.h:84
edm::ParameterSet conf_
Definition: TrackAnalyzer.h:82
bool doGeneralPropertiesPlots_
Definition: TrackAnalyzer.h:89
bool doEffFromHitPatternVsBX_
bool doHitPropertiesPlots_
Definition: TrackAnalyzer.h:91
bool doRecHitVsPhiVsEtaPerTrack_
Definition: TrackAnalyzer.h:92
bool doRecHitVsPtVsEtaPerTrack_
Definition: TrackAnalyzer.h:93
bool doMeasurementStatePlots_
Definition: TrackAnalyzer.h:90
std::string qualityString_
bool doDCAwrt000Plots_
bool doEffFromHitPatternVsPU_
std::string TopFolder_
Definition: TrackAnalyzer.h:74
bool doEffFromHitPatternVsLUMI_
int minNumberOfPixelsPerCluster_
bool doTrackPxPyPlots_
bool doLayersVsPhiVsEtaPerTrack_
Definition: TrackAnalyzer.h:95
unsigned int bx_
unsigned int good_vertices_
float minPixelClusterCharge_
bool doRecHitsPerTrackProfile_
TrackAnalyzer::TrackAnalyzer ( const edm::ParameterSet iConfig,
edm::ConsumesCollector iC 
)

Definition at line 63 of file TrackAnalyzer.cc.

References beamSpotToken_, conf_, edm::ConsumesCollector::consumes(), GetLumi::FREQ_ORBIT, edm::ParameterSet::getParameter(), lumi_factor_per_bx_, lumiscalersToken_, edm::ConsumesCollector::mayConsume(), pixelClustersToken_, pvToken_, GetLumi::rXSEC_PIXEL_CLUSTER, GetLumi::SECONDS_PER_LS, useBPixLayer1_, and GetLumi::XSEC_PIXEL_CLUSTER.

64  : TrackAnalyzer(iConfig)
65 {
66  edm::InputTag bsSrc = conf_.getParameter<edm::InputTag>("beamSpot");
67  edm::InputTag primaryVertexInputTag = conf_.getParameter<edm::InputTag>("primaryVertex");
68  edm::InputTag pixelClusterInputTag = conf_.getParameter<edm::InputTag>("pixelCluster4lumi");
69  edm::InputTag scalInputTag = conf_.getParameter<edm::InputTag>("scal");
71  pvToken_ = iC.consumes<reco::VertexCollection>(primaryVertexInputTag);
74 
75  if(useBPixLayer1_)
77  else
79 
80 
81 }
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
T getParameter(std::string const &) const
EDGetTokenT< ProductType > mayConsume(edm::InputTag const &tag)
edm::ParameterSet conf_
Definition: TrackAnalyzer.h:82
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
static double XSEC_PIXEL_CLUSTER
Definition: GetLumi.h:41
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
Definition: TrackAnalyzer.h:76
static double rXSEC_PIXEL_CLUSTER
Definition: GetLumi.h:45
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClustersToken_
Definition: TrackAnalyzer.h:78
std::vector< LumiScalers > LumiScalersCollection
Definition: LumiScalers.h:160
edm::EDGetTokenT< LumiScalersCollection > lumiscalersToken_
Definition: TrackAnalyzer.h:79
TrackAnalyzer(const edm::ParameterSet &)
float lumi_factor_per_bx_
Definition: TrackAnalyzer.h:80
static double FREQ_ORBIT
Definition: GetLumi.h:32
static double SECONDS_PER_LS
Definition: GetLumi.h:33
edm::EDGetTokenT< reco::VertexCollection > pvToken_
Definition: TrackAnalyzer.h:77
TrackAnalyzer::~TrackAnalyzer ( )
virtual

Definition at line 159 of file TrackAnalyzer.cc.

160 {
161 }

Member Function Documentation

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

Definition at line 1025 of file TrackAnalyzer.cc.

References funct::abs(), AbsDistanceOfClosestApproachToBS, reco::TrackBase::algo(), algorithm, beamSpotToken_, TransientTrackBuilder::build(), bx_, HiEvtPlane_cfi::chi2, reco::TrackBase::chi2(), Chi2oNDF, Chi2oNDF_lumiFlag, Chi2Prob, conf_, reco::TrackBase::d0(), reco::TrackBase::d0Error(), DeltaZToPV, dir, DistanceOfClosestApproach, DistanceOfClosestApproachToBS, DistanceOfClosestApproachToBSVsPhi, DistanceOfClosestApproachToPV, DistanceOfClosestApproachToPVVsPhi, 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_, reco::TrackBase::dxy(), reco::TrackBase::dxyError(), reco::TrackBase::dz(), reco::TrackBase::dzError(), reco::TrackBase::eta(), MonitorElement::Fill(), HcalObjRepresent::Fill(), fillHistosForEfficiencyFromHitPatter(), fillHistosForState(), fillHistosForTrackerSpecific(), edm::EventSetup::get(), edm::Event::getByToken(), MonitorElement::getNbinsX(), edm::ParameterSet::getParameter(), good_vertices_, reco::TrackBase::hitPattern(), mps_fire::i, reco::Track::innerPosition(), createfilelist::int, edm::HandleBase::isValid(), LongDCASig, hpstanc_transforms::max, reco::HitPattern::MISSING_INNER_HITS, reco::HitPattern::MISSING_OUTER_HITS, reco::TrackBase::ndof(), NhitVsEta_HighPurity, NhitVsPhi_HighPurity, MuonTCMETValueMapProducer_cff::nLayers, reco::TrackBase::normalizedChi2(), reco::HitPattern::numberOfHits(), NumberOfLayersPerTrack, NumberOfLayersVsPhiVsEtaPerTrack, reco::TrackBase::numberOfLostHits(), NumberOfLostRecHitsPerTrack, NumberOfLostRecHitsPerTrackVsPt, NumberOfLostRecHitVsPhiVsEtaPerTrack, NumberOfLostRecHitVsPtVsEtaPerTrack, reco::HitPattern::numberOfLostTrackerHits(), NumberOfMIRecHitsPerTrack, NumberOfMIRecHitsPerTrackVsPt, NumberOfMIRecHitVsPhiVsEtaPerTrack, NumberOfMIRecHitVsPtVsEtaPerTrack, NumberOfMORecHitsPerTrack, NumberOfMORecHitsPerTrackVsPt, NumberOfMORecHitVsPhiVsEtaPerTrack, NumberOfMORecHitVsPtVsEtaPerTrack, NumberOfRecHitsPerTrack, NumberOfRecHitsPerTrack_lumiFlag, reco::TrackBase::numberOfValidHits(), NumberOfValidRecHitsPerTrack, NumberOfValidRecHitsPerTrackVsPt, NumberOfValidRecHitVsPhiVsEtaPerTrack, NumberOfValidRecHitVsPtVsEtaPerTrack, reco::HitPattern::numberOfValidStripLayersWithMonoAndStereo(), oriAlgo, reco::TrackBase::originalAlgo(), reco::Track::outerPosition(), phi, reco::TrackBase::phi(), reco::HitPattern::pixelLayersWithMeasurement(), reco::BeamSpot::position(), reco::Vertex::position(), EnergyCorrector::pt, reco::TrackBase::pt(), Ptdist_HighPurity, reco::TrackBase::ptError(), MetAnalyzer::pv(), pvToken_, reco::TrackBase::px(), reco::TrackBase::py(), reco::TrackBase::pz(), reco::TrackBase::quality(), reco::TrackBase::qualityByName(), qualityString_, reco::TrackBase::referencePoint(), scal_lumi_, IPTools::signedImpactParameter3D(), IPTools::signedTransverseImpactParameter(), sip2dToPV, sip3dToPV, sipDxyToBS, sipDxyToPV, sipDzToBS, sipDzToPV, stoppingSource, stoppingSourceVSeta, stoppingSourceVSphi, reco::TrackBase::stopReason(), AlCaHLTBitMon_QueryRunRegistry::string, TESTDistanceOfClosestApproachToBS, TESTDistanceOfClosestApproachToBSVsPhi, reco::TrackBase::theta(), reco::HitPattern::TRACK_HITS, reco::HitPattern::trackerLayersTotallyOffOrBad(), reco::HitPattern::trackerLayersWithMeasurement(), reco::HitPattern::trackerLayersWithoutMeasurement(), TransDCASig, reco::TrackBase::validFraction(), ValidFractionPerTrack, ValidFractionVsPhiVsEtaPerTrack, reco::TrackBase::vx(), reco::TrackBase::vy(), reco::TrackBase::vz(), x, reco::Vertex::xError(), xPointOfClosestApproach, xPointOfClosestApproachToPV, xPointOfClosestApproachVsZ0wrt000, xPointOfClosestApproachVsZ0wrtBS, xPointOfClosestApproachVsZ0wrtPV, y, reco::Vertex::yError(), yPointOfClosestApproach, yPointOfClosestApproachToPV, yPointOfClosestApproachVsZ0wrt000, yPointOfClosestApproachVsZ0wrtBS, yPointOfClosestApproachVsZ0wrtPV, reco::Vertex::zError(), zPointOfClosestApproach, zPointOfClosestApproachToPV, and zPointOfClosestApproachVsPhi.

Referenced by TrackingMonitor::analyze().

1026 {
1027  auto pt = track.pt();
1028  auto phi = track.phi();
1029  // double eta = track.eta();
1030  auto phiIn = track.innerPosition().phi();
1031  auto etaIn = track.innerPosition().eta();
1032  auto phiOut = track.outerPosition().phi();
1033  auto etaOut = track.outerPosition().eta();
1034 
1035  int nRecHits = track.hitPattern().numberOfHits(reco::HitPattern::TRACK_HITS);
1036  int nValidRecHits = track.numberOfValidHits();
1037  int nLostRecHits = track.numberOfLostHits();
1040 
1041  auto chi2 = track.chi2();
1042  auto chi2prob = TMath::Prob(track.chi2(),(int)track.ndof());
1043  auto chi2oNDF = track.normalizedChi2();
1044 
1046  // rec hits
1047  NumberOfRecHitsPerTrack -> Fill(nRecHits);
1048  NumberOfValidRecHitsPerTrack-> Fill(nValidRecHits);
1049  NumberOfLostRecHitsPerTrack -> Fill(nLostRecHits);
1050  NumberOfMIRecHitsPerTrack -> Fill(nLostIn);
1051  NumberOfMORecHitsPerTrack -> Fill(nLostOut);
1053 
1054 
1055  // 2D plots
1057  NumberOfValidRecHitVsPhiVsEtaPerTrack->Fill(etaIn,phiIn,nValidRecHits);
1058  NumberOfLostRecHitVsPhiVsEtaPerTrack->Fill(etaIn,phiIn,nLostRecHits);
1059  NumberOfMIRecHitVsPhiVsEtaPerTrack->Fill(etaIn,phiIn,nLostIn);
1060  NumberOfMORecHitVsPhiVsEtaPerTrack->Fill(etaOut,phiOut,nLostOut);
1061  ValidFractionVsPhiVsEtaPerTrack -> Fill(etaIn,phiIn,track.validFraction());
1062  }
1064  NumberOfValidRecHitVsPtVsEtaPerTrack->Fill(etaIn,pt,nValidRecHits);
1065  NumberOfLostRecHitVsPtVsEtaPerTrack->Fill(etaIn,pt,nLostRecHits);
1066  NumberOfMIRecHitVsPtVsEtaPerTrack->Fill(etaIn,pt,nLostIn);
1067  NumberOfMORecHitVsPtVsEtaPerTrack->Fill(etaOut,pt,nLostOut);
1068  }
1069  NumberOfValidRecHitsPerTrackVsPt->Fill(pt,nValidRecHits);
1070  NumberOfLostRecHitsPerTrackVsPt->Fill(pt,nLostRecHits);
1073 
1074  int nLayers[4] = { track.hitPattern().trackerLayersWithMeasurement(),
1078  };
1079 
1080  // layers
1081  for (int i=0;i<4;++i) NumberOfLayersPerTrack[i]->Fill(nLayers[i]);
1082 
1083  // 2D plots
1085  for (int i=0;i<4;++i) NumberOfLayersVsPhiVsEtaPerTrack[i]->Fill(etaIn,phiIn,nLayers[i]);
1086 
1087  }
1088 
1092  // if (doEffFromHitPatternVsLUMI_ || doAllPlots_) fillHistosForEfficiencyFromHitPatter(track,"VsPIXELLUMI", pixel_lumi_ );
1093 
1094 
1096  // fitting
1097  Chi2 -> Fill(chi2);
1098  Chi2Prob -> Fill(chi2prob);
1099  Chi2oNDF -> Fill(chi2oNDF);
1100 
1101  // DCA
1102  // temporary patch in order to put back those MEs in Muon Workspace
1103  if (doDCAPlots_) {
1104  if (doDCAwrt000Plots_) {
1107  }
1108 
1109  // PCA
1113  }
1114 
1115  // algorithm
1116  algorithm->Fill(static_cast<double>(track.algo()));
1117  oriAlgo->Fill(static_cast<double>(track.originalAlgo()));
1118 
1119  // stopping source
1120  int max = stoppingSource->getNbinsX();
1121  double stop = track.stopReason() > max ? double(max-1) : static_cast<double>(track.stopReason());
1122  stoppingSource->Fill(stop);
1123  stoppingSourceVSeta->Fill(track.eta(),stop);
1124  stoppingSourceVSphi->Fill(track.phi(),stop);
1125  }
1126 
1127  if ( doLumiAnalysis_ ) {
1129  Chi2oNDF_lumiFlag -> Fill(chi2oNDF);
1130  }
1131 
1133 
1134  edm::Handle<reco::BeamSpot> recoBeamSpotHandle;
1135  iEvent.getByToken(beamSpotToken_,recoBeamSpotHandle);
1136  const reco::BeamSpot& bs = *recoBeamSpotHandle;
1137 
1140  DistanceOfClosestApproachToBSVsPhi -> Fill(track.phi(), track.dxy(bs.position()));
1141  zPointOfClosestApproachVsPhi -> Fill(track.phi(), track.vz());
1142  xPointOfClosestApproachVsZ0wrt000 -> Fill(track.dz(), track.vx());
1143  yPointOfClosestApproachVsZ0wrt000 -> Fill(track.dz(), track.vy());
1144  xPointOfClosestApproachVsZ0wrtBS -> Fill(track.dz(bs.position()),(track.vx()-bs.position(track.vz()).x()));
1145  yPointOfClosestApproachVsZ0wrtBS -> Fill(track.dz(bs.position()),(track.vy()-bs.position(track.vz()).y()));
1146  if (doTestPlots_) {
1147  TESTDistanceOfClosestApproachToBS -> Fill(track.dxy(bs.position(track.vz())));
1148  TESTDistanceOfClosestApproachToBSVsPhi -> Fill(track.phi(), track.dxy(bs.position(track.vz())));
1149  }
1150 
1151  if(doSIPPlots_) {
1152  sipDxyToBS->Fill(track.dxy(bs.position())/track.dxyError());
1153  sipDzToBS->Fill(track.dz(bs.position())/track.dzError());
1154  }
1155  }
1156 
1158  edm::Handle<reco::VertexCollection> recoPrimaryVerticesHandle;
1159  iEvent.getByToken(pvToken_,recoPrimaryVerticesHandle);
1160  if (recoPrimaryVerticesHandle.isValid() && recoPrimaryVerticesHandle->size() > 0) {
1161  const reco::Vertex& pv = (*recoPrimaryVerticesHandle)[0];
1162 
1163 
1165  //HI PLOTS///////
1167 
1168  if(doHIPlots_)
1169  {
1170  double longDCAsig = 0, transDCAsig = 0;
1171  double zerr2 = track.dzError()*track.dzError()+pv.zError()*pv.zError();
1172  double xyerr2 = track.d0Error()*track.d0Error()+pv.xError()*pv.yError();
1173  if(zerr2 > 0) longDCAsig = track.dz(pv.position())/zerr2;
1174  if(xyerr2 > 0) transDCAsig = track.dxy(pv.position())/xyerr2;
1175  LongDCASig->Fill(longDCAsig);
1176  TransDCASig->Fill(transDCAsig);
1177 
1178 
1179 
1180 
1182  {
1183  dNdEta_HighPurity->Fill(track.eta());
1184  dNdPhi_HighPurity->Fill(track.phi());
1185  dNdPt_HighPurity->Fill(track.ptError()/track.pt());
1186  NhitVsEta_HighPurity->Fill(track.eta(),track.numberOfValidHits());
1187  NhitVsPhi_HighPurity->Fill(track.phi(),track.numberOfValidHits());
1188  dNhitdPt_HighPurity->Fill(track.pt(),track.numberOfValidHits());
1189  Ptdist_HighPurity->Fill(track.pt());
1190  }//end of high quality tracks requirement
1191  }
1192 
1193 
1194  xPointOfClosestApproachToPV->Fill(track.vx()-pv.position().x());
1195  yPointOfClosestApproachToPV->Fill(track.vy()-pv.position().y());
1198  DeltaZToPV -> Fill(track.dz (pv.position()));
1199  DistanceOfClosestApproachToPVVsPhi -> Fill(track.phi(), track.dxy(pv.position()));
1200  xPointOfClosestApproachVsZ0wrtPV -> Fill(track.dz(pv.position()),(track.vx()-pv.position().x()));
1201  yPointOfClosestApproachVsZ0wrtPV -> Fill(track.dz(pv.position()),(track.vy()-pv.position().y()));
1202 
1203 
1204  if(doSIPPlots_) {
1206  iSetup.get<TransientTrackRecord>().get("TransientTrackBuilder",theB);
1207  reco::TransientTrack transTrack = theB->build(track);
1208 
1209  GlobalVector dir(track.px(), track.py(), track.pz());
1210  std::pair<bool, Measurement1D> ip3d = IPTools::signedImpactParameter3D(transTrack, dir, pv);
1211  std::pair<bool, Measurement1D> ip2d = IPTools::signedTransverseImpactParameter(transTrack, dir, pv);
1212  if(ip3d.first) sip3dToPV->Fill(ip3d.second.value() / ip3d.second.error());
1213  if(ip2d.first) sip2dToPV->Fill(ip2d.second.value() / ip2d.second.error());
1214  sipDxyToPV->Fill(track.dxy(pv.position())/track.dxyError());
1215  sipDzToPV->Fill(track.dz(pv.position())/track.dzError());
1216  }
1217  }
1218  }
1219 
1220  if(doDCAPlots_ || doAllPlots_) {
1221  if (doDCAwrt000Plots_) {
1222  if (doThetaPlots_) {
1223  DistanceOfClosestApproachVsTheta->Fill(track.theta(), track.d0());
1224  }
1225  DistanceOfClosestApproachVsEta->Fill(track.eta(), track.d0());
1226  }
1227 
1228  }
1229 
1230  //Tracker Specific Histograms
1233  }
1234 
1236  std::string StateName = conf_.getParameter<std::string>("MeasurementState");
1237 
1238  if (StateName == "All") {
1239  fillHistosForState(iSetup, track, std::string("OuterSurface"));
1240  fillHistosForState(iSetup, track, std::string("InnerSurface"));
1241  fillHistosForState(iSetup, track, std::string("ImpactPoint"));
1242  } else if (
1243  StateName != "OuterSurface" &&
1244  StateName != "InnerSurface" &&
1245  StateName != "ImpactPoint" &&
1246  StateName != "default"
1247  ) {
1248  fillHistosForState(iSetup, track, std::string("default"));
1249  } else {
1250  fillHistosForState(iSetup, track, StateName);
1251  }
1252  }
1253 
1254  if ( doAllPlots_ ) {
1255  }
1256 
1257 }
MonitorElement * stoppingSourceVSphi
T getParameter(std::string const &) const
MonitorElement * DistanceOfClosestApproachToPVVsPhi
const Point & referencePoint() const
Reference point on the track.
Definition: TrackBase.h:676
bool doTrackerSpecific_
Definition: TrackAnalyzer.h:84
MonitorElement * ValidFractionVsPhiVsEtaPerTrack
double d0Error() const
error on d0
Definition: TrackBase.h:797
MonitorElement * dNhitdPt_HighPurity
void fillHistosForTrackerSpecific(const reco::Track &track)
MonitorElement * stoppingSourceVSeta
double validFraction() const
fraction of valid hits on the track
Definition: TrackBase.h:827
double d0() const
dxy parameter in perigee convention (d0 = -dxy)
Definition: TrackBase.h:592
MonitorElement * NumberOfValidRecHitsPerTrack
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
Definition: TrackBase.h:556
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:457
double zError() const
error on z
Definition: Vertex.h:123
MonitorElement * Chi2oNDF_lumiFlag
double theta() const
polar angle
Definition: TrackBase.h:574
double dxyError() const
error on dxy
Definition: TrackBase.h:791
MonitorElement * xPointOfClosestApproachToPV
MonitorElement * sip3dToPV
std::pair< bool, Measurement1D > signedTransverseImpactParameter(const reco::TransientTrack &track, const GlobalVector &direction, const reco::Vertex &vertex)
Definition: IPTools.cc:50
MonitorElement * NumberOfLostRecHitsPerTrack
uint8_t stopReason() const
Definition: TrackBase.h:399
edm::ParameterSet conf_
Definition: TrackAnalyzer.h:82
reco::TransientTrack build(const reco::Track *p) const
bool doGeneralPropertiesPlots_
Definition: TrackAnalyzer.h:89
MonitorElement * NumberOfMORecHitsPerTrackVsPt
std::pair< bool, Measurement1D > signedImpactParameter3D(const reco::TransientTrack &track, const GlobalVector &direction, const reco::Vertex &vertex)
Definition: IPTools.cc:71
MonitorElement * DistanceOfClosestApproachVsPhi
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:640
unsigned short numberOfLostHits() const
number of cases where track crossed a layer without getting a hit.
Definition: TrackBase.h:821
bool doEffFromHitPatternVsBX_
MonitorElement * sipDzToBS
MonitorElement * NumberOfLayersPerTrack[4]
MonitorElement * NhitVsPhi_HighPurity
MonitorElement * algorithm
double px() const
x coordinate of momentum vector
Definition: TrackBase.h:622
int pixelLayersWithMeasurement() const
Definition: HitPattern.cc:499
bool doHitPropertiesPlots_
Definition: TrackAnalyzer.h:91
MonitorElement * DistanceOfClosestApproach
const math::XYZPoint & outerPosition() const
position of the outermost hit
Definition: Track.h:65
bool doRecHitVsPhiVsEtaPerTrack_
Definition: TrackAnalyzer.h:92
bool doRecHitVsPtVsEtaPerTrack_
Definition: TrackAnalyzer.h:93
MonitorElement * NumberOfRecHitsPerTrack_lumiFlag
int trackerLayersWithMeasurement() const
Definition: HitPattern.cc:518
const Point & position() const
position
Definition: Vertex.h:109
MonitorElement * NumberOfValidRecHitVsPhiVsEtaPerTrack
bool doMeasurementStatePlots_
Definition: TrackAnalyzer.h:90
MonitorElement * DeltaZToPV
MonitorElement * NumberOfRecHitsPerTrack
MonitorElement * Ptdist_HighPurity
void Fill(long long x)
int numberOfLostTrackerHits(HitCategory category) const
Definition: HitPattern.h:907
MonitorElement * NumberOfLayersVsPhiVsEtaPerTrack[4]
const math::XYZPoint & innerPosition() const
position of the innermost hit
Definition: Track.h:55
TrackAlgorithm algo() const
Definition: TrackBase.h:492
MonitorElement * TESTDistanceOfClosestApproachToBSVsPhi
void fillHistosForEfficiencyFromHitPatter(const reco::Track &track, const std::string suffix, const float monitoring)
MonitorElement * TransDCASig
MonitorElement * NumberOfMIRecHitVsPhiVsEtaPerTrack
MonitorElement * xPointOfClosestApproachVsZ0wrt000
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:646
int numberOfValidStripLayersWithMonoAndStereo(uint16_t stripdet, uint16_t layer) const
Definition: HitPattern.cc:341
std::string qualityString_
int trackerLayersTotallyOffOrBad() const
Definition: HitPattern.h:1061
MonitorElement * oriAlgo
bool doDCAwrt000Plots_
bool doEffFromHitPatternVsPU_
MonitorElement * NumberOfLostRecHitVsPhiVsEtaPerTrack
MonitorElement * NumberOfMIRecHitsPerTrackVsPt
MonitorElement * xPointOfClosestApproach
double chi2() const
chi-squared of the fit
Definition: TrackBase.h:544
MonitorElement * NumberOfMIRecHitsPerTrack
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
double ndof() const
number of degrees of freedom of the fit
Definition: TrackBase.h:550
double pt() const
track transverse momentum
Definition: TrackBase.h:616
MonitorElement * dNdPt_HighPurity
double ptError() const
error on Pt (set to 1000 TeV if charge==0 for safety)
Definition: TrackBase.h:758
MonitorElement * xPointOfClosestApproachVsZ0wrtBS
MonitorElement * dNdPhi_HighPurity
def pv(vc)
Definition: MetAnalyzer.py:6
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
MonitorElement * yPointOfClosestApproachToPV
unsigned short numberOfValidHits() const
number of valid hits found
Definition: TrackBase.h:815
MonitorElement * NumberOfLostRecHitsPerTrackVsPt
MonitorElement * sip2dToPV
MonitorElement * sipDzToPV
MonitorElement * sipDxyToBS
bool isValid() const
Definition: HandleBase.h:74
MonitorElement * DistanceOfClosestApproachVsEta
MonitorElement * zPointOfClosestApproachVsPhi
double pz() const
z coordinate of momentum vector
Definition: TrackBase.h:634
double dz() const
dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to...
Definition: TrackBase.h:604
double dzError() const
error on dz
Definition: TrackBase.h:809
MonitorElement * dNdEta_HighPurity
double vz() const
z coordinate of the reference point on track
Definition: TrackBase.h:664
MonitorElement * stoppingSource
void fillHistosForState(const edm::EventSetup &iSetup, const reco::Track &track, std::string sname)
TrackAlgorithm originalAlgo() const
Definition: TrackBase.h:496
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:125
double xError() const
error on x
Definition: Vertex.h:119
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
Definition: TrackAnalyzer.h:76
MonitorElement * sipDxyToPV
bool doEffFromHitPatternVsLUMI_
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:445
MonitorElement * xPointOfClosestApproachVsZ0wrtPV
MonitorElement * yPointOfClosestApproachVsZ0wrtBS
MonitorElement * NumberOfMIRecHitVsPtVsEtaPerTrack
const T & get() const
Definition: EventSetup.h:56
MonitorElement * DistanceOfClosestApproachVsTheta
MonitorElement * NumberOfMORecHitVsPtVsEtaPerTrack
bool quality(const TrackQuality) const
Track quality.
Definition: TrackBase.h:505
MonitorElement * zPointOfClosestApproachToPV
int trackerLayersWithoutMeasurement(HitCategory category) const
Definition: HitPattern.cc:535
MonitorElement * DistanceOfClosestApproachToPV
double vy() const
y coordinate of the reference point on track
Definition: TrackBase.h:658
MonitorElement * NumberOfValidRecHitsPerTrackVsPt
MonitorElement * DistanceOfClosestApproachToBSVsPhi
bool doLayersVsPhiVsEtaPerTrack_
Definition: TrackAnalyzer.h:95
unsigned int bx_
MonitorElement * ValidFractionPerTrack
MonitorElement * NhitVsEta_HighPurity
int getNbinsX(void) const
get # of bins in X-axis
MonitorElement * yPointOfClosestApproachVsZ0wrt000
unsigned int good_vertices_
MonitorElement * TESTDistanceOfClosestApproachToBS
const Point & position() const
position
Definition: BeamSpot.h:62
MonitorElement * yPointOfClosestApproach
dbl *** dir
Definition: mlp_gen.cc:35
MonitorElement * Chi2Prob
Definition: Chi2.h:17
MonitorElement * yPointOfClosestApproachVsZ0wrtPV
MonitorElement * AbsDistanceOfClosestApproachToBS
double dxy() const
dxy parameter. (This is the transverse impact parameter w.r.t. to (0,0,0) ONLY if refPoint is close t...
Definition: TrackBase.h:586
MonitorElement * zPointOfClosestApproach
MonitorElement * NumberOfLostRecHitVsPtVsEtaPerTrack
MonitorElement * DistanceOfClosestApproachToBS
MonitorElement * Chi2oNDF
double yError() const
error on y
Definition: Vertex.h:121
double py() const
y coordinate of momentum vector
Definition: TrackBase.h:628
MonitorElement * NumberOfValidRecHitVsPtVsEtaPerTrack
double vx() const
x coordinate of the reference point on track
Definition: TrackBase.h:652
int numberOfHits(HitCategory category) const
Definition: HitPattern.h:807
MonitorElement * NumberOfMORecHitVsPhiVsEtaPerTrack
MonitorElement * NumberOfMORecHitsPerTrack
MonitorElement * LongDCASig
edm::EDGetTokenT< reco::VertexCollection > pvToken_
Definition: TrackAnalyzer.h:77
void TrackAnalyzer::bookHistosForBeamSpot ( DQMStore::IBooker ibooker)
private

Definition at line 700 of file TrackAnalyzer.cc.

References AbsDistanceOfClosestApproachToBS, DQMStore::IBooker::book1D(), DQMStore::IBooker::bookProfile(), conf_, DeltaZToPV, DistanceOfClosestApproach, DistanceOfClosestApproachToBS, DistanceOfClosestApproachToBSVsPhi, DistanceOfClosestApproachToPV, DistanceOfClosestApproachToPVVsPhi, DistanceOfClosestApproachVsEta, DistanceOfClosestApproachVsPhi, DistanceOfClosestApproachVsTheta, doAllPlots_, doBSPlots_, doDCAPlots_, doDCAwrt000Plots_, doPVPlots_, doSIPPlots_, doTestPlots_, doThetaPlots_, Gflash::EtaMax, Gflash::EtaMin, edm::ParameterSet::getParameter(), MonitorElement::getTH1(), histname, TBeamTest_cfi::PhiMax, TBeamTest_cfi::PhiMin, MonitorElement::setAxisTitle(), DQMStore::IBooker::setCurrentFolder(), sip2dToPV, sip3dToPV, sipDxyToBS, sipDxyToPV, sipDzToBS, sipDzToPV, AlCaHLTBitMon_QueryRunRegistry::string, TESTDistanceOfClosestApproachToBS, TESTDistanceOfClosestApproachToBSVsPhi, TopFolder_, xPointOfClosestApproachVsZ0wrt000, xPointOfClosestApproachVsZ0wrtBS, xPointOfClosestApproachVsZ0wrtPV, yPointOfClosestApproachVsZ0wrt000, yPointOfClosestApproachVsZ0wrtBS, yPointOfClosestApproachVsZ0wrtPV, and zPointOfClosestApproachVsPhi.

Referenced by initHisto().

700  {
701 
702  // parameters from the configuration
703  std::string QualName = conf_.getParameter<std::string>("Quality");
704  std::string AlgoName = conf_.getParameter<std::string>("AlgoName");
705 
706  // use the AlgoName and Quality Name
707  std::string CategoryName = QualName != "" ? AlgoName + "_" + QualName : AlgoName;
708 
709  // book the Beam Spot related histograms
710  // ---------------------------------------------------------------------------------//
711 
713 
714  int DxyBin = conf_.getParameter<int>( "DxyBin");
715  double DxyMin = conf_.getParameter<double>("DxyMin");
716  double DxyMax = conf_.getParameter<double>("DxyMax");
717 
718  int AbsDxyBin = conf_.getParameter<int>( "AbsDxyBin");
719  double AbsDxyMin = conf_.getParameter<double>("AbsDxyMin");
720  double AbsDxyMax = conf_.getParameter<double>("AbsDxyMax");
721 
722  int PhiBin = conf_.getParameter<int>( "PhiBin");
723  double PhiMin = conf_.getParameter<double>("PhiMin");
724  double PhiMax = conf_.getParameter<double>("PhiMax");
725 
726  int X0Bin = conf_.getParameter<int>( "X0Bin");
727  double X0Min = conf_.getParameter<double>("X0Min");
728  double X0Max = conf_.getParameter<double>("X0Max");
729 
730  int Y0Bin = conf_.getParameter<int>( "Y0Bin");
731  double Y0Min = conf_.getParameter<double>("Y0Min");
732  double Y0Max = conf_.getParameter<double>("Y0Max");
733 
734  int Z0Bin = conf_.getParameter<int>( "Z0Bin");
735  double Z0Min = conf_.getParameter<double>("Z0Min");
736  double Z0Max = conf_.getParameter<double>("Z0Max");
737 
738  int VZBinProf = conf_.getParameter<int>( "VZBinProf");
739  double VZMinProf = conf_.getParameter<double>("VZMinProf");
740  double VZMaxProf = conf_.getParameter<double>("VZMaxProf");
741 
742 
743  ibooker.setCurrentFolder(TopFolder_+"/GeneralProperties");
744 
745  histname = "DistanceOfClosestApproachToBS_";
746  DistanceOfClosestApproachToBS = ibooker.book1D(histname+CategoryName,histname+CategoryName,DxyBin,DxyMin,DxyMax);
747  DistanceOfClosestApproachToBS->setAxisTitle("Track d_{xy} wrt beam spot (cm)",1);
748  DistanceOfClosestApproachToBS->setAxisTitle("Number of Tracks",2);
749 
750  histname = "AbsDistanceOfClosestApproachToBS_";
751  AbsDistanceOfClosestApproachToBS = ibooker.book1D(histname+CategoryName,histname+CategoryName,AbsDxyBin,AbsDxyMin,AbsDxyMax);
752  AbsDistanceOfClosestApproachToBS->setAxisTitle("Track |d_{xy}| wrt beam spot (cm)",1);
753  AbsDistanceOfClosestApproachToBS->setAxisTitle("Number of Tracks",2);
754 
755  histname = "DistanceOfClosestApproachToBSVsPhi_";
756  DistanceOfClosestApproachToBSVsPhi = ibooker.bookProfile(histname+CategoryName,histname+CategoryName, PhiBin, PhiMin, PhiMax, DxyBin, DxyMin, DxyMax,"");
757  DistanceOfClosestApproachToBSVsPhi->getTH1()->SetCanExtend(TH1::kAllAxes);
759  DistanceOfClosestApproachToBSVsPhi->setAxisTitle("Track d_{xy} wrt beam spot (cm)",2);
760 
761  histname = "xPointOfClosestApproachVsZ0wrt000_";
762  xPointOfClosestApproachVsZ0wrt000 = ibooker.bookProfile(histname+CategoryName, histname+CategoryName, Z0Bin, Z0Min, Z0Max, X0Bin, X0Min, X0Max,"");
764  xPointOfClosestApproachVsZ0wrt000->setAxisTitle("x component of Track PCA to beam line (cm)",2);
765 
766  histname = "yPointOfClosestApproachVsZ0wrt000_";
767  yPointOfClosestApproachVsZ0wrt000 = ibooker.bookProfile(histname+CategoryName, histname+CategoryName, Z0Bin, Z0Min, Z0Max, Y0Bin, Y0Min, Y0Max,"");
769  yPointOfClosestApproachVsZ0wrt000->setAxisTitle("y component of Track PCA to beam line (cm)",2);
770 
771  histname = "xPointOfClosestApproachVsZ0wrtBS_";
772  xPointOfClosestApproachVsZ0wrtBS = ibooker.bookProfile(histname+CategoryName, histname+CategoryName, Z0Bin, Z0Min, Z0Max, X0Bin, X0Min, X0Max,"");
773  xPointOfClosestApproachVsZ0wrtBS->setAxisTitle("d_{z} w.r.t. Beam Spot (cm)",1);
774  xPointOfClosestApproachVsZ0wrtBS->setAxisTitle("x component of Track PCA to BS (cm)",2);
775 
776  histname = "yPointOfClosestApproachVsZ0wrtBS_";
777  yPointOfClosestApproachVsZ0wrtBS = ibooker.bookProfile(histname+CategoryName, histname+CategoryName, Z0Bin, Z0Min, Z0Max, Y0Bin, Y0Min, Y0Max,"");
778  yPointOfClosestApproachVsZ0wrtBS->setAxisTitle("d_{z} w.r.t. Beam Spot (cm)",1);
779  yPointOfClosestApproachVsZ0wrtBS->setAxisTitle("y component of Track PCA to BS (cm)",2);
780 
781  histname = "zPointOfClosestApproachVsPhi_";
782  zPointOfClosestApproachVsPhi = ibooker.bookProfile(histname+CategoryName, histname+CategoryName, PhiBin, PhiMin, PhiMax, VZBinProf, VZMinProf, VZMaxProf, "");
784  zPointOfClosestApproachVsPhi->setAxisTitle("z component of Track PCA to beam line (cm)",2);
785  }
786 
788 
789  int DxyBin = conf_.getParameter<int>( "DxyBin");
790  double DxyMin = conf_.getParameter<double>("DxyMin");
791  double DxyMax = conf_.getParameter<double>("DxyMax");
792 
793  int PhiBin = conf_.getParameter<int>( "PhiBin");
794  double PhiMin = conf_.getParameter<double>("PhiMin");
795  double PhiMax = conf_.getParameter<double>("PhiMax");
796 
797  int X0Bin = conf_.getParameter<int>( "X0Bin");
798  double X0Min = conf_.getParameter<double>("X0Min");
799  double X0Max = conf_.getParameter<double>("X0Max");
800 
801  int Y0Bin = conf_.getParameter<int>( "Y0Bin");
802  double Y0Min = conf_.getParameter<double>("Y0Min");
803  double Y0Max = conf_.getParameter<double>("Y0Max");
804 
805  int Z0Bin = conf_.getParameter<int>( "Z0Bin");
806  double Z0Min = conf_.getParameter<double>("Z0Min");
807  double Z0Max = conf_.getParameter<double>("Z0Max");
808 
809  ibooker.setCurrentFolder(TopFolder_+"/GeneralProperties");
810 
811  histname = "DistanceOfClosestApproachToPV_";
812  DistanceOfClosestApproachToPV = ibooker.book1D(histname+CategoryName,histname+CategoryName,DxyBin,DxyMin,DxyMax);
813  DistanceOfClosestApproachToPV->setAxisTitle("Track d_{xy} w.r.t. PV (cm)",1);
814  DistanceOfClosestApproachToPV->setAxisTitle("Number of Tracks",2);
815 
816  histname = "DeltaZToPV_";
817  DeltaZToPV = ibooker.book1D(histname+CategoryName,histname+CategoryName,Z0Bin,Z0Min,Z0Max);
818  DeltaZToPV->setAxisTitle("Track d_{z} w.r.t. PV (cm)",1);
819  DeltaZToPV->setAxisTitle("Number of Tracks",2);
820 
821  histname = "DistanceOfClosestApproachToPVVsPhi_";
822  DistanceOfClosestApproachToPVVsPhi = ibooker.bookProfile(histname+CategoryName,histname+CategoryName, PhiBin, PhiMin, PhiMax, DxyBin, DxyMin, DxyMax,"");
823  DistanceOfClosestApproachToPVVsPhi->getTH1()->SetCanExtend(TH1::kAllAxes);
825  DistanceOfClosestApproachToPVVsPhi->setAxisTitle("Track d_{xy} w.r.t. PV (cm)",2);
826 
827  histname = "xPointOfClosestApproachVsZ0wrtPV_";
828  xPointOfClosestApproachVsZ0wrtPV = ibooker.bookProfile(histname+CategoryName, histname+CategoryName, Z0Bin, Z0Min, Z0Max, X0Bin, X0Min, X0Max,"");
829  xPointOfClosestApproachVsZ0wrtPV->setAxisTitle("d_{z} w.r.t. PV (cm)",1);
830  xPointOfClosestApproachVsZ0wrtPV->setAxisTitle("x component of Track PCA to PV (cm)",2);
831 
832  histname = "yPointOfClosestApproachVsZ0wrtPV_";
833  yPointOfClosestApproachVsZ0wrtPV = ibooker.bookProfile(histname+CategoryName, histname+CategoryName, Z0Bin, Z0Min, Z0Max, Y0Bin, Y0Min, Y0Max,"");
834  yPointOfClosestApproachVsZ0wrtPV->setAxisTitle("d_{z} w.r.t. PV (cm)",1);
835  yPointOfClosestApproachVsZ0wrtPV->setAxisTitle("y component of Track PCA to PV (cm)",2);
836 
837  }
838 
839  if (doBSPlots_ || doAllPlots_) {
840  if (doTestPlots_) {
841 
842  int DxyBin = conf_.getParameter<int>( "DxyBin");
843  double DxyMin = conf_.getParameter<double>("DxyMin");
844  double DxyMax = conf_.getParameter<double>("DxyMax");
845 
846  int PhiBin = conf_.getParameter<int>( "PhiBin");
847  double PhiMin = conf_.getParameter<double>("PhiMin");
848  double PhiMax = conf_.getParameter<double>("PhiMax");
849 
850  histname = "TESTDistanceOfClosestApproachToBS_";
851  TESTDistanceOfClosestApproachToBS = ibooker.book1D(histname+CategoryName,histname+CategoryName,DxyBin,DxyMin,DxyMax);
852  TESTDistanceOfClosestApproachToBS->setAxisTitle("Track d_{xy} wrt beam spot (cm)",1);
853  TESTDistanceOfClosestApproachToBS->setAxisTitle("Number of Tracks",2);
854 
855  histname = "TESTDistanceOfClosestApproachToBSVsPhi_";
856  TESTDistanceOfClosestApproachToBSVsPhi = ibooker.bookProfile(histname+CategoryName,histname+CategoryName, PhiBin, PhiMin, PhiMax, DxyBin, DxyMin, DxyMax,"");
857  TESTDistanceOfClosestApproachToBSVsPhi->getTH1()->SetCanExtend(TH1::kAllAxes);
859  TESTDistanceOfClosestApproachToBSVsPhi->setAxisTitle("Track d_{xy} wrt beam spot (cm)",2);
860 
861  }
862 
863  }
864 
865  // book the Profile plots for DCA related histograms
866  // ---------------------------------------------------------------------------------//
867  if(doDCAPlots_ || doAllPlots_) {
868 
869  if (doDCAwrt000Plots_) {
870 
871  int EtaBin = conf_.getParameter<int>( "EtaBin");
872  double EtaMin = conf_.getParameter<double>("EtaMin");
873  double EtaMax = conf_.getParameter<double>("EtaMax");
874 
875  int PhiBin = conf_.getParameter<int>( "PhiBin");
876  double PhiMin = conf_.getParameter<double>("PhiMin");
877  double PhiMax = conf_.getParameter<double>("PhiMax");
878 
879  int DxyBin = conf_.getParameter<int>( "DxyBin");
880  double DxyMin = conf_.getParameter<double>("DxyMin");
881  double DxyMax = conf_.getParameter<double>("DxyMax");
882 
883  if (doThetaPlots_) {
884  int ThetaBin = conf_.getParameter<int>( "ThetaBin");
885  double ThetaMin = conf_.getParameter<double>("ThetaMin");
886  double ThetaMax = conf_.getParameter<double>("ThetaMax");
887 
888  ibooker.setCurrentFolder(TopFolder_+"/GeneralProperties");
889  histname = "DistanceOfClosestApproachVsTheta_";
890  DistanceOfClosestApproachVsTheta = ibooker.bookProfile(histname+CategoryName,histname+CategoryName, ThetaBin, ThetaMin, ThetaMax, DxyMin,DxyMax,"");
892  DistanceOfClosestApproachVsTheta->setAxisTitle("Track d_{xy} wrt (0,0,0) (cm)",2);
893  }
894 
895  histname = "DistanceOfClosestApproachVsEta_";
896  DistanceOfClosestApproachVsEta = ibooker.bookProfile(histname+CategoryName,histname+CategoryName, EtaBin, EtaMin, EtaMax, DxyMin, DxyMax,"");
898  DistanceOfClosestApproachVsEta->setAxisTitle("Track d_{xy} wrt (0,0,0) (cm)",2);
899  // temporary patch in order to put back those MEs in Muon Workspace
900 
901  histname = "DistanceOfClosestApproach_";
902  DistanceOfClosestApproach = ibooker.book1D(histname+CategoryName,histname+CategoryName,DxyBin,DxyMin,DxyMax);
903  DistanceOfClosestApproach->setAxisTitle("Track d_{xy} wrt (0,0,0) (cm)",1);
904  DistanceOfClosestApproach->setAxisTitle("Number of Tracks",2);
905 
906  histname = "DistanceOfClosestApproachVsPhi_";
907  DistanceOfClosestApproachVsPhi = ibooker.bookProfile(histname+CategoryName,histname+CategoryName, PhiBin, PhiMin, PhiMax, DxyMin,DxyMax,"");
908  DistanceOfClosestApproachVsPhi->getTH1()->SetCanExtend(TH1::kAllAxes);
910  DistanceOfClosestApproachVsPhi->setAxisTitle("Track d_{xy} wrt (0,0,0) (cm)",2);
911  }
912  }
913 
914 
915  if (doSIPPlots_ || doAllPlots_) {
916  const double sipBins = 200;
917  const double sipMin = -20;
918  const double sipMax = 20;
919 
920  ibooker.setCurrentFolder(TopFolder_+"/GeneralProperties");
921 
922  // SIP wrt. beamspot
923  histname = "SIPDxyToBS_";
924  sipDxyToBS = ibooker.book1D(histname+CategoryName, histname+CategoryName, sipBins, sipMin, sipMax);
925  sipDxyToBS->setAxisTitle("Track dxy significance wrt beam spot",1);
926  sipDxyToBS->setAxisTitle("Number of Tracks",2);
927 
928  histname = "SIPDzToBS_";
929  sipDzToBS = ibooker.book1D(histname+CategoryName, histname+CategoryName, sipBins, sipMin, sipMax);
930  sipDzToBS->setAxisTitle("Track dz significance wrt beam spot",1);
931  sipDzToBS->setAxisTitle("Number of Tracks",2);
932 
933  // SIP wrt. vertex
934  histname = "SIP3DToPV_";
935  sip3dToPV = ibooker.book1D(histname+CategoryName, histname+CategoryName, sipBins, sipMin, sipMax);
936  sip3dToPV->setAxisTitle("3D IP significance wrt primary vertex",1);
937  sip3dToPV->setAxisTitle("Number of Tracks",2);
938 
939  histname = "SIP2DToPV_";
940  sip2dToPV = ibooker.book1D(histname+CategoryName, histname+CategoryName, sipBins, sipMin, sipMax);
941  sip2dToPV->setAxisTitle("2D IP significance wrt primary vertex",1);
942  sip2dToPV->setAxisTitle("Number of Tracks",2);
943 
944  histname = "SIPDxyToPV_";
945  sipDxyToPV = ibooker.book1D(histname+CategoryName, histname+CategoryName, sipBins, sipMin, sipMax);
946  sipDxyToPV->setAxisTitle("Track dxy significance wrt primary vertex",1);
947  sipDxyToPV->setAxisTitle("Number of Tracks",2);
948 
949  histname = "SIPDzToPV_";
950  sipDzToPV = ibooker.book1D(histname+CategoryName, histname+CategoryName, sipBins, sipMin, sipMax);
951  sipDzToPV->setAxisTitle("Track dz significance wrt primary vertex",1);
952  sipDzToPV->setAxisTitle("Number of Tracks",2);
953  }
954 }
T getParameter(std::string const &) const
MonitorElement * DistanceOfClosestApproachToPVVsPhi
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:157
MonitorElement * sip3dToPV
edm::ParameterSet conf_
Definition: TrackAnalyzer.h:82
MonitorElement * DistanceOfClosestApproachVsPhi
MonitorElement * sipDzToBS
const double EtaMax[kNumberCalorimeter]
MonitorElement * DistanceOfClosestApproach
MonitorElement * DeltaZToPV
MonitorElement * TESTDistanceOfClosestApproachToBSVsPhi
MonitorElement * xPointOfClosestApproachVsZ0wrt000
bool doDCAwrt000Plots_
std::string TopFolder_
Definition: TrackAnalyzer.h:74
MonitorElement * xPointOfClosestApproachVsZ0wrtBS
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
TH1 * getTH1(void) const
const double EtaMin[kNumberCalorimeter]
MonitorElement * sip2dToPV
MonitorElement * sipDzToPV
MonitorElement * sipDxyToBS
MonitorElement * DistanceOfClosestApproachVsEta
MonitorElement * zPointOfClosestApproachVsPhi
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:277
MonitorElement * sipDxyToPV
MonitorElement * xPointOfClosestApproachVsZ0wrtPV
MonitorElement * yPointOfClosestApproachVsZ0wrtBS
MonitorElement * DistanceOfClosestApproachVsTheta
MonitorElement * DistanceOfClosestApproachToPV
MonitorElement * DistanceOfClosestApproachToBSVsPhi
MonitorElement * yPointOfClosestApproachVsZ0wrt000
MonitorElement * TESTDistanceOfClosestApproachToBS
MonitorElement * yPointOfClosestApproachVsZ0wrtPV
MonitorElement * AbsDistanceOfClosestApproachToBS
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * DistanceOfClosestApproachToBS
std::string histname
void TrackAnalyzer::bookHistosForEfficiencyFromHitPatter ( DQMStore::IBooker ibooker,
const edm::EventSetup iSetup,
const std::string  suffix 
)
private

Definition at line 203 of file TrackAnalyzer.cc.

References DQMStore::IBooker::book1D(), eostools::cat(), conf_, objects.autophobj::float, edm::EventSetup::get(), edm::ParameterSet::getParameter(), hits_bad_, hits_inactive_, hits_missing_, hits_total_, hits_valid_, mps_fire::i, createfilelist::int, GetLumi::lastBunchCrossing, LogDebug, hpstanc_transforms::max, min(), LaserDQM_cfi::mon, monName, dataset::name, NBINS, pileupCalc::nbins, TrackerGeometry::numberOfLayers(), DQMStore::IBooker::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, fftjetcommon_cfi::title, and TopFolder_.

Referenced by initHisto().

206 {
207 
208  ibooker.setCurrentFolder(TopFolder_ + "/HitEffFromHitPattern" + suffix);
209 
210  int LUMIBin = conf_.getParameter<int>("LUMIBin");
211  float LUMIMin = conf_.getParameter<double>("LUMIMin");
212  float LUMIMax = conf_.getParameter<double>("LUMIMax");
213 
214 
215  int NBINS[] = { 50, int(GetLumi::lastBunchCrossing), 300 , LUMIBin};
216  float MIN[] = { 0.5, 0.5, 0., LUMIMin };
217  float MAX[] = { 50.5, float(GetLumi::lastBunchCrossing)+0.5, 3., LUMIMax };
218  std::string NAME[] = { "", "VsBX", "VsLUMI", "VsLUMI" };
219 
220  int mon = -1;
221  int nbins = -1;
222  float min = -1.;
223  float max = -1.;
224  std::string name = "";
225  for (int i=0; i<monQuantity::END; i++) {
226  if (monName[i] == suffix) {
227  mon = i;
228  nbins = NBINS[i];
229  min = MIN[i];
230  max = MAX[i];
231  name = NAME[i];
232  }
233  }
234 
235  edm::ESHandle<TrackerGeometry> trackerGeometry;
236  iSetup.get<TrackerDigiGeometryRecord>().get(trackerGeometry);
237 
238  // Values are not ordered randomly, but the order is taken from
239  // http://cmslxr.fnal.gov/dxr/CMSSW/source/Geometry/CommonDetUnit/interface/GeomDetEnumerators.h#15
240  const char * dets[] = { "None", "PXB", "PXF", "TIB", "TID", "TOB", "TEC"};
241 
242  // Also in this case, ordering is not random but extracted from
243  // http://cmslxr.fnal.gov/dxr/CMSSW/source/DataFormats/TrackReco/interface/HitPattern.h
244  // The category "total" is an addition to ease the computation of
245  // the efficiencies and is not part of the original HitPattern.
246  const char * hit_category[] = { "valid", "missing", "inactive", "bad", "total"};
247 
248  // We set sub_det to be a 1-based index since to it is the sub-sub-structure in the HitPattern
249  char title[50];
250  for (unsigned int det = 1; det < sizeof(dets)/sizeof(char*); ++det ) {
251  for (unsigned int sub_det = 1;
252  sub_det <= trackerGeometry->numberOfLayers(det); ++sub_det) {
253  for (unsigned int cat = 0;
254  cat < sizeof(hit_category)/sizeof(char *); ++cat) {
255  memset(title, 0, sizeof(title));
256  snprintf(title, sizeof(title), "Hits%s_%s_%s_Subdet%d", name.c_str(), hit_category[cat], dets[det], sub_det);
257  switch(cat) {
258  case 0:
259  hits_valid_.insert(std::make_pair(
260  Key(det, sub_det, mon),
261  ibooker.book1D(title, title, nbins, min, max)));
262  break;
263  case 1:
264  hits_missing_.insert(std::make_pair(
265  Key(det, sub_det, mon),
266  ibooker.book1D(title, title, nbins, min, max)));
267  break;
268  case 2:
269  hits_inactive_.insert(std::make_pair(
270  Key(det, sub_det, mon),
271  ibooker.book1D(title, title, nbins, min, max)));
272  break;
273  case 3:
274  hits_bad_.insert(std::make_pair(
275  Key(det, sub_det, mon),
276  ibooker.book1D(title, title, nbins, min, max)));
277  break;
278  case 4:
279  hits_total_.insert(std::make_pair(
280  Key(det, sub_det, mon),
281  ibooker.book1D(title, title, nbins, min, max)));
282  break;
283  default:
284  LogDebug("TrackAnalyzer") << "Invalid hit category used " << cat << " ignored\n";
285  }
286  }
287  }
288  }
289 }
#define LogDebug(id)
T getParameter(std::string const &) const
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_valid_
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_bad_
edm::ParameterSet conf_
Definition: TrackAnalyzer.h:82
unsigned int numberOfLayers(int subdet) const
static const unsigned int lastBunchCrossing
Definition: GetLumi.h:48
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_total_
def cat(path)
Definition: eostools.py:400
std::string TopFolder_
Definition: TrackAnalyzer.h:74
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
T min(T a, T b)
Definition: MathUtil.h:58
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_inactive_
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:277
const T & get() const
Definition: EventSetup.h:56
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_missing_
std::string monName[monQuantity::END]
const int NBINS
void TrackAnalyzer::bookHistosForHitProperties ( DQMStore::IBooker ibooker)
private

Definition at line 292 of file TrackAnalyzer.cc.

References reco::TrackBase::algoNames, algorithm, reco::TrackBase::algoSize, DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), DQMStore::IBooker::bookProfile(), DQMStore::IBooker::bookProfile2D(), Chi2oNDF, Chi2Prob, conf_, dNdEta_HighPurity, dNdPhi_HighPurity, dNdPt_HighPurity, dNhitdPt_HighPurity, doAllPlots_, doDCAPlots_, doGeneralPropertiesPlots_, doHIPlots_, doHitPropertiesPlots_, doLayersVsPhiVsEtaPerTrack_, doPVPlots_, doRecHitVsPhiVsEtaPerTrack_, doRecHitVsPtVsEtaPerTrack_, doSIPPlots_, Gflash::EtaMax, Gflash::EtaMin, Exception, edm::ParameterSet::getParameter(), histname, mps_fire::i, 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, TBeamTest_cfi::PhiMax, TBeamTest_cfi::PhiMin, Ptdist_HighPurity, HLT_HIPhoton15_DQM_cfi::PtMax, HIPixelMedianVertex_cfi::PtMin, MonitorElement::setAxisTitle(), MonitorElement::setBinLabel(), DQMStore::IBooker::setCurrentFolder(), SIZE, stoppingSource, stoppingSourceVSeta, stoppingSourceVSphi, StopReasonName::StopReasonName, AlCaHLTBitMon_QueryRunRegistry::string, TopFolder_, TransDCASig, ValidFractionPerTrack, ValidFractionVsPhiVsEtaPerTrack, xPointOfClosestApproach, xPointOfClosestApproachToPV, yPointOfClosestApproach, yPointOfClosestApproachToPV, zPointOfClosestApproach, and zPointOfClosestApproachToPV.

Referenced by initHisto().

292  {
293 
294  // parameters from the configuration
295  std::string QualName = conf_.getParameter<std::string>("Quality");
296  std::string AlgoName = conf_.getParameter<std::string>("AlgoName");
297  std::string MEBSFolderName = conf_.getParameter<std::string>("BSFolderName");
298 
299  // use the AlgoName and Quality Name
300  std::string CategoryName = QualName != "" ? AlgoName + "_" + QualName : AlgoName;
301 
302  // get binning from the configuration
303  int TKHitBin = conf_.getParameter<int>( "RecHitBin");
304  double TKHitMin = conf_.getParameter<double>("RecHitMin");
305  double TKHitMax = conf_.getParameter<double>("RecHitMax");
306 
307  int TKLostBin = conf_.getParameter<int>( "RecLostBin");
308  double TKLostMin = conf_.getParameter<double>("RecLostMin");
309  double TKLostMax = conf_.getParameter<double>("RecLostMax");
310 
311  int TKLayBin = conf_.getParameter<int>( "RecLayBin");
312  double TKLayMin = conf_.getParameter<double>("RecLayMin");
313  double TKLayMax = conf_.getParameter<double>("RecLayMax");
314 
315  int PhiBin = conf_.getParameter<int>( "PhiBin");
316  double PhiMin = conf_.getParameter<double>("PhiMin");
317  double PhiMax = conf_.getParameter<double>("PhiMax");
318 
319  int EtaBin = conf_.getParameter<int>( "EtaBin");
320  double EtaMin = conf_.getParameter<double>("EtaMin");
321  double EtaMax = conf_.getParameter<double>("EtaMax");
322 
323  int PtBin = conf_.getParameter<int>( "TrackPtBin");
324  double PtMin = conf_.getParameter<double>("TrackPtMin");
325  double PtMax = conf_.getParameter<double>("TrackPtMax");
326 
327  int VXBin = conf_.getParameter<int>( "VXBin");
328  double VXMin = conf_.getParameter<double>("VXMin");
329  double VXMax = conf_.getParameter<double>("VXMax");
330 
331  int VYBin = conf_.getParameter<int>( "VYBin");
332  double VYMin = conf_.getParameter<double>("VYMin");
333  double VYMax = conf_.getParameter<double>("VYMax");
334 
335  int VZBin = conf_.getParameter<int>( "VZBin");
336  double VZMin = conf_.getParameter<double>("VZMin");
337  double VZMax = conf_.getParameter<double>("VZMax");
338 
339  ibooker.setCurrentFolder(TopFolder_);
340 
341  // book the Hit Property histograms
342  // ---------------------------------------------------------------------------------//
343 
344  TkParameterMEs tkmes;
346 
347  ibooker.setCurrentFolder(TopFolder_+"/HitProperties");
348 
349  histname = "NumberOfRecHitsPerTrack_";
350  NumberOfRecHitsPerTrack = ibooker.book1D(histname+CategoryName, histname+CategoryName, TKHitBin, TKHitMin, TKHitMax);
351  NumberOfRecHitsPerTrack->setAxisTitle("Number of all RecHits of each Track");
352  NumberOfRecHitsPerTrack->setAxisTitle("Number of Tracks", 2);
353 
354  histname = "NumberOfValidRecHitsPerTrack_";
355  NumberOfValidRecHitsPerTrack = ibooker.book1D(histname+CategoryName, histname+CategoryName, TKHitBin, TKHitMin, TKHitMax);
356  NumberOfValidRecHitsPerTrack->setAxisTitle("Number of valid RecHits for each Track");
357  NumberOfValidRecHitsPerTrack->setAxisTitle("Number of Tracks", 2);
358 
359  histname = "NumberOfLostRecHitsPerTrack_";
360  NumberOfLostRecHitsPerTrack = ibooker.book1D(histname+CategoryName, histname+CategoryName, TKLostBin, TKLostMin, TKLostMax);
361  NumberOfLostRecHitsPerTrack->setAxisTitle("Number of lost RecHits for each Track");
362  NumberOfLostRecHitsPerTrack->setAxisTitle("Number of Tracks", 2);
363 
364  histname = "NumberOfMissingInnerRecHitsPerTrack_";
365  NumberOfMIRecHitsPerTrack = ibooker.book1D(histname+CategoryName, histname+CategoryName, 10, -0.5, 9.5);
366  NumberOfMIRecHitsPerTrack->setAxisTitle("Number of missing-inner RecHits for each Track");
367  NumberOfMIRecHitsPerTrack->setAxisTitle("Number of Tracks", 2);
368 
369  histname = "NumberOfMissingOuterRecHitsPerTrack_";
370  NumberOfMORecHitsPerTrack = ibooker.book1D(histname+CategoryName, histname+CategoryName, 10, -0.5, 9.5);
371  NumberOfMORecHitsPerTrack->setAxisTitle("Number of missing-outer RecHits for each Track");
372  NumberOfMORecHitsPerTrack->setAxisTitle("Number of Tracks", 2);
373 
374  histname = "ValidFractionPerTrack_";
375  ValidFractionPerTrack = ibooker.book1D(histname+CategoryName, histname+CategoryName, 101, 0., 1.01);
376  ValidFractionPerTrack->setAxisTitle("ValidFraction of RecHits for each Track");
377  ValidFractionPerTrack->setAxisTitle("Number of Tracks", 2);
378 
379 
380 
382 
383  histname = "NumberOfValidRecHitVsPhiVsEtaPerTrack_";
384  NumberOfValidRecHitVsPhiVsEtaPerTrack = ibooker.bookProfile2D(histname+CategoryName, histname+CategoryName,
385  EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax, 0, 40., "");
388 
389  histname = "NumberOfLostRecHitVsPhiVsEtaPerTrack_";
390  NumberOfLostRecHitVsPhiVsEtaPerTrack = ibooker.bookProfile2D(histname+CategoryName, histname+CategoryName,
391  EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax, 0, 5., "");
394 
395 
396  histname = "NumberMIRecHitVsPhiVsEtaPerTrack_";
397  NumberOfMIRecHitVsPhiVsEtaPerTrack = ibooker.bookProfile2D(histname+CategoryName, histname+CategoryName,
398  EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax, 0, 15., "");
401 
402  histname = "NumberMORecHitVsPhiVsEtaPerTrack_";
403  NumberOfMORecHitVsPhiVsEtaPerTrack = ibooker.bookProfile2D(histname+CategoryName, histname+CategoryName,
404  EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax, 0, 15., "");
407 
408  histname = "ValidFractionVsPhiVsEtaPerTrack_";
409  ValidFractionVsPhiVsEtaPerTrack = ibooker.bookProfile2D(histname+CategoryName, histname+CategoryName,
410  EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax, 0, 2., "");
413 
414  }
415 
417 
418  histname = "NumberOfValidRecHitVsPtVsEtaPerTrack_";
419  NumberOfValidRecHitVsPtVsEtaPerTrack = ibooker.bookProfile2D(histname+CategoryName, histname+CategoryName,
420  EtaBin, EtaMin, EtaMax, PtBin, PtMin, PtMax, 0, 40., "");
422  NumberOfValidRecHitVsPtVsEtaPerTrack->setAxisTitle("Track p_{T} [GeV] ", 2);
423 
424  histname = "NumberOfLostRecHitVsPtVsEtaPerTrack_";
425  NumberOfLostRecHitVsPtVsEtaPerTrack = ibooker.bookProfile2D(histname+CategoryName, histname+CategoryName,
426  EtaBin, EtaMin, EtaMax, PtBin, PtMin, PtMax, 0, 5., "");
428  NumberOfLostRecHitVsPtVsEtaPerTrack->setAxisTitle("Track p_{T} [GeV] ", 2);
429 
430 
431  histname = "NumberMIRecHitVsPtVsEtaPerTrack_";
432  NumberOfMIRecHitVsPtVsEtaPerTrack = ibooker.bookProfile2D(histname+CategoryName, histname+CategoryName,
433  EtaBin, EtaMin, EtaMax, PtBin, PtMin, PtMax, 0, 15., "");
435  NumberOfMIRecHitVsPtVsEtaPerTrack->setAxisTitle("Track p_{T} [GeV] ", 2);
436 
437  histname = "NumberMORecHitVsPtVsEtaPerTrack_";
438  NumberOfMORecHitVsPtVsEtaPerTrack = ibooker.bookProfile2D(histname+CategoryName, histname+CategoryName,
439  EtaBin, EtaMin, EtaMax, PtBin, PtMin, PtMax, 0, 15., "");
441  NumberOfMORecHitVsPtVsEtaPerTrack->setAxisTitle("Track p_{T} [GeV] ", 2);
442 
443  }
444 
445  histname = "NumberOfValidRecHitsPerTrackVsPt_";
446  NumberOfValidRecHitsPerTrackVsPt = ibooker.bookProfile(histname+CategoryName, histname+CategoryName, PtBin, PtMin, PtMax, TKHitMin, TKHitMax,"");
447  NumberOfValidRecHitsPerTrackVsPt->setAxisTitle("Track p_{T} [GeV]",1);
448  NumberOfValidRecHitsPerTrackVsPt->setAxisTitle("Number of valid RecHits in each Track",2);
449 
450  histname = "NumberOfLostRecHitsPerTrackVsPt_";
451  NumberOfLostRecHitsPerTrackVsPt = ibooker.bookProfile(histname+CategoryName, histname+CategoryName, PtBin, PtMin, PtMax,TKHitMin, TKHitMax,"");
452  NumberOfLostRecHitsPerTrackVsPt->setAxisTitle("Track p_{T} [GeV]", 1);
453  NumberOfLostRecHitsPerTrackVsPt->setAxisTitle("Average Number of Lost RecHits per Track", 2);
454 
455 
456  histname = "NumberMIRecHitsPerTrackVsPt_";
457  NumberOfMIRecHitsPerTrackVsPt = ibooker.bookProfile(histname+CategoryName, histname+CategoryName, PtBin, PtMin, PtMax,TKHitMin, TKHitMax,"");
458  NumberOfMIRecHitsPerTrackVsPt->setAxisTitle("Track p_{T} [GeV]", 1);
459  NumberOfMIRecHitsPerTrackVsPt->setAxisTitle("Average Number of Lost RecHits per Track", 2);
460 
461  histname = "NumberMORecHitsPerTrackVsPt_";
462  NumberOfMORecHitsPerTrackVsPt = ibooker.bookProfile(histname+CategoryName, histname+CategoryName, PtBin, PtMin, PtMax,TKHitMin, TKHitMax,"");
463  NumberOfMORecHitsPerTrackVsPt->setAxisTitle("Track p_{T} [GeV]", 1);
464  NumberOfMORecHitsPerTrackVsPt->setAxisTitle("Average Number of Lost RecHits per Track", 2);
465 
466  std::string layerTypeName[4] = {"","Off","3D","Missing"};
467  for (int i=0; i<4; ++i) {
468  histname = "NumberOf"+ layerTypeName[i] + "LayersPerTrack_";
469  NumberOfLayersPerTrack[i] = ibooker.book1D(histname+CategoryName, histname+CategoryName, TKLayBin, TKLayMin, TKLayMax);
470  NumberOfLayersPerTrack[i]->setAxisTitle("Number of " + layerTypeName[i] + " Layers of each Track", 1);
471  NumberOfLayersPerTrack[i]->setAxisTitle("Number of Tracks", 2);
472  }
474  for (int i=0; i<4; ++i) {
475  histname = "NumberOf"+ layerTypeName[i] + "LayersVsPhiVsEtaPerTrack_";
476  NumberOfLayersVsPhiVsEtaPerTrack[i] = ibooker.bookProfile2D(histname+CategoryName, histname+CategoryName,
477  EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax, 0, 40., "");
478  NumberOfLayersVsPhiVsEtaPerTrack[i]->setAxisTitle("Track #eta ", 1);
479  NumberOfLayersVsPhiVsEtaPerTrack[i]->setAxisTitle("Track #phi ", 2);
480  }
481  }
482 
483  // book the General Property histograms
484  // ---------------------------------------------------------------------------------//
485 
487 
488  int Chi2Bin = conf_.getParameter<int>( "Chi2Bin");
489  double Chi2Min = conf_.getParameter<double>("Chi2Min");
490  double Chi2Max = conf_.getParameter<double>("Chi2Max");
491 
492  int Chi2NDFBin = conf_.getParameter<int>( "Chi2NDFBin");
493  double Chi2NDFMin = conf_.getParameter<double>("Chi2NDFMin");
494  double Chi2NDFMax = conf_.getParameter<double>("Chi2NDFMax");
495 
496  int Chi2ProbBin = conf_.getParameter<int>( "Chi2ProbBin");
497  double Chi2ProbMin = conf_.getParameter<double>("Chi2ProbMin");
498  double Chi2ProbMax = conf_.getParameter<double>("Chi2ProbMax");
499 
500 
501  //HI PLOTS////
502  int TransDCABins = conf_.getParameter<int>("TransDCABins");
503  double TransDCAMin = conf_.getParameter<double>("TransDCAMin");
504  double TransDCAMax = conf_.getParameter<double>("TransDCAMax");
505 
506  int LongDCABins = conf_.getParameter<int>("LongDCABins");
507  double LongDCAMin = conf_.getParameter<double>("LongDCAMin");
508  double LongDCAMax = conf_.getParameter<double>("LongDCAMax");
510 
511 
512  ibooker.setCurrentFolder(TopFolder_+"/GeneralProperties");
513 
514  histname = "Chi2_";
515  Chi2 = ibooker.book1D(histname+CategoryName, histname+CategoryName, Chi2Bin, Chi2Min, Chi2Max);
516  Chi2->setAxisTitle("Track #chi^{2}" ,1);
517  Chi2->setAxisTitle("Number of Tracks",2);
518 
519  histname = "Chi2Prob_";
520  Chi2Prob = ibooker.book1D(histname+CategoryName, histname+CategoryName, Chi2ProbBin, Chi2ProbMin, Chi2ProbMax);
521  Chi2Prob->setAxisTitle("Track #chi^{2} probability",1);
522  Chi2Prob->setAxisTitle("Number of Tracks" ,2);
523 
524  histname = "Chi2oNDF_";
525  Chi2oNDF = ibooker.book1D(histname+CategoryName, histname+CategoryName, Chi2NDFBin, Chi2NDFMin, Chi2NDFMax);
526  Chi2oNDF->setAxisTitle("Track #chi^{2}/ndf",1);
527  Chi2oNDF->setAxisTitle("Number of Tracks" ,2);
528 
529 
531  //HI PLOTS///
533  if (doHIPlots_)
534  {
535  histname = "LongDCASig_";
536  LongDCASig = ibooker.book1D(histname+CategoryName, histname+CategoryName,LongDCABins,LongDCAMin,LongDCAMax);
537  LongDCASig->setAxisTitle("dz/#sigma_{dz}",1);
538 
539  histname = "TransDCASig_";
540  TransDCASig = ibooker.book1D(histname+CategoryName,histname+CategoryName,TransDCABins,TransDCAMin,TransDCAMax);
541  TransDCASig->setAxisTitle("dxy/#sigma_{dxy}",1);
542 
543  histname = "dNdPhi_HighPurity_";
544  dNdPhi_HighPurity = ibooker.book1D(histname+CategoryName,histname+CategoryName,PhiBin,PhiMin,PhiMax);
545  dNdPhi_HighPurity->setAxisTitle("#phi",1);
546 
547  histname = "dNdEta_HighPurity_";
548  dNdEta_HighPurity = ibooker.book1D(histname+CategoryName,histname+CategoryName,EtaBin,EtaMin,EtaMax);
549  dNdEta_HighPurity->setAxisTitle("#eta",1);
550 
551  histname = "dNdPt_HighPurity_";
552  dNdPt_HighPurity = ibooker.book1D(histname+CategoryName,histname+CategoryName,150,0,0.3);
553  dNdPt_HighPurity->setAxisTitle("#sigma_{p_{T}}/p_{T}",1);
554 
555  histname = "NhitVsEta_HighPurity_";
556  NhitVsEta_HighPurity = ibooker.bookProfile(histname+CategoryName,histname+CategoryName,EtaBin,EtaMin,EtaMax,-0.5,39.5,"");
557  NhitVsEta_HighPurity->setAxisTitle("Track #eta",1);
558  NhitVsEta_HighPurity->setAxisTitle("Number of Valid RecHits in each Track",2);
559 
560  histname = "NhitVsPhi_HighPurity_";
561  NhitVsPhi_HighPurity = ibooker.bookProfile(histname+CategoryName,histname+CategoryName,PhiBin,PhiMin,PhiMax,-0.5,39.5,"");
562  NhitVsPhi_HighPurity->setAxisTitle("Track #phi",1);
563  NhitVsPhi_HighPurity->setAxisTitle("Number of Valid RecHits in each Track",2);
564 
565  histname = "Ptdist_HighPurity_";
566  Ptdist_HighPurity = ibooker.book1D(histname+CategoryName,histname+CategoryName,150,0,50.);
567  Ptdist_HighPurity->setAxisTitle("p_{T} (GeV/c)",1);
568  Ptdist_HighPurity->setAxisTitle("Number of Tracks",2);
569 
570  histname = "dNhitdPt_HighPurity_";
571  dNhitdPt_HighPurity = ibooker.bookProfile(histname+CategoryName,histname+CategoryName,150,0,25.,-0.5,39.5,"");
572  dNhitdPt_HighPurity->setAxisTitle("p_{T} (GeV/c)",1);
573  dNhitdPt_HighPurity->setAxisTitle("N_{hit}",2);
574 
575  }
576 
577 
578 
580  histname = "xPointOfClosestApproach_";
581  xPointOfClosestApproach = ibooker.book1D(histname+CategoryName, histname+CategoryName, VXBin, VXMin, VXMax);
582  xPointOfClosestApproach->setAxisTitle("x component of Track PCA to beam line (cm)",1);
583  xPointOfClosestApproach->setAxisTitle("Number of Tracks",2);
584 
585  histname = "yPointOfClosestApproach_";
586  yPointOfClosestApproach = ibooker.book1D(histname+CategoryName, histname+CategoryName, VYBin, VYMin, VYMax);
587  yPointOfClosestApproach->setAxisTitle("y component of Track PCA to beam line (cm)",1);
588  yPointOfClosestApproach->setAxisTitle("Number of Tracks",2);
589 
590  histname = "zPointOfClosestApproach_";
591  zPointOfClosestApproach = ibooker.book1D(histname+CategoryName, histname+CategoryName, VZBin, VZMin, VZMax);
592  zPointOfClosestApproach->setAxisTitle("z component of Track PCA to beam line (cm)",1);
593  zPointOfClosestApproach->setAxisTitle("Number of Tracks",2);
594 
595  histname = "xPointOfClosestApproachToPV_";
596  xPointOfClosestApproachToPV = ibooker.book1D(histname+CategoryName, histname+CategoryName, VXBin, VXMin, VXMax);
597  xPointOfClosestApproachToPV->setAxisTitle("x component of Track PCA to pv (cm)",1);
598  xPointOfClosestApproachToPV->setAxisTitle("Number of Tracks",2);
599 
600  histname = "yPointOfClosestApproachToPV_";
601  yPointOfClosestApproachToPV = ibooker.book1D(histname+CategoryName, histname+CategoryName, VYBin, VYMin, VYMax);
602  yPointOfClosestApproachToPV->setAxisTitle("y component of Track PCA to pv line (cm)",1);
603  yPointOfClosestApproachToPV->setAxisTitle("Number of Tracks",2);
604 
605  histname = "zPointOfClosestApproachToPV_";
606  zPointOfClosestApproachToPV = ibooker.book1D(histname+CategoryName, histname+CategoryName, VZBin, VZMin, VZMax);
607  zPointOfClosestApproachToPV->setAxisTitle("z component of Track PCA to pv line (cm)",1);
608  zPointOfClosestApproachToPV->setAxisTitle("Number of Tracks",2);
609  }
610 
611  // See DataFormats/TrackReco/interface/TrackBase.h for track algorithm enum definition
612  // http://cmssw.cvs.cern.ch/cgi-bin/cmssw.cgi/CMSSW/DataFormats/TrackReco/interface/TrackBase.h?view=log
613  histname = "algorithm_";
614  algorithm = ibooker.book1D(histname+CategoryName, histname+CategoryName, reco::TrackBase::algoSize, 0., double(reco::TrackBase::algoSize));
615  algorithm->setAxisTitle("Tracking algorithm",1);
616  algorithm->setAxisTitle("Number of Tracks",2);
617 
618  histname = "originalAlgorithm_";
619  oriAlgo = ibooker.book1D(histname+CategoryName, histname+CategoryName, reco::TrackBase::algoSize, 0., double(reco::TrackBase::algoSize));
620  oriAlgo->setAxisTitle("Tracking algorithm",1);
621  oriAlgo->setAxisTitle("Number of Tracks",2);
622 
623  for (size_t ibin=0; ibin<reco::TrackBase::algoSize-1; ibin++) {
626  }
627 
628  size_t StopReasonNameSize = sizeof(StopReasonName::StopReasonName)/sizeof(std::string);
629  if(StopReasonNameSize != static_cast<unsigned int>(StopReason::SIZE)) {
630  throw cms::Exception("Assert") << "StopReason::SIZE is " << static_cast<unsigned int>(StopReason::SIZE)
631  << " but StopReasonName's only for "
632  << StopReasonNameSize
633  << ". Please update DataFormats/TrackReco/interface/TrajectoryStopReasons.h.";
634  }
635 
636  histname = "stoppingSource_";
637  stoppingSource = ibooker.book1D(histname+CategoryName, histname+CategoryName, StopReasonNameSize, 0., double(StopReasonNameSize));
638  stoppingSource->setAxisTitle("stopping reason",1);
639  stoppingSource->setAxisTitle("Number of Tracks",2);
640 
641  histname = "stoppingSourceVSeta_";
642  stoppingSourceVSeta = ibooker.book2D(histname+CategoryName, histname+CategoryName, EtaBin, EtaMin, EtaMax, StopReasonNameSize, 0., double(StopReasonNameSize));
643  stoppingSourceVSeta->setAxisTitle("track #eta",1);
644  stoppingSourceVSeta->setAxisTitle("stopping reason",2);
645 
646  histname = "stoppingSourceVSphi_";
647  stoppingSourceVSphi = ibooker.book2D(histname+CategoryName, histname+CategoryName, PhiBin, PhiMin, PhiMax, StopReasonNameSize, 0., double(StopReasonNameSize));
648  stoppingSourceVSphi->setAxisTitle("track #phi",1);
649  stoppingSourceVSphi->setAxisTitle("stopping reason",2);
650 
651  for (size_t ibin=0; ibin<StopReasonNameSize; ibin++) {
655  }
656 
657  }
658 
659 }
MonitorElement * stoppingSourceVSphi
T getParameter(std::string const &) const
MonitorElement * ValidFractionVsPhiVsEtaPerTrack
MonitorElement * dNhitdPt_HighPurity
MonitorElement * stoppingSourceVSeta
MonitorElement * NumberOfValidRecHitsPerTrack
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:157
MonitorElement * xPointOfClosestApproachToPV
MonitorElement * NumberOfLostRecHitsPerTrack
edm::ParameterSet conf_
Definition: TrackAnalyzer.h:82
bool doGeneralPropertiesPlots_
Definition: TrackAnalyzer.h:89
MonitorElement * NumberOfMORecHitsPerTrackVsPt
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 * NumberOfLayersPerTrack[4]
MonitorElement * NhitVsPhi_HighPurity
MonitorElement * algorithm
const double EtaMax[kNumberCalorimeter]
static const std::string StopReasonName[]
bool doHitPropertiesPlots_
Definition: TrackAnalyzer.h:91
bool doRecHitVsPhiVsEtaPerTrack_
Definition: TrackAnalyzer.h:92
bool doRecHitVsPtVsEtaPerTrack_
Definition: TrackAnalyzer.h:93
MonitorElement * NumberOfValidRecHitVsPhiVsEtaPerTrack
MonitorElement * NumberOfRecHitsPerTrack
MonitorElement * Ptdist_HighPurity
MonitorElement * NumberOfLayersVsPhiVsEtaPerTrack[4]
MonitorElement * TransDCASig
MonitorElement * NumberOfMIRecHitVsPhiVsEtaPerTrack
MonitorElement * oriAlgo
MonitorElement * NumberOfLostRecHitVsPhiVsEtaPerTrack
MonitorElement * NumberOfMIRecHitsPerTrackVsPt
MonitorElement * xPointOfClosestApproach
MonitorElement * NumberOfMIRecHitsPerTrack
MonitorElement * bookProfile2D(Args &&...args)
Definition: DQMStore.h:163
MonitorElement * dNdPt_HighPurity
std::string TopFolder_
Definition: TrackAnalyzer.h:74
MonitorElement * dNdPhi_HighPurity
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
MonitorElement * yPointOfClosestApproachToPV
const double EtaMin[kNumberCalorimeter]
MonitorElement * NumberOfLostRecHitsPerTrackVsPt
MonitorElement * dNdEta_HighPurity
MonitorElement * stoppingSource
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:277
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
MonitorElement * NumberOfMIRecHitVsPtVsEtaPerTrack
MonitorElement * NumberOfMORecHitVsPtVsEtaPerTrack
static const std::string algoNames[]
Definition: TrackBase.h:148
MonitorElement * zPointOfClosestApproachToPV
MonitorElement * NumberOfValidRecHitsPerTrackVsPt
bool doLayersVsPhiVsEtaPerTrack_
Definition: TrackAnalyzer.h:95
MonitorElement * ValidFractionPerTrack
MonitorElement * NhitVsEta_HighPurity
MonitorElement * yPointOfClosestApproach
MonitorElement * Chi2Prob
Definition: Chi2.h:17
MonitorElement * zPointOfClosestApproach
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * NumberOfLostRecHitVsPtVsEtaPerTrack
MonitorElement * Chi2oNDF
std::string histname
MonitorElement * NumberOfValidRecHitVsPtVsEtaPerTrack
MonitorElement * NumberOfMORecHitVsPhiVsEtaPerTrack
MonitorElement * NumberOfMORecHitsPerTrack
MonitorElement * LongDCASig
void TrackAnalyzer::bookHistosForLScertification ( DQMStore::IBooker ibooker)
private

Definition at line 661 of file TrackAnalyzer.cc.

References DQMStore::IBooker::book1D(), Chi2oNDF_lumiFlag, conf_, doLumiAnalysis_, edm::ParameterSet::getParameter(), histname, NumberOfRecHitsPerTrack_lumiFlag, MonitorElement::setAxisTitle(), DQMStore::IBooker::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, and TopFolder_.

Referenced by initHisto().

661  {
662 
663  // parameters from the configuration
664  std::string QualName = conf_.getParameter<std::string>("Quality");
665  std::string AlgoName = conf_.getParameter<std::string>("AlgoName");
666 
667  // use the AlgoName and Quality Name
668  std::string CategoryName = QualName != "" ? AlgoName + "_" + QualName : AlgoName;
669 
670 
671  // book LS analysis related histograms
672  // -----------------------------------
673  if ( doLumiAnalysis_ ) {
674 
675  // get binning from the configuration
676  int TKHitBin = conf_.getParameter<int>( "RecHitBin");
677  double TKHitMin = conf_.getParameter<double>("RecHitMin");
678  double TKHitMax = conf_.getParameter<double>("RecHitMax");
679 
680  int Chi2NDFBin = conf_.getParameter<int>( "Chi2NDFBin");
681  double Chi2NDFMin = conf_.getParameter<double>("Chi2NDFMin");
682  double Chi2NDFMax = conf_.getParameter<double>("Chi2NDFMax");
683 
684  // add by Mia in order to deal w/ LS transitions
685  ibooker.setCurrentFolder(TopFolder_+"/LSanalysis");
686 
687  histname = "NumberOfRecHitsPerTrack_lumiFlag_";
688  NumberOfRecHitsPerTrack_lumiFlag = ibooker.book1D(histname+CategoryName, histname+CategoryName, TKHitBin, TKHitMin, TKHitMax);
689  NumberOfRecHitsPerTrack_lumiFlag->setAxisTitle("Number of all RecHits of each Track");
690  NumberOfRecHitsPerTrack_lumiFlag->setAxisTitle("Number of Tracks", 2);
691 
692  histname = "Chi2oNDF_lumiFlag_";
693  Chi2oNDF_lumiFlag = ibooker.book1D(histname+CategoryName, histname+CategoryName, Chi2NDFBin, Chi2NDFMin, Chi2NDFMax);
694  Chi2oNDF_lumiFlag->setAxisTitle("Track #chi^{2}/ndf",1);
695  Chi2oNDF_lumiFlag->setAxisTitle("Number of Tracks" ,2);
696 
697  }
698 }
T getParameter(std::string const &) const
MonitorElement * Chi2oNDF_lumiFlag
edm::ParameterSet conf_
Definition: TrackAnalyzer.h:82
MonitorElement * NumberOfRecHitsPerTrack_lumiFlag
std::string TopFolder_
Definition: TrackAnalyzer.h:74
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:277
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
std::string histname
void TrackAnalyzer::bookHistosForState ( std::string  sname,
DQMStore::IBooker ibooker 
)
private

Definition at line 1317 of file TrackAnalyzer.cc.

References DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), DQMStore::IBooker::bookProfile(), TrackAnalyzer::TkParameterMEs::Chi2oNDFVsEta, TrackAnalyzer::TkParameterMEs::Chi2oNDFVsNHits, TrackAnalyzer::TkParameterMEs::Chi2oNDFVsPhi, TrackAnalyzer::TkParameterMEs::Chi2oNDFVsPt, TrackAnalyzer::TkParameterMEs::Chi2oNDFVsTheta, TrackAnalyzer::TkParameterMEs::Chi2ProbVsEta, TrackAnalyzer::TkParameterMEs::Chi2ProbVsPhi, conf_, doAllPlots_, doThetaPlots_, doTrackPxPyPlots_, Gflash::EtaMax, Gflash::EtaMin, edm::ParameterSet::getParameter(), histname, TrackAnalyzer::TkParameterMEs::NumberOfLayersPerTrackVsEta, TrackAnalyzer::TkParameterMEs::NumberOfLayersPerTrackVsPhi, TrackAnalyzer::TkParameterMEs::NumberOfLayersPerTrackVsTheta, TrackAnalyzer::TkParameterMEs::NumberOfRecHitsPerTrackVsEta, TrackAnalyzer::TkParameterMEs::NumberOfRecHitsPerTrackVsPhi, TrackAnalyzer::TkParameterMEs::NumberOfRecHitsPerTrackVsTheta, TrackAnalyzer::TkParameterMEs::NumberOfValidRecHitsPerTrackVsEta, TrackAnalyzer::TkParameterMEs::NumberOfValidRecHitsPerTrackVsPhi, TrackAnalyzer::TkParameterMEs::NumberOfValidRecHitsPerTrackVsPt, TBeamTest_cfi::PhiMax, TBeamTest_cfi::PhiMin, MonitorElement::setAxisTitle(), DQMStore::IBooker::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, TkParameterMEMap, TopFolder_, TrackAnalyzer::TkParameterMEs::TrackEta, TrackAnalyzer::TkParameterMEs::TrackEtaErr, TrackAnalyzer::TkParameterMEs::TrackEtaPhi, TrackAnalyzer::TkParameterMEs::TrackEtaPhiInner, TrackAnalyzer::TkParameterMEs::TrackEtaPhiOuter, TrackAnalyzer::TkParameterMEs::TrackP, TrackAnalyzer::TkParameterMEs::TrackPErr, TrackAnalyzer::TkParameterMEs::TrackPhi, TrackAnalyzer::TkParameterMEs::TrackPhiErr, TrackAnalyzer::TkParameterMEs::TrackPt, TrackAnalyzer::TkParameterMEs::TrackPtErr, TrackAnalyzer::TkParameterMEs::TrackPtErrVsEta, TrackAnalyzer::TkParameterMEs::TrackPx, TrackAnalyzer::TkParameterMEs::TrackPxErr, TrackAnalyzer::TkParameterMEs::TrackPy, TrackAnalyzer::TkParameterMEs::TrackPyErr, TrackAnalyzer::TkParameterMEs::TrackPz, TrackAnalyzer::TkParameterMEs::TrackPzErr, TrackAnalyzer::TkParameterMEs::TrackQ, and TrackAnalyzer::TkParameterMEs::TrackTheta.

Referenced by initHisto().

1318 {
1319 
1320  // parameters from the configuration
1321  std::string QualName = conf_.getParameter<std::string>("Quality");
1322  std::string AlgoName = conf_.getParameter<std::string>("AlgoName");
1323 
1324  // use the AlgoName and Quality Name
1325  std::string CategoryName = QualName != "" ? AlgoName + "_" + QualName : AlgoName;
1326 
1327  // get binning from the configuration
1328  double Chi2NDFMin = conf_.getParameter<double>("Chi2NDFMin");
1329  double Chi2NDFMax = conf_.getParameter<double>("Chi2NDFMax");
1330 
1331  int RecHitBin = conf_.getParameter<int>( "RecHitBin");
1332  double RecHitMin = conf_.getParameter<double>("RecHitMin");
1333  double RecHitMax = conf_.getParameter<double>("RecHitMax");
1334 
1335  int RecLayBin = conf_.getParameter<int>( "RecHitBin");
1336  double RecLayMin = conf_.getParameter<double>("RecHitMin");
1337  double RecLayMax = conf_.getParameter<double>("RecHitMax");
1338 
1339 
1340  int PhiBin = conf_.getParameter<int>( "PhiBin");
1341  double PhiMin = conf_.getParameter<double>("PhiMin");
1342  double PhiMax = conf_.getParameter<double>("PhiMax");
1343 
1344  int EtaBin = conf_.getParameter<int>( "EtaBin");
1345  double EtaMin = conf_.getParameter<double>("EtaMin");
1346  double EtaMax = conf_.getParameter<double>("EtaMax");
1347 
1348  int ThetaBin = conf_.getParameter<int>( "ThetaBin");
1349  double ThetaMin = conf_.getParameter<double>("ThetaMin");
1350  double ThetaMax = conf_.getParameter<double>("ThetaMax");
1351 
1352  int TrackQBin = conf_.getParameter<int>( "TrackQBin");
1353  double TrackQMin = conf_.getParameter<double>("TrackQMin");
1354  double TrackQMax = conf_.getParameter<double>("TrackQMax");
1355 
1356  int TrackPtBin = conf_.getParameter<int>( "TrackPtBin");
1357  double TrackPtMin = conf_.getParameter<double>("TrackPtMin");
1358  double TrackPtMax = conf_.getParameter<double>("TrackPtMax");
1359 
1360  int TrackPBin = conf_.getParameter<int>( "TrackPBin");
1361  double TrackPMin = conf_.getParameter<double>("TrackPMin");
1362  double TrackPMax = conf_.getParameter<double>("TrackPMax");
1363 
1364  int TrackPxBin = conf_.getParameter<int>( "TrackPxBin");
1365  double TrackPxMin = conf_.getParameter<double>("TrackPxMin");
1366  double TrackPxMax = conf_.getParameter<double>("TrackPxMax");
1367 
1368  int TrackPyBin = conf_.getParameter<int>( "TrackPyBin");
1369  double TrackPyMin = conf_.getParameter<double>("TrackPyMin");
1370  double TrackPyMax = conf_.getParameter<double>("TrackPyMax");
1371 
1372  int TrackPzBin = conf_.getParameter<int>( "TrackPzBin");
1373  double TrackPzMin = conf_.getParameter<double>("TrackPzMin");
1374  double TrackPzMax = conf_.getParameter<double>("TrackPzMax");
1375 
1376  int ptErrBin = conf_.getParameter<int>( "ptErrBin");
1377  double ptErrMin = conf_.getParameter<double>("ptErrMin");
1378  double ptErrMax = conf_.getParameter<double>("ptErrMax");
1379 
1380  int pxErrBin = conf_.getParameter<int>( "pxErrBin");
1381  double pxErrMin = conf_.getParameter<double>("pxErrMin");
1382  double pxErrMax = conf_.getParameter<double>("pxErrMax");
1383 
1384  int pyErrBin = conf_.getParameter<int>( "pyErrBin");
1385  double pyErrMin = conf_.getParameter<double>("pyErrMin");
1386  double pyErrMax = conf_.getParameter<double>("pyErrMax");
1387 
1388  int pzErrBin = conf_.getParameter<int>( "pzErrBin");
1389  double pzErrMin = conf_.getParameter<double>("pzErrMin");
1390  double pzErrMax = conf_.getParameter<double>("pzErrMax");
1391 
1392  int pErrBin = conf_.getParameter<int>( "pErrBin");
1393  double pErrMin = conf_.getParameter<double>("pErrMin");
1394  double pErrMax = conf_.getParameter<double>("pErrMax");
1395 
1396  int phiErrBin = conf_.getParameter<int>( "phiErrBin");
1397  double phiErrMin = conf_.getParameter<double>("phiErrMin");
1398  double phiErrMax = conf_.getParameter<double>("phiErrMax");
1399 
1400  int etaErrBin = conf_.getParameter<int>( "etaErrBin");
1401  double etaErrMin = conf_.getParameter<double>("etaErrMin");
1402  double etaErrMax = conf_.getParameter<double>("etaErrMax");
1403 
1404 
1405  double Chi2ProbMin = conf_.getParameter<double>("Chi2ProbMin");
1406  double Chi2ProbMax = conf_.getParameter<double>("Chi2ProbMax");
1407 
1408  ibooker.setCurrentFolder(TopFolder_);
1409 
1410  TkParameterMEs tkmes;
1411 
1412  std::string histTag = (sname == "default") ? CategoryName : sname + "_" + CategoryName;
1413 
1414  if(doAllPlots_) {
1415 
1416  // general properties
1417  ibooker.setCurrentFolder(TopFolder_+"/GeneralProperties");
1418 
1419  if (doThetaPlots_) {
1420  histname = "Chi2oNDFVsTheta_" + histTag;
1421  tkmes.Chi2oNDFVsTheta = ibooker.bookProfile(histname, histname, ThetaBin, ThetaMin, ThetaMax, Chi2NDFMin, Chi2NDFMax,"");
1422  tkmes.Chi2oNDFVsTheta->setAxisTitle("Track #theta",1);
1423  tkmes.Chi2oNDFVsTheta->setAxisTitle("Track #chi^{2}/ndf",2);
1424  }
1425  histname = "Chi2oNDFVsPhi_" + histTag;
1426  tkmes.Chi2oNDFVsPhi = ibooker.bookProfile(histname, histname, PhiBin, PhiMin, PhiMax, Chi2NDFMin, Chi2NDFMax,"");
1427  tkmes.Chi2oNDFVsPhi->setAxisTitle("Track #phi",1);
1428  tkmes.Chi2oNDFVsPhi->setAxisTitle("Track #chi^{2}/ndf",2);
1429 
1430  histname = "Chi2ProbVsPhi_" + histTag;
1431  tkmes.Chi2ProbVsPhi = ibooker.bookProfile(histname+CategoryName, histname+CategoryName, PhiBin, PhiMin, PhiMax, Chi2ProbMin, Chi2ProbMax);
1432  tkmes.Chi2ProbVsPhi->setAxisTitle("Tracks #phi" ,1);
1433  tkmes.Chi2ProbVsPhi->setAxisTitle("Track #chi^{2} probability",2);
1434 
1435  histname = "Chi2ProbVsEta_" + histTag;
1436  tkmes.Chi2ProbVsEta = ibooker.bookProfile(histname+CategoryName, histname+CategoryName, EtaBin, EtaMin, EtaMax, Chi2ProbMin, Chi2ProbMax);
1437  tkmes.Chi2ProbVsEta->setAxisTitle("Tracks #eta" ,1);
1438  tkmes.Chi2ProbVsEta->setAxisTitle("Track #chi^{2} probability",2);
1439 
1440  }
1441 
1442  // general properties
1443  ibooker.setCurrentFolder(TopFolder_+"/GeneralProperties");
1444 
1445 
1446  histname = "Chi2oNDFVsEta_" + histTag;
1447  tkmes.Chi2oNDFVsEta = ibooker.bookProfile(histname, histname, EtaBin, EtaMin, EtaMax, Chi2NDFMin, Chi2NDFMax,"");
1448  tkmes.Chi2oNDFVsEta->setAxisTitle("Track #eta",1);
1449  tkmes.Chi2oNDFVsEta->setAxisTitle("Track #chi^{2}/ndf",2);
1450 
1451  histname = "Chi2oNDFVsPt_" + histTag;
1452  tkmes.Chi2oNDFVsPt = ibooker.bookProfile(histname, histname, TrackPtBin, TrackPtMin, TrackPtMax, Chi2NDFMin, Chi2NDFMax,"");
1453  tkmes.Chi2oNDFVsPt->setAxisTitle("Track p_{T} (GeV/c)", 1);
1454  tkmes.Chi2oNDFVsPt->setAxisTitle("Track #chi^{2}/ndf",2);
1455 
1456  histname = "Chi2oNDFVsNHits_" + histTag;
1457  tkmes.Chi2oNDFVsNHits = ibooker.bookProfile(histname, histname, 50, 0, 50, Chi2NDFMin, Chi2NDFMax,"");
1458  tkmes.Chi2oNDFVsNHits->setAxisTitle("Track NHits", 1);
1459  tkmes.Chi2oNDFVsNHits->setAxisTitle("Track #chi^{2}/ndf",2);
1460 
1461  histname = "TrackP_" + histTag;
1462  tkmes.TrackP = ibooker.book1D(histname, histname, TrackPBin, TrackPMin, TrackPMax);
1463  tkmes.TrackP->setAxisTitle("Track |p| (GeV/c)", 1);
1464  tkmes.TrackP->setAxisTitle("Number of Tracks",2);
1465 
1466  histname = "TrackPt_" + histTag;
1467  tkmes.TrackPt = ibooker.book1D(histname, histname, TrackPtBin, TrackPtMin, TrackPtMax);
1468  tkmes.TrackPt->setAxisTitle("Track p_{T} (GeV/c)", 1);
1469  tkmes.TrackPt->setAxisTitle("Number of Tracks",2);
1470 
1471  if (doTrackPxPyPlots_) {
1472  histname = "TrackPx_" + histTag;
1473  tkmes.TrackPx = ibooker.book1D(histname, histname, TrackPxBin, TrackPxMin, TrackPxMax);
1474  tkmes.TrackPx->setAxisTitle("Track p_{x} (GeV/c)", 1);
1475  tkmes.TrackPx->setAxisTitle("Number of Tracks",2);
1476 
1477  histname = "TrackPy_" + histTag;
1478  tkmes.TrackPy = ibooker.book1D(histname, histname, TrackPyBin, TrackPyMin, TrackPyMax);
1479  tkmes.TrackPy->setAxisTitle("Track p_{y} (GeV/c)", 1);
1480  tkmes.TrackPy->setAxisTitle("Number of Tracks",2);
1481  }
1482  histname = "TrackPz_" + histTag;
1483  tkmes.TrackPz = ibooker.book1D(histname, histname, TrackPzBin, TrackPzMin, TrackPzMax);
1484  tkmes.TrackPz->setAxisTitle("Track p_{z} (GeV/c)", 1);
1485  tkmes.TrackPz->setAxisTitle("Number of Tracks",2);
1486 
1487  histname = "TrackPhi_" + histTag;
1488  tkmes.TrackPhi = ibooker.book1D(histname, histname, PhiBin, PhiMin, PhiMax);
1489  tkmes.TrackPhi->setAxisTitle("Track #phi", 1);
1490  tkmes.TrackPhi->setAxisTitle("Number of Tracks",2);
1491 
1492  histname = "TrackEta_" + histTag;
1493  tkmes.TrackEta = ibooker.book1D(histname, histname, EtaBin, EtaMin, EtaMax);
1494  tkmes.TrackEta->setAxisTitle("Track #eta", 1);
1495  tkmes.TrackEta->setAxisTitle("Number of Tracks",2);
1496 
1497  histname = "TrackEtaPhi_" + histTag;
1498  tkmes.TrackEtaPhi = ibooker.book2D(histname, histname, EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax);
1499  tkmes.TrackEtaPhi->setAxisTitle("Track #eta", 1);
1500  tkmes.TrackEtaPhi->setAxisTitle("Track #phi", 2);
1501 
1502  histname = "TrackEtaPhiInner_" + histTag;
1503  tkmes.TrackEtaPhiInner = ibooker.book2D(histname, histname, EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax);
1504  tkmes.TrackEtaPhiInner->setAxisTitle("Track #eta", 1);
1505  tkmes.TrackEtaPhiInner->setAxisTitle("Track #phi", 2);
1506 
1507  histname = "TrackEtaPhiOuter_" + histTag;
1508  tkmes.TrackEtaPhiOuter = ibooker.book2D(histname, histname, EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax);
1509  tkmes.TrackEtaPhiOuter->setAxisTitle("Track #eta", 1);
1510  tkmes.TrackEtaPhiOuter->setAxisTitle("Track #phi", 2);
1511 
1512 
1513 
1514  if (doThetaPlots_) {
1515  histname = "TrackTheta_" + histTag;
1516  tkmes.TrackTheta = ibooker.book1D(histname, histname, ThetaBin, ThetaMin, ThetaMax);
1517  tkmes.TrackTheta->setAxisTitle("Track #theta", 1);
1518  tkmes.TrackTheta->setAxisTitle("Number of Tracks",2);
1519  }
1520  histname = "TrackQ_" + histTag;
1521  tkmes.TrackQ = ibooker.book1D(histname, histname, TrackQBin, TrackQMin, TrackQMax);
1522  tkmes.TrackQ->setAxisTitle("Track Charge", 1);
1523  tkmes.TrackQ->setAxisTitle("Number of Tracks",2);
1524 
1525  histname = "TrackPErrOverP_" + histTag;
1526  tkmes.TrackPErr = ibooker.book1D(histname, histname, pErrBin, pErrMin, pErrMax);
1527  tkmes.TrackPErr->setAxisTitle("track error(p)/p", 1);
1528  tkmes.TrackPErr->setAxisTitle("Number of Tracks",2);
1529 
1530  histname = "TrackPtErrOverPt_" + histTag;
1531  tkmes.TrackPtErr = ibooker.book1D(histname, histname, ptErrBin, ptErrMin, ptErrMax);
1532  tkmes.TrackPtErr->setAxisTitle("track error(p_{T})/p_{T}", 1);
1533  tkmes.TrackPtErr->setAxisTitle("Number of Tracks",2);
1534 
1535  histname = "TrackPtErrOverPtVsEta_" + histTag;
1536  tkmes.TrackPtErrVsEta = ibooker.bookProfile(histname, histname, EtaBin, EtaMin, EtaMax, ptErrMin, ptErrMax);
1537  tkmes.TrackPtErrVsEta->setAxisTitle("Track #eta",1);
1538  tkmes.TrackPtErrVsEta->setAxisTitle("track error(p_{T})/p_{T}", 2);
1539 
1540  if (doTrackPxPyPlots_) {
1541  histname = "TrackPxErrOverPx_" + histTag;
1542  tkmes.TrackPxErr = ibooker.book1D(histname, histname, pxErrBin, pxErrMin, pxErrMax);
1543  tkmes.TrackPxErr->setAxisTitle("track error(p_{x})/p_{x}", 1);
1544  tkmes.TrackPxErr->setAxisTitle("Number of Tracks",2);
1545 
1546  histname = "TrackPyErrOverPy_" + histTag;
1547  tkmes.TrackPyErr = ibooker.book1D(histname, histname, pyErrBin, pyErrMin, pyErrMax);
1548  tkmes.TrackPyErr->setAxisTitle("track error(p_{y})/p_{y}", 1);
1549  tkmes.TrackPyErr->setAxisTitle("Number of Tracks",2);
1550  }
1551  histname = "TrackPzErrOverPz_" + histTag;
1552  tkmes.TrackPzErr = ibooker.book1D(histname, histname, pzErrBin, pzErrMin, pzErrMax);
1553  tkmes.TrackPzErr->setAxisTitle("track error(p_{z})/p_{z}", 1);
1554  tkmes.TrackPzErr->setAxisTitle("Number of Tracks",2);
1555 
1556  histname = "TrackPhiErr_" + histTag;
1557  tkmes.TrackPhiErr = ibooker.book1D(histname, histname, phiErrBin, phiErrMin, phiErrMax);
1558  tkmes.TrackPhiErr->setAxisTitle("track error(#phi)");
1559  tkmes.TrackPhiErr->setAxisTitle("Number of Tracks",2);
1560 
1561  histname = "TrackEtaErr_" + histTag;
1562  tkmes.TrackEtaErr = ibooker.book1D(histname, histname, etaErrBin, etaErrMin, etaErrMax);
1563  tkmes.TrackEtaErr->setAxisTitle("track error(#eta)");
1564  tkmes.TrackEtaErr->setAxisTitle("Number of Tracks",2);
1565 
1566  // rec hit profiles
1567  ibooker.setCurrentFolder(TopFolder_+"/GeneralProperties");
1568  histname = "NumberOfRecHitsPerTrackVsPhi_" + histTag;
1569  tkmes.NumberOfRecHitsPerTrackVsPhi = ibooker.bookProfile(histname, histname, PhiBin, PhiMin, PhiMax, RecHitBin, RecHitMin, RecHitMax,"");
1570  tkmes.NumberOfRecHitsPerTrackVsPhi->setAxisTitle("Track #phi",1);
1571  tkmes.NumberOfRecHitsPerTrackVsPhi->setAxisTitle("Number of RecHits in each Track",2);
1572 
1573  if (doThetaPlots_) {
1574  histname = "NumberOfRecHitsPerTrackVsTheta_" + histTag;
1575  tkmes.NumberOfRecHitsPerTrackVsTheta = ibooker.bookProfile(histname, histname, ThetaBin, ThetaMin, ThetaMax, RecHitBin, RecHitMin, RecHitMax,"");
1576  tkmes.NumberOfRecHitsPerTrackVsTheta->setAxisTitle("Track #phi",1);
1577  tkmes.NumberOfRecHitsPerTrackVsTheta->setAxisTitle("Number of RecHits in each Track",2);
1578  }
1579  histname = "NumberOfRecHitsPerTrackVsEta_" + histTag;
1580  tkmes.NumberOfRecHitsPerTrackVsEta = ibooker.bookProfile(histname, histname, EtaBin, EtaMin, EtaMax, RecHitBin, RecHitMin, RecHitMax,"");
1581  tkmes.NumberOfRecHitsPerTrackVsEta->setAxisTitle("Track #eta",1);
1582  tkmes.NumberOfRecHitsPerTrackVsEta->setAxisTitle("Number of RecHits in each Track",2);
1583 
1584  histname = "NumberOfValidRecHitsPerTrackVsPhi_" + histTag;
1585  tkmes.NumberOfValidRecHitsPerTrackVsPhi = ibooker.bookProfile(histname, histname, PhiBin, PhiMin, PhiMax, RecHitMin, RecHitMax,"");
1586  tkmes.NumberOfValidRecHitsPerTrackVsPhi->setAxisTitle("Track #phi",1);
1587  tkmes.NumberOfValidRecHitsPerTrackVsPhi->setAxisTitle("Number of valid RecHits in each Track",2);
1588 
1589  histname = "NumberOfValidRecHitsPerTrackVsEta_" + histTag;
1590  tkmes.NumberOfValidRecHitsPerTrackVsEta = ibooker.bookProfile(histname, histname, EtaBin, EtaMin, EtaMax, RecHitMin, RecHitMax,"");
1591  tkmes.NumberOfValidRecHitsPerTrackVsEta->setAxisTitle("Track #eta",1);
1592  tkmes.NumberOfValidRecHitsPerTrackVsEta->setAxisTitle("Number of valid RecHits in each Track",2);
1593 
1594  histname = "NumberOfValidRecHitsPerTrackVsPt_" + histTag;
1595  tkmes.NumberOfValidRecHitsPerTrackVsPt = ibooker.bookProfile(histname, histname, TrackPtBin, TrackPtMin, TrackPtMax, RecHitMin, RecHitMax,"");
1596  tkmes.NumberOfValidRecHitsPerTrackVsPt->setAxisTitle("Track p_{T} [GeV]",1);
1597  tkmes.NumberOfValidRecHitsPerTrackVsPt->setAxisTitle("Number of valid RecHits in each Track",2);
1598 
1600  histname = "NumberOfLayersPerTrackVsPhi_" + histTag;
1601  tkmes.NumberOfLayersPerTrackVsPhi = ibooker.bookProfile(histname, histname, PhiBin, PhiMin, PhiMax, RecLayBin, RecLayMin, RecLayMax,"");
1602  tkmes.NumberOfLayersPerTrackVsPhi->setAxisTitle("Track #phi",1);
1603  tkmes.NumberOfLayersPerTrackVsPhi->setAxisTitle("Number of Layers in each Track",2);
1604 
1605  if (doThetaPlots_) {
1606  histname = "NumberOfLayersPerTrackVsTheta_" + histTag;
1607  tkmes.NumberOfLayersPerTrackVsTheta = ibooker.bookProfile(histname, histname, ThetaBin, ThetaMin, ThetaMax, RecLayBin, RecLayMin, RecLayMax,"");
1608  tkmes.NumberOfLayersPerTrackVsTheta->setAxisTitle("Track #phi",1);
1609  tkmes.NumberOfLayersPerTrackVsTheta->setAxisTitle("Number of Layers in each Track",2);
1610  }
1611  histname = "NumberOfLayersPerTrackVsEta_" + histTag;
1612  tkmes.NumberOfLayersPerTrackVsEta = ibooker.bookProfile(histname, histname, EtaBin, EtaMin, EtaMax, RecLayBin, RecLayMin, RecLayMax,"");
1613  tkmes.NumberOfLayersPerTrackVsEta->setAxisTitle("Track #eta",1);
1614  tkmes.NumberOfLayersPerTrackVsEta->setAxisTitle("Number of Layers in each Track",2);
1615 
1616  if (doThetaPlots_) {
1617  histname = "Chi2oNDFVsTheta_" + histTag;
1618  tkmes.Chi2oNDFVsTheta = ibooker.bookProfile(histname, histname, ThetaBin, ThetaMin, ThetaMax, Chi2NDFMin, Chi2NDFMax,"");
1619  tkmes.Chi2oNDFVsTheta->setAxisTitle("Track #theta",1);
1620  tkmes.Chi2oNDFVsTheta->setAxisTitle("Track #chi^{2}/ndf",2);
1621  }
1622  if (doAllPlots_) {
1623  histname = "Chi2oNDFVsPhi_" + histTag;
1624  tkmes.Chi2oNDFVsPhi = ibooker.bookProfile(histname, histname, PhiBin, PhiMin, PhiMax, Chi2NDFMin, Chi2NDFMax,"");
1625  tkmes.Chi2oNDFVsPhi->setAxisTitle("Track #phi",1);
1626  tkmes.Chi2oNDFVsPhi->setAxisTitle("Track #chi^{2}/ndf",2);
1627 
1628  histname = "Chi2oNDFVsEta_" + histTag;
1629  tkmes.Chi2oNDFVsEta = ibooker.bookProfile(histname, histname, EtaBin, EtaMin, EtaMax, Chi2NDFMin, Chi2NDFMax,"");
1630  tkmes.Chi2oNDFVsEta->setAxisTitle("Track #eta",1);
1631  tkmes.Chi2oNDFVsEta->setAxisTitle("Track #chi^{2}/ndf",2);
1632 
1633  histname = "Chi2ProbVsPhi_" + histTag;
1634  tkmes.Chi2ProbVsPhi = ibooker.bookProfile(histname+CategoryName, histname+CategoryName, PhiBin, PhiMin, PhiMax, Chi2ProbMin, Chi2ProbMax);
1635  tkmes.Chi2ProbVsPhi->setAxisTitle("Tracks #phi" ,1);
1636  tkmes.Chi2ProbVsPhi->setAxisTitle("Track #chi^{2} probability",2);
1637 
1638  histname = "Chi2ProbVsEta_" + histTag;
1639  tkmes.Chi2ProbVsEta = ibooker.bookProfile(histname+CategoryName, histname+CategoryName, EtaBin, EtaMin, EtaMax, Chi2ProbMin, Chi2ProbMax);
1640  tkmes.Chi2ProbVsEta->setAxisTitle("Tracks #eta" ,1);
1641  tkmes.Chi2ProbVsEta->setAxisTitle("Track #chi^{2} probability",2);
1642  }
1643 
1644  // now put the MEs in the map
1645  TkParameterMEMap.insert( std::make_pair(sname, tkmes) );
1646 
1647 }
T getParameter(std::string const &) const
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:157
edm::ParameterSet conf_
Definition: TrackAnalyzer.h:82
std::map< std::string, TkParameterMEs > TkParameterMEMap
const double EtaMax[kNumberCalorimeter]
std::string TopFolder_
Definition: TrackAnalyzer.h:74
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
const double EtaMin[kNumberCalorimeter]
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:277
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
bool doTrackPxPyPlots_
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
std::string histname
void TrackAnalyzer::bookHistosForTrackerSpecific ( DQMStore::IBooker ibooker)
private

Definition at line 1801 of file TrackAnalyzer.cc.

References DQMStore::IBooker::book1D(), DQMStore::IBooker::bookProfile(), conf_, TrackAnalyzer::TkRecHitsPerSubDetMEs::detectorId, TrackAnalyzer::TkRecHitsPerSubDetMEs::detectorTag, Gflash::EtaMax, Gflash::EtaMin, edm::ParameterSet::getParameter(), histname, TrackAnalyzer::TkRecHitsPerSubDetMEs::NumberOfLayersPerTrack, TrackAnalyzer::TkRecHitsPerSubDetMEs::NumberOfLayersPerTrackVsEta, TrackAnalyzer::TkRecHitsPerSubDetMEs::NumberOfLayersPerTrackVsPhi, TrackAnalyzer::TkRecHitsPerSubDetMEs::NumberOfLayersPerTrackVsPt, TrackAnalyzer::TkRecHitsPerSubDetMEs::NumberOfRecHitsPerTrack, TrackAnalyzer::TkRecHitsPerSubDetMEs::NumberOfRecHitsPerTrackVsEta, TrackAnalyzer::TkRecHitsPerSubDetMEs::NumberOfRecHitsPerTrackVsPhi, TrackAnalyzer::TkRecHitsPerSubDetMEs::NumberOfRecHitsPerTrackVsPt, TBeamTest_cfi::PhiMax, TBeamTest_cfi::PhiMin, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, HLT_HIPhoton15_DQM_cfi::PtMax, HIPixelMedianVertex_cfi::PtMin, MonitorElement::setAxisTitle(), DQMStore::IBooker::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, produceOfflineValidationTex::subdetectors, StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, TkRecHitsPerSubDetMEMap, StripSubdetector::TOB, and TopFolder_.

Referenced by initHisto().

1802 {
1803 
1804  // parameters from the configuration
1805  std::string QualName = conf_.getParameter<std::string>("Quality");
1806  std::string AlgoName = conf_.getParameter<std::string>("AlgoName");
1807 
1808  // use the AlgoName and Quality Name
1809  std::string CategoryName = QualName != "" ? AlgoName + "_" + QualName : AlgoName;
1810 
1811  int PhiBin = conf_.getParameter<int>( "PhiBin");
1812  double PhiMin = conf_.getParameter<double>("PhiMin");
1813  double PhiMax = conf_.getParameter<double>("PhiMax");
1814 
1815  int EtaBin = conf_.getParameter<int>( "EtaBin");
1816  double EtaMin = conf_.getParameter<double>("EtaMin");
1817  double EtaMax = conf_.getParameter<double>("EtaMax");
1818 
1819  int PtBin = conf_.getParameter<int>( "TrackPtBin");
1820  double PtMin = conf_.getParameter<double>("TrackPtMin");
1821  double PtMax = conf_.getParameter<double>("TrackPtMax");
1822 
1823  // book hit property histograms
1824  // ---------------------------------------------------------------------------------//
1825  ibooker.setCurrentFolder(TopFolder_+"/HitProperties");
1826 
1827 
1828 
1829  std::vector<std::string> subdetectors = conf_.getParameter<std::vector<std::string> >("subdetectors");
1830  int detBin = conf_.getParameter<int>("subdetectorBin");
1831 
1832  for ( auto det : subdetectors ) {
1833 
1834  // hits properties
1835  ibooker.setCurrentFolder(TopFolder_+"/HitProperties/"+det);
1836 
1837  TkRecHitsPerSubDetMEs recHitsPerSubDet_mes;
1838 
1839  recHitsPerSubDet_mes.detectorTag = det;
1840  int detID = -1;
1841  if ( det == "TIB" ) detID = StripSubdetector::TIB; // 3
1842  if ( det == "TOB" ) detID = StripSubdetector::TOB; // 5
1843  if ( det == "TID" ) detID = StripSubdetector::TID; // 4
1844  if ( det == "TEC" ) detID = StripSubdetector::TEC; // 6
1845  if ( det == "PixBarrel" ) detID = PixelSubdetector::PixelBarrel; // 1
1846  if ( det == "PixEndcap" ) detID = PixelSubdetector::PixelEndcap; // 2
1847  if ( det == "Pixel" ) detID = 0;
1848  if ( det == "Strip" ) detID = 7;
1849 
1850  recHitsPerSubDet_mes.detectorId = detID;
1851 
1852  histname = "NumberOfRecHitsPerTrack_" + det + "_" + CategoryName;
1853  recHitsPerSubDet_mes.NumberOfRecHitsPerTrack = ibooker.book1D(histname, histname, detBin, -0.5, double(detBin)-0.5);
1854  recHitsPerSubDet_mes.NumberOfRecHitsPerTrack->setAxisTitle("Number of " + det + " valid RecHits in each Track",1);
1855  recHitsPerSubDet_mes.NumberOfRecHitsPerTrack->setAxisTitle("Number of Tracks", 2);
1856 
1857  histname = "NumberOfRecHitsPerTrackVsPhi_" + det + "_" + CategoryName;
1858  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsPhi = ibooker.bookProfile(histname, histname, PhiBin, PhiMin, PhiMax, detBin, -0.5, double(detBin)-0.5,"");
1859  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsPhi->setAxisTitle("Track #phi",1);
1860  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsPhi->setAxisTitle("Number of " + det + " valid RecHits in each Track",2);
1861 
1862  histname = "NumberOfRecHitsPerTrackVsEta_" + det + "_" + CategoryName;
1863  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsEta = ibooker.bookProfile(histname, histname, EtaBin, EtaMin, EtaMax, detBin, -0.5, double(detBin)-0.5,"");
1864  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsEta->setAxisTitle("Track #eta",1);
1865  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsEta->setAxisTitle("Number of " + det + " valid RecHits in each Track",2);
1866 
1867  histname = "NumberOfRecHitsPerTrackVsPt_" + det + "_" + CategoryName;
1868  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsPt = ibooker.bookProfile(histname, histname, PtBin, PtMin, PtMax, detBin, -0.5, double(detBin)-0.5,"");
1869  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsPt->setAxisTitle("Track p_{T} [GeV]",1);
1870  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsPt->setAxisTitle("Number of " + det + " valid RecHits in each Track",2);
1871 
1872  histname = "NumberOfLayersPerTrack_" + det + "_" + CategoryName;
1873  recHitsPerSubDet_mes.NumberOfLayersPerTrack = ibooker.book1D(histname, histname, detBin, -0.5, double(detBin)-0.5);
1874  recHitsPerSubDet_mes.NumberOfLayersPerTrack->setAxisTitle("Number of " + det + " valid Layers in each Track",1);
1875  recHitsPerSubDet_mes.NumberOfLayersPerTrack->setAxisTitle("Number of Tracks", 2);
1876 
1877  histname = "NumberOfLayersPerTrackVsPhi_" + det + "_" + CategoryName;
1878  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsPhi = ibooker.bookProfile(histname, histname, PhiBin, PhiMin, PhiMax, detBin, -0.5, double(detBin)-0.5,"");
1879  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsPhi->setAxisTitle("Track #phi",1);
1880  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsPhi->setAxisTitle("Number of " + det + " valid Layers in each Track",2);
1881 
1882  histname = "NumberOfLayersPerTrackVsEta_" + det + "_" + CategoryName;
1883  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsEta = ibooker.bookProfile(histname, histname, EtaBin, EtaMin, EtaMax, detBin, -0.5, double(detBin)-0.5,"");
1884  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsEta->setAxisTitle("Track #eta",1);
1885  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsEta->setAxisTitle("Number of " + det + " valid Layers in each Track",2);
1886 
1887  histname = "NumberOfLayersPerTrackVsPt_" + det + "_" + CategoryName;
1888  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsPt = ibooker.bookProfile(histname, histname, PtBin, PtMin, PtMax, detBin, -0.5, double(detBin)-0.5,"");
1889  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsPt->setAxisTitle("Track p_{T} [GeV]",1);
1890  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsPt->setAxisTitle("Number of " + det + " valid Layers in each Track",2);
1891 
1892  TkRecHitsPerSubDetMEMap.insert(std::pair<std::string,TkRecHitsPerSubDetMEs>(det,recHitsPerSubDet_mes));
1893 
1894 
1895  }
1896 
1897 
1898 }
T getParameter(std::string const &) const
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:157
edm::ParameterSet conf_
Definition: TrackAnalyzer.h:82
const double EtaMax[kNumberCalorimeter]
std::map< std::string, TkRecHitsPerSubDetMEs > TkRecHitsPerSubDetMEMap
std::string TopFolder_
Definition: TrackAnalyzer.h:74
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
const double EtaMin[kNumberCalorimeter]
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:277
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
std::string histname
void TrackAnalyzer::doReset ( )

Definition at line 1992 of file TrackAnalyzer.cc.

References Chi2oNDF_lumiFlag, NumberOfRecHitsPerTrack_lumiFlag, and HcalObjRepresent::Reset().

Referenced by TrackingMonitor::beginLuminosityBlock().

1992  {
1993  TkParameterMEs tkmes;
1996 }
MonitorElement * Chi2oNDF_lumiFlag
MonitorElement * NumberOfRecHitsPerTrack_lumiFlag
void Reset(std::vector< TH2F > &depth)
void TrackAnalyzer::doSoftReset ( DQMStore dqmStore_)

Definition at line 1984 of file TrackAnalyzer.cc.

References Chi2oNDF, NumberOfRecHitsPerTrack, and DQMStore::softReset().

1984  {
1985  TkParameterMEs tkmes;
1986  dqmStore_->softReset(Chi2oNDF);
1987  dqmStore_->softReset(NumberOfRecHitsPerTrack);
1988 }
MonitorElement * NumberOfRecHitsPerTrack
void softReset(MonitorElement *me)
Definition: DQMStore.cc:3417
MonitorElement * Chi2oNDF
void TrackAnalyzer::fillHistosForEfficiencyFromHitPatter ( const reco::Track track,
const std::string  suffix,
const float  monitoring 
)
private

Definition at line 1259 of file TrackAnalyzer.cc.

References python.rootplot.argparse::category, reco::TrackBase::dxy(), HcalObjRepresent::Fill(), reco::TrackBase::hitPattern(), hits_bad_, hits_inactive_, hits_missing_, hits_total_, hits_valid_, AnalysisDataFormats_SUSYBSMObjects::hp, mps_fire::i, LogDebug, LaserDQM_cfi::mon, monName, listBenchmarks::pattern, and reco::TrackBase::pt().

Referenced by analyze().

1259  {
1260 
1261  int mon = -1;
1262  for (int i=0; i<monQuantity::END; i++) {
1263  if (monName[i] == suffix) mon = i;
1264  }
1265 
1266  // if (track.pt() > 1.0 && track.dxy() < 0.1 and monitoring > 0) {
1267  if (track.pt() > 1.0 && track.dxy() < 0.1 and monitoring > -9.) {
1268  auto hp = track.hitPattern();
1269  // Here hit_category is meant to iterate over
1270  // reco::HitPattern::HitCategory, defined here:
1271  // http://cmslxr.fnal.gov/dxr/CMSSW/source/DataFormats/TrackReco/interface/HitPattern.h
1272  for (unsigned int category = 0; category < 3; ++category) {
1273  for (int hit = 0; hit < hp.numberOfHits((reco::HitPattern::HitCategory)(category)); ++hit) {
1274  auto pattern = hp.getHitPattern((reco::HitPattern::HitCategory)(category), hit);
1275  // Boolean bad is missing simply because it is inferred and the only missing case.
1276  bool valid = hp.validHitFilter(pattern);
1277  bool missing = hp.missingHitFilter(pattern);
1278  bool inactive = hp.inactiveHitFilter(pattern);
1279  int hit_type = -1;
1280  hit_type = valid ? 0 :
1281  ( missing ? 1 :
1282  ( inactive ? 2 : 3));
1283  if (hits_valid_.find(Key(hp.getSubStructure(pattern), hp.getSubSubStructure(pattern), mon)) == hits_valid_.end()) {
1284  LogDebug("TrackAnalyzer") << "Invalid combination of detector and subdetector: ("
1285  << hp.getSubStructure(pattern) << ", "
1286  << hp.getSubSubStructure(pattern) << ", "
1287  << mon
1288  << "): ignoring it.\n";
1289  continue;
1290  }
1291  switch (hit_type) {
1292  case 0:
1293  hits_valid_[Key(hp.getSubStructure(pattern), hp.getSubSubStructure(pattern), mon)]->Fill(monitoring);
1294  hits_total_[Key(hp.getSubStructure(pattern), hp.getSubSubStructure(pattern), mon)]->Fill(monitoring);
1295  break;
1296  case 1:
1297  hits_missing_[Key(hp.getSubStructure(pattern), hp.getSubSubStructure(pattern), mon)]->Fill(monitoring);
1298  hits_total_[Key(hp.getSubStructure(pattern), hp.getSubSubStructure(pattern), mon)]->Fill(monitoring);
1299  break;
1300  case 2:
1301  hits_inactive_[Key(hp.getSubStructure(pattern), hp.getSubSubStructure(pattern), mon)]->Fill(monitoring);
1302  break;
1303  case 3:
1304  hits_bad_[Key(hp.getSubStructure(pattern), hp.getSubSubStructure(pattern), mon)]->Fill(monitoring);
1305  break;
1306  default:
1307  LogDebug("TrackAnalyzer") << "Invalid hit category used " << hit_type << " ignored\n";
1308  }
1309  }
1310  }
1311  }
1312 
1313 }
#define LogDebug(id)
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_valid_
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_bad_
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_total_
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
susybsm::HSCParticleRefProd hp
Definition: classes.h:27
double pt() const
track transverse momentum
Definition: TrackBase.h:616
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_inactive_
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:445
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_missing_
double dxy() const
dxy parameter. (This is the transverse impact parameter w.r.t. to (0,0,0) ONLY if refPoint is close t...
Definition: TrackBase.h:586
std::string monName[monQuantity::END]
void TrackAnalyzer::fillHistosForHitProperties ( const edm::EventSetup iSetup,
const reco::Track track,
std::string  sname 
)
private
void TrackAnalyzer::fillHistosForLScertification ( const edm::EventSetup iSetup,
const reco::Track track,
std::string  sname 
)
private
void TrackAnalyzer::fillHistosForState ( const edm::EventSetup iSetup,
const reco::Track track,
std::string  sname 
)
private

Definition at line 1652 of file TrackAnalyzer.cc.

References TransientTrackBuilder::build(), TrajectoryStateOnSurface::cartesianError(), TrajectoryStateOnSurface::charge(), reco::TrackBase::charge(), reco::TrackBase::chi2(), TrackAnalyzer::TkParameterMEs::Chi2oNDFVsEta, TrackAnalyzer::TkParameterMEs::Chi2oNDFVsNHits, TrackAnalyzer::TkParameterMEs::Chi2oNDFVsPhi, TrackAnalyzer::TkParameterMEs::Chi2oNDFVsPt, TrackAnalyzer::TkParameterMEs::Chi2oNDFVsTheta, TrackAnalyzer::TkParameterMEs::Chi2ProbVsEta, TrackAnalyzer::TkParameterMEs::Chi2ProbVsPhi, TrajectoryStateOnSurface::curvilinearError(), doAllPlots_, doThetaPlots_, doTrackPxPyPlots_, benchmark_cfg::errors, stringResolutionProvider_cfi::eta, PV3DBase< T, PVType, FrameType >::eta(), reco::TrackBase::eta(), etaerror, reco::TrackBase::etaError(), MonitorElement::Fill(), edm::EventSetup::get(), TrajectoryStateOnSurface::globalMomentum(), reco::TrackBase::hitPattern(), reco::TransientTrack::impactPointState(), reco::TransientTrack::innermostMeasurementState(), reco::Track::innerPosition(), createfilelist::int, PV3DBase< T, PVType, FrameType >::mag(), CartesianTrajectoryError::matrix(), CurvilinearTrajectoryError::matrix(), reco::TrackBase::ndof(), MuonTCMETValueMapProducer_cff::nLayers, reco::TrackBase::normalizedChi2(), reco::HitPattern::numberOfHits(), TrackAnalyzer::TkParameterMEs::NumberOfLayersPerTrackVsEta, TrackAnalyzer::TkParameterMEs::NumberOfLayersPerTrackVsPhi, TrackAnalyzer::TkParameterMEs::NumberOfLayersPerTrackVsTheta, TrackAnalyzer::TkParameterMEs::NumberOfRecHitsPerTrackVsEta, TrackAnalyzer::TkParameterMEs::NumberOfRecHitsPerTrackVsPhi, TrackAnalyzer::TkParameterMEs::NumberOfRecHitsPerTrackVsTheta, reco::TrackBase::numberOfValidHits(), TrackAnalyzer::TkParameterMEs::NumberOfValidRecHitsPerTrackVsEta, TrackAnalyzer::TkParameterMEs::NumberOfValidRecHitsPerTrackVsPhi, TrackAnalyzer::TkParameterMEs::NumberOfValidRecHitsPerTrackVsPt, reco::TransientTrack::outermostMeasurementState(), reco::Track::outerPosition(), AlCaHLTBitMon_ParallelJobs::p, reco::TrackBase::p(), PV3DBase< T, PVType, FrameType >::perp(), phi, PV3DBase< T, PVType, FrameType >::phi(), reco::TrackBase::phi(), reco::TrackBase::phiError(), funct::pow(), EnergyCorrector::pt, reco::TrackBase::pt(), reco::TrackBase::ptError(), reco::TrackBase::px(), reco::TrackBase::py(), reco::TrackBase::pz(), lumiQueryAPI::q, funct::sin(), mathSSE::sqrt(), PV3DBase< T, PVType, FrameType >::theta(), theta(), reco::TrackBase::theta(), TkParameterMEMap, reco::HitPattern::TRACK_HITS, reco::HitPattern::trackerLayersWithMeasurement(), TrackAnalyzer::TkParameterMEs::TrackEta, TrackAnalyzer::TkParameterMEs::TrackEtaErr, TrackAnalyzer::TkParameterMEs::TrackEtaPhi, TrackAnalyzer::TkParameterMEs::TrackEtaPhiInner, TrackAnalyzer::TkParameterMEs::TrackEtaPhiOuter, TrackAnalyzer::TkParameterMEs::TrackP, TrackAnalyzer::TkParameterMEs::TrackPErr, TrackAnalyzer::TkParameterMEs::TrackPhi, TrackAnalyzer::TkParameterMEs::TrackPhiErr, TrackAnalyzer::TkParameterMEs::TrackPt, TrackAnalyzer::TkParameterMEs::TrackPtErr, TrackAnalyzer::TkParameterMEs::TrackPtErrVsEta, TrackAnalyzer::TkParameterMEs::TrackPx, TrackAnalyzer::TkParameterMEs::TrackPxErr, TrackAnalyzer::TkParameterMEs::TrackPy, TrackAnalyzer::TkParameterMEs::TrackPyErr, TrackAnalyzer::TkParameterMEs::TrackPz, TrackAnalyzer::TkParameterMEs::TrackPzErr, TrackAnalyzer::TkParameterMEs::TrackQ, TrackAnalyzer::TkParameterMEs::TrackTheta, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by analyze().

1653 {
1654  //get the kinematic parameters
1655  double p, px, py, pz, pt, theta, phi, eta, q;
1656  double pxerror, pyerror, pzerror, pterror, perror, phierror, etaerror;
1657 
1658  auto phiIn = track.innerPosition().phi();
1659  auto etaIn = track.innerPosition().eta();
1660  auto phiOut = track.outerPosition().phi();
1661  auto etaOut = track.outerPosition().eta();
1662 
1663 
1664  if (sname == "default") {
1665 
1666  p = track.p();
1667  px = track.px();
1668  py = track.py();
1669  pz = track.pz();
1670  pt = track.pt();
1671  phi = track.phi();
1672  theta = track.theta();
1673  eta = track.eta();
1674  q = track.charge();
1675 
1676  pterror = (pt) ? track.ptError()/(pt*pt) : 0.0;
1677  pxerror = -1.0;
1678  pyerror = -1.0;
1679  pzerror = -1.0;
1680  perror = -1.0;
1681  phierror = track.phiError();
1682  etaerror = track.etaError();
1683 
1684  } else {
1685 
1687  iSetup.get<TransientTrackRecord>().get("TransientTrackBuilder",theB);
1688  reco::TransientTrack TransTrack = theB->build(track);
1689 
1691 
1692  if (sname == "OuterSurface") TSOS = TransTrack.outermostMeasurementState();
1693  else if (sname == "InnerSurface") TSOS = TransTrack.innermostMeasurementState();
1694  else if (sname == "ImpactPoint") TSOS = TransTrack.impactPointState();
1695 
1696  p = TSOS.globalMomentum().mag();
1697  px = TSOS.globalMomentum().x();
1698  py = TSOS.globalMomentum().y();
1699  pz = TSOS.globalMomentum().z();
1700  pt = TSOS.globalMomentum().perp();
1701  phi = TSOS.globalMomentum().phi();
1702  theta = TSOS.globalMomentum().theta();
1703  eta = TSOS.globalMomentum().eta();
1704  q = TSOS.charge();
1705 
1706  //get the error of the kinimatic parameters
1708  double partialPterror = errors(3,3)*pow(TSOS.globalMomentum().x(),2) + errors(4,4)*pow(TSOS.globalMomentum().y(),2);
1709  pterror = sqrt(partialPterror)/TSOS.globalMomentum().perp();
1710  pxerror = sqrt(errors(3,3))/TSOS.globalMomentum().x();
1711  pyerror = sqrt(errors(4,4))/TSOS.globalMomentum().y();
1712  pzerror = sqrt(errors(5,5))/TSOS.globalMomentum().z();
1713  perror = sqrt(partialPterror+errors(5,5)*pow(TSOS.globalMomentum().z(),2))/TSOS.globalMomentum().mag();
1714  phierror = sqrt(TSOS.curvilinearError().matrix()(2,2));
1715  etaerror = sqrt(TSOS.curvilinearError().matrix()(1,1))*fabs(sin(TSOS.globalMomentum().theta()));
1716 
1717  }
1718 
1719  std::map<std::string, TkParameterMEs>::iterator iPos = TkParameterMEMap.find(sname);
1720  if (iPos != TkParameterMEMap.end()) {
1721 
1722  TkParameterMEs tkmes = iPos->second;
1723 
1724  // momentum
1725  tkmes.TrackP->Fill(p);
1726  if (doTrackPxPyPlots_) {
1727  tkmes.TrackPx->Fill(px);
1728  tkmes.TrackPy->Fill(py);
1729  }
1730  tkmes.TrackPz->Fill(pz);
1731  tkmes.TrackPt->Fill(pt);
1732 
1733  // angles
1734  tkmes.TrackPhi->Fill(phi);
1735  tkmes.TrackEta->Fill(eta);
1736  tkmes.TrackEtaPhi->Fill(eta,phi);
1737  tkmes.TrackEtaPhiInner->Fill(etaIn,phiIn);
1738  tkmes.TrackEtaPhiOuter->Fill(etaOut,phiOut);
1739 
1740  if (doThetaPlots_) {
1741  tkmes.TrackTheta->Fill(theta);
1742  }
1743  tkmes.TrackQ->Fill(q);
1744 
1745  // errors
1746  tkmes.TrackPtErr->Fill(pterror);
1747  tkmes.TrackPtErrVsEta->Fill(eta,pterror);
1748  if (doTrackPxPyPlots_) {
1749  tkmes.TrackPxErr->Fill(pxerror);
1750  tkmes.TrackPyErr->Fill(pyerror);
1751  }
1752  tkmes.TrackPzErr->Fill(pzerror);
1753  tkmes.TrackPErr->Fill(perror);
1754  tkmes.TrackPhiErr->Fill(phierror);
1755  tkmes.TrackEtaErr->Fill(etaerror);
1756 
1757  int nRecHits = track.hitPattern().numberOfHits(reco::HitPattern::TRACK_HITS);
1758  int nValidRecHits = track.numberOfValidHits();
1759  // rec hits
1760  tkmes.NumberOfRecHitsPerTrackVsPhi->Fill(phi, nRecHits);
1761  if (doThetaPlots_) {
1762  tkmes.NumberOfRecHitsPerTrackVsTheta->Fill(theta,nRecHits);
1763  }
1764  tkmes.NumberOfRecHitsPerTrackVsEta->Fill(eta, nRecHits);
1765 
1766  tkmes.NumberOfValidRecHitsPerTrackVsPhi->Fill(phi, nValidRecHits);
1767  tkmes.NumberOfValidRecHitsPerTrackVsEta->Fill(eta, nValidRecHits);
1768  tkmes.NumberOfValidRecHitsPerTrackVsPt ->Fill(pt, nValidRecHits);
1769 
1771  // rec layers
1772  tkmes.NumberOfLayersPerTrackVsPhi->Fill(phi, nLayers);
1773  if (doThetaPlots_) {
1774  tkmes.NumberOfLayersPerTrackVsTheta->Fill(theta, nLayers);
1775  }
1776  tkmes.NumberOfLayersPerTrackVsEta->Fill(eta, nLayers);
1777 
1778  double chi2prob = TMath::Prob(track.chi2(),(int)track.ndof());
1779  double chi2oNDF = track.normalizedChi2();
1780 
1781  tkmes.Chi2oNDFVsEta->Fill(eta, chi2oNDF);
1782  tkmes.Chi2oNDFVsPt->Fill(pt, chi2oNDF);
1783  tkmes.Chi2oNDFVsNHits->Fill(nRecHits, chi2oNDF);
1784 
1785  if(doAllPlots_) {
1786 
1787  // general properties
1788  if (doThetaPlots_) {
1789  tkmes.Chi2oNDFVsTheta->Fill(theta, chi2oNDF);
1790  }
1791  tkmes.Chi2oNDFVsPhi->Fill(phi, chi2oNDF);
1792  tkmes.Chi2ProbVsPhi->Fill(phi, chi2prob);
1793  tkmes.Chi2ProbVsEta->Fill(eta, chi2prob);
1794  }
1795 
1796  }
1797 
1798 }
double p() const
momentum vector magnitude
Definition: TrackBase.h:610
T perp() const
Definition: PV3DBase.h:72
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
Definition: TrackBase.h:556
double theta() const
polar angle
Definition: TrackBase.h:574
const CurvilinearTrajectoryError & curvilinearError() const
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > AlgebraicSymMatrix66
Geom::Phi< T > phi() const
Definition: PV3DBase.h:69
const CartesianTrajectoryError cartesianError() const
Geom::Theta< T > theta() const
reco::TransientTrack build(const reco::Track *p) const
T y() const
Definition: PV3DBase.h:63
double etaError() const
error on eta
Definition: TrackBase.h:779
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:640
std::map< std::string, TkParameterMEs > TkParameterMEMap
double px() const
x coordinate of momentum vector
Definition: TrackBase.h:622
const math::XYZPoint & outerPosition() const
position of the outermost hit
Definition: Track.h:65
int trackerLayersWithMeasurement() const
Definition: HitPattern.cc:518
TrajectoryStateOnSurface innermostMeasurementState() const
Geom::Theta< T > theta() const
Definition: PV3DBase.h:75
const math::XYZPoint & innerPosition() const
position of the innermost hit
Definition: Track.h:55
T mag() const
Definition: PV3DBase.h:67
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:646
double chi2() const
chi-squared of the fit
Definition: TrackBase.h:544
double ndof() const
number of degrees of freedom of the fit
Definition: TrackBase.h:550
T sqrt(T t)
Definition: SSEVec.h:18
double pt() const
track transverse momentum
Definition: TrackBase.h:616
T z() const
Definition: PV3DBase.h:64
double ptError() const
error on Pt (set to 1000 TeV if charge==0 for safety)
Definition: TrackBase.h:758
double phiError() const
error on phi
Definition: TrackBase.h:785
unsigned short numberOfValidHits() const
number of valid hits found
Definition: TrackBase.h:815
TrajectoryStateOnSurface outermostMeasurementState() const
const AlgebraicSymMatrix66 & matrix() const
double pz() const
z coordinate of momentum vector
Definition: TrackBase.h:634
TrajectoryStateOnSurface TSOS
Definition: TestHits.cc:19
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:445
const T & get() const
Definition: EventSetup.h:56
T eta() const
Definition: PV3DBase.h:76
bool doTrackPxPyPlots_
const AlgebraicSymMatrix55 & matrix() const
GlobalVector globalMomentum() const
int charge() const
track electric charge
Definition: TrackBase.h:562
TrajectoryStateOnSurface impactPointState() const
Definition: errors.py:1
T x() const
Definition: PV3DBase.h:62
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
double py() const
y coordinate of momentum vector
Definition: TrackBase.h:628
int numberOfHits(HitCategory category) const
Definition: HitPattern.h:807
void TrackAnalyzer::fillHistosForTrackerSpecific ( const reco::Track track)
private

Definition at line 1901 of file TrackAnalyzer.cc.

References stringResolutionProvider_cfi::eta, reco::TrackBase::eta(), HcalObjRepresent::Fill(), reco::TrackBase::hitPattern(), reco::HitPattern::numberOfValidPixelBarrelHits(), reco::HitPattern::numberOfValidPixelEndcapHits(), reco::HitPattern::numberOfValidStripTECHits(), reco::HitPattern::numberOfValidStripTIBHits(), reco::HitPattern::numberOfValidStripTIDHits(), reco::HitPattern::numberOfValidStripTOBHits(), phi, reco::TrackBase::phi(), PixelSubdetector::PixelBarrel, reco::HitPattern::pixelBarrelLayersWithMeasurement(), PixelSubdetector::PixelEndcap, reco::HitPattern::pixelEndcapLayersWithMeasurement(), EnergyCorrector::pt, reco::TrackBase::pt(), reco::HitPattern::stripTECLayersWithMeasurement(), reco::HitPattern::stripTIBLayersWithMeasurement(), reco::HitPattern::stripTIDLayersWithMeasurement(), reco::HitPattern::stripTOBLayersWithMeasurement(), StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, TkRecHitsPerSubDetMEMap, and StripSubdetector::TOB.

Referenced by analyze().

1902 {
1903 
1904  double phi = track.phi();
1905  double eta = track.eta();
1906  double pt = track.pt();
1907 
1908  for ( std::map<std::string,TkRecHitsPerSubDetMEs>::iterator it = TkRecHitsPerSubDetMEMap.begin();
1909  it != TkRecHitsPerSubDetMEMap.end(); it++ ) {
1910 
1911  int nValidLayers = 0;
1912  int nValidRecHits = 0;
1913  int substr = it->second.detectorId;
1914  switch(substr) {
1915  case 0 :
1916  nValidLayers = track.hitPattern().pixelBarrelLayersWithMeasurement()
1917  + track.hitPattern().pixelEndcapLayersWithMeasurement(); // case 0: pixel
1918  nValidRecHits = track.hitPattern().numberOfValidPixelBarrelHits()
1919  + track.hitPattern().numberOfValidPixelEndcapHits(); // case 0: pixel
1920  break;
1921  case StripSubdetector::TIB :
1922  nValidLayers = track.hitPattern().stripTIBLayersWithMeasurement(); // case 3: strip TIB
1923  nValidRecHits = track.hitPattern().numberOfValidStripTIBHits(); // case 3: strip TIB
1924  break;
1925  case StripSubdetector::TID :
1926  nValidLayers = track.hitPattern().stripTIDLayersWithMeasurement(); // case 4: strip TID
1927  nValidRecHits = track.hitPattern().numberOfValidStripTIDHits(); // case 4: strip TID
1928  break;
1929  case StripSubdetector::TOB :
1930  nValidLayers = track.hitPattern().stripTOBLayersWithMeasurement(); // case 5: strip TOB
1931  nValidRecHits = track.hitPattern().numberOfValidStripTOBHits(); // case 5: strip TOB
1932  break;
1933  case StripSubdetector::TEC :
1934  nValidLayers = track.hitPattern().stripTECLayersWithMeasurement(); // case 6: strip TEC
1935  nValidRecHits = track.hitPattern().numberOfValidStripTECHits(); // case 6: strip TEC
1936  break;
1938  nValidLayers = track.hitPattern().pixelBarrelLayersWithMeasurement(); // case 1: pixel PXB
1939  nValidRecHits = track.hitPattern().numberOfValidPixelBarrelHits(); // case 1: pixel PXB
1940  break;
1942  nValidLayers = track.hitPattern().pixelEndcapLayersWithMeasurement(); // case 2: pixel PXF
1943  nValidRecHits = track.hitPattern().numberOfValidPixelEndcapHits(); // case 2: pixel PXF
1944  break;
1945  case 7 :
1946  nValidLayers = track.hitPattern().stripTIBLayersWithMeasurement() // case 7: strip
1950  nValidRecHits = track.hitPattern().numberOfValidStripTIBHits() // case 7: strip
1954  break;
1955  default :
1956  break;
1957  }
1958 
1959  //Fill Layers and RecHits
1960  it->second.NumberOfRecHitsPerTrack -> Fill(nValidRecHits);
1961  it->second.NumberOfRecHitsPerTrackVsPhi -> Fill(phi, nValidRecHits);
1962  it->second.NumberOfRecHitsPerTrackVsEta -> Fill(eta, nValidRecHits);
1963  it->second.NumberOfRecHitsPerTrackVsPt -> Fill(pt, nValidRecHits);
1964 
1965  it->second.NumberOfLayersPerTrack -> Fill(nValidLayers);
1966  it->second.NumberOfLayersPerTrackVsPhi -> Fill(phi, nValidLayers);
1967  it->second.NumberOfLayersPerTrackVsEta -> Fill(eta, nValidLayers);
1968  it->second.NumberOfLayersPerTrackVsPt -> Fill(pt, nValidLayers);
1969  }
1970 
1971 }
int stripTOBLayersWithMeasurement() const
Definition: HitPattern.cc:604
int stripTIBLayersWithMeasurement() const
Definition: HitPattern.cc:582
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:640
std::map< std::string, TkRecHitsPerSubDetMEs > TkRecHitsPerSubDetMEMap
int pixelEndcapLayersWithMeasurement() const
Definition: HitPattern.cc:570
int numberOfValidStripTOBHits() const
Definition: HitPattern.h:868
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:646
int numberOfValidPixelBarrelHits() const
Definition: HitPattern.h:843
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
int stripTIDLayersWithMeasurement() const
Definition: HitPattern.cc:593
double pt() const
track transverse momentum
Definition: TrackBase.h:616
int numberOfValidStripTIDHits() const
Definition: HitPattern.h:863
int numberOfValidStripTECHits() const
Definition: HitPattern.h:873
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:445
int pixelBarrelLayersWithMeasurement() const
Definition: HitPattern.cc:558
int numberOfValidStripTIBHits() const
Definition: HitPattern.h:858
int numberOfValidPixelEndcapHits() const
Definition: HitPattern.h:848
int stripTECLayersWithMeasurement() const
Definition: HitPattern.cc:615
void TrackAnalyzer::initHisto ( DQMStore::IBooker ibooker,
const edm::EventSetup iSetup 
)
virtual

Definition at line 163 of file TrackAnalyzer.cc.

References bookHistosForBeamSpot(), bookHistosForEfficiencyFromHitPatter(), bookHistosForHitProperties(), bookHistosForLScertification(), bookHistosForState(), bookHistosForTrackerSpecific(), conf_, doAllPlots_, doEffFromHitPatternVsBX_, doEffFromHitPatternVsLUMI_, doEffFromHitPatternVsPU_, doMeasurementStatePlots_, doTrackerSpecific_, edm::ParameterSet::getParameter(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by TrackingMonitor::bookHistograms().

164 {
165 
167  bookHistosForBeamSpot(ibooker);
171  if (doEffFromHitPatternVsLUMI_ || doAllPlots_) bookHistosForEfficiencyFromHitPatter(ibooker, iSetup, "VsSCALLUMI");
172  // if (doEffFromHitPatternVsLUMI_ || doAllPlots_) bookHistosForEfficiencyFromHitPatter(ibooker, iSetup, "VsPIXELLUMI");
173 
174  // book tracker specific related histograms
175  // ---------------------------------------------------------------------------------//
177 
178  // book state related histograms
179  // ---------------------------------------------------------------------------------//
181 
182  std::string StateName = conf_.getParameter<std::string>("MeasurementState");
183 
184  if (StateName == "All") {
185  bookHistosForState("OuterSurface", ibooker);
186  bookHistosForState("InnerSurface", ibooker);
187  bookHistosForState("ImpactPoint" , ibooker);
188  } else if (
189  StateName != "OuterSurface" &&
190  StateName != "InnerSurface" &&
191  StateName != "ImpactPoint" &&
192  StateName != "default"
193  ) {
194  bookHistosForState("default", ibooker);
195 
196  } else {
197  bookHistosForState(StateName, ibooker);
198  }
199 
200  }
201 }
T getParameter(std::string const &) const
bool doTrackerSpecific_
Definition: TrackAnalyzer.h:84
void bookHistosForLScertification(DQMStore::IBooker &ibooker)
edm::ParameterSet conf_
Definition: TrackAnalyzer.h:82
bool doEffFromHitPatternVsBX_
bool doMeasurementStatePlots_
Definition: TrackAnalyzer.h:90
bool doEffFromHitPatternVsPU_
void bookHistosForHitProperties(DQMStore::IBooker &ibooker)
void bookHistosForTrackerSpecific(DQMStore::IBooker &ibooker)
bool doEffFromHitPatternVsLUMI_
void bookHistosForBeamSpot(DQMStore::IBooker &ibooker)
void bookHistosForState(std::string sname, DQMStore::IBooker &ibooker)
void bookHistosForEfficiencyFromHitPatter(DQMStore::IBooker &ibooker, const edm::EventSetup &iSetup, const std::string suffix)
void TrackAnalyzer::initHistos ( )
private

Definition at line 83 of file TrackAnalyzer.cc.

References AbsDistanceOfClosestApproachToBS, algorithm, Chi2oNDF, Chi2oNDF_lumiFlag, Chi2oNDFVsEta, Chi2oNDFVsPhi, Chi2oNDFVsTheta, Chi2Prob, Chi2ProbVsEta, Chi2ProbVsPhi, DeltaZToPV, DistanceOfClosestApproach, DistanceOfClosestApproachToBS, DistanceOfClosestApproachToBSVsPhi, DistanceOfClosestApproachToPV, DistanceOfClosestApproachToPVVsPhi, 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().

84 {
85  Chi2 = nullptr;
86  Chi2Prob = nullptr;
87  Chi2ProbVsPhi = nullptr;
88  Chi2ProbVsEta = nullptr;
89  Chi2oNDF = nullptr;
90  Chi2oNDFVsEta = nullptr;
91  Chi2oNDFVsPhi = nullptr;
92  Chi2oNDFVsTheta = nullptr;
93 
94  NumberOfRecHitsPerTrack = nullptr;
97 
101 
103 
106 
107  DistanceOfClosestApproach = nullptr;
111  DeltaZToPV = nullptr;
117  xPointOfClosestApproach = nullptr;
120  yPointOfClosestApproach = nullptr;
123  zPointOfClosestApproach = nullptr;
125  algorithm = nullptr;
126  oriAlgo = nullptr;
127  stoppingSource = nullptr;
128  stoppingSourceVSeta = nullptr;
129  stoppingSourceVSphi = nullptr;
130  // TESTING
133 
134 // by Mia in order to deal w/ LS transitions
135  Chi2oNDF_lumiFlag = nullptr;
137 
139  //special Plots for HI DQM //SHOULD I ADD THE BOOL HERE??
141  LongDCASig = nullptr;
142  TransDCASig = nullptr;
143  dNdPhi_HighPurity = nullptr;
144  dNdEta_HighPurity = nullptr;
145  dNdPt_HighPurity = nullptr;
146  NhitVsEta_HighPurity = nullptr;
147  NhitVsPhi_HighPurity = nullptr;
148 
149  // IP significance
150  sipDxyToBS = nullptr;
151  sipDzToBS = nullptr;
152  sip3dToPV = nullptr;
153  sip2dToPV = nullptr;
154  sipDxyToPV = nullptr;
155  sipDzToPV = nullptr;
156 
157 }
MonitorElement * stoppingSourceVSphi
MonitorElement * DistanceOfClosestApproachToPVVsPhi
MonitorElement * NumberOfRecHitVsPhiVsEtaPerTrack
MonitorElement * stoppingSourceVSeta
MonitorElement * NumberOfValidRecHitsPerTrack
MonitorElement * Chi2oNDF_lumiFlag
MonitorElement * sip3dToPV
MonitorElement * NumberOfLostRecHitsPerTrack
MonitorElement * Chi2oNDFVsPhi
MonitorElement * Chi2ProbVsPhi
MonitorElement * DistanceOfClosestApproachVsPhi
MonitorElement * sipDzToBS
MonitorElement * NhitVsPhi_HighPurity
MonitorElement * NumberOfRecHitsPerTrackVsTheta
MonitorElement * algorithm
MonitorElement * DistanceOfClosestApproach
MonitorElement * NumberOfRecHitsPerTrack_lumiFlag
MonitorElement * DeltaZToPV
MonitorElement * NumberOfRecHitsPerTrack
MonitorElement * TESTDistanceOfClosestApproachToBSVsPhi
MonitorElement * NumberOfValidRecHitsPerTrackVsEta
MonitorElement * TransDCASig
MonitorElement * xPointOfClosestApproachVsZ0wrt000
MonitorElement * oriAlgo
MonitorElement * xPointOfClosestApproach
MonitorElement * Chi2oNDFVsTheta
MonitorElement * NumberOfRecHitsPerTrackVsPhi
MonitorElement * dNdPt_HighPurity
MonitorElement * xPointOfClosestApproachVsZ0wrtBS
MonitorElement * NumberOfValidRecHitsPerTrackVsPhi
MonitorElement * dNdPhi_HighPurity
MonitorElement * sip2dToPV
MonitorElement * sipDzToPV
MonitorElement * sipDxyToBS
MonitorElement * DistanceOfClosestApproachVsEta
MonitorElement * zPointOfClosestApproachVsPhi
MonitorElement * dNdEta_HighPurity
MonitorElement * stoppingSource
MonitorElement * sipDxyToPV
MonitorElement * yPointOfClosestApproachVsZ0wrtBS
MonitorElement * DistanceOfClosestApproachVsTheta
MonitorElement * DistanceOfClosestApproachToPV
MonitorElement * DistanceOfClosestApproachToBSVsPhi
MonitorElement * NhitVsEta_HighPurity
MonitorElement * yPointOfClosestApproachVsZ0wrt000
MonitorElement * TESTDistanceOfClosestApproachToBS
MonitorElement * NumberOfRecHitsPerTrackVsEta
MonitorElement * yPointOfClosestApproach
MonitorElement * Chi2Prob
Definition: Chi2.h:17
MonitorElement * AbsDistanceOfClosestApproachToBS
MonitorElement * zPointOfClosestApproach
MonitorElement * Chi2ProbVsEta
MonitorElement * DistanceOfClosestApproachToBS
MonitorElement * Chi2oNDF
MonitorElement * Chi2oNDFVsEta
MonitorElement * LongDCASig
void TrackAnalyzer::setBX ( const edm::Event iEvent)

Definition at line 971 of file TrackAnalyzer.cc.

References edm::EventBase::bunchCrossing(), and bx_.

Referenced by TrackingMonitor::analyze().

971  {
972  bx_ = iEvent.bunchCrossing();
973 }
int bunchCrossing() const
Definition: EventBase.h:64
unsigned int bx_
void TrackAnalyzer::setLumi ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)

Definition at line 976 of file TrackAnalyzer.cc.

References edmNew::DetSetVector< T >::begin(), GetLumi::CM2_TO_NANOBARN, edmNew::DetSetVector< T >::end(), edm::EventSetup::get(), edm::Event::getByToken(), edm::HandleBase::isValid(), TrackerTopology::layer(), lumi_factor_per_bx_, lumiscalersToken_, minNumberOfPixelsPerCluster_, minPixelClusterCharge_, pixel_lumi_, PixelSubdetector::PixelBarrel, hiDetachedTripletStep_cff::pixelClusters, pixelClustersToken_, edm::ESHandle< T >::product(), scal_lumi_, edmNew::DetSet< T >::size(), and DetId::subdetId().

Referenced by TrackingMonitor::analyze().

976  {
977  // as done by pixelLumi http://cmslxr.fnal.gov/source/DQM/PixelLumi/plugins/PixelLumiDQM.cc
978 
980  iEvent.getByToken(lumiscalersToken_, lumiScalers);
981  if ( lumiScalers.isValid() && lumiScalers->size() ) {
982  LumiScalersCollection::const_iterator scalit = lumiScalers->begin();
983  scal_lumi_ = scalit->instantLumi();
984  } else
985  scal_lumi_ = -1;
986 
988  iEvent.getByToken(pixelClustersToken_, pixelClusters);
989  if ( pixelClusters.isValid() ) {
990 
991  edm::ESHandle<TrackerTopology> tTopoHandle;
992  iSetup.get<TrackerTopologyRcd>().get(tTopoHandle);
993  const TrackerTopology* const tTopo = tTopoHandle.product();
994 
995  // Count the number of clusters with at least a minimum
996  // number of pixels per cluster and at least a minimum charge.
997  size_t numClusters = 0;
998  size_t tot = 0;
999 
1000  edmNew::DetSetVector<SiPixelCluster>::const_iterator pixCluDet = pixelClusters->begin();
1001  for ( ; pixCluDet!=pixelClusters->end(); ++pixCluDet) {
1002 
1003  DetId detid = pixCluDet->detId();
1004  size_t subdetid = detid.subdetId();
1005  // std::cout << tTopo->print(detid) << std::endl;
1006  if ( subdetid == (int) PixelSubdetector::PixelBarrel )
1007  if ( tTopo->layer(detid)==1 )
1008  continue;
1009 
1011  for ( ; pixClu != pixCluDet->end(); ++pixClu ) {
1012  ++tot;
1013  if ( (pixClu->size() >= minNumberOfPixelsPerCluster_) &&
1014  (pixClu->charge() >= minPixelClusterCharge_ ) ) {
1015  ++numClusters;
1016  }
1017  }
1018  }
1019  pixel_lumi_ = lumi_factor_per_bx_ * numClusters / GetLumi::CM2_TO_NANOBARN ; // ?!?!
1020  } else
1021  pixel_lumi_ = -1.;
1022 
1023 }
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
const_iterator end(bool update=false) const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:457
data_type const * const_iterator
Definition: DetSetNew.h:30
static double CM2_TO_NANOBARN
Definition: GetLumi.h:47
bool isValid() const
Definition: HandleBase.h:74
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:37
Definition: DetId.h:18
const T & get() const
Definition: EventSetup.h:56
int minNumberOfPixelsPerCluster_
unsigned int layer(const DetId &id) const
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClustersToken_
Definition: TrackAnalyzer.h:78
float minPixelClusterCharge_
edm::EDGetTokenT< LumiScalersCollection > lumiscalersToken_
Definition: TrackAnalyzer.h:79
size_type size() const
Definition: DetSetNew.h:87
float lumi_factor_per_bx_
Definition: TrackAnalyzer.h:80
T const * product() const
Definition: ESHandle.h:86
const_iterator begin(bool update=false) const
void TrackAnalyzer::setLumiFlag ( )

Definition at line 1975 of file TrackAnalyzer.cc.

References Chi2oNDF_lumiFlag, and NumberOfRecHitsPerTrack_lumiFlag.

Referenced by TrackingMonitor::bookHistograms().

1975  {
1976 
1977  TkParameterMEs tkmes;
1980 }
MonitorElement * Chi2oNDF_lumiFlag
MonitorElement * NumberOfRecHitsPerTrack_lumiFlag
void TrackAnalyzer::setNumberOfGoodVertices ( const edm::Event iEvent)

Definition at line 958 of file TrackAnalyzer.cc.

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

Referenced by TrackingMonitor::analyze().

958  {
959 
960  good_vertices_ = 0;
961 
962  edm::Handle<reco::VertexCollection> recoPrimaryVerticesHandle;
963  iEvent.getByToken(pvToken_, recoPrimaryVerticesHandle);
964  if (recoPrimaryVerticesHandle.isValid())
965  if (recoPrimaryVerticesHandle->size() > 0)
966  for (auto v : *recoPrimaryVerticesHandle)
967  if (v.ndof() >= pvNDOF_ && !v.isFake())
968  ++good_vertices_;
969 }
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:457
bool isValid() const
Definition: HandleBase.h:74
unsigned int good_vertices_
edm::EDGetTokenT< reco::VertexCollection > pvToken_
Definition: TrackAnalyzer.h:77
void TrackAnalyzer::undoSoftReset ( DQMStore dqmStore_)

Definition at line 2000 of file TrackAnalyzer.cc.

References Chi2oNDF, DQMStore::disableSoftReset(), and NumberOfRecHitsPerTrack.

2000  {
2001  TkParameterMEs tkmes;
2002  dqmStore_->disableSoftReset(Chi2oNDF);
2004 }
MonitorElement * NumberOfRecHitsPerTrack
void disableSoftReset(MonitorElement *me)
Definition: DQMStore.cc:3425
MonitorElement * Chi2oNDF

Member Data Documentation

MonitorElement* TrackAnalyzer::AbsDistanceOfClosestApproachToBS
private

Definition at line 354 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::algorithm
private

Definition at line 375 of file TrackAnalyzer.h.

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

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

Definition at line 76 of file TrackAnalyzer.h.

Referenced by analyze(), and TrackAnalyzer().

unsigned int TrackAnalyzer::bx_
private

Definition at line 450 of file TrackAnalyzer.h.

Referenced by analyze(), and setBX().

MonitorElement* TrackAnalyzer::Chi2
private

Definition at line 338 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::Chi2oNDF
private
MonitorElement* TrackAnalyzer::Chi2oNDF_lumiFlag
private
MonitorElement* TrackAnalyzer::Chi2oNDFVsEta = 0
private

Definition at line 344 of file TrackAnalyzer.h.

Referenced by initHistos().

MonitorElement* TrackAnalyzer::Chi2oNDFVsNHits = 0
private

Definition at line 342 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::Chi2oNDFVsPhi
private

Definition at line 345 of file TrackAnalyzer.h.

Referenced by initHistos().

MonitorElement* TrackAnalyzer::Chi2oNDFVsPt = 0
private

Definition at line 343 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::Chi2oNDFVsTheta
private

Definition at line 346 of file TrackAnalyzer.h.

Referenced by initHistos().

MonitorElement* TrackAnalyzer::Chi2Prob
private

Definition at line 339 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::Chi2ProbVsEta
private

Definition at line 348 of file TrackAnalyzer.h.

Referenced by initHistos().

MonitorElement* TrackAnalyzer::Chi2ProbVsPhi
private

Definition at line 349 of file TrackAnalyzer.h.

Referenced by initHistos().

MonitorElement* TrackAnalyzer::Chi2ProbVsTheta
private

Definition at line 350 of file TrackAnalyzer.h.

edm::ParameterSet TrackAnalyzer::conf_
private
MonitorElement* TrackAnalyzer::DeltaZToPV
private

Definition at line 356 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::DistanceOfClosestApproach
private

Definition at line 352 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::DistanceOfClosestApproachToBS
private

Definition at line 353 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::DistanceOfClosestApproachToBSVsPhi
private

Definition at line 359 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::DistanceOfClosestApproachToPV
private

Definition at line 355 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::DistanceOfClosestApproachToPVVsPhi
private

Definition at line 360 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::DistanceOfClosestApproachVsEta
private

Definition at line 361 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::DistanceOfClosestApproachVsPhi
private

Definition at line 358 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::DistanceOfClosestApproachVsTheta
private

Definition at line 357 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::dNdEta_HighPurity
private

Definition at line 391 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::dNdPhi_HighPurity
private

Definition at line 390 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::dNdPt_HighPurity
private

Definition at line 392 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::dNhitdPt_HighPurity
private

Definition at line 396 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

bool TrackAnalyzer::doAllPlots_
private
bool TrackAnalyzer::doBSPlots_
private

Definition at line 86 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForBeamSpot().

bool TrackAnalyzer::doDCAPlots_
private

Definition at line 88 of file TrackAnalyzer.h.

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

bool TrackAnalyzer::doDCAwrt000Plots_
private

Definition at line 108 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForBeamSpot().

bool TrackAnalyzer::doDCAwrtPVPlots_
private

Definition at line 107 of file TrackAnalyzer.h.

bool TrackAnalyzer::doEffFromHitPatternVsBX_
private

Definition at line 124 of file TrackAnalyzer.h.

Referenced by analyze(), and initHisto().

bool TrackAnalyzer::doEffFromHitPatternVsLUMI_
private

Definition at line 125 of file TrackAnalyzer.h.

Referenced by analyze(), and initHisto().

bool TrackAnalyzer::doEffFromHitPatternVsPU_
private

Definition at line 123 of file TrackAnalyzer.h.

Referenced by analyze(), and initHisto().

bool TrackAnalyzer::doGeneralPropertiesPlots_
private

Definition at line 89 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

bool TrackAnalyzer::doHIPlots_
private

Definition at line 116 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

bool TrackAnalyzer::doHitPropertiesPlots_
private

Definition at line 91 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

bool TrackAnalyzer::doLayersVsPhiVsEtaPerTrack_
private

Definition at line 95 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

bool TrackAnalyzer::doLumiAnalysis_
private

Definition at line 110 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForLScertification().

bool TrackAnalyzer::doMeasurementStatePlots_
private

Definition at line 90 of file TrackAnalyzer.h.

Referenced by analyze(), and initHisto().

bool TrackAnalyzer::doPVPlots_
private

Definition at line 87 of file TrackAnalyzer.h.

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

bool TrackAnalyzer::doRecHitsPerTrackProfile_
private

Definition at line 100 of file TrackAnalyzer.h.

bool TrackAnalyzer::doRecHitVsPhiVsEtaPerTrack_
private

Definition at line 92 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

bool TrackAnalyzer::doRecHitVsPtVsEtaPerTrack_
private

Definition at line 93 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

bool TrackAnalyzer::doSIPPlots_
private

Definition at line 119 of file TrackAnalyzer.h.

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

bool TrackAnalyzer::doTestPlots_
private

Definition at line 113 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForBeamSpot().

bool TrackAnalyzer::doThetaPlots_
private
bool TrackAnalyzer::doTrack2DChi2Plots_
private

Definition at line 99 of file TrackAnalyzer.h.

bool TrackAnalyzer::doTrackerSpecific_
private

Definition at line 84 of file TrackAnalyzer.h.

Referenced by analyze(), and initHisto().

bool TrackAnalyzer::doTrackLayersVsPhiVsEtaPerTrack_
private

Definition at line 98 of file TrackAnalyzer.h.

bool TrackAnalyzer::doTrackPxPyPlots_
private

Definition at line 104 of file TrackAnalyzer.h.

Referenced by bookHistosForState(), and fillHistosForState().

bool TrackAnalyzer::doTrackRecHitVsPhiVsEtaPerTrack_
private

Definition at line 96 of file TrackAnalyzer.h.

bool TrackAnalyzer::doTrackRecHitVsPtVsEtaPerTrack_
private

Definition at line 97 of file TrackAnalyzer.h.

unsigned int TrackAnalyzer::good_vertices_
private

Definition at line 449 of file TrackAnalyzer.h.

Referenced by analyze(), and setNumberOfGoodVertices().

std::string TrackAnalyzer::histname
private
std::unordered_map<Key, MonitorElement *, KeyHasher> TrackAnalyzer::hits_bad_
private
std::unordered_map<Key, MonitorElement *, KeyHasher> TrackAnalyzer::hits_inactive_
private
std::unordered_map<Key, MonitorElement *, KeyHasher> TrackAnalyzer::hits_missing_
private
std::unordered_map<Key, MonitorElement *, KeyHasher> TrackAnalyzer::hits_total_
private
std::unordered_map<Key, MonitorElement *, KeyHasher> TrackAnalyzer::hits_valid_
private
MonitorElement* TrackAnalyzer::LongDCASig
private

Definition at line 388 of file TrackAnalyzer.h.

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

float TrackAnalyzer::lumi_factor_per_bx_
private

Definition at line 80 of file TrackAnalyzer.h.

Referenced by setLumi(), and TrackAnalyzer().

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

Definition at line 79 of file TrackAnalyzer.h.

Referenced by setLumi(), and TrackAnalyzer().

int TrackAnalyzer::minNumberOfPixelsPerCluster_
private

Definition at line 128 of file TrackAnalyzer.h.

Referenced by setLumi().

float TrackAnalyzer::minPixelClusterCharge_
private

Definition at line 129 of file TrackAnalyzer.h.

Referenced by setLumi().

std::string TrackAnalyzer::monName[monQuantity::END] = { "", "VsBX", "VsPIXELLUMI", "VsSCALLUMI" }
private
MonitorElement* TrackAnalyzer::NhitVsEta_HighPurity
private

Definition at line 393 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::NhitVsPhi_HighPurity
private

Definition at line 394 of file TrackAnalyzer.h.

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

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

Definition at line 329 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::NumberOfLayersPerTrackVsEta
private

Definition at line 333 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::NumberOfLayersPerTrackVsPhi
private

Definition at line 331 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::NumberOfLayersPerTrackVsTheta
private

Definition at line 332 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::NumberOfLayersVsPhiVsEtaPerTrack[4] = { 0 , 0 , 0 , 0 }
private

Definition at line 335 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::NumberOfLostRecHitsPerTrack
private

Definition at line 287 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::NumberOfLostRecHitsPerTrackVsEta = 0
private

Definition at line 306 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::NumberOfLostRecHitsPerTrackVsPhi = 0
private

Definition at line 304 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::NumberOfLostRecHitsPerTrackVsPt = 0
private

Definition at line 307 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::NumberOfLostRecHitsPerTrackVsTheta = 0
private

Definition at line 305 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::NumberOfLostRecHitVsPhiVsEtaPerTrack = 0
private

Definition at line 308 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::NumberOfLostRecHitVsPtVsEtaPerTrack = 0
private

Definition at line 309 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::NumberOfMIRecHitsPerTrack = 0
private

Definition at line 288 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::NumberOfMIRecHitsPerTrackVsEta = 0
private

Definition at line 313 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::NumberOfMIRecHitsPerTrackVsPhi = 0
private

Definition at line 311 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::NumberOfMIRecHitsPerTrackVsPt = 0
private

Definition at line 314 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::NumberOfMIRecHitsPerTrackVsTheta = 0
private

Definition at line 312 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::NumberOfMIRecHitVsPhiVsEtaPerTrack = 0
private

Definition at line 315 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::NumberOfMIRecHitVsPtVsEtaPerTrack = 0
private

Definition at line 316 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::NumberOfMORecHitsPerTrack = 0
private

Definition at line 289 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::NumberOfMORecHitsPerTrackVsEta = 0
private

Definition at line 320 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::NumberOfMORecHitsPerTrackVsPhi = 0
private

Definition at line 318 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::NumberOfMORecHitsPerTrackVsPt = 0
private

Definition at line 321 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::NumberOfMORecHitsPerTrackVsTheta = 0
private

Definition at line 319 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::NumberOfMORecHitVsPhiVsEtaPerTrack = 0
private

Definition at line 322 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::NumberOfMORecHitVsPtVsEtaPerTrack = 0
private

Definition at line 323 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::NumberOfRecHitsPerTrack
private
MonitorElement* TrackAnalyzer::NumberOfRecHitsPerTrack_lumiFlag
private
MonitorElement* TrackAnalyzer::NumberOfRecHitsPerTrackVsEta = 0
private

Definition at line 294 of file TrackAnalyzer.h.

Referenced by initHistos().

MonitorElement* TrackAnalyzer::NumberOfRecHitsPerTrackVsPhi = 0
private

Definition at line 292 of file TrackAnalyzer.h.

Referenced by initHistos().

MonitorElement* TrackAnalyzer::NumberOfRecHitsPerTrackVsTheta = 0
private

Definition at line 293 of file TrackAnalyzer.h.

Referenced by initHistos().

MonitorElement* TrackAnalyzer::NumberOfRecHitVsPhiVsEtaPerTrack = 0
private

Definition at line 295 of file TrackAnalyzer.h.

Referenced by initHistos().

MonitorElement* TrackAnalyzer::NumberOfValidRecHitsPerTrack
private

Definition at line 286 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::NumberOfValidRecHitsPerTrackVsEta = 0
private

Definition at line 299 of file TrackAnalyzer.h.

Referenced by initHistos().

MonitorElement* TrackAnalyzer::NumberOfValidRecHitsPerTrackVsPhi = 0
private

Definition at line 297 of file TrackAnalyzer.h.

Referenced by initHistos().

MonitorElement* TrackAnalyzer::NumberOfValidRecHitsPerTrackVsPt = 0
private

Definition at line 300 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::NumberOfValidRecHitsPerTrackVsTheta = 0
private

Definition at line 298 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::NumberOfValidRecHitVsPhiVsEtaPerTrack = 0
private

Definition at line 301 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::NumberOfValidRecHitVsPtVsEtaPerTrack = 0
private

Definition at line 302 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement * TrackAnalyzer::oriAlgo
private

Definition at line 375 of file TrackAnalyzer.h.

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

float TrackAnalyzer::pixel_lumi_
private

Definition at line 451 of file TrackAnalyzer.h.

Referenced by setLumi().

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

Definition at line 78 of file TrackAnalyzer.h.

Referenced by setLumi(), and TrackAnalyzer().

MonitorElement* TrackAnalyzer::Ptdist_HighPurity
private

Definition at line 395 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

int TrackAnalyzer::pvNDOF_
private

Definition at line 126 of file TrackAnalyzer.h.

Referenced by setNumberOfGoodVertices().

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

Definition at line 77 of file TrackAnalyzer.h.

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

std::string TrackAnalyzer::qualityString_
private

Definition at line 130 of file TrackAnalyzer.h.

Referenced by analyze().

float TrackAnalyzer::scal_lumi_
private

Definition at line 452 of file TrackAnalyzer.h.

Referenced by analyze(), and setLumi().

MonitorElement* TrackAnalyzer::sip2dToPV
private

Definition at line 402 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::sip3dToPV
private

Definition at line 401 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::sipDxyToBS
private

Definition at line 399 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::sipDxyToPV
private

Definition at line 403 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::sipDzToBS
private

Definition at line 400 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::sipDzToPV
private

Definition at line 404 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::stoppingSource
private

Definition at line 376 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::stoppingSourceVSeta
private

Definition at line 377 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::stoppingSourceVSphi
private

Definition at line 378 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::TESTDistanceOfClosestApproachToBS
private

Definition at line 380 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::TESTDistanceOfClosestApproachToBSVsPhi
private

Definition at line 381 of file TrackAnalyzer.h.

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

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

Definition at line 282 of file TrackAnalyzer.h.

Referenced by bookHistosForState(), and fillHistosForState().

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

Definition at line 420 of file TrackAnalyzer.h.

Referenced by bookHistosForTrackerSpecific(), and fillHistosForTrackerSpecific().

std::string TrackAnalyzer::TopFolder_
private
MonitorElement* TrackAnalyzer::TransDCASig
private

Definition at line 389 of file TrackAnalyzer.h.

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

bool TrackAnalyzer::useBPixLayer1_
private

Definition at line 127 of file TrackAnalyzer.h.

Referenced by TrackAnalyzer().

MonitorElement* TrackAnalyzer::ValidFractionPerTrack = 0
private

Definition at line 325 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::ValidFractionVsPhiVsEtaPerTrack = 0
private

Definition at line 326 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::xPointOfClosestApproach
private

Definition at line 362 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::xPointOfClosestApproachToPV
private

Definition at line 363 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::xPointOfClosestApproachVsZ0wrt000
private

Definition at line 364 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::xPointOfClosestApproachVsZ0wrtBS
private

Definition at line 365 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::xPointOfClosestApproachVsZ0wrtPV
private

Definition at line 366 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForBeamSpot().

MonitorElement* TrackAnalyzer::yPointOfClosestApproach
private

Definition at line 367 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::yPointOfClosestApproachToPV
private

Definition at line 368 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::yPointOfClosestApproachVsZ0wrt000
private

Definition at line 369 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::yPointOfClosestApproachVsZ0wrtBS
private

Definition at line 370 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::yPointOfClosestApproachVsZ0wrtPV
private

Definition at line 371 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForBeamSpot().

MonitorElement* TrackAnalyzer::zPointOfClosestApproach
private

Definition at line 372 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::zPointOfClosestApproachToPV
private

Definition at line 373 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::zPointOfClosestApproachVsPhi
private

Definition at line 374 of file TrackAnalyzer.h.

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