51#ifndef G4PenelopeRayleighModelMI_HH
52#define G4PenelopeRayleighModelMI_HH 1
76 const G4String& processName =
"PenRayleighMI");
142 std::map<const G4Material*,G4PhysicsFreeVector*> *
fPMaxTable;
static const G4double emax
static const G4double angle[DIMMOTT]
G4int GetVerbosityLevel()
void SetParticle(const G4ParticleDefinition *)
G4double fIntrinsicHighEnergyLimit
std::map< const G4Material *, G4PhysicsFreeVector * > * fLogFormFactorTable
G4double IntegrateFun(G4double y[], G4int n, G4double dTheta)
std::map< G4String, G4String > * fKnownMaterials
void BuildFormFactorTable(const G4Material *)
G4PenelopeRayleighModelMI(const G4PenelopeRayleighModelMI &)=delete
G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *, G4double kinEnergy, G4double Z, G4double A=0, G4double cut=0, G4double emax=DBL_MAX) override
G4ParticleChangeForGamma * fParticleChange
Data members.
void InitialiseLocal(const G4ParticleDefinition *, G4VEmModel *masterModel) override
G4DataVector fLogEnergyGridPMax
G4double CalculateQSquared(G4double angle, G4double energy)
void LoadKnownMIFFMaterials()
const G4ParticleDefinition * fParticle
G4DataVector fLogQSquareGrid
void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy) override
void ReadMolInterferenceData(const G4String &, const G4String &filename="NULL")
void InitializeSamplingAlgorithm(const G4Material *)
static G4PhysicsFreeVector * fAtomicFormFactor[fMaxZ+1]
G4double CrossSectionPerVolume(const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0., G4double maxEnergy=DBL_MAX) override
void SetVerbosityLevel(G4int lev)
G4double fIntrinsicLowEnergyLimit
G4PenelopeRayleighModelMI & operator=(const G4PenelopeRayleighModelMI &right)=delete
void Initialise(const G4ParticleDefinition *, const G4DataVector &) override
G4double GetFSquared(const G4Material *, const G4double)
static const G4int fNtheta
void GetPMaxTable(const G4Material *)
void CalculateThetaAndAngFun()
void DumpFormFactorTable(const G4Material *)
G4PhysicsFreeVector * fAngularFunction
G4PenelopeRayleighModelMI(const G4ParticleDefinition *p=nullptr, const G4String &processName="PenRayleighMI")
std::map< const G4Material *, G4PenelopeSamplingData * > * fSamplingTable
G4MIData * GetMIData(const G4Material *)
std::map< G4String, G4PhysicsFreeVector * > * fMolInterferenceData
std::map< const G4Material *, G4PhysicsFreeVector * > * fPMaxTable
virtual ~G4PenelopeRayleighModelMI()
static G4PhysicsFreeVector * fLogAtomicCrossSection[fMaxZ+1]
void SetMIActive(G4bool val)
G4double energy(const ThreeVector &p, const G4double m)