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"
50 #include "AliMultSelection.h"
67 fHistAllV0multNTPCout(0),
68 fHistSelV0multNTPCout(0),
78 fCosPiKPhiHist3D(0x0),
87 fWriteOnlySignal(kFALSE),
88 fDoCutVarHistos(kTRUE),
89 fUseSelectionBit(kFALSE),
91 fFillSparseDplus(kFALSE),
92 fFillImpParSparse(kFALSE),
93 fFillAcceptanceLevel(kFALSE),
96 fDoCutV0multTPCout(kFALSE),
106 fMaxDeltaPhiMass4Rot(0.010),
112 fImpParSparseMC(0x0),
113 fMultSelectionObjectName(
"MultSelection"),
118 for(
Int_t i=0;i<3;i++){
122 for(
Int_t i=0;i<4;i++) {
150 for(
Int_t i=0;i<kMaxPtBins+1;i++){
153 for (
Int_t i=0; i<4; i++) {
170 fHistAllV0multNTPCout(0),
171 fHistSelV0multNTPCout(0),
181 fCosPiKPhiHist3D(0x0),
182 fPtProng0Hist3D(0x0),
183 fPtProng1Hist3D(0x0),
184 fPtProng2Hist3D(0x0),
186 fFillNtuple(fillNtuple),
190 fWriteOnlySignal(kFALSE),
191 fDoCutVarHistos(kTRUE),
192 fUseSelectionBit(kFALSE),
194 fFillSparseDplus(kFALSE),
195 fFillImpParSparse(kFALSE),
196 fFillAcceptanceLevel(kFALSE),
199 fDoCutV0multTPCout(kFALSE),
209 fMaxDeltaPhiMass4Rot(0.010),
211 fAnalysisCuts(analysiscuts),
215 fImpParSparseMC(0x0),
216 fMultSelectionObjectName(
"MultSelection"),
222 for(
Int_t i=0;i<3;i++){
226 for(
Int_t i=0;i<4;i++) {
254 for(
Int_t i=0;i<kMaxPtBins+1;i++){
258 for (
Int_t i=0; i<4; i++) {
267 DefineOutput(1,TList::Class());
269 DefineOutput(2,TList::Class());
271 DefineOutput(3,AliNormalizationCounter::Class());
275 DefineOutput(4,TNtuple::Class());
284 printf(
"Max. number of Pt bins = %d\n",
kMaxPtBins);
298 printf(
"Number of Pt bins = %d\n",
fNPtBins);
324 for(
Int_t i=0;i<4;i++){
357 for(
Int_t i=0;i<3;i++){
368 for (
Int_t i=0; i<4; i++) {
388 if(fUseCentrAxis<kCentOff||fUseCentrAxis>=
kCentInvalid) AliWarning(
"Centrality estimator not valid");
403 if(fDebug > 1) printf(
"AnalysisTaskSEDs::Init() \n");
410 analysis->SetName(
"AnalysisCuts");
422 if(fDebug > 1) printf(
"AnalysisTaskSEDs::UserCreateOutputObjects() \n");
427 fOutput->SetName(
"OutputHistos");
429 fHistNEvents =
new TH1F(
"hNEvents",
"number of events ",15,-0.5,14.5);
431 fHistNEvents->GetXaxis()->SetBinLabel(2,
"nEvents Matched dAOD");
432 fHistNEvents->GetXaxis()->SetBinLabel(3,
"nEvents Mismatched dAOD");
434 fHistNEvents->GetXaxis()->SetBinLabel(5,
"n. passing IsEvSelected");
435 fHistNEvents->GetXaxis()->SetBinLabel(6,
"n. rejected due to trigger");
436 fHistNEvents->GetXaxis()->SetBinLabel(7,
"n. rejected due to not reco vertex");
437 fHistNEvents->GetXaxis()->SetBinLabel(8,
"n. rejected for contr vertex");
438 fHistNEvents->GetXaxis()->SetBinLabel(9,
"n. rejected for vertex out of accept");
439 fHistNEvents->GetXaxis()->SetBinLabel(10,
"n. rejected for pileup events");
440 fHistNEvents->GetXaxis()->SetBinLabel(11,
"no. of out centrality events");
441 fHistNEvents->GetXaxis()->SetBinLabel(12,
"no. of 3 prong candidates");
442 fHistNEvents->GetXaxis()->SetBinLabel(13,
"no. of Ds after filtering cuts");
443 fHistNEvents->GetXaxis()->SetBinLabel(14,
"no. of Ds after selection cuts");
444 fHistNEvents->GetXaxis()->SetBinLabel(15,
"no. of not on-the-fly rec Ds");
452 fHistCentrality[1]=
new TH1F(
"hCentr(selectedCent)",
"centrality(selectedCent)",10000,0.,100.);
453 fHistCentrality[2]=
new TH1F(
"hCentr(OutofCent)",
"centrality(OutofCent)",10000,0.,100.);
455 fHistCentralityMult[1]=
new TH2F(
"hCentrMult(selectedCent)",
"centrality vs mult(selectedCent)",100,0.5,30000.5,40,0.,100.);
456 fHistCentralityMult[2]=
new TH2F(
"hCentrMult(OutofCent)",
"centrality vs mult(OutofCent)",100,0.5,30000.5,40,0.,100.);
457 for(
Int_t i=0;i<3;i++){
462 fHistAllV0multNTPCout =
new TH2F(
"HistAllV0multNTPCout",
"V0mult vs # TPCout (all) ;V0mult ;# TPCout", 1000, 0., 40000, 1000, 0, 30000);
463 fHistSelV0multNTPCout =
new TH2F(
"HistSelV0multNTPCout",
"V0mult vs # TPCout (sel) ;V0mult ;# TPCout", 1000, 0., 40000, 1000, 0, 30000);
468 Double_t massDs=TDatabasePDG::Instance()->GetParticle(431)->Mass();
471 if(nInvMassBins%2==1) nInvMassBins++;
482 for(
Int_t iType=0; iType<4; iType++){
497 hisname.Form(
"hMass%sPt%d",htype.Data(),i);
500 hisname.Form(
"hMass%sPt%dphi",htype.Data(),i);
503 hisname.Form(
"hMass%sPt%dk0st",htype.Data(),i);
506 hisname.Form(
"hCosP%sPt%d",htype.Data(),i);
507 fCosPHist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.5,1.);
508 hisname.Form(
"hCosPxy%sPt%d",htype.Data(),i);
509 fCosPxyHist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.5,1.);
510 hisname.Form(
"hDLen%sPt%d",htype.Data(),i);
511 fDLenHist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.,0.5);
512 hisname.Form(
"hDLenxy%sPt%d",htype.Data(),i);
513 fDLenxyHist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.,0.5);
514 hisname.Form(
"hNDLenxy%sPt%d",htype.Data(),i);
515 fNDLenxyHist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.,11.);
516 hisname.Form(
"hSumd02%sPt%d",htype.Data(),i);
517 fSumd02Hist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.,1.);
518 hisname.Form(
"hSigVert%sPt%d",htype.Data(),i);
519 fSigVertHist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.,0.1);
520 hisname.Form(
"hPtMax%sPt%d",htype.Data(),i);
521 fPtMaxHist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.5,20.);
522 hisname.Form(
"hPtCand%sPt%d",htype.Data(),i);
523 fPtCandHist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.5,20.);
524 hisname.Form(
"hDCA%sPt%d",htype.Data(),i);
525 fDCAHist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.,0.1);
526 hisname.Form(
"hNormIP%sPt%d",htype.Data(),i);
527 fNormIPHist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.,6.);
528 hisname.Form(
"hCosPiDs%sPt%d",htype.Data(),i);
529 fCosPiDsHist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.5,1.);
530 hisname.Form(
"hCosPiKPhi%sPt%d",htype.Data(),i);
531 fCosPiKPhiHist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.,0.5);
532 hisname.Form(
"hPtProng0%sPt%d",htype.Data(),i);
533 fPtProng0Hist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.0,20.);
534 hisname.Form(
"hPtProng1%sPt%d",htype.Data(),i);
535 fPtProng1Hist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.0,20.);
536 hisname.Form(
"hPtProng2%sPt%d",htype.Data(),i);
537 fPtProng2Hist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.0,20.);
538 hisname.Form(
"hDalitz%sPt%d",htype.Data(),i);
539 fDalitz[index]=
new TH2F(hisname.Data(),hisname.Data(),100,0.,2.,100,0.,2.);
540 hisname.Form(
"hDalitz%sPt%dphi",htype.Data(),i);
541 fDalitzPhi[index]=
new TH2F(hisname.Data(),hisname.Data(),100,0.,2.,100,0.,2.);
542 hisname.Form(
"hDalitz%sPt%dk0st",htype.Data(),i);
543 fDalitzK0st[index]=
new TH2F(hisname.Data(),hisname.Data(),100,0.,2.,100,0.,2.);
574 fChanHist[0] =
new TH1F(
"hChanAll",
"KKpi and piKK candidates",64,-0.5,63.5);
575 fChanHist[1] =
new TH1F(
"hChanSig",
"KKpi and piKK candidates",64,-0.5,63.5);
576 fChanHist[2] =
new TH1F(
"hChanBkg",
"KKpi and piKK candidates",64,-0.5,63.5);
577 fChanHist[3] =
new TH1F(
"hChanReflSig",
"KKpi and piKK candidates",64,-0.5,63.5);
578 for(
Int_t i=0;i<4;i++){
583 fCosPHist3D =
new TH3F(
"fCosPHist3D",
"CosP vs Ds mass",nInvMassBins,minMass,maxMass,20,0.,20.,100,0.5,1.);
584 fCosPxyHist3D =
new TH3F(
"fCosPxyHist3D",
"CosPxy vs Ds mass",nInvMassBins,minMass,maxMass,20,0.,20.,100,0.5,1.);
585 fDLenHist3D =
new TH3F(
"fDLenHist3D",
"DLen vs Ds mass",nInvMassBins,minMass,maxMass,20,0.,20.,100,0.,0.5);
586 fDLenxyHist3D =
new TH3F(
"fDLenxyHist3D",
"DLenxy vs Ds mass",nInvMassBins,minMass,maxMass,20,0.,20.,100,0.,0.5);
587 fNDLenxyHist3D =
new TH3F(
"fNDLenxyHist3D",
"NDLenxy vs Ds mass",nInvMassBins,minMass,maxMass,20,0.,20.,100,0.,11.);
588 fSigVertHist3D =
new TH3F(
"fSigVertHist3D",
"SigVert vs Ds mass",nInvMassBins,minMass,maxMass,20,0.,20.,100,0.,0.1);
589 fDCAHist3D =
new TH3F(
"fDCAHist3D",
"DCA vs Ds mass",nInvMassBins,minMass,maxMass,20,0.,20.,100,0.,0.1);
590 fNormIPHist3D =
new TH3F(
"fNormIPHist3D",
"nIP vs Ds mass",nInvMassBins,minMass,maxMass,20,0.,20.,100,0.,6.);
591 fCosPiDsHist3D =
new TH3F(
"fCosPiDsHist3D",
"CosPiDs vs Ds mass",nInvMassBins,minMass,maxMass,20,0.,20.,100,0.5,1.);
592 fCosPiKPhiHist3D =
new TH3F(
"fCosPiKPhiHist3D",
"CosPiKPhi vs Ds mass",nInvMassBins,minMass,maxMass,20,0.,20.,100,0.,0.5);
593 fPtProng0Hist3D =
new TH3F(
"fPtProng0Hist3D",
"Pt prong0 vs Ds mass",nInvMassBins,minMass,maxMass,20,0.,20.,100,0.0,20.);
594 fPtProng1Hist3D =
new TH3F(
"fPtProng1Hist3D",
"Pt prong1 vs Ds mass",nInvMassBins,minMass,maxMass,20,0.,20.,100,0.0,20.);
595 fPtProng2Hist3D =
new TH3F(
"fPtProng2Hist3D",
"Pt prong2 vs Ds mass",nInvMassBins,minMass,maxMass,20,0.,20.,100,0.0,20.);
613 fPtVsMass=
new TH2F(
"hPtVsMass",
"PtVsMass (prod. cuts)",nInvMassBins,minMass,maxMass,40,0.,20.);
614 fPtVsMassPhi=
new TH2F(
"hPtVsMassPhi",
"PtVsMass (phi selection)",nInvMassBins,minMass,maxMass,200,0.,20.);
615 fPtVsMassK0st=
new TH2F(
"hPtVsMassK0st",
"PtVsMass (K0* selection)",nInvMassBins,minMass,maxMass,200,0.,20.);
616 fYVsPt=
new TH2F(
"hYVsPt",
"YvsPt (prod. cuts)",40,0.,20.,80,-2.,2.);
617 fYVsPtSig=
new TH2F(
"hYVsPtSig",
"YvsPt (MC, only sig., prod. cuts)",40,0.,20.,80,-2.,2.);
620 hisname.Form(
"hMassKKPt%d",i);
621 fMassHistKK[i]=
new TH1F(hisname.Data(),hisname.Data(),200,0.95,1.35);
624 hisname.Form(
"hMassKpiPt%d",i);
625 fMassHistKpi[i]=
new TH1F(hisname.Data(),hisname.Data(),200,0.7,1.1);
629 hisname.Form(
"hMassAllPt%dphi_RotBkg",i);
635 hisname.Form(
"fMassLSBkgHistPhiPt%d",i);
639 hisname.Form(
"fMassRSBkgHistPhiPt%d",i);
652 nInvMassBins=(
Int_t)(0.7/fMassBinSize+0.5);
658 Int_t nCentrBins = 1;
661 Int_t nBinsReco[
knVarForSparse] = {nInvMassBins, 20, 30, 14, 14, 20, 10, 10, 14, 6, 6, 12, nTrklBins, nCentrBins};
662 Double_t xminReco[
knVarForSparse] = {
minMass, 0., 0., 0., 0., 0., 90., 90., 0., 7., 0., 0., 1., 0.};
663 Double_t xmaxReco[
knVarForSparse] = {
maxMass, 20., 15, 70., 70., 10., 100., 100., 70., 10., 3., 6., 301., 101.};
664 TString axis[
knVarForSparse] = {
"invMassDsAllPhi",
"p_{T}",
"#Delta Mass(KK)",
"dlen",
"dlen_{xy}",
"normdl_{xy}",
"cosP",
"cosP_{xy}",
"sigVert",
"cosPiDs",
"|cosPiKPhi^{3}|",
"normIP",
"N tracklets",Form(
"Percentile (%s)",
fCentEstName.Data())};
666 nInvMassBins=(
Int_t)(0.45/fMassBinSize+0.5);
669 nBinsReco[0] = nInvMassBins;
705 TString label[2] = {
"fromC",
"fromB"};
706 for (
Int_t i=0; i<2; i++) {
708 fnSparseMC[i] =
new THnSparseF(Form(
"fnSparseAcc_%s",label[i].
Data()), titleSparse.Data(),
710 fnSparseMC[i]->GetAxis(0)->SetTitle(
"p_{T} (GeV/c)");
712 fnSparseMC[i]->GetAxis(2)->SetTitle(
"N tracklets");
717 titleSparse = Form(
"MC nSparse D^{+} (%s)- %s",
fFillAcceptanceLevel ?
"Acc.Step" :
"Gen.Acc.Step", label[i].
Data());
718 fnSparseMCDplus[i] =
new THnSparseF(Form(
"fnSparseAccDplus_%s",label[i].
Data()), titleSparse.Data(),
726 for (
Int_t i=2; i<4; i++) {
727 fnSparseMC[i] =
new THnSparseF(Form(
"fnSparseReco_%s",label[i-2].
Data()),Form(
"MC nSparse (Reco Step)- %s",label[i-2].
Data()),
736 fnSparseMCDplus[i] =
new THnSparseF(Form(
"fnSparseRecoDplus_%s",label[i-2].
Data()),Form(
"MC nSparse D^{+} (Reco Step)- %s",label[i-2].
Data()),
737 knVarForSparse, nBinsReco, xminReco, xmaxReco);
749 fnSparseIP->GetAxis(5)->SetTitle(
"candType (0.5=bkg; 1.5=prompt; 2.5=FD)");
755 fnSparse->GetAxis(j)->SetTitle(Form(
"%s",axis[j].
Data()));
762 Int_t nBinsImpPar[3] = { 20, 200, 350};
763 Double_t xminImpPar[3] = { 0., 0., 1.6};
764 Double_t xmaxImpPar[3] = {20., 1000., 2.3};
765 TString axisImpPar[3] = {
"Pt",
"imp.par. (#mum)",
"invMassDsAllPhi"};
767 fImpParSparse =
new THnSparseF(
"fImpParSparse",
"ImpParSparse", 3, nBinsImpPar, xminImpPar, xmaxImpPar);
768 for (
Int_t j=0; j<3; j++) {
777 axisImpPar[2] =
"candType (0.5=bkg; 1.5=prompt; 2.5=FD)";
778 fImpParSparseMC =
new THnSparseF(
"fImpParSparseMC",
"ImpParSparseMC", 3, nBinsImpPar, xminImpPar, xmaxImpPar);
779 for (
Int_t j=0; j<3; j++) {
796 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");
817 if (matchingAODdeltaAODlevel<0 || (matchingAODdeltaAODlevel==0 &&
fAODProtection==1)) {
825 TClonesArray *array3Prong = 0;
826 if(!aod && AODEvent() && IsStandardAOD()) {
832 AliAODHandler* aodHandler = (AliAODHandler*)
833 ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
834 if(aodHandler->GetExtensions()) {
835 AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(
"AliAOD.VertexingHF.root");
837 array3Prong=(TClonesArray*)aodFromExt->GetList()->FindObject(
"Charm3Prong");
840 array3Prong=(TClonesArray*)aod->GetList()->FindObject(
"Charm3Prong");
843 if(!aod || !array3Prong) {
844 printf(
"AliAnalysisTaskSEDs::UserExec: Charm3Prong branch not found!\n");
851 if(!aod->GetPrimaryVertex() || TMath::Abs(aod->GetMagneticField())<0.001)
return;
863 Float_t ntracks=aod->GetNumberOfTracks();
880 Int_t runNumber=aod->GetRunNumber();
884 TClonesArray *arrayMC=0;
885 AliAODMCHeader *mcHeader=0;
888 AliAODVertex *vtx1 = (AliAODVertex*)aod->GetPrimaryVertex();
894 arrayMC = (TClonesArray*)aod->GetList()->FindObject(AliAODMCParticle::StdBranchName());
896 printf(
"AliAnalysisTaskSEDs::UserExec: MC particles branch not found!\n");
901 mcHeader = (AliAODMCHeader*)aod->GetList()->FindObject(AliAODMCHeader::StdBranchName());
903 printf(
"AliAnalysisTaskSEDs::UserExec: MC header branch not found!\n");
911 if(aod->GetTriggerMask()==0 && (runNumber>=195344 && runNumber<=195677))
917 Double_t zMCVertex = mcHeader->GetVtxZ();
932 AliAODVZERO *aodVZERO = (AliAODVZERO*)aod->GetVZEROData();
934 for(
int ich=0; ich<64;ich++) V0mult += aodVZERO->GetMultiplicity(ich);
937 for (
Int_t i=0;i<aod->GetNumberOfTracks();++i) {
938 AliVTrack *track = aod->GetTrack(i);
939 if (!track)
continue;
940 if((track->GetStatus() & AliVTrack::kTPCout)) nTPCout++;
943 if(nTPCout > (0.32*V0mult+750))
return;
947 Int_t n3Prong = array3Prong->GetEntriesFast();
948 if(fDebug>1) printf(
"Number of Ds->KKpi: %d\n",n3Prong);
950 Int_t pdgDstoKKpi[3]={321,321,211};
953 Double_t massPhi=TDatabasePDG::Instance()->GetParticle(333)->Mass();
960 for (
Int_t i3Prong = 0; i3Prong < n3Prong; i3Prong++) {
986 AliAODVertex *origownvtx=0x0;
991 fYVsPt->Fill(ptCand,rapid);
997 Int_t retCodeNoRes=retCodeAnalysisCuts;
1007 massKK=d->InvMass2Prongs(0,1,321,321);
1008 Double_t massKp=d->InvMass2Prongs(1,2,321,211);
1013 massKK=d->InvMass2Prongs(1,2,321,321);
1014 Double_t massKp=d->InvMass2Prongs(0,1,211,321);
1019 Int_t isKKpi=retCodeAnalysisCuts&1;
1020 Int_t ispiKK=retCodeAnalysisCuts&2;
1021 Int_t isPhiKKpi=retCodeAnalysisCuts&4;
1022 Int_t isPhipiKK=retCodeAnalysisCuts&8;
1023 Int_t isK0starKKpi=retCodeAnalysisCuts&16;
1024 Int_t isK0starpiKK=retCodeAnalysisCuts&32;
1026 if(retCodeAnalysisCuts>0){
1046 if(weightKKpi>1. || weightKKpi<0.) weightKKpi=0.;
1047 if(weightpiKK>1. || weightpiKK<0.) weightpiKK=0.;
1050 fChanHist[0]->Fill(retCodeAnalysisCuts);
1054 Int_t indexMCKKpi=-1;
1055 Int_t indexMCpiKK=-1;
1058 Int_t pdgCode0=-999;
1059 Int_t isMCSignal=-1;
1064 labDs = d->MatchToMC(431,arrayMC,3,pdgDstoKKpi);
1065 labDplus = d->MatchToMC(411,arrayMC,3,pdgDstoKKpi);
1067 Int_t labDau0=((AliAODTrack*)d->GetDaughter(0))->GetLabel();
1068 AliAODMCParticle* p=(AliAODMCParticle*)arrayMC->UncheckedAt(TMath::Abs(labDau0));
1069 pdgCode0=TMath::Abs(p->GetPdgCode());
1075 fChanHist[1]->Fill(retCodeAnalysisCuts);
1079 fChanHist[3]->Fill(retCodeAnalysisCuts);
1087 fChanHist[1]->Fill(retCodeAnalysisCuts);
1091 fChanHist[3]->Fill(retCodeAnalysisCuts);
1098 fChanHist[2]->Fill(retCodeAnalysisCuts);
1100 Int_t labDau0=((AliAODTrack*)d->GetDaughter(0))->GetLabel();
1101 AliAODMCParticle* p=(AliAODMCParticle*)arrayMC->UncheckedAt(TMath::Abs(labDau0));
1102 pdgCode0=TMath::Abs(p->GetPdgCode());
1113 fMassHist[index]->Fill(invMass,weightKKpi);
1114 fPtVsMass->Fill(invMass,ptCand,weightKKpi);
1116 if(
fDoBkgPhiSB && (0.010<TMath::Abs(massKK-massPhi)) && (TMath::Abs(massKK-massPhi)<0.030) ) {
1129 if(
fReadMC && indexMCKKpi!=-1){
1130 fMassHist[indexMCKKpi]->Fill(invMass,weightKKpi);
1135 AliAODMCParticle *partDs;
1136 if(indexMCKKpi==
GetSignalHistoIndex(iPtBin)) partDs = (AliAODMCParticle*)arrayMC->At(labDs);
1137 if(labDplus >= 0) partDs = (AliAODMCParticle*)arrayMC->At(labDplus);
1148 if(isK0starKKpi)
fMassHistK0st[indexMCKKpi]->Fill(invMass,weightKKpi);
1153 Double_t array4ImpPar[3] = {ptCand,impParxy,invMass};
1157 Double_t array4ImpPar[3] = {ptCand,impParxy,candType};
1166 fMassHist[index]->Fill(invMass,weightpiKK);
1167 fPtVsMass->Fill(invMass,ptCand,weightpiKK);
1169 if(
fDoBkgPhiSB && (0.010<TMath::Abs(massKK-massPhi)) && (TMath::Abs(massKK-massPhi)<0.030) ) {
1182 if(
fReadMC && indexMCpiKK!=-1){
1183 fMassHist[indexMCpiKK]->Fill(invMass,weightpiKK);
1188 AliAODMCParticle *partDs;
1189 if(indexMCpiKK==
GetSignalHistoIndex(iPtBin)) partDs = (AliAODMCParticle*)arrayMC->At(labDs);
1190 if(labDplus >= 0) partDs = (AliAODMCParticle*)arrayMC->At(labDplus);
1201 if(isK0starpiKK)
fMassHistK0st[indexMCpiKK]->Fill(invMass,weightpiKK);
1206 Double_t array4ImpPar[3] = {ptCand,impParxy,invMass};
1210 Double_t array4ImpPar[3] = {ptCand,impParxy,candType};
1219 const Int_t nProng = 3;
1235 for(
Int_t ijp=0; ijp<nProng; ijp++) normIPprong[ijp]=-999.;
1243 cent = multSelection->GetMultiplicityPercentile(Form(
"%s",
fCentEstName.Data()));
1244 Int_t qual = multSelection->GetEvSelCode();
1245 if(qual == 199 ) cent=-999;
1250 AliDebug(2,
"Using Histogram as Pt weight function");
1257 massKK = d->InvMass2Prongs(0,1,321,321);
1258 deltaMassKK = TMath::Abs(massKK-massPhi);
1261 cosPiKPhi = TMath::Abs(cosPiKPhi*cosPiKPhi*cosPiKPhi);
1263 for(
Int_t ip=0; ip<nProng; ip++) {
1266 tmpNormIP[ip] = diffIP/errdiffIP;
1267 if(ip==0) normIP = tmpNormIP[ip];
1268 else if(TMath::Abs(tmpNormIP[ip])>TMath::Abs(normIP)) normIP = tmpNormIP[ip];
1270 normIPprong[0] = tmpNormIP[0];
1271 normIPprong[1] = tmpNormIP[1];
1272 normIPprong[2] = tmpNormIP[2];
1274 Double_t var4nSparse[
knVarForSparse] = {invMass,ptCand,deltaMassKK*1000,dlen*1000,dlenxy*1000,normdlxy,cosp*100,cospxy*100,
1275 sigvert*1000,cosPiDs*10,cosPiKPhi*10,TMath::Abs(normIP),nTracklets,cent};
1282 if(candType==1.5)
fnSparseMC[2]->Fill(var4nSparse,ptWeight);
1283 if(candType==2.5)
fnSparseMC[3]->Fill(var4nSparse,ptWeight);
1295 massKK = d->InvMass2Prongs(1,2,321,321);
1296 deltaMassKK = TMath::Abs(massKK-massPhi);
1299 cosPiKPhi = TMath::Abs(cosPiKPhi*cosPiKPhi*cosPiKPhi);
1301 for(
Int_t ip=0; ip<nProng; ip++) {
1304 tmpNormIP[ip] = diffIP/errdiffIP;
1305 if(ip==0) normIP = tmpNormIP[ip];
1306 else if(TMath::Abs(tmpNormIP[ip])>TMath::Abs(normIP)) normIP = tmpNormIP[ip];
1309 normIPprong[0] = tmpNormIP[2];
1310 normIPprong[1] = tmpNormIP[1];
1311 normIPprong[2] = tmpNormIP[0];
1313 Double_t var4nSparse[
knVarForSparse] = {invMass,ptCand,deltaMassKK*1000,dlen*1000,dlenxy*1000,normdlxy,cosp*100,cospxy*100,
1314 sigvert*1000,cosPiDs*10,cosPiKPhi*10,TMath::Abs(normIP),nTracklets,cent};
1321 if(candType==1.5)
fnSparseMC[2]->Fill(var4nSparse,ptWeight);
1322 if(candType==2.5)
fnSparseMC[3]->Fill(var4nSparse,ptWeight);
1331 if(
fReadMC && (isPhiKKpi || isPhiKKpi)) {
1332 Double_t var[6] = {ptCand,normIP,normIPprong[0],normIPprong[1],normIPprong[2],candType};
1339 Double_t sumD02=d->Getd0Prong(0)*d->Getd0Prong(0)+d->Getd0Prong(1)*d->Getd0Prong(1)+d->Getd0Prong(2)*d->Getd0Prong(2);
1343 for(
Int_t i=0;i<3;i++){
1344 if(d->PtProng(i)>
ptmax)ptmax=d->PtProng(i);
1377 Double_t massKK=d->InvMass2Prongs(0,1,321,321);
1378 Double_t massKp=d->InvMass2Prongs(1,2,321,211);
1379 fDalitz[index]->Fill(massKK,massKp);
1380 if(isPhiKKpi)
fDalitzPhi[index]->Fill(massKK,massKp);
1381 if(isK0starKKpi)
fDalitzK0st[index]->Fill(massKK,massKp);
1382 if(
fReadMC && indexMCKKpi!=-1){
1383 fDalitz[indexMCKKpi]->Fill(massKK,massKp);
1384 if(isPhiKKpi)
fDalitzPhi[indexMCKKpi]->Fill(massKK,massKp);
1385 if(isK0starKKpi)
fDalitzK0st[indexMCKKpi]->Fill(massKK,massKp);
1405 Double_t massKK=d->InvMass2Prongs(1,2,321,321);
1406 Double_t massKp=d->InvMass2Prongs(0,1,211,321);
1407 fDalitz[index]->Fill(massKK,massKp);
1408 if(isPhipiKK)
fDalitzPhi[index]->Fill(massKK,massKp);
1409 if(isK0starpiKK)
fDalitzK0st[index]->Fill(massKK,massKp);
1412 if(
fReadMC && indexMCpiKK!=-1){
1413 fDalitz[indexMCpiKK]->Fill(massKK,massKp);
1414 if(isPhipiKK)
fDalitzPhi[indexMCpiKK]->Fill(massKK,massKp);
1415 if(isK0starpiKK)
fDalitzK0st[indexMCpiKK]->Fill(massKK,massKp);
1441 AliAODTrack *track0=(AliAODTrack*)d->GetDaughter(0);
1442 AliAODTrack *track1=(AliAODTrack*)d->GetDaughter(1);
1443 AliAODTrack *track2=(AliAODTrack*)d->GetDaughter(2);
1451 tmp[1]=
Float_t(retCodeAnalysisCuts);
1453 tmp[3]=d->PtProng(0);
1454 tmp[4]=d->PtProng(1);
1455 tmp[5]=d->PtProng(2);
1457 tmp[7]=d->PProng(0);
1458 tmp[8]=d->PProng(1);
1459 tmp[9]=d->PProng(2);
1460 tmp[10]=
Int_t(bitMapPIDTrack0);
1461 tmp[11]=
Int_t(bitMapPIDTrack1);
1462 tmp[12]=
Int_t(bitMapPIDTrack2);
1472 tmp[22]=d->Getd0Prong(0);
1473 tmp[23]=d->Getd0Prong(1);
1474 tmp[24]=d->Getd0Prong(2);
1475 tmp[25]=d->GetDCA();
1476 tmp[26]=d->Getd0Prong(0)*d->Getd0Prong(0)+d->Getd0Prong(1)*d->Getd0Prong(1)+d->Getd0Prong(2)*d->Getd0Prong(2);
1477 tmp[27]=d->InvMass2Prongs(0,1,321,321);
1478 tmp[28]=d->InvMass2Prongs(1,2,321,321);
1479 tmp[29]=d->InvMass2Prongs(1,2,321,211);
1480 tmp[30]=d->InvMass2Prongs(0,1,211,321);
1485 tmp[35]=(
Float_t)(centrality);
1520 if(fDebug > 1) printf(
"AnalysisTaskSEDs: Terminate() \n");
1523 printf(
"ERROR: fOutput not available\n");
1528 printf(
"Number of analyzed events = %d\n",(
Int_t)
fHistNEvents->GetBinContent(2));
1530 printf(
"ERROR: fHistNEvents not available\n");
1543 Double_t zMCVertex = mcHeader->GetVtxZ();
1545 for(
Int_t iPart=0; iPart<arrayMC->GetEntriesFast(); iPart++){
1547 AliAODMCParticle* mcPart =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(iPart));
1549 if(TMath::Abs(mcPart->GetPdgCode()) == 431) {
1553 Bool_t isGoodDecay = kFALSE;
1554 Int_t labDau[3] = {-1,-1,-1};
1555 Bool_t isFidAcc = kFALSE;
1556 Bool_t isDaugInAcc = kFALSE;
1559 if(deca == 1) isGoodDecay=kTRUE;
1561 if(labDau[0]==-1)
continue;
1574 AliDebug(2,
"Using Histogram as Pt weight function");
1577 if(orig==4)
fnSparseMC[0]->Fill(var4nSparseAcc,ptWeight);
1578 if(orig==5)
fnSparseMC[1]->Fill(var4nSparseAcc,ptWeight);
1588 Bool_t isGoodDecay = kFALSE;
1589 Int_t labDau[3] = {-1,-1,-1};
1590 Bool_t isFidAcc = kFALSE;
1591 Bool_t isDaugInAcc = kFALSE;
1594 if(deca == 1) isGoodDecay=kTRUE;
1596 if(labDau[0]==-1)
continue;
1609 AliDebug(2,
"Using Histogram as Pt weight function");
1626 for (
Int_t iProng = 0; iProng<nProng; iProng++){
1627 AliAODMCParticle* mcPartDaughter=
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(labDau[iProng]));
1628 if(!mcPartDaughter) {
1631 Double_t eta = mcPartDaughter->Eta();
1632 Double_t pt = mcPartDaughter->Pt();
1633 if (TMath::Abs(eta) > 0.9 || pt < 0.1) {
1643 const Int_t nprongs = 3;
1644 Double_t PxProng[nprongs], PyProng[nprongs], PzProng[nprongs], P2Prong[nprongs], mProng[nprongs];
1654 for (
Int_t ip=0; ip<nprongs; ip++) {
1655 PxProng[ip] = d->PxProng(ip);
1656 PyProng[ip] = d->PxProng(ip);
1657 PzProng[ip] = d->PzProng(ip);
1658 P2Prong[ip] = d->P2Prong(ip);
1659 mProng[ip] = TDatabasePDG::Instance()->GetParticle(pdg[ip])->Mass();
1662 for(
Int_t i=0; i<9; i++) {
1667 Double_t phirot=TMath::Pi()*(5/6.+1/27.*i);
1669 PxProng[idPion] = PxProng[idPion]*TMath::Cos(phirot)-PyProng[idPion]*TMath::Sin(phirot);
1670 PyProng[idPion] = PxProng[idPion]*TMath::Sin(phirot)+PyProng[idPion]*TMath::Cos(phirot);
1672 for (
Int_t j=0; j<nprongs; j++) {
1677 P2 = Px*Px + Py*Py + Pz*Pz;
1680 for(
Int_t j=0; j<nprongs; j++) {
1681 energysum += TMath::Sqrt(mProng[j]*mProng[j]+P2Prong[j]);
1694 fHistoPtWeight =
new TH1F(
"histoWeight",
"histoWeight",500,0.,50.);
1696 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};
1697 for(
Int_t i=0; i<500; i++){
1710 fHistoPtWeight =
new TH1F(
"histoWeight",
"histoWeight",400,0.,40.);
1712 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};
1713 for(
Int_t i=0; i<400; i++){
1726 fHistoPtWeight =
new TH1F(
"histoWeight",
"histoWeight",400,0.,40.);
1728 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};
1729 for(
Int_t i=0; i<400; i++){
1741 fHistoPtWeight =
new TH1F(
"histoWeight",
"histoWeight",400,0.,40.);
1743 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};
1744 for(
Int_t i=0; i<400; i++){
1760 if( (bin2>0) && (bin2<=histoNbins) ) {
1763 if(bin2==1) bin1=bin2+2;
1764 if(bin2==histoNbins) bin3=bin2-2;
1771 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) );
1772 Double_t b=((y_1-y_2)-a*(x_1*x_1-x_2*x_2))/(x_1-x_2);
1774 weight = a*pt*pt+b*pt+
c;
Double_t NormalizedDecayLengthXY() const
Bool_t IsEventRejectedDueToCentrality() const
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 topomatic variable
void SetPtWeightsFromFONLL5overLHC16i2abc()
Bool_t IsEventRejectedDueToNotRecoVertex() const
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
TH2F * fPtVsMass
! hist. of pt vs. mass (prod. cuts)
void SetFillCentralityAxis(Int_t flag=0)
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)
Int_t GetPidOption() 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()
THnSparseF * fImpParSparseMC
!<!THnSparse for imp. par. on data
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)
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)
THnSparseF * fnSparseIP
!<!THnSparse for candidates on data
TH3F * fPtProng2Hist3D
! Pt prong2 vs Ds mass vs pt
Bool_t CheckDaugAcc(TClonesArray *arrayMC, Int_t nProng, Int_t *labDau)
see enum
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
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)
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
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]