CMS 3D CMS Logo

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

#include <TrackTypeMonitor.h>

Inheritance diagram for TrackTypeMonitor:
DQMEDAnalyzer edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > > edm::stream::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

 TrackTypeMonitor (const edm::ParameterSet &)
 
- Public Member Functions inherited from DQMEDAnalyzer
virtual void beginRun (edm::Run const &, edm::EventSetup const &) final
 
virtual void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer (void)
 
virtual void endLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
virtual void endRunSummary (edm::Run const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
uint32_t streamId () const
 
- Public Member Functions inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::stream::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDAnalyzerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Protected Member Functions

void analyze (edm::Event const &iEvent, edm::EventSetup const &iSetup) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &)
 
void endLuminosityBlock (edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &eSetup) override
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Private Member Functions

void fillHistograms (const reco::Track &track, int indx)
 

Private Attributes

const edm::InputTag bsTag_
 
const edm::EDGetTokenT
< reco::BeamSpot
bsToken_
 
MonitorElementdphiH_
 
MonitorElementdrH_
 
const edm::InputTag electronTag_
 
const edm::EDGetTokenT
< reco::GsfElectronCollection
electronToken_
 
std::string folderName_
 
MonitorElementhcounterH_
 
unsigned long long m_cacheID_
 
std::string moduleName_
 
const edm::InputTag muonTag_
 
const edm::EDGetTokenT
< reco::MuonCollection
muonToken_
 
std::vector< MonitorElement * > nTracksHList_
 
edm::ParameterSet parameters_
 
std::vector< MonitorElement * > trackChi2bynDOFHList_
 
std::vector< MonitorElement * > trackdzHList_
 
std::vector< MonitorElement * > trackEtaHList_
 
std::vector< MonitorElement * > trackPhiHList_
 
std::vector< MonitorElement * > trackPHList_
 
std::vector< MonitorElement * > trackPterrHList_
 
std::vector< MonitorElement * > trackPtHList_
 
std::vector< MonitorElement * > trackqOverpHList_
 
const std::string trackQuality_
 
const edm::InputTag trackTag_
 
const edm::EDGetTokenT
< reco::TrackCollection
trackToken_
 
bool verbose_
 
const edm::InputTag vertexTag_
 
const edm::EDGetTokenT
< reco::VertexCollection
vertexToken_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
typedef CacheContexts< T...> CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T...> HasAbility
 
typedef
CacheTypes::LuminosityBlockCache 
LuminosityBlockCache
 
typedef
LuminosityBlockContextT
< LuminosityBlockCache,
RunCache, GlobalCache
LuminosityBlockContext
 
typedef
CacheTypes::LuminosityBlockSummaryCache 
LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache,
GlobalCache
RunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDAnalyzerBase
typedef EDAnalyzerAdaptorBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static std::shared_ptr
< dqmDetails::NoCache
globalBeginLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *)
 
static std::shared_ptr
< dqmDetails::NoCache
globalBeginRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *)
 
static void globalEndLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *, dqmDetails::NoCache *)
 
static void globalEndRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *, dqmDetails::NoCache *)
 
- Static Public Member Functions inherited from edm::stream::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Detailed Description

Definition at line 26 of file TrackTypeMonitor.h.

Constructor & Destructor Documentation

TrackTypeMonitor::TrackTypeMonitor ( const edm::ParameterSet ps)

Definition at line 37 of file TrackTypeMonitor.cc.

References nTracksHList_, trackChi2bynDOFHList_, trackEtaHList_, trackPhiHList_, trackPHList_, trackPterrHList_, trackPtHList_, and trackqOverpHList_.

37  :
38  parameters_(ps),
39  moduleName_(parameters_.getUntrackedParameter<std::string>("ModuleName", "TrackTypeMonitor")),
40  folderName_(parameters_.getUntrackedParameter<std::string>("FolderName", "highPurityTracks")),
41  verbose_(parameters_.getUntrackedParameter<bool>("verbose", false)),
42  muonTag_(ps.getUntrackedParameter<edm::InputTag>("muonInputTag", edm::InputTag("muons"))),
43  electronTag_(ps.getUntrackedParameter<edm::InputTag>("electronInputTag", edm::InputTag("gedGsfElectrons"))),
44  trackTag_(parameters_.getUntrackedParameter<edm::InputTag>("trackInputTag", edm::InputTag("generalTracks"))),
45  bsTag_(parameters_.getUntrackedParameter<edm::InputTag>("offlineBeamSpot", edm::InputTag("offlineBeamSpot"))),
46  vertexTag_(parameters_.getUntrackedParameter<edm::InputTag>("vertexTag", edm::InputTag("offlinePrimaryVertices"))),
47  electronToken_(consumes<reco::GsfElectronCollection>(electronTag_)),
48  muonToken_(consumes<reco::MuonCollection>(muonTag_)),
49  trackToken_(consumes<reco::TrackCollection>(trackTag_)),
50  bsToken_(consumes<reco::BeamSpot>(bsTag_)),
51  vertexToken_(consumes<reco::VertexCollection>(vertexTag_)),
52  trackQuality_(parameters_.getUntrackedParameter<std::string>("trackQuality", "highPurity"))
53 {
54  trackEtaHList_.clear();
55  trackPhiHList_.clear();
56  trackPHList_.clear();
57  trackPtHList_.clear();
58  trackPterrHList_.clear();
59  trackqOverpHList_.clear();
60  trackChi2bynDOFHList_.clear();
61  nTracksHList_.clear();
62 }
std::vector< MonitorElement * > nTracksHList_
T getUntrackedParameter(std::string const &, T const &) const
const edm::EDGetTokenT< reco::GsfElectronCollection > electronToken_
const edm::InputTag muonTag_
std::string folderName_
const edm::EDGetTokenT< reco::MuonCollection > muonToken_
std::vector< MonitorElement * > trackChi2bynDOFHList_
std::vector< MonitorElement * > trackPterrHList_
const edm::EDGetTokenT< reco::BeamSpot > bsToken_
std::vector< MonitorElement * > trackPtHList_
std::vector< MonitorElement * > trackEtaHList_
const edm::EDGetTokenT< reco::TrackCollection > trackToken_
const edm::InputTag bsTag_
std::vector< MonitorElement * > trackPhiHList_
const edm::EDGetTokenT< reco::VertexCollection > vertexToken_
std::string moduleName_
edm::ParameterSet parameters_
const edm::InputTag vertexTag_
const edm::InputTag electronTag_
std::vector< MonitorElement * > trackqOverpHList_
std::vector< MonitorElement * > trackPHList_
const std::string trackQuality_
const edm::InputTag trackTag_

Member Function Documentation

void TrackTypeMonitor::analyze ( edm::Event const &  iEvent,
edm::EventSetup const &  iSetup 
)
overrideprotectedvirtual

Implements edm::stream::EDAnalyzerBase.

Definition at line 234 of file TrackTypeMonitor.cc.

References SiPixelRawToDigiRegional_cfi::beamSpot, bsToken_, reco::TrackBase::chi2(), reco::TrackBase::d0(), SiPixelRawToDigiRegional_cfi::deltaPhi, deltaR(), dphiH_, drH_, reco::TrackBase::dxy(), reco::TrackBase::dz(), electronToken_, reco::TrackBase::eta(), MonitorElement::Fill(), fillHistograms(), edm::Event::getByToken(), hcounterH_, reco::TrackBase::hitPattern(), edm::Ref< C, T, F >::isNonnull(), edm::HandleBase::isValid(), bookConverter::max, muonToken_, ndof, reco::TrackBase::ndof(), nTracksHList_, reco::HitPattern::numberOfValidPixelHits(), reco::HitPattern::numberOfValidStripHits(), getGTfromDQMFile::obj, reco::TrackBase::phi(), reco::Vertex::position(), HLT_25ns14e33_v1_cff::quality, reco::TrackBase::qualityByName(), python.multivaluedict::sort(), reco::GsfElectron::PflowIsolationVariables::sumChargedHadronPt, reco::MuonPFIsolation::sumChargedParticlePt, reco::MuonPFIsolation::sumNeutralHadronEt, reco::GsfElectron::PflowIsolationVariables::sumNeutralHadronEt, reco::MuonPFIsolation::sumPhotonEt, reco::GsfElectron::PflowIsolationVariables::sumPhotonEt, reco::MuonPFIsolation::sumPUPt, reco::GsfElectron::PflowIsolationVariables::sumPUPt, trackQuality_, testEve_cfg::tracks, trackToken_, verbose_, and vertexToken_.

234  {
235 
236  // read the beam spot
238  iEvent.getByToken(bsToken_, beamSpot);
239 
240  std::vector<const reco::Track*> isoTrkList;
241 
242  // muons
244  iEvent.getByToken(muonToken_, muonColl);
245 
246  if (muonColl.isValid()) {
247  for (auto const& muo : *muonColl) {
248  if (muo.isGlobalMuon() && muo.isPFMuon() && std::fabs(muo.eta()) <= 2.1 && muo.pt() > 1) {
249  reco::TrackRef gtrkref = muo.globalTrack();
250  if (!gtrkref.isNonnull()) continue;
251  const reco::Track* gtk = &(*gtrkref);
252  double chi2 = gtk->chi2();
253  double ndof = gtk->ndof();
254  double chbyndof = (ndof > 0) ? chi2/ndof : 0;
255 
256  const reco::HitPattern& hitp = gtk->hitPattern();
257  int nPixelHits = hitp.numberOfValidPixelHits();
258  int nStripHits = hitp.numberOfValidStripHits();
259 
260  reco::TrackRef itrkref = muo.innerTrack(); // tracker segment only
261  if (!itrkref.isNonnull()) continue;
262  const reco::Track* tk = &(*itrkref);
263  double trkd0 = tk->d0();
264  double trkdz = tk->dz();
265  if (beamSpot.isValid()) {
266  trkd0 = -(tk->dxy(beamSpot->position()));
267  trkdz = tk->dz(beamSpot->position());
268  }
269 
270  // Hits/section in the muon chamber
271  int nChambers = muo.numberOfChambers();
272  int nMatches = muo.numberOfMatches();
273  int nMatchedStations = muo.numberOfMatchedStations();
274 
275  // PF Isolation
276  const reco::MuonPFIsolation& pfIso04 = muo.pfIsolationR04();
277  double absiso = pfIso04.sumChargedParticlePt + std::max(0.0, pfIso04.sumNeutralHadronEt + pfIso04.sumPhotonEt - 0.5 * pfIso04.sumPUPt);
278  if (chbyndof < 10
279  && std::fabs(trkd0) < 0.02
280  && std::fabs(trkdz) < 20
281  && nPixelHits > 1
282  && nStripHits > 8
283  && nChambers > 2
284  && nMatches > 2
285  && nMatchedStations > 2
286  && absiso/muo.pt() < 0.3)
287  {
288  isoTrkList.push_back(gtk);
289  fillHistograms(*gtk, 0);
290  }
291  }
292  }
293  }
294 
295  // electrons
297  iEvent.getByToken(electronToken_, electronColl);
298 
299  if (electronColl.isValid()) {
300  for (auto const& ele : *electronColl) {
301  if (!ele.ecalDriven()) continue;
302  if (ele.pt() < 5) continue;
303  hcounterH_->Fill(0);
304 
305  double hOverE = ele.hadronicOverEm();
306  double sigmaee = ele.sigmaIetaIeta();
307  double deltaPhiIn = ele.deltaPhiSuperClusterTrackAtVtx();
308  double deltaEtaIn = ele.deltaEtaSuperClusterTrackAtVtx();
309 
310  if (ele.isEB()) {
311  if (std::fabs(deltaPhiIn) >= .15
312  && std::fabs(deltaEtaIn) >= .007
313  && hOverE >= .12
314  && sigmaee >= .01) continue;
315  }
316  else if (ele.isEE()) {
317  if (std::fabs(deltaPhiIn) >= .10
318  && std::fabs(deltaEtaIn) >= .009
319  && hOverE >= .10
320  && sigmaee >= .03) continue;
321  }
322  hcounterH_->Fill(1);
323 
324  reco::GsfTrackRef gsftrk = ele.gsfTrack();
325  if (!gsftrk.isNonnull()) continue;
326  const reco::GsfTrack* trk = &(*gsftrk);
327  double trkd0 = trk->d0();
328  double trkdz = trk->dz();
329  if (beamSpot.isValid()) {
330  trkd0 = -(trk->dxy(beamSpot->position()));
331  trkdz = trk->dz(beamSpot->position());
332  }
333  double chi2 = trk->chi2();
334  double ndof = trk->ndof();
335  double chbyndof = (ndof > 0) ? chi2/ndof : 0;
336  if (chbyndof >= 10) continue;
337  hcounterH_->Fill(2);
338 
339  if (std::fabs(trkd0) >= 0.02 || std::fabs(trkdz) >= 20) continue;
340  hcounterH_->Fill(3);
341 
342  const reco::HitPattern& hitp = trk->hitPattern();
343  int nPixelHits = hitp.numberOfValidPixelHits();
344  if (nPixelHits < 1) continue;
345  hcounterH_->Fill(4);
346 
347  int nStripHits = hitp.numberOfValidStripHits();
348  if (nStripHits < 8) continue;
349  hcounterH_->Fill(5);
350 
351  reco::GsfElectron::PflowIsolationVariables pfIso = ele.pfIsolationVariables();
352  float absiso = pfIso.sumChargedHadronPt + std::max(0.0, pfIso.sumNeutralHadronEt + pfIso.sumPhotonEt - 0.5 * pfIso.sumPUPt);
353  float eiso = absiso/ele.pt();
354  if (eiso > 0.2) continue;
355  hcounterH_->Fill(6);
356 
357  isoTrkList.push_back(trk);
358  fillHistograms(*trk, 0);
359  }
360  }
361  nTracksHList_.at(0)->Fill(isoTrkList.size());
362 
363  // Read track collection
365  iEvent.getByToken(trackToken_, tracks);
366 
367  // Read vertex collection
369  iEvent.getByToken(vertexToken_, vertexColl);
370 
371  if (tracks.isValid()) {
372  std::vector<const reco::Track*> nisoTrkList;
373  const reco::Vertex& vit = vertexColl->front(); // Highest sumPt vertex
375 
376  int nmatch = 0;
377  int nTracks = 0, nMBTracks = 0;
378  for (auto const& track: *tracks) {
379  if (!track.quality(quality)) continue;
380  ++nTracks;
381  fillHistograms(track, 3);
382 
383  // now classify primary and underlying tracks using vertex information
384  double dxy = track.dxy(vit.position());
385  double dz = track.dz(vit.position());
386  if (std::fabs(dxy) < 0.02 && std::fabs(dz) < 20) { // primary tracks
387  // remove tracks associated to the identified particles
388  double drmin = 999;
389  for (auto const& tk : isoTrkList) {
390  double dr = deltaR(track.eta(), track.phi(), tk->eta(), tk->phi());
391  if (dr < drmin) drmin = dr;
392  }
393  if (drmin < 0.01) {
394  if (verbose_) {
395  edm::LogInfo("TrackTypeMonitor") << " Match: " << ++nmatch << " drmin = " << drmin;
396  edm::LogInfo("TrackTypeMonitor") << " Track Pt: " << track.pt() << " Eta: " << track.eta() << " Phi: " << track.phi();
397  for (auto const& isotk : isoTrkList) {
398  edm::LogInfo("TrackTypeMonitor") << " Lepton Pt: " << isotk->pt() << " Eta: " << isotk->eta() << " Phi: " << isotk->phi();
399  }
400  }
401  continue;
402  }
403 
404  fillHistograms(track, 1);
405  nisoTrkList.push_back(&track);
406  }
407  else {
408  ++nMBTracks;
409  fillHistograms(track, 2); //non-primary tracks
410  }
411  }
412  nTracksHList_.at(1)->Fill(nisoTrkList.size());
413  nTracksHList_.at(2)->Fill(nMBTracks);
414  nTracksHList_.at(3)->Fill(nTracks);
415 
416  std::sort(nisoTrkList.begin(), nisoTrkList.end(), PtComparator<reco::Track>());
417  const reco::Track* isoTrk = isoTrkList.at(0);
418  for (auto const& obj : nisoTrkList) {
419  if (obj->pt() > 5) {
420  double dphi = deltaPhi(isoTrk->phi(), obj->phi());
421  dphiH_->Fill(std::fabs(dphi));
422 
423  double dr = deltaR(isoTrk->eta(), isoTrk->phi(), obj->eta(), obj->phi());
424  drH_->Fill(dr);
425  }
426  }
427  }
428 }
std::vector< MonitorElement * > nTracksHList_
const edm::EDGetTokenT< reco::GsfElectronCollection > electronToken_
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:252
double d0() const
dxy parameter in perigee convention (d0 = -dxy)
Definition: TrackBase.h:584
TrackQuality
track quality
Definition: TrackBase.h:149
const edm::EDGetTokenT< reco::MuonCollection > muonToken_
const edm::EDGetTokenT< reco::BeamSpot > bsToken_
float sumPUPt
sum pt of charged Particles not from PV (for Pu corrections)
Definition: GsfElectron.h:580
int numberOfValidStripHits() const
Definition: HitPattern.h:831
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:632
float sumPhotonEt
sum pt of PF photons
const edm::EDGetTokenT< reco::TrackCollection > trackToken_
const Point & position() const
position
Definition: Vertex.h:106
void fillHistograms(const reco::Track &track, int indx)
float sumNeutralHadronEt
sum pt of neutral hadrons
void Fill(long long x)
float sumChargedParticlePt
sum-pt of charged Particles(inludes e/mu)
float sumPUPt
sum pt of charged Particles not from PV (for Pu corrections)
int iEvent
Definition: GenABIO.cc:230
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:638
MonitorElement * dphiH_
double chi2() const
chi-squared of the fit
Definition: TrackBase.h:536
MonitorElement * drH_
double ndof() const
number of degrees of freedom of the fit
Definition: TrackBase.h:542
float sumPhotonEt
sum pt of PF photons // old float photonIso ;
Definition: GsfElectron.h:575
float sumNeutralHadronEt
sum pt of neutral hadrons // old float neutralHadronIso ;
Definition: GsfElectron.h:574
bool isValid() const
Definition: HandleBase.h:75
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:596
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:123
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:437
const edm::EDGetTokenT< reco::VertexCollection > vertexToken_
tuple tracks
Definition: testEve_cfg.py:39
int numberOfValidPixelHits() const
Definition: HitPattern.h:816
MonitorElement * hcounterH_
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:578
float sumChargedHadronPt
sum-pt of charged Hadron // old float chargedHadronIso ;
Definition: GsfElectron.h:573
const std::string trackQuality_
void TrackTypeMonitor::bookHistograms ( DQMStore::IBooker iBook,
edm::Run const &  iRun,
edm::EventSetup const &  iSetup 
)
protectedvirtual

Implements DQMEDAnalyzer.

Definition at line 63 of file TrackTypeMonitor.cc.

References DQMStore::IBooker::book1D(), dphiH_, drH_, folderName_, edm::ParameterSet::getParameter(), hcounterH_, moduleName_, nTracksHList_, parameters_, DQMStore::IBooker::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, trackChi2bynDOFHList_, trackdzHList_, trackEtaHList_, trackPhiHList_, trackPHList_, trackPterrHList_, trackPtHList_, and trackqOverpHList_.

63  {
64  edm::ParameterSet TrackEtaHistoPar = parameters_.getParameter<edm::ParameterSet>("TrackEtaPar");
65  edm::ParameterSet TrackPhiHistoPar = parameters_.getParameter<edm::ParameterSet>("TrackPhiPar");
66  edm::ParameterSet TrackPHistoPar = parameters_.getParameter<edm::ParameterSet>("TrackPPar");
67  edm::ParameterSet TrackPtHistoPar = parameters_.getParameter<edm::ParameterSet>("TrackPtPar");
68  edm::ParameterSet TrackPterrHistoPar = parameters_.getParameter<edm::ParameterSet>("TrackPterrPar");
69  edm::ParameterSet TrackqOverpHistoPar = parameters_.getParameter<edm::ParameterSet>("TrackqOverpPar");
70  edm::ParameterSet TrackdzHistoPar = parameters_.getParameter<edm::ParameterSet>("TrackdzPar");
71  edm::ParameterSet TrackChi2bynDOFHistoPar = parameters_.getParameter<edm::ParameterSet>("TrackChi2bynDOFPar");
72  edm::ParameterSet nTracksHistoPar = parameters_.getParameter<edm::ParameterSet>("nTracksPar");
73 
74  std::string currentFolder = moduleName_ + "/" + folderName_ ;
75  iBook.setCurrentFolder(currentFolder.c_str());
76 
77  trackEtaHList_.push_back(iBook.book1D("trackEtaIso", "Isolated Track Eta",
78  TrackEtaHistoPar.getParameter<int32_t>("Xbins"),
79  TrackEtaHistoPar.getParameter<double>("Xmin"),
80  TrackEtaHistoPar.getParameter<double>("Xmax")));
81  trackEtaHList_.push_back(iBook.book1D("trackEtaNoIso", "NonIsolated Track Eta",
82  TrackEtaHistoPar.getParameter<int32_t>("Xbins"),
83  TrackEtaHistoPar.getParameter<double>("Xmin"),
84  TrackEtaHistoPar.getParameter<double>("Xmax")));
85  trackEtaHList_.push_back(iBook.book1D("trackEtaUL", "Underlying Track Eta",
86  TrackEtaHistoPar.getParameter<int32_t>("Xbins"),
87  TrackEtaHistoPar.getParameter<double>("Xmin"),
88  TrackEtaHistoPar.getParameter<double>("Xmax")));
89  trackEtaHList_.push_back(iBook.book1D("trackEtaALL", "All Track Eta",
90  TrackEtaHistoPar.getParameter<int32_t>("Xbins"),
91  TrackEtaHistoPar.getParameter<double>("Xmin"),
92  TrackEtaHistoPar.getParameter<double>("Xmax")));
93 
94  trackPhiHList_.push_back(iBook.book1D("trackPhiIso", "Isolated Track Phi",
95  TrackPhiHistoPar.getParameter<int32_t>("Xbins"),
96  TrackPhiHistoPar.getParameter<double>("Xmin"),
97  TrackPhiHistoPar.getParameter<double>("Xmax")));
98  trackPhiHList_.push_back(iBook.book1D("trackPhiNonIso", "NonIsolated Track Phi",
99  TrackPhiHistoPar.getParameter<int32_t>("Xbins"),
100  TrackPhiHistoPar.getParameter<double>("Xmin"),
101  TrackPhiHistoPar.getParameter<double>("Xmax")));
102  trackPhiHList_.push_back(iBook.book1D("trackPhiUL", "Underlying Track Phi",
103  TrackPhiHistoPar.getParameter<int32_t>("Xbins"),
104  TrackPhiHistoPar.getParameter<double>("Xmin"),
105  TrackPhiHistoPar.getParameter<double>("Xmax")));
106  trackPhiHList_.push_back(iBook.book1D("trackPhiALL", "All Track Phi",
107  TrackPhiHistoPar.getParameter<int32_t>("Xbins"),
108  TrackPhiHistoPar.getParameter<double>("Xmin"),
109  TrackPhiHistoPar.getParameter<double>("Xmax")));
110 
111  trackPHList_.push_back(iBook.book1D("trackPIso", "Isolated Track P",
112  TrackPHistoPar.getParameter<int32_t>("Xbins"),
113  TrackPHistoPar.getParameter<double>("Xmin"),
114  TrackPHistoPar.getParameter<double>("Xmax")));
115  trackPHList_.push_back(iBook.book1D("trackPNonIso", "NonIsolated Track P",
116  TrackPHistoPar.getParameter<int32_t>("Xbins"),
117  TrackPHistoPar.getParameter<double>("Xmin"),
118  TrackPHistoPar.getParameter<double>("Xmax")));
119  trackPHList_.push_back(iBook.book1D("trackPUL", "Underlying Track P",
120  TrackPHistoPar.getParameter<int32_t>("Xbins"),
121  TrackPHistoPar.getParameter<double>("Xmin"),
122  TrackPHistoPar.getParameter<double>("Xmax")));
123  trackPHList_.push_back(iBook.book1D("trackPALL", "All Track P",
124  TrackPHistoPar.getParameter<int32_t>("Xbins"),
125  TrackPHistoPar.getParameter<double>("Xmin"),
126  TrackPHistoPar.getParameter<double>("Xmax")));
127 
128  trackPtHList_.push_back(iBook.book1D("trackPtIsolated", "Isolated Track Pt",
129  TrackPtHistoPar.getParameter<int32_t>("Xbins"),
130  TrackPtHistoPar.getParameter<double>("Xmin"),
131  TrackPtHistoPar.getParameter<double>("Xmax")));
132  trackPtHList_.push_back(iBook.book1D("trackPtNonIsolated", "NonIsolated Track Pt",
133  TrackPtHistoPar.getParameter<int32_t>("Xbins"),
134  TrackPtHistoPar.getParameter<double>("Xmin"),
135  TrackPtHistoPar.getParameter<double>("Xmax")));
136  trackPtHList_.push_back(iBook.book1D("trackPtUL", "Underlying Track Pt",
137  TrackPtHistoPar.getParameter<int32_t>("Xbins"),
138  TrackPtHistoPar.getParameter<double>("Xmin"),
139  TrackPtHistoPar.getParameter<double>("Xmax")));
140  trackPtHList_.push_back(iBook.book1D("trackPtALL", "All Track Pt",
141  TrackPtHistoPar.getParameter<int32_t>("Xbins"),
142  TrackPtHistoPar.getParameter<double>("Xmin"),
143  TrackPtHistoPar.getParameter<double>("Xmax")));
144 
145  trackPterrHList_.push_back(iBook.book1D("trackPterrIsolated", "Isolated Track Pterr",
146  TrackPterrHistoPar.getParameter<int32_t>("Xbins"),
147  TrackPterrHistoPar.getParameter<double>("Xmin"),
148  TrackPterrHistoPar.getParameter<double>("Xmax")));
149  trackPterrHList_.push_back(iBook.book1D("trackPterrNonIsolated", "NonIsolated Track Pterr",
150  TrackPterrHistoPar.getParameter<int32_t>("Xbins"),
151  TrackPterrHistoPar.getParameter<double>("Xmin"),
152  TrackPterrHistoPar.getParameter<double>("Xmax")));
153  trackPterrHList_.push_back(iBook.book1D("trackPterrUL", "Underlying Track Pterr",
154  TrackPterrHistoPar.getParameter<int32_t>("Xbins"),
155  TrackPterrHistoPar.getParameter<double>("Xmin"),
156  TrackPterrHistoPar.getParameter<double>("Xmax")));
157  trackPterrHList_.push_back(iBook.book1D("trackPterrALL", "All Track Pterr",
158  TrackPterrHistoPar.getParameter<int32_t>("Xbins"),
159  TrackPterrHistoPar.getParameter<double>("Xmin"),
160  TrackPterrHistoPar.getParameter<double>("Xmax")));
161 
162  trackqOverpHList_.push_back(iBook.book1D("trackqOverpIsolated", "Isolated Track qOverp",
163  TrackqOverpHistoPar.getParameter<int32_t>("Xbins"),
164  TrackqOverpHistoPar.getParameter<double>("Xmin"),
165  TrackqOverpHistoPar.getParameter<double>("Xmax")));
166  trackqOverpHList_.push_back(iBook.book1D("trackqOverpNonIsolated", "NonIsolated Track qOverp",
167  TrackqOverpHistoPar.getParameter<int32_t>("Xbins"),
168  TrackqOverpHistoPar.getParameter<double>("Xmin"),
169  TrackqOverpHistoPar.getParameter<double>("Xmax")));
170  trackqOverpHList_.push_back(iBook.book1D("trackqOverpUL", "Underlying Track qOverp",
171  TrackqOverpHistoPar.getParameter<int32_t>("Xbins"),
172  TrackqOverpHistoPar.getParameter<double>("Xmin"),
173  TrackqOverpHistoPar.getParameter<double>("Xmax")));
174  trackqOverpHList_.push_back(iBook.book1D("trackqOverpALL", "All Track qOverp",
175  TrackqOverpHistoPar.getParameter<int32_t>("Xbins"),
176  TrackqOverpHistoPar.getParameter<double>("Xmin"),
177  TrackqOverpHistoPar.getParameter<double>("Xmax")));
178 
179  trackdzHList_.push_back(iBook.book1D("trackdzIsolated", "Isolated Track dz",
180  TrackdzHistoPar.getParameter<int32_t>("Xbins"),
181  TrackdzHistoPar.getParameter<double>("Xmin"),
182  TrackdzHistoPar.getParameter<double>("Xmax")));
183  trackdzHList_.push_back(iBook.book1D("trackdzNonIsolated", "NonIsolated Track dz",
184  TrackdzHistoPar.getParameter<int32_t>("Xbins"),
185  TrackdzHistoPar.getParameter<double>("Xmin"),
186  TrackdzHistoPar.getParameter<double>("Xmax")));
187  trackdzHList_.push_back(iBook.book1D("trackdzUL", "Underlying Track dz",
188  TrackdzHistoPar.getParameter<int32_t>("Xbins"),
189  TrackdzHistoPar.getParameter<double>("Xmin"),
190  TrackdzHistoPar.getParameter<double>("Xmax")));
191  trackdzHList_.push_back(iBook.book1D("trackdzALL", "All Track dz",
192  TrackdzHistoPar.getParameter<int32_t>("Xbins"),
193  TrackdzHistoPar.getParameter<double>("Xmin"),
194  TrackdzHistoPar.getParameter<double>("Xmax")));
195 
196  trackChi2bynDOFHList_.push_back(iBook.book1D("trackChi2bynDOFIsolated", "Isolated Track Chi2bynDOF",
197  TrackChi2bynDOFHistoPar.getParameter<int32_t>("Xbins"),
198  TrackChi2bynDOFHistoPar.getParameter<double>("Xmin"),
199  TrackChi2bynDOFHistoPar.getParameter<double>("Xmax")));
200  trackChi2bynDOFHList_.push_back(iBook.book1D("trackChi2bynDOFNonIsolated", "NonIsolated Track Chi2bynDOF",
201  TrackChi2bynDOFHistoPar.getParameter<int32_t>("Xbins"),
202  TrackChi2bynDOFHistoPar.getParameter<double>("Xmin"),
203  TrackChi2bynDOFHistoPar.getParameter<double>("Xmax")));
204  trackChi2bynDOFHList_.push_back(iBook.book1D("trackChi2bynDOFUL", "Underlying Track Chi2bynDOF",
205  TrackChi2bynDOFHistoPar.getParameter<int32_t>("Xbins"),
206  TrackChi2bynDOFHistoPar.getParameter<double>("Xmin"),
207  TrackChi2bynDOFHistoPar.getParameter<double>("Xmax")));
208  trackChi2bynDOFHList_.push_back(iBook.book1D("trackChi2bynDOFAll", "All Track Chi2bynDOF",
209  TrackChi2bynDOFHistoPar.getParameter<int32_t>("Xbins"),
210  TrackChi2bynDOFHistoPar.getParameter<double>("Xmin"),
211  TrackChi2bynDOFHistoPar.getParameter<double>("Xmax")));
212 
213  nTracksHList_.push_back(iBook.book1D("nTracksIsolated", "Isolated Track nTracks",
214  nTracksHistoPar.getParameter<int32_t>("Xbins"),
215  nTracksHistoPar.getParameter<double>("Xmin"),
216  nTracksHistoPar.getParameter<double>("Xmax")));
217  nTracksHList_.push_back(iBook.book1D("nTracksNonIsolated", "NonIsolated Track nTracks",
218  nTracksHistoPar.getParameter<int32_t>("Xbins"),
219  nTracksHistoPar.getParameter<double>("Xmin"),
220  nTracksHistoPar.getParameter<double>("Xmax")));
221  nTracksHList_.push_back(iBook.book1D("nTracksUL", "Underlying Track nTracks",
222  nTracksHistoPar.getParameter<int32_t>("Xbins"),
223  nTracksHistoPar.getParameter<double>("Xmin"),
224  nTracksHistoPar.getParameter<double>("Xmax")));
225  nTracksHList_.push_back(iBook.book1D("nTracksAll", "All Track nTracks",
226  nTracksHistoPar.getParameter<int32_t>("Xbins"),
227  nTracksHistoPar.getParameter<double>("Xmin"),
228  nTracksHistoPar.getParameter<double>("Xmax")));
229 
230  hcounterH_ = iBook.book1D("hcounter", "hcounter", 7, -0.5, 6.5);
231  dphiH_ = iBook.book1D("dphi", "dphi", 100, 0, 7);
232  drH_ = iBook.book1D("dr", "dr", 100, 0, 6);
233 }
std::vector< MonitorElement * > nTracksHList_
T getParameter(std::string const &) const
std::string folderName_
std::vector< MonitorElement * > trackChi2bynDOFHList_
std::vector< MonitorElement * > trackPterrHList_
std::vector< MonitorElement * > trackPtHList_
std::vector< MonitorElement * > trackEtaHList_
std::vector< MonitorElement * > trackdzHList_
std::vector< MonitorElement * > trackPhiHList_
MonitorElement * dphiH_
MonitorElement * drH_
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:274
std::string moduleName_
edm::ParameterSet parameters_
std::vector< MonitorElement * > trackqOverpHList_
std::vector< MonitorElement * > trackPHList_
MonitorElement * hcounterH_
void TrackTypeMonitor::endLuminosityBlock ( edm::LuminosityBlock const &  lumiSeg,
edm::EventSetup const &  eSetup 
)
overrideprotectedvirtual

Reimplemented from edm::stream::EDAnalyzerBase.

Definition at line 456 of file TrackTypeMonitor.cc.

456  {
457 }
void TrackTypeMonitor::fillHistograms ( const reco::Track track,
int  indx 
)
private

Definition at line 429 of file TrackTypeMonitor.cc.

References reco::TrackBase::chi2(), reco::TrackBase::dz(), reco::TrackBase::eta(), ndof, reco::TrackBase::ndof(), reco::TrackBase::p(), reco::TrackBase::phi(), reco::TrackBase::pt(), reco::TrackBase::ptError(), reco::TrackBase::qoverp(), trackChi2bynDOFHList_, trackdzHList_, trackEtaHList_, trackPhiHList_, trackPHList_, trackPterrHList_, trackPtHList_, and trackqOverpHList_.

Referenced by analyze().

429  {
430  if (indx >= 0 && indx < static_cast<int>(trackEtaHList_.size()))
431  trackEtaHList_.at(indx)->Fill(track.eta());
432 
433  if (indx >= 0 && indx < static_cast<int>(trackPhiHList_.size()))
434  trackPhiHList_.at(indx)->Fill(track.phi());
435 
436  if (indx >= 0 && indx < static_cast<int>(trackPHList_.size()))
437  trackPHList_.at(indx)->Fill(track.p());
438 
439  if (indx >= 0 && indx < static_cast<int>(trackPtHList_.size()))
440  trackPtHList_.at(indx)->Fill(track.pt());
441 
442  if (indx >= 0 || indx < static_cast<int>(trackPterrHList_.size()))
443  trackPterrHList_.at(indx)->Fill(track.ptError());
444 
445  if (indx >= 0 || indx < static_cast<int>(trackqOverpHList_.size()))
446  trackqOverpHList_.at(indx)->Fill(track.qoverp());
447 
448  if (indx >= 0 || indx < static_cast<int>(trackqOverpHList_.size()))
449  trackdzHList_.at(indx)->Fill(track.dz());
450 
451  double chi2 = track.chi2();
452  double ndof = track.ndof();
453  double chbyndof = (ndof > 0) ? chi2/ndof : 0;
454  trackChi2bynDOFHList_.at(indx)->Fill(chbyndof);
455 }
double qoverp() const
q / p
Definition: TrackBase.h:560
double p() const
momentum vector magnitude
Definition: TrackBase.h:602
std::vector< MonitorElement * > trackChi2bynDOFHList_
std::vector< MonitorElement * > trackPterrHList_
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:632
std::vector< MonitorElement * > trackPtHList_
std::vector< MonitorElement * > trackEtaHList_
std::vector< MonitorElement * > trackdzHList_
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:638
std::vector< MonitorElement * > trackPhiHList_
double chi2() const
chi-squared of the fit
Definition: TrackBase.h:536
double ndof() const
number of degrees of freedom of the fit
Definition: TrackBase.h:542
double pt() const
track transverse momentum
Definition: TrackBase.h:608
double ptError() const
error on Pt (set to 1000 TeV if charge==0 for safety)
Definition: TrackBase.h:750
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:596
std::vector< MonitorElement * > trackqOverpHList_
std::vector< MonitorElement * > trackPHList_

Member Data Documentation

const edm::InputTag TrackTypeMonitor::bsTag_
private

Definition at line 49 of file TrackTypeMonitor.h.

const edm::EDGetTokenT<reco::BeamSpot> TrackTypeMonitor::bsToken_
private

Definition at line 55 of file TrackTypeMonitor.h.

Referenced by analyze().

MonitorElement* TrackTypeMonitor::dphiH_
private

Definition at line 71 of file TrackTypeMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackTypeMonitor::drH_
private

Definition at line 72 of file TrackTypeMonitor.h.

Referenced by analyze(), and bookHistograms().

const edm::InputTag TrackTypeMonitor::electronTag_
private

Definition at line 47 of file TrackTypeMonitor.h.

const edm::EDGetTokenT<reco::GsfElectronCollection> TrackTypeMonitor::electronToken_
private

Definition at line 52 of file TrackTypeMonitor.h.

Referenced by analyze().

std::string TrackTypeMonitor::folderName_
private

Definition at line 43 of file TrackTypeMonitor.h.

Referenced by bookHistograms().

MonitorElement* TrackTypeMonitor::hcounterH_
private

Definition at line 70 of file TrackTypeMonitor.h.

Referenced by analyze(), and bookHistograms().

unsigned long long TrackTypeMonitor::m_cacheID_
private

Definition at line 74 of file TrackTypeMonitor.h.

std::string TrackTypeMonitor::moduleName_
private

Definition at line 42 of file TrackTypeMonitor.h.

Referenced by bookHistograms().

const edm::InputTag TrackTypeMonitor::muonTag_
private

Definition at line 46 of file TrackTypeMonitor.h.

const edm::EDGetTokenT<reco::MuonCollection> TrackTypeMonitor::muonToken_
private

Definition at line 53 of file TrackTypeMonitor.h.

Referenced by analyze().

std::vector<MonitorElement*> TrackTypeMonitor::nTracksHList_
private

Definition at line 67 of file TrackTypeMonitor.h.

Referenced by analyze(), bookHistograms(), and TrackTypeMonitor().

edm::ParameterSet TrackTypeMonitor::parameters_
private
std::vector<MonitorElement*> TrackTypeMonitor::trackChi2bynDOFHList_
private

Definition at line 66 of file TrackTypeMonitor.h.

Referenced by bookHistograms(), fillHistograms(), and TrackTypeMonitor().

std::vector<MonitorElement*> TrackTypeMonitor::trackdzHList_
private

Definition at line 68 of file TrackTypeMonitor.h.

Referenced by bookHistograms(), and fillHistograms().

std::vector<MonitorElement*> TrackTypeMonitor::trackEtaHList_
private

Definition at line 60 of file TrackTypeMonitor.h.

Referenced by bookHistograms(), fillHistograms(), and TrackTypeMonitor().

std::vector<MonitorElement*> TrackTypeMonitor::trackPhiHList_
private

Definition at line 61 of file TrackTypeMonitor.h.

Referenced by bookHistograms(), fillHistograms(), and TrackTypeMonitor().

std::vector<MonitorElement*> TrackTypeMonitor::trackPHList_
private

Definition at line 62 of file TrackTypeMonitor.h.

Referenced by bookHistograms(), fillHistograms(), and TrackTypeMonitor().

std::vector<MonitorElement*> TrackTypeMonitor::trackPterrHList_
private

Definition at line 64 of file TrackTypeMonitor.h.

Referenced by bookHistograms(), fillHistograms(), and TrackTypeMonitor().

std::vector<MonitorElement*> TrackTypeMonitor::trackPtHList_
private

Definition at line 63 of file TrackTypeMonitor.h.

Referenced by bookHistograms(), fillHistograms(), and TrackTypeMonitor().

std::vector<MonitorElement*> TrackTypeMonitor::trackqOverpHList_
private

Definition at line 65 of file TrackTypeMonitor.h.

Referenced by bookHistograms(), fillHistograms(), and TrackTypeMonitor().

const std::string TrackTypeMonitor::trackQuality_
private

Definition at line 58 of file TrackTypeMonitor.h.

Referenced by analyze().

const edm::InputTag TrackTypeMonitor::trackTag_
private

Definition at line 48 of file TrackTypeMonitor.h.

const edm::EDGetTokenT<reco::TrackCollection> TrackTypeMonitor::trackToken_
private

Definition at line 54 of file TrackTypeMonitor.h.

Referenced by analyze().

bool TrackTypeMonitor::verbose_
private

Definition at line 44 of file TrackTypeMonitor.h.

Referenced by analyze().

const edm::InputTag TrackTypeMonitor::vertexTag_
private

Definition at line 50 of file TrackTypeMonitor.h.

const edm::EDGetTokenT<reco::VertexCollection> TrackTypeMonitor::vertexToken_
private

Definition at line 56 of file TrackTypeMonitor.h.

Referenced by analyze().