]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/AliJetResponseMaker.h
bookkeep pt hard info when generating on-the-fly pythia events
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / AliJetResponseMaker.h
CommitLineData
2949a2ec 1#ifndef ALIJETRESPONSEMAKER_H
2#define ALIJETRESPONSEMAKER_H
3
7549c451 4// $Id$
2949a2ec 5
6class TClonesArray;
b16bb001 7class TH2;
43032ce2 8class THnSparse;
5be3857d 9class AliNamedArrayI;
2949a2ec 10
cfc2ac24 11#include "AliEmcalJet.h"
9239b066 12#include "AliAnalysisTaskEmcalJet.h"
2949a2ec 13
9239b066 14class AliJetResponseMaker : public AliAnalysisTaskEmcalJet {
2949a2ec 15 public:
16 AliJetResponseMaker();
17 AliJetResponseMaker(const char *name);
18 virtual ~AliJetResponseMaker();
19
cd6431de 20 enum MatchingType{
21 kNoMatching = 0,
22 kGeometrical = 1,
7f76e479 23 kMCLabel = 2,
24 kSameCollections = 3
cd6431de 25 };
26
a7ab01d5 27 void UserCreateOutputObjects();
a7ab01d5 28
7f76e479 29 void SetMatching(MatchingType t, Double_t p1=1, Double_t p2=1) { fMatching = t; fMatchingPar1 = p1; fMatchingPar2 = p2; }
30 void SetPtHardBin(Int_t b) { fSelectPtHardBin = b ; }
a7477843 31 void SetUseCellsToMatch(Bool_t i) { fUseCellsToMatch = i ; }
975e700e 32 void SetMinJetMCPt(Float_t pt) { fMinJetMCPt = pt ; }
43032ce2 33 void SetHistoType(Int_t b) { fHistoType = b ; }
34 void SetDeltaPtAxis(Int_t b) { fDeltaPtAxis = b ; }
35 void SetDeltaEtaDeltaPhiAxis(Int_t b) { fDeltaEtaDeltaPhiAxis= b ; }
faf21244 36 void SetNEFAxis(Int_t b) { fNEFAxis = b ; }
37 void SetZAxis(Int_t b) { fZAxis = b ; }
43032ce2 38 void SetDoJet2Histogram(Int_t b) { fDoJet2Histogram = b ; }
2949a2ec 39
40 protected:
1ee1b5b8 41 void ExecOnce();
7cd832c7 42 void DoJetLoop();
6fd5039f 43 Bool_t FillHistograms();
1ee1b5b8 44 Bool_t Run();
f660c2d6 45 Bool_t DoJetMatching();
7f76e479 46 void SetMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2, MatchingType matching);
47 void GetGeometricalMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2, Double_t &d) const;
48 void GetMCLabelMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2, Double_t &d1, Double_t &d2) const;
49 void GetSameCollectionsMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2, Double_t &d1, Double_t &d2) const;
faf21244 50 void FillMatchingHistos(Double_t Pt1, Double_t Pt2, Double_t Eta1, Double_t Eta2, Double_t Phi1, Double_t Phi2,
51 Double_t A1, Double_t A2, Double_t d, Double_t CE1, Double_t CE2, Double_t CorrPt1, Double_t CorrPt2,
52 Double_t MCPt1, Double_t NEF1, Double_t NEF2, Double_t Z1, Double_t Z2);
43032ce2 53 void FillJetHisto(Double_t Phi, Double_t Eta, Double_t Pt, Double_t A, Double_t NEF, Double_t Z, Double_t CorrPt, Double_t MCPt, Int_t Set);
54 void AllocateTH2();
55 void AllocateTHnSparse();
2949a2ec 56
7cd832c7 57 MatchingType fMatching; // matching type
58 Double_t fMatchingPar1; // matching parameter for jet1-jet2 matching
59 Double_t fMatchingPar2; // matching parameter for jet2-jet1 matching
60 Bool_t fUseCellsToMatch; // use cells instead of clusters to match jets (slower but sometimes needed)
61 Double_t fMinJetMCPt; // minimum jet MC pt
62 Int_t fHistoType; // histogram type (0=TH2, 1=THnSparse)
63 Int_t fDeltaPtAxis; // add delta pt axis in THnSparse (default=0)
64 Int_t fDeltaEtaDeltaPhiAxis; // add delta eta and delta phi axes in THnSparse (default=0)
65 Int_t fNEFAxis; // add NEF axis in matching THnSparse (default=0)
66 Int_t fZAxis; // add Z axis in matching THnSparse (default=0)
67 Int_t fDoJet2Histogram; // add unbiased jet2 histogram (potentially memory consuming if on particle level)
68
69 Bool_t fIsJet1Rho; //!whether the jet1 collection has to be average subtracted
70 Bool_t fIsJet2Rho; //!whether the jet2 collection has to be average subtracted
ed0243d8 71
43032ce2 72 // General histos
73 TH2 *fHistLeadingJets1PtArea; //!leading jet pt vs. area histogram 1
74 TH2 *fHistLeadingJets1CorrPtArea; //!leading jet corr pt vs. area histogram 1
75 TH2 *fHistLeadingJets2PtArea; //!leading jet pt vs. area histogram 2
76 TH2 *fHistLeadingJets2CorrPtArea; //!leading jet corr pt vs. area histogram 2
77 TH2 *fHistLeadingJets2PtAreaAcceptance; //!leading jet pt vs. area histogram 2 using jet 1 cuts (acceptance, leading hadron bias, ...)
78 TH2 *fHistLeadingJets2CorrPtAreaAcceptance; //!leading jet corr pt vs. area histogram 2 using jet 1 cuts (acceptance, leading hadron bias, ...)
79
80 // THnSparse
81 THnSparse *fHistJets1; //!jet1 THnSparse
82 THnSparse *fHistJets2; //!jet2 THnSparse
83 THnSparse *fHistJets2Acceptance; //!jet2 acceptance THnSparse
84 THnSparse *fHistMatching; //!matching THnSparse
85
cd6431de 86 // Jets 1
05077f28 87 TH2 *fHistJets1PhiEta; //!phi-eta distribution of jets 1
43032ce2 88 TH2 *fHistJets1PtArea; //!inclusive jet pt vs. area histogram 1
05077f28 89 TH2 *fHistJets1CorrPtArea; //!inclusive jet pt vs. area histogram 1
05077f28 90 TH2 *fHistJets1NEFvsPt; //!Jet neutral energy fraction vs. jet pt 1
91 TH2 *fHistJets1CEFvsCEFPt; //!Jet charged energy fraction vs. charged jet pt 1
92 TH2 *fHistJets1ZvsPt; //!Constituent Pt over Jet Pt ratio vs. jet pt 1
43032ce2 93
cd6431de 94 // Jets 2
05077f28 95 TH2 *fHistJets2PhiEta; //!phi-eta distribution of jets 2
96 TH2 *fHistJets2PtArea; //!inclusive jet pt vs. area histogram 2
97 TH2 *fHistJets2CorrPtArea; //!inclusive jet pt vs. area histogram 2
05077f28 98 TH2 *fHistJets2PhiEtaAcceptance; //!phi-eta distribution of jets 2 using jet 1 cuts (acceptance, leading hadron bias, ...)
99 TH2 *fHistJets2PtAreaAcceptance; //!inclusive jet pt vs. area histogram 2 using jet 1 cuts (acceptance, leading hadron bias, ...)
100 TH2 *fHistJets2CorrPtAreaAcceptance; //!inclusive jet pt vs. area histogram 2 using jet 1 cuts (acceptance, leading hadron bias, ...)
05077f28 101 TH2 *fHistJets2NEFvsPt; //!Jet neutral energy fraction vs. jet pt 2
102 TH2 *fHistJets2CEFvsCEFPt; //!Jet charged energy fraction vs. charged jet pt 2
103 TH2 *fHistJets2ZvsPt; //!Constituent Pt over Jet Pt ratio vs. jet pt 2
43032ce2 104
cd6431de 105 // Jet1-Jet2 matching
ca5c29fa 106 TH2 *fHistCommonEnergy1vsJet1Pt; //!common energy 1 (%) vs jet 1 pt
107 TH2 *fHistCommonEnergy2vsJet2Pt; //!common energy 2 (%) vs jet 2 pt
108 TH2 *fHistDistancevsJet1Pt; //!distance vs jet 1 pt
109 TH2 *fHistDistancevsJet2Pt; //!distance vs jet 2 pt
6a20534a 110 TH2 *fHistDistancevsCommonEnergy1; //!distance vs common energy 1 (%)
111 TH2 *fHistDistancevsCommonEnergy2; //!distance vs common energy 2 (%)
05077f28 112 TH2 *fHistCommonEnergy1vsCommonEnergy2; //!common energy 1 (%) vs common energy 2 (%)
43032ce2 113 TH2 *fHistDeltaEtaDeltaPhi; //!delta eta vs delta phi of matched jets
114
c560b734 115 TH2 *fHistJet2PtOverJet1PtvsJet2Pt; //!jet 2 pt over jet 1 pt vs jet 2 pt
7030f36f 116 TH2 *fHistJet1PtOverJet2PtvsJet1Pt; //!jet 1 pt over jet 2 pt vs jet 1 pt
7030f36f 117 TH2 *fHistDeltaPtvsJet1Pt; //!delta pt between matched jets vs jet 1 pt
cfc2ac24 118 TH2 *fHistDeltaPtvsJet2Pt; //!delta pt between matched jets vs jet 2 pt
4c00a7af 119 TH2 *fHistDeltaPtOverJet1PtvsJet1Pt; //!delta pt / jet 1 pt between matched jets vs jet 1 pt
120 TH2 *fHistDeltaPtOverJet2PtvsJet2Pt; //!delta pt / jet 2 pt between matched jets vs jet 2 pt
05077f28 121 TH2 *fHistDeltaPtvsDistance; //!delta pt between matched jets vs distance
122 TH2 *fHistDeltaPtvsCommonEnergy1; //!delta pt between matched jets vs common energy 1 (%)
123 TH2 *fHistDeltaPtvsCommonEnergy2; //!delta pt between matched jets vs common energy 2 (%)
124 TH2 *fHistDeltaPtvsArea1; //!delta pt between matched jets vs jet 1 area
125 TH2 *fHistDeltaPtvsArea2; //!delta pt between matched jets vs jet 2 area
126 TH2 *fHistDeltaPtvsDeltaArea; //!delta pt between matched jets vs delta area
127 TH2 *fHistJet1PtvsJet2Pt; //!correlation jet 1 pt vs jet 2 pt
43032ce2 128
129 TH2 *fHistDeltaCorrPtOverJet1CorrPtvsJet1CorrPt;//!delta pt corr / jet 1 corr pt between matched jets vs jet 1 corr pt
130 TH2 *fHistDeltaCorrPtOverJet2CorrPtvsJet2CorrPt;//!delta pt corr / jet 2 corr pt between matched jets vs jet 2 corr pt
131 TH2 *fHistDeltaCorrPtvsJet1CorrPt; //!delta pt corr between matched jets vs jet 1 corr pt
132 TH2 *fHistDeltaCorrPtvsJet2CorrPt; //!delta pt corr between matched jets vs jet 2 corr pt
05077f28 133 TH2 *fHistDeltaCorrPtvsDistance; //!delta pt corr between matched jets vs distance
134 TH2 *fHistDeltaCorrPtvsCommonEnergy1; //!delta pt corr between matched jets vs common energy 1 (%)
135 TH2 *fHistDeltaCorrPtvsCommonEnergy2; //!delta pt corr between matched jets vs common energy 2 (%)
136 TH2 *fHistDeltaCorrPtvsArea1; //!delta pt corr between matched jets vs jet 1 area
137 TH2 *fHistDeltaCorrPtvsArea2; //!delta pt corr between matched jets vs jet 2 area
138 TH2 *fHistDeltaCorrPtvsDeltaArea; //!delta pt corr between matched jets vs delta area
cd6431de 139 TH2 *fHistJet1CorrPtvsJet2CorrPt; //!correlation jet 1 corr pt vs jet 2 corr pt
43032ce2 140
4c00a7af 141 TH2 *fHistDeltaMCPtOverJet1MCPtvsJet1MCPt; //!jet 1 MC pt - jet2 pt / jet 1 MC pt vs jet 1 pt
142 TH2 *fHistDeltaMCPtOverJet2PtvsJet2Pt; //!jet 1 MC pt - jet2 pt / jet 2 pt vs jet 2 pt
43032ce2 143 TH2 *fHistDeltaMCPtvsJet1MCPt; //!jet 1 MC pt - jet2 pt vs jet 1 MC pt
144 TH2 *fHistDeltaMCPtvsJet2Pt; //!jet 1 MC pt - jet2 pt vs jet 2 pt
05077f28 145 TH2 *fHistDeltaMCPtvsDistance; //!jet 1 MC pt - jet2 pt vs distance
146 TH2 *fHistDeltaMCPtvsCommonEnergy1; //!jet 1 MC pt - jet2 pt vs common energy 1 (%)
147 TH2 *fHistDeltaMCPtvsCommonEnergy2; //!jet 1 MC pt - jet2 pt vs common energy 2 (%)
148 TH2 *fHistDeltaMCPtvsArea1; //!jet 1 MC pt - jet2 pt vs jet 1 area
149 TH2 *fHistDeltaMCPtvsArea2; //!jet 1 MC pt - jet2 pt vs jet 2 area
150 TH2 *fHistDeltaMCPtvsDeltaArea; //!jet 1 MC pt - jet2 pt vs delta area
4358e58a 151 TH2 *fHistJet1MCPtvsJet2Pt; //!correlation jet 1 MC pt vs jet 2 pt
2949a2ec 152
153 private:
154 AliJetResponseMaker(const AliJetResponseMaker&); // not implemented
155 AliJetResponseMaker &operator=(const AliJetResponseMaker&); // not implemented
156
7cd832c7 157 ClassDef(AliJetResponseMaker, 23) // Jet response matrix producing task
2949a2ec 158};
159#endif