1 #ifndef ALIEMCALTRACKINGQATASK_H
2 #define ALIEMCALTRACKINGQATASK_H
4 #include "AliAnalysisTaskEmcal.h"
6 class AliParticleContainer;
10 class AliEmcalTrackingQATask : public AliAnalysisTaskEmcal {
13 AliEmcalTrackingQATask();
14 AliEmcalTrackingQATask(const char *name);
15 virtual ~AliEmcalTrackingQATask();
17 void UserCreateOutputObjects();
18 void SetGeneratorLevelName(const char* name);
19 void SetDetectorLevelName(const char* name);
20 void SetSelectHIJING(Bool_t s) {fSelectHIJING = s; }
21 void SetDoSigma1OverPt(Bool_t s) {fDoSigma1OverPt = s; }
22 void SetDoSigmaPtOverPtGen(Bool_t s) {fDoSigmaPtOverPtGen = s; }
25 Bool_t FillHistograms() ;
27 void GenerateHistoBins() ;
28 void AllocateDetectorLevelTHnSparse() ;
29 void AllocateGeneratorLevelTHnSparse() ;
30 void AllocateMatchedParticlesTHnSparse() ;
31 void FillDetectorLevelTHnSparse(Double_t cent, Double_t trackEta, Double_t trackPhi, Double_t trackPt,
32 Double_t sigma1OverPt, Int_t mcGen, Byte_t trackType);
33 void FillGeneratorLevelTHnSparse(Double_t cent, Double_t partEta, Double_t partPhi, Double_t partPt, Int_t mcGen, Byte_t findable);
34 void FillMatchedParticlesTHnSparse(Double_t cent, Double_t partEta, Double_t partPhi, Double_t partPt,
35 Double_t trackEta, Double_t trackPhi, Double_t trackPt, Byte_t trackType);
38 Bool_t fSelectHIJING ; // select HIJING particles
39 Bool_t fDoSigma1OverPt ; // add sigma(1/pt), if false add sigma(pt)/pt instead
40 Bool_t fDoSigmaPtOverPtGen ; // MC: if true do sigma((ptgen - ptdet) / ptgen), otherwise do sigma((ptgen - ptdet) / ptdet)
42 // Service fields (non-streamed)
43 AliParticleContainer* fGeneratorLevel ; //! generator level container
44 AliParticleContainer* fDetectorLevel ; //! detector level container
45 Int_t fNPtHistBins ; //! number of pt bins
46 Double_t* fPtHistBins ; //! pt bins
47 Int_t fNEtaHistBins ; //! number of eta bins
48 Double_t* fEtaHistBins ; //! eta bins
49 Int_t fNPhiHistBins ; //! number of phi bins
50 Double_t* fPhiHistBins ; //! phi bins
51 Int_t fNCentHistBins ; //! number of cent bins
52 Double_t* fCentHistBins ; //! cent bins
53 Int_t fNPtRelDiffHistBins ; //! number of pt relative difference bins
54 Double_t* fPtRelDiffHistBins ; //! pt relative difference bins
55 Int_t fNPtResHistBins ; //! number of pt res bins
56 Double_t* fPtResHistBins ; //! pt res bins
57 Double_t* f1OverPtResHistBins ; //! 1/pt res bins
58 Int_t fN1OverPtResHistBins ; //! number of 1/pt res bins
59 Int_t fNIntegerHistBins ; //! number of integer bins
60 Double_t* fIntegerHistBins ; //! integer bins
64 THnSparse* fTracks ; //! all tracks
65 THnSparse* fParticlesPhysPrim ; //! all physical primary particles
66 THnSparse* fParticlesMatched ; //! primary particles matched to detector level tracks
69 AliEmcalTrackingQATask(const AliEmcalTrackingQATask&); // not implemented
70 AliEmcalTrackingQATask &operator=(const AliEmcalTrackingQATask&); // not implemented
72 ClassDef(AliEmcalTrackingQATask, 3) // Track QA task (efficiency and pt resolution)