Line data Source code
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 : class AliVEvent;
19 :
20 : class AliEventplane : public TNamed
21 : {
22 : public:
23 :
24 : AliEventplane(); /// constructor
25 : ~AliEventplane(); /// destructor
26 : AliEventplane(const AliEventplane& ep); /// copy constructor
27 : AliEventplane& operator=(const AliEventplane& ep); /// assignment operator
28 : virtual void CopyEP(AliEventplane& ep) const;
29 :
30 : /// set event plane result
31 0 : void SetQVector(TVector2* qvector) {fQVector = qvector;}
32 0 : void SetEventplaneQ(Double_t evp) {fEventplaneQ = evp;}
33 0 : void SetQsub(TVector2* qs1, TVector2* qs2) {fQsub1 = qs1;fQsub2 = qs2;}
34 0 : void SetQsubRes (Double_t qsr) {fQsubRes = qsr;}
35 :
36 : /// get event plane result
37 : TVector2* GetQVector();
38 : Double_t GetQContributionX(AliVTrack* track);
39 : Double_t GetQContributionY(AliVTrack* track);
40 : Double_t GetQContributionXsub1(AliVTrack* track);
41 : Double_t GetQContributionYsub1(AliVTrack* track);
42 : Double_t GetQContributionXsub2(AliVTrack* track);
43 : Double_t GetQContributionYsub2(AliVTrack* track);
44 0 : TArrayF* GetQContributionXArray() { return fQContributionX; }
45 0 : TArrayF* GetQContributionYArray() { return fQContributionY; }
46 0 : TArrayF* GetQContributionXArraysub1() { return fQContributionXsub1; }
47 0 : TArrayF* GetQContributionYArraysub1() { return fQContributionYsub1; }
48 0 : TArrayF* GetQContributionXArraysub2() { return fQContributionXsub2; }
49 0 : TArrayF* GetQContributionYArraysub2() { return fQContributionYsub2; }
50 : Double_t GetEventplane(const char *x, const AliVEvent *event = NULL, Int_t harmonic = 2) const;
51 : TVector2* GetQsub1();
52 : TVector2* GetQsub2();
53 : Double_t GetQsubRes();
54 : Bool_t IsEventInEventplaneClass(Double_t a, Double_t b, const char *method);
55 : Double_t CalculateVZEROEventPlane(const AliVEvent *event, Int_t firstRing, Int_t lastRing, Int_t harmonic, Double_t &qxTot, Double_t &qyTot) const;
56 : Double_t CalculateVZEROEventPlane(const AliVEvent * event, Int_t ring, Int_t harmonic, Double_t &qx, Double_t &qy) const;
57 : void SetVZEROEPParams(Int_t ring,
58 : Double_t meanX2, Double_t meanY2,
59 : Double_t aPlus, Double_t aMinus,
60 : Double_t lambdaPlus, Double_t lambdaMinus,
61 : Double_t cos8Psi);
62 :
63 : void Reset();
64 :
65 : private:
66 : TVector2* fQVector; // Q-Vector of event
67 : TArrayF* fQContributionX; // array of the tracks' contributions to X component of Q-Vector - index = track ID
68 : TArrayF* fQContributionY; // array of the tracks' contributions to Y component of Q-Vector - index = track ID
69 : TArrayF* fQContributionXsub1; // array of the tracks' contributions to X component of Q-Vectorsub1 - index = track ID
70 : TArrayF* fQContributionYsub1; // array of the tracks' contributions to Y component of Q-Vectorsub1 - index = track ID
71 : TArrayF* fQContributionXsub2; // array of the tracks' contributions to X component of Q-Vectorsub2 - index = track ID
72 : TArrayF* fQContributionYsub2; // array of the tracks' contributions to Y component of Q-Vectorsub2 - index = track ID
73 : Double_t fEventplaneQ; // Event plane angle from Q-Vector
74 : TVector2* fQsub1; // Q-Vector of subevent 1
75 : TVector2* fQsub2; // Q-Vector of subevent 2
76 : Double_t fQsubRes; // Difference of EP angles of subevents
77 : Double_t fMeanX2[11]; // Mean Q^2_X for VZERO EP
78 : Double_t fMeanY2[11]; // Mean Q^2_Y for VZERO EP
79 : Double_t fAPlus[11]; // Q^2_X rescaling parameter for VZERO EP
80 : Double_t fAMinus[11]; // Q^2_Y rescaling parameter for VZERO EP
81 : Double_t fLambdaPlus[11]; // Q^2_X twisting parameter for VZERO EP
82 : Double_t fLambdaMinus[11]; // Q^2_Y twisting parameter for VZERO EP
83 : Double_t fCos8Psi[11]; // 4th Fourier momenta used to flatten VZERO EP within a sector
84 :
85 220 : ClassDef(AliEventplane, 5)
86 : };
87 : #endif //ALIEVENTPLANE_H
|