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