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

#include <FPGATrackSimHoughRootOutputTool.h>

Inheritance diagram for FPGATrackSimHoughRootOutputTool:
Collaboration diagram for FPGATrackSimHoughRootOutputTool:

Public Member Functions

 FPGATrackSimHoughRootOutputTool (const std::string &, const std::string &, const IInterface *)
 
virtual StatusCode initialize () override
 
StatusCode fillTree (std::vector< FPGATrackSimRoad * > &roads, const std::vector< FPGATrackSimTruthTrack > &truthTracks, const std::vector< FPGATrackSimOfflineTrack > &offlineTracks)
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

StatusCode bookTree ()
 
void ResetVectors ()
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

ServiceHandle< IFPGATrackSimEventSelectionSvcm_EvtSel {this, "FPGATrackSimEventSelectionSvc", "FPGATrackSimEventSelectionSvc"}
 
ServiceHandle< IFPGATrackSimMappingSvcm_FPGATrackSimMapping {this, "FPGATrackSimMappingSvc", "FPGATrackSimMappingSvc"}
 
ServiceHandle< ITHistSvc > m_tHistSvc {this, "THistSvc", "THistSvc"}
 
TTree * m_tree = nullptr
 
std::vector< float > m_x
 
std::vector< float > m_y
 
std::vector< float > m_z
 
std::vector< float > m_barcodefrac
 
std::vector< int > m_barcode
 
std::vector< int > m_eventindex
 
std::vector< unsigned int > m_isPixel
 
std::vector< unsigned int > m_layer
 
std::vector< unsigned int > m_isBarrel
 
std::vector< unsigned int > m_etawidth
 
std::vector< unsigned int > m_phiwidth
 
std::vector< unsigned int > m_etamodule
 
std::vector< unsigned int > m_phimodule
 
std::vector< unsigned int > m_ID
 
float m_phi = 0.0F
 
float m_invpt = 0.0F
 
float m_candidate_barcodefrac = 0.0F
 
float m_candidate_barcode = 0.0F
 
float m_candidate_eventindex = 0.0F
 
int m_tracknumber = 0
 
int m_treeindex = 0
 
int m_roadnumber = 0
 
TTree * m_truthtree = nullptr
 
std::vector< float > m_truth_d0
 
std::vector< float > m_truth_z0
 
std::vector< float > m_truth_pt
 
std::vector< float > m_truth_eta
 
std::vector< float > m_truth_phi
 
std::vector< float > m_truth_pdg
 
std::vector< int > m_truth_q
 
std::vector< int > m_truth_barcode
 
std::vector< int > m_truth_eventindex
 
TTree * m_offlinetree = nullptr
 
std::vector< int > m_offline_n_holes
 
std::vector< int > m_offline_n_measurement
 
std::vector< int > m_offline_n_inertmaterial
 
std::vector< int > m_offline_n_brempoint
 
std::vector< int > m_offline_n_scatterer
 
std::vector< int > m_offline_n_perigee
 
std::vector< int > m_offline_n_outlier
 
std::vector< int > m_offline_n_other
 
std::vector< float > m_offline_d0
 
std::vector< float > m_offline_z0
 
std::vector< float > m_offline_pt
 
std::vector< float > m_offline_eta
 
std::vector< float > m_offline_phi
 
std::vector< int > m_offline_q
 
std::vector< int > m_offline_barcode
 
std::vector< float > m_offline_barcodefrac
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Definition at line 34 of file FPGATrackSimHoughRootOutputTool.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ FPGATrackSimHoughRootOutputTool()

FPGATrackSimHoughRootOutputTool::FPGATrackSimHoughRootOutputTool ( const std::string &  algname,
const std::string &  name,
const IInterface *  ifc 
)

Definition at line 10 of file FPGATrackSimHoughRootOutputTool.cxx.

10  :
11  AthAlgTool(algname, name, ifc)
12 {
13 }

Member Function Documentation

◆ bookTree()

StatusCode FPGATrackSimHoughRootOutputTool::bookTree ( )
private

Definition at line 29 of file FPGATrackSimHoughRootOutputTool.cxx.

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 }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ fillTree()

StatusCode FPGATrackSimHoughRootOutputTool::fillTree ( std::vector< FPGATrackSimRoad * > &  roads,
const std::vector< FPGATrackSimTruthTrack > &  truthTracks,
const std::vector< FPGATrackSimOfflineTrack > &  offlineTracks 
)

Definition at line 96 of file FPGATrackSimHoughRootOutputTool.cxx.

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

◆ initialize()

StatusCode FPGATrackSimHoughRootOutputTool::initialize ( )
overridevirtual

Definition at line 17 of file FPGATrackSimHoughRootOutputTool.cxx.

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 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ msg() [1/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ ResetVectors()

void FPGATrackSimHoughRootOutputTool::ResetVectors ( )
private

Definition at line 239 of file FPGATrackSimHoughRootOutputTool.cxx.

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

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_barcode

std::vector<int> FPGATrackSimHoughRootOutputTool::m_barcode
private

Definition at line 62 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_barcodefrac

std::vector<float> FPGATrackSimHoughRootOutputTool::m_barcodefrac
private

Definition at line 61 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_candidate_barcode

float FPGATrackSimHoughRootOutputTool::m_candidate_barcode = 0.0F
private

Definition at line 78 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_candidate_barcodefrac

float FPGATrackSimHoughRootOutputTool::m_candidate_barcodefrac = 0.0F
private

Definition at line 77 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_candidate_eventindex

float FPGATrackSimHoughRootOutputTool::m_candidate_eventindex = 0.0F
private

Definition at line 79 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_etamodule

std::vector<unsigned int> FPGATrackSimHoughRootOutputTool::m_etamodule
private

Definition at line 69 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_etawidth

std::vector<unsigned int> FPGATrackSimHoughRootOutputTool::m_etawidth
private

Definition at line 67 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_eventindex

std::vector<int> FPGATrackSimHoughRootOutputTool::m_eventindex
private

Definition at line 63 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_EvtSel

ServiceHandle<IFPGATrackSimEventSelectionSvc> FPGATrackSimHoughRootOutputTool::m_EvtSel {this, "FPGATrackSimEventSelectionSvc", "FPGATrackSimEventSelectionSvc"}
private

Definition at line 52 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_FPGATrackSimMapping

ServiceHandle<IFPGATrackSimMappingSvc> FPGATrackSimHoughRootOutputTool::m_FPGATrackSimMapping {this, "FPGATrackSimMappingSvc", "FPGATrackSimMappingSvc"}
private

Definition at line 53 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_ID

std::vector<unsigned int> FPGATrackSimHoughRootOutputTool::m_ID
private

Definition at line 71 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_invpt

float FPGATrackSimHoughRootOutputTool::m_invpt = 0.0F
private

Definition at line 74 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_isBarrel

std::vector<unsigned int> FPGATrackSimHoughRootOutputTool::m_isBarrel
private

Definition at line 66 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_isPixel

std::vector<unsigned int> FPGATrackSimHoughRootOutputTool::m_isPixel
private

Definition at line 64 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_layer

std::vector<unsigned int> FPGATrackSimHoughRootOutputTool::m_layer
private

Definition at line 65 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_offline_barcode

std::vector<int> FPGATrackSimHoughRootOutputTool::m_offline_barcode
private

Definition at line 122 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_offline_barcodefrac

std::vector<float> FPGATrackSimHoughRootOutputTool::m_offline_barcodefrac
private

Definition at line 123 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_offline_d0

std::vector<float> FPGATrackSimHoughRootOutputTool::m_offline_d0
private

Definition at line 116 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_offline_eta

std::vector<float> FPGATrackSimHoughRootOutputTool::m_offline_eta
private

Definition at line 119 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_offline_n_brempoint

std::vector<int> FPGATrackSimHoughRootOutputTool::m_offline_n_brempoint
private

Definition at line 110 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_offline_n_holes

std::vector<int> FPGATrackSimHoughRootOutputTool::m_offline_n_holes
private

Definition at line 107 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_offline_n_inertmaterial

std::vector<int> FPGATrackSimHoughRootOutputTool::m_offline_n_inertmaterial
private

Definition at line 109 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_offline_n_measurement

std::vector<int> FPGATrackSimHoughRootOutputTool::m_offline_n_measurement
private

Definition at line 108 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_offline_n_other

std::vector<int> FPGATrackSimHoughRootOutputTool::m_offline_n_other
private

Definition at line 114 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_offline_n_outlier

std::vector<int> FPGATrackSimHoughRootOutputTool::m_offline_n_outlier
private

Definition at line 113 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_offline_n_perigee

std::vector<int> FPGATrackSimHoughRootOutputTool::m_offline_n_perigee
private

Definition at line 112 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_offline_n_scatterer

std::vector<int> FPGATrackSimHoughRootOutputTool::m_offline_n_scatterer
private

Definition at line 111 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_offline_phi

std::vector<float> FPGATrackSimHoughRootOutputTool::m_offline_phi
private

Definition at line 120 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_offline_pt

std::vector<float> FPGATrackSimHoughRootOutputTool::m_offline_pt
private

Definition at line 118 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_offline_q

std::vector<int> FPGATrackSimHoughRootOutputTool::m_offline_q
private

Definition at line 121 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_offline_z0

std::vector<float> FPGATrackSimHoughRootOutputTool::m_offline_z0
private

Definition at line 117 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_offlinetree

TTree* FPGATrackSimHoughRootOutputTool::m_offlinetree = nullptr
private

Definition at line 106 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_phi

float FPGATrackSimHoughRootOutputTool::m_phi = 0.0F
private

Definition at line 73 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_phimodule

std::vector<unsigned int> FPGATrackSimHoughRootOutputTool::m_phimodule
private

Definition at line 70 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_phiwidth

std::vector<unsigned int> FPGATrackSimHoughRootOutputTool::m_phiwidth
private

Definition at line 68 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_roadnumber

int FPGATrackSimHoughRootOutputTool::m_roadnumber = 0
private

Definition at line 90 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_tHistSvc

ServiceHandle<ITHistSvc> FPGATrackSimHoughRootOutputTool::m_tHistSvc {this, "THistSvc", "THistSvc"}
private

Definition at line 54 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_tracknumber

int FPGATrackSimHoughRootOutputTool::m_tracknumber = 0
private

Definition at line 84 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_tree

TTree* FPGATrackSimHoughRootOutputTool::m_tree = nullptr
private

Definition at line 57 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_treeindex

int FPGATrackSimHoughRootOutputTool::m_treeindex = 0
private

Definition at line 87 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_truth_barcode

std::vector<int> FPGATrackSimHoughRootOutputTool::m_truth_barcode
private

Definition at line 102 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_truth_d0

std::vector<float> FPGATrackSimHoughRootOutputTool::m_truth_d0
private

Definition at line 95 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_truth_eta

std::vector<float> FPGATrackSimHoughRootOutputTool::m_truth_eta
private

Definition at line 98 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_truth_eventindex

std::vector<int> FPGATrackSimHoughRootOutputTool::m_truth_eventindex
private

Definition at line 103 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_truth_pdg

std::vector<float> FPGATrackSimHoughRootOutputTool::m_truth_pdg
private

Definition at line 100 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_truth_phi

std::vector<float> FPGATrackSimHoughRootOutputTool::m_truth_phi
private

Definition at line 99 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_truth_pt

std::vector<float> FPGATrackSimHoughRootOutputTool::m_truth_pt
private

Definition at line 97 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_truth_q

std::vector<int> FPGATrackSimHoughRootOutputTool::m_truth_q
private

Definition at line 101 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_truth_z0

std::vector<float> FPGATrackSimHoughRootOutputTool::m_truth_z0
private

Definition at line 96 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_truthtree

TTree* FPGATrackSimHoughRootOutputTool::m_truthtree = nullptr
private

Definition at line 93 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.

◆ m_x

std::vector<float> FPGATrackSimHoughRootOutputTool::m_x
private

Definition at line 58 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_y

std::vector<float> FPGATrackSimHoughRootOutputTool::m_y
private

Definition at line 59 of file FPGATrackSimHoughRootOutputTool.h.

◆ m_z

std::vector<float> FPGATrackSimHoughRootOutputTool::m_z
private

Definition at line 60 of file FPGATrackSimHoughRootOutputTool.h.


The documentation for this class was generated from the following files:
OfflineHitType::Hole
@ Hole
FPGATrackSimHoughRootOutputTool::m_barcodefrac
std::vector< float > m_barcodefrac
Definition: FPGATrackSimHoughRootOutputTool.h:61
FPGATrackSimHit::getPhiModule
unsigned getPhiModule() const
Definition: FPGATrackSimHit.h:83
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:53
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
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::m_offline_phi
std::vector< float > m_offline_phi
Definition: FPGATrackSimHoughRootOutputTool.h:120
OfflineHitType::BremPoint
@ BremPoint
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
FPGATrackSimMultiTruth::Weight
float Weight
Definition: FPGATrackSimMultiTruth.h:50
OfflineHitType::Measurement
@ Measurement
FPGATrackSimHit::getX
float getX() const
Definition: FPGATrackSimHit.h:125
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:75
FPGATrackSimHoughRootOutputTool::m_offline_n_brempoint
std::vector< int > m_offline_n_brempoint
Definition: FPGATrackSimHoughRootOutputTool.h:110
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
FPGATrackSimHoughRootOutputTool::m_etawidth
std::vector< unsigned int > m_etawidth
Definition: FPGATrackSimHoughRootOutputTool.h:67
FPGATrackSimRoad::getHits
std::vector< const FPGATrackSimHit * > const & getHits(size_t layer) const
Definition: FPGATrackSimRoad.h:87
FPGATrackSimHoughRootOutputTool::m_treeindex
int m_treeindex
Definition: FPGATrackSimHoughRootOutputTool.h:87
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
FPGATrackSimRoad::getNHits_layer
std::vector< size_t > getNHits_layer() const
Definition: FPGATrackSimRoad.cxx:25
FPGATrackSimHoughRootOutputTool::m_isPixel
std::vector< unsigned int > m_isPixel
Definition: FPGATrackSimHoughRootOutputTool.h:64
FPGATrackSimRoad::getX
float getX() const
Definition: FPGATrackSimRoad.h:74
FPGATrackSimHit::getEtaModule
unsigned getEtaModule() const
Definition: FPGATrackSimHit.h:82
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
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
FPGATrackSimHit
Definition: FPGATrackSimHit.h:38
FPGATrackSimHit::getTruth
const FPGATrackSimMultiTruth & getTruth() const
Definition: FPGATrackSimHit.h:143
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
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
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
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
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
FPGATrackSimHit::getY
float getY() const
Definition: FPGATrackSimHit.h:126
FPGATrackSimHit::getIdentifierHash
unsigned getIdentifierHash() const
Definition: FPGATrackSimHit.h:76
FPGATrackSimHoughRootOutputTool::m_offline_q
std::vector< int > m_offline_q
Definition: FPGATrackSimHoughRootOutputTool.h:121
FPGATrackSimHit::isPixel
bool isPixel() const
Definition: FPGATrackSimHit.h:61
FPGATrackSimHoughRootOutputTool::ResetVectors
void ResetVectors()
Definition: FPGATrackSimHoughRootOutputTool.cxx:239
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
FPGATrackSimHoughRootOutputTool::m_truth_d0
std::vector< float > m_truth_d0
Definition: FPGATrackSimHoughRootOutputTool.h:95
FPGATrackSimHit::getZ
float getZ() const
Definition: FPGATrackSimHit.h:127
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
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
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
FPGATrackSimMultiTruth
Definition: FPGATrackSimMultiTruth.h:46
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
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:192
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:75
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
a
TList * a
Definition: liststreamerinfos.cxx:10
h
FPGATrackSimHoughRootOutputTool::m_offline_barcode
std::vector< int > m_offline_barcode
Definition: FPGATrackSimHoughRootOutputTool.h:122
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
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
FPGATrackSimHit::getEtaWidth
unsigned getEtaWidth() const
Definition: FPGATrackSimHit.h:80
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
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
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:63
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
FPGATrackSimHit::getPhiWidth
unsigned getPhiWidth() const
Definition: FPGATrackSimHit.h:81
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
FPGATrackSimRoad
Definition: FPGATrackSimRoad.h:29
fitman.k
k
Definition: fitman.py:528
FPGATrackSimHoughRootOutputTool::bookTree
StatusCode bookTree()
Definition: FPGATrackSimHoughRootOutputTool.cxx:29
FPGATrackSimMultiTruth::assign_equal_normalization
void assign_equal_normalization()
Definition: FPGATrackSimMultiTruth.cxx:70