ATLAS Offline Software
Loading...
Searching...
No Matches
TrackDetailBranches.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4#ifndef MUONTESTERTREE_TRACKDETAILBRANCHES_H
5#define MUONTESTERTREE_TRACKDETAILBRANCHES_H
8namespace MuonVal{
10 class TrackChi2Branch : public VectorBranch<float>,
11 virtual public IParticleDecorationBranch {
12 public:
14
15 using VectorBranch<float>::push_back;
16 void push_back(const xAOD::IParticle* p) override;
17 void push_back(const xAOD::IParticle& p) override;
18 void operator+=(const xAOD::IParticle* p) override;
19 void operator+=(const xAOD::IParticle& p) override;
20
21 private:
22 std::shared_ptr<VectorBranch<unsigned int>> m_nDoF{nullptr};
23 };
24
29 class EnergylossBranch: public VectorBranch<float>,
30 virtual public IParticleDecorationBranch {
31 public:
33
34 using VectorBranch<float>::push_back;
35 void push_back(const xAOD::IParticle* p) override;
36 void push_back(const xAOD::IParticle& p) override;
37 void operator+=(const xAOD::IParticle* p) override;
38 void operator+=(const xAOD::IParticle& p) override;
39 };
40
42 class ScatteringBranch : public MatrixBranch<float>,
43 virtual public IParticleDecorationBranch {
44 public:
47
49 void push_back(const xAOD::IParticle* p) override;
50 void push_back(const xAOD::IParticle& p) override;
51 void operator+=(const xAOD::IParticle* p) override;
52 void operator+=(const xAOD::IParticle& p) override;
53
54 private:
55 std::shared_ptr<Base_t> m_deltaTheta{};
56 std::shared_ptr<Base_t> m_sigmaPhi{};
57 std::shared_ptr<Base_t> m_sigmaTheta{};
58 std::shared_ptr<VectorBranch<std::uint8_t>> m_nScat{};
59
60 };
61
62}
63#endif
void operator+=(const xAOD::IParticle *p) override
EnergylossBranch(IParticleFourMomBranch &parent)
void push_back(const xAOD::IParticle *p) override
Similar to the IAuxElementDecoration branch but only accepting IParticles.
Helper class to easily to add xAOD::IParticles and associated decorator variables to the MuonTesterTr...
MatrixBranch(TTree *tree, const std::string &name)
void push_back(size_t i, const float &value)
void push_back(const xAOD::IParticle *p) override
Similar to the IAuxElementDecoration branch but only accepting IParticles.
std::shared_ptr< VectorBranch< std::uint8_t > > m_nScat
std::shared_ptr< Base_t > m_sigmaTheta
void operator+=(const xAOD::IParticle *p) override
ScatteringBranch(IParticleFourMomBranch &parent)
std::shared_ptr< Base_t > m_deltaTheta
std::shared_ptr< Base_t > m_sigmaPhi
MatrixBranch< float > Base_t
void operator+=(const xAOD::IParticle *p) override
std::shared_ptr< VectorBranch< unsigned int > > m_nDoF
void push_back(const xAOD::IParticle *p) override
Similar to the IAuxElementDecoration branch but only accepting IParticles.
TrackChi2Branch(IParticleFourMomBranch &parent)
VectorBranch(TTree *tree, const std::string &name)
Class providing the definition of the 4-vector interface.
Class to store array like branches into the n-tuples.
Definition HitValAlg.cxx:19