69 throw G4HadronicException(__FILE__, __LINE__,
"G4VCrossSectionSource: unklnown particles in FindKeyParticle");
92 nComponents = components->size();
94 G4cout <<
"---- " << this->
Name() <<
" ---- has " << nComponents <<
" components" <<
G4endl;
112 <<
"Ecm = " << sqrtS /
GeV <<
" GeV - "
113 <<
" Cross section = " << sigma <<
" mb "
120 nComponents = components->size();
125 G4cout <<
"* Component " << i <<
": ";
136 if (e >= eLow && e <= eHigh) answer =
true;
179 G4double denom = eParam*eParam + (e-e0)*(e-e0);
182 G4double value = (2.* eParam * sigma * (e-e0) / denom) * std::pow(((e0 + eParam) / e), power);
const G4ParticleDefinition * FindKeyParticle(const G4KineticTrack &trk1, const G4KineticTrack &trk2) const
virtual G4String Name() const =0
virtual G4double LowLimit() const
G4double FcrossX(G4double e, G4double e0, G4double sigma, G4double eParam, G4double power) const
virtual G4double HighLimit() const
virtual const G4CrossSectionVector * GetComponents() const =0
G4GLOB_DLL std::ostream G4cout
static G4Proton * Proton()
static G4Neutron * Neutron()
virtual G4bool IsValid(G4double e) const
std::vector< G4CrossSectionSourcePtr > G4CrossSectionVector
G4double GetPDGMass() const
G4bool operator!=(const G4VCrossSectionSource &right) const
T max(const T t1, const T t2)
brief Return the largest of the two arguments
G4bool operator==(const G4VCrossSectionSource &right) const
virtual void Print() const
static const double millibarn
virtual void PrintAll(const G4KineticTrack &trk1, const G4KineticTrack &trk2) const
const G4LorentzVector & Get4Momentum() const
const G4ParticleDefinition * GetDefinition() const
const G4ParticleDefinition * FindLightParticle(const G4KineticTrack &trk1, const G4KineticTrack &trk2) const
G4bool InLimits(G4double e, G4double eLow, G4double eHigh) const
virtual G4double CrossSection(const G4KineticTrack &trk1, const G4KineticTrack &trk2) const =0
virtual ~G4VCrossSectionSource()