44 minElectronEnergy = 0.0;
51 if( verboseLevel>0 )
G4cout << modelName <<
" is deleted" <<
G4endl;
71 G4String materialName = materialNameIni;
72 if(materialName.find(
"_MODIFIED") != 0u){
73 materialName = materialName.substr(0,materialName.size()-9);
79 atomId = DetermineIonisedAtom(atomId, materialName, bindingEnergy);
83 G4double kineticEnergy = CalculAugerEnergyFor(atomId);
88 G4cerr<<
"FatalError. Auger kineticEnergy: "<<kineticEnergy<<
G4endl;
92 if(atomId==1 || atomId==2 || atomId==3)
94 GenerateAugerWithRandomDirection(fvect, kineticEnergy);
98 GenerateAugerWithRandomDirection(fvect, kineticEnergy);
99 GenerateAugerWithRandomDirection(fvect, kineticEnergy);
108 if(materialName==
"THF" || materialName==
"backbone_THF"){
109 if(bindingEnergy==305.07){
112 else if(bindingEnergy==557.94){
116 else if(materialName==
"PY" || materialName==
"PU"
117 || materialName==
"cytosine_PY" || materialName==
"thymine_PY"
118 || materialName==
"adenine_PU" || materialName==
"guanine_PU"
121 if(bindingEnergy==307.52){
124 else if(bindingEnergy==423.44){
128 else if(materialName==
"TMP"|| materialName==
"backbone_TMP"){
129 if(bindingEnergy==209.59 || bindingEnergy==152.4)
138G4double G4DNAPTBAugerModel::CalculAugerEnergyFor(
G4int atomId)
144 kineticEnergy = 495*eV;
159 else if(atomId == 4){
175 kineticEnergy = pow(10, f1*pow( abs( log10(
Y) ) , g1) + f2*pow( abs( log10(
Y) ) , g2) + f3 )*eV;
178 return kineticEnergy;
185 minElectronEnergy = cut;
190void G4DNAPTBAugerModel::GenerateAugerWithRandomDirection(std::vector<G4DynamicParticle*>* fvect,
G4double kineticEnergy)
194 G4double newsinTh = std::sqrt(1.-newcosTh*newcosTh);
197 G4double xDir = newsinTh*std::sin(newPhi);
198 G4double yDir = newsinTh*std::cos(newPhi);
205 fvect->push_back(dp);
G4double Y(G4double density)
G4GLOB_DLL std::ostream G4cerr
G4GLOB_DLL std::ostream G4cout
virtual ~G4DNAPTBAugerModel()
~G4DNAPTBAugerModel Destructor
void ComputeAugerEffect(std::vector< G4DynamicParticle * > *fvect, const G4String &materialNameIni, G4double bindingEnergy)
ComputeAugerEffect Main method to be called by the ionisation model.
void SetCutForAugerElectrons(G4double cut)
SetCutForAugerElectrons Set the cut for the auger electrons production.
virtual void Initialise()
Initialise Set the verbose value.
G4DNAPTBAugerModel(const G4String &modelName)
G4DNAPTBAugerModel Constructor.
static G4Electron * Electron()