]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliKFParticleBase.h
Bug fix in copy constructor and assignement operator (Matthias + me)
[u/mrichter/AliRoot.git] / STEER / AliKFParticleBase.h
index 8bb610b3614494575538db4c7094417c1f9d254f..ad3b16d745475b9ec09201799392f10c77affbfd 100644 (file)
@@ -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]}