Belle II Software development
FeasibleRLFacetFilter Class Reference

Filter for the construction of good facets investigating the feasibility of the right left passage hypotheses combination. More...

#include <FeasibleRLFacetFilter.h>

Inheritance diagram for FeasibleRLFacetFilter:
Filter< const TrackingUtilities::CDCFacet > CompositeProcessingSignalListener ProcessingSignalListener

Public Types

using Object
 Type of the object to be analysed.
 
using Object
 Type of the object to be analysed.
 
using Interface
 Mark this class as the basic interface.
 
using Interface
 Mark this class as the basic interface.
 

Public Member Functions

 FeasibleRLFacetFilter (bool hardRLCut=true)
 Constructor taking a flag if borderline feasible cases should be excluded.
 
void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) final
 Expose the set of parameters of the filter to the module parameter list.
 
TrackingUtilities::Weight operator() (const TrackingUtilities::CDCFacet &facet) final
 Main filter method returning the weight of the facet.
 
bool isFeasible (const TrackingUtilities::CDCRLWireHitTriple::Shape &shape, TrackingUtilities::ERightLeft startRLInfo, TrackingUtilities::ERightLeft middleRLInfo, TrackingUtilities::ERightLeft endRLInfo) const
 Check if the given shape and right left passage information is a feasible combination.
 
void setHardRLCut (bool hardRLCut)
 Setter for the flag that the borderline cases should be excluded.
 
bool getHardRLCut () const
 Getter for the flag that the borderline cases should be excluded.
 
virtual bool needsTruthInformation ()
 Indicates if the filter requires Monte Carlo information.
 
virtual bool needsTruthInformation ()
 Indicates if the filter requires Monte Carlo information.
 
Weight operator() (const Object *obj)
 Function to evaluate the object.
 
virtual std::vector< float > operator() (const std::vector< Object * > &objs)
 Function to evaluate a vector of objects Base implementation applies the function to each object.
 
virtual Weight operator() (const Object &obj)
 Function to evaluate the object.
 
Weight operator() (const Object *obj)
 Function to evaluate the object.
 
virtual std::vector< float > operator() (const std::vector< Object * > &objs)
 Function to evaluate a vector of objects Base implementation applies the function to each object.
 
void initialize () override
 Receive and dispatch signal before the start of the event processing.
 
void initialize () override
 Receive and dispatch signal before the start of the event processing.
 
void beginRun () override
 Receive and dispatch signal for the beginning of a new run.
 
void beginRun () override
 Receive and dispatch signal for the beginning of a new run.
 
void beginEvent () override
 Receive and dispatch signal for the start of a new event.
 
void beginEvent () override
 Receive and dispatch signal for the start of a new event.
 
void endRun () override
 Receive and dispatch signal for the end of the run.
 
void endRun () override
 Receive and dispatch signal for the end of the run.
 
void terminate () override
 Receive and dispatch Signal for termination of the event processing.
 
void terminate () override
 Receive and dispatch Signal for termination of the event processing.
 

Protected Member Functions

void addProcessingSignalListener (ProcessingSignalListener *psl)
 Register a processing signal listener to be notified.
 
void addProcessingSignalListener (ProcessingSignalListener *psl)
 Register a processing signal listener to be notified.
 
int getNProcessingSignalListener ()
 Get the number of currently registered listeners.
 
int getNProcessingSignalListener ()
 Get the number of currently registered listeners.
 

Private Types

using Super = BaseFacetFilter
 Type of the super class.
 

Private Member Functions

bool isFeasible (const TrackingUtilities::CDCRLWireHitTriple &rlWireHitTriple) const
 Check if the hit triplet is a feasible combination for shape and rl passage information.
 

Private Attributes

bool m_param_hardRLCut = true
 Switch for hard selection.
 
std::vector< ProcessingSignalListener * > m_subordinaryProcessingSignalListeners
 References to subordinary signal processing listener contained in this findlet.
 
std::vector< ProcessingSignalListener * > m_subordinaryProcessingSignalListeners
 References to subordinary signal processing listener contained in this findlet.
 
bool m_initialized = false
 Flag to keep track whether initialization happened before.
 
bool m_initialized
 Flag to keep track whether initialization happened before.
 
bool m_terminated = false
 Flag to keep track whether termination happened before.
 
bool m_terminated
 Flag to keep track whether termination happened before.
 
std::string m_initializedAs
 Name of the type during initialisation.
 
std::string m_initializedAs
 Name of the type during initialisation.
 

Detailed Description

Filter for the construction of good facets investigating the feasibility of the right left passage hypotheses combination.

If the given combination cannot be made by a track reject it.

Definition at line 33 of file FeasibleRLFacetFilter.h.

Member Typedef Documentation

◆ Interface [1/2]

using Interface
inherited

Mark this class as the basic interface.

Definition at line 38 of file Filter.dcl.h.

◆ Interface [2/2]

using Interface
inherited

Mark this class as the basic interface.

Definition at line 38 of file Filter.dcl.h.

◆ Object [1/2]

using Object
inherited

Type of the object to be analysed.

Definition at line 35 of file Filter.dcl.h.

◆ Object [2/2]

using Object
inherited

Type of the object to be analysed.

Definition at line 35 of file Filter.dcl.h.

◆ Super

using Super = BaseFacetFilter
private

Type of the super class.

Definition at line 37 of file FeasibleRLFacetFilter.h.

Constructor & Destructor Documentation

◆ FeasibleRLFacetFilter()

FeasibleRLFacetFilter ( bool hardRLCut = true)
explicit

Constructor taking a flag if borderline feasible cases should be excluded.

Definition at line 23 of file FeasibleRLFacetFilter.cc.

24 : m_param_hardRLCut(hardRLCut)
25{
26}

Member Function Documentation

◆ addProcessingSignalListener() [1/2]

void addProcessingSignalListener ( ProcessingSignalListener * psl)
protectedinherited

Register a processing signal listener to be notified.

Definition at line 55 of file CompositeProcessingSignalListener.cc.

56{
58}
std::vector< ProcessingSignalListener * > m_subordinaryProcessingSignalListeners
References to subordinary signal processing listener contained in this findlet.

◆ addProcessingSignalListener() [2/2]

void addProcessingSignalListener ( ProcessingSignalListener * psl)
protectedinherited

Register a processing signal listener to be notified.

Definition at line 53 of file CompositeProcessingSignalListener.cc.

56{
58}
This class is used to select pairs, triplets... of objects.
Definition Filter.h:34

◆ beginEvent() [1/2]

void beginEvent ( )
overridevirtualinherited

Receive and dispatch signal for the start of a new event.

Reimplemented from ProcessingSignalListener.

Reimplemented in DATCONFPGAFindlet, SpacePointTagger< AResult, ACluster >, SpacePointTagger< Belle2::CKFToPXDResult, Belle2::PXDCluster >, SpacePointTagger< Belle2::CKFToSVDResult, Belle2::SVDCluster >, MCSymmetric< BaseAxialSegmentPairFilter >, MCSymmetric< BaseAxialSegmentPairFilter >, MCSymmetric< BaseFacetFilter >, MCSymmetric< BaseFacetFilter >, MCSymmetric< BaseFacetRelationFilter >, MCSymmetric< BaseFacetRelationFilter >, MCSymmetric< BaseSegmentPairFilter >, MCSymmetric< BaseSegmentPairFilter >, MCSymmetric< BaseSegmentPairRelationFilter >, MCSymmetric< BaseSegmentPairRelationFilter >, MCSymmetric< BaseSegmentRelationFilter >, MCSymmetric< BaseSegmentRelationFilter >, MCSymmetric< BaseSegmentTripleFilter >, MCSymmetric< BaseSegmentTripleFilter >, MCSymmetric< BaseSegmentTripleRelationFilter >, MCSymmetric< BaseSegmentTripleRelationFilter >, MCSymmetric< BaseTrackRelationFilter >, MCSymmetric< BaseTrackRelationFilter >, MonopoleStereoHitFinder, MonopoleStereoHitFinderQuadratic, SegmentCreatorMCTruth, SegmentFinderFacetAutomaton, SegmentTrackCombiner, SegmentTrackTruthVarSet, StereoHitFinder, StereoHitTruthVarSet, TrackFinderAutomaton, TrackFinderSegmentPairAutomaton, TrackFinderSegmentTripleAutomaton, TruthAxialSegmentPairVarSet, TruthSegmentVarSet, TruthTrackVarSet, WireHitMCMultiLoopBlocker, FindletStoreArrayInput< TWrappedFindlet >, SharingHitsMatcher< ACollectorItem, ACollectionItem >, SharingHitsMatcher< Belle2::TrackingUtilities::CDCTrack, Belle2::TrackingUtilities::CDCSegment2D >, StoreVectorSwapper< IOType, a_alwaysWrite >, StoreVectorSwapper< Belle2::TrackingUtilities::CDCFacet >, StoreVectorSwapper< Belle2::TrackingUtilities::CDCSegment2D >, StoreVectorSwapper< Belle2::TrackingUtilities::CDCSegmentPair >, StoreVectorSwapper< Belle2::TrackingUtilities::CDCSegmentTriple >, StoreVectorSwapper< Belle2::TrackingUtilities::CDCTrack >, StoreVectorSwapper< Belle2::TrackingUtilities::CDCWireHit, true >, RecoTrackStorer, ROIFinder, and SVDHoughTracking.

Definition at line 31 of file CompositeProcessingSignalListener.cc.

32{
35 psl->beginEvent();
36 }
37}
virtual void beginEvent()
Receive signal for the start of a new event.
ProcessingSignalListener()
Allow default construction.

◆ beginEvent() [2/2]

void beginEvent ( )
overrideinherited

Receive and dispatch signal for the start of a new event.

Definition at line 36 of file CompositeProcessingSignalListener.cc.

32{
35 psl->beginEvent();
36 }
37}

◆ beginRun() [1/2]

void beginRun ( )
overridevirtualinherited

Receive and dispatch signal for the beginning of a new run.

Reimplemented from ProcessingSignalListener.

Reimplemented in DATCONSVDClusterizer, LayerPXDRelationFilter< AFilter, APrefilter >, LayerPXDRelationFilter< TrackingUtilities::ChooseableFilter< PXDPairFilterFactory > >, LayerPXDRelationFilter< TrackingUtilities::ChooseableFilter< PXDPairFilterFactory > >, LayerSVDRelationFilter< AFilter, APrefilter >, LayerSVDRelationFilter< TrackingUtilities::ChooseableFilter< SVDPairFilterFactory > >, LayerSVDRelationFilter< TrackingUtilities::ChooseableFilter< SVDPairFilterFactory > >, SectorMapBasedSVDPairFilter, SimplePXDStateFilter, SimpleSVDStateFilter, CutsFromDBWireHitFilter, WireHitCreator, MVA< Filter< AVarSet::Object > >, MVA< Filter< Belle2::TrackFindingCDC::CDCWireHitVarSet::Object > >, MVA< Filter< typename AVarSet::Object > >, MVA< Filter< typename AVarSet::Object > >, FourHitFilter, LayerRelationFilter< AFilter >, LayerRelationFilter< TrackingUtilities::ChooseableFilter< RelationFilterFactory > >, LayerRelationFilter< TrackingUtilities::ChooseableFilter< RelationFilterFactory > >, QualityIndicatorFilter, RawTrackCandCleaner< AHit >, RawTrackCandCleaner< Belle2::vxdHoughTracking::VXDHoughState >, RecoTrackStorer, ROIFinder, SpacePointLoaderAndPreparer, ThreeHitFilter, TrackCandidateOverlapResolver, TrackCandidateResultRefiner, TwoHitVirtualIPFilter, and TwoHitVirtualIPQIFilter.

Definition at line 23 of file CompositeProcessingSignalListener.cc.

24{
27 psl->beginRun();
28 }
29}
virtual void beginRun()
Receive signal for the beginning of a new run.

◆ beginRun() [2/2]

void beginRun ( )
overrideinherited

Receive and dispatch signal for the beginning of a new run.

Definition at line 33 of file CompositeProcessingSignalListener.cc.

◆ endRun() [1/2]

void endRun ( )
overridevirtualinherited

Receive and dispatch signal for the end of the run.

Reimplemented from ProcessingSignalListener.

Definition at line 39 of file CompositeProcessingSignalListener.cc.

40{
42 psl->endRun();
43 }
45}
virtual void endRun()
Receive signal for the end of the run.

◆ endRun() [2/2]

void endRun ( )
overrideinherited

Receive and dispatch signal for the end of the run.

Definition at line 39 of file CompositeProcessingSignalListener.cc.

◆ exposeParameters()

void exposeParameters ( ModuleParamList * moduleParamList,
const std::string & prefix )
finalvirtual

Expose the set of parameters of the filter to the module parameter list.

Reimplemented from CompositeProcessingSignalListener.

Definition at line 28 of file FeasibleRLFacetFilter.cc.

30{
31 Super::exposeParameters(moduleParamList, prefix);
32 moduleParamList->addParameter(prefixed(prefix, "hardRLCut"),
34 "Switch to disallow the boarderline possible hit and "
35 "right left passage information.",
37}
virtual void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix)
void addParameter(const std::string &name, T &paramVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module list.

◆ getHardRLCut()

bool getHardRLCut ( ) const
inline

Getter for the flag that the borderline cases should be excluded.

Definition at line 73 of file FeasibleRLFacetFilter.h.

74 {
75 return m_param_hardRLCut;
76 }

◆ getNProcessingSignalListener() [1/2]

int getNProcessingSignalListener ( )
protectedinherited

Get the number of currently registered listeners.

Definition at line 60 of file CompositeProcessingSignalListener.cc.

61{
63}

◆ getNProcessingSignalListener() [2/2]

int getNProcessingSignalListener ( )
protectedinherited

Get the number of currently registered listeners.

Definition at line 56 of file CompositeProcessingSignalListener.cc.

61{
63}

◆ initialize() [1/2]

void initialize ( )
overridevirtualinherited

Receive and dispatch signal before the start of the event processing.

Reimplemented from ProcessingSignalListener.

Reimplemented in CosmicsTrackMergerFindlet, DATCONSVDClusterizer, DATCONSVDClusterLoaderAndPreparer, FastInterceptFinder2DFPGA, HitBasedT0Extractor, LayerPXDRelationFilter< AFilter, APrefilter >, LayerPXDRelationFilter< TrackingUtilities::ChooseableFilter< PXDPairFilterFactory > >, LayerPXDRelationFilter< TrackingUtilities::ChooseableFilter< PXDPairFilterFactory > >, NonIPCrossingStateFilter< AllPXDStateFilter >, NonIPCrossingStateFilter< AllPXDStateFilter >, NonIPCrossingStateFilter< AllSVDStateFilter >, NonIPCrossingStateFilter< AllSVDStateFilter >, PXDResultVarSet, RelationApplier, RelationFromSVDTracksCreator, ResultStorer< AResult >, ResultStorer< Belle2::CKFToPXDResult >, ResultStorer< Belle2::CKFToSVDResult >, ROICalculator, StoreArrayMerger, SVDResultVarSet, SVDShaperDigitConverter, ToPXDExtrapolator, CutsFromDBWireHitFilter, HitReclaimer, MCFacetRelationFilter, MCSegmentPairRelationFilter, MCSegmentTripleFilter, MCSegmentTripleRelationFilter, MCSymmetric< BaseAxialSegmentPairFilter >, MCSymmetric< BaseAxialSegmentPairFilter >, MCSymmetric< BaseFacetFilter >, MCSymmetric< BaseFacetFilter >, MCSymmetric< BaseFacetRelationFilter >, MCSymmetric< BaseFacetRelationFilter >, MCSymmetric< BaseSegmentPairFilter >, MCSymmetric< BaseSegmentPairFilter >, MCSymmetric< BaseSegmentPairRelationFilter >, MCSymmetric< BaseSegmentPairRelationFilter >, MCSymmetric< BaseSegmentRelationFilter >, MCSymmetric< BaseSegmentRelationFilter >, MCSymmetric< BaseSegmentTripleFilter >, MCSymmetric< BaseSegmentTripleFilter >, MCSymmetric< BaseSegmentTripleRelationFilter >, MCSymmetric< BaseSegmentTripleRelationFilter >, MCSymmetric< BaseTrackRelationFilter >, MCSymmetric< BaseTrackRelationFilter >, SegmentAliasResolver, SegmentCreatorMCTruth, SegmentFitter, SegmentOrienter, SegmentTrackTruthVarSet, StereoHitTrackQuadTreeMatcher< AQuadTree >, StereoHitTrackQuadTreeMatcher< Belle2::TrackFindingCDC::HyperHough< std::pair< TrackingUtilities::CDCRecoHit3D, const TrackingUtilities::CDCRLWireHit * >, FirstOfPairInBox< HitInHyperBox >, 4, 3, 2 > >, StereoHitTrackQuadTreeMatcher< Belle2::TrackFindingCDC::QuadraticLegendre< std::pair< TrackingUtilities::CDCRecoHit3D, const TrackingUtilities::CDCRLWireHit * >, FirstOfPairInBox< HitInQuadraticBox >, 2, 2 > >, StereoHitTrackQuadTreeMatcher< Belle2::TrackFindingCDC::Z0TanLambdaLegendre< std::pair< TrackingUtilities::CDCRecoHit3D, const TrackingUtilities::CDCRLWireHit * >, FirstOfPairInBox< HitInZ0TanLambdaBox >, 2, 2 > >, StereoHitTruthVarSet, TrackExporter, TrackOrienter, TrackQualityEstimator, TruthAxialSegmentPairVarSet, TruthSegmentVarSet, TruthTrackVarSet, WireHitCreator, WireHitMCMultiLoopBlocker, FilterVarSet< AFilter >, MVA< Filter< AVarSet::Object > >, MVA< Filter< Belle2::TrackFindingCDC::CDCWireHitVarSet::Object > >, MVA< Filter< typename AVarSet::Object > >, MVA< Filter< typename AVarSet::Object > >, OnVarSet< Filter< ATruthVarSet::Object > >, OnVarSet< Filter< AVarSet::Object > >, OnVarSet< Filter< Belle2::TrackFindingCDC::CDCWireHitVarSet::Object > >, OnVarSet< Filter< PXDResultVarSet::Object > >, OnVarSet< Filter< SVDResultVarSet::Object > >, OnVarSet< Filter< typename AVarSet::Object > >, OnVarSet< Filter< typename AVarSet::Object > >, Recording< Filter< AVarSet::Object > >, Recording< Filter< typename AVarSet::Object > >, Recording< Filter< typename AVarSet::Object > >, RelationVarSet< ABaseVarSet >, StoreArrayLoader< IOType >, StoreArrayLoader< const Belle2::SpacePoint >, StoreArrayLoader< DataStoreInputTypeRefType >, StoreVectorSwapper< IOType, a_alwaysWrite >, StoreVectorSwapper< Belle2::TrackingUtilities::CDCFacet >, StoreVectorSwapper< Belle2::TrackingUtilities::CDCSegment2D >, StoreVectorSwapper< Belle2::TrackingUtilities::CDCSegmentPair >, StoreVectorSwapper< Belle2::TrackingUtilities::CDCSegmentTriple >, StoreVectorSwapper< Belle2::TrackingUtilities::CDCTrack >, StoreVectorSwapper< Belle2::TrackingUtilities::CDCWireHit, true >, UnionVarSet< AObject >, UnionVarSet< Object >, VariadicUnionVarSet< AVarSets >, VariadicUnionVarSet< BasicAxialSegmentPairVarSet, FitlessAxialSegmentPairVarSet, FitAxialSegmentPairVarSet >, VariadicUnionVarSet< BasicAxialSegmentPairVarSet, FitlessAxialSegmentPairVarSet, FitAxialSegmentPairVarSet >, VariadicUnionVarSet< BasicAxialSegmentPairVarSet, HitGapAxialSegmentPairVarSet >, VariadicUnionVarSet< BasicAxialSegmentPairVarSet, HitGapAxialSegmentPairVarSet >, VariadicUnionVarSet< BasicFacetVarSet, TrackingUtilities::FilterVarSet< Chi2FacetFilter > >, VariadicUnionVarSet< BasicFacetVarSet, TrackingUtilities::FilterVarSet< Chi2FacetFilter > >, VariadicUnionVarSet< BasicSegmentPairRelationVarSet, FitSegmentPairRelationVarSet >, VariadicUnionVarSet< BasicSegmentPairRelationVarSet, FitSegmentPairRelationVarSet >, VariadicUnionVarSet< BasicSegmentPairVarSet, FitlessSegmentPairVarSet, FitSegmentPairVarSet >, VariadicUnionVarSet< BasicSegmentPairVarSet, FitlessSegmentPairVarSet, FitSegmentPairVarSet >, VariadicUnionVarSet< BasicSegmentPairVarSet, SkimmedHitGapSegmentPairVarSet >, VariadicUnionVarSet< BasicSegmentPairVarSet, SkimmedHitGapSegmentPairVarSet >, VariadicUnionVarSet< BasicSegmentRelationVarSet, FitlessSegmentRelationVarSet, FitSegmentRelationVarSet >, VariadicUnionVarSet< BasicSegmentRelationVarSet, FitlessSegmentRelationVarSet, FitSegmentRelationVarSet >, VariadicUnionVarSet< BasicSegmentRelationVarSet, HitGapSegmentRelationVarSet >, VariadicUnionVarSet< BasicSegmentRelationVarSet, HitGapSegmentRelationVarSet >, VariadicUnionVarSet< BasicTrackRelationVarSet, FitTrackRelationVarSet >, VariadicUnionVarSet< BasicTrackRelationVarSet, FitTrackRelationVarSet >, VariadicUnionVarSet< BasicTrackRelationVarSet, HitGapTrackRelationVarSet >, VariadicUnionVarSet< BasicTrackRelationVarSet, HitGapTrackRelationVarSet >, TrackLoader, MultiHoughSpaceFastInterceptFinder, QualityIndicatorFilter, RawTrackCandCleaner< AHit >, RawTrackCandCleaner< Belle2::vxdHoughTracking::VXDHoughState >, RecoTrackStorer, ROIFinder, SingleHoughSpaceFastInterceptFinder, SpacePointLoaderAndPreparer, TrackCandidateOverlapResolver, TrackCandidateResultRefiner, and TwoHitVirtualIPQIFilter.

Definition at line 15 of file CompositeProcessingSignalListener.cc.

16{
19 psl->initialize();
20 }
21}
virtual void initialize()
Receive signal before the start of the event processing.

◆ initialize() [2/2]

void initialize ( )
overrideinherited

Receive and dispatch signal before the start of the event processing.

Definition at line 30 of file CompositeProcessingSignalListener.cc.

16{
19 psl->initialize();
20 }
21}

◆ isFeasible() [1/2]

bool isFeasible ( const TrackingUtilities::CDCRLWireHitTriple & rlWireHitTriple) const
private

Check if the hit triplet is a feasible combination for shape and rl passage information.

Definition at line 48 of file FeasibleRLFacetFilter.cc.

49{
50 return isFeasible(rlWireHitTriple.getShape(),
51 rlWireHitTriple.getStartRLInfo(),
52 rlWireHitTriple.getMiddleRLInfo(),
53 rlWireHitTriple.getEndRLInfo());
54}
bool isFeasible(const TrackingUtilities::CDCRLWireHitTriple::Shape &shape, TrackingUtilities::ERightLeft startRLInfo, TrackingUtilities::ERightLeft middleRLInfo, TrackingUtilities::ERightLeft endRLInfo) const
Check if the given shape and right left passage information is a feasible combination.

◆ isFeasible() [2/2]

Check if the given shape and right left passage information is a feasible combination.

Shape based version to be used when the shape of the hit triple is already known, e.g. when scanning the right left passage combinations of the same three hits.

Definition at line 56 of file FeasibleRLFacetFilter.cc.

60{
61 const short oClockDelta = shape.getOClockDelta();
62 const short absOClockDelta = std::abs(oClockDelta);
63 const short cellExtend = shape.getCellExtend();
64
65 if (cellExtend + absOClockDelta > 6) {
66 // funny formula, but basically checks the triple to be a progressing forward and not turning back in itself.
67 return false;
68 }
69
70 const short stableTwist = -sign(shape.getOClockDelta()) * middleRLInfo;
71 const bool startToMiddleIsCrossing = startRLInfo != middleRLInfo;
72 const bool middleToEndIsCrossing = middleRLInfo != endRLInfo;
73
74 const bool bothAreCrossing = startToMiddleIsCrossing and middleToEndIsCrossing;
75
76 const bool startToMiddleIsLong = shape.getStartToMiddleCellDistance() > shape.getMiddleToEndCellDistance();
77 const bool shortArmIsCrossing = startToMiddleIsLong ? middleToEndIsCrossing : startToMiddleIsCrossing;
78
79 const bool onlyOneShortArm = isOdd(cellExtend);
80 const bool shortArmsAreCrossing = bothAreCrossing or (onlyOneShortArm and shortArmIsCrossing);
81 const bool noneAreCrossing = not startToMiddleIsCrossing and not middleToEndIsCrossing;
82
83 const bool orthoHard = stableTwist > 0 and shortArmsAreCrossing;
84 const bool ortho = stableTwist > 0 and not noneAreCrossing;
85 const bool meta = stableTwist > 0 or noneAreCrossing;
86 const bool para = not bothAreCrossing;
87
88 // Redundant check saves a bit of computation time.
89 if (oClockDelta == 0) {
90 return para;
91 }
92
93 switch (cellExtend) {
94 case 2:
95 switch (absOClockDelta) {
96 case 0:
97 return para;
98 break;
99
100 case 2:
101 return ortho or (not m_param_hardRLCut and meta);
102 break;
103
104 case 4:
105 return orthoHard or (not m_param_hardRLCut and ortho);
106 break;
107 }
108 break;
109
110 case 3:
111 switch (absOClockDelta) {
112 case 0:
113 return para;
114 break;
115
116 case 1:
117 return meta;
118 break;
119
120 case 2:
121 return orthoHard or (not m_param_hardRLCut and ortho);
122 break;
123
124 case 3:
125 return orthoHard;
126 break;
127 }
128 break;
129
130 case 4:
131 switch (absOClockDelta) {
132 case 0:
133 return para;
134 break;
135
136 case 1:
137 return ortho or (not m_param_hardRLCut and meta);
138 break;
139
140 case 2:
141 return orthoHard;
142 break;
143 }
144 break;
145 }
146 return false;
147}
short getMiddleToEndCellDistance() const
Getter for the middle to end cell distance.
short getCellExtend() const
Getter for the sum of cell distances from start to middle and middle to end.
short getOClockDelta() const
Getter for the o'clock direction difference from start to middle compared to middle to end.
short getStartToMiddleCellDistance() const
Getter for the start to middle cell distance.

◆ needsTruthInformation() [1/2]

virtual bool needsTruthInformation ( )
virtualinherited

Indicates if the filter requires Monte Carlo information.

Reimplemented in MCSymmetric< BaseFacetFilter >, and MCSymmetric< BaseFacetFilter >.

◆ needsTruthInformation() [2/2]

bool needsTruthInformation ( )
virtualinherited

Indicates if the filter requires Monte Carlo information.

Reimplemented in MCSymmetric< BaseFacetFilter >, and MCSymmetric< BaseFacetFilter >.

Definition at line 48 of file Filter.icc.h.

41 {
42 return false;
43 }

◆ operator()() [1/6]

Weight operator() ( const TrackingUtilities::CDCFacet & facet)
finalvirtual

Main filter method returning the weight of the facet.

Returns NAN if the cell shall be rejected.

Reimplemented from Filter< const TrackingUtilities::CDCFacet >.

Definition at line 39 of file FeasibleRLFacetFilter.cc.

40{
41 if (this->isFeasible(facet)) {
42 return 3;
43 } else {
44 return NAN;
45 }
46}

◆ operator()() [2/6]

Weight operator() ( const Object & obj)
virtualinherited

Function to evaluate the object.

Base implementation accepts all objects.

Parameters
objThe object to be accepted or rejected.
Returns
A finite float value if the object is accepted. NAN if the object is rejected.

Definition at line 59 of file Filter.icc.h.

47 {
48 return 1;
49 }

◆ operator()() [3/6]

Weight operator() ( const Object * obj)
inherited

Function to evaluate the object.

Base implementation accepts all objects, except nullptr.

Parameters
objThe object to be accepted or rejected.
Returns
A finit float value if the object is accepted. NAN if the object is rejected. Nullptr is always rejected.

◆ operator()() [4/6]

Weight operator() ( const Object * obj)
inherited

Function to evaluate the object.

Base implementation accepts all objects, except nullptr.

Parameters
objThe object to be accepted or rejected.
Returns
A finit float value if the object is accepted. NAN if the object is rejected. Nullptr is always rejected.

Definition at line 69 of file Filter.icc.h.

53 {
54 return obj ? operator()(*obj) : NAN;
55 }

◆ operator()() [5/6]

virtual std::vector< float > operator() ( const std::vector< Object * > & objs)
virtualinherited

Function to evaluate a vector of objects Base implementation applies the function to each object.

Can be optimized for MVA filters

Parameters
objsA vector of pointers to objects
Returns
A vector of float or NAN values. See above

◆ operator()() [6/6]

std::vector< float > operator() ( const std::vector< Object * > & objs)
virtualinherited

Function to evaluate a vector of objects Base implementation applies the function to each object.

Can be optimized for MVA filters

Parameters
objsA vector of pointers to objects
Returns
A vector of float or NAN values. See above

Definition at line 77 of file Filter.icc.h.

59 {
60 std::vector<float> out;
61 for (const Object* obj : objs) {
62 out.push_back(operator()(obj));
63 }
64 return out;
65 }

◆ setHardRLCut()

void setHardRLCut ( bool hardRLCut)
inline

Setter for the flag that the borderline cases should be excluded.

Definition at line 67 of file FeasibleRLFacetFilter.h.

68 {
69 m_param_hardRLCut = hardRLCut;
70 }

◆ terminate() [1/2]

◆ terminate() [2/2]

void terminate ( )
overrideinherited

Receive and dispatch Signal for termination of the event processing.

Definition at line 42 of file CompositeProcessingSignalListener.cc.

Member Data Documentation

◆ m_initialized [1/2]

bool m_initialized
privateinherited

Flag to keep track whether initialization happened before.

Definition at line 52 of file ProcessingSignalListener.h.

◆ m_initialized [2/2]

bool m_initialized = false
privateinherited

Flag to keep track whether initialization happened before.

Definition at line 52 of file ProcessingSignalListener.h.

◆ m_initializedAs [1/2]

std::string m_initializedAs
privateinherited

Name of the type during initialisation.

Definition at line 58 of file ProcessingSignalListener.h.

◆ m_initializedAs [2/2]

std::string m_initializedAs
privateinherited

Name of the type during initialisation.

Definition at line 58 of file ProcessingSignalListener.h.

◆ m_param_hardRLCut

bool m_param_hardRLCut = true
private

Switch for hard selection.

Definition at line 84 of file FeasibleRLFacetFilter.h.

◆ m_subordinaryProcessingSignalListeners [1/2]

std::vector<ProcessingSignalListener*> m_subordinaryProcessingSignalListeners
privateinherited

References to subordinary signal processing listener contained in this findlet.

Definition at line 60 of file CompositeProcessingSignalListener.h.

◆ m_subordinaryProcessingSignalListeners [2/2]

std::vector<ProcessingSignalListener*> m_subordinaryProcessingSignalListeners
privateinherited

References to subordinary signal processing listener contained in this findlet.

Definition at line 60 of file CompositeProcessingSignalListener.h.

◆ m_terminated [1/2]

bool m_terminated
privateinherited

Flag to keep track whether termination happened before.

Definition at line 55 of file ProcessingSignalListener.h.

◆ m_terminated [2/2]

bool m_terminated = false
privateinherited

Flag to keep track whether termination happened before.

Definition at line 55 of file ProcessingSignalListener.h.


The documentation for this class was generated from the following files: