|
| G4MicroElecElasticModel (const G4ParticleDefinition *p=0, const G4String &nam="MicroElecElasticModel") |
|
virtual | ~G4MicroElecElasticModel () |
|
virtual void | Initialise (const G4ParticleDefinition *, const G4DataVector &) |
|
virtual G4double | CrossSectionPerVolume (const G4Material *material, const G4ParticleDefinition *p, G4double ekin, G4double emin, G4double emax) |
|
virtual void | SampleSecondaries (std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy) |
|
void | SetKillBelowThreshold (G4double threshold) |
|
G4double | GetKillBelowThreshold () |
|
| G4VEmModel (const G4String &nam) |
|
virtual | ~G4VEmModel () |
|
virtual void | InitialiseLocal (const G4ParticleDefinition *, G4VEmModel *masterModel) |
|
virtual void | InitialiseForMaterial (const G4ParticleDefinition *, const G4Material *) |
|
virtual void | InitialiseForElement (const G4ParticleDefinition *, G4int Z) |
|
virtual G4double | ComputeDEDXPerVolume (const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=DBL_MAX) |
|
virtual G4double | ComputeCrossSectionPerAtom (const G4ParticleDefinition *, G4double kinEnergy, G4double Z, G4double A=0., G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX) |
|
virtual G4double | ChargeSquareRatio (const G4Track &) |
|
virtual G4double | GetChargeSquareRatio (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy) |
|
virtual G4double | GetParticleCharge (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy) |
|
virtual void | StartTracking (G4Track *) |
|
virtual void | CorrectionsAlongStep (const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double &eloss, G4double &niel, G4double length) |
|
virtual G4double | Value (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy) |
|
virtual G4double | MinPrimaryEnergy (const G4Material *, const G4ParticleDefinition *, G4double cut=0.0) |
|
virtual G4double | MinEnergyCut (const G4ParticleDefinition *, const G4MaterialCutsCouple *) |
|
virtual void | SetupForMaterial (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy) |
|
virtual void | DefineForRegion (const G4Region *) |
|
void | InitialiseElementSelectors (const G4ParticleDefinition *, const G4DataVector &) |
|
std::vector
< G4EmElementSelector * > * | GetElementSelectors () |
|
void | SetElementSelectors (std::vector< G4EmElementSelector * > *) |
|
G4double | ComputeDEDX (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=DBL_MAX) |
|
G4double | CrossSection (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX) |
|
G4double | ComputeMeanFreePath (const G4ParticleDefinition *, G4double kineticEnergy, const G4Material *, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX) |
|
G4double | ComputeCrossSectionPerAtom (const G4ParticleDefinition *, const G4Element *, G4double kinEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX) |
|
G4int | SelectIsotopeNumber (const G4Element *) |
|
const G4Element * | SelectRandomAtom (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX) |
|
const G4Element * | SelectRandomAtom (const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX) |
|
G4int | SelectRandomAtomNumber (const G4Material *) |
|
void | SetParticleChange (G4VParticleChange *, G4VEmFluctuationModel *f=0) |
|
void | SetCrossSectionTable (G4PhysicsTable *, G4bool isLocal) |
|
G4ElementData * | GetElementData () |
|
G4PhysicsTable * | GetCrossSectionTable () |
|
G4VEmFluctuationModel * | GetModelOfFluctuations () |
|
G4VEmAngularDistribution * | GetAngularDistribution () |
|
void | SetAngularDistribution (G4VEmAngularDistribution *) |
|
G4double | HighEnergyLimit () const |
|
G4double | LowEnergyLimit () const |
|
G4double | HighEnergyActivationLimit () const |
|
G4double | LowEnergyActivationLimit () const |
|
G4double | PolarAngleLimit () const |
|
G4double | SecondaryThreshold () const |
|
G4bool | LPMFlag () const |
|
G4bool | DeexcitationFlag () const |
|
G4bool | ForceBuildTableFlag () const |
|
G4bool | UseAngularGeneratorFlag () const |
|
void | SetAngularGeneratorFlag (G4bool) |
|
void | SetHighEnergyLimit (G4double) |
|
void | SetLowEnergyLimit (G4double) |
|
void | SetActivationHighEnergyLimit (G4double) |
|
void | SetActivationLowEnergyLimit (G4double) |
|
G4bool | IsActive (G4double kinEnergy) |
|
void | SetPolarAngleLimit (G4double) |
|
void | SetSecondaryThreshold (G4double) |
|
void | SetLPMFlag (G4bool val) |
|
void | SetDeexcitationFlag (G4bool val) |
|
void | SetForceBuildTable (G4bool val) |
|
void | SetMasterThread (G4bool val) |
|
G4bool | IsMaster () const |
|
G4double | MaxSecondaryKinEnergy (const G4DynamicParticle *dynParticle) |
|
const G4String & | GetName () const |
|
void | SetCurrentCouple (const G4MaterialCutsCouple *) |
|
const G4Element * | GetCurrentElement () const |
|
Definition at line 51 of file G4MicroElecElasticModel.hh.
Implements G4VEmModel.
Definition at line 101 of file G4MicroElecElasticModel.cc.
References python.hepunit::cm, G4InuclParticleNames::electron, G4Electron::ElectronDefinition(), python.hepunit::eV, FatalException, fParticleChangeForGamma, G4cout, G4endl, G4Exception(), G4VEmModel::GetParticleChangeForGamma(), G4ParticleDefinition::GetParticleName(), G4VEmModel::HighEnergyLimit(), python.hepunit::keV, G4MicroElecCrossSectionDataSet::LoadData(), G4VEmModel::LowEnergyLimit(), python.hepunit::MeV, G4VEmModel::SetHighEnergyLimit(), and G4VEmModel::SetLowEnergyLimit().
105 if (verboseLevel > 3)
106 G4cout <<
"Calling G4MicroElecElasticModel::Initialise()" <<
G4endl;
112 G4cout <<
"G4MicroElecElasticModel: low energy limit increased from " <<
119 G4cout <<
"G4MicroElecElasticModel: high energy limit decreased from " <<
128 G4String fileElectron(
"microelec/sigma_elastic_e_Si");
145 char *path = getenv(
"G4LEDATA");
153 std::ostringstream eFullFileName;
154 eFullFileName << path <<
"/microelec/sigmadiff_elastic_e_Si.dat";
155 std::ifstream eDiffCrossSection(eFullFileName.str().c_str());
157 if (!eDiffCrossSection)
158 G4Exception(
"G4MicroElecElasticModel::Initialise",
"em0003",
FatalException,
"Missing data file: /microelec/sigmadiff_elastic_e_Si.dat");
160 eTdummyVec.push_back(0.);
162 while(!eDiffCrossSection.eof())
166 eDiffCrossSection>>tDummy>>eDummy;
169 if (tDummy != eTdummyVec.back())
171 eTdummyVec.push_back(tDummy);
172 eVecm[tDummy].push_back(0.);
175 eDiffCrossSection>>eDiffCrossSectionData[tDummy][eDummy];
178 if (!eDiffCrossSection.eof()) eDiffCrossSectionData[tDummy][eDummy]*=scaleFactor;
180 if (eDummy != eVecm[tDummy].back()) eVecm[tDummy].push_back(eDummy);
186 if (verboseLevel > 2)
187 G4cout <<
"Loaded cross section files for MicroElec Elastic model" <<
G4endl;
191 G4cout <<
"MicroElec Elastic model is initialized " << G4endl
198 if (isInitialised) {
return; }
200 isInitialised =
true;
static G4Electron * ElectronDefinition()
G4double LowEnergyLimit() const
G4double HighEnergyLimit() const
const G4String & GetParticleName() const
void SetHighEnergyLimit(G4double)
G4GLOB_DLL std::ostream G4cout
virtual G4bool LoadData(const G4String &argFileName)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4ParticleChangeForGamma * fParticleChangeForGamma
void SetLowEnergyLimit(G4double)
G4ParticleChangeForGamma * GetParticleChangeForGamma()