1 #ifndef ALIANALYSISTASKEMCALJETMASSRESPONSE_H
2 #define ALIANALYSISTASKEMCALJETMASSRESPONSE_H
15 class AliAnalysisManager;
17 class AliJetContainer;
19 #include "AliAnalysisTaskEmcalJet.h"
21 class AliAnalysisTaskEmcalJetMassResponse : public AliAnalysisTaskEmcalJet {
24 AliAnalysisTaskEmcalJetMassResponse();
25 AliAnalysisTaskEmcalJetMassResponse(const char *name);
26 virtual ~AliAnalysisTaskEmcalJetMassResponse();
28 void UserCreateOutputObjects();
29 void Terminate(Option_t *option);
32 void SetCreateTree(Bool_t b) { fCreateTree = b ; }
34 void SetJetContainerBase(Int_t c) { fContainerBase = c ; }
35 void SetMinFractionShared(Double_t f) { fMinFractionShared = f ; }
36 void SetJetMassAverageFunc(TF1 *f) { f1JetMassAvg = f ; }
37 void SetSingleTrackEmbedding(Bool_t b) { fSingleTrackEmb = b ; }
38 void SetSubtractMasslessParticleJet(Bool_t b) { fSubtractMassless = b ; }
41 Bool_t RetrieveEventObjects();
43 Bool_t FillHistograms();
45 TLorentzVector GetSubtractedVector(AliEmcalJet *jet);
46 TLorentzVector GetSubtractedVectorCheat(AliEmcalJet *jet);
47 TLorentzVector GetBkgVector(AliEmcalJet *jet, AliJetContainer *cont);
48 TLorentzVector GetBkgVectorCheat(AliEmcalJet *jet);
49 Double_t GetJetMass(AliEmcalJet *jet);
50 Double_t GetJetMassMasslessConstituents(AliEmcalJet *jet);
51 AliVParticle* GetEmbeddedConstituent(AliEmcalJet *jet);
53 Int_t fContainerBase; // jets to be analyzed
54 Double_t fMinFractionShared; // only fill histos for jets if shared fraction larger than X
55 TF1 *f1JetMassAvg; // parametrization of average jet mass
56 Bool_t fSingleTrackEmb; // single track embedding
57 Bool_t fSubtractMassless; // subtract mass of jet assuming massless particles
58 Bool_t fCreateTree; // create output tree
60 TH2F **fh2PtJet1DeltaMNoSub; //!pt jet1 vs delta-pt vs delta-M
61 TH2F **fh2PtJet2DeltaMNoSub; //!pt jet2 vs delta-pt vs delta-M
63 TH3F **fh3PtJet1DeltaPtDeltaMCheat; //!pt jet1 vs delta-pt vs delta-M
64 TH3F **fh3PtJet2DeltaPtDeltaMCheat; //!pt jet2 vs delta-pt vs delta-M
66 TH3F **fh3PtJet1DeltaPtDeltaM; //!pt jet1 vs delta-pt vs delta-M
67 TH3F **fh3PtJet2DeltaPtDeltaM; //!pt jet2 vs delta-pt vs delta-M
68 TH2F **fh2PtJet1DeltaE; //!pt jet1 vs delta-E
69 TH2F **fh2PtJet2DeltaE; //!pt jet2 vs delta-E
70 TH2F **fh2PtJet1DeltaP; //!pt jet1 vs delta-P
71 TH2F **fh2PtJet2DeltaP; //!pt jet2 vs delta-P
72 TH2F **fh2PtJet2DeltaM; //!pt jet2 vs delta-M
73 TH3F **fh3PtJet1MJet1MJet2; //!pt jet1 vs jet mass jet1 vs jet mass jet2
74 TH3F **fh3PtJet2MJet1MJet2; //!pt jet2 vs jet mass jet1 vs jet mass jet2
76 TH3F **fh3PtJet1DeltaPtDeltaMRho; //!pt jet1 vs delta-pt vs delta-M
77 TH2F **fh2PtJet1DeltaERho; //!pt jet1 vs delta-E
78 TH3F **fh3PtJet2DeltaPtDeltaMRho; //!pt jet2 vs delta-pt vs delta-M
79 TH2F **fh2PtJet2DeltaPxRho; //!pt jet2 vs delta-px
80 TH2F **fh2PtJet2DeltaPyRho; //!pt jet2 vs delta-py
81 TH2F **fh2PtJet2DeltaPzRho; //!pt jet2 vs delta-pz
82 TH2F **fh2PtJet2DeltaERho; //!pt jet2 vs delta-E
83 TH2F **fh2PtJet2DeltaMRho; //!pt jet2 vs delta-M
84 TH2F **fh2PtJet2DeltaPtRho; //!pt jet2 vs delta-pT
85 TH3F **fh3PtJet2DeltaEDeltaMRho; //!pt jet2 vs delta-E vs delta-M
86 TH3F **fh3PtJet2DeltaPDeltaMRho; //!pt jet2 vs delta-P vs delta-M
88 TH2F **fh2PtJet1DeltaPtVecSub; //!pt jet1 (AA) vs delta pT while using vector subtraction
90 TTree *fTreeJetBkg; //!tree with jet and bkg variables
91 TLorentzVector *fJet1Vec; // jet1(AA) vector
92 TLorentzVector *fJet2Vec; // jet2(probe) vector
93 TLorentzVector *fBkgVec; // bkg vector
94 Float_t fArea; // area
95 Float_t fAreaPhi; // area phi
96 Float_t fAreaEta; // area eta
98 Float_t fRhoM; // rho_m
99 Int_t fNConst; // N constituents in jet1
100 Float_t fJetMassMassless; // jet mass for massless constituents
103 AliAnalysisTaskEmcalJetMassResponse(const AliAnalysisTaskEmcalJetMassResponse&); // not implemented
104 AliAnalysisTaskEmcalJetMassResponse &operator=(const AliAnalysisTaskEmcalJetMassResponse&); // not implemented
106 ClassDef(AliAnalysisTaskEmcalJetMassResponse, 1)