Belle II Software  release-08-01-10
FourHitFilter Class Reference

Filter for four hits. More...

#include <FourHitFilter.h>

Inheritance diagram for FourHitFilter:
Collaboration diagram for FourHitFilter:

Public Types

using Object = AObject
 Type of the object to be analysed.
 
using Interface = Filter< AObject >
 Mark this class as the basic interface.
 

Public Member Functions

TrackFindingCDC::Weight operator() (const BasePathFilter::Object &pair) override
 Return the weight based on the ThreeHitVariables. More...
 
void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) override
 Expose the parameters.
 
void beginRun () override
 set BField value for estimator
 
virtual bool needsTruthInformation ()
 Indicates if the filter requires Monte Carlo information.
 
Weight operator() (const Object *obj)
 Function to evaluate the object. More...
 
void initialize () override
 Receive and dispatch signal before the start of the event processing.
 
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 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.
 
int getNProcessingSignalListener ()
 Get the number of currently registered listeners.
 

Private Types

using Super = ProcessingSignalListener
 Type of the base class.
 

Private Attributes

double m_CircleRadiusDifferenceCut = 10.
 Cut on difference of the two circle radii estimated from two triplets.
 
double m_CircleCenterPositionDifferenceCut = 10.
 Cut on difference of the two circle center estimated from two triplets.
 
FourHitVariables m_fourHitVariables
 Construct empty ThreeHitVariables instance.
 
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 happend before.
 
bool m_terminated = false
 Flag to keep track whether termination happend before.
 
std::string m_initializedAs
 Name of the type during initialisation.
 

Detailed Description

Filter for four hits.

Basic working principle: use FourHitVariables and ThreeHitVariables and provide four (three B2Vector3D) to each variable. These are oHit (outer hit), coHit (middle outer hit), ciHit (middle inner hit) and iHit (inner hit) and then calculate the variables specified in FourHitVariables and ThreeHitVariables for the four positions

Definition at line 25 of file FourHitFilter.h.

Member Function Documentation

◆ operator()() [1/2]

TrackFindingCDC::Weight operator() ( const BasePathFilter::Object pair)
overridevirtual

Return the weight based on the ThreeHitVariables.

Returns NAN if m_fourHitVariables.getCircleRadiusDifference() of the hit triplet is larger than m_CircleRadiusDifferenceCut Returns NAN if m_fourHitVariables.getCircleCenterPositionDifference() of the hit triplet is larger than m_CircleCenterPositionDifferenceCut Returns 1/m_fourHitVariables.getCircleRadiusDifference() else

Reimplemented from Filter< AObject >.

Definition at line 37 of file FourHitFilter.cc.

38 {
39  const std::vector<TrackFindingCDC::WithWeight<const VXDHoughState*>>& previousHits = pair.first;
40 
41  // Do nothing if path is too short or too long
42  if (previousHits.size() != 3) {
43  return NAN;
44  }
45 
46  const B2Vector3D& firstHitPos = previousHits.at(0)->getHit()->getPosition();
47  const B2Vector3D& secondHitPos = previousHits.at(1)->getHit()->getPosition();
48  const B2Vector3D& thirdHitPos = previousHits.at(2)->getHit()->getPosition();
49  const B2Vector3D& currentHitPos = pair.second->getHit()->getPosition();
50 
51  m_fourHitVariables.setHits(firstHitPos, secondHitPos, thirdHitPos, currentHitPos);
52 
54  return NAN;
55  }
57  return NAN;
58  }
59 
60  return fabs(1.0 / m_fourHitVariables.getCircleRadiusDifference());
61 }
double m_CircleRadiusDifferenceCut
Cut on difference of the two circle radii estimated from two triplets.
Definition: FourHitFilter.h:40
double m_CircleCenterPositionDifferenceCut
Cut on difference of the two circle center estimated from two triplets.
Definition: FourHitFilter.h:42
FourHitVariables m_fourHitVariables
Construct empty ThreeHitVariables instance.
Definition: FourHitFilter.h:45
double getCircleCenterPositionDifference()
calculates the distance between the estimated circle centers (using 2 subsets of given hits) in the x...
void setHits(const B2Vector3D &oHit, const B2Vector3D &ocHit, const B2Vector3D &icHit, const B2Vector3D &iHit)
Set hits if not given in constructor of if they need to be changed.
double getCircleRadiusDifference()
calculates dpt-value (dpt= difference in transverse momentum of 2 subsets of the hits),...
DataType at(unsigned i) const
safe member access (with boundary check!)
Definition: B2Vector3.h:751

◆ operator()() [2/2]

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 58 of file Filter.icc.h.


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