]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/EMCAL/AliEmcalTrackingQATask.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / EMCAL / AliEmcalTrackingQATask.h
CommitLineData
eec7bbb0 1#ifndef ALIEMCALTRACKINGQATASK_H
2#define ALIEMCALTRACKINGQATASK_H
3
4#include "AliAnalysisTaskEmcal.h"
5
6class AliParticleContainer;
7class THnSparse;
8class TH3;
9
10class AliEmcalTrackingQATask : public AliAnalysisTaskEmcal {
11
12 public:
13 AliEmcalTrackingQATask();
14 AliEmcalTrackingQATask(const char *name);
15 virtual ~AliEmcalTrackingQATask();
16
17 void UserCreateOutputObjects();
18 void SetGeneratorLevelName(const char* name);
19 void SetDetectorLevelName(const char* name);
e00c3b87 20 void SetSelectHIJING(Bool_t s) {fSelectHIJING = s; }
21 void SetDoSigma1OverPt(Bool_t s) {fDoSigma1OverPt = s; }
22 void SetDoSigmaPtOverPtGen(Bool_t s) {fDoSigmaPtOverPtGen = s; }
eec7bbb0 23
24 protected:
25 Bool_t FillHistograms() ;
26 void ExecOnce() ;
427d6cf5 27 void GenerateHistoBins() ;
db9194f4 28 void AllocateDetectorLevelTHnSparse() ;
29 void AllocateGeneratorLevelTHnSparse() ;
eec7bbb0 30 void AllocateMatchedParticlesTHnSparse() ;
1876c758 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);
eec7bbb0 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);
36
37 // Task configuration
d7ab1a93 38 Bool_t fSelectHIJING ; // select HIJING particles
8c96eb55 39 Bool_t fDoSigma1OverPt ; // add sigma(1/pt), if false add sigma(pt)/pt instead
e00c3b87 40 Bool_t fDoSigmaPtOverPtGen ; // MC: if true do sigma((ptgen - ptdet) / ptgen), otherwise do sigma((ptgen - ptdet) / ptdet)
eec7bbb0 41
42 // Service fields (non-streamed)
43 AliParticleContainer* fGeneratorLevel ; //! generator level container
44 AliParticleContainer* fDetectorLevel ; //! detector level container
427d6cf5 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
8c96eb55 53 Int_t fNPtRelDiffHistBins ; //! number of pt relative difference bins
54 Double_t* fPtRelDiffHistBins ; //! pt relative difference bins
427d6cf5 55 Int_t fNPtResHistBins ; //! number of pt res bins
8c96eb55 56 Double_t* fPtResHistBins ; //! pt res bins
57 Double_t* f1OverPtResHistBins ; //! 1/pt res bins
1876c758 58 Int_t fN1OverPtResHistBins ; //! number of 1/pt res bins
427d6cf5 59 Int_t fNIntegerHistBins ; //! number of integer bins
60 Double_t* fIntegerHistBins ; //! integer bins
61
eec7bbb0 62
63 // Histograms
1876c758 64 THnSparse* fTracks ; //! all tracks
65 THnSparse* fParticlesPhysPrim ; //! all physical primary particles
eec7bbb0 66 THnSparse* fParticlesMatched ; //! primary particles matched to detector level tracks
67
68 private:
69 AliEmcalTrackingQATask(const AliEmcalTrackingQATask&); // not implemented
70 AliEmcalTrackingQATask &operator=(const AliEmcalTrackingQATask&); // not implemented
71
e00c3b87 72 ClassDef(AliEmcalTrackingQATask, 3) // Track QA task (efficiency and pt resolution)
eec7bbb0 73};
74#endif