Last active
December 30, 2019 17:12
-
-
Save lgray/8c6fb825a76729258d2016008a86b13b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"List{ \n", | |
" Rec#6(0){ \n", | |
" third = Rec#8(0 4){ \n", | |
" pt = Value#8(0 4){ 5 }\n", | |
" charge = Value#8(0 4){ 1 }\n", | |
" mass = Value#8(0 4){ 10 }\n", | |
" }\n", | |
" }\n", | |
" Rec#6(2){ \n", | |
" third = Rec#8(2 1){ \n", | |
" pt = Value#8(2 1){ 50 }\n", | |
" charge = Value#8(2 1){ -1 }\n", | |
" mass = Value#8(2 1){ 15 }\n", | |
" }\n", | |
" }\n", | |
" Rec#6(3){ \n", | |
" third = Rec#7(3 3){ \n", | |
" pt = Value#7(3 3){ 9.9 }\n", | |
" charge = Value#7(3 3){ -1 }\n", | |
" iso = Value#7(3 3){ 4 }\n", | |
" }\n", | |
" }\n", | |
"}\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"from awkwardql import data, interpreter, interface\n", | |
"\n", | |
"events = data.RecordArray({\n", | |
" \"muons\": data.ListArray([0, 3, 3, 5], [3, 3, 5, 9], data.RecordArray({\n", | |
" \"pt\": data.PrimitiveArray([1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9]),\n", | |
" \"charge\": data.PrimitiveArray([-1, 1, -1, 1, -1, 1, -1, 1, -1]),\n", | |
" \"iso\": data.PrimitiveArray([0, 0, 100, 50, 30, 1, 2, 3, 4])\n", | |
" })),\n", | |
" \"electrons\": data.ListArray([0, 5, 6, 8], [5, 6, 8, 12], data.RecordArray({\n", | |
" \"pt\": data.PrimitiveArray([1, 2, 3, 4, 5, 100, 30, 50, 1, 2, 3, 4]),\n", | |
" \"charge\": data.PrimitiveArray([1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1]),\n", | |
" \"mass\": data.PrimitiveArray([10, 10, 10, 10, 10, 5, 15, 15, 9, 8, 7, 6])\n", | |
" })),\n", | |
" \"met\": data.PrimitiveArray([100, 200, 300, 400])\n", | |
" })\n", | |
"\n", | |
"events.setindex()\n", | |
"event_data = data.instantiate(events)\n", | |
"\n", | |
"@interface.query\n", | |
"def third_not_in_z():\n", | |
" r\"\"\"\n", | |
" def mass(one, two) {\n", | |
" 91.2 + one.pt + two.pt # yes this is just a stand in\n", | |
" }\n", | |
"\n", | |
" third = {\n", | |
" leptons = electrons union muons\n", | |
" Z = electrons as (lep1, lep2) union muons as (lep1, lep2) \n", | |
" where lep1.charge != lep2.charge \n", | |
" min by abs(mass(lep1, lep2) - 91.2)\n", | |
" leptons where count(leptons) >= 3 except [?Z.lep1, ?Z.lep2] max by pt\n", | |
" }\n", | |
"\n", | |
" hist ?third.pt by regular(100, 0, 250) named \"third_pt\" titled \"Leading other lepton pT\"\n", | |
" \"\"\"\n", | |
"\n", | |
"output, counter = third_not_in_z(event_data)\n", | |
"\n", | |
"print(output)\n", | |
"\n", | |
"counter[\"third_pt\"].mpl()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"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.7.3" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment