X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PWG3%2Fhfe%2FAliAnalysisTaskHFE.h;h=207410e17b491aacd6276e8bad8e76e5024b3b43;hb=27f155482dd7e0809a0a8f440f2c30cce35018bd;hp=af5fe541e5c975ed79250024c88ee981ea2f7b0c;hpb=50685501d7f347fa4cb6d5be3a355615292e4715;p=u%2Fmrichter%2FAliRoot.git diff --git a/PWG3/hfe/AliAnalysisTaskHFE.h b/PWG3/hfe/AliAnalysisTaskHFE.h index af5fe541e5c..207410e17b4 100644 --- a/PWG3/hfe/AliAnalysisTaskHFE.h +++ b/PWG3/hfe/AliAnalysisTaskHFE.h @@ -20,8 +20,8 @@ #ifndef ALIANALYSISTASKHFE_H #define ALIANALYSISTASKHFE_H -#ifndef ALIANALYSISTASK_H -#include "AliAnalysisTask.h" +#ifndef ALIANALYSISTASKSE_H +#include "AliAnalysisTaskSE.h" #endif #ifndef ROOT_THnSparse @@ -32,57 +32,60 @@ class AliHFEpid; class AliHFEcuts; class AliHFEmcQA; class AliHFEsecVtx; +class AliHFEelecbackground; +class AliHFEcollection; class AliCFManager; -class AliESDEvent; -class AliESDtrackCuts; +class AliVEvent; class AliMCEvent; class AliVParticle; class TH1I; class TList; -class AliAnalysisTaskHFE : public AliAnalysisTask{ +class AliAnalysisTaskHFE : public AliAnalysisTaskSE{ public: - enum{ - kPIDqa = 0, - kMCqa =1 - }; + enum{ + kPIDqa = 0, + kMCqa =1 + }; + enum{ + kPriVtx = 0, + kSecVtx = 1, + kIsElecBackGround = 2, + kPostProcess = 3 + }; AliAnalysisTaskHFE(); AliAnalysisTaskHFE(const char * name); AliAnalysisTaskHFE(const AliAnalysisTaskHFE &ref); AliAnalysisTaskHFE& operator=(const AliAnalysisTaskHFE &ref); virtual ~AliAnalysisTaskHFE(); - virtual void ConnectInputData(Option_t *); - virtual void CreateOutputObjects(); - virtual void Exec(Option_t *); + virtual void UserCreateOutputObjects(); + virtual void UserExec(Option_t *); virtual void Terminate(Option_t *); Bool_t IsQAOn(Int_t qaLevel) const { return TESTBIT(fQAlevel, qaLevel); }; - Bool_t IsSecVtxOn() const { return TestBit(kIsSecVtxOn); }; - Bool_t IsPriVtxOn() const { return TestBit(kIsPriVtxOn); }; - Bool_t IsRunningPostProcess() const { return TestBit(kIsRunningPostProcess); }; + Bool_t IsAODanalysis() const { return TestBit(kAODanalysis); }; + Bool_t IsESDanalysis() const { return !TestBit(kAODanalysis); }; Bool_t HasMCData() const { return TestBit(kHasMCdata); } + Bool_t GetPlugin(Int_t plug) const { return TESTBIT(fPlugins, plug); }; Int_t IsSignalElectron(AliVParticle *fTrack) const; - void Load(TString filename = "HFEtask.root"); - void PostProcess(); void SetHFECuts(AliHFEcuts * const cuts) { fCuts = cuts; }; + void SetHFEElecBackGround(AliHFEelecbackground * const elecBackGround) { fElecBackGround = elecBackGround; }; void SetQAOn(Int_t qaLevel) { SETBIT(fQAlevel, qaLevel); }; + void SwitchOnPlugin(Int_t plug); void SetHasMCData(Bool_t hasMC = kTRUE) { SetBit(kHasMCdata, hasMC); }; - void SetPriVtxOn(Bool_t option = kTRUE) { SetBit(kIsPriVtxOn, option); }; - void SetSecVtxOn(Bool_t option = kTRUE) { SetBit(kIsSecVtxOn, option); }; - void SetRunPostProcess(Bool_t option = kTRUE) { SetBit(kIsRunningPostProcess, option); }; void SetPIDdetectors(Char_t * const detectors){ fPIDdetectors = detectors; } void SetPIDStrategy(UInt_t strategy) { fPIDstrategy = strategy; } - void AddPIDdetector(Char_t *detector); + void AddPIDdetector(TString detector); + void SetTPCBetheBlochParameters(Double_t *pars); + void SetAODAnalysis() { SetBit(kAODanalysis, kTRUE); }; + void SetESDAnalysis() { SetBit(kAODanalysis, kFALSE); }; void PrintStatus() const; - Float_t GetRapidity(TParticle *part) const; private: enum{ - kIsSecVtxOn = BIT(19), - kIsPriVtxOn = BIT(20), - kIsRunningPostProcess = BIT(21), - kHasMCdata = BIT(22) + kHasMCdata = BIT(19), + kAODanalysis = BIT(20) }; class LabelContainer{ public: @@ -104,18 +107,26 @@ class AliAnalysisTaskHFE : public AliAnalysisTask{ Int_t *fCurrent; // Current entry to mimic an iterator }; void MakeParticleContainer(); + void MakeEventContainer(); + void ProcessMC(); + void ProcessESD(); + void ProcessAOD(); + Bool_t ProcessMCtrack(AliVParticle *track); + Bool_t ProcessCutStep(Int_t cutStep, AliVParticle *track, Double_t *container, Bool_t signal, Bool_t alreadyseen); ULong_t fQAlevel; // QA level TString fPIDdetectors; // Detectors for Particle Identification UInt_t fPIDstrategy; // PID Strategy - AliESDEvent *fESD; //! The ESD Event - AliMCEvent *fMC; //! The MC Event + Double_t fTPCBetheBlochParameters[5]; // TPC Bethe-Bloch Parameters + UShort_t fPlugins; // Enabled Plugins AliCFManager *fCFM; //! Correction Framework Manager TList *fCorrelation; //! response matrix for unfolding THnSparseF *fPIDperformance; //! info on contamination and yield of electron spectra + THnSparseF *fSignalToBackgroundMC; //! Signal To Background Studies on pure MC information AliHFEpid *fPID; //! PID AliHFEcuts *fCuts; // Cut Collection AliHFEsecVtx *fSecVtx; //! Secondary Vertex Analysis + AliHFEelecbackground *fElecBackGround;//! Background analysis AliHFEmcQA *fMCQA; //! MC QA TH1I *fNEvents; //! counter for the number of Events TH1I *fNElectronTracksEvent; //! Number of Electron candidates after PID decision per Event @@ -123,6 +134,8 @@ class AliAnalysisTaskHFE : public AliAnalysisTask{ TList *fOutput; //! Container for Task Output TList *fHistMCQA; //! Output container for MC QA histograms TList *fHistSECVTX; //! Output container for sec. vertexing results + TList *fHistELECBACKGROUND; //! Output container for electron background analysis +// AliHFEcollection *fQAcoll; //! collection class for basic QA histograms ClassDef(AliAnalysisTaskHFE, 1) // The electron Analysis Task };