//* INITIALIZATION
//*
+ //* Set magnetic field for all particles
+
+ static void SetField( Double_t Bz );
+
//* Constructor (empty)
- AliKFParticle():AliKFParticleBase(), fBz(0) {}
+ AliKFParticle():AliKFParticleBase(){}
//* Destructor (empty)
//* Initialisation from ALICE track, PID hypothesis can be provided
- AliKFParticle( const AliExternalTrackParam &track, Double_t bz, Int_t PID = 211 );
+ AliKFParticle( const AliExternalTrackParam &track, Int_t PID = 211 );
//* Initialisation from ESD vertex
- AliKFParticle( const AliESDVertex &vertex, Double_t bz );
-
- void SetBz(Double_t bz) {fBz=bz;}
- Double_t GetBz() const {return fBz;}
+ AliKFParticle( const AliESDVertex &vertex );
//* Copy vertex part to ESD vertex
//* Method to access ALICE field
- Double_t GetFieldAlice() const ;
+ static Double_t GetFieldAlice();
//* Other methods required by the abstract AliKFParticleBase class
void GetDStoParticle( const AliKFParticleBase &p, Double_t &DS, Double_t &DSp )const ;
void Transport( Double_t dS, Double_t P[], Double_t C[] ) const ;
-private:
- Double_t fBz; // Bz compoment of the magnetic field
+ private:
+
+ static Double_t fgBz; //* Bz compoment of the magnetic field
- ClassDef( AliKFParticle, 2 );
+ ClassDef( AliKFParticle, 3 );
};
//---------------------------------------------------------------------
+inline void AliKFParticle::SetField( Double_t Bz )
+{
+ fgBz = Bz;
+}
inline void AliKFParticle::Initialize()
{
inline void AliKFParticle::TransportToVertex( const AliESDVertex &v )
{
- TransportToPoint( AliKFParticle(v,fBz).fP );
+ TransportToPoint( AliKFParticle(v).fP );
}
inline void AliKFParticle::TransportToParticle( const AliKFParticle &p )
{
return AliKFParticleBase::GetDStoPointBz( GetFieldAlice(), xyz );
}
+
inline void AliKFParticle::GetDStoParticle( const AliKFParticle &p,
- Double_t &DS, Double_t &DSp ) const
+ Double_t &DS, Double_t &DSp ) const
{
return AliKFParticleBase::GetDStoParticleBz( GetFieldAlice(), p, DS,DSp);
}
inline Double_t AliKFParticle::GetDistanceFromVertex( const AliESDVertex &Vtx ) const
{
- return GetDistanceFromVertex( AliKFParticle(Vtx,fBz) );
+ return GetDistanceFromVertex( AliKFParticle(Vtx) );
}
inline Double_t AliKFParticle::GetDeviationFromVertex( const AliESDVertex &Vtx ) const
{
- return GetDeviationFromVertex( AliKFParticle(Vtx,fBz) );
+ return GetDeviationFromVertex( AliKFParticle(Vtx) );
}
inline Double_t AliKFParticle::GetDistanceFromParticle( const AliKFParticle &p ) const
inline void AliKFParticle::SubtractFromVertex( AliESDVertex &v ) const
{
- AliKFParticle vTmp(v,fBz);
+ AliKFParticle vTmp(v);
SubtractFromVertex( vTmp );
v = AliESDVertex( vTmp.fP, vTmp.fC, vTmp.fChi2, (vTmp.fNDF +3)/2, v.GetName() );
}
v = AliESDVertex( vTmp.fP, vTmp.fC, vTmp.fChi2, (vTmp.fNDF +3)/2 );
}
-inline Double_t AliKFParticle::GetFieldAlice() const
+inline Double_t AliKFParticle::GetFieldAlice()
{
- return fBz;
+ return fgBz;
}
inline void AliKFParticle::GetFieldValue( const Double_t * /*xyz*/, Double_t B[] ) const
}
inline void AliKFParticle::GetDStoParticle( const AliKFParticleBase &p,
- Double_t &DS, Double_t &DSp )const
+ Double_t &DS, Double_t &DSp )const
{
return AliKFParticleBase::GetDStoParticleBz( GetFieldAlice(), p, DS,DSp);
}