2 // Class to do the sharing correction for MC data.
4 #ifndef ALIFMDMCSHARINGFILTER_H
5 #define ALIFMDMCSHARINGFILTER_H
6 #include "AliFMDSharingFilter.h"
10 * Class to do the sharing correction for MC data.
13 * - AliESDFMD object - from reconstruction
18 * - AliESDFMD object - copy of input, but with signals merged
20 * @par Corrections used:
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)
30 * @ingroup pwg2_forward_algo
31 * @ingroup pwg2_forward_mc
33 class AliFMDMCSharingFilter : public AliFMDSharingFilter
39 virtual ~AliFMDMCSharingFilter();
41 * Default Constructor - do not use
43 AliFMDMCSharingFilter()
44 : AliFMDSharingFilter(),
55 * @param title Title of object - not significant
57 AliFMDMCSharingFilter(const char* title);
61 * @param o Object to copy from
63 AliFMDMCSharingFilter(const AliFMDMCSharingFilter& o);
67 * @param o Object to assign from
69 * @return Reference to this
71 AliFMDMCSharingFilter& operator=(const AliFMDMCSharingFilter& o);
73 * Filter the input kinematics and track references, using
74 * some of the ESD information
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
82 * @return True on succes, false otherwise
84 Bool_t FilterMC(const AliESDFMD& input,
85 const AliMCEvent& event,
90 * Compare the result of merging to the monte-carlo truth. This
91 * fills the correlation histograms
93 * @param esd ESD after sharing correction
96 void CompareResults(const AliESDFMD& esd, const AliESDFMD& mc);
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
103 * @param dir Directory to add to
105 void DefineOutput(TList* dir);
107 * Scale the histograms to the total number of events
109 * @param dir Where the output is
110 * @param nEvents Number of events
112 void ScaleHistograms(TList* dir, Int_t nEvents);
116 * @param option Not used
118 void Print(Option_t* option="") const;
121 * Store a particle hit in FMD<i>dr</i>[<i>s,t</i>] in @a output
127 * @param output Output ESD object
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
138 ClassDef(AliFMDMCSharingFilter,1); //