10#include <tracking/trackFindingCDC/ca/AutomatonCell.h>
12#include <genfit/MeasuredStateOnPlane.h>
13#include <framework/logging/Logger.h>
15#include <vxd/dataobjects/VxdID.h>
28 template<
class ASeed,
class AHit>
74 B2ASSERT(
"Chi2 is not set",
isFitted());
95 B2ASSERT(
"You are asking for an invalid variable!",
mSoPSet());
133 float phi = std::numeric_limits<float>::quiet_NaN();
135 float theta = std::numeric_limits<float>::quiet_NaN();
137 float perp = std::numeric_limits<float>::quiet_NaN();
143 unsigned short geoLayer = std::numeric_limits<unsigned short>::quiet_NaN();
145 unsigned short ladder = std::numeric_limits<unsigned short>::quiet_NaN();
State object to store one step in the CKF algorithm together with its parent (the state before),...
CKFState()=default
Default constructor needed for STL containers.
AHit Hit
Copy the class of the hits.
CKFState(const Hit *hit)
Initialize the state as non-root with a related hit (and with a seed)
TrackFindingCDC::AutomatonCell m_automatonCell
Memory for the automaton cell.
CKFState(CKFState &&)=default
Move constructor needed for STL containers.
CKFState(const CKFState &)=delete
No copy constructor.
const genfit::MeasuredStateOnPlane & getMeasuredStateOnPlane() const
Get the mSoP if already set during extrapolation (or fitting)
const Hit * getHit() const
Return the SP this state is related to. May be nullptr.
const Seed * m_seed
The seed this state is related with.
double getChi2() const
Return the chi2 set during fitting. Is only valid after fitting.
CKFState & operator=(CKFState &&)=default
Move assignment constructor.
CKFState & operator=(const CKFState &)=delete
No copy constructor.
double m_chi2
Chi2 of this special state with this hit and this reco track. Will only be set after fitting state.
bool isFitted() const
Check if state was already fitted.
void setMeasuredStateOnPlane(const genfit::MeasuredStateOnPlane &mSoP)
Set the mSoP.
void setChi2(double chi2)
Set the chi2 of this state during fitting.
CKFState(const Seed *seed)
Initialize the state as a root without a related hit (but with a seed)
bool m_hasMSoP
Flag, if this state has a valid mSoP.
const Hit * m_hit
The hit object this state is attached to.
stateCache m_stateCache
Cache the most important data of this state for better runtime performance.
TrackFindingCDC::AutomatonCell & getAutomatonCell()
Getter for the automaton cell.
ASeed Seed
Copy the class of the seed track.
bool mSoPSet() const
Is the mSoP already set? (= state was already extrapolated)
genfit::MeasuredStateOnPlane m_measuredStateOnPlane
MSoP after advancing. Is undetermined before extrapolating!
bool m_isFitted
Flag, if this state was already fitted.
~CKFState()=default
Destructor.
void reset()
Reset the state to be seen as "new".
const Seed * getSeed() const
Return the track this state is related to.
Cell used by the cellular automata.
Class to uniquely identify a any structure of the PXD and SVD.
Abstract base class for different kinds of events.
Cache containing the most important information of this state which will often be needed.
float sensorCenterPhi
Phi of the sensor this state is based on, only set if based on SpacePoint.
float ptSeed
getPtOfSeed (if seed state)
float localNormalizedu
Local normalized uCoordinate of this state, only set if based on SpacePoint.
float thetaSeed
getThetaOfSeed (if seed state)
bool isHitState
Is this state based on a hit (=SpacePoint) or a seed (=RecoTrack)
VxdID sensorID
VxdID of this state, only set if based on SpacePoint.
float perp
Perp of this state (from SpacePoint or RecoTrack)
unsigned short ladder
Ladder this state is based on (only use for SpacePoint based states)
unsigned short geoLayer
Geometrical Layer this state is based on. Will be set to the SVD layer number if it's a state based o...
float theta
Theta if this state (from SpacePoint or RecoTrack)
float phi
Phi if this state (from SpacePoint or RecoTrack)
float localNormalizedv
Local normalized vCoordinate of this state, only set if based on SpacePoint.