00001 #ifndef BDSBunchPtc_h 00002 #define BDSBunchPtc_h 00003 00004 #include <vector> 00005 00006 #include "BDSBunchInterface.hh" 00007 #include "BDSDebug.hh" 00008 00009 class BDSBunchPtc : public BDSBunchInterface { 00010 private: 00011 G4int nRays; 00012 G4String fileName; 00013 00014 G4int iRay; 00015 std::vector<double*> ptcData; 00016 00017 void LoadPtcFile(); 00018 void SetDistribFile(G4String distribFileNameIn); 00019 00020 public: 00021 BDSBunchPtc(); 00022 ~BDSBunchPtc(); 00023 virtual void SetOptions(struct Options& opt); 00024 virtual void GetNextParticle(G4double& x0, G4double& y0, G4double& z0, 00025 G4double& xp, G4double& yp, G4double& zp, 00026 G4double& t , G4double& E, G4double& weight); 00027 }; 00028 00029 #endif