]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/AliJetResponseMaker.h
From Salvatore:
[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"
6fd5039f 12#include "AliAnalysisTaskEmcalJet.h"
2949a2ec 13
6fd5039f 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 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