File indexing completed on 2025-12-22 10:11:46
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026 #ifndef G4BCLateParticle_h
0027 #define G4BCLateParticle_h 1
0028
0029 #include <vector>
0030
0031 #include "G4BCAction.hh"
0032 #include "G4CollisionInitialState.hh"
0033 #include "G4KineticTrack.hh"
0034 #include "G4KineticTrackVector.hh"
0035
0036 class G4BCLateParticle : public G4BCAction
0037 {
0038 public:
0039
0040 G4BCLateParticle(){}
0041 virtual ~G4BCLateParticle(){}
0042 virtual const std::vector<G4CollisionInitialState *> &
0043 GetCollisions(G4KineticTrack * aProjectile,
0044 std::vector<G4KineticTrack *> & ,
0045 G4double theCurrentTime)
0046 {
0047 theColl.clear();
0048 G4double ctime=std::max(0.,aProjectile->GetFormationTime()) + theCurrentTime;
0049
0050 G4KineticTrackVector noTarget;
0051 G4CollisionInitialState * aLate =
0052 new G4CollisionInitialState(ctime,
0053 aProjectile, noTarget, this);
0054 theColl.push_back(aLate);
0055 return theColl;
0056 }
0057
0058 virtual G4KineticTrackVector * GetFinalState(G4KineticTrack * aProjectile,
0059 std::vector<G4KineticTrack *> & )
0060 {
0061 G4KineticTrackVector * result = new G4KineticTrackVector;
0062 G4KineticTrack * lateParticle=new G4KineticTrack(*aProjectile);
0063 result->push_back(lateParticle);
0064 return result;
0065 }
0066
0067 private:
0068 std::vector<G4CollisionInitialState *> theColl;
0069 };
0070
0071 #endif