ROOT logo
#ifndef ALIANALYSISTASKJETMASSRESPONSEDET_H
#define ALIANALYSISTASKJETMASSRESPONSEDET_H

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

#include "AliAnalysisTaskEmcalJet.h"

class AliAnalysisTaskJetMassResponseDet : public AliAnalysisTaskEmcalJet {
 public:
  enum JetMassType {
    kRaw   = 0,  //mass form anti-kt 4-vector
    kDeriv = 1   //area based subtracted jet mass
  };

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

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

  //Setters
  void SetJetContainerPart(Int_t c)                             { fContainerPart     = c   ; }
  void SetJetContainerDet(Int_t c)                              { fContainerDet      = c   ; }
  void SetJetMassType(JetMassType t)                            { fJetMassType       = t   ; }

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

  Double_t                            GetJetMass(AliEmcalJet *jet);
 
  Int_t                               fContainerPart;              // particle level jets
  Int_t                               fContainerDet;               // detector level jets
  JetMassType                         fJetMassType;                // jet mass type to be used

  TH2F            *fh2PtVsMassJetPartAll;            //!pT vs mass of all particle level jets
  TH2F            *fh2PtVsMassJetPartMatch;          //!pT vs mass of all particle level jets matched to a detector level jet
  TH2F            *fh2PtVsMassJetPartTagged;         //!pT vs mass of tagged particle level jets
  TH2F            *fh2PtVsMassJetPartTaggedMatch;    //!pT vs mass of tagged particle level jets matched to a detector level jet
  TH2F            *fh2PtVsMassJetDetAll;             //!pT vs mass of all detector level jets
  TH2F            *fh2PtVsMassJetDetTagged;          //!pT vs mass of tagged detector level jets
  TH2F            *fh2EtaPhiMatchedDet;              //!eta,phi of matched detector level jets
  TH2F            *fh2EtaPhiMatchedPart;             //!eta,phi of matched particle level jets
  THnSparse       *fhnMassResponse;                  //!response matrix

  TH1D            *fh1AreaPartAll;                   //!area of all particle level jets
  TH1D            *fh1AreaDetAll;                    //!area of all detector level jets

 private:
  AliAnalysisTaskJetMassResponseDet(const AliAnalysisTaskJetMassResponseDet&);            // not implemented
  AliAnalysisTaskJetMassResponseDet &operator=(const AliAnalysisTaskJetMassResponseDet&); // not implemented

  ClassDef(AliAnalysisTaskJetMassResponseDet, 3)
};
#endif

 AliAnalysisTaskJetMassResponseDet.h:1
 AliAnalysisTaskJetMassResponseDet.h:2
 AliAnalysisTaskJetMassResponseDet.h:3
 AliAnalysisTaskJetMassResponseDet.h:4
 AliAnalysisTaskJetMassResponseDet.h:5
 AliAnalysisTaskJetMassResponseDet.h:6
 AliAnalysisTaskJetMassResponseDet.h:7
 AliAnalysisTaskJetMassResponseDet.h:8
 AliAnalysisTaskJetMassResponseDet.h:9
 AliAnalysisTaskJetMassResponseDet.h:10
 AliAnalysisTaskJetMassResponseDet.h:11
 AliAnalysisTaskJetMassResponseDet.h:12
 AliAnalysisTaskJetMassResponseDet.h:13
 AliAnalysisTaskJetMassResponseDet.h:14
 AliAnalysisTaskJetMassResponseDet.h:15
 AliAnalysisTaskJetMassResponseDet.h:16
 AliAnalysisTaskJetMassResponseDet.h:17
 AliAnalysisTaskJetMassResponseDet.h:18
 AliAnalysisTaskJetMassResponseDet.h:19
 AliAnalysisTaskJetMassResponseDet.h:20
 AliAnalysisTaskJetMassResponseDet.h:21
 AliAnalysisTaskJetMassResponseDet.h:22
 AliAnalysisTaskJetMassResponseDet.h:23
 AliAnalysisTaskJetMassResponseDet.h:24
 AliAnalysisTaskJetMassResponseDet.h:25
 AliAnalysisTaskJetMassResponseDet.h:26
 AliAnalysisTaskJetMassResponseDet.h:27
 AliAnalysisTaskJetMassResponseDet.h:28
 AliAnalysisTaskJetMassResponseDet.h:29
 AliAnalysisTaskJetMassResponseDet.h:30
 AliAnalysisTaskJetMassResponseDet.h:31
 AliAnalysisTaskJetMassResponseDet.h:32
 AliAnalysisTaskJetMassResponseDet.h:33
 AliAnalysisTaskJetMassResponseDet.h:34
 AliAnalysisTaskJetMassResponseDet.h:35
 AliAnalysisTaskJetMassResponseDet.h:36
 AliAnalysisTaskJetMassResponseDet.h:37
 AliAnalysisTaskJetMassResponseDet.h:38
 AliAnalysisTaskJetMassResponseDet.h:39
 AliAnalysisTaskJetMassResponseDet.h:40
 AliAnalysisTaskJetMassResponseDet.h:41
 AliAnalysisTaskJetMassResponseDet.h:42
 AliAnalysisTaskJetMassResponseDet.h:43
 AliAnalysisTaskJetMassResponseDet.h:44
 AliAnalysisTaskJetMassResponseDet.h:45
 AliAnalysisTaskJetMassResponseDet.h:46
 AliAnalysisTaskJetMassResponseDet.h:47
 AliAnalysisTaskJetMassResponseDet.h:48
 AliAnalysisTaskJetMassResponseDet.h:49
 AliAnalysisTaskJetMassResponseDet.h:50
 AliAnalysisTaskJetMassResponseDet.h:51
 AliAnalysisTaskJetMassResponseDet.h:52
 AliAnalysisTaskJetMassResponseDet.h:53
 AliAnalysisTaskJetMassResponseDet.h:54
 AliAnalysisTaskJetMassResponseDet.h:55
 AliAnalysisTaskJetMassResponseDet.h:56
 AliAnalysisTaskJetMassResponseDet.h:57
 AliAnalysisTaskJetMassResponseDet.h:58
 AliAnalysisTaskJetMassResponseDet.h:59
 AliAnalysisTaskJetMassResponseDet.h:60
 AliAnalysisTaskJetMassResponseDet.h:61
 AliAnalysisTaskJetMassResponseDet.h:62
 AliAnalysisTaskJetMassResponseDet.h:63
 AliAnalysisTaskJetMassResponseDet.h:64
 AliAnalysisTaskJetMassResponseDet.h:65
 AliAnalysisTaskJetMassResponseDet.h:66