ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Reconstruction
MuonIdentification
MuonCombinedDecorationAlgs
src
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
5
#include "
MuonTrkAEOTDecorationAlg.h
"
6
#include "
StoreGate/WriteDecorHandle.h
"
7
#include "
StoreGate/ReadHandle.h
"
8
9
10
StatusCode
MuonTrkAEOTDecorationAlg::initialize
() {
11
12
ATH_CHECK
(
m_TrkContainer
.initialize());
13
ATH_CHECK
(
m_idHelperSvc
.retrieve());
14
15
ATH_CHECK
(
m_chIdKey
.initialize());
16
ATH_CHECK
(
m_deltaTransKey
.initialize());
17
ATH_CHECK
(
m_sigmaDeltaTransKey
.initialize());
18
19
ATH_CHECK
(
m_deltaAngleKey
.initialize());
20
ATH_CHECK
(
m_sigmaDeltaAngleKey
.initialize());
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
32
SG::WriteDecorHandle<xAOD::TrackParticleContainer, std::vector<std::vector<unsigned int>
>> acc_ChId{
m_chIdKey
,ctx};
33
SG::WriteDecorHandle<xAOD::TrackParticleContainer, std::vector<float>
> acc_DeltaTrans{
m_deltaTransKey
,ctx};
34
SG::WriteDecorHandle<xAOD::TrackParticleContainer, std::vector<float>
> acc_SigmaDeltaTrans{
m_sigmaDeltaTransKey
, ctx};
35
SG::WriteDecorHandle<xAOD::TrackParticleContainer, std::vector<float>
> acc_deltaAngle{
m_deltaAngleKey
, ctx};
36
SG::WriteDecorHandle<xAOD::TrackParticleContainer, std::vector<float>
> acc_sigmaDeltaAngle{
m_sigmaDeltaAngleKey
, ctx};
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
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition
AthMsgStreamMacros.h:34
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
MuonTrkAEOTDecorationAlg.h
ReadHandle.h
Handle class for reading from StoreGate.
WriteDecorHandle.h
Handle class for adding a decoration to an object.
MuonTrkAEOTDecorationAlg::m_TrkContainer
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_TrkContainer
Definition
MuonTrkAEOTDecorationAlg.h:30
MuonTrkAEOTDecorationAlg::initialize
virtual StatusCode initialize() override
Definition
MuonTrkAEOTDecorationAlg.cxx:10
MuonTrkAEOTDecorationAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition
MuonTrkAEOTDecorationAlg.cxx:25
MuonTrkAEOTDecorationAlg::m_chIdKey
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_chIdKey
Definition
MuonTrkAEOTDecorationAlg.h:33
MuonTrkAEOTDecorationAlg::m_sigmaDeltaTransKey
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_sigmaDeltaTransKey
Definition
MuonTrkAEOTDecorationAlg.h:37
MuonTrkAEOTDecorationAlg::m_deltaTransKey
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_deltaTransKey
Definition
MuonTrkAEOTDecorationAlg.h:35
MuonTrkAEOTDecorationAlg::m_sigmaDeltaAngleKey
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_sigmaDeltaAngleKey
Definition
MuonTrkAEOTDecorationAlg.h:42
MuonTrkAEOTDecorationAlg::m_deltaAngleKey
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_deltaAngleKey
Definition
MuonTrkAEOTDecorationAlg.h:40
MuonTrkAEOTDecorationAlg::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition
MuonTrkAEOTDecorationAlg.h:28
SG::ReadHandle
Definition
StoreGate/StoreGate/ReadHandle.h:67
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
SG::WriteDecorHandle
Handle class for adding a decoration to an object.
Definition
StoreGate/StoreGate/WriteDecorHandle.h:100
Trk::AlignmentEffectsOnTrack
Class to represent misalignments or 'discontinuities' on tracks These have a surface where the z axis...
Definition
AlignmentEffectsOnTrack.h:24
Trk::AlignmentEffectsOnTrack::sigmaDeltaAngle
double sigmaDeltaAngle() const
returns the
Definition
AlignmentEffectsOnTrack.h:109
Trk::AlignmentEffectsOnTrack::vectorOfAffectedTSOS
const std::vector< Identifier > & vectorOfAffectedTSOS() const
Returns a vector of the affected TSOS in the track.
Definition
AlignmentEffectsOnTrack.h:115
Trk::AlignmentEffectsOnTrack::deltaAngle
double deltaAngle() const
returns the
Definition
AlignmentEffectsOnTrack.h:103
Trk::AlignmentEffectsOnTrack::sigmaDeltaTranslation
double sigmaDeltaTranslation() const
returns the
Definition
AlignmentEffectsOnTrack.h:97
Trk::AlignmentEffectsOnTrack::deltaTranslation
double deltaTranslation() const
returns the
Definition
AlignmentEffectsOnTrack.h:91
Trk::TrackStateOnSurface
represents the track state (measurement, material, fit parameters and quality) at a surface.
Definition
TrackStateOnSurface.h:71
Trk::TrackStateOnSurface::Alignment
@ Alignment
This TSOS contains a Trk::AlignmentEffectsOnTrack.
Definition
TrackStateOnSurface.h:150
Trk::Track
The ATLAS Track class.
Definition
Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
Trk::Track::trackStateOnSurfaces
const Trk::TrackStates * trackStateOnSurfaces() const
return a pointer to a const DataVector of const TrackStateOnSurfaces.
Identifier
Definition
IdentifierFieldParser.cxx:14
Muon::MuonStationIndex
Definition
MuonStationIndex.h:14
Muon::MuonStationIndex::toInt
constexpr int toInt(const EnumType enumVal)
Definition
MuonStationIndex.h:62
xAOD::TrackParticle
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Definition
Event/xAOD/xAODTracking/xAODTracking/TrackParticle.h:13
Generated on
for ATLAS Offline Software by
1.17.0