ATLAS Offline Software
Loading...
Searching...
No Matches
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
8
9namespace MuonVal {
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 }
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}
#define ATH_CHECK
Evaluate an expression and check for errors.
std::shared_ptr< IParticleFourMomBranch > m_muonBr
SG::ReadHandleKey< xAOD::MuonContainer > m_muonKey
MuonVal::MuonTesterTree m_tree
virtual StatusCode execute(const EventContext &ctx) override
Execute method.
virtual StatusCode finalize() override
virtual StatusCode initialize() override
Class providing the definition of the 4-vector interface.
Class to store array like branches into the n-tuples.
Definition HitValAlg.cxx:19
const T * get(const ReadCondHandleKey< T > &key, const EventContext &ctx)
Convenience function to retrieve an object given a ReadCondHandleKey.
Muon_v1 Muon
Reference the current persistent version:
MuonContainer_v1 MuonContainer
Definition of the current "Muon container version".