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

#include <coresoftware/blob/master/offline/packages/HelixHough/helix_hough/VtxTrackFinder/VtxTrackFinder.h>

+ Inheritance diagram for VtxTrackFinder:
+ Collaboration diagram for VtxTrackFinder:

Public Member Functions

 VtxTrackFinder (std::vector< float > &detrad, unsigned int n_phi, unsigned int n_d, unsigned int n_k, unsigned int n_dzdl, unsigned int n_z0, HelixResolution &min_resolution, HelixResolution &max_resolution, HelixRange &range)
 
virtual ~VtxTrackFinder ()
 
void finalize (std::vector< SimpleTrack3D > &input, std::vector< SimpleTrack3D > &output)
 
void findTracks (std::vector< SimpleHit3D > &hits, std::vector< SimpleTrack3D > &tracks)
 
void initEvent (std::vector< SimpleHit3D > &hits)
 
void setUsingVertex (bool usevtx)
 
void setLayerResolution (std::vector< float > &lxy, std::vector< float > &lz)
 
void setVertexResolution (float vxy, float vz)
 
double fitTrack (SimpleTrack3D &track, std::vector< double > &chi2_hit)
 
void setChi2Cut (double c)
 
- Public Member Functions inherited from HelixHough
 HelixHough (unsigned int n_phi, unsigned int n_d, unsigned int n_k, unsigned int n_dzdl, unsigned int n_z0, HelixResolution &min_resolution, HelixResolution &max_resolution, HelixRange &range)
 
 HelixHough (std::vector< std::vector< unsigned int > > &zoom_profile, unsigned int minzoom, HelixRange &range)
 
virtual ~HelixHough ()
 
void initHelixHough (unsigned int n_phi, unsigned int n_d, unsigned int n_k, unsigned int n_dzdl, unsigned int n_z0, HelixResolution &min_resolution, HelixResolution &max_resolution, HelixRange &range)
 
void findHelices (std::vector< SimpleHit3D > &hits, unsigned int min_hits, unsigned int max_hits, std::vector< SimpleTrack3D > &tracks, unsigned int maxtracks=0)
 
void findHelices (unsigned int min_hits, unsigned int max_hits, std::vector< SimpleTrack3D > &tracks, unsigned int maxtracks, unsigned int zoomlevel)
 
void findSeededHelices (std::vector< SimpleTrack3D > &seeds, std::vector< SimpleHit3D > &hits, unsigned int min_hits, unsigned int max_hits, std::vector< SimpleTrack3D > &tracks, unsigned int maxtracks=0)
 
void findSeededHelices_run (std::vector< SimpleTrack3D > &seeds, std::vector< SimpleHit3D > &hits, unsigned int min_hits, unsigned int max_hits, std::vector< SimpleTrack3D > &tracks, unsigned int maxtracks=0)
 
void findSeededHelices (unsigned int min_hits, unsigned int max_hits, std::vector< SimpleTrack3D > &tracks, unsigned int maxtracks, unsigned int zoomlevel)
 
void vote (unsigned int zoomlevel)
 
void setPrintTimings (bool pt)
 
virtual void findTracks (std::vector< SimpleHit3D > &, std::vector< SimpleTrack3D > &, const HelixRange &)=0
 
virtual void initEvent (std::vector< SimpleHit3D > &, unsigned int)
 
virtual void findSeededTracks (std::vector< SimpleTrack3D > &, std::vector< SimpleHit3D > &, std::vector< SimpleTrack3D > &, const HelixRange &)
 
virtual bool breakRecursion (const std::vector< SimpleHit3D > &, const HelixRange &)
 
virtual float phiError (SimpleHit3D &, float, float, float, float, float, float, float, float, bool=false)
 
virtual float dzdlError (SimpleHit3D &, float, float, float, float, float, float, float, float, bool=false)
 
virtual void initSeeding (std::vector< SimpleTrack3D > &)
 
virtual void setSeparateByHelicity (bool sbh)
 
virtual void setOnlyOneHelicity (bool ooh)
 
void setHelicity (bool hel)
 
virtual void requireLayers (unsigned int nl)
 
virtual void setBinScale (float b_scl)
 
virtual void setZBinScale (float b_scl)
 
virtual void setRemoveHits (bool rh)
 
virtual void setRangeFromSeed (HelixRange &range, SimpleTrack3D &seed)
 
virtual void setTopRange (HelixRange &tr)
 
void splitIntoBins (unsigned int min_hits, unsigned int max_hits, std::vector< HelixRange > &ranges, std::vector< std::vector< SimpleHit3D > > &split_hits, unsigned int zoomlevel)
 
virtual void clear ()
 
virtual void setStartZoom (unsigned int sz)
 
virtual void setMaxHitsPairs (unsigned int mhp)
 
void setClusterStartBin (unsigned int csb)
 
void setSeedStates (std::vector< HelixKalmanState > &states)
 
std::vector< HelixKalmanState > & getKalmanStates ()
 
void setLayersAtATime (unsigned int l)
 
void setSmoothBack (bool sb)
 
void setCullInputHits (bool cih)
 
void setIterateClustering (bool icl)
 

Private Attributes

bool using_vertex
 
std::vector< float > detector_radii
 
std::vector< float > layer_xy_resolution
 
std::vector< float > layer_z_resolution
 
double vertex_sigma_xy
 
double vertex_sigma_z
 
double chi2_cut
 
std::set< std::vector
< unsigned int > > 
combos
 

Additional Inherited Members

- Static Public Member Functions inherited from HelixHough
static void phiRange_sse (float *hit_x, float *hit_y, float *min_d, float *max_d, float *min_k, float *max_k, float *min_phi_1, float *max_phi_1, float *min_phi_2, float *max_phi_2)
 
static void phiRange_sse (float *hit_x, float *hit_y, float *min_d, float *max_d, float *min_k, float *max_k, float *min_phi, float *max_phi, float hel, __m128 &phi_3_out, __m128 &phi_4_out)
 
static void phiRange_sse (float *hit_x, float *hit_y, float *min_d, float *max_d, float *max_k, float *min_phi, float *max_phi, float hel, __m128 &phi_3, __m128 &phi_4, __m128 &phi_3_out, __m128 &phi_4_out)
 
static void dzdlRange_sse (float *x_a, float *y_a, float *z_a, float cosphi1, float sinphi1, float cosphi2, float sinphi2, float min_k, float max_k, float min_d, float max_d, float *min_z0, float *max_z0, float *min_dzdl_a, float *max_dzdl_a)
 
static void phiRange_sse (float *hit_x, float *hit_y, float *min_d, float *max_d, float *min_k, float *max_k, float *min_phi, float *max_phi, float *min_phi_2, float *max_phi_2, float hel, __m128 &phi_3_out, __m128 &phi_4_out, float *hit_x_2, float *hit_y_2, __m128 &phi_3_out_2, __m128 &phi_4_out_2)
 
static void phiRange_sse (float *hit_x, float *hit_y, float *min_d, float *max_d, float *min_k, float *max_k, float *min_phi, float *max_phi, float *min_phi_2, float *max_phi_2, float hel, __m128 &phi_3, __m128 &phi_4, __m128 &phi_3_out, __m128 &phi_4_out, float *hit_x_2, float *hit_y_2, __m128 &phi_3_2, __m128 &phi_4_2, __m128 &phi_3_out_2, __m128 &phi_4_out_2)
 
- Protected Member Functions inherited from HelixHough
void setRange (const BinEntryPair5D &bp, HelixRange &range1, HelixRange &range2, unsigned int n_phi, unsigned int n_d, unsigned int n_k, unsigned int n_dzdl, unsigned int n_z0)
 
void fillBins (unsigned int total_bins, unsigned int hit_counter, float *min_phi_a, float *max_phi_a, std::vector< SimpleHit3D > &four_hits, fastvec2d &z_bins, unsigned int n_d, unsigned int n_k, unsigned int n_dzdl, unsigned int n_z0, unsigned int d_bin, unsigned int k_bin, unsigned int n_phi, unsigned int zoomlevel, float low_phi, float high_phi, float inv_phi_range, fastvec &vote_array)
 
void makeClusters (unsigned int zoomlevel, unsigned int MAX, unsigned int n_phi, unsigned int n_d, unsigned int n_k, unsigned int n_dzdl, unsigned int n_z0, unsigned int min_hits, std::vector< ParameterCluster > &clusters, bool &use_clusters, bool &is_super_bin)
 
bool attemptClusterMerge (unsigned int zoomlevel, unsigned int MAX, unsigned int ca, unsigned int d, unsigned int r, unsigned int th, unsigned int zz0, unsigned int bin, unsigned int newbin, std::vector< unsigned char > &good_bins, unsigned int volume, float cluster_size_cut, float overlap_cut, std::vector< ParameterCluster > &clusters, unsigned int *bins_start, unsigned int *bins_end, std::vector< unsigned int > &map_clus, std::vector< unsigned char > &too_big, std::vector< unsigned int > &temp_merged, std::vector< unsigned int > &C)
 
void vote_z (unsigned int zoomlevel, unsigned int n_phi, unsigned int n_d, unsigned int n_k, unsigned int n_dzdl, unsigned int n_z0, fastvec2d &z_bins)
 
void vote_pairs (unsigned int zoomlevel)
 
void fillBins (unsigned int total_bins, unsigned int pair_counter, unsigned int *pair_index, float *min_phi, float *max_phi, float *min_d, float *max_d, float *min_dzdl, float *max_dzdl, float *min_z0, float *max_z0, std::vector< std::vector< SimpleHit3D > > &four_pairs, unsigned int n_d, unsigned int n_k, unsigned int n_dzdl, unsigned int n_z0, unsigned int k_bin, unsigned int n_phi, unsigned int zoomlevel, float low_phi, float high_phi, float low_d, float high_d, float low_z0, float high_z0, float low_dzdl, float high_dzdl, float inv_phi_range, float inv_d_range, float inv_z0_range, float inv_dzdl_range, fastvec &vote_array)
 
void findHelicesByPairsBegin (unsigned int min_hits, unsigned int max_hits, std::vector< SimpleTrack3D > &tracks, unsigned int maxtracks, unsigned int zoomlevel)
 
void findHelicesByPairs (unsigned int min_hits, unsigned int max_hits, std::vector< SimpleTrack3D > &tracks, unsigned int maxtracks, unsigned int zoomlevel)
 
- Static Protected Member Functions inherited from HelixHough
static void allButKappaRange_sse (float *x1_a, float *x2_a, float *y1_a, float *y2_a, float *z1_a, float *z2_a, float *min_k_a, float *max_k_a, float *min_phi_1_a, float *max_phi_1_a, float *min_phi_2_a, float *max_phi_2_a, float *min_d_1_a, float *max_d_1_a, float *min_d_2_a, float *max_d_2_a, float *min_dzdl_a, float *max_dzdl_a, float *min_z0_1_a, float *max_z0_1_a, float *min_z0_2_a, float *max_z0_2_a)
 
- Protected Attributes inherited from HelixHough
bool remove_hits
 
std::vector< unsigned int > * hit_used
 
std::vector< unsigned intn_phi_bins
 
std::vector< unsigned intn_d_bins
 
std::vector< unsigned intn_k_bins
 
std::vector< unsigned intn_dzdl_bins
 
std::vector< unsigned intn_z0_bins
 
std::vector< SimpleHit3D > * base_hits
 
std::vector< std::vector
< SimpleHit3D > * > 
hits_vec
 
std::vector< std::vector
< std::pair< unsigned int,
unsigned int > > * > 
pairs_vec
 
std::vector< unsigned intindex_mapping
 
std::vector< std::vector
< BinEntryPair5D > * > 
bins_vec
 vector of BinEntryPairs which list the parameter bins each hit gets voted into
 
std::vector< std::vector
< SimpleTrack3D > * > 
seeds_vec
 
HelixRange top_range
 
HelixRange current_range
 
std::vector< HelixRangezoomranges
 
std::vector< std::vector
< ParameterCluster > * > 
clusters_vec
 
std::vector< unsigned intnum_clusters
 
std::vector< unsigned intC_clus
 
std::vector< unsigned inttemp_merged_clus
 
unsigned int max_zoom
 
unsigned int min_zoom
 
bool using_vertex
 
unsigned int max_tracks
 
double vote_time
 
double xy_vote_time
 
double z_vote_time
 
double cluster_time
 
bool print_timings
 
bool separate_by_helicity
 
bool helicity
 
bool only_one_helicity
 
bool check_layers
 
unsigned int req_layers
 
float bin_scale
 
float z_bin_scale
 
unsigned int start_zoom
 
unsigned int max_hits_pairs
 
std::vector< std::pair
< unsigned int, unsigned int > > 
temp_pairs
 
std::set< unsigned intnew_hits
 
std::map< unsigned int,
unsigned int
old_to_new
 
unsigned int cluster_start_bin
 
unsigned int bins_start [1<< 12]
 
unsigned int bins_end [1<< 12]
 
unsigned int layers_at_a_time
 
std::vector< HelixKalmanStatetrack_states
 
std::vector< HelixKalmanStateseed_states
 
unsigned int n_layers
 
int layer_start
 
int layer_end
 
bool smooth_back
 
bool cull_input_hits
 
bool iterate_clustering
 

Detailed Description

Definition at line 8 of file VtxTrackFinder.h.

View newest version in sPHENIX GitHub at line 8 of file VtxTrackFinder.h

Constructor & Destructor Documentation

VtxTrackFinder::VtxTrackFinder ( std::vector< float > &  detrad,
unsigned int  n_phi,
unsigned int  n_d,
unsigned int  n_k,
unsigned int  n_dzdl,
unsigned int  n_z0,
HelixResolution min_resolution,
HelixResolution max_resolution,
HelixRange range 
)

Definition at line 54 of file VtxTrackFinder.cpp.

View newest version in sPHENIX GitHub at line 54 of file VtxTrackFinder.cpp

References detector_radii.

virtual VtxTrackFinder::~VtxTrackFinder ( )
inlinevirtual

Definition at line 12 of file VtxTrackFinder.h.

View newest version in sPHENIX GitHub at line 12 of file VtxTrackFinder.h

Member Function Documentation

void VtxTrackFinder::finalize ( std::vector< SimpleTrack3D > &  input,
std::vector< SimpleTrack3D > &  output 
)
virtual

Reimplemented from HelixHough.

Definition at line 104 of file VtxTrackFinder.cpp.

View newest version in sPHENIX GitHub at line 104 of file VtxTrackFinder.cpp

void VtxTrackFinder::findTracks ( std::vector< SimpleHit3D > &  hits,
std::vector< SimpleTrack3D > &  tracks 
)

Definition at line 63 of file VtxTrackFinder.cpp.

View newest version in sPHENIX GitHub at line 63 of file VtxTrackFinder.cpp

References chi2_cut, combos, fitTrack(), SimpleTrack3D::hits, it, and G4TTL::layer.

+ Here is the call graph for this function:

double VtxTrackFinder::fitTrack ( SimpleTrack3D track,
std::vector< double > &  chi2_hit 
)

Definition at line 114 of file VtxTrackFinder.cpp.

View newest version in sPHENIX GitHub at line 114 of file VtxTrackFinder.cpp

References SimpleTrack3D::d, D(), d, dx, dy, SimpleTrack3D::dzdl, dzdl, Acts::UnitConstants::h, SimpleTrack3D::hits, k, SimpleTrack3D::kappa, layer_xy_resolution, layer_z_resolution, SimpleTrack3D::phi, phi, r, temp1, temp2, using_vertex, v, vertex_sigma_xy, vertex_sigma_z, X, X2, y, y2, SimpleTrack3D::z0, and G4InuclParticleNames::z0.

Referenced by findTracks().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void VtxTrackFinder::initEvent ( std::vector< SimpleHit3D > &  hits)
inline

Definition at line 16 of file VtxTrackFinder.h.

View newest version in sPHENIX GitHub at line 16 of file VtxTrackFinder.h

References combos.

void VtxTrackFinder::setChi2Cut ( double  c)
inline

Definition at line 37 of file VtxTrackFinder.h.

View newest version in sPHENIX GitHub at line 37 of file VtxTrackFinder.h

References c, and chi2_cut.

void VtxTrackFinder::setLayerResolution ( std::vector< float > &  lxy,
std::vector< float > &  lz 
)
inline

Definition at line 23 of file VtxTrackFinder.h.

View newest version in sPHENIX GitHub at line 23 of file VtxTrackFinder.h

References layer_xy_resolution, and layer_z_resolution.

void VtxTrackFinder::setUsingVertex ( bool  usevtx)
inline

Definition at line 21 of file VtxTrackFinder.h.

View newest version in sPHENIX GitHub at line 21 of file VtxTrackFinder.h

References using_vertex.

void VtxTrackFinder::setVertexResolution ( float  vxy,
float  vz 
)
inline

Definition at line 29 of file VtxTrackFinder.h.

View newest version in sPHENIX GitHub at line 29 of file VtxTrackFinder.h

References vertex_sigma_xy, and vertex_sigma_z.

Member Data Documentation

double VtxTrackFinder::chi2_cut
private

Definition at line 45 of file VtxTrackFinder.h.

View newest version in sPHENIX GitHub at line 45 of file VtxTrackFinder.h

Referenced by findTracks(), and setChi2Cut().

std::set<std::vector<unsigned int> > VtxTrackFinder::combos
private

Definition at line 46 of file VtxTrackFinder.h.

View newest version in sPHENIX GitHub at line 46 of file VtxTrackFinder.h

Referenced by findTracks(), and initEvent().

std::vector<float> VtxTrackFinder::detector_radii
private

Definition at line 41 of file VtxTrackFinder.h.

View newest version in sPHENIX GitHub at line 41 of file VtxTrackFinder.h

Referenced by VtxTrackFinder().

std::vector<float> VtxTrackFinder::layer_xy_resolution
private

Definition at line 42 of file VtxTrackFinder.h.

View newest version in sPHENIX GitHub at line 42 of file VtxTrackFinder.h

Referenced by fitTrack(), and setLayerResolution().

std::vector<float> VtxTrackFinder::layer_z_resolution
private

Definition at line 43 of file VtxTrackFinder.h.

View newest version in sPHENIX GitHub at line 43 of file VtxTrackFinder.h

Referenced by fitTrack(), and setLayerResolution().

bool VtxTrackFinder::using_vertex
private

Definition at line 40 of file VtxTrackFinder.h.

View newest version in sPHENIX GitHub at line 40 of file VtxTrackFinder.h

Referenced by fitTrack(), and setUsingVertex().

double VtxTrackFinder::vertex_sigma_xy
private

Definition at line 44 of file VtxTrackFinder.h.

View newest version in sPHENIX GitHub at line 44 of file VtxTrackFinder.h

Referenced by fitTrack(), and setVertexResolution().

double VtxTrackFinder::vertex_sigma_z
private

Definition at line 44 of file VtxTrackFinder.h.

View newest version in sPHENIX GitHub at line 44 of file VtxTrackFinder.h

Referenced by fitTrack(), and setVertexResolution().


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