ATLAS Offline Software
MuonDetDescr/MuonGeoModel/src/MuonDetectorTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
11 #include "GeoModelKernel/GeoPerfUtils.h"
12 #include "GeoModelKernel/GeoPhysVol.h"
23 
24 #include <fstream>
25 
26 using namespace MuonGM;
27 
31 MuonDetectorTool::MuonDetectorTool(const std::string &type, const std::string &name, const IInterface *parent) :
33  declareInterface<IGeoModelTool>(this);
34 }
35 
37  ATH_MSG_INFO("Initializing ...");
38  return StatusCode::SUCCESS;
39 }
41  if (m_detector) {
42  delete m_detector;
43  m_detector = nullptr;
44  }
45 }
46 
51 
52  std::ofstream geoModelStats;
53  int mem{0}, umem{0};
54  float cpu{0.f}, ucpu{0.f};
55 
57  GeoModelExperiment *theExpt = nullptr;
58  ATH_CHECK(detStore()->retrieve(theExpt, "ATLAS"));
59  GeoIntrusivePtr<GeoPhysVol> world{theExpt->getPhysVol()};
60  ATH_CHECK(createFactory(mgr, world));
61 
62  if (!m_detector) {
63  ATH_CHECK(detStore()->record(mgr,mgr->getName()));
64  theExpt->addManager(mgr);
65 
66  m_manager = mgr;
67  }
68 
70  umem = GeoPerfUtils::getMem();
71  ucpu = float(GeoPerfUtils::getCpu() / 100.);
72  geoModelStats << "At MuonDetectorTool::everything done \t SZ= " << umem << " Kb \t Time = " << ucpu << " seconds ---- \t DeltaM = " << umem - mem
73  << " \t Delta T =" << ucpu - cpu << std::endl;
74  geoModelStats.close();
75  }
76 
79  if (m_manager && m_manager->tgcIdHelper()) {
80  unsigned int tgcHashMax = m_manager->tgcIdHelper()->detectorElement_hash_max();
81  std::vector<int> *sectorHashVec = new std::vector<int>(tgcHashMax, 0);
82  for (unsigned int i = 0; i < tgcHashMax; ++i) {
84  if (detEl)
85  (*sectorHashVec)[i] = mapping.getSector(detEl->center().phi());
86  }
87  if (detStore()->record(sectorHashVec, "TGC_SectorMapping").isFailure()) {
88  ATH_MSG_WARNING(" failed to record TGC sector mapping ");
89  }
90  }
91  return StatusCode::SUCCESS;
92 }
93 
95 
96  std::ofstream geoModelStats;
97  int mem{0}, umem{0};
98  float cpu{0.f}, ucpu{0.f};
99 
100 
101  if (m_dumpMemoryBreakDown) {
102  geoModelStats.open("MuonGeoModelStatistics_MuonDetectorTool");
103  mem = GeoPerfUtils::getMem();
104  cpu = float(GeoPerfUtils::getCpu() / 100.);
105  geoModelStats << "At MuonDetectorTool::create entry point: \t SZ= " << mem << " Kb \t Time = " << cpu << " seconds " << std::endl;
106 
107  umem = GeoPerfUtils::getMem();
108  ucpu = float(GeoPerfUtils::getCpu() / 100.);
109  geoModelStats << "At MuonDetectorTool::resetting to 0: \t SZ= " << umem - mem << " Kb \t Time = " << ucpu - cpu << " seconds " << std::endl;
110  mem = umem;
111  cpu = ucpu;
112  }
113 
114  ATH_MSG_VERBOSE(" Show properties (user sett.s or default): LayoutName "
115  << m_layout << endmsg << " Show properties (user sett.s or default): IncludeCutouts " << m_includeCutouts << endmsg
116  << " Show properties (user sett.s or default): IncludeCutoutsBog " << m_includeCutoutsBog << endmsg
117  << " Show properties (user sett.s or default): IncludeCtbBis " << m_includeCtbBis);
118 
119  // Get the detector configuration.
120  IGeoModelSvc *geoModel;
121  ATH_CHECK(service("GeoModelSvc", geoModel));
122 
123  std::string AtlasVersion = geoModel->atlasVersion();
124  std::string MuonVersion = geoModel->muonVersionOverride();
125 
126  ATH_MSG_INFO("create MuonDetectorTool");
127  ATH_MSG_INFO("(from GeoModelSvc) AtlasVersion = <" << AtlasVersion << "> MuonVersion = <" << MuonVersion << ">");
128 
129  // Unless we are using custom muons, the switch positions are going to
130  // come from the database:
131 
132  std::string detectorKey = MuonVersion.empty() ? AtlasVersion : MuonVersion;
133  std::string detectorNode = MuonVersion.empty() ? "ATLAS" : "MuonSpectrometer";
134  ATH_MSG_INFO("Keys for Muon Switches are (key) " << detectorKey << " (node) " << detectorNode);
135 
136  std::string tempLayout = m_layout;
137  std::map<std::string, std::string> altAsciiDBMap{};
138 
139 
140  // Get the detector configuration.
141  ServiceHandle<IGeoDbTagSvc> geoDbTag("GeoDbTagSvc",name());
142  ATH_CHECK(geoDbTag.retrieve());
143  ServiceHandle<IRDBAccessSvc> accessSvc(geoDbTag->getParamSvcName(),name());
144  ATH_CHECK(accessSvc.retrieve());
145  GeoModelIO::ReadGeoModel* sqliteReader = geoDbTag->getSqliteReader();
146 
147  if (sqliteReader) {
148 
149  ATH_MSG_INFO("New DD Activated; Muon detector description input from SQLITE fie");
150 
151  MuonDetectorFactoryLite theFactory(detStore().operator->(),sqliteReader);
152  theFactory.setRDBAccess(accessSvc.get());
153  theFactory.create(world);
154 
155 
156  mgr=theFactory.getDetectorManager();
157  mgr->setMinimalGeoFlag(m_minimalGeoFlag);
158  mgr->setGeometryVersion(tempLayout);
159  mgr->fillCache();
160 
161  return StatusCode::SUCCESS;
162  }
163  //
164  // New DD: action ends here!!
165  //
166  //=====================================================
167  //
168  // Old DD: action starts here:
169  //
170 
171  MuonDetectorFactory001 theFactory(detStore().operator->());
173 
174 
175  if (MuonVersion == "CUSTOM")
176  ATH_MSG_WARNING("Detector Information coming from a custom configuration !!");
177  else {
178 
179  ATH_MSG_DEBUG("Detector Information coming from the database (job options IGNORED)");
180 
181  IRDBRecordset_ptr switchSet = accessSvc->getRecordsetPtr("MuonSwitches", detectorKey, detectorNode);
182  if ((*switchSet).size() == 0)
183  return StatusCode::FAILURE;
184  const IRDBRecord *switches = (*switchSet)[0];
185 
186  // m_layout = switches->getString("LAYOUTNAME");
187  tempLayout = switches->getString("LAYOUTNAME");
188  // m_includeInertMaterials = switches->getInt("BUILDINERTMATERIALS");
189  // m_minimalgeo = switches->getInt("MINIMALGEO");
190  if (MuonVersion.empty()) {
191  MuonVersion = accessSvc->getChildTag("MuonSpectrometer", detectorKey, detectorNode);
192  ATH_MSG_INFO("(from GeoModelSvc) in AtlasVersion = <" << AtlasVersion << "> default MuonVersion is <" << MuonVersion << ">");
193  }
194 
195  ATH_MSG_DEBUG(" m_altAsztFile: " << m_altAsztFile);
196  // use ascii file to read in ASZT parameters
197  if (m_altAsztFile != "")
198  altAsciiDBMap.insert(std::make_pair("ASZT", m_altAsztFile));
199  if (m_altCscIntAlinesFile != "")
200  altAsciiDBMap.insert(std::make_pair("IACSC", m_altCscIntAlinesFile));
201  }
202 
203  //
204  // Locate the top level experiment node
205  //
206 
207  ATH_MSG_INFO("Properties have been set as follows: " << endmsg
208  // <<" LayoutName "<< m_layout.substr(0,1) <<endmsg
209  << " LayoutName " << tempLayout.substr(0, 1) << endmsg
210  << " IncludeCutouts " << m_includeCutouts << endmsg
211  << " IncludeCutoutsBog " << m_includeCutoutsBog << endmsg
212  << " IncludeCtbBis " << m_includeCtbBis << endmsg
213  << " MinimalGeoFlag " << m_minimalGeoFlag << endmsg
214  << " EnableCscIntAlignmentFromGM " << m_useCscIntAlinesFromGM);
215 
216  if (m_stationSelection > 0) {
217  StationSelector::SetSelectionType(m_stationSelection);
218  if ((m_selectedStations.size() + m_selectedStEta.size() + m_selectedStPhi.size()) < 1) {
219  ATH_MSG_ERROR(" **** Badly set Option " << endmsg << " **** SelectedStations size =" << m_selectedStations.size() << endmsg
220  << " **** SelectedStJzz size =" << m_selectedStations.size() << endmsg
221  << " **** SelectedStJff size =" << m_selectedStations.size() << endmsg << " **** while StationSelection = 1");
222  return (StatusCode::FAILURE);
223  }
224  for (unsigned int i = 0; i < m_selectedStations.size(); i++) {
225  ATH_MSG_INFO(" Selected stations " << m_selectedStations[i]);
226  }
227 
228  if (m_selectedStEta.size() > 0) {
229  for (unsigned int i = 0; i < m_selectedStEta.size(); i++)
230  ATH_MSG_INFO(" Selected Jzz locations " << m_selectedStEta[i]);
231  }
232  if (m_selectedStPhi.size() > 0) {
233  for (unsigned int i = 0; i < m_selectedStPhi.size(); i++)
234  ATH_MSG_INFO(" Selected Jff locations " << m_selectedStPhi[i]);
235  }
236  }
237 
238  if (m_dumpMemoryBreakDown) {
239  umem = GeoPerfUtils::getMem();
240  ucpu = float(GeoPerfUtils::getCpu() / 100.);
241  geoModelStats << "At MuonDetectorTool::material mgr done \t SZ= " << umem << " Kb \t Time = " << ucpu << " seconds ---- \t DeltaM = " << umem - mem
242  << " \t Delta T =" << ucpu - cpu << std::endl;
243  mem = umem;
244  cpu = ucpu;
245  }
246 
247  if (nullptr == m_detector) {
248  IRDBAccessSvc *access = nullptr;
249  ATH_CHECK(service("RDBAccessSvc", access));
250 
251 
252 
253  theFactory.setDBAtlasVersion(AtlasVersion);
254  theFactory.setDBMuonVersion(MuonVersion);
255  theFactory.setDBkey(detectorKey);
256  theFactory.setDBnode(detectorNode);
257  theFactory.setLayout(tempLayout);
258  theFactory.setCutoutsFlag(m_includeCutouts);
259  theFactory.setCutoutsBogFlag(m_includeCutoutsBog);
260  theFactory.setCtbBisFlag(m_includeCtbBis);
261  theFactory.setMinimalGeoFlag(m_minimalGeoFlag);
262  theFactory.setDumpMemoryBreakDown(m_dumpMemoryBreakDown);
263  theFactory.setFineClashFixingFlag(m_enableFineClashFixing);
264  theFactory.hasCSC(m_hasCSC);
265  theFactory.hasSTgc(m_hasSTgc);
266  theFactory.hasMM(m_hasMM);
267  if (m_stationSelection > 0)
268  theFactory.setSelection(m_selectedStations, m_selectedStEta, m_selectedStPhi);
269 
270  theFactory.setRDBAccess(access);
271  // theFactory.setUseRDB(1);
272  theFactory.setAltAsciiDBMap(altAsciiDBMap);
273  try {
274  //
275  // This strange way of casting is to avoid an
276  // utterly brain damaged compiler warning.
277  //
278  theFactory.create(world);
279  } catch (const std::bad_alloc &) {
280  ATH_MSG_FATAL("Could not create new MuonDetectorNode!");
281  return StatusCode::FAILURE;
282  }
283 
284  if (m_dumpMemoryBreakDown) {
285  umem = GeoPerfUtils::getMem();
286  ucpu = float(GeoPerfUtils::getCpu() / 100.);
287  geoModelStats << "At MuonDetectorTool::factory created \t SZ= " << umem << " Kb \t Time = " << ucpu << " seconds ---- \t DeltaM = " << umem - mem
288  << " \t Delta T =" << ucpu - cpu << std::endl;
289  mem = umem;
290  cpu = ucpu;
291  }
292 
293  if (m_dumpMemoryBreakDown) {
294  umem = GeoPerfUtils::getMem();
295  ucpu = float(GeoPerfUtils::getCpu() / 100.);
296  geoModelStats << "At MuonDetectorTool::trk cache done \t SZ= " << umem << " Kb \t Time = " << ucpu << " seconds ---- \t DeltaM = " << umem - mem
297  << " \t Delta T =" << ucpu - cpu << std::endl;
298  mem = umem;
299  cpu = ucpu;
300  }
301  }
302  mgr=theFactory.getDetectorManager();
303  mgr->fillCache();
304  return StatusCode::SUCCESS;
305 }
306 
309  if (proxy) {
310  proxy->reset();
311  m_manager = nullptr;
312  }
313  return StatusCode::SUCCESS;
314 }
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
MuonDetectorTool::m_hasCSC
Gaudi::Property< bool > m_hasCSC
Definition: MuonDetDescr/MuonGeoModel/MuonGeoModel/MuonDetectorTool.h:47
GeoModelExperiment::getPhysVol
GeoPhysVol * getPhysVol()
Destructor.
Definition: GeoModelExperiment.cxx:21
MuonDetectorTool::m_stationSelection
Gaudi::Property< bool > m_stationSelection
Definition: MuonDetDescr/MuonGeoModel/MuonGeoModel/MuonDetectorTool.h:51
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
MuonGM
Ensure that the Athena extensions are properly loaded.
Definition: GeoMuonHits.h:27
StateLessPT_NewConfig.proxy
proxy
Definition: StateLessPT_NewConfig.py:392
MuonDetectorTool::m_manager
MuonGM::MuonDetectorManager * m_manager
Definition: MuonDetDescr/MuonGeoModel/MuonGeoModel/MuonDetectorTool.h:69
CondAttrListCollection.h
This file defines the class for a collection of AttributeLists where each one is associated with a ch...
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
IGeoModelSvc
Definition: IGeoModelSvc.h:17
MuonGM::MuonClusterReadoutElement::center
virtual const Amg::Vector3D & center() const override
Return the center of the element.
Definition: MuonClusterReadoutElement.h:125
MuonDetectorTool::MuonDetectorTool
MuonDetectorTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor(s)
Definition: MuonDetDescr/MuonGeoModel/src/MuonDetectorTool.cxx:31
MuonIdHelper::detectorElement_hash_max
size_type detectorElement_hash_max() const
Definition: MuonIdHelper.h:186
IRDBRecord::getString
virtual const std::string & getString(const std::string &fieldName) const =0
Get string field value.
GeoModelExperiment
Definition: GeoModelExperiment.h:32
MuonDetectorTool::m_beeNoShiftInDefault
Gaudi::Property< bool > m_beeNoShiftInDefault
Definition: MuonDetDescr/MuonGeoModel/MuonGeoModel/MuonDetectorTool.h:68
MuonDetectorTool::m_dumpMemoryBreakDown
Gaudi::Property< bool > m_dumpMemoryBreakDown
Definition: MuonDetDescr/MuonGeoModel/MuonGeoModel/MuonDetectorTool.h:45
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
MuonDetectorTool.h
MuonDetectorTool::m_altAsztFile
Gaudi::Property< std::string > m_altAsztFile
Definition: MuonDetDescr/MuonGeoModel/MuonGeoModel/MuonDetectorTool.h:59
find_tgc_unfilled_channelids.mapping
mapping
Definition: find_tgc_unfilled_channelids.py:17
MuonDetectorTool::clear
virtual StatusCode clear() override final
Definition: MuonDetDescr/MuonGeoModel/src/MuonDetectorTool.cxx:307
MuonGM::MuonDetectorManager::getTgcReadoutElement
const TgcReadoutElement * getTgcReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:247
BchCleanup.mgr
mgr
Definition: BchCleanup.py:294
GeoModelExperiment.h
StationSelector.h
MuonDetectorTool::m_enableFineClashFixing
Gaudi::Property< bool > m_enableFineClashFixing
Definition: MuonDetDescr/MuonGeoModel/MuonGeoModel/MuonDetectorTool.h:46
MuonDetectorTool::create
virtual StatusCode create() override final
Create the Detector Node corresponding to this tool.
Definition: MuonDetDescr/MuonGeoModel/src/MuonDetectorTool.cxx:50
MuonGM::MuonDetectorFactory001::disableBEEShift
void disableBEEShift(bool flag)
Definition: MuonDetectorFactory001.h:132
EventInfoWrite.AtlasVersion
AtlasVersion
Definition: EventInfoWrite.py:17
IRDBAccessSvc.h
Definition of the abstract IRDBAccessSvc interface.
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
lumiFormat.i
int i
Definition: lumiFormat.py:92
ClassID_traits.h
a traits class that associates a CLID to a type T It also detects whether T inherits from Gaudi DataO...
IRDBAccessSvc
IRDBAccessSvc is an abstract interface to the athena service that provides the following functionalit...
Definition: IRDBAccessSvc.h:45
MuonDetectorTool::m_hasSTgc
Gaudi::Property< bool > m_hasSTgc
Definition: MuonDetDescr/MuonGeoModel/MuonGeoModel/MuonDetectorTool.h:48
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
IGeoModelSvc::muonVersionOverride
virtual const std::string & muonVersionOverride() const =0
ClassID_traits
Default, invalid implementation of ClassID_traits.
Definition: Control/AthenaKernel/AthenaKernel/ClassID_traits.h:40
MuonGM::TgcReadoutElement
A TgcReadoutElement corresponds to a single TGC chamber; therefore typically a TGC station contains s...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/TgcReadoutElement.h:42
test_pyathena.parent
parent
Definition: test_pyathena.py:15
GeoModelTool
Definition: GeoModelTool.h:17
MuonDetectorTool::m_selectedStEta
Gaudi::Property< std::vector< int > > m_selectedStEta
Definition: MuonDetDescr/MuonGeoModel/MuonGeoModel/MuonDetectorTool.h:53
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
MuonDetectorTool::m_selectedStations
Gaudi::Property< std::vector< std::string > > m_selectedStations
Definition: MuonDetDescr/MuonGeoModel/MuonGeoModel/MuonDetectorTool.h:52
MuonDetectorTool::m_includeCtbBis
Gaudi::Property< bool > m_includeCtbBis
Definition: MuonDetDescr/MuonGeoModel/MuonGeoModel/MuonDetectorTool.h:43
python.dummyaccess.access
def access(filename, mode)
Definition: dummyaccess.py:18
IRDBRecordset_ptr
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
Definition: IRDBAccessSvc.h:25
MuonGM::MuonDetectorFactoryLite::setRDBAccess
void setRDBAccess(IRDBAccessSvc *access)
Definition: MuonDetectorFactoryLite.h:48
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
MuonDetectorTool::m_includeCutoutsBog
Gaudi::Property< bool > m_includeCutoutsBog
Definition: MuonDetDescr/MuonGeoModel/MuonGeoModel/MuonDetectorTool.h:42
MuonGM::MuonDetectorManager::tgcIdHelper
const TgcIdHelper * tgcIdHelper() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:230
GeoModelTool::m_detector
GeoVDetectorManager * m_detector
Definition: GeoModelTool.h:36
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
StoredMaterialManager.h
MuonDetectorTool::m_selectedStPhi
Gaudi::Property< std::vector< int > > m_selectedStPhi
Definition: MuonDetDescr/MuonGeoModel/MuonGeoModel/MuonDetectorTool.h:54
MuonGM::MuonDetectorFactoryLite
Definition: MuonDetectorFactoryLite.h:19
MuonDetectorTool::initialize
virtual StatusCode initialize() override
Definition: MuonDetDescr/MuonGeoModel/src/MuonDetectorTool.cxx:36
MuonDetectorTool::m_layout
Gaudi::Property< std::string > m_layout
Definition: MuonDetDescr/MuonGeoModel/MuonGeoModel/MuonDetectorTool.h:37
MuonDetectorTool::m_hasMM
Gaudi::Property< bool > m_hasMM
Definition: MuonDetDescr/MuonGeoModel/MuonGeoModel/MuonDetectorTool.h:49
MuonDetectorTool::m_minimalGeoFlag
Gaudi::Property< int > m_minimalGeoFlag
Definition: MuonDetDescr/MuonGeoModel/MuonGeoModel/MuonDetectorTool.h:60
MuonDetectorManager.h
MuonDetectorTool::~MuonDetectorTool
virtual ~MuonDetectorTool() override final
Definition: MuonDetDescr/MuonGeoModel/src/MuonDetectorTool.cxx:40
MuonGM::MuonDetectorFactory001
Definition: MuonDetectorFactory001.h:21
MuonDetectorTool::m_useCscIntAlinesFromGM
Gaudi::Property< bool > m_useCscIntAlinesFromGM
Definition: MuonDetDescr/MuonGeoModel/MuonGeoModel/MuonDetectorTool.h:65
MuonDetectorTool::createFactory
StatusCode createFactory(MuonGM::MuonDetectorManager *&, GeoPhysVol *world) const
Definition: MuonDetDescr/MuonGeoModel/src/MuonDetectorTool.cxx:94
GeoModelExperiment::addManager
void addManager(const GeoVDetectorManager *)
Definition: GeoModelExperiment.cxx:40
MuonSectorMapping.h
IRDBRecord.h
Definition of the abstract IRDBRecord interface.
MuonGM::MuonDetectorManager
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:49
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
IRDBRecord
IRDBRecord is one record in the IRDBRecordset object.
Definition: IRDBRecord.h:27
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
MuonDetectorFactory001.h
MuonDetectorTool::m_altCscIntAlinesFile
Gaudi::Property< std::string > m_altCscIntAlinesFile
Definition: MuonDetDescr/MuonGeoModel/MuonGeoModel/MuonDetectorTool.h:66
MuonDetectorTool::m_includeCutouts
Gaudi::Property< bool > m_includeCutouts
Definition: MuonDetDescr/MuonGeoModel/MuonGeoModel/MuonDetectorTool.h:41
Muon::MuonSectorMapping
Definition: MuonSectorMapping.h:20
TgcReadoutElement.h
MuonDetectorFactoryLite.h
IRDBRecordset.h
Definition of the abstract IRDBRecordset interface.
IGeoModelSvc::atlasVersion
virtual const std::string & atlasVersion() const =0
IGeoModelSvc.h
SG::DataProxy
Definition: DataProxy.h:44
readCCLHist.float
float
Definition: readCCLHist.py:83
getCpu
int getCpu()
Definition: SingleTrackValidation.cxx:60
ServiceHandle< IGeoDbTagSvc >