]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/FORWARD/analysis2/AliFMDMCEventInspector.h
Renamed some member functions for more logical names
[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
113 * @param b Impact parameter (if available)
114 * @param npart Number of participants (if available)
115 * @param nbin Number of binary collisions (if available)
e308a636 116 *
ffca499d 117 * @return true
e308a636 118 */
119 virtual Bool_t CompareResults(Double_t vz, Double_t trueVz,
120 Double_t cent, Double_t b,
121 Int_t npart, Int_t nbin);
f7cfc454 122 /**
123 * Store information about running conditions in output list
124 *
125 * The 3 TNamed objects from AliFMDEventInspector::StoreInformation
126 * are defined. In addition, a fourth TNamed object is defined.
127 * The presence of this indicate MC data.
128 *
129 * - mc Nothing special, and unique id is 1
9b2f2e39 130 *
131 * @param runNo Run number
f7cfc454 132 */
9b2f2e39 133 virtual void StoreInformation(Int_t runNo);
f7cfc454 134 /**
135 * Read the production details
136 *
137 * @param event MC event
138 */
139 virtual void ReadProductionDetails(AliMCEvent* event);
e1f47419 140protected:
1f480471 141 /**
142 * Check if the event is single diffractive
143 *
144 * @param stack Stack of MC particles
145 * @param xiMin Lower cut off
146 * @param xiMax Upper cut off
147 *
148 * @return
149 */
150 Bool_t IsSingleDiffractive(AliStack* stack,
151 Double_t xiMin=0,
152 Double_t xiMax=1./81) const;
241cca4d 153 virtual Bool_t CheckFastPartition(bool) const { return false; }
154
e308a636 155 TH1F* fHVertex; // Histogram of vertex
156 TH1F* fHPhiR; // Histogram of event plane
157 TH1F* fHB; // Histogram of impact parameter
158 TH2F* fHBvsPart; // Impact parameter vs # participants
159 TH2F* fHBvsBin; // Impact parameter vs # participants
160 TH2F* fHBvsCent; // Impact parameter vs centrality
161 TH2F* fHVzComp; // True vs reconstructed vz
162 TH2F* fHCentVsPart; // Centrality versus # participants
163 TH2F* fHCentVsBin; // Centrality versus # binary collisions
f7cfc454 164 TString fProduction; // Production information
5934a3e3 165 ClassDef(AliFMDMCEventInspector,4); // Inspect the event
e1f47419 166};
167
168#endif
169// Local Variables:
170// mode: C++
171// End:
172
173
174