]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/RESONANCES/extra/AliAnalysisTaskEventCount.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / extra / AliAnalysisTaskEventCount.h
1 #ifndef ALIANALYSISTASKEVENTCOUNT_H
2 #define ALIANALYSISTASKEVENTCOUNT_H
3
4 // analysis task creating basic QA plots for resonance particles
5 // Author: Ayben Karasu Uysal
6
7 class TH1I;
8 class TH1F;
9 class TH2F;
10
11 class AliESDpid;
12 class AliESDEvent;
13 class AliESDtrackCuts;
14
15 #include "AliAnalysisTaskSE.h"
16
17 class AliAnalysisTaskEventCount : public AliAnalysisTaskSE {
18 public:
19
20    enum EType {
21       kAll = 0,
22       kPassPhysicsSel,
23       kGoodPrimaryVertex,
24       kHas1TrackAny,
25       kHas1TrackQuality
26       
27       kTypes
28    };
29
30    AliAnalysisTaskEventCount(const char *name = "RsnQA");
31    virtual ~AliAnalysisTaskEventCount() {}
32
33    virtual void   UserCreateOutputObjects();
34    virtual void   UserExec(Option_t *option);
35    virtual void   Terminate(Option_t *);
36    
37    void               SetVzRange(Double_t vz)                      {fVz = vz;}
38    void               SetAcceptTPCPrimaryVertex(Bool_t yn = kTRUE) {fAcceptTPC = yn;}
39    static const char* Title(EType type);
40
41 private:
42
43    Bool_t            fAcceptTPC;     // accept TPC primary vertex?
44    Double_t          fVz;            // symmetric range around 0
45    TList            *fOutputList;    // output container
46    Bool_t            fCheck[kTypes]; // check if accepted according to criterion in enum
47    TH1I             *fHEvent;        // histogram with event counts
48    AliESDtrackCuts  *fTrackCuts;     // cut checker
49    
50    AliAnalysisTaskEventCount(const AliAnalysisTaskEventCount&);
51    AliAnalysisTaskEventCount& operator=(const AliAnalysisTaskEventCount&);
52
53    ClassDef(AliAnalysisTaskEventCount, 1);
54 };
55
56 inline const char* Title(AliAnalysisTaskEventCount::EType type)
57 {
58 //
59 // Title string depending on type
60 //
61    
62    switch (type) {
63       case kAll              : return "All";
64       case kPassPhysicsSel   : return "Phys Sel OK";
65       case kGoodPrimaryVertex: return "Good primary vertex";
66       case kHas1TrackAny     : return "1 track (any)";
67       case kHas1TrackQuality : return "1 track (quality OK)";
68       default                : return "Unknown";
69    }
70 }
71
72 #endif
73
74