15 particleID(iConfig.getUntrackedParameter(
"ParticleID", 0)),
16 chargeconju(iConfig.getUntrackedParameter(
"ChargeConjugation",
true)),
17 ndaughters(iConfig.getUntrackedParameter(
"NumberDaughters", 0)),
18 minptcut(iConfig.getUntrackedParameter(
"MinPt", 0.)),
19 maxptcut(iConfig.getUntrackedParameter(
"MaxPt", 14000.)),
20 minetacut(iConfig.getUntrackedParameter(
"MinEta", -10.)),
21 maxetacut(iConfig.getUntrackedParameter(
"MaxEta", 10.))
25 defdauID.push_back(0);
28 edm::LogInfo(
"PythiaDauFilter::PythiaDauFilter") <<
"Creating pythia8 instance for particle properties" << endl;
57 for ( HepMC::GenEvent::particle_const_iterator
p = myGenEvent->particles_begin();
58 p != myGenEvent->particles_end(); ++
p ) {
63 if ( (*p)->end_vertex() ) {
64 for ( HepMC::GenVertex::particle_iterator
69 for(
unsigned int i=0;
i<
dauIDs.size(); ++
i) {
70 if( (*des)->pdg_id() !=
dauIDs[
i] )
continue ;
71 if( (*des)->momentum().perp() >
minptcut &&
72 (*des)->momentum().perp() <
maxptcut &&
91 for ( HepMC::GenEvent::particle_const_iterator
p = myGenEvent->particles_begin();
92 p != myGenEvent->particles_end(); ++
p ) {
97 if ( (*p)->end_vertex() ) {
98 for ( HepMC::GenVertex::particle_iterator
103 for(
unsigned int i=0;
i<
dauIDs.size(); ++
i) {
106 if( (*des)->pdg_id() != IDanti )
continue ;
107 if( (*des)->momentum().perp() >
minptcut &&
108 (*des)->momentum().perp() <
maxptcut &&
126 return true; }
else {
return false;}
std::unique_ptr< Pythia8::Pythia > fLookupGen
T getUntrackedParameter(std::string const &, T const &) const
std::vector< int > dauIDs
bool getByToken(EDGetToken token, Handle< PROD > &result) const
PythiaDauFilter(const edm::ParameterSet &)
const edm::EDGetTokenT< edm::HepMCProduct > token_
const HepMC::GenEvent * GetEvent() const
~PythiaDauFilter() override
bool accepted(std::vector< std::string_view > const &, std::string_view)
bool filter(edm::StreamID, edm::Event &, const edm::EventSetup &) const override