00001 #ifndef BDSBunchRing_h 00002 #define BDSBunchRing_h 00003 00004 #include "BDSBunchInterface.hh" 00005 #include "Randomize.hh" 00006 00007 namespace CLHEP { 00008 class RandFlat; 00009 } 00010 00011 class BDSBunchRing : public BDSBunchInterface { 00012 protected : 00013 G4double rMin; 00014 G4double rMax; 00015 CLHEP::RandFlat *FlatGen; 00016 00017 public: 00018 BDSBunchRing(); 00019 BDSBunchRing(G4double rMin, G4double rMax, 00020 G4double X0, G4double Y0, G4double Z0, G4double T0, 00021 G4double Xp0, G4double Yp0, G4double Zp0, 00022 G4double sigmaT, G4double sigmaE); 00023 ~BDSBunchRing(); 00024 void SetOptions(struct Options& opt); 00025 void GetNextParticle(G4double& x0, G4double& y0, G4double& z0, 00026 G4double& xp, G4double& yp, G4double& zp, 00027 G4double& t , G4double& E, G4double& weight); 00028 00029 G4double GetRMin() {return rMin;} 00030 G4double GetRMax() {return rMax;} 00031 protected: 00032 void SetRMin(G4double rMinIn) { rMin = rMinIn;} 00033 void SetRMax(G4double rMaxIn) { rMax = rMaxIn;} 00034 00035 }; 00036 00037 #endif