ROOT logo
#ifndef ALIANALYSISTASKEMCALDIJETRESPONSE_H
#define ALIANALYSISTASKEMCALDIJETRESPONSE_H

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

#include "AliAnalysisTaskEmcalDiJetBase.h"

class AliAnalysisTaskEmcalDiJetResponse : public AliAnalysisTaskEmcalDiJetBase {
 public:
  AliAnalysisTaskEmcalDiJetResponse();
  AliAnalysisTaskEmcalDiJetResponse(const char *name);
  virtual ~AliAnalysisTaskEmcalDiJetResponse();

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

  //Setters
  void SetMatchFullCharged(Bool_t b)        { fDoMatchFullCharged = b; }
  void SetResponseVar(Int_t v)              { fnUsedResponseVar   = v; }    

  //Getters

 protected:
  Bool_t                      Run()              ;
  void                        CorrelateJets(const Int_t type);
  void                        CorrelateAllJets(const Int_t type);
  void                        CorrelateTwoJets(const Int_t type);

  void                        FillDiJetHistos(const AliEmcalJet *jet1 = 0, const AliEmcalJet *jet2 = 0, const Int_t mode = 0);
  void                        FillMatchHistos();
  Bool_t                      RetrieveEventObjects();

  void                        FillDiJetResponse(const AliEmcalJet *jetTrigMC = 0, const AliEmcalJet *jetAssocMC = 0, const AliEmcalJet *jetTrigDet = 0, const AliEmcalJet *jetAssocDet = 0, Int_t type = 0);

 private:
  Bool_t            fDoMatchFullCharged;          //  do full-charged matching histos
  THnSparse        *fhnDiJetResponseCharged;      //! sparse with di-jet properties (full-full)
  THnSparse        *fhnDiJetResponseFullCharged;  //! sparse with di-jet properties (full-full)
  TH1F             *fh1TriggersCharged[2];        //! charged jet triggers
  TH1F             *fh1TriggersFull[2];           //! full jet triggers
  TH1F             *fh1TriggersLostCharged;       //! lost charged jet triggers
  TH1F             *fh1TriggersLostFull;          //! lost full jet triggers
  TH3F             *fh3AssocLostPtDeltaPhiCharged;//! lost charged associated jet
  TH3F             *fh3AssocLostPtDeltaPhiFull;   //! lost full associated jet
  THnSparse        *fhnMatchingCharged;           //! sparse comparing matched particle and detector level charged jets
  THnSparse        *fhnMatchingFull;              //! sparse comparing matched particle and detector level charged jets
  Int_t             fnUsedResponseVar;            //  build response for kt (0) or dijet eta (1)


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

  ClassDef(AliAnalysisTaskEmcalDiJetResponse, 2) // jet sample analysis task
};
#endif
 AliAnalysisTaskEmcalDiJetResponse.h:1
 AliAnalysisTaskEmcalDiJetResponse.h:2
 AliAnalysisTaskEmcalDiJetResponse.h:3
 AliAnalysisTaskEmcalDiJetResponse.h:4
 AliAnalysisTaskEmcalDiJetResponse.h:5
 AliAnalysisTaskEmcalDiJetResponse.h:6
 AliAnalysisTaskEmcalDiJetResponse.h:7
 AliAnalysisTaskEmcalDiJetResponse.h:8
 AliAnalysisTaskEmcalDiJetResponse.h:9
 AliAnalysisTaskEmcalDiJetResponse.h:10
 AliAnalysisTaskEmcalDiJetResponse.h:11
 AliAnalysisTaskEmcalDiJetResponse.h:12
 AliAnalysisTaskEmcalDiJetResponse.h:13
 AliAnalysisTaskEmcalDiJetResponse.h:14
 AliAnalysisTaskEmcalDiJetResponse.h:15
 AliAnalysisTaskEmcalDiJetResponse.h:16
 AliAnalysisTaskEmcalDiJetResponse.h:17
 AliAnalysisTaskEmcalDiJetResponse.h:18
 AliAnalysisTaskEmcalDiJetResponse.h:19
 AliAnalysisTaskEmcalDiJetResponse.h:20
 AliAnalysisTaskEmcalDiJetResponse.h:21
 AliAnalysisTaskEmcalDiJetResponse.h:22
 AliAnalysisTaskEmcalDiJetResponse.h:23
 AliAnalysisTaskEmcalDiJetResponse.h:24
 AliAnalysisTaskEmcalDiJetResponse.h:25
 AliAnalysisTaskEmcalDiJetResponse.h:26
 AliAnalysisTaskEmcalDiJetResponse.h:27
 AliAnalysisTaskEmcalDiJetResponse.h:28
 AliAnalysisTaskEmcalDiJetResponse.h:29
 AliAnalysisTaskEmcalDiJetResponse.h:30
 AliAnalysisTaskEmcalDiJetResponse.h:31
 AliAnalysisTaskEmcalDiJetResponse.h:32
 AliAnalysisTaskEmcalDiJetResponse.h:33
 AliAnalysisTaskEmcalDiJetResponse.h:34
 AliAnalysisTaskEmcalDiJetResponse.h:35
 AliAnalysisTaskEmcalDiJetResponse.h:36
 AliAnalysisTaskEmcalDiJetResponse.h:37
 AliAnalysisTaskEmcalDiJetResponse.h:38
 AliAnalysisTaskEmcalDiJetResponse.h:39
 AliAnalysisTaskEmcalDiJetResponse.h:40
 AliAnalysisTaskEmcalDiJetResponse.h:41
 AliAnalysisTaskEmcalDiJetResponse.h:42
 AliAnalysisTaskEmcalDiJetResponse.h:43
 AliAnalysisTaskEmcalDiJetResponse.h:44
 AliAnalysisTaskEmcalDiJetResponse.h:45
 AliAnalysisTaskEmcalDiJetResponse.h:46
 AliAnalysisTaskEmcalDiJetResponse.h:47
 AliAnalysisTaskEmcalDiJetResponse.h:48
 AliAnalysisTaskEmcalDiJetResponse.h:49
 AliAnalysisTaskEmcalDiJetResponse.h:50
 AliAnalysisTaskEmcalDiJetResponse.h:51
 AliAnalysisTaskEmcalDiJetResponse.h:52
 AliAnalysisTaskEmcalDiJetResponse.h:53
 AliAnalysisTaskEmcalDiJetResponse.h:54
 AliAnalysisTaskEmcalDiJetResponse.h:55
 AliAnalysisTaskEmcalDiJetResponse.h:56
 AliAnalysisTaskEmcalDiJetResponse.h:57
 AliAnalysisTaskEmcalDiJetResponse.h:58
 AliAnalysisTaskEmcalDiJetResponse.h:59
 AliAnalysisTaskEmcalDiJetResponse.h:60
 AliAnalysisTaskEmcalDiJetResponse.h:61
 AliAnalysisTaskEmcalDiJetResponse.h:62
 AliAnalysisTaskEmcalDiJetResponse.h:63
 AliAnalysisTaskEmcalDiJetResponse.h:64