6 #include "GeoModelKernel/GeoVFullPhysVol.h"
7 #include "GeoModelKernel/GeoPcon.h"
14 ,
double projectivityDisplacement)
15 : GeoVDetectorElement(physVol)
16 , m_descriptor(hecDescriptor)
17 , m_endcapIndex(endcap)
18 , m_projectivityDisplacement(projectivityDisplacement)
35 return Amg::Vector3D(clhepPoint.x(), clhepPoint.y(), clhepPoint.z());
39 const GeoVFullPhysVol *fullPhysVol = getMaterialGeom();
41 ? fullPhysVol->getCachedAbsoluteTransform(alignStore)
42 : fullPhysVol->getAbsoluteTransform();
47 const GeoVFullPhysVol *fullPhysVol = getMaterialGeom();
49 ? fullPhysVol->getCachedDefAbsoluteTransform(alignStore)
50 : fullPhysVol->getDefAbsoluteTransform();
56 return Amg::Vector3D(clhepPoint.x(), clhepPoint.y(), clhepPoint.z());
65 const GeoVFullPhysVol *physVol = getMaterialGeom();
66 const GeoLogVol *logVol = physVol->getLogVol();
67 const GeoShape *shape = logVol->getShape();
68 if (shape->typeID()!=GeoPcon::getClassTypeID()) {
69 throw std::runtime_error (
"HECDetectorRegion cannot compute absolute position of reference plane");
71 const GeoPcon *pcon =
static_cast<const GeoPcon *
> (shape);
72 HepGeom::Point3D<double> center(0,0,pcon->getZPlane(0));
81 HepGeom::Point3D<double> focalPos = hec2 ?
82 HepGeom::Point3D<double>(0,0,sgn*
m_descriptor->getManager()->getFocalToRef2()):
83 HepGeom::Point3D<double>(0,0,sgn*
m_descriptor->getManager()->getFocalToRef1());
84 return zRef - focalPos;