 |
Belle II Software
release-05-01-25
|
10 #include <tracking/trackFindingCDC/filters/segmentTriple/MCSegmentTripleFilter.h>
12 #include <tracking/trackFindingCDC/mclookup/CDCMCSegment2DLookUp.h>
14 #include <tracking/trackFindingCDC/eventdata/tracks/CDCSegmentTriple.h>
15 #include <tracking/trackFindingCDC/eventdata/tracks/CDCAxialSegmentPair.h>
17 #include <tracking/trackFindingCDC/eventdata/segments/CDCSegment2D.h>
18 #include <tracking/trackFindingCDC/eventdata/trajectories/CDCTrajectory3D.h>
19 #include <tracking/trackFindingCDC/eventdata/trajectories/CDCTrajectorySZ.h>
21 #include <tracking/trackFindingCDC/filters/base/MCSymmetricFilter.icc.h>
23 #include <framework/logging/Logger.h>
26 using namespace TrackFindingCDC;
32 m_mcAxialSegmentPairFilter(allowReverse)
38 const std::string& prefix)
63 if (std::isnan(pairWeight))
return NAN;
69 if (startToMiddleFBInfo == EForwardBackward::c_Invalid)
return NAN;
72 if (middleToEndFBInfo == EForwardBackward::c_Invalid)
return NAN;
75 if (startToMiddleFBInfo != middleToEndFBInfo)
return NAN;
78 if ((startToMiddleFBInfo == EForwardBackward::c_Forward and middleToEndFBInfo == EForwardBackward::c_Forward) or
79 (
getAllowReverse() and startToMiddleFBInfo == EForwardBackward::c_Backward and middleToEndFBInfo == EForwardBackward::c_Backward)) {
84 Weight cellWeight = startSegment.size() + middleSegment.size() + endSegment.size();
85 return startToMiddleFBInfo > 0 ? cellWeight : -cellWeight;
102 if (not ptrStartSegment) {
103 B2WARNING(
"Start segment of segmentTriple is nullptr. Could not set fits.");
bool getAllowReverse() const
Getter for the allow reverse parameter.
const CDCAxialSegment2D * getStartSegment() const
Getter for the start axial segment.
void initialize() override
Initialize the before event processing.
bool isFitted() const
Indicates if the line has been fitted.
Specialisation of the lookup for the truth values of two dimensional segments.
const CDCStereoSegment2D * getMiddleSegment() const
Getter for the middle stereo segment.
void setAllowReverse(bool allowReverse) override
Setter for the allow reverse parameter.
void setTrajectory3D(const CDCTrajectory3D &trajectory3D) const
Setter for the three dimensional helix trajectory.
EForwardBackward
Enumeration to represent the distinct possibilities of the right left passage information.
void addProcessingSignalListener(ProcessingSignalListener *psl)
Register a processing signal listener to be notified.
static const CDCMCSegment2DLookUp & getInstance()
Getter for the singletone instance.
const CDCAxialSegment2D * getEndSegment() const
Getter for the end axial segment.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the set of parameters of the filter to the module parameter list.
EForwardBackward areAlignedInMCTrack(const ACDCHitCollection *ptrFromHits, const ACDCHitCollection *ptrToHits) const
Returns if the second collection of hits follows the first collection of hits in their common Monte C...
Class representing a pair of reconstructed axial segements in adjacent superlayer.
Abstract base class for different kinds of events.
Weight operator()(const CDCSegmentTriple &segmentTriple) final
Check if the segment triple is aligned in the Monte Carlo track. Signals NAN if not.
void initialize() final
Initialize the before event processing.
A reconstructed sequence of two dimensional hits in one super layer.
CDCTrajectorySZ getTrajectorySZ() const
Getter for the linear trajectory in the sz direction.
The Module parameter list class.
Particle full three dimensional trajectory.
Class representing a triple of reconstructed segements in adjacent superlayer.
MCAxialSegmentPairFilter m_mcAxialSegmentPairFilter
Instance of the cell filter to reject neighborhoods of false cells.
CDCTrajectory3D getTrajectory3D(const ACDCHitCollection *ptrHits) const
Returns the trajectory of the collection of hits.
void setTrajectoryOf(const CDCSegmentTriple &segmentTriple) const
Sets the trajectories of the segment triple from Monte Carlo information. Is executed for good segmen...
MCSegmentTripleFilter(bool allowReverse=true)
Constructor initializing the symmetry flag.