]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/RESONANCES/extra/AliAnalysisTaskResonanceQA.h
PWG2/SPECTRA -> PWGLF/SPECTRA migration
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / extra / AliAnalysisTaskResonanceQA.h
1 #ifndef ALIANALYSISTASKRESONANCEQA_H
2 #define ALIANALYSISTASKRESONANCEQA_H
3
4 // analysis task creating basic QA plots for resonance particles
5 // Author: Ayben Karasu Uysal
6 // Computes some QA histograms useful for checking productions and data
7 // both for counting resonances inside MC, and for checking PID performances
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,
28       kSigmaStarP,
29       kSigmaStarM,
30       kDeltaPP,
31       
32       // this must be last and counter
33       kResonances
34    };
35    
36    enum EEvtType {
37       kBadNoVertex,
38       kBadVertexOutZ,
39       kGoodEvent,
40       
41       // this must be last and counter
42       kEvtTypes
43    };
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;}
54    void           SetVz(Double_t vz)        {fVz = vz;}
55    
56    const char*    EvtName  (Int_t type) const {return EvtName  ((EEvtType)type);}
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);}
60    const char*    EvtName  (EEvtType type) const;
61    const char*    RsnName  (ERsn type)  const;
62    const char*    RsnSymbol(ERsn type)  const;
63    Int_t          RsnPDG   (ERsn type)  const;
64
65 private:
66
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
72    
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
81    TH2F  *fNFindableClusterPtBeforeCuts;  // N findable TPC clusters
82    TH2F  *fNCrossedRowsTPCPtBeforeCuts;   // crossed rows
83    TH3F  *fRsnYPt[2][kResonances];        // rapidity vs pt vs event type distribution of resonances
84    TH1I  *fProducedParticles;             // synoptic of all resonances
85       
86    AliESDEvent      *fESD;                //! temporary object (event)
87    AliESDpid        *fESDpid;             //  temporary object (PID)
88    AliESDtrackCuts  *fTrackCuts;          //  temporary object (quality track cuts)
89    
90    AliAnalysisTaskResonanceQA(const AliAnalysisTaskResonanceQA&);                // disabled
91    AliAnalysisTaskResonanceQA& operator=(const AliAnalysisTaskResonanceQA&);     // disabled
92
93    ClassDef(AliAnalysisTaskResonanceQA, 1);   // Resonance QA class
94 };
95
96 #endif
97
98