ATLAS Offline Software
Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
MuonVal::MuonTesterTree Class Reference

#include <MuonTesterTree.h>

Inheritance diagram for MuonVal::MuonTesterTree:
Collaboration diagram for MuonVal::MuonTesterTree:

Public Types

using FriendTreePtr = std::shared_ptr< MuonTesterTree >
 Appends the other tester Tree as friend to this instance. More...
 

Public Member Functions

 MuonTesterTree (const std::string &tree_name, const std::string &stream)
 
 ~MuonTesterTree ()
 
TTree * tree ()
 TTree object. More...
 
const TTree * tree () const
 
TTree * operator-> ()
 Operator to the TTree object. More...
 
const TTree * operator-> () const
 
bool initialized () const
 Has the init method been called and the tree is connected with the output file. More...
 
bool fill (const EventContext &ctx)
 Fills the tree per call. More...
 
std::string name () const
 Name of the tree. More...
 
std::string fileStream () const
 file_stream of the analysis to which the tree belongs More...
 
std::string path () const
 sub directory in the TFile More...
 
void setPath (const std::string &new_path)
 Save the TTree in a subfolder of the TFile. More...
 
template<class OWNER , typename = typename std::enable_if<std::is_base_of<IProperty, OWNER>::value>::type>
StatusCode init (OWNER *instance)
 Initialize method. More...
 
StatusCode write ()
 Finally write the TTree objects. More...
 
bool registerBranch (std::shared_ptr< IMuonTesterBranch > branch)
 This method adds the branch to the tree and hands over the ownership to the MuonAnalysisTree instance IF the second argument is set to false the branch is not added to the active list of branches i.e. More...
 
bool addBranch (std::shared_ptr< IMuonTesterBranch > branch)
 Branch is added to the tree without transferring the ownership. More...
 
bool addBranch (IMuonTesterBranch &branch)
 
bool addBranch (IMuonTesterBranch *branch)
 
void removeBranch (IMuonTesterBranch *branch)
 In case instances of a certain branch type are destroyed before hand. More...
 
void removeBranch (IMuonTesterBranch &branch)
 
void disableBranch (const std::string &br_name)
 Skips the branch from being added to the tree. More...
 
void disableBranch (const std::vector< std::string > &br_names)
 
template<class T >
std::shared_ptr< T > getBranch (const std::string &str) const
 Retrieves the branches owned by the muon_tree. More...
 
template<typename T >
VectorBranch< T > & newVector (const std::string &name)
 Creates new branches and returns their reference. More...
 
template<typename T >
ScalarBranch< T > & newScalar (const std::string &name)
 
template<typename T >
MatrixBranch< T > & newMatrix (const std::string &name)
 
template<typename T >
SetBranch< T > & newSet (const std::string &name)
 
template<typename T >
VectorBranch< T > & newVector (const std::string &name, const T def_val)
 Creates and returns branches with a default value. More...
 
template<typename T >
ScalarBranch< T > & newScalar (const std::string &name, const T def_val)
 
template<typename T >
MatrixBranch< T > & newMatrix (const std::string &name, const T def_val)
 
template<typename T >
T & newBranch (std::shared_ptr< T > br)
 returns the reference of the branch More...
 
bool isActive (const IMuonTesterBranch *branch) const
 Returns a boolean whether the branch is already part of the tree or one of the deligated friends. More...
 
bool isCommonTree () const
 Returns Whether the Tree is a common tree or not. More...
 
bool addCommonTree (FriendTreePtr common_tree)
 
const std::vector< FriendTreePtr > & getFriends () const
 
bool msgLvl (const MSG::Level lvl) const
 Test the output level. More...
 
MsgStream & msg () const
 The standard message stream. More...
 
MsgStream & msg (const MSG::Level lvl) const
 The standard message stream. More...
 
void setLevel (MSG::Level lvl)
 Change the current logging level. More...
 

Private Types

using DataDependency = IMuonTesterBranch::DataDependency
 

Private Member Functions

bool addClient (MuonTesterTree *client)
 Adds the other TTree as a Client and declares this instance as a Common Tree. More...
 
StatusCode init (ServiceHandle< ITHistSvc > hist_svc)
 Initialze the tree with the output file. More...
 
void initMessaging () const
 Initialize our message level and MessageSvc. More...
 

Private Attributes

std::vector< DataDependencym_dependencies {}
 
unsigned int m_depCounter {0}
 
std::unique_ptr< TTree > m_tree {nullptr}
 
std::string m_stream {}
 
std::string m_path {}
 
bool m_init {false}
 Flag to avoid double initialization with the StoreGate. More...
 
bool m_written {false}
 Flag to indicate whether the TTree is written to the file or not. More...
 
std::vector< IMuonTesterBranch * > m_branches_to_init {}
 
std::vector< std::shared_ptr< IMuonTesterBranch > > m_branches {}
 
std::set< IMuonTesterBranch * > m_initialized_br {}
 Set of branches that were already initialized. More...
 
std::set< std::string > m_excludedBranches {}
 
TDirectory * m_directory {nullptr}
 
bool m_filled {false}
 
ServiceHandle< ITHistSvc > m_hist_svc {"", ""}
 
std::vector< FriendTreePtrm_friendLinks {}
 List of all other common instances that are acting as friends. More...
 
std::set< MuonTesterTree * > m_commonClients {}
 List of all other MuonTesterTree instances using this instance as a common Tree If the Tree has one client it is declared as a common Tree. More...
 
std::shared_ptr< EventHashBranchm_hash_br
 
std::string m_nm
 Message source name. More...
 
boost::thread_specific_ptr< MsgStream > m_msg_tls
 MsgStream instance (a std::cout like with print-out levels) More...
 
std::atomic< IMessageSvc * > m_imsg { nullptr }
 MessageSvc pointer. More...
 
std::atomic< MSG::Level > m_lvl { MSG::NIL }
 Current logging level. More...
 
std::atomic_flag m_initialized ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
 Messaging initialized (initMessaging) More...
 

Detailed Description

Definition at line 30 of file MuonTesterTree.h.

Member Typedef Documentation

◆ DataDependency

Definition at line 123 of file MuonTesterTree.h.

◆ FriendTreePtr

Appends the other tester Tree as friend to this instance.

Definition at line 109 of file MuonTesterTree.h.

Constructor & Destructor Documentation

◆ MuonTesterTree()

MuonVal::MuonTesterTree::MuonTesterTree ( const std::string &  tree_name,
const std::string &  stream 
)

Definition at line 267 of file MuonTesterTree.cxx.

267  :
268  AthMessaging{"MuonTesterTree"},
269  m_tree{std::make_unique<TTree>(tree_name.c_str(), "MuonTesterTree")}, m_stream(stream) {}

◆ ~MuonTesterTree()

MuonVal::MuonTesterTree::~MuonTesterTree ( )

Definition at line 271 of file MuonTesterTree.cxx.

271  {
272  m_branches_to_init.clear();
273 }

Member Function Documentation

◆ addBranch() [1/3]

bool MuonVal::MuonTesterTree::addBranch ( IMuonTesterBranch branch)

Definition at line 62 of file MuonTesterTree.cxx.

62 { return addBranch(&branch); }

◆ addBranch() [2/3]

bool MuonVal::MuonTesterTree::addBranch ( IMuonTesterBranch branch)

Definition at line 63 of file MuonTesterTree.cxx.

63  {
64  if (isActive(branch))
65  return true;
66  else if (!branch) {
67  ATH_MSG_ERROR("Nullptr given");
68  return false;
69  } else if (m_filled) {
70  ATH_MSG_ERROR("Tree structure is already finalized. Cannot add " << branch->name());
71  return false;
72  }
73  if (branch->tree() != tree()) {
74  for (const FriendTreePtr& friend_tree : getFriends()) {
75  if (friend_tree->addBranch(branch)) return true;
76  }
77  return false;
78  }
79  m_branches_to_init.push_back(branch);
80  return true;
81 }

◆ addBranch() [3/3]

bool MuonVal::MuonTesterTree::addBranch ( std::shared_ptr< IMuonTesterBranch branch)

Branch is added to the tree without transferring the ownership.

Definition at line 61 of file MuonTesterTree.cxx.

61 { return registerBranch(branch) && addBranch(branch.get()); }

◆ addClient()

bool MuonVal::MuonTesterTree::addClient ( MuonTesterTree client)
private

Adds the other TTree as a Client and declares this instance as a Common Tree.

Definition at line 225 of file MuonTesterTree.cxx.

225  {
227  ATH_MSG_WARNING("Common TTree mechanism only supported in single thread environment");
228  return false;
229  }
230  if (!m_hash_br) {
231  m_hash_br = std::make_shared<EventHashBranch>(tree());
232  if (!addBranch(m_hash_br)) return false;
233  }
234  m_commonClients.insert(client);
235  return true;
236 }

◆ addCommonTree()

bool MuonVal::MuonTesterTree::addCommonTree ( FriendTreePtr  common_tree)

Ensure that the event entries are synchronized

Definition at line 237 of file MuonTesterTree.cxx.

237  {
239  ATH_MSG_WARNING("Common TTree mechanism only supported in single thread environment");
240  return false;
241  }
242  if (!common_tree) {
243  ATH_MSG_ERROR("Nullptr given");
244  return false;
245  }
246  if (common_tree->fileStream() != fileStream()) {
247  ATH_MSG_ERROR("The common tree "<<common_tree->name()<<" and "<<name()<<" have to be written into the same file");
248  return false;
249  }
250  if (m_commonClients.count(common_tree.get())) {
251  ATH_MSG_ERROR(name()<<" is already a friend of "<<common_tree->name());
252  return false;
253  }
255  if (!m_hash_br) {
256  m_hash_br = std::make_shared<EventHashBranch>(tree());
257  if (!addBranch(m_hash_br)) return false;
258  }
259  m_friendLinks.push_back(common_tree);
260  return common_tree->addClient(this);
261 }

◆ disableBranch() [1/2]

void MuonVal::MuonTesterTree::disableBranch ( const std::string &  br_name)

Skips the branch from being added to the tree.

Definition at line 199 of file MuonTesterTree.cxx.

199  {
200  if (!m_filled) m_excludedBranches.insert(b_name);
201 }

◆ disableBranch() [2/2]

void MuonVal::MuonTesterTree::disableBranch ( const std::vector< std::string > &  br_names)

Definition at line 202 of file MuonTesterTree.cxx.

202  {
203  if (!m_filled) m_excludedBranches.insert(br_names.begin(), br_names.end());
204 }

◆ fileStream()

std::string MuonVal::MuonTesterTree::fileStream ( ) const

file_stream of the analysis to which the tree belongs

Definition at line 205 of file MuonTesterTree.cxx.

205 { return m_stream; }

◆ fill()

bool MuonVal::MuonTesterTree::fill ( const EventContext &  ctx)

Fills the tree per call.

Remove the information that is no longer of value

Common trees arecan only be filled once in an event

Call the fill method on all friends

These branches are actually initialized

Definition at line 89 of file MuonTesterTree.cxx.

89  {
90  if (!initialized()) {
91  ATH_MSG_ERROR("The TTree has not been initialized yet");
92  return false;
93  }
95  if (!m_filled) {
96  m_excludedBranches.clear();
97  m_initialized_br.clear();
98  m_dependencies.clear();
99  }
101  if (isCommonTree() && m_hash_br->is_dumped(ctx)) {
102  return true;
103  }
105  for (const FriendTreePtr& friend_tree : getFriends()){
106  if (!friend_tree->fill(ctx)) return false;
107  }
109  for (auto& branch : m_branches_to_init) {
110  ATH_MSG_VERBOSE("Try to fill "<<branch->name());
111  if (!branch->fill(ctx)) {
112  ATH_MSG_ERROR("fill() --- Failed to fill branch " << branch->name() << " in tree " << name() );
113  return false;
114  }
115  }
116  m_tree->Fill();
117  m_filled = true;
118  return true;
119 }

◆ getBranch()

template<class T >
std::shared_ptr<T> MuonVal::MuonTesterTree::getBranch ( const std::string &  str) const

Retrieves the branches owned by the muon_tree.

◆ getFriends()

const std::vector< MuonTesterTree::FriendTreePtr > & MuonVal::MuonTesterTree::getFriends ( ) const

Definition at line 262 of file MuonTesterTree.cxx.

262  {
263  return m_friendLinks;
264 }

◆ init() [1/2]

template<class OWNER , typename = typename std::enable_if<std::is_base_of<IProperty, OWNER>::value>::type>
StatusCode MuonVal::MuonTesterTree::init ( OWNER *  instance)

Initialize method.

◆ init() [2/2]

StatusCode MuonVal::MuonTesterTree::init ( ServiceHandle< ITHistSvc >  hist_svc)
private

Initialze the tree with the output file.

The stream corresponds to the stream of the file e.g MDTTester HighEtaTester

push back the ds id index

Sort by alphabet

Kick everything that is not owned by the class itself

Definition at line 120 of file MuonTesterTree.cxx.

120  {
121  if (fileStream().empty()) {
122  ATH_MSG_ERROR("The file stream of " << name() << " has not been set yet" );
123  return StatusCode::FAILURE;
124  }
125  if (!initialized()) {
126  if (!m_tree) {
127  ATH_MSG_FATAL("No TTree object");
128  return StatusCode::FAILURE;
129  }
131  std::stringstream full_path{};
132  full_path<<"/"<<fileStream()<<"/"<<path()<<(path().empty() ? "" : "/")<<name();
133  if (!hist_svc->regTree(full_path.str(), tree()).isSuccess()) { return StatusCode::FAILURE; }
134  m_directory = m_tree->GetDirectory();
135  if (!m_directory) {
136  ATH_MSG_ERROR("Where is my directory to write later?");
137  return StatusCode::FAILURE;
138  }
139  m_hist_svc = hist_svc;
140  m_init = true;
141  }
142  for (const FriendTreePtr& friend_tree : getFriends()){
143  if (!friend_tree->init(hist_svc).isSuccess()) return StatusCode::FAILURE;
144  }
145 
146  Remove(m_branches_to_init, [this](const IMuonTesterBranch* br) {
147  return !br || m_excludedBranches.count(br->name());
148  });
151  [](IMuonTesterBranch* a, IMuonTesterBranch* b) { return a->name() < b->name(); });
152  for (IMuonTesterBranch* branch : m_branches_to_init) {
153  if (m_initialized_br.count(branch)) {
154  ATH_MSG_VERBOSE("Do not count the initialize function on "<<branch->name()<<" twice.");
155  continue;
156  }
157  if (!branch->init()) {
158  ATH_MSG_ERROR("Failed to initialize branch " << branch->name());
159  return StatusCode::FAILURE;
160  }
161  ATH_MSG_DEBUG(" Branch " << branch->name() << " has been initialized");
162  std::vector<DataDependency> data_dep = branch->data_dependencies();
163  for (const DataDependency& data : data_dep) {
164  m_dependencies.emplace_back(data);
165  }
166  m_initialized_br.insert(branch);
167  }
169  Remove(m_branches_to_init, [this](const IMuonTesterBranch* br) {
170  return std::find_if(m_branches.begin(), m_branches.end(),
171  [br](const std::shared_ptr<IMuonTesterBranch>& owned) {
172  return owned.get() == br; }) == m_branches.end();
173  });
174  ATH_MSG_INFO("Initialization of "<<name()<<" successfully completed");
175  return StatusCode::SUCCESS;
176 }

◆ initialized()

bool MuonVal::MuonTesterTree::initialized ( ) const

Has the init method been called and the tree is connected with the output file.

Definition at line 88 of file MuonTesterTree.cxx.

88 { return m_init; }

◆ initMessaging()

void AthMessaging::initMessaging ( ) const
privateinherited

Initialize our message level and MessageSvc.

This method should only be called once.

Definition at line 39 of file AthMessaging.cxx.

40 {
42  m_lvl = m_imsg ?
43  static_cast<MSG::Level>( m_imsg.load()->outputLevel(m_nm) ) :
44  MSG::INFO;
45 }

◆ isActive()

bool MuonVal::MuonTesterTree::isActive ( const IMuonTesterBranch branch) const

Returns a boolean whether the branch is already part of the tree or one of the deligated friends.

Definition at line 206 of file MuonTesterTree.cxx.

206  {
207  if (!branch) {
208  ATH_MSG_ERROR("Nullptr was given");
209  return false;
210  }
211  if (branch->tree() != tree()) {
212  for (const FriendTreePtr& friend_tree : getFriends()){
213  if (friend_tree->isActive(branch)) return true;
214  }
215  return false;
216  }
217  return std::find_if(m_branches_to_init.begin(), m_branches_to_init.end(),
218  [&branch](const IMuonTesterBranch* known) {
219  return known == branch || known->name() == branch->name();
220  }) != m_branches_to_init.end();
221 }

◆ isCommonTree()

bool MuonVal::MuonTesterTree::isCommonTree ( ) const

Returns Whether the Tree is a common tree or not.

Definition at line 265 of file MuonTesterTree.cxx.

265 {return !m_commonClients.empty(); }

◆ msg() [1/2]

MsgStream & AthMessaging::msg ( ) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 164 of file AthMessaging.h.

165 {
166  MsgStream* ms = m_msg_tls.get();
167  if (!ms) {
168  if (!m_initialized.test_and_set()) initMessaging();
169  ms = new MsgStream(m_imsg,m_nm);
170  m_msg_tls.reset( ms );
171  }
172 
173  ms->setLevel (m_lvl);
174  return *ms;
175 }

◆ msg() [2/2]

MsgStream & AthMessaging::msg ( const MSG::Level  lvl) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 179 of file AthMessaging.h.

180 { return msg() << lvl; }

◆ msgLvl()

bool AthMessaging::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Test the output level.

Parameters
lvlThe message level to test against
Returns
boolean Indicating if messages at given level will be printed
Return values
trueMessages at level "lvl" will be printed

Definition at line 151 of file AthMessaging.h.

152 {
153  if (!m_initialized.test_and_set()) initMessaging();
154  if (m_lvl <= lvl) {
155  msg() << lvl;
156  return true;
157  } else {
158  return false;
159  }
160 }

◆ name()

std::string MuonVal::MuonTesterTree::name ( ) const

Name of the tree.

Definition at line 20 of file MuonTesterTree.cxx.

20 { return m_tree->GetName(); }

◆ newBranch()

template<typename T >
T& MuonVal::MuonTesterTree::newBranch ( std::shared_ptr< T >  br)

returns the reference of the branch

◆ newMatrix() [1/2]

template<typename T >
MatrixBranch<T>& MuonVal::MuonTesterTree::newMatrix ( const std::string &  name)

◆ newMatrix() [2/2]

template<typename T >
MatrixBranch<T>& MuonVal::MuonTesterTree::newMatrix ( const std::string &  name,
const def_val 
)

◆ newScalar() [1/2]

template<typename T >
ScalarBranch<T>& MuonVal::MuonTesterTree::newScalar ( const std::string &  name)

◆ newScalar() [2/2]

template<typename T >
ScalarBranch<T>& MuonVal::MuonTesterTree::newScalar ( const std::string &  name,
const def_val 
)

◆ newSet()

template<typename T >
SetBranch<T>& MuonVal::MuonTesterTree::newSet ( const std::string &  name)

◆ newVector() [1/2]

template<typename T >
VectorBranch<T>& MuonVal::MuonTesterTree::newVector ( const std::string &  name)

Creates new branches and returns their reference.

◆ newVector() [2/2]

template<typename T >
VectorBranch<T>& MuonVal::MuonTesterTree::newVector ( const std::string &  name,
const def_val 
)

Creates and returns branches with a default value.

◆ operator->() [1/2]

TTree * MuonVal::MuonTesterTree::operator-> ( )

Operator to the TTree object.

Definition at line 23 of file MuonTesterTree.cxx.

23 { return m_tree.get(); }

◆ operator->() [2/2]

const TTree * MuonVal::MuonTesterTree::operator-> ( ) const

Definition at line 25 of file MuonTesterTree.cxx.

25 { return m_tree.get(); }

◆ path()

std::string MuonVal::MuonTesterTree::path ( ) const

sub directory in the TFile

Definition at line 223 of file MuonTesterTree.cxx.

223 { return m_path; }

◆ registerBranch()

bool MuonVal::MuonTesterTree::registerBranch ( std::shared_ptr< IMuonTesterBranch branch)

This method adds the branch to the tree and hands over the ownership to the MuonAnalysisTree instance IF the second argument is set to false the branch is not added to the active list of branches i.e.

no fill and initialize function is called on it

Check whether the branch belongs to the same TTree

Definition at line 28 of file MuonTesterTree.cxx.

28  {
29  if (!branch) {
30  ATH_MSG_ERROR("Nullptr given");
31  return false;
32  }
34  if (branch->tree() != tree()) {
35  for (const FriendTreePtr& friend_tree : getFriends()){
36  if (friend_tree->registerBranch(branch)) {
37  m_branches.push_back(branch);
38  return true;
39  }
40  }
41  return false;
42  }
43  std::vector<std::shared_ptr<IMuonTesterBranch>>::const_iterator itr = std::find_if(
44  m_branches.begin(), m_branches.end(),
45  [&branch](const std::shared_ptr<IMuonTesterBranch>& known) {
46  return known == branch || known->name() == branch->name();
47  });
48  if (itr != m_branches.end()) {
49  if (typeid((*itr).get()) != typeid(branch.get())) {
50  ATH_MSG_FATAL("Different branches have been added here under " << branch->name());
51  return false;
52  }
53  return true;
54  } else if (m_filled) {
55  ATH_MSG_FATAL("Tree structure is already finalized");
56  return false;
57  }
58  m_branches.push_back(branch);
59  return true;
60 }

◆ removeBranch() [1/2]

void MuonVal::MuonTesterTree::removeBranch ( IMuonTesterBranch branch)

Definition at line 86 of file MuonTesterTree.cxx.

86 { removeBranch(&branch); }

◆ removeBranch() [2/2]

void MuonVal::MuonTesterTree::removeBranch ( IMuonTesterBranch branch)

In case instances of a certain branch type are destroyed before hand.

Definition at line 83 of file MuonTesterTree.cxx.

83  {
84  Remove(m_branches_to_init, [branch](const IMuonTesterBranch* br) { return br == branch; });
85 }

◆ setLevel()

void AthMessaging::setLevel ( MSG::Level  lvl)
inherited

Change the current logging level.

Use this rather than msg().setLevel() for proper operation with MT.

Definition at line 28 of file AthMessaging.cxx.

29 {
30  m_lvl = lvl;
31 }

◆ setPath()

void MuonVal::MuonTesterTree::setPath ( const std::string &  new_path)

Save the TTree in a subfolder of the TFile.

Definition at line 222 of file MuonTesterTree.cxx.

222 { m_path = new_path; }

◆ tree() [1/2]

TTree * MuonVal::MuonTesterTree::tree ( )

TTree object.

Definition at line 22 of file MuonTesterTree.cxx.

22 { return m_tree.get(); }

◆ tree() [2/2]

const TTree * MuonVal::MuonTesterTree::tree ( ) const

Definition at line 24 of file MuonTesterTree.cxx.

24 { return m_tree.get(); }

◆ write()

StatusCode MuonVal::MuonTesterTree::write ( )

Finally write the TTree objects.

Definition at line 178 of file MuonTesterTree.cxx.

178  {
179  if (!initialized() || !m_tree || m_written) { return StatusCode::SUCCESS; }
180  if (!m_hist_svc->deReg(tree()).isSuccess()) {
181  ATH_MSG_ERROR(__func__<<"() --- Failed to put the tree "<<name()<<" out of the HistService");
182  return StatusCode::FAILURE;
183  }
184  for (const FriendTreePtr& friend_tree : getFriends()) {
185  if (!friend_tree->write().isSuccess()) return StatusCode::FAILURE;
186  if (!tree()->AddFriend(friend_tree->tree())) {
187  ATH_MSG_ERROR("Failed to establish the Friendship between "<<name()<<" & "<<friend_tree->tree());
188  return StatusCode::FAILURE;
189  }
190  }
191  m_directory->WriteObject(tree(), tree()->GetName(), "overwrite");
192  if (!isCommonTree()) m_tree.reset();
193  m_branches_to_init.clear();
194  m_branches.clear();
195  m_friendLinks.clear();
196  m_written = true;
197  return StatusCode::SUCCESS;
198 }

Member Data Documentation

◆ ATLAS_THREAD_SAFE

std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
mutableprivateinherited

Messaging initialized (initMessaging)

Definition at line 141 of file AthMessaging.h.

◆ m_branches

std::vector<std::shared_ptr<IMuonTesterBranch> > MuonVal::MuonTesterTree::m_branches {}
private

Definition at line 145 of file MuonTesterTree.h.

◆ m_branches_to_init

std::vector<IMuonTesterBranch*> MuonVal::MuonTesterTree::m_branches_to_init {}
private

Definition at line 143 of file MuonTesterTree.h.

◆ m_commonClients

std::set<MuonTesterTree*> MuonVal::MuonTesterTree::m_commonClients {}
private

List of all other MuonTesterTree instances using this instance as a common Tree If the Tree has one client it is declared as a common Tree.

It can then only be filled once in an event

Definition at line 160 of file MuonTesterTree.h.

◆ m_depCounter

unsigned int MuonVal::MuonTesterTree::m_depCounter {0}
private

Definition at line 125 of file MuonTesterTree.h.

◆ m_dependencies

std::vector<DataDependency> MuonVal::MuonTesterTree::m_dependencies {}
private

Definition at line 124 of file MuonTesterTree.h.

◆ m_directory

TDirectory* MuonVal::MuonTesterTree::m_directory {nullptr}
private

Definition at line 151 of file MuonTesterTree.h.

◆ m_excludedBranches

std::set<std::string> MuonVal::MuonTesterTree::m_excludedBranches {}
private

Definition at line 149 of file MuonTesterTree.h.

◆ m_filled

bool MuonVal::MuonTesterTree::m_filled {false}
private

Definition at line 152 of file MuonTesterTree.h.

◆ m_friendLinks

std::vector<FriendTreePtr> MuonVal::MuonTesterTree::m_friendLinks {}
private

List of all other common instances that are acting as friends.

Definition at line 156 of file MuonTesterTree.h.

◆ m_hash_br

std::shared_ptr<EventHashBranch> MuonVal::MuonTesterTree::m_hash_br
private

Definition at line 162 of file MuonTesterTree.h.

◆ m_hist_svc

ServiceHandle<ITHistSvc> MuonVal::MuonTesterTree::m_hist_svc {"", ""}
private

Definition at line 153 of file MuonTesterTree.h.

◆ m_imsg

std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr }
mutableprivateinherited

MessageSvc pointer.

Definition at line 135 of file AthMessaging.h.

◆ m_init

bool MuonVal::MuonTesterTree::m_init {false}
private

Flag to avoid double initialization with the StoreGate.

Definition at line 131 of file MuonTesterTree.h.

◆ m_initialized_br

std::set<IMuonTesterBranch*> MuonVal::MuonTesterTree::m_initialized_br {}
private

Set of branches that were already initialized.

Definition at line 147 of file MuonTesterTree.h.

◆ m_lvl

std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL }
mutableprivateinherited

Current logging level.

Definition at line 138 of file AthMessaging.h.

◆ m_msg_tls

boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls
mutableprivateinherited

MsgStream instance (a std::cout like with print-out levels)

Definition at line 132 of file AthMessaging.h.

◆ m_nm

std::string AthMessaging::m_nm
privateinherited

Message source name.

Definition at line 129 of file AthMessaging.h.

◆ m_path

std::string MuonVal::MuonTesterTree::m_path {}
private

Definition at line 129 of file MuonTesterTree.h.

◆ m_stream

std::string MuonVal::MuonTesterTree::m_stream {}
private

Definition at line 128 of file MuonTesterTree.h.

◆ m_tree

std::unique_ptr<TTree> MuonVal::MuonTesterTree::m_tree {nullptr}
private

Definition at line 127 of file MuonTesterTree.h.

◆ m_written

bool MuonVal::MuonTesterTree::m_written {false}
private

Flag to indicate whether the TTree is written to the file or not.

Definition at line 133 of file MuonTesterTree.h.


The documentation for this class was generated from the following files:
MuonVal::MuonTesterTree::m_branches
std::vector< std::shared_ptr< IMuonTesterBranch > > m_branches
Definition: MuonTesterTree.h:145
AthMessaging::m_lvl
std::atomic< MSG::Level > m_lvl
Current logging level.
Definition: AthMessaging.h:138
MuonVal::MuonTesterTree::initialized
bool initialized() const
Has the init method been called and the tree is connected with the output file.
Definition: MuonTesterTree.cxx:88
MuonVal::MuonTesterTree::m_filled
bool m_filled
Definition: MuonTesterTree.h:152
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
MuonVal::MuonTesterTree::m_init
bool m_init
Flag to avoid double initialization with the StoreGate.
Definition: MuonTesterTree.h:131
MuonVal::MuonTesterTree::m_written
bool m_written
Flag to indicate whether the TTree is written to the file or not.
Definition: MuonTesterTree.h:133
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
MuonVal::MuonTesterTree::FriendTreePtr
std::shared_ptr< MuonTesterTree > FriendTreePtr
Appends the other tester Tree as friend to this instance.
Definition: MuonTesterTree.h:109
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
MuonVal::MuonTesterTree::isActive
bool isActive(const IMuonTesterBranch *branch) const
Returns a boolean whether the branch is already part of the tree or one of the deligated friends.
Definition: MuonTesterTree.cxx:206
MuonVal::MuonTesterTree::registerBranch
bool registerBranch(std::shared_ptr< IMuonTesterBranch > branch)
This method adds the branch to the tree and hands over the ownership to the MuonAnalysisTree instance...
Definition: MuonTesterTree.cxx:28
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
MuonVal::MuonTesterTree::fileStream
std::string fileStream() const
file_stream of the analysis to which the tree belongs
Definition: MuonTesterTree.cxx:205
AthMessaging::m_imsg
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
Definition: AthMessaging.h:135
MuonVal::MuonTesterTree::m_tree
std::unique_ptr< TTree > m_tree
Definition: MuonTesterTree.h:127
python.SystemOfUnits.ms
int ms
Definition: SystemOfUnits.py:132
empty
bool empty(TH1 *h)
Definition: computils.cxx:294
AthenaPoolTestWrite.stream
string stream
Definition: AthenaPoolTestWrite.py:12
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
MuonVal::MuonTesterTree::m_directory
TDirectory * m_directory
Definition: MuonTesterTree.h:151
rerun_display.client
client
Definition: rerun_display.py:31
MuonVal::MuonTesterTree::m_branches_to_init
std::vector< IMuonTesterBranch * > m_branches_to_init
Definition: MuonTesterTree.h:143
MuonVal::MuonTesterTree::isCommonTree
bool isCommonTree() const
Returns Whether the Tree is a common tree or not.
Definition: MuonTesterTree.cxx:265
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
MuonVal::MuonTesterTree::m_commonClients
std::set< MuonTesterTree * > m_commonClients
List of all other MuonTesterTree instances using this instance as a common Tree If the Tree has one c...
Definition: MuonTesterTree.h:160
MuonVal::MuonTesterTree::path
std::string path() const
sub directory in the TFile
Definition: MuonTesterTree.cxx:223
AthMessaging
Class to provide easy MsgStream access and capabilities.
Definition: AthMessaging.h:55
AthMessaging::msg
MsgStream & msg() const
The standard message stream.
Definition: AthMessaging.h:164
MuonVal::MuonTesterTree::name
std::string name() const
Name of the tree.
Definition: MuonTesterTree.cxx:20
MuonVal::MuonTesterTree::m_dependencies
std::vector< DataDependency > m_dependencies
Definition: MuonTesterTree.h:124
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
MuonVal::MuonTesterTree::m_hash_br
std::shared_ptr< EventHashBranch > m_hash_br
Definition: MuonTesterTree.h:162
RTTAlgmain.branch
branch
Definition: RTTAlgmain.py:61
MuonVal::MuonTesterTree::m_friendLinks
std::vector< FriendTreePtr > m_friendLinks
List of all other common instances that are acting as friends.
Definition: MuonTesterTree.h:156
MuonVal::MuonTesterTree::m_initialized_br
std::set< IMuonTesterBranch * > m_initialized_br
Set of branches that were already initialized.
Definition: MuonTesterTree.h:147
a
TList * a
Definition: liststreamerinfos.cxx:10
MuonVal::MuonTesterTree::m_hist_svc
ServiceHandle< ITHistSvc > m_hist_svc
Definition: MuonTesterTree.h:153
python.BackTrackingConfig.numThreads
int numThreads
Definition: BackTrackingConfig.py:61
std::sort
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
Definition: DVL_algorithms.h:623
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
known
Definition: TrigBStoxAODTool.cxx:107
AthMessaging::m_nm
std::string m_nm
Message source name.
Definition: AthMessaging.h:129
MuonVal::MuonTesterTree::DataDependency
IMuonTesterBranch::DataDependency DataDependency
Definition: MuonTesterTree.h:123
MuonVal::MuonTesterTree::getFriends
const std::vector< FriendTreePtr > & getFriends() const
Definition: MuonTesterTree.cxx:262
AthMessaging::initMessaging
void initMessaging() const
Initialize our message level and MessageSvc.
Definition: AthMessaging.cxx:39
AthMessaging::m_msg_tls
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
Definition: AthMessaging.h:132
MuonVal::MuonTesterTree::tree
TTree * tree()
TTree object.
Definition: MuonTesterTree.cxx:22
MuonVal::MuonTesterTree::m_stream
std::string m_stream
Definition: MuonTesterTree.h:128
MuonVal::MuonTesterTree::removeBranch
void removeBranch(IMuonTesterBranch *branch)
In case instances of a certain branch type are destroyed before hand.
Definition: MuonTesterTree.cxx:83
MuonVal::MuonTesterTree::m_excludedBranches
std::set< std::string > m_excludedBranches
Definition: MuonTesterTree.h:149
MuonVal::MuonTesterTree::m_path
std::string m_path
Definition: MuonTesterTree.h:129
MuonVal::MuonTesterTree::addBranch
bool addBranch(std::shared_ptr< IMuonTesterBranch > branch)
Branch is added to the tree without transferring the ownership.
Definition: MuonTesterTree.cxx:61
PlotCalibFromCool.br
br
Definition: PlotCalibFromCool.py:355