]>
Commit | Line | Data |
---|---|---|
2949a2ec | 1 | #ifndef ALIJETRESPONSEMAKER_H |
2 | #define ALIJETRESPONSEMAKER_H | |
3 | ||
7549c451 | 4 | // $Id$ |
2949a2ec | 5 | |
1ee1b5b8 | 6 | class AliGenPythiaEventHeader; |
2949a2ec | 7 | class TClonesArray; |
b16bb001 | 8 | class TH1; |
9 | class TH2; | |
8d8583c1 | 10 | class TProfile; |
5be3857d | 11 | class AliNamedArrayI; |
2949a2ec | 12 | |
cfc2ac24 | 13 | #include "AliEmcalJet.h" |
6fd5039f | 14 | #include "AliAnalysisTaskEmcalJet.h" |
2949a2ec | 15 | |
6fd5039f | 16 | class AliJetResponseMaker : public AliAnalysisTaskEmcalJet { |
2949a2ec | 17 | public: |
18 | AliJetResponseMaker(); | |
19 | AliJetResponseMaker(const char *name); | |
20 | virtual ~AliJetResponseMaker(); | |
21 | ||
cd6431de | 22 | enum MatchingType{ |
23 | kNoMatching = 0, | |
24 | kGeometrical = 1, | |
7f76e479 | 25 | kMCLabel = 2, |
26 | kSameCollections = 3 | |
cd6431de | 27 | }; |
28 | ||
a7ab01d5 | 29 | void UserCreateOutputObjects(); |
ca5c29fa | 30 | Bool_t UserNotify(); |
a7ab01d5 | 31 | |
7f76e479 | 32 | void SetJets2Name(const char *n) { fJets2Name = n ; } |
33 | void SetTracks2Name(const char *n) { fTracks2Name = n ; } | |
34 | void SetClus2Name(const char *n) { fCalo2Name = n ; } | |
35 | void SetJet2EtaLimits(Float_t min=-999, Float_t max=-999) { fJet2MinEta = min, fJet2MaxEta = max ; } | |
36 | void SetJet2PhiLimits(Float_t min=-999, Float_t max=-999) { fJet2MinPhi = min, fJet2MaxPhi = max ; } | |
8159f4cd | 37 | void SetJet2Radius(Float_t r) { fJet2Radius = r ; } |
38 | void SetJet2AreaCut(Float_t cut) { fJet2AreaCut = cut ; } | |
7f76e479 | 39 | void SetRho2Name(const char *n) { fRho2Name = n ; } |
40 | void SetPtBiasJet2Clus(Float_t b) { fPtBiasJet2Clus = b ; } | |
41 | void SetPtBiasJet2Track(Float_t b) { fPtBiasJet2Track = b ; } | |
42 | void SetMatching(MatchingType t, Double_t p1=1, Double_t p2=1) { fMatching = t; fMatchingPar1 = p1; fMatchingPar2 = p2; } | |
43 | void SetPtHardBin(Int_t b) { fSelectPtHardBin = b ; } | |
44 | void SetAreMCCollections(Bool_t f1, Bool_t f2) { fAreCollections1MC = f1; fAreCollections2MC = f2; } | |
4358e58a | 45 | void SetIsEmbedded(Bool_t i) { fIsEmbedded = i ; } |
46 | void SetIsPythia(Bool_t i) { fIsPythia = i ; } | |
a7477843 | 47 | void SetMCLabelShift(Int_t s) { fMCLabelShift = s ; } |
48 | void SetUseCellsToMatch(Bool_t i) { fUseCellsToMatch = i ; } | |
975e700e | 49 | void SetMinJetMCPt(Float_t pt) { fMinJetMCPt = pt ; } |
2949a2ec | 50 | |
51 | protected: | |
ca5c29fa | 52 | Bool_t PythiaInfoFromFile(const char* currFile, Float_t &fXsec, Float_t &fTrials, Int_t &pthard); |
4643d2e8 | 53 | Bool_t IsEventSelected(); |
cd6431de | 54 | Bool_t AcceptJet(AliEmcalJet* jet) const; |
55 | Bool_t AcceptBiasJet2(AliEmcalJet *jet) const; | |
1ee1b5b8 | 56 | void ExecOnce(); |
cfc2ac24 | 57 | void DoJetLoop(Bool_t order); |
6fd5039f | 58 | Bool_t FillHistograms(); |
59 | Bool_t RetrieveEventObjects(); | |
1ee1b5b8 | 60 | Bool_t Run(); |
f660c2d6 | 61 | Bool_t DoJetMatching(); |
7f76e479 | 62 | void SetMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2, MatchingType matching); |
63 | void GetGeometricalMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2, Double_t &d) const; | |
64 | void GetMCLabelMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2, Double_t &d1, Double_t &d2) const; | |
65 | void GetSameCollectionsMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2, Double_t &d1, Double_t &d2) const; | |
2949a2ec | 66 | |
cd6431de | 67 | TString fTracks2Name; // name of second track collection |
68 | TString fCalo2Name; // name of second cluster collection | |
69 | TString fJets2Name; // name of second jet collection | |
70 | TString fRho2Name; // name of second jet collection | |
8159f4cd | 71 | Float_t fJet2Radius; // jet radius of second jet collection |
72 | Float_t fJet2AreaCut; // cut on jet area (second jet collection) | |
cd6431de | 73 | Float_t fPtBiasJet2Track; // select jets 2 with a minimum pt track |
74 | Float_t fPtBiasJet2Clus; // select jets 2 with a minimum pt cluster | |
75 | Bool_t fAreCollections1MC; // collections 1 MC | |
76 | Bool_t fAreCollections2MC; // collections 1 MC | |
77 | MatchingType fMatching; // matching type | |
ca5c29fa | 78 | Double_t fMatchingPar1; // matching parameter for jet1-jet2 matching |
79 | Double_t fMatchingPar2; // matching parameter for jet2-jet1 matching | |
cd6431de | 80 | Float_t fJet2MinEta; // minimum eta jet 2 acceptance |
81 | Float_t fJet2MaxEta; // maximum eta jet 2 acceptance | |
82 | Float_t fJet2MinPhi; // minimum phi jet 2 acceptance | |
83 | Float_t fJet2MaxPhi; // maximum phi jet 2 acceptance | |
b16bb001 | 84 | Int_t fSelectPtHardBin; // select one pt hard bin for analysis |
4358e58a | 85 | Bool_t fIsEmbedded; // trigger, embedded signal |
86 | Bool_t fIsPythia; // trigger, if it is a PYTHIA production | |
a7477843 | 87 | Int_t fMCLabelShift; // if MC label > fMCLabelShift, MC label -= fMCLabelShift |
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 |
1ee1b5b8 | 90 | |
b16bb001 | 91 | AliGenPythiaEventHeader *fPythiaHeader; //!event Pythia header |
388f440d | 92 | Double_t fPtHard; //!event pt hard |
b16bb001 | 93 | Int_t fPtHardBin; //!event pt hard bin |
94 | Int_t fNTrials; //!event trials | |
cd6431de | 95 | TClonesArray *fTracks2; //!Tracks 2 |
96 | TClonesArray *fCaloClusters2; //!Clusters 2 | |
cfc2ac24 | 97 | TClonesArray *fJets2; //!Jets 2 |
cd6431de | 98 | AliRhoParameter *fRho2; //!Event rho 2 |
99 | Double_t fRho2Val; //!Event rho 2 value | |
5be3857d | 100 | AliNamedArrayI *fTracks2Map; //!MC particle map |
1ee1b5b8 | 101 | // General histograms |
05077f28 | 102 | TH1 *fHistTrialsAfterSel; //!total number of trials per pt hard bin after selection |
103 | TH1 *fHistEventsAfterSel; //!total number of events per pt hard bin after selection | |
104 | TH1 *fHistTrials; //!trials from pyxsec.root | |
105 | TProfile *fHistXsection; //!x section from pyxsec.root | |
106 | TH1 *fHistEvents; //!total number of events per pt hard bin | |
388f440d | 107 | TH1 *fHistPtHard; //!pt hard distribution |
fde82e42 | 108 | TH2 *fMCEnergy1vsEnergy2; //!total MC energy jet 1 vs total energy jet 2 |
cd6431de | 109 | // Jets 1 |
05077f28 | 110 | TH2 *fHistJets1PhiEta; //!phi-eta distribution of jets 1 |
111 | TH2 *fHistJets1PtArea; //!inclusive jet pt vs area histogram 1 | |
112 | TH2 *fHistJets1CorrPtArea; //!inclusive jet pt vs. area histogram 1 | |
113 | TH2 *fHistLeadingJets1PtArea; //!leading jet pt vs area histogram 1 | |
114 | TH2 *fHistLeadingJets1CorrPtArea; //!leading jet pt vs. area histogram 1 | |
115 | TH2 *fHistJets1NEFvsPt; //!Jet neutral energy fraction vs. jet pt 1 | |
116 | TH2 *fHistJets1CEFvsCEFPt; //!Jet charged energy fraction vs. charged jet pt 1 | |
117 | TH2 *fHistJets1ZvsPt; //!Constituent Pt over Jet Pt ratio vs. jet pt 1 | |
cd6431de | 118 | // Jets 2 |
05077f28 | 119 | TH2 *fHistJets2PhiEta; //!phi-eta distribution of jets 2 |
120 | TH2 *fHistJets2PtArea; //!inclusive jet pt vs. area histogram 2 | |
121 | TH2 *fHistJets2CorrPtArea; //!inclusive jet pt vs. area histogram 2 | |
122 | TH2 *fHistLeadingJets2PtArea; //!leading jet pt vs. area histogram 2 | |
123 | TH2 *fHistLeadingJets2CorrPtArea; //!leading jet pt vs. area histogram 2 | |
124 | TH2 *fHistJets2PhiEtaAcceptance; //!phi-eta distribution of jets 2 using jet 1 cuts (acceptance, leading hadron bias, ...) | |
125 | TH2 *fHistJets2PtAreaAcceptance; //!inclusive jet pt vs. area histogram 2 using jet 1 cuts (acceptance, leading hadron bias, ...) | |
126 | TH2 *fHistJets2CorrPtAreaAcceptance; //!inclusive jet pt vs. area histogram 2 using jet 1 cuts (acceptance, leading hadron bias, ...) | |
127 | TH2 *fHistLeadingJets2PtAreaAcceptance; //!leading jet pt vs. area histogram 2 using jet 1 cuts (acceptance, leading hadron bias, ...) | |
128 | TH2 *fHistLeadingJets2CorrPtAreaAcceptance; //!leading jet pt vs. area histogram 2 using jet 1 cuts (acceptance, leading hadron bias, ...) | |
129 | TH2 *fHistJets2NEFvsPt; //!Jet neutral energy fraction vs. jet pt 2 | |
130 | TH2 *fHistJets2CEFvsCEFPt; //!Jet charged energy fraction vs. charged jet pt 2 | |
131 | TH2 *fHistJets2ZvsPt; //!Constituent Pt over Jet Pt ratio vs. jet pt 2 | |
cd6431de | 132 | // Jet1-Jet2 matching |
05077f28 | 133 | TH2 *fHistNonMatchedJets1PtArea; //!non-matched jet 1 pt distribution |
134 | TH2 *fHistNonMatchedJets2PtArea; //!non-matched jet 2 pt distribution | |
135 | TH2 *fHistNonMatchedJets1CorrPtArea; //!non-matched jet pt distribution | |
136 | TH2 *fHistNonMatchedJets2CorrPtArea; //!non-matched jet pt distribution | |
137 | TH2 *fHistMissedJets2PtArea; //!jets 2 not found in jet 1 collection | |
ca5c29fa | 138 | TH2 *fHistCommonEnergy1vsJet1Pt; //!common energy 1 (%) vs jet 1 pt |
139 | TH2 *fHistCommonEnergy2vsJet2Pt; //!common energy 2 (%) vs jet 2 pt | |
140 | TH2 *fHistDistancevsJet1Pt; //!distance vs jet 1 pt | |
141 | TH2 *fHistDistancevsJet2Pt; //!distance vs jet 2 pt | |
6a20534a | 142 | TH2 *fHistDistancevsCommonEnergy1; //!distance vs common energy 1 (%) |
143 | TH2 *fHistDistancevsCommonEnergy2; //!distance vs common energy 2 (%) | |
05077f28 | 144 | TH2 *fHistCommonEnergy1vsCommonEnergy2; //!common energy 1 (%) vs common energy 2 (%) |
c560b734 | 145 | TH2 *fHistJet2PtOverJet1PtvsJet2Pt; //!jet 2 pt over jet 1 pt vs jet 2 pt |
7030f36f | 146 | TH2 *fHistJet1PtOverJet2PtvsJet1Pt; //!jet 1 pt over jet 2 pt vs jet 1 pt |
ca5c29fa | 147 | TH2 *fHistDeltaEtaPhi; //!delta eta-phi between matched jets |
7030f36f | 148 | TH2 *fHistDeltaPtvsJet1Pt; //!delta pt between matched jets vs jet 1 pt |
cfc2ac24 | 149 | TH2 *fHistDeltaPtvsJet2Pt; //!delta 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 | |
7030f36f | 157 | TH2 *fHistDeltaCorrPtvsJet1Pt; //!delta pt corr between matched jets vs jet 1 pt |
cfc2ac24 | 158 | TH2 *fHistDeltaCorrPtvsJet2Pt; //!delta pt corr between matched jets vs jet 2 pt |
05077f28 | 159 | TH2 *fHistDeltaCorrPtvsDistance; //!delta pt corr between matched jets vs distance |
160 | TH2 *fHistDeltaCorrPtvsCommonEnergy1; //!delta pt corr between matched jets vs common energy 1 (%) | |
161 | TH2 *fHistDeltaCorrPtvsCommonEnergy2; //!delta pt corr between matched jets vs common energy 2 (%) | |
162 | TH2 *fHistDeltaCorrPtvsArea1; //!delta pt corr between matched jets vs jet 1 area | |
163 | TH2 *fHistDeltaCorrPtvsArea2; //!delta pt corr between matched jets vs jet 2 area | |
164 | TH2 *fHistDeltaCorrPtvsDeltaArea; //!delta pt corr between matched jets vs delta area | |
cd6431de | 165 | TH2 *fHistJet1CorrPtvsJet2CorrPt; //!correlation jet 1 corr pt vs jet 2 corr pt |
05077f28 | 166 | TH2 *fHistDeltaMCPtvsJet1Pt; //!jet 1 MC pt - jet2 pt vs jet 1 pt |
167 | TH2 *fHistDeltaMCPtvsJet2Pt; //!jet 1 MC pt - jet2 pt vs jet 2 pt | |
168 | TH2 *fHistDeltaMCPtvsDistance; //!jet 1 MC pt - jet2 pt vs distance | |
169 | TH2 *fHistDeltaMCPtvsCommonEnergy1; //!jet 1 MC pt - jet2 pt vs common energy 1 (%) | |
170 | TH2 *fHistDeltaMCPtvsCommonEnergy2; //!jet 1 MC pt - jet2 pt vs common energy 2 (%) | |
171 | TH2 *fHistDeltaMCPtvsArea1; //!jet 1 MC pt - jet2 pt vs jet 1 area | |
172 | TH2 *fHistDeltaMCPtvsArea2; //!jet 1 MC pt - jet2 pt vs jet 2 area | |
173 | TH2 *fHistDeltaMCPtvsDeltaArea; //!jet 1 MC pt - jet2 pt vs delta area | |
4358e58a | 174 | TH2 *fHistJet1MCPtvsJet2Pt; //!correlation jet 1 MC pt vs jet 2 pt |
2949a2ec | 175 | |
176 | private: | |
177 | AliJetResponseMaker(const AliJetResponseMaker&); // not implemented | |
178 | AliJetResponseMaker &operator=(const AliJetResponseMaker&); // not implemented | |
179 | ||
8159f4cd | 180 | ClassDef(AliJetResponseMaker, 16) // Jet response matrix producing task |
2949a2ec | 181 | }; |
182 | #endif |