8#include <tracking/trackFindingCDC/processing/LowHitsAxialTrackUtil.h>
10#include <tracking/trackFindingCDC/eventdata/tracks/CDCTrack.h>
11#include <tracking/trackFindingCDC/eventdata/hits/CDCWireHit.h>
13#include <tracking/trackFindingCDC/fitting/CDCRiemannFitter.h>
14#include <tracking/trackFindingCDC/eventdata/trajectories/CDCTrajectorySZ.h>
15#include <tracking/trackFindingCDC/eventdata/trajectories/CDCTrajectory2D.h>
18using namespace TrackFindingCDC;
21 const std::vector<const CDCWireHit*>& allAxialWireHits,
22 std::vector<CDCTrack>& axialTracks,
25 bool withPostprocessing)
27 if (foundAxialWireHits.empty())
return;
38 for (
const CDCWireHit* wireHit : foundAxialWireHits) {
42 track.push_back(std::move(recoHit3D));
46 track.sortByArcLength2D();
49 bool success = withPostprocessing ?
postprocessTrack(track, allAxialWireHits) :
true;
53 recoHit3D.getWireHit().getAutomatonCell().setTakenFlag(
true);
55 axialTracks.emplace_back(std::move(track));
59 recoHit3D.getWireHit().getAutomatonCell().setMaskedFlag(
true);
60 recoHit3D.getWireHit().getAutomatonCell().setTakenFlag(
false);
66 std::vector<const CDCWireHit*>& allAxialWireHits)
Cell used by the cellular automata.
void setTakenFlag(bool setTo=true)
Sets the taken flag to the given value. Default value true.
bool hasTakenFlag() const
Gets the current state of the taken marker flag.
Class representing a three dimensional reconstructed hit.
static CDCRecoHit3D reconstructNearest(const CDCWireHit *axialWireHit, const CDCTrajectory2D &trajectory2D)
Reconstruct a three dimensional hit from a wire hit (as in reconstruct(rlWireHit, trajectory2D)),...
Class implementing the Riemann fit for two dimensional trajectory circle.
static const CDCRiemannFitter & getFitter()
Static getter for a general Riemann fitter.
Class representing a sequence of three dimensional reconstructed hits.
Particle trajectory as it is seen in xy projection represented as a circle.
Particle full three dimensional trajectory.
static CDCTrajectorySZ basicAssumption()
Constructs a basic assumption, what the z0 start position and the sz slope are, including some broad ...
Class representing a hit wire in the central drift chamber.
Abstract base class for different kinds of events.
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 postprocessi...