]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/UNICOR/AliUnicorEvent.h
Update to macros for wider multiplicity axis and fixed rapidity interval
[u/mrichter/AliRoot.git] / PWG2 / UNICOR / AliUnicorEvent.h
1 #ifndef ALIUNICOREVENT_H
2 #define ALIUNICOREVENT_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> 2007
9
10 //=============================================================================
11 // parent class of all events; analyzers access data via this class
12 //=============================================================================
13
14 #include <cmath>
15 #include <TObject.h>
16
17 class TTree;
18
19 //=============================================================================
20 class AliUnicorEvent : public TObject {
21  public:
22   AliUnicorEvent() : TObject(){}                      // constructor
23   virtual ~AliUnicorEvent()   {}                      // destructor
24
25   // interface part
26
27   virtual void        AttachTree(TTree *tr) = 0;
28   virtual Double_t    Etamin() const = 0;         // experiment's acceptance
29   virtual Double_t    Etamax() const = 0;
30   virtual Bool_t      Good() const = 0;  
31   virtual Double_t    Centrality() const = 0;     // centrality (0,1); 0 is most central
32   virtual void        RP(Double_t &qx, Double_t &qy) const = 0;
33   virtual Double_t    RPphi() const = 0;
34   virtual Double_t    Zver() const = 0;           // z-vertex (-1,1)
35   virtual Int_t       NParticles() const = 0;     // number of tracks
36
37   virtual Bool_t      ParticleGood(Int_t i, Int_t pidi=0) const = 0;
38   virtual Double_t    ParticleP(Int_t i) const = 0;
39   virtual Double_t    ParticleTheta(Int_t i) const = 0;
40   virtual Double_t    ParticlePhi(Int_t i) const = 0;
41   virtual Double_t    ParticleDedx(Int_t i) const = 0;
42   virtual Bool_t      PairGood(double p0, double the0, double phi0, double z0, 
43                                double p1, double the1, double phi1, double z1) const = 0;
44
45   // toolkit part
46
47   Int_t    NGoodParticles() const {int n=0; for (int i=0; i<NParticles(); i++) if (ParticleGood(i)) n++; return n;}
48   void     RP(Double_t &qx, Double_t &qy, Int_t harmonic) const;
49   Double_t ParticlePt(Int_t i) const {return ParticleP(i)*sin(ParticleTheta(i));}
50   Double_t ParticlePz(Int_t i) const {return ParticleP(i)*cos(ParticleTheta(i));}
51   Double_t ParticleEta(Int_t i) const;
52   Double_t ParticleY(Int_t i, Double_t mass) const; 
53
54   ClassDef(AliUnicorEvent,0)
55 };
56 #endif 
57 //=============================================================================