60 curMaterial =
nullptr;
63 invFanoFactor = 1.0/0.2;
89 if(material != curMaterial) {
90 curMaterial = material;
94 if(0.0 == curMeanEnergy) {
98 if(curMeanEnergy > 0.0) { nion = (edep - niel)/curMeanEnergy; }
106std::vector<G4ThreeVector>*
109 std::vector<G4ThreeVector>* v = 0;
116 v =
new std::vector<G4ThreeVector>;
119 for(
G4int i=0; i<nion; ++i) {
123 G4cout <<
"### G4ElectronIonPair::SampleIonisationPoints: "
124 << v->size() <<
" ion pairs are added" <<
G4endl;
139 if(2 == subType || 12 == subType || 13 == subType) { nholes = 1; }
152 for(
G4int j=0; j<nMaterials; j++) {
153 if(name == g4MatNames[j]) {
157 G4cout <<
"### G4ElectronIonPair::FindG4MeanEnergyPerIonPair for "
158 << name <<
" Epair= " << res/eV <<
" eV is set"
174 G4cout <<
"### G4ElectronIonPair: mean energy per ion pair available:"
176 for(
G4int i=0; i<nmat; ++i) {
181 << x/eV <<
" eV" <<
G4endl;
192 G4cout <<
"### G4ElectronIonPair: mean energy per ion pair "
193 <<
" for Geant4 materials" <<
G4endl;
194 for(
G4int i=0; i<nMaterials; ++i) {
195 G4cout <<
" " << g4MatNames[i] <<
" Epair= "
196 << g4MatData[i]/eV <<
" eV" <<
G4endl;
203void G4ElectronIonPair::Initialise()
206 g4MatNames.push_back(
"G4_Si");
207 g4MatData.push_back(3.62*eV);
209 g4MatNames.push_back(
"G4_Ge");
210 g4MatData.push_back(2.97*eV);
212 g4MatNames.push_back(
"G4_He");
213 g4MatData.push_back(44.4*eV);
215 g4MatNames.push_back(
"G4_N");
216 g4MatData.push_back(36.4*eV);
218 g4MatNames.push_back(
"G4_O");
219 g4MatData.push_back(32.3*eV);
221 g4MatNames.push_back(
"G4_Ne");
222 g4MatData.push_back(36.8*eV);
224 g4MatNames.push_back(
"G4_Ar");
225 g4MatData.push_back(26.34*eV);
227 g4MatNames.push_back(
"G4_Kr");
228 g4MatData.push_back(24.1*eV);
230 g4MatNames.push_back(
"G4_Xe");
231 g4MatData.push_back(21.6*eV);
233 g4MatNames.push_back(
"G4_lAr");
234 g4MatData.push_back(23.6*eV);
236 g4MatNames.push_back(
"G4_lKr");
237 g4MatData.push_back(20.5*eV);
239 g4MatNames.push_back(
"G4_lXe");
240 g4MatData.push_back(15.6*eV);
242 g4MatNames.push_back(
"G4_AIR");
243 g4MatData.push_back(35.1*eV);
245 nMaterials = 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)
static size_t GetNumberOfMaterials()
G4IonisParamMat * GetIonisation() const
static G4MaterialTable * GetMaterialTable()
const G4String & GetName() const
G4double GetPDGCharge() const
const G4ThreeVector & GetPosition() const
G4StepPoint * GetPreStepPoint() const
G4StepPoint * GetPostStepPoint() const