File indexing completed on 2025-01-18 09:58:40
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 G4MesonAbsorption_hh
0027 #define G4MesonAbsorption_hh
0028
0029 #include <vector>
0030 #include "G4CollisionInitialState.hh"
0031 #include "G4KineticTrack.hh"
0032 #include "G4BCAction.hh"
0033
0034 class G4MesonAbsorption : public G4BCAction
0035 {
0036 public:
0037 G4MesonAbsorption(){}
0038 virtual ~G4MesonAbsorption(){}
0039
0040 virtual const std::vector<G4CollisionInitialState *> &
0041 GetCollisions(G4KineticTrack * aProjectile,
0042 std::vector<G4KineticTrack *> & someCandidates,
0043 G4double aCurrentTime);
0044
0045 virtual G4KineticTrackVector *
0046 GetFinalState(G4KineticTrack * aProjectile,
0047 std::vector<G4KineticTrack *> & theTargets);
0048
0049 G4CollisionInitialState * GetCollision(G4KineticTrack * projectile,
0050 std::vector<G4KineticTrack *> targets);
0051
0052 private:
0053 G4MesonAbsorption(const G4MesonAbsorption &);
0054 G4MesonAbsorption & operator= (const G4MesonAbsorption &);
0055
0056 private:
0057 G4double GetTimeToAbsorption(const G4KineticTrack& trk1, const G4KineticTrack& trk2);
0058
0059 void FindAndFillCluster(G4KineticTrackVector & result,
0060 G4KineticTrack * aProjectile,
0061 std::vector<G4KineticTrack *> & someCandidates);
0062
0063 G4double AbsorptionCrossSection(const G4KineticTrack & trk1, const G4KineticTrack & trk2);
0064 private:
0065 std::vector<G4CollisionInitialState *> theCollisions;
0066
0067 };
0068
0069 #endif