]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliMCParticle.h
Added ptHard to the information in the AliAODMCHeader, filled in the AODHandler
[u/mrichter/AliRoot.git] / STEER / AliMCParticle.h
index a652fd39a2d4e2bf122e026cedfaff2edefc4869..75d4a266f8639329bb10f6555792646f1019ce27 100644 (file)
@@ -38,9 +38,9 @@ public:
     virtual Double_t Phi()       const;
     virtual Double_t Theta()     const;
     
-    virtual Double_t Xv() const;
-    virtual Double_t Yv() const;
-    virtual Double_t Zv() const;
+    virtual Double_t Xv()        const;
+    virtual Double_t Yv()        const;
+    virtual Double_t Zv()        const;
     virtual Bool_t   XvYvZv(Double_t x[3]) const;  
 
     virtual Double_t E()          const;
@@ -51,9 +51,11 @@ public:
     
     virtual Short_t Charge()      const;
 
-    virtual Int_t      Label()    const;
-    virtual TParticle* Particle() const  {return fParticle;}
-           
+    virtual Int_t    Label()         const;
+    virtual Int_t    GetLabel()      const {return Label();}
+    virtual Int_t    PdgCode()       const {return fParticle->GetPdgCode();}
+    virtual TParticle* Particle() const {return fParticle;}
+    
     // PID
     virtual const Double_t *PID() const {return 0;} // return PID object (to be defined, still)
 
@@ -61,11 +63,26 @@ public:
     Int_t              GetNumberOfTrackReferences() {return fNTrackRef;}
     AliTrackReference* GetTrackReference(Int_t i)
       {return dynamic_cast<AliTrackReference*>((*fTrackReferences)[i]);}
+
+    // "Trackable" criteria
+    Float_t  GetTPCTrackLength(Float_t bz, Float_t ptmin, Int_t &counter, Float_t deadWidth);
+    // Navigation
+    Int_t GetMother()        const {return fMother;}
+    Int_t GetFirstDaughter() const {return fFirstDaughter;}
+    Int_t GetLastDaughter()  const {return fLastDaughter;}
+    void  SetMother(Int_t idx)        {fMother        = idx;}
+    void  SetFirstDaughter(Int_t idx) {fFirstDaughter = idx;}
+    void  SetLastDaughter(Int_t idx)  {fLastDaughter  = idx;}
+    void  SetLabel(Int_t label)       {fLabel         = label;}
+           
  private:
     TParticle *fParticle;             // The wrapped TParticle
     TRefArray *fTrackReferences;      // Reference array to track references
     Int_t      fNTrackRef;            // Number of track references
     Int_t      fLabel;                // fParticle Label in the Stack
+    Int_t      fMother;               // Mother particles
+    Int_t      fFirstDaughter;        // First daughter
+    Int_t      fLastDaughter;         // LastDaughter
     
   ClassDef(AliMCParticle,0)  // AliVParticle realisation for MCParticles
 };
@@ -86,6 +103,7 @@ inline Bool_t   AliMCParticle::XvYvZv(Double_t x[3]) const { x[0] = Xv(); x[1] =
 inline Double_t AliMCParticle::E()         const {return fParticle->Energy();}
 inline Double_t AliMCParticle::Eta()       const {return fParticle->Eta();}
 
+
 inline Double_t AliMCParticle::M()         const
 {
     TParticlePDG* pdg = fParticle->GetPDG();
@@ -100,8 +118,9 @@ inline Double_t AliMCParticle::M()         const
 inline Double_t AliMCParticle::Y()         const 
 {
     Double_t e  = E();
-    Double_t pz = TMath::Abs(Pz());
-    if (e != pz) { 
+    Double_t pz = Pz();
+    
+    if (e != TMath::Abs(pz)) { 
        return 0.5*TMath::Log((e+pz)/(e-pz));
     } else { 
        return -999.;