]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/AliAnalysisTaskRhoBase.h
Introduction of jet-by-jet correction for detector effects
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / AliAnalysisTaskRhoBase.h
1 #ifndef ALIANALYSISTASKRHOBASE_H
2 #define ALIANALYSISTASKRHOBASE_H
3
4 // $Id$
5
6 class TString;
7 class TF1;
8 class TH1F;
9 class TH2F;
10 class TH3F;
11 class AliRhoParameter;
12
13 #include "AliAnalysisTaskEmcalJet.h"
14
15 class AliAnalysisTaskRhoBase : public AliAnalysisTaskEmcalJet {
16  public:
17   AliAnalysisTaskRhoBase();
18   AliAnalysisTaskRhoBase(const char *name, Bool_t histo=kFALSE);
19   virtual ~AliAnalysisTaskRhoBase() {}
20
21   void                   UserCreateOutputObjects();
22
23   void                   SetOutRhoName(const char *name)                       { fOutRhoName           = name ; 
24                                                                                  fOutRhoScaledName     = Form("%s_Scaled",name) ; }
25   void                   SetCompareRhoName(const char *name)                   { fCompareRhoName       = name ;                   }
26   void                   SetCompareRhoScaledName(const char *name)             { fCompareRhoScaledName = name ;                   }
27   void                   SetScaleFunction(TF1* sf)                             { fScaleFunction        = sf   ;                   }
28   void                   SetRhoFunction(TF1* rf)                               { fRhoFunction          = rf   ;                   }
29   void                   SetInEventSigmaRho(Double_t s)                        { fInEventSigmaRho      = s    ;                   }
30   void                   SetAttachToEvent(Bool_t a)                            { fAttachToEvent        = a    ;                   }
31
32   const TString&         GetOutRhoName() const                                 { return fOutRhoName;                              }
33   const TString&         GetOutRhoScaledName() const                           { return fOutRhoScaledName;                        } 
34
35  protected:
36   void                   ExecOnce();
37   Bool_t                 Run();
38   Bool_t                 FillHistograms();
39
40   virtual Double_t       GetRhoFactor(Double_t cent);
41   virtual Double_t       GetScaleFactor(Double_t cent);
42
43   TString                fOutRhoName;                    // name of output rho object
44   TString                fOutRhoScaledName;              // name of output scaled rho object
45   TString                fCompareRhoName;                // name of rho object to compare
46   TString                fCompareRhoScaledName;          // name of scaled rho object to compare
47   TF1                   *fRhoFunction;                   // pre-computed rho as a function of centrality
48   TF1                   *fScaleFunction;                 // pre-computed scale factor as a function of centrality
49   Double_t               fInEventSigmaRho;               // in-event sigma rho
50   Bool_t                 fAttachToEvent;                 // whether or not attach rho to the event objects list
51
52   AliRhoParameter       *fOutRho;                        //!output rho object
53   AliRhoParameter       *fOutRhoScaled;                  //!output scaled rho object
54   AliRhoParameter       *fCompareRho;                    //!rho object to compare
55   AliRhoParameter       *fCompareRhoScaled;              //!scaled rho object to compare
56
57   TH2F                  *fHistJetPtvsCent;               //!jet pt vs. centrality
58   TH2F                  *fHistJetAreavsCent;             //!jet area vs. centrality
59   TH2F                  *fHistJetRhovsCent;              //!jet pt/area vs. centrality
60   TH2F                  *fHistNjetvsCent;                //!no. of jets vs. centrality
61   TH2F                  *fHistJetPtvsNtrack;             //!jet pt vs. no. of tracks
62   TH2F                  *fHistJetAreavsNtrack;           //!jet area vs. no. of tracks
63   TH2F                  *fHistNjetvsNtrack;              //!no. of jets vs. no. of tracks
64   TH2F                  *fHistNjUEoverNjVsNj[12];        //!ratio no. of jets below rho*A+sigma_rho over. no. of jets vs. no. of jets
65   TH2F                  *fHistJetNconstVsPt[4];          //!jet no. of constituents vs. pt
66   TH2F                  *fHistJetRhovsEta[4];               //!rho vs. eta
67   TH2F                  *fHistRhovsCent;                 //!rho vs. centrality
68   TH2F                  *fHistRhoScaledvsCent;           //!rhoscaled vs. centrality
69   TH2F                  *fHistDeltaRhovsCent;            //!delta rho vs. centrality
70   TH2F                  *fHistDeltaRhoScalevsCent;       //!delta rhoscaled vs. centrality
71
72   TH3F                  *fHistRhovsNtrackvsV0Mult;       //!rho vs. no. of tracks vs V0mult
73   TH3F                  *fHistRhoScaledvsNtrackvsV0Mult; //!rhoscaled vs. no. of tracks vs V0mult
74   TH2F                  *fHistDeltaRhovsNtrack;          //!delta rho vs. no. of tracks
75   TH2F                  *fHistDeltaRhoScalevsNtrack;     //!delta rho scaled vs. no. of tracks
76  
77   TH2F                  *fHistRhovsNcluster;             //!rho vs. no. of clusters
78   TH2F                  *fHistRhoScaledvsNcluster;       //!rhoscaled vs. no. of clusters
79
80   AliAnalysisTaskRhoBase(const AliAnalysisTaskRhoBase&);             // not implemented
81   AliAnalysisTaskRhoBase& operator=(const AliAnalysisTaskRhoBase&);  // not implemented
82   
83   ClassDef(AliAnalysisTaskRhoBase, 11); // Rho base task
84 };
85 #endif