49 if( verboseLevel>0 )
G4cout << modelName <<
" is deleted" <<
G4endl;
69 G4String materialName = materialNameIni;
70 if(materialName.find(
"_MODIFIED")){
71 materialName = materialName.substr(0,materialName.size()-9);
77 atomId = DetermineIonisedAtom(atomId, materialName, bindingEnergy);
81 G4double kineticEnergy = CalculAugerEnergyFor(atomId);
86 G4cerr<<
"FatalError. Auger kineticEnergy: "<<kineticEnergy<<
G4endl;
90 if(atomId==1 || atomId==2 || atomId==3)
92 GenerateAugerWithRandomDirection(fvect, kineticEnergy);
96 GenerateAugerWithRandomDirection(fvect, kineticEnergy);
97 GenerateAugerWithRandomDirection(fvect, kineticEnergy);
106 if(materialName==
"THF" || materialName==
"backbone_THF"){
107 if(bindingEnergy==305.07){
110 else if(bindingEnergy==557.94){
114 else if(materialName==
"PY" || materialName==
"PU"
115 || materialName==
"cytosine_PY" || materialName==
"thymine_PY"
116 || materialName==
"adenine_PU" || materialName==
"guanine_PU"
119 if(bindingEnergy==307.52){
122 else if(bindingEnergy==423.44){
126 else if(materialName==
"TMP"|| materialName==
"backbone_TMP"){
127 if(bindingEnergy==209.59 || bindingEnergy==152.4)
136G4double G4DNAPTBAugerModel::CalculAugerEnergyFor(
G4int atomId)
142 kineticEnergy = 495*eV;
157 else if(atomId == 4){
173 kineticEnergy = pow(10, f1*pow( abs( log10(
Y) ) , g1) + f2*pow( abs( log10(
Y) ) , g2) + f3 )*eV;
176 return kineticEnergy;
183 minElectronEnergy = cut;
188void G4DNAPTBAugerModel::GenerateAugerWithRandomDirection(std::vector<G4DynamicParticle*>* fvect,
G4double kineticEnergy)
192 G4double newsinTh = std::sqrt(1.-newcosTh*newcosTh);
195 G4double xDir = newsinTh*std::sin(newPhi);
196 G4double yDir = newsinTh*std::cos(newPhi);
203 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()