1 #ifndef ALIUNICOREVENTALICEESD_H
2 #define ALIUNICOREVENTALICEESD_H
4 /* Copyright(c) 1998-2048, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
8 // Author: Dariusz Miskowiec <mailto:d.miskowiec@gsi.de> 2008
12 #include "AliESDEvent.h"
13 //#include "AliPhysicsSelection.h"
14 #include "AliExternalTrackParam.h"
15 #include "AliUnicorEvent.h"
17 //class AliPhysicsSelection;
20 //=============================================================================
21 class AliUnicorEventAliceESD : public AliUnicorEvent {
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);}
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();}
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();}
55 TGraph *fViper; // V0 centrality percentile
56 AliESDEvent *fESD; //! pointer to the actual source of data
57 // AliPhysicsSelection *fPhysicsSelection; //! interaction event filter
59 ClassDef(AliUnicorEventAliceESD,0)
62 //=============================================================================