2 * @file AliForwardCreateResponseMatrices.h
3 * @author Christian Holm Christensen <cholm@master.hehi.nbi.dk>
4 * @date Thu Feb 7 00:56:02 2013
8 * @ingroup pwglf_forward_multdist
11 * @defgroup pwglf_forward_multdist Multiplicity Distributions
13 * Code to do with @f$P(N_{ch})@f$ analysis
15 * @ingroup pwglf_forward_topical
17 #ifndef ALIFORWARDCREATERESPONSEMATRICES_H
18 #define ALIFORWARDCREATERESPONSEMATRICES_H
20 #include "AliBaseAODTask.h"
25 * Task to make the reponse matrices used by the multiplicity
26 * distibution analysis
28 * @ingroup pwglf_forward Tasks
29 * @ingroup pwglf_forward_multdist
30 * @todo Should not inherit from AliBasedNdetaTask
32 class AliForwardCreateResponseMatrices : public AliBaseAODTask
40 AliForwardCreateResponseMatrices();
45 AliForwardCreateResponseMatrices(const char* name);
51 virtual ~AliForwardCreateResponseMatrices(){}
53 * Embedded Class begins here
55 struct Bin : public TNamed
64 Bin(Double_t etaLow, Double_t etaHigh);
72 Bin&operator=(const Bin&){return*this;}
78 * Define outputs of a single eta bin
80 virtual void CreateOutputObjectss(TList* cont, Int_t max);
82 * Process a single eta bin
84 virtual void Process(TH1D* dndetaForward, TH1D* dndetaCentral, TH1D* normForward, TH1D* normCentral, TH1D* dndetaMC, Double_t VtxZ, Bool_t selectedTrigger, Bool_t isMCNSDm, Bool_t isESDNSD, const AliAODEvent& aodevent);
85 Double_t fEtaLow; // low eta limit
86 Double_t fEtaHigh; // high eta limit
87 TH1D* fHist; // multiplicity histogram
88 TH1D* fHistMC; // multiplicity histogram MC truth primaries
89 TH2D* fAcceptance; // histogram showing the 'holes' in acceptance. BinContent of 1 shows a hole, and BinContent of 10 shows data coverage
90 TH2D* fVtxZvsNdataBins; // VtxZ vs. number of data acceptance bins (normalised to the eta range)
91 TH2D* fResponseMatrix; //Response matrix (MC truth vs. analysed multiplicity)
92 TH2D* fResponseMatrixPlus05; //Response matrix with analysed multiplicity scaled up by 5%
93 TH2D* fResponseMatrixPlus075; //Response matrix with analysed multiplicity scaled up by 7.5%
94 TH2D* fResponseMatrixPlus10; //Response matrix with analysed multiplicity scaled up by 10%
95 TH2D* fResponseMatrixMinus05; //Response matrix with analysed multiplicity scaled down by 5%
96 TH2D* fResponseMatrixMinus075; //Response matrix with analysed multiplicity scaled down by 7.55%
97 TH2D* fResponseMatrixMinus10; //Response matrix with analysed multiplicity scaled down by 10%
98 TH2D* fResponseMatrixMinusSys; //Response matrix with analysed multiplicity scaled up by event mult uncertainty
99 TH2D* fResponseMatrixPlusSys; //Response matrix with analysed multiplicity scaled down by event mult uncertainty
100 TH1D* fESDNSD; //number of events found as NSD by the analysis vs. multiplicity
101 TH1D* fMCNSD; //number of events found as NSD by the MC truth vs. multiplicity
102 TH1D* fMCESDNSD; //number of events found as NSD by both analysis and MC truth vs. multiplicity
103 TH1D* fTriggerBias; // histogram for trigger vertex bias correction
104 ClassDef(Bin,2); // Manager of data
107 * Create Output Objects
111 * Create Output Objects
113 Bool_t PreEven() { fIsSelected = false; return true; }
117 Bool_t Event(AliAODEvent& aod);
121 Bool_t Finalize() { return true; }
123 * Add another eta bin to the task
125 void AddBin(Double_t etaLow, Double_t etaHigh){fBins.Add(new Bin(etaLow, etaHigh)); }
131 AliForwardCreateResponseMatrices(const AliForwardCreateResponseMatrices& o);
133 * Assignment operator
136 AliForwardCreateResponseMatrices&
137 operator=(const AliForwardCreateResponseMatrices&);
138 Bool_t CheckEvent(const AliAODForwardMult& fwd);
140 TList fBins; // List of eta bins
141 Bool_t fIsSelected; // Did event pass the (analysis) cuts
142 ClassDef(AliForwardCreateResponseMatrices, 4);