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__);
296 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 297 printf(
" LHC10h data, assuming full acceptance, reading VZERO calibration DB \n ");
312 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 313 printf(
" checking runnumber to adjust acceptance on the fly \n");
336 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 337 printf(
"__FUNC__ %s > replacing rho with cached rho \n ", __func__);
341 Bool_t flaggedAsSemiGood(kFALSE);
344 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 345 printf(
"__FUNC__ %s > semi-good tpc run detected, adjusting acceptance \n ", __func__);
347 flaggedAsSemiGood = kTRUE;
360 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 361 printf(
"__FUNC__ %s > switching to small rho, caching normal rho \n ", __func__);
369 if(!flaggedAsSemiGood) {
385 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 386 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
390 if(dynamic_cast<AliAODEvent*>(InputEvent()))
fDataType =
kAOD;
391 else if(dynamic_cast<AliESDEvent*>(InputEvent()))
fDataType =
kESD;
397 SetModulationFit(
new TF1(
"fit_kV2",
"[0]*([1]+[2]*[3]*TMath::Cos([2]*(x-[4])))", 0, TMath::TwoPi()));
404 SetModulationFit(
new TF1(
"fit_kV3",
"[0]*([1]+[2]*[3]*TMath::Cos([2]*(x-[4])))", 0, TMath::TwoPi()));
411 SetModulationFit(
new TF1(
"fit_kCombined",
"[0]*([1]+[2]*([3]*TMath::Cos([2]*(x-[4]))+[7]*TMath::Cos([5]*(x-[6]))))", 0, TMath::TwoPi()));
431 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 432 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
438 name = Form(
"%s_%i", name, c);
441 title += Form(
";%s;[counts]", x);
442 TH1F* histogram =
new TH1F(name, title.Data(), bins, min, max);
448 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)
451 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 452 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
459 name = Form(
"%s_%i", name, c);
462 title += Form(
";%s;%s", x, y);
463 TH2F* histogram =
new TH2F(name, title.Data(), binsx, minx, maxx, binsy, miny, maxy);
469 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)
472 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 473 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
483 name = Form(
"%s_%i", name, c);
486 title += Form(
";%s;%s;%s", x, y, z);
487 TH3F* histogram =
new TH3F(name, title.Data(), binsx, minx, maxx, binsy, miny, maxy, binsz, minz, maxz);
497 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 498 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
504 Double_t c[] = {0., 20., 40., 60., 80., 100.};
508 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 };
514 fHistMultCorAfterCuts =
new TH2F(
"fHistMultCorAfterCuts",
"TPC vs Global multiplicity (After cuts); Global multiplicity; TPC multiplicity", 100, 0, 3000, 100, 0, 3000);
516 fHistMultvsCentr =
new TH2F(
"fHistMultvsCentr",
"Multiplicity vs centrality; centrality; Multiplicity", 9, -0.5, 100.5, 101, 0, 3000);
521 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};
531 fHistCentralityPercIn =
new TProfile(
"fHistCentralityPercIn",
"fHistCentralityPercIn", 102, -2, 100);
536 Double_t etaMin(-1.), etaMax(1.), phiMin(0.), phiMax(TMath::TwoPi());
560 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);
561 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.);
562 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);
563 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);
564 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);
566 fProfIntegralCorrelations[i] =
new TProfile(Form(
"fProfIntegralCorrelations_%i", i), Form(
"fProfIntegralCorrelations_%i", i), 100, 0, 100);
570 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);
571 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);
572 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);
573 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);
574 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);
576 fHistTriggerQAIn[i] =
BookTH2F(
"fHistTriggerQAIn",
"trigger configuration",
"p_{T}^{jet} (GeV/c) in-plane jets", 16, 0.5, 16.5, 70, -100, 250, i);
577 fHistTriggerQAOut[i] =
BookTH2F(
"fHistTriggerQAOut",
"trigger configuration",
"p_{T}^{jet} (GeV/c) out-of-plane jets", 16, 0.5, 16.5, 70, -100, 250, i);
617 Int_t diff(TMath::Abs(up-low));
619 fHistPsiVZEROAV0M =
BookTH2F(
"fHistPsiVZEROAV0M",
"V0M",
"#Psi_{2, VZEROA}", diff, low, up, 40, -.5*TMath::Pi(), .5*TMath::Pi());
620 fHistPsiVZEROCV0M =
BookTH2F(
"fHistPsiVZEROCV0M",
"V0M",
"#Psi_{2, VZEROC}", diff, low, up, 40, -.5*TMath::Pi(), .5*TMath::Pi());
621 fHistPsiVZEROVV0M =
BookTH2F(
"fHistPsiVZEROV0M",
"V0M",
"#Psi_{2, VZERO}", diff, low, up, 40, -.5*TMath::Pi(), .5*TMath::Pi());
622 fHistPsiTPCV0M =
BookTH2F(
"fHistPsiTPCV0M",
"V0M",
"#Psi_{2, TRK}", diff, low, up, 40, -.5*TMath::Pi(), .5*TMath::Pi());
623 fHistPsiVZEROATRK =
BookTH2F(
"fHistPsiVZEROATRK",
"TRK",
"#Psi_{2, VZEROA}", diff, low, up, 40, -.5*TMath::Pi(), .5*TMath::Pi());
624 fHistPsiVZEROCTRK =
BookTH2F(
"fHistPsiVZEROCTRK",
"TRK",
"#Psi_{2, VZEROC}", diff, low, up, 40, -.5*TMath::Pi(), .5*TMath::Pi());
625 fHistPsiVZEROTRK =
BookTH2F(
"fHistPsiVZEROTRK",
"TRK",
"#Psi_{2, VZERO}", diff, low, up, 40, -.5*TMath::Pi(), .5*TMath::Pi());
626 fHistPsiTPCTRK =
BookTH2F(
"fHistPsiTPCTRK",
"TRK",
"#Psi_{2, TRK}", diff, low, up, 40, -.5*TMath::Pi(), .5*TMath::Pi());
635 fHistRhoAVsMult =
BookTH2F(
"fHistRhoAVsMult",
"multiplicity",
"#rho * A (jet) [GeV/c]", 100, 0, 4000, 100, 0, 50);
636 fHistRhoAVsCent =
BookTH2F(
"fHistRhoAVsCent",
"centrality",
"#rho * A (jet) [GeV/c]", 100, 0, 100, 100, 0, 50);
640 case kTPC : detector+=
"TPC";
642 case kVZEROA : detector+=
"VZEROA";
644 case kVZEROC : detector+=
"VZEROC";
648 case kFixedEP : detector+=
"FixedEP";
655 fHistRhoVsRCPt[i] =
BookTH2F(
"fHistRhoVsRCPt",
"p_{t} (RC) [GeV/c]",
"#rho * A (RC) [GeV/c]", 100, 0, 300, 100, 0, 350, i);
658 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);
659 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);
660 fHistRhoVsRCPtExLJ[i] =
BookTH2F(
"fHistRhoVsRCPtExLJ",
"p_{t} (RC) [GeV/c]",
"#rho * A (RC) [GeV/c]", 100, 0, 300, 100, 0, 350, i);
662 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);
663 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);
668 fHistJetPtArea[i] =
BookTH2F(
"fHistJetPtArea",
"p_{t, jet} [GeV/c]",
"Area", 175, -100, 250, 30, 0, 0.9, i);
669 fHistJetPtEta[i] =
BookTH2F(
"fHistJetPtEta",
"p_{t, jet} [GeV/c]",
"Eta", 175, -100, 250, 30, etaMin, etaMax, i);
670 fHistJetPtConstituents[i] =
BookTH2F(
"fHistJetPtConstituents",
"p_{t, jet} [GeV/c]",
"no. of constituents", 350, -100, 250, 60, 0, 150, i);
673 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);
674 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);
675 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);
677 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);
679 fProfV2Resolution[i] =
new TProfile(Form(
"fProfV2Resolution_%i", i), Form(
"fProfV2Resolution_%i", i), 11, -0.5, 10.5);
680 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(3,
"<cos(2(#Psi_{VZEROA} - #Psi_{VZEROC}))>");
681 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(4,
"<cos(2(#Psi_{VZEROC} - #Psi_{VZEROA}))>");
682 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(5,
"<cos(2(#Psi_{VZEROA} - #Psi_{TPC}))>");
683 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(6,
"<cos(2(#Psi_{TPC} - #Psi_{VZEROA}))>");
684 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(7,
"<cos(2(#Psi_{VZEROC} - #Psi_{TPC}))>");
685 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(8,
"<cos(2(#Psi_{TPC} - #Psi_{VZEROC}))>");
686 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(9,
"<cos(2(#Psi_{VZERO} - #Psi_{TPC_A}))>");
687 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(10,
"<cos(2(#Psi_{VZERO} - #Psi_{TPC_B}))>");
688 fProfV2Resolution[i]->GetXaxis()->SetBinLabel(11,
"<cos(2(#Psi_{TPC_A} - #Psi_{TPC_B}))>");
690 fProfV3Resolution[i] =
new TProfile(Form(
"fProfV3Resolution_%i", i), Form(
"fProfV3Resolution_%i", i), 11, -0.5, 10.5);
691 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(3,
"<cos(3(#Psi_{VZEROA} - #Psi_{VZEROC}))>");
692 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(4,
"<cos(3(#Psi_{VZEROC} - #Psi_{VZEROA}))>");
693 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(5,
"<cos(3(#Psi_{VZEROA} - #Psi_{TPC}))>");
694 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(6,
"<cos(3(#Psi_{TPC} - #Psi_{VZEROA}))>");
695 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(7,
"<cos(3(#Psi_{VZEROC} - #Psi_{TPC}))>");
696 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(8,
"<cos(3(#Psi_{TPC} - #Psi_{VZEROC}))>");
697 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(9,
"<cos(3(#Psi_{VZERO} - #Psi_{TPC_A}))>");
698 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(10,
"<cos(3(#Psi_{VZERO} - #Psi_{TPC_B}))>");
699 fProfV3Resolution[i]->GetXaxis()->SetBinLabel(11,
"<cos(3(#Psi_{TPC_A} - #Psi_{TPC_B}))>");
751 fHistSwap =
new TH1F(
"fHistSwap",
"fHistSwap", 20, 0, TMath::TwoPi());
758 for(
Int_t i(0); i < 10; i++) {
773 fHistPChi2 =
BookTH2F(
"fHistPChi2",
"p-value",
"#tilde{#chi^{2}}", 1000, 0, 1, 100, 0, 5);
781 fHistRhoStatusCent =
BookTH2F(
"fHistRhoStatusCent",
"centrality",
"status [-1=lin was better, 0=ok, 1 = failed]", 101, -1, 100, 3, -1.5, 1.5);
789 fHistJetPtAreaBC[i] =
BookTH2F(
"fHistJetPtAreaBC",
"p_{t, jet} [GeV/c]",
"Area", 175, -100, 250, 30, 0, 0.3, i);
791 fHistQxV0aBC =
BookTH2F(
"fHistQxV0aBC",
"Q_{x} V0A",
"centrality class", 140, -700, 700, 10, -.5, 9.5);
792 fHistQyV0aBC =
BookTH2F(
"fHistQyV0aBC",
"Q_{y} V0A",
"centrality class", 140, -700, 700, 10, -.5, 9.5);
793 fHistQxV0cBC =
BookTH2F(
"fHistQxV0cBC",
"Q_{x} V0C",
"centrality class", 140, -700, 700, 10, -.5, 9.5);
794 fHistQyV0cBC =
BookTH2F(
"fHistQyV0cBC",
"Q_{y} V0C",
"centrality class", 140, -700, 700, 10, -.5, 9.5);
795 fHistQxV0a =
BookTH2F(
"fHistQxV0a",
"Q_{x} V0A",
"centrality class", 100, -10, 10, 10, -.5, 9.5);
796 fHistQyV0a =
BookTH2F(
"fHistQyV0a",
"Q_{y} V0A",
"centrality class", 100, -10, 10, 10, -.5, 9.5);
797 fHistQxV0c =
BookTH2F(
"fHistQxV0c",
"Q_{x} V0C",
"centrality class", 100, -10, 10, 10, -.5, 9.5);
798 fHistQyV0c =
BookTH2F(
"fHistQyV0c",
"Q_{y} V0C",
"centrality class", 100, -10, 10, 10, -.5, 9.5);
801 fHistEPBC =
BookTH1F(
"fHistEPBC",
"#Psi_{EP, 3}, uncalibrated", 100, -0.34*TMath::Pi(), 0.34*TMath::Pi());
802 fHistEP =
BookTH1F(
"fHistEP",
"#Psi_{EP, 3}, calibrated", 100, -0.34*TMath::Pi(), 0.34*TMath::Pi());
830 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 831 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
834 if(!
fTracks) printf(
" > Failed to retrieve fTracks ! < \n");
835 if(!
fJets) printf(
" > Failed to retrieve fJets ! < \n");
836 if(!
fRho) printf(
" > Failed to retrieve fRho ! < \n");
861 tpc[0] = 0.; tpc[1] = 1.;
862 vzero[0][0] = 0.; vzero[0][1] = 1.;
863 vzero[1][0] = 0.; vzero[1][1] = 1.;
864 vzeroComb[0] = 0.; vzeroComb[1] = 1.;
876 case kTPC : { psi2 = tpc[0]; psi3 = tpc[1]; }
break;
877 case kVZEROA : { psi2 = vzero[0][0]; psi3 = vzero[0][1]; }
break;
878 case kVZEROC : { psi2 = vzero[1][0]; psi3 = vzero[1][1]; }
break;
879 case kVZEROComb : { psi2 = vzeroComb[0]; psi3 = vzeroComb[1];}
break;
880 case kFixedEP : { psi2 = 0.; psi3 = 1.;}
break;
891 Double_t percIn(0.), percOut(0.), percLost(0.);
893 psi3, percIn, percOut, percLost);
1006 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 1007 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1022 AliAnalysisTaskSE::Exec(c);
1029 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_2 1030 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1039 if(a < 0) a += TMath::Pi();
1046 Double_t interval(TMath::TwoPi() / 1000.);
1052 for(
Double_t i = a; i < a+TMath::TwoPi()-interval; i += interval) {
1054 if(status == 0 ) percLost += .001;
1055 else if(status == 1 ) percIn += 0.001;
1056 else if(status == 2 ) percOut += 0.001;
1065 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_2 1066 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1083 if(phi > a && phi < b && phi > x1 && phi < x2) overlap = 1;
1084 if(phi > c && phi < d && phi > x1 && phi < x2) overlap = 1;
1086 if(phi > b && phi < c && phi > x1 && phi < x2) overlap = 2;
1087 if(phi > d && phi < e && phi > x1 && phi < x2) overlap = 2;
1093 if(phi > a && phi < b && phi > x1 && phi < x2) overlap = 1;
1094 if(phi > c && phi < d && phi > x1 && phi < x2) overlap = 1;
1096 if(phi > b && phi < c && phi > x1 && phi < x2) overlap = 2;
1097 if(phi > d && phi < e && phi > x1 && phi < x2) overlap = 2;
1106 Double_t chi(2.), delta(1.), con((TMath::Sqrt(TMath::Pi()))/(2.*TMath::Sqrt(2)));
1107 for (
Int_t i(0); i < 15; i++) {
1108 chi = ((con*chi*TMath::Exp(-chi*chi/4.)*(TMath::BesselI0(chi*chi/4.)+TMath::BesselI1(chi*chi/4.))) < res) ? chi + delta : chi - delta;
1117 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 1118 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1128 vzero[0][0] = .5*TMath::ATan2(QA2[1], QA2[0]);
1129 vzero[1][0] = .5*TMath::ATan2(QC2[1], QC2[0]);
1130 vzero[0][1] = (1./3.)*TMath::ATan2(QA3[1], QA3[0]);
1131 vzero[1][1] = (1./3.)*TMath::ATan2(QC3[1], QC3[0]);
1140 Double_t Qxa3_raw = 0, Qya3_raw = 0;
1141 Double_t Qxc3_raw = 0, Qyc3_raw = 0;
1143 AliVVZERO* aodV0 = (InputEvent())->GetVZEROData();
1144 for (
Int_t iV0 = 0; iV0 < 64; iV0++) {
1145 Double_t phiV0 = TMath::PiOver4()*(0.5 + iV0 % 8);
1146 Float_t multv0 = aodV0->GetMultiplicity(iV0);
1153 if (multCorC < 0) cout<<
"Problem with multiplicity in V0C"<<endl;
1154 Qxcn += TMath::Cos(2.*phiV0) * multCorC;
1155 Qycn += TMath::Sin(2.*phiV0) * multCorC;
1156 Qxc3 += TMath::Cos(3.*phiV0) * multCorC;
1157 Qxc3_raw += TMath::Cos(3.*phiV0) * multv0;
1158 Qyc3 += TMath::Sin(3.*phiV0) * multCorC;
1159 Qyc3_raw += TMath::Sin(3.*phiV0) * multv0;
1160 sumMc = sumMc + multCorC;
1171 if (multCorA < 0) cout<<
"Problem with multiplicity in V0A"<<endl;
1172 Qxan += TMath::Cos(2.*phiV0) * multCorA;
1173 Qyan += TMath::Sin(2.*phiV0) * multCorA;
1174 Qxa3 += TMath::Cos(3.*phiV0) * multCorA;
1175 Qxa3_raw += TMath::Cos(3.*phiV0) * multv0;
1176 Qya3 += TMath::Sin(3.*phiV0) * multCorA;
1177 Qya3_raw += TMath::Sin(3.*phiV0) * multv0;
1178 sumMa = sumMa + multCorA;
1185 if (sumMa <=0 || sumMc <= 0)
return;
1187 Double_t QyanCor = (Qyan -
fMQ[1][0][0]->GetBinContent(iCentSPD+1))/
fWQ[1][0][0]->GetBinContent(iCentSPD+1);
1188 Double_t QycnCor = (Qycn -
fMQ[1][1][0]->GetBinContent(iCentSPD+1))/
fWQ[1][1][0]->GetBinContent(iCentSPD+1);
1189 Double_t QxanCor = (Qxan -
fMQ[0][0][0]->GetBinContent(iCentSPD+1))/
fWQ[0][0][0]->GetBinContent(iCentSPD+1);
1190 Double_t QxcnCor = (Qxcn -
fMQ[0][1][0]->GetBinContent(iCentSPD+1))/
fWQ[0][1][0]->GetBinContent(iCentSPD+1);
1191 vzero[0][0] = .5*TMath::ATan2(QyanCor,QxanCor);
1192 vzero[1][0] = .5*TMath::ATan2(QycnCor,QxcnCor);
1193 QyanCor = (Qya3 -
fMQ[1][0][1]->GetBinContent(iCentSPD+1))/
fWQ[1][0][1]->GetBinContent(iCentSPD+1);
1194 QycnCor = (Qyc3 -
fMQ[1][1][1]->GetBinContent(iCentSPD+1))/
fWQ[1][1][1]->GetBinContent(iCentSPD+1);
1195 QxanCor = (Qxa3 -
fMQ[0][0][1]->GetBinContent(iCentSPD+1))/
fWQ[0][0][1]->GetBinContent(iCentSPD+1);
1196 QxcnCor = (Qxc3 -
fMQ[0][1][1]->GetBinContent(iCentSPD+1))/
fWQ[0][1][1]->GetBinContent(iCentSPD+1);
1197 vzero[0][1] = (1./3.)*TMath::ATan2(QyanCor,QxanCor);
1198 vzero[1][1] = (1./3.)*TMath::ATan2(QycnCor,QxcnCor);
1204 fHistQxV0a->Fill(QxanCor, VZEROcentralityBin);
1205 fHistQyV0a->Fill(QyanCor, VZEROcentralityBin);
1206 fHistQxV0c->Fill(QxcnCor, VZEROcentralityBin);
1207 fHistQyV0c->Fill(QycnCor, VZEROcentralityBin);
1208 fHistEPBC->Fill((1./3.)*TMath::ATan2(Qyc3_raw+Qya3_raw,Qxc3_raw+Qxa3_raw));
1209 fHistEP->Fill((1./3.)*TMath::ATan2(QycnCor+QyanCor,QxcnCor+QxanCor));
1215 Double_t a(0), b(0),
c(0), d(0), e(0), f(0), g(0), h(0);
1216 vzero[0][0] = InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 8, 2, a, b);
1217 vzero[1][0] = InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 9, 2,
c, d);
1218 vzero[0][1] = InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 8, 3, e, f);
1219 vzero[1][1] = InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 9, 3, g, h);
1228 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 1229 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1241 comb[0] = .5*TMath::ATan2(Q2[1], Q2[0]);
1242 comb[1] = (1./3.)*TMath::ATan2(Q3[1], Q3[0]);
1250 AliVVZERO* aodV0 =(InputEvent())->GetVZEROData();
1251 for (
Int_t iV0 = 0; iV0 < 64; iV0++) {
1252 Double_t phiV0 = TMath::PiOver4()*(0.5 + iV0 % 8);
1253 Float_t multv0 = aodV0->GetMultiplicity(iV0);
1260 if (multCorC < 0) cout<<
"Problem with multiplicity in V0C"<<endl;
1261 Qxcn += TMath::Cos(2.*phiV0) * multCorC;
1262 Qycn += TMath::Sin(2.*phiV0) * multCorC;
1263 Qxc3 += TMath::Cos(3.*phiV0) * multCorC;
1264 Qyc3 += TMath::Sin(3.*phiV0) * multCorC;
1265 sumMc = sumMc + multCorC;
1272 if (multCorA < 0) cout<<
"Problem with multiplicity in V0A"<<endl;
1273 Qxan += TMath::Cos(2.*phiV0) * multCorA;
1274 Qyan += TMath::Sin(2.*phiV0) * multCorA;
1275 Qxa3 += TMath::Cos(3.*phiV0) * multCorA;
1276 Qya3 += TMath::Sin(3.*phiV0) * multCorA;
1277 sumMa = sumMa + multCorA;
1280 if (sumMa <=0 || sumMc <= 0)
return;
1282 Double_t QyanCor = (Qyan -
fMQ[1][0][0]->GetBinContent(iCentSPD+1))/
fWQ[1][0][0]->GetBinContent(iCentSPD+1);
1283 Double_t QycnCor = (Qycn -
fMQ[1][1][0]->GetBinContent(iCentSPD+1))/
fWQ[1][1][0]->GetBinContent(iCentSPD+1);
1284 Double_t QxanCor = (Qxan -
fMQ[0][0][0]->GetBinContent(iCentSPD+1))/
fWQ[0][0][0]->GetBinContent(iCentSPD+1);
1285 Double_t QxcnCor = (Qxcn -
fMQ[0][1][0]->GetBinContent(iCentSPD+1))/
fWQ[0][1][0]->GetBinContent(iCentSPD+1);
1286 comb[0] = .5*TMath::ATan2(QyanCor+QycnCor,QxanCor+QxcnCor);
1287 QyanCor = (Qya3 -
fMQ[1][0][1]->GetBinContent(iCentSPD+1))/
fWQ[1][0][1]->GetBinContent(iCentSPD+1);
1288 QycnCor = (Qyc3 -
fMQ[1][1][1]->GetBinContent(iCentSPD+1))/
fWQ[1][1][1]->GetBinContent(iCentSPD+1);
1289 QxanCor = (Qxa3 -
fMQ[0][0][1]->GetBinContent(iCentSPD+1))/
fWQ[0][0][1]->GetBinContent(iCentSPD+1);
1290 QxcnCor = (Qxc3 -
fMQ[0][1][1]->GetBinContent(iCentSPD+1))/
fWQ[0][1][1]->GetBinContent(iCentSPD+1);
1291 comb[1] = (1./3.)*TMath::ATan2(QyanCor+QycnCor,QxanCor+QxcnCor);
1302 Double_t qx2a(0), qy2a(0), qx2c(0), qy2c(0), qx3a(0), qy3a(0), qx3c(0), qy3c(0);
1304 InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 8, 2, qx2a, qy2a);
1305 InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 9, 2, qx2c, qy2c);
1306 InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 8, 3, qx3a, qy3a);
1307 InputEvent()->GetEventplane()->CalculateVZEROEventPlane(InputEvent(), 9, 3, qx3c, qy3c);
1318 chi2A =
fChi2A->At(VZEROcentralityBin);
1319 chi2C =
fChi2C->At(VZEROcentralityBin);
1320 chi3A =
fChi3A->At(VZEROcentralityBin);
1321 chi3C =
fChi3C->At(VZEROcentralityBin);
1324 chi2A =
fSigma2A->At(VZEROcentralityBin);
1325 chi2C =
fSigma2C->At(VZEROcentralityBin);
1326 chi3A =
fSigma3A->At(VZEROcentralityBin);
1327 chi3C =
fSigma3C->At(VZEROcentralityBin);
1328 chi2A = (chi2A > 0) ? 1./chi2A : 1.;
1329 chi2C = (chi2C > 0) ? 1./chi2C : 1.;
1330 chi3A = (chi3A > 0) ? 1./chi3A : 1.;
1331 chi3C = (chi3C > 0) ? 1./chi3C : 1.;
1337 Q2[0] = chi2A*chi2A*qx2a+chi2C*chi2C*qx2c;
1338 Q2[1] = chi2A*chi2A*qy2a+chi2C*chi2C*qy2c;
1339 Q3[0] = chi3A*chi3A*qx3a+chi3C*chi3C*qx3c;
1340 Q3[1] = chi3A*chi3A*qy3a+chi3C*chi3C*qy3c;
1342 comb[0] = .5*TMath::ATan2(Q2[1], Q2[0]);
1343 comb[1] = (1./3.)*TMath::ATan2(Q3[1], Q3[0]);
1345 Double_t _chi(0), _sigma(0), _none(0);
1350 chi2A =
fChi2A->At(VZEROcentralityBin);
1351 chi2C =
fChi2C->At(VZEROcentralityBin);
1352 _chi = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1353 chi2A =
fSigma2A->At(VZEROcentralityBin);
1354 chi2C =
fSigma2C->At(VZEROcentralityBin);
1355 chi2A = (chi2A > 0) ? 1./chi2A : 1.;
1356 chi2C = (chi2C > 0) ? 1./chi2C : 1.;
1357 _sigma = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1361 _chi = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1362 chi2A =
fSigma2A->At(VZEROcentralityBin);
1363 chi2C =
fSigma2C->At(VZEROcentralityBin);
1364 chi2A = (chi2A > 0) ? 1./chi2A : 1.;
1365 chi2C = (chi2C > 0) ? 1./chi2C : 1.;
1366 _sigma = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1370 _sigma = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1371 chi2A =
fChi2A->At(VZEROcentralityBin);
1372 chi2C =
fChi2C->At(VZEROcentralityBin);
1373 _chi = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1378 _none = .5*TMath::ATan2(qy2a+qy2c,qx2a+qx2c);
1390 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 1391 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1406 qx2+= TMath::Cos(2.*track->Phi());
1407 qy2+= TMath::Sin(2.*track->Phi());
1408 qx3+= TMath::Cos(3.*track->Phi());
1409 qy3+= TMath::Sin(3.*track->Phi());
1412 tpc[0] = .5*TMath::ATan2(qy2, qx2);
1413 tpc[1] = (1./3.)*TMath::ATan2(qy3, qx3);
1420 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 1421 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1442 for(
Int_t iTPC(0); iTPC < iTracks; iTPC++) {
1443 AliVTrack* track =
static_cast<AliVTrack*
>(
fTracks->At(iTPC));
1445 if(track->Eta() < 0 ) {
1446 qx2a+= TMath::Cos(2.*track->Phi());
1447 qy2a+= TMath::Sin(2.*track->Phi());
1448 qx3a+= TMath::Cos(3.*track->Phi());
1449 qy3a+= TMath::Sin(3.*track->Phi());
1450 }
else if (track->Eta() > 0) {
1451 qx2b+= TMath::Cos(2.*track->Phi());
1452 qy2b+= TMath::Sin(2.*track->Phi());
1453 qx3b+= TMath::Cos(3.*track->Phi());
1454 qy3b+= TMath::Sin(3.*track->Phi());
1458 Double_t tpca2(.5*TMath::ATan2(qy2a, qx2a));
1459 Double_t tpca3((1./3.)*TMath::ATan2(qy3a, qx3a));
1460 Double_t tpcb2(.5*TMath::ATan2(qy2b, qx2b));
1461 Double_t tpcb3((1./3.)*TMath::ATan2(qy3b, qx3b));
1478 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 1479 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1484 Qa2[0] = 0.; Qc2[0] = 0.; Qa3[0] = 0.; Qc3[0] = 0.;
1485 Qa2[1] = 0.; Qc2[1] = 0.; Qa3[1] = 0.; Qc3[1] = 0.;
1487 Double_t QaX(0), QaY(0), QcX(0), QcY(0);
1488 for(
Int_t i(0); i < 64; i++) {
1490 phi = TMath::PiOver4()*(0.5+i%8);
1491 mult = InputEvent()->GetVZEROData()->GetMultiplicity(i);
1502 QcX += mult*TMath::Cos(2.*phi);
1503 QcY += mult*TMath::Sin(2.*phi);
1513 QaX += mult*TMath::Cos(2.*phi);
1514 QaY += mult*TMath::Sin(2.*phi);
1527 fHistEPBC->Fill(.5*TMath::ATan2(QaY+QcY, QaX+QcX));
1551 Qa2[0] = (Qa2[0] - Qx2amean)/Qx2arms;
1552 Qa2[1] = (Qa2[1] - Qy2amean)/Qy2arms;
1553 Qc2[0] = (Qc2[0] - Qx2cmean)/Qx2crms;
1554 Qc2[1] = (Qc2[1] - Qy2cmean)/Qy2crms;
1556 Qa3[0] = (Qa3[0] - Qx3amean)/Qx3arms;
1557 Qa3[1] = (Qa3[1] - Qy3amean)/Qy3arms;
1558 Qc3[0] = (Qc3[0] - Qx3cmean)/Qx3crms;
1559 Qc3[1] = (Qc3[1] - Qy3cmean)/Qy3crms;
1563 fHistQxV0a->Fill(Qa2[0], VZEROcentralityBin);
1564 fHistQyV0a->Fill(Qa2[1], VZEROcentralityBin);
1565 fHistQxV0c->Fill(Qc2[0], VZEROcentralityBin);
1566 fHistQyV0c->Fill(Qc2[0], VZEROcentralityBin);
1567 fHistEP->Fill(.5*TMath::ATan2(Qa2[1]+Qc2[1], Qa2[0]+Qc2[0]));
1576 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 1577 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1596 chi2A =
fChi2A->At(VZEROcentralityBin);
1597 chi2C =
fChi2C->At(VZEROcentralityBin);
1598 chi3A =
fChi3A->At(VZEROcentralityBin);
1599 chi3C =
fChi3C->At(VZEROcentralityBin);
1602 chi2A =
fSigma2A->At(VZEROcentralityBin);
1603 chi2C =
fSigma2C->At(VZEROcentralityBin);
1604 chi3A =
fSigma3A->At(VZEROcentralityBin);
1605 chi3C =
fSigma3C->At(VZEROcentralityBin);
1606 chi2A = (chi2A > 0) ? 1./chi2A : 1.;
1607 chi2C = (chi2C > 0) ? 1./chi2C : 1.;
1608 chi3A = (chi3A > 0) ? 1./chi3A : 1.;
1609 chi3C = (chi3C > 0) ? 1./chi3C : 1.;
1615 Double_t qx2a(QA2[0]), qy2a(QA2[1]), qx2c(QC2[0]), qy2c(QC2[1]);
1617 Q2[0] = chi2A*chi2A*QA2[0]+chi2C*chi2C*QC2[0];
1618 Q2[1] = chi2A*chi2A*QA2[1]+chi2C*chi2C*QC2[1];
1619 Q3[0] = chi3A*chi3A*QA3[0]+chi3C*chi3C*QC3[0];
1620 Q3[1] = chi3A*chi3A*QA3[1]+chi3C*chi3C*QC3[1];
1622 Double_t _chi(0), _sigma(0), _none(0);
1627 chi2A =
fChi2A->At(VZEROcentralityBin);
1628 chi2C =
fChi2C->At(VZEROcentralityBin);
1629 _chi = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1630 chi2A =
fSigma2A->At(VZEROcentralityBin);
1631 chi2C =
fSigma2C->At(VZEROcentralityBin);
1632 chi2A = (chi2A > 0) ? 1./chi2A : 1.;
1633 chi2C = (chi2C > 0) ? 1./chi2C : 1.;
1634 _sigma = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1638 _chi = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1639 chi2A =
fSigma2A->At(VZEROcentralityBin);
1640 chi2C =
fSigma2C->At(VZEROcentralityBin);
1641 chi2A = (chi2A > 0) ? 1./chi2A : 1.;
1642 chi2C = (chi2C > 0) ? 1./chi2C : 1.;
1643 _sigma = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1647 _sigma = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1648 chi2A =
fChi2A->At(VZEROcentralityBin);
1649 chi2C =
fChi2C->At(VZEROcentralityBin);
1650 _chi = .5*TMath::ATan2(chi2A*chi2A*qy2a+chi2C*chi2C*qy2c, chi2A*chi2A*qx2a+chi2C*chi2C*qx2c);
1655 _none = .5*TMath::ATan2(qy2a+qy2c,qx2a+qx2c);
1666 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_2 1667 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1669 pt = 0; eta = 0; phi = 0;
1670 Float_t etaJet(999), phiJet(999), dJet(999);
1672 etaJet = jet->
Eta();
1673 phiJet = jet->
Phi();
1679 if(maxPhi > TMath::TwoPi()) maxPhi = TMath::TwoPi();
1680 if(minPhi < 0 ) minPhi = 0.;
1682 Int_t attempts(1000);
1686 phi =
gRandom->Uniform(minPhi, maxPhi);
1688 dJet = TMath::Sqrt((etaJet-eta)*(etaJet-eta)+(phiJet-phi)*(phiJet-phi));
1690 else if (attempts == 0) {
1691 printf(
" > No random cone after 1000 tries, giving up ... !\n");
1697 tracksCont->ResetCurrentID();
1700 Float_t etaTrack(track->Eta()), phiTrack(track->Phi());
1702 if(TMath::Abs(phiTrack-phi) > TMath::Abs(phiTrack - phi + TMath::TwoPi())) phiTrack+=TMath::TwoPi();
1703 if(TMath::Abs(phiTrack-phi) > TMath::Abs(phiTrack - phi - TMath::TwoPi())) phiTrack-=TMath::TwoPi();
1704 if(TMath::Sqrt(TMath::Abs((etaTrack-eta)*(etaTrack-eta)+(phiTrack-phi)*(phiTrack-phi))) <=
GetJetRadius()) pt += track->Pt();
1711 TLorentzVector momentum;
1712 clusterCont->ResetCurrentID();
1715 cluster->GetMomentum(momentum, const_cast<Double_t*>(
fVertex));
1716 Float_t etaClus(momentum.Eta()), phiClus(momentum.Phi());
1718 if(TMath::Abs(phiClus-phi) > TMath::Abs(phiClus - phi + TMath::TwoPi())) phiClus+=TMath::TwoPi();
1719 if(TMath::Abs(phiClus-phi) > TMath::Abs(phiClus - phi - TMath::TwoPi())) phiClus-=TMath::TwoPi();
1720 if(TMath::Sqrt(TMath::Abs((etaClus-eta)*(etaClus-eta)+(phiClus-phi)*(phiClus-phi))) <=
GetJetRadius()) pt += momentum.Pt();
1728 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 1729 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1731 Double_t reQ(0), imQ(0), modQ(0), M11(0), M(0);
1733 QCnQnk(harm, 1, reQ, imQ);
1734 modQ = reQ*reQ+imQ*imQ;
1736 return (M11 > 0) ? ((modQ -
QCnS(1,2))/M11) : -999;
1738 QCnQnk(harm, 0, reQ, imQ);
1739 modQ = reQ*reQ+imQ*imQ;
1741 return (M > 1) ? (modQ - M)/(M*(M-1)) : -999;
1746 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 1747 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1749 Double_t reQn1(0), imQn1(0), reQ2n2(0), imQ2n2(0), reQn3(0), imQn3(0), M1111(0), M(0);
1750 Double_t a(0), b(0),
c(0), d(0), e(0), f(0), g(0);
1752 QCnQnk(harm, 1, reQn1, imQn1);
1753 QCnQnk(harm*2, 2, reQ2n2, imQ2n2);
1754 QCnQnk(harm, 3, reQn3, imQn3);
1756 a = (reQn1*reQn1+imQn1*imQn1)*(reQn1*reQn1+imQn1*imQn1);
1757 b = reQ2n2*reQ2n2 + imQ2n2*imQ2n2;
1758 c = -2.*(reQ2n2*reQn1*reQn1-reQ2n2*imQn1*imQn1+2.*imQ2n2*reQn1*imQn1);
1759 d = 8.*(reQn3*reQn1+imQn3*imQn1);
1760 e = -4.*
QCnS(1,2)*(reQn1*reQn1+imQn1*imQn1);
1764 return (M1111 > 0) ? (a+b+
c+d+e+f+g)/M1111 : -999;
1766 Double_t reQn(0), imQn(0), reQ2n(0), imQ2n(0);
1767 QCnQnk(harm, 0, reQn, imQn);
1768 QCnQnk(harm*2, 0, reQ2n, imQ2n);
1771 if(M < 4)
return -999;
1772 a = (reQn*reQn+imQn*imQn)*(reQn*reQn+imQn*imQn);
1773 b = reQ2n*reQ2n + imQ2n*imQ2n;
1774 c = -2.*(reQ2n*reQn*reQn-reQ2n*imQn*imQn+2.*imQ2n*reQn*imQn);
1775 e = -4.*(M-2)*(reQn*reQn+imQn*imQn);
1777 return (a+b+
c+e+f)/(M*(M-1)*(M-2)*(M-3));
1782 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 1783 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1788 for(
Int_t iTPC(0); iTPC < iTracks; iTPC++) {
1789 AliVTrack* track =
static_cast<AliVTrack*
>(
fTracks->At(iTPC));
1793 reQ += TMath::Power(track->Pt(), k) * TMath::Cos(((
double)n)*track->Phi());
1794 imQ += TMath::Power(track->Pt(), k) * TMath::Sin(((
double)n)*track->Phi());
1803 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 1804 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1806 Int_t iPois(pois->GetEntriesFast());
1808 for(
Int_t i(0); i < iPois; i++) {
1809 for(
Int_t ptBin(0); ptBin < ptBins->GetSize()-1; ptBin++) {
1810 AliVTrack* poi =
static_cast<AliVTrack*
>(pois->At(i));
1812 if(poi->Pt() >= ptBins->At(ptBin) && poi->Pt() < ptBins->At(ptBin+1)) {
1814 repn[ptBin]+=TMath::Cos(((
double)n)*poi->Phi());
1815 impn[ptBin]+=TMath::Sin(((
double)n)*poi->Phi());
1817 reqn[ptBin]+=TMath::Cos(((
double)n)*poi->Phi());
1818 imqn[ptBin]+=TMath::Sin(((
double)n)*poi->Phi());
1825 for(
Int_t i(0); i < iPois; i++) {
1826 for(
Int_t ptBin(0); ptBin < ptBins->GetSize()-1; ptBin++) {
1831 if(pt >= ptBins->At(ptBin) && pt < ptBins->At(ptBin+1)) {
1832 repn[ptBin]+=TMath::Cos(((
double)n)*poi->
Phi());
1833 impn[ptBin]+=TMath::Sin(((
double)n)*poi->
Phi());
1844 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 1845 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1847 if(!
fTracks || i <= 0 || j <= 0)
return -999;
1850 for(
Int_t iTPC(0); iTPC < iTracks; iTPC++) {
1851 AliVTrack* track =
static_cast<AliVTrack*
>(
fTracks->At(iTPC));
1853 Sij+=TMath::Power(track->Pt(), j);
1855 return TMath::Power(Sij, i);
1860 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 1861 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1868 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 1869 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1876 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 1877 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1885 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 1886 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1904 if( c2 < 0 ) c2 = -1.*TMath::Sqrt(-1.*c2);
1905 if( c3 < 0 ) c3 = -1.*TMath::Sqrt(-1.*c3);
1919 default :
return kFALSE;
1939 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 1940 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
1942 Int_t freeParams(2);
1963 }
else if (!
QCnRecovery(psi2, psi3))
return kFALSE;
1989 }
else if (!
QCnRecovery(psi2, psi3))
return kFALSE;
2015 case kTPC : detector+=
"TPC";
2017 case kVZEROA : detector+=
"VZEROA";
2019 case kVZEROC : detector+=
"VZEROC";
2023 case kFixedEP : detector+=
"FixedEP";
2031 if(iTracks <= 0 || fLocalRho->GetVal() <= 0 )
return kFALSE;
2042 Double_t lowBound(0.), upBound(TMath::TwoPi());
2050 _tempSwap = TH1F(
"_tempSwap",
"_tempSwap", TMath::CeilNint(TMath::Sqrt(
fNAcceptedTracks)), lowBound, upBound);
2056 Double_t totalpts(0.), totalptsquares(0.), totalns(0.);
2071 _tempSwap.Fill(track->Phi(), track->Pt());
2073 totalpts += track->Pt();
2074 totalptsquares += track->Pt()*track->Pt();
2076 _tempSwapN.Fill(track->Phi());
2079 else _tempSwap.Fill(track->Phi());
2087 if(totalns < 2)
return kFALSE;
2088 for(
Int_t l = 0; l < _tempSwap.GetNbinsX(); l++) {
2089 if(_tempSwapN.GetBinContent(l+1) == 0) {
2090 _tempSwap.SetBinContent(l+1,0);
2091 _tempSwap.SetBinError(l+1,0);
2094 Double_t vartimesnsq = totalptsquares*totalns - totalpts*totalpts;
2095 Double_t variance = vartimesnsq/(totalns*(totalns-1.));
2096 Double_t SDOMSq = variance / _tempSwapN.GetBinContent(l+1);
2097 Double_t SDOMSqOverMeanSq = SDOMSq * _tempSwapN.GetBinContent(l+1) * _tempSwapN.GetBinContent(l+1) / (_tempSwapN.GetBinContent(l+1) * _tempSwapN.GetBinContent(l+1));
2098 Double_t poissonfrac = 1./_tempSwapN.GetBinContent(l+1);
2099 Double_t vartotalfrac = SDOMSqOverMeanSq + poissonfrac;
2100 Double_t vartotal = vartotalfrac * _tempSwap.GetBinContent(l+1) * _tempSwap.GetBinContent(l+1);
2101 if(vartotal > 0.0001) _tempSwap.SetBinError(l+1,TMath::Sqrt(vartotal));
2103 _tempSwap.SetBinContent(l+1,0);
2104 _tempSwap.SetBinError(l+1,0);
2131 Double_t cos2(0), sin2(0), cos3(0), sin3(0), sumPt(0);
2132 for(
Int_t i(0); i < iTracks; i++) {
2133 AliVTrack* track =
static_cast<AliVTrack*
>(
fTracks->At(i));
2135 sumPt += track->Pt();
2136 cos2 += track->Pt()*TMath::Cos(2*
PhaseShift(track->Phi()-psi2));
2137 sin2 += track->Pt()*TMath::Sin(2*
PhaseShift(track->Phi()-psi2));
2138 cos3 += track->Pt()*TMath::Cos(3*
PhaseShift(track->Phi()-psi3));
2139 sin3 += track->Pt()*TMath::Sin(3*
PhaseShift(track->Phi()-psi3));
2150 Int_t _bins = _tempSwap.GetXaxis()->GetNbins();
2151 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());
2153 _tempFit->SetParameter(3, 0.1);
2154 _tempFit->FixParameter(1, 1.);
2155 _tempFit->FixParameter(2, 2.);
2156 _tempFit->FixParameter(5, 3.);
2159 _tempFit->SetParameter(7, 0.1);
2161 for(
int _binsI = 0; _binsI < _bins*_bins; _binsI++) _tempSwap.Fill(_tempFit->GetRandom());
2169 Int_t NDF(_tempSwap.GetXaxis()->GetNbins()-freeParams);
2170 if(NDF == 0 || (
float)NDF <= 0.)
return kFALSE;
2194 CDF = CDFKolmogorov;
2215 if(CDFControl > CDF) {
2231 static Int_t didacticCounterBest(0);
2232 TProfile* didacticProfile = (TProfile*)_tempSwap.Clone(Form(
"Fit_%i_1-CDF_%.3f_cen_%i_%s", didacticCounterBest, CDF,
fInCentralitySelection, detector.Data()));
2238 TF1* v0(
new TF1(
"dfit_kV2",
"[0]", 0, TMath::TwoPi()));
2239 v0->SetParameter(0, didacticFit->GetParameter(0));
2240 v0->SetLineColor(kMagenta);
2241 v0->SetLineStyle(7);
2242 didacticProfile->GetListOfFunctions()->Add(v0);
2243 TF1* v2(
new TF1(
"dfit_kV2",
"[0]*([1]+[2]*[3]*TMath::Cos([2]*(x-[4])))", 0, TMath::TwoPi()));
2244 v2->SetParameter(0, didacticFit->GetParameter(0));
2245 v2->SetParameter(3, didacticFit->GetParameter(3));
2246 v2->FixParameter(1, 1.);
2247 v2->FixParameter(2, 2.);
2248 v2->FixParameter(4, didacticFit->GetParameter(4));
2249 v2->SetLineColor(kGreen);
2250 didacticProfile->GetListOfFunctions()->Add(v2);
2251 TF1* v3(
new TF1(
"dfit_kV3",
"[0]*([1]+[2]*[3]*TMath::Cos([5]*(x-[4])))", 0, TMath::TwoPi()));
2252 v3->SetParameter(0, didacticFit->GetParameter(0));
2253 v3->SetParameter(3, didacticFit->GetParameter(7));
2254 v3->FixParameter(1, 1.);
2255 v3->FixParameter(2, 2.);
2256 v3->FixParameter(4, didacticFit->GetParameter(6));
2257 v3->FixParameter(5, 3.);
2258 v3->SetLineColor(kCyan);
2259 didacticProfile->GetListOfFunctions()->Add(v3);
2263 didacticProfile->GetListOfFunctions()->Add(didacticFit);
2264 didacticProfile->GetYaxis()->SetTitle(
"#frac{d #sum #it{p}_{T}}{d #varphi} [GeV/#it{c}]");
2265 didacticProfile->GetXaxis()->SetTitle(
"#varphi");
2267 didacticCounterBest++;
2268 TH2F* didacticSurface =
BookTH2F(Form(
"surface_%s", didacticProfile->GetName()),
"#phi",
"#eta", 50, 0, TMath::TwoPi(), 50, -1, 1, -1, kFALSE);
2269 for(
Int_t i(0); i < iTracks; i++) {
2270 AliVTrack* track =
static_cast<AliVTrack*
>(
fTracks->At(i));
2272 if(
fUsePtWeight) didacticSurface->Fill(track->Phi(), track->Eta(), track->Pt());
2273 else didacticSurface->Fill(track->Phi(), track->Eta());
2277 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);
2278 f2->SetParameters(excludeInPt/3.,excludeInPhi,.1,excludeInEta,.1);
2279 didacticSurface->GetListOfFunctions()->Add(f2);
2288 static Int_t didacticCounterWorst(0);
2290 TProfile* didacticProfile = (TProfile*)_tempSwap.Clone(Form(
"Fit_%i_1-CDF_%.3f_cen_%i_%s", didacticCounterWorst, CDF,
fInCentralitySelection, detector.Data() ));
2292 didacticProfile->GetListOfFunctions()->Add(didacticFit);
2294 didacticCounterWorst++;
2316 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 2317 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2331 if(aodEvent) trigger = ((AliVAODHeader*)(aodEvent->GetHeader()))->GetOfflineTrigger();
2333 if((trigger & AliVEvent::kMB) == 0)
return kFALSE;
2343 if( (!esdEvent) || (TMath::Abs(esdEvent->GetPrimaryVertexSPD()->GetZ() - esdEvent->GetPrimaryVertex()->GetZ()) > .5) )
return kFALSE;
2347 if( (!aodEvent) || (TMath::Abs(aodEvent->GetPrimaryVertexSPD()->GetZ() - aodEvent->GetPrimaryVertex()->GetZ()) > .5) )
return kFALSE;
2358 fCent = InputEvent()->GetCentrality()->GetCentralityPercentile(
"V0M");
2372 if(
fTracks->GetEntries() < 1)
return kFALSE;
2373 if(
fRho->GetVal() <= 0 )
return kFALSE;
2377 Float_t multTPC(0.), multGlob(0.);
2379 Int_t nGoodTracks(event->GetNumberOfTracks());
2380 for(
Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) {
2381 AliAODTrack* trackAOD =
dynamic_cast<AliAODTrack*
>(
event->GetTrack(iTracks));
2382 if(!trackAOD) AliFatal(
"Not a standard AOD");
2383 if (!trackAOD)
continue;
2384 if (!(trackAOD->TestFilterBit(1)))
continue;
2385 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;
2388 for(
Int_t iTracks = 0; iTracks < nGoodTracks; iTracks++) {
2389 AliAODTrack* trackAOD =
dynamic_cast<AliAODTrack*
>(
event->GetTrack(iTracks));
2390 if(!trackAOD) AliFatal(
"Not a standard AOD");
2391 if (!trackAOD)
continue;
2392 if (!(trackAOD->TestFilterBit(16)))
continue;
2393 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;
2395 Double_t bCov[3] = {-99., -99., -99.};
2396 AliAODTrack copy(*trackAOD);
2397 if (!(copy.PropagateToDCA(event->GetPrimaryVertex(),
event->GetMagneticField(), 100., b, bCov)))
continue;
2398 if ((TMath::Abs(b[0]) > 0.3) || (TMath::Abs(b[1]) > 0.3))
continue;
2401 if(! (multTPC > (-40.3+1.22*multGlob) && multTPC < (32.1+1.59*multGlob)))
return kFALSE;
2411 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 2412 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2417 Short_t isPileup =
event->IsPileupFromSPD(3);
2418 if (isPileup != 0)
return kFALSE;
2420 if (((AliAODHeader*)event->GetHeader())->GetRefMultiplicityComb08() < 0)
return kFALSE;
2423 AliAODVertex* vtTrc =
event->GetPrimaryVertex();
2424 AliAODVertex* vtSPD =
event->GetPrimaryVertexSPD();
2425 if (vtTrc->GetNContributors()<2 || vtSPD->GetNContributors()<1)
return kFALSE;
2426 double covTrc[6],covSPD[6];
2427 vtTrc->GetCovarianceMatrix(covTrc);
2428 vtSPD->GetCovarianceMatrix(covSPD);
2429 double dz = vtTrc->GetZ()-vtSPD->GetZ();
2430 double errTot = TMath::Sqrt(covTrc[5]+covSPD[5]);
2431 double errTrc = TMath::Sqrt(covTrc[5]);
2432 double nsigTot = TMath::Abs(dz)/errTot, nsigTrc = TMath::Abs(dz)/errTrc;
2433 if (TMath::Abs(dz)>0.2 || nsigTot>10 || nsigTrc>20)
return kFALSE;
2436 if (event->IsIncompleteDAQ())
return kFALSE;
2444 const int kMinPlpContrib = 5;
2445 const double kMaxPlpChi2 = 5.0;
2446 const double kMinWDist = 15;
2447 const AliVVertex* vtPrm = 0;
2448 const AliVVertex* vtPlp = 0;
2450 if ( !(nPlp = event->GetNumberOfPileupVerticesTracks()) )
return kFALSE;
2451 vtPrm =
event->GetPrimaryVertex();
2452 if (vtPrm == event->GetPrimaryVertexSPD())
return kTRUE;
2454 for (
int ipl=0;ipl<nPlp;ipl++) {
2455 vtPlp = (
const AliVVertex*)event->GetPileupVertexTracks(ipl);
2456 if (vtPlp->GetNContributors() < kMinPlpContrib)
continue;
2457 if (vtPlp->GetChi2perNDF() > kMaxPlpChi2)
continue;
2458 double wDst =
GetWDist(vtPrm,vtPlp);
2459 if (wDst<kMinWDist)
continue;
2472 printf(
"One of vertices is not valid\n");
2475 static TMatrixDSym vVb(3);
2477 double dx = v0->GetX()-v1->GetX();
2478 double dy = v0->GetY()-v1->GetY();
2479 double dz = v0->GetZ()-v1->GetZ();
2480 double cov0[6],cov1[6];
2481 v0->GetCovarianceMatrix(cov0);
2482 v1->GetCovarianceMatrix(cov1);
2483 vVb(1,1) = cov0[2]+cov1[2];
2484 vVb(2,2) = cov0[5]+cov1[5];
2485 vVb(1,0) = vVb(0,1) = cov0[1]+cov1[1];
2486 vVb(0,2) = vVb(1,2) = vVb(2,0) = vVb(2,1) = 0.;
2488 if (!vVb.IsValid()) {printf(
"Singular Matrix\n");
return dist;}
2489 dist = vVb(0,0)*dx*dx + vVb(1,1)*dy*dy + vVb(2,2)*dz*dz
2490 + 2*vVb(0,1)*dx*dy + 2*vVb(0,2)*dx*dz + 2*vVb(1,2)*dy*dz;
2491 return dist>0 ? TMath::Sqrt(dist) : -1;
2499 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 2500 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2514 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_2 2515 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2524 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 2525 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2535 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_ 2536 printf(
"\n > TASK %s CANNOT IDENTIFY RUN - CONFIGURATION COULD BE INCORRECT < \n", GetName());
2543 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 2544 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2546 Int_t iTracks(
fTracks->GetEntriesFast()), iAcceptedTracks(0);
2547 for(
Int_t i(0); i < iTracks; i++) {
2548 AliVTrack* track =
static_cast<AliVTrack*
>(
fTracks->At(i));
2561 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 2562 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2566 TLorentzVector clusterLorentzVector;
2567 for(
Int_t i(0); i < iClusters; i++) {
2570 cluster->GetMomentum(clusterLorentzVector, const_cast<Double_t*>(
fVertex));
2581 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 2582 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2615 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 2616 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2626 for(
Int_t i(0); i < iJets; i++) {
2637 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 2638 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2644 Float_t pt(0), eta(0), phi(0);
2680 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 2681 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2686 trigger = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
2687 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 2691 for(
Int_t i(0); i < iJets; i++) {
2732 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_2 2733 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2743 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 2744 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2747 fHistVertexz->Fill(vevent->GetPrimaryVertex()->GetZ());
2754 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 2755 printf(
"\n > TASK %s CANNOT IDENTIFY RUN - CONFIGURATION COULD BE INCORRECT < \n", GetName());
2768 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_2 2769 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2788 UInt_t MB_EMCEJE(AliVEvent::kMB | AliVEvent::kEMCEJE);
2789 UInt_t CEN_EMCEJE(AliVEvent::kCentral | AliVEvent::kEMCEJE);
2790 UInt_t SEM_EMCEJE(AliVEvent::kSemiCentral | AliVEvent::kEMCEJE);
2791 UInt_t ALL_EMCEJE(AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral | AliVEvent::kEMCEJE);
2792 UInt_t MB_EMCEGA(AliVEvent::kMB | AliVEvent::kEMCEGA);
2793 UInt_t CEN_EMCEGA(AliVEvent::kCentral | AliVEvent::kEMCEGA);
2794 UInt_t SEM_EMCEGA(AliVEvent::kSemiCentral | AliVEvent::kEMCEGA);
2795 UInt_t ALL_EMCEGA(AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral | AliVEvent::kEMCEGA);
2841 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 2842 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2899 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 2900 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2902 AliAnalysisTaskJetV3::Dump();
2912 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 2913 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2922 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 2923 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2927 fFitControl =
new TF1(
"controlFit",
"pol0", 0, TMath::TwoPi());
2935 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 2936 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2939 printf(
" > Please add fOutputList first < \n");
2943 (cen) ? r =
new TH1F(
"R",
"R", cen->GetSize()-1, cen->GetArray()) : r =
new TH1F(
"R",
"R", 10, 0, 10);
2944 if(!cen) r->GetXaxis()->SetTitle(
"number of centrality bin");
2945 r->GetYaxis()->SetTitle(Form(
"Resolution #Psi_{%i}", h));
2946 for(
Int_t i(0); i < 10; i++) {
2947 TProfile* temp((TProfile*)
fOutputList->FindObject(Form(
"fProfV%iResolution_%i", h, i)));
2949 Double_t a(temp->GetBinContent(3)), b(temp->GetBinContent(5)),
c(temp->GetBinContent(7));
2950 Double_t d(temp->GetBinContent(9)), e(temp->GetBinContent(10)), f(temp->GetBinContent(11));
2951 Double_t _a(temp->GetBinError(3)), _b(temp->GetBinError(5)), _c(temp->GetBinError(7));
2952 Double_t _d(temp->GetBinError(9)), _e(temp->GetBinError(10)), _f(temp->GetBinError(11));
2954 if(a <= 0 || b <= 0 ||
c <= 0 || d <= 0 || e <= 0 || f <= 0)
continue;
2957 r->SetBinContent(1+i, TMath::Sqrt((a*b)/
c));
2958 if(i==0) r->SetNameTitle(
"VZEROA resolution",
"VZEROA resolution");
2959 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;
2960 if(error > 0.) error = TMath::Sqrt(error);
2961 r->SetBinError(1+i, error);
2964 r->SetBinContent(1+i, TMath::Sqrt((a*
c)/b));
2965 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;
2966 if(error > 0.) error = TMath::Sqrt(error);
2967 if(i==0) r->SetNameTitle(
"VZEROC resolution",
"VZEROC resolution");
2968 r->SetBinError(1+i, error);
2971 r->SetBinContent(1+i, TMath::Sqrt((b*
c)/a));
2972 if(i==0) r->SetNameTitle(
"TPC resolution",
"TPC resolution");
2973 r->SetBinError(1+i, TMath::Sqrt(_a*_a+_b*_b+_c*_c));
2976 r->SetBinContent(1+i, TMath::Sqrt((d*e)/f));
2977 if(i==0) r->SetNameTitle(
"VZEROComb resolution",
"VZEROComb resolution");
2978 r->SetBinError(1+i, TMath::Sqrt(_d*_d+_e*_e+_f*_f));
2990 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 2991 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
2995 printf(
" > Couldn't find resolution < \n");
2998 Double_t res(1./r->GetBinContent(1+r->FindBin(c)));
2999 TF1* line =
new TF1(
"line",
"pol0", 0, 200);
3000 line->SetParameter(0, res);
3010 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 3011 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
3021 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 3022 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
3024 Double_t r(refCumulants->GetBinContent(h-1));
3025 if(r > 0) r = TMath::Sqrt(r);
3026 TH1F* qc =
new TH1F(Form(
"QC2v%i", h), Form(
"QC2v%i", h), ptBins->GetSize()-1, ptBins->GetArray());
3028 for(
Int_t i(0); i < ptBins->GetSize(); i++) {
3030 a = diffCumlants->GetBinContent(1+i);
3031 b = diffCumlants->GetBinError(1+i);
3033 qc->SetBinContent(1+i, c);
3034 (a <= 0 || b <= 0) ? qc->SetBinError(1+i, b) : qc->SetBinError(1+i, TMath::Sqrt(c*c*b*b/(a*a)));
3045 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 3046 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
3057 Double_t chiC2[] = {0.771423, 1.10236, 1.38116, 1.48077, 1.31964, 1.10236, 0.674622, 0.600403, 0.273865};
3058 Double_t chiA2[] = {0.582214, 0.674622, 0.832214, 0.873962, 0.832214, 0.771423, 0.637146, 0.424255, 0.257385};
3059 Double_t chiC3[] = {0.493347, 0.493347, 0.458557, 0.407166, 0.356628, 0.273865, 0.176208, 6.10352e-05, 6.10352e-05};
3060 Double_t chiA3[] = {0.356628, 0.373474, 0.356628, 0.306702, 0.24115, 0.192322, 0.127869, 6.10352e-05, 6.10352e-05};
3067 Double_t sigmaC2[] = {0.000210563,0.000554248,0.00126934,0.00138031,0.00124522,0.000948494,0.00115442,0.000626186,0.000161246};
3068 Double_t sigmaA2[] = {0.000195393,0.000509235,0.00112734,0.00121416,0.00110601,0.00086572,0.0010805,0.000579927,0.00013517};
3069 Double_t sigmaC3[] = {0.000131573,0.000317261,0.000783971,0.000885244,0.000763271,0.000542612,0.000647701,0.000524767,0};
3070 Double_t sigmaA3[] = {0.000123304,0.000293338,0.000714463,0.000798547,0.00069079,0.000503398,0.000615878,0.000489984,0};
3078 if(!
fOADB ||
fOADB->IsZombie())
fOADB = TFile::Open(
"$ALICE_PHYSICS/OADB/PWGCF/VZERO/VZEROcalibEP.root");
3079 if(
fOADB->IsZombie()) {
3080 printf(
"OADB file $ALICE_PHYSICS/OADB/PWGCF/VZERO/VZEROcalibEP.root cannot be opened, CALIBRATION FAILED !");
3084 AliOADBContainer *cont = (AliOADBContainer*)
fOADB->Get(
"hMultV0BefCorr");
3087 printf(
"OADB object hMultV0BefCorr is not available in the file\n");
3091 if(!(cont->GetObject(run))){
3093 printf(
"OADB object hMultVZEROBefCorr is not available for run %i (used default run 137366)\n",run);
3099 AliFatal(Form(
"%s: Fatal error, couldn't read fVZEROgainEqualization from OADB object < \n", GetName()));
3103 TF1* fpol0 =
new TF1(
"fpol0",
"pol0");
3110 for(
Int_t iside=0;iside<2;iside++){
3111 for(
Int_t icoord=0;icoord<2;icoord++){
3112 for(
Int_t i=0;i < 9;i++){
3114 if(iside==0 && icoord==0)
3115 snprintf(namecont,100,
"hQxc2_%i",i);
3116 else if(iside==1 && icoord==0)
3117 snprintf(namecont,100,
"hQxa2_%i",i);
3118 else if(iside==0 && icoord==1)
3119 snprintf(namecont,100,
"hQyc2_%i",i);
3120 else if(iside==1 && icoord==1)
3121 snprintf(namecont,100,
"hQya2_%i",i);
3123 cont = (AliOADBContainer*)
fOADB->Get(namecont);
3125 printf(
"OADB object %s is not available in the file\n",namecont);
3129 if(!(cont->GetObject(run))){
3130 printf(
"OADB object %s is not available for run %i (used run 137366)\n",namecont,run);
3135 fMeanQ[i][iside][icoord] = ((TH1F *) cont->GetObject(run))->GetMean();
3136 fWidthQ[i][iside][icoord] = ((TH1F *) cont->GetObject(run))->GetRMS();
3139 if(iside==0 && icoord==0)
3140 snprintf(namecont,100,
"hQxc3_%i",i);
3141 else if(iside==1 && icoord==0)
3142 snprintf(namecont,100,
"hQxa3_%i",i);
3143 else if(iside==0 && icoord==1)
3144 snprintf(namecont,100,
"hQyc3_%i",i);
3145 else if(iside==1 && icoord==1)
3146 snprintf(namecont,100,
"hQya3_%i",i);
3148 cont = (AliOADBContainer*)
fOADB->Get(namecont);
3150 printf(
"OADB object %s is not available in the file\n",namecont);
3154 if(!(cont->GetObject(run))){
3155 printf(
"OADB object %s is not available for run %i (used run 137366)\n",namecont,run);
3159 fMeanQv3[i][iside][icoord] = ((TH1F *) cont->GetObject(run))->GetMean();
3160 fWidthQv3[i][iside][icoord] = ((TH1F *) cont->GetObject(run))->GetRMS();
3172 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 3173 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
3184 Double_t chiC2[] = {0.771423, 1.10236, 1.38116, 1.48077, 1.31964, 1.10236, 0.674622, 0.600403, 0.273865};
3185 Double_t chiA2[] = {0.582214, 0.674622, 0.832214, 0.873962, 0.832214, 0.771423, 0.637146, 0.424255, 0.257385};
3186 Double_t chiC3[] = {0.493347, 0.493347, 0.458557, 0.407166, 0.356628, 0.273865, 0.176208, 6.10352e-05, 6.10352e-05};
3187 Double_t chiA3[] = {0.356628, 0.373474, 0.356628, 0.306702, 0.24115, 0.192322, 0.127869, 6.10352e-05, 6.10352e-05};
3194 Double_t sigmaC2[] = {7.50161e-05,0.000186685,0.000283528,0.000251427,0.000258122,2.26943e-05,0,0,0};
3195 Double_t sigmaA2[] = {0.000633027,0.000598435,0.000520023,0.000602312,0.00141679,0.00351296,0,0,0};
3196 Double_t sigmaC3[] = {4.69125e-05,0.000106922,0.000177552,0.000149093,0.000149436,0,0,0,0};
3197 Double_t sigmaA3[] = {0.000651813,0.000686852,0.000713499,0.000759663,0.00153532,0,0,0,0};
3206 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 3207 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
3210 if (!gGrid) TGrid::Connect(
"alien");
3211 fOADB = TFile::Open(
"alien:///alice/cern.ch/user/r/rbertens/calibV0HIR.root");
3213 if(
fOADB->IsZombie()) {
3214 printf(
"OADB file could not be opened CALIBRATION FAILED !");
3218 AliOADBContainer* cont = (AliOADBContainer*)
fOADB->Get(
"hMultV0BefCorPfpx");
3221 for(
Int_t i(0); i < 2; i++) {
3224 AliOADBContainer* contQxnam = 0;
3225 if (fNHarm == 2) contQxnam = (AliOADBContainer*)
fOADB->Get(
"fqxa2m");
3226 else if (fNHarm == 3) contQxnam = (AliOADBContainer*)
fOADB->Get(
"fqxa3m");
3227 if(!contQxnam || !(contQxnam->GetObject(
fRunNumber))) {
3228 printf(
"OADB object fqyanm is not available for run %i\n",
fRunNumber);
3233 AliOADBContainer* contQynam = 0;
3234 if (fNHarm == 2) contQynam = (AliOADBContainer*)
fOADB->Get(
"fqya2m");
3235 else if (fNHarm == 3) contQynam = (AliOADBContainer*)
fOADB->Get(
"fqya3m");
3236 if(!contQynam || !(contQynam->GetObject(
fRunNumber))) {
3237 printf(
"OADB object fqyanm is not available for run %i\n",
fRunNumber);
3242 AliOADBContainer* contQxnas = 0;
3243 if (fNHarm == 2) contQxnas = (AliOADBContainer*)
fOADB->Get(
"fqxa2s");
3244 else if (fNHarm == 3) contQxnas = (AliOADBContainer*)
fOADB->Get(
"fqxa3s");
3246 if(!contQxnas || !(contQxnas->GetObject(
fRunNumber))) {
3247 printf(
"OADB object fqxans is not available for run %i\n",
fRunNumber);
3252 AliOADBContainer* contQynas = 0;
3253 if (fNHarm == 2) contQynas = (AliOADBContainer*)
fOADB->Get(
"fqya2s");
3254 else if (fNHarm == 3) contQynas = (AliOADBContainer*)
fOADB->Get(
"fqya3s");
3256 if(!contQynas || !(contQynas->GetObject(
fRunNumber))){
3257 printf(
"OADB object fqyans is not available for run %i\n",
fRunNumber);
3262 AliOADBContainer* contQxncm = 0;
3263 if (fNHarm == 2) contQxncm = (AliOADBContainer*)
fOADB->Get(
"fqxc2m");
3264 else if (fNHarm == 3) contQxncm = (AliOADBContainer*)
fOADB->Get(
"fqxc3m");
3266 if(!contQxncm || !(contQxncm->GetObject(
fRunNumber))) {
3267 printf(
"OADB object fqxcnm is not available for run %i\n",
fRunNumber);
3272 AliOADBContainer* contQyncm = 0;
3273 if (fNHarm == 2) contQyncm = (AliOADBContainer*)
fOADB->Get(
"fqyc2m");
3274 else if (fNHarm == 3) contQyncm = (AliOADBContainer*)
fOADB->Get(
"fqyc3m");
3275 if(!contQyncm || !(contQyncm->GetObject(
fRunNumber))) {
3276 printf(
"OADB object fqyc2m is not available for run %i\n",
fRunNumber);
3281 AliOADBContainer* contQxncs = 0;
3282 if (fNHarm == 2) contQxncs = (AliOADBContainer*)
fOADB->Get(
"fqxc2s");
3283 else if (fNHarm == 3) contQxncs = (AliOADBContainer*)
fOADB->Get(
"fqxc3s");
3284 if(!contQxncs || !(contQxncs->GetObject(
fRunNumber))) {
3285 printf(
"OADB object fqxc2s is not available for run %i\n",
fRunNumber);
3290 AliOADBContainer* contQyncs = 0;
3291 if (fNHarm == 2) contQyncs = (AliOADBContainer*)
fOADB->Get(
"fqyc2s");
3292 else if (fNHarm == 3) contQyncs = (AliOADBContainer*)
fOADB->Get(
"fqyc3s");
3293 if(!contQyncs || !(contQyncs->GetObject(
fRunNumber))){
3294 printf(
"OADB object fqycns is not available for run %i\n",
fRunNumber);
3304 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 3305 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
3313 v0Centr = InputEvent()->GetCentrality()->GetCentralityPercentile(
"V0M");
3316 if(v0Centr < 5)
return 0;
3317 else if(v0Centr < 10)
return 1;
3318 else if(v0Centr < 20)
return 2;
3319 else if(v0Centr < 30)
return 3;
3320 else if(v0Centr < 40)
return 4;
3321 else if(v0Centr < 50)
return 5;
3322 else if(v0Centr < 60)
return 6;
3323 else if(v0Centr < 70)
return 7;
3331 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 3332 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
3338 for(
Int_t i(0); i < iJets; i++) {
3342 if(jet->
Pt() > pt) {
3344 pt = leadingJet->
Pt();
3351 for(
Int_t i(0); i < iJets; i++) {
3357 if((jet->
Pt()-jet->
Area()*rho) > pt) {
3359 pt = (leadingJet->
Pt()-jet->
Area()*rho);
3368 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 3369 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
3375 AliVParticle* leadingTrack(0x0);
3376 for(
Int_t i(0); i < iTracks; i++) {
3377 AliVParticle* vp(static_cast<AliVParticle*>(jet->
TrackAt(i,
fTracksCont->GetArray())));
3378 if(vp && (vp->Pt() > maxPt)) {
3383 return leadingTrack;
3388 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 3389 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
3393 TH1F* temp((TH1F*)hist->Clone(Form(
"EP_weights_cen_%i", c)));
3394 Double_t integral(hist->Integral()/hist->GetNbinsX());
3396 for(
Int_t i(0); i < hist->GetNbinsX(); i++) {
3397 temp->SetBinError(1+i, 0.);
3398 temp->SetBinContent(1+i, integral/hist->GetBinContent(1+i));
3405 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 3406 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
3420 "kMUL7 kMuonLikePB",
3421 "kMUU7 kMuonUnlikePB",
3425 "kPHI7 kPHI8 kPHOSPb",
3435 "kMuonSingleHighPt8",
3437 "kMuonUnlikeLowPt8",
3438 "kMuonUnlikeLowPt0",
3441 TString notTriggered =
"not fired";
3442 printf(
" > trigger is %u \n ", trigger);
3445 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());
3448 printf(
" ====== accepted trigger combinations ======= \n");
3449 UInt_t MB_EMCEJE(AliVEvent::kMB | AliVEvent::kEMCEJE);
3450 UInt_t CEN_EMCEJE(AliVEvent::kCentral | AliVEvent::kEMCEJE);
3451 UInt_t SEM_EMCEJE(AliVEvent::kSemiCentral | AliVEvent::kEMCEJE);
3452 UInt_t ALL_EMCEJE(AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral | AliVEvent::kEMCEJE);
3453 UInt_t MB_EMCEGA(AliVEvent::kMB | AliVEvent::kEMCEGA);
3454 UInt_t CEN_EMCEGA(AliVEvent::kCentral | AliVEvent::kEMCEGA);
3455 UInt_t SEM_EMCEGA(AliVEvent::kSemiCentral | AliVEvent::kEMCEGA);
3456 UInt_t ALL_EMCEGA(AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral | AliVEvent::kEMCEGA);
3457 if(trigger == 0) printf(
"(trigger == 0)\n");
3458 if(trigger & AliVEvent::kAny) printf(
"(trigger & AliVEvent::kAny)\n");
3459 if(trigger & AliVEvent::kAnyINT) printf(
"(trigger & AliVEvent::kAnyINT\n");
3460 if(trigger & AliVEvent::kMB) printf(
"(trigger & AliVEvent::kMB)\n");
3461 if(trigger & AliVEvent::kCentral) printf(
"(trigger & AliVEvent::kCentral)\n");
3462 if(trigger & AliVEvent::kSemiCentral) printf(
"(trigger & AliVEvent::kSemiCentral)\n");
3463 if(trigger & AliVEvent::kEMCEJE) printf(
"(trigger & AliVEvent::kEMCEJE)\n");
3464 if(trigger & AliVEvent::kEMCEGA) printf(
"(trigger & AliVEvent::kEMCEGA)\n");
3465 if((trigger & MB_EMCEJE) == MB_EMCEJE) printf(
"(trigger & MB_EMCEJE) == MB_EMCEJE)\n");
3466 if((trigger & CEN_EMCEJE) == CEN_EMCEJE) printf(
"(trigger & CEN_EMCEJE) == CEN_EMCEJE)\n");
3467 if((trigger & SEM_EMCEJE) == SEM_EMCEJE) printf(
"(trigger & SEM_EMCEJE) == SEM_EMCEJE)\n");
3468 if((trigger & ALL_EMCEJE) == ALL_EMCEJE) printf(
"(trigger & ALL_EMCEJE) == ALL_EMCEJE)\n");
3469 if((trigger & MB_EMCEGA) == MB_EMCEGA) printf(
"(trigger & MB_EMCEGA) == MB_EMCEGA)\n");
3470 if((trigger & CEN_EMCEGA) == CEN_EMCEGA) printf(
"(trigger & CEN_EMCEGA) == CEN_EMCEGA)\n");
3471 if((trigger & SEM_EMCEGA) == SEM_EMCEGA) printf(
"(trigger & SEM_EMCEGA) == SEM_EMCEGA)\n");
3472 if((trigger & ALL_EMCEGA) == ALL_EMCEGA) printf(
"(trigger & ALL_EMCEGA) == ALL_EMCEGA)\n");
3480 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());
3483 dNdphi->SetParameter(0, v2);
3484 dNdphi->SetParameter(2, v3);
3485 dNdphi->SetParameter(4, v4);
3490 dNdphi->SetParameter(1,
gRandom->Uniform(-TMath::Pi()/2.,TMath::Pi()/2.));
3491 dNdphi->SetParameter(3,
gRandom->Uniform(-TMath::Pi()/3.,TMath::Pi()/3.));
3492 dNdphi->SetParameter(5,
gRandom->Uniform(-TMath::Pi()/4.,TMath::Pi()/4.));
3496 for(
Int_t j(0); j < 100; j++) {
3497 Double_t x = dNdphi->GetRandom(0, TMath::TwoPi());
3498 qx+=TMath::Cos(2.*x);
3499 qy+=TMath::Sin(2.*x);
3501 Double_t ep(TMath::ATan2(qy,qx)/2.);
3504 for(
Int_t j(0); j < 500; j++) {
3505 Double_t x(dNdphi->GetRandom(0, TMath::TwoPi())-ep);
3508 (x > TMath::Pi()/4. && x < 3*TMath::Pi()/4.) ? out++ : in++;
3510 r += TMath::Cos(2.*(ep-dNdphi->GetParameter(1)));
3514 cout <<
" event plane resolution is: " << r << endl;
3517 Double_t ratio = pre*((in-out)/(in+out));
3520 Double_t error2 = (4.*out*out/(TMath::Power(in+out, 4)))*ein*ein+(4.*in*in/(TMath::Power(in+out, 4)))*eout*eout;
3521 error2 = error2*pre*pre;
3522 if(error2 > 0) error2 = TMath::Sqrt(error2);
3524 dNdphi->SetTitle(
"total");
3526 cout <<
"in: " << in <<
"\t out: " << out << endl;
3527 cout <<
"v2: " << ratio <<
"\t error: " << error2 << endl;
3529 TF1* dNdphi2 =
new TF1(
"dNdphi",
"1.+2.*([0]*TMath::Cos(2.*(x-[1])))", 0, 2*TMath::Pi());
3530 TF1* dNdphi3 =
new TF1(
"dNdphi",
"1.+2.*([0]*TMath::Cos(3.*(x-[1])))", 0, 2*TMath::Pi());
3531 TF1* dNdphi4 =
new TF1(
"dNdphi",
"1.+2.*([0]*TMath::Cos(4.*(x-[1])))", 0, 2*TMath::Pi());
3533 dNdphi2->SetParameter(0, dNdphi->GetParameter(0));
3534 dNdphi2->SetParameter(1, dNdphi->GetParameter(1));
3535 dNdphi2->SetLineColor(kBlue);
3536 dNdphi2->SetLineStyle(7);
3537 dNdphi2->SetTitle(
"v_{2}");
3538 dNdphi2->DrawCopy(
"same");
3540 dNdphi3->SetParameter(0, dNdphi->GetParameter(2));
3541 dNdphi3->SetParameter(1, dNdphi->GetParameter(3));
3542 dNdphi3->SetLineColor(kGreen);
3543 dNdphi3->SetLineStyle(7);
3544 dNdphi3->SetTitle(
"v_{3}");
3545 dNdphi3->DrawCopy(
"same");
3547 dNdphi4->SetParameter(0, dNdphi->GetParameter(4));
3548 dNdphi4->SetParameter(1, dNdphi->GetParameter(5));
3549 dNdphi4->SetLineColor(kMagenta);
3550 dNdphi4->SetLineStyle(7);
3551 dNdphi4->SetTitle(
"v_{4}");
3552 dNdphi4->DrawCopy(
"same");
3559 #ifdef ALIANALYSISTASKJETV3_DEBUG_FLAG_1 3560 printf(
"__FILE__ = %s \n __LINE __ %i , __FUNC__ %s \n ", __FILE__, __LINE__, __func__);
3562 AliMultSelection *multSelection = 0x0;
3563 if(!InputEvent())
return -1.;
3564 multSelection =
static_cast<AliMultSelection*
>(InputEvent()->FindListObject(
"MultSelection"));
3565 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
Int_t TrackAt(Int_t idx) const
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)
Apply cut on azimuthal angle of the all tracks in the track container with index c...
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
Get cluster container attached to this task.
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
Double_t nEvents
plot quality messages
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
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)
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()
Performing event selection.
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
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
AliTrackContainer * GetTrackContainer(Int_t i=0) const
Float_t fExcludeLeadingJetsFromFit
Float_t fPercentageOfFits
Bool_t PassesExperimentalHighLumiCuts(AliAODEvent *event)
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
void CalculateRandomCone(Float_t &pt, Float_t &eta, Float_t &phi, AliTrackContainer *tracksCont, AliClusterContainer *clusterCont=0x0, AliEmcalJet *jet=0x0) const