]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalDiJetAna.h
from Chris
[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
30
31   //Getters
32   Int_t                       GetPtTriggerBin(Double_t pt);
33
34  protected:
35   Bool_t                      Run()              ;
36   void                        CorrelateJets(const Int_t type);
37   void                        CorrelateAllJets(const Int_t type);
38   void                        CorrelateTwoJets(const Int_t type);
39   void                        CorrelateLeadingSubleadingJets(const Int_t type);
40   AliEmcalJet                *GetLeadingJet(const Int_t type);
41   AliEmcalJet                *GetLeadingAssociatedJet(const Int_t type, AliEmcalJet *jetTrig);
42   AliEmcalJet                *GetSecondLeadingAssociatedJet(const Int_t type, AliEmcalJet *jetTrig);
43
44   Bool_t                      FillHistograms()   ;
45   void                        FillDiJetHistos(const AliEmcalJet *jet1 = 0, const AliEmcalJet *jet2 = 0, const Int_t mode = 0);
46   void                        FillThreeJetHistos(const AliEmcalJet *jet1 = 0, const AliEmcalJet *jet2 = 0, const AliEmcalJet *jet3 = 0, const Int_t mode = 0);
47   Bool_t                      RetrieveEventObjects();
48
49   void                        FillMatchFullChargedHistos(Int_t cFull,Int_t cCharged);
50   Int_t                       MatchFullAndChargedJets(Int_t cFull, Int_t cCharged);
51
52  private:
53   Bool_t            fDoMatchFullCharged;                  //  do full-charged matching histos
54   TH2F             *fh2CentRhoCh;                         //! cent vs rho charged
55   TH2F             *fh2CentRhoScaled;                     //! cent vs rho scaled
56   TH3F             *fh3PtEtaPhiJetFull;                   //! pt,eta,phi of full jets
57   TH3F             *fh3PtEtaPhiJetCharged;                //! pt,eta,phi of charged jets
58
59   THnSparse        *fhnDiJetVarsFull;                     //! sparse with di-jet properties (full-full)
60   THnSparse        *fhnDiJetVarsCh;                       //! sparse with di-jet properties (charged-charged)
61   THnSparse        *fhnDiJetVarsFullCharged;              //! sparse with di-jet properties (full-charged)
62   THnSparse        *fhnMatchingFullCharged;               //! sparse comparing full with matched charged jet
63   TH3F             *fh3JetPtFullFractionDR;               //! full jet pt vs highest shared charged fraction vs DeltaR
64
65   TH3F             *fh3DiJetKtNEFPtAssoc[4];              //! dijet kt vs NEF vs pTassoc for 4 trigger intervals
66
67   TH3F             *fCentCorrPtAssocCh[4];                //! default(V0A) vs ZNA centrality vs pT trigger assoc
68   TH3F             *fCentCorrPtAssocFuCh[4];              //! default(V0A) vs ZNA centrality vs pT trigger assoc
69
70   TH3F             *fAjPtAssocCentCh[4];                  //! Aj vs pT trigger assoc vs centrality
71   TH3F             *fAjPtAssocCentFuCh[4];                //! Aj vs pT trigger assoc vs centrality
72
73   TH3F             *fh3PtTrigKt1Kt2Ch;                    //! ptTrig vs kT1 vs kT2 for 3-jet events
74   TH3F             *fh3PtTrigKt1Kt2FuCh;                  //! ptTrig vs kT1 vs kT2 for 3-jet events
75
76   TH3F             *fh3PtTrigDPhi1DPhi2Ch;                //! ptTrig vs DPhi12 vs DPhi13 for 3-jet events
77   TH3F             *fh3PtTrigDPhi1DPhi2FuCh;              //! ptTrig vs DPhi12 vs DPhi13 for 3-jet events
78
79   TH3F             *fh3PtAssoc1PtAssoc2DPhi23Ch[4];       //! ptAssoc1 vs ptAssoc2 vs DPhi23 for 3-jet events
80   TH3F             *fh3PtAssoc1PtAssoc2DPhi23FuCh[4];     //! ptAssoc1 vs ptAssoc2 vs DPhi23 for 3-jet events
81
82   AliAnalysisTaskEmcalDiJetAna(const AliAnalysisTaskEmcalDiJetAna&);            // not implemented
83   AliAnalysisTaskEmcalDiJetAna &operator=(const AliAnalysisTaskEmcalDiJetAna&); // not implemented
84
85   ClassDef(AliAnalysisTaskEmcalDiJetAna, 8) // dijet analysis task
86 };
87 #endif