]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/QATasks/AliAnalysisTaskQAV0AOD.h
Added QA Task for V0s, AOD version.
[u/mrichter/AliRoot.git] / PWGLF / QATasks / AliAnalysisTaskQAV0AOD.h
1 #ifndef ALIANALYSISTASKQAV0AOD_H
2 #define ALIANALYSISTASKQAV0AOD_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 //      AliAnalysisTaskQAV0AOD class
21 //      ---------------------------------
22 //
23 //    Please see cxx file for more details.   
24 //             
25 //-----------------------------------------------------------------
26
27 // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
28 //
29 // --- This version: 23rd March 2012 
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 AliESDEvent;
43 class AliAODEvent;
44 class AliPhysicsSelection;
45 class AliCFContainer;
46
47 //#include "TString.h"
48 //#include "AliESDtrackCuts.h"
49 #include "AliAnalysisTaskSE.h"
50
51 class AliAnalysisTaskQAV0AOD : public AliAnalysisTaskSE {
52  public:
53         AliAnalysisTaskQAV0AOD();
54         AliAnalysisTaskQAV0AOD(const char *name);
55         virtual ~AliAnalysisTaskQAV0AOD();
56         
57         virtual void     UserCreateOutputObjects();
58         virtual void     UserExec(Option_t *option);
59         virtual void     Terminate(Option_t *);
60
61 //---------------------------------------------------------------------------------------
62 //Setters for the V0 Extraction
63   void SetV0SelectionMaxChisquare   ( Double_t lParameter ){ fV0Sels[0] = lParameter; }
64   void SetV0SelectionDCAFirstToPV   ( Double_t lParameter ){ fV0Sels[1] = lParameter; }
65   void SetV0SelectionDCASecondtoPV  ( Double_t lParameter ){ fV0Sels[2] = lParameter; }
66   void SetV0SelectionDCAV0Daughters ( Double_t lParameter ){ fV0Sels[3] = lParameter; }
67   void SetV0SelectionCosinePA       ( Double_t lParameter ){ fV0Sels[4] = lParameter; }
68   void SetV0SelectionMinRadius      ( Double_t lParameter ){ fV0Sels[5] = lParameter; }
69   void SetV0SelectionMaxRadius      ( Double_t lParameter ){ fV0Sels[6] = lParameter; }
70 //---------------------------------------------------------------------------------------
71
72  private:
73                                 // Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ...
74                                 // your data member object is created on the worker nodes and streaming is not needed.
75                                 // http://root.cern.ch/download/doc/11InputOutput.pdf, page 14
76
77   //Top Structure
78         TList   *fOutput;                     //! List of output objects
79
80   //Per-Event Histograms
81   TH1D* fHistEvent;             //! Event Selection Histogram (no further info)
82
83   //Per-Candidate Histograms
84   
85   //Base Topological Variables for All Reconstructed V0 Vertices
86   TH1D *fHistTopDCANegToPV;       //!
87   TH1D *fHistTopDCAPosToPV;       //!
88   TH1D *fHistTopDCAV0Daughters;   //!
89   TH1D *fHistTopCosinePA;         //!
90   TH1D *fHistTopV0Radius;         //!
91
92   //Zoomed into Selection criteria (fV0Sels)
93   TH1D *fHistSelectedTopDCANegToPV;       //!
94   TH1D *fHistSelectedTopDCAPosToPV;       //!
95   TH1D *fHistSelectedTopDCAV0Daughters;   //!
96   TH1D *fHistSelectedTopCosinePA;         //!
97   TH1D *fHistSelectedTopV0Radius;         //!
98
99   //Histograms for Storing Invariant Mass: 2D 
100   //Stored only if the 5 topological selections in fV0Sels are satisfied 
101   TH2D *f2dHistInvMassK0Short;      //!
102   TH2D *f2dHistInvMassLambda;       //!
103   TH2D *f2dHistInvMassAntiLambda;   //!
104
105   //With dE/dx Selection (extra)
106   TH2D *f2dHistInvMassWithdEdxK0Short;      //!
107   TH2D *f2dHistInvMassWithdEdxLambda;       //!
108   TH2D *f2dHistInvMassWithdEdxAntiLambda;   //!
109
110   //dEdx QA Histograms (extra) 
111   //PIDFrameWork
112   TH2D *f2dHistResponseNegativeAsPion;   //! 
113   TH2D *f2dHistResponseNegativeAsProton; //! 
114   TH2D *f2dHistResponsePositiveAsPion;   //! 
115   TH2D *f2dHistResponsePositiveAsProton; //! 
116
117   //Raw Stuff, Clean Version: Proton and Pion From Lambdas
118   //Potentially useful for checking calibration of dE/dx 
119   TH2D *f2dHistdEdxSignalPionFromLambda;   //! 
120   TH2D *f2dHistdEdxSignalProtonFromLambda; //! 
121   TH2D *f2dHistResponsePionFromLambda;     //! 
122   TH2D *f2dHistResponseProtonFromLambda;   //!
123
124
125   //Objects Controlling Task Behaviour 
126   
127   Bool_t fkIsNuclear;   // if true, replace multiplicity est. by centrality (default FALSE) 
128   Bool_t fkLowEnergyPP; // if true, skip FASTOnly (default FALSE)
129   Bool_t fkUseOnTheFly; // if true, will use On-the-fly V0s instead of Offline V0s (default FALSE)
130
131
132   AliPIDResponse *fPIDResponse;     // PID response object
133
134   //Objects Controlling Task Behaviour: has to be streamed! 
135   Double_t  fV0Sels[7];           // Array to store the 7 values for the different selections V0 related
136
137    AliAnalysisTaskQAV0AOD(const AliAnalysisTaskQAV0AOD&);            // not implemented
138    AliAnalysisTaskQAV0AOD& operator=(const AliAnalysisTaskQAV0AOD&); // not implemented
139   
140    ClassDef(AliAnalysisTaskQAV0AOD, 11);
141 };
142
143 #endif