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, int subregion) const
 
bool filterSectorHits (std::vector< FPGATrackSimHit > const &all_hits, std::vector< FPGATrackSimHit > &sector_hits, FPGATrackSimTruthTrack const &t, int subregion) 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< FPGATrackSimRoadUnionToolm_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
 
TH1I * m_h_trainingTrack [FPGATrackSimTrackPars::NPARS] {}
 
TH1I * m_h_sectorPars [FPGATrackSimTrackPars::NPARS] {}
 
TH1I * m_h_SHfailure [FPGATrackSimTrackPars::NPARS] {}
 
TH1I * m_h_3hitsInLayer [FPGATrackSimTrackPars::NPARS] {}
 
TH1I * m_h_notEnoughHits [FPGATrackSimTrackPars::NPARS] {}
 
TH1I * m_h_trackQoP_okHits = nullptr
 
TH1I * m_h_trackQoP_okRegion = nullptr
 
TH1I * m_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 51 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 135 of file FPGATrackSimMatrixGenAlgo.h.

135 { SH_FAILURE, SH_KEEP_OLD, SH_KEEP_NEW };

Constructor & Destructor Documentation

◆ FPGATrackSimMatrixGenAlgo()

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

Definition at line 36 of file FPGATrackSimMatrixGenAlgo.cxx.

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

◆ ~FPGATrackSimMatrixGenAlgo()

virtual FPGATrackSimMatrixGenAlgo::~FPGATrackSimMatrixGenAlgo ( )
virtualdefault

Member Function Documentation

◆ bookHistograms()

StatusCode FPGATrackSimMatrixGenAlgo::bookHistograms ( )
private

Definition at line 123 of file FPGATrackSimMatrixGenAlgo.cxx.

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

◆ 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 198 of file FPGATrackSimMatrixGenAlgo.cxx.

199 {
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  int nSlices = m_FPGATrackSimMapping->SubRegionMap()->getNRegions();
225  // Get list of hits associated to the current truth track
226  std::vector<FPGATrackSimHit> & track_hits = barcode_hits[track.getBarcode()];
227 
228  const FPGATrackSimPlaneMap *t_pmap = nullptr;
229 
230  // Get the hits that will form the actual sector
231 
232  for (int iSlice = 0; iSlice<nSlices; iSlice++){
233  t_pmap = m_FPGATrackSimMapping->PlaneMap_1st(iSlice);
234  for (auto & iHit : track_hits) {
235  t_pmap->map(iHit);
236  }
237  std::vector<FPGATrackSimHit> sector_hits;
238  bool success = filterSectorHits(track_hits, sector_hits, track, iSlice);
239  if (!success) continue; // Skip this track if it has bad hits (not complete, etc.)
240  m_h_trackQoP_okHits->Fill(track.getQOverPt());
241 
242  // Get the region of this sector
243  int region = getRegion(sector_hits);
244  if (region < 0 || region >= m_nRegions) continue;
245  m_h_trackQoP_okRegion->Fill(track.getQOverPt());
246 
247  //For the Hough constants, find the Hough roads
248  std::vector<std::shared_ptr<const FPGATrackSimRoad>> houghRoads;
249  if (m_doHoughConstants) {
250  std::vector<std::shared_ptr<const FPGATrackSimHit>> phits;
251 
252  for (const FPGATrackSimHit& hit : sector_hits) phits.emplace_back(std::make_shared<const FPGATrackSimHit>(hit));
253 
254  StatusCode sc = m_roadFinderTool->getRoads(phits, houghRoads);
255  if (sc.isFailure()) ATH_MSG_WARNING("Hough Transform -> getRoads() failed");
256 
257  if (!houghRoads.empty()){
258  double y = 0.0;
259  double x = 0.0;
260 
261  //For each Hough road, make the accumulator
262  for (auto const &hr : houghRoads){
263  y = hr->getY();
264  x = hr->getX();
265 
266  // Prepare the accumulator struct
267  std::vector<module_t> modules(m_nLayers);
269  acc.pars.qOverPt = y;
270  acc.pars.phi = x;
271  std::pair<std::vector<module_t>, FPGATrackSimMatrixAccumulator> modules_acc = {modules, acc};
272  ATH_CHECK(makeAccumulator(sector_hits, track, modules_acc));
273 
274  // Add the track to the accumulate map
275  accumulate(m_sector_cum[region], modules_acc.first, modules_acc.second);
276  m_nTracksUsed++;
277  }
278  } else {
279  ATH_MSG_DEBUG("execute(): no hough roads?");
280  return StatusCode::SUCCESS;
281  }
282  } else {
283  // Prepare the accumulator struct
284  std::vector<module_t> modules(m_nLayers);
286  std::pair<std::vector<module_t>, FPGATrackSimMatrixAccumulator> modules_acc = {modules, acc};
287  ATH_CHECK(makeAccumulator(sector_hits, track, modules_acc));
288 
289  // Add the track to the accumulate map
290  accumulate(m_sector_cum[region], modules_acc.first, modules_acc.second);
291  m_nTracksUsed++;
292  }
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,
int  subregion 
) const
private

Definition at line 512 of file FPGATrackSimMatrixGenAlgo.cxx.

514 {
515  FPGATrackSimHit nohit;
517  sector_hits.resize(m_nLayers, nohit);
518  std::vector<int> layer_count(m_nLayers); // count number of hits seen in each layer
519 
520  const FPGATrackSimRegionMap* rmap_1st = m_FPGATrackSimMapping->SubRegionMap();
521 
522  for (FPGATrackSimHit const & hit : all_hits) {
523  if (!hit.isMapped()){
524  continue;
525  }
526  // Sanity check. make sure the hit is actually in the first stage?
527  // If the hit falls within the boundaries of ANY subregion in the first stage, it's 1st stage.
528  if (rmap_1st->getRegions(hit).size() == 0) {
529  continue;
530  }
531  int layer = hit.getLayer();
532 
533  if (layer_count[layer] == 0){
534  layer_count[layer]++;
535  sector_hits[layer] = hit;
536  }
537  else if (layer_count[layer] == 1) {
538  layer_count[layer]++;
539 
540  // Already found a hit in this layer, so pick which hit to use.
541  // This needs to be subregion aware, unfortunately, so we use the right subrmap to do the checks.
542  selectHit_returnCode selected_hit = selectHit(sector_hits[layer], hit, subregion);
543 
544  if (selected_hit == selectHit_returnCode::SH_FAILURE) {
546  return false;
547  }
548  else if (selected_hit == selectHit_returnCode::SH_KEEP_NEW) sector_hits[layer] = hit;
549  }
550  else {
551  ATH_MSG_DEBUG("Too many hits on a plane, exiting filterHitsSec");
553  return false;
554  }
555  }
556 
557  // Count number of wildcards, spacepoints, and pixel hits.
558  int nwc = 0;
559  int num_sp = 0;
560  int num_pixel = 0;
561 
562  // Check we have the right number of hits
563  // Check we have the right number of hits.
564  for (int i = 0; i < m_nLayers; ++i)
565  {
566  if (layer_count[i] == 0)
567  {
568  ATH_MSG_DEBUG("Layer " << i << " has no hits");
569  nwc++;
570  }
571 
572  // Now that we've decided which hit to use-- check their type.
573  if (sector_hits[i].getHitType() == HitType::spacepoint) {
574  num_sp += 1;
575  }
576  if (sector_hits[i].isPixel()) {
577  num_pixel += 1;
578  }
579  }
580 
581  ATH_MSG_DEBUG("Found " << nwc << " wildcards compared to maximum: " << m_MaxWC);
582  // Divide by 2 due to spacepoint duplication.
583  num_sp /= 2;
584  ATH_MSG_DEBUG("Found " << num_sp << " spacepoints after removing duplicates.");
585  // Require we don't have too many wildcards.
586  if (nwc > m_MaxWC)
587  {
589  return false;
590  }
591  // Require that we have a certain number of "2D" hits (i.e. pixels and spacepoints)
592  // The effect of this is that we can ensure we have 4/5 2D hits but 7/9 hits total.
593  // NOTE Again, uncomment logic below for second stage running.
594  num_sp += num_pixel;
595  int minSpacePlusPixel = /*m_isSecondStage ? m_minSpacePlusPixel2 :*/ m_minSpacePlusPixel;
596  if (num_sp < minSpacePlusPixel) {
597  ATH_MSG_DEBUG("Not enough pixel hits + spacepoints (" << num_sp << " < " << minSpacePlusPixel << ")");
599  return false;
600  }
601  return true;
602 }

◆ 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 795 of file FPGATrackSimMatrixGenAlgo.cxx.

796 {
797  ATH_MSG_DEBUG("finalize()");
798  ATH_MSG_INFO("Tracks used: " << m_nTracksUsed << "/" << m_nTracks);
799 
800  for (int region = 0; region < m_nRegions; region++) {
801  // Create the tree
802  std::stringstream name;
803  std::stringstream title;
804  name << "am" << region;
805  title << "Ambank " << region << " parameters";
806  TTree* tree = new TTree(name.str().c_str(), title.str().c_str());
807  ATH_CHECK(m_tHistSvc->regTree(Form("/TRIGFPGATrackSimMATRIXOUT/%s",tree->GetName()), tree));
808 
809  // Fill the tree
811  // Monitoring
812  ATH_MSG_INFO("Sectors found in region " << region << ": " << m_sector_cum[region].size());
813  for (auto & sector_info : m_sector_cum[region]) {
814  double coverage = sector_info.second.track_bins.size();
815  m_h_nHit->Fill(coverage);
816  for (unsigned i = 0; i < FPGATrackSimTrackPars::NPARS; i++)
817  m_h_sectorPars[i]->Fill(sector_info.second.pars[i] / coverage);
818  }
819  }
820 
821  writeSliceTree();
822  ATH_CHECK(m_tHistSvc->finalize());
823  return StatusCode::SUCCESS;
824 }

◆ 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 606 of file FPGATrackSimMatrixGenAlgo.cxx.

607 {
608  // Start with a bitmask, all true, and set a region to false if any mismatch is found
609  std::vector<bool> region_mask(m_nRegions, true);
610 
611  for (FPGATrackSimHit const & hit : hits) {
612  if (hit.getHitType() != HitType::wildcard){ // don't worry about hits that are WCs
613  for (int region = 0; region < m_nRegions; region++) {
614  if (m_doHoughConstants) {
615  if (!m_FPGATrackSimMapping->RegionMap_1st()->isInRegion(region, hit))
616  region_mask[region] = false;
617  }
618  else {
619  if (!m_FPGATrackSimMapping->RegionMap_2nd()->isInRegion(region, hit))
620  region_mask[region] = false;
621  }
622  }
623  }
624  }
625 
626  // For now just give preference to lowest region index for simplicity
627  for (int region = 0; region < m_nRegions; region++)
628  if (region_mask[region])
629  return region;
630 
631  return -1;
632 }

◆ initialize()

StatusCode FPGATrackSimMatrixGenAlgo::initialize ( )
override

Definition at line 47 of file FPGATrackSimMatrixGenAlgo.cxx.

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

◆ 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 637 of file FPGATrackSimMatrixGenAlgo.cxx.

638 {
639  std::vector<module_t> modules(m_nLayers);
641 
642  //find the bin!
643  // NOTE: this only implements q/pt binning, not the subregion / eta pattern-based constants for now.
644  int sectorbin = 0;
645  double qoverpt = track.getQ() / track.getPt();
646  if (m_absQOverPtBinning) qoverpt = abs(qoverpt);
647  for (unsigned bin = 0; bin < m_qOverPtBins.size()-1; bin++) {
648  sectorbin = fpgatracksim::QPT_SECTOR_OFFSET * bin;
649  if (qoverpt < m_qOverPtBins[bin+1]) break;
650  }
651 
652  // Create sector definitions (list of modules)
653  std::string module_printout = "";
654  for (int i = 0; i < m_nLayers; i++)
655  {
656  if (sector_hits[i].getHitType() != HitType::wildcard) {
657  if (m_single) modules[i] = sector_hits[i].getIdentifierHash();
658  else {
659  modules[i] = sectorbin;
660  // Modify sectorbin by a "type" field, which for now means: 0 = not spacepoint, 1 = spacepoint.
661  // This will fail if we have more than 99 q/pt bins!
662  if (sector_hits[i].getHitType() == HitType::spacepoint) {
664  }
665  module_printout += std::to_string(modules[i]) + ", ";
666  }
667  }
668  else {
669  modules[i] = -1; // WC
670  }
671  }
672 
673  ATH_MSG_DEBUG("Generating track in sectorbin = " << sectorbin << " with modules: " << module_printout);
674 
675 
676  if (m_single) {
677  const int ToKeep[13] = {2200,2564,2861,3831,5368,14169,14173,20442,20446,29625,29629,42176,42180};
678  bool keepThis = true;
679  for (int i = 0; i < 13; i++) {
680  if (modules[i] != ToKeep[i] && modules[i] != -1) {
681  keepThis = false;
682  }
683  }
684 
685  if (!keepThis) {
686  for (int i = 0; i < 13; i++) modules[i] = -1;
687  }
688  else {
689  for (int i = 0; i < 13; i++) {
690  }
691  }
692  }
693 
694 
695  // Hough Constants parameters
696  double y = accumulator.second.pars.qOverPt;
697  double x = accumulator.second.pars.phi;
698 
699  // Vectorize (flatten) coordinates
700  std::vector<float> coords;
701 
702  for (int i = 0; i < m_nLayers; ++i) {
703  if (sector_hits[i].getHitType() != HitType::wildcard) {
704 
705  double target_r = m_FPGATrackSimMapping->RegionMap_1st()->getAvgRadius(0, i);
706 
707  // If this is a spacepoint the target R should be the average of the two layers.
708  // TODO, get this to be loaded in from a mean radii file into the mapping infrastructure.
709  if (sector_hits[i].getHitType() == HitType::spacepoint) {
710  int other_layer = (sector_hits[i].getSide() == 0) ? i + 1 : i - 1;
711  target_r = (target_r + m_FPGATrackSimMapping->RegionMap_1st()->getAvgRadius(0, other_layer)) / 2.;
712  }
713 
714  std::vector<float> coords_tmp;
715  if ( m_ideal_geom > 1 ) {
716  coords_tmp = computeIdealCoords(sector_hits[i], x, y, target_r, m_doDeltaPhiConsts, TrackCorrType::Second);
717  }
718  else {
719  coords_tmp = computeIdealCoords(sector_hits[i], x, y, target_r, m_doDeltaPhiConsts, TrackCorrType::None);
720  }
721 
722  // Create phi for any hits that are not spacepoints, as well as "inner" spacepoints.
723  // but not outer spacepoints. this avoids duplicate coordinates.
724  if (sector_hits[i].getHitType() != HitType::spacepoint || sector_hits[i].getSide() == 0) {
725  // get idealized gPhi
726  coords.push_back(coords_tmp[1]);
727  }
728 
729  // Create a z coordinate for the "outer" layer of the spacepoint and for 2D pixel hits.
730  // This means that a spacepoint will write out (phi, eta) pairs, but (0, phi) or (phi, 0) if it's missing.
731  if (sector_hits[i].getDim() == 2 || (sector_hits[i].getHitType() == HitType::spacepoint && (sector_hits[i].getPhysLayer() % 2) == 1)) {
732  // get idealized z
733  coords.push_back(coords_tmp[0]);
734  }
735  }
736  else {
737  if (m_pmap->getDim(i) == 2) {
738  coords.push_back(0);
739  }
740  coords.push_back(0);
741  }
742  }
743 
744  assert(coords.size() == (size_t)m_nDim);
745  acc.hit_coords = coords;
746  acc.hit_coordsG = coords;
747 
748  // Get the track parameters
749  acc.pars = track.getPars();
751  acc.pars.qOverPt = (y / 1000.0) - track.getQOverPt(); // fit for delta q/pT
752  acc.pars.phi = x - track.getPhi(); // fit for delta phi_0
753  }
754 
756  for (unsigned i = 0; i < FPGATrackSimTrackPars::NPARS; i++)
757  bins[i] = (acc.pars[i] - m_sliceMin[i]) * m_nBins[i] / (m_sliceMax[i] - m_sliceMin[i]);
758  acc.track_bins.push_back(bins);
759 
760  // Force phi to be in [0, 2pi] (post binning)
761  if (!m_doDeltaPhiConsts) {
762  while (acc.pars.phi < 0) acc.pars.phi += 2*M_PI;
763  while (acc.pars.phi > 2*M_PI) acc.pars.phi -= 2*M_PI;
764  }
765 
766  // Calculate the pre-multiplied elements
767  for (int i = 0; i < m_nDim; i++)
768  {
769  acc.hit_x_QoP[i] = coords[i] * acc.pars.qOverPt;
770  acc.hit_xG_HIP[i] = coords[i] * acc.pars.qOverPt;
771  acc.hit_x_d0[i] = coords[i] * acc.pars.d0;
772  acc.hit_x_z0[i] = coords[i] * acc.pars.z0;
773  acc.hit_x_eta[i] = coords[i] * acc.pars.eta;
774  acc.hit_xG_eta[i] = coords[i] * acc.pars.eta;
775  acc.hit_x_phi[i] = coords[i] * acc.pars.phi;
776 
777  for (int j = i; j < m_nDim; j++)
778  acc.covariance[i * m_nDim + j] = coords[i] * coords[j];
779 
780  for (int j = i; j < m_nDim; j++)
781  acc.covarianceG[i * m_nDim + j] = coords[i] * coords[j];
782  }
783 
784  accumulator = {modules, acc};
785  return StatusCode::SUCCESS;
786 }

◆ 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,
int  subregion 
) const
private

Definition at line 408 of file FPGATrackSimMatrixGenAlgo.cxx.

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

◆ 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 827 of file FPGATrackSimMatrixGenAlgo.cxx.

828 {
829  TTree* sliceTree = new TTree("slice", "Region slice boundaries"); // slice
830 
831  sliceTree->Branch("c_max", &m_sliceMax.qOverPt);
832  sliceTree->Branch("d0_max", &m_sliceMax.d0);
833  sliceTree->Branch("phi_max", &m_sliceMax.phi);
834  sliceTree->Branch("z0_max", &m_sliceMax.z0);
835  sliceTree->Branch("eta_max", &m_sliceMax.eta);
836 
837  sliceTree->Branch("c_min", &m_sliceMin.qOverPt);
838  sliceTree->Branch("d0_min", &m_sliceMin.d0);
839  sliceTree->Branch("phi_min", &m_sliceMin.phi);
840  sliceTree->Branch("z0_min", &m_sliceMin.z0);
841  sliceTree->Branch("eta_min", &m_sliceMin.eta);
842 
843  sliceTree->Branch("c_slices", &m_nBins.qOverPt);
844  sliceTree->Branch("d0_slices", &m_nBins.d0);
845  sliceTree->Branch("phi_slices", &m_nBins.phi);
846  sliceTree->Branch("z0_slices", &m_nBins.z0);
847  sliceTree->Branch("eta_slices", &m_nBins.eta);
848 
849  StatusCode sc = m_tHistSvc->regTree("/TRIGFPGATrackSimMATRIXOUT/slice",sliceTree);
850  if (sc.isFailure()) ATH_MSG_ERROR("tHist failed");
851 
852  sliceTree->Fill();
853 }

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 113 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_clusteringTool

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

Definition at line 78 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_D0_THRESHOLD

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

Definition at line 96 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 87 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 92 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 91 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_doSpacePoints

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

Definition at line 88 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_eventHeader

FPGATrackSimEventInputHeader* FPGATrackSimMatrixGenAlgo::m_eventHeader = nullptr
private

Definition at line 124 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_EvtSel

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

Definition at line 73 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 72 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_h_3hitsInLayer

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

Definition at line 156 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_h_nHit

TH1I* FPGATrackSimMatrixGenAlgo::m_h_nHit = nullptr
private

Definition at line 161 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_h_notEnoughHits

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

Definition at line 157 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_h_sectorPars

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

Definition at line 154 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_h_SHfailure

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

Definition at line 155 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_h_trackQoP_okHits

TH1I* FPGATrackSimMatrixGenAlgo::m_h_trackQoP_okHits = nullptr
private

Definition at line 159 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_h_trackQoP_okRegion

TH1I* FPGATrackSimMatrixGenAlgo::m_h_trackQoP_okRegion = nullptr
private

Definition at line 160 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_h_trainingTrack

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

Definition at line 153 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_hitInputTool

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

Definition at line 76 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_hitMapTool

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

Definition at line 77 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 89 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_MaxWC

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

Definition at line 93 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 94 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_nBins

FPGATrackSimTrackParsI FPGATrackSimMatrixGenAlgo::m_nBins
private

Definition at line 122 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_nDim

int FPGATrackSimMatrixGenAlgo::m_nDim = 0
private

Definition at line 117 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_nDim2

int FPGATrackSimMatrixGenAlgo::m_nDim2 = 0
private

Definition at line 118 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_nLayers

int FPGATrackSimMatrixGenAlgo::m_nLayers = 0
private

Definition at line 116 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_nRegions

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

Definition at line 86 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_nTracks

size_t FPGATrackSimMatrixGenAlgo::m_nTracks = 0
private

Definition at line 129 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_nTracksUsed

size_t FPGATrackSimMatrixGenAlgo::m_nTracksUsed = 0
private

Definition at line 130 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_pmap

const FPGATrackSimPlaneMap* FPGATrackSimMatrixGenAlgo::m_pmap = nullptr
private

Definition at line 81 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_PT_THRESHOLD

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

Definition at line 95 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 114 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_roadFinderTool

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

Definition at line 80 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_sector_cum

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

Definition at line 67 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_single

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

Definition at line 90 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_sliceMax

FPGATrackSimTrackPars FPGATrackSimMatrixGenAlgo::m_sliceMax = 0
private

Definition at line 121 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_sliceMin

FPGATrackSimTrackPars FPGATrackSimMatrixGenAlgo::m_sliceMin = 0
private

Definition at line 120 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_spacePointsTool

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

Definition at line 79 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 99 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 98 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 108 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 103 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 102 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 110 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 107 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 106 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 112 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 101 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 100 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 109 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 105 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 104 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 111 of file FPGATrackSimMatrixGenAlgo.h.

◆ m_tHistSvc

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

Definition at line 74 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 97 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::m_hitMapTool
ToolHandle< FPGATrackSimRawToLogicalHitsTool > m_hitMapTool
Definition: FPGATrackSimMatrixGenAlgo.h:77
FPGATrackSimMatrixGenAlgo::getLogicalHits
std::vector< FPGATrackSimHit > getLogicalHits()
Definition: FPGATrackSimMatrixGenAlgo.cxx:302
FPGATrackSimMatrixGenAlgo::m_qOverPtBins
Gaudi::Property< std::vector< double > > m_qOverPtBins
Definition: FPGATrackSimMatrixGenAlgo.h:114
FPGATrackSimMatrixGenAlgo::m_temp_z0_max
Gaudi::Property< float > m_temp_z0_max
Definition: FPGATrackSimMatrixGenAlgo.h:105
FPGATrackSimMatrixGenAlgo::m_temp_d0_max
Gaudi::Property< float > m_temp_d0_max
Definition: FPGATrackSimMatrixGenAlgo.h:103
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:637
FPGATrackSimMatrixGenAlgo::m_temp_phi_max
Gaudi::Property< float > m_temp_phi_max
Definition: FPGATrackSimMatrixGenAlgo.h:101
FPGATrackSimTrackPars::phi
double phi
Definition: FPGATrackSimTrackPars.h:24
FPGATrackSimMatrixGenAlgo::m_temp_d0_min
Gaudi::Property< float > m_temp_d0_min
Definition: FPGATrackSimMatrixGenAlgo.h:102
FPGATrackSimLogicalEventInputHeader
Definition: FPGATrackSimLogicalEventInputHeader.h:21
TRTCalib_Extractor.hits
hits
Definition: TRTCalib_Extractor.py:35
python.FPGATrackSimAnalysisConfig.stage
stage
Definition: FPGATrackSimAnalysisConfig.py:558
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
FPGATrackSimTrackParsI::eta
int eta
Definition: FPGATrackSimTrackPars.h:62
FPGATrackSimMatrixGenAlgo::m_minSpacePlusPixel
Gaudi::Property< int > m_minSpacePlusPixel
Definition: FPGATrackSimMatrixGenAlgo.h:94
FPGATrackSimMatrixGenAlgo::getRegion
int getRegion(std::vector< FPGATrackSimHit > const &hits) const
Definition: FPGATrackSimMatrixGenAlgo.cxx:606
FPGATrackSimMatrixGenAlgo::m_nTracksUsed
size_t m_nTracksUsed
Definition: FPGATrackSimMatrixGenAlgo.h:130
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:83
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
FPGATrackSimMatrixGenAlgo::m_FPGATrackSimMapping
ServiceHandle< IFPGATrackSimMappingSvc > m_FPGATrackSimMapping
Definition: FPGATrackSimMatrixGenAlgo.h:72
FPGATrackSimMatrixGenAlgo::m_temp_z0_slices
Gaudi::Property< int > m_temp_z0_slices
Definition: FPGATrackSimMatrixGenAlgo.h:111
fpgatracksim::SPACEPOINT_SECTOR_OFFSET
constexpr int SPACEPOINT_SECTOR_OFFSET
Definition: FPGATrackSimConstants.h:22
FPGATrackSimTruthTrack
Definition: FPGATrackSimTruthTrack.h:14
accumulate
bool accumulate(AccumulateMap &map, std::vector< module_t > const &modules, FPGATrackSimMatrixAccumulator const &acc)
Accumulates an accumulator (e.g.
Definition: FPGATrackSimMatrixAccumulator.cxx:22
tree
TChain * tree
Definition: tile_monitor.h:30
FPGATrackSimTrackPars::d0
double d0
Definition: FPGATrackSimTrackPars.h:26
skel.it
it
Definition: skel.GENtoEVGEN.py:396
TrackCorrType::Second
@ Second
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:117
FPGATrackSimTrackParsI::d0
int d0
Definition: FPGATrackSimTrackPars.h:60
FPGATrackSimMatrixGenAlgo::writeSliceTree
void writeSliceTree()
Definition: FPGATrackSimMatrixGenAlgo.cxx:827
HitType::spacepoint
@ spacepoint
FPGATrackSimMatrixGenAlgo::m_ideal_geom
Gaudi::Property< int > m_ideal_geom
Definition: FPGATrackSimMatrixGenAlgo.h:89
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:100
FPGATrackSimTrackPars::eta
double eta
Definition: FPGATrackSimTrackPars.h:28
FPGATrackSimMatrixGenAlgo::m_D0_THRESHOLD
Gaudi::Property< float > m_D0_THRESHOLD
Definition: FPGATrackSimMatrixGenAlgo.h:96
FPGATrackSimMatrixGenAlgo::m_temp_z0_min
Gaudi::Property< float > m_temp_z0_min
Definition: FPGATrackSimMatrixGenAlgo.h:104
x
#define x
FPGATrackSimMatrixGenAlgo::m_temp_eta_slices
Gaudi::Property< int > m_temp_eta_slices
Definition: FPGATrackSimMatrixGenAlgo.h:112
FPGATrackSimMatrixGenAlgo::m_temp_eta_min
Gaudi::Property< float > m_temp_eta_min
Definition: FPGATrackSimMatrixGenAlgo.h:106
FPGATrackSimMatrixGenAlgo::selectHit_returnCode::SH_FAILURE
@ SH_FAILURE
FPGATrackSimMatrixGenAlgo::m_EvtSel
ServiceHandle< IFPGATrackSimEventSelectionSvc > m_EvtSel
Definition: FPGATrackSimMatrixGenAlgo.h:73
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:41
FPGATrackSimPlaneMap::getDim
uint32_t getDim(size_t logiLayer) const
Definition: FPGATrackSimPlaneMap.h:78
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
HitType::wildcard
@ wildcard
FPGATrackSimMatrixGenAlgo::m_doHoughConstants
Gaudi::Property< bool > m_doHoughConstants
Definition: FPGATrackSimMatrixGenAlgo.h:91
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:226
computeIdealCoords
std::vector< float > computeIdealCoords(const FPGATrackSimHit &hit, const double hough_x, const double hough_y, const double target_r, const bool doDeltaGPhis, const TrackCorrType trackCorrType)
Definition: FPGATrackSimFunctions.cxx:116
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
FPGATrackSimMatrixGenAlgo::m_sliceMax
FPGATrackSimTrackPars m_sliceMax
Definition: FPGATrackSimMatrixGenAlgo.h:121
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:98
FPGATrackSimMatrixGenAlgo::m_nRegions
Gaudi::Property< int > m_nRegions
Definition: FPGATrackSimMatrixGenAlgo.h:86
FPGATrackSimPlaneMap::map
void map(FPGATrackSimHit &hit) const
Definition: FPGATrackSimPlaneMap.cxx:234
FPGATrackSimMatrixGenAlgo::selectHit_returnCode::SH_KEEP_OLD
@ SH_KEEP_OLD
FPGATrackSimMatrixGenAlgo::m_single
Gaudi::Property< bool > m_single
Definition: FPGATrackSimMatrixGenAlgo.h:90
lumiFormat.i
int i
Definition: lumiFormat.py:85
FPGATrackSimEventInputHeader::clearHits
void clearHits()
Definition: FPGATrackSimEventInputHeader.h:40
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
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
FPGATrackSimMatrixAccumulator
Definition: FPGATrackSimMatrixAccumulator.h:36
FPGATrackSimMatrixGenAlgo::m_spacePointsTool
ToolHandle< FPGATrackSimSpacePointsToolI > m_spacePointsTool
Definition: FPGATrackSimMatrixGenAlgo.h:79
FPGATrackSimMatrixGenAlgo::m_h_sectorPars
TH1I * m_h_sectorPars[FPGATrackSimTrackPars::NPARS]
Definition: FPGATrackSimMatrixGenAlgo.h:154
covarianceTool.title
title
Definition: covarianceTool.py:542
FPGATrackSimMatrixGenAlgo::m_hitInputTool
ToolHandle< IFPGATrackSimInputTool > m_hitInputTool
Definition: FPGATrackSimMatrixGenAlgo.h:76
FPGATrackSimMatrixGenAlgo::m_temp_d0_slices
Gaudi::Property< int > m_temp_d0_slices
Definition: FPGATrackSimMatrixGenAlgo.h:110
FPGATrackSimMatrixGenAlgo::m_h_trackQoP_okHits
TH1I * m_h_trackQoP_okHits
Definition: FPGATrackSimMatrixGenAlgo.h:159
FPGATrackSimMatrixGenAlgo::m_doDeltaPhiConsts
Gaudi::Property< bool > m_doDeltaPhiConsts
Definition: FPGATrackSimMatrixGenAlgo.h:92
FPGATrackSimMatrixGenAlgo::m_PT_THRESHOLD
Gaudi::Property< float > m_PT_THRESHOLD
Definition: FPGATrackSimMatrixGenAlgo.h:95
AthenaPoolTestRead.acc
acc
Definition: AthenaPoolTestRead.py:16
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
FPGATrackSimEventInputHeader
Definition: FPGATrackSimEventInputHeader.h:22
plotting.yearwise_luminosity_vs_mu.bins
bins
Definition: yearwise_luminosity_vs_mu.py:30
FPGATrackSimMatrixGenAlgo::m_temp_phi_slices
Gaudi::Property< int > m_temp_phi_slices
Definition: FPGATrackSimMatrixGenAlgo.h:109
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:88
FPGATrackSimMatrixGenAlgo::m_absQOverPtBinning
Gaudi::Property< bool > m_absQOverPtBinning
Definition: FPGATrackSimMatrixGenAlgo.h:113
FPGATrackSimMatrixGenAlgo::m_doClustering
Gaudi::Property< bool > m_doClustering
Definition: FPGATrackSimMatrixGenAlgo.h:87
FPGATrackSimRegionMap::getRegions
std::vector< uint32_t > getRegions(const FPGATrackSimHit &hit) const
Definition: FPGATrackSimRegionMap.cxx:282
FPGATrackSimMatrixGenAlgo::m_clusteringTool
ToolHandle< FPGATrackSimClusteringToolI > m_clusteringTool
Definition: FPGATrackSimMatrixGenAlgo.h:78
FPGATrackSimMatrixGenAlgo::m_eventHeader
FPGATrackSimEventInputHeader * m_eventHeader
Definition: FPGATrackSimMatrixGenAlgo.h:124
FPGATrackSimMatrixGenAlgo::bookHistograms
StatusCode bookHistograms()
Definition: FPGATrackSimMatrixGenAlgo.cxx:123
FPGATrackSimMatrixGenAlgo::filterSectorHits
bool filterSectorHits(std::vector< FPGATrackSimHit > const &all_hits, std::vector< FPGATrackSimHit > &sector_hits, FPGATrackSimTruthTrack const &t, int subregion) const
Definition: FPGATrackSimMatrixGenAlgo.cxx:512
FPGATrackSimMatrixGenAlgo::m_h_notEnoughHits
TH1I * m_h_notEnoughHits[FPGATrackSimTrackPars::NPARS]
Definition: FPGATrackSimMatrixGenAlgo.h:157
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
FPGATrackSimPlaneMap
Definition: FPGATrackSimPlaneMap.h:62
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:129
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:228
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition: GeometryDefs.h:34
TrackCorrType::None
@ None
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:156
FPGATrackSimMatrixGenAlgo::m_sector_cum
std::vector< AccumulateMap > m_sector_cum
Definition: FPGATrackSimMatrixGenAlgo.h:67
FPGATrackSimMatrixGenAlgo::m_h_SHfailure
TH1I * m_h_SHfailure[FPGATrackSimTrackPars::NPARS]
Definition: FPGATrackSimMatrixGenAlgo.h:155
FPGATrackSimTrackPars::parName
static std::string parName(unsigned i)
Definition: FPGATrackSimTrackPars.cxx:72
FPGATrackSimEventInputHeader::optional
FPGATrackSimOptionalEventInfo const & optional() const
Definition: FPGATrackSimEventInputHeader.h:34
FPGATrackSimMatrixGenAlgo::m_nLayers
int m_nLayers
Definition: FPGATrackSimMatrixGenAlgo.h:116
FPGATrackSimTrackParsI::phi
int phi
Definition: FPGATrackSimTrackPars.h:58
FPGATrackSimMatrixGenAlgo::m_temp_c_max
Gaudi::Property< float > m_temp_c_max
Definition: FPGATrackSimMatrixGenAlgo.h:99
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
FPGATrackSimMatrixGenAlgo::selectHit
selectHit_returnCode selectHit(FPGATrackSimHit const &old_hit, FPGATrackSimHit const &new_hit, int subregion) const
Definition: FPGATrackSimMatrixGenAlgo.cxx:408
fillTrackPars
void fillTrackPars(TH1I *const hists[FPGATrackSimTrackPars::NPARS], FPGATrackSimTruthTrack const &track)
Definition: FPGATrackSimMatrixGenAlgo.cxx:186
a
TList * a
Definition: liststreamerinfos.cxx:10
y
#define y
h
FPGATrackSimMatrixGenAlgo::m_nDim2
int m_nDim2
Definition: FPGATrackSimMatrixGenAlgo.h:118
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:160
FPGATrackSimTrackPars::z0
double z0
Definition: FPGATrackSimTrackPars.h:27
FPGATrackSimMatrixGenAlgo::m_sliceMin
FPGATrackSimTrackPars m_sliceMin
Definition: FPGATrackSimMatrixGenAlgo.h:120
FPGATrackSimMatrixGenAlgo::m_h_trainingTrack
TH1I * m_h_trainingTrack[FPGATrackSimTrackPars::NPARS]
Definition: FPGATrackSimMatrixGenAlgo.h:153
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:623
FPGATrackSimMatrixGenAlgo::m_MaxWC
Gaudi::Property< int > m_MaxWC
Definition: FPGATrackSimMatrixGenAlgo.h:93
FPGATrackSimMatrixGenAlgo::m_TRAIN_PDG
Gaudi::Property< int > m_TRAIN_PDG
Definition: FPGATrackSimMatrixGenAlgo.h:97
FPGATrackSimMatrixGenAlgo::m_roadFinderTool
ToolHandle< FPGATrackSimRoadUnionTool > m_roadFinderTool
Definition: FPGATrackSimMatrixGenAlgo.h:80
FPGATrackSimTrackParsI::z0
int z0
Definition: FPGATrackSimTrackPars.h:61
FPGATrackSimMatrixGenAlgo::m_nBins
FPGATrackSimTrackParsI m_nBins
Definition: FPGATrackSimMatrixGenAlgo.h:122
FPGATrackSimMatrixGenAlgo::m_h_nHit
TH1I * m_h_nHit
Definition: FPGATrackSimMatrixGenAlgo.h:161
FPGATrackSimRegionMap
Definition: FPGATrackSimRegionMap.h:62
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:798
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:358
FPGATrackSimMatrixGenAlgo::m_tHistSvc
ServiceHandle< ITHistSvc > m_tHistSvc
Definition: FPGATrackSimMatrixGenAlgo.h:74
FPGATrackSimMatrixGenAlgo::m_temp_eta_max
Gaudi::Property< float > m_temp_eta_max
Definition: FPGATrackSimMatrixGenAlgo.h:107
FPGATrackSimEventInputHeader::reset
void reset()
Definition: FPGATrackSimEventInputHeader.cxx:14
FPGATrackSimMatrixGenAlgo::m_pmap
const FPGATrackSimPlaneMap * m_pmap
Definition: FPGATrackSimMatrixGenAlgo.h:81
python.compressB64.c
def c
Definition: compressB64.py:93
FPGATrackSimMatrixGenAlgo::selectHit_returnCode
selectHit_returnCode
Definition: FPGATrackSimMatrixGenAlgo.h:135
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
fitman.k
k
Definition: fitman.py:528
FPGATrackSimMatrixGenAlgo::m_temp_c_slices
Gaudi::Property< int > m_temp_c_slices
Definition: FPGATrackSimMatrixGenAlgo.h:108
FPGATrackSimHit::setHitType
void setHitType(HitType type)
Definition: FPGATrackSimHit.h:54
ServiceHandle< ICondSvc >
LArGeo::ATan2
GeoGenfun::FunctionNoop ATan2(GeoGenfun::GENFUNCTION y, GeoGenfun::GENFUNCTION x)
Definition: BarrelAuxFunctions.cxx:50