]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskSAQA.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskSAQA.h
1 #ifndef ALIANALYSISTASKSAQA_H
2 #define ALIANALYSISTASKSAQA_H
3
4 // $Id$
5
6 class TH1;
7 class TH2;
8 class TH3;
9 class THnSparse;
10 class AliVVZERO;
11
12 #include "AliAnalysisTaskEmcalJet.h"
13
14 class AliAnalysisTaskSAQA : public AliAnalysisTaskEmcalJet {
15  public:
16   AliAnalysisTaskSAQA();
17   AliAnalysisTaskSAQA(const char *name);
18   virtual ~AliAnalysisTaskSAQA();
19
20   void                        UserCreateOutputObjects();
21
22   void                        SetCellEnergyCut(Float_t cut)                        { fCellEnergyCut      = cut        ; }
23   void                        SetParticleLevel(Bool_t s)                           { fParticleLevel      = s          ; }
24   void                        SetMC(Bool_t m)                                      { fIsMC               = m          ; }
25   void                        SetAdditionalCentEst(const char* meth2, const char* meth3="") { fCentMethod2 = meth2; fCentMethod3 = meth3; }
26   void                        SetDoV0QA(Int_t b)                                   { fDoV0QA             = b          ; }
27   void                        SetDoEPQA(Int_t b)                                   { fDoEPQA             = b          ; }
28   void                        SetMaxCellsInCluster(Int_t b)                        { fMaxCellsInCluster  = b          ; }
29   void                        SetDoLeadingObjectPosition(Int_t b)                  { fDoLeadingObjectPosition = b     ; }
30
31  protected:
32
33   void                        AllocateHistogramArrays()                                     ;
34   void                        ExecOnce()                                                    ;
35   Bool_t                      FillHistograms()                                              ;
36   void                        FillEventQAHisto(Float_t cent, Float_t cent2, Float_t cent3, Float_t v0a, Float_t v0c, Float_t ep, Float_t rho, 
37                                                Int_t ntracks, Int_t nclusters, Int_t ncells, Int_t njets, 
38                                                Float_t maxTrackPt, Float_t maxTrackEta, Float_t maxTrackPhi,
39                                                Float_t maxClusterE, Float_t maxClusterEta, Float_t maxClusterPhi,
40                                                Float_t maxJetPt, Float_t maxJetEta, Float_t maxJetPhi);
41   Bool_t                      RetrieveEventObjects()                                        ;
42   Int_t                       DoCellLoop(Float_t &sum)                    ;
43   Int_t                       DoTrackLoop(Float_t &sum, AliVParticle* &leading)             ;
44   Int_t                       DoClusterLoop(Float_t &sum, AliVCluster* &leading)            ;
45   Int_t                       DoJetLoop(AliEmcalJet* &leading)                              ;
46   Double_t                    GetFcross(AliVCluster *cluster, AliVCaloCells *cells)         ;
47
48   Float_t                     fCellEnergyCut;            // Energy cell cut
49   Bool_t                      fParticleLevel;            // Set particle level analysis
50   Bool_t                      fIsMC;                     // Trigger, MC analysis
51   TString                     fCentMethod2;              // Centrality method 2
52   TString                     fCentMethod3;              // Centrality method 3
53   Int_t                       fDoV0QA;                   // Add V0 QA histograms
54   Int_t                       fDoEPQA;                   // Add event plane QA histograms
55   Int_t                       fDoLeadingObjectPosition;  // Add axis for leading object position (eta-phi)
56   Int_t                       fMaxCellsInCluster;        // Maximum number (approx) of cells in a cluster
57   Double_t                    fCent2;                    //!Event centrality with method 2
58   Double_t                    fCent3;                    //!Event centrality with method 3
59   AliVVZERO                  *fVZERO;                    //!Event V0 object
60   Double_t                    fV0ATotMult;               //!Event V0A total multiplicity
61   Double_t                    fV0CTotMult;               //!Event V0C total multiplicity
62  
63   // General histograms
64   THnSparse                  *fHistEventQA;              //!Event-wise QA observables
65
66   // Tracks
67   TH1                       **fHistTrNegativeLabels;  //!Percentage of negative label tracks
68   TH1                       **fHistTrZeroLabels;      //!Percentage of tracks with label=0
69   TH3                      ***fHistTrPhiEtaPt;        //!Phi-Eta-Pt distribution of tracks
70   TH2                       **fHistTrPhiEtaZeroLab;   //!Phi-Eta distribution of tracks with label=0
71   TH1                       **fHistTrPtZeroLab;       //!Pt distribution of tracks with label=0
72   TH2                       **fHistTrEmcPhiEta;       //!Phi-Eta emcal propagated distribution of tracks
73   TH1                       **fHistTrEmcPt;           //!Pt emcal propagated distribution of tracks
74   TH2                       **fHistTrPhiEtaNonProp;   //!Phi-Eta distribution of non emcal propagated tracks
75   TH1                       **fHistTrPtNonProp;       //!Pt distribution of non emcal propagated tracks
76   TH2                       **fHistDeltaEtaPt;        //!Eta-EtaProp vs. Pt
77   TH2                       **fHistDeltaPhiPt;        //!Phi-PhiProp vs. Pt
78   TH2                       **fHistDeltaPtvsPt;       //!Pt-PtProp vs. Pt
79
80   // Clusters
81   TH3                       **fHistClusPhiEtaEnergy;       //!Phi-Eta-Energy distribution of clusters
82   TH2                       **fHistClusDeltaPhiEPEnergy;   //!DeltaPhi EP vs Energy of clusters
83   TH2                       **fHistNCellsEnergy;           //!Number of cells vs. energy of cluster
84   TH2                       **fHistFcrossEnergy;           //!Fcross vs. energy of cluster
85   TH2                       **fHistClusTimeEnergy;         //!Time vs. energy of cluster
86   TH1                       **fHistClusMCEnergyFraction;   //!MC energy fraction (embedding)
87
88   // EMCAL Cells
89   TH2                       **fHistCellsAbsIdEnergy;  //!Energy spectrum of cells
90
91   // Jets
92   TH2                       **fHistJetsPhiEta;        //!Phi-Eta distribution of jets
93   TH2                       **fHistJetsPtArea;        //!Pt vs. area of jets
94
95  private:
96   AliAnalysisTaskSAQA(const AliAnalysisTaskSAQA&);            // not implemented
97   AliAnalysisTaskSAQA &operator=(const AliAnalysisTaskSAQA&); // not implemented
98
99   ClassDef(AliAnalysisTaskSAQA, 23) // Quality task for Emcal analysis
100 };
101 #endif