]>
Commit | Line | Data |
---|---|---|
33438b4c | 1 | /** |
2 | * @file AliForwardCreateResponseMatrices.h | |
3 | * @author Christian Holm Christensen <cholm@master.hehi.nbi.dk> | |
4 | * @date Thu Feb 7 00:56:02 2013 | |
5 | * | |
6 | * @brief | |
7 | * | |
8 | * @ingroup pwglf_forward_multdist | |
9 | */ | |
10 | /** | |
11 | * @defgroup pwglf_forward_multdist Multiplicity Distributions | |
12 | * | |
13 | * Code to do with @f$P(N_{ch})@f$ analysis | |
14 | * | |
15 | * @ingroup pwglf_forward_topical | |
16 | */ | |
ad7be237 | 17 | #ifndef ALIFORWARDCREATERESPONSEMATRICES_H |
18 | #define ALIFORWARDCREATERESPONSEMATRICES_H | |
ad7be237 | 19 | |
c8b1a7db | 20 | #include "AliBaseAODTask.h" |
ad7be237 | 21 | |
22 | class TH2D; | |
23 | ||
24 | /** | |
33438b4c | 25 | * Task to make the reponse matrices used by the multiplicity |
26 | * distibution analysis | |
ad7be237 | 27 | * |
33438b4c | 28 | * @ingroup pwglf_forward Tasks |
29 | * @ingroup pwglf_forward_multdist | |
30 | * @todo Should not inherit from AliBasedNdetaTask | |
ad7be237 | 31 | */ |
c8b1a7db | 32 | class AliForwardCreateResponseMatrices : public AliBaseAODTask |
ad7be237 | 33 | { |
34 | public: | |
35 | /** | |
36 | * | |
37 | * Default Constructor | |
38 | * | |
39 | */ | |
40 | AliForwardCreateResponseMatrices(); | |
41 | /** | |
42 | * Constructor | |
43 | * | |
44 | */ | |
45 | AliForwardCreateResponseMatrices(const char* name); | |
ad7be237 | 46 | /** |
47 | * | |
48 | * Destructor | |
49 | * | |
50 | */ | |
51 | virtual ~AliForwardCreateResponseMatrices(){} | |
52 | /** | |
53 | * Embedded Class begins here | |
54 | */ | |
55 | struct Bin : public TNamed | |
56 | { | |
57 | /** | |
58 | * Default Constructor | |
59 | */ | |
60 | Bin(); | |
61 | /** | |
62 | * Constructor | |
63 | */ | |
64 | Bin(Double_t etaLow, Double_t etaHigh); | |
65 | /** | |
66 | * Copy Constructor | |
67 | */ | |
ee83b849 | 68 | Bin(const Bin&){;} |
ad7be237 | 69 | /** |
70 | * Assignment Operator | |
71 | */ | |
72 | Bin&operator=(const Bin&){return*this;} | |
73 | /** | |
74 | * Destructor | |
75 | */ | |
76 | ~Bin(){} | |
77 | /** | |
78 | * Define outputs of a single eta bin | |
79 | */ | |
5934a3e3 | 80 | virtual void CreateOutputObjectss(TList* cont, Int_t max); |
ad7be237 | 81 | /** |
82 | * Process a single eta bin | |
83 | */ | |
c8b1a7db | 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); |
ad7be237 | 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 | |
5934a3e3 | 104 | ClassDef(Bin,2); // Manager of data |
ad7be237 | 105 | }; |
106 | /** | |
107 | * Create Output Objects | |
108 | */ | |
c8b1a7db | 109 | Bool_t Book(); |
110 | /** | |
111 | * Create Output Objects | |
112 | */ | |
113 | Bool_t PreEven() { fIsSelected = false; return true; } | |
ad7be237 | 114 | /** |
115 | * User Exec | |
116 | */ | |
c8b1a7db | 117 | Bool_t Event(AliAODEvent& aod); |
ad7be237 | 118 | /** |
119 | * Terminate | |
120 | */ | |
c8b1a7db | 121 | Bool_t Finalize() { return true; } |
ad7be237 | 122 | /** |
123 | * Add another eta bin to the task | |
124 | */ | |
125 | void AddBin(Double_t etaLow, Double_t etaHigh){fBins.Add(new Bin(etaLow, etaHigh)); } | |
c8b1a7db | 126 | protected: |
127 | /** | |
128 | * Copy Constructor | |
129 | * | |
130 | */ | |
131 | AliForwardCreateResponseMatrices(const AliForwardCreateResponseMatrices& o); | |
132 | /** | |
133 | * Assignment operator | |
134 | * | |
135 | */ | |
136 | AliForwardCreateResponseMatrices& | |
137 | operator=(const AliForwardCreateResponseMatrices&); | |
138 | Bool_t CheckEvent(const AliAODForwardMult& fwd); | |
139 | ||
ad7be237 | 140 | TList fBins; // List of eta bins |
c8b1a7db | 141 | Bool_t fIsSelected; // Did event pass the (analysis) cuts |
142 | ClassDef(AliForwardCreateResponseMatrices, 4); | |
ad7be237 | 143 | }; |
144 | ||
145 | #endif | |
146 | // Local Variables: | |
147 | // mode: C++ | |
148 | // End: |