]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/QATasks/AliQAProdMultistrange.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGLF / QATasks / AliQAProdMultistrange.h
CommitLineData
bb6f433c 1#ifndef ALIANALYSISTASKCHECKCASCADEPBPB_H
2#define ALIANALYSISTASKCHECKCASCADEPBPB_H
3
4/* See cxx source for full Copyright notice */
5
6//-----------------------------------------------------------------
7// AliQAProdMultistrange class
8// Origin AliAnalysisTaskCheckCascade
9// This task has four roles :
10// 1. QAing the Cascades from ESD and AOD
11// Origin: AliAnalysisTaskESDCheckV0 by Boris Hippolyte Nov2007, hippolyt@in2p3.fr
12// 2. Prepare the plots which stand as raw material for yield extraction (wi/wo PID)
13// 3. Supply an AliCFContainer meant to define the optimised topological selections
14// 4. Rough azimuthal correlation study (Eta, Phi)
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
18//-----------------------------------------------------------------
19
20class TList;
21class TH1F;
22class TH2F;
23class TH3F;
24class TVector3;
25class THnSparse;
26
27class AliESDEvent;
28class AliPhysicsSelection;
29class AliCFContainer;
30class AliPIDResponse;
31
32#include "TString.h"
33
34#include "AliAnalysisTaskSE.h"
35
36class AliQAProdMultistrange : public AliAnalysisTaskSE {
37 public:
38 AliQAProdMultistrange();
39 AliQAProdMultistrange(const char *name);
40 virtual ~AliQAProdMultistrange();
41
42 virtual void UserCreateOutputObjects();
43 virtual void UserExec(Option_t *option);
44 virtual void Terminate(Option_t *);
45
46 void SetAnalysisType (const char* analysisType = "ESD" ) { fAnalysisType = analysisType; }
47 void SetCollidingSystem (const char* collidingSystem = "PbPb") { fCollidingSystem = collidingSystem; }
48 void SetSDDselection (Bool_t SDDSelection = kFALSE) { fkSDDSelectionOn = SDDSelection; }
49 void SetQualityCutZprimVtxPos (Bool_t qualityCutZprimVtxPos = kTRUE ) { fkQualityCutZprimVtxPos = qualityCutZprimVtxPos; }
50 void SetQualityCutNoTPConlyPrimVtx (Bool_t qualityCutNoTPConlyPrimVtx = kTRUE ) { fkQualityCutNoTPConlyPrimVtx = qualityCutNoTPConlyPrimVtx; }
51 void SetQualityCutTPCrefit (Bool_t qualityCutTPCrefit = kTRUE ) { fkQualityCutTPCrefit = qualityCutTPCrefit; }
52 void SetQualityCutnTPCcls (Bool_t qualityCutnTPCcls = kTRUE ) { fkQualityCutnTPCcls = qualityCutnTPCcls; }
53 void SetQualityCutMinnTPCcls (Int_t minnTPCcls = 70 ) { fMinnTPCcls = minnTPCcls; }
54 void SetQualityCutPileup (Bool_t qualitycutPileup = kFALSE) { fkQualityCutPileup = qualitycutPileup; }
55 void SetwithSDD (Bool_t withSDD = kTRUE ) { fwithSDD = withSDD; }
56 void SetCentralityLowLim (Float_t centrlowlim = 0. ) { fCentrLowLim = centrlowlim; }
57 void SetCentralityUpLim (Float_t centruplim = 100. ) { fCentrUpLim = centruplim; }
58 void SetCentralityEst (TString centrest = "V0M" ) { fCentrEstimator = centrest; }
59 void SetUseCleaning (Bool_t usecleaning = kTRUE ) { fkUseCleaning = usecleaning; }
60 void SetVertexRange (Float_t vtxrange = 0. ) { fVtxRange = vtxrange; }
61 void SetMinptCutOnDaughterTracks (Float_t minptdaughtrks = 0. ) { fMinPtCutOnDaughterTracks = minptdaughtrks; }
62 void SetEtaCutOnDaughterTracks (Float_t etadaughtrks = 0. ) { fEtaCutOnDaughterTracks = etadaughtrks; }
63
64 private:
65 // Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ...
66 // your data member object is created on the worker nodes and streaming is not needed.
67 // http://root.cern.ch/download/doc/11InputOutput.pdf, page 14
68
69
70 TString fAnalysisType; // "ESD" or "AOD" analysis type
71 AliESDtrackCuts *fESDtrackCuts; // ESD track cuts used for primary track definition
72 TString fCollidingSystem; // "PbPb" or "pp" colliding system
73 AliPIDResponse *fPIDResponse; //! PID response object
74 Bool_t fkSDDSelectionOn; // Boolean : kTRUE = apply the selection on SDD status
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
80 Bool_t fwithSDD; // Boolean : kTRUE = Select the events that has and use the info from the SDD
81 Int_t fMinnTPCcls; // minimum number of TPC cluster for daughter tracks
82 Float_t fCentrLowLim; // Lower limit for centrality percentile selection
83 Float_t fCentrUpLim; // Upper limit for centrality percentile selection
84 TString fCentrEstimator; // string for the centrality estimator
85 Bool_t fkUseCleaning; // Boolean : kTRUE = uses all the cleaning criteria of centrality selections (vertex cut + outliers) otherwise only outliers
86 Float_t fVtxRange; // to select events with |zvtx|<fVtxRange cm
87 Float_t fMinPtCutOnDaughterTracks; // minimum pt cut on daughter tracks
88 Float_t fEtaCutOnDaughterTracks; // pseudorapidity cut on daughter tracks
89
90
91
92 AliCFContainer *fCFContCascadeCuts; //! Container meant to store all the relevant distributions corresponding to the cut variables
93
94
95
96 AliQAProdMultistrange(const AliQAProdMultistrange&); // not implemented
97 AliQAProdMultistrange& operator=(const AliQAProdMultistrange&); // not implemented
98
99 ClassDef(AliQAProdMultistrange, 7);
100};
101
102#endif