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 pwg2_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 pwg2_forward_algo
38 * @ingroup pwg2_forward_mc
39 * @ingroup pwg2_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 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)
93 * @return 0 (or kOk) on success, otherwise a bit mask of error codes
95 UInt_t ProcessMC(AliMCEvent* event,
104 * Compare the result of analysing the ESD for
105 * the inclusive charged particle density to analysing
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)
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);
122 * Read centrality from event
125 * @param cent On return, the centrality or negative if not found
126 * @param qual Quality flag
128 * @return False on error, true otherwise
130 virtual Bool_t ReadCentrality(const AliESDEvent* esd, Double_t& cent,
131 UShort_t& qual) const;
133 * Check if the event is single diffractive
135 * @param stack Stack of MC particles
136 * @param xiMin Lower cut off
137 * @param xiMax Upper cut off
141 Bool_t IsSingleDiffractive(AliStack* stack,
143 Double_t xiMax=1./81) const;
144 TH1F* fHVertex; // Histogram of vertex
145 TH1F* fHPhiR; // Histogram of event plane
146 TH1F* fHB; // Histogram of impact parameter
147 TH2F* fHBvsPart; // Impact parameter vs # participants
148 TH2F* fHBvsBin; // Impact parameter vs # participants
149 TH2F* fHBvsCent; // Impact parameter vs centrality
150 TH2F* fHVzComp; // True vs reconstructed vz
151 TH2F* fHCentVsPart; // Centrality versus # participants
152 TH2F* fHCentVsBin; // Centrality versus # binary collisions
153 ClassDef(AliFMDMCEventInspector,2); // Inspect the event