1 #ifndef ALIANALYSISTASKSPECTRABOTH_H
2 #define ALIANALYSISTASKSPECTRABOTH_H
4 /* See cxx source for full Copyright notice */
6 //-------------------------------------------------------------------------
7 // AliAnalysisTaskSpectraBoth
12 // Author: Michele Floris, CERN
13 //-------------------------------------------------------------------------
18 class AliSpectraBothHistoManager;
19 class AliSpectraBothTrackCuts;
20 class AliSpectraBothEventCuts;
21 class AliSpectraBothPID;
22 class AliESDtrackCuts;
23 class AliGenEventHeader;
25 #include "AliSpectraBothHistoManager.h"
26 #include "AliAnalysisTaskSE.h"
27 #include "AliESDtrackCuts.h"
29 class AliAnalysisTaskSpectraBoth : public AliAnalysisTaskSE
34 AliAnalysisTaskSpectraBoth() : AliAnalysisTaskSE(), fAOD(0), fHistMan(0), fTrackCuts(0), fEventCuts(0), fPID(0), fIsMC(0), fNRebin(0),fUseMinSigma(0),fCuts(0),fdotheMCLoopAfterEventCuts(0),fmakePIDQAhisto(1),fMotherWDPDGcode(-1)
36 AliAnalysisTaskSpectraBoth(const char *name);
37 virtual ~AliAnalysisTaskSpectraBoth() {}
39 void SetIsMC(Bool_t isMC = kFALSE) {fIsMC = isMC; };
40 Bool_t GetIsMC() const { return fIsMC;};
42 virtual void UserCreateOutputObjects();
43 virtual void UserExec(Option_t *option);
44 virtual void Terminate(Option_t *);
46 AliSpectraBothHistoManager * GetHistoManager() { return fHistMan; }
47 AliSpectraBothTrackCuts * GetTrackCuts() { return fTrackCuts; }
48 AliSpectraBothEventCuts * GetEventCuts() { return fEventCuts; }
49 AliSpectraBothPID * GetPID() { return fPID; }
51 void SetTrackCuts(AliSpectraBothTrackCuts * tc) { fTrackCuts = tc; }
52 void SetEventCuts(AliSpectraBothEventCuts * vc) { fEventCuts = vc; }
53 void SetPID (AliSpectraBothPID * pid) { fPID = pid; }
54 void SetNRebin(Int_t nreb){fNRebin=nreb;}
55 void SetUseMinSigma (Bool_t flag) {fUseMinSigma=flag;}
56 Int_t GetNRebin() const {return fNRebin;}
57 void SetAliESDtrackCuts(AliESDtrackCuts* cuts ){fCuts=cuts;}
58 void SetdotheMCLoopAfterEventCuts (Bool_t flag) {fdotheMCLoopAfterEventCuts=flag;}
59 Bool_t GetdotheMCLoopAfterEventCuts () const {return fdotheMCLoopAfterEventCuts;}
60 void SetMakePIDQAHisto(Bool_t flag){fmakePIDQAhisto=flag;}
61 void SetMotherWDPDGCode(Int_t value){fMotherWDPDGcode=value;}
64 AliVEvent * fAOD; //! AOD object
65 AliSpectraBothHistoManager * fHistMan; // Histogram Manager
66 AliSpectraBothTrackCuts * fTrackCuts; // Track Cuts
67 AliSpectraBothEventCuts * fEventCuts; // Event Cuts
68 AliSpectraBothPID * fPID;// PID class
69 Bool_t fIsMC;// true if processing MC
70 Int_t fNRebin; //rebin of histos
71 Bool_t fUseMinSigma; // if true use min sigma
72 AliESDtrackCuts *fCuts; // ESD track cuts
73 Bool_t fdotheMCLoopAfterEventCuts; // if true first check the ESD event cuts than loop over MC info , if flase other approach
74 Bool_t fmakePIDQAhisto; // if true makes PIDQA histos
75 Int_t fMotherWDPDGcode; //the abs of pdg code of the mother for WD decays , used during systematic studies
77 AliAnalysisTaskSpectraBoth(const AliAnalysisTaskSpectraBoth&);
78 AliAnalysisTaskSpectraBoth& operator=(const AliAnalysisTaskSpectraBoth&);
80 ClassDef(AliAnalysisTaskSpectraBoth, 3);