-#ifndef ALIANALYSISTASKRHO_cxx
-#define ALIANALYSISTASKRHO_cxx
+#ifndef ALIANALYSISTASKRHO_H
+#define ALIANALYSISTASKRHO_H
-class TList;
+// $Id$
+
+class TClonesArray;
+class TF1;
class TH1F;
class TH2F;
-class TClonesArray;
+class TList;
class TString;
+class AliRhoParameter;
-#include "AliAnalysisTaskSE.h"
+#include "AliAnalysisTaskRhoBase.h"
-class AliAnalysisTaskRho : public AliAnalysisTaskSE {
+class AliAnalysisTaskRho : public AliAnalysisTaskRhoBase {
public:
AliAnalysisTaskRho();
- AliAnalysisTaskRho(const char *name);
+ AliAnalysisTaskRho(const char *name, Bool_t histo=kFALSE);
virtual ~AliAnalysisTaskRho() {}
- virtual void UserCreateOutputObjects();
- virtual void UserExec(Option_t*);
- virtual void Terminate(Option_t*);
+ void UserCreateOutputObjects();
+ void UserExec(Option_t*);
+
+ const char *GetRhoScaled() const { return fRhoScaledName ; }
+ void SetAreaCut(Double_t a = 0.05) { fAreaCut = a ; }
+ void SetAreaEmcCut(Double_t a = 0.99) { fAreaEmcCut = a ; }
+ void SetExcludeLeadJets(UInt_t n) { fNExclLeadJets = n ; }
+ void SetJetEta(Double_t emin, Double_t emax) { fEtaMin = emin ; fEtaMax = emax ; }
+ void SetJetPhi(Double_t pmin, Double_t pmax) { fPhiMin = pmin ; fPhiMax = pmax ; }
+ void SetJetsName(const char *n) { fJetsName = n ; }
+ void SetRhoName(const char *name) { fRhoName = name ;
+ fRhoScaledName = name ;
+ fRhoScaledName += "_Scaled"; }
+ void SetScaleFunction(TF1* sf) { fScaleFunction = sf ; }
+ void SetTracksName(const char *n) { fTracksName = n ; }
- void SetTracksName(const char *n) { fTracksName = n ; }
- void SetJetsName(const char *n) { fJetsName = n ; }
- void SetRhosName(const char *rn) { fRhosName = rn ; }
- void SetJetPhi(Double_t pmin = 1.8, Double_t pmax = 2.74) { fPhiMin = pmin ; fPhiMax = pmax ; }
- void SetJetEta(Double_t emin = -0.3, Double_t emax = 0.3) { fEtaMin = emin ; fEtaMax = emax ; }
- void SetAreaCut(Double_t a = 0.0) { fAreaCut = a ; }
-
protected:
- virtual void Sort(vector<Double_t>& v) ;
- virtual Double_t GetMedian(vector<Double_t> v, int c) ;
- virtual Double_t GetScaleFactor(Double_t cent) ;
- virtual Double_t GetRhoFactor(Double_t cent) ;
+ virtual void ExecOnce();
+ virtual Double_t GetScaleFactor(Double_t cent);
- private:
TString fTracksName; // name of track collection
TString fJetsName; // name of jet collection
- TString fRhosName; // name of Rho array output
- TString fClustersName; // name of clusters collection
-
- TList *fOutputList; //! Output list
- TH1F *fHistCentrality;
- TH1F *fHistJetPt;
- TH1F *fHistJetArea;
- TH2F *fHistRhovsCent;
- TH2F *fHistDeltaRhovsCent;
- TH2F *fHistDeltaRhoScalevsCent;
- TH2F *fHistJetPtvsCent;
- TH2F *fHistJetAreavsCent;
- TH2F *fHistNjetvsCent;
-
- TH2F *fHistRhovsNtrack;
- TH2F *fHistDeltaRhovsNtrack;
- TH2F *fHistDeltaRhoScalevsNtrack;
- TH2F *fHistJetPtvsNtrack;
- TH2F *fHistJetAreavsNtrack;
- TH2F *fHistNjetvsNtrack;
-
- TClonesArray *fArrRhos;
-
- Double_t fPhiMin;
- Double_t fPhiMax;
- Double_t fEtaMin;
- Double_t fEtaMax;
- Double_t fAreaCut;
- Int_t fCswitch;
+ TString fRhoScaledName; // name of scaled rho object
+ Double_t fPhiMin; // minimum phi
+ Double_t fPhiMax; // maximum phi
+ Double_t fEtaMin; // minimum eta
+ Double_t fEtaMax; // maximum eta
+ Double_t fAreaCut; // minimum cut on jet area
+ Double_t fAreaEmcCut; // minimum cut on jet emcal area
+ UInt_t fNExclLeadJets; // number of leading jets to be excluded from the median calculation
+ TF1 *fScaleFunction; // pre-computed scale factor as a function of centrality
+ Bool_t fCreateHisto; // whether or not create histograms
+ TClonesArray *fTracks; //!ptr to input tracks
+ TClonesArray *fJets; //!ptr to input jets
+ TList *fOutputList; //!output list
+ TH1F *fHistCentrality; //!centrality distribution
+ TH1F *fHistJetPt; //!jet pt distribution
+ TH1F *fHistJetArea; //!jet area
+ TH2F *fHistRhovsCent; //!rho vs. centrality
+ TH2F *fHistDeltaRhovsCent; //!delta rho vs. centrality
+ TH2F *fHistDeltaRhoScalevsCent; //!delta rhoscaled vs. centrality
+ TH2F *fHistJetPtvsCent; //!jet pt vs. centrality
+ TH2F *fHistJetAreavsCent; //!jet area vs. centrality
+ TH2F *fHistNjetvsCent; //!no. of jets vs. centrality
+ TH2F *fHistRhovsNtrack; //!rho vs. no. of tracks
+ TH2F *fHistDeltaRhovsNtrack; //!delta rho vs. no. of tracks
+ TH2F *fHistDeltaRhoScalevsNtrack; //!delta rho scaled vs. no. of tracks
+ 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
+ AliRhoParameter *fRhoScaled; //!per event scaled rho
AliAnalysisTaskRho(const AliAnalysisTaskRho&); // not implemented
AliAnalysisTaskRho& operator=(const AliAnalysisTaskRho&); // not implemented
- ClassDef(AliAnalysisTaskRho, 1); // Rho task
+ ClassDef(AliAnalysisTaskRho, 7); // Rho task
};
-
#endif