FindROOT + dictionary generating macro
[u/mrichter/AliRoot.git] / CORRFW / AliCFPair.h
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16
17 /////////////////////////////////////////////////////
18 // Class to handle pairs of tracks of opposite charge
19 // Useful for resonance analysis
20 // Derives from AliVParticle => 
21 // usable in Correction Framework
22 /////////////////////////////////////////////////////
23 // author : renaud.vernet@cern.ch
24 /////////////////////////////////////////////////////
25
26
27 #ifndef ALICFPAIR_H
28 #define ALICFPAIR_H
29
30 #include "AliVParticle.h"
31
32 class AliESDtrack ;
33 class AliESDv0;
34 class AliESDEvent;
35 class AliAODv0;
36
37 class AliCFPair : public AliVParticle {
38
39  public:
40   AliCFPair(AliVParticle* t1, AliVParticle* t2);
41   AliCFPair(AliESDv0* v0, AliESDEvent* esd);
42   AliCFPair(AliAODv0* v0);
43   AliCFPair(const AliCFPair& c);
44   AliCFPair& operator=(const AliCFPair& c);
45   virtual ~AliCFPair(){};
46
47   AliVParticle* GetNeg() const {return fTrackNeg;}
48   AliVParticle* GetPos() const {return fTrackPos;}
49   AliESDv0*    GetESDV0()  const {return fESDV0;}
50   AliAODv0*    GetAODV0()  const {return fAODV0;}
51   void         SetV0PDG(Int_t pdg) {fV0PDG=pdg;}
52   virtual Bool_t       PxPyPz(Double_t p[3]) const ;
53   virtual Double32_t   P()  const ;
54   virtual Double32_t   Pt() const ;
55   virtual Double32_t   Px() const ;
56   virtual Double32_t   Py() const ;
57   virtual Double32_t   Pz() const ;
58   virtual Double32_t   E () const ;
59   virtual Double32_t   Xv() const ;
60   virtual Double32_t   Yv() const ;
61   virtual Double32_t   Zv() const ;
62   virtual Bool_t       XvYvZv(Double_t x[3]) const ;
63
64   virtual Double32_t OneOverPt() const {return 1/Pt();}
65   virtual Double32_t Phi()   const ;
66   virtual Double32_t Theta() const ;
67   virtual Double32_t M() const ;
68   virtual Double32_t Eta() const ;
69   virtual Double32_t Y() const ;
70   virtual Short_t    Charge() const {return 0;} // returns 0 because opposite charge tracks... maybe to extend to all kinds of pairs
71   virtual Int_t      GetLabel() const {return fLabel;}
72   virtual void       SetLabel(Int_t label) {fLabel=label;}
73   virtual void       SetMassHypothesis(Double_t massNeg, Double_t massPos) {fMassNeg=massNeg;fMassPos=massPos;}
74   // PID
75   virtual const Double_t *PID() const {return 0;} // return PID object (to be defined, still)
76   virtual Int_t PdgCode() const {return 0;}
77
78  private:
79   Bool_t fIsV0;            // true if V0 passed to the constructor
80   AliVParticle* fTrackNeg; // pointer to the negative track 
81   AliVParticle* fTrackPos; // pointer to the positive track 
82   AliESDv0*    fESDV0;     // pointer to the ESD V0 if AliESDv0 is passed to the constructor
83   AliAODv0*    fAODV0;     // pointer to the AOD V0 if AliAODv0 is passed to the constructor
84   Int_t        fLabel;     // associated MC label
85   Int_t        fV0PDG;     // assumed V0 PDG
86   Double_t     fMassNeg;
87   Double_t     fMassPos;
88   
89   ClassDef(AliCFPair,0);
90 };
91
92 #endif