Belle II Software  release-05-02-19
SimplePXDStateFilter Class Reference

A very simple filter for all space points. More...

#include <SimplePXDStateFilter.h>

Inheritance diagram for SimplePXDStateFilter:
Collaboration diagram for SimplePXDStateFilter:

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

void beginRun () final
 Set the cached B field.
 
 SimplePXDStateFilter ()=default
 default constructor to silence the cppcheck warnings
 
TrackFindingCDC::Weight operator() (const BasePXDStateFilter::Object &pair) final
 Function to evaluate the object. More...
 
virtual void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix)
 Expose the set of parameters of the filter to the module parameter list. More...
 
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 MaximalValueArray = double[2][3]
 Shortcut for a 2x3 array.
 
using Super = ProcessingSignalListener
 Type of the base class.
 

Private Attributes

double m_cachedBField
 Cache for the B field at the IP.
 
PXDKalmanStepper m_kalmanStepper
 Kalman stepper (CKF) for PXD.
 
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.
 

Static Private Attributes

static constexpr const MaximalValueArray m_param_maximumHelixDistanceXY
 Maximum distance calculated with helix extrapolation in filter 1. Numbers calculated on MC. More...
 
static constexpr const MaximalValueArray m_param_maximumResidual
 Maximum distance calculated with normal extrapolation in filter 2. Numbers calculated on MC. More...
 
static constexpr const MaximalValueArray m_param_maximumChi2
 Maximum chi^2 in filter 3. Numbers calculated on MC. More...
 

Detailed Description

A very simple filter for all space points.

Definition at line 29 of file SimplePXDStateFilter.h.

Member Function Documentation

◆ exposeParameters()

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

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

Note that not all filters have yet exposed their parameters in this way.

This method is deprecated as the exposeParams below uses a less compile heavy equivalent.

Reimplemented in ChoosableFromVarSet< Filter< ATruthVarSet::Object > >, ChoosableFromVarSet< Filter< PXDResultVarSet ::Object > >, ChoosableFromVarSet< Filter< SVDResultVarSet ::Object > >, Recording< Filter< AVarSet::Object > >, MVA< Filter< MVAFeasibleSegmentPairVarSet ::Object > >, MVA< BaseAxialSegmentPairFilter >, MVA< Filter< MVARealisticSegmentPairVarSet ::Object > >, MVA< BaseSegmentPairRelationFilter >, MVA< BaseTrackRelationFilter >, MVA< BaseSegmentRelationFilter >, MVA< Filter< BasicClusterVarSet ::Object > >, MVA< BaseFacetRelationFilter >, MVA< BaseFacetFilter >, MVA< Filter< AVarSet::Object > >, AdvanceFilter< AState, AnAdvancer >, DuplicateCDCPathPairFilter, BridgingWireHitRelationFilter, Chi2FacetRelationFilter, SimpleFacetRelationFilter, MCSymmetric< BaseAxialSegmentPairFilter >, MCSymmetric< BaseSegmentPairFilter >, MCSymmetric< BaseSegmentTripleRelationFilter >, MCSymmetric< BaseSegmentPairRelationFilter >, MCSymmetric< BaseTrackRelationFilter >, MCSymmetric< BaseSegmentTripleFilter >, MCSymmetric< BaseSegmentRelationFilter >, MCSymmetric< BaseFacetRelationFilter >, MCSymmetric< BaseFacetFilter >, LayerPXDRelationFilter< AFilter, APrefilter >, ExtrapolateAndUpdateCDCStateFilter, PhiTrackRelationFilter, PhiRecoTrackRelationFilter, RoughCDCfromEclStateFilter, RoughCDCStateFilter, ResidualSVDStateFilter, DistanceCDCStateFilter, LoosePXDPairFilter, SensorPXDPairFilter, LooseSVDPairFilter, SensorSVDPairFilter, Chi2FacetFilter, FeasibleRLFacetFilter, RealisticFacetFilter, SimpleFacetFilter, MCFacetRelationFilter, LayerSVDRelationFilter< AFilter, APrefilter >, MCSegmentTripleFilter, SectorMapBasedSVDPairFilter, WholeWireHitRelationFilter, MCAxialSegmentPairFilter, MCSegmentPairRelationFilter, MCSegmentRelationFilter, MCSegmentTripleRelationFilter, and MCSegmentPairFilter.

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

◆ operator()() [1/2]

Weight operator() ( const BasePXDStateFilter::Object obj)
finalvirtual

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.

Reimplemented from Filter< AObject >.

Definition at line 48 of file SimplePXDStateFilter.cc.

49 {
50  const std::vector<TrackFindingCDC::WithWeight<const CKFToPXDState*>>& previousStates = pair.first;
51  CKFToPXDState* currentState = pair.second;
52 
53  const auto* spacePoint = currentState->getHit();
54 
55  genfit::MeasuredStateOnPlane firstMeasurement;
56  if (currentState->mSoPSet()) {
57  firstMeasurement = currentState->getMeasuredStateOnPlane();
58  } else {
59  firstMeasurement = previousStates.back()->getMeasuredStateOnPlane();
60  }
61 
62  Vector3D position = Vector3D(firstMeasurement.getPos());
63  Vector3D momentum = Vector3D(firstMeasurement.getMom());
64 
65  const Vector3D hitPosition = static_cast<Vector3D>(spacePoint->getPosition());
66 
67  const bool sameHemisphere = fabs(position.phi() - hitPosition.phi()) < TMath::PiOver2();
68  if (not sameHemisphere) {
69  return NAN;
70  }
71 
72  double valueToCheck;
73  const MaximalValueArray* maximumValues;
74 
75  if (not currentState->isFitted() and not currentState->mSoPSet()) {
76  // Filter 1
77  const RecoTrack* cdcTrack = previousStates.front()->getSeed();
78 
79  B2ASSERT("A path without a seed?", cdcTrack);
80 
81  const CDCTrajectory3D trajectory(position, 0, momentum, cdcTrack->getChargeSeed(), m_cachedBField);
82 
83  const double arcLength = trajectory.calcArcLength2D(hitPosition);
84  const Vector2D& trackPositionAtHit2D = trajectory.getTrajectory2D().getPos2DAtArcLength2D(arcLength);
85  const double trackPositionAtHitZ = trajectory.getTrajectorySZ().mapSToZ(arcLength);
86  const Vector3D trackPositionAtHit(trackPositionAtHit2D, trackPositionAtHitZ);
87  const Vector3D differenceHelix = trackPositionAtHit - hitPosition;
88 
89  valueToCheck = differenceHelix.xy().norm();
90  maximumValues = &m_param_maximumHelixDistanceXY;
91  } else if (not currentState->isFitted()) {
92  // Filter 2
93  const double residual = m_kalmanStepper.calculateResidual(firstMeasurement, *currentState);
94 
95  valueToCheck = residual;
96  maximumValues = &m_param_maximumResidual;
97  } else {
98  // Filter 3
99  valueToCheck = currentState->getChi2();
100  maximumValues = &m_param_maximumChi2;
101  }
102 
103  const unsigned int layer = currentState->getGeometricalLayer();
104  if (valueToCheck > (*maximumValues)[layer - 1][getPTRange(momentum)]) {
105  return NAN;
106  }
107 
108  return valueToCheck;
109 }

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

Member Data Documentation

◆ m_param_maximumChi2

constexpr const SimplePXDStateFilter::MaximalValueArray m_param_maximumChi2
staticconstexprprivate
Initial value:
= {
{10, 50, 125},
{20, 60, 85}
}

Maximum chi^2 in filter 3. Numbers calculated on MC.

Definition at line 62 of file SimplePXDStateFilter.h.

◆ m_param_maximumHelixDistanceXY

constexpr const SimplePXDStateFilter::MaximalValueArray m_param_maximumHelixDistanceXY
staticconstexprprivate
Initial value:
= {
{0.295060, 0.295060, 0.295060},
{0.295060, 0.295060, 0.295060}
}

Maximum distance calculated with helix extrapolation in filter 1. Numbers calculated on MC.

Definition at line 50 of file SimplePXDStateFilter.h.

◆ m_param_maximumResidual

constexpr const SimplePXDStateFilter::MaximalValueArray m_param_maximumResidual
staticconstexprprivate
Initial value:
= {
{0.679690, 0.677690, 0.427060},
{1.006930, 0.926120, 0.687030}
}

Maximum distance calculated with normal extrapolation in filter 2. Numbers calculated on MC.

Definition at line 56 of file SimplePXDStateFilter.h.


The documentation for this class was generated from the following files:
Belle2::Vector3D
HepGeom::Vector3D< double > Vector3D
3D Vector
Definition: Cell.h:35
Belle2::PXDKalmanStepper::calculateResidual
double calculateResidual(genfit::MeasuredStateOnPlane &measuredStateOnPlane, const CKFToPXDState &state)
Calculate the residual between the mSoP and the measurement in the state.
Definition: PXDKalmanStepper.cc:35
genfit::MeasuredStateOnPlane
#StateOnPlane with additional covariance matrix.
Definition: MeasuredStateOnPlane.h:39
Belle2::CKFToPXDState
Specialized CKF State for extrapolating into the PXD.
Definition: CKFToPXDState.h:29
Belle2::CKFToPXDState::getGeometricalLayer
unsigned int getGeometricalLayer() const
Extract the real layer this state sits on.
Definition: CKFToPXDState.cc:33
Belle2::SimplePXDStateFilter::m_param_maximumHelixDistanceXY
static constexpr const MaximalValueArray m_param_maximumHelixDistanceXY
Maximum distance calculated with helix extrapolation in filter 1. Numbers calculated on MC.
Definition: SimplePXDStateFilter.h:50
Belle2::CKFState::getMeasuredStateOnPlane
const genfit::MeasuredStateOnPlane & getMeasuredStateOnPlane() const
Get the mSoP if already set during extrapolation (or fitting)
Definition: CKFState.h:103
Belle2::CKFState::mSoPSet
bool mSoPSet() const
Is the mSoP already set? (= state was already extrapolated)
Definition: CKFState.h:116
Belle2::SimplePXDStateFilter::MaximalValueArray
double[2][3] MaximalValueArray
Shortcut for a 2x3 array.
Definition: SimplePXDStateFilter.h:47
Belle2::SimplePXDStateFilter::m_param_maximumChi2
static constexpr const MaximalValueArray m_param_maximumChi2
Maximum chi^2 in filter 3. Numbers calculated on MC.
Definition: SimplePXDStateFilter.h:62
Belle2::SimplePXDStateFilter::m_param_maximumResidual
static constexpr const MaximalValueArray m_param_maximumResidual
Maximum distance calculated with normal extrapolation in filter 2. Numbers calculated on MC.
Definition: SimplePXDStateFilter.h:56
Belle2::RecoTrack
This is the Reconstruction Event-Data Model Track.
Definition: RecoTrack.h:78
Belle2::SimplePXDStateFilter::m_kalmanStepper
PXDKalmanStepper m_kalmanStepper
Kalman stepper (CKF) for PXD.
Definition: SimplePXDStateFilter.h:44
Belle2::CKFState::getChi2
double getChi2() const
Return the chi2 set during fitting. Is only valid after fitting.
Definition: CKFState.h:82
Belle2::CKFState::getHit
const Hit * getHit() const
Return the SP this state is related to. May be nullptr.
Definition: CKFState.h:76
Belle2::SimplePXDStateFilter::m_cachedBField
double m_cachedBField
Cache for the B field at the IP.
Definition: SimplePXDStateFilter.h:41
Belle2::CKFState::isFitted
bool isFitted() const
Check if state was already fitted.
Definition: CKFState.h:110
Belle2::RecoTrack::getChargeSeed
short int getChargeSeed() const
Return the charge seed stored in the reco track. ATTENTION: This is not the fitted charge.
Definition: RecoTrack.h:497