calc match fraction from unsubtracted jet
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskEmcalJetMass.h
1 #ifndef ALIANALYSISTASKEMCALJETMASS_H
2 #define ALIANALYSISTASKEMCALJETMASS_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 AliAnalysisTaskEmcalJetMass : public AliAnalysisTaskEmcalJet {
17  public:
18   enum JetMassType {
19     kRaw   = 0,  //mass form anti-kt 4-vector
20     kDeriv = 1   //area based subtracted jet mass
21   };
22
23   AliAnalysisTaskEmcalJetMass();
24   AliAnalysisTaskEmcalJetMass(const char *name);
25   virtual ~AliAnalysisTaskEmcalJetMass();
26
27   void                                UserCreateOutputObjects();
28   void                                Terminate(Option_t *option);
29
30   //Setters
31   void SetJetContainerBase(Int_t c)                                  { fContainerBase     = c   ; }
32   void SetJetContainerUnsub(Int_t c)                                 { fContainerUnsub    = c   ; }
33   void SetMinFractionShared(Double_t f, Bool_t useUnsubJet = kFALSE) { fMinFractionShared = f   ; fUseUnsubJet = useUnsubJet; }
34   void SetJetMassType(JetMassType t)                                 { fJetMassType       = t   ; }
35
36  protected:
37   Bool_t                              RetrieveEventObjects();
38   Bool_t                              Run();
39   Bool_t                              FillHistograms();
40
41   Double_t                            GetJetMass(AliEmcalJet *jet);
42  
43   Int_t                               fContainerBase;              // jets to be analyzed
44   Int_t                               fContainerUnsub;             // unsubtracted jets
45   Double_t                            fMinFractionShared;          // only fill histos for jets if shared fraction larger than X
46   Bool_t                              fUseUnsubJet;                // calc fraction of unsubtracted jet (relevant for constituent subtraction)
47   JetMassType                         fJetMassType;                // jet mass type to be used
48
49   TH3F            **fh3PtJet1VsMassVsLeadPtAllSel;         //!all jets after std selection pt vs mass vs leading track pt
50   TH3F            **fh3PtJet1VsMassVsLeadPtTagged;         //!tagged jets pt vs mass vs leading track pt
51   TH3F            **fh3PtJet1VsMassVsLeadPtTaggedMatch;    //!tagged jets pt vs mass vs leading track pt matched to MC
52   TProfile        **fpPtVsMassJet1All;                     //!pT vs avg mass of all jets
53   TProfile        **fpPtVsMassJet1Tagged;                  //!pT vs avg mass of tagged jets
54   TProfile        **fpPtVsMassJet1TaggedMatch;             //!pT vs avg mass of tagged jets matched to MC
55   TH2F            **fh2MassVsAreaJet1All;                  //!mass vs area of all jets
56   TH2F            **fh2MassVsAreaJet1Tagged;               //!mass vs area of tagged jets
57   TH2F            **fh2MassVsAreaJet1TaggedMatch;          //!mass vs area of tagged jets matched to MC
58   TH2F            **fh2MassVsNConstJet1All;                //!mass vs number of constituents of all jets
59   TH2F            **fh2MassVsNConstJet1Tagged;             //!mass vs number of constituents of tagged jets
60   TH2F            **fh2MassVsNConstJet1TaggedMatch;        //!mass vs number of constituents of tagged jets matched to MC
61
62   TH3F            **fh3PtJet1VsRatVsLeadPtAllSel;          //!all jets after std selection pt vs mass/pt vs leading track pt
63   TH3F            **fh3PtJet1VsRatVsLeadPtTagged;          //!tagged jets pt vs mass/pt vs leading track pt
64   TH3F            **fh3PtJet1VsRatVsLeadPtTaggedMatch;     //!tagged jets pt vs mas/pts vs leading track pt matched to MC
65   TProfile        **fpPtVsRatJet1All;                      //!pT vs avg mass/pt of all jets
66   TProfile        **fpPtVsRatJet1Tagged;                   //!pT vs avg mass/pt of tagged jets
67   TProfile        **fpPtVsRatJet1TaggedMatch;              //!pT vs avg mass/pt of tagged jets matched to MC
68   TH2F            **fh2RatVsAreaJet1All;                   //!mass/pt vs area of all jets
69   TH2F            **fh2RatVsAreaJet1Tagged;                //!mass/pt vs area of tagged jets
70   TH2F            **fh2RatVsAreaJet1TaggedMatch;           //!mass/pt vs area of tagged jets matched to MC
71   TH2F            **fh2RatVsNConstJet1All;                 //!mass/pt vs number of constituents of all jets
72   TH2F            **fh2RatVsNConstJet1Tagged;              //!mass/pt vs number of constituents of tagged jets
73   TH2F            **fh2RatVsNConstJet1TaggedMatch;         //!mass/pt vs number of constituents of tagged jets matched to MC
74
75   TH2F            **fh2EtMassOverEtRSq;                    //!Et vs (M/Et*R)^2
76
77  private:
78   AliAnalysisTaskEmcalJetMass(const AliAnalysisTaskEmcalJetMass&);            // not implemented
79   AliAnalysisTaskEmcalJetMass &operator=(const AliAnalysisTaskEmcalJetMass&); // not implemented
80
81   ClassDef(AliAnalysisTaskEmcalJetMass, 8)
82 };
83 #endif
84