Introduction of VZERO event-plane selection task that can be used in order to flatten...
[u/mrichter/AliRoot.git] / STEER / STEERBase / AliEventplane.h
CommitLineData
e51055a0 1#ifndef ALIEVENTPLANE_H
2#define ALIEVENTPLANE_H
ce7adfe9 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
14class TVector2;
aa260dd1 15class AliVTrack;
ce7adfe9 16class TObjArray;
17class TArrayF;
fd5c821a 18class AliVEvent;
ce7adfe9 19
20class 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 void SetQVector(TVector2* qvector) {fQVector = qvector;}
32 void SetEventplaneQ(Double_t evp) {fEventplaneQ = evp;}
33 void SetQsub(TVector2* qs1, TVector2* qs2) {fQsub1 = qs1;fQsub2 = qs2;}
34 void SetQsubRes (Double_t qsr) {fQsubRes = qsr;}
35
36 /// get event plane result
37 TVector2* GetQVector();
3e64f60c 38 Double_t GetQContributionX(AliVTrack* track);
39 Double_t GetQContributionY(AliVTrack* track);
e51055a0 40 Double_t GetQContributionXsub1(AliVTrack* track);
41 Double_t GetQContributionYsub1(AliVTrack* track);
42 Double_t GetQContributionXsub2(AliVTrack* track);
43 Double_t GetQContributionYsub2(AliVTrack* track);
3e64f60c 44 TArrayF* GetQContributionXArray() { return fQContributionX; }
45 TArrayF* GetQContributionYArray() { return fQContributionY; }
e51055a0 46 TArrayF* GetQContributionXArraysub1() { return fQContributionXsub1; }
47 TArrayF* GetQContributionYArraysub1() { return fQContributionYsub1; }
48 TArrayF* GetQContributionXArraysub2() { return fQContributionXsub2; }
49 TArrayF* GetQContributionYArraysub2() { return fQContributionYsub2; }
fd5c821a 50 Double_t GetEventplane(const char *x, const AliVEvent *event = NULL, Int_t harmonic = 2) const;
ce7adfe9 51 TVector2* GetQsub1();
52 TVector2* GetQsub2();
3e64f60c 53 Double_t GetQsubRes();
54 Bool_t IsEventInEventplaneClass(Double_t a, Double_t b, const char *method);
fd5c821a 55 Double_t CalculateVZEROEventPlane(const AliVEvent *event, Int_t firstRing, Int_t lastRing, Int_t harmonic) const;
0643f5a7 56 void SetVZEROEPParams(Int_t ring,
57 Double_t meanX2, Double_t meanY2,
58 Double_t aPlus, Double_t aMinus,
59 Double_t lambdaPlus, Double_t lambdaMinus,
60 Double_t cos8Psi);
3e64f60c 61
62 void Reset();
ce7adfe9 63
64 private:
e51055a0 65 TVector2* fQVector; // Q-Vector of event
66 TArrayF* fQContributionX; // array of the tracks' contributions to X component of Q-Vector - index = track ID
67 TArrayF* fQContributionY; // array of the tracks' contributions to Y component of Q-Vector - index = track ID
68 TArrayF* fQContributionXsub1; // array of the tracks' contributions to X component of Q-Vectorsub1 - index = track ID
69 TArrayF* fQContributionYsub1; // array of the tracks' contributions to Y component of Q-Vectorsub1 - index = track ID
70 TArrayF* fQContributionXsub2; // array of the tracks' contributions to X component of Q-Vectorsub2 - index = track ID
71 TArrayF* fQContributionYsub2; // array of the tracks' contributions to Y component of Q-Vectorsub2 - index = track ID
72 Double_t fEventplaneQ; // Event plane angle from Q-Vector
73 TVector2* fQsub1; // Q-Vector of subevent 1
74 TVector2* fQsub2; // Q-Vector of subevent 2
75 Double_t fQsubRes; // Difference of EP angles of subevents
0643f5a7 76 Double_t fMeanX2[8]; // Mean Q^2_X for VZERO EP
77 Double_t fMeanY2[8]; // Mean Q^2_Y for VZERO EP
78 Double_t fAPlus[8]; // Q^2_X rescaling parameter for VZERO EP
79 Double_t fAMinus[8]; // Q^2_Y rescaling parameter for VZERO EP
80 Double_t fLambdaPlus[8]; // Q^2_X twisting parameter for VZERO EP
81 Double_t fLambdaMinus[8]; // Q^2_Y twisting parameter for VZERO EP
82 Double_t fCos8Psi[8]; // 4th Fourier momenta used to flatten VZERO EP within a sector
83
84 ClassDef(AliEventplane, 4)
ce7adfe9 85};
86#endif //ALIEVENTPLANE_H