1 #ifndef SimG4Core_CustomPhysics_FullModelHadronicProcess_h
2 #define SimG4Core_CustomPhysics_FullModelHadronicProcess_h 1
5 #include "G4VDiscreteProcess.hh"
6 #include "G4EnergyRangeManager.hh"
7 #include "G4Nucleus.hh"
8 #include "G4ReactionProduct.hh"
10 #include "G4HadronicException.hh"
22 G4bool
IsApplicable(
const G4ParticleDefinition &aP)
override;
24 G4VParticleChange *
PostStepDoIt(
const G4Track &aTrack,
const G4Step &aStep)
override;
34 const G4Element *anElement,
37 G4double
GetMeanFreePath(
const G4Track &aTrack, G4double, G4ForceCondition *)
override;
41 const G4HadProjectile *originalIncident,
42 const G4DynamicParticle *originalTarget,
43 G4ReactionProduct &modifiedOriginal,
44 G4Nucleus &targetNucleus,
45 G4ReactionProduct ¤tParticle,
46 G4ReactionProduct &targetParticle,
47 G4bool &incidentHasChanged,
48 G4bool &targetHasChanged,
52 const G4ReactionProduct &targetParticle,
53 G4ReactionProduct &leadParticle);
55 void Rotate(G4FastVector<G4ReactionProduct, MYGHADLISTSIZE> &vec, G4int &vecLen);
57 const G4DynamicParticle *
FindRhadron(G4ParticleChange *);
G4bool MarkLeadingStrangeParticle(const G4ReactionProduct ¤tParticle, const G4ReactionProduct &targetParticle, G4ReactionProduct &leadParticle)
G4VParticleChange * PostStepDoIt(const G4Track &aTrack, const G4Step &aStep) override
virtual G4double GetMicroscopicCrossSection(const G4DynamicParticle *aParticle, const G4Element *anElement, G4double aTemp)
G4ParticleDefinition * newParticle
G4double GetMeanFreePath(const G4Track &aTrack, G4double, G4ForceCondition *) override
~FullModelHadronicProcess() override
void CalculateMomenta(G4FastVector< G4ReactionProduct, MYGHADLISTSIZE > &vec, G4int &vecLen, const G4HadProjectile *originalIncident, const G4DynamicParticle *originalTarget, G4ReactionProduct &modifiedOriginal, G4Nucleus &targetNucleus, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, G4bool &targetHasChanged, G4bool quasiElastic)
FullModelHadronicProcess(G4ProcessHelper *aHelper, const G4String &processName="FullModelHadronicProcess")
G4ProcessHelper * theHelper
const G4ParticleDefinition * theParticle
void Rotate(G4FastVector< G4ReactionProduct, MYGHADLISTSIZE > &vec, G4int &vecLen)
const G4DynamicParticle * FindRhadron(G4ParticleChange *)
G4ParticleChange theParticleChange
G4bool IsApplicable(const G4ParticleDefinition &aP) override