Adding AOD task for FMDEventPlaneFinder
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / AliFMDEventPlaneTask.h
1 //
2 // Calculate the event plane in the forward regions using the FMD 
3 //
4 #ifndef ALIFMDEVENTPLANETASK_H
5 #define ALIFMDEVENTPLANETASK_H
6 /**
7  * @file AliFMDEventPlaneTask.h
8  * @author Alexander Hansen
9  * @date   Tue Feb 21 2012
10  * 
11  * @brief
12  * 
13  * 
14  * @ingroup pwglf_forward_flow
15  */
16 #include "AliAnalysisTaskSE.h"
17 #include "AliFMDEventPlaneFinder.h"
18 class AliAODForwardMult;
19 class TH1D;
20 class TH2D;
21
22  /**
23  * @defgroup pwg2_forward_tasks_flow Flow tasks 
24  * @ingroup pwg2_forward_tasks
25  */
26 /**
27  * Calculate the event plane in the forward regions using the FMD
28  *
29  * @par Inputs:
30  *   - AliAODEvent
31  *
32  * Outputs:
33  *   - AnalysisResults.root
34  *
35  * @ingroup pwglf_forward_tasks_flow
36  * @ingroup pwglf_forward_flow
37  *
38  *
39  */
40 class AliFMDEventPlaneTask : public AliAnalysisTaskSE
41 {
42 public:
43   /** 
44    * Constructor 
45    */
46   AliFMDEventPlaneTask();
47   /** 
48    * Constructor
49    * 
50    * @param name Name of task 
51    */
52   AliFMDEventPlaneTask(const char* name);
53   /**
54    * Destructor
55    */
56   virtual ~AliFMDEventPlaneTask() {}
57   /** 
58    * @{ 
59    * @name Task interface methods 
60    */
61   /** 
62    * Create output objects 
63    */
64   virtual void UserCreateOutputObjects();
65   /**
66    * Initialize the task
67    */
68   virtual void Init() {} 
69   /** 
70    * Process each event 
71    *
72    * @param option Not used
73    */  
74   virtual void UserExec(Option_t *option);
75   /** 
76    * End of job
77    * 
78    * @param option Not used 
79    */
80   virtual void Terminate(Option_t *option);
81  /**
82   * Check AODForwardMult object for trigger, vertex and centrality
83   * returns true if event is OK
84   * 
85   * @param const aodfm
86   * 
87   * @return Bool_t 
88   */
89   Bool_t AODCheck(const AliAODForwardMult* aodfm);
90  /**
91    * Get reference to the EventPlaneFinder algorithm 
92    * 
93    * @return Reference to AliFMDEventPlaneFinder object 
94    */
95   AliFMDEventPlaneFinder& GetEventPlaneFinder() { return fEventPlaneFinder; }
96   /**
97    * Get reference to the EventPlaneFinder algorithm 
98    * 
99    * @return Reference to AliFMDEventPlaneFinder object 
100    */
101   const AliFMDEventPlaneFinder& GetEventPlaneFinder() const { return fEventPlaneFinder; }
102   /*
103    * Set MC input flag - currently does nothing special
104    *
105    * @ param mc MC input flag
106    */
107   void SetMCInput(Bool_t mc = true) { fMC = mc; }
108
109 protected:
110   /** 
111    * Copy constructor 
112    * 
113    * @param o Object to copy from 
114    */
115   AliFMDEventPlaneTask(const AliFMDEventPlaneTask& o);
116   /** 
117    * Assignment operator 
118    * 
119    * @return Reference to this object 
120    */
121   AliFMDEventPlaneTask& operator=(const AliFMDEventPlaneTask&);
122
123   TList*                  fSumList;          //  Sum list
124   TList*                  fOutputList;       //  Output list
125   AliAODEvent*            fAOD;              //  AOD event
126   Bool_t                  fMC;               //  MC input?
127   AliFMDEventPlaneFinder  fEventPlaneFinder; //  Eventplane finder for the FMD
128   Float_t                 fZvertex;          //  Z vertex
129   Double_t                fCent;             //  Centrality
130   TH1D*                   fHistCent;         //  Diagnostics histogram
131   TH1D*                   fHistVertexSel;    //  Diagnostics histogram
132   TH1D*                   fHistVertexAll;    //  Diagnostics histogram
133
134   ClassDef(AliFMDEventPlaneTask, 1); // Analysis task for FMD analysis
135 };
136  
137 #endif
138 // Local Variables:
139 //   mode: C++ 
140 // End: