#ifndef AlidNdEtaTask_H
#define AlidNdEtaTask_H
-#include "AliAnalysisTask.h"
+#include "AliAnalysisTaskSE.h"
#include "AliPWG0Helper.h"
#include "AliTriggerAnalysis.h"
#include <TString.h>
class TH3F;
class AliESDEvent;
class AliTriggerAnalysis;
+class TH1D;
-class AlidNdEtaTask : public AliAnalysisTask {
+class AlidNdEtaTask : public AliAnalysisTaskSE {
public:
AlidNdEtaTask(const char* opt = "");
virtual ~AlidNdEtaTask();
- virtual void ConnectInputData(Option_t *);
- virtual void CreateOutputObjects();
- virtual void Exec(Option_t*);
+ virtual void ConnectInputData(Option_t *opt);
+ virtual void UserCreateOutputObjects();
+ virtual void UserExec(Option_t*);
virtual void Terminate(Option_t*);
- virtual Bool_t Notify();
+ virtual Bool_t UserNotify();
+
+ Bool_t IsEventInBinZero();
void SetTrackCuts(AliESDtrackCuts* cuts) { fEsdTrackCuts = cuts; }
void SetAnalysisMode(AliPWG0Helper::AnalysisMode mode) { fAnalysisMode = mode; }
void SetOnlyPrimaries(Bool_t flag = kTRUE) { fOnlyPrimaries = flag; }
void SetUseMCKine(Bool_t flag = kTRUE) { fUseMCKine = flag; }
void SetTrigger(AliTriggerAnalysis::Trigger trigger) { fTrigger = trigger; }
- void SetTriggerClasses(const char* require, const char* reject) { fRequireTriggerClass = require; fRejectTriggerClass = reject; }
void SetFillPhi(Bool_t flag = kTRUE) { fFillPhi = flag; }
void SetDeltaPhiCut(Float_t cut) { fDeltaPhiCut = cut; }
- void SetCheckEventType(Bool_t flag = kTRUE) { fCheckEventType = flag; }
void SetSymmetrize(Bool_t flag = kTRUE) { fSymmetrize = flag; }
void SetMultAxisEta1(Bool_t flag = kTRUE) { fMultAxisEta1 = flag; }
void SetDiffTreatment(AliPWG0Helper::DiffTreatment diffTreatment) { fDiffTreatment = diffTreatment; }
void SetOption(const char* opt) { fOption = opt; }
+ void SetPtMin(Float_t ptMin) { fPtMin = ptMin;}
protected:
AliESDEvent *fESD; //! ESD object
TString fOption; // option string
AliPWG0Helper::AnalysisMode fAnalysisMode; // detector that is used for analysis
AliTriggerAnalysis::Trigger fTrigger; // trigger that is used
- TString fRequireTriggerClass; // trigger class that is required
- TString fRejectTriggerClass; // trigger class that is rejected
Bool_t fFillPhi; // if true phi is filled as 3rd coordinate in all maps
Float_t fDeltaPhiCut; // cut in delta phi (only SPD)
Bool_t fUseMCVertex; // the MC vtx is used instead of the ESD vertex (for syst. check)
Bool_t fOnlyPrimaries; // Process only primaries by using the MC information (for syst. check)
Bool_t fUseMCKine; // use the MC values for each found track/tracklet (for syst. check)
- Bool_t fCheckEventType; // check if event type is physics (for real data)
Bool_t fSymmetrize; // move all negative to positive eta
Bool_t fMultAxisEta1; // restrict multiplicity count to |eta| < 1
AliPWG0Helper::DiffTreatment fDiffTreatment; // how to identify SD events (see AliPWG0Helper::GetEventProcessType)
AliESDtrackCuts* fEsdTrackCuts; // Object containing the parameters of the esd track cuts
- AliTriggerAnalysis* fTriggerAnalysis;
// Gathered from ESD
dNdEtaAnalysis* fdNdEtaAnalysisESD; //! contains the dndeta from the ESD
TH2F* fTrackletsVsUnassigned; //! number of tracklets vs. number of unassigned clusters in L1 (only for SPD analysis)
TH1F* fStats; //! further statistics : bin 1 = vertexer 3d, bin 2 = vertexer z, etc (see CreateOutputObjects)
TH2F* fStats2; //! V0 vs SPD statistics
-
+ Float_t fPtMin; // pt min, to be used in kOneTrack case
+ TH1D* fEta; //! eta distribution from ESD
+ TH1D* fEtaMC; //! eta distribution from MC
+ TH1D* fHistEvents; //! histo for n. of selected ESD events
+ TH1D* fHistEventsMC; //! histo for n. of selected MC events
+ TH1D* fTrigEffNum; //!
+ TH1D* fTrigEffDen; //!
+ TH1D* fVtxEffNum; //!
+ TH1D* fVtxEffDen; //!
+ TH1D* fVtxTrigEffNum; //!
+ TH1D* fVtxTrigEffDen; //!
private:
AlidNdEtaTask(const AlidNdEtaTask&);
AlidNdEtaTask& operator=(const AlidNdEtaTask&);
- ClassDef(AlidNdEtaTask, 1);
+ ClassDef(AlidNdEtaTask, 2);
};
#endif