2 // Class to do the sharing correction for MC data.
4 #ifndef ALIFMDMCSHARINGFILTER_H
5 #define ALIFMDMCSHARINGFILTER_H
7 * @file AliFMDMCSharingFilter.h
8 * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
9 * @date Wed Mar 23 14:03:47 2011
14 * @ingroup pwglf_forward_aod
16 #include "AliFMDSharingFilter.h"
17 #include "AliFMDMCTrackDensity.h"
20 * Class to do the sharing correction for MC data.
23 * - AliESDFMD object - from reconstruction
28 * - AliESDFMD object - copy of input, but with signals merged
30 * @par Corrections used:
34 * - For each ring (FMD1i, FMD2i, FMD2o, FMD3i, FMD3o) the distribution of
35 * signals before and after the filter.
36 * - For each ring (see above), an array of distributions of number of
37 * hit strips for each vertex bin (if enabled - see SetupForData method)
40 * @ingroup pwglf_forward_algo
41 * @ingroup pwglf_forward_mc
42 * @ingroup pwglf_forward_aod
44 class AliFMDMCSharingFilter : public AliFMDSharingFilter
50 virtual ~AliFMDMCSharingFilter();
52 * Default Constructor - do not use
54 AliFMDMCSharingFilter()
55 : AliFMDSharingFilter(),
67 * @param title Title of object - not significant
69 AliFMDMCSharingFilter(const char* title);
73 * @param o Object to copy from
75 AliFMDMCSharingFilter(const AliFMDMCSharingFilter& o);
79 * @param o Object to assign from
81 * @return Reference to this
83 AliFMDMCSharingFilter& operator=(const AliFMDMCSharingFilter& o);
86 * Return the track density calculator
88 * @return Track density calculator
90 const AliFMDMCTrackDensity& GetTrackDensity() const { return fTrackDensity; }
92 * Return the track density calculator
94 * @return Track density calculator
96 AliFMDMCTrackDensity& GetTrackDensity() { return fTrackDensity; }
99 * Filter the input kinematics and track references, using
100 * some of the ESD information
102 * @param input Input ESD event
103 * @param event Input MC event
104 * @param vz Vertex position
105 * @param output Output ESD-like object
106 * @param primary Per-event histogram of primaries
108 * @return True on succes, false otherwise
110 Bool_t FilterMC(const AliESDFMD& input,
111 const AliMCEvent& event,
116 * Compare the result of merging to the monte-carlo truth. This
117 * fills the correlation histograms
119 * @param esd ESD after sharing correction
122 void CompareResults(const AliESDFMD& esd, const AliESDFMD& mc);
125 * Define the output histograms. These are put in a sub list of the
126 * passed list. The histograms are merged before the parent task calls
127 * AliAnalysisTaskSE::Terminate
129 * @param dir Directory to add to
131 void CreateOutputObjects(TList* dir);
133 * Scale the histograms to the total number of events
135 * @param dir Where the output is
136 * @param output Output list
137 * @param nEvents Number of events
139 void Terminate(const TList* dir, TList* output, Int_t nEvents);
143 * @param option Not used
145 void Print(Option_t* option="") const;
147 virtual void SetDebug(Int_t dbg=1);
149 AliFMDMCTrackDensity fTrackDensity;
150 TH2D* fFMD1i; // ESD-MC correlation
151 TH2D* fFMD2i; // ESD-MC correlation
152 TH2D* fFMD2o; // ESD-MC correlation
153 TH2D* fFMD3i; // ESD-MC correlation
154 TH2D* fFMD3o; // ESD-MC correlation
155 // TH2I* fOperComp; // Operation vs # trackrefs
156 ClassDef(AliFMDMCSharingFilter,3); //