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