]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskJetShapeGR.h
Merge branch 'TPCdev' of https://git.cern.ch/reps/AliRoot into TPCdev
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskJetShapeGR.h
1 #ifndef ALIANALYSISTASKJETSHAPEGR_H
2 #define ALIANALYSISTASKJETSHAPEGR_H
3
4 class TH1;
5 class TH2;
6 class TH3;
7 class TH3F;
8 class THnSparse;
9 class TF1;
10 class TLorentzVector;
11 class TClonesArray;
12 class TArrayI;
13 class TTree;
14 class TLorentzVector;
15 class AliAnalysisManager;
16 class AliVParticle;
17 class AliJetContainer;
18
19 namespace fastjet {
20   class PseudoJet;
21   class GenericSubtractor;
22 }
23
24 #include "AliAnalysisTaskEmcalJet.h"
25
26 class AliAnalysisTaskJetShapeGR : public AliAnalysisTaskEmcalJet {
27  public:
28
29   AliAnalysisTaskJetShapeGR();
30   AliAnalysisTaskJetShapeGR(const char *name);
31   virtual ~AliAnalysisTaskJetShapeGR();
32
33   void                                UserCreateOutputObjects();
34   void                                Terminate(Option_t *option);
35
36   //Setters
37   void SetCreateTree(Bool_t b)                                  { fCreateTree        = b   ; }
38
39   void SetJetContainerBase(Int_t c)                             { fContainerBase     = c   ; }
40   void SetJetContainerSub(Int_t c)                              { fContainerSub      = c   ; }
41   void SetJetContainerTrue(Int_t c)                             { fContainerTrue     = c   ; }
42   void SetMinFractionShared(Double_t f)                         { fMinFractionShared = f   ; }
43   void SetSingleTrackEmbedding(Bool_t b)                        { fSingleTrackEmb    = b   ; }
44
45  protected:
46   Bool_t                              RetrieveEventObjects();
47   Bool_t                              Run();
48   Bool_t                              FillHistograms();
49   Bool_t                              FillTrueJets();
50
51   AliVParticle*                       GetEmbeddedConstituent(AliEmcalJet *jet);
52
53   Double_t                            CalcGR(AliEmcalJet *jet, Int_t ic);
54   Double_t                            CalcDeltaGR(AliEmcalJet *jet, Int_t ic, TArrayF *fNum, TArrayF *fDen);//Double_t *num, Double_t *den);
55   Double_t                            GetDeltaPhi(Double_t phi1,Double_t phi2);
56
57   Int_t                               fContainerBase;              // jets to be analyzed
58   Int_t                               fContainerSub;               // subtracted jets to be analyzed
59   Int_t                               fContainerTrue;              // true jets to be analyzed
60   Double_t                            fMinFractionShared;          // only fill histos for jets if shared fraction larger than X
61   Bool_t                              fSingleTrackEmb;             // single track embedding
62   Bool_t                              fCreateTree;                 // create output tree
63
64   TTree           *fTreeJetBkg;                                    //!tree with jet and bkg variables
65   TLorentzVector  *fJet1Vec;                                       // jet1(AA) vector  
66   TLorentzVector  *fJet2Vec;                                       // jet2(probe) vector
67   TLorentzVector  *fJetSubVec;                                     // subtracted AA jet vector
68   Float_t         fArea;                                           // area
69   Float_t         fAreaPhi;                                        // area phi
70   Float_t         fAreaEta;                                        // area eta
71   Float_t         fRho;                                            // rho
72   Float_t         fRhoM;                                           // rho_m
73   Int_t           fNConst;                                         // N constituents in jet1
74   Int_t           fMatch;                                          // 1: matched to MC jet; 0: no match
75   Double_t        fDRStep;                                         // step width
76   Double_t        fMaxR;                                           // max R
77
78   TH2F          **fh2PtTrueDeltaGR;                                 //! true jet pT vs (Msub - Mtrue)
79   TH2F          **fh2PtTrueDeltaGRRel;                              //! true jet pT vs (Msub - Mtrue)/Mtrue
80   THnSparse     **fhnGRResponse;                                    //! Msub vs Mtrue vs PtCorr vs PtTrue
81
82   //Histos for true jets
83   TH1F          **fh1PtTrue;                                        //! bookkeep number of jets vs Pt
84   TH3F          **fh3DeltaGRNumRPtTrue;                             //! Numerator of DeltaGR vs R vs Pt
85   TH3F          **fh3DeltaGRDenRPtTrue;                             //! Denomerator of DeltaGR vs R vs Pt
86   TH2F          **fh2DeltaGRNumRPtTrue;                             //! Numerator of DeltaGR vs R vs Pt : filled with weights of sum
87   TH2F          **fh2DeltaGRDenRPtTrue;                             //! Denomerator of DeltaGR vs R vs Pt : filled with weights of sum
88
89   //Histos for raw AA jets
90   TH1F          **fh1PtRaw;                                       //! bookkeep number of jets vs Pt
91   TH3F          **fh3DeltaGRNumRPtRaw;                            //! Numerator of DeltaGR vs R vs Pt
92   TH3F          **fh3DeltaGRDenRPtRaw;                            //! Denomerator of DeltaGR vs R vs Pt
93   TH2F          **fh2DeltaGRNumRPtRaw;                            //! Numerator of DeltaGR vs R vs Pt : filled with weights of sum
94   TH2F          **fh2DeltaGRDenRPtRaw;                            //! Denomerator of DeltaGR vs R vs Pt : filled with weights of sum
95
96   //Histos for raw AA jets matched to MC
97   TH1F          **fh1PtRawMatch;                                  //! bookkeep number of jets vs Pt
98   TH3F          **fh3DeltaGRNumRPtRawMatch;                       //! Numerator of DeltaGR vs R vs Pt
99   TH3F          **fh3DeltaGRDenRPtRawMatch;                       //! Denomerator of DeltaGR vs R vs Pt
100   TH2F          **fh2DeltaGRNumRPtRawMatch;                       //! Numerator of DeltaGR vs R vs Pt : filled with weights of sum
101   TH2F          **fh2DeltaGRDenRPtRawMatch;                       //! Denomerator of DeltaGR vs R vs Pt : filled with weights of sum
102
103   //Histos for matched jets and subtracted
104   TH1F          **fh1PtMatch;                                       //! bookkeep number of jets vs Pt
105   TH3F          **fh3DeltaGRNumRPtMatch;                            //! Numerator of DeltaGR vs R vs Pt
106   TH3F          **fh3DeltaGRDenRPtMatch;                            //! Denomerator of DeltaGR vs R vs Pt
107   TH2F          **fh2DeltaGRNumRPtMatch;                            //! Numerator of DeltaGR vs R vs Pt : filled with weights of sum
108   TH2F          **fh2DeltaGRDenRPtMatch;                            //! Denomerator of DeltaGR vs R vs Pt : filled with weights of sum
109   TH2F          **fh2DeltaGRNumRPtTrueMatch;                            //! Numerator of DeltaGR vs R vs Pt : filled with weights of sum
110   TH2F          **fh2DeltaGRDenRPtTrueMatch;                            //! Denomerator of DeltaGR vs R vs Pt : filled with weights of sum
111
112  private:
113   AliAnalysisTaskJetShapeGR(const AliAnalysisTaskJetShapeGR&);            // not implemented
114   AliAnalysisTaskJetShapeGR &operator=(const AliAnalysisTaskJetShapeGR&); // not implemented
115
116   ClassDef(AliAnalysisTaskJetShapeGR, 1)
117 };
118 #endif
119
120
121