]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTagger.h
From Marta:
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskEmcalJetTagger.h
1 #ifndef ALIANALYSISTASKEMCALJETTAGGER_H
2 #define ALIANALYSISTASKEMCALJETTAGGER_H
3
4 class TH1;
5 class TH2;
6 class TH3;
7 class TH3F;
8 class THnSparse;
9 class TClonesArray;
10 class TArrayI;
11 class AliAnalysisManager;
12 class AliJetContainer;
13
14 #include "AliAnalysisTaskEmcalJet.h"
15
16 class AliAnalysisTaskEmcalJetTagger : public AliAnalysisTaskEmcalJet {
17  public:
18   enum JetTaggingMethod {
19     kGeo      = 0,
20     kFraction = 1
21   };
22
23   enum JetTaggingType {
24     kTag      = 0,
25     kClosest  = 1
26   };
27
28   AliAnalysisTaskEmcalJetTagger();
29   AliAnalysisTaskEmcalJetTagger(const char *name);
30   virtual ~AliAnalysisTaskEmcalJetTagger();
31
32   void                                UserCreateOutputObjects();
33   void                                Terminate(Option_t *option);
34
35   //Setters
36   void SetJetContainerBase(Int_t c)                             { fContainerBase = c;}
37   void SetJetContainerTag(Int_t c)                              { fContainerTag  = c;}
38
39   void SetJetTaggingType(JetTaggingType t)                      { fJetTaggingType = t;}
40   void SetJetTaggingMethod(JetTaggingMethod m)                  { fJetTaggingMethod = m;}
41
42  protected:
43   Bool_t                              RetrieveEventObjects();
44   Bool_t                              Run();
45   Bool_t                              FillHistograms();
46
47
48   Double_t GetDeltaPhi(const AliEmcalJet* jet1, const AliEmcalJet* jet2);
49   Double_t GetDeltaPhi(Double_t phi1,Double_t phi2);
50   Double_t GetDeltaR(const AliEmcalJet* jet1, const AliEmcalJet* jet2) const;
51   Double_t GetFractionSharedPt(const AliEmcalJet *jet1, const AliEmcalJet *jet2) const;
52
53   void     MatchJetsGeo(Int_t c1 = -1, Int_t c2 = -1, Int_t iDebug = 0, Float_t maxDist = 0.3, Int_t type = 2);
54   void     ResetTagging(const Int_t c);
55   
56   JetTaggingType                      fJetTaggingType;             // jet matching type
57   JetTaggingMethod                    fJetTaggingMethod;           // jet matching method
58
59   Int_t                               fContainerBase;              // jets to be tagged
60   Int_t                               fContainerTag;               // jets used for tagging
61   
62  private:
63   Bool_t            fMatchingDone;                // flag to indicate if matching is done or not
64   TH3F            **fh3PtJet1VsDeltaEtaDeltaPhi;  //!pt jet 1 vs deta vs dphi
65   TH2F            **fh2PtJet1VsDeltaR;            //!pt jet 1 vs dR
66   
67   TH2F            **fh2PtJet1VsLeadPtAllSel;      //!all jets after std selection
68   TH2F            **fh2PtJet1VsLeadPtTagged;      //!tagged jets
69   TH2F            **fh2PtJet1VsPtJet2;            //!pT of base jet vs tagged jet
70
71   AliAnalysisTaskEmcalJetTagger(const AliAnalysisTaskEmcalJetTagger&);            // not implemented
72   AliAnalysisTaskEmcalJetTagger &operator=(const AliAnalysisTaskEmcalJetTagger&); // not implemented
73
74   ClassDef(AliAnalysisTaskEmcalJetTagger, 1)
75 };
76 #endif
77