ATLAS Offline Software
Public Types | Public Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
MuonValR4::MuonPatternRecognitionTestTree Class Reference

#include <MuonPatternRecognitionTestTree.h>

Inheritance diagram for MuonValR4::MuonPatternRecognitionTestTree:
Collaboration diagram for MuonValR4::MuonPatternRecognitionTestTree:

Public Types

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

Public Member Functions

StatusCode initialize (AthHistogramAlgorithm *parent)
 initialisation - internally calls the MuonTesterTree::init method More...
 
void fillChamberInfo (const MuonGMR4::SpectrometerSector *chamber)
 
void fillTruthInfo (const xAOD::MuonSegment *truthSegment, const MuonGMR4::MuonDetectorManager *detMgr, const ActsGeometryContext &gctx)
 
void fillSeedInfo (const ObjectMatching &obj)
 
void fillSegmentInfo (const ActsGeometryContext &gctx, const ObjectMatching &obj)
 
 MuonTesterTree (const std::string &tree_name, const std::string &stream)
 constructor delegates to the parent class More...
 
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...
 
const std::string & fileStream () const
 file_stream of the analysis to which the tree belongs More...
 
const 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 >
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)
 
template<typename T >
ScalarBranch< T > & newScalar (const std::string &name, const T def_val)
 
template<typename T >
MatrixBranch< T > & newMatrix (const std::string &name)
 
template<typename T >
MatrixBranch< T > & newMatrix (const std::string &name, const T def_val)
 
template<typename T >
SetBranch< T > & newSet (const std::string &name)
 
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...
 

Protected Attributes

MuonVal::ScalarBranch< int > & m_out_chamberIndex {newScalar<int>("chamberIndex")}
 ====== Common block: Filled for all entries =========== More...
 
MuonVal::ScalarBranch< short > & m_out_stationSide {newScalar<short>("stationSide")}
 +1 for A-, -1 of C-side More...
 
MuonVal::ScalarBranch< int > & m_out_stationPhi {newScalar<int>("stationPhi")}
 phi index of the station More...
 
MuonVal::ScalarBranch< float > & m_out_bucketStart {newScalar<float>("bucketStart", 1)}
 
MuonVal::ScalarBranch< float > & m_out_bucketEnd {newScalar<float>("bucketEnd", -1)}
 
MuonVal::ScalarBranch< bool > & m_out_hasTruth {newScalar<bool>("hasTruth",false)}
 ======= Truth block: Filled if we have a truth match. ============ More...
 
MuonVal::ScalarBranch< float > & m_out_gen_Eta {newScalar<float>("genEta",-10.)}
 global particle properties More...
 
MuonVal::ScalarBranch< float > & m_out_gen_Phi {newScalar<float>("genPhi",-10.)}
 
MuonVal::ScalarBranch< float > & m_out_gen_Pt {newScalar<float>("genPt",-10.)}
 
MuonVal::ScalarBranch< short > & m_out_gen_Q {newScalar<short>("genQ", 0)}
 
MuonVal::ScalarBranch< float > & m_out_gen_y0 {newScalar<float>("genY0", 0.0)}
 Truth - segment parameters
More...
 
MuonVal::ScalarBranch< float > & m_out_gen_tantheta {newScalar<float>("genTanTheta", 0.0)}
 
MuonVal::ScalarBranch< float > & m_out_gen_tanphi {newScalar<float>("genTanPhi", 0.0)}
 
MuonVal::ScalarBranch< float > & m_out_gen_x0 {newScalar<float>("genX0", 0.0)}
 
MuonVal::ScalarBranch< float > & m_out_gen_time {newScalar<float>("genTime", 0.0)}
 
MuonVal::ScalarBranch< unsigned short > & m_out_gen_nHits {newScalar<unsigned short>("genNHits",0)}
 Truth - hit count summary. More...
 
MuonVal::ScalarBranch< unsigned short > & m_out_gen_nRPCHits {newScalar<unsigned short>("genNRpcHits",0)}
 
MuonVal::ScalarBranch< unsigned short > & m_out_gen_nMDTHits {newScalar<unsigned short>("genNMdtHits",0)}
 
MuonVal::ScalarBranch< unsigned short > & m_out_gen_nTGCHits {newScalar<unsigned short>("genNTgcHits",0)}
 
MuonVal::ScalarBranch< unsigned short > & m_out_gen_nNswHits {newScalar<unsigned short>("genNNswHits",0)}
 
MuonVal::ScalarBranch< float > & m_out_gen_minYhit {newScalar<float>("genMinYhit", 1.0)}
 
MuonVal::ScalarBranch< float > & m_out_gen_maxYhit {newScalar<float>("genMaxYhit", -1.0)}
 
MuonVal::ScalarBranch< unsigned > & m_out_seed_n {newScalar<unsigned>("nSeeds", 0)}
 ========== Seed block: Filled when we have one or multiple seeds ============= seed count More...
 
MuonVal::VectorBranch< bool > & m_out_seed_hasPhiExtension {newVector<bool>("seedHasPhiExtension", false)}
 
MuonVal::VectorBranch< float > & m_out_seed_nMatchedHits {newVector<float>("seedTruthMatchedHits", false)}
 
MuonVal::VectorBranch< float > & m_out_seed_y0 {newVector<float>("seedY0", 0.0)}
 
MuonVal::VectorBranch< float > & m_out_seed_x0 {newVector<float>("seedX0", 0.0)}
 
MuonVal::VectorBranch< float > & m_out_seed_tantheta {newVector<float>("seedTanTheta", 0.0)}
 
MuonVal::VectorBranch< float > & m_out_seed_tanphi {newVector<float>("seedTanPhi", 0.0)}
 
MuonVal::VectorBranch< float > & m_out_seed_minYhit {newVector<float>("seedMinYhit", 1.0)}
 
MuonVal::VectorBranch< float > & m_out_seed_maxYhit {newVector<float>("seedMaxYhit", -1.0)}
 
MuonVal::VectorBranch< unsigned short > & m_out_seed_nHits {newVector<unsigned short>("seedNHits", 0)}
 
MuonVal::VectorBranch< unsigned short > & m_out_seed_nEtaHits {newVector<unsigned short>("seedNEtaHits", 0)}
 
MuonVal::VectorBranch< unsigned short > & m_out_seed_nPhiHits {newVector<unsigned short>("seedNPhiHits", 0)}
 
MuonVal::VectorBranch< unsigned short > & m_out_seed_nMdt {newVector<unsigned short>("seedNMdtHits", 0)}
 
MuonVal::VectorBranch< unsigned short > & m_out_seed_nRpc {newVector<unsigned short>("seedNRpcHits", 0)}
 
MuonVal::VectorBranch< unsigned short > & m_out_seed_nTgc {newVector<unsigned short>("seedNTgcHits", 0)}
 
MuonVal::VectorBranch< unsigned short > & m_out_seed_nsTgc {newVector<unsigned short>("seedNsTgcHits", 0)}
 
MuonVal::VectorBranch< unsigned short > & m_out_seed_nMm {newVector<unsigned short>("seedNMmHits", 0)}
 
MuonVal::VectorBranch< bool > & m_out_seed_ledToSegment {newVector<bool>("seedConvertedToSegment",false)}
 
MuonVal::ScalarBranch< unsigned > & m_out_segment_n {newScalar<unsigned>("nSegments", 0)}
 ========== Segment block: Filled when we have one or multiple segments ============= More...
 
MuonVal::VectorBranch< float > & m_out_segment_chi2 {newVector<float>("segmentChi2", -1.)}
 
MuonVal::VectorBranch< uint16_t > & m_out_segment_nDoF {newVector<uint16_t>("segmentNdoF", 0)}
 
MuonVal::VectorBranch< bool > & m_out_segment_hasTimeFit {newVector<bool>("segmentHasTimeFit", false)}
 
MuonVal::VectorBranch< uint16_t > & m_out_segment_fitIter {newVector<uint16_t>("segmentFitIterations", 0)}
 
MuonVal::VectorBranch< bool > & m_out_segment_hasPhi {newVector<bool>("segmentHasPhiHits", false)}
 
MuonVal::VectorBranch< float > & m_out_segment_y0 {newVector<float>("segmentY0", 0.0)}
 
MuonVal::VectorBranch< float > & m_out_segment_x0 {newVector<float>("segmentX0", 0.0)}
 
MuonVal::VectorBranch< float > & m_out_segment_tantheta {newVector<float>("segmentTanTheta", 0.0)}
 
MuonVal::VectorBranch< float > & m_out_segment_tanphi {newVector<float>("segmentTanPhi", 0.0)}
 
MuonVal::VectorBranch< float > & m_out_segment_time {newVector<float>("segmentTime", 0.)}
 
MuonVal::VectorBranch< float > & m_out_segment_err_y0 {newVector<float>("segmentErrY0", -1.0)}
 
MuonVal::VectorBranch< float > & m_out_segment_err_x0 {newVector<float>("segmentErrX0", -1.0)}
 
MuonVal::VectorBranch< float > & m_out_segment_err_tantheta {newVector<float>("segmentErrTanTheta", -1.0)}
 
MuonVal::VectorBranch< float > & m_out_segment_err_tanphi {newVector<float>("segmentErrTanPhi", -1.0)}
 
MuonVal::VectorBranch< float > & m_out_segment_err_time {newVector<float>("segmentErrTime", -1.0)}
 
MuonVal::VectorBranch< unsigned short > & m_out_segment_truthMatchedHits {newVector<unsigned short>("segmentTruthMatchedHits", 0)}
 
MuonVal::VectorBranch< unsigned short > & m_out_segment_nMdtHits {newVector<unsigned short>("segmentNMdtHits", 0)}
 
MuonVal::VectorBranch< unsigned short > & m_out_segment_nRpcEtaHits {newVector<unsigned short>("segmentNRpcEtaHits", 0)}
 
MuonVal::VectorBranch< unsigned short > & m_out_segment_nRpcPhiHits {newVector<unsigned short>("segmentNRpcPhiHits", 0)}
 
MuonVal::VectorBranch< unsigned short > & m_out_segment_nTgcEtaHits {newVector<unsigned short>("segmentNTgcEtaHits", 0)}
 
MuonVal::VectorBranch< unsigned short > & m_out_segment_nTgcPhiHits {newVector<unsigned short>("segmentNTgcPhiHits", 0)}
 
MuonVal::VectorBranch< float > & m_out_segment_minYhit {newVector<float>("segmentMinYhit", 1.0)}
 
MuonVal::VectorBranch< float > & m_out_segment_maxYhit {newVector<float>("segmentMaxYhit", -1.0)}
 

Private Types

using DataDependency = IMuonTesterBranch::DataDependency
 

Private Member Functions

StatusCode init (ServiceHandle< ITHistSvc > hist_svc)
 Initialze the tree with the output file. More...
 
bool addClient (MuonTesterTree *client)
 Adds the other TTree as a Client and declares this instance as a Common Tree. 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 40 of file MuonPatternRecognitionTestTree.h.

Member Typedef Documentation

◆ DataDependency

Definition at line 123 of file MuonTesterTree.h.

◆ FriendTreePtr

using MuonVal::MuonTesterTree::FriendTreePtr = std::shared_ptr<MuonTesterTree>
inherited

Appends the other tester Tree as friend to this instance.

Definition at line 109 of file MuonTesterTree.h.

Member Function Documentation

◆ addBranch() [1/3]

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

Definition at line 62 of file MuonTesterTree.cxx.

62 { return addBranch(&branch); }

◆ addBranch() [2/3]

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

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)
inherited

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)
privateinherited

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)
inherited

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)
inherited

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)
inherited

Definition at line 202 of file MuonTesterTree.cxx.

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

◆ fileStream()

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

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)
inherited

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 }

◆ fillChamberInfo()

void MuonValR4::MuonPatternRecognitionTestTree::fillChamberInfo ( const MuonGMR4::SpectrometerSector chamber)

Definition at line 27 of file MuonPatternRecognitionTestTree.cxx.

27  {
28  m_out_chamberIndex = msSector->chamberIndex();
29  m_out_stationSide = msSector->side();
30  m_out_stationPhi = msSector->stationPhi();
31  }

◆ fillSeedInfo()

void MuonValR4::MuonPatternRecognitionTestTree::fillSeedInfo ( const ObjectMatching obj)

Definition at line 82 of file MuonPatternRecognitionTestTree.cxx.

82  {
83  m_out_seed_n = obj.matchedSeeds.size();
84  int iseed = -1;
85  for (auto & seed : obj.matchedSeeds){
86  ++iseed;
88  m_out_bucketEnd = seed->parentBucket()->coveredMax();
89  m_out_bucketStart = seed->parentBucket()->coveredMin();
90  }
91  double minYhit = m_out_bucketEnd.getVariable();
92  double maxYhit = m_out_bucketStart.getVariable();
93  for (auto & hit : seed->getHitsInMax()){
94  minYhit = std::min(hit->positionInChamber().y(),minYhit);
95  maxYhit = std::max(hit->positionInChamber().y(),maxYhit);
96  }
99 
100  m_out_seed_hasPhiExtension.push_back(seed->hasPhiExtension());
101  m_out_seed_nMatchedHits.push_back(obj.matchedSeedHits.at(iseed));
102  m_out_seed_y0.push_back(seed->interceptY());
103  m_out_seed_tantheta.push_back(seed->tanTheta());
104  if (seed->hasPhiExtension()){
105  m_out_seed_x0.push_back(seed->interceptX());
106  m_out_seed_tanphi.push_back(seed->tanPhi());
107  }
108  else{
109  m_out_seed_x0.push_back(-999);
111  }
112 
113  m_out_seed_nHits.push_back(seed->getHitsInMax().size());
114  m_out_seed_nEtaHits.push_back(std::accumulate(seed->getHitsInMax().begin(), seed->getHitsInMax().end(),0,
115  [](int i, const HoughHitType & h){i += h->measuresEta();return i;}));
116  m_out_seed_nPhiHits.push_back(std::accumulate(seed->getHitsInMax().begin(), seed->getHitsInMax().end(),0,
117  [](int i, const HoughHitType & h){i += h->measuresPhi();return i;}));
118  unsigned int nMdtSeed{0}, nRpcSeed{0}, nTgcSeed{0}, nMmSeed{0}, nsTgcSeed{0};
119  for (const HoughHitType & houghSP: seed->getHitsInMax()){
120  switch (houghSP->type()) {
122  ++nMdtSeed;
123  break;
125  nRpcSeed+=houghSP->measuresEta();
126  nRpcSeed+=houghSP->measuresPhi();
127  break;
129  nTgcSeed+=houghSP->measuresEta();
130  nTgcSeed+=houghSP->measuresPhi();
131  break;
133  ++nsTgcSeed;
134  break;
136  ++nMmSeed;
137  break;
138  default:
139  ATH_MSG_WARNING("Technology "<<houghSP->identify()
140  <<" not yet implemented");
141  }
142  }
143  m_out_seed_nMdt.push_back(nMdtSeed);
144  m_out_seed_nRpc.push_back(nRpcSeed);
145  m_out_seed_nTgc.push_back(nTgcSeed);
146  m_out_seed_nsTgc.push_back(nsTgcSeed);
147  m_out_seed_nMm.push_back(nMmSeed);
148 
149  m_out_seed_ledToSegment.push_back(obj.matchedSeedFoundSegment.at(iseed));
150  }
151  }

◆ fillSegmentInfo()

void MuonValR4::MuonPatternRecognitionTestTree::fillSegmentInfo ( const ActsGeometryContext gctx,
const ObjectMatching obj 
)

Definition at line 153 of file MuonPatternRecognitionTestTree.cxx.

154  {
155  using namespace SegmentFit;
156 
157  m_out_segment_n = obj.matchedSegments.size();
158  int iSegment = -1;
159  for (auto & segment : obj.matchedSegments){
160  ++iSegment;
161  m_out_segment_hasPhi.push_back(std::ranges::find_if(segment->measurements(), [](const auto& meas){ return meas->measuresPhi();})
162  !=segment->measurements().end());
163  m_out_segment_fitIter.push_back(segment->nFitIterations());
164  m_out_segment_truthMatchedHits.push_back(obj.matchedSegHits.at(iSegment));
168 
174  const auto [locPos, locDir] = makeLine(localSegmentPars(gctx, *segment));
177  m_out_segment_y0.push_back(locPos.y());
178  m_out_segment_x0.push_back(locPos.x());
179  m_out_segment_time.push_back(segment->segementT0() + segment->position().mag() * c_inv);
180 
181  unsigned int nMdtHits{0}, nRpcEtaHits{0}, nRpcPhiHits{0}, nTgcEtaHits{0}, nTgcPhiHits{0};
182  for (const auto & meas : segment->measurements()){
183  switch (meas->type()) {
185  ++nMdtHits;
186  break;
188  nRpcEtaHits += meas->measuresEta();
189  nRpcPhiHits += meas->measuresPhi();
190  break;
192  nTgcEtaHits += meas->measuresEta();
193  nTgcPhiHits += meas->measuresPhi();
194  break;
195  default:
196  break;
197  }
198  }
204 
205  double minYhit = std::numeric_limits<double>::max();
206  double maxYhit = -1 * std::numeric_limits<double>::max();
207  for (auto & hit : segment->measurements()){
208  // skip dummy measurement from beam spot constraint
209  if (hit->type() == xAOD::UncalibMeasType::Other) continue;
210  minYhit = std::min(hit->positionInChamber().y(),minYhit);
211  maxYhit = std::max(hit->positionInChamber().y(),maxYhit);
212  }
215  }
216  }

◆ fillTruthInfo()

void MuonValR4::MuonPatternRecognitionTestTree::fillTruthInfo ( const xAOD::MuonSegment truthSegment,
const MuonGMR4::MuonDetectorManager detMgr,
const ActsGeometryContext gctx 
)

Definition at line 32 of file MuonPatternRecognitionTestTree.cxx.

32  {
33  if (!segment) return;
34  m_out_hasTruth = true;
35 
36  const Amg::Vector3D segDir{segment->direction()};
37  static const SG::Accessor<float> acc_pt{"pt"};
38  static const SG::Accessor<float> acc_charge{"charge"};
39  // eta is interpreted as the eta-location
40  m_out_gen_Eta = segDir.eta();
41  m_out_gen_Phi = segDir.phi();
42  m_out_gen_Pt = acc_pt(*segment);
43  m_out_gen_Q = acc_charge(*segment);
44 
45  const auto [chamberPos, chamberDir] = SegmentFit::makeLine(SegmentFit::localSegmentPars(*segment));
46  m_out_gen_nHits = segment->nPrecisionHits()+segment->nPhiLayers() + segment->nTrigEtaLayers();
47 
48  m_out_gen_nMDTHits = (segment->technology() == Muon::MuonStationIndex::MDT ? segment->nPrecisionHits() : 0);
49  m_out_gen_nNswHits = (segment->technology() != Muon::MuonStationIndex::MDT ? segment->nPrecisionHits() : 0);
50  m_out_gen_nTGCHits = (segment->chamberIndex() > Muon::MuonStationIndex::ChIndex::BEE ? segment->nPhiLayers() + segment->nTrigEtaLayers() : 0);
51  m_out_gen_nRPCHits = (segment->chamberIndex() <= Muon::MuonStationIndex::ChIndex::BEE ? segment->nPhiLayers() + segment->nTrigEtaLayers() : 0);
52 
53  m_out_gen_tantheta = houghTanTheta(chamberDir);
54  m_out_gen_tanphi = houghTanPhi(chamberDir);
55  m_out_gen_y0 = chamberPos.y();
56  m_out_gen_x0 = chamberPos.x();
57  m_out_gen_time = segment->t0();
58 
59  double minYhit = std::numeric_limits<double>::max();
60  double maxYhit = -1 * std::numeric_limits<double>::max();
61  for (auto & hit : getMatchingSimHits(*segment)){
62  auto RE = detMgr->getReadoutElement(hit->identify());
63  IdentifierHash hash{};
64  if (detMgr->idHelperSvc()->isMdt(hit->identify())){
65  hash = RE->measurementHash(hit->identify());
66  }
67  else {
68  hash = RE->layerHash(hit->identify());
69  }
70  auto localToChamber = RE->msSector()->globalToLocalTrans(gctx) * RE->localToGlobalTrans(gctx, hash);
71  auto chamberPos = localToChamber * xAOD::toEigen(hit->localPosition());
72  minYhit = std::min(chamberPos.y(),minYhit);
73  maxYhit = std::max(chamberPos.y(),maxYhit);
74  }
75  m_out_gen_minYhit = minYhit;
76  m_out_gen_maxYhit = maxYhit;
77 
78  ATH_MSG_DEBUG("A true max on chamber index "<<m_out_chamberIndex.getVariable()<<" side "<<m_out_stationSide.getVariable()<<" phi "<<m_out_stationPhi.getVariable()<<" with "
79  <<m_out_gen_nMDTHits.getVariable()<<" MDT and "<<m_out_gen_nRPCHits.getVariable()+m_out_gen_nTGCHits.getVariable()<< " trigger hits is at "
81  }

◆ getBranch()

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

Retrieves the branches owned by the muon_tree.

◆ getFriends()

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

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)
inherited

Initialize method.

◆ init() [2/2]

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

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 }

◆ initialize()

StatusCode MuonValR4::MuonPatternRecognitionTestTree::initialize ( AthHistogramAlgorithm parent)

initialisation - internally calls the MuonTesterTree::init method

Definition at line 22 of file MuonPatternRecognitionTestTree.cxx.

22  {
23  addBranch(std::make_shared<MuonVal::EventInfoBranch>(*this,0));
25  return StatusCode::SUCCESS;
26  }

◆ initialized()

bool MuonVal::MuonTesterTree::initialized ( ) const
inherited

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
inherited

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
inherited

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 }

◆ MuonTesterTree()

MuonVal::MuonTesterTree::MuonTesterTree

constructor delegates to the parent class

Definition at line 32 of file MuonTesterTree.cxx.

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

◆ name()

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

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)
inherited

returns the reference of the branch

◆ newMatrix() [1/2]

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

◆ newMatrix() [2/2]

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

◆ newScalar() [1/2]

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

◆ newScalar() [2/2]

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

◆ newSet()

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

◆ newVector() [1/2]

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

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 
)
inherited

Creates and returns branches with a default value.

◆ operator->() [1/2]

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

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
inherited

Definition at line 25 of file MuonTesterTree.cxx.

25 { return m_tree.get(); }

◆ path()

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

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)
inherited

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)
inherited

Definition at line 86 of file MuonTesterTree.cxx.

86 { removeBranch(&branch); }

◆ removeBranch() [2/2]

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

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)
inherited

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 ( )
inherited

TTree object.

Definition at line 22 of file MuonTesterTree.cxx.

22 { return m_tree.get(); }

◆ tree() [2/2]

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

Definition at line 24 of file MuonTesterTree.cxx.

24 { return m_tree.get(); }

◆ write()

StatusCode MuonVal::MuonTesterTree::write ( )
inherited

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 {}
privateinherited

Definition at line 145 of file MuonTesterTree.h.

◆ m_branches_to_init

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

Definition at line 143 of file MuonTesterTree.h.

◆ m_commonClients

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

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}
privateinherited

Definition at line 125 of file MuonTesterTree.h.

◆ m_dependencies

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

Definition at line 124 of file MuonTesterTree.h.

◆ m_directory

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

Definition at line 151 of file MuonTesterTree.h.

◆ m_excludedBranches

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

Definition at line 149 of file MuonTesterTree.h.

◆ m_filled

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

Definition at line 152 of file MuonTesterTree.h.

◆ m_friendLinks

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

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
privateinherited

Definition at line 162 of file MuonTesterTree.h.

◆ m_hist_svc

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

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}
privateinherited

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 {}
privateinherited

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_out_bucketEnd

MuonVal::ScalarBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_bucketEnd {newScalar<float>("bucketEnd", -1)}
protected

Definition at line 66 of file MuonPatternRecognitionTestTree.h.

◆ m_out_bucketStart

MuonVal::ScalarBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_bucketStart {newScalar<float>("bucketStart", 1)}
protected

Definition at line 65 of file MuonPatternRecognitionTestTree.h.

◆ m_out_chamberIndex

MuonVal::ScalarBranch<int>& MuonValR4::MuonPatternRecognitionTestTree::m_out_chamberIndex {newScalar<int>("chamberIndex")}
protected

====== Common block: Filled for all entries ===========

chamber index field

Definition at line 60 of file MuonPatternRecognitionTestTree.h.

◆ m_out_gen_Eta

MuonVal::ScalarBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_Eta {newScalar<float>("genEta",-10.)}
protected

global particle properties

Definition at line 74 of file MuonPatternRecognitionTestTree.h.

◆ m_out_gen_maxYhit

MuonVal::ScalarBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_maxYhit {newScalar<float>("genMaxYhit", -1.0)}
protected

Definition at line 92 of file MuonPatternRecognitionTestTree.h.

◆ m_out_gen_minYhit

MuonVal::ScalarBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_minYhit {newScalar<float>("genMinYhit", 1.0)}
protected

Definition at line 91 of file MuonPatternRecognitionTestTree.h.

◆ m_out_gen_nHits

MuonVal::ScalarBranch<unsigned short>& MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_nHits {newScalar<unsigned short>("genNHits",0)}
protected

Truth - hit count summary.

Definition at line 85 of file MuonPatternRecognitionTestTree.h.

◆ m_out_gen_nMDTHits

MuonVal::ScalarBranch<unsigned short>& MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_nMDTHits {newScalar<unsigned short>("genNMdtHits",0)}
protected

Definition at line 87 of file MuonPatternRecognitionTestTree.h.

◆ m_out_gen_nNswHits

MuonVal::ScalarBranch<unsigned short>& MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_nNswHits {newScalar<unsigned short>("genNNswHits",0)}
protected

Definition at line 89 of file MuonPatternRecognitionTestTree.h.

◆ m_out_gen_nRPCHits

MuonVal::ScalarBranch<unsigned short>& MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_nRPCHits {newScalar<unsigned short>("genNRpcHits",0)}
protected

Definition at line 86 of file MuonPatternRecognitionTestTree.h.

◆ m_out_gen_nTGCHits

MuonVal::ScalarBranch<unsigned short>& MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_nTGCHits {newScalar<unsigned short>("genNTgcHits",0)}
protected

Definition at line 88 of file MuonPatternRecognitionTestTree.h.

◆ m_out_gen_Phi

MuonVal::ScalarBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_Phi {newScalar<float>("genPhi",-10.)}
protected

Definition at line 75 of file MuonPatternRecognitionTestTree.h.

◆ m_out_gen_Pt

MuonVal::ScalarBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_Pt {newScalar<float>("genPt",-10.)}
protected

Definition at line 76 of file MuonPatternRecognitionTestTree.h.

◆ m_out_gen_Q

MuonVal::ScalarBranch<short>& MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_Q {newScalar<short>("genQ", 0)}
protected

Definition at line 77 of file MuonPatternRecognitionTestTree.h.

◆ m_out_gen_tanphi

MuonVal::ScalarBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_tanphi {newScalar<float>("genTanPhi", 0.0)}
protected

Definition at line 81 of file MuonPatternRecognitionTestTree.h.

◆ m_out_gen_tantheta

MuonVal::ScalarBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_tantheta {newScalar<float>("genTanTheta", 0.0)}
protected

Definition at line 80 of file MuonPatternRecognitionTestTree.h.

◆ m_out_gen_time

MuonVal::ScalarBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_time {newScalar<float>("genTime", 0.0)}
protected

Definition at line 83 of file MuonPatternRecognitionTestTree.h.

◆ m_out_gen_x0

MuonVal::ScalarBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_x0 {newScalar<float>("genX0", 0.0)}
protected

Definition at line 82 of file MuonPatternRecognitionTestTree.h.

◆ m_out_gen_y0

MuonVal::ScalarBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_y0 {newScalar<float>("genY0", 0.0)}
protected

Truth - segment parameters

Definition at line 79 of file MuonPatternRecognitionTestTree.h.

◆ m_out_hasTruth

MuonVal::ScalarBranch<bool>& MuonValR4::MuonPatternRecognitionTestTree::m_out_hasTruth {newScalar<bool>("hasTruth",false)}
protected

======= Truth block: Filled if we have a truth match. ============

existence of a truth match

Definition at line 71 of file MuonPatternRecognitionTestTree.h.

◆ m_out_seed_hasPhiExtension

MuonVal::VectorBranch<bool>& MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_hasPhiExtension {newVector<bool>("seedHasPhiExtension", false)}
protected

Definition at line 100 of file MuonPatternRecognitionTestTree.h.

◆ m_out_seed_ledToSegment

MuonVal::VectorBranch<bool>& MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_ledToSegment {newVector<bool>("seedConvertedToSegment",false)}
protected

Definition at line 123 of file MuonPatternRecognitionTestTree.h.

◆ m_out_seed_maxYhit

MuonVal::VectorBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_maxYhit {newVector<float>("seedMaxYhit", -1.0)}
protected

Definition at line 112 of file MuonPatternRecognitionTestTree.h.

◆ m_out_seed_minYhit

MuonVal::VectorBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_minYhit {newVector<float>("seedMinYhit", 1.0)}
protected

Definition at line 111 of file MuonPatternRecognitionTestTree.h.

◆ m_out_seed_n

MuonVal::ScalarBranch<unsigned>& MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_n {newScalar<unsigned>("nSeeds", 0)}
protected

========== Seed block: Filled when we have one or multiple seeds ============= seed count

Definition at line 96 of file MuonPatternRecognitionTestTree.h.

◆ m_out_seed_nEtaHits

MuonVal::VectorBranch<unsigned short>& MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_nEtaHits {newVector<unsigned short>("seedNEtaHits", 0)}
protected

Definition at line 115 of file MuonPatternRecognitionTestTree.h.

◆ m_out_seed_nHits

MuonVal::VectorBranch<unsigned short>& MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_nHits {newVector<unsigned short>("seedNHits", 0)}
protected

Definition at line 114 of file MuonPatternRecognitionTestTree.h.

◆ m_out_seed_nMatchedHits

MuonVal::VectorBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_nMatchedHits {newVector<float>("seedTruthMatchedHits", false)}
protected

Definition at line 102 of file MuonPatternRecognitionTestTree.h.

◆ m_out_seed_nMdt

MuonVal::VectorBranch<unsigned short>& MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_nMdt {newVector<unsigned short>("seedNMdtHits", 0)}
protected

Definition at line 117 of file MuonPatternRecognitionTestTree.h.

◆ m_out_seed_nMm

MuonVal::VectorBranch<unsigned short>& MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_nMm {newVector<unsigned short>("seedNMmHits", 0)}
protected

Definition at line 121 of file MuonPatternRecognitionTestTree.h.

◆ m_out_seed_nPhiHits

MuonVal::VectorBranch<unsigned short>& MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_nPhiHits {newVector<unsigned short>("seedNPhiHits", 0)}
protected

Definition at line 116 of file MuonPatternRecognitionTestTree.h.

◆ m_out_seed_nRpc

MuonVal::VectorBranch<unsigned short>& MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_nRpc {newVector<unsigned short>("seedNRpcHits", 0)}
protected

Definition at line 118 of file MuonPatternRecognitionTestTree.h.

◆ m_out_seed_nsTgc

MuonVal::VectorBranch<unsigned short>& MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_nsTgc {newVector<unsigned short>("seedNsTgcHits", 0)}
protected

Definition at line 120 of file MuonPatternRecognitionTestTree.h.

◆ m_out_seed_nTgc

MuonVal::VectorBranch<unsigned short>& MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_nTgc {newVector<unsigned short>("seedNTgcHits", 0)}
protected

Definition at line 119 of file MuonPatternRecognitionTestTree.h.

◆ m_out_seed_tanphi

MuonVal::VectorBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_tanphi {newVector<float>("seedTanPhi", 0.0)}
protected

Definition at line 108 of file MuonPatternRecognitionTestTree.h.

◆ m_out_seed_tantheta

MuonVal::VectorBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_tantheta {newVector<float>("seedTanTheta", 0.0)}
protected

Definition at line 107 of file MuonPatternRecognitionTestTree.h.

◆ m_out_seed_x0

MuonVal::VectorBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_x0 {newVector<float>("seedX0", 0.0)}
protected

Definition at line 106 of file MuonPatternRecognitionTestTree.h.

◆ m_out_seed_y0

MuonVal::VectorBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_y0 {newVector<float>("seedY0", 0.0)}
protected

Definition at line 105 of file MuonPatternRecognitionTestTree.h.

◆ m_out_segment_chi2

MuonVal::VectorBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_chi2 {newVector<float>("segmentChi2", -1.)}
protected

Definition at line 132 of file MuonPatternRecognitionTestTree.h.

◆ m_out_segment_err_tanphi

MuonVal::VectorBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_err_tanphi {newVector<float>("segmentErrTanPhi", -1.0)}
protected

Definition at line 151 of file MuonPatternRecognitionTestTree.h.

◆ m_out_segment_err_tantheta

MuonVal::VectorBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_err_tantheta {newVector<float>("segmentErrTanTheta", -1.0)}
protected

Definition at line 150 of file MuonPatternRecognitionTestTree.h.

◆ m_out_segment_err_time

MuonVal::VectorBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_err_time {newVector<float>("segmentErrTime", -1.0)}
protected

Definition at line 152 of file MuonPatternRecognitionTestTree.h.

◆ m_out_segment_err_x0

MuonVal::VectorBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_err_x0 {newVector<float>("segmentErrX0", -1.0)}
protected

Definition at line 149 of file MuonPatternRecognitionTestTree.h.

◆ m_out_segment_err_y0

MuonVal::VectorBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_err_y0 {newVector<float>("segmentErrY0", -1.0)}
protected

Definition at line 148 of file MuonPatternRecognitionTestTree.h.

◆ m_out_segment_fitIter

MuonVal::VectorBranch<uint16_t>& MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_fitIter {newVector<uint16_t>("segmentFitIterations", 0)}
protected

Definition at line 135 of file MuonPatternRecognitionTestTree.h.

◆ m_out_segment_hasPhi

MuonVal::VectorBranch<bool>& MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_hasPhi {newVector<bool>("segmentHasPhiHits", false)}
protected

Definition at line 138 of file MuonPatternRecognitionTestTree.h.

◆ m_out_segment_hasTimeFit

MuonVal::VectorBranch<bool>& MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_hasTimeFit {newVector<bool>("segmentHasTimeFit", false)}
protected

Definition at line 134 of file MuonPatternRecognitionTestTree.h.

◆ m_out_segment_maxYhit

MuonVal::VectorBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_maxYhit {newVector<float>("segmentMaxYhit", -1.0)}
protected

Definition at line 164 of file MuonPatternRecognitionTestTree.h.

◆ m_out_segment_minYhit

MuonVal::VectorBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_minYhit {newVector<float>("segmentMinYhit", 1.0)}
protected

Definition at line 163 of file MuonPatternRecognitionTestTree.h.

◆ m_out_segment_n

MuonVal::ScalarBranch<unsigned>& MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_n {newScalar<unsigned>("nSegments", 0)}
protected

========== Segment block: Filled when we have one or multiple segments =============

Definition at line 128 of file MuonPatternRecognitionTestTree.h.

◆ m_out_segment_nDoF

MuonVal::VectorBranch<uint16_t>& MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_nDoF {newVector<uint16_t>("segmentNdoF", 0)}
protected

Definition at line 133 of file MuonPatternRecognitionTestTree.h.

◆ m_out_segment_nMdtHits

MuonVal::VectorBranch<unsigned short>& MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_nMdtHits {newVector<unsigned short>("segmentNMdtHits", 0)}
protected

Definition at line 156 of file MuonPatternRecognitionTestTree.h.

◆ m_out_segment_nRpcEtaHits

MuonVal::VectorBranch<unsigned short>& MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_nRpcEtaHits {newVector<unsigned short>("segmentNRpcEtaHits", 0)}
protected

Definition at line 157 of file MuonPatternRecognitionTestTree.h.

◆ m_out_segment_nRpcPhiHits

MuonVal::VectorBranch<unsigned short>& MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_nRpcPhiHits {newVector<unsigned short>("segmentNRpcPhiHits", 0)}
protected

Definition at line 158 of file MuonPatternRecognitionTestTree.h.

◆ m_out_segment_nTgcEtaHits

MuonVal::VectorBranch<unsigned short>& MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_nTgcEtaHits {newVector<unsigned short>("segmentNTgcEtaHits", 0)}
protected

Definition at line 159 of file MuonPatternRecognitionTestTree.h.

◆ m_out_segment_nTgcPhiHits

MuonVal::VectorBranch<unsigned short>& MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_nTgcPhiHits {newVector<unsigned short>("segmentNTgcPhiHits", 0)}
protected

Definition at line 160 of file MuonPatternRecognitionTestTree.h.

◆ m_out_segment_tanphi

MuonVal::VectorBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_tanphi {newVector<float>("segmentTanPhi", 0.0)}
protected

Definition at line 144 of file MuonPatternRecognitionTestTree.h.

◆ m_out_segment_tantheta

MuonVal::VectorBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_tantheta {newVector<float>("segmentTanTheta", 0.0)}
protected

Definition at line 143 of file MuonPatternRecognitionTestTree.h.

◆ m_out_segment_time

MuonVal::VectorBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_time {newVector<float>("segmentTime", 0.)}
protected

Definition at line 145 of file MuonPatternRecognitionTestTree.h.

◆ m_out_segment_truthMatchedHits

MuonVal::VectorBranch<unsigned short>& MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_truthMatchedHits {newVector<unsigned short>("segmentTruthMatchedHits", 0)}
protected

Definition at line 155 of file MuonPatternRecognitionTestTree.h.

◆ m_out_segment_x0

MuonVal::VectorBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_x0 {newVector<float>("segmentX0", 0.0)}
protected

Definition at line 142 of file MuonPatternRecognitionTestTree.h.

◆ m_out_segment_y0

MuonVal::VectorBranch<float>& MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_y0 {newVector<float>("segmentY0", 0.0)}
protected

Definition at line 141 of file MuonPatternRecognitionTestTree.h.

◆ m_out_stationPhi

MuonVal::ScalarBranch<int>& MuonValR4::MuonPatternRecognitionTestTree::m_out_stationPhi {newScalar<int>("stationPhi")}
protected

phi index of the station

Definition at line 64 of file MuonPatternRecognitionTestTree.h.

◆ m_out_stationSide

MuonVal::ScalarBranch<short>& MuonValR4::MuonPatternRecognitionTestTree::m_out_stationSide {newScalar<short>("stationSide")}
protected

+1 for A-, -1 of C-side

Definition at line 62 of file MuonPatternRecognitionTestTree.h.

◆ m_path

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

Definition at line 129 of file MuonTesterTree.h.

◆ m_stream

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

Definition at line 128 of file MuonTesterTree.h.

◆ m_tree

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

Definition at line 127 of file MuonTesterTree.h.

◆ m_written

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

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
MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_nMatchedHits
MuonVal::VectorBranch< float > & m_out_seed_nMatchedHits
Definition: MuonPatternRecognitionTestTree.h:102
AthMessaging::m_lvl
std::atomic< MSG::Level > m_lvl
Current logging level.
Definition: AthMessaging.h:138
MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_tantheta
MuonVal::ScalarBranch< float > & m_out_gen_tantheta
Definition: MuonPatternRecognitionTestTree.h:80
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
MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_tantheta
MuonVal::VectorBranch< float > & m_out_segment_tantheta
Definition: MuonPatternRecognitionTestTree.h:143
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
MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_y0
MuonVal::ScalarBranch< float > & m_out_gen_y0
Truth - segment parameters
Definition: MuonPatternRecognitionTestTree.h:79
MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_err_tantheta
MuonVal::VectorBranch< float > & m_out_segment_err_tantheta
Definition: MuonPatternRecognitionTestTree.h:150
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_nsTgc
MuonVal::VectorBranch< unsigned short > & m_out_seed_nsTgc
Definition: MuonPatternRecognitionTestTree.h:120
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::init
StatusCode init(OWNER *instance)
Initialize method.
SG::Accessor< float >
MuonValR4::MuonPatternRecognitionTestTree::m_out_stationSide
MuonVal::ScalarBranch< short > & m_out_stationSide
+1 for A-, -1 of C-side
Definition: MuonPatternRecognitionTestTree.h:62
MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_nMdtHits
MuonVal::VectorBranch< unsigned short > & m_out_segment_nMdtHits
Definition: MuonPatternRecognitionTestTree.h:156
MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_Phi
MuonVal::ScalarBranch< float > & m_out_gen_Phi
Definition: MuonPatternRecognitionTestTree.h:75
MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_nMDTHits
MuonVal::ScalarBranch< unsigned short > & m_out_gen_nMDTHits
Definition: MuonPatternRecognitionTestTree.h:87
MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_err_tanphi
MuonVal::VectorBranch< float > & m_out_segment_err_tanphi
Definition: MuonPatternRecognitionTestTree.h:151
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_err_time
MuonVal::VectorBranch< float > & m_out_segment_err_time
Definition: MuonPatternRecognitionTestTree.h:152
MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_time
MuonVal::ScalarBranch< float > & m_out_gen_time
Definition: MuonPatternRecognitionTestTree.h:83
min
constexpr double min()
Definition: ap_fixedTest.cxx:26
xAOD::L2MuonParameters::BEE
@ BEE
BEE measurement point.
Definition: TrigMuonDefs.h:24
accumulate
bool accumulate(AccumulateMap &map, std::vector< module_t > const &modules, FPGATrackSimMatrixAccumulator const &acc)
Accumulates an accumulator (e.g.
Definition: FPGATrackSimMatrixAccumulator.cxx:22
MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_nTGCHits
MuonVal::ScalarBranch< unsigned short > & m_out_gen_nTGCHits
Definition: MuonPatternRecognitionTestTree.h:88
xAOD::UncalibMeasType::MMClusterType
@ MMClusterType
MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_err_y0
MuonVal::VectorBranch< float > & m_out_segment_err_y0
Definition: MuonPatternRecognitionTestTree.h:148
MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_nTgcPhiHits
MuonVal::VectorBranch< unsigned short > & m_out_segment_nTgcPhiHits
Definition: MuonPatternRecognitionTestTree.h:160
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
MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_truthMatchedHits
MuonVal::VectorBranch< unsigned short > & m_out_segment_truthMatchedHits
Definition: MuonPatternRecognitionTestTree.h:155
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
MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_maxYhit
MuonVal::ScalarBranch< float > & m_out_gen_maxYhit
Definition: MuonPatternRecognitionTestTree.h:92
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_maxYhit
MuonVal::VectorBranch< float > & m_out_segment_maxYhit
Definition: MuonPatternRecognitionTestTree.h:164
xAOD::UncalibMeasType::sTgcStripType
@ sTgcStripType
MuonValR4::MuonPatternRecognitionTestTree::m_out_bucketEnd
MuonVal::ScalarBranch< float > & m_out_bucketEnd
Definition: MuonPatternRecognitionTestTree.h:66
MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_nMdt
MuonVal::VectorBranch< unsigned short > & m_out_seed_nMdt
Definition: MuonPatternRecognitionTestTree.h:117
MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_nDoF
MuonVal::VectorBranch< uint16_t > & m_out_segment_nDoF
Definition: MuonPatternRecognitionTestTree.h:133
MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_nRpcPhiHits
MuonVal::VectorBranch< unsigned short > & m_out_segment_nRpcPhiHits
Definition: MuonPatternRecognitionTestTree.h:158
MuonR4::SegmentFit::makeLine
std::pair< Amg::Vector3D, Amg::Vector3D > makeLine(const Parameters &pars)
Returns the parsed parameters into an Eigen line parametrization.
Definition: SegmentFitterEventData.cxx:26
AthMessaging::m_imsg
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
Definition: AthMessaging.h:135
MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_nTgc
MuonVal::VectorBranch< unsigned short > & m_out_seed_nTgc
Definition: MuonPatternRecognitionTestTree.h:119
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:295
MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_nRpc
MuonVal::VectorBranch< unsigned short > & m_out_seed_nRpc
Definition: MuonPatternRecognitionTestTree.h:118
MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_nEtaHits
MuonVal::VectorBranch< unsigned short > & m_out_seed_nEtaHits
Definition: MuonPatternRecognitionTestTree.h:115
AthenaPoolTestWrite.stream
string stream
Definition: AthenaPoolTestWrite.py:12
MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_fitIter
MuonVal::VectorBranch< uint16_t > & m_out_segment_fitIter
Definition: MuonPatternRecognitionTestTree.h:135
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
MuonVal::MuonTesterTree::m_directory
TDirectory * m_directory
Definition: MuonTesterTree.h:151
MuonVal::MuonTesterTree::fileStream
const std::string & fileStream() const
file_stream of the analysis to which the tree belongs
Definition: MuonTesterTree.cxx:205
MuonR4::SegmentFit::ParamDefs::phi
@ phi
MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_Q
MuonVal::ScalarBranch< short > & m_out_gen_Q
Definition: MuonPatternRecognitionTestTree.h:77
xAOD::UncalibMeasType::TgcStripType
@ TgcStripType
MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_x0
MuonVal::ScalarBranch< float > & m_out_gen_x0
Definition: MuonPatternRecognitionTestTree.h:82
rerun_display.client
client
Definition: rerun_display.py:31
MuonR4::houghTanPhi
double houghTanPhi(const Amg::Vector3D &v)
: Returns the hough tanPhi [x] / [z]
Definition: SegmentFitterEventData.cxx:18
MuonVal::MuonTesterTree::m_branches_to_init
std::vector< IMuonTesterBranch * > m_branches_to_init
Definition: MuonTesterTree.h:143
MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_nHits
MuonVal::ScalarBranch< unsigned short > & m_out_gen_nHits
Truth - hit count summary.
Definition: MuonPatternRecognitionTestTree.h:85
MuonValR4::MuonPatternRecognitionTestTree::m_out_bucketStart
MuonVal::ScalarBranch< float > & m_out_bucketStart
Definition: MuonPatternRecognitionTestTree.h:65
MuonVal::MuonTesterTree::isCommonTree
bool isCommonTree() const
Returns Whether the Tree is a common tree or not.
Definition: MuonTesterTree.cxx:265
MuonValR4::MuonPatternRecognitionTestTree::m_out_stationPhi
MuonVal::ScalarBranch< int > & m_out_stationPhi
phi index of the station
Definition: MuonPatternRecognitionTestTree.h:64
Generate_dsid_ranseed.seed
seed
Definition: Generate_dsid_ranseed.py:10
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_tanphi
MuonVal::VectorBranch< float > & m_out_seed_tanphi
Definition: MuonPatternRecognitionTestTree.h:108
MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_ledToSegment
MuonVal::VectorBranch< bool > & m_out_seed_ledToSegment
Definition: MuonPatternRecognitionTestTree.h:123
MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_nRPCHits
MuonVal::ScalarBranch< unsigned short > & m_out_gen_nRPCHits
Definition: MuonPatternRecognitionTestTree.h:86
lumiFormat.i
int i
Definition: lumiFormat.py:85
h
MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_nHits
MuonVal::VectorBranch< unsigned short > & m_out_seed_nHits
Definition: MuonPatternRecognitionTestTree.h:114
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_x0
MuonVal::VectorBranch< float > & m_out_seed_x0
Definition: MuonPatternRecognitionTestTree.h:106
MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_y0
MuonVal::VectorBranch< float > & m_out_seed_y0
Definition: MuonPatternRecognitionTestTree.h:105
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
MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_hasPhi
MuonVal::VectorBranch< bool > & m_out_segment_hasPhi
Definition: MuonPatternRecognitionTestTree.h:138
MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_tanphi
MuonVal::VectorBranch< float > & m_out_segment_tanphi
Definition: MuonPatternRecognitionTestTree.h:144
test_pyathena.parent
parent
Definition: test_pyathena.py:15
AthMessaging
Class to provide easy MsgStream access and capabilities.
Definition: AthMessaging.h:55
xAOD::Other
@ Other
MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_nTgcEtaHits
MuonVal::VectorBranch< unsigned short > & m_out_segment_nTgcEtaHits
Definition: MuonPatternRecognitionTestTree.h:159
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_maxYhit
MuonVal::VectorBranch< float > & m_out_seed_maxYhit
Definition: MuonPatternRecognitionTestTree.h:112
MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_nMm
MuonVal::VectorBranch< unsigned short > & m_out_seed_nMm
Definition: MuonPatternRecognitionTestTree.h:121
MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_y0
MuonVal::VectorBranch< float > & m_out_segment_y0
Definition: MuonPatternRecognitionTestTree.h:141
MuonR4::SegmentFit::ParamDefs::x0
@ x0
AthMessaging::msg
MsgStream & msg() const
The standard message stream.
Definition: AthMessaging.h:164
MuonValR4::MuonPatternRecognitionTestTree::m_out_chamberIndex
MuonVal::ScalarBranch< int > & m_out_chamberIndex
====== Common block: Filled for all entries ===========
Definition: MuonPatternRecognitionTestTree.h:60
MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_x0
MuonVal::VectorBranch< float > & m_out_segment_x0
Definition: MuonPatternRecognitionTestTree.h:142
MuonR4::SegmentFit::ParamDefs::time
@ time
MuonVal::VectorBranch::push_back
void push_back(const T &value)
Adds a new element at the end of the vector.
MuonR4::SpacePoint
The muon space point is the combination of two uncalibrated measurements one of them measures the eta...
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePoint.h:18
Muon::IMuonIdHelperSvc::isMdt
virtual bool isMdt(const Identifier &id) const =0
returns whether this is a MDT Identifier or not
MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_chi2
MuonVal::VectorBranch< float > & m_out_segment_chi2
Definition: MuonPatternRecognitionTestTree.h:132
MuonR4::SegmentFit::ParamDefs::y0
@ y0
MuonVal::MuonTesterTree::name
std::string name() const
Name of the tree.
Definition: MuonTesterTree.cxx:20
MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_nPhiHits
MuonVal::VectorBranch< unsigned short > & m_out_seed_nPhiHits
Definition: MuonPatternRecognitionTestTree.h:116
MuonVal::MuonTesterTree::m_dependencies
std::vector< DataDependency > m_dependencies
Definition: MuonTesterTree.h:124
MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_tantheta
MuonVal::VectorBranch< float > & m_out_seed_tantheta
Definition: MuonPatternRecognitionTestTree.h:107
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
MuonR4::SegmentFit::toInt
constexpr int toInt(const ParamDefs p)
Definition: MuonHoughDefs.h:42
MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_minYhit
MuonVal::VectorBranch< float > & m_out_segment_minYhit
Definition: MuonPatternRecognitionTestTree.h:163
MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_nNswHits
MuonVal::ScalarBranch< unsigned short > & m_out_gen_nNswHits
Definition: MuonPatternRecognitionTestTree.h:89
MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_hasPhiExtension
MuonVal::VectorBranch< bool > & m_out_seed_hasPhiExtension
Definition: MuonPatternRecognitionTestTree.h:100
MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_err_x0
MuonVal::VectorBranch< float > & m_out_segment_err_x0
Definition: MuonPatternRecognitionTestTree.h:149
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
python.copyTCTOutput.locDir
locDir
Definition: copyTCTOutput.py:113
MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_n
MuonVal::ScalarBranch< unsigned > & m_out_segment_n
========== Segment block: Filled when we have one or multiple segments =============
Definition: MuonPatternRecognitionTestTree.h:128
MuonVal::MuonTesterTree::m_hash_br
std::shared_ptr< EventHashBranch > m_hash_br
Definition: MuonTesterTree.h:162
Muon::MuonStationIndex::MDT
@ MDT
Definition: MuonStationIndex.h:56
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
CaloCondBlobAlgs_fillNoiseFromASCII.hash
dictionary hash
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:109
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
MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_time
MuonVal::VectorBranch< float > & m_out_segment_time
Definition: MuonPatternRecognitionTestTree.h:145
MuonVal::ScalarBranch::getVariable
const T & getVariable() const
AthMessaging::m_nm
std::string m_nm
Message source name.
Definition: AthMessaging.h:129
MuonGMR4::MuonDetectorManager::idHelperSvc
const Muon::IMuonIdHelperSvc * idHelperSvc() const
Returns a pointer to the central MuonIdHelperSvc.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonDetectorManager.cxx:140
MuonVal::MuonTesterTree::DataDependency
IMuonTesterBranch::DataDependency DataDependency
Definition: MuonTesterTree.h:123
MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_minYhit
MuonVal::VectorBranch< float > & m_out_seed_minYhit
Definition: MuonPatternRecognitionTestTree.h:111
MuonVal::MuonTesterTree::path
const std::string & path() const
sub directory in the TFile
Definition: MuonTesterTree.cxx:223
MuonR4::SegmentFit::localSegmentPars
Parameters localSegmentPars(const xAOD::MuonSegment &seg)
Returns the localSegPars decoration from a xAODMuon::Segment.
Definition: SegmentFitterEventData.cxx:32
MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_Eta
MuonVal::ScalarBranch< float > & m_out_gen_Eta
global particle properties
Definition: MuonPatternRecognitionTestTree.h:74
MuonVal::MuonTesterTree::getFriends
const std::vector< FriendTreePtr > & getFriends() const
Definition: MuonTesterTree.cxx:262
MuonValR4::MuonPatternRecognitionTestTree::m_out_hasTruth
MuonVal::ScalarBranch< bool > & m_out_hasTruth
======= Truth block: Filled if we have a truth match. ============
Definition: MuonPatternRecognitionTestTree.h:71
MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_minYhit
MuonVal::ScalarBranch< float > & m_out_gen_minYhit
Definition: MuonPatternRecognitionTestTree.h:91
MuonValR4::MuonPatternRecognitionTestTree::m_out_seed_n
MuonVal::ScalarBranch< unsigned > & m_out_seed_n
========== Seed block: Filled when we have one or multiple seeds ============= seed count
Definition: MuonPatternRecognitionTestTree.h:96
AthMessaging::initMessaging
void initMessaging() const
Initialize our message level and MessageSvc.
Definition: AthMessaging.cxx:39
MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_nRpcEtaHits
MuonVal::VectorBranch< unsigned short > & m_out_segment_nRpcEtaHits
Definition: MuonPatternRecognitionTestTree.h:157
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
python.PyAthena.obj
obj
Definition: PyAthena.py:132
MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_Pt
MuonVal::ScalarBranch< float > & m_out_gen_Pt
Definition: MuonPatternRecognitionTestTree.h:76
xAOD::UncalibMeasType::RpcStripType
@ RpcStripType
MuonVal::MuonTesterTree::tree
TTree * tree()
TTree object.
Definition: MuonTesterTree.cxx:22
xAOD::UncalibMeasType::MdtDriftCircleType
@ MdtDriftCircleType
MuonVal::MuonTesterTree::m_stream
std::string m_stream
Definition: MuonTesterTree.h:128
MuonValR4::MuonPatternRecognitionTestTree::m_out_segment_hasTimeFit
MuonVal::VectorBranch< bool > & m_out_segment_hasTimeFit
Definition: MuonPatternRecognitionTestTree.h:134
MuonR4::houghTanTheta
double houghTanTheta(const Amg::Vector3D &v)
Returns the hough tanTheta [y] / [z].
Definition: SegmentFitterEventData.cxx:14
MuonR4::getMatchingSimHits
std::unordered_set< const xAOD::MuonSimHit * > getMatchingSimHits(const xAOD::MuonSegment &segment)
: Returns all sim hits matched to a xAOD::MuonSegment
Definition: MuonSimHitHelpers.cxx:24
MuonVal::MuonTesterTree::removeBranch
void removeBranch(IMuonTesterBranch *branch)
In case instances of a certain branch type are destroyed before hand.
Definition: MuonTesterTree.cxx:83
MuonR4::SegmentFit::ParamDefs::theta
@ theta
MuonVal::MuonTesterTree::m_excludedBranches
std::set< std::string > m_excludedBranches
Definition: MuonTesterTree.h:149
NSWL1::PadTriggerAdapter::segment
Muon::NSW_PadTriggerSegment segment(const NSWL1::PadTrigger &data)
Definition: PadTriggerAdapter.cxx:5
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
MuonGMR4::MuonDetectorManager::getReadoutElement
const MuonReadoutElement * getReadoutElement(const Identifier &id) const
Returns a generic Muon readout element.
MuonValR4::MuonPatternRecognitionTestTree::m_out_gen_tanphi
MuonVal::ScalarBranch< float > & m_out_gen_tanphi
Definition: MuonPatternRecognitionTestTree.h:81