1 #ifndef AliAnalysisTaskHFEemcQA_cxx
2 #define AliAnalysisTaskHFEemcQA_cxx
4 //QA task for EMCAL electron analysis
10 class AliHFEcontainer;
13 class AliHFEpidQAmanager;
16 #include "AliAnalysisTaskSE.h"
18 class AliAnalysisTaskHFEemcQA : public AliAnalysisTaskSE {
20 AliAnalysisTaskHFEemcQA();
21 AliAnalysisTaskHFEemcQA(const char *name);
22 virtual ~AliAnalysisTaskHFEemcQA();
24 virtual void UserCreateOutputObjects();
25 virtual void UserExec(Option_t *option);
26 virtual void Terminate(Option_t *);
28 void SetAODAnalysis() { SetBit(kAODanalysis, kTRUE); };
29 void SetESDAnalysis() { SetBit(kAODanalysis, kFALSE); };
30 Bool_t IsAODanalysis() const { return TestBit(kAODanalysis); };
32 Bool_t GetElecIDsparse() {return fFlagSparse;};
33 void SetElecIDsparse(Bool_t flagelecIDsparse){fFlagSparse = flagelecIDsparse;};
35 Bool_t GetTenderSwitch() {return fUseTender;};
36 void SetTenderSwitch(Bool_t usetender){fUseTender = usetender;};
40 kAODanalysis = BIT(20),
43 AliVEvent *fVevent; //!event object
44 AliESDEvent *fESD; //!ESD object
45 AliAODEvent *fAOD; //!AOD object
46 AliPIDResponse *fpidResponse; //!pid response
48 Bool_t fFlagSparse;// switch to THnspare
49 Bool_t fUseTender;// switch to add tender
51 TClonesArray *fTracks_tender;
52 TClonesArray *fCaloClusters_tender;
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
96 THnSparse *fSparseElectron;//!Electron info
97 Double_t *fvalueElectron;//!Electron info
99 AliAnalysisTaskHFEemcQA(const AliAnalysisTaskHFEemcQA&); // not implemented
100 AliAnalysisTaskHFEemcQA& operator=(const AliAnalysisTaskHFEemcQA&); // not implemented
102 ClassDef(AliAnalysisTaskHFEemcQA, 1); // example of analysis