60 #ifndef G4MuPairProductionModel_h
61 #define G4MuPairProductionModel_h 1
131 void MakeSamplingTables();
169 G4int nYBinPerDecade;
177 static const G4int zdat[5];
225 DataCorrupted(Z, logTkin);
230 if(p0 <= 0.0) { DataCorrupted(Z, logTkin); }
231 else { res = pv->
FindLinearX((pmin + rand*(pmax - pmin))/p0, logTkin); }
G4double MaxSecondaryEnergyForElement(G4double kineticEnergy, G4double Z)
static const G4double xgi[8]
G4MuPairProductionModel(const G4ParticleDefinition *p=0, const G4String &nam="muPairProd")
const G4ParticleDefinition * particle
G4double GetZ13(G4double Z)
void SetParticle(const G4ParticleDefinition *)
virtual G4double ComputeDEDXPerVolume(const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy)
G4double ComputMuPairLoss(G4double Z, G4double tkin, G4double cut, G4double tmax)
G4double ComputeMicroscopicCrossSection(G4double tkin, G4double Z, G4double cut)
G4double Value(G4double x, G4double y, size_t &lastidx, size_t &lastidy) const
virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *, G4double kineticEnergy, G4double Z, G4double A, G4double cutEnergy, G4double maxEnergy)
virtual void InitialiseLocal(const G4ParticleDefinition *, G4VEmModel *masterModel)
virtual G4double MinPrimaryEnergy(const G4Material *, const G4ParticleDefinition *, G4double)
G4double GetPDGMass() const
virtual G4double ComputeDMicroscopicCrossSection(G4double tkin, G4double Z, G4double pairEnergy)
static const G4double wgi[8]
G4double GetLOGZ(G4int Z)
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy)
void SetLowestKineticEnergy(G4double e)
G4Physics2DVector * GetElement2DData(G4int Z)
G4ElementData * fElementData
virtual ~G4MuPairProductionModel()
G4double FindLinearX(G4double rand, G4double y, size_t &lastidy) const
virtual void Initialise(const G4ParticleDefinition *, const G4DataVector &)