PandaRoot
PndFTSCATrackParamVector Class Reference

#include <PndFTSCATrackParamVector.h>

Classes

struct  PndFTSCATrackFitParam
 

Public Member Functions

 PndFTSCATrackParamVector ()
 
void ConvertTrackParamToVector (PndFTSCATrackParam t0[float_v::Size], int nTracksV)
 
void InitCovMatrix (float_v d2QMom=0.f)
 
void InitByTarget (const FTSCATarget &target)
 
void InitByHit (const FTSCAHitV &hit, const PndFTSCAParam &param, const float_v &dQMom)
 
void InitDirection (float_v r0, float_v r1, float_v r2)
 
float_v X () const
 
float_v Y () const
 
float_v Z () const
 
float_v SinPhi () const
 
float_v DzDs () const
 
float_v QPt () const
 
float_v Angle () const
 
float_v X0 () const
 
float_v X1 () const
 
float_v X2 () const
 
float_v Tx1 () const
 
float_v Tx2 () const
 
float_v QMomentum () const
 
float_v SignCosPhi () const
 
float_v Chi2 () const
 
int_v NDF () const
 
float_v Err2Y () const
 
float_v Err2Z () const
 
float_v Err2SinPhi () const
 
float_v Err2DzDs () const
 
float_v Err2QPt () const
 
float_v GetX () const
 
float_v GetY () const
 
float_v GetZ () const
 
float_v GetSinPhi () const
 
float_v GetDzDs () const
 
float_v GetQPt () const
 
float_v GetSignCosPhi () const
 
float_v GetChi2 () const
 
int_v GetNDF () const
 
float_v GetKappa (const float_v &Bz) const
 
float_v GetCosPhiPositive () const
 
float_v GetCosPhi () const
 
float_v Err2X1 () const
 
float_v Err2X2 () const
 
float_v Err2QMomentum () const
 
const float_v & Par (int i) const
 
const float_v & Cov (int i) const
 
void SetTrackParam (const PndFTSCATrackParamVector &param, const float_m &m=float_m(true))
 
void SetTrackParamOne (int iV, const PndFTSCATrackParamVector &param, int iVa)
 
void SetPar (int i, const float_v &v)
 
void SetPar (int i, const float_v &v, const float_m &m)
 
void SetCov (int i, const float_v &v)
 
void SetCov (int i, const float_v &v, const float_m &m)
 
void SetX (const float_v &v)
 
void SetY (const float_v &v)
 
void SetZ (const float_v &v)
 
void SetX (const float_v &v, const float_m &m)
 
void SetY (const float_v &v, const float_m &m)
 
void SetZ (const float_v &v, const float_m &m)
 
void SetSinPhi (const float_v &v)
 
void SetSinPhi (const float_v &v, const float_m &m)
 
void SetDzDs (const float_v &v)
 
void SetDzDs (const float_v &v, const float_m &m)
 
void SetQPt (const float_v &v)
 
void SetQMomentum (const float_v &v)
 
void SetQPt (const float_v &v, const float_m &m)
 
void SetSignCosPhi (const float_v &v)
 
void SetSignCosPhi (const float_v &v, const float_m &m)
 
void SetChi2 (const float_v &v)
 
void SetChi2 (const float_v &v, const float_m &m)
 
void SetNDF (int v)
 
void SetNDF (const int_v &v)
 
void SetNDF (const int_v &v, const int_m &m)
 
void SetAngle (const float_v &v)
 
void SetAngle (const float_v &v, const float_m &m)
 
void SetErr2Y (float_v v)
 
void SetErr2Z (float_v v)
 
void SetErr2QPt (float_v v)
 
float_v GetDist2 (const PndFTSCATrackParamVector &t) const
 
float_v GetDistXZ2 (const PndFTSCATrackParamVector &t) const
 
float_v GetS (const float_v &x, const float_v &y, const float_v &Bz) const
 
void GetDCAPoint (const float_v &x, const float_v &y, const float_v &z, float_v *px, float_v *py, float_v *pz, const float_v &Bz) const
 
float_m TransportToX0WithMaterial (const float_v &x, const float_v &XOverX0, const float_v &XThimesRho, const float_v &Bz, const float maxSinPhi=.999f)
 
float_m TransportToX0 (const float_v &x, const float_v &Bz, const float maxSinPhi=.999f, const float_m &mask=float_m(true))
 
float_m TransportToX0 (const float_v &x, PndFTSCATrackLinearisationVector &t0, const float_v &Bz, const float maxSinPhi=.999f, float_v *DL=0, const float_m &mask=float_m(true))
 
float_m TransportToX0 (const float_v &x, const float_v &sinPhi0, const float_v &Bz, const float_v maxSinPhi=.999f, const float_m &mask=float_m(true))
 
float_m TransportToX0WithMaterial (const float_v &x, PndFTSCATrackLinearisationVector &t0, PndFTSCATrackFitParam &par, const float_v &XOverX0, const float_v &XThimesRho, const float_v &Bz, const float maxSinPhi=.999f, const float_m &mask=float_m(true))
 
float_m TransportToX0WithMaterial (const float_v &x, PndFTSCATrackFitParam &par, const float_v &XOverX0, const float_v &XThimesRho, const float_v &Bz, const float maxSinPhi=.999f)
 
float_m Rotate (const float_v &alpha, PndFTSCATrackLinearisationVector &t0, const float maxSinPhi=.999f, const float_m &mask=float_m(true))
 
float_m Rotate (const float_v &alpha, const float maxSinPhi=.999f, const float_m &mask=float_m(true))
 
void RotateXY (float_v alpha, float_v &x, float_v &y, float_v &sin, const float_m &mask=float_m(true)) const
 
float_m FilterWithMaterial (const float_v &y, const float_v &z, float_v err2Y, float_v errYZ, float_v err2Z, float maxSinPhi=0.999f, const float_m &mask=float_m(true), const int_v &hitNDF=int_v(2), const float_v &chi2Cut=10e10f)
 
float_m FilterWithMaterial (const float_v &y, const float_v &z, const FTSCAStripInfo &info, float_v err2, float maxSinPhi=0.999f, const float_m &mask=float_m(true), const float_v &chi2Cut=10e10f)
 
float_m FilterWithMaterial (const float_v &y, const float_v &z, const float_v &r, const FTSCAStripInfo &info, float_v err2, float maxSinPhi=0.999f, const float_m &mask=float_m(true), const float_v &chi2Cut=10e10f)
 
void CalculateFitParameters (PndFTSCATrackFitParam &par, const float_v &mass=0.13957f)
 
float_m CorrectForMeanMaterial (const float_v &xOverX0, const float_v &xTimesRho, const PndFTSCATrackFitParam &par, const float_m &_mask)
 
float_m FilterVtx (const float_v &xV, const float_v &yV, const CAX1X2MeasurementInfo &info, float_v &extrDx, float_v &extrDy, float_v J[], const float_m &active=float_m(true))
 
float_m TransportJ0ToX0 (const float_v &x0, const float_v &cBz, float_v &extrDy, float_v &extrDz, float_v J[], const float_m &active=float_m(true))
 
float_m Transport (const int_v &ista, const PndFTSCAParam &param, const float_m &mask=float_m(true))
 
float_m Transport (const FTSCAHitV &hit, const PndFTSCAParam &p, const float_m &mask=float_m(true))
 
float_m Filter (const FTSCAHitV &hit, const PndFTSCAParam &param, const float_m &mask=float_m(true), const float_v &chi2Cut=10e10f)
 
float_m Transport (const FTSCAHit &hit, const PndFTSCAParam &p, const float_m &mask=float_m(true))
 
float_m Filter (const FTSCAHit &hit, const PndFTSCAParam &param, const float_m &mask=float_m(true), const float_v &chi2Cut=10e10f)
 
float_m AddTarget (const FTSCATarget &target, const float_m &mask=float_m(true))
 

Static Public Member Functions

static float_v ApproximateBetheBloch (const float_v &beta2)
 
static float_v BetheBlochGeant (const float_v &bg, const float_v &kp0=2.33f, const float_v &kp1=0.20f, const float_v &kp2=3.00f, const float_v &kp3=173e-9f, const float_v &kp4=0.49848f)
 
static float_v BetheBlochSolid (const float_v &bg)
 
static float_v BetheBlochGas (const float_v &bg)
 

Friends

class PndFTSCATrackParam
 
std::istream & operator>> (std::istream &, PndFTSCATrackParamVector &)
 
std::ostream & operator<< (std::ostream &, const PndFTSCATrackParamVector &)
 

Detailed Description

PndFTSCATrackParamVector class describes the track parametrisation which is used by the PndFTSCATracker slice tracker.

Definition at line 1273 of file PndFTSCATrackParamVector.h.

Constructor & Destructor Documentation

◆ PndFTSCATrackParamVector()

PndFTSCATrackParamVector::PndFTSCATrackParamVector ( )
inline

Definition at line 1278 of file PndFTSCATrackParamVector.h.

References ConvertTrackParamToVector(), i, InitByHit(), InitByTarget(), and InitCovMatrix().

1278  : fX(Vc::Zero), fSignCosPhi(Vc::Zero), fChi2(Vc::Zero), fNDF(Vc::Zero)
1279  {
1280  for (int i = 0; i < 5; ++i)
1281  fP[i].setZero();
1282  for (int i = 0; i < 15; ++i)
1283  fC[i].setZero();
1284  }
unsigned int i
Definition: P4_F32vec4.h:21

Member Function Documentation

◆ AddTarget()

float_m PndFTSCATrackParamVector::AddTarget ( const FTSCATarget target,
const float_m &  mask = float_m(true) 
)

Referenced by SetErr2QPt().

◆ Angle()

float_v PndFTSCATrackParamVector::Angle ( ) const
inline

Definition at line 1319 of file PndFTSCATrackParamVector.h.

Referenced by SetTrackParam(), and SetTrackParamOne().

1319 { return fAlpha; }

◆ ApproximateBetheBloch()

static float_v PndFTSCATrackParamVector::ApproximateBetheBloch ( const float_v &  beta2)
static

Referenced by SetErr2QPt().

◆ BetheBlochGas()

static float_v PndFTSCATrackParamVector::BetheBlochGas ( const float_v &  bg)
static

Referenced by SetErr2QPt().

◆ BetheBlochGeant()

static float_v PndFTSCATrackParamVector::BetheBlochGeant ( const float_v &  bg,
const float_v &  kp0 = 2.33f,
const float_v &  kp1 = 0.20f,
const float_v &  kp2 = 3.00f,
const float_v &  kp3 = 173e-9f,
const float_v &  kp4 = 0.49848f 
)
static

Referenced by SetErr2QPt().

◆ BetheBlochSolid()

static float_v PndFTSCATrackParamVector::BetheBlochSolid ( const float_v &  bg)
static

Referenced by SetErr2QPt().

◆ CalculateFitParameters()

void PndFTSCATrackParamVector::CalculateFitParameters ( PndFTSCATrackFitParam par,
const float_v &  mass = 0.13957f 
)

Referenced by SetErr2QPt().

◆ Chi2()

float_v PndFTSCATrackParamVector::Chi2 ( ) const
inline

Definition at line 1333 of file PndFTSCATrackParamVector.h.

Referenced by PndFTSCAGBTracker::Refit_1().

1333 { return fChi2; }

◆ ConvertTrackParamToVector()

void PndFTSCATrackParamVector::ConvertTrackParamToVector ( PndFTSCATrackParam  t0[float_v::Size],
int  nTracksV 
)

◆ CorrectForMeanMaterial()

float_m PndFTSCATrackParamVector::CorrectForMeanMaterial ( const float_v &  xOverX0,
const float_v &  xTimesRho,
const PndFTSCATrackFitParam par,
const float_m &  _mask 
)

Referenced by SetErr2QPt().

◆ Cov()

const float_v& PndFTSCATrackParamVector::Cov ( int  i) const
inline

Definition at line 1363 of file PndFTSCATrackParamVector.h.

References i.

Referenced by SetTrackParam(), and SetTrackParamOne().

1363 { return fC[i]; }
unsigned int i
Definition: P4_F32vec4.h:21

◆ DzDs()

float_v PndFTSCATrackParamVector::DzDs ( ) const
inline

Definition at line 1316 of file PndFTSCATrackParamVector.h.

Referenced by TransportJ0ToX0(), TransportToX0(), and Tx2().

1316 { return fP[3]; }

◆ Err2DzDs()

float_v PndFTSCATrackParamVector::Err2DzDs ( ) const
inline

Definition at line 1339 of file PndFTSCATrackParamVector.h.

1339 { return fC[9]; }

◆ Err2QMomentum()

float_v PndFTSCATrackParamVector::Err2QMomentum ( ) const
inline

Definition at line 1360 of file PndFTSCATrackParamVector.h.

1360 { return fC[14]; }

◆ Err2QPt()

float_v PndFTSCATrackParamVector::Err2QPt ( ) const
inline

Definition at line 1340 of file PndFTSCATrackParamVector.h.

1340 { return fC[14]; }

◆ Err2SinPhi()

float_v PndFTSCATrackParamVector::Err2SinPhi ( ) const
inline

Definition at line 1338 of file PndFTSCATrackParamVector.h.

1338 { return fC[5]; }

◆ Err2X1()

float_v PndFTSCATrackParamVector::Err2X1 ( ) const
inline

Definition at line 1356 of file PndFTSCATrackParamVector.h.

1356 { return fC[0]; }

◆ Err2X2()

float_v PndFTSCATrackParamVector::Err2X2 ( ) const
inline

Definition at line 1357 of file PndFTSCATrackParamVector.h.

1357 { return fC[2]; }

◆ Err2Y()

float_v PndFTSCATrackParamVector::Err2Y ( ) const
inline

Definition at line 1336 of file PndFTSCATrackParamVector.h.

1336 { return fC[0]; }

◆ Err2Z()

float_v PndFTSCATrackParamVector::Err2Z ( ) const
inline

Definition at line 1337 of file PndFTSCATrackParamVector.h.

1337 { return fC[2]; }

◆ Filter() [1/2]

float_m PndFTSCATrackParamVector::Filter ( const FTSCAHitV hit,
const PndFTSCAParam param,
const float_m &  mask = float_m(true),
const float_v &  chi2Cut = 10e10f 
)

Referenced by SetErr2QPt().

◆ Filter() [2/2]

float_m PndFTSCATrackParamVector::Filter ( const FTSCAHit hit,
const PndFTSCAParam param,
const float_m &  mask = float_m(true),
const float_v &  chi2Cut = 10e10f 
)

◆ FilterVtx()

float_m PndFTSCATrackParamVector::FilterVtx ( const float_v &  xV,
const float_v &  yV,
const CAX1X2MeasurementInfo info,
float_v &  extrDx,
float_v &  extrDy,
float_v  J[],
const float_m &  active = float_m(true) 
)
inline

Definition at line 1902 of file PndFTSCATrackParamVector.h.

References CAX1X2MeasurementInfo::C00(), CAX1X2MeasurementInfo::C10(), CAX1X2MeasurementInfo::C11(), Y(), and Z().

Referenced by SetErr2QPt().

1903 {
1904  float_v zeta0, zeta1, S00, S10, S11, si;
1905  float_v F00, F10, F20, F30, F40, F01, F11, F21, F31, F41;
1906  float_v K00, K10, K20, K30, K40, K01, K11, K21, K31, K41;
1907  float_v &c00 = fC[0];
1908  float_v &c10 = fC[1];
1909  float_v &c11 = fC[2];
1910  float_v &c20 = fC[3];
1911  float_v &c21 = fC[4];
1912  float_v &c22 = fC[5];
1913  float_v &c30 = fC[6];
1914  float_v &c31 = fC[7];
1915  float_v &c32 = fC[8];
1916  float_v &c33 = fC[9];
1917  float_v &c40 = fC[10];
1918  float_v &c41 = fC[11];
1919  float_v &c42 = fC[12];
1920  float_v &c43 = fC[13];
1921  float_v &c44 = fC[14];
1922 
1923  zeta0 = Y() + extrDy - yV;
1924  zeta1 = Z() + extrDz - zV;
1925 
1926  // H = 1 0 J[0] J[1] J[2]
1927  // 0 1 J[3] J[4] J[5]
1928 
1929  // F = CH'
1930  F00 = c00;
1931  F01 = c10;
1932  F10 = c10;
1933  F11 = c11;
1934  F20 = J[0] * c22;
1935  F21 = J[3] * c22;
1936  F30 = J[1] * c33;
1937  F31 = J[4] * c33;
1938  F40 = J[2] * c44;
1939  F41 = J[5] * c44;
1940 
1941  S00 = info.C00() + F00 + J[0] * F20 + J[1] * F30 + J[2] * F40;
1942  S10 = info.C10() + F10 + J[3] * F20 + J[4] * F30 + J[5] * F40;
1943  S11 = info.C11() + F11 + J[3] * F21 + J[4] * F31 + J[5] * F41;
1944 
1945  si = 1.f / (S00 * S11 - S10 * S10);
1946  float_v S00tmp = S00;
1947  S00 = si * S11;
1948  S10 = -si * S10;
1949  S11 = si * S00tmp;
1950 
1951  fChi2(active) += zeta0 * zeta0 * S00 + 2.f * zeta0 * zeta1 * S10 + zeta1 * zeta1 * S11;
1952 
1953  K00 = F00 * S00 + F01 * S10;
1954  K01 = F00 * S10 + F01 * S11;
1955  K10 = F10 * S00 + F11 * S10;
1956  K11 = F10 * S10 + F11 * S11;
1957  K20 = F20 * S00 + F21 * S10;
1958  K21 = F20 * S10 + F21 * S11;
1959  K30 = F30 * S00 + F31 * S10;
1960  K31 = F30 * S10 + F31 * S11;
1961  K40 = F40 * S00 + F41 * S10;
1962  K41 = F40 * S10 + F41 * S11;
1963 
1964  fP[0](active) -= K00 * zeta0 + K01 * zeta1;
1965  fP[1](active) -= K10 * zeta0 + K11 * zeta1;
1966  fP[2](active) -= K20 * zeta0 + K21 * zeta1;
1967  fP[3](active) -= K30 * zeta0 + K31 * zeta1;
1968  fP[4](active) -= K40 * zeta0 + K41 * zeta1;
1969 
1970  c00(active) -= (K00 * F00 + K01 * F01);
1971  c10(active) -= (K10 * F00 + K11 * F01);
1972  c11(active) -= (K10 * F10 + K11 * F11);
1973  c20(active) = -(K20 * F00 + K21 * F01);
1974  c21(active) = -(K20 * F10 + K21 * F11);
1975  c22(active) -= (K20 * F20 + K21 * F21);
1976  c30(active) = -(K30 * F00 + K31 * F01);
1977  c31(active) = -(K30 * F10 + K31 * F11);
1978  c32(active) = -(K30 * F20 + K31 * F21);
1979  c33(active) -= (K30 * F30 + K31 * F31);
1980  c40(active) = -(K40 * F00 + K41 * F01);
1981  c41(active) = -(K40 * F10 + K41 * F11);
1982  c42(active) = -(K40 * F20 + K41 * F21);
1983  c43(active) = -(K40 * F30 + K41 * F31);
1984  c44(active) -= (K40 * F40 + K41 * F41);
1985 
1986  return active;
1987 }
const float_v & C00() const
const float_v & C10() const
const float_v & C11() const

◆ FilterWithMaterial() [1/3]

float_m PndFTSCATrackParamVector::FilterWithMaterial ( const float_v &  y,
const float_v &  z,
float_v  err2Y,
float_v  errYZ,
float_v  err2Z,
float  maxSinPhi = 0.999f,
const float_m &  mask = float_m(true),
const int_v &  hitNDF = int_v(2),
const float_v &  chi2Cut = 10e10f 
)

Referenced by SetErr2QPt().

◆ FilterWithMaterial() [2/3]

float_m PndFTSCATrackParamVector::FilterWithMaterial ( const float_v &  y,
const float_v &  z,
const FTSCAStripInfo info,
float_v  err2,
float  maxSinPhi = 0.999f,
const float_m &  mask = float_m(true),
const float_v &  chi2Cut = 10e10f 
)

◆ FilterWithMaterial() [3/3]

float_m PndFTSCATrackParamVector::FilterWithMaterial ( const float_v &  y,
const float_v &  z,
const float_v &  r,
const FTSCAStripInfo info,
float_v  err2,
float  maxSinPhi = 0.999f,
const float_m &  mask = float_m(true),
const float_v &  chi2Cut = 10e10f 
)

◆ GetChi2()

float_v PndFTSCATrackParamVector::GetChi2 ( ) const
inline

Definition at line 1349 of file PndFTSCATrackParamVector.h.

Referenced by SetTrackParam(), and SetTrackParamOne().

1349 { return fChi2; }

◆ GetCosPhi()

float_v PndFTSCATrackParamVector::GetCosPhi ( ) const
inline

Definition at line 1354 of file PndFTSCATrackParamVector.h.

References SinPhi(), and CAMath::Sqrt().

Referenced by Rotate(), and RotateXY().

1354 { return fSignCosPhi * CAMath::Sqrt(float_v(Vc::One) - SinPhi() * SinPhi()); }
static T Sqrt(const T &x)
Definition: PndCAMath.h:45

◆ GetCosPhiPositive()

float_v PndFTSCATrackParamVector::GetCosPhiPositive ( ) const
inline

Definition at line 1353 of file PndFTSCATrackParamVector.h.

References SinPhi(), and CAMath::Sqrt().

1353 { return CAMath::Sqrt(float_v(Vc::One) - SinPhi() * SinPhi()); }
static T Sqrt(const T &x)
Definition: PndCAMath.h:45

◆ GetDCAPoint()

void PndFTSCATrackParamVector::GetDCAPoint ( const float_v &  x,
const float_v &  y,
const float_v &  z,
float_v *  px,
float_v *  py,
float_v *  pz,
const float_v &  Bz 
) const

Referenced by SetErr2QPt().

◆ GetDist2()

float_v PndFTSCATrackParamVector::GetDist2 ( const PndFTSCATrackParamVector t) const

Referenced by SetErr2QPt().

◆ GetDistXZ2()

float_v PndFTSCATrackParamVector::GetDistXZ2 ( const PndFTSCATrackParamVector t) const

Referenced by SetErr2QPt().

◆ GetDzDs()

float_v PndFTSCATrackParamVector::GetDzDs ( ) const
inline

Definition at line 1346 of file PndFTSCATrackParamVector.h.

1346 { return fP[3]; }

◆ GetKappa()

float_v PndFTSCATrackParamVector::GetKappa ( const float_v &  Bz) const
inline

Definition at line 1352 of file PndFTSCATrackParamVector.h.

1352 { return fP[4] * Bz; }

◆ GetNDF()

int_v PndFTSCATrackParamVector::GetNDF ( ) const
inline

Definition at line 1350 of file PndFTSCATrackParamVector.h.

Referenced by SetTrackParam(), and SetTrackParamOne().

1350 { return fNDF; }

◆ GetQPt()

float_v PndFTSCATrackParamVector::GetQPt ( ) const
inline

Definition at line 1347 of file PndFTSCATrackParamVector.h.

1347 { return fP[4]; }

◆ GetS()

float_v PndFTSCATrackParamVector::GetS ( const float_v &  x,
const float_v &  y,
const float_v &  Bz 
) const

Referenced by SetErr2QPt().

◆ GetSignCosPhi()

float_v PndFTSCATrackParamVector::GetSignCosPhi ( ) const
inline

Definition at line 1348 of file PndFTSCATrackParamVector.h.

1348 { return fSignCosPhi; }

◆ GetSinPhi()

float_v PndFTSCATrackParamVector::GetSinPhi ( ) const
inline

Definition at line 1345 of file PndFTSCATrackParamVector.h.

1345 { return fP[2]; }

◆ GetX()

float_v PndFTSCATrackParamVector::GetX ( ) const
inline

Definition at line 1342 of file PndFTSCATrackParamVector.h.

1342 { return fX; }

◆ GetY()

float_v PndFTSCATrackParamVector::GetY ( ) const
inline

Definition at line 1343 of file PndFTSCATrackParamVector.h.

1343 { return fP[0]; }

◆ GetZ()

float_v PndFTSCATrackParamVector::GetZ ( ) const
inline

Definition at line 1344 of file PndFTSCATrackParamVector.h.

1344 { return fP[1]; }

◆ InitByHit()

void PndFTSCATrackParamVector::InitByHit ( const FTSCAHitV hit,
const PndFTSCAParam param,
const float_v &  dQMom 
)

◆ InitByTarget()

void PndFTSCATrackParamVector::InitByTarget ( const FTSCATarget target)

◆ InitCovMatrix()

void PndFTSCATrackParamVector::InitCovMatrix ( float_v  d2QMom = 0.f)

◆ InitDirection()

void PndFTSCATrackParamVector::InitDirection ( float_v  r0,
float_v  r1,
float_v  r2 
)
inline

Definition at line 1292 of file PndFTSCATrackParamVector.h.

References SetDzDs(), SetSignCosPhi(), SetSinPhi(), and sqrt().

1293  {
1294  const float_v r = sqrt(r0 * r0 + r1 * r1);
1295  SetSinPhi(r1 / r);
1296  SetSignCosPhi(r0 / abs(r0));
1297  SetDzDs(r2 / r);
1298  }
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:28
void SetSignCosPhi(const float_v &v)
void SetSinPhi(const float_v &v)

◆ NDF()

int_v PndFTSCATrackParamVector::NDF ( ) const
inline

Definition at line 1334 of file PndFTSCATrackParamVector.h.

Referenced by PndFTSCAGBTracker::Refit_1().

1334 { return fNDF; }

◆ Par()

const float_v& PndFTSCATrackParamVector::Par ( int  i) const
inline

Definition at line 1362 of file PndFTSCATrackParamVector.h.

References i.

Referenced by SetTrackParam(), and SetTrackParamOne().

1362 { return fP[i]; }
unsigned int i
Definition: P4_F32vec4.h:21

◆ QMomentum()

float_v PndFTSCATrackParamVector::QMomentum ( ) const
inline

Definition at line 1326 of file PndFTSCATrackParamVector.h.

References QPt().

1326 { return QPt(); } // used for triplets comparison

◆ QPt()

float_v PndFTSCATrackParamVector::QPt ( ) const
inline

Definition at line 1317 of file PndFTSCATrackParamVector.h.

Referenced by QMomentum(), and TransportToX0().

1317 { return fP[4]; }

◆ Rotate() [1/2]

float_m PndFTSCATrackParamVector::Rotate ( const float_v &  alpha,
PndFTSCATrackLinearisationVector t0,
const float  maxSinPhi = .999f,
const float_m &  mask = float_m(true) 
)

Referenced by SetErr2QPt().

◆ Rotate() [2/2]

float_m PndFTSCATrackParamVector::Rotate ( const float_v &  alpha,
const float  maxSinPhi = .999f,
const float_m &  mask = float_m(true) 
)
inline

Definition at line 1839 of file PndFTSCATrackParamVector.h.

References CAMath::Abs(), alpha, CAMath::Cos(), f, GetCosPhi(), SetSignCosPhi(), SetSinPhi(), SetX(), SetY(), CAMath::Sin(), SinPhi(), X(), and Y().

1840 {
1841  //* Rotate the coordinate system in XY on the angle alpha
1842  if ((abs(alpha) < 1e-6f || !mask).isFull())
1843  return mask;
1844 
1845  const float_v cA = CAMath::Cos(alpha);
1846  const float_v sA = CAMath::Sin(alpha);
1847  const float_v x = X(), y = Y(), sP = SinPhi(), cP = GetCosPhi();
1848  const float_v cosPhi = cP * cA + sP * sA;
1849  const float_v sinPhi = -cP * sA + sP * cA;
1850 
1851  float_m mReturn = mask && (CAMath::Abs(sinPhi) < maxSinPhi) && (CAMath::Abs(cosPhi) > 1.e-2f) && (CAMath::Abs(cP) > 1.e-2f);
1852 
1853  mReturn &= abs(alpha) < 3.1415f * 0.25f; // allow turn by 45 degree only
1854 
1855  const float_v j0 = cP / cosPhi;
1856  const float_v j2 = cosPhi / cP;
1857 
1858  SetX(x * cA + y * sA, mReturn);
1859  SetY(-x * sA + y * cA, mReturn);
1860  SetSignCosPhi(CAMath::Abs(cosPhi) / cosPhi, mReturn);
1861  SetSinPhi(sinPhi, mReturn);
1862 
1863  // float J[5][5] = { { j0, 0, 0, 0, 0 }, // Y
1864  // { 0, 1, 0, 0, 0 }, // Z
1865  // { 0, 0, j2, 0, 0 }, // SinPhi
1866  // { 0, 0, 0, 1, 0 }, // DzDs
1867  // { 0, 0, 0, 0, 1 } }; // Kappa
1868  // cout<<"alpha="<<alpha<<" "<<x<<" "<<y<<" "<<sP<<" "<<cP<<" "<<j0<<" "<<j2<<endl;
1869  // cout<<" "<<fC[0]<<" "<<fC[1]<<" "<<fC[6]<<" "<<fC[10]<<" "<<fC[4]<<" "<<fC[5]<<" "<<fC[8]<<" "<<fC[12]<<endl;
1870  fC[0](mReturn) *= j0 * j0;
1871  fC[1](mReturn) *= j0;
1872  fC[3](mReturn) *= j0;
1873  fC[6](mReturn) *= j0;
1874  fC[10](mReturn) *= j0;
1875 
1876  fC[3](mReturn) *= j2;
1877  fC[4](mReturn) *= j2;
1878  fC[5](mReturn) *= j2 * j2;
1879  fC[8](mReturn) *= j2;
1880  fC[12](mReturn) *= j2;
1881 
1882  fAlpha(mReturn) += alpha;
1883  // cout<<" "<<fC[0]<<" "<<fC[1]<<" "<<fC[6]<<" "<<fC[10]<<" "<<fC[4]<<" "<<fC[5]<<" "<<fC[8]<<" "<<fC[12]<<endl;
1884  return mReturn;
1885 }
void SetSignCosPhi(const float_v &v)
static T Sin(const T &x)
Definition: PndCAMath.h:71
void SetSinPhi(const float_v &v)
static T Cos(const T &x)
Definition: PndCAMath.h:76
static T Abs(const T &x)
Definition: PndCAMath.h:56
float f
Definition: P4_F32vec4.h:20
double alpha
Definition: f_Init.h:7

◆ RotateXY()

void PndFTSCATrackParamVector::RotateXY ( float_v  alpha,
float_v &  x,
float_v &  y,
float_v &  sin,
const float_m &  mask = float_m(true) 
) const
inline

Definition at line 1887 of file PndFTSCATrackParamVector.h.

References CAMath::Cos(), GetCosPhi(), CAMath::Sin(), sin(), SinPhi(), X(), and Y().

Referenced by SetErr2QPt().

1888 {
1889  //* Rotate the coordinate system in XY on the angle alpha
1890  if ((abs(alpha) < 1e-6f || !mask).isFull())
1891  return;
1892 
1893  const float_v cA = CAMath::Cos(alpha);
1894  const float_v sA = CAMath::Sin(alpha);
1895 
1896  x(mask) = (X() * cA + Y() * sA);
1897  y(mask) = (-X() * sA + Y() * cA);
1898  sin(mask) = -GetCosPhi() * sA + SinPhi() * cA;
1899 }
friend F32vec4 sin(const F32vec4 &a)
Definition: P4_F32vec4.h:118
static T Sin(const T &x)
Definition: PndCAMath.h:71
static T Cos(const T &x)
Definition: PndCAMath.h:76
float f
Definition: P4_F32vec4.h:20
double alpha
Definition: f_Init.h:7

◆ SetAngle() [1/2]

void PndFTSCATrackParamVector::SetAngle ( const float_v &  v)
inline

Definition at line 1425 of file PndFTSCATrackParamVector.h.

References v.

1425 { fAlpha = v; }
__m128 v
Definition: P4_F32vec4.h:3

◆ SetAngle() [2/2]

void PndFTSCATrackParamVector::SetAngle ( const float_v &  v,
const float_m &  m 
)
inline

Definition at line 1426 of file PndFTSCATrackParamVector.h.

References v.

1426 { fAlpha(m) = v; }
__m128 m
Definition: P4_F32vec4.h:26
__m128 v
Definition: P4_F32vec4.h:3

◆ SetChi2() [1/2]

void PndFTSCATrackParamVector::SetChi2 ( const float_v &  v)
inline

Definition at line 1419 of file PndFTSCATrackParamVector.h.

References v.

Referenced by FTSCATrack::Fit2Times(), and PndFTSCAGBTracker::Refit_1().

1419 { fChi2 = v; }
__m128 v
Definition: P4_F32vec4.h:3

◆ SetChi2() [2/2]

void PndFTSCATrackParamVector::SetChi2 ( const float_v &  v,
const float_m &  m 
)
inline

Definition at line 1420 of file PndFTSCATrackParamVector.h.

References v.

1420 { fChi2(m) = v; }
__m128 m
Definition: P4_F32vec4.h:26
__m128 v
Definition: P4_F32vec4.h:3

◆ SetCov() [1/2]

void PndFTSCATrackParamVector::SetCov ( int  i,
const float_v &  v 
)
inline

Definition at line 1401 of file PndFTSCATrackParamVector.h.

References i, and v.

1401 { fC[i] = v; }
__m128 v
Definition: P4_F32vec4.h:3
unsigned int i
Definition: P4_F32vec4.h:21

◆ SetCov() [2/2]

void PndFTSCATrackParamVector::SetCov ( int  i,
const float_v &  v,
const float_m &  m 
)
inline

Definition at line 1402 of file PndFTSCATrackParamVector.h.

References i, and m.

1402 { fC[i](m) = v; }
__m128 m
Definition: P4_F32vec4.h:26
__m128 v
Definition: P4_F32vec4.h:3
unsigned int i
Definition: P4_F32vec4.h:21

◆ SetDzDs() [1/2]

void PndFTSCATrackParamVector::SetDzDs ( const float_v &  v)
inline

Definition at line 1412 of file PndFTSCATrackParamVector.h.

References v.

Referenced by InitDirection().

1412 { fP[3] = v; }
__m128 v
Definition: P4_F32vec4.h:3

◆ SetDzDs() [2/2]

void PndFTSCATrackParamVector::SetDzDs ( const float_v &  v,
const float_m &  m 
)
inline

Definition at line 1413 of file PndFTSCATrackParamVector.h.

References m.

1413 { fP[3](m) = v; }
__m128 m
Definition: P4_F32vec4.h:26
__m128 v
Definition: P4_F32vec4.h:3

◆ SetErr2QPt()

◆ SetErr2Y()

void PndFTSCATrackParamVector::SetErr2Y ( float_v  v)
inline

Definition at line 1428 of file PndFTSCATrackParamVector.h.

References v.

1428 { fC[0] = v; }
__m128 v
Definition: P4_F32vec4.h:3

◆ SetErr2Z()

void PndFTSCATrackParamVector::SetErr2Z ( float_v  v)
inline

Definition at line 1429 of file PndFTSCATrackParamVector.h.

References v.

1429 { fC[2] = v; }
__m128 v
Definition: P4_F32vec4.h:3

◆ SetNDF() [1/3]

void PndFTSCATrackParamVector::SetNDF ( int  v)
inline

Definition at line 1421 of file PndFTSCATrackParamVector.h.

References v.

Referenced by FTSCATrack::Fit2Times().

1421 { fNDF = v; }
__m128 v
Definition: P4_F32vec4.h:3

◆ SetNDF() [2/3]

void PndFTSCATrackParamVector::SetNDF ( const int_v &  v)
inline

Definition at line 1422 of file PndFTSCATrackParamVector.h.

References v.

1422 { fNDF = v; }
__m128 v
Definition: P4_F32vec4.h:3

◆ SetNDF() [3/3]

void PndFTSCATrackParamVector::SetNDF ( const int_v &  v,
const int_m &  m 
)
inline

Definition at line 1423 of file PndFTSCATrackParamVector.h.

References v.

1423 { fNDF(m) = v; }
__m128 m
Definition: P4_F32vec4.h:26
__m128 v
Definition: P4_F32vec4.h:3

◆ SetPar() [1/2]

void PndFTSCATrackParamVector::SetPar ( int  i,
const float_v &  v 
)
inline

Definition at line 1399 of file PndFTSCATrackParamVector.h.

References i, and v.

1399 { fP[i] = v; }
__m128 v
Definition: P4_F32vec4.h:3
unsigned int i
Definition: P4_F32vec4.h:21

◆ SetPar() [2/2]

void PndFTSCATrackParamVector::SetPar ( int  i,
const float_v &  v,
const float_m &  m 
)
inline

Definition at line 1400 of file PndFTSCATrackParamVector.h.

References i, and m.

1400 { fP[i](m) = v; }
__m128 m
Definition: P4_F32vec4.h:26
__m128 v
Definition: P4_F32vec4.h:3
unsigned int i
Definition: P4_F32vec4.h:21

◆ SetQMomentum()

void PndFTSCATrackParamVector::SetQMomentum ( const float_v &  v)
inline

Definition at line 1415 of file PndFTSCATrackParamVector.h.

References SetQPt().

1415 { SetQPt(v); }
__m128 v
Definition: P4_F32vec4.h:3

◆ SetQPt() [1/2]

void PndFTSCATrackParamVector::SetQPt ( const float_v &  v)
inline

Definition at line 1414 of file PndFTSCATrackParamVector.h.

References v.

Referenced by SetQMomentum().

1414 { fP[4] = v; }
__m128 v
Definition: P4_F32vec4.h:3

◆ SetQPt() [2/2]

void PndFTSCATrackParamVector::SetQPt ( const float_v &  v,
const float_m &  m 
)
inline

Definition at line 1416 of file PndFTSCATrackParamVector.h.

References m.

1416 { fP[4](m) = v; }
__m128 m
Definition: P4_F32vec4.h:26
__m128 v
Definition: P4_F32vec4.h:3

◆ SetSignCosPhi() [1/2]

void PndFTSCATrackParamVector::SetSignCosPhi ( const float_v &  v)
inline

Definition at line 1417 of file PndFTSCATrackParamVector.h.

References v.

Referenced by InitDirection(), and Rotate().

1417 { fSignCosPhi = v; }
__m128 v
Definition: P4_F32vec4.h:3

◆ SetSignCosPhi() [2/2]

void PndFTSCATrackParamVector::SetSignCosPhi ( const float_v &  v,
const float_m &  m 
)
inline

Definition at line 1418 of file PndFTSCATrackParamVector.h.

References v.

1418 { fSignCosPhi(m) = v; }
__m128 m
Definition: P4_F32vec4.h:26
__m128 v
Definition: P4_F32vec4.h:3

◆ SetSinPhi() [1/2]

void PndFTSCATrackParamVector::SetSinPhi ( const float_v &  v)
inline

Definition at line 1410 of file PndFTSCATrackParamVector.h.

References v.

Referenced by InitDirection(), and Rotate().

1410 { fP[2] = v; }
__m128 v
Definition: P4_F32vec4.h:3

◆ SetSinPhi() [2/2]

void PndFTSCATrackParamVector::SetSinPhi ( const float_v &  v,
const float_m &  m 
)
inline

Definition at line 1411 of file PndFTSCATrackParamVector.h.

References m.

1411 { fP[2](m) = v; }
__m128 m
Definition: P4_F32vec4.h:26
__m128 v
Definition: P4_F32vec4.h:3

◆ SetTrackParam()

void PndFTSCATrackParamVector::SetTrackParam ( const PndFTSCATrackParamVector param,
const float_m &  m = float_m(true) 
)
inline

Definition at line 1373 of file PndFTSCATrackParamVector.h.

References Angle(), Cov(), GetChi2(), GetNDF(), i, m, Par(), SignCosPhi(), and X().

1374  {
1375  for (int i = 0; i < 5; i++)
1376  fP[i](m) = param.Par()[i];
1377  for (int i = 0; i < 15; i++)
1378  fC[i](m) = param.Cov()[i];
1379  fX(m) = param.X();
1380  fSignCosPhi(m) = param.SignCosPhi();
1381  fChi2(m) = param.GetChi2();
1382  fNDF(static_cast<int_m>(m)) = param.GetNDF();
1383  fAlpha(static_cast<int_m>(m)) = param.Angle();
1384  }
__m128 m
Definition: P4_F32vec4.h:26
unsigned int i
Definition: P4_F32vec4.h:21
const float_v & Par(int i) const
const float_v & Cov(int i) const

◆ SetTrackParamOne()

void PndFTSCATrackParamVector::SetTrackParamOne ( int  iV,
const PndFTSCATrackParamVector param,
int  iVa 
)
inline

Definition at line 1386 of file PndFTSCATrackParamVector.h.

References Angle(), Cov(), GetChi2(), GetNDF(), i, Par(), SignCosPhi(), and X().

Referenced by FTSCANPletV::CopyOne().

1387  {
1388  for (int i = 0; i < 5; i++)
1389  fP[i][iV] = param.Par()[i][iVa];
1390  for (int i = 0; i < 15; i++)
1391  fC[i][iV] = param.Cov()[i][iVa];
1392  fX[iV] = param.X()[iVa];
1393  fSignCosPhi[iV] = param.SignCosPhi()[iVa];
1394  fChi2[iV] = param.GetChi2()[iVa];
1395  fNDF[iV] = param.GetNDF()[iVa];
1396  fAlpha[iV] = param.Angle()[iVa];
1397  }
unsigned int i
Definition: P4_F32vec4.h:21
const float_v & Par(int i) const
const float_v & Cov(int i) const

◆ SetX() [1/2]

void PndFTSCATrackParamVector::SetX ( const float_v &  v)
inline

Definition at line 1404 of file PndFTSCATrackParamVector.h.

References v.

Referenced by PndFTSCAGBTracker::Refit_1(), and Rotate().

1404 { fX = v; }
__m128 v
Definition: P4_F32vec4.h:3

◆ SetX() [2/2]

void PndFTSCATrackParamVector::SetX ( const float_v &  v,
const float_m &  m 
)
inline

Definition at line 1407 of file PndFTSCATrackParamVector.h.

References v.

1407 { fX(m) = v; }
__m128 m
Definition: P4_F32vec4.h:26
__m128 v
Definition: P4_F32vec4.h:3

◆ SetY() [1/2]

void PndFTSCATrackParamVector::SetY ( const float_v &  v)
inline

Definition at line 1405 of file PndFTSCATrackParamVector.h.

References v.

Referenced by PndFTSCAGBTracker::Refit_1(), and Rotate().

1405 { fP[0] = v; }
__m128 v
Definition: P4_F32vec4.h:3

◆ SetY() [2/2]

void PndFTSCATrackParamVector::SetY ( const float_v &  v,
const float_m &  m 
)
inline

Definition at line 1408 of file PndFTSCATrackParamVector.h.

References m.

1408 { fP[0](m) = v; }
__m128 m
Definition: P4_F32vec4.h:26
__m128 v
Definition: P4_F32vec4.h:3

◆ SetZ() [1/2]

void PndFTSCATrackParamVector::SetZ ( const float_v &  v)
inline

Definition at line 1406 of file PndFTSCATrackParamVector.h.

References v.

1406 { fP[1] = v; }
__m128 v
Definition: P4_F32vec4.h:3

◆ SetZ() [2/2]

void PndFTSCATrackParamVector::SetZ ( const float_v &  v,
const float_m &  m 
)
inline

Definition at line 1409 of file PndFTSCATrackParamVector.h.

References m.

1409 { fP[1](m) = v; }
__m128 m
Definition: P4_F32vec4.h:26
__m128 v
Definition: P4_F32vec4.h:3

◆ SignCosPhi()

float_v PndFTSCATrackParamVector::SignCosPhi ( ) const
inline

The sign of cos phi is always positive in the slice tracker. Only after coordinate transformation can the sign change to negative.

Definition at line 1332 of file PndFTSCATrackParamVector.h.

Referenced by PndFTSCATrackLinearisationVector::PndFTSCATrackLinearisationVector(), SetTrackParam(), SetTrackParamOne(), Tx1(), and Tx2().

1332 { return fSignCosPhi; }

◆ SinPhi()

float_v PndFTSCATrackParamVector::SinPhi ( ) const
inline

Definition at line 1315 of file PndFTSCATrackParamVector.h.

Referenced by GetCosPhi(), GetCosPhiPositive(), Rotate(), RotateXY(), TransportJ0ToX0(), TransportToX0(), Tx1(), and Tx2().

1315 { return fP[2]; }

◆ Transport() [1/3]

float_m PndFTSCATrackParamVector::Transport ( const int_v &  ista,
const PndFTSCAParam param,
const float_m &  mask = float_m(true) 
)

Referenced by SetErr2QPt().

◆ Transport() [2/3]

float_m PndFTSCATrackParamVector::Transport ( const FTSCAHitV hit,
const PndFTSCAParam p,
const float_m &  mask = float_m(true) 
)

◆ Transport() [3/3]

float_m PndFTSCATrackParamVector::Transport ( const FTSCAHit hit,
const PndFTSCAParam p,
const float_m &  mask = float_m(true) 
)

◆ TransportJ0ToX0()

float_m PndFTSCATrackParamVector::TransportJ0ToX0 ( const float_v &  x0,
const float_v &  cBz,
float_v &  extrDy,
float_v &  extrDz,
float_v  J[],
const float_m &  active = float_m(true) 
)
inline

Definition at line 1989 of file PndFTSCATrackParamVector.h.

References CAMath::Abs(), DzDs(), operator<<, operator>>, CAMath::RSqrt(), SinPhi(), and X().

Referenced by SetErr2QPt().

1990 {
1991  const float_v &ey = SinPhi();
1992  const float_v &dx = x - X();
1993  const float_v &exi = CAMath::RSqrt(float_v(Vc::One) - ey * ey); // RSqrt
1994 
1995  const float_v &dxBz = dx * cBz;
1996  const float_v &dS = dx * exi;
1997  const float_v &h2 = dS * exi * exi;
1998  const float_v &h4 = .5f * h2 * dxBz;
1999 
2000  float_m mask = active && CAMath::Abs(exi) <= 1.e4f;
2001 
2002  extrDy(active) = dS * ey;
2003  extrDz(active) = dS * DzDs();
2004  J[0](active) = dS;
2005  J[1](active) = 0;
2006  J[2](active) = h4;
2007  J[3](active) = dS;
2008  J[4](active) = dS;
2009  J[5](active) = 0;
2010  return active;
2011 }
static T Abs(const T &x)
Definition: PndCAMath.h:56
static T RSqrt(const T &x)
Definition: PndCAMath.h:50

◆ TransportToX0() [1/3]

float_m PndFTSCATrackParamVector::TransportToX0 ( const float_v &  x,
const float_v &  Bz,
const float  maxSinPhi = .999f,
const float_m &  mask = float_m(true) 
)

Referenced by SetErr2QPt().

◆ TransportToX0() [2/3]

float_m PndFTSCATrackParamVector::TransportToX0 ( const float_v &  x,
PndFTSCATrackLinearisationVector t0,
const float_v &  Bz,
const float  maxSinPhi = .999f,
float_v *  DL = 0,
const float_m &  mask = float_m(true) 
)

◆ TransportToX0() [3/3]

float_m PndFTSCATrackParamVector::TransportToX0 ( const float_v &  x,
const float_v &  sinPhi0,
const float_v &  Bz,
const float_v  maxSinPhi = .999f,
const float_m &  mask = float_m(true) 
)
inline

mvz start 23.01.2010

mvz end 23.01.2010

Definition at line 1506 of file PndFTSCATrackParamVector.h.

References CAMath::Abs(), debugKF(), DzDs(), QPt(), CAMath::RSqrt(), SinPhi(), and X().

1507 {
1508  //* Transport the track parameters to X=x, using linearization at phi0 with 0 curvature,
1509  //* and the field value Bz
1510  //* maxSinPhi is the max. allowed value for |t0.SinPhi()|
1511  //* linearisation of trajectory t0 is also transported to X=x,
1512  //* returns 1 if OK
1513  //*
1514 
1515  debugKF() << "Start TransportToX0(" << x << ", " << _mask << ")\n" << *this << std::endl;
1516 
1517  const float_v &ey = sinPhi0;
1518  const float_v &dx = x - X();
1519  const float_v &exi = float_v(Vc::One) * CAMath::RSqrt(float_v(Vc::One) - ey * ey); // RSqrt
1520 
1521  const float_v &dxBz = dx * Bz;
1522  const float_v &dS = dx * exi;
1523  const float_v &h2 = dS * exi * exi;
1524  const float_v &h4 = .5f * h2 * dxBz;
1525 //#define LOSE_DEBUG
1526 #ifdef LOSE_DEBUG
1527  std::cout << " TrTo-sinPhi0 = " << sinPhi0 << std::endl;
1528 #endif
1529  // const float_v &sinPhi = SinPhi() * (float_v( Vc::One ) - 0.5f * dxBz * QPt() *dxBz * QPt()/ ( float_v( Vc::One ) - SinPhi()*SinPhi() )) + dxBz * QPt();
1531  const float_v &sinPhi = SinPhi() + dxBz * QPt();
1533 #ifdef LOSE_DEBUG
1534  std::cout << " TrTo-sinPhi = " << sinPhi << std::endl;
1535 #endif
1536  float_m mask = _mask && CAMath::Abs(exi) <= 1.e4f;
1537  mask &= ((CAMath::Abs(sinPhi) <= maxSinPhi) || (maxSinPhi <= 0.f));
1538 
1539  fX(mask) += dx;
1540  fP[0](mask) += dS * ey + h2 * (SinPhi() - ey) + h4 * QPt();
1541  fP[1](mask) += dS * DzDs();
1542  fP[2](mask) = sinPhi;
1543 
1544  // const float_v c00 = fC[0];
1545  // const float_v c11 = fC[2];
1546  const float_v c20 = fC[3];
1547  // const float_v c21 = fC[4];
1548  const float_v c22 = fC[5];
1549  // const float_v c30 = fC[6];
1550  const float_v c31 = fC[7];
1551  // const float_v c32 = fC[8];
1552  const float_v c33 = fC[9];
1553  const float_v c40 = fC[10];
1554  // const float_v c41 = fC[11];
1555  const float_v c42 = fC[12];
1556  // const float_v c43 = fC[13];
1557  const float_v c44 = fC[14];
1558 
1559  const float_v two(2.f);
1560 
1561  fC[0](mask) += h2 * h2 * c22 + h4 * h4 * c44 + two * (h2 * c20 + h4 * (c40 + h2 * c42));
1562 
1563  // fC[1] ( mask ) += h2 * c21 + h4 * c41 + dS * ( c30 + h2 * c32 + h4 * c43 );
1564  fC[2](mask) += dS * (two * c31 + dS * c33);
1565 
1566  fC[3](mask) += h2 * c22 + h4 * c42 + dxBz * (c40 + h2 * c42 + h4 * c44);
1567  // fC[4] ( mask ) += dS * c32 + dxBz * ( c41 + dS * c43 );
1568  const float_v &dxBz_c44 = dxBz * c44;
1569  fC[12](mask) += dxBz_c44;
1570  fC[5](mask) += dxBz * (two * c42 + dxBz_c44);
1571 
1572  // fC[6] ( mask ) += h2 * c32 + h4 * c43;
1573  fC[7](mask) += dS * c33;
1574  // fC[8] ( mask ) += dxBz * c43;
1575  // fC[9] ( mask ) = c33;
1576 
1577  fC[10](mask) += h2 * c42 + h4 * c44;
1578  // fC[11]( mask ) += dS * c43;
1579  // fC[13]( mask ) = c43;
1580  // fC[14]( mask ) = c44;
1581 
1582  debugKF() << mask << "\n" << *this << std::endl;
1583  return mask;
1584 }
static T Abs(const T &x)
Definition: PndCAMath.h:56
static T RSqrt(const T &x)
Definition: PndCAMath.h:50
float f
Definition: P4_F32vec4.h:20
PndFTSCANoDebugStream & debugKF()
Definition: debug.h:126

◆ TransportToX0WithMaterial() [1/3]

float_m PndFTSCATrackParamVector::TransportToX0WithMaterial ( const float_v &  x,
const float_v &  XOverX0,
const float_v &  XThimesRho,
const float_v &  Bz,
const float  maxSinPhi = .999f 
)

Referenced by SetErr2QPt().

◆ TransportToX0WithMaterial() [2/3]

float_m PndFTSCATrackParamVector::TransportToX0WithMaterial ( const float_v &  x,
PndFTSCATrackLinearisationVector t0,
PndFTSCATrackFitParam par,
const float_v &  XOverX0,
const float_v &  XThimesRho,
const float_v &  Bz,
const float  maxSinPhi = .999f,
const float_m &  mask = float_m(true) 
)

◆ TransportToX0WithMaterial() [3/3]

float_m PndFTSCATrackParamVector::TransportToX0WithMaterial ( const float_v &  x,
PndFTSCATrackFitParam par,
const float_v &  XOverX0,
const float_v &  XThimesRho,
const float_v &  Bz,
const float  maxSinPhi = .999f 
)

◆ Tx1()

float_v PndFTSCATrackParamVector::Tx1 ( ) const
inline

Definition at line 1324 of file PndFTSCATrackParamVector.h.

References SignCosPhi(), SinPhi(), and sqrt().

1324 { return SinPhi() / (SignCosPhi() * sqrt(1 - SinPhi() * SinPhi())); } // CHECKME
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:28

◆ Tx2()

float_v PndFTSCATrackParamVector::Tx2 ( ) const
inline

Definition at line 1325 of file PndFTSCATrackParamVector.h.

References DzDs(), SignCosPhi(), SinPhi(), and sqrt().

1325 { return DzDs() / (SignCosPhi() * sqrt(1 - SinPhi() * SinPhi())); } // dx2/dx0 = dz/dx
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:28

◆ X()

float_v PndFTSCATrackParamVector::X ( ) const
inline

◆ X0()

float_v PndFTSCATrackParamVector::X0 ( ) const
inline

Definition at line 1321 of file PndFTSCATrackParamVector.h.

References X().

1321 { return X(); }

◆ X1()

float_v PndFTSCATrackParamVector::X1 ( ) const
inline

Definition at line 1322 of file PndFTSCATrackParamVector.h.

References Y().

1322 { return Y(); }

◆ X2()

float_v PndFTSCATrackParamVector::X2 ( ) const
inline

Definition at line 1323 of file PndFTSCATrackParamVector.h.

References Z().

1323 { return Z(); }

◆ Y()

float_v PndFTSCATrackParamVector::Y ( ) const
inline

Definition at line 1313 of file PndFTSCATrackParamVector.h.

Referenced by FilterVtx(), PndFTSCAGBTracker::Refit_1(), Rotate(), RotateXY(), and X1().

1313 { return fP[0]; }

◆ Z()

float_v PndFTSCATrackParamVector::Z ( ) const
inline

Definition at line 1314 of file PndFTSCATrackParamVector.h.

Referenced by FilterVtx(), PndFTSCAGBTracker::Refit_1(), and X2().

1314 { return fP[1]; }

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  ,
const PndFTSCATrackParamVector  
)
friend

Referenced by TransportJ0ToX0().

◆ operator>>

std::istream& operator>> ( std::istream &  ,
PndFTSCATrackParamVector  
)
friend

Referenced by TransportJ0ToX0().

◆ PndFTSCATrackParam

friend class PndFTSCATrackParam
friend

Definition at line 1366 of file PndFTSCATrackParamVector.h.


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