#include "TH1.h"
#include "TH2.h"
#include "TH3.h"
+#include "TF1.h"
#include "TFormula.h"
#include "TRandom.h"
fPoolMgr(),
fPool(),
fHistCorr(0x0),
+ fErrorMsg(10),
fOutputList(),
fHist(),
fShortTaskId("jet_prot_corr"),
fCutsPrimTrgConstrain(new AliESDtrackCuts()),
fCutsPrimAss(0x0),
fCutsTwoTrackEff(0.02),
+ fAssFilterMask(1 << 10),
+ fRequirePID(kTRUE),
+ fTrgJetEtaMax(0.45),
+ fHadEtaMax(0.8),
fTrgPartPtMin(6.),
fTrgPartPtMax(8.),
fTrgJetPtMin(50.),
fTrgJetPtMax(80.),
- fTrgJetLeadTrkPtMin(5.),
+ fTrgJetLeadTrkPtMin(6.),
+ fTrgJetLeadTrkPtMax(100.),
+ fTrgJetAreaMin(0.6 * TMath::Pi() * 0.2*0.2),
fAssPartPtMin(2.),
fAssPartPtMax(4.),
fTrgAngleToEvPlane(TMath::Pi() / 4.),
+ fToyMeanNoPart(1.),
+ fToyRadius(.8),
+ fToySmearPhi(.2),
fTrgJetPhiModCent(new TF1("jetphimodcent", "1 + 2 * [0] * cos(2*x)", 0., 2 * TMath::Pi())),
fTrgJetPhiModSemi(new TF1("jetphimodsemi", "1 + 2 * [0] * cos(2*x)", 0., 2 * TMath::Pi())),
fTrgHadPhiModCent(new TF1("hadphimodcent", "1 + 2 * [0] * cos(2*x)", 0., 2 * TMath::Pi())),
fCutsPrimAss->SetRequireSigmaToVertex(kFALSE);
fCutsPrimAss->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny);
-
}
- fCutsPrimAss->SetEtaRange(-0.9, 0.9);
+ fCutsPrimAss->SetEtaRange(-fHadEtaMax, fHadEtaMax);
fCutsPrimAss->SetPtRange(0.15, 1E+15);
// track cuts for triggers
fCutsPrimTrg = new AliESDtrackCuts(*fCutsPrimAss);
// azimuthal modulation for triggers
- fTrgJetPhiModCent->SetParameter(0, .02);
- fTrgJetPhiModSemi->SetParameter(0, .02);
+ fTrgJetPhiModCent->SetParameter(0, .10);
+ fTrgJetPhiModSemi->SetParameter(0, .10);
fTrgHadPhiModCent->SetParameter(0, .04);
fTrgHadPhiModSemi->SetParameter(0, .10);
const Int_t trackDepth = 10000; // number of tracks to maintain in mixing buffer
const Float_t trackDepthFraction = 0.1;
const Int_t targetEvents = 1;
- // for (Int_t iTrg = 0; iTrg < kTrgLast; ++iTrg) {
- for (Int_t iAss = 0; iAss <= kAssProt; ++iAss) {
- GetPoolMgr((Ass_t) iAss) =
- new AliEventPoolManager(poolSize, trackDepth,
- nCentralityBins, centralityBins,
- nVertexBins, vertexBins);
- // nPsiBins, psiBins);
- GetPoolMgr((Ass_t) iAss)->SetTargetValues(trackDepth, trackDepthFraction, targetEvents);
- }
- // }
+ for (Int_t iAss = 0; iAss <= kAssProt; ++iAss) {
+ GetPoolMgr((Ass_t) iAss) =
+ new AliEventPoolManager(poolSize, trackDepth,
+ nCentralityBins, centralityBins,
+ nVertexBins, vertexBins);
+ GetPoolMgr((Ass_t) iAss)->SetTargetValues(trackDepth, trackDepthFraction, targetEvents);
+ }
fHistCorr = new AliHistCorr*[kEvLast*kCorrLast*kClLast];
100, 0., 100.,
100, 0., 2500.);
- AddHistogram(ID(kHistSignalTPC), "TPC dE/dx;p (GeV/c);dE/dx (arb. units)",
+ AddHistogram(ID(kHistSignalTPC), "TPC dE/dx;p (GeV/#it{c});dE/dx (arb. units)",
100, 0., 10., 200, 0., 300.);
- AddHistogram(ID(kHistSignalTOF), "TOF time of flight;p_{T} (GeV/c);t (ns)",
+ AddHistogram(ID(kHistSignalTOF), "TOF time of flight;p_{T} (GeV/#it{c});t (ns)",
100, 0., 10., 200, 0., 50.);
- AddHistogram(ID(kHistBetaTOF), "TOF beta;p (GeV/c); #beta",
+ AddHistogram(ID(kHistBetaTOF), "TOF beta;p (GeV/#it{c}); #beta",
100, 0., 10.,
100, 0., 1.);
- AddHistogram(ID(kHistDeltaTPC), "TPC dE/dx;p (GeV/c);dE/dx (arb. units)",
+ AddHistogram(ID(kHistDeltaTPC), "TPC dE/dx;p (GeV/#it{c});dE/dx (arb. units)",
100, 0., 10., 200, -100., 100.);
- AddHistogram(ID(kHistDeltaTPCSemi), "TPC dE/dx;p (GeV/c);dE/dx (arb. units)",
+ AddHistogram(ID(kHistDeltaTPCSemi), "TPC dE/dx;p (GeV/#it{c});dE/dx (arb. units)",
100, 0., 10., 200, -100., 100.);
- AddHistogram(ID(kHistDeltaTOF), "TOF time of flight;p (GeV/c);t (ns)",
+ AddHistogram(ID(kHistDeltaTOF), "TOF time of flight;p (GeV/#it{c});t (ns)",
100, 0., 10., 200, -2., 2.);
- AddHistogram(ID(kHistDeltaTOFSemi), "TOF time of flight;p (GeV/c);t (ns)",
+ AddHistogram(ID(kHistDeltaTOFSemi), "TOF time of flight;p (GeV/#it{c});t (ns)",
100, 0., 10., 200, -2., 2.);
// Nsigma templates - central
- AddHistogram(ID(kHistNsigmaTPCe), "TPC N_{#sigma,p} - e hypothesis;p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTPCe), "TPC N_{#sigma,p} - e hypothesis;p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
100, -25., 25.);
- AddHistogram(ID(kHistNsigmaTPCmu), "TPC N_{#sigma,p} - #mu hypothesis;p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTPCmu), "TPC N_{#sigma,p} - #mu hypothesis;p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
100, -25., 25.);
- AddHistogram(ID(kHistNsigmaTPCpi), "TPC N_{#sigma,p} - #pi hypothesis;p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTPCpi), "TPC N_{#sigma,p} - #pi hypothesis;p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
100, -25., 25.);
- AddHistogram(ID(kHistNsigmaTPCk), "TPC N_{#sigma,p} - K hypothesis;p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTPCk), "TPC N_{#sigma,p} - K hypothesis;p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
100, -25., 25.);
- AddHistogram(ID(kHistNsigmaTPCp), "TPC N_{#sigma,p} - p hypothesis;p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTPCp), "TPC N_{#sigma,p} - p hypothesis;p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
100, -25., 25.);
- AddHistogram(ID(kHistNsigmaTPCd), "TPC N_{#sigma,p} - d hypothesis;p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTPCd), "TPC N_{#sigma,p} - d hypothesis;p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
100, -25., 25.);
- AddHistogram(ID(kHistNsigmaTPCe_e), "TPC N_{#sigma,p} - e hypothesis (id. e);p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTPCe_e), "TPC N_{#sigma,p} - e hypothesis (id. e);p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
100, -25., 25.);
- AddHistogram(ID(kHistNsigmaTOFe), "TOF N_{#sigma,p} - e hypothesis;p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTOFe), "TOF N_{#sigma,p} - e hypothesis;p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
200, -100., 100.);
- AddHistogram(ID(kHistNsigmaTOFmu), "TOF N_{#sigma,p} - #mu hypothesis;p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTOFmu), "TOF N_{#sigma,p} - #mu hypothesis;p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
200, -100., 100.);
- AddHistogram(ID(kHistNsigmaTOFpi), "TOF N_{#sigma,p} - #pi hypothesis;p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTOFpi), "TOF N_{#sigma,p} - #pi hypothesis;p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
200, -100., 100.);
- AddHistogram(ID(kHistNsigmaTOFk), "TOF N_{#sigma,p} - K hypothesis;p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTOFk), "TOF N_{#sigma,p} - K hypothesis;p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
200, -100., 100.);
- AddHistogram(ID(kHistNsigmaTOFp), "TOF N_{#sigma,p} - p hypothesis;p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTOFp), "TOF N_{#sigma,p} - p hypothesis;p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
200, -100., 100.);
- AddHistogram(ID(kHistNsigmaTOFd), "TOF N_{#sigma,p} - d hypothesis;p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTOFd), "TOF N_{#sigma,p} - d hypothesis;p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
200, -100., 100.);
- AddHistogram(ID(kHistNsigmaTOFmismatch), "TOF N_{#sigma,p} - mismatch;p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTOFmismatch), "TOF N_{#sigma,p} - mismatch;p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
200, -100., 100.);
// Nsigma templates - semi-central
- AddHistogram(ID(kHistNsigmaTPCeSemi), "TPC N_{#sigma,p} - e hypothesis;p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTPCeSemi), "TPC N_{#sigma,p} - e hypothesis;p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
100, -25., 25.);
- AddHistogram(ID(kHistNsigmaTPCmuSemi), "TPC N_{#sigma,p} - #mu hypothesis;p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTPCmuSemi), "TPC N_{#sigma,p} - #mu hypothesis;p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
100, -25., 25.);
- AddHistogram(ID(kHistNsigmaTPCpiSemi), "TPC N_{#sigma,p} - #pi hypothesis;p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTPCpiSemi), "TPC N_{#sigma,p} - #pi hypothesis;p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
100, -25., 25.);
- AddHistogram(ID(kHistNsigmaTPCkSemi), "TPC N_{#sigma,p} - K hypothesis;p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTPCkSemi), "TPC N_{#sigma,p} - K hypothesis;p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
100, -25., 25.);
- AddHistogram(ID(kHistNsigmaTPCpSemi), "TPC N_{#sigma,p} - p hypothesis;p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTPCpSemi), "TPC N_{#sigma,p} - p hypothesis;p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
100, -25., 25.);
- AddHistogram(ID(kHistNsigmaTPCdSemi), "TPC N_{#sigma,p} - d hypothesis;p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTPCdSemi), "TPC N_{#sigma,p} - d hypothesis;p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
100, -25., 25.);
- AddHistogram(ID(kHistNsigmaTPCe_eSemi), "TPC N_{#sigma,p} - e hypothesis (id. e);p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTPCe_eSemi), "TPC N_{#sigma,p} - e hypothesis (id. e);p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
100, -25., 25.);
- AddHistogram(ID(kHistNsigmaTOFeSemi), "TOF N_{#sigma,p} - e hypothesis;p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTOFeSemi), "TOF N_{#sigma,p} - e hypothesis;p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
200, -100., 100.);
- AddHistogram(ID(kHistNsigmaTOFmuSemi), "TOF N_{#sigma,p} - #mu hypothesis;p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTOFmuSemi), "TOF N_{#sigma,p} - #mu hypothesis;p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
200, -100., 100.);
- AddHistogram(ID(kHistNsigmaTOFpiSemi), "TOF N_{#sigma,p} - #pi hypothesis;p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTOFpiSemi), "TOF N_{#sigma,p} - #pi hypothesis;p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
200, -100., 100.);
- AddHistogram(ID(kHistNsigmaTOFkSemi), "TOF N_{#sigma,p} - K hypothesis;p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTOFkSemi), "TOF N_{#sigma,p} - K hypothesis;p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
200, -100., 100.);
- AddHistogram(ID(kHistNsigmaTOFpSemi), "TOF N_{#sigma,p} - p hypothesis;p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTOFpSemi), "TOF N_{#sigma,p} - p hypothesis;p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
200, -100., 100.);
- AddHistogram(ID(kHistNsigmaTOFdSemi), "TOF N_{#sigma,p} - d hypothesis;p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTOFdSemi), "TOF N_{#sigma,p} - d hypothesis;p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
200, -100., 100.);
- AddHistogram(ID(kHistNsigmaTOFmismatchSemi), "TOF N_{#sigma,p} - mismatch;p (GeV/c);N_{#sigma,p}",
+ AddHistogram(ID(kHistNsigmaTOFmismatchSemi), "TOF N_{#sigma,p} - mismatch;p (GeV/#it{c});N_{#sigma,p}",
100, 0., 10.,
200, -100., 100.);
// delta templates
- AddHistogram(ID(kHistDeltaTOFe), "TOF #Delta;p (GeV/c);t (ns)",
+ AddHistogram(ID(kHistDeltaTOFe), "TOF #Delta;p (GeV/#it{c});t (ns)",
100, 0., 10., 200, -2., 2.);
- AddHistogram(ID(kHistDeltaTOFmu), "TOF #Delta;p (GeV/c);t (ns)",
+ AddHistogram(ID(kHistDeltaTOFmu), "TOF #Delta;p (GeV/#it{c});t (ns)",
100, 0., 10., 200, -2., 2.);
- AddHistogram(ID(kHistDeltaTOFpi), "TOF #Delta;p (GeV/c);t (ns)",
+ AddHistogram(ID(kHistDeltaTOFpi), "TOF #Delta;p (GeV/#it{c});t (ns)",
100, 0., 10., 200, -2., 2.);
- AddHistogram(ID(kHistDeltaTOFk), "TOF #Delta;p (GeV/c);t (ns)",
+ AddHistogram(ID(kHistDeltaTOFk), "TOF #Delta;p (GeV/#it{c});t (ns)",
100, 0., 10., 200, -2., 2.);
- AddHistogram(ID(kHistDeltaTOFp), "TOF #Delta;p (GeV/c);t (ns)",
+ AddHistogram(ID(kHistDeltaTOFp), "TOF #Delta;p (GeV/#it{c});t (ns)",
100, 0., 10., 200, -2., 2.);
- AddHistogram(ID(kHistDeltaTOFd), "TOF #Delta;p (GeV/c);t (ns)",
+ AddHistogram(ID(kHistDeltaTOFd), "TOF #Delta;p (GeV/#it{c});t (ns)",
100, 0., 10., 200, -2., 2.);
- AddHistogram(ID(kHistDeltaTOFeSemi), "TOF #Delta;p (GeV/c);t (ns)",
+ AddHistogram(ID(kHistDeltaTOFeSemi), "TOF #Delta;p (GeV/#it{c});t (ns)",
100, 0., 10., 200, -2., 2.);
- AddHistogram(ID(kHistDeltaTOFmuSemi), "TOF #Delta;p (GeV/c);t (ns)",
+ AddHistogram(ID(kHistDeltaTOFmuSemi), "TOF #Delta;p (GeV/#it{c});t (ns)",
100, 0., 10., 200, -2., 2.);
- AddHistogram(ID(kHistDeltaTOFpiSemi), "TOF #Delta;p (GeV/c);t (ns)",
+ AddHistogram(ID(kHistDeltaTOFpiSemi), "TOF #Delta;p (GeV/#it{c});t (ns)",
100, 0., 10., 200, -2., 2.);
- AddHistogram(ID(kHistDeltaTOFkSemi), "TOF #Delta;p (GeV/c);t (ns)",
+ AddHistogram(ID(kHistDeltaTOFkSemi), "TOF #Delta;p (GeV/#it{c});t (ns)",
100, 0., 10., 200, -2., 2.);
- AddHistogram(ID(kHistDeltaTOFpSemi), "TOF #Delta;p (GeV/c);t (ns)",
+ AddHistogram(ID(kHistDeltaTOFpSemi), "TOF #Delta;p (GeV/#it{c});t (ns)",
100, 0., 10., 200, -2., 2.);
- AddHistogram(ID(kHistDeltaTOFdSemi), "TOF #Delta;p (GeV/c);t (ns)",
+ AddHistogram(ID(kHistDeltaTOFdSemi), "TOF #Delta;p (GeV/#it{c});t (ns)",
100, 0., 10., 200, -2., 2.);
// sigma comparisons
- // AddHistogram(ID(kHistExpSigmaTOFe), "TOF time of flight;p (GeV/c);t (ns)",
+ // AddHistogram(ID(kHistExpSigmaTOFe), "TOF time of flight;p (GeV/#it{c});t (ns)",
// 100, 0., 10., 200, 0., .25);
- // AddHistogram(ID(kHistExpSigmaTOFmu), "TOF time of flight;p (GeV/c);t (ns)",
+ // AddHistogram(ID(kHistExpSigmaTOFmu), "TOF time of flight;p (GeV/#it{c});t (ns)",
// 100, 0., 10., 200, 0., .25);
- // AddHistogram(ID(kHistExpSigmaTOFpi), "TOF time of flight;p (GeV/c);t (ns)",
+ // AddHistogram(ID(kHistExpSigmaTOFpi), "TOF time of flight;p (GeV/#it{c});t (ns)",
// 100, 0., 10., 200, 0., .25);
- // AddHistogram(ID(kHistExpSigmaTOFk), "TOF time of flight;p (GeV/c);t (ns)",
+ // AddHistogram(ID(kHistExpSigmaTOFk), "TOF time of flight;p (GeV/#it{c});t (ns)",
// 100, 0., 10., 200, 0., .25);
- // AddHistogram(ID(kHistExpSigmaTOFp), "TOF time of flight;p (GeV/c);t (ns)",
+ // AddHistogram(ID(kHistExpSigmaTOFp), "TOF time of flight;p (GeV/#it{c});t (ns)",
// 100, 0., 10., 200, 0., .25);
- // AddHistogram(ID(kHistExpSigmaTOFd), "TOF time of flight;p (GeV/c);t (ns)",
+ // AddHistogram(ID(kHistExpSigmaTOFd), "TOF time of flight;p (GeV/#it{c});t (ns)",
// 100, 0., 10., 200, 0., .25);
- // AddHistogram(ID(kHistExpSigmaTOFeSemi), "TOF time of flight;p (GeV/c);t (ns)",
+ // AddHistogram(ID(kHistExpSigmaTOFeSemi), "TOF time of flight;p (GeV/#it{c});t (ns)",
// 100, 0., 10., 200, 0., .25);
- // AddHistogram(ID(kHistExpSigmaTOFmuSemi), "TOF time of flight;p (GeV/c);t (ns)",
+ // AddHistogram(ID(kHistExpSigmaTOFmuSemi), "TOF time of flight;p (GeV/#it{c});t (ns)",
// 100, 0., 10., 200, 0., .25);
- // AddHistogram(ID(kHistExpSigmaTOFpiSemi), "TOF time of flight;p (GeV/c);t (ns)",
+ // AddHistogram(ID(kHistExpSigmaTOFpiSemi), "TOF time of flight;p (GeV/#it{c});t (ns)",
// 100, 0., 10., 200, 0., .25);
- // AddHistogram(ID(kHistExpSigmaTOFkSemi), "TOF time of flight;p (GeV/c);t (ns)",
+ // AddHistogram(ID(kHistExpSigmaTOFkSemi), "TOF time of flight;p (GeV/#it{c});t (ns)",
// 100, 0., 10., 200, 0., .25);
- // AddHistogram(ID(kHistExpSigmaTOFpSemi), "TOF time of flight;p (GeV/c);t (ns)",
+ // AddHistogram(ID(kHistExpSigmaTOFpSemi), "TOF time of flight;p (GeV/#it{c});t (ns)",
// 100, 0., 10., 200, 0., .25);
- // AddHistogram(ID(kHistExpSigmaTOFdSemi), "TOF time of flight;p (GeV/c);t (ns)",
+ // AddHistogram(ID(kHistExpSigmaTOFdSemi), "TOF time of flight;p (GeV/#it{c});t (ns)",
// 100, 0., 10., 200, 0., .25);
// AddHistogram(ID(kHistCmpSigmaTOFe), "#sigma comparison;exp #sigma;template #sigma",
// 200, 0., .25, 200, 0., .25);
// Nsigma distributions
- AddHistogram(ID(kHistNsigmaTPCTOF), "N_{#sigma,p} TPC-TOF;p (GeV/c);N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
+ AddHistogram(ID(kHistNsigmaTPCTOF), "N_{#sigma,p} TPC-TOF;p (GeV/#it{c});N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
100, 0., 10.,
100, -25., 25.,
200, -100., 100.);
- AddHistogram(ID(kHistNsigmaTPCTOFPt), "N_{#sigma,p} TPC-TOF;p_{T} (GeV/c);N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
+ AddHistogram(ID(kHistNsigmaTPCTOFPt), "N_{#sigma,p} TPC-TOF;p_{T} (GeV/#it{c});N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
100, 0., 10.,
100, -25., 25.,
200, -100., 100.);
- AddHistogram(ID(kHistNsigmaTPCTOFUsed), "N_{#sigma,p} TPC-TOF;p (GeV/c);N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
+ AddHistogram(ID(kHistNsigmaTPCTOFUsed), "N_{#sigma,p} TPC-TOF;p (GeV/#it{c});N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
100, 0., 10.,
100, -25., 25.,
200, -100., 100.);
- AddHistogram(ID(kHistNsigmaTPCTOFUsedCentral), "N_{#sigma,p} TPC-TOF (central);p (GeV/c);N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
+ AddHistogram(ID(kHistNsigmaTPCTOFUsedCentral), "N_{#sigma,p} TPC-TOF (central);p (GeV/#it{c});N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
100, 0., 10.,
100, -25., 25.,
200, -100., 100.);
- AddHistogram(ID(kHistNsigmaTPCTOFUsedSemiCentral), "N_{#sigma,p} TPC-TOF (semi-central);p (GeV/c);N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
+ AddHistogram(ID(kHistNsigmaTPCTOFUsedSemiCentral), "N_{#sigma,p} TPC-TOF (semi-central);p (GeV/#it{c});N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
100, 0., 10.,
100, -25., 25.,
200, -100., 100.);
- AddHistogram(ID(kHistNsigmaTPCTOFUsedPt), "N_{#sigma,p} TPC-TOF;p_{T} (GeV/c);N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
+ AddHistogram(ID(kHistNsigmaTPCTOFUsedPt), "N_{#sigma,p} TPC-TOF;p_{T} (GeV/#it{c});N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
50, 0., 10.,
100, -25., 25.,
200, -100., 100.);
- AddHistogram(ID(kHistNsigmaTPCTOFUsedPtCentral), "N_{#sigma,p} TPC-TOF;p_{T} (GeV/c);N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
+ AddHistogram(ID(kHistNsigmaTPCTOFUsedPtCentral), "N_{#sigma,p} TPC-TOF;p_{T} (GeV/#it{c});N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
50, 0., 10.,
100, -25., 25.,
200, -100., 100.);
- AddHistogram(ID(kHistNsigmaTPCTOFUsedPtSemiCentral), "N_{#sigma,p} TPC-TOF;p_{T} (GeV/c);N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
+ AddHistogram(ID(kHistNsigmaTPCTOFUsedPtSemiCentral), "N_{#sigma,p} TPC-TOF;p_{T} (GeV/#it{c});N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
50, 0., 10.,
100, -25., 25.,
200, -100., 100.);
+ AddHistogram(ID(kHistNsigmaTPCTOFUsedCentralMCe), "N_{#sigma,p} TPC-TOF (central, MC e);p (GeV/#it{c});N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
+ 100, 0., 10.,
+ 100, -25., 25.,
+ 200, -100., 100.);
+ AddHistogram(ID(kHistNsigmaTPCTOFUsedCentralMCmu), "N_{#sigma,p} TPC-TOF (central, MC #mu);p (GeV/#it{c});N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
+ 100, 0., 10.,
+ 100, -25., 25.,
+ 200, -100., 100.);
+ AddHistogram(ID(kHistNsigmaTPCTOFUsedCentralMCpi), "N_{#sigma,p} TPC-TOF (central, MC pi);p (GeV/#it{c});N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
+ 100, 0., 10.,
+ 100, -25., 25.,
+ 200, -100., 100.);
+ AddHistogram(ID(kHistNsigmaTPCTOFUsedCentralMCk), "N_{#sigma,p} TPC-TOF (central, MC K);p (GeV/#it{c});N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
+ 100, 0., 10.,
+ 100, -25., 25.,
+ 200, -100., 100.);
+ AddHistogram(ID(kHistNsigmaTPCTOFUsedCentralMCp), "N_{#sigma,p} TPC-TOF (central, MC p);p (GeV/#it{c});N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
+ 100, 0., 10.,
+ 100, -25., 25.,
+ 200, -100., 100.);
+ AddHistogram(ID(kHistNsigmaTPCTOFUsedCentralMCd), "N_{#sigma,p} TPC-TOF (central, MC d);p (GeV/#it{c});N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
+ 100, 0., 10.,
+ 100, -25., 25.,
+ 200, -100., 100.);
+
+ AddHistogram(ID(kHistNsigmaTPCTOFUsedSemiCentralMCe), "N_{#sigma,p} TPC-TOF (semi-central, MC e);p (GeV/#it{c});N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
+ 100, 0., 10.,
+ 100, -25., 25.,
+ 200, -100., 100.);
+ AddHistogram(ID(kHistNsigmaTPCTOFUsedSemiCentralMCmu), "N_{#sigma,p} TPC-TOF (semi-central, MC #mu);p (GeV/#it{c});N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
+ 100, 0., 10.,
+ 100, -25., 25.,
+ 200, -100., 100.);
+ AddHistogram(ID(kHistNsigmaTPCTOFUsedSemiCentralMCpi), "N_{#sigma,p} TPC-TOF (semi-central, MC pi);p (GeV/#it{c});N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
+ 100, 0., 10.,
+ 100, -25., 25.,
+ 200, -100., 100.);
+ AddHistogram(ID(kHistNsigmaTPCTOFUsedSemiCentralMCk), "N_{#sigma,p} TPC-TOF (semi-central, MC K);p (GeV/#it{c});N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
+ 100, 0., 10.,
+ 100, -25., 25.,
+ 200, -100., 100.);
+ AddHistogram(ID(kHistNsigmaTPCTOFUsedSemiCentralMCp), "N_{#sigma,p} TPC-TOF (semi-central, MC p);p (GeV/#it{c});N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
+ 100, 0., 10.,
+ 100, -25., 25.,
+ 200, -100., 100.);
+ AddHistogram(ID(kHistNsigmaTPCTOFUsedSemiCentralMCd), "N_{#sigma,p} TPC-TOF (semi-central, MC d);p (GeV/#it{c});N_{#sigma,p}^{TPC};N_{#sigma,p}^{TOF}",
+ 100, 0., 10.,
+ 100, -25., 25.,
+ 200, -100., 100.);
+
AddHistogram(ID(kHistEvPlane), "default event plane;#Psi;counts",
100, -0. * TMath::Pi(), 1. * TMath::Pi());
AddHistogram(ID(kHistEvPlaneUsed), "default event plane;#Psi;counts",
100, -0. * TMath::Pi(), 1. * TMath::Pi(),
kClLast, -.5, kClLast-.5);
- AddHistogram(ID(kHistJetPtCentral), "jet spectrum - central;p_{T}^{jet,ch};counts",
+ AddHistogram(ID(kHistJetPtCentral), "jet spectrum - central;p_{T}^{jet,ch} (GeV/#it{c});counts",
40, 0., 200.);
- AddHistogram(ID(kHistJetPtSemi), "jet spectrum - semi-peripheral;p_{T}^{jet,ch};counts",
+ AddHistogram(ID(kHistJetPtSemi), "jet spectrum - semi-peripheral;p_{T}^{jet,ch} (GeV/#it{c});counts",
40, 0., 200.);
AddHistogram(ID(kHistEtaPhiTrgHad), "trg had;#varphi;#eta",
AddHistogram(ID(kHistPhiTrgJetEvPlane), "trg jet;#varphi - #Psi_{ev};centrality",
100, -0. * TMath::Pi(), 2. * TMath::Pi(),
- 100., 0., 100.);
+ 100, 0., 100.);
AddHistogram(ID(kHistPhiTrgHadEvPlane), "trg had;#varphi - #Psi_{ev};centrality",
100, -0. * TMath::Pi(), 2. * TMath::Pi(),
- 100., 0., 100.);
+ 100, 0., 100.);
+ AddHistogram(ID(kHistPhiRndTrgJetEvPlane), "rnd trg jet;#varphi - #Psi_{ev};centrality",
+ 100, -0. * TMath::Pi(), 2. * TMath::Pi(),
+ 100, 0., 100.);
+ AddHistogram(ID(kHistPhiRndTrgHadEvPlane), "rnd trg had;#varphi - #Psi_{ev};centrality",
+ 100, -0. * TMath::Pi(), 2. * TMath::Pi(),
+ 100, 0., 100.);
AddHistogram(ID(kHistPhiAssHadEvPlane), "ass had;#varphi - #Psi_{ev};centrality",
100, -0. * TMath::Pi(), 2. * TMath::Pi(),
- 100., 0., 100.);
+ 100, 0., 100.);
AddHistogram(ID(kHistPhiAssProtEvPlane), "ass prot;#varphi - #Psi_{ev};centrality",
100, -0. * TMath::Pi(), 2. * TMath::Pi(),
- 100., 0., 100.);
+ 100, 0., 100.);
AddHistogram(ID(kHistPhiAssHadVsEvPlane), "ass had;#Psi_{ev};#varphi;centrality",
100, -0. * TMath::Pi(), 1. * TMath::Pi(),
100, -0. * TMath::Pi(), 2. * TMath::Pi(),
- 100., 0., 100.);
+ 100, 0., 100.);
AddHistogram(ID(kHistPhiTrgJetEvPlane3), "trg jet;#varphi - #Psi_{ev};centrality",
100, -0. * TMath::Pi(), 2. * TMath::Pi(),
- 100., 0., 100.);
+ 100, 0., 100.);
AddHistogram(ID(kHistPhiTrgHadEvPlane3), "trg had;#varphi - #Psi_{ev};centrality",
100, -0. * TMath::Pi(), 2. * TMath::Pi(),
- 100., 0., 100.);
+ 100, 0., 100.);
AddHistogram(ID(kHistPhiAssHadEvPlane3), "ass had;#varphi - #Psi_{ev};centrality",
100, -0. * TMath::Pi(), 2. * TMath::Pi(),
- 100., 0., 100.);
+ 100, 0., 100.);
AddHistogram(ID(kHistPhiAssProtEvPlane3), "ass prot;#varphi - #Psi_{ev};centrality",
100, -0. * TMath::Pi(), 2. * TMath::Pi(),
- 100., 0., 100.);
+ 100, 0., 100.);
for (Int_t iCorr = 0; iCorr < kCorrLast; ++iCorr) {
for (Int_t iCl = 0; iCl < kClLast; ++iCl) {
for (Int_t iEv = 0; iEv < kEvLast; ++iEv) {
// we don't need the mixed event histograms for the embedded excess particles
- if ((iCorr > kCorrRndHadProt) && (iEv == kEvMix))
+ if ((iCorr > kCorrRndJetProt) && (iEv == kEvMix))
continue;
GetHistCorr((CorrType_t) iCorr, (Class_t) iCl, (Ev_t) iEv) =
TObjArray trgArray[kTrgLast];
TObjArray assArray[kAssLast];
+ // prepare TOF response
TF1 fTOFsignal("fTOFsignal", &AliAnalysisTaskJetProtonCorr::TOFsignal, -2440., 2440., 4);
fTOFsignal.SetParameter(0, 1.);
fTOFsignal.SetParameter(1, 0.);
trk->Pt(),
fPIDResponse->NumberOfSigmasTPC(trk, AliPID::kProton),
fPIDResponse->NumberOfSigmasTOF(trk, AliPID::kProton));
+ if (fMCEvent) {
+ if (AliMCParticle *mcPart = (AliMCParticle*) fMCEvent->GetTrack(TMath::Abs(trk->GetLabel()))) {
+ for (Int_t iParticle = 0; iParticle <= AliPID::kDeuteron; ++iParticle) {
+ if (TMath::Abs(mcPart->Particle()->GetPdgCode()) == AliPID::ParticleCode(iParticle))
+ FillH3(kHistNsigmaTPCTOFUsedCentralMCe,
+ trk->P(),
+ fPIDResponse->NumberOfSigmasTPC(trk, AliPID::kProton),
+ fPIDResponse->NumberOfSigmasTOF(trk, AliPID::kProton),
+ 1., iParticle);
+ }
+ }
+ }
}
if (IsClass(kClSemiCentral)) {
- if (IsProton(trk))
- FillH1(kHistEtaPhiAssProt, trk->Phi(), trk->Eta());
FillH3(kHistNsigmaTPCTOFUsedSemiCentral,
trk->P(),
fPIDResponse->NumberOfSigmasTPC(trk, AliPID::kProton),
trk->Pt(),
fPIDResponse->NumberOfSigmasTPC(trk, AliPID::kProton),
fPIDResponse->NumberOfSigmasTOF(trk, AliPID::kProton));
+ if (fMCEvent) {
+ if (AliMCParticle *mcPart = (AliMCParticle*) fMCEvent->GetTrack(TMath::Abs(trk->GetLabel()))) {
+ for (Int_t iParticle = 0; iParticle <= AliPID::kDeuteron; ++iParticle) {
+ if (TMath::Abs(mcPart->Particle()->GetPdgCode()) == AliPID::ParticleCode(iParticle))
+ FillH3(kHistNsigmaTPCTOFUsedSemiCentralMCe,
+ trk->P(),
+ fPIDResponse->NumberOfSigmasTPC(trk, AliPID::kProton),
+ fPIDResponse->NumberOfSigmasTOF(trk, AliPID::kProton),
+ 1., iParticle);
+ }
+ }
+ }
}
if (IsProton(trk)) {
assArray[kAssProt].Add(trk);
}
// template generation
- Double_t deltaTPC;
- fPIDResponse->GetSignalDelta(AliPIDResponse::kTPC, trk, AliPID::kProton, deltaTPC);
if (fPIDResponse->CheckPIDStatus(AliPIDResponse::kTPC, trk) == AliPIDResponse::kDetPidOk) {
+ Double_t deltaTPC;
+ fPIDResponse->GetSignalDelta(AliPIDResponse::kTPC, trk, AliPID::kProton, deltaTPC);
+ if (IsClass(kClCentral))
+ FillH2(kHistDeltaTPC, trk->P(), deltaTPC);
+ if (IsClass(kClSemiCentral))
+ FillH2(kHistDeltaTPCSemi, trk->P(), deltaTPC);
+
Double_t expTPC = fPIDResponse->GetTPCResponse().GetExpectedSignal(trk, AliPID::kProton, AliTPCPIDResponse::kdEdxDefault, corrEta, corrMult);
Double_t expSigmaTPC = fPIDResponse->GetTPCResponse().GetExpectedSigma(trk, AliPID::kProton, AliTPCPIDResponse::kdEdxDefault, corrEta, corrMult);
Double_t expSigmaTPCx = fPIDResponse->GetTPCResponse().GetExpectedSigma(trk, AliPID::EParticleType(iParticle), AliTPCPIDResponse::kdEdxDefault, corrEta, corrMult);
Double_t rndTPCx = gRandom->Gaus(expTPCx, expSigmaTPCx);
- if(IsClass(kClCentral)) {
+ if(IsClass(kClCentral))
FillH2(kHistNsigmaTPCe, trk->P(), (rndTPCx-expTPC)/expSigmaTPC, 1., iParticle);
- FillH2(kHistDeltaTPC, trk->P(), deltaTPC);
- }
- if(IsClass(kClSemiCentral)) {
+ if(IsClass(kClSemiCentral))
FillH2(kHistNsigmaTPCeSemi, trk->P(), (rndTPCx-expTPC)/expSigmaTPC, 1., iParticle);
- FillH2(kHistDeltaTPCSemi, trk->P(), deltaTPC);
- }
}
}
- Double_t deltaTOF;
- fPIDResponse->GetSignalDelta(AliPIDResponse::kTOF, trk, AliPID::kProton, deltaTOF);
if (fPIDResponse->CheckPIDStatus(AliPIDResponse::kTOF, trk) == AliPIDResponse::kDetPidOk) {
+ Double_t deltaTOF;
+ fPIDResponse->GetSignalDelta(AliPIDResponse::kTOF, trk, AliPID::kProton, deltaTOF);
+
AliTOFPIDResponse &tofResponse = fPIDResponse->GetTOFResponse();
Float_t p = trk->P();
Double_t rndTOFmismatch = AliTOFPIDResponse::GetMismatchRandomValue(trk->Eta());
if(IsClass(kClCentral)) {
- FillH2(kHistNsigmaTOFmismatch, p, (rndTOFmismatch - expTOF) / expSigmaTOF);
+ FillH2(kHistNsigmaTOFmismatch, trk->P(), (rndTOFmismatch - expTOF) / expSigmaTOF);
FillH2(kHistDeltaTOF, trk->P(), deltaTOF * 1.e-3); // ps -> ns
}
if(IsClass(kClSemiCentral)) {
- FillH2(kHistNsigmaTOFmismatchSemi, p, (rndTOFmismatch - expTOF) / expSigmaTOF);
+ FillH2(kHistNsigmaTOFmismatchSemi, trk->P(), (rndTOFmismatch - expTOF) / expSigmaTOF);
FillH2(kHistDeltaTOFSemi, trk->P(), deltaTOF * 1.e-3); // ps -> ns
}
}
AliVEvent::EOfflineTriggerTypes physSel =
(AliVEvent::EOfflineTriggerTypes) ((AliInputEventHandler*) (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
- TString trgClasses = InputEvent()->GetFiredTriggerClasses();
+ // TString trgClasses = InputEvent()->GetFiredTriggerClasses();
// physics selection
- if (physSel & (AliVEvent::kAnyINT | AliVEvent::kCentral | AliVEvent::kSemiCentral))
+ if (physSel & (AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral))
MarkTrigger(kTriggerInt);
return kTRUE;
const Int_t nTracksAODAss = fAODEvent->GetNumberOfTracks();
for (Int_t iTrack = 0; iTrack < nTracksAODAss; ++iTrack) {
AliAODTrack *trk = fAODEvent->GetTrack(iTrack);
- // 4: track cuts esdTrackCutsH ???
- // 10: R_AA cuts
- if (trk->TestFilterMask(1 << 4))
+ if (trk->TestFilterBit(fAssFilterMask))
fPrimTrackArrayAss->Add(trk);
}
if (AODEvent())
fJetArray = dynamic_cast<TClonesArray*> (AODEvent()->FindListObject(fJetBranchName));
if (!fJetArray) {
- printf("no jet branch \"%s\" found, in the AODs are:\n", fJetBranchName);
+ if (fErrorMsg > 0) {
+ AliError(Form("no jet branch \"%s\" found, in the AODs are:", fJetBranchName));
+ --fErrorMsg;
+ }
if (fDebug > 0) {
fAODEvent->GetList()->Print();
if (AODEvent())
return eventGood;
}
-Bool_t AliAnalysisTaskJetProtonCorr::AcceptTrigger(AliVTrack *trg)
+Bool_t AliAnalysisTaskJetProtonCorr::AcceptTrigger(const AliVTrack *trg)
{
+ if (TMath::Abs(trg->Eta()) > fHadEtaMax)
+ return kFALSE;
+
// check pt interval
Bool_t acceptPt =
(trg->Pt() >= fTrgPartPtMin) &&
return (acceptPt && acceptOrientation);
}
-AliVTrack* AliAnalysisTaskJetProtonCorr::GetLeadingTrack(AliAODJet *jet) const
+AliVTrack* AliAnalysisTaskJetProtonCorr::GetLeadingTrack(const AliAODJet *jet) const
{
// return leading track within a jet
return (AliAODTrack*) jet->GetRefTracks()->At(iLeadingTrack);
}
-Bool_t AliAnalysisTaskJetProtonCorr::AcceptTrigger(AliAODJet *trg)
+Bool_t AliAnalysisTaskJetProtonCorr::AcceptTrigger(const AliAODJet *trg)
{
// restrict eta
- if (TMath::Abs(trg->Eta()) > .5)
+ if (TMath::Abs(trg->Eta()) > fTrgJetEtaMax)
+ return kFALSE;
+
+ // reject too small jets
+ if (trg->EffectiveAreaCharged() < fTrgJetAreaMin)
return kFALSE;
// require hard leading track
// (leading track biased jet sample)
- if (GetLeadingTrack(trg)->Pt() < fTrgJetLeadTrkPtMin)
+ // but reject jets with too high pt constituents
+ const Float_t ptLeadTrack = GetLeadingTrack(trg)->Pt();
+ if ((ptLeadTrack < fTrgJetLeadTrkPtMin) ||
+ (ptLeadTrack > fTrgJetLeadTrkPtMax))
return kFALSE;
// check for jet orientation w.r.t. event plane
Bool_t acceptOrientation = IsSemiCentral() ?
AcceptAngleToEvPlane(trg->Phi(), GetEventPlaneAngle()) :
kTRUE;
+
// check for jet pt
Bool_t acceptPt =
(trg->Pt() >= fTrgJetPtMin) &&
return (acceptPt && acceptOrientation);
}
-Bool_t AliAnalysisTaskJetProtonCorr::AcceptAssoc(AliVTrack *trk)
+Bool_t AliAnalysisTaskJetProtonCorr::AcceptAssoc(const AliVTrack *trk) const
{
- if ((trk->Pt() > fAssPartPtMin) && (trk->Pt() < fAssPartPtMax) &&
- (fPIDResponse->CheckPIDStatus(AliPIDResponse::kTPC, trk) == AliPIDResponse::kDetPidOk) &&
- (fPIDResponse->CheckPIDStatus(AliPIDResponse::kTOF, trk) == AliPIDResponse::kDetPidOk))
- if ((trk->GetTPCsignalN() >= 60.) &&
- (trk->GetTPCsignal() >= 10) &&
- (TMath::Abs(trk->Eta()) < .9))
+ if ((trk->Pt() > fAssPartPtMin) && (trk->Pt() < fAssPartPtMax) && (TMath::Abs(trk->Eta()) < fHadEtaMax))
+ if (fRequirePID) {
+ if ((fPIDResponse->CheckPIDStatus(AliPIDResponse::kTPC, trk) == AliPIDResponse::kDetPidOk) &&
+ (fPIDResponse->CheckPIDStatus(AliPIDResponse::kTOF, trk) == AliPIDResponse::kDetPidOk) &&
+ (trk->GetTPCsignalN() >= 60.) && (trk->GetTPCsignal() >= 10))
+ return kTRUE;
+ else
+ return kFALSE;
+ }
+ else
return kTRUE;
-
- return kFALSE;
+ else
+ return kFALSE;
}
-Bool_t AliAnalysisTaskJetProtonCorr::IsProton(AliVTrack *trk)
+Bool_t AliAnalysisTaskJetProtonCorr::IsProton(const AliVTrack *trk) const
{
+ if ((fPIDResponse->CheckPIDStatus(AliPIDResponse::kTPC, trk) != AliPIDResponse::kDetPidOk) ||
+ (fPIDResponse->CheckPIDStatus(AliPIDResponse::kTOF, trk) != AliPIDResponse::kDetPidOk) ||
+ (trk->GetTPCsignalN() < 60.) || (trk->GetTPCsignal() < 10))
+ return kFALSE;
+
Double_t nSigmaProtonTPC = fPIDResponse->NumberOfSigmasTPC(trk, AliPID::kProton);
Double_t nSigmaProtonTOF = fPIDResponse->NumberOfSigmasTOF(trk, AliPID::kProton);
return kFALSE;
}
-Bool_t AliAnalysisTaskJetProtonCorr::AcceptAngleToEvPlane(Float_t phi, Float_t psi)
+Bool_t AliAnalysisTaskJetProtonCorr::AcceptAngleToEvPlane(Float_t phi, Float_t psi) const
{
Float_t deltaPhi = phi - psi;
while (deltaPhi < 0.)
Float_t AliAnalysisTaskJetProtonCorr::GetDPhiStar(Float_t phi1, Float_t pt1, Float_t charge1,
Float_t phi2, Float_t pt2, Float_t charge2,
- Float_t radius, Float_t bSign)
+ Float_t radius, Float_t bSign) const
{
// calculates dphistar
// from AliUEHistograms
}
-Bool_t AliAnalysisTaskJetProtonCorr::AcceptTwoTracks(AliVParticle *trgPart, AliVParticle *assPart)
+Bool_t AliAnalysisTaskJetProtonCorr::AcceptTwoTracks(const AliVParticle *trgPart, const AliVParticle *assPart) const
{
// apply two track pair cut
Bool_t AliAnalysisTaskJetProtonCorr::Correlate(Trg_t trg, Ass_t ass, Class_t cl, Ev_t ev,
TCollection *trgArray, TCollection *assArray, Float_t weight)
{
+ if ((trg < 0) || (trg > kTrgJetRnd))
+ AliFatal(Form("wrong request for correlation with trigger: %d", trg));
+
+ if ((ass < 0) || (ass > kAssProt))
+ AliFatal(Form("wrong request for correlation with associate: %d", ass));
+
CorrType_t corr = (CorrType_t) (2 * trg + ass);
return Correlate(corr, cl, ev, trgArray, assArray, weight);
{
// generate random direction
- Float_t meanNoPart = 10;
- Int_t nPart = gRandom->Poisson(meanNoPart);
+ const Int_t nPart = gRandom->Poisson(fToyMeanNoPart);
- Float_t trgJetEta = gRandom->Uniform(-.5, .5);
+ Float_t trgJetEta = gRandom->Uniform(-fTrgJetEtaMax, fTrgJetEtaMax);
Float_t trgJetPhi = 0.;
- if (IsClass(kClSemiCentral)) {
- do {
- trgJetPhi = fTrgJetPhiModSemi->GetRandom();
- } while (!AcceptAngleToEvPlane(trgJetPhi, 0));
+ do {
+ trgJetPhi = IsClass(kClSemiCentral) ?
+ fTrgJetPhiModSemi->GetRandom() :
+ fTrgJetPhiModCent->GetRandom();
+
trgJetPhi += fEventPlaneAngle;
if (trgJetPhi < 0.)
trgJetPhi += 2. * TMath::Pi();
else if (trgJetPhi > 2. * TMath::Pi())
trgJetPhi -= 2. * TMath::Pi();
- }
- else {
- trgJetPhi = fTrgJetPhiModCent->GetRandom();
- }
+
+ Float_t phiRel = trgJetPhi- fEventPlaneAngle;
+ if (phiRel < 0.)
+ phiRel += 2. * TMath::Pi();
+ FillH2(kHistPhiRndTrgJetEvPlane, phiRel, fCentrality);
+ } while (IsClass(kClSemiCentral) &&
+ !AcceptAngleToEvPlane(trgJetPhi, GetEventPlaneAngle()));
// generate one trigger particle
TLorentzVector *trgJet = new TLorentzVector();
trgJetArray->Add(trgJet);
// generate direction for away side
- Float_t trgJetEtaAway = gRandom->Uniform(-.9, .9);
- Float_t trgJetPhiAway = trgJetPhi + TMath::Pi() + gRandom->Gaus(0., .2);
+ Float_t trgJetEtaAway = gRandom->Uniform(-fHadEtaMax, fHadEtaMax);
+ Float_t trgJetPhiAway = trgJetPhi + TMath::Pi() + gRandom->Gaus(0., fToySmearPhi);
// generate associated particles
// with proton/hadron ratio observed in this event
for (Int_t iPart = 0; iPart < nPart; ++iPart) {
Float_t deltaEta, deltaPhi;
- const Float_t r = .8;
+ const Float_t r = fToyRadius;
do {
deltaEta = gRandom->Uniform(-r, r);
deltaPhi = gRandom->Uniform(-r, r);
TLorentzVector *assPart = new TLorentzVector();
Float_t eta = trgJetEtaAway + deltaEta;
Float_t phi = trgJetPhiAway + deltaPhi;
- if (eta > .9) {
+ if (TMath::Abs(eta) > fHadEtaMax) {
delete assPart;
continue;
}
- if (phi < 0.)
+ while (phi < 0.)
phi += 2. * TMath::Pi();
- else if (phi > 2. * TMath::Pi())
+ while (phi > 2. * TMath::Pi())
phi -= 2. * TMath::Pi();
assPart->SetPtEtaPhiM(3., eta, phi, .14);
assHadJetArray->Add(assPart);
}
// trigger hadron
- Float_t trgHadEta = gRandom->Uniform(-.9, .9);
+ Float_t trgHadEta = gRandom->Uniform(-fHadEtaMax, fHadEtaMax);
Float_t trgHadPhi = 0.;
- if (IsClass(kClSemiCentral)) {
- do {
- trgHadPhi = fTrgHadPhiModSemi->GetRandom();
- } while (!AcceptAngleToEvPlane(trgHadPhi, 0));
+ do {
+ trgHadPhi = IsClass(kClSemiCentral) ?
+ fTrgHadPhiModSemi->GetRandom() :
+ fTrgHadPhiModCent->GetRandom();
+
trgHadPhi += fEventPlaneAngle;
if (trgHadPhi < 0.)
trgHadPhi += 2. * TMath::Pi();
else if (trgHadPhi > 2. * TMath::Pi())
trgHadPhi -= 2. * TMath::Pi();
- }
- else {
- trgHadPhi = fTrgHadPhiModCent->GetRandom();
- }
+
+ Float_t phiRel = trgHadPhi - fEventPlaneAngle;
+ if (phiRel < 0.)
+ phiRel += 2. * TMath::Pi();
+ FillH2(kHistPhiRndTrgHadEvPlane, phiRel, fCentrality);
+ } while (IsClass(kClSemiCentral) &&
+ !AcceptAngleToEvPlane(trgHadPhi, GetEventPlaneAngle()));
// generate one trigger particle
TLorentzVector *trgHad = new TLorentzVector();
trgHadArray->Add(trgHad);
// generate direction for away side
- Float_t trgHadEtaAway = gRandom->Uniform(-.9, .9);
- Float_t trgHadPhiAway = trgHadPhi + TMath::Pi() + gRandom->Gaus(0., .2);
+ Float_t trgHadEtaAway = gRandom->Uniform(-fHadEtaMax, fHadEtaMax);
+ Float_t trgHadPhiAway = trgHadPhi + TMath::Pi() + gRandom->Gaus(0., fToySmearPhi);
// generate associated particles
// with proton/hadron ratio observed in this event
for (Int_t iPart = 0; iPart < nPart; ++iPart) {
Float_t deltaEta, deltaPhi;
- const Float_t r = .8;
+ const Float_t r = fToyRadius;
do {
deltaEta = gRandom->Uniform(-r, r);
deltaPhi = gRandom->Uniform(-r, r);
TLorentzVector *assPart = new TLorentzVector();
Float_t eta = trgHadEtaAway + deltaEta;
Float_t phi = trgHadPhiAway + deltaPhi;
- if (eta > .9) {
+ if (TMath::Abs(eta) > fHadEtaMax) {
delete assPart;
continue;
}
- if (phi < 0.)
+ while (phi < 0.)
phi += 2. * TMath::Pi();
- else if (phi > 2. * TMath::Pi())
+ while (phi > 2. * TMath::Pi())
phi -= 2. * TMath::Pi();
assPart->SetPtEtaPhiM(3., eta, phi, .14);
assHadHadArray->Add(assPart);
Int_t nTracks = tracks->GetEntriesFast();
for (Int_t i = 0; i < nTracks; i++) {
- // tracksClone->Add(new AliDPhiBasicParticle(particle->Eta(), particle->Phi(), particle->Pt(), particle->Charge()));
-
// WARNING: TObject::Clone() is very!!! expensive, unusable
// tracksClone->Add(particle->Clone());
- if (AliESDtrack* esdTrack = dynamic_cast<AliESDtrack*> (tracks->At(i)))
- tracksClone->Add(new AliESDtrack(*esdTrack));
- else if (AliAODTrack* aodTrack = dynamic_cast<AliAODTrack*> (tracks->At(i)))
- tracksClone->Add(new AliAODTrack(*aodTrack));
+ // if (AliESDtrack* esdTrack = dynamic_cast<AliESDtrack*> (tracks->At(i)))
+ // tracksClone->Add(new AliESDtrack(*esdTrack));
+ // else if (AliAODTrack* aodTrack = dynamic_cast<AliAODTrack*> (tracks->At(i)))
+ // tracksClone->Add(new AliAODTrack(*aodTrack));
+
+ if (const AliVTrack *track = dynamic_cast<const AliVTrack*> (tracks->At(i)))
+ tracksClone->Add(new AliPartCorr(*track));
}
return tracksClone;
fHistCorrEtaPhi(0x0),
fHistCorrAvgEtaPhi(0x0),
fHistCorrTrgEtaPhi(0x0),
- fHistCorrAssEtaPhi(0x0)
+ fHistCorrAssEtaPhi(0x0),
+ fHistDphiLo(-TMath::Pi() / 2.),
+ fHistDphiNbins(120),
+ fHistDetaNbins(120)
{
// ctor
fHistStat = new TH1F(Form("%s_stat", name.Data()), "statistics",
1, .5, 1.5);
- fHistCorrPhi = new TH1F(Form("%s_phi", name.Data()), ";#Delta #phi",
- 100, -2.*TMath::Pi(), 2.*TMath::Pi());
+ fHistCorrPhi = new TH1F(Form("%s_phi", name.Data()), ";#Delta#phi",
+ fHistDphiNbins, fHistDphiLo, 2.*TMath::Pi() + fHistDphiLo);
fHistCorrPhi->Sumw2();
- fHistCorrPhi2 = new TH2F(Form("%s_phi2", name.Data()), ";#phi_{trg};#phi_{ass}",
- 100, 0.*TMath::Pi(), 2.*TMath::Pi(),
- 100, 0.*TMath::Pi(), 2.*TMath::Pi());
- fHistCorrPhi2->Sumw2();
+ // fHistCorrPhi2 = new TH2F(Form("%s_phi2", name.Data()), ";#phi_{trg};#phi_{ass}",
+ // 120, 0.*TMath::Pi(), 2.*TMath::Pi(),
+ // 120, 0.*TMath::Pi(), 2.*TMath::Pi());
+ // fHistCorrPhi2->Sumw2();
fHistCorrEtaPhi = new TH2F(Form("%s_etaphi", name.Data()), ";#Delta#phi;#Delta#eta",
- 100, -1., 2*TMath::Pi()-1.,
- 100, -2., 2.);
+ fHistDphiNbins, fHistDphiLo, 2*TMath::Pi() + fHistDphiLo,
+ fHistDetaNbins, -2., 2.);
fHistCorrEtaPhi->Sumw2();
- fHistCorrAvgEtaPhi = new TH2F(Form("%s_avgetaphi", name.Data()), ";#Delta#phi;avg #eta",
- 100, -1., 2*TMath::Pi()-1.,
- 100, -2., 2.);
- fHistCorrAvgEtaPhi->Sumw2();
- fHistCorrTrgEtaPhi = new TH2F(Form("%s_trg_etaphi", name.Data()), ";#varphi;#eta",
- 100, 0., 2*TMath::Pi(),
- 100, -1., 1.);
- fHistCorrTrgEtaPhi->Sumw2();
- fHistCorrAssEtaPhi = new TH2F(Form("%s_ass_etaphi", name.Data()), ";#varphi;#eta",
- 100, 0., 2*TMath::Pi(),
- 100, -1., 1.);
- fHistCorrAssEtaPhi->Sumw2();
+ // fHistCorrAvgEtaPhi = new TH2F(Form("%s_avgetaphi", name.Data()), ";#Delta#phi;avg #eta",
+ // fHistDphiNbins, fHistDphiLo, 2*TMath::Pi() + fHistDphiLo,
+ // fHistDetaNbins, -2., 2.);
+ // fHistCorrAvgEtaPhi->Sumw2();
+ // fHistCorrTrgEtaPhi = new TH2F(Form("%s_trg_etaphi", name.Data()), ";#varphi;#eta",
+ // 120, 0., 2*TMath::Pi(),
+ // 120, -1., 1.);
+ // fHistCorrTrgEtaPhi->Sumw2();
+ // fHistCorrAssEtaPhi = new TH2F(Form("%s_ass_etaphi", name.Data()), ";#varphi;#eta",
+ // 120, 0., 2*TMath::Pi(),
+ // 120, -1., 1.);
+ // fHistCorrAssEtaPhi->Sumw2();
fOutputList->Add(fHistStat);
fOutputList->Add(fHistCorrPhi);
- fOutputList->Add(fHistCorrPhi2);
+ // fOutputList->Add(fHistCorrPhi2);
fOutputList->Add(fHistCorrEtaPhi);
- fOutputList->Add(fHistCorrAvgEtaPhi);
- fOutputList->Add(fHistCorrTrgEtaPhi);
- fOutputList->Add(fHistCorrAssEtaPhi);
+ // fOutputList->Add(fHistCorrAvgEtaPhi);
+ // fOutputList->Add(fHistCorrTrgEtaPhi);
+ // fOutputList->Add(fHistCorrAssEtaPhi);
}
AliAnalysisTaskJetProtonCorr::AliHistCorr::~AliHistCorr()
Float_t deltaEta = assPart->Eta() - trgPart->Eta();
Float_t avgEta = (assPart->Eta() + trgPart->Eta()) / 2.;
Float_t deltaPhi = assPart->Phi() - trgPart->Phi();
- if (deltaPhi > (2.*TMath::Pi()-1.))
+ while (deltaPhi > (2.*TMath::Pi() + fHistDphiLo))
deltaPhi -= 2. * TMath::Pi();
- else if (deltaPhi < -1.)
+ while (deltaPhi < fHistDphiLo)
deltaPhi += 2. * TMath::Pi();
fHistCorrPhi->Fill(deltaPhi, weight);
- fHistCorrPhi2->Fill(trgPart->Phi(), assPart->Phi(), weight);
+ if (fHistCorrPhi2)
+ fHistCorrPhi2->Fill(trgPart->Phi(), assPart->Phi(), weight);
fHistCorrEtaPhi->Fill(deltaPhi, deltaEta, weight);
- fHistCorrAvgEtaPhi->Fill(deltaPhi, avgEta, weight);
+ if (fHistCorrAvgEtaPhi)
+ fHistCorrAvgEtaPhi->Fill(deltaPhi, avgEta, weight);
}
void AliAnalysisTaskJetProtonCorr::AliHistCorr::Fill(TLorentzVector *trgPart, AliVParticle *assPart, Float_t weight)
Float_t deltaEta = assPart->Eta() - trgPart->Eta();
Float_t avgEta = (assPart->Eta() + trgPart->Eta()) / 2.;
Float_t deltaPhi = assPart->Phi() - trgPart->Phi();
- if (deltaPhi > (2.*TMath::Pi()-1.))
+ while (deltaPhi > (2.*TMath::Pi() + fHistDphiLo))
deltaPhi -= 2. * TMath::Pi();
- else if (deltaPhi < -1.)
+ while (deltaPhi < fHistDphiLo)
deltaPhi += 2. * TMath::Pi();
fHistCorrPhi->Fill(deltaPhi, weight);
- Float_t trgPhi = trgPart->Phi();
- if (trgPhi < 0)
- trgPhi += 2. * TMath::Pi();
- fHistCorrPhi2->Fill(trgPhi, assPart->Phi(), weight);
+ if (fHistCorrPhi2) {
+ Float_t trgPhi = trgPart->Phi();
+ if (trgPhi < 0)
+ trgPhi += 2. * TMath::Pi();
+ fHistCorrPhi2->Fill(trgPhi, assPart->Phi(), weight);
+ }
fHistCorrEtaPhi->Fill(deltaPhi, deltaEta, weight);
- fHistCorrAvgEtaPhi->Fill(deltaPhi, avgEta, weight);
+ if (fHistCorrAvgEtaPhi)
+ fHistCorrAvgEtaPhi->Fill(deltaPhi, avgEta, weight);
}
void AliAnalysisTaskJetProtonCorr::AliHistCorr::Fill(TLorentzVector *trgPart, TLorentzVector *assPart, Float_t weight)
Float_t deltaEta = assPart->Eta() - trgPart->Eta();
Float_t avgEta = (assPart->Eta() + trgPart->Eta()) / 2.;
Float_t deltaPhi = assPart->Phi() - trgPart->Phi();
- if (deltaPhi > (2.*TMath::Pi()-1.))
+ if (deltaPhi > (2.*TMath::Pi() + fHistDphiLo))
deltaPhi -= 2. * TMath::Pi();
- else if (deltaPhi < -1.)
+ else if (deltaPhi < fHistDphiLo)
deltaPhi += 2. * TMath::Pi();
fHistCorrPhi->Fill(deltaPhi, weight);
- Float_t trgPhi = trgPart->Phi();
- if (trgPhi < 0)
- trgPhi += 2. * TMath::Pi();
- Float_t assPhi = assPart->Phi();
- if (assPhi < 0)
- assPhi += 2. * TMath::Pi();
- fHistCorrPhi2->Fill(trgPhi, assPhi, weight);
+ if (fHistCorrPhi2) {
+ Float_t trgPhi = trgPart->Phi();
+ if (trgPhi < 0)
+ trgPhi += 2. * TMath::Pi();
+ Float_t assPhi = assPart->Phi();
+ if (assPhi < 0)
+ assPhi += 2. * TMath::Pi();
+ fHistCorrPhi2->Fill(trgPhi, assPhi, weight);
+ }
fHistCorrEtaPhi->Fill(deltaPhi, deltaEta, weight);
- fHistCorrAvgEtaPhi->Fill(deltaPhi, avgEta, weight);
+ if (fHistCorrAvgEtaPhi)
+ fHistCorrAvgEtaPhi->Fill(deltaPhi, avgEta, weight);
}
// ----- histogram management -----