ROOT logo
#ifndef ALIANALYSISTASKRHOMASSBASE_H
#define ALIANALYSISTASKRHOMASSBASE_H

// $Id$

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

#include "AliAnalysisTaskEmcalJet.h"

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

  void                   UserCreateOutputObjects();

  void                   SetOutRhoMassName(const char *name)                   { fOutRhoMassName           = name ; 
                                                                                 fOutRhoMassScaledName     = Form("%s_Scaled",name) ; }
  void                   SetCompareRhoMassName(const char *name)               { fCompareRhoMassName       = name ;                   }
  void                   SetCompareRhoMassScaledName(const char *name)         { fCompareRhoMassScaledName = name ;                   }
  void                   SetScaleFunction(TF1* sf)                             { fScaleFunction        = sf   ;                       }
  void                   SetRhoMassFunction(TF1* rf)                           { fRhoMassFunction      = rf   ;                       }
  void                   SetAttachToEvent(Bool_t a)                            { fAttachToEvent        = a    ;                       }

  const TString&         GetOutRhoMassName() const                             { return fOutRhoMassName;                              }
  const TString&         GetOutRhoMassScaledName() const                       { return fOutRhoMassScaledName;                        } 

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

  virtual Double_t       GetRhoMassFactor(Double_t cent);
  virtual Double_t       GetScaleFactor(Double_t cent);

  TString                fOutRhoMassName;                // name of output rho mass object
  TString                fOutRhoMassScaledName;          // name of output scaled rho mass object
  TString                fCompareRhoMassName;            // name of rho mass object to compare
  TString                fCompareRhoMassScaledName;      // name of scaled rho mass object to compare
  TF1                   *fRhoMassFunction;               // pre-computed rho mass as a function of centrality
  TF1                   *fScaleFunction;                 // pre-computed scale factor as a function of centrality
  Bool_t                 fAttachToEvent;                 // whether or not attach rho mass to the event objects list

  AliRhoParameter       *fOutRhoMass;                    //!output rho object
  AliRhoParameter       *fOutRhoMassScaled;              //!output scaled rho object
  AliRhoParameter       *fCompareRhoMass;                //!rho object to compare
  AliRhoParameter       *fCompareRhoMassScaled;          //!scaled rho object to compare

  TH2F                  *fHistJetMassvsCent;             //!jet mass vs. centrality
  TH2F                  *fHistRhoMassvsCent;             //!rho mass vs. centrality
  TH2F                  *fHistRhoMassScaledvsCent;       //!rho mass scaled vs. centrality
  TH2F                  *fHistDeltaRhoMassvsCent;        //!delta rho mass vs. centrality
  TH2F                  *fHistDeltaRhoMassScalevsCent;   //!delta rho mass scaled vs. centrality

  TH2F                  *fHistRhoMassvsNtrack;           //!rho mass vs. no. of tracks
  TH2F                  *fHistRhoMassScaledvsNtrack;     //!rho mass scaled vs. no. of tracks
  TH2F                  *fHistDeltaRhoMassvsNtrack;      //!delta rho mass vs. no. of tracks
  TH2F                  *fHistDeltaRhoMassScalevsNtrack; //!delta rho mass scaled vs. no. of tracks
 
  TH2F                  *fHistRhoMassvsNcluster;         //!rho mass vs. no. of clusters
  TH2F                  *fHistRhoMassScaledvsNcluster;   //!rho mass scaled vs. no. of clusters

  TH2F                  *fHistGammaVsNtrack;             //!Gamma(<E>/<M>) vs Ntrack

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