ROOT logo
#ifndef ALIANALYSISTASKRHOBASE_H
#define ALIANALYSISTASKRHOBASE_H

// $Id$

class TString;
class TF1;
class TH1F;
class TH2F;
class TH3F;
class AliRhoParameter;

#include "AliAnalysisTaskEmcalJet.h"

class AliAnalysisTaskRhoBase : public AliAnalysisTaskEmcalJet {
 public:
  AliAnalysisTaskRhoBase();
  AliAnalysisTaskRhoBase(const char *name, Bool_t histo=kFALSE);
  virtual ~AliAnalysisTaskRhoBase() {}

  void                   UserCreateOutputObjects();

  void                   SetOutRhoName(const char *name)                       { fOutRhoName           = name ; 
                                                                                 fOutRhoScaledName     = Form("%s_Scaled",name) ; }
  void                   SetCompareRhoName(const char *name)                   { fCompareRhoName       = name ;                   }
  void                   SetCompareRhoScaledName(const char *name)             { fCompareRhoScaledName = name ;                   }
  void                   SetScaleFunction(TF1* sf)                             { fScaleFunction        = sf   ;                   }
  void                   SetRhoFunction(TF1* rf)                               { fRhoFunction          = rf   ;                   }
  void                   SetInEventSigmaRho(Double_t s)                        { fInEventSigmaRho      = s    ;                   }
  void                   SetAttachToEvent(Bool_t a)                            { fAttachToEvent        = a    ;                   }

  const TString&         GetOutRhoName() const                                 { return fOutRhoName;                              }
  const TString&         GetOutRhoScaledName() const                           { return fOutRhoScaledName;                        } 

 protected:
  void                   ExecOnce();
  Bool_t                 Run();
  Bool_t                 FillHistograms();

  virtual Double_t       GetRhoFactor(Double_t cent);
  virtual Double_t       GetScaleFactor(Double_t cent);

  TString                fOutRhoName;                    // name of output rho object
  TString                fOutRhoScaledName;              // name of output scaled rho object
  TString                fCompareRhoName;                // name of rho object to compare
  TString                fCompareRhoScaledName;          // name of scaled rho object to compare
  TF1                   *fRhoFunction;                   // pre-computed rho as a function of centrality
  TF1                   *fScaleFunction;                 // pre-computed scale factor as a function of centrality
  Double_t               fInEventSigmaRho;               // in-event sigma rho
  Bool_t                 fAttachToEvent;                 // whether or not attach rho to the event objects list

  AliRhoParameter       *fOutRho;                        //!output rho object
  AliRhoParameter       *fOutRhoScaled;                  //!output scaled rho object
  AliRhoParameter       *fCompareRho;                    //!rho object to compare
  AliRhoParameter       *fCompareRhoScaled;              //!scaled rho object to compare

  TH2F                  *fHistJetPtvsCent;               //!jet pt vs. centrality
  TH2F                  *fHistJetAreavsCent;             //!jet area vs. centrality
  TH2F                  *fHistJetRhovsCent;              //!jet pt/area vs. centrality
  TH2F                  *fHistNjetvsCent;                //!no. of jets vs. centrality
  TH2F                  *fHistJetPtvsNtrack;             //!jet pt vs. no. of tracks
  TH2F                  *fHistJetAreavsNtrack;           //!jet area vs. no. of tracks
  TH2F                  *fHistNjetvsNtrack;              //!no. of jets vs. no. of tracks
  TH2F                  *fHistNjUEoverNjVsNj[12];        //!ratio no. of jets below rho*A+sigma_rho over. no. of jets vs. no. of jets
  TH2F                  *fHistJetNconstVsPt[4];          //!jet no. of constituents vs. pt
  TH2F                  *fHistJetRhovsEta[4];               //!rho vs. eta
  TH2F                  *fHistRhovsCent;                 //!rho vs. centrality
  TH2F                  *fHistRhoScaledvsCent;           //!rhoscaled vs. centrality
  TH2F                  *fHistDeltaRhovsCent;            //!delta rho vs. centrality
  TH2F                  *fHistDeltaRhoScalevsCent;       //!delta rhoscaled vs. centrality

  TH3F                  *fHistRhovsNtrackvsV0Mult;       //!rho vs. no. of tracks vs V0mult
  TH3F                  *fHistRhoScaledvsNtrackvsV0Mult; //!rhoscaled vs. no. of tracks vs V0mult
  TH2F                  *fHistDeltaRhovsNtrack;          //!delta rho vs. no. of tracks
  TH2F                  *fHistDeltaRhoScalevsNtrack;     //!delta rho scaled vs. no. of tracks
 
  TH2F                  *fHistRhovsNcluster;             //!rho vs. no. of clusters
  TH2F                  *fHistRhoScaledvsNcluster;       //!rhoscaled vs. no. of clusters

  AliAnalysisTaskRhoBase(const AliAnalysisTaskRhoBase&);             // not implemented
  AliAnalysisTaskRhoBase& operator=(const AliAnalysisTaskRhoBase&);  // not implemented
  
  ClassDef(AliAnalysisTaskRhoBase, 11); // Rho base task
};
#endif
 AliAnalysisTaskRhoBase.h:1
 AliAnalysisTaskRhoBase.h:2
 AliAnalysisTaskRhoBase.h:3
 AliAnalysisTaskRhoBase.h:4
 AliAnalysisTaskRhoBase.h:5
 AliAnalysisTaskRhoBase.h:6
 AliAnalysisTaskRhoBase.h:7
 AliAnalysisTaskRhoBase.h:8
 AliAnalysisTaskRhoBase.h:9
 AliAnalysisTaskRhoBase.h:10
 AliAnalysisTaskRhoBase.h:11
 AliAnalysisTaskRhoBase.h:12
 AliAnalysisTaskRhoBase.h:13
 AliAnalysisTaskRhoBase.h:14
 AliAnalysisTaskRhoBase.h:15
 AliAnalysisTaskRhoBase.h:16
 AliAnalysisTaskRhoBase.h:17
 AliAnalysisTaskRhoBase.h:18
 AliAnalysisTaskRhoBase.h:19
 AliAnalysisTaskRhoBase.h:20
 AliAnalysisTaskRhoBase.h:21
 AliAnalysisTaskRhoBase.h:22
 AliAnalysisTaskRhoBase.h:23
 AliAnalysisTaskRhoBase.h:24
 AliAnalysisTaskRhoBase.h:25
 AliAnalysisTaskRhoBase.h:26
 AliAnalysisTaskRhoBase.h:27
 AliAnalysisTaskRhoBase.h:28
 AliAnalysisTaskRhoBase.h:29
 AliAnalysisTaskRhoBase.h:30
 AliAnalysisTaskRhoBase.h:31
 AliAnalysisTaskRhoBase.h:32
 AliAnalysisTaskRhoBase.h:33
 AliAnalysisTaskRhoBase.h:34
 AliAnalysisTaskRhoBase.h:35
 AliAnalysisTaskRhoBase.h:36
 AliAnalysisTaskRhoBase.h:37
 AliAnalysisTaskRhoBase.h:38
 AliAnalysisTaskRhoBase.h:39
 AliAnalysisTaskRhoBase.h:40
 AliAnalysisTaskRhoBase.h:41
 AliAnalysisTaskRhoBase.h:42
 AliAnalysisTaskRhoBase.h:43
 AliAnalysisTaskRhoBase.h:44
 AliAnalysisTaskRhoBase.h:45
 AliAnalysisTaskRhoBase.h:46
 AliAnalysisTaskRhoBase.h:47
 AliAnalysisTaskRhoBase.h:48
 AliAnalysisTaskRhoBase.h:49
 AliAnalysisTaskRhoBase.h:50
 AliAnalysisTaskRhoBase.h:51
 AliAnalysisTaskRhoBase.h:52
 AliAnalysisTaskRhoBase.h:53
 AliAnalysisTaskRhoBase.h:54
 AliAnalysisTaskRhoBase.h:55
 AliAnalysisTaskRhoBase.h:56
 AliAnalysisTaskRhoBase.h:57
 AliAnalysisTaskRhoBase.h:58
 AliAnalysisTaskRhoBase.h:59
 AliAnalysisTaskRhoBase.h:60
 AliAnalysisTaskRhoBase.h:61
 AliAnalysisTaskRhoBase.h:62
 AliAnalysisTaskRhoBase.h:63
 AliAnalysisTaskRhoBase.h:64
 AliAnalysisTaskRhoBase.h:65
 AliAnalysisTaskRhoBase.h:66
 AliAnalysisTaskRhoBase.h:67
 AliAnalysisTaskRhoBase.h:68
 AliAnalysisTaskRhoBase.h:69
 AliAnalysisTaskRhoBase.h:70
 AliAnalysisTaskRhoBase.h:71
 AliAnalysisTaskRhoBase.h:72
 AliAnalysisTaskRhoBase.h:73
 AliAnalysisTaskRhoBase.h:74
 AliAnalysisTaskRhoBase.h:75
 AliAnalysisTaskRhoBase.h:76
 AliAnalysisTaskRhoBase.h:77
 AliAnalysisTaskRhoBase.h:78
 AliAnalysisTaskRhoBase.h:79
 AliAnalysisTaskRhoBase.h:80
 AliAnalysisTaskRhoBase.h:81
 AliAnalysisTaskRhoBase.h:82
 AliAnalysisTaskRhoBase.h:83
 AliAnalysisTaskRhoBase.h:84
 AliAnalysisTaskRhoBase.h:85