49#ifndef G4PenelopeRayleighModelMI_HH
50#define G4PenelopeRayleighModelMI_HH 1
74 const G4String& processName =
"PenRayleighMI");
118 void ReadDataFile(
G4int);
123 void InitializeSamplingAlgorithm(
const G4Material*);
124 void ReadMolInterferenceData(
const G4String&,
const G4String& filename=
"NULL");
126 void CalculateThetaAndAngFun();
129 void LoadKnownMIFFMaterials();
144 std::map<G4int,G4PhysicsFreeVector*> *logAtomicCrossSection;
145 std::map<G4int,G4PhysicsFreeVector*> *atomicFormFactor;
146 std::map<G4String,G4PhysicsFreeVector*> *MolInterferenceData;
149 std::map<const G4Material*,G4PhysicsFreeVector*> *logFormFactorTable;
152 std::map<const G4Material*,G4PhysicsFreeVector*> *pMaxTable;
153 std::map<const G4Material*,G4PenelopeSamplingData*> *samplingTable;
157 static const G4int Ntheta = 31415;
161 std::map<G4String,G4String> *fKnownMaterials;
double A(double temperature)
G4int GetVerbosityLevel()
virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *, G4double kinEnergy, G4double Z, G4double A=0, G4double cut=0, G4double emax=DBL_MAX) override
virtual void InitialiseLocal(const G4ParticleDefinition *, G4VEmModel *masterModel) override
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy) override
virtual G4double CrossSectionPerVolume(const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0., G4double maxEnergy=DBL_MAX) override
void SetVerbosityLevel(G4int lev)
virtual void Initialise(const G4ParticleDefinition *, const G4DataVector &) override
void DumpFormFactorTable(const G4Material *)
virtual ~G4PenelopeRayleighModelMI()
void SetMIActive(G4bool val)