]>
Commit | Line | Data |
---|---|---|
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 | ||
20 | class TList; | |
21 | class TH1F; | |
22 | class TH2F; | |
23 | class TH3F; | |
24 | class TVector3; | |
25 | class THnSparse; | |
26 | ||
27 | class AliESDEvent; | |
28 | class AliPhysicsSelection; | |
29 | class AliCFContainer; | |
30 | class AliPIDResponse; | |
31 | ||
32 | #include "TString.h" | |
33 | ||
34 | #include "AliAnalysisTaskSE.h" | |
35 | ||
36 | class 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 |