CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
pat::PATPackedCandidateProducer Class Reference
Inheritance diagram for pat::PATPackedCandidateProducer:
edm::global::EDProducer<> edm::global::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 PATPackedCandidateProducer (const edm::ParameterSet &)
 
void produce (edm::StreamID, edm::Event &, const edm::EventSetup &) const override
 
 ~PATPackedCandidateProducer () override
 
- Public Member Functions inherited from edm::global::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsStreamLuminosityBlocks () const final
 
bool wantsStreamRuns () const final
 
- Public Member Functions inherited from edm::global::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static bool candsOrdering (pat::PackedCandidate const &i, pat::PackedCandidate const &j)
 
template<typename T >
static std::vector< size_t > sort_indexes (const std::vector< T > &v)
 
- Static Public Member Functions inherited from edm::global::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Member Functions

float calcDxy (float dx, float dy, float phi) const
 
float calcDz (reco::Candidate::Point p, reco::Candidate::Point v, const reco::Candidate &c) const
 

Private Attributes

const edm::EDGetTokenT< reco::PFCandidateCollectionCands_
 
const edm::EDGetTokenT< edm::ValueMap< bool > > ChargedHadronIsolation_
 
const std::vector< int > covariancePackingSchemas_
 
const int covarianceVersion_
 
const double minPtForChargedHadronProperties_
 
const double minPtForTrackProperties_
 
const std::vector< int > pfCandidateTypesForHcalDepth_
 
const edm::EDGetTokenT< edm::ValueMap< float > > PuppiWeight_
 
const edm::EDGetTokenT< edm::ValueMap< float > > PuppiWeightNoLep_
 
const edm::EDGetTokenT< edm::Association< reco::VertexCollection > > PVAsso_
 
const edm::EDGetTokenT< edm::ValueMap< int > > PVAssoQuality_
 
const edm::EDGetTokenT< reco::VertexCollectionPVOrigs_
 
const edm::EDGetTokenT< reco::VertexCollectionPVs_
 
const bool storeChargedHadronIsolation_
 
const bool storeHcalDepthEndcapOnly_
 
const bool storeTiming_
 
std::vector< edm::EDGetTokenT< edm::View< reco::Candidate > > > SVWhiteLists_
 
const edm::EDGetTokenT< edm::ValueMap< float > > t0ErrMap_
 
const edm::EDGetTokenT< edm::ValueMap< float > > t0Map_
 
const bool timeFromValueMap_
 
const edm::EDGetTokenT< reco::TrackCollectionTKOrigs_
 
const bool usePuppi_
 

Additional Inherited Members

- Public Types inherited from edm::global::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > >
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::ProducerBase
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 declare what type of product will make and with which optional label More...
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (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 ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Detailed Description

Definition at line 39 of file PATPackedCandidateProducer.cc.

Constructor & Destructor Documentation

◆ PATPackedCandidateProducer()

pat::PATPackedCandidateProducer::PATPackedCandidateProducer ( const edm::ParameterSet iConfig)
explicit

Definition at line 115 of file PATPackedCandidateProducer.cc.

116  : usePuppi_(!iConfig.getParameter<edm::InputTag>("PuppiSrc").encode().empty() ||
117  !iConfig.getParameter<edm::InputTag>("PuppiNoLepSrc").encode().empty()),
118  Cands_(consumes<reco::PFCandidateCollection>(iConfig.getParameter<edm::InputTag>("inputCollection"))),
119  PVs_(consumes<reco::VertexCollection>(iConfig.getParameter<edm::InputTag>("inputVertices"))),
120  PVAsso_(
122  PVAssoQuality_(consumes<edm::ValueMap<int>>(iConfig.getParameter<edm::InputTag>("vertexAssociator"))),
123  PVOrigs_(consumes<reco::VertexCollection>(iConfig.getParameter<edm::InputTag>("originalVertices"))),
124  TKOrigs_(consumes<reco::TrackCollection>(iConfig.getParameter<edm::InputTag>("originalTracks"))),
126  : edm::EDGetTokenT<edm::ValueMap<float>>()),
127  PuppiWeightNoLep_(usePuppi_ ? consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("PuppiNoLepSrc"))
128  : edm::EDGetTokenT<edm::ValueMap<float>>()),
129  storeChargedHadronIsolation_(!iConfig.getParameter<edm::InputTag>("chargedHadronIsolation").encode().empty()),
131  consumes<edm::ValueMap<bool>>(iConfig.getParameter<edm::InputTag>("chargedHadronIsolation"))),
132  minPtForChargedHadronProperties_(iConfig.getParameter<double>("minPtForChargedHadronProperties")),
133  minPtForTrackProperties_(iConfig.getParameter<double>("minPtForTrackProperties")),
134  covarianceVersion_(iConfig.getParameter<int>("covarianceVersion")),
135  covariancePackingSchemas_(iConfig.getParameter<std::vector<int>>("covariancePackingSchemas")),
136  pfCandidateTypesForHcalDepth_(iConfig.getParameter<std::vector<int>>("pfCandidateTypesForHcalDepth")),
137  storeHcalDepthEndcapOnly_(iConfig.getParameter<bool>("storeHcalDepthEndcapOnly")),
138  storeTiming_(iConfig.getParameter<bool>("storeTiming")),
139  timeFromValueMap_(!iConfig.getParameter<edm::InputTag>("timeMap").encode().empty() &&
140  !iConfig.getParameter<edm::InputTag>("timeMapErr").encode().empty()),
141  t0Map_(timeFromValueMap_ ? consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("timeMap"))
142  : edm::EDGetTokenT<edm::ValueMap<float>>()),
143  t0ErrMap_(timeFromValueMap_ ? consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("timeMapErr"))
144  : edm::EDGetTokenT<edm::ValueMap<float>>()) {
145  std::vector<edm::InputTag> sv_tags =
146  iConfig.getParameter<std::vector<edm::InputTag>>("secondaryVerticesForWhiteList");
147  for (auto itag : sv_tags) {
149  }
150 
151  produces<std::vector<pat::PackedCandidate>>();
152  produces<edm::Association<pat::PackedCandidateCollection>>();
153  produces<edm::Association<reco::PFCandidateCollection>>();
154 
155  if (not pfCandidateTypesForHcalDepth_.empty())
156  produces<edm::ValueMap<pat::HcalDepthEnergyFractions>>("hcalDepthEnergyFractions");
157 }

References edm::EDConsumerBase::consumes(), edm::ParameterSet::getParameter(), pfCandidateTypesForHcalDepth_, edm::ProductRegistryHelper::produces(), and SVWhiteLists_.

◆ ~PATPackedCandidateProducer()

pat::PATPackedCandidateProducer::~PATPackedCandidateProducer ( )
override

Definition at line 159 of file PATPackedCandidateProducer.cc.

159 {}

Member Function Documentation

◆ calcDxy()

float pat::PATPackedCandidateProducer::calcDxy ( float  dx,
float  dy,
float  phi 
) const
inlineprivate

Definition at line 108 of file PATPackedCandidateProducer.cc.

108 { return -dx * std::sin(phi) + dy * std::cos(phi); }

References funct::cos(), PVValHelper::dx, PVValHelper::dy, and funct::sin().

◆ calcDz()

float pat::PATPackedCandidateProducer::calcDz ( reco::Candidate::Point  p,
reco::Candidate::Point  v,
const reco::Candidate c 
) const
inlineprivate

Definition at line 109 of file PATPackedCandidateProducer.cc.

109  {
110  return p.Z() - v.Z() - ((p.X() - v.X()) * c.px() + (p.Y() - v.Y()) * c.py()) * c.pz() / (c.pt() * c.pt());
111  }

References HltBtagPostValidation_cff::c, AlCaHLTBitMon_ParallelJobs::p, and findQualityFiles::v.

◆ candsOrdering()

static bool pat::PATPackedCandidateProducer::candsOrdering ( pat::PackedCandidate const &  i,
pat::PackedCandidate const &  j 
)
inlinestatic

Definition at line 47 of file PATPackedCandidateProducer.cc.

47  {
48  if (std::abs(i.charge()) == std::abs(j.charge())) {
49  if (i.charge() != 0) {
50  if (i.hasTrackDetails() and !j.hasTrackDetails())
51  return true;
52  if (!i.hasTrackDetails() and j.hasTrackDetails())
53  return false;
54  if (i.covarianceSchema() > j.covarianceSchema())
55  return true;
56  if (i.covarianceSchema() < j.covarianceSchema())
57  return false;
58  }
59  if (i.vertexRef() == j.vertexRef())
60  return i.eta() > j.eta();
61  else
62  return i.vertexRef().key() < j.vertexRef().key();
63  }
64  return std::abs(i.charge()) > std::abs(j.charge());
65  }

References funct::abs(), mps_fire::i, and dqmiolumiharvest::j.

Referenced by sort_indexes().

◆ produce()

void pat::PATPackedCandidateProducer::produce ( edm::StreamID  ,
edm::Event iEvent,
const edm::EventSetup iSetup 
) const
overridevirtual

Implements edm::global::EDProducerBase.

Definition at line 161 of file PATPackedCandidateProducer.cc.

161  {
163  iEvent.getByToken(Cands_, cands);
164 
166  edm::Handle<edm::ValueMap<float>> puppiWeightNoLep;
167  if (usePuppi_) {
168  iEvent.getByToken(PuppiWeight_, puppiWeight);
169  iEvent.getByToken(PuppiWeightNoLep_, puppiWeightNoLep);
170  }
171 
173  iEvent.getByToken(PVOrigs_, PVOrigs);
174 
176  iEvent.getByToken(PVAsso_, assoHandle);
177  edm::Handle<edm::ValueMap<int>> assoQualityHandle;
178  iEvent.getByToken(PVAssoQuality_, assoQualityHandle);
179  const edm::Association<reco::VertexCollection> &associatedPV = *(assoHandle.product());
180  const edm::ValueMap<int> &associationQuality = *(assoQualityHandle.product());
181 
182  edm::Handle<edm::ValueMap<bool>> chargedHadronIsolationHandle;
184  iEvent.getByToken(ChargedHadronIsolation_, chargedHadronIsolationHandle);
185 
186  std::set<unsigned int> whiteList;
187  std::set<reco::TrackRef> whiteListTk;
188  for (auto itoken : SVWhiteLists_) {
189  edm::Handle<edm::View<reco::Candidate>> svWhiteListHandle;
190  iEvent.getByToken(itoken, svWhiteListHandle);
191  const edm::View<reco::Candidate> &svWhiteList = *(svWhiteListHandle.product());
192  for (unsigned int i = 0; i < svWhiteList.size(); i++) {
193  // Whitelist via Ptrs
194  for (unsigned int j = 0; j < svWhiteList[i].numberOfSourceCandidatePtrs(); j++) {
195  const edm::Ptr<reco::Candidate> &c = svWhiteList[i].sourceCandidatePtr(j);
196  if (c.id() == cands.id())
197  whiteList.insert(c.key());
198  }
199  // Whitelist via RecoCharged
200  for (auto dau = svWhiteList[i].begin(); dau != svWhiteList[i].end(); dau++) {
201  const reco::RecoChargedCandidate *chCand = dynamic_cast<const reco::RecoChargedCandidate *>(&(*dau));
202  if (chCand != nullptr) {
203  whiteListTk.insert(chCand->track());
204  }
205  }
206  }
207  }
208 
211  if (timeFromValueMap_) {
212  iEvent.getByToken(t0Map_, t0Map);
213  iEvent.getByToken(t0ErrMap_, t0ErrMap);
214  }
215 
217  iEvent.getByToken(PVs_, PVs);
218  reco::VertexRef PV(PVs.id());
219  reco::VertexRefProd PVRefProd(PVs);
220  math::XYZPoint PVpos;
221 
222  std::vector<pat::HcalDepthEnergyFractions> hcalDepthEnergyFractions;
223  hcalDepthEnergyFractions.reserve(cands->size());
224  std::vector<pat::HcalDepthEnergyFractions> hcalDepthEnergyFractions_Ordered;
225  hcalDepthEnergyFractions_Ordered.reserve(cands->size());
226 
228  iEvent.getByToken(TKOrigs_, TKOrigs);
229  auto outPtrP = std::make_unique<std::vector<pat::PackedCandidate>>();
230  std::vector<int> mapping(cands->size());
231  std::vector<int> mappingReverse(cands->size());
232  std::vector<int> mappingTk(TKOrigs->size(), -1);
233 
234  for (unsigned int ic = 0, nc = cands->size(); ic < nc; ++ic) {
235  const reco::PFCandidate &cand = (*cands)[ic];
236  const reco::Track *ctrack = nullptr;
237  if ((abs(cand.pdgId()) == 11 || cand.pdgId() == 22) && cand.gsfTrackRef().isNonnull()) {
238  ctrack = &*cand.gsfTrackRef();
239  } else if (cand.trackRef().isNonnull()) {
240  ctrack = &*cand.trackRef();
241  }
242  if (ctrack) {
243  float dist = 1e99;
244  int pvi = -1;
245  for (size_t ii = 0; ii < PVs->size(); ii++) {
246  float dz = std::abs(ctrack->dz(((*PVs)[ii]).position()));
247  if (dz < dist) {
248  pvi = ii;
249  dist = dz;
250  }
251  }
252  PV = reco::VertexRef(PVs, pvi);
253  math::XYZPoint vtx = cand.vertex();
255  const reco::VertexRef &PVOrig = associatedPV[reco::CandidatePtr(cands, ic)];
256  if (PVOrig.isNonnull())
257  PV = reco::VertexRef(PVs,
258  PVOrig.key()); // WARNING: assume the PV slimmer is keeping same order
259  int quality = associationQuality[reco::CandidatePtr(cands, ic)];
260  // if ((size_t)pvi!=PVOrig.key()) std::cout << "not closest in Z"
261  // << pvi << " " << PVOrig.key() << " " << cand.pt() << " " <<
262  // quality << std::endl; TrajectoryStateOnSurface tsos =
263  // extrapolator.extrapolate(trajectoryStateTransform::initialFreeState(*ctrack,&*magneticField),
264  // RecoVertex::convertPos(PV->position()));
265  // vtx = tsos.globalPosition();
266  // phiAtVtx = tsos.globalDirection().phi();
267  vtx = ctrack->referencePoint();
268  float ptTrk = ctrack->pt();
269  float etaAtVtx = ctrack->eta();
270  float phiAtVtx = ctrack->phi();
271 
273  if (nlost == 0) {
276  }
277  } else {
279  }
280 
281  outPtrP->push_back(
282  pat::PackedCandidate(cand.polarP4(), vtx, ptTrk, etaAtVtx, phiAtVtx, cand.pdgId(), PVRefProd, PV.key()));
283  outPtrP->back().setAssociationQuality(pat::PackedCandidate::PVAssociationQuality(qualityMap[quality]));
284  outPtrP->back().setCovarianceVersion(covarianceVersion_);
285  if (cand.trackRef().isNonnull() && PVOrig.isNonnull() && PVOrig->trackWeight(cand.trackRef()) > 0.5 &&
286  quality == 7) {
287  outPtrP->back().setAssociationQuality(pat::PackedCandidate::UsedInFitTight);
288  }
289  // properties of the best track
290  outPtrP->back().setLostInnerHits(lostHits);
291  if (outPtrP->back().pt() > minPtForTrackProperties_ || outPtrP->back().ptTrk() > minPtForTrackProperties_ ||
292  whiteList.find(ic) != whiteList.end() ||
293  (cand.trackRef().isNonnull() && whiteListTk.find(cand.trackRef()) != whiteListTk.end())) {
294  outPtrP->back().setFirstHit(ctrack->hitPattern().getHitPattern(reco::HitPattern::TRACK_HITS, 0));
295  if (abs(outPtrP->back().pdgId()) == 22) {
296  outPtrP->back().setTrackProperties(*ctrack, covariancePackingSchemas_[4], covarianceVersion_);
297  } else {
298  if (ctrack->hitPattern().numberOfValidPixelHits() > 0) {
299  outPtrP->back().setTrackProperties(*ctrack,
301  covarianceVersion_); // high quality
302  } else {
303  outPtrP->back().setTrackProperties(*ctrack, covariancePackingSchemas_[1], covarianceVersion_);
304  }
305  }
306  // outPtrP->back().setTrackProperties(*ctrack,tsos.curvilinearError());
307  } else {
308  if (outPtrP->back().pt() > 0.5) {
309  if (ctrack->hitPattern().numberOfValidPixelHits() > 0)
310  outPtrP->back().setTrackProperties(*ctrack,
312  covarianceVersion_); // low quality, with pixels
313  else
314  outPtrP->back().setTrackProperties(*ctrack,
316  covarianceVersion_); // low quality, without pixels
317  }
318  }
319 
320  // these things are always for the CKF track
321  outPtrP->back().setTrackHighPurity(cand.trackRef().isNonnull() &&
322  cand.trackRef()->quality(reco::Track::highPurity));
323  if (cand.muonRef().isNonnull()) {
324  outPtrP->back().setMuonID(cand.muonRef()->isStandAloneMuon(), cand.muonRef()->isGlobalMuon());
325  }
326  } else {
327  if (!PVs->empty()) {
328  PV = reco::VertexRef(PVs, 0);
329  PVpos = PV->position();
330  }
331 
332  outPtrP->push_back(pat::PackedCandidate(
333  cand.polarP4(), PVpos, cand.pt(), cand.eta(), cand.phi(), cand.pdgId(), PVRefProd, PV.key()));
334  outPtrP->back().setAssociationQuality(
336  }
337 
338  // neutrals and isolated charged hadrons
339 
340  bool isIsolatedChargedHadron = false;
342  const edm::ValueMap<bool> &chargedHadronIsolation = *(chargedHadronIsolationHandle.product());
343  isIsolatedChargedHadron =
345  outPtrP->back().setIsIsolatedChargedHadron(isIsolatedChargedHadron);
346  }
347 
348  if (abs(cand.pdgId()) == 1 || abs(cand.pdgId()) == 130) {
349  outPtrP->back().setHcalFraction(cand.hcalEnergy() / (cand.ecalEnergy() + cand.hcalEnergy()));
350  } else if (cand.charge() && cand.pt() > 0.5) {
351  outPtrP->back().setHcalFraction(cand.hcalEnergy() / (cand.ecalEnergy() + cand.hcalEnergy()));
352  outPtrP->back().setCaloFraction((cand.hcalEnergy() + cand.ecalEnergy()) / cand.energy());
353  } else {
354  outPtrP->back().setHcalFraction(0);
355  outPtrP->back().setCaloFraction(0);
356  }
357 
358  if (isIsolatedChargedHadron) {
359  outPtrP->back().setRawCaloFraction((cand.rawEcalEnergy() + cand.rawHcalEnergy()) / cand.energy());
360  outPtrP->back().setRawHcalFraction(cand.rawHcalEnergy() / (cand.rawEcalEnergy() + cand.rawHcalEnergy()));
361  } else {
362  outPtrP->back().setRawCaloFraction(0);
363  outPtrP->back().setRawHcalFraction(0);
364  }
365 
366  std::vector<float> dummyVector;
367  dummyVector.clear();
368  pat::HcalDepthEnergyFractions hcalDepthEFrac(dummyVector);
369 
370  // storing HcalDepthEnergyFraction information
374  fabs(outPtrP->back().eta()) > 1.3) { // storeHcalDepthEndcapOnly_==false -> store all eta of
375  // selected PF types, if true, only |eta|>1.3 of selected
376  // PF types will be stored
377  std::vector<float> hcalDepthEnergyFractionTmp(cand.hcalDepthEnergyFractions().begin(),
378  cand.hcalDepthEnergyFractions().end());
379  hcalDepthEFrac.reset(hcalDepthEnergyFractionTmp);
380  }
381  }
382  hcalDepthEnergyFractions.push_back(hcalDepthEFrac);
383 
384  // specifically this is the PFLinker requirements to apply the e/gamma
385  // regression
386  if (cand.particleId() == reco::PFCandidate::e ||
387  (cand.particleId() == reco::PFCandidate::gamma && cand.mva_nothing_gamma() > 0.)) {
388  outPtrP->back().setGoodEgamma();
389  }
390 
391  if (usePuppi_) {
392  reco::PFCandidateRef pkref(cands, ic);
393 
394  float puppiWeightVal = (*puppiWeight)[pkref];
395  float puppiWeightNoLepVal = (*puppiWeightNoLep)[pkref];
396  outPtrP->back().setPuppiWeight(puppiWeightVal, puppiWeightNoLepVal);
397  }
398 
399  if (storeTiming_) {
400  if (timeFromValueMap_) {
401  if (cand.trackRef().isNonnull()) {
402  auto t0 = (*t0Map)[cand.trackRef()];
403  auto t0Err = (*t0ErrMap)[cand.trackRef()];
404  outPtrP->back().setTime(t0, t0Err);
405  }
406  } else {
407  if (cand.isTimeValid()) {
408  outPtrP->back().setTime(cand.time(), cand.timeError());
409  }
410  }
411  }
412 
413  mapping[ic] = ic; // trivial at the moment!
414  if (cand.trackRef().isNonnull() && cand.trackRef().id() == TKOrigs.id()) {
415  mappingTk[cand.trackRef().key()] = ic;
416  }
417  }
418 
419  auto outPtrPSorted = std::make_unique<std::vector<pat::PackedCandidate>>();
420  std::vector<size_t> order = sort_indexes(*outPtrP);
421  std::vector<size_t> reverseOrder(order.size());
422  for (size_t i = 0, nc = cands->size(); i < nc; i++) {
423  outPtrPSorted->push_back((*outPtrP)[order[i]]);
424  reverseOrder[order[i]] = i;
425  mappingReverse[order[i]] = i;
426  hcalDepthEnergyFractions_Ordered.push_back(hcalDepthEnergyFractions[order[i]]);
427  }
428 
429  // Fix track association for sorted candidates
430  for (size_t i = 0, ntk = mappingTk.size(); i < ntk; i++) {
431  if (mappingTk[i] >= 0)
432  mappingTk[i] = reverseOrder[mappingTk[i]];
433  }
434 
436 
437  // now build the two maps
438  auto pf2pc = std::make_unique<edm::Association<pat::PackedCandidateCollection>>(oh);
439  auto pc2pf = std::make_unique<edm::Association<reco::PFCandidateCollection>>(cands);
442  pf2pcFiller.insert(cands, mappingReverse.begin(), mappingReverse.end());
443  pc2pfFiller.insert(oh, order.begin(), order.end());
444  // include also the mapping track -> packed PFCand
445  pf2pcFiller.insert(TKOrigs, mappingTk.begin(), mappingTk.end());
446 
447  pf2pcFiller.fill();
448  pc2pfFiller.fill();
449  iEvent.put(std::move(pf2pc));
450  iEvent.put(std::move(pc2pf));
451 
452  // HCAL depth energy fraction additions using ValueMap
453  auto hcalDepthEnergyFractionsV = std::make_unique<edm::ValueMap<HcalDepthEnergyFractions>>();
454  edm::ValueMap<HcalDepthEnergyFractions>::Filler fillerHcalDepthEnergyFractions(*hcalDepthEnergyFractionsV);
455  fillerHcalDepthEnergyFractions.insert(
456  cands, hcalDepthEnergyFractions_Ordered.begin(), hcalDepthEnergyFractions_Ordered.end());
457  fillerHcalDepthEnergyFractions.fill();
458 
459  if (not pfCandidateTypesForHcalDepth_.empty())
460  iEvent.put(std::move(hcalDepthEnergyFractionsV), "hcalDepthEnergyFractions");
461 }

References funct::abs(), begin, HltBtagPostValidation_cff::c, HLT_2018_cff::cands, packedPFCandidates_cfi::chargedHadronIsolation, PVValHelper::dz, reco::TrackBase::dz(), reco::PFCandidate::e, edm::View< T >::end(), reco::TrackBase::eta(), edm::helper::Filler< Map >::fill(), spr::find(), reco::PFCandidate::gamma, reco::HitPattern::getHitPattern(), reco::HitPattern::hasValidHitInPixelLayer(), reco::TrackBase::highPurity, reco::TrackBase::hitPattern(), mps_fire::i, edm::HandleBase::id(), iEvent, cuy::ii, edm::helper::Filler< Map >::insert(), edm::Ref< C, T, F >::isNonnull(), dqmiolumiharvest::j, edm::Ref< C, T, F >::key(), electrons_cff::lostHits, taus_updatedMVAIds_cff::mapping, reco::HitPattern::MISSING_INNER_HITS, pat::PackedCandidate::moreLostInnerHits, eostools::move(), pat::PackedCandidate::noLostInnerHits, reco::HitPattern::numberOfLostHits(), reco::HitPattern::numberOfValidPixelHits(), pat::PackedCandidate::oneLostInnerHit, eventshapeDQM_cfi::order, reco::TrackBase::phi(), GeomDetEnumerators::PixelBarrel, edm::Handle< T >::product(), reco::TrackBase::pt(), nanoDQM_cfi::PV, qcdUeDQM_cfi::quality, pat::qualityMap, reco::TrackBase::referencePoint(), pat::HcalDepthEnergyFractions::reset(), edm::View< T >::size(), FrontierCondition_GT_autoExpress_cfi::t0, reco::RecoChargedCandidate::track(), reco::HitPattern::TRACK_HITS, pat::PackedCandidate::UsedInFitTight, pat::PackedCandidate::validHitInFirstPixelBarrelLayer, and badGlobalMuonTaggersAOD_cff::vtx.

◆ sort_indexes()

template<typename T >
static std::vector<size_t> pat::PATPackedCandidateProducer::sort_indexes ( const std::vector< T > &  v)
inlinestatic

Definition at line 68 of file PATPackedCandidateProducer.cc.

68  {
69  std::vector<size_t> idx(v.size());
70  for (size_t i = 0; i != idx.size(); ++i)
71  idx[i] = i;
72  std::sort(idx.begin(), idx.end(), [&v](size_t i1, size_t i2) { return candsOrdering(v[i1], v[i2]); });
73  return idx;
74  }

References candsOrdering(), mps_fire::i, testProducerWithPsetDescEmpty_cfi::i1, testProducerWithPsetDescEmpty_cfi::i2, training_settings::idx, and findQualityFiles::v.

Member Data Documentation

◆ Cands_

const edm::EDGetTokenT<reco::PFCandidateCollection> pat::PATPackedCandidateProducer::Cands_
private

Definition at line 82 of file PATPackedCandidateProducer.cc.

◆ ChargedHadronIsolation_

const edm::EDGetTokenT<edm::ValueMap<bool> > pat::PATPackedCandidateProducer::ChargedHadronIsolation_
private

Definition at line 92 of file PATPackedCandidateProducer.cc.

◆ covariancePackingSchemas_

const std::vector<int> pat::PATPackedCandidateProducer::covariancePackingSchemas_
private

Definition at line 97 of file PATPackedCandidateProducer.cc.

◆ covarianceVersion_

const int pat::PATPackedCandidateProducer::covarianceVersion_
private

Definition at line 96 of file PATPackedCandidateProducer.cc.

◆ minPtForChargedHadronProperties_

const double pat::PATPackedCandidateProducer::minPtForChargedHadronProperties_
private

Definition at line 94 of file PATPackedCandidateProducer.cc.

◆ minPtForTrackProperties_

const double pat::PATPackedCandidateProducer::minPtForTrackProperties_
private

Definition at line 95 of file PATPackedCandidateProducer.cc.

◆ pfCandidateTypesForHcalDepth_

const std::vector<int> pat::PATPackedCandidateProducer::pfCandidateTypesForHcalDepth_
private

Definition at line 99 of file PATPackedCandidateProducer.cc.

Referenced by PATPackedCandidateProducer().

◆ PuppiWeight_

const edm::EDGetTokenT<edm::ValueMap<float> > pat::PATPackedCandidateProducer::PuppiWeight_
private

Definition at line 88 of file PATPackedCandidateProducer.cc.

◆ PuppiWeightNoLep_

const edm::EDGetTokenT<edm::ValueMap<float> > pat::PATPackedCandidateProducer::PuppiWeightNoLep_
private

Definition at line 89 of file PATPackedCandidateProducer.cc.

◆ PVAsso_

const edm::EDGetTokenT<edm::Association<reco::VertexCollection> > pat::PATPackedCandidateProducer::PVAsso_
private

Definition at line 84 of file PATPackedCandidateProducer.cc.

◆ PVAssoQuality_

const edm::EDGetTokenT<edm::ValueMap<int> > pat::PATPackedCandidateProducer::PVAssoQuality_
private

Definition at line 85 of file PATPackedCandidateProducer.cc.

◆ PVOrigs_

const edm::EDGetTokenT<reco::VertexCollection> pat::PATPackedCandidateProducer::PVOrigs_
private

Definition at line 86 of file PATPackedCandidateProducer.cc.

◆ PVs_

const edm::EDGetTokenT<reco::VertexCollection> pat::PATPackedCandidateProducer::PVs_
private

Definition at line 83 of file PATPackedCandidateProducer.cc.

◆ storeChargedHadronIsolation_

const bool pat::PATPackedCandidateProducer::storeChargedHadronIsolation_
private

Definition at line 91 of file PATPackedCandidateProducer.cc.

◆ storeHcalDepthEndcapOnly_

const bool pat::PATPackedCandidateProducer::storeHcalDepthEndcapOnly_
private

Definition at line 100 of file PATPackedCandidateProducer.cc.

◆ storeTiming_

const bool pat::PATPackedCandidateProducer::storeTiming_
private

Definition at line 102 of file PATPackedCandidateProducer.cc.

◆ SVWhiteLists_

std::vector<edm::EDGetTokenT<edm::View<reco::Candidate> > > pat::PATPackedCandidateProducer::SVWhiteLists_
private

Definition at line 90 of file PATPackedCandidateProducer.cc.

Referenced by PATPackedCandidateProducer().

◆ t0ErrMap_

const edm::EDGetTokenT<edm::ValueMap<float> > pat::PATPackedCandidateProducer::t0ErrMap_
private

Definition at line 105 of file PATPackedCandidateProducer.cc.

◆ t0Map_

const edm::EDGetTokenT<edm::ValueMap<float> > pat::PATPackedCandidateProducer::t0Map_
private

Definition at line 104 of file PATPackedCandidateProducer.cc.

◆ timeFromValueMap_

const bool pat::PATPackedCandidateProducer::timeFromValueMap_
private

Definition at line 103 of file PATPackedCandidateProducer.cc.

◆ TKOrigs_

const edm::EDGetTokenT<reco::TrackCollection> pat::PATPackedCandidateProducer::TKOrigs_
private

Definition at line 87 of file PATPackedCandidateProducer.cc.

◆ usePuppi_

const bool pat::PATPackedCandidateProducer::usePuppi_
private

Definition at line 80 of file PATPackedCandidateProducer.cc.

packedPFCandidates_cfi.chargedHadronIsolation
chargedHadronIsolation
Definition: packedPFCandidates_cfi.py:11
edm::RefProd< VertexCollection >
pat::PATPackedCandidateProducer::timeFromValueMap_
const bool timeFromValueMap_
Definition: PATPackedCandidateProducer.cc:103
reco::HitPattern::getHitPattern
uint16_t getHitPattern(HitCategory category, int position) const
Definition: HitPattern.h:530
reco::RecoChargedCandidate::track
reco::TrackRef track() const override
reference to a track
Definition: RecoChargedCandidate.cc:9
testProducerWithPsetDescEmpty_cfi.i2
i2
Definition: testProducerWithPsetDescEmpty_cfi.py:46
pat::PATPackedCandidateProducer::TKOrigs_
const edm::EDGetTokenT< reco::TrackCollection > TKOrigs_
Definition: PATPackedCandidateProducer.cc:87
electrons_cff.bool
bool
Definition: electrons_cff.py:372
mps_fire.i
i
Definition: mps_fire.py:355
edm::Association::Filler
Definition: Association.h:78
dqmMemoryStats.float
float
Definition: dqmMemoryStats.py:127
edm::Handle::product
T const * product() const
Definition: Handle.h:70
reco::PFCandidate::e
Definition: PFCandidate.h:46
reco::TrackBase::referencePoint
const Point & referencePoint() const
Reference point on the track.
Definition: TrackBase.h:638
pat::PATPackedCandidateProducer::storeTiming_
const bool storeTiming_
Definition: PATPackedCandidateProducer.cc:102
pat::PackedCandidate::oneLostInnerHit
Definition: PackedCandidate.h:802
edm
HLT enums.
Definition: AlignableModifier.h:19
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
pat::PATPackedCandidateProducer::sort_indexes
static std::vector< size_t > sort_indexes(const std::vector< T > &v)
Definition: PATPackedCandidateProducer.cc:68
testProducerWithPsetDescEmpty_cfi.i1
i1
Definition: testProducerWithPsetDescEmpty_cfi.py:45
pat::PackedCandidate::moreLostInnerHits
Definition: PackedCandidate.h:803
pat::PATPackedCandidateProducer::SVWhiteLists_
std::vector< edm::EDGetTokenT< edm::View< reco::Candidate > > > SVWhiteLists_
Definition: PATPackedCandidateProducer.cc:90
findQualityFiles.v
v
Definition: findQualityFiles.py:179
pat::PATPackedCandidateProducer::usePuppi_
const bool usePuppi_
Definition: PATPackedCandidateProducer.cc:80
spr::find
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
reco::HitPattern::numberOfLostHits
int numberOfLostHits(HitCategory category) const
Definition: HitPattern.h:860
edm::Handle
Definition: AssociativeIterator.h:50
training_settings.idx
idx
Definition: training_settings.py:16
pat::PATPackedCandidateProducer::t0Map_
const edm::EDGetTokenT< edm::ValueMap< float > > t0Map_
Definition: PATPackedCandidateProducer.cc:104
nanoDQM_cfi.PV
PV
Definition: nanoDQM_cfi.py:440
edm::Ref< VertexCollection >
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
pat::PATPackedCandidateProducer::pfCandidateTypesForHcalDepth_
const std::vector< int > pfCandidateTypesForHcalDepth_
Definition: PATPackedCandidateProducer.cc:99
pat::PackedCandidate::validHitInFirstPixelBarrelLayer
Definition: PackedCandidate.h:799
reco::TrackBase::pt
double pt() const
track transverse momentum
Definition: TrackBase.h:608
pat::PATPackedCandidateProducer::minPtForTrackProperties_
const double minPtForTrackProperties_
Definition: PATPackedCandidateProducer.cc:95
GeomDetEnumerators::PixelBarrel
Definition: GeomDetEnumerators.h:11
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
pat::PATPackedCandidateProducer::PVAsso_
const edm::EDGetTokenT< edm::Association< reco::VertexCollection > > PVAsso_
Definition: PATPackedCandidateProducer.cc:84
FrontierCondition_GT_autoExpress_cfi.t0
t0
Definition: FrontierCondition_GT_autoExpress_cfi.py:148
pat::PATPackedCandidateProducer::candsOrdering
static bool candsOrdering(pat::PackedCandidate const &i, pat::PackedCandidate const &j)
Definition: PATPackedCandidateProducer.cc:47
reco::Track
Definition: Track.h:27
pat::PackedCandidate::PVAssociationQuality
PVAssociationQuality
Definition: PackedCandidate.h:721
reco::HitPattern::hasValidHitInPixelLayer
bool hasValidHitInPixelLayer(enum PixelSubdetector::SubDetector, uint16_t layer) const
Definition: HitPattern.cc:337
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:602
pat::PATPackedCandidateProducer::PVs_
const edm::EDGetTokenT< reco::VertexCollection > PVs_
Definition: PATPackedCandidateProducer.cc:83
reco::TrackBase::phi
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:620
badGlobalMuonTaggersAOD_cff.vtx
vtx
Definition: badGlobalMuonTaggersAOD_cff.py:5
pat::PackedCandidate::noLostInnerHits
Definition: PackedCandidate.h:800
edm::View::size
size_type size() const
pat::PATPackedCandidateProducer::storeHcalDepthEndcapOnly_
const bool storeHcalDepthEndcapOnly_
Definition: PATPackedCandidateProducer.cc:100
edm::View
Definition: CaloClusterFwd.h:14
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
math::XYZPoint
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
pat::PackedCandidate::LostInnerHits
LostInnerHits
Enumerator specifying the.
Definition: PackedCandidate.h:798
pat::PackedCandidate
Definition: PackedCandidate.h:22
edm::Ref::isNonnull
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:238
pat::PATPackedCandidateProducer::storeChargedHadronIsolation_
const bool storeChargedHadronIsolation_
Definition: PATPackedCandidateProducer.cc:91
reco::TrackBase::eta
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:623
reco::VertexRef
edm::Ref< VertexCollection > VertexRef
persistent reference to a Vertex
Definition: VertexFwd.h:13
cand
Definition: decayParser.h:34
eventshapeDQM_cfi.order
order
Definition: eventshapeDQM_cfi.py:8
createfilelist.int
int
Definition: createfilelist.py:10
iEvent
int iEvent
Definition: GenABIO.cc:224
pat::PATPackedCandidateProducer::covariancePackingSchemas_
const std::vector< int > covariancePackingSchemas_
Definition: PATPackedCandidateProducer.cc:97
reco::PFCandidate::gamma
Definition: PFCandidate.h:48
edm::InputTag::encode
std::string encode() const
Definition: InputTag.cc:159
PVValHelper::dy
Definition: PVValidationHelpers.h:49
reco::RecoChargedCandidate
Definition: RecoChargedCandidate.h:15
edm::Association
Definition: Association.h:18
pat::PATPackedCandidateProducer::Cands_
const edm::EDGetTokenT< reco::PFCandidateCollection > Cands_
Definition: PATPackedCandidateProducer.cc:82
HltBtagPostValidation_cff.c
c
Definition: HltBtagPostValidation_cff.py:31
pat::PATPackedCandidateProducer::covarianceVersion_
const int covarianceVersion_
Definition: PATPackedCandidateProducer.cc:96
reco::HitPattern::TRACK_HITS
Definition: HitPattern.h:155
edm::Ptr< reco::Candidate >
pat::PATPackedCandidateProducer::ChargedHadronIsolation_
const edm::EDGetTokenT< edm::ValueMap< bool > > ChargedHadronIsolation_
Definition: PATPackedCandidateProducer.cc:92
DDAxes::phi
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
reco::TrackBase::hitPattern
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:489
edm::ProductRegistryHelper::produces
BranchAliasSetterT< ProductType > produces()
declare what type of product will make and with which optional label
Definition: ProductRegistryHelper.h:108
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76
edm::OrphanHandle
Definition: EDProductfwd.h:39
pat::PATPackedCandidateProducer::PuppiWeightNoLep_
const edm::EDGetTokenT< edm::ValueMap< float > > PuppiWeightNoLep_
Definition: PATPackedCandidateProducer.cc:89
qcdUeDQM_cfi.quality
quality
Definition: qcdUeDQM_cfi.py:31
PVValHelper::dz
Definition: PVValidationHelpers.h:50
electrons_cff.lostHits
lostHits
Definition: electrons_cff.py:407
alcaDQMUpload.encode
def encode(args, files)
Definition: alcaDQMUpload.py:32
pat::PATPackedCandidateProducer::PuppiWeight_
const edm::EDGetTokenT< edm::ValueMap< float > > PuppiWeight_
Definition: PATPackedCandidateProducer.cc:88
edm::ValueMap< int >
relativeConstraints.empty
bool empty
Definition: relativeConstraints.py:46
reco::HitPattern::MISSING_INNER_HITS
Definition: HitPattern.h:155
pat::PATPackedCandidateProducer::PVOrigs_
const edm::EDGetTokenT< reco::VertexCollection > PVOrigs_
Definition: PATPackedCandidateProducer.cc:86
pat::PATPackedCandidateProducer::PVAssoQuality_
const edm::EDGetTokenT< edm::ValueMap< int > > PVAssoQuality_
Definition: PATPackedCandidateProducer.cc:85
HLT_2018_cff.cands
cands
Definition: HLT_2018_cff.py:13762
reco::HitPattern::numberOfValidPixelHits
int numberOfValidPixelHits() const
Definition: HitPattern.h:800
reco::PFCandidate
Particle reconstructed by the particle flow algorithm.
Definition: PFCandidate.h:40
edm::Ref::key
key_type key() const
Accessor for product key.
Definition: Ref.h:250
reco::CandidatePtr
edm::Ptr< Candidate > CandidatePtr
persistent reference to an object in a collection of Candidate objects
Definition: CandidateFwd.h:25
edm::helper::Filler
Definition: ValueMap.h:22
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
edm::View::end
const_iterator end() const
edm::EDConsumerBase::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: EDConsumerBase.h:126
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
pat::PATPackedCandidateProducer::minPtForChargedHadronProperties_
const double minPtForChargedHadronProperties_
Definition: PATPackedCandidateProducer.cc:94
pat::PackedCandidate::UsedInFitTight
Definition: PackedCandidate.h:727
taus_updatedMVAIds_cff.mapping
mapping
Definition: taus_updatedMVAIds_cff.py:28
edm::HandleBase::id
ProductID id() const
Definition: HandleBase.cc:13
pat::PATPackedCandidateProducer::t0ErrMap_
const edm::EDGetTokenT< edm::ValueMap< float > > t0ErrMap_
Definition: PATPackedCandidateProducer.cc:105
cuy.ii
ii
Definition: cuy.py:590
edm::InputTag
Definition: InputTag.h:15
begin
#define begin
Definition: vmac.h:32
PVValHelper::dx
Definition: PVValidationHelpers.h:48
pat::qualityMap
const static int qualityMap[8]
conversion map from quality flags used in PV association and miniAOD one
Definition: PATPackedCandidateProducer.cc:37
reco::TrackBase::highPurity
Definition: TrackBase.h:154
pat::HcalDepthEnergyFractions
Definition: HcalDepthEnergyFractions.h:12