64 invFanoFactor = 1.0/0.2;
90 if(material != curMaterial) {
91 curMaterial = material;
95 if(0.0 == curMeanEnergy) {
99 if(curMeanEnergy > 0.0) { nion = (edep - niel)/curMeanEnergy; }
107std::vector<G4ThreeVector>*
110 std::vector<G4ThreeVector>* v = 0;
117 v =
new std::vector<G4ThreeVector>;
120 for(
G4int i=0; i<nion; ++i) {
124 G4cout <<
"### G4ElectronIonPair::SampleIonisationPoints: "
125 << v->size() <<
" ion pairs are added" <<
G4endl;
139 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 avalable:" <<
G4endl;
174 for(
G4int i=0; i<nmat; ++i) {
179 << x/eV <<
" eV" <<
G4endl;
190 G4cout <<
"### G4ElectronIonPair: mean energy per ion pair "
191 <<
" for Geant4 materials" <<
G4endl;
192 for(
G4int i=0; i<nMaterials; ++i) {
193 G4cout <<
" " << g4MatNames[i] <<
" Epair= "
194 << g4MatData[i]/eV <<
" eV" <<
G4endl;
201void G4ElectronIonPair::Initialise()
204 g4MatNames.push_back(
"G4_Si");
205 g4MatData.push_back(3.62*eV);
207 g4MatNames.push_back(
"G4_Ge");
208 g4MatData.push_back(2.97*eV);
210 g4MatNames.push_back(
"G4_He");
211 g4MatData.push_back(44.4*eV);
213 g4MatNames.push_back(
"G4_N");
214 g4MatData.push_back(36.4*eV);
216 g4MatNames.push_back(
"G4_O");
217 g4MatData.push_back(32.3*eV);
219 g4MatNames.push_back(
"G4_Ne");
220 g4MatData.push_back(36.8*eV);
222 g4MatNames.push_back(
"G4_Ar");
223 g4MatData.push_back(26.34*eV);
225 g4MatNames.push_back(
"G4_Kr");
226 g4MatData.push_back(24.1*eV);
228 g4MatNames.push_back(
"G4_Xe");
229 g4MatData.push_back(21.6*eV);
231 g4MatNames.push_back(
"G4_lAr");
232 g4MatData.push_back(23.6*eV);
234 g4MatNames.push_back(
"G4_lKr");
235 g4MatData.push_back(20.5*eV);
237 g4MatNames.push_back(
"G4_lXe");
238 g4MatData.push_back(15.6*eV);
240 g4MatNames.push_back(
"G4_AIR");
241 g4MatData.push_back(35.1*eV);
243 nMaterials = g4MatData.size();
std::vector< G4Material * > G4MaterialTable
std::vector< G4Track * > G4TrackVector
G4DLLIMPORT std::ostream G4cout
void DumpMeanEnergyPerIonPair()
G4int SampleNumberOfIonsAlongStep(const G4Step *)
virtual ~G4ElectronIonPair()
G4int ResidualeChargePostStep(const G4ParticleDefinition *, const G4TrackVector *secondary=0, G4int processSubType=-1)
G4double FindG4MeanEnergyPerIonPair(const G4Material *)
G4double MeanNumberOfIonsAlongStep(const G4ParticleDefinition *, const G4Material *, G4double edepTotal, G4double edepNIEL=0.0)
void DumpG4MeanEnergyPerIonPair()
std::vector< G4ThreeVector > * SampleIonsAlongStep(const G4Step *)
G4double GetMeanEnergyPerIonPair() const
void SetMeanEnergyPerIonPair(G4double value)
static const G4MaterialTable * GetMaterialTable()
static size_t GetNumberOfMaterials()
G4IonisParamMat * GetIonisation() const
const G4String & GetName() const
G4double GetPDGCharge() const
const G4ThreeVector & GetPosition() const
G4StepPoint * GetPreStepPoint() const
G4StepPoint * GetPostStepPoint() const