CMS 3D CMS Logo

PATLostTracks.cc
Go to the documentation of this file.
14 
15 namespace {
16  bool passesQuality(const reco::Track& trk, const std::vector<reco::TrackBase::TrackQuality>& allowedQuals) {
17  for (const auto& qual : allowedQuals) {
18  if (trk.quality(qual))
19  return true;
20  }
21  return false;
22  }
23 } // namespace
24 
25 namespace pat {
27  public:
28  explicit PATLostTracks(const edm::ParameterSet&);
29  ~PATLostTracks() override;
30 
31  void produce(edm::StreamID, edm::Event&, const edm::EventSetup&) const override;
32 
33  private:
35  bool passTrkCuts(const reco::Track& tr) const;
36  void addPackedCandidate(std::vector<pat::PackedCandidate>& cands,
37  const reco::TrackRef& trk,
38  const reco::VertexRef& pvSlimmed,
39  const reco::VertexRefProd& pvSlimmedColl,
40  const TrkStatus& trkStatus,
41  const pat::PackedCandidate::PVAssociationQuality& pvAssocQuality,
43  std::pair<int, pat::PackedCandidate::PVAssociationQuality> associateTrkToVtx(const reco::VertexCollection& vertices,
44  const reco::TrackRef& trk) const;
45 
46  private:
55  const double minPt_;
56  const double minHits_;
57  const double minPixelHits_;
58  const double minPtToStoreProps_;
59  const int covarianceVersion_;
60  const std::vector<int> covariancePackingSchemas_;
61  std::vector<reco::TrackBase::TrackQuality> qualsToAutoAccept_;
69  const bool useLegacySetup_;
70  };
71 } // namespace pat
72 
74  : cands_(consumes<reco::PFCandidateCollection>(iConfig.getParameter<edm::InputTag>("inputCandidates"))),
75  map_(consumes<edm::Association<pat::PackedCandidateCollection>>(
76  iConfig.getParameter<edm::InputTag>("packedPFCandidates"))),
77  tracks_(consumes<reco::TrackCollection>(iConfig.getParameter<edm::InputTag>("inputTracks"))),
78  vertices_(consumes<reco::VertexCollection>(iConfig.getParameter<edm::InputTag>("secondaryVertices"))),
79  kshorts_(consumes<reco::VertexCompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("kshorts"))),
80  lambdas_(consumes<reco::VertexCompositeCandidateCollection>(iConfig.getParameter<edm::InputTag>("lambdas"))),
81  pv_(consumes<reco::VertexCollection>(iConfig.getParameter<edm::InputTag>("primaryVertices"))),
82  pvOrigs_(consumes<reco::VertexCollection>(iConfig.getParameter<edm::InputTag>("originalVertices"))),
83  minPt_(iConfig.getParameter<double>("minPt")),
84  minHits_(iConfig.getParameter<uint32_t>("minHits")),
85  minPixelHits_(iConfig.getParameter<uint32_t>("minPixelHits")),
86  minPtToStoreProps_(iConfig.getParameter<double>("minPtToStoreProps")),
87  covarianceVersion_(iConfig.getParameter<int>("covarianceVersion")),
88  covariancePackingSchemas_(iConfig.getParameter<std::vector<int>>("covariancePackingSchemas")),
89  muons_(consumes<reco::MuonCollection>(iConfig.getParameter<edm::InputTag>("muons"))),
90  passThroughCut_(iConfig.getParameter<std::string>("passThroughCut")),
91  maxDzForPrimaryAssignment_(
92  iConfig.getParameter<edm::ParameterSet>("pvAssignment").getParameter<double>("maxDzForPrimaryAssignment")),
93  maxDzSigForPrimaryAssignment_(
94  iConfig.getParameter<edm::ParameterSet>("pvAssignment").getParameter<double>("maxDzSigForPrimaryAssignment")),
95  maxDzErrorForPrimaryAssignment_(iConfig.getParameter<edm::ParameterSet>("pvAssignment")
96  .getParameter<double>("maxDzErrorForPrimaryAssignment")),
97  maxDxyForNotReconstructedPrimary_(iConfig.getParameter<edm::ParameterSet>("pvAssignment")
98  .getParameter<double>("maxDxyForNotReconstructedPrimary")),
99  maxDxySigForNotReconstructedPrimary_(iConfig.getParameter<edm::ParameterSet>("pvAssignment")
100  .getParameter<double>("maxDxySigForNotReconstructedPrimary")),
101  useLegacySetup_(iConfig.getParameter<bool>("useLegacySetup")) {
102  std::vector<std::string> trkQuals(iConfig.getParameter<std::vector<std::string>>("qualsToAutoAccept"));
104  trkQuals.begin(), trkQuals.end(), std::back_inserter(qualsToAutoAccept_), reco::TrackBase::qualityByName);
105 
107  qualsToAutoAccept_.end()) {
108  std::ostringstream msg;
109  msg << " PATLostTracks has a quality requirement which resolves to undefQuality. This usually means a typo and is "
110  "therefore treated a config error\nquality requirements:\n ";
111  for (const auto& trkQual : trkQuals)
112  msg << trkQual << " ";
113  throw cms::Exception("Configuration") << msg.str();
114  }
115 
116  produces<std::vector<reco::Track>>();
117  produces<std::vector<pat::PackedCandidate>>();
118  produces<std::vector<pat::PackedCandidate>>("eleTracks");
119  produces<edm::Association<pat::PackedCandidateCollection>>();
120 }
121 
123 
126  iEvent.getByToken(cands_, cands);
127 
129  iEvent.getByToken(map_, pf2pc);
130 
132  iEvent.getByToken(tracks_, tracks);
133 
135  iEvent.getByToken(vertices_, vertices);
136 
138  iEvent.getByToken(muons_, muons);
139 
141  iEvent.getByToken(kshorts_, kshorts);
143  iEvent.getByToken(lambdas_, lambdas);
144 
146  iEvent.getByToken(pv_, pvs);
147  reco::VertexRef pv(pvs.id());
148  reco::VertexRefProd pvRefProd(pvs);
150  iEvent.getByToken(pvOrigs_, pvOrigs);
151 
152  auto outPtrTrks = std::make_unique<std::vector<reco::Track>>();
153  auto outPtrTrksAsCands = std::make_unique<std::vector<pat::PackedCandidate>>();
154  auto outPtrEleTrksAsCands = std::make_unique<std::vector<pat::PackedCandidate>>();
155 
156  std::vector<TrkStatus> trkStatus(tracks->size(), TrkStatus::NOTUSED);
157  //Mark all tracks used in candidates
158  //check if packed candidates are storing the tracks by seeing if number of hits >0
159  //currently we dont use that information though
160  //electrons will never store their track (they store the GSF track)
161  for (unsigned int ic = 0, nc = cands->size(); ic < nc; ++ic) {
163  const reco::PFCandidate& cand = (*cands)[ic];
164  if (cand.charge() && cand.trackRef().isNonnull() && cand.trackRef().id() == tracks.id()) {
165  if (cand.pdgId() == 11)
166  trkStatus[cand.trackRef().key()] = TrkStatus::PFELECTRON;
167  else if (cand.pdgId() == -11)
168  trkStatus[cand.trackRef().key()] = TrkStatus::PFPOSITRON;
169  else if ((*pf2pc)[r]->numberOfHits() > 0)
170  trkStatus[cand.trackRef().key()] = TrkStatus::PFCAND;
171  else
172  trkStatus[cand.trackRef().key()] = TrkStatus::PFCANDNOTRKPROPS;
173  }
174  }
175 
176  //Mark all tracks used in secondary vertices
177  for (const auto& secVert : *vertices) {
178  for (auto trkIt = secVert.tracks_begin(); trkIt != secVert.tracks_end(); trkIt++) {
179  if (trkStatus[trkIt->key()] == TrkStatus::NOTUSED)
180  trkStatus[trkIt->key()] = TrkStatus::VTX;
181  }
182  }
183  for (const auto& v0 : *kshorts) {
184  for (size_t dIdx = 0; dIdx < v0.numberOfDaughters(); dIdx++) {
185  size_t key = (dynamic_cast<const reco::RecoChargedCandidate*>(v0.daughter(dIdx)))->track().key();
186  if (trkStatus[key] == TrkStatus::NOTUSED)
187  trkStatus[key] = TrkStatus::VTX;
188  }
189  }
190  for (const auto& v0 : *lambdas) {
191  for (size_t dIdx = 0; dIdx < v0.numberOfDaughters(); dIdx++) {
192  size_t key = (dynamic_cast<const reco::RecoChargedCandidate*>(v0.daughter(dIdx)))->track().key();
193  if (trkStatus[key] == TrkStatus::NOTUSED)
194  trkStatus[key] = TrkStatus::VTX;
195  }
196  }
197  std::vector<int> mapping(tracks->size(), -1);
198  int lostTrkIndx = 0;
199  for (unsigned int trkIndx = 0; trkIndx < tracks->size(); trkIndx++) {
200  reco::TrackRef trk(tracks, trkIndx);
201  if (trkStatus[trkIndx] == TrkStatus::VTX || (trkStatus[trkIndx] == TrkStatus::NOTUSED && passTrkCuts(*trk))) {
202  outPtrTrks->emplace_back(*trk);
203  //association to PV
204  std::pair<int, pat::PackedCandidate::PVAssociationQuality> pvAsso = associateTrkToVtx(*pvOrigs, trk);
205  const reco::VertexRef& pvOrigRef = reco::VertexRef(pvOrigs, pvAsso.first);
206  if (pvOrigRef.isNonnull()) {
207  pv = reco::VertexRef(pvs, pvOrigRef.key()); // WARNING: assume the PV slimmer is keeping same order
208  } else if (!pvs->empty()) {
209  pv = reco::VertexRef(pvs, 0);
210  }
211  addPackedCandidate(*outPtrTrksAsCands, trk, pv, pvRefProd, trkStatus[trkIndx], pvAsso.second, muons);
212 
213  //for creating the reco::Track -> pat::PackedCandidate map
214  //not done for the lostTrack:eleTracks collection
215  mapping[trkIndx] = lostTrkIndx;
216  lostTrkIndx++;
217  } else if ((trkStatus[trkIndx] == TrkStatus::PFELECTRON || trkStatus[trkIndx] == TrkStatus::PFPOSITRON) &&
218  passTrkCuts(*trk)) {
219  //association to PV
220  std::pair<int, pat::PackedCandidate::PVAssociationQuality> pvAsso = associateTrkToVtx(*pvOrigs, trk);
221  const reco::VertexRef& pvOrigRef = reco::VertexRef(pvOrigs, pvAsso.first);
222  if (pvOrigRef.isNonnull()) {
223  pv = reco::VertexRef(pvs, pvOrigRef.key()); // WARNING: assume the PV slimmer is keeping same order
224  } else if (!pvs->empty()) {
225  pv = reco::VertexRef(pvs, 0);
226  }
227  addPackedCandidate(*outPtrEleTrksAsCands, trk, pv, pvRefProd, trkStatus[trkIndx], pvAsso.second, muons);
228  }
229  }
230 
231  iEvent.put(std::move(outPtrTrks));
232  iEvent.put(std::move(outPtrEleTrksAsCands), "eleTracks");
234  auto tk2pc = std::make_unique<edm::Association<pat::PackedCandidateCollection>>(oh);
236  tk2pcFiller.insert(tracks, mapping.begin(), mapping.end());
237  tk2pcFiller.fill();
238  iEvent.put(std::move(tk2pc));
239 }
240 
242  const bool passTrkHits = tr.pt() > minPt_ && tr.numberOfValidHits() >= minHits_ &&
243  tr.hitPattern().numberOfValidPixelHits() >= minPixelHits_;
244  const bool passTrkQual = passesQuality(tr, qualsToAutoAccept_);
245 
246  return passTrkHits || passTrkQual || passThroughCut_(tr);
247 }
248 
249 void pat::PATLostTracks::addPackedCandidate(std::vector<pat::PackedCandidate>& cands,
250  const reco::TrackRef& trk,
251  const reco::VertexRef& pvSlimmed,
252  const reco::VertexRefProd& pvSlimmedColl,
253  const pat::PATLostTracks::TrkStatus& trkStatus,
254  const pat::PackedCandidate::PVAssociationQuality& pvAssocQuality,
256  const float mass = 0.13957018;
257 
258  int id = 211 * trk->charge();
259  if (trkStatus == TrkStatus::PFELECTRON)
260  id = 11;
261  else if (trkStatus == TrkStatus::PFPOSITRON)
262  id = -11;
263 
264  // assign the proper pdgId for tracks that are reconstructed as a muon
265  for (auto& mu : *muons) {
266  if (reco::TrackRef(mu.innerTrack()) == trk) {
267  id = -13 * trk->charge();
268  break;
269  }
270  }
271 
273  int nlost = trk->hitPattern().numberOfLostHits(reco::HitPattern::MISSING_INNER_HITS);
274  if (nlost == 0) {
275  if (trk->hitPattern().hasValidHitInPixelLayer(PixelSubdetector::SubDetector::PixelBarrel, 1)) {
277  }
278  } else {
280  }
281 
282  reco::Candidate::PolarLorentzVector p4(trk->pt(), trk->eta(), trk->phi(), mass);
283  cands.emplace_back(
284  pat::PackedCandidate(p4, trk->vertex(), trk->pt(), trk->eta(), trk->phi(), id, pvSlimmedColl, pvSlimmed.key()));
285 
286  cands.back().setTrackHighPurity(trk->quality(reco::TrackBase::highPurity));
287 
288  cands.back().setLostInnerHits(lostHits);
289  if (trk->pt() > minPtToStoreProps_ || trkStatus == TrkStatus::VTX) {
290  if (useLegacySetup_ || std::abs(id) == 11 || trkStatus == TrkStatus::VTX) {
291  cands.back().setTrackProperties(*trk, covariancePackingSchemas_[4], covarianceVersion_);
292  } else {
293  if (trk->hitPattern().numberOfValidPixelHits() > 0) {
294  cands.back().setTrackProperties(
295  *trk, covariancePackingSchemas_[0], covarianceVersion_); // high quality with pixels
296  } else {
297  cands.back().setTrackProperties(
298  *trk, covariancePackingSchemas_[1], covarianceVersion_); // high quality without pixels
299  }
300  }
301  } else if (!useLegacySetup_ && trk->pt() > 0.5) {
302  if (trk->hitPattern().numberOfValidPixelHits() > 0) {
303  cands.back().setTrackProperties(
304  *trk, covariancePackingSchemas_[2], covarianceVersion_); // low quality with pixels
305  } else {
306  cands.back().setTrackProperties(
307  *trk, covariancePackingSchemas_[3], covarianceVersion_); // low quality without pixels
308  }
309  }
310  cands.back().setAssociationQuality(pvAssocQuality);
311 }
312 
313 std::pair<int, pat::PackedCandidate::PVAssociationQuality> pat::PATLostTracks::associateTrkToVtx(
314  const reco::VertexCollection& vertices, const reco::TrackRef& trk) const {
315  //For legacy setup check only if the track is used in fit of the PV, i.e. vertices[0],
316  //and associate quality if weight > 0.5. Otherwise return invalid vertex index (-1)
317  //and default quality flag (NotReconstructedPrimary = 0)
318  if (useLegacySetup_) {
319  float w = vertices[0].trackWeight(trk);
320  if (w > 0.5) {
321  return std::pair<int, pat::PackedCandidate::PVAssociationQuality>(0, pat::PackedCandidate::UsedInFitTight);
322  } else if (w > 0.) {
323  return std::pair<int, pat::PackedCandidate::PVAssociationQuality>(0,
325  } else {
326  return std::pair<int, pat::PackedCandidate::PVAssociationQuality>(-1,
328  }
329  }
330 
331  //Inspired by CommonTools/RecoAlgos/interface/PrimaryVertexAssignment.h
332  //but without specific association for secondaries in jets and option to use timing
333 
334  int iVtxMaxWeight = -1;
335  int iVtxMinDzDist = -1;
336  size_t idx = 0;
337  float maxWeight = 0;
339  double minDzSig = std::numeric_limits<double>::max();
340  for (auto const& vtx : vertices) {
341  float w = vtx.trackWeight(trk);
342  double dz = std::abs(trk->dz(vtx.position()));
343  double dzSig = dz / trk->dzError();
344  if (w > maxWeight) {
345  maxWeight = w;
346  iVtxMaxWeight = idx;
347  }
348  if (dzSig < minDzSig) {
349  minDzSig = dzSig;
350  minDz = dz;
351  iVtxMinDzDist = idx;
352  }
353  idx++;
354  }
355  // vertex in which fit the track was used
356  if (iVtxMaxWeight >= 0) {
357  if (maxWeight > 0.5) {
358  return std::pair<int, pat::PackedCandidate::PVAssociationQuality>(iVtxMaxWeight,
360  } else {
361  return std::pair<int, pat::PackedCandidate::PVAssociationQuality>(iVtxMaxWeight,
363  }
364  }
365  // vertex "closest in Z" with tight cuts (targetting primary particles)
366  if (minDz < maxDzForPrimaryAssignment_) {
367  const double add_cov = vertices[iVtxMinDzDist].covariance(2, 2);
368  const double dzErr = sqrt(trk->dzError() * trk->dzError() + add_cov);
369  if (minDz / dzErr < maxDzSigForPrimaryAssignment_ && trk->dzError() < maxDzErrorForPrimaryAssignment_) {
370  return std::pair<int, pat::PackedCandidate::PVAssociationQuality>(iVtxMinDzDist,
372  }
373  }
374  // if the track is not compatible with other PVs but is compatible with the BeamSpot, we may simply have not reco'ed the PV!
375  // we still point it to the closest in Z, but flag it as possible orphan-primary
376  if (!vertices.empty() && std::abs(trk->dxy(vertices[0].position())) < maxDxyForNotReconstructedPrimary_ &&
377  std::abs(trk->dxy(vertices[0].position()) / trk->dxyError()) < maxDxySigForNotReconstructedPrimary_)
378  return std::pair<int, pat::PackedCandidate::PVAssociationQuality>(iVtxMinDzDist,
380  // for tracks not associated to any PV return the closest in dz
381  return std::pair<int, pat::PackedCandidate::PVAssociationQuality>(iVtxMinDzDist, pat::PackedCandidate::OtherDeltaZ);
382 }
383 
384 using pat::PATLostTracks;
edm::RefProd< VertexCollection >
electrons_cff.dzErr
dzErr
Definition: electrons_cff.py:354
edm::StreamID
Definition: StreamID.h:30
PDWG_BPHSkim_cff.muons
muons
Definition: PDWG_BPHSkim_cff.py:47
electrons_cff.bool
bool
Definition: electrons_cff.py:366
V0Monitor_cff.v0
v0
Definition: V0Monitor_cff.py:7
Muon.h
edm::Association::Filler
Definition: Association.h:78
pat::PATLostTracks::TrkStatus::PFCAND
pat::PATLostTracks::maxDzForPrimaryAssignment_
const double maxDzForPrimaryAssignment_
Definition: PATLostTracks.cc:64
pat::PATLostTracks::minPtToStoreProps_
const double minPtToStoreProps_
Definition: PATLostTracks.cc:58
pat::PATLostTracks::tracks_
const edm::EDGetTokenT< reco::TrackCollection > tracks_
Definition: PATLostTracks.cc:49
ESHandle.h
PFCandidate.h
amptDefaultParameters_cff.mu
mu
Definition: amptDefaultParameters_cff.py:16
pat::PATLostTracks::TrkStatus::PFPOSITRON
pat::PackedCandidate::oneLostInnerHit
Definition: PackedCandidate.h:803
edm::EDGetTokenT< reco::PFCandidateCollection >
edm
HLT enums.
Definition: AlignableModifier.h:19
reco::TrackBase::undefQuality
Definition: TrackBase.h:151
reco::Candidate::PolarLorentzVector
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.
Definition: Candidate.h:38
reco::VertexCollection
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
lostTracks_cfi.lambdas
lambdas
Definition: lostTracks_cfi.py:11
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89281
pat::PATLostTracks::pv_
const edm::EDGetTokenT< reco::VertexCollection > pv_
Definition: PATLostTracks.cc:53
pat::PackedCandidate::moreLostInnerHits
Definition: PackedCandidate.h:804
pat::PATLostTracks::PATLostTracks
PATLostTracks(const edm::ParameterSet &)
Definition: PATLostTracks.cc:73
pat::PATLostTracks::passThroughCut_
StringCutObjectSelector< reco::Track, false > passThroughCut_
Definition: PATLostTracks.cc:63
mps_check.msg
tuple msg
Definition: mps_check.py:285
pat::PATLostTracks::addPackedCandidate
void addPackedCandidate(std::vector< pat::PackedCandidate > &cands, const reco::TrackRef &trk, const reco::VertexRef &pvSlimmed, const reco::VertexRefProd &pvSlimmedColl, const TrkStatus &trkStatus, const pat::PackedCandidate::PVAssociationQuality &pvAssocQuality, edm::Handle< reco::MuonCollection > muons) const
Definition: PATLostTracks.cc:249
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
pat::PATLostTracks::covariancePackingSchemas_
const std::vector< int > covariancePackingSchemas_
Definition: PATLostTracks.cc:60
Association.h
pat::PATLostTracks::covarianceVersion_
const int covarianceVersion_
Definition: PATLostTracks.cc:59
spr::find
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
edm::Handle< reco::MuonCollection >
pat::PATLostTracks::maxDxyForNotReconstructedPrimary_
const double maxDxyForNotReconstructedPrimary_
Definition: PATLostTracks.cc:67
reco::TrackBase::numberOfValidHits
unsigned short numberOfValidHits() const
number of valid hits found
Definition: TrackBase.h:798
pat::PATLostTracks
Definition: PATLostTracks.cc:26
pat::PATLostTracks::minHits_
const double minHits_
Definition: PATLostTracks.cc:56
pat::PackedCandidate::UsedInFitLoose
Definition: PackedCandidate.h:727
pat::PATLostTracks::TrkStatus
TrkStatus
Definition: PATLostTracks.cc:34
edm::Ref< TrackCollection >
heavyIonCSV_trainingSettings.idx
idx
Definition: heavyIonCSV_trainingSettings.py:5
pat::PackedCandidate::validHitInFirstPixelBarrelLayer
Definition: PackedCandidate.h:800
reco::TrackBase::pt
double pt() const
track transverse momentum
Definition: TrackBase.h:637
GeomDetEnumerators::PixelBarrel
Definition: GeomDetEnumerators.h:11
MakerMacros.h
pat::PATLostTracks::maxDxySigForNotReconstructedPrimary_
const double maxDxySigForNotReconstructedPrimary_
Definition: PATLostTracks.cc:68
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
pat::PATLostTracks::maxDzSigForPrimaryAssignment_
const double maxDzSigForPrimaryAssignment_
Definition: PATLostTracks.cc:65
w
const double w
Definition: UKUtility.cc:23
pat::PATLostTracks::maxDzErrorForPrimaryAssignment_
const double maxDzErrorForPrimaryAssignment_
Definition: PATLostTracks.cc:66
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
pat::PATLostTracks::TrkStatus::VTX
reco::Track
Definition: Track.h:27
pat::PATLostTracks::minPixelHits_
const double minPixelHits_
Definition: PATLostTracks.cc:57
pat::PackedCandidate::PVAssociationQuality
PVAssociationQuality
Definition: PackedCandidate.h:722
pat::MuonCollection
std::vector< Muon > MuonCollection
Definition: Muon.h:35
HcalDetIdTransform::transform
unsigned transform(const HcalDetId &id, unsigned transformCode)
Definition: HcalDetIdTransform.cc:7
pat::PATLostTracks::minPt_
const double minPt_
Definition: PATLostTracks.cc:55
edm::global::EDProducer
Definition: EDProducer.h:32
pat::PackedCandidate::noLostInnerHits
Definition: PackedCandidate.h:801
pat::PATLostTracks::produce
void produce(edm::StreamID, edm::Event &, const edm::EventSetup &) const override
Definition: PATLostTracks.cc:124
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
Vertex.h
pat::PATLostTracks::muons_
const edm::EDGetTokenT< reco::MuonCollection > muons_
Definition: PATLostTracks.cc:62
HLT_FULL_cff.cands
cands
Definition: HLT_FULL_cff.py:15144
pat::PackedCandidate::CompatibilityDz
Definition: PackedCandidate.h:726
edm::ParameterSet
Definition: ParameterSet.h:47
pat::PackedCandidate::OtherDeltaZ
Definition: PackedCandidate.h:724
Event.h
tracks
const uint32_t *__restrict__ const HitContainer *__restrict__ TkSoA *__restrict__ tracks
Definition: CAHitNtupletGeneratorKernelsImpl.h:159
ParameterSet
Definition: Functions.h:16
pat::PackedCandidate::LostInnerHits
LostInnerHits
Enumerator specifying the.
Definition: PackedCandidate.h:799
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
pat::PackedCandidate
Definition: PackedCandidate.h:22
PackedCandidate.h
edm::Ref::isNonnull
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:238
reco::VertexRef
edm::Ref< VertexCollection > VertexRef
persistent reference to a Vertex
Definition: VertexFwd.h:13
lostTracks_cfi.kshorts
kshorts
Definition: lostTracks_cfi.py:10
cand
Definition: decayParser.h:32
pat::PATLostTracks::qualsToAutoAccept_
std::vector< reco::TrackBase::TrackQuality > qualsToAutoAccept_
Definition: PATLostTracks.cc:61
createfilelist.int
int
Definition: createfilelist.py:10
MetAnalyzer.pv
def pv(vc)
Definition: MetAnalyzer.py:7
iEvent
int iEvent
Definition: GenABIO.cc:224
pat::PATLostTracks::pvOrigs_
const edm::EDGetTokenT< reco::VertexCollection > pvOrigs_
Definition: PATLostTracks.cc:54
p4
double p4[4]
Definition: TauolaWrapper.h:92
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
edm::EventSetup
Definition: EventSetup.h:58
pat
Definition: HeavyIon.h:7
FSQDQM_cfi.pvs
pvs
Definition: FSQDQM_cfi.py:12
l1t::PFCandidateCollection
std::vector< l1t::PFCandidate > PFCandidateCollection
Definition: PFCandidate.h:57
pat::PATLostTracks::lambdas_
const edm::EDGetTokenT< reco::VertexCompositeCandidateCollection > lambdas_
Definition: PATLostTracks.cc:52
pat::PackedCandidateCollection
std::vector< pat::PackedCandidate > PackedCandidateCollection
Definition: PackedCandidate.h:1131
alignCSCRings.r
r
Definition: alignCSCRings.py:93
reco::VertexCompositeCandidateCollection
std::vector< VertexCompositeCandidate > VertexCompositeCandidateCollection
collection of Candidate objects
Definition: VertexCompositeCandidateFwd.h:19
pat::PATLostTracks::TrkStatus::PFCANDNOTRKPROPS
reco::TrackBase::qualityByName
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:126
VertexFwd.h
pat::PATLostTracks::TrkStatus::NOTUSED
reco::TrackBase::hitPattern
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:504
pat::PATLostTracks::vertices_
const edm::EDGetTokenT< reco::VertexCollection > vertices_
Definition: PATLostTracks.cc:50
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76
edm::OrphanHandle
Definition: EDProductfwd.h:39
StringCutObjectSelector.h
extraflags_cff.vtx
vtx
Definition: extraflags_cff.py:18
RecoChargedCandidate.h
PVValHelper::dz
Definition: PVValidationHelpers.h:51
pat::PATLostTracks::TrkStatus::PFELECTRON
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:29
electrons_cff.lostHits
lostHits
Definition: electrons_cff.py:401
pat::PATLostTracks::kshorts_
const edm::EDGetTokenT< reco::VertexCompositeCandidateCollection > kshorts_
Definition: PATLostTracks.cc:51
StringCutObjectSelector< reco::Track, false >
Exception
Definition: hltDiff.cc:245
reco::HitPattern::MISSING_INNER_HITS
Definition: HitPattern.h:155
EgHLTOffHistBins_cfi.mass
mass
Definition: EgHLTOffHistBins_cfi.py:34
pat::PackedCandidate::NotReconstructedPrimary
Definition: PackedCandidate.h:723
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
reco::HitPattern::numberOfValidPixelHits
int numberOfValidPixelHits() const
Definition: HitPattern.h:800
reco::PFCandidate
Particle reconstructed by the particle flow algorithm.
Definition: PFCandidate.h:41
edm::Ref::key
key_type key() const
Accessor for product key.
Definition: Ref.h:250
pat::PATLostTracks::useLegacySetup_
const bool useLegacySetup_
Definition: PATLostTracks.cc:69
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
pat::PATLostTracks::associateTrkToVtx
std::pair< int, pat::PackedCandidate::PVAssociationQuality > associateTrkToVtx(const reco::VertexCollection &vertices, const reco::TrackRef &trk) const
Definition: PATLostTracks.cc:313
ParameterSet.h
EDProducer.h
pat::PATLostTracks::~PATLostTracks
~PATLostTracks() override
Definition: PATLostTracks.cc:122
pat::PATLostTracks::cands_
const edm::EDGetTokenT< reco::PFCandidateCollection > cands_
Definition: PATLostTracks.cc:47
edm::Event
Definition: Event.h:73
pat::PackedCandidate::UsedInFitTight
Definition: PackedCandidate.h:728
crabWrapper.key
key
Definition: crabWrapper.py:19
pat::PATLostTracks::passTrkCuts
bool passTrkCuts(const reco::Track &tr) const
Definition: PATLostTracks.cc:241
taus_updatedMVAIds_cff.mapping
mapping
Definition: taus_updatedMVAIds_cff.py:29
reco::TrackBase::quality
bool quality(const TrackQuality) const
Track quality.
Definition: TrackBase.h:552
reco::TrackCollection
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
pat::PATLostTracks::map_
const edm::EDGetTokenT< edm::Association< pat::PackedCandidateCollection > > map_
Definition: PATLostTracks.cc:48
PFCandidateFwd.h
pfMETCorrectionType0_cfi.minDz
minDz
Definition: pfMETCorrectionType0_cfi.py:52
pwdgSkimBPark_cfi.vertices
vertices
Definition: pwdgSkimBPark_cfi.py:7
reco::TrackBase::highPurity
Definition: TrackBase.h:154