]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/FORWARD/analysis2/AliFMDMCEventInspector.h
flat friend update
[u/mrichter/AliRoot.git] / PWGLF / FORWARD / analysis2 / AliFMDMCEventInspector.h
CommitLineData
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 *
bd6f5206 14 * @ingroup pwglf_forward_aod
ffca499d 15 */
e1f47419 16#include "AliFMDEventInspector.h"
17class AliMCEvent;
e308a636 18class TH2F;
1f480471 19class 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 *
bd6f5206 37 * @ingroup pwglf_forward_algo
38 * @ingroup pwglf_forward_mc
39 * @ingroup pwglf_forward_aod
e1f47419 40 */
41class AliFMDMCEventInspector : public AliFMDEventInspector
42{
43public:
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 */
5934a3e3 78 void SetupForData(const TAxis& vtxAxis);
e1f47419 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)
66cf95f2 89 * @param c On return, centrality estimate [%] (if available)
ffca499d 90 * @param npart On return, number of participants (if available)
91 * @param nbin On return, number of binary collisions (if available)
92 * @param phiR On return, reaction plane angle (if available)
e1f47419 93 *
94 * @return 0 (or kOk) on success, otherwise a bit mask of error codes
95 */
96 UInt_t ProcessMC(AliMCEvent* event,
97 UInt_t& triggers,
98 UShort_t& ivz,
99 Double_t& vz,
100 Double_t& b,
241cca4d 101 Double_t& c,
e308a636 102 Int_t& npart,
103 Int_t& nbin,
e1f47419 104 Double_t& phiR);
e308a636 105 /**
106 * Compare the result of analysing the ESD for
107 * the inclusive charged particle density to analysing
108 * MC truth
109 *
ffca499d 110 * @param vz Found @f$ v_z@f$
111 * @param trueVz True @f$ v_z@f$
112 * @param cent Centrality
73b32206 113 * @param mcC Centrality from Impact par.
ffca499d 114 * @param b Impact parameter (if available)
115 * @param npart Number of participants (if available)
116 * @param nbin Number of binary collisions (if available)
e308a636 117 *
ffca499d 118 * @return true
e308a636 119 */
120 virtual Bool_t CompareResults(Double_t vz, Double_t trueVz,
73b32206 121 Double_t cent, Double_t mcC,
122 Double_t b,
e308a636 123 Int_t npart, Int_t nbin);
f7cfc454 124 /**
125 * Read the production details
126 *
127 * @param event MC event
128 */
129 virtual void ReadProductionDetails(AliMCEvent* event);
e1f47419 130protected:
73b32206 131 /**
132 * Read centrality from event
133 *
134 * @param esd Event
135 * @param cent On return, the centrality or negative if not found
136 * @param qual On return, centrality quality flag
137 *
138 * @return False on error, true otherwise
139 */
140 virtual Bool_t ReadCentrality(const AliESDEvent& esd, Double_t& cent,
141 UShort_t& qual) const;
1f480471 142 /**
143 * Check if the event is single diffractive
144 *
145 * @param stack Stack of MC particles
146 * @param xiMin Lower cut off
147 * @param xiMax Upper cut off
148 *
149 * @return
150 */
151 Bool_t IsSingleDiffractive(AliStack* stack,
152 Double_t xiMin=0,
153 Double_t xiMax=1./81) const;
241cca4d 154 virtual Bool_t CheckFastPartition(bool) const { return false; }
155
e308a636 156 TH1F* fHVertex; // Histogram of vertex
157 TH1F* fHPhiR; // Histogram of event plane
158 TH1F* fHB; // Histogram of impact parameter
73b32206 159 TH1F* fHMcC; // Histogram of centrality derived from imp. par.
e308a636 160 TH2F* fHBvsPart; // Impact parameter vs # participants
161 TH2F* fHBvsBin; // Impact parameter vs # participants
162 TH2F* fHBvsCent; // Impact parameter vs centrality
163 TH2F* fHVzComp; // True vs reconstructed vz
164 TH2F* fHCentVsPart; // Centrality versus # participants
165 TH2F* fHCentVsBin; // Centrality versus # binary collisions
73b32206 166 TH2F* fHCentVsMcC; // Compare centralities
f7cfc454 167 TString fProduction; // Production information
5934a3e3 168 ClassDef(AliFMDMCEventInspector,4); // Inspect the event
e1f47419 169};
170
171#endif
172// Local Variables:
173// mode: C++
174// End:
175
176
177