auto ret =
dataFrame.Filter("TMath::Abs(md0_d - 1.8646) < 0.04")
.Filter("ptds_d > 2.5")
.Filter("TMath::Abs(etads_d) < 1.5")
.Filter([](int ik, int ipi, Iarray_t nhitrp) { return nhitrp[ik - 1] * nhitrp[ipi - 1] > 1; },
{"ik", "ipi", "nhitrp"})
.Filter([](int ik, Farray_t rstart, Farray_t rend) { return rend[ik - 1] - rstart[ik - 1] > 22; },
{"ik", "rstart", "rend"})
.Filter([](int ipi, Farray_t rstart, Farray_t rend) { return rend[ipi - 1] - rstart[ipi - 1] > 22; },
{"ipi", "rstart", "rend"})
.Filter([](int ik, Farray_t nlhk) { return nlhk[ik - 1] > 0.1; }, {"ik", "nlhk"})
.Filter([](int ipi, Farray_t nlhpi) { return nlhpi[ipi - 1] > 0.1; }, {"ipi", "nlhpi"})
.Filter([](int ipis, Farray_t nlhpi) { return nlhpi[ipis - 1] > 0.1; }, {"ipis", "nlhpi"})
.Filter("njets >= 1");
return ret;
};
{
if (x <= 0.13957)
return 0;
Double_t xp3 = (x - par[3]) * (x - par[3]);
dxbin * (par[0] *
pow(x - 0.13957, par[1]) + par[2] / 2.5066 / par[4] *
exp(-xp3 / 2 / par[4] / par[4]));
return res;
}
{
if (x <= 0.13957)
return 0;
Double_t xp3 = (x - 0.1454) * (x - 0.1454);
Double_t res = dxbin * (par[0] *
pow(x - 0.13957, 0.25) + par[1] / 2.5066 / sigma *
exp(-xp3 / 2 / sigma / sigma));
return res;
}
void FitAndPlotHdmd(
TH1 &hdmd)
{
auto c1 =
new TCanvas(
"c1",
"h1analysis analysis", 10, 10, 800, 600);
auto f5 =
new TF1(
"f5",
fdm5, 0.139, 0.17, 5);
f5->SetParameters(1000000, .25, 2000, .1454, .001);
}
void FitAndPlotH2(
TH2 &h2)
{
auto c2 =
new TCanvas(
"c2",
"tauD0", 100, 100, 800, 600);
auto f2 =
new TF1(
"f2",
fdm2, 0.139, 0.17, 2);
f2->SetParameters(10000, 10);
h2_1->GetXaxis()->SetTitle("#tau [ps]");
h2_1->SetMarkerStyle(21);
h2_1->DrawClone();
}
void tdf101_h1Analysis()
{
chain.Add("http://root.cern.ch/files/h1/dstarmb.root");
chain.Add("http://root.cern.ch/files/h1/dstarp1a.root");
chain.Add("http://root.cern.ch/files/h1/dstarp1b.root");
chain.Add("http://root.cern.ch/files/h1/dstarp2.root");
auto selected = Select(dataFrame);
auto hdmdARP = selected.Histo1D({"hdmd", "Dm_d", 40, 0.13, 0.17}, "dm_d");
auto selectedAddedBranch = selected.Define("h2_y", "rpd0_t / 0.029979f * 1.8646f / ptd0_d");
auto h2ARP = selectedAddedBranch.Histo2D({"h2", "ptD0 vs Dm_d", 30, 0.135, 0.165, 30, -3, 6}, "dm_d", "h2_y");
FitAndPlotHdmd(*hdmdARP);
FitAndPlotH2(*h2ARP);
}