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
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

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<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache 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"))) {}

◆ ~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.

39  {
40  //Get candidate collections
42  iEvent.getByToken(lostCandsToken_, lostCands_);
43 }

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

◆ fillDescriptions()

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

Definition at line 92 of file PFTauMiniAODPrimaryVertexProducer.cc.

92  {
94  desc.add<edm::InputTag>("lostCandidatesTag", edm::InputTag("lostTracks"));
95  desc.add<edm::InputTag>("packedCandidatesTag", edm::InputTag("packedPFCandidates"));
96 
97  descriptions.add("pfTauMiniAODPrimaryVertexProducer", desc);
98 }

References edm::ConfigurationDescriptions::add(), PFTauPrimaryVertexProducerBase::getDescriptionsBase(), and HLT_2018_cff::InputTag.

◆ 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.

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 }

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

◆ 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.

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

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

Referenced by nonTauTracksInPV().

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().

muonTagProbeFilters_cff.matched
matched
Definition: muonTagProbeFilters_cff.py:62
pat::PackedCandidate::UsedInFitLoose
Definition: PackedCandidate.h:726
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
SiPixelRawToDigiRegional_cfi.deltaPhi
deltaPhi
Definition: SiPixelRawToDigiRegional_cfi.py:9
PFTauPrimaryVertexProducerBase::PFTauPrimaryVertexProducerBase
PFTauPrimaryVertexProducerBase(const edm::ParameterSet &iConfig)
Definition: PFTauPrimaryVertexProducerBase.cc:20
reco::Track
Definition: Track.h:27
PFTauMiniAODPrimaryVertexProducer::packedCands_
edm::Handle< pat::PackedCandidateCollection > packedCands_
Definition: PFTauMiniAODPrimaryVertexProducer.cc:27
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
cand
Definition: decayParser.h:34
iEvent
int iEvent
Definition: GenABIO.cc:224
PFTauMiniAODPrimaryVertexProducer::nonTauTracksInPVFromPackedCands
void nonTauTracksInPVFromPackedCands(const size_t &, const pat::PackedCandidateCollection &, const std::vector< edm::Ptr< reco::TrackBase > > &, std::vector< const reco::Track * > &)
Definition: PFTauMiniAODPrimaryVertexProducer.cc:59
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
qcdUeDQM_cfi.quality
quality
Definition: qcdUeDQM_cfi.py:31
PFTauPrimaryVertexProducerBase::getDescriptionsBase
static edm::ParameterSetDescription getDescriptionsBase()
Definition: PFTauPrimaryVertexProducerBase.cc:220
HLT_2018_cff.cands
cands
Definition: HLT_2018_cff.py:13762
PFTauMiniAODPrimaryVertexProducer::packedCandsToken_
edm::EDGetTokenT< pat::PackedCandidateCollection > packedCandsToken_
Definition: PFTauMiniAODPrimaryVertexProducer.cc:26
edm::Ref::key
key_type key() const
Accessor for product key.
Definition: Ref.h:250
HLT_2018_cff.track
track
Definition: HLT_2018_cff.py:10352
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
PFTauMiniAODPrimaryVertexProducer::lostCands_
edm::Handle< pat::PackedCandidateCollection > lostCands_
Definition: PFTauMiniAODPrimaryVertexProducer.cc:27
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
pat::PackedCandidate::UsedInFitTight
Definition: PackedCandidate.h:727
PFTauMiniAODPrimaryVertexProducer::lostCandsToken_
edm::EDGetTokenT< pat::PackedCandidateCollection > lostCandsToken_
Definition: PFTauMiniAODPrimaryVertexProducer.cc:26
edm::InputTag
Definition: InputTag.h:15