]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/FEMTOSCOPY/AliFemto/AliAnalysisTaskFemto.h
modified Azimuthal HBT analysis (Vera R. Loggins <veraloggins@wayne.edu>)
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / AliFemto / AliAnalysisTaskFemto.h
1 //------------------------------------------------------
2 // AliAnalysisTaskFemto - A task for the analysis framework
3 // from the FEMTOSCOPY analysis of PWG2. Creates the necessary
4 // connection between the ESD or AOD input and the femtoscopic
5 // code.
6 // Author: Adam Kisiel, OSU; Adam.Kisiel@cern.ch
7 //------------------------------------------------------
8 #ifndef ALIANALYSISTASKFEMTO_H
9 #define ALIANALYSISTASKFEMTO_H
10
11 #include "TH1.h"
12 #include "TString.h"
13
14 #include "AliESDInputHandler.h"
15 #include "AliAODHandler.h"
16 #include "AliAODInputHandler.h"
17 #include "AliMCEventHandler.h"
18 #include "AliESDEvent.h"
19 #include "AliAODEvent.h"
20 #include "AliMCEvent.h"
21
22 //#include "AliAnalysisTask.h"
23 #include "AliAnalysisTaskSE.h"
24 #include "AliAnalysisManager.h"
25 #include "AliAnalysisDataContainer.h"
26
27 #include "AliFemtoEventReaderESDChain.h"
28 #include "AliFemtoEventReaderESDChainKine.h"
29 #include "AliFemtoEventReaderAODChain.h"
30 #include "AliFemtoEventReaderStandard.h"
31 #include "AliFemtoEventReaderKinematicsChain.h"
32 #include "AliFemtoManager.h"
33
34 #include "AliESDpid.h"
35 #include "AliAODpidUtil.h"
36 #include "AliAODHeader.h"
37
38
39 class AliAnalysisTaskFemto : public AliAnalysisTaskSE { //AliAnalysisTask
40  public:
41   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) {}
42   AliAnalysisTaskFemto(const char *name, const char *aConfigMacro, const char *aConfigParams);
43   AliAnalysisTaskFemto(const char *name, const char *aConfigMacro);
44   AliAnalysisTaskFemto(const AliAnalysisTaskFemto& aFemtoTask);
45   virtual ~AliAnalysisTaskFemto();
46   
47   AliAnalysisTaskFemto& operator=(const AliAnalysisTaskFemto& aFemtoTask);
48
49   virtual void   ConnectInputData(Option_t *);
50   virtual void   CreateOutputObjects();
51   virtual void   Exec(Option_t *option);
52   virtual void   Terminate(Option_t *);
53   virtual void   FinishTaskOutput();
54
55   void SetFemtoReaderESD(AliFemtoEventReaderESDChain *aReader);
56   void SetFemtoReaderESDKine(AliFemtoEventReaderESDChainKine *aReader);
57   void SetFemtoReaderAOD(AliFemtoEventReaderAODChain *aReader);
58   void SetFemtoReaderStandard(AliFemtoEventReaderStandard *aReader);
59   void SetFemtoManager(AliFemtoManager *aManager);
60   void SetFemtoReaderKinematics(AliFemtoEventReaderKinematicsChain *aReader);
61
62  private:
63   AliESDEvent                 *fESD;          //! ESD object
64   AliESDpid                   *fESDpid;       //! ESDpid object
65   AliAODEvent                 *fAOD;          //! AOD object
66   AliAODpidUtil               *fAODpidUtil;   // AliAODpidUtil object
67   AliAODHeader                *fAODheader;    //AliAODHeader object (to get reference multiplicity in pp)
68
69   AliStack                    *fStack;        //! Stack from Kinematics
70   TList                       *fOutputList;   //  AliFemto results list
71   AliFemtoEventReader         *fReader;       //! Reference to the reader
72   AliFemtoManager             *fManager;      //! AliFemto top-level manager 
73   int                          fAnalysisType; //  Mark ESD of AOD analysis
74     TString                      fConfigMacro;  //  Config macro location
75     TString                      fConfigParams; //  Config macro parameters
76
77
78   ClassDef(AliAnalysisTaskFemto, 3); // example of analysis
79 };
80
81 #endif
82