ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonValidation
MuonPRDTest
src
MuonTesterAlg.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
#include "
MuonTesterAlg.h
"
5
6
#include "
MuonTesterTree/TrackDetailBranches.h
"
7
#include "
MuonTesterTree/LinkerBranch.h
"
8
9
namespace
MuonVal
{
10
StatusCode
MuonTesterAlg::initialize
(){
11
ATH_CHECK
(
m_muonKey
.initialize());
12
m_muonBr
= std::make_shared<IParticleFourMomBranch>(
m_tree
,
"muons"
);
13
m_muonBr
->addVariable<
float
>(
"MSFieldIntegral"
,
14
"spectrometerFieldIntegral"
);
15
m_muonBr
->addVariable<
float
>(
"SCS"
,
"scatteringCurvatureSignificance"
);
16
m_muonBr
->addVariable<
float
>(
"SNS"
,
"scatteringNeighbourSignificance"
);
17
m_muonBr
->addVariable<
float
>(
"PtImbalSig"
,
18
"momentumBalanceSignificance"
);
19
20
m_muonBr
->addVariable<
float
>(FLT_MAX,
"segmentDeltaEta"
);
21
m_muonBr
->addVariable<
float
>(FLT_MAX,
"segmentDeltaPhi"
);
22
m_muonBr
->addVariable<
float
>(FLT_MAX,
"segmentChi2OverDoF"
);
23
24
auto
msTracks = std::make_unique<IParticleFourMomBranch>(
m_tree
,
"MsTrks"
);
25
26
msTracks->addVariable(std::make_unique<TrackChi2Branch>(*msTracks));
27
msTracks->addVariable(std::make_unique<EnergylossBranch>(*msTracks));
28
msTracks->addVariable(std::make_unique<ScatteringBranch>(*msTracks));
29
30
m_muonBr
->addVariable(std::make_unique<LinkerBranch>(*
m_muonBr
, std::move(msTracks),
31
[](
const
xAOD::IParticle
*p) {
32
return
static_cast<
const
xAOD::Muon
*
>
(p)->trackParticle(xAOD::Muon::TrackParticleType::MuonSpectrometerTrackParticle);
33
}));
34
35
m_tree
.addBranch(
m_muonBr
);
36
ATH_CHECK
(
m_tree
.init(
this
));
37
return
StatusCode::SUCCESS;
38
}
39
StatusCode
MuonTesterAlg::finalize
(){
40
ATH_CHECK
(
m_tree
.write());
41
return
StatusCode::SUCCESS;
42
}
43
StatusCode
MuonTesterAlg::execute
(
const
EventContext& ctx){
44
const
xAOD::MuonContainer
* muons{
nullptr
};
45
ATH_CHECK
(
SG::get
(muons,
m_muonKey
, ctx));
46
for
(
const
xAOD::Muon
* muon : *muons) {
47
m_muonBr
->push_back(muon);
48
}
49
if
(!
m_tree
.fill(ctx)) {
50
return
StatusCode::FAILURE;
51
}
52
return
StatusCode::SUCCESS;
53
}
54
55
}
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
LinkerBranch.h
MuonTesterAlg.h
TrackDetailBranches.h
MuonVal::MuonTesterAlg::m_muonBr
std::shared_ptr< IParticleFourMomBranch > m_muonBr
Definition
MuonTesterAlg.h:28
MuonVal::MuonTesterAlg::m_muonKey
SG::ReadHandleKey< xAOD::MuonContainer > m_muonKey
Definition
MuonTesterAlg.h:24
MuonVal::MuonTesterAlg::m_tree
MuonVal::MuonTesterTree m_tree
Definition
MuonTesterAlg.h:26
MuonVal::MuonTesterAlg::execute
virtual StatusCode execute(const EventContext &ctx) override
Execute method.
Definition
MuonTesterAlg.cxx:43
MuonVal::MuonTesterAlg::finalize
virtual StatusCode finalize() override
Definition
MuonTesterAlg.cxx:39
MuonVal::MuonTesterAlg::initialize
virtual StatusCode initialize() override
Definition
MuonTesterAlg.cxx:10
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition
Event/xAOD/xAODBase/xAODBase/IParticle.h:41
MuonVal
Class to store array like branches into the n-tuples.
Definition
HitValAlg.cxx:19
SG::get
const T * get(const ReadCondHandleKey< T > &key, const EventContext &ctx)
Convenience function to retrieve an object given a ReadCondHandleKey.
Definition
ReadCondHandle.h:282
xAOD::Muon
Muon_v1 Muon
Reference the current persistent version:
Definition
Event/xAOD/xAODMuon/xAODMuon/Muon.h:13
xAOD::MuonContainer
MuonContainer_v1 MuonContainer
Definition of the current "Muon container version".
Definition
Event/xAOD/xAODMuon/xAODMuon/MuonContainer.h:14
Generated on
for ATLAS Offline Software by
1.17.0