ATLAS Offline Software
SCT_MaterialManager.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 #include "GeoModelKernel/GeoMaterial.h"
7 #include "GeoModelKernel/GeoElement.h"
10 #include "StoreGate/StoreGateSvc.h"
11 #include "GaudiKernel/Bootstrap.h"
12 #include "GaudiKernel/ISvcLocator.h"
13 #include "GaudiKernel/SystemOfUnits.h"
14 
15 #include <iostream>
16 
17 // Constructor
19 {
20  // Get my material manager.
21  ISvcLocator* svcLocator = Gaudi::svcLocator(); // from Bootstrap
23  StatusCode sc = svcLocator->service("DetectorStore", detStore );
24  if (sc.isFailure()) {
25  std::cout << "Could not locate DetectorStore" << std::endl;
26  return;
27  }
28 
29  m_materialManager = std::make_unique<InDetMaterialManager>("SCT_MaterialManager", db->athenaComps());
30  m_materialManager->addWeightTable(db->weightTable(), "sct");
31  m_materialManager->addScalingTable(db->scalingTable());
32 
33  loadMaterials();
34 
35  m_gasMaterial = m_materialManager->getMaterial("std::Air");
36 }
37 
38 // Add materials not yet in the database
39 void
41 {
42 }
43 
44 const GeoElement*
45 SCT_MaterialManager::getElement(const std::string & elementName)
46 {
47  return m_materialManager->getElement(elementName);
48 }
49 
50 const GeoMaterial*
51 SCT_MaterialManager::getMaterial(const std::string & materialName)
52 {
53  return m_materialManager->getMaterial(materialName);
54 }
55 
56 void
57 SCT_MaterialManager::addMaterial(GeoMaterial* material)
58 {
59  return m_materialManager->addMaterial(material);
60 }
61 
62 const GeoMaterial*
63 SCT_MaterialManager::getMaterial(const std::string & originalMaterial,
64  double density,
65  const std::string & newName)
66 {
67 
68  return m_materialManager->getMaterial(originalMaterial, density, newName);
69 }
70 
71 const GeoMaterial *
72 SCT_MaterialManager::getMaterialForVolume(const std::string & materialName, double volume)
73 {
74  return m_materialManager->getMaterialForVolume(materialName, volume);
75 }
76 
77 
78 
79 const GeoMaterial*
81 {
82  return m_gasMaterial;
83 }
SCT_MaterialManager.h
SCT_DataBase.h
CaloCondBlobAlgs_fillNoiseFromASCII.db
db
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:43
SCT_MaterialManager::m_gasMaterial
const GeoMaterial * m_gasMaterial
Definition: SCT_MaterialManager.h:43
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:128
SCT_MaterialManager::SCT_MaterialManager
SCT_MaterialManager(SCT_DataBase *db)
Definition: SCT_MaterialManager.cxx:18
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
SCT_MaterialManager::gasMaterial
const GeoMaterial * gasMaterial() const
Definition: SCT_MaterialManager.cxx:80
SCT_DataBase
Definition: SCT_DataBase.h:17
SCT_MaterialManager::getMaterialForVolume
const GeoMaterial * getMaterialForVolume(const std::string &materialName, double volume)
Definition: SCT_MaterialManager.cxx:72
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
MakeNewFileFromOldAndSubstitution.newName
dictionary newName
Definition: ICHEP2016/MakeNewFileFromOldAndSubstitution.py:95
SCT_MaterialManager::getElement
const GeoElement * getElement(const std::string &elementName)
Definition: SCT_MaterialManager.cxx:45
SCT_MaterialManager::getMaterial
const GeoMaterial * getMaterial(const std::string &materialName)
Definition: SCT_MaterialManager.cxx:51
SCT_MaterialManager::addMaterial
void addMaterial(GeoMaterial *material)
Definition: SCT_MaterialManager.cxx:57
SCT_MaterialManager::m_materialManager
std::unique_ptr< InDetMaterialManager > m_materialManager
Definition: SCT_MaterialManager.h:42
IRDBRecordset.h
Definition of the abstract IRDBRecordset interface.
SCT_MaterialManager::loadMaterials
void loadMaterials()
Definition: SCT_MaterialManager.cxx:40
StoreGateSvc.h