32#ifndef G4LivermorePolarizedRayleighModel_h
33#define G4LivermorePolarizedRayleighModel_h 1
46 const G4String& nam =
"LivermorePolarizedRayleigh");
75 void ReadData(
size_t Z,
const char* path =
nullptr);
static const G4double emax
G4double GeneratePhi(G4double cosTheta) const
void ReadData(size_t Z, const char *path=nullptr)
void InitialiseForElement(const G4ParticleDefinition *, G4int Z) override
virtual ~G4LivermorePolarizedRayleighModel()
G4ParticleChangeForGamma * fParticleChange
static G4PhysicsFreeVector * dataCS[101]
G4LivermorePolarizedRayleighModel(const G4ParticleDefinition *p=nullptr, const G4String &nam="LivermorePolarizedRayleigh")
G4ThreeVector GetPhotonPolarization(const G4DynamicParticle &photon)
static G4PhysicsFreeVector * formFactorData[101]
G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *, G4double kinEnergy, G4double Z, G4double A=0, G4double cut=0, G4double emax=DBL_MAX) override
G4double GeneratePolarizationAngle(void) const
G4double GenerateCosTheta(G4double incomingPhotonEnergy, G4int zAtom) const
void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy) override
G4LivermorePolarizedRayleighModel(const G4LivermorePolarizedRayleighModel &)=delete
void Initialise(const G4ParticleDefinition *, const G4DataVector &) override
void InitialiseLocal(const G4ParticleDefinition *, G4VEmModel *masterModel) override