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 */
6 // Author: Markus Fasel
8 #include "AliAnalysisTaskEmcal.h"
9 #include "AliCutValueRange.h"
10 #include "AliESDtrackCuts.h"
11 #include <TClonesArray.h>
20 namespace EMCalTriggerPtAnalysis {
21 class AliEMCalHistoContainer;
23 class AliAnalysisTaskPtEMCalTrigger : public AliAnalysisTaskEmcal {
25 enum EEMCalTriggerType_t{
31 AliAnalysisTaskPtEMCalTrigger();
32 AliAnalysisTaskPtEMCalTrigger(const char *name);
33 ~AliAnalysisTaskPtEMCalTrigger();
35 virtual void UserCreateOutputObjects();
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; }
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;
63 AliEMCalHistoContainer *fHistos; //! Histogram container for the task
64 TList *fListTrackCuts; // List of track 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
74 ClassDef(AliAnalysisTaskPtEMCalTrigger, 1); // Analysis of EMCal triggered events