]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliKFParticle.h
Bug corrected.
[u/mrichter/AliRoot.git] / STEER / AliKFParticle.h
index 6671b18f4cbe28d405d6a58ff822ec2be70572b9..b3a39cc44c5a3aef2b140727027b276076f31435 100644 (file)
@@ -107,6 +107,7 @@ class AliKFParticle :public AliKFParticleBase
   Double_t GetMomentum    () const; //* momentum (same as GetP() )
   Double_t GetMass        () const; //* mass
   Double_t GetDecayLength () const; //* decay length
+  Double_t GetDecayLengthXY () const; //* decay length in XY
   Double_t GetLifeTime    () const; //* life time
   Double_t GetR           () const; //* distance to the origin
 
@@ -127,6 +128,7 @@ class AliKFParticle :public AliKFParticleBase
   Double_t GetErrMomentum    () const ; //* momentum
   Double_t GetErrMass        () const ; //* mass
   Double_t GetErrDecayLength () const ; //* decay length
+  Double_t GetErrDecayLengthXY () const ; //* decay length in XY
   Double_t GetErrLifeTime    () const ; //* life time
   Double_t GetErrR           () const ; //* distance to the origin
 
@@ -140,7 +142,8 @@ class AliKFParticle :public AliKFParticleBase
   int GetMomentum    ( Double_t &P, Double_t &SigmaP ) const ;   //* momentum
   int GetMass        ( Double_t &M, Double_t &SigmaM ) const ;   //* mass
   int GetDecayLength ( Double_t &L, Double_t &SigmaL ) const ;   //* decay length
-  int GetLifeTime    ( Double_t &T, Double_t &SigmaT ) const ;   //* life time
+  int GetDecayLengthXY ( Double_t &L, Double_t &SigmaL ) const ;   //* decay length in XY
+   int GetLifeTime    ( Double_t &T, Double_t &SigmaT ) const ;   //* life time
   int GetR           ( Double_t &R, Double_t &SigmaR ) const ; //* R
 
 
@@ -264,6 +267,11 @@ class AliKFParticle :public AliKFParticleBase
  
   //* Calculate distance from another object [cm] in XY-plane
 
+  Bool_t GetDistanceFromVertexXY( const Double_t vtx[], Double_t &val, Double_t &err ) const ;
+  Bool_t GetDistanceFromVertexXY( const Double_t vtx[], const Double_t Cv[], Double_t &val, Double_t &err ) const ;
+  Bool_t GetDistanceFromVertexXY( const AliKFParticle &Vtx, Double_t &val, Double_t &err ) const ;
+  Bool_t GetDistanceFromVertexXY( const AliVVertex &Vtx, Double_t &val, Double_t &err ) const ;
+
   Double_t GetDistanceFromVertexXY( const Double_t vtx[] ) const ;
   Double_t GetDistanceFromVertexXY( const AliKFParticle &Vtx ) const ;
   Double_t GetDistanceFromVertexXY( const AliVVertex &Vtx ) const ;
@@ -287,6 +295,11 @@ class AliKFParticle :public AliKFParticleBase
 
   void SubtractFromVertex( AliKFParticle &v ) const ;
 
+  //* Special method for creating gammas
+
+  void ConstructGamma( const AliKFParticle &daughter1,
+                      const AliKFParticle &daughter2  );
+
  protected: 
   
   //*
@@ -326,7 +339,7 @@ class AliKFParticle :public AliKFParticleBase
 
 inline void AliKFParticle::SetField( Double_t Bz )
 { 
-  fgBz = -Bz;//!!!
+  fgBz = Bz;
 }
 
 
@@ -494,6 +507,13 @@ inline Double_t AliKFParticle::GetDecayLength () const
   else return par;
 }
 
+inline Double_t AliKFParticle::GetDecayLengthXY () const
+{
+  Double_t par, err;
+  if( AliKFParticleBase::GetDecayLengthXY( par, err ) ) return 0;
+  else return par;
+}
+
 inline Double_t AliKFParticle::GetLifeTime    () const
 {
   Double_t par, err;
@@ -597,6 +617,13 @@ inline Double_t AliKFParticle::GetErrDecayLength () const
   else return err;
 }
 
+inline Double_t AliKFParticle::GetErrDecayLengthXY () const
+{
+  Double_t par, err;
+  if( AliKFParticleBase::GetDecayLengthXY( par, err ) ) return 1.e10;
+  else return err;
+}
+
 inline Double_t AliKFParticle::GetErrLifeTime    () const
 {
   Double_t par, err;
@@ -647,6 +674,11 @@ inline int AliKFParticle::GetDecayLength( Double_t &L, Double_t &SigmaL ) const
   return AliKFParticleBase::GetDecayLength( L, SigmaL );
 }
 
+inline int AliKFParticle::GetDecayLengthXY( Double_t &L, Double_t &SigmaL ) const 
+{
+  return AliKFParticleBase::GetDecayLengthXY( L, SigmaL );
+}
+
 inline int AliKFParticle::GetLifeTime( Double_t &T, Double_t &SigmaT ) const 
 {
   return AliKFParticleBase::GetLifeTime( T, SigmaT );
@@ -846,7 +878,7 @@ inline Double_t AliKFParticle::GetDeviationFromVertex( const AliVVertex &Vtx ) c
 {
   return GetDeviationFromVertex( AliKFParticle(Vtx) );
 }
-  
 inline Double_t AliKFParticle::GetDistanceFromParticle( const AliKFParticle &p ) const 
 {
   return AliKFParticleBase::GetDistanceFromParticle( p );
@@ -859,7 +891,7 @@ inline Double_t AliKFParticle::GetDeviationFromParticle( const AliKFParticle &p
 
 inline void AliKFParticle::SubtractFromVertex( AliKFParticle &v ) const 
 {
-  AliKFParticleBase::SubtractFromVertex( v.fP, v.fC, v.fChi2, v.fNDF);
+  AliKFParticleBase::SubtractFromVertex( v );
 }
 
 inline Double_t AliKFParticle::GetFieldAlice()
@@ -891,4 +923,10 @@ inline void AliKFParticle::Transport( Double_t dS, Double_t P[], Double_t C[] )
   AliKFParticleBase::TransportBz( GetFieldAlice(), dS, P, C );
 }
 
+inline void AliKFParticle::ConstructGamma( const AliKFParticle &daughter1,
+                                          const AliKFParticle &daughter2  )
+{
+  AliKFParticleBase::ConstructGammaBz( daughter1, daughter2, GetFieldAlice() );
+}
+
 #endif