37 #include <AliAnalysisTask.h>
38 #include <AliAnalysisManager.h>
39 #include <AliCentrality.h>
40 #include <AliVVertex.h>
41 #include <AliVTrack.h>
42 #include <AliVVZERO.h>
43 #include <AliESDEvent.h>
44 #include <AliAODEvent.h>
45 #include <AliAODTrack.h>
46 #include <AliOADBContainer.h>
47 #include <AliMultSelection.h>
48 #include <AliInputEventHandler.h>
62 fRunToyMC(kFALSE),
fLocalInit(0),
fAttachToEvent(kTRUE),
fFillHistograms(kTRUE),
fFillQAHistograms(kTRUE),
fReduceBinsXByFactor(-1.),
fReduceBinsYByFactor(-1.),
fNoEventWeightsForQC(kTRUE),
fCentralityClasses(0),
fExpectedRuns(0),
fExpectedSemiGoodRuns(0),
fUserSuppliedV2(0),
fUserSuppliedV3(0),
fUserSuppliedR2(0),
fUserSuppliedR3(0),
fAcceptanceWeights(kFALSE),
fEventPlaneWeight(1.),
fTracksCont(0),
fClusterCont(0),
fJetsCont(0),
fLeadingJet(0),
fLeadingJetAfterSub(0),
fNAcceptedTracks(0),
fNAcceptedTracksQCn(0),
fFitModulationType(
kNoFit),
fFitGoodnessTest(
kChi2Poisson),
fQCRecovery(
kTryFit),
fUsePtWeight(kTRUE),
fUsePtWeightErrorPropagation(kTRUE),
fUse2DIntegration(kFALSE),
fDetectorType(
kVZEROComb),
fAnalysisType(
kCharged),
fFitModulationOptions("QWLI"),
fRunModeType(
kGrid),
fDataType(
kESD),
fCollisionType(
kPbPb),
fRandom(0),
fRunNumber(-1),
fRunNumberCaliInfo(-1),
fMappedRunNumber(0),
fInCentralitySelection(-1),
fFitModulation(0),
fFitControl(0),
fMinPvalue(0.01),
fMaxPvalue(1),
fNameSmallRho(""),
fCachedRho(0),
fSoftTrackMinPt(0.15),
fSoftTrackMaxPt(5.),
fSemiGoodJetMinPhi(0.),
fSemiGoodJetMaxPhi(4.),
fSemiGoodTrackMinPhi(0.),
fSemiGoodTrackMaxPhi(4.),
fHistCentrality(0),
fHistCentralityPercIn(0),
fHistCentralityPercOut(0),
fHistCentralityPercLost(0),
fHistVertexz(0),
fHistMultCorAfterCuts(0),
fHistMultvsCentr(0),
fHistRunnumbersPhi(0),
fHistRunnumbersEta(0),
fHistRunnumbersCaliInfo(0),
fHistPvalueCDFROOT(0),
fHistPvalueCDFROOTCent(0),
fHistChi2ROOTCent(0),
fHistPChi2Root(0),
fHistPvalueCDF(0),
fHistPvalueCDFCent(0),
fHistChi2Cent(0),
fHistPChi2(0),
fHistKolmogorovTest(0),
fHistKolmogorovTestCent(0),
fHistPKolmogorov(0),
fHistRhoStatusCent(0),
fHistUndeterminedRunQA(0),
fMinDisanceRCtoLJ(0),
fMaxCones(-1),
fExcludeLeadingJetsFromFit(1.),
fExcludeJetsWithTrackPt(9999.),
fRebinSwapHistoOnTheFly(kTRUE),
fPercentageOfFits(10.),
fOutputList(0),
fOutputListGood(0),
fOutputListBad(0),
fHistAnalysisSummary(0),
fHistSwap(0),
fProfV2(0),
fProfV2Cumulant(0),
fProfV3(0),
fProfV3Cumulant(0),
fHistPsiVZEROAV0M(0),
fHistPsiVZEROCV0M(0),
fHistPsiVZEROVV0M(0),
fHistPsiTPCV0M(0),
fHistPsiVZEROATRK(0),
fHistPsiVZEROCTRK(0),
fHistPsiVZEROTRK(0),
fHistPsiTPCTRK(0),
fHistRhoVsMult(0),
fHistRhoVsCent(0),
fHistRhoAVsMult(0),
fHistRhoAVsCent(0),
fVZEROgainEqualization(0x0),
fVZEROApol(0),
fVZEROCpol(0),
fChi2A(0x0),
fChi2C(0x0),
fChi3A(0x0),
fChi3C(0x0),
fSigma2A(0x0),
fSigma2C(0x0),
fSigma3A(0x0),
fSigma3C(0x0),
fWeightForVZERO(
kChi),
fOADB(0x0),
fHistQxV0aBC(0x0),
fHistQyV0aBC(0x0),
fHistQxV0cBC(0x0),
fHistQyV0cBC(0x0),
fHistQxV0a(0x0),
fHistQyV0a(0x0),
fHistQxV0c(0x0),
fHistQyV0c(0x0),
fHistMultVsCellBC(0x0),
fHistMultVsCell(0x0),
fHistEPBC(0x0),
fHistEP(0x0)
64 for(
Int_t i(0); i < 10; i++) {
118 for(
Int_t i(0); i < 9; i++) {
119 for(
Int_t j(0); j < 2; j++) {
120 for(
Int_t k(0); k < 2; k++) {
136 fRunToyMC(kFALSE),
fLocalInit(0),
fAttachToEvent(kTRUE),
fFillHistograms(kTRUE),
fFillQAHistograms(kTRUE),
fReduceBinsXByFactor(-1.),
fReduceBinsYByFactor(-1.),
fNoEventWeightsForQC(kTRUE),
fCentralityClasses(0),
fExpectedRuns(0),
fExpectedSemiGoodRuns(0),
fUserSuppliedV2(0),
fUserSuppliedV3(0),
fUserSuppliedR2(0),
fUserSuppliedR3(0),
fAcceptanceWeights(kFALSE),
fEventPlaneWeight(1.),
fTracksCont(0),
fClusterCont(0),
fJetsCont(0),
fLeadingJet(0),
fLeadingJetAfterSub(0),
fNAcceptedTracks(0),
fNAcceptedTracksQCn(0),
fFitModulationType(
kNoFit),
fFitGoodnessTest(
kChi2Poisson),
fQCRecovery(
kTryFit),
fUsePtWeight(kTRUE),
fUsePtWeightErrorPropagation(kTRUE),
fUse2DIntegration(kFALSE),
fDetectorType(
kVZEROComb),
fAnalysisType(
kCharged),
fFitModulationOptions(
"QWLI"),
fRunModeType(type),
fDataType(
kESD),
fCollisionType(
kPbPb),
fRandom(0),
fRunNumber(-1),
fRunNumberCaliInfo(-1),
fMappedRunNumber(0),
fInCentralitySelection(-1),
fFitModulation(0),
fFitControl(0),
fMinPvalue(0.01),
fMaxPvalue(1),
fNameSmallRho(
""),
fCachedRho(0),
fSoftTrackMinPt(0.15),
fSoftTrackMaxPt(5.),
fSemiGoodJetMinPhi(0.),
fSemiGoodJetMaxPhi(4.),
fSemiGoodTrackMinPhi(0.),
fSemiGoodTrackMaxPhi(4.),
fHistCentrality(0),
fHistCentralityPercIn(0),
fHistCentralityPercOut(0),
fHistCentralityPercLost(0),
fHistVertexz(0),
fHistMultCorAfterCuts(0),
fHistMultvsCentr(0),
fHistRunnumbersPhi(0),
fHistRunnumbersEta(0),
fHistRunnumbersCaliInfo(0),
fHistPvalueCDFROOT(0),
fHistPvalueCDFROOTCent(0),
fHistChi2ROOTCent(0),
fHistPChi2Root(0),
fHistPvalueCDF(0),
fHistPvalueCDFCent(0),
fHistChi2Cent(0),
fHistPChi2(0),
fHistKolmogorovTest(0),
fHistKolmogorovTestCent(0),
fHistPKolmogorov(0),
fHistRhoStatusCent(0),
fHistUndeterminedRunQA(0),
fMinDisanceRCtoLJ(0),
fMaxCones(-1),
fExcludeLeadingJetsFromFit(1.),
fExcludeJetsWithTrackPt(9999),
fRebinSwapHistoOnTheFly(kTRUE),
fPercentageOfFits(10.),
fOutputList(0),
fOutputListGood(0),
fOutputListBad(0),
fHistAnalysisSummary(0),
fHistSwap(0),
fProfV2(0),
fProfV2Cumulant(0),
fProfV3(0),
fProfV3Cumulant(0),
fHistPsiVZEROAV0M(0),
fHistPsiVZEROCV0M(0),
fHistPsiVZEROVV0M(0),
fHistPsiTPCV0M(0),
fHistPsiVZEROATRK(0),
fHistPsiVZEROCTRK(0),
fHistPsiVZEROTRK(0),
fHistPsiTPCTRK(0),
fHistRhoVsMult(0),
fHistRhoVsCent(0),
fHistRhoAVsMult(0),
fHistRhoAVsCent(0),
fVZEROgainEqualization(0x0),
fVZEROApol(0),
fVZEROCpol(0),
fChi2A(0x0),
fChi2C(0x0),
fChi3A(0x0),
fChi3C(0x0),
fSigma2A(0x0),
fSigma2C(0x0),
fSigma3A(0x0),
fSigma3C(0x0),
fWeightForVZERO(
kChi),
fOADB(0x0),
fHistQxV0aBC(0x0),
fHistQyV0aBC(0x0),
fHistQxV0cBC(0x0),
fHistQyV0cBC(0x0),
fHistQxV0a(0x0),
fHistQyV0a(0x0),
fHistQxV0c(0x0),
fHistQyV0c(0x0),
fHistMultVsCellBC(0x0),
fHistMultVsCell(0x0),
fHistEPBC(0x0),
fHistEP(0x0)
138 for(
Int_t i(0); i < 10; i++) {
192 for(
Int_t i(0); i < 9; i++) {
193 for(
Int_t j(0); j < 2; j++) {
194 for(
Int_t k(0); k < 2; k++) {
208 DefineInput(0, TChain::Class());
211 DefineOutput(startAt, TList::Class());
214 gStyle->SetOptFit(1);
215 DefineOutput(startAt+1, TList::Class());
216 DefineOutput(startAt+2, TList::Class());
233 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
234 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
263 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
264 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
269 if(!(InputEvent()->FindListObject(
fLocalRho->GetName()))) {
272 AliFatal(Form(
"%s: Container with name %s already present. Aborting", GetName(),
fLocalRho->GetName()));
277 if(!
GetJetContainer()) AliFatal(Form(
"%s: Couldn't find jet container. Aborting !", GetName()));
283 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
284 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
288 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
289 printf(
"__FUNC__ %s > NEW RUNNUMBER DETECTED \n ", __func__);
294 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
295 printf(
" LHC10h data, assuming full acceptance, reading VZERO calibration DB \n ");
310 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
311 printf(
" checking runnumber to adjust acceptance on the fly \n");
331 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
332 printf(
"__FUNC__ %s > replacing rho with cached rho \n ", __func__);
336 Bool_t flaggedAsSemiGood(kFALSE);
339 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
340 printf(
"__FUNC__ %s > semi-good tpc run detected, adjusting acceptance \n ", __func__);
342 flaggedAsSemiGood = kTRUE;
355 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
356 printf(
"__FUNC__ %s > switching to small rho, caching normal rho \n ", __func__);
364 if(!flaggedAsSemiGood) {
380 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
381 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
387 if(dynamic_cast<AliAODEvent*>(InputEvent()))
fDataType =
kAOD;
388 else if(dynamic_cast<AliESDEvent*>(InputEvent()))
fDataType =
kESD;
394 SetModulationFit(
new TF1(
"fit_kV2",
"[0]*([1]+[2]*[3]*TMath::Cos([2]*(x-[4])))", 0, TMath::TwoPi()));
401 SetModulationFit(
new TF1(
"fit_kV3",
"[0]*([1]+[2]*[3]*TMath::Cos([2]*(x-[4])))", 0, TMath::TwoPi()));
408 SetModulationFit(
new TF1(
"fit_kCombined",
"[0]*([1]+[2]*([3]*TMath::Cos([2]*(x-[4]))+[7]*TMath::Cos([5]*(x-[6]))))", 0, TMath::TwoPi()));
428 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
429 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
435 name = Form(
"%s_%i", name, c);
438 title += Form(
";%s;[counts]", x);
439 TH1F* histogram =
new TH1F(name, title.Data(), bins, min, max);
445 TH2F*
AliAnalysisTaskJetV3::BookTH2F(
const char* name,
const char* x,
const char* y,
Int_t binsx,
Double_t minx,
Double_t maxx,
Int_t binsy,
Double_t miny,
Double_t maxy,
Int_t c,
Bool_t append)
448 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
449 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
456 name = Form(
"%s_%i", name, c);
459 title += Form(
";%s;%s", x, y);
460 TH2F* histogram =
new TH2F(name, title.Data(), binsx, minx, maxx, binsy, miny, maxy);
466 TH3F*
AliAnalysisTaskJetV3::BookTH3F(
const char* name,
const char* x,
const char* y,
const char* z,
Int_t binsx,
Double_t minx,
Double_t maxx,
Int_t binsy,
Double_t miny,
Double_t maxy,
Int_t binsz,
Double_t minz,
Double_t maxz,
Int_t c,
Bool_t append)
469 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
470 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
480 name = Form(
"%s_%i", name, c);
483 title += Form(
";%s;%s;%s", x, y, z);
484 TH3F* histogram =
new TH3F(name, title.Data(), binsx, minx, maxx, binsy, miny, maxy, binsz, minz, maxz);
494 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
495 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
501 Double_t c[] = {0., 20., 40., 60., 80., 100.};
505 Int_t r[] = {167813, 167988, 168066, 168068, 168069, 168076, 168104, 168212, 168311, 168322, 168325, 168341, 168361, 168362, 168458, 168460, 168461, 168992, 169091, 169094, 169138, 169143, 169167, 169417, 169835, 169837, 169838, 169846, 169855, 169858, 169859, 169923, 169956, 170027, 170036, 170081, 169975, 169981, 170038, 170040, 170083, 170084, 170085, 170088, 170089, 170091, 170152, 170155, 170159, 170163, 170193, 170195, 170203, 170204, 170205, 170228, 170230, 170264, 170268, 170269, 170270, 170306, 170308, 170309, 169415, 169411, 169035, 168988, 168984, 168826, 168777, 168512, 168511, 168467, 168464, 168342, 168310, 168115, 168108, 168107, 167987, 167915, 167903, 169238, 169160, 169156, 169148, 169145, 169144 };
511 fHistMultCorAfterCuts =
new TH2F(
"fHistMultCorAfterCuts",
"TPC vs Global multiplicity (After cuts); Global multiplicity; TPC multiplicity", 100, 0, 3000, 100, 0, 3000);
513 fHistMultvsCentr =
new TH2F(
"fHistMultvsCentr",
"Multiplicity vs centrality; centrality; Multiplicity", 9, -0.5, 100.5, 101, 0, 3000);
518 Int_t r[] = {169975, 169981, 170038, 170040, 170083, 170084, 170085, 170088, 170089, 170091, 170152, 170155, 170159, 170163, 170193, 170195, 170203, 170204, 170205, 170228, 170230, 170264, 170268, 170269, 170270, 170306, 170308, 170309};
528 fHistCentralityPercIn =
new TProfile(
"fHistCentralityPercIn",
"fHistCentralityPercIn", 102, -2, 100);
533 Double_t etaMin(-1.), etaMax(1.), phiMin(0.), phiMax(TMath::TwoPi());
557 fHistPsiTPCLeadingJet[i] =
BookTH3F(
"fHistPsiTPCLeadingJet",
"p_{t} [GeV/c]",
"#Psi_{TPC}",
"#varphi_{jet}", 70, 0, 210, 50, -1.*TMath::Pi()/3., TMath::Pi()/3., 50, phiMin, phiMax, i);
558 fHistEPCorrelations[i] =
BookTH3F(
"fHistEPCorrelations",
"EP_V0 average",
"EP_V0 #chi",
"EP_V0 #sigma", 50, -TMath::Pi()/2., TMath::Pi()/2., 50, -TMath::Pi()/2., TMath::Pi()/2., 50, -TMath::Pi()/2., TMath::Pi()/2.);
559 fHistEPCorrAvChi[i] =
BookTH2F(
"fHistEPCorrAvChi",
"EP_V0 average",
"EP_V0 #chi", 50, -TMath::Pi()/2., TMath::Pi()/2., 50, -TMath::Pi()/2., TMath::Pi()/2., i);
560 fHistEPCorrAvSigma[i] =
BookTH2F(
"fHistEPCorrAvSigma",
"EP_V0 average",
"EP_V0 #sigma", 50, -TMath::Pi()/2., TMath::Pi()/2., 50, -TMath::Pi()/2., TMath::Pi()/2., i);
561 fHistEPCorrChiSigma[i] =
BookTH2F(
"fHistEPCorrChiSigma",
"EP_V0 #chi",
"EP_V0 #sigma", 50, -TMath::Pi()/2., TMath::Pi()/2., 50, -TMath::Pi()/2., TMath::Pi()/2., i);
563 fProfIntegralCorrelations[i] =
new TProfile(Form(
"fProfIntegralCorrelations_%i", i), Form(
"fProfIntegralCorrelations_%i", i), 100, 0, 100);
567 fHistPsiVZEROALeadingJet[i] =
BookTH3F(
"fHistPsiVZEROALeadingJet",
"p_{t} [GeV/c]",
"#Psi_{VZEROA}",
"#varphi_{jet}", 70, 0, 210, 50, -1.*TMath::Pi()/3., TMath::Pi()/3., 50, phiMin, phiMax, i);
568 fHistPsiVZEROCLeadingJet[i] =
BookTH3F(
"fHistPsiVZEROCLeadingJet",
"p_{t} [GeV/c]",
"#Psi_{VZEROC}",
"#varphi_{jet}", 70, 0, 210, 50, -1.*TMath::Pi()/3., TMath::Pi()/3., 50, phiMin, phiMax, i);
569 fHistPsiVZEROCombLeadingJet[i] =
BookTH3F(
"fHistPsiVZEROCombLeadingJet",
"p_{t} [GeV/c]",
"#Psi_{VZEROComb}",
"#varphi_{jet}", 70, 0, 210, 50, -1.*TMath::Pi()/3., TMath::Pi()/3., 50, phiMin, phiMax, i);
570 fHistPsi3Correlation[i] =
BookTH3F(
"fHistPsi3Correlation",
"#Psi_{TPC}",
"#Psi_{VZEROA}",
"#Psi_{VZEROC}", 20, -1.*TMath::Pi()/3., TMath::Pi()/3., 20, -1.*TMath::Pi()/3., TMath::Pi()/3., 20, -1.*TMath::Pi()/3., TMath::Pi()/3., i);
571 fHistLeadingJetBackground[i] =
BookTH2F(
"fHistLeadingJetBackground",
"#Delta #eta (leading jet with, without sub)",
"Delta #varphi (leading jet with, without sub)", 50, 0., 2, 50, 0., TMath::TwoPi(), i);
573 fHistTriggerQAIn[i] =
BookTH2F(
"fHistTriggerQAIn",
"trigger configuration",
"p_{T}^{jet} (GeV/c) in-plane jets", 16, 0.5, 16.5, 70, -100, 250, i);
574 fHistTriggerQAOut[i] =
BookTH2F(
"fHistTriggerQAOut",
"trigger configuration",
"p_{T}^{jet} (GeV/c) out-of-plane jets", 16, 0.5, 16.5, 70, -100, 250, i);
614 Int_t diff(TMath::Abs(up-low));
616 fHistPsiVZEROAV0M =
BookTH2F(
"fHistPsiVZEROAV0M",
"V0M",
"#Psi_{2, VZEROA}", diff, low, up, 40, -.5*TMath::Pi(), .5*TMath::Pi());
617 fHistPsiVZEROCV0M =
BookTH2F(
"fHistPsiVZEROCV0M",
"V0M",
"#Psi_{2, VZEROC}", diff, low, up, 40, -.5*TMath::Pi(), .5*TMath::Pi());
618 fHistPsiVZEROVV0M =
BookTH2F(
"fHistPsiVZEROV0M",
"V0M",
"#Psi_{2, VZERO}", diff, low, up, 40, -.5*TMath::Pi(), .5*TMath::Pi());
619 fHistPsiTPCV0M =
BookTH2F(
"fHistPsiTPCV0M",
"V0M",
"#Psi_{2, TRK}", diff, low, up, 40, -.5*TMath::Pi(), .5*TMath::Pi());
620 fHistPsiVZEROATRK =
BookTH2F(
"fHistPsiVZEROATRK",
"TRK",
"#Psi_{2, VZEROA}", diff, low, up, 40, -.5*TMath::Pi(), .5*TMath::Pi());
621 fHistPsiVZEROCTRK =
BookTH2F(
"fHistPsiVZEROCTRK",
"TRK",
"#Psi_{2, VZEROC}", diff, low, up, 40, -.5*TMath::Pi(), .5*TMath::Pi());
622 fHistPsiVZEROTRK =
BookTH2F(
"fHistPsiVZEROTRK",
"TRK",
"#Psi_{2, VZERO}", diff, low, up, 40, -.5*TMath::Pi(), .5*TMath::Pi());
623 fHistPsiTPCTRK =
BookTH2F(
"fHistPsiTPCTRK",
"TRK",
"#Psi_{2, TRK}", diff, low, up, 40, -.5*TMath::Pi(), .5*TMath::Pi());
632 fHistRhoAVsMult =
BookTH2F(
"fHistRhoAVsMult",
"multiplicity",
"#rho * A (jet) [GeV/c]", 100, 0, 4000, 100, 0, 50);
633 fHistRhoAVsCent =
BookTH2F(
"fHistRhoAVsCent",
"centrality",
"#rho * A (jet) [GeV/c]", 100, 0, 100, 100, 0, 50);
637 case kTPC : detector+=
"TPC";
639 case kVZEROA : detector+=
"VZEROA";
641 case kVZEROC : detector+=
"VZEROC";
645 case kFixedEP : detector+=
"FixedEP";
652 fHistRhoVsRCPt[i] =
BookTH2F(
"fHistRhoVsRCPt",
"p_{t} (RC) [GeV/c]",
"#rho * A (RC) [GeV/c]", 100, 0, 300, 100, 0, 350, i);
655 fHistDeltaPtDeltaPhi3[i] =
BookTH2F(
"fHistDeltaPtDeltaPhi3", Form(
"#phi - #Psi_{3, %s}", detector.Data()),
"#delta p_{t} [GeV/c]", 40, 0, 2.*TMath::Pi()/3., 400, -70, 130, i);
656 fHistDeltaPtDeltaPhi3Rho0[i] =
BookTH2F(
"fHistDeltaPtDeltaPhi3Rho0", Form(
"#phi - #Psi_{3, %s}", detector.Data()),
"#delta p_{t} [GeV/c]", 40, 0, 2.*TMath::Pi()/3., 400, -70, 130, i);
657 fHistRhoVsRCPtExLJ[i] =
BookTH2F(
"fHistRhoVsRCPtExLJ",
"p_{t} (RC) [GeV/c]",
"#rho * A (RC) [GeV/c]", 100, 0, 300, 100, 0, 350, i);
659 fHistDeltaPtDeltaPhi3ExLJ[i] =
BookTH2F(
"fHistDeltaPtDeltaPhi3ExLJ", Form(
"#phi - #Psi_{3, %s}", detector.Data()),
"#delta p_{t} [GeV/c]", 40, 0, 2.*TMath::Pi()/3., 400, -70, 130, i);
660 fHistDeltaPtDeltaPhi3ExLJRho0[i] =
BookTH2F(
"fHistDeltaPtDeltaPhi3ExLJRho0", Form(
"#phi - #Psi_{3, %s}", detector.Data()),
"#delta p_{t} [GeV/c]", 40, 0, 2.*TMath::Pi()/3., 400, -70, 130, i);
665 fHistJetPtArea[i] =
BookTH2F(
"fHistJetPtArea",
"p_{t, jet} [GeV/c]",
"Area", 175, -100, 250, 30, 0, 0.9, i);
666 fHistJetPtEta[i] =
BookTH2F(
"fHistJetPtEta",
"p_{t, jet} [GeV/c]",
"Eta", 175, -100, 250, 30, etaMin, etaMax, i);
667 fHistJetPtConstituents[i] =
BookTH2F(
"fHistJetPtConstituents",
"p_{t, jet} [GeV/c]",
"no. of constituents", 350, -100, 250, 60, 0, 150, i);
670 fHistJetPsi3Pt[i] =
BookTH2F(
"fHistJetPsi3Pt", Form(
"#phi_{jet} - #Psi_{3, %s}", detector.Data()),
"p_{t, jet} [GeV/c]", 40, 0., 2.*TMath::Pi()/3., 350, -100, 250, i);
671 fHistJetLJPsi3Pt[i] =
BookTH3F(
"fHistJetLJPsi3Pt", Form(
"#phi_{part} - #Psi_{3, %s}", detector.Data()),
"p_{t, jet} [GeV/c]",
"p_{t, leading track}", 40, 0., 2.*TMath::Pi()/3., 350, -100, 250, 200, 0, 50, i);
672 fHistJetLJPsi3PtRatio[i] =
BookTH3F(
"fHistJetLJPsi3PtRatio", Form(
"#phi_{part} - #Psi_{3, %s}", detector.Data()), Form(
"#phi_{jet} - #Psi_{3, %s}", detector.Data()),
"p_{t, jet} [GeV/c]", 40, 0., 2.*TMath::Pi()/3., 40, 0., 2.*TMath::Pi()/3., 350, -100, 250, i);
674 fHistJetPsi3PtRho0[i] =
BookTH2F(
"fHistJetPsi3PtRho0", Form(
"#phi_{jet} - #Psi_{3, %s}", detector.Data()),
"p_{t, jet} [GeV/c]", 40, 0., 2.*TMath::Pi()/3., 350, -100, 250, i);
676 fProfV2Resolution[i] =
new TProfile(Form(
"fProfV2Resolution_%i", i), Form(
"fProfV2Resolution_%i", i), 11, -0.5, 10.5);
677 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(3,
"<cos(2(#Psi_{VZEROA} - #Psi_{VZEROC}))>");
678 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(4,
"<cos(2(#Psi_{VZEROC} - #Psi_{VZEROA}))>");
679 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(5,
"<cos(2(#Psi_{VZEROA} - #Psi_{TPC}))>");
680 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(6,
"<cos(2(#Psi_{TPC} - #Psi_{VZEROA}))>");
681 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(7,
"<cos(2(#Psi_{VZEROC} - #Psi_{TPC}))>");
682 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(8,
"<cos(2(#Psi_{TPC} - #Psi_{VZEROC}))>");
683 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(9,
"<cos(2(#Psi_{VZERO} - #Psi_{TPC_A}))>");
684 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(10,
"<cos(2(#Psi_{VZERO} - #Psi_{TPC_B}))>");
685 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(11,
"<cos(2(#Psi_{TPC_A} - #Psi_{TPC_B}))>");
687 fProfV3Resolution[i] =
new TProfile(Form(
"fProfV3Resolution_%i", i), Form(
"fProfV3Resolution_%i", i), 11, -0.5, 10.5);
688 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(3,
"<cos(3(#Psi_{VZEROA} - #Psi_{VZEROC}))>");
689 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(4,
"<cos(3(#Psi_{VZEROC} - #Psi_{VZEROA}))>");
690 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(5,
"<cos(3(#Psi_{VZEROA} - #Psi_{TPC}))>");
691 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(6,
"<cos(3(#Psi_{TPC} - #Psi_{VZEROA}))>");
692 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(7,
"<cos(3(#Psi_{VZEROC} - #Psi_{TPC}))>");
693 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(8,
"<cos(3(#Psi_{TPC} - #Psi_{VZEROC}))>");
694 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(9,
"<cos(3(#Psi_{VZERO} - #Psi_{TPC_A}))>");
695 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(10,
"<cos(3(#Psi_{VZERO} - #Psi_{TPC_B}))>");
696 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(11,
"<cos(3(#Psi_{TPC_A} - #Psi_{TPC_B}))>");
748 fHistSwap =
new TH1F(
"fHistSwap",
"fHistSwap", 20, 0, TMath::TwoPi());
755 for(
Int_t i(0); i < 10; i++) {
770 fHistPChi2 =
BookTH2F(
"fHistPChi2",
"p-value",
"#tilde{#chi^{2}}", 1000, 0, 1, 100, 0, 5);
778 fHistRhoStatusCent =
BookTH2F(
"fHistRhoStatusCent",
"centrality",
"status [-1=lin was better, 0=ok, 1 = failed]", 101, -1, 100, 3, -1.5, 1.5);
786 fHistJetPtAreaBC[i] =
BookTH2F(
"fHistJetPtAreaBC",
"p_{t, jet} [GeV/c]",
"Area", 175, -100, 250, 30, 0, 0.3, i);
788 fHistQxV0aBC =
BookTH2F(
"fHistQxV0aBC",
"Q_{x} V0A",
"centrality class", 140, -700, 700, 10, -.5, 9.5);
789 fHistQyV0aBC =
BookTH2F(
"fHistQyV0aBC",
"Q_{y} V0A",
"centrality class", 140, -700, 700, 10, -.5, 9.5);
790 fHistQxV0cBC =
BookTH2F(
"fHistQxV0cBC",
"Q_{x} V0C",
"centrality class", 140, -700, 700, 10, -.5, 9.5);
791 fHistQyV0cBC =
BookTH2F(
"fHistQyV0cBC",
"Q_{y} V0C",
"centrality class", 140, -700, 700, 10, -.5, 9.5);
792 fHistQxV0a =
BookTH2F(
"fHistQxV0a",
"Q_{x} V0A",
"centrality class", 100, -10, 10, 10, -.5, 9.5);
793 fHistQyV0a =
BookTH2F(
"fHistQyV0a",
"Q_{y} V0A",
"centrality class", 100, -10, 10, 10, -.5, 9.5);
794 fHistQxV0c =
BookTH2F(
"fHistQxV0c",
"Q_{x} V0C",
"centrality class", 100, -10, 10, 10, -.5, 9.5);
795 fHistQyV0c =
BookTH2F(
"fHistQyV0c",
"Q_{y} V0C",
"centrality class", 100, -10, 10, 10, -.5, 9.5);
798 fHistEPBC =
BookTH1F(
"fHistEPBC",
"#Psi_{EP, 3}, uncalibrated", 100, -0.34*TMath::Pi(), 0.34*TMath::Pi());
799 fHistEP =
BookTH1F(
"fHistEP",
"#Psi_{EP, 3}, calibrated", 100, -0.34*TMath::Pi(), 0.34*TMath::Pi());
827 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
828 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
831 if(!
fTracks) printf(
" > Failed to retrieve fTracks ! < \n");
832 if(!
fJets) printf(
" > Failed to retrieve fJets ! < \n");
833 if(!
fRho) printf(
" > Failed to retrieve fRho ! < \n");
858 tpc[0] = 0.; tpc[1] = 1.;
859 vzero[0][0] = 0.; vzero[0][1] = 1.;
860 vzero[1][0] = 0.; vzero[1][1] = 1.;
861 vzeroComb[0] = 0.; vzeroComb[1] = 1.;
873 case kTPC : { psi2 = tpc[0]; psi3 = tpc[1]; }
break;
874 case kVZEROA : { psi2 = vzero[0][0]; psi3 = vzero[0][1]; }
break;
875 case kVZEROC : { psi2 = vzero[1][0]; psi3 = vzero[1][1]; }
break;
876 case kVZEROComb : { psi2 = vzeroComb[0]; psi3 = vzeroComb[1];}
break;
877 case kFixedEP : { psi2 = 0.; psi3 = 1.;}
break;
888 Double_t percIn(0.), percOut(0.), percLost(0.);
890 psi3, percIn, percOut, percLost);
1003 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1004 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1019 AliAnalysisTaskSE::Exec(c);
1026 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_2
1027 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1036 if(a < 0) a += TMath::Pi();
1043 Double_t interval(TMath::TwoPi() / 1000.);
1049 for(
Double_t i = a; i < a+TMath::TwoPi()-interval; i += interval) {
1051 if(status == 0 ) percLost += .001;
1052 else if(status == 1 ) percIn += 0.001;
1053 else if(status == 2 ) percOut += 0.001;
1062 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_2
1063 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1080 if(phi > a && phi < b && phi > x1 && phi < x2) overlap = 1;
1081 if(phi > c && phi < d && phi > x1 && phi < x2) overlap = 1;
1083 if(phi > b && phi < c && phi > x1 && phi < x2) overlap = 2;
1084 if(phi > d && phi < e && phi > x1 && phi < x2) overlap = 2;
1090 if(phi > a && phi < b && phi > x1 && phi < x2) overlap = 1;
1091 if(phi > c && phi < d && phi > x1 && phi < x2) overlap = 1;
1093 if(phi > b && phi < c && phi > x1 && phi < x2) overlap = 2;
1094 if(phi > d && phi < e && phi > x1 && phi < x2) overlap = 2;
1103 Double_t chi(2.), delta(1.), con((TMath::Sqrt(TMath::Pi()))/(2.*TMath::Sqrt(2)));
1104 for (
Int_t i(0); i < 15; i++) {
1105 chi = ((con*chi*TMath::Exp(-chi*chi/4.)*(TMath::BesselI0(chi*chi/4.)+TMath::BesselI1(chi*chi/4.))) < res) ? chi + delta : chi - delta;
1114 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1115 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1125 vzero[0][0] = .5*TMath::ATan2(QA2[1], QA2[0]);
1126 vzero[1][0] = .5*TMath::ATan2(QC2[1], QC2[0]);
1127 vzero[0][1] = (1./3.)*TMath::ATan2(QA3[1], QA3[0]);
1128 vzero[1][1] = (1./3.)*TMath::ATan2(QC3[1], QC3[0]);
1137 Double_t Qxa3_raw = 0, Qya3_raw = 0;
1138 Double_t Qxc3_raw = 0, Qyc3_raw = 0;
1140 AliVVZERO* aodV0 = (InputEvent())->GetVZEROData();
1141 for (
Int_t iV0 = 0; iV0 < 64; iV0++) {
1142 Double_t phiV0 = TMath::PiOver4()*(0.5 + iV0 % 8);
1143 Float_t multv0 = aodV0->GetMultiplicity(iV0);
1150 if (multCorC < 0) cout<<
"Problem with multiplicity in V0C"<<endl;
1151 Qxcn += TMath::Cos(2.*phiV0) * multCorC;
1152 Qycn += TMath::Sin(2.*phiV0) * multCorC;
1153 Qxc3 += TMath::Cos(3.*phiV0) * multCorC;
1154 Qxc3_raw += TMath::Cos(3.*phiV0) * multv0;
1155 Qyc3 += TMath::Sin(3.*phiV0) * multCorC;
1156 Qyc3_raw += TMath::Sin(3.*phiV0) * multv0;
1157 sumMc = sumMc + multCorC;
1168 if (multCorA < 0) cout<<
"Problem with multiplicity in V0A"<<endl;
1169 Qxan += TMath::Cos(2.*phiV0) * multCorA;
1170 Qyan += TMath::Sin(2.*phiV0) * multCorA;
1171 Qxa3 += TMath::Cos(3.*phiV0) * multCorA;
1172 Qxa3_raw += TMath::Cos(3.*phiV0) * multv0;
1173 Qya3 += TMath::Sin(3.*phiV0) * multCorA;
1174 Qya3_raw += TMath::Sin(3.*phiV0) * multv0;
1175 sumMa = sumMa + multCorA;
1182 if (sumMa <=0 || sumMc <= 0)
return;
1184 Double_t QyanCor = (Qyan -
fMQ[1][0][0]->GetBinContent(iCentSPD+1))/
fWQ[1][0][0]->GetBinContent(iCentSPD+1);
1185 Double_t QycnCor = (Qycn -
fMQ[1][1][0]->GetBinContent(iCentSPD+1))/
fWQ[1][1][0]->GetBinContent(iCentSPD+1);
1186 Double_t QxanCor = (Qxan -
fMQ[0][0][0]->GetBinContent(iCentSPD+1))/
fWQ[0][0][0]->GetBinContent(iCentSPD+1);
1187 Double_t QxcnCor = (Qxcn -
fMQ[0][1][0]->GetBinContent(iCentSPD+1))/
fWQ[0][1][0]->GetBinContent(iCentSPD+1);
1188 vzero[0][0] = .5*TMath::ATan2(QyanCor,QxanCor);
1189 vzero[1][0] = .5*TMath::ATan2(QycnCor,QxcnCor);
1190 QyanCor = (Qya3 -
fMQ[1][0][1]->GetBinContent(iCentSPD+1))/
fWQ[1][0][1]->GetBinContent(iCentSPD+1);
1191 QycnCor = (Qyc3 -
fMQ[1][1][1]->GetBinContent(iCentSPD+1))/
fWQ[1][1][1]->GetBinContent(iCentSPD+1);
1192 QxanCor = (Qxa3 -
fMQ[0][0][1]->GetBinContent(iCentSPD+1))/
fWQ[0][0][1]->GetBinContent(iCentSPD+1);
1193 QxcnCor = (Qxc3 -
fMQ[0][1][1]->GetBinContent(iCentSPD+1))/
fWQ[0][1][1]->GetBinContent(iCentSPD+1);
1194 vzero[0][1] = (1./3.)*TMath::ATan2(QyanCor,QxanCor);
1195 vzero[1][1] = (1./3.)*TMath::ATan2(QycnCor,QxcnCor);
1201 fHistQxV0a->Fill(QxanCor, VZEROcentralityBin);
1202 fHistQyV0a->Fill(QyanCor, VZEROcentralityBin);
1203 fHistQxV0c->Fill(QxcnCor, VZEROcentralityBin);
1204 fHistQyV0c->Fill(QycnCor, VZEROcentralityBin);
1205 fHistEPBC->Fill((1./3.)*TMath::ATan2(Qyc3_raw+Qya3_raw,Qxc3_raw+Qxa3_raw));
1206 fHistEP->Fill((1./3.)*TMath::ATan2(QycnCor+QyanCor,QxcnCor+QxanCor));
1212 Double_t a(0), b(0),
c(0), d(0), e(0), f(0), g(0), h(0);
1213 vzero[0][0] = InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 8, 2, a, b);
1214 vzero[1][0] = InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 9, 2,
c, d);
1215 vzero[0][1] = InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 8, 3, e, f);
1216 vzero[1][1] = InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 9, 3, g, h);
1225 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1226 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1238 comb[0] = .5*TMath::ATan2(Q2[1], Q2[0]);
1239 comb[1] = (1./3.)*TMath::ATan2(Q3[1], Q3[0]);
1247 AliVVZERO* aodV0 =(InputEvent())->GetVZEROData();
1248 for (
Int_t iV0 = 0; iV0 < 64; iV0++) {
1249 Double_t phiV0 = TMath::PiOver4()*(0.5 + iV0 % 8);
1250 Float_t multv0 = aodV0->GetMultiplicity(iV0);
1257 if (multCorC < 0) cout<<
"Problem with multiplicity in V0C"<<endl;
1258 Qxcn += TMath::Cos(2.*phiV0) * multCorC;
1259 Qycn += TMath::Sin(2.*phiV0) * multCorC;
1260 Qxc3 += TMath::Cos(3.*phiV0) * multCorC;
1261 Qyc3 += TMath::Sin(3.*phiV0) * multCorC;
1262 sumMc = sumMc + multCorC;
1269 if (multCorA < 0) cout<<
"Problem with multiplicity in V0A"<<endl;
1270 Qxan += TMath::Cos(2.*phiV0) * multCorA;
1271 Qyan += TMath::Sin(2.*phiV0) * multCorA;
1272 Qxa3 += TMath::Cos(3.*phiV0) * multCorA;
1273 Qya3 += TMath::Sin(3.*phiV0) * multCorA;
1274 sumMa = sumMa + multCorA;
1277 if (sumMa <=0 || sumMc <= 0)
return;
1279 Double_t QyanCor = (Qyan -
fMQ[1][0][0]->GetBinContent(iCentSPD+1))/
fWQ[1][0][0]->GetBinContent(iCentSPD+1);
1280 Double_t QycnCor = (Qycn -
fMQ[1][1][0]->GetBinContent(iCentSPD+1))/
fWQ[1][1][0]->GetBinContent(iCentSPD+1);
1281 Double_t QxanCor = (Qxan -
fMQ[0][0][0]->GetBinContent(iCentSPD+1))/
fWQ[0][0][0]->GetBinContent(iCentSPD+1);
1282 Double_t QxcnCor = (Qxcn -
fMQ[0][1][0]->GetBinContent(iCentSPD+1))/
fWQ[0][1][0]->GetBinContent(iCentSPD+1);
1283 comb[0] = .5*TMath::ATan2(QyanCor+QycnCor,QxanCor+QxcnCor);
1284 QyanCor = (Qya3 -
fMQ[1][0][1]->GetBinContent(iCentSPD+1))/
fWQ[1][0][1]->GetBinContent(iCentSPD+1);
1285 QycnCor = (Qyc3 -
fMQ[1][1][1]->GetBinContent(iCentSPD+1))/
fWQ[1][1][1]->GetBinContent(iCentSPD+1);
1286 QxanCor = (Qxa3 -
fMQ[0][0][1]->GetBinContent(iCentSPD+1))/
fWQ[0][0][1]->GetBinContent(iCentSPD+1);
1287 QxcnCor = (Qxc3 -
fMQ[0][1][1]->GetBinContent(iCentSPD+1))/
fWQ[0][1][1]->GetBinContent(iCentSPD+1);
1288 comb[1] = (1./3.)*TMath::ATan2(QyanCor+QycnCor,QxanCor+QxcnCor);
1299 Double_t qx2a(0), qy2a(0), qx2c(0), qy2c(0), qx3a(0), qy3a(0), qx3c(0), qy3c(0);
1301 InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 8, 2, qx2a, qy2a);
1302 InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 9, 2, qx2c, qy2c);
1303 InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 8, 3, qx3a, qy3a);
1304 InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 9, 3, qx3c, qy3c);
1315 chi2A =
fChi2A->At(VZEROcentralityBin);
1316 chi2C =
fChi2C->At(VZEROcentralityBin);
1317 chi3A =
fChi3A->At(VZEROcentralityBin);
1318 chi3C =
fChi3C->At(VZEROcentralityBin);
1321 chi2A =
fSigma2A->At(VZEROcentralityBin);
1322 chi2C =
fSigma2C->At(VZEROcentralityBin);
1323 chi3A =
fSigma3A->At(VZEROcentralityBin);
1324 chi3C =
fSigma3C->At(VZEROcentralityBin);
1325 chi2A = (chi2A > 0) ? 1./chi2A : 1.;
1326 chi2C = (chi2C > 0) ? 1./chi2C : 1.;
1327 chi3A = (chi3A > 0) ? 1./chi3A : 1.;
1328 chi3C = (chi3C > 0) ? 1./chi3C : 1.;
1334 Q2[0] = chi2A*chi2A*qx2a+chi2C*chi2C*qx2c;
1335 Q2[1] = chi2A*chi2A*qy2a+chi2C*chi2C*qy2c;
1336 Q3[0] = chi3A*chi3A*qx3a+chi3C*chi3C*qx3c;
1337 Q3[1] = chi3A*chi3A*qy3a+chi3C*chi3C*qy3c;
1339 comb[0] = .5*TMath::ATan2(Q2[1], Q2[0]);
1340 comb[1] = (1./3.)*TMath::ATan2(Q3[1], Q3[0]);
1342 Double_t _chi(0), _sigma(0), _none(0);
1347 chi2A =
fChi2A->At(VZEROcentralityBin);
1348 chi2C =
fChi2C->At(VZEROcentralityBin);
1349 _chi = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1350 chi2A =
fSigma2A->At(VZEROcentralityBin);
1351 chi2C =
fSigma2C->At(VZEROcentralityBin);
1352 chi2A = (chi2A > 0) ? 1./chi2A : 1.;
1353 chi2C = (chi2C > 0) ? 1./chi2C : 1.;
1354 _sigma = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1358 _chi = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1359 chi2A =
fSigma2A->At(VZEROcentralityBin);
1360 chi2C =
fSigma2C->At(VZEROcentralityBin);
1361 chi2A = (chi2A > 0) ? 1./chi2A : 1.;
1362 chi2C = (chi2C > 0) ? 1./chi2C : 1.;
1363 _sigma = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1367 _sigma = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1368 chi2A =
fChi2A->At(VZEROcentralityBin);
1369 chi2C =
fChi2C->At(VZEROcentralityBin);
1370 _chi = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1375 _none = .5*TMath::ATan2(qy2a+qy2c,qx2a+qx2c);
1387 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1388 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1403 qx2+= TMath::Cos(2.*track->Phi());
1404 qy2+= TMath::Sin(2.*track->Phi());
1405 qx3+= TMath::Cos(3.*track->Phi());
1406 qy3+= TMath::Sin(3.*track->Phi());
1409 tpc[0] = .5*TMath::ATan2(qy2, qx2);
1410 tpc[1] = (1./3.)*TMath::ATan2(qy3, qx3);
1417 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1418 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1439 for(
Int_t iTPC(0); iTPC < iTracks; iTPC++) {
1440 AliVTrack* track =
static_cast<AliVTrack*
>(
fTracks->At(iTPC));
1442 if(track->Eta() < 0 ) {
1443 qx2a+= TMath::Cos(2.*track->Phi());
1444 qy2a+= TMath::Sin(2.*track->Phi());
1445 qx3a+= TMath::Cos(3.*track->Phi());
1446 qy3a+= TMath::Sin(3.*track->Phi());
1447 }
else if (track->Eta() > 0) {
1448 qx2b+= TMath::Cos(2.*track->Phi());
1449 qy2b+= TMath::Sin(2.*track->Phi());
1450 qx3b+= TMath::Cos(3.*track->Phi());
1451 qy3b+= TMath::Sin(3.*track->Phi());
1455 Double_t tpca2(.5*TMath::ATan2(qy2a, qx2a));
1456 Double_t tpca3((1./3.)*TMath::ATan2(qy3a, qx3a));
1457 Double_t tpcb2(.5*TMath::ATan2(qy2b, qx2b));
1458 Double_t tpcb3((1./3.)*TMath::ATan2(qy3b, qx3b));
1475 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1476 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1481 Qa2[0] = 0.; Qc2[0] = 0.; Qa3[0] = 0.; Qc3[0] = 0.;
1482 Qa2[1] = 0.; Qc2[1] = 0.; Qa3[1] = 0.; Qc3[1] = 0.;
1484 Double_t QaX(0), QaY(0), QcX(0), QcY(0);
1485 for(
Int_t i(0); i < 64; i++) {
1487 phi = TMath::PiOver4()*(0.5+i%8);
1488 mult = InputEvent()->GetVZEROData()->GetMultiplicity(i);
1499 QcX += mult*TMath::Cos(2.*phi);
1500 QcY += mult*TMath::Sin(2.*phi);
1510 QaX += mult*TMath::Cos(2.*phi);
1511 QaY += mult*TMath::Sin(2.*phi);
1524 fHistEPBC->Fill(.5*TMath::ATan2(QaY+QcY, QaX+QcX));
1548 Qa2[0] = (Qa2[0] - Qx2amean)/Qx2arms;
1549 Qa2[1] = (Qa2[1] - Qy2amean)/Qy2arms;
1550 Qc2[0] = (Qc2[0] - Qx2cmean)/Qx2crms;
1551 Qc2[1] = (Qc2[1] - Qy2cmean)/Qy2crms;
1553 Qa3[0] = (Qa3[0] - Qx3amean)/Qx3arms;
1554 Qa3[1] = (Qa3[1] - Qy3amean)/Qy3arms;
1555 Qc3[0] = (Qc3[0] - Qx3cmean)/Qx3crms;
1556 Qc3[1] = (Qc3[1] - Qy3cmean)/Qy3crms;
1560 fHistQxV0a->Fill(Qa2[0], VZEROcentralityBin);
1561 fHistQyV0a->Fill(Qa2[1], VZEROcentralityBin);
1562 fHistQxV0c->Fill(Qc2[0], VZEROcentralityBin);
1563 fHistQyV0c->Fill(Qc2[0], VZEROcentralityBin);
1564 fHistEP->Fill(.5*TMath::ATan2(Qa2[1]+Qc2[1], Qa2[0]+Qc2[0]));
1573 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1574 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1593 chi2A =
fChi2A->At(VZEROcentralityBin);
1594 chi2C =
fChi2C->At(VZEROcentralityBin);
1595 chi3A =
fChi3A->At(VZEROcentralityBin);
1596 chi3C =
fChi3C->At(VZEROcentralityBin);
1599 chi2A =
fSigma2A->At(VZEROcentralityBin);
1600 chi2C =
fSigma2C->At(VZEROcentralityBin);
1601 chi3A =
fSigma3A->At(VZEROcentralityBin);
1602 chi3C =
fSigma3C->At(VZEROcentralityBin);
1603 chi2A = (chi2A > 0) ? 1./chi2A : 1.;
1604 chi2C = (chi2C > 0) ? 1./chi2C : 1.;
1605 chi3A = (chi3A > 0) ? 1./chi3A : 1.;
1606 chi3C = (chi3C > 0) ? 1./chi3C : 1.;
1612 Double_t qx2a(QA2[0]), qy2a(QA2[1]), qx2c(QC2[0]), qy2c(QC2[1]);
1614 Q2[0] = chi2A*chi2A*QA2[0]+chi2C*chi2C*QC2[0];
1615 Q2[1] = chi2A*chi2A*QA2[1]+chi2C*chi2C*QC2[1];
1616 Q3[0] = chi3A*chi3A*QA3[0]+chi3C*chi3C*QC3[0];
1617 Q3[1] = chi3A*chi3A*QA3[1]+chi3C*chi3C*QC3[1];
1619 Double_t _chi(0), _sigma(0), _none(0);
1624 chi2A =
fChi2A->At(VZEROcentralityBin);
1625 chi2C =
fChi2C->At(VZEROcentralityBin);
1626 _chi = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1627 chi2A =
fSigma2A->At(VZEROcentralityBin);
1628 chi2C =
fSigma2C->At(VZEROcentralityBin);
1629 chi2A = (chi2A > 0) ? 1./chi2A : 1.;
1630 chi2C = (chi2C > 0) ? 1./chi2C : 1.;
1631 _sigma = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1635 _chi = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1636 chi2A =
fSigma2A->At(VZEROcentralityBin);
1637 chi2C =
fSigma2C->At(VZEROcentralityBin);
1638 chi2A = (chi2A > 0) ? 1./chi2A : 1.;
1639 chi2C = (chi2C > 0) ? 1./chi2C : 1.;
1640 _sigma = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1644 _sigma = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1645 chi2A =
fChi2A->At(VZEROcentralityBin);
1646 chi2C =
fChi2C->At(VZEROcentralityBin);
1647 _chi = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1652 _none = .5*TMath::ATan2(qy2a+qy2c,qx2a+qx2c);
1663 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_2
1664 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1666 pt = 0; eta = 0; phi = 0;
1667 Float_t etaJet(999), phiJet(999), dJet(999);
1669 etaJet = jet->
Eta();
1670 phiJet = jet->
Phi();
1676 if(maxPhi > TMath::TwoPi()) maxPhi = TMath::TwoPi();
1677 if(minPhi < 0 ) minPhi = 0.;
1679 Int_t attempts(1000);
1683 phi =
gRandom->Uniform(minPhi, maxPhi);
1685 dJet = TMath::Sqrt((etaJet-eta)*(etaJet-eta)+(phiJet-phi)*(phiJet-phi));
1687 else if (attempts == 0) {
1688 printf(
" > No random cone after 1000 tries, giving up ... !\n");
1694 tracksCont->ResetCurrentID();
1697 Float_t etaTrack(track->Eta()), phiTrack(track->Phi());
1699 if(TMath::Abs(phiTrack-phi) > TMath::Abs(phiTrack - phi + TMath::TwoPi())) phiTrack+=TMath::TwoPi();
1700 if(TMath::Abs(phiTrack-phi) > TMath::Abs(phiTrack - phi - TMath::TwoPi())) phiTrack-=TMath::TwoPi();
1701 if(TMath::Sqrt(TMath::Abs((etaTrack-eta)*(etaTrack-eta)+(phiTrack-phi)*(phiTrack-phi))) <=
GetJetRadius()) pt += track->Pt();
1708 TLorentzVector momentum;
1709 clusterCont->ResetCurrentID();
1712 cluster->GetMomentum(momentum, const_cast<Double_t*>(
fVertex));
1713 Float_t etaClus(momentum.Eta()), phiClus(momentum.Phi());
1715 if(TMath::Abs(phiClus-phi) > TMath::Abs(phiClus - phi + TMath::TwoPi())) phiClus+=TMath::TwoPi();
1716 if(TMath::Abs(phiClus-phi) > TMath::Abs(phiClus - phi - TMath::TwoPi())) phiClus-=TMath::TwoPi();
1717 if(TMath::Sqrt(TMath::Abs((etaClus-eta)*(etaClus-eta)+(phiClus-phi)*(phiClus-phi))) <=
GetJetRadius()) pt += momentum.Pt();
1725 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1726 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1728 Double_t reQ(0), imQ(0), modQ(0), M11(0), M(0);
1730 QCnQnk(harm, 1, reQ, imQ);
1731 modQ = reQ*reQ+imQ*imQ;
1733 return (M11 > 0) ? ((modQ -
QCnS(1,2))/M11) : -999;
1735 QCnQnk(harm, 0, reQ, imQ);
1736 modQ = reQ*reQ+imQ*imQ;
1738 return (M > 1) ? (modQ - M)/(M*(M-1)) : -999;
1743 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1744 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1746 Double_t reQn1(0), imQn1(0), reQ2n2(0), imQ2n2(0), reQn3(0), imQn3(0), M1111(0), M(0);
1747 Double_t a(0), b(0),
c(0), d(0), e(0), f(0), g(0);
1749 QCnQnk(harm, 1, reQn1, imQn1);
1750 QCnQnk(harm*2, 2, reQ2n2, imQ2n2);
1751 QCnQnk(harm, 3, reQn3, imQn3);
1753 a = (reQn1*reQn1+imQn1*imQn1)*(reQn1*reQn1+imQn1*imQn1);
1754 b = reQ2n2*reQ2n2 + imQ2n2*imQ2n2;
1755 c = -2.*(reQ2n2*reQn1*reQn1-reQ2n2*imQn1*imQn1+2.*imQ2n2*reQn1*imQn1);
1756 d = 8.*(reQn3*reQn1+imQn3*imQn1);
1757 e = -4.*
QCnS(1,2)*(reQn1*reQn1+imQn1*imQn1);
1761 return (M1111 > 0) ? (a+b+
c+d+e+f+g)/M1111 : -999;
1763 Double_t reQn(0), imQn(0), reQ2n(0), imQ2n(0);
1764 QCnQnk(harm, 0, reQn, imQn);
1765 QCnQnk(harm*2, 0, reQ2n, imQ2n);
1768 if(M < 4)
return -999;
1769 a = (reQn*reQn+imQn*imQn)*(reQn*reQn+imQn*imQn);
1770 b = reQ2n*reQ2n + imQ2n*imQ2n;
1771 c = -2.*(reQ2n*reQn*reQn-reQ2n*imQn*imQn+2.*imQ2n*reQn*imQn);
1772 e = -4.*(M-2)*(reQn*reQn+imQn*imQn);
1774 return (a+b+
c+e+f)/(M*(M-1)*(M-2)*(M-3));
1779 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1780 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1785 for(
Int_t iTPC(0); iTPC < iTracks; iTPC++) {
1786 AliVTrack* track =
static_cast<AliVTrack*
>(
fTracks->At(iTPC));
1790 reQ += TMath::Power(track->Pt(), k) * TMath::Cos(((
double)n)*track->Phi());
1791 imQ += TMath::Power(track->Pt(), k) * TMath::Sin(((
double)n)*track->Phi());
1800 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1801 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1803 Int_t iPois(pois->GetEntriesFast());
1805 for(
Int_t i(0); i < iPois; i++) {
1806 for(
Int_t ptBin(0); ptBin < ptBins->GetSize()-1; ptBin++) {
1807 AliVTrack* poi =
static_cast<AliVTrack*
>(pois->At(i));
1809 if(poi->Pt() >= ptBins->At(ptBin) && poi->Pt() < ptBins->At(ptBin+1)) {
1811 repn[ptBin]+=TMath::Cos(((
double)n)*poi->Phi());
1812 impn[ptBin]+=TMath::Sin(((
double)n)*poi->Phi());
1814 reqn[ptBin]+=TMath::Cos(((
double)n)*poi->Phi());
1815 imqn[ptBin]+=TMath::Sin(((
double)n)*poi->Phi());
1822 for(
Int_t i(0); i < iPois; i++) {
1823 for(
Int_t ptBin(0); ptBin < ptBins->GetSize()-1; ptBin++) {
1828 if(pt >= ptBins->At(ptBin) && pt < ptBins->At(ptBin+1)) {
1829 repn[ptBin]+=TMath::Cos(((
double)n)*poi->
Phi());
1830 impn[ptBin]+=TMath::Sin(((
double)n)*poi->
Phi());
1841 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1842 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1844 if(!
fTracks || i <= 0 || j <= 0)
return -999;
1847 for(
Int_t iTPC(0); iTPC < iTracks; iTPC++) {
1848 AliVTrack* track =
static_cast<AliVTrack*
>(
fTracks->At(iTPC));
1850 Sij+=TMath::Power(track->Pt(), j);
1852 return TMath::Power(Sij, i);
1857 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1858 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1865 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1866 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1873 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1874 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1882 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1883 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1901 if( c2 < 0 ) c2 = -1.*TMath::Sqrt(-1.*c2);
1902 if( c3 < 0 ) c3 = -1.*TMath::Sqrt(-1.*c3);
1916 default :
return kFALSE;
1936 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1937 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1939 Int_t freeParams(2);
1960 }
else if (!
QCnRecovery(psi2, psi3))
return kFALSE;
1986 }
else if (!
QCnRecovery(psi2, psi3))
return kFALSE;
2012 case kTPC : detector+=
"TPC";
2014 case kVZEROA : detector+=
"VZEROA";
2016 case kVZEROC : detector+=
"VZEROC";
2020 case kFixedEP : detector+=
"FixedEP";
2028 if(iTracks <= 0 || fLocalRho->GetVal() <= 0 )
return kFALSE;
2039 Double_t lowBound(0.), upBound(TMath::TwoPi());
2047 _tempSwap = TH1F(
"_tempSwap",
"_tempSwap", TMath::CeilNint(TMath::Sqrt(
fNAcceptedTracks)), lowBound, upBound);
2053 Double_t totalpts(0.), totalptsquares(0.), totalns(0.);
2068 _tempSwap.Fill(track->Phi(), track->Pt());
2070 totalpts += track->Pt();
2071 totalptsquares += track->Pt()*track->Pt();
2073 _tempSwapN.Fill(track->Phi());
2076 else _tempSwap.Fill(track->Phi());
2084 if(totalns < 2)
return kFALSE;
2085 for(
Int_t l = 0; l < _tempSwap.GetNbinsX(); l++) {
2086 if(_tempSwapN.GetBinContent(l+1) == 0) {
2087 _tempSwap.SetBinContent(l+1,0);
2088 _tempSwap.SetBinError(l+1,0);
2091 Double_t vartimesnsq = totalptsquares*totalns - totalpts*totalpts;
2092 Double_t variance = vartimesnsq/(totalns*(totalns-1.));
2093 Double_t SDOMSq = variance / _tempSwapN.GetBinContent(l+1);
2094 Double_t SDOMSqOverMeanSq = SDOMSq * _tempSwapN.GetBinContent(l+1) * _tempSwapN.GetBinContent(l+1) / (_tempSwapN.GetBinContent(l+1) * _tempSwapN.GetBinContent(l+1));
2095 Double_t poissonfrac = 1./_tempSwapN.GetBinContent(l+1);
2096 Double_t vartotalfrac = SDOMSqOverMeanSq + poissonfrac;
2097 Double_t vartotal = vartotalfrac * _tempSwap.GetBinContent(l+1) * _tempSwap.GetBinContent(l+1);
2098 if(vartotal > 0.0001) _tempSwap.SetBinError(l+1,TMath::Sqrt(vartotal));
2100 _tempSwap.SetBinContent(l+1,0);
2101 _tempSwap.SetBinError(l+1,0);
2128 Double_t cos2(0), sin2(0), cos3(0), sin3(0), sumPt(0);
2129 for(
Int_t i(0); i < iTracks; i++) {
2130 AliVTrack* track =
static_cast<AliVTrack*
>(
fTracks->At(i));
2132 sumPt += track->Pt();
2133 cos2 += track->Pt()*TMath::Cos(2*
PhaseShift(track->Phi()-psi2));
2134 sin2 += track->Pt()*TMath::Sin(2*
PhaseShift(track->Phi()-psi2));
2135 cos3 += track->Pt()*TMath::Cos(3*
PhaseShift(track->Phi()-psi3));
2136 sin3 += track->Pt()*TMath::Sin(3*
PhaseShift(track->Phi()-psi3));
2147 Int_t _bins = _tempSwap.GetXaxis()->GetNbins();
2148 TF1* _tempFit =
new TF1(
"temp_fit_kCombined",
"[0]*([1]+[2]*([3]*TMath::Cos([2]*(x-[4]))+[7]*TMath::Cos([5]*(x-[6]))))", 0, TMath::TwoPi());
2150 _tempFit->SetParameter(3, 0.1);
2151 _tempFit->FixParameter(1, 1.);
2152 _tempFit->FixParameter(2, 2.);
2153 _tempFit->FixParameter(5, 3.);
2156 _tempFit->SetParameter(7, 0.1);
2158 for(
int _binsI = 0; _binsI < _bins*_bins; _binsI++) _tempSwap.Fill(_tempFit->GetRandom());
2166 Int_t NDF(_tempSwap.GetXaxis()->GetNbins()-freeParams);
2167 if(NDF == 0 || (
float)NDF <= 0.)
return kFALSE;
2191 CDF = CDFKolmogorov;
2212 if(CDFControl > CDF) {
2228 static Int_t didacticCounterBest(0);
2229 TProfile* didacticProfile = (TProfile*)_tempSwap.Clone(Form(
"Fit_%i_1-CDF_%.3f_cen_%i_%s", didacticCounterBest, CDF,
fInCentralitySelection, detector.Data()));
2235 TF1* v0(
new TF1(
"dfit_kV2",
"[0]", 0, TMath::TwoPi()));
2236 v0->SetParameter(0, didacticFit->GetParameter(0));
2237 v0->SetLineColor(kMagenta);
2238 v0->SetLineStyle(7);
2239 didacticProfile->GetListOfFunctions()->Add(v0);
2240 TF1* v2(
new TF1(
"dfit_kV2",
"[0]*([1]+[2]*[3]*TMath::Cos([2]*(x-[4])))", 0, TMath::TwoPi()));
2241 v2->SetParameter(0, didacticFit->GetParameter(0));
2242 v2->SetParameter(3, didacticFit->GetParameter(3));
2243 v2->FixParameter(1, 1.);
2244 v2->FixParameter(2, 2.);
2245 v2->FixParameter(4, didacticFit->GetParameter(4));
2246 v2->SetLineColor(kGreen);
2247 didacticProfile->GetListOfFunctions()->Add(v2);
2248 TF1* v3(
new TF1(
"dfit_kV3",
"[0]*([1]+[2]*[3]*TMath::Cos([5]*(x-[4])))", 0, TMath::TwoPi()));
2249 v3->SetParameter(0, didacticFit->GetParameter(0));
2250 v3->SetParameter(3, didacticFit->GetParameter(7));
2251 v3->FixParameter(1, 1.);
2252 v3->FixParameter(2, 2.);
2253 v3->FixParameter(4, didacticFit->GetParameter(6));
2254 v3->FixParameter(5, 3.);
2255 v3->SetLineColor(kCyan);
2256 didacticProfile->GetListOfFunctions()->Add(v3);
2260 didacticProfile->GetListOfFunctions()->Add(didacticFit);
2261 didacticProfile->GetYaxis()->SetTitle(
"#frac{d #sum #it{p}_{T}}{d #varphi} [GeV/#it{c}]");
2262 didacticProfile->GetXaxis()->SetTitle(
"#varphi");
2264 didacticCounterBest++;
2265 TH2F* didacticSurface =
BookTH2F(Form(
"surface_%s", didacticProfile->GetName()),
"#phi",
"#eta", 50, 0, TMath::TwoPi(), 50, -1, 1, -1, kFALSE);
2266 for(
Int_t i(0); i < iTracks; i++) {
2267 AliVTrack* track =
static_cast<AliVTrack*
>(
fTracks->At(i));
2269 if(
fUsePtWeight) didacticSurface->Fill(track->Phi(), track->Eta(), track->Pt());
2270 else didacticSurface->Fill(track->Phi(), track->Eta());
2274 TF2 *f2 =
new TF2(Form(
"%s_LJ", didacticSurface->GetName()),
"[0]*TMath::Gaus(x,[1],[2])*TMath::Gaus(y,[3],[4])", 0, TMath::TwoPi(), -1, 1);
2275 f2->SetParameters(excludeInPt/3.,excludeInPhi,.1,excludeInEta,.1);
2276 didacticSurface->GetListOfFunctions()->Add(f2);
2285 static Int_t didacticCounterWorst(0);
2287 TProfile* didacticProfile = (TProfile*)_tempSwap.Clone(Form(
"Fit_%i_1-CDF_%.3f_cen_%i_%s", didacticCounterWorst, CDF,
fInCentralitySelection, detector.Data() ));
2289 didacticProfile->GetListOfFunctions()->Add(didacticFit);
2291 didacticCounterWorst++;
2313 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2314 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2328 if(aodEvent) trigger = ((AliVAODHeader*)(aodEvent->GetHeader()))->GetOfflineTrigger();
2330 if((trigger & AliVEvent::kMB) == 0)
return kFALSE;
2340 if( (!esdEvent) || (TMath::Abs(esdEvent->GetPrimaryVertexSPD()->GetZ() - esdEvent->GetPrimaryVertex()->GetZ()) > .5) )
return kFALSE;
2344 if( (!aodEvent) || (TMath::Abs(aodEvent->GetPrimaryVertexSPD()->GetZ() - aodEvent->GetPrimaryVertex()->GetZ()) > .5) )
return kFALSE;
2354 fCent = InputEvent()->GetCentrality()->GetCentralityPercentile(
"V0M");
2368 if(
fTracks->GetEntries() < 1)
return kFALSE;
2369 if(
fRho->GetVal() <= 0 )
return kFALSE;
2373 Float_t multTPC(0.), multGlob(0.);
2375 Int_t nGoodTracks(event->GetNumberOfTracks());
2376 for(
Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) {
2377 AliAODTrack* trackAOD =
dynamic_cast<AliAODTrack*
>(
event->GetTrack(iTracks));
2378 if(!trackAOD) AliFatal(
"Not a standard AOD");
2379 if (!trackAOD)
continue;
2380 if (!(trackAOD->TestFilterBit(1)))
continue;
2381 if ((trackAOD->Pt() < .2) || (trackAOD->Pt() > 5.0) || (TMath::Abs(trackAOD->Eta()) > .8) || (trackAOD->GetTPCNcls() < 70) || (trackAOD->GetDetPid()->GetTPCsignal() < 10.0) || (trackAOD->Chi2perNDF() < 0.2))
continue;
2384 for(
Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) {
2385 AliAODTrack* trackAOD =
dynamic_cast<AliAODTrack*
>(
event->GetTrack(iTracks));
2386 if(!trackAOD) AliFatal(
"Not a standard AOD");
2387 if (!trackAOD)
continue;
2388 if (!(trackAOD->TestFilterBit(16)))
continue;
2389 if ((trackAOD->Pt() < .2) || (trackAOD->Pt() > 5.0) || (TMath::Abs(trackAOD->Eta()) > .8) || (trackAOD->GetTPCNcls() < 70) || (trackAOD->GetDetPid()->GetTPCsignal() < 10.0) || (trackAOD->Chi2perNDF() < 0.1))
continue;
2391 Double_t bCov[3] = {-99., -99., -99.};
2392 AliAODTrack copy(*trackAOD);
2393 if (!(copy.PropagateToDCA(event->GetPrimaryVertex(),
event->GetMagneticField(), 100., b, bCov)))
continue;
2394 if ((TMath::Abs(b[0]) > 0.3) || (TMath::Abs(b[1]) > 0.3))
continue;
2397 if(! (multTPC > (-40.3+1.22*multGlob) && multTPC < (32.1+1.59*multGlob)))
return kFALSE;
2407 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2408 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2413 Short_t isPileup =
event->IsPileupFromSPD(3);
2414 if (isPileup != 0)
return kFALSE;
2416 if (((AliAODHeader*)event->GetHeader())->GetRefMultiplicityComb08() < 0)
return kFALSE;
2419 AliAODVertex* vtTrc =
event->GetPrimaryVertex();
2420 AliAODVertex* vtSPD =
event->GetPrimaryVertexSPD();
2421 if (vtTrc->GetNContributors()<2 || vtSPD->GetNContributors()<1)
return kFALSE;
2422 double covTrc[6],covSPD[6];
2423 vtTrc->GetCovarianceMatrix(covTrc);
2424 vtSPD->GetCovarianceMatrix(covSPD);
2425 double dz = vtTrc->GetZ()-vtSPD->GetZ();
2426 double errTot = TMath::Sqrt(covTrc[5]+covSPD[5]);
2427 double errTrc = TMath::Sqrt(covTrc[5]);
2428 double nsigTot = TMath::Abs(dz)/errTot, nsigTrc = TMath::Abs(dz)/errTrc;
2429 if (TMath::Abs(dz)>0.2 || nsigTot>10 || nsigTrc>20)
return kFALSE;
2432 if (event->IsIncompleteDAQ())
return kFALSE;
2440 const int kMinPlpContrib = 5;
2441 const double kMaxPlpChi2 = 5.0;
2442 const double kMinWDist = 15;
2443 const AliVVertex* vtPrm = 0;
2444 const AliVVertex* vtPlp = 0;
2446 if ( !(nPlp = event->GetNumberOfPileupVerticesTracks()) )
return kFALSE;
2447 vtPrm =
event->GetPrimaryVertex();
2448 if (vtPrm == event->GetPrimaryVertexSPD())
return kTRUE;
2450 for (
int ipl=0;ipl<nPlp;ipl++) {
2451 vtPlp = (
const AliVVertex*)event->GetPileupVertexTracks(ipl);
2452 if (vtPlp->GetNContributors() < kMinPlpContrib)
continue;
2453 if (vtPlp->GetChi2perNDF() > kMaxPlpChi2)
continue;
2454 double wDst =
GetWDist(vtPrm,vtPlp);
2455 if (wDst<kMinWDist)
continue;
2468 printf(
"One of vertices is not valid\n");
2471 static TMatrixDSym vVb(3);
2473 double dx = v0->GetX()-v1->GetX();
2474 double dy = v0->GetY()-v1->GetY();
2475 double dz = v0->GetZ()-v1->GetZ();
2476 double cov0[6],cov1[6];
2477 v0->GetCovarianceMatrix(cov0);
2478 v1->GetCovarianceMatrix(cov1);
2479 vVb(1,1) = cov0[2]+cov1[2];
2480 vVb(2,2) = cov0[5]+cov1[5];
2481 vVb(1,0) = vVb(0,1) = cov0[1]+cov1[1];
2482 vVb(0,2) = vVb(1,2) = vVb(2,0) = vVb(2,1) = 0.;
2484 if (!vVb.IsValid()) {printf(
"Singular Matrix\n");
return dist;}
2485 dist = vVb(0,0)*dx*dx + vVb(1,1)*dy*dy + vVb(2,2)*dz*dz
2486 + 2*vVb(0,1)*dx*dy + 2*vVb(0,2)*dx*dz + 2*vVb(1,2)*dy*dz;
2487 return dist>0 ? TMath::Sqrt(dist) : -1;
2495 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2496 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2510 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_2
2511 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2520 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2521 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2531 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_
2532 printf(
"\n > TASK %s CANNOT IDENTIFY RUN - CONFIGURATION COULD BE INCORRECT < \n", GetName());
2539 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2540 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2542 Int_t iTracks(
fTracks->GetEntriesFast()), iAcceptedTracks(0);
2543 for(
Int_t i(0); i < iTracks; i++) {
2544 AliVTrack* track =
static_cast<AliVTrack*
>(
fTracks->At(i));
2557 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2558 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2562 TLorentzVector clusterLorentzVector;
2563 for(
Int_t i(0); i < iClusters; i++) {
2566 cluster->GetMomentum(clusterLorentzVector, const_cast<Double_t*>(
fVertex));
2577 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2578 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2607 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2608 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2618 for(
Int_t i(0); i < iJets; i++) {
2629 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2630 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2636 Float_t pt(0), eta(0), phi(0);
2672 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2673 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2678 trigger = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
2679 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2683 for(
Int_t i(0); i < iJets; i++) {
2724 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_2
2725 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2735 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2736 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2739 fHistVertexz->Fill(vevent->GetPrimaryVertex()->GetZ());
2746 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2747 printf(
"\n > TASK %s CANNOT IDENTIFY RUN - CONFIGURATION COULD BE INCORRECT < \n", GetName());
2760 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_2
2761 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2780 UInt_t MB_EMCEJE(AliVEvent::kMB | AliVEvent::kEMCEJE);
2781 UInt_t CEN_EMCEJE(AliVEvent::kCentral | AliVEvent::kEMCEJE);
2782 UInt_t SEM_EMCEJE(AliVEvent::kSemiCentral | AliVEvent::kEMCEJE);
2783 UInt_t ALL_EMCEJE(AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral | AliVEvent::kEMCEJE);
2784 UInt_t MB_EMCEGA(AliVEvent::kMB | AliVEvent::kEMCEGA);
2785 UInt_t CEN_EMCEGA(AliVEvent::kCentral | AliVEvent::kEMCEGA);
2786 UInt_t SEM_EMCEGA(AliVEvent::kSemiCentral | AliVEvent::kEMCEGA);
2787 UInt_t ALL_EMCEGA(AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral | AliVEvent::kEMCEGA);
2833 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2834 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2891 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2892 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2894 AliAnalysisTaskJetV3::Dump();
2904 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2905 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2914 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2915 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2919 fFitControl =
new TF1(
"controlFit",
"pol0", 0, TMath::TwoPi());
2927 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2928 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2931 printf(
" > Please add fOutputList first < \n");
2935 (cen) ? r =
new TH1F(
"R",
"R", cen->GetSize()-1, cen->GetArray()) : r =
new TH1F(
"R",
"R", 10, 0, 10);
2936 if(!cen) r->GetXaxis()->SetTitle(
"number of centrality bin");
2937 r->GetYaxis()->SetTitle(Form(
"Resolution #Psi_{%i}", h));
2938 for(
Int_t i(0); i < 10; i++) {
2939 TProfile* temp((TProfile*)
fOutputList->FindObject(Form(
"fProfV%iResolution_%i", h, i)));
2941 Double_t a(temp->GetBinContent(3)), b(temp->GetBinContent(5)),
c(temp->GetBinContent(7));
2942 Double_t d(temp->GetBinContent(9)), e(temp->GetBinContent(10)), f(temp->GetBinContent(11));
2943 Double_t _a(temp->GetBinError(3)), _b(temp->GetBinError(5)), _c(temp->GetBinError(7));
2944 Double_t _d(temp->GetBinError(9)), _e(temp->GetBinError(10)), _f(temp->GetBinError(11));
2946 if(a <= 0 || b <= 0 ||
c <= 0 || d <= 0 || e <= 0 || f <= 0)
continue;
2949 r->SetBinContent(1+i, TMath::Sqrt((a*b)/
c));
2950 if(i==0) r->SetNameTitle(
"VZEROA resolution",
"VZEROA resolution");
2951 error = TMath::Power((2.*a*TMath::Sqrt((a*b)/
c))/3.,2.)*_a*_a+TMath::Power((2.*b*TMath::Sqrt((a*b)/
c))/3.,2.)*_b*_b+TMath::Power(2.*
c*TMath::Sqrt((a*b)/
c),2.)*_c*_c;
2952 if(error > 0.) error = TMath::Sqrt(error);
2953 r->SetBinError(1+i, error);
2956 r->SetBinContent(1+i, TMath::Sqrt((a*
c)/b));
2957 error = TMath::Power((2.*a*TMath::Sqrt((a*c)/b))/3.,2.)*_a*_a+TMath::Power((2.*b*TMath::Sqrt((a*c)/b)),2.)*_b*_b+TMath::Power(2.*c*TMath::Sqrt((a*c)/b)/3.,2.)*_c*_c;
2958 if(error > 0.) error = TMath::Sqrt(error);
2959 if(i==0) r->SetNameTitle(
"VZEROC resolution",
"VZEROC resolution");
2960 r->SetBinError(1+i, error);
2963 r->SetBinContent(1+i, TMath::Sqrt((b*
c)/a));
2964 if(i==0) r->SetNameTitle(
"TPC resolution",
"TPC resolution");
2965 r->SetBinError(1+i, TMath::Sqrt(_a*_a+_b*_b+_c*_c));
2968 r->SetBinContent(1+i, TMath::Sqrt((d*e)/f));
2969 if(i==0) r->SetNameTitle(
"VZEROComb resolution",
"VZEROComb resolution");
2970 r->SetBinError(1+i, TMath::Sqrt(_d*_d+_e*_e+_f*_f));
2982 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2983 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2987 printf(
" > Couldn't find resolution < \n");
2990 Double_t res(1./r->GetBinContent(1+r->FindBin(c)));
2991 TF1* line =
new TF1(
"line",
"pol0", 0, 200);
2992 line->SetParameter(0, res);
3002 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
3003 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
3013 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
3014 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
3016 Double_t r(refCumulants->GetBinContent(h-1));
3017 if(r > 0) r = TMath::Sqrt(r);
3018 TH1F* qc =
new TH1F(Form(
"QC2v%i", h), Form(
"QC2v%i", h), ptBins->GetSize()-1, ptBins->GetArray());
3020 for(
Int_t i(0); i < ptBins->GetSize(); i++) {
3022 a = diffCumlants->GetBinContent(1+i);
3023 b = diffCumlants->GetBinError(1+i);
3025 qc->SetBinContent(1+i, c);
3026 (a <= 0 || b <= 0) ? qc->SetBinError(1+i, b) : qc->SetBinError(1+i, TMath::Sqrt(c*c*b*b/(a*a)));
3037 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
3038 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
3049 Double_t chiC2[] = {0.771423, 1.10236, 1.38116, 1.48077, 1.31964, 1.10236, 0.674622, 0.600403, 0.273865};
3050 Double_t chiA2[] = {0.582214, 0.674622, 0.832214, 0.873962, 0.832214, 0.771423, 0.637146, 0.424255, 0.257385};
3051 Double_t chiC3[] = {0.493347, 0.493347, 0.458557, 0.407166, 0.356628, 0.273865, 0.176208, 6.10352e-05, 6.10352e-05};
3052 Double_t chiA3[] = {0.356628, 0.373474, 0.356628, 0.306702, 0.24115, 0.192322, 0.127869, 6.10352e-05, 6.10352e-05};
3059 Double_t sigmaC2[] = {0.000210563,0.000554248,0.00126934,0.00138031,0.00124522,0.000948494,0.00115442,0.000626186,0.000161246};
3060 Double_t sigmaA2[] = {0.000195393,0.000509235,0.00112734,0.00121416,0.00110601,0.00086572,0.0010805,0.000579927,0.00013517};
3061 Double_t sigmaC3[] = {0.000131573,0.000317261,0.000783971,0.000885244,0.000763271,0.000542612,0.000647701,0.000524767,0};
3062 Double_t sigmaA3[] = {0.000123304,0.000293338,0.000714463,0.000798547,0.00069079,0.000503398,0.000615878,0.000489984,0};
3070 if(!
fOADB ||
fOADB->IsZombie())
fOADB = TFile::Open(
"$ALICE_PHYSICS/OADB/PWGCF/VZERO/VZEROcalibEP.root");
3071 if(
fOADB->IsZombie()) {
3072 printf(
"OADB file $ALICE_PHYSICS/OADB/PWGCF/VZERO/VZEROcalibEP.root cannot be opened, CALIBRATION FAILED !");
3076 AliOADBContainer *cont = (AliOADBContainer*)
fOADB->Get(
"hMultV0BefCorr");
3079 printf(
"OADB object hMultV0BefCorr is not available in the file\n");
3083 if(!(cont->GetObject(run))){
3085 printf(
"OADB object hMultVZEROBefCorr is not available for run %i (used default run 137366)\n",run);
3091 AliFatal(Form(
"%s: Fatal error, couldn't read fVZEROgainEqualization from OADB object < \n", GetName()));
3095 TF1* fpol0 =
new TF1(
"fpol0",
"pol0");
3102 for(
Int_t iside=0;iside<2;iside++){
3103 for(
Int_t icoord=0;icoord<2;icoord++){
3104 for(
Int_t i=0;i < 9;i++){
3106 if(iside==0 && icoord==0)
3107 snprintf(namecont,100,
"hQxc2_%i",i);
3108 else if(iside==1 && icoord==0)
3109 snprintf(namecont,100,
"hQxa2_%i",i);
3110 else if(iside==0 && icoord==1)
3111 snprintf(namecont,100,
"hQyc2_%i",i);
3112 else if(iside==1 && icoord==1)
3113 snprintf(namecont,100,
"hQya2_%i",i);
3115 cont = (AliOADBContainer*)
fOADB->Get(namecont);
3117 printf(
"OADB object %s is not available in the file\n",namecont);
3121 if(!(cont->GetObject(run))){
3122 printf(
"OADB object %s is not available for run %i (used run 137366)\n",namecont,run);
3127 fMeanQ[i][iside][icoord] = ((TH1F *) cont->GetObject(run))->GetMean();
3128 fWidthQ[i][iside][icoord] = ((TH1F *) cont->GetObject(run))->GetRMS();
3131 if(iside==0 && icoord==0)
3132 snprintf(namecont,100,
"hQxc3_%i",i);
3133 else if(iside==1 && icoord==0)
3134 snprintf(namecont,100,
"hQxa3_%i",i);
3135 else if(iside==0 && icoord==1)
3136 snprintf(namecont,100,
"hQyc3_%i",i);
3137 else if(iside==1 && icoord==1)
3138 snprintf(namecont,100,
"hQya3_%i",i);
3140 cont = (AliOADBContainer*)
fOADB->Get(namecont);
3142 printf(
"OADB object %s is not available in the file\n",namecont);
3146 if(!(cont->GetObject(run))){
3147 printf(
"OADB object %s is not available for run %i (used run 137366)\n",namecont,run);
3151 fMeanQv3[i][iside][icoord] = ((TH1F *) cont->GetObject(run))->GetMean();
3152 fWidthQv3[i][iside][icoord] = ((TH1F *) cont->GetObject(run))->GetRMS();
3164 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
3165 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
3176 Double_t chiC2[] = {0.771423, 1.10236, 1.38116, 1.48077, 1.31964, 1.10236, 0.674622, 0.600403, 0.273865};
3177 Double_t chiA2[] = {0.582214, 0.674622, 0.832214, 0.873962, 0.832214, 0.771423, 0.637146, 0.424255, 0.257385};
3178 Double_t chiC3[] = {0.493347, 0.493347, 0.458557, 0.407166, 0.356628, 0.273865, 0.176208, 6.10352e-05, 6.10352e-05};
3179 Double_t chiA3[] = {0.356628, 0.373474, 0.356628, 0.306702, 0.24115, 0.192322, 0.127869, 6.10352e-05, 6.10352e-05};
3186 Double_t sigmaC2[] = {7.50161e-05,0.000186685,0.000283528,0.000251427,0.000258122,2.26943e-05,0,0,0};
3187 Double_t sigmaA2[] = {0.000633027,0.000598435,0.000520023,0.000602312,0.00141679,0.00351296,0,0,0};
3188 Double_t sigmaC3[] = {4.69125e-05,0.000106922,0.000177552,0.000149093,0.000149436,0,0,0,0};
3189 Double_t sigmaA3[] = {0.000651813,0.000686852,0.000713499,0.000759663,0.00153532,0,0,0,0};
3198 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
3199 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
3202 if (!gGrid) TGrid::Connect(
"alien");
3203 fOADB = TFile::Open(
"alien:///alice/cern.ch/user/r/rbertens/calibV0HIR.root");
3205 if(
fOADB->IsZombie()) {
3206 printf(
"OADB file could not be opened CALIBRATION FAILED !");
3210 AliOADBContainer* cont = (AliOADBContainer*)
fOADB->Get(
"hMultV0BefCorPfpx");
3213 for(
Int_t i(0); i < 2; i++) {
3216 AliOADBContainer* contQxnam = 0;
3217 if (fNHarm == 2) contQxnam = (AliOADBContainer*)
fOADB->Get(
"fqxa2m");
3218 else if (fNHarm == 3) contQxnam = (AliOADBContainer*)
fOADB->Get(
"fqxa3m");
3219 if(!contQxnam || !(contQxnam->GetObject(
fRunNumber))) {
3220 printf(
"OADB object fqyanm is not available for run %i\n",
fRunNumber);
3225 AliOADBContainer* contQynam = 0;
3226 if (fNHarm == 2) contQynam = (AliOADBContainer*)
fOADB->Get(
"fqya2m");
3227 else if (fNHarm == 3) contQynam = (AliOADBContainer*)
fOADB->Get(
"fqya3m");
3228 if(!contQynam || !(contQynam->GetObject(
fRunNumber))) {
3229 printf(
"OADB object fqyanm is not available for run %i\n",
fRunNumber);
3234 AliOADBContainer* contQxnas = 0;
3235 if (fNHarm == 2) contQxnas = (AliOADBContainer*)
fOADB->Get(
"fqxa2s");
3236 else if (fNHarm == 3) contQxnas = (AliOADBContainer*)
fOADB->Get(
"fqxa3s");
3238 if(!contQxnas || !(contQxnas->GetObject(
fRunNumber))) {
3239 printf(
"OADB object fqxans is not available for run %i\n",
fRunNumber);
3244 AliOADBContainer* contQynas = 0;
3245 if (fNHarm == 2) contQynas = (AliOADBContainer*)
fOADB->Get(
"fqya2s");
3246 else if (fNHarm == 3) contQynas = (AliOADBContainer*)
fOADB->Get(
"fqya3s");
3248 if(!contQynas || !(contQynas->GetObject(
fRunNumber))){
3249 printf(
"OADB object fqyans is not available for run %i\n",
fRunNumber);
3254 AliOADBContainer* contQxncm = 0;
3255 if (fNHarm == 2) contQxncm = (AliOADBContainer*)
fOADB->Get(
"fqxc2m");
3256 else if (fNHarm == 3) contQxncm = (AliOADBContainer*)
fOADB->Get(
"fqxc3m");
3258 if(!contQxncm || !(contQxncm->GetObject(
fRunNumber))) {
3259 printf(
"OADB object fqxcnm is not available for run %i\n",
fRunNumber);
3264 AliOADBContainer* contQyncm = 0;
3265 if (fNHarm == 2) contQyncm = (AliOADBContainer*)
fOADB->Get(
"fqyc2m");
3266 else if (fNHarm == 3) contQyncm = (AliOADBContainer*)
fOADB->Get(
"fqyc3m");
3267 if(!contQyncm || !(contQyncm->GetObject(
fRunNumber))) {
3268 printf(
"OADB object fqyc2m is not available for run %i\n",
fRunNumber);
3273 AliOADBContainer* contQxncs = 0;
3274 if (fNHarm == 2) contQxncs = (AliOADBContainer*)
fOADB->Get(
"fqxc2s");
3275 else if (fNHarm == 3) contQxncs = (AliOADBContainer*)
fOADB->Get(
"fqxc3s");
3276 if(!contQxncs || !(contQxncs->GetObject(
fRunNumber))) {
3277 printf(
"OADB object fqxc2s is not available for run %i\n",
fRunNumber);
3282 AliOADBContainer* contQyncs = 0;
3283 if (fNHarm == 2) contQyncs = (AliOADBContainer*)
fOADB->Get(
"fqyc2s");
3284 else if (fNHarm == 3) contQyncs = (AliOADBContainer*)
fOADB->Get(
"fqyc3s");
3285 if(!contQyncs || !(contQyncs->GetObject(
fRunNumber))){
3286 printf(
"OADB object fqycns is not available for run %i\n",
fRunNumber);
3296 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
3297 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
3305 v0Centr = InputEvent()->GetCentrality()->GetCentralityPercentile(
"V0M");
3308 if(v0Centr < 5)
return 0;
3309 else if(v0Centr < 10)
return 1;
3310 else if(v0Centr < 20)
return 2;
3311 else if(v0Centr < 30)
return 3;
3312 else if(v0Centr < 40)
return 4;
3313 else if(v0Centr < 50)
return 5;
3314 else if(v0Centr < 60)
return 6;
3315 else if(v0Centr < 70)
return 7;
3323 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
3324 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
3330 for(
Int_t i(0); i < iJets; i++) {
3333 if(jet->
Pt() > pt) {
3335 pt = leadingJet->
Pt();
3342 for(
Int_t i(0); i < iJets; i++) {
3347 if((jet->
Pt()-jet->
Area()*rho) > pt) {
3349 pt = (leadingJet->
Pt()-jet->
Area()*rho);
3358 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
3359 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
3365 AliVParticle* leadingTrack(0x0);
3366 for(
Int_t i(0); i < iTracks; i++) {
3367 AliVParticle* vp(static_cast<AliVParticle*>(jet->
TrackAt(i,
fTracksCont->GetArray())));
3368 if(vp && (vp->Pt() > maxPt)) {
3373 return leadingTrack;
3378 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
3379 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
3383 TH1F* temp((TH1F*)hist->Clone(Form(
"EP_weights_cen_%i", c)));
3384 Double_t integral(hist->Integral()/hist->GetNbinsX());
3386 for(
Int_t i(0); i < hist->GetNbinsX(); i++) {
3387 temp->SetBinError(1+i, 0.);
3388 temp->SetBinContent(1+i, integral/hist->GetBinContent(1+i));
3395 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
3396 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
3410 "kMUL7 kMuonLikePB",
3411 "kMUU7 kMuonUnlikePB",
3415 "kPHI7 kPHI8 kPHOSPb",
3425 "kMuonSingleHighPt8",
3427 "kMuonUnlikeLowPt8",
3428 "kMuonUnlikeLowPt0",
3431 TString notTriggered =
"not fired";
3432 printf(
" > trigger is %u \n ", trigger);
3435 for (
Int_t i(0); i < 29; i++) printf(
"[bit %i]\t [%u] [%s]\n", i, (trigger & ((
UInt_t)1 << i)) ? 1U : 0U, (trigger & ((
UInt_t)1 << i)) ? triggerName[i].
Data() : notTriggered.Data());
3438 printf(
" ====== accepted trigger combinations ======= \n");
3439 UInt_t MB_EMCEJE(AliVEvent::kMB | AliVEvent::kEMCEJE);
3440 UInt_t CEN_EMCEJE(AliVEvent::kCentral | AliVEvent::kEMCEJE);
3441 UInt_t SEM_EMCEJE(AliVEvent::kSemiCentral | AliVEvent::kEMCEJE);
3442 UInt_t ALL_EMCEJE(AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral | AliVEvent::kEMCEJE);
3443 UInt_t MB_EMCEGA(AliVEvent::kMB | AliVEvent::kEMCEGA);
3444 UInt_t CEN_EMCEGA(AliVEvent::kCentral | AliVEvent::kEMCEGA);
3445 UInt_t SEM_EMCEGA(AliVEvent::kSemiCentral | AliVEvent::kEMCEGA);
3446 UInt_t ALL_EMCEGA(AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral | AliVEvent::kEMCEGA);
3447 if(trigger == 0) printf(
"(trigger == 0)\n");
3448 if(trigger & AliVEvent::kAny) printf(
"(trigger & AliVEvent::kAny)\n");
3449 if(trigger & AliVEvent::kAnyINT) printf(
"(trigger & AliVEvent::kAnyINT\n");
3450 if(trigger & AliVEvent::kMB) printf(
"(trigger & AliVEvent::kMB)\n");
3451 if(trigger & AliVEvent::kCentral) printf(
"(trigger & AliVEvent::kCentral)\n");
3452 if(trigger & AliVEvent::kSemiCentral) printf(
"(trigger & AliVEvent::kSemiCentral)\n");
3453 if(trigger & AliVEvent::kEMCEJE) printf(
"(trigger & AliVEvent::kEMCEJE)\n");
3454 if(trigger & AliVEvent::kEMCEGA) printf(
"(trigger & AliVEvent::kEMCEGA)\n");
3455 if((trigger & MB_EMCEJE) == MB_EMCEJE) printf(
"(trigger & MB_EMCEJE) == MB_EMCEJE)\n");
3456 if((trigger & CEN_EMCEJE) == CEN_EMCEJE) printf(
"(trigger & CEN_EMCEJE) == CEN_EMCEJE)\n");
3457 if((trigger & SEM_EMCEJE) == SEM_EMCEJE) printf(
"(trigger & SEM_EMCEJE) == SEM_EMCEJE)\n");
3458 if((trigger & ALL_EMCEJE) == ALL_EMCEJE) printf(
"(trigger & ALL_EMCEJE) == ALL_EMCEJE)\n");
3459 if((trigger & MB_EMCEGA) == MB_EMCEGA) printf(
"(trigger & MB_EMCEGA) == MB_EMCEGA)\n");
3460 if((trigger & CEN_EMCEGA) == CEN_EMCEGA) printf(
"(trigger & CEN_EMCEGA) == CEN_EMCEGA)\n");
3461 if((trigger & SEM_EMCEGA) == SEM_EMCEGA) printf(
"(trigger & SEM_EMCEGA) == SEM_EMCEGA)\n");
3462 if((trigger & ALL_EMCEGA) == ALL_EMCEGA) printf(
"(trigger & ALL_EMCEGA) == ALL_EMCEGA)\n");
3470 TF1* dNdphi =
new TF1(
"dNdphi",
"1.+2.*([0]*TMath::Cos(2.*(x-[1]))+[2]*TMath::Cos(3.*(x-[3]))+[4]*TMath::Cos(4.*(x-[5])))", 0, 2*TMath::Pi());
3473 dNdphi->SetParameter(0, v2);
3474 dNdphi->SetParameter(2, v3);
3475 dNdphi->SetParameter(4, v4);
3480 dNdphi->SetParameter(1,
gRandom->Uniform(-TMath::Pi()/2.,TMath::Pi()/2.));
3481 dNdphi->SetParameter(3,
gRandom->Uniform(-TMath::Pi()/3.,TMath::Pi()/3.));
3482 dNdphi->SetParameter(5,
gRandom->Uniform(-TMath::Pi()/4.,TMath::Pi()/4.));
3486 for(
Int_t j(0); j < 100; j++) {
3487 Double_t x = dNdphi->GetRandom(0, TMath::TwoPi());
3488 qx+=TMath::Cos(2.*x);
3489 qy+=TMath::Sin(2.*x);
3491 Double_t ep(TMath::ATan2(qy,qx)/2.);
3494 for(
Int_t j(0); j < 500; j++) {
3495 Double_t x(dNdphi->GetRandom(0, TMath::TwoPi())-ep);
3498 (x > TMath::Pi()/4. && x < 3*TMath::Pi()/4.) ? out++ : in++;
3500 r += TMath::Cos(2.*(ep-dNdphi->GetParameter(1)));
3504 cout <<
" event plane resolution is: " << r << endl;
3507 Double_t ratio = pre*((in-out)/(in+out));
3510 Double_t error2 = (4.*out*out/(TMath::Power(in+out, 4)))*ein*ein+(4.*in*in/(TMath::Power(in+out, 4)))*eout*eout;
3511 error2 = error2*pre*pre;
3512 if(error2 > 0) error2 = TMath::Sqrt(error2);
3514 dNdphi->SetTitle(
"total");
3516 cout <<
"in: " << in <<
"\t out: " << out << endl;
3517 cout <<
"v2: " << ratio <<
"\t error: " << error2 << endl;
3519 TF1* dNdphi2 =
new TF1(
"dNdphi",
"1.+2.*([0]*TMath::Cos(2.*(x-[1])))", 0, 2*TMath::Pi());
3520 TF1* dNdphi3 =
new TF1(
"dNdphi",
"1.+2.*([0]*TMath::Cos(3.*(x-[1])))", 0, 2*TMath::Pi());
3521 TF1* dNdphi4 =
new TF1(
"dNdphi",
"1.+2.*([0]*TMath::Cos(4.*(x-[1])))", 0, 2*TMath::Pi());
3523 dNdphi2->SetParameter(0, dNdphi->GetParameter(0));
3524 dNdphi2->SetParameter(1, dNdphi->GetParameter(1));
3525 dNdphi2->SetLineColor(kBlue);
3526 dNdphi2->SetLineStyle(7);
3527 dNdphi2->SetTitle(
"v_{2}");
3528 dNdphi2->DrawCopy(
"same");
3530 dNdphi3->SetParameter(0, dNdphi->GetParameter(2));
3531 dNdphi3->SetParameter(1, dNdphi->GetParameter(3));
3532 dNdphi3->SetLineColor(kGreen);
3533 dNdphi3->SetLineStyle(7);
3534 dNdphi3->SetTitle(
"v_{3}");
3535 dNdphi3->DrawCopy(
"same");
3537 dNdphi4->SetParameter(0, dNdphi->GetParameter(4));
3538 dNdphi4->SetParameter(1, dNdphi->GetParameter(5));
3539 dNdphi4->SetLineColor(kMagenta);
3540 dNdphi4->SetLineStyle(7);
3541 dNdphi4->SetTitle(
"v_{4}");
3542 dNdphi4->DrawCopy(
"same");
3549 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
3550 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
3552 AliMultSelection *multSelection = 0x0;
3553 if(!InputEvent())
return -1.;
3554 multSelection =
static_cast<AliMultSelection*
>(InputEvent()->FindListObject(
"MultSelection"));
3555 if(multSelection)
return multSelection->GetMultiplicityPercentile(estimator);
static Double_t ChiSquareCDF(Int_t ndf, Double_t x)
collisionType fCollisionType
Double_t fSemiGoodJetMinPhi
TH2F * fHistRunnumbersPhi
QA profile of centralty vs multiplicity.
Float_t fMeanQ[9][2][2]
event plane dependence of jet pt vs rho_0
Int_t fRunNumberCaliInfo
current runnumber (for QA and jet, track selection)
void CalculateQvectorCombinedVZERO(Double_t Q2[2], Double_t Q3[2]) const
static Double_t CalculateEventPlaneChi(Double_t res)
TH1 * fMQ[2][2][2]
recentering
AliRhoParameter * fCachedRho
TList * fOutputListGood
output list
TH2F * fHistDeltaPtDeltaPhi3[10]
rcpt
TH2F * fHistJetEtaRho[10]
jet pt versus number of constituents
TH2F * fHistLeadingJetBackground[10]
correlation of event planes
Double_t fSemiGoodTrackMinPhi
TH2F * fHistRhoAVsMult
rho veruss centrality
TH1F * GetResolutionFromOutputFile(detectorType detector, Int_t h=2, TArrayD *c=0x0)
TF1 * fFitModulation
centrality bin
analysisType fAnalysisType
TH2F * fHistRhoStatusCent
p value vs kolmogorov value
TH2F * fHistTriggerQAIn[10]
eta phi emcal clusters, pt weighted
Int_t fMappedRunNumber
runnumber of the cached calibration info
void SetModulationFit(TF1 *fit)
Float_t fReduceBinsXByFactor
AliVParticle * GetLeadingTrack(AliEmcalJet *jet)
TH2F * fHistChi2ROOTCent
p value versus centrlaity from root
Bool_t fAcceptanceWeights
Bool_t PassesCuts(AliVParticle *track) const
AliJetContainer * GetJetContainer(Int_t i=0) const
void FillAnalysisSummaryHistogram() const
TH2F * fHistPvalueCDFROOTCent
pdf value of chisquare p
UInt_t fOffTrigger
offline trigger for event selection
Double_t CalculateQC2(Int_t harm)
TH2F * fHistJetEtaPhi[10]
jet pt before area cut
TH2F * fHistClusterEtaPhiWeighted[10]
eta phi emcal clusters
Double_t fMinCent
min centrality for event selection
TH1F * fHistVertexz
centrality versus perc lost
void ReadVZEROCalibration2011h()
Bool_t CorrectRho(Double_t psi2, Double_t psi3)
void FillWeightedClusterHistograms() const
void ReadVZEROCalibration2010h()
Bool_t fUsePtWeightErrorPropagation
TH1F * fHistJetPtRaw[10]
dpt vs dphi, excl leading jet, rho_0
static void DoSimpleSimulation(Int_t nEvents=100000, Float_t v2=0.02, Float_t v3=0.04, Float_t v4=0.03)
Container with name, TClonesArray and cuts for particles.
Double_t GetLocalVal(Double_t phi, Double_t r, Double_t n) const
TH1F * fHistPvalueCDFROOT
calibration info per runnumber
TProfile * fProfV2
swap histogram
void FillQAHistograms(AliVTrack *vtrack) const
TH1F * fEventPlaneWeights[10]
TH2F * fHistJetPtConstituents[10]
jet pt versus eta (temp control)
Bool_t fAttachToEvent
is the analysis initialized?
TH2F * fHistRhoVsRCPt[10]
random cone eta and phi
TH2F * fHistPsiVZEROATRK
psi 2 from tpc
Double_t GetJetEtaMax() const
AliEmcalJet * GetLeadingJet(AliLocalRhoParameter *localRho=0x0)
Bool_t fNoEventWeightsForQC
TH2F * fHistClusterEtaPhi[10]
pt emcal clusters
Int_t fInCentralitySelection
mapped runnumer (for QA)
virtual ~AliAnalysisTaskJetV3()
TH1F * fHistUndeterminedRunQA
status of rho as function of centrality
TH1F * fHistEPBC
fHistMultVsCellBC
void FillWeightedQAHistograms(AliVTrack *vtrack) const
static void NumericalOverlap(Double_t x1, Double_t x2, Double_t psi2, Double_t &percIn, Double_t &percOut, Double_t &percLost)
Float_t fExcludeJetsWithTrackPt
TH2F * fHistDeltaPtDeltaPhi3ExLJRho0[10]
dpt vs dphi, excl leading jet
TH1F * BookTH1F(const char *name, const char *x, Int_t bins, Double_t min, Double_t max, Int_t c=-1, Bool_t append=kTRUE)
TH2F * fHistPKolmogorov
KolmogorovTest value, centrality correlation.
TH2F * fHistKolmogorovTestCent
KolmogorovTest value.
TH1F * fHistJetPt[10]
jet pt - no background subtraction
static Double_t ChiSquare(TH1 &histo, TF1 *func)
TH2F * fHistRhoVsCent
rho versus multiplicity
TH2F * fHistPvalueCDFCent
cdf value of chisquare p
void CalculateEventPlaneTPC(Double_t *tpc)
static void PrintTriggerSummary(UInt_t trigger)
static Bool_t IsInPlane(Double_t dPhi)
void FillWeightedTrackHistograms() const
TProfile * fProfV3Cumulant
extracted v3
void CalculateEventPlaneVZERO(Double_t vzero[2][2]) const
void CalculateEventPlaneResolution(Double_t vzero[2][2], Double_t *vzeroComb, Double_t *tpc)
TH2F * fHistRCPhiEta[10]
rho vs eta before cuts
static Double_t PhaseShift(Double_t x)
TH2F * fHistRhoAVsCent
rho * A vs multiplicity for all jets
UShort_t GetNumberOfConstituents() const
TH1I * fHistRunnumbersCaliInfo
run numbers averaged eta
TH2F * fHistEPCorrAvSigma[10]
ep corr
UShort_t GetNumberOfTracks() const
TH2F * fHistDeltaPtDeltaPhi3ExLJ[10]
rcpt, excl leading jet
TH1F * fHistSwap
analysis summary
TH2F * fHistMultCorAfterCuts
accepted verte
void SetUseControlFit(Bool_t c)
TProfile * fHistCentralityPercOut
centrality versus perc in
TH2F * fHistPicoCat1[10]
multiplicity of accepted pico tracks
TH2F * fHistJetPsi3Pt[10]
jet eta versus rho
TString fLocalRhoName
name for local rho
static TH1F * GetEventPlaneWeights(TH1F *hist, Int_t c)
TH3F * fHistPsiTPCLeadingJet[10]
same qa lot
Double_t GetWDist(const AliVVertex *v0, const AliVVertex *v1)
void ReadVZEROCalibration2015o()
TH3F * fHistEPCorrelations[10]
psi 2 from tpc
void FillWeightedTriggerQA(Double_t dPhi, Double_t pt, UInt_t trigger)
TH2F * fHistPsiVZEROTRK
psi 2 from vzero c
TH3F * fHistPsi3Correlation[10]
correlation vzerocomb EP, LJ pt
TH2F * fHistRunnumbersEta
run numbers averaged phi
virtual AliVParticle * GetParticle(Int_t i=-1) const
Float_t fWidthQ[9][2][2]
recentering
void FillWeightedRhoHistograms()
Bool_t QCnRecovery(Double_t psi2, Double_t psi3)
void QCnQnk(Int_t n, Int_t k, Double_t &reQ, Double_t &imQ)
Float_t fReduceBinsYByFactor
Double_t fMaxVz
max vertex for event selection
TArrayI * fExpectedSemiGoodRuns
TH2F * fHistRhoVsRCPtExLJ[10]
random cone eta and phi, excl leading jet
Int_t fNAcceptedTracksQCn
number of accepted tracks
AliRhoParameter * fRho
! event rho
Float_t fVZEROApol
equalization histo
AliEmcalJet * fLeadingJetAfterSub
leading jet
TH2F * fHistIntegralCorrelations[10]
ep corr
TH1F * CorrectForResolutionDiff(TH1F *v, detectorType detector, TArrayD *cen, Int_t c, Int_t h=2)
void SetTrackPhiLimits(Double_t min, Double_t max, Int_t c=0)
TH2F * fHistQyV0c
qx v0a before cuts
TH2F * fHistJetPtArea[10]
eta and phi correlation before cuts
EPweightType fWeightForVZERO
Double_t GetLocalValInEtaPhi(Double_t phi, Double_t r, Double_t n, Int_t gran=20) const
TH1F * fHistPicoTrackPt[10]
resolution parameters for v3
TH1F * fHistRCPt[10]
rho * A vs rcpt
void CalculateEventPlaneCombinedVZERO(Double_t *comb) const
BeamType fForceBeamType
forced beam type
fitGoodnessTest fFitGoodnessTest
TProfile * fProfV2Cumulant
extracted v2
AliClusterContainer * GetClusterContainer(Int_t i=0) const
TH2F * fHistJetEtaPhiBC[10]
eta and phi correlation
Float_t GetCentrality(const char *estimator) const
Float_t fWidthQv3[9][2][2]
recentering
TH2F * fHistMultvsCentr
QA profile global and tpc multiplicity after outlier cut.
Float_t fSoftTrackMinPt
temp cache for rho pointer
Int_t GetNClusters() const
Double_t fMinVz
min vertex for event selection
TProfile * fHistCentralityPercIn
accepted centrality
TArrayD * fChi2A
calibration info per disc
TH2F * fHistQxV0cBC
qx v0a before cuts
Double_t fCent
!event centrality
TH2F * fHistQyV0cBC
qx v0a before cuts
TH2F * fHistPChi2
reduced chi2, centrlaity correlation
TProfile * fProfIntegralCorrelations[10]
correlate polar or local integral
AliLocalRhoParameter * fLocalRho
! local event rho
TH1F * fHistKolmogorovTest
correlation p value and reduced chi2
TH1F * fHistPicoTrackMult[10]
pt of all charged tracks
TH2F * fHistRhoVsMult
background
TH2F * fHistPsiVZEROCTRK
psi 2 from vzero a
TH1 * fWQ[2][2][2]
recentering
TH3F * fHistPsiVZEROCombLeadingJet[10]
correlation vzeroc EP, LJ pt
TH2F * fHistTriggerQAOut[10]
trigger qa in plane
TProfile * fProfV3
resolution parameters for v2
ClassImp(AliAnalysisTaskJetV3) AliAnalysisTaskJetV3
TH3F * fHistPsiVZEROALeadingJet[10]
correlation tpc EP, LJ pt
TH2F * fHistEPCorrChiSigma[10]
ep corr
TH2F * fHistPsiTPCTRK
psi 2 from combined vzero
void FillWeightedJetHistograms(Double_t psi3)
AliVCluster * GetCluster(Int_t i) const
Float_t fVZEROCpol
calibration info per disc
void FillWeightedDeltaPtHistograms(Double_t psi3) const
TH2F * fHistMultVsCellBC
qx v0a before cuts
TProfile * fProfV2Resolution[10]
v2 cumulant
void FillHistogramsAfterSubtraction(Double_t psi3, Double_t vzero[2][2], Double_t *vzeroComb, Double_t *tpc)
TClonesArray * fJets
! jets
TH1F * fHistRCPtExLJ[10]
rho * A vs rcpt, excl leading jet
TH1F * fHistRhoPackage[10]
geometric correlation of leading jet w/wo bkg subtraction
TProfile * fProfV3Resolution[10]
v3 cumulant
TH2F * fHistRCPhiEtaExLJ[10]
dpt vs dphi, rho_0
Double_t KolmogorovTest() const
TH2F * fHistPChi2Root
reduced chi2 from ROOT, centrality correlation
Bool_t Data(TH1F *h, Double_t *rangefit, Bool_t writefit, Double_t &sgn, Double_t &errsgn, Double_t &bkg, Double_t &errbkg, Double_t &sgnf, Double_t &errsgnf, Double_t &sigmafit, Int_t &status)
Bool_t PassesSimpleCuts(AliEmcalJet *jet)
Double_t fSemiGoodJetMaxPhi
void SetJetPhiLimits(Float_t min, Float_t max, Int_t c=0)
TH1F * fHistRho[10]
rho as estimated by emcal jet package
TH2F * fHistDeltaPtDeltaPhi3Rho0[10]
dpt vs dphi (psi2 - phi)
virtual Bool_t IsEventSelected()
Double_t fSemiGoodTrackMaxPhi
TH2F * fHistJetPtEta[10]
jet pt versus area before cuts
Float_t GetJetRadius() const
void FillWeightedEventPlaneHistograms(Double_t vzero[2][2], Double_t *vzeroComb, Double_t *tpc) const
virtual void Terminate(Option_t *option)
TClonesArray * fTracks
!tracks
Int_t fNAcceptedTracks
leading jet after background subtraction
Short_t TrackAt(Int_t idx) const
virtual void Exec(Option_t *)
Double_t GetParticlePhiMax() const
TH2F * fHistPsiVZEROCV0M
psi 2 from vzero a
Float_t fMeanQv3[9][2][2]
recentering
Double_t fVertex[3]
!event vertex
TH2F * fHistRhoEtaBC[10]
rho * A vs centrality for all jets
Float_t fEventPlaneWeight
TH2F * fHistPicoCat3[10]
pico tracks wo spd hit w refit, constrained
TH2F * fHistChi2Cent
p value vs centrality
Bool_t fRebinSwapHistoOnTheFly