ROOT logo
#ifndef AliPERFORMANCETASK_H
#define AliPERFORMANCETASK_H

//------------------------------------------------------------------------------
// Task to run reconstruction performance. 
// 
// Author: J.Otwinowski 01/04/2009 
// Changes by M.Knichel 15/10/2010
//------------------------------------------------------------------------------

class AliESDEvent;
class AliESDfriend;
class AliMCEvent;
class AliPerformanceObject;
class AliMagF;
class TList;
class TTree;

#include "AliAnalysisTaskSE.h"

class AliPerformanceTask : public AliAnalysisTaskSE {
 public:
  AliPerformanceTask();
  AliPerformanceTask(const char *name, const char *title);
  virtual ~AliPerformanceTask();
  
  virtual void   UserCreateOutputObjects();
  virtual void   UserExec(Option_t *option);
  virtual void   Terminate(Option_t *);
  virtual void   FinishTaskOutput();
  virtual Bool_t Notify();

  // Add comparison objects
  Bool_t AddPerformanceObject(AliPerformanceObject* comp);

  // Use MC
  void SetUseMCInfo(Bool_t useMCInfo = kFALSE) {fUseMCInfo = useMCInfo;}

  // Use ESD friend
  void SetUseESDfriend(Bool_t useESDFriend = kFALSE) {fUseESDfriend = useESDFriend;}

  // Use HLT ESD
  void SetUseHLT(Bool_t useHLT = kFALSE) {fUseHLT = useHLT;}

  // Use Terminate function
  void SetUseTerminate(Bool_t useTerminate = kTRUE) {fUseTerminate = useTerminate;}

  // Use centrality - if yes, which one
  void  SetUseCentrality(Int_t cent)   { fUseCentrality = cent; }
  Int_t GetUseCentrality()             { return fUseCentrality; }

  // use OCDB
  void  SetUseOCDB(Bool_t bOCDB) { fUseOCDB = bOCDB;  }
  Bool_t  GetUseOCDB() { return fUseOCDB; }

  // Centrality bin to be used
  void  SetUseCentralityBin(Int_t bin) { fUseCentralityBin = bin; }
  Int_t GetUseCentralityBin()          { return fUseCentralityBin; }

 private:

  // Calculate centrality
  Int_t CalculateCentralityBin();

  AliESDEvent *fESD;          //! ESD event
  AliESDfriend *fESDfriend;   //! ESD friend event
  AliMCEvent *fMC;            //! MC event

  TList *fOutput;             //! list send on output container 1
  TTree* fOutputSummary;      //! tree to dump summary values (output container 2)
  TIterator *fPitList;        //! iterator over the output objetcs  
  TList *fCompList;           // list of comparison objects

  Bool_t fUseMCInfo;          // use MC information
  Bool_t fUseESDfriend;       // use ESD friend
  Bool_t fUseHLT;             // use HLT ESD

  Bool_t fUseTerminate;       // use terminate function

  Int_t  fUseCentrality;      // use centrality (0=off(default),1=VZERO,2=SPD)

  Bool_t  fUseOCDB;           // use OCDB

  Int_t fUseCentralityBin;  // centrality bin to be used 

  AliPerformanceTask(const AliPerformanceTask&); // not implemented
  AliPerformanceTask& operator=(const AliPerformanceTask&); // not implemented
  
  ClassDef(AliPerformanceTask, 5); // example of analysis
};

#endif
 AliPerformanceTask.h:1
 AliPerformanceTask.h:2
 AliPerformanceTask.h:3
 AliPerformanceTask.h:4
 AliPerformanceTask.h:5
 AliPerformanceTask.h:6
 AliPerformanceTask.h:7
 AliPerformanceTask.h:8
 AliPerformanceTask.h:9
 AliPerformanceTask.h:10
 AliPerformanceTask.h:11
 AliPerformanceTask.h:12
 AliPerformanceTask.h:13
 AliPerformanceTask.h:14
 AliPerformanceTask.h:15
 AliPerformanceTask.h:16
 AliPerformanceTask.h:17
 AliPerformanceTask.h:18
 AliPerformanceTask.h:19
 AliPerformanceTask.h:20
 AliPerformanceTask.h:21
 AliPerformanceTask.h:22
 AliPerformanceTask.h:23
 AliPerformanceTask.h:24
 AliPerformanceTask.h:25
 AliPerformanceTask.h:26
 AliPerformanceTask.h:27
 AliPerformanceTask.h:28
 AliPerformanceTask.h:29
 AliPerformanceTask.h:30
 AliPerformanceTask.h:31
 AliPerformanceTask.h:32
 AliPerformanceTask.h:33
 AliPerformanceTask.h:34
 AliPerformanceTask.h:35
 AliPerformanceTask.h:36
 AliPerformanceTask.h:37
 AliPerformanceTask.h:38
 AliPerformanceTask.h:39
 AliPerformanceTask.h:40
 AliPerformanceTask.h:41
 AliPerformanceTask.h:42
 AliPerformanceTask.h:43
 AliPerformanceTask.h:44
 AliPerformanceTask.h:45
 AliPerformanceTask.h:46
 AliPerformanceTask.h:47
 AliPerformanceTask.h:48
 AliPerformanceTask.h:49
 AliPerformanceTask.h:50
 AliPerformanceTask.h:51
 AliPerformanceTask.h:52
 AliPerformanceTask.h:53
 AliPerformanceTask.h:54
 AliPerformanceTask.h:55
 AliPerformanceTask.h:56
 AliPerformanceTask.h:57
 AliPerformanceTask.h:58
 AliPerformanceTask.h:59
 AliPerformanceTask.h:60
 AliPerformanceTask.h:61
 AliPerformanceTask.h:62
 AliPerformanceTask.h:63
 AliPerformanceTask.h:64
 AliPerformanceTask.h:65
 AliPerformanceTask.h:66
 AliPerformanceTask.h:67
 AliPerformanceTask.h:68
 AliPerformanceTask.h:69
 AliPerformanceTask.h:70
 AliPerformanceTask.h:71
 AliPerformanceTask.h:72
 AliPerformanceTask.h:73
 AliPerformanceTask.h:74
 AliPerformanceTask.h:75
 AliPerformanceTask.h:76
 AliPerformanceTask.h:77
 AliPerformanceTask.h:78
 AliPerformanceTask.h:79
 AliPerformanceTask.h:80
 AliPerformanceTask.h:81
 AliPerformanceTask.h:82
 AliPerformanceTask.h:83
 AliPerformanceTask.h:84
 AliPerformanceTask.h:85
 AliPerformanceTask.h:86
 AliPerformanceTask.h:87
 AliPerformanceTask.h:88
 AliPerformanceTask.h:89
 AliPerformanceTask.h:90
 AliPerformanceTask.h:91
 AliPerformanceTask.h:92