// Author: Markus Fasel
-#include "AliAnalysisTaskSE.h"
+#include "AliAnalysisTaskEmcal.h"
#include "AliCutValueRange.h"
#include "AliESDtrackCuts.h"
+#include <TClonesArray.h>
#include <TList.h>
class TArrayD;
class Axis;
class AliESDtrack;
+class AliVTrack;
+class AliVParticle;
namespace EMCalTriggerPtAnalysis {
class AliEMCalHistoContainer;
-class AliAnalysisTaskPtEMCalTrigger : public AliAnalysisTaskSE {
+class AliAnalysisTaskPtEMCalTrigger : public AliAnalysisTaskEmcal {
public:
enum EEMCalTriggerType_t{
kEMCalJetLow = 0,
AliAnalysisTaskPtEMCalTrigger(const char *name);
~AliAnalysisTaskPtEMCalTrigger();
- void UserCreateOutputObjects();
- void UserExec(Option_t* /*option*/);
- void Terminate(Option_t * /*option*/) {}
+ virtual void UserCreateOutputObjects();
+ virtual Bool_t Run();
- void AddTrackCuts(AliESDtrackCuts *trackCuts) { fListTrackCuts->Add(trackCuts); }
+ 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 SetSwapEta() { fSwapEta = kTRUE; }
+ void UseTriggersFromTriggerMaker() { fUseTriggersFromTriggerMaker = kTRUE; }
private:
AliAnalysisTaskPtEMCalTrigger(const AliAnalysisTaskPtEMCalTrigger &);
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 AliESDtrack *track, double vz, bool isPileup, int cut);
+ void FillTrackHist(const char *trigger, const AliVTrack *track, double vz, bool isPileup, int cut, bool isMinBias);
+ void FillClusterHist(const char *trigger, const AliVCluster *clust, bool isCalibrated, double vz, bool isPileup, bool isMinBias);
+ void FillMCParticleHist(const AliVParticle * const part, double vz, bool isPileup);
+ bool IsTrueTrack(const AliVTrack *const) const;
+ TString BuildTriggerString();
+ const AliVVertex *GetSPDVertex() const;
- TList *fResults; //! container for results
AliEMCalHistoContainer *fHistos; //! Histogram container for the task
TList *fListTrackCuts; // List of track cuts
// Cuts
AliCutValueRange<double> fEtaRange; // Eta Selection Range
+ AliCutValueRange<double> fPtRange; // Pt Selection Range
+ Bool_t fSwapEta; // Allow swapping of the eta sign in asymmetric collision systems
+ Bool_t fUseTriggersFromTriggerMaker; // Use trigger classes from trigger maker
ClassDef(AliAnalysisTaskPtEMCalTrigger, 1); // Analysis of EMCal triggered events
};