ATLAS Offline Software
GeoDBUtils.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef GeoDBUtils_h_
6 #define GeoDBUtils_h_
7 
10 
14 #include <string>
15 #include "GeoModelKernel/GeoDefinitions.h"
16 #include "GaudiKernel/SystemOfUnits.h"
17 
18 
19 class GeoDBUtils {
20 
21  public:
22 
23  inline static const IRDBRecord *getTransformRecord(IRDBRecordset_ptr positionRecSet, const std::string & key) {
24  for (unsigned int s=0;s<positionRecSet->size(); s++) {
25  const IRDBRecord *currentRec= (*positionRecSet)[s];
26  if (key == currentRec->getString("NAME")) {
27  return currentRec;
28  }
29  }
30  return NULL;
31  }
32 
33  inline static GeoTrf::Transform3D getTransform (const IRDBRecord *currentRec) {
34  double x = currentRec->getDouble("TRANSX")*Gaudi::Units::mm;
35  double y = currentRec->getDouble("TRANSY")*Gaudi::Units::mm;
36  double z = currentRec->getDouble("TRANSZ")*Gaudi::Units::mm;
37  double theta = currentRec->getDouble("THETA")*Gaudi::Units::rad;
38  double phi = currentRec->getDouble("PHI")*Gaudi::Units::rad;
39  double rotationAngle = currentRec->getDouble("ROTATIONANGLE")*Gaudi::Units::rad;
40 
42  return GeoTrf::Translate3D(x,y,z)*GeoTrf::Rotate3D(rotationAngle,axis);
43  }
44 
45 };
46 #endif
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
GeoDBUtils::getTransformRecord
static const IRDBRecord * getTransformRecord(IRDBRecordset_ptr positionRecSet, const std::string &key)
Definition: GeoDBUtils.h:23
IRDBRecord::getString
virtual const std::string & getString(const std::string &fieldName) const =0
Get string field value.
theta
Scalar theta() const
theta method
Definition: AmgMatrixBasePlugin.h:71
yodamerge_tmp.axis
list axis
Definition: yodamerge_tmp.py:241
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
x
#define x
GeoDBUtils::getTransform
static GeoTrf::Transform3D getTransform(const IRDBRecord *currentRec)
Definition: GeoDBUtils.h:33
GeoPrimitives.h
IRDBAccessSvc.h
Definition of the abstract IRDBAccessSvc interface.
z
#define z
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
IRDBRecordset_ptr
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
Definition: IRDBAccessSvc.h:25
GeoDBUtils
Ensure that the extensions for the Vector3D are properly loaded.
Definition: GeoDBUtils.h:19
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
python.SystemOfUnits.mm
int mm
Definition: SystemOfUnits.py:83
IRDBRecord.h
Definition of the abstract IRDBRecord interface.
y
#define y
IRDBRecord
IRDBRecord is one record in the IRDBRecordset object.
Definition: IRDBRecord.h:27
IRDBRecord::getDouble
virtual double getDouble(const std::string &fieldName) const =0
Get double field value.
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
IRDBRecordset.h
Definition of the abstract IRDBRecordset interface.
python.SystemOfUnits.rad
int rad
Definition: SystemOfUnits.py:111
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37