]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/EMCALTasks/AliAnalysisTaskEmcal.h
c4908a0d09f41659b1dbb3a3c2ec8d02589b6433
[u/mrichter/AliRoot.git] / PWGGA / EMCALTasks / AliAnalysisTaskEmcal.h
1 #ifndef ALIANALYSISTASKEMCAL_H
2 #define ALIANALYSISTASKEMCAL_H
3
4 // $Id: AliAnalysisTaskEmcal.h 56756 2012-05-30 05:03:02Z loizides $
5
6 class TClonesArray;
7 class TString;
8 class TList;
9 class AliEmcalParticle;
10 class AliMCParticle;
11 class AliVCluster;
12 class AliVTrack;
13
14 #include "AliAnalysisTaskSE.h"
15
16 class AliAnalysisTaskEmcal : public AliAnalysisTaskSE {
17  public:
18   
19   enum EmcalAnaType {
20     kTPC       = 0,     // TPC only analysis
21     kEMCAL     = 1,     // EMCal + TPC analysis
22     kTPCSmall  = 2,     // TPC only in EMCal acceptance
23     kEMCALOnly = 3,     // EMCal only analysis
24   };
25
26   enum BeamType {
27     kNA       = -1,
28     kpp       = 0,
29     kAA       = 1,
30     kpA       = 2
31   };
32
33   AliAnalysisTaskEmcal();
34   AliAnalysisTaskEmcal(const char *name, Bool_t histo=kFALSE); 
35   virtual ~AliAnalysisTaskEmcal();
36
37   void                        UserExec(Option_t *option);
38
39   void                        SetAnaType(EmcalAnaType type)                        { fAnaType        = type       ; }
40   void                        SetClusName(const char *n)                           { fCaloName       = n          ; }
41   void                        SetClusPtCut(Float_t cut)                            { fClusPtCut      = cut        ; }
42   void                        SetHistoBins(Int_t nbins, Float_t min, Float_t max)  { fNbins = nbins; fMinBinPt = min; fMaxBinPt = max; }
43   void                        SetPtCut(Float_t cut)                                { SetClusPtCut(cut); SetTrackPtCut(cut); }
44   void                        SetTrackPtCut(Float_t cut)                           { fTrackPtCut     = cut        ; }
45   void                        SetTracksName(const char *n)                         { fTracksName     = n          ; }
46
47  protected:
48   virtual void                ExecOnce()                                                                    ;
49   Bool_t                      AcceptCluster(AliVCluster        *clus,  Bool_t acceptMC = kFALSE)       const;
50   Bool_t                      AcceptEmcalPart(AliEmcalParticle *part,  Bool_t acceptMC = kFALSE)       const;
51   Bool_t                      AcceptTrack(AliVTrack            *track, Bool_t acceptMC = kFALSE)       const;
52   BeamType                    GetBeamType()                                                                 ;
53   virtual Bool_t              FillHistograms()                                     { return fCreateHisto; }
54   TClonesArray               *GetArrayFromEvent(const char *name, const char *clname=0);
55   virtual Bool_t              RetrieveEventObjects();
56   virtual Bool_t              Run()                                                { return kTRUE                 ; }
57   void                        SetInitialized(Bool_t ini = kTRUE)                   { fInitialized    = ini        ; }
58
59   EmcalAnaType                fAnaType;                    // analysis type
60   Bool_t                      fInitialized;                // whether or not the task has been already initialized
61   Bool_t                      fCreateHisto;                // whether or not create histograms
62   TString                     fTracksName;                 // name of track collection
63   TString                     fCaloName;                   // name of calo cluster collection
64   Int_t                       fNbins;                      // no. of pt bins
65   Float_t                     fMinBinPt;                   // min pt in histograms
66   Float_t                     fMaxBinPt;                   // max pt in histograms
67   Float_t                     fClusPtCut;                  // cut on cluster pt
68   Float_t                     fTrackPtCut;                 // cut on track pt
69   TClonesArray               *fTracks;                     //!tracks
70   TClonesArray               *fCaloClusters;               //!clusters
71   Float_t                     fCent;                       //!event centrality
72   Int_t                       fCentBin;                    //!event centrality bin
73   Double_t                    fVertex[3];                  //!event vertex
74   BeamType                    fBeamType;                   //!event beam type
75   TList                      *fOutput;                     //!output list
76
77  private:
78   AliAnalysisTaskEmcal(const AliAnalysisTaskEmcal&);            // not implemented
79   AliAnalysisTaskEmcal &operator=(const AliAnalysisTaskEmcal&); // not implemented
80
81   ClassDef(AliAnalysisTaskEmcal, 3) // EMCAL base analysis task
82 };
83 #endif