Geant4 11.3.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4GEMProbabilityVI Class Reference

#include <G4GEMProbabilityVI.hh>

+ Inheritance diagram for G4GEMProbabilityVI:

Public Member Functions

 G4GEMProbabilityVI (G4int anA, G4int aZ, const G4LevelManager *)
 
 ~G4GEMProbabilityVI () override=default
 
G4double TotalProbability (const G4Fragment &, const G4double tmin, const G4double tmax, const G4double CB, const G4double exEnergy, const G4double exEvap)
 
G4double ComputeProbability (G4double ekin, G4double CB) override
 
G4double SampleEnergy (const G4double tmin, const G4double tmax, const G4double CB, const G4double exEnergy, const G4double exEvap)
 
 G4GEMProbabilityVI (const G4GEMProbabilityVI &right)=delete
 
const G4GEMProbabilityVIoperator= (const G4GEMProbabilityVI &right)=delete
 
G4bool operator== (const G4GEMProbabilityVI &right) const =delete
 
G4bool operator!= (const G4GEMProbabilityVI &right) const =delete
 
- Public Member Functions inherited from G4VEmissionProbability
 G4VEmissionProbability (G4int Z, G4int A)
 
virtual ~G4VEmissionProbability ()=default
 
virtual void Initialise ()
 
virtual G4double EmissionProbability (const G4Fragment &fragment, G4double anEnergy)
 
G4int GetZ (void) const
 
G4int GetA (void) const
 
void SetDecayKinematics (G4int rZ, G4int rA, G4double rmass, G4double fmass)
 
G4double GetRecoilExcitation () const
 
void SetEvapExcitation (G4double exc)
 
G4double GetProbability () const
 
void ResetProbability ()
 
G4double SampleEnergy ()
 
 G4VEmissionProbability (const G4VEmissionProbability &right)=delete
 
const G4VEmissionProbabilityoperator= (const G4VEmissionProbability &right)=delete
 
G4bool operator== (const G4VEmissionProbability &right) const =delete
 
G4bool operator!= (const G4VEmissionProbability &right) const =delete
 

Additional Inherited Members

- Protected Member Functions inherited from G4VEmissionProbability
void ResetIntegrator (size_t nbin, G4double de, G4double eps)
 
G4double IntegrateProbability (G4double elow, G4double ehigh, G4double CB)
 
- Protected Attributes inherited from G4VEmissionProbability
G4NuclearLevelDatapNuclearLevelData
 
G4PowpG4pow
 
G4int OPTxs
 
G4int pVerbose
 
G4int theZ
 
G4int theA
 
G4int resZ = 0
 
G4int resA = 0
 
G4double pMass = 0.0
 
G4double pEvapMass = 0.0
 
G4double pResMass = 0.0
 
G4double pProbability = 0.0
 
G4double pTolerance = 0.0
 
G4double pWidth = 0.0
 

Detailed Description

Definition at line 36 of file G4GEMProbabilityVI.hh.

Constructor & Destructor Documentation

◆ G4GEMProbabilityVI() [1/2]

G4GEMProbabilityVI::G4GEMProbabilityVI ( G4int anA,
G4int aZ,
const G4LevelManager * p )
explicit

Definition at line 42 of file G4GEMProbabilityVI.cc.

43 : G4VEmissionProbability(aZ, anA), lManager(p)
44{
45 fragA = fragZ = 0;
46 resA13 = U = delta0 = delta1 = a0 = a1 = probmax = alphaP = betaP = 0.0;
47 Umax = bCoulomb = 0.0;
48 Gamma = 1.0;
49 pcoeff = Gamma*pEvapMass*CLHEP::millibarn
50 /((CLHEP::pi*CLHEP::hbarc)*(CLHEP::pi*CLHEP::hbarc));
51 coeff = CLHEP::fermi*CLHEP::fermi/(CLHEP::pi*CLHEP::hbarc*CLHEP::hbarc);
52
53 isExcited = (!lManager || 0.0 == lManager->MaxLevelEnergy()) ? false : true;
54 A13 = pG4pow->Z13(theA);
55
56 if(0 == aZ) {
57 ResetIntegrator(30, 0.25*CLHEP::MeV, 0.02);
58 } else {
59 ResetIntegrator(30, 0.5*CLHEP::MeV, 0.03);
60 }
61}
G4VEmissionProbability(G4int Z, G4int A)
void ResetIntegrator(size_t nbin, G4double de, G4double eps)

Referenced by G4GEMProbabilityVI(), operator!=(), operator=(), and operator==().

◆ ~G4GEMProbabilityVI()

G4GEMProbabilityVI::~G4GEMProbabilityVI ( )
overridedefault

◆ G4GEMProbabilityVI() [2/2]

G4GEMProbabilityVI::G4GEMProbabilityVI ( const G4GEMProbabilityVI & right)
delete

Member Function Documentation

◆ ComputeProbability()

G4double G4GEMProbabilityVI::ComputeProbability ( G4double ekin,
G4double CB )
overridevirtual

Reimplemented from G4VEmissionProbability.

Definition at line 101 of file G4GEMProbabilityVI.cc.

102{
103 // abnormal case - should never happens
104 if(pMass < pEvapMass + pResMass) { return 0.0; }
105
106 const G4double m02 = pMass*pMass;
107 const G4double m12 = pEvapMass*pEvapMass;
108 const G4double mres = std::sqrt(m02 + m12 - 2.*pMass*(pEvapMass + ekin));
109
110 G4double excRes = std::max(mres - pResMass, 0.0);
111 a1 = pNuclearLevelData->GetLevelDensity(resZ,resA,excRes);
112 G4double prob = 0.5; //CrossSection(0.0, excRes);
113
114 //G4cout<<"### G4GEMProbabilityVI::ComputeProbability: Ekin(MeV)= "<<ekin
115 //<< " excRes(MeV)= " << excRes << " prob= " << prob << << G4endl;
116 return prob;
117}
double G4double
Definition G4Types.hh:83
G4NuclearLevelData * pNuclearLevelData

◆ operator!=()

G4bool G4GEMProbabilityVI::operator!= ( const G4GEMProbabilityVI & right) const
delete

◆ operator=()

const G4GEMProbabilityVI & G4GEMProbabilityVI::operator= ( const G4GEMProbabilityVI & right)
delete

◆ operator==()

G4bool G4GEMProbabilityVI::operator== ( const G4GEMProbabilityVI & right) const
delete

◆ SampleEnergy()

G4double G4GEMProbabilityVI::SampleEnergy ( const G4double tmin,
const G4double tmax,
const G4double CB,
const G4double exEnergy,
const G4double exEvap )

Definition at line 119 of file G4GEMProbabilityVI.cc.

123{
124 G4double ekin = tmax - tmin - CB -exEnergy + exEvap;
125 return ekin;
126}

◆ TotalProbability()

G4double G4GEMProbabilityVI::TotalProbability ( const G4Fragment & fragment,
const G4double tmin,
const G4double tmax,
const G4double CB,
const G4double exEnergy,
const G4double exEvap )

Definition at line 63 of file G4GEMProbabilityVI.cc.

68{
69 fragA = fragment.GetA_asInt();
70 fragZ = fragment.GetZ_asInt();
71
72 bCoulomb = CB;
73 U = fragment.GetExcitationEnergy();
74 delta0 = pNuclearLevelData->GetPairingCorrection(fragZ,fragA);
75 delta1 = pNuclearLevelData->GetPairingCorrection(resZ,resA);
76 Umax = pMass - pEvapMass - pResMass - CB;
77 if(0.0 >= Umax) { return 0.0; }
78
79 resA13 = pG4pow->Z13(resA);
80 a0 = pNuclearLevelData->GetLevelDensity(fragZ,fragA,U);
81 const G4double twoMass = pMass + pMass;
82 const G4double evapMass2 = pEvapMass*pEvapMass;
83 G4double ekinmax =
84 ((pMass-pResMass)*(pMass+pResMass) + evapMass2)/twoMass - pEvapMass;
85 G4double ekinmin =
86 std::max((CB*(twoMass - CB) + evapMass2)/twoMass - pEvapMass,0.0);
87 if(ekinmax <= ekinmin) { return 0.0; }
88 pProbability = IntegrateProbability(ekinmin, ekinmax, CB);
89 pProbability += tmax - tmin + exEnergy -exEvap;
90 /*
91 G4cout << "G4GEMProbabilityVI: Z= " << theZ << " A= " << theA
92 << " resZ= " << resZ << " resA= " << resA
93 << " fragZ= " << fragZ << " fragA= " << fragA
94 << " prob= " << pProbability
95 << "\n U= " << U << " Umax= " << Umax << " d0= " << delta0
96 << " a0= " << a0 << G4endl;
97 */
98 return pProbability;
99}
G4double GetExcitationEnergy() const
G4int GetZ_asInt() const
G4int GetA_asInt() const
G4double IntegrateProbability(G4double elow, G4double ehigh, G4double CB)

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