]>
Commit | Line | Data |
---|---|---|
035b8eff | 1 | #ifndef ALIANALYSISTASKRESONANCEQA_H |
2 | #define ALIANALYSISTASKRESONANCEQA_H | |
c865cb1d | 3 | |
4 | // analysis task creating basic QA plots for resonance particles | |
5 | // Author: Ayben Karasu Uysal | |
035b8eff | 6 | // Computes some QA histograms useful for checking productions and data |
7 | // both for counting resonances inside MC, and for checking PID performances | |
c865cb1d | 8 | |
9 | class TH1I; | |
10 | class TH1F; | |
11 | class TH2F; | |
12 | ||
13 | class AliESDpid; | |
14 | class AliESDEvent; | |
15 | class AliESDtrackCuts; | |
16 | ||
17 | #include "AliAnalysisTaskSE.h" | |
18 | ||
19 | class AliAnalysisTaskResonanceQA : public AliAnalysisTaskSE { | |
20 | public: | |
21 | ||
22 | enum ERsn { | |
23 | kPhi = 0, | |
24 | kKStar0, | |
25 | kRho, | |
26 | kLambdaStar, | |
27 | kXiStar0, | |
c865cb1d | 28 | kSigmaStarP, |
c865cb1d | 29 | kSigmaStarM, |
30 | kDeltaPP, | |
31 | ||
32 | // this must be last and counter | |
33 | kResonances | |
34 | }; | |
f4304ff3 | 35 | |
36 | enum EEvtType { | |
37 | kBadNoVertex, | |
38 | kBadVertexOutZ, | |
39 | kGoodEvent, | |
40 | ||
41 | // this must be last and counter | |
42 | kEvtTypes | |
43 | }; | |
c865cb1d | 44 | |
45 | AliAnalysisTaskResonanceQA(const char *name = "RsnQA"); | |
46 | virtual ~AliAnalysisTaskResonanceQA() {} | |
47 | ||
48 | virtual void UserCreateOutputObjects(); | |
49 | virtual void UserExec(Option_t *option); | |
50 | virtual void Terminate(Option_t *); | |
51 | ||
52 | void SetT0(AliESDpid::EStartTimeType_t ftype) {fT0 = ftype;} | |
53 | void SetPrimaryThr(Double_t d) {fPrimaryThr = d;} | |
e187bd70 | 54 | void SetVz(Double_t vz) {fVz = vz;} |
c865cb1d | 55 | |
f4304ff3 | 56 | const char* EvtName (Int_t type) const {return EvtName ((EEvtType)type);} |
035b8eff | 57 | const char* RsnName (Int_t type) const {return RsnName ((ERsn)type);} |
58 | const char* RsnSymbol(Int_t type) const {return RsnSymbol((ERsn)type);} | |
59 | Int_t RsnPDG (Int_t type) const {return RsnPDG ((ERsn)type);} | |
f4304ff3 | 60 | const char* EvtName (EEvtType type) const; |
035b8eff | 61 | const char* RsnName (ERsn type) const; |
62 | const char* RsnSymbol(ERsn type) const; | |
63 | Int_t RsnPDG (ERsn type) const; | |
c865cb1d | 64 | |
65 | private: | |
66 | ||
f4304ff3 | 67 | AliESDpid::EStartTimeType_t fT0; // T0 type for TOF computation |
68 | Double_t fPrimaryThr; // maximum DCA for selecting primary particles w.r. to gen primary vertex | |
69 | Double_t fVz; // maximum VZ for primary vertex (reconstructed) | |
70 | ||
71 | TList *fOutputList; // list with output histograms | |
c865cb1d | 72 | |
f4304ff3 | 73 | TH1I *fSelectedEvts; // selected events |
74 | TH1F *fEventVz; // Vz distribution of events | |
75 | TH2F *fdEdxTPC; // TPC PID QA | |
76 | TH2F *fdEdxITS; // ITS PID QA | |
77 | TH2F *fTOFpid; // TOF PID QA | |
78 | TH2F *fDCAXYvsPtBeforeCuts; // DCA QA r | |
79 | TH2F *fDCAZvsPtBeforeCuts; // DCA QA z | |
80 | TH2F *fNClusterPtBeforeCuts; // N cluster TPC | |
035b8eff | 81 | TH2F *fNFindableClusterPtBeforeCuts; // N findable TPC clusters |
82 | TH2F *fNCrossedRowsTPCPtBeforeCuts; // crossed rows | |
f4304ff3 | 83 | TH3F *fRsnYPt[2][kResonances]; // rapidity vs pt vs event type distribution of resonances |
035b8eff | 84 | TH1I *fProducedParticles; // synoptic of all resonances |
85 | ||
f4304ff3 | 86 | AliESDEvent *fESD; //! temporary object (event) |
87 | AliESDpid *fESDpid; // temporary object (PID) | |
88 | AliESDtrackCuts *fTrackCuts; // temporary object (quality track cuts) | |
c865cb1d | 89 | |
035b8eff | 90 | AliAnalysisTaskResonanceQA(const AliAnalysisTaskResonanceQA&); // disabled |
91 | AliAnalysisTaskResonanceQA& operator=(const AliAnalysisTaskResonanceQA&); // disabled | |
c865cb1d | 92 | |
035b8eff | 93 | ClassDef(AliAnalysisTaskResonanceQA, 1); // Resonance QA class |
c865cb1d | 94 | }; |
95 | ||
96 | #endif | |
97 | ||
98 |