ATLAS Offline Software
FPGATrackSimHoughRootOutputTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
8 
10 FPGATrackSimHoughRootOutputTool::FPGATrackSimHoughRootOutputTool(const std::string& algname, const std::string& name, const IInterface *ifc) :
11  AthAlgTool(algname, name, ifc)
12 {
13 }
14 
15 
16 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
18 {
19  ATH_CHECK(m_FPGATrackSimMapping.retrieve());
20  ATH_CHECK(m_tHistSvc.retrieve());
21  ATH_CHECK(m_EvtSel.retrieve());
22 
24  return StatusCode::SUCCESS;
25 }
26 
27 
28 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
30 {
31  m_tree = new TTree("FPGATrackSimHoughRootOutput","FPGATrackSimHoughRootOutput");
32  m_tree->Branch("x",&m_x);
33  m_tree->Branch("y",&m_y);
34  m_tree->Branch("z",&m_z);
35  m_tree->Branch("phi",&m_phi);
36  m_tree->Branch("invpt",&m_invpt);
37  m_tree->Branch("tracknumber",&m_tracknumber);
38  m_tree->Branch("roadnumber",&m_roadnumber);
39  m_tree->Branch("barcode",&m_barcode);
40  m_tree->Branch("barcodefrac",&m_barcodefrac);
41  m_tree->Branch("eventindex",&m_eventindex);
42  m_tree->Branch("isPixel",&m_isPixel);
43  m_tree->Branch("layer",&m_layer);
44  m_tree->Branch("isBarrel",&m_isBarrel);
45  m_tree->Branch("etawidth",&m_etawidth);
46  m_tree->Branch("phiwidth",&m_phiwidth);
47  m_tree->Branch("etamodule",&m_etamodule);
48  m_tree->Branch("phimodule",&m_phimodule);
49  m_tree->Branch("ID",&m_ID);
50  m_tree->Branch("candidate_barcodefrac",&m_candidate_barcodefrac);
51  m_tree->Branch("candidate_barcode",&m_candidate_barcode);
52  m_tree->Branch("candidate_eventindex",&m_candidate_eventindex);
53  m_tree->Branch("treeindex",&m_treeindex);
54 
55  m_treeindex = 0;
56 
57  m_truthtree = new TTree("FPGATrackSimTruthTree","FPGATrackSimTruthTree");
58  m_truthtree->Branch("truth_d0",&m_truth_d0);
59  m_truthtree->Branch("truth_z0",&m_truth_z0);
60  m_truthtree->Branch("truth_pt",&m_truth_pt);
61  m_truthtree->Branch("truth_eta",&m_truth_eta);
62  m_truthtree->Branch("truth_phi",&m_truth_phi);
63  m_truthtree->Branch("truth_q",&m_truth_q);
64  m_truthtree->Branch("truth_pdg",&m_truth_pdg);
65  m_truthtree->Branch("truth_barcode",&m_truth_barcode);
66  m_truthtree->Branch("truth_eventindex",&m_truth_eventindex);
67 
68 
69  m_offlinetree = new TTree("FPGATrackSimOfflineTree","FPGATrackSimOfflineTree");
70  m_offlinetree->Branch("offline_d0",&m_offline_d0);
71  m_offlinetree->Branch("offline_z0",&m_offline_z0);
72  m_offlinetree->Branch("offline_pt",&m_offline_pt);
73  m_offlinetree->Branch("offline_eta",&m_offline_eta);
74  m_offlinetree->Branch("offline_phi",&m_offline_phi);
75  m_offlinetree->Branch("offline_q",&m_offline_q);
76  m_offlinetree->Branch("offline_barcode",&m_offline_barcode);
77  m_offlinetree->Branch("offline_barcodefrac",&m_offline_barcodefrac);
78  m_offlinetree->Branch("offline_n_holes",&m_offline_n_holes);
79  m_offlinetree->Branch("offline_n_inertmaterial",&m_offline_n_inertmaterial);
80  m_offlinetree->Branch("offline_n_measurement",&m_offline_n_measurement);
81  m_offlinetree->Branch("offline_n_brempoint",&m_offline_n_brempoint);
82  m_offlinetree->Branch("offline_n_scatterer",&m_offline_n_scatterer);
83  m_offlinetree->Branch("offline_n_perigee",&m_offline_n_perigee);
84  m_offlinetree->Branch("offline_n_outlier",&m_offline_n_outlier);
85  m_offlinetree->Branch("offline_n_other",&m_offline_n_other);
86 
87  ATH_CHECK(m_tHistSvc->regTree(Form("/TRIGFPGATrackSimHOUGHOUTPUT/%s",m_tree->GetName()), m_tree));
88  ATH_CHECK(m_tHistSvc->regTree(Form("/TRIGFPGATrackSimHOUGHOUTPUT/%s",m_truthtree->GetName()), m_truthtree));
89  ATH_CHECK(m_tHistSvc->regTree(Form("/TRIGFPGATrackSimHOUGHOUTPUT/%s",m_offlinetree->GetName()), m_offlinetree));
90 
91  return StatusCode::SUCCESS;
92 }
93 
94 
95 
96 StatusCode FPGATrackSimHoughRootOutputTool::fillTree(const std::vector<std::shared_ptr<const FPGATrackSimRoad>> &roads, const std::vector<FPGATrackSimTruthTrack> &truthTracks, const std::vector<FPGATrackSimOfflineTrack> &offlineTracks)
97 {
98  m_tracknumber = 0;
99  ResetVectors();
100 
101  // fill the truth tree, simply once per event! to know which entry here to loop at for a given road or hit
102  // combination below, use treeindex from below to find the entry here
103  for (auto track : truthTracks) {
104  if (!m_EvtSel->passCuts(track)) continue;
105 
106  m_truth_d0.push_back(track.getD0());
107  m_truth_z0.push_back(track.getVtxZ());
108  m_truth_pt.push_back(track.getPt());
109  m_truth_eta.push_back(track.getEta());
110  m_truth_phi.push_back(track.getPhi());
111  m_truth_barcode.push_back(track.getBarcode());
112  m_truth_eventindex.push_back(track.getEventIndex());
113  m_truth_q.push_back(track.getQ());
114  m_truth_pdg.push_back(track.getPDGCode());
115  }
116  m_truthtree->Fill();
117 
118  // now do the same for offline tree, once per event
119  for (auto track : offlineTracks) {
120  if (!m_EvtSel->passCuts(track)) continue;
121 
122  m_offline_d0.push_back(track.getD0());
123  m_offline_z0.push_back(track.getZ0());
124  m_offline_pt.push_back(abs(1./track.getQOverPt()));
125  m_offline_eta.push_back(track.getEta());
126  m_offline_phi.push_back(track.getPhi());
127  m_offline_barcode.push_back(track.getBarcode());
128  m_offline_barcodefrac.push_back(track.getBarcodeFrac());
129 
130  m_offline_q.push_back(track.getQOverPt() > 0 ? 1 : -1);
131  int nhole(0), nmeasurement(0), ninert(0), nbrem(0), nscatter(0), nperigee(0), noutlier(0), nother(0);
132  for (const auto& hit : track.getOfflineHits()) {
133  if (hit.getHitType() == OfflineHitType::Measurement) nmeasurement++;
134  else if (hit.getHitType() == OfflineHitType::InertMaterial) ninert++;
135  else if (hit.getHitType() == OfflineHitType::BremPoint) nbrem++;
136  else if (hit.getHitType() == OfflineHitType::Scatterer) nscatter++;
137  else if (hit.getHitType() == OfflineHitType::Perigee) nperigee++;
138  else if (hit.getHitType() == OfflineHitType::Outlier) noutlier++;
139  else if (hit.getHitType() == OfflineHitType::Hole) nhole++;
140  else nother++;
141  }
142  m_offline_n_holes.push_back(nhole);
143  m_offline_n_measurement.push_back(nmeasurement);
144  m_offline_n_inertmaterial.push_back(ninert);
145  m_offline_n_brempoint.push_back(nbrem);
146  m_offline_n_scatterer.push_back(nscatter);
147  m_offline_n_perigee.push_back(nperigee);
148  m_offline_n_outlier.push_back(noutlier);
149  m_offline_n_other.push_back(nother);
150  }
151  m_offlinetree->Fill();
152 
153  // for calculating the truth for the entire combination, not just an individual hit
154  std::vector<FPGATrackSimMultiTruth> mtv;
155  mtv.reserve( m_FPGATrackSimMapping->PlaneMap_1st()->getNLogiLayers());
156 
157 
158  // now we loop over all the roads. The tree is stored per combination, not per event, so there is an tree index
159  // that can be used to map to the above
160  for (size_t iroad = 0; iroad < roads.size(); iroad++) {
161  m_roadnumber = iroad;
162  std::shared_ptr<const FPGATrackSimRoad> road = roads[iroad];
163  if (road == nullptr) continue; // Not Hough roads
164 
165  std::vector<std::vector<int>> combs = ::getComboIndices(road->getNHits_layer());
166  m_phi = road->getX();
167  m_invpt = road->getY();
168 
169  // Add the hits from each combination to the tree
170  for (size_t icomb = 0; icomb < combs.size(); icomb++)
171  {
172  mtv.clear();
173 
174  std::vector<int> const & hit_indices = combs[icomb]; // size nLayers
175  for (unsigned layer = 0; layer < m_FPGATrackSimMapping->PlaneMap_1st()->getNLogiLayers(); layer++)
176  {
177  if (hit_indices[layer] >= 0) {
178  std::shared_ptr<const FPGATrackSimHit> hit = road->getHits(layer)[hit_indices[layer]];
179 
180  FPGATrackSimMultiTruth truth = hit->getTruth();
181 
183  mtv.push_back( truth );
184 
187  const bool ok = truth.best(tbarcode,tfrac);
188  if( ok ) {
189  m_eventindex.push_back((int)(tbarcode.first));
190  m_barcode.push_back((int)(tbarcode.second));
191  m_barcodefrac.push_back(tfrac);
192  }
193  else {
194  m_eventindex.push_back(-1);
195  m_barcode.push_back(-1);
196  m_barcodefrac.push_back(-1);
197  }
198 
199  m_x.push_back(hit->getX());
200  m_y.push_back(hit->getY());
201  m_z.push_back(hit->getZ());
202  m_isPixel.push_back(hit->isPixel() ? 1 : 0);
203  m_layer.push_back(hit->getLayer());
204  m_isBarrel.push_back(hit->isBarrel() ? 1 : 0);
205  m_etawidth.push_back(hit->getEtaWidth());
206  m_phiwidth.push_back(hit->getPhiWidth());
207  m_etamodule.push_back(hit->getEtaModule());
208  m_phimodule.push_back(hit->getPhiModule());
209  m_ID.push_back(hit->getIdentifierHash());
210  }
211  }
212  // done looping over hits, now we do the truth calculation for this track candidate
213  // first compute the best geant match, the barcode with the largest number of contributing hits
214  // frac is then the fraction of the total number of hits on the candidate attributed to the barcode.
216  // retrieve the best barcode and frac and store it
219  const bool ok = mt.best(tbarcode,tfrac);
220  if( ok ) {
221  m_candidate_eventindex = (int)(tbarcode.first);
222  m_candidate_barcode = (int)(tbarcode.second);
223  m_candidate_barcodefrac = tfrac;
224  }
225  else {
227  m_candidate_barcode = -1;
229  }
230  m_tree->Fill();
231  ResetVectors();
232  m_tracknumber++;
233  }
234  }
235  m_treeindex++;
236  return StatusCode::SUCCESS;
237 }
238 
240  m_x.clear();
241  m_y.clear();
242  m_z.clear();
243  m_barcode.clear();
244  m_barcodefrac.clear();
245  m_eventindex.clear();
246  m_isPixel.clear();
247  m_layer.clear();
248  m_isBarrel.clear();
249  m_etawidth.clear();
250  m_phiwidth.clear();
251  m_etamodule.clear();
252  m_phimodule.clear();
253  m_ID.clear();
254  m_truth_d0.clear();
255  m_truth_z0.clear();
256  m_truth_pt.clear();
257  m_truth_eta.clear();
258  m_truth_phi.clear();
259  m_truth_q.clear();
260  m_truth_barcode.clear();
261  m_truth_eventindex.clear();
262  m_truth_pdg.clear();
263  m_offline_n_holes.clear();
264  m_offline_n_measurement.clear();
266  m_offline_n_brempoint.clear();
267  m_offline_n_scatterer.clear();
268  m_offline_n_perigee.clear();
269  m_offline_n_outlier.clear();
270  m_offline_n_other.clear();
271  m_offline_d0.clear();
272  m_offline_z0.clear();
273  m_offline_pt.clear();
274  m_offline_eta.clear();
275  m_offline_phi.clear();
276  m_offline_q.clear();
277  m_offline_barcode.clear();
278  m_offline_barcodefrac.clear();
279 }
OfflineHitType::Hole
@ Hole
FPGATrackSimHoughRootOutputTool::m_barcodefrac
std::vector< float > m_barcodefrac
Definition: FPGATrackSimHoughRootOutputTool.h:61
FPGATrackSimHit::getPhiModule
unsigned getPhiModule() const
Definition: FPGATrackSimHit.h:88
FPGATrackSimHoughRootOutputTool::m_truth_phi
std::vector< float > m_truth_phi
Definition: FPGATrackSimHoughRootOutputTool.h:99
FPGATrackSimHoughRootOutputTool::m_offline_z0
std::vector< float > m_offline_z0
Definition: FPGATrackSimHoughRootOutputTool.h:117
getMenu.algname
algname
Definition: getMenu.py:54
FPGATrackSimHoughRootOutputTool::m_isBarrel
std::vector< unsigned int > m_isBarrel
Definition: FPGATrackSimHoughRootOutputTool.h:66
FPGATrackSimHoughRootOutputTool::m_layer
std::vector< unsigned int > m_layer
Definition: FPGATrackSimHoughRootOutputTool.h:65
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
OfflineHitType::InertMaterial
@ InertMaterial
FPGATrackSimHoughRootOutputTool::initialize
virtual StatusCode initialize() override
Definition: FPGATrackSimHoughRootOutputTool.cxx:17
FPGATrackSimHoughRootOutputTool::m_offline_phi
std::vector< float > m_offline_phi
Definition: FPGATrackSimHoughRootOutputTool.h:120
OfflineHitType::BremPoint
@ BremPoint
FPGATrackSimMultiTruth::Weight
float Weight
Definition: FPGATrackSimMultiTruth.h:50
OfflineHitType::Measurement
@ Measurement
FPGATrackSimRoad::getHits
const std::vector< std::shared_ptr< const FPGATrackSimHit > > & getHits(size_t layer) const
Definition: FPGATrackSimRoad.h:99
FPGATrackSimHit::getX
float getX() const
Definition: FPGATrackSimHit.h:130
FPGATrackSimHoughRootOutputTool::m_x
std::vector< float > m_x
Definition: FPGATrackSimHoughRootOutputTool.h:58
FPGATrackSimHoughRootOutputTool::m_offlinetree
TTree * m_offlinetree
Definition: FPGATrackSimHoughRootOutputTool.h:106
accumulate
bool accumulate(AccumulateMap &map, std::vector< module_t > const &modules, FPGATrackSimMatrixAccumulator const &acc)
Accumulates an accumulator (e.g.
Definition: FPGATrackSimMatrixAccumulator.cxx:22
FPGATrackSimHit::getLayer
unsigned getLayer() const
Definition: FPGATrackSimHit.cxx:74
FPGATrackSimHoughRootOutputTool::m_offline_n_brempoint
std::vector< int > m_offline_n_brempoint
Definition: FPGATrackSimHoughRootOutputTool.h:110
FPGATrackSimHoughRootOutputTool::m_etawidth
std::vector< unsigned int > m_etawidth
Definition: FPGATrackSimHoughRootOutputTool.h:67
FPGATrackSimHoughRootOutputTool::m_treeindex
int m_treeindex
Definition: FPGATrackSimHoughRootOutputTool.h:87
FPGATrackSimHit::getEtaModule
int getEtaModule() const
Definition: FPGATrackSimHit.h:87
FPGATrackSimRoad::getNHits_layer
std::vector< size_t > getNHits_layer() const
Definition: FPGATrackSimRoad.cxx:27
FPGATrackSimHoughRootOutputTool::m_isPixel
std::vector< unsigned int > m_isPixel
Definition: FPGATrackSimHoughRootOutputTool.h:64
FPGATrackSimRoad::getX
float getX() const
Definition: FPGATrackSimRoad.h:86
FPGATrackSimHoughRootOutputTool::m_phi
float m_phi
Definition: FPGATrackSimHoughRootOutputTool.h:73
FPGATrackSimMultiTruth::best
bool best(FPGATrackSimMultiTruth::Barcode &code, FPGATrackSimMultiTruth::Weight &weight) const
Definition: FPGATrackSimMultiTruth.h:86
FPGATrackSimHit::getTruth
const FPGATrackSimMultiTruth & getTruth() const
Definition: FPGATrackSimHit.h:151
FPGATrackSimHoughRootOutputTool::m_offline_n_outlier
std::vector< int > m_offline_n_outlier
Definition: FPGATrackSimHoughRootOutputTool.h:113
OfflineHitType::Perigee
@ Perigee
FPGATrackSimHoughRootOutputTool::m_phiwidth
std::vector< unsigned int > m_phiwidth
Definition: FPGATrackSimHoughRootOutputTool.h:68
FPGATrackSimHoughRootOutputTool::m_truth_z0
std::vector< float > m_truth_z0
Definition: FPGATrackSimHoughRootOutputTool.h:96
FPGATrackSimHoughRootOutputTool::m_offline_d0
std::vector< float > m_offline_d0
Definition: FPGATrackSimHoughRootOutputTool.h:116
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
FPGATrackSimHoughRootOutputTool::m_offline_eta
std::vector< float > m_offline_eta
Definition: FPGATrackSimHoughRootOutputTool.h:119
FPGATrackSimMultiTruth::Barcode
std::pair< unsigned long, unsigned long > Barcode
Definition: FPGATrackSimMultiTruth.h:49
FPGATrackSimHoughRootOutputTool::m_z
std::vector< float > m_z
Definition: FPGATrackSimHoughRootOutputTool.h:60
FPGATrackSimHoughRootOutputTool::m_offline_n_measurement
std::vector< int > m_offline_n_measurement
Definition: FPGATrackSimHoughRootOutputTool.h:108
FPGATrackSimHoughRootOutputTool::m_candidate_eventindex
float m_candidate_eventindex
Definition: FPGATrackSimHoughRootOutputTool.h:79
FPGATrackSimHoughRootOutputTool::m_candidate_barcodefrac
float m_candidate_barcodefrac
Definition: FPGATrackSimHoughRootOutputTool.h:77
FPGATrackSimHoughRootOutputTool::m_invpt
float m_invpt
Definition: FPGATrackSimHoughRootOutputTool.h:74
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
FPGATrackSimHoughRootOutputTool::m_truth_eventindex
std::vector< int > m_truth_eventindex
Definition: FPGATrackSimHoughRootOutputTool.h:103
FPGATrackSimHoughRootOutputTool::m_truthtree
TTree * m_truthtree
Definition: FPGATrackSimHoughRootOutputTool.h:93
FPGATrackSimHit::getY
float getY() const
Definition: FPGATrackSimHit.h:131
FPGATrackSimHit::getIdentifierHash
unsigned getIdentifierHash() const
Definition: FPGATrackSimHit.h:81
FPGATrackSimHoughRootOutputTool::m_offline_q
std::vector< int > m_offline_q
Definition: FPGATrackSimHoughRootOutputTool.h:121
FPGATrackSimHit::isPixel
bool isPixel() const
Definition: FPGATrackSimHit.h:64
FPGATrackSimHoughRootOutputTool::ResetVectors
void ResetVectors()
Definition: FPGATrackSimHoughRootOutputTool.cxx:239
FPGATrackSimHoughRootOutputTool::m_truth_d0
std::vector< float > m_truth_d0
Definition: FPGATrackSimHoughRootOutputTool.h:95
FPGATrackSimHit::getZ
float getZ() const
Definition: FPGATrackSimHit.h:132
getComboIndices
std::vector< std::vector< int > > getComboIndices(std::vector< size_t > const &sizes)
Given a vector of sizes (of arrays), generates a vector of all combinations of indices to index one e...
Definition: FPGATrackSimFunctions.cxx:21
FPGATrackSimHoughRootOutputTool::m_etamodule
std::vector< unsigned int > m_etamodule
Definition: FPGATrackSimHoughRootOutputTool.h:69
FPGATrackSimHoughRootOutputTool::m_truth_pdg
std::vector< float > m_truth_pdg
Definition: FPGATrackSimHoughRootOutputTool.h:100
FPGATrackSimHoughRootOutputTool::m_offline_n_perigee
std::vector< int > m_offline_n_perigee
Definition: FPGATrackSimHoughRootOutputTool.h:112
FPGATrackSimHoughRootOutputTool.h
Output roads into a ROOT file.
FPGATrackSimMultiTruth
Definition: FPGATrackSimMultiTruth.h:46
FPGATrackSimHoughRootOutputTool::m_FPGATrackSimMapping
ServiceHandle< IFPGATrackSimMappingSvc > m_FPGATrackSimMapping
Definition: FPGATrackSimHoughRootOutputTool.h:53
FPGATrackSimMultiTruth::AddAccumulator
Definition: FPGATrackSimMultiTruth.h:57
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
FPGATrackSimFunctions.h
FPGATrackSimHoughRootOutputTool::m_truth_eta
std::vector< float > m_truth_eta
Definition: FPGATrackSimHoughRootOutputTool.h:98
FPGATrackSimHoughRootOutputTool::m_truth_q
std::vector< int > m_truth_q
Definition: FPGATrackSimHoughRootOutputTool.h:101
FPGATrackSimHoughRootOutputTool::m_offline_n_inertmaterial
std::vector< int > m_offline_n_inertmaterial
Definition: FPGATrackSimHoughRootOutputTool.h:109
FPGATrackSimRoad::getY
float getY() const
Definition: FPGATrackSimRoad.h:87
FPGATrackSimHoughRootOutputTool::m_tHistSvc
ServiceHandle< ITHistSvc > m_tHistSvc
Definition: FPGATrackSimHoughRootOutputTool.h:54
FPGATrackSimHoughRootOutputTool::m_EvtSel
ServiceHandle< IFPGATrackSimEventSelectionSvc > m_EvtSel
Definition: FPGATrackSimHoughRootOutputTool.h:52
FPGATrackSimHoughRootOutputTool::m_roadnumber
int m_roadnumber
Definition: FPGATrackSimHoughRootOutputTool.h:90
FPGATrackSimHoughRootOutputTool::FPGATrackSimHoughRootOutputTool
FPGATrackSimHoughRootOutputTool(const std::string &, const std::string &, const IInterface *)
Definition: FPGATrackSimHoughRootOutputTool.cxx:10
FPGATrackSimHoughRootOutputTool::m_offline_barcode
std::vector< int > m_offline_barcode
Definition: FPGATrackSimHoughRootOutputTool.h:122
IFPGATrackSimEventSelectionSvc.h
FPGATrackSimHoughRootOutputTool::m_offline_n_scatterer
std::vector< int > m_offline_n_scatterer
Definition: FPGATrackSimHoughRootOutputTool.h:111
FPGATrackSimHoughRootOutputTool::m_eventindex
std::vector< int > m_eventindex
Definition: FPGATrackSimHoughRootOutputTool.h:63
FPGATrackSimHoughRootOutputTool::m_candidate_barcode
float m_candidate_barcode
Definition: FPGATrackSimHoughRootOutputTool.h:78
FPGATrackSimHoughRootOutputTool::m_offline_n_other
std::vector< int > m_offline_n_other
Definition: FPGATrackSimHoughRootOutputTool.h:114
FPGATrackSimHoughRootOutputTool::m_offline_n_holes
std::vector< int > m_offline_n_holes
Definition: FPGATrackSimHoughRootOutputTool.h:107
FPGATrackSimHoughRootOutputTool::m_offline_pt
std::vector< float > m_offline_pt
Definition: FPGATrackSimHoughRootOutputTool.h:118
FPGATrackSimHoughRootOutputTool::m_tracknumber
int m_tracknumber
Definition: FPGATrackSimHoughRootOutputTool.h:84
FPGATrackSimHit::getEtaWidth
unsigned getEtaWidth() const
Definition: FPGATrackSimHit.h:85
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
FPGATrackSimHoughRootOutputTool::m_offline_barcodefrac
std::vector< float > m_offline_barcodefrac
Definition: FPGATrackSimHoughRootOutputTool.h:123
FPGATrackSimHoughRootOutputTool::m_phimodule
std::vector< unsigned int > m_phimodule
Definition: FPGATrackSimHoughRootOutputTool.h:70
OfflineHitType::Scatterer
@ Scatterer
AthAlgTool
Definition: AthAlgTool.h:26
FPGATrackSimHoughRootOutputTool::m_ID
std::vector< unsigned int > m_ID
Definition: FPGATrackSimHoughRootOutputTool.h:71
FPGATrackSimHoughRootOutputTool::m_truth_barcode
std::vector< int > m_truth_barcode
Definition: FPGATrackSimHoughRootOutputTool.h:102
OfflineHitType::Outlier
@ Outlier
FPGATrackSimHit::isBarrel
bool isBarrel() const
Definition: FPGATrackSimHit.h:66
FPGATrackSimHoughRootOutputTool::m_y
std::vector< float > m_y
Definition: FPGATrackSimHoughRootOutputTool.h:59
FPGATrackSimHoughRootOutputTool::m_tree
TTree * m_tree
Definition: FPGATrackSimHoughRootOutputTool.h:57
FPGATrackSimHoughRootOutputTool::m_barcode
std::vector< int > m_barcode
Definition: FPGATrackSimHoughRootOutputTool.h:62
FPGATrackSimHoughRootOutputTool::m_truth_pt
std::vector< float > m_truth_pt
Definition: FPGATrackSimHoughRootOutputTool.h:97
FPGATrackSimHoughRootOutputTool::fillTree
StatusCode fillTree(const std::vector< std::shared_ptr< const FPGATrackSimRoad >> &roads, const std::vector< FPGATrackSimTruthTrack > &truthTracks, const std::vector< FPGATrackSimOfflineTrack > &offlineTracks)
Definition: FPGATrackSimHoughRootOutputTool.cxx:96
FPGATrackSimHit::getPhiWidth
unsigned getPhiWidth() const
Definition: FPGATrackSimHit.h:86
FPGATrackSimHoughRootOutputTool::bookTree
StatusCode bookTree()
Definition: FPGATrackSimHoughRootOutputTool.cxx:29
FPGATrackSimMultiTruth::assign_equal_normalization
void assign_equal_normalization()
Definition: FPGATrackSimMultiTruth.cxx:69