![]() |
ATLAS Offline Software
|
#include <InDetMaterialManager.h>
Classes | |
| class | MaterialByWeight |
| class | MaterialComponent |
| class | MaterialDef |
| Class to hold information need to create a material. More... | |
Public Member Functions | |
| InDetMaterialManager (const std::string &managerName, StoreGateSvc *detStore) | |
| InDetMaterialManager (const std::string &managerName, StoreGateSvc *detStore, const IRDBRecordset_ptr &weightTable, const std::string &space="", bool extraFunctionality=false) | |
| InDetMaterialManager (const std::string &managerName, StoreGateSvc *detStore, const IRDBRecordset_ptr &weightTable, const IRDBRecordset_ptr &compositionTable, const std::string &space="") | |
| InDetMaterialManager (const std::string &managerName, InDetDD::AthenaComps *) | |
| ~InDetMaterialManager () | |
| void | addWeightTable (const IRDBRecordset_ptr &weightTable, const std::string &space="") |
| void | addWeightMaterial (const std::string &materialName, const std::string &materialBase, double weight, int linearWeightFlag) |
| void | addCompositionTable (const IRDBRecordset_ptr &compositionTable, const std::string &space="") |
| void | addScalingTable (const IRDBRecordset_ptr &scalingTable) |
| bool | hasMaterial (const std::string &materialName) const |
| const GeoMaterial * | getMaterial (const std::string &materialName) |
| Get material. First looks for locally defined material and if not found looks in GeoModel material manager. | |
| const GeoElement * | getElement (const std::string &elementName) |
| Get element from GeoModel material manager. | |
| const GeoMaterial * | getMaterial (const std::string &origMaterialName, double density, const std::string &newName="") |
| Create and get material with a specified density based on an existing material. | |
| const GeoMaterial * | getMaterialScaled (const std::string &origMaterialName, double scaleFactor, const std::string &newName="") |
| const GeoMaterial * | getMaterialForVolume (const std::string &materialName, double volume, const std::string &newName="") |
| Create and get material with a density calculated to give weight in predefined weight table. | |
| const GeoMaterial * | getMaterialForVolumeLength (const std::string &materialName, double volume, double length, const std::string &newName="") |
| const GeoMaterial * | getMaterialForVolumeLength (const std::string &name, const std::vector< std::string > &materialComponents, const std::vector< double > &factors, double volume, double length) |
| const GeoMaterial * | getMaterialForVolumeLength (const std::string &name, const std::string &materialComponent, double factor, double volume, double length) |
| const GeoMaterial * | getCompositeMaterialForVolume (const std::string &newMatName, const double volumeTot, const double volume1, const std::string &matName1, const double volume2, const std::string &matName2) |
| const GeoMaterial * | getMaterial (const std::string &name, const std::vector< std::string > &materialComponents, const std::vector< double > &fractWeights, double density) |
| void | addMaterial (GeoMaterial *material) |
| Add material. | |
| bool | msgLvl (const MSG::Level lvl) const |
| Test the output level. | |
| MsgStream & | msg () const |
| The standard message stream. | |
| MsgStream & | msg (const MSG::Level lvl) const |
| The standard message stream. | |
| void | setLevel (MSG::Level lvl) |
| Change the current logging level. | |
Private Types | |
| using | MaterialStore = std::map<std::string, GeoIntrusivePtr<const GeoMaterial>> |
| typedef std::map< std::string, MaterialByWeight > | MaterialWeightMap |
| typedef std::map< std::string, MaterialComponent > | MaterialCompositionMap |
| typedef std::map< std::string, double > | ExtraScaleFactorMap |
Private Member Functions | |
| StoredMaterialManager * | retrieveManager (const StoreGateSvc *detStore) |
| const GeoMaterial * | getAdditionalMaterial (const std::string &materialName) const |
| bool | compareDensity (double d1, double d2) const |
| void | addWeightTableOld (const IRDBRecordset_ptr &weightTable, const std::string &space) |
| const GeoMaterial * | getMaterialInternal (const std::string &materialName) |
| const GeoMaterial * | getMaterialInternal (const std::string &origMaterialName, double density, const std::string &newName="") |
| const GeoMaterial * | getMaterialScaledInternal (const std::string &origMaterialName, double scaleFactor, const std::string &newName="") |
| const GeoMaterial * | getMaterialInternal (const std::string &name, const std::vector< std::string > &materialComponents, const std::vector< double > &fractWeights, double density) |
| const GeoMaterial * | extraScaledMaterial (const std::string &materialName, const std::string &newName, const GeoMaterial *origMaterial) |
| const GeoMaterial * | extraScaledMaterial (const std::string &materialName, const GeoMaterial *origMaterial) |
| const IGeometryDBSvc * | db () |
| void | addTextFileMaterials () |
| void | createMaterial (const MaterialDef &material) |
| double | getExtraScaleFactor (const std::string &materialName) |
| void | initMessaging () const |
| Initialize our message level and MessageSvc. | |
Private Attributes | |
| StoredMaterialManager * | m_materialManager |
| std::string | m_managerName |
| MaterialStore | m_store |
| MaterialWeightMap | m_weightMap |
| MaterialCompositionMap | m_matCompositionMap |
| ExtraScaleFactorMap | m_scalingMap |
| bool | m_extraFunctionality |
| const InDetDD::AthenaComps * | m_athenaComps |
| std::string | m_nm |
| Message source name. | |
| boost::thread_specific_ptr< MsgStream > | m_msg_tls |
| MsgStream instance (a std::cout like with print-out levels) | |
| std::atomic< IMessageSvc * > | m_imsg { nullptr } |
| MessageSvc pointer. | |
| std::atomic< MSG::Level > | m_lvl { MSG::NIL } |
| Current logging level. | |
| std::atomic_flag m_initialized | ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT |
| Messaging initialized (initMessaging) | |
This provides an interface to the GeoModel Material Manager as well as allowing additional materials to be defined or standard ones redefined. It also allows creating new materials based on existing ones but with a different density. It is also possible to specify a weight table and this is used to create materials with a density such that the the total weight is correct.
Definition at line 33 of file InDetMaterialManager.h.
|
private |
Definition at line 224 of file InDetMaterialManager.h.
|
private |
Definition at line 221 of file InDetMaterialManager.h.
|
private |
Definition at line 215 of file InDetMaterialManager.h.
|
private |
Definition at line 218 of file InDetMaterialManager.h.
| InDetMaterialManager::InDetMaterialManager | ( | const std::string & | managerName, |
| StoreGateSvc * | detStore ) |
Definition at line 28 of file InDetMaterialManager.cxx.
| InDetMaterialManager::InDetMaterialManager | ( | const std::string & | managerName, |
| StoreGateSvc * | detStore, | ||
| const IRDBRecordset_ptr & | weightTable, | ||
| const std::string & | space = "", | ||
| bool | extraFunctionality = false ) |
Definition at line 38 of file InDetMaterialManager.cxx.
| InDetMaterialManager::InDetMaterialManager | ( | const std::string & | managerName, |
| StoreGateSvc * | detStore, | ||
| const IRDBRecordset_ptr & | weightTable, | ||
| const IRDBRecordset_ptr & | compositionTable, | ||
| const std::string & | space = "" ) |
Definition at line 58 of file InDetMaterialManager.cxx.
| InDetMaterialManager::InDetMaterialManager | ( | const std::string & | managerName, |
| InDetDD::AthenaComps * | athenaComps ) |
Definition at line 72 of file InDetMaterialManager.cxx.
|
default |
| void InDetMaterialManager::addCompositionTable | ( | const IRDBRecordset_ptr & | compositionTable, |
| const std::string & | space = "" ) |
Definition at line 413 of file InDetMaterialManager.cxx.
| void InDetMaterialManager::addMaterial | ( | GeoMaterial * | material | ) |
Add material.
Definition at line 303 of file InDetMaterialManager.cxx.
| void InDetMaterialManager::addScalingTable | ( | const IRDBRecordset_ptr & | scalingTable | ) |
Definition at line 438 of file InDetMaterialManager.cxx.
|
private |
Definition at line 739 of file InDetMaterialManager.cxx.
| void InDetMaterialManager::addWeightMaterial | ( | const std::string & | materialName, |
| const std::string & | materialBase, | ||
| double | weight, | ||
| int | linearWeightFlag ) |
Definition at line 368 of file InDetMaterialManager.cxx.
| void InDetMaterialManager::addWeightTable | ( | const IRDBRecordset_ptr & | weightTable, |
| const std::string & | space = "" ) |
Definition at line 328 of file InDetMaterialManager.cxx.
|
private |
Definition at line 385 of file InDetMaterialManager.cxx.
|
private |
Definition at line 320 of file InDetMaterialManager.cxx.
|
private |
Definition at line 820 of file InDetMaterialManager.cxx.
|
private |
Definition at line 732 of file InDetMaterialManager.cxx.
|
private |
Definition at line 940 of file InDetMaterialManager.cxx.
|
private |
Definition at line 929 of file InDetMaterialManager.cxx.
|
private |
| const GeoMaterial * InDetMaterialManager::getCompositeMaterialForVolume | ( | const std::string & | newMatName, |
| const double | volumeTot, | ||
| const double | volume1, | ||
| const std::string & | matName1, | ||
| const double | volume2, | ||
| const std::string & | matName2 ) |
Definition at line 138 of file InDetMaterialManager.cxx.
| const GeoElement * InDetMaterialManager::getElement | ( | const std::string & | elementName | ) |
Get element from GeoModel material manager.
Definition at line 90 of file InDetMaterialManager.cxx.
|
private |
Definition at line 971 of file InDetMaterialManager.cxx.
| const GeoMaterial * InDetMaterialManager::getMaterial | ( | const std::string & | materialName | ) |
Get material. First looks for locally defined material and if not found looks in GeoModel material manager.
Definition at line 100 of file InDetMaterialManager.cxx.
| const GeoMaterial * InDetMaterialManager::getMaterial | ( | const std::string & | name, |
| const std::vector< std::string > & | materialComponents, | ||
| const std::vector< double > & | fractWeights, | ||
| double | density ) |
Definition at line 693 of file InDetMaterialManager.cxx.
| const GeoMaterial * InDetMaterialManager::getMaterial | ( | const std::string & | origMaterialName, |
| double | density, | ||
| const std::string & | newName = "" ) |
Create and get material with a specified density based on an existing material.
If a newName is supplied it creates the new material even if the orginal material has the same density. It however first checks if the material with NewName exists. If no newName is supplied then it checks the density of the existing material. If it is consistent it returns the material. If it is different it creates a material with the string "Modified" added to the name.
Definition at line 210 of file InDetMaterialManager.cxx.
| const GeoMaterial * InDetMaterialManager::getMaterialForVolume | ( | const std::string & | materialName, |
| double | volume, | ||
| const std::string & | newName = "" ) |
Create and get material with a density calculated to give weight in predefined weight table.
Definition at line 467 of file InDetMaterialManager.cxx.
| const GeoMaterial * InDetMaterialManager::getMaterialForVolumeLength | ( | const std::string & | materialName, |
| double | volume, | ||
| double | length, | ||
| const std::string & | newName = "" ) |
Definition at line 521 of file InDetMaterialManager.cxx.
| const GeoMaterial * InDetMaterialManager::getMaterialForVolumeLength | ( | const std::string & | name, |
| const std::string & | materialComponent, | ||
| double | factor, | ||
| double | volume, | ||
| double | length ) |
Definition at line 585 of file InDetMaterialManager.cxx.
| const GeoMaterial * InDetMaterialManager::getMaterialForVolumeLength | ( | const std::string & | name, |
| const std::vector< std::string > & | materialComponents, | ||
| const std::vector< double > & | factors, | ||
| double | volume, | ||
| double | length ) |
Definition at line 596 of file InDetMaterialManager.cxx.
|
private |
Definition at line 110 of file InDetMaterialManager.cxx.
|
private |
Definition at line 701 of file InDetMaterialManager.cxx.
|
private |
Definition at line 218 of file InDetMaterialManager.cxx.
| const GeoMaterial * InDetMaterialManager::getMaterialScaled | ( | const std::string & | origMaterialName, |
| double | scaleFactor, | ||
| const std::string & | newName = "" ) |
Definition at line 257 of file InDetMaterialManager.cxx.
|
private |
Definition at line 265 of file InDetMaterialManager.cxx.
| bool InDetMaterialManager::hasMaterial | ( | const std::string & | materialName | ) | const |
Definition at line 105 of file InDetMaterialManager.cxx.
|
privateinherited |
Initialize our message level and MessageSvc.
This method should only be called once.
Definition at line 39 of file AthMessaging.cxx.
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 163 of file AthMessaging.h.
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 178 of file AthMessaging.h.
|
inlineinherited |
Test the output level.
| lvl | The message level to test against |
| true | Messages at level "lvl" will be printed |
Definition at line 151 of file AthMessaging.h.
|
inlineprivate |
Definition at line 85 of file InDetMaterialManager.cxx.
|
inherited |
Change the current logging level.
Use this rather than msg().setLevel() for proper operation with MT.
Definition at line 28 of file AthMessaging.cxx.
|
mutableprivateinherited |
Messaging initialized (initMessaging)
Definition at line 141 of file AthMessaging.h.
|
private |
Definition at line 230 of file InDetMaterialManager.h.
|
private |
Definition at line 228 of file InDetMaterialManager.h.
|
mutableprivateinherited |
|
mutableprivateinherited |
|
private |
Definition at line 213 of file InDetMaterialManager.h.
|
private |
Definition at line 222 of file InDetMaterialManager.h.
|
private |
Definition at line 212 of file InDetMaterialManager.h.
|
mutableprivateinherited |
MsgStream instance (a std::cout like with print-out levels)
Definition at line 132 of file AthMessaging.h.
|
privateinherited |
Message source name.
Definition at line 129 of file AthMessaging.h.
|
private |
Definition at line 225 of file InDetMaterialManager.h.
|
private |
Definition at line 216 of file InDetMaterialManager.h.
|
private |
Definition at line 219 of file InDetMaterialManager.h.