00001 #ifndef COSMICGENERATOR_COSMICGUN_H 00002 #define COSMICGENERATOR_COSMICGUN_H 00003 00004 #include "CLHEP/Vector/LorentzVector.h" 00005 using namespace CLHEP; 00006 class CosmicGun{ 00007 public: 00008 static CosmicGun* GetCosmicGun(void); 00009 HepLorentzVector GenerateEvent(void); 00010 HepLorentzVector GenerateVertex(void); 00011 void SetEnergyRange(float emin, float emax); 00012 void SetCosCut(float ctcut); 00013 void PrintLevel(int printevt,int printmod); 00014 int GetMuonCharge(void); 00015 float InitializeGenerator(); // returns flux after all cuts in cm2/s 00016 private: 00017 CosmicGun(void); 00018 static CosmicGun* mpointer; 00019 00020 long int m_event; 00021 long int m_printevt, m_printmod; 00022 float m_emin, m_emax; 00023 float m_coscut; 00024 }; 00025 00026 00027 #endif