updated
[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  private:
36   enum{
37     kAODanalysis = BIT(20),
38   };
39
40   AliVEvent   *fVevent;  //!V event object
41   AliESDEvent *fESD;    //!ESD object
42   AliAODEvent *fAOD;    //!AOD object
43   AliPIDResponse *fpidResponse; //!pid response
44
45   Bool_t      fFlagSparse;// switch to THnspare
46
47   TList       *fOutputList; //!Output list
48   TH1F        *fVtxZ;//!Vertex z 
49   TH1F        *fVtxX;//!Vertex x 
50   TH1F        *fVtxY;//!Vertex y 
51   TH2F        *fTrigMulti;//!trigger multiplicity 
52   TH1F        *fHistClustE;//!cluster energy
53   TH2F        *fEMCClsEtaPhi;//! EMC cluster eta and phi 
54   TH1F        *fNegTrkIDPt;//!neg track ID
55   TH1F        *fTrkPt;//!track pt
56   TH1F        *fTrketa;//!track eta
57   TH1F        *fTrkphi;//!track phi 
58   TH2F        *fdEdx;//!dedx vs pt
59   TH2F        *fTPCNpts;//!TPC Npoints used for dedx
60   TH2F        *fTPCnsig;//!TPC Nsigma
61   TH1F        *fHistPtMatch;//!tracks matched to EMCAL 
62   TH2F        *fEMCTrkMatch;//!Distance of EMC cluster to closest track in phi and z
63   TH1F        *fEMCTrkPt;//!tracks with EMCAL cluster
64   TH1F        *fEMCTrketa;//!EMC trk eta
65   TH1F        *fEMCTrkphi;//!EMC trk phi
66   TH2F        *fEMCdEdx;//!EMC trk dedx
67   TH2F        *fEMCTPCNpts;//!EMC Npoints used for dedx
68   TH2F        *fHistdEdxEop;//!E/p vs dedx
69   TH2F        *fHistEop;//!pt vs E/p
70   TH2F        *fEleCanTPCNpts;//!ele cand TPC Npoints used for dedx
71   TH2F        *fEleCanTPCNCls;//!ele cand TPC N clusters
72   TH2F        *fEleCanITSNCls;//!ele cand ITS N clusters
73   TH1F        *fEleCanITShit;//!ele cand ITS hit map
74   TH2F        *fEleCanSPD1;//!ele cand hit SPD layer 1
75   TH2F        *fEleCanSPD2;//!ele cand hit SPD layer 2
76   TH2F        *fEleCanSPDBoth;//!ele cand SPD both layer
77   TH2F        *fEleCanSPDOr;//!ele cand SPD or
78
79   THnSparse  *fSparseElectron;//!Electron info 
80   Double_t *fvalueElectron;//!Electron info
81
82   AliAnalysisTaskHFEemcQA(const AliAnalysisTaskHFEemcQA&); // not implemented
83   AliAnalysisTaskHFEemcQA& operator=(const AliAnalysisTaskHFEemcQA&); // not implemented
84
85   ClassDef(AliAnalysisTaskHFEemcQA, 1); // example of analysis
86 };
87
88 #endif
89
90