48#ifndef G4VAtomDeexcitation_h
49#define G4VAtomDeexcitation_h 1
181 G4bool isAugerCascadeLocked;
184 std::vector<G4bool> activeZ;
185 std::vector<G4bool> activeDeexcitationMedia;
186 std::vector<G4bool> activeAugerMedia;
187 std::vector<G4bool> activePIXEMedia;
188 std::vector<G4String> activeRegions;
189 std::vector<G4bool> deRegions;
190 std::vector<G4bool> AugerRegions;
191 std::vector<G4bool> PIXERegions;
192 std::vector<G4DynamicParticle*> vdyn;
194 static G4int pixeIDg;
195 static G4int pixeIDe;
197#ifdef G4MULTITHREADED
198 static G4Mutex atomDeexcitationMutex;
204 if(!isActiveLocked) { isActive = val; isActiveLocked =
true; }
214 if(!isAugerLocked) { flagAuger = val; isAugerLocked =
true; }
224 if(!isAugerCascadeLocked) { flagAugerCascade = val; isAugerCascadeLocked =
true; }
229 return flagAugerCascade;
234 if(!isPIXELocked) { flagPIXE = val; isPIXELocked =
true; }
247inline const std::vector<G4bool>&
266 return (activeDeexcitationMedia[coupleIndex]);
272 return (activeAugerMedia[coupleIndex]);
G4bool CheckDeexcitationActiveRegion(G4int coupleIndex)
const std::vector< G4bool > & GetListOfActiveAtoms() const
G4bool IsAugerActive() const
virtual const G4AtomicShell * GetAtomicShell(G4int Z, G4AtomicShellEnumerator shell)=0
virtual G4double ComputeShellIonisationCrossSectionPerAtom(const G4ParticleDefinition *, G4int Z, G4AtomicShellEnumerator shell, G4double kinE, const G4Material *mat=nullptr)=0
const G4String & GetName() const
G4bool CheckAugerActiveRegion(G4int coupleIndex)
virtual void InitialiseForExtraAtom(G4int Z)=0
virtual void GenerateParticles(std::vector< G4DynamicParticle * > *secVect, const G4AtomicShell *, G4int Z, G4double gammaCut, G4double eCut)=0
void GenerateParticles(std::vector< G4DynamicParticle * > *secVect, const G4AtomicShell *, G4int Z, G4int coupleIndex)
G4VAtomDeexcitation & operator=(const G4VAtomDeexcitation &right)=delete
void SetVerboseLevel(G4int)
G4bool IsFluoActive() const
G4int GetVerboseLevel() const
void InitialiseAtomicDeexcitation()
G4VAtomDeexcitation(G4VAtomDeexcitation &)=delete
void SetAugerCascade(G4bool)
virtual ~G4VAtomDeexcitation()
void AlongStepDeexcitation(std::vector< G4Track * > &tracks, const G4Step &step, G4double &eLoss, G4int coupleIndex)
G4bool IsAugerCascadeActive() const
virtual G4double GetShellIonisationCrossSectionPerAtom(const G4ParticleDefinition *, G4int Z, G4AtomicShellEnumerator shell, G4double kinE, const G4Material *mat=nullptr)=0
void SetDeexcitationActiveRegion(const G4String &rname, G4bool valDeexcitation, G4bool valAuger, G4bool valPIXE)
G4bool IsPIXEActive() const
virtual void InitialiseForNewRun()=0