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

#include <fun4all_coresoftware/blob/master/offline/packages/HelixHough/helix_hough/NHitSeedFinder/NHitSeedFinder.h>

+ Inheritance diagram for NHitSeedFinder:
+ Collaboration diagram for NHitSeedFinder:

Public Member Functions

 NHitSeedFinder (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 ~NHitSeedFinder ()
 
void finalize (std::vector< SimpleTrack3D > &input, std::vector< SimpleTrack3D > &output)
 
void findTracks (std::vector< SimpleHit3D > &hits, std::vector< SimpleTrack3D > &tracks)
 
void find4Tracks (std::vector< SimpleHit3D > &hits, std::vector< SimpleTrack3D > &tracks)
 
void find5Tracks (std::vector< SimpleHit3D > &hits, std::vector< SimpleTrack3D > &tracks)
 
void find6Tracks (std::vector< SimpleHit3D > &hits, std::vector< SimpleTrack3D > &tracks)
 
void initEvent (std::vector< SimpleHit3D > &)
 
void setUsingVertex (bool usevtx)
 
void setSeedMode (int seedmode)
 
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
 
int seed_mode
 
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
 
std::map< unsigned int, float > phis
 

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 int > n_phi_bins
 
std::vector< unsigned int > n_d_bins
 
std::vector< unsigned int > n_k_bins
 
std::vector< unsigned int > n_dzdl_bins
 
std::vector< unsigned int > n_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 int > index_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 int > num_clusters
 
std::vector< unsigned int > C_clus
 
std::vector< unsigned int > temp_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 int > new_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 9 of file NHitSeedFinder.h.

View newest version in sPHENIX GitHub at line 9 of file NHitSeedFinder.h

Constructor & Destructor Documentation

NHitSeedFinder::NHitSeedFinder ( 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 11 of file NHitSeedFinder.cpp.

View newest version in sPHENIX GitHub at line 11 of file NHitSeedFinder.cpp

References detector_radii.

virtual NHitSeedFinder::~NHitSeedFinder ( )
inlinevirtual

Definition at line 13 of file NHitSeedFinder.h.

View newest version in sPHENIX GitHub at line 13 of file NHitSeedFinder.h

Member Function Documentation

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

Reimplemented from HelixHough.

Definition at line 330 of file NHitSeedFinder.cpp.

View newest version in sPHENIX GitHub at line 330 of file NHitSeedFinder.cpp

void NHitSeedFinder::find4Tracks ( std::vector< SimpleHit3D > &  hits,
std::vector< SimpleTrack3D > &  tracks 
)

Definition at line 40 of file NHitSeedFinder.cpp.

View newest version in sPHENIX GitHub at line 40 of file NHitSeedFinder.cpp

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

Referenced by findTracks().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void NHitSeedFinder::find5Tracks ( std::vector< SimpleHit3D > &  hits,
std::vector< SimpleTrack3D > &  tracks 
)

Definition at line 117 of file NHitSeedFinder.cpp.

View newest version in sPHENIX GitHub at line 117 of file NHitSeedFinder.cpp

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

Referenced by findTracks().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void NHitSeedFinder::find6Tracks ( std::vector< SimpleHit3D > &  hits,
std::vector< SimpleTrack3D > &  tracks 
)

Definition at line 212 of file NHitSeedFinder.cpp.

View newest version in sPHENIX GitHub at line 212 of file NHitSeedFinder.cpp

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

Referenced by findTracks().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 29 of file NHitSeedFinder.cpp.

View newest version in sPHENIX GitHub at line 29 of file NHitSeedFinder.cpp

References find4Tracks(), find5Tracks(), find6Tracks(), and seed_mode.

+ Here is the call graph for this function:

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

Definition at line 340 of file NHitSeedFinder.cpp.

View newest version in sPHENIX GitHub at line 340 of file NHitSeedFinder.cpp

References cos(), SimpleTrack3D::d, d, dx, dy, SimpleTrack3D::dzdl, dzdl, Acts::UnitConstants::h, SimpleTrack3D::hits, k, SimpleTrack3D::kappa, layer_xy_resolution, layer_z_resolution, SimpleTrack3D::phi, phi, Acts::UnitConstants::s, temp1, temp2, using_vertex, v, vertex_sigma_xy, vertex_sigma_z, y, and SimpleTrack3D::z0.

Referenced by find4Tracks(), find5Tracks(), and find6Tracks().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 20 of file NHitSeedFinder.h.

View newest version in sPHENIX GitHub at line 20 of file NHitSeedFinder.h

References combos, and phis.

void NHitSeedFinder::setChi2Cut ( double  c)
inline

Definition at line 44 of file NHitSeedFinder.h.

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

References c, and chi2_cut.

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

Definition at line 30 of file NHitSeedFinder.h.

View newest version in sPHENIX GitHub at line 30 of file NHitSeedFinder.h

References layer_xy_resolution, and layer_z_resolution.

void NHitSeedFinder::setSeedMode ( int  seedmode)
inline

Definition at line 28 of file NHitSeedFinder.h.

View newest version in sPHENIX GitHub at line 28 of file NHitSeedFinder.h

References seed_mode.

void NHitSeedFinder::setUsingVertex ( bool  usevtx)
inline

Definition at line 26 of file NHitSeedFinder.h.

View newest version in sPHENIX GitHub at line 26 of file NHitSeedFinder.h

References using_vertex.

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

Definition at line 36 of file NHitSeedFinder.h.

View newest version in sPHENIX GitHub at line 36 of file NHitSeedFinder.h

References vertex_sigma_xy, and vertex_sigma_z.

Member Data Documentation

double NHitSeedFinder::chi2_cut
private

Definition at line 53 of file NHitSeedFinder.h.

View newest version in sPHENIX GitHub at line 53 of file NHitSeedFinder.h

Referenced by find4Tracks(), find5Tracks(), find6Tracks(), and setChi2Cut().

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

Definition at line 54 of file NHitSeedFinder.h.

View newest version in sPHENIX GitHub at line 54 of file NHitSeedFinder.h

Referenced by find4Tracks(), find5Tracks(), find6Tracks(), and initEvent().

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

Definition at line 49 of file NHitSeedFinder.h.

View newest version in sPHENIX GitHub at line 49 of file NHitSeedFinder.h

Referenced by NHitSeedFinder().

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

Definition at line 50 of file NHitSeedFinder.h.

View newest version in sPHENIX GitHub at line 50 of file NHitSeedFinder.h

Referenced by fitTrack(), and setLayerResolution().

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

Definition at line 51 of file NHitSeedFinder.h.

View newest version in sPHENIX GitHub at line 51 of file NHitSeedFinder.h

Referenced by fitTrack(), and setLayerResolution().

std::map<unsigned int, float> NHitSeedFinder::phis
private

Definition at line 55 of file NHitSeedFinder.h.

View newest version in sPHENIX GitHub at line 55 of file NHitSeedFinder.h

Referenced by find4Tracks(), find5Tracks(), find6Tracks(), and initEvent().

int NHitSeedFinder::seed_mode
private

Definition at line 48 of file NHitSeedFinder.h.

View newest version in sPHENIX GitHub at line 48 of file NHitSeedFinder.h

Referenced by findTracks(), and setSeedMode().

bool NHitSeedFinder::using_vertex
private

Definition at line 47 of file NHitSeedFinder.h.

View newest version in sPHENIX GitHub at line 47 of file NHitSeedFinder.h

Referenced by fitTrack(), and setUsingVertex().

double NHitSeedFinder::vertex_sigma_xy
private

Definition at line 52 of file NHitSeedFinder.h.

View newest version in sPHENIX GitHub at line 52 of file NHitSeedFinder.h

Referenced by fitTrack(), and setVertexResolution().

double NHitSeedFinder::vertex_sigma_z
private

Definition at line 52 of file NHitSeedFinder.h.

View newest version in sPHENIX GitHub at line 52 of file NHitSeedFinder.h

Referenced by fitTrack(), and setVertexResolution().


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