27#ifndef G4ChannelingFastSimModel_h
28#define G4ChannelingFastSimModel_h 1
38#include <unordered_map>
78 {fLowEnergyLimit[particleTable->
FindParticle(particleName)->
79 GetParticleDefinitionID()] = ekinetic;}
81 {fLindhardAngleNumberHighLimit[particleTable->
FindParticle(particleName)->
82 GetParticleDefinitionID()]=angleNumber;}
85 {fDefaultLowEnergyLimit=ekinetic;}
87 {fDefaultLindhardAngleNumberHighLimit=angleNumber;}
93 {fMaxPhotonsProducedPerStep=nPhotons;}
98 FindParticle(particleName)->
99 GetParticleDefinitionID());}
102 FindParticle(particleName)->
103 GetParticleDefinitionID());}
106 {
return (fLowEnergyLimit.count(particleDefinitionID) == 1)
107 ? fLowEnergyLimit[particleDefinitionID]
108 : fDefaultLowEnergyLimit;}
110 {
return (fLindhardAngleNumberHighLimit.count(particleDefinitionID) == 1)
111 ? fLindhardAngleNumberHighLimit[particleDefinitionID]
112 : fDefaultLindhardAngleNumberHighLimit;}
128 std::unordered_map<G4int, G4double> fLowEnergyLimit;
129 std::unordered_map<G4int, G4double> fLindhardAngleNumberHighLimit;
131 G4double fDefaultLowEnergyLimit = 200*CLHEP::MeV;
132 G4double fDefaultLindhardAngleNumberHighLimit = 100.;
135 G4int fMaxPhotonsProducedPerStep=1000.;
Definition of the G4BaierKatkov class This class is designed for the calculation of radiation probabi...
Definition of the G4ChannelingFastSimCrystalData class The class inherits G4VChannelingFastSimCrystal...
void SetDefaultLindhardAngleNumberHighLimit(G4double angleNumber)
G4ChannelingFastSimCrystalData * GetCrystalData()
G4ChannelingFastSimModel(const G4String &, G4Region *)
G4bool GetIfRadiationModelActive()
void SetDefaultLowKineticEnergyLimit(G4double ekinetic)
void DoIt(const G4FastTrack &, G4FastStep &) override
– User method DoIt
void Input(const G4Material *crystal, const G4String &lattice)
special functions
~G4ChannelingFastSimModel()
void RadiationModelActivate()
G4bool IsApplicable(const G4ParticleDefinition &) override
– IsApplicable
void SetLindhardAngleNumberHighLimit(G4double angleNumber, const G4String &particleName)
G4double GetLindhardAngleNumberHighLimit(G4int particleDefinitionID)
void SetMaxPhotonsProducedPerStep(G4double nPhotons)
G4bool ModelTrigger(const G4FastTrack &) override
– ModelTrigger
void SetLowKineticEnergyLimit(G4double ekinetic, const G4String &particleName)
set cuts
G4double GetLowKineticEnergyLimit(const G4String &particleName)
get cuts
G4int GetMaxPhotonsProducedPerStep()
get the maximal number of photons that can be produced per fastStep
G4BaierKatkov * GetRadiationModel()
G4double GetLindhardAngleNumberHighLimit(const G4String &particleName)
G4double GetLowKineticEnergyLimit(G4int particleDefinitionID)
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
static G4ParticleTable * GetParticleTable()