]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG3/hfe/AliAnalysisTaskHFE.h
Fixing conding violations (Matthieu)
[u/mrichter/AliRoot.git] / PWG3 / hfe / AliAnalysisTaskHFE.h
index af5fe541e5c975ed79250024c88ee981ea2f7b0c..207410e17b491aacd6276e8bad8e76e5024b3b43 100644 (file)
@@ -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
 };