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 "AliAnalysisTaskEmcalJet.h"
9 #include "AliCutValueRange.h"
10 #include "AliESDtrackCuts.h"
11 #include <TClonesArray.h>
16 class AliClusterContainer;
19 class AliJetContainer;
20 class AliParticleContainer;
24 namespace EMCalTriggerPtAnalysis {
25 class AliEMCalHistoContainer;
27 class AliAnalysisTaskPtEMCalTrigger : public AliAnalysisTaskEmcalJet {
29 enum EEMCalTriggerType_t{
35 static const Int_t kNJetRadii;
36 static const Double_t *kJetRadii;
38 AliAnalysisTaskPtEMCalTrigger();
39 AliAnalysisTaskPtEMCalTrigger(const char *name);
40 ~AliAnalysisTaskPtEMCalTrigger();
42 virtual void UserCreateOutputObjects();
45 void AddESDTrackCuts(AliESDtrackCuts *trackCuts);
46 void AddCutsForAOD(AliESDtrackCuts *trackCuts, UInt_t filterBits);
47 void SetEtaRange(double etamin, double etamax) { fEtaRange.SetLimits(etamin, etamax); }
48 void SetPtRange(double ptmin, double ptmax) { fPtRange.SetLimits(ptmin, ptmax); }
49 void SetVertexRange(double vmin, double vmax) { fVertexRange.SetLimits(vmin, vmax); }
50 void SetClusterEnergyRange(double emin, double emax) { fEnergyRange.SetLimits(emin,emax); }
51 void SetSwapEta() { fSwapEta = kTRUE; }
52 void UseTriggersFromTriggerMaker() { fUseTriggersFromTriggerMaker = kTRUE; }
53 void AddJetContainer(const Char_t * contname, Bool_t isMC = kFALSE);
56 AliAnalysisTaskPtEMCalTrigger(const AliAnalysisTaskPtEMCalTrigger &);
57 AliAnalysisTaskPtEMCalTrigger &operator=(const AliAnalysisTaskPtEMCalTrigger &);
58 void CreateDefaultPtBinning(TArrayD &binning) const;
59 void CreateDefaultZVertexBinning(TArrayD &binning) const;
60 void CreateDefaultEtaBinning(TArrayD &binning) const;
61 void DefineAxis(TAxis &axis, const char *name, const char *title, const TArrayD &binning, const char **labels = NULL);
62 void DefineAxis(TAxis &axis, const char *name, const char *title, int nbins, double min, double max, const char **labels = NULL);
63 void FillEventHist(const char *trigger, double vz, bool isPileup);
64 void FillTrackHist(const char *trigger, const AliVTrack *track, double vz, bool isPileup, int cut, bool isMinBias, double jetradius = -1.);
65 void FillClusterHist(const char *trigger, const AliVCluster *clust, double vz, bool isPileup, bool isMinBias);
66 void FillMCParticleHist(const char *histname, const AliVParticle * const part, double vz, bool isPileup);
67 bool IsTrueTrack(const AliVTrack *const) const;
68 TString BuildTriggerString();
69 const AliVVertex *GetSPDVertex() const;
70 const AliEmcalJet *FoundTrackInJet(const AliVParticle * const track, const AliJetContainer *const jets) const;
71 const AliEmcalJet *FoundClusterInJet(const AliVCluster * const clust, const AliJetContainer *const jets) const;
72 bool TrackInJet(const AliVParticle *const track, const AliEmcalJet *reconstructedJet, const AliParticleContainer *const particles) const;
73 bool ClusterInJet(const AliVCluster *const clust, const AliEmcalJet *reconstructedJet, const AliClusterContainer *const particles) const;
74 bool IsInRadius(const AliVParticle *const track, const AliEmcalJet *reconstructedJet, Double_t radius) const;
75 bool IsInRadius(const AliVCluster *const clust, const AliEmcalJet *reconstructedJet, Double_t radius) const;
77 AliEMCalHistoContainer *fHistos; //! Histogram container for the task
78 TList *fListTrackCuts; // List of track cuts
81 AliCutValueRange<double> fEtaRange; // Eta Selection Range
82 AliCutValueRange<double> fPtRange; // Pt Selection Range
83 AliCutValueRange<double> fEnergyRange; // Cluster energy selection range
84 AliCutValueRange<double> fVertexRange; // Vertex cut
87 TList fJetContainersMC; // List of jet containers for MC
88 TList fJetContainersData; // List of jet containers for Data
91 Bool_t fSwapEta; // Allow swapping of the eta sign in asymmetric collision systems
92 Bool_t fUseTriggersFromTriggerMaker; // Use trigger classes from trigger maker
94 ClassDef(AliAnalysisTaskPtEMCalTrigger, 1); // Analysis of EMCal triggered events