]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/AliEmcalJetByJetCorrection.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / AliEmcalJetByJetCorrection.h
1 #ifndef ALIEMCALJETBYJETCORRECTION_H
2 #define ALIEMCALJETBYJETCORRECTION_H
3
4 #include <TNamed.h>
5 #include <TObjArray.h>
6 #include <TArrayF.h>
7 #include <TClonesArray.h>
8
9 class TH3;
10 class TProfile;
11 class AliEmcalJet;
12
13 class AliEmcalJetByJetCorrection : public TNamed
14 {
15  public:
16
17   AliEmcalJetByJetCorrection();
18   AliEmcalJetByJetCorrection(const char* name);
19   AliEmcalJetByJetCorrection(const AliEmcalJetByJetCorrection &jet);
20   AliEmcalJetByJetCorrection& operator=(const AliEmcalJetByJetCorrection &jet);
21   ~AliEmcalJetByJetCorrection() {;}
22
23   void SetTemplate(TH3 *h)          { fh3JetPtDRTrackPt = h; }
24   void SetJetPtBinWidth(Double_t w) { fBinWidthJetPt    = w; }
25   void SetJetPtRange(Double_t min, Double_t max) {fJetPtMin = min; fJetPtMax = max;}
26   void SetFixedTrackEfficiency(Double_t eff) { fEfficiencyFixed = eff; }
27   void SetEfficiencyHist(TH1 *h)             { fhEfficiency     = h  ; }
28
29   Int_t        GetJetPtBin(const Double_t jetpt) const;
30   Double_t     GetEfficiency(const Double_t pt) const;
31   Double_t     GetMeanPtConstituents(const AliEmcalJet *jet, TClonesArray *fTracks) const;
32
33   TProfile    *GetAppliedEfficiency() const {return fpAppliedEfficiency;}
34
35   void         Init();
36   AliEmcalJet *Eval(const AliEmcalJet *jet, TClonesArray *fTracks);
37   
38  protected:
39   TH3      *fh3JetPtDRTrackPt;                 // 3D template
40   Double_t  fBinWidthJetPt;                    // jet pt bin width in which to do correction
41   Double_t  fJetPtMin;                         // minimum jet pt
42   Double_t  fJetPtMax;                         // maximum jet pt
43   TObjArray fCollTemplates;                    // templates (2D histos with track pT vs r)
44   Bool_t    fInitialized;                      // status of initialization
45   Double_t  fEfficiencyFixed;                  // fixed efficiency for all pT and all types of tracks
46   TH1      *fhEfficiency;                      // single particle efficiency
47
48   //book-keeping object filled inside Eval()
49   TProfile *fpAppliedEfficiency;               // Control profile efficiency
50
51  private:
52   ClassDef(AliEmcalJetByJetCorrection, 2) // jet-by-jet correction class
53 };
54 #endif