]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FORWARD/analysis2/AliFMDCorrections.h
Added MC master task
[u/mrichter/AliRoot.git] / PWG2 / FORWARD / analysis2 / AliFMDCorrections.h
CommitLineData
7e4038b5 1#ifndef ALIROOT_PWG2_FORWARD_ANALYSIS2_ALIFMDCORRECTIONS_H
2#define ALIROOT_PWG2_FORWARD_ANALYSIS2_ALIFMDCORRECTIONS_H
3#include <TNamed.h>
4#include <TList.h>
5#include "AliForwardUtil.h"
7e4038b5 6class TH2D;
7
8/**
219882ab 9 * @defgroup pwg2_forward_algo Algorithms
10 *
11 * @ingroup pwg2_forward
12 */
13/**
14 * This class calculates the exclusive charged particle density
7e4038b5 15 * in each for the 5 FMD rings.
16 *
17 * @par Input:
219882ab 18 * - 5 RingHistos objects - each with a number of vertex dependent
19 * 2D histograms of the inclusive charge particle density
7e4038b5 20 *
21 * @par Output:
22 * - 5 RingHistos objects - each with a number of vertex dependent
219882ab 23 * 2D histograms of the exclusive charge particle density
7e4038b5 24 *
25 * @par Corrections used:
219882ab 26 * - AliFMDCorrSecondaryMap;
27 * - AliFMDCorrVertexBias
28 * - AliFMDCorrMergingEfficiency
7e4038b5 29 *
219882ab 30 * @ingroup pwg2_forward_algo
7e4038b5 31 */
32class AliFMDCorrections : public TNamed
33{
34public:
35 /**
36 * Constructor
37 */
38 AliFMDCorrections();
39 /**
40 * Constructor
41 *
42 * @param name Name of object
43 */
44 AliFMDCorrections(const char* name);
45 /**
46 * Copy constructor
47 *
48 * @param o Object to copy from
49 */
50 AliFMDCorrections(const AliFMDCorrections& o);
51 /**
52 * Destructor
53 */
54 virtual ~AliFMDCorrections();
55 /**
56 * Assignement operator
57 *
58 * @param o Object to assign from
59 *
60 * @return Reference to this object
61 */
62 AliFMDCorrections& operator=(const AliFMDCorrections&);
63 /**
64 * Do the calculations
65 *
66 * @param hists Cache of histograms
67 * @param vtxBin Vertex bin
68 *
69 * @return true on successs
70 */
0bd4b00f 71 virtual Bool_t Correct(AliForwardUtil::Histos& hists, UShort_t vtxBin);
7e4038b5 72 /**
73 * Scale the histograms to the total number of events
74 *
c389303e 75 * @param dir Where the output is stored
7e4038b5 76 * @param nEvents Number of events
77 */
219882ab 78 virtual void ScaleHistograms(TList* dir, Int_t nEvents);
7e4038b5 79 /**
80 * Output diagnostic histograms to directory
81 *
82 * @param dir List to write in
83 */
219882ab 84 virtual void DefineOutput(TList* dir);
8dc20805 85 /**
86 * Set the debug level. The higher the value the more output
87 *
88 * @param dbg Debug level
89 */
90 void SetDebug(Int_t dbg=1) { fDebug = dbg; }
0bd4b00f 91 /**
92 * Print information
93 *
94 * @param option Not used
95 */
96 void Print(Option_t* option="") const;
7e4038b5 97protected:
98 /**
99 * Internal data structure to keep track of the histograms
100 */
9d99b0dd 101 struct RingHistos : public AliForwardUtil::RingHistos
7e4038b5 102 {
103 /**
104 * Default CTOR
105 */
106 RingHistos();
107 /**
108 * Constructor
109 *
110 * @param d detector
111 * @param r ring
112 */
113 RingHistos(UShort_t d, Char_t r);
114 /**
115 * Copy constructor
116 *
117 * @param o Object to copy from
118 */
119 RingHistos(const RingHistos& o);
120 /**
121 * Assignment operator
122 *
123 * @param o Object to assign from
124 *
125 * @return Reference to this
126 */
127 RingHistos& operator=(const RingHistos& o);
128 /**
129 * Destructor
130 */
131 ~RingHistos();
c389303e 132 /**
133 * Make output
134 *
135 * @param dir Where to put it
136 */
7e4038b5 137 void Output(TList* dir);
9d99b0dd 138 /**
139 * Scale the histograms to the total number of events
140 *
c389303e 141 * @param dir where the output is stored
9d99b0dd 142 * @param nEvents Number of events
143 */
144 void ScaleHistograms(TList* dir, Int_t nEvents);
7e4038b5 145 TH2D* fDensity; // Distribution primary Nch
9d99b0dd 146 ClassDef(RingHistos,1);
7e4038b5 147 };
148 /**
149 * Get the ring histogram container
150 *
151 * @param d Detector
152 * @param r Ring
153 *
154 * @return Ring histogram container
155 */
156 RingHistos* GetRingHistos(UShort_t d, Char_t r) const;
157
158 TList fRingHistos; // List of histogram containers
8dc20805 159 Int_t fDebug; // Debug level
7e4038b5 160
161 ClassDef(AliFMDCorrections,1); // Calculate Nch density
162};
163
164#endif
165// Local Variables:
166// mode: C++
167// End:
168