CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
InputGenJetsParticleSelector Class Reference

#include <InputGenJetsParticleSelector.h>

Inheritance diagram for InputGenJetsParticleSelector:
edm::global::EDProducer<> edm::global::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Types

typedef std::vector< bool > ParticleBitmap
 
typedef std::vector< const reco::Candidate * > ParticleVector
 
enum  ResonanceState { kNo = 0, kDirect, kIndirect }
 
- Public Types inherited from edm::global::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

Public Member Functions

ResonanceState fromResonance (ParticleBitmap &invalid, const ParticleVector &p, const reco::Candidate *particle) const
 
bool getExcludeResonances () const
 
const std::vector< unsigned int > & getIgnoredParticles () const
 
bool getPartonicFinalState () const
 
double getPtMin () const
 
bool getTausAndJets () const
 
bool hasPartonChildren (ParticleBitmap &invalid, const ParticleVector &p, const reco::Candidate *particle) const
 
 InputGenJetsParticleSelector (const edm::ParameterSet &)
 
bool isIgnored (int pdgId) const
 
bool isParton (int pdgId) const
 
void produce (edm::StreamID, edm::Event &evt, const edm::EventSetup &evtSetup) const override
 
void setExcludeResonances (bool flag=true)
 
void setPartonicFinalState (bool flag=true)
 
void setPtMin (double ptMin)
 
void setTausAsJets (bool flag=true)
 
 ~InputGenJetsParticleSelector () override
 
- Public Member Functions inherited from edm::global::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsStreamLuminosityBlocks () const final
 
bool wantsStreamRuns () const final
 
- Public Member Functions inherited from edm::global::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static bool isHadron (int pdgId)
 
static bool isResonance (int pdgId)
 
- Static Public Member Functions inherited from edm::global::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Member Functions

 InputGenJetsParticleSelector ()
 
bool isExcludedFromResonance (int pdgId) const
 
void setExcludeFromResonancePids (const std::vector< unsigned int > &particleIDs)
 
void setIgnoredParticles (const std::vector< unsigned int > &particleIDs)
 
int testPartonChildren (ParticleBitmap &invalid, const ParticleVector &p, const reco::Candidate *particle) const
 

Private Attributes

std::vector< unsigned int > excludeFromResonancePids
 
bool excludeResonances
 
std::vector< unsigned int > ignoreParticleIDs
 
edm::EDGetTokenT< reco::CandidateViewinput_genpartcoll_token_
 
edm::EDGetTokenT< reco::CandidateViewinput_prunedgenpartcoll_token_
 
edm::InputTag inTag
 
bool isMiniAOD
 
bool partonicFinalState
 
edm::InputTag prunedInTag
 
double ptMin
 
bool tausAsJets
 

Additional Inherited Members

- 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 ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
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)
 

Detailed Description

Definition at line 28 of file InputGenJetsParticleSelector.h.

Member Typedef Documentation

Definition at line 31 of file InputGenJetsParticleSelector.h.

Definition at line 32 of file InputGenJetsParticleSelector.h.

Member Enumeration Documentation

Constructor & Destructor Documentation

InputGenJetsParticleSelector::InputGenJetsParticleSelector ( const edm::ParameterSet params)

Definition at line 49 of file InputGenJetsParticleSelector.cc.

References edm::ParameterSet::exists(), edm::ParameterSet::getParameter(), input_genpartcoll_token_, input_prunedgenpartcoll_token_, inTag, isMiniAOD, edm::InputTag::label(), partonicFinalState, prunedInTag, setExcludeFromResonancePids(), and setIgnoredParticles().

49  :
50  inTag(params.getParameter<edm::InputTag>("src")),
51  prunedInTag(params.exists("prunedGenParticles") ? params.getParameter<edm::InputTag>("prunedGenParticles") : edm::InputTag("prunedGenParticles")),
52  partonicFinalState(params.getParameter<bool>("partonicFinalState")),
53  excludeResonances(params.getParameter<bool>("excludeResonances")),
54  tausAsJets(params.getParameter<bool>("tausAsJets")),
55  ptMin(0.0){
56  if (params.exists("ignoreParticleIDs"))
57  setIgnoredParticles(params.getParameter<std::vector<unsigned int> >
58  ("ignoreParticleIDs"));
59  setExcludeFromResonancePids(params.getParameter<std::vector<unsigned int> >
60  ("excludeFromResonancePids"));
61  isMiniAOD = ( params.exists("isMiniAOD") ? params.getParameter<bool>("isMiniAOD") : (inTag.label()=="packedGenParticles") );
62 
64  edm::LogError("PartonicFinalStateFromMiniAOD") << "Partonic final state not supported for MiniAOD. Falling back to the stable particle selection.";
65  partonicFinalState = false;
66  }
67 
68  produces <reco::CandidatePtrVector> ();
69 
70  input_genpartcoll_token_ = consumes<reco::CandidateView>(inTag);
71  if(isMiniAOD)
72  input_prunedgenpartcoll_token_ = consumes<reco::CandidateView>(prunedInTag);
73 
74 }
T getParameter(std::string const &) const
edm::EDGetTokenT< reco::CandidateView > input_genpartcoll_token_
bool exists(std::string const &parameterName) const
checks if a parameter exists
void setIgnoredParticles(const std::vector< unsigned int > &particleIDs)
edm::EDGetTokenT< reco::CandidateView > input_prunedgenpartcoll_token_
std::string const & label() const
Definition: InputTag.h:36
void setExcludeFromResonancePids(const std::vector< unsigned int > &particleIDs)
InputGenJetsParticleSelector::~InputGenJetsParticleSelector ( )
override

Definition at line 76 of file InputGenJetsParticleSelector.cc.

76 {}
InputGenJetsParticleSelector::InputGenJetsParticleSelector ( )
inlineprivate

Definition at line 76 of file InputGenJetsParticleSelector.h.

76 {} //should not be used!

Member Function Documentation

InputGenJetsParticleSelector::ResonanceState InputGenJetsParticleSelector::fromResonance ( ParticleBitmap invalid,
const ParticleVector p,
const reco::Candidate particle 
) const

Definition at line 189 of file InputGenJetsParticleSelector.cc.

References mps_fire::i, training_settings::idx, isExcludedFromResonance(), isIgnored(), isParton(), isResonance(), kDirect, kIndirect, kNo, reco::Candidate::mother(), reco::Candidate::numberOfMothers(), partIdx(), reco::Candidate::pdgId(), mps_fire::result, and reco::Candidate::status().

Referenced by produce().

192 {
193  unsigned int idx = partIdx(p, particle);
194  int id = particle->pdgId();
195 
196  if (invalid[idx]) return kIndirect;
197 
198  if (isResonance(id) && (particle->status() == 3 || particle->status() == 22) ){
199  return kDirect;
200  }
201 
202 
203  if (!isIgnored(id) && (isParton(id)))
204  return kNo;
205 
206 
207 
208  unsigned int nMo=particle->numberOfMothers();
209  if (!nMo)
210  return kNo;
211 
212 
213  for(unsigned int i=0;i<nMo;++i){
215  switch(result) {
216  case kNo:
217  break;
218  case kDirect:
219  if (particle->mother(i)->pdgId()==id || isResonance(id))
220  return kDirect;
221  if(!isExcludedFromResonance(id))
222  break;
223  case kIndirect:
224  return kIndirect;
225  }
226  }
227 return kNo;
228 }
static unsigned int partIdx(const InputGenJetsParticleSelector::ParticleVector &p, const reco::Candidate *particle)
virtual const Candidate * mother(size_type i=0) const =0
return pointer to mother
virtual int status() const =0
status word
virtual int pdgId() const =0
PDG identifier.
virtual size_type numberOfMothers() const =0
number of mothers (zero or one in most of but not all the cases)
ResonanceState fromResonance(ParticleBitmap &invalid, const ParticleVector &p, const reco::Candidate *particle) const
bool InputGenJetsParticleSelector::getExcludeResonances ( ) const
inline
const std::vector<unsigned int>& InputGenJetsParticleSelector::getIgnoredParticles ( ) const
inline

Definition at line 44 of file InputGenJetsParticleSelector.h.

References ignoreParticleIDs.

45  { return ignoreParticleIDs; }
std::vector< unsigned int > ignoreParticleIDs
bool InputGenJetsParticleSelector::getPartonicFinalState ( ) const
inline
double InputGenJetsParticleSelector::getPtMin ( ) const
inline

Definition at line 43 of file InputGenJetsParticleSelector.h.

References ptMin.

bool InputGenJetsParticleSelector::getTausAndJets ( ) const
inline

Definition at line 42 of file InputGenJetsParticleSelector.h.

References tausAsJets.

bool InputGenJetsParticleSelector::hasPartonChildren ( ParticleBitmap invalid,
const ParticleVector p,
const reco::Candidate particle 
) const

Definition at line 231 of file InputGenJetsParticleSelector.cc.

References testPartonChildren().

Referenced by produce(), and setPtMin().

233  {
234  return testPartonChildren(invalid, p, particle) > 0;
235 }
int testPartonChildren(ParticleBitmap &invalid, const ParticleVector &p, const reco::Candidate *particle) const
bool InputGenJetsParticleSelector::isExcludedFromResonance ( int  pdgId) const
private

Definition at line 122 of file InputGenJetsParticleSelector.cc.

References excludeFromResonancePids, createfilelist::int, pfDeepBoostedJetPreprocessParams_cfi::lower_bound, and common_cff::pdgId.

Referenced by fromResonance().

123 {
124  pdgId = pdgId > 0 ? pdgId : -pdgId;
125  std::vector<unsigned int>::const_iterator pos =
128  (unsigned int)pdgId);
129  return pos != excludeFromResonancePids.end() && *pos == (unsigned int)pdgId;
130 
131 }
std::vector< unsigned int > excludeFromResonancePids
bool InputGenJetsParticleSelector::isHadron ( int  pdgId)
static

Definition at line 98 of file InputGenJetsParticleSelector.cc.

References common_cff::pdgId.

Referenced by setPtMin(), and testPartonChildren().

99 {
100  pdgId = (pdgId > 0 ? pdgId : -pdgId) % 10000;
101  return (pdgId > 100 && pdgId < 900) ||
102  (pdgId > 1000 && pdgId < 9000);
103 }
bool InputGenJetsParticleSelector::isIgnored ( int  pdgId) const

Definition at line 112 of file InputGenJetsParticleSelector.cc.

References ignoreParticleIDs, createfilelist::int, pfDeepBoostedJetPreprocessParams_cfi::lower_bound, and common_cff::pdgId.

Referenced by fromResonance(), produce(), and setPtMin().

113 {
114  pdgId = pdgId > 0 ? pdgId : -pdgId;
115  std::vector<unsigned int>::const_iterator pos =
117  ignoreParticleIDs.end(),
118  (unsigned int)pdgId);
119  return pos != ignoreParticleIDs.end() && *pos == (unsigned int)pdgId;
120 }
std::vector< unsigned int > ignoreParticleIDs
bool InputGenJetsParticleSelector::isParton ( int  pdgId) const

Definition at line 90 of file InputGenJetsParticleSelector.cc.

References common_cff::pdgId, and tausAsJets.

Referenced by fromResonance(), produce(), setPtMin(), and testPartonChildren().

90  {
91  pdgId = (pdgId > 0 ? pdgId : -pdgId) % 10000;
92  return (pdgId > 0 && pdgId < 6) ||
93  pdgId == 9 || (tausAsJets && pdgId == 15) || pdgId == 21;
94  // tops are not considered "regular" partons
95  // but taus eventually are (since they may hadronize later)
96 }
bool InputGenJetsParticleSelector::isResonance ( int  pdgId)
static

Definition at line 105 of file InputGenJetsParticleSelector.cc.

References common_cff::pdgId.

Referenced by fromResonance(), and setPtMin().

106 {
107  // gauge bosons and tops
108  pdgId = (pdgId > 0 ? pdgId : -pdgId) % 10000;
109  return (pdgId > 21 && pdgId <= 42) || pdgId == 6 || pdgId == 7 || pdgId == 8 ; //BUG! was 21. 22=gamma..
110 }
void InputGenJetsParticleSelector::produce ( edm::StreamID  ,
edm::Event evt,
const edm::EventSetup evtSetup 
) const
override

Definition at line 239 of file InputGenJetsParticleSelector.cc.

References edm::View< T >::begin(), DEFINE_FWK_MODULE, edm::View< T >::end(), excludeResonances, fromResonance(), GenHFHadronMatcher_cfi::genParticles, edm::Event::getByToken(), hasPartonChildren(), mps_fire::i, training_settings::idx, input_genpartcoll_token_, input_prunedgenpartcoll_token_, invalid, invalidateTree(), isIgnored(), isMiniAOD, isParton(), eostools::move(), reco::Candidate::numberOfDaughters(), HadronAndPartonSelector_cfi::particles, partonicFinalState, reco::Candidate::pdgId(), prunedGenParticles_cfi::prunedGenParticles, reco::Candidate::pt(), ptMin, edm::View< T >::ptrAt(), edm::Event::put(), findQualityFiles::size, and reco::Candidate::status().

239  {
240 
241 
242  auto selected_ = std::make_unique<reco::CandidatePtrVector>();
243 
245 
247  if(isMiniAOD)
248  {
249  evt.getByToken(input_prunedgenpartcoll_token_, prunedGenParticles );
250 
251  for (edm::View<reco::Candidate>::const_iterator iter=prunedGenParticles->begin();iter!=prunedGenParticles->end();++iter)
252  {
253  if(iter->status()!=1) // to avoid double-counting, skipping stable particles already contained in the collection of PackedGenParticles
254  particles.push_back(&*iter);
255  }
256  }
257 
259  evt.getByToken(input_genpartcoll_token_, genParticles );
260 
261  std::map<const reco::Candidate*,size_t> particlePtrIdxMap;
262 
263  for (edm::View<reco::Candidate>::const_iterator iter=genParticles->begin();iter!=genParticles->end();++iter){
264  particles.push_back(&*iter);
265  particlePtrIdxMap[&*iter] = (iter - genParticles->begin());
266  }
267 
268  std::sort(particles.begin(), particles.end());
269  unsigned int size = particles.size();
270 
271  ParticleBitmap selected(size, false);
272  ParticleBitmap invalid(size, false);
273 
274  for(unsigned int i = 0; i < size; i++) {
275  const reco::Candidate *particle = particles[i];
276  if (invalid[i])
277  continue;
278  if (particle->status() == 1) // selecting stable particles
279  selected[i] = true;
280  if (partonicFinalState && isParton(particle->pdgId())) {
281 
282  if (particle->numberOfDaughters()==0 &&
283  particle->status() != 1) {
284  // some brokenness in event...
285  invalid[i] = true;
286  }
287  else if (!hasPartonChildren(invalid, particles,
288  particle)) {
289  selected[i] = true;
290  invalidateTree(invalid, particles,particle); //this?!?
291  }
292  }
293 
294  }
295 
296  for(size_t idx = 0; idx < size; ++idx){
297  const reco::Candidate *particle = particles[idx];
298  if (!selected[idx] || invalid[idx]){
299  continue;
300  }
301 
302  if (excludeResonances &&
303  fromResonance(invalid, particles, particle)) {
304  invalid[idx] = true;
305  //cout<<"[INPUTSELECTOR] Invalidates FROM RESONANCE!: ["<<setw(4)<<idx<<"] "<<particle->pdgId()<<" "<<particle->pt()<<endl;
306  continue;
307  }
308 
309  if (isIgnored(particle->pdgId())){
310  continue;
311  }
312 
313 
314  if (particle->pt() >= ptMin){
315  selected_->push_back(genParticles->ptrAt(particlePtrIdxMap[particle]));
316  //cout<<"Finally we have: ["<<setw(4)<<idx<<"] "<<setw(4)<<particle->pdgId()<<" "<<particle->pt()<<endl;
317  }
318  }
319  evt.put(std::move(selected_));
320 }
bool hasPartonChildren(ParticleBitmap &invalid, const ParticleVector &p, const reco::Candidate *particle) const
size
Write out results.
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:125
edm::EDGetTokenT< reco::CandidateView > input_genpartcoll_token_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
Ptr< value_type > ptrAt(size_type i) const
virtual int status() const =0
status word
edm::EDGetTokenT< reco::CandidateView > input_prunedgenpartcoll_token_
const_iterator begin() const
virtual int pdgId() const =0
PDG identifier.
ResonanceState fromResonance(ParticleBitmap &invalid, const ParticleVector &p, const reco::Candidate *particle) const
virtual double pt() const =0
transverse momentum
static void invalidateTree(InputGenJetsParticleSelector::ParticleBitmap &invalid, const InputGenJetsParticleSelector::ParticleVector &p, const reco::Candidate *particle)
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
std::vector< const reco::Candidate * > ParticleVector
const_iterator end() const
virtual size_type numberOfDaughters() const =0
number of daughters
def move(src, dest)
Definition: eostools.py:511
void InputGenJetsParticleSelector::setExcludeFromResonancePids ( const std::vector< unsigned int > &  particleIDs)
private

Definition at line 84 of file InputGenJetsParticleSelector.cc.

References excludeFromResonancePids.

Referenced by InputGenJetsParticleSelector().

85 {
86  excludeFromResonancePids = particleIDs;
87  std::sort( excludeFromResonancePids.begin(), excludeFromResonancePids.end());
88 }
std::vector< unsigned int > excludeFromResonancePids
void InputGenJetsParticleSelector::setExcludeResonances ( bool  flag = true)
inline
void InputGenJetsParticleSelector::setIgnoredParticles ( const std::vector< unsigned int > &  particleIDs)
private

Definition at line 78 of file InputGenJetsParticleSelector.cc.

References ignoreParticleIDs.

Referenced by InputGenJetsParticleSelector().

79 {
80  ignoreParticleIDs = particleIDs;
81  std::sort(ignoreParticleIDs.begin(), ignoreParticleIDs.end());
82 }
std::vector< unsigned int > ignoreParticleIDs
void InputGenJetsParticleSelector::setPartonicFinalState ( bool  flag = true)
inline
void InputGenJetsParticleSelector::setPtMin ( double  ptMin)
inline
void InputGenJetsParticleSelector::setTausAsJets ( bool  flag = true)
inline
int InputGenJetsParticleSelector::testPartonChildren ( InputGenJetsParticleSelector::ParticleBitmap invalid,
const ParticleVector p,
const reco::Candidate particle 
) const
private

Definition at line 165 of file InputGenJetsParticleSelector.cc.

References reco::Candidate::daughter(), mps_fire::i, training_settings::idx, isHadron(), isParton(), npart, reco::Candidate::numberOfDaughters(), partIdx(), reco::Candidate::pdgId(), and mps_fire::result.

Referenced by hasPartonChildren(), and invalidateTree().

168 {
169  unsigned int npart=particle->numberOfDaughters();
170  if (!npart) {return 0;}
171 
172  for (unsigned int i=0;i<npart;++i){
173  unsigned int idx = partIdx(p,particle->daughter(i));
174  if (invalid[idx])
175  continue;
176  if (isParton((particle->daughter(i)->pdgId()))){
177  return 1;
178  }
179  if (isHadron((particle->daughter(i)->pdgId()))){
180  return -1;
181  }
182  int result = testPartonChildren(invalid,p,particle->daughter(i));
183  if (result) return result;
184  }
185  return 0;
186 }
static unsigned int partIdx(const InputGenJetsParticleSelector::ParticleVector &p, const reco::Candidate *particle)
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
double npart
Definition: HydjetWrapper.h:49
int testPartonChildren(ParticleBitmap &invalid, const ParticleVector &p, const reco::Candidate *particle) const
virtual int pdgId() const =0
PDG identifier.
virtual size_type numberOfDaughters() const =0
number of daughters

Member Data Documentation

std::vector<unsigned int> InputGenJetsParticleSelector::excludeFromResonancePids
private
bool InputGenJetsParticleSelector::excludeResonances
private
std::vector<unsigned int> InputGenJetsParticleSelector::ignoreParticleIDs
private
edm::EDGetTokenT<reco::CandidateView> InputGenJetsParticleSelector::input_genpartcoll_token_
private

Definition at line 96 of file InputGenJetsParticleSelector.h.

Referenced by InputGenJetsParticleSelector(), and produce().

edm::EDGetTokenT<reco::CandidateView> InputGenJetsParticleSelector::input_prunedgenpartcoll_token_
private

Definition at line 97 of file InputGenJetsParticleSelector.h.

Referenced by InputGenJetsParticleSelector(), and produce().

edm::InputTag InputGenJetsParticleSelector::inTag
private

Definition at line 78 of file InputGenJetsParticleSelector.h.

Referenced by InputGenJetsParticleSelector().

bool InputGenJetsParticleSelector::isMiniAOD
private

Definition at line 93 of file InputGenJetsParticleSelector.h.

Referenced by InputGenJetsParticleSelector(), and produce().

bool InputGenJetsParticleSelector::partonicFinalState
private
edm::InputTag InputGenJetsParticleSelector::prunedInTag
private

Definition at line 79 of file InputGenJetsParticleSelector.h.

Referenced by InputGenJetsParticleSelector().

double InputGenJetsParticleSelector::ptMin
private

Definition at line 94 of file InputGenJetsParticleSelector.h.

Referenced by getPtMin(), produce(), and setPtMin().

bool InputGenJetsParticleSelector::tausAsJets
private

Definition at line 92 of file InputGenJetsParticleSelector.h.

Referenced by getTausAndJets(), isParton(), and setTausAsJets().