]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/UNICOR/AliUnicorEventAliceESD.h
Fixes of older problems and adaptation to heavy ions.
[u/mrichter/AliRoot.git] / PWG2 / UNICOR / AliUnicorEventAliceESD.h
1 #ifndef ALIUNICOREVENTALICEESD_H
2 #define ALIUNICOREVENTALICEESD_H
3
4 /* Copyright(c) 1998-2048, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6 /* $Id$ */
7
8 // Author: Dariusz Miskowiec <mailto:d.miskowiec@gsi.de> 2008
9
10 #include <cmath>
11 #include "TVector2.h"
12 #include "AliESDEvent.h"
13 //#include "AliPhysicsSelection.h"
14 #include "AliExternalTrackParam.h"
15 #include "AliUnicorEvent.h"
16
17 //class AliPhysicsSelection;
18 class TGraph;
19
20 //=============================================================================
21 class AliUnicorEventAliceESD : public AliUnicorEvent {
22
23  public:
24               AliUnicorEventAliceESD(AliESDEvent *esd=0);
25               //AliUnicorEventAliceESD(const AliUnicorEventAliceESD &ev): AliUnicorEvent(ev), fViper(ev.fViper), fESD(ev.fESD), fPhysicsSelection(ev.fPhysicsSelection){}
26               AliUnicorEventAliceESD(const AliUnicorEventAliceESD &ev): AliUnicorEvent(ev), fViper(ev.fViper), fESD(ev.fESD) {}
27   virtual     ~AliUnicorEventAliceESD();
28   AliUnicorEventAliceESD &operator=(const AliUnicorEventAliceESD &source) {fViper=source.fViper; fESD=source.fESD; return *this;}
29   Double_t    Etamin() const {return -0.75;}
30   Double_t    Etamax() const {return  0.75;}
31   void        AttachTree(TTree *tr) {fESD->ReadFromTree(tr);}
32   Bool_t      Good() const;
33   //  Double_t    Centrality() const {return 0.9999*exp(-NGoodParticles()/1000.0);} // 7 for pp 900 GeV, 12 for pp 7 TeV, 1000  PbPb
34   Double_t    Centrality() const; 
35   void        RP(Double_t &qx, Double_t &qy) const {AliUnicorEvent::RP(qx,qy,2);}
36   Double_t    RPphi() const {Double_t qx,qy; RP(qx,qy); return atan2(qy,qx);}
37   Double_t    Zver() const {return fESD->GetPrimaryVertex()->GetZv()/12.0;}
38   Int_t       NParticles() const {return fESD->GetNumberOfTracks();}
39
40   Bool_t      ParticleGood(Int_t i, Int_t pidi=0) const;
41   Double_t    ParticleP(Int_t i)     const {return GetTrackParam(i)->P();}
42   Double_t    ParticleTheta(Int_t i) const {return GetTrackParam(i)->Theta();}
43   Double_t    ParticlePhi(Int_t i)   const {return TVector2::Phi_mpi_pi(GetTrackParam(i)->Phi());}
44   Double_t    ParticleDedx(Int_t i)  const {return fESD->GetTrack(i)->GetTPCsignal()/50.0;}
45   Bool_t      PairGood(double p0, double the0, double phi0, double z0, 
46                        double p1, double the1, double phi1, double z1) const;
47   void        SetESD(AliESDEvent * const esd) {fESD = esd;}
48   AliESDEvent *GetESD() const {return fESD;}
49   //const AliExternalTrackParam *GetTrackParam(Int_t i) const {return fESD->GetTrack(i);}
50   //const AliExternalTrackParam *GetTrackParam(Int_t i) const {return fESD->GetTrack(i)->GetConstrainedParam();}
51   //const AliExternalTrackParam *GetTrackParam(Int_t i) const {return fESD->GetTrack(i)->GetInnerParam();} // not at vtx!
52   const AliExternalTrackParam *GetTrackParam(Int_t i) const {return fESD->GetTrack(i)->GetTPCInnerParam();}
53
54  protected:
55   TGraph      *fViper;                    // V0 centrality percentile
56   AliESDEvent *fESD;                      //! pointer to the actual source of data
57   //  AliPhysicsSelection *fPhysicsSelection; //! interaction event filter
58
59   ClassDef(AliUnicorEventAliceESD,0)
60 };
61 #endif 
62 //=============================================================================