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 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; }
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;
60 AliEMCalHistoContainer *fHistos; //! Histogram container for the task
61 TList *fListTrackCuts; // List of track 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
69 ClassDef(AliAnalysisTaskPtEMCalTrigger, 1); // Analysis of EMCal triggered events