 |
Belle II Software
release-05-01-25
|
12 #include <tracking/trackFindingCDC/fitting/EFitPos.h>
13 #include <tracking/trackFindingCDC/fitting/EFitVariance.h>
15 #include <tracking/trackFindingCDC/geometry/Vector2D.h>
17 #include <tracking/trackFindingCDC/numerics/ERightLeft.h>
18 #include <tracking/trackFindingCDC/numerics/EForwardBackward.h>
28 namespace TrackFindingCDC {
29 class CDCTrajectory2D;
33 class CDCRLWireHitPair;
34 class CDCRLWireHitTriple;
38 class CDCWireHitSegment;
41 class CDCAxialSegmentPair;
45 class CDCObservations2D {
53 EFitVariance fitVariance = EFitVariance::c_Proper)
71 double driftLengthVariance)
73 return driftLength * driftLength + driftLengthVariance;
80 std::size_t
size()
const
104 void reserve(std::size_t nObservations)
110 double getX(
int iObservation)
const
116 double getY(
int iObservation)
const
146 std::size_t
fill(
double x,
double y,
double signedRadius = 0.0,
double weight = 1.0);
160 std::size_t
fill(
const Vector2D& pos2D,
double signedRadius = 0.0,
double weight = 1.0);
243 std::size_t
appendRange(
const std::vector<const CDCWire*>& wires);
253 template<
class ARange>
256 std::size_t nAppendedHits = 0;
259 for (
const auto& item : range) {
260 nAppendedHits +=
append(item);
262 return nAppendedHits;
297 EForwardBackward
isCoaligned(
const CDCTrajectory2D& trajectory2D)
const
299 return static_cast<EForwardBackward
>(sign(
getTotalPerpS(trajectory2D)));
std::size_t size() const
Returns the number of observations stored.
EForwardBackward isCoaligned(const CDCTrajectory2D &trajectory2D) const
Checks if the last observation in the vector lies at greater or lower travel distance than the last o...
Class representing a three dimensional reconstructed hit.
Class representing a sequence of three dimensional reconstructed hits.
double getX(int iObservation) const
Getter for the x value of the observation at the given index.
A two dimensional vector which is equipped with functions for correct handeling of orientation relat...
std::vector< double > m_observations
Memory for the individual observations.
void passiveMoveBy(const Vector2D &origin)
Moves all observations passively such that the given vector becomes to origin of the new coordinate s...
void clear()
Removes all observations stored.
Class representing a triple of neighboring wire hits.
A segment consisting of three dimensional reconstructed hits.
Particle trajectory as it is seen in xy projection represented as a circle.
void setFitPos(EFitPos fitPos)
Setter for the indicator that the reconstructed position should be favoured.
double getY(int iObservation) const
Getter for the y value of the observation at the given index.
double getTotalPerpS(const CDCTrajectory2D &trajectory2D) const
Calculate the total transvers travel distance traversed by these observations comparing the travel di...
void reserve(std::size_t nObservations)
Reserves enough space for nObservations.
CDCObservations2D(EFitPos fitPos=EFitPos::c_RecoPos, EFitVariance fitVariance=EFitVariance::c_Proper)
Constructor taking the flag if the reconstructed positon of the hits should be used when they are ava...
std::size_t appendRange(const CDCSegment2D &segment2D)
Appends all reconstructed hits from the two dimensional segment.
A segment consisting of two dimensional reconsturcted hits.
Class representing a two dimensional reconstructed hit in the central drift chamber.
bool empty() const
Returns true if there are no observations stored.
Class representing a pair of reconstructed axial segements in adjacent superlayer.
Abstract base class for different kinds of events.
Vector2D getBackPos2D() const
Get the postion of the first observation.
Class representing an oriented hit wire including a hypotheses whether the causing track passes left ...
EFitPos getFitPos() const
Getter for the indicator that the reconstructed position should be favoured.
void setFitVariance(EFitVariance fitVariance)
Setter for the indicator that the drift variance should be used.
ERightLeft
Enumeration to represent the distinct possibilities of the right left passage.
double getDriftLength(int iObservation) const
Getter for the signed drift radius of the observation at the given index.
Class representing a triple of neighboring oriented wire with additional trajectory information.
A pair of oriented wire hits.
double getWeight(int iObservation) const
Getter for the weight / inverse variance of the observation at the given index.
A reconstructed sequence of two dimensional hits in one super layer.
std::size_t getNObservationsWithDriftRadius() const
Returns the number of observations having a drift radius radius.
Vector2D centralize()
Picks one observation as a reference point and transform all observations to that new origin.
Vector2D getFrontPos2D() const
Get the postion of the first observation.
Class representing a hit wire in the central drift chamber.
static double getPseudoDriftLengthVariance(double driftLength, double driftLengthVariance)
Gets the pseudo variance.
std::size_t fill(double x, double y, double signedRadius=0.0, double weight=1.0)
Appends the observed position.
EFitPos m_fitPos
Indicator which positional information should preferably be extracted from hits in calls to append.
EFitVariance m_fitVariance
Indicator which variance information should preferably be extracted from hits in calls to append.
double * data()
Return the pointer to the number buffer.
Vector2D getCentralPoint() const
Extracts the observation center that is at the index in the middle.
bool isForwardTrajectory(const CDCTrajectory2D &trajectory2D) const
Checks if the last position of these observations lies at greater travel distance than the first.
std::size_t append(const CDCWireHit &wireHit, ERightLeft rlInfo=ERightLeft::c_Unknown)
Appends the hit circle at wire reference position without a right left passage hypotheses.