Belle II Software development
|
Utility structure gathering heuristic functions used during the axial track finding. More...
#include <AxialTrackUtil.h>
Static Public Member Functions | |
static void | addCandidateFromHits (const std::vector< const CDCWireHit * > &foundAxialWireHits, const std::vector< const CDCWireHit * > &allAxialWireHits, std::vector< CDCTrack > &axialTracks, bool withPostprocessing=true) |
Create CDCTrack using CDCWireHit hits and store it in the list. Then call the postprocessing on it. | |
static bool | postprocessTrack (CDCTrack &track, const std::vector< const CDCWireHit * > &allAxialWireHits) |
Perform all track postprocessing - return whether the track is considered good after the postprocessing. | |
static void | normalizeTrack (CDCTrack &track) |
Refit and resort the track. Unmask all hits. | |
static void | updateRecoHit3D (const CDCTrajectory2D &trajectory2D, CDCRecoHit3D &hit) |
update given CDCRecoHit3D with given trajectory | |
static void | deleteHitsFarAwayFromTrajectory (CDCTrack &track, double maximumDistance=0.2) |
Postprocessing: Delete axial hits that do not "match" to the given track. | |
static void | assignNewHitsToTrack (CDCTrack &track, const std::vector< const CDCWireHit * > &allAxialWireHits, double minimalDistance=0.2) |
Assign new hits to the track basing on the distance from the hit to the track. | |
static std::vector< CDCRecoHit3D > | splitBack2BackTrack (CDCTrack &track) |
Tries to split back-to-back tracks into two different tracks. | |
static bool | isBack2BackTrack (CDCTrack &track) |
Checks whether the track has hits on both arms as seen from the origin. | |
static ESign | getMajorArmSign (const CDCTrack &track, const Vector2D ¢er) |
Calculate whether the majority of hits is to the right or to the left relative to the line from origin to given center. | |
static int | getArmSignVote (const CDCTrack &track, const Vector2D ¢er) |
Calculate the sum of right and left votes for the hits relative to the center. | |
static void | removeHitsAfterSuperLayerBreak (CDCTrack &track) |
Searches for a break in the super layer chain and remove all hits that come after that. | |
static ESign | getArmSign (const CDCRecoHit3D &hit, const Vector2D ¢er) |
Calculate whether the hits is to the right or to the left relative to the line from origin to the given center. | |
static void | deleteTracksWithLowFitProbability (std::vector< CDCTrack > &axialTracks, double minimal_probability_for_good_fit=0.4) |
Check an (improper) p-values of the tracks. If they are below the given value, delete the track from the list. | |
static void | deleteShortTracks (std::vector< CDCTrack > &axialTracks, double minimal_size=5) |
Remove tracks that are shorter than the given number of hits. | |
Static Private Member Functions | |
static bool | checkTrackQuality (const CDCTrack &track) |
Check track quality – currently based on number of hits only. | |
static std::vector< ISuperLayer > | getSLayerHoles (const std::array< int, ISuperLayerUtil::c_N > &nHitsBySLayer) |
Helper function getting the empty axial! super layers that appear in the chain of super layers that is supposed to be occupied. | |
static ISuperLayer | getFirstOccupiedISuperLayer (const std::array< int, ISuperLayerUtil::c_N > &nHitsBySLayer) |
Helper function to extract the first filled entry in the array of super layers ( = the start superlayer of the track). | |
static ISuperLayer | getLastOccupiedISuperLayer (const std::array< int, ISuperLayerUtil::c_N > &nHitsBySLayer) |
Helper function to extract the last filled entry in the array of super layers ( = the final superlayer of the track). | |
Utility structure gathering heuristic functions used during the axial track finding.
Definition at line 32 of file AxialTrackUtil.h.
|
static |
Create CDCTrack using CDCWireHit hits and store it in the list. Then call the postprocessing on it.
Mark hits as taken and add the new track to the track list
Masked bad hits
Definition at line 24 of file AxialTrackUtil.cc.
|
static |
Assign new hits to the track basing on the distance from the hit to the track.
Definition at line 175 of file AxialTrackUtil.cc.
|
staticprivate |
Check track quality – currently based on number of hits only.
Definition at line 88 of file AxialTrackUtil.cc.
|
static |
Postprocessing: Delete axial hits that do not "match" to the given track.
This is done by checking the distance between the hits and the trajectory, which should not exceed the maximum_distance parameter.
As this function used the masked flag, all hits should have their masked flag set to false before calling this function.
Definition at line 140 of file AxialTrackUtil.cc.
|
static |
Remove tracks that are shorter than the given number of hits.
Definition at line 196 of file AxialTrackUtil.cc.
|
static |
Check an (improper) p-values of the tracks. If they are below the given value, delete the track from the list.
Definition at line 157 of file AxialTrackUtil.cc.
|
static |
Calculate whether the hits is to the right or to the left relative to the line from origin to the given center.
ESign::c_Right | hit is on the right |
ESign::c_Left | hit is on the left |
ESign::c_Zero | rare boarderline case |
ESign::c_Invalid | given hit has a nan value |
Definition at line 281 of file AxialTrackUtil.cc.
Calculate the sum of right and left votes for the hits relative to the center.
Positive indicates a majority of right by that amount. Negative indicates a left majority.
Definition at line 256 of file AxialTrackUtil.cc.
|
staticprivate |
Helper function to extract the first filled entry in the array of super layers ( = the start superlayer of the track).
Definition at line 357 of file AxialTrackUtil.cc.
|
staticprivate |
Helper function to extract the last filled entry in the array of super layers ( = the final superlayer of the track).
Definition at line 365 of file AxialTrackUtil.cc.
Calculate whether the majority of hits is to the right or to the left relative to the line from origin to given center.
ESign::c_Right | most hits are on the right |
ESign::c_Left | most hits are on the left |
ESign::c_Zero | no majority |
ESign::c_Invalid | given center has a nan value |
Definition at line 246 of file AxialTrackUtil.cc.
|
staticprivate |
Helper function getting the empty axial! super layers that appear in the chain of super layers that is supposed to be occupied.
Definition at line 337 of file AxialTrackUtil.cc.
|
static |
Checks whether the track has hits on both arms as seen from the origin.
Definition at line 236 of file AxialTrackUtil.cc.
|
static |
Refit and resort the track. Unmask all hits.
Definition at line 93 of file AxialTrackUtil.cc.
|
static |
Perform all track postprocessing - return whether the track is considered good after the postprocessing.
Definition at line 67 of file AxialTrackUtil.cc.
|
static |
Searches for a break in the super layer chain and remove all hits that come after that.
Definition at line 286 of file AxialTrackUtil.cc.
|
static |
Tries to split back-to-back tracks into two different tracks.
Definition at line 209 of file AxialTrackUtil.cc.
|
static |
update given CDCRecoHit3D with given trajectory
Definition at line 128 of file AxialTrackUtil.cc.