]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskJetShapeConst.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskJetShapeConst.h
1 #ifndef ALIANALYSISTASKJETSHAPECONST_H
2 #define ALIANALYSISTASKJETSHAPECONST_H
3
4 class TH1;
5 class TH2;
6 class TH3;
7 class THnSparse;
8 class TF1;
9 class TClonesArray;
10 class TArrayI;
11 class TTree;
12 class TLorentzVector;
13 class AliAnalysisManager;
14 class AliVParticle;
15 class AliJetContainer;
16
17 #include "AliAnalysisTaskEmcalJet.h"
18
19 class AliAnalysisTaskJetShapeConst : public AliAnalysisTaskEmcalJet {
20  public:
21   enum JetMassVarType {
22     kMass   = 0,  //jet mass
23     kRatMPt = 1    //ratio mass/pt jet
24   };
25
26   AliAnalysisTaskJetShapeConst();
27   AliAnalysisTaskJetShapeConst(const char *name);
28   virtual ~AliAnalysisTaskJetShapeConst();
29
30   void                                UserCreateOutputObjects();
31   void                                Terminate(Option_t *option);
32
33   //Setters
34   void SetCreateTree(Bool_t b)                                  { fCreateTree        = b   ; }
35
36   void SetJetContainerBase(Int_t c)                             { fContainerBase     = c   ; }
37   void SetJetContainerSub(Int_t c)                              { fContainerSub      = c   ; }
38   void SetJetContainerNoEmb(Int_t c)                            { fContainerNoEmb    = c   ; }
39   void SetMinFractionShared(Double_t f)                         { fMinFractionShared = f   ; }
40   void SetSingleTrackEmbedding(Bool_t b)                        { fSingleTrackEmb    = b   ; }
41   void SetJetMassVarType(JetMassVarType t)                      { fJetMassVarType    = t   ; }
42   void SetUseSumw2(Bool_t b)                                    { fUseSumw2          = b   ; }
43
44  protected:
45   Bool_t                              RetrieveEventObjects();
46   Bool_t                              Run();
47   Bool_t                              FillHistograms();
48
49   AliVParticle*                       GetEmbeddedConstituent(AliEmcalJet *jet);
50
51  private:
52   Int_t                               fContainerBase;              // jets to be analyzed
53   Int_t                               fContainerSub;               // subtracted jets to be analyzed
54   Int_t                               fContainerNoEmb;             // subtracted jets from Pb-Pb only events
55   Double_t                            fMinFractionShared;          // only fill histos for jets if shared fraction larger than X
56   Bool_t                              fSingleTrackEmb;             // single track embedding
57   Bool_t                              fCreateTree;                 // create output tree
58   JetMassVarType                      fJetMassVarType;             // observable to use
59   Bool_t                              fUseSumw2;                   // activate sumw2 for output histograms
60
61   TTree           *fTreeJetBkg;                                    //!tree with jet and bkg variables
62   TLorentzVector  *fJet1Vec;                                       // jet1(AA) vector  
63   TLorentzVector  *fJet2Vec;                                       // jet2(probe) vector
64   TLorentzVector  *fJetSubVec;                                     // subtracted AA jet vector
65   Float_t         fArea;                                           // area
66   Float_t         fAreaPhi;                                        // area phi
67   Float_t         fAreaEta;                                        // area eta
68   Float_t         fRho;                                            // rho
69   Float_t         fRhoM;                                           // rho_m
70   Int_t           fNConst;                                         // N constituents in jet1
71   Int_t           fMatch;                                          // 1: matched to MC jet; 0: no match
72
73   TH2F          **fh2MSubMatch;                                    //! subtracted jet mass vs match index (0: no match; 1:match)
74   TH2F          **fh2MSubPtRawAll;                                 //! subtracted jet mass vs subtracted jet pT
75   TH3F          **fh3MSubPtRawDRMatch;                             //! subtracted jet mass vs subtracted jet pT vs distance to leading Pb-Pb jet
76   TH3F          **fh3MSubPtTrueLeadPt;                             //! subtracted jet mass vs true jet pT vs LeadPt for matched jets for matched jets 
77   TH3F          **fh3MTruePtTrueLeadPt;                            //! true jet mass vs true jet pT vs LeadPt for matched jets for matched jets
78   TH3F          **fh3PtTrueDeltaMLeadPt;                           //! true jet pT vs (Msub - Mtrue) vs LeadPt for matched jets
79   TH3F          **fh3PtTrueDeltaMRelLeadPt;                        //! true jet pT vs (Msub - Mtrue)/Mtrue vs LeadPt for matched jets
80   THnSparse     **fhnMassResponse;                                 //! Msub vs Mtrue vs PtCorr vs PtTrue vs DR
81
82   AliAnalysisTaskJetShapeConst(const AliAnalysisTaskJetShapeConst&);            // not implemented
83   AliAnalysisTaskJetShapeConst &operator=(const AliAnalysisTaskJetShapeConst&); // not implemented
84
85   ClassDef(AliAnalysisTaskJetShapeConst, 6)
86 };
87 #endif
88
89
90