]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetMassBkg.h
Merge branch 'master' into TPCdev
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskEmcalJetMassBkg.h
1 #ifndef ALIANALYSISTASKEMCALJETMASSBKG_H
2 #define ALIANALYSISTASKEMCALJETMASSBKG_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 TLorentzVector;
12 class AliAnalysisManager;
13 class AliJetContainer;
14
15 #include "AliAnalysisTaskEmcalJet.h"
16
17 class AliAnalysisTaskEmcalJetMassBkg : public AliAnalysisTaskEmcalJet {
18  public:
19
20   AliAnalysisTaskEmcalJetMassBkg();
21   AliAnalysisTaskEmcalJetMassBkg(const char *name);
22   virtual ~AliAnalysisTaskEmcalJetMassBkg();
23
24   void                        UserCreateOutputObjects();
25   void                        Terminate(Option_t *option);
26
27   //Setters
28   void                        SetJetContainerBase(Int_t c)                         { fContainerBase           = c          ; }
29
30   void                        SetJetMinRC2LJ(Float_t d)                            { fMinRC2LJ                = d          ; }
31   void                        SetRCperEvent(Int_t n)                               { fRCperEvent              = n          ; }
32   void                        SetConeRadius(Double_t r)                            { fConeRadius              = r          ; }
33   void                        SetConeEtaPhiEMCAL() ;
34   void                        SetConeEtaPhiTPC()   ;
35   void                        SetConeEtaLimits(Float_t min, Float_t max)           { fConeMinEta = min, fConeMaxEta = max  ; }
36   void                        SetConePhiLimits(Float_t min, Float_t max)           { fConeMinPhi = min, fConeMaxPhi = max  ; }
37
38  protected:
39   void                        ExecOnce();
40   Bool_t                      RetrieveEventObjects();
41   Bool_t                      Run();
42   Bool_t                      FillHistograms();
43
44   void                        GetRandomCone(TLorentzVector& lvRC, Float_t &pt, Float_t &eta, Float_t &phi, AliParticleContainer* tracks, AliClusterContainer* clusters, AliEmcalJet *jet = 0) const;
45   void                        GetCone(TLorentzVector& lvRC,Float_t &pt, Float_t eta, Float_t phi, AliParticleContainer* tracks, AliClusterContainer* clusters) const;
46   void                        GetPerpCone(TLorentzVector& lvRC, Float_t &pt, Float_t &eta, Float_t &phi, AliParticleContainer* tracks, AliClusterContainer* clusters, AliEmcalJet *jet = 0) const;
47   TLorentzVector              GetSubtractedVector(Double_t pt, Double_t eta, Double_t phi, Double_t e);
48   TLorentzVector              GetBkgVector(Double_t eta, Double_t phi, AliJetContainer *cont);
49
50   Int_t                       fContainerBase;              // jets to be tagged
51
52   Float_t                     fMinRC2LJ;                   // Minimum distance random cone to leading jet
53   Int_t                       fRCperEvent;                 // No. of random cones per event
54   Double_t                    fConeRadius;                 // Radius of the random cones
55   Float_t                     fConeMinEta;                 // Minimum eta of the random cones
56   Float_t                     fConeMaxEta;                 // Maximum eta of the random cones
57   Float_t                     fConeMinPhi;                 // Minimum phi of the random cones
58   Float_t                     fConeMaxPhi;                 // Maximum phi of the random cones
59   
60   AliJetContainer            *fJetsCont;                   //!Jets
61   AliParticleContainer       *fTracksCont;                 //!Tracks
62   AliClusterContainer        *fCaloClustersCont;           //!Clusters  
63
64  private:
65   TH2F            **fh2PtVsMassRC;                //!pT vs mass of RC
66   TH3F            **fh2PtVsMassRCExLJDPhi;        //!pT vs mass of RC excluding area around leading jet
67   TH2F            **fh2PtVsMassPerpConeLJ;        //!pT vs mass of cone perpendicular to leading jet
68   TH2F            **fh2PtVsMassPerpConeTJ;        //!pT vs mass of cone perpendicular to all tagged jets
69
70   TH2F            **fh2PtVsERC;                   //!E vs mass of RC
71   TH3F            **fh2PtVsERCExLJDPhi;           //!E vs mass of RC excluding area around leading jet
72   TH2F            **fh2PtVsEPerpConeLJ;           //!E vs mass of cone perpendicular to leading jet
73   TH2F            **fh2PtVsEPerpConeTJ;           //!E vs mass of cone perpendicular to all tagged jets
74
75   TProfile        **fpPtVsMassRC;                 //!pT vs Avg mass of RC
76   TProfile        **fpPtVsMassRCExLJ;             //!pT vs Avg mass of RC excluding area around leading jet
77   TProfile        **fpPtVsMassPerpConeLJ;         //!pT vs Avg mass of cone perpendicular to leading jet
78   TProfile        **fpPtVsMassPerpConeTJ;         //!pT vs Avg mass of cone perpendicular to all tagged jets
79
80   TH2F            **fh2EtaVsMassRC;               //!eta vs mass of RC
81   TH2F            **fh2EtaVsMassRCExLJ;           //!eta vs mass of RC excluding area around leading jet
82   TH2F            **fh2EtaVsMassPerpConeLJ;       //!eta vs mass of cone perpendicular to leading jet
83   TH2F            **fh2EtaVsMassPerpConeTJ;       //!eta vs mass of cone perpendicular to all tagged jets
84
85   TH2F             *fh2CentVsMassRC;              //!cent vs mass of RC
86   TH2F             *fh2CentVsMassRCExLJ;          //!cent vs mass of RC excluding area around leading jet
87   TH2F             *fh2CentVsMassPerpConeLJ;      //!cent vs mass of RC perpendicular to leading jet
88   TH2F             *fh2CentVsMassPerpConeTJ;      //!cent vs mass of RC perpendicular to tagged jets
89
90   TH2F             *fh2MultVsMassRC;              //!track multiplicity vs mass of RC
91   TH2F             *fh2MultVsMassRCExLJ;          //!track multiplicity vs mass of RC excluding area around leading jet
92   TH2F             *fh2MultVsMassPerpConeLJ;      //!track multiplicity vs mass of RC perpendicular to leading jet
93   TH2F             *fh2MultVsMassPerpConeTJ;      //!track multiplicity vs mass of RC perpendicular to tagged jets
94
95   TH2F             *fh2CentVsMedianMassRC;        //!cent vs median mass of all RC in event
96   TH2F             *fh2CentVsMedianMassRCExLJ;    //!cent vs meidan mass mass of all RC in event excluding area around leading jet
97
98   TH2F             *fh2MultVsMedianMassRC;        //!cent vs median mass of all RC in event
99   TH2F             *fh2MultVsMedianMassRCExLJ;    //!cent vs meidan mass mass of all RC in event excluding area around leading jet
100
101   TH2F             *fh2CentVsMeanMassRC;          //!cent vs median mass of all RC in event
102   TH2F             *fh2CentVsMeanMassRCExLJ;      //!cent vs meidan mass mass of all RC in event excluding area around leading jet
103
104   TH2F             *fh2MultVsMeanMassRC;          //!cent vs median mass of all RC in event
105   TH2F             *fh2MultVsMeanMassRCExLJ;      //!cent vs meidan mass mass of all RC in event excluding area around leading jet
106
107   TH2F             *fh2CentVsMedianMassPerAreaRC;     //!cent vs median mass of all RC in event
108   TH2F             *fh2CentVsMedianMassPerAreaRCExLJ; //!cent vs meidan mass mass of all RC in event excluding area around leading jet
109
110   TH2F             *fh2MultVsMedianMassPerAreaRC;     //!cent vs median mass of all RC in event
111   TH2F             *fh2MultVsMedianMassPerAreaRCExLJ; //!cent vs meidan mass mass of all RC in event excluding area around leading jet
112
113   AliAnalysisTaskEmcalJetMassBkg(const AliAnalysisTaskEmcalJetMassBkg&);            // not implemented
114   AliAnalysisTaskEmcalJetMassBkg &operator=(const AliAnalysisTaskEmcalJetMassBkg&); // not implemented
115
116   ClassDef(AliAnalysisTaskEmcalJetMassBkg, 4)
117 };
118 #endif
119