]>
Commit | Line | Data |
---|---|---|
2949a2ec | 1 | #ifndef ALIJETRESPONSEMAKER_H |
2 | #define ALIJETRESPONSEMAKER_H | |
3 | ||
7549c451 | 4 | // $Id$ |
2949a2ec | 5 | |
6 | class TClonesArray; | |
b16bb001 | 7 | class TH2; |
43032ce2 | 8 | class THnSparse; |
5be3857d | 9 | class AliNamedArrayI; |
2949a2ec | 10 | |
cfc2ac24 | 11 | #include "AliEmcalJet.h" |
6fd5039f | 12 | #include "AliAnalysisTaskEmcalJet.h" |
2949a2ec | 13 | |
6fd5039f | 14 | class 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 SetJets2Name(const char *n) { fJets2Name = n ; } |
30 | void SetTracks2Name(const char *n) { fTracks2Name = n ; } | |
31 | void SetClus2Name(const char *n) { fCalo2Name = n ; } | |
32 | void SetJet2EtaLimits(Float_t min=-999, Float_t max=-999) { fJet2MinEta = min, fJet2MaxEta = max ; } | |
33 | void SetJet2PhiLimits(Float_t min=-999, Float_t max=-999) { fJet2MinPhi = min, fJet2MaxPhi = max ; } | |
8159f4cd | 34 | void SetJet2Radius(Float_t r) { fJet2Radius = r ; } |
35 | void SetJet2AreaCut(Float_t cut) { fJet2AreaCut = cut ; } | |
7f76e479 | 36 | void SetRho2Name(const char *n) { fRho2Name = n ; } |
37 | void SetPtBiasJet2Clus(Float_t b) { fPtBiasJet2Clus = b ; } | |
38 | void SetPtBiasJet2Track(Float_t b) { fPtBiasJet2Track = b ; } | |
39 | void SetMatching(MatchingType t, Double_t p1=1, Double_t p2=1) { fMatching = t; fMatchingPar1 = p1; fMatchingPar2 = p2; } | |
40 | void SetPtHardBin(Int_t b) { fSelectPtHardBin = b ; } | |
41 | void SetAreMCCollections(Bool_t f1, Bool_t f2) { fAreCollections1MC = f1; fAreCollections2MC = f2; } | |
a7477843 | 42 | void SetUseCellsToMatch(Bool_t i) { fUseCellsToMatch = i ; } |
975e700e | 43 | void SetMinJetMCPt(Float_t pt) { fMinJetMCPt = pt ; } |
c8a63f73 | 44 | void SetMaxClusterPt2(Float_t b) { fMaxClusterPt2 = b ; } |
45 | void SetMaxTrackPt2(Float_t b) { fMaxTrackPt2 = b ; } | |
43032ce2 | 46 | void SetHistoType(Int_t b) { fHistoType = b ; } |
47 | void SetDeltaPtAxis(Int_t b) { fDeltaPtAxis = b ; } | |
48 | void SetDeltaEtaDeltaPhiAxis(Int_t b) { fDeltaEtaDeltaPhiAxis= b ; } | |
49 | void SetDoJet2Histogram(Int_t b) { fDoJet2Histogram = b ; } | |
2949a2ec | 50 | |
51 | protected: | |
cd6431de | 52 | Bool_t AcceptJet(AliEmcalJet* jet) const; |
53 | Bool_t AcceptBiasJet2(AliEmcalJet *jet) const; | |
1ee1b5b8 | 54 | void ExecOnce(); |
cfc2ac24 | 55 | void DoJetLoop(Bool_t order); |
6fd5039f | 56 | Bool_t FillHistograms(); |
57 | Bool_t RetrieveEventObjects(); | |
1ee1b5b8 | 58 | Bool_t Run(); |
f660c2d6 | 59 | Bool_t DoJetMatching(); |
7f76e479 | 60 | void SetMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2, MatchingType matching); |
61 | void GetGeometricalMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2, Double_t &d) const; | |
62 | void GetMCLabelMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2, Double_t &d1, Double_t &d2) const; | |
63 | void GetSameCollectionsMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2, Double_t &d1, Double_t &d2) const; | |
43032ce2 | 64 | void FillMatchingHistos(Double_t Pt1, Double_t Pt2, Double_t Eta1, Double_t Eta2, Double_t Phi1, Double_t Phi2, Double_t A1, Double_t A2, Double_t d, Double_t CE1, Double_t CE2, Double_t CorrPt1, Double_t CorrPt2, Double_t MCPt1); |
65 | 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); | |
66 | void AllocateTH2(); | |
67 | void AllocateTHnSparse(); | |
2949a2ec | 68 | |
cd6431de | 69 | TString fTracks2Name; // name of second track collection |
70 | TString fCalo2Name; // name of second cluster collection | |
71 | TString fJets2Name; // name of second jet collection | |
72 | TString fRho2Name; // name of second jet collection | |
8159f4cd | 73 | Float_t fJet2Radius; // jet radius of second jet collection |
74 | Float_t fJet2AreaCut; // cut on jet area (second jet collection) | |
cd6431de | 75 | Float_t fPtBiasJet2Track; // select jets 2 with a minimum pt track |
76 | Float_t fPtBiasJet2Clus; // select jets 2 with a minimum pt cluster | |
c8a63f73 | 77 | Float_t fJet2MinEta; // minimum eta jet 2 acceptance |
78 | Float_t fJet2MaxEta; // maximum eta jet 2 acceptance | |
79 | Float_t fJet2MinPhi; // minimum phi jet 2 acceptance | |
80 | Float_t fJet2MaxPhi; // maximum phi jet 2 acceptance | |
81 | Float_t fMaxClusterPt2; // maximum cluster constituent pt to accept the jet in collection 2 (default 1000 GeV/c) | |
82 | Float_t fMaxTrackPt2; // maximum track constituent pt to accept the jet in collection 2 (default 1000 GeV/c) | |
cd6431de | 83 | Bool_t fAreCollections1MC; // collections 1 MC |
84 | Bool_t fAreCollections2MC; // collections 1 MC | |
85 | MatchingType fMatching; // matching type | |
ca5c29fa | 86 | Double_t fMatchingPar1; // matching parameter for jet1-jet2 matching |
87 | Double_t fMatchingPar2; // matching parameter for jet2-jet1 matching | |
a7477843 | 88 | Bool_t fUseCellsToMatch; // use cells instead of clusters to match jets (slower but sometimes needed) |
8159f4cd | 89 | Double_t fMinJetMCPt; // minimum jet MC pt |
43032ce2 | 90 | Int_t fHistoType; // histogram type (0=TH2, 1=THnSparse) |
91 | Int_t fDeltaPtAxis; // add delta pt axis in THnSparse (default=0) | |
92 | Int_t fDeltaEtaDeltaPhiAxis; // add delta eta and delta phi axes in THnSparse (default=0) | |
93 | Int_t fDoJet2Histogram; // add unbiased jet2 histogram (potentially memory consuming if on particle level) | |
cd6431de | 94 | TClonesArray *fTracks2; //!Tracks 2 |
95 | TClonesArray *fCaloClusters2; //!Clusters 2 | |
cfc2ac24 | 96 | TClonesArray *fJets2; //!Jets 2 |
cd6431de | 97 | AliRhoParameter *fRho2; //!Event rho 2 |
98 | Double_t fRho2Val; //!Event rho 2 value | |
5be3857d | 99 | AliNamedArrayI *fTracks2Map; //!MC particle map |
ed0243d8 | 100 | |
43032ce2 | 101 | // General histos |
102 | TH2 *fHistLeadingJets1PtArea; //!leading jet pt vs. area histogram 1 | |
103 | TH2 *fHistLeadingJets1CorrPtArea; //!leading jet corr pt vs. area histogram 1 | |
104 | TH2 *fHistLeadingJets2PtArea; //!leading jet pt vs. area histogram 2 | |
105 | TH2 *fHistLeadingJets2CorrPtArea; //!leading jet corr pt vs. area histogram 2 | |
106 | TH2 *fHistLeadingJets2PtAreaAcceptance; //!leading jet pt vs. area histogram 2 using jet 1 cuts (acceptance, leading hadron bias, ...) | |
107 | TH2 *fHistLeadingJets2CorrPtAreaAcceptance; //!leading jet corr pt vs. area histogram 2 using jet 1 cuts (acceptance, leading hadron bias, ...) | |
108 | ||
109 | // THnSparse | |
110 | THnSparse *fHistJets1; //!jet1 THnSparse | |
111 | THnSparse *fHistJets2; //!jet2 THnSparse | |
112 | THnSparse *fHistJets2Acceptance; //!jet2 acceptance THnSparse | |
113 | THnSparse *fHistMatching; //!matching THnSparse | |
114 | ||
cd6431de | 115 | // Jets 1 |
05077f28 | 116 | TH2 *fHistJets1PhiEta; //!phi-eta distribution of jets 1 |
43032ce2 | 117 | TH2 *fHistJets1PtArea; //!inclusive jet pt vs. area histogram 1 |
05077f28 | 118 | TH2 *fHistJets1CorrPtArea; //!inclusive jet pt vs. area histogram 1 |
05077f28 | 119 | TH2 *fHistJets1NEFvsPt; //!Jet neutral energy fraction vs. jet pt 1 |
120 | TH2 *fHistJets1CEFvsCEFPt; //!Jet charged energy fraction vs. charged jet pt 1 | |
121 | TH2 *fHistJets1ZvsPt; //!Constituent Pt over Jet Pt ratio vs. jet pt 1 | |
43032ce2 | 122 | |
cd6431de | 123 | // Jets 2 |
05077f28 | 124 | TH2 *fHistJets2PhiEta; //!phi-eta distribution of jets 2 |
125 | TH2 *fHistJets2PtArea; //!inclusive jet pt vs. area histogram 2 | |
126 | TH2 *fHistJets2CorrPtArea; //!inclusive jet pt vs. area histogram 2 | |
05077f28 | 127 | TH2 *fHistJets2PhiEtaAcceptance; //!phi-eta distribution of jets 2 using jet 1 cuts (acceptance, leading hadron bias, ...) |
128 | TH2 *fHistJets2PtAreaAcceptance; //!inclusive jet pt vs. area histogram 2 using jet 1 cuts (acceptance, leading hadron bias, ...) | |
129 | TH2 *fHistJets2CorrPtAreaAcceptance; //!inclusive jet pt vs. area histogram 2 using jet 1 cuts (acceptance, leading hadron bias, ...) | |
05077f28 | 130 | TH2 *fHistJets2NEFvsPt; //!Jet neutral energy fraction vs. jet pt 2 |
131 | TH2 *fHistJets2CEFvsCEFPt; //!Jet charged energy fraction vs. charged jet pt 2 | |
132 | TH2 *fHistJets2ZvsPt; //!Constituent Pt over Jet Pt ratio vs. jet pt 2 | |
43032ce2 | 133 | |
cd6431de | 134 | // Jet1-Jet2 matching |
ca5c29fa | 135 | TH2 *fHistCommonEnergy1vsJet1Pt; //!common energy 1 (%) vs jet 1 pt |
136 | TH2 *fHistCommonEnergy2vsJet2Pt; //!common energy 2 (%) vs jet 2 pt | |
137 | TH2 *fHistDistancevsJet1Pt; //!distance vs jet 1 pt | |
138 | TH2 *fHistDistancevsJet2Pt; //!distance vs jet 2 pt | |
6a20534a | 139 | TH2 *fHistDistancevsCommonEnergy1; //!distance vs common energy 1 (%) |
140 | TH2 *fHistDistancevsCommonEnergy2; //!distance vs common energy 2 (%) | |
05077f28 | 141 | TH2 *fHistCommonEnergy1vsCommonEnergy2; //!common energy 1 (%) vs common energy 2 (%) |
43032ce2 | 142 | TH2 *fHistDeltaEtaDeltaPhi; //!delta eta vs delta phi of matched jets |
143 | ||
c560b734 | 144 | TH2 *fHistJet2PtOverJet1PtvsJet2Pt; //!jet 2 pt over jet 1 pt vs jet 2 pt |
7030f36f | 145 | TH2 *fHistJet1PtOverJet2PtvsJet1Pt; //!jet 1 pt over jet 2 pt vs jet 1 pt |
7030f36f | 146 | TH2 *fHistDeltaPtvsJet1Pt; //!delta pt between matched jets vs jet 1 pt |
cfc2ac24 | 147 | TH2 *fHistDeltaPtvsJet2Pt; //!delta pt between matched jets vs jet 2 pt |
4c00a7af | 148 | TH2 *fHistDeltaPtOverJet1PtvsJet1Pt; //!delta pt / jet 1 pt between matched jets vs jet 1 pt |
149 | TH2 *fHistDeltaPtOverJet2PtvsJet2Pt; //!delta pt / jet 2 pt between matched jets vs jet 2 pt | |
05077f28 | 150 | TH2 *fHistDeltaPtvsDistance; //!delta pt between matched jets vs distance |
151 | TH2 *fHistDeltaPtvsCommonEnergy1; //!delta pt between matched jets vs common energy 1 (%) | |
152 | TH2 *fHistDeltaPtvsCommonEnergy2; //!delta pt between matched jets vs common energy 2 (%) | |
153 | TH2 *fHistDeltaPtvsArea1; //!delta pt between matched jets vs jet 1 area | |
154 | TH2 *fHistDeltaPtvsArea2; //!delta pt between matched jets vs jet 2 area | |
155 | TH2 *fHistDeltaPtvsDeltaArea; //!delta pt between matched jets vs delta area | |
156 | TH2 *fHistJet1PtvsJet2Pt; //!correlation jet 1 pt vs jet 2 pt | |
43032ce2 | 157 | |
158 | TH2 *fHistDeltaCorrPtOverJet1CorrPtvsJet1CorrPt;//!delta pt corr / jet 1 corr pt between matched jets vs jet 1 corr pt | |
159 | TH2 *fHistDeltaCorrPtOverJet2CorrPtvsJet2CorrPt;//!delta pt corr / jet 2 corr pt between matched jets vs jet 2 corr pt | |
160 | TH2 *fHistDeltaCorrPtvsJet1CorrPt; //!delta pt corr between matched jets vs jet 1 corr pt | |
161 | TH2 *fHistDeltaCorrPtvsJet2CorrPt; //!delta pt corr between matched jets vs jet 2 corr pt | |
05077f28 | 162 | TH2 *fHistDeltaCorrPtvsDistance; //!delta pt corr between matched jets vs distance |
163 | TH2 *fHistDeltaCorrPtvsCommonEnergy1; //!delta pt corr between matched jets vs common energy 1 (%) | |
164 | TH2 *fHistDeltaCorrPtvsCommonEnergy2; //!delta pt corr between matched jets vs common energy 2 (%) | |
165 | TH2 *fHistDeltaCorrPtvsArea1; //!delta pt corr between matched jets vs jet 1 area | |
166 | TH2 *fHistDeltaCorrPtvsArea2; //!delta pt corr between matched jets vs jet 2 area | |
167 | TH2 *fHistDeltaCorrPtvsDeltaArea; //!delta pt corr between matched jets vs delta area | |
cd6431de | 168 | TH2 *fHistJet1CorrPtvsJet2CorrPt; //!correlation jet 1 corr pt vs jet 2 corr pt |
43032ce2 | 169 | |
4c00a7af | 170 | TH2 *fHistDeltaMCPtOverJet1MCPtvsJet1MCPt; //!jet 1 MC pt - jet2 pt / jet 1 MC pt vs jet 1 pt |
171 | TH2 *fHistDeltaMCPtOverJet2PtvsJet2Pt; //!jet 1 MC pt - jet2 pt / jet 2 pt vs jet 2 pt | |
43032ce2 | 172 | TH2 *fHistDeltaMCPtvsJet1MCPt; //!jet 1 MC pt - jet2 pt vs jet 1 MC pt |
173 | TH2 *fHistDeltaMCPtvsJet2Pt; //!jet 1 MC pt - jet2 pt vs jet 2 pt | |
05077f28 | 174 | TH2 *fHistDeltaMCPtvsDistance; //!jet 1 MC pt - jet2 pt vs distance |
175 | TH2 *fHistDeltaMCPtvsCommonEnergy1; //!jet 1 MC pt - jet2 pt vs common energy 1 (%) | |
176 | TH2 *fHistDeltaMCPtvsCommonEnergy2; //!jet 1 MC pt - jet2 pt vs common energy 2 (%) | |
177 | TH2 *fHistDeltaMCPtvsArea1; //!jet 1 MC pt - jet2 pt vs jet 1 area | |
178 | TH2 *fHistDeltaMCPtvsArea2; //!jet 1 MC pt - jet2 pt vs jet 2 area | |
179 | TH2 *fHistDeltaMCPtvsDeltaArea; //!jet 1 MC pt - jet2 pt vs delta area | |
4358e58a | 180 | TH2 *fHistJet1MCPtvsJet2Pt; //!correlation jet 1 MC pt vs jet 2 pt |
2949a2ec | 181 | |
182 | private: | |
183 | AliJetResponseMaker(const AliJetResponseMaker&); // not implemented | |
184 | AliJetResponseMaker &operator=(const AliJetResponseMaker&); // not implemented | |
185 | ||
43032ce2 | 186 | ClassDef(AliJetResponseMaker, 21) // Jet response matrix producing task |
2949a2ec | 187 | }; |
188 | #endif |