* system rotated by angle alpha with respect to the global coord.system. *
* Origin: I.Belikov, CERN, Jouri.Belikov@cern.ch *
*****************************************************************************/
-#include "TObject.h"
#include "TMath.h"
+#include "AliVParticle.h"
+
const Double_t kAlmost1=0.999;
const Double_t kAlmost0=1e-33;
const Double_t kVeryBig=1./kAlmost0;
Double_t ApproximateBetheBloch(Double_t);
-class AliExternalTrackParam: public TObject {
+class AliExternalTrackParam: public AliVParticle {
public:
AliExternalTrackParam();
AliExternalTrackParam(const AliExternalTrackParam &);
+ AliExternalTrackParam& operator=(const AliExternalTrackParam & trkPar);
AliExternalTrackParam(Double_t x, Double_t alpha,
const Double_t param[5], const Double_t covar[15]);
virtual ~AliExternalTrackParam(){}
Double_t GetZ() const {return fP[1];}
Double_t GetSnp() const {return fP[2];}
Double_t GetTgl() const {return fP[3];}
- Double_t Get1Pt() const {return fP[4];}
+ Double_t GetSigned1Pt() const {return fP[4];}
Double_t GetSigmaY2() const {return fC[0];}
Double_t GetSigmaZY() const {return fC[1];}
Double_t GetSigma1PtTgl() const {return fC[13];}
Double_t GetSigma1Pt2() const {return fC[14];}
+ // additional functions for AliVParticle
+ Double_t Px() const;
+ Double_t Py() const;
+ Double_t Pz() const;
+ Double_t Pt() const { return TMath::Abs(GetSignedPt()); }
+ Double_t P() const { return GetP(); }
+ Double_t OneOverPt() const { return 1./Pt(); }
+ Double_t Phi() const;
+ Double_t Theta() const;
+ virtual Double_t E() const;
+ virtual Double_t M() const;
+ Double_t Eta() const;
+ virtual Double_t Y() const;
+ Short_t Charge() const { return (Short_t)GetSign(); }
+ const Double_t *PID() const { return 0x0; }
+
Double_t GetSign() const {return (fP[4]>0) ? 1 : -1;}
Double_t GetP() const;
- Double_t GetPt() const {
+ Double_t GetSignedPt() const {
return (TMath::Abs(fP[4])>kAlmost0) ? 1./fP[4]:TMath::Sign(kVeryBig,fP[4]);
}
Double_t Get1P() const;
Double_t GetD(Double_t xv, Double_t yv, Double_t b) const;
Double_t GetLinearD(Double_t xv, Double_t yv) const;
Bool_t CorrectForMeanMaterial(Double_t xOverX0, Double_t xTimesRho,
- Double_t mass, Double_t (*f)(Double_t)=ApproximateBetheBloch);
+ Double_t mass, Bool_t anglecorr=kFALSE,
+ Double_t (*f)(Double_t)=ApproximateBetheBloch);
Double_t GetPredictedChi2(Double_t p[2],Double_t cov[3]) const;
Double_t
Bool_t CorrectForMaterial(Double_t d, Double_t x0, Double_t mass,
Double_t (*f)(Double_t)=ApproximateBetheBloch);
+ Bool_t GetDistance(AliExternalTrackParam *param2, Double_t x, Double_t dist[3], Double_t b);
+ Int_t GetIndex(Int_t i, Int_t j) const {return i+(j+1)*j/2;}
+
+
protected:
Double_t &Par(Int_t i) {return fP[i];}
Double_t &Cov(Int_t i) {return fC[i];}
static Double32_t fgMostProbablePt; // "Most probable" pt
// (to be used if Bz=0)
- ClassDef(AliExternalTrackParam, 6)
+ ClassDef(AliExternalTrackParam, 7)
};
inline void AliExternalTrackParam::ResetCovariance(Double_t s2) {
fC[10]= 0.; fC[11]= 0.; fC[12]= 0.; fC[13]= 0.; fC[14]*=s2;
}
+
+
+
#endif