36 #include <AliAnalysisTask.h>
37 #include <AliAnalysisManager.h>
38 #include <AliCentrality.h>
39 #include <AliVVertex.h>
40 #include <AliVTrack.h>
41 #include <AliVVZERO.h>
42 #include <AliESDEvent.h>
43 #include <AliAODEvent.h>
44 #include <AliAODTrack.h>
45 #include <AliOADBContainer.h>
47 #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++) {
132 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)
134 for(
Int_t i(0); i < 10; i++) {
188 for(
Int_t i(0); i < 9; i++) {
189 for(
Int_t j(0); j < 2; j++) {
190 for(
Int_t k(0); k < 2; k++) {
200 DefineInput(0, TChain::Class());
203 DefineOutput(startAt, TList::Class());
206 gStyle->SetOptFit(1);
207 DefineOutput(startAt+1, TList::Class());
208 DefineOutput(startAt+2, TList::Class());
225 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
226 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
255 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
256 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
261 if(!(InputEvent()->FindListObject(
fLocalRho->GetName()))) {
264 AliFatal(Form(
"%s: Container with name %s already present. Aborting", GetName(),
fLocalRho->GetName()));
269 if(!
GetJetContainer()) AliFatal(Form(
"%s: Couldn't find jet container. Aborting !", GetName()));
275 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
276 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
280 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
281 printf(
"__FUNC__ %s > NEW RUNNUMBER DETECTED \n ", __func__);
286 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
287 printf(
" LHC10h data, assuming full acceptance, reading VZERO calibration DB \n ");
298 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
299 printf(
" checking runnumber to adjust acceptance on the fly \n");
319 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
320 printf(
"__FUNC__ %s > replacing rho with cached rho \n ", __func__);
324 Bool_t flaggedAsSemiGood(kFALSE);
327 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
328 printf(
"__FUNC__ %s > semi-good tpc run detected, adjusting acceptance \n ", __func__);
330 flaggedAsSemiGood = kTRUE;
343 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
344 printf(
"__FUNC__ %s > switching to small rho, caching normal rho \n ", __func__);
352 if(!flaggedAsSemiGood) {
368 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
369 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
375 if(dynamic_cast<AliAODEvent*>(InputEvent()))
fDataType =
kAOD;
376 else if(dynamic_cast<AliESDEvent*>(InputEvent()))
fDataType =
kESD;
382 SetModulationFit(
new TF1(
"fit_kV2",
"[0]*([1]+[2]*[3]*TMath::Cos([2]*(x-[4])))", 0, TMath::TwoPi()));
389 SetModulationFit(
new TF1(
"fit_kV3",
"[0]*([1]+[2]*[3]*TMath::Cos([2]*(x-[4])))", 0, TMath::TwoPi()));
396 SetModulationFit(
new TF1(
"fit_kCombined",
"[0]*([1]+[2]*([3]*TMath::Cos([2]*(x-[4]))+[7]*TMath::Cos([5]*(x-[6]))))", 0, TMath::TwoPi()));
416 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
417 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
423 name = Form(
"%s_%i", name, c);
426 title += Form(
";%s;[counts]", x);
427 TH1F* histogram =
new TH1F(name, title.Data(), bins, min, max);
433 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)
436 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
437 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
444 name = Form(
"%s_%i", name, c);
447 title += Form(
";%s;%s", x, y);
448 TH2F* histogram =
new TH2F(name, title.Data(), binsx, minx, maxx, binsy, miny, maxy);
454 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)
457 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
458 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
468 name = Form(
"%s_%i", name, c);
471 title += Form(
";%s;%s;%s", x, y, z);
472 TH3F* histogram =
new TH3F(name, title.Data(), binsx, minx, maxx, binsy, miny, maxy, binsz, minz, maxz);
482 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
483 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
489 Double_t c[] = {0., 20., 40., 60., 80., 100.};
493 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 };
499 fHistMultCorAfterCuts =
new TH2F(
"fHistMultCorAfterCuts",
"TPC vs Global multiplicity (After cuts); Global multiplicity; TPC multiplicity", 100, 0, 3000, 100, 0, 3000);
501 fHistMultvsCentr =
new TH2F(
"fHistMultvsCentr",
"Multiplicity vs centrality; centrality; Multiplicity", 9, -0.5, 100.5, 101, 0, 3000);
506 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};
516 fHistCentralityPercIn =
new TProfile(
"fHistCentralityPercIn",
"fHistCentralityPercIn", 102, -2, 100);
521 Double_t etaMin(-1.), etaMax(1.), phiMin(0.), phiMax(TMath::TwoPi());
545 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);
546 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.);
547 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);
548 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);
549 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);
551 fProfIntegralCorrelations[i] =
new TProfile(Form(
"fProfIntegralCorrelations_%i", i), Form(
"fProfIntegralCorrelations_%i", i), 100, 0, 100);
555 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);
556 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);
557 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);
558 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);
559 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);
561 fHistTriggerQAIn[i] =
BookTH2F(
"fHistTriggerQAIn",
"trigger configuration",
"p_{T}^{jet} (GeV/c) in-plane jets", 16, 0.5, 16.5, 70, -100, 250, i);
562 fHistTriggerQAOut[i] =
BookTH2F(
"fHistTriggerQAOut",
"trigger configuration",
"p_{T}^{jet} (GeV/c) out-of-plane jets", 16, 0.5, 16.5, 70, -100, 250, i);
602 Int_t diff(TMath::Abs(up-low));
604 fHistPsiVZEROAV0M =
BookTH2F(
"fHistPsiVZEROAV0M",
"V0M",
"#Psi_{2, VZEROA}", diff, low, up, 40, -.5*TMath::Pi(), .5*TMath::Pi());
605 fHistPsiVZEROCV0M =
BookTH2F(
"fHistPsiVZEROCV0M",
"V0M",
"#Psi_{2, VZEROC}", diff, low, up, 40, -.5*TMath::Pi(), .5*TMath::Pi());
606 fHistPsiVZEROVV0M =
BookTH2F(
"fHistPsiVZEROV0M",
"V0M",
"#Psi_{2, VZERO}", diff, low, up, 40, -.5*TMath::Pi(), .5*TMath::Pi());
607 fHistPsiTPCV0M =
BookTH2F(
"fHistPsiTPCV0M",
"V0M",
"#Psi_{2, TRK}", diff, low, up, 40, -.5*TMath::Pi(), .5*TMath::Pi());
608 fHistPsiVZEROATRK =
BookTH2F(
"fHistPsiVZEROATRK",
"TRK",
"#Psi_{2, VZEROA}", diff, low, up, 40, -.5*TMath::Pi(), .5*TMath::Pi());
609 fHistPsiVZEROCTRK =
BookTH2F(
"fHistPsiVZEROCTRK",
"TRK",
"#Psi_{2, VZEROC}", diff, low, up, 40, -.5*TMath::Pi(), .5*TMath::Pi());
610 fHistPsiVZEROTRK =
BookTH2F(
"fHistPsiVZEROTRK",
"TRK",
"#Psi_{2, VZERO}", diff, low, up, 40, -.5*TMath::Pi(), .5*TMath::Pi());
611 fHistPsiTPCTRK =
BookTH2F(
"fHistPsiTPCTRK",
"TRK",
"#Psi_{2, TRK}", diff, low, up, 40, -.5*TMath::Pi(), .5*TMath::Pi());
620 fHistRhoAVsMult =
BookTH2F(
"fHistRhoAVsMult",
"multiplicity",
"#rho * A (jet) [GeV/c]", 100, 0, 4000, 100, 0, 50);
621 fHistRhoAVsCent =
BookTH2F(
"fHistRhoAVsCent",
"centrality",
"#rho * A (jet) [GeV/c]", 100, 0, 100, 100, 0, 50);
625 case kTPC : detector+=
"TPC";
627 case kVZEROA : detector+=
"VZEROA";
629 case kVZEROC : detector+=
"VZEROC";
633 case kFixedEP : detector+=
"FixedEP";
640 fHistRhoVsRCPt[i] =
BookTH2F(
"fHistRhoVsRCPt",
"p_{t} (RC) [GeV/c]",
"#rho * A (RC) [GeV/c]", 100, 0, 300, 100, 0, 350, i);
643 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);
644 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);
645 fHistRhoVsRCPtExLJ[i] =
BookTH2F(
"fHistRhoVsRCPtExLJ",
"p_{t} (RC) [GeV/c]",
"#rho * A (RC) [GeV/c]", 100, 0, 300, 100, 0, 350, i);
647 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);
648 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);
653 fHistJetPtArea[i] =
BookTH2F(
"fHistJetPtArea",
"p_{t, jet} [GeV/c]",
"Area", 175, -100, 250, 30, 0, 0.9, i);
654 fHistJetPtEta[i] =
BookTH2F(
"fHistJetPtEta",
"p_{t, jet} [GeV/c]",
"Eta", 175, -100, 250, 30, etaMin, etaMax, i);
655 fHistJetPtConstituents[i] =
BookTH2F(
"fHistJetPtConstituents",
"p_{t, jet} [GeV/c]",
"no. of constituents", 350, -100, 250, 60, 0, 150, i);
658 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);
659 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);
660 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);
662 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);
664 fProfV2Resolution[i] =
new TProfile(Form(
"fProfV2Resolution_%i", i), Form(
"fProfV2Resolution_%i", i), 11, -0.5, 10.5);
665 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(3,
"<cos(2(#Psi_{VZEROA} - #Psi_{VZEROC}))>");
666 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(4,
"<cos(2(#Psi_{VZEROC} - #Psi_{VZEROA}))>");
667 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(5,
"<cos(2(#Psi_{VZEROA} - #Psi_{TPC}))>");
668 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(6,
"<cos(2(#Psi_{TPC} - #Psi_{VZEROA}))>");
669 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(7,
"<cos(2(#Psi_{VZEROC} - #Psi_{TPC}))>");
670 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(8,
"<cos(2(#Psi_{TPC} - #Psi_{VZEROC}))>");
671 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(9,
"<cos(2(#Psi_{VZERO} - #Psi_{TPC_A}))>");
672 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(10,
"<cos(2(#Psi_{VZERO} - #Psi_{TPC_B}))>");
673 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(11,
"<cos(2(#Psi_{TPC_A} - #Psi_{TPC_B}))>");
675 fProfV3Resolution[i] =
new TProfile(Form(
"fProfV3Resolution_%i", i), Form(
"fProfV3Resolution_%i", i), 11, -0.5, 10.5);
676 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(3,
"<cos(3(#Psi_{VZEROA} - #Psi_{VZEROC}))>");
677 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(4,
"<cos(3(#Psi_{VZEROC} - #Psi_{VZEROA}))>");
678 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(5,
"<cos(3(#Psi_{VZEROA} - #Psi_{TPC}))>");
679 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(6,
"<cos(3(#Psi_{TPC} - #Psi_{VZEROA}))>");
680 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(7,
"<cos(3(#Psi_{VZEROC} - #Psi_{TPC}))>");
681 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(8,
"<cos(3(#Psi_{TPC} - #Psi_{VZEROC}))>");
682 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(9,
"<cos(3(#Psi_{VZERO} - #Psi_{TPC_A}))>");
683 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(10,
"<cos(3(#Psi_{VZERO} - #Psi_{TPC_B}))>");
684 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(11,
"<cos(3(#Psi_{TPC_A} - #Psi_{TPC_B}))>");
736 fHistSwap =
new TH1F(
"fHistSwap",
"fHistSwap", 20, 0, TMath::TwoPi());
743 for(
Int_t i(0); i < 10; i++) {
758 fHistPChi2 =
BookTH2F(
"fHistPChi2",
"p-value",
"#tilde{#chi^{2}}", 1000, 0, 1, 100, 0, 5);
766 fHistRhoStatusCent =
BookTH2F(
"fHistRhoStatusCent",
"centrality",
"status [-1=lin was better, 0=ok, 1 = failed]", 101, -1, 100, 3, -1.5, 1.5);
774 fHistJetPtAreaBC[i] =
BookTH2F(
"fHistJetPtAreaBC",
"p_{t, jet} [GeV/c]",
"Area", 175, -100, 250, 30, 0, 0.3, i);
776 fHistQxV0aBC =
BookTH2F(
"fHistQxV0aBC",
"Q_{x} V0A",
"centrality class", 140, -700, 700, 10, -.5, 9.5);
777 fHistQyV0aBC =
BookTH2F(
"fHistQyV0aBC",
"Q_{y} V0A",
"centrality class", 140, -700, 700, 10, -.5, 9.5);
778 fHistQxV0cBC =
BookTH2F(
"fHistQxV0cBC",
"Q_{x} V0C",
"centrality class", 140, -700, 700, 10, -.5, 9.5);
779 fHistQyV0cBC =
BookTH2F(
"fHistQyV0cBC",
"Q_{y} V0C",
"centrality class", 140, -700, 700, 10, -.5, 9.5);
780 fHistQxV0a =
BookTH2F(
"fHistQxV0a",
"Q_{x} V0A",
"centrality class", 100, -10, 10, 10, -.5, 9.5);
781 fHistQyV0a =
BookTH2F(
"fHistQyV0a",
"Q_{y} V0A",
"centrality class", 100, -10, 10, 10, -.5, 9.5);
782 fHistQxV0c =
BookTH2F(
"fHistQxV0c",
"Q_{x} V0C",
"centrality class", 100, -10, 10, 10, -.5, 9.5);
783 fHistQyV0c =
BookTH2F(
"fHistQyV0c",
"Q_{y} V0C",
"centrality class", 100, -10, 10, 10, -.5, 9.5);
786 fHistEPBC =
BookTH1F(
"fHistEPBC",
"#Psi_{EP, 2}, uncalibrated", 100, -0.5*TMath::Pi(), 0.5*TMath::Pi());
787 fHistEP =
BookTH1F(
"fHistEP",
"#Psi_{EP, 2}, calibrated", 100, -0.5*TMath::Pi(), 0.5*TMath::Pi());
815 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
816 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
819 if(!
fTracks) printf(
" > Failed to retrieve fTracks ! < \n");
820 if(!
fJets) printf(
" > Failed to retrieve fJets ! < \n");
821 if(!
fRho) printf(
" > Failed to retrieve fRho ! < \n");
846 tpc[0] = 0.; tpc[1] = 1.;
847 vzero[0][0] = 0.; vzero[0][1] = 1.;
848 vzero[1][0] = 0.; vzero[1][1] = 1.;
849 vzeroComb[0] = 0.; vzeroComb[1] = 1.;
861 case kTPC : { psi2 = tpc[0]; psi3 = tpc[1]; }
break;
862 case kVZEROA : { psi2 = vzero[0][0]; psi3 = vzero[0][1]; }
break;
863 case kVZEROC : { psi2 = vzero[1][0]; psi3 = vzero[1][1]; }
break;
864 case kVZEROComb : { psi2 = vzeroComb[0]; psi3 = vzeroComb[1];}
break;
865 case kFixedEP : { psi2 = 0.; psi3 = 1.;}
break;
876 Double_t percIn(0.), percOut(0.), percLost(0.);
878 psi3, percIn, percOut, percLost);
991 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
992 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1007 AliAnalysisTaskSE::Exec(c);
1014 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_2
1015 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1024 if(a < 0) a += TMath::Pi();
1031 Double_t interval(TMath::TwoPi() / 1000.);
1037 for(
Double_t i = a; i < a+TMath::TwoPi()-interval; i += interval) {
1039 if(status == 0 ) percLost += .001;
1040 else if(status == 1 ) percIn += 0.001;
1041 else if(status == 2 ) percOut += 0.001;
1050 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_2
1051 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1068 if(phi > a && phi < b && phi > x1 && phi < x2) overlap = 1;
1069 if(phi > c && phi < d && phi > x1 && phi < x2) overlap = 1;
1071 if(phi > b && phi < c && phi > x1 && phi < x2) overlap = 2;
1072 if(phi > d && phi < e && phi > x1 && phi < x2) overlap = 2;
1078 if(phi > a && phi < b && phi > x1 && phi < x2) overlap = 1;
1079 if(phi > c && phi < d && phi > x1 && phi < x2) overlap = 1;
1081 if(phi > b && phi < c && phi > x1 && phi < x2) overlap = 2;
1082 if(phi > d && phi < e && phi > x1 && phi < x2) overlap = 2;
1091 Double_t chi(2.), delta(1.), con((TMath::Sqrt(TMath::Pi()))/(2.*TMath::Sqrt(2)));
1092 for (
Int_t i(0); i < 15; i++) {
1093 chi = ((con*chi*TMath::Exp(-chi*chi/4.)*(TMath::BesselI0(chi*chi/4.)+TMath::BesselI1(chi*chi/4.))) < res) ? chi + delta : chi - delta;
1102 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1103 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1113 vzero[0][0] = .5*TMath::ATan2(QA2[1], QA2[0]);
1114 vzero[1][0] = .5*TMath::ATan2(QC2[1], QC2[0]);
1115 vzero[0][1] = (1./3.)*TMath::ATan2(QA3[1], QA3[0]);
1116 vzero[1][1] = (1./3.)*TMath::ATan2(QC3[1], QC3[0]);
1121 Double_t a(0), b(0),
c(0), d(0), e(0), f(0), g(0), h(0);
1122 vzero[0][0] = InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 8, 2, a, b);
1123 vzero[1][0] = InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 9, 2,
c, d);
1124 vzero[0][1] = InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 8, 3, e, f);
1125 vzero[1][1] = InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 9, 3, g, h);
1134 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1135 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1147 comb[0] = .5*TMath::ATan2(Q2[1], Q2[0]);
1148 comb[1] = (1./3.)*TMath::ATan2(Q3[1], Q3[0]);
1159 Double_t qx2a(0), qy2a(0), qx2c(0), qy2c(0), qx3a(0), qy3a(0), qx3c(0), qy3c(0);
1161 InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 8, 2, qx2a, qy2a);
1162 InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 9, 2, qx2c, qy2c);
1163 InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 8, 3, qx3a, qy3a);
1164 InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 9, 3, qx3c, qy3c);
1175 chi2A =
fChi2A->At(VZEROcentralityBin);
1176 chi2C =
fChi2C->At(VZEROcentralityBin);
1177 chi3A =
fChi3A->At(VZEROcentralityBin);
1178 chi3C =
fChi3C->At(VZEROcentralityBin);
1181 chi2A =
fSigma2A->At(VZEROcentralityBin);
1182 chi2C =
fSigma2C->At(VZEROcentralityBin);
1183 chi3A =
fSigma3A->At(VZEROcentralityBin);
1184 chi3C =
fSigma3C->At(VZEROcentralityBin);
1185 chi2A = (chi2A > 0) ? 1./chi2A : 1.;
1186 chi2C = (chi2C > 0) ? 1./chi2C : 1.;
1187 chi3A = (chi3A > 0) ? 1./chi3A : 1.;
1188 chi3C = (chi3C > 0) ? 1./chi3C : 1.;
1194 Q2[0] = chi2A*chi2A*qx2a+chi2C*chi2C*qx2c;
1195 Q2[1] = chi2A*chi2A*qy2a+chi2C*chi2C*qy2c;
1196 Q3[0] = chi3A*chi3A*qx3a+chi3C*chi3C*qx3c;
1197 Q3[1] = chi3A*chi3A*qy3a+chi3C*chi3C*qy3c;
1199 comb[0] = .5*TMath::ATan2(Q2[1], Q2[0]);
1200 comb[1] = (1./3.)*TMath::ATan2(Q3[1], Q3[0]);
1202 Double_t _chi(0), _sigma(0), _none(0);
1207 chi2A =
fChi2A->At(VZEROcentralityBin);
1208 chi2C =
fChi2C->At(VZEROcentralityBin);
1209 _chi = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1210 chi2A =
fSigma2A->At(VZEROcentralityBin);
1211 chi2C =
fSigma2C->At(VZEROcentralityBin);
1212 chi2A = (chi2A > 0) ? 1./chi2A : 1.;
1213 chi2C = (chi2C > 0) ? 1./chi2C : 1.;
1214 _sigma = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1218 _chi = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1219 chi2A =
fSigma2A->At(VZEROcentralityBin);
1220 chi2C =
fSigma2C->At(VZEROcentralityBin);
1221 chi2A = (chi2A > 0) ? 1./chi2A : 1.;
1222 chi2C = (chi2C > 0) ? 1./chi2C : 1.;
1223 _sigma = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1227 _sigma = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1228 chi2A =
fChi2A->At(VZEROcentralityBin);
1229 chi2C =
fChi2C->At(VZEROcentralityBin);
1230 _chi = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1235 _none = .5*TMath::ATan2(qy2a+qy2c,qx2a+qx2c);
1247 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1248 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1263 qx2+= TMath::Cos(2.*track->Phi());
1264 qy2+= TMath::Sin(2.*track->Phi());
1265 qx3+= TMath::Cos(3.*track->Phi());
1266 qy3+= TMath::Sin(3.*track->Phi());
1269 tpc[0] = .5*TMath::ATan2(qy2, qx2);
1270 tpc[1] = (1./3.)*TMath::ATan2(qy3, qx3);
1276 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1277 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1298 for(
Int_t iTPC(0); iTPC < iTracks; iTPC++) {
1299 AliVTrack* track =
static_cast<AliVTrack*
>(
fTracks->At(iTPC));
1301 if(track->Eta() < 0 ) {
1302 qx2a+= TMath::Cos(2.*track->Phi());
1303 qy2a+= TMath::Sin(2.*track->Phi());
1304 qx3a+= TMath::Cos(3.*track->Phi());
1305 qy3a+= TMath::Sin(3.*track->Phi());
1306 }
else if (track->Eta() > 0) {
1307 qx2b+= TMath::Cos(2.*track->Phi());
1308 qy2b+= TMath::Sin(2.*track->Phi());
1309 qx3b+= TMath::Cos(3.*track->Phi());
1310 qy3b+= TMath::Sin(3.*track->Phi());
1314 Double_t tpca2(.5*TMath::ATan2(qy2a, qx2a));
1315 Double_t tpca3((1./3.)*TMath::ATan2(qy3a, qx3a));
1316 Double_t tpcb2(.5*TMath::ATan2(qy2b, qx2b));
1317 Double_t tpcb3((1./3.)*TMath::ATan2(qy3b, qx3b));
1333 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1334 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1339 Qa2[0] = 0.; Qc2[0] = 0.; Qa3[0] = 0.; Qc3[0] = 0.;
1340 Qa2[1] = 0.; Qc2[1] = 0.; Qa3[1] = 0.; Qc3[1] = 0.;
1342 Double_t QaX(0), QaY(0), QcX(0), QcY(0);
1343 for(
Int_t i(0); i < 64; i++) {
1345 phi = TMath::PiOver4()*(0.5+i%8);
1346 mult = InputEvent()->GetVZEROData()->GetMultiplicity(i);
1357 QcX += mult*TMath::Cos(2.*phi);
1358 QcY += mult*TMath::Sin(2.*phi);
1368 QaX += mult*TMath::Cos(2.*phi);
1369 QaY += mult*TMath::Sin(2.*phi);
1382 fHistEPBC->Fill(.5*TMath::ATan2(QaY+QcY, QaX+QcX));
1406 Qa2[0] = (Qa2[0] - Qx2amean)/Qx2arms;
1407 Qa2[1] = (Qa2[1] - Qy2amean)/Qy2arms;
1408 Qc2[0] = (Qc2[0] - Qx2cmean)/Qx2crms;
1409 Qc2[1] = (Qc2[1] - Qy2cmean)/Qy2crms;
1411 Qa3[0] = (Qa3[0] - Qx3amean)/Qx3arms;
1412 Qa3[1] = (Qa3[1] - Qy3amean)/Qy3arms;
1413 Qc3[0] = (Qc3[0] - Qx3cmean)/Qx3crms;
1414 Qc3[1] = (Qc3[1] - Qy3cmean)/Qy3crms;
1418 fHistQxV0a->Fill(Qa2[0], VZEROcentralityBin);
1419 fHistQyV0a->Fill(Qa2[1], VZEROcentralityBin);
1420 fHistQxV0c->Fill(Qc2[0], VZEROcentralityBin);
1421 fHistQyV0c->Fill(Qc2[0], VZEROcentralityBin);
1422 fHistEP->Fill(.5*TMath::ATan2(Qa2[1]+Qc2[1], Qa2[0]+Qc2[0]));
1431 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1432 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1451 chi2A =
fChi2A->At(VZEROcentralityBin);
1452 chi2C =
fChi2C->At(VZEROcentralityBin);
1453 chi3A =
fChi3A->At(VZEROcentralityBin);
1454 chi3C =
fChi3C->At(VZEROcentralityBin);
1457 chi2A =
fSigma2A->At(VZEROcentralityBin);
1458 chi2C =
fSigma2C->At(VZEROcentralityBin);
1459 chi3A =
fSigma3A->At(VZEROcentralityBin);
1460 chi3C =
fSigma3C->At(VZEROcentralityBin);
1461 chi2A = (chi2A > 0) ? 1./chi2A : 1.;
1462 chi2C = (chi2C > 0) ? 1./chi2C : 1.;
1463 chi3A = (chi3A > 0) ? 1./chi3A : 1.;
1464 chi3C = (chi3C > 0) ? 1./chi3C : 1.;
1470 Double_t qx2a(QA2[0]), qy2a(QA2[1]), qx2c(QC2[0]), qy2c(QC2[1]);
1472 Q2[0] = chi2A*chi2A*QA2[0]+chi2C*chi2C*QC2[0];
1473 Q2[1] = chi2A*chi2A*QA2[1]+chi2C*chi2C*QC2[1];
1474 Q3[0] = chi3A*chi3A*QA3[0]+chi3C*chi3C*QC3[0];
1475 Q3[1] = chi3A*chi3A*QA3[1]+chi3C*chi3C*QC3[1];
1477 Double_t _chi(0), _sigma(0), _none(0);
1482 chi2A =
fChi2A->At(VZEROcentralityBin);
1483 chi2C =
fChi2C->At(VZEROcentralityBin);
1484 _chi = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1485 chi2A =
fSigma2A->At(VZEROcentralityBin);
1486 chi2C =
fSigma2C->At(VZEROcentralityBin);
1487 chi2A = (chi2A > 0) ? 1./chi2A : 1.;
1488 chi2C = (chi2C > 0) ? 1./chi2C : 1.;
1489 _sigma = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1493 _chi = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1494 chi2A =
fSigma2A->At(VZEROcentralityBin);
1495 chi2C =
fSigma2C->At(VZEROcentralityBin);
1496 chi2A = (chi2A > 0) ? 1./chi2A : 1.;
1497 chi2C = (chi2C > 0) ? 1./chi2C : 1.;
1498 _sigma = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1502 _sigma = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1503 chi2A =
fChi2A->At(VZEROcentralityBin);
1504 chi2C =
fChi2C->At(VZEROcentralityBin);
1505 _chi = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1510 _none = .5*TMath::ATan2(qy2a+qy2c,qx2a+qx2c);
1521 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_2
1522 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1524 pt = 0; eta = 0; phi = 0;
1525 Float_t etaJet(999), phiJet(999), dJet(999);
1527 etaJet = jet->
Eta();
1528 phiJet = jet->
Phi();
1534 if(maxPhi > TMath::TwoPi()) maxPhi = TMath::TwoPi();
1535 if(minPhi < 0 ) minPhi = 0.;
1537 Int_t attempts(1000);
1541 phi =
gRandom->Uniform(minPhi, maxPhi);
1543 dJet = TMath::Sqrt((etaJet-eta)*(etaJet-eta)+(phiJet-phi)*(phiJet-phi));
1545 else if (attempts == 0) {
1546 printf(
" > No random cone after 1000 tries, giving up ... !\n");
1552 tracksCont->ResetCurrentID();
1555 Float_t etaTrack(track->Eta()), phiTrack(track->Phi());
1557 if(TMath::Abs(phiTrack-phi) > TMath::Abs(phiTrack - phi + TMath::TwoPi())) phiTrack+=TMath::TwoPi();
1558 if(TMath::Abs(phiTrack-phi) > TMath::Abs(phiTrack - phi - TMath::TwoPi())) phiTrack-=TMath::TwoPi();
1559 if(TMath::Sqrt(TMath::Abs((etaTrack-eta)*(etaTrack-eta)+(phiTrack-phi)*(phiTrack-phi))) <=
GetJetRadius()) pt += track->Pt();
1565 TLorentzVector momentum;
1566 clusterCont->ResetCurrentID();
1569 cluster->GetMomentum(momentum, const_cast<Double_t*>(
fVertex));
1570 Float_t etaClus(momentum.Eta()), phiClus(momentum.Phi());
1572 if(TMath::Abs(phiClus-phi) > TMath::Abs(phiClus - phi + TMath::TwoPi())) phiClus+=TMath::TwoPi();
1573 if(TMath::Abs(phiClus-phi) > TMath::Abs(phiClus - phi - TMath::TwoPi())) phiClus-=TMath::TwoPi();
1574 if(TMath::Sqrt(TMath::Abs((etaClus-eta)*(etaClus-eta)+(phiClus-phi)*(phiClus-phi))) <=
GetJetRadius()) pt += momentum.Pt();
1582 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1583 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1585 Double_t reQ(0), imQ(0), modQ(0), M11(0), M(0);
1587 QCnQnk(harm, 1, reQ, imQ);
1588 modQ = reQ*reQ+imQ*imQ;
1590 return (M11 > 0) ? ((modQ -
QCnS(1,2))/M11) : -999;
1592 QCnQnk(harm, 0, reQ, imQ);
1593 modQ = reQ*reQ+imQ*imQ;
1595 return (M > 1) ? (modQ - M)/(M*(M-1)) : -999;
1600 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1601 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1603 Double_t reQn1(0), imQn1(0), reQ2n2(0), imQ2n2(0), reQn3(0), imQn3(0), M1111(0), M(0);
1604 Double_t a(0), b(0),
c(0), d(0), e(0), f(0), g(0);
1606 QCnQnk(harm, 1, reQn1, imQn1);
1607 QCnQnk(harm*2, 2, reQ2n2, imQ2n2);
1608 QCnQnk(harm, 3, reQn3, imQn3);
1610 a = (reQn1*reQn1+imQn1*imQn1)*(reQn1*reQn1+imQn1*imQn1);
1611 b = reQ2n2*reQ2n2 + imQ2n2*imQ2n2;
1612 c = -2.*(reQ2n2*reQn1*reQn1-reQ2n2*imQn1*imQn1+2.*imQ2n2*reQn1*imQn1);
1613 d = 8.*(reQn3*reQn1+imQn3*imQn1);
1614 e = -4.*
QCnS(1,2)*(reQn1*reQn1+imQn1*imQn1);
1618 return (M1111 > 0) ? (a+b+
c+d+e+f+g)/M1111 : -999;
1620 Double_t reQn(0), imQn(0), reQ2n(0), imQ2n(0);
1621 QCnQnk(harm, 0, reQn, imQn);
1622 QCnQnk(harm*2, 0, reQ2n, imQ2n);
1625 if(M < 4)
return -999;
1626 a = (reQn*reQn+imQn*imQn)*(reQn*reQn+imQn*imQn);
1627 b = reQ2n*reQ2n + imQ2n*imQ2n;
1628 c = -2.*(reQ2n*reQn*reQn-reQ2n*imQn*imQn+2.*imQ2n*reQn*imQn);
1629 e = -4.*(M-2)*(reQn*reQn+imQn*imQn);
1631 return (a+b+
c+e+f)/(M*(M-1)*(M-2)*(M-3));
1636 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1637 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1642 for(
Int_t iTPC(0); iTPC < iTracks; iTPC++) {
1643 AliVTrack* track =
static_cast<AliVTrack*
>(
fTracks->At(iTPC));
1647 reQ += TMath::Power(track->Pt(), k) * TMath::Cos(((
double)n)*track->Phi());
1648 imQ += TMath::Power(track->Pt(), k) * TMath::Sin(((
double)n)*track->Phi());
1657 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1658 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1660 Int_t iPois(pois->GetEntriesFast());
1662 for(
Int_t i(0); i < iPois; i++) {
1663 for(
Int_t ptBin(0); ptBin < ptBins->GetSize()-1; ptBin++) {
1664 AliVTrack* poi =
static_cast<AliVTrack*
>(pois->At(i));
1666 if(poi->Pt() >= ptBins->At(ptBin) && poi->Pt() < ptBins->At(ptBin+1)) {
1668 repn[ptBin]+=TMath::Cos(((
double)n)*poi->Phi());
1669 impn[ptBin]+=TMath::Sin(((
double)n)*poi->Phi());
1671 reqn[ptBin]+=TMath::Cos(((
double)n)*poi->Phi());
1672 imqn[ptBin]+=TMath::Sin(((
double)n)*poi->Phi());
1679 for(
Int_t i(0); i < iPois; i++) {
1680 for(
Int_t ptBin(0); ptBin < ptBins->GetSize()-1; ptBin++) {
1685 if(pt >= ptBins->At(ptBin) && pt < ptBins->At(ptBin+1)) {
1686 repn[ptBin]+=TMath::Cos(((
double)n)*poi->
Phi());
1687 impn[ptBin]+=TMath::Sin(((
double)n)*poi->
Phi());
1698 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1699 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1701 if(!
fTracks || i <= 0 || j <= 0)
return -999;
1704 for(
Int_t iTPC(0); iTPC < iTracks; iTPC++) {
1705 AliVTrack* track =
static_cast<AliVTrack*
>(
fTracks->At(iTPC));
1707 Sij+=TMath::Power(track->Pt(), j);
1709 return TMath::Power(Sij, i);
1714 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1715 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1722 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1723 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1730 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1731 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1739 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1740 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1758 if( c2 < 0 ) c2 = -1.*TMath::Sqrt(-1.*c2);
1759 if( c3 < 0 ) c3 = -1.*TMath::Sqrt(-1.*c3);
1773 default :
return kFALSE;
1793 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
1794 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1796 Int_t freeParams(2);
1817 }
else if (!
QCnRecovery(psi2, psi3))
return kFALSE;
1843 }
else if (!
QCnRecovery(psi2, psi3))
return kFALSE;
1869 case kTPC : detector+=
"TPC";
1871 case kVZEROA : detector+=
"VZEROA";
1873 case kVZEROC : detector+=
"VZEROC";
1877 case kFixedEP : detector+=
"FixedEP";
1885 if(iTracks <= 0 || fLocalRho->GetVal() <= 0 )
return kFALSE;
1896 Double_t lowBound(0.), upBound(TMath::TwoPi());
1904 _tempSwap = TH1F(
"_tempSwap",
"_tempSwap", TMath::CeilNint(TMath::Sqrt(
fNAcceptedTracks)), lowBound, upBound);
1910 Double_t totalpts(0.), totalptsquares(0.), totalns(0.);
1911 for(
Int_t i(0); i < iTracks; i++) {
1912 AliVTrack* track =
static_cast<AliVTrack*
>(
fTracks->At(i));
1916 _tempSwap.Fill(track->Phi(), track->Pt());
1918 totalpts += track->Pt();
1919 totalptsquares += track->Pt()*track->Pt();
1921 _tempSwapN.Fill(track->Phi());
1924 else _tempSwap.Fill(track->Phi());
1931 if(totalns < 2)
return kFALSE;
1932 for(
Int_t l = 0; l < _tempSwap.GetNbinsX(); l++) {
1933 if(_tempSwapN.GetBinContent(l+1) == 0) {
1934 _tempSwap.SetBinContent(l+1,0);
1935 _tempSwap.SetBinError(l+1,0);
1938 Double_t vartimesnsq = totalptsquares*totalns - totalpts*totalpts;
1939 Double_t variance = vartimesnsq/(totalns*(totalns-1.));
1940 Double_t SDOMSq = variance / _tempSwapN.GetBinContent(l+1);
1941 Double_t SDOMSqOverMeanSq = SDOMSq * _tempSwapN.GetBinContent(l+1) * _tempSwapN.GetBinContent(l+1) / (_tempSwapN.GetBinContent(l+1) * _tempSwapN.GetBinContent(l+1));
1942 Double_t poissonfrac = 1./_tempSwapN.GetBinContent(l+1);
1943 Double_t vartotalfrac = SDOMSqOverMeanSq + poissonfrac;
1944 Double_t vartotal = vartotalfrac * _tempSwap.GetBinContent(l+1) * _tempSwap.GetBinContent(l+1);
1945 if(vartotal > 0.0001) _tempSwap.SetBinError(l+1,TMath::Sqrt(vartotal));
1947 _tempSwap.SetBinContent(l+1,0);
1948 _tempSwap.SetBinError(l+1,0);
1975 Double_t cos2(0), sin2(0), cos3(0), sin3(0), sumPt(0);
1976 for(
Int_t i(0); i < iTracks; i++) {
1977 AliVTrack* track =
static_cast<AliVTrack*
>(
fTracks->At(i));
1979 sumPt += track->Pt();
1980 cos2 += track->Pt()*TMath::Cos(2*
PhaseShift(track->Phi()-psi2));
1981 sin2 += track->Pt()*TMath::Sin(2*
PhaseShift(track->Phi()-psi2));
1982 cos3 += track->Pt()*TMath::Cos(3*
PhaseShift(track->Phi()-psi3));
1983 sin3 += track->Pt()*TMath::Sin(3*
PhaseShift(track->Phi()-psi3));
1994 Int_t _bins = _tempSwap.GetXaxis()->GetNbins();
1995 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());
1997 _tempFit->SetParameter(3, 0.1);
1998 _tempFit->FixParameter(1, 1.);
1999 _tempFit->FixParameter(2, 2.);
2000 _tempFit->FixParameter(5, 3.);
2003 _tempFit->SetParameter(7, 0.1);
2005 for(
int _binsI = 0; _binsI < _bins*_bins; _binsI++) _tempSwap.Fill(_tempFit->GetRandom());
2010 Int_t NDF(_tempSwap.GetXaxis()->GetNbins()-freeParams);
2011 if(NDF == 0 || (
float)NDF <= 0.)
return kFALSE;
2035 CDF = CDFKolmogorov;
2056 if(CDFControl > CDF) {
2072 static Int_t didacticCounterBest(0);
2073 TProfile* didacticProfile = (TProfile*)_tempSwap.Clone(Form(
"Fit_%i_1-CDF_%.3f_cen_%i_%s", didacticCounterBest, CDF,
fInCentralitySelection, detector.Data()));
2079 TF1* v0(
new TF1(
"dfit_kV2",
"[0]", 0, TMath::TwoPi()));
2080 v0->SetParameter(0, didacticFit->GetParameter(0));
2081 v0->SetLineColor(kMagenta);
2082 v0->SetLineStyle(7);
2083 didacticProfile->GetListOfFunctions()->Add(v0);
2084 TF1* v2(
new TF1(
"dfit_kV2",
"[0]*([1]+[2]*[3]*TMath::Cos([2]*(x-[4])))", 0, TMath::TwoPi()));
2085 v2->SetParameter(0, didacticFit->GetParameter(0));
2086 v2->SetParameter(3, didacticFit->GetParameter(3));
2087 v2->FixParameter(1, 1.);
2088 v2->FixParameter(2, 2.);
2089 v2->FixParameter(4, didacticFit->GetParameter(4));
2090 v2->SetLineColor(kGreen);
2091 didacticProfile->GetListOfFunctions()->Add(v2);
2092 TF1* v3(
new TF1(
"dfit_kV3",
"[0]*([1]+[2]*[3]*TMath::Cos([5]*(x-[4])))", 0, TMath::TwoPi()));
2093 v3->SetParameter(0, didacticFit->GetParameter(0));
2094 v3->SetParameter(3, didacticFit->GetParameter(7));
2095 v3->FixParameter(1, 1.);
2096 v3->FixParameter(2, 2.);
2097 v3->FixParameter(4, didacticFit->GetParameter(6));
2098 v3->FixParameter(5, 3.);
2099 v3->SetLineColor(kCyan);
2100 didacticProfile->GetListOfFunctions()->Add(v3);
2104 didacticProfile->GetListOfFunctions()->Add(didacticFit);
2105 didacticProfile->GetYaxis()->SetTitle(
"#frac{d #sum #it{p}_{T}}{d #varphi} [GeV/#it{c}]");
2106 didacticProfile->GetXaxis()->SetTitle(
"#varphi");
2108 didacticCounterBest++;
2109 TH2F* didacticSurface =
BookTH2F(Form(
"surface_%s", didacticProfile->GetName()),
"#phi",
"#eta", 50, 0, TMath::TwoPi(), 50, -1, 1, -1, kFALSE);
2110 for(
Int_t i(0); i < iTracks; i++) {
2111 AliVTrack* track =
static_cast<AliVTrack*
>(
fTracks->At(i));
2113 if(
fUsePtWeight) didacticSurface->Fill(track->Phi(), track->Eta(), track->Pt());
2114 else didacticSurface->Fill(track->Phi(), track->Eta());
2118 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);
2119 f2->SetParameters(excludeInPt/3.,excludeInPhi,.1,excludeInEta,.1);
2120 didacticSurface->GetListOfFunctions()->Add(f2);
2129 static Int_t didacticCounterWorst(0);
2131 TProfile* didacticProfile = (TProfile*)_tempSwap.Clone(Form(
"Fit_%i_1-CDF_%.3f_cen_%i_%s", didacticCounterWorst, CDF,
fInCentralitySelection, detector.Data() ));
2133 didacticProfile->GetListOfFunctions()->Add(didacticFit);
2135 didacticCounterWorst++;
2157 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2158 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2169 if(aodEvent) trigger = ((AliVAODHeader*)(aodEvent->GetHeader()))->GetOfflineTrigger();
2171 if((trigger & AliVEvent::kMB) == 0)
return kFALSE;
2181 if( (!esdEvent) || (TMath::Abs(esdEvent->GetPrimaryVertexSPD()->GetZ() - esdEvent->GetPrimaryVertex()->GetZ()) > .5) )
return kFALSE;
2185 if( (!aodEvent) || (TMath::Abs(aodEvent->GetPrimaryVertexSPD()->GetZ() - aodEvent->GetPrimaryVertex()->GetZ()) > .5) )
return kFALSE;
2189 fCent = InputEvent()->GetCentrality()->GetCentralityPercentile(
"V0M");
2201 if(
fTracks->GetEntries() < 1)
return kFALSE;
2202 if(
fRho->GetVal() <= 0 )
return kFALSE;
2206 Float_t multTPC(0.), multGlob(0.);
2208 Int_t nGoodTracks(event->GetNumberOfTracks());
2209 for(
Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) {
2210 AliAODTrack* trackAOD =
dynamic_cast<AliAODTrack*
>(
event->GetTrack(iTracks));
2211 if(!trackAOD) AliFatal(
"Not a standard AOD");
2212 if (!trackAOD)
continue;
2213 if (!(trackAOD->TestFilterBit(1)))
continue;
2214 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;
2217 for(
Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) {
2218 AliAODTrack* trackAOD =
dynamic_cast<AliAODTrack*
>(
event->GetTrack(iTracks));
2219 if(!trackAOD) AliFatal(
"Not a standard AOD");
2220 if (!trackAOD)
continue;
2221 if (!(trackAOD->TestFilterBit(16)))
continue;
2222 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;
2224 Double_t bCov[3] = {-99., -99., -99.};
2225 AliAODTrack copy(*trackAOD);
2226 if (!(copy.PropagateToDCA(event->GetPrimaryVertex(),
event->GetMagneticField(), 100., b, bCov)))
continue;
2227 if ((TMath::Abs(b[0]) > 0.3) || (TMath::Abs(b[1]) > 0.3))
continue;
2230 if(! (multTPC > (-40.3+1.22*multGlob) && multTPC < (32.1+1.59*multGlob)))
return kFALSE;
2240 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2241 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2255 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_2
2256 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2280 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2281 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2291 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_
2292 printf(
"\n > TASK %s CANNOT IDENTIFY RUN - CONFIGURATION COULD BE INCORRECT < \n", GetName());
2299 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2300 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2302 Int_t iTracks(
fTracks->GetEntriesFast()), iAcceptedTracks(0);
2303 for(
Int_t i(0); i < iTracks; i++) {
2304 AliVTrack* track =
static_cast<AliVTrack*
>(
fTracks->At(i));
2316 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2317 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2321 TLorentzVector clusterLorentzVector;
2322 for(
Int_t i(0); i < iClusters; i++) {
2325 cluster->GetMomentum(clusterLorentzVector, const_cast<Double_t*>(
fVertex));
2336 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2337 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2339 Double_t TRK(InputEvent()->GetCentrality()->GetCentralityPercentile(
"TRK"));
2340 Double_t V0M(InputEvent()->GetCentrality()->GetCentralityPercentile(
"V0M"));
2366 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2367 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2377 for(
Int_t i(0); i < iJets; i++) {
2388 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2389 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2395 Float_t pt(0), eta(0), phi(0);
2430 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2431 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2436 trigger = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
2437 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2441 for(
Int_t i(0); i < iJets; i++) {
2482 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_2
2483 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2507 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2508 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2511 fHistVertexz->Fill(vevent->GetPrimaryVertex()->GetZ());
2518 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2519 printf(
"\n > TASK %s CANNOT IDENTIFY RUN - CONFIGURATION COULD BE INCORRECT < \n", GetName());
2532 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_2
2533 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2552 UInt_t MB_EMCEJE(AliVEvent::kMB | AliVEvent::kEMCEJE);
2553 UInt_t CEN_EMCEJE(AliVEvent::kCentral | AliVEvent::kEMCEJE);
2554 UInt_t SEM_EMCEJE(AliVEvent::kSemiCentral | AliVEvent::kEMCEJE);
2555 UInt_t ALL_EMCEJE(AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral | AliVEvent::kEMCEJE);
2556 UInt_t MB_EMCEGA(AliVEvent::kMB | AliVEvent::kEMCEGA);
2557 UInt_t CEN_EMCEGA(AliVEvent::kCentral | AliVEvent::kEMCEGA);
2558 UInt_t SEM_EMCEGA(AliVEvent::kSemiCentral | AliVEvent::kEMCEGA);
2559 UInt_t ALL_EMCEGA(AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral | AliVEvent::kEMCEGA);
2605 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2606 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2663 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2664 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2666 AliAnalysisTaskJetV3::Dump();
2676 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2677 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2686 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2687 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2691 fFitControl =
new TF1(
"controlFit",
"pol0", 0, TMath::TwoPi());
2699 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2700 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2703 printf(
" > Please add fOutputList first < \n");
2707 (cen) ? r =
new TH1F(
"R",
"R", cen->GetSize()-1, cen->GetArray()) : r =
new TH1F(
"R",
"R", 10, 0, 10);
2708 if(!cen) r->GetXaxis()->SetTitle(
"number of centrality bin");
2709 r->GetYaxis()->SetTitle(Form(
"Resolution #Psi_{%i}", h));
2710 for(
Int_t i(0); i < 10; i++) {
2711 TProfile* temp((TProfile*)
fOutputList->FindObject(Form(
"fProfV%iResolution_%i", h, i)));
2713 Double_t a(temp->GetBinContent(3)), b(temp->GetBinContent(5)),
c(temp->GetBinContent(7));
2714 Double_t d(temp->GetBinContent(9)), e(temp->GetBinContent(10)), f(temp->GetBinContent(11));
2715 Double_t _a(temp->GetBinError(3)), _b(temp->GetBinError(5)), _c(temp->GetBinError(7));
2716 Double_t _d(temp->GetBinError(9)), _e(temp->GetBinError(10)), _f(temp->GetBinError(11));
2718 if(a <= 0 || b <= 0 ||
c <= 0 || d <= 0 || e <= 0 || f <= 0)
continue;
2721 r->SetBinContent(1+i, TMath::Sqrt((a*b)/
c));
2722 if(i==0) r->SetNameTitle(
"VZEROA resolution",
"VZEROA resolution");
2723 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;
2724 if(error > 0.) error = TMath::Sqrt(error);
2725 r->SetBinError(1+i, error);
2728 r->SetBinContent(1+i, TMath::Sqrt((a*
c)/b));
2729 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;
2730 if(error > 0.) error = TMath::Sqrt(error);
2731 if(i==0) r->SetNameTitle(
"VZEROC resolution",
"VZEROC resolution");
2732 r->SetBinError(1+i, error);
2735 r->SetBinContent(1+i, TMath::Sqrt((b*
c)/a));
2736 if(i==0) r->SetNameTitle(
"TPC resolution",
"TPC resolution");
2737 r->SetBinError(1+i, TMath::Sqrt(_a*_a+_b*_b+_c*_c));
2740 r->SetBinContent(1+i, TMath::Sqrt((d*e)/f));
2741 if(i==0) r->SetNameTitle(
"VZEROComb resolution",
"VZEROComb resolution");
2742 r->SetBinError(1+i, TMath::Sqrt(_d*_d+_e*_e+_f*_f));
2754 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2755 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2759 printf(
" > Couldn't find resolution < \n");
2762 Double_t res(1./r->GetBinContent(1+r->FindBin(c)));
2763 TF1* line =
new TF1(
"line",
"pol0", 0, 200);
2764 line->SetParameter(0, res);
2774 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2775 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2785 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2786 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2788 Double_t r(refCumulants->GetBinContent(h-1));
2789 if(r > 0) r = TMath::Sqrt(r);
2790 TH1F* qc =
new TH1F(Form(
"QC2v%i", h), Form(
"QC2v%i", h), ptBins->GetSize()-1, ptBins->GetArray());
2792 for(
Int_t i(0); i < ptBins->GetSize(); i++) {
2794 a = diffCumlants->GetBinContent(1+i);
2795 b = diffCumlants->GetBinError(1+i);
2797 qc->SetBinContent(1+i, c);
2798 (a <= 0 || b <= 0) ? qc->SetBinError(1+i, b) : qc->SetBinError(1+i, TMath::Sqrt(c*c*b*b/(a*a)));
2809 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2810 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2821 Double_t chiC2[] = {0.771423, 1.10236, 1.38116, 1.48077, 1.31964, 1.10236, 0.674622, 0.600403, 0.273865};
2822 Double_t chiA2[] = {0.582214, 0.674622, 0.832214, 0.873962, 0.832214, 0.771423, 0.637146, 0.424255, 0.257385};
2823 Double_t chiC3[] = {0.493347, 0.493347, 0.458557, 0.407166, 0.356628, 0.273865, 0.176208, 6.10352e-05, 6.10352e-05};
2824 Double_t chiA3[] = {0.356628, 0.373474, 0.356628, 0.306702, 0.24115, 0.192322, 0.127869, 6.10352e-05, 6.10352e-05};
2831 Double_t sigmaC2[] = {0.000210563,0.000554248,0.00126934,0.00138031,0.00124522,0.000948494,0.00115442,0.000626186,0.000161246};
2832 Double_t sigmaA2[] = {0.000195393,0.000509235,0.00112734,0.00121416,0.00110601,0.00086572,0.0010805,0.000579927,0.00013517};
2833 Double_t sigmaC3[] = {0.000131573,0.000317261,0.000783971,0.000885244,0.000763271,0.000542612,0.000647701,0.000524767,0};
2834 Double_t sigmaA3[] = {0.000123304,0.000293338,0.000714463,0.000798547,0.00069079,0.000503398,0.000615878,0.000489984,0};
2842 if(!
fOADB ||
fOADB->IsZombie())
fOADB = TFile::Open(
"$ALICE_PHYSICS/OADB/PWGCF/VZERO/VZEROcalibEP.root");
2843 if(
fOADB->IsZombie()) {
2844 printf(
"OADB file $ALICE_PHYSICS/OADB/PWGCF/VZERO/VZEROcalibEP.root cannot be opened, CALIBRATION FAILED !");
2848 AliOADBContainer *cont = (AliOADBContainer*)
fOADB->Get(
"hMultV0BefCorr");
2851 printf(
"OADB object hMultV0BefCorr is not available in the file\n");
2855 if(!(cont->GetObject(run))){
2857 printf(
"OADB object hMultVZEROBefCorr is not available for run %i (used default run 137366)\n",run);
2863 AliFatal(Form(
"%s: Fatal error, couldn't read fVZEROgainEqualization from OADB object < \n", GetName()));
2867 TF1* fpol0 =
new TF1(
"fpol0",
"pol0");
2874 for(
Int_t iside=0;iside<2;iside++){
2875 for(
Int_t icoord=0;icoord<2;icoord++){
2876 for(
Int_t i=0;i < 9;i++){
2878 if(iside==0 && icoord==0)
2879 snprintf(namecont,100,
"hQxc2_%i",i);
2880 else if(iside==1 && icoord==0)
2881 snprintf(namecont,100,
"hQxa2_%i",i);
2882 else if(iside==0 && icoord==1)
2883 snprintf(namecont,100,
"hQyc2_%i",i);
2884 else if(iside==1 && icoord==1)
2885 snprintf(namecont,100,
"hQya2_%i",i);
2887 cont = (AliOADBContainer*)
fOADB->Get(namecont);
2889 printf(
"OADB object %s is not available in the file\n",namecont);
2893 if(!(cont->GetObject(run))){
2894 printf(
"OADB object %s is not available for run %i (used run 137366)\n",namecont,run);
2899 fMeanQ[i][iside][icoord] = ((TH1F *) cont->GetObject(run))->GetMean();
2900 fWidthQ[i][iside][icoord] = ((TH1F *) cont->GetObject(run))->GetRMS();
2903 if(iside==0 && icoord==0)
2904 snprintf(namecont,100,
"hQxc3_%i",i);
2905 else if(iside==1 && icoord==0)
2906 snprintf(namecont,100,
"hQxa3_%i",i);
2907 else if(iside==0 && icoord==1)
2908 snprintf(namecont,100,
"hQyc3_%i",i);
2909 else if(iside==1 && icoord==1)
2910 snprintf(namecont,100,
"hQya3_%i",i);
2912 cont = (AliOADBContainer*)
fOADB->Get(namecont);
2914 printf(
"OADB object %s is not available in the file\n",namecont);
2918 if(!(cont->GetObject(run))){
2919 printf(
"OADB object %s is not available for run %i (used run 137366)\n",namecont,run);
2923 fMeanQv3[i][iside][icoord] = ((TH1F *) cont->GetObject(run))->GetMean();
2924 fWidthQv3[i][iside][icoord] = ((TH1F *) cont->GetObject(run))->GetRMS();
2936 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2937 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2948 Double_t chiC2[] = {0.771423, 1.10236, 1.38116, 1.48077, 1.31964, 1.10236, 0.674622, 0.600403, 0.273865};
2949 Double_t chiA2[] = {0.582214, 0.674622, 0.832214, 0.873962, 0.832214, 0.771423, 0.637146, 0.424255, 0.257385};
2950 Double_t chiC3[] = {0.493347, 0.493347, 0.458557, 0.407166, 0.356628, 0.273865, 0.176208, 6.10352e-05, 6.10352e-05};
2951 Double_t chiA3[] = {0.356628, 0.373474, 0.356628, 0.306702, 0.24115, 0.192322, 0.127869, 6.10352e-05, 6.10352e-05};
2958 Double_t sigmaC2[] = {7.50161e-05,0.000186685,0.000283528,0.000251427,0.000258122,2.26943e-05,0,0,0};
2959 Double_t sigmaA2[] = {0.000633027,0.000598435,0.000520023,0.000602312,0.00141679,0.00351296,0,0,0};
2960 Double_t sigmaC3[] = {4.69125e-05,0.000106922,0.000177552,0.000149093,0.000149436,0,0,0,0};
2961 Double_t sigmaA3[] = {0.000651813,0.000686852,0.000713499,0.000759663,0.00153532,0,0,0,0};
2972 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2973 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2975 Float_t v0Centr(InputEvent()->GetCentrality()->GetCentralityPercentile(
"V0M"));
2976 if(v0Centr < 5)
return 0;
2977 else if(v0Centr < 10)
return 1;
2978 else if(v0Centr < 20)
return 2;
2979 else if(v0Centr < 30)
return 3;
2980 else if(v0Centr < 40)
return 4;
2981 else if(v0Centr < 50)
return 5;
2982 else if(v0Centr < 60)
return 6;
2983 else if(v0Centr < 70)
return 7;
2991 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
2992 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2998 for(
Int_t i(0); i < iJets; i++) {
3001 if(jet->
Pt() > pt) {
3003 pt = leadingJet->
Pt();
3010 for(
Int_t i(0); i < iJets; i++) {
3015 if((jet->
Pt()-jet->
Area()*rho) > pt) {
3017 pt = (leadingJet->
Pt()-jet->
Area()*rho);
3026 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
3027 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
3033 AliVParticle* leadingTrack(0x0);
3034 for(
Int_t i(0); i < iTracks; i++) {
3035 AliVParticle* vp(static_cast<AliVParticle*>(jet->
TrackAt(i,
fTracksCont->GetArray())));
3036 if(vp && (vp->Pt() > maxPt)) {
3041 return leadingTrack;
3046 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
3047 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
3051 TH1F* temp((TH1F*)hist->Clone(Form(
"EP_weights_cen_%i", c)));
3052 Double_t integral(hist->Integral()/hist->GetNbinsX());
3054 for(
Int_t i(0); i < hist->GetNbinsX(); i++) {
3055 temp->SetBinError(1+i, 0.);
3056 temp->SetBinContent(1+i, integral/hist->GetBinContent(1+i));
3063 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1
3064 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
3078 "kMUL7 kMuonLikePB",
3079 "kMUU7 kMuonUnlikePB",
3083 "kPHI7 kPHI8 kPHOSPb",
3093 "kMuonSingleHighPt8",
3095 "kMuonUnlikeLowPt8",
3096 "kMuonUnlikeLowPt0",
3099 TString notTriggered =
"not fired";
3100 printf(
" > trigger is %u \n ", trigger);
3103 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());
3106 printf(
" ====== accepted trigger combinations ======= \n");
3107 UInt_t MB_EMCEJE(AliVEvent::kMB | AliVEvent::kEMCEJE);
3108 UInt_t CEN_EMCEJE(AliVEvent::kCentral | AliVEvent::kEMCEJE);
3109 UInt_t SEM_EMCEJE(AliVEvent::kSemiCentral | AliVEvent::kEMCEJE);
3110 UInt_t ALL_EMCEJE(AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral | AliVEvent::kEMCEJE);
3111 UInt_t MB_EMCEGA(AliVEvent::kMB | AliVEvent::kEMCEGA);
3112 UInt_t CEN_EMCEGA(AliVEvent::kCentral | AliVEvent::kEMCEGA);
3113 UInt_t SEM_EMCEGA(AliVEvent::kSemiCentral | AliVEvent::kEMCEGA);
3114 UInt_t ALL_EMCEGA(AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral | AliVEvent::kEMCEGA);
3115 if(trigger == 0) printf(
"(trigger == 0)\n");
3116 if(trigger & AliVEvent::kAny) printf(
"(trigger & AliVEvent::kAny)\n");
3117 if(trigger & AliVEvent::kAnyINT) printf(
"(trigger & AliVEvent::kAnyINT\n");
3118 if(trigger & AliVEvent::kMB) printf(
"(trigger & AliVEvent::kMB)\n");
3119 if(trigger & AliVEvent::kCentral) printf(
"(trigger & AliVEvent::kCentral)\n");
3120 if(trigger & AliVEvent::kSemiCentral) printf(
"(trigger & AliVEvent::kSemiCentral)\n");
3121 if(trigger & AliVEvent::kEMCEJE) printf(
"(trigger & AliVEvent::kEMCEJE)\n");
3122 if(trigger & AliVEvent::kEMCEGA) printf(
"(trigger & AliVEvent::kEMCEGA)\n");
3123 if((trigger & MB_EMCEJE) == MB_EMCEJE) printf(
"(trigger & MB_EMCEJE) == MB_EMCEJE)\n");
3124 if((trigger & CEN_EMCEJE) == CEN_EMCEJE) printf(
"(trigger & CEN_EMCEJE) == CEN_EMCEJE)\n");
3125 if((trigger & SEM_EMCEJE) == SEM_EMCEJE) printf(
"(trigger & SEM_EMCEJE) == SEM_EMCEJE)\n");
3126 if((trigger & ALL_EMCEJE) == ALL_EMCEJE) printf(
"(trigger & ALL_EMCEJE) == ALL_EMCEJE)\n");
3127 if((trigger & MB_EMCEGA) == MB_EMCEGA) printf(
"(trigger & MB_EMCEGA) == MB_EMCEGA)\n");
3128 if((trigger & CEN_EMCEGA) == CEN_EMCEGA) printf(
"(trigger & CEN_EMCEGA) == CEN_EMCEGA)\n");
3129 if((trigger & SEM_EMCEGA) == SEM_EMCEGA) printf(
"(trigger & SEM_EMCEGA) == SEM_EMCEGA)\n");
3130 if((trigger & ALL_EMCEGA) == ALL_EMCEGA) printf(
"(trigger & ALL_EMCEGA) == ALL_EMCEGA)\n");
3138 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());
3141 dNdphi->SetParameter(0, v2);
3142 dNdphi->SetParameter(2, v3);
3143 dNdphi->SetParameter(4, v4);
3148 dNdphi->SetParameter(1,
gRandom->Uniform(-TMath::Pi()/2.,TMath::Pi()/2.));
3149 dNdphi->SetParameter(3,
gRandom->Uniform(-TMath::Pi()/3.,TMath::Pi()/3.));
3150 dNdphi->SetParameter(5,
gRandom->Uniform(-TMath::Pi()/4.,TMath::Pi()/4.));
3154 for(
Int_t j(0); j < 100; j++) {
3155 Double_t x = dNdphi->GetRandom(0, TMath::TwoPi());
3156 qx+=TMath::Cos(2.*x);
3157 qy+=TMath::Sin(2.*x);
3159 Double_t ep(TMath::ATan2(qy,qx)/2.);
3162 for(
Int_t j(0); j < 500; j++) {
3163 Double_t x(dNdphi->GetRandom(0, TMath::TwoPi())-ep);
3166 (x > TMath::Pi()/4. && x < 3*TMath::Pi()/4.) ? out++ : in++;
3168 r += TMath::Cos(2.*(ep-dNdphi->GetParameter(1)));
3172 cout <<
" event plane resolution is: " << r << endl;
3175 Double_t ratio = pre*((in-out)/(in+out));
3178 Double_t error2 = (4.*out*out/(TMath::Power(in+out, 4)))*ein*ein+(4.*in*in/(TMath::Power(in+out, 4)))*eout*eout;
3179 error2 = error2*pre*pre;
3180 if(error2 > 0) error2 = TMath::Sqrt(error2);
3182 dNdphi->SetTitle(
"total");
3184 cout <<
"in: " << in <<
"\t out: " << out << endl;
3185 cout <<
"v2: " << ratio <<
"\t error: " << error2 << endl;
3187 TF1* dNdphi2 =
new TF1(
"dNdphi",
"1.+2.*([0]*TMath::Cos(2.*(x-[1])))", 0, 2*TMath::Pi());
3188 TF1* dNdphi3 =
new TF1(
"dNdphi",
"1.+2.*([0]*TMath::Cos(3.*(x-[1])))", 0, 2*TMath::Pi());
3189 TF1* dNdphi4 =
new TF1(
"dNdphi",
"1.+2.*([0]*TMath::Cos(4.*(x-[1])))", 0, 2*TMath::Pi());
3191 dNdphi2->SetParameter(0, dNdphi->GetParameter(0));
3192 dNdphi2->SetParameter(1, dNdphi->GetParameter(1));
3193 dNdphi2->SetLineColor(kBlue);
3194 dNdphi2->SetLineStyle(7);
3195 dNdphi2->SetTitle(
"v_{2}");
3196 dNdphi2->DrawCopy(
"same");
3198 dNdphi3->SetParameter(0, dNdphi->GetParameter(2));
3199 dNdphi3->SetParameter(1, dNdphi->GetParameter(3));
3200 dNdphi3->SetLineColor(kGreen);
3201 dNdphi3->SetLineStyle(7);
3202 dNdphi3->SetTitle(
"v_{3}");
3203 dNdphi3->DrawCopy(
"same");
3205 dNdphi4->SetParameter(0, dNdphi->GetParameter(4));
3206 dNdphi4->SetParameter(1, dNdphi->GetParameter(5));
3207 dNdphi4->SetLineColor(kMagenta);
3208 dNdphi4->SetLineStyle(7);
3209 dNdphi4->SetTitle(
"v_{4}");
3210 dNdphi4->DrawCopy(
"same");
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)
AliRhoParameter * fCachedRho
TList * fOutputListGood
output list
TH2F * fHistDeltaPtDeltaPhi3[10]
rcpt
virtual AliVParticle * GetNextAcceptParticle()
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)
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
Container for particles within the EMCAL framework.
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
AliParticleContainer * GetParticleContainer(Int_t i=0) const
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
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
void CalculateRandomCone(Float_t &pt, Float_t &eta, Float_t &phi, AliParticleContainer *tracksCont, AliClusterContainer *clusterCont=0x0, AliEmcalJet *jet=0x0) 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)
virtual AliVParticle * GetParticle(Int_t i=-1) const
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 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
Byte_t GetTrackType() const
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
Float_t fExcludeLeadingJetsFromFit
Float_t fPercentageOfFits
Bool_t fCreateHisto
whether or not create histograms
TList * fOutputListBad
output list for local analysis
TH2F * fHistMultVsCell
fHistEP
void SetMakeGeneralHistograms(Bool_t g)
Double_t GetParticlePhiMin() const
detectorType fDetectorType
fitModulationType fFitModulationType
accepted tracks for QCn
Base task in the EMCAL jet framework.
Represent a jet reconstructed using the EMCal jet framework.
TH2F * fHistJetPsi3PtRho0[10]
ratio of leading track v2 to jet v2
Int_t GetVZEROCentralityBin() const
TH2F * fHistPsiTPCV0M
psi 2 from combined vzero
TH1F * GetDifferentialQC(TProfile *refCumulants, TProfile *diffCumlants, TArrayD *ptBins, Int_t h)
Int_t GetRunNumber(TString)
TString fFitModulationOptions
TH2F * fHistQxV0a
qx v0a before cuts
TH1F * CorrectForResolutionInt(TH1F *v, detectorType detector, TArrayD *cen, Int_t h=2)
TH2F * fHistEPCorrAvChi[10]
ep correlations
TH3F * fHistPsiVZEROCLeadingJet[10]
correlation vzeroa EP, LJ pt
TH2F * fHistPicoCat2[10]
pico tracks spd hit and refit
void UserCreateOutputObjects()
AliJetContainer * fJetsCont
cluster container
void QCnDiffentialFlowVectors(TClonesArray *pois, TArrayD *ptBins, Bool_t vpart, Double_t *repn, Double_t *impn, Double_t *mp, Double_t *reqn, Double_t *imqn, Double_t *mq, Int_t n)
TH2F * 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=-1, Bool_t append=kTRUE)
AliParticleContainer * fTracksCont
the actual weight of an event
TH3F * fHistJetLJPsi3PtRatio[10]
event plane dependence of jet pt and leading track pt
virtual void UserCreateOutputObjects()
Double_t fMaxCent
max centrality for event selection
TH2F * fHistPsiVZEROAV0M
trigger qa out of plane
TProfile * fHistCentralityPercLost
centrality versus perc out
TH1F * fHistClusterPt[10]
pico tracks wo spd hit wo refit, constrained
TH1F * fHistJetPtBC[10]
pt of found jets (background subtracted)
Double_t QCnS(Int_t i, Int_t j)
Bool_t InitializeAnalysis()
TH2F * fHistQxV0c
qx v0a before cuts
TH3F * fHistJetLJPsi3Pt[10]
event plane dependence of jet pt
TH1 * fVZEROgainEqualization
recentering
Container structure for EMCAL clusters.
TH3F * 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=-1, Bool_t append=kTRUE)
AliClusterContainer * fClusterCont
tracks
AliVCluster * GetNextAcceptCluster()
TH2F * fHistPsiVZEROVV0M
psi 2 from vzero c
TH2F * fHistQyV0aBC
qx v0a before cuts
Float_t fMinDisanceRCtoLJ
undetermined run QA
TH2F * fHistJetPtAreaBC[10]
jet pt versus area
TArrayD * fCentralityClasses
Double_t GetJetRadius() const
TH1F * fHistAnalysisSummary
output list for local analysis
Double_t CalculateQC4(Int_t harm)
AliEmcalJet * fLeadingJet
jets
TH2F * fHistQyV0a
qx v0a before cuts
TH1F * fHistPvalueCDF
correlation p value and reduced chi2
void CalculateQvectorVZERO(Double_t Qa2[2], Double_t Qc2[2], Double_t Qa3[2], Double_t Qc3[2]) const
static Int_t OverlapsWithPlane(Double_t x1, Double_t x2, Double_t a, Double_t b, Double_t c, Double_t d, Double_t e, Double_t phi)