#include <G4VQCrossSection.hh>
Inheritance diagram for G4VQCrossSection:
Definition at line 85 of file G4VQCrossSection.hh.
G4VQCrossSection::G4VQCrossSection | ( | ) | [inline, protected] |
virtual G4VQCrossSection::~G4VQCrossSection | ( | ) | [inline, virtual] |
virtual G4double G4VQCrossSection::CalculateCrossSection | ( | G4bool | CS, | |
G4int | F, | |||
G4int | I, | |||
G4int | PDG, | |||
G4int | tgZ, | |||
G4int | tgN, | |||
G4double | pMom | |||
) | [pure virtual] |
Implemented in G4QAntiBaryonElasticCrossSection, G4QAntiBaryonNuclearCrossSection, G4QAntiBaryonPlusNuclearCrossSection, G4QANuANuNuclearCrossSection, G4QANuENuclearCrossSection, G4QANuMuNuclearCrossSection, G4QElectronNuclearCrossSection, G4QHyperonElasticCrossSection, G4QHyperonNuclearCrossSection, G4QHyperonPlusElasticCrossSection, G4QHyperonPlusNuclearCrossSection, G4QIonIonCrossSection, G4QKaonMinusElasticCrossSection, G4QKaonMinusNuclearCrossSection, G4QKaonPlusElasticCrossSection, G4QKaonPlusNuclearCrossSection, G4QKaonZeroNuclearCrossSection, G4QMuonNuclearCrossSection, G4QNeutronElasticCrossSection, G4QNeutronNuclearCrossSection, G4QNuENuclearCrossSection, G4QNuMuNuclearCrossSection, G4QNuNuNuclearCrossSection, G4QPhotonNuclearCrossSection, G4QPionMinusElasticCrossSection, G4QPionMinusNuclearCrossSection, G4QPionPlusElasticCrossSection, G4QPionPlusNuclearCrossSection, G4QProtonElasticCrossSection, G4QProtonNuclearCrossSection, and G4QTauNuclearCrossSection.
G4double G4VQCrossSection::EquLinearFit | ( | G4double | X, | |
G4int | N, | |||
G4double | X0, | |||
G4double | DX, | |||
G4double * | Y | |||
) | [protected] |
Definition at line 94 of file G4VQCrossSection.cc.
References G4cerr, G4cout, and G4endl.
Referenced by G4QProtonNuclearCrossSection::CalculateCrossSection(), G4QPionPlusNuclearCrossSection::CalculateCrossSection(), G4QPionMinusNuclearCrossSection::CalculateCrossSection(), G4QPhotonNuclearCrossSection::CalculateCrossSection(), G4QNeutronNuclearCrossSection::CalculateCrossSection(), G4QKaonPlusNuclearCrossSection::CalculateCrossSection(), G4QKaonMinusNuclearCrossSection::CalculateCrossSection(), G4QIonIonCrossSection::CalculateCrossSection(), G4QHyperonPlusNuclearCrossSection::CalculateCrossSection(), G4QHyperonNuclearCrossSection::CalculateCrossSection(), G4QAntiBaryonPlusNuclearCrossSection::CalculateCrossSection(), and G4QAntiBaryonNuclearCrossSection::CalculateCrossSection().
00096 { 00097 #ifdef pdebug 00098 G4cout<<"G4VQCrossSection::EquLinearFit: ***Called*** X="<<X<<", N="<<N<<", X0="<<X0 00099 <<", DX="<<DX<<G4endl; 00100 G4cout<<"G4VQCrossSection::EquLinearFit: Y[0]="<<Y[0]<<", Y[N-1]="<<Y[N-1]<<G4endl; 00101 //for(G4int i=1; i<N; i++)G4cout<<"-----G4VQCS::EquLinearFit: Y["<<i<<"]="<<Y[i]<<G4endl; 00102 #endif 00103 if(DX<=0. || N<2) 00104 { 00105 G4cerr<<"***G4VQCrossSection::EquLinearFit: DX="<<DX<<", N="<<N<<G4endl; 00106 return Y[0]; 00107 } 00108 G4int N2=N-2; 00109 G4double d=(X-X0)/DX; 00110 G4int j=static_cast<int>(d); 00111 if (j<0) j=0; 00112 else if(j>N2) j=N2; 00113 d-=j; // excess 00114 G4double yi=Y[j]; 00115 G4double sigma=yi+(Y[j+1]-yi)*d; 00116 #ifdef pdebug 00117 G4cout<<"G4VQCrossSection::EquLinearFit: CS="<<sigma<<G4endl; 00118 #endif 00119 return sigma; 00120 }
virtual G4double G4VQCrossSection::GetCrossSection | ( | G4bool | , | |
G4double | , | |||
G4int | , | |||
G4int | , | |||
G4int | pPDG = 0 | |||
) | [inline, virtual] |
Reimplemented in G4QAntiBaryonElasticCrossSection, G4QAntiBaryonNuclearCrossSection, G4QAntiBaryonPlusNuclearCrossSection, G4QANuANuNuclearCrossSection, G4QANuENuclearCrossSection, G4QANuMuNuclearCrossSection, G4QElectronNuclearCrossSection, G4QHyperonElasticCrossSection, G4QHyperonNuclearCrossSection, G4QHyperonPlusElasticCrossSection, G4QHyperonPlusNuclearCrossSection, G4QIonIonCrossSection, G4QKaonMinusElasticCrossSection, G4QKaonMinusNuclearCrossSection, G4QKaonPlusElasticCrossSection, G4QKaonPlusNuclearCrossSection, G4QKaonZeroNuclearCrossSection, G4QMuonNuclearCrossSection, G4QNeutronElasticCrossSection, G4QNeutronNuclearCrossSection, G4QNuENuclearCrossSection, G4QNuMuNuclearCrossSection, G4QNuNuNuclearCrossSection, G4QPhotonNuclearCrossSection, G4QPionMinusElasticCrossSection, G4QPionMinusNuclearCrossSection, G4QPionPlusElasticCrossSection, G4QPionPlusNuclearCrossSection, G4QProtonElasticCrossSection, G4QProtonNuclearCrossSection, and G4QTauNuclearCrossSection.
Definition at line 99 of file G4VQCrossSection.hh.
Referenced by G4QuasiFreeRatios::ChExer(), G4QKaonZeroNuclearCrossSection::GetCrossSection(), G4QHadronInelasticDataSet::GetIsoCrossSection(), G4QHadronElasticDataSet::GetIsoCrossSection(), G4CHIPSElasticXS::GetIsoCrossSection(), G4QNGamma::GetMeanFreePath(), G4QLowEnergy::GetMeanFreePath(), G4QIonIonElastic::GetMeanFreePath(), G4QInelastic::GetMeanFreePath(), G4QElastic::GetMeanFreePath(), G4QAtomicElectronScattering::GetMeanFreePath(), G4QLowEnergy::PostStepDoIt(), G4QIonIonElastic::PostStepDoIt(), G4QInelastic::PostStepDoIt(), G4QElastic::PostStepDoIt(), G4QAtomicElectronScattering::PostStepDoIt(), G4CHIPSElastic::SampleInvariantT(), and G4QuasiFreeRatios::Scatter().
00100 {return G4double(pPDG);}
Reimplemented in G4QANuANuNuclearCrossSection, G4QANuENuclearCrossSection, G4QANuMuNuclearCrossSection, G4QNuENuclearCrossSection, G4QNuMuNuclearCrossSection, and G4QNuNuNuclearCrossSection.
Definition at line 56 of file G4VQCrossSection.cc.
G4double G4VQCrossSection::GetExchangeEnergy | ( | ) | [virtual] |
Reimplemented in G4QElectronNuclearCrossSection, G4QMuonNuclearCrossSection, and G4QTauNuclearCrossSection.
Definition at line 64 of file G4VQCrossSection.cc.
Referenced by G4QInelastic::PostStepDoIt(), and G4QAtomicElectronScattering::PostStepDoIt().
G4int G4VQCrossSection::GetExchangePDGCode | ( | ) | [virtual] |
Reimplemented in G4QANuANuNuclearCrossSection, G4QANuENuclearCrossSection, G4QANuMuNuclearCrossSection, G4QElectronNuclearCrossSection, G4QMuonNuclearCrossSection, G4QNuENuclearCrossSection, G4QNuMuNuclearCrossSection, G4QNuNuNuclearCrossSection, and G4QTauNuclearCrossSection.
Definition at line 78 of file G4VQCrossSection.cc.
Referenced by G4QInelastic::PostStepDoIt().
Reimplemented in G4QElectronNuclearCrossSection, G4QMuonNuclearCrossSection, and G4QTauNuclearCrossSection.
Definition at line 66 of file G4VQCrossSection.cc.
Referenced by G4QInelastic::PostStepDoIt(), and G4QAtomicElectronScattering::PostStepDoIt().
Reimplemented in G4QAntiBaryonElasticCrossSection, G4QHyperonElasticCrossSection, G4QHyperonPlusElasticCrossSection, G4QKaonMinusElasticCrossSection, G4QKaonPlusElasticCrossSection, G4QNeutronElasticCrossSection, G4QPionMinusElasticCrossSection, G4QPionPlusElasticCrossSection, and G4QProtonElasticCrossSection.
Definition at line 70 of file G4VQCrossSection.cc.
Referenced by G4QuasiFreeRatios::ChExer(), G4QLowEnergy::PostStepDoIt(), G4QIonIonElastic::PostStepDoIt(), G4QElastic::PostStepDoIt(), G4CHIPSElastic::SampleInvariantT(), and G4QuasiFreeRatios::Scatter().
G4double G4VQCrossSection::GetHMaxT | ( | ) | [virtual] |
Reimplemented in G4QAntiBaryonElasticCrossSection, G4QHyperonElasticCrossSection, G4QHyperonPlusElasticCrossSection, G4QKaonMinusElasticCrossSection, G4QKaonPlusElasticCrossSection, G4QNeutronElasticCrossSection, G4QPionMinusElasticCrossSection, G4QPionPlusElasticCrossSection, and G4QProtonElasticCrossSection.
Definition at line 72 of file G4VQCrossSection.cc.
Referenced by G4QuasiFreeRatios::ChExer(), G4QLowEnergy::PostStepDoIt(), G4QIonIonElastic::PostStepDoIt(), G4QElastic::PostStepDoIt(), and G4QuasiFreeRatios::Scatter().
G4double G4VQCrossSection::GetLastQELCS | ( | ) | [virtual] |
Reimplemented in G4QANuANuNuclearCrossSection, G4QANuENuclearCrossSection, G4QANuMuNuclearCrossSection, G4QNuENuclearCrossSection, G4QNuMuNuclearCrossSection, and G4QNuNuNuclearCrossSection.
Definition at line 62 of file G4VQCrossSection.cc.
Referenced by G4QInelastic::PostStepDoIt().
G4double G4VQCrossSection::GetLastTOTCS | ( | ) | [virtual] |
Reimplemented in G4QANuANuNuclearCrossSection, G4QANuENuclearCrossSection, G4QANuMuNuclearCrossSection, G4QNuENuclearCrossSection, G4QNuMuNuclearCrossSection, and G4QNuNuNuclearCrossSection.
Definition at line 60 of file G4VQCrossSection.cc.
Referenced by G4QInelastic::PostStepDoIt().
Reimplemented in G4QANuANuNuclearCrossSection, G4QANuENuclearCrossSection, G4QANuMuNuclearCrossSection, G4QNuENuclearCrossSection, G4QNuMuNuclearCrossSection, and G4QNuNuNuclearCrossSection.
Definition at line 58 of file G4VQCrossSection.cc.
G4double G4VQCrossSection::GetNQE_ExchangeQ2 | ( | ) | [virtual] |
Reimplemented in G4QANuANuNuclearCrossSection, G4QANuENuclearCrossSection, G4QANuMuNuclearCrossSection, G4QNuENuclearCrossSection, G4QNuMuNuclearCrossSection, and G4QNuNuNuclearCrossSection.
Definition at line 76 of file G4VQCrossSection.cc.
Referenced by G4QInelastic::PostStepDoIt().
G4double G4VQCrossSection::GetQEL_ExchangeQ2 | ( | ) | [virtual] |
Reimplemented in G4QANuANuNuclearCrossSection, G4QANuENuclearCrossSection, G4QANuMuNuclearCrossSection, G4QNuENuclearCrossSection, G4QNuMuNuclearCrossSection, and G4QNuNuNuclearCrossSection.
Definition at line 74 of file G4VQCrossSection.cc.
Referenced by G4QInelastic::PostStepDoIt().
Reimplemented in G4QAntiBaryonElasticCrossSection, G4QHyperonElasticCrossSection, G4QHyperonPlusElasticCrossSection, G4QKaonMinusElasticCrossSection, G4QKaonPlusElasticCrossSection, G4QNeutronElasticCrossSection, G4QPionMinusElasticCrossSection, G4QPionPlusElasticCrossSection, and G4QProtonElasticCrossSection.
Definition at line 68 of file G4VQCrossSection.cc.
Referenced by G4QIonIonElastic::PostStepDoIt().
Reimplemented in G4QElectronNuclearCrossSection, G4QMuonNuclearCrossSection, and G4QTauNuclearCrossSection.
Definition at line 80 of file G4VQCrossSection.cc.
Referenced by G4QInelastic::PostStepDoIt(), and G4QAtomicElectronScattering::PostStepDoIt().
G4double G4VQCrossSection::LinearFit | ( | G4double | X, | |
G4int | N, | |||
G4double * | XN, | |||
G4double * | YN | |||
) | [protected] |
Definition at line 83 of file G4VQCrossSection.cc.
00084 { 00085 G4double Xj=XN[0]; 00086 G4double Xh=XN[N-1]; 00087 if(X<=Xj) return YN[0]; 00088 else if(X>=Xh) return YN[N-1]; 00089 G4double Xp=0.; G4int j=0; while (X>Xj && j<N) {j++; Xp=Xj; Xj=XN[j];} 00090 return YN[j]-(Xj-X)*(YN[j]-YN[j-1])/(Xj-Xp); 00091 }
static void G4VQCrossSection::setTolerance | ( | G4double | tol | ) | [inline, static] |
Definition at line 96 of file G4VQCrossSection.hh.
References tolerance.
00096 {tolerance=tol;}// Set NewTolerance for SameCrosSec
Reimplemented in G4QANuANuNuclearCrossSection, G4QANuENuclearCrossSection, G4QANuMuNuclearCrossSection, G4QElectronNuclearCrossSection, G4QMuonNuclearCrossSection, G4QNuENuclearCrossSection, G4QNuMuNuclearCrossSection, G4QNuNuNuclearCrossSection, G4QPhotonNuclearCrossSection, and G4QTauNuclearCrossSection.
Definition at line 54 of file G4VQCrossSection.cc.
Referenced by G4QProtonNuclearCrossSection::GetCrossSection(), G4QProtonElasticCrossSection::GetCrossSection(), G4QPionPlusNuclearCrossSection::GetCrossSection(), G4QPionPlusElasticCrossSection::GetCrossSection(), G4QPionMinusNuclearCrossSection::GetCrossSection(), G4QPionMinusElasticCrossSection::GetCrossSection(), G4QNeutronNuclearCrossSection::GetCrossSection(), G4QNeutronElasticCrossSection::GetCrossSection(), G4QKaonPlusNuclearCrossSection::GetCrossSection(), G4QKaonPlusElasticCrossSection::GetCrossSection(), G4QKaonMinusNuclearCrossSection::GetCrossSection(), G4QKaonMinusElasticCrossSection::GetCrossSection(), G4QIonIonCrossSection::GetCrossSection(), G4QHyperonPlusNuclearCrossSection::GetCrossSection(), G4QHyperonPlusElasticCrossSection::GetCrossSection(), G4QHyperonNuclearCrossSection::GetCrossSection(), G4QHyperonElasticCrossSection::GetCrossSection(), G4QAntiBaryonPlusNuclearCrossSection::GetCrossSection(), G4QAntiBaryonNuclearCrossSection::GetCrossSection(), and G4QAntiBaryonElasticCrossSection::GetCrossSection().
G4double G4VQCrossSection::tolerance = .001 [static, protected] |
Definition at line 175 of file G4VQCrossSection.hh.
Referenced by G4QTauNuclearCrossSection::GetCrossSection(), G4QProtonNuclearCrossSection::GetCrossSection(), G4QPionPlusNuclearCrossSection::GetCrossSection(), G4QPionMinusNuclearCrossSection::GetCrossSection(), G4QNuNuNuclearCrossSection::GetCrossSection(), G4QNuMuNuclearCrossSection::GetCrossSection(), G4QNuENuclearCrossSection::GetCrossSection(), G4QNeutronNuclearCrossSection::GetCrossSection(), G4QKaonPlusNuclearCrossSection::GetCrossSection(), G4QKaonMinusNuclearCrossSection::GetCrossSection(), G4QIonIonCrossSection::GetCrossSection(), G4QHyperonPlusNuclearCrossSection::GetCrossSection(), G4QHyperonNuclearCrossSection::GetCrossSection(), G4QANuMuNuclearCrossSection::GetCrossSection(), G4QANuENuclearCrossSection::GetCrossSection(), G4QANuANuNuclearCrossSection::GetCrossSection(), G4QAntiBaryonPlusNuclearCrossSection::GetCrossSection(), G4QAntiBaryonNuclearCrossSection::GetCrossSection(), and setTolerance().