ROOT logo
#ifndef ALIEMCALJETBYJETCORRECTION_H
#define ALIEMCALJETBYJETCORRECTION_H

#include <TNamed.h>
#include <TObjArray.h>
#include <TArrayF.h>
#include <TClonesArray.h>

class TH3;
class AliEmcalJet;

class AliEmcalJetByJetCorrection : public TNamed
{
 public:

  AliEmcalJetByJetCorrection();
  AliEmcalJetByJetCorrection(const char* name);
  AliEmcalJetByJetCorrection(const AliEmcalJetByJetCorrection &jet);
  AliEmcalJetByJetCorrection& operator=(const AliEmcalJetByJetCorrection &jet);
  ~AliEmcalJetByJetCorrection() {;}

  void SetTemplate(TH3 *h)          { fh3JetPtDRTrackPt = h; }
  void SetJetPtBinWidth(Double_t w) { fBinWidthJetPt    = w; }
  void SetJetPtRange(Double_t min, Double_t max) {fJetPtMin = min; fJetPtMax = max;};
  void SetFixedTrackEfficiency(Double_t eff) { fEfficiencyFixed = eff; }
  void SetEfficiencyHist(TH1 *h)             { fhEfficiency     = h  ; }

  Int_t        GetJetPtBin(const Double_t jetpt) const;
  Double_t     GetEfficiency(const Double_t pt) const;
  Double_t     GetMeanPtConstituents(const AliEmcalJet *jet, TClonesArray *fTracks) const;

  void         Init();
  AliEmcalJet *Eval(const AliEmcalJet *jet, TClonesArray *fTracks);
  
 protected:
  TH3      *fh3JetPtDRTrackPt;                 // 3D template
  Double_t  fBinWidthJetPt;                    // jet pt bin width in which to do correction
  Double_t  fJetPtMin;                         // minimum jet pt
  Double_t  fJetPtMax;                         // maximum jet pt
  TObjArray fCollTemplates;                    // templates (2D histos with track pT vs r)
  Bool_t    fInitialized;                      // status of initialization
  Double_t  fEfficiencyFixed;                  // fixed efficiency for all pT and all types of tracks
  TH1      *fhEfficiency;                      // single particle efficiency
 private:

  ClassDef(AliEmcalJetByJetCorrection, 1) // jet-by-jet correction class
};
#endif
 AliEmcalJetByJetCorrection.h:1
 AliEmcalJetByJetCorrection.h:2
 AliEmcalJetByJetCorrection.h:3
 AliEmcalJetByJetCorrection.h:4
 AliEmcalJetByJetCorrection.h:5
 AliEmcalJetByJetCorrection.h:6
 AliEmcalJetByJetCorrection.h:7
 AliEmcalJetByJetCorrection.h:8
 AliEmcalJetByJetCorrection.h:9
 AliEmcalJetByJetCorrection.h:10
 AliEmcalJetByJetCorrection.h:11
 AliEmcalJetByJetCorrection.h:12
 AliEmcalJetByJetCorrection.h:13
 AliEmcalJetByJetCorrection.h:14
 AliEmcalJetByJetCorrection.h:15
 AliEmcalJetByJetCorrection.h:16
 AliEmcalJetByJetCorrection.h:17
 AliEmcalJetByJetCorrection.h:18
 AliEmcalJetByJetCorrection.h:19
 AliEmcalJetByJetCorrection.h:20
 AliEmcalJetByJetCorrection.h:21
 AliEmcalJetByJetCorrection.h:22
 AliEmcalJetByJetCorrection.h:23
 AliEmcalJetByJetCorrection.h:24
 AliEmcalJetByJetCorrection.h:25
 AliEmcalJetByJetCorrection.h:26
 AliEmcalJetByJetCorrection.h:27
 AliEmcalJetByJetCorrection.h:28
 AliEmcalJetByJetCorrection.h:29
 AliEmcalJetByJetCorrection.h:30
 AliEmcalJetByJetCorrection.h:31
 AliEmcalJetByJetCorrection.h:32
 AliEmcalJetByJetCorrection.h:33
 AliEmcalJetByJetCorrection.h:34
 AliEmcalJetByJetCorrection.h:35
 AliEmcalJetByJetCorrection.h:36
 AliEmcalJetByJetCorrection.h:37
 AliEmcalJetByJetCorrection.h:38
 AliEmcalJetByJetCorrection.h:39
 AliEmcalJetByJetCorrection.h:40
 AliEmcalJetByJetCorrection.h:41
 AliEmcalJetByJetCorrection.h:42
 AliEmcalJetByJetCorrection.h:43
 AliEmcalJetByJetCorrection.h:44
 AliEmcalJetByJetCorrection.h:45
 AliEmcalJetByJetCorrection.h:46
 AliEmcalJetByJetCorrection.h:47
 AliEmcalJetByJetCorrection.h:48