Moving the classes that belong to the following libraries: STEERBase, ESD, CDB, AOD...
[u/mrichter/AliRoot.git] / STEER / AOD / AliAODPhoton.h
1 #ifndef AliAODPhoton_H
2 #define AliAODPhoton_H
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 //-------------------------------------------------------------------------
9 //     AOD photon class
10 //     Author: Yves Schutz, CERN
11 //-------------------------------------------------------------------------
12
13 #include <TLorentzVector.h>
14 #include "AliVParticle.h"
15 #include "AliAODVertex.h"
16
17
18 class AliAODPhoton : public AliVParticle {
19
20  public:
21     AliAODPhoton();
22     AliAODPhoton(Double_t px, Double_t py, Double_t pz, Double_t e);
23     AliAODPhoton(TLorentzVector & p);  
24     virtual ~AliAODPhoton();
25     AliAODPhoton(const AliAODPhoton& photon); 
26     AliAODPhoton& operator=(const AliAODPhoton& photon);
27 // AliVParticle methods
28     virtual Double_t Px()         const { return fMomentum->Px();      }
29     virtual Double_t Py()         const { return fMomentum->Py();      }
30     virtual Double_t Pz()         const { return fMomentum->Pz();      }
31     virtual Double_t Pt()         const { return fMomentum->Pt();      }
32     virtual Double_t P()          const { return fMomentum->P();       }
33     virtual Bool_t   PxPyPz(Double_t p[3]) const { p[0] = Px(); p[1] = Py(); p[2] = Pz(); return kTRUE; }
34     virtual Double_t OneOverPt()  const { return 1. / fMomentum->Pt(); }
35     virtual Double_t Phi()        const;
36     virtual Double_t Theta()      const { return fMomentum->Theta();   }
37     virtual Double_t E()          const { return fMomentum->E();       }
38     virtual Double_t M()          const { return fMomentum->M();       }
39     virtual Double_t Eta()        const { return fMomentum->Eta();     }
40     virtual Double_t Y()          const { return fMomentum->Rapidity();}
41     virtual Double_t Xv()         const {return -999.;} // put reasonable values here
42     virtual Double_t Yv()         const {return -999.;} //
43     virtual Double_t Zv()         const {return -999.;} //
44     virtual Bool_t   XvYvZv(Double_t x[3]) const { x[0] = Xv(); x[1] = Yv(); x[2] = Zv(); return kTRUE; }  
45     //
46     
47     virtual void     Print(Option_t* /*option*/) const;
48     
49 // Dummy  
50     virtual Short_t Charge()        const { return 0;}
51     virtual const   Double_t* PID() const { return NULL;}
52     virtual Int_t   GetLabel()      const { return -1;}
53   // Dummy
54     virtual Int_t    PdgCode()      const {return 0;}
55
56 //
57     
58     
59  private:
60     TLorentzVector* fMomentum;           // Photon 4-momentum vector
61     ClassDef(AliAODPhoton,1);
62 };
63
64 inline Double_t AliAODPhoton::Phi() const
65 {
66     // Return phi
67     Double_t phi = fMomentum->Phi();
68     if (phi < 0.) phi += 2. * TMath::Pi();
69     return phi;
70 }
71
72 #endif