Project
Loading...
Searching...
No Matches
o2::trk::TimeFrame< nLayers > Class Template Reference

#include <TimeFrame.h>

Inherits o2::its::TimeFrame< nLayers >.

Public Member Functions

 TimeFrame ()=default
 
 ~TimeFrame () override=default
 
int loadROFsFromHitTree (TTree *hitsTree, GeometryTGeo *gman, const nlohmann::json &config)
 
void getPrimaryVerticesFromMC (TTree *mcHeaderTree, int nRofs, Long64_t nEvents, int inROFpileup)
 
- Public Member Functions inherited from o2::its::TimeFrame< nLayers >
 TimeFrame ()=default
 
const VertexgetPrimaryVertex (const int ivtx) const
 
gsl::span< const VertexgetPrimaryVertices (int rofId) const
 
gsl::span< const VertexgetPrimaryVertices (int romin, int romax) const
 
gsl::span< const std::pair< MCCompLabel, float > > getPrimaryVerticesMCRecInfo (const int rofId) const
 
gsl::span< const MCCompLabelgetPrimaryVerticesContributors (const int rofId) const
 
gsl::span< const std::array< float, 2 > > getPrimaryVerticesXAlpha (int rofId) const
 
void fillPrimaryVerticesXandAlpha ()
 
int getPrimaryVerticesNum (int rofId=-1) const
 
void addPrimaryVerticesLabels (bounded_vector< std::pair< MCCompLabel, float > > &labels)
 
void addPrimaryVerticesContributorLabels (bounded_vector< MCCompLabel > &labels)
 
void addPrimaryVertices (const bounded_vector< Vertex > &vertices, const int iteration)
 
void addPrimaryVerticesInROF (const bounded_vector< Vertex > &vertices, const int rofId, const int iteration)
 
void addPrimaryVerticesLabelsInROF (const bounded_vector< std::pair< MCCompLabel, float > > &labels, const int rofId)
 
void addPrimaryVerticesContributorLabelsInROF (const bounded_vector< MCCompLabel > &labels, const int rofId)
 
void removePrimaryVerticesInROf (const int rofId)
 
int loadROFrameData (const o2::itsmft::ROFRecord &rof, gsl::span< const itsmft::Cluster > clusters, const dataformats::MCTruthContainer< MCCompLabel > *mcLabels=nullptr)
 
int loadROFrameData (gsl::span< const o2::itsmft::ROFRecord > rofs, gsl::span< const itsmft::CompClusterExt > clusters, gsl::span< const unsigned char >::iterator &pattIt, const itsmft::TopologyDictionary *dict, const dataformats::MCTruthContainer< MCCompLabel > *mcLabels=nullptr)
 
void resetROFrameData (size_t nROFs)
 
void prepareROFrameData (gsl::span< const o2::itsmft::ROFRecord > rofs, gsl::span< const itsmft::CompClusterExt > clusters)
 
int getTotalClusters () const
 
auto & getTotVertIteration ()
 
bool empty () const
 
int getSortedIndex (int rofId, int layer, int idx) const
 
int getSortedStartIndex (const int rofId, const int layer) const
 
int getNrof () const
 
void resetBeamXY (const float x, const float y, const float w=0)
 
void setBeamPosition (const float x, const float y, const float s2, const float base=50.f, const float systematic=0.f)
 
float getBeamX () const
 
float getBeamY () const
 
auto & getMinRs ()
 
auto & getMaxRs ()
 
float getMinR (int layer) const
 
float getMaxR (int layer) const
 
float getMSangle (int layer) const
 
auto & getMSangles ()
 
float getPhiCut (int layer) const
 
auto & getPhiCuts ()
 
float getPositionResolution (int layer) const
 
auto & getPositionResolutions ()
 
gsl::span< ClustergetClustersOnLayer (int rofId, int layerId)
 
gsl::span< const ClustergetClustersOnLayer (int rofId, int layerId) const
 
gsl::span< const ClustergetClustersPerROFrange (int rofMin, int range, int layerId) const
 
gsl::span< const ClustergetUnsortedClustersOnLayer (int rofId, int layerId) const
 
gsl::span< uint8_t > getUsedClustersROF (int rofId, int layerId)
 
gsl::span< const uint8_t > getUsedClustersROF (int rofId, int layerId) const
 
gsl::span< const intgetROFramesClustersPerROFrange (int rofMin, int range, int layerId) const
 
gsl::span< const intgetROFrameClusters (int layerId) const
 
gsl::span< const intgetNClustersROFrange (int rofMin, int range, int layerId) const
 
gsl::span< const intgetIndexTablePerROFrange (int rofMin, int range, int layerId) const
 
gsl::span< intgetIndexTable (int rofId, int layerId)
 
auto & getIndexTableWhole (int layerId)
 
const auto & getTrackingFrameInfoOnLayer (int layerId) const
 
const TrackingFrameInfogetClusterTrackingFrameInfo (int layerId, const Cluster &cl) const
 
gsl::span< const MCCompLabelgetClusterLabels (int layerId, const Cluster &cl) const
 
gsl::span< const MCCompLabelgetClusterLabels (int layerId, const int clId) const
 
int getClusterExternalIndex (int layerId, const int clId) const
 
int getClusterSize (int clusterId) const
 
void setClusterSize (bounded_vector< uint8_t > &v)
 
auto & getTrackletsLabel (int layer)
 
auto & getCellsLabel (int layer)
 
bool hasMCinformation () const
 
void initialise (const int iteration, const TrackingParameters &trkParam, const int maxLayers=7, bool resetVertices=true)
 
void resetRofPV ()
 
bool isClusterUsed (int layer, int clusterId) const
 
void markUsedCluster (int layer, int clusterId)
 
gsl::span< unsigned chargetUsedClusters (const int layer)
 
auto & getTracklets ()
 
auto & getTrackletsLookupTable ()
 
auto & getClusters ()
 
auto & getUnsortedClusters ()
 
int getClusterROF (int iLayer, int iCluster)
 
auto & getCells ()
 
auto & getCellsLookupTable ()
 
auto & getCellsNeighbours ()
 
auto & getCellsNeighboursLUT ()
 
auto & getRoads ()
 
auto & getTracks (int rofId)
 
auto & getTracksLabel (const int rofId)
 
auto & getLinesLabel (const int rofId)
 
auto & getVerticesMCRecInfo ()
 
int getNumberOfClusters () const
 
virtual int getNumberOfCells () const
 
virtual int getNumberOfTracklets () const
 
virtual int getNumberOfNeighbours () const
 
size_t getNumberOfTracks () const
 
size_t getNumberOfUsedClusters () const
 
auto getNumberOfExtendedTracks () const
 
auto getNumberOfUsedExtendedClusters () const
 
void setMemoryPool (std::shared_ptr< BoundedMemoryResource > pool)
 memory management
 
auto & getMemoryPool () const noexcept
 
bool checkMemory (unsigned long max)
 
unsigned long getArtefactsMemory () const
 
void printArtefactsMemory () const
 
int getROFCutClusterMult () const
 ROF cuts.
 
int getROFCutVertexMult () const
 
int getROFCutAllMult () const
 
void computeTrackletsPerROFScans ()
 
void computeTracletsPerClusterScans ()
 
intgetNTrackletsROF (int rofId, int combId)
 
auto & getLines (int rofId)
 
int getNLinesTotal () const noexcept
 
void setNLinesTotal (uint32_t a) noexcept
 
auto & getTrackletClusters (int rofId)
 
gsl::span< const TrackletgetFoundTracklets (int rofId, int combId) const
 
gsl::span< TrackletgetFoundTracklets (int rofId, int combId)
 
gsl::span< const MCCompLabelgetLabelsFoundTracklets (int rofId, int combId) const
 
gsl::span< intgetNTrackletsCluster (int rofId, int combId)
 
gsl::span< intgetExclusiveNTrackletsCluster (int rofId, int combId)
 
uint32_t getTotalTrackletsTF (const int iLayer)
 
int getTotalClustersPerROFrange (int rofMin, int range, int layerId) const
 
std::array< float, 2 > & getBeamXY ()
 
unsigned intgetNoVertexROF ()
 
void insertPastVertex (const Vertex &vertex, const int refROFId)
 
void initialiseRoadLabels ()
 
void setRoadLabel (int i, const unsigned long long &lab, bool fake)
 
const unsigned long longgetRoadLabel (int i) const
 
bool isRoadFake (int i) const
 
void setMultiplicityCutMask (const std::vector< uint8_t > &cutMask)
 
void setROFMask (const std::vector< uint8_t > &rofMask)
 
void swapMasks ()
 
int hasBogusClusters () const
 
void setBz (float bz)
 
float getBz () const
 
auto getFrameworkAllocator ()
 
void setFrameworkAllocator (ExternalAllocator *ext)
 
bool hasFrameworkAllocator () const noexcept
 
std::pmr::memory_resourcegetMaybeFrameworkHostResource (bool forceHost=false)
 
const o2::base::PropagatorImpl< float > * getDevicePropagator () const
 
virtual void setDevicePropagator (const o2::base::PropagatorImpl< float > *)
 
template<typename... T>
void addClusterToLayer (int layer, T &&... args)
 
template<typename... T>
void addTrackingFrameInfoToLayer (int layer, T &&... args)
 
void addClusterExternalIndexToLayer (int layer, const int idx)
 
void checkTrackletLUTs ()
 Debug and printing.
 
void printROFoffsets ()
 
void printNClsPerROF ()
 
void printVertices ()
 
void printTrackletLUTonLayer (int i)
 
void printCellLUTonLayer (int i)
 
void printTrackletLUTs ()
 
void printCellLUTs ()
 
void printSliceInfo (const int, const int)
 
virtual void wipe ()
 
virtual bool isGPU () const noexcept
 
virtual const chargetName () const noexcept
 

Additional Inherited Members

- Public Types inherited from o2::its::TimeFrame< nLayers >
using IndexTableUtilsN = IndexTableUtils< nLayers >
 
using CellSeedN = CellSeed< nLayers >
 
- Public Attributes inherited from o2::its::TimeFrame< nLayers >
ExternalAllocatormExternalAllocator {nullptr}
 State if memory will be externally managed by the GPU framework.
 
std::shared_ptr< BoundedMemoryResourcemExtMemoryPool
 
IndexTableUtilsN mIndexTableUtils
 
std::array< bounded_vector< Cluster >, nLayers > mClusters
 
std::array< bounded_vector< TrackingFrameInfo >, nLayers > mTrackingFrameInfo
 
std::array< bounded_vector< int >, nLayers > mClusterExternalIndices
 
std::array< bounded_vector< int >, nLayers > mROFramesClusters
 
const dataformats::MCTruthContainer< MCCompLabel > * mClusterLabels = nullptr
 
std::array< bounded_vector< int >, 2 > mNTrackletsPerCluster
 
std::array< bounded_vector< int >, 2 > mNTrackletsPerClusterSum
 
std::array< bounded_vector< int >, nLayers > mNClustersPerROF
 
std::array< bounded_vector< int >, nLayers > mIndexTables
 
std::vector< bounded_vector< int > > mTrackletsLookupTable
 
std::array< bounded_vector< uint8_t >, nLayers > mUsedClusters
 
int mNrof = 0
 
int mNExtendedTracks {0}
 
int mNExtendedUsedClusters {0}
 
bounded_vector< intmROFramesPV
 
bounded_vector< VertexmPrimaryVertices
 
std::array< bounded_vector< Cluster >, nLayers > mUnsortedClusters
 
std::vector< bounded_vector< Tracklet > > mTracklets
 
std::vector< bounded_vector< CellSeedN > > mCells
 
bounded_vector< Road< nLayers - 2 > > mRoads
 
std::vector< bounded_vector< TrackITSExt > > mTracks
 
std::vector< bounded_vector< int > > mCellsNeighbours
 
std::vector< bounded_vector< int > > mCellsLookupTable
 
std::vector< uint8_t > mMultiplicityCutMask
 
const o2::base::PropagatorImpl< float > * mPropagatorDevice = nullptr
 
- Protected Member Functions inherited from o2::its::TimeFrame< nLayers >
void prepareClusters (const TrackingParameters &trkParam, const int maxLayers=nLayers)
 
- Protected Attributes inherited from o2::its::TimeFrame< nLayers >
float mBz = 5.
 
unsigned int mNTotalLowPtVertices = 0
 
int mBeamPosWeight = 0
 
std::array< float, 2 > mBeamPos = {0.f, 0.f}
 
bool isBeamPositionOverridden = false
 
std::array< float, nLayers > mMinR
 
std::array< float, nLayers > mMaxR
 
bounded_vector< float > mMSangles
 
bounded_vector< float > mPhiCuts
 
bounded_vector< float > mPositionResolution
 
bounded_vector< uint8_t > mClusterSize
 
std::vector< uint8_t > mROFMask
 
bounded_vector< std::array< float, 2 > > mPValphaX
 
std::vector< bounded_vector< MCCompLabel > > mTrackletLabels
 PV x and alpha for track propagation.
 
std::vector< bounded_vector< MCCompLabel > > mCellLabels
 
std::vector< bounded_vector< int > > mCellsNeighboursLUT
 
std::vector< bounded_vector< MCCompLabel > > mTracksLabel
 
bounded_vector< intmBogusClusters
 
bounded_vector< std::pair< unsigned long long, bool > > mRoadLabels
 keep track of clusters with wild coordinates
 
int mCutClusterMult {-999}
 
int mCutVertexMult {-999}
 
std::vector< bounded_vector< int > > mNTrackletsPerROF
 
std::vector< bounded_vector< Line > > mLines
 
std::vector< bounded_vector< ClusterLines > > mTrackletClusters
 
std::array< bounded_vector< int >, 2 > mTrackletsIndexROF
 
std::vector< bounded_vector< MCCompLabel > > mLinesLabels
 
std::vector< std::pair< MCCompLabel, float > > mVerticesMCRecInfo
 
bounded_vector< MCCompLabelmVerticesContributorLabels
 
std::array< uint32_t, 2 > mTotalTracklets = {0, 0}
 
uint32_t mTotalLines = 0
 
unsigned int mNoVertexROF = 0
 
bounded_vector< intmTotVertPerIteration
 
std::shared_ptr< BoundedMemoryResourcemMemoryPool
 

Detailed Description

template<int nLayers = 11>
class o2::trk::TimeFrame< nLayers >

TRK TimeFrame class that extends ITS TimeFrame functionality This allows for customization of tracking algorithms specific to the TRK detector

Definition at line 42 of file TimeFrame.h.

Constructor & Destructor Documentation

◆ TimeFrame()

template<int nLayers = 11>
o2::trk::TimeFrame< nLayers >::TimeFrame ( )
default

◆ ~TimeFrame()

template<int nLayers = 11>
o2::trk::TimeFrame< nLayers >::~TimeFrame ( )
overridevirtualdefault

Reimplemented from o2::its::TimeFrame< nLayers >.

Member Function Documentation

◆ getPrimaryVerticesFromMC()

template<int nLayers>
void o2::trk::TimeFrame< nLayers >::getPrimaryVerticesFromMC ( TTree *  mcHeaderTree,
int  nRofs,
Long64_t  nEvents,
int  inROFpileup 
)

Add primary vertices from MC headers for each ROF

Parameters
mcHeaderTreeTree containing MC event headers
nRofsNumber of ROFs (Read-Out Frames)
nEventsNumber of events to process
inROFpileupNumber of events per ROF

all ROFs are valid with MC primary vertices.

Definition at line 165 of file TimeFrame.cxx.

◆ loadROFsFromHitTree()

template<int nLayers>
int o2::trk::TimeFrame< nLayers >::loadROFsFromHitTree ( TTree *  hitsTree,
GeometryTGeo gman,
const nlohmann::json &  config 
)

Override methods if needed for TRK-specific behavior For now, we inherit all functionality from ITS TimeFrame Process hits from TTree to initialize ROFs

Parameters
hitsTreeTree containing TRK hits
mcHeaderTreeTree containing MC event headers
nEventsNumber of events to process
gmanTRK geometry manager instance
configConfiguration parameters for hit reconstruction

Rotate to the global frame

Definition at line 30 of file TimeFrame.cxx.


The documentation for this class was generated from the following files: