00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef BDSPrimaryGeneratorAction_h
00012 #define BDSPrimaryGeneratorAction_h
00013
00014 #include "G4VUserPrimaryGeneratorAction.hh"
00015 #include "globals.hh"
00016 #include <fstream>
00017 #include "BDSSynchrotronRadiation.hh"
00018
00019 class G4ParticleGun;
00020 class G4Event;
00021 class BDSDetectorConstruction;
00022
00023
00024 class BDSPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
00025 {
00026 public:
00027 BDSPrimaryGeneratorAction(BDSDetectorConstruction*);
00028 ~BDSPrimaryGeneratorAction();
00029
00030 public:
00031 void GeneratePrimaries(G4Event*);
00032
00033 private:
00034 G4ParticleGun* particleGun;
00035 BDSDetectorConstruction* BDSDetector;
00036
00037 G4double weight;
00038
00039
00040 G4double beta_x,sig_z,KineticEnergy,
00041 gamma,beta_y,sig_dp,emit_x,emit_y,charge;
00042
00043 G4double sig_x,sig_xp,sig_y,sig_yp,sig_t;
00044
00045 std::ifstream InputBunchFile;
00046 std::ifstream ExtractBunchFile;
00047
00048 G4double logXfactor;
00049 G4double logYfactor;
00050
00051 G4double itsSynchCritEng;
00052 BDSSynchrotronRadiation* itsBDSSynchrotronRadiation;
00053
00054 };
00055
00056 #endif
00057
00058