Warning, file /include/Geant4/G4BinaryLightIonReaction.hh was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
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 G4BinaryLightIonReaction_h
0027 #define G4BinaryLightIonReaction_h 1
0028
0029 #include "G4BinaryCascade.hh"
0030 #include "G4PreCompoundModel.hh"
0031 #include "G4HadFinalState.hh"
0032 #include "G4ExcitationHandler.hh"
0033
0034 class G4BinaryLightIonReaction : public G4HadronicInteraction
0035 {
0036 public:
0037 G4BinaryLightIonReaction(G4VPreCompoundModel* ptr = 0);
0038 virtual ~G4BinaryLightIonReaction();
0039 G4HadFinalState* ApplyYourself(const G4HadProjectile& aTrack,
0040 G4Nucleus& theNucleus);
0041 inline void SetPrecompound(G4VPreCompoundModel* ptr);
0042 inline void SetDeExcitation(G4ExcitationHandler* ptr);
0043
0044 virtual void ModelDescription(std::ostream&) const ;
0045
0046 private:
0047 G4bool EnergyAndMomentumCorrector(G4ReactionProductVector* products,
0048 G4LorentzVector& TotalCollisionMom);
0049 G4bool SetLighterAsProjectile(G4LorentzVector & mom,const G4LorentzRotation & toBreit);
0050 G4ReactionProductVector * FuseNucleiAndPrompound(const G4LorentzVector & mom);
0051 G4ReactionProductVector * Interact(G4LorentzVector & mom, const G4LorentzRotation & );
0052 G4double GetProjectileExcitation();
0053 void DeExciteSpectatorNucleus(G4ReactionProductVector * spectators, G4ReactionProductVector * cascaders,
0054 G4double theStatisticalExEnergy, G4LorentzVector & momentum);
0055 G4LorentzVector SortResult(G4ReactionProductVector * result,G4ReactionProductVector * spectators,G4ReactionProductVector * cascaders);
0056
0057 G4BinaryCascade* theModel;
0058 G4ExcitationHandler* theHandler;
0059 G4VPreCompoundModel* theProjectileFragmentation;
0060 G4HadFinalState theResult;
0061 G4int pA, pZ, tA, tZ,spectatorA,spectatorZ;
0062 G4Fancy3DNucleus * projectile3dNucleus, * target3dNucleus;
0063 G4FermiMomentum theFermi;
0064 G4LorentzVector pInitialState, pFinalState;
0065
0066 G4bool debug_G4BinaryLightIonReactionResults;
0067 static G4int theBLIR_ID;
0068 };
0069 inline void G4BinaryLightIonReaction::SetPrecompound(G4VPreCompoundModel* ptr)
0070 {
0071 if(ptr) { theProjectileFragmentation = ptr; }
0072 theHandler = theProjectileFragmentation->GetExcitationHandler();
0073 }
0074 inline void G4BinaryLightIonReaction::SetDeExcitation(G4ExcitationHandler* ptr)
0075 {
0076 theProjectileFragmentation->SetExcitationHandler(ptr);
0077 theHandler = ptr;
0078 }
0079
0080 #endif