]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalQGTagging.h
Refactoring of the EMCAL jet package:
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskEmcalQGTagging.h
1 #ifndef ALIANALYSISTASKEMCALQGTAGGING_H
2 #define ALIANALYSISTASKEMCALQGTAGGING_H
3
4 class TH1;
5 class TH2;
6 class TH3;
7 class TH3F;
8 class TTree;
9 class THnSparse;
10 class TClonesArray;
11 class TArrayI;
12 class AliAnalysisManager;
13 class AliJetContainer;
14
15 #include "AliAnalysisTaskEmcalJet.h"
16
17
18
19 class AliAnalysisTaskEmcalQGTagging : public AliAnalysisTaskEmcalJet {
20  public:
21   enum JetShapeType {
22     kTrue = 0,   // generated jets only 
23     kTrueDet =1,  // detector and generated jets  
24     kData   = 2,  // raw data 
25     kDetEmb = 3,  //detector embedded jets 
26   };
27
28   enum JetShapeSub {
29     kNoSub = 0, 
30     kConstSub = 1,
31     kDerivSub = 2 
32   } ;
33
34   AliAnalysisTaskEmcalQGTagging();
35   AliAnalysisTaskEmcalQGTagging(const char *name);
36   virtual ~AliAnalysisTaskEmcalQGTagging();
37
38   void                                UserCreateOutputObjects();
39   void                                Terminate(Option_t *option);
40
41   //Setters
42   void SetJetContainer(Int_t c)                             { fContainer     = c   ; }
43   void SetMinFractionShared(Double_t f)                     { fMinFractionShared = f   ; }
44   void SetJetShapeType(JetShapeType t)                      { fJetShapeType       = t   ; }
45   void SetJetShapeSub(JetShapeSub t)                        { fJetShapeSub     = t   ; }
46   void SetJetPtThreshold(Float_t f)                         { fPtThreshold     = f   ; }
47   void SetRMatching(Float_t f)                              { fRMatching = f ;}
48
49  protected:
50   Bool_t                              RetrieveEventObjects();
51   Bool_t                              Run();
52   Bool_t                              FillHistograms();
53
54   Float_t                            GetJetMass(AliEmcalJet *jet,Int_t jetContNb);
55   Float_t                            Angularity(AliEmcalJet *jet, Int_t jetContNb);
56   Float_t                            GetJetAngularity(AliEmcalJet *jet, Int_t jetContNb);
57   Float_t                            PTD(AliEmcalJet *jet, Int_t jetContNb);
58   Float_t                            GetJetpTD(AliEmcalJet *jet, Int_t jetContNb);
59   Float_t                            Circularity(AliEmcalJet *jet, Int_t jetContNb); 
60   Float_t                            GetJetCircularity(AliEmcalJet *jet, Int_t jetContNb);
61   Float_t                            LeSub(AliEmcalJet *jet, Int_t jetContNb);
62   Float_t                            GetJetLeSub(AliEmcalJet *jet, Int_t jetContNb);
63   Float_t                            GetJetNumberOfConstituents(AliEmcalJet *jet,Int_t jetContNb);
64   Float_t                            GetSigma2(AliEmcalJet *jet, Int_t jetContNb);
65   Float_t                            Sigma2(AliEmcalJet *jet, Int_t jetContNb);
66
67
68   Int_t                               fContainer;              // jets to be analyzed 0 for Base, 1 for subtracted. 
69   Float_t                            fMinFractionShared;          // only fill histos for jets if shared fraction larger than X
70   JetShapeType                        fJetShapeType;               // jet type to be used
71   JetShapeSub                         fJetShapeSub;                // jet subtraction to be used
72   Float_t                            *fShapesVar;                  // jet shapes used for the tagging
73   Float_t                             fPtThreshold;
74   Float_t                             fRMatching;
75   
76
77   TH2F                                *fh2ResponseUW;
78   TH2F                                *fh2ResponseW;
79   TH2F                                *fPhiJetCorr6;
80   TH2F                                *fPhiJetCorr7;
81   TH2F                                *fEtaJetCorr6;
82   TH2F                                *fEtaJetCorr7;
83   TH2F                                *fPtJetCorr;
84   TH1F                                *fPtJet;
85   
86
87   TTree           *fTreeObservableTagging;  //Tree with tagging variables subtracted MC or true MC or raw 
88
89  private:
90   AliAnalysisTaskEmcalQGTagging(const AliAnalysisTaskEmcalQGTagging&);            // not implemented
91   AliAnalysisTaskEmcalQGTagging &operator=(const AliAnalysisTaskEmcalQGTagging&); // not implemented
92
93   ClassDef(AliAnalysisTaskEmcalQGTagging, 3)
94 };
95 #endif
96