implementing particle interface
authorloizides <loizides@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 18 Jun 2012 07:02:04 +0000 (07:02 +0000)
committerloizides <loizides@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 18 Jun 2012 07:02:04 +0000 (07:02 +0000)
PWGGA/EMCALTasks/AliEmcalParticle.cxx
PWGGA/EMCALTasks/AliEmcalParticle.h

index 0134de1..ad6a651 100644 (file)
@@ -10,7 +10,7 @@
 
 //_________________________________________________________________________________________________
 AliEmcalParticle::AliEmcalParticle() :
-  TObject(),
+  AliVParticle(),
   fTrack(0), 
   fCluster(0),
   fNMatched(0),
@@ -26,7 +26,7 @@ AliEmcalParticle::AliEmcalParticle() :
 
 //_________________________________________________________________________________________________
 AliEmcalParticle::AliEmcalParticle(TObject *particle, Int_t id, Double_t vx, Double_t vy, Double_t vz) :
-  TObject(),
+  AliVParticle(),
   fTrack(0), 
   fCluster(0),
   fNMatched(0),
@@ -62,7 +62,7 @@ AliEmcalParticle::AliEmcalParticle(TObject *particle, Int_t id, Double_t vx, Dou
   
 //_________________________________________________________________________________________________
 AliEmcalParticle::AliEmcalParticle(const AliEmcalParticle &p) :
-  TObject(),
+  AliVParticle(p),
   fTrack(p.fTrack),
   fCluster(p.fCluster), 
   fNMatched(p.fNMatched),
@@ -100,7 +100,7 @@ AliEmcalParticle &AliEmcalParticle::operator=(const AliEmcalParticle &p)
     fPt       = p.fPt;
 
     ResetMatchedObjects();
-    memcpy(fMatchedIds, p.fMatchedIds, sizeof(UShort_t) * fSizeMatched);
+    memcpy(fMatchedIds,  p.fMatchedIds,  sizeof(UShort_t) * fSizeMatched);
     memcpy(fMatchedDist, p.fMatchedDist, sizeof(Double_t) * fSizeMatched);
   }
 
index 326524f..aab093e 100644 (file)
@@ -4,11 +4,11 @@
 // $Id$
 
 #include <TLorentzVector.h>
-#include <TObject.h>
 #include "AliVCluster.h"
+#include "AliVParticle.h"
 #include "AliVTrack.h"
 
-class AliEmcalParticle: public TObject {
+class AliEmcalParticle: public AliVParticle {
  public:
   AliEmcalParticle();
   AliEmcalParticle(TObject *particle, Int_t id = -1, Double_t vx=0, Double_t vy=0, Double_t vz=0);
@@ -16,15 +16,33 @@ class AliEmcalParticle: public TObject {
   AliEmcalParticle &operator=(const AliEmcalParticle &p);
   virtual ~AliEmcalParticle();
 
-  Double_t          Eta()                  const { return fEta; }
-  Double_t          Phi()                  const { return fPhi; }
-  Double_t          Pt()                   const { return fPt ; }
-  Double_t          M()                    const { return 0.13957                                                   ; }
-  Short_t           Charge()               const { if (fTrack) return fTrack->Charge(); else return 0               ; }
+  // AliVParticle interface
+  Double_t          Px()        const { return fPt*TMath::Cos(fPhi);  }
+  Double_t          Py()        const { return fPt*TMath::Sin(fPhi);  };
+  Double_t          Pz()        const { return fPt*TMath::SinH(fEta); }
+  Double_t          Pt()        const { return fPt ; }
+  Double_t          P()         const { return TMath::Sqrt(Px()*Px()+Py()*Py()+Pz()*Pz()); }
+  Bool_t            PxPyPz(Double_t p[3]) const { p[0] = Px(); p[1] = Py(); p[2] = Pz(); return 1; }
+  Double_t          Xv()        const { return 0; }
+  Double_t          Yv()        const { return 0; }
+  Double_t          Zv()        const { return 0; }
+  Bool_t            XvYvZv(Double_t x[3]) const { x[0] = Xv(); x[1] = Yv(); x[2] = Zv(); return 1; }
+  Double_t          OneOverPt() const { return 1./fPt; }
+  Double_t          Phi()       const { return fPhi; }
+  Double_t          Theta()     const { return 0.; }
+  Double_t          E()         const { if (fTrack) return fTrack->M(); return fCluster->E(); }
+  Double_t          M()         const { if (fTrack) return fTrack->M(); return 0; }
+  Double_t          Eta()       const { return fEta; }
+  Double_t          Y()         const { if (fTrack) return fTrack->Y(); return fEta; }
+  Short_t           Charge()    const { if (fTrack) return fTrack->Charge(); else return 0; }
+  Int_t   GetLabel()    const { if (fTrack) return fTrack->GetLabel(); return fCluster->GetLabel(); }
+  Int_t   PdgCode()     const { return 0; }
+  const Double_t *PID() const { return 0; }
+
   AliVCluster*      GetCluster()           const { return fCluster                                                  ; }
-  Int_t             GetMatchedObjId(UShort_t i = 0)         const { return fNMatched > i ? fMatchedIds[i]  : -1 ; }
-  Double_t          GetMatchedObjDistance(UShort_t i = 0)   const { return fNMatched > i ? fMatchedDist[i] : -1 ; }
-  UShort_t          GetNumberOfMatchedObj()                 const { return fNMatched                            ; }
+  Int_t             GetMatchedObjId(UShort_t i = 0)         const { return fNMatched > i ? fMatchedIds[i]  : -1     ; }
+  Double_t          GetMatchedObjDistance(UShort_t i = 0)   const { return fNMatched > i ? fMatchedDist[i] : -1     ; }
+  UShort_t          GetNumberOfMatchedObj()                 const { return fNMatched                                ; }
   AliVTrack*        GetTrack()             const { return fTrack                                                    ; }
   Double_t          GetTrackPhiOnEMCal()   const { if (fTrack) return fTrack->GetTrackPhiOnEMCal(); else return -999; }
   Double_t          GetTrackEtaOnEMCal()   const { if (fTrack) return fTrack->GetTrackEtaOnEMCal(); else return -999; }
@@ -57,6 +75,6 @@ class AliEmcalParticle: public TObject {
   Double_t          fEta;                         //!eta
   Double_t          fPt;                          //!pt
 
-  ClassDef(AliEmcalParticle, 2) // Emcal particle class
+  ClassDef(AliEmcalParticle, 1) // Emcal particle class
 };
 #endif