1 #ifndef AliAnalysisTaskQAV0_H
2 #define AliAnalysisTaskQAV0_H
4 /**************************************************************************
5 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
7 * Author: The ALICE Off-line Project. *
8 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
19 //-----------------------------------------------------------------
20 // AliAnalysisTaskQAV0 class
21 // -------------------------
23 // Please see cxx file for more details.
25 //-----------------------------------------------------------------
27 // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
29 // --- This version: 23 Oct 2013
31 // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
41 class AliESDtrackCuts;
42 class AliAnalysisUtils;
44 class AliPhysicsSelection;
47 //#include "TString.h"
48 //#include "AliESDtrackCuts.h"
49 #include "AliAnalysisTaskSE.h"
51 class AliAnalysisTaskQAV0 : public AliAnalysisTaskSE {
53 AliAnalysisTaskQAV0();
54 AliAnalysisTaskQAV0(const char *name);
55 virtual ~AliAnalysisTaskQAV0();
57 virtual void UserCreateOutputObjects();
58 virtual void UserExec(Option_t *option);
59 virtual void Terminate(Option_t *);
61 //---------------------------------------------------------------------------------------
62 //Task Configuration: Meant to enable quick re-execution of vertexer if needed
63 void SetRunV0Vertexer ( Bool_t lRunV0Vertexer = kTRUE) { fkRunV0Vertexer = lRunV0Vertexer; }
64 //---------------------------------------------------------------------------------------
65 //Setters for the V0 Vertexer Parameters
66 void SetV0VertexerMaxChisquare ( Double_t lParameter ){ fV0VertexerSels[0] = lParameter; }
67 void SetV0VertexerDCAFirstToPV ( Double_t lParameter ){ fV0VertexerSels[1] = lParameter; }
68 void SetV0VertexerDCASecondtoPV ( Double_t lParameter ){ fV0VertexerSels[2] = lParameter; }
69 void SetV0VertexerDCAV0Daughters ( Double_t lParameter ){ fV0VertexerSels[3] = lParameter; }
70 void SetV0VertexerCosinePA ( Double_t lParameter ){ fV0VertexerSels[4] = lParameter; }
71 void SetV0VertexerMinRadius ( Double_t lParameter ){ fV0VertexerSels[5] = lParameter; }
72 void SetV0VertexerMaxRadius ( Double_t lParameter ){ fV0VertexerSels[6] = lParameter; }
73 //---------------------------------------------------------------------------------------
74 //Setters for the V0 Extraction
75 void SetV0SelectionMaxChisquare ( Double_t lParameter ){ fV0Sels[0] = lParameter; }
76 void SetV0SelectionDCAFirstToPV ( Double_t lParameter ){ fV0Sels[1] = lParameter; }
77 void SetV0SelectionDCASecondtoPV ( Double_t lParameter ){ fV0Sels[2] = lParameter; }
78 void SetV0SelectionDCAV0Daughters ( Double_t lParameter ){ fV0Sels[3] = lParameter; }
79 void SetV0SelectionCosinePA ( Double_t lParameter ){ fV0Sels[4] = lParameter; }
80 void SetV0SelectionMinRadius ( Double_t lParameter ){ fV0Sels[5] = lParameter; }
81 void SetV0SelectionMaxRadius ( Double_t lParameter ){ fV0Sels[6] = lParameter; }
82 //---------------------------------------------------------------------------------------
83 //Setters for dE/dx selection
84 void SetTPCdEdxSelection ( Double_t lParameter ) { fdEdxCut = lParameter; }
85 //---------------------------------------------------------------------------------------
88 // Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ...
89 // your data member object is created on the worker nodes and streaming is not needed.
90 // http://root.cern.ch/download/doc/11InputOutput.pdf, page 14
93 TList *fOutput; //! List of output objects
95 //Per-Event Histograms
96 TH1D* fHistEvent; //! Event Selection Histogram (no further info)
98 //Per-Candidate Histograms
100 //Base Topological Variables for All Reconstructed V0 Vertices
101 TH1D *fHistTopDCANegToPV; //!
102 TH1D *fHistTopDCAPosToPV; //!
103 TH1D *fHistTopDCAV0Daughters; //!
104 TH1D *fHistTopCosinePA; //!
105 TH1D *fHistTopV0Radius; //!
107 //Zoomed into Selection criteria (fV0Sels)
108 TH1D *fHistSelectedTopDCANegToPV; //!
109 TH1D *fHistSelectedTopDCAPosToPV; //!
110 TH1D *fHistSelectedTopDCAV0Daughters; //!
111 TH1D *fHistSelectedTopCosinePA; //!
112 TH1D *fHistSelectedTopV0Radius; //!
114 //Histograms for Storing Invariant Mass: 2D
115 //Stored only if the 5 topological selections in fV0Sels are satisfied
116 TH2D *f2dHistInvMassK0Short; //!
117 TH2D *f2dHistInvMassLambda; //!
118 TH2D *f2dHistInvMassAntiLambda; //!
120 //With dE/dx Selection (extra)
121 TH2D *f2dHistInvMassWithdEdxK0Short; //!
122 TH2D *f2dHistInvMassWithdEdxLambda; //!
123 TH2D *f2dHistInvMassWithdEdxAntiLambda; //!
125 //dEdx QA Histograms (extra)
127 TH2D *f2dHistResponseNegativeAsPion; //!
128 TH2D *f2dHistResponseNegativeAsProton; //!
129 TH2D *f2dHistResponsePositiveAsPion; //!
130 TH2D *f2dHistResponsePositiveAsProton; //!
132 //Raw Stuff, Clean Version: Proton and Pion From Lambdas
133 //Potentially useful for checking calibration of dE/dx
134 TH2D *f2dHistdEdxSignalPionFromLambda; //!
135 TH2D *f2dHistdEdxSignalProtonFromLambda; //!
136 TH2D *f2dHistResponsePionFromLambda; //!
137 TH2D *f2dHistResponseProtonFromLambda; //!
139 AliPIDResponse *fPIDResponse; // PID response object
141 //Objects Controlling Task Behaviour: has to be streamed!
142 Bool_t fkRunV0Vertexer; //if true, re-run vertexer with loose cuts. CARE MUST BE TAKEN in PbPb!
143 Double_t fV0VertexerSels[7]; // Array to store the 7 values for the different selections V0 related
144 Double_t fV0Sels[7]; // Array to store the 7 values for the different selections V0 related
146 //Variables controlling task behaviour (don't "//!" them!)
147 //For setting a dEdx cut: can be strict... (will anyhow depend on analysis!)
150 AliAnalysisTaskQAV0(const AliAnalysisTaskQAV0&); // not implemented
151 AliAnalysisTaskQAV0& operator=(const AliAnalysisTaskQAV0&); // not implemented
153 ClassDef(AliAnalysisTaskQAV0, 11);