]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetMassBkg.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[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 AliAnalysisManager;
12 class AliJetContainer;
13
14 #include "AliAnalysisTaskEmcalJet.h"
15
16 class AliAnalysisTaskEmcalJetMassBkg : public AliAnalysisTaskEmcalJet {
17  public:
18
19   AliAnalysisTaskEmcalJetMassBkg();
20   AliAnalysisTaskEmcalJetMassBkg(const char *name);
21   virtual ~AliAnalysisTaskEmcalJetMassBkg();
22
23   void                        UserCreateOutputObjects();
24   void                        Terminate(Option_t *option);
25
26   //Setters
27   void                        SetJetContainerBase(Int_t c)                         { fContainerBase           = c          ; }
28
29   void                        SetJetMinRC2LJ(Float_t d)                            { fMinRC2LJ                = d          ; }
30   void                        SetRCperEvent(Int_t n)                               { fRCperEvent              = n          ; }
31   void                        SetConeRadius(Double_t r)                            { fConeRadius              = r          ; }
32   void                        SetConeEtaPhiEMCAL() ;
33   void                        SetConeEtaPhiTPC()   ;
34   void                        SetConeEtaLimits(Float_t min, Float_t max)           { fConeMinEta = min, fConeMaxEta = max  ; }
35   void                        SetConePhiLimits(Float_t min, Float_t max)           { fConeMinPhi = min, fConeMaxPhi = max  ; }
36
37  protected:
38   void                        ExecOnce();
39   Bool_t                      RetrieveEventObjects();
40   Bool_t                      Run();
41   Bool_t                      FillHistograms();
42
43   void                        GetRandomCone(TLorentzVector& lvRC, Float_t &pt, Float_t &eta, Float_t &phi, AliParticleContainer* tracks, AliClusterContainer* clusters, AliEmcalJet *jet = 0) const;
44   void                        GetCone(TLorentzVector& lvRC,Float_t &pt, Float_t eta, Float_t phi, AliParticleContainer* tracks, AliClusterContainer* clusters) const;
45   void                        GetPerpCone(TLorentzVector& lvRC, Float_t &pt, Float_t &eta, Float_t &phi, AliParticleContainer* tracks, AliClusterContainer* clusters, AliEmcalJet *jet = 0) const;
46
47   Int_t                       fContainerBase;              // jets to be tagged
48
49   Float_t                     fMinRC2LJ;                   // Minimum distance random cone to leading jet
50   Int_t                       fRCperEvent;                 // No. of random cones per event
51   Double_t                    fConeRadius;                 // Radius of the random cones
52   Float_t                     fConeMinEta;                 // Minimum eta of the random cones
53   Float_t                     fConeMaxEta;                 // Maximum eta of the random cones
54   Float_t                     fConeMinPhi;                 // Minimum phi of the random cones
55   Float_t                     fConeMaxPhi;                 // Maximum phi of the random cones
56   
57   AliJetContainer            *fJetsCont;                   //!Jets
58   AliParticleContainer       *fTracksCont;                 //!Tracks
59   AliClusterContainer        *fCaloClustersCont;           //!Clusters  
60
61  private:
62   TH2F            **fh2PtVsMassRC;                //!pT vs mass of RC
63   TProfile        **fpPtVsMassRC;                 //!pT vs Avg mass of RC
64   TH3F            **fh2PtVsMassRCExLJDPhi;        //!pT vs mass of RC
65   TProfile        **fpPtVsMassRCExLJ;             //!pT vs Avg mass of RC excluding area around leading jet
66   TH2F            **fh2PtVsMassPerpConeLJ;        //!pT vs mass of cone perpendicular to leading jet
67   TProfile        **fpPtVsMassPerpConeLJ;         //!pT vs Avg mass of cone perpendicular to leading jet
68   TH2F            **fh2PtVsMassPerpConeTJ;        //!pT vs mass of cone perpendicular to all tagged jets
69   TProfile        **fpPtVsMassPerpConeTJ;         //!pT vs Avg mass of cone perpendicular to all tagged jets
70
71   TH2F             *fh2CentVsMassRC;              //!cent vs mass of RC
72   TH2F             *fh2CentVsMassRCExLJ;          //!cent vs mass of RC excluding area around leading jet
73   TH2F             *fh2CentVsMassPerpConeLJ;      //!cent vs mass of RC perpendicular to leading jet
74   TH2F             *fh2CentVsMassPerpConeTJ;      //!cent vs mass of RC perpendicular to tagged jets
75
76   TH2F             *fh2MultVsMassRC;              //!track multiplicity vs mass of RC
77   TH2F             *fh2MultVsMassRCExLJ;          //!track multiplicity vs mass of RC excluding area around leading jet
78   TH2F             *fh2MultVsMassPerpConeLJ;      //!track multiplicity vs mass of RC perpendicular to leading jet
79   TH2F             *fh2MultVsMassPerpConeTJ;      //!track multiplicity vs mass of RC perpendicular to tagged jets
80
81   AliAnalysisTaskEmcalJetMassBkg(const AliAnalysisTaskEmcalJetMassBkg&);            // not implemented
82   AliAnalysisTaskEmcalJetMassBkg &operator=(const AliAnalysisTaskEmcalJetMassBkg&); // not implemented
83
84   ClassDef(AliAnalysisTaskEmcalJetMassBkg, 1)
85 };
86 #endif
87