Geant4-11
Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | Static Private Attributes
G4hhElastic Class Reference

#include <G4hhElastic.hh>

Inheritance diagram for G4hhElastic:
G4HadronElastic G4HadronicInteraction

Public Member Functions

void ActivateFor (const G4Element *anElement)
 
void ActivateFor (const G4Material *aMaterial)
 
G4HadFinalStateApplyYourself (const G4HadProjectile &aTrack, G4Nucleus &targetNucleus) override
 
virtual void BuildPhysicsTable (const G4ParticleDefinition &)
 
void BuildTableT (G4ParticleDefinition *target, G4ParticleDefinition *projectile)
 
void BuildTableTest (G4ParticleDefinition *target, G4ParticleDefinition *projectile, G4double plab)
 
void CalculateBQ (G4double b)
 
void CalculateBqQ12 (G4double b)
 
void CalculateBqQ123 (G4double b)
 
void CalculateBqQ13 (G4double b)
 
G4double ComputeMomentumCMS (const G4ParticleDefinition *p, G4double plab, G4int Z, G4int A)
 
void DeActivateFor (const G4Element *anElement)
 
void DeActivateFor (const G4Material *aMaterial)
 
 G4hhElastic ()
 
 G4hhElastic (G4ParticleDefinition *target, G4ParticleDefinition *projectile)
 
 G4hhElastic (G4ParticleDefinition *target, G4ParticleDefinition *projectile, G4double plab)
 
G4complex GetAqq ()
 
G4complex GetAQQ ()
 
G4complex GetAqQ ()
 
G4double GetBq ()
 
G4double GetBQ ()
 
G4double GetBqQ ()
 
G4double GetCofF2 ()
 
G4double GetCofF3 ()
 
G4double GetCofS1 ()
 
G4double GetCofS2 ()
 
G4double GetCofS3 ()
 
G4double GetdsdtF1 (G4double s, G4double q)
 
G4double GetdsdtF12 (G4double s, G4double q)
 
G4double GetdsdtF123 (G4double q)
 
G4double GetdsdtF123qQgG (G4double q)
 
G4double GetdsdtF12qQgG (G4double s, G4double q)
 
G4double GetdsdtF13qQG (G4double s, G4double q)
 
G4double GetdsdtF1qQgG (G4double s, G4double q)
 
virtual std::pair< G4double, G4doubleGetEnergyMomentumCheckLevels () const
 
G4double GetExpRatioF123 (G4double s, G4double q)
 
G4complex GetF1 (G4double qp)
 
G4complex GetF1qQgG (G4double qp)
 
G4complex GetF2 (G4double qp)
 
G4complex GetF2qQgG (G4double qp)
 
G4complex GetF3 (G4double qp)
 
G4complex GetF3qQgG (G4double qp)
 
virtual const std::pair< G4double, G4doubleGetFatalEnergyCheckLevels () const
 
G4double GetImCof ()
 
G4double GetMaxEnergy () const
 
G4double GetMaxEnergy (const G4Material *aMaterial, const G4Element *anElement) const
 
G4double GetMinEnergy () const
 
G4double GetMinEnergy (const G4Material *aMaterial, const G4Element *anElement) const
 
const G4StringGetModelName () const
 
G4double GetOpticalRatio ()
 
G4double GetRA ()
 
G4double GetRB ()
 
G4double GetRecoilEnergyThreshold () const
 
G4double GetRg ()
 
G4double GetRG ()
 
G4double GetRhoReIm ()
 
G4double GetRq ()
 
G4double GetRQ ()
 
G4double GetSlopeCof (const G4int pdg)
 
G4double GetSpp ()
 
G4double GetTransfer (G4int iMomentum, G4int iTransfer, G4double position)
 
G4int GetVerboseLevel () const
 
void Initialise ()
 
virtual void InitialiseModel ()
 
virtual G4bool IsApplicable (const G4HadProjectile &, G4Nucleus &)
 
G4bool IsBlocked (const G4Element *anElement) const
 
G4bool IsBlocked (const G4Material *aMaterial) const
 
G4double LowestEnergyLimit () const
 
void ModelDescription (std::ostream &) const override
 
G4bool operator!= (const G4HadronicInteraction &right) const =delete
 
G4bool operator== (const G4HadronicInteraction &right) const =delete
 
G4complex Phi13 ()
 
G4complex Phi14 ()
 
G4complex Phi23 ()
 
G4complex Phi24 ()
 
G4complex Pomeron ()
 
G4double SampleBisectionalT (const G4ParticleDefinition *p, G4double plab)
 
G4double SampleInvariantT (const G4ParticleDefinition *p, G4double plab, G4int, G4int)
 
G4double SampleTest (G4double tMin)
 
void SetAlphaP (G4double a)
 
void SetBq (G4double b)
 
void SetBQ (G4double b)
 
void SetBqQ (G4double b)
 
void SetCofF2 (G4double f)
 
void SetCofF3 (G4double f)
 
void SetEnergyMomentumCheckLevels (G4double relativeLevel, G4double absoluteLevel)
 
void SetEta (G4double E)
 
void SetImCof (G4double a)
 
void SetLambda (G4double L)
 
void SetLowestEnergyLimit (G4double value)
 
void SetMaxEnergy (const G4double anEnergy)
 
void SetMaxEnergy (G4double anEnergy, const G4Element *anElement)
 
void SetMaxEnergy (G4double anEnergy, const G4Material *aMaterial)
 
void SetMinEnergy (G4double anEnergy)
 
void SetMinEnergy (G4double anEnergy, const G4Element *anElement)
 
void SetMinEnergy (G4double anEnergy, const G4Material *aMaterial)
 
void SetParameters ()
 
void SetParametersCMS (G4double plab)
 
void SetRA (G4double rn, G4double pq, G4double pQ)
 
void SetRB (G4double rn, G4double pq, G4double pQ)
 
void SetRecoilEnergyThreshold (G4double val)
 
void SetSigmaTot (G4double stot)
 
void SetSpp (G4double spp)
 
void SetVerboseLevel (G4int value)
 
virtual ~G4hhElastic ()
 

Protected Member Functions

void Block ()
 
G4bool IsBlocked () const
 
void SetModelName (const G4String &nam)
 

Protected Attributes

G4bool isBlocked
 
G4double pLocalTmax
 
G4int secID
 
G4double theMaxEnergy
 
G4double theMinEnergy
 
G4HadFinalState theParticleChange
 
G4int verboseLevel
 

Private Attributes

std::pair< G4double, G4doubleepCheckLevels
 
G4double fAlpha
 
G4double fAlphaP
 
std::vector< G4PhysicsTable * > fBankT
 
G4double fBeta
 
G4int fBinT
 
G4double fBq
 
G4double fBQ
 
G4double fBqQ
 
G4double fCofF2
 
G4double fCofF3
 
G4double fDelta
 
G4int fEnergyBin
 
G4PhysicsLogVectorfEnergyVector
 
G4double fEta
 
G4double fExpSlope
 
G4double fGamma
 
G4HadronNucleonXscfHadrNuclXsc
 
G4double fImCof
 
G4int fInTkin
 
G4double fLambda
 
G4double fLambdaFF
 
G4double fMassDif2
 
G4double fMassProj
 
G4double fMassSum2
 
G4double fMassTarg
 
G4double fMff2
 
G4double fMQ
 
G4double fMq
 
G4double fOldTkin
 
G4double fOptRatio
 
G4double fPcms
 
G4ParticleDefinitionfProjectile
 
G4double fQcof
 
G4double fRA
 
G4double fRB
 
G4double fRG
 
G4double fRg
 
G4double fRhoReIm
 
G4double fRQ
 
G4double fRq
 
G4double fSigmaTot
 
G4double fSo
 
G4double fSpp
 
G4PhysicsTablefTableT
 
G4ParticleDefinitionfTarget
 
G4double lowEnergyLimitHE
 
G4double lowEnergyLimitQ
 
G4double lowEnergyRecoilLimit
 
G4double lowestEnergyLimit
 
G4int nwarn
 
G4double plabLowLimit
 
G4double recoilEnergyThreshold
 
G4HadronicInteractionRegistryregistry
 
G4ParticleDefinitiontheAlpha
 
std::vector< const G4Material * > theBlockedList
 
std::vector< const G4Element * > theBlockedListElements
 
G4ParticleDefinitiontheDeuteron
 
std::vector< std::pair< G4double, const G4Material * > > theMaxEnergyList
 
std::vector< std::pair< G4double, const G4Element * > > theMaxEnergyListElements
 
std::vector< std::pair< G4double, const G4Material * > > theMinEnergyList
 
std::vector< std::pair< G4double, const G4Element * > > theMinEnergyListElements
 
G4String theModelName
 
G4ParticleDefinitiontheNeutron
 
G4ParticleDefinitionthePionMinus
 
G4ParticleDefinitionthePionPlus
 
G4ParticleDefinitiontheProton
 

Static Private Attributes

static const G4double theNuclNuclData [19][6]
 
static const G4double thePiKaNuclData [8][6]
 

Detailed Description

Definition at line 61 of file G4hhElastic.hh.

Constructor & Destructor Documentation

◆ G4hhElastic() [1/3]

G4hhElastic::G4hhElastic ( )

Definition at line 73 of file G4hhElastic.cc.

74 : G4HadronElastic("HadrHadrElastic")
75{
76 SetMinEnergy( 1.*GeV );
78 verboseLevel = 0;
80 lowEnergyLimitQ = 0.0*GeV;
81 lowEnergyLimitHE = 0.0*GeV;
83 plabLowLimit = 20.0*MeV;
84
86 fInTkin=0;
91
93 fProjectile = 0;
95
96 fEnergyBin = 200;
97 fBinT = 514; // 514; // 500; // 200;
98
100
101 fTableT = 0;
102 fOldTkin = 0.;
104
105 Initialise();
106}
static constexpr double keV
Definition: G4SIunits.hh:202
static constexpr double GeV
Definition: G4SIunits.hh:203
static constexpr double MeV
Definition: G4SIunits.hh:200
G4HadronElastic(const G4String &name="hElasticLHEP")
void SetMinEnergy(G4double anEnergy)
void SetMaxEnergy(const G4double anEnergy)
static G4HadronicParameters * Instance()
static G4Neutron * Neutron()
Definition: G4Neutron.cc:103
static G4PionMinus * PionMinus()
Definition: G4PionMinus.cc:97
static G4PionPlus * PionPlus()
Definition: G4PionPlus.cc:97
static G4Proton * Proton()
Definition: G4Proton.cc:92
G4int fEnergyBin
Definition: G4hhElastic.hh:108
G4PhysicsLogVector * fEnergyVector
Definition: G4hhElastic.hh:111
G4ParticleDefinition * theNeutron
Definition: G4hhElastic.hh:97
G4PhysicsTable * fTableT
Definition: G4hhElastic.hh:112
G4ParticleDefinition * fProjectile
Definition: G4hhElastic.hh:95
G4ParticleDefinition * fTarget
Definition: G4hhElastic.hh:94
G4double lowEnergyRecoilLimit
Definition: G4hhElastic.hh:102
G4double fRhoReIm
Definition: G4hhElastic.hh:148
G4ParticleDefinition * thePionPlus
Definition: G4hhElastic.hh:98
G4double lowEnergyLimitHE
Definition: G4hhElastic.hh:103
G4double fOldTkin
Definition: G4hhElastic.hh:244
G4ParticleDefinition * thePionMinus
Definition: G4hhElastic.hh:99
G4ParticleDefinition * theProton
Definition: G4hhElastic.hh:96
G4double plabLowLimit
Definition: G4hhElastic.hh:106
G4double lowEnergyLimitQ
Definition: G4hhElastic.hh:104
G4double fSigmaTot
Definition: G4hhElastic.hh:152
G4double fSpp
Definition: G4hhElastic.hh:157
G4HadronNucleonXsc * fHadrNuclXsc
Definition: G4hhElastic.hh:247
void Initialise()
Definition: G4hhElastic.cc:230
G4double lowestEnergyLimit
Definition: G4hhElastic.hh:105
G4double fOptRatio
Definition: G4hhElastic.hh:156
G4double fPcms
Definition: G4hhElastic.hh:158
void SetParameters()
Definition: G4hhElastic.hh:271

References fBinT, fEnergyBin, fEnergyVector, fHadrNuclXsc, fInTkin, fOldTkin, fOptRatio, fPcms, fProjectile, fRhoReIm, fSigmaTot, fSpp, fTableT, fTarget, G4HadronicInteraction::GetMaxEnergy(), GeV, Initialise(), G4HadronicParameters::Instance(), keV, lowEnergyLimitHE, lowEnergyLimitQ, lowEnergyRecoilLimit, lowestEnergyLimit, MeV, G4Neutron::Neutron(), G4PionMinus::PionMinus(), G4PionPlus::PionPlus(), plabLowLimit, G4Proton::Proton(), G4HadronicInteraction::SetMaxEnergy(), G4HadronicInteraction::SetMinEnergy(), SetParameters(), G4HadronicInteraction::theMaxEnergy, G4HadronicInteraction::theMinEnergy, theNeutron, thePionMinus, thePionPlus, theProton, and G4HadronicInteraction::verboseLevel.

Referenced by BuildTableT(), and BuildTableTest().

◆ G4hhElastic() [2/3]

G4hhElastic::G4hhElastic ( G4ParticleDefinition target,
G4ParticleDefinition projectile,
G4double  plab 
)

Definition at line 114 of file G4hhElastic.cc.

115 : G4HadronElastic("HadrHadrElastic")
116{
117 SetMinEnergy( 1.*GeV );
119 verboseLevel = 0;
121 lowEnergyLimitQ = 0.0*GeV;
122 lowEnergyLimitHE = 0.0*GeV;
123 lowestEnergyLimit = 0.0*keV;
124 plabLowLimit = 20.0*MeV;
125
127 fInTkin=0;
132
133 fTarget = target;
134 fProjectile = projectile;
140
141 fEnergyBin = 200;
142 fBinT = 514; // 200;
143
145 fTableT = 0;
146 fOldTkin = 0.;
147
148
150 SetParametersCMS( plab);
151}
G4double fMassTarg
Definition: G4hhElastic.hh:123
G4double fMassSum2
Definition: G4hhElastic.hh:125
G4double fMassProj
Definition: G4hhElastic.hh:124
G4double fMassDif2
Definition: G4hhElastic.hh:126
void SetParametersCMS(G4double plab)
Definition: G4hhElastic.hh:316

References fBinT, fEnergyBin, fEnergyVector, fHadrNuclXsc, fInTkin, fMassDif2, fMassProj, fMassSum2, fMassTarg, fOldTkin, fOptRatio, fPcms, fProjectile, fRhoReIm, fSigmaTot, fSpp, fTableT, fTarget, G4HadronicInteraction::GetMaxEnergy(), G4ParticleDefinition::GetPDGMass(), GeV, G4HadronicParameters::Instance(), keV, lowEnergyLimitHE, lowEnergyLimitQ, lowEnergyRecoilLimit, lowestEnergyLimit, MeV, G4Neutron::Neutron(), G4PionMinus::PionMinus(), G4PionPlus::PionPlus(), plabLowLimit, G4Proton::Proton(), G4HadronicInteraction::SetMaxEnergy(), G4HadronicInteraction::SetMinEnergy(), SetParameters(), SetParametersCMS(), G4HadronicInteraction::theMaxEnergy, G4HadronicInteraction::theMinEnergy, theNeutron, thePionMinus, thePionPlus, theProton, and G4HadronicInteraction::verboseLevel.

◆ G4hhElastic() [3/3]

G4hhElastic::G4hhElastic ( G4ParticleDefinition target,
G4ParticleDefinition projectile 
)

Definition at line 159 of file G4hhElastic.cc.

160 : G4HadronElastic("HadrHadrElastic")
161{
162 SetMinEnergy( 1.*GeV );
164 verboseLevel = 0;
166 lowEnergyLimitQ = 0.0*GeV;
167 lowEnergyLimitHE = 0.0*GeV;
169 plabLowLimit = 20.0*MeV;
170
172 fInTkin=0;
173
174 fTarget = target; // later vmg
175 fProjectile = projectile;
180
181 fTarget = G4Proton::Proton(); // later vmg
187
188 fEnergyBin = 200;
189 fBinT = 514; // 514; // 500; // 200;
190
192
193 fTableT = 0;
194 fOldTkin = 0.;
195
197}

References fBinT, fEnergyBin, fEnergyVector, fHadrNuclXsc, fInTkin, fMassDif2, fMassProj, fMassSum2, fMassTarg, fOldTkin, fOptRatio, fPcms, fProjectile, fRhoReIm, fSigmaTot, fSpp, fTableT, fTarget, G4HadronicInteraction::GetMaxEnergy(), G4ParticleDefinition::GetPDGMass(), GeV, G4HadronicParameters::Instance(), keV, lowEnergyLimitHE, lowEnergyLimitQ, lowEnergyRecoilLimit, lowestEnergyLimit, MeV, G4Neutron::Neutron(), G4PionMinus::PionMinus(), G4PionPlus::PionPlus(), plabLowLimit, G4Proton::Proton(), G4HadronicInteraction::SetMaxEnergy(), G4HadronicInteraction::SetMinEnergy(), SetParameters(), G4HadronicInteraction::theMaxEnergy, G4HadronicInteraction::theMinEnergy, theNeutron, thePionMinus, thePionPlus, theProton, and G4HadronicInteraction::verboseLevel.

◆ ~G4hhElastic()

G4hhElastic::~G4hhElastic ( )
virtual

Definition at line 205 of file G4hhElastic.cc.

206{
207 if ( fEnergyVector ) {
208 delete fEnergyVector;
209 fEnergyVector = 0;
210 }
211
212 for ( std::vector<G4PhysicsTable*>::iterator it = fBankT.begin();
213 it != fBankT.end(); ++it ) {
214 if ( (*it) ) (*it)->clearAndDestroy();
215 delete *it;
216 *it = 0;
217 }
218 fTableT = 0;
219 if(fHadrNuclXsc) delete fHadrNuclXsc;
220}
std::vector< G4PhysicsTable * > fBankT
Definition: G4hhElastic.hh:113

References fBankT, fEnergyVector, fHadrNuclXsc, and fTableT.

Member Function Documentation

◆ ActivateFor() [1/2]

void G4HadronicInteraction::ActivateFor ( const G4Element anElement)
inlineinherited

◆ ActivateFor() [2/2]

void G4HadronicInteraction::ActivateFor ( const G4Material aMaterial)
inlineinherited

◆ ApplyYourself()

G4HadFinalState * G4HadronElastic::ApplyYourself ( const G4HadProjectile aTrack,
G4Nucleus targetNucleus 
)
overridevirtualinherited

Reimplemented from G4HadronicInteraction.

Reimplemented in G4NeutrinoElectronNcModel, G4NeutronElectronElModel, G4LEHadronProtonElastic, G4LEnp, and G4LEpp.

Definition at line 81 of file G4HadronElastic.cc.

83{
85
86 const G4HadProjectile* aParticle = &aTrack;
87 G4double ekin = aParticle->GetKineticEnergy();
88
89 // no scattering below the limit
90 if(ekin <= lowestEnergyLimit) {
93 return &theParticleChange;
94 }
95
96 G4int A = targetNucleus.GetA_asInt();
97 G4int Z = targetNucleus.GetZ_asInt();
98
99 // Scattered particle referred to axis of incident particle
100 const G4ParticleDefinition* theParticle = aParticle->GetDefinition();
101 G4double m1 = theParticle->GetPDGMass();
102 G4double plab = std::sqrt(ekin*(ekin + 2.0*m1));
103
104 if (verboseLevel>1) {
105 G4cout << "G4HadronElastic: "
106 << aParticle->GetDefinition()->GetParticleName()
107 << " Plab(GeV/c)= " << plab/GeV
108 << " Ekin(MeV) = " << ekin/MeV
109 << " scattered off Z= " << Z
110 << " A= " << A
111 << G4endl;
112 }
113
115 G4double e1 = m1 + ekin;
116 G4LorentzVector lv(0.0,0.0,plab,e1+mass2);
117 G4ThreeVector bst = lv.boostVector();
118 G4double momentumCMS = plab*mass2/std::sqrt(m1*m1 + mass2*mass2 + 2.*mass2*e1);
119
120 pLocalTmax = 4.0*momentumCMS*momentumCMS;
121
122 // Sampling in CM system
123 G4double t = SampleInvariantT(theParticle, plab, Z, A);
124
125 if(t < 0.0 || t > pLocalTmax) {
126 // For the very rare cases where cos(theta) is greater than 1 or smaller than -1,
127 // print some debugging information via a "JustWarning" exception, and resample
128 // using the default algorithm
129#ifdef G4VERBOSE
130 if(nwarn < 2) {
132 ed << GetModelName() << " wrong sampling t= " << t << " tmax= " << pLocalTmax
133 << " for " << aParticle->GetDefinition()->GetParticleName()
134 << " ekin=" << ekin << " MeV"
135 << " off (Z,A)=(" << Z << "," << A << ") - will be resampled" << G4endl;
136 G4Exception( "G4HadronElastic::ApplyYourself", "hadEla001", JustWarning, ed);
137 ++nwarn;
138 }
139#endif
140 t = G4HadronElastic::SampleInvariantT(theParticle, plab, Z, A);
141 }
142
144 G4double cost = 1. - 2.0*t/pLocalTmax;
145
146 if (cost > 1.0) { cost = 1.0; }
147 else if(cost < -1.0) { cost = -1.0; }
148
149 G4double sint = std::sqrt((1.0-cost)*(1.0+cost));
150
151 if (verboseLevel>1) {
152 G4cout << " t= " << t << " tmax(GeV^2)= " << pLocalTmax/(GeV*GeV)
153 << " Pcms(GeV)= " << momentumCMS/GeV << " cos(t)=" << cost
154 << " sin(t)=" << sint << G4endl;
155 }
156 G4LorentzVector nlv1(momentumCMS*sint*std::cos(phi),
157 momentumCMS*sint*std::sin(phi),
158 momentumCMS*cost,
159 std::sqrt(momentumCMS*momentumCMS + m1*m1));
160
161 nlv1.boost(bst);
162
163 G4double eFinal = nlv1.e() - m1;
164 if (verboseLevel > 1) {
165 G4cout <<"G4HadronElastic: m= " << m1 << " Efin(MeV)= " << eFinal
166 << " 4-M Final: " << nlv1
167 << G4endl;
168 }
169
170 if(eFinal <= 0.0) {
173 } else {
174 theParticleChange.SetMomentumChange(nlv1.vect().unit());
176 }
177 lv -= nlv1;
178 G4double erec = std::max(lv.e() - mass2, 0.0);
179 if (verboseLevel > 1) {
180 G4cout << "Recoil: " <<" m= " << mass2 << " Erec(MeV)= " << erec
181 << " 4-mom: " << lv
182 << G4endl;
183 }
184
185 // the recoil is created if kinetic energy above the threshold
186 if(erec > GetRecoilEnergyThreshold()) {
187 G4ParticleDefinition * theDef = nullptr;
188 if(Z == 1 && A == 1) { theDef = theProton; }
189 else if (Z == 1 && A == 2) { theDef = theDeuteron; }
190 else if (Z == 1 && A == 3) { theDef = G4Triton::Triton(); }
191 else if (Z == 2 && A == 3) { theDef = G4He3::He3(); }
192 else if (Z == 2 && A == 4) { theDef = theAlpha; }
193 else {
194 theDef =
196 }
197 G4DynamicParticle * aSec = new G4DynamicParticle(theDef, lv.vect().unit(), erec);
199 } else {
201 }
202
203 return &theParticleChange;
204}
static const G4double e1[44]
@ JustWarning
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
std::ostringstream G4ExceptionDescription
Definition: G4Exception.hh:40
double G4double
Definition: G4Types.hh:83
int G4int
Definition: G4Types.hh:85
const G4int Z[17]
const G4double A[17]
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
#define G4UniformRand()
Definition: Randomize.hh:52
void AddSecondary(G4DynamicParticle *aP, G4int mod=-1)
void SetEnergyChange(G4double anEnergy)
void SetMomentumChange(const G4ThreeVector &aV)
void SetLocalEnergyDeposit(G4double aE)
const G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
G4double SampleInvariantT(const G4ParticleDefinition *p, G4double plab, G4int Z, G4int A) override
G4ParticleDefinition * theAlpha
G4ParticleDefinition * theProton
G4double lowestEnergyLimit
G4ParticleDefinition * theDeuteron
G4double GetRecoilEnergyThreshold() const
const G4String & GetModelName() const
static G4He3 * He3()
Definition: G4He3.cc:93
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
Definition: G4IonTable.cc:522
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4int GetA_asInt() const
Definition: G4Nucleus.hh:99
G4int GetZ_asInt() const
Definition: G4Nucleus.hh:105
const G4String & GetParticleName() const
G4IonTable * GetIonTable() const
static G4ParticleTable * GetParticleTable()
static G4Triton * Triton()
Definition: G4Triton.cc:93
static constexpr double twopi
Definition: SystemOfUnits.h:56
T max(const T t1, const T t2)
brief Return the largest of the two arguments

References A, G4HadFinalState::AddSecondary(), CLHEP::HepLorentzVector::boost(), CLHEP::HepLorentzVector::boostVector(), G4HadFinalState::Clear(), CLHEP::HepLorentzVector::e(), e1, G4cout, G4endl, G4Exception(), G4UniformRand, G4Nucleus::GetA_asInt(), G4HadProjectile::GetDefinition(), G4IonTable::GetIon(), G4ParticleTable::GetIonTable(), G4HadProjectile::GetKineticEnergy(), G4HadronicInteraction::GetModelName(), G4NucleiProperties::GetNuclearMass(), G4ParticleDefinition::GetParticleName(), G4ParticleTable::GetParticleTable(), G4ParticleDefinition::GetPDGMass(), G4HadronicInteraction::GetRecoilEnergyThreshold(), G4Nucleus::GetZ_asInt(), GeV, G4He3::He3(), JustWarning, G4HadronElastic::lowestEnergyLimit, G4INCL::Math::max(), MeV, G4HadronElastic::nwarn, G4HadronElastic::pLocalTmax, G4HadronElastic::SampleInvariantT(), G4HadronElastic::secID, G4HadFinalState::SetEnergyChange(), G4HadFinalState::SetLocalEnergyDeposit(), G4HadFinalState::SetMomentumChange(), G4HadronElastic::theAlpha, G4HadronElastic::theDeuteron, G4HadronicInteraction::theParticleChange, G4HadronElastic::theProton, G4Triton::Triton(), CLHEP::twopi, CLHEP::Hep3Vector::unit(), CLHEP::HepLorentzVector::vect(), G4HadronicInteraction::verboseLevel, and Z.

◆ Block()

void G4HadronicInteraction::Block ( )
inlineprotectedinherited

◆ BuildPhysicsTable()

void G4HadronicInteraction::BuildPhysicsTable ( const G4ParticleDefinition )
virtualinherited

◆ BuildTableT()

void G4hhElastic::BuildTableT ( G4ParticleDefinition target,
G4ParticleDefinition projectile 
)

Definition at line 254 of file G4hhElastic.cc.

255{
256 G4int iTkin, jTransfer;
257 G4double plab, Tkin, tMax;
258 G4double t1, t2, dt, delta = 0., sum = 0.;
259
260 fTarget = target;
261 fProjectile = projectile;
266
268 // G4HadronNucleonXsc* hnXsc = new G4HadronNucleonXsc();
270
271 for( iTkin = 0; iTkin < fEnergyBin; iTkin++)
272 {
273 Tkin = fEnergyVector->GetLowEdgeEnergy(iTkin);
274 plab = std::sqrt( Tkin*( Tkin + 2*fMassProj ) );
275 // G4DynamicParticle* theDynamicParticle = new G4DynamicParticle(projectile,
276 // G4ParticleMomentum(0.,0.,1.),
277 // Tkin);
278 // fSigmaTot = fHadrNuclXsc->GetHadronNucleonXscNS( theDynamicParticle, target );
279
280 SetParametersCMS( plab );
281
282 tMax = 4.*fPcms*fPcms;
283 if( tMax > 15.*GeV*GeV ) tMax = 15.*GeV*GeV; // Check vs. energy ???
284
286 sum = 0.;
287 dt = tMax/fBinT;
288
289 // for(j = 1; j < fBinT; j++)
290
291 for( jTransfer = fBinT-1; jTransfer >= 1; jTransfer--)
292 {
293 t1 = dt*(jTransfer-1);
294 t2 = t1 + dt;
295
296 if( fMassProj > 900.*MeV ) // pp, pn
297 {
298 delta = integral.Legendre10(this, &G4hhElastic::GetdsdtF123, t1, t2);
299 // delta = integral.Legendre96(this, &G4hhElastic::GetdsdtF123, t1, t2);
300 }
301 else // pi+-p, K+-p
302 {
303 delta = integral.Legendre10(this, &G4hhElastic::GetdsdtF123qQgG, t1, t2);
304 // delta = integral.Legendre96(this, &G4hhElastic::GetdsdtF123qQgG, t1, t2);
305 }
306 sum += delta;
307 vectorT->PutValue( jTransfer-1, t1, sum ); // t2
308 }
309 // vectorT->PutValue( fBinT-1, dt*(fBinT-1), 0. ); // t2
310 fTableT->insertAt( iTkin, vectorT );
311 // delete theDynamicParticle;
312 }
313 // delete hnXsc;
314
315 return;
316}
void PutValue(const std::size_t index, const G4double e, const G4double value)
void insertAt(std::size_t, G4PhysicsVector *)
G4double GetLowEdgeEnergy(const std::size_t index) const
G4double GetdsdtF123(G4double q)
G4double GetdsdtF123qQgG(G4double q)
Definition: G4hhElastic.hh:746

References fBinT, fEnergyBin, fEnergyVector, fMassDif2, fMassProj, fMassSum2, fMassTarg, fPcms, fProjectile, fTableT, fTarget, G4hhElastic(), GetdsdtF123(), GetdsdtF123qQgG(), G4PhysicsVector::GetLowEdgeEnergy(), G4ParticleDefinition::GetPDGMass(), GeV, G4PhysicsTable::insertAt(), MeV, G4PhysicsFreeVector::PutValue(), and SetParametersCMS().

Referenced by Initialise().

◆ BuildTableTest()

void G4hhElastic::BuildTableTest ( G4ParticleDefinition target,
G4ParticleDefinition projectile,
G4double  plab 
)

Definition at line 520 of file G4hhElastic.cc.

521{
522 G4int jTransfer;
523 G4double tMax; // , sQq, sQG;
524 G4double t1, t2, dt, delta = 0., sum = 0. ; // , threshold;
525
526 fTarget = target;
527 fProjectile = projectile;
532 fSpp = fMassProj*fMassProj + fMassTarg*fMassTarg + 2.*fMassTarg*std::sqrt(plab*plab + fMassProj*fMassProj);
533 fPcms = std::sqrt( (fSpp - fMassSum2)*(fSpp - fMassDif2)/4./fSpp);
534
535 G4cout<<"fMassTarg = "<<fMassTarg<<" MeV; fMassProj = "<<fMassProj<<" MeV"<<G4endl;
536 tMax = 4.*fPcms*fPcms;
537 if( tMax > 15.*GeV*GeV ) tMax = 15.*GeV*GeV; // Check vs. energy ???
538
539
541 fTableT = new G4PhysicsTable(1);
543
544 sum = 0.;
545 dt = tMax/G4double(fBinT);
546 G4cout<<"s = "<<std::sqrt(fSpp)/GeV<<" GeV; fPcms = "<<fPcms/GeV
547 <<" GeV; qMax = "<<tMax/GeV/GeV<<" GeV2; dt = "<<dt/GeV/GeV<<" GeV2"<<G4endl;
548
549 // G4cout<<"fRA = "<<fRA*GeV<<"; fRB = "<<fRB*GeV<<G4endl;
550
551 // for(jTransfer = 1; jTransfer < fBinT; jTransfer++)
552 for( jTransfer = fBinT-1; jTransfer >= 1; jTransfer-- )
553 {
554 t1 = dt*(jTransfer-1);
555 t2 = t1 + dt;
556
557 if( fMassProj > 900.*MeV ) // pp, pn
558 {
559 delta = integral.Legendre10(this, &G4hhElastic::GetdsdtF123, t1, t2);
560 // threshold = integral.Legendre96(this, &G4hhElastic::GetdsdtF123, t1, tMax);
561 }
562 else // pi+-p, K+-p
563 {
564 delta = integral.Legendre10(this, &G4hhElastic::GetdsdtF123qQgG, t1, t2);
565 // threshold = integral.Legendre96(this, &G4hhElastic::GetdsdtF123qQgG, t1, tMax);
566 // delta = integral.Legendre96(this, &G4hhElastic::GetdsdtF123, t1, t2);
567 }
568 sum += delta;
569 // G4cout<<delta<<"\t"<<sum<<"\t"<<threshold<<G4endl;
570
571 // sQq = GetdsdtF123(q1);
572 // sQG = GetdsdtF123qQgG(q1);
573 // G4cout<<q1/GeV<<"\t"<<sQG*GeV*GeV/millibarn<<"\t"<<sQq*GeV*GeV/millibarn<<G4endl;
574 // G4cout<<"sum = "<<sum<<", ";
575
576 vectorT->PutValue( jTransfer-1, t1, sum ); // t2
577 }
578 // vectorT->PutValue( fBinT-1, dt*(fBinT-1), 0. ); // t2
579 fTableT->insertAt( 0, vectorT );
580 fBankT.push_back( fTableT ); // 0
581
582 // for(jTransfer = 0; jTransfer < fBinT-1; jTransfer++)
583 // G4cout<<(*(*fTableT)(0))(jTransfer)/sum<<"\t\t"<<G4Pow::GetInstance()->powN(2.,-jTransfer)<<G4endl;
584
585 return;
586}

References fBankT, fBinT, fMassDif2, fMassProj, fMassSum2, fMassTarg, fPcms, fProjectile, fSpp, fTableT, fTarget, G4cout, G4endl, G4hhElastic(), GetdsdtF123(), GetdsdtF123qQgG(), G4ParticleDefinition::GetPDGMass(), GeV, G4PhysicsTable::insertAt(), MeV, and G4PhysicsFreeVector::PutValue().

◆ CalculateBQ()

void G4hhElastic::CalculateBQ ( G4double  b)
inline

Definition at line 957 of file G4hhElastic.hh.

958{
959 fBq = b1;
960 G4double s1 = GetCofS1();
961 G4double s2 = GetCofS2();
962 G4double s3 = GetCofS3();
963 G4double sqrtBq = std::sqrt(fBq);
964
965 // cofs of the fBQ 3rd equation
966
967 G4double a = s3*sqrtBq;
968 G4double b = s1*fBq - 1.;
969 G4double c = (s2*fBq - 2.)*sqrtBq;
970 G4double d = 1. - fBq;
971
972 // cofs of the incomplete 3rd equation
973
974 G4double p = c/a;
975 p -= b*b/a/a/3.;
976 G4double q = d/a;
977 q -= b*c/a/a/3.;
978 q += 2*b*b*b/a/a/a/27.;
979
980 // cofs for the incomplete colutions
981
982 G4double D = p*p*p/3./3./3.;
983 D += q*q/2./2.;
984 G4complex A1 = G4complex(- q/2., std::sqrt(-D) );
985 G4complex A = std::pow(A1,1./3.);
986
987 G4complex B1 = G4complex(- q/2., -std::sqrt(-D) );
988 G4complex B = std::pow(B1,1./3.);
989
990 // roots of the incomplete 3rd equation
991
992 G4complex y1 = A + B;
993 G4complex y2 = -0.5*(A + B) + 0.5*std::sqrt(3.)*(A - B)*G4complex(0.,1.);
994 G4complex y3 = -0.5*(A + B) - 0.5*std::sqrt(3.)*(A - B)*G4complex(0.,1.);
995
996 G4complex x1 = y1 - b/a/3.;
997 G4complex x2 = y2 - b/a/3.;
998 G4complex x3 = y3 - b/a/3.;
999
1000 G4cout<<"re_x1 = "<<real(x1)<<"; re_x2 = "<<real(x2)<<"; re_x3 = "<<real(x3)<<G4endl;
1001 G4cout<<"im_x1 = "<<imag(x1)<<"; im_x2 = "<<imag(x2)<<"; im_x3 = "<<imag(x3)<<G4endl;
1002
1003 G4double r1 = real(x1)*real(x1);
1004 G4double r2 = real(x2)*real(x2);
1005 G4double r3 = real(x3)*real(x3);
1006
1007 if( r1 <= 1. && r1 >= 0. ) fBQ = r1;
1008 else if( r2 <= 1. && r2 >= 0. ) fBQ = r2;
1009 else if( r3 <= 1. && r3 >= 0. ) fBQ = r3;
1010 else fBQ = 1.;
1011 // fBQ = real(x3)*real(x3);
1012 G4double sqrtBqBQ = std::sqrt(fBq*fBQ);
1013 fOptRatio = fBq + fBQ + 2.*sqrtBqBQ - 1.;
1014 fOptRatio /= sqrtBqBQ*( GetCofS1()*sqrtBqBQ + GetCofS2()*fBq + GetCofS3()*fBQ );
1015 G4cout<<"F123, fOptRatio = "<<fOptRatio<<G4endl;
1016
1017 return ;
1018}
G4double B(G4double temperature)
G4double D(G4double temp)
std::complex< G4double > G4complex
Definition: G4Types.hh:88
G4double GetCofS1()
Definition: G4hhElastic.hh:903
G4double fBQ
Definition: G4hhElastic.hh:154
G4double GetCofS2()
Definition: G4hhElastic.hh:916
G4double GetCofS3()
Definition: G4hhElastic.hh:929
G4double fBq
Definition: G4hhElastic.hh:153

References A, B(), D(), fBq, fBQ, fOptRatio, G4cout, G4endl, GetCofS1(), GetCofS2(), and GetCofS3().

◆ CalculateBqQ12()

void G4hhElastic::CalculateBqQ12 ( G4double  b)
inline

Definition at line 786 of file G4hhElastic.hh.

787{
788 fBq = b1;
789
790 G4complex z1324 = G4complex(1./8./CLHEP::pi,0.);
791 z1324 /= Phi13() + Phi24() + fLambda + fEta;
792 G4double c1324 = real(z1324)/(CLHEP::hbarc*CLHEP::hbarc);
793
794 G4complex z1423 = G4complex(1./8./CLHEP::pi,0.);
795 z1423 /= Phi14() + Phi23() + fLambda + fEta;
796 G4double c1423 = real(z1423)/(CLHEP::hbarc*CLHEP::hbarc);
797
798 fBQ = 1. - 2.*fBq;
799 fBQ /= 2. - fSigmaTot*fBq*(c1324+1423);
800
801 G4double ratio = 2.*(fBq + fBQ) - fSigmaTot*fBq*fBQ*(c1324 + c1423);
802 G4cout<<"ratio = "<<ratio<<G4endl;
803
804 return ;
805}
G4complex Phi23()
Definition: G4hhElastic.hh:540
G4complex Phi13()
Definition: G4hhElastic.hh:520
G4complex Phi14()
Definition: G4hhElastic.hh:530
G4double fLambda
Definition: G4hhElastic.hh:143
G4double fEta
Definition: G4hhElastic.hh:144
G4complex Phi24()
Definition: G4hhElastic.hh:550
static constexpr double hbarc
static constexpr double pi
Definition: SystemOfUnits.h:55

References fBq, fBQ, fEta, fLambda, fSigmaTot, G4cout, G4endl, CLHEP::hbarc, Phi13(), Phi14(), Phi23(), Phi24(), and CLHEP::pi.

◆ CalculateBqQ123()

void G4hhElastic::CalculateBqQ123 ( G4double  b)
inline

Definition at line 812 of file G4hhElastic.hh.

813{
814 fBq = b1;
815
816 G4complex z1324 = fCofF2*G4complex(1./8./CLHEP::pi,0.);
817 z1324 /= Phi13() + Phi24() + fLambda + fEta;
818 G4double c1324 = real(z1324)/(CLHEP::hbarc*CLHEP::hbarc);
819
820 G4complex z1423 = fCofF2*G4complex(1./8./CLHEP::pi,0.);
821 z1423 /= Phi14() + Phi23() + fLambda + fEta;
822 G4double c1423 = real(z1423)/(CLHEP::hbarc*CLHEP::hbarc);
823
824 G4complex z1314 = fCofF3*G4complex(1./8./CLHEP::pi,0.);
825 z1314 /= Phi13() + Phi14() + fEta;
826 G4double c1314 = real(z1314)/(CLHEP::hbarc*CLHEP::hbarc);
827
828 G4complex z2324 = fCofF3*G4complex(1./8./CLHEP::pi,0.);
829 z2324 /= Phi23() + Phi24() + fEta;
830 G4double c2324 = real(z2324)/(CLHEP::hbarc*CLHEP::hbarc);
831
832 G4complex z1323 = fCofF3*G4complex(1./8./CLHEP::pi,0.);
833 z1323 /= Phi13() + Phi23() + fLambda;
834 G4double c1323 = real(z1323)/(CLHEP::hbarc*CLHEP::hbarc);
835
836 G4complex z1424 = fCofF3*G4complex(1./8./CLHEP::pi,0.);
837 z1424 /= Phi14() + Phi24() + fLambda;
838 G4double c1424 = real(z1424)/(CLHEP::hbarc*CLHEP::hbarc);
839
840 G4double A = fSigmaTot*c2324;
841 G4double B = fSigmaTot*fBq*(c1324 + c1423 + c1323 + c1424) - 2.;
842 G4double C = 1. + fSigmaTot*fBq*fBq*c1314 - 2*fBq;
843 G4cout<<"A = "<<A<<"; B = "<<B<<"; C = "<<C<<G4endl;
844 G4cout<<"determinant = "<<B*B-4.*A*C<<G4endl;
845
846 G4double x1 = ( -B - std::sqrt(B*B-4.*A*C) )/2./A;
847 G4double x2 = ( -B + std::sqrt(B*B-4.*A*C) )/2./A;
848 G4cout<<"x1 = "<<x1<<"; x2 = "<<x2<<G4endl;
849
850 if( B*B-4.*A*C < 1.e-6 ) fBQ = std::abs(-B/2./A);
851 else if ( B < 0.) fBQ = std::abs( ( -B - std::sqrt(B*B-4.*A*C) )/2./A);
852 else fBQ = std::abs( ( -B + std::sqrt(B*B-4.*A*C) )/2./A);
853
854 fOptRatio = 2*(fBq+fBQ) - fSigmaTot*fBq*fBQ*(c1324 + c1423 + c1323 + c1424);
855 fOptRatio -= fSigmaTot*fBq*fBq*c1314 + fSigmaTot*c2324*fBQ*fBQ;
856 G4cout<<"BqQ123, fOptRatio = "<<fOptRatio<<G4endl;
857
858 return ;
859}
G4double C(G4double temp)
G4double fCofF2
Definition: G4hhElastic.hh:146
G4double fCofF3
Definition: G4hhElastic.hh:147

References A, B(), C(), fBq, fBQ, fCofF2, fCofF3, fEta, fLambda, fOptRatio, fSigmaTot, G4cout, G4endl, CLHEP::hbarc, Phi13(), Phi14(), Phi23(), Phi24(), and CLHEP::pi.

◆ CalculateBqQ13()

void G4hhElastic::CalculateBqQ13 ( G4double  b)
inline

Definition at line 763 of file G4hhElastic.hh.

764{
765 fBQ = b2;
766
767 G4complex z1424 = G4complex(1./8./CLHEP::pi,0.);
768 z1424 /= Phi14() + Phi24() + fAlpha;
769 G4double c1424 = real(z1424)/(CLHEP::hbarc*CLHEP::hbarc);
770
771 fBqQ = 1. - fBQ;
772 fBQ /= 1. - fSigmaTot*fBQ*c1424;
773
774 G4cout<<"fSigmaTot*fBQ*c1424 = "<<fSigmaTot*fBQ*c1424<<G4endl;
775
776 G4double ratio = fBqQ + fBQ - fSigmaTot*fBqQ*fBQ*c1424;
777 G4cout<<"ratio = "<<ratio<<G4endl;
778
779 return ;
780}
G4double fAlpha
Definition: G4hhElastic.hh:132
G4double fBqQ
Definition: G4hhElastic.hh:155

References fAlpha, fBQ, fBqQ, fSigmaTot, G4cout, G4endl, CLHEP::hbarc, Phi14(), Phi24(), and CLHEP::pi.

◆ ComputeMomentumCMS()

G4double G4HadronElastic::ComputeMomentumCMS ( const G4ParticleDefinition p,
G4double  plab,
G4int  Z,
G4int  A 
)
inlineinherited

Definition at line 102 of file G4HadronElastic.hh.

104{
105 G4double m1 = p->GetPDGMass();
106 G4double m12= m1*m1;
108 return plab*mass2/std::sqrt(m12 + mass2*mass2 + 2.*mass2*std::sqrt(m12 + plab*plab));
109}

References A, G4NucleiProperties::GetNuclearMass(), G4ParticleDefinition::GetPDGMass(), and Z.

◆ DeActivateFor() [1/2]

void G4HadronicInteraction::DeActivateFor ( const G4Element anElement)
inherited

Definition at line 186 of file G4HadronicInteraction.cc.

187{
188 Block();
189 theBlockedListElements.push_back(anElement);
190}
std::vector< const G4Element * > theBlockedListElements

References G4HadronicInteraction::Block(), and G4HadronicInteraction::theBlockedListElements.

◆ DeActivateFor() [2/2]

void G4HadronicInteraction::DeActivateFor ( const G4Material aMaterial)
inherited

Definition at line 180 of file G4HadronicInteraction.cc.

181{
182 Block();
183 theBlockedList.push_back(aMaterial);
184}
std::vector< const G4Material * > theBlockedList

References G4HadronicInteraction::Block(), and G4HadronicInteraction::theBlockedList.

Referenced by G4HadronHElasticPhysics::ConstructProcess().

◆ GetAqq()

G4complex G4hhElastic::GetAqq ( )
inline

Definition at line 867 of file G4hhElastic.hh.

868{
869 G4double re, im;
870
871 re = fRq*fRq/8. + fAlphaP*G4Log(fSpp/fSo) + 8.*fLambda/9.;
872 im = -0.5*fAlphaP*fImCof*CLHEP::pi;
873 return G4complex(re,im);
874}
G4double G4Log(G4double x)
Definition: G4Log.hh:226
G4double fAlphaP
Definition: G4hhElastic.hh:141
G4double fImCof
Definition: G4hhElastic.hh:145
G4double fRq
Definition: G4hhElastic.hh:131
G4double fSo
Definition: G4hhElastic.hh:150

References fAlphaP, fImCof, fLambda, fRq, fSo, fSpp, G4Log(), and CLHEP::pi.

Referenced by GetAqQ(), GetCofS2(), GetF1(), GetF2(), and GetF3().

◆ GetAQQ()

G4complex G4hhElastic::GetAQQ ( )
inline

Definition at line 880 of file G4hhElastic.hh.

881{
882 G4double re, im;
883
884 re = fRQ*fRQ/8. + fAlphaP*G4Log(fSpp/fSo) + 2.*fLambda/9.;
885 im = -0.5*fAlphaP*fImCof*CLHEP::pi;
886 return G4complex(re,im);
887}
G4double fRQ
Definition: G4hhElastic.hh:130

References fAlphaP, fImCof, fLambda, fRQ, fSo, fSpp, G4Log(), and CLHEP::pi.

Referenced by GetAqQ(), GetCofS3(), GetF1(), GetF2(), and GetF3().

◆ GetAqQ()

G4complex G4hhElastic::GetAqQ ( )
inline

Definition at line 893 of file G4hhElastic.hh.

894{
895 G4complex z = 0.5*( GetAqq() + GetAQQ() );
896 return z;
897}
G4complex GetAqq()
Definition: G4hhElastic.hh:867
G4complex GetAQQ()
Definition: G4hhElastic.hh:880

References GetAqq(), and GetAQQ().

Referenced by GetCofS1(), GetCofS2(), GetCofS3(), GetF1(), GetF2(), and GetF3().

◆ GetBq()

G4double G4hhElastic::GetBq ( )
inline

Definition at line 169 of file G4hhElastic.hh.

169{ return fBq;};

References fBq.

◆ GetBQ()

G4double G4hhElastic::GetBQ ( )
inline

Definition at line 170 of file G4hhElastic.hh.

170{ return fBQ;};

References fBQ.

◆ GetBqQ()

G4double G4hhElastic::GetBqQ ( )
inline

Definition at line 171 of file G4hhElastic.hh.

171{ return fBqQ;};

References fBqQ.

◆ GetCofF2()

G4double G4hhElastic::GetCofF2 ( )
inline

Definition at line 191 of file G4hhElastic.hh.

191{return fCofF2;};

References fCofF2.

◆ GetCofF3()

G4double G4hhElastic::GetCofF3 ( )
inline

Definition at line 192 of file G4hhElastic.hh.

192{return fCofF3;};

References fCofF3.

◆ GetCofS1()

G4double G4hhElastic::GetCofS1 ( )
inline

Definition at line 903 of file G4hhElastic.hh.

904{
905 G4complex z = 1./( GetAqQ() + 4.*fLambda/9. );
906 G4double result = real(z);
908 result *= fSigmaTot*fCofF2;
909 return result;
910}
G4complex GetAqQ()
Definition: G4hhElastic.hh:893

References fCofF2, fLambda, fSigmaTot, GetAqQ(), CLHEP::hbarc, and CLHEP::pi.

Referenced by CalculateBQ().

◆ GetCofS2()

G4double G4hhElastic::GetCofS2 ( )
inline

Definition at line 916 of file G4hhElastic.hh.

917{
918 G4complex z = 1./( GetAqq() + GetAqQ() - 4.*fLambda/9. );
919 G4double result = real(z);
921 result *= fSigmaTot*fCofF3;
922 return result;
923}

References fCofF3, fLambda, fSigmaTot, GetAqq(), GetAqQ(), CLHEP::hbarc, and CLHEP::pi.

Referenced by CalculateBQ().

◆ GetCofS3()

G4double G4hhElastic::GetCofS3 ( )
inline

Definition at line 929 of file G4hhElastic.hh.

930{
931 G4complex z = 1./( GetAQQ() + GetAqQ() + 2.*fLambda/9. );
932 G4double result = real(z);
934 result *= fSigmaTot*fCofF3;
935 return result;
936}

References fCofF3, fLambda, fSigmaTot, GetAQQ(), GetAqQ(), CLHEP::hbarc, and CLHEP::pi.

Referenced by CalculateBQ().

◆ GetdsdtF1()

G4double G4hhElastic::GetdsdtF1 ( G4double  s,
G4double  q 
)
inline

Definition at line 1042 of file G4hhElastic.hh.

1043{
1044 fSpp = spp;
1045 G4double p = std::sqrt(0.25*spp - CLHEP::proton_mass_c2*CLHEP::proton_mass_c2);
1046 G4complex F1 = GetF1(t);
1047
1048 G4double dsdt = CLHEP::pi/p/p;
1049 dsdt *= real(F1)*real(F1) + imag(F1)*imag(F1);
1050 return dsdt;
1051}
G4complex GetF1(G4double qp)
static constexpr double proton_mass_c2

References fSpp, GetF1(), CLHEP::pi, and CLHEP::proton_mass_c2.

◆ GetdsdtF12()

G4double G4hhElastic::GetdsdtF12 ( G4double  s,
G4double  q 
)
inline

Definition at line 1085 of file G4hhElastic.hh.

1086{
1087 fSpp = spp;
1088 G4double p = std::sqrt(0.25*spp - CLHEP::proton_mass_c2*CLHEP::proton_mass_c2);
1089 G4complex F1 = GetF1(t) - GetF2(t);
1090
1091 G4double dsdt = CLHEP::pi/p/p;
1092 dsdt *= real(F1)*real(F1) + imag(F1)*imag(F1);
1093 return dsdt;
1094}
G4complex GetF2(G4double qp)

References fSpp, GetF1(), GetF2(), CLHEP::pi, and CLHEP::proton_mass_c2.

◆ GetdsdtF123()

G4double G4hhElastic::GetdsdtF123 ( G4double  q)
inline

Definition at line 1128 of file G4hhElastic.hh.

1129{
1131 G4complex F1 = GetF1(t);
1132 F1 -= fCofF2*GetF2(t);
1133 F1 -= fCofF3*GetF3(t);
1134 G4double dsdt = CLHEP::pi/p/p;
1135 dsdt *= real(F1)*real(F1) + imag(F1)*imag(F1);
1136 return dsdt;
1137}
G4complex GetF3(G4double qp)

References fCofF2, fCofF3, fSpp, GetF1(), GetF2(), GetF3(), CLHEP::pi, and CLHEP::proton_mass_c2.

Referenced by BuildTableT(), and BuildTableTest().

◆ GetdsdtF123qQgG()

G4double G4hhElastic::GetdsdtF123qQgG ( G4double  q)
inline

Definition at line 746 of file G4hhElastic.hh.

747{
748 G4double p = std::sqrt( (fSpp - fMassSum2)*(fSpp - fMassDif2)/4./fSpp );
749
750 G4complex F123 = GetF1qQgG(t); // - fCofF2*GetF2qQgG(t) - fCofF3*GetF3qQgG(t);
751 F123 -= fCofF2*GetF2qQgG(t);
752 F123 -= fCofF3*GetF3qQgG(t);
753
754 G4double dsdt = CLHEP::pi/p/p;
755 dsdt *= real(F123)*real(F123) + imag(F123)*imag(F123);
756 return dsdt;
757}
G4complex GetF2qQgG(G4double qp)
Definition: G4hhElastic.hh:643
G4complex GetF1qQgG(G4double qp)
Definition: G4hhElastic.hh:562
G4complex GetF3qQgG(G4double qp)
Definition: G4hhElastic.hh:692

References fCofF2, fCofF3, fMassDif2, fMassSum2, fSpp, GetF1qQgG(), GetF2qQgG(), GetF3qQgG(), and CLHEP::pi.

Referenced by BuildTableT(), and BuildTableTest().

◆ GetdsdtF12qQgG()

G4double G4hhElastic::GetdsdtF12qQgG ( G4double  s,
G4double  q 
)
inline

Definition at line 676 of file G4hhElastic.hh.

677{
678 fSpp = spp;
679 G4double p = std::sqrt((fSpp - fMassSum2)*(fSpp - fMassDif2)/4./fSpp);
680
682
683 G4double dsdt = CLHEP::pi/p/p;
684 dsdt *= real(F12)*real(F12) + imag(F12)*imag(F12);
685 return dsdt;
686}
#define F12

References F12, fMassDif2, fMassSum2, fSpp, GetF1qQgG(), GetF2qQgG(), and CLHEP::pi.

◆ GetdsdtF13qQG()

G4double G4hhElastic::GetdsdtF13qQG ( G4double  s,
G4double  q 
)
inline

Definition at line 584 of file G4hhElastic.hh.

585{
586 fSpp = spp;
587 G4double p = std::sqrt((fSpp - fMassSum2)*(fSpp - fMassDif2)/4./fSpp);
589
590 G4complex exp14 = fBqQ*std::exp(-(Phi14() + fBeta*fBeta*fLambda + fGamma*fGamma*fEta)*t);
591 G4complex exp24 = fBQ*std::exp(-(Phi24() + fAlpha*fAlpha*fLambda + fGamma*fGamma*fEta)*t);
592
593 G4complex F1 = exp14 + exp24;
594
595 F1 *= 0.25*k*fSigmaTot/CLHEP::pi;
596 F1 *= G4complex(0.,1.);
597
598 // 1424
599
600 G4complex z1424 = -(Phi24() + fAlpha*fLambda)*(Phi24() + fAlpha*fLambda);
601 z1424 /= Phi14() + Phi24() + fLambda;
602 z1424 += Phi24() + fAlpha*fAlpha*fLambda + fGamma*fGamma*fEta;
603
604
605 G4complex exp1424 = std::exp(-z1424*t);
606 exp1424 /= Phi14() + Phi24() + fLambda;
607
608 G4complex F3 = fBqQ*fBQ*exp1424;
609
610
611 F3 *= 0.25*k/CLHEP::pi;
612 F3 *= G4complex(0.,1.);
614
615 G4complex F13 = F1 - F3;
616
617 G4double dsdt = CLHEP::pi/p/p;
618 dsdt *= real(F13)*real(F13) + imag(F13)*imag(F13);
619
620 return dsdt;
621}
#define F13
G4double fBeta
Definition: G4hhElastic.hh:133
G4double fGamma
Definition: G4hhElastic.hh:138

References F13, fAlpha, fBeta, fBQ, fBqQ, fEta, fGamma, fLambda, fMassDif2, fMassSum2, fSigmaTot, fSpp, CLHEP::hbarc, Phi14(), Phi24(), and CLHEP::pi.

◆ GetdsdtF1qQgG()

G4double G4hhElastic::GetdsdtF1qQgG ( G4double  s,
G4double  q 
)
inline

Definition at line 627 of file G4hhElastic.hh.

628{
629 fSpp = spp;
630 G4double p = std::sqrt((fSpp - fMassSum2)*(fSpp - fMassDif2)/4./fSpp);
631
632 G4complex F1 = GetF1qQgG(t);
633
634 G4double dsdt = CLHEP::pi/p/p;
635 dsdt *= real(F1)*real(F1) + imag(F1)*imag(F1);
636 return dsdt;
637}

References fMassDif2, fMassSum2, fSpp, GetF1qQgG(), and CLHEP::pi.

◆ GetEnergyMomentumCheckLevels()

std::pair< G4double, G4double > G4HadronicInteraction::GetEnergyMomentumCheckLevels ( ) const
virtualinherited

◆ GetExpRatioF123()

G4double G4hhElastic::GetExpRatioF123 ( G4double  s,
G4double  q 
)
inline

Definition at line 1143 of file G4hhElastic.hh.

1144{
1145 fSpp = spp;
1146 G4double p = std::sqrt(0.25*spp - CLHEP::proton_mass_c2*CLHEP::proton_mass_c2);
1147
1148 // qQ-ds/dt
1149
1150 G4complex F1 = GetF1(t) - fCofF2*GetF2(t) - fCofF3*GetF3(t);
1151
1152 G4double dsdt = CLHEP::pi/p/p;
1153 dsdt *= real(F1)*real(F1) + imag(F1)*imag(F1);
1154
1155 // exponent ds/dt
1156
1157 G4complex F10 = GetF1(0.) - fCofF2*GetF2(0.) - fCofF3*GetF3(0.);
1158
1159 fRhoReIm = real(F10)/imag(F10);
1160
1161 G4double dsdt0 = CLHEP::pi/p/p;
1162 dsdt0 *= real(F10)*real(F10) + imag(F10)*imag(F10);
1163
1164 dsdt0 *= G4Exp(-fExpSlope*t);
1165
1166 G4double ratio = dsdt/dsdt0;
1167
1168 return ratio;
1169}
#define F10
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:179
G4double fExpSlope
Definition: G4hhElastic.hh:149

References F10, fCofF2, fCofF3, fExpSlope, fRhoReIm, fSpp, G4Exp(), GetF1(), GetF2(), GetF3(), CLHEP::pi, and CLHEP::proton_mass_c2.

◆ GetF1()

G4complex G4hhElastic::GetF1 ( G4double  qp)
inline

Definition at line 1024 of file G4hhElastic.hh.

1025{
1027 G4double k = p/CLHEP::hbarc;
1028 G4complex exp1 = fBq*std::exp(-GetAqq()*t);
1029 G4complex exp2 = fBQ*std::exp(-GetAQQ()*t);
1030 G4complex exp3 = 2.*std::sqrt(fBq*fBQ)*std::exp(-GetAqQ()*t);
1031
1032 G4complex res = exp1 + exp2 + exp3;
1033 res *= 0.25*k*fSigmaTot/CLHEP::pi;
1034 res *= G4complex(0.,1.);
1035 return res;
1036}

References fBq, fBQ, fSigmaTot, fSpp, GetAqq(), GetAQQ(), GetAqQ(), CLHEP::hbarc, CLHEP::pi, and CLHEP::proton_mass_c2.

Referenced by GetdsdtF1(), GetdsdtF12(), GetdsdtF123(), and GetExpRatioF123().

◆ GetF1qQgG()

G4complex G4hhElastic::GetF1qQgG ( G4double  qp)
inline

Definition at line 562 of file G4hhElastic.hh.

563{
564 G4double p = std::sqrt((fSpp - fMassSum2)*(fSpp - fMassDif2)/4./fSpp);
566
567 G4complex exp13 = fBq*std::exp(-(Phi13() + fBeta*fBeta*fLambda + fDelta*fDelta*fEta)*t);
568 G4complex exp14 = fBq*std::exp(-(Phi14() + fBeta*fBeta*fLambda + fGamma*fGamma*fEta)*t);
569 G4complex exp23 = fBQ*std::exp(-(Phi23() + fAlpha*fAlpha*fLambda + fDelta*fDelta*fEta)*t);
570 G4complex exp24 = fBQ*std::exp(-(Phi24() + fAlpha*fAlpha*fLambda + fGamma*fGamma*fEta)*t);
571
572 G4complex res = exp13 + exp14 + exp23 + exp24;
573
574 res *= 0.25*k*fSigmaTot/CLHEP::pi;
575 res *= G4complex(0.,1.);
576
577 return res;
578}
G4double fDelta
Definition: G4hhElastic.hh:139

References fAlpha, fBeta, fBq, fBQ, fDelta, fEta, fGamma, fLambda, fMassDif2, fMassSum2, fSigmaTot, fSpp, CLHEP::hbarc, Phi13(), Phi14(), Phi23(), Phi24(), and CLHEP::pi.

Referenced by GetdsdtF123qQgG(), GetdsdtF12qQgG(), and GetdsdtF1qQgG().

◆ GetF2()

G4complex G4hhElastic::GetF2 ( G4double  qp)
inline

Definition at line 1057 of file G4hhElastic.hh.

1058{
1060 G4double k = p/CLHEP::hbarc;
1061 G4complex z1 = GetAqq()*GetAQQ() - 16.*fLambda*fLambda/81.;
1062 z1 /= 2.*(GetAqQ() + 4.*fLambda/9.);
1063 G4complex exp1 = std::exp(-z1*t);
1064
1065 G4complex z2 = 0.5*( GetAqQ() - 4.*fLambda/9.);
1066
1067 G4complex exp2 = std::exp(-z2*t);
1068
1069 G4complex res = exp1 + exp2;
1070
1071 G4complex z3 = GetAqQ() + 4.*fLambda/9.;
1072
1073 res *= 0.25*k/CLHEP::pi;
1074 res *= G4complex(0.,1.);
1075 res /= z3;
1077
1078 return res;
1079}

References fBq, fBQ, fLambda, fSigmaTot, fSpp, GetAqq(), GetAQQ(), GetAqQ(), CLHEP::hbarc, CLHEP::pi, and CLHEP::proton_mass_c2.

Referenced by GetdsdtF12(), GetdsdtF123(), and GetExpRatioF123().

◆ GetF2qQgG()

G4complex G4hhElastic::GetF2qQgG ( G4double  qp)
inline

Definition at line 643 of file G4hhElastic.hh.

644{
645 G4double p = std::sqrt((fSpp - fMassSum2)*(fSpp - fMassDif2)/4./fSpp);
647
649 z1324 /= Phi13() + Phi24() + fLambda + fEta;
650 z1324 += Phi24() + fAlpha*fAlpha*fLambda + fGamma*fGamma*fEta;
651
652 G4complex exp1324 = std::exp(-z1324*t);
653 exp1324 /= Phi13() + Phi24() + fLambda + fEta;
654
656 z1423 /= Phi14() + Phi23() + fLambda + fEta;
657 z1423 += Phi23() + fAlpha*fAlpha*fLambda + fDelta*fDelta*fEta;
658
659 G4complex exp1423 = std::exp(-z1423*t);
660 exp1423 /= Phi14() + Phi23() + fLambda + fEta;
661
662 G4complex res = exp1324 + exp1423;
663
664
665 res *= 0.25*k/CLHEP::pi;
666 res *= G4complex(0.,1.);
668
669 return res;
670}

References fAlpha, fBq, fBQ, fDelta, fEta, fGamma, fLambda, fMassDif2, fMassSum2, fSigmaTot, fSpp, CLHEP::hbarc, Phi13(), Phi14(), Phi23(), Phi24(), and CLHEP::pi.

Referenced by GetdsdtF123qQgG(), and GetdsdtF12qQgG().

◆ GetF3()

G4complex G4hhElastic::GetF3 ( G4double  qp)
inline

Definition at line 1100 of file G4hhElastic.hh.

1101{
1103 G4double k = p/CLHEP::hbarc;
1104 G4complex z1 = GetAqq()*GetAqQ() - 4.*fLambda*fLambda/81.;
1105 z1 /= GetAqq() + GetAqQ() - 4.*fLambda/9.;
1106
1107 G4complex exp1 = std::exp(-z1*t)*fBq/(GetAqq() + GetAqQ() - 4.*fLambda/9.);
1108
1109 G4complex z2 = GetAqQ()*GetAQQ() - 1.*fLambda*fLambda/81.;
1110 z2 /= GetAQQ() + GetAqQ() + 2.*fLambda/9.;
1111
1112 G4complex exp2 = std::exp(-z2*t)*fBQ/(GetAQQ() + GetAqQ() + 2.*fLambda/9.);
1113
1114 G4complex res = exp1 + exp2;
1115
1116
1117 res *= 0.25*k/CLHEP::pi;
1118 res *= G4complex(0.,1.);
1120
1121 return res;
1122}

References fBq, fBQ, fLambda, fSigmaTot, fSpp, GetAqq(), GetAQQ(), GetAqQ(), CLHEP::hbarc, CLHEP::pi, and CLHEP::proton_mass_c2.

Referenced by GetdsdtF123(), and GetExpRatioF123().

◆ GetF3qQgG()

G4complex G4hhElastic::GetF3qQgG ( G4double  qp)
inline

Definition at line 692 of file G4hhElastic.hh.

693{
694 G4double p = std::sqrt( (fSpp - fMassSum2)*(fSpp - fMassDif2)/4./fSpp);
696
697 // 1314
698
699 G4complex z1314 = -(Phi14() + fGamma*fEta)*(Phi14() + fGamma*fEta);
700 z1314 /= Phi13() + Phi14() + fEta;
701 z1314 += Phi14() + fBeta*fBeta*fLambda + fGamma*fGamma*fEta;
702
703 G4complex exp1314 = std::exp(-z1314*t);
704 exp1314 /= Phi13() + Phi14() + fEta;
705
706 // 2324
707
708 G4complex z2324 = -(Phi24() + fGamma*fEta)*(Phi24() + fGamma*fEta);;
709 z2324 /= Phi24() + Phi23() + fEta;
710 z2324 += Phi24() + fAlpha*fAlpha*fLambda + fGamma*fGamma*fEta;
711
712 G4complex exp2324 = std::exp(-z2324*t);
713 exp2324 /= Phi24() + Phi23() + fEta;
714
715 // 1323
716
717 G4complex z1323 = -(Phi23() + fAlpha*fLambda)*(Phi23() + fAlpha*fLambda);
718 z1323 /= Phi13() + Phi23() + fLambda;
719 z1323 += Phi23() + fAlpha*fAlpha*fLambda + fDelta*fDelta*fEta;
720
721 G4complex exp1323 = std::exp(-z1323*t);
722 exp1323 /= Phi13() + Phi23() + fLambda;
723
724 // 1424
725
726 G4complex z1424 = -(Phi24() + fAlpha*fLambda)*(Phi24() + fAlpha*fLambda);
727 z1424 /= Phi14() + Phi24() + fLambda;
728 z1424 += Phi24() + fAlpha*fAlpha*fLambda + fGamma*fGamma*fEta;
729
730 G4complex exp1424 = std::exp(-z1424*t);
731 exp1424 /= Phi14() + Phi24() + fLambda;
732
733 G4complex res = fBq*fBq*exp1314 + fBQ*fBQ*exp2324 + fBq*fBQ*exp1323 + fBq*fBQ*exp1424;
734
735 res *= 0.25*k/CLHEP::pi;
736 res *= G4complex(0.,1.);
738
739 return res;
740}

References fAlpha, fBeta, fBq, fBQ, fDelta, fEta, fGamma, fLambda, fMassDif2, fMassSum2, fSigmaTot, fSpp, CLHEP::hbarc, Phi13(), Phi14(), Phi23(), Phi24(), and CLHEP::pi.

Referenced by GetdsdtF123qQgG().

◆ GetFatalEnergyCheckLevels()

const std::pair< G4double, G4double > G4HadronicInteraction::GetFatalEnergyCheckLevels ( ) const
virtualinherited

Reimplemented in G4FissLib, G4LFission, G4LENDFission, G4ParticleHPCapture, G4ParticleHPElastic, G4ParticleHPFission, G4ParticleHPInelastic, and G4ParticleHPThermalScattering.

Definition at line 210 of file G4HadronicInteraction.cc.

211{
212 // default level of Check
213 return std::pair<G4double, G4double>(2.*perCent, 1. * GeV);
214}
static constexpr double perCent
Definition: G4SIunits.hh:325

References GeV, and perCent.

Referenced by G4HadronicProcess::CheckResult().

◆ GetImCof()

G4double G4hhElastic::GetImCof ( )
inline

Definition at line 186 of file G4hhElastic.hh.

186{return fImCof;};

References fImCof.

◆ GetMaxEnergy() [1/2]

G4double G4HadronicInteraction::GetMaxEnergy ( ) const
inlineinherited

◆ GetMaxEnergy() [2/2]

G4double G4HadronicInteraction::GetMaxEnergy ( const G4Material aMaterial,
const G4Element anElement 
) const
inherited

Definition at line 131 of file G4HadronicInteraction.cc.

133{
134 if(!IsBlocked()) { return theMaxEnergy; }
135 if( IsBlocked(aMaterial) || IsBlocked(anElement) ) { return 0.0; }
136 if(!theMaxEnergyListElements.empty()) {
137 for(auto const& elmlist : theMaxEnergyListElements) {
138 if( anElement == elmlist.second )
139 { return elmlist.first; }
140 }
141 }
142 if(!theMaxEnergyList.empty()) {
143 for(auto const& matlist : theMaxEnergyList) {
144 if( aMaterial == matlist.second )
145 { return matlist.first; }
146 }
147 }
148 return theMaxEnergy;
149}
std::vector< std::pair< G4double, const G4Material * > > theMaxEnergyList
std::vector< std::pair< G4double, const G4Element * > > theMaxEnergyListElements

References G4HadronicInteraction::IsBlocked(), G4HadronicInteraction::theMaxEnergy, G4HadronicInteraction::theMaxEnergyList, and G4HadronicInteraction::theMaxEnergyListElements.

◆ GetMinEnergy() [1/2]

G4double G4HadronicInteraction::GetMinEnergy ( ) const
inlineinherited

◆ GetMinEnergy() [2/2]

G4double G4HadronicInteraction::GetMinEnergy ( const G4Material aMaterial,
const G4Element anElement 
) const
inherited

Definition at line 81 of file G4HadronicInteraction.cc.

83{
84 if(!IsBlocked()) { return theMinEnergy; }
85 if( IsBlocked(aMaterial) || IsBlocked(anElement) ) { return DBL_MAX; }
86 if(!theMinEnergyListElements.empty()) {
87 for(auto const& elmlist : theMinEnergyListElements) {
88 if( anElement == elmlist.second )
89 { return elmlist.first; }
90 }
91 }
92 if(!theMinEnergyList.empty()) {
93 for(auto const & matlist : theMinEnergyList) {
94 if( aMaterial == matlist.second )
95 { return matlist.first; }
96 }
97 }
98 return theMinEnergy;
99}
std::vector< std::pair< G4double, const G4Element * > > theMinEnergyListElements
std::vector< std::pair< G4double, const G4Material * > > theMinEnergyList
#define DBL_MAX
Definition: templates.hh:62

References DBL_MAX, G4HadronicInteraction::IsBlocked(), G4HadronicInteraction::theMinEnergy, G4HadronicInteraction::theMinEnergyList, and G4HadronicInteraction::theMinEnergyListElements.

◆ GetModelName()

const G4String & G4HadronicInteraction::GetModelName ( ) const
inlineinherited

Definition at line 115 of file G4HadronicInteraction.hh.

116 { return theModelName; }

References G4HadronicInteraction::theModelName.

Referenced by G4MuMinusCapturePrecompound::ApplyYourself(), G4HadronElastic::ApplyYourself(), G4INCLXXInterface::ApplyYourself(), G4TheoFSGenerator::ApplyYourself(), G4HadronStoppingProcess::AtRestDoIt(), G4VHadronPhysics::BuildModel(), G4HadronicProcess::CheckEnergyMomentumConservation(), G4HadronicProcess::CheckResult(), G4ChargeExchangePhysics::ConstructProcess(), G4MuonicAtomDecay::DecayIt(), G4LENDModel::DumpLENDTargetInfo(), G4AblaInterface::G4AblaInterface(), G4ElectroVDNuclearModel::G4ElectroVDNuclearModel(), G4EMDissociation::G4EMDissociation(), G4ExcitedStringDecay::G4ExcitedStringDecay(), G4LEHadronProtonElastic::G4LEHadronProtonElastic(), G4LENDModel::G4LENDModel(), G4LENDorBERTModel::G4LENDorBERTModel(), G4LEnp::G4LEnp(), G4LEpp::G4LEpp(), G4LFission::G4LFission(), G4LowEGammaNuclearModel::G4LowEGammaNuclearModel(), G4LowEIonFragmentation::G4LowEIonFragmentation(), G4MuonVDNuclearModel::G4MuonVDNuclearModel(), G4NeutrinoElectronCcModel::G4NeutrinoElectronCcModel(), G4NeutrinoNucleusModel::G4NeutrinoNucleusModel(), G4WilsonAbrasionModel::G4WilsonAbrasionModel(), G4INCLXXInterface::GetDeExcitationModelName(), G4EnergyRangeManager::GetHadronicInteraction(), G4VHighEnergyGenerator::GetProjectileNucleus(), G4NeutronRadCapture::InitialiseModel(), G4BinaryCascade::ModelDescription(), G4LMsdGenerator::ModelDescription(), G4VPartonStringModel::ModelDescription(), G4TheoFSGenerator::ModelDescription(), G4VHadronPhysics::NewModel(), G4NeutrinoElectronProcess::PostStepDoIt(), G4HadronicProcess::PostStepDoIt(), G4ElNeutrinoNucleusProcess::PostStepDoIt(), G4HadronElasticProcess::PostStepDoIt(), G4MuNeutrinoNucleusProcess::PostStepDoIt(), G4HadronicProcessStore::PrintModelHtml(), G4BinaryCascade::PropagateModelDescription(), G4HadronicProcessStore::RegisterInteraction(), and G4LENDModel::returnUnchanged().

◆ GetOpticalRatio()

G4double G4hhElastic::GetOpticalRatio ( )
inline

Definition at line 942 of file G4hhElastic.hh.

943{
944 return fOptRatio;
945 // G4double sqrtBqBQ = std::sqrt(fBq*fBQ);
946 // G4double result = fBq + fBQ + 2.*sqrtBqBQ - 1.;
947 // result /= sqrtBqBQ*( GetCofS1()*sqrtBqBQ + GetCofS2()*fBq + GetCofS3()*fBQ );
948 // return result;
949}

References fOptRatio.

◆ GetRA()

G4double G4hhElastic::GetRA ( )
inline

Definition at line 194 of file G4hhElastic.hh.

194{ return fRA;};
G4double fRA
Definition: G4hhElastic.hh:129

References fRA.

Referenced by SetParametersCMS().

◆ GetRB()

G4double G4hhElastic::GetRB ( )
inline

Definition at line 198 of file G4hhElastic.hh.

198{ return fRB;};
G4double fRB
Definition: G4hhElastic.hh:135

References fRB.

Referenced by SetParametersCMS().

◆ GetRecoilEnergyThreshold()

G4double G4HadronicInteraction::GetRecoilEnergyThreshold ( ) const
inlineinherited

◆ GetRg()

G4double G4hhElastic::GetRg ( )
inline

Definition at line 199 of file G4hhElastic.hh.

199{ return fRg;};
G4double fRg
Definition: G4hhElastic.hh:137

References fRg.

◆ GetRG()

G4double G4hhElastic::GetRG ( )
inline

Definition at line 200 of file G4hhElastic.hh.

200{ return fRG;};
G4double fRG
Definition: G4hhElastic.hh:136

References fRG.

◆ GetRhoReIm()

G4double G4hhElastic::GetRhoReIm ( )
inline

Definition at line 175 of file G4hhElastic.hh.

175{ return fRhoReIm;};

References fRhoReIm.

◆ GetRq()

G4double G4hhElastic::GetRq ( )
inline

Definition at line 195 of file G4hhElastic.hh.

195{ return fRq;};

References fRq.

◆ GetRQ()

G4double G4hhElastic::GetRQ ( )
inline

Definition at line 196 of file G4hhElastic.hh.

196{ return fRQ;};

References fRQ.

◆ GetSlopeCof()

G4double G4HadronElastic::GetSlopeCof ( const G4int  pdg)
inherited

Definition at line 277 of file G4HadronElastic.cc.

278{
279 // The input parameter "pdg" should be the absolute value of the PDG code
280 // (i.e. the same value for a particle and its antiparticle).
281
282 G4double coeff = 1.0;
283
284 // heavy barions
285
286 static const G4double lBarCof1S = 0.88;
287 static const G4double lBarCof2S = 0.76;
288 static const G4double lBarCof3S = 0.64;
289 static const G4double lBarCof1C = 0.784378;
290 static const G4double lBarCofSC = 0.664378;
291 static const G4double lBarCof2SC = 0.544378;
292 static const G4double lBarCof1B = 0.740659;
293 static const G4double lBarCofSB = 0.620659;
294 static const G4double lBarCof2SB = 0.500659;
295
296 if( pdg == 3122 || pdg == 3222 || pdg == 3112 || pdg == 3212 )
297 {
298 coeff = lBarCof1S; // Lambda, Sigma+, Sigma-, Sigma0
299
300 } else if( pdg == 3322 || pdg == 3312 )
301 {
302 coeff = lBarCof2S; // Xi-, Xi0
303 }
304 else if( pdg == 3324)
305 {
306 coeff = lBarCof3S; // Omega
307 }
308 else if( pdg == 4122 || pdg == 4212 || pdg == 4222 || pdg == 4112 )
309 {
310 coeff = lBarCof1C; // LambdaC+, SigmaC+, SigmaC++, SigmaC0
311 }
312 else if( pdg == 4332 )
313 {
314 coeff = lBarCof2SC; // OmegaC
315 }
316 else if( pdg == 4232 || pdg == 4132 )
317 {
318 coeff = lBarCofSC; // XiC+, XiC0
319 }
320 else if( pdg == 5122 || pdg == 5222 || pdg == 5112 || pdg == 5212 )
321 {
322 coeff = lBarCof1B; // LambdaB, SigmaB+, SigmaB-, SigmaB0
323 }
324 else if( pdg == 5332 )
325 {
326 coeff = lBarCof2SB; // OmegaB-
327 }
328 else if( pdg == 5132 || pdg == 5232 ) // XiB-, XiB0
329 {
330 coeff = lBarCofSB;
331 }
332 // heavy mesons Kaons?
333 static const G4double lMesCof1S = 0.82; // Kp/piP kaons?
334 static const G4double llMesCof1C = 0.676568;
335 static const G4double llMesCof1B = 0.610989;
336 static const G4double llMesCof2C = 0.353135;
337 static const G4double llMesCof2B = 0.221978;
338 static const G4double llMesCofSC = 0.496568;
339 static const G4double llMesCofSB = 0.430989;
340 static const G4double llMesCofCB = 0.287557;
341 static const G4double llMesCofEtaP = 0.88;
342 static const G4double llMesCofEta = 0.76;
343
344 if( pdg == 321 || pdg == 311 || pdg == 310 )
345 {
346 coeff = lMesCof1S; //K+-0
347 }
348 else if( pdg == 511 || pdg == 521 )
349 {
350 coeff = llMesCof1B; // BMeson0, BMeson+
351 }
352 else if(pdg == 421 || pdg == 411 )
353 {
354 coeff = llMesCof1C; // DMeson+, DMeson0
355 }
356 else if( pdg == 531 )
357 {
358 coeff = llMesCofSB; // BSMeson0
359 }
360 else if( pdg == 541 )
361 {
362 coeff = llMesCofCB; // BCMeson+-
363 }
364 else if(pdg == 431 )
365 {
366 coeff = llMesCofSC; // DSMeson+-
367 }
368 else if(pdg == 441 || pdg == 443 )
369 {
370 coeff = llMesCof2C; // Etac, JPsi
371 }
372 else if(pdg == 553 )
373 {
374 coeff = llMesCof2B; // Upsilon
375 }
376 else if(pdg == 221 )
377 {
378 coeff = llMesCofEta; // Eta
379 }
380 else if(pdg == 331 )
381 {
382 coeff = llMesCofEtaP; // Eta'
383 }
384 return coeff;
385}

◆ GetSpp()

G4double G4hhElastic::GetSpp ( )
inline

Definition at line 166 of file G4hhElastic.hh.

166{return fSpp;};

References fSpp.

◆ GetTransfer()

G4double G4hhElastic::GetTransfer ( G4int  iMomentum,
G4int  iTransfer,
G4double  position 
)

Definition at line 629 of file G4hhElastic.cc.

630{
631 G4double x1, x2, y1, y2, randTransfer, delta, mean, epsilon = 1.e-6;
632
633 if( iTransfer == 0 )
634 {
635 randTransfer = (*fTableT)(iTkin)->GetLowEdgeEnergy(iTransfer);
636 // iTransfer++;
637 }
638 else
639 {
640 if ( iTransfer >= G4int((*fTableT)(iTkin)->GetVectorLength()) )
641 {
642 iTransfer = (*fTableT)(iTkin)->GetVectorLength() - 1;
643 }
644 y1 = (*(*fTableT)(iTkin))(iTransfer-1);
645 y2 = (*(*fTableT)(iTkin))(iTransfer);
646
647 x1 = (*fTableT)(iTkin)->GetLowEdgeEnergy(iTransfer-1);
648 x2 = (*fTableT)(iTkin)->GetLowEdgeEnergy(iTransfer);
649
650 delta = y2 - y1;
651 mean = y2 + y1;
652
653 if ( x1 == x2 ) randTransfer = x2;
654 else
655 {
656 // if ( y1 == y2 )
657 if ( delta < epsilon*mean )
658 randTransfer = x1 + ( x2 - x1 )*G4UniformRand();
659 else randTransfer = x1 + ( position - y1 )*( x2 - x1 )/delta; // ( y2 - y1 );
660 }
661 }
662 return randTransfer;
663}
G4double epsilon(G4double density, G4double temperature)

References epsilon(), fTableT, and G4UniformRand.

Referenced by SampleBisectionalT(), SampleInvariantT(), and SampleTest().

◆ GetVerboseLevel()

G4int G4HadronicInteraction::GetVerboseLevel ( ) const
inlineinherited

Definition at line 109 of file G4HadronicInteraction.hh.

110 { return verboseLevel; }

References G4HadronicInteraction::verboseLevel.

◆ Initialise()

void G4hhElastic::Initialise ( )

Definition at line 230 of file G4hhElastic.cc.

231{
232 // pp,pn
233
236 fBankT.push_back(fTableT); // 0
237
238 // pi+-p
239
242 fBankT.push_back(fTableT); // 1
243 //K+-p
246 fBankT.push_back(fTableT); // 2
247
248}
static G4KaonPlus * KaonPlus()
Definition: G4KaonPlus.cc:112
void BuildTableT(G4ParticleDefinition *target, G4ParticleDefinition *projectile)
Definition: G4hhElastic.cc:254

References BuildTableT(), fBankT, fProjectile, fTableT, fTarget, G4KaonPlus::KaonPlus(), G4PionPlus::PionPlus(), and G4Proton::Proton().

Referenced by G4hhElastic().

◆ InitialiseModel()

void G4HadronicInteraction::InitialiseModel ( )
virtualinherited

◆ IsApplicable()

G4bool G4hhElastic::IsApplicable ( const G4HadProjectile projectile,
G4Nucleus nucleus 
)
inlinevirtual

Reimplemented from G4HadronicInteraction.

Definition at line 256 of file G4hhElastic.hh.

258{
259 if( ( projectile.GetDefinition() == G4Proton::Proton() ||
260 projectile.GetDefinition() == G4Neutron::Neutron() ||
261 projectile.GetDefinition() == G4PionPlus::PionPlus() ||
262 projectile.GetDefinition() == G4PionMinus::PionMinus() ||
263 projectile.GetDefinition() == G4KaonPlus::KaonPlus() ||
264 projectile.GetDefinition() == G4KaonMinus::KaonMinus() ) &&
265
266 nucleus.GetZ_asInt() < 2 ) return true;
267 else return false;
268}
static G4KaonMinus * KaonMinus()
Definition: G4KaonMinus.cc:112

References G4HadProjectile::GetDefinition(), G4Nucleus::GetZ_asInt(), G4KaonMinus::KaonMinus(), G4KaonPlus::KaonPlus(), G4Neutron::Neutron(), G4PionMinus::PionMinus(), G4PionPlus::PionPlus(), and G4Proton::Proton().

◆ IsBlocked() [1/3]

G4bool G4HadronicInteraction::IsBlocked ( ) const
inlineprotectedinherited

◆ IsBlocked() [2/3]

G4bool G4HadronicInteraction::IsBlocked ( const G4Element anElement) const
inherited

Definition at line 202 of file G4HadronicInteraction.cc.

203{
204 for (auto const& elm : theBlockedListElements) {
205 if (anElement == elm) return true;
206 }
207 return false;
208}

References G4HadronicInteraction::theBlockedListElements.

◆ IsBlocked() [3/3]

G4bool G4HadronicInteraction::IsBlocked ( const G4Material aMaterial) const
inherited

Definition at line 193 of file G4HadronicInteraction.cc.

194{
195 for (auto const& mat : theBlockedList) {
196 if (aMaterial == mat) return true;
197 }
198 return false;
199}

References G4HadronicInteraction::theBlockedList.

◆ LowestEnergyLimit()

G4double G4HadronElastic::LowestEnergyLimit ( ) const
inlineinherited

◆ ModelDescription()

void G4HadronElastic::ModelDescription ( std::ostream &  outFile) const
overridevirtualinherited

Reimplemented from G4HadronicInteraction.

Reimplemented in G4NeutrinoElectronNcModel, and G4NeutronElectronElModel.

Definition at line 70 of file G4HadronElastic.cc.

71{
72 outFile << "G4HadronElastic is the base class for all hadron-nucleus\n"
73 << "elastic scattering models except HP.\n"
74 << "By default it uses the Gheisha two-exponential momentum\n"
75 << "transfer parameterization. The model is fully relativistic\n"
76 << "as opposed to the original Gheisha model which was not.\n"
77 << "This model may be used for all long-lived hadrons at all\n"
78 << "incident energies but fit the data only for relativistic scattering.\n";
79}

◆ operator!=()

G4bool G4HadronicInteraction::operator!= ( const G4HadronicInteraction right) const
deleteinherited

◆ operator==()

G4bool G4HadronicInteraction::operator== ( const G4HadronicInteraction right) const
deleteinherited

◆ Phi13()

G4complex G4hhElastic::Phi13 ( )
inline

Definition at line 520 of file G4hhElastic.hh.

521{
522 G4double re = (fRq*fRq + fRg*fRg)/16.;
523 G4complex result(re,0.);
524 result += Pomeron();
525 return result;
526}
G4complex Pomeron()
Definition: G4hhElastic.hh:509

References fRg, fRq, and Pomeron().

Referenced by CalculateBqQ12(), CalculateBqQ123(), GetF1qQgG(), GetF2qQgG(), and GetF3qQgG().

◆ Phi14()

G4complex G4hhElastic::Phi14 ( )
inline

Definition at line 530 of file G4hhElastic.hh.

531{
532 G4double re = (fRq*fRq + fRG*fRG)/16.;
533 G4complex result(re,0.);
534 result += Pomeron();
535 return result;
536}

References fRG, fRq, and Pomeron().

Referenced by CalculateBqQ12(), CalculateBqQ123(), CalculateBqQ13(), GetdsdtF13qQG(), GetF1qQgG(), GetF2qQgG(), and GetF3qQgG().

◆ Phi23()

G4complex G4hhElastic::Phi23 ( )
inline

Definition at line 540 of file G4hhElastic.hh.

541{
542 G4double re = (fRQ*fRQ + fRg*fRg)/16.;
543 G4complex result(re,0.);
544 result += Pomeron();
545 return result;
546}

References fRg, fRQ, and Pomeron().

Referenced by CalculateBqQ12(), CalculateBqQ123(), GetF1qQgG(), GetF2qQgG(), and GetF3qQgG().

◆ Phi24()

G4complex G4hhElastic::Phi24 ( )
inline

Definition at line 550 of file G4hhElastic.hh.

551{
552 G4double re = (fRQ*fRQ + fRG*fRG)/16.;
553 G4complex result(re,0.);
554 result += Pomeron();
555 return result;
556}

References fRG, fRQ, and Pomeron().

Referenced by CalculateBqQ12(), CalculateBqQ123(), CalculateBqQ13(), GetdsdtF13qQG(), GetF1qQgG(), GetF2qQgG(), and GetF3qQgG().

◆ Pomeron()

G4complex G4hhElastic::Pomeron ( )
inline

Definition at line 509 of file G4hhElastic.hh.

510{
511 G4double re, im;
512
513 re = fAlphaP*G4Log(fSpp/fSo);
514 im = -0.5*fAlphaP*fImCof*CLHEP::pi;
515 return G4complex(re,im);
516}

References fAlphaP, fImCof, fSo, fSpp, G4Log(), and CLHEP::pi.

Referenced by Phi13(), Phi14(), Phi23(), and Phi24().

◆ SampleBisectionalT()

G4double G4hhElastic::SampleBisectionalT ( const G4ParticleDefinition p,
G4double  plab 
)

Definition at line 439 of file G4hhElastic.cc.

440{
441 G4int iTkin, iTransfer;
442 G4double t, position, m1 = aParticle->GetPDGMass();
443 G4double Tkin = std::sqrt(m1*m1+p*p) - m1;
444
445 if( aParticle == G4Proton::Proton() || aParticle == G4Neutron::Neutron() )
446 {
447 fTableT = fBankT[0];
448 }
449 if( aParticle == G4PionPlus::PionPlus() || aParticle == G4PionMinus::PionMinus() )
450 {
451 fTableT = fBankT[1];
452 }
453 if( aParticle == G4KaonPlus::KaonPlus() || aParticle == G4KaonMinus::KaonMinus() )
454 {
455 fTableT = fBankT[2];
456 }
457 G4double delta = std::abs(Tkin - fOldTkin)/(Tkin + fOldTkin);
458 G4double deltaMax = 1.e-2;
459
460 if ( delta < deltaMax ) iTkin = fInTkin;
461 else
462 {
463 for( iTkin = 0; iTkin < fEnergyBin; iTkin++ )
464 {
465 if( Tkin < fEnergyVector->GetLowEdgeEnergy(iTkin) ) break;
466 }
467 }
468 if ( iTkin >= fEnergyBin ) iTkin = fEnergyBin-1; // Tkin is more then theMaxEnergy
469 if ( iTkin < 0 ) iTkin = 0; // against negative index, Tkin < theMinEnergy
470
471 fOldTkin = Tkin;
472 fInTkin = iTkin;
473
474 if (iTkin == fEnergyBin -1 || iTkin == 0 ) // the table edges
475 {
476 position = (*(*fTableT)(iTkin))(0)*G4UniformRand();
477
478 for(iTransfer = 0; iTransfer < fBinT-1; iTransfer++)
479 {
480 if( position >= (*(*fTableT)(iTkin))(iTransfer) ) break;
481 }
482 if (iTransfer >= fBinT-1) iTransfer = fBinT-2;
483
484 t = GetTransfer(iTkin, iTransfer, position);
485
486
487 }
488 else // Tkin inside between energy table edges
489 {
490 G4double rand = G4UniformRand();
491 position = (*(*fTableT)(iTkin))(0)*rand;
492
493 //
494 // (*fTableT)(iTkin)->GetLowEdgeEnergy(fBinT-2);
495 G4int sTransfer = 0, fTransfer = fBinT - 2, dTransfer = fTransfer - sTransfer;
496 G4double y2;
497
498 for( iTransfer = 0; iTransfer < fBinT - 1; iTransfer++ )
499 {
500 // dTransfer %= 2;
501 dTransfer /= 2;
502 // dTransfer *= 0.5;
503 y2 = (*(*fTableT)(iTkin))( sTransfer + dTransfer );
504
505 if( y2 > position ) sTransfer += dTransfer;
506
507 // if( dTransfer <= 1 ) break;
508 if( dTransfer < 1 ) break;
509 }
510 t = (*fTableT)(iTkin)->GetLowEdgeEnergy(sTransfer); // +(-0.5+rand)*(*fTableT)(iTkin)->GetLowEdgeEnergy(3);
511 }
512 return t;
513}
G4double GetTransfer(G4int iMomentum, G4int iTransfer, G4double position)
Definition: G4hhElastic.cc:629
#define position
Definition: xmlparse.cc:622

References fBankT, fBinT, fEnergyBin, fInTkin, fOldTkin, fTableT, G4UniformRand, G4ParticleDefinition::GetPDGMass(), GetTransfer(), G4KaonMinus::KaonMinus(), G4KaonPlus::KaonPlus(), G4Neutron::Neutron(), G4PionMinus::PionMinus(), G4PionPlus::PionPlus(), position, and G4Proton::Proton().

◆ SampleInvariantT()

G4double G4hhElastic::SampleInvariantT ( const G4ParticleDefinition p,
G4double  plab,
G4int  ,
G4int   
)
virtual

Reimplemented from G4HadronElastic.

Definition at line 322 of file G4hhElastic.cc.

324{
325 G4int iTkin, iTransfer;
326 G4double t, t2, position, m1 = aParticle->GetPDGMass();
327 G4double Tkin = std::sqrt(m1*m1+p*p) - m1;
328
329 if( aParticle == G4Proton::Proton() || aParticle == G4Neutron::Neutron() )
330 {
331 fTableT = fBankT[0];
332 }
333 if( aParticle == G4PionPlus::PionPlus() || aParticle == G4PionMinus::PionMinus() )
334 {
335 fTableT = fBankT[1];
336 }
337 if( aParticle == G4KaonPlus::KaonPlus() || aParticle == G4KaonMinus::KaonMinus() )
338 {
339 fTableT = fBankT[2];
340 }
341
342 G4double delta = std::abs(Tkin - fOldTkin)/(Tkin + fOldTkin);
343 G4double deltaMax = 1.e-2;
344
345 if ( delta < deltaMax ) iTkin = fInTkin;
346 else
347 {
348 for( iTkin = 0; iTkin < fEnergyBin; iTkin++)
349 {
350 if( Tkin < fEnergyVector->GetLowEdgeEnergy(iTkin) ) break;
351 }
352 }
353 if ( iTkin >= fEnergyBin ) iTkin = fEnergyBin-1; // Tkin is more then theMaxEnergy
354 if ( iTkin < 0 ) iTkin = 0; // against negative index, Tkin < theMinEnergy
355
356 fOldTkin = Tkin;
357 fInTkin = iTkin;
358
359 if (iTkin == fEnergyBin -1 || iTkin == 0 ) // the table edges
360 {
361 position = (*(*fTableT)(iTkin))(0)*G4UniformRand();
362
363 // G4cout<<"position = "<<position<<G4endl;
364
365 for(iTransfer = 0; iTransfer < fBinT-1; iTransfer++)
366 {
367 if( position >= (*(*fTableT)(iTkin))(iTransfer) ) break;
368 }
369 if (iTransfer >= fBinT-1) iTransfer = fBinT-2;
370
371 // G4cout<<"iTransfer = "<<iTransfer<<G4endl;
372
373 t = GetTransfer(iTkin, iTransfer, position);
374
375 // G4cout<<"t = "<<t<<G4endl;
376 }
377 else // Tkin inside between energy table edges
378 {
379 // position = (*(*fTableT)(iTkin))(fBinT-2)*G4UniformRand();
380 position = (*(*fTableT)(iTkin))(0)*G4UniformRand();
381
382 // G4cout<<"position = "<<position<<G4endl;
383
384 for(iTransfer = 0; iTransfer < fBinT-1; iTransfer++)
385 {
386 // if( position < (*(*fTableT)(iTkin))(iTransfer) ) break;
387 if( position >= (*(*fTableT)(iTkin))(iTransfer) ) break;
388 }
389 if (iTransfer >= fBinT-1) iTransfer = fBinT-2;
390
391 // G4cout<<"iTransfer = "<<iTransfer<<G4endl;
392
393 t2 = GetTransfer(iTkin, iTransfer, position);
394 return t2;
395 /*
396 G4double t1, E1, E2, W, W1, W2;
397 // G4cout<<"t2 = "<<t2<<G4endl;
398
399 E2 = fEnergyVector->GetLowEdgeEnergy(iTkin);
400
401 // G4cout<<"E2 = "<<E2<<G4endl;
402
403 iTkin--;
404
405 // position = (*(*fTableT)(iTkin))(fBinT-2)*G4UniformRand();
406
407 // G4cout<<"position = "<<position<<G4endl;
408
409 for(iTransfer = 0; iTransfer < fBinT-1; iTransfer++)
410 {
411 // if( position < (*(*fTableT)(iTkin))(iTransfer) ) break;
412 if( position >= (*(*fTableT)(iTkin))(iTransfer) ) break;
413 }
414 if (iTransfer >= fBinT-1) iTransfer = fBinT-2;
415
416 t1 = GetTransfer(iTkin, iTransfer, position);
417
418 // G4cout<<"t1 = "<<t1<<G4endl;
419
420 E1 = fEnergyVector->GetLowEdgeEnergy(iTkin);
421
422 // G4cout<<"E1 = "<<E1<<G4endl;
423
424 W = 1.0/(E2 - E1);
425 W1 = (E2 - Tkin)*W;
426 W2 = (Tkin - E1)*W;
427
428 t = W1*t1 + W2*t2;
429 */
430 }
431 return t;
432}

References fBankT, fBinT, fEnergyBin, fInTkin, fOldTkin, fTableT, G4UniformRand, G4ParticleDefinition::GetPDGMass(), GetTransfer(), G4KaonMinus::KaonMinus(), G4KaonPlus::KaonPlus(), G4Neutron::Neutron(), G4PionMinus::PionMinus(), G4PionPlus::PionPlus(), position, and G4Proton::Proton().

◆ SampleTest()

G4double G4hhElastic::SampleTest ( G4double  tMin)

Definition at line 593 of file G4hhElastic.cc.

594{
595 G4int iTkin, iTransfer, iTmin;
597 // G4double qMin = std::sqrt(tMin);
598
599 fTableT = fBankT[0];
600 iTkin = 0;
601
602 for(iTransfer = 0; iTransfer < fBinT-1; iTransfer++)
603 {
604 // if( qMin <= (*fTableT)(iTkin)->GetLowEdgeEnergy(iTransfer) ) break;
605 if( tMin <= (*fTableT)(iTkin)->GetLowEdgeEnergy(iTransfer) ) break;
606 }
607 iTmin = iTransfer-1;
608 if(iTmin < 0 ) iTmin = 0;
609
610 position = (*(*fTableT)(iTkin))(iTmin)*G4UniformRand();
611
612 for( iTmin = 0; iTransfer < fBinT-1; iTransfer++)
613 {
614 if( position > (*(*fTableT)(iTkin))(iTransfer) ) break;
615 }
616 if (iTransfer >= fBinT-1) iTransfer = fBinT-2;
617
618 t = GetTransfer(iTkin, iTransfer, position);
619
620 return t;
621}

References fBankT, fBinT, fTableT, G4UniformRand, GetTransfer(), and position.

◆ SetAlphaP()

void G4hhElastic::SetAlphaP ( G4double  a)
inline

Definition at line 184 of file G4hhElastic.hh.

184{fAlphaP = a;};

References fAlphaP.

◆ SetBq()

void G4hhElastic::SetBq ( G4double  b)
inline

Definition at line 172 of file G4hhElastic.hh.

172{fBq = b;};

References fBq.

Referenced by SetParametersCMS().

◆ SetBQ()

void G4hhElastic::SetBQ ( G4double  b)
inline

Definition at line 173 of file G4hhElastic.hh.

173{fBQ = b;};

References fBQ.

Referenced by SetParametersCMS().

◆ SetBqQ()

void G4hhElastic::SetBqQ ( G4double  b)
inline

Definition at line 174 of file G4hhElastic.hh.

174{fBqQ = b;};

References fBqQ.

◆ SetCofF2()

void G4hhElastic::SetCofF2 ( G4double  f)
inline

Definition at line 189 of file G4hhElastic.hh.

189{fCofF2 = f;};

References fCofF2.

Referenced by SetParametersCMS().

◆ SetCofF3()

void G4hhElastic::SetCofF3 ( G4double  f)
inline

Definition at line 190 of file G4hhElastic.hh.

190{fCofF3 = f;};

References fCofF3.

Referenced by SetParametersCMS().

◆ SetEnergyMomentumCheckLevels()

void G4HadronicInteraction::SetEnergyMomentumCheckLevels ( G4double  relativeLevel,
G4double  absoluteLevel 
)
inlineinherited

Definition at line 149 of file G4HadronicInteraction.hh.

150 { epCheckLevels.first = relativeLevel;
151 epCheckLevels.second = absoluteLevel; }

References G4HadronicInteraction::epCheckLevels.

Referenced by G4BinaryCascade::G4BinaryCascade(), G4CascadeInterface::G4CascadeInterface(), and G4FTFModel::G4FTFModel().

◆ SetEta()

void G4hhElastic::SetEta ( G4double  E)
inline

Definition at line 188 of file G4hhElastic.hh.

188{fEta = E;};

References fEta.

Referenced by SetParametersCMS().

◆ SetImCof()

void G4hhElastic::SetImCof ( G4double  a)
inline

Definition at line 185 of file G4hhElastic.hh.

185{fImCof = a;};

References fImCof.

Referenced by SetParametersCMS().

◆ SetLambda()

void G4hhElastic::SetLambda ( G4double  L)
inline

Definition at line 187 of file G4hhElastic.hh.

187{fLambda = L;};
static constexpr double L
Definition: G4SIunits.hh:104

References fLambda, and L.

Referenced by SetParametersCMS().

◆ SetLowestEnergyLimit()

void G4HadronElastic::SetLowestEnergyLimit ( G4double  value)
inlineinherited

◆ SetMaxEnergy() [1/3]

void G4HadronicInteraction::SetMaxEnergy ( const G4double  anEnergy)
inlineinherited

Definition at line 102 of file G4HadronicInteraction.hh.

103 { theMaxEnergy = anEnergy; }

References G4HadronicInteraction::theMaxEnergy.

Referenced by G4HadronicInteraction::ActivateFor(), G4IonINCLXXPhysics::AddProcess(), G4BertiniElectroNuclearBuilder::Build(), G4LENDBertiniGammaElectroNuclearBuilder::Build(), G4NeutronLENDBuilder::Build(), G4NeutronPHPBuilder::Build(), G4AlphaPHPBuilder::Build(), G4BertiniKaonBuilder::Build(), G4BertiniNeutronBuilder::Build(), G4BertiniPiKBuilder::Build(), G4BertiniPionBuilder::Build(), G4BertiniProtonBuilder::Build(), G4BinaryAlphaBuilder::Build(), G4BinaryDeuteronBuilder::Build(), G4BinaryHe3Builder::Build(), G4BinaryNeutronBuilder::Build(), G4BinaryPiKBuilder::Build(), G4BinaryPionBuilder::Build(), G4BinaryProtonBuilder::Build(), G4BinaryTritonBuilder::Build(), G4DeuteronPHPBuilder::Build(), G4FTFBinaryKaonBuilder::Build(), G4FTFBinaryNeutronBuilder::Build(), G4FTFBinaryPionBuilder::Build(), G4FTFBinaryProtonBuilder::Build(), G4FTFPAntiBarionBuilder::Build(), G4FTFPKaonBuilder::Build(), G4FTFPNeutronBuilder::Build(), G4FTFPPiKBuilder::Build(), G4FTFPPionBuilder::Build(), G4FTFPProtonBuilder::Build(), G4He3PHPBuilder::Build(), G4HyperonFTFPBuilder::Build(), G4HyperonQGSPBuilder::Build(), G4INCLXXNeutronBuilder::Build(), G4INCLXXPionBuilder::Build(), G4INCLXXProtonBuilder::Build(), G4PrecoNeutronBuilder::Build(), G4PrecoProtonBuilder::Build(), G4ProtonPHPBuilder::Build(), G4QGSBinaryKaonBuilder::Build(), G4QGSBinaryNeutronBuilder::Build(), G4QGSBinaryPiKBuilder::Build(), G4QGSBinaryPionBuilder::Build(), G4QGSBinaryProtonBuilder::Build(), G4QGSPAntiBarionBuilder::Build(), G4QGSPKaonBuilder::Build(), G4QGSPLundStrFragmProtonBuilder::Build(), G4QGSPNeutronBuilder::Build(), G4QGSPPiKBuilder::Build(), G4QGSPPionBuilder::Build(), G4TritonPHPBuilder::Build(), G4QGSPProtonBuilder::Build(), G4HadronicBuilder::BuildFTFP_BERT(), G4HadronicBuilder::BuildFTFQGSP_BERT(), G4QGSBuilder::BuildModel(), G4VHadronPhysics::BuildModel(), G4HadronicBuilder::BuildQGSP_FTFP_BERT(), G4EmExtraPhysics::ConstructGammaElectroNuclear(), LBE::ConstructHad(), G4EmExtraPhysics::ConstructLENDGammaNuclear(), G4HadronDElasticPhysics::ConstructProcess(), G4HadronElasticPhysics::ConstructProcess(), G4HadronHElasticPhysics::ConstructProcess(), G4IonINCLXXPhysics::ConstructProcess(), G4IonPhysics::ConstructProcess(), G4IonPhysicsPHP::ConstructProcess(), G4IonQMDPhysics::ConstructProcess(), G4ANuElNucleusNcModel::G4ANuElNucleusNcModel(), G4ANuMuNucleusNcModel::G4ANuMuNucleusNcModel(), G4BertiniKaonBuilder::G4BertiniKaonBuilder(), G4BertiniPiKBuilder::G4BertiniPiKBuilder(), G4BertiniPionBuilder::G4BertiniPionBuilder(), G4BinaryCascade::G4BinaryCascade(), G4BinaryPiKBuilder::G4BinaryPiKBuilder(), G4BinaryPionBuilder::G4BinaryPionBuilder(), G4ChargeExchange::G4ChargeExchange(), G4DiffuseElastic::G4DiffuseElastic(), G4DiffuseElasticV2::G4DiffuseElasticV2(), G4ElectroVDNuclearModel::G4ElectroVDNuclearModel(), G4EMDissociation::G4EMDissociation(), G4FissLib::G4FissLib(), G4FTFBinaryKaonBuilder::G4FTFBinaryKaonBuilder(), G4FTFBinaryNeutronBuilder::G4FTFBinaryNeutronBuilder(), G4FTFBinaryPiKBuilder::G4FTFBinaryPiKBuilder(), G4FTFBinaryPionBuilder::G4FTFBinaryPionBuilder(), G4FTFBinaryProtonBuilder::G4FTFBinaryProtonBuilder(), G4FTFPAntiBarionBuilder::G4FTFPAntiBarionBuilder(), G4FTFPKaonBuilder::G4FTFPKaonBuilder(), G4FTFPNeutronBuilder::G4FTFPNeutronBuilder(), G4FTFPPiKBuilder::G4FTFPPiKBuilder(), G4FTFPPionBuilder::G4FTFPPionBuilder(), G4FTFPProtonBuilder::G4FTFPProtonBuilder(), G4HadronElastic::G4HadronElastic(), G4HadronicAbsorptionFritiof::G4HadronicAbsorptionFritiof(), G4HadronicAbsorptionFritiofWithBinaryCascade::G4HadronicAbsorptionFritiofWithBinaryCascade(), G4hhElastic(), G4HyperonFTFPBuilder::G4HyperonFTFPBuilder(), G4HyperonQGSPBuilder::G4HyperonQGSPBuilder(), G4INCLXXPionBuilder::G4INCLXXPionBuilder(), G4LEHadronProtonElastic::G4LEHadronProtonElastic(), G4LENDModel::G4LENDModel(), G4LEnp::G4LEnp(), G4LEpp::G4LEpp(), G4LFission::G4LFission(), G4LowEGammaNuclearModel::G4LowEGammaNuclearModel(), G4MuonVDNuclearModel::G4MuonVDNuclearModel(), G4NeutrinoElectronCcModel::G4NeutrinoElectronCcModel(), G4NeutrinoElectronNcModel::G4NeutrinoElectronNcModel(), G4NeutrinoNucleusModel::G4NeutrinoNucleusModel(), G4NeutronElectronElModel::G4NeutronElectronElModel(), G4NeutronRadCapture::G4NeutronRadCapture(), G4NuclNuclDiffuseElastic::G4NuclNuclDiffuseElastic(), G4NuElNucleusNcModel::G4NuElNucleusNcModel(), G4NuMuNucleusNcModel::G4NuMuNucleusNcModel(), G4ParticleHPCapture::G4ParticleHPCapture(), G4ParticleHPElastic::G4ParticleHPElastic(), G4ParticleHPFission::G4ParticleHPFission(), G4ParticleHPInelastic::G4ParticleHPInelastic(), G4ParticleHPThermalScattering::G4ParticleHPThermalScattering(), G4QGSPAntiBarionBuilder::G4QGSPAntiBarionBuilder(), G4WilsonAbrasionModel::G4WilsonAbrasionModel(), G4HadronPhysicsFTFP_BERT_HP::Neutron(), G4HadronPhysicsINCLXX::Neutron(), G4HadronPhysicsQGSP_BERT_HP::Neutron(), G4HadronPhysicsQGSP_BIC_HP::Neutron(), G4HadronPhysicsShielding::Neutron(), and G4VHadronPhysics::NewModel().

◆ SetMaxEnergy() [2/3]

void G4HadronicInteraction::SetMaxEnergy ( G4double  anEnergy,
const G4Element anElement 
)
inherited

Definition at line 151 of file G4HadronicInteraction.cc.

153{
154 Block();
155 if(!theMaxEnergyListElements.empty()) {
156 for(auto & elmlist : theMaxEnergyListElements) {
157 if( anElement == elmlist.second ) {
158 elmlist.first = anEnergy;
159 return;
160 }
161 }
162 }
163 theMaxEnergyListElements.push_back(std::pair<G4double, const G4Element *>(anEnergy, anElement));
164}

References G4HadronicInteraction::Block(), and G4HadronicInteraction::theMaxEnergyListElements.

◆ SetMaxEnergy() [3/3]

void G4HadronicInteraction::SetMaxEnergy ( G4double  anEnergy,
const G4Material aMaterial 
)
inherited

Definition at line 166 of file G4HadronicInteraction.cc.

167{
168 Block();
169 if(!theMaxEnergyList.empty()) {
170 for(auto & matlist: theMaxEnergyList) {
171 if( aMaterial == matlist.second ) {
172 matlist.first = anEnergy;
173 return;
174 }
175 }
176 }
177 theMaxEnergyList.push_back(std::pair<G4double, const G4Material *>(anEnergy, aMaterial));
178}

References G4HadronicInteraction::Block(), and G4HadronicInteraction::theMaxEnergyList.

◆ SetMinEnergy() [1/3]

void G4HadronicInteraction::SetMinEnergy ( G4double  anEnergy)
inlineinherited

Definition at line 89 of file G4HadronicInteraction.hh.

90 { theMinEnergy = anEnergy; }

References G4HadronicInteraction::theMinEnergy.

Referenced by G4HadronicInteraction::ActivateFor(), G4BertiniElectroNuclearBuilder::Build(), G4LENDBertiniGammaElectroNuclearBuilder::Build(), G4NeutronLENDBuilder::Build(), G4NeutronPHPBuilder::Build(), G4AlphaPHPBuilder::Build(), G4BertiniKaonBuilder::Build(), G4BertiniNeutronBuilder::Build(), G4BertiniPiKBuilder::Build(), G4BertiniPionBuilder::Build(), G4BertiniProtonBuilder::Build(), G4BinaryAlphaBuilder::Build(), G4BinaryDeuteronBuilder::Build(), G4BinaryHe3Builder::Build(), G4BinaryNeutronBuilder::Build(), G4BinaryPiKBuilder::Build(), G4BinaryPionBuilder::Build(), G4BinaryProtonBuilder::Build(), G4BinaryTritonBuilder::Build(), G4DeuteronPHPBuilder::Build(), G4FTFBinaryKaonBuilder::Build(), G4FTFBinaryNeutronBuilder::Build(), G4FTFBinaryPiKBuilder::Build(), G4FTFBinaryPionBuilder::Build(), G4FTFBinaryProtonBuilder::Build(), G4FTFPAntiBarionBuilder::Build(), G4FTFPKaonBuilder::Build(), G4FTFPNeutronBuilder::Build(), G4FTFPPiKBuilder::Build(), G4FTFPPionBuilder::Build(), G4FTFPProtonBuilder::Build(), G4He3PHPBuilder::Build(), G4HyperonFTFPBuilder::Build(), G4HyperonQGSPBuilder::Build(), G4INCLXXNeutronBuilder::Build(), G4INCLXXPionBuilder::Build(), G4INCLXXProtonBuilder::Build(), G4PrecoNeutronBuilder::Build(), G4PrecoProtonBuilder::Build(), G4ProtonPHPBuilder::Build(), G4QGSBinaryKaonBuilder::Build(), G4QGSBinaryNeutronBuilder::Build(), G4QGSBinaryPiKBuilder::Build(), G4QGSBinaryPionBuilder::Build(), G4QGSBinaryProtonBuilder::Build(), G4QGSPAntiBarionBuilder::Build(), G4QGSPKaonBuilder::Build(), G4QGSPLundStrFragmProtonBuilder::Build(), G4QGSPNeutronBuilder::Build(), G4QGSPPiKBuilder::Build(), G4QGSPPionBuilder::Build(), G4TritonPHPBuilder::Build(), G4QGSPProtonBuilder::Build(), G4QGSBuilder::BuildModel(), G4VHadronPhysics::BuildModel(), G4EmExtraPhysics::ConstructGammaElectroNuclear(), LBE::ConstructHad(), G4EmExtraPhysics::ConstructLENDGammaNuclear(), G4HadronElasticPhysicsHP::ConstructProcess(), G4HadronElasticPhysicsLEND::ConstructProcess(), G4HadronElasticPhysicsPHP::ConstructProcess(), G4HadronDElasticPhysics::ConstructProcess(), G4HadronElasticPhysics::ConstructProcess(), G4HadronHElasticPhysics::ConstructProcess(), G4IonElasticPhysics::ConstructProcess(), G4IonINCLXXPhysics::ConstructProcess(), G4IonPhysics::ConstructProcess(), G4IonPhysicsPHP::ConstructProcess(), G4IonQMDPhysics::ConstructProcess(), G4ANuElNucleusNcModel::G4ANuElNucleusNcModel(), G4ANuMuNucleusNcModel::G4ANuMuNucleusNcModel(), G4BertiniKaonBuilder::G4BertiniKaonBuilder(), G4BertiniPiKBuilder::G4BertiniPiKBuilder(), G4BertiniPionBuilder::G4BertiniPionBuilder(), G4BinaryCascade::G4BinaryCascade(), G4BinaryPiKBuilder::G4BinaryPiKBuilder(), G4BinaryPionBuilder::G4BinaryPionBuilder(), G4ChargeExchange::G4ChargeExchange(), G4DiffuseElastic::G4DiffuseElastic(), G4DiffuseElasticV2::G4DiffuseElasticV2(), G4ElectroVDNuclearModel::G4ElectroVDNuclearModel(), G4EMDissociation::G4EMDissociation(), G4FissLib::G4FissLib(), G4FTFBinaryKaonBuilder::G4FTFBinaryKaonBuilder(), G4FTFBinaryNeutronBuilder::G4FTFBinaryNeutronBuilder(), G4FTFBinaryPiKBuilder::G4FTFBinaryPiKBuilder(), G4FTFBinaryPionBuilder::G4FTFBinaryPionBuilder(), G4FTFBinaryProtonBuilder::G4FTFBinaryProtonBuilder(), G4FTFPAntiBarionBuilder::G4FTFPAntiBarionBuilder(), G4FTFPKaonBuilder::G4FTFPKaonBuilder(), G4FTFPNeutronBuilder::G4FTFPNeutronBuilder(), G4FTFPPiKBuilder::G4FTFPPiKBuilder(), G4FTFPPionBuilder::G4FTFPPionBuilder(), G4FTFPProtonBuilder::G4FTFPProtonBuilder(), G4HadronElastic::G4HadronElastic(), G4HadronicAbsorptionBertini::G4HadronicAbsorptionBertini(), G4HadronicAbsorptionFritiof::G4HadronicAbsorptionFritiof(), G4HadronicAbsorptionFritiofWithBinaryCascade::G4HadronicAbsorptionFritiofWithBinaryCascade(), G4hhElastic(), G4HyperonFTFPBuilder::G4HyperonFTFPBuilder(), G4HyperonQGSPBuilder::G4HyperonQGSPBuilder(), G4INCLXXPionBuilder::G4INCLXXPionBuilder(), G4LEHadronProtonElastic::G4LEHadronProtonElastic(), G4LENDModel::G4LENDModel(), G4LEnp::G4LEnp(), G4LEpp::G4LEpp(), G4LFission::G4LFission(), G4LowEGammaNuclearModel::G4LowEGammaNuclearModel(), G4MuonVDNuclearModel::G4MuonVDNuclearModel(), G4NeutrinoElectronCcModel::G4NeutrinoElectronCcModel(), G4NeutrinoElectronNcModel::G4NeutrinoElectronNcModel(), G4NeutrinoNucleusModel::G4NeutrinoNucleusModel(), G4NeutronElectronElModel::G4NeutronElectronElModel(), G4NeutronRadCapture::G4NeutronRadCapture(), G4NuclNuclDiffuseElastic::G4NuclNuclDiffuseElastic(), G4NuElNucleusNcModel::G4NuElNucleusNcModel(), G4NuMuNucleusNcModel::G4NuMuNucleusNcModel(), G4ParticleHPCapture::G4ParticleHPCapture(), G4ParticleHPElastic::G4ParticleHPElastic(), G4ParticleHPFission::G4ParticleHPFission(), G4ParticleHPInelastic::G4ParticleHPInelastic(), G4ParticleHPThermalScattering::G4ParticleHPThermalScattering(), G4QGSPAntiBarionBuilder::G4QGSPAntiBarionBuilder(), G4WilsonAbrasionModel::G4WilsonAbrasionModel(), G4NeutrinoElectronCcModel::IsApplicable(), G4HadronPhysicsFTFP_BERT_HP::Neutron(), G4HadronPhysicsINCLXX::Neutron(), G4HadronPhysicsQGSP_BERT_HP::Neutron(), G4HadronPhysicsQGSP_BIC_HP::Neutron(), G4HadronPhysicsShielding::Neutron(), and G4VHadronPhysics::NewModel().

◆ SetMinEnergy() [2/3]

void G4HadronicInteraction::SetMinEnergy ( G4double  anEnergy,
const G4Element anElement 
)
inherited

Definition at line 101 of file G4HadronicInteraction.cc.

103{
104 Block();
105 if(!theMinEnergyListElements.empty()) {
106 for(auto & elmlist : theMinEnergyListElements) {
107 if( anElement == elmlist.second ) {
108 elmlist.first = anEnergy;
109 return;
110 }
111 }
112 }
113 theMinEnergyListElements.push_back(std::pair<G4double, const G4Element *>(anEnergy, anElement));
114}

References G4HadronicInteraction::Block(), and G4HadronicInteraction::theMinEnergyListElements.

◆ SetMinEnergy() [3/3]

void G4HadronicInteraction::SetMinEnergy ( G4double  anEnergy,
const G4Material aMaterial 
)
inherited

Definition at line 116 of file G4HadronicInteraction.cc.

118{
119 Block();
120 if(!theMinEnergyList.empty()) {
121 for(auto & matlist : theMinEnergyList) {
122 if( aMaterial == matlist.second ) {
123 matlist.first = anEnergy;
124 return;
125 }
126 }
127 }
128 theMinEnergyList.push_back(std::pair<G4double, const G4Material *>(anEnergy, aMaterial));
129}

References G4HadronicInteraction::Block(), and G4HadronicInteraction::theMinEnergyList.

◆ SetModelName()

void G4HadronicInteraction::SetModelName ( const G4String nam)
inlineprotectedinherited

◆ SetParameters()

void G4hhElastic::SetParameters ( )
inline

Definition at line 271 of file G4hhElastic.hh.

272{
273 // masses
274
275 fMq = 0.36*CLHEP::GeV; // 0.441*GeV; // 0.36*GeV;
276 fMQ = 0.441*CLHEP::GeV;
277 fMff2 = 0.26*CLHEP::GeV*CLHEP::GeV; // 0.25*GeV*GeV; // 0.5*GeV*GeV;
278
279 fAlpha = 1./3.;
280 fBeta = 1. - fAlpha;
281
282 fGamma = 1./2.; // 1./3.; //
283 fDelta = 1. - fGamma; // 1./2.;
284
285 // radii and exp cof
286
287 fRA = 6.5/CLHEP::GeV; // 7.3/GeV; // 3.25/GeV; // 7./GeV; // 2./GeV; // 1./GeV;
288 fRq = 0.173*fRA; // 2.4/GeV;
289 fRQ = 0.316*fRA; // 1./GeV; // 2./GeV; // 1./GeV;
290 fRB = 6.5/CLHEP::GeV; // 7.3/GeV; // 3.25/GeV; // 7./GeV; // 2./GeV; // 1./GeV;
291 fRg = 0.173*fRA; // 2.4/GeV;
292 fRG = 0.173*fRA; // 1./GeV; // 2./GeV; // 1./GeV;
293
294 fAlphaP = 0.15/CLHEP::GeV/CLHEP::GeV; // 0.15/GeV/GeV;
295 fLambda = 0.25*fRA*fRA; // 0.25
296 fEta = 0.25*fRB*fRB; // 0.25
297 fImCof = 6.5;
298 fCofF2 = 1.;
299 fCofF3 = 1.;
300
301 fBq = 0.02; // 0.21; // 1./3.;
302 fBQ = 1. + fBq - 2*std::sqrt(fBq); // 1 - fBq; // 2./3.;
303 fBqQ = std::sqrt(fBq*fBQ);
304
305 fLambdaFF = 1.5/CLHEP::GeV/CLHEP::GeV; // 0.15/GeV/GeV;
307 fQcof = 0.009*CLHEP::GeV;
309}
G4double fQcof
Definition: G4hhElastic.hh:159
G4double fMff2
Definition: G4hhElastic.hh:119
G4double fMQ
Definition: G4hhElastic.hh:120
G4double fMq
Definition: G4hhElastic.hh:121
G4double fLambdaFF
Definition: G4hhElastic.hh:142
static constexpr double GeV

References fAlpha, fAlphaP, fBeta, fBq, fBQ, fBqQ, fCofF2, fCofF3, fDelta, fEta, fExpSlope, fGamma, fImCof, fLambda, fLambdaFF, fMff2, fMQ, fMq, fQcof, fRA, fRB, fRG, fRg, fRQ, fRq, fSo, and CLHEP::GeV.

Referenced by G4hhElastic().

◆ SetParametersCMS()

void G4hhElastic::SetParametersCMS ( G4double  plab)
inline

Definition at line 316 of file G4hhElastic.hh.

317{
318 G4int i;
319 G4double trMass = 900.*CLHEP::MeV, Tkin;
320 G4double sl, sh, ds, rAl, rAh, drA, rBl, rBh, drB, bql, bqh, dbq, bQl, bQh, dbQ, cIl, cIh, dcI;
321
322 Tkin = std::sqrt(fMassProj*fMassProj + plab*plab) - fMassProj;
323
324 G4DynamicParticle* theDynamicParticle = new G4DynamicParticle(fProjectile,
325 G4ParticleMomentum(0.,0.,1.),
326 Tkin);
327 fSigmaTot = fHadrNuclXsc->GetHadronNucleonXscNS( theDynamicParticle, fTarget );
328
329 delete theDynamicParticle;
330
331 fSpp = fMassProj*fMassProj + fMassTarg*fMassTarg + 2.*fMassTarg*std::sqrt(plab*plab + fMassProj*fMassProj);
332 fPcms = std::sqrt( (fSpp - fMassSum2)*(fSpp - fMassDif2)/4./fSpp);
333
334 G4double sCMS = std::sqrt(fSpp);
335
336 if( fMassProj > trMass ) // p,n,pb on p
337 {
338 this->SetCofF2(1.);
339 this->SetCofF3(1.);
340 fGamma = 1./3.; // 1./3.; //
341 fDelta = 1. - fGamma; // 1./2.;
342
343 if( sCMS <= theNuclNuclData[0][0]*CLHEP::GeV ) // low edge, as s=2.76754
344 {
345 this->SetRA(theNuclNuclData[0][1]/CLHEP::GeV,0.173,0.316);
346 this->SetRB(theNuclNuclData[0][2]/CLHEP::GeV,0.173,0.316);
347
348 this->SetBq(theNuclNuclData[0][3]);
349 this->SetBQ(theNuclNuclData[0][4]);
350 this->SetImCof(theNuclNuclData[0][5]);
351
352 this->SetLambda(0.25*this->GetRA()*this->GetRA());
353 this->SetEta(0.25*this->GetRB()*this->GetRB());
354 }
355 else if( sCMS >= theNuclNuclData[17][0]*CLHEP::GeV ) // high edge, as s=7000 ???
356 {
357 this->SetRA(theNuclNuclData[17][1]/CLHEP::GeV,0.173,0.316);
358 this->SetRB(theNuclNuclData[17][2]/CLHEP::GeV,0.173,0.316);
359
360 this->SetBq(theNuclNuclData[17][3]);
361 this->SetBQ(theNuclNuclData[17][4]);
362 this->SetImCof(theNuclNuclData[17][5]);
363
364 this->SetLambda(0.25*this->GetRA()*this->GetRA());
365 this->SetEta(0.25*this->GetRB()*this->GetRB());
366 }
367 else // in approximation between array points
368 {
369 for( i = 0; i < 19; i++ ) if( sCMS <= theNuclNuclData[i][0]*CLHEP::GeV ) break;
370 if( i == 0 ) i++;
371 if( i == 19 ) i--;
372
373 sl = theNuclNuclData[i-1][0]*CLHEP::GeV;
374 sh = theNuclNuclData[i][0]*CLHEP::GeV;
375 ds = (sCMS - sl)/(sh - sl);
376
377 rAl = theNuclNuclData[i-1][1]/CLHEP::GeV;
378 rAh = theNuclNuclData[i][1]/CLHEP::GeV;
379 drA = rAh - rAl;
380
381 rBl = theNuclNuclData[i-1][2]/CLHEP::GeV;
382 rBh = theNuclNuclData[i][2]/CLHEP::GeV;
383 drB = rBh - rBl;
384
385 bql = theNuclNuclData[i-1][3];
386 bqh = theNuclNuclData[i][3];
387 dbq = bqh - bql;
388
389 bQl = theNuclNuclData[i-1][4];
390 bQh = theNuclNuclData[i][4];
391 dbQ = bQh - bQl;
392
393 cIl = theNuclNuclData[i-1][5];
394 cIh = theNuclNuclData[i][5];
395 dcI = cIh - cIl;
396
397 this->SetRA(rAl+drA*ds,0.173,0.316);
398 this->SetRB(rBl+drB*ds,0.173,0.316);
399
400 this->SetBq(bql+dbq*ds);
401 this->SetBQ(bQl+dbQ*ds);
402 this->SetImCof(cIl+dcI*ds);
403
404 this->SetLambda(0.25*this->GetRA()*this->GetRA());
405 this->SetEta(0.25*this->GetRB()*this->GetRB());
406 }
407 }
408 else // pi, K
409 {
410 this->SetCofF2(1.);
411 this->SetCofF3(-1.);
412 fGamma = 1./2.; // 1./3.; //
413 fDelta = 1. - fGamma; // 1./2.;
414
415 if( sCMS <= thePiKaNuclData[0][0]*CLHEP::GeV ) // low edge, as s=2.76754
416 {
417 this->SetRA(thePiKaNuclData[0][1]/CLHEP::GeV,0.173,0.316);
418 this->SetRB(thePiKaNuclData[0][2]/CLHEP::GeV,0.173,0.173);
419
420 this->SetBq(thePiKaNuclData[0][3]);
421 this->SetBQ(thePiKaNuclData[0][4]);
422 this->SetImCof(thePiKaNuclData[0][5]);
423
424 this->SetLambda(0.25*this->GetRA()*this->GetRA());
425 this->SetEta(this->GetRB()*this->GetRB()/6.);
426 }
427 else if( sCMS >= thePiKaNuclData[7][0]*CLHEP::GeV ) // high edge, as s=7000 ???
428 {
429 this->SetRA(thePiKaNuclData[7][1]/CLHEP::GeV,0.173,0.316);
430 this->SetRB(thePiKaNuclData[7][2]/CLHEP::GeV,0.173,0.173);
431
432 this->SetBq(thePiKaNuclData[7][3]);
433 this->SetBQ(thePiKaNuclData[7][4]);
434 this->SetImCof(thePiKaNuclData[7][5]);
435
436 this->SetLambda(0.25*this->GetRA()*this->GetRA());
437 this->SetEta(this->GetRB()*this->GetRB()/6.);
438 }
439 else // in approximation between array points
440 {
441 for( i = 0; i < 8; i++ ) if( sCMS <= thePiKaNuclData[i][0]*CLHEP::GeV ) break;
442 if( i == 0 ) i++;
443 if( i == 8 ) i--;
444
445 sl = thePiKaNuclData[i-1][0]*CLHEP::GeV;
446 sh = thePiKaNuclData[i][0]*CLHEP::GeV;
447 ds = (sCMS - sl)/(sh - sl);
448
449 rAl = thePiKaNuclData[i-1][1]/CLHEP::GeV;
450 rAh = thePiKaNuclData[i][1]/CLHEP::GeV;
451 drA = rAh - rAl;
452
453 rBl = thePiKaNuclData[i-1][2]/CLHEP::GeV;
454 rBh = thePiKaNuclData[i][2]/CLHEP::GeV;
455 drB = rBh - rBl;
456
457 bql = thePiKaNuclData[i-1][3];
458 bqh = thePiKaNuclData[i][3];
459 dbq = bqh - bql;
460
461 bQl = thePiKaNuclData[i-1][4];
462 bQh = thePiKaNuclData[i][4];
463 dbQ = bQh - bQl;
464
465 cIl = thePiKaNuclData[i-1][5];
466 cIh = thePiKaNuclData[i][5];
467 dcI = cIh - cIl;
468
469 this->SetRA(rAl+drA*ds,0.173,0.316);
470 this->SetRB(rBl+drB*ds,0.173,0.173);
471
472 this->SetBq(bql+dbq*ds);
473 this->SetBQ(bQl+dbQ*ds);
474 this->SetImCof(cIl+dcI*ds);
475
476 this->SetLambda(0.25*this->GetRA()*this->GetRA());
477 this->SetEta(this->GetRB()*this->GetRB()/6.);
478 }
479 }
480 return;
481}
G4ThreeVector G4ParticleMomentum
G4double GetHadronNucleonXscNS(const G4DynamicParticle *dp, const G4ParticleDefinition *p)
void SetImCof(G4double a)
Definition: G4hhElastic.hh:185
void SetRA(G4double rn, G4double pq, G4double pQ)
Definition: G4hhElastic.hh:487
G4double GetRA()
Definition: G4hhElastic.hh:194
void SetCofF2(G4double f)
Definition: G4hhElastic.hh:189
static const G4double thePiKaNuclData[8][6]
Definition: G4hhElastic.hh:246
void SetLambda(G4double L)
Definition: G4hhElastic.hh:187
void SetEta(G4double E)
Definition: G4hhElastic.hh:188
void SetRB(G4double rn, G4double pq, G4double pQ)
Definition: G4hhElastic.hh:498
G4double GetRB()
Definition: G4hhElastic.hh:198
void SetCofF3(G4double f)
Definition: G4hhElastic.hh:190
void SetBq(G4double b)
Definition: G4hhElastic.hh:172
void SetBQ(G4double b)
Definition: G4hhElastic.hh:173
static const G4double theNuclNuclData[19][6]
Definition: G4hhElastic.hh:245
static constexpr double MeV

References anonymous_namespace{G4QuasiElRatios.cc}::ds, fDelta, fGamma, fHadrNuclXsc, fMassDif2, fMassProj, fMassSum2, fMassTarg, fPcms, fProjectile, fSigmaTot, fSpp, fTarget, G4HadronNucleonXsc::GetHadronNucleonXscNS(), GetRA(), GetRB(), CLHEP::GeV, CLHEP::MeV, SetBq(), SetBQ(), SetCofF2(), SetCofF3(), SetEta(), SetImCof(), SetLambda(), SetRA(), SetRB(), theNuclNuclData, and thePiKaNuclData.

Referenced by BuildTableT(), and G4hhElastic().

◆ SetRA()

void G4hhElastic::SetRA ( G4double  rn,
G4double  pq,
G4double  pQ 
)
inline

Definition at line 487 of file G4hhElastic.hh.

488{
489 fRA = rA;
490 fRq = fRA*pq;
491 fRQ = fRA*pQ;
492}

References fRA, fRQ, and fRq.

Referenced by SetParametersCMS().

◆ SetRB()

void G4hhElastic::SetRB ( G4double  rn,
G4double  pq,
G4double  pQ 
)
inline

Definition at line 498 of file G4hhElastic.hh.

499{
500 fRB = rB;
501 fRg = fRB*pg;
502 fRG = fRB*pG;
503}
pg
Definition: demo.py:37

References fRB, fRG, fRg, and demo::pg.

Referenced by SetParametersCMS().

◆ SetRecoilEnergyThreshold()

void G4HadronicInteraction::SetRecoilEnergyThreshold ( G4double  val)
inlineinherited

◆ SetSigmaTot()

void G4hhElastic::SetSigmaTot ( G4double  stot)
inline

Definition at line 164 of file G4hhElastic.hh.

164{fSigmaTot = stot;};

References fSigmaTot.

◆ SetSpp()

void G4hhElastic::SetSpp ( G4double  spp)
inline

Definition at line 165 of file G4hhElastic.hh.

165{fSpp = spp;};

References fSpp.

◆ SetVerboseLevel()

void G4HadronicInteraction::SetVerboseLevel ( G4int  value)
inlineinherited

Field Documentation

◆ epCheckLevels

std::pair<G4double, G4double> G4HadronicInteraction::epCheckLevels
privateinherited

◆ fAlpha

G4double G4hhElastic::fAlpha
private

◆ fAlphaP

G4double G4hhElastic::fAlphaP
private

Definition at line 141 of file G4hhElastic.hh.

Referenced by GetAqq(), GetAQQ(), Pomeron(), SetAlphaP(), and SetParameters().

◆ fBankT

std::vector<G4PhysicsTable*> G4hhElastic::fBankT
private

◆ fBeta

G4double G4hhElastic::fBeta
private

Definition at line 133 of file G4hhElastic.hh.

Referenced by GetdsdtF13qQG(), GetF1qQgG(), GetF3qQgG(), and SetParameters().

◆ fBinT

G4int G4hhElastic::fBinT
private

◆ fBq

G4double G4hhElastic::fBq
private

◆ fBQ

G4double G4hhElastic::fBQ
private

◆ fBqQ

G4double G4hhElastic::fBqQ
private

Definition at line 155 of file G4hhElastic.hh.

Referenced by CalculateBqQ13(), GetBqQ(), GetdsdtF13qQG(), SetBqQ(), and SetParameters().

◆ fCofF2

G4double G4hhElastic::fCofF2
private

◆ fCofF3

G4double G4hhElastic::fCofF3
private

◆ fDelta

G4double G4hhElastic::fDelta
private

Definition at line 139 of file G4hhElastic.hh.

Referenced by GetF1qQgG(), GetF2qQgG(), GetF3qQgG(), SetParameters(), and SetParametersCMS().

◆ fEnergyBin

G4int G4hhElastic::fEnergyBin
private

Definition at line 108 of file G4hhElastic.hh.

Referenced by BuildTableT(), G4hhElastic(), SampleBisectionalT(), and SampleInvariantT().

◆ fEnergyVector

G4PhysicsLogVector* G4hhElastic::fEnergyVector
private

Definition at line 111 of file G4hhElastic.hh.

Referenced by BuildTableT(), G4hhElastic(), and ~G4hhElastic().

◆ fEta

G4double G4hhElastic::fEta
private

◆ fExpSlope

G4double G4hhElastic::fExpSlope
private

Definition at line 149 of file G4hhElastic.hh.

Referenced by GetExpRatioF123(), and SetParameters().

◆ fGamma

G4double G4hhElastic::fGamma
private

◆ fHadrNuclXsc

G4HadronNucleonXsc* G4hhElastic::fHadrNuclXsc
private

Definition at line 247 of file G4hhElastic.hh.

Referenced by G4hhElastic(), SetParametersCMS(), and ~G4hhElastic().

◆ fImCof

G4double G4hhElastic::fImCof
private

Definition at line 145 of file G4hhElastic.hh.

Referenced by GetAqq(), GetAQQ(), GetImCof(), Pomeron(), SetImCof(), and SetParameters().

◆ fInTkin

G4int G4hhElastic::fInTkin
private

Definition at line 243 of file G4hhElastic.hh.

Referenced by G4hhElastic(), SampleBisectionalT(), and SampleInvariantT().

◆ fLambda

G4double G4hhElastic::fLambda
private

◆ fLambdaFF

G4double G4hhElastic::fLambdaFF
private

Definition at line 142 of file G4hhElastic.hh.

Referenced by SetParameters().

◆ fMassDif2

G4double G4hhElastic::fMassDif2
private

◆ fMassProj

G4double G4hhElastic::fMassProj
private

Definition at line 124 of file G4hhElastic.hh.

Referenced by BuildTableT(), BuildTableTest(), G4hhElastic(), and SetParametersCMS().

◆ fMassSum2

G4double G4hhElastic::fMassSum2
private

◆ fMassTarg

G4double G4hhElastic::fMassTarg
private

Definition at line 123 of file G4hhElastic.hh.

Referenced by BuildTableT(), BuildTableTest(), G4hhElastic(), and SetParametersCMS().

◆ fMff2

G4double G4hhElastic::fMff2
private

Definition at line 119 of file G4hhElastic.hh.

Referenced by SetParameters().

◆ fMQ

G4double G4hhElastic::fMQ
private

Definition at line 120 of file G4hhElastic.hh.

Referenced by SetParameters().

◆ fMq

G4double G4hhElastic::fMq
private

Definition at line 121 of file G4hhElastic.hh.

Referenced by SetParameters().

◆ fOldTkin

G4double G4hhElastic::fOldTkin
private

Definition at line 244 of file G4hhElastic.hh.

Referenced by G4hhElastic(), SampleBisectionalT(), and SampleInvariantT().

◆ fOptRatio

G4double G4hhElastic::fOptRatio
private

Definition at line 156 of file G4hhElastic.hh.

Referenced by CalculateBQ(), CalculateBqQ123(), G4hhElastic(), and GetOpticalRatio().

◆ fPcms

G4double G4hhElastic::fPcms
private

Definition at line 158 of file G4hhElastic.hh.

Referenced by BuildTableT(), BuildTableTest(), G4hhElastic(), and SetParametersCMS().

◆ fProjectile

G4ParticleDefinition* G4hhElastic::fProjectile
private

Definition at line 95 of file G4hhElastic.hh.

Referenced by BuildTableT(), BuildTableTest(), G4hhElastic(), Initialise(), and SetParametersCMS().

◆ fQcof

G4double G4hhElastic::fQcof
private

Definition at line 159 of file G4hhElastic.hh.

Referenced by SetParameters().

◆ fRA

G4double G4hhElastic::fRA
private

Definition at line 129 of file G4hhElastic.hh.

Referenced by GetRA(), SetParameters(), and SetRA().

◆ fRB

G4double G4hhElastic::fRB
private

Definition at line 135 of file G4hhElastic.hh.

Referenced by GetRB(), SetParameters(), and SetRB().

◆ fRG

G4double G4hhElastic::fRG
private

Definition at line 136 of file G4hhElastic.hh.

Referenced by GetRG(), Phi14(), Phi24(), SetParameters(), and SetRB().

◆ fRg

G4double G4hhElastic::fRg
private

Definition at line 137 of file G4hhElastic.hh.

Referenced by GetRg(), Phi13(), Phi23(), SetParameters(), and SetRB().

◆ fRhoReIm

G4double G4hhElastic::fRhoReIm
private

Definition at line 148 of file G4hhElastic.hh.

Referenced by G4hhElastic(), GetExpRatioF123(), and GetRhoReIm().

◆ fRQ

G4double G4hhElastic::fRQ
private

Definition at line 130 of file G4hhElastic.hh.

Referenced by GetAQQ(), GetRQ(), Phi23(), Phi24(), SetParameters(), and SetRA().

◆ fRq

G4double G4hhElastic::fRq
private

Definition at line 131 of file G4hhElastic.hh.

Referenced by GetAqq(), GetRq(), Phi13(), Phi14(), SetParameters(), and SetRA().

◆ fSigmaTot

G4double G4hhElastic::fSigmaTot
private

◆ fSo

G4double G4hhElastic::fSo
private

Definition at line 150 of file G4hhElastic.hh.

Referenced by GetAqq(), GetAQQ(), Pomeron(), and SetParameters().

◆ fSpp

G4double G4hhElastic::fSpp
private

◆ fTableT

G4PhysicsTable* G4hhElastic::fTableT
private

◆ fTarget

G4ParticleDefinition* G4hhElastic::fTarget
private

Definition at line 94 of file G4hhElastic.hh.

Referenced by BuildTableT(), BuildTableTest(), G4hhElastic(), Initialise(), and SetParametersCMS().

◆ isBlocked

G4bool G4HadronicInteraction::isBlocked
protectedinherited

◆ lowEnergyLimitHE

G4double G4hhElastic::lowEnergyLimitHE
private

Definition at line 103 of file G4hhElastic.hh.

Referenced by G4hhElastic().

◆ lowEnergyLimitQ

G4double G4hhElastic::lowEnergyLimitQ
private

Definition at line 104 of file G4hhElastic.hh.

Referenced by G4hhElastic().

◆ lowEnergyRecoilLimit

G4double G4hhElastic::lowEnergyRecoilLimit
private

Definition at line 102 of file G4hhElastic.hh.

Referenced by G4hhElastic().

◆ lowestEnergyLimit

G4double G4hhElastic::lowestEnergyLimit
private

Definition at line 105 of file G4hhElastic.hh.

Referenced by G4hhElastic().

◆ nwarn

G4int G4HadronElastic::nwarn
privateinherited

◆ plabLowLimit

G4double G4hhElastic::plabLowLimit
private

Definition at line 106 of file G4hhElastic.hh.

Referenced by G4hhElastic().

◆ pLocalTmax

G4double G4HadronElastic::pLocalTmax
protectedinherited

◆ recoilEnergyThreshold

G4double G4HadronicInteraction::recoilEnergyThreshold
privateinherited

◆ registry

G4HadronicInteractionRegistry* G4HadronicInteraction::registry
privateinherited

◆ secID

G4int G4HadronElastic::secID
protectedinherited

◆ theAlpha

G4ParticleDefinition* G4HadronElastic::theAlpha
privateinherited

◆ theBlockedList

std::vector<const G4Material *> G4HadronicInteraction::theBlockedList
privateinherited

◆ theBlockedListElements

std::vector<const G4Element *> G4HadronicInteraction::theBlockedListElements
privateinherited

◆ theDeuteron

G4ParticleDefinition* G4HadronElastic::theDeuteron
privateinherited

◆ theMaxEnergy

G4double G4HadronicInteraction::theMaxEnergy
protectedinherited

◆ theMaxEnergyList

std::vector<std::pair<G4double, const G4Material *> > G4HadronicInteraction::theMaxEnergyList
privateinherited

◆ theMaxEnergyListElements

std::vector<std::pair<G4double, const G4Element *> > G4HadronicInteraction::theMaxEnergyListElements
privateinherited

◆ theMinEnergy

G4double G4HadronicInteraction::theMinEnergy
protectedinherited

◆ theMinEnergyList

std::vector<std::pair<G4double, const G4Material *> > G4HadronicInteraction::theMinEnergyList
privateinherited

◆ theMinEnergyListElements

std::vector<std::pair<G4double, const G4Element *> > G4HadronicInteraction::theMinEnergyListElements
privateinherited

◆ theModelName

G4String G4HadronicInteraction::theModelName
privateinherited

◆ theNeutron

G4ParticleDefinition* G4hhElastic::theNeutron
private

Definition at line 97 of file G4hhElastic.hh.

Referenced by G4hhElastic().

◆ theNuclNuclData

const G4double G4hhElastic::theNuclNuclData
staticprivate
Initial value:
=
{
{ 2.76754, 4.8, 4.8, 0.05, 0.742441, 10.5 },
{ 3.07744, 5.4, 5.4, 0.02, 0.83818, 6.5 },
{ 3.36305, 5.2, 5.2, 0.02, 0.838893, 7.5 },
{ 4.32941, 6, 6, 0.03, 0.769389, 7.5 },
{ 4.62126, 6, 6, 0.03, 0.770111, 6.5 },
{ 5.47416, 4.5, 4.5, 0.03, 0.813185, 7.5 },
{ 6.15088, 6.5, 6.5, 0.02, 0.799539, 6.5 },
{ 6.77474, 5.2, 5.2, 0.03, 0.784901, 7.5 },
{ 9.77775, 7, 7, 0.03, 0.742531, 6.5 },
{ 10.4728, 5.2, 5.2, 0.03, 0.780439, 7.5 },
{ 13.7631, 7, 7, 0.008, 0.8664, 5.0 },
{ 19.4184, 6.8, 6.8, 0.009, 0.861337, 2.5 },
{ 23.5, 6.8, 6.8, 0.007, 0.878112, 1.5 },
{ 24.1362, 7.2, 7.2, 0.008, 0.864745, 5.5 },
{ 52.8, 6.8, 6.8, 0.008, 0.871929, 1.5 },
{ 546, 7.4, 7.4, 0.013, 0.845877, 5.5 },
{ 1960, 7.8, 7.8, 0.022, 0.809062, 7.5 },
{ 7000, 8, 8, 0.024, 0.820441, 5.5 },
{ 13000, 8.5, 8.5, 0.03, 0.796721, 10.5 }
}

Definition at line 245 of file G4hhElastic.hh.

Referenced by SetParametersCMS().

◆ theParticleChange

G4HadFinalState G4HadronicInteraction::theParticleChange
protectedinherited

Definition at line 172 of file G4HadronicInteraction.hh.

Referenced by G4WilsonAbrasionModel::ApplyYourself(), G4EMDissociation::ApplyYourself(), G4LENDCapture::ApplyYourself(), G4LENDElastic::ApplyYourself(), G4LENDFission::ApplyYourself(), G4LENDInelastic::ApplyYourself(), G4ElectroVDNuclearModel::ApplyYourself(), G4ParticleHPThermalScattering::ApplyYourself(), G4NeutrinoElectronNcModel::ApplyYourself(), G4NeutronElectronElModel::ApplyYourself(), G4LFission::ApplyYourself(), G4ANuElNucleusCcModel::ApplyYourself(), G4ANuElNucleusNcModel::ApplyYourself(), G4ANuMuNucleusCcModel::ApplyYourself(), G4ANuMuNucleusNcModel::ApplyYourself(), G4MuonVDNuclearModel::ApplyYourself(), G4NeutrinoElectronCcModel::ApplyYourself(), G4NuElNucleusCcModel::ApplyYourself(), G4NuElNucleusNcModel::ApplyYourself(), G4NuMuNucleusCcModel::ApplyYourself(), G4NuMuNucleusNcModel::ApplyYourself(), G4QMDReaction::ApplyYourself(), G4NeutronRadCapture::ApplyYourself(), G4LowEGammaNuclearModel::ApplyYourself(), G4ChargeExchange::ApplyYourself(), G4HadronElastic::ApplyYourself(), G4LEHadronProtonElastic::ApplyYourself(), G4LEnp::ApplyYourself(), G4LEpp::ApplyYourself(), G4BinaryCascade::ApplyYourself(), G4CascadeInterface::ApplyYourself(), G4LMsdGenerator::ApplyYourself(), G4ElectroVDNuclearModel::CalculateEMVertex(), G4MuonVDNuclearModel::CalculateEMVertex(), G4ElectroVDNuclearModel::CalculateHadronicVertex(), G4MuonVDNuclearModel::CalculateHadronicVertex(), G4NeutrinoNucleusModel::CoherentPion(), G4CascadeInterface::copyOutputToHadronicResult(), G4BinaryCascade::DebugEpConservation(), G4BinaryCascade::DebugFinalEpConservation(), G4NeutrinoNucleusModel::FinalBarion(), G4NeutrinoNucleusModel::FinalMeson(), G4WilsonAbrasionModel::GetAbradedNucleons(), G4CascadeInterface::NoInteraction(), G4CascadeInterface::Propagate(), G4NeutrinoNucleusModel::RecoilDeexcitation(), G4LEHadronProtonElastic::~G4LEHadronProtonElastic(), G4LEnp::~G4LEnp(), and G4LFission::~G4LFission().

◆ thePiKaNuclData

const G4double G4hhElastic::thePiKaNuclData
staticprivate
Initial value:
=
{
{ 2.5627, 3.8, 3.3, 0.22, 0.222, 1.5 },
{ 2.93928, 4.3, 3.8, 0.2, 0.250601, 1.3 },
{ 3.22326, 4.8, 4.3, 0.13, 0.32751, 2.5 },
{ 7.80704, 5.5, 5, 0.13, 0.340631, 2.5 },
{ 9.7328, 5, 4.5, 0.05, 0.416319, 5.5 },
{ 13.7315, 5.3, 4.8, 0.05, 0.418426, 5.5 },
{ 16.6359, 6.3, 5.8, 0.05, 0.423817, 5.5 },
{ 19.3961, 5, 4.5, 0.05, 0.413477, 3.5 }
}

Definition at line 246 of file G4hhElastic.hh.

Referenced by SetParametersCMS().

◆ thePionMinus

G4ParticleDefinition* G4hhElastic::thePionMinus
private

Definition at line 99 of file G4hhElastic.hh.

Referenced by G4hhElastic().

◆ thePionPlus

G4ParticleDefinition* G4hhElastic::thePionPlus
private

Definition at line 98 of file G4hhElastic.hh.

Referenced by G4hhElastic().

◆ theProton

G4ParticleDefinition* G4hhElastic::theProton
private

Definition at line 96 of file G4hhElastic.hh.

Referenced by G4hhElastic().

◆ verboseLevel

G4int G4HadronicInteraction::verboseLevel
protectedinherited

Definition at line 177 of file G4HadronicInteraction.hh.

Referenced by G4WilsonAbrasionModel::ApplyYourself(), G4EMDissociation::ApplyYourself(), G4LFission::ApplyYourself(), G4MuMinusCapturePrecompound::ApplyYourself(), G4NeutronRadCapture::ApplyYourself(), G4LowEGammaNuclearModel::ApplyYourself(), G4ChargeExchange::ApplyYourself(), G4HadronElastic::ApplyYourself(), G4LEHadronProtonElastic::ApplyYourself(), G4LEnp::ApplyYourself(), G4LEpp::ApplyYourself(), G4CascadeInterface::ApplyYourself(), G4CascadeInterface::checkFinalResult(), G4CascadeInterface::copyOutputToHadronicResult(), G4CascadeInterface::copyOutputToReactionProducts(), G4LENDModel::create_used_target_map(), G4CascadeInterface::createBullet(), G4CascadeInterface::createTarget(), G4ElasticHadrNucleusHE::DefineHadronValues(), G4ElasticHadrNucleusHE::FillData(), G4ElasticHadrNucleusHE::FillFq2(), G4DiffuseElastic::G4DiffuseElastic(), G4DiffuseElasticV2::G4DiffuseElasticV2(), G4ElasticHadrNucleusHE::G4ElasticHadrNucleusHE(), G4EMDissociation::G4EMDissociation(), G4hhElastic(), G4NuclNuclDiffuseElastic::G4NuclNuclDiffuseElastic(), G4WilsonAbrasionModel::G4WilsonAbrasionModel(), G4ElasticHadrNucleusHE::GetFt(), G4ElasticHadrNucleusHE::GetLightFq2(), G4ElasticHadrNucleusHE::GetQ2_2(), G4HadronicInteraction::GetVerboseLevel(), G4ElasticHadrNucleusHE::HadronNucleusQ2_2(), G4ElasticHadrNucleusHE::HadronProtonQ2(), G4LFission::init(), G4DiffuseElastic::Initialise(), G4DiffuseElasticV2::Initialise(), G4NuclNuclDiffuseElastic::Initialise(), G4DiffuseElastic::InitialiseOnFly(), G4DiffuseElasticV2::InitialiseOnFly(), G4NuclNuclDiffuseElastic::InitialiseOnFly(), G4CascadeInterface::makeDynamicParticle(), G4CascadeInterface::NoInteraction(), G4CascadeInterface::Propagate(), G4ElasticHadrNucleusHE::SampleInvariantT(), G4AntiNuclElastic::SampleThetaCMS(), G4DiffuseElastic::SampleThetaLab(), G4NuclNuclDiffuseElastic::SampleThetaLab(), G4AntiNuclElastic::SampleThetaLab(), G4WilsonAbrasionModel::SetUseAblation(), G4HadronicInteraction::SetVerboseLevel(), G4WilsonAbrasionModel::SetVerboseLevel(), G4DiffuseElastic::ThetaCMStoThetaLab(), G4DiffuseElasticV2::ThetaCMStoThetaLab(), G4NuclNuclDiffuseElastic::ThetaCMStoThetaLab(), G4DiffuseElastic::ThetaLabToThetaCMS(), G4DiffuseElasticV2::ThetaLabToThetaCMS(), and G4NuclNuclDiffuseElastic::ThetaLabToThetaCMS().


The documentation for this class was generated from the following files: