You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

212 lines
21 KiB

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import uproot\n",
"import awkward as ak\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"input_tree = uproot.open({\"/work/guenther/reco_tuner/data/param_data_selected_all_p.root\": \"Selected\"})\n",
"array = input_tree.arrays()\n",
"array[\"dSlope_fringe\"] = array[\"tx_ref\"] - array[\"tx\"]\n",
"array[\"poqmag_gev\"] = 1. / ( array[\"signed_rel_current\"] * array[\"qop\"] * 1000. )\n",
"array[\"B_integral\"] = array[\"poqmag_gev\"] * array[\"dSlope_fringe\"]"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(array([1.00000e+00, 0.00000e+00, 0.00000e+00, 1.00000e+00, 0.00000e+00,\n",
" 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,\n",
" 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 1.00000e+00,\n",
" 1.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,\n",
" 0.00000e+00, 0.00000e+00, 1.00000e+00, 0.00000e+00, 0.00000e+00,\n",
" 2.00000e+00, 2.00000e+00, 4.00000e+00, 0.00000e+00, 3.00000e+00,\n",
" 0.00000e+00, 4.00000e+00, 3.00000e+00, 1.00000e+00, 4.00000e+00,\n",
" 4.00000e+00, 1.00000e+00, 1.00000e+01, 8.00000e+00, 8.00000e+00,\n",
" 2.30000e+01, 3.20000e+01, 6.30000e+01, 8.40000e+01, 1.22000e+02,\n",
" 2.03000e+02, 3.10000e+02, 3.98000e+02, 5.90000e+02, 8.65000e+02,\n",
" 1.08700e+03, 1.55300e+03, 2.01000e+03, 2.67400e+03, 3.49500e+03,\n",
" 4.46300e+03, 5.85300e+03, 7.16800e+03, 8.92900e+03, 1.12130e+04,\n",
" 1.37320e+04, 1.69420e+04, 2.09870e+04, 2.59060e+04, 3.24750e+04,\n",
" 3.94560e+04, 4.81480e+04, 6.21400e+04, 8.28540e+04, 1.20767e+05,\n",
" 2.15388e+05, 5.13195e+05, 5.20000e+02, 3.29000e+02, 1.83000e+02,\n",
" 1.32000e+02, 1.02000e+02, 8.30000e+01, 6.40000e+01, 5.00000e+01,\n",
" 2.70000e+01, 2.80000e+01, 2.20000e+01, 1.80000e+01, 2.00000e+01,\n",
" 1.50000e+01, 1.00000e+01, 4.00000e+00, 7.00000e+00, 6.00000e+00,\n",
" 5.00000e+00, 2.00000e+00, 2.00000e+00, 3.00000e+00, 0.00000e+00,\n",
" 2.00000e+00, 3.00000e+00, 0.00000e+00, 0.00000e+00, 2.00000e+00]),\n",
" array([-2.45885773, -2.44145641, -2.4240551 , -2.40665378, -2.38925247,\n",
" -2.37185115, -2.35444984, -2.33704853, -2.31964721, -2.3022459 ,\n",
" -2.28484458, -2.26744327, -2.25004195, -2.23264064, -2.21523933,\n",
" -2.19783801, -2.1804367 , -2.16303538, -2.14563407, -2.12823275,\n",
" -2.11083144, -2.09343013, -2.07602881, -2.0586275 , -2.04122618,\n",
" -2.02382487, -2.00642355, -1.98902224, -1.97162093, -1.95421961,\n",
" -1.9368183 , -1.91941698, -1.90201567, -1.88461436, -1.86721304,\n",
" -1.84981173, -1.83241041, -1.8150091 , -1.79760778, -1.78020647,\n",
" -1.76280516, -1.74540384, -1.72800253, -1.71060121, -1.6931999 ,\n",
" -1.67579858, -1.65839727, -1.64099596, -1.62359464, -1.60619333,\n",
" -1.58879201, -1.5713907 , -1.55398938, -1.53658807, -1.51918676,\n",
" -1.50178544, -1.48438413, -1.46698281, -1.4495815 , -1.43218018,\n",
" -1.41477887, -1.39737756, -1.37997624, -1.36257493, -1.34517361,\n",
" -1.3277723 , -1.31037098, -1.29296967, -1.27556836, -1.25816704,\n",
" -1.24076573, -1.22336441, -1.2059631 , -1.18856178, -1.17116047,\n",
" -1.15375916, -1.13635784, -1.11895653, -1.10155521, -1.0841539 ,\n",
" -1.06675258, -1.04935127, -1.03194996, -1.01454864, -0.99714733,\n",
" -0.97974601, -0.9623447 , -0.94494338, -0.92754207, -0.91014076,\n",
" -0.89273944, -0.87533813, -0.85793681, -0.8405355 , -0.82313418,\n",
" -0.80573287, -0.78833156, -0.77093024, -0.75352893, -0.73612761,\n",
" -0.7187263 ]),\n",
" <BarContainer object of 100 artists>)"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.hist(array[\"B_integral\"], bins=100, log=True)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['ty^2' 'tx^2' 'tx tx_ref' 'tx_ref^2' 'ty^4' 'ty^2 tx^2' 'ty^2 tx tx_ref'\n",
" 'ty^2 tx_ref^2' 'tx^4' 'tx^3 tx_ref' 'tx_ref^4']\n",
"intercept= -1.2094486121528516\n",
"coef= {'ty^2': -2.7897043324822492, 'tx^2': -0.35976930628193077, 'tx tx_ref': -0.47138558705675454, 'tx_ref^2': -0.5600847231491961, 'ty^4': 14.009315350693472, 'ty^2 tx^2': -16.162818973243674, 'ty^2 tx tx_ref': -8.807994419844437, 'ty^2 tx_ref^2': -0.8753190393972976, 'tx^4': 2.98254201374128, 'tx^3 tx_ref': 0.9625408279466898, 'tx_ref^4': 0.10200564097830103}\n",
"r2 score= 0.9916826041227943\n",
"RMSE = 0.006014471039836984\n",
"['ty^2', 'tx^2', 'tx tx_ref', 'tx_ref^2', 'ty^4', 'ty^2 tx^2', 'ty^2 tx tx_ref', 'ty^2 tx_ref^2', 'tx^4', 'tx^3 tx_ref', 'tx_ref^4']\n"
]
}
],
"source": [
"from sklearn.preprocessing import PolynomialFeatures\n",
"from sklearn.linear_model import LinearRegression, Lasso, Ridge\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.pipeline import Pipeline\n",
"from sklearn.metrics import mean_squared_error\n",
"import numpy as np\n",
"\n",
"features = [\n",
" \"ty\", \n",
" \"tx\",\n",
" \"tx_ref\",\n",
"]\n",
"target_feat = \"B_integral\"\n",
"\n",
"data = np.column_stack([ak.to_numpy(array[feat]) for feat in features])\n",
"target = ak.to_numpy(array[target_feat])\n",
"X_train, X_test, y_train, y_test = train_test_split(data, target, test_size=0.2, random_state=42)\n",
"\n",
"poly = PolynomialFeatures(degree=5, include_bias=False)\n",
"X_train_model = poly.fit_transform( X_train )\n",
"X_test_model = poly.fit_transform( X_test )\n",
"poly_features = poly.get_feature_names_out(input_features=features)\n",
"reduce = True\n",
"if reduce:\n",
" keep = [\n",
" #'ty',\n",
" #'tx',\n",
" #'tx_ref',\n",
" #'ty tx',\n",
" #'ty tx_ref',\n",
" 'ty^2',#keep\n",
" 'tx^2',#keep\n",
" 'tx tx_ref',#keep\n",
" 'tx_ref^2',#keep\n",
" 'ty^2 tx tx_ref',#keep\n",
" 'ty^2 tx^2',#keep\n",
" 'ty^2 tx_ref^2', #keep\n",
" 'tx^4',#keep\n",
" 'ty^4',#keep\n",
" 'tx_ref^4',#keep\n",
" #'tx_ref^5',\n",
" 'tx^3 tx_ref', #keep\n",
" #'tx tx_ref^3',\n",
" #'tx^2 tx_ref^2',\n",
" #'ty tx_ref^4',\n",
" #'tx tx_ref^4',\n",
" #'tx_ref^5',\n",
" ]\n",
" remove = [i for i, f in enumerate(poly_features) if (keep and f not in keep )]\n",
" X_train_model = np.delete( X_train_model, remove, axis=1)\n",
" X_test_model = np.delete( X_test_model, remove, axis=1)\n",
" poly_features = np.delete(poly_features, remove )\n",
" print(poly_features)\n",
"if not reduce:\n",
" lin_reg = Lasso( alpha=0.0000001)#Lasso(fit_intercept=False, alpha=0.001)\n",
"else:\n",
" lin_reg = LinearRegression()\n",
"lin_reg.fit( X_train_model, y_train)\n",
"y_pred_test = lin_reg.predict( X_test_model )\n",
"print(\"intercept=\", lin_reg.intercept_)\n",
"print(\"coef=\", dict(zip(poly_features, lin_reg.coef_)))\n",
"print(\"r2 score=\", lin_reg.score(X_test_model, y_test))\n",
"print(\"RMSE =\", mean_squared_error(y_test, y_pred_test, squared=False))\n",
"print([key for key, val in dict(zip(poly_features, lin_reg.coef_)).items() if val != 0.0])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.10.6 (conda)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.6"
},
"orig_nbformat": 4,
"vscode": {
"interpreter": {
"hash": "a2eff8b4da8b8eebf5ee2e5f811f31a557e0a202b4d2f04f849b065340a6eda6"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}