]>
Commit | Line | Data |
---|---|---|
ad7be237 | 1 | #ifndef ALIFORWARDCREATERESPONSEMATRICES_H |
2 | #define ALIFORWARDCREATERESPONSEMATRICES_H | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | #include "AliAnalysisTaskSE.h" | |
8 | #include "AliBasedNdetaTask.h" | |
9 | #include <TList.h> | |
10 | #include <iostream> | |
11 | ||
12 | class TH2D; | |
13 | ||
14 | /** | |
15 | * Task to do the multiplicity distibution | |
16 | * | |
17 | */ | |
18 | class AliForwardCreateResponseMatrices : public AliBasedNdetaTask | |
19 | { | |
20 | public: | |
21 | /** | |
22 | * | |
23 | * Default Constructor | |
24 | * | |
25 | */ | |
26 | AliForwardCreateResponseMatrices(); | |
27 | /** | |
28 | * Constructor | |
29 | * | |
30 | */ | |
31 | AliForwardCreateResponseMatrices(const char* name); | |
32 | /** | |
33 | * Copy Constructor | |
34 | * | |
35 | */ | |
36 | AliForwardCreateResponseMatrices(const AliForwardCreateResponseMatrices& o) : AliBasedNdetaTask(o), fTrigger(),fBins(), fOutput() { } | |
37 | /** | |
38 | * Assignment operator | |
39 | * | |
40 | */ | |
41 | AliForwardCreateResponseMatrices& operator=(const AliForwardCreateResponseMatrices&){return *this;} | |
42 | /** | |
43 | * | |
44 | * Destructor | |
45 | * | |
46 | */ | |
47 | virtual ~AliForwardCreateResponseMatrices(){} | |
48 | /** | |
49 | * Embedded Class begins here | |
50 | */ | |
51 | struct Bin : public TNamed | |
52 | { | |
53 | /** | |
54 | * Default Constructor | |
55 | */ | |
56 | Bin(); | |
57 | /** | |
58 | * Constructor | |
59 | */ | |
60 | Bin(Double_t etaLow, Double_t etaHigh); | |
61 | /** | |
62 | * Copy Constructor | |
63 | */ | |
64 | Bin(const Bin&); | |
65 | /** | |
66 | * Assignment Operator | |
67 | */ | |
68 | Bin&operator=(const Bin&){return*this;} | |
69 | /** | |
70 | * Destructor | |
71 | */ | |
72 | ~Bin(){} | |
73 | /** | |
74 | * Define outputs of a single eta bin | |
75 | */ | |
5934a3e3 | 76 | virtual void CreateOutputObjectss(TList* cont, Int_t max); |
ad7be237 | 77 | /** |
78 | * Process a single eta bin | |
79 | */ | |
80 | 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, AliAODEvent* aodevent); | |
81 | Double_t fEtaLow; // low eta limit | |
82 | Double_t fEtaHigh; // high eta limit | |
83 | TH1D* fHist; // multiplicity histogram | |
84 | TH1D* fHistMC; // multiplicity histogram MC truth primaries | |
85 | TH2D* fAcceptance; // histogram showing the 'holes' in acceptance. BinContent of 1 shows a hole, and BinContent of 10 shows data coverage | |
86 | TH2D* fVtxZvsNdataBins; // VtxZ vs. number of data acceptance bins (normalised to the eta range) | |
87 | TH2D* fResponseMatrix; //Response matrix (MC truth vs. analysed multiplicity) | |
88 | TH2D* fResponseMatrixPlus05; //Response matrix with analysed multiplicity scaled up by 5% | |
89 | TH2D* fResponseMatrixPlus075; //Response matrix with analysed multiplicity scaled up by 7.5% | |
90 | TH2D* fResponseMatrixPlus10; //Response matrix with analysed multiplicity scaled up by 10% | |
91 | TH2D* fResponseMatrixMinus05; //Response matrix with analysed multiplicity scaled down by 5% | |
92 | TH2D* fResponseMatrixMinus075; //Response matrix with analysed multiplicity scaled down by 7.55% | |
93 | TH2D* fResponseMatrixMinus10; //Response matrix with analysed multiplicity scaled down by 10% | |
94 | TH2D* fResponseMatrixMinusSys; //Response matrix with analysed multiplicity scaled up by event mult uncertainty | |
95 | TH2D* fResponseMatrixPlusSys; //Response matrix with analysed multiplicity scaled down by event mult uncertainty | |
96 | TH1D* fESDNSD; //number of events found as NSD by the analysis vs. multiplicity | |
97 | TH1D* fMCNSD; //number of events found as NSD by the MC truth vs. multiplicity | |
98 | TH1D* fMCESDNSD; //number of events found as NSD by both analysis and MC truth vs. multiplicity | |
99 | TH1D* fTriggerBias; // histogram for trigger vertex bias correction | |
5934a3e3 | 100 | ClassDef(Bin,2); // Manager of data |
ad7be237 | 101 | }; |
102 | /** | |
103 | * Create Output Objects | |
104 | */ | |
105 | virtual void UserCreateOutputObjects(); | |
106 | /** | |
107 | * User Exec | |
108 | */ | |
109 | void UserExec(Option_t *option); | |
110 | /** | |
111 | * Terminate | |
112 | */ | |
113 | void Terminate(Option_t *option); | |
114 | /** | |
115 | * implementation of pure virtual function, always returning 0 | |
116 | */ | |
117 | virtual TH2D* GetHistogram(const AliAODEvent* aod, Bool_t mc); | |
118 | /** | |
119 | * Get single event forward and central @f$d^2N/d\eta d\phi@f$ | |
120 | * histograms | |
121 | * | |
122 | */ | |
123 | virtual void GetHistograms(const AliAODEvent* aod, TH2D& forward, TH2D& central); | |
124 | /** | |
125 | * Add another eta bin to the task | |
126 | */ | |
127 | void AddBin(Double_t etaLow, Double_t etaHigh){fBins.Add(new Bin(etaLow, etaHigh)); } | |
128 | protected: | |
129 | TH1I* fTrigger; //Trigger histogram | |
130 | TList fBins; // List of eta bins | |
131 | TList* fOutput; // Output list | |
5934a3e3 | 132 | ClassDef(AliForwardCreateResponseMatrices, 2); |
ad7be237 | 133 | }; |
134 | ||
135 | #endif | |
136 | // Local Variables: | |
137 | // mode: C++ | |
138 | // End: |