]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/FORWARD/analysis2/AliFMDMCSharingFilter.h
Renamed some member functions for more logical names
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / AliFMDMCSharingFilter.h
CommitLineData
7984e5f7 1//
2// Class to do the sharing correction for MC data.
3//
dc0b1641 4#ifndef ALIFMDMCSHARINGFILTER_H
5#define ALIFMDMCSHARINGFILTER_H
ffca499d 6/**
7 * @file AliFMDMCSharingFilter.h
8 * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
9 * @date Wed Mar 23 14:03:47 2011
10 *
11 * @brief
12 *
13 *
bd6f5206 14 * @ingroup pwglf_forward_aod
ffca499d 15 */
dc0b1641 16#include "AliFMDSharingFilter.h"
8d44bcdb 17#include "AliFMDMCTrackDensity.h"
dc0b1641 18
19/**
20 * Class to do the sharing correction for MC data.
21 *
22 * @par Input:
23 * - AliESDFMD object - from reconstruction
7984e5f7 24 * - Kinematics
25 * - Track-References
dc0b1641 26 *
27 * @par Output:
28 * - AliESDFMD object - copy of input, but with signals merged
29 *
30 * @par Corrections used:
7984e5f7 31 * - None
dc0b1641 32 *
33 * @par Histograms:
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
5934a3e3 37 * hit strips for each vertex bin (if enabled - see SetupForData method)
dc0b1641 38 *
39 *
bd6f5206 40 * @ingroup pwglf_forward_algo
41 * @ingroup pwglf_forward_mc
42 * @ingroup pwglf_forward_aod
dc0b1641 43 */
44class AliFMDMCSharingFilter : public AliFMDSharingFilter
45{
46public:
47 /**
48 * Destructor
49 */
50 virtual ~AliFMDMCSharingFilter();
51 /**
52 * Default Constructor - do not use
53 */
7984e5f7 54 AliFMDMCSharingFilter()
55 : AliFMDSharingFilter(),
8d44bcdb 56 fTrackDensity(),
7984e5f7 57 fFMD1i(0),
58 fFMD2i(0),
59 fFMD2o(0),
60 fFMD3i(0),
61 fFMD3o(0),
8d44bcdb 62 fOperComp(0)
7984e5f7 63 {}
dc0b1641 64 /**
65 * Constructor
66 *
67 * @param title Title of object - not significant
68 */
69 AliFMDMCSharingFilter(const char* title);
70 /**
71 * Copy constructor
72 *
73 * @param o Object to copy from
74 */
75 AliFMDMCSharingFilter(const AliFMDMCSharingFilter& o);
76 /**
77 * Assignment operator
78 *
79 * @param o Object to assign from
80 *
81 * @return Reference to this
82 */
83 AliFMDMCSharingFilter& operator=(const AliFMDMCSharingFilter& o);
8d44bcdb 84
85 /**
86 * Return the track density calculator
87 *
88 * @return Track density calculator
89 */
90 const AliFMDMCTrackDensity& GetTrackDensity() const { return fTrackDensity; }
5bb5d1f6 91 /**
8d44bcdb 92 * Return the track density calculator
5bb5d1f6 93 *
8d44bcdb 94 * @return Track density calculator
5bb5d1f6 95 */
8d44bcdb 96 AliFMDMCTrackDensity& GetTrackDensity() { return fTrackDensity; }
97
dc0b1641 98 /**
4cbdf467 99 * Filter the input kinematics and track references, using
100 * some of the ESD information
dc0b1641 101 *
4cbdf467 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
107 *
108 * @return True on succes, false otherwise
dc0b1641 109 */
110 Bool_t FilterMC(const AliESDFMD& input,
111 const AliMCEvent& event,
112 Double_t vz,
4cbdf467 113 AliESDFMD& output,
114 TH2D* primary);
dc0b1641 115 /**
116 * Compare the result of merging to the monte-carlo truth. This
117 * fills the correlation histograms
118 *
119 * @param esd ESD after sharing correction
120 * @param mc MC ESD
121 */
122 void CompareResults(const AliESDFMD& esd, const AliESDFMD& mc);
123
124 /**
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
128 *
129 * @param dir Directory to add to
130 */
5934a3e3 131 void CreateOutputObjects(TList* dir);
dc0b1641 132 /**
133 * Scale the histograms to the total number of events
134 *
135 * @param dir Where the output is
136 * @param nEvents Number of events
137 */
5934a3e3 138 void Terminate(const TList* dir, TList* output, Int_t nEvents);
dc0b1641 139 /**
140 * Print information
141 *
142 * @param option Not used
143 */
144 void Print(Option_t* option="") const;
4bcdcbc1 145
146 virtual void SetDebug(Int_t dbg=1);
dc0b1641 147protected:
8d44bcdb 148 AliFMDMCTrackDensity fTrackDensity;
149 TH2D* fFMD1i; // ESD-MC correlation
150 TH2D* fFMD2i; // ESD-MC correlation
151 TH2D* fFMD2o; // ESD-MC correlation
152 TH2D* fFMD3i; // ESD-MC correlation
153 TH2D* fFMD3o; // ESD-MC correlation
154 TH2I* fOperComp; // Operation vs # trackrefs
5934a3e3 155 ClassDef(AliFMDMCSharingFilter,2); //
dc0b1641 156};
157
158#endif
159// Local Variables:
160// mode: C++
161// End: