ATLAS Offline Software
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"
10 //compiler needs to know ZDC_DetManager return type derives from GeoVDetectorManager
11 //to avoid "invalid covariant return type" warning
12 #include "ZDC_DetManager.h"
13 
14 #include <vector>
15 #include <utility> //for std::pair
16 #include "GeoModelKernel/GeoAlignableTransform.h"
17 
18 class StoreGateSvc;
19 class ZdcID;
21 
22 class ZDC_DetFactory : public GeoVDetectorFactory,
23  public AthMessaging
24 {
25 
26 public:
29 
30  virtual void create(GeoPhysVol *world) override;
31  //note: baseclass returns GeoVDetectorManager *
32  virtual const ZDC_DetManager *getDetectorManager() const override;
33  void buildMaterials(StoredMaterialManager *materialManager);
34 
35  void initializePbPb2015();
36  void initializePbPb2023();
37 
38 private:
39 
42  const ZdcID *m_zdcID{};
43  bool m_RPDs_On{}; //Flag for both RPD modules
44  bool m_BRANs_On{}; //Flag for both BRAN modules
45  std::vector< std::vector< bool > > m_zdcOn;
46  std::vector< std::vector< float > > m_zdcPos; //Positions of the ZDC modules
47  std::vector< std::vector< int > > m_zdcModType; //Module types of the ZDC modules
48  std::vector< GeoAlignableTransform* > m_rpdPos; //Positions of the RPD modules
49  std::vector< float > m_branPos; //Positions of the BRAN modules
50 };
51 
52 
53 
54 
55 #endif
ZDC_DetFactory::initializePbPb2023
void initializePbPb2023()
Definition: ZDC_DetFactory.cxx:68
ZDC_DetFactory::m_rpdPos
std::vector< GeoAlignableTransform * > m_rpdPos
Definition: ZDC_DetFactory.h:48
ZDC_DetFactory::~ZDC_DetFactory
~ZDC_DetFactory()
Definition: ZDC_DetFactory.cxx:56
ZDC_DetFactory::m_detectorManager
ZDC_DetManager * m_detectorManager
Definition: ZDC_DetFactory.h:40
ZDC_DetManager.h
ZDC_DetManager
Definition: ZDC_DetManager.h:13
ZDC_DetFactory::create
virtual void create(GeoPhysVol *world) override
Definition: ZDC_DetFactory.cxx:82
ZDC_DetFactory::getDetectorManager
virtual const ZDC_DetManager * getDetectorManager() const override
Definition: ZDC_DetFactory.cxx:296
ZDC_DetFactory::initializePbPb2015
void initializePbPb2015()
Definition: ZDC_DetFactory.cxx:58
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:125
ZDC_DetFactory::m_branPos
std::vector< float > m_branPos
Definition: ZDC_DetFactory.h:49
ZDC_DetFactory::ZDC_DetFactory
ZDC_DetFactory(StoreGateSvc *)
Definition: ZDC_DetFactory.cxx:45
ZDC_DetFactory::m_zdcID
const ZdcID * m_zdcID
Definition: ZDC_DetFactory.h:42
AthMessaging
Class to provide easy MsgStream access and capabilities.
Definition: AthMessaging.h:55
ZDC_DetFactory
Definition: ZDC_DetFactory.h:24
ZDC_DetFactory::m_RPDs_On
bool m_RPDs_On
Definition: ZDC_DetFactory.h:43
ZDC_DetFactory::m_zdcModType
std::vector< std::vector< int > > m_zdcModType
Definition: ZDC_DetFactory.h:47
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:145
ZDC_DetFactory::m_zdcPos
std::vector< std::vector< float > > m_zdcPos
Definition: ZDC_DetFactory.h:46
ZDC_DetFactory::m_BRANs_On
bool m_BRANs_On
Definition: ZDC_DetFactory.h:44
ZdcID
Definition: ZdcID.h:25
ZDC_DetFactory::m_detectorStore
StoreGateSvc * m_detectorStore
Definition: ZDC_DetFactory.h:41
ZDC_DetFactory::m_zdcOn
std::vector< std::vector< bool > > m_zdcOn
Definition: ZDC_DetFactory.h:45