ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4DNAMolecularMaterial Class Reference

G4DNAMolecularMaterial builds tables of molecular densities for chosen molecular materials. The class handles homogeneous, composite and derived materials. A material of interest is labeled as molecular if built using the number of atoms rather than the mass fractions. More...

#include <geant4/tree/geant4-10.6-release/source/processes/electromagnetic/dna/utils/include/G4DNAMolecularMaterial.hh>

+ Inheritance diagram for G4DNAMolecularMaterial:
+ Collaboration diagram for G4DNAMolecularMaterial:

Public Member Functions

void Initialize ()
 
void Clear ()
 
virtual G4bool Notify (G4ApplicationState requestedState)
 
const std::vector< double > * GetDensityTableFor (const G4Material *) const
 Retrieve a table of volumetric mass densities (mass per unit volume) in the G4 unit system for chosen material.
 
const std::vector< double > * GetNumMolPerVolTableFor (const G4Material *) const
 Retrieve a table of molecular densities (number of molecules per unit volume) in the G4 unit system for chosen material.
 
const std::vector< ComponentMap > * GetMassFractionTable () const
 
const std::vector< ComponentMap > * GetDensityTable () const
 
G4MolecularConfigurationGetMolecularConfiguration (const G4Material *) const
 
void SetMolecularConfiguration (const G4Material *, G4MolecularConfiguration *)
 Associate a molecular configuration to a G4material.
 
void SetMolecularConfiguration (const G4Material *, const G4String &)
 Associate a molecular configuration to a G4material.
 
void SetMolecularConfiguration (const G4String &materialName, const G4String &molUserIF)
 
G4double GetNumMoleculePerVolumeUnitForMaterial (const G4Material *mat)
 Deprecated.
 
G4double GetNumMolPerVolForComponentInComposite (const G4Material *composite, const G4Material *component, G4double massFraction)
 Deprecated.
 
- Public Member Functions inherited from G4VStateDependent
 G4VStateDependent (G4bool bottom=false)
 
virtual ~G4VStateDependent ()
 
G4bool operator== (const G4VStateDependent &right) const
 
G4bool operator!= (const G4VStateDependent &right) const
 

Static Public Member Functions

static G4DNAMolecularMaterialInstance ()
 
static void DeleteInstance ()
 

Protected Member Functions

 G4DNAMolecularMaterial ()
 
 G4DNAMolecularMaterial (const G4DNAMolecularMaterial &right)
 
G4DNAMolecularMaterialoperator= (const G4DNAMolecularMaterial &)
 
virtual ~G4DNAMolecularMaterial ()
 
void Create ()
 
void InitializeNumMolPerVol ()
 
void InitializeDensity ()
 
void RecordMolecularMaterial (G4Material *parentMaterial, G4Material *molecularMaterial, G4double fraction)
 
void SearchMolecularMaterial (G4Material *parentMaterial, G4Material *material, double currentFraction)
 
void AddMaterial (const G4Material *, double fraction)
 
void PrintNotAMolecularMaterial (const char *methodName, const G4Material *lookForMaterial) const
 

Protected Attributes

std::vector< ComponentMap > * fpCompFractionTable
 
std::vector< ComponentMap > * fpCompDensityTable
 
std::vector< ComponentMap > * fpCompNumMolPerVolTable
 
std::map< const G4Material
*, std::vector< double >
*, CompareMaterial
fAskedDensityTable
 
std::map< const G4Material
*, std::vector< double >
*, CompareMaterial
fAskedNumPerVolTable
 
std::map< const G4Material
*, bool, CompareMaterial
fWarningPrinted
 
std::map< int,
G4MolecularConfiguration * > 
fMaterialToMolecularConf
 
G4bool fIsInitialized
 
size_t fNMaterials
 

Static Protected Attributes

static G4DNAMolecularMaterialfInstance
 

Detailed Description

G4DNAMolecularMaterial builds tables of molecular densities for chosen molecular materials. The class handles homogeneous, composite and derived materials. A material of interest is labeled as molecular if built using the number of atoms rather than the mass fractions.

  • Initialization: G4DNAMolecularMaterial is initialized when G4ApplicationState == G4State_Idle. It should be initialized on the master thread and used in read-only mode during stepping. The singleton is thread-shared.
  • For Developers: Use GetNumMolPerVolTableFor(molecule) in the concrete implementation of G4VEmModel::Initialise or G4VProcess::PreparePhysicsTable at run initialization to retrieve a read-only, thread-safe, table. The table is then built on the master thread at initialization time and shared between all threads and models.
Note
A G4material is labeled as molecular if built using the number of atoms

Definition at line 95 of file G4DNAMolecularMaterial.hh.

View newest version in sPHENIX GitHub at line 95 of file G4DNAMolecularMaterial.hh

Constructor & Destructor Documentation

G4DNAMolecularMaterial::G4DNAMolecularMaterial ( )
protected

Definition at line 143 of file G4DNAMolecularMaterial.cc.

View newest version in sPHENIX GitHub at line 143 of file G4DNAMolecularMaterial.cc

References Create(), and fInstance.

+ Here is the call graph for this function:

G4DNAMolecularMaterial::G4DNAMolecularMaterial ( const G4DNAMolecularMaterial right)
protected

Definition at line 169 of file G4DNAMolecularMaterial.cc.

View newest version in sPHENIX GitHub at line 169 of file G4DNAMolecularMaterial.cc

References Create().

+ Here is the call graph for this function:

G4DNAMolecularMaterial::~G4DNAMolecularMaterial ( )
protectedvirtual

Definition at line 188 of file G4DNAMolecularMaterial.cc.

View newest version in sPHENIX GitHub at line 188 of file G4DNAMolecularMaterial.cc

References Clear(), and fInstance.

+ Here is the call graph for this function:

Member Function Documentation

void G4DNAMolecularMaterial::AddMaterial ( const G4Material ,
double  fraction 
)
protected
void G4DNAMolecularMaterial::Clear ( )

Definition at line 105 of file G4DNAMolecularMaterial.cc.

View newest version in sPHENIX GitHub at line 105 of file G4DNAMolecularMaterial.cc

References it.

Referenced by Notify(), and ~G4DNAMolecularMaterial().

+ Here is the caller graph for this function:

void G4DNAMolecularMaterial::Create ( )
protected

Definition at line 93 of file G4DNAMolecularMaterial.cc.

View newest version in sPHENIX GitHub at line 93 of file G4DNAMolecularMaterial.cc

Referenced by G4DNAMolecularMaterial(), and operator=().

+ Here is the caller graph for this function:

void G4DNAMolecularMaterial::DeleteInstance ( )
static

Definition at line 83 of file G4DNAMolecularMaterial.cc.

View newest version in sPHENIX GitHub at line 83 of file G4DNAMolecularMaterial.cc

const std::vector<ComponentMap>* G4DNAMolecularMaterial::GetDensityTable ( ) const
inline

Definition at line 145 of file G4DNAMolecularMaterial.hh.

View newest version in sPHENIX GitHub at line 145 of file G4DNAMolecularMaterial.hh

References fpCompDensityTable.

const std::vector< double > * G4DNAMolecularMaterial::GetDensityTableFor ( const G4Material searchedMaterial) const

Retrieve a table of volumetric mass densities (mass per unit volume) in the G4 unit system for chosen material.

Parameters
[in]searchedMaterialThe material which you'd like to retrieve the volumic mass
Precondition
The searchedMaterial used in parameter must be built as a molecular material, using the number of atoms rather than the density fractions.
Returns
Pointer to a table of molecular densities for the searchedMaterial indexed on the (parent) material index.

Definition at line 364 of file G4DNAMolecularMaterial.cc.

View newest version in sPHENIX GitHub at line 364 of file G4DNAMolecularMaterial.cc

References fAskedDensityTable, FatalException, fIsInitialized, fNMaterials, fpCompDensityTable, G4endl, G4Exception(), G4State_Init, G4Material::GetMaterialTable(), G4StateManager::GetStateManager(), Initialize(), it, and PrintNotAMolecularMaterial().

Referenced by G4DNAElectronHoleRecombination::FindReactant().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const std::vector<ComponentMap>* G4DNAMolecularMaterial::GetMassFractionTable ( ) const
inline

Definition at line 142 of file G4DNAMolecularMaterial.hh.

View newest version in sPHENIX GitHub at line 142 of file G4DNAMolecularMaterial.hh

References fpCompFractionTable.

G4MolecularConfiguration * G4DNAMolecularMaterial::GetMolecularConfiguration ( const G4Material material) const

Definition at line 543 of file G4DNAMolecularMaterial.cc.

View newest version in sPHENIX GitHub at line 543 of file G4DNAMolecularMaterial.cc

References fMaterialToMolecularConf, G4Material::GetIndex(), and it.

+ Here is the call graph for this function:

G4double G4DNAMolecularMaterial::GetNumMoleculePerVolumeUnitForMaterial ( const G4Material mat)

Deprecated.

Deprecated:
Will return a G4 fatal exception. Use instead GetNumMolPerVolTableFor(molecule) at run initialization to retrieve a read-only, thread-safe, table.
Note
A G4material is labeled as molecular if built using the number of atoms.

Definition at line 596 of file G4DNAMolecularMaterial.cc.

View newest version in sPHENIX GitHub at line 596 of file G4DNAMolecularMaterial.cc

References FatalException, and G4Exception().

+ Here is the call graph for this function:

G4double G4DNAMolecularMaterial::GetNumMolPerVolForComponentInComposite ( const G4Material composite,
const G4Material component,
G4double  massFraction 
)

Deprecated.

Deprecated:
Will return a G4 fatal exception. Use instead GetNumMolPerVolTableFor(molecule) at run initialization to retrieve a read-only, thread-safe, table.
Note
A G4material is labeled as molecular if built using the number of atoms.

Definition at line 610 of file G4DNAMolecularMaterial.cc.

View newest version in sPHENIX GitHub at line 610 of file G4DNAMolecularMaterial.cc

References FatalException, and G4Exception().

+ Here is the call graph for this function:

const std::vector< double > * G4DNAMolecularMaterial::GetNumMolPerVolTableFor ( const G4Material searchedMaterial) const

Retrieve a table of molecular densities (number of molecules per unit volume) in the G4 unit system for chosen material.

Parameters
[in]searchedMaterialThe material which you'd like to retrieve the molecular density
Precondition
The searchedMaterial used in parameter must be built as a molecular material, using the number of atoms rather than the density fractions.
Returns
Pointer to a table of molecular densities for the searchedMaterial indexed on the (parent) material index.

Definition at line 435 of file G4DNAMolecularMaterial.cc.

View newest version in sPHENIX GitHub at line 435 of file G4DNAMolecularMaterial.cc

References fAskedNumPerVolTable, FatalException, fIsInitialized, fNMaterials, fpCompNumMolPerVolTable, G4endl, G4Exception(), G4State_Init, G4Material::GetMaterialTable(), G4StateManager::GetStateManager(), Initialize(), it, and PrintNotAMolecularMaterial().

Referenced by G4DNAModelInterface::BuildMaterialMolPerVolTable(), G4DNASecondOrderReaction::BuildPhysicsTable(), G4DNADingfelderChargeDecreaseModel::Initialise(), G4DNADummyModel::Initialise(), G4DNADingfelderChargeIncreaseModel::Initialise(), G4DNABornExcitationModel1::Initialise(), G4DNABornExcitationModel2::Initialise(), G4DNAMillerGreenExcitationModel::Initialise(), G4DNARuddIonisationModel::Initialise(), G4DNARuddIonisationExtendedModel::Initialise(), G4DNAEmfietzoglouExcitationModel::Initialise(), G4DNACPA100ElasticModel::Initialise(), G4DNACPA100ExcitationModel::Initialise(), and G4DNACPA100IonisationModel::Initialise().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4DNAMolecularMaterial::Initialize ( )

Definition at line 198 of file G4DNAMolecularMaterial.cc.

View newest version in sPHENIX GitHub at line 198 of file G4DNAMolecularMaterial.cc

References aMutex, fIsInitialized, fNMaterials, fpCompFractionTable, G4Material::GetMaterialTable(), InitializeDensity(), InitializeNumMolPerVol(), mat, and SearchMolecularMaterial().

Referenced by G4DNAModelInterface::BuildMaterialMolPerVolTable(), GetDensityTableFor(), GetNumMolPerVolTableFor(), G4DNAChampionElasticModel::Initialise(), G4DNAELSEPAElasticModel::Initialise(), G4DNAIonElasticModel::Initialise(), and Notify().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4DNAMolecularMaterial::InitializeDensity ( )
protected

Definition at line 232 of file G4DNAMolecularMaterial.cc.

View newest version in sPHENIX GitHub at line 232 of file G4DNAMolecularMaterial.cc

References FatalException, fNMaterials, fpCompDensityTable, fpCompFractionTable, G4endl, G4Exception(), G4Material::GetMaterialTable(), and it.

Referenced by Initialize().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4DNAMolecularMaterial::InitializeNumMolPerVol ( )
protected

Definition at line 273 of file G4DNAMolecularMaterial.cc.

View newest version in sPHENIX GitHub at line 273 of file G4DNAMolecularMaterial.cc

References FatalException, fNMaterials, fpCompDensityTable, fpCompNumMolPerVolTable, G4endl, G4Exception(), and it.

Referenced by Initialize().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4DNAMolecularMaterial * G4DNAMolecularMaterial::Instance ( void  )
static

Definition at line 75 of file G4DNAMolecularMaterial.cc.

View newest version in sPHENIX GitHub at line 75 of file G4DNAMolecularMaterial.cc

Referenced by G4DNAModelInterface::BuildMaterialMolPerVolTable(), G4DNASecondOrderReaction::BuildPhysicsTable(), G4DNABrownianTransportation::BuildPhysicsTable(), G4DNAElectronHoleRecombination::FindReactant(), G4DNAUeharaScreenedRutherfordElasticModel::Initialise(), G4DNAScreenedRutherfordElasticModel::Initialise(), G4DNADingfelderChargeDecreaseModel::Initialise(), G4DNADummyModel::Initialise(), G4DNADingfelderChargeIncreaseModel::Initialise(), G4DNAMeltonAttachmentModel::Initialise(), G4DNABornExcitationModel1::Initialise(), G4DNAChampionElasticModel::Initialise(), G4DNASancheExcitationModel::Initialise(), G4DNAELSEPAElasticModel::Initialise(), G4DNAMillerGreenExcitationModel::Initialise(), G4DNABornExcitationModel2::Initialise(), G4DNARuddIonisationModel::Initialise(), G4DNARuddIonisationExtendedModel::Initialise(), G4DNABornIonisationModel2::Initialise(), G4DNABornIonisationModel1::Initialise(), G4DNAIonElasticModel::Initialise(), G4DNAEmfietzoglouExcitationModel::Initialise(), G4DNAEmfietzoglouIonisationModel::Initialise(), G4DNACPA100ElasticModel::Initialise(), G4DNATransformElectronModel::Initialise(), G4DNACPA100ExcitationModel::Initialise(), G4DNACPA100IonisationModel::Initialise(), and G4TDNAOneStepThermalizationModel< MODEL >::Initialise().

+ Here is the caller graph for this function:

G4bool G4DNAMolecularMaterial::Notify ( G4ApplicationState  requestedState)
virtual

Implements G4VStateDependent.

Definition at line 152 of file G4DNAMolecularMaterial.cc.

View newest version in sPHENIX GitHub at line 152 of file G4DNAMolecularMaterial.cc

References Clear(), G4State_Idle, G4State_PreInit, G4State_Quit, G4StateManager::GetStateManager(), and Initialize().

+ Here is the call graph for this function:

G4DNAMolecularMaterial & G4DNAMolecularMaterial::operator= ( const G4DNAMolecularMaterial rhs)
protected

Definition at line 179 of file G4DNAMolecularMaterial.cc.

View newest version in sPHENIX GitHub at line 179 of file G4DNAMolecularMaterial.cc

References Create().

+ Here is the call graph for this function:

void G4DNAMolecularMaterial::PrintNotAMolecularMaterial ( const char *  methodName,
const G4Material lookForMaterial 
) const
protected

Definition at line 509 of file G4DNAMolecularMaterial.cc.

View newest version in sPHENIX GitHub at line 509 of file G4DNAMolecularMaterial.cc

References fWarningPrinted, G4endl, G4Exception(), G4Material::GetName(), it, and JustWarning.

Referenced by GetDensityTableFor(), and GetNumMolPerVolTableFor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4DNAMolecularMaterial::RecordMolecularMaterial ( G4Material parentMaterial,
G4Material molecularMaterial,
G4double  fraction 
)
protected

Definition at line 307 of file G4DNAMolecularMaterial.cc.

View newest version in sPHENIX GitHub at line 307 of file G4DNAMolecularMaterial.cc

References G4Material::GetIndex(), and it.

Referenced by SearchMolecularMaterial().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4DNAMolecularMaterial::SearchMolecularMaterial ( G4Material parentMaterial,
G4Material material,
double  currentFraction 
)
protected

Definition at line 332 of file G4DNAMolecularMaterial.cc.

View newest version in sPHENIX GitHub at line 332 of file G4DNAMolecularMaterial.cc

References G4Material::GetMassOfMolecule(), G4Material::GetMatComponents(), it, and RecordMolecularMaterial().

Referenced by Initialize().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4DNAMolecularMaterial::SetMolecularConfiguration ( const G4Material material,
G4MolecularConfiguration molConf 
)

Associate a molecular configuration to a G4material.

 

Parameters
[in]materialPointer to a G4 material. The material does not need to be defined as a molecular material.
[in]molConfThe molecular configuration corresponding to the G4 material.

Definition at line 555 of file G4DNAMolecularMaterial.cc.

View newest version in sPHENIX GitHub at line 555 of file G4DNAMolecularMaterial.cc

References fMaterialToMolecularConf, and G4Material::GetIndex().

Referenced by SetMolecularConfiguration().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4DNAMolecularMaterial::SetMolecularConfiguration ( const G4Material material,
const G4String molConf 
)

Associate a molecular configuration to a G4material.

 

Parameters
[in]materialPointer to a G4 material. The material does not need to be defined as a molecular material.
[in]molConfUser ID of the molecular configuration corresponding to the G4 material.

 

Parameters
[in]materialName of the G4 material. The material does not need to be defined as a molecular material.
[in]molConfUser ID of the molecular configuration corresponding to the G4 material.

Definition at line 566 of file G4DNAMolecularMaterial.cc.

View newest version in sPHENIX GitHub at line 566 of file G4DNAMolecularMaterial.cc

References fMaterialToMolecularConf, G4MoleculeTable::GetConfiguration(), G4Material::GetIndex(), and G4MoleculeTable::Instance().

+ Here is the call graph for this function:

void G4DNAMolecularMaterial::SetMolecularConfiguration ( const G4String materialName,
const G4String molUserIF 
)

Definition at line 578 of file G4DNAMolecularMaterial.cc.

View newest version in sPHENIX GitHub at line 578 of file G4DNAMolecularMaterial.cc

References G4cout, G4endl, G4Material::GetMaterial(), material(), and SetMolecularConfiguration().

+ Here is the call graph for this function:

Member Data Documentation

std::map<const G4Material*, std::vector<double>*, CompareMaterial> G4DNAMolecularMaterial::fAskedDensityTable
mutableprotected

Definition at line 249 of file G4DNAMolecularMaterial.hh.

View newest version in sPHENIX GitHub at line 249 of file G4DNAMolecularMaterial.hh

Referenced by GetDensityTableFor().

std::map<const G4Material*, std::vector<double>*, CompareMaterial> G4DNAMolecularMaterial::fAskedNumPerVolTable
mutableprotected

Definition at line 251 of file G4DNAMolecularMaterial.hh.

View newest version in sPHENIX GitHub at line 251 of file G4DNAMolecularMaterial.hh

Referenced by GetNumMolPerVolTableFor().

G4DNAMolecularMaterial * G4DNAMolecularMaterial::fInstance
staticprotected

Definition at line 223 of file G4DNAMolecularMaterial.hh.

View newest version in sPHENIX GitHub at line 223 of file G4DNAMolecularMaterial.hh

Referenced by G4DNAMolecularMaterial(), and ~G4DNAMolecularMaterial().

G4bool G4DNAMolecularMaterial::fIsInitialized
protected

Definition at line 257 of file G4DNAMolecularMaterial.hh.

View newest version in sPHENIX GitHub at line 257 of file G4DNAMolecularMaterial.hh

Referenced by GetDensityTableFor(), GetNumMolPerVolTableFor(), and Initialize().

std::map<int , G4MolecularConfiguration*> G4DNAMolecularMaterial::fMaterialToMolecularConf
protected

Definition at line 255 of file G4DNAMolecularMaterial.hh.

View newest version in sPHENIX GitHub at line 255 of file G4DNAMolecularMaterial.hh

Referenced by GetMolecularConfiguration(), and SetMolecularConfiguration().

size_t G4DNAMolecularMaterial::fNMaterials
protected

Definition at line 258 of file G4DNAMolecularMaterial.hh.

View newest version in sPHENIX GitHub at line 258 of file G4DNAMolecularMaterial.hh

Referenced by GetDensityTableFor(), GetNumMolPerVolTableFor(), Initialize(), InitializeDensity(), and InitializeNumMolPerVol().

std::vector<ComponentMap>* G4DNAMolecularMaterial::fpCompDensityTable
protected

Definition at line 245 of file G4DNAMolecularMaterial.hh.

View newest version in sPHENIX GitHub at line 245 of file G4DNAMolecularMaterial.hh

Referenced by GetDensityTable(), GetDensityTableFor(), InitializeDensity(), and InitializeNumMolPerVol().

std::vector<ComponentMap>* G4DNAMolecularMaterial::fpCompFractionTable
protected

Definition at line 244 of file G4DNAMolecularMaterial.hh.

View newest version in sPHENIX GitHub at line 244 of file G4DNAMolecularMaterial.hh

Referenced by GetMassFractionTable(), Initialize(), and InitializeDensity().

std::vector<ComponentMap>* G4DNAMolecularMaterial::fpCompNumMolPerVolTable
protected

Definition at line 246 of file G4DNAMolecularMaterial.hh.

View newest version in sPHENIX GitHub at line 246 of file G4DNAMolecularMaterial.hh

Referenced by GetNumMolPerVolTableFor(), and InitializeNumMolPerVol().

std::map<const G4Material*, bool, CompareMaterial> G4DNAMolecularMaterial::fWarningPrinted
mutableprotected

Definition at line 252 of file G4DNAMolecularMaterial.hh.

View newest version in sPHENIX GitHub at line 252 of file G4DNAMolecularMaterial.hh

Referenced by PrintNotAMolecularMaterial().


The documentation for this class was generated from the following files: