]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/EMCAL/AliEmcalTrackingQATask.h
Use variable bin sizes
[u/mrichter/AliRoot.git] / PWG / EMCAL / AliEmcalTrackingQATask.h
1 #ifndef ALIEMCALTRACKINGQATASK_H
2 #define ALIEMCALTRACKINGQATASK_H
3
4 #include "AliAnalysisTaskEmcal.h"
5
6 class AliParticleContainer;
7 class THnSparse;
8 class TH3;
9
10 class 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);
20   void                   SetSelectHIJING(Bool_t s)  {fSelectHIJING=s;}
21
22  protected:
23   Bool_t                 FillHistograms()                               ;
24   void                   ExecOnce()                                     ;
25   void                   GenerateHistoBins()                            ;
26   void                   AllocateFindableParticlesTHnSparse()           ;
27   void                   AllocateMatchedParticlesTHnSparse()            ;
28   void                   FillFindableParticlesTHnSparse(Double_t cent, Double_t partEta, Double_t partPhi, Double_t partPt);
29   void                   FillMatchedParticlesTHnSparse(Double_t cent, Double_t partEta, Double_t partPhi, Double_t partPt,
30                                                        Double_t trackEta, Double_t trackPhi, Double_t trackPt, Byte_t trackType);
31
32   // Task configuration
33   Bool_t                fSelectHIJING          ; //  select HIJING particles
34
35   // Service fields (non-streamed)
36   AliParticleContainer* fGeneratorLevel        ; //! generator level container
37   AliParticleContainer* fDetectorLevel         ; //! detector level container
38   Int_t                 fNPtHistBins           ; //! number of pt bins
39   Double_t*             fPtHistBins            ; //! pt bins
40   Int_t                 fNEtaHistBins          ; //! number of eta bins
41   Double_t*             fEtaHistBins           ; //! eta bins
42   Int_t                 fNPhiHistBins          ; //! number of phi bins
43   Double_t*             fPhiHistBins           ; //! phi bins
44   Int_t                 fNCentHistBins         ; //! number of cent bins
45   Double_t*             fCentHistBins          ; //! cent bins
46   Int_t                 fNPtResHistBins        ; //! number of pt res bins
47   Double_t*             fPtResHistBins         ; //! pt res bins
48   Int_t                 fNIntegerHistBins      ; //! number of integer bins
49   Double_t*             fIntegerHistBins       ; //! integer bins
50
51
52   // Histograms
53   TH3***                fTracksAll             ; //! all tracks
54   TH3***                fTracksSelected        ; //! selected tracks (e.g. remove injected signal in HIJING productions)
55   TH3**                 fParticlesAllPhysPrim  ; //! all physical primary particles
56   TH3**                 fParticlesSelected     ; //! selected physical primary particles (e.g. remove injected signal in HIJING productions)
57   THnSparse*            fParticlesFindable     ; //! findable physical primary particles (use PDG and charge selection)
58   THnSparse*            fParticlesMatched      ; //! primary particles matched to detector level tracks
59   
60  private:
61   AliEmcalTrackingQATask(const AliEmcalTrackingQATask&);            // not implemented
62   AliEmcalTrackingQATask &operator=(const AliEmcalTrackingQATask&); // not implemented
63
64   ClassDef(AliEmcalTrackingQATask, 1) // Track QA task (efficiency and pt resolution)
65 };
66 #endif