EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHCASeeding Class Reference

#include <fun4all_coresoftware/blob/master/offline/packages/trackreco/PHCASeeding.h>

+ Inheritance diagram for PHCASeeding:
+ Collaboration diagram for PHCASeeding:

Public Member Functions

 PHCASeeding (const std::string &name="PHCASeeding", unsigned int start_layer=7, unsigned int end_layer=55, unsigned int min_nhits_per_cluster=0, unsigned int min_clusters_per_track=5, const unsigned int nlayers_maps=3, const unsigned int nlayers_intt=4, const unsigned int nlayers_tpc=48, float neighbor_phi_width=.02, float neighbor_eta_width=.01, float maxSinPhi=0.999, float cosTheta_limit=-0.8)
 
 ~PHCASeeding () override
 
void SetLayerRange (unsigned int layer_low, unsigned int layer_up)
 
void SetSearchWindow (float eta_width, float phi_width)
 
void SetMinHitsPerCluster (unsigned int minHits)
 
void SetMinClustersPerTrack (unsigned int minClus)
 
void set_field_dir (const double rescale)
 
void useConstBField (bool opt)
 
void useFixedClusterError (bool opt)
 
void setFixedClusterError (int i, double val)
 
- Public Member Functions inherited from PHTrackSeeding
 PHTrackSeeding (const std::string &name="PHTrackSeeding")
 
 ~PHTrackSeeding () override
 
int InitRun (PHCompositeNode *topNode) override
 
int process_event (PHCompositeNode *topNode) override
 
int End (PHCompositeNode *topNode) override
 Called at the end of all processing.
 
void set_track_map_name (const std::string &map_name)
 
void SetUseTruthClusters (bool setit)
 
void SetIteration (int iter)
 
- Public Member Functions inherited from SubsysReco
 ~SubsysReco () override
 
virtual int EndRun (const int)
 Called at the end of each run.
 
virtual int Init (PHCompositeNode *)
 
virtual int Reset (PHCompositeNode *)
 Reset.
 
virtual int ResetEvent (PHCompositeNode *)
 Clean up after each event.
 
void Print (const std::string &="ALL") const override
 
- Public Member Functions inherited from Fun4AllBase
virtual ~Fun4AllBase ()
 
virtual const std::string Name () const
 Returns the name of this module.
 
virtual void Name (const std::string &name)
 Sets the name of this module.
 
virtual void Verbosity (const int ival)
 Sets the verbosity of this module (0 by default=quiet).
 
virtual void Verbosity (enu_Verbosity ival)
 Sets the verbosity of this module (0 by default=quiet).
 
virtual int Verbosity () const
 Gets the verbosity of this module.
 

Protected Member Functions

int Setup (PHCompositeNode *topNode) override
 
int Process (PHCompositeNode *topNode) override
 
int InitializeGeometry (PHCompositeNode *topNode)
 
int FindSeedsLayerSkip (double cosTheta_limit)
 
int End () override
 Called in SubsysReco::End.
 

Private Types

enum  skip_layers { on, off }
 

Private Member Functions

Acts::Vector3D getGlobalPosition (TrkrCluster *) const
 get global position for a given cluster
 
PositionMap FillTree ()
 
int FindSeedsWithMerger (const PositionMap &)
 
std::pair< std::vector
< std::unordered_set< keylink >
>, std::vector
< std::unordered_set< keylink > > > 
CreateLinks (const std::vector< coordKey > &clusters, const PositionMap &globalPositions, int mode=skip_layers::off) const
 
std::vector< std::vector
< keylink > > 
FindBiLinks (const std::vector< std::unordered_set< keylink >> &belowLinks, const std::vector< std::unordered_set< keylink >> &aboveLinks) const
 
std::vector< keylistFollowBiLinks (const std::vector< std::vector< keylink >> &bidirectionalLinks, const PositionMap &globalPositions) const
 
void QueryTree (const bgi::rtree< pointKey, bgi::quadratic< 16 >> &rtree, double phimin, double etamin, double lmin, double phimax, double etamax, double lmax, std::vector< pointKey > &returned_values) const
 
std::vector< keylistRemoveBadClusters (const std::vector< keylist > &seeds, const PositionMap &globalPositions) const
 
void publishSeeds (const std::vector< SvtxTrack_v2 > &seeds)
 

Private Attributes

ActsTransformations m_transform
 acts transformation object
 
TpcDistortionCorrection m_distortionCorrection
 tpc distortion correction utility class
 
const unsigned int _nlayers_maps
 
const unsigned int _nlayers_intt
 
const unsigned int _nlayers_tpc
 
unsigned int _start_layer
 
unsigned int _end_layer
 
unsigned int _min_nhits_per_cluster
 
unsigned int _min_clusters_per_track
 
float _neighbor_phi_width
 
float _neighbor_eta_width
 
float _max_sin_phi
 
float _cosTheta_limit
 
double _rz_outlier_threshold = 0.1
 
double _xy_outlier_threshold = 0.1
 
double _fieldDir = -1
 
bool _use_const_field = false
 
bool _use_fixed_clus_err = false
 
std::array< double, 3 > _fixed_clus_err = {.1,.1,.1}
 
ActsTrackingGeometrytGeometry {nullptr}
 acts geometry
 
ActsSurfaceMapssurfMaps {nullptr}
 acts surface map
 
TpcDistortionCorrectionContainerm_dcc = nullptr
 distortion correction container
 
std::unique_ptr< ALICEKFfitter
 
std::unique_ptr< PHTimert_seed
 
std::unique_ptr< PHTimert_fill
 
bgi::rtree< pointKey,
bgi::quadratic< 16 > > 
_rtree
 

Additional Inherited Members

- Public Types inherited from Fun4AllBase
enum  enu_Verbosity {
  VERBOSITY_QUIET = 0, VERBOSITY_SOME = 1, VERBOSITY_MORE = 2, VERBOSITY_EVEN_MORE = 3,
  VERBOSITY_A_LOT = 4, VERBOSITY_MAX = INT_MAX - 10
}
 
- Protected Attributes inherited from PHTrackSeeding
TrkrClusterContainer_cluster_map = nullptr
 
TrkrClusterHitAssoc_cluster_hit_map = nullptr
 
TrkrClusterIterationMapv1_iteration_map
 
int _n_iteration
 
SvtxVertexMap_vertex_map = nullptr
 
SvtxTrackMap_track_map = nullptr
 
AssocInfoContainer_assoc_container = nullptr
 
TrkrHitSetContainer_hitsets = nullptr
 
std::string _track_map_name = "SvtxTrackMap"
 
bool _use_truth_clusters = false
 

Detailed Description

Definition at line 57 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 57 of file PHCASeeding.h

Member Enumeration Documentation

Enumerator:
on 
off 

Definition at line 101 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 101 of file PHCASeeding.h

Constructor & Destructor Documentation

PHCASeeding::PHCASeeding ( const std::string &  name = "PHCASeeding",
unsigned int  start_layer = 7,
unsigned int  end_layer = 55,
unsigned int  min_nhits_per_cluster = 0,
unsigned int  min_clusters_per_track = 5,
const unsigned int  nlayers_maps = 3,
const unsigned int  nlayers_intt = 4,
const unsigned int  nlayers_tpc = 48,
float  neighbor_phi_width = .02,
float  neighbor_eta_width = .01,
float  maxSinPhi = 0.999,
float  cosTheta_limit = -0.8 
)

Definition at line 175 of file PHCASeeding.cc.

View newest version in sPHENIX GitHub at line 175 of file PHCASeeding.cc

PHCASeeding::~PHCASeeding ( )
inlineoverride

Definition at line 74 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 74 of file PHCASeeding.h

Member Function Documentation

std::pair< std::vector< std::unordered_set< keylink > >, std::vector< std::unordered_set< keylink > > > PHCASeeding::CreateLinks ( const std::vector< coordKey > &  clusters,
const PositionMap globalPositions,
int  mode = skip_layers::off 
) const
private

Definition at line 373 of file PHCASeeding.cc.

View newest version in sPHENIX GitHub at line 373 of file PHCASeeding.cc

References _cosTheta_limit, _end_layer, _neighbor_eta_width, _neighbor_phi_width, _nlayers_intt, _nlayers_maps, _nlayers_tpc, _rtree, _start_layer, cos(), LogDebug, QueryTree(), t_seed, Acts::Test::transform, and Fun4AllBase::Verbosity().

Referenced by FindSeedsWithMerger().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int PHCASeeding::End ( )
overrideprotectedvirtual

Called in SubsysReco::End.

Implements PHTrackSeeding.

Definition at line 814 of file PHCASeeding.cc.

View newest version in sPHENIX GitHub at line 814 of file PHCASeeding.cc

References Fun4AllReturnCodes::EVENT_OK, and Fun4AllBase::Verbosity().

+ Here is the call graph for this function:

PositionMap PHCASeeding::FillTree ( )
private

Definition at line 244 of file PHCASeeding.cc.

View newest version in sPHENIX GitHub at line 244 of file PHCASeeding.cc

References PHTrackSeeding::_cluster_map, _end_layer, PHTrackSeeding::_hitsets, PHTrackSeeding::_iteration_map, PHTrackSeeding::_n_iteration, _rtree, TrkrCluster::getClusKey(), TrkrClusterContainer::getClusters(), ActsTransformations::getGlobalPosition(), getGlobalPosition(), TrkrHitSetContainer::getHitSets(), TrkrClusterIterationMapv1::getIteration(), TrkrDefs::getLayer(), G4TTL::layer, QueryTree(), surfMaps, t_fill, tGeometry, TrkrDefs::tpcId, and Fun4AllBase::Verbosity().

Referenced by Process().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::vector< std::vector< keylink > > PHCASeeding::FindBiLinks ( const std::vector< std::unordered_set< keylink >> &  belowLinks,
const std::vector< std::unordered_set< keylink >> &  aboveLinks 
) const
private

Definition at line 593 of file PHCASeeding.cc.

View newest version in sPHENIX GitHub at line 593 of file PHCASeeding.cc

References _nlayers_intt, _nlayers_maps, _nlayers_tpc, TrkrDefs::getLayer(), G4TTL::layer, t_seed, and Fun4AllBase::Verbosity().

Referenced by FindSeedsWithMerger().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int PHCASeeding::FindSeedsLayerSkip ( double  cosTheta_limit)
protected
int PHCASeeding::FindSeedsWithMerger ( const PositionMap globalPositions)
private

Definition at line 344 of file PHCASeeding.cc.

View newest version in sPHENIX GitHub at line 344 of file PHCASeeding.cc

References _end_layer, _nlayers_tpc, _rtree, _start_layer, CreateLinks(), FindBiLinks(), fitter, FollowBiLinks(), LogDebug, M_PI, publishSeeds(), QueryTree(), RemoveBadClusters(), t_seed, and Fun4AllBase::Verbosity().

Referenced by Process().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::vector< keylist > PHCASeeding::FollowBiLinks ( const std::vector< std::vector< keylink >> &  bidirectionalLinks,
const PositionMap globalPositions 
) const
private

Definition at line 619 of file PHCASeeding.cc.

View newest version in sPHENIX GitHub at line 619 of file PHCASeeding.cc

References _nlayers_intt, _nlayers_maps, _nlayers_tpc, TrkrDefs::getLayer(), k, G4TTL::layer, LogDebug, t_seed, and Fun4AllBase::Verbosity().

Referenced by FindSeedsWithMerger().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Acts::Vector3D PHCASeeding::getGlobalPosition ( TrkrCluster cluster) const
private

get global position for a given cluster

uses ActsTransformation to convert cluster local position into global coordinates incorporates TPC distortion correction, if present

Definition at line 222 of file PHCASeeding.cc.

View newest version in sPHENIX GitHub at line 222 of file PHCASeeding.cc

References TpcDistortionCorrection::get_corrected_position(), ActsTransformations::getGlobalPosition(), m_dcc, m_distortionCorrection, m_transform, surfMaps, and tGeometry.

Referenced by FillTree().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int PHCASeeding::InitializeGeometry ( PHCompositeNode topNode)
protected

Definition at line 203 of file PHCASeeding.cc.

View newest version in sPHENIX GitHub at line 203 of file PHCASeeding.cc

References Fun4AllReturnCodes::ABORTEVENT, Fun4AllReturnCodes::EVENT_OK, PHWHERE, surfMaps, and tGeometry.

Referenced by Setup().

+ Here is the caller graph for this function:

int PHCASeeding::Process ( PHCompositeNode topNode)
overrideprotectedvirtual

process event interface for trackers, called in process_event. implemented in derived classes

Implements PHTrackSeeding.

Definition at line 316 of file PHCASeeding.cc.

View newest version in sPHENIX GitHub at line 316 of file PHCASeeding.cc

References PHTrackSeeding::_iteration_map, PHTrackSeeding::_n_iteration, _rtree, Fun4AllReturnCodes::ABORTEVENT, Fun4AllReturnCodes::EVENT_OK, FillTree(), FindSeedsWithMerger(), PHWHERE, t_seed, and Fun4AllBase::Verbosity().

+ Here is the call graph for this function:

void PHCASeeding::publishSeeds ( const std::vector< SvtxTrack_v2 > &  seeds)
private

Definition at line 779 of file PHCASeeding.cc.

View newest version in sPHENIX GitHub at line 779 of file PHCASeeding.cc

References PHTrackSeeding::_track_map, and SvtxTrackMap::insert().

Referenced by FindSeedsWithMerger().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void PHCASeeding::QueryTree ( const bgi::rtree< pointKey, bgi::quadratic< 16 >> &  rtree,
double  phimin,
double  etamin,
double  lmin,
double  phimax,
double  etamax,
double  lmax,
std::vector< pointKey > &  returned_values 
) const
private

Definition at line 235 of file PHCASeeding.cc.

View newest version in sPHENIX GitHub at line 235 of file PHCASeeding.cc

References M_PI, and phimin.

Referenced by CreateLinks(), FillTree(), and FindSeedsWithMerger().

+ Here is the caller graph for this function:

std::vector< keylist > PHCASeeding::RemoveBadClusters ( const std::vector< keylist > &  seeds,
const PositionMap globalPositions 
) const
private

Definition at line 723 of file PHCASeeding.cc.

View newest version in sPHENIX GitHub at line 723 of file PHCASeeding.cc

References _xy_outlier_threshold, fitter, Acts::IntegrationTest::R, Fun4AllBase::Verbosity(), x, and y.

Referenced by FindSeedsWithMerger().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void PHCASeeding::set_field_dir ( const double  rescale)
inline

Definition at line 80 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 80 of file PHCASeeding.h

References _fieldDir.

void PHCASeeding::setFixedClusterError ( int  i,
double  val 
)
inline

Definition at line 90 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 90 of file PHCASeeding.h

References _fixed_clus_err.

void PHCASeeding::SetLayerRange ( unsigned int  layer_low,
unsigned int  layer_up 
)
inline

Definition at line 75 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 75 of file PHCASeeding.h

References _end_layer, and _start_layer.

void PHCASeeding::SetMinClustersPerTrack ( unsigned int  minClus)
inline

Definition at line 78 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 78 of file PHCASeeding.h

References _min_clusters_per_track.

void PHCASeeding::SetMinHitsPerCluster ( unsigned int  minHits)
inline

Definition at line 77 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 77 of file PHCASeeding.h

References _min_nhits_per_cluster.

void PHCASeeding::SetSearchWindow ( float  eta_width,
float  phi_width 
)
inline

Definition at line 76 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 76 of file PHCASeeding.h

References _neighbor_eta_width, and _neighbor_phi_width.

int PHCASeeding::Setup ( PHCompositeNode topNode)
overrideprotectedvirtual

setup interface for trackers, called in InitRun, setup things like pointers to nodes. overrided in derived classes

Reimplemented from PHTrackSeeding.

Definition at line 785 of file PHCASeeding.cc.

View newest version in sPHENIX GitHub at line 785 of file PHCASeeding.cc

References PHTrackSeeding::_cluster_map, _fieldDir, _fixed_clus_err, _max_sin_phi, _min_clusters_per_track, _use_const_field, _use_fixed_clus_err, Fun4AllReturnCodes::EVENT_OK, fitter, InitializeGeometry(), m_dcc, PHTrackSeeding::Setup(), t_fill, t_seed, and Fun4AllBase::Verbosity().

+ Here is the call graph for this function:

void PHCASeeding::useConstBField ( bool  opt)
inline

Definition at line 88 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 88 of file PHCASeeding.h

References _use_const_field.

void PHCASeeding::useFixedClusterError ( bool  opt)
inline

Definition at line 89 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 89 of file PHCASeeding.h

References _use_fixed_clus_err.

Member Data Documentation

float PHCASeeding::_cosTheta_limit
private

Definition at line 142 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 142 of file PHCASeeding.h

Referenced by CreateLinks().

unsigned int PHCASeeding::_end_layer
private

Definition at line 134 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 134 of file PHCASeeding.h

Referenced by CreateLinks(), FillTree(), FindSeedsWithMerger(), and SetLayerRange().

double PHCASeeding::_fieldDir = -1
private

Definition at line 145 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 145 of file PHCASeeding.h

Referenced by set_field_dir(), and Setup().

std::array<double,3> PHCASeeding::_fixed_clus_err = {.1,.1,.1}
private

Definition at line 148 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 148 of file PHCASeeding.h

Referenced by setFixedClusterError(), and Setup().

float PHCASeeding::_max_sin_phi
private

Definition at line 141 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 141 of file PHCASeeding.h

Referenced by Setup().

unsigned int PHCASeeding::_min_clusters_per_track
private

Definition at line 136 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 136 of file PHCASeeding.h

Referenced by SetMinClustersPerTrack(), and Setup().

unsigned int PHCASeeding::_min_nhits_per_cluster
private

Definition at line 135 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 135 of file PHCASeeding.h

Referenced by SetMinHitsPerCluster().

float PHCASeeding::_neighbor_eta_width
private

Definition at line 140 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 140 of file PHCASeeding.h

Referenced by CreateLinks(), and SetSearchWindow().

float PHCASeeding::_neighbor_phi_width
private

Definition at line 139 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 139 of file PHCASeeding.h

Referenced by CreateLinks(), and SetSearchWindow().

const unsigned int PHCASeeding::_nlayers_intt
private

Definition at line 131 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 131 of file PHCASeeding.h

Referenced by CreateLinks(), FindBiLinks(), and FollowBiLinks().

const unsigned int PHCASeeding::_nlayers_maps
private

Definition at line 130 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 130 of file PHCASeeding.h

Referenced by CreateLinks(), FindBiLinks(), and FollowBiLinks().

const unsigned int PHCASeeding::_nlayers_tpc
private

Definition at line 132 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 132 of file PHCASeeding.h

Referenced by CreateLinks(), FindBiLinks(), FindSeedsWithMerger(), and FollowBiLinks().

bgi::rtree<pointKey, bgi::quadratic<16> > PHCASeeding::_rtree
private

Definition at line 163 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 163 of file PHCASeeding.h

Referenced by CreateLinks(), FillTree(), FindSeedsWithMerger(), and Process().

double PHCASeeding::_rz_outlier_threshold = 0.1
private

Definition at line 143 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 143 of file PHCASeeding.h

unsigned int PHCASeeding::_start_layer
private

Definition at line 133 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 133 of file PHCASeeding.h

Referenced by CreateLinks(), FindSeedsWithMerger(), and SetLayerRange().

bool PHCASeeding::_use_const_field = false
private

Definition at line 146 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 146 of file PHCASeeding.h

Referenced by Setup(), and useConstBField().

bool PHCASeeding::_use_fixed_clus_err = false
private

Definition at line 147 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 147 of file PHCASeeding.h

Referenced by Setup(), and useFixedClusterError().

double PHCASeeding::_xy_outlier_threshold = 0.1
private

Definition at line 144 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 144 of file PHCASeeding.h

Referenced by RemoveBadClusters().

std::unique_ptr<ALICEKF> PHCASeeding::fitter
private

Definition at line 159 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 159 of file PHCASeeding.h

Referenced by FindSeedsWithMerger(), RemoveBadClusters(), and Setup().

TpcDistortionCorrectionContainer* PHCASeeding::m_dcc = nullptr
private

distortion correction container

Definition at line 157 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 157 of file PHCASeeding.h

Referenced by getGlobalPosition(), and Setup().

TpcDistortionCorrection PHCASeeding::m_distortionCorrection
private

tpc distortion correction utility class

Definition at line 107 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 107 of file PHCASeeding.h

Referenced by getGlobalPosition().

ActsTransformations PHCASeeding::m_transform
private

acts transformation object

Definition at line 104 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 104 of file PHCASeeding.h

Referenced by getGlobalPosition().

ActsSurfaceMaps* PHCASeeding::surfMaps {nullptr}
private

acts surface map

Definition at line 154 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 154 of file PHCASeeding.h

Referenced by FillTree(), getGlobalPosition(), and InitializeGeometry().

std::unique_ptr<PHTimer> PHCASeeding::t_fill
private

Definition at line 162 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 162 of file PHCASeeding.h

Referenced by FillTree(), and Setup().

std::unique_ptr<PHTimer> PHCASeeding::t_seed
private

Definition at line 161 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 161 of file PHCASeeding.h

Referenced by CreateLinks(), FindBiLinks(), FindSeedsWithMerger(), FollowBiLinks(), Process(), and Setup().

ActsTrackingGeometry* PHCASeeding::tGeometry {nullptr}
private

acts geometry

Definition at line 151 of file PHCASeeding.h.

View newest version in sPHENIX GitHub at line 151 of file PHCASeeding.h

Referenced by FillTree(), getGlobalPosition(), and InitializeGeometry().


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