]>
Commit | Line | Data |
---|---|---|
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 | 6 | class 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 | */ |
32 | class AliFMDCorrections : public TNamed | |
33 | { | |
34 | public: | |
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 | 97 | protected: |
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 |