]>
Commit | Line | Data |
---|---|---|
e1f47419 | 1 | // |
2 | // This class inspects the event | |
3 | // | |
4 | #ifndef ALIFMDMCEVENTINSPECTOR_H | |
5 | #define ALIFMDMCEVENTINSPECTOR_H | |
ffca499d | 6 | /** |
7 | * @file AliFMDMCEventInspector.h | |
8 | * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk> | |
9 | * @date Wed Mar 23 14:03:40 2011 | |
10 | * | |
11 | * @brief | |
12 | * | |
13 | * | |
14 | * @ingroup pwg2_forward_aod | |
15 | */ | |
e1f47419 | 16 | #include "AliFMDEventInspector.h" |
17 | class AliMCEvent; | |
e308a636 | 18 | class TH2F; |
1f480471 | 19 | class AliStack; |
e1f47419 | 20 | |
21 | /** | |
22 | * This class inspects the event | |
23 | * | |
24 | * @par Input: | |
25 | * - AliESDFMD object possibly corrected for sharing | |
26 | * | |
27 | * @par Output: | |
28 | * - A histogram of v_z of events with triggers. | |
29 | * - A histogram of v_z of events with vertex and triggers | |
30 | * - A histogram of trigger counters | |
31 | * | |
32 | * Note, that these are added to the master output list | |
33 | * | |
34 | * @par Corrections used: | |
35 | * - None | |
36 | * | |
37 | * @ingroup pwg2_forward_algo | |
ffca499d | 38 | * @ingroup pwg2_forward_mc |
39 | * @ingroup pwg2_forward_aod | |
e1f47419 | 40 | */ |
41 | class AliFMDMCEventInspector : public AliFMDEventInspector | |
42 | { | |
43 | public: | |
44 | /** | |
45 | * Constructor | |
46 | */ | |
47 | AliFMDMCEventInspector(); | |
48 | /** | |
49 | * Constructor | |
50 | * | |
51 | * @param name Name of object | |
52 | */ | |
53 | AliFMDMCEventInspector(const char* name); | |
54 | /** | |
55 | * Copy constructor | |
56 | * | |
57 | * @param o Object to copy from | |
58 | */ | |
59 | AliFMDMCEventInspector(const AliFMDMCEventInspector& o); | |
60 | /** | |
61 | * Destructor | |
62 | */ | |
63 | virtual ~AliFMDMCEventInspector(); | |
64 | /** | |
65 | * Assignement operator | |
66 | * | |
67 | * @param o Object to assign from | |
68 | * | |
69 | * @return Reference to this object | |
70 | */ | |
71 | AliFMDMCEventInspector& operator=(const AliFMDMCEventInspector&); | |
72 | ||
73 | /** | |
74 | * Initialize the object | |
75 | * | |
76 | * @param vtxAxis Vertex axis in use | |
77 | */ | |
78 | void Init(const TAxis& vtxAxis); | |
79 | /** | |
80 | * Process MC truth event. Note, returned values are the MC truth | |
81 | * values | |
82 | * | |
83 | * @param event Input event | |
84 | * @param triggers On return, the triggers fired | |
e1f47419 | 85 | * @param ivz On return, the found vertex bin (1-based). A zero |
86 | * means outside of the defined vertex range | |
87 | * @param vz On return, the z position of the interaction | |
ffca499d | 88 | * @param b On return, impact parameter [fm] (if available) |
89 | * @param npart On return, number of participants (if available) | |
90 | * @param nbin On return, number of binary collisions (if available) | |
91 | * @param phiR On return, reaction plane angle (if available) | |
e1f47419 | 92 | * |
93 | * @return 0 (or kOk) on success, otherwise a bit mask of error codes | |
94 | */ | |
95 | UInt_t ProcessMC(AliMCEvent* event, | |
96 | UInt_t& triggers, | |
97 | UShort_t& ivz, | |
98 | Double_t& vz, | |
99 | Double_t& b, | |
e308a636 | 100 | Int_t& npart, |
101 | Int_t& nbin, | |
e1f47419 | 102 | Double_t& phiR); |
e308a636 | 103 | /** |
104 | * Compare the result of analysing the ESD for | |
105 | * the inclusive charged particle density to analysing | |
106 | * MC truth | |
107 | * | |
ffca499d | 108 | * @param vz Found @f$ v_z@f$ |
109 | * @param trueVz True @f$ v_z@f$ | |
110 | * @param cent Centrality | |
111 | * @param b Impact parameter (if available) | |
112 | * @param npart Number of participants (if available) | |
113 | * @param nbin Number of binary collisions (if available) | |
e308a636 | 114 | * |
ffca499d | 115 | * @return true |
e308a636 | 116 | */ |
117 | virtual Bool_t CompareResults(Double_t vz, Double_t trueVz, | |
118 | Double_t cent, Double_t b, | |
119 | Int_t npart, Int_t nbin); | |
f7cfc454 | 120 | /** |
121 | * Store information about running conditions in output list | |
122 | * | |
123 | * The 3 TNamed objects from AliFMDEventInspector::StoreInformation | |
124 | * are defined. In addition, a fourth TNamed object is defined. | |
125 | * The presence of this indicate MC data. | |
126 | * | |
127 | * - mc Nothing special, and unique id is 1 | |
9b2f2e39 | 128 | * |
129 | * @param runNo Run number | |
f7cfc454 | 130 | */ |
9b2f2e39 | 131 | virtual void StoreInformation(Int_t runNo); |
f7cfc454 | 132 | /** |
133 | * Read the production details | |
134 | * | |
135 | * @param event MC event | |
136 | */ | |
137 | virtual void ReadProductionDetails(AliMCEvent* event); | |
e1f47419 | 138 | protected: |
139 | /** | |
140 | * Read centrality from event | |
141 | * | |
142 | * @param esd Event | |
143 | * @param cent On return, the centrality or negative if not found | |
ffca499d | 144 | * @param qual Quality flag |
e1f47419 | 145 | * |
146 | * @return False on error, true otherwise | |
147 | */ | |
e308a636 | 148 | virtual Bool_t ReadCentrality(const AliESDEvent* esd, Double_t& cent, |
149 | UShort_t& qual) const; | |
1f480471 | 150 | /** |
151 | * Check if the event is single diffractive | |
152 | * | |
153 | * @param stack Stack of MC particles | |
154 | * @param xiMin Lower cut off | |
155 | * @param xiMax Upper cut off | |
156 | * | |
157 | * @return | |
158 | */ | |
159 | Bool_t IsSingleDiffractive(AliStack* stack, | |
160 | Double_t xiMin=0, | |
161 | Double_t xiMax=1./81) const; | |
e308a636 | 162 | TH1F* fHVertex; // Histogram of vertex |
163 | TH1F* fHPhiR; // Histogram of event plane | |
164 | TH1F* fHB; // Histogram of impact parameter | |
165 | TH2F* fHBvsPart; // Impact parameter vs # participants | |
166 | TH2F* fHBvsBin; // Impact parameter vs # participants | |
167 | TH2F* fHBvsCent; // Impact parameter vs centrality | |
168 | TH2F* fHVzComp; // True vs reconstructed vz | |
169 | TH2F* fHCentVsPart; // Centrality versus # participants | |
170 | TH2F* fHCentVsBin; // Centrality versus # binary collisions | |
f7cfc454 | 171 | TString fProduction; // Production information |
172 | ClassDef(AliFMDMCEventInspector,3); // Inspect the event | |
e1f47419 | 173 | }; |
174 | ||
175 | #endif | |
176 | // Local Variables: | |
177 | // mode: C++ | |
178 | // End: | |
179 | ||
180 | ||
181 |