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),
95 fDoCutV0multTPCout(kFALSE),
105 fMaxDeltaPhiMass4Rot(0.010),
111 fImpParSparseMC(0x0),
112 fMultSelectionObjectName(
"MultSelection"),
117 for(
Int_t i=0;i<3;i++){
121 for(
Int_t i=0;i<4;i++) {
149 for(
Int_t i=0;i<kMaxPtBins+1;i++){
152 for (
Int_t i=0; i<4; i++) {
169 fHistAllV0multNTPCout(0),
170 fHistSelV0multNTPCout(0),
180 fCosPiKPhiHist3D(0x0),
181 fPtProng0Hist3D(0x0),
182 fPtProng1Hist3D(0x0),
183 fPtProng2Hist3D(0x0),
185 fFillNtuple(fillNtuple),
189 fWriteOnlySignal(kFALSE),
190 fDoCutVarHistos(kTRUE),
191 fUseSelectionBit(kFALSE),
193 fFillSparseDplus(kFALSE),
194 fFillImpParSparse(kFALSE),
197 fDoCutV0multTPCout(kFALSE),
207 fMaxDeltaPhiMass4Rot(0.010),
209 fAnalysisCuts(analysiscuts),
213 fImpParSparseMC(0x0),
214 fMultSelectionObjectName(
"MultSelection"),
220 for(
Int_t i=0;i<3;i++){
224 for(
Int_t i=0;i<4;i++) {
252 for(
Int_t i=0;i<kMaxPtBins+1;i++){
256 for (
Int_t i=0; i<4; i++) {
265 DefineOutput(1,TList::Class());
267 DefineOutput(2,TList::Class());
269 DefineOutput(3,AliNormalizationCounter::Class());
273 DefineOutput(4,TNtuple::Class());
282 printf(
"Max. number of Pt bins = %d\n",
kMaxPtBins);
296 printf(
"Number of Pt bins = %d\n",
fNPtBins);
322 for(
Int_t i=0;i<4;i++){
355 for(
Int_t i=0;i<3;i++){
366 for (
Int_t i=0; i<4; i++) {
386 if(fUseCentrAxis<kCentOff||fUseCentrAxis>=
kCentInvalid) AliWarning(
"Centrality estimator not valid");
401 if(fDebug > 1) printf(
"AnalysisTaskSEDs::Init() \n");
408 analysis->SetName(
"AnalysisCuts");
420 if(fDebug > 1) printf(
"AnalysisTaskSEDs::UserCreateOutputObjects() \n");
425 fOutput->SetName(
"OutputHistos");
427 fHistNEvents =
new TH1F(
"hNEvents",
"number of events ",15,-0.5,14.5);
429 fHistNEvents->GetXaxis()->SetBinLabel(2,
"nEvents Matched dAOD");
430 fHistNEvents->GetXaxis()->SetBinLabel(3,
"nEvents Mismatched dAOD");
432 fHistNEvents->GetXaxis()->SetBinLabel(5,
"n. passing IsEvSelected");
433 fHistNEvents->GetXaxis()->SetBinLabel(6,
"n. rejected due to trigger");
434 fHistNEvents->GetXaxis()->SetBinLabel(7,
"n. rejected due to not reco vertex");
435 fHistNEvents->GetXaxis()->SetBinLabel(8,
"n. rejected for contr vertex");
436 fHistNEvents->GetXaxis()->SetBinLabel(9,
"n. rejected for vertex out of accept");
437 fHistNEvents->GetXaxis()->SetBinLabel(10,
"n. rejected for pileup events");
438 fHistNEvents->GetXaxis()->SetBinLabel(11,
"no. of out centrality events");
439 fHistNEvents->GetXaxis()->SetBinLabel(12,
"no. of 3 prong candidates");
440 fHistNEvents->GetXaxis()->SetBinLabel(13,
"no. of Ds after filtering cuts");
441 fHistNEvents->GetXaxis()->SetBinLabel(14,
"no. of Ds after selection cuts");
442 fHistNEvents->GetXaxis()->SetBinLabel(15,
"no. of not on-the-fly rec Ds");
450 fHistCentrality[1]=
new TH1F(
"hCentr(selectedCent)",
"centrality(selectedCent)",10000,0.,100.);
451 fHistCentrality[2]=
new TH1F(
"hCentr(OutofCent)",
"centrality(OutofCent)",10000,0.,100.);
453 fHistCentralityMult[1]=
new TH2F(
"hCentrMult(selectedCent)",
"centrality vs mult(selectedCent)",100,0.5,30000.5,40,0.,100.);
454 fHistCentralityMult[2]=
new TH2F(
"hCentrMult(OutofCent)",
"centrality vs mult(OutofCent)",100,0.5,30000.5,40,0.,100.);
455 for(
Int_t i=0;i<3;i++){
460 fHistAllV0multNTPCout =
new TH2F(
"HistAllV0multNTPCout",
"V0mult vs # TPCout (all) ;V0mult ;# TPCout", 1000, 0., 40000, 1000, 0, 30000);
461 fHistSelV0multNTPCout =
new TH2F(
"HistSelV0multNTPCout",
"V0mult vs # TPCout (sel) ;V0mult ;# TPCout", 1000, 0., 40000, 1000, 0, 30000);
466 Double_t massDs=TDatabasePDG::Instance()->GetParticle(431)->Mass();
469 if(nInvMassBins%2==1) nInvMassBins++;
480 for(
Int_t iType=0; iType<4; iType++){
495 hisname.Form(
"hMass%sPt%d",htype.Data(),i);
498 hisname.Form(
"hMass%sPt%dphi",htype.Data(),i);
501 hisname.Form(
"hMass%sPt%dk0st",htype.Data(),i);
504 hisname.Form(
"hCosP%sPt%d",htype.Data(),i);
505 fCosPHist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.5,1.);
506 hisname.Form(
"hCosPxy%sPt%d",htype.Data(),i);
507 fCosPxyHist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.5,1.);
508 hisname.Form(
"hDLen%sPt%d",htype.Data(),i);
509 fDLenHist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.,0.5);
510 hisname.Form(
"hDLenxy%sPt%d",htype.Data(),i);
511 fDLenxyHist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.,0.5);
512 hisname.Form(
"hNDLenxy%sPt%d",htype.Data(),i);
513 fNDLenxyHist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.,11.);
514 hisname.Form(
"hSumd02%sPt%d",htype.Data(),i);
515 fSumd02Hist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.,1.);
516 hisname.Form(
"hSigVert%sPt%d",htype.Data(),i);
517 fSigVertHist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.,0.1);
518 hisname.Form(
"hPtMax%sPt%d",htype.Data(),i);
519 fPtMaxHist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.5,20.);
520 hisname.Form(
"hPtCand%sPt%d",htype.Data(),i);
521 fPtCandHist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.5,20.);
522 hisname.Form(
"hDCA%sPt%d",htype.Data(),i);
523 fDCAHist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.,0.1);
524 hisname.Form(
"hNormIP%sPt%d",htype.Data(),i);
525 fNormIPHist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.,6.);
526 hisname.Form(
"hCosPiDs%sPt%d",htype.Data(),i);
527 fCosPiDsHist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.5,1.);
528 hisname.Form(
"hCosPiKPhi%sPt%d",htype.Data(),i);
529 fCosPiKPhiHist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.,0.5);
530 hisname.Form(
"hPtProng0%sPt%d",htype.Data(),i);
531 fPtProng0Hist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.0,20.);
532 hisname.Form(
"hPtProng1%sPt%d",htype.Data(),i);
533 fPtProng1Hist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.0,20.);
534 hisname.Form(
"hPtProng2%sPt%d",htype.Data(),i);
535 fPtProng2Hist[index]=
new TH1F(hisname.Data(),hisname.Data(),100,0.0,20.);
536 hisname.Form(
"hDalitz%sPt%d",htype.Data(),i);
537 fDalitz[index]=
new TH2F(hisname.Data(),hisname.Data(),100,0.,2.,100,0.,2.);
538 hisname.Form(
"hDalitz%sPt%dphi",htype.Data(),i);
539 fDalitzPhi[index]=
new TH2F(hisname.Data(),hisname.Data(),100,0.,2.,100,0.,2.);
540 hisname.Form(
"hDalitz%sPt%dk0st",htype.Data(),i);
541 fDalitzK0st[index]=
new TH2F(hisname.Data(),hisname.Data(),100,0.,2.,100,0.,2.);
572 fChanHist[0] =
new TH1F(
"hChanAll",
"KKpi and piKK candidates",64,-0.5,63.5);
573 fChanHist[1] =
new TH1F(
"hChanSig",
"KKpi and piKK candidates",64,-0.5,63.5);
574 fChanHist[2] =
new TH1F(
"hChanBkg",
"KKpi and piKK candidates",64,-0.5,63.5);
575 fChanHist[3] =
new TH1F(
"hChanReflSig",
"KKpi and piKK candidates",64,-0.5,63.5);
576 for(
Int_t i=0;i<4;i++){
581 fCosPHist3D =
new TH3F(
"fCosPHist3D",
"CosP vs Ds mass",nInvMassBins,minMass,maxMass,20,0.,20.,100,0.5,1.);
582 fCosPxyHist3D =
new TH3F(
"fCosPxyHist3D",
"CosPxy vs Ds mass",nInvMassBins,minMass,maxMass,20,0.,20.,100,0.5,1.);
583 fDLenHist3D =
new TH3F(
"fDLenHist3D",
"DLen vs Ds mass",nInvMassBins,minMass,maxMass,20,0.,20.,100,0.,0.5);
584 fDLenxyHist3D =
new TH3F(
"fDLenxyHist3D",
"DLenxy vs Ds mass",nInvMassBins,minMass,maxMass,20,0.,20.,100,0.,0.5);
585 fNDLenxyHist3D =
new TH3F(
"fNDLenxyHist3D",
"NDLenxy vs Ds mass",nInvMassBins,minMass,maxMass,20,0.,20.,100,0.,11.);
586 fSigVertHist3D =
new TH3F(
"fSigVertHist3D",
"SigVert vs Ds mass",nInvMassBins,minMass,maxMass,20,0.,20.,100,0.,0.1);
587 fDCAHist3D =
new TH3F(
"fDCAHist3D",
"DCA vs Ds mass",nInvMassBins,minMass,maxMass,20,0.,20.,100,0.,0.1);
588 fNormIPHist3D =
new TH3F(
"fNormIPHist3D",
"nIP vs Ds mass",nInvMassBins,minMass,maxMass,20,0.,20.,100,0.,6.);
589 fCosPiDsHist3D =
new TH3F(
"fCosPiDsHist3D",
"CosPiDs vs Ds mass",nInvMassBins,minMass,maxMass,20,0.,20.,100,0.5,1.);
590 fCosPiKPhiHist3D =
new TH3F(
"fCosPiKPhiHist3D",
"CosPiKPhi vs Ds mass",nInvMassBins,minMass,maxMass,20,0.,20.,100,0.,0.5);
591 fPtProng0Hist3D =
new TH3F(
"fPtProng0Hist3D",
"Pt prong0 vs Ds mass",nInvMassBins,minMass,maxMass,20,0.,20.,100,0.0,20.);
592 fPtProng1Hist3D =
new TH3F(
"fPtProng1Hist3D",
"Pt prong1 vs Ds mass",nInvMassBins,minMass,maxMass,20,0.,20.,100,0.0,20.);
593 fPtProng2Hist3D =
new TH3F(
"fPtProng2Hist3D",
"Pt prong2 vs Ds mass",nInvMassBins,minMass,maxMass,20,0.,20.,100,0.0,20.);
611 fPtVsMass=
new TH2F(
"hPtVsMass",
"PtVsMass (prod. cuts)",nInvMassBins,minMass,maxMass,40,0.,20.);
612 fPtVsMassPhi=
new TH2F(
"hPtVsMassPhi",
"PtVsMass (phi selection)",nInvMassBins,minMass,maxMass,200,0.,20.);
613 fPtVsMassK0st=
new TH2F(
"hPtVsMassK0st",
"PtVsMass (K0* selection)",nInvMassBins,minMass,maxMass,200,0.,20.);
614 fYVsPt=
new TH2F(
"hYVsPt",
"YvsPt (prod. cuts)",40,0.,20.,80,-2.,2.);
615 fYVsPtSig=
new TH2F(
"hYVsPtSig",
"YvsPt (MC, only sig., prod. cuts)",40,0.,20.,80,-2.,2.);
618 hisname.Form(
"hMassKKPt%d",i);
619 fMassHistKK[i]=
new TH1F(hisname.Data(),hisname.Data(),200,0.95,1.35);
622 hisname.Form(
"hMassKpiPt%d",i);
623 fMassHistKpi[i]=
new TH1F(hisname.Data(),hisname.Data(),200,0.7,1.1);
627 hisname.Form(
"hMassAllPt%dphi_RotBkg",i);
633 hisname.Form(
"fMassLSBkgHistPhiPt%d",i);
637 hisname.Form(
"fMassRSBkgHistPhiPt%d",i);
650 nInvMassBins=(
Int_t)(0.7/fMassBinSize+0.5);
656 Int_t nCentrBins = 1;
659 Int_t nBinsReco[
knVarForSparse] = {nInvMassBins, 20, 30, 14, 14, 20, 10, 10, 14, 6, 6, 12, nTrklBins, nCentrBins};
660 Double_t xminReco[
knVarForSparse] = {
minMass, 0., 0., 0., 0., 0., 90., 90., 0., 7., 0., 0., 1., 0.};
661 Double_t xmaxReco[
knVarForSparse] = {
maxMass, 20., 15, 70., 70., 10., 100., 100., 70., 10., 3., 6., 301., 101.};
662 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())};
664 nInvMassBins=(
Int_t)(0.45/fMassBinSize+0.5);
667 nBinsReco[0] = nInvMassBins;
703 TString label[2] = {
"fromC",
"fromB"};
704 for (
Int_t i=0; i<2; i++) {
705 fnSparseMC[i] =
new THnSparseF(Form(
"fnSparseAcc_%s",label[i].
Data()),Form(
"MC nSparse (Acc.Step)- %s",label[i].
Data()),
707 fnSparseMC[i]->GetAxis(0)->SetTitle(
"p_{T} (GeV/c)");
709 fnSparseMC[i]->GetAxis(2)->SetTitle(
"N tracklets");
714 fnSparseMCDplus[i] =
new THnSparseF(Form(
"fnSparseAccDplus_%s",label[i].
Data()),Form(
"MC nSparse D^{+} (Acc.Step)- %s",label[i].
Data()),
722 for (
Int_t i=2; i<4; i++) {
723 fnSparseMC[i] =
new THnSparseF(Form(
"fnSparseReco_%s",label[i-2].
Data()),Form(
"MC nSparse (Reco Step)- %s",label[i-2].
Data()),
732 fnSparseMCDplus[i] =
new THnSparseF(Form(
"fnSparseRecoDplus_%s",label[i-2].
Data()),Form(
"MC nSparse D^{+} (Reco Step)- %s",label[i-2].
Data()),
733 knVarForSparse, nBinsReco, xminReco, xmaxReco);
745 fnSparseIP->GetAxis(5)->SetTitle(
"candType (0.5=bkg; 1.5=prompt; 2.5=FD)");
751 fnSparse->GetAxis(j)->SetTitle(Form(
"%s",axis[j].
Data()));
758 Int_t nBinsImpPar[3] = { 20, 200, 350};
759 Double_t xminImpPar[3] = { 0., 0., 1.6};
760 Double_t xmaxImpPar[3] = {20., 1000., 2.3};
761 TString axisImpPar[3] = {
"Pt",
"imp.par. (#mum)",
"invMassDsAllPhi"};
763 fImpParSparse =
new THnSparseF(
"fImpParSparse",
"ImpParSparse", 3, nBinsImpPar, xminImpPar, xmaxImpPar);
764 for (
Int_t j=0; j<3; j++) {
773 axisImpPar[2] =
"candType (0.5=bkg; 1.5=prompt; 2.5=FD)";
774 fImpParSparseMC =
new THnSparseF(
"fImpParSparseMC",
"ImpParSparseMC", 3, nBinsImpPar, xminImpPar, xmaxImpPar);
775 for (
Int_t j=0; j<3; j++) {
792 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");
813 if (matchingAODdeltaAODlevel<0 || (matchingAODdeltaAODlevel==0 &&
fAODProtection==1)) {
821 TClonesArray *array3Prong = 0;
822 if(!aod && AODEvent() && IsStandardAOD()) {
828 AliAODHandler* aodHandler = (AliAODHandler*)
829 ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
830 if(aodHandler->GetExtensions()) {
831 AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject(
"AliAOD.VertexingHF.root");
833 array3Prong=(TClonesArray*)aodFromExt->GetList()->FindObject(
"Charm3Prong");
836 array3Prong=(TClonesArray*)aod->GetList()->FindObject(
"Charm3Prong");
839 if(!aod || !array3Prong) {
840 printf(
"AliAnalysisTaskSEDs::UserExec: Charm3Prong branch not found!\n");
847 if(!aod->GetPrimaryVertex() || TMath::Abs(aod->GetMagneticField())<0.001)
return;
859 Float_t ntracks=aod->GetNumberOfTracks();
876 Int_t runNumber=aod->GetRunNumber();
880 TClonesArray *arrayMC=0;
881 AliAODMCHeader *mcHeader=0;
884 AliAODVertex *vtx1 = (AliAODVertex*)aod->GetPrimaryVertex();
890 arrayMC = (TClonesArray*)aod->GetList()->FindObject(AliAODMCParticle::StdBranchName());
892 printf(
"AliAnalysisTaskSEDs::UserExec: MC particles branch not found!\n");
897 mcHeader = (AliAODMCHeader*)aod->GetList()->FindObject(AliAODMCHeader::StdBranchName());
899 printf(
"AliAnalysisTaskSEDs::UserExec: MC header branch not found!\n");
907 if(aod->GetTriggerMask()==0 && (runNumber>=195344 && runNumber<=195677))
913 Double_t zMCVertex = mcHeader->GetVtxZ();
928 AliAODVZERO *aodVZERO = (AliAODVZERO*)aod->GetVZEROData();
930 for(
int ich=0; ich<64;ich++) V0mult += aodVZERO->GetMultiplicity(ich);
933 for (
Int_t i=0;i<aod->GetNumberOfTracks();++i) {
934 AliVTrack *track = aod->GetTrack(i);
935 if (!track)
continue;
936 if((track->GetStatus() & AliVTrack::kTPCout)) nTPCout++;
939 if(nTPCout > (0.32*V0mult+750))
return;
943 Int_t n3Prong = array3Prong->GetEntriesFast();
944 if(fDebug>1) printf(
"Number of Ds->KKpi: %d\n",n3Prong);
946 Int_t pdgDstoKKpi[3]={321,321,211};
949 Double_t massPhi=TDatabasePDG::Instance()->GetParticle(333)->Mass();
956 for (
Int_t i3Prong = 0; i3Prong < n3Prong; i3Prong++) {
982 AliAODVertex *origownvtx=0x0;
987 fYVsPt->Fill(ptCand,rapid);
993 Int_t retCodeNoRes=retCodeAnalysisCuts;
1003 massKK=d->InvMass2Prongs(0,1,321,321);
1004 Double_t massKp=d->InvMass2Prongs(1,2,321,211);
1009 massKK=d->InvMass2Prongs(1,2,321,321);
1010 Double_t massKp=d->InvMass2Prongs(0,1,211,321);
1015 Int_t isKKpi=retCodeAnalysisCuts&1;
1016 Int_t ispiKK=retCodeAnalysisCuts&2;
1017 Int_t isPhiKKpi=retCodeAnalysisCuts&4;
1018 Int_t isPhipiKK=retCodeAnalysisCuts&8;
1019 Int_t isK0starKKpi=retCodeAnalysisCuts&16;
1020 Int_t isK0starpiKK=retCodeAnalysisCuts&32;
1022 if(retCodeAnalysisCuts>0){
1042 if(weightKKpi>1. || weightKKpi<0.) weightKKpi=0.;
1043 if(weightpiKK>1. || weightpiKK<0.) weightpiKK=0.;
1046 fChanHist[0]->Fill(retCodeAnalysisCuts);
1050 Int_t indexMCKKpi=-1;
1051 Int_t indexMCpiKK=-1;
1054 Int_t pdgCode0=-999;
1055 Int_t isMCSignal=-1;
1060 labDs = d->MatchToMC(431,arrayMC,3,pdgDstoKKpi);
1061 labDplus = d->MatchToMC(411,arrayMC,3,pdgDstoKKpi);
1063 Int_t labDau0=((AliAODTrack*)d->GetDaughter(0))->GetLabel();
1064 AliAODMCParticle* p=(AliAODMCParticle*)arrayMC->UncheckedAt(TMath::Abs(labDau0));
1065 pdgCode0=TMath::Abs(p->GetPdgCode());
1071 fChanHist[1]->Fill(retCodeAnalysisCuts);
1075 fChanHist[3]->Fill(retCodeAnalysisCuts);
1083 fChanHist[1]->Fill(retCodeAnalysisCuts);
1087 fChanHist[3]->Fill(retCodeAnalysisCuts);
1094 fChanHist[2]->Fill(retCodeAnalysisCuts);
1096 Int_t labDau0=((AliAODTrack*)d->GetDaughter(0))->GetLabel();
1097 AliAODMCParticle* p=(AliAODMCParticle*)arrayMC->UncheckedAt(TMath::Abs(labDau0));
1098 pdgCode0=TMath::Abs(p->GetPdgCode());
1104 Double_t massPhi=TDatabasePDG::Instance()->GetParticle(333)->Mass();
1110 fMassHist[index]->Fill(invMass,weightKKpi);
1111 fPtVsMass->Fill(invMass,ptCand,weightKKpi);
1113 if(
fDoBkgPhiSB && 0.010<TMath::Abs(massKK-massPhi)<0.030) {
1126 if(
fReadMC && indexMCKKpi!=-1){
1127 fMassHist[indexMCKKpi]->Fill(invMass,weightKKpi);
1132 AliAODMCParticle *partDs;
1133 if(indexMCKKpi==
GetSignalHistoIndex(iPtBin)) partDs = (AliAODMCParticle*)arrayMC->At(labDs);
1134 if(labDplus >= 0) partDs = (AliAODMCParticle*)arrayMC->At(labDplus);
1145 if(isK0starKKpi)
fMassHistK0st[indexMCKKpi]->Fill(invMass,weightKKpi);
1150 Double_t array4ImpPar[3] = {ptCand,impParxy,invMass};
1154 Double_t array4ImpPar[3] = {ptCand,impParxy,candType};
1163 fMassHist[index]->Fill(invMass,weightpiKK);
1164 fPtVsMass->Fill(invMass,ptCand,weightpiKK);
1166 if(
fDoBkgPhiSB && 0.010<TMath::Abs(massKK-massPhi)<0.030) {
1179 if(
fReadMC && indexMCpiKK!=-1){
1180 fMassHist[indexMCpiKK]->Fill(invMass,weightpiKK);
1185 AliAODMCParticle *partDs;
1186 if(indexMCpiKK==
GetSignalHistoIndex(iPtBin)) partDs = (AliAODMCParticle*)arrayMC->At(labDs);
1187 if(labDplus >= 0) partDs = (AliAODMCParticle*)arrayMC->At(labDplus);
1198 if(isK0starpiKK)
fMassHistK0st[indexMCpiKK]->Fill(invMass,weightpiKK);
1203 Double_t array4ImpPar[3] = {ptCand,impParxy,invMass};
1207 Double_t array4ImpPar[3] = {ptCand,impParxy,candType};
1216 const Int_t nProng = 3;
1239 cent = multSelection->GetMultiplicityPercentile(Form(
"%s",
fCentEstName.Data()));
1240 Int_t qual = multSelection->GetEvSelCode();
1241 if(qual == 199 ) cent=-999;
1246 AliDebug(2,
"Using Histogram as Pt weight function");
1253 massKK = d->InvMass2Prongs(0,1,321,321);
1254 deltaMassKK = TMath::Abs(massKK-massPhi);
1257 cosPiKPhi = TMath::Abs(cosPiKPhi*cosPiKPhi*cosPiKPhi);
1259 for(
Int_t ip=0; ip<nProng; ip++) {
1262 tmpNormIP[ip] = diffIP/errdiffIP;
1263 if(ip==0) normIP = tmpNormIP[ip];
1264 else if(TMath::Abs(tmpNormIP[ip])>TMath::Abs(normIP)) normIP = tmpNormIP[ip];
1266 normIPprong[0] = tmpNormIP[0];
1267 normIPprong[1] = tmpNormIP[1];
1268 normIPprong[2] = tmpNormIP[2];
1270 Double_t var4nSparse[
knVarForSparse] = {invMass,ptCand,deltaMassKK*1000,dlen*1000,dlenxy*1000,normdlxy,cosp*100,cospxy*100,
1271 sigvert*1000,cosPiDs*10,cosPiKPhi*10,TMath::Abs(normIP),nTracklets,cent};
1278 if(candType==1.5)
fnSparseMC[2]->Fill(var4nSparse,ptWeight);
1279 if(candType==2.5)
fnSparseMC[3]->Fill(var4nSparse,ptWeight);
1291 massKK = d->InvMass2Prongs(1,2,321,321);
1292 deltaMassKK = TMath::Abs(massKK-massPhi);
1295 cosPiKPhi = TMath::Abs(cosPiKPhi*cosPiKPhi*cosPiKPhi);
1297 for(
Int_t ip=0; ip<nProng; ip++) {
1300 tmpNormIP[ip] = diffIP/errdiffIP;
1301 if(ip==0) normIP = tmpNormIP[ip];
1302 else if(TMath::Abs(tmpNormIP[ip])>TMath::Abs(normIP)) normIP = tmpNormIP[ip];
1305 normIPprong[0] = tmpNormIP[2];
1306 normIPprong[1] = tmpNormIP[1];
1307 normIPprong[2] = tmpNormIP[0];
1309 Double_t var4nSparse[
knVarForSparse] = {invMass,ptCand,deltaMassKK*1000,dlen*1000,dlenxy*1000,normdlxy,cosp*100,cospxy*100,
1310 sigvert*1000,cosPiDs*10,cosPiKPhi*10,TMath::Abs(normIP),nTracklets,cent};
1317 if(candType==1.5)
fnSparseMC[2]->Fill(var4nSparse,ptWeight);
1318 if(candType==2.5)
fnSparseMC[3]->Fill(var4nSparse,ptWeight);
1327 if(
fReadMC && (isPhiKKpi || isPhiKKpi)) {
1328 Double_t var[6] = {ptCand,normIP,normIPprong[0],normIPprong[1],normIPprong[2],candType};
1335 Double_t sumD02=d->Getd0Prong(0)*d->Getd0Prong(0)+d->Getd0Prong(1)*d->Getd0Prong(1)+d->Getd0Prong(2)*d->Getd0Prong(2);
1339 for(
Int_t i=0;i<3;i++){
1340 if(d->PtProng(i)>
ptmax)ptmax=d->PtProng(i);
1373 Double_t massKK=d->InvMass2Prongs(0,1,321,321);
1374 Double_t massKp=d->InvMass2Prongs(1,2,321,211);
1375 fDalitz[index]->Fill(massKK,massKp);
1376 if(isPhiKKpi)
fDalitzPhi[index]->Fill(massKK,massKp);
1377 if(isK0starKKpi)
fDalitzK0st[index]->Fill(massKK,massKp);
1378 if(
fReadMC && indexMCKKpi!=-1){
1379 fDalitz[indexMCKKpi]->Fill(massKK,massKp);
1380 if(isPhiKKpi)
fDalitzPhi[indexMCKKpi]->Fill(massKK,massKp);
1381 if(isK0starKKpi)
fDalitzK0st[indexMCKKpi]->Fill(massKK,massKp);
1401 Double_t massKK=d->InvMass2Prongs(1,2,321,321);
1402 Double_t massKp=d->InvMass2Prongs(0,1,211,321);
1403 fDalitz[index]->Fill(massKK,massKp);
1404 if(isPhipiKK)
fDalitzPhi[index]->Fill(massKK,massKp);
1405 if(isK0starpiKK)
fDalitzK0st[index]->Fill(massKK,massKp);
1408 if(
fReadMC && indexMCpiKK!=-1){
1409 fDalitz[indexMCpiKK]->Fill(massKK,massKp);
1410 if(isPhipiKK)
fDalitzPhi[indexMCpiKK]->Fill(massKK,massKp);
1411 if(isK0starpiKK)
fDalitzK0st[indexMCpiKK]->Fill(massKK,massKp);
1437 AliAODTrack *track0=(AliAODTrack*)d->GetDaughter(0);
1438 AliAODTrack *track1=(AliAODTrack*)d->GetDaughter(1);
1439 AliAODTrack *track2=(AliAODTrack*)d->GetDaughter(2);
1447 tmp[1]=
Float_t(retCodeAnalysisCuts);
1449 tmp[3]=d->PtProng(0);
1450 tmp[4]=d->PtProng(1);
1451 tmp[5]=d->PtProng(2);
1453 tmp[7]=d->PProng(0);
1454 tmp[8]=d->PProng(1);
1455 tmp[9]=d->PProng(2);
1456 tmp[10]=
Int_t(bitMapPIDTrack0);
1457 tmp[11]=
Int_t(bitMapPIDTrack1);
1458 tmp[12]=
Int_t(bitMapPIDTrack2);
1468 tmp[22]=d->Getd0Prong(0);
1469 tmp[23]=d->Getd0Prong(1);
1470 tmp[24]=d->Getd0Prong(2);
1471 tmp[25]=d->GetDCA();
1472 tmp[26]=d->Getd0Prong(0)*d->Getd0Prong(0)+d->Getd0Prong(1)*d->Getd0Prong(1)+d->Getd0Prong(2)*d->Getd0Prong(2);
1473 tmp[27]=d->InvMass2Prongs(0,1,321,321);
1474 tmp[28]=d->InvMass2Prongs(1,2,321,321);
1475 tmp[29]=d->InvMass2Prongs(1,2,321,211);
1476 tmp[30]=d->InvMass2Prongs(0,1,211,321);
1481 tmp[35]=(
Float_t)(centrality);
1516 if(fDebug > 1) printf(
"AnalysisTaskSEDs: Terminate() \n");
1519 printf(
"ERROR: fOutput not available\n");
1524 printf(
"Number of analyzed events = %d\n",(
Int_t)
fHistNEvents->GetBinContent(2));
1526 printf(
"ERROR: fHistNEvents not available\n");
1537 Double_t zMCVertex = mcHeader->GetVtxZ();
1539 for(
Int_t iPart=0; iPart<arrayMC->GetEntriesFast(); iPart++){
1541 AliAODMCParticle* mcPart =
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(iPart));
1543 if(TMath::Abs(mcPart->GetPdgCode()) == 431) {
1547 Bool_t isGoodDecay = kFALSE;
1548 Int_t labDau[3] = {-1,-1,-1};
1549 Bool_t isFidAcc = kFALSE;
1550 Bool_t isDaugInAcc = kFALSE;
1553 if(deca == 1) isGoodDecay=kTRUE;
1555 if(labDau[0]==-1)
continue;
1568 AliDebug(2,
"Using Histogram as Pt weight function");
1571 if(orig==4)
fnSparseMC[0]->Fill(var4nSparseAcc,ptWeight);
1572 if(orig==5)
fnSparseMC[1]->Fill(var4nSparseAcc,ptWeight);
1582 Bool_t isGoodDecay = kFALSE;
1583 Int_t labDau[3] = {-1,-1,-1};
1584 Bool_t isFidAcc = kFALSE;
1585 Bool_t isDaugInAcc = kFALSE;
1588 if(deca == 1) isGoodDecay=kTRUE;
1590 if(labDau[0]==-1)
continue;
1603 AliDebug(2,
"Using Histogram as Pt weight function");
1619 for (
Int_t iProng = 0; iProng<nProng; iProng++){
1620 AliAODMCParticle* mcPartDaughter=
dynamic_cast<AliAODMCParticle*
>(arrayMC->At(labDau[iProng]));
1621 if(!mcPartDaughter) {
1624 Double_t eta = mcPartDaughter->Eta();
1625 Double_t pt = mcPartDaughter->Pt();
1626 if (TMath::Abs(eta) > 0.9 || pt < 0.1) {
1637 const Int_t nprongs = 3;
1638 Double_t PxProng[nprongs], PyProng[nprongs], PtProng[nprongs], PzProng[nprongs], P2Prong[nprongs], mProng[nprongs];
1648 for (
Int_t ip=0; ip<nprongs; ip++) {
1649 PxProng[ip] = d->PxProng(ip);
1650 PyProng[ip] = d->PxProng(ip);
1651 PtProng[ip] = d->PtProng(ip);
1652 PzProng[ip] = d->PzProng(ip);
1653 P2Prong[ip] = d->P2Prong(ip);
1654 mProng[ip] = TDatabasePDG::Instance()->GetParticle(pdg[ip])->Mass();
1657 for(
Int_t i=0; i<9; i++) {
1662 Double_t phirot=TMath::Pi()*(5/6.+1/27.*i);
1664 PxProng[idPion] = PxProng[idPion]*TMath::Cos(phirot)-PyProng[idPion]*TMath::Sin(phirot);
1665 PyProng[idPion] = PxProng[idPion]*TMath::Sin(phirot)+PyProng[idPion]*TMath::Cos(phirot);
1667 for (
Int_t j=0; j<nprongs; j++) {
1672 P2 = Px*Px + Py*Py + Pz*Pz;
1675 for(
Int_t j=0; j<nprongs; j++) {
1676 energysum += TMath::Sqrt(mProng[j]*mProng[j]+P2Prong[j]);
1688 fHistoPtWeight =
new TH1F(
"histoWeight",
"histoWeight",500,0.,50.);
1690 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};
1691 for(
Int_t i=0; i<500; i++){
1704 fHistoPtWeight =
new TH1F(
"histoWeight",
"histoWeight",400,0.,40.);
1706 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};
1707 for(
Int_t i=0; i<400; i++){
1720 fHistoPtWeight =
new TH1F(
"histoWeight",
"histoWeight",400,0.,40.);
1722 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};
1723 for(
Int_t i=0; i<400; i++){
1735 fHistoPtWeight =
new TH1F(
"histoWeight",
"histoWeight",400,0.,40.);
1737 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};
1738 for(
Int_t i=0; i<400; i++){
1754 if( (bin2>0) && (bin2<=histoNbins) ) {
1757 if(bin2==1) bin1=bin2+2;
1758 if(bin2==histoNbins) bin3=bin2-2;
1765 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) );
1766 Double_t b=((y_1-y_2)-a*(x_1*x_1-x_2*x_2))/(x_1-x_2);
1768 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 usage of sparse for imp. parameter
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
ClassImp(AliAnalysisTaskDeltaPt) AliAnalysisTaskDeltaPt
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)
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]