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 "AliPIDResponse.h"
50 #include "AliAnalysisTaskSE.h"
52 class AliAnalysisTaskQAV0 : public AliAnalysisTaskSE {
54 AliAnalysisTaskQAV0();
55 AliAnalysisTaskQAV0(const char *name);
56 virtual ~AliAnalysisTaskQAV0();
58 virtual void UserCreateOutputObjects();
59 virtual void UserExec(Option_t *option);
60 virtual void Terminate(Option_t *);
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 //---------------------------------------------------------------------------------------
84 //Setters for dE/dx selection
85 void SetTPCdEdxSelection ( Double_t lParameter ) { fdEdxCut = lParameter; }
86 //---------------------------------------------------------------------------------------
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
94 TList *fOutput; //! List of output objects
96 //Per-Event Histograms
97 TH1D* fHistEvent; //! Event Selection Histogram (no further info)
99 //Per-Candidate Histograms
101 //Base Topological Variables for All Reconstructed V0 Vertices
102 TH1D *fHistTopDCANegToPV; //!
103 TH1D *fHistTopDCAPosToPV; //!
104 TH1D *fHistTopDCAV0Daughters; //!
105 TH1D *fHistTopCosinePA; //!
106 TH1D *fHistTopV0Radius; //!
108 //Zoomed into Selection criteria (fV0Sels)
109 TH1D *fHistSelectedTopDCANegToPV; //!
110 TH1D *fHistSelectedTopDCAPosToPV; //!
111 TH1D *fHistSelectedTopDCAV0Daughters; //!
112 TH1D *fHistSelectedTopCosinePA; //!
113 TH1D *fHistSelectedTopV0Radius; //!
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; //!
121 //With dE/dx Selection (extra)
122 TH2D *f2dHistInvMassWithdEdxK0Short; //!
123 TH2D *f2dHistInvMassWithdEdxLambda; //!
124 TH2D *f2dHistInvMassWithdEdxAntiLambda; //!
126 //dEdx QA Histograms (extra)
128 TH2D *f2dHistResponseNegativeAsPion; //!
129 TH2D *f2dHistResponseNegativeAsProton; //!
130 TH2D *f2dHistResponsePositiveAsPion; //!
131 TH2D *f2dHistResponsePositiveAsProton; //!
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; //!
140 AliPIDResponse *fPIDResponse; // PID response object
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
147 //Variables controlling task behaviour (don't "//!" them!)
148 //For setting a dEdx cut: can be strict... (will anyhow depend on analysis!)
151 AliAnalysisTaskQAV0(const AliAnalysisTaskQAV0&); // not implemented
152 AliAnalysisTaskQAV0& operator=(const AliAnalysisTaskQAV0&); // not implemented
154 ClassDef(AliAnalysisTaskQAV0, 11);