#ifndef ALIANALYSISTASKPTEMCALTRIGGER_H_
#define ALIANALYSISTASKPTEMCALTRIGGER_H_
#include "AliAnalysisTaskEmcalJet.h"
#include "AliESDtrackCuts.h"
#include <TClonesArray.h>
#include <TList.h>
#include "AliCutValueRange.h"
class TArrayD;
class Axis;
class AliClusterContainer;
class AliEmcalJet;
class AliESDtrack;
class AliJetContainer;
class AliParticleContainer;
class AliVTrack;
class AliVParticle;
namespace EMCalTriggerPtAnalysis {
class AliEMCalHistoContainer;
class AliAnalysisTaskPtEMCalTrigger : public AliAnalysisTaskEmcalJet {
public:
enum EEMCalTriggerType_t{
kEMCalJetLow = 0,
kEMCalJetHigh = 1,
kEMCalGammaLow = 2,
kEMCalGammaHigh = 3
};
static const Int_t kNJetRadii;
static const Double_t *kJetRadii;
AliAnalysisTaskPtEMCalTrigger();
AliAnalysisTaskPtEMCalTrigger(const char *name);
~AliAnalysisTaskPtEMCalTrigger();
virtual void UserCreateOutputObjects();
virtual Bool_t Run();
void AddESDTrackCuts(AliESDtrackCuts *trackCuts);
void AddCutsForAOD(AliESDtrackCuts *trackCuts, UInt_t filterBits);
void SetEtaRange(double etamin, double etamax) { fEtaRange.SetLimits(etamin, etamax); }
void SetPtRange(double ptmin, double ptmax) { fPtRange.SetLimits(ptmin, ptmax); }
void SetVertexRange(double vmin, double vmax) { fVertexRange.SetLimits(vmin, vmax); }
void SetClusterEnergyRange(double emin, double emax) { fEnergyRange.SetLimits(emin,emax); }
void SetSwapEta() { fSwapEta = kTRUE; }
void UseTriggersFromTriggerMaker() { fUseTriggersFromTriggerMaker = kTRUE; }
void AddJetContainerName(const Char_t * contname, Bool_t isMC = kFALSE);
void SelectAllTracks(Bool_t doAll) { fSelectAllTracks = doAll; }
private:
AliAnalysisTaskPtEMCalTrigger(const AliAnalysisTaskPtEMCalTrigger &);
AliAnalysisTaskPtEMCalTrigger &operator=(const AliAnalysisTaskPtEMCalTrigger &);
void CreateDefaultPtBinning(TArrayD &binning) const;
void CreateDefaultZVertexBinning(TArrayD &binning) const;
void CreateDefaultEtaBinning(TArrayD &binning) const;
void DefineAxis(TAxis &axis, const char *name, const char *title, const TArrayD &binning, const char **labels = NULL);
void DefineAxis(TAxis &axis, const char *name, const char *title, int nbins, double min, double max, const char **labels = NULL);
void FillEventHist(const char *trigger, double vz, bool isPileup);
void FillTrackHist(const char *trigger, const AliVTrack *track, double vz, bool isPileup, int cut, bool isMinBias, double jetradius = -1.);
void FillClusterHist(const char *trigger, const AliVCluster *clust, double vz, bool isPileup, bool isMinBias);
void FillMCParticleHist(const char *histname, const AliVParticle * const part, double vz, bool isPileup);
bool IsTrueTrack(const AliVTrack *const) const;
TString BuildTriggerString();
const AliVVertex *GetSPDVertex() const;
const AliEmcalJet *FoundTrackInJet(const AliVParticle * const track, AliJetContainer *const jets) const;
const AliEmcalJet *FoundClusterInJet(const AliVCluster * const clust, AliJetContainer *const jets) const;
bool TrackInJet(const AliVParticle *const track, const AliEmcalJet *reconstructedJet, const AliParticleContainer *const particles) const;
bool ClusterInJet(const AliVCluster *const clust, const AliEmcalJet *reconstructedJet, const AliClusterContainer *const particles) const;
bool IsInRadius(const AliVParticle *const track, const AliEmcalJet *reconstructedJet, Double_t radius) const;
bool IsInRadius(const AliVCluster *const clust, const AliEmcalJet *reconstructedJet, Double_t radius) const;
AliEMCalHistoContainer *fHistos;
TList *fListTrackCuts;
AliCutValueRange<double> fEtaRange;
AliCutValueRange<double> fPtRange;
AliCutValueRange<double> fEnergyRange;
AliCutValueRange<double> fVertexRange;
TList fJetContainersMC;
TList fJetContainersData;
Bool_t fSelectAllTracks;
Bool_t fSwapEta;
Bool_t fUseTriggersFromTriggerMaker;
ClassDef(AliAnalysisTaskPtEMCalTrigger, 1);
};
}
#endif
AliAnalysisTaskPtEMCalTrigger.h:1 AliAnalysisTaskPtEMCalTrigger.h:2 AliAnalysisTaskPtEMCalTrigger.h:3 AliAnalysisTaskPtEMCalTrigger.h:4 AliAnalysisTaskPtEMCalTrigger.h:5 AliAnalysisTaskPtEMCalTrigger.h:6 AliAnalysisTaskPtEMCalTrigger.h:7 AliAnalysisTaskPtEMCalTrigger.h:8 AliAnalysisTaskPtEMCalTrigger.h:9 AliAnalysisTaskPtEMCalTrigger.h:10 AliAnalysisTaskPtEMCalTrigger.h:11 AliAnalysisTaskPtEMCalTrigger.h:12 AliAnalysisTaskPtEMCalTrigger.h:13 AliAnalysisTaskPtEMCalTrigger.h:14 AliAnalysisTaskPtEMCalTrigger.h:15 AliAnalysisTaskPtEMCalTrigger.h:16 AliAnalysisTaskPtEMCalTrigger.h:17 AliAnalysisTaskPtEMCalTrigger.h:18 AliAnalysisTaskPtEMCalTrigger.h:19 AliAnalysisTaskPtEMCalTrigger.h:20 AliAnalysisTaskPtEMCalTrigger.h:21 AliAnalysisTaskPtEMCalTrigger.h:22 AliAnalysisTaskPtEMCalTrigger.h:23 AliAnalysisTaskPtEMCalTrigger.h:24 AliAnalysisTaskPtEMCalTrigger.h:25 AliAnalysisTaskPtEMCalTrigger.h:26 AliAnalysisTaskPtEMCalTrigger.h:27 AliAnalysisTaskPtEMCalTrigger.h:28 AliAnalysisTaskPtEMCalTrigger.h:29 AliAnalysisTaskPtEMCalTrigger.h:30 AliAnalysisTaskPtEMCalTrigger.h:31 AliAnalysisTaskPtEMCalTrigger.h:32 AliAnalysisTaskPtEMCalTrigger.h:33 AliAnalysisTaskPtEMCalTrigger.h:34 AliAnalysisTaskPtEMCalTrigger.h:35 AliAnalysisTaskPtEMCalTrigger.h:36 AliAnalysisTaskPtEMCalTrigger.h:37 AliAnalysisTaskPtEMCalTrigger.h:38 AliAnalysisTaskPtEMCalTrigger.h:39 AliAnalysisTaskPtEMCalTrigger.h:40 AliAnalysisTaskPtEMCalTrigger.h:41 AliAnalysisTaskPtEMCalTrigger.h:42 AliAnalysisTaskPtEMCalTrigger.h:43 AliAnalysisTaskPtEMCalTrigger.h:44 AliAnalysisTaskPtEMCalTrigger.h:45 AliAnalysisTaskPtEMCalTrigger.h:46 AliAnalysisTaskPtEMCalTrigger.h:47 AliAnalysisTaskPtEMCalTrigger.h:48 AliAnalysisTaskPtEMCalTrigger.h:49 AliAnalysisTaskPtEMCalTrigger.h:50 AliAnalysisTaskPtEMCalTrigger.h:51 AliAnalysisTaskPtEMCalTrigger.h:52 AliAnalysisTaskPtEMCalTrigger.h:53 AliAnalysisTaskPtEMCalTrigger.h:54 AliAnalysisTaskPtEMCalTrigger.h:55 AliAnalysisTaskPtEMCalTrigger.h:56 AliAnalysisTaskPtEMCalTrigger.h:57 AliAnalysisTaskPtEMCalTrigger.h:58 AliAnalysisTaskPtEMCalTrigger.h:59 AliAnalysisTaskPtEMCalTrigger.h:60 AliAnalysisTaskPtEMCalTrigger.h:61 AliAnalysisTaskPtEMCalTrigger.h:62 AliAnalysisTaskPtEMCalTrigger.h:63 AliAnalysisTaskPtEMCalTrigger.h:64 AliAnalysisTaskPtEMCalTrigger.h:65 AliAnalysisTaskPtEMCalTrigger.h:66 AliAnalysisTaskPtEMCalTrigger.h:67 AliAnalysisTaskPtEMCalTrigger.h:68 AliAnalysisTaskPtEMCalTrigger.h:69 AliAnalysisTaskPtEMCalTrigger.h:70 AliAnalysisTaskPtEMCalTrigger.h:71 AliAnalysisTaskPtEMCalTrigger.h:72 AliAnalysisTaskPtEMCalTrigger.h:73 AliAnalysisTaskPtEMCalTrigger.h:74 AliAnalysisTaskPtEMCalTrigger.h:75 AliAnalysisTaskPtEMCalTrigger.h:76 AliAnalysisTaskPtEMCalTrigger.h:77 AliAnalysisTaskPtEMCalTrigger.h:78 AliAnalysisTaskPtEMCalTrigger.h:79 AliAnalysisTaskPtEMCalTrigger.h:80 AliAnalysisTaskPtEMCalTrigger.h:81 AliAnalysisTaskPtEMCalTrigger.h:82 AliAnalysisTaskPtEMCalTrigger.h:83 AliAnalysisTaskPtEMCalTrigger.h:84 AliAnalysisTaskPtEMCalTrigger.h:85 AliAnalysisTaskPtEMCalTrigger.h:86 AliAnalysisTaskPtEMCalTrigger.h:87 AliAnalysisTaskPtEMCalTrigger.h:88 AliAnalysisTaskPtEMCalTrigger.h:89 AliAnalysisTaskPtEMCalTrigger.h:90 AliAnalysisTaskPtEMCalTrigger.h:91 AliAnalysisTaskPtEMCalTrigger.h:92 AliAnalysisTaskPtEMCalTrigger.h:93 AliAnalysisTaskPtEMCalTrigger.h:94 AliAnalysisTaskPtEMCalTrigger.h:95 AliAnalysisTaskPtEMCalTrigger.h:96 AliAnalysisTaskPtEMCalTrigger.h:97 AliAnalysisTaskPtEMCalTrigger.h:98 AliAnalysisTaskPtEMCalTrigger.h:99 AliAnalysisTaskPtEMCalTrigger.h:100