 |
Belle II Software
release-05-01-25
|
11 #include <tracking/trackFindingCDC/findlets/minimal/AxialStraightTrackCreator.h>
13 #include <mdst/dataobjects/ECLCluster.h>
14 #include <tracking/trackFindingCDC/geometry/Vector2D.h>
15 #include <tracking/trackFindingCDC/geometry/UncertainPerigeeCircle.h>
16 #include <tracking/trackFindingCDC/fitting/CDCRiemannFitter.h>
17 #include <tracking/trackFindingCDC/eventdata/trajectories/CDCTrajectorySZ.h>
18 #include <tracking/trackFindingCDC/eventdata/trajectories/CDCTrajectory2D.h>
19 #include <tracking/trackFindingCDC/eventdata/tracks/CDCTrack.h>
20 #include <tracking/trackFindingCDC/eventdata/hits/CDCWireHit.h>
22 #include <tracking/trackFindingCDC/utilities/StringManipulation.h>
24 #include <framework/core/ModuleParamList.templateDetails.h>
27 using namespace TrackFindingCDC;
33 return "A findlet looking for straight tracks between IP and reconstructed ECL clusters.";
37 const std::string& prefix)
39 moduleParamList->
addParameter(prefixed(prefix,
"minEnergy"),
41 "Parameter to define minimal threshold of ECL cluster energy.",
43 moduleParamList->
addParameter(prefixed(prefix,
"minNHits"),
45 "Parameter to define minimal threshold of track number of hits.",
47 moduleParamList->
addParameter(prefixed(prefix,
"maxDistance"),
49 "Parameter to define maximal threshold of hit distance to a line IP - ECL cluster.",
59 const std::vector<const CDCWireHit*>& axialWireHits,
60 std::vector<CDCTrack>& tracks)
62 for (
const ECLCluster* cluster : eclClusters) {
65 float phi = cluster->getPhi();
70 std::vector<const CDCWireHit*> foundHits =
search(axialWireHits, guidingTrajectory2D);
80 track.push_back(std::move(recoHit3D));
82 track.sortByArcLength2D();
83 tracks.emplace_back(std::move(track));
90 std::vector<const CDCWireHit*> foundHits;
92 const Vector2D point = hit->reconstruct2D(guidingTrajectory2D);
94 if (arc < 0)
continue;
95 float distance = guidingTrajectory2D.
getDist2D(point);
97 foundHits.push_back(hit);
Class representing a three dimensional reconstructed hit.
Class implementing the Riemann fit for two dimensional trajectory circle.
Class representing a sequence of three dimensional reconstructed hits.
A two dimensional vector which is equipped with functions for correct handeling of orientation relat...
double setLocalOrigin(const Vector2D &localOrigin)
Setter for the origin of the local coordinate system.
static CDCTrajectorySZ basicAssumption()
Constucts a basic assumption, what the z0 start position and the sz slope are, including some broad v...
@ c_nPhotons
CR is split into n photons (N1)
void apply(const std::vector< const ECLCluster * > &eclClusters, const std::vector< const CDCWireHit * > &axialWireHits, std::vector< CDCTrack > &tracks) final
Execute one pass over given clusters and wirehits and create tracks.
Particle trajectory as it is seen in xy projection represented as a circle.
void initialize() override
Receive and dispatch signal before the start of the event processing.
static CDCRecoHit3D reconstructNearest(const CDCWireHit *axialWireHit, const CDCTrajectory2D &trajectory2D)
Reconstruct a three dimensional hit from a wire hit (as in reconstruct(rlWireHit, trajectory2D)),...
std::string getDescription() final
Short description of the findlet.
static Vector2D Phi(const double phi)
Constucts a unit vector with azimuth angle equal to phi.
Adds an uncertainty matrix to the circle in perigee parameterisation.
void addParameter(const std::string &name, T ¶mVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module list.
Abstract base class for different kinds of events.
float m_param_minEnergy
ECL cluster energy threshold.
std::vector< const CDCWireHit * > search(const std::vector< const CDCWireHit * > &axialWireHits, const CDCTrajectory2D &guidingTrajectory2D)
Search for hits compatible with given trajectory.
unsigned int m_param_minNHits
Track number of hits threshold.
void initialize() final
Initialisation before the event processing starts.
float m_param_maxDistance
Maximum distance from hits to the track.
static const CDCRiemannFitter & getFitter()
Static getter for a general Riemann fitter.
AxialStraightTrackCreator()
Constructor.
double getDist2D(const Vector2D &point) const
Calculates the distance from the point to the trajectory as seen from the xy projection.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
Class representing a hit wire in the central drift chamber.
The Module parameter list class.
double calcArcLength2D(const Vector2D &point) const
Calculate the travel distance from the start position of the trajectory.
Particle full three dimensional trajectory.