ATLAS Offline Software
PLRDetectorTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef PLRGeoModelXml_PLRDETECTORTOOL_H
6 #define PLRGeoModelXml_PLRDETECTORTOOL_H
7 //
8 // Create an Athena Tool; handle Athena services and Tools needed for
9 // building the PLR geometry.
10 // This is the entry to the PLRGeoModelXml package.
11 //
15 
16 #include <memory>
17 
18 class GeoPhysVol;
19 
20 namespace InDetDD
21 {
22  class PixelDetectorManager;
23 }
24 
26 {
27 public:
28  PLRDetectorTool(const std::string &type, const std::string &name, const IInterface *parent);
29  virtual ~PLRDetectorTool() = default;
30  virtual StatusCode create() override final;
31  virtual StatusCode clear() override final;
32  virtual StatusCode registerCallback ATLAS_NOT_THREAD_SAFE () override final;
33  virtual StatusCode align(IOVSVC_CALLBACK_ARGS_P(I,keys)) override final;
34 
35 private:
36  const InDetDD::PixelDetectorManager *m_detManager{};
37  std::unique_ptr<InDetDD::SiCommonItems> m_commonItems{};
39 
40  Gaudi::Property<bool> m_alignable{this, "Alignable", false, ""};
41  // This should be changed to an ITk-specific one in future, once available
42  Gaudi::Property<std::string> m_alignmentFolderName{this, "AlignmentFolderName", "/Indet/Align", ""};
43 
44  // If the PLR should be built inside the pixel, it should use a different entry point
45  // in the geometry via the GeoModelXml "envelope" mechanism
46  Gaudi::Property<std::string> m_containingDetectorName{this, "ContainingDetector", "", "Containing detector name"};
47  Gaudi::Property<std::string> m_envelopeVolumeName{this, "EnvelopeVolume", "ITkPixelDetector", "Envelope volume name"};
48 
49  // Print out how many of each layer/eta/phi etc. have been set up.
50  // Not yet implemented here... may not be necessary in the end?
51  void doNumerology();
52 };
53 
54 #endif // PLRGEOMODELXML_PLRDETECTORTOOL_H
PLRDetectorTool::ATLAS_NOT_THREAD_SAFE
virtual StatusCode registerCallback ATLAS_NOT_THREAD_SAFE() override final
PLRDetectorTool::m_moduleTree
WaferTree m_moduleTree
Definition: PLRDetectorTool.h:38
PLRDetectorTool::~PLRDetectorTool
virtual ~PLRDetectorTool()=default
PLRDetectorTool::PLRDetectorTool
PLRDetectorTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: PLRDetectorTool.cxx:17
IOVSVC_CALLBACK_ARGS_P
#define IOVSVC_CALLBACK_ARGS_P(I, K)
short hand for IOVSvc call back argument list, to be used when access to formal arguments is needed,...
Definition: IOVSvcDefs.h:42
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
PLRDetectorTool::create
virtual StatusCode create() override final
Definition: PLRDetectorTool.cxx:25
PLRDetectorTool::align
virtual StatusCode align(IOVSVC_CALLBACK_ARGS_P(I, keys)) override final
Definition: PLRDetectorTool.cxx:129
PLRDetectorTool::m_detManager
const InDetDD::PixelDetectorManager * m_detManager
Definition: PLRDetectorTool.h:36
PLRDetectorTool::m_alignable
Gaudi::Property< bool > m_alignable
Definition: PLRDetectorTool.h:40
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
SiCommonItems.h
PLRDetectorTool::doNumerology
void doNumerology()
Definition: PLRDetectorTool.cxx:147
test_pyathena.parent
parent
Definition: test_pyathena.py:15
PLRDetectorTool::m_envelopeVolumeName
Gaudi::Property< std::string > m_envelopeVolumeName
Definition: PLRDetectorTool.h:47
WaferTree.h
PLRDetectorTool::m_containingDetectorName
Gaudi::Property< std::string > m_containingDetectorName
Definition: PLRDetectorTool.h:46
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
PLRDetectorTool::clear
virtual StatusCode clear() override final
Definition: PLRDetectorTool.cxx:90
GeoModelXmlTool
Definition: GeoModelXmlTool.h:21
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
GeoModelXmlTool.h
PLRDetectorTool::m_alignmentFolderName
Gaudi::Property< std::string > m_alignmentFolderName
Definition: PLRDetectorTool.h:42
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
I
#define I(x, y, z)
Definition: MD5.cxx:116
PLRDetectorTool
Definition: PLRDetectorTool.h:26
WaferTree
Definition: WaferTree.h:74
PLRDetectorTool::m_commonItems
std::unique_ptr< InDetDD::SiCommonItems > m_commonItems
Definition: PLRDetectorTool.h:37