55 produces<reco::GenParticleRefVector>();
58 if ( iConfig.
exists(
"acceptNoDaughters") ) {
59 acceptNoDaughters = iConfig.
getParameter<
bool>(
"acceptNoDaughters");
61 acceptNoDaughters=
false;
63 if ( iConfig.
exists(
"skipFirstN") ) {
64 skipFirstN = iConfig.
getParameter<
unsigned int>(
"skipFirstN");
68 if ( iConfig.
exists(
"withTop") ) {
88 iEvent.
getByToken (tokenGenParticles_, particles );
89 edm::LogVerbatim(
"PartonSelector") <<
"=== GenParticle size:" << particles->size();
94 for (
size_t m = 0;
m < particles->size();
m++) {
97 if (
m<skipFirstN)
continue;
101 bool isAParton =
false;
102 bool isALepton =
false;
109 (flavour == 6 && withTop) ||
110 flavour == 21 ) isAParton =
true;
116 flavour == 16 ) isALepton =
true;
120 if( aParticle.
status() == 3 && isAParton ) {
126 int nparton_daughters = 0;
132 if( (daughterFlavour == 1 || daughterFlavour == 2 || daughterFlavour == 3 ||
133 daughterFlavour == 4 || daughterFlavour == 5 || daughterFlavour == 6 || daughterFlavour == 21)) {
138 if(nparton_daughters == 0){
148 if( withLeptons && aParticle.
status() == 3 && isALepton ) {
155 iEvent.
put( thePartons );
T getParameter(std::string const &) const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
virtual int pdgId() const GCC11_FINAL
PDG identifier.
#define DEFINE_FWK_MODULE(type)
edm::Ref< GenParticleCollection > GenParticleRef
persistent reference to a GenParticle
bool exists(std::string const ¶meterName) const
checks if a parameter exists
edm::EDGetTokenT< reco::GenParticleCollection > tokenGenParticles_
virtual int status() const GCC11_FINAL
status word
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
virtual size_t numberOfDaughters() const
number of daughters
virtual const Candidate * daughter(size_type) const
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
Abs< T >::type abs(const T &t)
PartonSelector(const edm::ParameterSet &)
virtual int pdgId() const =0
PDG identifier.
virtual void produce(edm::Event &, const edm::EventSetup &) override
int flavour(const Candidate &part)