12 token_(consumes<edm::
HepMCProduct>(edm::
InputTag(iConfig.getUntrackedParameter(
"moduleLabel",std::
string(
"generator")),
"unsmeared"))),
13 particleID(iConfig.getUntrackedParameter(
"ParticleID", 0)),
14 minpcut(iConfig.getUntrackedParameter(
"MinP", 0.)),
15 maxpcut(iConfig.getUntrackedParameter(
"MaxP", 10000.)),
16 minptcut(iConfig.getUntrackedParameter(
"MinPt", 0.)),
17 maxptcut(iConfig.getUntrackedParameter(
"MaxPt", 10000.)),
18 minetacut(iConfig.getUntrackedParameter(
"MinEta", -10.)),
19 maxetacut(iConfig.getUntrackedParameter(
"MaxEta", 10.)),
20 minrapcut(iConfig.getUntrackedParameter(
"MinRapidity", -20.)),
21 maxrapcut(iConfig.getUntrackedParameter(
"MaxRapidity", 20.)),
22 minphicut(iConfig.getUntrackedParameter(
"MinPhi", -3.5)),
23 maxphicut(iConfig.getUntrackedParameter(
"MaxPhi", 3.5)),
24 status(iConfig.getUntrackedParameter(
"Status", 0)),
25 motherID(iConfig.getUntrackedParameter(
"MotherID", 0)),
26 processID(iConfig.getUntrackedParameter(
"ProcessID", 0))
50 bool accepted =
false;
54 const HepMC::GenEvent * myGenEvent = evt->GetEvent();
58 for ( HepMC::GenEvent::particle_const_iterator
p = myGenEvent->particles_begin();
59 p != myGenEvent->particles_end(); ++
p ) {
61 rapidity = 0.5*
log( ((*p)->momentum().e()+(*p)->momentum().pz()) / ((*p)->momentum().e()-(*p)->momentum().pz()) );
64 && (*p)->momentum().rho() >
minpcut
65 && (*p)->momentum().rho() <
maxpcut
66 && (*p)->momentum().perp() >
minptcut
67 && (*p)->momentum().perp() <
maxptcut
81 if ((*p)->status() ==
status)
85 HepMC::GenParticle* mother = (*((*p)->production_vertex()->particles_in_const_begin()));
118 }
else { accepted =
true; }
121 return true; }
else {
return false;}
PythiaFilter(const edm::ParameterSet &)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::EDGetTokenT< edm::HepMCProduct > token_
Abs< T >::type abs(const T &t)
virtual bool filter(edm::Event &, const edm::EventSetup &)