--- /dev/null
+AliAnalysisVertexingHF* ConfigVertexingHF() {
+
+ printf("Call to AliAnalysisVertexingHF parameters setting :\n");
+ vHF = new AliAnalysisVertexingHF();
+
+ //--- switch-off candidates finding (default: all on)
+ //vHF->SetD0toKpiOff();
+ vHF->SetJPSItoEleOff();
+ //vHF->Set3ProngOff();
+ vHF->SetLikeSignOn(); // like-sign pairs and triplets
+ // vHF->SetLikeSign3prongOff();
+ vHF->Set4ProngOff();
+ //vHF->SetDstarOff();
+ vHF->SetFindVertexForDstar(kFALSE);
+ //--- secondary vertex with KF?
+ //vHF->SetSecVtxWithKF();
+ vHF->SetCascadesOff();
+ vHF->SetFindVertexForCascades(kFALSE);
+ vHF->SetMassCutBeforeVertexing(kTRUE); // PbPb
+ vHF->SetV0TypeForCascadeVertex(AliRDHFCuts::kAllV0s);
+
+ //--- set cuts for single-track selection
+ // displaced tracks
+ AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts","default");
+ esdTrackCuts->SetRequireTPCRefit(kTRUE);
+ esdTrackCuts->SetMinNClustersTPC(70);
+ esdTrackCuts->SetRequireITSRefit(kTRUE);
+ //esdTrackCuts->SetMinNClustersITS(4);
+ esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
+ AliESDtrackCuts::kAny);
+ // |d0|>75 micron for pt<2GeV, no cut above 2
+ esdTrackCuts->SetMinDCAToVertexXYPtDep("0.0075*TMath::Max(0.,(1-TMath::Floor(TMath::Abs(pt)/2.)))");
+ esdTrackCuts->SetMaxDCAToVertexXY(1.);
+ esdTrackCuts->SetMaxDCAToVertexZ(1.);
+ esdTrackCuts->SetPtRange(0.6,1.e10);
+ esdTrackCuts->SetEtaRange(-0.8,+0.8);
+ AliAnalysisFilter *trkFilter = new AliAnalysisFilter("trackFilter");
+ trkFilter->AddCuts(esdTrackCuts);
+ vHF->SetTrackFilter(trkFilter);
+ // D* soft pion tracks
+ AliESDtrackCuts *esdTrackCutsSoftPi = new AliESDtrackCuts("AliESDtrackCuts","default");
+ esdTrackCutsSoftPi->SetMinNClustersITS(4);
+ esdTrackCutsSoftPi->SetMaxDCAToVertexXY(1.);
+ esdTrackCutsSoftPi->SetMaxDCAToVertexZ(1.);
+ esdTrackCutsSoftPi->SetPtRange(0.2,1.e10);
+ esdTrackCutsSoftPi->SetEtaRange(-0.8,+0.8);
+ AliAnalysisFilter *trkFilterSoftPi = new AliAnalysisFilter("trackFilterSoftPi");
+ trkFilterSoftPi->AddCuts(esdTrackCutsSoftPi);
+ vHF->SetTrackFilterSoftPi(trkFilterSoftPi);
+ //--- set cuts for candidates selection
+ Int_t nptbins=2; Float_t ptlimits[2]={0.,1000000.};
+ AliRDHFCutsD0toKpi *cutsD0toKpi = new AliRDHFCutsD0toKpi("CutsD0toKpi");
+ cutsD0toKpi->SetStandardCutsPbPb2010();
+ cutsD0toKpi->SetMinCentrality(-10);
+ cutsD0toKpi->SetMaxCentrality(110);
+ cutsD0toKpi->SetUseSpecialCuts(kFALSE);
+ cutsD0toKpi->SetMinPtCandidate(0.);
+ cutsD0toKpi->SetUsePID(kFALSE);
+ cutsD0toKpi->SetUsePhysicsSelection(kFALSE);
+ cutsD0toKpi->SetMaxVtxZ(1.e6);
+ cutsD0toKpi->SetTriggerClass("");
+ Float_t cutsArrayD0toKpi[11]={0.4,999999.,1.1,0.,0.,999999.,999999.,0.,0.5,-1,0.};
+ cutsD0toKpi->SetPtBins(nptbins,ptlimits);
+ cutsD0toKpi->SetCuts(11,cutsArrayD0toKpi);
+ cutsD0toKpi->AddTrackCuts(esdTrackCuts);
+ vHF->SetCutsD0toKpi(cutsD0toKpi);
+ AliRDHFCutsJpsitoee *cutsJpsitoee = new AliRDHFCutsJpsitoee("CutsJpsitoee");
+ Float_t cutsArrayJpsitoee[9]={0.350,100000.,1.1,0.,0.,100000.,100000.,100000000.,-1.1};
+ cutsJpsitoee->SetCuts(9,cutsArrayJpsitoee);
+ cutsJpsitoee->AddTrackCuts(esdTrackCuts);
+ vHF->SetCutsJpsitoee(cutsJpsitoee);
+ AliRDHFCutsDplustoKpipi *cutsDplustoKpipi = new AliRDHFCutsDplustoKpipi("CutsDplustoKpipi");
+ cutsDplustoKpipi->SetStandardCutsPbPb2010();
+ cutsDplustoKpipi->SetUsePID(kFALSE);
+ Float_t cutsArrayDplustoKpipi[14]={0.25,0.3,0.3,0.,0.,0.01,0.05,0.05,0.,0.88,0.,10000000000.,0.,-1.};
+ cutsDplustoKpipi->SetPtBins(nptbins,ptlimits);
+ cutsDplustoKpipi->SetCuts(14,cutsArrayDplustoKpipi);
+ cutsDplustoKpipi->AddTrackCuts(esdTrackCuts);
+ cutsDplustoKpipi->SetMinPtCandidate(2.);
+ vHF->SetCutsDplustoKpipi(cutsDplustoKpipi);
+ AliRDHFCutsDstoKKpi *cutsDstoKKpi = new AliRDHFCutsDstoKKpi("CutsDstoKKpi");
+ cutsDstoKKpi->SetStandardCutsPbPb2010();
+ cutsDstoKKpi->SetUsePID(kFALSE);
+ Float_t cutsArrayDstoKKpi[20]={0.35,0.3,0.3,0.,0.,0.005,0.06,0.,0.,0.9,0.,100000.,0.035,0.0001,-1.,1.,0.,0.,0.,-1.};
+ cutsDstoKKpi->SetPtBins(nptbins,ptlimits);
+ cutsDstoKKpi->SetCuts(20,cutsArrayDstoKKpi);
+ cutsDstoKKpi->AddTrackCuts(esdTrackCuts);
+ cutsDstoKKpi->SetMinPtCandidate(2.);
+ vHF->SetCutsDstoKKpi(cutsDstoKKpi);
+ AliRDHFCutsLctopKpi *cutsLctopKpi = new AliRDHFCutsLctopKpi("CutsLctopKpi");
+ cutsLctopKpi->SetStandardCutsPbPb2010();
+ cutsLctopKpi->SetUsePID(kFALSE);
+ Float_t cutsArrayLctopKpi[13]={0.13,0.9,1.,0.,0.,0.01,0.04,0.006,1.,0.5,0.,0.05,0.4};
+ cutsLctopKpi->SetPtBins(nptbins,ptlimits);
+ cutsLctopKpi->SetCuts(13,cutsArrayLctopKpi);
+ cutsLctopKpi->AddTrackCuts(esdTrackCuts);
+ cutsLctopKpi->SetMinPtCandidate(2.);
+ vHF->SetCutsLctopKpi(cutsLctopKpi);
+ AliRDHFCutsD0toKpipipi *cutsD0toKpipipi = new AliRDHFCutsD0toKpipipi("CutsD0toKpipipi");
+ Float_t cutsArrayD0toKpipipi[9]={0.2,0.04,0.00,0.01,0.02,0.8,0.,0.1,0.};
+ cutsD0toKpipipi->SetCuts(9,cutsArrayD0toKpipipi);
+ cutsD0toKpipipi->AddTrackCuts(esdTrackCuts);
+ vHF->SetCutsD0toKpipipi(cutsD0toKpipipi);
+
+
+ // D* pt dependent cuts ------------------------------------------
+
+ AliRDHFCutsDStartoKpipi *cutsDStartoKpipi = new AliRDHFCutsDStartoKpipi("CutsDStartoKpipi");
+ cutsDStartoKpipi->SetUsePID(kFALSE);
+
+ const Int_t nvars=16;
+ const Int_t nptbins=2;
+
+ Float_t* ptbins;
+ ptbins=new Float_t[nptbins+1];
+ ptbins[0]=0.;
+ ptbins[1]=5.;
+ ptbins[2]=999.;
+
+ cutsDStartoKpipi->SetPtBins(nptbins+1,ptbins);
+
+ Float_t** rdcutsvalmine;
+ rdcutsvalmine=new Float_t*[nvars];
+ for(Int_t iv=0;iv<nvars;iv++){
+ rdcutsvalmine[iv]=new Float_t[nptbins];
+ }
+ //0-5
+ rdcutsvalmine[0][0]=0.10; //D0 inv mass window
+ rdcutsvalmine[1][0]=0.06; // dca
+ rdcutsvalmine[2][0]=0.9; // thetastar
+ rdcutsvalmine[3][0]=0.5; // pt Pion
+ rdcutsvalmine[4][0]=0.5; // Pt Kaon
+ rdcutsvalmine[5][0]=0.1; // d0K
+ rdcutsvalmine[6][0]=0.1; // d0Pi
+ rdcutsvalmine[7][0]=0.0001; // d0xd0
+ rdcutsvalmine[8][0]=0.8; // costhetapoint
+ rdcutsvalmine[9][0]=0.15; // Dstar inv mass window
+ rdcutsvalmine[10][0]=0.03; // half width of (M_Kpipi-M_D0)
+ rdcutsvalmine[11][0]=0.1; // Pt min of Pi soft
+ rdcutsvalmine[12][0]=100.; // Pt max of pi soft
+ rdcutsvalmine[13][0]=9999.; // theta
+ rdcutsvalmine[14][0]=0.9; // |cosThetaPointXY|
+ rdcutsvalmine[15][0]=1.; // NormDecayLenghtXY
+ //5-999
+ rdcutsvalmine[0][1]=0.10; //D0 inv mass window
+ rdcutsvalmine[1][1]=0.06; // dca
+ rdcutsvalmine[2][1]=0.9; // thetastar
+ rdcutsvalmine[3][1]=0.5; // pt Pion
+ rdcutsvalmine[4][1]=0.5; // Pt Kaon
+ rdcutsvalmine[5][1]=0.1; // d0K
+ rdcutsvalmine[6][1]=0.1; // d0Pi
+ rdcutsvalmine[7][1]=0.0001; // d0xd0
+ rdcutsvalmine[8][1]=0.7; // costhetapoint
+ rdcutsvalmine[9][1]=0.15; // Dstar inv mass window
+ rdcutsvalmine[10][1]=0.03; // half width of (M_Kpipi-M_D0)
+ rdcutsvalmine[11][1]=0.1; // Pt min of Pi soft
+ rdcutsvalmine[12][1]=100.; // Pt max of pi soft
+ rdcutsvalmine[13][1]=9999.; // theta
+ rdcutsvalmine[14][1]=0.8; // |cosThetaPointXY|
+ rdcutsvalmine[15][1]=0.; // NormDecayLenghtXY
+
+ cutsDStartoKpipi->SetCuts(nvars,nptbins,rdcutsvalmine);
+
+ cutsDStartoKpipi->AddTrackCuts(esdTrackCuts);
+ cutsDStartoKpipi->AddTrackCutsSoftPi(esdTrackCutsSoftPi);
+ cutsDStartoKpipi->SetMinPtCandidate(2.);
+ vHF->SetCutsDStartoKpipi(cutsDStartoKpipi);
+
+ //--------------------------------------------------------
+
+ AliRDHFCutsLctoV0 *cutsLctoV0 = new AliRDHFCutsLctoV0("CutsLctoV0");
+ Float_t cutsArrayLctoV0[17]={1.0,1.0,0.05,0.05,0.0,0.0,0.0,1000.,1000.,0.99,3.,1000.,0.,0.,0.,0.,0.0};
+ cutsLctoV0->SetCuts(17,cutsArrayLctoV0);
+ cutsLctoV0->AddTrackCuts(esdTrackCuts);
+ vHF->SetCutsLctoV0(cutsLctoV0);
+ //
+ //--- set this if you want to reconstruct primary vertex candidate by
+ // candidate using other tracks in the event (for pp, broad
+ // interaction region)
+ //vHF->SetRecoPrimVtxSkippingTrks();
+ //--- OR set this if you want to remove the candidate daughters from
+ // the primary vertex, without recostructing it from scratch
+ //vHF->SetRmTrksFromPrimVtx();
+
+ //--- check the settings
+ vHF->PrintStatus();
+ //--- verbose
+ // AliLog::SetClassDebugLevel("AliAnalysisVertexingHF",2);
+
+
+ return vHF;
+}
+
+
--- /dev/null
+AliAnalysisVertexingHF* ConfigVertexingHF() {
+
+ printf("Call to AliAnalysisVertexingHF parameters setting :\n");
+ vHF = new AliAnalysisVertexingHF();
+
+ //--- switch-off candidates finding (default: all on)
+ //vHF->SetD0toKpiOff();
+ vHF->SetJPSItoEleOff();
+ //vHF->Set3ProngOff();
+ //vHF->SetLikeSignOn(); // like-sign pairs and triplets
+ // vHF->SetLikeSign3prongOff();
+ vHF->Set4ProngOff();
+ vHF->SetDstarOff();
+ vHF->SetFindVertexForDstar(kFALSE);
+ //--- secondary vertex with KF?
+ //vHF->SetSecVtxWithKF();
+ vHF->SetCascadesOff();
+ vHF->SetFindVertexForCascades(kFALSE);
+ vHF->SetMassCutBeforeVertexing(kTRUE); // PbPb
+ vHF->SetV0TypeForCascadeVertex(AliRDHFCuts::kAllV0s);
+
+ //--- set cuts for single-track selection
+ // displaced tracks
+ AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts","default");
+ esdTrackCuts->SetRequireTPCRefit(kTRUE);
+ esdTrackCuts->SetMinNClustersTPC(70);
+ esdTrackCuts->SetRequireITSRefit(kTRUE);
+ //esdTrackCuts->SetMinNClustersITS(4);
+ esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
+ AliESDtrackCuts::kAny);
+ // |d0|>75 micron for pt<2GeV, no cut above 2
+ esdTrackCuts->SetMinDCAToVertexXYPtDep("0.0075*TMath::Max(0.,(1-TMath::Floor(TMath::Abs(pt)/2.)))");
+ esdTrackCuts->SetMaxDCAToVertexXY(1.);
+ esdTrackCuts->SetMaxDCAToVertexZ(1.);
+ esdTrackCuts->SetPtRange(0.6,1.e10);
+ esdTrackCuts->SetEtaRange(-0.8,+0.8);
+ AliAnalysisFilter *trkFilter = new AliAnalysisFilter("trackFilter");
+ trkFilter->AddCuts(esdTrackCuts);
+ vHF->SetTrackFilter(trkFilter);
+ // D* soft pion tracks
+ AliESDtrackCuts *esdTrackCutsSoftPi = new AliESDtrackCuts("AliESDtrackCuts","default");
+ esdTrackCutsSoftPi->SetMinNClustersITS(4);
+ esdTrackCutsSoftPi->SetMaxDCAToVertexXY(1.);
+ esdTrackCutsSoftPi->SetMaxDCAToVertexZ(1.);
+ esdTrackCutsSoftPi->SetPtRange(0.2,1.e10);
+ esdTrackCutsSoftPi->SetEtaRange(-0.8,+0.8);
+ AliAnalysisFilter *trkFilterSoftPi = new AliAnalysisFilter("trackFilterSoftPi");
+ trkFilterSoftPi->AddCuts(esdTrackCutsSoftPi);
+ vHF->SetTrackFilterSoftPi(trkFilterSoftPi);
+ //--- set cuts for candidates selection
+ Int_t nptbins=2; Float_t ptlimits[2]={0.,1000000.};
+ AliRDHFCutsD0toKpi *cutsD0toKpi = new AliRDHFCutsD0toKpi("CutsD0toKpi");
+ cutsD0toKpi->SetStandardCutsPbPb2010();
+ cutsD0toKpi->SetMinCentrality(-10);
+ cutsD0toKpi->SetMaxCentrality(110);
+ cutsD0toKpi->SetUseSpecialCuts(kFALSE);
+ cutsD0toKpi->SetMinPtCandidate(0.);
+ cutsD0toKpi->SetUsePID(kFALSE);
+ cutsD0toKpi->SetUsePhysicsSelection(kFALSE);
+ cutsD0toKpi->SetMaxVtxZ(1.e6);
+ cutsD0toKpi->SetTriggerClass("");
+ Float_t cutsArrayD0toKpi[11]={0.4,999999.,1.1,0.,0.,999999.,999999.,0.,0.5,-1,0.};
+ cutsD0toKpi->SetPtBins(nptbins,ptlimits);
+ cutsD0toKpi->SetCuts(11,cutsArrayD0toKpi);
+ cutsD0toKpi->AddTrackCuts(esdTrackCuts);
+ vHF->SetCutsD0toKpi(cutsD0toKpi);
+ AliRDHFCutsJpsitoee *cutsJpsitoee = new AliRDHFCutsJpsitoee("CutsJpsitoee");
+ Float_t cutsArrayJpsitoee[9]={0.350,100000.,1.1,0.,0.,100000.,100000.,100000000.,-1.1};
+ cutsJpsitoee->SetCuts(9,cutsArrayJpsitoee);
+ cutsJpsitoee->AddTrackCuts(esdTrackCuts);
+ vHF->SetCutsJpsitoee(cutsJpsitoee);
+ AliRDHFCutsDplustoKpipi *cutsDplustoKpipi = new AliRDHFCutsDplustoKpipi("CutsDplustoKpipi");
+ cutsDplustoKpipi->SetStandardCutsPbPb2010();
+ cutsDplustoKpipi->SetUsePID(kFALSE);
+ Float_t cutsArrayDplustoKpipi[14]={0.25,0.3,0.3,0.,0.,0.01,0.05,0.05,0.,0.88,0.,10000000000.,0.,-1.};
+ cutsDplustoKpipi->SetPtBins(nptbins,ptlimits);
+ cutsDplustoKpipi->SetCuts(14,cutsArrayDplustoKpipi);
+ cutsDplustoKpipi->AddTrackCuts(esdTrackCuts);
+ cutsDplustoKpipi->SetMinPtCandidate(2.);
+ vHF->SetCutsDplustoKpipi(cutsDplustoKpipi);
+ AliRDHFCutsDstoKKpi *cutsDstoKKpi = new AliRDHFCutsDstoKKpi("CutsDstoKKpi");
+ cutsDstoKKpi->SetStandardCutsPbPb2010();
+ cutsDstoKKpi->SetUsePID(kFALSE);
+ Float_t cutsArrayDstoKKpi[16]={0.35,0.3,0.3,0.,0.,0.005,0.06,0.,0.,0.9,0.,100000.,0.035,0.0001,-1.,1.};
+ cutsDstoKKpi->SetPtBins(nptbins,ptlimits);
+ cutsDstoKKpi->SetCuts(16,cutsArrayDstoKKpi);
+ cutsDstoKKpi->AddTrackCuts(esdTrackCuts);
+ cutsDstoKKpi->SetMinPtCandidate(1.);
+ vHF->SetCutsDstoKKpi(cutsDstoKKpi);
+ AliRDHFCutsLctopKpi *cutsLctopKpi = new AliRDHFCutsLctopKpi("CutsLctopKpi");
+ cutsLctopKpi->SetStandardCutsPbPb2010();
+ cutsLctopKpi->SetUsePID(kFALSE);
+ Float_t cutsArrayLctopKpi[13]={0.13,0.9,1.,0.,0.,0.01,0.04,0.006,1.,0.5,0.,0.05,0.4};
+ cutsLctopKpi->SetPtBins(nptbins,ptlimits);
+ cutsLctopKpi->SetCuts(13,cutsArrayLctopKpi);
+ cutsLctopKpi->AddTrackCuts(esdTrackCuts);
+ cutsLctopKpi->SetMinPtCandidate(2.);
+ vHF->SetCutsLctopKpi(cutsLctopKpi);
+ AliRDHFCutsD0toKpipipi *cutsD0toKpipipi = new AliRDHFCutsD0toKpipipi("CutsD0toKpipipi");
+ Float_t cutsArrayD0toKpipipi[9]={0.2,0.04,0.00,0.01,0.02,0.8,0.,0.1,0.};
+ cutsD0toKpipipi->SetCuts(9,cutsArrayD0toKpipipi);
+ cutsD0toKpipipi->AddTrackCuts(esdTrackCuts);
+ vHF->SetCutsD0toKpipipi(cutsD0toKpipipi);
+
+
+ // D* pt dependent cuts ------------------------------------------
+
+ AliRDHFCutsDStartoKpipi *cutsDStartoKpipi = new AliRDHFCutsDStartoKpipi("CutsDStartoKpipi");
+ cutsDStartoKpipi->SetUsePID(kFALSE);
+
+ const Int_t nvars=16;
+ const Int_t nptbins=2;
+
+ Float_t* ptbins;
+ ptbins=new Float_t[nptbins+1];
+ ptbins[0]=0.;
+ ptbins[1]=5.;
+ ptbins[2]=999.;
+
+ cutsDStartoKpipi->SetPtBins(nptbins+1,ptbins);
+
+ Float_t** rdcutsvalmine;
+ rdcutsvalmine=new Float_t*[nvars];
+ for(Int_t iv=0;iv<nvars;iv++){
+ rdcutsvalmine[iv]=new Float_t[nptbins];
+ }
+ //0-5
+ rdcutsvalmine[0][0]=0.10; //D0 inv mass window
+ rdcutsvalmine[1][0]=0.06; // dca
+ rdcutsvalmine[2][0]=0.9; // thetastar
+ rdcutsvalmine[3][0]=0.5; // pt Pion
+ rdcutsvalmine[4][0]=0.5; // Pt Kaon
+ rdcutsvalmine[5][0]=0.1; // d0K
+ rdcutsvalmine[6][0]=0.1; // d0Pi
+ rdcutsvalmine[7][0]=0.0001; // d0xd0
+ rdcutsvalmine[8][0]=0.8; // costhetapoint
+ rdcutsvalmine[9][0]=0.15; // Dstar inv mass window
+ rdcutsvalmine[10][0]=0.03; // half width of (M_Kpipi-M_D0)
+ rdcutsvalmine[11][0]=0.1; // Pt min of Pi soft
+ rdcutsvalmine[12][0]=100.; // Pt max of pi soft
+ rdcutsvalmine[13][0]=9999.; // theta
+ rdcutsvalmine[14][0]=0.9; // |cosThetaPointXY|
+ rdcutsvalmine[15][0]=1.; // NormDecayLenghtXY
+ //5-999
+ rdcutsvalmine[0][1]=0.10; //D0 inv mass window
+ rdcutsvalmine[1][1]=0.06; // dca
+ rdcutsvalmine[2][1]=0.9; // thetastar
+ rdcutsvalmine[3][1]=0.5; // pt Pion
+ rdcutsvalmine[4][1]=0.5; // Pt Kaon
+ rdcutsvalmine[5][1]=0.1; // d0K
+ rdcutsvalmine[6][1]=0.1; // d0Pi
+ rdcutsvalmine[7][1]=0.0001; // d0xd0
+ rdcutsvalmine[8][1]=0.7; // costhetapoint
+ rdcutsvalmine[9][1]=0.15; // Dstar inv mass window
+ rdcutsvalmine[10][1]=0.03; // half width of (M_Kpipi-M_D0)
+ rdcutsvalmine[11][1]=0.1; // Pt min of Pi soft
+ rdcutsvalmine[12][1]=100.; // Pt max of pi soft
+ rdcutsvalmine[13][1]=9999.; // theta
+ rdcutsvalmine[14][1]=0.8; // |cosThetaPointXY|
+ rdcutsvalmine[15][1]=0.; // NormDecayLenghtXY
+
+ cutsDStartoKpipi->SetCuts(nvars,nptbins,rdcutsvalmine);
+
+ cutsDStartoKpipi->AddTrackCuts(esdTrackCuts);
+ cutsDStartoKpipi->AddTrackCutsSoftPi(esdTrackCutsSoftPi);
+ cutsDStartoKpipi->SetMinPtCandidate(2.);
+ vHF->SetCutsDStartoKpipi(cutsDStartoKpipi);
+
+ //--------------------------------------------------------
+
+ AliRDHFCutsLctoV0 *cutsLctoV0 = new AliRDHFCutsLctoV0("CutsLctoV0");
+ Float_t cutsArrayLctoV0[17]={1.0,1.0,0.05,0.05,0.0,0.0,0.0,1000.,1000.,0.99,3.,1000.,0.,0.,0.,0.,0.0};
+ cutsLctoV0->SetCuts(17,cutsArrayLctoV0);
+ cutsLctoV0->AddTrackCuts(esdTrackCuts);
+ vHF->SetCutsLctoV0(cutsLctoV0);
+ //
+ //--- set this if you want to reconstruct primary vertex candidate by
+ // candidate using other tracks in the event (for pp, broad
+ // interaction region)
+ //vHF->SetRecoPrimVtxSkippingTrks();
+ //--- OR set this if you want to remove the candidate daughters from
+ // the primary vertex, without recostructing it from scratch
+ //vHF->SetRmTrksFromPrimVtx();
+
+ //--- check the settings
+ vHF->PrintStatus();
+ //--- verbose
+ // AliLog::SetClassDebugLevel("AliAnalysisVertexingHF",2);
+
+
+ return vHF;
+}
+
+
--- /dev/null
+AliAnalysisVertexingHF* ConfigVertexingHF() {
+
+ printf("MYCONFIGPID Call to AliAnalysisVertexingHF parameters setting :\n");
+ vHF = new AliAnalysisVertexingHF();
+
+ //--- switch-off candidates finding (default: all on)
+ //vHF->SetD0toKpiOff();
+ vHF->SetD0toKpiOn();
+ vHF->SetJPSItoEleOff();
+ //vHF->Set3ProngOff();
+ //vHF->SetLikeSignOn(); // like-sign pairs and triplets
+ // vHF->SetLikeSign3prongOff();
+ vHF->Set4ProngOff();
+ vHF->SetDstarOff();
+ vHF->SetFindVertexForDstar(kFALSE);
+ //--- secondary vertex with KF?
+ //vHF->SetSecVtxWithKF();
+ //Cascade
+ vHF->SetCascadesOn();
+ vHF->SetFindVertexForCascades(kTRUE);
+ vHF->SetV0TypeForCascadeVertex(AliRDHFCuts::kOnlyOfflineV0s); //All V0s 0, Offline 1, OnTheFly 2
+ vHF->SetUseProtonPIDforLambdaC2V0();
+
+ vHF->SetMassCutBeforeVertexing(kTRUE); // PbPb
+
+ //set PID
+ vHF->SetUseKaonPIDfor3Prong(kTRUE);
+ vHF->SetUseProtonAndPionPIDforLambdaC();
+ vHF->SetnSigmaTOFforKaonSel(3., 5.);
+ vHF->SetnSigmaTPCforKaonSel(5., 5.);
+ vHF->SetnSigmaTOFforProtonSel(3.,5.);
+ vHF->SetnSigmaTPCforProtonSel(5., 5.);
+ vHF->SetnSigmaTPCforPionSel(4., 4.);
+ vHF->SetnSigmaTOFforPionSel(40.,40.);
+ vHF->SetMaxMomForTPCPid(9999999999.);
+ vHF->SetUseTPCPID(kTRUE);
+ vHF->SetUseTOFPID(kTRUE);
+ vHF->SetUseTPCPIDOnlyIfNoTOF(kTRUE);
+
+//--- set cuts for single-track selection
+ // displaced tracks
+ AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts","default");
+ esdTrackCuts->SetRequireTPCRefit(kTRUE);
+ esdTrackCuts->SetMinNClustersTPC(70);
+ esdTrackCuts->SetRequireITSRefit(kTRUE);
+ //esdTrackCuts->SetMinNClustersITS(4);
+ esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
+ AliESDtrackCuts::kAny);
+ // |d0|>30 micron for pt<2GeV, no cut above 2
+ esdTrackCuts->SetMinDCAToVertexXYPtDep("0.003*TMath::Max(0.,(1-TMath::Floor(TMath::Abs(pt)/2.)))");
+ esdTrackCuts->SetMaxDCAToVertexXY(1.);
+ esdTrackCuts->SetMaxDCAToVertexZ(1.);
+ esdTrackCuts->SetPtRange(0.4,1.e10);
+ esdTrackCuts->SetEtaRange(-0.8,+0.8);
+ AliAnalysisFilter *trkFilter = new AliAnalysisFilter("trackFilter");
+ trkFilter->AddCuts(esdTrackCuts);
+ vHF->SetTrackFilter(trkFilter);
+ // D* soft pion tracks
+ AliESDtrackCuts *esdTrackCutsSoftPi = new AliESDtrackCuts("AliESDtrackCuts","default");
+ esdTrackCutsSoftPi->SetMinNClustersITS(4);
+ esdTrackCutsSoftPi->SetMaxDCAToVertexXY(1.);
+ esdTrackCutsSoftPi->SetMaxDCAToVertexZ(1.);
+ esdTrackCutsSoftPi->SetPtRange(0.2,1.e10);
+ esdTrackCutsSoftPi->SetEtaRange(-0.8,+0.8);
+ AliAnalysisFilter *trkFilterSoftPi = new AliAnalysisFilter("trackFilterSoftPi");
+ trkFilterSoftPi->AddCuts(esdTrackCutsSoftPi);
+ vHF->SetTrackFilterSoftPi(trkFilterSoftPi);
+ //--- set cuts for candidates selection
+ Int_t nptbins=2; Float_t ptlimits[2]={0.,1000000.};
+ AliRDHFCutsD0toKpi *cutsD0toKpi = new AliRDHFCutsD0toKpi("CutsD0toKpi");
+ cutsD0toKpi->SetStandardCutsPbPb2010();
+ cutsD0toKpi->SetMinCentrality(-10);
+ cutsD0toKpi->SetMaxCentrality(110);
+ cutsD0toKpi->SetUseSpecialCuts(kFALSE);
+ cutsD0toKpi->SetMinPtCandidate(0.);
+ cutsD0toKpi->SetUsePID(kFALSE);
+ cutsD0toKpi->SetUsePhysicsSelection(kFALSE);
+ cutsD0toKpi->SetMaxVtxZ(1.e6);
+ cutsD0toKpi->SetTriggerClass("");
+ Float_t cutsArrayD0toKpi[11]={0.4,999999.,1.1,0.,0.,999999.,999999.,0.,0.5,-1,0.};
+ cutsD0toKpi->SetPtBins(nptbins,ptlimits);
+ cutsD0toKpi->SetCuts(11,cutsArrayD0toKpi);
+ cutsD0toKpi->AddTrackCuts(esdTrackCuts);
+ vHF->SetCutsD0toKpi(cutsD0toKpi);
+ AliRDHFCutsJpsitoee *cutsJpsitoee = new AliRDHFCutsJpsitoee("CutsJpsitoee");
+ Float_t cutsArrayJpsitoee[9]={0.350,100000.,1.1,0.,0.,100000.,100000.,100000000.,-1.1};
+ cutsJpsitoee->SetCuts(9,cutsArrayJpsitoee);
+ cutsJpsitoee->AddTrackCuts(esdTrackCuts);
+ vHF->SetCutsJpsitoee(cutsJpsitoee);
+ AliRDHFCutsDplustoKpipi *cutsDplustoKpipi = new AliRDHFCutsDplustoKpipi("CutsDplustoKpipi");
+ cutsDplustoKpipi->SetStandardCutsPbPb2010();
+ cutsDplustoKpipi->SetUsePID(kFALSE);
+ Float_t cutsArrayDplustoKpipi[14]={0.,0.3,0.3,0.,0.,0.01,0.05,0.05,0.,0.88,0.,10000000000.,0.,-1.};
+ cutsDplustoKpipi->SetPtBins(nptbins,ptlimits);
+ cutsDplustoKpipi->SetCuts(14,cutsArrayDplustoKpipi);
+ cutsDplustoKpipi->AddTrackCuts(esdTrackCuts);
+ cutsDplustoKpipi->SetMinPtCandidate(2000000000.);
+ vHF->SetCutsDplustoKpipi(cutsDplustoKpipi);
+ AliRDHFCutsDstoKKpi *cutsDstoKKpi = new AliRDHFCutsDstoKKpi("CutsDstoKKpi");
+ cutsDstoKKpi->SetStandardCutsPbPb2010();
+ cutsDstoKKpi->SetUsePID(kFALSE);
+ Float_t cutsArrayDstoKKpi[20]={0.,0.3,0.3,0.,0.,0.005,0.06,0.,0.,0.9,0.,100000.,0.035,0.0001,-1.,1.,0.,0.,0.,-1.};
+ cutsDstoKKpi->SetPtBins(nptbins,ptlimits);
+ cutsDstoKKpi->SetCuts(20,cutsArrayDstoKKpi);
+ cutsDstoKKpi->AddTrackCuts(esdTrackCuts);
+ cutsDstoKKpi->SetMinPtCandidate(1000000000.);
+ vHF->SetCutsDstoKKpi(cutsDstoKKpi);
+ AliRDHFCutsLctopKpi *cutsLctopKpi = new AliRDHFCutsLctopKpi("CutsLctopKpi");
+ cutsLctopKpi->SetStandardCutsPbPb2010();
+ cutsLctopKpi->SetUsePID(kFALSE);
+ Float_t cutsArrayLctopKpi[13]={0.13,0.4,0.4,0.,0.,0.,0.06,0.,0.,0.,0.,0.05,0.4};
+ cutsLctopKpi->SetPtBins(nptbins,ptlimits);
+ cutsLctopKpi->SetCuts(13,cutsArrayLctopKpi);
+ cutsLctopKpi->AddTrackCuts(esdTrackCuts);
+ cutsLctopKpi->SetMinPtCandidate(2.);
+ vHF->SetCutsLctopKpi(cutsLctopKpi);
+ AliRDHFCutsD0toKpipipi *cutsD0toKpipipi = new AliRDHFCutsD0toKpipipi("CutsD0toKpipipi");
+ Float_t cutsArrayD0toKpipipi[9]={0.2,0.04,0.00,0.01,0.02,0.8,0.,0.1,0.};
+ cutsD0toKpipipi->SetCuts(9,cutsArrayD0toKpipipi);
+ cutsD0toKpipipi->AddTrackCuts(esdTrackCuts);
+ vHF->SetCutsD0toKpipipi(cutsD0toKpipipi);
+
+
+ // D* pt dependent cuts ------------------------------------------
+
+ AliRDHFCutsDStartoKpipi *cutsDStartoKpipi = new AliRDHFCutsDStartoKpipi("CutsDStartoKpipi");
+ cutsDStartoKpipi->SetUsePID(kFALSE);
+
+ const Int_t nvars=16;
+ const Int_t nptbins=2;
+
+ Float_t* ptbins;
+ ptbins=new Float_t[nptbins+1];
+ ptbins[0]=0.;
+ ptbins[1]=5.;
+ ptbins[2]=999.;
+
+ cutsDStartoKpipi->SetPtBins(nptbins+1,ptbins);
+
+ Float_t** rdcutsvalmine;
+ rdcutsvalmine=new Float_t*[nvars];
+ for(Int_t iv=0;iv<nvars;iv++){
+ rdcutsvalmine[iv]=new Float_t[nptbins];
+ }
+ //0-5
+ rdcutsvalmine[0][0]=0.10; //D0 inv mass window
+ rdcutsvalmine[1][0]=0.06; // dca
+ rdcutsvalmine[2][0]=0.9; // thetastar
+ rdcutsvalmine[3][0]=0.5; // pt Pion
+ rdcutsvalmine[4][0]=0.5; // Pt Kaon
+ rdcutsvalmine[5][0]=0.1; // d0K
+ rdcutsvalmine[6][0]=0.1; // d0Pi
+ rdcutsvalmine[7][0]=0.0001; // d0xd0
+ rdcutsvalmine[8][0]=0.8; // costhetapoint
+ rdcutsvalmine[9][0]=0.15; // Dstar inv mass window
+ rdcutsvalmine[10][0]=0.03; // half width of (M_Kpipi-M_D0)
+ rdcutsvalmine[11][0]=0.1; // Pt min of Pi soft
+ rdcutsvalmine[12][0]=100.; // Pt max of pi soft
+ rdcutsvalmine[13][0]=9999.; // theta
+ rdcutsvalmine[14][0]=0.9; // |cosThetaPointXY|
+ rdcutsvalmine[15][0]=1.; // NormDecayLenghtXY
+ //5-999
+ rdcutsvalmine[0][1]=0.10; //D0 inv mass window
+ rdcutsvalmine[1][1]=0.06; // dca
+ rdcutsvalmine[2][1]=0.9; // thetastar
+ rdcutsvalmine[3][1]=0.5; // pt Pion
+ rdcutsvalmine[4][1]=0.5; // Pt Kaon
+ rdcutsvalmine[5][1]=0.1; // d0K
+ rdcutsvalmine[6][1]=0.1; // d0Pi
+ rdcutsvalmine[7][1]=0.0001; // d0xd0
+ rdcutsvalmine[8][1]=0.7; // costhetapoint
+ rdcutsvalmine[9][1]=0.15; // Dstar inv mass window
+ rdcutsvalmine[10][1]=0.03; // half width of (M_Kpipi-M_D0)
+ rdcutsvalmine[11][1]=0.1; // Pt min of Pi soft
+ rdcutsvalmine[12][1]=100.; // Pt max of pi soft
+ rdcutsvalmine[13][1]=9999.; // theta
+ rdcutsvalmine[14][1]=0.8; // |cosThetaPointXY|
+ rdcutsvalmine[15][1]=0.; // NormDecayLenghtXY
+
+ cutsDStartoKpipi->SetCuts(nvars,nptbins,rdcutsvalmine);
+
+ cutsDStartoKpipi->AddTrackCuts(esdTrackCuts);
+ cutsDStartoKpipi->AddTrackCutsSoftPi(esdTrackCutsSoftPi);
+ cutsDStartoKpipi->SetMinPtCandidate(2.);
+ vHF->SetCutsDStartoKpipi(cutsDStartoKpipi);
+
+ //--------------------------------------------------------
+
+ AliRDHFCutsLctoV0 *cutsLctoV0 = new AliRDHFCutsLctoV0("CutsLctoV0");
+ /*
+ Float_t cutsArrayLctoV0[9]={4.0,4.0,2.0,2.0,0.0,0.0,0.0,1000.,1000.};
+ cutsLctoV0->SetCuts(9,cutsArrayLctoV0);
+ */
+ //last dummy
+ Float_t cutsArrayLctoV0[10]={4.0,4.0,2.0,2.0,0.0,0.0,0.0,1000.,1000.,1.};
+ cutsLctoV0->SetCuts(10,cutsArrayLctoV0);
+ cutsLctoV0->AddTrackCuts(esdTrackCuts);
+ vHF->SetCutsLctoV0(cutsLctoV0);
+ //
+ //--- set this if you want to reconstruct primary vertex candidate by
+ // candidate using other tracks in the event (for pp, broad
+ // interaction region)
+ //vHF->SetRecoPrimVtxSkippingTrks();
+ //--- OR set this if you want to remove the candidate daughters from
+ // the primary vertex, without recostructing it from scratch
+ //vHF->SetRmTrksFromPrimVtx();
+
+ //--- check the settings
+ vHF->PrintStatus();
+ //--- verbose
+ // AliLog::SetClassDebugLevel("AliAnalysisVertexingHF",2);
+
+
+ return vHF;
+}
+
+