CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Member Functions | 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 setLumiFlag ()
 
void setNumberOfGoodVertices (const edm::Event &)
 
 TrackAnalyzer (const edm::ParameterSet &)
 
 TrackAnalyzer (const edm::ParameterSet &, edm::ConsumesCollector &iC)
 
void undoSoftReset (DQMStore *dqmStore_)
 
virtual ~TrackAnalyzer ()
 

Private Member Functions

void bookHistosForBeamSpot (DQMStore::IBooker &ibooker)
 
void bookHistosForEfficiencyFromHitPatter (DQMStore::IBooker &ibooker, const edm::EventSetup &iSetup)
 
void bookHistosForHitProperties (DQMStore::IBooker &ibooker)
 
void bookHistosForLScertification (DQMStore::IBooker &ibooker)
 
void bookHistosForState (std::string sname, DQMStore::IBooker &ibooker)
 
void bookHistosForTrackerSpecific (DQMStore::IBooker &ibooker)
 
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

MonitorElementalgorithm
 
edm::EDGetTokenT< reco::BeamSpotbeamSpotToken_
 
MonitorElementChi2
 
MonitorElementChi2oNDF
 
MonitorElementChi2oNDF_lumiFlag
 
MonitorElementChi2oNDFVsEta
 
MonitorElementChi2oNDFVsPhi
 
MonitorElementChi2oNDFVsTheta
 
MonitorElementChi2Prob
 
MonitorElementChi2ProbVsEta
 
MonitorElementChi2ProbVsPhi
 
MonitorElementChi2ProbVsTheta
 
edm::ParameterSet conf_
 
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 doEffFromHitPattern_
 
bool doGeneralPropertiesPlots_
 
bool doHIPlots_
 
bool doHitPropertiesPlots_
 
bool doLayersVsPhiVsEtaPerTrack_
 
bool doLumiAnalysis_
 
bool doMeasurementStatePlots_
 
bool doPVPlots_
 
bool doRecHitsPerTrackProfile_
 
bool doRecHitVsPhiVsEtaPerTrack_
 
bool doSIPPlots_
 
bool doTestPlots_
 
bool doThetaPlots_
 
bool doTrack2DChi2Plots_
 
bool doTrackerSpecific_
 
bool doTrackLayersVsPhiVsEtaPerTrack_
 
bool doTrackPxPyPlots_
 
bool doTrackRecHitVsPhiVsEtaPerTrack_
 
unsigned int good_vertices_
 
std::string histname
 
std::unordered_map< Key,
MonitorElement *, KeyHasher
hits_bad_
 
std::unordered_map< Key,
MonitorElement *, KeyHasher
hits_inactive_
 
std::unordered_map< Key,
MonitorElement *, KeyHasher
hits_missing_
 
std::unordered_map< Key,
MonitorElement *, KeyHasher
hits_total_
 
std::unordered_map< Key,
MonitorElement *, KeyHasher
hits_valid_
 
MonitorElementLongDCASig
 
MonitorElementNhitVsEta_HighPurity
 
MonitorElementNhitVsPhi_HighPurity
 
MonitorElementNumberOfLayersPerTrack [4] = { 0 , 0 , 0 , 0 }
 
MonitorElementNumberOfLayersPerTrackVsEta
 
MonitorElementNumberOfLayersPerTrackVsPhi
 
MonitorElementNumberOfLayersPerTrackVsTheta
 
MonitorElementNumberOfLayersVsPhiVsEtaPerTrack [4] = { 0 , 0 , 0 , 0 }
 
MonitorElementNumberOfLostRecHitsPerTrack
 
MonitorElementNumberOfLostRecHitsPerTrackVsEta = 0
 
MonitorElementNumberOfLostRecHitsPerTrackVsPhi = 0
 
MonitorElementNumberOfLostRecHitsPerTrackVsTheta = 0
 
MonitorElementNumberOfLostRecHitVsPhiVsEtaPerTrack = 0
 
MonitorElementNumberOfMIRecHitsPerTrack = 0
 
MonitorElementNumberOfMIRecHitsPerTrackVsEta = 0
 
MonitorElementNumberOfMIRecHitsPerTrackVsPhi = 0
 
MonitorElementNumberOfMIRecHitsPerTrackVsTheta = 0
 
MonitorElementNumberOfMIRecHitVsPhiVsEtaPerTrack = 0
 
MonitorElementNumberOfMORecHitsPerTrack = 0
 
MonitorElementNumberOfMORecHitsPerTrackVsEta = 0
 
MonitorElementNumberOfMORecHitsPerTrackVsPhi = 0
 
MonitorElementNumberOfMORecHitsPerTrackVsTheta = 0
 
MonitorElementNumberOfMORecHitVsPhiVsEtaPerTrack = 0
 
MonitorElementNumberOfRecHitsPerTrack
 
MonitorElementNumberOfRecHitsPerTrack_lumiFlag
 
MonitorElementNumberOfRecHitsPerTrackVsEta = 0
 
MonitorElementNumberOfRecHitsPerTrackVsPhi = 0
 
MonitorElementNumberOfRecHitsPerTrackVsTheta = 0
 
MonitorElementNumberOfRecHitVsPhiVsEtaPerTrack = 0
 
MonitorElementNumberOfValidRecHitsPerTrack
 
MonitorElementNumberOfValidRecHitsPerTrackVsEta = 0
 
MonitorElementNumberOfValidRecHitsPerTrackVsPhi = 0
 
MonitorElementNumberOfValidRecHitsPerTrackVsTheta = 0
 
MonitorElementNumberOfValidRecHitVsPhiVsEtaPerTrack = 0
 
MonitorElementoriAlgo
 
MonitorElementPtdist_HighPurity
 
int pvNDOF_
 
edm::EDGetTokenT
< reco::VertexCollection
pvToken_
 
std::string qualityString_
 
MonitorElementsip2dToPV
 
MonitorElementsip3dToPV
 
MonitorElementsipDxyToBS
 
MonitorElementsipDxyToPV
 
MonitorElementsipDzToBS
 
MonitorElementsipDzToPV
 
MonitorElementstoppingSource
 
MonitorElementstoppingSourceVSeta
 
MonitorElementstoppingSourceVSphi
 
MonitorElementTESTDistanceOfClosestApproachToBS
 
MonitorElementTESTDistanceOfClosestApproachToBSVsPhi
 
std::map< std::string,
TkParameterMEs
TkParameterMEMap
 
std::map< std::string,
TkRecHitsPerSubDetMEs
TkRecHitsPerSubDetMEMap
 
std::string TopFolder_
 
MonitorElementTransDCASig
 
MonitorElementValidFractionPerTrack = 0
 
MonitorElementValidFractionVsPhiVsEtaPerTrack = 0
 
MonitorElementxPointOfClosestApproach
 
MonitorElementxPointOfClosestApproachToPV
 
MonitorElementxPointOfClosestApproachVsZ0wrt000
 
MonitorElementxPointOfClosestApproachVsZ0wrtBS
 
MonitorElementxPointOfClosestApproachVsZ0wrtPV
 
MonitorElementyPointOfClosestApproach
 
MonitorElementyPointOfClosestApproachToPV
 
MonitorElementyPointOfClosestApproachVsZ0wrt000
 
MonitorElementyPointOfClosestApproachVsZ0wrtBS
 
MonitorElementyPointOfClosestApproachVsZ0wrtPV
 
MonitorElementzPointOfClosestApproach
 
MonitorElementzPointOfClosestApproachToPV
 
MonitorElementzPointOfClosestApproachVsPhi
 

Detailed Description

Definition at line 32 of file TrackAnalyzer.h.

Constructor & Destructor Documentation

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

Definition at line 23 of file TrackAnalyzer.cc.

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

24  : conf_( iConfig )
25  , doTrackerSpecific_ ( conf_.getParameter<bool>("doTrackerSpecific") )
26  , doAllPlots_ ( conf_.getParameter<bool>("doAllPlots") )
27  , doBSPlots_ ( conf_.getParameter<bool>("doBeamSpotPlots") )
28  , doPVPlots_ ( conf_.getParameter<bool>("doPrimaryVertexPlots") )
29  , doDCAPlots_ ( conf_.getParameter<bool>("doDCAPlots") )
30  , doGeneralPropertiesPlots_ ( conf_.getParameter<bool>("doGeneralPropertiesPlots") )
31  , doMeasurementStatePlots_ ( conf_.getParameter<bool>("doMeasurementStatePlots") )
32  , doHitPropertiesPlots_ ( conf_.getParameter<bool>("doHitPropertiesPlots") )
33  , doRecHitVsPhiVsEtaPerTrack_ ( conf_.getParameter<bool>("doRecHitVsPhiVsEtaPerTrack") )
34  , doLayersVsPhiVsEtaPerTrack_ ( conf_.getParameter<bool>("doLayersVsPhiVsEtaPerTrack") )
35  , doRecHitsPerTrackProfile_ ( conf_.getParameter<bool>("doRecHitsPerTrackProfile") )
36  , doThetaPlots_ ( conf_.getParameter<bool>("doThetaPlots") )
37  , doTrackPxPyPlots_ ( conf_.getParameter<bool>("doTrackPxPyPlots") )
38  , doDCAwrtPVPlots_ ( conf_.getParameter<bool>("doDCAwrtPVPlots") )
39  , doDCAwrt000Plots_ ( conf_.getParameter<bool>("doDCAwrt000Plots") )
40  , doLumiAnalysis_ ( conf_.getParameter<bool>("doLumiAnalysis") )
41  , doTestPlots_ ( conf_.getParameter<bool>("doTestPlots") )
42  , doHIPlots_ ( conf_.getParameter<bool>("doHIPlots") )
43  , doSIPPlots_ ( conf_.getParameter<bool>("doSIPPlots") )
44  , doEffFromHitPattern_ ( conf_.getParameter<bool>("doEffFromHitPattern") )
45  , pvNDOF_ ( conf_.getParameter<int> ("pvNDOF") )
46  , qualityString_ ( conf_.getParameter<std::string>("qualityString"))
47  , good_vertices_(0)
48 {
49  initHistos();
50  TopFolder_ = conf_.getParameter<std::string>("FolderName");
51 }
T getParameter(std::string const &) const
bool doTrackerSpecific_
Definition: TrackAnalyzer.h:75
edm::ParameterSet conf_
Definition: TrackAnalyzer.h:73
bool doGeneralPropertiesPlots_
Definition: TrackAnalyzer.h:80
bool doHitPropertiesPlots_
Definition: TrackAnalyzer.h:82
bool doRecHitVsPhiVsEtaPerTrack_
Definition: TrackAnalyzer.h:83
bool doMeasurementStatePlots_
Definition: TrackAnalyzer.h:81
std::string qualityString_
bool doDCAwrt000Plots_
Definition: TrackAnalyzer.h:97
std::string TopFolder_
Definition: TrackAnalyzer.h:68
bool doLumiAnalysis_
Definition: TrackAnalyzer.h:99
bool doDCAwrtPVPlots_
Definition: TrackAnalyzer.h:96
bool doEffFromHitPattern_
bool doTrackPxPyPlots_
Definition: TrackAnalyzer.h:93
bool doLayersVsPhiVsEtaPerTrack_
Definition: TrackAnalyzer.h:85
unsigned int good_vertices_
bool doRecHitsPerTrackProfile_
Definition: TrackAnalyzer.h:89
TrackAnalyzer::TrackAnalyzer ( const edm::ParameterSet iConfig,
edm::ConsumesCollector iC 
)

Definition at line 53 of file TrackAnalyzer.cc.

References beamSpotToken_, conf_, edm::ConsumesCollector::consumes(), edm::ParameterSet::getParameter(), and pvToken_.

54  : TrackAnalyzer(iConfig)
55 {
56  edm::InputTag bsSrc = conf_.getParameter<edm::InputTag>("beamSpot");
57  edm::InputTag primaryVertexInputTag = conf_.getParameter<edm::InputTag>("primaryVertex");
59  pvToken_ = iC.consumes<reco::VertexCollection>(primaryVertexInputTag);
60 }
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
T getParameter(std::string const &) const
edm::ParameterSet conf_
Definition: TrackAnalyzer.h:73
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
Definition: TrackAnalyzer.h:70
TrackAnalyzer(const edm::ParameterSet &)
edm::EDGetTokenT< reco::VertexCollection > pvToken_
Definition: TrackAnalyzer.h:71
TrackAnalyzer::~TrackAnalyzer ( )
virtual

Definition at line 138 of file TrackAnalyzer.cc.

139 {
140 }

Member Function Documentation

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

Definition at line 850 of file TrackAnalyzer.cc.

References reco::TrackBase::algo(), algorithm, beamSpotToken_, python.rootplot.argparse::category, reco::TrackBase::chi2(), HLT_FULL_cff::chi2, Chi2oNDF, Chi2oNDF_lumiFlag, Chi2Prob, conf_, reco::TrackBase::d0(), reco::TrackBase::d0Error(), dir, DistanceOfClosestApproach, DistanceOfClosestApproachToBS, DistanceOfClosestApproachToBSVsPhi, DistanceOfClosestApproachToPV, DistanceOfClosestApproachToPVVsPhi, DistanceOfClosestApproachVsEta, DistanceOfClosestApproachVsPhi, DistanceOfClosestApproachVsTheta, dNdEta_HighPurity, dNdPhi_HighPurity, dNdPt_HighPurity, dNhitdPt_HighPurity, doAllPlots_, doBSPlots_, doDCAPlots_, doDCAwrt000Plots_, doEffFromHitPattern_, doGeneralPropertiesPlots_, doHIPlots_, doHitPropertiesPlots_, doLayersVsPhiVsEtaPerTrack_, doLumiAnalysis_, doMeasurementStatePlots_, doPVPlots_, doRecHitVsPhiVsEtaPerTrack_, doSIPPlots_, doTestPlots_, doThetaPlots_, doTrackerSpecific_, reco::TrackBase::dxy(), reco::TrackBase::dxyError(), reco::TrackBase::dz(), reco::TrackBase::dzError(), reco::TrackBase::eta(), MonitorElement::Fill(), HcalObjRepresent::Fill(), fillHistosForState(), fillHistosForTrackerSpecific(), edm::EventSetup::get(), edm::Event::getByToken(), MonitorElement::getNbinsX(), edm::ParameterSet::getParameter(), good_vertices_, reco::TrackBase::hitPattern(), hits_bad_, hits_inactive_, hits_missing_, hits_total_, hits_valid_, AnalysisDataFormats_SUSYBSMObjects::hp, i, reco::Track::innerPosition(), edm::HandleBase::isValid(), LogDebug, LongDCASig, bookConverter::max, combine::missing, reco::HitPattern::MISSING_INNER_HITS, reco::HitPattern::MISSING_OUTER_HITS, reco::TrackBase::ndof(), NhitVsEta_HighPurity, NhitVsPhi_HighPurity, reco::TrackBase::normalizedChi2(), reco::HitPattern::numberOfHits(), NumberOfLayersPerTrack, NumberOfLayersVsPhiVsEtaPerTrack, reco::TrackBase::numberOfLostHits(), NumberOfLostRecHitsPerTrack, NumberOfLostRecHitVsPhiVsEtaPerTrack, reco::HitPattern::numberOfLostTrackerHits(), NumberOfMIRecHitsPerTrack, NumberOfMIRecHitVsPhiVsEtaPerTrack, NumberOfMORecHitsPerTrack, NumberOfMORecHitVsPhiVsEtaPerTrack, NumberOfRecHitsPerTrack, NumberOfRecHitsPerTrack_lumiFlag, reco::TrackBase::numberOfValidHits(), NumberOfValidRecHitsPerTrack, NumberOfValidRecHitVsPhiVsEtaPerTrack, reco::HitPattern::numberOfValidStripLayersWithMonoAndStereo(), oriAlgo, reco::TrackBase::originalAlgo(), reco::Track::outerPosition(), listBenchmarks::pattern, phi, reco::TrackBase::phi(), reco::HitPattern::pixelLayersWithMeasurement(), reco::BeamSpot::position(), reco::Vertex::position(), 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(), 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().

851 {
852  double phi = track.phi();
853  // double eta = track.eta();
854  auto phiIn = track.innerPosition().phi();
855  auto etaIn = track.innerPosition().eta();
856  auto phiOut = track.outerPosition().phi();
857  auto etaOut = track.outerPosition().eta();
858 
859  int nRecHits = track.hitPattern().numberOfHits(reco::HitPattern::TRACK_HITS);
860  int nValidRecHits = track.numberOfValidHits();
861  int nLostRecHits = track.numberOfLostHits();
864 
865  double chi2 = track.chi2();
866  double chi2prob = TMath::Prob(track.chi2(),(int)track.ndof());
867  double chi2oNDF = track.normalizedChi2();
868 
870  // rec hits
871  NumberOfRecHitsPerTrack -> Fill(nRecHits);
872  NumberOfValidRecHitsPerTrack-> Fill(nValidRecHits);
873  NumberOfLostRecHitsPerTrack -> Fill(nLostRecHits);
874  NumberOfMIRecHitsPerTrack -> Fill(nLostIn);
875  NumberOfMORecHitsPerTrack -> Fill(nLostOut);
877 
878 
879  // 2D plots
881  NumberOfValidRecHitVsPhiVsEtaPerTrack->Fill(etaIn,phiIn,nValidRecHits);
882  NumberOfLostRecHitVsPhiVsEtaPerTrack->Fill(etaIn,phiIn,nLostRecHits);
883  NumberOfMIRecHitVsPhiVsEtaPerTrack->Fill(etaIn,phiIn,nLostIn);
884  NumberOfMORecHitVsPhiVsEtaPerTrack->Fill(etaOut,phiOut,nLostOut);
885  ValidFractionVsPhiVsEtaPerTrack -> Fill(etaIn,phiIn,track.validFraction());
886  }
887 
888  int nLayers[4] = { track.hitPattern().trackerLayersWithMeasurement(),
892  };
893 
894  // layers
895  for (int i=0;i<4;++i) NumberOfLayersPerTrack[i]->Fill(nLayers[i]);
896 
897  // 2D plots
899  for (int i=0;i<4;++i) NumberOfLayersVsPhiVsEtaPerTrack[i]->Fill(etaIn,phiIn,nLayers[i]);
900 
901  }
902 
904  if (track.pt() > 1.0 && track.dxy() < 0.1 and good_vertices_ > 0) {
905  auto hp = track.hitPattern();
906  // Here hit_category is meant to iterate over
907  // reco::HitPattern::HitCategory, defined here:
908  // http://cmslxr.fnal.gov/dxr/CMSSW/source/DataFormats/TrackReco/interface/HitPattern.h
909  for (unsigned int category = 0; category < 3; ++category) {
910  for (int hit = 0; hit < hp.numberOfHits((reco::HitPattern::HitCategory)(category)); ++hit) {
911  auto pattern = hp.getHitPattern((reco::HitPattern::HitCategory)(category), hit);
912  // Boolean bad is missing simply because it is inferred and the only missing case.
913  bool valid = hp.validHitFilter(pattern);
914  bool missing = hp.missingHitFilter(pattern);
915  bool inactive = hp.inactiveHitFilter(pattern);
916  int hit_type = -1;
917  hit_type = valid ? 0 :
918  ( missing ? 1 :
919  ( inactive ? 2 : 3));
920  if (hits_valid_.find(Key(hp.getSubStructure(pattern), hp.getSubSubStructure(pattern))) == hits_valid_.end()) {
921  LogDebug("TrackAnalyzer") << "Invalid combination of detector and subdetector: ("
922  << hp.getSubStructure(pattern) << ", "
923  << hp.getSubSubStructure(pattern)
924  << "): ignoring it.\n";
925  continue;
926  }
927  switch (hit_type) {
928  case 0:
929  hits_valid_[Key(hp.getSubStructure(pattern), hp.getSubSubStructure(pattern))]->Fill(good_vertices_);
930  hits_total_[Key(hp.getSubStructure(pattern), hp.getSubSubStructure(pattern))]->Fill(good_vertices_);
931  break;
932  case 1:
933  hits_missing_[Key(hp.getSubStructure(pattern), hp.getSubSubStructure(pattern))]->Fill(good_vertices_);
934  hits_total_[Key(hp.getSubStructure(pattern), hp.getSubSubStructure(pattern))]->Fill(good_vertices_);
935  break;
936  case 2:
937  hits_inactive_[Key(hp.getSubStructure(pattern), hp.getSubSubStructure(pattern))]->Fill(good_vertices_);
938  break;
939  case 3:
940  hits_bad_[Key(hp.getSubStructure(pattern), hp.getSubSubStructure(pattern))]->Fill(good_vertices_);
941  break;
942  default:
943  LogDebug("TrackAnalyzer") << "Invalid hit category used " << hit_type << " ignored\n";
944  }
945  }
946  }
947  }
948  }
949 
951  // fitting
952  Chi2 -> Fill(chi2);
953  Chi2Prob -> Fill(chi2prob);
954  Chi2oNDF -> Fill(chi2oNDF);
955 
956  // DCA
957  // temporary patch in order to put back those MEs in Muon Workspace
958  if (doDCAPlots_) {
959  if (doDCAwrt000Plots_) {
961  DistanceOfClosestApproachVsPhi->Fill(phi, track.dxy());
962  }
963 
964  // PCA
968  }
969 
970  // algorithm
971  algorithm->Fill(static_cast<double>(track.algo()));
972  oriAlgo->Fill(static_cast<double>(track.originalAlgo()));
973 
974  // stopping source
975  int max = stoppingSource->getNbinsX();
976  double stop = track.stopReason() > max ? double(max-1) : static_cast<double>(track.stopReason());
977  stoppingSource->Fill(stop);
978  stoppingSourceVSeta->Fill(track.eta(),stop);
979  stoppingSourceVSphi->Fill(track.phi(),stop);
980  }
981 
982  if ( doLumiAnalysis_ ) {
984  Chi2oNDF_lumiFlag -> Fill(chi2oNDF);
985  }
986 
988 
989  edm::Handle<reco::BeamSpot> recoBeamSpotHandle;
990  iEvent.getByToken(beamSpotToken_,recoBeamSpotHandle);
991  const reco::BeamSpot& bs = *recoBeamSpotHandle;
992 
994  DistanceOfClosestApproachToBSVsPhi -> Fill(track.phi(), track.dxy(bs.position()));
995  zPointOfClosestApproachVsPhi -> Fill(track.phi(), track.vz());
996  xPointOfClosestApproachVsZ0wrt000 -> Fill(track.dz(), track.vx());
997  yPointOfClosestApproachVsZ0wrt000 -> Fill(track.dz(), track.vy());
998  xPointOfClosestApproachVsZ0wrtBS -> Fill(track.dz(bs.position()),(track.vx()-bs.position(track.vz()).x()));
999  yPointOfClosestApproachVsZ0wrtBS -> Fill(track.dz(bs.position()),(track.vy()-bs.position(track.vz()).y()));
1000  if (doTestPlots_) {
1001  TESTDistanceOfClosestApproachToBS -> Fill(track.dxy(bs.position(track.vz())));
1002  TESTDistanceOfClosestApproachToBSVsPhi -> Fill(track.phi(), track.dxy(bs.position(track.vz())));
1003  }
1004 
1005  if(doSIPPlots_) {
1006  sipDxyToBS->Fill(track.dxy(bs.position())/track.dxyError());
1007  sipDzToBS->Fill(track.dz(bs.position())/track.dzError());
1008  }
1009  }
1010 
1012  edm::Handle<reco::VertexCollection> recoPrimaryVerticesHandle;
1013  iEvent.getByToken(pvToken_,recoPrimaryVerticesHandle);
1014  if (recoPrimaryVerticesHandle.isValid() && recoPrimaryVerticesHandle->size() > 0) {
1015  const reco::Vertex& pv = (*recoPrimaryVerticesHandle)[0];
1016 
1017 
1019  //HI PLOTS///////
1021 
1022  if(doHIPlots_)
1023  {
1024  double longDCAsig = 0, transDCAsig = 0;
1025  double zerr2 = track.dzError()*track.dzError()+pv.zError()*pv.zError();
1026  double xyerr2 = track.d0Error()*track.d0Error()+pv.xError()*pv.yError();
1027  if(zerr2 > 0) longDCAsig = track.dz(pv.position())/zerr2;
1028  if(xyerr2 > 0) transDCAsig = track.dxy(pv.position())/xyerr2;
1029  LongDCASig->Fill(longDCAsig);
1030  TransDCASig->Fill(transDCAsig);
1031 
1032 
1033 
1034 
1036  {
1037  dNdEta_HighPurity->Fill(track.eta());
1038  dNdPhi_HighPurity->Fill(track.phi());
1039  dNdPt_HighPurity->Fill(track.ptError()/track.pt());
1040  NhitVsEta_HighPurity->Fill(track.eta(),track.numberOfValidHits());
1041  NhitVsPhi_HighPurity->Fill(track.phi(),track.numberOfValidHits());
1042  dNhitdPt_HighPurity->Fill(track.pt(),track.numberOfValidHits());
1043  Ptdist_HighPurity->Fill(track.pt());
1044  }//end of high quality tracks requirement
1045  }
1046 
1047 
1048  xPointOfClosestApproachToPV->Fill(track.vx()-pv.position().x());
1049  yPointOfClosestApproachToPV->Fill(track.vy()-pv.position().y());
1052  DistanceOfClosestApproachToPVVsPhi -> Fill(track.phi(), track.dxy(pv.position()));
1053  xPointOfClosestApproachVsZ0wrtPV -> Fill(track.dz(pv.position()),(track.vx()-pv.position().x()));
1054  yPointOfClosestApproachVsZ0wrtPV -> Fill(track.dz(pv.position()),(track.vy()-pv.position().y()));
1055 
1056 
1057  if(doSIPPlots_) {
1059  iSetup.get<TransientTrackRecord>().get("TransientTrackBuilder",theB);
1060  reco::TransientTrack transTrack = theB->build(track);
1061 
1062  GlobalVector dir(track.px(), track.py(), track.pz());
1063  std::pair<bool, Measurement1D> ip3d = IPTools::signedImpactParameter3D(transTrack, dir, pv);
1064  std::pair<bool, Measurement1D> ip2d = IPTools::signedTransverseImpactParameter(transTrack, dir, pv);
1065  if(ip3d.first) sip3dToPV->Fill(ip3d.second.value() / ip3d.second.error());
1066  if(ip2d.first) sip2dToPV->Fill(ip2d.second.value() / ip2d.second.error());
1067  sipDxyToPV->Fill(track.dxy(pv.position())/track.dxyError());
1068  sipDzToPV->Fill(track.dz(pv.position())/track.dzError());
1069  }
1070  }
1071  }
1072 
1073  if(doDCAPlots_ || doAllPlots_) {
1074  if (doDCAwrt000Plots_) {
1075  if (doThetaPlots_) {
1076  DistanceOfClosestApproachVsTheta->Fill(track.theta(), track.d0());
1077  }
1078  DistanceOfClosestApproachVsEta->Fill(track.eta(), track.d0());
1079  }
1080 
1081  }
1082 
1083  //Tracker Specific Histograms
1086  }
1087 
1089  std::string StateName = conf_.getParameter<std::string>("MeasurementState");
1090 
1091  if (StateName == "All") {
1092  fillHistosForState(iSetup, track, std::string("OuterSurface"));
1093  fillHistosForState(iSetup, track, std::string("InnerSurface"));
1094  fillHistosForState(iSetup, track, std::string("ImpactPoint"));
1095  } else if (
1096  StateName != "OuterSurface" &&
1097  StateName != "InnerSurface" &&
1098  StateName != "ImpactPoint" &&
1099  StateName != "default"
1100  ) {
1101  fillHistosForState(iSetup, track, std::string("default"));
1102  } else {
1103  fillHistosForState(iSetup, track, StateName);
1104  }
1105  }
1106 
1107  if ( doAllPlots_ ) {
1108  }
1109 
1110 }
#define LogDebug(id)
MonitorElement * stoppingSourceVSphi
T getParameter(std::string const &) const
dictionary missing
Definition: combine.py:4
MonitorElement * DistanceOfClosestApproachToPVVsPhi
const Point & referencePoint() const
Reference point on the track.
Definition: TrackBase.h:676
int i
Definition: DBlmapReader.cc:9
bool doTrackerSpecific_
Definition: TrackAnalyzer.h:75
MonitorElement * ValidFractionVsPhiVsEtaPerTrack
double d0Error() const
error on d0
Definition: TrackBase.h:797
MonitorElement * dNhitdPt_HighPurity
void fillHistosForTrackerSpecific(const reco::Track &track)
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_valid_
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
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_bad_
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:462
double zError() const
error on z
Definition: Vertex.h:111
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:73
bool doGeneralPropertiesPlots_
Definition: TrackAnalyzer.h:80
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
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:508
bool doHitPropertiesPlots_
Definition: TrackAnalyzer.h:82
MonitorElement * DistanceOfClosestApproach
const math::XYZPoint & outerPosition() const
position of the outermost hit
Definition: Track.h:65
bool doRecHitVsPhiVsEtaPerTrack_
Definition: TrackAnalyzer.h:83
MonitorElement * NumberOfRecHitsPerTrack_lumiFlag
int trackerLayersWithMeasurement() const
Definition: HitPattern.cc:527
const Point & position() const
position
Definition: Vertex.h:99
MonitorElement * NumberOfValidRecHitVsPhiVsEtaPerTrack
bool doMeasurementStatePlots_
Definition: TrackAnalyzer.h:81
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
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_total_
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:350
std::string qualityString_
int trackerLayersTotallyOffOrBad() const
Definition: HitPattern.h:1061
MonitorElement * oriAlgo
bool doDCAwrt000Plots_
Definition: TrackAnalyzer.h:97
MonitorElement * NumberOfLostRecHitVsPhiVsEtaPerTrack
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
susybsm::HSCParticleRefProd hp
Definition: classes.h:27
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
MonitorElement * yPointOfClosestApproachToPV
unsigned short numberOfValidHits() const
number of valid hits found
Definition: TrackBase.h:815
MonitorElement * sip2dToPV
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_inactive_
MonitorElement * sipDzToPV
MonitorElement * sipDxyToBS
bool isValid() const
Definition: HandleBase.h:75
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
bool doLumiAnalysis_
Definition: TrackAnalyzer.h:99
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:125
double xError() const
error on x
Definition: Vertex.h:107
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
Definition: TrackAnalyzer.h:70
MonitorElement * sipDxyToPV
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
const T & get() const
Definition: EventSetup.h:56
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_missing_
MonitorElement * DistanceOfClosestApproachVsTheta
bool quality(const TrackQuality) const
Track quality.
Definition: TrackBase.h:505
bool doEffFromHitPattern_
MonitorElement * zPointOfClosestApproachToPV
int trackerLayersWithoutMeasurement(HitCategory category) const
Definition: HitPattern.cc:544
MonitorElement * DistanceOfClosestApproachToPV
double vy() const
y coordinate of the reference point on track
Definition: TrackBase.h:658
MonitorElement * DistanceOfClosestApproachToBSVsPhi
bool doLayersVsPhiVsEtaPerTrack_
Definition: TrackAnalyzer.h:85
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
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 * DistanceOfClosestApproachToBS
MonitorElement * Chi2oNDF
double yError() const
error on y
Definition: Vertex.h:109
double py() const
y coordinate of momentum vector
Definition: TrackBase.h:628
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:71
void TrackAnalyzer::bookHistosForBeamSpot ( DQMStore::IBooker ibooker)
private

Definition at line 593 of file TrackAnalyzer.cc.

References HLT_FULL_cff::AlgoName, DQMStore::IBooker::book1D(), DQMStore::IBooker::bookProfile(), conf_, DistanceOfClosestApproach, DistanceOfClosestApproachToBS, DistanceOfClosestApproachToBSVsPhi, DistanceOfClosestApproachToPV, DistanceOfClosestApproachToPVVsPhi, DistanceOfClosestApproachVsEta, DistanceOfClosestApproachVsPhi, DistanceOfClosestApproachVsTheta, doAllPlots_, doBSPlots_, doDCAPlots_, doDCAwrt000Plots_, doPVPlots_, doSIPPlots_, doTestPlots_, doThetaPlots_, HLT_FULL_cff::EtaMax, Gflash::EtaMin, edm::ParameterSet::getParameter(), MonitorElement::getTH1(), histname, 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().

593  {
594 
595  // parameters from the configuration
596  std::string QualName = conf_.getParameter<std::string>("Quality");
598 
599  // use the AlgoName and Quality Name
600  std::string CategoryName = QualName != "" ? AlgoName + "_" + QualName : AlgoName;
601 
602  // book the Beam Spot related histograms
603  // ---------------------------------------------------------------------------------//
604 
606 
607  int DxyBin = conf_.getParameter<int>( "DxyBin");
608  double DxyMin = conf_.getParameter<double>("DxyMin");
609  double DxyMax = conf_.getParameter<double>("DxyMax");
610 
611  int PhiBin = conf_.getParameter<int>( "PhiBin");
612  double PhiMin = conf_.getParameter<double>("PhiMin");
613  double PhiMax = conf_.getParameter<double>("PhiMax");
614 
615  int X0Bin = conf_.getParameter<int>( "X0Bin");
616  double X0Min = conf_.getParameter<double>("X0Min");
617  double X0Max = conf_.getParameter<double>("X0Max");
618 
619  int Y0Bin = conf_.getParameter<int>( "Y0Bin");
620  double Y0Min = conf_.getParameter<double>("Y0Min");
621  double Y0Max = conf_.getParameter<double>("Y0Max");
622 
623  int Z0Bin = conf_.getParameter<int>( "Z0Bin");
624  double Z0Min = conf_.getParameter<double>("Z0Min");
625  double Z0Max = conf_.getParameter<double>("Z0Max");
626 
627  int VZBinProf = conf_.getParameter<int>( "VZBinProf");
628  double VZMinProf = conf_.getParameter<double>("VZMinProf");
629  double VZMaxProf = conf_.getParameter<double>("VZMaxProf");
630 
631 
632  ibooker.setCurrentFolder(TopFolder_+"/GeneralProperties");
633 
634  histname = "DistanceOfClosestApproachToBS_";
635  DistanceOfClosestApproachToBS = ibooker.book1D(histname+CategoryName,histname+CategoryName,DxyBin,DxyMin,DxyMax);
636  DistanceOfClosestApproachToBS->setAxisTitle("Track d_{xy} wrt beam spot (cm)",1);
637  DistanceOfClosestApproachToBS->setAxisTitle("Number of Tracks",2);
638 
639  histname = "DistanceOfClosestApproachToBSVsPhi_";
640  DistanceOfClosestApproachToBSVsPhi = ibooker.bookProfile(histname+CategoryName,histname+CategoryName, PhiBin, PhiMin, PhiMax, DxyBin, DxyMin, DxyMax,"");
641  DistanceOfClosestApproachToBSVsPhi->getTH1()->SetCanExtend(TH1::kAllAxes);
643  DistanceOfClosestApproachToBSVsPhi->setAxisTitle("Track d_{xy} wrt beam spot (cm)",2);
644 
645  histname = "xPointOfClosestApproachVsZ0wrt000_";
646  xPointOfClosestApproachVsZ0wrt000 = ibooker.bookProfile(histname+CategoryName, histname+CategoryName, Z0Bin, Z0Min, Z0Max, X0Bin, X0Min, X0Max,"");
648  xPointOfClosestApproachVsZ0wrt000->setAxisTitle("x component of Track PCA to beam line (cm)",2);
649 
650  histname = "yPointOfClosestApproachVsZ0wrt000_";
651  yPointOfClosestApproachVsZ0wrt000 = ibooker.bookProfile(histname+CategoryName, histname+CategoryName, Z0Bin, Z0Min, Z0Max, Y0Bin, Y0Min, Y0Max,"");
653  yPointOfClosestApproachVsZ0wrt000->setAxisTitle("y component of Track PCA to beam line (cm)",2);
654 
655  histname = "xPointOfClosestApproachVsZ0wrtBS_";
656  xPointOfClosestApproachVsZ0wrtBS = ibooker.bookProfile(histname+CategoryName, histname+CategoryName, Z0Bin, Z0Min, Z0Max, X0Bin, X0Min, X0Max,"");
657  xPointOfClosestApproachVsZ0wrtBS->setAxisTitle("d_{z} w.r.t. Beam Spot (cm)",1);
658  xPointOfClosestApproachVsZ0wrtBS->setAxisTitle("x component of Track PCA to BS (cm)",2);
659 
660  histname = "yPointOfClosestApproachVsZ0wrtBS_";
661  yPointOfClosestApproachVsZ0wrtBS = ibooker.bookProfile(histname+CategoryName, histname+CategoryName, Z0Bin, Z0Min, Z0Max, Y0Bin, Y0Min, Y0Max,"");
662  yPointOfClosestApproachVsZ0wrtBS->setAxisTitle("d_{z} w.r.t. Beam Spot (cm)",1);
663  yPointOfClosestApproachVsZ0wrtBS->setAxisTitle("y component of Track PCA to BS (cm)",2);
664 
665  histname = "zPointOfClosestApproachVsPhi_";
666  zPointOfClosestApproachVsPhi = ibooker.bookProfile(histname+CategoryName, histname+CategoryName, PhiBin, PhiMin, PhiMax, VZBinProf, VZMinProf, VZMaxProf, "");
668  zPointOfClosestApproachVsPhi->setAxisTitle("y component of Track PCA to beam line (cm)",2);
669  }
670 
672 
673  int DxyBin = conf_.getParameter<int>( "DxyBin");
674  double DxyMin = conf_.getParameter<double>("DxyMin");
675  double DxyMax = conf_.getParameter<double>("DxyMax");
676 
677  int PhiBin = conf_.getParameter<int>( "PhiBin");
678  double PhiMin = conf_.getParameter<double>("PhiMin");
679  double PhiMax = conf_.getParameter<double>("PhiMax");
680 
681  int X0Bin = conf_.getParameter<int>( "X0Bin");
682  double X0Min = conf_.getParameter<double>("X0Min");
683  double X0Max = conf_.getParameter<double>("X0Max");
684 
685  int Y0Bin = conf_.getParameter<int>( "Y0Bin");
686  double Y0Min = conf_.getParameter<double>("Y0Min");
687  double Y0Max = conf_.getParameter<double>("Y0Max");
688 
689  int Z0Bin = conf_.getParameter<int>( "Z0Bin");
690  double Z0Min = conf_.getParameter<double>("Z0Min");
691  double Z0Max = conf_.getParameter<double>("Z0Max");
692 
693  ibooker.setCurrentFolder(TopFolder_+"/GeneralProperties");
694 
695  histname = "DistanceOfClosestApproachToPV_";
696  DistanceOfClosestApproachToPV = ibooker.book1D(histname+CategoryName,histname+CategoryName,DxyBin,DxyMin,DxyMax);
697  DistanceOfClosestApproachToPV->setAxisTitle("Track d_{xy} wrt beam spot (cm)",1);
698  DistanceOfClosestApproachToPV->setAxisTitle("Number of Tracks",2);
699 
700  histname = "DistanceOfClosestApproachToPVVsPhi_";
701  DistanceOfClosestApproachToPVVsPhi = ibooker.bookProfile(histname+CategoryName,histname+CategoryName, PhiBin, PhiMin, PhiMax, DxyBin, DxyMin, DxyMax,"");
702  DistanceOfClosestApproachToPVVsPhi->getTH1()->SetCanExtend(TH1::kAllAxes);
704  DistanceOfClosestApproachToPVVsPhi->setAxisTitle("Track d_{xy} wrt beam spot (cm)",2);
705 
706  histname = "xPointOfClosestApproachVsZ0wrtPV_";
707  xPointOfClosestApproachVsZ0wrtPV = ibooker.bookProfile(histname+CategoryName, histname+CategoryName, Z0Bin, Z0Min, Z0Max, X0Bin, X0Min, X0Max,"");
708  xPointOfClosestApproachVsZ0wrtPV->setAxisTitle("d_{z} w.r.t. Beam Spot (cm)",1);
709  xPointOfClosestApproachVsZ0wrtPV->setAxisTitle("x component of Track PCA to PV (cm)",2);
710 
711  histname = "yPointOfClosestApproachVsZ0wrtPV_";
712  yPointOfClosestApproachVsZ0wrtPV = ibooker.bookProfile(histname+CategoryName, histname+CategoryName, Z0Bin, Z0Min, Z0Max, Y0Bin, Y0Min, Y0Max,"");
713  yPointOfClosestApproachVsZ0wrtPV->setAxisTitle("d_{z} w.r.t. Beam Spot (cm)",1);
714  yPointOfClosestApproachVsZ0wrtPV->setAxisTitle("y component of Track PCA to PV (cm)",2);
715 
716  }
717 
718  if (doBSPlots_ || doAllPlots_) {
719  if (doTestPlots_) {
720 
721  int DxyBin = conf_.getParameter<int>( "DxyBin");
722  double DxyMin = conf_.getParameter<double>("DxyMin");
723  double DxyMax = conf_.getParameter<double>("DxyMax");
724 
725  int PhiBin = conf_.getParameter<int>( "PhiBin");
726  double PhiMin = conf_.getParameter<double>("PhiMin");
727  double PhiMax = conf_.getParameter<double>("PhiMax");
728 
729  histname = "TESTDistanceOfClosestApproachToBS_";
730  TESTDistanceOfClosestApproachToBS = ibooker.book1D(histname+CategoryName,histname+CategoryName,DxyBin,DxyMin,DxyMax);
731  TESTDistanceOfClosestApproachToBS->setAxisTitle("Track d_{xy} wrt beam spot (cm)",1);
732  TESTDistanceOfClosestApproachToBS->setAxisTitle("Number of Tracks",2);
733 
734  histname = "TESTDistanceOfClosestApproachToBSVsPhi_";
735  TESTDistanceOfClosestApproachToBSVsPhi = ibooker.bookProfile(histname+CategoryName,histname+CategoryName, PhiBin, PhiMin, PhiMax, DxyBin, DxyMin, DxyMax,"");
736  TESTDistanceOfClosestApproachToBSVsPhi->getTH1()->SetCanExtend(TH1::kAllAxes);
738  TESTDistanceOfClosestApproachToBSVsPhi->setAxisTitle("Track d_{xy} wrt beam spot (cm)",2);
739 
740  }
741 
742  }
743 
744  // book the Profile plots for DCA related histograms
745  // ---------------------------------------------------------------------------------//
746  if(doDCAPlots_ || doAllPlots_) {
747 
748  if (doDCAwrt000Plots_) {
749 
750  int EtaBin = conf_.getParameter<int>( "EtaBin");
751  double EtaMin = conf_.getParameter<double>("EtaMin");
752  double EtaMax = conf_.getParameter<double>("EtaMax");
753 
754  int PhiBin = conf_.getParameter<int>( "PhiBin");
755  double PhiMin = conf_.getParameter<double>("PhiMin");
756  double PhiMax = conf_.getParameter<double>("PhiMax");
757 
758  int DxyBin = conf_.getParameter<int>( "DxyBin");
759  double DxyMin = conf_.getParameter<double>("DxyMin");
760  double DxyMax = conf_.getParameter<double>("DxyMax");
761 
762  if (doThetaPlots_) {
763  int ThetaBin = conf_.getParameter<int>( "ThetaBin");
764  double ThetaMin = conf_.getParameter<double>("ThetaMin");
765  double ThetaMax = conf_.getParameter<double>("ThetaMax");
766 
767  ibooker.setCurrentFolder(TopFolder_+"/GeneralProperties");
768  histname = "DistanceOfClosestApproachVsTheta_";
769  DistanceOfClosestApproachVsTheta = ibooker.bookProfile(histname+CategoryName,histname+CategoryName, ThetaBin, ThetaMin, ThetaMax, DxyMin,DxyMax,"");
771  DistanceOfClosestApproachVsTheta->setAxisTitle("Track d_{xy} wrt (0,0,0) (cm)",2);
772  }
773 
774  histname = "DistanceOfClosestApproachVsEta_";
775  DistanceOfClosestApproachVsEta = ibooker.bookProfile(histname+CategoryName,histname+CategoryName, EtaBin, EtaMin, EtaMax, DxyMin, DxyMax,"");
777  DistanceOfClosestApproachVsEta->setAxisTitle("Track d_{xy} wrt (0,0,0) (cm)",2);
778  // temporary patch in order to put back those MEs in Muon Workspace
779 
780  histname = "DistanceOfClosestApproach_";
781  DistanceOfClosestApproach = ibooker.book1D(histname+CategoryName,histname+CategoryName,DxyBin,DxyMin,DxyMax);
782  DistanceOfClosestApproach->setAxisTitle("Track d_{xy} wrt (0,0,0) (cm)",1);
783  DistanceOfClosestApproach->setAxisTitle("Number of Tracks",2);
784 
785  histname = "DistanceOfClosestApproachVsPhi_";
786  DistanceOfClosestApproachVsPhi = ibooker.bookProfile(histname+CategoryName,histname+CategoryName, PhiBin, PhiMin, PhiMax, DxyMin,DxyMax,"");
787  DistanceOfClosestApproachVsPhi->getTH1()->SetCanExtend(TH1::kAllAxes);
789  DistanceOfClosestApproachVsPhi->setAxisTitle("Track d_{xy} wrt (0,0,0) (cm)",2);
790  }
791  }
792 
793 
794  if (doSIPPlots_ || doAllPlots_) {
795  const double sipBins = 200;
796  const double sipMin = -20;
797  const double sipMax = 20;
798 
799  ibooker.setCurrentFolder(TopFolder_+"/GeneralProperties");
800 
801  // SIP wrt. beamspot
802  histname = "SIPDxyToBS_";
803  sipDxyToBS = ibooker.book1D(histname+CategoryName, histname+CategoryName, sipBins, sipMin, sipMax);
804  sipDxyToBS->setAxisTitle("Track dxy significance wrt beam spot",1);
805  sipDxyToBS->setAxisTitle("Number of Tracks",2);
806 
807  histname = "SIPDzToBS_";
808  sipDzToBS = ibooker.book1D(histname+CategoryName, histname+CategoryName, sipBins, sipMin, sipMax);
809  sipDzToBS->setAxisTitle("Track dz significance wrt beam spot",1);
810  sipDzToBS->setAxisTitle("Number of Tracks",2);
811 
812  // SIP wrt. vertex
813  histname = "SIP3DToPV_";
814  sip3dToPV = ibooker.book1D(histname+CategoryName, histname+CategoryName, sipBins, sipMin, sipMax);
815  sip3dToPV->setAxisTitle("3D IP significance wrt primary vertex",1);
816  sip3dToPV->setAxisTitle("Number of Tracks",2);
817 
818  histname = "SIP2DToPV_";
819  sip2dToPV = ibooker.book1D(histname+CategoryName, histname+CategoryName, sipBins, sipMin, sipMax);
820  sip2dToPV->setAxisTitle("2D IP significance wrt primary vertex",1);
821  sip2dToPV->setAxisTitle("Number of Tracks",2);
822 
823  histname = "SIPDxyToPV_";
824  sipDxyToPV = ibooker.book1D(histname+CategoryName, histname+CategoryName, sipBins, sipMin, sipMax);
825  sipDxyToPV->setAxisTitle("Track dxy significance wrt primary vertex",1);
826  sipDxyToPV->setAxisTitle("Number of Tracks",2);
827 
828  histname = "SIPDzToPV_";
829  sipDzToPV = ibooker.book1D(histname+CategoryName, histname+CategoryName, sipBins, sipMin, sipMax);
830  sipDzToPV->setAxisTitle("Track dz significance wrt primary vertex",1);
831  sipDzToPV->setAxisTitle("Number of Tracks",2);
832  }
833 }
T getParameter(std::string const &) const
MonitorElement * DistanceOfClosestApproachToPVVsPhi
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:157
MonitorElement * sip3dToPV
edm::ParameterSet conf_
Definition: TrackAnalyzer.h:73
MonitorElement * DistanceOfClosestApproachVsPhi
MonitorElement * sipDzToBS
MonitorElement * DistanceOfClosestApproach
MonitorElement * TESTDistanceOfClosestApproachToBSVsPhi
MonitorElement * xPointOfClosestApproachVsZ0wrt000
bool doDCAwrt000Plots_
Definition: TrackAnalyzer.h:97
std::string TopFolder_
Definition: TrackAnalyzer.h:68
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:273
MonitorElement * sipDxyToPV
MonitorElement * xPointOfClosestApproachVsZ0wrtPV
MonitorElement * yPointOfClosestApproachVsZ0wrtBS
MonitorElement * DistanceOfClosestApproachVsTheta
MonitorElement * DistanceOfClosestApproachToPV
MonitorElement * DistanceOfClosestApproachToBSVsPhi
MonitorElement * yPointOfClosestApproachVsZ0wrt000
MonitorElement * TESTDistanceOfClosestApproachToBS
MonitorElement * yPointOfClosestApproachVsZ0wrtPV
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 
)
private

Definition at line 179 of file TrackAnalyzer.cc.

References DQMStore::IBooker::book1D(), eostools::cat(), doAllPlots_, doEffFromHitPattern_, edm::EventSetup::get(), hits_bad_, hits_inactive_, hits_missing_, hits_total_, hits_valid_, LogDebug, DQMStore::IBooker::setCurrentFolder(), indexGen::title, and TopFolder_.

Referenced by initHisto().

181 {
183  ibooker.setCurrentFolder(TopFolder_ + "/HitEffFromHitPattern");
184 
185  edm::ESHandle<TrackerGeometry> trackerGeometry;
186  iSetup.get<TrackerDigiGeometryRecord>().get(trackerGeometry);
187 
188  // Values are not ordered randomly, but the order is taken from
189  // http://cmslxr.fnal.gov/dxr/CMSSW/source/Geometry/CommonDetUnit/interface/GeomDetEnumerators.h#15
190  const char * dets[] = { "None", "PXB", "PXF", "TIB", "TID", "TOB", "TEC"};
191 
192  // Also in this case, ordering is not random but extracted from
193  // http://cmslxr.fnal.gov/dxr/CMSSW/source/DataFormats/TrackReco/interface/HitPattern.h
194  // The category "total" is an addition to ease the computation of
195  // the efficiencies and is not part of the original HitPattern.
196  const char * hit_category[] = { "valid", "missing", "inactive", "bad", "total"};
197 
198  // We set sub_det to be a 1-based index since to it is the sub-sub-structure in the HitPattern
199  char title[50];
200  for (unsigned int det = 1; det < sizeof(dets)/sizeof(char*); ++det ) {
201  for (unsigned int sub_det = 1;
202  sub_det <= trackerGeometry->numberOfLayers(det); ++sub_det) {
203  for (unsigned int cat = 0;
204  cat < sizeof(hit_category)/sizeof(char *); ++cat) {
205  memset(title, 0, sizeof(title));
206  snprintf(title, sizeof(title), "Hits_%s_%s_Subdet%d", hit_category[cat], dets[det], sub_det);
207  switch(cat) {
208  case 0:
209  hits_valid_.insert(std::make_pair(
210  Key(det, sub_det),
211  ibooker.book1D(title, title, 50, 0.5, 50.5)));
212  break;
213  case 1:
214  hits_missing_.insert(std::make_pair(
215  Key(det, sub_det),
216  ibooker.book1D(title, title, 50, 0.5, 50.5)));
217  break;
218  case 2:
219  hits_inactive_.insert(std::make_pair(
220  Key(det, sub_det),
221  ibooker.book1D(title, title, 50, 0.5, 50.5)));
222  break;
223  case 3:
224  hits_bad_.insert(std::make_pair(
225  Key(det, sub_det),
226  ibooker.book1D(title, title, 50, 0.5, 50.5)));
227  break;
228  case 4:
229  hits_total_.insert(std::make_pair(
230  Key(det, sub_det),
231  ibooker.book1D(title, title, 50, 0.5, 50.5)));
232  break;
233  default:
234  LogDebug("TrackAnalyzer") << "Invalid hit category used " << cat << " ignored\n";
235  }
236  }
237  }
238  }
239  }
240 }
#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_
def cat
Definition: eostools.py:400
std::string TopFolder_
Definition: TrackAnalyzer.h:68
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_inactive_
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:273
const T & get() const
Definition: EventSetup.h:56
std::unordered_map< Key, MonitorElement *, KeyHasher > hits_missing_
bool doEffFromHitPattern_
void TrackAnalyzer::bookHistosForHitProperties ( DQMStore::IBooker ibooker)
private

Definition at line 243 of file TrackAnalyzer.cc.

References HLT_FULL_cff::AlgoName, 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_, doSIPPlots_, HLT_FULL_cff::EtaMax, Gflash::EtaMin, edm::ParameterSet::getParameter(), histname, i, LongDCASig, NhitVsEta_HighPurity, NhitVsPhi_HighPurity, NumberOfLayersPerTrack, NumberOfLayersVsPhiVsEtaPerTrack, NumberOfLostRecHitsPerTrack, NumberOfLostRecHitVsPhiVsEtaPerTrack, NumberOfMIRecHitsPerTrack, NumberOfMIRecHitVsPhiVsEtaPerTrack, NumberOfMORecHitsPerTrack, NumberOfMORecHitVsPhiVsEtaPerTrack, NumberOfRecHitsPerTrack, NumberOfValidRecHitsPerTrack, NumberOfValidRecHitVsPhiVsEtaPerTrack, oriAlgo, Ptdist_HighPurity, MonitorElement::setAxisTitle(), MonitorElement::setBinLabel(), DQMStore::IBooker::setCurrentFolder(), stoppingSource, stoppingSourceVSeta, stoppingSourceVSphi, AlCaHLTBitMon_QueryRunRegistry::string, TopFolder_, TransDCASig, ValidFractionPerTrack, ValidFractionVsPhiVsEtaPerTrack, xPointOfClosestApproach, xPointOfClosestApproachToPV, yPointOfClosestApproach, yPointOfClosestApproachToPV, zPointOfClosestApproach, and zPointOfClosestApproachToPV.

Referenced by initHisto().

243  {
244 
245  // parameters from the configuration
246  std::string QualName = conf_.getParameter<std::string>("Quality");
248  std::string MEBSFolderName = conf_.getParameter<std::string>("BSFolderName");
249 
250  // use the AlgoName and Quality Name
251  std::string CategoryName = QualName != "" ? AlgoName + "_" + QualName : AlgoName;
252 
253  // get binning from the configuration
254  int TKHitBin = conf_.getParameter<int>( "RecHitBin");
255  double TKHitMin = conf_.getParameter<double>("RecHitMin");
256  double TKHitMax = conf_.getParameter<double>("RecHitMax");
257 
258  int TKLostBin = conf_.getParameter<int>( "RecLostBin");
259  double TKLostMin = conf_.getParameter<double>("RecLostMin");
260  double TKLostMax = conf_.getParameter<double>("RecLostMax");
261 
262  int TKLayBin = conf_.getParameter<int>( "RecLayBin");
263  double TKLayMin = conf_.getParameter<double>("RecLayMin");
264  double TKLayMax = conf_.getParameter<double>("RecLayMax");
265 
266  int PhiBin = conf_.getParameter<int>( "PhiBin");
267  double PhiMin = conf_.getParameter<double>("PhiMin");
268  double PhiMax = conf_.getParameter<double>("PhiMax");
269 
270  int EtaBin = conf_.getParameter<int>( "EtaBin");
271  double EtaMin = conf_.getParameter<double>("EtaMin");
272  double EtaMax = conf_.getParameter<double>("EtaMax");
273 
274  int VXBin = conf_.getParameter<int>( "VXBin");
275  double VXMin = conf_.getParameter<double>("VXMin");
276  double VXMax = conf_.getParameter<double>("VXMax");
277 
278  int VYBin = conf_.getParameter<int>( "VYBin");
279  double VYMin = conf_.getParameter<double>("VYMin");
280  double VYMax = conf_.getParameter<double>("VYMax");
281 
282  int VZBin = conf_.getParameter<int>( "VZBin");
283  double VZMin = conf_.getParameter<double>("VZMin");
284  double VZMax = conf_.getParameter<double>("VZMax");
285 
286  ibooker.setCurrentFolder(TopFolder_);
287 
288  // book the Hit Property histograms
289  // ---------------------------------------------------------------------------------//
290 
291  TkParameterMEs tkmes;
293 
294  ibooker.setCurrentFolder(TopFolder_+"/HitProperties");
295 
296  histname = "NumberOfRecHitsPerTrack_";
297  NumberOfRecHitsPerTrack = ibooker.book1D(histname+CategoryName, histname+CategoryName, TKHitBin, TKHitMin, TKHitMax);
298  NumberOfRecHitsPerTrack->setAxisTitle("Number of all RecHits of each Track");
299  NumberOfRecHitsPerTrack->setAxisTitle("Number of Tracks", 2);
300 
301  histname = "NumberOfValidRecHitsPerTrack_";
302  NumberOfValidRecHitsPerTrack = ibooker.book1D(histname+CategoryName, histname+CategoryName, TKHitBin, TKHitMin, TKHitMax);
303  NumberOfValidRecHitsPerTrack->setAxisTitle("Number of valid RecHits for each Track");
304  NumberOfValidRecHitsPerTrack->setAxisTitle("Number of Tracks", 2);
305 
306  histname = "NumberOfLostRecHitsPerTrack_";
307  NumberOfLostRecHitsPerTrack = ibooker.book1D(histname+CategoryName, histname+CategoryName, TKLostBin, TKLostMin, TKLostMax);
308  NumberOfLostRecHitsPerTrack->setAxisTitle("Number of lost RecHits for each Track");
309  NumberOfLostRecHitsPerTrack->setAxisTitle("Number of Tracks", 2);
310 
311  histname = "NumberOfMissingInnerRecHitsPerTrack_";
312  NumberOfMIRecHitsPerTrack = ibooker.book1D(histname+CategoryName, histname+CategoryName, 10, -0.5, 9.5);
313  NumberOfMIRecHitsPerTrack->setAxisTitle("Number of missing-inner RecHits for each Track");
314  NumberOfMIRecHitsPerTrack->setAxisTitle("Number of Tracks", 2);
315 
316  histname = "NumberOfMissingOuterRecHitsPerTrack_";
317  NumberOfMORecHitsPerTrack = ibooker.book1D(histname+CategoryName, histname+CategoryName, 10, -0.5, 9.5);
318  NumberOfMORecHitsPerTrack->setAxisTitle("Number of missing-outer RecHits for each Track");
319  NumberOfMORecHitsPerTrack->setAxisTitle("Number of Tracks", 2);
320 
321  histname = "ValidFractionPerTrack_";
322  ValidFractionPerTrack = ibooker.book1D(histname+CategoryName, histname+CategoryName, 101, 0., 1.01);
323  ValidFractionPerTrack->setAxisTitle("ValidFraction of RecHits for each Track");
324  ValidFractionPerTrack->setAxisTitle("Number of Tracks", 2);
325 
326 
327 
329 
330  histname = "NumberOfValidRecHitVsPhiVsEtaPerTrack_";
331  NumberOfValidRecHitVsPhiVsEtaPerTrack = ibooker.bookProfile2D(histname+CategoryName, histname+CategoryName,
332  EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax, 0, 40., "");
335 
336  histname = "NumberOfLostRecHitVsPhiVsEtaPerTrack_";
337  NumberOfLostRecHitVsPhiVsEtaPerTrack = ibooker.bookProfile2D(histname+CategoryName, histname+CategoryName,
338  EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax, 0, 5., "");
341 
342 
343  histname = "NumberMIRecHitVsPhiVsEtaPerTrack_";
344  NumberOfMIRecHitVsPhiVsEtaPerTrack = ibooker.bookProfile2D(histname+CategoryName, histname+CategoryName,
345  EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax, 0, 15., "");
348 
349  histname = "NumberMORecHitVsPhiVsEtaPerTrack_";
350  NumberOfMORecHitVsPhiVsEtaPerTrack = ibooker.bookProfile2D(histname+CategoryName, histname+CategoryName,
351  EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax, 0, 15., "");
354 
355  histname = "ValidFractionVsPhiVsEtaPerTrack_";
356  ValidFractionVsPhiVsEtaPerTrack = ibooker.bookProfile2D(histname+CategoryName, histname+CategoryName,
357  EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax, 0, 2., "");
360 
361 
362  }
363 
364  std::string layerTypeName[4] = {"","Off","3D","Missing"};
365  for (int i=0; i<4; ++i) {
366  histname = "NumberOf"+ layerTypeName[i] + "LayersPerTrack_";
367  NumberOfLayersPerTrack[i] = ibooker.book1D(histname+CategoryName, histname+CategoryName, TKLayBin, TKLayMin, TKLayMax);
368  NumberOfLayersPerTrack[i]->setAxisTitle("Number of " + layerTypeName[i] + " Layers of each Track", 1);
369  NumberOfLayersPerTrack[i]->setAxisTitle("Number of Tracks", 2);
370  }
372  for (int i=0; i<4; ++i) {
373  histname = "NumberOf"+ layerTypeName[i] + "LayersVsPhiVsEtaPerTrack_";
374  NumberOfLayersVsPhiVsEtaPerTrack[i] = ibooker.bookProfile2D(histname+CategoryName, histname+CategoryName,
375  EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax, 0, 40., "");
376  NumberOfLayersVsPhiVsEtaPerTrack[i]->setAxisTitle("Track #eta ", 1);
377  NumberOfLayersVsPhiVsEtaPerTrack[i]->setAxisTitle("Track #phi ", 2);
378  }
379  }
380 
381  // book the General Property histograms
382  // ---------------------------------------------------------------------------------//
383 
385 
386  int Chi2Bin = conf_.getParameter<int>( "Chi2Bin");
387  double Chi2Min = conf_.getParameter<double>("Chi2Min");
388  double Chi2Max = conf_.getParameter<double>("Chi2Max");
389 
390  int Chi2NDFBin = conf_.getParameter<int>( "Chi2NDFBin");
391  double Chi2NDFMin = conf_.getParameter<double>("Chi2NDFMin");
392  double Chi2NDFMax = conf_.getParameter<double>("Chi2NDFMax");
393 
394  int Chi2ProbBin = conf_.getParameter<int>( "Chi2ProbBin");
395  double Chi2ProbMin = conf_.getParameter<double>("Chi2ProbMin");
396  double Chi2ProbMax = conf_.getParameter<double>("Chi2ProbMax");
397 
398 
399  //HI PLOTS////
400  int TransDCABins = conf_.getParameter<int>("TransDCABins");
401  double TransDCAMin = conf_.getParameter<double>("TransDCAMin");
402  double TransDCAMax = conf_.getParameter<double>("TransDCAMax");
403 
404  int LongDCABins = conf_.getParameter<int>("LongDCABins");
405  double LongDCAMin = conf_.getParameter<double>("LongDCAMin");
406  double LongDCAMax = conf_.getParameter<double>("LongDCAMax");
408 
409 
410  ibooker.setCurrentFolder(TopFolder_+"/GeneralProperties");
411 
412  histname = "Chi2_";
413  Chi2 = ibooker.book1D(histname+CategoryName, histname+CategoryName, Chi2Bin, Chi2Min, Chi2Max);
414  Chi2->setAxisTitle("Track #chi^{2}" ,1);
415  Chi2->setAxisTitle("Number of Tracks",2);
416 
417  histname = "Chi2Prob_";
418  Chi2Prob = ibooker.book1D(histname+CategoryName, histname+CategoryName, Chi2ProbBin, Chi2ProbMin, Chi2ProbMax);
419  Chi2Prob->setAxisTitle("Track #chi^{2} probability",1);
420  Chi2Prob->setAxisTitle("Number of Tracks" ,2);
421 
422  histname = "Chi2oNDF_";
423  Chi2oNDF = ibooker.book1D(histname+CategoryName, histname+CategoryName, Chi2NDFBin, Chi2NDFMin, Chi2NDFMax);
424  Chi2oNDF->setAxisTitle("Track #chi^{2}/ndf",1);
425  Chi2oNDF->setAxisTitle("Number of Tracks" ,2);
426 
427 
429  //HI PLOTS///
431  if (doHIPlots_)
432  {
433  histname = "LongDCASig_";
434  LongDCASig = ibooker.book1D(histname+CategoryName, histname+CategoryName,LongDCABins,LongDCAMin,LongDCAMax);
435  LongDCASig->setAxisTitle("dz/#sigma_{dz}",1);
436 
437  histname = "TransDCASig_";
438  TransDCASig = ibooker.book1D(histname+CategoryName,histname+CategoryName,TransDCABins,TransDCAMin,TransDCAMax);
439  TransDCASig->setAxisTitle("dxy/#sigma_{dxy}",1);
440 
441  histname = "dNdPhi_HighPurity_";
442  dNdPhi_HighPurity = ibooker.book1D(histname+CategoryName,histname+CategoryName,PhiBin,PhiMin,PhiMax);
443  dNdPhi_HighPurity->setAxisTitle("#phi",1);
444 
445  histname = "dNdEta_HighPurity_";
446  dNdEta_HighPurity = ibooker.book1D(histname+CategoryName,histname+CategoryName,EtaBin,EtaMin,EtaMax);
447  dNdEta_HighPurity->setAxisTitle("#eta",1);
448 
449  histname = "dNdPt_HighPurity_";
450  dNdPt_HighPurity = ibooker.book1D(histname+CategoryName,histname+CategoryName,150,0,0.3);
451  dNdPt_HighPurity->setAxisTitle("#sigma_{p_{T}}/p_{T}",1);
452 
453  histname = "NhitVsEta_HighPurity_";
454  NhitVsEta_HighPurity = ibooker.bookProfile(histname+CategoryName,histname+CategoryName,EtaBin,EtaMin,EtaMax,-0.5,39.5,"");
455  NhitVsEta_HighPurity->setAxisTitle("Track #eta",1);
456  NhitVsEta_HighPurity->setAxisTitle("Number of Valid RecHits in each Track",2);
457 
458  histname = "NhitVsPhi_HighPurity_";
459  NhitVsPhi_HighPurity = ibooker.bookProfile(histname+CategoryName,histname+CategoryName,PhiBin,PhiMin,PhiMax,-0.5,39.5,"");
460  NhitVsPhi_HighPurity->setAxisTitle("Track #phi",1);
461  NhitVsPhi_HighPurity->setAxisTitle("Number of Valid RecHits in each Track",2);
462 
463  histname = "Ptdist_HighPurity_";
464  Ptdist_HighPurity = ibooker.book1D(histname+CategoryName,histname+CategoryName,150,0,50.);
465  Ptdist_HighPurity->setAxisTitle("p_{T} (GeV/c)",1);
466  Ptdist_HighPurity->setAxisTitle("Number of Tracks",2);
467 
468  histname = "dNhitdPt_HighPurity_";
469  dNhitdPt_HighPurity = ibooker.bookProfile(histname+CategoryName,histname+CategoryName,150,0,25.,-0.5,39.5,"");
470  dNhitdPt_HighPurity->setAxisTitle("p_{T} (GeV/c)",1);
471  dNhitdPt_HighPurity->setAxisTitle("N_{hit}",2);
472 
473  }
474 
475 
476 
478  histname = "xPointOfClosestApproach_";
479  xPointOfClosestApproach = ibooker.book1D(histname+CategoryName, histname+CategoryName, VXBin, VXMin, VXMax);
480  xPointOfClosestApproach->setAxisTitle("x component of Track PCA to beam line (cm)",1);
481  xPointOfClosestApproach->setAxisTitle("Number of Tracks",2);
482 
483  histname = "yPointOfClosestApproach_";
484  yPointOfClosestApproach = ibooker.book1D(histname+CategoryName, histname+CategoryName, VYBin, VYMin, VYMax);
485  yPointOfClosestApproach->setAxisTitle("y component of Track PCA to beam line (cm)",1);
486  yPointOfClosestApproach->setAxisTitle("Number of Tracks",2);
487 
488  histname = "zPointOfClosestApproach_";
489  zPointOfClosestApproach = ibooker.book1D(histname+CategoryName, histname+CategoryName, VZBin, VZMin, VZMax);
490  zPointOfClosestApproach->setAxisTitle("z component of Track PCA to beam line (cm)",1);
491  zPointOfClosestApproach->setAxisTitle("Number of Tracks",2);
492 
493  histname = "xPointOfClosestApproachToPV_";
494  xPointOfClosestApproachToPV = ibooker.book1D(histname+CategoryName, histname+CategoryName, VXBin, VXMin, VXMax);
495  xPointOfClosestApproachToPV->setAxisTitle("x component of Track PCA to pv (cm)",1);
496  xPointOfClosestApproachToPV->setAxisTitle("Number of Tracks",2);
497 
498  histname = "yPointOfClosestApproachToPV_";
499  yPointOfClosestApproachToPV = ibooker.book1D(histname+CategoryName, histname+CategoryName, VYBin, VYMin, VYMax);
500  yPointOfClosestApproachToPV->setAxisTitle("y component of Track PCA to pv line (cm)",1);
501  yPointOfClosestApproachToPV->setAxisTitle("Number of Tracks",2);
502 
503  histname = "zPointOfClosestApproachToPV_";
504  zPointOfClosestApproachToPV = ibooker.book1D(histname+CategoryName, histname+CategoryName, VZBin, VZMin, VZMax);
505  zPointOfClosestApproachToPV->setAxisTitle("z component of Track PCA to pv line (cm)",1);
506  zPointOfClosestApproachToPV->setAxisTitle("Number of Tracks",2);
507  }
508 
509  // See DataFormats/TrackReco/interface/TrackBase.h for track algorithm enum definition
510  // http://cmssw.cvs.cern.ch/cgi-bin/cmssw.cgi/CMSSW/DataFormats/TrackReco/interface/TrackBase.h?view=log
511  histname = "algorithm_";
512  algorithm = ibooker.book1D(histname+CategoryName, histname+CategoryName, reco::TrackBase::algoSize, 0., double(reco::TrackBase::algoSize));
513  algorithm->setAxisTitle("Tracking algorithm",1);
514  algorithm->setAxisTitle("Number of Tracks",2);
515 
516  histname = "originalAlgorithm_";
517  oriAlgo = ibooker.book1D(histname+CategoryName, histname+CategoryName, reco::TrackBase::algoSize, 0., double(reco::TrackBase::algoSize));
518  oriAlgo->setAxisTitle("Tracking algorithm",1);
519  oriAlgo->setAxisTitle("Number of Tracks",2);
520 
521  for (size_t ibin=0; ibin<reco::TrackBase::algoSize-1; ibin++) {
524  }
525 
526  // DataFormats/TrackReco/interface/TrajectoryStopReasons.h
527  std::vector<std::string> StopReasonName = { "UNINITIALIZED", "MAX_HITS", "MAX_LOST_HITS", "MAX_CONSECUTIVE_LOST_HITS", "LOST_HIT_FRACTION", "MIN_PT", "CHARGE_SIGNIFICANCE", "LOOPER", "MAX_CCC_LOST_HITS", "NO_SEGMENTS_FOR_VALID_LAYERS", "NOT_STOPPED" };
528 
529  histname = "stoppingSource_";
530  stoppingSource = ibooker.book1D(histname+CategoryName, histname+CategoryName, StopReasonName.size(), 0., double(StopReasonName.size()));
531  stoppingSource->setAxisTitle("stopping reason",1);
532  stoppingSource->setAxisTitle("Number of Tracks",2);
533 
534  histname = "stoppingSourceVSeta_";
535  stoppingSourceVSeta = ibooker.book2D(histname+CategoryName, histname+CategoryName, EtaBin, EtaMin, EtaMax, StopReasonName.size(), 0., double(StopReasonName.size()));
536  stoppingSourceVSeta->setAxisTitle("track #eta",1);
537  stoppingSourceVSeta->setAxisTitle("stopping reason",2);
538 
539  histname = "stoppingSourceVSphi_";
540  stoppingSourceVSphi = ibooker.book2D(histname+CategoryName, histname+CategoryName, PhiBin, PhiMin, PhiMax, StopReasonName.size(), 0., double(StopReasonName.size()));
541  stoppingSourceVSphi->setAxisTitle("track #phi",1);
542  stoppingSourceVSphi->setAxisTitle("stopping reason",2);
543 
544  for (size_t ibin=0; ibin<StopReasonName.size(); ibin++) {
545  stoppingSource->setBinLabel(ibin+1,StopReasonName[ibin],1);
546  stoppingSourceVSeta->setBinLabel(ibin+1,StopReasonName[ibin],2);
547  stoppingSourceVSphi->setBinLabel(ibin+1,StopReasonName[ibin],2);
548  }
549 
550  }
551 
552 }
MonitorElement * stoppingSourceVSphi
T getParameter(std::string const &) const
int i
Definition: DBlmapReader.cc:9
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:73
bool doGeneralPropertiesPlots_
Definition: TrackAnalyzer.h:80
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
bool doHitPropertiesPlots_
Definition: TrackAnalyzer.h:82
bool doRecHitVsPhiVsEtaPerTrack_
Definition: TrackAnalyzer.h:83
MonitorElement * NumberOfValidRecHitVsPhiVsEtaPerTrack
MonitorElement * NumberOfRecHitsPerTrack
MonitorElement * Ptdist_HighPurity
MonitorElement * NumberOfLayersVsPhiVsEtaPerTrack[4]
MonitorElement * TransDCASig
MonitorElement * NumberOfMIRecHitVsPhiVsEtaPerTrack
MonitorElement * oriAlgo
MonitorElement * NumberOfLostRecHitVsPhiVsEtaPerTrack
MonitorElement * xPointOfClosestApproach
MonitorElement * NumberOfMIRecHitsPerTrack
MonitorElement * bookProfile2D(Args &&...args)
Definition: DQMStore.h:163
MonitorElement * dNdPt_HighPurity
std::string TopFolder_
Definition: TrackAnalyzer.h:68
MonitorElement * dNdPhi_HighPurity
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
MonitorElement * yPointOfClosestApproachToPV
const double EtaMin[kNumberCalorimeter]
MonitorElement * dNdEta_HighPurity
MonitorElement * stoppingSource
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:273
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
static const std::string algoNames[]
Definition: TrackBase.h:148
MonitorElement * zPointOfClosestApproachToPV
bool doLayersVsPhiVsEtaPerTrack_
Definition: TrackAnalyzer.h:85
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 * Chi2oNDF
std::string histname
MonitorElement * NumberOfMORecHitVsPhiVsEtaPerTrack
MonitorElement * NumberOfMORecHitsPerTrack
MonitorElement * LongDCASig
void TrackAnalyzer::bookHistosForLScertification ( DQMStore::IBooker ibooker)
private

Definition at line 554 of file TrackAnalyzer.cc.

References HLT_FULL_cff::AlgoName, 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().

554  {
555 
556  // parameters from the configuration
557  std::string QualName = conf_.getParameter<std::string>("Quality");
559 
560  // use the AlgoName and Quality Name
561  std::string CategoryName = QualName != "" ? AlgoName + "_" + QualName : AlgoName;
562 
563 
564  // book LS analysis related histograms
565  // -----------------------------------
566  if ( doLumiAnalysis_ ) {
567 
568  // get binning from the configuration
569  int TKHitBin = conf_.getParameter<int>( "RecHitBin");
570  double TKHitMin = conf_.getParameter<double>("RecHitMin");
571  double TKHitMax = conf_.getParameter<double>("RecHitMax");
572 
573  int Chi2NDFBin = conf_.getParameter<int>( "Chi2NDFBin");
574  double Chi2NDFMin = conf_.getParameter<double>("Chi2NDFMin");
575  double Chi2NDFMax = conf_.getParameter<double>("Chi2NDFMax");
576 
577  // add by Mia in order to deal w/ LS transitions
578  ibooker.setCurrentFolder(TopFolder_+"/LSanalysis");
579 
580  histname = "NumberOfRecHitsPerTrack_lumiFlag_";
581  NumberOfRecHitsPerTrack_lumiFlag = ibooker.book1D(histname+CategoryName, histname+CategoryName, TKHitBin, TKHitMin, TKHitMax);
582  NumberOfRecHitsPerTrack_lumiFlag->setAxisTitle("Number of all RecHits of each Track");
583  NumberOfRecHitsPerTrack_lumiFlag->setAxisTitle("Number of Tracks", 2);
584 
585  histname = "Chi2oNDF_lumiFlag_";
586  Chi2oNDF_lumiFlag = ibooker.book1D(histname+CategoryName, histname+CategoryName, Chi2NDFBin, Chi2NDFMin, Chi2NDFMax);
587  Chi2oNDF_lumiFlag->setAxisTitle("Track #chi^{2}/ndf",1);
588  Chi2oNDF_lumiFlag->setAxisTitle("Number of Tracks" ,2);
589 
590  }
591 }
T getParameter(std::string const &) const
MonitorElement * Chi2oNDF_lumiFlag
edm::ParameterSet conf_
Definition: TrackAnalyzer.h:73
MonitorElement * NumberOfRecHitsPerTrack_lumiFlag
std::string TopFolder_
Definition: TrackAnalyzer.h:68
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
bool doLumiAnalysis_
Definition: TrackAnalyzer.h:99
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:273
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 1114 of file TrackAnalyzer.cc.

References HLT_FULL_cff::AlgoName, DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), DQMStore::IBooker::bookProfile(), TrackAnalyzer::TkParameterMEs::Chi2oNDFVsEta, TrackAnalyzer::TkParameterMEs::Chi2oNDFVsPhi, TrackAnalyzer::TkParameterMEs::Chi2oNDFVsTheta, TrackAnalyzer::TkParameterMEs::Chi2ProbVsEta, TrackAnalyzer::TkParameterMEs::Chi2ProbVsPhi, conf_, doAllPlots_, doThetaPlots_, doTrackPxPyPlots_, HLT_FULL_cff::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, 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().

1115 {
1116 
1117  // parameters from the configuration
1118  std::string QualName = conf_.getParameter<std::string>("Quality");
1120 
1121  // use the AlgoName and Quality Name
1122  std::string CategoryName = QualName != "" ? AlgoName + "_" + QualName : AlgoName;
1123 
1124  // get binning from the configuration
1125  double Chi2NDFMin = conf_.getParameter<double>("Chi2NDFMin");
1126  double Chi2NDFMax = conf_.getParameter<double>("Chi2NDFMax");
1127 
1128  int RecHitBin = conf_.getParameter<int>( "RecHitBin");
1129  double RecHitMin = conf_.getParameter<double>("RecHitMin");
1130  double RecHitMax = conf_.getParameter<double>("RecHitMax");
1131 
1132  int RecLayBin = conf_.getParameter<int>( "RecHitBin");
1133  double RecLayMin = conf_.getParameter<double>("RecHitMin");
1134  double RecLayMax = conf_.getParameter<double>("RecHitMax");
1135 
1136 
1137  int PhiBin = conf_.getParameter<int>( "PhiBin");
1138  double PhiMin = conf_.getParameter<double>("PhiMin");
1139  double PhiMax = conf_.getParameter<double>("PhiMax");
1140 
1141  int EtaBin = conf_.getParameter<int>( "EtaBin");
1142  double EtaMin = conf_.getParameter<double>("EtaMin");
1143  double EtaMax = conf_.getParameter<double>("EtaMax");
1144 
1145  int ThetaBin = conf_.getParameter<int>( "ThetaBin");
1146  double ThetaMin = conf_.getParameter<double>("ThetaMin");
1147  double ThetaMax = conf_.getParameter<double>("ThetaMax");
1148 
1149  int TrackQBin = conf_.getParameter<int>( "TrackQBin");
1150  double TrackQMin = conf_.getParameter<double>("TrackQMin");
1151  double TrackQMax = conf_.getParameter<double>("TrackQMax");
1152 
1153  int TrackPtBin = conf_.getParameter<int>( "TrackPtBin");
1154  double TrackPtMin = conf_.getParameter<double>("TrackPtMin");
1155  double TrackPtMax = conf_.getParameter<double>("TrackPtMax");
1156 
1157  int TrackPBin = conf_.getParameter<int>( "TrackPBin");
1158  double TrackPMin = conf_.getParameter<double>("TrackPMin");
1159  double TrackPMax = conf_.getParameter<double>("TrackPMax");
1160 
1161  int TrackPxBin = conf_.getParameter<int>( "TrackPxBin");
1162  double TrackPxMin = conf_.getParameter<double>("TrackPxMin");
1163  double TrackPxMax = conf_.getParameter<double>("TrackPxMax");
1164 
1165  int TrackPyBin = conf_.getParameter<int>( "TrackPyBin");
1166  double TrackPyMin = conf_.getParameter<double>("TrackPyMin");
1167  double TrackPyMax = conf_.getParameter<double>("TrackPyMax");
1168 
1169  int TrackPzBin = conf_.getParameter<int>( "TrackPzBin");
1170  double TrackPzMin = conf_.getParameter<double>("TrackPzMin");
1171  double TrackPzMax = conf_.getParameter<double>("TrackPzMax");
1172 
1173  int ptErrBin = conf_.getParameter<int>( "ptErrBin");
1174  double ptErrMin = conf_.getParameter<double>("ptErrMin");
1175  double ptErrMax = conf_.getParameter<double>("ptErrMax");
1176 
1177  int pxErrBin = conf_.getParameter<int>( "pxErrBin");
1178  double pxErrMin = conf_.getParameter<double>("pxErrMin");
1179  double pxErrMax = conf_.getParameter<double>("pxErrMax");
1180 
1181  int pyErrBin = conf_.getParameter<int>( "pyErrBin");
1182  double pyErrMin = conf_.getParameter<double>("pyErrMin");
1183  double pyErrMax = conf_.getParameter<double>("pyErrMax");
1184 
1185  int pzErrBin = conf_.getParameter<int>( "pzErrBin");
1186  double pzErrMin = conf_.getParameter<double>("pzErrMin");
1187  double pzErrMax = conf_.getParameter<double>("pzErrMax");
1188 
1189  int pErrBin = conf_.getParameter<int>( "pErrBin");
1190  double pErrMin = conf_.getParameter<double>("pErrMin");
1191  double pErrMax = conf_.getParameter<double>("pErrMax");
1192 
1193  int phiErrBin = conf_.getParameter<int>( "phiErrBin");
1194  double phiErrMin = conf_.getParameter<double>("phiErrMin");
1195  double phiErrMax = conf_.getParameter<double>("phiErrMax");
1196 
1197  int etaErrBin = conf_.getParameter<int>( "etaErrBin");
1198  double etaErrMin = conf_.getParameter<double>("etaErrMin");
1199  double etaErrMax = conf_.getParameter<double>("etaErrMax");
1200 
1201 
1202  double Chi2ProbMin = conf_.getParameter<double>("Chi2ProbMin");
1203  double Chi2ProbMax = conf_.getParameter<double>("Chi2ProbMax");
1204 
1205  ibooker.setCurrentFolder(TopFolder_);
1206 
1207  TkParameterMEs tkmes;
1208 
1209  std::string histTag = (sname == "default") ? CategoryName : sname + "_" + CategoryName;
1210 
1211  if(doAllPlots_) {
1212 
1213  // general properties
1214  ibooker.setCurrentFolder(TopFolder_+"/GeneralProperties");
1215 
1216  if (doThetaPlots_) {
1217  histname = "Chi2oNDFVsTheta_" + histTag;
1218  tkmes.Chi2oNDFVsTheta = ibooker.bookProfile(histname, histname, ThetaBin, ThetaMin, ThetaMax, Chi2NDFMin, Chi2NDFMax,"");
1219  tkmes.Chi2oNDFVsTheta->setAxisTitle("Track #theta",1);
1220  tkmes.Chi2oNDFVsTheta->setAxisTitle("Track #chi^{2}/ndf",2);
1221  }
1222  histname = "Chi2oNDFVsPhi_" + histTag;
1223  tkmes.Chi2oNDFVsPhi = ibooker.bookProfile(histname, histname, PhiBin, PhiMin, PhiMax, Chi2NDFMin, Chi2NDFMax,"");
1224  tkmes.Chi2oNDFVsPhi->setAxisTitle("Track #phi",1);
1225  tkmes.Chi2oNDFVsPhi->setAxisTitle("Track #chi^{2}/ndf",2);
1226 
1227  histname = "Chi2oNDFVsEta_" + histTag;
1228  tkmes.Chi2oNDFVsEta = ibooker.bookProfile(histname, histname, EtaBin, EtaMin, EtaMax, Chi2NDFMin, Chi2NDFMax,"");
1229  tkmes.Chi2oNDFVsEta->setAxisTitle("Track #eta",1);
1230  tkmes.Chi2oNDFVsEta->setAxisTitle("Track #chi^{2}/ndf",2);
1231 
1232  histname = "Chi2ProbVsPhi_" + histTag;
1233  tkmes.Chi2ProbVsPhi = ibooker.bookProfile(histname+CategoryName, histname+CategoryName, PhiBin, PhiMin, PhiMax, Chi2ProbMin, Chi2ProbMax);
1234  tkmes.Chi2ProbVsPhi->setAxisTitle("Tracks #phi" ,1);
1235  tkmes.Chi2ProbVsPhi->setAxisTitle("Track #chi^{2} probability",2);
1236 
1237  histname = "Chi2ProbVsEta_" + histTag;
1238  tkmes.Chi2ProbVsEta = ibooker.bookProfile(histname+CategoryName, histname+CategoryName, EtaBin, EtaMin, EtaMax, Chi2ProbMin, Chi2ProbMax);
1239  tkmes.Chi2ProbVsEta->setAxisTitle("Tracks #eta" ,1);
1240  tkmes.Chi2ProbVsEta->setAxisTitle("Track #chi^{2} probability",2);
1241 
1242  }
1243 
1244  // general properties
1245  ibooker.setCurrentFolder(TopFolder_+"/GeneralProperties");
1246 
1247  histname = "TrackP_" + histTag;
1248  tkmes.TrackP = ibooker.book1D(histname, histname, TrackPBin, TrackPMin, TrackPMax);
1249  tkmes.TrackP->setAxisTitle("Track |p| (GeV/c)", 1);
1250  tkmes.TrackP->setAxisTitle("Number of Tracks",2);
1251 
1252  histname = "TrackPt_" + histTag;
1253  tkmes.TrackPt = ibooker.book1D(histname, histname, TrackPtBin, TrackPtMin, TrackPtMax);
1254  tkmes.TrackPt->setAxisTitle("Track p_{T} (GeV/c)", 1);
1255  tkmes.TrackPt->setAxisTitle("Number of Tracks",2);
1256 
1257  if (doTrackPxPyPlots_) {
1258  histname = "TrackPx_" + histTag;
1259  tkmes.TrackPx = ibooker.book1D(histname, histname, TrackPxBin, TrackPxMin, TrackPxMax);
1260  tkmes.TrackPx->setAxisTitle("Track p_{x} (GeV/c)", 1);
1261  tkmes.TrackPx->setAxisTitle("Number of Tracks",2);
1262 
1263  histname = "TrackPy_" + histTag;
1264  tkmes.TrackPy = ibooker.book1D(histname, histname, TrackPyBin, TrackPyMin, TrackPyMax);
1265  tkmes.TrackPy->setAxisTitle("Track p_{y} (GeV/c)", 1);
1266  tkmes.TrackPy->setAxisTitle("Number of Tracks",2);
1267  }
1268  histname = "TrackPz_" + histTag;
1269  tkmes.TrackPz = ibooker.book1D(histname, histname, TrackPzBin, TrackPzMin, TrackPzMax);
1270  tkmes.TrackPz->setAxisTitle("Track p_{z} (GeV/c)", 1);
1271  tkmes.TrackPz->setAxisTitle("Number of Tracks",2);
1272 
1273  histname = "TrackPhi_" + histTag;
1274  tkmes.TrackPhi = ibooker.book1D(histname, histname, PhiBin, PhiMin, PhiMax);
1275  tkmes.TrackPhi->setAxisTitle("Track #phi", 1);
1276  tkmes.TrackPhi->setAxisTitle("Number of Tracks",2);
1277 
1278  histname = "TrackEta_" + histTag;
1279  tkmes.TrackEta = ibooker.book1D(histname, histname, EtaBin, EtaMin, EtaMax);
1280  tkmes.TrackEta->setAxisTitle("Track #eta", 1);
1281  tkmes.TrackEta->setAxisTitle("Number of Tracks",2);
1282 
1283  histname = "TrackEtaPhi_" + histTag;
1284  tkmes.TrackEtaPhi = ibooker.book2D(histname, histname, EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax);
1285  tkmes.TrackEtaPhi->setAxisTitle("Track #eta", 1);
1286  tkmes.TrackEtaPhi->setAxisTitle("Track #phi", 2);
1287 
1288  histname = "TrackEtaPhiInner_" + histTag;
1289  tkmes.TrackEtaPhiInner = ibooker.book2D(histname, histname, EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax);
1290  tkmes.TrackEtaPhiInner->setAxisTitle("Track #eta", 1);
1291  tkmes.TrackEtaPhiInner->setAxisTitle("Track #phi", 2);
1292 
1293  histname = "TrackEtaPhiOuter_" + histTag;
1294  tkmes.TrackEtaPhiOuter = ibooker.book2D(histname, histname, EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax);
1295  tkmes.TrackEtaPhiOuter->setAxisTitle("Track #eta", 1);
1296  tkmes.TrackEtaPhiOuter->setAxisTitle("Track #phi", 2);
1297 
1298 
1299 
1300  if (doThetaPlots_) {
1301  histname = "TrackTheta_" + histTag;
1302  tkmes.TrackTheta = ibooker.book1D(histname, histname, ThetaBin, ThetaMin, ThetaMax);
1303  tkmes.TrackTheta->setAxisTitle("Track #theta", 1);
1304  tkmes.TrackTheta->setAxisTitle("Number of Tracks",2);
1305  }
1306  histname = "TrackQ_" + histTag;
1307  tkmes.TrackQ = ibooker.book1D(histname, histname, TrackQBin, TrackQMin, TrackQMax);
1308  tkmes.TrackQ->setAxisTitle("Track Charge", 1);
1309  tkmes.TrackQ->setAxisTitle("Number of Tracks",2);
1310 
1311  histname = "TrackPErrOverP_" + histTag;
1312  tkmes.TrackPErr = ibooker.book1D(histname, histname, pErrBin, pErrMin, pErrMax);
1313  tkmes.TrackPErr->setAxisTitle("track error(p)/p", 1);
1314  tkmes.TrackPErr->setAxisTitle("Number of Tracks",2);
1315 
1316  histname = "TrackPtErrOverPt_" + histTag;
1317  tkmes.TrackPtErr = ibooker.book1D(histname, histname, ptErrBin, ptErrMin, ptErrMax);
1318  tkmes.TrackPtErr->setAxisTitle("track error(p_{T})/p_{T}", 1);
1319  tkmes.TrackPtErr->setAxisTitle("Number of Tracks",2);
1320 
1321  histname = "TrackPtErrOverPtVsEta_" + histTag;
1322  tkmes.TrackPtErrVsEta = ibooker.bookProfile(histname, histname, EtaBin, EtaMin, EtaMax, ptErrMin, ptErrMax);
1323  tkmes.TrackPtErrVsEta->setAxisTitle("Track #eta",1);
1324  tkmes.TrackPtErrVsEta->setAxisTitle("track error(p_{T})/p_{T}", 2);
1325 
1326  if (doTrackPxPyPlots_) {
1327  histname = "TrackPxErrOverPx_" + histTag;
1328  tkmes.TrackPxErr = ibooker.book1D(histname, histname, pxErrBin, pxErrMin, pxErrMax);
1329  tkmes.TrackPxErr->setAxisTitle("track error(p_{x})/p_{x}", 1);
1330  tkmes.TrackPxErr->setAxisTitle("Number of Tracks",2);
1331 
1332  histname = "TrackPyErrOverPy_" + histTag;
1333  tkmes.TrackPyErr = ibooker.book1D(histname, histname, pyErrBin, pyErrMin, pyErrMax);
1334  tkmes.TrackPyErr->setAxisTitle("track error(p_{y})/p_{y}", 1);
1335  tkmes.TrackPyErr->setAxisTitle("Number of Tracks",2);
1336  }
1337  histname = "TrackPzErrOverPz_" + histTag;
1338  tkmes.TrackPzErr = ibooker.book1D(histname, histname, pzErrBin, pzErrMin, pzErrMax);
1339  tkmes.TrackPzErr->setAxisTitle("track error(p_{z})/p_{z}", 1);
1340  tkmes.TrackPzErr->setAxisTitle("Number of Tracks",2);
1341 
1342  histname = "TrackPhiErr_" + histTag;
1343  tkmes.TrackPhiErr = ibooker.book1D(histname, histname, phiErrBin, phiErrMin, phiErrMax);
1344  tkmes.TrackPhiErr->setAxisTitle("track error(#phi)");
1345  tkmes.TrackPhiErr->setAxisTitle("Number of Tracks",2);
1346 
1347  histname = "TrackEtaErr_" + histTag;
1348  tkmes.TrackEtaErr = ibooker.book1D(histname, histname, etaErrBin, etaErrMin, etaErrMax);
1349  tkmes.TrackEtaErr->setAxisTitle("track error(#eta)");
1350  tkmes.TrackEtaErr->setAxisTitle("Number of Tracks",2);
1351 
1352  // rec hit profiles
1353  ibooker.setCurrentFolder(TopFolder_+"/GeneralProperties");
1354  histname = "NumberOfRecHitsPerTrackVsPhi_" + histTag;
1355  tkmes.NumberOfRecHitsPerTrackVsPhi = ibooker.bookProfile(histname, histname, PhiBin, PhiMin, PhiMax, RecHitBin, RecHitMin, RecHitMax,"");
1356  tkmes.NumberOfRecHitsPerTrackVsPhi->setAxisTitle("Track #phi",1);
1357  tkmes.NumberOfRecHitsPerTrackVsPhi->setAxisTitle("Number of RecHits in each Track",2);
1358 
1359  if (doThetaPlots_) {
1360  histname = "NumberOfRecHitsPerTrackVsTheta_" + histTag;
1361  tkmes.NumberOfRecHitsPerTrackVsTheta = ibooker.bookProfile(histname, histname, ThetaBin, ThetaMin, ThetaMax, RecHitBin, RecHitMin, RecHitMax,"");
1362  tkmes.NumberOfRecHitsPerTrackVsTheta->setAxisTitle("Track #phi",1);
1363  tkmes.NumberOfRecHitsPerTrackVsTheta->setAxisTitle("Number of RecHits in each Track",2);
1364  }
1365  histname = "NumberOfRecHitsPerTrackVsEta_" + histTag;
1366  tkmes.NumberOfRecHitsPerTrackVsEta = ibooker.bookProfile(histname, histname, EtaBin, EtaMin, EtaMax, RecHitBin, RecHitMin, RecHitMax,"");
1367  tkmes.NumberOfRecHitsPerTrackVsEta->setAxisTitle("Track #eta",1);
1368  tkmes.NumberOfRecHitsPerTrackVsEta->setAxisTitle("Number of RecHits in each Track",2);
1369 
1370  histname = "NumberOfValidRecHitsPerTrackVsPhi_" + histTag;
1371  tkmes.NumberOfValidRecHitsPerTrackVsPhi = ibooker.bookProfile(histname, histname, PhiBin, PhiMin, PhiMax, RecHitMin, RecHitMax,"");
1372  tkmes.NumberOfValidRecHitsPerTrackVsPhi->setAxisTitle("Track #phi",1);
1373  tkmes.NumberOfValidRecHitsPerTrackVsPhi->setAxisTitle("Number of valid RecHits in each Track",2);
1374 
1375  // std::cout << "[TrackAnalyzer::bookHistosForState] histTag: " << histTag << std::endl;
1376  histname = "NumberOfValidRecHitsPerTrackVsEta_" + histTag;
1377  tkmes.NumberOfValidRecHitsPerTrackVsEta = ibooker.bookProfile(histname, histname, EtaBin, EtaMin, EtaMax, RecHitMin, RecHitMax,"");
1378  tkmes.NumberOfValidRecHitsPerTrackVsEta->setAxisTitle("Track #eta",1);
1379  tkmes.NumberOfValidRecHitsPerTrackVsEta->setAxisTitle("Number of valid RecHits in each Track",2);
1380 
1382  histname = "NumberOfLayersPerTrackVsPhi_" + histTag;
1383  tkmes.NumberOfLayersPerTrackVsPhi = ibooker.bookProfile(histname, histname, PhiBin, PhiMin, PhiMax, RecLayBin, RecLayMin, RecLayMax,"");
1384  tkmes.NumberOfLayersPerTrackVsPhi->setAxisTitle("Track #phi",1);
1385  tkmes.NumberOfLayersPerTrackVsPhi->setAxisTitle("Number of Layers in each Track",2);
1386 
1387  if (doThetaPlots_) {
1388  histname = "NumberOfLayersPerTrackVsTheta_" + histTag;
1389  tkmes.NumberOfLayersPerTrackVsTheta = ibooker.bookProfile(histname, histname, ThetaBin, ThetaMin, ThetaMax, RecLayBin, RecLayMin, RecLayMax,"");
1390  tkmes.NumberOfLayersPerTrackVsTheta->setAxisTitle("Track #phi",1);
1391  tkmes.NumberOfLayersPerTrackVsTheta->setAxisTitle("Number of Layers in each Track",2);
1392  }
1393  histname = "NumberOfLayersPerTrackVsEta_" + histTag;
1394  tkmes.NumberOfLayersPerTrackVsEta = ibooker.bookProfile(histname, histname, EtaBin, EtaMin, EtaMax, RecLayBin, RecLayMin, RecLayMax,"");
1395  tkmes.NumberOfLayersPerTrackVsEta->setAxisTitle("Track #eta",1);
1396  tkmes.NumberOfLayersPerTrackVsEta->setAxisTitle("Number of Layers in each Track",2);
1397 
1398  if (doThetaPlots_) {
1399  histname = "Chi2oNDFVsTheta_" + histTag;
1400  tkmes.Chi2oNDFVsTheta = ibooker.bookProfile(histname, histname, ThetaBin, ThetaMin, ThetaMax, Chi2NDFMin, Chi2NDFMax,"");
1401  tkmes.Chi2oNDFVsTheta->setAxisTitle("Track #theta",1);
1402  tkmes.Chi2oNDFVsTheta->setAxisTitle("Track #chi^{2}/ndf",2);
1403  }
1404  if (doAllPlots_) {
1405  histname = "Chi2oNDFVsPhi_" + histTag;
1406  tkmes.Chi2oNDFVsPhi = ibooker.bookProfile(histname, histname, PhiBin, PhiMin, PhiMax, Chi2NDFMin, Chi2NDFMax,"");
1407  tkmes.Chi2oNDFVsPhi->setAxisTitle("Track #phi",1);
1408  tkmes.Chi2oNDFVsPhi->setAxisTitle("Track #chi^{2}/ndf",2);
1409 
1410  histname = "Chi2oNDFVsEta_" + histTag;
1411  tkmes.Chi2oNDFVsEta = ibooker.bookProfile(histname, histname, EtaBin, EtaMin, EtaMax, Chi2NDFMin, Chi2NDFMax,"");
1412  tkmes.Chi2oNDFVsEta->setAxisTitle("Track #eta",1);
1413  tkmes.Chi2oNDFVsEta->setAxisTitle("Track #chi^{2}/ndf",2);
1414 
1415  histname = "Chi2ProbVsPhi_" + histTag;
1416  tkmes.Chi2ProbVsPhi = ibooker.bookProfile(histname+CategoryName, histname+CategoryName, PhiBin, PhiMin, PhiMax, Chi2ProbMin, Chi2ProbMax);
1417  tkmes.Chi2ProbVsPhi->setAxisTitle("Tracks #phi" ,1);
1418  tkmes.Chi2ProbVsPhi->setAxisTitle("Track #chi^{2} probability",2);
1419 
1420  histname = "Chi2ProbVsEta_" + histTag;
1421  tkmes.Chi2ProbVsEta = ibooker.bookProfile(histname+CategoryName, histname+CategoryName, EtaBin, EtaMin, EtaMax, Chi2ProbMin, Chi2ProbMax);
1422  tkmes.Chi2ProbVsEta->setAxisTitle("Tracks #eta" ,1);
1423  tkmes.Chi2ProbVsEta->setAxisTitle("Track #chi^{2} probability",2);
1424  }
1425 
1426  // now put the MEs in the map
1427  TkParameterMEMap.insert( std::make_pair(sname, tkmes) );
1428 
1429 }
T getParameter(std::string const &) const
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:157
edm::ParameterSet conf_
Definition: TrackAnalyzer.h:73
std::map< std::string, TkParameterMEs > TkParameterMEMap
std::string TopFolder_
Definition: TrackAnalyzer.h:68
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
const double EtaMin[kNumberCalorimeter]
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:273
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
bool doTrackPxPyPlots_
Definition: TrackAnalyzer.h:93
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 1579 of file TrackAnalyzer.cc.

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

Referenced by initHisto().

1580 {
1581 
1582  // parameters from the configuration
1583  std::string QualName = conf_.getParameter<std::string>("Quality");
1585 
1586  // use the AlgoName and Quality Name
1587  std::string CategoryName = QualName != "" ? AlgoName + "_" + QualName : AlgoName;
1588 
1589  int PhiBin = conf_.getParameter<int>( "PhiBin");
1590  double PhiMin = conf_.getParameter<double>("PhiMin");
1591  double PhiMax = conf_.getParameter<double>("PhiMax");
1592 
1593  int EtaBin = conf_.getParameter<int>( "EtaBin");
1594  double EtaMin = conf_.getParameter<double>("EtaMin");
1595  double EtaMax = conf_.getParameter<double>("EtaMax");
1596 
1597  // book hit property histograms
1598  // ---------------------------------------------------------------------------------//
1599  ibooker.setCurrentFolder(TopFolder_+"/HitProperties");
1600 
1601 
1602 
1603  std::vector<std::string> subdetectors = conf_.getParameter<std::vector<std::string> >("subdetectors");
1604  int detBin = conf_.getParameter<int>("subdetectorBin");
1605 
1606  for ( auto det : subdetectors ) {
1607 
1608  // hits properties
1609  ibooker.setCurrentFolder(TopFolder_+"/HitProperties/"+det);
1610 
1611  TkRecHitsPerSubDetMEs recHitsPerSubDet_mes;
1612 
1613  recHitsPerSubDet_mes.detectorTag = det;
1614  int detID = -1;
1615  if ( det == "TIB" ) detID = StripSubdetector::TIB;
1616  if ( det == "TOB" ) detID = StripSubdetector::TOB;
1617  if ( det == "TID" ) detID = StripSubdetector::TID;
1618  if ( det == "TEC" ) detID = StripSubdetector::TEC;
1619  if ( det == "PixBarrel" ) detID = PixelSubdetector::PixelBarrel;
1620  if ( det == "PixEndcap" ) detID = PixelSubdetector::PixelEndcap;
1621  recHitsPerSubDet_mes.detectorId = detID;
1622 
1623  histname = "NumberOfRecHitsPerTrack_" + det + "_" + CategoryName;
1624  recHitsPerSubDet_mes.NumberOfRecHitsPerTrack = ibooker.book1D(histname, histname, detBin, -0.5, double(detBin)-0.5);
1625  recHitsPerSubDet_mes.NumberOfRecHitsPerTrack->setAxisTitle("Number of " + det + " valid RecHits in each Track",1);
1626  recHitsPerSubDet_mes.NumberOfRecHitsPerTrack->setAxisTitle("Number of Tracks", 2);
1627 
1628  histname = "NumberOfRecHitsPerTrackVsPhi_" + det + "_" + CategoryName;
1629  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsPhi = ibooker.bookProfile(histname, histname, PhiBin, PhiMin, PhiMax, detBin, -0.5, double(detBin)-0.5,"");
1630  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsPhi->setAxisTitle("Track #phi",1);
1631  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsPhi->setAxisTitle("Number of " + det + " valid RecHits in each Track",2);
1632 
1633  histname = "NumberOfRecHitsPerTrackVsEta_" + det + "_" + CategoryName;
1634  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsEta = ibooker.bookProfile(histname, histname, EtaBin, EtaMin, EtaMax, detBin, -0.5, double(detBin)-0.5,"");
1635  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsEta->setAxisTitle("Track #eta",1);
1636  recHitsPerSubDet_mes.NumberOfRecHitsPerTrackVsEta->setAxisTitle("Number of " + det + " valid RecHits in each Track",2);
1637 
1638  histname = "NumberOfLayersPerTrack_" + det + "_" + CategoryName;
1639  recHitsPerSubDet_mes.NumberOfLayersPerTrack = ibooker.book1D(histname, histname, detBin, -0.5, double(detBin)-0.5);
1640  recHitsPerSubDet_mes.NumberOfLayersPerTrack->setAxisTitle("Number of " + det + " valid Layers in each Track",1);
1641  recHitsPerSubDet_mes.NumberOfLayersPerTrack->setAxisTitle("Number of Tracks", 2);
1642 
1643  histname = "NumberOfLayersPerTrackVsPhi_" + det + "_" + CategoryName;
1644  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsPhi = ibooker.bookProfile(histname, histname, PhiBin, PhiMin, PhiMax, detBin, -0.5, double(detBin)-0.5,"");
1645  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsPhi->setAxisTitle("Track #phi",1);
1646  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsPhi->setAxisTitle("Number of " + det + " valid Layers in each Track",2);
1647 
1648  histname = "NumberOfLayersPerTrackVsEta_" + det + "_" + CategoryName;
1649  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsEta = ibooker.bookProfile(histname, histname, EtaBin, EtaMin, EtaMax, detBin, -0.5, double(detBin)-0.5,"");
1650  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsEta->setAxisTitle("Track #eta",1);
1651  recHitsPerSubDet_mes.NumberOfLayersPerTrackVsEta->setAxisTitle("Number of " + det + " valid Layers in each Track",2);
1652 
1653  TkRecHitsPerSubDetMEMap.insert(std::pair<std::string,TkRecHitsPerSubDetMEs>(det,recHitsPerSubDet_mes));
1654 
1655 
1656  }
1657 
1658 
1659 }
T getParameter(std::string const &) const
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:157
edm::ParameterSet conf_
Definition: TrackAnalyzer.h:73
std::map< std::string, TkRecHitsPerSubDetMEs > TkRecHitsPerSubDetMEMap
std::string TopFolder_
Definition: TrackAnalyzer.h:68
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
const double EtaMin[kNumberCalorimeter]
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:273
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 1734 of file TrackAnalyzer.cc.

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

Referenced by TrackingMonitor::beginLuminosityBlock().

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

Definition at line 1726 of file TrackAnalyzer.cc.

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

1726  {
1727  TkParameterMEs tkmes;
1728  dqmStore_->softReset(Chi2oNDF);
1729  dqmStore_->softReset(NumberOfRecHitsPerTrack);
1730 }
MonitorElement * NumberOfRecHitsPerTrack
void softReset(MonitorElement *me)
Definition: DQMStore.cc:3383
MonitorElement * Chi2oNDF
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 1434 of file TrackAnalyzer.cc.

References TrajectoryStateOnSurface::cartesianError(), TrajectoryStateOnSurface::charge(), reco::TrackBase::charge(), reco::TrackBase::chi2(), TrackAnalyzer::TkParameterMEs::Chi2oNDFVsEta, TrackAnalyzer::TkParameterMEs::Chi2oNDFVsPhi, TrackAnalyzer::TkParameterMEs::Chi2oNDFVsTheta, TrackAnalyzer::TkParameterMEs::Chi2ProbVsEta, TrackAnalyzer::TkParameterMEs::Chi2ProbVsPhi, TrajectoryStateOnSurface::curvilinearError(), doAllPlots_, doThetaPlots_, doTrackPxPyPlots_, benchmark_cfg::errors, 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(), PV3DBase< T, PVType, FrameType >::mag(), CartesianTrajectoryError::matrix(), CurvilinearTrajectoryError::matrix(), reco::TrackBase::ndof(), 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, 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().

1435 {
1436  //get the kinematic parameters
1437  double p, px, py, pz, pt, theta, phi, eta, q;
1438  double pxerror, pyerror, pzerror, pterror, perror, phierror, etaerror;
1439 
1440  auto phiIn = track.innerPosition().phi();
1441  auto etaIn = track.innerPosition().eta();
1442  auto phiOut = track.outerPosition().phi();
1443  auto etaOut = track.outerPosition().eta();
1444 
1445 
1446  if (sname == "default") {
1447 
1448  p = track.p();
1449  px = track.px();
1450  py = track.py();
1451  pz = track.pz();
1452  pt = track.pt();
1453  phi = track.phi();
1454  theta = track.theta();
1455  eta = track.eta();
1456  q = track.charge();
1457 
1458  pterror = (pt) ? track.ptError()/(pt*pt) : 0.0;
1459  pxerror = -1.0;
1460  pyerror = -1.0;
1461  pzerror = -1.0;
1462  perror = -1.0;
1463  phierror = track.phiError();
1464  etaerror = track.etaError();
1465 
1466  } else {
1467 
1469  iSetup.get<TransientTrackRecord>().get("TransientTrackBuilder",theB);
1470  reco::TransientTrack TransTrack = theB->build(track);
1471 
1473 
1474  if (sname == "OuterSurface") TSOS = TransTrack.outermostMeasurementState();
1475  else if (sname == "InnerSurface") TSOS = TransTrack.innermostMeasurementState();
1476  else if (sname == "ImpactPoint") TSOS = TransTrack.impactPointState();
1477 
1478  p = TSOS.globalMomentum().mag();
1479  px = TSOS.globalMomentum().x();
1480  py = TSOS.globalMomentum().y();
1481  pz = TSOS.globalMomentum().z();
1482  pt = TSOS.globalMomentum().perp();
1483  phi = TSOS.globalMomentum().phi();
1484  theta = TSOS.globalMomentum().theta();
1485  eta = TSOS.globalMomentum().eta();
1486  q = TSOS.charge();
1487 
1488  //get the error of the kinimatic parameters
1490  double partialPterror = errors(3,3)*pow(TSOS.globalMomentum().x(),2) + errors(4,4)*pow(TSOS.globalMomentum().y(),2);
1491  pterror = sqrt(partialPterror)/TSOS.globalMomentum().perp();
1492  pxerror = sqrt(errors(3,3))/TSOS.globalMomentum().x();
1493  pyerror = sqrt(errors(4,4))/TSOS.globalMomentum().y();
1494  pzerror = sqrt(errors(5,5))/TSOS.globalMomentum().z();
1495  perror = sqrt(partialPterror+errors(5,5)*pow(TSOS.globalMomentum().z(),2))/TSOS.globalMomentum().mag();
1496  phierror = sqrt(TSOS.curvilinearError().matrix()(2,2));
1497  etaerror = sqrt(TSOS.curvilinearError().matrix()(1,1))*fabs(sin(TSOS.globalMomentum().theta()));
1498 
1499  }
1500 
1501  std::map<std::string, TkParameterMEs>::iterator iPos = TkParameterMEMap.find(sname);
1502  if (iPos != TkParameterMEMap.end()) {
1503 
1504  TkParameterMEs tkmes = iPos->second;
1505 
1506  // momentum
1507  tkmes.TrackP->Fill(p);
1508  if (doTrackPxPyPlots_) {
1509  tkmes.TrackPx->Fill(px);
1510  tkmes.TrackPy->Fill(py);
1511  }
1512  tkmes.TrackPz->Fill(pz);
1513  tkmes.TrackPt->Fill(pt);
1514 
1515  // angles
1516  tkmes.TrackPhi->Fill(phi);
1517  tkmes.TrackEta->Fill(eta);
1518  tkmes.TrackEtaPhi->Fill(eta,phi);
1519  tkmes.TrackEtaPhiInner->Fill(etaIn,phiIn);
1520  tkmes.TrackEtaPhiOuter->Fill(etaOut,phiOut);
1521 
1522  if (doThetaPlots_) {
1523  tkmes.TrackTheta->Fill(theta);
1524  }
1525  tkmes.TrackQ->Fill(q);
1526 
1527  // errors
1528  tkmes.TrackPtErr->Fill(pterror);
1529  tkmes.TrackPtErrVsEta->Fill(eta,pterror);
1530  if (doTrackPxPyPlots_) {
1531  tkmes.TrackPxErr->Fill(pxerror);
1532  tkmes.TrackPyErr->Fill(pyerror);
1533  }
1534  tkmes.TrackPzErr->Fill(pzerror);
1535  tkmes.TrackPErr->Fill(perror);
1536  tkmes.TrackPhiErr->Fill(phierror);
1537  tkmes.TrackEtaErr->Fill(etaerror);
1538 
1539  int nRecHits = track.hitPattern().numberOfHits(reco::HitPattern::TRACK_HITS);
1540  int nValidRecHits = track.numberOfValidHits();
1541  // rec hits
1542  tkmes.NumberOfRecHitsPerTrackVsPhi->Fill(phi, nRecHits);
1543  if (doThetaPlots_) {
1544  tkmes.NumberOfRecHitsPerTrackVsTheta->Fill(theta,nRecHits);
1545  }
1546  tkmes.NumberOfRecHitsPerTrackVsEta->Fill(eta, nRecHits);
1547 
1548  tkmes.NumberOfValidRecHitsPerTrackVsPhi->Fill(phi, nValidRecHits);
1549  tkmes.NumberOfValidRecHitsPerTrackVsEta->Fill(eta, nValidRecHits);
1550 
1551  int nLayers = track.hitPattern().trackerLayersWithMeasurement();
1552  // rec layers
1553  tkmes.NumberOfLayersPerTrackVsPhi->Fill(phi, nLayers);
1554  if (doThetaPlots_) {
1555  tkmes.NumberOfLayersPerTrackVsTheta->Fill(theta, nLayers);
1556  }
1557  tkmes.NumberOfLayersPerTrackVsEta->Fill(eta, nLayers);
1558 
1559  double chi2prob = TMath::Prob(track.chi2(),(int)track.ndof());
1560  double chi2oNDF = track.normalizedChi2();
1561 
1562  if(doAllPlots_) {
1563 
1564  // general properties
1565  if (doThetaPlots_) {
1566  tkmes.Chi2oNDFVsTheta->Fill(theta, chi2oNDF);
1567  }
1568  tkmes.Chi2oNDFVsPhi->Fill(phi, chi2oNDF);
1569  tkmes.Chi2oNDFVsEta->Fill(eta, chi2oNDF);
1570  tkmes.Chi2ProbVsPhi->Fill(phi, chi2prob);
1571  tkmes.Chi2ProbVsEta->Fill(eta, chi2prob);
1572  }
1573 
1574  }
1575 
1576 }
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
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:527
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_
Definition: TrackAnalyzer.h:93
const AlgebraicSymMatrix55 & matrix() const
GlobalVector globalMomentum() const
int charge() const
track electric charge
Definition: TrackBase.h:562
TrajectoryStateOnSurface impactPointState() const
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 1662 of file TrackAnalyzer.cc.

References 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(), 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().

1663 {
1664 
1665  double phi = track.phi();
1666  double eta = track.eta();
1667 
1668  for ( std::map<std::string,TkRecHitsPerSubDetMEs>::iterator it = TkRecHitsPerSubDetMEMap.begin();
1669  it != TkRecHitsPerSubDetMEMap.end(); it++ ) {
1670 
1671  int nValidLayers = 0;
1672  int nValidRecHits = 0;
1673  int substr = it->second.detectorId;
1674  switch(substr) {
1675  case StripSubdetector::TIB :
1676  nValidLayers = track.hitPattern().stripTIBLayersWithMeasurement(); // case 0: strip TIB
1677  nValidRecHits = track.hitPattern().numberOfValidStripTIBHits(); // case 0: strip TIB
1678  break;
1679  case StripSubdetector::TID :
1680  nValidLayers = track.hitPattern().stripTIDLayersWithMeasurement(); // case 0: strip TID
1681  nValidRecHits = track.hitPattern().numberOfValidStripTIDHits(); // case 0: strip TID
1682  break;
1683  case StripSubdetector::TOB :
1684  nValidLayers = track.hitPattern().stripTOBLayersWithMeasurement(); // case 0: strip TOB
1685  nValidRecHits = track.hitPattern().numberOfValidStripTOBHits(); // case 0: strip TOB
1686  break;
1687  case StripSubdetector::TEC :
1688  nValidLayers = track.hitPattern().stripTECLayersWithMeasurement(); // case 0: strip TEC
1689  nValidRecHits = track.hitPattern().numberOfValidStripTECHits(); // case 0: strip TEC
1690  break;
1692  nValidLayers = track.hitPattern().pixelBarrelLayersWithMeasurement(); // case 0: pixel PXB
1693  nValidRecHits = track.hitPattern().numberOfValidPixelBarrelHits(); // case 0: pixel PXB
1694  break;
1696  nValidLayers = track.hitPattern().pixelEndcapLayersWithMeasurement(); // case 0: pixel PXF
1697  nValidRecHits = track.hitPattern().numberOfValidPixelEndcapHits(); // case 0: pixel PXF
1698  break;
1699  default :
1700  break;
1701  }
1702 
1703  //Fill Layers and RecHits
1704  it->second.NumberOfRecHitsPerTrack -> Fill(nValidRecHits);
1705  it->second.NumberOfRecHitsPerTrackVsPhi -> Fill(phi, nValidRecHits);
1706  it->second.NumberOfRecHitsPerTrackVsEta -> Fill(eta, nValidRecHits);
1707 
1708  it->second.NumberOfLayersPerTrack -> Fill(nValidLayers);
1709  it->second.NumberOfLayersPerTrackVsPhi -> Fill(phi, nValidLayers);
1710  it->second.NumberOfLayersPerTrackVsEta -> Fill(eta, nValidLayers);
1711  }
1712 
1713 }
int stripTOBLayersWithMeasurement() const
Definition: HitPattern.cc:613
int stripTIBLayersWithMeasurement() const
Definition: HitPattern.cc:591
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:640
std::map< std::string, TkRecHitsPerSubDetMEs > TkRecHitsPerSubDetMEMap
int pixelEndcapLayersWithMeasurement() const
Definition: HitPattern.cc:579
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:602
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:567
int numberOfValidStripTIBHits() const
Definition: HitPattern.h:858
int numberOfValidPixelEndcapHits() const
Definition: HitPattern.h:848
int stripTECLayersWithMeasurement() const
Definition: HitPattern.cc:624
void TrackAnalyzer::initHisto ( DQMStore::IBooker ibooker,
const edm::EventSetup iSetup 
)
virtual

Definition at line 142 of file TrackAnalyzer.cc.

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

Referenced by TrackingMonitor::bookHistograms().

143 {
144 
146  bookHistosForBeamSpot(ibooker);
148  bookHistosForEfficiencyFromHitPatter(ibooker, iSetup);
149 
150  // book tracker specific related histograms
151  // ---------------------------------------------------------------------------------//
153 
154  // book state related histograms
155  // ---------------------------------------------------------------------------------//
157 
158  std::string StateName = conf_.getParameter<std::string>("MeasurementState");
159 
160  if (StateName == "All") {
161  bookHistosForState("OuterSurface", ibooker);
162  bookHistosForState("InnerSurface", ibooker);
163  bookHistosForState("ImpactPoint" , ibooker);
164  } else if (
165  StateName != "OuterSurface" &&
166  StateName != "InnerSurface" &&
167  StateName != "ImpactPoint" &&
168  StateName != "default"
169  ) {
170  bookHistosForState("default", ibooker);
171 
172  } else {
173  bookHistosForState(StateName, ibooker);
174  }
175 
176  }
177 }
T getParameter(std::string const &) const
bool doTrackerSpecific_
Definition: TrackAnalyzer.h:75
void bookHistosForLScertification(DQMStore::IBooker &ibooker)
edm::ParameterSet conf_
Definition: TrackAnalyzer.h:73
bool doMeasurementStatePlots_
Definition: TrackAnalyzer.h:81
void bookHistosForHitProperties(DQMStore::IBooker &ibooker)
void bookHistosForTrackerSpecific(DQMStore::IBooker &ibooker)
void bookHistosForBeamSpot(DQMStore::IBooker &ibooker)
void bookHistosForState(std::string sname, DQMStore::IBooker &ibooker)
void bookHistosForEfficiencyFromHitPatter(DQMStore::IBooker &ibooker, const edm::EventSetup &iSetup)
void TrackAnalyzer::initHistos ( )
private

Definition at line 62 of file TrackAnalyzer.cc.

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

63 {
64  Chi2 = nullptr;
65  Chi2Prob = nullptr;
66  Chi2ProbVsPhi = nullptr;
67  Chi2ProbVsEta = nullptr;
68  Chi2oNDF = nullptr;
69  Chi2oNDFVsEta = nullptr;
70  Chi2oNDFVsPhi = nullptr;
71  Chi2oNDFVsTheta = nullptr;
72  Chi2oNDFVsTheta = nullptr;
73  Chi2oNDFVsPhi = nullptr;
74  Chi2oNDFVsEta = nullptr;
75 
76  NumberOfRecHitsPerTrack = nullptr;
79 
83 
85 
88 
89 
90  DistanceOfClosestApproach = nullptr;
96  xPointOfClosestApproach = nullptr;
99  yPointOfClosestApproach = nullptr;
102  zPointOfClosestApproach = nullptr;
104  algorithm = nullptr;
105  oriAlgo = nullptr;
106  stoppingSource = nullptr;
107  stoppingSourceVSeta = nullptr;
108  stoppingSourceVSphi = nullptr;
109  // TESTING
112 
113 // by Mia in order to deal w/ LS transitions
114  Chi2oNDF_lumiFlag = nullptr;
116 
118  //special Plots for HI DQM //SHOULD I ADD THE BOOL HERE??
120  LongDCASig = nullptr;
121  TransDCASig = nullptr;
122  dNdPhi_HighPurity = nullptr;
123  dNdEta_HighPurity = nullptr;
124  dNdPt_HighPurity = nullptr;
125  NhitVsEta_HighPurity = nullptr;
126  NhitVsPhi_HighPurity = nullptr;
127 
128  // IP significance
129  sipDxyToBS = nullptr;
130  sipDzToBS = nullptr;
131  sip3dToPV = nullptr;
132  sip2dToPV = nullptr;
133  sipDxyToPV = nullptr;
134  sipDzToPV = nullptr;
135 
136 }
MonitorElement * stoppingSourceVSphi
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 * 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 * DistanceOfClosestApproachToBSVsPhi
MonitorElement * NhitVsEta_HighPurity
MonitorElement * yPointOfClosestApproachVsZ0wrt000
MonitorElement * TESTDistanceOfClosestApproachToBS
MonitorElement * NumberOfRecHitsPerTrackVsEta
MonitorElement * yPointOfClosestApproach
MonitorElement * Chi2Prob
Definition: Chi2.h:17
MonitorElement * zPointOfClosestApproach
MonitorElement * Chi2ProbVsEta
MonitorElement * DistanceOfClosestApproachToBS
MonitorElement * Chi2oNDF
MonitorElement * Chi2oNDFVsEta
MonitorElement * LongDCASig
void TrackAnalyzer::setLumiFlag ( )

Definition at line 1717 of file TrackAnalyzer.cc.

References Chi2oNDF_lumiFlag, and NumberOfRecHitsPerTrack_lumiFlag.

Referenced by TrackingMonitor::bookHistograms().

1717  {
1718 
1719  TkParameterMEs tkmes;
1722 }
MonitorElement * Chi2oNDF_lumiFlag
MonitorElement * NumberOfRecHitsPerTrack_lumiFlag
void TrackAnalyzer::setNumberOfGoodVertices ( const edm::Event iEvent)

Definition at line 837 of file TrackAnalyzer.cc.

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

Referenced by TrackingMonitor::analyze().

837  {
838 
839  good_vertices_ = 0;
840 
841  edm::Handle<reco::VertexCollection> recoPrimaryVerticesHandle;
842  iEvent.getByToken(pvToken_, recoPrimaryVerticesHandle);
843  if (recoPrimaryVerticesHandle.isValid())
844  if (recoPrimaryVerticesHandle->size() > 0)
845  for (auto v : *recoPrimaryVerticesHandle)
846  if (v.ndof() >= pvNDOF_ && !v.isFake())
847  ++good_vertices_;
848 }
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:462
bool isValid() const
Definition: HandleBase.h:75
unsigned int good_vertices_
edm::EDGetTokenT< reco::VertexCollection > pvToken_
Definition: TrackAnalyzer.h:71
void TrackAnalyzer::undoSoftReset ( DQMStore dqmStore_)

Definition at line 1742 of file TrackAnalyzer.cc.

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

1742  {
1743  TkParameterMEs tkmes;
1744  dqmStore_->disableSoftReset(Chi2oNDF);
1746 }
MonitorElement * NumberOfRecHitsPerTrack
void disableSoftReset(MonitorElement *me)
Definition: DQMStore.cc:3391
MonitorElement * Chi2oNDF

Member Data Documentation

MonitorElement* TrackAnalyzer::algorithm
private

Definition at line 326 of file TrackAnalyzer.h.

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

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

Definition at line 70 of file TrackAnalyzer.h.

Referenced by analyze(), and TrackAnalyzer().

MonitorElement* TrackAnalyzer::Chi2
private

Definition at line 293 of file TrackAnalyzer.h.

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

Definition at line 297 of file TrackAnalyzer.h.

Referenced by initHistos().

MonitorElement* TrackAnalyzer::Chi2oNDFVsPhi
private

Definition at line 298 of file TrackAnalyzer.h.

Referenced by initHistos().

MonitorElement* TrackAnalyzer::Chi2oNDFVsTheta
private

Definition at line 299 of file TrackAnalyzer.h.

Referenced by initHistos().

MonitorElement* TrackAnalyzer::Chi2Prob
private

Definition at line 294 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::Chi2ProbVsEta
private

Definition at line 301 of file TrackAnalyzer.h.

Referenced by initHistos().

MonitorElement* TrackAnalyzer::Chi2ProbVsPhi
private

Definition at line 302 of file TrackAnalyzer.h.

Referenced by initHistos().

MonitorElement* TrackAnalyzer::Chi2ProbVsTheta
private

Definition at line 303 of file TrackAnalyzer.h.

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

Definition at line 305 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::DistanceOfClosestApproachToBS
private

Definition at line 306 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::DistanceOfClosestApproachToBSVsPhi
private

Definition at line 310 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::DistanceOfClosestApproachToPV
private

Definition at line 307 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForBeamSpot().

MonitorElement* TrackAnalyzer::DistanceOfClosestApproachToPVVsPhi
private

Definition at line 311 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForBeamSpot().

MonitorElement* TrackAnalyzer::DistanceOfClosestApproachVsEta
private

Definition at line 312 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::DistanceOfClosestApproachVsPhi
private

Definition at line 309 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::DistanceOfClosestApproachVsTheta
private

Definition at line 308 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::dNdEta_HighPurity
private

Definition at line 342 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::dNdPhi_HighPurity
private

Definition at line 341 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::dNdPt_HighPurity
private

Definition at line 343 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::dNhitdPt_HighPurity
private

Definition at line 347 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

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

Definition at line 77 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForBeamSpot().

bool TrackAnalyzer::doDCAPlots_
private

Definition at line 79 of file TrackAnalyzer.h.

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

bool TrackAnalyzer::doDCAwrt000Plots_
private

Definition at line 97 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForBeamSpot().

bool TrackAnalyzer::doDCAwrtPVPlots_
private

Definition at line 96 of file TrackAnalyzer.h.

bool TrackAnalyzer::doEffFromHitPattern_
private

Definition at line 112 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForEfficiencyFromHitPatter().

bool TrackAnalyzer::doGeneralPropertiesPlots_
private

Definition at line 80 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

bool TrackAnalyzer::doHIPlots_
private

Definition at line 105 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

bool TrackAnalyzer::doHitPropertiesPlots_
private

Definition at line 82 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

bool TrackAnalyzer::doLayersVsPhiVsEtaPerTrack_
private

Definition at line 85 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

bool TrackAnalyzer::doLumiAnalysis_
private

Definition at line 99 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForLScertification().

bool TrackAnalyzer::doMeasurementStatePlots_
private

Definition at line 81 of file TrackAnalyzer.h.

Referenced by analyze(), and initHisto().

bool TrackAnalyzer::doPVPlots_
private

Definition at line 78 of file TrackAnalyzer.h.

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

bool TrackAnalyzer::doRecHitsPerTrackProfile_
private

Definition at line 89 of file TrackAnalyzer.h.

bool TrackAnalyzer::doRecHitVsPhiVsEtaPerTrack_
private

Definition at line 83 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

bool TrackAnalyzer::doSIPPlots_
private

Definition at line 108 of file TrackAnalyzer.h.

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

bool TrackAnalyzer::doTestPlots_
private

Definition at line 102 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForBeamSpot().

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

Definition at line 88 of file TrackAnalyzer.h.

bool TrackAnalyzer::doTrackerSpecific_
private

Definition at line 75 of file TrackAnalyzer.h.

Referenced by analyze(), and initHisto().

bool TrackAnalyzer::doTrackLayersVsPhiVsEtaPerTrack_
private

Definition at line 87 of file TrackAnalyzer.h.

bool TrackAnalyzer::doTrackPxPyPlots_
private

Definition at line 93 of file TrackAnalyzer.h.

Referenced by bookHistosForState(), and fillHistosForState().

bool TrackAnalyzer::doTrackRecHitVsPhiVsEtaPerTrack_
private

Definition at line 86 of file TrackAnalyzer.h.

unsigned int TrackAnalyzer::good_vertices_
private

Definition at line 391 of file TrackAnalyzer.h.

Referenced by analyze(), and setNumberOfGoodVertices().

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

Definition at line 389 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForEfficiencyFromHitPatter().

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

Definition at line 388 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForEfficiencyFromHitPatter().

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

Definition at line 387 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForEfficiencyFromHitPatter().

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

Definition at line 390 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForEfficiencyFromHitPatter().

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

Definition at line 386 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForEfficiencyFromHitPatter().

MonitorElement* TrackAnalyzer::LongDCASig
private

Definition at line 339 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::NhitVsEta_HighPurity
private

Definition at line 344 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::NhitVsPhi_HighPurity
private

Definition at line 345 of file TrackAnalyzer.h.

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

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

Definition at line 285 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::NumberOfLayersPerTrackVsEta
private

Definition at line 289 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::NumberOfLayersPerTrackVsPhi
private

Definition at line 287 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::NumberOfLayersPerTrackVsTheta
private

Definition at line 288 of file TrackAnalyzer.h.

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

Definition at line 291 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::NumberOfLostRecHitsPerTrack
private

Definition at line 251 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::NumberOfLostRecHitsPerTrackVsEta = 0
private

Definition at line 268 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::NumberOfLostRecHitsPerTrackVsPhi = 0
private

Definition at line 266 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::NumberOfLostRecHitsPerTrackVsTheta = 0
private

Definition at line 267 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::NumberOfLostRecHitVsPhiVsEtaPerTrack = 0
private

Definition at line 269 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::NumberOfMIRecHitsPerTrack = 0
private

Definition at line 252 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::NumberOfMIRecHitsPerTrackVsEta = 0
private

Definition at line 273 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::NumberOfMIRecHitsPerTrackVsPhi = 0
private

Definition at line 271 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::NumberOfMIRecHitsPerTrackVsTheta = 0
private

Definition at line 272 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::NumberOfMIRecHitVsPhiVsEtaPerTrack = 0
private

Definition at line 274 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::NumberOfMORecHitsPerTrack = 0
private

Definition at line 253 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::NumberOfMORecHitsPerTrackVsEta = 0
private

Definition at line 278 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::NumberOfMORecHitsPerTrackVsPhi = 0
private

Definition at line 276 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::NumberOfMORecHitsPerTrackVsTheta = 0
private

Definition at line 277 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::NumberOfMORecHitVsPhiVsEtaPerTrack = 0
private

Definition at line 279 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 258 of file TrackAnalyzer.h.

Referenced by initHistos().

MonitorElement* TrackAnalyzer::NumberOfRecHitsPerTrackVsPhi = 0
private

Definition at line 256 of file TrackAnalyzer.h.

Referenced by initHistos().

MonitorElement* TrackAnalyzer::NumberOfRecHitsPerTrackVsTheta = 0
private

Definition at line 257 of file TrackAnalyzer.h.

Referenced by initHistos().

MonitorElement* TrackAnalyzer::NumberOfRecHitVsPhiVsEtaPerTrack = 0
private

Definition at line 259 of file TrackAnalyzer.h.

Referenced by initHistos().

MonitorElement* TrackAnalyzer::NumberOfValidRecHitsPerTrack
private

Definition at line 250 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::NumberOfValidRecHitsPerTrackVsEta = 0
private

Definition at line 263 of file TrackAnalyzer.h.

Referenced by initHistos().

MonitorElement* TrackAnalyzer::NumberOfValidRecHitsPerTrackVsPhi = 0
private

Definition at line 261 of file TrackAnalyzer.h.

Referenced by initHistos().

MonitorElement* TrackAnalyzer::NumberOfValidRecHitsPerTrackVsTheta = 0
private

Definition at line 262 of file TrackAnalyzer.h.

MonitorElement* TrackAnalyzer::NumberOfValidRecHitVsPhiVsEtaPerTrack = 0
private

Definition at line 264 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement * TrackAnalyzer::oriAlgo
private

Definition at line 326 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::Ptdist_HighPurity
private

Definition at line 346 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

int TrackAnalyzer::pvNDOF_
private

Definition at line 113 of file TrackAnalyzer.h.

Referenced by setNumberOfGoodVertices().

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

Definition at line 71 of file TrackAnalyzer.h.

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

std::string TrackAnalyzer::qualityString_
private

Definition at line 114 of file TrackAnalyzer.h.

Referenced by analyze().

MonitorElement* TrackAnalyzer::sip2dToPV
private

Definition at line 353 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::sip3dToPV
private

Definition at line 352 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::sipDxyToBS
private

Definition at line 350 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::sipDxyToPV
private

Definition at line 354 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::sipDzToBS
private

Definition at line 351 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::sipDzToPV
private

Definition at line 355 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::stoppingSource
private

Definition at line 327 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::stoppingSourceVSeta
private

Definition at line 328 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::stoppingSourceVSphi
private

Definition at line 329 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::TESTDistanceOfClosestApproachToBS
private

Definition at line 331 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::TESTDistanceOfClosestApproachToBSVsPhi
private

Definition at line 332 of file TrackAnalyzer.h.

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

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

Definition at line 246 of file TrackAnalyzer.h.

Referenced by bookHistosForState(), and fillHistosForState().

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

Definition at line 368 of file TrackAnalyzer.h.

Referenced by bookHistosForTrackerSpecific(), and fillHistosForTrackerSpecific().

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

Definition at line 340 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::ValidFractionPerTrack = 0
private

Definition at line 281 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::ValidFractionVsPhiVsEtaPerTrack = 0
private

Definition at line 282 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::xPointOfClosestApproach
private

Definition at line 313 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::xPointOfClosestApproachToPV
private

Definition at line 314 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::xPointOfClosestApproachVsZ0wrt000
private

Definition at line 315 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::xPointOfClosestApproachVsZ0wrtBS
private

Definition at line 316 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::xPointOfClosestApproachVsZ0wrtPV
private

Definition at line 317 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForBeamSpot().

MonitorElement* TrackAnalyzer::yPointOfClosestApproach
private

Definition at line 318 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::yPointOfClosestApproachToPV
private

Definition at line 319 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::yPointOfClosestApproachVsZ0wrt000
private

Definition at line 320 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::yPointOfClosestApproachVsZ0wrtBS
private

Definition at line 321 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::yPointOfClosestApproachVsZ0wrtPV
private

Definition at line 322 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForBeamSpot().

MonitorElement* TrackAnalyzer::zPointOfClosestApproach
private

Definition at line 323 of file TrackAnalyzer.h.

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

MonitorElement* TrackAnalyzer::zPointOfClosestApproachToPV
private

Definition at line 324 of file TrackAnalyzer.h.

Referenced by analyze(), and bookHistosForHitProperties().

MonitorElement* TrackAnalyzer::zPointOfClosestApproachVsPhi
private

Definition at line 325 of file TrackAnalyzer.h.

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