Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
ZDC_DetFactory.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 ZDC_DETFACTORY_H
6 #define ZDC_DETFACTORY_H
7 
8 #include "GeoModelKernel/GeoVDetectorFactory.h"
9 #include "GeoModelKernel/GeoDefinitions.h"
11 //compiler needs to know ZDC_DetManager return type derives from GeoVDetectorManager
12 //to avoid "invalid covariant return type" warning
13 #include "ZDC_DetManager.h"
14 #include "ZDC_ModuleBase.h"
15 
16 #include <string>
17 #include <vector>
18 #include <array>
19 
20 class StoreGateSvc;
21 class ZdcID;
23 
24 class ZDC_DetFactory : public GeoVDetectorFactory,
25  public AthMessaging
26 {
27 
28 public:
31 
32  virtual void create(GeoPhysVol *world) override;
33  //note: baseclass returns GeoVDetectorManager *
34  virtual const ZDC_DetManager *getDetectorManager() const override;
35  void buildMaterials(StoredMaterialManager *materialManager);
36 
37  inline void addModule(std::unique_ptr<ZDC_ModuleBase> module) { m_modules.push_back(std::move(module) ); }
38  void setTANSlot(uint iside, double width, double height, double depth, const GeoTrf::Transform3D trf, const std::string& name);
39 
40 private:
41 
44  const ZdcID *m_zdcID{};
45  std::vector< std::unique_ptr<ZDC_ModuleBase> > m_modules;
46  std::array<GeoTrf::Transform3D, 2> m_tanSlotTransform;
47  std::array<double, 2> m_tanW, m_tanH, m_tanD;
48  std::array<std::string, 2> m_tanSlotName;
49 };
50 
51 
52 #endif
egammaParameters::depth
@ depth
pointing depth of the shower as calculated in egammaqgcld
Definition: egammaParamDefs.h:276
ZDC_ModuleBase.h
ZDC_DetFactory::m_tanH
std::array< double, 2 > m_tanH
Definition: ZDC_DetFactory.h:47
ZDC_DetFactory::setTANSlot
void setTANSlot(uint iside, double width, double height, double depth, const GeoTrf::Transform3D trf, const std::string &name)
Definition: ZDC_DetFactory.cxx:59
ZDC_DetFactory::~ZDC_DetFactory
~ZDC_DetFactory()
Definition: ZDC_DetFactory.cxx:57
ZDC_DetFactory::m_detectorManager
ZDC_DetManager * m_detectorManager
Definition: ZDC_DetFactory.h:42
ZDC_DetManager.h
ZDC_DetManager
Definition: ZDC_DetManager.h:13
ZDC_DetFactory::create
virtual void create(GeoPhysVol *world) override
Definition: ZDC_DetFactory.cxx:67
ZDC_DetFactory::m_tanW
std::array< double, 2 > m_tanW
Definition: ZDC_DetFactory.h:47
ZDC_DetFactory::addModule
void addModule(std::unique_ptr< ZDC_ModuleBase > module)
Definition: ZDC_DetFactory.h:37
ZDC_DetFactory::getDetectorManager
virtual const ZDC_DetManager * getDetectorManager() const override
Definition: ZDC_DetFactory.cxx:272
ZDC_DetFactory::m_tanD
std::array< double, 2 > m_tanD
Definition: ZDC_DetFactory.h:47
python.PyAthena.module
module
Definition: PyAthena.py:131
ZDC_DetFactory::m_tanSlotTransform
std::array< GeoTrf::Transform3D, 2 > m_tanSlotTransform
Definition: ZDC_DetFactory.h:46
uint
unsigned int uint
Definition: LArOFPhaseFill.cxx:20
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:124
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
ZDC_DetFactory::ZDC_DetFactory
ZDC_DetFactory(StoreGateSvc *)
Definition: ZDC_DetFactory.cxx:42
ZDC_DetFactory::m_zdcID
const ZdcID * m_zdcID
Definition: ZDC_DetFactory.h:44
AthMessaging
Class to provide easy MsgStream access and capabilities.
Definition: AthMessaging.h:55
ZDC_DetFactory::m_modules
std::vector< std::unique_ptr< ZDC_ModuleBase > > m_modules
Definition: ZDC_DetFactory.h:45
ZDC_DetFactory::m_tanSlotName
std::array< std::string, 2 > m_tanSlotName
Definition: ZDC_DetFactory.h:48
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
Base_Fragment.width
width
Definition: Sherpa_i/share/common/Base_Fragment.py:59
ZDC_DetFactory
Definition: ZDC_DetFactory.h:26
AthMessaging.h
StoredMaterialManager
This class holds one or more material managers and makes them storeable, under StoreGate.
Definition: StoredMaterialManager.h:28
ZDC_DetFactory::buildMaterials
void buildMaterials(StoredMaterialManager *materialManager)
Definition: ZDC_DetFactory.cxx:118
CaloLCW_tf.trf
trf
Definition: CaloLCW_tf.py:20
ZdcID
Definition: ZdcID.h:25
ZDC_DetFactory::m_detectorStore
StoreGateSvc * m_detectorStore
Definition: ZDC_DetFactory.h:43