]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Add inheritance from AliVParticle. Rename GetPt() to GetSignedPt(). Rename Get1Pt...
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 7 Aug 2007 21:09:23 +0000 (21:09 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 7 Aug 2007 21:09:23 +0000 (21:09 +0000)
STEER/AliExternalTrackParam.cxx
STEER/AliExternalTrackParam.h

index 79a27dfaabbe43270f93912dea5a1689bc6c3ca1..610fc736193257f8039714a310879e05f4c34f25 100644 (file)
@@ -36,7 +36,7 @@ Double32_t AliExternalTrackParam::fgMostProbablePt=kMostProbablePt;
  
 //_____________________________________________________________________________
 AliExternalTrackParam::AliExternalTrackParam() :
-  TObject(),
+  AliVParticle(),
   fX(0),
   fAlpha(0)
 {
@@ -49,7 +49,7 @@ AliExternalTrackParam::AliExternalTrackParam() :
 
 //_____________________________________________________________________________
 AliExternalTrackParam::AliExternalTrackParam(const AliExternalTrackParam &track):
-  TObject(track),
+  AliVParticle(track),
   fX(track.fX),
   fAlpha(track.fAlpha)
 {
@@ -60,11 +60,30 @@ AliExternalTrackParam::AliExternalTrackParam(const AliExternalTrackParam &track)
   for (Int_t i = 0; i < 15; i++) fC[i] = track.fC[i];
 }
 
+//_____________________________________________________________________________
+AliExternalTrackParam& AliExternalTrackParam::operator=(const AliExternalTrackParam &trkPar)
+{
+  //
+  // assignment operator
+  //
+  
+  if (this!=&trkPar) {
+    AliVParticle::operator=(trkPar);
+    fX = trkPar.fX;
+    fAlpha = trkPar.fAlpha;
+
+    for (Int_t i = 0; i < 5; i++) fP[i] = trkPar.fP[i];
+    for (Int_t i = 0; i < 15; i++) fC[i] = trkPar.fC[i];
+  }
+
+  return *this;
+}
+
 //_____________________________________________________________________________
 AliExternalTrackParam::AliExternalTrackParam(Double_t x, Double_t alpha, 
                                             const Double_t param[5], 
                                             const Double_t covar[15]) :
-  TObject(),
+  AliVParticle(),
   fX(x),
   fAlpha(alpha)
 {
@@ -438,7 +457,7 @@ Double_t p[3], Double_t bz) const {
   //+++++++++++++++++++++++++++++++++++++++++    
   GetXYZ(x);
     
-  if (TMath::Abs(Get1Pt()) < kAlmost0 || TMath::Abs(bz) < kAlmost0Field ){ //straight-line tracks
+  if (OneOverPt() < kAlmost0 || TMath::Abs(bz) < kAlmost0Field ){ //straight-line tracks
      Double_t unit[3]; GetDirection(unit);
      x[0]+=unit[0]*len;   
      x[1]+=unit[1]*len;   
@@ -952,6 +971,81 @@ Bool_t AliExternalTrackParam::GetPxPyPz(Double_t *p) const {
   return Local2GlobalMomentum(p,fAlpha);
 }
 
+Double_t AliExternalTrackParam::Px() const {
+  // return x-component of momentum
+
+  Double_t p[3];
+  GetPxPyPz(p);
+
+  return p[0];
+}
+
+Double_t AliExternalTrackParam::Py() const {
+  // return y-component of momentum
+
+  Double_t p[3];
+  GetPxPyPz(p);
+
+  return p[1];
+}
+
+Double_t AliExternalTrackParam::Pz() const {
+  // return z-component of momentum
+
+  Double_t p[3];
+  GetPxPyPz(p);
+
+  return p[2];
+}
+
+Double_t AliExternalTrackParam::Theta() const {
+  // return theta angle of momentum
+
+  return TMath::ATan2(Pt(), Pz());
+}
+
+Double_t AliExternalTrackParam::Phi() const {
+  // return phi angle of momentum
+
+  Double_t p[3];
+  GetPxPyPz(p);
+
+  return TMath::ATan2(p[1], p[0]);
+}
+
+Double_t AliExternalTrackParam::M() const {
+  // return particle mass
+
+  // No mass information available so far.
+  // Redifine in derived class!
+
+  return -999.;
+}
+
+Double_t AliExternalTrackParam::E() const {
+  // return particle energy
+
+  // No PID information available so far.
+  // Redifine in derived class!
+
+  return -999.;
+}
+
+Double_t AliExternalTrackParam::Eta() const { 
+  // return pseudorapidity
+
+  return -TMath::Log(TMath::Tan(0.5 * Theta())); 
+}
+
+Double_t AliExternalTrackParam::Y() const {
+  // return rapidity
+
+  // No PID information available so far.
+  // Redifine in derived class!
+
+  return -999.;
+}
+
 Bool_t AliExternalTrackParam::GetXYZ(Double_t *r) const {
   //---------------------------------------------------------------------
   // This function returns the global track position
index eb7650deaa044444039b78f1a88e5c8944739450..2e7d9c4df152d168e6fdd8868bae1345e6dd82c0 100644 (file)
  * 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;
@@ -33,10 +34,11 @@ class AliESDVertex;
 
 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(){}
@@ -59,7 +61,7 @@ class AliExternalTrackParam: public TObject {
   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];}
@@ -77,9 +79,25 @@ class AliExternalTrackParam: public TObject {
   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;
@@ -140,7 +158,7 @@ private:
 
   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) {