ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
#include <coresoftware/blob/master/offline/packages/HelixHough/helix_hough/NHitSeedFinder/NHitSeedFinder.h>
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< HelixRange > | zoomranges |
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< HelixKalmanState > | track_states |
std::vector< HelixKalmanState > | seed_states |
unsigned int | n_layers |
int | layer_start |
int | layer_end |
bool | smooth_back |
bool | cull_input_hits |
bool | iterate_clustering |
Definition at line 9 of file NHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 9 of file NHitSeedFinder.h
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.
|
inlinevirtual |
Definition at line 13 of file NHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 13 of file NHitSeedFinder.h
|
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, M_PI_2, phis, x, and y.
Referenced by findTracks().
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().
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().
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.
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 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 find4Tracks(), find5Tracks(), and find6Tracks().
|
inline |
Definition at line 20 of file NHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 20 of file NHitSeedFinder.h
|
inline |
Definition at line 44 of file NHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 44 of file NHitSeedFinder.h
|
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.
Definition at line 28 of file NHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 28 of file NHitSeedFinder.h
References seed_mode.
|
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.
|
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.
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().