ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonValidation
MuonTesterTree
MuonTesterTree
VectorBranch.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 MUONTESTER_MUONVECTORBRANCH_H
5
#define MUONTESTER_MUONVECTORBRANCH_H
6
7
#include <
MuonTesterTree/MuonTesterBranch.h
>
8
#include <vector>
9
#include <string>
10
class
TTree;
11
// Implementation to store vector like variables
12
namespace
MuonVal
{
13
class
MuonTesterTree
;
14
template
<
class
T>
class
VectorBranch
:
public
MuonTesterBranch
,
virtual
public
IMuonTesterBranch
{
15
public
:
17
VectorBranch
(TTree*
tree
,
const
std::string&
name
);
18
VectorBranch
(
MuonTesterTree
&
tree
,
const
std::string&
name
);
19
21
VectorBranch
(TTree*
tree
,
const
std::string&
name
,
const
T& def);
22
VectorBranch
(
MuonTesterTree
&
tree
,
const
std::string&
name
,
const
T& def);
23
24
virtual
~VectorBranch
() =
default
;
25
28
bool
fill
(
const
EventContext& ctx)
override
;
30
bool
init
()
override
;
31
33
inline
size_t
size
()
const
;
34
36
inline
void
push_back
(
const
T& value);
37
inline
void
operator+=
(
const
T& value);
38
39
inline
const
std::vector<T>&
operator=
(
const
std::vector<T>& values);
40
44
inline
T&
operator[]
(
size_t
idx);
45
inline
T&
get
(
size_t
idx);
46
47
inline
const
T&
getDefault
()
const
;
48
void
setDefault
(
const
T& def);
49
50
inline
bool
isUpdated
()
const
;
51
inline
bool
hasDefault
()
const
;
52
53
inline
friend
std::ostream&
operator<<
(std::ostream& ostr,
const
VectorBranch
& br) {
54
ostr<<br.name()<<
": "
;
55
if
(br.isUpdated()){
56
ostr<<br.m_variable;
57
}
else
ostr<<
"[]"
;
58
return
ostr;
59
};
60
61
private
:
62
std::vector<T>
m_variable
{};
63
T
m_default
{};
64
bool
m_hasDefault
{
false
};
65
bool
m_updated
{
false
};
66
};
67
68
template
<>
bool
&
VectorBranch<bool>::get
(
size_t
idx);
69
}
70
#include <
MuonTesterTree/VectorBranch.icc
>
71
#endif
MuonTesterBranch.h
VectorBranch.icc
MuonVal::IMuonTesterBranch
Most basic interface class used by the MuonTester tree.
Definition
IMuonTesterBranch.h:20
MuonVal::IMuonTesterBranch::name
virtual std::string name() const =0
Returns the name of the branch.
MuonVal::IMuonTesterBranch::tree
virtual TTree * tree()=0
Returns the pointer to the underlying TTree object.
MuonVal::MuonTesterBranch::MuonTesterBranch
MuonTesterBranch(MuonTesterTree &tree, const std::string &br_name)
Definition
MuonTesterBranch.cxx:33
MuonVal::MuonTesterTree
Definition
MuonTesterTree.h:38
MuonVal::VectorBranch::isUpdated
bool isUpdated() const
MuonVal::VectorBranch::size
size_t size() const
Returns the number of actual saved elements.
MuonVal::VectorBranch::push_back
void push_back(const T &value)
Adds a new element at the end of the vector.
MuonVal::VectorBranch::fill
bool fill(const EventContext &ctx) override
Clears vector in cases that it has not been updated in this event Retursn falls if the vector has not...
MuonVal::VectorBranch::getDefault
const T & getDefault() const
MuonVal::VectorBranch::VectorBranch
VectorBranch(MuonTesterTree &tree, const std::string &name, const T &def)
MuonVal::VectorBranch::setDefault
void setDefault(const T &def)
MuonVal::VectorBranch::m_default
T m_default
Definition
VectorBranch.h:63
MuonVal::VectorBranch::operator<<
friend std::ostream & operator<<(std::ostream &ostr, const VectorBranch &br)
Definition
VectorBranch.h:53
MuonVal::VectorBranch::get
T & get(size_t idx)
MuonVal::VectorBranch::m_updated
bool m_updated
Definition
VectorBranch.h:65
MuonVal::VectorBranch::hasDefault
bool hasDefault() const
MuonVal::VectorBranch::VectorBranch
VectorBranch(TTree *tree, const std::string &name)
Standard constructor.
MuonVal::VectorBranch::~VectorBranch
virtual ~VectorBranch()=default
MuonVal::VectorBranch::operator[]
T & operator[](size_t idx)
Accesses the idx-th element.
MuonVal::VectorBranch::VectorBranch
VectorBranch(TTree *tree, const std::string &name, const T &def)
Constructor with assigned default value.
MuonVal::VectorBranch::operator=
const std::vector< T > & operator=(const std::vector< T > &values)
MuonVal::VectorBranch::m_variable
std::vector< T > m_variable
Definition
VectorBranch.h:62
MuonVal::VectorBranch::VectorBranch
VectorBranch(MuonTesterTree &tree, const std::string &name)
MuonVal::VectorBranch::operator+=
void operator+=(const T &value)
MuonVal::VectorBranch::init
bool init() override
Initialized the Branch.
MuonVal::VectorBranch::m_hasDefault
bool m_hasDefault
Definition
VectorBranch.h:64
MuonVal
Class to store array like branches into the n-tuples.
Definition
HitValAlg.cxx:19
Generated on
for ATLAS Offline Software by
1.17.0