60 curMaterial =
nullptr;
63 invFanoFactor = 1.0/0.2;
88 if(material != curMaterial) {
89 curMaterial = material;
93 if(0.0 == curMeanEnergy) {
97 if(curMeanEnergy > 0.0) { nion = (edep - niel)/curMeanEnergy; }
105std::vector<G4ThreeVector>*
108 std::vector<G4ThreeVector>* v =
nullptr;
115 v =
new std::vector<G4ThreeVector>;
118 for(
G4int i=0; i<nion; ++i) {
122 G4cout <<
"### G4ElectronIonPair::SampleIonisationPoints: "
123 << v->size() <<
" ion pairs are added" <<
G4endl;
138 if(2 == subType || 12 == subType || 13 == subType) { nholes = 1; }
151 for(
G4int j=0; j<nMaterials; ++j) {
152 if(name == g4MatNames[j]) {
156 G4cout <<
"### G4ElectronIonPair::FindG4MeanEnergyPerIonPair for "
157 << name <<
" Epair= " << res/eV <<
" eV is set"
173 G4cout <<
"### G4ElectronIonPair: mean energy per ion pair available:"
175 for(std::size_t i=0; i<nmat; ++i) {
180 << x/eV <<
" eV" <<
G4endl;
191 G4cout <<
"### G4ElectronIonPair: mean energy per ion pair "
192 <<
" for Geant4 materials" <<
G4endl;
193 for(
G4int i=0; i<nMaterials; ++i) {
194 G4cout <<
" " << g4MatNames[i] <<
" Epair= "
195 << g4MatData[i]/eV <<
" eV" <<
G4endl;
202void G4ElectronIonPair::Initialise()
205 g4MatNames.push_back(
"G4_Si");
206 g4MatData.push_back(3.62*eV);
208 g4MatNames.push_back(
"G4_Ge");
209 g4MatData.push_back(2.97*eV);
211 g4MatNames.push_back(
"G4_He");
212 g4MatData.push_back(44.4*eV);
214 g4MatNames.push_back(
"G4_N");
215 g4MatData.push_back(36.4*eV);
217 g4MatNames.push_back(
"G4_O");
218 g4MatData.push_back(32.3*eV);
220 g4MatNames.push_back(
"G4_Ne");
221 g4MatData.push_back(36.8*eV);
223 g4MatNames.push_back(
"G4_Ar");
224 g4MatData.push_back(26.34*eV);
226 g4MatNames.push_back(
"G4_Kr");
227 g4MatData.push_back(24.1*eV);
229 g4MatNames.push_back(
"G4_Xe");
230 g4MatData.push_back(21.6*eV);
232 g4MatNames.push_back(
"G4_lAr");
233 g4MatData.push_back(23.6*eV);
235 g4MatNames.push_back(
"G4_lKr");
236 g4MatData.push_back(20.5*eV);
238 g4MatNames.push_back(
"G4_lXe");
239 g4MatData.push_back(15.6*eV);
241 g4MatNames.push_back(
"G4_AIR");
242 g4MatData.push_back(35.1*eV);
244 nMaterials = (
G4int)g4MatData.size();
std::vector< G4Material * > G4MaterialTable
std::vector< G4Track * > G4TrackVector
G4GLOB_DLL std::ostream G4cout
G4int SampleNumberOfIonsAlongStep(const G4Step *)
void DumpG4MeanEnergyPerIonPair() const
G4double FindG4MeanEnergyPerIonPair(const G4Material *) const
virtual ~G4ElectronIonPair()
void DumpMeanEnergyPerIonPair() const
G4double MeanNumberOfIonsAlongStep(const G4ParticleDefinition *, const G4Material *, G4double edepTotal, G4double edepNIEL=0.0)
G4int ResidualeChargePostStep(const G4ParticleDefinition *, const G4TrackVector *secondary=nullptr, G4int processSubType=-1) const
G4ElectronIonPair(G4int verb)
std::vector< G4ThreeVector > * SampleIonsAlongStep(const G4Step *)
G4double GetMeanEnergyPerIonPair() const
void SetMeanEnergyPerIonPair(G4double value)
G4IonisParamMat * GetIonisation() const
static std::size_t GetNumberOfMaterials()
static G4MaterialTable * GetMaterialTable()
const G4String & GetName() const
G4double GetPDGCharge() const
const G4ThreeVector & GetPosition() const
G4StepPoint * GetPreStepPoint() const
G4StepPoint * GetPostStepPoint() const