]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/hfe/AliAnalysisTaskHFEemcQA.h
daadb863abb66f028db735c35cfe5bc725c0430b
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliAnalysisTaskHFEemcQA.h
1 #ifndef AliAnalysisTaskHFEemcQA_cxx
2 #define AliAnalysisTaskHFEemcQA_cxx
3
4 //QA task for EMCAL electron analysis 
5
6 class TH1F;
7 class THnSparse;
8 class AliESDEvent;
9 class AliAODEvent;
10 class AliHFEcontainer;
11 class AliHFEcuts;
12 class AliHFEpid;
13 class AliHFEpidQAmanager;
14 class AliCFManager;
15
16 #include "AliAnalysisTaskSE.h"
17
18 class AliAnalysisTaskHFEemcQA : public AliAnalysisTaskSE {
19   public:
20     AliAnalysisTaskHFEemcQA();
21     AliAnalysisTaskHFEemcQA(const char *name);
22     virtual ~AliAnalysisTaskHFEemcQA();
23
24     virtual void   UserCreateOutputObjects();
25     virtual void   UserExec(Option_t *option);
26     virtual void   Terminate(Option_t *);
27
28     void SetAODAnalysis() { SetBit(kAODanalysis, kTRUE); };
29     void SetESDAnalysis() { SetBit(kAODanalysis, kFALSE); };
30     Bool_t IsAODanalysis() const { return TestBit(kAODanalysis); };
31
32     Bool_t GetElecIDsparse() {return fFlagSparse;};
33     void SetElecIDsparse(Bool_t flagelecIDsparse){fFlagSparse = flagelecIDsparse;};
34     
35     Bool_t GetTenderSwitch() {return fUseTender;};
36     void SetTenderSwitch(Bool_t usetender){fUseTender = usetender;};
37
38   private:
39     enum{
40       kAODanalysis = BIT(20),
41     };
42
43     AliVEvent   *fVevent;  //!event object
44     AliESDEvent *fESD;    //!ESD object
45     AliAODEvent *fAOD;    //!AOD object
46     AliPIDResponse *fpidResponse; //!pid response
47
48     Bool_t      fFlagSparse;// switch to THnspare
49     Bool_t       fUseTender;// switch to add tender
50     
51     TClonesArray  *fTracks_tender;
52     TClonesArray  *fCaloClusters_tender;
53
54     TList       *fOutputList; //!Output list
55     TH1F        *fNevents;//! no of events
56     TH1F        *fVtxZ;//!Vertex z 
57     TH1F        *fVtxX;//!Vertex x 
58     TH1F        *fVtxY;//!Vertex y 
59     TH2F        *fTrigMulti;//!trigger multiplicity 
60     TH1F        *fHistClustE;//!cluster energy
61     TH2F        *fEMCClsEtaPhi;//! EMC cluster eta and phi
62     TH1F        *fHistoNCls;//! No of clusters per event
63     TH1F        *fHistoNCells;//! No of cells per cluster
64     TH1F        *fNegTrkIDPt;//!neg track ID
65     TH1F        *fTrkPt;//!track pt
66     TH1F        *fTrketa;//!track eta
67     TH1F        *fTrkphi;//!track phi 
68     TH2F        *fdEdx;//!dedx vs pt
69     TH2F        *fTPCNpts;//!TPC Npoints used for dedx
70     TH2F        *fTPCnsig;//!TPC Nsigma
71     TH1F        *fHistPtMatch;//!tracks matched to EMCAL 
72     TH2F        *fEMCTrkMatch;//!Distance of EMC cluster to closest track in phi and z
73     TH1F        *fEMCTrkPt;//!tracks with EMCAL cluster
74     TH1F        *fEMCTrketa;//!EMC trk eta
75     TH1F        *fEMCTrkphi;//!EMC trk phi
76     TH2F        *fEMCdEdx;//!EMC trk dedx
77     TH2F        *fEMCTPCnsig;//! EMC trk nsig
78     TH2F        *fEMCTPCNpts;//!EMC Npoints used for dedx
79     TH1F        *fClsEAftMatch;//!EMC Cluster energy after track matching 
80     TH2F        *fHistdEdxEop;//!E/p vs dedx
81     TH2F        *fHistNsigEop;//!E/p vs dedx
82     TH2F        *fHistEop;//!pt vs E/p
83     TH2F        *fM20;//!M20 vs pt
84     TH2F        *fM02;//!M20 vs pt
85     TH2F        *fM20EovP;//!M20 vs E/p
86     TH2F        *fM02EovP;//!M20 vs E/p
87     TH2F        *fEleCanTPCNpts;//!ele cand TPC Npoints used for dedx
88     TH2F        *fEleCanTPCNCls;//!ele cand TPC N clusters
89     TH2F        *fEleCanITSNCls;//!ele cand ITS N clusters
90     TH1F        *fEleCanITShit;//!ele cand ITS hit map
91     TH2F        *fEleCanSPD1;//!ele cand hit SPD layer 1
92     TH2F        *fEleCanSPD2;//!ele cand hit SPD layer 2
93     TH2F        *fEleCanSPDBoth;//!ele cand SPD both layer
94     TH2F        *fEleCanSPDOr;//!ele cand SPD or
95
96     THnSparse  *fSparseElectron;//!Electron info 
97     Double_t *fvalueElectron;//!Electron info
98
99     AliAnalysisTaskHFEemcQA(const AliAnalysisTaskHFEemcQA&); // not implemented
100     AliAnalysisTaskHFEemcQA& operator=(const AliAnalysisTaskHFEemcQA&); // not implemented
101
102     ClassDef(AliAnalysisTaskHFEemcQA, 1); // example of analysis
103 };
104
105 #endif
106
107