Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4VQCrossSection Class Referenceabstract

#include <G4VQCrossSection.hh>

+ Inheritance diagram for G4VQCrossSection:

Public Member Functions

virtual ~G4VQCrossSection ()
 
virtual G4double GetCrossSection (G4bool, G4double, G4int, G4int, G4int pPDG=0)
 
virtual G4double ThresholdEnergy (G4int Z, G4int N, G4int PDG=0)
 
virtual G4double CalculateCrossSection (G4bool CS, G4int F, G4int I, G4int PDG, G4int tgZ, G4int tgN, G4double pMom)=0
 
virtual G4double GetLastTOTCS ()
 
virtual G4double GetLastQELCS ()
 
virtual G4double GetDirectPart (G4double Q2)
 
virtual G4double GetNPartons (G4double Q2)
 
virtual G4double GetExchangeEnergy ()
 
virtual G4double GetExchangeT (G4int tZ, G4int tN, G4int pPDG)
 
virtual G4double GetSlope (G4int tZ, G4int tN, G4int pPDG)
 
virtual G4double GetHMaxT ()
 
virtual G4double GetExchangeQ2 (G4double nu=0)
 
virtual G4double GetVirtualFactor (G4double nu, G4double Q2)
 
virtual G4double GetQEL_ExchangeQ2 ()
 
virtual G4double GetNQE_ExchangeQ2 ()
 
virtual G4int GetExchangePDGCode ()
 

Static Public Member Functions

static void setTolerance (G4double tol)
 

Protected Member Functions

 G4VQCrossSection ()
 
G4double LinearFit (G4double X, G4int N, G4double *XN, G4double *YN)
 
G4double EquLinearFit (G4double X, G4int N, G4double X0, G4double DX, G4double *Y)
 

Static Protected Attributes

static G4double tolerance =.001
 

Detailed Description

Definition at line 85 of file G4VQCrossSection.hh.

Constructor & Destructor Documentation

◆ G4VQCrossSection()

G4VQCrossSection::G4VQCrossSection ( )
inlineprotected

Definition at line 89 of file G4VQCrossSection.hh.

89{;} // for each particle a separate instance of G4QCollision should be

◆ ~G4VQCrossSection()

virtual G4VQCrossSection::~G4VQCrossSection ( )
inlinevirtual

Definition at line 93 of file G4VQCrossSection.hh.

93{;}// for each particle separate instance of G4QXCrossSection

Member Function Documentation

◆ CalculateCrossSection()

◆ EquLinearFit()

G4double G4VQCrossSection::EquLinearFit ( G4double  X,
G4int  N,
G4double  X0,
G4double  DX,
G4double Y 
)
protected

Definition at line 94 of file G4VQCrossSection.cc.

96{
97#ifdef pdebug
98 G4cout<<"G4VQCrossSection::EquLinearFit: ***Called*** X="<<X<<", N="<<N<<", X0="<<X0
99 <<", DX="<<DX<<G4endl;
100 G4cout<<"G4VQCrossSection::EquLinearFit: Y[0]="<<Y[0]<<", Y[N-1]="<<Y[N-1]<<G4endl;
101 //for(G4int i=1; i<N; i++)G4cout<<"-----G4VQCS::EquLinearFit: Y["<<i<<"]="<<Y[i]<<G4endl;
102#endif
103 if(DX<=0. || N<2)
104 {
105 G4cerr<<"***G4VQCrossSection::EquLinearFit: DX="<<DX<<", N="<<N<<G4endl;
106 return Y[0];
107 }
108 G4int N2=N-2;
109 G4double d=(X-X0)/DX;
110 G4int j=static_cast<int>(d);
111 if (j<0) j=0;
112 else if(j>N2) j=N2;
113 d-=j; // excess
114 G4double yi=Y[j];
115 G4double sigma=yi+(Y[j+1]-yi)*d;
116#ifdef pdebug
117 G4cout<<"G4VQCrossSection::EquLinearFit: CS="<<sigma<<G4endl;
118#endif
119 return sigma;
120}
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
#define G4endl
Definition: G4ios.hh:52
G4DLLIMPORT std::ostream G4cerr
G4DLLIMPORT std::ostream G4cout

Referenced by G4QAntiBaryonNuclearCrossSection::CalculateCrossSection(), G4QAntiBaryonPlusNuclearCrossSection::CalculateCrossSection(), G4QHyperonNuclearCrossSection::CalculateCrossSection(), G4QHyperonPlusNuclearCrossSection::CalculateCrossSection(), G4QKaonMinusNuclearCrossSection::CalculateCrossSection(), G4QKaonPlusNuclearCrossSection::CalculateCrossSection(), G4QNeutronNuclearCrossSection::CalculateCrossSection(), G4QPhotonNuclearCrossSection::CalculateCrossSection(), G4QPionMinusNuclearCrossSection::CalculateCrossSection(), G4QPionPlusNuclearCrossSection::CalculateCrossSection(), G4QProtonNuclearCrossSection::CalculateCrossSection(), and G4QIonIonCrossSection::CalculateCrossSection().

◆ GetCrossSection()

virtual G4double G4VQCrossSection::GetCrossSection ( G4bool  ,
G4double  ,
G4int  ,
G4int  ,
G4int  pPDG = 0 
)
inlinevirtual

Reimplemented in G4QPionMinusNuclearCrossSection, G4QAntiBaryonElasticCrossSection, G4QAntiBaryonNuclearCrossSection, G4QAntiBaryonPlusNuclearCrossSection, G4QKaonMinusElasticCrossSection, G4QKaonMinusNuclearCrossSection, G4QANuANuNuclearCrossSection, G4QANuENuclearCrossSection, G4QANuMuNuclearCrossSection, G4QElectronNuclearCrossSection, G4QMuonNuclearCrossSection, G4QNuENuclearCrossSection, G4QNuMuNuclearCrossSection, G4QNuNuNuclearCrossSection, G4QPhotonNuclearCrossSection, G4QTauNuclearCrossSection, G4QKaonZeroNuclearCrossSection, G4QPionPlusNuclearCrossSection, G4QNeutronElasticCrossSection, G4QNeutronNuclearCrossSection, G4QPionMinusElasticCrossSection, G4QPionPlusElasticCrossSection, G4QProtonElasticCrossSection, G4QProtonNuclearCrossSection, G4QHyperonElasticCrossSection, G4QHyperonNuclearCrossSection, G4QKaonPlusElasticCrossSection, G4QKaonPlusNuclearCrossSection, G4QHyperonPlusElasticCrossSection, G4QHyperonPlusNuclearCrossSection, and G4QIonIonCrossSection.

Definition at line 99 of file G4VQCrossSection.hh.

100 {return G4double(pPDG);}

Referenced by G4QuasiFreeRatios::ChExer(), G4QKaonZeroNuclearCrossSection::GetCrossSection(), G4CHIPSElasticXS::GetIsoCrossSection(), G4QHadronElasticDataSet::GetIsoCrossSection(), G4QHadronInelasticDataSet::GetIsoCrossSection(), G4QAtomicElectronScattering::GetMeanFreePath(), G4QElastic::GetMeanFreePath(), G4QInelastic::GetMeanFreePath(), G4QIonIonElastic::GetMeanFreePath(), G4QLowEnergy::GetMeanFreePath(), G4QNGamma::GetMeanFreePath(), G4QAtomicElectronScattering::PostStepDoIt(), G4QElastic::PostStepDoIt(), G4QInelastic::PostStepDoIt(), G4QIonIonElastic::PostStepDoIt(), G4QLowEnergy::PostStepDoIt(), G4CHIPSElastic::SampleInvariantT(), and G4QuasiFreeRatios::Scatter().

◆ GetDirectPart()

G4double G4VQCrossSection::GetDirectPart ( G4double  Q2)
virtual

◆ GetExchangeEnergy()

G4double G4VQCrossSection::GetExchangeEnergy ( )
virtual

◆ GetExchangePDGCode()

◆ GetExchangeQ2()

G4double G4VQCrossSection::GetExchangeQ2 ( G4double  nu = 0)
virtual

◆ GetExchangeT()

◆ GetHMaxT()

◆ GetLastQELCS()

G4double G4VQCrossSection::GetLastQELCS ( )
virtual

◆ GetLastTOTCS()

G4double G4VQCrossSection::GetLastTOTCS ( )
virtual

◆ GetNPartons()

G4double G4VQCrossSection::GetNPartons ( G4double  Q2)
virtual

◆ GetNQE_ExchangeQ2()

G4double G4VQCrossSection::GetNQE_ExchangeQ2 ( )
virtual

◆ GetQEL_ExchangeQ2()

G4double G4VQCrossSection::GetQEL_ExchangeQ2 ( )
virtual

◆ GetSlope()

◆ GetVirtualFactor()

G4double G4VQCrossSection::GetVirtualFactor ( G4double  nu,
G4double  Q2 
)
virtual

◆ LinearFit()

G4double G4VQCrossSection::LinearFit ( G4double  X,
G4int  N,
G4double XN,
G4double YN 
)
protected

Definition at line 83 of file G4VQCrossSection.cc.

84{
85 G4double Xj=XN[0];
86 G4double Xh=XN[N-1];
87 if(X<=Xj) return YN[0];
88 else if(X>=Xh) return YN[N-1];
89 G4double Xp=0.; G4int j=0; while (X>Xj && j<N) {j++; Xp=Xj; Xj=XN[j];}
90 return YN[j]-(Xj-X)*(YN[j]-YN[j-1])/(Xj-Xp);
91}

◆ setTolerance()

static void G4VQCrossSection::setTolerance ( G4double  tol)
inlinestatic

Definition at line 96 of file G4VQCrossSection.hh.

96{tolerance=tol;}// Set NewTolerance for SameCrosSec
static G4double tolerance

◆ ThresholdEnergy()

G4double G4VQCrossSection::ThresholdEnergy ( G4int  Z,
G4int  N,
G4int  PDG = 0 
)
virtual

Member Data Documentation

◆ tolerance


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