CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Attributes
PFTauPrimaryVertexProducerBase Class Referenceabstract

#include <PFTauPrimaryVertexProducerBase.h>

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

Classes

struct  DiscCutPair
 

Public Types

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
 

Public Member Functions

virtual void beginEvent (const edm::Event &, const edm::EventSetup &)
 
 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 edm::ParameterSetDescription getDescriptionsBase ()
 

Protected Member Functions

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

Private Attributes

int algorithm_
 
edm::EDGetTokenT< reco::BeamSpotbeamSpotToken_
 
std::unique_ptr< StringCutObjectSelector< reco::PFTau > > cut_
 
DiscCutPairVec discriminators_
 
edm::EDGetTokenT< edm::View< reco::Electron > > electronToken_
 
edm::EDGetTokenT< edm::View< reco::Muon > > muonToken_
 
edm::EDGetTokenT< std::vector< reco::PFTau > > pftauToken_
 
edm::EDGetTokenT< reco::VertexCollectionpvToken_
 
edm::ParameterSet qualityCutsPSet_
 
bool removeElectronTracks_
 
bool removeMuonTracks_
 
bool useBeamSpot_
 
bool useSelectedTaus_
 
std::unique_ptr< reco::tau::RecoTauVertexAssociatorvertexAssociator_
 

Detailed Description

Definition at line 39 of file PFTauPrimaryVertexProducerBase.h.

Member Typedef Documentation

Definition at line 51 of file PFTauPrimaryVertexProducerBase.h.

Member Enumeration Documentation

Constructor & Destructor Documentation

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

Definition at line 20 of file PFTauPrimaryVertexProducerBase.cc.

References PFTauPrimaryVertexProducerBase::DiscCutPair::cut_, cut_, PFTauPrimaryVertexProducerBase::DiscCutPair::cutFormula_, PDWG_TauSkim_cff::discriminators, discriminators_, edm::ParameterSet::exists(), edm::ParameterSet::getParameter(), PFTauPrimaryVertexProducerBase::DiscCutPair::inputToken_, muonDTDigis_cfi::pset, qualityCutsPSet_, AlCaHLTBitMon_QueryRunRegistry::string, and vertexAssociator_.

21  : pftauToken_(consumes<std::vector<reco::PFTau>>(iConfig.getParameter<edm::InputTag>("PFTauTag"))),
22  electronToken_(consumes<edm::View<reco::Electron>>(iConfig.getParameter<edm::InputTag>("ElectronTag"))),
23  muonToken_(consumes<edm::View<reco::Muon>>(iConfig.getParameter<edm::InputTag>("MuonTag"))),
24  pvToken_(consumes<reco::VertexCollection>(iConfig.getParameter<edm::InputTag>("PVTag"))),
25  beamSpotToken_(consumes<reco::BeamSpot>(iConfig.getParameter<edm::InputTag>("beamSpot"))),
26  algorithm_(iConfig.getParameter<int>("Algorithm")),
27  qualityCutsPSet_(iConfig.getParameter<edm::ParameterSet>("qualityCuts")),
28  useBeamSpot_(iConfig.getParameter<bool>("useBeamSpot")),
29  useSelectedTaus_(iConfig.getParameter<bool>("useSelectedTaus")),
30  removeMuonTracks_(iConfig.getParameter<bool>("RemoveMuonTracks")),
31  removeElectronTracks_(iConfig.getParameter<bool>("RemoveElectronTracks")) {
33  std::vector<edm::ParameterSet> discriminators =
34  iConfig.getParameter<std::vector<edm::ParameterSet>>("discriminators");
35  // Build each of our cuts
36  for (auto const& pset : discriminators) {
37  DiscCutPair* newCut = new DiscCutPair();
38  newCut->inputToken_ = consumes<reco::PFTauDiscriminator>(pset.getParameter<edm::InputTag>("discriminator"));
39 
40  if (pset.existsAs<std::string>("selectionCut"))
41  newCut->cutFormula_ = new TFormula("selectionCut", pset.getParameter<std::string>("selectionCut").data());
42  else
43  newCut->cut_ = pset.getParameter<double>("selectionCut");
44  discriminators_.push_back(newCut);
45  }
46  // Build a string cut if desired
47  if (iConfig.exists("cut"))
50  produces<edm::AssociationVector<reco::PFTauRefProd, std::vector<reco::VertexRef>>>();
51  produces<reco::VertexCollection>("PFTauPrimaryVertices");
52 
54 }
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
T getParameter(std::string const &) const
edm::EDGetTokenT< edm::View< reco::Muon > > muonToken_
edm::EDGetTokenT< reco::VertexCollection > pvToken_
bool exists(std::string const &parameterName) const
checks if a parameter exists
edm::EDGetTokenT< std::vector< reco::PFTau > > pftauToken_
std::unique_ptr< reco::tau::RecoTauVertexAssociator > vertexAssociator_
std::unique_ptr< StringCutObjectSelector< reco::PFTau > > cut_
edm::EDGetTokenT< edm::View< reco::Electron > > electronToken_
PFTauPrimaryVertexProducerBase::~PFTauPrimaryVertexProducerBase ( )
override

Member Function Documentation

virtual void PFTauPrimaryVertexProducerBase::beginEvent ( const edm::Event ,
const edm::EventSetup  
)
inlinevirtual

Reimplemented in PFTauMiniAODPrimaryVertexProducer.

Definition at line 60 of file PFTauPrimaryVertexProducerBase.h.

References nonTauTracksInPV().

Referenced by produce().

60 {}
edm::ParameterSetDescription PFTauPrimaryVertexProducerBase::getDescriptionsBase ( )
static

Definition at line 220 of file PFTauPrimaryVertexProducerBase.cc.

References edm::ParameterSetDescription::add(), edm::ParameterSetDescription::addOptional(), edm::ParameterSetDescription::addVPSet(), HLT_2018_cff::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by PFTauPrimaryVertexProducer::fillDescriptions(), and PFTauMiniAODPrimaryVertexProducer::fillDescriptions().

220  {
221  // PFTauPrimaryVertexProducerBase
223 
224  {
226  vpsd1.add<edm::InputTag>("discriminator");
227  vpsd1.add<double>("selectionCut");
228  desc.addVPSet("discriminators", vpsd1);
229  }
230 
231  {
232  edm::ParameterSetDescription pset_signalQualityCuts;
233  pset_signalQualityCuts.add<double>("maxDeltaZ", 0.4);
234  pset_signalQualityCuts.add<double>("minTrackPt", 0.5);
235  pset_signalQualityCuts.add<double>("minTrackVertexWeight", -1.0);
236  pset_signalQualityCuts.add<double>("maxTrackChi2", 100.0);
237  pset_signalQualityCuts.add<unsigned int>("minTrackPixelHits", 0);
238  pset_signalQualityCuts.add<double>("minGammaEt", 1.0);
239  pset_signalQualityCuts.add<unsigned int>("minTrackHits", 3);
240  pset_signalQualityCuts.add<double>("minNeutralHadronEt", 30.0);
241  pset_signalQualityCuts.add<double>("maxTransverseImpactParameter", 0.1);
242  pset_signalQualityCuts.addOptional<bool>("useTracksInsteadOfPFHadrons");
243 
244  edm::ParameterSetDescription pset_vxAssocQualityCuts;
245  pset_vxAssocQualityCuts.add<double>("minTrackPt", 0.5);
246  pset_vxAssocQualityCuts.add<double>("minTrackVertexWeight", -1.0);
247  pset_vxAssocQualityCuts.add<double>("maxTrackChi2", 100.0);
248  pset_vxAssocQualityCuts.add<unsigned int>("minTrackPixelHits", 0);
249  pset_vxAssocQualityCuts.add<double>("minGammaEt", 1.0);
250  pset_vxAssocQualityCuts.add<unsigned int>("minTrackHits", 3);
251  pset_vxAssocQualityCuts.add<double>("maxTransverseImpactParameter", 0.1);
252  pset_vxAssocQualityCuts.addOptional<bool>("useTracksInsteadOfPFHadrons");
253 
254  edm::ParameterSetDescription pset_isolationQualityCuts;
255  pset_isolationQualityCuts.add<double>("maxDeltaZ", 0.2);
256  pset_isolationQualityCuts.add<double>("minTrackPt", 1.0);
257  pset_isolationQualityCuts.add<double>("minTrackVertexWeight", -1.0);
258  pset_isolationQualityCuts.add<double>("maxTrackChi2", 100.0);
259  pset_isolationQualityCuts.add<unsigned int>("minTrackPixelHits", 0);
260  pset_isolationQualityCuts.add<double>("minGammaEt", 1.5);
261  pset_isolationQualityCuts.add<unsigned int>("minTrackHits", 8);
262  pset_isolationQualityCuts.add<double>("maxTransverseImpactParameter", 0.03);
263  pset_isolationQualityCuts.addOptional<bool>("useTracksInsteadOfPFHadrons");
264 
265  edm::ParameterSetDescription pset_qualityCuts;
266  pset_qualityCuts.add<edm::ParameterSetDescription>("signalQualityCuts", pset_signalQualityCuts);
267  pset_qualityCuts.add<edm::ParameterSetDescription>("vxAssocQualityCuts", pset_vxAssocQualityCuts);
268  pset_qualityCuts.add<edm::ParameterSetDescription>("isolationQualityCuts", pset_isolationQualityCuts);
269  pset_qualityCuts.add<std::string>("leadingTrkOrPFCandOption", "leadPFCand");
270  pset_qualityCuts.add<std::string>("pvFindingAlgo", "closestInDeltaZ");
271  pset_qualityCuts.add<edm::InputTag>("primaryVertexSrc", edm::InputTag("offlinePrimaryVertices"));
272  pset_qualityCuts.add<bool>("vertexTrackFiltering", false);
273  pset_qualityCuts.add<bool>("recoverLeadingTrk", false);
274 
275  desc.add<edm::ParameterSetDescription>("qualityCuts", pset_qualityCuts);
276  }
277 
278  desc.add<std::string>("cut", "pt > 18.0 & abs(eta)<2.3");
279  desc.add<int>("Algorithm", 0);
280  desc.add<bool>("RemoveElectronTracks", false);
281  desc.add<bool>("RemoveMuonTracks", false);
282  desc.add<bool>("useBeamSpot", true);
283  desc.add<bool>("useSelectedTaus", false);
284  desc.add<edm::InputTag>("beamSpot", edm::InputTag("offlineBeamSpot"));
285  desc.add<edm::InputTag>("ElectronTag", edm::InputTag("MyElectrons"));
286  desc.add<edm::InputTag>("PFTauTag", edm::InputTag("hpsPFTauProducer"));
287  desc.add<edm::InputTag>("MuonTag", edm::InputTag("MyMuons"));
288  desc.add<edm::InputTag>("PVTag", edm::InputTag("offlinePrimaryVertices"));
289 
290  return desc;
291 }
ParameterDescriptionBase * addVPSet(U const &iLabel, ParameterSetDescription const &validator, std::vector< ParameterSet > const &defaults)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
virtual void PFTauPrimaryVertexProducerBase::nonTauTracksInPV ( const reco::VertexRef ,
const std::vector< edm::Ptr< reco::TrackBase > > &  ,
std::vector< const reco::Track * > &   
)
protectedpure virtual
void PFTauPrimaryVertexProducerBase::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 78 of file PFTauPrimaryVertexProducerBase.cc.

References algorithm_, pwdgSkimBPark_cfi::beamSpot, beamSpotToken_, beginEvent(), TransientTrackBuilder::build(), cut_, TtSemiLepEvtBuilder_cfi::disc, listHistos::discr, discriminators_, metsig::electron, pwdgSkimBPark_cfi::electrons, electronToken_, edm::EventSetup::get(), edm::Event::getByToken(), edm::Event::getRefBeforePut(), getTrack(), edm::Ptr< T >::isNonnull(), edm::HandleBase::isValid(), eostools::move(), PDWG_BPHSkim_cff::muons, muonToken_, nonTauTracksInPV(), TriggerAnalyzer::passed, pfDeepBoostedJetPreprocessParams_cfi::pfcand, pftauToken_, edm::Event::put(), pvToken_, edm::refToPtr(), removeElectronTracks_, removeMuonTracks_, AdaptiveVertexFitter::setWeightThreshold(), recoTrackAccumulator_cfi::signalTracks, metsig::tau, HLT_2018_cff::track, useBeamSpot_, useFrontPV, useInputPV, useSelectedTaus_, AdaptiveVertexFitter::vertex(), vertexAssociator_, and pwdgSkimBPark_cfi::vertices.

78  {
79  beginEvent(iEvent, iSetup);
80 
81  // Obtain Collections
82  edm::ESHandle<TransientTrackBuilder> transTrackBuilder;
83  iSetup.get<TransientTrackRecord>().get("TransientTrackBuilder", transTrackBuilder);
84 
86  iEvent.getByToken(pftauToken_, pfTaus);
87 
90  iEvent.getByToken(electronToken_, electrons);
91 
94  iEvent.getByToken(muonToken_, muons);
95 
97  iEvent.getByToken(pvToken_, vertices);
98 
100  if (useBeamSpot_)
101  iEvent.getByToken(beamSpotToken_, beamSpot);
102 
103  // Set Association Map
104  auto avPFTauPV = std::make_unique<edm::AssociationVector<reco::PFTauRefProd, std::vector<reco::VertexRef>>>(
105  reco::PFTauRefProd(pfTaus));
106  auto vertexCollection_out = std::make_unique<reco::VertexCollection>();
107  reco::VertexRefProd vertexRefProd_out = iEvent.getRefBeforePut<reco::VertexCollection>("PFTauPrimaryVertices");
108 
109  // Load each discriminator
110  for (auto& disc : discriminators_) {
112  iEvent.getByToken(disc->inputToken_, discr);
113  disc->discr_ = &(*discr);
114  }
115 
116  // Set event for VerexAssociator if needed
117  if (useInputPV == algorithm_)
118  vertexAssociator_->setEvent(iEvent);
119 
120  // For each Tau Run Algorithim
121  if (pfTaus.isValid()) {
122  for (reco::PFTauCollection::size_type iPFTau = 0; iPFTau < pfTaus->size(); iPFTau++) {
123  reco::PFTauRef tau(pfTaus, iPFTau);
124  reco::VertexRef thePVRef;
125  if (useInputPV == algorithm_) {
126  thePVRef = vertexAssociator_->associatedVertex(*tau);
127  } else if (useFrontPV == algorithm_) {
128  thePVRef = reco::VertexRef(vertices, 0);
129  }
130  reco::Vertex thePV = *thePVRef;
132  // Check if it passed all the discrimiantors
133  bool passed(true);
134  for (auto const& disc : discriminators_) {
135  // Check this discriminator passes
136  bool passedDisc = true;
137  if (disc->cutFormula_)
138  passedDisc = (disc->cutFormula_->Eval((*disc->discr_)[tau]) > 0.5);
139  else
140  passedDisc = ((*disc->discr_)[tau] > disc->cut_);
141  if (!passedDisc) {
142  passed = false;
143  break;
144  }
145  }
146  if (passed && cut_.get()) {
147  passed = (*cut_)(*tau);
148  }
149  if (passed) {
150  std::vector<edm::Ptr<reco::TrackBase>> signalTracks;
151  for (reco::PFTauCollection::size_type jPFTau = 0; jPFTau < pfTaus->size(); jPFTau++) {
152  if (useSelectedTaus_ || iPFTau == jPFTau) {
153  reco::PFTauRef pfTauRef(pfTaus, jPFTau);
155  // Get tracks from PFTau daughters
156  for (const auto& pfcand : pfTauRef->signalChargedHadrCands()) {
157  if (pfcand.isNull())
158  continue;
159  const edm::Ptr<reco::TrackBase>& trackPtr = getTrack(*pfcand);
160  if (trackPtr.isNonnull())
161  signalTracks.push_back(trackPtr);
162  }
163  }
164  }
165  // Get Muon tracks
166  if (removeMuonTracks_) {
167  if (muons.isValid()) {
168  for (const auto& muon : *muons) {
169  if (muon.track().isNonnull())
170  signalTracks.push_back(edm::refToPtr(muon.track()));
171  }
172  }
173  }
174  // Get Electron Tracks
175  if (removeElectronTracks_) {
176  if (electrons.isValid()) {
177  for (const auto& electron : *electrons) {
178  if (electron.track().isNonnull())
179  signalTracks.push_back(edm::refToPtr(electron.track()));
180  if (electron.gsfTrack().isNonnull())
181  signalTracks.push_back(edm::refToPtr(electron.gsfTrack()));
182  }
183  }
184  }
186  // Get Non-Tau tracks
187  std::vector<const reco::Track*> nonTauTracks;
188  nonTauTracksInPV(thePVRef, signalTracks, nonTauTracks);
189 
191  // Refit the vertex
192  TransientVertex transVtx;
193  std::vector<reco::TransientTrack> transTracks;
194  for (const auto track : nonTauTracks) {
195  transTracks.push_back(transTrackBuilder->build(*track));
196  }
197  bool fitOK(true);
198  if (transTracks.size() >= 2) {
200  avf.setWeightThreshold(0.1); //weight per track. allow almost every fit, else --> exception
201  if (!useBeamSpot_) {
202  transVtx = avf.vertex(transTracks);
203  } else {
204  transVtx = avf.vertex(transTracks, *beamSpot);
205  }
206  } else
207  fitOK = false;
208  if (fitOK)
209  thePV = transVtx;
210  }
211  reco::VertexRef vtxRef = reco::VertexRef(vertexRefProd_out, vertexCollection_out->size());
212  vertexCollection_out->push_back(thePV);
213  avPFTauPV->setValue(iPFTau, vtxRef);
214  }
215  }
216  iEvent.put(std::move(vertexCollection_out), "PFTauPrimaryVertices");
217  iEvent.put(std::move(avPFTauPV));
218 }
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:131
Ptr< typename C::value_type > refToPtr(Ref< C, typename C::value_type, refhelper::FindUsingAdvance< C, typename C::value_type > > const &ref)
Definition: RefToPtr.h:18
edm::EDGetTokenT< edm::View< reco::Muon > > muonToken_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
virtual void nonTauTracksInPV(const reco::VertexRef &, const std::vector< edm::Ptr< reco::TrackBase > > &, std::vector< const reco::Track * > &)=0
edm::EDGetTokenT< reco::VertexCollection > pvToken_
reco::TransientTrack build(const reco::Track *p) const
CachingVertex< 5 > vertex(const std::vector< reco::TransientTrack > &) const override
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
edm::RefProd< PFTauCollection > PFTauRefProd
references to PFTau collection
Definition: PFTauFwd.h:15
uint16_t size_type
virtual void beginEvent(const edm::Event &, const edm::EventSetup &)
edm::EDGetTokenT< std::vector< reco::PFTau > > pftauToken_
bool isValid() const
Definition: HandleBase.h:70
edm::Ref< VertexCollection > VertexRef
persistent reference to a Vertex
Definition: VertexFwd.h:13
RefProd< PROD > getRefBeforePut()
Definition: Event.h:156
bool isNonnull() const
Checks for non-null.
Definition: Ptr.h:146
static const TrackGhostTrackState * getTrack(const BasicGhostTrackState *basic)
std::unique_ptr< reco::tau::RecoTauVertexAssociator > vertexAssociator_
T get() const
Definition: EventSetup.h:73
std::unique_ptr< StringCutObjectSelector< reco::PFTau > > cut_
edm::EDGetTokenT< edm::View< reco::Electron > > electronToken_
def move(src, dest)
Definition: eostools.py:511

Member Data Documentation

int PFTauPrimaryVertexProducerBase::algorithm_
private

Definition at line 74 of file PFTauPrimaryVertexProducerBase.h.

Referenced by produce().

edm::EDGetTokenT<reco::BeamSpot> PFTauPrimaryVertexProducerBase::beamSpotToken_
private

Definition at line 73 of file PFTauPrimaryVertexProducerBase.h.

Referenced by produce().

std::unique_ptr<StringCutObjectSelector<reco::PFTau> > PFTauPrimaryVertexProducerBase::cut_
private

Definition at line 81 of file PFTauPrimaryVertexProducerBase.h.

Referenced by PFTauPrimaryVertexProducerBase(), and produce().

DiscCutPairVec PFTauPrimaryVertexProducerBase::discriminators_
private

Definition at line 80 of file PFTauPrimaryVertexProducerBase.h.

Referenced by PFTauPrimaryVertexProducerBase(), and produce().

edm::EDGetTokenT<edm::View<reco::Electron> > PFTauPrimaryVertexProducerBase::electronToken_
private

Definition at line 70 of file PFTauPrimaryVertexProducerBase.h.

Referenced by produce().

edm::EDGetTokenT<edm::View<reco::Muon> > PFTauPrimaryVertexProducerBase::muonToken_
private

Definition at line 71 of file PFTauPrimaryVertexProducerBase.h.

Referenced by produce().

edm::EDGetTokenT<std::vector<reco::PFTau> > PFTauPrimaryVertexProducerBase::pftauToken_
private

Definition at line 69 of file PFTauPrimaryVertexProducerBase.h.

Referenced by produce().

edm::EDGetTokenT<reco::VertexCollection> PFTauPrimaryVertexProducerBase::pvToken_
private

Definition at line 72 of file PFTauPrimaryVertexProducerBase.h.

Referenced by produce().

edm::ParameterSet PFTauPrimaryVertexProducerBase::qualityCutsPSet_
private

Definition at line 75 of file PFTauPrimaryVertexProducerBase.h.

Referenced by PFTauPrimaryVertexProducerBase().

bool PFTauPrimaryVertexProducerBase::removeElectronTracks_
private

Definition at line 79 of file PFTauPrimaryVertexProducerBase.h.

Referenced by produce().

bool PFTauPrimaryVertexProducerBase::removeMuonTracks_
private

Definition at line 78 of file PFTauPrimaryVertexProducerBase.h.

Referenced by produce().

bool PFTauPrimaryVertexProducerBase::useBeamSpot_
private

Definition at line 76 of file PFTauPrimaryVertexProducerBase.h.

Referenced by produce().

bool PFTauPrimaryVertexProducerBase::useSelectedTaus_
private

Definition at line 77 of file PFTauPrimaryVertexProducerBase.h.

Referenced by produce().

std::unique_ptr<reco::tau::RecoTauVertexAssociator> PFTauPrimaryVertexProducerBase::vertexAssociator_
private

Definition at line 82 of file PFTauPrimaryVertexProducerBase.h.

Referenced by PFTauPrimaryVertexProducerBase(), and produce().