1 #ifndef ALIANALYSISTASKCLQA_H
2 #define ALIANALYSISTASKCLQA_H
4 // $Id: AliAnalysisTaskCLQA.h 58847 2012-09-30 18:11:49Z loizides $
16 #include "AliAnalysisTaskEmcal.h"
21 class AliAnalysisTaskCLQA : public AliAnalysisTaskEmcal {
23 AliAnalysisTaskCLQA();
24 AliAnalysisTaskCLQA(const char *name);
25 virtual ~AliAnalysisTaskCLQA();
27 void SetCentCL1In(TH1 *h) { fCentCL1In = h; }
28 void SetCentV0AIn(TH1 *h) { fCentV0AIn = h; }
29 void SetCumParams(Double_t Mmin, Double_t ptmin, Double_t ptmax, Double_t etamin, Double_t etamax);
30 void SetDoCumulants(Bool_t b) { fDoCumulants = b; }
31 void SetDoMuonTracking(Bool_t b) { fDoMuonTracking = b; }
32 void SetDoTracking(Bool_t b) { fDoTracking = b; }
33 void UserCreateOutputObjects();
36 Bool_t FillHistograms();
37 Bool_t RetrieveEventObjects();
39 void RunCumulants(Double_t Mmin, Double_t ptmin, Double_t ptmax, Double_t etamin, Double_t etamax);
41 Bool_t fDoTracking; // if true run tracking analysis
42 Bool_t fDoMuonTracking; // if true run muon tracking analysis
43 Bool_t fDoCumulants; // if true run cumulant analysis
44 Double_t fCumPtMin; // minimum pt for cumulants
45 Double_t fCumPtMax; // maximum pt for cumulants
46 Double_t fCumEtaMin; // minimum eta for cumulants
47 Double_t fCumEtaMax; // maximum eta for cumulants
48 Double_t fCumMmin; // minimum number of tracks for cumulants
49 TH1 *fCentCL1In; // input for MC based CL1 centrality
50 TH1 *fCentV0AIn; // input for MC based V0A centrality
51 TTree *fNtupCum; //!ntuple for cumulant analysis
52 AliNtupCumInfo *fNtupCumInfo; //!object holding cumulant results
53 AliNtupZdcInfo *fNtupZdcInfo; //!object holding zdc info
54 TH1 *fHists[1000]; //!pointers to histograms
57 AliAnalysisTaskCLQA(const AliAnalysisTaskCLQA&); // not implemented
58 AliAnalysisTaskCLQA &operator=(const AliAnalysisTaskCLQA&); // not implemented
60 ClassDef(AliAnalysisTaskCLQA, 3) // Constantin's Task
63 class AliNtupCumInfo {
65 AliNtupCumInfo() : fTrig(0), fRun(0), fVz(0), fIsFEC(0), fIsVSel(0), fIsP(0),
66 fMall(0), fMall2(0), fPtMaxall(0), fMPtall(0),
67 fMPt2all(0), fMPtall2(0), fTSall(0),
68 fM(0), fQ2abs(0), fQ4abs(0), fQ42re(0), fCos2phi(0), fSin2phi(0),
69 fPtMax(0), fMPt(0), fMPt2(0), fTS(0), fMV0M(0),
70 fCl1(0), fV0M(0), fV0MEq(0), fV0A(0), fV0AEq(0), fZNA(0) {;}
71 virtual ~AliNtupCumInfo() {;}
74 UInt_t fTrig; // trigger selection
75 Int_t fRun; // run number
76 Double_t fVz; // vertex z
77 Bool_t fIsFEC; // is first event in chunk
78 Bool_t fIsVSel; // is vertex selected
79 Bool_t fIsP; // is SPD pileup
80 Int_t fMall; // multiplicity (tracks in eta range)
81 Int_t fMall2; // multiplicity (tracks above 1 GeV/c in eta range)
82 Double32_t fPtMaxall; //[0,0,16] maximum pT
83 Double32_t fMPtall; //[0,0,16] mean pT
84 Double32_t fMPt2all; //[0,0,16] mean pT2
85 Double32_t fMPtall2; //[0,0,16] mean pT truncated above 1 GeV/c
86 Double32_t fTSall; //[0,0,16] transverse sphericity
87 Int_t fM; // multiplicity (tracks in pT range)
88 Double32_t fQ2abs; // Q2 absolute
89 Double32_t fQ4abs; // Q4 absolute
90 Double32_t fQ42re; // Re(Q2Q*Q*)
91 Double32_t fCos2phi; // Cos(2phi)
92 Double32_t fSin2phi; // Sin(2phi)
93 Double32_t fPtMax; //[0,0,16] maximum pT
94 Double32_t fMPt; //[0,0,16] mean pT
95 Double32_t fMPt2; //[0,0,16] mean pT2
96 Double32_t fTS; //[0,0,16] transverse sphericity
97 Double32_t fMV0M; // V0M amplitude
98 Double32_t fCl1; //[0,0,16] class CL1
99 Double32_t fV0M; //[0,0,16] class V0M
100 Double32_t fV0MEq; //[0,0,16] class V0M Eq
101 Double32_t fV0A; //[0,0,16] class V0A
102 Double32_t fV0AEq; //[0,0,16] class V0A Eq
103 Double32_t fZNA; //[0,0,16] class ZNA
105 ClassDef(AliNtupCumInfo,3) // Cumulant storage class
108 class AliNtupZdcInfo {
110 AliNtupZdcInfo() : fZna0(0), fZna1(0), fZna2(0), fZna3(0), fZna4(0) {;}
111 virtual ~AliNtupZdcInfo() {;}
114 Double32_t fZna0; // ZNA energy 0
115 Double32_t fZna1; // ZNA energy 1
116 Double32_t fZna2; // ZNA energy 2
117 Double32_t fZna3; // ZNA energy 3
118 Double32_t fZna4; // ZNA energy 4
120 ClassDef(AliNtupZdcInfo,1) // ZDC storage class