diff --git a/.ipynb_checkpoints/raremodel-nb-checkpoint.ipynb b/.ipynb_checkpoints/raremodel-nb-checkpoint.ipynb index d67553f..2ecc9d8 100644 --- a/.ipynb_checkpoints/raremodel-nb-checkpoint.ipynb +++ b/.ipynb_checkpoints/raremodel-nb-checkpoint.ipynb @@ -16,7 +16,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\util\\execution.py:53: UserWarning: Not running on Linux. Determining available cpus for thread can failand be overestimated. Workaround (only if too many cpus are used):`zfit.run.set_n_cpu(your_cpu_number)`\n", + "c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\util\\execution.py:57: UserWarning: Not running on Linux. Determining available cpus for thread can failand be overestimated. Workaround (only if too many cpus are used):`zfit.run.set_n_cpu(your_cpu_number)`\n", " warnings.warn(\"Not running on Linux. Determining available cpus for thread can fail\"\n" ] }, @@ -465,8 +465,8 @@ "source": [ "total_f = total_pdf(obs=obs, jpsi_mass = jpsi_m, jpsi_scale = jpsi_s, jpsi_phase = jpsi_p, jpsi_width = jpsi_w,\n", " psi2s_mass = psi2s_m, psi2s_scale = psi2s_s, psi2s_phase = psi2s_p, psi2s_width = psi2s_w)#,\n", - " #cusp_mass = cusp_m, sigma_L = sig_L, sigma_R = sig_R, cusp_scale = cusp_s)\n", - "\n", + " #cusp_mass = cusp_m, sigma_L = sig_L, sigma_R = sig_R, cusp_scale = cusp_s) \n", + " \n", "# print(total_pdf.obs)" ] }, @@ -522,12 +522,12 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 19, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -547,8 +547,8 @@ "# plt.plot(test_q, fplus_y, label = '+')\n", "# plt.plot(test_q, res_y, label = 'res')\n", "plt.legend()\n", - "plt.ylim(0.0, 6e-4)\n", - "# plt.yscale('log')\n", + "# plt.ylim(0.0, 6e-6)\n", + "plt.yscale('log')\n", "# plt.xlim(3080, 3110)\n", "plt.savefig('test.png')\n", "# print(jpsi_width)" @@ -563,23 +563,33 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ - "# total_f.update_integration_options(draws_per_dim=2000000, mc_sampler=None)\n", - "# inte = total_f.integrate(limits = (3090, 3102), norm_range=False)\n", + "# total_f.update_integration_options(draws_per_dim=20000000, mc_sampler=None)\n", + "# inte = total_f.integrate(limits = (3080, 3112), norm_range=False)\n", "# inte_fl = zfit.run(inte)\n", "# print(inte_fl)\n", - "# print(pdg[\"jpsi_BR\"]/pdg[\"NR_BR\"], inte_fl/pdg[\"NR_auc\"])" + "# print(pdg[\"jpsi_BR\"]/pdg[\"NR_BR\"], inte_fl*pdg[\"psi2s_auc\"]/pdg[\"NR_auc\"])" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ + "# print(\"jpsi:\", inte_fl)\n", + "# print(\"Increase am by factor:\", np.sqrt(pdg[\"jpsi_BR\"]/pdg[\"NR_BR\"]*pdg[\"NR_auc\"]/inte_fl))\n", + "# print(\"New amp:\", pdg[\"jpsi\"][3]*np.sqrt(pdg[\"jpsi_BR\"]/pdg[\"NR_BR\"]*pdg[\"NR_auc\"]/inte_fl))\n", + "\n", + "# print(\"psi2s:\", inte_fl)\n", + "# print(\"Increase am by factor:\", np.sqrt(pdg[\"psi2s_BR\"]/pdg[\"NR_BR\"]*pdg[\"NR_auc\"]/inte_fl))\n", + "# print(\"New amp:\", pdg[\"psi2s\"][3]*np.sqrt(pdg[\"psi2s_BR\"]/pdg[\"NR_BR\"]*pdg[\"NR_auc\"]/inte_fl))\n", + "\n", + "\n", + "\n", "# print(x_min)\n", "# print(x_max)\n", "# # total_f.update_integration_options(draws_per_dim=2000000, mc_sampler=None)\n", @@ -614,7 +624,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -643,7 +653,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -660,7 +670,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -690,7 +700,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -795,7 +805,8 @@ "# plt.ylim(0, 20)\n", "# # plt.xlim(3000, 3750)\n", "\n", - "# plt.savefig('test2.png')" + "# plt.savefig('test2.png')\n", + "# 1-(0.21+0.62)" ] }, { @@ -807,7 +818,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -820,22 +831,31 @@ "# uniform = tfd.Uniform(low=low, high=high)\n", "# uniformjpsi = tfd.Uniform(low=tf.constant(3080, dtype=dtype), high=tf.constant(3112, dtype=dtype))\n", "# uniformpsi2s = tfd.Uniform(low=tf.constant(3670, dtype=dtype), high=tf.constant(3702, dtype=dtype))\n", - " mixture = tfd.MixtureSameFamily(mixture_distribution=tfd.Categorical(probs=[tf.constant(0.007, dtype=dtype),\n", - " tf.constant(0.917, dtype=dtype),\n", - " tf.constant(0.076, dtype=dtype)]),\n", + " mixture = tfd.MixtureSameFamily(mixture_distribution=tfd.Categorical(probs=[tf.constant(0.07, dtype=dtype),\n", + " tf.constant(0.617, dtype=dtype),\n", + " tf.constant(0.07, dtype=dtype),\n", + " tf.constant(0.17, dtype=dtype),\n", + " tf.constant(0.07, dtype=dtype)]),\n", " components_distribution=tfd.Uniform(low=[tf.constant(x_min, dtype=dtype), \n", " tf.constant(3080, dtype=dtype),\n", - " tf.constant(3670, dtype=dtype)], \n", - " high=[tf.constant(x_max, dtype=dtype),\n", + " tf.constant(3112, dtype=dtype),\n", + " tf.constant(3670, dtype=dtype),\n", + " tf.constant(3702, dtype=dtype)], \n", + " high=[tf.constant(3080, dtype=dtype),\n", " tf.constant(3112, dtype=dtype), \n", - " tf.constant(3702, dtype=dtype)]))\n", + " tf.constant(3670, dtype=dtype),\n", + " tf.constant(3702, dtype=dtype),\n", + " tf.constant(x_max, dtype=dtype)]))\n", "# mixture = tfd.Uniform(tf.constant(x_min, dtype=dtype), tf.constant(x_max, dtype=dtype))\n", + "# sample = tf.random.uniform((n_to_produce, 1), dtype=dtype)\n", " sample = mixture.sample((n_to_produce, 1))\n", "# sample = tf.random.uniform((n_to_produce, 1), dtype=dtype)\n", " weights = mixture.prob(sample)\n", "# weights = tf.broadcast_to(tf.constant(1., dtype=dtype), shape=(n_to_produce,))\n", " # sample = tf.expand_dims(sample, axis=-1)\n", - " print(sample, weights)\n", + "# print(sample, weights)\n", + " \n", + " weights = tf.ones(shape=(n_to_produce,), dtype=dtype)\n", " weights_max = None\n", " thresholds = tf.random_uniform(shape=(n_to_produce,), dtype=dtype)\n", " return sample, thresholds, weights, weights_max, n_to_produce" @@ -843,7 +863,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -852,42 +872,18 @@ }, { "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "185/5405\n", - "Time taken: 2 min, 53 s\n", - "Projected time left: 1 h, 21 min\n" - ] - }, - { - "ename": "KeyboardInterrupt", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 23\u001b[0m \u001b[0msampler\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mresample\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mn\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mevent_stack\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 24\u001b[0m \u001b[0ms\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msampler\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0munstack_x\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 25\u001b[1;33m \u001b[0msam\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mzfit\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ms\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 26\u001b[0m \u001b[0mclear_output\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mwait\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 27\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mc:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\util\\execution.py\u001b[0m in \u001b[0;36m__call__\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 75\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 76\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m__call__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 77\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msess\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 78\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 79\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mcreate_session\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mc:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36mrun\u001b[1;34m(self, fetches, feed_dict, options, run_metadata)\u001b[0m\n\u001b[0;32m 927\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 928\u001b[0m result = self._run(None, fetches, feed_dict, options_ptr,\n\u001b[1;32m--> 929\u001b[1;33m run_metadata_ptr)\n\u001b[0m\u001b[0;32m 930\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mrun_metadata\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 931\u001b[0m \u001b[0mproto_data\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtf_session\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mTF_GetBuffer\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mrun_metadata_ptr\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mc:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36m_run\u001b[1;34m(self, handle, fetches, feed_dict, options, run_metadata)\u001b[0m\n\u001b[0;32m 1150\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mfinal_fetches\u001b[0m \u001b[1;32mor\u001b[0m \u001b[0mfinal_targets\u001b[0m \u001b[1;32mor\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mhandle\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mfeed_dict_tensor\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1151\u001b[0m results = self._do_run(handle, final_targets, final_fetches,\n\u001b[1;32m-> 1152\u001b[1;33m feed_dict_tensor, options, run_metadata)\n\u001b[0m\u001b[0;32m 1153\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1154\u001b[0m \u001b[0mresults\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mc:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36m_do_run\u001b[1;34m(self, handle, target_list, fetch_list, feed_dict, options, run_metadata)\u001b[0m\n\u001b[0;32m 1326\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mhandle\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1327\u001b[0m return self._do_call(_run_fn, feeds, fetches, targets, options,\n\u001b[1;32m-> 1328\u001b[1;33m run_metadata)\n\u001b[0m\u001b[0;32m 1329\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1330\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_do_call\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0m_prun_fn\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mhandle\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfeeds\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfetches\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mc:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36m_do_call\u001b[1;34m(self, fn, *args)\u001b[0m\n\u001b[0;32m 1332\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_do_call\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfn\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1333\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1334\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mfn\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1335\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0merrors\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mOpError\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1336\u001b[0m \u001b[0mmessage\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcompat\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mas_text\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0me\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmessage\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mc:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36m_run_fn\u001b[1;34m(feed_dict, fetch_list, target_list, options, run_metadata)\u001b[0m\n\u001b[0;32m 1315\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_run_fn\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfeed_dict\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfetch_list\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtarget_list\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0moptions\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mrun_metadata\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1316\u001b[0m \u001b[1;31m# Ensure any changes to the graph are reflected in the runtime.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1317\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_extend_graph\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1318\u001b[0m return self._call_tf_sessionrun(\n\u001b[0;32m 1319\u001b[0m options, feed_dict, fetch_list, target_list, run_metadata)\n", - "\u001b[1;32mc:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36m_extend_graph\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 1350\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_extend_graph\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1351\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_graph\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_session_run_lock\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m \u001b[1;31m# pylint: disable=protected-access\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1352\u001b[1;33m \u001b[0mtf_session\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mExtendSession\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_session\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1353\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1354\u001b[0m \u001b[1;31m# The threshold to run garbage collection to delete dead tensors.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mKeyboardInterrupt\u001b[0m: " - ] - } - ], + "execution_count": null, + "metadata": { + "scrolled": false + }, + "outputs": [], "source": [ + "zfit.run.numeric_checks = False \n", + "\n", "nr_of_toys = 1\n", "nevents = int(pdg[\"number_of_decays\"])\n", - "event_stack = 1000\n", - "zfit.settings.set_verbosity(10)\n", + "event_stack = 1000000\n", + "# zfit.settings.set_verbosity(10)\n", "calls = int(nevents/event_stack + 1)\n", "\n", "total_samp = []\n", @@ -967,17 +963,20 @@ "metadata": {}, "outputs": [], "source": [ + "plt.clf()\n", + "\n", "bins = int((x_max-x_min)/7)\n", "\n", "# calcs = zfit.run(total_test_tf(samp))\n", + "print(total_samp[:nevents].shape)\n", "\n", "plt.hist(total_samp[:nevents], bins = bins, range = (x_min,x_max), label = 'data')\n", - "plt.plot(test_q, calcs_test*nevents*4.5 , label = 'pdf')\n", + "# plt.plot(test_q, calcs_test*nevents , label = 'pdf')\n", "\n", "# plt.plot(sam, calcs, '.')\n", "# plt.plot(test_q, calcs_test)\n", "# plt.yscale('log')\n", - "plt.ylim(0, 12000)\n", + "plt.ylim(0, 40000)\n", "# plt.xlim(3080, 3110)\n", "\n", "plt.legend()\n", @@ -1009,6 +1008,15 @@ ] }, { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# plt.hist(sample, weights=1 / prob(sample))" + ] + }, + { "cell_type": "markdown", "metadata": {}, "source": [ @@ -1021,10 +1029,10 @@ "metadata": {}, "outputs": [], "source": [ - "nll = zfit.loss.UnbinnedNLL(model=total_f, data=data3, fit_range = (x_min, x_max))\n", + "nll = zfit.loss.UnbinnedNLL(model=total_f, data=data2, fit_range = (x_min, x_max))\n", "\n", "minimizer = zfit.minimize.MinuitMinimizer()\n", - "minimizer._use_tfgrad = False\n", + "# minimizer._use_tfgrad = False\n", "result = minimizer.minimize(nll)\n", "\n", "param_errors = result.error()\n", @@ -1041,40 +1049,6 @@ "metadata": {}, "outputs": [], "source": [ - "(-7.95933+2*np.pi)/np.pi+np.pi" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "display_time(int(395*pdg[\"number_of_decays\"]/100000))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print(display_time(22376))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ "# probs = total_f.pdf(test_q)\n", "\n", "calcs_test = zfit.run(probs)\n", @@ -1096,7 +1070,7 @@ "# plt.yscale('log')\n", "# plt.xlim(3080, 3110)\n", "plt.savefig('test3.png')\n", - "print(jpsi_width)" + "# print(jpsi_width)" ] }, { @@ -1105,12 +1079,12 @@ "metadata": {}, "outputs": [], "source": [ - "_tot = 4.37e-7+6.02e-5+4.97e-6\n", - "_probs = []\n", - "_probs.append(6.02e-5/_tot)\n", - "_probs.append(4.97e-6/_tot)\n", - "_probs.append(4.37e-7/_tot)\n", - "print(_probs)" + "# _tot = 4.37e-7+6.02e-5+4.97e-6\n", + "# _probs = []\n", + "# _probs.append(6.02e-5/_tot)\n", + "# _probs.append(4.97e-6/_tot)\n", + "# _probs.append(4.37e-7/_tot)\n", + "# print(_probs)" ] }, { @@ -1118,6 +1092,41 @@ "execution_count": null, "metadata": {}, "outputs": [], + "source": [ + "# dtype = 'float64'\n", + "# # mixture = tfd.Uniform(tf.constant(x_min, dtype=dtype), tf.constant(x_max, dtype=dtype))\n", + "# mixture = tfd.MixtureSameFamily(mixture_distribution=tfd.Categorical(probs=[tf.constant(0.007, dtype=dtype),\n", + "# tf.constant(0.917, dtype=dtype),\n", + "# tf.constant(0.076, dtype=dtype)]),\n", + "# components_distribution=tfd.Uniform(low=[tf.constant(x_min, dtype=dtype), \n", + "# tf.constant(3080, dtype=dtype),\n", + "# tf.constant(3670, dtype=dtype)], \n", + "# high=[tf.constant(x_max, dtype=dtype),\n", + "# tf.constant(3112, dtype=dtype), \n", + "# tf.constant(3702, dtype=dtype)]))\n", + "# # for i in range(10):\n", + "# # print(zfit.run(mixture.prob(mixture.sample((10, 1)))))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [] } ], diff --git a/__pycache__/pdg_const.cpython-37.pyc b/__pycache__/pdg_const.cpython-37.pyc index 1aae052..405403f 100644 --- a/__pycache__/pdg_const.cpython-37.pyc +++ b/__pycache__/pdg_const.cpython-37.pyc Binary files differ diff --git a/data/zfit_toys/toy_0/0.pkl b/data/zfit_toys/toy_0/0.pkl index 3be2c50..4663bd5 100644 --- a/data/zfit_toys/toy_0/0.pkl +++ b/data/zfit_toys/toy_0/0.pkl Binary files differ diff --git a/data/zfit_toys/toy_0/1.pkl b/data/zfit_toys/toy_0/1.pkl index 8667fff..ba77ce8 100644 --- a/data/zfit_toys/toy_0/1.pkl +++ b/data/zfit_toys/toy_0/1.pkl Binary files differ diff --git a/data/zfit_toys/toy_0/10.pkl b/data/zfit_toys/toy_0/10.pkl deleted file mode 100644 index bea7370..0000000 --- a/data/zfit_toys/toy_0/10.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/11.pkl b/data/zfit_toys/toy_0/11.pkl deleted file mode 100644 index 11ba025..0000000 --- a/data/zfit_toys/toy_0/11.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/12.pkl b/data/zfit_toys/toy_0/12.pkl deleted file mode 100644 index 381e08e..0000000 --- a/data/zfit_toys/toy_0/12.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/13.pkl b/data/zfit_toys/toy_0/13.pkl deleted file mode 100644 index 9531f17..0000000 --- a/data/zfit_toys/toy_0/13.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/14.pkl b/data/zfit_toys/toy_0/14.pkl deleted file mode 100644 index 4548726..0000000 --- a/data/zfit_toys/toy_0/14.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/15.pkl b/data/zfit_toys/toy_0/15.pkl deleted file mode 100644 index a5bb205..0000000 --- a/data/zfit_toys/toy_0/15.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/16.pkl b/data/zfit_toys/toy_0/16.pkl deleted file mode 100644 index fb1496e..0000000 --- a/data/zfit_toys/toy_0/16.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/17.pkl b/data/zfit_toys/toy_0/17.pkl deleted file mode 100644 index 884e7e4..0000000 --- a/data/zfit_toys/toy_0/17.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/18.pkl b/data/zfit_toys/toy_0/18.pkl deleted file mode 100644 index 00db079..0000000 --- a/data/zfit_toys/toy_0/18.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/19.pkl b/data/zfit_toys/toy_0/19.pkl deleted file mode 100644 index 1aad2f9..0000000 --- a/data/zfit_toys/toy_0/19.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/2.pkl b/data/zfit_toys/toy_0/2.pkl index e160c46..eeeeec9 100644 --- a/data/zfit_toys/toy_0/2.pkl +++ b/data/zfit_toys/toy_0/2.pkl Binary files differ diff --git a/data/zfit_toys/toy_0/20.pkl b/data/zfit_toys/toy_0/20.pkl deleted file mode 100644 index 12ffdd0..0000000 --- a/data/zfit_toys/toy_0/20.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/21.pkl b/data/zfit_toys/toy_0/21.pkl deleted file mode 100644 index 4cbca93..0000000 --- a/data/zfit_toys/toy_0/21.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/22.pkl b/data/zfit_toys/toy_0/22.pkl deleted file mode 100644 index 892caa8..0000000 --- a/data/zfit_toys/toy_0/22.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/23.pkl b/data/zfit_toys/toy_0/23.pkl deleted file mode 100644 index e035550..0000000 --- a/data/zfit_toys/toy_0/23.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/24.pkl b/data/zfit_toys/toy_0/24.pkl deleted file mode 100644 index 1ba9e83..0000000 --- a/data/zfit_toys/toy_0/24.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/25.pkl b/data/zfit_toys/toy_0/25.pkl deleted file mode 100644 index 5b06fb4..0000000 --- a/data/zfit_toys/toy_0/25.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/26.pkl b/data/zfit_toys/toy_0/26.pkl deleted file mode 100644 index 6f604d9..0000000 --- a/data/zfit_toys/toy_0/26.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/27.pkl b/data/zfit_toys/toy_0/27.pkl deleted file mode 100644 index 62cd104..0000000 --- a/data/zfit_toys/toy_0/27.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/28.pkl b/data/zfit_toys/toy_0/28.pkl deleted file mode 100644 index c0d3b3d..0000000 --- a/data/zfit_toys/toy_0/28.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/29.pkl b/data/zfit_toys/toy_0/29.pkl deleted file mode 100644 index f1d6955..0000000 --- a/data/zfit_toys/toy_0/29.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/3.pkl b/data/zfit_toys/toy_0/3.pkl index 8cbb957..22e4fb9 100644 --- a/data/zfit_toys/toy_0/3.pkl +++ b/data/zfit_toys/toy_0/3.pkl Binary files differ diff --git a/data/zfit_toys/toy_0/30.pkl b/data/zfit_toys/toy_0/30.pkl deleted file mode 100644 index 4af21e0..0000000 --- a/data/zfit_toys/toy_0/30.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/31.pkl b/data/zfit_toys/toy_0/31.pkl deleted file mode 100644 index eb343cd..0000000 --- a/data/zfit_toys/toy_0/31.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/32.pkl b/data/zfit_toys/toy_0/32.pkl deleted file mode 100644 index d8abbde..0000000 --- a/data/zfit_toys/toy_0/32.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/33.pkl b/data/zfit_toys/toy_0/33.pkl deleted file mode 100644 index fa2ddf0..0000000 --- a/data/zfit_toys/toy_0/33.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/34.pkl b/data/zfit_toys/toy_0/34.pkl deleted file mode 100644 index 7f4ce0c..0000000 --- a/data/zfit_toys/toy_0/34.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/35.pkl b/data/zfit_toys/toy_0/35.pkl deleted file mode 100644 index e5c94dd..0000000 --- a/data/zfit_toys/toy_0/35.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/36.pkl b/data/zfit_toys/toy_0/36.pkl deleted file mode 100644 index 5b1e40c..0000000 --- a/data/zfit_toys/toy_0/36.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/37.pkl b/data/zfit_toys/toy_0/37.pkl deleted file mode 100644 index 8ae5890..0000000 --- a/data/zfit_toys/toy_0/37.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/38.pkl b/data/zfit_toys/toy_0/38.pkl deleted file mode 100644 index 17030d5..0000000 --- a/data/zfit_toys/toy_0/38.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/39.pkl b/data/zfit_toys/toy_0/39.pkl deleted file mode 100644 index 771c140..0000000 --- a/data/zfit_toys/toy_0/39.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/4.pkl b/data/zfit_toys/toy_0/4.pkl index fd56e89..de98288 100644 --- a/data/zfit_toys/toy_0/4.pkl +++ b/data/zfit_toys/toy_0/4.pkl Binary files differ diff --git a/data/zfit_toys/toy_0/40.pkl b/data/zfit_toys/toy_0/40.pkl deleted file mode 100644 index 09a4a4a..0000000 --- a/data/zfit_toys/toy_0/40.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/41.pkl b/data/zfit_toys/toy_0/41.pkl deleted file mode 100644 index c9fbe91..0000000 --- a/data/zfit_toys/toy_0/41.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/42.pkl b/data/zfit_toys/toy_0/42.pkl deleted file mode 100644 index ce864b2..0000000 --- a/data/zfit_toys/toy_0/42.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/43.pkl b/data/zfit_toys/toy_0/43.pkl deleted file mode 100644 index d581b21..0000000 --- a/data/zfit_toys/toy_0/43.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/44.pkl b/data/zfit_toys/toy_0/44.pkl deleted file mode 100644 index d86a74a..0000000 --- a/data/zfit_toys/toy_0/44.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/45.pkl b/data/zfit_toys/toy_0/45.pkl deleted file mode 100644 index f0ee4fb..0000000 --- a/data/zfit_toys/toy_0/45.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/46.pkl b/data/zfit_toys/toy_0/46.pkl deleted file mode 100644 index 399ee01..0000000 --- a/data/zfit_toys/toy_0/46.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/47.pkl b/data/zfit_toys/toy_0/47.pkl deleted file mode 100644 index 1ff6230..0000000 --- a/data/zfit_toys/toy_0/47.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/48.pkl b/data/zfit_toys/toy_0/48.pkl deleted file mode 100644 index 4f32ce8..0000000 --- a/data/zfit_toys/toy_0/48.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/49.pkl b/data/zfit_toys/toy_0/49.pkl deleted file mode 100644 index fb05a42..0000000 --- a/data/zfit_toys/toy_0/49.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/5.pkl b/data/zfit_toys/toy_0/5.pkl index 9651511..b7223f4 100644 --- a/data/zfit_toys/toy_0/5.pkl +++ b/data/zfit_toys/toy_0/5.pkl Binary files differ diff --git a/data/zfit_toys/toy_0/50.pkl b/data/zfit_toys/toy_0/50.pkl deleted file mode 100644 index dc914b9..0000000 --- a/data/zfit_toys/toy_0/50.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/51.pkl b/data/zfit_toys/toy_0/51.pkl deleted file mode 100644 index f59c507..0000000 --- a/data/zfit_toys/toy_0/51.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/52.pkl b/data/zfit_toys/toy_0/52.pkl deleted file mode 100644 index ae6786d..0000000 --- a/data/zfit_toys/toy_0/52.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/53.pkl b/data/zfit_toys/toy_0/53.pkl deleted file mode 100644 index 6b49403..0000000 --- a/data/zfit_toys/toy_0/53.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/54.pkl b/data/zfit_toys/toy_0/54.pkl deleted file mode 100644 index 0275d51..0000000 --- a/data/zfit_toys/toy_0/54.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/6.pkl b/data/zfit_toys/toy_0/6.pkl deleted file mode 100644 index 98ea412..0000000 --- a/data/zfit_toys/toy_0/6.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/7.pkl b/data/zfit_toys/toy_0/7.pkl deleted file mode 100644 index 9465bb1..0000000 --- a/data/zfit_toys/toy_0/7.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/8.pkl b/data/zfit_toys/toy_0/8.pkl deleted file mode 100644 index 2b97a95..0000000 --- a/data/zfit_toys/toy_0/8.pkl +++ /dev/null Binary files differ diff --git a/data/zfit_toys/toy_0/9.pkl b/data/zfit_toys/toy_0/9.pkl deleted file mode 100644 index 613178d..0000000 --- a/data/zfit_toys/toy_0/9.pkl +++ /dev/null Binary files differ diff --git a/pdg_const.py b/pdg_const.py index f831ad0..7793fa8 100644 --- a/pdg_const.py +++ b/pdg_const.py @@ -66,15 +66,17 @@ "NR_auc": 0.00133, #Resonances format(mass, width, phase, scale) -# "jpsi": (3096.0, 0.09, -1.5, 2e-2), #---> prescaling -"jpsi": (3096.0, 0.09, -1.5, 184.39), #---> after scaling +# "jpsi": (3096.0, 0.09, -1.5, 2e-2), #-------> pre scaling +"jpsi": (3096.0, 0.09, -1.5, 9897.0), #---> after scaling # "jpsi": (3096.0, 0.09, -1.5, 0.0), "jpsi_BR": 6.02e-5, -"jpsi_auc": 0.2126825758464027, +"jpsi_auc": 0.2126825758464027, #----------------> pre scaling +# "jpsi_auc": 0.2126825758464027, #--------------> after scaling -# "psi2s": (3686.0, 0.3, -1.5, 3.14e-3), #---> prescaling -"psi2s": (3686.0, 0.3, -1.5, 23.07), #---> after scaling +# "psi2s": (3686.0, 0.3, -1.5, 3.14e-3), #-------> pre scaling +"psi2s": (3686.0, 0.3, -1.5, 1396.0), #--------> after scaling # "psi2s": (3686.0, 0.3, -1.5, 0.0), "psi2s_BR": 4.97e-6, -"psi2s_auc": 2.802257483178487e-10, +"psi2s_auc": 2.802257483178487e-10, #------------> pre scaling +"psi2s_auc": 0.0151332263 #--------------------> after scaling } diff --git a/raremodel-nb.ipynb b/raremodel-nb.ipynb index d67553f..23798fb 100644 --- a/raremodel-nb.ipynb +++ b/raremodel-nb.ipynb @@ -16,7 +16,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\util\\execution.py:53: UserWarning: Not running on Linux. Determining available cpus for thread can failand be overestimated. Workaround (only if too many cpus are used):`zfit.run.set_n_cpu(your_cpu_number)`\n", + "c:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\util\\execution.py:57: UserWarning: Not running on Linux. Determining available cpus for thread can failand be overestimated. Workaround (only if too many cpus are used):`zfit.run.set_n_cpu(your_cpu_number)`\n", " warnings.warn(\"Not running on Linux. Determining available cpus for thread can fail\"\n" ] }, @@ -465,8 +465,8 @@ "source": [ "total_f = total_pdf(obs=obs, jpsi_mass = jpsi_m, jpsi_scale = jpsi_s, jpsi_phase = jpsi_p, jpsi_width = jpsi_w,\n", " psi2s_mass = psi2s_m, psi2s_scale = psi2s_s, psi2s_phase = psi2s_p, psi2s_width = psi2s_w)#,\n", - " #cusp_mass = cusp_m, sigma_L = sig_L, sigma_R = sig_R, cusp_scale = cusp_s)\n", - "\n", + " #cusp_mass = cusp_m, sigma_L = sig_L, sigma_R = sig_R, cusp_scale = cusp_s) \n", + " \n", "# print(total_pdf.obs)" ] }, @@ -527,7 +527,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -547,8 +547,8 @@ "# plt.plot(test_q, fplus_y, label = '+')\n", "# plt.plot(test_q, res_y, label = 'res')\n", "plt.legend()\n", - "plt.ylim(0.0, 6e-4)\n", - "# plt.yscale('log')\n", + "# plt.ylim(0.0, 6e-6)\n", + "plt.yscale('log')\n", "# plt.xlim(3080, 3110)\n", "plt.savefig('test.png')\n", "# print(jpsi_width)" @@ -563,23 +563,33 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ - "# total_f.update_integration_options(draws_per_dim=2000000, mc_sampler=None)\n", - "# inte = total_f.integrate(limits = (3090, 3102), norm_range=False)\n", + "# total_f.update_integration_options(draws_per_dim=20000000, mc_sampler=None)\n", + "# inte = total_f.integrate(limits = (3080, 3112), norm_range=False)\n", "# inte_fl = zfit.run(inte)\n", "# print(inte_fl)\n", - "# print(pdg[\"jpsi_BR\"]/pdg[\"NR_BR\"], inte_fl/pdg[\"NR_auc\"])" + "# print(pdg[\"jpsi_BR\"]/pdg[\"NR_BR\"], inte_fl*pdg[\"psi2s_auc\"]/pdg[\"NR_auc\"])" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ + "# print(\"jpsi:\", inte_fl)\n", + "# print(\"Increase am by factor:\", np.sqrt(pdg[\"jpsi_BR\"]/pdg[\"NR_BR\"]*pdg[\"NR_auc\"]/inte_fl))\n", + "# print(\"New amp:\", pdg[\"jpsi\"][3]*np.sqrt(pdg[\"jpsi_BR\"]/pdg[\"NR_BR\"]*pdg[\"NR_auc\"]/inte_fl))\n", + "\n", + "# print(\"psi2s:\", inte_fl)\n", + "# print(\"Increase am by factor:\", np.sqrt(pdg[\"psi2s_BR\"]/pdg[\"NR_BR\"]*pdg[\"NR_auc\"]/inte_fl))\n", + "# print(\"New amp:\", pdg[\"psi2s\"][3]*np.sqrt(pdg[\"psi2s_BR\"]/pdg[\"NR_BR\"]*pdg[\"NR_auc\"]/inte_fl))\n", + "\n", + "\n", + "\n", "# print(x_min)\n", "# print(x_max)\n", "# # total_f.update_integration_options(draws_per_dim=2000000, mc_sampler=None)\n", @@ -614,7 +624,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -643,7 +653,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -660,7 +670,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -690,7 +700,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -699,7 +709,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -721,7 +731,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ @@ -758,7 +768,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -780,7 +790,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": {}, "outputs": [], "source": [ @@ -795,7 +805,8 @@ "# plt.ylim(0, 20)\n", "# # plt.xlim(3000, 3750)\n", "\n", - "# plt.savefig('test2.png')" + "# plt.savefig('test2.png')\n", + "# 1-(0.21+0.62)" ] }, { @@ -807,10 +818,16 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 37, "metadata": {}, "outputs": [], "source": [ + "\n", + " \n", + "# print(list_of_borders[:9])\n", + "# print(list_of_borders[-9:])\n", + "\n", + "\n", "class UniformSampleAndWeights(zfit.util.execution.SessionHolderMixin):\n", " def __call__(self, limits, dtype, n_to_produce):\n", " # n_to_produce = tf.cast(n_to_produce, dtype=tf.int32)\n", @@ -820,22 +837,30 @@ "# uniform = tfd.Uniform(low=low, high=high)\n", "# uniformjpsi = tfd.Uniform(low=tf.constant(3080, dtype=dtype), high=tf.constant(3112, dtype=dtype))\n", "# uniformpsi2s = tfd.Uniform(low=tf.constant(3670, dtype=dtype), high=tf.constant(3702, dtype=dtype))\n", - " mixture = tfd.MixtureSameFamily(mixture_distribution=tfd.Categorical(probs=[tf.constant(0.007, dtype=dtype),\n", - " tf.constant(0.917, dtype=dtype),\n", - " tf.constant(0.076, dtype=dtype)]),\n", - " components_distribution=tfd.Uniform(low=[tf.constant(x_min, dtype=dtype), \n", - " tf.constant(3080, dtype=dtype),\n", - " tf.constant(3670, dtype=dtype)], \n", - " high=[tf.constant(x_max, dtype=dtype),\n", - " tf.constant(3112, dtype=dtype), \n", - " tf.constant(3702, dtype=dtype)]))\n", + "\n", + " list_of_borders = []\n", + " _p = []\n", + " splits = 10\n", + "\n", + " _ = np.linspace(x_min, x_max, splits)\n", + "\n", + " for i in range(splits):\n", + " list_of_borders.append(tf.constant(_[i], dtype=dtype))\n", + " _p.append(tf.constant(1/splits, dtype=dtype))\n", + " \n", + " mixture = tfd.MixtureSameFamily(mixture_distribution=tfd.Categorical(probs=_p[:(splits-1)]),\n", + " components_distribution=tfd.Uniform(low=list_of_borders[:(splits-1)], \n", + " high=list_of_borders[-(splits-1):]))\n", "# mixture = tfd.Uniform(tf.constant(x_min, dtype=dtype), tf.constant(x_max, dtype=dtype))\n", + "# sample = tf.random.uniform((n_to_produce, 1), dtype=dtype)\n", " sample = mixture.sample((n_to_produce, 1))\n", "# sample = tf.random.uniform((n_to_produce, 1), dtype=dtype)\n", " weights = mixture.prob(sample)\n", "# weights = tf.broadcast_to(tf.constant(1., dtype=dtype), shape=(n_to_produce,))\n", " # sample = tf.expand_dims(sample, axis=-1)\n", - " print(sample, weights)\n", + "# print(sample, weights)\n", + " \n", + " weights = tf.ones(shape=(n_to_produce,), dtype=dtype)\n", " weights_max = None\n", " thresholds = tf.random_uniform(shape=(n_to_produce,), dtype=dtype)\n", " return sample, thresholds, weights, weights_max, n_to_produce" @@ -843,51 +868,37 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 38, "metadata": {}, "outputs": [], "source": [ - "# total_f._sample_and_weights = UniformSampleAndWeights" + "total_f._sample_and_weights = UniformSampleAndWeights" ] }, { "cell_type": "code", - "execution_count": 14, - "metadata": {}, + "execution_count": 39, + "metadata": { + "scrolled": false + }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "185/5405\n", - "Time taken: 2 min, 53 s\n", - "Projected time left: 1 h, 21 min\n" - ] - }, - { - "ename": "KeyboardInterrupt", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 23\u001b[0m \u001b[0msampler\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mresample\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mn\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mevent_stack\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 24\u001b[0m \u001b[0ms\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msampler\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0munstack_x\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 25\u001b[1;33m \u001b[0msam\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mzfit\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ms\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 26\u001b[0m \u001b[0mclear_output\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mwait\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 27\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mc:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\zfit\\util\\execution.py\u001b[0m in \u001b[0;36m__call__\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 75\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 76\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m__call__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 77\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msess\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 78\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 79\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mcreate_session\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mc:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36mrun\u001b[1;34m(self, fetches, feed_dict, options, run_metadata)\u001b[0m\n\u001b[0;32m 927\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 928\u001b[0m result = self._run(None, fetches, feed_dict, options_ptr,\n\u001b[1;32m--> 929\u001b[1;33m run_metadata_ptr)\n\u001b[0m\u001b[0;32m 930\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mrun_metadata\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 931\u001b[0m \u001b[0mproto_data\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtf_session\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mTF_GetBuffer\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mrun_metadata_ptr\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mc:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36m_run\u001b[1;34m(self, handle, fetches, feed_dict, options, run_metadata)\u001b[0m\n\u001b[0;32m 1150\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mfinal_fetches\u001b[0m \u001b[1;32mor\u001b[0m \u001b[0mfinal_targets\u001b[0m \u001b[1;32mor\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mhandle\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mfeed_dict_tensor\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1151\u001b[0m results = self._do_run(handle, final_targets, final_fetches,\n\u001b[1;32m-> 1152\u001b[1;33m feed_dict_tensor, options, run_metadata)\n\u001b[0m\u001b[0;32m 1153\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1154\u001b[0m \u001b[0mresults\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mc:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36m_do_run\u001b[1;34m(self, handle, target_list, fetch_list, feed_dict, options, run_metadata)\u001b[0m\n\u001b[0;32m 1326\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mhandle\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1327\u001b[0m return self._do_call(_run_fn, feeds, fetches, targets, options,\n\u001b[1;32m-> 1328\u001b[1;33m run_metadata)\n\u001b[0m\u001b[0;32m 1329\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1330\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_do_call\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0m_prun_fn\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mhandle\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfeeds\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfetches\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mc:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36m_do_call\u001b[1;34m(self, fn, *args)\u001b[0m\n\u001b[0;32m 1332\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_do_call\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfn\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1333\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1334\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mfn\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1335\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0merrors\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mOpError\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1336\u001b[0m \u001b[0mmessage\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcompat\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mas_text\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0me\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmessage\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mc:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36m_run_fn\u001b[1;34m(feed_dict, fetch_list, target_list, options, run_metadata)\u001b[0m\n\u001b[0;32m 1315\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_run_fn\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfeed_dict\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfetch_list\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtarget_list\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0moptions\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mrun_metadata\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1316\u001b[0m \u001b[1;31m# Ensure any changes to the graph are reflected in the runtime.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1317\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_extend_graph\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1318\u001b[0m return self._call_tf_sessionrun(\n\u001b[0;32m 1319\u001b[0m options, feed_dict, fetch_list, target_list, run_metadata)\n", - "\u001b[1;32mc:\\users\\sa_li\\.conda\\envs\\rmd\\lib\\site-packages\\tensorflow\\python\\client\\session.py\u001b[0m in \u001b[0;36m_extend_graph\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 1350\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_extend_graph\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1351\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_graph\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_session_run_lock\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m \u001b[1;31m# pylint: disable=protected-access\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1352\u001b[1;33m \u001b[0mtf_session\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mExtendSession\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_session\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1353\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1354\u001b[0m \u001b[1;31m# The threshold to run garbage collection to delete dead tensors.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mKeyboardInterrupt\u001b[0m: " + "6/6\n", + "Time taken: 39 s\n", + "Projected time left: \n" ] } ], "source": [ + "zfit.run.numeric_checks = False \n", + "\n", "nr_of_toys = 1\n", "nevents = int(pdg[\"number_of_decays\"])\n", - "event_stack = 1000\n", - "zfit.settings.set_verbosity(10)\n", + "event_stack = 1000000\n", + "# zfit.settings.set_verbosity(10)\n", "calls = int(nevents/event_stack + 1)\n", "\n", "total_samp = []\n", @@ -922,7 +933,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 40, "metadata": {}, "outputs": [], "source": [ @@ -939,9 +950,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 41, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time to generate full toy: 39 s\n", + "(5404696,)\n" + ] + } + ], "source": [ "print(\"Time to generate full toy: {} s\".format(int(time.time()-start)))\n", "\n", @@ -963,21 +983,44 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 42, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(5404696,)\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ + "plt.clf()\n", + "\n", "bins = int((x_max-x_min)/7)\n", "\n", "# calcs = zfit.run(total_test_tf(samp))\n", + "print(total_samp[:nevents].shape)\n", "\n", "plt.hist(total_samp[:nevents], bins = bins, range = (x_min,x_max), label = 'data')\n", - "plt.plot(test_q, calcs_test*nevents*4.5 , label = 'pdf')\n", + "# plt.plot(test_q, calcs_test*nevents , label = 'pdf')\n", "\n", "# plt.plot(sam, calcs, '.')\n", "# plt.plot(test_q, calcs_test)\n", "# plt.yscale('log')\n", - "plt.ylim(0, 12000)\n", + "plt.ylim(0, 40000)\n", "# plt.xlim(3080, 3110)\n", "\n", "plt.legend()\n", @@ -987,7 +1030,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 43, "metadata": {}, "outputs": [], "source": [ @@ -1009,6 +1052,15 @@ ] }, { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# plt.hist(sample, weights=1 / prob(sample))" + ] + }, + { "cell_type": "markdown", "metadata": {}, "source": [ @@ -1021,10 +1073,10 @@ "metadata": {}, "outputs": [], "source": [ - "nll = zfit.loss.UnbinnedNLL(model=total_f, data=data3, fit_range = (x_min, x_max))\n", + "nll = zfit.loss.UnbinnedNLL(model=total_f, data=data2, fit_range = (x_min, x_max))\n", "\n", "minimizer = zfit.minimize.MinuitMinimizer()\n", - "minimizer._use_tfgrad = False\n", + "# minimizer._use_tfgrad = False\n", "result = minimizer.minimize(nll)\n", "\n", "param_errors = result.error()\n", @@ -1041,40 +1093,6 @@ "metadata": {}, "outputs": [], "source": [ - "(-7.95933+2*np.pi)/np.pi+np.pi" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "display_time(int(395*pdg[\"number_of_decays\"]/100000))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print(display_time(22376))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ "# probs = total_f.pdf(test_q)\n", "\n", "calcs_test = zfit.run(probs)\n", @@ -1096,7 +1114,7 @@ "# plt.yscale('log')\n", "# plt.xlim(3080, 3110)\n", "plt.savefig('test3.png')\n", - "print(jpsi_width)" + "# print(jpsi_width)" ] }, { @@ -1105,12 +1123,12 @@ "metadata": {}, "outputs": [], "source": [ - "_tot = 4.37e-7+6.02e-5+4.97e-6\n", - "_probs = []\n", - "_probs.append(6.02e-5/_tot)\n", - "_probs.append(4.97e-6/_tot)\n", - "_probs.append(4.37e-7/_tot)\n", - "print(_probs)" + "# _tot = 4.37e-7+6.02e-5+4.97e-6\n", + "# _probs = []\n", + "# _probs.append(6.02e-5/_tot)\n", + "# _probs.append(4.97e-6/_tot)\n", + "# _probs.append(4.37e-7/_tot)\n", + "# print(_probs)" ] }, { @@ -1118,6 +1136,41 @@ "execution_count": null, "metadata": {}, "outputs": [], + "source": [ + "# dtype = 'float64'\n", + "# # mixture = tfd.Uniform(tf.constant(x_min, dtype=dtype), tf.constant(x_max, dtype=dtype))\n", + "# mixture = tfd.MixtureSameFamily(mixture_distribution=tfd.Categorical(probs=[tf.constant(0.007, dtype=dtype),\n", + "# tf.constant(0.917, dtype=dtype),\n", + "# tf.constant(0.076, dtype=dtype)]),\n", + "# components_distribution=tfd.Uniform(low=[tf.constant(x_min, dtype=dtype), \n", + "# tf.constant(3080, dtype=dtype),\n", + "# tf.constant(3670, dtype=dtype)], \n", + "# high=[tf.constant(x_max, dtype=dtype),\n", + "# tf.constant(3112, dtype=dtype), \n", + "# tf.constant(3702, dtype=dtype)]))\n", + "# # for i in range(10):\n", + "# # print(zfit.run(mixture.prob(mixture.sample((10, 1)))))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [] } ], diff --git a/test.png b/test.png index 57dc171..6f54082 100644 --- a/test.png +++ b/test.png Binary files differ diff --git a/test2.png b/test2.png index dd9354d..71fa046 100644 --- a/test2.png +++ b/test2.png Binary files differ diff --git a/test3.png b/test3.png index 293bee4..28316de 100644 --- a/test3.png +++ b/test3.png Binary files differ