CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Types | Private Attributes | Static Private Attributes
pat::PackedCandidateTrackChi2Producer Class Reference
Inheritance diagram for pat::PackedCandidateTrackChi2Producer:
edm::stream::EDProducer<>

Public Member Functions

 PackedCandidateTrackChi2Producer (const edm::ParameterSet &iConfig)
 
void produce (edm::Event &, const edm::EventSetup &) override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &)
 

Private Types

typedef edm::ValueMap< float > FloatMap
 

Private Attributes

edm::EDGetTokenT< edm::Association< reco::PFCandidateCollection > > candidate2PFToken_
 
const edm::EDGetTokenT< pat::PackedCandidateCollectioncandidateToken_
 
const bool doLostTracks_
 
edm::EDGetTokenT< edm::Association< pat::PackedCandidateCollection > > track2LostTrackToken_
 
const edm::EDGetTokenT< reco::TrackCollectiontrackToken_
 

Static Private Attributes

static const uint8_t roundingPrecision = 8
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 

Detailed Description

Definition at line 14 of file PackedCandidateTrackChi2Producer.cc.

Member Typedef Documentation

◆ FloatMap

Definition at line 15 of file PackedCandidateTrackChi2Producer.cc.

Constructor & Destructor Documentation

◆ PackedCandidateTrackChi2Producer()

pat::PackedCandidateTrackChi2Producer::PackedCandidateTrackChi2Producer ( const edm::ParameterSet iConfig)
inlineexplicit

Definition at line 18 of file PackedCandidateTrackChi2Producer.cc.

19  : candidateToken_(consumes<pat::PackedCandidateCollection>(iConfig.getParameter<edm::InputTag>("candidates"))),
20  trackToken_(consumes<reco::TrackCollection>(iConfig.getParameter<edm::InputTag>("trackCollection"))),
21  doLostTracks_(iConfig.getParameter<bool>("doLostTracks")) {
22  if (doLostTracks_) {
23  track2LostTrackToken_ = consumes<edm::Association<pat::PackedCandidateCollection>>(
24  iConfig.getParameter<edm::InputTag>("candidates"));
25  } else {
27  consumes<edm::Association<reco::PFCandidateCollection>>(iConfig.getParameter<edm::InputTag>("candidates"));
28  }
29 
30  produces<FloatMap>();
31  }

References candidate2PFToken_, doLostTracks_, edm::ParameterSet::getParameter(), and track2LostTrackToken_.

Member Function Documentation

◆ fillDescriptions()

void pat::PackedCandidateTrackChi2Producer::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 102 of file PackedCandidateTrackChi2Producer.cc.

102  {
104  desc.add<edm::InputTag>("candidates", edm::InputTag("packedPFCandidates"))
105  ->setComment("packed candidate input collection");
106  desc.add<edm::InputTag>("trackCollection", edm::InputTag("generalTracks"))->setComment("track input collection");
107  desc.add<bool>("doLostTracks", false);
108  descriptions.add("packedPFCandidateTrackChi2", desc);
109 }

References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, and HLT_FULL_cff::InputTag.

◆ produce()

void pat::PackedCandidateTrackChi2Producer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 48 of file PackedCandidateTrackChi2Producer.cc.

48  {
49  auto const candidates = iEvent.getHandle(candidateToken_);
50 
51  const edm::Association<reco::PFCandidateCollection>* candidate2PF = nullptr;
52  if (!doLostTracks_) {
53  candidate2PF = &iEvent.get(candidate2PFToken_);
54  }
55 
56  const edm::Association<pat::PackedCandidateCollection>* tracks2LT = nullptr;
58  if (doLostTracks_) {
59  tracks2LT = &iEvent.get(track2LostTrackToken_);
60  iEvent.getByToken(trackToken_, trks);
61  }
62 
63  const auto nCand = candidates->size();
64  std::vector<float> trkChi2Map(nCand, 0);
65 
66  if (doLostTracks_) { //for Lost tracks we don't have references to PFCands, so we must loop over tracks and check keys...
67  for (size_t i = 0; i < trks->size(); i++) {
68  const auto& trk = reco::TrackRef(trks, i);
69  const auto& lostTrack = (*tracks2LT)[trk];
70  if (lostTrack.isNonnull()) {
71  const float nChi2 = trk->normalizedChi2();
72  trkChi2Map.at(lostTrack.key()) = MiniFloatConverter::reduceMantissaToNbitsRounding<roundingPrecision>(nChi2);
73  }
74  }
75  } else { //for the regular PackedPFCands we have direct references...
76  for (size_t i = 0; i < nCand; i++) {
77  const auto& cand = pat::PackedCandidateRef(candidates, i);
78 
79  // ignore neutral candidates or without track
80  if (cand->charge() == 0 || !cand->hasTrackDetails())
81  continue;
82 
83  const auto& candTrack = (*candidate2PF)[cand]->trackRef();
84 
85  if (candTrack.isNonnull()) {
86  const float nChi2 = candTrack->normalizedChi2();
87 
88  trkChi2Map.at(i) = MiniFloatConverter::reduceMantissaToNbitsRounding<roundingPrecision>(nChi2);
89  }
90  }
91  }
92 
93  // fill the value maps
94  std::unique_ptr<FloatMap> valueMap = std::make_unique<FloatMap>();
95  FloatMap::Filler filler(*valueMap);
96  filler.insert(candidates, trkChi2Map.begin(), trkChi2Map.end());
97  filler.fill();
98  iEvent.put(std::move(valueMap), "");
99 }

References candidate2PFToken_, HLT_FULL_cff::candidates, candidateToken_, doLostTracks_, trigObjTnPSource_cfi::filler, mps_fire::i, iEvent, eostools::move(), track2LostTrackToken_, trackToken_, and hltEgammaHLTExtra_cfi::trks.

Member Data Documentation

◆ candidate2PFToken_

edm::EDGetTokenT<edm::Association<reco::PFCandidateCollection> > pat::PackedCandidateTrackChi2Producer::candidate2PFToken_
private

◆ candidateToken_

const edm::EDGetTokenT<pat::PackedCandidateCollection> pat::PackedCandidateTrackChi2Producer::candidateToken_
private

Definition at line 38 of file PackedCandidateTrackChi2Producer.cc.

Referenced by produce().

◆ doLostTracks_

const bool pat::PackedCandidateTrackChi2Producer::doLostTracks_
private

◆ roundingPrecision

const uint8_t pat::PackedCandidateTrackChi2Producer::roundingPrecision = 8
staticprivate

Definition at line 43 of file PackedCandidateTrackChi2Producer.cc.

◆ track2LostTrackToken_

edm::EDGetTokenT<edm::Association<pat::PackedCandidateCollection> > pat::PackedCandidateTrackChi2Producer::track2LostTrackToken_
private

◆ trackToken_

const edm::EDGetTokenT<reco::TrackCollection> pat::PackedCandidateTrackChi2Producer::trackToken_
private

Definition at line 41 of file PackedCandidateTrackChi2Producer.cc.

Referenced by produce().

mps_fire.i
i
Definition: mps_fire.py:428
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89301
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
edm::Handle< reco::TrackCollection >
pat::PackedCandidateTrackChi2Producer::track2LostTrackToken_
edm::EDGetTokenT< edm::Association< pat::PackedCandidateCollection > > track2LostTrackToken_
Definition: PackedCandidateTrackChi2Producer.cc:40
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
pat::PackedCandidateTrackChi2Producer::candidateToken_
const edm::EDGetTokenT< pat::PackedCandidateCollection > candidateToken_
Definition: PackedCandidateTrackChi2Producer.cc:38
reco::TrackRef
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
Definition: TrackFwd.h:20
trigObjTnPSource_cfi.filler
filler
Definition: trigObjTnPSource_cfi.py:21
cand
Definition: decayParser.h:32
iEvent
int iEvent
Definition: GenABIO.cc:224
edm::ValueMap< float >::Filler
helper::Filler< ValueMap< float > > Filler
Definition: ValueMap.h:168
edm::Association
Definition: Association.h:18
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
eostools.move
def move(src, dest)
Definition: eostools.py:511
pat::PackedCandidateTrackChi2Producer::doLostTracks_
const bool doLostTracks_
Definition: PackedCandidateTrackChi2Producer.cc:42
HLT_FULL_cff.candidates
candidates
Definition: HLT_FULL_cff.py:55017
pat::PackedCandidateTrackChi2Producer::trackToken_
const edm::EDGetTokenT< reco::TrackCollection > trackToken_
Definition: PackedCandidateTrackChi2Producer.cc:41
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
pat::PackedCandidateTrackChi2Producer::candidate2PFToken_
edm::EDGetTokenT< edm::Association< reco::PFCandidateCollection > > candidate2PFToken_
Definition: PackedCandidateTrackChi2Producer.cc:39
hltEgammaHLTExtra_cfi.trks
trks
Definition: hltEgammaHLTExtra_cfi.py:43
edm::InputTag
Definition: InputTag.h:15
pat::PackedCandidateRef
edm::Ref< pat::PackedCandidateCollection > PackedCandidateRef
Definition: PackedCandidate.h:1132