b65a3ae22cdb17606673c74ab4222133863dbe30
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / AliEmcalJetTask.h
1 #ifndef ALIEMCALJETTASK_H
2 #define ALIEMCALJETTASK_H
3
4 // $Id$
5
6 class TClonesArray;
7 class AliVEvent;
8
9 #include "AliAnalysisTaskSE.h"
10
11 class AliEmcalJetTask : public AliAnalysisTaskSE {
12  public:
13   AliEmcalJetTask();
14   AliEmcalJetTask(const char *name);
15   virtual ~AliEmcalJetTask();
16
17   void                   UserCreateOutputObjects();
18   void                   UserExec(Option_t *option);
19   void                   Terminate(Option_t *option);
20
21   void                   SetAlgo(Int_t a)                 { fAlgo          = a     ; }
22   void                   SetClusName(const char *n)       { fCaloName      = n     ; }
23   void                   SetJetsName(const char *n)       { fJetsName      = n     ; }
24   void                   SetMinJetArea(Double_t a)        { fMinJetArea    = a     ; }
25   void                   SetMinJetClusPt(Double_t min)    { fMinJetClusPt  = min   ; }
26   void                   SetMinJetPt(Double_t j)          { fMinJetPt      = j     ; }
27   void                   SetMinJetTrackPt(Double_t min)   { fMinJetTrackPt = min   ; }
28   void                   SetRadius(Double_t r)            { fRadius        = r     ; }
29   void                   SetTracksName(const char *n)     { fTracksName    = n     ; }
30   void                   SetType(Int_t t)                 { fType          = t     ; }
31   void                   SetEtaRange(Double_t emi, Double_t ema) {fEtaMin = emi; fEtaMax = ema; }
32   void                   SetPhiRange(Double_t pmi, Double_t pma) {fPhiMin = pmi; fPhiMax = pma; }
33
34  protected:
35   void                   FindJets();
36   Bool_t                 DoInit();
37
38   TString                fTracksName;             // name of track collection
39   TString                fCaloName;               // name of calo cluster collection
40   TString                fJetsName;               // name of jet collection
41   Int_t                  fAlgo;                   // algo (0==kt, 1==antikt)
42   Double_t               fRadius;                 // jet radius
43   Int_t                  fType;                   // jet type (0=all, 1=ch, 2=neutral)
44   Double_t               fMinJetTrackPt;          // min jet track momentum   (applied before clustering)
45   Double_t               fMinJetClusPt;           // min jet cluster momentum (applied before clustering)
46   Double_t               fPhiMin;                 // minimum phi for constituents (applied before clustering)
47   Double_t               fPhiMax;                 // maximum phi for constituents (applied before clustering)
48   Double_t               fEtaMin;                 // minimum eta for constituents (applied before clustering)
49   Double_t               fEtaMax;                 // maximum eta for constituents (applied before clustering)
50   Double_t               fMinJetArea;             // min area to keep jet in output
51   Double_t               fMinJetPt;               // min jet pt to keep jet in output
52   Bool_t                 fIsInit;                 //!=true if already initialized
53   Bool_t                 fIsMcPart;               //!=true if MC particles are given as input
54   Bool_t                 fIsEmcPart;              //!=true if emcal particles are given as input (for clusters)
55   TClonesArray          *fJets;                   //!jet collection
56   AliVEvent             *fEvent;                  //!current event
57   TClonesArray          *fTracks;                 //!tracks collection
58   TClonesArray          *fClus;                   //!cluster collection
59
60  private:
61   AliEmcalJetTask(const AliEmcalJetTask&);            // not implemented
62   AliEmcalJetTask &operator=(const AliEmcalJetTask&); // not implemented
63
64   ClassDef(AliEmcalJetTask, 4) // Jet producing task
65 };
66 #endif