Added some more scripts
[u/mrichter/AliRoot.git] / PWG2 / FORWARD / analysis2 / AliForwardMCCorrections.h
1 #ifndef ALIROOT_PWG2_FORWARD_ALIFORWARDCORRECTIONS_H
2 #define ALIROOT_PWG2_FORWARD_ALIFORWARDCORRECTIONS_H
3 #include <AliAnalysisTaskSE.h>
4 #include "AliForwardUtil.h"
5 #include "AliFMDSharingFilter.h"
6 #include "AliFMDDensityCalculator.h"
7 #include "AliFMDCorrections.h"
8 #include "AliFMDHistCollector.h"
9 #include "AliAODForwardMult.h"
10 #include <AliESDFMD.h>
11 #include <TH1I.h>
12 class AliFMDAnaParameters;
13 class AliESDEvent;
14 class TH2D;
15 class TList;
16 class TTree;
17
18
19 /** 
20  * Calculate the corrections in the forward regions
21  * 
22  * @par Inputs: 
23  *   - AliESDEvent 
24  *
25  * @par Outputs: 
26  *   - AliAODForwardMult 
27  * 
28  * @par Histograms 
29  *   
30  * @par Corrections used 
31  * 
32  * @ingroup pwg2_forward_analysis 
33  * 
34  */
35 class AliForwardMCCorrections : public AliAnalysisTaskSE
36 {
37 public:
38   /** 
39    * Constructor 
40    * 
41    * @param name Name of task 
42    */
43   AliForwardMCCorrections(const char* name);
44   /** 
45    * Constructor
46    */
47   AliForwardMCCorrections();
48   /** 
49    * Copy constructor 
50    * 
51    * @param o Object to copy from 
52    */
53   AliForwardMCCorrections(const AliForwardMCCorrections& o);
54   /** 
55    * Assignment operator 
56    * 
57    * @param o Object to assign from 
58    * 
59    * @return Reference to this object 
60    */
61   AliForwardMCCorrections& operator=(const AliForwardMCCorrections& o);
62   /** 
63    * @{ 
64    * @name Interface methods 
65    */
66   /** 
67    * Initialize the task 
68    * 
69    */
70   virtual void Init();
71   /** 
72    * Create output objects 
73    * 
74    */
75   virtual void UserCreateOutputObjects();
76   /** 
77    * Process each event 
78    *
79    * @param option Not used
80    */  
81   virtual void UserExec(Option_t* option);
82   /** 
83    * End of job
84    * 
85    * @param option Not used 
86    */
87   virtual void Terminate(Option_t* option);
88   /** 
89    * @} 
90    */
91   void         Print(Option_t* option="") const;
92
93   void SetVertexAxis(Int_t nBins, Double_t vzMin, Double_t vzMax=-1000000);
94   void SetVertexAxis(const TAxis& axis);
95   void SetEtaAxis(Int_t nBins, Double_t etaMin, Double_t etaMax=-1000000);
96   void SetEtaAxis(const TAxis& axis);
97 protected: 
98   TH2D*  GetVertexProj(Int_t v, TH3D* src) const;
99
100   TH1I*  fHEvents;           // All Events
101   TH1I*  fHEventsTr;         // Histogram of events w/trigger
102   TH1I*  fHEventsTrVtx;      // Events w/trigger and vertex 
103   TH1I*  fHEventsVtx;        // Events w/vertex 
104   TH1I*  fHTriggers;         // Triggers
105   TH3D*  fPrimaryInnerAll;   // Distribution of primaries - all events
106   TH3D*  fPrimaryOuterAll;   // Distribution of primaries - all events
107   TH3D*  fPrimaryInnerTrVtx; // Distribution of primaries - trg+vtx events
108   TH3D*  fPrimaryOuterTrVtx; // Distribution of primaries - trg+vtx events
109   TH3D*  fHitsFMD1i;         // Distribution of FMD1i hits 
110   TH3D*  fHitsFMD2i;         // Distribution of FMD2i hits 
111   TH3D*  fHitsFMD2o;         // Distribution of FMD2o hits 
112   TH3D*  fHitsFMD3i;         // Distribution of FMD3i hits 
113   TH3D*  fHitsFMD3o;         // Distribution of FMD3o hits 
114   TH1D*  fStripsFMD1i;       // Distribution of FMD1i # strips hit
115   TH1D*  fStripsFMD2i;       // Distribution of FMD2i # strips hit 
116   TH1D*  fStripsFMD2o;       // Distribution of FMD2o # strips hit 
117   TH1D*  fStripsFMD3i;       // Distribution of FMD3i # strips hit 
118   TH1D*  fStripsFMD3o;       // Distribution of FMD3o # strips hit 
119   TAxis  fVtxAxis;           // Vertex axis 
120   TAxis  fEtaAxis;           // Eta axis 
121
122   TList* fList; // Output list 
123
124   ClassDef(AliForwardMCCorrections,1) // Forward corrections class
125 };
126
127 #endif
128 // Local Variables:
129 //  mode: C++
130 // End:
131