]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FORWARD/analysis2/AliFMDMCEventInspector.h
Some fixes for the QA train:
[u/mrichter/AliRoot.git] / PWG2 / 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 *
14 * @ingroup pwg2_forward_aod
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 *
37 * @ingroup pwg2_forward_algo
ffca499d 38 * @ingroup pwg2_forward_mc
39 * @ingroup pwg2_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 */
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 138protected:
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