CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
FFTJetPFPileupCleaner Class Reference

#include <RecoJets/FFTJetProducers/plugins/FFTJetPFPileupCleaner.cc>

Inheritance diagram for FFTJetPFPileupCleaner:
edm::EDProducer edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 FFTJetPFPileupCleaner (const edm::ParameterSet &)
 
 ~FFTJetPFPileupCleaner ()
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (std::string const &iProcessName, std::string const &iModuleLabel, bool iPrint, std::vector< char const * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Protected Member Functions

void beginJob () override
 
void endJob () override
 
void produce (edm::Event &, const edm::EventSetup &) override
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, 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 ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Private Member Functions

void buildRemovalMask ()
 
 FFTJetPFPileupCleaner ()
 
 FFTJetPFPileupCleaner (const FFTJetPFPileupCleaner &)
 
reco::VertexRef findSomeVertexWFakes (const edm::Handle< reco::VertexCollection > &vertices, const edm::Handle< reco::VertexCollection > &fakeVertices, const reco::PFCandidate &pfcand, bool *fromFakeSet) const
 
bool isAcceptableVtx (reco::VertexCollection::const_iterator iv) const
 
bool isRemovable (reco::PFCandidate::ParticleType ptype) const
 
FFTJetPFPileupCleaneroperator= (const FFTJetPFPileupCleaner &)
 
void setRemovalBit (reco::PFCandidate::ParticleType ptype, bool onOff)
 

Private Attributes

bool checkClosestZVertex
 
double etaMax
 
double etaMin
 
edm::InputTag FakePrimaryVertices
 
edm::EDGetTokenT
< reco::VertexCollection
FakePrimaryVerticesToken
 
bool keepIfPVneighbor
 
edm::InputTag PFCandidates
 
edm::EDGetTokenT
< reco::PFCandidateCollection
PFCandidatesToken
 
unsigned removalMask
 
bool remove_e
 
bool remove_egamma_HF
 
bool remove_gamma
 
bool remove_h
 
bool remove_h0
 
bool remove_h_HF
 
bool remove_mu
 
bool remove_X
 
bool removeMainVertex
 
bool removeUnassociated
 
bool reverseRemovalDecision
 
bool useFakePrimaryVertex
 
double vertexNdofCut
 
double vertexRhoCut
 
double vertexZmaxCut
 
edm::InputTag Vertices
 
edm::EDGetTokenT
< reco::VertexCollection
VerticesToken
 
std::vector< std::pair< double,
unsigned > > 
zAssoc
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Detailed Description

Description: cleans up a collection of partice flow objects

Implementation: [Notes on implementation]

Definition at line 45 of file FFTJetPFPileupCleaner.cc.

Constructor & Destructor Documentation

FFTJetPFPileupCleaner::FFTJetPFPileupCleaner ( const edm::ParameterSet ps)
explicit

Definition at line 140 of file FFTJetPFPileupCleaner.cc.

References buildRemovalMask(), FakePrimaryVertices, FakePrimaryVerticesToken, PFCandidates, PFCandidatesToken, useFakePrimaryVertex, Vertices, and VerticesToken.

150  init_param(bool, remove_X ),
151  init_param(bool, remove_h ),
152  init_param(bool, remove_e ),
153  init_param(bool, remove_mu ),
154  init_param(bool, remove_gamma ),
155  init_param(bool, remove_h0 ),
156  init_param(bool, remove_h_HF ),
158  removalMask(0),
159  init_param(double, etaMin),
160  init_param(double, etaMax),
161  init_param(double, vertexNdofCut),
162  init_param(double, vertexZmaxCut),
163  init_param(double, vertexRhoCut)
164 {
166 
167  PFCandidatesToken = consumes<reco::PFCandidateCollection>(PFCandidates);
168  VerticesToken = consumes<reco::VertexCollection>(Vertices);
170  FakePrimaryVerticesToken = consumes<reco::VertexCollection>(FakePrimaryVertices);
171 
172  produces<reco::PFCandidateCollection>();
173 }
edm::EDGetTokenT< reco::VertexCollection > FakePrimaryVerticesToken
edm::EDGetTokenT< reco::VertexCollection > VerticesToken
edm::EDGetTokenT< reco::PFCandidateCollection > PFCandidatesToken
#define init_param(type, varname)
FFTJetPFPileupCleaner::~FFTJetPFPileupCleaner ( )

Definition at line 176 of file FFTJetPFPileupCleaner.cc.

177 {
178 }
FFTJetPFPileupCleaner::FFTJetPFPileupCleaner ( )
private
FFTJetPFPileupCleaner::FFTJetPFPileupCleaner ( const FFTJetPFPileupCleaner )
private

Member Function Documentation

void FFTJetPFPileupCleaner::beginJob ( void  )
overrideprotectedvirtual

Reimplemented from edm::EDProducer.

Definition at line 515 of file FFTJetPFPileupCleaner.cc.

516 {
517 }
void FFTJetPFPileupCleaner::buildRemovalMask ( )
private

Definition at line 501 of file FFTJetPFPileupCleaner.cc.

References reco::PFCandidate::e, reco::PFCandidate::egamma_HF, reco::PFCandidate::gamma, reco::PFCandidate::h, reco::PFCandidate::h0, reco::PFCandidate::h_HF, reco::PFCandidate::mu, remove_e, remove_egamma_HF, remove_gamma, remove_h, remove_h0, remove_h_HF, remove_mu, remove_X, setRemovalBit(), and reco::PFCandidate::X.

Referenced by FFTJetPFPileupCleaner().

502 {
511 }
void setRemovalBit(reco::PFCandidate::ParticleType ptype, bool onOff)
void FFTJetPFPileupCleaner::endJob ( void  )
overrideprotectedvirtual

Reimplemented from edm::EDProducer.

Definition at line 521 of file FFTJetPFPileupCleaner.cc.

522 {
523 }
reco::VertexRef FFTJetPFPileupCleaner::findSomeVertexWFakes ( const edm::Handle< reco::VertexCollection > &  vertices,
const edm::Handle< reco::VertexCollection > &  fakeVertices,
const reco::PFCandidate pfcand,
bool *  fromFakeSet 
) const
private

Definition at line 296 of file FFTJetPFPileupCleaner.cc.

References funct::abs(), checkClosestZVertex, plotBeamSpotDB::first, cmsHarvester::index, isAcceptableVtx(), keepIfPVneighbor, reco::PFCandidate::trackRef(), reco::Vertex::tracks_begin(), reco::Vertex::tracks_end(), reco::Vertex::trackWeight(), useFakePrimaryVertex, reco::PFCandidate::vertex(), w, z, and zAssoc.

Referenced by produce().

300 {
301  typedef reco::VertexCollection::const_iterator IV;
303 
304  *fromFakeSet = false;
305  reco::TrackBaseRef trackBaseRef(pfcand.trackRef());
306 
307  size_t iVertex = 0;
308  unsigned nFoundVertex = 0;
309  const IV vertend(vertices->end());
310 
311  {
312  unsigned index = 0;
313  double bestweight = 0.0;
314  for (IV iv=vertices->begin(); iv!=vertend; ++iv, ++index)
315  if (isAcceptableVtx(iv))
316  {
317  const reco::Vertex& vtx = *iv;
318 
319  // loop on tracks in vertices
320  IT trackend(vtx.tracks_end());
321  for (IT iTrack=vtx.tracks_begin(); iTrack!=trackend; ++iTrack)
322  {
323  const reco::TrackBaseRef& baseRef = *iTrack;
324 
325  // one of the tracks in the vertex is the same as
326  // the track considered in the function
327  if (baseRef == trackBaseRef)
328  {
329  // select the vertex for which the track has the highest weight
330  const double w = vtx.trackWeight(baseRef);
331  if (w > bestweight)
332  {
333  bestweight=w;
334  iVertex=index;
335  nFoundVertex++;
336  }
337  }
338  }
339  }
340  }
341 
342  if (nFoundVertex > 0)
343  {
344  if (nFoundVertex != 1)
345  edm::LogWarning("TrackOnTwoVertex")
346  << "a track is shared by at least two vertices. "
347  << "Used to be an assert";
348 
349  // Check if we can re-associate this track with one
350  // of the fake vertices
352  {
353  const double ztrack = pfcand.vertex().z();
354  double dzmin = std::abs(ztrack - ((*vertices)[iVertex]).z());
355 
356  const IV fakeEnd(fakeVertices->end());
357  unsigned index = 0;
358  for (IV iv=fakeVertices->begin(); iv!=fakeEnd; ++iv, ++index)
359  if (isAcceptableVtx(iv))
360  {
361  const double dz = std::abs(ztrack - iv->z());
362  if (dz < dzmin)
363  {
364  dzmin = dz;
365  iVertex = index;
366  *fromFakeSet = true;
367  }
368  }
369  }
370 
371  return reco::VertexRef(*fromFakeSet ? fakeVertices : vertices, iVertex);
372  }
373 
374  // optional: as a secondary solution, associate the closest vertex in z
375  if (checkClosestZVertex)
376  {
377  const double ztrack = pfcand.vertex().z();
378  bool foundVertex = false;
379 
380  if (keepIfPVneighbor)
381  {
382  // Sort all vertices according to their Z coordinate
383  zAssoc.clear();
384  unsigned index = 0;
385  for (IV iv=vertices->begin(); iv!=vertend; ++iv, ++index)
386  if (isAcceptableVtx(iv))
387  zAssoc.push_back(std::pair<double,unsigned>(iv->z(), index));
388  const unsigned numRealVertices = index;
389 
390  // Mix the fake vertex collection into zAssoc.
391  // Note that we do not reset "index" before doing this.
393  {
394  const IV fakeEnd(fakeVertices->end());
395  for (IV iv=fakeVertices->begin(); iv!=fakeEnd; ++iv, ++index)
396  if (isAcceptableVtx(iv))
397  zAssoc.push_back(std::pair<double,unsigned>(iv->z(), index));
398  }
399 
400  // Check where the track z position fits into this sequence
401  if (!zAssoc.empty())
402  {
403  std::sort(zAssoc.begin(), zAssoc.end());
404  std::pair<double,unsigned> tPair(ztrack, UINT_MAX);
405  const unsigned iAbove = std::upper_bound(
406  zAssoc.begin(), zAssoc.end(), tPair) - zAssoc.begin();
407 
408  // Check whether one of the vertices with indices
409  // iAbove or (iAbove - 1) is a primary vertex.
410  // If so, return it. Otherwise return the one
411  // with closest distance to the track.
412  unsigned ich[2] = {0U, 0U};
413  unsigned nch = 1;
414  if (iAbove)
415  {
416  ich[0] = iAbove - 1U;
417  ich[1] = iAbove;
418  if (iAbove < zAssoc.size())
419  nch = 2;
420  }
421 
422  double dzmin = 1.0e100;
423  unsigned bestVertexNum = UINT_MAX;
424  for (unsigned icheck=0; icheck<nch; ++icheck)
425  {
426  const unsigned zAssocIndex = ich[icheck];
427  const unsigned vertexNum = zAssoc[zAssocIndex].second;
428 
429  if (vertexNum == numRealVertices ||
430  (!useFakePrimaryVertex && vertexNum == 0U))
431  {
432  bestVertexNum = vertexNum;
433  break;
434  }
435 
436  const double dz = std::abs(ztrack - zAssoc[zAssocIndex].first);
437  if (dz < dzmin)
438  {
439  dzmin = dz;
440  bestVertexNum = vertexNum;
441  }
442  }
443 
444  foundVertex = bestVertexNum < UINT_MAX;
445  if (foundVertex)
446  {
447  iVertex = bestVertexNum;
448  if (iVertex >= numRealVertices)
449  {
450  *fromFakeSet = true;
451  iVertex -= numRealVertices;
452  }
453  }
454  }
455  }
456  else
457  {
458  // This is a simple association algorithm (from PFPileUp)
459  // extended to take fake vertices into account
460  double dzmin = 1.0e100;
461  unsigned index = 0;
462  for (IV iv=vertices->begin(); iv!=vertend; ++iv, ++index)
463  if (isAcceptableVtx(iv))
464  {
465  const double dz = std::abs(ztrack - iv->z());
466  if (dz < dzmin)
467  {
468  dzmin = dz;
469  iVertex = index;
470  foundVertex = true;
471  }
472  }
473 
475  {
476  const IV fakeEnd(fakeVertices->end());
477  index = 0;
478  for (IV iv=fakeVertices->begin(); iv!=fakeEnd; ++iv, ++index)
479  if (isAcceptableVtx(iv))
480  {
481  const double dz = std::abs(ztrack - iv->z());
482  if (dz < dzmin)
483  {
484  dzmin = dz;
485  iVertex = index;
486  *fromFakeSet = true;
487  foundVertex = true;
488  }
489  }
490  }
491  }
492 
493  if (foundVertex)
494  return reco::VertexRef(*fromFakeSet ? fakeVertices : vertices, iVertex);
495  }
496 
497  return reco::VertexRef();
498 }
const double w
Definition: UKUtility.cc:23
trackRef_iterator tracks_end() const
last iterator over tracks
Definition: Vertex.cc:44
reco::TrackRef trackRef() const
Definition: PFCandidate.cc:433
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
virtual const Point & vertex() const
vertex position (overwritten by PF...)
Definition: PFCandidate.cc:647
float trackWeight(const TREF &r) const
returns the weight with which a Track has contributed to the vertex-fit.
Definition: Vertex.h:73
std::vector< LinkConnSpec >::const_iterator IT
edm::Ref< VertexCollection > VertexRef
persistent reference to a Vertex
Definition: VertexFwd.h:13
std::vector< std::pair< double, unsigned > > zAssoc
std::vector< TrackBaseRef >::const_iterator trackRef_iterator
The iteratator for the vector&lt;TrackRef&gt;
Definition: Vertex.h:37
trackRef_iterator tracks_begin() const
first iterator over tracks
Definition: Vertex.cc:39
bool isAcceptableVtx(reco::VertexCollection::const_iterator iv) const
bool FFTJetPFPileupCleaner::isAcceptableVtx ( reco::VertexCollection::const_iterator  iv) const
private

Definition at line 181 of file FFTJetPFPileupCleaner.cc.

References funct::abs(), vertexNdofCut, vertexRhoCut, and vertexZmaxCut.

Referenced by findSomeVertexWFakes().

183 {
184  return !iv->isFake() &&
185  static_cast<double>(iv->ndof()) > vertexNdofCut &&
186  std::abs(iv->z()) < vertexZmaxCut &&
187  iv->position().rho() < vertexRhoCut;
188 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool FFTJetPFPileupCleaner::isRemovable ( reco::PFCandidate::ParticleType  ptype) const
private

Definition at line 271 of file FFTJetPFPileupCleaner.cc.

References assert(), removalMask, and edm::shift.

Referenced by produce().

273 {
274  const unsigned shift = static_cast<unsigned>(ptype);
275  assert(shift < 32U);
276  return removalMask & (1U << shift);
277 }
assert(m_qm.get())
static unsigned int const shift
FFTJetPFPileupCleaner& FFTJetPFPileupCleaner::operator= ( const FFTJetPFPileupCleaner )
private
void FFTJetPFPileupCleaner::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprotectedvirtual

Implements edm::EDProducer.

Definition at line 192 of file FFTJetPFPileupCleaner.cc.

References eta, etaMax, FakePrimaryVerticesToken, findSomeVertexWFakes(), edm::Event::getByToken(), i, edm::Ref< C, T, F >::isNull(), isRemovable(), edm::HandleBase::isValid(), edm::Ref< C, T, F >::key(), reco::tau::pfCandidates(), PFCandidatesToken, edm::Event::put(), removeMainVertex, removeUnassociated, reverseRemovalDecision, reco::PFCandidate::setSourceCandidatePtr(), useFakePrimaryVertex, HLT_FULL_cff::vertices, and VerticesToken.

194 {
195  // get PFCandidates
196  std::auto_ptr<reco::PFCandidateCollection>
197  pOutput(new reco::PFCandidateCollection);
198 
200  iEvent.getByToken(PFCandidatesToken, pfCandidates);
201 
202  // get vertices
204  iEvent.getByToken(VerticesToken, vertices);
205 
208  {
209  iEvent.getByToken(FakePrimaryVerticesToken, fakeVertices);
210  if (!fakeVertices.isValid())
211  throw cms::Exception("FFTJetBadConfig")
212  << "ERROR in FFTJetPFPileupCleaner:"
213  " could not find fake vertices"
214  << std::endl;
215  }
216 
217  const unsigned ncand = pfCandidates->size();
218  for (unsigned i=0; i<ncand; ++i)
219  {
220  reco::PFCandidatePtr candptr(pfCandidates, i);
221  bool remove = false;
222 
223  if (isRemovable(candptr->particleId()))
224  {
225  bool fromFakeSet = false;
226  reco::VertexRef vertexref(findSomeVertexWFakes(vertices, fakeVertices,
227  *candptr, &fromFakeSet));
228  if (vertexref.isNull())
229  {
230  // Track is not associated with any vertex
231  // in any of the vertex sets
232  remove = removeUnassociated;
233  }
234  else if (vertexref.key() == 0 &&
235  (!useFakePrimaryVertex || fromFakeSet))
236  {
237  // Track is associated with the main primary vertex
238  // However, if we are using fake vertices, this only
239  // matters if the vertex comes from the fake set. If
240  // it comes from the real set, remove the track anyway
241  // because in the combined set the associated vertex
242  // would not be the main primary vertex.
243  remove = removeMainVertex;
244  }
245  else
246  remove = true;
247  }
248 
249  // Check the eta range
250  if (!remove)
251  {
252  const double eta = candptr->p4().Eta();
253  remove = eta < etaMin || eta > etaMax;
254  }
255 
256  // Should we remember this candidate?
258  remove = !remove;
259  if (!remove)
260  {
261  const reco::PFCandidate& cand = (*pfCandidates)[i];
262  pOutput->push_back(cand);
263  pOutput->back().setSourceCandidatePtr(candptr);
264  }
265  }
266 
267  iEvent.put(pOutput);
268 }
int i
Definition: DBlmapReader.cc:9
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:462
edm::EDGetTokenT< reco::VertexCollection > FakePrimaryVerticesToken
void setSourceCandidatePtr(const PFCandidatePtr &ptr)
Definition: PFCandidate.h:125
std::vector< PFCandidatePtr > pfCandidates(const PFJet &jet, int particleId, bool sort=true)
bool isRemovable(reco::PFCandidate::ParticleType ptype) const
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:121
edm::EDGetTokenT< reco::VertexCollection > VerticesToken
bool isValid() const
Definition: HandleBase.h:75
std::vector< reco::PFCandidate > PFCandidateCollection
collection of PFCandidates
edm::EDGetTokenT< reco::PFCandidateCollection > PFCandidatesToken
Particle reconstructed by the particle flow algorithm.
Definition: PFCandidate.h:39
reco::VertexRef findSomeVertexWFakes(const edm::Handle< reco::VertexCollection > &vertices, const edm::Handle< reco::VertexCollection > &fakeVertices, const reco::PFCandidate &pfcand, bool *fromFakeSet) const
void FFTJetPFPileupCleaner::setRemovalBit ( reco::PFCandidate::ParticleType  ptype,
bool  onOff 
)
private

Definition at line 280 of file FFTJetPFPileupCleaner.cc.

References assert(), removalMask, and edm::shift.

Referenced by buildRemovalMask().

282 {
283  const unsigned shift = static_cast<unsigned>(ptype);
284  assert(shift < 32U);
285  const unsigned mask = (1U << shift);
286  if (value)
287  removalMask |= mask;
288  else
289  removalMask &= ~mask;
290 }
assert(m_qm.get())
static unsigned int const shift

Member Data Documentation

bool FFTJetPFPileupCleaner::checkClosestZVertex
private

Definition at line 86 of file FFTJetPFPileupCleaner.cc.

Referenced by findSomeVertexWFakes().

double FFTJetPFPileupCleaner::etaMax
private

Definition at line 122 of file FFTJetPFPileupCleaner.cc.

Referenced by produce().

double FFTJetPFPileupCleaner::etaMin
private

Definition at line 121 of file FFTJetPFPileupCleaner.cc.

edm::InputTag FFTJetPFPileupCleaner::FakePrimaryVertices
private

Definition at line 74 of file FFTJetPFPileupCleaner.cc.

Referenced by FFTJetPFPileupCleaner().

edm::EDGetTokenT<reco::VertexCollection> FFTJetPFPileupCleaner::FakePrimaryVerticesToken
private

Definition at line 78 of file FFTJetPFPileupCleaner.cc.

Referenced by FFTJetPFPileupCleaner(), and produce().

bool FFTJetPFPileupCleaner::keepIfPVneighbor
private

Definition at line 93 of file FFTJetPFPileupCleaner.cc.

Referenced by findSomeVertexWFakes().

edm::InputTag FFTJetPFPileupCleaner::PFCandidates
private

Definition at line 72 of file FFTJetPFPileupCleaner.cc.

Referenced by FFTJetPFPileupCleaner().

edm::EDGetTokenT<reco::PFCandidateCollection> FFTJetPFPileupCleaner::PFCandidatesToken
private

Definition at line 76 of file FFTJetPFPileupCleaner.cc.

Referenced by FFTJetPFPileupCleaner(), and produce().

unsigned FFTJetPFPileupCleaner::removalMask
private

Definition at line 118 of file FFTJetPFPileupCleaner.cc.

Referenced by isRemovable(), and setRemovalBit().

bool FFTJetPFPileupCleaner::remove_e
private

Definition at line 110 of file FFTJetPFPileupCleaner.cc.

Referenced by buildRemovalMask().

bool FFTJetPFPileupCleaner::remove_egamma_HF
private

Definition at line 115 of file FFTJetPFPileupCleaner.cc.

Referenced by buildRemovalMask().

bool FFTJetPFPileupCleaner::remove_gamma
private

Definition at line 112 of file FFTJetPFPileupCleaner.cc.

Referenced by buildRemovalMask().

bool FFTJetPFPileupCleaner::remove_h
private

Definition at line 109 of file FFTJetPFPileupCleaner.cc.

Referenced by buildRemovalMask().

bool FFTJetPFPileupCleaner::remove_h0
private

Definition at line 113 of file FFTJetPFPileupCleaner.cc.

Referenced by buildRemovalMask().

bool FFTJetPFPileupCleaner::remove_h_HF
private

Definition at line 114 of file FFTJetPFPileupCleaner.cc.

Referenced by buildRemovalMask().

bool FFTJetPFPileupCleaner::remove_mu
private

Definition at line 111 of file FFTJetPFPileupCleaner.cc.

Referenced by buildRemovalMask().

bool FFTJetPFPileupCleaner::remove_X
private

Definition at line 108 of file FFTJetPFPileupCleaner.cc.

Referenced by buildRemovalMask().

bool FFTJetPFPileupCleaner::removeMainVertex
private

Definition at line 97 of file FFTJetPFPileupCleaner.cc.

Referenced by produce().

bool FFTJetPFPileupCleaner::removeUnassociated
private

Definition at line 101 of file FFTJetPFPileupCleaner.cc.

Referenced by produce().

bool FFTJetPFPileupCleaner::reverseRemovalDecision
private

Definition at line 104 of file FFTJetPFPileupCleaner.cc.

Referenced by produce().

bool FFTJetPFPileupCleaner::useFakePrimaryVertex
private

Definition at line 82 of file FFTJetPFPileupCleaner.cc.

Referenced by FFTJetPFPileupCleaner(), findSomeVertexWFakes(), and produce().

double FFTJetPFPileupCleaner::vertexNdofCut
private

Definition at line 125 of file FFTJetPFPileupCleaner.cc.

Referenced by isAcceptableVtx().

double FFTJetPFPileupCleaner::vertexRhoCut
private

Definition at line 131 of file FFTJetPFPileupCleaner.cc.

Referenced by isAcceptableVtx().

double FFTJetPFPileupCleaner::vertexZmaxCut
private

Definition at line 128 of file FFTJetPFPileupCleaner.cc.

Referenced by isAcceptableVtx().

edm::InputTag FFTJetPFPileupCleaner::Vertices
private

Definition at line 73 of file FFTJetPFPileupCleaner.cc.

Referenced by FFTJetPFPileupCleaner().

edm::EDGetTokenT<reco::VertexCollection> FFTJetPFPileupCleaner::VerticesToken
private

Definition at line 77 of file FFTJetPFPileupCleaner.cc.

Referenced by FFTJetPFPileupCleaner(), and produce().

std::vector<std::pair<double, unsigned> > FFTJetPFPileupCleaner::zAssoc
mutableprivate

Definition at line 134 of file FFTJetPFPileupCleaner.cc.

Referenced by findSomeVertexWFakes().