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