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, uint32_t rofLength=198)
 
- Public Member Functions inherited from o2::its::TimeFrame< NLayers >
 TimeFrame ()=default
 
const VertexgetPrimaryVertex (const int ivtx) const
 
auto & getPrimaryVertices ()
 
auto getPrimaryVerticesNum ()
 
const auto & getPrimaryVertices () const
 
auto & getPrimaryVerticesLabels ()
 
gsl::span< const VertexgetPrimaryVertices (int layer, int rofId) const
 
void addPrimaryVertex (const Vertex &vertex)
 
void addPrimaryVertexLabel (const VertexLabel &label)
 
void 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, int layer, const dataformats::MCTruthContainer< MCCompLabel > *mcLabels=nullptr)
 
void resetROFrameData (int iLayer)
 
void prepareROFrameData (gsl::span< const itsmft::CompClusterExt > clusters, int layer)
 
int getTotalClusters () const
 
bool empty () const
 
int getSortedIndex (int rofId, int layer, int idx) const
 
int getSortedStartIndex (const int rofId, const int layer) const
 
int getNrof (int layer) 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
 
std::array< float, 2 > & getBeamXY ()
 
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< intgetIndexTable (int rofId, int layerId)
 
const auto & getTrackingFrameInfoOnLayer (int layerId) const
 
const auto & getIndexTableUtils () const
 
const auto & getROFOverlapTable () const
 
const auto & getROFOverlapTableView () const
 
void setROFOverlapTable (ROFOverlapTableN table)
 
const auto & getROFVertexLookupTable () const
 
const auto & getROFVertexLookupTableView () const
 
void setROFVertexLookupTable (ROFVertexLookupTableN table)
 
void updateROFVertexLookupTable ()
 
void setMultiplicityCutMask (ROFMaskTableN cutMask)
 
void useMultiplictyMask () noexcept
 
void setUPCCutMask (ROFMaskTableN cutMask)
 
void useUPCMask () noexcept
 
const auto & getROFMaskView () 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 layer, int clusterId) const
 
void setClusterSize (int layer, 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=NLayers, bool resetVertices=true)
 
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 & getTracks ()
 
auto & getTracksLabel ()
 
auto & getLinesLabel (const int rofId)
 
size_t getNumberOfClusters () const
 
virtual size_t getNumberOfCells () const
 
virtual size_t getNumberOfTracklets () const
 
virtual size_t getNumberOfNeighbours () const
 
size_t getNumberOfTracks () const
 
size_t getNumberOfUsedClusters () 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
 
void setIsStaggered (bool b) noexcept
 staggering
 
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
 
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)
 
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 ROFOverlapTableN = ROFOverlapTable< NLayers >
 
using ROFVertexLookupTableN = ROFVertexLookupTable< NLayers >
 
using ROFMaskTableN = ROFMaskTable< NLayers >
 
using TrackSeedN = TrackSeed< 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
 
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
 
std::array< const dataformats::MCTruthContainer< MCCompLabel > *, NLayers > 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
 
std::array< bounded_vector< Cluster >, NLayers > mUnsortedClusters
 
std::vector< bounded_vector< Tracklet > > mTracklets
 
std::vector< bounded_vector< CellSeed > > mCells
 
bounded_vector< TrackITSExtmTracks
 
bounded_vector< MCCompLabelmTracksLabel
 
std::vector< bounded_vector< int > > mCellsNeighbours
 
std::vector< bounded_vector< int > > mCellsLookupTable
 
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
 
std::array< bounded_vector< uint8_t >, NLayers > mClusterSize
 
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
 
bounded_vector< intmBogusClusters
 
bounded_vector< VertexmPrimaryVertices
 keep track of clusters with wild coordinates
 
bounded_vector< VertexLabelmPrimaryVerticesLabels
 
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::array< uint32_t, 2 > mTotalTracklets = {0, 0}
 
uint32_t mTotalLines = 0
 
IndexTableUtilsN mIndexTableUtils
 
ROFOverlapTableN mROFOverlapTable
 
ROFOverlapTableN::View mROFOverlapTableView
 
ROFVertexLookupTableN mROFVertexLookupTable
 
ROFVertexLookupTableN::View mROFVertexLookupTableView
 
ROFMaskTableN mMultiplicityCutMask
 
ROFMaskTableN mUPCCutMask
 
ROFMaskTableNmROFMask = &mMultiplicityCutMask
 
ROFMaskTableN::View mROFMaskView
 
bool mIsStaggered {false}
 
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 41 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,
uint32_t  rofLength = 198 
)

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
rofLengthROF length in BCs (must match what was used in loadROFsFromHitTree)

all ROFs are valid with MC primary vertices.

Definition at line 188 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
gmanTRK geometry manager instance
configConfiguration parameters for hit reconstruction

Rotate to the global frame

Definition at line 32 of file TimeFrame.cxx.


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