1 #ifndef ALIANALYSISTASKEMCAL_H
2 #define ALIANALYSISTASKEMCAL_H
4 // $Id: AliAnalysisTaskEmcal.h 56756 2012-05-30 05:03:02Z loizides $
9 class AliEmcalParticle;
14 #include "AliAnalysisTaskSE.h"
16 class AliAnalysisTaskEmcal : public AliAnalysisTaskSE {
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
33 AliAnalysisTaskEmcal();
34 AliAnalysisTaskEmcal(const char *name, Bool_t histo=kFALSE);
35 virtual ~AliAnalysisTaskEmcal();
37 void UserExec(Option_t *option);
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 ; }
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 ; }
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
78 AliAnalysisTaskEmcal(const AliAnalysisTaskEmcal&); // not implemented
79 AliAnalysisTaskEmcal &operator=(const AliAnalysisTaskEmcal&); // not implemented
81 ClassDef(AliAnalysisTaskEmcal, 3) // EMCAL base analysis task