]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalDiJetAna.h
Merge branch 'master' into TPCdev
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskEmcalDiJetAna.h
1 #ifndef ALIANALYSISTASKEMCALDIJETANA_H
2 #define ALIANALYSISTASKEMCALDIJETANA_H
3
4 class TH1;
5 class TH2;
6 class TH3;
7 class TH3F;
8 class THnSparse;
9 class TClonesArray;
10 class TArrayI;
11 class AliAnalysisManager;
12 class AliGenPythiaEventHeader;
13
14 #include "AliJetContainer.h"
15
16 #include "AliAnalysisTaskEmcalDiJetBase.h"
17
18 class AliAnalysisTaskEmcalDiJetAna : public AliAnalysisTaskEmcalDiJetBase {
19  public:
20   AliAnalysisTaskEmcalDiJetAna();
21   AliAnalysisTaskEmcalDiJetAna(const char *name);
22   virtual ~AliAnalysisTaskEmcalDiJetAna();
23
24   void                        UserCreateOutputObjects();
25   void                        Terminate(Option_t *option);
26
27   //Setters
28   void                        SetMatchFullCharged(Bool_t b)        { fDoMatchFullCharged = b;}
29   void                        SetNKtBins(Int_t n)                  { fNKtBins = n;           }
30   void                        SetNDiJetEtaBins(Int_t n)            { fNDiJetEtaBins = n;     }
31   void                        SetNAjBins(Int_t n)                  { fNAjBins = n;           }
32
33   //Getters
34   Int_t                       GetPtTriggerBin(Double_t pt);
35
36  protected:
37   Bool_t                      Run()              ;
38   void                        CorrelateJets(const Int_t type);
39   void                        CorrelateAllJets(const Int_t type);
40   void                        CorrelateTwoJets(const Int_t type);
41   void                        CorrelateLeadingSubleadingJets(const Int_t type);
42   AliEmcalJet                *GetLeadingJet(const Int_t type);
43   AliEmcalJet                *GetLeadingAssociatedJet(const Int_t type, AliEmcalJet *jetTrig);
44   AliEmcalJet                *GetSecondLeadingAssociatedJet(const Int_t type, AliEmcalJet *jetTrig);
45
46   Bool_t                      FillHistograms()   ;
47   void                        FillDiJetHistos(const AliEmcalJet *jet1 = 0, const AliEmcalJet *jet2 = 0, const Int_t mode = 0);
48   void                        FillThreeJetHistos(const AliEmcalJet *jet1 = 0, const AliEmcalJet *jet2 = 0, const AliEmcalJet *jet3 = 0, const Int_t mode = 0);
49   Bool_t                      RetrieveEventObjects();
50
51   void                        FillMatchFullChargedHistos(Int_t cFull,Int_t cCharged);
52   Int_t                       MatchFullAndChargedJets(Int_t cFull, Int_t cCharged);
53
54  private:
55   Bool_t            fDoMatchFullCharged;                  //  do full-charged matching histos
56   Int_t             fNKtBins;                             // nbins on kT axis
57   Int_t             fNDiJetEtaBins;                       // nbins on dijet eta axis
58   Int_t             fNAjBins;                             // nbins on Aj axis
59   TH2F             *fh2CentRhoCh;                         //! cent vs rho charged
60   TH2F             *fh2CentRhoScaled;                     //! cent vs rho scaled
61   TH3F             *fh3PtEtaPhiJetFull;                   //! pt,eta,phi of full jets
62   TH3F             *fh3PtEtaPhiJetCharged;                //! pt,eta,phi of charged jets
63
64   THnSparse        *fhnDiJetVarsFull;                     //! sparse with di-jet properties (full-full)
65   THnSparse        *fhnDiJetVarsCh;                       //! sparse with di-jet properties (charged-charged)
66   THnSparse        *fhnDiJetVarsFullCharged;              //! sparse with di-jet properties (full-charged)
67   THnSparse        *fhnMatchingFullCharged;               //! sparse comparing full with matched charged jet
68
69   TH3F             *fh3DiJetKtNEFPtAssoc[4];              //! dijet kt vs NEF vs pTassoc for 4 trigger intervals
70
71   TH3F             *fCentCorrPtAssocCh[4];                //! default(V0A) vs ZNA centrality vs pT trigger assoc
72   TH3F             *fCentCorrPtAssocFuCh[4];              //! default(V0A) vs ZNA centrality vs pT trigger assoc
73
74   TH3F             *fAjPtAssocCentCh[4];                  //! Aj vs pT trigger assoc vs centrality
75   TH3F             *fAjPtAssocCentFuCh[4];                //! Aj vs pT trigger assoc vs centrality
76
77   TH3F             *fh3PtTrigKt1Kt2Ch;                    //! ptTrig vs kT1 vs kT2 for 3-jet events
78   TH3F             *fh3PtTrigKt1Kt2FuCh;                  //! ptTrig vs kT1 vs kT2 for 3-jet events
79
80   TH3F             *fh3PtTrigDPhi1DPhi2Ch;                //! ptTrig vs DPhi12 vs DPhi13 for 3-jet events
81   TH3F             *fh3PtTrigDPhi1DPhi2FuCh;              //! ptTrig vs DPhi12 vs DPhi13 for 3-jet events
82
83   TH3F             *fh3PtAssoc1PtAssoc2DPhi23Ch[4];       //! ptAssoc1 vs ptAssoc2 vs DPhi23 for 3-jet events
84   TH3F             *fh3PtAssoc1PtAssoc2DPhi23FuCh[4];     //! ptAssoc1 vs ptAssoc2 vs DPhi23 for 3-jet events
85
86   AliAnalysisTaskEmcalDiJetAna(const AliAnalysisTaskEmcalDiJetAna&);            // not implemented
87   AliAnalysisTaskEmcalDiJetAna &operator=(const AliAnalysisTaskEmcalDiJetAna&); // not implemented
88
89   ClassDef(AliAnalysisTaskEmcalDiJetAna, 11) // dijet analysis task
90 };
91 #endif