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" 21 const G4String&
processName =
"FullModelHadronicProcess");
26 G4bool
IsApplicable(
const G4ParticleDefinition& aP)
override;
28 G4VParticleChange *
PostStepDoIt(
const G4Track &aTrack,
const G4Step &aStep)
override;
40 const G4Element *anElement,
43 G4double
GetMeanFreePath(
const G4Track& aTrack, G4double, G4ForceCondition*)
override;
47 const G4HadProjectile *originalIncident,
48 const G4DynamicParticle *originalTarget,
49 G4ReactionProduct &modifiedOriginal,
50 G4Nucleus &targetNucleus,
51 G4ReactionProduct ¤tParticle,
52 G4ReactionProduct &targetParticle,
53 G4bool &incidentHasChanged,
54 G4bool &targetHasChanged,
55 G4bool quasiElastic );
58 const G4ReactionProduct ¤tParticle,
59 const G4ReactionProduct &targetParticle,
60 G4ReactionProduct &leadParticle );
62 void Rotate(G4FastVector<G4ReactionProduct,MYGHADLISTSIZE> &vec, G4int &vecLen);
64 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