From b9b5fbfcfc04da79d26219102abc7ed31d7e45c9 Mon Sep 17 00:00:00 2001 From: Jing Chen <jing.chen@cern.ch> Date: Wed, 22 May 2019 12:40:01 +0000 Subject: [PATCH] Apply sTGCSimHit and MMSimHit to "DetectorDescription" (ATLASSIM-3711, ATLASSIM-3755) --- .../GeoAdaptors/GeoAdaptors/GeoMuonHits.h | 17 +++++---- .../GeoAdaptors/GeoAdaptors/GeoMuonHits.icc | 38 +++++++++---------- .../src/MuonHitRelocation.cxx | 31 +++++++-------- 3 files changed, 43 insertions(+), 43 deletions(-) diff --git a/DetectorDescription/GeoModel/GeoAdaptors/GeoAdaptors/GeoMuonHits.h b/DetectorDescription/GeoModel/GeoAdaptors/GeoAdaptors/GeoMuonHits.h index 12aabea82b9..a6a683b7707 100755 --- a/DetectorDescription/GeoModel/GeoAdaptors/GeoAdaptors/GeoMuonHits.h +++ b/DetectorDescription/GeoModel/GeoAdaptors/GeoAdaptors/GeoMuonHits.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef GEOADAPTORS_GEOMUONHITS_H @@ -32,7 +32,8 @@ class MDTSimHit; class RPCSimHit; class TGCSimHit; class CSCSimHit; -class GenericMuonSimHit; +class sTGCSimHit; +class MMSimHit; @@ -156,7 +157,7 @@ class GeoMMHit { public: // Constructor: - GeoMMHit(const GenericMuonSimHit & h); + GeoMMHit(const MMSimHit & h); // Get the absolute global position: Amg::Vector3D getGlobalPosition() const; @@ -168,7 +169,7 @@ class GeoMMHit { Amg::Vector3D getTrkGlobalPosition() const; // Underlying hit. - const GenericMuonSimHit &data() const { return *m_hit;} + const MMSimHit &data() const { return *m_hit;} // Is this hit OK? operator bool () const { return s_man; } @@ -178,7 +179,7 @@ class GeoMMHit { private: static void init(); - const GenericMuonSimHit *m_hit; + const MMSimHit *m_hit; static const MuonGM::MuonDetectorManager* s_man; static const MmIdHelper* s_mmID; @@ -189,13 +190,13 @@ class GeosTGCHit { public: // Constructor: - GeosTGCHit(const GenericMuonSimHit & h); + GeosTGCHit(const sTGCSimHit & h); // Get the absolute global position: Amg::Vector3D getGlobalPosition() const; // Underlying hit. - const GenericMuonSimHit &data() const { return *m_hit;} + const sTGCSimHit &data() const { return *m_hit;} // Is this hit OK? operator bool () const { return s_man; } @@ -205,7 +206,7 @@ class GeosTGCHit { private: static void init(); - const GenericMuonSimHit *m_hit; + const sTGCSimHit *m_hit; static const MuonGM::MuonDetectorManager* s_man; static const sTgcIdHelper* s_stgcID; diff --git a/DetectorDescription/GeoModel/GeoAdaptors/GeoAdaptors/GeoMuonHits.icc b/DetectorDescription/GeoModel/GeoAdaptors/GeoAdaptors/GeoMuonHits.icc index 284b1c4588b..062e704e241 100755 --- a/DetectorDescription/GeoModel/GeoAdaptors/GeoAdaptors/GeoMuonHits.icc +++ b/DetectorDescription/GeoModel/GeoAdaptors/GeoAdaptors/GeoMuonHits.icc @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #include "StoreGate/StoreGateSvc.h" @@ -38,8 +38,10 @@ #include "MuonSimEvent/CscHitIdHelper.h" #include "MuonReadoutGeometry/CscReadoutElement.h" -#include "MuonSimEvent/GenericMuonSimHitCollection.h" -#include "MuonSimEvent/GenericMuonSimHit.h" +#include "MuonSimEvent/MMSimHitCollection.h" +#include "MuonSimEvent/MMSimHit.h" +#include "MuonSimEvent/sTGCSimHitCollection.h" +#include "MuonSimEvent/sTGCSimHit.h" #include "MuonSimEvent/MicromegasHitIdHelper.h" #include "MuonSimEvent/sTgcHitIdHelper.h" #include "MuonSimEvent/sTgcSimIdToOfflineId.h" @@ -262,14 +264,14 @@ inline void GeoMMHit::init() s_mmID = s_man->mmIdHelper(); } -inline GeoMMHit::GeoMMHit (const GenericMuonSimHit & h) { +inline GeoMMHit::GeoMMHit (const MMSimHit & h) { m_hit = &h; if (!s_mmID) init(); } inline Amg::Vector3D GeoMMHit::getGlobalPosition() const { - HitID hitid = m_hit->GenericId(); + HitID hitid = m_hit->MMId(); MM_SimIdToOfflineId simToOffline(*s_mmID); Identifier offid = simToOffline.convert(hitid); @@ -285,16 +287,14 @@ inline Amg::Vector3D GeoMMHit::getGlobalPosition() const { return Amg::Vector3D(0,0,0); } - Amg::Vector3D xU; - Amg::Vector3D localHit(m_hit->localPosition().x(),m_hit->localPosition().y(),m_hit->localPosition().z()); - xU = mmdet->localToGlobalCoords(localHit,offid); + Amg::Vector3D xU(m_hit->globalPosition().x(),m_hit->globalPosition().y(),m_hit->globalPosition().z()); return xU; } inline Amg::Vector3D GeoMMHit::getTrkGlobalPosition() const { - HitID hitid = m_hit->GenericId(); + HitID hitid = m_hit->MMId(); MM_SimIdToOfflineId simToOffline(*s_mmID); Identifier offid = simToOffline.convert(hitid); @@ -317,8 +317,8 @@ inline Amg::Vector3D GeoMMHit::getTrkGlobalPosition() const { } inline Amg::Vector3D GeoMMHit::getTrkLocalPosition() const { -/* - HitID hitid = m_hit->GenericId(); + + HitID hitid = m_hit->MMId(); MM_SimIdToOfflineId simToOffline(*s_mmID); Identifier offid = simToOffline.convert(hitid); @@ -331,12 +331,12 @@ inline Amg::Vector3D GeoMMHit::getTrkLocalPosition() const { { std::cerr<<"MM readout element not found for Id = " <<s_mmID->show_to_string(offid)<<std::endl; - return Amg::Vector3D(0,0,0); } - Amg::Vector3D xU; -*/ - Amg::Vector3D localHit(0.,m_hit->localPosition().y(),m_hit->localPosition().z()); + Amg::Transform3D gToL = mmdet->absTransform().inverse(); + Amg::Vector3D hpos(m_hit->globalPosition().x(),m_hit->globalPosition().y(),m_hit->globalPosition().z()); + Amg::Vector3D locp = gToL*hpos; + Amg::Vector3D localHit(0.,locp.y(),locp.z()); Amg::Vector3D trkLocHit=Amg::AngleAxis3D(90.*CLHEP::deg,Amg::Vector3D(0.,1.,0.))*localHit; return trkLocHit; @@ -348,14 +348,14 @@ inline void GeosTGCHit::init() if(detStore->retrieve(s_man,"Muon").isSuccess()) s_stgcID = s_man->stgcIdHelper(); } -inline GeosTGCHit::GeosTGCHit (const GenericMuonSimHit & h) { +inline GeosTGCHit::GeosTGCHit (const sTGCSimHit & h) { m_hit = &h; if (!s_stgcID) init(); } inline Amg::Vector3D GeosTGCHit::getGlobalPosition() const { - HitID hitid = m_hit->GenericId(); + HitID hitid = m_hit->sTGCId(); sTgcSimIdToOfflineId simToOffline(*s_stgcID); Identifier offid = simToOffline.convert(hitid); @@ -371,9 +371,7 @@ inline Amg::Vector3D GeosTGCHit::getGlobalPosition() const { return Amg::Vector3D(0,0,0); } - Amg::Vector3D xU; - Amg::Vector3D localHit(m_hit->localPosition().x(),m_hit->localPosition().y(),m_hit->localPosition().z()); - xU = stgcdet->localToGlobalCoords(localHit,offid); + Amg::Vector3D xU(m_hit->globalPosition().x(),m_hit->globalPosition().y(),m_hit->globalPosition().z()); return xU; diff --git a/MuonSpectrometer/MuonGeoModelTest/src/MuonHitRelocation.cxx b/MuonSpectrometer/MuonGeoModelTest/src/MuonHitRelocation.cxx index 277065c4aaf..0d4cea801ce 100644 --- a/MuonSpectrometer/MuonGeoModelTest/src/MuonHitRelocation.cxx +++ b/MuonSpectrometer/MuonGeoModelTest/src/MuonHitRelocation.cxx @@ -13,7 +13,8 @@ #include "MuonSimEvent/RPCSimHitCollection.h" #include "MuonSimEvent/TGCSimHitCollection.h" #include "MuonSimEvent/CSCSimHitCollection.h" -#include "MuonSimEvent/GenericMuonSimHitCollection.h" +#include "MuonSimEvent/MMSimHitCollection.h" +#include "MuonSimEvent/sTGCSimHitCollection.h" #include "MuonSimEvent/MDTSimHit.h" #include "MuonSimEvent/RPCSimHit.h" #include "MuonSimEvent/TGCSimHit.h" @@ -436,10 +437,10 @@ StatusCode MuonHitRelocation::execute() { // m_stmuonHelper=sTgcHitIdHelper::GetHelper(); - const DataHandle<GenericMuonSimHitCollection> stgc_collection; + const DataHandle<sTGCSimHitCollection> stgc_collection; if (evtStore()->retrieve(stgc_collection,"sTGCSensitiveDetector")==StatusCode::SUCCESS) { - ATH_MSG_VERBOSE("Generic Muon hit Collection sTGC found with size = "<<stgc_collection->size() ); - for(GenericMuonSimHitConstIterator i_hit=stgc_collection->begin() ; i_hit!=stgc_collection->end() ; ++i_hit) { + ATH_MSG_VERBOSE("sTGC Muon hit Collection sTGC hit found with size = "<<stgc_collection->size() ); + for(sTGCSimHitConstIterator i_hit=stgc_collection->begin() ; i_hit!=stgc_collection->end() ; ++i_hit) { GeosTGCHit ghit(*i_hit); @@ -448,12 +449,12 @@ StatusCode MuonHitRelocation::execute() { m_c->theta = direction.theta(); m_c->phi = direction.phi(); - m_c->lx = (*i_hit).localPosition().x(); - m_c->ly = (*i_hit).localPosition().y(); - m_c->lz = (*i_hit).localPosition().z(); + m_c->lx = -999; + m_c->ly = -999; + m_c->lz = -999; ATH_MSG_DEBUG(" sTGC hit - local coords "<<m_c->lx<<" "<<m_c->ly<<" "<<m_c->lz ); - const int idHit = (*i_hit).GenericId(); + const int idHit = (*i_hit).sTGCId(); //std::cout<<"TGC idHit = "<<idHit<<std::endl; Amg::Vector3D u = ghit.getGlobalPosition(); @@ -506,10 +507,10 @@ StatusCode MuonHitRelocation::execute() { // m_mmmuonHelper=MicromegasHitIdHelper::GetHelper(); - const DataHandle<GenericMuonSimHitCollection> mm_collection; + const DataHandle<MMSimHitCollection> mm_collection; if (evtStore()->retrieve(mm_collection,"MicromegasSensitiveDetector")==StatusCode::SUCCESS) { - ATH_MSG_VERBOSE("Generic Muon hit Collection (Micromegas) found with size = "<<mm_collection->size() ); - for(GenericMuonSimHitConstIterator i_hit=mm_collection->begin() ; i_hit!=mm_collection->end() ; ++i_hit) { + ATH_MSG_VERBOSE("MM Muon hit Collection (Micromegas) found with size = "<<mm_collection->size() ); + for(MMSimHitConstIterator i_hit=mm_collection->begin() ; i_hit!=mm_collection->end() ; ++i_hit) { GeoMMHit ghit(*i_hit); @@ -518,12 +519,12 @@ StatusCode MuonHitRelocation::execute() { m_c->theta = direction.theta(); m_c->phi = direction.phi(); - m_c->lx = (*i_hit).localPosition().x(); - m_c->ly = (*i_hit).localPosition().y(); - m_c->lz = (*i_hit).localPosition().z(); + m_c->lx = -999; + m_c->ly = -999; + m_c->lz = -999; ATH_MSG_DEBUG(" MM hit - local coords "<<m_c->lx<<" "<<m_c->ly<<" "<<m_c->lz ); - const int idHit = (*i_hit).GenericId(); + const int idHit = (*i_hit).MMId(); Amg::Vector3D u = ghit.getGlobalPosition(); m_c->x=u.x(); -- GitLab