update to master versions
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskPtEMCalTrigger.h
CommitLineData
46f589c2 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
cdc26d91 8#include "AliAnalysisTaskEmcal.h"
46f589c2 9#include "AliCutValueRange.h"
10#include "AliESDtrackCuts.h"
5bdebc68 11#include <TClonesArray.h>
46f589c2 12#include <TList.h>
13
14class TArrayD;
15class Axis;
16class AliESDtrack;
5bdebc68 17class AliVTrack;
cdc26d91 18class AliVParticle;
46f589c2 19
20namespace EMCalTriggerPtAnalysis {
21class AliEMCalHistoContainer;
22
cdc26d91 23class AliAnalysisTaskPtEMCalTrigger : public AliAnalysisTaskEmcal {
46f589c2 24public:
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
cdc26d91 35 virtual void UserCreateOutputObjects();
36 virtual Bool_t Run();
46f589c2 37
cdc26d91 38 void AddESDTrackCuts(AliESDtrackCuts *trackCuts);
13f0fa4c 39 void AddCutsForAOD(AliESDtrackCuts *trackCuts, UInt_t filterBits);
46f589c2 40 void SetEtaRange(double etamin, double etamax) { fEtaRange.SetLimits(etamin, etamax); }
bf9501c1 41 void SetPtRange(double ptmin, double ptmax) { fPtRange.SetLimits(ptmin, ptmax); }
710e1b95 42 void SetSwapEta() { fSwapEta = kTRUE; }
cdc26d91 43 void UseTriggersFromTriggerMaker() { fUseTriggersFromTriggerMaker = kTRUE; }
46f589c2 44
45private:
46 AliAnalysisTaskPtEMCalTrigger(const AliAnalysisTaskPtEMCalTrigger &);
47 AliAnalysisTaskPtEMCalTrigger &operator=(const AliAnalysisTaskPtEMCalTrigger &);
48 void CreateDefaultPtBinning(TArrayD &binning) const;
49 void CreateDefaultZVertexBinning(TArrayD &binning) const;
50 void CreateDefaultEtaBinning(TArrayD &binning) const;
51 void DefineAxis(TAxis &axis, const char *name, const char *title, const TArrayD &binning, const char **labels = NULL);
52 void DefineAxis(TAxis &axis, const char *name, const char *title, int nbins, double min, double max, const char **labels = NULL);
53 void FillEventHist(const char *trigger, double vz, bool isPileup);
8738a2f4 54 void FillTrackHist(const char *trigger, const AliVTrack *track, double vz, bool isPileup, int cut, bool isMinBias);
55 void FillClusterHist(const char *trigger, const AliVCluster *clust, bool isCalibrated, double vz, bool isPileup, bool isMinBias);
5ca97880 56 void FillMCParticleHist(const AliVParticle * const part, double vz, bool isPileup);
cdc26d91 57 bool IsTrueTrack(const AliVTrack *const) const;
58 TString BuildTriggerString();
59 const AliVVertex *GetSPDVertex() const;
46f589c2 60
46f589c2 61 AliEMCalHistoContainer *fHistos; //! Histogram container for the task
62 TList *fListTrackCuts; // List of track cuts
63
64 // Cuts
65 AliCutValueRange<double> fEtaRange; // Eta Selection Range
bf9501c1 66 AliCutValueRange<double> fPtRange; // Pt Selection Range
710e1b95 67 Bool_t fSwapEta; // Allow swapping of the eta sign in asymmetric collision systems
cdc26d91 68 Bool_t fUseTriggersFromTriggerMaker; // Use trigger classes from trigger maker
46f589c2 69
70 ClassDef(AliAnalysisTaskPtEMCalTrigger, 1); // Analysis of EMCal triggered events
71};
72
73}
74#endif