Skip to content
Snippets Groups Projects
Commit b6b12cfe authored by Adam Edward Barton's avatar Adam Edward Barton
Browse files

Merge branch 'SimCnvCtx' into 'main'

MuonSimHitConversion - Use central geometry context & don't fill the pos in station information

See merge request atlas/athena!70656
parents 89fe85dd e5df4edb
No related branches found
No related tags found
No related merge requests found
Showing with 17 additions and 19 deletions
......@@ -42,7 +42,6 @@ StatusCode xAODSimHitToMdtMeasCnvAlg::execute(const EventContext& ctx) const {
return StatusCode::FAILURE;
}
const ActsGeometryContext gctx{};
SG::WriteHandle<xAOD::MdtDriftCircleContainer> prdContainer{m_writeKey, ctx};
ATH_CHECK(prdContainer.record(std::make_unique<xAOD::MdtDriftCircleContainer>(),
std::make_unique<xAOD::MdtDriftCircleAuxContainer>()));
......@@ -65,8 +64,6 @@ StatusCode xAODSimHitToMdtMeasCnvAlg::execute(const EventContext& ctx) const {
const MuonGMR4::MdtReadoutElement* readOutEle = m_DetMgr->getMdtReadoutElement(hitId);
prd->setReadoutElement(readOutEle);
const Amg::Vector3D globTubePos = readOutEle->center(gctx, prd->measurementHash());
prd->setTubePosInStation(xAOD::toStorage(readOutEle->getChamber()->globalToLocalTrans(gctx) * globTubePos));
/// extract the resolution from the Mdt calibration data
bool bound{false};
const MuonCalib::MdtFullCalibData* tubeContants = mdtCalibData->getCalibData(hitId, msgStream());
......
......@@ -49,7 +49,6 @@ StatusCode xAODSimHitToMmMeasCnvAlg::execute(const EventContext& ctx) const {
return StatusCode::FAILURE;
}
const ActsGeometryContext gctx{};
SG::WriteHandle<xAOD::MMClusterContainer> prdContainer{m_writeKey, ctx};
ATH_CHECK(prdContainer.record(std::make_unique<xAOD::MMClusterContainer>(),
std::make_unique<xAOD::MMClusterAuxContainer>()));
......@@ -105,10 +104,6 @@ StatusCode xAODSimHitToMmMeasCnvAlg::execute(const EventContext& ctx) const {
xAOD::MeasVector<1> lClusterPos{newLocalX};
xAOD::MeasMatrix<1> lCov{uncert*uncert};
prd->setMeasurement(m_idHelperSvc->detElementHash(clusId) ,lClusterPos, lCov);
const Amg::Vector3D strip3D = lClusterPos.x() * Amg::Vector3D::UnitX();
const Amg::Transform3D& globToCenter{readOutEle->getChamber()->localToGlobalTrans(gctx)};
prd->setStripPosInStation(xAOD::toStorage(globToCenter * readOutEle->localToGlobalTrans(gctx, prd->layerHash()) * strip3D));
}
return StatusCode::SUCCESS;
......
......@@ -39,6 +39,7 @@ class xAODSimHitToMmMeasCnvAlg : public AthReentrantAlgorithm {
private:
CLHEP::HepRandomEngine* getRandomEngine(const EventContext& ctx) const;
SG::ReadHandleKey<xAOD::MuonSimHitContainer> m_readKey{this, "InputCollection", "xMmSimHits",
"Name of the new xAOD SimHit collection"};
......
......@@ -28,6 +28,7 @@ xAODSimHitToRpcMeasCnvAlg::xAODSimHitToRpcMeasCnvAlg(const std::string& name,
AthReentrantAlgorithm{name, pSvcLocator} {}
StatusCode xAODSimHitToRpcMeasCnvAlg::initialize(){
ATH_CHECK(m_geoCtxKey.initialize());
ATH_CHECK(m_readKey.initialize());
ATH_CHECK(m_writeKey.initialize());
ATH_CHECK(m_idHelperSvc.retrieve());
......@@ -47,7 +48,10 @@ StatusCode xAODSimHitToRpcMeasCnvAlg::execute(const EventContext& ctx) const {
return StatusCode::FAILURE;
}
const ActsGeometryContext gctx{};
SG::ReadHandle<ActsGeometryContext> gctxHandle{m_geoCtxKey, ctx};
ATH_CHECK(gctxHandle.isPresent());
const ActsGeometryContext& gctx{*gctxHandle};
SG::WriteHandle<xAOD::RpcStripContainer> prdContainer{m_writeKey, ctx};
ATH_CHECK(prdContainer.record(std::make_unique<xAOD::RpcStripContainer>(),
std::make_unique<xAOD::RpcStripAuxContainer>()));
......@@ -121,10 +125,7 @@ StatusCode xAODSimHitToRpcMeasCnvAlg::execute(const EventContext& ctx) const {
prd->setDoubletPhi(id_helper.doubletPhi(prdId));
prd->setMeasuresPhi(id_helper.measuresPhi(prdId));
prd->setTime(hitTime);
prd->setAmbiguityFlag(0);
const Amg::Vector3D strip3D = lPos.x() * Amg::Vector3D::UnitX();
const Amg::Transform3D globToCenter{readOutEle->getChamber()->globalToLocalTrans(gctx)};
prd->setStripPosInStation(xAOD::toStorage(globToCenter * readOutEle->localToGlobalTrans(gctx,prd->layerHash()) * strip3D));
prd->setAmbiguityFlag(0);
};
for (const xAOD::MuonSimHit* simHit : *simHitContainer) {
......
......@@ -39,6 +39,8 @@ class xAODSimHitToRpcMeasCnvAlg : public AthReentrantAlgorithm {
private:
CLHEP::HepRandomEngine* getRandomEngine(const EventContext& ctx) const;
SG::ReadHandleKey<ActsGeometryContext> m_geoCtxKey{this, "AlignmentKey", "ActsAlignment", "cond handle key"};
SG::ReadHandleKey<xAOD::MuonSimHitContainer> m_readKey{this, "InputCollection", "xRpcSimHits",
"Name of the new xAOD SimHit collection"};
......
......@@ -26,6 +26,7 @@ xAODSimHitToTgcMeasCnvAlg::xAODSimHitToTgcMeasCnvAlg(const std::string& name,
AthReentrantAlgorithm{name, pSvcLocator} {}
StatusCode xAODSimHitToTgcMeasCnvAlg::initialize(){
ATH_CHECK(m_geoCtxKey.initialize());
ATH_CHECK(m_readKey.initialize());
ATH_CHECK(m_writeKey.initialize());
ATH_CHECK(m_idHelperSvc.retrieve());
......@@ -45,7 +46,10 @@ StatusCode xAODSimHitToTgcMeasCnvAlg::execute(const EventContext& ctx) const {
return StatusCode::FAILURE;
}
const ActsGeometryContext gctx{};
SG::ReadHandle<ActsGeometryContext> gctxHandle{m_geoCtxKey, ctx};
ATH_CHECK(gctxHandle.isPresent());
const ActsGeometryContext& gctx{*gctxHandle};
SG::WriteHandle<xAOD::TgcStripContainer> prdContainer{m_writeKey, ctx};
ATH_CHECK(prdContainer.record(std::make_unique<xAOD::TgcStripContainer>(),
std::make_unique<xAOD::TgcStripAuxContainer>()));
......@@ -70,9 +74,6 @@ StatusCode xAODSimHitToTgcMeasCnvAlg::execute(const EventContext& ctx) const {
prd->setMeasuresPhi(measPhi);
const MuonGMR4::TgcReadoutElement* readOutEle = m_DetMgr->getTgcReadoutElement(hitId);
prd->setReadoutElement(readOutEle);
const Amg::Vector3D strip3D = lPos.x() * Amg::Vector3D::UnitX();
const Amg::Transform3D& globToCenter{readOutEle->getChamber()->localToGlobalTrans(gctx)};
prd->setStripPosInStation(xAOD::toStorage(globToCenter * readOutEle->localToGlobalTrans(gctx,prd->layerHash()) * strip3D));
};
auto processEtaHit = [&] (const Amg::Vector3D& locSimHitPos,
......
/*
Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
*/
#ifndef XAODMUONSIMHITCNV_xAODSimHitToTgcMeasurementCnvAlg_H
#define XAODMUONSIMHITCNV_xAODSimHitToTgcMeasurementCnvAlg_H
......@@ -40,6 +40,8 @@ class xAODSimHitToTgcMeasCnvAlg : public AthReentrantAlgorithm {
private:
CLHEP::HepRandomEngine* getRandomEngine(const EventContext& ctx) const;
SG::ReadHandleKey<ActsGeometryContext> m_geoCtxKey{this, "AlignmentKey", "ActsAlignment", "cond handle key"};
SG::ReadHandleKey<xAOD::MuonSimHitContainer> m_readKey{this, "InputCollection", "xTgcSimHits",
"Name of the new xAOD SimHit collection"};
......
......@@ -43,7 +43,6 @@ StatusCode xAODSimHitTosTGCMeasCnvAlg::execute(const EventContext& ctx) const {
return StatusCode::FAILURE;
}
const ActsGeometryContext gctx{};
SG::WriteHandle<xAOD::sTgcStripContainer> prdContainer{m_writeKey, ctx};
ATH_CHECK(prdContainer.record(std::make_unique<xAOD::sTgcStripContainer>(),
std::make_unique<xAOD::sTgcStripAuxContainer>()));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment