]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/QATasks/AliAnalysisTaskQAMultistrange.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / QATasks / AliAnalysisTaskQAMultistrange.h
CommitLineData
07b2bcd3 1#ifndef ALIANALYSISTASKQAMULTISTRANGE_H
2#define ALIANALYSISTASKQAMULTISTRANGE_H
3
4/* See cxx source for full Copyright notice */
5
baec638f 6/////////////////////////////////////////////////////////////
7//
07b2bcd3 8// AliAnalysisTaskQAMultistrange class
9// Origin AliAnalysisTaskCheckCascade
10// This task has four roles :
11// 1. QAing the Cascades from ESD and AOD
12// Origin: AliAnalysisTaskESDCheckV0 by Boris Hippolyte Nov2007, hippolyt@in2p3.fr
13// 2. Prepare the plots which stand as raw material for yield extraction (wi/wo PID)
14// 3. Supply an AliCFContainer meant to define the optimised topological selections
07b2bcd3 15// Adapted to Cascade : A.Maire Mar2008, antonin.maire@ires.in2p3.fr
16// Modified : A.Maire Mar2010, antonin.maire@ires.in2p3.fr
17// Modified for PbPb analysis: M. Nicassio Feb 2011, maria.nicassio@ba.infn.it
baec638f 18// Modified for QA production: D. Colella 2013, domenico.colella@cern.ch
19//
20/////////////////////////////////////////////////////////////
07b2bcd3 21
22class TList;
23class TH1F;
24class TH2F;
25class TH3F;
26class TVector3;
27class THnSparse;
28
29class AliESDEvent;
30class AliPhysicsSelection;
31class AliCFContainer;
32class AliPIDResponse;
33
34#include "TString.h"
35
36#include "AliAnalysisTaskSE.h"
37
38class AliAnalysisTaskQAMultistrange : public AliAnalysisTaskSE {
39 public:
40 AliAnalysisTaskQAMultistrange();
41 AliAnalysisTaskQAMultistrange(const char *name);
42 virtual ~AliAnalysisTaskQAMultistrange();
43
44 virtual void UserCreateOutputObjects();
45 virtual void UserExec(Option_t *option);
46 virtual void Terminate(Option_t *);
0ffba3ee 47
48 void SetIsMC (Bool_t isMC = kFALSE) { fisMC = isMC; }
07b2bcd3 49 void SetAnalysisType (const char* analysisType = "ESD" ) { fAnalysisType = analysisType; }
50 void SetCollidingSystem (const char* collidingSystem = "PbPb") { fCollidingSystem = collidingSystem; }
07b2bcd3 51 void SetQualityCutZprimVtxPos (Bool_t qualityCutZprimVtxPos = kTRUE ) { fkQualityCutZprimVtxPos = qualityCutZprimVtxPos; }
52 void SetQualityCutNoTPConlyPrimVtx (Bool_t qualityCutNoTPConlyPrimVtx = kTRUE ) { fkQualityCutNoTPConlyPrimVtx = qualityCutNoTPConlyPrimVtx; }
53 void SetQualityCutTPCrefit (Bool_t qualityCutTPCrefit = kTRUE ) { fkQualityCutTPCrefit = qualityCutTPCrefit; }
54 void SetQualityCutnTPCcls (Bool_t qualityCutnTPCcls = kTRUE ) { fkQualityCutnTPCcls = qualityCutnTPCcls; }
55 void SetQualityCutMinnTPCcls (Int_t minnTPCcls = 70 ) { fMinnTPCcls = minnTPCcls; }
56 void SetQualityCutPileup (Bool_t qualitycutPileup = kFALSE) { fkQualityCutPileup = qualitycutPileup; }
07b2bcd3 57 void SetCentralityLowLim (Float_t centrlowlim = 0. ) { fCentrLowLim = centrlowlim; }
58 void SetCentralityUpLim (Float_t centruplim = 100. ) { fCentrUpLim = centruplim; }
59 void SetCentralityEst (TString centrest = "V0M" ) { fCentrEstimator = centrest; }
60 void SetUseCleaning (Bool_t usecleaning = kTRUE ) { fkUseCleaning = usecleaning; }
61 void SetVertexRange (Float_t vtxrange = 0. ) { fVtxRange = vtxrange; }
62 void SetMinptCutOnDaughterTracks (Float_t minptdaughtrks = 0. ) { fMinPtCutOnDaughterTracks = minptdaughtrks; }
63 void SetEtaCutOnDaughterTracks (Float_t etadaughtrks = 0. ) { fEtaCutOnDaughterTracks = etadaughtrks; }
64
65 private:
66 // Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ...
67 // your data member object is created on the worker nodes and streaming is not needed.
68 // http://root.cern.ch/download/doc/11InputOutput.pdf, page 14
69
70
0ffba3ee 71 Bool_t fisMC; // Boolean : kTRUE = is a MC production
07b2bcd3 72 TString fAnalysisType; // "ESD" or "AOD" analysis type
baec638f 73 TString fCollidingSystem; // "PbPb", "pPb" or "pp" colliding system
b99cd383 74 AliPIDResponse *fPIDResponse; // PID response object
07b2bcd3 75 Bool_t fkQualityCutZprimVtxPos; // Boolean : kTRUE = cut on the prim.vtx z-position
76 Bool_t fkQualityCutNoTPConlyPrimVtx; // Boolean : kTRUE = prim vtx should be SPD or Tracking vertex
77 Bool_t fkQualityCutTPCrefit; // Boolean : kTRUE = ask for TPCrefit for the 3 daughter tracks
78 Bool_t fkQualityCutnTPCcls; // Boolean : kTRUE = ask for at least n TPC clusters for each daughter track
79 Bool_t fkQualityCutPileup; // Boolean : kTRUE = ask for no pileup events
07b2bcd3 80 Int_t fMinnTPCcls; // minimum number of TPC cluster for daughter tracks
81 Float_t fCentrLowLim; // Lower limit for centrality percentile selection
82 Float_t fCentrUpLim; // Upper limit for centrality percentile selection
baec638f 83 TString fCentrEstimator; // string for the centrality estimator: "V0M" for PbPb and "V0A" for pPb
07b2bcd3 84 Bool_t fkUseCleaning; // Boolean : kTRUE = uses all the cleaning criteria of centrality selections (vertex cut + outliers) otherwise only outliers
85 Float_t fVtxRange; // to select events with |zvtx|<fVtxRange cm
86 Float_t fMinPtCutOnDaughterTracks; // minimum pt cut on daughter tracks
87 Float_t fEtaCutOnDaughterTracks; // pseudorapidity cut on daughter tracks
88
b99cd383 89 TList *fListHistMultistrangeQA; //! List of Cascade histograms
90 TH1F *fHistEventSel; // Gives the number of the events after each event selection
91 TH1F *fHistMassXiMinus; // Gives the invariant mass distr. for the Xi minus without PID info on daughter tracks
92 TH1F *fHistMassXiPlus; // Gives the invariant mass distr. for the Xi plus without PID info on daughter tracks
93 TH1F *fHistMassOmegaMinus; // Gives the invariant mass distr. for the Omega minus without PID info on daughter tracks
94 TH1F *fHistMassOmegaPlus; // Gives the invariant mass distr. for the Omega plus without PID info on daughter tracks
95 AliCFContainer *fCFContCascadeCuts; // Container meant to store all the relevant distributions corresponding to the cut variables
96 AliCFContainer *fCFContCascadeMCgen; // Container meant to store general variables for MC generated particles
07b2bcd3 97
98
99 AliAnalysisTaskQAMultistrange(const AliAnalysisTaskQAMultistrange&); // not implemented
100 AliAnalysisTaskQAMultistrange& operator=(const AliAnalysisTaskQAMultistrange&); // not implemented
101
102 ClassDef(AliAnalysisTaskQAMultistrange, 7);
103};
104
105#endif
106