]>
Commit | Line | Data |
---|---|---|
7984e5f7 | 1 | // |
2 | // Class to do the sharing correction for MC data. | |
3 | // | |
dc0b1641 | 4 | #ifndef ALIFMDMCSHARINGFILTER_H |
5 | #define ALIFMDMCSHARINGFILTER_H | |
6 | #include "AliFMDSharingFilter.h" | |
7 | class AliMCEvent; | |
8 | ||
9 | /** | |
10 | * Class to do the sharing correction for MC data. | |
11 | * | |
12 | * @par Input: | |
13 | * - AliESDFMD object - from reconstruction | |
7984e5f7 | 14 | * - Kinematics |
15 | * - Track-References | |
dc0b1641 | 16 | * |
17 | * @par Output: | |
18 | * - AliESDFMD object - copy of input, but with signals merged | |
19 | * | |
20 | * @par Corrections used: | |
7984e5f7 | 21 | * - None |
dc0b1641 | 22 | * |
23 | * @par Histograms: | |
24 | * - For each ring (FMD1i, FMD2i, FMD2o, FMD3i, FMD3o) the distribution of | |
25 | * signals before and after the filter. | |
26 | * - For each ring (see above), an array of distributions of number of | |
27 | * hit strips for each vertex bin (if enabled - see Init method) | |
28 | * | |
29 | * | |
30 | * @ingroup pwg2_forward_algo | |
31 | * @ingroup pwg2_forward_mc | |
32 | */ | |
33 | class AliFMDMCSharingFilter : public AliFMDSharingFilter | |
34 | { | |
35 | public: | |
36 | /** | |
37 | * Destructor | |
38 | */ | |
39 | virtual ~AliFMDMCSharingFilter(); | |
40 | /** | |
41 | * Default Constructor - do not use | |
42 | */ | |
7984e5f7 | 43 | AliFMDMCSharingFilter() |
44 | : AliFMDSharingFilter(), | |
45 | fFMD1i(0), | |
46 | fFMD2i(0), | |
47 | fFMD2o(0), | |
48 | fFMD3i(0), | |
49 | fFMD3o(0), | |
50 | fSumEta(0) | |
51 | {} | |
dc0b1641 | 52 | /** |
53 | * Constructor | |
54 | * | |
55 | * @param title Title of object - not significant | |
56 | */ | |
57 | AliFMDMCSharingFilter(const char* title); | |
58 | /** | |
59 | * Copy constructor | |
60 | * | |
61 | * @param o Object to copy from | |
62 | */ | |
63 | AliFMDMCSharingFilter(const AliFMDMCSharingFilter& o); | |
64 | /** | |
65 | * Assignment operator | |
66 | * | |
67 | * @param o Object to assign from | |
68 | * | |
69 | * @return Reference to this | |
70 | */ | |
71 | AliFMDMCSharingFilter& operator=(const AliFMDMCSharingFilter& o); | |
72 | /** | |
4cbdf467 | 73 | * Filter the input kinematics and track references, using |
74 | * some of the ESD information | |
dc0b1641 | 75 | * |
4cbdf467 | 76 | * @param input Input ESD event |
77 | * @param event Input MC event | |
78 | * @param vz Vertex position | |
79 | * @param output Output ESD-like object | |
80 | * @param primary Per-event histogram of primaries | |
81 | * | |
82 | * @return True on succes, false otherwise | |
dc0b1641 | 83 | */ |
84 | Bool_t FilterMC(const AliESDFMD& input, | |
85 | const AliMCEvent& event, | |
86 | Double_t vz, | |
4cbdf467 | 87 | AliESDFMD& output, |
88 | TH2D* primary); | |
dc0b1641 | 89 | /** |
90 | * Compare the result of merging to the monte-carlo truth. This | |
91 | * fills the correlation histograms | |
92 | * | |
93 | * @param esd ESD after sharing correction | |
94 | * @param mc MC ESD | |
95 | */ | |
96 | void CompareResults(const AliESDFMD& esd, const AliESDFMD& mc); | |
97 | ||
98 | /** | |
99 | * Define the output histograms. These are put in a sub list of the | |
100 | * passed list. The histograms are merged before the parent task calls | |
101 | * AliAnalysisTaskSE::Terminate | |
102 | * | |
103 | * @param dir Directory to add to | |
104 | */ | |
105 | void DefineOutput(TList* dir); | |
106 | /** | |
107 | * Scale the histograms to the total number of events | |
108 | * | |
109 | * @param dir Where the output is | |
110 | * @param nEvents Number of events | |
111 | */ | |
112 | void ScaleHistograms(TList* dir, Int_t nEvents); | |
113 | /** | |
114 | * Print information | |
115 | * | |
116 | * @param option Not used | |
117 | */ | |
118 | void Print(Option_t* option="") const; | |
119 | protected: | |
7984e5f7 | 120 | /** |
121 | * Store a particle hit in FMD<i>dr</i>[<i>s,t</i>] in @a output | |
122 | * | |
123 | * @param d Detector | |
124 | * @param r Ring | |
125 | * @param s Sector | |
126 | * @param t Strip | |
127 | * @param output Output ESD object | |
128 | */ | |
dc0b1641 | 129 | void StoreParticle(UShort_t d, Char_t r, UShort_t s, UShort_t t, |
130 | AliESDFMD& output) const; | |
131 | TH2D* fFMD1i; // ESD-MC correlation | |
132 | TH2D* fFMD2i; // ESD-MC correlation | |
133 | TH2D* fFMD2o; // ESD-MC correlation | |
134 | TH2D* fFMD3i; // ESD-MC correlation | |
135 | TH2D* fFMD3o; // ESD-MC correlation | |
136 | TH1D* fSumEta; // MC dN/deta | |
137 | ||
138 | ClassDef(AliFMDMCSharingFilter,1); // | |
139 | }; | |
140 | ||
141 | #endif | |
142 | // Local Variables: | |
143 | // mode: C++ | |
144 | // End: |