00001 #ifndef BeamHalo_Producer_h 00002 #define BeamHalo_Producer_h 00003 00004 #include <map> 00005 #include <string> 00006 00007 #include "HepMC/GenEvent.h" 00008 00009 #include "CLHEP/Random/RandFlat.h" 00010 00011 #include "FWCore/Framework/interface/EDProducer.h" 00012 #include "FWCore/Framework/interface/Event.h" 00013 #include "FWCore/Framework/interface/Run.h" 00014 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00015 00016 namespace edm 00017 { 00018 class BeamHaloProducer : public EDProducer { 00019 public: 00020 00022 BeamHaloProducer(const ParameterSet &); 00024 virtual ~BeamHaloProducer(); 00025 00026 private: 00027 bool call_ki_bhg_init(long& seed); 00028 bool call_bh_set_parameters(int* ival, float* fval,const std::string cval_string); 00029 bool call_ki_bhg_fill(int& iret, float& weight); 00030 bool call_ki_bhg_stat(int& iret); 00031 00032 private: 00033 00034 virtual void produce(Event & e, const EventSetup & es); 00035 virtual void endRun(Run & r, const EventSetup & es); 00036 00037 void clear(); 00038 00039 HepMC::GenEvent *evt; 00040 00041 int GENMOD_; 00042 int LHC_B1_; 00043 int LHC_B2_; 00044 int IW_MUO_; 00045 int IW_HAD_; 00046 float EG_MIN_; 00047 float EG_MAX_; 00048 std::string G3FNAME_; 00049 }; 00050 00051 } 00052 00053 #endif