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  ttrackToken_ = esConsumes(edm::ESInputTag("", "TransientTrackBuilder"));
42  // TrkHistCat = {"BCWeakDecay", "BWeakDecay", "CWeakDecay", "PU", "Other",
43  // "Fake"};
44 }
45 
46 // ---------- BookHistograms -----------
47 
49  edm::Run const &run,
50  edm::EventSetup const &es) {
51  ibook.setCurrentFolder("BDHadronTracks/JetContent");
52  //
53  // Book all histograms.
54  //
56 
57  nTrkAll_bjet = ibook.book1D(
58  "nTrkAll_bjet", "Number of selected tracks in b jets;number of selected tracks;jets", 16, -0.5, 15.5);
59 
60  nTrkAll_cjet = ibook.book1D(
61  "nTrkAll_cjet", "Number of selected tracks in c jets;number of selected tracks;jets", 16, -0.5, 15.5);
62 
63  nTrkAll_dusgjet = ibook.book1D(
64  "nTrkAll_dusgjet", "Number of selected tracks in dusg jets;number of selected tracks;jets", 16, -0.5, 15.5);
65 
66  // Loop over different Track History Categories
67  for (unsigned int i = 0; i < TrkHistCat.size(); i++) {
68  ibook.setCurrentFolder("BDHadronTracks/JetContent");
69  // b jets
70  nTrk_bjet[i] = ibook.book1D("nTrk_bjet_" + TrkHistCat[i],
71  "Number of selected tracks in b jets (" + TrkHistCat[i] +
72  ");number of selected tracks (" + TrkHistCat[i] + ");jets",
73  16,
74  -0.5,
75  15.5);
76 
77  // c jets
78  nTrk_cjet[i] = ibook.book1D("nTrk_cjet_" + TrkHistCat[i],
79  "Number of selected tracks in c jets (" + TrkHistCat[i] +
80  ");number of selected tracks (" + TrkHistCat[i] + ");jets",
81  16,
82  -0.5,
83  15.5);
84 
85  // dusg jets
86  nTrk_dusgjet[i] = ibook.book1D("nTrk_dusgjet_" + TrkHistCat[i],
87  "Number of selected tracks in dusg jets (" + TrkHistCat[i] +
88  ");number of selected tracks (" + TrkHistCat[i] + ");jets",
89  16,
90  -0.5,
91  15.5);
92 
93  ibook.setCurrentFolder("BDHadronTracks/TrackInfo");
94  // track properties for all flavours combined
95  TrkPt_alljets[i] = ibook.book1D("TrkPt_" + TrkHistCat[i],
96  "Track pT (" + TrkHistCat[i] + ");track p_{T} (" + TrkHistCat[i] + ");tracks",
97  30,
98  0,
99  100);
100  TrkEta_alljets[i] = ibook.book1D("TrkEta_" + TrkHistCat[i],
101  "Track #eta (" + TrkHistCat[i] + ");track #eta (" + TrkHistCat[i] + ");tracks",
102  30,
103  -2.5,
104  2.5);
105  TrkPhi_alljets[i] = ibook.book1D("TrkPhi_" + TrkHistCat[i],
106  "Track #phi (" + TrkHistCat[i] + ");track #phi (" + TrkHistCat[i] + ");tracks",
107  30,
108  -3.15,
109  3.15);
110  TrkDxy_alljets[i] = ibook.book1D("TrkDxy_" + TrkHistCat[i],
111  "Track dxy (" + TrkHistCat[i] + ");track dxy (" + TrkHistCat[i] + ");tracks",
112  30,
113  -0.1,
114  0.1);
115  TrkDz_alljets[i] = ibook.book1D("TrkDz_" + TrkHistCat[i],
116  "Track dz (" + TrkHistCat[i] + ");track dz (" + TrkHistCat[i] + ");tracks",
117  30,
118  -0.1,
119  0.1);
120  TrkHitAll_alljets[i] = ibook.book1D(
121  "TrkHitAll_" + TrkHistCat[i],
122  "Number of tracker hits (" + TrkHistCat[i] + ");track number of all hits (" + TrkHistCat[i] + ");tracks",
123  31,
124  -0.5,
125  30.5);
126  TrkHitStrip_alljets[i] = ibook.book1D(
127  "TrkHitStrip_" + TrkHistCat[i],
128  "Number of strip hits (" + TrkHistCat[i] + ");track number of strip hits (" + TrkHistCat[i] + ");tracks",
129  31,
130  -0.5,
131  30.5);
132  TrkHitPixel_alljets[i] = ibook.book1D(
133  "TrkHitPixel_" + TrkHistCat[i],
134  "Number of pixel hits (" + TrkHistCat[i] + ");track number of pixel hits (" + TrkHistCat[i] + ");tracks",
135  9,
136  -0.5,
137  8.5);
138 
139  ibook.setCurrentFolder("BDHadronTracks/TrackTruthInfo");
140  if (i < 5) { // Fakes (i == 5) have no truth by definition!
142  ibook.book1D("TrkTruthPt_" + TrkHistCat[i],
143  "Track pT (" + TrkHistCat[i] + " Truth);track p_{T} (" + TrkHistCat[i] + " Truth);tracks",
144  30,
145  0,
146  100);
148  ibook.book1D("TrkTruthEta_" + TrkHistCat[i],
149  "Track #eta (" + TrkHistCat[i] + " Truth);track #eta (" + TrkHistCat[i] + " Truth);tracks",
150  30,
151  -2.5,
152  2.5);
154  ibook.book1D("TrkTruthPhi_" + TrkHistCat[i],
155  "Track #phi (" + TrkHistCat[i] + " Truth);track #phi (" + TrkHistCat[i] + " Truth);tracks",
156  30,
157  -3.15,
158  3.15);
160  ibook.book1D("TrkTruthDxy_" + TrkHistCat[i],
161  "Track dxy (" + TrkHistCat[i] + " Truth);track dxy (" + TrkHistCat[i] + " Truth);tracks",
162  30,
163  -0.1,
164  0.1);
166  ibook.book1D("TrkTruthDz_" + TrkHistCat[i],
167  "Track dz (" + TrkHistCat[i] + " Truth);track dz (" + TrkHistCat[i] + " Truth);tracks",
168  30,
169  -0.1,
170  0.1);
172  ibook.book1D("TrkTruthHitAll_" + TrkHistCat[i],
173  "Number of tracker hits (" + TrkHistCat[i] + " Truth);track number of all hits (" +
174  TrkHistCat[i] + " Truth);tracks",
175  31,
176  -0.5,
177  30.5);
179  ibook.book1D("TrkTruthHitStrip_" + TrkHistCat[i],
180  "Number of strip hits (" + TrkHistCat[i] + " Truth);track number of strip hits (" +
181  TrkHistCat[i] + " Truth);tracks",
182  31,
183  -0.5,
184  30.5);
186  ibook.book1D("TrkTruthHitPixel_" + TrkHistCat[i],
187  "Number of pixel hits (" + TrkHistCat[i] + " Truth);track number of pixel hits (" +
188  TrkHistCat[i] + " Truth);tracks",
189  9,
190  -0.5,
191  8.5);
192  }
193  }
194 }
195 
196 // ---------- Destructor -----------
197 
199 
200 // ---------- Analyze -----------
201 // This is needed to get a TrackingParticle --> Cluster match (instead of
202 // Cluster-->TP)
203 using P = std::pair<OmniClusterRef, TrackingParticleRef>;
204 bool compare(const P &i, const P &j) { return i.second.index() > j.second.index(); }
205 
208  iEvent.getByToken(PatJetCollectionTag_, patJetsColl);
209 
211  iEvent.getByToken(TrackCollectionTag_, tracksHandle);
212 
213  edm::Handle<ClusterTPAssociation> pCluster2TPListH;
214  iEvent.getByToken(clusterTPMapToken_, pCluster2TPListH);
215  const ClusterTPAssociation &clusterToTPMap = *pCluster2TPListH;
216 
217  //edm::ESHandle<TransientTrackBuilder>
218  const auto &trackBuilder = iSetup.getHandle(ttrackToken_);
219 
220  classifier_.newEvent(iEvent, iSetup);
221 
222  // -----Primary Vertex-----
223  const reco::Vertex *pv;
224 
227 
228  bool pvFound = (!primaryVertex->empty());
229  if (pvFound) {
230  pv = &(*primaryVertex->begin());
231  } else {
233  e(0, 0) = 0.0015 * 0.0015;
234  e(1, 1) = 0.0015 * 0.0015;
235  e(2, 2) = 15. * 15.;
236  reco::Vertex::Point p(0, 0, 0);
237  pv = new reco::Vertex(p, e, 1, 1, 1);
238  }
239  // -----------------------
240 
241  // -------- Loop Over Jets ----------
242  for (pat::JetCollection::const_iterator jet = patJetsColl->begin(); jet != patJetsColl->end(); ++jet) {
243  if (jet->pt() < minJetPt_ || std::fabs(jet->eta()) > maxJetEta_)
244  continue;
245 
246  unsigned int flav = abs(jet->hadronFlavour());
247 
248  // std::cout << "patJet collection has pfImpactParameterTagInfo?: " <<
249  // jet->hasTagInfo("pfImpactParameter") << std::endl;
250  const CandIPTagInfo *trackIpTagInfo = jet->tagInfoCandIP(ipTagInfos_);
251  const std::vector<edm::Ptr<reco::Candidate>> &selectedTracks(trackIpTagInfo->selectedTracks());
252 
253  unsigned int nseltracks = 0;
254  std::vector<int> nseltracksCat(TrkHistCat.size(),
255  0); // following the order of TrkHistCat
256 
257  unsigned int nTrackSize = selectedTracks.size(); // number of tracks from IPInfos to loop over
258  // -------- Loop Over (selected) Tracks ----------
259  for (unsigned int itt = 0; itt < nTrackSize; ++itt) {
260  const TrackBaseRef ptrackRef = toTrackRef(selectedTracks[itt]);
261  const reco::Track *ptrackPtr = reco::btag::toTrack(ptrackRef);
262  const reco::Track &ptrack = *ptrackPtr;
263 
264  reco::TransientTrack transientTrack = trackBuilder->build(ptrackPtr);
265  GlobalVector direction(jet->px(), jet->py(), jet->pz());
266 
267  Double_t distJetAxis = IPTools::jetTrackDistance(transientTrack, direction, *pv).second.value();
268 
269  Double_t decayLength = 999;
270  TrajectoryStateOnSurface closest =
271  IPTools::closestApproachToJet(transientTrack.impactPointState(), *pv, direction, transientTrack.field());
272  if (closest.isValid())
273  decayLength = (closest.globalPosition() - RecoVertex::convertPos(pv->position())).mag();
274  else
275  decayLength = 999;
276 
277  // extra cut ons the tracks
278  if (std::fabs(distJetAxis) > distJetAxis_ || decayLength > decayLength_) {
279  continue;
280  }
281  nseltracks += 1; // if it passed these cuts, nselectedtracks +1
282 
284 
285  double TrkPt = ptrack.pt();
286  double TrkEta = ptrack.eta();
287  double TrkPhi = ptrack.phi();
288  double TrkDxy = ptrack.dxy(pv->position());
289  double TrkDz = ptrack.dz(pv->position());
290  int TrknHitAll = ptrack.numberOfValidHits();
291  int TrknHitPixel = ptrack.hitPattern().numberOfValidPixelHits();
292  int TrknHitStrip = ptrack.hitPattern().numberOfValidStripHits();
293 
294  double TrkTruthPt = -99;
295  double TrkTruthEta = -99;
296  double TrkTruthPhi = -99;
297  double TrkTruthDxy = -1;
298  double TrkTruthDz = -1;
299  int TrkTruthnHitAll = -1;
300  int TrkTruthnHitPixel = -1;
301  int TrkTruthnHitStrip = -1;
302 
303  // Get corresponding Trackingparticle
304  std::pair<TrackingParticleRef, double> res = classifier_.history().getMatchedTrackingParticle();
305  TrackingParticleRef tpr = res.first;
306  double quality_tpr = res.second;
307 
308  // Match TP to hit-cluster (re-ordering according to TP rather than
309  // clusters and look for equal_range of a given tpr)
310  auto clusterTPmap = clusterToTPMap.map();
311  std::sort(clusterTPmap.begin(), clusterTPmap.end(), compare);
312  auto clusterRange =
313  std::equal_range(clusterTPmap.begin(), clusterTPmap.end(), std::make_pair(OmniClusterRef(), tpr), compare);
314  if (quality_tpr != 0) {
315  TrkTruthPt = tpr->pt();
316  TrkTruthEta = tpr->eta();
317  TrkTruthPhi = tpr->phi();
318 
319  const TrackingParticle::Point &vertex_pv = pv->position();
320  TrackingParticle::Point vertex_tpr = tpr->vertex();
321  TrackingParticle::Vector momentum_tpr = tpr->momentum();
322  TrkTruthDxy = (-(vertex_tpr.x() - vertex_pv.x()) * momentum_tpr.y() +
323  (vertex_tpr.y() - vertex_pv.y()) * momentum_tpr.x()) /
324  tpr->pt();
325  TrkTruthDz = (vertex_tpr.z() - vertex_pv.z()) - ((vertex_tpr.x() - vertex_pv.x()) * momentum_tpr.x() +
326  (vertex_tpr.y() - vertex_pv.y()) * momentum_tpr.y()) /
327  sqrt(momentum_tpr.perp2()) * momentum_tpr.z() /
328  sqrt(momentum_tpr.perp2());
329 
330  TrkTruthnHitAll = 0;
331  TrkTruthnHitPixel = 0;
332  TrkTruthnHitStrip = 0;
333  if (clusterRange.first != clusterRange.second) {
334  for (auto ip = clusterRange.first; ip != clusterRange.second; ++ip) {
335  const OmniClusterRef &cluster = ip->first;
336  if (cluster.isPixel() && cluster.isValid()) {
337  TrkTruthnHitPixel += 1;
338  }
339  if (cluster.isStrip() && cluster.isValid()) {
340  TrkTruthnHitStrip += 1;
341  }
342  }
343  }
344  TrkTruthnHitAll = TrkTruthnHitPixel + TrkTruthnHitStrip;
345  }
346 
347  // ----------- Filling the correct histograms based on jet flavour and
348  // Track history Category --------
349 
350  // BCWeakDecay
352  theFlag[TrackCategories::CWeakDecay]) {
362  if (quality_tpr != 0) {
371  }
372  }
373  // BWeakDecay
374  else if (theFlag[TrackCategories::SignalEvent] && theFlag[TrackCategories::BWeakDecay] &&
375  !theFlag[TrackCategories::CWeakDecay]) {
385  if (quality_tpr != 0) {
394  }
395  }
396  // CWeakDecay
397  else if (theFlag[TrackCategories::SignalEvent] && !theFlag[TrackCategories::BWeakDecay] &&
398  theFlag[TrackCategories::CWeakDecay]) {
408  if (quality_tpr != 0) {
417  }
418  }
419  // PU
420  else if (!theFlag[TrackCategories::SignalEvent] && !theFlag[TrackCategories::Fake]) {
421  nseltracksCat[BDHadronTrackMonitoringAnalyzer::PU] += 1;
430  if (quality_tpr != 0) {
439  }
440  }
441  // Other
442  else if (theFlag[TrackCategories::SignalEvent] && !theFlag[TrackCategories::BWeakDecay] &&
443  !theFlag[TrackCategories::CWeakDecay]) {
444  nseltracksCat[BDHadronTrackMonitoringAnalyzer::Other] += 1;
453  if (quality_tpr != 0) {
462  }
463  }
464  // Fake
465  else if (!theFlag[TrackCategories::SignalEvent] && theFlag[TrackCategories::Fake]) {
466  nseltracksCat[BDHadronTrackMonitoringAnalyzer::Fake] += 1;
475  // NO TRUTH FOR FAKES!!!
476  }
477  }
478  // -------- END Loop Over (selected) Tracks ----------
479  // Still have to fill some jet-flavour specific variables
480  if (flav == 5) {
481  nTrkAll_bjet->Fill(nseltracks);
482  for (unsigned int i = 0; i < TrkHistCat.size(); i++) {
483  nTrk_bjet[i]->Fill(nseltracksCat[i]);
484  }
485  } else if (flav == 4) {
486  nTrkAll_cjet->Fill(nseltracks);
487  for (unsigned int i = 0; i < TrkHistCat.size(); i++) {
488  nTrk_cjet[i]->Fill(nseltracksCat[i]);
489  }
490  } else {
491  nTrkAll_dusgjet->Fill(nseltracks);
492  for (unsigned int i = 0; i < TrkHistCat.size(); i++) {
493  nTrk_dusgjet[i]->Fill(nseltracksCat[i]);
494  }
495  }
496  }
497  // -------- END Loop Over Jets ----------
498 
499  if (!pvFound) {
500  delete pv;
501  }
502 }
503 
504 // 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
edm::ESInputTag
Definition: ESInputTag.h:87
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
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:48
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:46
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
BDHadronTrackMonitoringAnalyzer::ttrackToken_
edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > ttrackToken_
Definition: BDHadronTrackMonitoringAnalyzer.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:76
reco::Track
Definition: Track.h:27
ClusterTPAssociation::map
const map_type & map() const
Definition: ClusterTPAssociation.h:70
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
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
AlCaHLTBitMon_ParallelJobs.p
def p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
BDHadronTrackMonitoringAnalyzer::Fake
Definition: BDHadronTrackMonitoringAnalyzer.h:56
OmniClusterRef::isStrip
bool isStrip() const
Definition: OmniClusterRef.h:80
jetUpdater_cfi.sort
sort
Definition: jetUpdater_cfi.py:29
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:47
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:96
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
edm::EventSetup::getHandle
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:155
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:58
BDHadronTrackMonitoringAnalyzer::PU
Definition: BDHadronTrackMonitoringAnalyzer.h:56
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:108
BDHadronTrackMonitoringAnalyzer::~BDHadronTrackMonitoringAnalyzer
~BDHadronTrackMonitoringAnalyzer() override
Definition: BDHadronTrackMonitoringAnalyzer.cc:198
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
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:830
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:818
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
TrackCategories::CWeakDecay
Definition: TrackCategories.h:24
BDHadronTrackMonitoringAnalyzer::analyze
void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup) override
Definition: BDHadronTrackMonitoringAnalyzer.cc:206
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:203
DeDxTools::esConsumes
ESGetTokenH3DDVariant esConsumes(std::string const &Reccord, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
OmniClusterRef::isValid
bool isValid() const
Definition: OmniClusterRef.h:78
compare
bool compare(const P &i, const P &j)
Definition: BDHadronTrackMonitoringAnalyzer.cc:204
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