]>
Commit | Line | Data |
---|---|---|
2da09763 | 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; | |
09ca054b | 9 | class AliEmcalParticle; |
2da09763 | 10 | class AliMCParticle; |
2da09763 | 11 | class AliVCluster; |
09ca054b | 12 | class AliVTrack; |
2da09763 | 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 | |
a5621834 | 22 | kTPCSmall = 2, // TPC only in EMCal acceptance |
23 | kEMCALOnly = 3, // EMCal only analysis | |
2da09763 | 24 | }; |
25 | ||
26 | enum BeamType { | |
27 | kNA = -1, | |
28 | kpp = 0, | |
29 | kAA = 1, | |
30 | kpA = 2 | |
31 | }; | |
32 | ||
33 | AliAnalysisTaskEmcal(); | |
f5c26534 | 34 | AliAnalysisTaskEmcal(const char *name, Bool_t histo=kFALSE); |
2da09763 | 35 | virtual ~AliAnalysisTaskEmcal(); |
36 | ||
629c7ac0 | 37 | void UserExec(Option_t *option); |
2da09763 | 38 | |
b4339010 | 39 | void SetAnaType(EmcalAnaType type) { fAnaType = type; } |
2ac8ca4f | 40 | void SetCentRange(Double_t min, Double_t max) { fMinCent = min; fMaxCent = max; } |
b4339010 | 41 | void SetClusName(const char *n) { fCaloName = n; } |
42 | void SetClusPtCut(Double_t cut) { fClusPtCut = cut; } | |
2ac8ca4f | 43 | void SetClusTimeCut(Double_t min, Double_t max) { fClusTimeCutLow = min; fClusTimeCutUp = max; } |
44 | void SetHistoBins(Int_t nbins, Double_t min, Double_t max) { fNbins = nbins; fMinBinPt = min; fMaxBinPt = max; } | |
b4339010 | 45 | void SetOffTrigger(UInt_t t) { fOffTrigger = t; } |
2ac8ca4f | 46 | void SetPtCut(Double_t cut) { SetClusPtCut(cut); SetTrackPtCut(cut); } |
b4339010 | 47 | void SetTrackPtCut(Double_t cut) { fTrackPtCut = cut; } |
9733b37f | 48 | void SetTrackEtaLimits(Double_t min, Double_t max) { fMaxTrackEta = max ; fMinTrackEta = min ; } |
49 | void SetTrackPhiLimits(Double_t min, Double_t max) { fMaxTrackPhi = max ; fMinTrackPhi = min ; } | |
b4339010 | 50 | void SetTracksName(const char *n) { fTracksName = n; } |
51 | void SetTrigClass(const char *n) { fTrigClass = n; } | |
52 | void SetVzRange(Double_t min, Double_t max) { fMinVz = min; fMaxVz = max; } | |
2da09763 | 53 | |
54 | protected: | |
2ac8ca4f | 55 | Bool_t AcceptCluster(AliVCluster *clus, Bool_t acceptMC = kFALSE) const; |
56 | Bool_t AcceptEmcalPart(AliEmcalParticle *part, Bool_t acceptMC = kFALSE) const; | |
57 | Bool_t AcceptTrack(AliVTrack *track, Bool_t acceptMC = kFALSE) const; | |
58 | virtual void ExecOnce(); | |
8a28ded1 | 59 | virtual Bool_t FillHistograms() { return fCreateHisto; } |
2ac8ca4f | 60 | BeamType GetBeamType(); |
c596bd28 | 61 | TClonesArray *GetArrayFromEvent(const char *name, const char *clname=0); |
d29ed625 | 62 | virtual Bool_t IsEventSelected(); |
2da09763 | 63 | virtual Bool_t RetrieveEventObjects(); |
8a28ded1 | 64 | virtual Bool_t Run() { return kTRUE ; } |
e44e8726 | 65 | void SetInitialized(Bool_t ini = kTRUE) { fInitialized = ini ; } |
2da09763 | 66 | |
67 | EmcalAnaType fAnaType; // analysis type | |
68 | Bool_t fInitialized; // whether or not the task has been already initialized | |
69 | Bool_t fCreateHisto; // whether or not create histograms | |
2da09763 | 70 | TString fTracksName; // name of track collection |
71 | TString fCaloName; // name of calo cluster collection | |
2ac8ca4f | 72 | Double_t fMinCent; // min centrality for event selection |
73 | Double_t fMaxCent; // max centrality for event selection | |
74 | Double_t fMinVz; // min vertex for event selection | |
75 | Double_t fMaxVz; // max vertex for event selection | |
76 | UInt_t fOffTrigger; // offline trigger for event selection | |
b4339010 | 77 | TString fTrigClass; // trigger class name for event selection |
2da09763 | 78 | Int_t fNbins; // no. of pt bins |
2ac8ca4f | 79 | Double_t fMinBinPt; // min pt in histograms |
80 | Double_t fMaxBinPt; // max pt in histograms | |
81 | Double_t fClusPtCut; // cut on cluster pt | |
82 | Double_t fTrackPtCut; // cut on track pt | |
9733b37f | 83 | Double_t fMinTrackEta; // cut on track eta |
84 | Double_t fMaxTrackEta; // cut on track eta | |
85 | Double_t fMinTrackPhi; // cut on track phi | |
86 | Double_t fMaxTrackPhi; // cut on track phi | |
2ac8ca4f | 87 | Double_t fClusTimeCutLow; // low time cut for clusters |
88 | Double_t fClusTimeCutUp; // up time cut for clusters | |
2da09763 | 89 | TClonesArray *fTracks; //!tracks |
90 | TClonesArray *fCaloClusters; //!clusters | |
2ac8ca4f | 91 | Double_t fCent; //!event centrality |
2da09763 | 92 | Int_t fCentBin; //!event centrality bin |
2ac8ca4f | 93 | Double_t fEPV0; //!event plane V0 |
94 | Double_t fEPV0A; //!event plane V0A | |
95 | Double_t fEPV0C; //!event plane V0C | |
2da09763 | 96 | Double_t fVertex[3]; //!event vertex |
b4339010 | 97 | Int_t fNVertCont; //!event vertex number of contributors |
1f6fff78 | 98 | BeamType fBeamType; //!event beam type |
2da09763 | 99 | TList *fOutput; //!output list |
100 | ||
101 | private: | |
102 | AliAnalysisTaskEmcal(const AliAnalysisTaskEmcal&); // not implemented | |
103 | AliAnalysisTaskEmcal &operator=(const AliAnalysisTaskEmcal&); // not implemented | |
104 | ||
9733b37f | 105 | ClassDef(AliAnalysisTaskEmcal, 6) // EMCAL base analysis task |
2da09763 | 106 | }; |
107 | #endif |