]>
Commit | Line | Data |
---|---|---|
3b977a86 | 1 | #ifndef AliAnalysisTaskQAV0_H |
2 | #define AliAnalysisTaskQAV0_H | |
3 | ||
4 | /************************************************************************** | |
5 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
6 | * * | |
7 | * Author: The ALICE Off-line Project. * | |
8 | * Contributors are mentioned in the code where appropriate. * | |
9 | * * | |
10 | * Permission to use, copy, modify and distribute this software and its * | |
11 | * documentation strictly for non-commercial purposes is hereby granted * | |
12 | * without fee, provided that the above copyright notice appears in all * | |
13 | * copies and that both the copyright notice and this permission notice * | |
14 | * appear in the supporting documentation. The authors make no claims * | |
15 | * about the suitability of this software for any purpose. It is * | |
16 | * provided "as is" without express or implied warranty. * | |
17 | **************************************************************************/ | |
18 | ||
19 | //----------------------------------------------------------------- | |
20 | // AliAnalysisTaskQAV0 class | |
21 | // ------------------------- | |
22 | // | |
23 | // Please see cxx file for more details. | |
24 | // | |
25 | //----------------------------------------------------------------- | |
26 | ||
27 | // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
28 | // | |
29 | // --- This version: 23 Oct 2013 | |
30 | // | |
31 | // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
32 | ||
33 | class TList; | |
34 | class TH1F; | |
35 | class TH2F; | |
36 | class TH3F; | |
37 | class TVector3; | |
38 | class THnSparse; | |
39 | ||
40 | class AliESDpid; | |
41 | class AliESDtrackCuts; | |
42 | class AliAnalysisUtils; | |
43 | class AliESDEvent; | |
44 | class AliPhysicsSelection; | |
45 | class AliCFContainer; | |
46 | ||
47 | //#include "TString.h" | |
48 | //#include "AliESDtrackCuts.h" | |
fe5e47cc | 49 | #include "AliPIDResponse.h" |
3b977a86 | 50 | #include "AliAnalysisTaskSE.h" |
51 | ||
52 | class AliAnalysisTaskQAV0 : public AliAnalysisTaskSE { | |
53 | public: | |
54 | AliAnalysisTaskQAV0(); | |
55 | AliAnalysisTaskQAV0(const char *name); | |
56 | virtual ~AliAnalysisTaskQAV0(); | |
57 | ||
58 | virtual void UserCreateOutputObjects(); | |
59 | virtual void UserExec(Option_t *option); | |
60 | virtual void Terminate(Option_t *); | |
61 | ||
62 | //--------------------------------------------------------------------------------------- | |
63 | //Task Configuration: Meant to enable quick re-execution of vertexer if needed | |
64 | void SetRunV0Vertexer ( Bool_t lRunV0Vertexer = kTRUE) { fkRunV0Vertexer = lRunV0Vertexer; } | |
65 | //--------------------------------------------------------------------------------------- | |
66 | //Setters for the V0 Vertexer Parameters | |
67 | void SetV0VertexerMaxChisquare ( Double_t lParameter ){ fV0VertexerSels[0] = lParameter; } | |
68 | void SetV0VertexerDCAFirstToPV ( Double_t lParameter ){ fV0VertexerSels[1] = lParameter; } | |
69 | void SetV0VertexerDCASecondtoPV ( Double_t lParameter ){ fV0VertexerSels[2] = lParameter; } | |
70 | void SetV0VertexerDCAV0Daughters ( Double_t lParameter ){ fV0VertexerSels[3] = lParameter; } | |
71 | void SetV0VertexerCosinePA ( Double_t lParameter ){ fV0VertexerSels[4] = lParameter; } | |
72 | void SetV0VertexerMinRadius ( Double_t lParameter ){ fV0VertexerSels[5] = lParameter; } | |
73 | void SetV0VertexerMaxRadius ( Double_t lParameter ){ fV0VertexerSels[6] = lParameter; } | |
74 | //--------------------------------------------------------------------------------------- | |
75 | //Setters for the V0 Extraction | |
76 | void SetV0SelectionMaxChisquare ( Double_t lParameter ){ fV0Sels[0] = lParameter; } | |
77 | void SetV0SelectionDCAFirstToPV ( Double_t lParameter ){ fV0Sels[1] = lParameter; } | |
78 | void SetV0SelectionDCASecondtoPV ( Double_t lParameter ){ fV0Sels[2] = lParameter; } | |
79 | void SetV0SelectionDCAV0Daughters ( Double_t lParameter ){ fV0Sels[3] = lParameter; } | |
80 | void SetV0SelectionCosinePA ( Double_t lParameter ){ fV0Sels[4] = lParameter; } | |
81 | void SetV0SelectionMinRadius ( Double_t lParameter ){ fV0Sels[5] = lParameter; } | |
82 | void SetV0SelectionMaxRadius ( Double_t lParameter ){ fV0Sels[6] = lParameter; } | |
83 | //--------------------------------------------------------------------------------------- | |
7e292e6f | 84 | //Setters for dE/dx selection |
85 | void SetTPCdEdxSelection ( Double_t lParameter ) { fdEdxCut = lParameter; } | |
86 | //--------------------------------------------------------------------------------------- | |
87 | ||
3b977a86 | 88 | private: |
89 | // Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ... | |
90 | // your data member object is created on the worker nodes and streaming is not needed. | |
91 | // http://root.cern.ch/download/doc/11InputOutput.pdf, page 14 | |
92 | ||
93 | //Top Structure | |
94 | TList *fOutput; //! List of output objects | |
95 | ||
96 | //Per-Event Histograms | |
97 | TH1D* fHistEvent; //! Event Selection Histogram (no further info) | |
98 | ||
99 | //Per-Candidate Histograms | |
100 | ||
101 | //Base Topological Variables for All Reconstructed V0 Vertices | |
102 | TH1D *fHistTopDCANegToPV; //! | |
103 | TH1D *fHistTopDCAPosToPV; //! | |
104 | TH1D *fHistTopDCAV0Daughters; //! | |
105 | TH1D *fHistTopCosinePA; //! | |
106 | TH1D *fHistTopV0Radius; //! | |
107 | ||
108 | //Zoomed into Selection criteria (fV0Sels) | |
109 | TH1D *fHistSelectedTopDCANegToPV; //! | |
110 | TH1D *fHistSelectedTopDCAPosToPV; //! | |
111 | TH1D *fHistSelectedTopDCAV0Daughters; //! | |
112 | TH1D *fHistSelectedTopCosinePA; //! | |
113 | TH1D *fHistSelectedTopV0Radius; //! | |
114 | ||
115 | //Histograms for Storing Invariant Mass: 2D | |
116 | //Stored only if the 5 topological selections in fV0Sels are satisfied | |
117 | TH2D *f2dHistInvMassK0Short; //! | |
118 | TH2D *f2dHistInvMassLambda; //! | |
119 | TH2D *f2dHistInvMassAntiLambda; //! | |
120 | ||
121 | //With dE/dx Selection (extra) | |
122 | TH2D *f2dHistInvMassWithdEdxK0Short; //! | |
123 | TH2D *f2dHistInvMassWithdEdxLambda; //! | |
124 | TH2D *f2dHistInvMassWithdEdxAntiLambda; //! | |
125 | ||
126 | //dEdx QA Histograms (extra) | |
127 | //PIDFrameWork | |
128 | TH2D *f2dHistResponseNegativeAsPion; //! | |
129 | TH2D *f2dHistResponseNegativeAsProton; //! | |
130 | TH2D *f2dHistResponsePositiveAsPion; //! | |
131 | TH2D *f2dHistResponsePositiveAsProton; //! | |
132 | ||
133 | //Raw Stuff, Clean Version: Proton and Pion From Lambdas | |
134 | //Potentially useful for checking calibration of dE/dx | |
135 | TH2D *f2dHistdEdxSignalPionFromLambda; //! | |
136 | TH2D *f2dHistdEdxSignalProtonFromLambda; //! | |
137 | TH2D *f2dHistResponsePionFromLambda; //! | |
138 | TH2D *f2dHistResponseProtonFromLambda; //! | |
139 | ||
140 | AliPIDResponse *fPIDResponse; // PID response object | |
141 | ||
142 | //Objects Controlling Task Behaviour: has to be streamed! | |
143 | Bool_t fkRunV0Vertexer; //if true, re-run vertexer with loose cuts. CARE MUST BE TAKEN in PbPb! | |
144 | Double_t fV0VertexerSels[7]; // Array to store the 7 values for the different selections V0 related | |
145 | Double_t fV0Sels[7]; // Array to store the 7 values for the different selections V0 related | |
146 | ||
7e292e6f | 147 | //Variables controlling task behaviour (don't "//!" them!) |
148 | //For setting a dEdx cut: can be strict... (will anyhow depend on analysis!) | |
149 | Double_t fdEdxCut; | |
3b977a86 | 150 | |
151 | AliAnalysisTaskQAV0(const AliAnalysisTaskQAV0&); // not implemented | |
152 | AliAnalysisTaskQAV0& operator=(const AliAnalysisTaskQAV0&); // not implemented | |
153 | ||
154 | ClassDef(AliAnalysisTaskQAV0, 11); | |
155 | }; | |
156 | ||
157 | #endif |