]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/hfe/AliAnalysisTaskHFEFlow.h
Transition PWG3 --> PWGHF
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliAnalysisTaskHFEFlow.h
1 /**************************************************************************\r
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *\r
3 *                                                                        *\r
4 * Author: The ALICE Off-line Project.                                    *\r
5 * Contributors are mentioned in the code where appropriate.              *\r
6 *                                                                        *\r
7 * Permission to use, copy, modify and distribute this software and its   *\r
8 * documentation strictly for non-commercial purposes is hereby granted   *\r
9 * without fee, provided that the above copyright notice appears in all   *\r
10 * copies and that both the copyright notice and this permission notice   *\r
11 * appear in the supporting documentation. The authors make no claims     *\r
12 * about the suitability of this software for any purpose. It is          *\r
13 * provided "as is" without express or implied warranty.                  *\r
14 **************************************************************************/\r
15 //\r
16 // Flow task class for the ALICE HFE group\r
17 //\r
18 //\r
19 #ifndef ALIANALYSISTASKHFEFLOW_H\r
20 #define ALIANALYSISTASKHFEFLOW_H\r
21 \r
22 \r
23 \r
24 \r
25 #include <AliAnalysisTaskSE.h>\r
26 \r
27 class TList;\r
28 class AliFlowTrackCuts;\r
29 class AliFlowCandidateTrack;\r
30 class AliHFEcuts;\r
31 class AliHFEpid;\r
32 class TH1D;\r
33 class TH2D;\r
34 class THnSparse;\r
35 class AliHFEpidQAmanager;\r
36 class AliFlowEvent;\r
37 \r
38 class AliAnalysisTaskHFEFlow: public AliAnalysisTaskSE {\r
39   \r
40 public:\r
41   AliAnalysisTaskHFEFlow();\r
42   AliAnalysisTaskHFEFlow(const char *name);\r
43   //TODO: if we get the ESDpid object from somewhere else, we should not delete it anymore!!!\r
44   virtual ~AliAnalysisTaskHFEFlow(){;}\r
45   \r
46   virtual void  UserExec(Option_t */*option*/);\r
47   virtual void  UserCreateOutputObjects();\r
48 \r
49   AliHFEpid *GetPID() const { return fPID; }\r
50   void SetHFECuts(AliHFEcuts * const cuts) { fHFECuts = cuts; };\r
51   void SetSubEtaGapTPC(Bool_t  subEtaGapTPC) { fSubEtaGapTPC = subEtaGapTPC; };\r
52   void SetEtaGap(Double_t  etaGap) { fEtaGap = etaGap; };\r
53 \r
54   void SetNbBinsPtQCumulant(Int_t nbBinsPtQCumulant) { fNbBinsPtQCumulant = nbBinsPtQCumulant; };\r
55   void SetMinPtQCumulant(Double_t minPtQCumulant) { fMinPtQCumulant = minPtQCumulant; };\r
56   void SetMaxPtQCumulant(Double_t maxPtQCumulant) { fMaxPtQCumulant = maxPtQCumulant; };\r
57 \r
58   void SetAfterBurnerOn(Bool_t afterBurnerOn)     { fAfterBurnerOn = afterBurnerOn; };\r
59   void SetNonFlowNumberOfTrackClones(Int_t nonFlowNumberOfTrackClones) { fNonFlowNumberOfTrackClones = nonFlowNumberOfTrackClones; };\r
60   void SetV1V2V3V4V5(Double_t v1,Double_t v2,Double_t v3,Double_t v4,Double_t v5) {fV1 = v1; fV2 = v2; fV3 = v3; fV4 = v4; fV5 = v5; };\r
61   void SetMaxNumberOfIterations(Int_t maxNumberOfIterations) { fMaxNumberOfIterations = maxNumberOfIterations; };\r
62   void SetPrecisionPhi(Double_t precisionPhi) { fPrecisionPhi = precisionPhi;};\r
63   void SetUseMCReactionPlane(Bool_t useMCReactionPlane) { fUseMCReactionPlane = useMCReactionPlane;};\r
64   void SetMCPID(Bool_t mcPID) { fMCPID = mcPID;};\r
65 \r
66   \r
67   AliFlowCandidateTrack *MakeTrack( Double_t mass, Double_t pt, Double_t phi, Double_t eta) ;\r
68   Double_t GetPhiAfterAddV2(Double_t phi,Double_t reactionPlaneAngle) const;\r
69   \r
70 private:\r
71   TList       *fListHist;  //TH list\r
72 \r
73   Bool_t  fSubEtaGapTPC;  // bool to fill with eta gap\r
74   Double_t fEtaGap;       // Value of the eta gap\r
75 \r
76   Int_t   fNbBinsPtQCumulant; // Nbbinspt QCumulant method\r
77   Double_t fMinPtQCumulant;   // Min pt QCumulant method\r
78   Double_t fMaxPtQCumulant;   // Max pt QCumulant method\r
79   Bool_t   fAfterBurnerOn;    // Add flow to all tracks\r
80   Int_t     fNonFlowNumberOfTrackClones; // number of times to clone the particles (nonflow) \r
81   Double_t  fV1;        // Add Flow. Must be in range [0,0.5].\r
82   Double_t  fV2;        // Add Flow. Must be in range [0,0.5].\r
83   Double_t  fV3;        // Add Flow. Must be in range [0,0.5].\r
84   Double_t  fV4;        // Add Flow. Must be in range [0,0.5].\r
85   Double_t  fV5;        // Add Flow. Must be in range [0,0.5].\r
86   Int_t     fMaxNumberOfIterations; // Max number of iteration for adding v2\r
87   Double_t  fPrecisionPhi;  // precision phi for adding v2\r
88   Bool_t    fUseMCReactionPlane; // use MC reaction plane\r
89 \r
90   Bool_t    fMCPID; // MC PID for electrons\r
91   \r
92 \r
93   // Cuts for FLOW PWG2\r
94   AliFlowTrackCuts* fcutsRP;  // Reference particle cut\r
95   AliFlowTrackCuts* fcutsPOI; // Particle Of Interest cut\r
96   \r
97   // Cuts for HFE\r
98   AliHFEcuts *fHFECuts;       // HFE cuts\r
99   AliHFEpid  *fPID;           // PID cuts \r
100   AliHFEpidQAmanager *fPIDqa;   // QA Manager\r
101   AliFlowEvent *fflowEvent;     // Flow event   \r
102   \r
103 \r
104   // Histos\r
105   TH2D *fHistEV;               // Number of events\r
106   \r
107   // A Event plane as function of phiep, centrality \r
108   THnSparseF *fEventPlane;     // Event plane\r
109   \r
110   // B Event Plane after subtraction as function of phiep, centrality \r
111   THnSparseF *fEventPlaneaftersubtraction; // Event plane\r
112 \r
113   // E Monitoring Event plane after subtraction of the track: cos, centrality, pt, eta\r
114   THnSparseF *fCos2phie;  // Monitoring\r
115   THnSparseF *fSin2phie;  // Monitoring\r
116   THnSparseF *fCos2phiep;  // Monitoring\r
117   THnSparseF *fSin2phiep;  // Monitoring\r
118   THnSparseF *fSin2phiephiep;  // Monitoring\r
119   \r
120   // F Resolution as function of cosres, centrality \r
121   THnSparseF *fCosRes; // Res\r
122   \r
123   // G Maps delta phi as function of deltaphi, centrality, pt\r
124   THnSparseF *fDeltaPhiMaps; // Delta phi\r
125   \r
126   // H Maps cos phi : cos, centrality, pt\r
127   THnSparseF *fCosPhiMaps;  //Cos\r
128 \r
129          \r
130   \r
131   \r
132   AliAnalysisTaskHFEFlow(const AliAnalysisTaskHFEFlow&); // not implemented\r
133   AliAnalysisTaskHFEFlow& operator=(const AliAnalysisTaskHFEFlow&); // not implemented\r
134   \r
135   ClassDef(AliAnalysisTaskHFEFlow, 1); // analysisclass\r
136 };\r
137 \r
138 #endif\r