diff --git a/MuonSpectrometer/MuonAlignment/MuonAlignmentData/MuonAlignmentData/sTGCAsBuiltData2.h b/MuonSpectrometer/MuonAlignment/MuonAlignmentData/MuonAlignmentData/sTGCAsBuiltData2.h index b747d2feb48672268c07788c7815a2a09551feb1..94e0ab791861e9b7d9cfcf46caa676b866b02648 100644 --- a/MuonSpectrometer/MuonAlignment/MuonAlignmentData/MuonAlignmentData/sTGCAsBuiltData2.h +++ b/MuonSpectrometer/MuonAlignment/MuonAlignmentData/MuonAlignmentData/sTGCAsBuiltData2.h @@ -12,11 +12,17 @@ #include "GeoPrimitives/GeoPrimitives.h" /** - * Container class that stores the as built parameters of the sTgcs. - * Each gasGap has its own set of corrections. -*/ - - + * @class sTGCAsBuiltData2 + * + * @brief Class holding the sTGC as built conditions data and applying it. The model consists of four parameters: + * - offset: shift of the strip layer in the precission coordinate + * - rotation: rotation of the strip plane around the origin of the local coordinate system + * - scale: correction to the pitch of the strips. + * - nonPara: correction to the non parallelism of the strips + * + * The as built parameters are applied in athenas local coordinate system. The parameters are expected in units of um and mrad + * + */ class sTGCAsBuiltData2: public AthMessaging { public: @@ -24,11 +30,13 @@ class sTGCAsBuiltData2: public AthMessaging { // returns the local positon corrected for the as built parameters Amg::Vector2D correctPosition(const Identifier& channelId, const Amg::Vector2D& pos) const; // Set the parameters of the as build model (shift, rotation, scale) - + + struct Parameters{ double offset {0.}; double rotation{0.}; double scale{0.}; + double nonPara {0.}; }; StatusCode setParameters(const Identifier& gasGapId, const Parameters& pars); diff --git a/MuonSpectrometer/MuonAlignment/MuonAlignmentData/src/sTGCAsBuiltData2.cxx b/MuonSpectrometer/MuonAlignment/MuonAlignmentData/src/sTGCAsBuiltData2.cxx index 700905f2851f9c28ef46821c39c6766c0b6ce6de..b98814e31b7fc1a14e3ead14797de1be008d799d 100644 --- a/MuonSpectrometer/MuonAlignment/MuonAlignmentData/src/sTGCAsBuiltData2.cxx +++ b/MuonSpectrometer/MuonAlignment/MuonAlignmentData/src/sTGCAsBuiltData2.cxx @@ -19,7 +19,7 @@ Amg::Vector2D sTGCAsBuiltData2::correctPosition(const Identifier& channelId, con Amg::Vector2D correctedPos = pos; Parameters pars = par_itr->second; constexpr double convScale = 1.e-3; // parameters are stored in um and mrad therefore dividing by 1000 - correctedPos.x() = pos.x() + (pars.offset * convScale + pars.rotation *convScale * pos.y() + pars.scale*convScale*pos.x()); + correctedPos.x() = pos.x() + (pars.offset * convScale + pars.rotation *convScale * pos.y() + pars.scale*convScale*pos.x() + pars.nonPara * convScale * convScale * pos.x()*pos.y()); return correctedPos; } diff --git a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondAlg/src/sTGCAsBuiltCondAlg2.cxx b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondAlg/src/sTGCAsBuiltCondAlg2.cxx index cdd848b395b742d06733164646e2ee1952dee65e..2c3c7718ae6d2039c99811274d784786db5cc0de 100644 --- a/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondAlg/src/sTGCAsBuiltCondAlg2.cxx +++ b/MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondAlg/src/sTGCAsBuiltCondAlg2.cxx @@ -92,6 +92,7 @@ StatusCode sTGCAsBuiltCondAlg2::parseDataFromJSON(const nlohmann::json& lines, pars.offset = line["offset"]; pars.rotation = line["rotation"]; pars.scale = line["scale"]; + pars.nonPara = line["nonPara"]; ATH_CHECK(effiData.setParameters(id, pars)); }