ROOT logo
#ifndef ALIANALYSISTASKEMCALQGTAGGING_H
#define ALIANALYSISTASKEMCALQGTAGGING_H

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

#include "AliAnalysisTaskEmcalJet.h"



class AliAnalysisTaskEmcalQGTagging : public AliAnalysisTaskEmcalJet {
 public:
  enum JetShapeType {
    kTrue = 0,   // generated jets only 
    kTrueDet =1,  // detector and generated jets  
    kData   = 2,  // raw data 
    kDetEmb = 3,  //detector embedded jets 
  };

  enum JetShapeSub {
    kNoSub = 0, 
    kConstSub = 1,
    kDerivSub = 2 
  } ;

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

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

  //Setters
  void SetJetContainer(Int_t c)                             { fContainer     = c   ; }
  void SetMinFractionShared(Double_t f)                     { fMinFractionShared = f   ; }
  void SetJetShapeType(JetShapeType t)                      { fJetShapeType       = t   ; }
  void SetJetShapeSub(JetShapeSub t)                        { fJetShapeSub     = t   ; }
  void SetJetPtThreshold(Float_t f)                         { fPtThreshold     = f   ; }
  void SetRMatching(Float_t f)                              { fRMatching = f ;}

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

  Float_t                            GetJetMass(AliEmcalJet *jet,Int_t jetContNb);
  Float_t                            Angularity(AliEmcalJet *jet, Int_t jetContNb);
  Float_t                            GetJetAngularity(AliEmcalJet *jet, Int_t jetContNb);
  Float_t                            PTD(AliEmcalJet *jet, Int_t jetContNb);
  Float_t                            GetJetpTD(AliEmcalJet *jet, Int_t jetContNb);
  Float_t                            Circularity(AliEmcalJet *jet, Int_t jetContNb); 
  Float_t                            GetJetCircularity(AliEmcalJet *jet, Int_t jetContNb);
  Float_t                            LeSub(AliEmcalJet *jet, Int_t jetContNb);
  Float_t                            GetJetLeSub(AliEmcalJet *jet, Int_t jetContNb);
  Float_t                            GetJetNumberOfConstituents(AliEmcalJet *jet,Int_t jetContNb);
  Float_t                            GetSigma2(AliEmcalJet *jet, Int_t jetContNb);
  Float_t                            Sigma2(AliEmcalJet *jet, Int_t jetContNb);


  Int_t                               fContainer;              // jets to be analyzed 0 for Base, 1 for subtracted. 
  Float_t                            fMinFractionShared;          // only fill histos for jets if shared fraction larger than X
  JetShapeType                        fJetShapeType;               // jet type to be used
  JetShapeSub                         fJetShapeSub;                // jet subtraction to be used
  Float_t                            *fShapesVar;                  // jet shapes used for the tagging
  Float_t                             fPtThreshold;
  Float_t                             fRMatching;
  

  TH2F                                *fh2ResponseUW;
  TH2F                                *fh2ResponseW;
  TH2F                                *fPhiJetCorr6;
  TH2F                                *fPhiJetCorr7;
  TH2F                                *fEtaJetCorr6;
  TH2F                                *fEtaJetCorr7;
  TH2F                                *fPtJetCorr;
  TH1F                                *fPtJet;
  

  TTree           *fTreeObservableTagging;  //Tree with tagging variables subtracted MC or true MC or raw 

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

  ClassDef(AliAnalysisTaskEmcalQGTagging, 3)
};
#endif

 AliAnalysisTaskEmcalQGTagging.h:1
 AliAnalysisTaskEmcalQGTagging.h:2
 AliAnalysisTaskEmcalQGTagging.h:3
 AliAnalysisTaskEmcalQGTagging.h:4
 AliAnalysisTaskEmcalQGTagging.h:5
 AliAnalysisTaskEmcalQGTagging.h:6
 AliAnalysisTaskEmcalQGTagging.h:7
 AliAnalysisTaskEmcalQGTagging.h:8
 AliAnalysisTaskEmcalQGTagging.h:9
 AliAnalysisTaskEmcalQGTagging.h:10
 AliAnalysisTaskEmcalQGTagging.h:11
 AliAnalysisTaskEmcalQGTagging.h:12
 AliAnalysisTaskEmcalQGTagging.h:13
 AliAnalysisTaskEmcalQGTagging.h:14
 AliAnalysisTaskEmcalQGTagging.h:15
 AliAnalysisTaskEmcalQGTagging.h:16
 AliAnalysisTaskEmcalQGTagging.h:17
 AliAnalysisTaskEmcalQGTagging.h:18
 AliAnalysisTaskEmcalQGTagging.h:19
 AliAnalysisTaskEmcalQGTagging.h:20
 AliAnalysisTaskEmcalQGTagging.h:21
 AliAnalysisTaskEmcalQGTagging.h:22
 AliAnalysisTaskEmcalQGTagging.h:23
 AliAnalysisTaskEmcalQGTagging.h:24
 AliAnalysisTaskEmcalQGTagging.h:25
 AliAnalysisTaskEmcalQGTagging.h:26
 AliAnalysisTaskEmcalQGTagging.h:27
 AliAnalysisTaskEmcalQGTagging.h:28
 AliAnalysisTaskEmcalQGTagging.h:29
 AliAnalysisTaskEmcalQGTagging.h:30
 AliAnalysisTaskEmcalQGTagging.h:31
 AliAnalysisTaskEmcalQGTagging.h:32
 AliAnalysisTaskEmcalQGTagging.h:33
 AliAnalysisTaskEmcalQGTagging.h:34
 AliAnalysisTaskEmcalQGTagging.h:35
 AliAnalysisTaskEmcalQGTagging.h:36
 AliAnalysisTaskEmcalQGTagging.h:37
 AliAnalysisTaskEmcalQGTagging.h:38
 AliAnalysisTaskEmcalQGTagging.h:39
 AliAnalysisTaskEmcalQGTagging.h:40
 AliAnalysisTaskEmcalQGTagging.h:41
 AliAnalysisTaskEmcalQGTagging.h:42
 AliAnalysisTaskEmcalQGTagging.h:43
 AliAnalysisTaskEmcalQGTagging.h:44
 AliAnalysisTaskEmcalQGTagging.h:45
 AliAnalysisTaskEmcalQGTagging.h:46
 AliAnalysisTaskEmcalQGTagging.h:47
 AliAnalysisTaskEmcalQGTagging.h:48
 AliAnalysisTaskEmcalQGTagging.h:49
 AliAnalysisTaskEmcalQGTagging.h:50
 AliAnalysisTaskEmcalQGTagging.h:51
 AliAnalysisTaskEmcalQGTagging.h:52
 AliAnalysisTaskEmcalQGTagging.h:53
 AliAnalysisTaskEmcalQGTagging.h:54
 AliAnalysisTaskEmcalQGTagging.h:55
 AliAnalysisTaskEmcalQGTagging.h:56
 AliAnalysisTaskEmcalQGTagging.h:57
 AliAnalysisTaskEmcalQGTagging.h:58
 AliAnalysisTaskEmcalQGTagging.h:59
 AliAnalysisTaskEmcalQGTagging.h:60
 AliAnalysisTaskEmcalQGTagging.h:61
 AliAnalysisTaskEmcalQGTagging.h:62
 AliAnalysisTaskEmcalQGTagging.h:63
 AliAnalysisTaskEmcalQGTagging.h:64
 AliAnalysisTaskEmcalQGTagging.h:65
 AliAnalysisTaskEmcalQGTagging.h:66
 AliAnalysisTaskEmcalQGTagging.h:67
 AliAnalysisTaskEmcalQGTagging.h:68
 AliAnalysisTaskEmcalQGTagging.h:69
 AliAnalysisTaskEmcalQGTagging.h:70
 AliAnalysisTaskEmcalQGTagging.h:71
 AliAnalysisTaskEmcalQGTagging.h:72
 AliAnalysisTaskEmcalQGTagging.h:73
 AliAnalysisTaskEmcalQGTagging.h:74
 AliAnalysisTaskEmcalQGTagging.h:75
 AliAnalysisTaskEmcalQGTagging.h:76
 AliAnalysisTaskEmcalQGTagging.h:77
 AliAnalysisTaskEmcalQGTagging.h:78
 AliAnalysisTaskEmcalQGTagging.h:79
 AliAnalysisTaskEmcalQGTagging.h:80
 AliAnalysisTaskEmcalQGTagging.h:81
 AliAnalysisTaskEmcalQGTagging.h:82
 AliAnalysisTaskEmcalQGTagging.h:83
 AliAnalysisTaskEmcalQGTagging.h:84
 AliAnalysisTaskEmcalQGTagging.h:85
 AliAnalysisTaskEmcalQGTagging.h:86
 AliAnalysisTaskEmcalQGTagging.h:87
 AliAnalysisTaskEmcalQGTagging.h:88
 AliAnalysisTaskEmcalQGTagging.h:89
 AliAnalysisTaskEmcalQGTagging.h:90
 AliAnalysisTaskEmcalQGTagging.h:91
 AliAnalysisTaskEmcalQGTagging.h:92
 AliAnalysisTaskEmcalQGTagging.h:93
 AliAnalysisTaskEmcalQGTagging.h:94
 AliAnalysisTaskEmcalQGTagging.h:95
 AliAnalysisTaskEmcalQGTagging.h:96