ATLAS Offline Software
AFP_GeoModelFactory.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 AFP_GeoModelFactory_h
6 #define AFP_GeoModelFactory_h 1
7 
8 #include "GeoModelKernel/GeoVDetectorFactory.h"
10 #include "AFP_GeoModelManager.h"
12 #include <string>
13 #include <map>
14 
15 #define SLIMCUT (0.01*CLHEP::mm)
16 
18  float fBpmMRRX, fBpmMRRY; //BPMR.6R1.B1 (231.535 m from IP)
19  float fBpmMRLX, fBpmMRLY; //BPMR.6L1.B2 (225.245 m from IP)
20  float fBpmSARX, fBpmSARY; //BPMSA.7R1.B1 (on ALFA station A7R1 237.7505 m from IP)
21  float fBpmSALX, fBpmSALY; //BPMSA.7L1.B2 (on ALFA station A7L1 237.7505 m from IP)
22 
23  float fBpmWBRX, fBpmWBRY; //BPMWB.4R1.B1 (151.0945 m from IP)
24  float fBpmYALX, fBpmYALY; //BPMYA.4L1.B2 (172.227 m from the IP)
25 };
26 
27 
28 class StoreGateSvc;
29 class AFP_GeoModelFactory : public GeoVDetectorFactory
30 {
31 
32 public:
33  AFP_GeoModelFactory(StoreGateSvc *pDetStore, AFP_Geometry* pGeometry);
35 
36  // Creation of geometry:
37  virtual void create(GeoPhysVol *world);
38 
39  // Access to the results:
40  virtual const AFP_GeoModelManager * getDetectorManager() const;
41  void updatePositions(AFP_BPMCOOLPARAMS* pBpmParams);
42 
43 private:
44  std::map<std::string, GeoRef<const GeoMaterial> > m_MapMaterials;
45 
46  void defineMaterials();
47 
48  // Illegal operations:
51 
52  // The manager:
55 
56 private:
57  //common auxiliary map of solid shapes
58  std::map<std::string,const GeoShape*> m_MapShape;
62 
63  //Si detector part
64  GeoShape* createSolidSIDPlate();
65  void addSiDetector(GeoPhysVol* pPhysMotherVol, const char* pszStationName, HepGeom::Transform3D& TransInMotherVolume);
66  void addRomanPot(GeoPhysVol* pPhysMotherVol, const char* pszStationName, HepGeom::Transform3D& TransInMotherVolume);
67 
68  //TOF part
72  StatusCode addTimingDetector(const char* pszStationName, GeoOpticalPhysVol* pPhysMotherVol, HepGeom::Transform3D& TransInMotherVolume, GeoBorderSurfaceContainer* bsContainer);
73  void addLQBarSegment(const char* pszStationName, const int nQuarticID, const int nLQBarID,AFPTOF_LBARDIMENSIONS& LQBarDims, GeoOpticalPhysVol* pPhysMotherVolume, HepGeom::Transform3D& TransInMotherVolume, GeoBorderSurfaceContainer* bsContainer);
74  void addSepRadLBar(const char* pszStationName, const int nQuarticID, const int nBarID, GeoOpticalPhysVol* pPhysMotherVolume, HepGeom::Transform3D& TransInMotherVolume, GeoBorderSurfaceContainer* bsContainer);
75  HepGeom::Vector3D<double> getBarShift(AFPTOF_LBARDIMENSIONS& LQBarDims, eLBarType eSpecType=ELBT_UNDEFINED);
76  void addHorizontalArm(const char* pszStationName, const int nQuarticID, const int nLQBarID, AFPTOF_LBARDIMENSIONS& LQBarDims, GeoOpticalPhysVol* pPhysMotherVolume, HepGeom::Transform3D& PartialTransInMotherVolume, GeoBorderSurfaceContainer* bsContainer);
77  void addSensor(const char* pszStationName, const int nQuarticID, GeoOpticalPhysVol* pPhysMotherVolume, HepGeom::Transform3D &TransInMotherVolume, GeoBorderSurfaceContainer* bsContainer);
78  void addLBarSensorSeparationWindow(const char* pszStationName, const int nQuarticID, GeoOpticalPhysVol* pPhysMotherVolume, HepGeom::Transform3D &TransInMotherVolume, GeoBorderSurfaceContainer* bsContainer);
79  void getLQBarDimensions(const int nRowID, const int nColID, AFPTOF_LBARDIMENSIONS* pLQBarDims);
80 };
81 
82 // Class AFP_GeoModelFactory
83 #endif
84 
85 
GeoOpticalPhysVol
Ensure that the extensions for the Vector3D are properly loaded.
Definition: GeoOpticalPhysVol.h:14
AFP_GeoModelFactory::~AFP_GeoModelFactory
~AFP_GeoModelFactory()
Definition: AFP_GeoModelFactory.cxx:54
AFP_BPMCOOLPARAMS::fBpmYALX
float fBpmYALX
Definition: AFP_GeoModelFactory.h:24
AFP_BPMCOOLPARAMS::fBpmMRLY
float fBpmMRLY
Definition: AFP_GeoModelFactory.h:19
GeoRef.h
Simple smart-pointer class for GeoModel objects.
AFP_GeoModelFactory::getBarShift
HepGeom::Vector3D< double > getBarShift(AFPTOF_LBARDIMENSIONS &LQBarDims, eLBarType eSpecType=ELBT_UNDEFINED)
AFP_BPMCOOLPARAMS::fBpmWBRY
float fBpmWBRY
Definition: AFP_GeoModelFactory.h:23
AFP_GeoModelFactory::AFP_GeoModelFactory
AFP_GeoModelFactory(StoreGateSvc *pDetStore, AFP_Geometry *pGeometry)
Definition: AFP_GeoModelFactory.cxx:44
AFP_GeoModelFactory::addTimingDetector
StatusCode addTimingDetector(const char *pszStationName, GeoOpticalPhysVol *pPhysMotherVol, HepGeom::Transform3D &TransInMotherVolume, GeoBorderSurfaceContainer *bsContainer)
Definition: AFP_GeoModelTD.cxx:62
AFP_GeoModelFactory::addRomanPot
void addRomanPot(GeoPhysVol *pPhysMotherVol, const char *pszStationName, HepGeom::Transform3D &TransInMotherVolume)
Definition: AFP_GeoModelRP.cxx:60
AFP_BPMCOOLPARAMS::fBpmSARY
float fBpmSARY
Definition: AFP_GeoModelFactory.h:20
AFP_BPMCOOLPARAMS::fBpmSARX
float fBpmSARX
Definition: AFP_GeoModelFactory.h:20
AFP_GeoModelFactory
Definition: AFP_GeoModelFactory.h:30
eLBarType
eLBarType
Definition: AFP_ConfigParams.h:20
AFP_GeoModelFactory::addSepRadLBar
void addSepRadLBar(const char *pszStationName, const int nQuarticID, const int nBarID, GeoOpticalPhysVol *pPhysMotherVolume, HepGeom::Transform3D &TransInMotherVolume, GeoBorderSurfaceContainer *bsContainer)
Definition: AFP_GeoModelTD.cxx:95
AFP_GeoModelFactory::createSolidSIDPlate
GeoShape * createSolidSIDPlate()
Definition: AFP_GeoModelSID.cxx:112
AFP_GeoModelFactory::m_CfgParams
AFP_CONFIGURATION m_CfgParams
Definition: AFP_GeoModelFactory.h:59
AFP_GeoModelFactory::m_MapShape
std::map< std::string, const GeoShape * > m_MapShape
Definition: AFP_GeoModelFactory.h:58
AFP_GeoModelFactory::m_pDetectorManager
AFP_GeoModelManager * m_pDetectorManager
Definition: AFP_GeoModelFactory.h:53
AFP_GeoModelFactory::addLBarSensorSeparationWindow
void addLBarSensorSeparationWindow(const char *pszStationName, const int nQuarticID, GeoOpticalPhysVol *pPhysMotherVolume, HepGeom::Transform3D &TransInMotherVolume, GeoBorderSurfaceContainer *bsContainer)
Definition: AFP_GeoModelTD.cxx:214
AFP_GeoModelFactory::m_pGeometry
AFP_Geometry * m_pGeometry
Definition: AFP_GeoModelFactory.h:60
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:128
AFP_GeoModelFactory::m_pOpticalSurface
GeoOpticalSurface * m_pOpticalSurface
Definition: AFP_GeoModelFactory.h:69
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AFP_CONFIGURATION
Definition: AFP_ConfigParams.h:135
ELBT_UNDEFINED
@ ELBT_UNDEFINED
Definition: AFP_ConfigParams.h:20
AFP_GeoModelFactory::addSensor
void addSensor(const char *pszStationName, const int nQuarticID, GeoOpticalPhysVol *pPhysMotherVolume, HepGeom::Transform3D &TransInMotherVolume, GeoBorderSurfaceContainer *bsContainer)
Definition: AFP_GeoModelTD.cxx:250
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
AFP_GeoModelFactory::create
virtual void create(GeoPhysVol *world)
Definition: AFP_GeoModelFactory.cxx:220
AFP_GeoModelFactory::getDetectorManager
virtual const AFP_GeoModelManager * getDetectorManager() const
Definition: AFP_GeoModelFactory.cxx:338
GeoOpticalSurface
Ensure that the extensions for the Vector3D are properly loaded.
Definition: GeoOpticalSurface.h:19
AFP_BPMCOOLPARAMS
Definition: AFP_GeoModelFactory.h:17
AFP_Geometry
Definition: AFP_Geometry.h:20
AFP_BPMCOOLPARAMS::fBpmMRLX
float fBpmMRLX
Definition: AFP_GeoModelFactory.h:19
AFP_GeoModelFactory::addLQBarSegment
void addLQBarSegment(const char *pszStationName, const int nQuarticID, const int nLQBarID, AFPTOF_LBARDIMENSIONS &LQBarDims, GeoOpticalPhysVol *pPhysMotherVolume, HepGeom::Transform3D &TransInMotherVolume, GeoBorderSurfaceContainer *bsContainer)
AFP_GeoModelFactory::initializeTDParameters
void initializeTDParameters()
Definition: AFP_GeoModelTD.cxx:49
AFP_GeoModelFactory::operator=
const AFP_GeoModelFactory & operator=(const AFP_GeoModelFactory &right)
AFP_GeoModelManager
Definition: AFP_GeoModelManager.h:11
AFP_GeoModelManager.h
AFP_GeoModelFactory::AFP_GeoModelFactory
AFP_GeoModelFactory(const AFP_GeoModelFactory &right)
AFP_GeoModelFactory::m_pReflectionOptSurface
GeoOpticalSurface * m_pReflectionOptSurface
Definition: AFP_GeoModelFactory.h:70
AFPTOF_LBARDIMENSIONS
Definition: AFP_ConfigParams.h:61
AFP_BPMCOOLPARAMS::fBpmSALX
float fBpmSALX
Definition: AFP_GeoModelFactory.h:21
AFP_GeoModelFactory::defineMaterials
void defineMaterials()
Definition: AFP_GeoModelFactory.cxx:59
AFP_BPMCOOLPARAMS::fBpmMRRY
float fBpmMRRY
Definition: AFP_GeoModelFactory.h:18
AFP_BPMCOOLPARAMS::fBpmMRRX
float fBpmMRRX
Definition: AFP_GeoModelFactory.h:18
AFP_GeoModelFactory::m_pDetectorStore
StoreGateSvc * m_pDetectorStore
Definition: AFP_GeoModelFactory.h:54
AFP_GeoModelFactory::m_addSeparationWindow
const bool m_addSeparationWindow
Definition: AFP_GeoModelFactory.h:61
GeoBorderSurfaceContainer
std::vector< GeoBorderSurface > GeoBorderSurfaceContainer
Definition: GeoBorderSurfaceContainer.h:12
AFP_BPMCOOLPARAMS::fBpmWBRX
float fBpmWBRX
Definition: AFP_GeoModelFactory.h:23
AFP_BPMCOOLPARAMS::fBpmSALY
float fBpmSALY
Definition: AFP_GeoModelFactory.h:21
AFP_GeoModelFactory::updatePositions
void updatePositions(AFP_BPMCOOLPARAMS *pBpmParams)
Definition: AFP_GeoModelFactory.cxx:344
AFP_BPMCOOLPARAMS::fBpmYALY
float fBpmYALY
Definition: AFP_GeoModelFactory.h:24
AFP_GeoModelFactory::getLQBarDimensions
void getLQBarDimensions(const int nRowID, const int nColID, AFPTOF_LBARDIMENSIONS *pLQBarDims)
AFP_GeoModelFactory::addHorizontalArm
void addHorizontalArm(const char *pszStationName, const int nQuarticID, const int nLQBarID, AFPTOF_LBARDIMENSIONS &LQBarDims, GeoOpticalPhysVol *pPhysMotherVolume, HepGeom::Transform3D &PartialTransInMotherVolume, GeoBorderSurfaceContainer *bsContainer)
AFP_GeoModelFactory::addSiDetector
void addSiDetector(GeoPhysVol *pPhysMotherVol, const char *pszStationName, HepGeom::Transform3D &TransInMotherVolume)
Definition: AFP_GeoModelSID.cxx:42
AFP_GeoModelFactory::m_MapMaterials
std::map< std::string, GeoRef< const GeoMaterial > > m_MapMaterials
Definition: AFP_GeoModelFactory.h:44
AFP_Geometry.h