]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/EMCAL/AliEmcalTrackingQATask.h
Added SPD outlier trigger bit
[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   void                   SetDoSigma1OverPt(Bool_t s)      {fDoSigma1OverPt     = s; }
22   void                   SetDoSigmaPtOverPtGen(Bool_t s)  {fDoSigmaPtOverPtGen = s; }
23
24  protected:
25   Bool_t                 FillHistograms()                               ;
26   void                   ExecOnce()                                     ;
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);
36
37   // Task configuration
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)
41
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
61
62
63   // Histograms
64   THnSparse*            fTracks                ; //! all tracks
65   THnSparse*            fParticlesPhysPrim     ; //! all physical primary particles
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
72   ClassDef(AliEmcalTrackingQATask, 3) // Track QA task (efficiency and pt resolution)
73 };
74 #endif