Geant4
10.02
|
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) |
virtual G4String | GetCurrentValue (G4UIcommand *command) |
void | Initialize () |
void | SetChemistryList (G4VUserChemistryList *) |
void | Deregister (G4VUserChemistryList *) |
void | SetGlobalTemperature (double temp_K) |
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) |
void | SetBuildPhysicsTable (bool flag) |
G4bool | IsCounterResetWhenRunEnds () const |
void | ResetCounterWhenRunEnds (G4bool resetCounterWhenRunEnds) |
Public Member Functions inherited from G4UImessenger | |
G4UImessenger () | |
G4UImessenger (const G4String &path, const G4String &dsc, G4bool commandsToBeBroadcasted=true) | |
virtual | ~G4UImessenger () |
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 88 of file G4DNAChemistryManager.hh.
|
protectedvirtual |
Definition at line 137 of file G4DNAChemistryManager.cc.
References Clear(), and fgInstance.
|
protected |
Definition at line 70 of file G4DNAChemistryManager.cc.
References fActiveChemistry, fBuildPhysicsTable, fFileInitialized, fForceThreadReinitialization, fGeometryClosed, fMasterInitialized, fpActivateChem, fpChemDNADirectory, fpExcitationLevel, fPhysicsTableBuilt, fpInitChem, fpIonisationLevel, fpRunChem, fpScaleForNewTemperature, fpSkipReactionsFromChemList, fpUserChemistryList, fResetCounterWhenRunEnds, fSkipReactions, fVerbose, and fWriteFile.
Referenced by Instance().
|
static |
Definition at line 500 of file G4DNAChemistryManager.cc.
References fActiveChemistry, and Instance().
Referenced by SetChemistryList(), and SetNewValue().
void G4DNAChemistryManager::AddEmptyLineInOuputFile | ( | ) |
Definition at line 530 of file G4DNAChemistryManager.cc.
References fpgOutput_tl, fWriteFile, and G4endl.
void G4DNAChemistryManager::Clear | ( | ) |
Definition at line 149 of file G4DNAChemistryManager.cc.
References G4MoleculeCounter::DeleteInstance(), G4DNAMolecularReactionTable::DeleteInstance(), G4MolecularConfiguration::DeleteManager(), fpActivateChem, fpChemDNADirectory, fpExcitationLevel, fpInitChem, fpIonisationLevel, fpRunChem, fpSkipReactionsFromChemList, fpUserChemistryList, and G4VUserChemistryList::IsPhysicsConstructor().
Referenced by Notify(), and ~G4DNAChemistryManager().
void G4DNAChemistryManager::CloseFile | ( | ) |
Close the file specified with WriteInto.
Definition at line 538 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 638 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 G4DNAOneStepThermalizationModel::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 572 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 G4DNADingfelderChargeDecreaseModel::SampleSecondaries(), G4DNAMeltonAttachmentModel::SampleSecondaries(), G4DNARuddIonisationModel::SampleSecondaries(), G4DNARuddIonisationExtendedModel::SampleSecondaries(), G4DNABornExcitationModel1::SampleSecondaries(), G4DNABornIonisationModel2::SampleSecondaries(), G4DNABornIonisationModel1::SampleSecondaries(), G4DNABornExcitationModel2::SampleSecondaries(), G4DNAMillerGreenExcitationModel::SampleSecondaries(), G4DNAEmfietzoglouExcitationModel::SampleSecondaries(), and G4DNAEmfietzoglouIonisationModel::SampleSecondaries().
|
static |
You should rather use DeleteInstance than the destructor of this class.
Definition at line 209 of file G4DNAChemistryManager.cc.
References chemManExistence, fgInstance, G4cout, G4endl, and G4TemplateAutoLock< M, L, U >::unlock().
|
inline |
Definition at line 269 of file G4DNAChemistryManager.hh.
References fpUserChemistryList.
Referenced by G4VUserChemistryList::~G4VUserChemistryList().
|
inline |
Definition at line 274 of file G4DNAChemistryManager.hh.
References fMasterInitialized, and InitializeMaster().
|
inline |
Definition at line 258 of file G4DNAChemistryManager.hh.
References fPhysicsTableBuilt.
|
inline |
Definition at line 280 of file G4DNAChemistryManager.hh.
References fForceThreadReinitialization.
|
virtual |
Reimplemented from G4UImessenger.
Definition at line 283 of file G4DNAChemistryManager.cc.
References G4UIcommand::ConvertToString(), fActiveChemistry, and fpActivateChem.
|
protected |
Definition at line 553 of file G4DNAChemistryManager.cc.
References fpExcitationLevel.
Referenced by CreateWaterMolecule().
|
static |
Definition at line 132 of file G4DNAChemistryManager.cc.
References fgInstance.
Referenced by G4VUserChemistryList::~G4VUserChemistryList().
|
protected |
Definition at line 563 of file G4DNAChemistryManager.cc.
References fpIonisationLevel.
Referenced by CreateWaterMolecule().
void G4DNAChemistryManager::Gun | ( | G4ITGun * | gun, |
bool | physicsTableToBuild = true |
||
) |
Definition at line 325 of file G4DNAChemistryManager.cc.
References fBuildPhysicsTable, G4Scheduler::Instance(), and G4Scheduler::SetGun().
void G4DNAChemistryManager::Initialize | ( | ) |
Definition at line 331 of file G4DNAChemistryManager.cc.
References InitializeMaster(), InitializeThread(), G4Threading::IsMultithreadedApplication(), and G4Threading::IsWorkerThread().
Referenced by G4EmDNAChemistry::ConstructProcess(), and SetNewValue().
|
protected |
Definition at line 466 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 367 of file G4DNAChemistryManager.cc.
References G4VUserChemistryList::ConstructDissociationChannels(), G4VUserChemistryList::ConstructReactionTable(), fActiveChemistry, FatalException, fMasterInitialized, fpUserChemistryList, fSkipReactions, fVerbose, G4cout, G4endl, G4Exception(), G4DNAMolecularReactionTable::GetReactionTable(), and G4Scheduler::Instance().
Referenced by ForceMasterReinitialization(), and Initialize().
|
protected |
Definition at line 407 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(), Run(), and SetNewValue().
|
static |
Definition at line 117 of file G4DNAChemistryManager.cc.
References chemManExistence, fgInstance, G4DNAChemistryManager(), and G4TemplateAutoLock< M, L, U >::unlock().
Referenced by Activated(), G4EmDNAChemistry::ConstructProcess(), G4EmDNAChemistry::G4EmDNAChemistry(), IsActivated(), StackingAction::NewStage(), G4DNADingfelderChargeDecreaseModel::SampleSecondaries(), G4DNAMeltonAttachmentModel::SampleSecondaries(), G4DNARuddIonisationExtendedModel::SampleSecondaries(), G4DNARuddIonisationModel::SampleSecondaries(), G4DNABornExcitationModel1::SampleSecondaries(), G4DNABornIonisationModel2::SampleSecondaries(), G4DNABornIonisationModel1::SampleSecondaries(), G4DNAMillerGreenExcitationModel::SampleSecondaries(), G4DNABornExcitationModel2::SampleSecondaries(), G4DNAEmfietzoglouExcitationModel::SampleSecondaries(), G4DNAEmfietzoglouIonisationModel::SampleSecondaries(), G4DNATransformElectronModel::SampleSecondaries(), and G4DNAOneStepThermalizationModel::SampleSecondaries().
|
static |
Definition at line 495 of file G4DNAChemistryManager.cc.
References fActiveChemistry, and Instance().
G4bool G4DNAChemistryManager::IsChemistryActivated | ( | ) |
Definition at line 505 of file G4DNAChemistryManager.cc.
References fActiveChemistry.
|
inline |
Definition at line 206 of file G4DNAChemistryManager.hh.
References fResetCounterWhenRunEnds.
|
virtual |
Implements G4VStateDependent.
Definition at line 229 of file G4DNAChemistryManager.cc.
References Clear(), fGeometryClosed, fVerbose, G4cout, G4endl, G4State_GeomClosed, G4State_Idle, G4State_Quit, G4MoleculeTable::Instance(), and G4MoleculeTable::PrepareMolecularConfiguration().
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 685 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 717 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().
|
inline |
Definition at line 211 of file G4DNAChemistryManager.hh.
References fResetCounterWhenRunEnds.
void G4DNAChemistryManager::Run | ( | ) |
Definition at line 293 of file G4DNAChemistryManager.cc.
References CloseFile(), fActiveChemistry, FatalException, G4MoleculeTable::Finalize(), fMasterInitialized, fpgThreadInitialized_tl, fResetCounterWhenRunEnds, G4Exception(), InitializeThread(), G4MoleculeTable::Instance(), G4Scheduler::Instance(), G4MoleculeCounter::Instance(), G4Scheduler::Process(), and G4MoleculeCounter::ResetCounter().
Referenced by StackingAction::NewStage(), and SetNewValue().
|
inline |
Definition at line 203 of file G4DNAChemistryManager.hh.
References fBuildPhysicsTable.
void G4DNAChemistryManager::SetChemistryActivation | ( | G4bool | flag | ) |
Definition at line 510 of file G4DNAChemistryManager.cc.
References fActiveChemistry.
|
inline |
Definition at line 263 of file G4DNAChemistryManager.hh.
References Activated(), and fpUserChemistryList.
Referenced by G4EmDNAChemistry::G4EmDNAChemistry().
void G4DNAChemistryManager::SetGlobalTemperature | ( | double | temp_K | ) |
Definition at line 752 of file G4DNAChemistryManager.cc.
References G4DNAMolecularReactionTable::Instance(), G4DNAMolecularReactionTable::ScaleReactionRateForNewTemperature(), and G4MolecularConfiguration::SetGlobalTemperature().
Referenced by SetNewValue().
|
virtual |
Reimplemented from G4UImessenger.
Definition at line 253 of file G4DNAChemistryManager.cc.
References Activated(), G4UIcommand::ConvertToDimensionedDouble(), fpActivateChem, fpInitChem, fpRunChem, fpScaleForNewTemperature, fpSkipReactionsFromChemList, fSkipReactions, G4UIcmdWithABool::GetNewBoolValue(), Initialize(), InitializeThread(), Run(), and SetGlobalTemperature().
|
inline |
Definition at line 198 of file G4DNAChemistryManager.hh.
References fVerbose.
|
inline |
Definition at line 286 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 515 of file G4DNAChemistryManager.cc.
References G4String::data(), fFileInitialized, fpgOutput_tl, fVerbose, fWriteFile, G4cout, and G4endl.
|
private |
Definition at line 236 of file G4DNAChemistryManager.hh.
Referenced by Activated(), CreateSolvatedElectron(), CreateWaterMolecule(), G4DNAChemistryManager(), GetCurrentValue(), InitializeMaster(), IsActivated(), IsChemistryActivated(), PushMolecule(), PushMoleculeAtParentTimeAndPlace(), Run(), and SetChemistryActivation().
|
private |
Definition at line 248 of file G4DNAChemistryManager.hh.
Referenced by G4DNAChemistryManager(), Gun(), InitializeThread(), and SetBuildPhysicsTable().
|
private |
Definition at line 237 of file G4DNAChemistryManager.hh.
Referenced by CreateSolvatedElectron(), CreateWaterMolecule(), G4DNAChemistryManager(), InitializeFile(), PushMolecule(), PushMoleculeAtParentTimeAndPlace(), and WriteInto().
|
private |
Definition at line 242 of file G4DNAChemistryManager.hh.
Referenced by ForceThreadReinitialization(), G4DNAChemistryManager(), and InitializeThread().
|
private |
Definition at line 252 of file G4DNAChemistryManager.hh.
Referenced by G4DNAChemistryManager(), InitializeThread(), and Notify().
|
staticprivate |
Definition at line 234 of file G4DNAChemistryManager.hh.
Referenced by DeleteInstance(), GetInstanceIfExists(), Instance(), and ~G4DNAChemistryManager().
|
private |
Definition at line 241 of file G4DNAChemistryManager.hh.
Referenced by ForceMasterReinitialization(), G4DNAChemistryManager(), InitializeMaster(), and Run().
|
private |
Definition at line 227 of file G4DNAChemistryManager.hh.
Referenced by Clear(), G4DNAChemistryManager(), GetCurrentValue(), and SetNewValue().
|
private |
Definition at line 226 of file G4DNAChemistryManager.hh.
Referenced by Clear(), and G4DNAChemistryManager().
|
private |
Definition at line 244 of file G4DNAChemistryManager.hh.
Referenced by Clear(), G4DNAChemistryManager(), and GetExcitationLevel().
|
staticprivate |
Definition at line 239 of file G4DNAChemistryManager.hh.
Referenced by AddEmptyLineInOuputFile(), CloseFile(), CreateSolvatedElectron(), CreateWaterMolecule(), InitializeFile(), PushMolecule(), PushMoleculeAtParentTimeAndPlace(), and WriteInto().
|
staticprivate |
Definition at line 240 of file G4DNAChemistryManager.hh.
Referenced by InitializeThread(), Run(), and TagThreadForReinitialization().
|
private |
Definition at line 249 of file G4DNAChemistryManager.hh.
Referenced by ForceRebuildingPhysicsTable(), G4DNAChemistryManager(), and InitializeThread().
|
private |
Definition at line 232 of file G4DNAChemistryManager.hh.
Referenced by Clear(), G4DNAChemistryManager(), and SetNewValue().
|
private |
Definition at line 245 of file G4DNAChemistryManager.hh.
Referenced by Clear(), G4DNAChemistryManager(), and GetIonisationLevel().
|
private |
Definition at line 228 of file G4DNAChemistryManager.hh.
Referenced by Clear(), G4DNAChemistryManager(), and SetNewValue().
|
private |
Definition at line 231 of file G4DNAChemistryManager.hh.
Referenced by G4DNAChemistryManager(), and SetNewValue().
|
private |
Definition at line 229 of file G4DNAChemistryManager.hh.
Referenced by Clear(), G4DNAChemistryManager(), and SetNewValue().
|
private |
Definition at line 247 of file G4DNAChemistryManager.hh.
Referenced by Clear(), Deregister(), G4DNAChemistryManager(), InitializeMaster(), InitializeThread(), and SetChemistryList().
|
private |
Definition at line 255 of file G4DNAChemistryManager.hh.
Referenced by G4DNAChemistryManager(), IsCounterResetWhenRunEnds(), ResetCounterWhenRunEnds(), and Run().
|
private |
Definition at line 250 of file G4DNAChemistryManager.hh.
Referenced by G4DNAChemistryManager(), InitializeMaster(), and SetNewValue().
|
private |
Definition at line 254 of file G4DNAChemistryManager.hh.
Referenced by CloseFile(), G4DNAChemistryManager(), InitializeFile(), InitializeMaster(), InitializeThread(), Notify(), SetVerbose(), and WriteInto().
|
private |
Definition at line 238 of file G4DNAChemistryManager.hh.
Referenced by AddEmptyLineInOuputFile(), CreateSolvatedElectron(), CreateWaterMolecule(), G4DNAChemistryManager(), InitializeFile(), PushMolecule(), PushMoleculeAtParentTimeAndPlace(), and WriteInto().