ATLAS Offline Software
MuonTrkAEOTDecorationAlg.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
7 #include "StoreGate/ReadHandle.h"
8 
9 
11 
13  ATH_CHECK(m_idHelperSvc.retrieve());
14 
18 
21 
22  return StatusCode::SUCCESS;
23  }
24 
25  StatusCode MuonTrkAEOTDecorationAlg::execute(const EventContext& ctx) const {
26  SG::ReadHandle trkCont{m_TrkContainer,ctx};
27  if (!trkCont.isValid()) {
28  ATH_MSG_FATAL("Failed to load track collection "<<m_TrkContainer.fullKey());
29  return StatusCode::FAILURE;
30  }
31 
37 
38  using namespace Muon::MuonStationIndex;
39  for (const xAOD::TrackParticle* tp : *trkCont) {
40 
41  std::vector<std::vector<unsigned int>>& chId = acc_ChId(*tp);
42  std::vector<float>& deltaTrans = acc_DeltaTrans(*tp);
43  std::vector<float>& sigmaDeltaTrans = acc_SigmaDeltaTrans(*tp);
44  std::vector<float>& deltaAngle = acc_deltaAngle(*tp);
45  std::vector<float>& sigmaDeltaAngle = acc_sigmaDeltaAngle(*tp);
46 
47  const Trk::Track* trk = tp->track();
48  if (!trk || !trk->trackStateOnSurfaces()){
49  ATH_MSG_DEBUG("Track has no TSOS?");
50  continue;
51  }
52  for (const Trk::TrackStateOnSurface* tsos : *trk->trackStateOnSurfaces()) {
53  if (!tsos->type(Trk::TrackStateOnSurface::Alignment)) continue;
54  const Trk::AlignmentEffectsOnTrack* aeot = tsos->alignmentEffectsOnTrack();
55  if (!aeot) continue;
56  std::set<unsigned int> chIdSet{};
57  for (const Identifier& id : aeot->vectorOfAffectedTSOS()) {
58  if (!id.is_valid() || !m_idHelperSvc->isMuon(id)) continue;
59  chIdSet.insert(toInt(m_idHelperSvc->chamberIndex(id)));
60  }
61  std::vector<unsigned int> chIdVec{};
62  chIdVec.insert(chIdVec.end(), chIdSet.begin(), chIdSet.end());
63  chId.push_back(std::move(chIdVec));
64  deltaTrans.push_back(aeot->deltaTranslation());
65  sigmaDeltaTrans.push_back(aeot->sigmaDeltaTranslation());
66  deltaAngle.push_back(aeot->deltaAngle());
67  sigmaDeltaAngle.push_back(aeot->sigmaDeltaAngle());
68  }
69  }
70  return StatusCode::SUCCESS;
71  }
72 
MuonTrkAEOTDecorationAlg::initialize
virtual StatusCode initialize() override
Definition: MuonTrkAEOTDecorationAlg.cxx:10
MuonTrkAEOTDecorationAlg::m_TrkContainer
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_TrkContainer
Definition: MuonTrkAEOTDecorationAlg.h:30
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
Muon::MuonStationIndex
Definition: MuonStationIndex.h:13
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
MuonTrkAEOTDecorationAlg::m_deltaTransKey
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_deltaTransKey
Definition: MuonTrkAEOTDecorationAlg.h:35
Trk::Track::trackStateOnSurfaces
const Trk::TrackStates * trackStateOnSurfaces() const
return a pointer to a const DataVector of const TrackStateOnSurfaces.
Trk::AlignmentEffectsOnTrack::vectorOfAffectedTSOS
const std::vector< Identifier > & vectorOfAffectedTSOS() const
Returns a vector of the affected TSOS in the track.
Definition: AlignmentEffectsOnTrack.h:115
ParticleTest.tp
tp
Definition: ParticleTest.py:25
Trk::AlignmentEffectsOnTrack::deltaAngle
double deltaAngle() const
returns the
Definition: AlignmentEffectsOnTrack.h:103
Trk::AlignmentEffectsOnTrack
Class to represent misalignments or 'discontinuities' on tracks These have a surface where the z axis...
Definition: AlignmentEffectsOnTrack.h:24
Trk::TrackStateOnSurface::Alignment
@ Alignment
This TSOS contains a Trk::AlignmentEffectsOnTrack.
Definition: TrackStateOnSurface.h:150
MuonTrkAEOTDecorationAlg.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
SG::WriteDecorHandle
Handle class for adding a decoration to an object.
Definition: StoreGate/StoreGate/WriteDecorHandle.h:100
WriteDecorHandle.h
Handle class for adding a decoration to an object.
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
MuonTrkAEOTDecorationAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition: MuonTrkAEOTDecorationAlg.cxx:25
Trk::TrackStateOnSurface
represents the track state (measurement, material, fit parameters and quality) at a surface.
Definition: TrackStateOnSurface.h:71
MuonTrkAEOTDecorationAlg::m_chIdKey
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_chIdKey
Definition: MuonTrkAEOTDecorationAlg.h:33
SG::WriteDecorHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
MuonTrkAEOTDecorationAlg::m_deltaAngleKey
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_deltaAngleKey
Definition: MuonTrkAEOTDecorationAlg.h:40
Trk::AlignmentEffectsOnTrack::sigmaDeltaTranslation
double sigmaDeltaTranslation() const
returns the
Definition: AlignmentEffectsOnTrack.h:97
MuonTrkAEOTDecorationAlg::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MuonTrkAEOTDecorationAlg.h:28
Trk::AlignmentEffectsOnTrack::deltaTranslation
double deltaTranslation() const
returns the
Definition: AlignmentEffectsOnTrack.h:91
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:44
ReadHandle.h
Handle class for reading from StoreGate.
Muon::MuonStationIndex::toInt
constexpr int toInt(const EnumType enumVal)
Definition: MuonStationIndex.h:61
Trk::AlignmentEffectsOnTrack::sigmaDeltaAngle
double sigmaDeltaAngle() const
returns the
Definition: AlignmentEffectsOnTrack.h:109
MuonTrkAEOTDecorationAlg::m_sigmaDeltaAngleKey
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_sigmaDeltaAngleKey
Definition: MuonTrkAEOTDecorationAlg.h:42
MuonTrkAEOTDecorationAlg::m_sigmaDeltaTransKey
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_sigmaDeltaTransKey
Definition: MuonTrkAEOTDecorationAlg.h:37
Identifier
Definition: IdentifierFieldParser.cxx:14