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

#include <FPGATrackSimMatrixGenAlgo.h>

Inheritance diagram for FPGATrackSimMatrixGenAlgo:
Collaboration diagram for FPGATrackSimMatrixGenAlgo:

Public Member Functions

 FPGATrackSimMatrixGenAlgo (const std::string &name, ISvcLocator *pSvcLocator)
 
virtual ~FPGATrackSimMatrixGenAlgo ()=default
 
StatusCode initialize () override
 
StatusCode execute () override
 
StatusCode finalize () override
 
virtual StatusCode sysInitialize () override
 Override sysInitialize. More...
 
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies. More...
 
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 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

enum  selectHit_returnCode { selectHit_returnCode::SH_FAILURE, selectHit_returnCode::SH_KEEP_OLD, selectHit_returnCode::SH_KEEP_NEW }
 
typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

StatusCode bookHistograms ()
 
std::vector< FPGATrackSimHitgetLogicalHits ()
 
std::vector< FPGATrackSimTruthTrackfilterTrainingTracks (std::vector< FPGATrackSimTruthTrack > const &truth_tracks) const
 
std::map< int, std::vector< FPGATrackSimHit > > makeBarcodeMap (std::vector< FPGATrackSimHit > const &hits, std::vector< FPGATrackSimTruthTrack > const &tracks) const
 
selectHit_returnCode selectHit (FPGATrackSimHit const &old_hit, FPGATrackSimHit const &new_hit) const
 
bool filterSectorHits (std::vector< FPGATrackSimHit > const &all_hits, std::vector< FPGATrackSimHit > &sector_hits, FPGATrackSimTruthTrack const &t) const
 
int getRegion (std::vector< FPGATrackSimHit > const &hits) const
 
StatusCode makeAccumulator (std::vector< FPGATrackSimHit > const &sector_hits, FPGATrackSimTruthTrack const &track, std::pair< std::vector< module_t >, FPGATrackSimMatrixAccumulator > &accumulator) const
 
std::vector< TTree * > createMatrixTrees ()
 
void fillMatrixTrees (std::vector< TTree * > const &matrixTrees)
 
void writeSliceTree ()
 
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

std::vector< AccumulateMapm_sector_cum
 
ServiceHandle< IFPGATrackSimMappingSvcm_FPGATrackSimMapping {this,"FPGATrackSimMappingSvc","FPGATrackSimMappingSvc"}
 
ServiceHandle< IFPGATrackSimEventSelectionSvcm_EvtSel {this,"FPGATrackSimEventSelectionSvc","FPGATrackSimEventSelectionSvc"}
 
ServiceHandle< ITHistSvc > m_tHistSvc {this,"THistSvc","THistSvc"}
 
ToolHandle< IFPGATrackSimInputToolm_hitInputTool {this, "FPGATrackSimSGToRawHitsTool", "FPGATrackSimSGToRawHitsTool/FPGATrackSimSGToRawHits", "input handler"}
 
ToolHandle< FPGATrackSimRawToLogicalHitsToolm_hitMapTool {this, "FPGATrackSimRawToLogicalHitsTool", "FPGATrackSimRawToLogicalHitsTool/FPGATrackSim_RawToLogicalHitsTool", "FPGATrackSim_RawToLogicalHitsTool"}
 
ToolHandle< FPGATrackSimClusteringToolIm_clusteringTool { this, "FPGATrackSimClusteringFTKTool", "FPGATrackSimClusteringFTKTool/FPGATrackSimClusteringFTKTool", "FPGATrackSimClusteringFTKTool" }
 
ToolHandle< FPGATrackSimSpacePointsToolIm_spacePointsTool { this, "SpacePointTool", "FPGATrackSimSpacePointsTool/FPGATrackSimSpacePointsTool", "FPGATrackSimSpacePointsTool" }
 
ToolHandle< IFPGATrackSimRoadFinderToolm_roadFinderTool {this, "RoadFinder", "RoadFinder"}
 
const FPGATrackSimPlaneMapm_pmap = nullptr
 
Gaudi::Property< int > m_nRegions {this, "NBanks", 0, "Number of banks to make"}
 
Gaudi::Property< bool > m_doClustering {this, "Clustering", true, "Do cluster?"}
 
Gaudi::Property< bool > m_doSpacePoints {this, "SpacePoints", true, "Do spacepoints?"}
 
Gaudi::Property< int > m_ideal_geom {this, "IdealiseGeometry", 0, "Ideal geo flag, 0 is non, 1 is 1st order, 2 is 2nd order"}
 
Gaudi::Property< bool > m_single {this, "SingleSector", false, "Run single sector"}
 
Gaudi::Property< bool > m_doHoughConstants {this, "HoughConstants", true, "If true will run Hough Transform to set q/pt and phi0"}
 
Gaudi::Property< bool > m_doDeltaPhiConsts {this, "DeltaPhiConstants", false, "If true will generate delta phi constants"}
 
Gaudi::Property< int > m_MaxWC {this, "WCmax", 0, "Max number of WCs"}
 
Gaudi::Property< int > m_minSpacePlusPixel {this, "minSpacePlusPixel", 4, "Require that tracks in training have a certain number of pixel hits + spacepoints" }
 
Gaudi::Property< float > m_PT_THRESHOLD {this, "PT_THRESHOLD", 0., "Min pt"}
 
Gaudi::Property< float > m_D0_THRESHOLD {this, "D0_THRESHOLD", 1., "Max d0"}
 
Gaudi::Property< int > m_TRAIN_PDG {this, "TRAIN_PDG", 0, "PDG of particles to train on"}
 
Gaudi::Property< float > m_temp_c_min {this, "par_c_min", -1, "Min curvature"}
 
Gaudi::Property< float > m_temp_c_max {this, "par_c_max", 1, "Max curvature"}
 
Gaudi::Property< float > m_temp_phi_min {this, "par_phi_min", -TMath::Pi(), "Min phi"}
 
Gaudi::Property< float > m_temp_phi_max {this, "par_phi_max", TMath::Pi(), "Max phi"}
 
Gaudi::Property< float > m_temp_d0_min {this, "par_d0_min", -2, "Min d0"}
 
Gaudi::Property< float > m_temp_d0_max {this, "par_d0_max", 2, "Max d0"}
 
Gaudi::Property< float > m_temp_z0_min {this, "par_z0_min", -200, "Min z0"}
 
Gaudi::Property< float > m_temp_z0_max {this, "par_z0_max", 200, "Max z0"}
 
Gaudi::Property< float > m_temp_eta_min {this, "par_eta_min", -5, "Min eta"}
 
Gaudi::Property< float > m_temp_eta_max {this, "par_eta_max", 5, "Max eta"}
 
Gaudi::Property< int > m_temp_c_slices {this, "par_c_slices", 100, "Number of c slides"}
 
Gaudi::Property< int > m_temp_phi_slices {this, "par_phi_slices", 100, "Number of phi slices"}
 
Gaudi::Property< int > m_temp_d0_slices {this, "par_d0_slices", 100, "Number of d0 slices"}
 
Gaudi::Property< int > m_temp_z0_slices {this, "par_z0_slices", 100, "Number of z0 slices"}
 
Gaudi::Property< int > m_temp_eta_slices {this, "par_eta_slices", 100, "Number of eta slices"}
 
Gaudi::Property< bool > m_absQOverPtBinning {this, "qptAbsBinning", false, "This property controls whether or not to interpret the bins as q/pt or |q/pt|"}
 
Gaudi::Property< std::vector< double > > m_qOverPtBins {this, "sectorQPtBins", {}, "q/pt bins for sector definition"}
 
int m_nLayers = 0
 
int m_nDim = 0
 
int m_nDim2 = 0
 
FPGATrackSimTrackPars m_sliceMin = 0
 
FPGATrackSimTrackPars m_sliceMax = 0
 
FPGATrackSimTrackParsI m_nBins
 
FPGATrackSimEventInputHeaderm_eventHeader = nullptr
 
size_t m_nTracks = 0
 
size_t m_nTracksUsed = 0
 
TH1Im_h_trainingTrack [FPGATrackSimTrackPars::NPARS] {}
 
TH1Im_h_sectorPars [FPGATrackSimTrackPars::NPARS] {}
 
TH1Im_h_SHfailure [FPGATrackSimTrackPars::NPARS] {}
 
TH1Im_h_3hitsInLayer [FPGATrackSimTrackPars::NPARS] {}
 
TH1Im_h_notEnoughHits [FPGATrackSimTrackPars::NPARS] {}
 
TH1Im_h_trackQoP_okHits = nullptr
 
TH1Im_h_trackQoP_okRegion = nullptr
 
TH1Im_h_nHit = nullptr
 
DataObjIDColl m_extendedExtraObjects
 
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 52 of file FPGATrackSimMatrixGenAlgo.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Member Enumeration Documentation

◆ selectHit_returnCode

Enumerator
SH_FAILURE 
SH_KEEP_OLD 
SH_KEEP_NEW 

Definition at line 136 of file FPGATrackSimMatrixGenAlgo.h.

136 { SH_FAILURE, SH_KEEP_OLD, SH_KEEP_NEW };

Constructor & Destructor Documentation

◆ FPGATrackSimMatrixGenAlgo()

FPGATrackSimMatrixGenAlgo::FPGATrackSimMatrixGenAlgo ( const std::string &  name,
ISvcLocator *  pSvcLocator 
)

Definition at line 35 of file FPGATrackSimMatrixGenAlgo.cxx.

35  :
36  AthAlgorithm(name, pSvcLocator)
37 {
38 }

◆ ~FPGATrackSimMatrixGenAlgo()

virtual FPGATrackSimMatrixGenAlgo::~FPGATrackSimMatrixGenAlgo ( )
virtualdefault

Member Function Documentation

◆ bookHistograms()

StatusCode FPGATrackSimMatrixGenAlgo::bookHistograms ( )
private

Definition at line 122 of file FPGATrackSimMatrixGenAlgo.cxx.

123 {
124  // Training tracks
125  for (unsigned i = 0; i < FPGATrackSimTrackPars::NPARS; i++) {
126  std::string name = "h_trainingTrack_" + FPGATrackSimTrackPars::parName(i);
127  std::string title = FPGATrackSimTrackPars::parName(i) + " of tracks passing pt/barcode check";
128 
129  m_h_trainingTrack[i] = new TH1I(name.c_str(), title.c_str(), 100, m_sliceMin[i], m_sliceMax[i]);
130  ATH_CHECK(m_tHistSvc->regHist("/TRIGFPGATrackSimMATRIXOUT/" + name, m_h_trainingTrack[i]));
131  }
132 
133  // Sector pars
134  for (unsigned i = 0; i < FPGATrackSimTrackPars::NPARS; i++) {
135 
136  std::string name = "h_sectorPars_" + FPGATrackSimTrackPars::parName(i);
137  std::string title = "Average " + FPGATrackSimTrackPars::parName(i) + " in sector";
138 
139  m_h_sectorPars[i] = new TH1I(name.c_str(), title.c_str(), 100, m_sliceMin[i], m_sliceMax[i]);
140  ATH_CHECK(m_tHistSvc->regHist("/TRIGFPGATrackSimMATRIXOUT/" + name, m_h_sectorPars[i]));
141  }
142 
143  // Select hit failure
144  for (unsigned i = 0; i < FPGATrackSimTrackPars::NPARS; i++) {
145 
146  std::string name = "h_SHfailure_" + FPGATrackSimTrackPars::parName(i);
147  std::string title = FPGATrackSimTrackPars::parName(i) + " of tracks failing in selectHit()";
148 
149  m_h_SHfailure[i] = new TH1I(name.c_str(), title.c_str(), 100, m_sliceMin[i], m_sliceMax[i]);
150  ATH_CHECK(m_tHistSvc->regHist("/TRIGFPGATrackSimMATRIXOUT/" + name, m_h_SHfailure[i]));
151  }
152 
153  // 3 hits in layer
154  for (unsigned i = 0; i < FPGATrackSimTrackPars::NPARS; i++) {
155 
156  std::string name = "h_3hitsInLayer_" + FPGATrackSimTrackPars::parName(i);
157  std::string title = FPGATrackSimTrackPars::parName(i) + " of tracks containing 3+ hits in a single layer";
158 
159  m_h_3hitsInLayer[i] = new TH1I(name.c_str(), title.c_str(), 100, m_sliceMin[i], m_sliceMax[i]);
160  ATH_CHECK(m_tHistSvc->regHist("/TRIGFPGATrackSimMATRIXOUT/" + name, m_h_3hitsInLayer[i]));
161  }
162 
163  // Not enough hits
164  for (unsigned i = 0; i < FPGATrackSimTrackPars::NPARS; i++) {
165  std::string name = "h_notEnoughHits_" + FPGATrackSimTrackPars::parName(i);
166  std::string title = FPGATrackSimTrackPars::parName(i) + " of tracks failing because it didn't have enough hits";
167 
168  m_h_notEnoughHits[i] = new TH1I(name.c_str(), title.c_str(), 100, m_sliceMin[i], m_sliceMax[i]);
169  ATH_CHECK(m_tHistSvc->regHist("/TRIGFPGATrackSimMATRIXOUT/" + name, m_h_notEnoughHits[i]));
170  }
171 
172  m_h_trackQoP_okHits = new TH1I("h_trackQoP_okHits", "half inverse pt of tracks passing hit check",
174  m_h_trackQoP_okRegion = new TH1I("h_trackQoP_okRegion", "half inverse pt of tracks passing region check",
176  m_h_nHit = new TH1I("h_nHit", "number of hits in sector", 100, 0, 100);
177 
178  ATH_CHECK(m_tHistSvc->regHist("/TRIGFPGATrackSimMATRIXOUT/h_trackQoP_okHits", m_h_trackQoP_okHits));
179  ATH_CHECK(m_tHistSvc->regHist("/TRIGFPGATrackSimMATRIXOUT/h_trackQoP_okRegion", m_h_trackQoP_okRegion));
180  ATH_CHECK(m_tHistSvc->regHist("/TRIGFPGATrackSimMATRIXOUT/h_nHit",m_h_nHit));
181 
182  return StatusCode::SUCCESS;
183 }

◆ createMatrixTrees()

std::vector<TTree*> FPGATrackSimMatrixGenAlgo::createMatrixTrees ( )
private

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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; }

◆ execute()

StatusCode FPGATrackSimMatrixGenAlgo::execute ( )
override

Definition at line 197 of file FPGATrackSimMatrixGenAlgo.cxx.

198 {
199  ATH_MSG_DEBUG("execute()");
201  m_eventHeader->reset();
202 
203  // Get hits and training tracks from this event
204  ATH_CHECK(m_hitInputTool->readData(m_eventHeader, Gaudi::Hive::currentContext()));
205 
206  std::vector<FPGATrackSimHit> hits = getLogicalHits();
207 
208  std::vector<FPGATrackSimTruthTrack> truth_tracks = m_eventHeader->optional().getTruthTracks();
209  std::vector<FPGATrackSimTruthTrack> tracks = filterTrainingTracks(truth_tracks);
210 
211  m_nTracks += truth_tracks.size();
212  if (tracks.empty()) {
213  ATH_MSG_DEBUG("Empty training tracks");
214  return StatusCode::SUCCESS;
215  }
216 
217  // Prepare a map of the hits according the barcode
218  std::map<int, std::vector<FPGATrackSimHit>> barcode_hits = makeBarcodeMap(hits, tracks);
219 
220  // For each training track, find the sector it belongs to and accumulate the
221  // hit coordinates and track parameters.
222  for (FPGATrackSimTruthTrack const & track : tracks) {
223 
224  // Get list of hits associated to the current truth track
225  std::vector<FPGATrackSimHit> & track_hits = barcode_hits[track.getBarcode()];
226 
227  // Get the hits that will form the actual sector
228  std::vector<FPGATrackSimHit> sector_hits;
229  bool success = filterSectorHits(track_hits, sector_hits, track);
230  if (!success) continue; // Skip this track if it has bad hits (not complete, etc.)
231  m_h_trackQoP_okHits->Fill(track.getQOverPt());
232 
233  // Get the region of this sector
234  int region = getRegion(sector_hits);
235  if (region < 0 || region >= m_nRegions) continue;
236  m_h_trackQoP_okRegion->Fill(track.getQOverPt());
237 
238  //For the Hough constants, find the Hough roads
239  std::vector<FPGATrackSimRoad*> houghRoads;
240  if (m_doHoughConstants){
241 
242  std::vector<const FPGATrackSimHit*> phits;
243  std::vector<FPGATrackSimRoad*> roads;
244 
245  for (const FPGATrackSimHit& hit : sector_hits) phits.push_back(&hit);
246 
247  StatusCode sc = m_roadFinderTool->getRoads(phits, roads);
248  if (sc.isFailure()) ATH_MSG_WARNING("Hough Transform -> getRoads() failed");
249 
250  if (!roads.empty()){
251  for (FPGATrackSimRoad* hr : roads){
252  houghRoads.push_back(hr);
253  }
254  }
255 
256  if (!houghRoads.empty()){
257  double y = 0.0;
258  double x = 0.0;
259 
260  //For each Hough road, make the accumulator
261  for (FPGATrackSimRoad* hr : houghRoads){
262  y = hr->getY();
263  x = hr->getX();
264 
265  // Prepare the accumulator struct
266  std::vector<module_t> modules(m_nLayers);
268  acc.pars.qOverPt = y;
269  acc.pars.phi = x;
270  std::pair<std::vector<module_t>, FPGATrackSimMatrixAccumulator> modules_acc = {modules, acc};
271  ATH_CHECK(makeAccumulator(sector_hits, track, modules_acc));
272 
273  // Add the track to the accumulate map
274  accumulate(m_sector_cum[region], modules_acc.first, modules_acc.second);
275  m_nTracksUsed++;
276  }
277  }
278  else{
279  ATH_MSG_DEBUG("execute(): no hough roads?");
280  return StatusCode::SUCCESS;
281  }
282  }
283  else{
284  // Prepare the accumulator struct
285  std::vector<module_t> modules(m_nLayers);
287  std::pair<std::vector<module_t>, FPGATrackSimMatrixAccumulator> modules_acc = {modules, acc};
288  ATH_CHECK(makeAccumulator(sector_hits, track, modules_acc));
289 
290  // Add the track to the accumulate map
291  accumulate(m_sector_cum[region], modules_acc.first, modules_acc.second);
292  m_nTracksUsed++;
293  }
294  }
295 
296  return StatusCode::SUCCESS;
297 }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::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

◆ extraOutputDeps()

const DataObjIDColl & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 50 of file AthAlgorithm.cxx.

51 {
52  // If we didn't find any symlinks to add, just return the collection
53  // from the base class. Otherwise, return the extended collection.
54  if (!m_extendedExtraObjects.empty()) {
56  }
57  return Algorithm::extraOutputDeps();
58 }

◆ fillMatrixTrees()

void FPGATrackSimMatrixGenAlgo::fillMatrixTrees ( std::vector< TTree * > const matrixTrees)
private

◆ filterSectorHits()

bool FPGATrackSimMatrixGenAlgo::filterSectorHits ( std::vector< FPGATrackSimHit > const all_hits,
std::vector< FPGATrackSimHit > &  sector_hits,
FPGATrackSimTruthTrack const t 
) const
private

Definition at line 509 of file FPGATrackSimMatrixGenAlgo.cxx.

511 {
512  FPGATrackSimHit nohit;
514  sector_hits.resize(m_nLayers, nohit);
515  std::vector<int> layer_count(m_nLayers); // count number of hits seen in each layer
516 
517  for (FPGATrackSimHit const & hit : all_hits) {
518  int layer = hit.getLayer();
519 
520  if (layer_count[layer] == 0){
521  layer_count[layer]++;
522  sector_hits[layer] = hit;
523  }
524  else if (layer_count[layer] == 1) {
525  layer_count[layer]++;
526 
527  // Already found a hit in this layer, so pick which hit to use
528  selectHit_returnCode selected_hit = selectHit(sector_hits[layer], hit);
529 
530  if (selected_hit == selectHit_returnCode::SH_FAILURE) {
532  return false;
533  }
534  else if (selected_hit == selectHit_returnCode::SH_KEEP_NEW) sector_hits[layer] = hit;
535  }
536  else {
537  ATH_MSG_DEBUG("Too many hits on a plane, exiting filterHitsSec");
539  return false;
540  }
541  }
542 
543  // Count number of wildcards, spacepoints, and pixel hits.
544  int nwc = 0;
545  int num_sp = 0;
546  int num_pixel = 0;
547 
548  // Check we have the right number of hits
549  // Check we have the right number of hits.
550  for (int i = 0; i < m_nLayers; ++i)
551  {
552  if (layer_count[i] == 0)
553  {
554  ATH_MSG_DEBUG("Layer " << i << " has no hits");
555  nwc++;
556  }
557 
558  // Now that we've decided which hit to use-- check their type.
559  if (sector_hits[i].getHitType() == HitType::spacepoint) {
560  num_sp += 1;
561  }
562  if (sector_hits[i].isPixel()) {
563  num_pixel += 1;
564  }
565  }
566 
567  ATH_MSG_DEBUG("Found " << nwc << " wildcards compared to maximum: " << m_MaxWC);
568  // Divide by 2 due to spacepoint duplication.
569  num_sp /= 2;
570  ATH_MSG_DEBUG("Found " << num_sp << " spacepoints after removing duplicates.");
571  // Require we don't have too many wildcards.
572  if (nwc > m_MaxWC)
573  {
575  return false;
576  }
577  // Require that we have a certain number of "2D" hits (i.e. pixels and spacepoints)
578  // The effect of this is that we can ensure we have 4/5 2D hits but 7/9 hits total.
579  // NOTE Again, uncomment logic below for second stage running.
580  num_sp += num_pixel;
581  int minSpacePlusPixel = /*m_isSecondStage ? m_minSpacePlusPixel2 :*/ m_minSpacePlusPixel;
582  if (num_sp < minSpacePlusPixel) {
583  ATH_MSG_DEBUG("Not enough pixel hits + spacepoints (" << num_sp << " < " << minSpacePlusPixel << ")");
585  return false;
586  }
587  return true;
588 }

◆ filterTrainingTracks()

std::vector< FPGATrackSimTruthTrack > FPGATrackSimMatrixGenAlgo::filterTrainingTracks ( std::vector< FPGATrackSimTruthTrack > const truth_tracks) const
private

Definition at line 341 of file FPGATrackSimMatrixGenAlgo.cxx.

342 {
343  std::vector<FPGATrackSimTruthTrack> training_tracks;
344 
345  for (FPGATrackSimTruthTrack const & track : truth_tracks) {
346  if (HepMC::generations(&track) >= 1 || std::abs(track.getPDGCode()) != m_TRAIN_PDG) continue;
347  if (std::abs(track.getD0()) > m_D0_THRESHOLD) continue;
348 
349  double pt = TMath::Sqrt(track.getPX()*track.getPX() + track.getPY()*track.getPY());
350  double pt_GeV = pt / 1000;
351 
352  // Add the track to the list of good tracks
353  if (pt_GeV > m_PT_THRESHOLD) training_tracks.push_back(track);
354 
355  // Debug
356  if (msgLvl(MSG::DEBUG)) {
357  double c = track.getQ() /(2 * pt);
358  double eta = TMath::ASinH(track.getPZ() / pt);
359  double phi = TMath::ATan2(track.getPY(), track.getPX());
360  ATH_MSG_DEBUG("pt_GeV = "<< pt_GeV
361  << " c = " << c
362  << " eta = " << eta
363  << " phi = " << phi
364  << " pdgcode = " << track.getPDGCode());
365  }
367  }
368 
369  return training_tracks;
370 }

◆ finalize()

StatusCode FPGATrackSimMatrixGenAlgo::finalize ( )
override

Definition at line 832 of file FPGATrackSimMatrixGenAlgo.cxx.

833 {
834  ATH_MSG_DEBUG("finalize()");
835  ATH_MSG_INFO("Tracks used: " << m_nTracksUsed << "/" << m_nTracks);
836 
837  for (int region = 0; region < m_nRegions; region++) {
838  // Create the tree
839  std::stringstream name;
840  std::stringstream title;
841  name << "am" << region;
842  title << "Ambank " << region << " parameters";
843  TTree* tree = new TTree(name.str().c_str(), title.str().c_str());
844  ATH_CHECK(m_tHistSvc->regTree(Form("/TRIGFPGATrackSimMATRIXOUT/%s",tree->GetName()), tree));
845 
846  // Fill the tree
848  // Monitoring
849  ATH_MSG_INFO("Sectors found in region " << region << ": " << m_sector_cum[region].size());
850  for (auto & sector_info : m_sector_cum[region]) {
851  double coverage = sector_info.second.track_bins.size();
852  m_h_nHit->Fill(coverage);
853  for (unsigned i = 0; i < FPGATrackSimTrackPars::NPARS; i++)
854  m_h_sectorPars[i]->Fill(sector_info.second.pars[i] / coverage);
855  }
856  }
857 
858  writeSliceTree();
859  ATH_CHECK(m_tHistSvc->finalize());
860  return StatusCode::SUCCESS;
861 }

◆ getLogicalHits()

std::vector< FPGATrackSimHit > FPGATrackSimMatrixGenAlgo::getLogicalHits ( )
private

Definition at line 302 of file FPGATrackSimMatrixGenAlgo.cxx.

303 {
304  std::vector<FPGATrackSimHit> hits;
305  //Setup the logical header...
307  //Map the hits to the logical header...
308  unsigned stage = 0;
309  if (m_doHoughConstants) stage = 1; // For now Hough constants only works on 1st stage
310  else stage = 2;
311  StatusCode sc = m_hitMapTool->convert(stage, *m_eventHeader, logicalHeader);
312  if (sc.isFailure()) ATH_MSG_ERROR("Hit mapping failed");
313 
314  // Since the clustering tool modifies the logical towers-- refactored this
315  // to only access the output hits from the towers.
316  if (m_doClustering) {
317  std::vector<FPGATrackSimCluster> clustered_hits;
318  sc = m_clusteringTool->DoClustering(logicalHeader, clustered_hits);
319  if (sc.isFailure()) ATH_MSG_ERROR("Clustering failed");
320  }
321  // Optionally do spacepoints (as well).
322  if (m_doSpacePoints) {
323  std::vector<FPGATrackSimCluster> spacepoints;
324  sc = m_spacePointsTool->DoSpacePoints(logicalHeader, spacepoints);
325  if (sc.isFailure()) ATH_MSG_ERROR("Spacepoints failed");
326  }
327 
328  // It should now be safe to pull the towers, regardless.
329  std::vector<FPGATrackSimTowerInputHeader> towers = logicalHeader.towers();
330  for (auto &tower : towers) {
331  std::vector<FPGATrackSimHit> const & towerHits = tower.hits();
332  for (FPGATrackSimHit const & hit : towerHits) {
333  hits.push_back(hit);
334  }
335  }
336  return hits;
337 }

◆ getRegion()

int FPGATrackSimMatrixGenAlgo::getRegion ( std::vector< FPGATrackSimHit > const hits) const
private

Definition at line 592 of file FPGATrackSimMatrixGenAlgo.cxx.

593 {
594  // Start with a bitmask, all true, and set a region to false if any mismatch is found
595  std::vector<bool> region_mask(m_nRegions, true);
596 
597  for (FPGATrackSimHit const & hit : hits) {
598  if (hit.getHitType() != HitType::wildcard){ // don't worry about hits that are WCs
599  for (int region = 0; region < m_nRegions; region++) {
600  if (m_doHoughConstants) {
601  if (!m_FPGATrackSimMapping->RegionMap_1st()->isInRegion(region, hit))
602  region_mask[region] = false;
603  }
604  else {
605  if (!m_FPGATrackSimMapping->RegionMap_2nd()->isInRegion(region, hit))
606  region_mask[region] = false;
607  }
608  }
609  }
610  }
611 
612  // For now just give preference to lowest region index for simplicity
613  for (int region = 0; region < m_nRegions; region++)
614  if (region_mask[region])
615  return region;
616 
617  return -1;
618 }

◆ initialize()

StatusCode FPGATrackSimMatrixGenAlgo::initialize ( )
override

Definition at line 46 of file FPGATrackSimMatrixGenAlgo.cxx.

47 {
48  ATH_MSG_DEBUG("initialize()");
49 
50  // set the slicing variables from inputs
56 
62 
68 
69  // Retrieve handles
70  ATH_CHECK(m_tHistSvc.retrieve());
71  ATH_CHECK(m_FPGATrackSimMapping.retrieve());
72  ATH_CHECK(m_hitInputTool.retrieve());
73  ATH_CHECK(m_hitMapTool.retrieve());
74  ATH_CHECK(m_EvtSel.retrieve());
75  ATH_CHECK(m_roadFinderTool.retrieve());
76  if (m_doClustering) ATH_CHECK(m_clusteringTool.retrieve());
78 
79  if (m_doHoughConstants) {
80  if (m_ideal_geom == 0) {
81  ATH_MSG_INFO("Hough constants method needs idealized geometry > 0, aborting.");
82  return StatusCode::FAILURE;
83  }
84  m_pmap = m_FPGATrackSimMapping->PlaneMap_1st();
85  // Get detector configurations
86  m_nLayers = m_FPGATrackSimMapping->PlaneMap_1st()->getNLogiLayers();
87  m_nRegions = m_FPGATrackSimMapping->RegionMap_1st()->getNRegions();
88  m_nDim = m_FPGATrackSimMapping->PlaneMap_1st()->getNCoords();
89 
90  }
91  else {
92  m_pmap = m_FPGATrackSimMapping->PlaneMap_2nd();
93  // Get detector configurations
94  m_nLayers = m_FPGATrackSimMapping->PlaneMap_2nd()->getNLogiLayers();
95  m_nRegions = m_FPGATrackSimMapping->RegionMap_2nd()->getNRegions();
96  m_nDim = m_FPGATrackSimMapping->PlaneMap_2nd()->getNCoords();
97  }
98 
99  m_nDim2 = m_nDim * m_nDim;
100  m_sector_cum.resize(m_nRegions);
101 
102  // Retrieve slice information
103  m_sliceMin = m_EvtSel->getMin();
104  m_sliceMax = m_EvtSel->getMax();
105 
106  // Check q/pt binning information
107  if (m_qOverPtBins.size() == 0) {
108  ATH_MSG_ERROR("q/pt bin information not set in matrix element job options!");
109  return StatusCode::FAILURE;
110  }
111 
112 
113  // Histograms
115 
117 
118  return StatusCode::SUCCESS;
119 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< Algorithm > >::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.

◆ makeAccumulator()

StatusCode FPGATrackSimMatrixGenAlgo::makeAccumulator ( std::vector< FPGATrackSimHit > const sector_hits,
FPGATrackSimTruthTrack const track,
std::pair< std::vector< module_t >, FPGATrackSimMatrixAccumulator > &  accumulator 
) const
private

Definition at line 623 of file FPGATrackSimMatrixGenAlgo.cxx.

624 {
625  std::vector<module_t> modules(m_nLayers);
627 
628  //find the bin!
629  // NOTE: this only implements q/pt binning, not the subregion / eta pattern-based constants for now.
630  int sectorbin = 0;
631  double qoverpt = track.getQ() / track.getPt();
632  if (m_absQOverPtBinning) qoverpt = abs(qoverpt);
633  for (unsigned bin = 0; bin < m_qOverPtBins.size()-1; bin++) {
634  sectorbin = fpgatracksim::QPT_SECTOR_OFFSET * bin;
635  if (qoverpt < m_qOverPtBins[bin+1]) break;
636  }
637 
638  // Create sector definitions (list of modules)
639  std::string module_printout = "";
640  for (int i = 0; i < m_nLayers; i++)
641  {
642  if (sector_hits[i].getHitType() != HitType::wildcard) {
643  if (m_single) modules[i] = sector_hits[i].getIdentifierHash();
644  else {
645  modules[i] = sectorbin;
646  // Modify sectorbin by a "type" field, which for now means: 0 = not spacepoint, 1 = spacepoint.
647  // This will fail if we have more than 99 q/pt bins!
648  if (sector_hits[i].getHitType() == HitType::spacepoint) {
650  }
651  module_printout += std::to_string(modules[i]) + ", ";
652  }
653  }
654  else {
655  modules[i] = -1; // WC
656  }
657  }
658 
659  ATH_MSG_DEBUG("Generating track in sectorbin = " << sectorbin << " with modules: " << module_printout);
660 
661 
662  if (m_single) {
663  const int ToKeep[13] = {2200,2564,2861,3831,5368,14169,14173,20442,20446,29625,29629,42176,42180};
664  bool keepThis = true;
665  for (int i = 0; i < 13; i++) {
666  if (modules[i] != ToKeep[i] && modules[i] != -1) {
667  keepThis = false;
668  }
669  }
670 
671  if (!keepThis) {
672  for (int i = 0; i < 13; i++) modules[i] = -1;
673  }
674  else {
675  for (int i = 0; i < 13; i++) {
676  }
677  }
678  }
679 
680 
681  // rho = (0.33 m) (pT/GeV) / (B/T)
682  // 0.33 in m -> 330.0 mm. Track pt -> GeV. 2.0 Tesla
683  // inverse, x2 for convenience
684 
685  // rho = 330 mm * track.getPT() / 2 T
686  // 2 rho = 330 mm * track.getPT()
687  // 1/ (2rho) = 1./(330 * pT) for pT in GeV
688  // or 1./(0.33 * pt) for pT in MeV
689 
690  double const trackTwoRhoInv = track.getQ() * 1.0 / ( 0.33 * track.getPt() );
691 
692  // Hough Constants parameters
693  double y = accumulator.second.pars.qOverPt;
694  double x = accumulator.second.pars.phi;
695  double const houghRho = fpgatracksim::A * y; // Aq/pT
696 
697  // Vectorize (flatten) coordinates
698  std::vector<double> coords;
699  std::vector<double> coordsG;
700  for (int i = 0; i < m_nLayers; ++i) {
701  if (sector_hits[i].getHitType() != HitType::wildcard) {
702  double hitGPhi = sector_hits[i].getGPhi(); // need to be careful about 2 pi boundary in the future!
703 
704  // If this is a spacepoint the target R should be the average of the two layers.
705  // TODO, get this to be loaded in from a mean radii file into the mapping infrastructure.
706  double target_r = m_FPGATrackSimMapping->RegionMap_1st()->getAvgRadius(0, i);
707  if (sector_hits[i].getHitType() == HitType::spacepoint) {
708  int other_layer = (sector_hits[i].getSide() == 0) ? i + 1 : i - 1;
709  target_r = (target_r + m_FPGATrackSimMapping->RegionMap_1st()->getAvgRadius(0, other_layer)) / 2.;
710  }
711 
712  // Create phi for any hits that are not spacepoints, as well as "inner" spacepoints.
713  // but not outer spacepoints. this avoids duplicate coordinates.
714  if (sector_hits[i].getHitType() != HitType::spacepoint || sector_hits[i].getSide() == 0) {
715 
716  if (m_doHoughConstants){
717  double expectedGPhi = x; // to get the intersection of the hough road with detector layer
718 
719  hitGPhi += ( sector_hits[i].getR() - target_r ) * houghRho; //first order
720  expectedGPhi -= target_r * houghRho; //first order
721 
722  if ( m_ideal_geom > 1 ) {
723  hitGPhi += ( pow( sector_hits[i].getR() * houghRho, 3.0 ) / 6.0 ); //higher order
724  expectedGPhi -= ( pow( target_r * houghRho, 3.0 ) / 6.0 ); //higher order
725  }
726 
727  if (m_doDeltaPhiConsts) {
728  coords.push_back(hitGPhi - expectedGPhi);
729  coordsG.push_back(hitGPhi - expectedGPhi);
730  } else {
731  coords.push_back(hitGPhi);
732  coordsG.push_back(hitGPhi);
733  ATH_MSG_DEBUG("Pushed back phi coord = " << hitGPhi);
734  }
735  }
736  else {
737  // Idealise phi coordinate if requested
738  if ( m_ideal_geom > 0 ) {
739  hitGPhi += ( sector_hits[i].getR() - target_r ) * trackTwoRhoInv; //first order
740  }
741  if ( m_ideal_geom > 1 ) {
742  hitGPhi += ( pow( sector_hits[i].getR() * trackTwoRhoInv, 3.0 ) / 6.0 ); //higher order
743  }
744  coords.push_back(hitGPhi);
745  coordsG.push_back(hitGPhi);
746  }
747  }
748 
749  // Create a z coordinate for the "outer" layer of the spacepoint and for 2D pixel hits.
750  // This means that a spacepoint will write out (phi, eta) pairs, but (0, phi) or (phi, 0) if it's missing.
751  if (sector_hits[i].getDim() == 2 || (sector_hits[i].getHitType() == HitType::spacepoint && (sector_hits[i].getPhysLayer() % 2) == 1)) {
752  double hitZ = sector_hits[i].getZ();
753 
754  if(m_doHoughConstants){
755  hitZ -= sector_hits[i].getGCotTheta() * (sector_hits[i].getR() - target_r);
756  if ( m_ideal_geom > 1 )
757  hitZ -= (sector_hits[i].getGCotTheta() * pow (sector_hits[i].getR(), 3.0) * houghRho * houghRho) / 6.0;
758  }
759  else{
760  if ( m_ideal_geom > 0 ) {
761  hitZ -= sector_hits[i].getGCotTheta() * (sector_hits[i].getR() - target_r);
762  }
763  if ( m_ideal_geom > 1 ) {
764  hitZ -= sector_hits[i].getGCotTheta() * ( pow (sector_hits[i].getR(), 3.0) * trackTwoRhoInv * trackTwoRhoInv) / 6.0;
765  }
766  }
767 
768  coords.push_back(hitZ);
769  coordsG.push_back(hitZ);
770  ATH_MSG_DEBUG("Pushed back z coord = " << hitZ);
771  }
772 
773  }
774  else {
775  coords.push_back(0);
776  coordsG.push_back(0);
777  if (m_pmap->getDim(i) == 2) coords.push_back(0);
778  if (m_pmap->getDim(i) == 2) coordsG.push_back(0);
779  }
780  }
781  assert(coords.size() == (size_t)m_nDim);
782  acc.hit_coords = coords;
783  acc.hit_coordsG = coordsG;
784 
785  // Get the track parameters
786  acc.pars = track.getPars();
788  acc.pars.qOverPt = (y / 1000.0) - track.getQOverPt(); // fit for delta q/pT
789  acc.pars.phi = x - track.getPhi(); // fit for delta phi_0
790  }
791 
793  for (unsigned i = 0; i < FPGATrackSimTrackPars::NPARS; i++)
794  bins[i] = (acc.pars[i] - m_sliceMin[i]) * m_nBins[i] / (m_sliceMax[i] - m_sliceMin[i]);
795  acc.track_bins.push_back(bins);
796 
797  // Force phi to be in [0, 2pi] (post binning)
798  if (!m_doDeltaPhiConsts) {
799  while (acc.pars.phi < 0) acc.pars.phi += 2*M_PI;
800  while (acc.pars.phi > 2*M_PI) acc.pars.phi -= 2*M_PI;
801  }
802 
803  // Calculate the pre-multiplied elements
804  for (int i = 0; i < m_nDim; i++)
805  {
806  acc.hit_x_QoP[i] = coords[i] * acc.pars.qOverPt;
807  acc.hit_xG_HIP[i] = coordsG[i] * acc.pars.qOverPt;
808  acc.hit_x_d0[i] = coords[i] * acc.pars.d0;
809  acc.hit_x_z0[i] = coords[i] * acc.pars.z0;
810  acc.hit_x_eta[i] = coords[i] * acc.pars.eta;
811  acc.hit_xG_eta[i] = coordsG[i] * acc.pars.eta;
812  acc.hit_x_phi[i] = coords[i] * acc.pars.phi;
813 
814  for (int j = i; j < m_nDim; j++)
815  acc.covariance[i * m_nDim + j] = coords[i] * coords[j];
816 
817  for (int j = i; j < m_nDim; j++)
818  acc.covarianceG[i * m_nDim + j] = coordsG[i] * coordsG[j];
819  }
820 
821  accumulator = {modules, acc};
822  return StatusCode::SUCCESS;
823 }

◆ makeBarcodeMap()

std::map< int, std::vector< FPGATrackSimHit > > FPGATrackSimMatrixGenAlgo::makeBarcodeMap ( std::vector< FPGATrackSimHit > const hits,
std::vector< FPGATrackSimTruthTrack > const tracks 
) const
private

Definition at line 374 of file FPGATrackSimMatrixGenAlgo.cxx.

375 {
376  std::map<int, std::vector<FPGATrackSimHit>> map;
377 
378  // Ready the barcodes
379  for (const FPGATrackSimTruthTrack & track : tracks)
380  map[track.getBarcode()] = std::vector<FPGATrackSimHit>();
381 
382  // Add the hits
383  for (const FPGATrackSimHit & hit : hits) {
384  // Get the predominant barcode for the current hit
385  int barcode = hit.getTruth().best_barcode();
386 
387  // Add hit to the list; skip the hits if not associated to a good truth tracks
388  auto it = map.find(barcode);
389  if (it != map.end()) (*it).second.push_back(hit);
390  }
391 
392  return map;
393 }

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

MsgStream& AthCommonMsg< Algorithm >::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< Algorithm >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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  }

◆ selectHit()

FPGATrackSimMatrixGenAlgo::selectHit_returnCode FPGATrackSimMatrixGenAlgo::selectHit ( FPGATrackSimHit const old_hit,
FPGATrackSimHit const new_hit 
) const
private

Definition at line 408 of file FPGATrackSimMatrixGenAlgo.cxx.

409 {
410  if ((new_hit.getSection() == old_hit.getSection()) && (new_hit.getLayer() == old_hit.getLayer())
411  && (new_hit.getEtaModule() == old_hit.getEtaModule()) && (new_hit.getPhiModule() == old_hit.getPhiModule())) {
412  ATH_MSG_DEBUG("Two hits on same module");
414  }
415 
416  // Always prefer spacepoints, regardless of all other considerations.
417  // This is necessary in part due to spacepoint duplication.
418  if (old_hit.getHitType() == HitType::spacepoint && new_hit.getHitType() != HitType::spacepoint) {
420  } else if (old_hit.getHitType() != HitType::spacepoint && new_hit.getHitType() == HitType::spacepoint) {
422  }
423 
424  int new_section = new_hit.getSection();
425  int old_section = old_hit.getSection();
426 
427  if (old_section == new_section) {
428 
429  if (old_hit.getEtaModule() == new_hit.getEtaModule()) {
430  int rmax = 0;
431  if (m_doHoughConstants) {
432  int reg = m_FPGATrackSimMapping->RegionMap_1st()->getRegions(new_hit)[0]; // just take region with lowest index
433 
434  int phi_max = m_FPGATrackSimMapping->RegionMap_1st()->getRegionBoundaries(reg, new_hit.getLayer(), new_section).phi_max;
435  int phi_min = m_FPGATrackSimMapping->RegionMap_1st()->getRegionBoundaries(reg, new_hit.getLayer(), new_section).phi_min;
436 
437  rmax = phi_max - phi_min;
438  }
439  else {
440  int reg = m_FPGATrackSimMapping->RegionMap_2nd()->getRegions(new_hit)[0]; // just take region with lowest index
441 
442  int phi_max = m_FPGATrackSimMapping->RegionMap_2nd()->getRegionBoundaries(reg, new_hit.getLayer(), new_section).phi_max;
443  int phi_min = m_FPGATrackSimMapping->RegionMap_2nd()->getRegionBoundaries(reg, new_hit.getLayer(), new_section).phi_min;
444 
445  rmax = phi_max - phi_min;
446  }
447 
448  int phi_diff = old_hit.getPhiModule() - new_hit.getPhiModule();
449 
450  if (phi_diff == 1 || phi_diff == -rmax) return selectHit_returnCode::SH_KEEP_OLD;
451  else if (phi_diff == -1 || phi_diff == rmax) return selectHit_returnCode::SH_KEEP_NEW;
452  else {
453  ATH_MSG_DEBUG("Hits are too far away in phi");
455  }
456  }
457  else { // Different eta is no good
458 
459  ATH_MSG_DEBUG("Hits are in different eta");
461  }
462  }
463  else { // sections are different
464 
465  int layer = old_hit.getLayer();
466  bool old_isEC = 0;
467  bool new_isEC = 0;
468  int old_disk = 0;
469  int new_disk = 0;
470  if (m_doHoughConstants) {
471  old_isEC = m_FPGATrackSimMapping->PlaneMap_1st()->isEC(layer, old_section);
472  new_isEC = m_FPGATrackSimMapping->PlaneMap_1st()->isEC(layer, new_section);
473  old_disk = m_FPGATrackSimMapping->PlaneMap_1st()->getLayerInfo(layer, old_section).physDisk;
474  new_disk = m_FPGATrackSimMapping->PlaneMap_1st()->getLayerInfo(layer, new_section).physDisk;
475  }
476  else {
477  old_isEC = m_FPGATrackSimMapping->PlaneMap_2nd()->isEC(layer, old_section);
478  new_isEC = m_FPGATrackSimMapping->PlaneMap_2nd()->isEC(layer, new_section);
479  old_disk = m_FPGATrackSimMapping->PlaneMap_2nd()->getLayerInfo(layer, old_section).physDisk;
480  new_disk = m_FPGATrackSimMapping->PlaneMap_2nd()->getLayerInfo(layer, new_section).physDisk;
481  }
482  // If one is barrel and one endcap, it's definitely OK, take the barrel hit
483  if (old_isEC != new_isEC) {
484 
485  if (old_isEC) return selectHit_returnCode::SH_KEEP_NEW;
487  }
488  // Two endcap hits : same disk: discard
489  else if (old_disk == new_disk) {
490 
491  ATH_MSG_DEBUG("Two modules hit in same physical disk " << old_disk);
493  }
494  // Two endcap hits on same side: different disks: take the lower-z
495  else {
496  ATH_MSG_DEBUG("Keeping the lower-z of the two disks (" << old_disk << ", " << new_disk << ") hit");
497  if (old_disk > new_disk) return selectHit_returnCode::SH_KEEP_NEW;
499  }
500  }
501 }

◆ sysInitialize()

StatusCode AthAlgorithm::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Algorithm > >.

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, PyAthena::Alg, and AthHistogramAlgorithm.

Definition at line 66 of file AthAlgorithm.cxx.

66  {
68 
69  if (sc.isFailure()) {
70  return sc;
71  }
72  ServiceHandle<ICondSvc> cs("CondSvc",name());
73  for (auto h : outputHandles()) {
74  if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
75  // do this inside the loop so we don't create the CondSvc until needed
76  if ( cs.retrieve().isFailure() ) {
77  ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
78  return StatusCode::SUCCESS;
79  }
80  if (cs->regHandle(this,*h).isFailure()) {
81  sc = StatusCode::FAILURE;
82  ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
83  << " with CondSvc");
84  }
85  }
86  }
87  return sc;
88 }

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Algorithm > >::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< Algorithm > >::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  }

◆ writeSliceTree()

void FPGATrackSimMatrixGenAlgo::writeSliceTree ( )
private

Definition at line 864 of file FPGATrackSimMatrixGenAlgo.cxx.

865 {
866  TTree* sliceTree = new TTree("slice", "Region slice boundaries"); // slice
867 
868  sliceTree->Branch("c_max", &m_sliceMax.qOverPt);
869  sliceTree->Branch("d0_max", &m_sliceMax.d0);
870  sliceTree->Branch("phi_max", &m_sliceMax.phi);
871  sliceTree->Branch("z0_max", &m_sliceMax.z0);
872  sliceTree->Branch("eta_max", &m_sliceMax.eta);
873 
874  sliceTree->Branch("c_min", &m_sliceMin.qOverPt);
875  sliceTree->Branch("d0_min", &m_sliceMin.d0);
876  sliceTree->Branch("phi_min", &m_sliceMin.phi);
877  sliceTree->Branch("z0_min", &m_sliceMin.z0);
878  sliceTree->Branch("eta_min", &m_sliceMin.eta);
879 
880  sliceTree->Branch("c_slices", &m_nBins.qOverPt);
881  sliceTree->Branch("d0_slices", &m_nBins.d0);
882  sliceTree->Branch("phi_slices", &m_nBins.phi);
883  sliceTree->Branch("z0_slices", &m_nBins.z0);
884  sliceTree->Branch("eta_slices", &m_nBins.eta);
885 
886  StatusCode sc = m_tHistSvc->regTree("/TRIGFPGATrackSimMATRIXOUT/slice",sliceTree);
887  if (sc.isFailure()) ATH_MSG_ERROR("tHist failed");
888 
889  sliceTree->Fill();
890 }

Member Data Documentation

◆ m_absQOverPtBinning

Gaudi::Property<bool> FPGATrackSimMatrixGenAlgo::m_absQOverPtBinning {this, "qptAbsBinning", false, "This property controls whether or not to interpret the bins as q/pt or |q/pt|"}
private

Definition at line 114 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_clusteringTool

ToolHandle<FPGATrackSimClusteringToolI> FPGATrackSimMatrixGenAlgo::m_clusteringTool { this, "FPGATrackSimClusteringFTKTool", "FPGATrackSimClusteringFTKTool/FPGATrackSimClusteringFTKTool", "FPGATrackSimClusteringFTKTool" }
private

Definition at line 79 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_D0_THRESHOLD

Gaudi::Property<float> FPGATrackSimMatrixGenAlgo::m_D0_THRESHOLD {this, "D0_THRESHOLD", 1., "Max d0"}
private

Definition at line 97 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_detStore

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

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_doClustering

Gaudi::Property<bool> FPGATrackSimMatrixGenAlgo::m_doClustering {this, "Clustering", true, "Do cluster?"}
private

Definition at line 88 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_doDeltaPhiConsts

Gaudi::Property<bool> FPGATrackSimMatrixGenAlgo::m_doDeltaPhiConsts {this, "DeltaPhiConstants", false, "If true will generate delta phi constants"}
private

Definition at line 93 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_doHoughConstants

Gaudi::Property<bool> FPGATrackSimMatrixGenAlgo::m_doHoughConstants {this, "HoughConstants", true, "If true will run Hough Transform to set q/pt and phi0"}
private

Definition at line 92 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_doSpacePoints

Gaudi::Property<bool> FPGATrackSimMatrixGenAlgo::m_doSpacePoints {this, "SpacePoints", true, "Do spacepoints?"}
private

Definition at line 89 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_eventHeader

FPGATrackSimEventInputHeader* FPGATrackSimMatrixGenAlgo::m_eventHeader = nullptr
private

Definition at line 125 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_EvtSel

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

Definition at line 74 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_evtStore

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

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_FPGATrackSimMapping

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

Definition at line 73 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_h_3hitsInLayer

TH1I* FPGATrackSimMatrixGenAlgo::m_h_3hitsInLayer[FPGATrackSimTrackPars::NPARS] {}
private

Definition at line 157 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_h_nHit

TH1I* FPGATrackSimMatrixGenAlgo::m_h_nHit = nullptr
private

Definition at line 162 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_h_notEnoughHits

TH1I* FPGATrackSimMatrixGenAlgo::m_h_notEnoughHits[FPGATrackSimTrackPars::NPARS] {}
private

Definition at line 158 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_h_sectorPars

TH1I* FPGATrackSimMatrixGenAlgo::m_h_sectorPars[FPGATrackSimTrackPars::NPARS] {}
private

Definition at line 155 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_h_SHfailure

TH1I* FPGATrackSimMatrixGenAlgo::m_h_SHfailure[FPGATrackSimTrackPars::NPARS] {}
private

Definition at line 156 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_h_trackQoP_okHits

TH1I* FPGATrackSimMatrixGenAlgo::m_h_trackQoP_okHits = nullptr
private

Definition at line 160 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_h_trackQoP_okRegion

TH1I* FPGATrackSimMatrixGenAlgo::m_h_trackQoP_okRegion = nullptr
private

Definition at line 161 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_h_trainingTrack

TH1I* FPGATrackSimMatrixGenAlgo::m_h_trainingTrack[FPGATrackSimTrackPars::NPARS] {}
private

Definition at line 154 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_hitInputTool

ToolHandle<IFPGATrackSimInputTool> FPGATrackSimMatrixGenAlgo::m_hitInputTool {this, "FPGATrackSimSGToRawHitsTool", "FPGATrackSimSGToRawHitsTool/FPGATrackSimSGToRawHits", "input handler"}
private

Definition at line 77 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_hitMapTool

ToolHandle<FPGATrackSimRawToLogicalHitsTool> FPGATrackSimMatrixGenAlgo::m_hitMapTool {this, "FPGATrackSimRawToLogicalHitsTool", "FPGATrackSimRawToLogicalHitsTool/FPGATrackSim_RawToLogicalHitsTool", "FPGATrackSim_RawToLogicalHitsTool"}
private

Definition at line 78 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_ideal_geom

Gaudi::Property<int> FPGATrackSimMatrixGenAlgo::m_ideal_geom {this, "IdealiseGeometry", 0, "Ideal geo flag, 0 is non, 1 is 1st order, 2 is 2nd order"}
private

Definition at line 90 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_MaxWC

Gaudi::Property<int> FPGATrackSimMatrixGenAlgo::m_MaxWC {this, "WCmax", 0, "Max number of WCs"}
private

Definition at line 94 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_minSpacePlusPixel

Gaudi::Property<int> FPGATrackSimMatrixGenAlgo::m_minSpacePlusPixel {this, "minSpacePlusPixel", 4, "Require that tracks in training have a certain number of pixel hits + spacepoints" }
private

Definition at line 95 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_nBins

FPGATrackSimTrackParsI FPGATrackSimMatrixGenAlgo::m_nBins
private

Definition at line 123 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_nDim

int FPGATrackSimMatrixGenAlgo::m_nDim = 0
private

Definition at line 118 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_nDim2

int FPGATrackSimMatrixGenAlgo::m_nDim2 = 0
private

Definition at line 119 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_nLayers

int FPGATrackSimMatrixGenAlgo::m_nLayers = 0
private

Definition at line 117 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_nRegions

Gaudi::Property<int> FPGATrackSimMatrixGenAlgo::m_nRegions {this, "NBanks", 0, "Number of banks to make"}
private

Definition at line 87 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_nTracks

size_t FPGATrackSimMatrixGenAlgo::m_nTracks = 0
private

Definition at line 130 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_nTracksUsed

size_t FPGATrackSimMatrixGenAlgo::m_nTracksUsed = 0
private

Definition at line 131 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_pmap

const FPGATrackSimPlaneMap* FPGATrackSimMatrixGenAlgo::m_pmap = nullptr
private

Definition at line 82 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_PT_THRESHOLD

Gaudi::Property<float> FPGATrackSimMatrixGenAlgo::m_PT_THRESHOLD {this, "PT_THRESHOLD", 0., "Min pt"}
private

Definition at line 96 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_qOverPtBins

Gaudi::Property<std::vector<double> > FPGATrackSimMatrixGenAlgo::m_qOverPtBins {this, "sectorQPtBins", {}, "q/pt bins for sector definition"}
private

Definition at line 115 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_roadFinderTool

ToolHandle<IFPGATrackSimRoadFinderTool> FPGATrackSimMatrixGenAlgo::m_roadFinderTool {this, "RoadFinder", "RoadFinder"}
private

Definition at line 81 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_sector_cum

std::vector<AccumulateMap> FPGATrackSimMatrixGenAlgo::m_sector_cum
private

Definition at line 68 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_single

Gaudi::Property<bool> FPGATrackSimMatrixGenAlgo::m_single {this, "SingleSector", false, "Run single sector"}
private

Definition at line 91 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_sliceMax

FPGATrackSimTrackPars FPGATrackSimMatrixGenAlgo::m_sliceMax = 0
private

Definition at line 122 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_sliceMin

FPGATrackSimTrackPars FPGATrackSimMatrixGenAlgo::m_sliceMin = 0
private

Definition at line 121 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_spacePointsTool

ToolHandle<FPGATrackSimSpacePointsToolI> FPGATrackSimMatrixGenAlgo::m_spacePointsTool { this, "SpacePointTool", "FPGATrackSimSpacePointsTool/FPGATrackSimSpacePointsTool", "FPGATrackSimSpacePointsTool" }
private

Definition at line 80 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_temp_c_max

Gaudi::Property<float> FPGATrackSimMatrixGenAlgo::m_temp_c_max {this, "par_c_max", 1, "Max curvature"}
private

Definition at line 100 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_temp_c_min

Gaudi::Property<float> FPGATrackSimMatrixGenAlgo::m_temp_c_min {this, "par_c_min", -1, "Min curvature"}
private

Definition at line 99 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_temp_c_slices

Gaudi::Property<int> FPGATrackSimMatrixGenAlgo::m_temp_c_slices {this, "par_c_slices", 100, "Number of c slides"}
private

Definition at line 109 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_temp_d0_max

Gaudi::Property<float> FPGATrackSimMatrixGenAlgo::m_temp_d0_max {this, "par_d0_max", 2, "Max d0"}
private

Definition at line 104 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_temp_d0_min

Gaudi::Property<float> FPGATrackSimMatrixGenAlgo::m_temp_d0_min {this, "par_d0_min", -2, "Min d0"}
private

Definition at line 103 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_temp_d0_slices

Gaudi::Property<int> FPGATrackSimMatrixGenAlgo::m_temp_d0_slices {this, "par_d0_slices", 100, "Number of d0 slices"}
private

Definition at line 111 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_temp_eta_max

Gaudi::Property<float> FPGATrackSimMatrixGenAlgo::m_temp_eta_max {this, "par_eta_max", 5, "Max eta"}
private

Definition at line 108 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_temp_eta_min

Gaudi::Property<float> FPGATrackSimMatrixGenAlgo::m_temp_eta_min {this, "par_eta_min", -5, "Min eta"}
private

Definition at line 107 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_temp_eta_slices

Gaudi::Property<int> FPGATrackSimMatrixGenAlgo::m_temp_eta_slices {this, "par_eta_slices", 100, "Number of eta slices"}
private

Definition at line 113 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_temp_phi_max

Gaudi::Property<float> FPGATrackSimMatrixGenAlgo::m_temp_phi_max {this, "par_phi_max", TMath::Pi(), "Max phi"}
private

Definition at line 102 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_temp_phi_min

Gaudi::Property<float> FPGATrackSimMatrixGenAlgo::m_temp_phi_min {this, "par_phi_min", -TMath::Pi(), "Min phi"}
private

Definition at line 101 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_temp_phi_slices

Gaudi::Property<int> FPGATrackSimMatrixGenAlgo::m_temp_phi_slices {this, "par_phi_slices", 100, "Number of phi slices"}
private

Definition at line 110 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_temp_z0_max

Gaudi::Property<float> FPGATrackSimMatrixGenAlgo::m_temp_z0_max {this, "par_z0_max", 200, "Max z0"}
private

Definition at line 106 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_temp_z0_min

Gaudi::Property<float> FPGATrackSimMatrixGenAlgo::m_temp_z0_min {this, "par_z0_min", -200, "Min z0"}
private

Definition at line 105 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_temp_z0_slices

Gaudi::Property<int> FPGATrackSimMatrixGenAlgo::m_temp_z0_slices {this, "par_z0_slices", 100, "Number of z0 slices"}
private

Definition at line 112 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_tHistSvc

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

Definition at line 75 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_TRAIN_PDG

Gaudi::Property<int> FPGATrackSimMatrixGenAlgo::m_TRAIN_PDG {this, "TRAIN_PDG", 0, "PDG of particles to train on"}
private

Definition at line 98 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
FPGATrackSimMatrixGenAlgo::filterSectorHits
bool filterSectorHits(std::vector< FPGATrackSimHit > const &all_hits, std::vector< FPGATrackSimHit > &sector_hits, FPGATrackSimTruthTrack const &t) const
Definition: FPGATrackSimMatrixGenAlgo.cxx:509
FPGATrackSimMatrixGenAlgo::selectHit
selectHit_returnCode selectHit(FPGATrackSimHit const &old_hit, FPGATrackSimHit const &new_hit) const
Definition: FPGATrackSimMatrixGenAlgo.cxx:408
FPGATrackSimMatrixGenAlgo::m_hitMapTool
ToolHandle< FPGATrackSimRawToLogicalHitsTool > m_hitMapTool
Definition: FPGATrackSimMatrixGenAlgo.h:78
FPGATrackSimMatrixGenAlgo::getLogicalHits
std::vector< FPGATrackSimHit > getLogicalHits()
Definition: FPGATrackSimMatrixGenAlgo.cxx:302
FPGATrackSimMatrixGenAlgo::m_qOverPtBins
Gaudi::Property< std::vector< double > > m_qOverPtBins
Definition: FPGATrackSimMatrixGenAlgo.h:115
FPGATrackSimMatrixGenAlgo::m_temp_z0_max
Gaudi::Property< float > m_temp_z0_max
Definition: FPGATrackSimMatrixGenAlgo.h:106
FPGATrackSimMatrixGenAlgo::m_temp_d0_max
Gaudi::Property< float > m_temp_d0_max
Definition: FPGATrackSimMatrixGenAlgo.h:104
FPGATrackSimMatrixGenAlgo::makeAccumulator
StatusCode makeAccumulator(std::vector< FPGATrackSimHit > const &sector_hits, FPGATrackSimTruthTrack const &track, std::pair< std::vector< module_t >, FPGATrackSimMatrixAccumulator > &accumulator) const
Definition: FPGATrackSimMatrixGenAlgo.cxx:623
FPGATrackSimMatrixGenAlgo::m_temp_phi_max
Gaudi::Property< float > m_temp_phi_max
Definition: FPGATrackSimMatrixGenAlgo.h:102
FPGATrackSimTrackPars::phi
double phi
Definition: FPGATrackSimTrackPars.h:24
FPGATrackSimMatrixGenAlgo::m_temp_d0_min
Gaudi::Property< float > m_temp_d0_min
Definition: FPGATrackSimMatrixGenAlgo.h:103
FPGATrackSimLogicalEventInputHeader
Definition: FPGATrackSimLogicalEventInputHeader.h:21
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
python.FPGATrackSimAnalysisConfig.stage
stage
Definition: FPGATrackSimAnalysisConfig.py:604
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
FPGATrackSimTrackParsI::eta
int eta
Definition: FPGATrackSimTrackPars.h:62
python.App.bins
bins
Definition: App.py:410
FPGATrackSimMatrixGenAlgo::m_minSpacePlusPixel
Gaudi::Property< int > m_minSpacePlusPixel
Definition: FPGATrackSimMatrixGenAlgo.h:95
FPGATrackSimMatrixGenAlgo::getRegion
int getRegion(std::vector< FPGATrackSimHit > const &hits) const
Definition: FPGATrackSimMatrixGenAlgo.cxx:592
TH1I
Definition: rootspy.cxx:332
FPGATrackSimMatrixGenAlgo::m_nTracksUsed
size_t m_nTracksUsed
Definition: FPGATrackSimMatrixGenAlgo.h:131
FPGATrackSimMatrixGenAlgo::makeBarcodeMap
std::map< int, std::vector< FPGATrackSimHit > > makeBarcodeMap(std::vector< FPGATrackSimHit > const &hits, std::vector< FPGATrackSimTruthTrack > const &tracks) const
Definition: FPGATrackSimMatrixGenAlgo.cxx:374
FPGATrackSimTrackPars::qOverPt
double qOverPt
Definition: FPGATrackSimTrackPars.h:25
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
FPGATrackSimMatrixGenAlgo::m_FPGATrackSimMapping
ServiceHandle< IFPGATrackSimMappingSvc > m_FPGATrackSimMapping
Definition: FPGATrackSimMatrixGenAlgo.h:73
FPGATrackSimMatrixGenAlgo::m_temp_z0_slices
Gaudi::Property< int > m_temp_z0_slices
Definition: FPGATrackSimMatrixGenAlgo.h:112
fpgatracksim::SPACEPOINT_SECTOR_OFFSET
constexpr int SPACEPOINT_SECTOR_OFFSET
Definition: FPGATrackSimConstants.h:22
FPGATrackSimTruthTrack
Definition: FPGATrackSimTruthTrack.h:13
accumulate
bool accumulate(AccumulateMap &map, std::vector< module_t > const &modules, FPGATrackSimMatrixAccumulator const &acc)
Accumulates an accumulator (e.g.
Definition: FPGATrackSimMatrixAccumulator.cxx:22
conifer::pow
constexpr int pow(int x)
Definition: conifer.h:20
tree
TChain * tree
Definition: tile_monitor.h:30
FPGATrackSimTrackPars::d0
double d0
Definition: FPGATrackSimTrackPars.h:26
skel.it
it
Definition: skel.GENtoEVGEN.py:423
BindingsTest.hr
hr
Definition: BindingsTest.py:23
test_pyathena.pt
pt
Definition: test_pyathena.py:11
FPGATrackSimMatrixGenAlgo::filterTrainingTracks
std::vector< FPGATrackSimTruthTrack > filterTrainingTracks(std::vector< FPGATrackSimTruthTrack > const &truth_tracks) const
Definition: FPGATrackSimMatrixGenAlgo.cxx:341
M_PI
#define M_PI
Definition: ActiveFraction.h:11
bin
Definition: BinsDiffFromStripMedian.h:43
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
AthCommonMsg< Algorithm >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
FPGATrackSimMatrixGenAlgo::m_nDim
int m_nDim
Definition: FPGATrackSimMatrixGenAlgo.h:118
FPGATrackSimTrackParsI::d0
int d0
Definition: FPGATrackSimTrackPars.h:60
FPGATrackSimMatrixGenAlgo::writeSliceTree
void writeSliceTree()
Definition: FPGATrackSimMatrixGenAlgo.cxx:864
HitType::spacepoint
@ spacepoint
FPGATrackSimMatrixGenAlgo::m_ideal_geom
Gaudi::Property< int > m_ideal_geom
Definition: FPGATrackSimMatrixGenAlgo.h:90
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
FPGATrackSimMatrixGenAlgo::m_temp_phi_min
Gaudi::Property< float > m_temp_phi_min
Definition: FPGATrackSimMatrixGenAlgo.h:101
FPGATrackSimTrackPars::eta
double eta
Definition: FPGATrackSimTrackPars.h:28
FPGATrackSimMatrixGenAlgo::m_D0_THRESHOLD
Gaudi::Property< float > m_D0_THRESHOLD
Definition: FPGATrackSimMatrixGenAlgo.h:97
FPGATrackSimMatrixGenAlgo::m_temp_z0_min
Gaudi::Property< float > m_temp_z0_min
Definition: FPGATrackSimMatrixGenAlgo.h:105
x
#define x
python.DomainsRegistry.reg
reg
globals -----------------------------------------------------------------—
Definition: DomainsRegistry.py:343
FPGATrackSimMatrixGenAlgo::m_temp_eta_slices
Gaudi::Property< int > m_temp_eta_slices
Definition: FPGATrackSimMatrixGenAlgo.h:113
FPGATrackSimMatrixGenAlgo::m_temp_eta_min
Gaudi::Property< float > m_temp_eta_min
Definition: FPGATrackSimMatrixGenAlgo.h:107
FPGATrackSimMatrixGenAlgo::selectHit_returnCode::SH_FAILURE
@ SH_FAILURE
FPGATrackSimMatrixGenAlgo::m_EvtSel
ServiceHandle< IFPGATrackSimEventSelectionSvc > m_EvtSel
Definition: FPGATrackSimMatrixGenAlgo.h:74
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
FPGATrackSimOptionalEventInfo::getTruthTracks
const std::vector< FPGATrackSimTruthTrack > & getTruthTracks() const
Definition: FPGATrackSimOptionalEventInfo.h:37
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
FPGATrackSimHit
Definition: FPGATrackSimHit.h:38
FPGATrackSimPlaneMap::getDim
uint32_t getDim(size_t logiLayer) const
Definition: FPGATrackSimPlaneMap.h:81
HitType::wildcard
@ wildcard
FPGATrackSimMatrixGenAlgo::m_doHoughConstants
Gaudi::Property< bool > m_doHoughConstants
Definition: FPGATrackSimMatrixGenAlgo.h:92
fillTree
void fillTree(AccumulateMap &map, TTree *tree, int nLayers, int nCoords)
Writes the contents of an AccumulateMap into the supplied tree (one entry per sector).
Definition: FPGATrackSimMatrixIO.cxx:225
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
FPGATrackSimMatrixGenAlgo::m_sliceMax
FPGATrackSimTrackPars m_sliceMax
Definition: FPGATrackSimMatrixGenAlgo.h:122
AthCommonDataStore
Definition: AthCommonDataStore.h:52
AthAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthAlgorithm.cxx:66
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
FPGATrackSimMatrixGenAlgo::m_temp_c_min
Gaudi::Property< float > m_temp_c_min
Definition: FPGATrackSimMatrixGenAlgo.h:99
FPGATrackSimMatrixGenAlgo::m_nRegions
Gaudi::Property< int > m_nRegions
Definition: FPGATrackSimMatrixGenAlgo.h:87
FPGATrackSimMatrixGenAlgo::selectHit_returnCode::SH_KEEP_OLD
@ SH_KEEP_OLD
FPGATrackSimMatrixGenAlgo::m_single
Gaudi::Property< bool > m_single
Definition: FPGATrackSimMatrixGenAlgo.h:91
lumiFormat.i
int i
Definition: lumiFormat.py:92
FPGATrackSimEventInputHeader::clearHits
void clearHits()
Definition: FPGATrackSimEventInputHeader.h:39
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
HepMC::barcode
int barcode(const T *p)
Definition: Barcode.h:16
LArG4ShowerLibProcessing.hits
hits
Definition: LArG4ShowerLibProcessing.py:136
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
FPGATrackSimMatrixAccumulator
Definition: FPGATrackSimMatrixAccumulator.h:36
FPGATrackSimMatrixGenAlgo::m_spacePointsTool
ToolHandle< FPGATrackSimSpacePointsToolI > m_spacePointsTool
Definition: FPGATrackSimMatrixGenAlgo.h:80
FPGATrackSimMatrixGenAlgo::m_h_sectorPars
TH1I * m_h_sectorPars[FPGATrackSimTrackPars::NPARS]
Definition: FPGATrackSimMatrixGenAlgo.h:155
covarianceTool.title
title
Definition: covarianceTool.py:542
FPGATrackSimMatrixGenAlgo::m_hitInputTool
ToolHandle< IFPGATrackSimInputTool > m_hitInputTool
Definition: FPGATrackSimMatrixGenAlgo.h:77
FPGATrackSimMatrixGenAlgo::m_temp_d0_slices
Gaudi::Property< int > m_temp_d0_slices
Definition: FPGATrackSimMatrixGenAlgo.h:111
FPGATrackSimMatrixGenAlgo::m_h_trackQoP_okHits
TH1I * m_h_trackQoP_okHits
Definition: FPGATrackSimMatrixGenAlgo.h:160
FPGATrackSimMatrixGenAlgo::m_doDeltaPhiConsts
Gaudi::Property< bool > m_doDeltaPhiConsts
Definition: FPGATrackSimMatrixGenAlgo.h:93
FPGATrackSimMatrixGenAlgo::m_PT_THRESHOLD
Gaudi::Property< float > m_PT_THRESHOLD
Definition: FPGATrackSimMatrixGenAlgo.h:96
AthenaPoolTestRead.acc
acc
Definition: AthenaPoolTestRead.py:16
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
FPGATrackSimEventInputHeader
Definition: FPGATrackSimEventInputHeader.h:22
FPGATrackSimMatrixGenAlgo::m_temp_phi_slices
Gaudi::Property< int > m_temp_phi_slices
Definition: FPGATrackSimMatrixGenAlgo.h:110
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
FPGATrackSimMatrixGenAlgo::m_doSpacePoints
Gaudi::Property< bool > m_doSpacePoints
Definition: FPGATrackSimMatrixGenAlgo.h:89
FPGATrackSimMatrixGenAlgo::m_absQOverPtBinning
Gaudi::Property< bool > m_absQOverPtBinning
Definition: FPGATrackSimMatrixGenAlgo.h:114
FPGATrackSimMatrixGenAlgo::m_doClustering
Gaudi::Property< bool > m_doClustering
Definition: FPGATrackSimMatrixGenAlgo.h:88
FPGATrackSimMatrixGenAlgo::m_clusteringTool
ToolHandle< FPGATrackSimClusteringToolI > m_clusteringTool
Definition: FPGATrackSimMatrixGenAlgo.h:79
FPGATrackSimMatrixGenAlgo::m_eventHeader
FPGATrackSimEventInputHeader * m_eventHeader
Definition: FPGATrackSimMatrixGenAlgo.h:125
FPGATrackSimMatrixGenAlgo::bookHistograms
StatusCode bookHistograms()
Definition: FPGATrackSimMatrixGenAlgo.cxx:122
FPGATrackSimMatrixGenAlgo::m_h_notEnoughHits
TH1I * m_h_notEnoughHits[FPGATrackSimTrackPars::NPARS]
Definition: FPGATrackSimMatrixGenAlgo.h:158
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
FPGATrackSimMatrixGenAlgo::m_nTracks
size_t m_nTracks
Definition: FPGATrackSimMatrixGenAlgo.h:130
fpgatracksim::QPT_SECTOR_OFFSET
constexpr int QPT_SECTOR_OFFSET
Definition: FPGATrackSimConstants.h:23
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition: GeometryDefs.h:34
plotBeamSpotVxVal.bin
int bin
Definition: plotBeamSpotVxVal.py:83
FPGATrackSimMatrixGenAlgo::selectHit_returnCode::SH_KEEP_NEW
@ SH_KEEP_NEW
FPGATrackSimMatrixGenAlgo::m_h_3hitsInLayer
TH1I * m_h_3hitsInLayer[FPGATrackSimTrackPars::NPARS]
Definition: FPGATrackSimMatrixGenAlgo.h:157
FPGATrackSimMatrixGenAlgo::m_sector_cum
std::vector< AccumulateMap > m_sector_cum
Definition: FPGATrackSimMatrixGenAlgo.h:68
FPGATrackSimMatrixGenAlgo::m_h_SHfailure
TH1I * m_h_SHfailure[FPGATrackSimTrackPars::NPARS]
Definition: FPGATrackSimMatrixGenAlgo.h:156
FPGATrackSimTrackPars::parName
static std::string parName(unsigned i)
Definition: FPGATrackSimTrackPars.cxx:72
FPGATrackSimEventInputHeader::optional
FPGATrackSimOptionalEventInfo const & optional() const
Definition: FPGATrackSimEventInputHeader.h:33
FPGATrackSimMatrixGenAlgo::m_nLayers
int m_nLayers
Definition: FPGATrackSimMatrixGenAlgo.h:117
FPGATrackSimTrackParsI::phi
int phi
Definition: FPGATrackSimTrackPars.h:58
FPGATrackSimMatrixGenAlgo::m_temp_c_max
Gaudi::Property< float > m_temp_c_max
Definition: FPGATrackSimMatrixGenAlgo.h:100
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
fillTrackPars
void fillTrackPars(TH1I *const hists[FPGATrackSimTrackPars::NPARS], FPGATrackSimTruthTrack const &track)
Definition: FPGATrackSimMatrixGenAlgo.cxx:185
a
TList * a
Definition: liststreamerinfos.cxx:10
y
#define y
h
FPGATrackSimMatrixGenAlgo::m_nDim2
int m_nDim2
Definition: FPGATrackSimMatrixGenAlgo.h:119
RunTileMonitoring.towers
towers
Definition: RunTileMonitoring.py:133
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
FPGATrackSimMatrixGenAlgo::m_h_trackQoP_okRegion
TH1I * m_h_trackQoP_okRegion
Definition: FPGATrackSimMatrixGenAlgo.h:161
FPGATrackSimTrackPars::z0
double z0
Definition: FPGATrackSimTrackPars.h:27
FPGATrackSimMatrixGenAlgo::m_sliceMin
FPGATrackSimTrackPars m_sliceMin
Definition: FPGATrackSimMatrixGenAlgo.h:121
FPGATrackSimMatrixGenAlgo::m_h_trainingTrack
TH1I * m_h_trainingTrack[FPGATrackSimTrackPars::NPARS]
Definition: FPGATrackSimMatrixGenAlgo.h:154
DEBUG
#define DEBUG
Definition: page_access.h:11
FPGATrackSimTrackPars::NPARS
@ NPARS
Definition: FPGATrackSimTrackPars.h:49
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
IDTPM::getR
float getR(const xAOD::TrackParticle &)
Accessor utility function for getting the value of prodR.
Definition: TrackParametersHelper.h:95
FPGATrackSimMatrixGenAlgo::m_MaxWC
Gaudi::Property< int > m_MaxWC
Definition: FPGATrackSimMatrixGenAlgo.h:94
FPGATrackSimMatrixGenAlgo::m_TRAIN_PDG
Gaudi::Property< int > m_TRAIN_PDG
Definition: FPGATrackSimMatrixGenAlgo.h:98
FPGATrackSimTrackParsI::z0
int z0
Definition: FPGATrackSimTrackPars.h:61
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
FPGATrackSimMatrixGenAlgo::m_nBins
FPGATrackSimTrackParsI m_nBins
Definition: FPGATrackSimMatrixGenAlgo.h:123
FPGATrackSimMatrixGenAlgo::m_h_nHit
TH1I * m_h_nHit
Definition: FPGATrackSimMatrixGenAlgo.h:162
FPGATrackSimLogicalEventInputHeader::towers
const std::vector< FPGATrackSimTowerInputHeader > & towers() const
Definition: FPGATrackSimLogicalEventInputHeader.h:36
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
FPGATrackSimTrackParsI::qOverPt
int qOverPt
Definition: FPGATrackSimTrackPars.h:59
FPGATrackSimTrackParsI
Definition: FPGATrackSimTrackPars.h:56
HepMC::generations
int generations(const T &p)
Method to return how many interactions a particle has undergone during simulation (TODO migrate to be...
Definition: MagicNumbers.h:302
FPGATrackSimMatrixGenAlgo::m_tHistSvc
ServiceHandle< ITHistSvc > m_tHistSvc
Definition: FPGATrackSimMatrixGenAlgo.h:75
FPGATrackSimMatrixGenAlgo::m_temp_eta_max
Gaudi::Property< float > m_temp_eta_max
Definition: FPGATrackSimMatrixGenAlgo.h:108
FPGATrackSimEventInputHeader::reset
void reset()
Definition: FPGATrackSimEventInputHeader.cxx:15
FPGATrackSimMatrixGenAlgo::m_pmap
const FPGATrackSimPlaneMap * m_pmap
Definition: FPGATrackSimMatrixGenAlgo.h:82
FPGATrackSimMatrixGenAlgo::m_roadFinderTool
ToolHandle< IFPGATrackSimRoadFinderTool > m_roadFinderTool
Definition: FPGATrackSimMatrixGenAlgo.h:81
python.compressB64.c
def c
Definition: compressB64.py:93
FPGATrackSimMatrixGenAlgo::selectHit_returnCode
selectHit_returnCode
Definition: FPGATrackSimMatrixGenAlgo.h:136
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
FPGATrackSimMatrixGenAlgo::m_temp_c_slices
Gaudi::Property< int > m_temp_c_slices
Definition: FPGATrackSimMatrixGenAlgo.h:109
FPGATrackSimHit::setHitType
void setHitType(HitType type)
Definition: FPGATrackSimHit.h:51
ServiceHandle< ICondSvc >
LArGeo::ATan2
GeoGenfun::FunctionNoop ATan2(GeoGenfun::GENFUNCTION y, GeoGenfun::GENFUNCTION x)
Definition: BarrelAuxFunctions.cxx:50