#include <BeamHaloSource.h>
Public Member Functions | |
BeamHaloSource (const ParameterSet &, const InputSourceDescription &) | |
Constructor. | |
virtual | ~BeamHaloSource () |
Destructor. | |
Private Member Functions | |
bool | call_bh_set_parameters (int *ival, float *fval, const std::string cval_string) |
bool | call_ki_bhg_fill (int &iret, float &weight) |
bool | call_ki_bhg_init (long &seed) |
bool | call_ki_bhg_stat (int &iret) |
void | clear () |
virtual bool | produce (Event &e) |
Private Attributes | |
float | EG_MAX_ |
float | EG_MIN_ |
HepMC::GenEvent * | evt |
std::string | G3FNAME_ |
int | GENMOD_ |
int | IW_HAD_ |
int | IW_MUO_ |
int | LHC_B1_ |
int | LHC_B2_ |
Definition at line 22 of file BeamHaloSource.h.
BeamHaloSource::BeamHaloSource | ( | const ParameterSet & | pset, |
const InputSourceDescription & | desc | ||
) |
Constructor.
Definition at line 56 of file BeamHaloSource.cc.
References _BeamHalo_randomEngine, call_bh_set_parameters(), call_ki_bhg_init(), gather_cfg::cout, edm::ParameterSet::getUntrackedParameter(), and edm::ConfigurableInputSource::numberEventsInRun().
: GeneratedInputSource(pset, desc), evt(0) { int iparam[8]; float fparam[4]; std::string cparam; // -- from bhgctrl.inc iparam[0] = pset.getUntrackedParameter<int>("GENMOD"); iparam[1] = pset.getUntrackedParameter<int>("LHC_B1"); iparam[2] = pset.getUntrackedParameter<int>("LHC_B2"); iparam[3] = pset.getUntrackedParameter<int>("IW_MUO"); iparam[4] = pset.getUntrackedParameter<int>("IW_HAD"); iparam[5] = numberEventsInRun(); iparam[6] = pset.getUntrackedParameter<int>("OFFSET",0); iparam[7] = pset.getUntrackedParameter<int>("shift_bx"); fparam[0] = (float)pset.getUntrackedParameter<double>("EG_MIN"); fparam[1] = (float)pset.getUntrackedParameter<double>("EG_MAX"); fparam[2] = (float)pset.getUntrackedParameter<double>("BXNS"); fparam[3] = (float)pset.getUntrackedParameter<double>("W0",1.0); cparam = pset.getUntrackedParameter<std::string>("G3FNAME","input.txt"); call_bh_set_parameters(iparam,fparam,cparam); // -- Seed for randomnumbers Service<RandomNumberGenerator> rng; _BeamHalo_randomEngine = &(rng->getEngine()); long seed = (long)(rng->mySeed()); // -- initialisation call_ki_bhg_init(seed); produces<HepMCProduct>(); cout << "BeamHaloSource: starting event generation ... " << endl; }
BeamHaloSource::~BeamHaloSource | ( | ) | [virtual] |
Destructor.
Definition at line 50 of file BeamHaloSource.cc.
{ int iret=0; call_ki_bhg_stat(iret); }
bool BeamHaloSource::call_bh_set_parameters | ( | int * | ival, |
float * | fval, | ||
const std::string | cval_string | ||
) | [private] |
Definition at line 147 of file BeamHaloSource.cc.
References BHSETPARAM.
Referenced by BeamHaloSource().
{ BHSETPARAM(ival,fval,cval_string.c_str(),cval_string.length()); return true; }
bool BeamHaloSource::call_ki_bhg_fill | ( | int & | iret, |
float & | weight | ||
) | [private] |
Definition at line 157 of file BeamHaloSource.cc.
References KI_BHG_FILL.
Referenced by produce().
{ KI_BHG_FILL(iret,weight); return true; }
bool BeamHaloSource::call_ki_bhg_init | ( | long & | seed | ) | [private] |
Definition at line 152 of file BeamHaloSource.cc.
References KI_BHG_INIT.
Referenced by BeamHaloSource().
{ KI_BHG_INIT(seed); return true; }
bool BeamHaloSource::call_ki_bhg_stat | ( | int & | iret | ) | [private] |
Definition at line 162 of file BeamHaloSource.cc.
References KI_BHG_STAT.
{ KI_BHG_STAT(iret); return true; }
void BeamHaloSource::clear | ( | void | ) | [private] |
Definition at line 100 of file BeamHaloSource.cc.
{ }
bool BeamHaloSource::produce | ( | Event & | e | ) | [private, virtual] |
Implements edm::ConfigurableInputSource.
Definition at line 104 of file BeamHaloSource.cc.
References call_ki_bhg_fill(), edm::ConfigurableInputSource::event(), evt, configurableAnalysis::GenParticle, AlCaHLTBitMon_ParallelJobs::p, edm::Event::put(), CommonMethods::weight(), and wrapper.
{ // cout << "in produce " << endl; // auto_ptr<HepMCProduct> bare_product(new HepMCProduct()); // cout << "apres autoptr " << endl; int iret=0; float weight = 0; call_ki_bhg_fill(iret, weight); if( iret < 0 ) return false; // cout << "apres fortran " << endl; // HepMC::GenEvent* evt = conv.getGenEventfromHEPEVT(); // HepMC::GenEvent* evt = conv.read_next_event(); seems to be broken (?) evt = new HepMC::GenEvent(); for (int theindex = 1; theindex<=wrapper.number_entries(); theindex++) { HepMC::GenVertex* Vtx = new HepMC::GenVertex(HepMC::FourVector(wrapper.x(theindex),wrapper.y(theindex),wrapper.z(theindex),wrapper.t(theindex))); HepMC::FourVector p(wrapper.px(theindex),wrapper.py(theindex),wrapper.pz(theindex),wrapper.e(theindex)); HepMC::GenParticle* Part = new HepMC::GenParticle(p,wrapper.id(theindex),wrapper.status(theindex)); Vtx->add_particle_out(Part); evt->add_vertex(Vtx); } evt->set_event_number(event()); HepMC::WeightContainer& weights = evt -> weights(); weights.push_back(weight); // evt->print(); std::auto_ptr<HepMCProduct> CMProduct(new HepMCProduct()); if (evt) CMProduct->addHepMCData(evt ); e.put(CMProduct); return true; }
float edm::BeamHaloSource::EG_MAX_ [private] |
Definition at line 49 of file BeamHaloSource.h.
float edm::BeamHaloSource::EG_MIN_ [private] |
Definition at line 48 of file BeamHaloSource.h.
HepMC::GenEvent* edm::BeamHaloSource::evt [private] |
Definition at line 41 of file BeamHaloSource.h.
Referenced by produce().
std::string edm::BeamHaloSource::G3FNAME_ [private] |
Definition at line 50 of file BeamHaloSource.h.
int edm::BeamHaloSource::GENMOD_ [private] |
Definition at line 43 of file BeamHaloSource.h.
int edm::BeamHaloSource::IW_HAD_ [private] |
Definition at line 47 of file BeamHaloSource.h.
int edm::BeamHaloSource::IW_MUO_ [private] |
Definition at line 46 of file BeamHaloSource.h.
int edm::BeamHaloSource::LHC_B1_ [private] |
Definition at line 44 of file BeamHaloSource.h.
int edm::BeamHaloSource::LHC_B2_ [private] |
Definition at line 45 of file BeamHaloSource.h.