Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
FPGATrackSimGNNRootOutputTool.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2 
3 #ifndef FPGATRACKSIMGNNROOTOUTPUTTOOL_H
4 #define FPGATRACKSIMGNNROOTOUTPUTTOOL_H
5 
21 #include "GaudiKernel/ServiceHandle.h"
23 
28 
29 #include "GaudiKernel/ITHistSvc.h"
30 #include "TTree.h"
31 
33 {
34  public:
35 
37  // AthAlgTool
38 
39  FPGATrackSimGNNRootOutputTool(const std::string&, const std::string&, const IInterface*);
40 
41  virtual StatusCode initialize() override;
42 
44  // Functions
45 
46  StatusCode fillTree(const std::vector<std::shared_ptr<const FPGATrackSimHit>> & hits,
47  const std::vector<std::shared_ptr<FPGATrackSimGNNHit>> & gnn_hits,
48  const std::vector<std::shared_ptr<FPGATrackSimGNNEdge>> & edges,
49  const std::vector<std::shared_ptr<const FPGATrackSimRoad>> & roads);
50 
51  private:
52 
54  // Helpers
55 
57  void resetVectors();
58 
60  // Handles
61 
62  ServiceHandle<ITHistSvc> m_tHistSvc {this, "THistSvc", "THistSvc"};
63 
65  // Convenience
66 
67  TTree *m_hit_tree = nullptr; // output FPGATrackSimHit tree
68  std::vector<unsigned int> m_hit_id{};
69  std::vector<unsigned int> m_hit_module_id{};
70  std::vector<float> m_hit_x{};
71  std::vector<float> m_hit_y{};
72  std::vector<float> m_hit_z{};
73  std::vector<float> m_hit_r{};
74  std::vector<float> m_hit_phi{};
75  std::vector<bool> m_hit_isPixel{};
76  std::vector<bool> m_hit_isStrip{};
77  std::vector<int> m_hit_hitType{};
78  std::vector<HepMcParticleLink::barcode_type> m_hit_uniqueID{};
79  std::vector<long> m_hit_eventIndex{};
80  std::vector<float> m_hit_cluster_x{};
81  std::vector<float> m_hit_cluster_y{};
82  std::vector<float> m_hit_cluster_z{};
83 
84  TTree *m_GNNHit_tree = nullptr; // output FPGATrackSimGNNHit tree
85  std::vector<unsigned int> m_GNNHit_id{};
86  std::vector<unsigned int> m_GNNHit_module_id{};
87  std::vector<int> m_GNNHit_road_id{};
88  std::vector<float> m_GNNHit_x{};
89  std::vector<float> m_GNNHit_y{};
90  std::vector<float> m_GNNHit_z{};
91  std::vector<float> m_GNNHit_r{};
92  std::vector<float> m_GNNHit_phi{};
93  std::vector<float> m_GNNHit_eta{};
94  std::vector<float> m_GNNHit_cluster_x_1{};
95  std::vector<float> m_GNNHit_cluster_y_1{};
96  std::vector<float> m_GNNHit_cluster_z_1{};
97  std::vector<float> m_GNNHit_cluster_r_1{};
98  std::vector<float> m_GNNHit_cluster_phi_1{};
99  std::vector<float> m_GNNHit_cluster_eta_1{};
100  std::vector<float> m_GNNHit_cluster_x_2{};
101  std::vector<float> m_GNNHit_cluster_y_2{};
102  std::vector<float> m_GNNHit_cluster_z_2{};
103  std::vector<float> m_GNNHit_cluster_r_2{};
104  std::vector<float> m_GNNHit_cluster_phi_2{};
105  std::vector<float> m_GNNHit_cluster_eta_2{};
106 
107  TTree *m_GNNEdge_tree = nullptr; // output FPGATrackSimGNNEdge tree
108  std::vector<unsigned int> m_GNNEdge_index_1{};
109  std::vector<unsigned int> m_GNNEdge_index_2{};
110  std::vector<float> m_GNNEdge_dR{};
111  std::vector<float> m_GNNEdge_dPhi{};
112  std::vector<float> m_GNNEdge_dZ{};
113  std::vector<float> m_GNNEdge_dEta{};
114  std::vector<float> m_GNNEdge_phiSlope{};
115  std::vector<float> m_GNNEdge_rPhiSlope{};
116  std::vector<float> m_GNNEdge_score{};
117 
118  TTree *m_road_tree = nullptr; // output FPGATrackSimRoad tree
119  std::vector<int> m_road_id{};
120  std::vector<size_t> m_road_nHits{};
121  std::vector<std::vector<size_t>> m_road_nHits_layer{};
122  std::vector<size_t> m_road_nLayers{};
123  std::vector<std::vector<std::vector<HepMcParticleLink::barcode_type>>> m_road_hit_uniqueID{};
124  std::vector<std::vector<std::vector<HepMcParticleLink::barcode_type>>> m_road_hit_barcode{};
125  std::vector<std::vector<std::vector<float>>> m_road_hit_z{};
126  std::vector<std::vector<std::vector<float>>> m_road_hit_r{};
127 };
128 
129 #endif // FPGARACKSIMGNNROOTOUTPUTTOOL_H
FPGATrackSimGNNRootOutputTool::m_road_hit_uniqueID
std::vector< std::vector< std::vector< HepMcParticleLink::barcode_type > > > m_road_hit_uniqueID
Definition: FPGATrackSimGNNRootOutputTool.h:123
FPGATrackSimGNNRootOutputTool::m_GNNHit_id
std::vector< unsigned int > m_GNNHit_id
Definition: FPGATrackSimGNNRootOutputTool.h:85
FPGATrackSimGNNRootOutputTool
Definition: FPGATrackSimGNNRootOutputTool.h:33
FPGATrackSimGNNRootOutputTool::m_GNNHit_module_id
std::vector< unsigned int > m_GNNHit_module_id
Definition: FPGATrackSimGNNRootOutputTool.h:86
FPGATrackSimGNNRootOutputTool::m_road_tree
TTree * m_road_tree
Definition: FPGATrackSimGNNRootOutputTool.h:118
FPGATrackSimGNNRootOutputTool::m_GNNHit_cluster_eta_1
std::vector< float > m_GNNHit_cluster_eta_1
Definition: FPGATrackSimGNNRootOutputTool.h:99
FPGATrackSimGNNRootOutputTool::m_hit_phi
std::vector< float > m_hit_phi
Definition: FPGATrackSimGNNRootOutputTool.h:74
TRTCalib_Extractor.hits
hits
Definition: TRTCalib_Extractor.py:35
FPGATrackSimGNNRootOutputTool::m_GNNHit_cluster_phi_1
std::vector< float > m_GNNHit_cluster_phi_1
Definition: FPGATrackSimGNNRootOutputTool.h:98
FPGATrackSimGNNRootOutputTool::m_road_nHits
std::vector< size_t > m_road_nHits
Definition: FPGATrackSimGNNRootOutputTool.h:120
FPGATrackSimGNNRootOutputTool::m_GNNHit_tree
TTree * m_GNNHit_tree
Definition: FPGATrackSimGNNRootOutputTool.h:84
FPGATrackSimGNNRootOutputTool::m_GNNHit_r
std::vector< float > m_GNNHit_r
Definition: FPGATrackSimGNNRootOutputTool.h:91
FPGATrackSimGNNRootOutputTool::m_hit_y
std::vector< float > m_hit_y
Definition: FPGATrackSimGNNRootOutputTool.h:71
FPGATrackSimGNNRootOutputTool::bookTree
StatusCode bookTree()
Definition: FPGATrackSimGNNRootOutputTool.cxx:23
FPGATrackSimGNNRootOutputTool::m_road_hit_r
std::vector< std::vector< std::vector< float > > > m_road_hit_r
Definition: FPGATrackSimGNNRootOutputTool.h:126
FPGATrackSimGNNRootOutputTool::m_hit_x
std::vector< float > m_hit_x
Definition: FPGATrackSimGNNRootOutputTool.h:70
FPGATrackSimGNNRootOutputTool::m_GNNEdge_dPhi
std::vector< float > m_GNNEdge_dPhi
Definition: FPGATrackSimGNNRootOutputTool.h:111
FPGATrackSimGNNRootOutputTool::m_GNNHit_cluster_y_2
std::vector< float > m_GNNHit_cluster_y_2
Definition: FPGATrackSimGNNRootOutputTool.h:101
FPGATrackSimGNNEdge.h
FPGATrackSim-specific class to represent an edge as a connection between two hits in the detector use...
FPGATrackSimGNNRootOutputTool::m_hit_uniqueID
std::vector< HepMcParticleLink::barcode_type > m_hit_uniqueID
Definition: FPGATrackSimGNNRootOutputTool.h:78
FPGATrackSimGNNRootOutputTool::m_GNNHit_cluster_eta_2
std::vector< float > m_GNNHit_cluster_eta_2
Definition: FPGATrackSimGNNRootOutputTool.h:105
FPGATrackSimGNNRootOutputTool::m_GNNHit_cluster_z_1
std::vector< float > m_GNNHit_cluster_z_1
Definition: FPGATrackSimGNNRootOutputTool.h:96
FPGATrackSimGNNRootOutputTool::resetVectors
void resetVectors()
Definition: FPGATrackSimGNNRootOutputTool.cxx:193
FPGATrackSimGNNRootOutputTool::fillTree
StatusCode fillTree(const std::vector< std::shared_ptr< const FPGATrackSimHit >> &hits, const std::vector< std::shared_ptr< FPGATrackSimGNNHit >> &gnn_hits, const std::vector< std::shared_ptr< FPGATrackSimGNNEdge >> &edges, const std::vector< std::shared_ptr< const FPGATrackSimRoad >> &roads)
Definition: FPGATrackSimGNNRootOutputTool.cxx:94
FPGATrackSimGNNRootOutputTool::m_GNNHit_y
std::vector< float > m_GNNHit_y
Definition: FPGATrackSimGNNRootOutputTool.h:89
FPGATrackSimGNNRootOutputTool::m_GNNHit_cluster_phi_2
std::vector< float > m_GNNHit_cluster_phi_2
Definition: FPGATrackSimGNNRootOutputTool.h:104
FPGATrackSimGNNRootOutputTool::m_hit_tree
TTree * m_hit_tree
Definition: FPGATrackSimGNNRootOutputTool.h:67
FPGATrackSimGNNRootOutputTool::m_GNNHit_phi
std::vector< float > m_GNNHit_phi
Definition: FPGATrackSimGNNRootOutputTool.h:92
FPGATrackSimGNNRootOutputTool::m_hit_isStrip
std::vector< bool > m_hit_isStrip
Definition: FPGATrackSimGNNRootOutputTool.h:76
FPGATrackSimGNNRootOutputTool::m_hit_eventIndex
std::vector< long > m_hit_eventIndex
Definition: FPGATrackSimGNNRootOutputTool.h:79
FPGATrackSimGNNRootOutputTool::m_hit_hitType
std::vector< int > m_hit_hitType
Definition: FPGATrackSimGNNRootOutputTool.h:77
FPGATrackSimGNNRootOutputTool::m_hit_isPixel
std::vector< bool > m_hit_isPixel
Definition: FPGATrackSimGNNRootOutputTool.h:75
FPGATrackSimGNNRootOutputTool::m_road_hit_z
std::vector< std::vector< std::vector< float > > > m_road_hit_z
Definition: FPGATrackSimGNNRootOutputTool.h:125
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
FPGATrackSimGNNRootOutputTool::m_GNNHit_x
std::vector< float > m_GNNHit_x
Definition: FPGATrackSimGNNRootOutputTool.h:88
FPGATrackSimGNNRootOutputTool::m_GNNEdge_dZ
std::vector< float > m_GNNEdge_dZ
Definition: FPGATrackSimGNNRootOutputTool.h:112
FPGATrackSimGNNRootOutputTool::m_GNNEdge_score
std::vector< float > m_GNNEdge_score
Definition: FPGATrackSimGNNRootOutputTool.h:116
FPGATrackSimGNNRootOutputTool::m_GNNEdge_index_1
std::vector< unsigned int > m_GNNEdge_index_1
Definition: FPGATrackSimGNNRootOutputTool.h:108
FPGATrackSimGNNRootOutputTool::m_GNNHit_cluster_y_1
std::vector< float > m_GNNHit_cluster_y_1
Definition: FPGATrackSimGNNRootOutputTool.h:95
FPGATrackSimGNNRootOutputTool::m_GNNHit_cluster_x_1
std::vector< float > m_GNNHit_cluster_x_1
Definition: FPGATrackSimGNNRootOutputTool.h:94
FPGATrackSimGNNRootOutputTool::m_hit_r
std::vector< float > m_hit_r
Definition: FPGATrackSimGNNRootOutputTool.h:73
FPGATrackSimGNNRootOutputTool::m_GNNHit_road_id
std::vector< int > m_GNNHit_road_id
Definition: FPGATrackSimGNNRootOutputTool.h:87
FPGATrackSimGNNHit.h
FPGATrackSim-specific class to represent an hit in the detector used for GNN pattern recognition.
FPGATrackSimHit.h
: FPGATrackSim-specific class to represent an hit in the detector.
FPGATrackSimGNNRootOutputTool::m_hit_id
std::vector< unsigned int > m_hit_id
Definition: FPGATrackSimGNNRootOutputTool.h:68
FPGATrackSimGNNRootOutputTool::m_road_hit_barcode
std::vector< std::vector< std::vector< HepMcParticleLink::barcode_type > > > m_road_hit_barcode
Definition: FPGATrackSimGNNRootOutputTool.h:124
FPGATrackSimGNNRootOutputTool::FPGATrackSimGNNRootOutputTool
FPGATrackSimGNNRootOutputTool(const std::string &, const std::string &, const IInterface *)
Definition: FPGATrackSimGNNRootOutputTool.cxx:8
FPGATrackSimGNNRootOutputTool::m_hit_cluster_y
std::vector< float > m_hit_cluster_y
Definition: FPGATrackSimGNNRootOutputTool.h:81
FPGATrackSimGNNRootOutputTool::m_hit_cluster_z
std::vector< float > m_hit_cluster_z
Definition: FPGATrackSimGNNRootOutputTool.h:82
FPGATrackSimGNNRootOutputTool::m_hit_module_id
std::vector< unsigned int > m_hit_module_id
Definition: FPGATrackSimGNNRootOutputTool.h:69
FPGATrackSimGNNRootOutputTool::m_GNNEdge_rPhiSlope
std::vector< float > m_GNNEdge_rPhiSlope
Definition: FPGATrackSimGNNRootOutputTool.h:115
FPGATrackSimGNNRootOutputTool::m_GNNEdge_tree
TTree * m_GNNEdge_tree
Definition: FPGATrackSimGNNRootOutputTool.h:107
FPGATrackSimGNNRootOutputTool::m_GNNHit_eta
std::vector< float > m_GNNHit_eta
Definition: FPGATrackSimGNNRootOutputTool.h:93
FPGATrackSimGNNRootOutputTool::m_GNNEdge_dR
std::vector< float > m_GNNEdge_dR
Definition: FPGATrackSimGNNRootOutputTool.h:110
FPGATrackSimGNNRootOutputTool::m_GNNEdge_index_2
std::vector< unsigned int > m_GNNEdge_index_2
Definition: FPGATrackSimGNNRootOutputTool.h:109
FPGATrackSimGNNRootOutputTool::m_GNNHit_cluster_x_2
std::vector< float > m_GNNHit_cluster_x_2
Definition: FPGATrackSimGNNRootOutputTool.h:100
FPGATrackSimRoad.h
Defines a class for roads.
AthAlgTool
Definition: AthAlgTool.h:26
FPGATrackSimGNNRootOutputTool::initialize
virtual StatusCode initialize() override
Definition: FPGATrackSimGNNRootOutputTool.cxx:13
FPGATrackSimGNNRootOutputTool::m_GNNEdge_phiSlope
std::vector< float > m_GNNEdge_phiSlope
Definition: FPGATrackSimGNNRootOutputTool.h:114
FPGATrackSimGNNRootOutputTool::m_road_id
std::vector< int > m_road_id
Definition: FPGATrackSimGNNRootOutputTool.h:119
FPGATrackSimGNNRootOutputTool::m_hit_z
std::vector< float > m_hit_z
Definition: FPGATrackSimGNNRootOutputTool.h:72
FPGATrackSimGNNRootOutputTool::m_tHistSvc
ServiceHandle< ITHistSvc > m_tHistSvc
Definition: FPGATrackSimGNNRootOutputTool.h:62
FPGATrackSimGNNRootOutputTool::m_GNNHit_cluster_r_2
std::vector< float > m_GNNHit_cluster_r_2
Definition: FPGATrackSimGNNRootOutputTool.h:103
FPGATrackSimGNNRootOutputTool::m_hit_cluster_x
std::vector< float > m_hit_cluster_x
Definition: FPGATrackSimGNNRootOutputTool.h:80
FPGATrackSimGNNRootOutputTool::m_road_nHits_layer
std::vector< std::vector< size_t > > m_road_nHits_layer
Definition: FPGATrackSimGNNRootOutputTool.h:121
FPGATrackSimGNNRootOutputTool::m_GNNEdge_dEta
std::vector< float > m_GNNEdge_dEta
Definition: FPGATrackSimGNNRootOutputTool.h:113
FPGATrackSimGNNRootOutputTool::m_GNNHit_cluster_z_2
std::vector< float > m_GNNHit_cluster_z_2
Definition: FPGATrackSimGNNRootOutputTool.h:102
FPGATrackSimGNNRootOutputTool::m_GNNHit_z
std::vector< float > m_GNNHit_z
Definition: FPGATrackSimGNNRootOutputTool.h:90
FPGATrackSimGNNRootOutputTool::m_road_nLayers
std::vector< size_t > m_road_nLayers
Definition: FPGATrackSimGNNRootOutputTool.h:122
FPGATrackSimGNNRootOutputTool::m_GNNHit_cluster_r_1
std::vector< float > m_GNNHit_cluster_r_1
Definition: FPGATrackSimGNNRootOutputTool.h:97
ServiceHandle< ITHistSvc >