Belle II Software development
LowHitsAxialTrackUtil Struct Reference

Utility structure gathering heuristic functions used during the search for non-helix or low hit count tracks. More...

#include <LowHitsAxialTrackUtil.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 fromOrigin=true, bool straight=true, bool withPostprocessing=true)
 Create CDCTrack using CDCWireHit hits and store it in the list.
 
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.
 

Detailed Description

Utility structure gathering heuristic functions used during the search for non-helix or low hit count tracks.

Definition at line 24 of file LowHitsAxialTrackUtil.h.

Member Function Documentation

◆ addCandidateFromHits()

void addCandidateFromHits ( const std::vector< const CDCWireHit * > & foundAxialWireHits,
const std::vector< const CDCWireHit * > & allAxialWireHits,
std::vector< CDCTrack > & axialTracks,
bool fromOrigin = true,
bool straight = true,
bool withPostprocessing = true )
static

Create CDCTrack using CDCWireHit hits and store it in the list.

Then call the postprocessing on it if need be. Uses extra assumptions like track coming from origin

Mark hits as taken and add the new track to the track list

Masked bad hits

Definition at line 20 of file LowHitsAxialTrackUtil.cc.

26{
27 if (foundAxialWireHits.empty()) return;
28
29 // New track
30 CDCTrack track;
31
32 // Fit trajectory
33 const CDCRiemannFitter& fitter = CDCRiemannFitter::getFitter(fromOrigin, straight);
34 CDCTrajectory2D trajectory2D = fitter.fit(foundAxialWireHits);
35 track.setStartTrajectory3D(CDCTrajectory3D(trajectory2D, CDCTrajectorySZ::basicAssumption()));
36
37 // Reconstruct and add hits
38 for (const CDCWireHit* wireHit : foundAxialWireHits) {
39 AutomatonCell& automatonCell = wireHit->getAutomatonCell();
40 if (automatonCell.hasTakenFlag()) continue;
41 CDCRecoHit3D recoHit3D = CDCRecoHit3D::reconstructNearest(wireHit, trajectory2D);
42 track.push_back(std::move(recoHit3D));
43
44 automatonCell.setTakenFlag(true);
45 }
46 track.sortByArcLength2D();
47
48 // Change everything again in the postprocessing, if desired
49 bool success = withPostprocessing ? postprocessTrack(track, allAxialWireHits) : true;
50 if (success) {
52 for (const CDCRecoHit3D& recoHit3D : track) {
53 recoHit3D.getWireHit().getAutomatonCell().setTakenFlag(true);
54 }
55 axialTracks.emplace_back(std::move(track));
56 } else {
58 for (const CDCRecoHit3D& recoHit3D : track) {
59 recoHit3D.getWireHit().getAutomatonCell().setMaskedFlag(true);
60 recoHit3D.getWireHit().getAutomatonCell().setTakenFlag(false);
61 }
62 }
63}
void setTakenFlag(bool setTo=true)
Sets the taken flag to the given value. Default value true.
void setMaskedFlag(bool setTo=true)
Sets the masked flag to the given value. Default value true.
bool hasTakenFlag() const
Gets the current state of the taken marker flag.
const CDCWireHit & getWireHit() const
Getter for the wire hit.
static CDCRecoHit3D reconstructNearest(const CDCWireHit *axialWireHit, const CDCTrajectory2D &trajectory2D)
Reconstruct a three dimensional hit from a wire hit (as in reconstruct(rlWireHit, trajectory2D)),...
static const CDCRiemannFitter & getFitter()
Static getter for a general Riemann fitter.
static CDCTrajectorySZ basicAssumption()
Constructs a basic assumption, what the z0 start position and the sz slope are, including some broad ...
AutomatonCell & getAutomatonCell() const
Mutable getter for the automaton cell.
Definition CDCWireHit.h:286
static bool postprocessTrack(CDCTrack &track, const std::vector< const CDCWireHit * > &allAxialWireHits)
Perform all track postprocessing - return whether the track is considered good after the postprocessi...

◆ postprocessTrack()

bool postprocessTrack ( CDCTrack & track,
const std::vector< const CDCWireHit * > & allAxialWireHits )
static

Perform all track postprocessing - return whether the track is considered good after the postprocessing.

Definition at line 65 of file LowHitsAxialTrackUtil.cc.

67{
68 // No postprocessing yet
69 return true;
70}

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