]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskPtEMCalTrigger.h
08258d41f070f4401930e6b682a176b7144f3498
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskPtEMCalTrigger.h
1 #ifndef ALIANALYSISTASKPTEMCALTRIGGER_H_
2 #define ALIANALYSISTASKPTEMCALTRIGGER_H_
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 // Author: Markus Fasel
7
8 #include "AliAnalysisTaskEmcal.h"
9 #include "AliCutValueRange.h"
10 #include "AliESDtrackCuts.h"
11 #include <TClonesArray.h>
12 #include <TList.h>
13
14 class TArrayD;
15 class Axis;
16 class AliESDtrack;
17 class AliVTrack;
18 class AliVParticle;
19
20 namespace EMCalTriggerPtAnalysis {
21 class AliEMCalHistoContainer;
22
23 class AliAnalysisTaskPtEMCalTrigger : public AliAnalysisTaskEmcal {
24 public:
25         enum EEMCalTriggerType_t{
26                 kEMCalJetLow = 0,
27                 kEMCalJetHigh = 1,
28                 kEMCalGammaLow = 2,
29                 kEMCalGammaHigh = 3
30         };
31         AliAnalysisTaskPtEMCalTrigger();
32         AliAnalysisTaskPtEMCalTrigger(const char *name);
33         ~AliAnalysisTaskPtEMCalTrigger();
34
35         virtual void UserCreateOutputObjects();
36         virtual Bool_t Run();
37
38         void AddESDTrackCuts(AliESDtrackCuts *trackCuts);
39         void SetEtaRange(double etamin, double etamax) { fEtaRange.SetLimits(etamin, etamax); }
40         void SetPtRange(double ptmin, double ptmax) { fPtRange.SetLimits(ptmin, ptmax); }
41         void SetSwapEta() { fSwapEta = kTRUE; }
42         void UseTriggersFromTriggerMaker() { fUseTriggersFromTriggerMaker = kTRUE; }
43
44 private:
45         AliAnalysisTaskPtEMCalTrigger(const AliAnalysisTaskPtEMCalTrigger &);
46         AliAnalysisTaskPtEMCalTrigger &operator=(const AliAnalysisTaskPtEMCalTrigger &);
47         void CreateDefaultPtBinning(TArrayD &binning) const;
48         void CreateDefaultZVertexBinning(TArrayD &binning) const;
49         void CreateDefaultEtaBinning(TArrayD &binning) const;
50         void DefineAxis(TAxis &axis, const char *name, const char *title, const TArrayD &binning, const char **labels = NULL);
51         void DefineAxis(TAxis &axis, const char *name, const char *title, int nbins, double min, double max, const char **labels = NULL);
52         void FillEventHist(const char *trigger, double vz, bool isPileup);
53         void FillTrackHist(const char *trigger, const AliVTrack *track, double vz, bool isPileup, int cut, bool isMinBias);
54         void FillClusterHist(const char *trigger, const AliVCluster *clust, bool isCalibrated, double vz, bool isPileup, bool isMinBias);
55         void FillMCParticleHist(const AliVParticle * const part);
56         bool IsTrueTrack(const AliVTrack *const) const;
57         TString BuildTriggerString();
58         const AliVVertex *GetSPDVertex() const;
59
60         AliEMCalHistoContainer        *fHistos;               //! Histogram container for the task
61         TList                                             *fListTrackCuts;                // List of track cuts
62
63         // Cuts
64         AliCutValueRange<double>      fEtaRange;              // Eta Selection Range
65         AliCutValueRange<double>          fPtRange;                               // Pt Selection Range
66         Bool_t                                            fSwapEta;                               // Allow swapping of the eta sign in asymmetric collision systems
67         Bool_t                                            fUseTriggersFromTriggerMaker; // Use trigger classes from trigger maker
68
69         ClassDef(AliAnalysisTaskPtEMCalTrigger, 1);           // Analysis of EMCal triggered events
70 };
71
72 }
73 #endif