CMS 3D CMS Logo

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

#include <GenJetParticleSelector.h>

Public Member Functions

 GenJetParticleSelector (const edm::ParameterSet &, edm::ConsumesCollector &iC)
 
void init (const edm::EventSetup &)
 
bool operator() (const reco::Candidate &)
 

Private Types

typedef std::vector< PdtEntryvpdt
 

Private Attributes

bool bInclude_
 
bool partons_
 
vpdt pdtList_
 
std::set< int > pIds_
 
bool stableOnly_
 

Detailed Description

Definition at line 23 of file GenJetParticleSelector.h.

Member Typedef Documentation

typedef std::vector<PdtEntry> GenJetParticleSelector::vpdt
private

Definition at line 30 of file GenJetParticleSelector.h.

Constructor & Destructor Documentation

GenJetParticleSelector::GenJetParticleSelector ( const edm::ParameterSet cfg,
edm::ConsumesCollector iC 
)

Definition at line 10 of file GenJetParticleSelector.cc.

References bInclude_, Exception, genCandidates_cfi::excludeList, spr::find(), newFWLiteAna::found, edm::ParameterSet::getParameter(), edm::ParameterSet::getParameterNamesForType(), partons_, pdtList_, and stableOnly_.

11  : stableOnly_(cfg.getParameter<bool>("stableOnly")), partons_(false), bInclude_(false) {
12  const string excludeString("excludeList");
13  const string includeString("includeList");
14  vpdt includeList, excludeList;
15  vector<string> vPdtParams = cfg.getParameterNamesForType<vpdt>();
16  bool found = std::find(vPdtParams.begin(), vPdtParams.end(), includeString) != vPdtParams.end();
17  if (found)
18  includeList = cfg.getParameter<vpdt>(includeString);
19  found = find(vPdtParams.begin(), vPdtParams.end(), excludeString) != vPdtParams.end();
20  if (found)
21  excludeList = cfg.getParameter<vpdt>(excludeString);
22  const string partonsString("partons");
23  vector<string> vBoolParams = cfg.getParameterNamesForType<bool>();
24  found = find(vBoolParams.begin(), vBoolParams.end(), partonsString) != vBoolParams.end();
25  if (found)
26  partons_ = cfg.getParameter<bool>(partonsString);
27  bool bExclude = false;
28  if (!includeList.empty())
29  bInclude_ = true;
30  if (!excludeList.empty())
31  bExclude = true;
32 
33  if (bInclude_ && bExclude) {
34  throw cms::Exception("ConfigError", "not allowed to use both includeList and excludeList at the same time\n");
35  } else if (bInclude_) {
36  pdtList_ = includeList;
37  } else {
39  }
40  if (stableOnly_ && partons_) {
41  throw cms::Exception("ConfigError", "not allowed to have both stableOnly and partons true at the same time\n");
42  }
43 }
T getParameter(std::string const &) const
std::vector< PdtEntry > vpdt
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
std::vector< std::string > getParameterNamesForType(bool trackiness=true) const
Definition: ParameterSet.h:168

Member Function Documentation

void GenJetParticleSelector::init ( const edm::EventSetup es)

Definition at line 57 of file GenJetParticleSelector.cc.

References mps_fire::i, and pdtList_.

Referenced by reco::modules::GenJetParticleSelectorEventSetupInit::init().

57  {
58  for (vpdt::iterator i = pdtList_.begin(); i != pdtList_.end(); ++i)
59  i->setup(es);
60 }
bool GenJetParticleSelector::operator() ( const reco::Candidate p)

Definition at line 45 of file GenJetParticleSelector.cc.

References funct::abs(), bInclude_, reco::Candidate::daughter(), reco::Candidate::numberOfDaughters(), partons_, reco::Candidate::pdgId(), pIds_, stableOnly_, mps_update::status, and reco::Candidate::status().

45  {
46  int status = p.status();
47  int id = abs(p.pdgId());
48  if ((!stableOnly_ || status == 1) && !partons_ && ((pIds_.find(id) == pIds_.end()) ^ bInclude_))
49  return true;
50  else if (partons_ && (p.numberOfDaughters() > 0 && (p.daughter(0)->pdgId() == 91 || p.daughter(0)->pdgId() == 92)) &&
51  (((pIds_.find(id) == pIds_.end()) ^ bInclude_)))
52  return true;
53  else
54  return false;
55 }
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
virtual int status() const =0
status word
virtual int pdgId() const =0
PDG identifier.
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
virtual size_type numberOfDaughters() const =0
number of daughters

Member Data Documentation

bool GenJetParticleSelector::bInclude_
private

Definition at line 34 of file GenJetParticleSelector.h.

Referenced by GenJetParticleSelector(), and operator()().

bool GenJetParticleSelector::partons_
private

Definition at line 32 of file GenJetParticleSelector.h.

Referenced by GenJetParticleSelector(), and operator()().

vpdt GenJetParticleSelector::pdtList_
private

Definition at line 33 of file GenJetParticleSelector.h.

Referenced by GenJetParticleSelector(), and init().

std::set<int> GenJetParticleSelector::pIds_
private

Definition at line 35 of file GenJetParticleSelector.h.

Referenced by operator()().

bool GenJetParticleSelector::stableOnly_
private

Definition at line 31 of file GenJetParticleSelector.h.

Referenced by GenJetParticleSelector(), and operator()().