CMS 3D CMS Logo

BDHadronTrackMonitoringAnalyzer.cc
Go to the documentation of this file.
2 
3 using namespace reco;
4 using namespace edm;
5 using namespace std;
6 
8  const reco::PFCandidate *pfcand = dynamic_cast<const reco::PFCandidate *>(cnd.get());
9 
10  if ((std::abs(pfcand->pdgId()) == 11 || pfcand->pdgId() == 22) && pfcand->gsfTrackRef().isNonnull() &&
11  pfcand->gsfTrackRef().isAvailable())
12  return reco::TrackBaseRef(pfcand->gsfTrackRef());
13  else if (pfcand->trackRef().isNonnull() && pfcand->trackRef().isAvailable())
14  return reco::TrackBaseRef(pfcand->trackRef());
15  else
16  return reco::TrackBaseRef();
17 }
18 
19 // ---------- Static member declaration -----------
20 const std::vector<std::string> BDHadronTrackMonitoringAnalyzer::TrkHistCat = {
21  "BCWeakDecay", "BWeakDecay", "CWeakDecay", "PU", "Other", "Fake"};
22 
23 // ---------- Constructor -----------
25  : distJetAxis_(pSet.getParameter<double>("distJetAxisCut")),
26  decayLength_(pSet.getParameter<double>("decayLengthCut")),
27  minJetPt_(pSet.getParameter<double>("minJetPt")),
28  maxJetEta_(pSet.getParameter<double>("maxJetEta")),
29  ipTagInfos_(pSet.getParameter<std::string>("ipTagInfos")),
30  PatJetSrc_(pSet.getParameter<InputTag>("PatJetSource")),
31  TrackSrc_(pSet.getParameter<InputTag>("TrackSource")),
32  PVSrc_(pSet.getParameter<InputTag>("PrimaryVertexSource")),
33  ClusterTPMapSrc_(pSet.getParameter<InputTag>("clusterTPMap")),
34  classifier_(pSet, consumesCollector())
35 
36 {
37  PatJetCollectionTag_ = consumes<pat::JetCollection>(PatJetSrc_);
38  TrackCollectionTag_ = consumes<reco::TrackCollection>(TrackSrc_);
39  PrimaryVertexColl_ = consumes<reco::VertexCollection>(PVSrc_);
40  clusterTPMapToken_ = consumes<ClusterTPAssociation>(ClusterTPMapSrc_);
41  // TrkHistCat = {"BCWeakDecay", "BWeakDecay", "CWeakDecay", "PU", "Other",
42  // "Fake"};
43 }
44 
45 // ---------- BookHistograms -----------
46 
48  edm::Run const &run,
49  edm::EventSetup const &es) {
50  ibook.setCurrentFolder("BDHadronTracks/JetContent");
51  //
52  // Book all histograms.
53  //
55 
56  nTrkAll_bjet = ibook.book1D(
57  "nTrkAll_bjet", "Number of selected tracks in b jets;number of selected tracks;jets", 16, -0.5, 15.5);
58 
59  nTrkAll_cjet = ibook.book1D(
60  "nTrkAll_cjet", "Number of selected tracks in c jets;number of selected tracks;jets", 16, -0.5, 15.5);
61 
62  nTrkAll_dusgjet = ibook.book1D(
63  "nTrkAll_dusgjet", "Number of selected tracks in dusg jets;number of selected tracks;jets", 16, -0.5, 15.5);
64 
65  // Loop over different Track History Categories
66  for (unsigned int i = 0; i < TrkHistCat.size(); i++) {
67  ibook.setCurrentFolder("BDHadronTracks/JetContent");
68  // b jets
69  nTrk_bjet[i] = ibook.book1D("nTrk_bjet_" + TrkHistCat[i],
70  "Number of selected tracks in b jets (" + TrkHistCat[i] +
71  ");number of selected tracks (" + TrkHistCat[i] + ");jets",
72  16,
73  -0.5,
74  15.5);
75 
76  // c jets
77  nTrk_cjet[i] = ibook.book1D("nTrk_cjet_" + TrkHistCat[i],
78  "Number of selected tracks in c jets (" + TrkHistCat[i] +
79  ");number of selected tracks (" + TrkHistCat[i] + ");jets",
80  16,
81  -0.5,
82  15.5);
83 
84  // dusg jets
85  nTrk_dusgjet[i] = ibook.book1D("nTrk_dusgjet_" + TrkHistCat[i],
86  "Number of selected tracks in dusg jets (" + TrkHistCat[i] +
87  ");number of selected tracks (" + TrkHistCat[i] + ");jets",
88  16,
89  -0.5,
90  15.5);
91 
92  ibook.setCurrentFolder("BDHadronTracks/TrackInfo");
93  // track properties for all flavours combined
94  TrkPt_alljets[i] = ibook.book1D("TrkPt_" + TrkHistCat[i],
95  "Track pT (" + TrkHistCat[i] + ");track p_{T} (" + TrkHistCat[i] + ");tracks",
96  30,
97  0,
98  100);
99  TrkEta_alljets[i] = ibook.book1D("TrkEta_" + TrkHistCat[i],
100  "Track #eta (" + TrkHistCat[i] + ");track #eta (" + TrkHistCat[i] + ");tracks",
101  30,
102  -2.5,
103  2.5);
104  TrkPhi_alljets[i] = ibook.book1D("TrkPhi_" + TrkHistCat[i],
105  "Track #phi (" + TrkHistCat[i] + ");track #phi (" + TrkHistCat[i] + ");tracks",
106  30,
107  -3.15,
108  3.15);
109  TrkDxy_alljets[i] = ibook.book1D("TrkDxy_" + TrkHistCat[i],
110  "Track dxy (" + TrkHistCat[i] + ");track dxy (" + TrkHistCat[i] + ");tracks",
111  30,
112  -0.1,
113  0.1);
114  TrkDz_alljets[i] = ibook.book1D("TrkDz_" + TrkHistCat[i],
115  "Track dz (" + TrkHistCat[i] + ");track dz (" + TrkHistCat[i] + ");tracks",
116  30,
117  -0.1,
118  0.1);
119  TrkHitAll_alljets[i] = ibook.book1D(
120  "TrkHitAll_" + TrkHistCat[i],
121  "Number of tracker hits (" + TrkHistCat[i] + ");track number of all hits (" + TrkHistCat[i] + ");tracks",
122  31,
123  -0.5,
124  30.5);
125  TrkHitStrip_alljets[i] = ibook.book1D(
126  "TrkHitStrip_" + TrkHistCat[i],
127  "Number of strip hits (" + TrkHistCat[i] + ");track number of strip hits (" + TrkHistCat[i] + ");tracks",
128  31,
129  -0.5,
130  30.5);
131  TrkHitPixel_alljets[i] = ibook.book1D(
132  "TrkHitPixel_" + TrkHistCat[i],
133  "Number of pixel hits (" + TrkHistCat[i] + ");track number of pixel hits (" + TrkHistCat[i] + ");tracks",
134  9,
135  -0.5,
136  8.5);
137 
138  ibook.setCurrentFolder("BDHadronTracks/TrackTruthInfo");
139  if (i < 5) { // Fakes (i == 5) have no truth by definition!
141  ibook.book1D("TrkTruthPt_" + TrkHistCat[i],
142  "Track pT (" + TrkHistCat[i] + " Truth);track p_{T} (" + TrkHistCat[i] + " Truth);tracks",
143  30,
144  0,
145  100);
147  ibook.book1D("TrkTruthEta_" + TrkHistCat[i],
148  "Track #eta (" + TrkHistCat[i] + " Truth);track #eta (" + TrkHistCat[i] + " Truth);tracks",
149  30,
150  -2.5,
151  2.5);
153  ibook.book1D("TrkTruthPhi_" + TrkHistCat[i],
154  "Track #phi (" + TrkHistCat[i] + " Truth);track #phi (" + TrkHistCat[i] + " Truth);tracks",
155  30,
156  -3.15,
157  3.15);
159  ibook.book1D("TrkTruthDxy_" + TrkHistCat[i],
160  "Track dxy (" + TrkHistCat[i] + " Truth);track dxy (" + TrkHistCat[i] + " Truth);tracks",
161  30,
162  -0.1,
163  0.1);
165  ibook.book1D("TrkTruthDz_" + TrkHistCat[i],
166  "Track dz (" + TrkHistCat[i] + " Truth);track dz (" + TrkHistCat[i] + " Truth);tracks",
167  30,
168  -0.1,
169  0.1);
171  ibook.book1D("TrkTruthHitAll_" + TrkHistCat[i],
172  "Number of tracker hits (" + TrkHistCat[i] + " Truth);track number of all hits (" +
173  TrkHistCat[i] + " Truth);tracks",
174  31,
175  -0.5,
176  30.5);
178  ibook.book1D("TrkTruthHitStrip_" + TrkHistCat[i],
179  "Number of strip hits (" + TrkHistCat[i] + " Truth);track number of strip hits (" +
180  TrkHistCat[i] + " Truth);tracks",
181  31,
182  -0.5,
183  30.5);
185  ibook.book1D("TrkTruthHitPixel_" + TrkHistCat[i],
186  "Number of pixel hits (" + TrkHistCat[i] + " Truth);track number of pixel hits (" +
187  TrkHistCat[i] + " Truth);tracks",
188  9,
189  -0.5,
190  8.5);
191  }
192  }
193 }
194 
195 // ---------- Destructor -----------
196 
198 
199 // ---------- Analyze -----------
200 // This is needed to get a TrackingParticle --> Cluster match (instead of
201 // Cluster-->TP)
202 using P = std::pair<OmniClusterRef, TrackingParticleRef>;
203 bool compare(const P &i, const P &j) { return i.second.index() > j.second.index(); }
204 
207  iEvent.getByToken(PatJetCollectionTag_, patJetsColl);
208 
210  iEvent.getByToken(TrackCollectionTag_, tracksHandle);
211 
212  edm::Handle<ClusterTPAssociation> pCluster2TPListH;
213  iEvent.getByToken(clusterTPMapToken_, pCluster2TPListH);
214  const ClusterTPAssociation &clusterToTPMap = *pCluster2TPListH;
215 
217  iSetup.get<TransientTrackRecord>().get("TransientTrackBuilder", trackBuilder);
218 
219  classifier_.newEvent(iEvent, iSetup);
220 
221  // -----Primary Vertex-----
222  const reco::Vertex *pv;
223 
226 
227  bool pvFound = (!primaryVertex->empty());
228  if (pvFound) {
229  pv = &(*primaryVertex->begin());
230  } else {
232  e(0, 0) = 0.0015 * 0.0015;
233  e(1, 1) = 0.0015 * 0.0015;
234  e(2, 2) = 15. * 15.;
235  reco::Vertex::Point p(0, 0, 0);
236  pv = new reco::Vertex(p, e, 1, 1, 1);
237  }
238  // -----------------------
239 
240  // -------- Loop Over Jets ----------
241  for (pat::JetCollection::const_iterator jet = patJetsColl->begin(); jet != patJetsColl->end(); ++jet) {
242  if (jet->pt() < minJetPt_ || std::fabs(jet->eta()) > maxJetEta_)
243  continue;
244 
245  unsigned int flav = abs(jet->hadronFlavour());
246 
247  // std::cout << "patJet collection has pfImpactParameterTagInfo?: " <<
248  // jet->hasTagInfo("pfImpactParameter") << std::endl;
249  const CandIPTagInfo *trackIpTagInfo = jet->tagInfoCandIP(ipTagInfos_);
250  const std::vector<edm::Ptr<reco::Candidate>> &selectedTracks(trackIpTagInfo->selectedTracks());
251 
252  unsigned int nseltracks = 0;
253  std::vector<int> nseltracksCat(TrkHistCat.size(),
254  0); // following the order of TrkHistCat
255 
256  unsigned int nTrackSize = selectedTracks.size(); // number of tracks from IPInfos to loop over
257  // -------- Loop Over (selected) Tracks ----------
258  for (unsigned int itt = 0; itt < nTrackSize; ++itt) {
259  const TrackBaseRef ptrackRef = toTrackRef(selectedTracks[itt]);
260  const reco::Track *ptrackPtr = reco::btag::toTrack(ptrackRef);
261  const reco::Track &ptrack = *ptrackPtr;
262 
263  reco::TransientTrack transientTrack = trackBuilder->build(ptrackPtr);
264  GlobalVector direction(jet->px(), jet->py(), jet->pz());
265 
266  Double_t distJetAxis = IPTools::jetTrackDistance(transientTrack, direction, *pv).second.value();
267 
268  Double_t decayLength = 999;
269  TrajectoryStateOnSurface closest =
270  IPTools::closestApproachToJet(transientTrack.impactPointState(), *pv, direction, transientTrack.field());
271  if (closest.isValid())
272  decayLength = (closest.globalPosition() - RecoVertex::convertPos(pv->position())).mag();
273  else
274  decayLength = 999;
275 
276  // extra cut ons the tracks
277  if (std::fabs(distJetAxis) > distJetAxis_ || decayLength > decayLength_) {
278  continue;
279  }
280  nseltracks += 1; // if it passed these cuts, nselectedtracks +1
281 
283 
284  double TrkPt = ptrack.pt();
285  double TrkEta = ptrack.eta();
286  double TrkPhi = ptrack.phi();
287  double TrkDxy = ptrack.dxy(pv->position());
288  double TrkDz = ptrack.dz(pv->position());
289  int TrknHitAll = ptrack.numberOfValidHits();
290  int TrknHitPixel = ptrack.hitPattern().numberOfValidPixelHits();
291  int TrknHitStrip = ptrack.hitPattern().numberOfValidStripHits();
292 
293  double TrkTruthPt = -99;
294  double TrkTruthEta = -99;
295  double TrkTruthPhi = -99;
296  double TrkTruthDxy = -1;
297  double TrkTruthDz = -1;
298  int TrkTruthnHitAll = -1;
299  int TrkTruthnHitPixel = -1;
300  int TrkTruthnHitStrip = -1;
301 
302  // Get corresponding Trackingparticle
303  std::pair<TrackingParticleRef, double> res = classifier_.history().getMatchedTrackingParticle();
304  TrackingParticleRef tpr = res.first;
305  double quality_tpr = res.second;
306 
307  // Match TP to hit-cluster (re-ordering according to TP rather than
308  // clusters and look for equal_range of a given tpr)
309  auto clusterTPmap = clusterToTPMap.map();
310  std::sort(clusterTPmap.begin(), clusterTPmap.end(), compare);
311  auto clusterRange =
312  std::equal_range(clusterTPmap.begin(), clusterTPmap.end(), std::make_pair(OmniClusterRef(), tpr), compare);
313  if (quality_tpr != 0) {
314  TrkTruthPt = tpr->pt();
315  TrkTruthEta = tpr->eta();
316  TrkTruthPhi = tpr->phi();
317 
318  const TrackingParticle::Point &vertex_pv = pv->position();
319  TrackingParticle::Point vertex_tpr = tpr->vertex();
320  TrackingParticle::Vector momentum_tpr = tpr->momentum();
321  TrkTruthDxy = (-(vertex_tpr.x() - vertex_pv.x()) * momentum_tpr.y() +
322  (vertex_tpr.y() - vertex_pv.y()) * momentum_tpr.x()) /
323  tpr->pt();
324  TrkTruthDz = (vertex_tpr.z() - vertex_pv.z()) - ((vertex_tpr.x() - vertex_pv.x()) * momentum_tpr.x() +
325  (vertex_tpr.y() - vertex_pv.y()) * momentum_tpr.y()) /
326  sqrt(momentum_tpr.perp2()) * momentum_tpr.z() /
327  sqrt(momentum_tpr.perp2());
328 
329  TrkTruthnHitAll = 0;
330  TrkTruthnHitPixel = 0;
331  TrkTruthnHitStrip = 0;
332  if (clusterRange.first != clusterRange.second) {
333  for (auto ip = clusterRange.first; ip != clusterRange.second; ++ip) {
334  const OmniClusterRef &cluster = ip->first;
335  if (cluster.isPixel() && cluster.isValid()) {
336  TrkTruthnHitPixel += 1;
337  }
338  if (cluster.isStrip() && cluster.isValid()) {
339  TrkTruthnHitStrip += 1;
340  }
341  }
342  }
343  TrkTruthnHitAll = TrkTruthnHitPixel + TrkTruthnHitStrip;
344  }
345 
346  // ----------- Filling the correct histograms based on jet flavour and
347  // Track history Category --------
348 
349  // BCWeakDecay
351  theFlag[TrackCategories::CWeakDecay]) {
361  if (quality_tpr != 0) {
370  }
371  }
372  // BWeakDecay
373  else if (theFlag[TrackCategories::SignalEvent] && theFlag[TrackCategories::BWeakDecay] &&
374  !theFlag[TrackCategories::CWeakDecay]) {
384  if (quality_tpr != 0) {
393  }
394  }
395  // CWeakDecay
396  else if (theFlag[TrackCategories::SignalEvent] && !theFlag[TrackCategories::BWeakDecay] &&
397  theFlag[TrackCategories::CWeakDecay]) {
407  if (quality_tpr != 0) {
416  }
417  }
418  // PU
419  else if (!theFlag[TrackCategories::SignalEvent] && !theFlag[TrackCategories::Fake]) {
420  nseltracksCat[BDHadronTrackMonitoringAnalyzer::PU] += 1;
429  if (quality_tpr != 0) {
438  }
439  }
440  // Other
441  else if (theFlag[TrackCategories::SignalEvent] && !theFlag[TrackCategories::BWeakDecay] &&
442  !theFlag[TrackCategories::CWeakDecay]) {
443  nseltracksCat[BDHadronTrackMonitoringAnalyzer::Other] += 1;
452  if (quality_tpr != 0) {
461  }
462  }
463  // Fake
464  else if (!theFlag[TrackCategories::SignalEvent] && theFlag[TrackCategories::Fake]) {
465  nseltracksCat[BDHadronTrackMonitoringAnalyzer::Fake] += 1;
474  // NO TRUTH FOR FAKES!!!
475  }
476  }
477  // -------- END Loop Over (selected) Tracks ----------
478  // Still have to fill some jet-flavour specific variables
479  if (flav == 5) {
480  nTrkAll_bjet->Fill(nseltracks);
481  for (unsigned int i = 0; i < TrkHistCat.size(); i++) {
482  nTrk_bjet[i]->Fill(nseltracksCat[i]);
483  }
484  } else if (flav == 4) {
485  nTrkAll_cjet->Fill(nseltracks);
486  for (unsigned int i = 0; i < TrkHistCat.size(); i++) {
487  nTrk_cjet[i]->Fill(nseltracksCat[i]);
488  }
489  } else {
490  nTrkAll_dusgjet->Fill(nseltracks);
491  for (unsigned int i = 0; i < TrkHistCat.size(); i++) {
492  nTrk_dusgjet[i]->Fill(nseltracksCat[i]);
493  }
494  }
495  }
496  // -------- END Loop Over Jets ----------
497 
498  if (!pvFound) {
499  delete pv;
500  }
501 }
502 
503 // define this as a plug-in
Vector3DBase
Definition: Vector3DBase.h:8
BDHadronTrackMonitoringAnalyzer::ClusterTPMapSrc_
edm::InputTag ClusterTPMapSrc_
Definition: BDHadronTrackMonitoringAnalyzer.h:73
RecoBTag::setTDRStyle
TStyle * setTDRStyle()
Definition: Tools.cc:343
BDHadronTrackMonitoringAnalyzer::PatJetCollectionTag_
edm::EDGetTokenT< pat::JetCollection > PatJetCollectionTag_
Definition: BDHadronTrackMonitoringAnalyzer.h:76
BDHadronTrackMonitoringAnalyzer::nTrk_dusgjet
MonitorElement * nTrk_dusgjet[6]
Definition: BDHadronTrackMonitoringAnalyzer.h:95
reco::IPTagInfo
Definition: IPTagInfo.h:48
mps_fire.i
i
Definition: mps_fire.py:428
BDHadronTrackMonitoringAnalyzer::TrackSrc_
edm::InputTag TrackSrc_
Definition: BDHadronTrackMonitoringAnalyzer.h:71
listHistos.decayLength
decayLength
Definition: listHistos.py:101
BDHadronTrackMonitoringAnalyzer::TrkTruthDxy_alljets
MonitorElement * TrkTruthDxy_alljets[5]
Definition: BDHadronTrackMonitoringAnalyzer.h:105
BDHadronTrackMonitoringAnalyzer::ipTagInfos_
std::string ipTagInfos_
Definition: BDHadronTrackMonitoringAnalyzer.h:67
BDHadronTrackMonitoringAnalyzer::TrkTruthPt_alljets
MonitorElement * TrkTruthPt_alljets[5]
Definition: BDHadronTrackMonitoringAnalyzer.h:99
BDHadronTrackMonitoringAnalyzer::TrackCollectionTag_
edm::EDGetTokenT< reco::TrackCollection > TrackCollectionTag_
Definition: BDHadronTrackMonitoringAnalyzer.h:77
BDHadronTrackMonitoringAnalyzer::classifier_
TrackClassifier classifier_
Definition: BDHadronTrackMonitoringAnalyzer.h:82
TrackClassifier::history
const TrackHistory & history() const
Returns a reference to the track history used in the classification.
Definition: TrackClassifier.h:50
edm::Run
Definition: Run.h:45
reco::btag::toTrack
const reco::Track * toTrack(const reco::TrackBaseRef &t)
Definition: IPTagInfo.h:24
BDHadronTrackMonitoringAnalyzer::nTrk_bjet
MonitorElement * nTrk_bjet[6]
Definition: BDHadronTrackMonitoringAnalyzer.h:87
edm
HLT enums.
Definition: AlignableModifier.h:19
reco::Vertex::Error
math::Error< dimension >::type Error
covariance error matrix (3x3)
Definition: Vertex.h:44
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
OmniClusterRef::isPixel
bool isPixel() const
Definition: OmniClusterRef.h:79
TrajectoryStateOnSurface::globalPosition
GlobalPoint globalPosition() const
Definition: TrajectoryStateOnSurface.h:65
BDHadronTrackMonitoringAnalyzer::clusterTPMapToken_
edm::EDGetTokenT< ClusterTPAssociation > clusterTPMapToken_
Definition: BDHadronTrackMonitoringAnalyzer.h:79
ClusterTPAssociation
Definition: ClusterTPAssociation.h:21
BDHadronTrackMonitoringAnalyzer::bookHistograms
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: BDHadronTrackMonitoringAnalyzer.cc:47
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
BDHadronTrackMonitoringAnalyzer::nTrkAll_cjet
MonitorElement * nTrkAll_cjet
Definition: BDHadronTrackMonitoringAnalyzer.h:90
IPTools::closestApproachToJet
TrajectoryStateOnSurface closestApproachToJet(const TrajectoryStateOnSurface &state, const reco::Vertex &vertex, const GlobalVector &aJetDirection, const MagneticField *field)
Definition: IPTools.cc:182
reco::TrackBaseRef
edm::RefToBase< reco::Track > TrackBaseRef
persistent reference to a Track, using views
Definition: TrackFwd.h:35
TrackHistory::getMatchedTrackingParticle
const std::pair< TrackingParticleRef, double > getMatchedTrackingParticle() const
Definition: TrackHistory.h:58
edm::Ptr::get
T const * get() const
Returns C++ pointer to the item.
Definition: Ptr.h:139
TrackingParticle::Vector
math::XYZVectorD Vector
point in the space
Definition: TrackingParticle.h:37
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
BDHadronTrackMonitoringAnalyzer::nTrkAll_bjet
MonitorElement * nTrkAll_bjet
Definition: BDHadronTrackMonitoringAnalyzer.h:86
edm::Handle
Definition: AssociativeIterator.h:50
BDHadronTrackMonitoringAnalyzer::CWeakDecay
Definition: BDHadronTrackMonitoringAnalyzer.h:56
reco::TrackBase::numberOfValidHits
unsigned short numberOfValidHits() const
number of valid hits found
Definition: TrackBase.h:798
OmniClusterRef
Definition: OmniClusterRef.h:12
edm::Ref< TrackingParticleCollection >
pfDeepBoostedJetPreprocessParams_cfi.pfcand
pfcand
Definition: pfDeepBoostedJetPreprocessParams_cfi.py:8
reco::TrackBase::pt
double pt() const
track transverse momentum
Definition: TrackBase.h:637
BeamMonitor_cff.primaryVertex
primaryVertex
hltOfflineBeamSpot for HLTMON
Definition: BeamMonitor_cff.py:7
TrackCategories::Fake
Definition: TrackCategories.h:12
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
BDHadronTrackMonitoringAnalyzer::distJetAxis_
double distJetAxis_
Definition: BDHadronTrackMonitoringAnalyzer.h:61
edm::EventSetup::get
T get() const
Definition: EventSetup.h:80
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
BDHadronTrackMonitoringAnalyzer::TrkPt_alljets
MonitorElement * TrkPt_alljets[6]
Definition: BDHadronTrackMonitoringAnalyzer.h:99
BDHadronTrackMonitoringAnalyzer::Other
Definition: BDHadronTrackMonitoringAnalyzer.h:56
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
TrackClassifier::evaluate
const TrackClassifier & evaluate(reco::TrackBaseRef const &)
Classify the RecoTrack in categories.
Definition: TrackClassifier.cc:75
TransientTrackRecord
Definition: TransientTrackRecord.h:11
reco::Track
Definition: Track.h:27
ClusterTPAssociation::map
const map_type & map() const
Definition: ClusterTPAssociation.h:70
edm::ESHandle< TransientTrackBuilder >
BDHadronTrackMonitoringAnalyzer::BDHadronTrackMonitoringAnalyzer
BDHadronTrackMonitoringAnalyzer(const edm::ParameterSet &pSet)
Definition: BDHadronTrackMonitoringAnalyzer.cc:24
reco::TrackBase::dz
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:622
BDHadronTrackMonitoringAnalyzer::TrkHistCat
static const std::vector< std::string > TrkHistCat
Definition: BDHadronTrackMonitoringAnalyzer.h:57
reco::TrackBase::phi
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:649
BDHadronTrackMonitoringAnalyzer.h
BDHadronTrackMonitoringAnalyzer::TrkTruthHitAll_alljets
MonitorElement * TrkTruthHitAll_alljets[5]
Definition: BDHadronTrackMonitoringAnalyzer.h:111
BDHadronTrackMonitoringAnalyzer::TrkTruthDz_alljets
MonitorElement * TrkTruthDz_alljets[5]
Definition: BDHadronTrackMonitoringAnalyzer.h:108
BDHadronTrackMonitoringAnalyzer::nTrk_cjet
MonitorElement * nTrk_cjet[6]
Definition: BDHadronTrackMonitoringAnalyzer.h:91
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
TrackCategories::BWeakDecay
Definition: TrackCategories.h:23
IPTools::jetTrackDistance
std::pair< double, Measurement1D > jetTrackDistance(const reco::TransientTrack &track, const GlobalVector &direction, const reco::Vertex &vertex)
Definition: IPTools.cc:206
BDHadronTrackMonitoringAnalyzer::TrkTruthPhi_alljets
MonitorElement * TrkTruthPhi_alljets[5]
Definition: BDHadronTrackMonitoringAnalyzer.h:103
BDHadronTrackMonitoringAnalyzer::TrkDz_alljets
MonitorElement * TrkDz_alljets[6]
Definition: BDHadronTrackMonitoringAnalyzer.h:108
BDHadronTrackMonitoringAnalyzer::maxJetEta_
double maxJetEta_
Definition: BDHadronTrackMonitoringAnalyzer.h:64
BDHadronTrackMonitoringAnalyzer::TrkTruthHitStrip_alljets
MonitorElement * TrkTruthHitStrip_alljets[5]
Definition: BDHadronTrackMonitoringAnalyzer.h:114
edm::ParameterSet
Definition: ParameterSet.h:47
BDHadronTrackMonitoringAnalyzer::TrkTruthHitPixel_alljets
MonitorElement * TrkTruthHitPixel_alljets[5]
Definition: BDHadronTrackMonitoringAnalyzer.h:117
BDHadronTrackMonitoringAnalyzer::minJetPt_
double minJetPt_
Definition: BDHadronTrackMonitoringAnalyzer.h:63
BDHadronTrackMonitoringAnalyzer::Fake
Definition: BDHadronTrackMonitoringAnalyzer.h:56
OmniClusterRef::isStrip
bool isStrip() const
Definition: OmniClusterRef.h:80
BDHadronTrackMonitoringAnalyzer
Definition: BDHadronTrackMonitoringAnalyzer.h:47
TrackClassifier::newEvent
void newEvent(edm::Event const &, edm::EventSetup const &)
Pre-process event information (for accessing reconstraction information)
Definition: TrackClassifier.cc:44
BDHadronTrackMonitoringAnalyzer::nTrkAll_dusgjet
MonitorElement * nTrkAll_dusgjet
Definition: BDHadronTrackMonitoringAnalyzer.h:94
reco::TrackBase::eta
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:652
BDHadronTrackMonitoringAnalyzer::PVSrc_
edm::InputTag PVSrc_
Definition: BDHadronTrackMonitoringAnalyzer.h:72
reco::TransientTrack::impactPointState
TrajectoryStateOnSurface impactPointState() const
Definition: TransientTrack.h:98
MetAnalyzer.pv
def pv(vc)
Definition: MetAnalyzer.py:7
iEvent
int iEvent
Definition: GenABIO.cc:224
BDHadronTrackMonitoringAnalyzer::TrkHitAll_alljets
MonitorElement * TrkHitAll_alljets[6]
Definition: BDHadronTrackMonitoringAnalyzer.h:111
BDHadronTrackMonitoringAnalyzer::TrkHitStrip_alljets
MonitorElement * TrkHitStrip_alljets[6]
Definition: BDHadronTrackMonitoringAnalyzer.h:114
BDHadronTrackMonitoringAnalyzer::TrkTruthEta_alljets
MonitorElement * TrkTruthEta_alljets[5]
Definition: BDHadronTrackMonitoringAnalyzer.h:101
BDHadronTrackMonitoringAnalyzer::TrkHitPixel_alljets
MonitorElement * TrkHitPixel_alljets[6]
Definition: BDHadronTrackMonitoringAnalyzer.h:117
edm::EventSetup
Definition: EventSetup.h:57
BDHadronTrackMonitoringAnalyzer::PU
Definition: BDHadronTrackMonitoringAnalyzer.h:56
get
#define get
toTrackRef
const reco::TrackBaseRef toTrackRef(const edm::Ptr< reco::Candidate > &cnd)
Definition: BDHadronTrackMonitoringAnalyzer.cc:7
res
Definition: Electron.h:6
reco::TransientTrack::field
const MagneticField * field() const
Definition: TransientTrack.h:110
BDHadronTrackMonitoringAnalyzer::~BDHadronTrackMonitoringAnalyzer
~BDHadronTrackMonitoringAnalyzer() override
Definition: BDHadronTrackMonitoringAnalyzer.cc:197
edm::Ptr< reco::Candidate >
BDHadronTrackMonitoringAnalyzer::TrkEta_alljets
MonitorElement * TrkEta_alljets[6]
Definition: BDHadronTrackMonitoringAnalyzer.h:101
reco::TrackBase::hitPattern
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:504
reco::Vertex::Point
math::XYZPoint Point
point in the space
Definition: Vertex.h:40
std
Definition: JetResolutionObject.h:76
writedatasetfile.run
run
Definition: writedatasetfile.py:27
BDHadronTrackMonitoringAnalyzer::BCWeakDecay
Definition: BDHadronTrackMonitoringAnalyzer.h:56
HltBtagValidation_cff.Vertex
Vertex
Definition: HltBtagValidation_cff.py:32
reco::TransientTrack
Definition: TransientTrack.h:19
reco::HitPattern::numberOfValidStripHits
int numberOfValidStripHits() const
Definition: HitPattern.h:812
BDHadronTrackMonitoringAnalyzer::PrimaryVertexColl_
edm::EDGetTokenT< reco::VertexCollection > PrimaryVertexColl_
Definition: BDHadronTrackMonitoringAnalyzer.h:78
BDHadronTrackMonitoringAnalyzer::PatJetSrc_
edm::InputTag PatJetSrc_
Definition: BDHadronTrackMonitoringAnalyzer.h:70
metsig::jet
Definition: SignAlgoResolutions.h:47
edm::RefToBase< reco::Track >
dqm::implementation::IBooker
Definition: DQMStore.h:43
reco::HitPattern::numberOfValidPixelHits
int numberOfValidPixelHits() const
Definition: HitPattern.h:800
reco::PFCandidate
Particle reconstructed by the particle flow algorithm.
Definition: PFCandidate.h:41
RecoVertex::convertPos
reco::Vertex::Point convertPos(const GlobalPoint &p)
Definition: ConvertToFromReco.h:7
TransientTrackBuilder::build
reco::TransientTrack build(const reco::Track *p) const
Definition: TransientTrackBuilder.cc:20
TrackCategories::CWeakDecay
Definition: TrackCategories.h:24
BDHadronTrackMonitoringAnalyzer::analyze
void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup) override
Definition: BDHadronTrackMonitoringAnalyzer.cc:205
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
BDHadronTrackMonitoringAnalyzer::TrkPhi_alljets
MonitorElement * TrkPhi_alljets[6]
Definition: BDHadronTrackMonitoringAnalyzer.h:103
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
P
std::pair< OmniClusterRef, TrackingParticleRef > P
Definition: BDHadronTrackMonitoringAnalyzer.cc:202
OmniClusterRef::isValid
bool isValid() const
Definition: OmniClusterRef.h:78
compare
bool compare(const P &i, const P &j)
Definition: BDHadronTrackMonitoringAnalyzer.cc:203
edm::Event
Definition: Event.h:73
TrackingParticle::Point
math::XYZPointD Point
point in the space
Definition: TrackingParticle.h:36
reco::TrackBase::dxy
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:608
BDHadronTrackMonitoringAnalyzer::decayLength_
double decayLength_
Definition: BDHadronTrackMonitoringAnalyzer.h:62
edm::InputTag
Definition: InputTag.h:15
TrackCategories::flags
const Flags & flags() const
Returns flags with the category descriptions.
Definition: TrackCategories.h:79
reco::Vertex
Definition: Vertex.h:35
TrajectoryStateOnSurface::isValid
bool isValid() const
Definition: TrajectoryStateOnSurface.h:54
TrackCategories::Flags
std::vector< bool > Flags
Main types associated to the class.
Definition: TrackCategories.h:70
dqm::implementation::IBooker::book1D
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
TrackCollections2monitor_cff.selectedTracks
selectedTracks
Definition: TrackCollections2monitor_cff.py:32
BDHadronTrackMonitoringAnalyzer::BWeakDecay
Definition: BDHadronTrackMonitoringAnalyzer.h:56
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
TrackCategories::SignalEvent
Definition: TrackCategories.h:17
BDHadronTrackMonitoringAnalyzer::TrkDxy_alljets
MonitorElement * TrkDxy_alljets[6]
Definition: BDHadronTrackMonitoringAnalyzer.h:105