|
| 1 | +{ |
| 2 | + "cells": [ |
| 3 | + { |
| 4 | + "cell_type": "markdown", |
| 5 | + "metadata": {}, |
| 6 | + "source": [ |
| 7 | + "# How To: Use a combinations matrix to keep track of combinabilities" |
| 8 | + ] |
| 9 | + }, |
| 10 | + { |
| 11 | + "cell_type": "markdown", |
| 12 | + "metadata": {}, |
| 13 | + "source": [ |
| 14 | + "## Preparations" |
| 15 | + ] |
| 16 | + }, |
| 17 | + { |
| 18 | + "cell_type": "code", |
| 19 | + "execution_count": 1, |
| 20 | + "metadata": {}, |
| 21 | + "outputs": [], |
| 22 | + "source": [ |
| 23 | + "# Set up the path to SModelS installation folder\n", |
| 24 | + "import sys; sys.path.append(\".\"); import smodels_paths" |
| 25 | + ] |
| 26 | + }, |
| 27 | + { |
| 28 | + "cell_type": "code", |
| 29 | + "execution_count": 2, |
| 30 | + "metadata": {}, |
| 31 | + "outputs": [], |
| 32 | + "source": [ |
| 33 | + "# Import those parts of smodels that are needed for this exercise\n", |
| 34 | + "from smodels.tools.physicsUnits import GeV\n", |
| 35 | + "from smodels.experiment.databaseObj import Database\n", |
| 36 | + "from smodels.theory.theoryPrediction import theoryPredictionsFor, TheoryPredictionsCombiner\n", |
| 37 | + "from smodels.theory import decomposer\n", |
| 38 | + "from smodels.tools.physicsUnits import fb\n", |
| 39 | + "from smodels.particlesLoader import BSMList\n", |
| 40 | + "from smodels.share.models.SMparticles import SMList\n", |
| 41 | + "from smodels.theory.model import Model" |
| 42 | + ] |
| 43 | + }, |
| 44 | + { |
| 45 | + "cell_type": "code", |
| 46 | + "execution_count": 3, |
| 47 | + "metadata": {}, |
| 48 | + "outputs": [], |
| 49 | + "source": [ |
| 50 | + "# a combinations matrix is just a dictionary with combinable analyses as both keys and values.\n", |
| 51 | + "# we assume symmetricity! (if A is combinable with B, then B is combinable with A)\n", |
| 52 | + "# Also, CMS results are automatically assumed to be combinable with ATLAS results,\n", |
| 53 | + "# and 8 TeV with 13 TeV results.\n", |
| 54 | + "combinationsmatrix = { \"ATLAS-SUSY-2018-41\": [ \"ATLAS-SUSY-2019-08\"]} \n", |
| 55 | + "# also define a list of analyses we are interested in\n", |
| 56 | + "analyses = [ \"CMS-SUS-21-002\", \"ATLAS-SUSY-2018-41\", \"ATLAS-SUSY-2019-08\", \"CMS-SUS-20-004\"]" |
| 57 | + ] |
| 58 | + }, |
| 59 | + { |
| 60 | + "cell_type": "markdown", |
| 61 | + "metadata": {}, |
| 62 | + "source": [ |
| 63 | + "here is a visualisation of the combinations matrix for the analyses under consideration:" |
| 64 | + ] |
| 65 | + }, |
| 66 | + { |
| 67 | + "attachments": { |
| 68 | + "matrix-2.png": { |
| 69 | + "image/png": "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" |
| 70 | + } |
| 71 | + }, |
| 72 | + "cell_type": "markdown", |
| 73 | + "metadata": {}, |
| 74 | + "source": [ |
| 75 | + "" |
| 76 | + ] |
| 77 | + }, |
| 78 | + { |
| 79 | + "cell_type": "code", |
| 80 | + "execution_count": 4, |
| 81 | + "metadata": {}, |
| 82 | + "outputs": [ |
| 83 | + { |
| 84 | + "name": "stdout", |
| 85 | + "output_type": "stream", |
| 86 | + "text": [ |
| 87 | + "we have selected 4 analyses\n" |
| 88 | + ] |
| 89 | + } |
| 90 | + ], |
| 91 | + "source": [ |
| 92 | + "## Load the official database:\n", |
| 93 | + "db = Database(\"official\", combinationsmatrix=combinationsmatrix)\n", |
| 94 | + "results = db.getExpResults(analysisIDs=analyses, dataTypes = [ \"efficiencyMap\"])\n", |
| 95 | + "print ( f\"we have selected {len(results)} analyses\" )" |
| 96 | + ] |
| 97 | + }, |
| 98 | + { |
| 99 | + "cell_type": "code", |
| 100 | + "execution_count": 5, |
| 101 | + "metadata": {}, |
| 102 | + "outputs": [ |
| 103 | + { |
| 104 | + "data": { |
| 105 | + "text/plain": [ |
| 106 | + "['ATLAS-SUSY-2018-41',\n", |
| 107 | + " 'ATLAS-SUSY-2019-08',\n", |
| 108 | + " 'CMS-SUS-20-004',\n", |
| 109 | + " 'CMS-SUS-21-002']" |
| 110 | + ] |
| 111 | + }, |
| 112 | + "execution_count": 5, |
| 113 | + "metadata": {}, |
| 114 | + "output_type": "execute_result" |
| 115 | + } |
| 116 | + ], |
| 117 | + "source": [ |
| 118 | + "[ x.globalInfo.id for x in results ]" |
| 119 | + ] |
| 120 | + }, |
| 121 | + { |
| 122 | + "cell_type": "code", |
| 123 | + "execution_count": 6, |
| 124 | + "metadata": {}, |
| 125 | + "outputs": [], |
| 126 | + "source": [ |
| 127 | + "# the theory we will be using\n", |
| 128 | + "inputFile = \"inputFiles/slha/ew_ymi2l51r.slha\"" |
| 129 | + ] |
| 130 | + }, |
| 131 | + { |
| 132 | + "cell_type": "code", |
| 133 | + "execution_count": 7, |
| 134 | + "metadata": {}, |
| 135 | + "outputs": [], |
| 136 | + "source": [ |
| 137 | + "# prepare the model\n", |
| 138 | + "model = Model(BSMparticles=BSMList, SMparticles=SMList)\n", |
| 139 | + "model.updateParticles(inputFile=inputFile)\n", |
| 140 | + "# obtain the decomposed model\n", |
| 141 | + "toplist = decomposer.decompose(model,sigmacut=0.*fb)" |
| 142 | + ] |
| 143 | + }, |
| 144 | + { |
| 145 | + "cell_type": "markdown", |
| 146 | + "metadata": {}, |
| 147 | + "source": [ |
| 148 | + "## run SModelS" |
| 149 | + ] |
| 150 | + }, |
| 151 | + { |
| 152 | + "cell_type": "code", |
| 153 | + "execution_count": 8, |
| 154 | + "metadata": {}, |
| 155 | + "outputs": [], |
| 156 | + "source": [ |
| 157 | + "# get the predictions\n", |
| 158 | + "predictions = list ( theoryPredictionsFor(results, toplist, combinedResults=True ) )" |
| 159 | + ] |
| 160 | + }, |
| 161 | + { |
| 162 | + "cell_type": "code", |
| 163 | + "execution_count": 9, |
| 164 | + "metadata": {}, |
| 165 | + "outputs": [ |
| 166 | + { |
| 167 | + "data": { |
| 168 | + "text/plain": [ |
| 169 | + "[('ATLAS-SUSY-2018-41', 'r_exp=', 0.869),\n", |
| 170 | + " ('ATLAS-SUSY-2019-08', 'r_exp=', 0.961),\n", |
| 171 | + " ('CMS-SUS-21-002', 'r_exp=', 1.158)]" |
| 172 | + ] |
| 173 | + }, |
| 174 | + "execution_count": 9, |
| 175 | + "metadata": {}, |
| 176 | + "output_type": "execute_result" |
| 177 | + } |
| 178 | + ], |
| 179 | + "source": [ |
| 180 | + "# let's have a quick look at the predictions, and the (expected) r-values\n", |
| 181 | + "[ (x.dataset.globalInfo.id, \"r_exp=\", round(x.getRValue(expected=True),3)) for x in predictions ]" |
| 182 | + ] |
| 183 | + }, |
| 184 | + { |
| 185 | + "cell_type": "code", |
| 186 | + "execution_count": 10, |
| 187 | + "metadata": {}, |
| 188 | + "outputs": [ |
| 189 | + { |
| 190 | + "name": "stdout", |
| 191 | + "output_type": "stream", |
| 192 | + "text": [ |
| 193 | + "can I combine ATLAS-SUSY-2018-41 with ATLAS-SUSY-2019-08? yes\n", |
| 194 | + "can I combine ATLAS-SUSY-2018-41 with CMS-SUS-21-002? yes\n", |
| 195 | + "can I combine ATLAS-SUSY-2019-08 with CMS-SUS-21-002? yes\n" |
| 196 | + ] |
| 197 | + } |
| 198 | + ], |
| 199 | + "source": [ |
| 200 | + "for i,pr1 in enumerate(predictions[:-1]):\n", |
| 201 | + " id1 = pr1.dataset.globalInfo.id\n", |
| 202 | + " for pr2 in predictions[i+1:]:\n", |
| 203 | + " id2 = pr2.dataset.globalInfo.id\n", |
| 204 | + " combinable = pr1.dataset.isCombinableWith(pr2.dataset)\n", |
| 205 | + " print ( f\"can I combine {id1} with {id2}? {'yes' if combinable else 'no'}\" )" |
| 206 | + ] |
| 207 | + }, |
| 208 | + { |
| 209 | + "cell_type": "markdown", |
| 210 | + "metadata": {}, |
| 211 | + "source": [ |
| 212 | + "## combine!" |
| 213 | + ] |
| 214 | + }, |
| 215 | + { |
| 216 | + "cell_type": "code", |
| 217 | + "execution_count": 11, |
| 218 | + "metadata": {}, |
| 219 | + "outputs": [], |
| 220 | + "source": [ |
| 221 | + "# given [10] from above, we are allowed to combine the three analyses listed below\n", |
| 222 | + "analyses = [ \"CMS-SUS-21-002\", \"ATLAS-SUSY-2018-41\", \"ATLAS-SUSY-2019-08\"]\n", |
| 223 | + "combiner = TheoryPredictionsCombiner.selectResultsFrom ( predictions, analyses )" |
| 224 | + ] |
| 225 | + }, |
| 226 | + { |
| 227 | + "cell_type": "code", |
| 228 | + "execution_count": 12, |
| 229 | + "metadata": {}, |
| 230 | + "outputs": [ |
| 231 | + { |
| 232 | + "data": { |
| 233 | + "text/plain": [ |
| 234 | + "1.674" |
| 235 | + ] |
| 236 | + }, |
| 237 | + "execution_count": 12, |
| 238 | + "metadata": {}, |
| 239 | + "output_type": "execute_result" |
| 240 | + } |
| 241 | + ], |
| 242 | + "source": [ |
| 243 | + "# the combined expected r value must be above the individual expected r-values\n", |
| 244 | + "round(combiner.getRValue(expected=True),3)" |
| 245 | + ] |
| 246 | + } |
| 247 | + ], |
| 248 | + "metadata": { |
| 249 | + "kernelspec": { |
| 250 | + "display_name": "Python 3 (ipykernel)", |
| 251 | + "language": "python", |
| 252 | + "name": "python3" |
| 253 | + }, |
| 254 | + "language_info": { |
| 255 | + "codemirror_mode": { |
| 256 | + "name": "ipython", |
| 257 | + "version": 3 |
| 258 | + }, |
| 259 | + "file_extension": ".py", |
| 260 | + "mimetype": "text/x-python", |
| 261 | + "name": "python", |
| 262 | + "nbconvert_exporter": "python", |
| 263 | + "pygments_lexer": "ipython3", |
| 264 | + "version": "3.11.2" |
| 265 | + } |
| 266 | + }, |
| 267 | + "nbformat": 4, |
| 268 | + "nbformat_minor": 1 |
| 269 | +} |
0 commit comments