ATLAS Offline Software
DetectorVolumeSvc.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ACTSGEOMETRY_ACTSDETECTORVOLUMESVC_H
6 #define ACTSGEOMETRY_ACTSDETECTORVOLUMESVC_H
7 
8 // ATHENA
10 #include "GaudiKernel/ToolHandle.h"
11 
12 // PACKAGE
15 #include "CxxUtils/CachedValue.h"
16 
17 
18 // ACTS
19 #include "Acts/Detector/Detector.hpp"
20 
21 
22 namespace ActsTrk{
23 
24  class DetectorVolumeSvc : public extends<AthService, IDetectorVolumeSvc> {
25  public:
26 
27  DetectorVolumeSvc( const std::string& name, ISvcLocator* pSvcLocator );
28 
29  StatusCode initialize() override;
30 
31  DetectorPtr detector() const override;
32 
33  unsigned int populateAlignmentStore(AlignmentStore& store) const override;
34 
35  const ActsGeometryContext& getNominalContext() const override;
36 
37  private:
38  std::shared_ptr<const Acts::Experimental::Detector> buildDetector() const;
39 
40  ToolHandleArray<IDetectorVolumeBuilderTool> m_builderTools{this, "DetectorBuilders", {}};
41 
44  };
45 }
46 
47 
48 
49 #endif
store
StoreGateSvc * store
Definition: fbtTestBasics.cxx:69
ActsTrk::DetectorVolumeSvc::detector
DetectorPtr detector() const override
Definition: DetectorVolumeSvc.cxx:33
ActsTrk::DetectorVolumeSvc::populateAlignmentStore
unsigned int populateAlignmentStore(AlignmentStore &store) const override
Definition: DetectorVolumeSvc.cxx:41
ActsTrk::DetectorVolumeSvc
Definition: DetectorVolumeSvc.h:24
ActsTrk::DetectorVolumeSvc::m_nomContext
ActsGeometryContext m_nomContext
Definition: DetectorVolumeSvc.h:43
ActsTrk::DetectorVolumeSvc::m_builderTools
ToolHandleArray< IDetectorVolumeBuilderTool > m_builderTools
Definition: DetectorVolumeSvc.h:40
ActsTrk::DetectorVolumeSvc::buildDetector
std::shared_ptr< const Acts::Experimental::Detector > buildDetector() const
Definition: DetectorVolumeSvc.cxx:49
ActsTrk::DetectorVolumeSvc::initialize
StatusCode initialize() override
Definition: DetectorVolumeSvc.cxx:24
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ActsTrk::DetectorVolumeSvc::m_detector
CxxUtils::CachedValue< DetectorPtr > m_detector
Definition: DetectorVolumeSvc.h:42
CxxUtils::CachedValue< DetectorPtr >
IDetectorVolumeBuilderTool.h
ActsTrk::DetectorVolumeSvc::DetectorVolumeSvc
DetectorVolumeSvc(const std::string &name, ISvcLocator *pSvcLocator)
Definition: DetectorVolumeSvc.cxx:20
ActsGeometryContext
Include the GeoPrimitives which need to be put first.
Definition: ActsGeometryContext.h:28
IDetectorVolumeSvc.h
CachedValue.h
Cached value with atomic update.
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
ActsTrk::DetectorVolumeSvc::getNominalContext
const ActsGeometryContext & getNominalContext() const override
Definition: DetectorVolumeSvc.cxx:45
AthService.h
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition: MuonDetectorBuilderTool.cxx:34