]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/QATasks/AliAnalysisTaskQAV0.h
Converting PWGLFtotEt to native cmake
[u/mrichter/AliRoot.git] / PWGLF / QATasks / AliAnalysisTaskQAV0.h
CommitLineData
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
33class TList;
34class TH1F;
35class TH2F;
36class TH3F;
37class TVector3;
38class THnSparse;
39
40class AliESDpid;
41class AliESDtrackCuts;
42class AliAnalysisUtils;
43class AliESDEvent;
44class AliPhysicsSelection;
45class AliCFContainer;
46
47//#include "TString.h"
48//#include "AliESDtrackCuts.h"
fe5e47cc 49#include "AliPIDResponse.h"
3b977a86 50#include "AliAnalysisTaskSE.h"
51
52class 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