]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FLOW/AliFlowTasks/AliAnalysisTaskScalarProduct.h
allow for correlations with only one subevent
[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 SetTotalQvector(const char *tqv) {*this->fTotalQvector = tqv;}; 
46
47  private:
48
49   AliAnalysisTaskScalarProduct(const AliAnalysisTaskScalarProduct& aAnalysisTask);
50   AliAnalysisTaskScalarProduct& operator=(const AliAnalysisTaskScalarProduct& aAnalysisTask); 
51
52   AliFlowEventSimple*               fEvent;         //input event
53   AliFlowAnalysisWithScalarProduct* fSP;            // analysis object
54   TList*                            fListHistos;    // collection of output
55
56   Bool_t    fUsePhiWeights; // use phi weights
57   TList*    fListWeights;   // list with weights
58
59   Double_t  fRelDiffMsub;   // the relative difference the two subevent multiplicities can have
60   
61   Bool_t fApplyCorrectionForNUA; // apply automatic correction for non-uniform acceptance 
62   
63   Int_t fHarmonic;               // harmonic
64   
65   TString   *fTotalQvector;      // total Q-vector is: "QaQb" (means Qa+Qb), "Qa"  or "Qb"  
66   
67   ClassDef(AliAnalysisTaskScalarProduct, 1); // example of analysis
68 };
69
70 //==================================================================
71
72 #endif