Project
Loading...
Searching...
No Matches
o2::vertexing::DCAFitterN< N, Args > Class Template Referenceabstract

#include <DCAFitterN.h>

Public Types

enum  BadCovPolicy : uint8_t { Discard = 0 , Override = 1 , OverrideAndFlag = 2 }
 
enum  FitStatus : uint8_t {
  None , Converged , MaxIter , NoCrossing ,
  RejRadius , RejTrackX , RejTrackRoughZ , RejChi2Max ,
  FailProp , FailInvCov , FailInvWeight , FailInv2ndDeriv ,
  FailCorrTracks , FailCloserAlt
}
 

Public Member Functions

 DCAFitterN ()=default
 
 DCAFitterN (float bz, bool useAbsDCA, bool prop2DCA)
 
 GPUd () const Vec3D &getPCACandidate(int cand=0) const
 < return PCA candidate, by default best on is provided (no check for the index validity)
 
 GPUd () const auto getPCACandidatePos(int cand=0) const
 return position of quality-ordered candidate in the internal structures
 
int getCandidatePosition (int cand=0) const
 return Chi2 at PCA candidate (no check for its validity)
 
float getChi2AtPCACandidate (int cand=0) const
 
 GPUd () bool propagateTracksToVertex(int cand=0)
 check if propagation of tracks to candidate vertex was done
 
 GPUd () bool isPropagateTracksToVertexDone(int cand=0) const
 check if propagation of tracks to candidate vertex failed
 
bool isPropagationFailure (int cand=0) const
 
Track & getTrack (int i, int cand=0)
 
const Track & getTrack (int i, int cand=0) const
 create parent track param with errors for decay vertex
 
GPUd() o2 GPUd() o2 GPUd() o2 GPUd () bool recalculatePCAWithErrors(int cand=0)
 < create parent track param w/o errors for decay vertex
 
 GPUd () MatSym3D calcPCACovMatrix(int cand=0) const
 
std::array< float, 6 > calcPCACovMatrixFlat (int cand=0) const
 
const Track * getOrigTrackPtr (int i) const
 
 GPUdi () FitStatus getFitStatus(int cand=0) const noexcept
 return number of iterations during minimization (no check for its validity)
 
 GPUdi () int getNIterations(int cand=0) const
 
 GPUdi () void setPropagateToPCA(bool v
 
 GPUd () void print() const
 
 GPUdi () int getFitterID() const
 
 GPUdi () void setFitterID(int i)
 
 GPUdi () size_t getCallID() const
 

Static Public Member Functions

static constexpr int getNProngs ()
 

Protected Member Functions

 GPUd () bool calcPCACoefs()
 
 GPUd () bool calcInverseWeight()
 
 GPUd () void calcResidDerivatives()
 
 GPUd () void calcResidDerivativesNoErr()
 
 GPUd () void calcRMatrices()
 
 GPUd () void calcChi2Derivatives()
 
 GPUd () void calcChi2DerivativesNoErr()
 
 GPUd () void calcPCA()
 
 GPUd () void calcPCANoErr()
 
 GPUd () void calcTrackResiduals()
 
 GPUd () void calcTrackDerivatives()
 
 GPUd () double calcChi2() const
 
 GPUd () double calcChi2NoErr() const
 
 GPUd () bool correctTracks(const VecND &corrX)
 
 GPUd () bool minimizeChi2()
 
 GPUd () bool minimizeChi2NoErr()
 
 GPUd () bool roughDZCut() const
 
 GPUd () bool closerToAlternative() const
 
GPUd() bool propagateToX(o2 GPUd() bool propagateParamToX(o2 GPUd () static double getAbsMax(const VecND &v)
 track param positions at V0 candidate (no check for the candidate validity)
 
 GPUdi () const Vec3D &getTrackPos(int i
 
int class Tr GPUd () void assign(int i
 
 assign (i+1, args...)
 
 GPUdi () void clear()
 
 GPUdi () static void setTrackPos(Vec3D &pnt
 
 GPUdi () void clearLogThrottlers()
 
void setBadCovPolicy (BadCovPolicy v)
 
BadCovPolicy getBadCovPolicy () const
 

Protected Attributes

int cand
 track X-param at V0 candidate (no check for the candidate validity)
 
int class Tr const T & t
 
int class Tr const T const Tr & args
 
 mOrigTrPtr [i] = &t
 
const Track & tr
 
 pnt [1] = tr.getY()
 

Detailed Description

template<int N, typename... Args>
class o2::vertexing::DCAFitterN< N, Args >

Definition at line 95 of file DCAFitterN.h.

Member Enumeration Documentation

◆ BadCovPolicy

template<int N, typename... Args>
enum o2::vertexing::DCAFitterN::BadCovPolicy : uint8_t
Enumerator
Discard 
Override 
OverrideAndFlag 

Definition at line 120 of file DCAFitterN.h.

◆ FitStatus

template<int N, typename... Args>
enum o2::vertexing::DCAFitterN::FitStatus : uint8_t
Enumerator
None 
Converged 
MaxIter 
NoCrossing 
RejRadius 
RejTrackX 
RejTrackRoughZ 
RejChi2Max 
FailProp 
FailInvCov 
FailInvWeight 
FailInv2ndDeriv 
FailCorrTracks 
FailCloserAlt 

Definition at line 126 of file DCAFitterN.h.

Constructor & Destructor Documentation

◆ DCAFitterN() [1/2]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::DCAFitterN ( )
default

◆ DCAFitterN() [2/2]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::DCAFitterN ( float  bz,
bool  useAbsDCA,
bool  prop2DCA 
)
inline

Definition at line 150 of file DCAFitterN.h.

Member Function Documentation

◆ assign()

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::assign ( i 1,
args...   
)
protected

◆ calcPCACovMatrixFlat()

template<int N, typename... Args>
std::array< float, 6 > o2::vertexing::DCAFitterN< N, Args >::calcPCACovMatrixFlat ( int  cand = 0) const
inline

Definition at line 216 of file DCAFitterN.h.

◆ getBadCovPolicy()

template<int N, typename... Args>
BadCovPolicy o2::vertexing::DCAFitterN< N, Args >::getBadCovPolicy ( ) const
inlineprotected

Definition at line 363 of file DCAFitterN.h.

◆ getCandidatePosition()

template<int N, typename... Args>
int o2::vertexing::DCAFitterN< N, Args >::getCandidatePosition ( int  cand = 0) const
inline

return Chi2 at PCA candidate (no check for its validity)

Definition at line 165 of file DCAFitterN.h.

◆ getChi2AtPCACandidate()

template<int N, typename... Args>
float o2::vertexing::DCAFitterN< N, Args >::getChi2AtPCACandidate ( int  cand = 0) const
inline

prepare copies of tracks at the V0 candidate (no check for the candidate validity) must be called before getTrack(i,cand) query

Definition at line 168 of file DCAFitterN.h.

◆ getNProngs()

template<int N, typename... Args>
static constexpr int o2::vertexing::DCAFitterN< N, Args >::getNProngs ( )
inlinestaticconstexpr

Definition at line 147 of file DCAFitterN.h.

◆ getOrigTrackPtr()

template<int N, typename... Args>
const Track * o2::vertexing::DCAFitterN< N, Args >::getOrigTrackPtr ( int  i) const
inline

Definition at line 222 of file DCAFitterN.h.

◆ getTrack() [1/2]

template<int N, typename... Args>
Track & o2::vertexing::DCAFitterN< N, Args >::getTrack ( int  i,
int  cand = 0 
)
inline

Definition at line 182 of file DCAFitterN.h.

◆ getTrack() [2/2]

template<int N, typename... Args>
const Track & o2::vertexing::DCAFitterN< N, Args >::getTrack ( int  i,
int  cand = 0 
) const
inline

create parent track param with errors for decay vertex

Definition at line 192 of file DCAFitterN.h.

◆ GPUd() [1/27]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUd ( )
protected

◆ GPUd() [2/27]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUd ( )
protected

◆ GPUd() [3/27]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUd ( ) const
protected

◆ GPUd() [4/27]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUd ( ) const &
protected

◆ GPUd() [5/27]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUd ( ) const
inlinepure virtual

check if propagation of tracks to candidate vertex failed

Definition at line 175 of file DCAFitterN.h.

◆ GPUd() [6/27]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUd ( )
protected

◆ GPUd() [7/27]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUd ( )
protected

◆ GPUd() [8/27]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUd ( )
pure virtual

check if propagation of tracks to candidate vertex was done

◆ GPUd() [9/27]

template<int N, typename... Args>
GPUd() o2 GPUd() o2 GPUd() o2 o2::vertexing::DCAFitterN< N, Args >::GPUd ( )
pure virtual

< create parent track param w/o errors for decay vertex

< calculate on the fly track param (no cov mat) at candidate, check isValid to make sure propagation was successful < recalculate PCA as a cov-matrix weighted mean, even if absDCA method was used

◆ GPUd() [10/27]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUd ( ) const
protected

◆ GPUd() [11/27]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUd ( ) const
inlinepure virtual

return position of quality-ordered candidate in the internal structures

Definition at line 158 of file DCAFitterN.h.

◆ GPUd() [12/27]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUd ( ) const &
inlinepure virtual

< return PCA candidate, by default best on is provided (no check for the index validity)

Definition at line 157 of file DCAFitterN.h.

◆ GPUd() [13/27]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUd ( ) const
protected

◆ GPUd() [14/27]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUd ( ) const
protected

◆ GPUd() [15/27]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUd ( ) const
pure virtual

◆ GPUd() [16/27]

template<int N, typename... Args>
GPUd() bool propagateToX(o2 GPUd() bool propagateParamToX(o2 o2::vertexing::DCAFitterN< N, Args >::GPUd ( ) const &
protected

track param positions at V0 candidate (no check for the candidate validity)

◆ GPUd() [17/27]

template<int N, typename... Args>
int class Tr o2::vertexing::DCAFitterN< N, Args >::GPUd ( )
protected

◆ GPUd() [18/27]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUd ( )
protected

◆ GPUd() [19/27]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUd ( )
protected

◆ GPUd() [20/27]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUd ( )
protected

◆ GPUd() [21/27]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUd ( )
protected

◆ GPUd() [22/27]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUd ( )
protected

◆ GPUd() [23/27]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUd ( )
protected

◆ GPUd() [24/27]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUd ( )
protected

◆ GPUd() [25/27]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUd ( )
protected

◆ GPUd() [26/27]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUd ( )
protected

◆ GPUd() [27/27]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUd ( ) const

◆ GPUdi() [1/10]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUdi ( ) const &
protected

◆ GPUdi() [2/10]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUdi ( ) const
inlinepure virtualnoexcept

return number of iterations during minimization (no check for its validity)

Definition at line 224 of file DCAFitterN.h.

◆ GPUdi() [3/10]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUdi ( ) const
inline

Definition at line 271 of file DCAFitterN.h.

◆ GPUdi() [4/10]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUdi ( ) const
inlinepure virtual

Definition at line 227 of file DCAFitterN.h.

◆ GPUdi() [5/10]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUdi ( ) const
inline

Definition at line 273 of file DCAFitterN.h.

◆ GPUdi() [6/10]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUdi ( ) &
protected

◆ GPUdi() [7/10]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUdi ( )
inlineprotected

Definition at line 336 of file DCAFitterN.h.

◆ GPUdi() [8/10]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUdi ( )
inlineprotected

Definition at line 355 of file DCAFitterN.h.

◆ GPUdi() [9/10]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUdi ( )
inline

Definition at line 272 of file DCAFitterN.h.

◆ GPUdi() [10/10]

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::GPUdi ( )

◆ isPropagationFailure()

template<int N, typename... Args>
bool o2::vertexing::DCAFitterN< N, Args >::isPropagationFailure ( int  cand = 0) const
inline

track param propagated to V0 candidate (no check for the candidate validity) propagateTracksToVertex must be called in advance

Definition at line 178 of file DCAFitterN.h.

◆ setBadCovPolicy()

template<int N, typename... Args>
void o2::vertexing::DCAFitterN< N, Args >::setBadCovPolicy ( BadCovPolicy  v)
inlineprotected

Definition at line 362 of file DCAFitterN.h.

Member Data Documentation

◆ args

template<int N, typename... Args>
int class Tr const T const Tr& o2::vertexing::DCAFitterN< N, Args >::args
protected
Initial value:
{
static_assert(std::is_convertible<T, Track>(), "Wrong track type")

Definition at line 327 of file DCAFitterN.h.

◆ cand

template<int N, typename... Args>
int o2::vertexing::DCAFitterN< N, Args >::cand
protected
Initial value:
= 0) const { return mTrPos[mOrder[cand]][i]; }
GPUd() float getTrackX(int i, int cand = 0) const { return getTrackPos(i, cand)[0]; }
GPUd() MatStd3D getTrackRotMatrix(int i) const
{
MatStd3D mat;
mat(2, 2) = 1;
mat(0, 0) = mat(1, 1) = mTrAux[i].c;
mat(0, 1) = -mTrAux[i].s;
mat(1, 0) = mTrAux[i].s;
return mat;
}
GPUd() MatSym3D getTrackCovMatrix(int i, int cand = 0) const
{
const auto& trc = mCandTr[mOrder[cand]][i];
MatSym3D mat;
mat(0, 0) = trc.getSigmaY2() * XerrFactor;
mat(1, 1) = trc.getSigmaY2();
mat(2, 2) = trc.getSigmaZ2();
mat(2, 1) = trc.getSigmaZY();
return mat;
}
GPUd() void assign(int) {}
template <class T
int32_t i
GPUd() const auto getPCACandidatePos(int cand=0) const
return position of quality-ordered candidate in the internal structures
Definition DCAFitterN.h:158
int cand
track X-param at V0 candidate (no check for the candidate validity)
Definition DCAFitterN.h:299
typedef void(APIENTRYP PFNGLCULLFACEPROC)(GLenum mode)

track X-param at V0 candidate (no check for the candidate validity)

Definition at line 299 of file DCAFitterN.h.

◆ mOrigTrPtr

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::mOrigTrPtr[i] = &t
protected

Definition at line 332 of file DCAFitterN.h.

◆ pnt

template<int N, typename... Args>
o2::vertexing::DCAFitterN< N, Args >::pnt[2] = tr.getY()
protected

Definition at line 351 of file DCAFitterN.h.

◆ t

template<int N, typename... Args>
int class Tr const T& o2::vertexing::DCAFitterN< N, Args >::t
protected

Definition at line 327 of file DCAFitterN.h.

◆ tr

template<int N, typename... Args>
const Track& o2::vertexing::DCAFitterN< N, Args >::tr
protected
Initial value:

Definition at line 348 of file DCAFitterN.h.


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