updated for e-h analysis
[u/mrichter/AliRoot.git] / CORRFW / AliCFPair.h
CommitLineData
2fbc0b17 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
32class AliESDtrack ;
33class AliESDv0;
34class AliESDEvent;
10d9a8a6 35class AliAODv0;
2fbc0b17 36
37class AliCFPair : public AliVParticle {
38
39 public:
10d9a8a6 40 AliCFPair(AliVParticle* t1, AliVParticle* t2);
2fbc0b17 41 AliCFPair(AliESDv0* v0, AliESDEvent* esd);
10d9a8a6 42 AliCFPair(AliAODv0* v0);
2fbc0b17 43 AliCFPair(const AliCFPair& c);
44 AliCFPair& operator=(const AliCFPair& c);
45 virtual ~AliCFPair(){};
46
10d9a8a6 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;}
2fbc0b17 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
10d9a8a6 71 virtual Int_t GetLabel() const {return fLabel;}
72 virtual void SetLabel(Int_t label) {fLabel=label;}
d3e71b00 73 virtual void SetMassHypothesis(Double_t massNeg, Double_t massPos) {fMassNeg=massNeg;fMassPos=massPos;}
2fbc0b17 74 // PID
75 virtual const Double_t *PID() const {return 0;} // return PID object (to be defined, still)
d977e2d0 76 virtual Int_t PdgCode() const {return 0;}
2fbc0b17 77
78 private:
a1496ace 79 Bool_t fIsV0; // true if V0 passed to the constructor
10d9a8a6 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
d3e71b00 86 Double_t fMassNeg;
87 Double_t fMassPos;
2fbc0b17 88
89 ClassDef(AliCFPair,0);
90};
91
92#endif