25 #include <TClonesArray.h> 31 #include <THnSparse.h> 32 #include <TDatabasePDG.h> 33 #include <Riostream.h> 35 #include "AliAnalysisManager.h" 36 #include "AliAODHandler.h" 37 #include "AliAODEvent.h" 38 #include "AliAODVertex.h" 39 #include "AliAODTrack.h" 40 #include "AliAODMCHeader.h" 41 #include "AliAODMCParticle.h" 42 #include "AliAODRecoDecay.h" 46 #include "AliAnalysisTaskSE.h" 65 fHistAllV0multNTPCout(0),
66 fHistSelV0multNTPCout(0),
76 fCosPiKPhiHist3D(0x0),
85 fWriteOnlySignal(kFALSE),
86 fDoCutVarHistos(kTRUE),
87 fUseSelectionBit(kFALSE),
89 fFillSparseDplus(kFALSE),
90 fFillImpParSparse(kFALSE),
91 fFillAcceptanceLevel(kTRUE),
94 fDoCutV0multTPCout(kFALSE),
104 fMaxDeltaPhiMass4Rot(0.010),
109 fMultSelectionObjectName(
"MultSelection"),
114 for (
Int_t i = 0; i < 3; i++)
119 for (
Int_t i = 0; i < 4; i++)
150 for (
Int_t i = 0; i < kMaxPtBins + 1; i++)
154 for (
Int_t i = 0; i < 4; i++)
222 for (
Int_t i = 0; i < 3; i++)
227 for (
Int_t i = 0; i < 4; i++)
258 for (
Int_t i = 0; i < kMaxPtBins + 1; i++)
263 for (
Int_t i = 0; i < 4; i++)
274 DefineOutput(1, TList::Class());
276 DefineOutput(2, TList::Class());
278 DefineOutput(3, AliNormalizationCounter::Class());
283 DefineOutput(4, TNtuple::Class());
293 printf(
"Max. number of Pt bins = %d\n",
kMaxPtBins);
313 printf(
"Number of Pt bins = %d\n",
fNPtBins);
341 for (
Int_t i = 0; i < 4; i++)
377 for (
Int_t i = 0; i < 3; i++)
387 for (
Int_t i = 0; i < 4; i++)
390 for (
Int_t i = 0; i < 4; i++)
442 AliWarning(
"Centrality estimator not valid");
455 printf(
"AnalysisTaskSEDs::Init() \n");
462 analysis->SetName(
"AnalysisCuts");
480 printf(
"AnalysisTaskSEDs::UserCreateOutputObjects() \n");
485 fOutput->SetName(
"OutputHistos");
487 fHistNEvents =
new TH1F(
"hNEvents",
"number of events ", 16, -0.5, 15.5);
488 fHistNEvents->GetXaxis()->SetBinLabel(1,
"nEventsRead");
489 fHistNEvents->GetXaxis()->SetBinLabel(2,
"nEvents Matched dAOD");
490 fHistNEvents->GetXaxis()->SetBinLabel(3,
"nEvents Mismatched dAOD");
491 fHistNEvents->GetXaxis()->SetBinLabel(4,
"nEventsAnal");
492 fHistNEvents->GetXaxis()->SetBinLabel(5,
"n. passing IsEvSelected");
493 fHistNEvents->GetXaxis()->SetBinLabel(6,
"n. rejected due to trigger");
494 fHistNEvents->GetXaxis()->SetBinLabel(7,
"n. rejected due to not reco vertex");
495 fHistNEvents->GetXaxis()->SetBinLabel(8,
"n. rejected for contr vertex");
496 fHistNEvents->GetXaxis()->SetBinLabel(9,
"n. rejected for vertex out of accept");
497 fHistNEvents->GetXaxis()->SetBinLabel(10,
"n. rejected for pileup events");
498 fHistNEvents->GetXaxis()->SetBinLabel(11,
"no. of out centrality events");
499 fHistNEvents->GetXaxis()->SetBinLabel(12,
"no. of 3 prong candidates");
500 fHistNEvents->GetXaxis()->SetBinLabel(13,
"no. of Ds after filtering cuts");
501 fHistNEvents->GetXaxis()->SetBinLabel(14,
"no. of Ds after selection cuts");
502 fHistNEvents->GetXaxis()->SetBinLabel(15,
"no. of not on-the-fly rec Ds");
503 fHistNEvents->GetXaxis()->SetBinLabel(16,
"no. of Ds rejected by preselect");
510 fHistCentrality[0] =
new TH1F(
"hCentr",
"centrality", 10000, 0., 100.);
511 fHistCentrality[1] =
new TH1F(
"hCentr(selectedCent)",
"centrality(selectedCent)", 10000, 0., 100.);
512 fHistCentrality[2] =
new TH1F(
"hCentr(OutofCent)",
"centrality(OutofCent)", 10000, 0., 100.);
514 fHistCentralityMult[1] =
new TH2F(
"hCentrMult(selectedCent)",
"centrality vs mult(selectedCent)", 100, 0.5, 30000.5, 40, 0., 100.);
515 fHistCentralityMult[2] =
new TH2F(
"hCentrMult(OutofCent)",
"centrality vs mult(OutofCent)", 100, 0.5, 30000.5, 40, 0., 100.);
516 for (
Int_t i = 0; i < 3; i++)
523 fHistAllV0multNTPCout =
new TH2F(
"HistAllV0multNTPCout",
"V0mult vs # TPCout (all) ;V0mult ;# TPCout", 1000, 0., 40000, 1000, 0, 30000);
524 fHistSelV0multNTPCout =
new TH2F(
"HistSelV0multNTPCout",
"V0mult vs # TPCout (sel) ;V0mult ;# TPCout", 1000, 0., 40000, 1000, 0, 30000);
529 Double_t massDs = TDatabasePDG::Instance()->GetParticle(431)->Mass();
532 if (nInvMassBins % 2 == 1)
542 for (
Int_t iType = 0; iType < 4; iType++)
566 hisname.Form(
"hMass%sPt%d", htype.Data(), i);
569 hisname.Form(
"hMass%sPt%dphi", htype.Data(), i);
572 hisname.Form(
"hMass%sPt%dk0st", htype.Data(), i);
575 hisname.Form(
"hCosP%sPt%d", htype.Data(), i);
576 fCosPHist[index] =
new TH1F(hisname.Data(), hisname.Data(), 100, 0.5, 1.);
577 hisname.Form(
"hCosPxy%sPt%d", htype.Data(), i);
578 fCosPxyHist[index] =
new TH1F(hisname.Data(), hisname.Data(), 100, 0.5, 1.);
579 hisname.Form(
"hDLen%sPt%d", htype.Data(), i);
580 fDLenHist[index] =
new TH1F(hisname.Data(), hisname.Data(), 100, 0., 0.5);
581 hisname.Form(
"hDLenxy%sPt%d", htype.Data(), i);
582 fDLenxyHist[index] =
new TH1F(hisname.Data(), hisname.Data(), 100, 0., 0.5);
583 hisname.Form(
"hNDLenxy%sPt%d", htype.Data(), i);
584 fNDLenxyHist[index] =
new TH1F(hisname.Data(), hisname.Data(), 100, 0., 11.);
585 hisname.Form(
"hSumd02%sPt%d", htype.Data(), i);
586 fSumd02Hist[index] =
new TH1F(hisname.Data(), hisname.Data(), 100, 0., 1.);
587 hisname.Form(
"hSigVert%sPt%d", htype.Data(), i);
588 fSigVertHist[index] =
new TH1F(hisname.Data(), hisname.Data(), 100, 0., 0.1);
589 hisname.Form(
"hPtMax%sPt%d", htype.Data(), i);
590 fPtMaxHist[index] =
new TH1F(hisname.Data(), hisname.Data(), 100, 0.5, 20.);
591 hisname.Form(
"hPtCand%sPt%d", htype.Data(), i);
592 fPtCandHist[index] =
new TH1F(hisname.Data(), hisname.Data(), 100, 0.5, 20.);
593 hisname.Form(
"hDCA%sPt%d", htype.Data(), i);
594 fDCAHist[index] =
new TH1F(hisname.Data(), hisname.Data(), 100, 0., 0.1);
595 hisname.Form(
"hNormIP%sPt%d", htype.Data(), i);
596 fNormIPHist[index] =
new TH1F(hisname.Data(), hisname.Data(), 100, 0., 6.);
597 hisname.Form(
"hCosPiDs%sPt%d", htype.Data(), i);
598 fCosPiDsHist[index] =
new TH1F(hisname.Data(), hisname.Data(), 100, 0.5, 1.);
599 hisname.Form(
"hCosPiKPhi%sPt%d", htype.Data(), i);
600 fCosPiKPhiHist[index] =
new TH1F(hisname.Data(), hisname.Data(), 100, 0., 0.5);
601 hisname.Form(
"hPtProng0%sPt%d", htype.Data(), i);
602 fPtProng0Hist[index] =
new TH1F(hisname.Data(), hisname.Data(), 100, 0.0, 20.);
603 hisname.Form(
"hPtProng1%sPt%d", htype.Data(), i);
604 fPtProng1Hist[index] =
new TH1F(hisname.Data(), hisname.Data(), 100, 0.0, 20.);
605 hisname.Form(
"hPtProng2%sPt%d", htype.Data(), i);
606 fPtProng2Hist[index] =
new TH1F(hisname.Data(), hisname.Data(), 100, 0.0, 20.);
607 hisname.Form(
"hDalitz%sPt%d", htype.Data(), i);
608 fDalitz[index] =
new TH2F(hisname.Data(), hisname.Data(), 100, 0., 2., 100, 0., 2.);
609 hisname.Form(
"hDalitz%sPt%dphi", htype.Data(), i);
610 fDalitzPhi[index] =
new TH2F(hisname.Data(), hisname.Data(), 100, 0., 2., 100, 0., 2.);
611 hisname.Form(
"hDalitz%sPt%dk0st", htype.Data(), i);
612 fDalitzK0st[index] =
new TH2F(hisname.Data(), hisname.Data(), 100, 0., 2., 100, 0., 2.);
645 fChanHist[0] =
new TH1F(
"hChanAll",
"KKpi and piKK candidates", 64, -0.5, 63.5);
646 fChanHist[1] =
new TH1F(
"hChanSig",
"KKpi and piKK candidates", 64, -0.5, 63.5);
647 fChanHist[2] =
new TH1F(
"hChanBkg",
"KKpi and piKK candidates", 64, -0.5, 63.5);
648 fChanHist[3] =
new TH1F(
"hChanReflSig",
"KKpi and piKK candidates", 64, -0.5, 63.5);
649 for (
Int_t i = 0; i < 4; i++)
655 fCosPHist3D =
new TH3F(
"fCosPHist3D",
"CosP vs Ds mass", nInvMassBins, minMass, maxMass, (
Int_t)
fPtLimits[fNPtBins], 0.,
fPtLimits[fNPtBins], 100, 0.5, 1.);
656 fCosPxyHist3D =
new TH3F(
"fCosPxyHist3D",
"CosPxy vs Ds mass", nInvMassBins, minMass, maxMass, (
Int_t)
fPtLimits[fNPtBins], 0.,
fPtLimits[fNPtBins], 100, 0.5, 1.);
657 fDLenHist3D =
new TH3F(
"fDLenHist3D",
"DLen vs Ds mass", nInvMassBins, minMass, maxMass, (
Int_t)
fPtLimits[fNPtBins], 0.,
fPtLimits[fNPtBins], 100, 0., 0.5);
658 fDLenxyHist3D =
new TH3F(
"fDLenxyHist3D",
"DLenxy vs Ds mass", nInvMassBins, minMass, maxMass, (
Int_t)
fPtLimits[fNPtBins], 0.,
fPtLimits[fNPtBins], 100, 0., 0.5);
659 fNDLenxyHist3D =
new TH3F(
"fNDLenxyHist3D",
"NDLenxy vs Ds mass", nInvMassBins, minMass, maxMass, (
Int_t)
fPtLimits[fNPtBins], 0.,
fPtLimits[fNPtBins], 100, 0., 11.);
660 fSigVertHist3D =
new TH3F(
"fSigVertHist3D",
"SigVert vs Ds mass", nInvMassBins, minMass, maxMass, (
Int_t)
fPtLimits[fNPtBins], 0.,
fPtLimits[fNPtBins], 100, 0., 0.1);
661 fDCAHist3D =
new TH3F(
"fDCAHist3D",
"DCA vs Ds mass", nInvMassBins, minMass, maxMass, (
Int_t)
fPtLimits[fNPtBins], 0.,
fPtLimits[fNPtBins], 100, 0., 0.1);
662 fNormIPHist3D =
new TH3F(
"fNormIPHist3D",
"nIP vs Ds mass", nInvMassBins, minMass, maxMass, (
Int_t)
fPtLimits[fNPtBins], 0.,
fPtLimits[fNPtBins], 100, 0., 6.);
663 fCosPiDsHist3D =
new TH3F(
"fCosPiDsHist3D",
"CosPiDs vs Ds mass", nInvMassBins, minMass, maxMass, (
Int_t)
fPtLimits[fNPtBins], 0.,
fPtLimits[fNPtBins], 100, 0.5, 1.);
664 fCosPiKPhiHist3D =
new TH3F(
"fCosPiKPhiHist3D",
"CosPiKPhi vs Ds mass", nInvMassBins, minMass, maxMass, (
Int_t)
fPtLimits[fNPtBins], 0.,
fPtLimits[fNPtBins], 100, 0., 0.5);
665 fPtProng0Hist3D =
new TH3F(
"fPtProng0Hist3D",
"Pt prong0 vs Ds mass", nInvMassBins, minMass, maxMass, (
Int_t)
fPtLimits[fNPtBins], 0.,
fPtLimits[fNPtBins], 100, 0.0, 20.);
666 fPtProng1Hist3D =
new TH3F(
"fPtProng1Hist3D",
"Pt prong1 vs Ds mass", nInvMassBins, minMass, maxMass, (
Int_t)
fPtLimits[fNPtBins], 0.,
fPtLimits[fNPtBins], 100, 0.0, 20.);
667 fPtProng2Hist3D =
new TH3F(
"fPtProng2Hist3D",
"Pt prong2 vs Ds mass", nInvMassBins, minMass, maxMass, (
Int_t)
fPtLimits[fNPtBins], 0.,
fPtLimits[fNPtBins], 100, 0.0, 20.);
694 hisname.Form(
"hMassKKPt%d", i);
695 fMassHistKK[i] =
new TH1F(hisname.Data(), hisname.Data(), 200, 0.95, 1.35);
698 hisname.Form(
"hMassKpiPt%d", i);
699 fMassHistKpi[i] =
new TH1F(hisname.Data(), hisname.Data(), 200, 0.7, 1.1);
704 hisname.Form(
"hMassAllPt%dphi_RotBkg", i);
711 hisname.Form(
"fMassLSBkgHistPhiPt%d", i);
715 hisname.Form(
"fMassRSBkgHistPhiPt%d", i);
747 fNtupleDs =
new TNtuple(
"fNtupleDs",
"Ds",
"labDs:retcode:pdgcode0:Pt0:Pt1:Pt2:PtRec:P0:P1:P2:PidTrackBit0:PidTrackBit1:PidTrackBit2:PointingAngle:PointingAngleXY:DecLeng:DecLengXY:NorDecLeng:NorDecLengXY:InvMassKKpi:InvMasspiKK:sigvert:d00:d01:d02:dca:d0square:InvMassPhiKKpi:InvMassPhipiKK:InvMassK0starKKpi:InvMassK0starpiKK:cosinePiDsFrameKKpi:cosinePiDsFramepiKK:cosineKPhiFrameKKpi:cosineKPhiFramepiKK:centrality:runNumber");
753 fNtupleDs =
new TNtuple(
"fNtupleDs",
"Ds",
"Pt:InvMass:d0:origin");
773 if (matchingAODdeltaAODlevel < 0 || (matchingAODdeltaAODlevel == 0 &&
fAODProtection == 1))
782 TClonesArray *array3Prong = 0;
783 if (!aod && AODEvent() && IsStandardAOD())
790 AliAODHandler *aodHandler = (AliAODHandler *)((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
791 if (aodHandler->GetExtensions())
793 AliAODExtension *ext = (AliAODExtension *)aodHandler->GetExtensions()->FindObject(
"AliAOD.VertexingHF.root");
795 array3Prong = (TClonesArray *)aodFromExt->GetList()->FindObject(
"Charm3Prong");
800 array3Prong = (TClonesArray *)aod->GetList()->FindObject(
"Charm3Prong");
803 if (!aod || !array3Prong)
805 printf(
"AliAnalysisTaskSEDs::UserExec: Charm3Prong branch not found!\n");
811 if (!aod->GetPrimaryVertex() || TMath::Abs(aod->GetMagneticField()) < 0.001)
return;
820 Float_t ntracks = aod->GetNumberOfTracks();
842 Int_t runNumber = aod->GetRunNumber();
844 TClonesArray *arrayMC = 0;
845 AliAODMCHeader *mcHeader = 0;
848 AliAODVertex *vtx1 = (AliAODVertex *)aod->GetPrimaryVertex();
855 arrayMC = (TClonesArray *)aod->GetList()->FindObject(AliAODMCParticle::StdBranchName());
858 printf(
"AliAnalysisTaskSEDs::UserExec: MC particles branch not found!\n");
863 mcHeader = (AliAODMCHeader *)aod->GetList()->FindObject(AliAODMCHeader::StdBranchName());
866 printf(
"AliAnalysisTaskSEDs::UserExec: MC header branch not found!\n");
875 if (aod->GetTriggerMask() == 0 && (runNumber >= 195344 && runNumber <= 195677))
881 Double_t zMCVertex = mcHeader->GetVtxZ();
887 if (!isEvSel)
return;
897 AliAODVZERO *aodVZERO = (AliAODVZERO *)aod->GetVZEROData();
900 for (
int ich = 0; ich < 64; ich++)
901 V0mult += aodVZERO->GetMultiplicity(ich);
904 for (
Int_t i = 0; i < aod->GetNumberOfTracks(); ++i)
906 AliVTrack *track = aod->GetTrack(i);
909 if ((track->GetStatus() & AliVTrack::kTPCout))
913 if (nTPCout > (0.32 * V0mult + 750))
919 Int_t n3Prong = array3Prong->GetEntriesFast();
921 printf(
"Number of Ds->KKpi: %d\n", n3Prong);
923 Int_t pdgDstoKKpi[3] = {321, 321, 211};
926 Double_t massPhi = TDatabasePDG::Instance()->GetParticle(333)->Mass();
933 for (
Int_t i3Prong = 0; i3Prong < n3Prong; i3Prong++)
944 for(
Int_t ipr=0;ipr<3;ipr++){
945 AliAODTrack *tr=vHF->
GetProng(aod,d,ipr);
946 arrTracks.AddAt(tr,ipr);
969 AliAODVertex *origownvtx = 0x0;
974 fYVsPt->Fill(ptCand, rapid);
985 Int_t retCodeNoRes = retCodeAnalysisCuts;
994 if (retCodeNoRes & 1)
996 massKK_KKpi = d->InvMass2Prongs(0, 1, 321, 321);
997 massKp = d->InvMass2Prongs(1, 2, 321, 211);
1001 if (retCodeNoRes & 2)
1003 massKK_piKK = d->InvMass2Prongs(1, 2, 321, 321);
1004 masspK = d->InvMass2Prongs(0, 1, 211, 321);
1009 Int_t isKKpi = retCodeAnalysisCuts & 1;
1010 Int_t ispiKK = retCodeAnalysisCuts & 2;
1011 Int_t isPhiKKpi = retCodeAnalysisCuts & 4;
1012 Int_t isPhipiKK = retCodeAnalysisCuts & 8;
1013 Int_t isK0starKKpi = retCodeAnalysisCuts & 16;
1014 Int_t isK0starpiKK = retCodeAnalysisCuts & 32;
1016 if (retCodeAnalysisCuts > 0)
1040 if (weightKKpi > 1. || weightKKpi < 0.)
1042 if (weightpiKK > 1. || weightpiKK < 0.)
1046 fChanHist[0]->Fill(retCodeAnalysisCuts);
1048 const Int_t nProng = 3;
1051 Int_t indexMCKKpi = -1;
1052 Int_t indexMCpiKK = -1;
1054 Int_t labDplus = -1;
1055 Int_t pdgCode0 = -999;
1056 Int_t isMCSignal = -1;
1058 AliAODMCParticle *partDs = 0x0;
1060 Float_t trueImpParDsFromB = 99999.;
1064 labDs = d->MatchToMC(431, arrayMC, nProng, pdgDstoKKpi);
1067 partDs = (AliAODMCParticle*)arrayMC->At(labDs);
1068 Int_t labDau0 = ((AliAODTrack *)d->GetDaughter(0))->GetLabel();
1069 AliAODMCParticle *p = (AliAODMCParticle *)arrayMC->UncheckedAt(TMath::Abs(labDau0));
1070 pdgCode0 = TMath::Abs(p->GetPdgCode());
1074 if (pdgCode0 == 321)
1078 fChanHist[1]->Fill(retCodeAnalysisCuts);
1084 fChanHist[3]->Fill(retCodeAnalysisCuts);
1090 if (pdgCode0 == 211)
1094 fChanHist[1]->Fill(retCodeAnalysisCuts);
1100 fChanHist[3]->Fill(retCodeAnalysisCuts);
1107 labDplus = d->MatchToMC(411, arrayMC, nProng, pdgDstoKKpi);
1110 fChanHist[2]->Fill(retCodeAnalysisCuts);
1113 partDs = (AliAODMCParticle*)arrayMC->At(labDplus);
1114 Int_t labDau0 = ((AliAODTrack *)d->GetDaughter(0))->GetLabel();
1115 AliAODMCParticle *p = (AliAODMCParticle *)arrayMC->UncheckedAt(TMath::Abs(labDau0));
1116 pdgCode0 = TMath::Abs(p->GetPdgCode());
1128 fMassHist[index]->Fill(invMass_KKpi, weightKKpi);
1129 fPtVsMass->Fill(invMass_KKpi, ptCand, weightKKpi);
1131 if (
fDoBkgPhiSB && (0.010 < TMath::Abs(massKK_KKpi - massPhi)) && (TMath::Abs(massKK_KKpi - massPhi) < 0.030))
1133 if (massKK_KKpi < massPhi)
1149 if (
fReadMC && indexMCKKpi != -1)
1151 fMassHist[indexMCKKpi]->Fill(invMass_KKpi, weightKKpi);
1153 fMassHistPhi[indexMCKKpi]->Fill(invMass_KKpi, weightKKpi);
1160 Double_t array4ImpPar[3] = {invMass_KKpi, ptCand, impParxy};
1169 Double_t array4ImpParTrueB[3] = {invMass_KKpi, ptCand, trueImpParDsFromB};
1190 fMassHist[index]->Fill(invMass_piKK, weightpiKK);
1191 fPtVsMass->Fill(invMass_piKK, ptCand, weightpiKK);
1193 if (
fDoBkgPhiSB && (0.010 < TMath::Abs(massKK_piKK - massPhi)) && (TMath::Abs(massKK_piKK - massPhi) < 0.030))
1195 if (massKK_piKK < massPhi)
1211 if (
fReadMC && indexMCpiKK != -1)
1213 fMassHist[indexMCpiKK]->Fill(invMass_piKK, weightpiKK);
1215 fMassHistPhi[indexMCpiKK]->Fill(invMass_piKK, weightpiKK);
1222 Double_t array4ImpPar[3] = {invMass_piKK, ptCand, impParxy};
1233 Double_t array4ImpParTrueB[3] = {invMass_piKK, ptCand, trueImpParDsFromB};
1256 AliDebug(2,
"Using Histogram as Pt weight function");
1273 for (
Int_t ip = 0; ip < nProng; ip++)
1277 normIPprong[ip] = diffIP / errdiffIP;
1279 normIP = normIPprong[ip];
1280 else if (TMath::Abs(normIPprong[ip]) > TMath::Abs(normIP))
1281 normIP = normIPprong[ip];
1286 deltaMassKK = TMath::Abs(massKK_KKpi-massPhi);
1289 cosPiKPhi = TMath::Abs(cosPiKPhi * cosPiKPhi * cosPiKPhi);
1291 Double_t var4nSparse[
knVarForSparse] = {invMass_KKpi, ptCand, deltaMassKK * 1000, dlen * 1000, dlenxy * 1000, normdlxy, cosp * 100, cospxy * 100, sigvert * 1000, cosPiDs * 10, cosPiKPhi * 10, TMath::Abs(normIP), absimpparxy * 10000, nTracklets, evCentr};
1301 if (orig == 4)
fnSparseMC[2]->Fill(var4nSparse, ptWeight);
1302 else if (orig == 5)
fnSparseMC[3]->Fill(var4nSparse, ptWeight);
1313 deltaMassKK = TMath::Abs(massKK_piKK - massPhi);
1316 cosPiKPhi = TMath::Abs(cosPiKPhi * cosPiKPhi * cosPiKPhi);
1318 Double_t var4nSparse[
knVarForSparse] = {invMass_piKK, ptCand, deltaMassKK * 1000, dlen * 1000, dlenxy * 1000, normdlxy, cosp * 100, cospxy * 100, sigvert * 1000, cosPiDs * 10, cosPiKPhi * 10, TMath::Abs(normIP), absimpparxy * 10000, nTracklets, evCentr};
1328 if (orig == 4)
fnSparseMC[2]->Fill(var4nSparse, ptWeight);
1329 else if (orig == 5)
fnSparseMC[3]->Fill(var4nSparse, ptWeight);
1356 for (
Int_t ip = 0; ip < nProng; ip++)
1360 normIPprong[ip] = diffIP / errdiffIP;
1362 normIP = normIPprong[ip];
1363 else if (TMath::Abs(normIPprong[ip]) > TMath::Abs(normIP))
1364 normIP = normIPprong[ip];
1366 Double_t sumD02 = d->Getd0Prong(0) * d->Getd0Prong(0) + d->Getd0Prong(1) * d->Getd0Prong(1) + d->Getd0Prong(2) * d->Getd0Prong(2);
1369 for (
Int_t i = 0; i < 3; i++)
1371 if (d->PtProng(i) >
ptmax)
1372 ptmax = d->PtProng(i);
1394 cosPiKPhi = TMath::Abs(cosPiKPhi * cosPiKPhi * cosPiKPhi);
1412 fDalitz[index]->Fill(massKK_KKpi, massKp);
1414 fDalitzPhi[index]->Fill(massKK_KKpi, massKp);
1417 if (
fReadMC && indexMCKKpi != -1)
1419 fDalitz[indexMCKKpi]->Fill(massKK_KKpi, massKp);
1421 fDalitzPhi[indexMCKKpi]->Fill(massKK_KKpi, massKp);
1423 fDalitzK0st[indexMCKKpi]->Fill(massKK_KKpi, massKp);
1446 cosPiKPhi = TMath::Abs(cosPiKPhi * cosPiKPhi * cosPiKPhi);
1464 fDalitz[index]->Fill(massKK_piKK, masspK);
1466 fDalitzPhi[index]->Fill(massKK_piKK, masspK);
1470 if (
fReadMC && indexMCpiKK != -1)
1472 fDalitz[indexMCpiKK]->Fill(massKK_piKK, masspK);
1474 fDalitzPhi[indexMCpiKK]->Fill(massKK_piKK, masspK);
1476 fDalitzK0st[indexMCpiKK]->Fill(massKK_piKK, masspK);
1500 AliAODTrack *track0 = (AliAODTrack *)d->GetDaughter(0);
1501 AliAODTrack *track1 = (AliAODTrack *)d->GetDaughter(1);
1502 AliAODTrack *track2 = (AliAODTrack *)d->GetDaughter(2);
1509 tmp[1] =
Float_t(retCodeAnalysisCuts);
1511 tmp[3] = d->PtProng(0);
1512 tmp[4] = d->PtProng(1);
1513 tmp[5] = d->PtProng(2);
1515 tmp[7] = d->PProng(0);
1516 tmp[8] = d->PProng(1);
1517 tmp[9] = d->PProng(2);
1518 tmp[10] =
Int_t(bitMapPIDTrack0);
1519 tmp[11] =
Int_t(bitMapPIDTrack1);
1520 tmp[12] =
Int_t(bitMapPIDTrack2);
1530 tmp[22] = d->Getd0Prong(0);
1531 tmp[23] = d->Getd0Prong(1);
1532 tmp[24] = d->Getd0Prong(2);
1533 tmp[25] = d->GetDCA();
1534 tmp[26] = d->Getd0Prong(0) * d->Getd0Prong(0) + d->Getd0Prong(1) * d->Getd0Prong(1) + d->Getd0Prong(2) * d->Getd0Prong(2);
1535 tmp[27] = d->InvMass2Prongs(0, 1, 321, 321);
1536 tmp[28] = d->InvMass2Prongs(1, 2, 321, 321);
1537 tmp[29] = d->InvMass2Prongs(1, 2, 321, 211);
1538 tmp[30] = d->InvMass2Prongs(0, 1, 211, 321);
1544 tmp[36] = (
Float_t)(runNumber);
1547 if (isMCSignal >= 0)
1582 printf(
"AnalysisTaskSEDs: Terminate() \n");
1586 printf(
"ERROR: fOutput not available\n");
1592 printf(
"Number of analyzed events = %d\n", (
Int_t)
fHistNEvents->GetBinContent(2));
1596 printf(
"ERROR: fHistNEvents not available\n");
1610 Double_t zMCVertex = mcHeader->GetVtxZ();
1613 for (
Int_t iPart = 0; iPart < arrayMC->GetEntriesFast(); iPart++)
1616 AliAODMCParticle *mcPart =
dynamic_cast<AliAODMCParticle *
>(arrayMC->At(iPart));
1618 if (TMath::Abs(mcPart->GetPdgCode()) == 431)
1623 Bool_t isGoodDecay = kFALSE;
1624 Int_t labDau[3] = {-1, -1, -1};
1625 Bool_t isFidAcc = kFALSE;
1626 Bool_t isDaugInAcc = kFALSE;
1630 isGoodDecay = kTRUE;
1632 if (labDau[0] == -1)
1648 AliDebug(2,
"Using Histogram as Pt weight function");
1652 fnSparseMC[0]->Fill(var4nSparseAcc, ptWeight);
1654 fnSparseMC[1]->Fill(var4nSparseAcc, ptWeight);
1663 Bool_t isGoodDecay = kFALSE;
1664 Int_t labDau[3] = {-1, -1, -1};
1665 Bool_t isFidAcc = kFALSE;
1666 Bool_t isDaugInAcc = kFALSE;
1670 isGoodDecay = kTRUE;
1672 if (labDau[0] == -1)
1688 AliDebug(2,
"Using Histogram as Pt weight function");
1707 for (
Int_t iProng = 0; iProng < nProng; iProng++)
1709 AliAODMCParticle *mcPartDaughter =
dynamic_cast<AliAODMCParticle *
>(arrayMC->At(labDau[iProng]));
1710 if (!mcPartDaughter)
1714 Double_t eta = mcPartDaughter->Eta();
1715 Double_t pt = mcPartDaughter->Pt();
1716 if (TMath::Abs(eta) > 0.9 || pt < 0.1)
1728 const Int_t nprongs = 3;
1729 Double_t PxProng[nprongs], PyProng[nprongs], PzProng[nprongs], P2Prong[nprongs], mProng[nprongs];
1740 for (
Int_t ip = 0; ip < nprongs; ip++)
1742 PxProng[ip] = d->PxProng(ip);
1743 PyProng[ip] = d->PxProng(ip);
1744 PzProng[ip] = d->PzProng(ip);
1745 P2Prong[ip] = d->P2Prong(ip);
1746 mProng[ip] = TDatabasePDG::Instance()->GetParticle(pdg[ip])->Mass();
1749 for (
Int_t i = 0; i < 9; i++)
1755 Double_t phirot = TMath::Pi() * (5 / 6. + 1 / 27. * i);
1757 PxProng[idPion] = PxProng[idPion] * TMath::Cos(phirot) - PyProng[idPion] * TMath::Sin(phirot);
1758 PyProng[idPion] = PxProng[idPion] * TMath::Sin(phirot) + PyProng[idPion] * TMath::Cos(phirot);
1760 for (
Int_t j = 0; j < nprongs; j++)
1766 P2 = Px * Px + Py * Py + Pz * Pz;
1769 for (
Int_t j = 0; j < nprongs; j++)
1771 energysum += TMath::Sqrt(mProng[j] * mProng[j] + P2Prong[j]);
1773 Double_t mass = TMath::Sqrt(energysum * energysum - P2);
1783 Double_t massDs = TDatabasePDG::Instance()->GetParticle(431)->Mass();
1789 Int_t nTrklBins = 300;
1794 Int_t nCentrBins = 101;
1800 Int_t nBinsReco[
knVarForSparse] = {nInvMassBins, (
Int_t)
fPtLimits[
fNPtBins], 30, 20, 20, 20, 20, 20, 14, 6, 6, 12, 30, nTrklBins, nCentrBins};
1801 Double_t xminReco[
knVarForSparse] = {
minMass, 0., 0., 0., 0., 0., 90., 90., 0., 7., 0., 0., 0., 1., 0.};
1802 Double_t xmaxReco[
knVarForSparse] = {
maxMass,
fPtLimits[
fNPtBins], 15., 100., 100., 10., 100., 100., 70., 10., 3., 6., 300., 301., 101.};
1803 TString axis[
knVarForSparse] = {
"invMassDsAllPhi",
"p_{T}",
"#Delta Mass(KK)",
"dlen",
"dlen_{xy}",
"normdl_{xy}",
"cosP",
"cosP_{xy}",
"sigVert",
"cosPiDs",
"|cosPiKPhi^{3}|",
"normIP",
"ImpPar_{xy}",
"N tracklets", Form(
"Percentile (%s)",
fCentEstName.Data())};
1807 nInvMassBins = (
Int_t)(0.45 / fMassBinSize + 0.5);
1810 nBinsReco[0] = nInvMassBins;
1836 TString label[2] = {
"fromC",
"fromB"};
1837 for (
Int_t i = 0; i < 2; i++)
1841 fnSparseMC[i]->GetAxis(0)->SetTitle(
"p_{T} (GeV/c)");
1843 fnSparseMC[i]->GetAxis(2)->SetTitle(
"N tracklets");
1849 titleSparse = Form(
"MC nSparse D^{+} (%s)- %s",
fFillAcceptanceLevel ?
"Acc.Step" :
"Gen.Acc.Step", label[i].
Data());
1857 for (
Int_t i = 2; i < 4; i++)
1859 fnSparseMC[i] =
new THnSparseF(Form(
"fnSparseReco_%s", label[i - 2].
Data()), Form(
"MC nSparse (Reco Step)- %s", label[i - 2].
Data()), nSparseAxes, nBinsReco, xminReco, xmaxReco);
1860 for (
Int_t j = 0; j < nSparseAxes; j++)
1869 fnSparseMCDplus[i] =
new THnSparseF(Form(
"fnSparseRecoDplus_%s", label[i - 2].
Data()), Form(
"MC nSparse D^{+} (Reco Step)- %s", label[i - 2].
Data()), nSparseAxes, nBinsReco, xminReco, xmaxReco);
1870 for (
Int_t j = 0; j < nSparseAxes; j++)
1880 fnSparse =
new THnSparseF(
"fnSparse",
"nSparse", nSparseAxes, nBinsReco, xminReco, xmaxReco);
1881 for (
Int_t j = 0; j < nSparseAxes; j++)
1883 fnSparse->GetAxis(j)->SetTitle(Form(
"%s", axis[j].
Data()));
1894 Double_t massDs = TDatabasePDG::Instance()->GetParticle(431)->Mass();
1910 fImpParSparseMC[2] =
new THnSparseF(
"hMassPtImpParTrueBfeed",
"Mass vs. pt vs. true imppar -DfromB",
kVarForImpPar, nbins, xmin, xmax);
1923 for (
Int_t iSparse = 0; iSparse < 4; iSparse++)
1936 mcHeader->GetVertex(vtxTrue);
1938 partDs->XvYvZv(origD);
1940 Double_t pXdauTrue[3], pYdauTrue[3], pZdauTrue[3];
1941 for (
Int_t iDau = 0; iDau < 3; iDau++)
1943 pXdauTrue[iDau] = 0.;
1944 pYdauTrue[iDau] = 0.;
1945 pZdauTrue[iDau] = 0.;
1948 Int_t nDau = partDs->GetNDaughters();
1949 Int_t labelFirstDau = partDs->GetDaughter(0);
1953 for (
Int_t iDau = 0; iDau < 2; iDau++)
1955 Int_t ind = labelFirstDau + iDau;
1956 AliAODMCParticle *part =
dynamic_cast<AliAODMCParticle *
>(arrayMC->At(ind));
1959 AliError(
"Daughter particle not found in MC array");
1962 Int_t pdgCode = TMath::Abs(part->GetPdgCode());
1965 pXdauTrue[theDau] = part->Px();
1966 pYdauTrue[theDau] = part->Py();
1967 pZdauTrue[theDau] = part->Pz();
1972 Int_t nDauRes = part->GetNDaughters();
1975 Int_t labelFirstDauRes = part->GetDaughter(0);
1976 for (
Int_t iDauRes = 0; iDauRes < 2; iDauRes++)
1978 Int_t indDR = labelFirstDauRes + iDauRes;
1979 AliAODMCParticle *partDR =
dynamic_cast<AliAODMCParticle *
>(arrayMC->At(indDR));
1982 AliError(
"Daughter particle not found in MC array");
1986 Int_t pdgCodeDR = TMath::Abs(partDR->GetPdgCode());
1987 if (pdgCodeDR == 321)
1989 pXdauTrue[theDau] = partDR->Px();
1990 pYdauTrue[theDau] = partDR->Py();
1991 pZdauTrue[theDau] = partDR->Pz();
2001 AliError(
"Wrong number of decay prongs");
2005 Double_t d0dummy[3] = {0., 0., 0.};
2006 AliAODRecoDecayHF aodDsMC(vtxTrue, origD, 3, charge, pXdauTrue, pYdauTrue, pZdauTrue, d0dummy);
2018 fHistoPtWeight =
new TH1F(
"histoWeight",
"histoWeight", 500, 0., 50.);
2020 Float_t binc[500] = {1.695705, 1.743693, 1.790289, 1.835410, 1.878981, 1.920938, 1.961223, 1.999787, 2.036589, 2.071597, 2.104784, 2.136132, 2.165629, 2.193270, 2.219057, 2.174545, 2.064698, 1.959489, 1.858770, 1.762396, 1.670224, 1.582115, 1.497931, 1.417541, 1.340814, 1.267622, 1.197842, 1.131352, 1.068033, 1.007770, 0.950450, 0.895963, 0.844202, 0.795062, 0.748441, 0.704241, 0.662363, 0.622715, 0.585204, 0.549742, 0.516242, 0.484620, 0.454795, 0.426686, 0.400217, 0.375314, 0.351903, 0.329915, 0.309281, 0.289936, 0.271816, 0.254860, 0.239007, 0.224201, 0.210386, 0.197508, 0.185516, 0.174360, 0.163992, 0.154366, 0.145438, 0.137166, 0.129508, 0.122426, 0.115882, 0.109840, 0.104266, 0.099128, 0.094395, 0.090036, 0.086023, 0.082331, 0.078933, 0.075805, 0.072925, 0.070271, 0.067823, 0.065562, 0.063471, 0.061532, 0.059730, 0.058051, 0.056481, 0.055007, 0.053619, 0.052306, 0.051059, 0.049867, 0.048725, 0.047624, 0.046558, 0.045522, 0.044511, 0.043521, 0.042548, 0.041590, 0.040643, 0.039706, 0.038778, 0.037857, 0.036944, 0.036039, 0.035141, 0.034251, 0.033370, 0.032500, 0.031641, 0.030796, 0.029966, 0.029153, 0.028359, 0.027587, 0.026837, 0.026113, 0.025416, 0.024748, 0.024111, 0.023507, 0.022937, 0.022402, 0.021904, 0.021443, 0.021020, 0.020634, 0.020286, 0.019974, 0.019698, 0.019455, 0.019244, 0.019062, 0.018905, 0.018770, 0.018652, 0.018545, 0.018444, 0.018342, 0.018231, 0.018102, 0.017947, 0.017755, 0.017536, 0.017327, 0.017120, 0.016915, 0.016713, 0.016514, 0.016317, 0.016122, 0.015929, 0.015739, 0.015551, 0.015366, 0.015182, 0.015001, 0.014822, 0.014645, 0.014470, 0.014297, 0.014127, 0.013958, 0.013791, 0.013627, 0.013464, 0.013303, 0.013145, 0.012988, 0.012833, 0.012679, 0.012528, 0.012378, 0.012231, 0.012085, 0.011940, 0.011798, 0.011657, 0.011518, 0.011380, 0.011244, 0.011110, 0.010978, 0.010846, 0.010717, 0.010589, 0.010463, 0.010338, 0.010214, 0.010092, 0.009972, 0.009853, 0.009735, 0.009619, 0.009504, 0.009391, 0.009279, 0.009168, 0.009058, 0.008950, 0.008843, 0.008738, 0.008633, 0.008530, 0.008429, 0.008328, 0.008229, 0.008130, 0.008033, 0.007937, 0.007843, 0.007749, 0.007656, 0.007565, 0.007475, 0.007385, 0.007297, 0.007210, 0.007124, 0.007039, 0.006955, 0.006872, 0.006790, 0.006709, 0.006629, 0.006550, 0.006471, 0.006394, 0.006318, 0.006242, 0.006168, 0.006094, 0.006022, 0.005950, 0.005879, 0.005808, 0.005739, 0.005671, 0.005603, 0.005536, 0.005470, 0.005405, 0.005340, 0.005276, 0.005213, 0.005151, 0.005090, 0.005029, 0.004969, 0.004909, 0.004851, 0.004793, 0.004736, 0.004679, 0.004623, 0.004568, 0.004514, 0.004460, 0.004406, 0.004354, 0.004302, 0.004251, 0.004200, 0.004150, 0.004100, 0.004051, 0.004003, 0.003955, 0.003908, 0.003861, 0.003815, 0.003770, 0.003725, 0.003680, 0.003636, 0.003593, 0.003550, 0.003507, 0.003466, 0.003424, 0.003383, 0.003343, 0.003303, 0.003264, 0.003225, 0.003186, 0.003148, 0.003110, 0.003073, 0.003037, 0.003000, 0.002965, 0.002929, 0.002894, 0.002860, 0.002826, 0.002792, 0.002758, 0.002726, 0.002693, 0.002661, 0.002629, 0.002598, 0.002567, 0.002536, 0.002506, 0.002476, 0.002446, 0.002417, 0.002388, 0.002360, 0.002332, 0.002304, 0.002276, 0.002249, 0.002222, 0.002196, 0.002169, 0.002144, 0.002118, 0.002093, 0.002068, 0.002043, 0.002019, 0.001995, 0.001971, 0.001947, 0.001924, 0.001901, 0.001878, 0.001856, 0.001834, 0.001812, 0.001790, 0.001769, 0.001748, 0.001727, 0.001706, 0.001686, 0.001666, 0.001646, 0.001626, 0.001607, 0.001588, 0.001569, 0.001550, 0.001531, 0.001513, 0.001495, 0.001477, 0.001460, 0.001442, 0.001425, 0.001408, 0.001391, 0.001374, 0.001358, 0.001342, 0.001326, 0.001310, 0.001294, 0.001279, 0.001264, 0.001249, 0.001234, 0.001219, 0.001204, 0.001190, 0.001176, 0.001162, 0.001148, 0.001134, 0.001121, 0.001107, 0.001094, 0.001081, 0.001068, 0.001055, 0.001043, 0.001030, 0.001018, 0.001006, 0.000994, 0.000982, 0.000970, 0.000959, 0.000947, 0.000936, 0.000925, 0.000914, 0.000903, 0.000892, 0.000881, 0.000871, 0.000860, 0.000850, 0.000840, 0.000830, 0.000820, 0.000810, 0.000801, 0.000791, 0.000782, 0.000772, 0.000763, 0.000754, 0.000745, 0.000736, 0.000727, 0.000719, 0.000710, 0.000702, 0.000693, 0.000685, 0.000677, 0.000669, 0.000661, 0.000653, 0.000645, 0.000637, 0.000630, 0.000622, 0.000615, 0.000607, 0.000600, 0.000593, 0.000586, 0.000579, 0.000572, 0.000565, 0.000558, 0.000552, 0.000545, 0.000539, 0.000532, 0.000526, 0.000520, 0.000513, 0.000507, 0.000501, 0.000495, 0.000489, 0.000483, 0.000478, 0.000472, 0.000466, 0.000461, 0.000455, 0.000450, 0.000444, 0.000439, 0.000434, 0.000429, 0.000424, 0.000419, 0.000414, 0.000409, 0.000404, 0.000399, 0.000394, 0.000389, 0.000385, 0.000380, 0.000376, 0.000371, 0.000367, 0.000362, 0.000358, 0.000354, 0.000350, 0.000345, 0.000341, 0.000337, 0.000333, 0.000329, 0.000325, 0.000321, 0.000318, 0.000314, 0.000310, 0.000306, 0.000303, 0.000299, 0.000295, 0.000292, 0.000288, 0.000285, 0.000282, 0.000278, 0.000275, 0.000272, 0.000268, 0.000265, 0.000262, 0.000259, 0.000256, 0.000253, 0.000250, 0.000247, 0.000244, 0.000241, 0.000238, 0.000235};
2021 for (
Int_t i = 0; i < 500; i++)
2037 fHistoPtWeight =
new TH1F(
"histoWeight",
"histoWeight", 400, 0., 40.);
2039 Float_t binc[400] = {1.118416, 1.003458, 0.935514, 0.907222, 0.904359, 0.913668, 0.933906, 0.963898, 0.996388, 1.031708, 1.066404, 1.099683, 1.125805, 1.145181, 1.165910, 1.181905, 1.193425, 1.203891, 1.204726, 1.209411, 1.209943, 1.204763, 1.205291, 1.198912, 1.197390, 1.182005, 1.184194, 1.175994, 1.167881, 1.158348, 1.147190, 1.139833, 1.126940, 1.123322, 1.108389, 1.102199, 1.089464, 1.075874, 1.061964, 1.051429, 1.038113, 1.026668, 1.011441, 0.998567, 0.987658, 0.972434, 0.950068, 0.940758, 0.916880, 0.911931, 0.894512, 0.878691, 0.860589, 0.848025, 0.830774, 0.819399, 0.801134, 0.775276, 0.766382, 0.750495, 0.736935, 0.717529, 0.702637, 0.689152, 0.671334, 0.652030, 0.635696, 0.621365, 0.608362, 0.599019, 0.576024, 0.562136, 0.550938, 0.533587, 0.516410, 0.509744, 0.501655, 0.487402, 0.476469, 0.463762, 0.445979, 0.438088, 0.422214, 0.417467, 0.404357, 0.391450, 0.379996, 0.371201, 0.361497, 0.352912, 0.343189, 0.329183, 0.327662, 0.310783, 0.304525, 0.301007, 0.293306, 0.278332, 0.274419, 0.267361, 0.261459, 0.255514, 0.249293, 0.241129, 0.237600, 0.231343, 0.221982, 0.216872, 0.211094, 0.206954, 0.202333, 0.196572, 0.193274, 0.188240, 0.181817, 0.178364, 0.173614, 0.167135, 0.166055, 0.163423, 0.156557, 0.155821, 0.151985, 0.144909, 0.145062, 0.139720, 0.138873, 0.131892, 0.129969, 0.126509, 0.126978, 0.120451, 0.117661, 0.116300, 0.115604, 0.112215, 0.109237, 0.107720, 0.106419, 0.102050, 0.102777, 0.097406, 0.098447, 0.095964, 0.093868, 0.092430, 0.089329, 0.088249, 0.085881, 0.084417, 0.085498, 0.082444, 0.079151, 0.079565, 0.077811, 0.077293, 0.075218, 0.072445, 0.073054, 0.071545, 0.070279, 0.068046, 0.067854, 0.068092, 0.065378, 0.064405, 0.062060, 0.063391, 0.061718, 0.059616, 0.058913, 0.058895, 0.058311, 0.056320, 0.056527, 0.055349, 0.053701, 0.054735, 0.052264, 0.051277, 0.051554, 0.050545, 0.048995, 0.049507, 0.048466, 0.048156, 0.046809, 0.047600, 0.046078, 0.044801, 0.044113, 0.043700, 0.043530, 0.043396, 0.042556, 0.041048, 0.041657, 0.040394, 0.041314, 0.040720, 0.039656, 0.038478, 0.039276, 0.038777, 0.037730, 0.036918, 0.036466, 0.035827, 0.035285, 0.035963, 0.034371, 0.034757, 0.033205, 0.033666, 0.033266, 0.032583, 0.033570, 0.032102, 0.032107, 0.031464, 0.032160, 0.030091, 0.030564, 0.029464, 0.029613, 0.029626, 0.029512, 0.029324, 0.028607, 0.027628, 0.027251, 0.027072, 0.027077, 0.026724, 0.026961, 0.026303, 0.026237, 0.025454, 0.025133, 0.025365, 0.026014, 0.024807, 0.023901, 0.023459, 0.023405, 0.023654, 0.023981, 0.023675, 0.022493, 0.022781, 0.021801, 0.021704, 0.022372, 0.021189, 0.020681, 0.020779, 0.021324, 0.020558, 0.020901, 0.020586, 0.020808, 0.019276, 0.019516, 0.019706, 0.018935, 0.018632, 0.018516, 0.019187, 0.018916, 0.018039, 0.018208, 0.018045, 0.017628, 0.017916, 0.017711, 0.017838, 0.017222, 0.016565, 0.015733, 0.016264, 0.015826, 0.016090, 0.016622, 0.015802, 0.016621, 0.015441, 0.015309, 0.014860, 0.014935, 0.014968, 0.014443, 0.014485, 0.015136, 0.014078, 0.014414, 0.013908, 0.014071, 0.014078, 0.013766, 0.013436, 0.013507, 0.013480, 0.013224, 0.013041, 0.013935, 0.012885, 0.012453, 0.012528, 0.012492, 0.012225, 0.012542, 0.012706, 0.012136, 0.011902, 0.011560, 0.011448, 0.011861, 0.011271, 0.011831, 0.011159, 0.011171, 0.010966, 0.011311, 0.011002, 0.011130, 0.010995, 0.010450, 0.010663, 0.010678, 0.010492, 0.009861, 0.010507, 0.009916, 0.010121, 0.010029, 0.010046, 0.009370, 0.009647, 0.010104, 0.009282, 0.009830, 0.009403, 0.009148, 0.009172, 0.008893, 0.009158, 0.009019, 0.008780, 0.008579, 0.009063, 0.008634, 0.008988, 0.008265, 0.008581, 0.008575, 0.008690, 0.008181, 0.008352, 0.008150, 0.008430, 0.008256, 0.008119, 0.008453, 0.008447, 0.008021, 0.007938, 0.008025, 0.007718, 0.008127, 0.007651, 0.007590, 0.007316, 0.007839, 0.007504, 0.007341, 0.007527, 0.007263, 0.007668, 0.007306, 0.007271, 0.006910, 0.007257, 0.007260, 0.006810, 0.006967, 0.006887, 0.006867, 0.007202, 0.006829, 0.006370, 0.006710, 0.006417, 0.006361, 0.006800, 0.006410, 0.006323, 0.006790, 0.006322, 0.006673, 0.006547};
2040 for (
Int_t i = 0; i < 400; i++)
2056 fHistoPtWeight =
new TH1F(
"histoWeight",
"histoWeight", 400, 0., 40.);
2058 Float_t binc[400] = {2.166180, 1.866117, 1.667595, 1.547176, 1.486661, 1.457891, 1.426949, 1.399055, 1.383278, 1.349383, 1.317009, 1.282321, 1.234257, 1.181136, 1.136655, 1.087523, 1.037912, 0.993256, 0.944746, 0.900948, 0.865869, 0.827193, 0.794424, 0.757723, 0.733020, 0.700164, 0.682189, 0.659872, 0.637918, 0.615749, 0.593020, 0.574402, 0.556158, 0.542663, 0.525494, 0.516038, 0.503629, 0.490980, 0.479143, 0.469005, 0.457749, 0.447668, 0.436803, 0.427073, 0.418282, 0.407867, 0.395093, 0.387861, 0.374742, 0.369462, 0.360146, 0.351991, 0.342990, 0.336259, 0.327730, 0.322382, 0.314602, 0.303874, 0.299820, 0.293049, 0.287539, 0.280329, 0.274866, 0.269939, 0.263299, 0.256057, 0.249215, 0.242170, 0.235704, 0.230709, 0.220529, 0.213921, 0.208394, 0.202424, 0.196700, 0.194943, 0.192620, 0.187894, 0.184411, 0.180204, 0.172915, 0.169077, 0.162201, 0.159636, 0.153904, 0.148296, 0.143282, 0.139306, 0.135561, 0.132342, 0.128696, 0.123444, 0.122873, 0.116544, 0.114197, 0.112878, 0.110018, 0.104547, 0.103222, 0.100707, 0.098622, 0.096513, 0.094295, 0.091334, 0.090122, 0.087870, 0.084894, 0.083729, 0.082265, 0.081404, 0.080323, 0.078750, 0.078132, 0.076781, 0.074823, 0.074050, 0.072614, 0.070093, 0.069828, 0.068907, 0.066189, 0.066054, 0.064600, 0.061757, 0.061986, 0.059862, 0.059656, 0.056807, 0.055956, 0.054386, 0.054507, 0.051629, 0.050358, 0.049702, 0.049331, 0.047814, 0.046476, 0.045762, 0.045142, 0.043224, 0.043484, 0.041282, 0.041794, 0.040809, 0.039985, 0.039439, 0.038181, 0.037782, 0.036831, 0.036264, 0.036790, 0.035535, 0.034173, 0.034409, 0.033659, 0.033308, 0.032290, 0.030981, 0.031121, 0.030361, 0.029708, 0.028653, 0.028461, 0.028449, 0.027208, 0.026697, 0.025623, 0.026069, 0.025279, 0.024332, 0.024341, 0.024629, 0.024677, 0.024117, 0.024490, 0.024257, 0.023804, 0.024537, 0.023692, 0.023502, 0.023888, 0.023673, 0.023193, 0.023684, 0.023429, 0.023521, 0.023014, 0.023346, 0.022544, 0.021866, 0.021477, 0.021224, 0.021089, 0.020972, 0.020515, 0.019739, 0.019982, 0.019328, 0.019719, 0.019387, 0.018833, 0.018227, 0.018558, 0.018276, 0.017738, 0.017460, 0.017365, 0.017178, 0.017033, 0.017478, 0.016817, 0.017119, 0.016463, 0.016802, 0.016711, 0.016475, 0.017083, 0.016441, 0.016548, 0.016320, 0.016786, 0.015804, 0.016153, 0.015668, 0.015843, 0.015810, 0.015651, 0.015454, 0.014981, 0.014376, 0.014089, 0.013906, 0.013818, 0.013549, 0.013580, 0.013160, 0.013040, 0.012566, 0.012324, 0.012353, 0.012582, 0.011915, 0.011401, 0.011112, 0.011008, 0.011046, 0.011119, 0.010954, 0.010439, 0.010604, 0.010179, 0.010163, 0.010507, 0.009981, 0.009771, 0.009846, 0.010134, 0.009798, 0.009991, 0.009869, 0.010005, 0.009295, 0.009438, 0.009557, 0.009210, 0.009088, 0.009057, 0.009412, 0.009306, 0.008899, 0.009009, 0.008952, 0.008764, 0.008926, 0.008842, 0.008924, 0.008634, 0.008322, 0.007920, 0.008205, 0.008000, 0.008151, 0.008438, 0.008037, 0.008472, 0.007886, 0.007835, 0.007621, 0.007675, 0.007707, 0.007452, 0.007489, 0.007841, 0.007308, 0.007497, 0.007248, 0.007348, 0.007367, 0.007227, 0.007097, 0.007179, 0.007209, 0.007115, 0.007059, 0.007588, 0.007058, 0.006862, 0.006945, 0.006965, 0.006856, 0.007075, 0.007209, 0.006925, 0.006830, 0.006672, 0.006645, 0.006923, 0.006615, 0.006982, 0.006622, 0.006666, 0.006579, 0.006823, 0.006673, 0.006786, 0.006740, 0.006440, 0.006606, 0.006650, 0.006568, 0.006206, 0.006646, 0.006305, 0.006468, 0.006442, 0.006486, 0.006080, 0.006291, 0.006622, 0.006113, 0.006506, 0.006254, 0.006114, 0.006161, 0.006002, 0.006211, 0.006146, 0.006012, 0.005902, 0.006264, 0.005996, 0.006271, 0.005793, 0.006043, 0.006067, 0.006177, 0.005842, 0.005991, 0.005872, 0.006102, 0.006003, 0.005930, 0.006201, 0.006224, 0.005937, 0.005901, 0.005992, 0.005788, 0.006121, 0.005787, 0.005766, 0.005582, 0.006006, 0.005774, 0.005672, 0.005841, 0.005660, 0.006000, 0.005741, 0.005737, 0.005475, 0.005773, 0.005799, 0.005462, 0.005610, 0.005569, 0.005574, 0.005871, 0.005589, 0.005234, 0.005535, 0.005314, 0.005288, 0.005676, 0.005371, 0.005319, 0.005734, 0.005360, 0.005679, 0.005593};
2059 for (
Int_t i = 0; i < 400; i++)
2074 fHistoPtWeight =
new TH1F(
"histoWeight",
"histoWeight", 400, 0., 40.);
2076 Float_t binc[400] = {1.179906, 1.091249, 1.047774, 1.045579, 1.071679, 1.112413, 1.167414, 1.236240, 1.310301, 1.390289, 1.471711, 1.553389, 1.626886, 1.692115, 1.760647, 1.813658, 1.850817, 1.886699, 1.907671, 1.934832, 1.955433, 1.966727, 1.987262, 1.996316, 2.013326, 1.973926, 1.931144, 1.871654, 1.812942, 1.752718, 1.690846, 1.635303, 1.572611, 1.523510, 1.459790, 1.402510, 1.331908, 1.261575, 1.192241, 1.127915, 1.061798, 0.998830, 0.933514, 0.871774, 0.812936, 0.762844, 0.719340, 0.686587, 0.644108, 0.615714, 0.579512, 0.545254, 0.510508, 0.479884, 0.447423, 0.426154, 0.408934, 0.388264, 0.376424, 0.361389, 0.347757, 0.331685, 0.318029, 0.305285, 0.290922, 0.278523, 0.269807, 0.262025, 0.254878, 0.249325, 0.238179, 0.230899, 0.224792, 0.216253, 0.207879, 0.204465, 0.201153, 0.195373, 0.190926, 0.185773, 0.178589, 0.175371, 0.168959, 0.167004, 0.161705, 0.156809, 0.152788, 0.149806, 0.146429, 0.143478, 0.140037, 0.134813, 0.134679, 0.128205, 0.126078, 0.125038, 0.122214, 0.116329, 0.115044, 0.112427, 0.110279, 0.108098, 0.105784, 0.102628, 0.101429, 0.099101, 0.095464, 0.093631, 0.091491, 0.090045, 0.088374, 0.086188, 0.085067, 0.083168, 0.080636, 0.079414, 0.077610, 0.075013, 0.074825, 0.073932, 0.071106, 0.071050, 0.069574, 0.066593, 0.066924, 0.064876, 0.065064, 0.062345, 0.061980, 0.060859, 0.061616, 0.058952, 0.058079, 0.057894, 0.058031, 0.056604, 0.055180, 0.054490, 0.053909, 0.051768, 0.052210, 0.049552, 0.050152, 0.048955, 0.047953, 0.047224, 0.045588, 0.044985, 0.043728, 0.042934, 0.043434, 0.041834, 0.040118, 0.040281, 0.039348, 0.038987, 0.037793, 0.036258, 0.036420, 0.035528, 0.034761, 0.033524, 0.033296, 0.033280, 0.031825, 0.031351, 0.030329, 0.031103, 0.030401, 0.029481, 0.029247, 0.029352, 0.029174, 0.028286, 0.028500, 0.028017, 0.027293, 0.027932, 0.026779, 0.026379, 0.026628, 0.026211, 0.025508, 0.025877, 0.025433, 0.025328, 0.024636, 0.025069, 0.024282, 0.023625, 0.023278, 0.023074, 0.023000, 0.022943, 0.022514, 0.021767, 0.022180, 0.021594, 0.022175, 0.021944, 0.021456, 0.020901, 0.021419, 0.021230, 0.020738, 0.020322, 0.020055, 0.019686, 0.019371, 0.019725, 0.018835, 0.019029, 0.018163, 0.018398, 0.018163, 0.017719, 0.018126, 0.017208, 0.017086, 0.016622, 0.016865, 0.015663, 0.015791, 0.015108, 0.015069, 0.015033, 0.015006, 0.014940, 0.014604, 0.014133, 0.013968, 0.013904, 0.013934, 0.013780, 0.013930, 0.013727, 0.013940, 0.013763, 0.013826, 0.014192, 0.014801, 0.014347, 0.014048, 0.014009, 0.014197, 0.014571, 0.014999, 0.015030, 0.014491, 0.014891, 0.014456, 0.014596, 0.015256, 0.014648, 0.014492, 0.014756, 0.015344, 0.014986, 0.015433, 0.015394, 0.015756, 0.014778, 0.015145, 0.015478, 0.015051, 0.014986, 0.015067, 0.015793, 0.015748, 0.015188, 0.015502, 0.015533, 0.015340, 0.015759, 0.015745, 0.016026, 0.015635, 0.015194, 0.014579, 0.015225, 0.014963, 0.015365, 0.016030, 0.015387, 0.016341, 0.015327, 0.015340, 0.015030, 0.015246, 0.015420, 0.015015, 0.015195, 0.016021, 0.015034, 0.015528, 0.015114, 0.015423, 0.015564, 0.015348, 0.015107, 0.015314, 0.015411, 0.015243, 0.015154, 0.016324, 0.015215, 0.014823, 0.015030, 0.015104, 0.014896, 0.015400, 0.015721, 0.015131, 0.014951, 0.014630, 0.014597, 0.015235, 0.014583, 0.015418, 0.014648, 0.014769, 0.014601, 0.015167, 0.014857, 0.015134, 0.015053, 0.014405, 0.014800, 0.014921, 0.014760, 0.013966, 0.014979, 0.014230, 0.014620, 0.014581, 0.014701, 0.013799, 0.014299, 0.015071, 0.013931, 0.014846, 0.014290, 0.013988, 0.014113, 0.013767, 0.014263, 0.014131, 0.013840, 0.013604, 0.014456, 0.013853, 0.014505, 0.013416, 0.014010, 0.014081, 0.014352, 0.013589, 0.013952, 0.013690, 0.014241, 0.014024, 0.013868, 0.014517, 0.014587, 0.013927, 0.013857, 0.014084, 0.013619, 0.014417, 0.013644, 0.013607, 0.013185, 0.014200, 0.013665, 0.013437, 0.013849, 0.013431, 0.014252, 0.013648, 0.013652, 0.013039, 0.013761, 0.013836, 0.013043, 0.013408, 0.013319, 0.013344, 0.014065, 0.013400, 0.012560, 0.013294, 0.012773, 0.012721, 0.013663, 0.012939, 0.012823, 0.013835, 0.012942, 0.013723, 0.013525};
2077 for (
Int_t i = 0; i < 400; i++)
2092 fHistoPtWeight =
new TH1F(
"histoWeight",
"histoWeight", 400, 0., 40.);
2094 Float_t binc[400] = {1.489198, 1.386131, 1.328213, 1.309866, 1.324383, 1.364766, 1.424282, 1.496803, 1.576996, 1.660407, 1.743464, 1.823431, 1.898334, 1.966862, 2.028262, 2.082235, 2.128839, 2.168395, 2.201406, 2.228492, 2.250331, 2.267616, 2.281022, 2.291181, 2.298668, 2.303992, 2.307592, 2.309839, 2.311043, 2.311454, 2.311272, 2.310653, 2.309719, 2.308559, 2.307242, 2.305816, 2.304318, 2.302771, 2.301193, 2.299596, 2.297986, 2.296369, 2.294749, 2.293127, 2.291504, 2.289881, 2.288259, 2.286638, 2.285018, 2.283398, 2.281780, 2.280163, 2.278547, 2.276933, 2.275319, 2.273707, 2.272095, 2.270485, 2.268876, 2.267268, 2.265661, 2.264056, 2.262451, 2.260848, 2.259246, 2.257645, 2.256045, 2.254446, 2.252848, 2.251252, 2.249656, 2.248062, 2.246469, 2.244877, 2.243286, 2.241696, 2.240108, 2.238520, 2.236934, 2.235348, 2.233764, 2.232181, 2.230599, 2.229019, 2.227439, 2.225860, 2.224283, 2.222707, 2.221132, 2.219557, 2.217985, 2.216413, 2.214842, 2.213272, 2.211704, 2.210136, 2.208570, 2.207005, 2.205441, 2.203878, 2.202316, 2.200755, 2.199196, 2.197637, 2.196080, 2.194524, 2.192968, 2.192011, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000, 2.192000};
2095 for (
Int_t i = 0; i < 400; i++)
2109 fHistoPtWeight =
new TH1F(
"histoWeight",
"histoWeight", 500, 0., 50.);
2111 Float_t binc[500] = {0.7836, 0.7203, 0.6840, 0.6749, 0.6840, 0.7038, 0.7337, 0.7691, 0.8098, 0.8520, 0.8917, 0.9331, 0.9673, 0.9985, 1.0297, 1.0569, 1.0781, 1.0993, 1.1166, 1.1285, 1.1425, 1.1520, 1.1598, 1.1685, 1.1762, 1.1791, 1.1858, 1.1899, 1.1944, 1.1986, 1.1968, 1.2041, 1.2072, 1.2031, 1.2068, 1.2090, 1.2079, 1.2089, 1.2081, 1.2047, 1.2088, 1.2093, 1.2085, 1.2105, 1.2099, 1.2125, 1.2108, 1.2090, 1.2071, 1.2066, 1.2122, 1.2126, 1.2131, 1.2136, 1.2141, 1.2145, 1.2150, 1.2155, 1.2160, 1.2165, 1.2169, 1.2174, 1.2179, 1.2184, 1.2188, 1.2193, 1.2198, 1.2203, 1.2207, 1.2212, 1.2217, 1.2222, 1.2227, 1.2231, 1.2236, 1.2241, 1.2246, 1.2250, 1.2255, 1.2260, 1.2265, 1.2269, 1.2274, 1.2279, 1.2284, 1.2289, 1.2293, 1.2298, 1.2303, 1.2308, 1.2312, 1.2317, 1.2322, 1.2327, 1.2331, 1.2336, 1.2341, 1.2346, 1.2351, 1.2355, 1.2360, 1.2365, 1.2370, 1.2374, 1.2379, 1.2384, 1.2389, 1.2393, 1.2398, 1.2403, 1.2408, 1.2413, 1.2417, 1.2422, 1.2427, 1.2432, 1.2436, 1.2441, 1.2446, 1.2451, 1.2455, 1.2460, 1.2465, 1.2470, 1.2475, 1.2479, 1.2484, 1.2489, 1.2494, 1.2498, 1.2503, 1.2508, 1.2513, 1.2517, 1.2522, 1.2527, 1.2532, 1.2537, 1.2541, 1.2546, 1.2551, 1.2556, 1.2560, 1.2565, 1.2570, 1.2575, 1.2579, 1.2584, 1.2589, 1.2594, 1.2599, 1.2603, 1.2608, 1.2613, 1.2618, 1.2622, 1.2627, 1.2632, 1.2637, 1.2641, 1.2646, 1.2651, 1.2656, 1.2661, 1.2665, 1.2670, 1.2675, 1.2680, 1.2684, 1.2689, 1.2694, 1.2699, 1.2703, 1.2708, 1.2713, 1.2718, 1.2723, 1.2727, 1.2732, 1.2737, 1.2742, 1.2746, 1.2751, 1.2756, 1.2761, 1.2765, 1.2770, 1.2775, 1.2780, 1.2785, 1.2789, 1.2794, 1.2799, 1.2804, 1.2808, 1.2813, 1.2818, 1.2823, 1.2827, 1.2832, 1.2837, 1.2842, 1.2847, 1.2851, 1.2856, 1.2861, 1.2866, 1.2870, 1.2875, 1.2880, 1.2885, 1.2889, 1.2894, 1.2899, 1.2904, 1.2909, 1.2913, 1.2918, 1.2923, 1.2928, 1.2932, 1.2937, 1.2942, 1.2947, 1.2951, 1.2956, 1.2961, 1.2966, 1.2971, 1.2975, 1.2980, 1.2985, 1.2990, 1.2994, 1.2999, 1.3004, 1.3009, 1.3013, 1.3018, 1.3023, 1.3028, 1.3033, 1.3037, 1.3042, 1.3047, 1.3052, 1.3056, 1.3061, 1.3066, 1.3071, 1.3075, 1.3080, 1.3085, 1.3090, 1.3095, 1.3099, 1.3104, 1.3109, 1.3114, 1.3118, 1.3123, 1.3128, 1.3133, 1.3137, 1.3142, 1.3147, 1.3152, 1.3157, 1.3161, 1.3166, 1.3171, 1.3176, 1.3180, 1.3185, 1.3190, 1.3195, 1.3199, 1.3204, 1.3209, 1.3214, 1.3219, 1.3223, 1.3228, 1.3233, 1.3238, 1.3242, 1.3247, 1.3252, 1.3257, 1.3262, 1.3266, 1.3271, 1.3276, 1.3281, 1.3285, 1.3290, 1.3295, 1.3300, 1.3304, 1.3309, 1.3314, 1.3319, 1.3324, 1.3328, 1.3333, 1.3338, 1.3343, 1.3347, 1.3352, 1.3357, 1.3362, 1.3366, 1.3371, 1.3376, 1.3381, 1.3386, 1.3390, 1.3395, 1.3400, 1.3405, 1.3409, 1.3414, 1.3419, 1.3424, 1.3428, 1.3433, 1.3438, 1.3443, 1.3448, 1.3452, 1.3457, 1.3462, 1.3467, 1.3471, 1.3476, 1.3481, 1.3486, 1.3490, 1.3495, 1.3500, 1.3505, 1.3510, 1.3514, 1.3519, 1.3524, 1.3529, 1.3533, 1.3538, 1.3543, 1.3548, 1.3552, 1.3557, 1.3562, 1.3567, 1.3572, 1.3576, 1.3581, 1.3586, 1.3591, 1.3595, 1.3600, 1.3605, 1.3610, 1.3614, 1.3619, 1.3624, 1.3629, 1.3634, 1.3638, 1.3643, 1.3648, 1.3653, 1.3657, 1.3662, 1.3667, 1.3672, 1.3676, 1.3681, 1.3686, 1.3691, 1.3696, 1.3700, 1.3705, 1.3710, 1.3715, 1.3719, 1.3724, 1.3729, 1.3734, 1.3738, 1.3743, 1.3748, 1.3753, 1.3758, 1.3762, 1.3767, 1.3772, 1.3777, 1.3781, 1.3786, 1.3791, 1.3796, 1.3800, 1.3805, 1.3810, 1.3815, 1.3820, 1.3824, 1.3829, 1.3834, 1.3839, 1.3843, 1.3848, 1.3853, 1.3858, 1.3862, 1.3867, 1.3872, 1.3877, 1.3882, 1.3886, 1.3891, 1.3896, 1.3901, 1.3905, 1.3910, 1.3915, 1.3920, 1.3924, 1.3929, 1.3934, 1.3939, 1.3944, 1.3948, 1.3953, 1.3958, 1.3963, 1.3967, 1.3972, 1.3977, 1.3982, 1.3986, 1.3991, 1.3996, 1.4001, 1.4006, 1.4010, 1.4015, 1.4020, 1.4025, 1.4029, 1.4034, 1.4039, 1.4044, 1.4048, 1.4053, 1.4058, 1.4063, 1.4068, 1.4072, 1.4077, 1.4082, 1.4087, 1.4091, 1.4096, 1.4101, 1.4106, 1.4110, 1.4115, 1.4120, 1.4125, 1.4130, 1.4134, 1.4139, 1.4144, 1.4149, 1.4153, 1.4158, 1.4163, 1.4168, 1.4172, 1.4177, 1.4182, 1.4187, 1.4192, 1.4196, 1.4201, 1.4206, 1.4211, 1.4215, 1.4220, 1.4225, 1.4230, 1.4234, 1.4239, 1.4244, 1.4249, 1.4254, 1.4258, 1.4263};
2112 for (
Int_t i = 0; i < 500; i++)
2129 if ((bin2 > 0) && (bin2 <= histoNbins))
2131 Int_t bin1 = bin2 - 1;
2132 Int_t bin3 = bin2 + 1;
2135 if (bin2 == histoNbins)
2143 Double_t a = ((y_3 - y_2) * (x_1 - x_2) - (y_1 - y_2) * (x_3 - x_2)) / ((x_3 * x_3 - x_2 * x_2) * (x_1 - x_2) - (x_1 * x_1 - x_2 * x_2) * (x_3 - x_2));
2144 Double_t b = ((y_1 - y_2) - a * (x_1 * x_1 - x_2 * x_2)) / (x_1 - x_2);
2145 Double_t c = y_3 - a * (x_3 * x_3) - b * x_3;
2146 weight = a * pt * pt + b * pt +
c;
Double_t NormalizedDecayLengthXY() const
Bool_t IsEventRejectedDueToCentrality() const
AliAODTrack * GetProng(AliVEvent *event, AliAODRecoDecayHF *rd, Int_t iprong)
THnSparseF * fnSparseMCDplus[4]
TH1F * fPtMaxHist[4 *kMaxPtBins]
! hist. for Pt Max (Prod Cuts)
Bool_t IsEventRejectedDueToZVertexOutsideFiducialRegion() const
Double_t NormalizedDecayLength() const
THnSparseF * fnSparseMC[4]
!<!THnSparse for candidates on data
void SetPtWeightsFromFONLL5overLHC16i2abc()
Bool_t IsEventRejectedDueToNotRecoVertex() const
void CreateImpactParameterSparses()
Double_t InvMassDsKKpi() const
void StoreCandidates(AliVEvent *, Int_t nCand=0, Bool_t flagFilter=kTRUE)
void Getd0MeasMinusExpProng(Int_t ip, Double_t magf, Double_t &d0diff, Double_t &errd0diff) const
TH1F * fPtProng1Hist[4 *kMaxPtBins]
! hist. for DCA (Prod Cuts)
TH3F * fCosPxyHist3D
! cosPxy vs Ds mass vs pt
TH1F * fDLenxyHist[4 *kMaxPtBins]
! hist. of norm decay length XY (sig,bkg,tot)
TH1F * fNormIPHist[4 *kMaxPtBins]
! hist. for topomatic variable
TH3F * fPtProng1Hist3D
! Pt prong1 vs Ds mass vs pt
Double_t InvMassDspiKK() const
void SetPtBins(Int_t n, Float_t *lim)
Int_t IsEventSelectedInCentrality(AliVEvent *event)
Bool_t HasSelectionBit(Int_t i) const
TH1F * fNDLenxyHist[4 *kMaxPtBins]
! hist. of decay length XY (sig,bkg,tot)
TH2F * fDalitzK0st[4 *kMaxPtBins]
! dalitz plot via K0* (sig,bkg,tot)
static Int_t CheckDsDecay(AliMCEvent *mcEvent, Int_t label, Int_t *arrayDauLab)
void UnsetOwnPrimaryVtx()
Bool_t fFillSparseDplus
flag for usage of THnSparse
Double_t CosPiDsLabFrameKKpi() const
Double_t ImpParXY() const
Int_t GetHistoIndex(Int_t iPtBin) const
static Int_t CheckMatchingAODdeltaAODevents()
THnSparseF * fImpParSparse
!<!THnSparse for MC for D+->kkpi
TH3F * fSigVertHist3D
! SigVert vs Ds mass vs pt
Double_t fMassRange
limits for pt bins
Bool_t IsEventRejectedDueToVertexContributors() const
void SetPtWeightsFromFONLL5overLHC18a4a2()
TH2F * fPtVsMass
! hist. of pt vs. mass (prod. cuts)
Double_t CosPointingAngleXY() const
TH1F * fPtProng0Hist[4 *kMaxPtBins]
! hist. for Pt Max (Prod Cuts)
Bool_t FillRecoCand(AliVEvent *event, AliAODRecoDecayHF3Prong *rd3)
TH2F * fYVsPtSig
! hist. of Y vs. Pt (MC, only sig, prod. cuts)
TAxis * GetAxis(TDirectory *dir, const char *name, Bool_t verbose=true)
Int_t GetPidOption() const
THnSparseF * fImpParSparseMC[4]
!<!THnSparse for imp. par. on data
Float_t GetTrueImpactParameterDstoPhiPi(const AliAODMCHeader *mcHeader, TClonesArray *arrayMC, const AliAODMCParticle *partDs) const
virtual void UserCreateOutputObjects()
Implementation of interface methods.
virtual Bool_t IsInFiducialAcceptance(Double_t pt, Double_t y) const
static Int_t CheckOrigin(TClonesArray *arrayMC, AliAODMCParticle *mcPart, Bool_t searchUpToQuark=kTRUE)
Functions to check the decay tree.
Bool_t fFillSparse
flag for usage of HasSelectionBit
Double_t GetMaxVtxZ() const
TH1F * fSumd02Hist[4 *kMaxPtBins]
! hist. for sum d02 (Prod Cuts)
TH3F * fCosPiKPhiHist3D
! cosPiKPhi vs Ds mass vs pt
UInt_t GetPIDTrackTPCTOFBitMap(AliAODTrack *track) const
TH1F * fMassHistPhi[4 *kMaxPtBins]
! hist. of mass spectra via phi (sig,bkg,tot)
TH1F * fCosPiKPhiHist[4 *kMaxPtBins]
! hist. for CosPiKPhi
Bool_t fDoBkgPhiSB
flag to create rotational bkg (rotating pi track)
THnSparseF * fnSparse
Cuts for Analysis.
TNtuple * fNtupleDs
! output ntuple
virtual ~AliAnalysisTaskSEDs()
void GetCentralityAxisName(Int_t flag)
TH1F * fMassRotBkgHistPhi[kMaxPtBins]
! hist. of bkg generated from rot. of the pion
void GenerateRotBkg(AliAODRecoDecayHF3Prong *d, Int_t dec, Int_t iPtBin)
Bool_t fDoRotBkg
flag for filling true reconstructed Ds at acceptance level (see FillMCGenAccHistos) ...
TH3F * fPtProng0Hist3D
! Pt prong0 vs Ds mass vs pt
TH1F * fHistCentrality[3]
!hist. for cent distr (all,sel ev, )
void SetPtWeightsFromFONLL5anddataoverLHC16i2a()
static Int_t GetNumberOfTrackletsInEtaRange(AliAODEvent *ev, Double_t mineta, Double_t maxeta)
TH3F * fDCAHist3D
! DCA vs Ds mass vs pt
TH3F * fCosPHist3D
! cosP vs Ds mass vs pt
AliNormalizationCounter * fCounter
flag to set mass window of phi meson (when using pion rotation to create bkg)
void SetPtWeightsFromFONLL13overLHC17c3a12()
TH2F * fHistCentralityMult[3]
!hist. for cent distr vs mult (all,sel ev, )
TH1F * fHistNEvents
! hist. for No. of events
static Int_t CheckDplusKKpiDecay(AliMCEvent *mcEvent, Int_t label, Int_t *arrayDauLab)
Double_t GetPtWeightFromHistogram(Double_t pt)
AliRDHFCutsDstoKKpi * fAnalysisCuts
TList * fOutput
! list send on output slot 0
TH2F * fHistAllV0multNTPCout
! histo for V0mult vs #tracks TPCout (all)
Double_t CosPiKPhiRFrameKKpi() const
Bool_t fUseTrkl
flag to decide whether to use pt-weights != 1 when filling the container or not
TH1F * fCosPxyHist[4 *kMaxPtBins]
! hist. of cosXY pointing angle (sig,bkg,tot)
void SetPtWeightsFromFONLL5andTAMUoverLHC16i2abc()
AliAODVertex * GetOwnPrimaryVtx() const
virtual Int_t IsSelected(TObject *obj, Int_t selectionLevel)
Double_t GetSigmaVert(const AliAODEvent *aod=0x0)
TH3F * fPtProng2Hist3D
! Pt prong2 vs Ds mass vs pt
Bool_t CheckDaugAcc(TClonesArray *arrayMC, Int_t nProng, Int_t *labDau)
TH2F * fDalitzPhi[4 *kMaxPtBins]
! dalitz plot via phi (sig,bkg,tot)
TH2F * fHistSelV0multNTPCout
! histo for V0mult vs #tracks TPCout (sel)
Float_t GetCentrality(AliAODEvent *aodEvent)
Bool_t IsEventRejectedDueToPileup() const
TH3F * fDLenHist3D
! Dlen vs Ds mass vs pt
TH1F * fMassHistKpi[kMaxPtBins]
! hist. of mass spectra of Kpi
TH1F * fMassRSBkgHistPhi[kMaxPtBins]
! hist. of bkg generated from right phi sideband + pion
Int_t fSystem
off = kFALSE (default)
TH3F * fNormIPHist3D
! nIP vs Ds mass vs pt
Bool_t IsCutOnResonancesApplied() const
TH1F * fPtCandHist[4 *kMaxPtBins]
! hist. for Pt Max (Prod Cuts)
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)
void SetOwnPrimaryVtx(const AliAODVertex *vtx)
Double_t CosPiDsLabFramepiKK() const
Bool_t fReadMC
0 = pp, 1 = pPb,PbPb
Double_t DecayLengthXY() const
Int_t fAODProtection
flag to fill sparse with Ntracklets
Bool_t GetIsPrimaryWithoutDaughters() const
TH1F * fCosPiDsHist[4 *kMaxPtBins]
! hist. for CosPiDs
Int_t GetSignalHistoIndex(Int_t iPtBin) const
Bool_t IsEventSelected(AliVEvent *event)
virtual Int_t PreSelect(TObjArray aodTracks)
TH1F * fMassLSBkgHistPhi[kMaxPtBins]
! hist. of bkg generated from left phi sideband + pion
virtual void UserExec(Option_t *option)
void StoreEvent(AliVEvent *, AliRDHFCuts *, Bool_t mc=kFALSE, Int_t multiplicity=-9999, Double_t spherocity=-99.)
Int_t GetReflSignalHistoIndex(Int_t iPtBin) const
void CreateCutVarsAndEffSparses()
virtual void Terminate(Option_t *option)
TH1F * fCosPHist[4 *kMaxPtBins]
! hist. of cos pointing angle (sig,bkg,tot)
TString fCentEstName
name of the AliMultSelection object to be considered
TH3F * fDLenxyHist3D
! Dlenxy vs Ds mass vs pt
Bool_t fFillImpParSparse
flag for usage of THnSparse
Bool_t fDoCutV0multTPCout
flag to create bkg from phi sidebands
void CleanOwnPrimaryVtx(AliAODRecoDecayHF *d, AliAODEvent *aod, AliAODVertex *origownvtx) const
Float_t * GetPtBinLimits() const
Bool_t fUseWeight
flag to activate cut on V0mult vs #tracks TPCout
Double_t fMaxDeltaPhiMass4Rot
TH1F * fDLenHist[4 *kMaxPtBins]
! hist. of decay length (sig,bkg,tot)
Bool_t fUseSelectionBit
flag to create and fill histos with distributions of cut variables
Double_t GetWeightForpiKK() const
Double_t GetWeightForKKpi() const
TH1F * fChanHist[4]
! hist. with KKpi and piKK candidates (sig,bkg,tot)
TH1F * fMassHist[4 *kMaxPtBins]
! hist. of mass spectra (sig,bkg,tot)
TH1F * fDCAHist[4 *kMaxPtBins]
! hist. for DCA (Prod Cuts)
Bool_t IsEventRejectedDueToTrigger() const
Bool_t fDoCutVarHistos
flag to control ntuple writing in MC
TH1F * fPtProng2Hist[4 *kMaxPtBins]
! hist. for DCA (Prod Cuts)
Double_t CosPointingAngle() const
void SetPtWeightsFromFONLL5andBAMPSoverLHC16i2abc()
void FillMCGenAccHistos(TClonesArray *arrayMC, AliAODMCHeader *mcHeader, Double_t nTracklets)
TH2F * fDalitz[4 *kMaxPtBins]
! dalitz plot (sig,bkg,tot)
Int_t GetUseCentrality() const
TH1F * fSigVertHist[4 *kMaxPtBins]
! hist. for sigVert (Prod Cuts)
Bool_t RecalcOwnPrimaryVtx(AliAODRecoDecayHF *d, AliAODEvent *aod) const
Double_t DecayLength() const
TH3F * fNDLenxyHist3D
! NDlenxy vs Ds mass vs pt
TH2F * fPtVsMassPhi
! hist. of pt vs. mass (phi selection)
TH1F * fMassHistKK[kMaxPtBins]
! hist. of mass spectra of KK
Double_t CosPiKPhiRFramepiKK() const
TH1F * fMassHistK0st[4 *kMaxPtBins]
! hist. of mass spectra via K0* (sig,bkg,tot)
TH2F * fYVsPt
! hist. of Y vs. Pt (prod. cuts)
Bool_t fFillAcceptanceLevel
flag for usage of sparse for imp. parameter
TString fMultSelectionObjectName
!<!THnSparse for imp. par. on MC
TH2F * fPtVsMassK0st
! hist. of pt vs. mass (K0* selection)
TList * fListCuts
number of Pt bins
void ApplyCutOnResonances(Bool_t opt=kTRUE)
TList * OpenFile(const char *fname)
UChar_t fNPtBins
-1: no protection, 0: check AOD/dAOD nEvents only, 1: check AOD/dAOD nEvents + TProcessID names ...
Bool_t fWriteOnlySignal
flag for access to MC
TH3F * fCosPiDsHist3D
! cosPiDs vs Ds mass vs pt
Double_t fMassBinSize
range for mass histogram
Double_t fminMass
bin size for inv. mass histo
Int_t GetBackgroundHistoIndex(Int_t iPtBin) const
Float_t fPtLimits[kMaxPtBins+1]