]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetHMEC.h
aed5d67d72aed1310f63aa0d0c9420de74acea52
[u/mrichter/AliRoot.git] / PWGGA / EMCALJetTasks / UserTasks / AliAnalysisTaskEmcalJetHMEC.h
1 #ifndef AliAnalysisTaskEmcalJetHMEC_H
2 #define AliAnalysisTaskEmcalJetHMEC_H
3
4 // $Id$
5
6 class TList;
7 class TH1;
8 class TH2;
9 class THnSparse;
10 class AliESDEvent;
11 class AliEventPoolManager;
12
13 #include "AliAnalysisTaskSE.h"
14
15 class AliAnalysisTaskEmcalJetHMEC : public AliAnalysisTaskSE {
16  public:
17   AliAnalysisTaskEmcalJetHMEC();
18   AliAnalysisTaskEmcalJetHMEC(const char *name);
19   virtual ~AliAnalysisTaskEmcalJetHMEC() {}
20   
21   virtual void            UserCreateOutputObjects();
22   virtual Double_t        RelativePhi(Double_t mphi, Double_t vphi);
23   virtual void            UserExec(Option_t *option);
24   virtual void            Terminate(Option_t *);
25   virtual THnSparse*      NewTHnSparseF(const char* name, UInt_t entries);
26   virtual void            GetDimParams(Int_t iEntry,TString &label, Int_t &nbins, Double_t &xmin, Double_t &xmax);
27
28   virtual void            SetTracksName(const char *n)             {fTracksName=n;}
29   virtual void            SetJetsName(const char *jn)              {fJetsName=jn;}
30
31   virtual void            SetAreaCut(Double_t a)                   { fAreacut    = a; }
32   virtual void            SetTrkBias(Double_t b)                   { fTrkBias    = b; }  //require a track with pt > b in jet
33   virtual void            SetClusBias(Double_t b)                  { fClusBias   = b; }  //require a cluster with pt > b in jet
34
35   virtual void            SetJetEta(Double_t emin, Double_t emax)  { fEtamin = emin; fEtamax = emax; }
36   virtual void            SetJetPhi(Double_t pmin, Double_t pmax)  { fPhimin = pmin; fPhimax = pmax; }
37   virtual void            SetEventMixing(Int_t yesno)              { fDoEventMixing=yesno;}
38   virtual void            SetMixingTracks(Int_t tracks)            { fMixingTracks = tracks; }
39
40
41
42
43
44  protected:
45   virtual Int_t          GetCentBin(Double_t cent) const;
46   virtual Int_t          GetEtaBin(Double_t eta) const;
47   virtual Int_t          GetpTjetBin(Double_t pt) const;
48
49   TString                fTracksName;              //name of tracks collection
50   TString                fJetsName;                //name of Jet collection
51   Double_t               fPhimin;                  // phi min
52   Double_t               fPhimax;                  // phi max
53   Double_t               fEtamin;                  // eta min
54   Double_t               fEtamax;                  // eta max
55   Double_t               fAreacut;                 // area cut
56   Double_t               fTrkBias;
57   Double_t               fClusBias;
58   Int_t                  fDoEventMixing;
59   Int_t                  fMixingTracks;         // size of track buffer for event mixing
60   TObjArray*             CloneAndReduceTrackList(TObjArray* tracks);
61
62   AliESDEvent           *fESD;    //! ESD object
63   AliEventPoolManager   *fPoolMgr;
64   TList                 *fOutputList; //! Output list
65   TH1                   *fHistTrackPt; //! Pt spectrum
66   TH1                   *fHistCentrality;
67   TH2                   *fHistJetEtaPhi;
68   TH2                   *fHistTrackEtaPhi;
69   TH2                   *fHistJetHEtaPhi;
70
71   TH1                   *fHistJetPt[6];
72   TH1                   *fHistJetPtBias[6];
73   TH1                   *fHistJetPtTT[6];
74   TH2                   *fHistJetH[6][5][3];
75   TH2                   *fHistJetHBias[6][5][3];
76   TH2                   *fHistJetHTT[6][5][3];
77   THnSparse             *fhnMixedEvents;      //!mixed events matrix
78
79  private:
80    
81   AliAnalysisTaskEmcalJetHMEC(const AliAnalysisTaskEmcalJetHMEC&); // not implemented
82   AliAnalysisTaskEmcalJetHMEC& operator=(const AliAnalysisTaskEmcalJetHMEC&); // not implemented
83   
84   ClassDef(AliAnalysisTaskEmcalJetHMEC, 6); 
85 };
86 #endif