ROOT logo
#ifndef ALIANALYSISTASKEMCALJETMASSBKG_H
#define ALIANALYSISTASKEMCALJETMASSBKG_H

class TH1;
class TH2;
class TH3;
class TH3F;
class THnSparse;
class TClonesArray;
class TArrayI;
class TLorentzVector;
class AliAnalysisManager;
class AliJetContainer;

#include "AliAnalysisTaskEmcalJet.h"

class AliAnalysisTaskEmcalJetMassBkg : public AliAnalysisTaskEmcalJet {
 public:

  AliAnalysisTaskEmcalJetMassBkg();
  AliAnalysisTaskEmcalJetMassBkg(const char *name);
  virtual ~AliAnalysisTaskEmcalJetMassBkg();

  void                        UserCreateOutputObjects();
  void                        Terminate(Option_t *option);

  //Setters
  void                        SetJetContainerBase(Int_t c)                         { fContainerBase           = c          ; }

  void                        SetJetMinRC2LJ(Float_t d)                            { fMinRC2LJ                = d          ; }
  void                        SetRCperEvent(Int_t n)                               { fRCperEvent              = n          ; }
  void                        SetConeRadius(Double_t r)                            { fConeRadius              = r          ; }
  void                        SetConeEtaPhiEMCAL() ;
  void                        SetConeEtaPhiTPC()   ;
  void                        SetConeEtaLimits(Float_t min, Float_t max)           { fConeMinEta = min, fConeMaxEta = max  ; }
  void                        SetConePhiLimits(Float_t min, Float_t max)           { fConeMinPhi = min, fConeMaxPhi = max  ; }

 protected:
  void                        ExecOnce();
  Bool_t                      RetrieveEventObjects();
  Bool_t                      Run();
  Bool_t                      FillHistograms();

  void                        GetRandomCone(TLorentzVector& lvRC, Float_t &pt, Float_t &eta, Float_t &phi, AliParticleContainer* tracks, AliClusterContainer* clusters, AliEmcalJet *jet = 0) const;
  void                        GetCone(TLorentzVector& lvRC,Float_t &pt, Float_t eta, Float_t phi, AliParticleContainer* tracks, AliClusterContainer* clusters) const;
  void                        GetPerpCone(TLorentzVector& lvRC, Float_t &pt, Float_t &eta, Float_t &phi, AliParticleContainer* tracks, AliClusterContainer* clusters, AliEmcalJet *jet = 0) const;
  TLorentzVector              GetSubtractedVector(Double_t pt, Double_t eta, Double_t phi, Double_t e);
  TLorentzVector              GetBkgVector(Double_t eta, Double_t phi, AliJetContainer *cont);

  Int_t                       fContainerBase;              // jets to be tagged

  Float_t                     fMinRC2LJ;                   // Minimum distance random cone to leading jet
  Int_t                       fRCperEvent;                 // No. of random cones per event
  Double_t                    fConeRadius;                 // Radius of the random cones
  Float_t                     fConeMinEta;                 // Minimum eta of the random cones
  Float_t                     fConeMaxEta;                 // Maximum eta of the random cones
  Float_t                     fConeMinPhi;                 // Minimum phi of the random cones
  Float_t                     fConeMaxPhi;                 // Maximum phi of the random cones
  
  AliJetContainer            *fJetsCont;                   //!Jets
  AliParticleContainer       *fTracksCont;                 //!Tracks
  AliClusterContainer        *fCaloClustersCont;           //!Clusters  

 private:
  TH2F            **fh2PtVsMassRC;                //!pT vs mass of RC
  TH3F            **fh2PtVsMassRCExLJDPhi;        //!pT vs mass of RC excluding area around leading jet
  TH2F            **fh2PtVsMassPerpConeLJ;        //!pT vs mass of cone perpendicular to leading jet
  TH2F            **fh2PtVsMassPerpConeTJ;        //!pT vs mass of cone perpendicular to all tagged jets

  TH2F            **fh2PtVsERC;                   //!E vs mass of RC
  TH3F            **fh2PtVsERCExLJDPhi;           //!E vs mass of RC excluding area around leading jet
  TH2F            **fh2PtVsEPerpConeLJ;           //!E vs mass of cone perpendicular to leading jet
  TH2F            **fh2PtVsEPerpConeTJ;           //!E vs mass of cone perpendicular to all tagged jets

  TProfile        **fpPtVsMassRC;                 //!pT vs Avg mass of RC
  TProfile        **fpPtVsMassRCExLJ;             //!pT vs Avg mass of RC excluding area around leading jet
  TProfile        **fpPtVsMassPerpConeLJ;         //!pT vs Avg mass of cone perpendicular to leading jet
  TProfile        **fpPtVsMassPerpConeTJ;         //!pT vs Avg mass of cone perpendicular to all tagged jets

  TH2F            **fh2EtaVsMassRC;               //!eta vs mass of RC
  TH2F            **fh2EtaVsMassRCExLJ;           //!eta vs mass of RC excluding area around leading jet
  TH2F            **fh2EtaVsMassPerpConeLJ;       //!eta vs mass of cone perpendicular to leading jet
  TH2F            **fh2EtaVsMassPerpConeTJ;       //!eta vs mass of cone perpendicular to all tagged jets

  TH2F             *fh2CentVsMassRC;              //!cent vs mass of RC
  TH2F             *fh2CentVsMassRCExLJ;          //!cent vs mass of RC excluding area around leading jet
  TH2F             *fh2CentVsMassPerpConeLJ;      //!cent vs mass of RC perpendicular to leading jet
  TH2F             *fh2CentVsMassPerpConeTJ;      //!cent vs mass of RC perpendicular to tagged jets

  TH2F             *fh2MultVsMassRC;              //!track multiplicity vs mass of RC
  TH2F             *fh2MultVsMassRCExLJ;          //!track multiplicity vs mass of RC excluding area around leading jet
  TH2F             *fh2MultVsMassPerpConeLJ;      //!track multiplicity vs mass of RC perpendicular to leading jet
  TH2F             *fh2MultVsMassPerpConeTJ;      //!track multiplicity vs mass of RC perpendicular to tagged jets

  TH2F             *fh2CentVsMedianMassRC;        //!cent vs median mass of all RC in event
  TH2F             *fh2CentVsMedianMassRCExLJ;    //!cent vs meidan mass mass of all RC in event excluding area around leading jet

  TH2F             *fh2MultVsMedianMassRC;        //!cent vs median mass of all RC in event
  TH2F             *fh2MultVsMedianMassRCExLJ;    //!cent vs meidan mass mass of all RC in event excluding area around leading jet

  TH2F             *fh2CentVsMeanMassRC;          //!cent vs median mass of all RC in event
  TH2F             *fh2CentVsMeanMassRCExLJ;      //!cent vs meidan mass mass of all RC in event excluding area around leading jet

  TH2F             *fh2MultVsMeanMassRC;          //!cent vs median mass of all RC in event
  TH2F             *fh2MultVsMeanMassRCExLJ;      //!cent vs meidan mass mass of all RC in event excluding area around leading jet

  TH2F             *fh2CentVsMedianMassPerAreaRC;     //!cent vs median mass of all RC in event
  TH2F             *fh2CentVsMedianMassPerAreaRCExLJ; //!cent vs meidan mass mass of all RC in event excluding area around leading jet

  TH2F             *fh2MultVsMedianMassPerAreaRC;     //!cent vs median mass of all RC in event
  TH2F             *fh2MultVsMedianMassPerAreaRCExLJ; //!cent vs meidan mass mass of all RC in event excluding area around leading jet

  AliAnalysisTaskEmcalJetMassBkg(const AliAnalysisTaskEmcalJetMassBkg&);            // not implemented
  AliAnalysisTaskEmcalJetMassBkg &operator=(const AliAnalysisTaskEmcalJetMassBkg&); // not implemented

  ClassDef(AliAnalysisTaskEmcalJetMassBkg, 4)
};
#endif

 AliAnalysisTaskEmcalJetMassBkg.h:1
 AliAnalysisTaskEmcalJetMassBkg.h:2
 AliAnalysisTaskEmcalJetMassBkg.h:3
 AliAnalysisTaskEmcalJetMassBkg.h:4
 AliAnalysisTaskEmcalJetMassBkg.h:5
 AliAnalysisTaskEmcalJetMassBkg.h:6
 AliAnalysisTaskEmcalJetMassBkg.h:7
 AliAnalysisTaskEmcalJetMassBkg.h:8
 AliAnalysisTaskEmcalJetMassBkg.h:9
 AliAnalysisTaskEmcalJetMassBkg.h:10
 AliAnalysisTaskEmcalJetMassBkg.h:11
 AliAnalysisTaskEmcalJetMassBkg.h:12
 AliAnalysisTaskEmcalJetMassBkg.h:13
 AliAnalysisTaskEmcalJetMassBkg.h:14
 AliAnalysisTaskEmcalJetMassBkg.h:15
 AliAnalysisTaskEmcalJetMassBkg.h:16
 AliAnalysisTaskEmcalJetMassBkg.h:17
 AliAnalysisTaskEmcalJetMassBkg.h:18
 AliAnalysisTaskEmcalJetMassBkg.h:19
 AliAnalysisTaskEmcalJetMassBkg.h:20
 AliAnalysisTaskEmcalJetMassBkg.h:21
 AliAnalysisTaskEmcalJetMassBkg.h:22
 AliAnalysisTaskEmcalJetMassBkg.h:23
 AliAnalysisTaskEmcalJetMassBkg.h:24
 AliAnalysisTaskEmcalJetMassBkg.h:25
 AliAnalysisTaskEmcalJetMassBkg.h:26
 AliAnalysisTaskEmcalJetMassBkg.h:27
 AliAnalysisTaskEmcalJetMassBkg.h:28
 AliAnalysisTaskEmcalJetMassBkg.h:29
 AliAnalysisTaskEmcalJetMassBkg.h:30
 AliAnalysisTaskEmcalJetMassBkg.h:31
 AliAnalysisTaskEmcalJetMassBkg.h:32
 AliAnalysisTaskEmcalJetMassBkg.h:33
 AliAnalysisTaskEmcalJetMassBkg.h:34
 AliAnalysisTaskEmcalJetMassBkg.h:35
 AliAnalysisTaskEmcalJetMassBkg.h:36
 AliAnalysisTaskEmcalJetMassBkg.h:37
 AliAnalysisTaskEmcalJetMassBkg.h:38
 AliAnalysisTaskEmcalJetMassBkg.h:39
 AliAnalysisTaskEmcalJetMassBkg.h:40
 AliAnalysisTaskEmcalJetMassBkg.h:41
 AliAnalysisTaskEmcalJetMassBkg.h:42
 AliAnalysisTaskEmcalJetMassBkg.h:43
 AliAnalysisTaskEmcalJetMassBkg.h:44
 AliAnalysisTaskEmcalJetMassBkg.h:45
 AliAnalysisTaskEmcalJetMassBkg.h:46
 AliAnalysisTaskEmcalJetMassBkg.h:47
 AliAnalysisTaskEmcalJetMassBkg.h:48
 AliAnalysisTaskEmcalJetMassBkg.h:49
 AliAnalysisTaskEmcalJetMassBkg.h:50
 AliAnalysisTaskEmcalJetMassBkg.h:51
 AliAnalysisTaskEmcalJetMassBkg.h:52
 AliAnalysisTaskEmcalJetMassBkg.h:53
 AliAnalysisTaskEmcalJetMassBkg.h:54
 AliAnalysisTaskEmcalJetMassBkg.h:55
 AliAnalysisTaskEmcalJetMassBkg.h:56
 AliAnalysisTaskEmcalJetMassBkg.h:57
 AliAnalysisTaskEmcalJetMassBkg.h:58
 AliAnalysisTaskEmcalJetMassBkg.h:59
 AliAnalysisTaskEmcalJetMassBkg.h:60
 AliAnalysisTaskEmcalJetMassBkg.h:61
 AliAnalysisTaskEmcalJetMassBkg.h:62
 AliAnalysisTaskEmcalJetMassBkg.h:63
 AliAnalysisTaskEmcalJetMassBkg.h:64
 AliAnalysisTaskEmcalJetMassBkg.h:65
 AliAnalysisTaskEmcalJetMassBkg.h:66
 AliAnalysisTaskEmcalJetMassBkg.h:67
 AliAnalysisTaskEmcalJetMassBkg.h:68
 AliAnalysisTaskEmcalJetMassBkg.h:69
 AliAnalysisTaskEmcalJetMassBkg.h:70
 AliAnalysisTaskEmcalJetMassBkg.h:71
 AliAnalysisTaskEmcalJetMassBkg.h:72
 AliAnalysisTaskEmcalJetMassBkg.h:73
 AliAnalysisTaskEmcalJetMassBkg.h:74
 AliAnalysisTaskEmcalJetMassBkg.h:75
 AliAnalysisTaskEmcalJetMassBkg.h:76
 AliAnalysisTaskEmcalJetMassBkg.h:77
 AliAnalysisTaskEmcalJetMassBkg.h:78
 AliAnalysisTaskEmcalJetMassBkg.h:79
 AliAnalysisTaskEmcalJetMassBkg.h:80
 AliAnalysisTaskEmcalJetMassBkg.h:81
 AliAnalysisTaskEmcalJetMassBkg.h:82
 AliAnalysisTaskEmcalJetMassBkg.h:83
 AliAnalysisTaskEmcalJetMassBkg.h:84
 AliAnalysisTaskEmcalJetMassBkg.h:85
 AliAnalysisTaskEmcalJetMassBkg.h:86
 AliAnalysisTaskEmcalJetMassBkg.h:87
 AliAnalysisTaskEmcalJetMassBkg.h:88
 AliAnalysisTaskEmcalJetMassBkg.h:89
 AliAnalysisTaskEmcalJetMassBkg.h:90
 AliAnalysisTaskEmcalJetMassBkg.h:91
 AliAnalysisTaskEmcalJetMassBkg.h:92
 AliAnalysisTaskEmcalJetMassBkg.h:93
 AliAnalysisTaskEmcalJetMassBkg.h:94
 AliAnalysisTaskEmcalJetMassBkg.h:95
 AliAnalysisTaskEmcalJetMassBkg.h:96
 AliAnalysisTaskEmcalJetMassBkg.h:97
 AliAnalysisTaskEmcalJetMassBkg.h:98
 AliAnalysisTaskEmcalJetMassBkg.h:99
 AliAnalysisTaskEmcalJetMassBkg.h:100
 AliAnalysisTaskEmcalJetMassBkg.h:101
 AliAnalysisTaskEmcalJetMassBkg.h:102
 AliAnalysisTaskEmcalJetMassBkg.h:103
 AliAnalysisTaskEmcalJetMassBkg.h:104
 AliAnalysisTaskEmcalJetMassBkg.h:105
 AliAnalysisTaskEmcalJetMassBkg.h:106
 AliAnalysisTaskEmcalJetMassBkg.h:107
 AliAnalysisTaskEmcalJetMassBkg.h:108
 AliAnalysisTaskEmcalJetMassBkg.h:109
 AliAnalysisTaskEmcalJetMassBkg.h:110
 AliAnalysisTaskEmcalJetMassBkg.h:111
 AliAnalysisTaskEmcalJetMassBkg.h:112
 AliAnalysisTaskEmcalJetMassBkg.h:113
 AliAnalysisTaskEmcalJetMassBkg.h:114
 AliAnalysisTaskEmcalJetMassBkg.h:115
 AliAnalysisTaskEmcalJetMassBkg.h:116
 AliAnalysisTaskEmcalJetMassBkg.h:117
 AliAnalysisTaskEmcalJetMassBkg.h:118
 AliAnalysisTaskEmcalJetMassBkg.h:119