ROOT logo
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
/* $Id: $ */

#ifndef AliAnalysisTaskScalarProduct_H
#define AliAnalysisTaskScalarProduct_H

/////////////////////////////////////////////////
// AliAnalysisTaskScalarProduct:
// analysis task for Scalar Product method
// Author: Naomi van der Kolk (kolk@nikhef.nl)
/////////////////////////////////////////////////

class AliFlowEventSimple;
class AliFlowAnalysisWithScalarProduct;
class TList;

#include "TString.h"
#include "AliAnalysisTaskSE.h"

//===============================================================

class AliAnalysisTaskScalarProduct : public AliAnalysisTaskSE {
 public:
  AliAnalysisTaskScalarProduct();
  AliAnalysisTaskScalarProduct(const char *name, Bool_t usePhiWeights);
  virtual ~AliAnalysisTaskScalarProduct();
  
  virtual void   UserCreateOutputObjects();
  virtual void   UserExec(Option_t *option);
  virtual void   Terminate(Option_t *);

  void   SetUsePhiWeights(Bool_t const aPhiW) {this->fUsePhiWeights = aPhiW;}
  Bool_t GetUsePhiWeights() const             {return this->fUsePhiWeights;}

  void     SetRelDiffMsub(Double_t diff) { this->fRelDiffMsub = diff; }
  Double_t GetRelDiffMsub() const        { return this->fRelDiffMsub; }
  
  void SetApplyCorrectionForNUA(Bool_t const applyCorrectionForNUA) {this->fApplyCorrectionForNUA = applyCorrectionForNUA;};
  Bool_t GetApplyCorrectionForNUA() const {return this->fApplyCorrectionForNUA;};
  
  void SetHarmonic(Int_t const harmonic) {this->fHarmonic = harmonic;};
  Int_t GetHarmonic() const {return this->fHarmonic;};   

  void SetBehaveAsEP() { fNormalizationType = 0; }
  
  void SetTotalQvector(const char *tqv) {*this->fTotalQvector = tqv;}; 

  void SetBookOnlyBasicCCH(Bool_t const aMB) {this->fMinimalBook = aMB;}

 private:

  AliAnalysisTaskScalarProduct(const AliAnalysisTaskScalarProduct& aAnalysisTask);
  AliAnalysisTaskScalarProduct& operator=(const AliAnalysisTaskScalarProduct& aAnalysisTask); 

  AliFlowEventSimple*               fEvent;         //input event
  AliFlowAnalysisWithScalarProduct* fSP;            // analysis object
  TList*                            fListHistos;    // collection of output

  Bool_t    fMinimalBook;   // flag to turn off QA and minimize FlowCommonHist                                                                                                                                                
  Bool_t    fUsePhiWeights; // use phi weights
  TList*    fListWeights;   // list with weights

  Double_t  fRelDiffMsub;   // the relative difference the two subevent multiplicities can have
  
  Bool_t fApplyCorrectionForNUA; // apply automatic correction for non-uniform acceptance 
  
  Int_t fHarmonic;               // harmonic
  Int_t fNormalizationType;      // 0: EP mode || 1: SP mode (default)

  TString   *fTotalQvector;      // total Q-vector is: "QaQb" (means Qa+Qb), "Qa"  or "Qb"  
  
  ClassDef(AliAnalysisTaskScalarProduct, 2); // example of analysis
};

//==================================================================

#endif
 AliAnalysisTaskScalarProduct.h:1
 AliAnalysisTaskScalarProduct.h:2
 AliAnalysisTaskScalarProduct.h:3
 AliAnalysisTaskScalarProduct.h:4
 AliAnalysisTaskScalarProduct.h:5
 AliAnalysisTaskScalarProduct.h:6
 AliAnalysisTaskScalarProduct.h:7
 AliAnalysisTaskScalarProduct.h:8
 AliAnalysisTaskScalarProduct.h:9
 AliAnalysisTaskScalarProduct.h:10
 AliAnalysisTaskScalarProduct.h:11
 AliAnalysisTaskScalarProduct.h:12
 AliAnalysisTaskScalarProduct.h:13
 AliAnalysisTaskScalarProduct.h:14
 AliAnalysisTaskScalarProduct.h:15
 AliAnalysisTaskScalarProduct.h:16
 AliAnalysisTaskScalarProduct.h:17
 AliAnalysisTaskScalarProduct.h:18
 AliAnalysisTaskScalarProduct.h:19
 AliAnalysisTaskScalarProduct.h:20
 AliAnalysisTaskScalarProduct.h:21
 AliAnalysisTaskScalarProduct.h:22
 AliAnalysisTaskScalarProduct.h:23
 AliAnalysisTaskScalarProduct.h:24
 AliAnalysisTaskScalarProduct.h:25
 AliAnalysisTaskScalarProduct.h:26
 AliAnalysisTaskScalarProduct.h:27
 AliAnalysisTaskScalarProduct.h:28
 AliAnalysisTaskScalarProduct.h:29
 AliAnalysisTaskScalarProduct.h:30
 AliAnalysisTaskScalarProduct.h:31
 AliAnalysisTaskScalarProduct.h:32
 AliAnalysisTaskScalarProduct.h:33
 AliAnalysisTaskScalarProduct.h:34
 AliAnalysisTaskScalarProduct.h:35
 AliAnalysisTaskScalarProduct.h:36
 AliAnalysisTaskScalarProduct.h:37
 AliAnalysisTaskScalarProduct.h:38
 AliAnalysisTaskScalarProduct.h:39
 AliAnalysisTaskScalarProduct.h:40
 AliAnalysisTaskScalarProduct.h:41
 AliAnalysisTaskScalarProduct.h:42
 AliAnalysisTaskScalarProduct.h:43
 AliAnalysisTaskScalarProduct.h:44
 AliAnalysisTaskScalarProduct.h:45
 AliAnalysisTaskScalarProduct.h:46
 AliAnalysisTaskScalarProduct.h:47
 AliAnalysisTaskScalarProduct.h:48
 AliAnalysisTaskScalarProduct.h:49
 AliAnalysisTaskScalarProduct.h:50
 AliAnalysisTaskScalarProduct.h:51
 AliAnalysisTaskScalarProduct.h:52
 AliAnalysisTaskScalarProduct.h:53
 AliAnalysisTaskScalarProduct.h:54
 AliAnalysisTaskScalarProduct.h:55
 AliAnalysisTaskScalarProduct.h:56
 AliAnalysisTaskScalarProduct.h:57
 AliAnalysisTaskScalarProduct.h:58
 AliAnalysisTaskScalarProduct.h:59
 AliAnalysisTaskScalarProduct.h:60
 AliAnalysisTaskScalarProduct.h:61
 AliAnalysisTaskScalarProduct.h:62
 AliAnalysisTaskScalarProduct.h:63
 AliAnalysisTaskScalarProduct.h:64
 AliAnalysisTaskScalarProduct.h:65
 AliAnalysisTaskScalarProduct.h:66
 AliAnalysisTaskScalarProduct.h:67
 AliAnalysisTaskScalarProduct.h:68
 AliAnalysisTaskScalarProduct.h:69
 AliAnalysisTaskScalarProduct.h:70
 AliAnalysisTaskScalarProduct.h:71
 AliAnalysisTaskScalarProduct.h:72
 AliAnalysisTaskScalarProduct.h:73
 AliAnalysisTaskScalarProduct.h:74
 AliAnalysisTaskScalarProduct.h:75
 AliAnalysisTaskScalarProduct.h:76
 AliAnalysisTaskScalarProduct.h:77
 AliAnalysisTaskScalarProduct.h:78