]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskPtEMCalTrigger.h
More refactoring of the task
[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
555bdd7f 8#include "AliAnalysisTaskEmcalJet.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;
555bdd7f 16class AliClusterContainer;
17class AliEmcalJet;
46f589c2 18class AliESDtrack;
555bdd7f 19class AliJetContainer;
20class AliParticleContainer;
5bdebc68 21class AliVTrack;
cdc26d91 22class AliVParticle;
46f589c2 23
24namespace EMCalTriggerPtAnalysis {
25class AliEMCalHistoContainer;
26
555bdd7f 27class AliAnalysisTaskPtEMCalTrigger : public AliAnalysisTaskEmcalJet {
46f589c2 28public:
9f248f6f 29 enum EEMCalTriggerType_t{
30 kEMCalJetLow = 0,
31 kEMCalJetHigh = 1,
32 kEMCalGammaLow = 2,
33 kEMCalGammaHigh = 3
34 };
555bdd7f 35 static const Int_t kNJetRadii;
36 static const Double_t *kJetRadii;
37
9f248f6f 38 AliAnalysisTaskPtEMCalTrigger();
39 AliAnalysisTaskPtEMCalTrigger(const char *name);
40 ~AliAnalysisTaskPtEMCalTrigger();
46f589c2 41
9f248f6f 42 virtual void UserCreateOutputObjects();
43 virtual Bool_t Run();
46f589c2 44
9f248f6f 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); }
2ae55f0a 49 void SetVertexRange(double vmin, double vmax) { fVertexRange.SetLimits(vmin, vmax); }
caff8cd1 50 void SetClusterEnergyRange(double emin, double emax) { fEnergyRange.SetLimits(emin,emax); }
9f248f6f 51 void SetSwapEta() { fSwapEta = kTRUE; }
52 void UseTriggersFromTriggerMaker() { fUseTriggersFromTriggerMaker = kTRUE; }
86c0a4aa 53 void AddJetContainerName(const Char_t * contname, Bool_t isMC = kFALSE);
1e2fa4e9 54 void SelectAllTracks(Bool_t doAll) { fSelectAllTracks = doAll; }
46f589c2 55
56private:
9f248f6f 57 AliAnalysisTaskPtEMCalTrigger(const AliAnalysisTaskPtEMCalTrigger &);
58 AliAnalysisTaskPtEMCalTrigger &operator=(const AliAnalysisTaskPtEMCalTrigger &);
59 void CreateDefaultPtBinning(TArrayD &binning) const;
60 void CreateDefaultZVertexBinning(TArrayD &binning) const;
61 void CreateDefaultEtaBinning(TArrayD &binning) const;
62 void DefineAxis(TAxis &axis, const char *name, const char *title, const TArrayD &binning, const char **labels = NULL);
63 void DefineAxis(TAxis &axis, const char *name, const char *title, int nbins, double min, double max, const char **labels = NULL);
64 void FillEventHist(const char *trigger, double vz, bool isPileup);
555bdd7f 65 void FillTrackHist(const char *trigger, const AliVTrack *track, double vz, bool isPileup, int cut, bool isMinBias, double jetradius = -1.);
66 void FillClusterHist(const char *trigger, const AliVCluster *clust, double vz, bool isPileup, bool isMinBias);
67 void FillMCParticleHist(const char *histname, const AliVParticle * const part, double vz, bool isPileup);
9f248f6f 68 bool IsTrueTrack(const AliVTrack *const) const;
69 TString BuildTriggerString();
70 const AliVVertex *GetSPDVertex() const;
a745bb5b 71 const AliEmcalJet *FoundTrackInJet(const AliVParticle * const track, AliJetContainer *const jets) const;
72 const AliEmcalJet *FoundClusterInJet(const AliVCluster * const clust, AliJetContainer *const jets) const;
555bdd7f 73 bool TrackInJet(const AliVParticle *const track, const AliEmcalJet *reconstructedJet, const AliParticleContainer *const particles) const;
74 bool ClusterInJet(const AliVCluster *const clust, const AliEmcalJet *reconstructedJet, const AliClusterContainer *const particles) const;
75 bool IsInRadius(const AliVParticle *const track, const AliEmcalJet *reconstructedJet, Double_t radius) const;
76 bool IsInRadius(const AliVCluster *const clust, const AliEmcalJet *reconstructedJet, Double_t radius) const;
46f589c2 77
555bdd7f 78 AliEMCalHistoContainer *fHistos; //! Histogram container for the task
79 TList *fListTrackCuts; // List of track cuts
46f589c2 80
9f248f6f 81 // Cuts
555bdd7f 82 AliCutValueRange<double> fEtaRange; // Eta Selection Range
83 AliCutValueRange<double> fPtRange; // Pt Selection Range
84 AliCutValueRange<double> fEnergyRange; // Cluster energy selection range
85 AliCutValueRange<double> fVertexRange; // Vertex cut
86
87 // Jet containers
88 TList fJetContainersMC; // List of jet containers for MC
89 TList fJetContainersData; // List of jet containers for Data
90
91 // Settings
1e2fa4e9 92 Bool_t fSelectAllTracks; // Loop over all tracks
555bdd7f 93 Bool_t fSwapEta; // Allow swapping of the eta sign in asymmetric collision systems
94 Bool_t fUseTriggersFromTriggerMaker; // Use trigger classes from trigger maker
46f589c2 95
9f248f6f 96 ClassDef(AliAnalysisTaskPtEMCalTrigger, 1); // Analysis of EMCal triggered events
46f589c2 97};
98
99}
100#endif