|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef INDETMATERIALMANAGER_H
6 #define INDETMATERIALMANAGER_H
10 #include "GeoModelKernel/GeoIntrusivePtr.h"
11 #include "GeoModelKernel/GeoMaterial.h"
41 const std::string & space =
"",
42 bool extraFunctionality =
false);
46 const std::string & space =
"");
52 void addWeightMaterial(
const std::string& materialName,
const std::string& materialBase,
double weight,
int linearWeightFlag);
57 bool hasMaterial(
const std::string &materialName)
const;
60 const GeoMaterial*
getMaterial(
const std::string & materialName);
63 const GeoElement*
getElement(
const std::string & elementName);
72 const GeoMaterial*
getMaterial(
const std::string & origMaterialName,
74 const std::string &
newName =
"");
84 const std::string &
newName =
"");
89 const std::string &
newName =
"");
97 const std::string &
newName =
"");
102 const std::vector<std::string> & materialComponents,
103 const std::vector<double>& factors,
109 const std::string & materialComponent,
117 const double volumeTot,
118 const double volume1,
const std::string & matName1,
119 const double volume2,
const std::string & matName2
124 const std::vector<std::string> & materialComponents,
125 const std::vector<double> & fractWeights,
190 const std::string &
newName =
"");
193 const std::string &
newName =
"");
195 const std::vector<std::string> & materialComponents,
196 const std::vector<double> & fractWeights,
202 const GeoMaterial * origMaterial);
205 const GeoMaterial * origMaterial);
215 using MaterialStore = std::map<std::string, GeoIntrusivePtr<const GeoMaterial>>;
235 #endif // INDETMATERIALMANAGER_H
void addMaterial(GeoMaterial *material)
Add material.
void addWeightTable(const IRDBRecordset_ptr &weightTable, const std::string &space="")
double fraction(unsigned int i) const
const InDetDD::AthenaComps * m_athenaComps
const GeoMaterial * getAdditionalMaterial(const std::string &materialName) const
StoredMaterialManager * m_materialManager
Class to hold various Athena components.
const std::string & compName(unsigned int i) const
const GeoMaterial * getMaterialScaledInternal(const std::string &origMaterialName, double scaleFactor, const std::string &newName="")
std::map< std::string, MaterialComponent > MaterialCompositionMap
unsigned int numComponents() const
MaterialCompositionMap m_matCompositionMap
std::map< std::string, GeoIntrusivePtr< const GeoMaterial > > MaterialStore
const GeoMaterial * getMaterialInternal(const std::string &materialName)
void addTextFileMaterials()
double totalFraction() const
The Athena Transient Store API.
const std::string & name() const
void addComponent(const std::string &compName, double fraction)
Definition of the abstract IRDBAccessSvc interface.
void addWeightTableOld(const IRDBRecordset_ptr &weightTable, const std::string &space)
std::vector< double > m_fractions
void addCompositionTable(const IRDBRecordset_ptr &compositionTable, const std::string &space="")
void createMaterial(const MaterialDef &material)
ExtraScaleFactorMap m_scalingMap
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.
Class to provide easy MsgStream access and capabilities.
bool m_extraFunctionality
const GeoMaterial * getMaterialForVolumeLength(const std::string &materialName, double volume, double length, const std::string &newName="")
Class to hold information need to create a material.
const GeoMaterial * extraScaledMaterial(const std::string &materialName, const std::string &newName, const GeoMaterial *origMaterial)
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
std::map< std::string, double > ExtraScaleFactorMap
const GeoElement * getElement(const std::string &elementName)
Get element from GeoModel material manager.
std::vector< std::string > m_components
std::string m_managerName
void addWeightMaterial(const std::string &materialName, const std::string &materialBase, double weight, int linearWeightFlag)
void addScalingTable(const IRDBRecordset_ptr &scalingTable)
InDetMaterialManager(const std::string &managerName, StoreGateSvc *detStore)
StoredMaterialManager * retrieveManager(const StoreGateSvc *detStore)
const GeoMaterial * getMaterialScaled(const std::string &origMaterialName, double scaleFactor, const std::string &newName="")
const IGeometryDBSvc * db()
double getExtraScaleFactor(const std::string &materialName)
This class holds one or more material managers and makes them storeable, under StoreGate.
MaterialByWeight(double weight_in)
MaterialWeightMap m_weightMap
MaterialByWeight(const std::string &name_in, double weight_in, bool linearWeightFlag_in)
bool compareDensity(double d1, double d2) const
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 &materialName)
Get material. First looks for locally defined material and if not found looks in GeoModel material ma...
MaterialComponent(const std::string &name_in, double factor_in=1, bool actualLength_in=-1)
std::map< std::string, MaterialByWeight > MaterialWeightMap
bool hasMaterial(const std::string &materialName) const