ROOT logo
#ifndef AliAODPHOTON_H
#define AliAODPHOTON_H
/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

//-------------------------------------------------------------------------
//     AOD photon class
//     Author: Yves Schutz, CERN
//-------------------------------------------------------------------------

#include <TLorentzVector.h>
#include "AliVParticle.h"
#include "AliAODVertex.h"


class AliAODPhoton : public AliVParticle {

 public:
    AliAODPhoton();
    AliAODPhoton(Double_t px, Double_t py, Double_t pz, Double_t e);
    AliAODPhoton(TLorentzVector & p);  
    virtual ~AliAODPhoton();
    AliAODPhoton(const AliAODPhoton& photon); 
    AliAODPhoton& operator=(const AliAODPhoton& photon);
// AliVParticle methods
    virtual Double_t Px()         const { return fMomentum->Px();      }
    virtual Double_t Py()         const { return fMomentum->Py();      }
    virtual Double_t Pz()         const { return fMomentum->Pz();      }
    virtual Double_t Pt()         const { return fMomentum->Pt();      }
    virtual Double_t P()          const { return fMomentum->P();       }
    virtual Bool_t   PxPyPz(Double_t p[3]) const { p[0] = Px(); p[1] = Py(); p[2] = Pz(); return kTRUE; }
    virtual Double_t OneOverPt()  const { return 1. / fMomentum->Pt(); }
    virtual Double_t Phi()        const;
    virtual Double_t Theta()      const { return fMomentum->Theta();   }
    virtual Double_t E()          const { return fMomentum->E();       }
    virtual Double_t M()          const { return fMomentum->M();       }
    virtual Double_t Eta()        const { return fMomentum->Eta();     }
    virtual Double_t Y()          const { return fMomentum->Rapidity();}
    virtual Double_t Xv()         const {return -999.;} // put reasonable values here
    virtual Double_t Yv()         const {return -999.;} //
    virtual Double_t Zv()         const {return -999.;} //
    virtual Bool_t   XvYvZv(Double_t x[3]) const { x[0] = Xv(); x[1] = Yv(); x[2] = Zv(); return kTRUE; }  
    //
    
    virtual void     Print(Option_t* /*option*/) const;
    
// Dummy  
    virtual Short_t Charge()        const { return 0;}
    virtual const   Double_t* PID() const { return NULL;}
    virtual Int_t   GetLabel()      const { return -1;}
  // Dummy
    virtual Int_t    PdgCode()      const {return 0;}

//
    
    
 private:
    TLorentzVector* fMomentum;           // Photon 4-momentum vector
    ClassDef(AliAODPhoton,1);
};

inline Double_t AliAODPhoton::Phi() const
{
    // Return phi
    Double_t phi = fMomentum->Phi();
    if (phi < 0.) phi += 2. * TMath::Pi();
    return phi;
}

#endif
 AliAODPhoton.h:1
 AliAODPhoton.h:2
 AliAODPhoton.h:3
 AliAODPhoton.h:4
 AliAODPhoton.h:5
 AliAODPhoton.h:6
 AliAODPhoton.h:7
 AliAODPhoton.h:8
 AliAODPhoton.h:9
 AliAODPhoton.h:10
 AliAODPhoton.h:11
 AliAODPhoton.h:12
 AliAODPhoton.h:13
 AliAODPhoton.h:14
 AliAODPhoton.h:15
 AliAODPhoton.h:16
 AliAODPhoton.h:17
 AliAODPhoton.h:18
 AliAODPhoton.h:19
 AliAODPhoton.h:20
 AliAODPhoton.h:21
 AliAODPhoton.h:22
 AliAODPhoton.h:23
 AliAODPhoton.h:24
 AliAODPhoton.h:25
 AliAODPhoton.h:26
 AliAODPhoton.h:27
 AliAODPhoton.h:28
 AliAODPhoton.h:29
 AliAODPhoton.h:30
 AliAODPhoton.h:31
 AliAODPhoton.h:32
 AliAODPhoton.h:33
 AliAODPhoton.h:34
 AliAODPhoton.h:35
 AliAODPhoton.h:36
 AliAODPhoton.h:37
 AliAODPhoton.h:38
 AliAODPhoton.h:39
 AliAODPhoton.h:40
 AliAODPhoton.h:41
 AliAODPhoton.h:42
 AliAODPhoton.h:43
 AliAODPhoton.h:44
 AliAODPhoton.h:45
 AliAODPhoton.h:46
 AliAODPhoton.h:47
 AliAODPhoton.h:48
 AliAODPhoton.h:49
 AliAODPhoton.h:50
 AliAODPhoton.h:51
 AliAODPhoton.h:52
 AliAODPhoton.h:53
 AliAODPhoton.h:54
 AliAODPhoton.h:55
 AliAODPhoton.h:56
 AliAODPhoton.h:57
 AliAODPhoton.h:58
 AliAODPhoton.h:59
 AliAODPhoton.h:60
 AliAODPhoton.h:61
 AliAODPhoton.h:62
 AliAODPhoton.h:63
 AliAODPhoton.h:64
 AliAODPhoton.h:65
 AliAODPhoton.h:66
 AliAODPhoton.h:67
 AliAODPhoton.h:68
 AliAODPhoton.h:69
 AliAODPhoton.h:70
 AliAODPhoton.h:71
 AliAODPhoton.h:72