]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FLOW/AliFlowTasks/AliAnalysisTaskScalarProduct.h
new version scalar product which includes different weights which then behaves as...
[u/mrichter/AliRoot.git] / PWG2 / FLOW / AliFlowTasks / AliAnalysisTaskScalarProduct.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
3 /* $Id: $ */
4
5 #ifndef AliAnalysisTaskScalarProduct_H
6 #define AliAnalysisTaskScalarProduct_H
7
8 /////////////////////////////////////////////////
9 // AliAnalysisTaskScalarProduct:
10 // analysis task for Scalar Product method
11 // Author: Naomi van der Kolk (kolk@nikhef.nl)
12 /////////////////////////////////////////////////
13
14 class AliFlowEventSimple;
15 class AliFlowAnalysisWithScalarProduct;
16 class TList;
17
18 #include "TString.h"
19 #include "AliAnalysisTaskSE.h"
20
21 //===============================================================
22
23 class AliAnalysisTaskScalarProduct : public AliAnalysisTaskSE {
24  public:
25   AliAnalysisTaskScalarProduct();
26   AliAnalysisTaskScalarProduct(const char *name, Bool_t usePhiWeights);
27   virtual ~AliAnalysisTaskScalarProduct();
28   
29   virtual void   UserCreateOutputObjects();
30   virtual void   UserExec(Option_t *option);
31   virtual void   Terminate(Option_t *);
32
33   void   SetUsePhiWeights(Bool_t const aPhiW) {this->fUsePhiWeights = aPhiW;}
34   Bool_t GetUsePhiWeights() const             {return this->fUsePhiWeights;}
35
36   void     SetRelDiffMsub(Double_t diff) { this->fRelDiffMsub = diff; }
37   Double_t GetRelDiffMsub() const        { return this->fRelDiffMsub; }
38   
39   void SetApplyCorrectionForNUA(Bool_t const applyCorrectionForNUA) {this->fApplyCorrectionForNUA = applyCorrectionForNUA;};
40   Bool_t GetApplyCorrectionForNUA() const {return this->fApplyCorrectionForNUA;};
41   
42   void SetHarmonic(Int_t const harmonic) {this->fHarmonic = harmonic;};
43   Int_t GetHarmonic() const {return this->fHarmonic;};   
44
45   void SetBehaveAsEP() { fNormalizationType = 0; }
46   
47   void SetTotalQvector(const char *tqv) {*this->fTotalQvector = tqv;}; 
48
49  private:
50
51   AliAnalysisTaskScalarProduct(const AliAnalysisTaskScalarProduct& aAnalysisTask);
52   AliAnalysisTaskScalarProduct& operator=(const AliAnalysisTaskScalarProduct& aAnalysisTask); 
53
54   AliFlowEventSimple*               fEvent;         //input event
55   AliFlowAnalysisWithScalarProduct* fSP;            // analysis object
56   TList*                            fListHistos;    // collection of output
57
58   Bool_t    fUsePhiWeights; // use phi weights
59   TList*    fListWeights;   // list with weights
60
61   Double_t  fRelDiffMsub;   // the relative difference the two subevent multiplicities can have
62   
63   Bool_t fApplyCorrectionForNUA; // apply automatic correction for non-uniform acceptance 
64   
65   Int_t fHarmonic;               // harmonic
66   Int_t fNormalizationType;      // 0: EP mode || 1: SP mode (default)
67
68   TString   *fTotalQvector;      // total Q-vector is: "QaQb" (means Qa+Qb), "Qa"  or "Qb"  
69   
70   ClassDef(AliAnalysisTaskScalarProduct, 1); // example of analysis
71 };
72
73 //==================================================================
74
75 #endif