]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/AliJetResponseMaker.h
fix 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
1ee1b5b8 6class AliGenPythiaEventHeader;
2949a2ec 7class TClonesArray;
b16bb001 8class TH1;
9class TH2;
8d8583c1 10class TProfile;
5be3857d 11class AliNamedArrayI;
2949a2ec 12
cfc2ac24 13#include "AliEmcalJet.h"
6fd5039f 14#include "AliAnalysisTaskEmcalJet.h"
2949a2ec 15
6fd5039f 16class 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