ATLAS Offline Software
Loading...
Searching...
No Matches
ALFA_DetectorTool Class Referencefinal

#include <ALFA_DetectorTool.h>

Inheritance diagram for ALFA_DetectorTool:
Collaboration diagram for ALFA_DetectorTool:

Public Member Functions

 ALFA_DetectorTool (const std::string &type, const std::string &name, const IInterface *parent)
virtual ~ALFA_DetectorTool () override final
virtual StatusCode create () override final
virtual StatusCode registerCallback () override final
virtual StatusCode align (IOVSVC_CALLBACK_ARGS) override final
virtual GeoVDetectorManager * manager ()
virtual const GeoVDetectorManager * manager () const
virtual StatusCode clear () override
virtual StatusCode registerCallback ATLAS_NOT_THREAD_SAFE () override
virtual StatusCode align ATLAS_NOT_THREAD_SAFE (IOVSVC_CALLBACK_ARGS) override

Protected Attributes

GeoVDetectorManager * m_detector {nullptr}

Private Attributes

CONFIGURATION m_Config {}
ALFA_DetectorFactorym_pALFADetectorFactory {nullptr}
ServiceHandle< IIOVDbSvcm_iovDbSvc {this, "IOVDbSvc", "IOVDbSvc"}

Detailed Description

Definition at line 28 of file ALFA_DetectorTool.h.

Constructor & Destructor Documentation

◆ ALFA_DetectorTool()

ALFA_DetectorTool::ALFA_DetectorTool ( const std::string & type,
const std::string & name,
const IInterface * parent )

Definition at line 26 of file ALFA_DetectorTool.cxx.

29 : GeoModelTool( type, name, parent)
30{
31 m_Config.clear();
32
33 declareProperty("MetrologyType",m_Config.GeometryConfig.eRPMetrologyGeoType=EMT_NOMINAL);//EMT_METROLOGY
34 declareProperty("MetrologySource",m_Config.GeometryConfig.strRPMetrologyConnString=string(""));//"rpmetrology.dat"
35 declareProperty("ShiftToX97Pos",m_Config.GeometryConfig.bShiftToX97Pos=false);
36 declareProperty("ConstructBeampipe",m_Config.bConstructBeampipe=false);
37 declareProperty("AddBPInStation",m_Config.bAddIBP=true);
38
39 declareProperty("NominalZPosA7L1",m_Config.GeometryConfig.fNominalZPosA7L1=237388*CLHEP::mm);
40 declareProperty("NominalZPosB7L1",m_Config.GeometryConfig.fNominalZPosB7L1=241528*CLHEP::mm);
41 declareProperty("NominalZPosA7R1",m_Config.GeometryConfig.fNominalZPosA7R1=-237408*CLHEP::mm);
42 declareProperty("NominalZPosB7R1",m_Config.GeometryConfig.fNominalZPosB7R1=-241548*CLHEP::mm);
43
44 declareProperty("B7L1U_PosType",m_Config.GeometryConfig.CfgRPosParams[0].eRPPosType=ERPPT_ACTIVE);
45 declareProperty("B7L1U_MDGeometryType",m_Config.GeometryConfig.CfgRPosParams[0].eMDGeoType=EGST_IDEALGEOMETRY);//EGST_DATABASE
46 declareProperty("B7L1U_ODGeometryType",m_Config.GeometryConfig.CfgRPosParams[0].eODGeoType=EGST_IDEALGEOMETRY);//EGST_DATABASE
47 declareProperty("B7L1U_MDSource",m_Config.GeometryConfig.CfgRPosParams[0].strMDConnString=string(""));//string("ALFA:ALFA-00:ALFAFibreUp")
48 declareProperty("B7L1U_ODSource",m_Config.GeometryConfig.CfgRPosParams[0].strODConnString=string(""));//string("ALFA:ALFA-00:ALFAOvFibUp")
49 declareProperty("B7L1U_CurrentLVDT",m_Config.GeometryConfig.CfgRPosParams[0].fCurrentLVDTmm=7.0*CLHEP::mm);
50
51 declareProperty("B7L1L_PosType",m_Config.GeometryConfig.CfgRPosParams[1].eRPPosType=ERPPT_ACTIVE);
52 declareProperty("B7L1L_MDGeometryType",m_Config.GeometryConfig.CfgRPosParams[1].eMDGeoType=EGST_IDEALGEOMETRY);
53 declareProperty("B7L1L_ODGeometryType",m_Config.GeometryConfig.CfgRPosParams[1].eODGeoType=EGST_IDEALGEOMETRY);
54 declareProperty("B7L1L_MDSource",m_Config.GeometryConfig.CfgRPosParams[1].strMDConnString=string(""));
55 declareProperty("B7L1L_ODSource",m_Config.GeometryConfig.CfgRPosParams[1].strODConnString=string(""));
56 declareProperty("B7L1L_CurrentLVDT",m_Config.GeometryConfig.CfgRPosParams[1].fCurrentLVDTmm=-7.0*CLHEP::mm);
57
58 declareProperty("A7L1U_PosType",m_Config.GeometryConfig.CfgRPosParams[2].eRPPosType=ERPPT_ACTIVE);
59 declareProperty("A7L1U_MDGeometryType",m_Config.GeometryConfig.CfgRPosParams[2].eMDGeoType=EGST_IDEALGEOMETRY);
60 declareProperty("A7L1U_ODGeometryType",m_Config.GeometryConfig.CfgRPosParams[2].eODGeoType=EGST_IDEALGEOMETRY);
61 declareProperty("A7L1U_MDSource",m_Config.GeometryConfig.CfgRPosParams[2].strMDConnString=string(string("")));
62 declareProperty("A7L1U_ODSource",m_Config.GeometryConfig.CfgRPosParams[2].strODConnString=string(string("")));
63 declareProperty("A7L1U_CurrentLVDT",m_Config.GeometryConfig.CfgRPosParams[2].fCurrentLVDTmm=7.0*CLHEP::mm);
64
65 declareProperty("A7L1L_PosType",m_Config.GeometryConfig.CfgRPosParams[3].eRPPosType=ERPPT_ACTIVE);
66 declareProperty("A7L1L_MDGeometryType",m_Config.GeometryConfig.CfgRPosParams[3].eMDGeoType=EGST_IDEALGEOMETRY);
67 declareProperty("A7L1L_ODGeometryType",m_Config.GeometryConfig.CfgRPosParams[3].eODGeoType=EGST_IDEALGEOMETRY);
68 declareProperty("A7L1L_MDSource",m_Config.GeometryConfig.CfgRPosParams[3].strMDConnString=string(""));
69 declareProperty("A7L1L_ODSource",m_Config.GeometryConfig.CfgRPosParams[3].strODConnString=string(""));
70 declareProperty("A7L1L_CurrentLVDT",m_Config.GeometryConfig.CfgRPosParams[3].fCurrentLVDTmm=-7.0*CLHEP::mm);
71
72 declareProperty("A7R1U_PosType",m_Config.GeometryConfig.CfgRPosParams[4].eRPPosType=ERPPT_ACTIVE);
73 declareProperty("A7R1U_MDGeometryType",m_Config.GeometryConfig.CfgRPosParams[4].eMDGeoType=EGST_IDEALGEOMETRY);
74 declareProperty("A7R1U_ODGeometryType",m_Config.GeometryConfig.CfgRPosParams[4].eODGeoType=EGST_IDEALGEOMETRY);
75 declareProperty("A7R1U_MDSource",m_Config.GeometryConfig.CfgRPosParams[4].strMDConnString=string(""));
76 declareProperty("A7R1U_ODSource",m_Config.GeometryConfig.CfgRPosParams[4].strODConnString=string(""));
77 declareProperty("A7R1U_CurrentLVDT",m_Config.GeometryConfig.CfgRPosParams[4].fCurrentLVDTmm=7.0*CLHEP::mm);
78
79 declareProperty("A7R1L_PosType",m_Config.GeometryConfig.CfgRPosParams[5].eRPPosType=ERPPT_ACTIVE);
80 declareProperty("A7R1L_MDGeometryType",m_Config.GeometryConfig.CfgRPosParams[5].eMDGeoType=EGST_IDEALGEOMETRY);
81 declareProperty("A7R1L_ODGeometryType",m_Config.GeometryConfig.CfgRPosParams[5].eODGeoType=EGST_IDEALGEOMETRY);
82 declareProperty("A7R1L_MDSource",m_Config.GeometryConfig.CfgRPosParams[5].strMDConnString=string(""));
83 declareProperty("A7R1L_ODSource",m_Config.GeometryConfig.CfgRPosParams[5].strODConnString=string(""));
84 declareProperty("A7R1L_CurrentLVDT",m_Config.GeometryConfig.CfgRPosParams[5].fCurrentLVDTmm=-7.0*CLHEP::mm);
85
86 declareProperty("B7R1U_PosType",m_Config.GeometryConfig.CfgRPosParams[6].eRPPosType=ERPPT_ACTIVE);
87 declareProperty("B7R1U_MDGeometryType",m_Config.GeometryConfig.CfgRPosParams[6].eMDGeoType=EGST_IDEALGEOMETRY);
88 declareProperty("B7R1U_ODGeometryType",m_Config.GeometryConfig.CfgRPosParams[6].eODGeoType=EGST_IDEALGEOMETRY);
89 declareProperty("B7R1U_MDSource",m_Config.GeometryConfig.CfgRPosParams[6].strMDConnString=string(""));
90 declareProperty("B7R1U_ODSource",m_Config.GeometryConfig.CfgRPosParams[6].strODConnString=string(""));
91 declareProperty("B7R1U_CurrentLVDT",m_Config.GeometryConfig.CfgRPosParams[6].fCurrentLVDTmm=7.0*CLHEP::mm);
92
93 declareProperty("B7R1L_PosType",m_Config.GeometryConfig.CfgRPosParams[7].eRPPosType=ERPPT_ACTIVE);
94 declareProperty("B7R1L_MDGeometryType",m_Config.GeometryConfig.CfgRPosParams[7].eMDGeoType=EGST_IDEALGEOMETRY);
95 declareProperty("B7R1L_ODGeometryType",m_Config.GeometryConfig.CfgRPosParams[7].eODGeoType=EGST_IDEALGEOMETRY);
96 declareProperty("B7R1L_MDSource",m_Config.GeometryConfig.CfgRPosParams[7].strMDConnString=string(""));
97 declareProperty("B7R1L_ODSource",m_Config.GeometryConfig.CfgRPosParams[7].strODConnString=string(""));
98 declareProperty("B7R1L_CurrentLVDT",m_Config.GeometryConfig.CfgRPosParams[7].fCurrentLVDTmm=-7.0*CLHEP::mm);
99
100 declareProperty("bIsTransformInStation", m_Config.bIsTransformInStation, "status if transformation in station will be calculated");
101 declareProperty("bIsTransformInDetector", m_Config.bIsTransformInDetector, "status if transformation in station will be calculated");
102
103 declareProperty("pointTransformInDetectorB7L1U", m_Config.pointTransformInDetectorB7L1U, "transformation point in the detectorfor B7L1U RP");
104 declareProperty("pointTransformInDetectorB7L1L", m_Config.pointTransformInDetectorB7L1L, "transformation point in the detectorfor B7L1L RP");
105 declareProperty("pointTransformInDetectorA7L1U", m_Config.pointTransformInDetectorA7L1U, "transformation point in the detectorfor A7L1U RP");
106 declareProperty("pointTransformInDetectorA7L1L", m_Config.pointTransformInDetectorA7L1L, "transformation point in the detectorfor A7L1L RP");
107 declareProperty("pointTransformInDetectorA7R1U", m_Config.pointTransformInDetectorA7R1U, "transformation point in the detectorfor A7R1U RP");
108 declareProperty("pointTransformInDetectorA7R1L", m_Config.pointTransformInDetectorA7R1L, "transformation point in the detectorfor A7R1L RP");
109 declareProperty("pointTransformInDetectorB7R1U", m_Config.pointTransformInDetectorB7R1U, "transformation point in the detectorfor B7R1U RP");
110 declareProperty("pointTransformInDetectorB7R1L", m_Config.pointTransformInDetectorB7R1L, "transformation point in the detectorfor B7R1L RP");
111
112 declareProperty("vecTransformInDetectorB7L1U", m_Config.vecTransformInDetectorB7L1U, "transformation data in the detectorfor B7L1U RP");
113 declareProperty("vecTransformInDetectorB7L1L", m_Config.vecTransformInDetectorB7L1L, "transformation data in the detectorfor B7L1L RP");
114 declareProperty("vecTransformInDetectorA7L1U", m_Config.vecTransformInDetectorA7L1U, "transformation data in the detectorfor A7L1U RP");
115 declareProperty("vecTransformInDetectorA7L1L", m_Config.vecTransformInDetectorA7L1L, "transformation data in the detectorfor A7L1L RP");
116 declareProperty("vecTransformInDetectorA7R1U", m_Config.vecTransformInDetectorA7R1U, "transformation data in the detectorfor A7R1U RP");
117 declareProperty("vecTransformInDetectorA7R1L", m_Config.vecTransformInDetectorA7R1L, "transformation data in the detectorfor A7R1L RP");
118 declareProperty("vecTransformInDetectorB7R1U", m_Config.vecTransformInDetectorB7R1U, "transformation data in the detectorfor B7R1U RP");
119 declareProperty("vecTransformInDetectorB7R1L", m_Config.vecTransformInDetectorB7R1L, "transformation data in the detectorfor B7R1L RP");
120
121 declareProperty("vecTransformInStationB7L1U", m_Config.vecTransformInStationB7L1U, "transformation data in the stationfor B7L1U RP");
122 declareProperty("vecTransformInStationB7L1L", m_Config.vecTransformInStationB7L1L, "transformation data in the stationfor B7L1L RP");
123 declareProperty("vecTransformInStationA7L1U", m_Config.vecTransformInStationA7L1U, "transformation data in the stationfor A7L1U RP");
124 declareProperty("vecTransformInStationA7L1L", m_Config.vecTransformInStationA7L1L, "transformation data in the stationfor A7L1L RP");
125 declareProperty("vecTransformInStationA7R1U", m_Config.vecTransformInStationA7R1U, "transformation data in the stationfor A7R1U RP");
126 declareProperty("vecTransformInStationA7R1L", m_Config.vecTransformInStationA7R1L, "transformation data in the stationfor A7R1L RP");
127 declareProperty("vecTransformInStationB7R1U", m_Config.vecTransformInStationB7R1U, "transformation data in the stationfor B7R1U RP");
128 declareProperty("vecTransformInStationB7R1L", m_Config.vecTransformInStationB7R1L, "transformation data in the stationfor B7R1L RP");
129}
@ ERPPT_ACTIVE
@ EGST_IDEALGEOMETRY
@ EMT_NOMINAL
CONFIGURATION m_Config

◆ ~ALFA_DetectorTool()

ALFA_DetectorTool::~ALFA_DetectorTool ( )
finaloverridevirtualdefault

Member Function Documentation

◆ align()

StatusCode ALFA_DetectorTool::align ( IOVSVC_CALLBACK_ARGS )
finaloverridevirtual

Definition at line 187 of file ALFA_DetectorTool.cxx.

188{
189 int nChannel;
190 StatusCode sc=StatusCode::SUCCESS;
191 const CondAttrListCollection* listAttrColl;
193
194 ALIGNPARAMETERS AlignParams;
195
196 if(((eMetrologyType)m_Config.GeometryConfig.eRPMetrologyGeoType)==EMT_SWCORRECTIONS){
197 // debug printout of global positions:
198 StoredPhysVol* pStPhysRPBox=nullptr;
199 sc=detStore()->retrieve(pStPhysRPBox,"StRPBox[03]");
200 if(sc.isSuccess()){
201 const GeoFullPhysVol* pPhysRPBox=pStPhysRPBox->getPhysVol();
202 const GeoTrf::Transform3D& xf= pPhysRPBox->getAbsoluteTransform();
203
204 ATH_MSG_INFO("Translation of RPBOX: "<< xf.translation());
205 }
206
207 if(detStore()->retrieve(listAttrColl,COOLFOLDER_DETSWCORR )==StatusCode::SUCCESS){
208 for(iterAttr=listAttrColl->begin();iterAttr!=listAttrColl->end();++iterAttr){
209 nChannel=iterAttr->first; //RPot ID
210 AlignParams.fXOffset[nChannel]=((iterAttr->second)[0]).data<float>();
211 AlignParams.fTheta[nChannel]=((iterAttr->second)[1]).data<float>();
212 AlignParams.fYOffset[nChannel]=((iterAttr->second)[2]).data<float>();
213 }
214
215 m_pALFADetectorFactory->UpdateTransforms(&AlignParams);
216
217 // debug printout of global positions:
218 sc=detStore()->retrieve(pStPhysRPBox,"StRPBox[03]");
219 if(sc.isSuccess()){
220 const GeoFullPhysVol* pPhysRPBox=pStPhysRPBox->getPhysVol();
221 const GeoTrf::Transform3D& xf= pPhysRPBox->getAbsoluteTransform();
222 ATH_MSG_INFO("Translation of RPBOX after update: "<< xf.translation());
223 }
224 }
225 else{
226 ATH_MSG_ERROR("Folder '"<<"/FWD/ALFA/position_calibration"<<"' not found");
227 sc=StatusCode::FAILURE;
228 }
229 }
230
231 return sc;
232}
struct _ALIGNPARAMETERS ALIGNPARAMETERS
#define COOLFOLDER_DETSWCORR
@ EMT_SWCORRECTIONS
#define ATH_MSG_ERROR(x)
#define ATH_MSG_INFO(x)
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
static Double_t sc
ALFA_DetectorFactory * m_pALFADetectorFactory
const_iterator end() const
const_iterator begin() const
Access to Chan/AttributeList pairs via iterators.
ChanAttrListMap::const_iterator const_iterator
GeoFullPhysVol * getPhysVol()
Destructor.
::StatusCode StatusCode
StatusCode definition for legacy code.
retrieve(aClass, aKey=None)
Definition PyKernel.py:110
double fTheta[RPOTSCNT]
double fYOffset[RPOTSCNT]
double fXOffset[RPOTSCNT]

◆ ATLAS_NOT_THREAD_SAFE() [1/2]

virtual StatusCode registerCallback GeoModelTool::ATLAS_NOT_THREAD_SAFE ( )
inlineoverridevirtualinherited

Reimplemented in BCMPrimeDetectorTool, HGTD_DetectorTool, HGTD_GMX_DetectorTool, PLRDetectorTool, and TRT_DetectorTool.

Definition at line 26 of file GeoModelTool.h.

26{return StatusCode::FAILURE;}

◆ ATLAS_NOT_THREAD_SAFE() [2/2]

virtual StatusCode align GeoModelTool::ATLAS_NOT_THREAD_SAFE ( IOVSVC_CALLBACK_ARGS )
inlineoverridevirtualinherited

Reimplemented in HGTD_DetectorTool, LArDetectorToolNV, PixelDetectorTool, SCT_DetectorTool, and TRT_DetectorTool.

Definition at line 27 of file GeoModelTool.h.

27{return StatusCode::SUCCESS;}

◆ clear()

◆ create()

StatusCode ALFA_DetectorTool::create ( )
finaloverridevirtual

Definition at line 133 of file ALFA_DetectorTool.cxx.

134{
135 ATH_MSG_INFO("Building ALFA_ geometry");
136
137 if(((eMetrologyType)m_Config.GeometryConfig.eRPMetrologyGeoType)==EMT_SWCORRECTIONS){
138 CHECK(m_iovDbSvc.retrieve());
139 }
140
141 // Retrieve GeoModel Experiment
142 GeoModelExperiment * theExpt{nullptr};
143 ATH_CHECK(detStore()->retrieve(theExpt, "ATLAS"));
144
145 GeoPhysVol *world=theExpt->getPhysVol();
146
147 // Get pointer to the RDBAccessSvc
148 // Use this pointer later for Geometry DB access
149 SmartIF<IRDBAccessSvc> raccess{Gaudi::svcLocator()->service("RDBAccessSvc")};
150 ATH_CHECK(raccess.isValid());
151
152 // Construct Factory
153 m_pALFADetectorFactory=new ALFA_DetectorFactory(detStore().operator->(),raccess,&m_Config);
154
155 // Build geometry
156 m_pALFADetectorFactory->create(world);
157
158 // Add ALFA_ manager to the Store Gate and GeoModel Experiment
159 theExpt->addManager(m_pALFADetectorFactory->getDetectorManager());
160 ATH_CHECK(detStore()->record(m_pALFADetectorFactory->getDetectorManager()
161 , m_pALFADetectorFactory->getDetectorManager()->getName()));
162
163 return StatusCode::SUCCESS;
164}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define CHECK(...)
Evaluate an expression and check for errors.
ServiceHandle< IIOVDbSvc > m_iovDbSvc
GeoPhysVol * getPhysVol()
Destructor.
void addManager(const GeoVDetectorManager *)

◆ manager() [1/2]

virtual GeoVDetectorManager * GeoModelTool::manager ( )
inlinevirtualinherited

Definition at line 22 of file GeoModelTool.h.

22{return m_detector;}
GeoVDetectorManager * m_detector

◆ manager() [2/2]

virtual const GeoVDetectorManager * GeoModelTool::manager ( ) const
inlinevirtualinherited

Definition at line 23 of file GeoModelTool.h.

23{return m_detector;}

◆ registerCallback()

StatusCode ALFA_DetectorTool::registerCallback ( )
finaloverridevirtual

Definition at line 166 of file ALFA_DetectorTool.cxx.

167{
168 StatusCode sc=StatusCode::FAILURE;
169
170 if(((eMetrologyType)m_Config.GeometryConfig.eRPMetrologyGeoType)==EMT_SWCORRECTIONS) {
171 const DataHandle<CondAttrListCollection> DataPtr;
172 sc=detStore()->regFcn(&IGeoModelTool::align,dynamic_cast<IGeoModelTool*>(this), DataPtr, COOLFOLDER_DETSWCORR, true);
173 if(sc!=StatusCode::SUCCESS) {
174 ATH_MSG_ERROR("Cannot register COOL callback for folder '"<<COOLFOLDER_DETSWCORR <<"'");
175 }
176 else {
177 ATH_MSG_INFO("Call-back to ALFA_DetectorTool::align() against folder "<< COOLFOLDER_DETSWCORR <<" registered ");
178 }
179 }
180 else {
181 ATH_MSG_INFO("No callback registed");
182 }
183
184 return sc;
185}

Member Data Documentation

◆ m_Config

CONFIGURATION ALFA_DetectorTool::m_Config {}
private

Definition at line 31 of file ALFA_DetectorTool.h.

31{};

◆ m_detector

GeoVDetectorManager* GeoModelTool::m_detector {nullptr}
protectedinherited

Definition at line 30 of file GeoModelTool.h.

30{nullptr};

◆ m_iovDbSvc

ServiceHandle< IIOVDbSvc > ALFA_DetectorTool::m_iovDbSvc {this, "IOVDbSvc", "IOVDbSvc"}
private

Definition at line 33 of file ALFA_DetectorTool.h.

33{this, "IOVDbSvc", "IOVDbSvc"};

◆ m_pALFADetectorFactory

ALFA_DetectorFactory* ALFA_DetectorTool::m_pALFADetectorFactory {nullptr}
private

Definition at line 32 of file ALFA_DetectorTool.h.

32{nullptr};

The documentation for this class was generated from the following files: