test
CMS 3D CMS Logo

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

#include <TrackBuildingAnalyzer.h>

Public Member Functions

virtual void analyze (const edm::Event &iEvent, const edm::EventSetup &iSetup, const TrajectorySeed &seed, const reco::BeamSpot &bs, const edm::ESHandle< MagneticField > &theMF, const edm::ESHandle< TransientTrackingRecHitBuilder > &theTTRHBuilder)
 
virtual void analyze (const edm::Event &iEvent, const edm::EventSetup &iSetup, const TrackCandidate &candidate, const reco::BeamSpot &bs, const edm::ESHandle< MagneticField > &theMF, const edm::ESHandle< TransientTrackingRecHitBuilder > &theTTRHBuilder)
 
virtual void initHisto (DQMStore::IBooker &ibooker)
 
 TrackBuildingAnalyzer (const edm::ParameterSet &)
 
virtual ~TrackBuildingAnalyzer ()
 

Private Member Functions

void bookHistos (std::string sname, DQMStore::IBooker &ibooker)
 
void fillHistos (const edm::EventSetup &iSetup, const reco::Track &track, std::string sname)
 

Private Attributes

edm::ParameterSet conf_
 
bool doAllPlots
 
bool doAllSeedPlots
 
bool doAllTCPlots
 
bool doDxy
 
bool doDz
 
bool doETA
 
bool doNRecHits
 
bool doPHI
 
bool doPHIVsETA
 
bool doProfETA
 
bool doProfPHI
 
bool doPT
 
bool doQ
 
bool doTCPlots
 
bool doTheta
 
std::string histname
 
MonitorElementNumberOfRecHitsPerSeed
 
MonitorElementNumberOfRecHitsPerSeedVsEtaProfile
 
MonitorElementNumberOfRecHitsPerSeedVsPhiProfile
 
MonitorElementNumberOfRecHitsPerTrackCand
 
MonitorElementNumberOfRecHitsPerTrackCandVsEtaProfile
 
MonitorElementNumberOfRecHitsPerTrackCandVsPhiProfile
 
MonitorElementSeedDxy
 
MonitorElementSeedDz
 
MonitorElementSeedEta
 
MonitorElementSeedPhi
 
MonitorElementSeedPhiVsEta
 
MonitorElementSeedPt
 
MonitorElementSeedQ
 
MonitorElementSeedTheta
 
MonitorElementTrackCandDxy
 
MonitorElementTrackCandDz
 
MonitorElementTrackCandEta
 
MonitorElementTrackCandPhi
 
MonitorElementTrackCandPhiVsEta
 
MonitorElementTrackCandPt
 
MonitorElementTrackCandQ
 
MonitorElementTrackCandTheta
 

Detailed Description

Monitoring source for general quantities related to tracks.

Definition at line 34 of file TrackBuildingAnalyzer.h.

Constructor & Destructor Documentation

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

Definition at line 21 of file TrackBuildingAnalyzer.cc.

22  : conf_( iConfig )
23  , SeedPt(NULL)
24  , SeedEta(NULL)
25  , SeedPhi(NULL)
27  , SeedTheta(NULL)
28  , SeedQ(NULL)
29  , SeedDxy(NULL)
30  , SeedDz(NULL)
34 {
35 }
#define NULL
Definition: scimark2.h:8
MonitorElement * NumberOfRecHitsPerSeed
MonitorElement * NumberOfRecHitsPerSeedVsPhiProfile
MonitorElement * SeedPhiVsEta
MonitorElement * NumberOfRecHitsPerSeedVsEtaProfile
TrackBuildingAnalyzer::~TrackBuildingAnalyzer ( )
virtual

Definition at line 37 of file TrackBuildingAnalyzer.cc.

38 {
39 }

Member Function Documentation

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

Definition at line 276 of file TrackBuildingAnalyzer.cc.

References TrajectoryStateOnSurface::charge(), funct::cos(), eta, PV3DBase< T, PVType, FrameType >::eta(), TrajectoryStateOnSurface::freeState(), TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::globalPosition(), AlCaHLTBitMon_ParallelJobs::p, PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::perp2(), PV3DBase< T, PVType, FrameType >::phi(), phi(), edm::ESHandle< class >::product(), EnergyCorrector::pt, TrajectorySeed::recHits(), funct::sin(), mathSSE::sqrt(), TrajectorySeed::startingState(), PV3DBase< T, PVType, FrameType >::theta(), theta(), trajectoryStateTransform::transientState(), findQualityFiles::v, PV3DBase< T, PVType, FrameType >::x(), reco::BeamSpot::x0(), PV3DBase< T, PVType, FrameType >::y(), reco::BeamSpot::y0(), PV3DBase< T, PVType, FrameType >::z(), and reco::BeamSpot::z0().

Referenced by TrackingMonitor::analyze().

284 {
285  TSCBLBuilderNoMaterial tscblBuilder;
286 
287  //get parameters and errors from the candidate state
288  auto const & theG = ((TkTransientTrackingRecHitBuilder const *)(theTTRHBuilder.product()))->geometry();
289  auto const & candSS = candidate.startingState();
290  TrajectoryStateOnSurface state = trajectoryStateTransform::transientState( candSS, &(theG->idToDet(candSS.detId())->surface()), theMF.product());
291  TrajectoryStateClosestToBeamLine tsAtClosestApproachSeed = tscblBuilder(*state.freeState(),bs);//as in TrackProducerAlgorithm
292  if(!(tsAtClosestApproachSeed.isValid())) {
293  edm::LogVerbatim("TrackBuilding") << "TrajectoryStateClosestToBeamLine not valid";
294  return;
295  }
296  GlobalPoint v0 = tsAtClosestApproachSeed.trackStateAtPCA().position();
297  GlobalVector p = tsAtClosestApproachSeed.trackStateAtPCA().momentum();
298  GlobalPoint v(v0.x()-bs.x0(),v0.y()-bs.y0(),v0.z()-bs.z0());
299 
300  double pt = sqrt(state.globalMomentum().perp2());
301  double eta = state.globalPosition().eta();
302  double phi = state.globalPosition().phi();
303  double theta = state.globalPosition().theta();
304  //double pm = sqrt(state.globalMomentum().mag2());
305  //double pz = state.globalMomentum().z();
306  //double qoverp = tsAtClosestApproachSeed.trackStateAtPCA().charge()/p.mag();
307  //double theta = p.theta();
308  //double lambda = M_PI/2-p.theta();
309  double numberOfHits = candidate.recHits().second-candidate.recHits().first;
310  double dxy = (-v.x()*sin(p.phi())+v.y()*cos(p.phi()));
311  double dz = v.z() - (v.x()*p.x()+v.y()*p.y())/p.perp() * p.z()/p.perp();
312 
313  // fill the ME's
314  if (doAllSeedPlots || doQ)SeedQ->Fill( state.charge() );
315  if (doAllSeedPlots || doPT) SeedPt->Fill( pt );
316  if (doAllSeedPlots || doETA) SeedEta->Fill( eta );
317  if (doAllSeedPlots || doPHI) SeedPhi->Fill( phi );
318  if (doAllSeedPlots || doPHIVsETA) SeedPhiVsEta->Fill( eta, phi);
319  if (doAllSeedPlots || doTheta) SeedTheta->Fill( theta );
320  if (doAllSeedPlots || doDxy) SeedDxy->Fill( dxy );
321  if (doAllSeedPlots || doDz) SeedDz->Fill( dz );
322  if (doAllSeedPlots || doNRecHits) NumberOfRecHitsPerSeed->Fill( numberOfHits );
323  if (doAllSeedPlots || doProfETA) NumberOfRecHitsPerSeedVsEtaProfile->Fill( eta, numberOfHits );
324  if (doAllSeedPlots || doProfPHI) NumberOfRecHitsPerSeedVsPhiProfile->Fill( phi, numberOfHits );
325 
326 }
double z0() const
z coordinate
Definition: BeamSpot.h:68
T perp() const
Definition: PV3DBase.h:72
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
Geom::Phi< T > phi() const
Definition: PV3DBase.h:69
Geom::Theta< T > theta() const
T y() const
Definition: PV3DBase.h:63
GlobalPoint globalPosition() const
T perp2() const
Definition: PV3DBase.h:71
void Fill(long long x)
Geom::Theta< T > theta() const
Definition: PV3DBase.h:75
MonitorElement * NumberOfRecHitsPerSeed
MonitorElement * NumberOfRecHitsPerSeedVsPhiProfile
T sqrt(T t)
Definition: SSEVec.h:48
FreeTrajectoryState const * freeState(bool withErrors=true) const
T z() const
Definition: PV3DBase.h:64
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
TrajectoryStateOnSurface transientState(const PTrajectoryStateOnDet &ts, const Surface *surface, const MagneticField *field)
T const * product() const
Definition: ESHandle.h:86
MonitorElement * SeedPhiVsEta
T eta() const
Definition: PV3DBase.h:76
GlobalVector globalMomentum() const
double y0() const
y coordinate
Definition: BeamSpot.h:66
MonitorElement * NumberOfRecHitsPerSeedVsEtaProfile
T x() const
Definition: PV3DBase.h:62
double x0() const
x coordinate
Definition: BeamSpot.h:64
void TrackBuildingAnalyzer::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup,
const TrackCandidate candidate,
const reco::BeamSpot bs,
const edm::ESHandle< MagneticField > &  theMF,
const edm::ESHandle< TransientTrackingRecHitBuilder > &  theTTRHBuilder 
)
virtual

Definition at line 331 of file TrackBuildingAnalyzer.cc.

References TrajectoryStateOnSurface::charge(), funct::cos(), eta, PV3DBase< T, PVType, FrameType >::eta(), TrajectoryStateOnSurface::freeState(), TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::globalPosition(), AlCaHLTBitMon_ParallelJobs::p, PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::perp2(), PV3DBase< T, PVType, FrameType >::phi(), phi(), edm::ESHandle< class >::product(), EnergyCorrector::pt, TrackCandidate::recHits(), funct::sin(), mathSSE::sqrt(), PV3DBase< T, PVType, FrameType >::theta(), theta(), TrackCandidate::trajectoryStateOnDet(), trajectoryStateTransform::transientState(), findQualityFiles::v, PV3DBase< T, PVType, FrameType >::x(), reco::BeamSpot::x0(), PV3DBase< T, PVType, FrameType >::y(), reco::BeamSpot::y0(), PV3DBase< T, PVType, FrameType >::z(), and reco::BeamSpot::z0().

339 {
340  TSCBLBuilderNoMaterial tscblBuilder;
341 
342  //get parameters and errors from the candidate state
343  auto const & theG = ((TkTransientTrackingRecHitBuilder const *)(theTTRHBuilder.product()))->geometry();
344  auto const & candSS = candidate.trajectoryStateOnDet();
345  TrajectoryStateOnSurface state = trajectoryStateTransform::transientState( candSS, &(theG->idToDet(candSS.detId())->surface()), theMF.product());
346  TrajectoryStateClosestToBeamLine tsAtClosestApproachTrackCand = tscblBuilder(*state.freeState(),bs);//as in TrackProducerAlgorithm
347  if(!(tsAtClosestApproachTrackCand.isValid())) {
348  edm::LogVerbatim("TrackBuilding") << "TrajectoryStateClosestToBeamLine not valid";
349  return;
350  }
351  GlobalPoint v0 = tsAtClosestApproachTrackCand.trackStateAtPCA().position();
352  GlobalVector p = tsAtClosestApproachTrackCand.trackStateAtPCA().momentum();
353  GlobalPoint v(v0.x()-bs.x0(),v0.y()-bs.y0(),v0.z()-bs.z0());
354 
355  double pt = sqrt(state.globalMomentum().perp2());
356  double eta = state.globalPosition().eta();
357  double phi = state.globalPosition().phi();
358  double theta = state.globalPosition().theta();
359  //double pm = sqrt(state.globalMomentum().mag2());
360  //double pz = state.globalMomentum().z();
361  //double qoverp = tsAtClosestApproachTrackCand.trackStateAtPCA().charge()/p.mag();
362  //double theta = p.theta();
363  //double lambda = M_PI/2-p.theta();
364  double numberOfHits = candidate.recHits().second-candidate.recHits().first;
365  double dxy = (-v.x()*sin(p.phi())+v.y()*cos(p.phi()));
366 
367  double dz = v.z() - (v.x()*p.x()+v.y()*p.y())/p.perp() * p.z()/p.perp();
368 
369  if (doTCPlots){
370  // fill the ME's
371  if (doAllTCPlots) TrackCandQ->Fill( state.charge() );
372  TrackCandPt->Fill( pt );
373  TrackCandEta->Fill( eta );
374  TrackCandPhi->Fill( phi );
375  TrackCandPhiVsEta->Fill( eta, phi );
376  if (doTheta) TrackCandTheta->Fill( theta );
377  if (doAllTCPlots) TrackCandDxy->Fill( dxy );
378  if (doAllTCPlots) TrackCandDz->Fill( dz );
379  if (doAllTCPlots) NumberOfRecHitsPerTrackCand->Fill( numberOfHits );
380  if (doAllTCPlots) NumberOfRecHitsPerTrackCandVsEtaProfile->Fill( eta, numberOfHits );
381  if (doAllTCPlots) NumberOfRecHitsPerTrackCandVsPhiProfile->Fill( phi, numberOfHits );
382  }
383 }
MonitorElement * NumberOfRecHitsPerTrackCandVsPhiProfile
MonitorElement * TrackCandPt
double z0() const
z coordinate
Definition: BeamSpot.h:68
T perp() const
Definition: PV3DBase.h:72
range recHits() const
MonitorElement * TrackCandDz
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
Geom::Phi< T > phi() const
Definition: PV3DBase.h:69
Geom::Theta< T > theta() const
T y() const
Definition: PV3DBase.h:63
GlobalPoint globalPosition() const
T perp2() const
Definition: PV3DBase.h:71
MonitorElement * TrackCandPhi
MonitorElement * TrackCandPhiVsEta
void Fill(long long x)
Geom::Theta< T > theta() const
Definition: PV3DBase.h:75
MonitorElement * NumberOfRecHitsPerTrackCandVsEtaProfile
PTrajectoryStateOnDet const & trajectoryStateOnDet() const
MonitorElement * TrackCandDxy
T sqrt(T t)
Definition: SSEVec.h:48
FreeTrajectoryState const * freeState(bool withErrors=true) const
T z() const
Definition: PV3DBase.h:64
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
MonitorElement * TrackCandEta
TrajectoryStateOnSurface transientState(const PTrajectoryStateOnDet &ts, const Surface *surface, const MagneticField *field)
T const * product() const
Definition: ESHandle.h:86
MonitorElement * TrackCandTheta
T eta() const
Definition: PV3DBase.h:76
GlobalVector globalMomentum() const
double y0() const
y coordinate
Definition: BeamSpot.h:66
T x() const
Definition: PV3DBase.h:62
MonitorElement * NumberOfRecHitsPerTrackCand
double x0() const
x coordinate
Definition: BeamSpot.h:64
void TrackBuildingAnalyzer::bookHistos ( std::string  sname,
DQMStore::IBooker ibooker 
)
private
void TrackBuildingAnalyzer::fillHistos ( const edm::EventSetup iSetup,
const reco::Track track,
std::string  sname 
)
private
void TrackBuildingAnalyzer::initHisto ( DQMStore::IBooker ibooker)
virtual

Definition at line 41 of file TrackBuildingAnalyzer.cc.

References HLT_25ns14e33_v1_cff::AlgoName, DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), DQMStore::IBooker::bookProfile(), conf_, doAllPlots, doAllSeedPlots, doAllTCPlots, doDxy, doDz, doETA, doNRecHits, doPHI, doPHIVsETA, doProfETA, doProfPHI, doPT, doQ, doTCPlots, doTheta, HLT_25ns14e33_v3_cff::EtaMax, Gflash::EtaMin, edm::ParameterSet::getParameter(), histname, NumberOfRecHitsPerSeed, NumberOfRecHitsPerSeedVsEtaProfile, NumberOfRecHitsPerSeedVsPhiProfile, NumberOfRecHitsPerTrackCand, NumberOfRecHitsPerTrackCandVsEtaProfile, NumberOfRecHitsPerTrackCandVsPhiProfile, SeedDxy, SeedDz, SeedEta, SeedPhi, SeedPhiVsEta, SeedPt, SeedQ, SeedTheta, MonitorElement::setAxisTitle(), DQMStore::IBooker::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, TrackCandDxy, TrackCandDz, TrackCandEta, TrackCandPhi, TrackCandPhiVsEta, TrackCandPt, TrackCandQ, and TrackCandTheta.

Referenced by TrackingMonitor::bookHistograms().

42 {
43 
44  // parameters from the configuration
46  std::string MEFolderName = conf_.getParameter<std::string>("FolderName");
47 
48  // std::cout << "[TrackBuildingAnalyzer::beginRun] AlgoName: " << AlgoName << std::endl;
49 
50  // use the AlgoName and Quality Name
51  std::string CatagoryName = AlgoName;
52 
53  // get binning from the configuration
54  int TrackPtBin = conf_.getParameter<int>( "TrackPtBin");
55  double TrackPtMin = conf_.getParameter<double>("TrackPtMin");
56  double TrackPtMax = conf_.getParameter<double>("TrackPtMax");
57 
58  int PhiBin = conf_.getParameter<int>( "PhiBin");
59  double PhiMin = conf_.getParameter<double>("PhiMin");
60  double PhiMax = conf_.getParameter<double>("PhiMax");
61 
62  int EtaBin = conf_.getParameter<int>( "EtaBin");
63  double EtaMin = conf_.getParameter<double>("EtaMin");
64  double EtaMax = conf_.getParameter<double>("EtaMax");
65 
66  int ThetaBin = conf_.getParameter<int>( "ThetaBin");
67  double ThetaMin = conf_.getParameter<double>("ThetaMin");
68  double ThetaMax = conf_.getParameter<double>("ThetaMax");
69 
70  int TrackQBin = conf_.getParameter<int>( "TrackQBin");
71  double TrackQMin = conf_.getParameter<double>("TrackQMin");
72  double TrackQMax = conf_.getParameter<double>("TrackQMax");
73 
74  int SeedDxyBin = conf_.getParameter<int>( "SeedDxyBin");
75  double SeedDxyMin = conf_.getParameter<double>("SeedDxyMin");
76  double SeedDxyMax = conf_.getParameter<double>("SeedDxyMax");
77 
78  int SeedDzBin = conf_.getParameter<int>( "SeedDzBin");
79  double SeedDzMin = conf_.getParameter<double>("SeedDzMin");
80  double SeedDzMax = conf_.getParameter<double>("SeedDzMax");
81 
82  int SeedHitBin = conf_.getParameter<int>( "SeedHitBin");
83  double SeedHitMin = conf_.getParameter<double>("SeedHitMin");
84  double SeedHitMax = conf_.getParameter<double>("SeedHitMax");
85 
86  int TCDxyBin = conf_.getParameter<int>( "TCDxyBin");
87  double TCDxyMin = conf_.getParameter<double>("TCDxyMin");
88  double TCDxyMax = conf_.getParameter<double>("TCDxyMax");
89 
90  int TCDzBin = conf_.getParameter<int>( "TCDzBin");
91  double TCDzMin = conf_.getParameter<double>("TCDzMin");
92  double TCDzMax = conf_.getParameter<double>("TCDzMax");
93 
94  int TCHitBin = conf_.getParameter<int>( "TCHitBin");
95  double TCHitMin = conf_.getParameter<double>("TCHitMin");
96  double TCHitMax = conf_.getParameter<double>("TCHitMax");
97 
98 
99  edm::InputTag seedProducer = conf_.getParameter<edm::InputTag>("SeedProducer");
100  edm::InputTag tcProducer = conf_.getParameter<edm::InputTag>("TCProducer");
101 
102  doAllPlots = conf_.getParameter<bool>("doAllPlots");
103  doAllSeedPlots = conf_.getParameter<bool>("doSeedParameterHistos");
104  doTCPlots = conf_.getParameter<bool>("doTrackCandHistos");
105  doAllTCPlots = conf_.getParameter<bool>("doAllTrackCandHistos");
106  doPT = conf_.getParameter<bool>("doSeedPTHisto");
107  doETA = conf_.getParameter<bool>("doSeedETAHisto");
108  doPHI = conf_.getParameter<bool>("doSeedPHIHisto");
109  doPHIVsETA = conf_.getParameter<bool>("doSeedPHIVsETAHisto");
110  doTheta = conf_.getParameter<bool>("doSeedThetaHisto");
111  doQ = conf_.getParameter<bool>("doSeedQHisto");
112  doDxy = conf_.getParameter<bool>("doSeedDxyHisto");
113  doDz = conf_.getParameter<bool>("doSeedDzHisto");
114  doNRecHits = conf_.getParameter<bool>("doSeedNRecHitsHisto");
115  doProfPHI = conf_.getParameter<bool>("doSeedNVsPhiProf");
116  doProfETA = conf_.getParameter<bool>("doSeedNVsEtaProf");
117 
118  // if (doAllPlots){doAllSeedPlots=true; doTCPlots=true;}
119 
120  ibooker.setCurrentFolder(MEFolderName);
121 
122  // book the Seed histograms
123  // ---------------------------------------------------------------------------------//
124  // std::cout << "[TrackBuildingAnalyzer::beginRun] MEFolderName: " << MEFolderName << std::endl;
125  ibooker.setCurrentFolder(MEFolderName+"/TrackBuilding");
126 
127  if (doAllSeedPlots || doPT) {
128  histname = "SeedPt_"+seedProducer.label() + "_";
129  SeedPt = ibooker.book1D(histname+CatagoryName, histname+CatagoryName, TrackPtBin, TrackPtMin, TrackPtMax);
130  SeedPt->setAxisTitle("Seed p_{T} (GeV/c)", 1);
131  SeedPt->setAxisTitle("Number of Seeds", 2);
132  }
133 
134  if (doAllSeedPlots || doETA) {
135  histname = "SeedEta_"+seedProducer.label() + "_";
136  SeedEta = ibooker.book1D(histname+CatagoryName, histname+CatagoryName, EtaBin, EtaMin, EtaMax);
137  SeedEta->setAxisTitle("Seed #eta", 1);
138  SeedEta->setAxisTitle("Number of Seeds", 2);
139  }
140 
141  if (doAllSeedPlots || doPHI) {
142  histname = "SeedPhi_"+seedProducer.label() + "_";
143  SeedPhi = ibooker.book1D(histname+CatagoryName, histname+CatagoryName, PhiBin, PhiMin, PhiMax);
144  SeedPhi->setAxisTitle("Seed #phi", 1);
145  SeedPhi->setAxisTitle("Number of Seed", 2);
146  }
147 
148  if (doAllSeedPlots || doPHIVsETA) {
149  histname = "SeedPhiVsEta_"+seedProducer.label() + "_";
150  SeedPhiVsEta = ibooker.book2D(histname+CatagoryName, histname+CatagoryName, EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax);
151  SeedPhiVsEta->setAxisTitle("Seed #eta", 1);
152  SeedPhiVsEta->setAxisTitle("Seed #phi", 2);
153  }
154 
155  if (doAllSeedPlots || doTheta){
156  histname = "SeedTheta_"+seedProducer.label() + "_";
157  SeedTheta = ibooker.book1D(histname+CatagoryName, histname+CatagoryName, ThetaBin, ThetaMin, ThetaMax);
158  SeedTheta->setAxisTitle("Seed #theta", 1);
159  SeedTheta->setAxisTitle("Number of Seeds", 2);
160  }
161 
162  if (doAllSeedPlots || doQ){
163  histname = "SeedQ_"+seedProducer.label() + "_";
164  SeedQ = ibooker.book1D(histname+CatagoryName, histname+CatagoryName, TrackQBin, TrackQMin, TrackQMax);
165  SeedQ->setAxisTitle("Seed Charge", 1);
166  SeedQ->setAxisTitle("Number of Seeds",2);
167  }
168 
169  if (doAllSeedPlots || doDxy){
170  histname = "SeedDxy_"+seedProducer.label() + "_";
171  SeedDxy = ibooker.book1D(histname+CatagoryName, histname+CatagoryName, SeedDxyBin, SeedDxyMin, SeedDxyMax);
172  SeedDxy->setAxisTitle("Seed d_{xy} (cm)", 1);
173  SeedDxy->setAxisTitle("Number of Seeds",2);
174  }
175 
176  if (doAllSeedPlots || doDz){
177  histname = "SeedDz_"+seedProducer.label() + "_";
178  SeedDz = ibooker.book1D(histname+CatagoryName, histname+CatagoryName, SeedDzBin, SeedDzMin, SeedDzMax);
179  SeedDz->setAxisTitle("Seed d_{z} (cm)", 1);
180  SeedDz->setAxisTitle("Number of Seeds",2);
181  }
182 
183  if (doAllSeedPlots || doNRecHits){
184  histname = "NumberOfRecHitsPerSeed_"+seedProducer.label() + "_";
185  NumberOfRecHitsPerSeed = ibooker.book1D(histname+CatagoryName, histname+CatagoryName, SeedHitBin, SeedHitMin, SeedHitMax);
186  NumberOfRecHitsPerSeed->setAxisTitle("Number of RecHits per Seed", 1);
187  NumberOfRecHitsPerSeed->setAxisTitle("Number of Seeds",2);
188  }
189 
190  if (doAllSeedPlots || doProfPHI){
191  histname = "NumberOfRecHitsPerSeedVsPhiProfile_"+seedProducer.label() + "_";
192  NumberOfRecHitsPerSeedVsPhiProfile = ibooker.bookProfile(histname+CatagoryName, histname+CatagoryName, PhiBin, PhiMin, PhiMax, SeedHitBin, SeedHitMin, SeedHitMax,"s");
194  NumberOfRecHitsPerSeedVsPhiProfile->setAxisTitle("Number of RecHits of each Seed",2);
195  }
196 
197  if (doAllSeedPlots || doProfETA){
198  histname = "NumberOfRecHitsPerSeedVsEtaProfile_"+seedProducer.label() + "_";
199  NumberOfRecHitsPerSeedVsEtaProfile = ibooker.bookProfile(histname+CatagoryName, histname+CatagoryName, EtaBin, EtaMin, EtaMax, SeedHitBin, SeedHitMin, SeedHitMax,"s");
201  NumberOfRecHitsPerSeedVsEtaProfile->setAxisTitle("Number of RecHits of each Seed",2);
202  }
203 
204  // book the TrackCandidate histograms
205  // ---------------------------------------------------------------------------------//
206 
207  if (doTCPlots){
208 
209  ibooker.setCurrentFolder(MEFolderName+"/TrackBuilding");
210 
211  histname = "TrackCandPt_"+tcProducer.label() + "_";
212  TrackCandPt = ibooker.book1D(histname+CatagoryName, histname+CatagoryName, TrackPtBin, TrackPtMin, TrackPtMax);
213  TrackCandPt->setAxisTitle("Track Candidate p_{T} (GeV/c)", 1);
214  TrackCandPt->setAxisTitle("Number of Track Candidates", 2);
215 
216  histname = "TrackCandEta_"+tcProducer.label() + "_";
217  TrackCandEta = ibooker.book1D(histname+CatagoryName, histname+CatagoryName, EtaBin, EtaMin, EtaMax);
218  TrackCandEta->setAxisTitle("Track Candidate #eta", 1);
219  TrackCandEta->setAxisTitle("Number of Track Candidates", 2);
220 
221  histname = "TrackCandPhi_"+tcProducer.label() + "_";
222  TrackCandPhi = ibooker.book1D(histname+CatagoryName, histname+CatagoryName, PhiBin, PhiMin, PhiMax);
223  TrackCandPhi->setAxisTitle("Track Candidate #phi", 1);
224  TrackCandPhi->setAxisTitle("Number of Track Candidates", 2);
225 
226  if (doTheta) {
227  histname = "TrackCandTheta_"+tcProducer.label() + "_";
228  TrackCandTheta = ibooker.book1D(histname+CatagoryName, histname+CatagoryName, ThetaBin, ThetaMin, ThetaMax);
229  TrackCandTheta->setAxisTitle("Track Candidate #theta", 1);
230  TrackCandTheta->setAxisTitle("Number of Track Candidates", 2);
231  }
232 
233  if (doAllTCPlots) {
234  histname = "TrackCandQ_"+tcProducer.label() + "_";
235  TrackCandQ = ibooker.book1D(histname+CatagoryName, histname+CatagoryName, TrackQBin, TrackQMin, TrackQMax);
236  TrackCandQ->setAxisTitle("Track Candidate Charge", 1);
237  TrackCandQ->setAxisTitle("Number of Track Candidates",2);
238 
239  histname = "TrackCandDxy_"+tcProducer.label() + "_";
240  TrackCandDxy = ibooker.book1D(histname+CatagoryName, histname+CatagoryName, TCDxyBin, TCDxyMin, TCDxyMax);
241  TrackCandDxy->setAxisTitle("Track Candidate d_{xy} (cm)", 1);
242  TrackCandDxy->setAxisTitle("Number of Track Candidates",2);
243 
244  histname = "TrackCandDz_"+tcProducer.label() + "_";
245  TrackCandDz = ibooker.book1D(histname+CatagoryName, histname+CatagoryName, TCDzBin, TCDzMin, TCDzMax);
246  TrackCandDz->setAxisTitle("Track Candidate d_{z} (cm)", 1);
247  TrackCandDz->setAxisTitle("Number of Track Candidates",2);
248 
249  histname = "NumberOfRecHitsPerTrackCand_"+tcProducer.label() + "_";
250  NumberOfRecHitsPerTrackCand = ibooker.book1D(histname+CatagoryName, histname+CatagoryName, TCHitBin, TCHitMin, TCHitMax);
251  NumberOfRecHitsPerTrackCand->setAxisTitle("Number of RecHits per Track Candidate", 1);
252  NumberOfRecHitsPerTrackCand->setAxisTitle("Number of Track Candidates",2);
253 
254  histname = "NumberOfRecHitsPerTrackCandVsPhiProfile_"+tcProducer.label() + "_";
255  NumberOfRecHitsPerTrackCandVsPhiProfile = ibooker.bookProfile(histname+CatagoryName, histname+CatagoryName, PhiBin, PhiMin, PhiMax, TCHitBin, TCHitMin, TCHitMax,"s");
256  NumberOfRecHitsPerTrackCandVsPhiProfile->setAxisTitle("Track Candidate #phi",1);
257  NumberOfRecHitsPerTrackCandVsPhiProfile->setAxisTitle("Number of RecHits of each Track Candidate",2);
258 
259  histname = "NumberOfRecHitsPerTrackCandVsEtaProfile_"+tcProducer.label() + "_";
260  NumberOfRecHitsPerTrackCandVsEtaProfile = ibooker.bookProfile(histname+CatagoryName, histname+CatagoryName, EtaBin, EtaMin, EtaMax, TCHitBin, TCHitMin, TCHitMax,"s");
261  NumberOfRecHitsPerTrackCandVsEtaProfile->setAxisTitle("Track Candidate #eta",1);
262  NumberOfRecHitsPerTrackCandVsEtaProfile->setAxisTitle("Number of RecHits of each Track Candidate",2);
263  }
264 
265  histname = "TrackCandPhiVsEta_"+tcProducer.label() + "_";
266  TrackCandPhiVsEta = ibooker.book2D(histname+CatagoryName, histname+CatagoryName, EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax);
267  TrackCandPhiVsEta->setAxisTitle("Track Candidate #eta", 1);
268  TrackCandPhiVsEta->setAxisTitle("Track Candidate #phi", 2);
269  }
270 
271 }
MonitorElement * NumberOfRecHitsPerTrackCandVsPhiProfile
MonitorElement * TrackCandPt
T getParameter(std::string const &) const
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:157
MonitorElement * TrackCandDz
MonitorElement * TrackCandPhi
MonitorElement * TrackCandPhiVsEta
MonitorElement * NumberOfRecHitsPerTrackCandVsEtaProfile
MonitorElement * NumberOfRecHitsPerSeed
MonitorElement * NumberOfRecHitsPerSeedVsPhiProfile
MonitorElement * TrackCandDxy
MonitorElement * TrackCandEta
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
const double EtaMin[kNumberCalorimeter]
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:274
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
MonitorElement * TrackCandTheta
MonitorElement * SeedPhiVsEta
MonitorElement * NumberOfRecHitsPerSeedVsEtaProfile
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * NumberOfRecHitsPerTrackCand

Member Data Documentation

edm::ParameterSet TrackBuildingAnalyzer::conf_
private

Definition at line 66 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

bool TrackBuildingAnalyzer::doAllPlots
private

Definition at line 97 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

bool TrackBuildingAnalyzer::doAllSeedPlots
private

Definition at line 98 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

bool TrackBuildingAnalyzer::doAllTCPlots
private

Definition at line 100 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

bool TrackBuildingAnalyzer::doDxy
private

Definition at line 107 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

bool TrackBuildingAnalyzer::doDz
private

Definition at line 108 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

bool TrackBuildingAnalyzer::doETA
private

Definition at line 102 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

bool TrackBuildingAnalyzer::doNRecHits
private

Definition at line 109 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

bool TrackBuildingAnalyzer::doPHI
private

Definition at line 103 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

bool TrackBuildingAnalyzer::doPHIVsETA
private

Definition at line 104 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

bool TrackBuildingAnalyzer::doProfETA
private

Definition at line 111 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

bool TrackBuildingAnalyzer::doProfPHI
private

Definition at line 110 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

bool TrackBuildingAnalyzer::doPT
private

Definition at line 101 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

bool TrackBuildingAnalyzer::doQ
private

Definition at line 106 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

bool TrackBuildingAnalyzer::doTCPlots
private

Definition at line 99 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

bool TrackBuildingAnalyzer::doTheta
private

Definition at line 105 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

std::string TrackBuildingAnalyzer::histname
private

Definition at line 94 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

MonitorElement* TrackBuildingAnalyzer::NumberOfRecHitsPerSeed
private

Definition at line 77 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

MonitorElement* TrackBuildingAnalyzer::NumberOfRecHitsPerSeedVsEtaProfile
private

Definition at line 79 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

MonitorElement* TrackBuildingAnalyzer::NumberOfRecHitsPerSeedVsPhiProfile
private

Definition at line 78 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

MonitorElement* TrackBuildingAnalyzer::NumberOfRecHitsPerTrackCand
private

Definition at line 90 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

MonitorElement* TrackBuildingAnalyzer::NumberOfRecHitsPerTrackCandVsEtaProfile
private

Definition at line 92 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

MonitorElement* TrackBuildingAnalyzer::NumberOfRecHitsPerTrackCandVsPhiProfile
private

Definition at line 91 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

MonitorElement* TrackBuildingAnalyzer::SeedDxy
private

Definition at line 75 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

MonitorElement* TrackBuildingAnalyzer::SeedDz
private

Definition at line 76 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

MonitorElement* TrackBuildingAnalyzer::SeedEta
private

Definition at line 70 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

MonitorElement* TrackBuildingAnalyzer::SeedPhi
private

Definition at line 71 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

MonitorElement* TrackBuildingAnalyzer::SeedPhiVsEta
private

Definition at line 72 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

MonitorElement* TrackBuildingAnalyzer::SeedPt
private

Definition at line 69 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

MonitorElement* TrackBuildingAnalyzer::SeedQ
private

Definition at line 74 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

MonitorElement* TrackBuildingAnalyzer::SeedTheta
private

Definition at line 73 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

MonitorElement* TrackBuildingAnalyzer::TrackCandDxy
private

Definition at line 88 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

MonitorElement* TrackBuildingAnalyzer::TrackCandDz
private

Definition at line 89 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

MonitorElement* TrackBuildingAnalyzer::TrackCandEta
private

Definition at line 83 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

MonitorElement* TrackBuildingAnalyzer::TrackCandPhi
private

Definition at line 84 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

MonitorElement* TrackBuildingAnalyzer::TrackCandPhiVsEta
private

Definition at line 85 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

MonitorElement* TrackBuildingAnalyzer::TrackCandPt
private

Definition at line 82 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

MonitorElement* TrackBuildingAnalyzer::TrackCandQ
private

Definition at line 87 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().

MonitorElement* TrackBuildingAnalyzer::TrackCandTheta
private

Definition at line 86 of file TrackBuildingAnalyzer.h.

Referenced by initHisto().