ATLAS Offline Software
Loading...
Searching...
No Matches
MuonCombinedDebuggerTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef MUONCOMBINEDBASETOOLS_MUONCOMBINEDDEBUGGERTOOL_H
6#define MUONCOMBINEDBASETOOLS_MUONCOMBINEDDEBUGGERTOOL_H
7
8#include <string>
9#include <vector>
10
13#include "GaudiKernel/ITHistSvc.h"
14#include "GaudiKernel/ToolHandle.h"
19
20class TTree;
21
22namespace MuonCombined {
23
24 class MuonCombinedDebuggerTool : public AthAlgTool // the MuonCombinedDebuggerTool can only be used when running with one thread
25 {
26 public:
27 MuonCombinedDebuggerTool(const std::string& type, const std::string& name, const IInterface* parent);
29
30 static const InterfaceID& interfaceID() {
31 static const InterfaceID IID_MuonCombinedDebuggerTool("MuonCombined::MuonCombinedDebuggerTool", 1, 0);
32 return IID_MuonCombinedDebuggerTool;
33 }
34
35 StatusCode initialize() override;
36
37 void fillBranches(const MuonCandidateCollection& muonCandidates, const InDetCandidateCollection& inDetCandidates);
38
39 void fillMsIdBranches(const MuonCandidateCollection& muonCandidates, const InDetCandidateCollection& inDetCandidates);
40
41 void fillIdBranches(const InDetCandidateCollection& inDetCandidates);
42
43 void fillMsBranches(const MuonCandidateCollection& muonCandidates);
44
45 private:
46 void bookBranches();
47
48 ToolHandle<Rec::IMuonMatchQuality> m_matchQuality{this, "MuonMatchQuality", "Rec::MuonMatchQuality/MuonMatchQuality"};
49 ToolHandle<Trk::ITruthToTrack> m_truthToTrack{this, "TruthToTrack", "Trk::TruthToTrack/TruthToTrack"};
50
52
53 TTree* m_recoTree;
55
56 std::vector<int> m_mstrack_has_truth;
57 std::vector<int> m_mstrack_has_truth_par;
58 std::vector<int> m_mstrack_truth_pdgid;
59 std::vector<int> m_mstrack_truth_uniqueID;
60 std::vector<double> m_mstrack_truth_sur_x;
61 std::vector<double> m_mstrack_truth_sur_y;
62 std::vector<double> m_mstrack_truth_sur_z;
63 std::vector<double> m_mstrack_truth_d0;
64 std::vector<double> m_mstrack_truth_z0;
65 std::vector<double> m_mstrack_truth_phi0;
66 std::vector<double> m_mstrack_truth_theta;
67 std::vector<double> m_mstrack_truth_qOverP;
68
69 std::vector<double> m_mstrack_sur_x;
70 std::vector<double> m_mstrack_sur_y;
71 std::vector<double> m_mstrack_sur_z;
72 std::vector<double> m_mstrack_d0;
73 std::vector<double> m_mstrack_z0;
74 std::vector<double> m_mstrack_phi0;
75 std::vector<double> m_mstrack_theta;
76 std::vector<double> m_mstrack_qOverP;
77 std::vector<double> m_mstrack_cov_d0;
78 std::vector<double> m_mstrack_cov_z0;
79 std::vector<double> m_mstrack_cov_phi0;
80 std::vector<double> m_mstrack_cov_theta;
81 std::vector<double> m_mstrack_cov_qOverP;
82
83 std::vector<int> m_mstrack_has_sa;
84 std::vector<double> m_mstrack_sa_sur_x;
85 std::vector<double> m_mstrack_sa_sur_y;
86 std::vector<double> m_mstrack_sa_sur_z;
87 std::vector<double> m_mstrack_sa_d0;
88 std::vector<double> m_mstrack_sa_z0;
89 std::vector<double> m_mstrack_sa_phi0;
90 std::vector<double> m_mstrack_sa_theta;
91 std::vector<double> m_mstrack_sa_qOverP;
92 std::vector<double> m_mstrack_sa_cov_d0;
93 std::vector<double> m_mstrack_sa_cov_z0;
94 std::vector<double> m_mstrack_sa_cov_phi0;
95 std::vector<double> m_mstrack_sa_cov_theta;
96 std::vector<double> m_mstrack_sa_cov_qOverP;
97
98 std::vector<int> m_idtrack_has_truth;
99 std::vector<int> m_idtrack_has_truth_par;
100 std::vector<int> m_idtrack_truth_pdgid;
101 std::vector<int> m_idtrack_truth_uniqueID;
102 std::vector<double> m_idtrack_truth_sur_x;
103 std::vector<double> m_idtrack_truth_sur_y;
104 std::vector<double> m_idtrack_truth_sur_z;
105 std::vector<double> m_idtrack_truth_d0;
106 std::vector<double> m_idtrack_truth_z0;
107 std::vector<double> m_idtrack_truth_phi0;
108 std::vector<double> m_idtrack_truth_theta;
109 std::vector<double> m_idtrack_truth_qOverP;
110
111 std::vector<double> m_idtrack_sur_x;
112 std::vector<double> m_idtrack_sur_y;
113 std::vector<double> m_idtrack_sur_z;
114 std::vector<double> m_idtrack_d0;
115 std::vector<double> m_idtrack_z0;
116 std::vector<double> m_idtrack_phi0;
117 std::vector<double> m_idtrack_theta;
118 std::vector<double> m_idtrack_qOverP;
119 std::vector<double> m_idtrack_cov_d0;
120 std::vector<double> m_idtrack_cov_z0;
121 std::vector<double> m_idtrack_cov_phi0;
122 std::vector<double> m_idtrack_cov_theta;
123 std::vector<double> m_idtrack_cov_qOverP;
124
125 std::vector<std::vector<double> > m_ms_id_ochi2;
126 std::vector<std::vector<int> > m_ms_id_ondf;
127 std::vector<std::vector<double> > m_ms_id_oprob;
128 std::vector<std::vector<double> > m_ms_id_ichi2;
129 std::vector<std::vector<int> > m_ms_id_indf;
130 std::vector<std::vector<double> > m_ms_id_iprob;
131 };
132
133} // namespace MuonCombined
134
135#endif
Extrapolation for HepMC particles.
DataVector< MuonCombined::InDetCandidate > InDetCandidateCollection
This typedef represents a collection of InDetCandidate objects.
DataVector< MuonCombined::MuonCandidate > MuonCandidateCollection
This typedef represents a collection of MuonCandidate objects.
Define macros for attributes used to control the static checker.
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
std::vector< std::vector< double > > m_ms_id_iprob
std::vector< std::vector< int > > m_ms_id_indf
ToolHandle< Rec::IMuonMatchQuality > m_matchQuality
MuonCombinedDebuggerTool(const std::string &type, const std::string &name, const IInterface *parent)
std::vector< std::vector< double > > m_ms_id_ochi2
void fillMsIdBranches(const MuonCandidateCollection &muonCandidates, const InDetCandidateCollection &inDetCandidates)
ToolHandle< Trk::ITruthToTrack > m_truthToTrack
std::vector< std::vector< int > > m_ms_id_ondf
void fillIdBranches(const InDetCandidateCollection &inDetCandidates)
std::vector< std::vector< double > > m_ms_id_ichi2
void fillBranches(const MuonCandidateCollection &muonCandidates, const InDetCandidateCollection &inDetCandidates)
std::vector< std::vector< double > > m_ms_id_oprob
void fillMsBranches(const MuonCandidateCollection &muonCandidates)
The MuonTagToSegMap is an auxillary construct that links the MuonSegments associated with a combined ...