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