5 #include "GeoModelHelpers/throwExcept.h"
16 const MeasType* unCalibMeas) {
20 hash = unCalibMeas->measurementHash();
22 hash = unCalibMeas->layerHash();
24 return unCalibMeas->readoutElement()->getChamber()->globalToLocalTrans(gctx) *
25 unCalibMeas->readoutElement()->localToGlobalTrans(gctx,
hash);
31 if (!meas)
return nullptr;
43 THROW_EXCEPTION(
"Unsupported measurement given "<<
typeid(*meas).name());
54 return toChamberTransform(gctx, dc).translation();
57 return toChamberTransform(gctx, strip) *(strip->localPosition<1>()[0] * Amg::Vector3D::UnitX());
60 return toChamberTransform(gctx, strip) *(strip->localPosition<1>()[0] * Amg::Vector3D::UnitX());
62 THROW_EXCEPTION(
"Measurement "<<
typeid(*meas).name()<<
" is not supported");
71 return toChamberTransform(gctx,dc).linear() * Amg::Vector3D::UnitZ();
74 return toChamberTransform(gctx, strip).linear() * Amg::Vector3D::UnitY();
79 if (strip->measuresPhi()) {
80 dir.block<2,1>(0,0) = strip->readoutElement()->stripLayout(strip->gasGap()).stripDir(strip->channelNumber());
84 THROW_EXCEPTION(
"Measurement "<<
typeid(*meas).name()<<
" is not supported");
92 return toChamberTransform(gctx,dc).linear() * Amg::Vector3D::UnitY();
95 return toChamberTransform(gctx, strip).linear() * Amg::Vector3D::UnitX();
100 if (strip->measuresPhi()) {
101 dir.block<2,1>(0,0) = strip->readoutElement()->stripLayout(strip->gasGap()).stripNormal(strip->channelNumber());
105 THROW_EXCEPTION(
"Measurement "<<
typeid(*meas).name()<<
" is not supported");