]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskPtEMCalTrigger.h
- Reduce number of bins in order to decrease memory consumption
[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 AddCutsForAOD(AliESDtrackCuts *trackCuts, UInt_t filterBits);
40   void SetEtaRange(double etamin, double etamax) { fEtaRange.SetLimits(etamin, etamax); }
41   void SetPtRange(double ptmin, double ptmax) { fPtRange.SetLimits(ptmin, ptmax); }
42   void SetVertexRange(double vmin, double vmax) { fVertexRange.SetLimits(vmin, vmax); }
43   void SetClusterEnergyRange(double emin, double emax) { fEnergyRange.SetLimits(emin,emax); }
44   void SetSwapEta() { fSwapEta = kTRUE; }
45   void UseTriggersFromTriggerMaker() { fUseTriggersFromTriggerMaker = kTRUE; }
46
47 private:
48   AliAnalysisTaskPtEMCalTrigger(const AliAnalysisTaskPtEMCalTrigger &);
49   AliAnalysisTaskPtEMCalTrigger &operator=(const AliAnalysisTaskPtEMCalTrigger &);
50   void CreateDefaultPtBinning(TArrayD &binning) const;
51   void CreateDefaultZVertexBinning(TArrayD &binning) const;
52   void CreateDefaultEtaBinning(TArrayD &binning) const;
53   void DefineAxis(TAxis &axis, const char *name, const char *title, const TArrayD &binning, const char **labels = NULL);
54   void DefineAxis(TAxis &axis, const char *name, const char *title, int nbins, double min, double max, const char **labels = NULL);
55   void FillEventHist(const char *trigger, double vz, bool isPileup);
56   void FillTrackHist(const char *trigger, const AliVTrack *track, double vz, bool isPileup, int cut, bool isMinBias);
57   void FillClusterHist(const char *trigger, const AliVCluster *clust, bool isCalibrated, double vz, bool isPileup, bool isMinBias);
58   void FillMCParticleHist(const AliVParticle * const part, double vz, bool isPileup);
59   bool IsTrueTrack(const AliVTrack *const) const;
60   TString BuildTriggerString();
61   const AliVVertex *GetSPDVertex() const;
62
63   AliEMCalHistoContainer        *fHistos;               //! Histogram container for the task
64   TList                                                             *fListTrackCuts;                // List of track cuts
65
66   // Cuts
67   AliCutValueRange<double>      fEtaRange;        // Eta Selection Range
68   AliCutValueRange<double>          fPtRange;                             // Pt Selection Range
69   AliCutValueRange<double>      fEnergyRange;     // Cluster energy selection range
70   AliCutValueRange<double>      fVertexRange;     // Vertex cut
71   Bool_t                                                  fSwapEta;                               // Allow swapping of the eta sign in asymmetric collision systems
72   Bool_t                                                  fUseTriggersFromTriggerMaker; // Use trigger classes from trigger maker
73
74   ClassDef(AliAnalysisTaskPtEMCalTrigger, 1);           // Analysis of EMCal triggered events
75 };
76
77 }
78 #endif