Extension for AOD
[u/mrichter/AliRoot.git] / STEER / STEERBase / AliEventplane.h
1 #ifndef ALIEVENTPLANE_H
2 #define ALIEVENTPLANE_H
3
4 /* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 //*****************************************************
8 //   Class AliEventplane
9 //   author: Alberica Toia, Johanna Gramling
10 //*****************************************************
11
12 #include "TNamed.h"
13
14 class TVector2;
15 class AliVTrack;
16 class TObjArray;
17 class TArrayF;
18
19 class AliEventplane : public TNamed
20 {
21  public:
22
23   AliEventplane();  /// constructor
24   ~AliEventplane();  /// destructor
25   AliEventplane(const AliEventplane& ep); /// copy constructor
26   AliEventplane& operator=(const AliEventplane& ep);   /// assignment operator
27   virtual void CopyEP(AliEventplane& ep) const;
28
29   /// set event plane result
30   void SetQVector(TVector2* qvector) {fQVector = qvector;}
31   void SetEventplaneQ(Double_t evp) {fEventplaneQ = evp;} 
32   void SetQsub(TVector2* qs1, TVector2* qs2) {fQsub1 = qs1;fQsub2 = qs2;}
33   void SetQsubRes (Double_t qsr) {fQsubRes = qsr;}
34
35   /// get event plane result
36   TVector2* GetQVector(); 
37   Double_t  GetQContributionX(AliVTrack* track);
38   Double_t  GetQContributionY(AliVTrack* track);
39   Double_t  GetQContributionXsub1(AliVTrack* track);
40   Double_t  GetQContributionYsub1(AliVTrack* track);
41   Double_t  GetQContributionXsub2(AliVTrack* track);
42   Double_t  GetQContributionYsub2(AliVTrack* track);
43   TArrayF*  GetQContributionXArray() { return fQContributionX; }
44   TArrayF*  GetQContributionYArray() { return fQContributionY; }
45   TArrayF*  GetQContributionXArraysub1() { return fQContributionXsub1; }
46   TArrayF*  GetQContributionYArraysub1() { return fQContributionYsub1; }
47   TArrayF*  GetQContributionXArraysub2() { return fQContributionXsub2; }
48   TArrayF*  GetQContributionYArraysub2() { return fQContributionYsub2; }
49   Double_t  GetEventplane(const char *method);
50   TVector2* GetQsub1();
51   TVector2* GetQsub2();
52   Double_t  GetQsubRes();
53   Bool_t    IsEventInEventplaneClass(Double_t a, Double_t b, const char *method);
54
55   void Reset();
56
57  private:
58    TVector2* fQVector;           // Q-Vector of event
59    TArrayF* fQContributionX;     // array of the tracks' contributions to X component of Q-Vector - index = track ID
60    TArrayF* fQContributionY;     // array of the tracks' contributions to Y component of Q-Vector - index = track ID
61    TArrayF* fQContributionXsub1; // array of the tracks' contributions to X component of Q-Vectorsub1 - index = track ID
62    TArrayF* fQContributionYsub1; // array of the tracks' contributions to Y component of Q-Vectorsub1 - index = track ID
63    TArrayF* fQContributionXsub2; // array of the tracks' contributions to X component of Q-Vectorsub2 - index = track ID
64    TArrayF* fQContributionYsub2; // array of the tracks' contributions to Y component of Q-Vectorsub2 - index = track ID
65    Double_t fEventplaneQ;        // Event plane angle from Q-Vector
66    TVector2* fQsub1;             // Q-Vector of subevent 1
67    TVector2* fQsub2;             // Q-Vector of subevent 2
68    Double_t fQsubRes;            // Difference of EP angles of subevents
69  
70   ClassDef(AliEventplane, 1)
71 };
72 #endif //ALIEVENTPLANE_H