8#include <tracking/trackFindingCDC/processing/LowHitsAxialTrackUtil.h>
10#include <tracking/trackingUtilities/eventdata/tracks/CDCTrack.h>
11#include <tracking/trackingUtilities/eventdata/hits/CDCWireHit.h>
13#include <tracking/trackFindingCDC/fitting/CDCRiemannFitter.h>
14#include <tracking/trackingUtilities/eventdata/trajectories/CDCTrajectorySZ.h>
15#include <tracking/trackingUtilities/eventdata/trajectories/CDCTrajectory2D.h>
18using namespace TrackFindingCDC;
19using namespace TrackingUtilities;
22 const std::vector<const CDCWireHit*>& allAxialWireHits,
23 std::vector<CDCTrack>& axialTracks,
26 bool withPostprocessing)
28 if (foundAxialWireHits.empty())
return;
39 for (
const CDCWireHit* wireHit : foundAxialWireHits) {
43 track.push_back(std::move(recoHit3D));
47 track.sortByArcLength2D();
50 bool success = withPostprocessing ?
postprocessTrack(track, allAxialWireHits) :
true;
54 recoHit3D.getWireHit().getAutomatonCell().setTakenFlag(
true);
56 axialTracks.emplace_back(std::move(track));
60 recoHit3D.getWireHit().getAutomatonCell().setMaskedFlag(
true);
61 recoHit3D.getWireHit().getAutomatonCell().setTakenFlag(
false);
67 std::vector<const CDCWireHit*>& allAxialWireHits)
Class implementing the Riemann fit for two dimensional trajectory circle.
static const CDCRiemannFitter & getFitter()
Static getter for a general Riemann fitter.
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 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 TrackingUtilities::CDCWireHit * > &foundAxialWireHits, const std::vector< const TrackingUtilities::CDCWireHit * > &allAxialWireHits, std::vector< TrackingUtilities::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(TrackingUtilities::CDCTrack &track, const std::vector< const TrackingUtilities::CDCWireHit * > &allAxialWireHits)
Perform all track postprocessing - return whether the track is considered good after the postprocessi...