CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
PFTauMiniAODPrimaryVertexProducer Class Referencefinal

MiniAOD implementation of the PFTauPrimaryVertexProducer plugin. More...

Inheritance diagram for PFTauMiniAODPrimaryVertexProducer:
PFTauPrimaryVertexProducerBase edm::stream::EDProducer<>

Public Member Functions

void beginEvent (const edm::Event &, const edm::EventSetup &) override
 
 PFTauMiniAODPrimaryVertexProducer (const edm::ParameterSet &iConfig)
 
 ~PFTauMiniAODPrimaryVertexProducer () override
 
- Public Member Functions inherited from PFTauPrimaryVertexProducerBase
 PFTauPrimaryVertexProducerBase (const edm::ParameterSet &iConfig)
 
void produce (edm::Event &, const edm::EventSetup &) override
 
 ~PFTauPrimaryVertexProducerBase () 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 &descriptions)
 
- Static Public Member Functions inherited from PFTauPrimaryVertexProducerBase
static edm::ParameterSetDescription getDescriptionsBase ()
 

Protected Member Functions

void nonTauTracksInPV (const reco::VertexRef &, const std::vector< edm::Ptr< reco::TrackBase > > &, std::vector< const reco::Track *> &) override
 

Private Member Functions

void nonTauTracksInPVFromPackedCands (const size_t &, const pat::PackedCandidateCollection &, const std::vector< edm::Ptr< reco::TrackBase > > &, std::vector< const reco::Track *> &)
 

Private Attributes

edm::Handle< pat::PackedCandidateCollectionlostCands_
 
edm::EDGetTokenT< pat::PackedCandidateCollectionlostCandsToken_
 
edm::Handle< pat::PackedCandidateCollectionpackedCands_
 
edm::EDGetTokenT< pat::PackedCandidateCollectionpackedCandsToken_
 

Additional Inherited Members

- Public Types inherited from PFTauPrimaryVertexProducerBase
enum  Alg { useInputPV = 0, useFrontPV }
 
typedef std::vector< DiscCutPair * > DiscCutPairVec
 
- 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

MiniAOD implementation of the PFTauPrimaryVertexProducer plugin.

Definition at line 7 of file PFTauMiniAODPrimaryVertexProducer.cc.

Constructor & Destructor Documentation

◆ PFTauMiniAODPrimaryVertexProducer()

PFTauMiniAODPrimaryVertexProducer::PFTauMiniAODPrimaryVertexProducer ( const edm::ParameterSet iConfig)
explicit

Definition at line 30 of file PFTauMiniAODPrimaryVertexProducer.cc.

33  consumes<pat::PackedCandidateCollection>(iConfig.getParameter<edm::InputTag>("packedCandidatesTag"))),
35  consumes<pat::PackedCandidateCollection>(iConfig.getParameter<edm::InputTag>("lostCandidatesTag"))) {}
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::EDGetTokenT< pat::PackedCandidateCollection > lostCandsToken_
edm::EDGetTokenT< pat::PackedCandidateCollection > packedCandsToken_
PFTauPrimaryVertexProducerBase(const edm::ParameterSet &iConfig)

◆ ~PFTauMiniAODPrimaryVertexProducer()

PFTauMiniAODPrimaryVertexProducer::~PFTauMiniAODPrimaryVertexProducer ( )
override

Definition at line 37 of file PFTauMiniAODPrimaryVertexProducer.cc.

37 {}

Member Function Documentation

◆ beginEvent()

void PFTauMiniAODPrimaryVertexProducer::beginEvent ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overridevirtual

Reimplemented from PFTauPrimaryVertexProducerBase.

Definition at line 39 of file PFTauMiniAODPrimaryVertexProducer.cc.

References iEvent, lostCands_, lostCandsToken_, packedCands_, and packedCandsToken_.

39  {
40  //Get candidate collections
42  iEvent.getByToken(lostCandsToken_, lostCands_);
43 }
edm::EDGetTokenT< pat::PackedCandidateCollection > lostCandsToken_
edm::EDGetTokenT< pat::PackedCandidateCollection > packedCandsToken_
int iEvent
Definition: GenABIO.cc:224
edm::Handle< pat::PackedCandidateCollection > packedCands_
edm::Handle< pat::PackedCandidateCollection > lostCands_

◆ fillDescriptions()

void PFTauMiniAODPrimaryVertexProducer::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 95 of file PFTauMiniAODPrimaryVertexProducer.cc.

References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, PFTauPrimaryVertexProducerBase::getDescriptionsBase(), and ProducerED_cfi::InputTag.

95  {
97  desc.add<edm::InputTag>("lostCandidatesTag", edm::InputTag("lostTracks"));
98  desc.add<edm::InputTag>("packedCandidatesTag", edm::InputTag("packedPFCandidates"));
99 
100  descriptions.add("pfTauMiniAODPrimaryVertexProducer", desc);
101 }
void add(std::string const &label, ParameterSetDescription const &psetDescription)
static edm::ParameterSetDescription getDescriptionsBase()

◆ nonTauTracksInPV()

void PFTauMiniAODPrimaryVertexProducer::nonTauTracksInPV ( const reco::VertexRef thePVRef,
const std::vector< edm::Ptr< reco::TrackBase > > &  tauTracks,
std::vector< const reco::Track *> &  nonTauTracks 
)
overrideprotectedvirtual

Implements PFTauPrimaryVertexProducerBase.

Definition at line 45 of file PFTauMiniAODPrimaryVertexProducer.cc.

References edm::HandleBase::isValid(), edm::Ref< C, T, F >::key(), lostCands_, nonTauTracksInPVFromPackedCands(), and packedCands_.

47  {
48  //Find non-tau tracks associated to thePV
49  //PackedCandidates first...
50  if (packedCands_.isValid()) {
51  nonTauTracksInPVFromPackedCands(thePVRef.key(), *packedCands_, tauTracks, nonTauTracks);
52  }
53  //then lostCandidates
54  if (lostCands_.isValid()) {
55  nonTauTracksInPVFromPackedCands(thePVRef.key(), *lostCands_, tauTracks, nonTauTracks);
56  }
57 }
void nonTauTracksInPVFromPackedCands(const size_t &, const pat::PackedCandidateCollection &, const std::vector< edm::Ptr< reco::TrackBase > > &, std::vector< const reco::Track *> &)
key_type key() const
Accessor for product key.
Definition: Ref.h:250
edm::Handle< pat::PackedCandidateCollection > packedCands_
bool isValid() const
Definition: HandleBase.h:70
edm::Handle< pat::PackedCandidateCollection > lostCands_

◆ nonTauTracksInPVFromPackedCands()

void PFTauMiniAODPrimaryVertexProducer::nonTauTracksInPVFromPackedCands ( const size_t &  thePVkey,
const pat::PackedCandidateCollection cands,
const std::vector< edm::Ptr< reco::TrackBase > > &  tauTracks,
std::vector< const reco::Track *> &  nonTauTracks 
)
private

Definition at line 59 of file PFTauMiniAODPrimaryVertexProducer.cc.

References funct::abs(), HLT_2023v12_cff::cands, SiPixelRawToDigiRegional_cfi::deltaPhi, muonTagProbeFilters_cff::matched, quality, HLT_2023v12_cff::track, pat::PackedCandidate::UsedInFitLoose, and pat::PackedCandidate::UsedInFitTight.

Referenced by nonTauTracksInPV().

63  {
64  //Find candidates/tracks associated to thePV
65  for (const auto &cand : cands) {
66  //MB: Skip candidates with ill-defined momentum as they return ill-defined tracks (why it happens?)
67  if (!std::isfinite(cand.pt())) //MB: it is enough to check just pt (?)
68  continue;
69  if (cand.vertexRef().isNull())
70  continue;
71  int quality = cand.pvAssociationQuality();
72  if (cand.vertexRef().key() != thePVkey ||
74  continue;
75  const reco::Track *track = cand.bestTrack();
76  if (track == nullptr)
77  continue;
78  //Remove signal (tau) tracks
79  //MB: Only deltaR deltaPt overlap removal possible (?)
80  //MB: It should be fine as pat objects stores same track info with same presision
81  bool matched = false;
82  for (const auto &tauTrack : tauTracks) {
83  if (std::abs(tauTrack->eta() - track->eta()) < 0.005 &&
84  std::abs(deltaPhi(tauTrack->phi(), track->phi())) < 0.005 &&
85  std::abs(tauTrack->pt() / track->pt() - 1.) < 0.005) {
86  matched = true;
87  break;
88  }
89  }
90  if (!matched)
91  nonTauTracks.push_back(track);
92  }
93 }
string quality
Abs< T >::type abs(const T &t)
Definition: Abs.h:22

Member Data Documentation

◆ lostCands_

edm::Handle<pat::PackedCandidateCollection> PFTauMiniAODPrimaryVertexProducer::lostCands_
private

Definition at line 27 of file PFTauMiniAODPrimaryVertexProducer.cc.

Referenced by beginEvent(), and nonTauTracksInPV().

◆ lostCandsToken_

edm::EDGetTokenT<pat::PackedCandidateCollection> PFTauMiniAODPrimaryVertexProducer::lostCandsToken_
private

Definition at line 26 of file PFTauMiniAODPrimaryVertexProducer.cc.

Referenced by beginEvent().

◆ packedCands_

edm::Handle<pat::PackedCandidateCollection> PFTauMiniAODPrimaryVertexProducer::packedCands_
private

Definition at line 27 of file PFTauMiniAODPrimaryVertexProducer.cc.

Referenced by beginEvent(), and nonTauTracksInPV().

◆ packedCandsToken_

edm::EDGetTokenT<pat::PackedCandidateCollection> PFTauMiniAODPrimaryVertexProducer::packedCandsToken_
private

Definition at line 26 of file PFTauMiniAODPrimaryVertexProducer.cc.

Referenced by beginEvent().