![]() |
![]() |
#include <CosmicGenFilterLowE.h>
Public Member Functions | |
CosmicGenFilterLowE (const edm::ParameterSet &conf) | |
bool | filter (edm::Event &iEvent, edm::EventSetup const &c) |
virtual | ~CosmicGenFilterLowE () |
Private Attributes | |
TRandom2 | RanGen2 |
Definition at line 16 of file CosmicGenFilterLowE.h.
CosmicGenFilterLowE::CosmicGenFilterLowE | ( | const edm::ParameterSet & | conf | ) | [explicit] |
Definition at line 15 of file CosmicGenFilterLowE.cc.
{ }
virtual CosmicGenFilterLowE::~CosmicGenFilterLowE | ( | ) | [inline, virtual] |
Definition at line 19 of file CosmicGenFilterLowE.h.
{}
bool CosmicGenFilterLowE::filter | ( | edm::Event & | iEvent, |
edm::EventSetup const & | c | ||
) | [virtual] |
Implements edm::EDFilter.
Definition at line 19 of file CosmicGenFilterLowE.cc.
References edm::Event::getByLabel(), i, and funct::pow().
{ edm::Handle<edm::HepMCProduct>HepMCEvt; iEvent.getByLabel("generator","",HepMCEvt); const HepMC::GenEvent* MCEvt = HepMCEvt->GetEvent(); double Ene = 0; for(HepMC::GenEvent::particle_const_iterator i=MCEvt->particles_begin(); i != MCEvt->particles_end();++i) { Ene = (*i)->momentum().e(); } float r1; double prob; prob = RanGen2.Rndm(); r1 = float(prob); float fpmax = 2372.; float fp; double ten = 10.0; float fp3gev = 650.; //...needed for the renormalization; if (Ene < 3) { fp = 90.*(1.48*((pow(Ene,-1.5))* pow(ten,(1.189+0.9604*log10(Ene)-1.114*log10(Ene)*log10(Ene) +0.1775*log10(Ene)*log10(Ene)*log10(Ene))))); if (r1 < (fp/fpmax)) return true; else return false; } else { if ( r1 < (fp3gev/fpmax)) { return true; } else return false; } }
TRandom2 CosmicGenFilterLowE::RanGen2 [private] |
Definition at line 24 of file CosmicGenFilterLowE.h.