ROOT logo
//------------------------------------------------------
// AliAnalysisTaskFemto - A task for the analysis framework
// from the FEMTOSCOPY analysis of PWG2. Creates the necessary
// connection between the ESD or AOD input and the femtoscopic
// code.
// Author: Adam Kisiel, OSU; Adam.Kisiel@cern.ch
//------------------------------------------------------
#ifndef ALIANALYSISTASKFEMTO_H
#define ALIANALYSISTASKFEMTO_H

#include "TH1.h"
#include "TString.h"

#include "AliESDInputHandler.h"
#include "AliAODHandler.h"
#include "AliAODInputHandler.h"
#include "AliMCEventHandler.h"
#include "AliESDEvent.h"
#include "AliAODEvent.h"
#include "AliMCEvent.h"

//#include "AliAnalysisTask.h"
#include "AliAnalysisTaskSE.h"
#include "AliAnalysisManager.h"
#include "AliAnalysisDataContainer.h"

#include "AliFemtoEventReaderESDChain.h"
#include "AliFemtoEventReaderESDChainKine.h"
#include "AliFemtoEventReaderAODChain.h"
#include "AliFemtoEventReaderStandard.h"
#include "AliFemtoEventReaderKinematicsChain.h"
#include "AliFemtoEventReaderKinematicsChainESD.h"
#include "AliFemtoManager.h"

#include "AliESDpid.h"
#include "AliAODpidUtil.h"
#include "AliAODHeader.h"


class AliAnalysisTaskFemto : public AliAnalysisTaskSE { //AliAnalysisTask
 public:
AliAnalysisTaskFemto() : AliAnalysisTaskSE(), fESD(0), fESDpid(0), fAOD(0), fAODpidUtil(0), fAODheader(0), fStack(0), fOutputList(0), fReader(0x0), fManager(0x0), fAnalysisType(0), fConfigMacro(0), fConfigParams(0), fVerbose(kTRUE) {}
    AliAnalysisTaskFemto(TString name, TString aConfigMacro, TString aConfigParams, Bool_t aVerbose=kFALSE);
    AliAnalysisTaskFemto(TString name, TString aConfigMacro, Bool_t aVerbose=kFALSE);
  AliAnalysisTaskFemto(const AliAnalysisTaskFemto& aFemtoTask);
  virtual ~AliAnalysisTaskFemto();
  
  AliAnalysisTaskFemto& operator=(const AliAnalysisTaskFemto& aFemtoTask);

  virtual void   ConnectInputData(Option_t *);
  virtual void   CreateOutputObjects();
  virtual void   Exec(Option_t *option);
  virtual void   Terminate(Option_t *);
  virtual void   FinishTaskOutput();

  void SetFemtoReaderESD(AliFemtoEventReaderESDChain *aReader);
  void SetFemtoReaderESDKine(AliFemtoEventReaderESDChainKine *aReader);
  void SetFemtoReaderAOD(AliFemtoEventReaderAODChain *aReader);
  void SetFemtoReaderStandard(AliFemtoEventReaderStandard *aReader);
  void SetFemtoManager(AliFemtoManager *aManager);
  void SetFemtoReaderKinematics(AliFemtoEventReaderKinematicsChain *aReader);
  void SetFemtoReaderKinematicsESD(AliFemtoEventReaderKinematicsChainESD *aReader);

 private:
  AliESDEvent                 *fESD;          //! ESD object
  AliESDpid                   *fESDpid;       //! ESDpid object
  AliAODEvent                 *fAOD;          //! AOD object
  AliAODpidUtil               *fAODpidUtil;   // AliAODpidUtil object
  AliAODHeader                *fAODheader;    //AliAODHeader object (to get reference multiplicity in pp)

  AliStack                    *fStack;        //! Stack from Kinematics
  TList                       *fOutputList;   //  AliFemto results list
  AliFemtoEventReader         *fReader;       //! Reference to the reader
  AliFemtoManager             *fManager;      //! AliFemto top-level manager 
  int                          fAnalysisType; //  Mark ESD of AOD analysis
    TString                      fConfigMacro;  //  Config macro location
    TString                      fConfigParams; //  Config macro parameters
  Bool_t fVerbose;

  ClassDef(AliAnalysisTaskFemto, 3); // example of analysis
};

#endif

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