19 #define HomogeneousField 
   21 #ifndef KFPARTICLESIMD_H 
   22 #define KFPARTICLESIMD_H 
   26 #ifdef HomogeneousField 
   31 #ifdef NonhomogeneousField 
   32 class CbmKFTrackInterface;
 
   33 class CbmKFVertexInterface;
 
   49 #ifdef HomogeneousField 
   52 #ifdef NonhomogeneousField 
   58       fField.SetOneEntry(field,iVec);
 
   82 #ifdef HomogeneousField 
   95 #ifdef NonhomogeneousField 
   96   KFParticleSIMD( CbmKFTrackInterface* 
Track[], 
int NTracks, Int_t *qHypo=0, 
const Int_t *pdg=0 );
 
   99   void Create(CbmKFTrackInterface* 
Track[], 
int NTracks, Int_t *qHypo=0, 
const Int_t *pdg=0);
 
  274 #ifdef HomogeneousField 
  308 #ifdef HomogeneousField 
  318 #ifdef HomogeneousField 
  328 #ifdef HomogeneousField 
  334 #ifdef HomogeneousField 
  344 #ifdef HomogeneousField 
  380 #ifdef HomogeneousField 
  393 #ifdef HomogeneousField 
  396 #ifdef NonhomogeneousField 
  409 #ifdef HomogeneousField 
  526   return ((!mask) & par);
 
  533   return ((!mask) & par);
 
  540   return ((!mask) & par);
 
  547   return ((!mask) & par);
 
  554   return ((!mask) & par);
 
  561   return ((!mask) & par);
 
  568   return ((!mask) & par);
 
  575   return ((!mask) & par);
 
  582   return ((!mask) & par);
 
  589   return ((!mask) & par);
 
  637   ret = (mask & ret) + ((!mask) & err);
 
  646   ret = (mask & ret) + ((!mask) & err);
 
  655   ret = (mask & ret) + ((!mask) & err);
 
  664   ret = (mask & ret) + ((!mask) & err);
 
  673   ret = (mask & ret) + ((!mask) & err);
 
  682   ret = (mask & ret) + ((!mask) & err);
 
  691   ret = (mask & ret) + ((!mask) & err);
 
  700   ret = (mask & ret) + ((!mask) & err);
 
  709   ret = (mask & ret) + ((!mask) & err);
 
  718   ret = (mask & ret) + ((!mask) & err);
 
  887   #ifdef NonhomogeneousField 
  889   L1FieldValue field[3];
 
  890   fvec zField[3] = {0, 
fP[2]/2, 
fP[2]};
 
  892   for(
int iPoint=0; iPoint<3; iPoint++)
 
  894     for(
int iD=0; iD<nDaughters; ++iD)
 
  897       field[iPoint].x += b.x;
 
  898       field[iPoint].y += b.y;
 
  899       field[iPoint].z += b.z;
 
  901     field[iPoint].x /= nDaughters;
 
  902     field[iPoint].y /= nDaughters;
 
  903     field[iPoint].z /= nDaughters;
 
  906   fField.Set( field[2], zField[2], field[1], zField[1], field[0], zField[0] );
 
  924 #ifdef HomogeneousField 
  944 #ifdef HomogeneousField 
  947 #ifdef NonhomogeneousField 
  966                                                        const fvec Cv[] )
 const 
  980 #ifdef HomogeneousField 
 1011 #ifdef HomogeneousField 
 1018 #ifdef HomogeneousField 
 1026 #ifdef NonhomogeneousField 
 1045 #ifdef HomogeneousField 
 1048 #ifdef NonhomogeneousField 
 1056 #ifdef HomogeneousField 
 1059 #ifdef NonhomogeneousField 
 1067 #ifdef HomogeneousField 
void GetDStoParticle(const KFParticleSIMD &p, fvec &DS, fvec &DSp) const 
fvec GetAngleXY(const KFParticleSIMD &p) const 
void TransportToDecayVertex()
fvec GetEta(fvec &Eta, fvec &SigmaEta) const 
fvec GetDeviationFromParticle(const KFParticleSIMD &p) const 
static void SetField(fvec Bz)
fvec GetDStoPointCBM(const fvec xyz[]) const 
fvec GetDeviationFromParticle(const KFParticleBaseSIMD &p) const 
void Construct(const KFParticleSIMD *vDaughters[], int nDaughters, const KFParticleSIMD *ProdVtx=0, Float_t Mass=-1, Bool_t IsConstrained=0, Bool_t isAtVtxGuess=0)
fvec GetDecayLength(fvec &L, fvec &SigmaL) const 
fvec GetMomentum(fvec &P, fvec &SigmaP) const 
fvec GetDeviationFromVertex(const fvec v[], const fvec Cv[]=0) const 
void SubtractFromParticle(KFParticleSIMD &v) const 
friend F32vec4 sqrt(const F32vec4 &a)
Double_t val[nBoxes][nFEBox]
fvec GetErrMomentum() const 
void TransportToDS(fvec dS)
fvec GetDistanceFromParticle(const KFParticleSIMD &p) const 
fvec GetDeviationFromVertexXY(const fvec v[], const fvec Cv[]=0) const 
void TransportToProductionVertex()
fvec GetErrLifeTime() const 
void ConstructGammaBz(const KFParticleBaseSIMD &daughter1, const KFParticleBaseSIMD &daughter2, fvec Bz)
void SetVtxGuess(fvec x, fvec y, fvec z)
fvec GetErrDecayLength() const 
void TransportToProductionVertex()
fvec GetLifeTime(fvec &T, fvec &SigmaT) const 
void operator+=(const KFParticleBaseSIMD &Daughter)
fvec GetParameter(int i) const 
void GetDStoParticleCBM(const KFParticleBaseSIMD &p, fvec &dS, fvec &dS1) const 
fvec GetR(fvec &R, fvec &SigmaR) const 
void TransportToParticle(const KFParticleSIMD &p)
fvec GetCovariance(Int_t i) const 
void GetDStoParticleXY(const KFParticleBaseSIMD &p, fvec &DS, fvec &DSp) const 
fvec GetPseudoProperDecayTime(const KFParticleSIMD &primVertex, const fvec &mass, fvec *timeErr2=0) const 
fvec GetDStoPoint(const fvec xyz[]) const 
void TransportCBM(fvec dS, fvec P[], fvec C[]) const 
fvec * CovarianceMatrix()
fvec GetCovariance(int i) const 
const fvec & Chi2() const 
fvec & Covariance(Int_t i)
static fvec GetFieldAlice()
void GetFieldValue(const fvec xyz[], fvec B[]) const 
fvec GetDistanceFromParticle(const KFParticleBaseSIMD &p) const 
void GetDStoParticleBz(fvec Bz, const KFParticleBaseSIMD &p, fvec &dS, fvec &dS1) const 
fvec GetDeviationFromParticleXY(const KFParticleSIMD &p) const 
void TransportToPoint(const fvec xyz[])
fvec GetDecayLengthXY() const 
friend F32vec4 fabs(const F32vec4 &a)
void TransportToDS(fvec dS)
const fvec & Chi2() const 
fvec GetDistanceFromVertex(const fvec vtx[]) const 
fvec GetPt(fvec &Pt, fvec &SigmaPt) const 
Bool_t GetAtProductionVertex() const 
void ConstructGamma(const KFParticleSIMD &daughter1, const KFParticleSIMD &daughter2)
fvec GetDeviationFromVertex(const fvec v[], const fvec Cv[]=0) const 
void SubtractFromParticle(KFParticleBaseSIMD &Vtx) const 
void SetMassConstraint(fvec Mass, fvec SigmaMass=0)
void AddDaughter(const KFParticleBaseSIMD &Daughter, Bool_t isAtVtxGuess=0)
fvec GetDStoPointBz(fvec Bz, const fvec xyz[]) const 
void TransportToVertex(const KFPVertex &v)
Bool_t fAtProductionVertex
file Get("FairBaseParSet")
fvec GetDecayLength() const 
fvec GetErrDecayLengthXY() const 
fvec GetAngle(const KFParticleSIMD &p) const 
void AddDaughter(const KFParticleSIMD &Daughter)
void operator+=(const KFParticleSIMD &Daughter)
void Transport(fvec dS, fvec P[], fvec C[]) const 
fvec GetMass(fvec &M, fvec &SigmaM) const 
fvec GetDistanceFromVertex(const fvec vtx[]) const 
fvec GetPhi(fvec &Phi, fvec &SigmaPhi) const 
void TransportToDecayVertex()
void GetKFParticle(KFParticle &Part, int iPart=0)
void SetProductionVertex(const KFParticleBaseSIMD &Vtx)
fvec GetParameter(Int_t i) const 
fvec GetAngleRZ(const KFParticleSIMD &p) const 
fvec GetDistanceFromVertexXY(const fvec vtx[], fvec &val, fvec &err) const 
void SetVtxGuess(fvec x, fvec y, fvec z)
void TransportBz(fvec Bz, fvec dS, fvec P[], fvec C[]) const 
void Create(const fvec Param[], const fvec Cov[], fvec Charge, fvec mass)
fvec GetDistanceFromParticleXY(const KFParticleSIMD &p) const 
void SubtractFromVertex(KFParticleBaseSIMD &Vtx) const 
fvec & Parameter(Int_t i)
fvec GetDecayLengthXY(fvec &L, fvec &SigmaL) const 
static void GetExternalTrackParam(const KFParticleBaseSIMD &p, Double_t X[fvecLen], Double_t Alpha[fvecLen], Double_t P[5][fvecLen])
void SetMassConstraint(fvec Mass, fvec SigmaMass=0)
void SubtractFromVertex(KFParticleSIMD &v) const 
void Construct(const KFParticleBaseSIMD *vDaughters[], Int_t nDaughters, const KFParticleBaseSIMD *ProdVtx=0, Float_t Mass=-1, Bool_t IsConstrained=0, Bool_t isAtVtxGuess=0)
void SetProductionVertex(const KFParticleSIMD &Vtx)