]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/QATasks/AliAnalysisTaskQAV0.h
First commit of V0 QA Task. A long way from perfect but probably ok to catch early...
[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"
49#include "AliAnalysisTaskSE.h"
50
51class AliAnalysisTaskQAV0 : public AliAnalysisTaskSE {
52 public:
53 AliAnalysisTaskQAV0();
54 AliAnalysisTaskQAV0(const char *name);
55 virtual ~AliAnalysisTaskQAV0();
56
57 virtual void UserCreateOutputObjects();
58 virtual void UserExec(Option_t *option);
59 virtual void Terminate(Option_t *);
60
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
84 private:
85 // Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ...
86 // your data member object is created on the worker nodes and streaming is not needed.
87 // http://root.cern.ch/download/doc/11InputOutput.pdf, page 14
88
89 //Top Structure
90 TList *fOutput; //! List of output objects
91
92 //Per-Event Histograms
93 TH1D* fHistEvent; //! Event Selection Histogram (no further info)
94
95 //Per-Candidate Histograms
96
97 //Base Topological Variables for All Reconstructed V0 Vertices
98 TH1D *fHistTopDCANegToPV; //!
99 TH1D *fHistTopDCAPosToPV; //!
100 TH1D *fHistTopDCAV0Daughters; //!
101 TH1D *fHistTopCosinePA; //!
102 TH1D *fHistTopV0Radius; //!
103
104 //Zoomed into Selection criteria (fV0Sels)
105 TH1D *fHistSelectedTopDCANegToPV; //!
106 TH1D *fHistSelectedTopDCAPosToPV; //!
107 TH1D *fHistSelectedTopDCAV0Daughters; //!
108 TH1D *fHistSelectedTopCosinePA; //!
109 TH1D *fHistSelectedTopV0Radius; //!
110
111 //Histograms for Storing Invariant Mass: 2D
112 //Stored only if the 5 topological selections in fV0Sels are satisfied
113 TH2D *f2dHistInvMassK0Short; //!
114 TH2D *f2dHistInvMassLambda; //!
115 TH2D *f2dHistInvMassAntiLambda; //!
116
117 //With dE/dx Selection (extra)
118 TH2D *f2dHistInvMassWithdEdxK0Short; //!
119 TH2D *f2dHistInvMassWithdEdxLambda; //!
120 TH2D *f2dHistInvMassWithdEdxAntiLambda; //!
121
122 //dEdx QA Histograms (extra)
123 //PIDFrameWork
124 TH2D *f2dHistResponseNegativeAsPion; //!
125 TH2D *f2dHistResponseNegativeAsProton; //!
126 TH2D *f2dHistResponsePositiveAsPion; //!
127 TH2D *f2dHistResponsePositiveAsProton; //!
128
129 //Raw Stuff, Clean Version: Proton and Pion From Lambdas
130 //Potentially useful for checking calibration of dE/dx
131 TH2D *f2dHistdEdxSignalPionFromLambda; //!
132 TH2D *f2dHistdEdxSignalProtonFromLambda; //!
133 TH2D *f2dHistResponsePionFromLambda; //!
134 TH2D *f2dHistResponseProtonFromLambda; //!
135
136 AliPIDResponse *fPIDResponse; // PID response object
137
138 //Objects Controlling Task Behaviour: has to be streamed!
139 Bool_t fkRunV0Vertexer; //if true, re-run vertexer with loose cuts. CARE MUST BE TAKEN in PbPb!
140 Double_t fV0VertexerSels[7]; // Array to store the 7 values for the different selections V0 related
141 Double_t fV0Sels[7]; // Array to store the 7 values for the different selections V0 related
142
143
144 AliAnalysisTaskQAV0(const AliAnalysisTaskQAV0&); // not implemented
145 AliAnalysisTaskQAV0& operator=(const AliAnalysisTaskQAV0&); // not implemented
146
147 ClassDef(AliAnalysisTaskQAV0, 11);
148};
149
150#endif