X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliKFParticleBase.h;h=ad3b16d745475b9ec09201799392f10c77affbfd;hb=391fa967074988124f3a1eaa56fd680ffce4c00d;hp=8bb610b3614494575538db4c7094417c1f9d254f;hpb=616ffc76b10424d4f994e72eaeecfacac23bfa71;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliKFParticleBase.h b/STEER/AliKFParticleBase.h index 8bb610b3614..ad3b16d7454 100644 --- a/STEER/AliKFParticleBase.h +++ b/STEER/AliKFParticleBase.h @@ -64,7 +64,12 @@ class AliKFParticleBase :public TObject { //* Destructor - virtual ~AliKFParticleBase(){}; + virtual ~AliKFParticleBase() { ; } + + //* Initialisation from "cartesian" coordinates ( X Y Z Px Py Pz ) + //* Parameters, covariance matrix, charge, and mass hypothesis should be provided + + void Initialize( const Double_t Param[], const Double_t Cov[], Int_t Charge, Double_t Mass ); //* Initialise covariance matrix and set current parameters to 0.0 @@ -100,9 +105,13 @@ class AliKFParticleBase :public TObject { //* error flag returned (0 means no error during calculations) Int_t GetMomentum ( Double_t &P, Double_t &SigmaP ) const ; + Int_t GetPt ( Double_t &Pt, Double_t &SigmaPt ) const ; + Int_t GetEta ( Double_t &Eta, Double_t &SigmaEta ) const ; + Int_t GetPhi ( Double_t &Phi, Double_t &SigmaPhi ) const ; Int_t GetMass ( Double_t &M, Double_t &SigmaM ) const ; Int_t GetDecayLength ( Double_t &L, Double_t &SigmaL ) const ; Int_t GetLifeTime ( Double_t &T, Double_t &SigmaT ) const ; + Int_t GetR ( Double_t &R, Double_t &SigmaR ) const ; //* //* MODIFIERS @@ -143,14 +152,19 @@ class AliKFParticleBase :public TObject { void SetProductionVertex( const AliKFParticleBase &Vtx ); - //* Set hard mass constraint + //* Set mass constraint - void SetMassConstraint( Double_t Mass ); + void SetMassConstraint( Double_t Mass, Double_t SigmaMass = 0 ); + //* Set no decay length for resonances + + void SetNoDecayLength(); + + //* Everything in one go void Construct( const AliKFParticleBase *vDaughters[], Int_t NDaughters, - const AliKFParticleBase *ProdVtx=0, Double_t Mass=-1 ); + const AliKFParticleBase *ProdVtx=0, Double_t Mass=-1, Bool_t IsConstrained=0 ); //* @@ -206,8 +220,8 @@ class AliKFParticleBase :public TObject { //* Subtract the particle from the vertex - void SubtractFromVertex( Double_t v[], Double_t Cv[], - Double_t &vChi2, Int_t vNDF ) const ; + void SubtractFromVertex( AliKFParticleBase &Vtx ) const; + protected: @@ -224,6 +238,8 @@ class AliKFParticleBase :public TObject { static void MultQSQt( const Double_t Q[], const Double_t S[], Double_t SOut[] ); + static Double_t GetSCorrection( const Double_t Part[], const Double_t XYZ[] ); + void GetMeasurement( const Double_t XYZ[], Double_t m[], Double_t V[] ) const ; Double_t fP[8]; //* Main particle parameters {X,Y,Z,Px,Py,Pz,E,S[=DecayLength/P]}