Geant4
10.01
|
WARNING: THIS CLASS IS A PROTOTYPE G4DNAChemistryManager is called from the physics models. More...
#include <G4DNAChemistryManager.hh>
Public Member Functions | |
G4bool | IsChemistryActivated () |
void | SetChemistryActivation (G4bool) |
virtual G4bool | Notify (G4ApplicationState requestedState) |
virtual void | SetNewValue (G4UIcommand *, G4String) |
void | Initialize () |
void | SetChemistryList (G4VUserChemistryList *) |
void | Deregister (G4VUserChemistryList *) |
void | ForceMasterReinitialization () |
void | TagThreadForReinitialization () |
void | Run () |
void | Clear () |
void | Gun (G4ITGun *, bool physicsTableToBuild=true) |
void | ForceThreadReinitialization () |
void | ForceRebuildingPhysicsTable () |
void | WriteInto (const G4String &, std::ios_base::openmode mode=std::ios_base::out) |
Tells the chemMan to write into a file the position and electronic state of the water molecule and the position thermalized or not of the solvated electron. More... | |
void | AddEmptyLineInOuputFile () |
void | CloseFile () |
Close the file specified with WriteInto. More... | |
void | CreateWaterMolecule (ElectronicModification, G4int, const G4Track *) |
Method used by DNA physics model to create a water molecule. More... | |
void | CreateSolvatedElectron (const G4Track *, G4ThreeVector *finalPosition=0) |
On the same idea as the previous method but for solvated electron. More... | |
void | PushMolecule (G4Molecule *&molecule, double time, const G4ThreeVector &position, int parentID) |
WARNING : In case chemistry is not activated, PushMolecule will take care of deleting the transfered molecule. More... | |
void | PushMoleculeAtParentTimeAndPlace (G4Molecule *&molecule, const G4Track *) |
WARNING : In case chemistry is not activated, PushMoleculeAtParentTimeAndPlace will take care of deleting the transfered molecule. More... | |
void | SetVerbose (G4int verbose) |
Public Member Functions inherited from G4UImessenger | |
G4UImessenger () | |
G4UImessenger (const G4String &path, const G4String &dsc, G4bool commandsToBeBroadcasted=true) | |
virtual | ~G4UImessenger () |
virtual G4String | GetCurrentValue (G4UIcommand *command) |
G4bool | operator== (const G4UImessenger &messenger) const |
G4bool | CommandsShouldBeInMaster () const |
Public Member Functions inherited from G4VStateDependent | |
G4VStateDependent (G4bool bottom=false) | |
virtual | ~G4VStateDependent () |
G4int | operator== (const G4VStateDependent &right) const |
G4int | operator!= (const G4VStateDependent &right) const |
Static Public Member Functions | |
static G4DNAChemistryManager * | Instance () |
static G4DNAChemistryManager * | GetInstanceIfExists () |
static void | DeleteInstance () |
You should rather use DeleteInstance than the destructor of this class. More... | |
static G4bool | IsActivated () |
static void | Activated (G4bool flag=true) |
Protected Member Functions | |
virtual | ~G4DNAChemistryManager () |
G4DNAWaterExcitationStructure * | GetExcitationLevel () |
G4DNAWaterIonisationStructure * | GetIonisationLevel () |
void | InitializeFile () |
void | InitializeMaster () |
void | InitializeThread () |
G4DNAChemistryManager () | |
Protected Member Functions inherited from G4UImessenger | |
G4String | ItoS (G4int i) |
G4String | DtoS (G4double a) |
G4String | BtoS (G4bool b) |
G4int | StoI (G4String s) |
G4double | StoD (G4String s) |
G4bool | StoB (G4String s) |
void | AddUIcommand (G4UIcommand *newCommand) |
void | CreateDirectory (const G4String &path, const G4String &dsc, G4bool commandsToBeBroadcasted=true) |
template<typename T > | |
T * | CreateCommand (const G4String &cname, const G4String &dsc) |
Static Private Attributes | |
static G4DNAChemistryManager * | fgInstance |
static G4ThreadLocal std::ofstream * | fpgOutput_tl = 0 |
static G4ThreadLocal G4bool * | fpgThreadInitialized_tl = 0 |
Additional Inherited Members | |
Protected Attributes inherited from G4UImessenger | |
G4UIdirectory * | baseDir |
G4String | baseDirName |
G4bool | commandsShouldBeInMaster |
WARNING: THIS CLASS IS A PROTOTYPE G4DNAChemistryManager is called from the physics models.
It creates the water molecules and the solvated electrons and and send them to G4ITStepManager to be treated in the chemistry stage. For this, the fActiveChemistry flag needs to be on. It is also possible to give already molecule's pointers already built. G4DNAChemistryManager will then be in charge of creating the track and loading it to the IT system. The user can also ask to create a file containing a information about the creation of water molecules and solvated electrons.
Definition at line 87 of file G4DNAChemistryManager.hh.
|
protectedvirtual |
Definition at line 126 of file G4DNAChemistryManager.cc.
References Clear(), and fgInstance.
|
protected |
Definition at line 68 of file G4DNAChemistryManager.cc.
References fActiveChemistry, fBuildPhysicsTable, fFileInitialized, fForceThreadReinitialization, fGeometryClosed, fMasterInitialized, fpActivateChem, fpChemDNADirectory, fpExcitationLevel, fPhysicsTableBuilt, fpIonisationLevel, fpRunChem, fpUserChemistryList, fVerbose, and fWriteFile.
Referenced by Instance().
|
static |
Definition at line 436 of file G4DNAChemistryManager.cc.
References fActiveChemistry, and Instance().
Referenced by SetChemistryList(), and SetNewValue().
void G4DNAChemistryManager::AddEmptyLineInOuputFile | ( | ) |
Definition at line 466 of file G4DNAChemistryManager.cc.
References fpgOutput_tl, fWriteFile, and G4endl.
void G4DNAChemistryManager::Clear | ( | ) |
Definition at line 138 of file G4DNAChemistryManager.cc.
References G4MoleculeCounter::DeleteInstance(), G4DNAMolecularReactionTable::DeleteInstance(), G4MolecularConfiguration::DeleteManager(), fpActivateChem, fpChemDNADirectory, fpExcitationLevel, fpIonisationLevel, fpRunChem, fpUserChemistryList, and G4VUserChemistryList::IsPhysicsConstructor().
Referenced by Notify(), and ~G4DNAChemistryManager().
void G4DNAChemistryManager::CloseFile | ( | ) |
Close the file specified with WriteInto.
Definition at line 474 of file G4DNAChemistryManager.cc.
References fpgOutput_tl, fVerbose, G4cout, and G4endl.
Referenced by Run().
void G4DNAChemistryManager::CreateSolvatedElectron | ( | const G4Track * | theIncomingTrack, |
G4ThreeVector * | finalPosition = 0 |
||
) |
On the same idea as the previous method but for solvated electron.
This method should be used by the physics model of the ElectronSolvatation process.
Definition at line 574 of file G4DNAChemistryManager.cc.
References G4Molecule::BuildTrack(), G4Electron_aq::Definition(), eV, fActiveChemistry, fAlive, fFileInitialized, fpgOutput_tl, fWriteFile, G4endl, G4Track::GetKineticEnergy(), G4Track::GetPosition(), G4Track::GetTrackID(), InitializeFile(), G4VITTrackHolder::Instance(), nanometer, picosecond, and G4VITTrackHolder::Push().
Referenced by G4DNATransformElectronModel::SampleSecondaries(), and G4DNAOneStepSolvatationModel::SampleSecondaries().
void G4DNAChemistryManager::CreateWaterMolecule | ( | ElectronicModification | modification, |
G4int | electronicLevel, | ||
const G4Track * | theIncomingTrack | ||
) |
Method used by DNA physics model to create a water molecule.
The ElectronicModification is a flag telling wheter the molecule is ionized or excited, the electronic level is calculated by the model and the IncomingTrack is the track responsible for the creation of this molecule, for instance an electron.
Definition at line 508 of file G4DNAChemistryManager.cc.
References G4Molecule::BuildTrack(), G4H2O::Definition(), eDissociativeAttachment, eExcitedMolecule, eIonizedMolecule, G4INCL::KinematicsUtils::energy(), eV, G4DNAWaterExcitationStructure::ExcitationEnergy(), fActiveChemistry, fFileInitialized, fpgOutput_tl, fStopButAlive, fWriteFile, G4endl, GetExcitationLevel(), GetIonisationLevel(), G4Track::GetPosition(), G4Track::GetTrackID(), InitializeFile(), G4VITTrackHolder::Instance(), G4DNAWaterIonisationStructure::IonisationEnergy(), left, nanometer, picosecond, G4VITTrackHolder::Push(), and right.
Referenced by G4DNABornExcitationModel::SampleSecondaries(), G4DNAMillerGreenExcitationModel::SampleSecondaries(), G4DNAMeltonAttachmentModel::SampleSecondaries(), G4DNARuddIonisationModel::SampleSecondaries(), G4DNARuddIonisationExtendedModel::SampleSecondaries(), and G4DNABornIonisationModel::SampleSecondaries().
|
static |
You should rather use DeleteInstance than the destructor of this class.
Definition at line 190 of file G4DNAChemistryManager.cc.
References chemManExistence, fgInstance, G4cout, G4endl, and G4TemplateAutoLock< M, L, U >::unlock().
|
inline |
Definition at line 247 of file G4DNAChemistryManager.hh.
References fpUserChemistryList.
Referenced by G4VUserChemistryList::~G4VUserChemistryList().
|
inline |
Definition at line 252 of file G4DNAChemistryManager.hh.
References fMasterInitialized, and InitializeMaster().
|
inline |
Definition at line 236 of file G4DNAChemistryManager.hh.
References fPhysicsTableBuilt.
|
inline |
Definition at line 258 of file G4DNAChemistryManager.hh.
References fForceThreadReinitialization.
|
protected |
Definition at line 489 of file G4DNAChemistryManager.cc.
References fpExcitationLevel.
Referenced by CreateWaterMolecule().
|
static |
Definition at line 121 of file G4DNAChemistryManager.cc.
References fgInstance.
Referenced by G4VUserChemistryList::~G4VUserChemistryList().
|
protected |
Definition at line 499 of file G4DNAChemistryManager.cc.
References fpIonisationLevel.
Referenced by CreateWaterMolecule().
void G4DNAChemistryManager::Gun | ( | G4ITGun * | gun, |
bool | physicsTableToBuild = true |
||
) |
Definition at line 268 of file G4DNAChemistryManager.cc.
References fBuildPhysicsTable, G4Scheduler::Instance(), and G4Scheduler::SetGun().
void G4DNAChemistryManager::Initialize | ( | ) |
Definition at line 274 of file G4DNAChemistryManager.cc.
References InitializeMaster(), InitializeThread(), G4Threading::IsMultithreadedApplication(), and G4Threading::IsWorkerThread().
Referenced by G4EmDNAChemistry::ConstructProcess().
|
protected |
Definition at line 402 of file G4DNAChemistryManager.cc.
References fFileInitialized, fpgOutput_tl, fVerbose, fWriteFile, G4cout, G4endl, and left.
Referenced by CreateSolvatedElectron(), CreateWaterMolecule(), InitializeThread(), PushMolecule(), and PushMoleculeAtParentTimeAndPlace().
|
protected |
Definition at line 310 of file G4DNAChemistryManager.cc.
References G4VUserChemistryList::ConstructDissociationChannels(), G4VUserChemistryList::ConstructReactionTable(), fActiveChemistry, FatalException, fMasterInitialized, fpUserChemistryList, fVerbose, G4cout, G4endl, G4Exception(), G4DNAMolecularReactionTable::GetReactionTable(), and G4Scheduler::Instance().
Referenced by ForceMasterReinitialization(), and Initialize().
|
protected |
Definition at line 343 of file G4DNAChemistryManager.cc.
References G4VUserChemistryList::BuildPhysicsTable(), G4GeometryManager::CloseGeometry(), G4VUserChemistryList::ConstructTimeStepModel(), FatalException, fBuildPhysicsTable, fForceThreadReinitialization, fGeometryClosed, fpgThreadInitialized_tl, fPhysicsTableBuilt, fpUserChemistryList, fVerbose, G4cout, G4endl, G4Exception(), G4GeometryManager::GetInstance(), G4DNAMolecularReactionTable::GetReactionTable(), G4Scheduler::Initialize(), InitializeFile(), G4MoleculeCounter::InitializeInstance(), G4Scheduler::Instance(), and G4GeometryManager::OpenGeometry().
Referenced by Initialize(), and Run().
|
static |
Definition at line 106 of file G4DNAChemistryManager.cc.
References chemManExistence, fgInstance, G4DNAChemistryManager(), and G4TemplateAutoLock< M, L, U >::unlock().
Referenced by Activated(), G4EmDNAChemistry::ConstructProcess(), G4EmDNAChemistry::G4EmDNAChemistry(), IsActivated(), StackingAction::NewStage(), G4DNABornExcitationModel::SampleSecondaries(), G4DNAMeltonAttachmentModel::SampleSecondaries(), G4DNAMillerGreenExcitationModel::SampleSecondaries(), G4DNARuddIonisationExtendedModel::SampleSecondaries(), G4DNARuddIonisationModel::SampleSecondaries(), G4DNABornIonisationModel::SampleSecondaries(), G4DNATransformElectronModel::SampleSecondaries(), and G4DNAOneStepSolvatationModel::SampleSecondaries().
|
static |
Definition at line 431 of file G4DNAChemistryManager.cc.
References fActiveChemistry, and Instance().
G4bool G4DNAChemistryManager::IsChemistryActivated | ( | ) |
Definition at line 441 of file G4DNAChemistryManager.cc.
References fActiveChemistry.
|
virtual |
Implements G4VStateDependent.
Definition at line 210 of file G4DNAChemistryManager.cc.
References Clear(), fGeometryClosed, fVerbose, G4cout, G4endl, G4State_GeomClosed, and G4State_Quit.
void G4DNAChemistryManager::PushMolecule | ( | G4Molecule *& | molecule, |
double | time, | ||
const G4ThreeVector & | position, | ||
int | parentID | ||
) |
WARNING : In case chemistry is not activated, PushMolecule will take care of deleting the transfered molecule.
Before calling this method, it is also possible to check if the chemistry is activated through IsChemistryActived(). This method will create the track corresponding to the transfered molecule and will be in charge of loading the new track to the system.
Definition at line 621 of file G4DNAChemistryManager.cc.
References G4Molecule::BuildTrack(), fActiveChemistry, fAlive, fFileInitialized, fpgOutput_tl, fWriteFile, G4endl, G4Molecule::GetName(), InitializeFile(), G4VITTrackHolder::Instance(), nanometer, and G4VITTrackHolder::Push().
void G4DNAChemistryManager::PushMoleculeAtParentTimeAndPlace | ( | G4Molecule *& | molecule, |
const G4Track * | theIncomingTrack | ||
) |
WARNING : In case chemistry is not activated, PushMoleculeAtParentTimeAndPlace will take care of deleting the transfered molecule.
Before calling this method, it is also possible to check if the chemistry is activated through IsChemistryActived(). This method will create the track corresponding to the transfered molecule and will be in charge of loading the new track to the system.
Definition at line 653 of file G4DNAChemistryManager.cc.
References G4Molecule::BuildTrack(), eV, fActiveChemistry, fAlive, fFileInitialized, fpgOutput_tl, fWriteFile, G4endl, G4Track::GetGlobalTime(), G4Track::GetKineticEnergy(), G4Molecule::GetName(), G4Track::GetPosition(), G4Track::GetTrackID(), InitializeFile(), G4VITTrackHolder::Instance(), nanometer, and G4VITTrackHolder::Push().
void G4DNAChemistryManager::Run | ( | ) |
Definition at line 241 of file G4DNAChemistryManager.cc.
References CloseFile(), fActiveChemistry, FatalException, fMasterInitialized, fpgThreadInitialized_tl, G4Exception(), InitializeThread(), G4Scheduler::Instance(), and G4Scheduler::Process().
Referenced by StackingAction::NewStage(), and SetNewValue().
void G4DNAChemistryManager::SetChemistryActivation | ( | G4bool | flag | ) |
Definition at line 446 of file G4DNAChemistryManager.cc.
References fActiveChemistry.
|
inline |
Definition at line 241 of file G4DNAChemistryManager.hh.
References Activated(), and fpUserChemistryList.
Referenced by G4EmDNAChemistry::G4EmDNAChemistry().
|
virtual |
Reimplemented from G4UImessenger.
Definition at line 229 of file G4DNAChemistryManager.cc.
References Activated(), fpActivateChem, fpRunChem, G4UIcmdWithABool::GetNewBoolValue(), and Run().
|
inline |
Definition at line 195 of file G4DNAChemistryManager.hh.
References fVerbose.
|
inline |
Definition at line 264 of file G4DNAChemistryManager.hh.
References fpgThreadInitialized_tl.
void G4DNAChemistryManager::WriteInto | ( | const G4String & | , |
std::ios_base::openmode | mode = std::ios_base::out |
||
) |
Tells the chemMan to write into a file the position and electronic state of the water molecule and the position thermalized or not of the solvated electron.
Definition at line 451 of file G4DNAChemistryManager.cc.
References G4String::data(), fFileInitialized, fpgOutput_tl, fVerbose, fWriteFile, G4cout, and G4endl.
|
private |
Definition at line 216 of file G4DNAChemistryManager.hh.
Referenced by Activated(), CreateSolvatedElectron(), CreateWaterMolecule(), G4DNAChemistryManager(), InitializeMaster(), IsActivated(), IsChemistryActivated(), PushMolecule(), PushMoleculeAtParentTimeAndPlace(), Run(), and SetChemistryActivation().
|
private |
Definition at line 228 of file G4DNAChemistryManager.hh.
Referenced by G4DNAChemistryManager(), Gun(), and InitializeThread().
|
private |
Definition at line 217 of file G4DNAChemistryManager.hh.
Referenced by CreateSolvatedElectron(), CreateWaterMolecule(), G4DNAChemistryManager(), InitializeFile(), PushMolecule(), PushMoleculeAtParentTimeAndPlace(), and WriteInto().
|
private |
Definition at line 222 of file G4DNAChemistryManager.hh.
Referenced by ForceThreadReinitialization(), G4DNAChemistryManager(), and InitializeThread().
|
private |
Definition at line 231 of file G4DNAChemistryManager.hh.
Referenced by G4DNAChemistryManager(), InitializeThread(), and Notify().
|
staticprivate |
Definition at line 214 of file G4DNAChemistryManager.hh.
Referenced by DeleteInstance(), GetInstanceIfExists(), Instance(), and ~G4DNAChemistryManager().
|
private |
Definition at line 221 of file G4DNAChemistryManager.hh.
Referenced by ForceMasterReinitialization(), G4DNAChemistryManager(), InitializeMaster(), and Run().
|
private |
Definition at line 211 of file G4DNAChemistryManager.hh.
Referenced by Clear(), G4DNAChemistryManager(), and SetNewValue().
|
private |
Definition at line 210 of file G4DNAChemistryManager.hh.
Referenced by Clear(), and G4DNAChemistryManager().
|
private |
Definition at line 224 of file G4DNAChemistryManager.hh.
Referenced by Clear(), G4DNAChemistryManager(), and GetExcitationLevel().
|
staticprivate |
Definition at line 219 of file G4DNAChemistryManager.hh.
Referenced by AddEmptyLineInOuputFile(), CloseFile(), CreateSolvatedElectron(), CreateWaterMolecule(), InitializeFile(), PushMolecule(), PushMoleculeAtParentTimeAndPlace(), and WriteInto().
|
staticprivate |
Definition at line 220 of file G4DNAChemistryManager.hh.
Referenced by InitializeThread(), Run(), and TagThreadForReinitialization().
|
private |
Definition at line 229 of file G4DNAChemistryManager.hh.
Referenced by ForceRebuildingPhysicsTable(), G4DNAChemistryManager(), and InitializeThread().
|
private |
Definition at line 225 of file G4DNAChemistryManager.hh.
Referenced by Clear(), G4DNAChemistryManager(), and GetIonisationLevel().
|
private |
Definition at line 212 of file G4DNAChemistryManager.hh.
Referenced by Clear(), G4DNAChemistryManager(), and SetNewValue().
|
private |
Definition at line 227 of file G4DNAChemistryManager.hh.
Referenced by Clear(), Deregister(), G4DNAChemistryManager(), InitializeMaster(), InitializeThread(), and SetChemistryList().
|
private |
Definition at line 233 of file G4DNAChemistryManager.hh.
Referenced by CloseFile(), G4DNAChemistryManager(), InitializeFile(), InitializeMaster(), InitializeThread(), Notify(), SetVerbose(), and WriteInto().
|
private |
Definition at line 218 of file G4DNAChemistryManager.hh.
Referenced by AddEmptyLineInOuputFile(), CreateSolvatedElectron(), CreateWaterMolecule(), G4DNAChemistryManager(), InitializeFile(), PushMolecule(), PushMoleculeAtParentTimeAndPlace(), and WriteInto().