EIC Software
Reference for
EIC
simulation and reconstruction software on GitHub
|
Public Member Functions | |
FourHitSeedFinder (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 | ~FourHitSeedFinder () |
void | finalize (std::vector< SimpleTrack3D > &input, std::vector< SimpleTrack3D > &output) |
void | findTracks (std::vector< SimpleHit3D > &hits, std::vector< SimpleTrack3D > &tracks, const HelixRange &range) |
void | initEvent (std::vector< SimpleHit3D > &hits, unsigned int min_hits) |
void | findTracks_3_4 (std::vector< SimpleHit3D > &hits, std::vector< SimpleTrack3D > &tracks, const HelixRange &range) |
void | findTracks_6 (std::vector< SimpleHit3D > &hits, std::vector< SimpleTrack3D > &tracks, const HelixRange &range) |
void | setUsingVertex (bool usevtx) |
void | setLayerResolution (std::vector< float > &lxy, std::vector< float > &lz) |
void | setLayerMaterial (std::vector< float > &rl) |
void | setVertexResolution (float vxy, float vz) |
void | setMagField (float B) |
double | fitTrack (SimpleTrack3D &track, std::vector< double > &chi2_hit) |
double | fitTrackLine (SimpleTrack3D &track, std::vector< double > &chi2_hit) |
void | setChi2Cut (double c) |
bool | breakRecursion (const std::vector< SimpleHit3D > &hits, const HelixRange &range) |
float | phiError (SimpleHit3D &hit, float min_k, float max_k, float min_dzdl, float max_dzdl) |
float | dzdlError (SimpleHit3D &hit, float min_k, float max_k, float min_dzdl, float max_dzdl) |
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 | findSeededTracks (std::vector< SimpleTrack3D > &, std::vector< SimpleHit3D > &, std::vector< SimpleTrack3D > &, 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 |
float | Bfield |
float | Bfield_inv |
std::vector< float > | detector_radii |
std::vector< float > | detector_radii_inv |
std::vector< float > | detector_scatter |
std::vector< float > | detector_material |
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::set< std::vector < unsigned int > > | combos_3_pass |
std::set< std::vector < unsigned int > > | combos_3_fail |
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 FourHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 9 of file FourHitSeedFinder.h
FourHitSeedFinder::FourHitSeedFinder | ( | 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 15 of file FourHitSeedFinder.cpp.
View newest version in sPHENIX GitHub at line 15 of file FourHitSeedFinder.cpp
References detector_radii, and detector_radii_inv.
|
inlinevirtual |
Definition at line 13 of file FourHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 13 of file FourHitSeedFinder.h
|
virtual |
Reimplemented from HelixHough.
Definition at line 10 of file FourHitSeedFinder_breakRecursion.cpp.
View newest version in sPHENIX GitHub at line 10 of file FourHitSeedFinder_breakRecursion.cpp
float FourHitSeedFinder::dzdlError | ( | SimpleHit3D & | hit, |
float | min_k, | ||
float | max_k, | ||
float | min_dzdl, | ||
float | max_dzdl | ||
) |
Definition at line 36 of file FourHitSeedFinder_breakRecursion.cpp.
View newest version in sPHENIX GitHub at line 36 of file FourHitSeedFinder_breakRecursion.cpp
References Acts::UnitConstants::e.
|
virtual |
Reimplemented from HelixHough.
Definition at line 151 of file FourHitSeedFinder.cpp.
View newest version in sPHENIX GitHub at line 151 of file FourHitSeedFinder.cpp
References combos.
|
virtual |
Implements HelixHough.
Definition at line 25 of file FourHitSeedFinder.cpp.
View newest version in sPHENIX GitHub at line 25 of file FourHitSeedFinder.cpp
References findTracks_6().
void FourHitSeedFinder::findTracks_3_4 | ( | std::vector< SimpleHit3D > & | hits, |
std::vector< SimpleTrack3D > & | tracks, | ||
const HelixRange & | range | ||
) |
Definition at line 8 of file FourHitSeedFinder_find_3_4.cpp.
View newest version in sPHENIX GitHub at line 8 of file FourHitSeedFinder_find_3_4.cpp
References SimpleTrack3D::dzdl, dzdl, SimpleTrack3D::hits, it, k, SimpleTrack3D::kappa, HelixRange::max_dzdl, HelixRange::max_k, HelixRange::min_dzdl, and HelixRange::min_k.
void FourHitSeedFinder::findTracks_6 | ( | std::vector< SimpleHit3D > & | hits, |
std::vector< SimpleTrack3D > & | tracks, | ||
const HelixRange & | range | ||
) |
Definition at line 84 of file FourHitSeedFinder.cpp.
View newest version in sPHENIX GitHub at line 84 of file FourHitSeedFinder.cpp
References chi2_cut, combos, fitTrack(), SimpleTrack3D::hits, it, and G4TTL::layer.
Referenced by findTracks().
double FourHitSeedFinder::fitTrack | ( | SimpleTrack3D & | track, |
std::vector< double > & | chi2_hit | ||
) |
Definition at line 306 of file FourHitSeedFinder.cpp.
View newest version in sPHENIX GitHub at line 306 of file FourHitSeedFinder.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 findTracks_6().
double FourHitSeedFinder::fitTrackLine | ( | SimpleTrack3D & | track, |
std::vector< double > & | chi2_hit | ||
) |
Definition at line 162 of file FourHitSeedFinder.cpp.
View newest version in sPHENIX GitHub at line 162 of file FourHitSeedFinder.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, M_PI, SimpleTrack3D::phi, phi, temp1, using_vertex, vertex_sigma_xy, vertex_sigma_z, y, and SimpleTrack3D::z0.
|
inlinevirtual |
Reimplemented from HelixHough.
Definition at line 17 of file FourHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 17 of file FourHitSeedFinder.h
References combos, combos_3_fail, and combos_3_pass.
float FourHitSeedFinder::phiError | ( | SimpleHit3D & | hit, |
float | min_k, | ||
float | max_k, | ||
float | min_dzdl, | ||
float | max_dzdl | ||
) |
Definition at line 21 of file FourHitSeedFinder_breakRecursion.cpp.
View newest version in sPHENIX GitHub at line 21 of file FourHitSeedFinder_breakRecursion.cpp
References Acts::UnitConstants::e.
|
inline |
Definition at line 58 of file FourHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 58 of file FourHitSeedFinder.h
Referenced by main().
|
inline |
Definition at line 36 of file FourHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 36 of file FourHitSeedFinder.h
References detector_material, and detector_scatter.
|
inline |
Definition at line 29 of file FourHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 29 of file FourHitSeedFinder.h
References layer_xy_resolution, and layer_z_resolution.
Referenced by main().
|
inline |
Definition at line 53 of file FourHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 53 of file FourHitSeedFinder.h
References Bfield, and Bfield_inv.
|
inline |
Definition at line 27 of file FourHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 27 of file FourHitSeedFinder.h
References using_vertex.
Referenced by main().
|
inline |
Definition at line 46 of file FourHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 46 of file FourHitSeedFinder.h
References vertex_sigma_xy, and vertex_sigma_z.
Referenced by main().
|
private |
Definition at line 67 of file FourHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 67 of file FourHitSeedFinder.h
Referenced by setMagField().
|
private |
Definition at line 68 of file FourHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 68 of file FourHitSeedFinder.h
Referenced by setMagField().
|
private |
Definition at line 76 of file FourHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 76 of file FourHitSeedFinder.h
Referenced by findTracks_6(), and setChi2Cut().
|
private |
Definition at line 77 of file FourHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 77 of file FourHitSeedFinder.h
Referenced by finalize(), findTracks_6(), and initEvent().
|
private |
Definition at line 79 of file FourHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 79 of file FourHitSeedFinder.h
Referenced by initEvent().
|
private |
Definition at line 78 of file FourHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 78 of file FourHitSeedFinder.h
Referenced by initEvent().
|
private |
Definition at line 72 of file FourHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 72 of file FourHitSeedFinder.h
Referenced by setLayerMaterial().
|
private |
Definition at line 69 of file FourHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 69 of file FourHitSeedFinder.h
Referenced by FourHitSeedFinder().
|
private |
Definition at line 70 of file FourHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 70 of file FourHitSeedFinder.h
Referenced by FourHitSeedFinder().
|
private |
Definition at line 71 of file FourHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 71 of file FourHitSeedFinder.h
Referenced by setLayerMaterial().
|
private |
Definition at line 73 of file FourHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 73 of file FourHitSeedFinder.h
Referenced by fitTrack(), fitTrackLine(), and setLayerResolution().
|
private |
Definition at line 74 of file FourHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 74 of file FourHitSeedFinder.h
Referenced by fitTrack(), fitTrackLine(), and setLayerResolution().
|
private |
Definition at line 66 of file FourHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 66 of file FourHitSeedFinder.h
Referenced by fitTrack(), fitTrackLine(), and setUsingVertex().
|
private |
Definition at line 75 of file FourHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 75 of file FourHitSeedFinder.h
Referenced by fitTrack(), fitTrackLine(), and setVertexResolution().
|
private |
Definition at line 75 of file FourHitSeedFinder.h.
View newest version in sPHENIX GitHub at line 75 of file FourHitSeedFinder.h
Referenced by fitTrack(), fitTrackLine(), and setVertexResolution().