2 // This class inspects the event
4 #ifndef ALIFMDMCEVENTINSPECTOR_H
5 #define ALIFMDMCEVENTINSPECTOR_H
7 * @file AliFMDMCEventInspector.h
8 * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
9 * @date Wed Mar 23 14:03:40 2011
14 * @ingroup pwglf_forward_aod
16 #include "AliFMDEventInspector.h"
22 * This class inspects the event
25 * - AliESDFMD object possibly corrected for sharing
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
32 * Note, that these are added to the master output list
34 * @par Corrections used:
37 * @ingroup pwglf_forward_algo
38 * @ingroup pwglf_forward_mc
39 * @ingroup pwglf_forward_aod
41 class AliFMDMCEventInspector : public AliFMDEventInspector
47 AliFMDMCEventInspector();
51 * @param name Name of object
53 AliFMDMCEventInspector(const char* name);
57 * @param o Object to copy from
59 AliFMDMCEventInspector(const AliFMDMCEventInspector& o);
63 virtual ~AliFMDMCEventInspector();
65 * Assignement operator
67 * @param o Object to assign from
69 * @return Reference to this object
71 AliFMDMCEventInspector& operator=(const AliFMDMCEventInspector&);
74 * Initialize the object
76 * @param vtxAxis Vertex axis in use
78 void Init(const TAxis& vtxAxis);
80 * Process MC truth event. Note, returned values are the MC truth
83 * @param event Input event
84 * @param triggers On return, the triggers fired
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
88 * @param b On return, impact parameter [fm] (if available)
89 * @param c On return, centrality estimate [%] (if available)
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)
94 * @return 0 (or kOk) on success, otherwise a bit mask of error codes
96 UInt_t ProcessMC(AliMCEvent* event,
106 * Compare the result of analysing the ESD for
107 * the inclusive charged particle density to analysing
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)
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);
123 * Store information about running conditions in output list
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.
129 * - mc Nothing special, and unique id is 1
131 * @param runNo Run number
133 virtual void StoreInformation(Int_t runNo);
135 * Read the production details
137 * @param event MC event
139 virtual void ReadProductionDetails(AliMCEvent* event);
142 * Check if the event is single diffractive
144 * @param stack Stack of MC particles
145 * @param xiMin Lower cut off
146 * @param xiMax Upper cut off
150 Bool_t IsSingleDiffractive(AliStack* stack,
152 Double_t xiMax=1./81) const;
153 virtual Bool_t CheckFastPartition(bool) const { return false; }
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
164 TString fProduction; // Production information
165 ClassDef(AliFMDMCEventInspector,3); // Inspect the event