diff --git a/.buildinfo b/.buildinfo new file mode 100644 index 000000000..56525d75f --- /dev/null +++ b/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 837033b202149401dbcbea8de22be4c8 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 000000000..e69de29bb diff --git a/_images/columnar.png b/_images/columnar.png new file mode 100644 index 000000000..8ae9bdf6d Binary files /dev/null and b/_images/columnar.png differ diff --git a/_images/inheritance-03370c5c9fa500f1924b4abd9bd0b7adbac00e6c.png b/_images/inheritance-03370c5c9fa500f1924b4abd9bd0b7adbac00e6c.png new file mode 100644 index 000000000..64bd3ac1d Binary files /dev/null and b/_images/inheritance-03370c5c9fa500f1924b4abd9bd0b7adbac00e6c.png differ diff --git a/_images/inheritance-03370c5c9fa500f1924b4abd9bd0b7adbac00e6c.png.map b/_images/inheritance-03370c5c9fa500f1924b4abd9bd0b7adbac00e6c.png.map new file mode 100644 index 000000000..698cfa1bb --- /dev/null +++ b/_images/inheritance-03370c5c9fa500f1924b4abd9bd0b7adbac00e6c.png.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/_images/inheritance-2b40c6d05ed1b536aff813390875329435150dde.png b/_images/inheritance-2b40c6d05ed1b536aff813390875329435150dde.png new file mode 100644 index 000000000..1f06d857e Binary files /dev/null and b/_images/inheritance-2b40c6d05ed1b536aff813390875329435150dde.png differ diff --git a/_images/inheritance-2b40c6d05ed1b536aff813390875329435150dde.png.map b/_images/inheritance-2b40c6d05ed1b536aff813390875329435150dde.png.map new file mode 100644 index 000000000..046dde8dc --- /dev/null +++ b/_images/inheritance-2b40c6d05ed1b536aff813390875329435150dde.png.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/_images/inheritance-74d147d7ca00827cfb7d1ec9f1427731a936f77e.png b/_images/inheritance-74d147d7ca00827cfb7d1ec9f1427731a936f77e.png new file mode 100644 index 000000000..ef9398f47 Binary files /dev/null and b/_images/inheritance-74d147d7ca00827cfb7d1ec9f1427731a936f77e.png differ diff --git a/_images/inheritance-74d147d7ca00827cfb7d1ec9f1427731a936f77e.png.map b/_images/inheritance-74d147d7ca00827cfb7d1ec9f1427731a936f77e.png.map new file mode 100644 index 000000000..8a034a55b --- /dev/null +++ b/_images/inheritance-74d147d7ca00827cfb7d1ec9f1427731a936f77e.png.map @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/_images/inheritance-7878c1a6cb6949ec5f38bbc966606e1acd8d716c.png b/_images/inheritance-7878c1a6cb6949ec5f38bbc966606e1acd8d716c.png new file mode 100644 index 000000000..60c93d5b3 Binary files /dev/null and b/_images/inheritance-7878c1a6cb6949ec5f38bbc966606e1acd8d716c.png differ diff --git a/_images/inheritance-7878c1a6cb6949ec5f38bbc966606e1acd8d716c.png.map b/_images/inheritance-7878c1a6cb6949ec5f38bbc966606e1acd8d716c.png.map new file mode 100644 index 000000000..2c4237e05 --- /dev/null +++ b/_images/inheritance-7878c1a6cb6949ec5f38bbc966606e1acd8d716c.png.map @@ -0,0 +1,4 @@ + + + + diff --git a/_images/inheritance-97a302fc26484a4a5046b140ffdfc0b0e88ac28f.png b/_images/inheritance-97a302fc26484a4a5046b140ffdfc0b0e88ac28f.png new file mode 100644 index 000000000..20b744b22 Binary files /dev/null and b/_images/inheritance-97a302fc26484a4a5046b140ffdfc0b0e88ac28f.png differ diff --git a/_images/inheritance-97a302fc26484a4a5046b140ffdfc0b0e88ac28f.png.map b/_images/inheritance-97a302fc26484a4a5046b140ffdfc0b0e88ac28f.png.map new file mode 100644 index 000000000..1218ee138 --- /dev/null +++ b/_images/inheritance-97a302fc26484a4a5046b140ffdfc0b0e88ac28f.png.map @@ -0,0 +1,5 @@ + + + + + diff --git a/_images/inheritance-b4a78a1e3229c8f1aad80ef9f2106d165a264da6.png b/_images/inheritance-b4a78a1e3229c8f1aad80ef9f2106d165a264da6.png new file mode 100644 index 000000000..edd1963f7 Binary files /dev/null and b/_images/inheritance-b4a78a1e3229c8f1aad80ef9f2106d165a264da6.png differ diff --git a/_images/inheritance-b4a78a1e3229c8f1aad80ef9f2106d165a264da6.png.map b/_images/inheritance-b4a78a1e3229c8f1aad80ef9f2106d165a264da6.png.map new file mode 100644 index 000000000..ab610912d --- /dev/null +++ b/_images/inheritance-b4a78a1e3229c8f1aad80ef9f2106d165a264da6.png.map @@ -0,0 +1,3 @@ + + + diff --git a/_images/inheritance-b611f7d0e8cf385772cce3c879cd8b34a2da237c.png b/_images/inheritance-b611f7d0e8cf385772cce3c879cd8b34a2da237c.png new file mode 100644 index 000000000..766401a50 Binary files /dev/null and b/_images/inheritance-b611f7d0e8cf385772cce3c879cd8b34a2da237c.png differ diff --git a/_images/inheritance-b611f7d0e8cf385772cce3c879cd8b34a2da237c.png.map b/_images/inheritance-b611f7d0e8cf385772cce3c879cd8b34a2da237c.png.map new file mode 100644 index 000000000..16a484408 --- /dev/null +++ b/_images/inheritance-b611f7d0e8cf385772cce3c879cd8b34a2da237c.png.map @@ -0,0 +1,3 @@ + + + diff --git a/_images/inheritance-bfb9f3967431307b1219409b5a30467913b8873c.png b/_images/inheritance-bfb9f3967431307b1219409b5a30467913b8873c.png new file mode 100644 index 000000000..acd26efe7 Binary files /dev/null and b/_images/inheritance-bfb9f3967431307b1219409b5a30467913b8873c.png differ diff --git a/_images/inheritance-bfb9f3967431307b1219409b5a30467913b8873c.png.map b/_images/inheritance-bfb9f3967431307b1219409b5a30467913b8873c.png.map new file mode 100644 index 000000000..8f21f511b --- /dev/null +++ b/_images/inheritance-bfb9f3967431307b1219409b5a30467913b8873c.png.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/_images/inheritance-c1b1209f713b12400c7e24960dc64eaf8ae1042d.png b/_images/inheritance-c1b1209f713b12400c7e24960dc64eaf8ae1042d.png new file mode 100644 index 000000000..5038725d4 Binary files /dev/null and b/_images/inheritance-c1b1209f713b12400c7e24960dc64eaf8ae1042d.png differ diff --git a/_images/inheritance-c1b1209f713b12400c7e24960dc64eaf8ae1042d.png.map b/_images/inheritance-c1b1209f713b12400c7e24960dc64eaf8ae1042d.png.map new file mode 100644 index 000000000..0fea6b74c --- /dev/null +++ b/_images/inheritance-c1b1209f713b12400c7e24960dc64eaf8ae1042d.png.map @@ -0,0 +1,5 @@ + + + + + diff --git a/_images/inheritance-c4bf4b316da28d3c1d8ee76c61817c48ac28d7e0.png b/_images/inheritance-c4bf4b316da28d3c1d8ee76c61817c48ac28d7e0.png new file mode 100644 index 000000000..a827ba50e Binary files /dev/null and b/_images/inheritance-c4bf4b316da28d3c1d8ee76c61817c48ac28d7e0.png differ diff --git a/_images/inheritance-c4bf4b316da28d3c1d8ee76c61817c48ac28d7e0.png.map b/_images/inheritance-c4bf4b316da28d3c1d8ee76c61817c48ac28d7e0.png.map new file mode 100644 index 000000000..9bb5f5507 --- /dev/null +++ b/_images/inheritance-c4bf4b316da28d3c1d8ee76c61817c48ac28d7e0.png.map @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/_images/inheritance-c5e0346a2520e8da3bf58b73c77163bfcd1f7912.png b/_images/inheritance-c5e0346a2520e8da3bf58b73c77163bfcd1f7912.png new file mode 100644 index 000000000..c53c64be9 Binary files /dev/null and b/_images/inheritance-c5e0346a2520e8da3bf58b73c77163bfcd1f7912.png differ diff --git a/_images/inheritance-c5e0346a2520e8da3bf58b73c77163bfcd1f7912.png.map b/_images/inheritance-c5e0346a2520e8da3bf58b73c77163bfcd1f7912.png.map new file mode 100644 index 000000000..ce407ac43 --- /dev/null +++ b/_images/inheritance-c5e0346a2520e8da3bf58b73c77163bfcd1f7912.png.map @@ -0,0 +1,5 @@ + + + + + diff --git a/_images/inheritance-ca8839e72c928fa7dc22d270686845af645272a2.png b/_images/inheritance-ca8839e72c928fa7dc22d270686845af645272a2.png new file mode 100644 index 000000000..3083de5df Binary files /dev/null and b/_images/inheritance-ca8839e72c928fa7dc22d270686845af645272a2.png differ diff --git a/_images/inheritance-ca8839e72c928fa7dc22d270686845af645272a2.png.map b/_images/inheritance-ca8839e72c928fa7dc22d270686845af645272a2.png.map new file mode 100644 index 000000000..fd00ba275 --- /dev/null +++ b/_images/inheritance-ca8839e72c928fa7dc22d270686845af645272a2.png.map @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/_images/inheritance-e956ff83bd146443e12738b4f284f7555af5c42b.png b/_images/inheritance-e956ff83bd146443e12738b4f284f7555af5c42b.png new file mode 100644 index 000000000..5bfffda76 Binary files /dev/null and b/_images/inheritance-e956ff83bd146443e12738b4f284f7555af5c42b.png differ diff --git a/_images/inheritance-e956ff83bd146443e12738b4f284f7555af5c42b.png.map b/_images/inheritance-e956ff83bd146443e12738b4f284f7555af5c42b.png.map new file mode 100644 index 000000000..aa9d4af77 --- /dev/null +++ b/_images/inheritance-e956ff83bd146443e12738b4f284f7555af5c42b.png.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/_images/notebooks_applying_corrections_10_2.png b/_images/notebooks_applying_corrections_10_2.png new file mode 100644 index 000000000..e24226477 Binary files /dev/null and b/_images/notebooks_applying_corrections_10_2.png differ diff --git a/_images/notebooks_applying_corrections_12_2.png b/_images/notebooks_applying_corrections_12_2.png new file mode 100644 index 000000000..b8decd522 Binary files /dev/null and b/_images/notebooks_applying_corrections_12_2.png differ diff --git a/_images/notebooks_applying_corrections_14_1.png b/_images/notebooks_applying_corrections_14_1.png new file mode 100644 index 000000000..5194bf956 Binary files /dev/null and b/_images/notebooks_applying_corrections_14_1.png differ diff --git a/_images/notebooks_mltools_12_1.png b/_images/notebooks_mltools_12_1.png new file mode 100644 index 000000000..5f30749da Binary files /dev/null and b/_images/notebooks_mltools_12_1.png differ diff --git a/_images/notebooks_mltools_14_1.png b/_images/notebooks_mltools_14_1.png new file mode 100644 index 000000000..1af41cae1 Binary files /dev/null and b/_images/notebooks_mltools_14_1.png differ diff --git a/_images/notebooks_packedselection_27_0.png b/_images/notebooks_packedselection_27_0.png new file mode 100644 index 000000000..32677bccc Binary files /dev/null and b/_images/notebooks_packedselection_27_0.png differ diff --git a/_images/notebooks_packedselection_33_0.png b/_images/notebooks_packedselection_33_0.png new file mode 100644 index 000000000..6c7678d09 Binary files /dev/null and b/_images/notebooks_packedselection_33_0.png differ diff --git a/_images/notebooks_packedselection_33_1.png b/_images/notebooks_packedselection_33_1.png new file mode 100644 index 000000000..7cacf6019 Binary files /dev/null and b/_images/notebooks_packedselection_33_1.png differ diff --git a/_images/notebooks_packedselection_35_0.png b/_images/notebooks_packedselection_35_0.png new file mode 100644 index 000000000..ba251abf5 Binary files /dev/null and b/_images/notebooks_packedselection_35_0.png differ diff --git a/_images/notebooks_packedselection_45_0.png b/_images/notebooks_packedselection_45_0.png new file mode 100644 index 000000000..fd72ffc72 Binary files /dev/null and b/_images/notebooks_packedselection_45_0.png differ diff --git a/_images/notebooks_packedselection_45_1.png b/_images/notebooks_packedselection_45_1.png new file mode 100644 index 000000000..a2536c471 Binary files /dev/null and b/_images/notebooks_packedselection_45_1.png differ diff --git a/_images/notebooks_packedselection_78_0.png b/_images/notebooks_packedselection_78_0.png new file mode 100644 index 000000000..32677bccc Binary files /dev/null and b/_images/notebooks_packedselection_78_0.png differ diff --git a/_images/notebooks_processor_16_1.png b/_images/notebooks_processor_16_1.png new file mode 100644 index 000000000..123d5f7d2 Binary files /dev/null and b/_images/notebooks_processor_16_1.png differ diff --git a/_images/notebooks_processor_17_0.png b/_images/notebooks_processor_17_0.png new file mode 100644 index 000000000..7992cdb66 Binary files /dev/null and b/_images/notebooks_processor_17_0.png differ diff --git a/_images/notebooks_processor_18_0.png b/_images/notebooks_processor_18_0.png new file mode 100644 index 000000000..32c969b0a Binary files /dev/null and b/_images/notebooks_processor_18_0.png differ diff --git a/_images/notebooks_processor_19_1.png b/_images/notebooks_processor_19_1.png new file mode 100644 index 000000000..eb6e6135c Binary files /dev/null and b/_images/notebooks_processor_19_1.png differ diff --git a/_images/notebooks_processor_20_0.png b/_images/notebooks_processor_20_0.png new file mode 100644 index 000000000..b8216572c Binary files /dev/null and b/_images/notebooks_processor_20_0.png differ diff --git a/_images/notebooks_processor_21_0.png b/_images/notebooks_processor_21_0.png new file mode 100644 index 000000000..b5cd2181c Binary files /dev/null and b/_images/notebooks_processor_21_0.png differ diff --git a/_images/notebooks_processor_4_1.png b/_images/notebooks_processor_4_1.png new file mode 100644 index 000000000..0c8667339 Binary files /dev/null and b/_images/notebooks_processor_4_1.png differ diff --git a/_images/notebooks_processor_9_1.png b/_images/notebooks_processor_9_1.png new file mode 100644 index 000000000..dfcaa1864 Binary files /dev/null and b/_images/notebooks_processor_9_1.png differ diff --git a/_sources/api/coffea.analysis_tools.Cutflow.rst.txt b/_sources/api/coffea.analysis_tools.Cutflow.rst.txt new file mode 100644 index 000000000..633bddbd6 --- /dev/null +++ b/_sources/api/coffea.analysis_tools.Cutflow.rst.txt @@ -0,0 +1,25 @@ +Cutflow +======= + +.. currentmodule:: coffea.analysis_tools + +.. autoclass:: Cutflow + :show-inheritance: + + .. rubric:: Methods Summary + + .. autosummary:: + + ~Cutflow.plot_vars + ~Cutflow.print + ~Cutflow.result + ~Cutflow.to_npz + ~Cutflow.yieldhist + + .. rubric:: Methods Documentation + + .. automethod:: plot_vars + .. automethod:: print + .. automethod:: result + .. automethod:: to_npz + .. automethod:: yieldhist diff --git a/_sources/api/coffea.analysis_tools.CutflowToNpz.rst.txt b/_sources/api/coffea.analysis_tools.CutflowToNpz.rst.txt new file mode 100644 index 000000000..ebd8661f5 --- /dev/null +++ b/_sources/api/coffea.analysis_tools.CutflowToNpz.rst.txt @@ -0,0 +1,37 @@ +CutflowToNpz +============ + +.. currentmodule:: coffea.analysis_tools + +.. autoclass:: CutflowToNpz + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~CutflowToNpz.file + ~CutflowToNpz.labels + ~CutflowToNpz.maskscutflow + ~CutflowToNpz.masksonecut + ~CutflowToNpz.nevcutflow + ~CutflowToNpz.nevonecut + + .. rubric:: Methods Summary + + .. autosummary:: + + ~CutflowToNpz.compute + + .. rubric:: Attributes Documentation + + .. autoattribute:: file + .. autoattribute:: labels + .. autoattribute:: maskscutflow + .. autoattribute:: masksonecut + .. autoattribute:: nevcutflow + .. autoattribute:: nevonecut + + .. rubric:: Methods Documentation + + .. automethod:: compute diff --git a/_sources/api/coffea.analysis_tools.NminusOne.rst.txt b/_sources/api/coffea.analysis_tools.NminusOne.rst.txt new file mode 100644 index 000000000..5f4076645 --- /dev/null +++ b/_sources/api/coffea.analysis_tools.NminusOne.rst.txt @@ -0,0 +1,25 @@ +NminusOne +========= + +.. currentmodule:: coffea.analysis_tools + +.. autoclass:: NminusOne + :show-inheritance: + + .. rubric:: Methods Summary + + .. autosummary:: + + ~NminusOne.plot_vars + ~NminusOne.print + ~NminusOne.result + ~NminusOne.to_npz + ~NminusOne.yieldhist + + .. rubric:: Methods Documentation + + .. automethod:: plot_vars + .. automethod:: print + .. automethod:: result + .. automethod:: to_npz + .. automethod:: yieldhist diff --git a/_sources/api/coffea.analysis_tools.NminusOneToNpz.rst.txt b/_sources/api/coffea.analysis_tools.NminusOneToNpz.rst.txt new file mode 100644 index 000000000..c7ff4d4e4 --- /dev/null +++ b/_sources/api/coffea.analysis_tools.NminusOneToNpz.rst.txt @@ -0,0 +1,33 @@ +NminusOneToNpz +============== + +.. currentmodule:: coffea.analysis_tools + +.. autoclass:: NminusOneToNpz + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~NminusOneToNpz.file + ~NminusOneToNpz.labels + ~NminusOneToNpz.masks + ~NminusOneToNpz.nev + + .. rubric:: Methods Summary + + .. autosummary:: + + ~NminusOneToNpz.compute + + .. rubric:: Attributes Documentation + + .. autoattribute:: file + .. autoattribute:: labels + .. autoattribute:: masks + .. autoattribute:: nev + + .. rubric:: Methods Documentation + + .. automethod:: compute diff --git a/_sources/api/coffea.analysis_tools.PackedSelection.rst.txt b/_sources/api/coffea.analysis_tools.PackedSelection.rst.txt new file mode 100644 index 000000000..391a936b3 --- /dev/null +++ b/_sources/api/coffea.analysis_tools.PackedSelection.rst.txt @@ -0,0 +1,45 @@ +PackedSelection +=============== + +.. currentmodule:: coffea.analysis_tools + +.. autoclass:: PackedSelection + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~PackedSelection.delayed_mode + ~PackedSelection.maxitems + ~PackedSelection.names + + .. rubric:: Methods Summary + + .. autosummary:: + + ~PackedSelection.add + ~PackedSelection.add_multiple + ~PackedSelection.all + ~PackedSelection.allfalse + ~PackedSelection.any + ~PackedSelection.cutflow + ~PackedSelection.nminusone + ~PackedSelection.require + + .. rubric:: Attributes Documentation + + .. autoattribute:: delayed_mode + .. autoattribute:: maxitems + .. autoattribute:: names + + .. rubric:: Methods Documentation + + .. automethod:: add + .. automethod:: add_multiple + .. automethod:: all + .. automethod:: allfalse + .. automethod:: any + .. automethod:: cutflow + .. automethod:: nminusone + .. automethod:: require diff --git a/_sources/api/coffea.analysis_tools.WeightStatistics.rst.txt b/_sources/api/coffea.analysis_tools.WeightStatistics.rst.txt new file mode 100644 index 000000000..ff0f4fd13 --- /dev/null +++ b/_sources/api/coffea.analysis_tools.WeightStatistics.rst.txt @@ -0,0 +1,19 @@ +WeightStatistics +================ + +.. currentmodule:: coffea.analysis_tools + +.. autoclass:: WeightStatistics + :show-inheritance: + + .. rubric:: Methods Summary + + .. autosummary:: + + ~WeightStatistics.add + ~WeightStatistics.identity + + .. rubric:: Methods Documentation + + .. automethod:: add + .. automethod:: identity diff --git a/_sources/api/coffea.analysis_tools.Weights.rst.txt b/_sources/api/coffea.analysis_tools.Weights.rst.txt new file mode 100644 index 000000000..c79a6f44e --- /dev/null +++ b/_sources/api/coffea.analysis_tools.Weights.rst.txt @@ -0,0 +1,35 @@ +Weights +======= + +.. currentmodule:: coffea.analysis_tools + +.. autoclass:: Weights + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~Weights.variations + ~Weights.weightStatistics + + .. rubric:: Methods Summary + + .. autosummary:: + + ~Weights.add + ~Weights.add_multivariation + ~Weights.partial_weight + ~Weights.weight + + .. rubric:: Attributes Documentation + + .. autoattribute:: variations + .. autoattribute:: weightStatistics + + .. rubric:: Methods Documentation + + .. automethod:: add + .. automethod:: add_multivariation + .. automethod:: partial_weight + .. automethod:: weight diff --git a/_sources/api/coffea.btag_tools.BTagScaleFactor.rst.txt b/_sources/api/coffea.btag_tools.BTagScaleFactor.rst.txt new file mode 100644 index 000000000..1182cda65 --- /dev/null +++ b/_sources/api/coffea.btag_tools.BTagScaleFactor.rst.txt @@ -0,0 +1,43 @@ +BTagScaleFactor +=============== + +.. currentmodule:: coffea.btag_tools + +.. autoclass:: BTagScaleFactor + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~BTagScaleFactor.FLAV_B + ~BTagScaleFactor.FLAV_C + ~BTagScaleFactor.FLAV_UDSG + ~BTagScaleFactor.LOOSE + ~BTagScaleFactor.MEDIUM + ~BTagScaleFactor.RESHAPE + ~BTagScaleFactor.TIGHT + + .. rubric:: Methods Summary + + .. autosummary:: + + ~BTagScaleFactor.__call__ + ~BTagScaleFactor.eval + ~BTagScaleFactor.readcsv + + .. rubric:: Attributes Documentation + + .. autoattribute:: FLAV_B + .. autoattribute:: FLAV_C + .. autoattribute:: FLAV_UDSG + .. autoattribute:: LOOSE + .. autoattribute:: MEDIUM + .. autoattribute:: RESHAPE + .. autoattribute:: TIGHT + + .. rubric:: Methods Documentation + + .. automethod:: __call__ + .. automethod:: eval + .. automethod:: readcsv diff --git a/_sources/api/coffea.dataset_tools.apply_to_dataset.rst.txt b/_sources/api/coffea.dataset_tools.apply_to_dataset.rst.txt new file mode 100644 index 000000000..318118c89 --- /dev/null +++ b/_sources/api/coffea.dataset_tools.apply_to_dataset.rst.txt @@ -0,0 +1,6 @@ +apply_to_dataset +================ + +.. currentmodule:: coffea.dataset_tools + +.. autofunction:: apply_to_dataset diff --git a/_sources/api/coffea.dataset_tools.apply_to_fileset.rst.txt b/_sources/api/coffea.dataset_tools.apply_to_fileset.rst.txt new file mode 100644 index 000000000..e94fde648 --- /dev/null +++ b/_sources/api/coffea.dataset_tools.apply_to_fileset.rst.txt @@ -0,0 +1,6 @@ +apply_to_fileset +================ + +.. currentmodule:: coffea.dataset_tools + +.. autofunction:: apply_to_fileset diff --git a/_sources/api/coffea.dataset_tools.filter_files.rst.txt b/_sources/api/coffea.dataset_tools.filter_files.rst.txt new file mode 100644 index 000000000..fcc0093ed --- /dev/null +++ b/_sources/api/coffea.dataset_tools.filter_files.rst.txt @@ -0,0 +1,6 @@ +filter_files +============ + +.. currentmodule:: coffea.dataset_tools + +.. autofunction:: filter_files diff --git a/_sources/api/coffea.dataset_tools.get_failed_steps_for_dataset.rst.txt b/_sources/api/coffea.dataset_tools.get_failed_steps_for_dataset.rst.txt new file mode 100644 index 000000000..e32873130 --- /dev/null +++ b/_sources/api/coffea.dataset_tools.get_failed_steps_for_dataset.rst.txt @@ -0,0 +1,6 @@ +get_failed_steps_for_dataset +============================ + +.. currentmodule:: coffea.dataset_tools + +.. autofunction:: get_failed_steps_for_dataset diff --git a/_sources/api/coffea.dataset_tools.get_failed_steps_for_fileset.rst.txt b/_sources/api/coffea.dataset_tools.get_failed_steps_for_fileset.rst.txt new file mode 100644 index 000000000..6c274831e --- /dev/null +++ b/_sources/api/coffea.dataset_tools.get_failed_steps_for_fileset.rst.txt @@ -0,0 +1,6 @@ +get_failed_steps_for_fileset +============================ + +.. currentmodule:: coffea.dataset_tools + +.. autofunction:: get_failed_steps_for_fileset diff --git a/_sources/api/coffea.dataset_tools.max_chunks.rst.txt b/_sources/api/coffea.dataset_tools.max_chunks.rst.txt new file mode 100644 index 000000000..3d0390029 --- /dev/null +++ b/_sources/api/coffea.dataset_tools.max_chunks.rst.txt @@ -0,0 +1,6 @@ +max_chunks +========== + +.. currentmodule:: coffea.dataset_tools + +.. autofunction:: max_chunks diff --git a/_sources/api/coffea.dataset_tools.max_files.rst.txt b/_sources/api/coffea.dataset_tools.max_files.rst.txt new file mode 100644 index 000000000..8cf40dc29 --- /dev/null +++ b/_sources/api/coffea.dataset_tools.max_files.rst.txt @@ -0,0 +1,6 @@ +max_files +========= + +.. currentmodule:: coffea.dataset_tools + +.. autofunction:: max_files diff --git a/_sources/api/coffea.dataset_tools.preprocess.rst.txt b/_sources/api/coffea.dataset_tools.preprocess.rst.txt new file mode 100644 index 000000000..6207ee828 --- /dev/null +++ b/_sources/api/coffea.dataset_tools.preprocess.rst.txt @@ -0,0 +1,6 @@ +preprocess +========== + +.. currentmodule:: coffea.dataset_tools + +.. autofunction:: preprocess diff --git a/_sources/api/coffea.dataset_tools.slice_chunks.rst.txt b/_sources/api/coffea.dataset_tools.slice_chunks.rst.txt new file mode 100644 index 000000000..19828ff87 --- /dev/null +++ b/_sources/api/coffea.dataset_tools.slice_chunks.rst.txt @@ -0,0 +1,6 @@ +slice_chunks +============ + +.. currentmodule:: coffea.dataset_tools + +.. autofunction:: slice_chunks diff --git a/_sources/api/coffea.dataset_tools.slice_files.rst.txt b/_sources/api/coffea.dataset_tools.slice_files.rst.txt new file mode 100644 index 000000000..d41399546 --- /dev/null +++ b/_sources/api/coffea.dataset_tools.slice_files.rst.txt @@ -0,0 +1,6 @@ +slice_files +=========== + +.. currentmodule:: coffea.dataset_tools + +.. autofunction:: slice_files diff --git a/_sources/api/coffea.jetmet_tools.CorrectedJetsFactory.rst.txt b/_sources/api/coffea.jetmet_tools.CorrectedJetsFactory.rst.txt new file mode 100644 index 000000000..d6436eb59 --- /dev/null +++ b/_sources/api/coffea.jetmet_tools.CorrectedJetsFactory.rst.txt @@ -0,0 +1,19 @@ +CorrectedJetsFactory +==================== + +.. currentmodule:: coffea.jetmet_tools + +.. autoclass:: CorrectedJetsFactory + :show-inheritance: + + .. rubric:: Methods Summary + + .. autosummary:: + + ~CorrectedJetsFactory.build + ~CorrectedJetsFactory.uncertainties + + .. rubric:: Methods Documentation + + .. automethod:: build + .. automethod:: uncertainties diff --git a/_sources/api/coffea.jetmet_tools.CorrectedMETFactory.rst.txt b/_sources/api/coffea.jetmet_tools.CorrectedMETFactory.rst.txt new file mode 100644 index 000000000..bf78a2807 --- /dev/null +++ b/_sources/api/coffea.jetmet_tools.CorrectedMETFactory.rst.txt @@ -0,0 +1,19 @@ +CorrectedMETFactory +=================== + +.. currentmodule:: coffea.jetmet_tools + +.. autoclass:: CorrectedMETFactory + :show-inheritance: + + .. rubric:: Methods Summary + + .. autosummary:: + + ~CorrectedMETFactory.build + ~CorrectedMETFactory.uncertainties + + .. rubric:: Methods Documentation + + .. automethod:: build + .. automethod:: uncertainties diff --git a/_sources/api/coffea.jetmet_tools.FactorizedJetCorrector.rst.txt b/_sources/api/coffea.jetmet_tools.FactorizedJetCorrector.rst.txt new file mode 100644 index 000000000..24779e3a1 --- /dev/null +++ b/_sources/api/coffea.jetmet_tools.FactorizedJetCorrector.rst.txt @@ -0,0 +1,29 @@ +FactorizedJetCorrector +====================== + +.. currentmodule:: coffea.jetmet_tools + +.. autoclass:: FactorizedJetCorrector + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~FactorizedJetCorrector.signature + + .. rubric:: Methods Summary + + .. autosummary:: + + ~FactorizedJetCorrector.getCorrection + ~FactorizedJetCorrector.getSubCorrections + + .. rubric:: Attributes Documentation + + .. autoattribute:: signature + + .. rubric:: Methods Documentation + + .. automethod:: getCorrection + .. automethod:: getSubCorrections diff --git a/_sources/api/coffea.jetmet_tools.JECStack.rst.txt b/_sources/api/coffea.jetmet_tools.JECStack.rst.txt new file mode 100644 index 000000000..8752a81da --- /dev/null +++ b/_sources/api/coffea.jetmet_tools.JECStack.rst.txt @@ -0,0 +1,25 @@ +JECStack +======== + +.. currentmodule:: coffea.jetmet_tools + +.. autoclass:: JECStack + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~JECStack.blank_name_map + ~JECStack.jec + ~JECStack.jer + ~JECStack.jersf + ~JECStack.junc + + .. rubric:: Attributes Documentation + + .. autoattribute:: blank_name_map + .. autoattribute:: jec + .. autoattribute:: jer + .. autoattribute:: jersf + .. autoattribute:: junc diff --git a/_sources/api/coffea.jetmet_tools.JetCorrectionUncertainty.rst.txt b/_sources/api/coffea.jetmet_tools.JetCorrectionUncertainty.rst.txt new file mode 100644 index 000000000..118f5ffcc --- /dev/null +++ b/_sources/api/coffea.jetmet_tools.JetCorrectionUncertainty.rst.txt @@ -0,0 +1,29 @@ +JetCorrectionUncertainty +======================== + +.. currentmodule:: coffea.jetmet_tools + +.. autoclass:: JetCorrectionUncertainty + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~JetCorrectionUncertainty.levels + ~JetCorrectionUncertainty.signature + + .. rubric:: Methods Summary + + .. autosummary:: + + ~JetCorrectionUncertainty.getUncertainty + + .. rubric:: Attributes Documentation + + .. autoattribute:: levels + .. autoattribute:: signature + + .. rubric:: Methods Documentation + + .. automethod:: getUncertainty diff --git a/_sources/api/coffea.jetmet_tools.JetResolution.rst.txt b/_sources/api/coffea.jetmet_tools.JetResolution.rst.txt new file mode 100644 index 000000000..7c8cb1837 --- /dev/null +++ b/_sources/api/coffea.jetmet_tools.JetResolution.rst.txt @@ -0,0 +1,27 @@ +JetResolution +============= + +.. currentmodule:: coffea.jetmet_tools + +.. autoclass:: JetResolution + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~JetResolution.signature + + .. rubric:: Methods Summary + + .. autosummary:: + + ~JetResolution.getResolution + + .. rubric:: Attributes Documentation + + .. autoattribute:: signature + + .. rubric:: Methods Documentation + + .. automethod:: getResolution diff --git a/_sources/api/coffea.jetmet_tools.JetResolutionScaleFactor.rst.txt b/_sources/api/coffea.jetmet_tools.JetResolutionScaleFactor.rst.txt new file mode 100644 index 000000000..8fa56b265 --- /dev/null +++ b/_sources/api/coffea.jetmet_tools.JetResolutionScaleFactor.rst.txt @@ -0,0 +1,27 @@ +JetResolutionScaleFactor +======================== + +.. currentmodule:: coffea.jetmet_tools + +.. autoclass:: JetResolutionScaleFactor + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~JetResolutionScaleFactor.signature + + .. rubric:: Methods Summary + + .. autosummary:: + + ~JetResolutionScaleFactor.getScaleFactor + + .. rubric:: Attributes Documentation + + .. autoattribute:: signature + + .. rubric:: Methods Documentation + + .. automethod:: getScaleFactor diff --git a/_sources/api/coffea.lookup_tools.evaluator.rst.txt b/_sources/api/coffea.lookup_tools.evaluator.rst.txt new file mode 100644 index 000000000..25defedb5 --- /dev/null +++ b/_sources/api/coffea.lookup_tools.evaluator.rst.txt @@ -0,0 +1,17 @@ +evaluator +========= + +.. currentmodule:: coffea.lookup_tools + +.. autoclass:: evaluator + :show-inheritance: + + .. rubric:: Methods Summary + + .. autosummary:: + + ~evaluator.keys + + .. rubric:: Methods Documentation + + .. automethod:: keys diff --git a/_sources/api/coffea.lookup_tools.extractor.rst.txt b/_sources/api/coffea.lookup_tools.extractor.rst.txt new file mode 100644 index 000000000..289f65da1 --- /dev/null +++ b/_sources/api/coffea.lookup_tools.extractor.rst.txt @@ -0,0 +1,27 @@ +extractor +========= + +.. currentmodule:: coffea.lookup_tools + +.. autoclass:: extractor + :show-inheritance: + + .. rubric:: Methods Summary + + .. autosummary:: + + ~extractor.add_weight_set + ~extractor.add_weight_sets + ~extractor.extract_from_file + ~extractor.finalize + ~extractor.import_file + ~extractor.make_evaluator + + .. rubric:: Methods Documentation + + .. automethod:: add_weight_set + .. automethod:: add_weight_sets + .. automethod:: extract_from_file + .. automethod:: finalize + .. automethod:: import_file + .. automethod:: make_evaluator diff --git a/_sources/api/coffea.lumi_tools.LumiData.rst.txt b/_sources/api/coffea.lumi_tools.LumiData.rst.txt new file mode 100644 index 000000000..1f3ea010d --- /dev/null +++ b/_sources/api/coffea.lumi_tools.LumiData.rst.txt @@ -0,0 +1,27 @@ +LumiData +======== + +.. currentmodule:: coffea.lumi_tools + +.. autoclass:: LumiData + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~LumiData.seconds_per_lumi_LHC + + .. rubric:: Methods Summary + + .. autosummary:: + + ~LumiData.get_lumi + + .. rubric:: Attributes Documentation + + .. autoattribute:: seconds_per_lumi_LHC + + .. rubric:: Methods Documentation + + .. automethod:: get_lumi diff --git a/_sources/api/coffea.lumi_tools.LumiList.rst.txt b/_sources/api/coffea.lumi_tools.LumiList.rst.txt new file mode 100644 index 000000000..a46d5904e --- /dev/null +++ b/_sources/api/coffea.lumi_tools.LumiList.rst.txt @@ -0,0 +1,17 @@ +LumiList +======== + +.. currentmodule:: coffea.lumi_tools + +.. autoclass:: LumiList + :show-inheritance: + + .. rubric:: Methods Summary + + .. autosummary:: + + ~LumiList.clear + + .. rubric:: Methods Documentation + + .. automethod:: clear diff --git a/_sources/api/coffea.lumi_tools.LumiMask.rst.txt b/_sources/api/coffea.lumi_tools.LumiMask.rst.txt new file mode 100644 index 000000000..246cd5670 --- /dev/null +++ b/_sources/api/coffea.lumi_tools.LumiMask.rst.txt @@ -0,0 +1,17 @@ +LumiMask +======== + +.. currentmodule:: coffea.lumi_tools + +.. autoclass:: LumiMask + :show-inheritance: + + .. rubric:: Methods Summary + + .. autosummary:: + + ~LumiMask.__call__ + + .. rubric:: Methods Documentation + + .. automethod:: __call__ diff --git a/_sources/api/coffea.ml_tools.numpy_call_wrapper.rst.txt b/_sources/api/coffea.ml_tools.numpy_call_wrapper.rst.txt new file mode 100644 index 000000000..b7cf90fcd --- /dev/null +++ b/_sources/api/coffea.ml_tools.numpy_call_wrapper.rst.txt @@ -0,0 +1,27 @@ +numpy_call_wrapper +================== + +.. currentmodule:: coffea.ml_tools + +.. autoclass:: numpy_call_wrapper + :show-inheritance: + + .. rubric:: Methods Summary + + .. autosummary:: + + ~numpy_call_wrapper.__call__ + ~numpy_call_wrapper.get_awkward_lib + ~numpy_call_wrapper.numpy_call + ~numpy_call_wrapper.postprocess_awkward + ~numpy_call_wrapper.prepare_awkward + ~numpy_call_wrapper.validate_numpy_input + + .. rubric:: Methods Documentation + + .. automethod:: __call__ + .. automethod:: get_awkward_lib + .. automethod:: numpy_call + .. automethod:: postprocess_awkward + .. automethod:: prepare_awkward + .. automethod:: validate_numpy_input diff --git a/_sources/api/coffea.ml_tools.tf_wrapper.rst.txt b/_sources/api/coffea.ml_tools.tf_wrapper.rst.txt new file mode 100644 index 000000000..ea1c28ba4 --- /dev/null +++ b/_sources/api/coffea.ml_tools.tf_wrapper.rst.txt @@ -0,0 +1,19 @@ +tf_wrapper +========== + +.. currentmodule:: coffea.ml_tools + +.. autoclass:: tf_wrapper + :show-inheritance: + + .. rubric:: Methods Summary + + .. autosummary:: + + ~tf_wrapper.numpy_call + ~tf_wrapper.validate_numpy_input + + .. rubric:: Methods Documentation + + .. automethod:: numpy_call + .. automethod:: validate_numpy_input diff --git a/_sources/api/coffea.ml_tools.torch_wrapper.rst.txt b/_sources/api/coffea.ml_tools.torch_wrapper.rst.txt new file mode 100644 index 000000000..c3fdcee4e --- /dev/null +++ b/_sources/api/coffea.ml_tools.torch_wrapper.rst.txt @@ -0,0 +1,19 @@ +torch_wrapper +============= + +.. currentmodule:: coffea.ml_tools + +.. autoclass:: torch_wrapper + :show-inheritance: + + .. rubric:: Methods Summary + + .. autosummary:: + + ~torch_wrapper.numpy_call + ~torch_wrapper.validate_numpy_input + + .. rubric:: Methods Documentation + + .. automethod:: numpy_call + .. automethod:: validate_numpy_input diff --git a/_sources/api/coffea.ml_tools.triton_wrapper.rst.txt b/_sources/api/coffea.ml_tools.triton_wrapper.rst.txt new file mode 100644 index 000000000..00523f928 --- /dev/null +++ b/_sources/api/coffea.ml_tools.triton_wrapper.rst.txt @@ -0,0 +1,37 @@ +triton_wrapper +============== + +.. currentmodule:: coffea.ml_tools + +.. autoclass:: triton_wrapper + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~triton_wrapper.batch_size + ~triton_wrapper.batch_size_fallback + ~triton_wrapper.client_args + ~triton_wrapper.http_client_concurrency + ~triton_wrapper.pmod + + .. rubric:: Methods Summary + + .. autosummary:: + + ~triton_wrapper.numpy_call + ~triton_wrapper.validate_numpy_input + + .. rubric:: Attributes Documentation + + .. autoattribute:: batch_size + .. autoattribute:: batch_size_fallback + .. autoattribute:: client_args + .. autoattribute:: http_client_concurrency + .. autoattribute:: pmod + + .. rubric:: Methods Documentation + + .. automethod:: numpy_call + .. automethod:: validate_numpy_input diff --git a/_sources/api/coffea.ml_tools.xgboost_wrapper.rst.txt b/_sources/api/coffea.ml_tools.xgboost_wrapper.rst.txt new file mode 100644 index 000000000..aeebca065 --- /dev/null +++ b/_sources/api/coffea.ml_tools.xgboost_wrapper.rst.txt @@ -0,0 +1,19 @@ +xgboost_wrapper +=============== + +.. currentmodule:: coffea.ml_tools + +.. autoclass:: xgboost_wrapper + :show-inheritance: + + .. rubric:: Methods Summary + + .. autosummary:: + + ~xgboost_wrapper.numpy_call + ~xgboost_wrapper.validate_numpy_input + + .. rubric:: Methods Documentation + + .. automethod:: numpy_call + .. automethod:: validate_numpy_input diff --git a/_sources/api/coffea.nanoevents.BaseSchema.rst.txt b/_sources/api/coffea.nanoevents.BaseSchema.rst.txt new file mode 100644 index 000000000..eaea0fa43 --- /dev/null +++ b/_sources/api/coffea.nanoevents.BaseSchema.rst.txt @@ -0,0 +1,27 @@ +BaseSchema +========== + +.. currentmodule:: coffea.nanoevents + +.. autoclass:: BaseSchema + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~BaseSchema.form + + .. rubric:: Methods Summary + + .. autosummary:: + + ~BaseSchema.behavior + + .. rubric:: Attributes Documentation + + .. autoattribute:: form + + .. rubric:: Methods Documentation + + .. automethod:: behavior diff --git a/_sources/api/coffea.nanoevents.DelphesSchema.rst.txt b/_sources/api/coffea.nanoevents.DelphesSchema.rst.txt new file mode 100644 index 000000000..5b3973dd2 --- /dev/null +++ b/_sources/api/coffea.nanoevents.DelphesSchema.rst.txt @@ -0,0 +1,35 @@ +DelphesSchema +============= + +.. currentmodule:: coffea.nanoevents + +.. autoclass:: DelphesSchema + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~DelphesSchema.docstrings + ~DelphesSchema.mixins + ~DelphesSchema.singletons + ~DelphesSchema.warn_missing_crossrefs + + .. rubric:: Methods Summary + + .. autosummary:: + + ~DelphesSchema.behavior + ~DelphesSchema.v1 + + .. rubric:: Attributes Documentation + + .. autoattribute:: docstrings + .. autoattribute:: mixins + .. autoattribute:: singletons + .. autoattribute:: warn_missing_crossrefs + + .. rubric:: Methods Documentation + + .. automethod:: behavior + .. automethod:: v1 diff --git a/_sources/api/coffea.nanoevents.NanoAODSchema.rst.txt b/_sources/api/coffea.nanoevents.NanoAODSchema.rst.txt new file mode 100644 index 000000000..c22427db2 --- /dev/null +++ b/_sources/api/coffea.nanoevents.NanoAODSchema.rst.txt @@ -0,0 +1,47 @@ +NanoAODSchema +============= + +.. currentmodule:: coffea.nanoevents + +.. autoclass:: NanoAODSchema + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~NanoAODSchema.all_cross_references + ~NanoAODSchema.error_missing_event_ids + ~NanoAODSchema.event_ids + ~NanoAODSchema.mixins + ~NanoAODSchema.nested_index_items + ~NanoAODSchema.nested_items + ~NanoAODSchema.special_items + ~NanoAODSchema.warn_missing_crossrefs + + .. rubric:: Methods Summary + + .. autosummary:: + + ~NanoAODSchema.behavior + ~NanoAODSchema.v5 + ~NanoAODSchema.v6 + ~NanoAODSchema.v7 + + .. rubric:: Attributes Documentation + + .. autoattribute:: all_cross_references + .. autoattribute:: error_missing_event_ids + .. autoattribute:: event_ids + .. autoattribute:: mixins + .. autoattribute:: nested_index_items + .. autoattribute:: nested_items + .. autoattribute:: special_items + .. autoattribute:: warn_missing_crossrefs + + .. rubric:: Methods Documentation + + .. automethod:: behavior + .. automethod:: v5 + .. automethod:: v6 + .. automethod:: v7 diff --git a/_sources/api/coffea.nanoevents.NanoEventsFactory.rst.txt b/_sources/api/coffea.nanoevents.NanoEventsFactory.rst.txt new file mode 100644 index 000000000..988689343 --- /dev/null +++ b/_sources/api/coffea.nanoevents.NanoEventsFactory.rst.txt @@ -0,0 +1,23 @@ +NanoEventsFactory +================= + +.. currentmodule:: coffea.nanoevents + +.. autoclass:: NanoEventsFactory + :show-inheritance: + + .. rubric:: Methods Summary + + .. autosummary:: + + ~NanoEventsFactory.events + ~NanoEventsFactory.from_parquet + ~NanoEventsFactory.from_preloaded + ~NanoEventsFactory.from_root + + .. rubric:: Methods Documentation + + .. automethod:: events + .. automethod:: from_parquet + .. automethod:: from_preloaded + .. automethod:: from_root diff --git a/_sources/api/coffea.nanoevents.PDUNESchema.rst.txt b/_sources/api/coffea.nanoevents.PDUNESchema.rst.txt new file mode 100644 index 000000000..e37af8f03 --- /dev/null +++ b/_sources/api/coffea.nanoevents.PDUNESchema.rst.txt @@ -0,0 +1,29 @@ +PDUNESchema +=========== + +.. currentmodule:: coffea.nanoevents + +.. autoclass:: PDUNESchema + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~PDUNESchema.mixins + ~PDUNESchema.top_objects + + .. rubric:: Methods Summary + + .. autosummary:: + + ~PDUNESchema.behavior + + .. rubric:: Attributes Documentation + + .. autoattribute:: mixins + .. autoattribute:: top_objects + + .. rubric:: Methods Documentation + + .. automethod:: behavior diff --git a/_sources/api/coffea.nanoevents.PFNanoAODSchema.rst.txt b/_sources/api/coffea.nanoevents.PFNanoAODSchema.rst.txt new file mode 100644 index 000000000..cc4613766 --- /dev/null +++ b/_sources/api/coffea.nanoevents.PFNanoAODSchema.rst.txt @@ -0,0 +1,19 @@ +PFNanoAODSchema +=============== + +.. currentmodule:: coffea.nanoevents + +.. autoclass:: PFNanoAODSchema + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~PFNanoAODSchema.all_cross_references + ~PFNanoAODSchema.mixins + + .. rubric:: Attributes Documentation + + .. autoattribute:: all_cross_references + .. autoattribute:: mixins diff --git a/_sources/api/coffea.nanoevents.PHYSLITESchema.rst.txt b/_sources/api/coffea.nanoevents.PHYSLITESchema.rst.txt new file mode 100644 index 000000000..a031536b7 --- /dev/null +++ b/_sources/api/coffea.nanoevents.PHYSLITESchema.rst.txt @@ -0,0 +1,29 @@ +PHYSLITESchema +============== + +.. currentmodule:: coffea.nanoevents + +.. autoclass:: PHYSLITESchema + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~PHYSLITESchema.mixins + ~PHYSLITESchema.truth_collections + + .. rubric:: Methods Summary + + .. autosummary:: + + ~PHYSLITESchema.behavior + + .. rubric:: Attributes Documentation + + .. autoattribute:: mixins + .. autoattribute:: truth_collections + + .. rubric:: Methods Documentation + + .. automethod:: behavior diff --git a/_sources/api/coffea.nanoevents.ScoutingNanoAODSchema.rst.txt b/_sources/api/coffea.nanoevents.ScoutingNanoAODSchema.rst.txt new file mode 100644 index 000000000..65d9117da --- /dev/null +++ b/_sources/api/coffea.nanoevents.ScoutingNanoAODSchema.rst.txt @@ -0,0 +1,19 @@ +ScoutingNanoAODSchema +===================== + +.. currentmodule:: coffea.nanoevents + +.. autoclass:: ScoutingNanoAODSchema + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~ScoutingNanoAODSchema.all_cross_references + ~ScoutingNanoAODSchema.mixins + + .. rubric:: Attributes Documentation + + .. autoattribute:: all_cross_references + .. autoattribute:: mixins diff --git a/_sources/api/coffea.nanoevents.TreeMakerSchema.rst.txt b/_sources/api/coffea.nanoevents.TreeMakerSchema.rst.txt new file mode 100644 index 000000000..4463998a7 --- /dev/null +++ b/_sources/api/coffea.nanoevents.TreeMakerSchema.rst.txt @@ -0,0 +1,19 @@ +TreeMakerSchema +=============== + +.. currentmodule:: coffea.nanoevents + +.. autoclass:: TreeMakerSchema + :show-inheritance: + + .. rubric:: Methods Summary + + .. autosummary:: + + ~TreeMakerSchema.behavior + ~TreeMakerSchema.uproot_writeable + + .. rubric:: Methods Documentation + + .. automethod:: behavior + .. automethod:: uproot_writeable diff --git a/_sources/api/coffea.nanoevents.methods.base.NanoCollection.rst.txt b/_sources/api/coffea.nanoevents.methods.base.NanoCollection.rst.txt new file mode 100644 index 000000000..f24cc86cc --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.base.NanoCollection.rst.txt @@ -0,0 +1,7 @@ +NanoCollection +============== + +.. currentmodule:: coffea.nanoevents.methods.base + +.. autoclass:: NanoCollection + :show-inheritance: diff --git a/_sources/api/coffea.nanoevents.methods.base.NanoEvents.rst.txt b/_sources/api/coffea.nanoevents.methods.base.NanoEvents.rst.txt new file mode 100644 index 000000000..bb859f50e --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.base.NanoEvents.rst.txt @@ -0,0 +1,17 @@ +NanoEvents +========== + +.. currentmodule:: coffea.nanoevents.methods.base + +.. autoclass:: NanoEvents + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~NanoEvents.metadata + + .. rubric:: Attributes Documentation + + .. autoattribute:: metadata diff --git a/_sources/api/coffea.nanoevents.methods.base.Systematic.rst.txt b/_sources/api/coffea.nanoevents.methods.base.Systematic.rst.txt new file mode 100644 index 000000000..089bdbbc3 --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.base.Systematic.rst.txt @@ -0,0 +1,33 @@ +Systematic +========== + +.. currentmodule:: coffea.nanoevents.methods.base + +.. autoclass:: Systematic + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~Systematic.systematics + + .. rubric:: Methods Summary + + .. autosummary:: + + ~Systematic.add_kind + ~Systematic.add_systematic + ~Systematic.describe_variations + ~Systematic.explodes_how + + .. rubric:: Attributes Documentation + + .. autoattribute:: systematics + + .. rubric:: Methods Documentation + + .. automethod:: add_kind + .. automethod:: add_systematic + .. automethod:: describe_variations + .. automethod:: explodes_how diff --git a/_sources/api/coffea.nanoevents.methods.candidate.Candidate.rst.txt b/_sources/api/coffea.nanoevents.methods.candidate.Candidate.rst.txt new file mode 100644 index 000000000..82a9e07ac --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.candidate.Candidate.rst.txt @@ -0,0 +1,19 @@ +Candidate +========= + +.. currentmodule:: coffea.nanoevents.methods.candidate + +.. autoclass:: Candidate + :show-inheritance: + + .. rubric:: Methods Summary + + .. autosummary:: + + ~Candidate.add + ~Candidate.sum + + .. rubric:: Methods Documentation + + .. automethod:: add + .. automethod:: sum diff --git a/_sources/api/coffea.nanoevents.methods.candidate.PtEtaPhiECandidate.rst.txt b/_sources/api/coffea.nanoevents.methods.candidate.PtEtaPhiECandidate.rst.txt new file mode 100644 index 000000000..ea68e773d --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.candidate.PtEtaPhiECandidate.rst.txt @@ -0,0 +1,7 @@ +PtEtaPhiECandidate +================== + +.. currentmodule:: coffea.nanoevents.methods.candidate + +.. autoclass:: PtEtaPhiECandidate + :show-inheritance: diff --git a/_sources/api/coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate.rst.txt b/_sources/api/coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate.rst.txt new file mode 100644 index 000000000..a8a8683f0 --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate.rst.txt @@ -0,0 +1,7 @@ +PtEtaPhiMCandidate +================== + +.. currentmodule:: coffea.nanoevents.methods.candidate + +.. autoclass:: PtEtaPhiMCandidate + :show-inheritance: diff --git a/_sources/api/coffea.nanoevents.methods.nanoaod.AssociatedPFCand.rst.txt b/_sources/api/coffea.nanoevents.methods.nanoaod.AssociatedPFCand.rst.txt new file mode 100644 index 000000000..011725bae --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.nanoaod.AssociatedPFCand.rst.txt @@ -0,0 +1,21 @@ +AssociatedPFCand +================ + +.. currentmodule:: coffea.nanoevents.methods.nanoaod + +.. autoclass:: AssociatedPFCand + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~AssociatedPFCand.collection_map + ~AssociatedPFCand.jet + ~AssociatedPFCand.pf + + .. rubric:: Attributes Documentation + + .. autoattribute:: collection_map + .. autoattribute:: jet + .. autoattribute:: pf diff --git a/_sources/api/coffea.nanoevents.methods.nanoaod.AssociatedSV.rst.txt b/_sources/api/coffea.nanoevents.methods.nanoaod.AssociatedSV.rst.txt new file mode 100644 index 000000000..8fd1e8d8a --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.nanoaod.AssociatedSV.rst.txt @@ -0,0 +1,21 @@ +AssociatedSV +============ + +.. currentmodule:: coffea.nanoevents.methods.nanoaod + +.. autoclass:: AssociatedSV + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~AssociatedSV.collection_map + ~AssociatedSV.jet + ~AssociatedSV.sv + + .. rubric:: Attributes Documentation + + .. autoattribute:: collection_map + .. autoattribute:: jet + .. autoattribute:: sv diff --git a/_sources/api/coffea.nanoevents.methods.nanoaod.Electron.rst.txt b/_sources/api/coffea.nanoevents.methods.nanoaod.Electron.rst.txt new file mode 100644 index 000000000..82548e4ab --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.nanoaod.Electron.rst.txt @@ -0,0 +1,39 @@ +Electron +======== + +.. currentmodule:: coffea.nanoevents.methods.nanoaod + +.. autoclass:: Electron + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~Electron.FAIL + ~Electron.LOOSE + ~Electron.MEDIUM + ~Electron.TIGHT + ~Electron.VETO + ~Electron.isLoose + ~Electron.isMedium + ~Electron.isTight + ~Electron.isVeto + ~Electron.matched_gen + ~Electron.matched_jet + ~Electron.matched_photon + + .. rubric:: Attributes Documentation + + .. autoattribute:: FAIL + .. autoattribute:: LOOSE + .. autoattribute:: MEDIUM + .. autoattribute:: TIGHT + .. autoattribute:: VETO + .. autoattribute:: isLoose + .. autoattribute:: isMedium + .. autoattribute:: isTight + .. autoattribute:: isVeto + .. autoattribute:: matched_gen + .. autoattribute:: matched_jet + .. autoattribute:: matched_photon diff --git a/_sources/api/coffea.nanoevents.methods.nanoaod.FatJet.rst.txt b/_sources/api/coffea.nanoevents.methods.nanoaod.FatJet.rst.txt new file mode 100644 index 000000000..4af50fe41 --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.nanoaod.FatJet.rst.txt @@ -0,0 +1,35 @@ +FatJet +====== + +.. currentmodule:: coffea.nanoevents.methods.nanoaod + +.. autoclass:: FatJet + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~FatJet.LOOSE + ~FatJet.TIGHT + ~FatJet.TIGHTLEPVETO + ~FatJet.charge + ~FatJet.constituents + ~FatJet.isLoose + ~FatJet.isTight + ~FatJet.isTightLeptonVeto + ~FatJet.matched_gen + ~FatJet.subjets + + .. rubric:: Attributes Documentation + + .. autoattribute:: LOOSE + .. autoattribute:: TIGHT + .. autoattribute:: TIGHTLEPVETO + .. autoattribute:: charge + .. autoattribute:: constituents + .. autoattribute:: isLoose + .. autoattribute:: isTight + .. autoattribute:: isTightLeptonVeto + .. autoattribute:: matched_gen + .. autoattribute:: subjets diff --git a/_sources/api/coffea.nanoevents.methods.nanoaod.FsrPhoton.rst.txt b/_sources/api/coffea.nanoevents.methods.nanoaod.FsrPhoton.rst.txt new file mode 100644 index 000000000..38897283c --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.nanoaod.FsrPhoton.rst.txt @@ -0,0 +1,17 @@ +FsrPhoton +========= + +.. currentmodule:: coffea.nanoevents.methods.nanoaod + +.. autoclass:: FsrPhoton + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~FsrPhoton.matched_muon + + .. rubric:: Attributes Documentation + + .. autoattribute:: matched_muon diff --git a/_sources/api/coffea.nanoevents.methods.nanoaod.GenParticle.rst.txt b/_sources/api/coffea.nanoevents.methods.nanoaod.GenParticle.rst.txt new file mode 100644 index 000000000..62d969dd1 --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.nanoaod.GenParticle.rst.txt @@ -0,0 +1,37 @@ +GenParticle +=========== + +.. currentmodule:: coffea.nanoevents.methods.nanoaod + +.. autoclass:: GenParticle + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~GenParticle.FLAGS + ~GenParticle.children + ~GenParticle.distinctChildren + ~GenParticle.distinctChildrenDeep + ~GenParticle.distinctParent + ~GenParticle.parent + + .. rubric:: Methods Summary + + .. autosummary:: + + ~GenParticle.hasFlags + + .. rubric:: Attributes Documentation + + .. autoattribute:: FLAGS + .. autoattribute:: children + .. autoattribute:: distinctChildren + .. autoattribute:: distinctChildrenDeep + .. autoattribute:: distinctParent + .. autoattribute:: parent + + .. rubric:: Methods Documentation + + .. automethod:: hasFlags diff --git a/_sources/api/coffea.nanoevents.methods.nanoaod.GenVisTau.rst.txt b/_sources/api/coffea.nanoevents.methods.nanoaod.GenVisTau.rst.txt new file mode 100644 index 000000000..eee00f588 --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.nanoaod.GenVisTau.rst.txt @@ -0,0 +1,17 @@ +GenVisTau +========= + +.. currentmodule:: coffea.nanoevents.methods.nanoaod + +.. autoclass:: GenVisTau + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~GenVisTau.parent + + .. rubric:: Attributes Documentation + + .. autoattribute:: parent diff --git a/_sources/api/coffea.nanoevents.methods.nanoaod.Jet.rst.txt b/_sources/api/coffea.nanoevents.methods.nanoaod.Jet.rst.txt new file mode 100644 index 000000000..6d9580793 --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.nanoaod.Jet.rst.txt @@ -0,0 +1,37 @@ +Jet +=== + +.. currentmodule:: coffea.nanoevents.methods.nanoaod + +.. autoclass:: Jet + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~Jet.LOOSE + ~Jet.TIGHT + ~Jet.TIGHTLEPVETO + ~Jet.charge + ~Jet.constituents + ~Jet.isLoose + ~Jet.isTight + ~Jet.isTightLeptonVeto + ~Jet.matched_electrons + ~Jet.matched_gen + ~Jet.matched_muons + + .. rubric:: Attributes Documentation + + .. autoattribute:: LOOSE + .. autoattribute:: TIGHT + .. autoattribute:: TIGHTLEPVETO + .. autoattribute:: charge + .. autoattribute:: constituents + .. autoattribute:: isLoose + .. autoattribute:: isTight + .. autoattribute:: isTightLeptonVeto + .. autoattribute:: matched_electrons + .. autoattribute:: matched_gen + .. autoattribute:: matched_muons diff --git a/_sources/api/coffea.nanoevents.methods.nanoaod.LowPtElectron.rst.txt b/_sources/api/coffea.nanoevents.methods.nanoaod.LowPtElectron.rst.txt new file mode 100644 index 000000000..43e656399 --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.nanoaod.LowPtElectron.rst.txt @@ -0,0 +1,21 @@ +LowPtElectron +============= + +.. currentmodule:: coffea.nanoevents.methods.nanoaod + +.. autoclass:: LowPtElectron + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~LowPtElectron.matched_electron + ~LowPtElectron.matched_gen + ~LowPtElectron.matched_photon + + .. rubric:: Attributes Documentation + + .. autoattribute:: matched_electron + .. autoattribute:: matched_gen + .. autoattribute:: matched_photon diff --git a/_sources/api/coffea.nanoevents.methods.nanoaod.MissingET.rst.txt b/_sources/api/coffea.nanoevents.methods.nanoaod.MissingET.rst.txt new file mode 100644 index 000000000..1ea3476de --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.nanoaod.MissingET.rst.txt @@ -0,0 +1,17 @@ +MissingET +========= + +.. currentmodule:: coffea.nanoevents.methods.nanoaod + +.. autoclass:: MissingET + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~MissingET.r + + .. rubric:: Attributes Documentation + + .. autoattribute:: r diff --git a/_sources/api/coffea.nanoevents.methods.nanoaod.Muon.rst.txt b/_sources/api/coffea.nanoevents.methods.nanoaod.Muon.rst.txt new file mode 100644 index 000000000..66819f046 --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.nanoaod.Muon.rst.txt @@ -0,0 +1,21 @@ +Muon +==== + +.. currentmodule:: coffea.nanoevents.methods.nanoaod + +.. autoclass:: Muon + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~Muon.matched_fsrPhoton + ~Muon.matched_gen + ~Muon.matched_jet + + .. rubric:: Attributes Documentation + + .. autoattribute:: matched_fsrPhoton + .. autoattribute:: matched_gen + .. autoattribute:: matched_jet diff --git a/_sources/api/coffea.nanoevents.methods.nanoaod.PFCand.rst.txt b/_sources/api/coffea.nanoevents.methods.nanoaod.PFCand.rst.txt new file mode 100644 index 000000000..101175d7b --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.nanoaod.PFCand.rst.txt @@ -0,0 +1,7 @@ +PFCand +====== + +.. currentmodule:: coffea.nanoevents.methods.nanoaod + +.. autoclass:: PFCand + :show-inheritance: diff --git a/_sources/api/coffea.nanoevents.methods.nanoaod.Photon.rst.txt b/_sources/api/coffea.nanoevents.methods.nanoaod.Photon.rst.txt new file mode 100644 index 000000000..27d739414 --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.nanoaod.Photon.rst.txt @@ -0,0 +1,39 @@ +Photon +====== + +.. currentmodule:: coffea.nanoevents.methods.nanoaod + +.. autoclass:: Photon + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~Photon.FAIL + ~Photon.LOOSE + ~Photon.MEDIUM + ~Photon.TIGHT + ~Photon.charge + ~Photon.isLoose + ~Photon.isMedium + ~Photon.isTight + ~Photon.mass + ~Photon.matched_electron + ~Photon.matched_gen + ~Photon.matched_jet + + .. rubric:: Attributes Documentation + + .. autoattribute:: FAIL + .. autoattribute:: LOOSE + .. autoattribute:: MEDIUM + .. autoattribute:: TIGHT + .. autoattribute:: charge + .. autoattribute:: isLoose + .. autoattribute:: isMedium + .. autoattribute:: isTight + .. autoattribute:: mass + .. autoattribute:: matched_electron + .. autoattribute:: matched_gen + .. autoattribute:: matched_jet diff --git a/_sources/api/coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection.rst.txt b/_sources/api/coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection.rst.txt new file mode 100644 index 000000000..b01255ed6 --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection.rst.txt @@ -0,0 +1,7 @@ +PtEtaPhiMCollection +=================== + +.. currentmodule:: coffea.nanoevents.methods.nanoaod + +.. autoclass:: PtEtaPhiMCollection + :show-inheritance: diff --git a/_sources/api/coffea.nanoevents.methods.nanoaod.SecondaryVertex.rst.txt b/_sources/api/coffea.nanoevents.methods.nanoaod.SecondaryVertex.rst.txt new file mode 100644 index 000000000..c1736b7b8 --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.nanoaod.SecondaryVertex.rst.txt @@ -0,0 +1,17 @@ +SecondaryVertex +=============== + +.. currentmodule:: coffea.nanoevents.methods.nanoaod + +.. autoclass:: SecondaryVertex + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~SecondaryVertex.p4 + + .. rubric:: Attributes Documentation + + .. autoattribute:: p4 diff --git a/_sources/api/coffea.nanoevents.methods.nanoaod.Tau.rst.txt b/_sources/api/coffea.nanoevents.methods.nanoaod.Tau.rst.txt new file mode 100644 index 000000000..de413892f --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.nanoaod.Tau.rst.txt @@ -0,0 +1,19 @@ +Tau +=== + +.. currentmodule:: coffea.nanoevents.methods.nanoaod + +.. autoclass:: Tau + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~Tau.matched_gen + ~Tau.matched_jet + + .. rubric:: Attributes Documentation + + .. autoattribute:: matched_gen + .. autoattribute:: matched_jet diff --git a/_sources/api/coffea.nanoevents.methods.nanoaod.Vertex.rst.txt b/_sources/api/coffea.nanoevents.methods.nanoaod.Vertex.rst.txt new file mode 100644 index 000000000..45e3845db --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.nanoaod.Vertex.rst.txt @@ -0,0 +1,17 @@ +Vertex +====== + +.. currentmodule:: coffea.nanoevents.methods.nanoaod + +.. autoclass:: Vertex + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~Vertex.pos + + .. rubric:: Attributes Documentation + + .. autoattribute:: pos diff --git a/_sources/api/coffea.nanoevents.methods.vector.LorentzVector.rst.txt b/_sources/api/coffea.nanoevents.methods.vector.LorentzVector.rst.txt new file mode 100644 index 000000000..1522d8d5c --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.vector.LorentzVector.rst.txt @@ -0,0 +1,47 @@ +LorentzVector +============= + +.. currentmodule:: coffea.nanoevents.methods.vector + +.. autoclass:: LorentzVector + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~LorentzVector.boostvec + ~LorentzVector.metric_table + ~LorentzVector.nearest + ~LorentzVector.pvec + + .. rubric:: Methods Summary + + .. autosummary:: + + ~LorentzVector.absolute + ~LorentzVector.delta_phi + ~LorentzVector.delta_r + ~LorentzVector.delta_r2 + ~LorentzVector.divide + ~LorentzVector.multiply + ~LorentzVector.negative + ~LorentzVector.sum + + .. rubric:: Attributes Documentation + + .. autoattribute:: boostvec + .. autoattribute:: metric_table + .. autoattribute:: nearest + .. autoattribute:: pvec + + .. rubric:: Methods Documentation + + .. automethod:: absolute + .. automethod:: delta_phi + .. automethod:: delta_r + .. automethod:: delta_r2 + .. automethod:: divide + .. automethod:: multiply + .. automethod:: negative + .. automethod:: sum diff --git a/_sources/api/coffea.nanoevents.methods.vector.PolarTwoVector.rst.txt b/_sources/api/coffea.nanoevents.methods.vector.PolarTwoVector.rst.txt new file mode 100644 index 000000000..b04b6b9e7 --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.vector.PolarTwoVector.rst.txt @@ -0,0 +1,19 @@ +PolarTwoVector +============== + +.. currentmodule:: coffea.nanoevents.methods.vector + +.. autoclass:: PolarTwoVector + :show-inheritance: + + .. rubric:: Methods Summary + + .. autosummary:: + + ~PolarTwoVector.multiply + ~PolarTwoVector.negative + + .. rubric:: Methods Documentation + + .. automethod:: multiply + .. automethod:: negative diff --git a/_sources/api/coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector.rst.txt b/_sources/api/coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector.rst.txt new file mode 100644 index 000000000..871d4e501 --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector.rst.txt @@ -0,0 +1,21 @@ +PtEtaPhiELorentzVector +====================== + +.. currentmodule:: coffea.nanoevents.methods.vector + +.. autoclass:: PtEtaPhiELorentzVector + :show-inheritance: + + .. rubric:: Methods Summary + + .. autosummary:: + + ~PtEtaPhiELorentzVector.divide + ~PtEtaPhiELorentzVector.multiply + ~PtEtaPhiELorentzVector.negative + + .. rubric:: Methods Documentation + + .. automethod:: divide + .. automethod:: multiply + .. automethod:: negative diff --git a/_sources/api/coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector.rst.txt b/_sources/api/coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector.rst.txt new file mode 100644 index 000000000..a834284b8 --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector.rst.txt @@ -0,0 +1,21 @@ +PtEtaPhiMLorentzVector +====================== + +.. currentmodule:: coffea.nanoevents.methods.vector + +.. autoclass:: PtEtaPhiMLorentzVector + :show-inheritance: + + .. rubric:: Methods Summary + + .. autosummary:: + + ~PtEtaPhiMLorentzVector.divide + ~PtEtaPhiMLorentzVector.multiply + ~PtEtaPhiMLorentzVector.negative + + .. rubric:: Methods Documentation + + .. automethod:: divide + .. automethod:: multiply + .. automethod:: negative diff --git a/_sources/api/coffea.nanoevents.methods.vector.SphericalThreeVector.rst.txt b/_sources/api/coffea.nanoevents.methods.vector.SphericalThreeVector.rst.txt new file mode 100644 index 000000000..a6bf9321c --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.vector.SphericalThreeVector.rst.txt @@ -0,0 +1,29 @@ +SphericalThreeVector +==================== + +.. currentmodule:: coffea.nanoevents.methods.vector + +.. autoclass:: SphericalThreeVector + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~SphericalThreeVector.r + + .. rubric:: Methods Summary + + .. autosummary:: + + ~SphericalThreeVector.multiply + ~SphericalThreeVector.negative + + .. rubric:: Attributes Documentation + + .. autoattribute:: r + + .. rubric:: Methods Documentation + + .. automethod:: multiply + .. automethod:: negative diff --git a/_sources/api/coffea.nanoevents.methods.vector.ThreeVector.rst.txt b/_sources/api/coffea.nanoevents.methods.vector.ThreeVector.rst.txt new file mode 100644 index 000000000..61c11e242 --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.vector.ThreeVector.rst.txt @@ -0,0 +1,41 @@ +ThreeVector +=========== + +.. currentmodule:: coffea.nanoevents.methods.vector + +.. autoclass:: ThreeVector + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~ThreeVector.r + ~ThreeVector.r2 + ~ThreeVector.unit + + .. rubric:: Methods Summary + + .. autosummary:: + + ~ThreeVector.absolute + ~ThreeVector.delta_phi + ~ThreeVector.divide + ~ThreeVector.multiply + ~ThreeVector.negative + ~ThreeVector.sum + + .. rubric:: Attributes Documentation + + .. autoattribute:: r + .. autoattribute:: r2 + .. autoattribute:: unit + + .. rubric:: Methods Documentation + + .. automethod:: absolute + .. automethod:: delta_phi + .. automethod:: divide + .. automethod:: multiply + .. automethod:: negative + .. automethod:: sum diff --git a/_sources/api/coffea.nanoevents.methods.vector.TwoVector.rst.txt b/_sources/api/coffea.nanoevents.methods.vector.TwoVector.rst.txt new file mode 100644 index 000000000..f2f2ba6e2 --- /dev/null +++ b/_sources/api/coffea.nanoevents.methods.vector.TwoVector.rst.txt @@ -0,0 +1,41 @@ +TwoVector +========= + +.. currentmodule:: coffea.nanoevents.methods.vector + +.. autoclass:: TwoVector + :show-inheritance: + + .. rubric:: Attributes Summary + + .. autosummary:: + + ~TwoVector.r + ~TwoVector.r2 + ~TwoVector.unit + + .. rubric:: Methods Summary + + .. autosummary:: + + ~TwoVector.absolute + ~TwoVector.delta_phi + ~TwoVector.divide + ~TwoVector.multiply + ~TwoVector.negative + ~TwoVector.sum + + .. rubric:: Attributes Documentation + + .. autoattribute:: r + .. autoattribute:: r2 + .. autoattribute:: unit + + .. rubric:: Methods Documentation + + .. automethod:: absolute + .. automethod:: delta_phi + .. automethod:: divide + .. automethod:: multiply + .. automethod:: negative + .. automethod:: sum diff --git a/_sources/api/coffea.processor.ProcessorABC.rst.txt b/_sources/api/coffea.processor.ProcessorABC.rst.txt new file mode 100644 index 000000000..7e81f0574 --- /dev/null +++ b/_sources/api/coffea.processor.ProcessorABC.rst.txt @@ -0,0 +1,19 @@ +ProcessorABC +============ + +.. currentmodule:: coffea.processor + +.. autoclass:: ProcessorABC + :show-inheritance: + + .. rubric:: Methods Summary + + .. autosummary:: + + ~ProcessorABC.postprocess + ~ProcessorABC.process + + .. rubric:: Methods Documentation + + .. automethod:: postprocess + .. automethod:: process diff --git a/_sources/api/coffea.util.SpeedColumn.rst.txt b/_sources/api/coffea.util.SpeedColumn.rst.txt new file mode 100644 index 000000000..31d6100dc --- /dev/null +++ b/_sources/api/coffea.util.SpeedColumn.rst.txt @@ -0,0 +1,17 @@ +SpeedColumn +=========== + +.. currentmodule:: coffea.util + +.. autoclass:: SpeedColumn + :show-inheritance: + + .. rubric:: Methods Summary + + .. autosummary:: + + ~SpeedColumn.render + + .. rubric:: Methods Documentation + + .. automethod:: render diff --git a/_sources/api/coffea.util.awkward_rewrap.rst.txt b/_sources/api/coffea.util.awkward_rewrap.rst.txt new file mode 100644 index 000000000..118b2bfd4 --- /dev/null +++ b/_sources/api/coffea.util.awkward_rewrap.rst.txt @@ -0,0 +1,6 @@ +awkward_rewrap +============== + +.. currentmodule:: coffea.util + +.. autofunction:: awkward_rewrap diff --git a/_sources/api/coffea.util.compress_form.rst.txt b/_sources/api/coffea.util.compress_form.rst.txt new file mode 100644 index 000000000..1357bbc63 --- /dev/null +++ b/_sources/api/coffea.util.compress_form.rst.txt @@ -0,0 +1,6 @@ +compress_form +============= + +.. currentmodule:: coffea.util + +.. autofunction:: compress_form diff --git a/_sources/api/coffea.util.decompress_form.rst.txt b/_sources/api/coffea.util.decompress_form.rst.txt new file mode 100644 index 000000000..26884cad5 --- /dev/null +++ b/_sources/api/coffea.util.decompress_form.rst.txt @@ -0,0 +1,6 @@ +decompress_form +=============== + +.. currentmodule:: coffea.util + +.. autofunction:: decompress_form diff --git a/_sources/api/coffea.util.deprecate.rst.txt b/_sources/api/coffea.util.deprecate.rst.txt new file mode 100644 index 000000000..efcde2076 --- /dev/null +++ b/_sources/api/coffea.util.deprecate.rst.txt @@ -0,0 +1,6 @@ +deprecate +========= + +.. currentmodule:: coffea.util + +.. autofunction:: deprecate diff --git a/_sources/api/coffea.util.load.rst.txt b/_sources/api/coffea.util.load.rst.txt new file mode 100644 index 000000000..fd16129da --- /dev/null +++ b/_sources/api/coffea.util.load.rst.txt @@ -0,0 +1,6 @@ +load +==== + +.. currentmodule:: coffea.util + +.. autofunction:: load diff --git a/_sources/api/coffea.util.rewrap_recordarray.rst.txt b/_sources/api/coffea.util.rewrap_recordarray.rst.txt new file mode 100644 index 000000000..48f56c5b2 --- /dev/null +++ b/_sources/api/coffea.util.rewrap_recordarray.rst.txt @@ -0,0 +1,6 @@ +rewrap_recordarray +================== + +.. currentmodule:: coffea.util + +.. autofunction:: rewrap_recordarray diff --git a/_sources/api/coffea.util.rich_bar.rst.txt b/_sources/api/coffea.util.rich_bar.rst.txt new file mode 100644 index 000000000..2c9de600a --- /dev/null +++ b/_sources/api/coffea.util.rich_bar.rst.txt @@ -0,0 +1,6 @@ +rich_bar +======== + +.. currentmodule:: coffea.util + +.. autofunction:: rich_bar diff --git a/_sources/api/coffea.util.save.rst.txt b/_sources/api/coffea.util.save.rst.txt new file mode 100644 index 000000000..a16d5856e --- /dev/null +++ b/_sources/api/coffea.util.save.rst.txt @@ -0,0 +1,6 @@ +save +==== + +.. currentmodule:: coffea.util + +.. autofunction:: save diff --git a/_sources/concepts.rst.txt b/_sources/concepts.rst.txt new file mode 100644 index 000000000..c56b6b869 --- /dev/null +++ b/_sources/concepts.rst.txt @@ -0,0 +1,72 @@ +Coffea concepts +=============== + +This page explains concepts and terminology used within the coffea package. +It is intended to provide a high-level overview, while details can be found in other sections of the documentation. + +.. _def-columnar-analysis: + +Columnar analysis +----------------- +Columnar analysis is a paradigm that describes the way the user writes the analysis application that is best described +in contrast to the the traditional paradigm in high-energy particle physics (HEP) of using an event loop. In an event loop, the analysis operates row-wise +on the input data (in HEP, one row usually corresponds to one reconstructed particle collision event.) Each row +is a structure containing several fields, such as the properties of the visible outgoing particles +that were reconstructed in a collision event. The analysis code manipulates this structure to either output derived +quantities or summary statistics in the form of histograms. In contrast, columnar analysis operates on individual +columns of data spanning a *chunk* (partition, batch) of rows using `array programming `_ +primitives in turn, to compute derived quantities and summary statistics. Array programming is widely used within +the `scientific python ecosystem `_, supported by the `numpy `_ library. +However, although the existing scientific python stack is fully capable of analyzing rectangular arrays (i.e. +no variable-length array dimensions), HEP data is very irregular, and manipulating it can become awkward without +first generalizing array structure a bit. The `awkward `_ package does this, +extending array programming capabilities to the complexity of HEP data. + +.. image:: images/columnar.png + :width: 70 % + :align: center + +.. _def-processor: + +Coffea processor +---------------- +In almost all HEP analyses, each row corresponds to an independent event, and it is exceptionally rare +to need to compute inter-row derived quantities. Due to this, horizontal scale-out is almost trivial: +each chunk of rows can be operated on independently. Further, if the output of an analysis is restricted +to reducible accumulators such as histograms (abstracted by `dask`, `dask-awkward`, and `dask-histogram`), +then outputs can even be merged via tree reduction. The `ProcessorABC` class is an abstraction to encapsulate +analysis code so that it can be easily scaled out, leaving the delivery of input columns and reduction of +output accumulators to the coffea framework. However it is not an absolute requirement, and mere a useful +organizational framework. + +.. _def-scale-out: + +Scale-out +--------- +Often, the computation requirements of a HEP data analysis exceed the resources of a single thread of execution. +To facilitate parallelization and allow the user to access more compute resources, coffea employs dask, +dask-distributed, and taskvine to ease the transition between a local analysis on a small set of test data to a +full-scale analysis. Dask provides local schedulers and distributed schedulers, and taskvine supplies an additional +distributed scheduler. + +.. _def-local-schedulers: + +Local executors +^^^^^^^^^^^^^^^ +Currently, four local executors exist: `sync`, `threads`, `processes`, and `local distributed client`. +The sync schedulersimply processes each chunk of an input dataset in turn, using the current python thread. The +threads scheduler employs python `multithreaded` to spawn multiple python threads that process chunks in parallel +on the machine. The processes and local distributed client schedulures use `multiprocessing` to spawn multiple python +processes that process chunk in parallel on the machine. Process-base parallelism tends to more efficient when using +uproot since it avoids performance limitations due to the CPython `global interpreter lock `_. + +.. _def-distributed-executors: + +Distributed executors +^^^^^^^^^^^^^^^^^^^^^ +Currently, coffea supports two types of distributed schedulers: + + - the `dask `_ distributed executor, accessed via the `distributed.Client` entrypoint, + - and the taskvine distributed scheduler. + +These schedulers use their respective underlying libraries to distribute processing tasks over multiple machines. diff --git a/_sources/examples.rst.txt b/_sources/examples.rst.txt new file mode 100644 index 000000000..23f49934a --- /dev/null +++ b/_sources/examples.rst.txt @@ -0,0 +1,14 @@ +Coffea by Example +================= + +The following pages are rendered jupyter notebooks that provide an overview and example usage of Coffea features. +Each notebook builds on the previous one so it is recommended to go through them in order. + +.. toctree:: + + notebooks/nanoevents.ipynb + notebooks/applying_corrections.ipynb + notebooks/processor.ipynb + notebooks/mltools.ipynb + notebooks/dataset_discovery.ipynb + notebooks/packedselection.ipynb diff --git a/_sources/index.rst.txt b/_sources/index.rst.txt new file mode 100644 index 000000000..711c356c1 --- /dev/null +++ b/_sources/index.rst.txt @@ -0,0 +1,20 @@ +.. coffea documentation master file, created by + sphinx-quickstart on Fri Jun 7 09:23:02 2019. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +.. include:: ../../README.rst + +.. toctree:: + installation + examples + concepts + reference +.. + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/_sources/installation.rst.txt b/_sources/installation.rst.txt new file mode 100644 index 000000000..0bdef3a53 --- /dev/null +++ b/_sources/installation.rst.txt @@ -0,0 +1,220 @@ +.. _installing-coffea: + +Installing coffea +================= + +Quick start +----------- +To try coffea now, without installing anything, you can experiment with our +`hosted tutorial notebooks `_. + +Platform support +---------------- +Coffea is a python package distributed via `PyPI `_. A python installation is required to use coffea. +Python version 3.6 or newer is required. + +All functional features in each supported python version are routinely tested. +You can see the python version you have installed by typing the following at the command prompt: + +>>> python --version + +or, in some cases, if both python 2 and 3 are available, you can find the python 3 version via: + +>>> python3 --version + +coffea core functionality is routinely tested on Windows, Linux and MacOS. +All :ref:`def-local-executors` are tested against all three platforms, +however the :ref:`def-distributed-executors` are not routinely tested on Windows. + +Coffea starts from v0.5.0 in the PyPI repository since before v0.5.0 it was hosted as `fnal-column-analysis-tools `_. If you are still using fnal-column-analysis-tools, please move to `coffea `_! + +Install coffea +-------------- +To install coffea, there are several mostly-equivalent options: + + - install coffea system-wide using ``pip install coffea``; + - if you do not have administrator permissions, install as local user with ``pip install --user coffea``; + - if you prefer to not place coffea in your global environment, you can set up a `Virtual environment`_; + - if you use `Conda `_, simply ``conda install coffea``; + - or, if you like to use containers, see `Pre-built images`_ below. + +To update a previously installed coffea to a newer version, use: ``pip install --upgrade coffea`` +Although not required, it is recommended to also `install Jupyter `_, as it provides a more interactive development environment. +The installation procedure is essentially identical as above: ``pip install jupyter``. (If you use conda, ``conda install jupyter`` is a better option.) + +In rare cases, you may find that the ``pip`` executable in your path does not correspond to the same python installation as the ``python`` executable. This is a sign of a broken python environment. However, this can be bypassed by using the syntax ``python -m pip ...`` in place of ``pip ...``. + +Install optional dependencies +----------------------------- +Coffea supports several optional components that require additional package installations. +In particular, all of the :ref:`def-distributed-executors` require additional packages. +The necessary dependencies can be installed easily via ``pip`` using the setuptools `extras `_ facility: + + - Apache `Spark `_ distributed executor: ``pip install coffea[spark]`` + - `parsl `_ distributed executor: ``pip install coffea[parsl]`` + - `dask `_ distributed executor: ``pip install coffea[dask]`` + - `Work Queue `_ distributed executor: see :ref:`intro-coffea-wq` for installation instructions + +Multiple extras can be installed together via, e.g. ``pip install coffea[dask,spark]`` + +Virtual environment +------------------- +Virtual environments are a good way to isolate python environments, and ensure no hidden dependencies. +You can find more information at https://docs.python.org/3/library/venv.html + +.. code-block:: bash + + python -m venv my_env + source my_env/bin/activate + pip install coffea + +Pre-built images +---------------- +A complete coffea + scientific python environment is available as a docker image: + +.. code-block:: bash + + docker run -it --name docker-coffea-base coffeateam/coffea-base + +More information is available at https://github.com/CoffeaTeam/docker-coffea-base#readme +Additionally there is an image with dask dependencies (including dask-jobqueue): + +.. code-block:: bash + + docker run -it --name docker-coffea-dask coffeateam/coffea-dask + +With corresponding repo at https://github.com/CoffeaTeam/docker-coffea-dask#readme + +If you use singularity, there are preconverted images available via the unpacked.cern.ch service. For example, you can start a shell with: + +.. code-block:: bash + + singularity shell -B ${PWD}:/work /cvmfs/unpacked.cern.ch/registry.hub.docker.com/coffeateam/coffea-dask:latest + +Install via cvmfs +----------------- +Although the local installation can work anywhere, if the base environment does not already have most of the coffea dependencies, then the user-local package directory can become quite bloated. +An option to avoid this bloat is to use a base python environment provided via `CERN LCG `_, which is available on any system that has the `cvmfs `_ directory ``/cvmfs/sft.cern.ch/`` mounted. +Simply source a LCG release (shown here: 98python3) and install: + +.. code-block:: bash + + # check your platform: CC7 shown below, for SL6 it would be "x86_64-slc6-gcc8-opt" + source /cvmfs/sft.cern.ch/lcg/views/LCG_98python3/x86_64-centos7-gcc9-opt/setup.sh # or .csh, etc. + pip install --user coffea + +This method can be fragile, since the LCG-distributed packages may conflict with the coffea dependencies. In general it is better to define your own environment or use an image. + +Creating a portable virtual environment +--------------------------------------- +In some instances, it may be useful to have a self-contained environment that can be relocated. +One use case is for users of coffea that do not have access to a distributed compute cluster that is compatible with +one of the coffea distributed executors. Here, a fallback solution can be found by creating traditional batch jobs (e.g. condor) +which then use coffea local executors, possibly multi-threaded. In this case, often the user-local python package directory +is not available from batch workers, so a portable python environment needs to be created. +Annoyingly, python virtual environments are not portable by default due to several hardcoded paths in specific locations, however +there are two workarounds presented below. In both cases, we make a virtual environment that starts from a non-system base +python environment to lower the amount of needed installations in the virtual environment. One can always start a venv from scratch, +but the number of coffea dependencies makes the installation rather large, up to a few hundred MB. + + +Container-based +~~~~~~~~~~~~~~~ +If we start from one of the singularity containers from the `Pre-built images`_ section, we don't have to install nearly as much +software in our virtual environment, letting the container image take care of the majority of the codebase. For example, the following +code starts from the ``coffea-dask`` image and adds a special python module that is not included in the base image: + +.. code-block:: bash + + singularity shell -B ${PWD}:/srv /cvmfs/unpacked.cern.ch/registry.hub.docker.com/coffeateam/coffea-dask:latest + cd /srv + python -m venv --without-pip --system-site-packages myenv + source myenv/bin/activate + python -m pip install --ignore-installed h5py + +This creates a virtual environmennt ``myenv`` and a directory with the same name where the extra python module ``h5py`` will be +installed. At this point, the terminal prompt will look like ``(myenv) Singularity>``, indicating you are inside a singularity +image and have ``myenv`` activated. Next time you log in, only lines 1, 2, and 4 need to be re-executed. + +If using HTCondor for job submission, you can create a tarball of the virtual environment directory and then submit condor +jobs using the ``+SingularityImage`` `HTCondor option `_. +Note that this option is not enabled by default in HTCondor installations, so you may need to talk to your site administrator to be +able to use this option. You will also need to create a small wrapper script to re-source the environment to have the job use the +same environment as your interactive container. +A complete example that runs at FNAL LPC is shown `in this gist `_. + + +LCG-based +~~~~~~~~~ +There are not many locations to edit to make a venv portable, and some sed hacks can save the day. +Here is an example of a bash script that installs coffea on top of the LCG 98python3 software stack inside a portable virtual environment, +with the caveat that cvmfs must be visible from batch workers: + +.. code-block:: bash + + #!/usr/bin/env bash + NAME=coffeaenv + LCG=/cvmfs/sft.cern.ch/lcg/views/LCG_98python3/x86_64-centos7-gcc9-opt + + source $LCG/setup.sh + # following https://aarongorka.com/blog/portable-virtualenv/, an alternative is https://github.com/pantsbuild/pex + python -m venv --copies $NAME + source $NAME/bin/activate + LOCALPATH=$NAME$(python -c 'import sys; print(f"/lib/python{sys.version_info.major}.{sys.version_info.minor}/site-packages")') + export PYTHONPATH=${LOCALPATH}:$PYTHONPATH + python -m pip install setuptools pip wheel --upgrade + python -m pip install coffea + sed -i '1s/#!.*python$/#!\/usr\/bin\/env python/' $NAME/bin/* + sed -i '40s/.*/VIRTUAL_ENV="$(cd "$(dirname "$(dirname "${BASH_SOURCE[0]}" )")" \&\& pwd)"/' $NAME/bin/activate + sed -i "2a source ${LCG}/setup.sh" $NAME/bin/activate + sed -i "3a export PYTHONPATH=${LOCALPATH}:\$PYTHONPATH" $NAME/bin/activate + tar -zcf ${NAME}.tar.gz ${NAME} + +The resulting tarball size is about 60 MB. +An example batch job wrapper script is: + +.. code-block:: bash + + #!/usr/bin/env bash + tar -zxf coffeaenv.tar.gz + source coffeaenv/bin/activate + + echo "Running command:" $@ + time $@ || exit $? + +Note that this environment only functions from the working directory of the wrapper script due to having relative paths. +Unless you install jupyter into this environment (which may bloat the tarball--LCG98 jupyter is reasonably recent), it is not visible inside the LCG jupyter server. From a shell with the virtual environment activated, you can execute:: + + python -m ipykernel install --user --name=coffeaenv + +to make a new kernel available that uses this environment. + +For Developers +-------------- + +1. Download source: + + .. code-block:: bash + + git clone https://github.com/CoffeaTeam/coffea + +2. Install with development dependencies: + + .. code-block:: bash + + cd coffea + pip install --editable .[dev] + // or if you need to work on the executors, e.g. dask, + pip install --editable .[dev,dask] + +3. Develop a cool new feature or fix some bugs + +4. Lint source, run tests, and build documentation: + + .. code-block:: bash + + pre-commit run --all-files + pytest tests + pushd docs && make html && popd + +5. Make a pull request! diff --git a/_sources/modules/coffea.analysis_tools.rst.txt b/_sources/modules/coffea.analysis_tools.rst.txt new file mode 100644 index 000000000..b4386d871 --- /dev/null +++ b/_sources/modules/coffea.analysis_tools.rst.txt @@ -0,0 +1,5 @@ +coffea.analysis_tools +===================== + +.. automodapi:: coffea.analysis_tools + :no-heading: \ No newline at end of file diff --git a/_sources/modules/coffea.btag_tools.rst.txt b/_sources/modules/coffea.btag_tools.rst.txt new file mode 100644 index 000000000..da6214151 --- /dev/null +++ b/_sources/modules/coffea.btag_tools.rst.txt @@ -0,0 +1,5 @@ +coffea.btag_tools +================= + +.. automodapi:: coffea.btag_tools + :no-heading: \ No newline at end of file diff --git a/_sources/modules/coffea.dataset_tools.rst.txt b/_sources/modules/coffea.dataset_tools.rst.txt new file mode 100644 index 000000000..b0b3fc99e --- /dev/null +++ b/_sources/modules/coffea.dataset_tools.rst.txt @@ -0,0 +1,5 @@ +coffea.dataset_tools +==================== + +.. automodapi:: coffea.dataset_tools + :no-heading: \ No newline at end of file diff --git a/_sources/modules/coffea.jetmet_tools.rst.txt b/_sources/modules/coffea.jetmet_tools.rst.txt new file mode 100644 index 000000000..6721a2e7c --- /dev/null +++ b/_sources/modules/coffea.jetmet_tools.rst.txt @@ -0,0 +1,5 @@ +coffea.jetmet_tools +=================== + +.. automodapi:: coffea.jetmet_tools + :no-heading: \ No newline at end of file diff --git a/_sources/modules/coffea.lookup_tools.rst.txt b/_sources/modules/coffea.lookup_tools.rst.txt new file mode 100644 index 000000000..8129232e6 --- /dev/null +++ b/_sources/modules/coffea.lookup_tools.rst.txt @@ -0,0 +1,5 @@ +coffea.lookup_tools +=================== + +.. automodapi:: coffea.lookup_tools + :no-heading: \ No newline at end of file diff --git a/_sources/modules/coffea.lumi_tools.rst.txt b/_sources/modules/coffea.lumi_tools.rst.txt new file mode 100644 index 000000000..3d796e005 --- /dev/null +++ b/_sources/modules/coffea.lumi_tools.rst.txt @@ -0,0 +1,5 @@ +coffea.lumi_tools +================= + +.. automodapi:: coffea.lumi_tools + :no-heading: \ No newline at end of file diff --git a/_sources/modules/coffea.ml_tools.rst.txt b/_sources/modules/coffea.ml_tools.rst.txt new file mode 100644 index 000000000..997eb5031 --- /dev/null +++ b/_sources/modules/coffea.ml_tools.rst.txt @@ -0,0 +1,5 @@ +coffea.ml_tools +=============== + +.. automodapi:: coffea.ml_tools + :no-heading: \ No newline at end of file diff --git a/_sources/modules/coffea.nanoevents.methods.base.rst.txt b/_sources/modules/coffea.nanoevents.methods.base.rst.txt new file mode 100644 index 000000000..ade6106f0 --- /dev/null +++ b/_sources/modules/coffea.nanoevents.methods.base.rst.txt @@ -0,0 +1,5 @@ +coffea.nanoevents.methods.base +============================== + +.. automodapi:: coffea.nanoevents.methods.base + :no-heading: \ No newline at end of file diff --git a/_sources/modules/coffea.nanoevents.methods.candidate.rst.txt b/_sources/modules/coffea.nanoevents.methods.candidate.rst.txt new file mode 100644 index 000000000..8b2d80c0f --- /dev/null +++ b/_sources/modules/coffea.nanoevents.methods.candidate.rst.txt @@ -0,0 +1,5 @@ +coffea.nanoevents.methods.candidate +=================================== + +.. automodapi:: coffea.nanoevents.methods.candidate + :no-heading: \ No newline at end of file diff --git a/_sources/modules/coffea.nanoevents.methods.nanoaod.rst.txt b/_sources/modules/coffea.nanoevents.methods.nanoaod.rst.txt new file mode 100644 index 000000000..3e0bb090d --- /dev/null +++ b/_sources/modules/coffea.nanoevents.methods.nanoaod.rst.txt @@ -0,0 +1,5 @@ +coffea.nanoevents.methods.nanoaod +================================= + +.. automodapi:: coffea.nanoevents.methods.nanoaod + :no-heading: \ No newline at end of file diff --git a/_sources/modules/coffea.nanoevents.methods.vector.rst.txt b/_sources/modules/coffea.nanoevents.methods.vector.rst.txt new file mode 100644 index 000000000..5e9540860 --- /dev/null +++ b/_sources/modules/coffea.nanoevents.methods.vector.rst.txt @@ -0,0 +1,5 @@ +coffea.nanoevents.methods.vector +================================ + +.. automodapi:: coffea.nanoevents.methods.vector + :no-heading: \ No newline at end of file diff --git a/_sources/modules/coffea.nanoevents.rst.txt b/_sources/modules/coffea.nanoevents.rst.txt new file mode 100644 index 000000000..581391beb --- /dev/null +++ b/_sources/modules/coffea.nanoevents.rst.txt @@ -0,0 +1,5 @@ +coffea.nanoevents +================= + +.. automodapi:: coffea.nanoevents + :no-heading: \ No newline at end of file diff --git a/_sources/modules/coffea.processor.rst.txt b/_sources/modules/coffea.processor.rst.txt new file mode 100644 index 000000000..064f506f5 --- /dev/null +++ b/_sources/modules/coffea.processor.rst.txt @@ -0,0 +1,5 @@ +coffea.processor +================ + +.. automodapi:: coffea.processor + :no-heading: \ No newline at end of file diff --git a/_sources/modules/coffea.util.rst.txt b/_sources/modules/coffea.util.rst.txt new file mode 100644 index 000000000..7fe6d6037 --- /dev/null +++ b/_sources/modules/coffea.util.rst.txt @@ -0,0 +1,5 @@ +coffea.util +=========== + +.. automodapi:: coffea.util + :no-heading: \ No newline at end of file diff --git a/_sources/notebooks/applying_corrections.ipynb.txt b/_sources/notebooks/applying_corrections.ipynb.txt new file mode 100644 index 000000000..01cfa7a93 --- /dev/null +++ b/_sources/notebooks/applying_corrections.ipynb.txt @@ -0,0 +1,781 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Applying corrections to columnar data\n", + "\n", + "Here we will show how to apply corrections to columnar data using:\n", + "\n", + "- the `coffea.lookup_tools` package, which is designed to read in ROOT histograms and a variety of data file formats popular within CMS into a standardized lookup table format;\n", + "- CMS-specific extensions to the above, for jet corrections (`coffea.jetmet_tools`) and b-tagging efficiencies/uncertainties (`coffea.btag_tools`);\n", + "- the [correctionlib](https://cms-nanoaod.github.io/correctionlib/) package, which provides a experiment-agnostic serializable data format for common correction functions." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Test data**:\n", + "We'll use NanoEvents to construct some test data." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/saransh/Code/HEP/coffea/src/coffea/nanoevents/methods/candidate.py:11: FutureWarning: In version 2024.7.0 (target date: 2024-06-30 11:59:59-05:00), this will be an error.\n", + "To raise these warnings as errors (and get stack traces to find out where they're called), run\n", + " import warnings\n", + " warnings.filterwarnings(\"error\", module=\"coffea.*\")\n", + "after the first `import coffea` or use `@pytest.mark.filterwarnings(\"error:::coffea.*\")` in pytest.\n", + "Issue: coffea.nanoevents.methods.vector will be removed and replaced with scikit-hep vector. Nanoevents schemas internal to coffea will be migrated. Otherwise please consider using that package!.\n", + " from coffea.nanoevents.methods import vector\n" + ] + } + ], + "source": [ + "import awkward as ak\n", + "from coffea.nanoevents import NanoEventsFactory, NanoAODSchema\n", + "\n", + "NanoAODSchema.warn_missing_crossrefs = False\n", + "\n", + "fname = \"https://raw.githubusercontent.com/CoffeaTeam/coffea/master/tests/samples/nano_dy.root\"\n", + "events = NanoEventsFactory.from_root(\n", + " {fname: \"Events\"},\n", + " schemaclass=NanoAODSchema,\n", + " metadata={\"dataset\": \"DYJets\"},\n", + ").events()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Coffea lookup_tools\n", + "\n", + "The entrypoint for `coffea.lookup_tools` is the [extractor class](https://coffeateam.github.io/coffea/api/coffea.lookup_tools.extractor.html#coffea.lookup_tools.extractor)." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from coffea.lookup_tools import extractor" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "~/Code/HEP/coffea/binder/data ~/Code/HEP/coffea/binder\n", + "~/Code/HEP/coffea/binder\n" + ] + } + ], + "source": [ + "%%bash\n", + "# download some sample correction sources\n", + "mkdir -p data\n", + "pushd data\n", + "PREFIX=https://raw.githubusercontent.com/CoffeaTeam/coffea/master/tests/samples\n", + "curl -Os $PREFIX/testSF2d.histo.root\n", + "curl -Os $PREFIX/Fall17_17Nov2017_V32_MC_L2Relative_AK4PFPuppi.jec.txt\n", + "curl -Os $PREFIX/Fall17_17Nov2017_V32_MC_Uncertainty_AK4PFPuppi.junc.txt\n", + "curl -Os $PREFIX/DeepCSV_102XSF_V1.btag.csv.gz\n", + "popd" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Opening a root file and using it as a lookup table\n", + "\n", + "In [tests/samples](https://github.com/CoffeaTeam/coffea/tree/master/tests/samples), there is an example file with a `TH2F` histogram named `scalefactors_Tight_Electron`. The following code reads that histogram into an [evaluator](https://coffeateam.github.io/coffea/api/coffea.lookup_tools.evaluator.html#coffea.lookup_tools.evaluator) instance, under the key `testSF2d` and applies it to some electrons." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "available evaluator keys:\n", + "\t testSF2d\n", + "testSF2d: 2 dimensional histogram with axes:\n", + "\t1: [-2.5 -2. -1.566 -1.444 -0.8 0. 0.8 1.444 1.566 2.\n", + " 2.5 ]\n", + "\t2: [ 10. 20. 35. 50. 90. 150. 500.]\n", + "\n", + "type of testSF2d: \n" + ] + } + ], + "source": [ + "ext = extractor()\n", + "# several histograms can be imported at once using wildcards (*)\n", + "ext.add_weight_sets([\"testSF2d scalefactors_Tight_Electron data/testSF2d.histo.root\"])\n", + "ext.finalize()\n", + "\n", + "evaluator = ext.make_evaluator()\n", + "\n", + "print(\"available evaluator keys:\")\n", + "for key in evaluator.keys():\n", + " print(\"\\t\", key)\n", + "print(\"testSF2d:\", evaluator['testSF2d'])\n", + "print(\"type of testSF2d:\", type(evaluator['testSF2d']))" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Electron eta: [[], [1.83], [-0.293, -0.904], [-2.19, 1.65], [], ..., [], [0.381], [], []]\n", + "Electron pt: [[], [29.6], [60.1, 51.7], [10.7, 8.6], [], ..., [15.6], [], [7.68], [], []]\n", + "Scale factor: [[], [0.909], [0.953, 0.972], [0.807, 0.827], [], ..., [], [0.946], [], []]\n" + ] + } + ], + "source": [ + "print(\"Electron eta:\", events.Electron.eta.compute())\n", + "print(\"Electron pt:\", events.Electron.pt.compute())\n", + "print(\"Scale factor:\", evaluator[\"testSF2d\"](events.Electron.eta, events.Electron.pt).compute())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Building and using your own correction from a histogram\n", + "\n", + "To use a histogram or ratio of histograms to build your own correction, you can use `lookup_tools` to simplify the implementation. Here we create some mock data for two slightly different pt and eta spectra (say, from two different generators) and derive a correction to reweight one sample to the other." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/homebrew/lib/python3.11/site-packages/mplhep/utils.py:197: RuntimeWarning: All sumw are zero! Cannot compute meaningful error bars\n", + " return np.abs(method_fcn(self.values, variances) - self.values)\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGwCAYAAAC3qV8qAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABIFElEQVR4nO3de1xVVf7/8ffhcpAjN0G5TShqeUtN8hZTGiVf0axvTs5MmaVOTlZfrdQ0tRxTKzVlLGv66q9mxKbRbPp+y/pqeU20GjTFyFuSmoaTIk0mCEc5XPbvD8aTJxEOyOGw4fV8PPajvfdaa+91tsT5sNbaa1kMwzAEAABgIj7ergAAAEBNEcAAAADTIYABAACmQwADAABMhwAGAACYDgEMAAAwHQIYAABgOn7eroCnlJeX68SJEwoODpbFYvF2dQAAgBsMw9DZs2cVGxsrH5/Lt7M02gDmxIkTiouL83Y1AABALRw/flxXXXXVZdMbbQATHBwsqeIBhISEeLk2AADAHQUFBYqLi3N+j19Oow1gLnQbhYSEEMAAAGAy1Q3/YBAvAAAwHQIYAABgOgQwAADAdBrtGBgAQNNUVlamkpISb1cDl+Hv7y9fX98rvg4BDACgUTAMQ7m5uTpz5oy3q4JqhIWFKTo6+ormaSOAAQA0CheCl8jISNlsNiYxbYAMw5DdbldeXp4kKSYmptbXIoABAJheWVmZM3iJiIjwdnVQhcDAQElSXl6eIiMja92dxCBeAIDpXRjzYrPZvFwTuOPCv9OVjFUigAEANBp0G5lDXfw7EcAAAADTIYABAACmQwADAEAdS0pK0oQJE7xdjUaNAAYAAC9KT0+XxWKp9/lrZs2apR49etTrPesSAQwAADAdAhgAAK5AUVGRRo4cqaCgIMXExOiPf/yjS/qbb76pXr16KTg4WNHR0br33nudE7kdO3ZMt9xyiySpRYsWslgsGj16tCRp3bp1uummmxQWFqaIiAjdfvvtOnLkiPO6DodD48ePV0xMjJo1a6Y2bdpo3rx5zvQzZ87o97//vVq1aqWQkBDdeuut+vLLLyVJy5cv1+zZs/Xll1/KYrHIYrFo+fLlHnxKdY8AxmTsjlLFT1ur+GlrZXeUers6ANDkTZkyRVu3btX777+vDRs2KD09Xbt373aml5SU6Nlnn9WXX36p1atX69ixY84gJS4uTv/7v/8rScrOztbJkye1ePFiSRWB0aRJk7Rr1y5t3rxZPj4++tWvfqXy8nJJ0ssvv6wPPvhAf//735Wdna0VK1YoPj7eed/f/OY3ysvL00cffaTMzExdf/31GjBggE6fPq27775bTzzxhK699lqdPHlSJ0+e1N13310/D6yOMBMvJFUERl1mrpckHZiTIpuVHw0AqE5hYaH+8pe/6G9/+5sGDBggSXrjjTd01VVXOfM88MADzv127drp5ZdfVu/evVVYWKigoCCFh4dLkiIjIxUWFubMO2zYMJd7LVu2TK1atdKBAwfUtWtX5eTk6JprrtFNN90ki8WiNm3aOPN++umn+vzzz5WXl6eAgABJUmpqqlavXq3/+Z//0dixYxUUFCQ/Pz9FR0fX+XOpD7TAAABQS0eOHJHD4VDfvn2d58LDw9WxY0fncWZmpu644w61bt1awcHBuvnmmyVJOTk5VV770KFDGj58uNq1a6eQkBBn68qFcqNHj1ZWVpY6duyoxx57TBs2bHCW/fLLL1VYWKiIiAgFBQU5t6NHj7p0Q5kZf2YDAOAhRUVFSklJUUpKilasWKFWrVopJydHKSkpcjgcVZa944471KZNG73++uuKjY1VeXm5unbt6ix3/fXX6+jRo/roo4+0adMm/fa3v1VycrL+53/+R4WFhYqJiVF6evol1724lcfMCGAAAKil9u3by9/fXzt27FDr1q0lST/++KO+/vpr3XzzzTp48KB++OEHzZ8/X3FxcZKkXbt2uVzDarVKqliQ8oIffvhB2dnZev3119WvXz9JFd1CPxcSEqK7775bd999t379619r0KBBOn36tK6//nrl5ubKz8/PZVzMz+978T3NhgAGAIBaCgoK0pgxYzRlyhRFREQoMjJSTz/9tHx8KkZotG7dWlarVa+88ooefvhh7du3T88++6zLNdq0aSOLxaI1a9botttuU2BgoFq0aKGIiAi99tpriomJUU5OjqZNm+ZSbtGiRYqJiVFCQoJ8fHz0zjvvKDo6WmFhYUpOTlZiYqKGDh2qBQsWqEOHDjpx4oTWrl2rX/3qV+rVq5fi4+N19OhRZWVl6aqrrlJwcLBzvIwZMAamATAMQ3ZHqdvbBTUpYxiGFz8hADReCxcuVL9+/XTHHXcoOTlZN910k3r27ClJatWqlZYvX6533nlHXbp00fz585WamupS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P19ff/21+vfvr4SEBJWVlSkvL0/9+vW7onstWLBAzz//vNavX69evXrVRfW9hgAGAAAvCg4O1qhRozRlyhSFh4crMjJSzzzzjHx8fGSxWNShQweNGDFCI0eO1B//+EclJCTo+++/1+bNm9W9e3cNGTLErfu88MILmjlzplauXKn4+Hjl5uZKqmjFubglxyx4jRoAAC9btGiREhMTdfvttys5OVk33nijOnfu7ByfkpaWppEjR+qJJ55Qx44dNXToUJcWG3csWbJEDodDv/71rxUTE+PcUlNTPfWxPIoWGAAAvCw4ONjldeeioiLNnj1bY8eOlVQxvmX27NmaPXt2peVHjx6t0aNHu5wbOnSoyxiYY8eO1Xm9vYkABgAAL/viiy908OBB9enTR/n5+c7Xn++8804v16zhIoABAOBi1ubSrPx6v21qaqqys7NltVrVs2dPffLJJ2rZsmW918MsCGAAAPCyhIQEZWZmersapsIgXgAAYDoEMAAAwHQIYOBRdkep4qetVfy0tbI7Sr1dHQBAI0EAgwqOImlWaMV28SyUAAA0QAQwAADAdGocwGzbtk133HGHYmNjZbFYtHr1apf00aNHy2KxuGyDBg1yyXP69GmNGDFCISEhCgsL05gxY1RYWOiSZ8+ePerXr5+aNWumuLg4LViwoOafDgCAGrKX2NXtjW7q9kY32UsqWewRDUKNA5iioiJdd911evXVVy+bZ9CgQTp58qRze+utt1zSR4wYof3792vjxo1as2aNtm3b5pxtUJIKCgo0cOBAtWnTRpmZmVq4cKFmzZql1157rabVBQAAjVCN54EZPHiwBg8eXGWegIAARUdHV5r21Vdfad26ddq5c6dzJcxXXnlFt912m1JTUxUbG6sVK1bI4XBo2bJlslqtuvbaa5WVlaVFixa5BDoAAMA9r7/+uv76179q3759kqSePXtq7ty56tOnT53eJykpST169NBLL71Up9f9OY+MgUlPT1dkZKQ6duyoRx55RD/88IMzLSMjQ2FhYS7LeCcnJ8vHx0c7duxw5unfv7+sVqszT0pKirKzs/Xjjz9Wes/i4mIVFBS4bPA8u6NMdkdpldtPeavOd/F28fodAIArl56eruHDh2vLli3KyMhQXFycBg4cqO++++6yZRwORz3WsGbqfCbeQYMG6a677lLbtm115MgRPfXUUxo8eLAyMjLk6+ur3NxcRUZGulbCz0/h4eHOpb1zc3PVtm1blzxRUVHOtBYtWlxy33nz5l12kasmyzAkd/tvHfbK9yvNW6pAnZck9XpuoySLW7fo9dxm9+oi6cCcFNmsTBQNoGk4e/asHn74Ya1evVohISF68skn9f777ztbMoqLi/X000/rrbfe0pkzZ9S1a1e98MILSkpKkiQtX75cEyZM0Ntvv60JEybo+PHjuummm5SWlqaYmBhJclksUpL+/Oc/63//93+1efNmjRw5UpIUHx+vMWPG6NChQ1q9erXuuusuFRYWKjo6Wn/6058kSRMmTNDixYv11VdfqVOnTnI4HGrRooXef/99/e1vf9PWrVu1detWLV68WJJ09OhRxcfH1/kzq/NviHvuuce5361bN3Xv3l3t27dXenq6BgwYUNe3c5o+fbomTZrkPC4oKFBcXJzH7mcKJXZpbmzNy6VeXWWyTdJXFSu8q/P5ZTqnZjW/BwB4mGEYOld6rso8laVffO70+dOV5gn0C6zyuoF+gbJY3PvjTpImTZqkzz77TB988IGioqI0c+ZM7d69Wz169JAkjR8/XgcOHNCqVasUGxur9957T4MGDdLevXt1zTXXSJLsdrtSU1P15ptvysfHR/fdd58mT558SeBygd1uV0lJicLDw13Op6amaubMmXrmmWckSR9++KH+3//7f870rVu3qmXLlkpPT1enTp20c+dOlZSU6Je//KV69+6tr7/+Wl27dnUuSNmqVSu3n0NNePxP3Hbt2qlly5Y6fPiwBgwYoOjoaOXl5bnkKS0t1enTp53jZqKjo3Xq1CmXPBeOLze2JiAgQAEBAR74BKhK5ozkioXPLsPuKHW2vOyaMaDKVhW7o0y9nttU53UE0DSdKz2nviv7XtE1Br9b9ZjPy9lx7w7Z/G1u5T179qzeeOMNrVy50vmHflpammJjK/4AzcnJUVpamnJycpznJk+erHXr1iktLU1z586VJJWUlGjp0qVq3769pIqg50IQUZmpU6cqNjZWycnJLudvvfVWPfHEE87jpKQkPf744/r+++/l5+enAwcO6A9/+IPS09P18MMPKz09Xb1795bNVvF5rVarbDbbZb+v64rHA5h//vOf+uGHH5xNWImJiTpz5owyMzPVs2dPSdLHH3+s8vJy9e3b15nn6aefVklJifz9/SVJGzdu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8II6duzozJOUlKStW7e6lHvooYe0dOlS53FOTo4eeeQRbdmyRUFBQRo1apTmzZsnPz9iLqBJSb3aM3mfOiFZm9e8PgAahDqPBrZu3apx48apd+/eKi0t1VNPPaWBAwfqwIEDat78p18WDz74oObMmeM8ttlszv2ysjINGTJE0dHR+sc//qGTJ09q5MiR8vf319y5c+u6ygAAwGTqPIBZt26dy/Hy5csVGRmpzMxM9e/f33neZrMpOjq60mts2LBBBw4c0KZNmxQVFaUePXro2Wef1dSpUzVr1ixZrdZLyhQXF6u4uNh5XFBQUEefCEC987dVtJC4w2H/qeVl8mHJanMvLwBT8/gg3vz8fElSeHi4y/kVK1aoZcuW6tq1q6ZPny67/ae+64yMDHXr1k1RUVHOcykpKSooKND+/fsrvc+8efMUGhrq3OLi4jzwaQDUC4ulonvHre2igMVqcz8vAFPz6ICS8vJyTZgwQTfeeKO6du3qPH/vvfeqTZs2io2N1Z49ezR16lRlZ2fr3XfflSTl5ua6BC+SnMe5ubmV3mv69OmaNGmS87igoIAgBmgKrM2lWfnergWAeubRAGbcuHHat2+fPv30U5fzY8eOde5369ZNMTExGjBggI4cOaL27dvX6l4BAQEKCAi4ovoCAABz8FgX0vjx47VmzRpt2bJFV111VZV5+/btK0k6fPiwJCk6OlqnTp1yyXPh+HLjZgAAQNNR5wGMYRgaP3683nvvPX388cdq27ZttWWysrIkSTExMZKkxMRE7d27V3l5ec48GzduVEhIiLp06VLXVQYAACZT511I48aN08qVK/X+++8rODjYOWYlNDRUgYGBOnLkiFauXKnbbrtNERER2rNnjyZOnKj+/fure/fukqSBAweqS5cuuv/++7VgwQLl5uZqxowZGjduHN1EAACg7ltglixZovz8fCUlJSkmJsa5vf3225Ikq9WqTZs2aeDAgerUqZOeeOIJDRs2TP/3f//nvIavr6/WrFkjX19fJSYm6r777tPIkSNd5o0BAABNV523wBiGUWV6XFzcJbPwVqZNmzb68MMP66paALzM7ihVl5nrJUkH5qTIZmVWbQC1x28QAHXC7iirJr200v3qBPr7ysKaRQB+hgAGQJ3o9dymGuTd7HZeWmsAVMbjM/ECgCk5iqRZoRWbo8jbtQHwM/xZA6DW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5597u0qmM2/ePPXu3VvBwcGKjIzU0KFDlZ2d7ZLn/PnzGjdunCIiIhQUFKRhw4ZdMrEhqjd//nxZLBZNmDDBeY5ne2W+++473XfffYqIiFBgYKC6deumXbt2OdMNw9DMmTMVExOjwMBAJScn69ChQ16ssXmUlZXpD3/4g9q2bavAwEC1b99ezz77rMuaODxf923btk133HGHYmNjZbFY9Oijjyo7O1upqamyWCxuPcvFixfr4MGD2r59u1q0aKExY8aosLDQS5/oZwy4bdWqVYbVajWWLVtm7N+/33jwwQeNsLAw49SpU96umqmkpKQYaWlpxr59+4ysrCzjtttuM1q3bm0UFhY68zz88MNGXFycsXnzZmPXrl3GDTfcYPzyl7/0Yq3N5/PPPzfi4+ON7t27G48//rjzPM+29k6fPm20adPGGD16tLFjxw7jm2++MdavX28cPnzYmWf+/PlGaGiosXr1auPLL780/vM//9No27atce7cOS/W3Byef/55IyIiwlizZo1x9OhR45133jGCgoKMxYsXO/PwfN334YcfGk8//bTx7rvvGpKMkJAQY9SoUc706p5lfn6+YbVajRYtWhjbt283PvnkE+Pqq682hg8f7qVP5IoApgb69OljjBs3znlcVlZmxMbGGvPmzfNircwvLy/PkGRs3brVMAzDOHPmjOHv72+88847zjxfffWVIcnIyMjwVjVN5ezZs8Y111xjbNy40bj55pudAQzP9spMnTrVuOmmmy6bXl5ebkRHRxsLFy50njtz5owREBBgvPXWW/VRRVMbMmSI8cADD7icu+uuu4wRI0YYhsHzvRKSjIceesg4fvy4YRjuPcs9e/YYkow1a9Y483z00UeGxWIxvvvuu/r9AJWgC8lNDodDmZmZSk5Odp7z8fFRcnKyMjIyvFgz88vPz5ckhYeHS5IyMzNVUlLi8qw7deqk1q1b86zdNG7cOA0ZMsTlGUo82yv1wQcfqFevXvrNb36jyMhIJSQk6PXXX3emHz16VLm5uS7PNzQ0VH379uX5uuGXv/ylNm/erK+//lqS9OWXX+rTTz/V4MGDJfF8r9SgQYOcE9C58yx37typsLAwDRkyxJknOTlZPj4+2rFjR/1WvhINZzhxA/evf/1LZWVll8wEHBUVpYMHD3qpVuZXXl6uCRMm6MYbb1TXrl0lSbm5ubJa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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import hist\n", + "import matplotlib.pyplot as plt\n", + "\n", + "dists = (\n", + " hist.Hist.new\n", + " .StrCat([\"gen1\", \"gen2\", \"gen2rwt\"], name=\"dataset\")\n", + " .Reg(20, 0, 100, name=\"pt\")\n", + " .Reg(4, -3, 3, name=\"eta\")\n", + " .Weight()\n", + " .fill(\n", + " dataset=\"gen1\",\n", + " pt=np.random.exponential(scale=10.0, size=10000) + np.random.exponential(scale=10.0, size=10000),\n", + " eta=np.random.normal(scale=1, size=10000)\n", + " )\n", + " .fill(\n", + " dataset=\"gen2\",\n", + " pt=np.random.exponential(scale=10.0, size=10000) + np.random.exponential(scale=15.0, size=10000),\n", + " eta=np.random.normal(scale=1.1, size=10000)\n", + " )\n", + ")\n", + "\n", + "fig, ax = plt.subplots()\n", + "dists[:, :, sum].plot1d(ax=ax)\n", + "ax.legend(title=\"dataset\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we derive a correction as a function of $p_T$ and $\\eta$ to `gen2` such that it agrees with `gen1`. We'll set it to 1 anywhere we run out of statistics for the correction, to avoid divide by zero issues" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 2 dimensional histogram with axes:\n", + "\t1: [ 0. 5. 10. 15. 20. 25. 30. 35. 40. 45. 50. 55. 60. 65.\n", + " 70. 75. 80. 85. 90. 95. 100.]\n", + "\t2: [-3. -1.5 0. 1.5 3. ]\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "ColormeshArtists(pcolormesh=, cbar=, text=[])" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from coffea.lookup_tools.dense_lookup import dense_lookup\n", + "\n", + "num = dists[\"gen1\", :, :].values()\n", + "den = dists[\"gen2\", :, :].values()\n", + "sf = np.where(\n", + " (num > 0) & (den > 0),\n", + " num / np.maximum(den, 1) * den.sum() / num.sum(),\n", + " 1.0,\n", + ")\n", + "\n", + "corr = dense_lookup(sf, [ax.edges for ax in dists.axes[1:]])\n", + "print(corr)\n", + "\n", + "# a quick way to plot the scale factor is to steal the axis definitions from the input histograms:\n", + "sfhist = hist.Hist(*dists.axes[1:], data=sf)\n", + "sfhist.plot2d()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we generate some new mock data as if it was drawn from `gen2` and reweight it with our `corr` to match `gen1`" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ptvals = np.random.exponential(scale=10.0, size=10000) + np.random.exponential(scale=15.0, size=10000)\n", + "etavals = np.random.normal(scale=1.1, size=10000)\n", + "\n", + "dists.fill(\n", + " dataset=\"gen2rwt\",\n", + " pt=ptvals,\n", + " eta=etavals,\n", + " weight=corr(ptvals, etavals)\n", + ")\n", + "\n", + "fig, ax = plt.subplots()\n", + "dists[:, :, sum].plot1d(ax=ax)\n", + "ax.legend(title=\"dataset\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that `corr()` can accept also jagged arrays if need be." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## CMS high-level tools\n", + "\n", + "### Applying energy scale transformations with jetmet_tools\n", + "\n", + "The `coffea.jetmet_tools` package provides a convenience class [JetTransformer](https://coffeateam.github.io/coffea/api/coffea.jetmet_tools.JetTransformer.html#coffea.jetmet_tools.JetTransformer) which applies specified corrections and computes uncertainties in one call. First we build the desired jet correction stack to apply. This will usually be some set of the various JEC and JER correction text files that depends on the jet cone size (AK4, AK8) and the pileup mitigation algorithm, as well as the data-taking year they are associated with." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['Fall17_17Nov2017_V32_MC_L2Relative_AK4PFPuppi', 'Fall17_17Nov2017_V32_MC_Uncertainty_AK4PFPuppi']\n" + ] + } + ], + "source": [ + "from coffea.jetmet_tools import FactorizedJetCorrector, JetCorrectionUncertainty\n", + "from coffea.jetmet_tools import JECStack, CorrectedJetsFactory\n", + "import numpy as np\n", + "\n", + "ext = extractor()\n", + "ext.add_weight_sets([\n", + " \"* * data/Fall17_17Nov2017_V32_MC_L2Relative_AK4PFPuppi.jec.txt\",\n", + " \"* * data/Fall17_17Nov2017_V32_MC_Uncertainty_AK4PFPuppi.junc.txt\",\n", + "])\n", + "ext.finalize()\n", + "\n", + "jec_stack_names = [\n", + " \"Fall17_17Nov2017_V32_MC_L2Relative_AK4PFPuppi\",\n", + " \"Fall17_17Nov2017_V32_MC_Uncertainty_AK4PFPuppi\"\n", + "]\n", + "\n", + "evaluator = ext.make_evaluator()\n", + "\n", + "jec_inputs = {name: evaluator[name] for name in jec_stack_names}\n", + "jec_stack = JECStack(jec_inputs)\n", + "### more possibilities are available if you send in more pieces of the JEC stack\n", + "# mc2016_ak8_jxform = JECStack([\"more\", \"names\", \"of\", \"JEC parts\"])\n", + "\n", + "print(dir(evaluator))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we prepare some auxilary variables that are used to parameterize the jet energy corrections, such as jet area, mass, and event $\\rho$ (mean pileup energy density), and pass all of these into the `CorrectedJetsFactory`:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "starting columns: {'chHEF', 'jetId', 'pt_gen', 'phi', 'bRegCorr', 'electronIdx2', 'bRegRes', 'mass', 'btagCMVA', 'electronIdx1', 'pt', 'partonFlavour', 'muEF', 'jercCHPUF', 'muonIdx1', 'genJetIdx', 'hadronFlavour', 'btagDeepB', 'btagDeepC', 'neEmEF', 'btagDeepFlavC', 'electronIdx2G', 'genJetIdxG', 'pt_raw', 'btagDeepFlavB', 'qgl', 'muonIdx1G', 'electronIdxG', 'muonSubtrFactor', 'electronIdx1G', 'rho', 'eta', 'nConstituents', 'neHEF', 'cleanmask', 'chEmEF', 'muonIdx2', 'jercCHF', 'btagCSVV2', 'puId', 'muonIdxG', 'rawFactor', 'nMuons', 'mass_raw', 'muonIdx2G', 'area', 'nElectrons'}\n", + "new columns: {'mass_jec', 'jet_energy_uncertainty_jes', 'JES_jes', 'jet_energy_correction', 'pt_orig', 'pt_jec', 'mass_orig'}\n" + ] + } + ], + "source": [ + "name_map = jec_stack.blank_name_map\n", + "name_map['JetPt'] = 'pt'\n", + "name_map['JetMass'] = 'mass'\n", + "name_map['JetEta'] = 'eta'\n", + "name_map['JetA'] = 'area'\n", + "\n", + "jets = events.Jet\n", + " \n", + "jets['pt_raw'] = (1 - jets['rawFactor']) * jets['pt']\n", + "jets['mass_raw'] = (1 - jets['rawFactor']) * jets['mass']\n", + "jets['pt_gen'] = ak.values_astype(ak.fill_none(jets.matched_gen.pt, 0), np.float32)\n", + "jets['PU_rho'] = ak.broadcast_arrays(events.fixedGridRhoFastjetAll, jets.pt)[0]\n", + "name_map['ptGenJet'] = 'pt_gen'\n", + "name_map['ptRaw'] = 'pt_raw'\n", + "name_map['massRaw'] = 'mass_raw'\n", + "name_map['Rho'] = 'PU_rho'\n", + " \n", + "corrector = FactorizedJetCorrector(\n", + " Fall17_17Nov2017_V32_MC_L2Relative_AK4PFPuppi=evaluator['Fall17_17Nov2017_V32_MC_L2Relative_AK4PFPuppi'],\n", + ")\n", + "uncertainties = JetCorrectionUncertainty(\n", + " Fall17_17Nov2017_V32_MC_Uncertainty_AK4PFPuppi=evaluator['Fall17_17Nov2017_V32_MC_Uncertainty_AK4PFPuppi']\n", + ")\n", + "\n", + "jet_factory = CorrectedJetsFactory(name_map, jec_stack)\n", + "corrected_jets = jet_factory.build(jets)\n", + "\n", + "print('starting columns:', set(ak.fields(jets)))\n", + "print('new columns:', set(ak.fields(corrected_jets)) - set(ak.fields(jets)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Below we show that the corrected jets indeed have a different $p_T$ and mass than we started with" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "untransformed pt ratios [[1.12, 1.09, 1.2, 1.35, 1.27], [1.03, 1.08, ..., 1, 0.918], ..., [1.13, 0.978]]\n", + "untransformed mass ratios [[1.12, 1.09, 1.2, 1.35, 1.27], [1.03, 1.08, ..., 1, 0.918], ..., [1.13, 0.978]]\n", + "transformed pt ratios [[1.2, 1.3, 1.46, 2.09, 2.1], [1.09, 1.29, ..., 1.22, 1.83], ..., [1.37, 1.15]]\n", + "transformed mass ratios [[1.2, 1.3, 1.46, 2.09, 2.1], [1.09, 1.29, ..., 1.22, 1.83], ..., [1.37, 1.15]]\n", + "JES UP pt ratio [[1.22, 1.35, 1.56, 2.34, 2.37], [1.1, 1.32, ..., 1.94], ..., [1.41, 1.17]]\n", + "JES DOWN pt ratio [[1.19, 1.25, 1.35, 1.83, 1.83], [1.08, 1.26, ..., 1.73], ..., [1.33, 1.12]]\n" + ] + } + ], + "source": [ + "print('untransformed pt ratios', (jets.pt/jets.pt_raw).compute())\n", + "print('untransformed mass ratios', (jets.mass/jets.mass_raw).compute())\n", + "\n", + "print('transformed pt ratios', (corrected_jets.pt/corrected_jets.pt_raw).compute())\n", + "print('transformed mass ratios', (corrected_jets.mass/corrected_jets.mass_raw).compute())\n", + "\n", + "print('JES UP pt ratio', (corrected_jets.JES_jes.up.pt/corrected_jets.pt_raw).compute())\n", + "print('JES DOWN pt ratio', (corrected_jets.JES_jes.down.pt/corrected_jets.pt_raw).compute())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Applying CMS b-tagging corrections with btag_tools\n", + "The `coffea.btag_tools` module provides the high-level utility [BTagScaleFactor](https://coffeateam.github.io/coffea/api/coffea.btag_tools.BTagScaleFactor.html#coffea.btag_tools.BTagScaleFactor) which calculates per-jet weights for b-tagging as well as light flavor mis-tagging efficiencies. Uncertainties can be calculated as well." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "SF: [[1.52, 1.56, 1.59, 1.6, 1.6], [0.969, 1.57, ..., 1.6, 1.6], ..., [1.6, 1.6]]\n", + "systematic +: [[1.72, 1.77, 1.79, 1.8, 1.8], [1.01, 1.78, ..., 1.8, 1.8], ..., [1.8, 1.8]]\n", + "systematic -: [[1.31, 1.36, 1.38, 1.4, 1.4], [0.925, 1.37, ..., 1.4, 1.4], ..., [1.4, 1.4]]\n" + ] + } + ], + "source": [ + "from coffea.btag_tools import BTagScaleFactor\n", + "\n", + "btag_sf = BTagScaleFactor(\"data/DeepCSV_102XSF_V1.btag.csv.gz\", \"medium\")\n", + "\n", + "print(\"SF:\", btag_sf.eval(\"central\", events.Jet.hadronFlavour, abs(events.Jet.eta), events.Jet.pt).compute())\n", + "print(\"systematic +:\", btag_sf.eval(\"up\", events.Jet.hadronFlavour, abs(events.Jet.eta), events.Jet.pt).compute())\n", + "print(\"systematic -:\", btag_sf.eval(\"down\", events.Jet.hadronFlavour, abs(events.Jet.eta), events.Jet.pt).compute())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using correctionlib\n", + "\n", + "For the most part, using correctionlib is straightforward. We'll show here how to convert the custom correction we derived earlier (`corr`) into a correctionlib object, and save it in the json format:" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
CorrectionSet (schema v2)\n",
+       "my custom corrections\n",
+       "📂\n",
+       "└── 📈 gen2_to_gen1 (v0)\n",
+       "    Reweights gen2 to agree with gen1\n",
+       "    Node counts: MultiBinning: 1\n",
+       "    ╭──────────── ▶ input ─────────────╮ ╭──────────── ▶ input ────────────╮\n",
+       "    │ pt (real)                        │ │ eta (real)                      │\n",
+       "    │ pt                               │ │ eta                             │\n",
+       "    │ Range: [0.0, 100.0), overflow ok │ │ Range: [-3.0, 3.0), overflow ok │\n",
+       "    ╰──────────────────────────────────╯ ╰─────────────────────────────────╯\n",
+       "    ╭─── ◀ output ───╮\n",
+       "    │ out (real)     │\n",
+       "    │ No description │\n",
+       "    ╰────────────────╯\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[1mCorrectionSet\u001b[0m (\u001b[3mschema v2\u001b[0m)\n", + "my custom corrections\n", + "📂\n", + "└── 📈 \u001b[1mgen2_to_gen1\u001b[0m (v0)\n", + " Reweights gen2 to agree with gen1\n", + " Node counts: \u001b[1mMultiBinning\u001b[0m: 1\n", + " ╭──────────── ▶ input ─────────────╮ ╭──────────── ▶ input ────────────╮\n", + " │ \u001b[1mpt\u001b[0m (real) │ │ \u001b[1meta\u001b[0m (real) │\n", + " │ pt │ │ eta │\n", + " │ Range: [0.0, 100.0), overflow ok │ │ Range: [-3.0, 3.0), overflow ok │\n", + " ╰──────────────────────────────────╯ ╰─────────────────────────────────╯\n", + " ╭─── ◀ output ───╮\n", + " │ \u001b[1mout\u001b[0m (real) │\n", + " │ \u001b[3mNo description\u001b[0m │\n", + " ╰────────────────╯\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import correctionlib\n", + "import rich\n", + "import correctionlib.convert\n", + "\n", + "# without a name, the resulting object will fail validation\n", + "sfhist.name = \"gen2_to_gen1\"\n", + "sfhist.label = \"out\"\n", + "clibcorr = correctionlib.convert.from_histogram(sfhist)\n", + "clibcorr.description = \"Reweights gen2 to agree with gen1\"\n", + "# set overflow bins behavior (default is to raise an error when out of bounds)\n", + "clibcorr.data.flow = \"clamp\"\n", + "\n", + "cset = correctionlib.schemav2.CorrectionSet(\n", + " schema_version=2,\n", + " description=\"my custom corrections\",\n", + " corrections=[clibcorr],\n", + ")\n", + "rich.print(cset)\n", + "\n", + "with open(\"data/mycorrections.json\", \"w\") as fout:\n", + " fout.write(cset.json(exclude_unset=True))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now use this new correction in a similar way to the original `corr()` object:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([1.01495674, 1.40799728, 1.31112463, ..., 0.37951701, 1.16222439,\n", + " 0.73213844])" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ceval = cset.to_evaluator()\n", + "\n", + "ceval[\"gen2_to_gen1\"].evaluate(ptvals, etavals)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "At the time of writing, `correctionlib` does not support jagged arrays. A `correctionlib_wrapper` provided in `coffea.lookup_tools` allows for the processing of jagged array inputs." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[[1, 0.273, 0.722, 1.02, 1.02],\n",
+       " [0.496, 0.439, 0.912, 0.952, 1.02, 0.952, 1.16, 1.02],\n",
+       " [1, 0.393, 0.609, 0.516, 1],\n",
+       " [0.496, 0.69, 0.952],\n",
+       " [0.397, 0.347, 0.722, 0.952, 0.952],\n",
+       " [0.778, 0.439, 0.732, 0.935, 0.679, 0.952, 1.02, 1.09],\n",
+       " [0.331, 0.519, 0.69, 0.776],\n",
+       " [0.69, 0.776, 0.679, 0.952],\n",
+       " [0.679],\n",
+       " [0.993, 0.668, 0.439, 0.732, 0.776, 0.722, 1.02, 1.16, 1.02],\n",
+       " ...,\n",
+       " [0.888, 0.935],\n",
+       " [0.679, 1.02, 1.02, 1.02],\n",
+       " [0.273, 0.443, 0.776, 1.13, 1.09, 0.952, 1.16, 1.16, 1.02],\n",
+       " [0.749, 0.722, 0.935],\n",
+       " [1.13, 1.09],\n",
+       " [0.912, 1, 1.09],\n",
+       " [1.01],\n",
+       " [0.607, 0.551, 1, 0.679, 1, 1.09],\n",
+       " [0.952, 1.16]]\n",
+       "--------------------------------------------------------------\n",
+       "type: 40 * var * float64
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from coffea.lookup_tools.correctionlib_wrapper import correctionlib_wrapper\n", + "\n", + "wrap_c = correctionlib_wrapper(ceval[\"gen2_to_gen1\"])\n", + "wrap_c(events.Jet.pt, events.Jet.eta).compute()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Alternatively, we can use the awkward utilities `flatten` and `unflatten` to convert awkward arrays into numpy arrays for evaluation." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[[1, 0.273, 0.722, 1.02, 1.02],\n",
+       " [0.496, 0.439, 0.912, 0.952, 1.02, 0.952, 1.16, 1.02],\n",
+       " [1, 0.393, 0.609, 0.516, 1],\n",
+       " [0.496, 0.69, 0.952],\n",
+       " [0.397, 0.347, 0.722, 0.952, 0.952],\n",
+       " [0.778, 0.439, 0.732, 0.935, 0.679, 0.952, 1.02, 1.09],\n",
+       " [0.331, 0.519, 0.69, 0.776],\n",
+       " [0.69, 0.776, 0.679, 0.952],\n",
+       " [0.679],\n",
+       " [0.993, 0.668, 0.439, 0.732, 0.776, 0.722, 1.02, 1.16, 1.02],\n",
+       " ...,\n",
+       " [0.888, 0.935],\n",
+       " [0.679, 1.02, 1.02, 1.02],\n",
+       " [0.273, 0.443, 0.776, 1.13, 1.09, 0.952, 1.16, 1.16, 1.02],\n",
+       " [0.749, 0.722, 0.935],\n",
+       " [1.13, 1.09],\n",
+       " [0.912, 1, 1.09],\n",
+       " [1.01],\n",
+       " [0.607, 0.551, 1, 0.679, 1, 1.09],\n",
+       " [0.952, 1.16]]\n",
+       "--------------------------------------------------------------\n",
+       "type: 40 * var * float64
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def myJetSF(jets):\n", + " j, nj = ak.flatten(jets), ak.num(jets)\n", + " sf = ceval[\"gen2_to_gen1\"].evaluate(np.array(j.pt), np.array(j.eta))\n", + " return ak.unflatten(sf, nj)\n", + "\n", + "myJetSF(events.Jet.compute())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.11.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/_sources/notebooks/dataset_discovery.ipynb.txt b/_sources/notebooks/dataset_discovery.ipynb.txt new file mode 100644 index 000000000..571f11a7a --- /dev/null +++ b/_sources/notebooks/dataset_discovery.ipynb.txt @@ -0,0 +1,2003 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "c5754206-f41b-4e08-bc4d-496df85e8194", + "metadata": {}, + "source": [ + "# Dataset discovery tools\n", + "\n", + "This notebook shows some features to make the dataset discovery for CMS analysis easier. \n", + "The rucio sytem is queried to look for dataset and access to the list of all available file replicas.\n", + "\n", + "Users can exploit these tools at 2 different levels:\n", + "- low level: use the `rucio_utils` module directly to just query rucio\n", + "- high level: use the `DataDiscoveryCLI` class to simplify dataset query, replicas filters and uproot preprocessing with dask" + ] + }, + { + "cell_type": "markdown", + "id": "42242097-c04e-459e-9f3a-1d746df4e9dd", + "metadata": {}, + "source": [ + "## Using Rucio utils directly" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "09103c77-b8e6-4d61-920b-b1ff8fba8791", + "metadata": {}, + "outputs": [], + "source": [ + "from coffea.dataset_tools import rucio_utils\n", + "from coffea.dataset_tools.dataset_query import print_dataset_query\n", + "from rich.console import Console\n", + "from rich.table import Table" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "d62b43cb-53c0-4e2d-b571-1a0683e34dc5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "client = rucio_utils.get_rucio_client()\n", + "client" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "0359afc0-fc98-4aa8-acf4-288ef19ac7db", + "metadata": {}, + "outputs": [], + "source": [ + "query = \"/TTToSemiLeptonic_*_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9*/NANOAODSIM\"" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "659bee88-9fb0-4d1a-9544-a97372595f18", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['/TTToSemiLeptonic_TuneCP5CR1_erdON_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM',\n", + " '/TTToSemiLeptonic_TuneCP5CR2_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2/NANOAODSIM',\n", + " '/TTToSemiLeptonic_TuneCP5_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM',\n", + " '/TTToSemiLeptonic_TuneCP5_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM']" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "outlist, outtree = rucio_utils.query_dataset(\n", + " query,\n", + " client=client,\n", + " tree=True,\n", + " scope=\"cms\", \n", + " )\n", + "\n", + "outlist[1:5]" + ] + }, + { + "cell_type": "markdown", + "id": "9bc2a454-4915-4366-9c02-2e389e9eb6fb", + "metadata": {}, + "source": [ + "Let's now pretty-print the results in a table using an utility function in the `dataset_query` module." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "4487d997-dc22-4a47-87df-4da14fa5b35a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
              Query: /TTToSemiLeptonic_*_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9*/NANOAODSIM               \n",
+       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳┓\n",
+       "┃ Name                               Tag                                                                        ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇┩\n",
+       "│ TTToSemiLeptonic_TuneCP5CR1_13Te…  (1) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2/NAN… │\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_TuneCP5CR1_erdO…  (2) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NAN… ││\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_TuneCP5CR2_13Te…  (3) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2/NAN… │\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_TuneCP5_13TeV-p…  (4) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NAN… ││\n",
+       "│                                    (5) RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v… │\n",
+       "│                                    (6) RunIISummer20UL18NanoAODv9-PUForMUOVal_106X_upgrade2018_realistic_v16… ││\n",
+       "│                                    (7) RunIISummer20UL18NanoAODv9-PUForTRK_TRK_106X_upgrade2018_realistic_v1… │\n",
+       "│                                    (8) RunIISummer20UL18NanoAODv9-PUForTRKv2_TRKv2_106X_upgrade2018_realisti… ││\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_TuneCP5_erdON_1…  (9) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NAN… │\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_TuneCP5down_13T…  (10) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… ││\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_TuneCP5up_13TeV…  (11) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… │\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_Vcb_TuneCP5_13T…  (12) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2/NA… ││\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_hdampDOWN_TuneC…  (13) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… │\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_hdampUP_TuneCP5…  (14) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… ││\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_mtop166p5_TuneC…  (15) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… │\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_mtop169p5_TuneC…  (16) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… ││\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_mtop171p5_TuneC…  (17) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… │\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_mtop173p5_TuneC…  (18) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… ││\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_mtop175p5_TuneC…  (19) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… │\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_mtop178p5_TuneC…  (20) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… ││\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_widthx0p55_Tune…  (21) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… │\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_widthx0p7_TuneC…  (22) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… ││\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_widthx0p85_Tune…  (23) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… │\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_widthx1p15_Tune…  (24) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… ││\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_widthx1p3_TuneC…  (25) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… │\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_widthx1p45_Tune…  (26) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… ││\n",
+       "└───────────────────────────────────┴────────────────────────────────────────────────────────────────────────────┴┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3m Query: \u001b[0m\u001b[1;3;31m/TTToSemiLeptonic_*_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9*/NANOAODSIM\u001b[0m\u001b[3m \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mName \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mTag \u001b[0m\u001b[1m \u001b[0m┃┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇┩\n", + "│\u001b[2;36m \u001b[0m\u001b[2;36mTTToSemiLeptonic_TuneCP5CR1_13Te…\u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[1;2;35m(1)\u001b[0m\u001b[2;35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2/NAN…\u001b[0m\u001b[2;35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[36m \u001b[0m\u001b[36mTTToSemiLeptonic_TuneCP5CR1_erdO…\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[1;35m(2)\u001b[0m\u001b[35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NAN…\u001b[0m\u001b[35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[2;36m \u001b[0m\u001b[2;36mTTToSemiLeptonic_TuneCP5CR2_13Te…\u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[1;2;35m(3)\u001b[0m\u001b[2;35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2/NAN…\u001b[0m\u001b[2;35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[36m \u001b[0m\u001b[36mTTToSemiLeptonic_TuneCP5_13TeV-p…\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[1;35m(4)\u001b[0m\u001b[35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NAN…\u001b[0m\u001b[35m \u001b[0m││\n", + "│\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[1;2;35m(5)\u001b[0m\u001b[2;35m RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v…\u001b[0m\u001b[2;35m \u001b[0m││\n", + "│\u001b[36m \u001b[0m\u001b[36m \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[1;35m(6)\u001b[0m\u001b[35m RunIISummer20UL18NanoAODv9-PUForMUOVal_106X_upgrade2018_realistic_v16…\u001b[0m\u001b[35m \u001b[0m││\n", + "│\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[1;2;35m(7)\u001b[0m\u001b[2;35m RunIISummer20UL18NanoAODv9-PUForTRK_TRK_106X_upgrade2018_realistic_v1…\u001b[0m\u001b[2;35m \u001b[0m││\n", + "│\u001b[36m \u001b[0m\u001b[36m \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[1;35m(8)\u001b[0m\u001b[35m RunIISummer20UL18NanoAODv9-PUForTRKv2_TRKv2_106X_upgrade2018_realisti…\u001b[0m\u001b[35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[2;36m \u001b[0m\u001b[2;36mTTToSemiLeptonic_TuneCP5_erdON_1…\u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[1;2;35m(9)\u001b[0m\u001b[2;35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NAN…\u001b[0m\u001b[2;35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[36m \u001b[0m\u001b[36mTTToSemiLeptonic_TuneCP5down_13T…\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[1;35m(10)\u001b[0m\u001b[35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[2;36m \u001b[0m\u001b[2;36mTTToSemiLeptonic_TuneCP5up_13TeV…\u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[1;2;35m(11)\u001b[0m\u001b[2;35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[2;35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[36m \u001b[0m\u001b[36mTTToSemiLeptonic_Vcb_TuneCP5_13T…\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[1;35m(12)\u001b[0m\u001b[35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2/NA…\u001b[0m\u001b[35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[2;36m \u001b[0m\u001b[2;36mTTToSemiLeptonic_hdampDOWN_TuneC…\u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[1;2;35m(13)\u001b[0m\u001b[2;35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[2;35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[36m \u001b[0m\u001b[36mTTToSemiLeptonic_hdampUP_TuneCP5…\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[1;35m(14)\u001b[0m\u001b[35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[2;36m \u001b[0m\u001b[2;36mTTToSemiLeptonic_mtop166p5_TuneC…\u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[1;2;35m(15)\u001b[0m\u001b[2;35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[2;35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[36m \u001b[0m\u001b[36mTTToSemiLeptonic_mtop169p5_TuneC…\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[1;35m(16)\u001b[0m\u001b[35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[2;36m \u001b[0m\u001b[2;36mTTToSemiLeptonic_mtop171p5_TuneC…\u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[1;2;35m(17)\u001b[0m\u001b[2;35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[2;35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[36m \u001b[0m\u001b[36mTTToSemiLeptonic_mtop173p5_TuneC…\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[1;35m(18)\u001b[0m\u001b[35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[2;36m \u001b[0m\u001b[2;36mTTToSemiLeptonic_mtop175p5_TuneC…\u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[1;2;35m(19)\u001b[0m\u001b[2;35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[2;35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[36m \u001b[0m\u001b[36mTTToSemiLeptonic_mtop178p5_TuneC…\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[1;35m(20)\u001b[0m\u001b[35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[2;36m \u001b[0m\u001b[2;36mTTToSemiLeptonic_widthx0p55_Tune…\u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[1;2;35m(21)\u001b[0m\u001b[2;35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[2;35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[36m \u001b[0m\u001b[36mTTToSemiLeptonic_widthx0p7_TuneC…\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[1;35m(22)\u001b[0m\u001b[35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[2;36m \u001b[0m\u001b[2;36mTTToSemiLeptonic_widthx0p85_Tune…\u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[1;2;35m(23)\u001b[0m\u001b[2;35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[2;35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[36m \u001b[0m\u001b[36mTTToSemiLeptonic_widthx1p15_Tune…\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[1;35m(24)\u001b[0m\u001b[35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[2;36m \u001b[0m\u001b[2;36mTTToSemiLeptonic_widthx1p3_TuneC…\u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[1;2;35m(25)\u001b[0m\u001b[2;35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[2;35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[36m \u001b[0m\u001b[36mTTToSemiLeptonic_widthx1p45_Tune…\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[1;35m(26)\u001b[0m\u001b[35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[35m \u001b[0m││\n", + "└───────────────────────────────────┴────────────────────────────────────────────────────────────────────────────┴┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "console = Console()\n", + "print_dataset_query(query, outtree, console)" + ] + }, + { + "cell_type": "markdown", + "id": "c213d5fc-6424-4cdf-8751-88ced7987a59", + "metadata": {}, + "source": [ + "### Dataset replicas" + ] + }, + { + "cell_type": "markdown", + "id": "961b4ad8-e3d6-49b1-a2ce-7cad49b46f06", + "metadata": {}, + "source": [ + "Let's select one dataset and look for available replicas" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "d08fd6ed-4b3a-4e9f-994a-d1bd529421a7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'/TTToSemiLeptonic_TuneCP5CR1_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2/NANOAODSIM'" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dataset = outlist[0]\n", + "dataset" + ] + }, + { + "cell_type": "markdown", + "id": "a605fb64-6e0b-4fbe-8807-84b9d75f2d53", + "metadata": {}, + "source": [ + "Using the option `mode='full'` in the function `rucio_utils.get_dataset_file_replicas()` one gets all the available replicas. " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "2d64069e-ea8f-48c2-bd33-43fc555f6ec8", + "metadata": {}, + "outputs": [], + "source": [ + "try:\n", + " (\n", + " outfiles,\n", + " outsites,\n", + " sites_counts,\n", + " ) = rucio_utils.get_dataset_files_replicas(\n", + " dataset,\n", + " allowlist_sites=[],\n", + " blocklist_sites=[],\n", + " regex_sites=[],\n", + " mode=\"full\", # full or first. \"full\"==all the available replicas\n", + " client=client,\n", + " )\n", + "except Exception as e:\n", + " print(f\"\\n[red bold] Exception: {e}[/]\")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "3e4fc6c2-f378-40d2-a4ea-f265b6c18887", + "metadata": {}, + "outputs": [], + "source": [ + "def print_replicas(sites_counts):\n", + " console.print(f\"[cyan]Sites availability for dataset: [red]{dataset}\")\n", + " table = Table(title=\"Available replicas\")\n", + " table.add_column(\"Index\", justify=\"center\")\n", + " table.add_column(\"Site\", justify=\"left\", style=\"cyan\", no_wrap=True)\n", + " table.add_column(\"Files\", style=\"magenta\", no_wrap=True)\n", + " table.add_column(\"Availability\", justify=\"center\")\n", + " table.row_styles = [\"dim\", \"none\"]\n", + " Nfiles = len(outfiles)\n", + " \n", + " sorted_sites = dict(\n", + " sorted(sites_counts.items(), key=lambda x: x[1], reverse=True)\n", + " )\n", + " for i, (site, stat) in enumerate(sorted_sites.items()):\n", + " table.add_row(\n", + " str(i), site, f\"{stat} / {Nfiles}\", f\"{stat*100/Nfiles:.1f}%\"\n", + " )\n", + " console.print(table)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "79c68044-dc3b-4dd5-a0d3-c3f6ddd0bea1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Sites availability for dataset: \n",
+       "/TTToSemiLeptonic_TuneCP5CR1_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2\n",
+       "/NANOAODSIM\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[36mSites availability for dataset: \u001b[0m\n", + "\u001b[31m/TTToSemiLeptonic_TuneCP5CR1_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2\u001b[0m\n", + "\u001b[31m/\u001b[0m\u001b[31mNANOAODSIM\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
                    Available replicas                    \n",
+       "┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━┓\n",
+       "┃ Index  Site                 Files      Availability ┃\n",
+       "┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━┩\n",
+       "│   0    T2_DE_DESY           294 / 294     100.0%    │\n",
+       "│   1   │ T1_DE_KIT_Disk       294 / 294 │    100.0%    │\n",
+       "│   2    T1_UK_RAL_Disk       294 / 294     100.0%    │\n",
+       "│   3   │ T1_RU_JINR_Disk      294 / 294 │    100.0%    │\n",
+       "│   4    T3_CH_PSI            294 / 294     100.0%    │\n",
+       "│   5   │ T3_KR_UOS            294 / 294 │    100.0%    │\n",
+       "│   6    T1_US_FNAL_Disk      193 / 294     65.6%     │\n",
+       "│   7   │ T2_US_Nebraska       99 / 294  │    33.7%     │\n",
+       "│   8    T1_IT_CNAF_Disk      58 / 294      19.7%     │\n",
+       "│   9   │ T2_US_Purdue         53 / 294  │    18.0%     │\n",
+       "│  10    T2_BE_IIHE           50 / 294      17.0%     │\n",
+       "│  11   │ T2_US_MIT            50 / 294  │    17.0%     │\n",
+       "│  12    T1_ES_PIC_Disk       43 / 294      14.6%     │\n",
+       "│  13   │ T2_US_Vanderbilt     40 / 294  │    13.6%     │\n",
+       "│  14    T2_BR_SPRACE         39 / 294      13.3%     │\n",
+       "│  15   │ T2_US_Florida        33 / 294  │    11.2%     │\n",
+       "│  16    T2_IT_Legnaro        28 / 294       9.5%     │\n",
+       "│  17   │ T2_US_UCSD           28 / 294  │     9.5%     │\n",
+       "│  18    T2_UA_KIPT           26 / 294       8.8%     │\n",
+       "│  19   │ T2_US_Caltech        24 / 294  │     8.2%     │\n",
+       "│  20    T2_US_Wisconsin      22 / 294       7.5%     │\n",
+       "│  21   │ T2_TR_METU           18 / 294  │     6.1%     │\n",
+       "│  22    T2_ES_CIEMAT         17 / 294       5.8%     │\n",
+       "│  23   │ T2_DE_RWTH           11 / 294  │     3.7%     │\n",
+       "│  24    T2_BR_UERJ           7 / 294        2.4%     │\n",
+       "│  25   │ T2_UK_SGrid_Bristol  3 / 294   │     1.0%     │\n",
+       "│  26    T2_ES_IFCA           2 / 294        0.7%     │\n",
+       "└───────┴─────────────────────┴───────────┴──────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3m Available replicas \u001b[0m\n", + "┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mIndex\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mSite \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mFiles \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mAvailability\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━┩\n", + "│\u001b[2m \u001b[0m\u001b[2m 0 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_DE_DESY \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m294 / 294\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 100.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 1 │\u001b[36m \u001b[0m\u001b[36mT1_DE_KIT_Disk \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m294 / 294\u001b[0m\u001b[35m \u001b[0m│ 100.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 2 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_UK_RAL_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m294 / 294\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 100.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 3 │\u001b[36m \u001b[0m\u001b[36mT1_RU_JINR_Disk \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m294 / 294\u001b[0m\u001b[35m \u001b[0m│ 100.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 4 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT3_CH_PSI \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m294 / 294\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 100.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 5 │\u001b[36m \u001b[0m\u001b[36mT3_KR_UOS \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m294 / 294\u001b[0m\u001b[35m \u001b[0m│ 100.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 6 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_US_FNAL_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m193 / 294\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 65.6% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 7 │\u001b[36m \u001b[0m\u001b[36mT2_US_Nebraska \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m99 / 294 \u001b[0m\u001b[35m \u001b[0m│ 33.7% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 8 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_IT_CNAF_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m58 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 19.7% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 9 │\u001b[36m \u001b[0m\u001b[36mT2_US_Purdue \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m53 / 294 \u001b[0m\u001b[35m \u001b[0m│ 18.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 10 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_BE_IIHE \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m50 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 17.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 11 │\u001b[36m \u001b[0m\u001b[36mT2_US_MIT \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m50 / 294 \u001b[0m\u001b[35m \u001b[0m│ 17.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 12 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_ES_PIC_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m43 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 14.6% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 13 │\u001b[36m \u001b[0m\u001b[36mT2_US_Vanderbilt \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m40 / 294 \u001b[0m\u001b[35m \u001b[0m│ 13.6% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 14 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_BR_SPRACE \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m39 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 13.3% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 15 │\u001b[36m \u001b[0m\u001b[36mT2_US_Florida \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m33 / 294 \u001b[0m\u001b[35m \u001b[0m│ 11.2% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 16 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_IT_Legnaro \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m28 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 9.5% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 17 │\u001b[36m \u001b[0m\u001b[36mT2_US_UCSD \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m28 / 294 \u001b[0m\u001b[35m \u001b[0m│ 9.5% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 18 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_UA_KIPT \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m26 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 8.8% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 19 │\u001b[36m \u001b[0m\u001b[36mT2_US_Caltech \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m24 / 294 \u001b[0m\u001b[35m \u001b[0m│ 8.2% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 20 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_US_Wisconsin \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m22 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 7.5% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 21 │\u001b[36m \u001b[0m\u001b[36mT2_TR_METU \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m18 / 294 \u001b[0m\u001b[35m \u001b[0m│ 6.1% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 22 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_ES_CIEMAT \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m17 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 5.8% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 23 │\u001b[36m \u001b[0m\u001b[36mT2_DE_RWTH \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m11 / 294 \u001b[0m\u001b[35m \u001b[0m│ 3.7% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 24 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_BR_UERJ \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m7 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 2.4% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 25 │\u001b[36m \u001b[0m\u001b[36mT2_UK_SGrid_Bristol\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m3 / 294 \u001b[0m\u001b[35m \u001b[0m│ 1.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 26 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_ES_IFCA \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m2 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 0.7% \u001b[0m\u001b[2m \u001b[0m│\n", + "└───────┴─────────────────────┴───────────┴──────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "print_replicas(sites_counts)" + ] + }, + { + "cell_type": "markdown", + "id": "c9544ceb-5949-4bd3-b997-14da4aa2d956", + "metadata": {}, + "source": [ + "### Filtering sites\n", + "Grid sites can be filtered in 3 different ways\n", + "- **allowlist**: if this list of specified, only the sites in the list are considered. No blocklist and regex are considered\n", + "- **blocklist**: if this list is specified, those sites are excluded from the replicas\n", + "- **regex_sites**: regex filter the sites to be considered, on top of the blocklist" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "1f6b586c-a8b7-40d8-a25a-b02e94f4a892", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Sites availability for dataset: \n",
+       "/TTToSemiLeptonic_TuneCP5CR1_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2\n",
+       "/NANOAODSIM\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[36mSites availability for dataset: \u001b[0m\n", + "\u001b[31m/TTToSemiLeptonic_TuneCP5CR1_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2\u001b[0m\n", + "\u001b[31m/\u001b[0m\u001b[31mNANOAODSIM\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
                  Available replicas                  \n",
+       "┏━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━┓\n",
+       "┃ Index  Site             Files      Availability ┃\n",
+       "┡━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━┩\n",
+       "│   0    T2_DE_DESY       294 / 294     100.0%    │\n",
+       "│   1   │ T1_US_FNAL_Disk  193 / 294 │    65.6%     │\n",
+       "└───────┴─────────────────┴───────────┴──────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3m Available replicas \u001b[0m\n", + "┏━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mIndex\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mSite \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mFiles \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mAvailability\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━┩\n", + "│\u001b[2m \u001b[0m\u001b[2m 0 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_DE_DESY \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m294 / 294\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 100.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 1 │\u001b[36m \u001b[0m\u001b[36mT1_US_FNAL_Disk\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m193 / 294\u001b[0m\u001b[35m \u001b[0m│ 65.6% │\n", + "└───────┴─────────────────┴───────────┴──────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Example with allowlist\n", + "try:\n", + " (\n", + " outfiles,\n", + " outsites,\n", + " sites_counts,\n", + " ) = rucio_utils.get_dataset_files_replicas(\n", + " dataset,\n", + " allowlist_sites=[\"T2_DE_DESY\", \"T1_US_FNAL_Disk\"],\n", + " blocklist_sites=[],\n", + " regex_sites=None,\n", + " mode=\"full\", # full or first. \"full\"==all the available replicas\n", + " client=client,\n", + " )\n", + "except Exception as e:\n", + " print(f\"\\n[red bold] Exception: {e}[/]\")\n", + "\n", + "print_replicas(sites_counts)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "12f7e403-67fe-42c0-a3ee-a668006b1836", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Sites availability for dataset: \n",
+       "/TTToSemiLeptonic_TuneCP5CR1_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2\n",
+       "/NANOAODSIM\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[36mSites availability for dataset: \u001b[0m\n", + "\u001b[31m/TTToSemiLeptonic_TuneCP5CR1_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2\u001b[0m\n", + "\u001b[31m/\u001b[0m\u001b[31mNANOAODSIM\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
                    Available replicas                    \n",
+       "┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━┓\n",
+       "┃ Index  Site                 Files      Availability ┃\n",
+       "┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━┩\n",
+       "│   0    T1_DE_KIT_Disk       294 / 294     100.0%    │\n",
+       "│   1   │ T1_UK_RAL_Disk       294 / 294 │    100.0%    │\n",
+       "│   2    T1_RU_JINR_Disk      294 / 294     100.0%    │\n",
+       "│   3   │ T3_KR_UOS            294 / 294 │    100.0%    │\n",
+       "│   4    T1_US_FNAL_Disk      193 / 294     65.6%     │\n",
+       "│   5   │ T2_US_Nebraska       99 / 294  │    33.7%     │\n",
+       "│   6    T1_IT_CNAF_Disk      58 / 294      19.7%     │\n",
+       "│   7   │ T2_US_Purdue         53 / 294  │    18.0%     │\n",
+       "│   8    T2_BE_IIHE           50 / 294      17.0%     │\n",
+       "│   9   │ T2_US_MIT            50 / 294  │    17.0%     │\n",
+       "│  10    T1_ES_PIC_Disk       43 / 294      14.6%     │\n",
+       "│  11   │ T2_US_Vanderbilt     40 / 294  │    13.6%     │\n",
+       "│  12    T2_BR_SPRACE         39 / 294      13.3%     │\n",
+       "│  13   │ T2_US_Florida        33 / 294  │    11.2%     │\n",
+       "│  14    T2_IT_Legnaro        28 / 294       9.5%     │\n",
+       "│  15   │ T2_US_UCSD           28 / 294  │     9.5%     │\n",
+       "│  16    T2_UA_KIPT           26 / 294       8.8%     │\n",
+       "│  17   │ T2_US_Caltech        24 / 294  │     8.2%     │\n",
+       "│  18    T2_US_Wisconsin      22 / 294       7.5%     │\n",
+       "│  19   │ T2_TR_METU           18 / 294  │     6.1%     │\n",
+       "│  20    T2_ES_CIEMAT         17 / 294       5.8%     │\n",
+       "│  21   │ T2_DE_RWTH           11 / 294  │     3.7%     │\n",
+       "│  22    T2_BR_UERJ           7 / 294        2.4%     │\n",
+       "│  23   │ T2_UK_SGrid_Bristol  3 / 294   │     1.0%     │\n",
+       "│  24    T2_ES_IFCA           2 / 294        0.7%     │\n",
+       "└───────┴─────────────────────┴───────────┴──────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3m Available replicas \u001b[0m\n", + "┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mIndex\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mSite \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mFiles \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mAvailability\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━┩\n", + "│\u001b[2m \u001b[0m\u001b[2m 0 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_DE_KIT_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m294 / 294\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 100.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 1 │\u001b[36m \u001b[0m\u001b[36mT1_UK_RAL_Disk \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m294 / 294\u001b[0m\u001b[35m \u001b[0m│ 100.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 2 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_RU_JINR_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m294 / 294\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 100.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 3 │\u001b[36m \u001b[0m\u001b[36mT3_KR_UOS \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m294 / 294\u001b[0m\u001b[35m \u001b[0m│ 100.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 4 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_US_FNAL_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m193 / 294\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 65.6% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 5 │\u001b[36m \u001b[0m\u001b[36mT2_US_Nebraska \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m99 / 294 \u001b[0m\u001b[35m \u001b[0m│ 33.7% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 6 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_IT_CNAF_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m58 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 19.7% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 7 │\u001b[36m \u001b[0m\u001b[36mT2_US_Purdue \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m53 / 294 \u001b[0m\u001b[35m \u001b[0m│ 18.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 8 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_BE_IIHE \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m50 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 17.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 9 │\u001b[36m \u001b[0m\u001b[36mT2_US_MIT \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m50 / 294 \u001b[0m\u001b[35m \u001b[0m│ 17.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 10 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_ES_PIC_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m43 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 14.6% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 11 │\u001b[36m \u001b[0m\u001b[36mT2_US_Vanderbilt \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m40 / 294 \u001b[0m\u001b[35m \u001b[0m│ 13.6% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 12 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_BR_SPRACE \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m39 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 13.3% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 13 │\u001b[36m \u001b[0m\u001b[36mT2_US_Florida \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m33 / 294 \u001b[0m\u001b[35m \u001b[0m│ 11.2% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 14 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_IT_Legnaro \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m28 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 9.5% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 15 │\u001b[36m \u001b[0m\u001b[36mT2_US_UCSD \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m28 / 294 \u001b[0m\u001b[35m \u001b[0m│ 9.5% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 16 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_UA_KIPT \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m26 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 8.8% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 17 │\u001b[36m \u001b[0m\u001b[36mT2_US_Caltech \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m24 / 294 \u001b[0m\u001b[35m \u001b[0m│ 8.2% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 18 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_US_Wisconsin \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m22 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 7.5% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 19 │\u001b[36m \u001b[0m\u001b[36mT2_TR_METU \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m18 / 294 \u001b[0m\u001b[35m \u001b[0m│ 6.1% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 20 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_ES_CIEMAT \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m17 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 5.8% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 21 │\u001b[36m \u001b[0m\u001b[36mT2_DE_RWTH \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m11 / 294 \u001b[0m\u001b[35m \u001b[0m│ 3.7% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 22 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_BR_UERJ \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m7 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 2.4% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 23 │\u001b[36m \u001b[0m\u001b[36mT2_UK_SGrid_Bristol\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m3 / 294 \u001b[0m\u001b[35m \u001b[0m│ 1.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 24 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_ES_IFCA \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m2 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 0.7% \u001b[0m\u001b[2m \u001b[0m│\n", + "└───────┴─────────────────────┴───────────┴──────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Example with blocklist\n", + "try:\n", + " (\n", + " outfiles,\n", + " outsites,\n", + " sites_counts,\n", + " ) = rucio_utils.get_dataset_files_replicas(\n", + " dataset,\n", + " allowlist_sites=[],\n", + " blocklist_sites=[\"T2_DE_DESY\", \"T3_CH_PSI\"],\n", + " regex_sites=None,\n", + " mode=\"full\", # full or first. \"full\"==all the available replicas\n", + " client=client,\n", + " )\n", + "except Exception as e:\n", + " print(f\"\\n[red bold] Exception: {e}[/]\")\n", + "\n", + "print_replicas(sites_counts)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "f5dafcc2-c32e-4e33-9878-183a8e476b73", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Sites availability for dataset: \n",
+       "/TTToSemiLeptonic_TuneCP5CR1_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2\n",
+       "/NANOAODSIM\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[36mSites availability for dataset: \u001b[0m\n", + "\u001b[31m/TTToSemiLeptonic_TuneCP5CR1_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2\u001b[0m\n", + "\u001b[31m/\u001b[0m\u001b[31mNANOAODSIM\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
                    Available replicas                    \n",
+       "┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━┓\n",
+       "┃ Index  Site                 Files      Availability ┃\n",
+       "┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━┩\n",
+       "│   0    T2_DE_DESY           294 / 294     100.0%    │\n",
+       "│   1   │ T1_DE_KIT_Disk       294 / 294 │    100.0%    │\n",
+       "│   2    T1_UK_RAL_Disk       294 / 294     100.0%    │\n",
+       "│   3   │ T3_CH_PSI            294 / 294 │    100.0%    │\n",
+       "│   4    T1_IT_CNAF_Disk      58 / 294      19.7%     │\n",
+       "│   5   │ T2_BE_IIHE           50 / 294  │    17.0%     │\n",
+       "│   6    T1_ES_PIC_Disk       43 / 294      14.6%     │\n",
+       "│   7   │ T2_IT_Legnaro        28 / 294  │     9.5%     │\n",
+       "│   8    T2_ES_CIEMAT         17 / 294       5.8%     │\n",
+       "│   9   │ T2_DE_RWTH           11 / 294  │     3.7%     │\n",
+       "│  10    T2_UK_SGrid_Bristol  3 / 294        1.0%     │\n",
+       "│  11   │ T2_ES_IFCA           2 / 294   │     0.7%     │\n",
+       "└───────┴─────────────────────┴───────────┴──────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3m Available replicas \u001b[0m\n", + "┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mIndex\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mSite \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mFiles \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mAvailability\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━┩\n", + "│\u001b[2m \u001b[0m\u001b[2m 0 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_DE_DESY \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m294 / 294\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 100.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 1 │\u001b[36m \u001b[0m\u001b[36mT1_DE_KIT_Disk \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m294 / 294\u001b[0m\u001b[35m \u001b[0m│ 100.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 2 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_UK_RAL_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m294 / 294\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 100.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 3 │\u001b[36m \u001b[0m\u001b[36mT3_CH_PSI \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m294 / 294\u001b[0m\u001b[35m \u001b[0m│ 100.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 4 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_IT_CNAF_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m58 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 19.7% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 5 │\u001b[36m \u001b[0m\u001b[36mT2_BE_IIHE \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m50 / 294 \u001b[0m\u001b[35m \u001b[0m│ 17.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 6 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_ES_PIC_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m43 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 14.6% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 7 │\u001b[36m \u001b[0m\u001b[36mT2_IT_Legnaro \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m28 / 294 \u001b[0m\u001b[35m \u001b[0m│ 9.5% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 8 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_ES_CIEMAT \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m17 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 5.8% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 9 │\u001b[36m \u001b[0m\u001b[36mT2_DE_RWTH \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m11 / 294 \u001b[0m\u001b[35m \u001b[0m│ 3.7% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 10 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_UK_SGrid_Bristol\u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m3 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 1.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 11 │\u001b[36m \u001b[0m\u001b[36mT2_ES_IFCA \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m2 / 294 \u001b[0m\u001b[35m \u001b[0m│ 0.7% │\n", + "└───────┴─────────────────────┴───────────┴──────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Example with regex\n", + "try:\n", + " (\n", + " outfiles,\n", + " outsites,\n", + " sites_counts,\n", + " ) = rucio_utils.get_dataset_files_replicas(\n", + " dataset,\n", + " allowlist_sites=[],\n", + " blocklist_sites=[],\n", + " regex_sites= r\"T[123]_(FR|IT|BE|CH|DE|ES|UK)_\\w+\",\n", + " mode=\"full\", # full or first. \"full\"==all the available replicas\n", + " client=client,\n", + " )\n", + "except Exception as e:\n", + " print(f\"\\n[red bold] Exception: {e}[/]\")\n", + "\n", + "print_replicas(sites_counts)" + ] + }, + { + "cell_type": "markdown", + "id": "0b805dde-dd38-46a4-92ad-55ab2e4a4876", + "metadata": {}, + "source": [ + "## Using the DataDiscoveryCLI\n", + "Manipulating the dataset query and replicas is simplified by the `DataDiscoveryCLI` class in `dataset_query` module." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "39846193-d6f2-4de5-ba42-a089d1b0786d", + "metadata": {}, + "outputs": [], + "source": [ + "from coffea.dataset_tools import rucio_utils\n", + "from coffea.dataset_tools.dataset_query import print_dataset_query\n", + "from rich.console import Console\n", + "from coffea.dataset_tools.dataset_query import DataDiscoveryCLI" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "eaba3e39-c95a-4282-83e2-3aadf748adca", + "metadata": {}, + "outputs": [], + "source": [ + "dataset_definition = {\n", + " \"/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL18NanoAODv9-106X*/NANOAODSIM\": {\"short_name\": \"ZJets\",\n", + " \"metadata\": {\"xsec\": 100.0,\"isMC\":True}},\n", + " \"/SingleMuon/Run2018C-UL20*_MiniAODv2_NanoAODv9_GT36*/NANOAOD\": {\"short_name\": \"SingleMuon\", \"metadata\": {\"isMC\":False}}\n", + "}\n" + ] + }, + { + "cell_type": "markdown", + "id": "ecb84b02-b85f-4037-a08d-cce001bc35c7", + "metadata": {}, + "source": [ + "The dataset definition is passed to a `DataDiscoveryCLI` to automatically query rucio and get replicas" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "716a6c0c-ea07-498a-a010-f9e7f87ba3a3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
 Querying rucio for replicas: /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[32m⠇\u001b[0m Querying rucio for replicas: \u001b[1;31m/SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+      ],
+      "text/plain": []
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "
Sites availability for dataset: /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[36mSites availability for dataset: \u001b[0m\u001b[31m/SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\u001b[31mNANOAOD\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
                   Available replicas                   \n",
+       "┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┓\n",
+       "┃ Index  Site                 Files    Availability ┃\n",
+       "┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━┩\n",
+       "│   0    T2_DE_DESY           67 / 67     100.0%    │\n",
+       "│   1   │ T3_KR_KISTI          67 / 67 │    100.0%    │\n",
+       "│   2    T2_TW_NCHC           67 / 67     100.0%    │\n",
+       "│   3   │ T2_BE_IIHE           67 / 67 │    100.0%    │\n",
+       "│   4    T2_US_Purdue         67 / 67     100.0%    │\n",
+       "│   5   │ T2_ES_CIEMAT         67 / 67 │    100.0%    │\n",
+       "│   6    T3_FR_IPNL           67 / 67     100.0%    │\n",
+       "│   7   │ T1_US_FNAL_Disk      61 / 67 │    91.0%     │\n",
+       "│   8    T2_UK_London_IC      39 / 67     58.2%     │\n",
+       "│   9   │ T1_FR_CCIN2P3_Disk   38 / 67 │    56.7%     │\n",
+       "│  10    T2_US_Caltech        26 / 67     38.8%     │\n",
+       "│  11   │ T2_CH_CERN           25 / 67 │    37.3%     │\n",
+       "│  12    T2_DE_RWTH           22 / 67     32.8%     │\n",
+       "│  13   │ T1_IT_CNAF_Disk      20 / 67 │    29.9%     │\n",
+       "│  14    T2_US_Wisconsin      16 / 67     23.9%     │\n",
+       "│  15   │ T2_US_Florida        16 / 67 │    23.9%     │\n",
+       "│  16    T2_US_Nebraska       13 / 67     19.4%     │\n",
+       "│  17   │ T2_TR_METU           11 / 67 │    16.4%     │\n",
+       "│  18    T1_DE_KIT_Disk       11 / 67     16.4%     │\n",
+       "│  19   │ T2_UK_SGrid_RALPP    6 / 67  │     9.0%     │\n",
+       "│  20    T2_IT_Legnaro        6 / 67       9.0%     │\n",
+       "│  21   │ T2_ES_IFCA           4 / 67  │     6.0%     │\n",
+       "│  22    T2_FR_IPHC           2 / 67       3.0%     │\n",
+       "│  23   │ T2_UK_London_Brunel  1 / 67  │     1.5%     │\n",
+       "└───────┴─────────────────────┴─────────┴──────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3m Available replicas \u001b[0m\n", + "┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mIndex\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mSite \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mFiles \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mAvailability\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━┩\n", + "│\u001b[2m \u001b[0m\u001b[2m 0 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_DE_DESY \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m67 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 100.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 1 │\u001b[36m \u001b[0m\u001b[36mT3_KR_KISTI \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m67 / 67\u001b[0m\u001b[35m \u001b[0m│ 100.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 2 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_TW_NCHC \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m67 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 100.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 3 │\u001b[36m \u001b[0m\u001b[36mT2_BE_IIHE \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m67 / 67\u001b[0m\u001b[35m \u001b[0m│ 100.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 4 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_US_Purdue \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m67 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 100.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 5 │\u001b[36m \u001b[0m\u001b[36mT2_ES_CIEMAT \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m67 / 67\u001b[0m\u001b[35m \u001b[0m│ 100.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 6 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT3_FR_IPNL \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m67 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 100.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 7 │\u001b[36m \u001b[0m\u001b[36mT1_US_FNAL_Disk \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m61 / 67\u001b[0m\u001b[35m \u001b[0m│ 91.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 8 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_UK_London_IC \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m39 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 58.2% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 9 │\u001b[36m \u001b[0m\u001b[36mT1_FR_CCIN2P3_Disk \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m38 / 67\u001b[0m\u001b[35m \u001b[0m│ 56.7% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 10 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_US_Caltech \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m26 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 38.8% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 11 │\u001b[36m \u001b[0m\u001b[36mT2_CH_CERN \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m25 / 67\u001b[0m\u001b[35m \u001b[0m│ 37.3% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 12 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_DE_RWTH \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m22 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 32.8% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 13 │\u001b[36m \u001b[0m\u001b[36mT1_IT_CNAF_Disk \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m20 / 67\u001b[0m\u001b[35m \u001b[0m│ 29.9% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 14 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_US_Wisconsin \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m16 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 23.9% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 15 │\u001b[36m \u001b[0m\u001b[36mT2_US_Florida \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m16 / 67\u001b[0m\u001b[35m \u001b[0m│ 23.9% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 16 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_US_Nebraska \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m13 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 19.4% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 17 │\u001b[36m \u001b[0m\u001b[36mT2_TR_METU \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m11 / 67\u001b[0m\u001b[35m \u001b[0m│ 16.4% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 18 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_DE_KIT_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m11 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 16.4% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 19 │\u001b[36m \u001b[0m\u001b[36mT2_UK_SGrid_RALPP \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m6 / 67 \u001b[0m\u001b[35m \u001b[0m│ 9.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 20 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_IT_Legnaro \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m6 / 67 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 9.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 21 │\u001b[36m \u001b[0m\u001b[36mT2_ES_IFCA \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m4 / 67 \u001b[0m\u001b[35m \u001b[0m│ 6.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 22 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_FR_IPHC \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m2 / 67 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 3.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 23 │\u001b[36m \u001b[0m\u001b[36mT2_UK_London_Brunel\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m1 / 67 \u001b[0m\u001b[35m \u001b[0m│ 1.5% │\n", + "└───────┴─────────────────────┴─────────┴──────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Replicas for /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD\n",
+       "├── T2_DE_DESY\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/0144EC47-BFA3-EA43-BF05-BD4248ED6031.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/2747DEFE-A247-1F42-B0EF-E7B7F1D3FCD6.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/2DA9130E-8423-304C-9902-1E42CD72E658.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/63047CC0-38C6-F74C-9A00-0DF9050F7CF1.root\n",
+       "│   └── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│       36-v1/2520000/8369B0EA-E4CC-AC4D-BD3F-0679B3310E09.root\n",
+       "├── T3_KR_KISTI\n",
+       "│   ├── root://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\n",
+       "│   │   -v1/2520000/0C9615C1-7EE6-CD44-8FC0-04F63B2C16FD.root\n",
+       "│   ├── root://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\n",
+       "│   │   -v1/2520000/152C304A-97AD-1649-BCB6-3EA0CCD0DD33.root\n",
+       "│   ├── root://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\n",
+       "│   │   -v1/2520000/1CEB718A-7DC1-C74A-A7BE-A3C8D9FA785A.root\n",
+       "│   ├── root://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\n",
+       "│   │   -v1/2520000/51515E3C-C640-3A4C-A16C-DC267FD142BF.root\n",
+       "│   ├── root://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\n",
+       "│   │   -v1/2520000/7DEA3718-B7BC-EE42-A8BE-11C62BB8536D.root\n",
+       "│   ├── root://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\n",
+       "│   │   -v1/2520000/81CEA7BA-9E66-BC4F-A96F-32642D59B653.root\n",
+       "│   └── root://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\n",
+       "│       -v1/2520000/C4F476DA-3D00-334B-867C-7E12F94EE3AB.root\n",
+       "├── T2_ES_CIEMAT\n",
+       "│   ├── root://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1\n",
+       "│   │   /2520000/12FAE9F1-7139-924C-A8DE-9699A00FC994.root\n",
+       "│   ├── root://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1\n",
+       "│   │   /2520000/1DD0FAC6-3087-E44E-ABCB-8AF812C1310D.root\n",
+       "│   ├── root://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1\n",
+       "│   │   /2520000/3FE5B677-9AB3-0245-A1CF-4B320592F18F.root\n",
+       "│   ├── root://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1\n",
+       "│   │   /2520000/74A75B73-E5B8-C942-BBC9-1DDDD7F752FB.root\n",
+       "│   ├── root://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1\n",
+       "│   │   /2520000/8C8690F8-4FEE-1047-85F4-29E414B3D12C.root\n",
+       "│   └── root://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1\n",
+       "│       /2520000/DA47C0B6-BCAB-C54C-A6BF-B0A64E88E3D4.root\n",
+       "├── T1_FR_CCIN2P3_Disk\n",
+       "│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\n",
+       "│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/26FC8C40-EA29-804C-B17D-84FB1C6BC505.root\n",
+       "│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\n",
+       "│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/2D58C3FE-512A-1F48-9AEB-6F80379B8F4A.root\n",
+       "│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\n",
+       "│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/30A3A1AB-2F27-C84E-9437-6BB3881F6856.root\n",
+       "│   └── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\n",
+       "│       18_MiniAODv2_NanoAODv9_GT36-v1/2520000/A350E2E4-705C-2C4D-9B11-3436056EEBE7.root\n",
+       "├── T2_BE_IIHE\n",
+       "│   ├── root://maite.iihe.ac.be:1095//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/252\n",
+       "│   │   0000/365F32F6-F971-1B4D-8E9D-C0ACD74FFB03.root\n",
+       "│   ├── root://maite.iihe.ac.be:1095//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/252\n",
+       "│   │   0000/410C32AB-DEB5-404F-BC6B-92E8F560563F.root\n",
+       "│   ├── root://maite.iihe.ac.be:1095//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/252\n",
+       "│   │   0000/6809B5E3-6DE6-1541-AE4C-E1804C877EDE.root\n",
+       "│   ├── root://maite.iihe.ac.be:1095//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/252\n",
+       "│   │   0000/78AC6A39-C303-EB44-9264-71819CC70FCC.root\n",
+       "│   └── root://maite.iihe.ac.be:1095//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/252\n",
+       "│       0000/7CCCB2C3-F210-2C42-85DF-AA00293FACFB.root\n",
+       "├── T2_US_Purdue\n",
+       "│   ├── root://eos.cms.rcac.purdue.edu///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\n",
+       "│   │   2520000/37312354-59AB-E44B-BC94-CF424D4B7DDB.root\n",
+       "│   ├── root://eos.cms.rcac.purdue.edu///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\n",
+       "│   │   2520000/42DC0F42-82E8-BE47-B04D-544B67274829.root\n",
+       "│   ├── root://eos.cms.rcac.purdue.edu///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\n",
+       "│   │   2520000/D7875684-9F26-084E-9B2B-5E9BB5D353E8.root\n",
+       "│   ├── root://eos.cms.rcac.purdue.edu///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\n",
+       "│   │   2520000/FAF0C67B-A8B4-8A4F-83B1-E43675CE9630.root\n",
+       "│   └── root://eos.cms.rcac.purdue.edu///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\n",
+       "│       2520000/FE5EEFA5-C07A-5C44-B66D-5B31BE02C7D3.root\n",
+       "├── T2_US_Wisconsin\n",
+       "│   ├── root://cmsxrootd.hep.wisc.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\n",
+       "│   │   -v1/2520000/39D52C69-2035-A24B-A413-40976993651D.root\n",
+       "│   └── root://cmsxrootd.hep.wisc.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\n",
+       "│       -v1/2520000/FCAF4145-8E3F-2142-BDCB-5E276523B592.root\n",
+       "├── T2_TW_NCHC\n",
+       "│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\n",
+       "│   │   1/2520000/459261DD-4441-6047-9FF2-1EDE468452C9.root\n",
+       "│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\n",
+       "│   │   1/2520000/6DDF448B-4605-5C41-9711-1C73EC5F01D3.root\n",
+       "│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\n",
+       "│   │   1/2520000/7B14228A-5331-DF4E-B677-7B8AA281D460.root\n",
+       "│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\n",
+       "│   │   1/2520000/7B181B92-AA2C-1E44-86FE-B074D359BBB3.root\n",
+       "│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\n",
+       "│   │   1/2520000/8223C4A3-D4BD-6A4B-A513-54B6668C7122.root\n",
+       "│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\n",
+       "│   │   1/2520000/A74EFE57-BAD2-C143-B8DC-817CE4F96FD7.root\n",
+       "│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\n",
+       "│   │   1/2520000/AE014F55-84BE-E84E-B447-0B614070CD17.root\n",
+       "│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\n",
+       "│   │   1/2520000/BCBF89A2-329C-744B-A38F-139EA8F94007.root\n",
+       "│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\n",
+       "│   │   1/2520000/D8D41BBC-D514-D342-A514-CCF48575D184.root\n",
+       "│   └── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\n",
+       "│       1/2520000/F1B3977A-E777-EC4D-8FC7-981FE4ED5E0C.root\n",
+       "├── T2_UK_London_IC\n",
+       "│   ├── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\n",
+       "│   │   OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/59DA0585-BD57-CE49-A15E-CDBAC5473EDE.root\n",
+       "│   ├── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\n",
+       "│   │   OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/F16A9138-7563-E540-B6AD-8A8A688B3830.root\n",
+       "│   └── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\n",
+       "│       OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/FE3D79A6-27D4-8948-A89B-2F966C5B29D4.root\n",
+       "├── T1_US_FNAL_Disk\n",
+       "│   ├── root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\n",
+       "│   │   Dv9_GT36-v1/2520000/62789325-3C0B-FC4D-B578-B41A396399E4.root\n",
+       "│   ├── root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\n",
+       "│   │   Dv9_GT36-v1/2520000/6EAA5EDB-0DB3-6E40-87DC-7AB582295D29.root\n",
+       "│   ├── root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\n",
+       "│   │   Dv9_GT36-v1/2520000/A59D511A-A419-714F-8EE1-8B8BAFEC04D5.root\n",
+       "│   ├── root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\n",
+       "│   │   Dv9_GT36-v1/2520000/B78A9B75-3B32-CF4E-A144-375189CF48AE.root\n",
+       "│   ├── root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\n",
+       "│   │   Dv9_GT36-v1/2520000/B9E9087C-255C-C24D-A733-FB9291DC7C3C.root\n",
+       "│   ├── root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\n",
+       "│   │   Dv9_GT36-v1/2520000/CDD2CDF9-72D0-4045-B28F-89002077FB89.root\n",
+       "│   └── root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\n",
+       "│       Dv9_GT36-v1/2520000/ED95384D-9D3D-AE45-8425-C4C080E691C5.root\n",
+       "├── T1_IT_CNAF_Disk\n",
+       "│   └── root://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\n",
+       "│       2520000/648ECD9C-8AAA-BB46-8683-C8987CCC73B9.root\n",
+       "├── T2_US_Nebraska\n",
+       "│   ├── root://xrootd-local.unl.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\n",
+       "│   │   1/2520000/69ABD79C-C684-8244-9F0D-153C6B8C2D9C.root\n",
+       "│   ├── root://xrootd-local.unl.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\n",
+       "│   │   1/2520000/AB8DD69D-A522-D44C-BB9C-209623F7D41A.root\n",
+       "│   └── root://xrootd-local.unl.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\n",
+       "│       1/2520000/B3487FE0-B172-AD47-A13A-388C0A9BF93F.root\n",
+       "├── T2_IT_Legnaro\n",
+       "│   └── root://t2-xrdcms.lnl.infn.it:7070///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-\n",
+       "│       v1/2520000/B1B449CE-5952-8347-A9A7-35FE231D0C72.root\n",
+       "├── T3_FR_IPNL\n",
+       "│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│   │   Dv2_NanoAODv9_GT36-v1/2520000/BA02D468-A8CE-4F49-884F-F836BB481AD5.root\n",
+       "│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│   │   Dv2_NanoAODv9_GT36-v1/2520000/BAAA6E00-7AC3-9947-9262-D9833D3A8B19.root\n",
+       "│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│   │   Dv2_NanoAODv9_GT36-v1/2520000/CBD43A1E-AE2F-0B4D-A642-29FB2E9EB33B.root\n",
+       "│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│   │   Dv2_NanoAODv9_GT36-v1/2520000/ECD4877E-707B-EA43-A38B-D1B700FBDE79.root\n",
+       "│   └── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│       Dv2_NanoAODv9_GT36-v1/2520000/F09135D8-FCBE-AF40-BCE8-03A529C5C87F.root\n",
+       "├── T2_DE_RWTH\n",
+       "│   └── root://grid-cms-xrootd.physik.rwth-aachen.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2\n",
+       "│       _NanoAODv9_GT36-v1/2520000/D40D1285-B075-D446-B1BF-86A463EF6993.root\n",
+       "├── T2_TR_METU\n",
+       "│   └── root://eymir.grid.metu.edu.tr//dpm/grid.metu.edu.tr/home/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018\n",
+       "│       _MiniAODv2_NanoAODv9_GT36-v1/2520000/F34F4F00-3370-EF4D-AF44-39E474E6530F.root\n",
+       "└── T2_US_Florida\n",
+       "    └── root://cmsio2.rc.ufl.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\n",
+       "        520000/F6E44EA5-F4C6-E746-AD43-7A263F1E316E.root\n",
+       "
\n" + ], + "text/plain": [ + "Replicas for \u001b[32m/SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD\u001b[0m\n", + "├── \u001b[32mT2_DE_DESY\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/0144EC47-BFA3-EA43-BF05-BD4248ED6031.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/2747DEFE-A247-1F42-B0EF-E7B7F1D3FCD6.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/2DA9130E-8423-304C-9902-1E42CD72E658.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/63047CC0-38C6-F74C-9A00-0DF9050F7CF1.root\u001b[0m\n", + "│ └── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ \u001b[36m36-v1/2520000/8369B0EA-E4CC-AC4D-BD3F-0679B3310E09.root\u001b[0m\n", + "├── \u001b[32mT3_KR_KISTI\u001b[0m\n", + "│ ├── \u001b[36mroot://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\u001b[0m\n", + "│ │ \u001b[36m-v1/2520000/0C9615C1-7EE6-CD44-8FC0-04F63B2C16FD.root\u001b[0m\n", + "│ ├── \u001b[36mroot://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\u001b[0m\n", + "│ │ \u001b[36m-v1/2520000/152C304A-97AD-1649-BCB6-3EA0CCD0DD33.root\u001b[0m\n", + "│ ├── \u001b[36mroot://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\u001b[0m\n", + "│ │ \u001b[36m-v1/2520000/1CEB718A-7DC1-C74A-A7BE-A3C8D9FA785A.root\u001b[0m\n", + "│ ├── \u001b[36mroot://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\u001b[0m\n", + "│ │ \u001b[36m-v1/2520000/51515E3C-C640-3A4C-A16C-DC267FD142BF.root\u001b[0m\n", + "│ ├── \u001b[36mroot://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\u001b[0m\n", + "│ │ \u001b[36m-v1/2520000/7DEA3718-B7BC-EE42-A8BE-11C62BB8536D.root\u001b[0m\n", + "│ ├── \u001b[36mroot://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\u001b[0m\n", + "│ │ \u001b[36m-v1/2520000/81CEA7BA-9E66-BC4F-A96F-32642D59B653.root\u001b[0m\n", + "│ └── \u001b[36mroot://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\u001b[0m\n", + "│ \u001b[36m-v1/2520000/C4F476DA-3D00-334B-867C-7E12F94EE3AB.root\u001b[0m\n", + "├── \u001b[32mT2_ES_CIEMAT\u001b[0m\n", + "│ ├── \u001b[36mroot://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1\u001b[0m\n", + "│ │ \u001b[36m/2520000/12FAE9F1-7139-924C-A8DE-9699A00FC994.root\u001b[0m\n", + "│ ├── \u001b[36mroot://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1\u001b[0m\n", + "│ │ \u001b[36m/2520000/1DD0FAC6-3087-E44E-ABCB-8AF812C1310D.root\u001b[0m\n", + "│ ├── \u001b[36mroot://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1\u001b[0m\n", + "│ │ \u001b[36m/2520000/3FE5B677-9AB3-0245-A1CF-4B320592F18F.root\u001b[0m\n", + "│ ├── \u001b[36mroot://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1\u001b[0m\n", + "│ │ \u001b[36m/2520000/74A75B73-E5B8-C942-BBC9-1DDDD7F752FB.root\u001b[0m\n", + "│ ├── \u001b[36mroot://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1\u001b[0m\n", + "│ │ \u001b[36m/2520000/8C8690F8-4FEE-1047-85F4-29E414B3D12C.root\u001b[0m\n", + "│ └── \u001b[36mroot://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1\u001b[0m\n", + "│ \u001b[36m/2520000/DA47C0B6-BCAB-C54C-A6BF-B0A64E88E3D4.root\u001b[0m\n", + "├── \u001b[32mT1_FR_CCIN2P3_Disk\u001b[0m\n", + "│ ├── \u001b[36mroot://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\u001b[0m\n", + "│ │ \u001b[36m18_MiniAODv2_NanoAODv9_GT36-v1/2520000/26FC8C40-EA29-804C-B17D-84FB1C6BC505.root\u001b[0m\n", + "│ ├── \u001b[36mroot://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\u001b[0m\n", + "│ │ \u001b[36m18_MiniAODv2_NanoAODv9_GT36-v1/2520000/2D58C3FE-512A-1F48-9AEB-6F80379B8F4A.root\u001b[0m\n", + "│ ├── \u001b[36mroot://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\u001b[0m\n", + "│ │ \u001b[36m18_MiniAODv2_NanoAODv9_GT36-v1/2520000/30A3A1AB-2F27-C84E-9437-6BB3881F6856.root\u001b[0m\n", + "│ └── \u001b[36mroot://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\u001b[0m\n", + "│ \u001b[36m18_MiniAODv2_NanoAODv9_GT36-v1/2520000/A350E2E4-705C-2C4D-9B11-3436056EEBE7.root\u001b[0m\n", + "├── \u001b[32mT2_BE_IIHE\u001b[0m\n", + "│ ├── \u001b[36mroot://maite.iihe.ac.be:1095//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/252\u001b[0m\n", + "│ │ \u001b[36m0000/365F32F6-F971-1B4D-8E9D-C0ACD74FFB03.root\u001b[0m\n", + "│ ├── \u001b[36mroot://maite.iihe.ac.be:1095//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/252\u001b[0m\n", + "│ │ \u001b[36m0000/410C32AB-DEB5-404F-BC6B-92E8F560563F.root\u001b[0m\n", + "│ ├── \u001b[36mroot://maite.iihe.ac.be:1095//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/252\u001b[0m\n", + "│ │ \u001b[36m0000/6809B5E3-6DE6-1541-AE4C-E1804C877EDE.root\u001b[0m\n", + "│ ├── \u001b[36mroot://maite.iihe.ac.be:1095//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/252\u001b[0m\n", + "│ │ \u001b[36m0000/78AC6A39-C303-EB44-9264-71819CC70FCC.root\u001b[0m\n", + "│ └── \u001b[36mroot://maite.iihe.ac.be:1095//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/252\u001b[0m\n", + "│ \u001b[36m0000/7CCCB2C3-F210-2C42-85DF-AA00293FACFB.root\u001b[0m\n", + "├── \u001b[32mT2_US_Purdue\u001b[0m\n", + "│ ├── \u001b[36mroot://eos.cms.rcac.purdue.edu///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\n", + "│ │ \u001b[36m2520000/37312354-59AB-E44B-BC94-CF424D4B7DDB.root\u001b[0m\n", + "│ ├── \u001b[36mroot://eos.cms.rcac.purdue.edu///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\n", + "│ │ \u001b[36m2520000/42DC0F42-82E8-BE47-B04D-544B67274829.root\u001b[0m\n", + "│ ├── \u001b[36mroot://eos.cms.rcac.purdue.edu///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\n", + "│ │ \u001b[36m2520000/D7875684-9F26-084E-9B2B-5E9BB5D353E8.root\u001b[0m\n", + "│ ├── \u001b[36mroot://eos.cms.rcac.purdue.edu///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\n", + "│ │ \u001b[36m2520000/FAF0C67B-A8B4-8A4F-83B1-E43675CE9630.root\u001b[0m\n", + "│ └── \u001b[36mroot://eos.cms.rcac.purdue.edu///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\n", + "│ \u001b[36m2520000/FE5EEFA5-C07A-5C44-B66D-5B31BE02C7D3.root\u001b[0m\n", + "├── \u001b[32mT2_US_Wisconsin\u001b[0m\n", + "│ ├── \u001b[36mroot://cmsxrootd.hep.wisc.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\u001b[0m\n", + "│ │ \u001b[36m-v1/2520000/39D52C69-2035-A24B-A413-40976993651D.root\u001b[0m\n", + "│ └── \u001b[36mroot://cmsxrootd.hep.wisc.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\u001b[0m\n", + "│ \u001b[36m-v1/2520000/FCAF4145-8E3F-2142-BDCB-5E276523B592.root\u001b[0m\n", + "├── \u001b[32mT2_TW_NCHC\u001b[0m\n", + "│ ├── \u001b[36mroot://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\u001b[0m\n", + "│ │ \u001b[36m1/2520000/459261DD-4441-6047-9FF2-1EDE468452C9.root\u001b[0m\n", + "│ ├── \u001b[36mroot://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\u001b[0m\n", + "│ │ \u001b[36m1/2520000/6DDF448B-4605-5C41-9711-1C73EC5F01D3.root\u001b[0m\n", + "│ ├── \u001b[36mroot://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\u001b[0m\n", + "│ │ \u001b[36m1/2520000/7B14228A-5331-DF4E-B677-7B8AA281D460.root\u001b[0m\n", + "│ ├── \u001b[36mroot://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\u001b[0m\n", + "│ │ \u001b[36m1/2520000/7B181B92-AA2C-1E44-86FE-B074D359BBB3.root\u001b[0m\n", + "│ ├── \u001b[36mroot://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\u001b[0m\n", + "│ │ \u001b[36m1/2520000/8223C4A3-D4BD-6A4B-A513-54B6668C7122.root\u001b[0m\n", + "│ ├── \u001b[36mroot://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\u001b[0m\n", + "│ │ \u001b[36m1/2520000/A74EFE57-BAD2-C143-B8DC-817CE4F96FD7.root\u001b[0m\n", + "│ ├── \u001b[36mroot://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\u001b[0m\n", + "│ │ \u001b[36m1/2520000/AE014F55-84BE-E84E-B447-0B614070CD17.root\u001b[0m\n", + "│ ├── \u001b[36mroot://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\u001b[0m\n", + "│ │ \u001b[36m1/2520000/BCBF89A2-329C-744B-A38F-139EA8F94007.root\u001b[0m\n", + "│ ├── \u001b[36mroot://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\u001b[0m\n", + "│ │ \u001b[36m1/2520000/D8D41BBC-D514-D342-A514-CCF48575D184.root\u001b[0m\n", + "│ └── \u001b[36mroot://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\u001b[0m\n", + "│ \u001b[36m1/2520000/F1B3977A-E777-EC4D-8FC7-981FE4ED5E0C.root\u001b[0m\n", + "├── \u001b[32mT2_UK_London_IC\u001b[0m\n", + "│ ├── \u001b[36mroot://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\u001b[0m\n", + "│ │ \u001b[36mOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/59DA0585-BD57-CE49-A15E-CDBAC5473EDE.root\u001b[0m\n", + "│ ├── \u001b[36mroot://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\u001b[0m\n", + "│ │ \u001b[36mOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/F16A9138-7563-E540-B6AD-8A8A688B3830.root\u001b[0m\n", + "│ └── \u001b[36mroot://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\u001b[0m\n", + "│ \u001b[36mOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/FE3D79A6-27D4-8948-A89B-2F966C5B29D4.root\u001b[0m\n", + "├── \u001b[32mT1_US_FNAL_Disk\u001b[0m\n", + "│ ├── \u001b[36mroot://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\u001b[0m\n", + "│ │ \u001b[36mDv9_GT36-v1/2520000/62789325-3C0B-FC4D-B578-B41A396399E4.root\u001b[0m\n", + "│ ├── \u001b[36mroot://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\u001b[0m\n", + "│ │ \u001b[36mDv9_GT36-v1/2520000/6EAA5EDB-0DB3-6E40-87DC-7AB582295D29.root\u001b[0m\n", + "│ ├── \u001b[36mroot://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\u001b[0m\n", + "│ │ \u001b[36mDv9_GT36-v1/2520000/A59D511A-A419-714F-8EE1-8B8BAFEC04D5.root\u001b[0m\n", + "│ ├── \u001b[36mroot://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\u001b[0m\n", + "│ │ \u001b[36mDv9_GT36-v1/2520000/B78A9B75-3B32-CF4E-A144-375189CF48AE.root\u001b[0m\n", + "│ ├── \u001b[36mroot://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\u001b[0m\n", + "│ │ \u001b[36mDv9_GT36-v1/2520000/B9E9087C-255C-C24D-A733-FB9291DC7C3C.root\u001b[0m\n", + "│ ├── \u001b[36mroot://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\u001b[0m\n", + "│ │ \u001b[36mDv9_GT36-v1/2520000/CDD2CDF9-72D0-4045-B28F-89002077FB89.root\u001b[0m\n", + "│ └── \u001b[36mroot://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\u001b[0m\n", + "│ \u001b[36mDv9_GT36-v1/2520000/ED95384D-9D3D-AE45-8425-C4C080E691C5.root\u001b[0m\n", + "├── \u001b[32mT1_IT_CNAF_Disk\u001b[0m\n", + "│ └── \u001b[36mroot://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\n", + "│ \u001b[36m2520000/648ECD9C-8AAA-BB46-8683-C8987CCC73B9.root\u001b[0m\n", + "├── \u001b[32mT2_US_Nebraska\u001b[0m\n", + "│ ├── \u001b[36mroot://xrootd-local.unl.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\u001b[0m\n", + "│ │ \u001b[36m1/2520000/69ABD79C-C684-8244-9F0D-153C6B8C2D9C.root\u001b[0m\n", + "│ ├── \u001b[36mroot://xrootd-local.unl.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\u001b[0m\n", + "│ │ \u001b[36m1/2520000/AB8DD69D-A522-D44C-BB9C-209623F7D41A.root\u001b[0m\n", + "│ └── \u001b[36mroot://xrootd-local.unl.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\u001b[0m\n", + "│ \u001b[36m1/2520000/B3487FE0-B172-AD47-A13A-388C0A9BF93F.root\u001b[0m\n", + "├── \u001b[32mT2_IT_Legnaro\u001b[0m\n", + "│ └── \u001b[36mroot://t2-xrdcms.lnl.infn.it:7070///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-\u001b[0m\n", + "│ \u001b[36mv1/2520000/B1B449CE-5952-8347-A9A7-35FE231D0C72.root\u001b[0m\n", + "├── \u001b[32mT3_FR_IPNL\u001b[0m\n", + "│ ├── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ │ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/BA02D468-A8CE-4F49-884F-F836BB481AD5.root\u001b[0m\n", + "│ ├── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ │ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/BAAA6E00-7AC3-9947-9262-D9833D3A8B19.root\u001b[0m\n", + "│ ├── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ │ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/CBD43A1E-AE2F-0B4D-A642-29FB2E9EB33B.root\u001b[0m\n", + "│ ├── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ │ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/ECD4877E-707B-EA43-A38B-D1B700FBDE79.root\u001b[0m\n", + "│ └── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/F09135D8-FCBE-AF40-BCE8-03A529C5C87F.root\u001b[0m\n", + "├── \u001b[32mT2_DE_RWTH\u001b[0m\n", + "│ └── \u001b[36mroot://grid-cms-xrootd.physik.rwth-aachen.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2\u001b[0m\n", + "│ \u001b[36m_NanoAODv9_GT36-v1/2520000/D40D1285-B075-D446-B1BF-86A463EF6993.root\u001b[0m\n", + "├── \u001b[32mT2_TR_METU\u001b[0m\n", + "│ └── \u001b[36mroot://eymir.grid.metu.edu.tr//dpm/grid.metu.edu.tr/home/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018\u001b[0m\n", + "│ \u001b[36m_MiniAODv2_NanoAODv9_GT36-v1/2520000/F34F4F00-3370-EF4D-AF44-39E474E6530F.root\u001b[0m\n", + "└── \u001b[32mT2_US_Florida\u001b[0m\n", + " └── \u001b[36mroot://cmsio2.rc.ufl.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\u001b[0m\n", + " \u001b[36m520000/F6E44EA5-F4C6-E746-AD43-7A263F1E316E.root\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Selected datasets:\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[36mSelected datasets:\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
                                                 Selected datasets                                                 \n",
+       "┏━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳┳┓\n",
+       "┃ Dataset                                                                                                   ┃\n",
+       "┡━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇╇┩\n",
+       "│ 1  /DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realisti… │││\n",
+       "│ 2  /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD                                           │││\n",
+       "└───┴───────────────────────────────────────────────────────────────────────────────────────────────────────────┴┴┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3m Selected datasets \u001b[0m\n", + "┏━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳┳┓\n", + "┃\u001b[1m \u001b[0m\u001b[1m…\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mDataset \u001b[0m\u001b[1m \u001b[0m┃┃┃\n", + "┡━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇╇┩\n", + "│\u001b[36m \u001b[0m\u001b[36m1\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realisti…\u001b[0m\u001b[35m \u001b[0m│││\n", + "│\u001b[36m \u001b[0m\u001b[36m2\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m/SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD \u001b[0m\u001b[35m \u001b[0m│││\n", + "└───┴───────────────────────────────────────────────────────────────────────────────────────────────────────────┴┴┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ddc = DataDiscoveryCLI()\n", + "ddc.load_dataset_definition(dataset_definition, \n", + " query_results_strategy=\"all\",\n", + " replicas_strategy=\"round-robin\")" + ] + }, + { + "cell_type": "markdown", + "id": "db7798eb-eb9f-47e5-9239-92cdea20600f", + "metadata": {}, + "source": [ + "### Filtering sites" + ] + }, + { + "cell_type": "markdown", + "id": "bd57fe7b-0642-48b8-9f9f-cd209e50d867", + "metadata": {}, + "source": [ + "Sites filtering works in a very similar way for `DataDiscoveryCLI`" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "d85ca119-0a56-4c67-bb21-ebbca8164728", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
 Querying rucio for replicas: /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[32m⠇\u001b[0m Querying rucio for replicas: \u001b[1;31m/SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+      ],
+      "text/plain": []
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "
Sites availability for dataset: /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[36mSites availability for dataset: \u001b[0m\u001b[31m/SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\u001b[31mNANOAOD\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
                   Available replicas                   \n",
+       "┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┓\n",
+       "┃ Index  Site                 Files    Availability ┃\n",
+       "┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━┩\n",
+       "│   0    T2_DE_DESY           67 / 67     100.0%    │\n",
+       "│   1   │ T3_FR_IPNL           67 / 67 │    100.0%    │\n",
+       "│   2    T2_UK_London_IC      39 / 67     58.2%     │\n",
+       "│   3   │ T1_FR_CCIN2P3_Disk   38 / 67 │    56.7%     │\n",
+       "│   4    T2_CH_CERN           25 / 67     37.3%     │\n",
+       "│   5   │ T2_DE_RWTH           22 / 67 │    32.8%     │\n",
+       "│   6    T1_IT_CNAF_Disk      20 / 67     29.9%     │\n",
+       "│   7   │ T1_DE_KIT_Disk       11 / 67 │    16.4%     │\n",
+       "│   8    T2_UK_SGrid_RALPP    6 / 67       9.0%     │\n",
+       "│   9   │ T2_IT_Legnaro        6 / 67  │     9.0%     │\n",
+       "│  10    T2_FR_IPHC           2 / 67       3.0%     │\n",
+       "│  11   │ T2_UK_London_Brunel  1 / 67  │     1.5%     │\n",
+       "└───────┴─────────────────────┴─────────┴──────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3m Available replicas \u001b[0m\n", + "┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mIndex\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mSite \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mFiles \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mAvailability\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━┩\n", + "│\u001b[2m \u001b[0m\u001b[2m 0 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_DE_DESY \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m67 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 100.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 1 │\u001b[36m \u001b[0m\u001b[36mT3_FR_IPNL \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m67 / 67\u001b[0m\u001b[35m \u001b[0m│ 100.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 2 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_UK_London_IC \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m39 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 58.2% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 3 │\u001b[36m \u001b[0m\u001b[36mT1_FR_CCIN2P3_Disk \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m38 / 67\u001b[0m\u001b[35m \u001b[0m│ 56.7% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 4 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_CH_CERN \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m25 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 37.3% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 5 │\u001b[36m \u001b[0m\u001b[36mT2_DE_RWTH \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m22 / 67\u001b[0m\u001b[35m \u001b[0m│ 32.8% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 6 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_IT_CNAF_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m20 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 29.9% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 7 │\u001b[36m \u001b[0m\u001b[36mT1_DE_KIT_Disk \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m11 / 67\u001b[0m\u001b[35m \u001b[0m│ 16.4% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 8 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_UK_SGrid_RALPP \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m6 / 67 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 9.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 9 │\u001b[36m \u001b[0m\u001b[36mT2_IT_Legnaro \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m6 / 67 \u001b[0m\u001b[35m \u001b[0m│ 9.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 10 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_FR_IPHC \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m2 / 67 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 3.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 11 │\u001b[36m \u001b[0m\u001b[36mT2_UK_London_Brunel\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m1 / 67 \u001b[0m\u001b[35m \u001b[0m│ 1.5% │\n", + "└───────┴─────────────────────┴─────────┴──────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Replicas for /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD\n",
+       "├── T2_CH_CERN\n",
+       "│   ├── root://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\n",
+       "│   │   520000/0144EC47-BFA3-EA43-BF05-BD4248ED6031.root\n",
+       "│   ├── root://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\n",
+       "│   │   520000/1DD0FAC6-3087-E44E-ABCB-8AF812C1310D.root\n",
+       "│   ├── root://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\n",
+       "│   │   520000/2747DEFE-A247-1F42-B0EF-E7B7F1D3FCD6.root\n",
+       "│   ├── root://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\n",
+       "│   │   520000/2DA9130E-8423-304C-9902-1E42CD72E658.root\n",
+       "│   ├── root://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\n",
+       "│   │   520000/39D52C69-2035-A24B-A413-40976993651D.root\n",
+       "│   ├── root://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\n",
+       "│   │   520000/69ABD79C-C684-8244-9F0D-153C6B8C2D9C.root\n",
+       "│   ├── root://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\n",
+       "│   │   520000/7CCCB2C3-F210-2C42-85DF-AA00293FACFB.root\n",
+       "│   └── root://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\n",
+       "│       520000/F34F4F00-3370-EF4D-AF44-39E474E6530F.root\n",
+       "├── T3_FR_IPNL\n",
+       "│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│   │   Dv2_NanoAODv9_GT36-v1/2520000/0C9615C1-7EE6-CD44-8FC0-04F63B2C16FD.root\n",
+       "│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│   │   Dv2_NanoAODv9_GT36-v1/2520000/30A3A1AB-2F27-C84E-9437-6BB3881F6856.root\n",
+       "│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│   │   Dv2_NanoAODv9_GT36-v1/2520000/410C32AB-DEB5-404F-BC6B-92E8F560563F.root\n",
+       "│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│   │   Dv2_NanoAODv9_GT36-v1/2520000/42DC0F42-82E8-BE47-B04D-544B67274829.root\n",
+       "│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│   │   Dv2_NanoAODv9_GT36-v1/2520000/62789325-3C0B-FC4D-B578-B41A396399E4.root\n",
+       "│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│   │   Dv2_NanoAODv9_GT36-v1/2520000/6809B5E3-6DE6-1541-AE4C-E1804C877EDE.root\n",
+       "│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│   │   Dv2_NanoAODv9_GT36-v1/2520000/78AC6A39-C303-EB44-9264-71819CC70FCC.root\n",
+       "│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│   │   Dv2_NanoAODv9_GT36-v1/2520000/A350E2E4-705C-2C4D-9B11-3436056EEBE7.root\n",
+       "│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│   │   Dv2_NanoAODv9_GT36-v1/2520000/FCAF4145-8E3F-2142-BDCB-5E276523B592.root\n",
+       "│   └── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│       Dv2_NanoAODv9_GT36-v1/2520000/FE3D79A6-27D4-8948-A89B-2F966C5B29D4.root\n",
+       "├── T2_UK_London_IC\n",
+       "│   ├── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\n",
+       "│   │   OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/12FAE9F1-7139-924C-A8DE-9699A00FC994.root\n",
+       "│   ├── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\n",
+       "│   │   OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/63047CC0-38C6-F74C-9A00-0DF9050F7CF1.root\n",
+       "│   ├── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\n",
+       "│   │   OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/8369B0EA-E4CC-AC4D-BD3F-0679B3310E09.root\n",
+       "│   ├── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\n",
+       "│   │   OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/AE014F55-84BE-E84E-B447-0B614070CD17.root\n",
+       "│   ├── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\n",
+       "│   │   OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/F16A9138-7563-E540-B6AD-8A8A688B3830.root\n",
+       "│   └── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\n",
+       "│       OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/FAF0C67B-A8B4-8A4F-83B1-E43675CE9630.root\n",
+       "├── T1_FR_CCIN2P3_Disk\n",
+       "│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\n",
+       "│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/152C304A-97AD-1649-BCB6-3EA0CCD0DD33.root\n",
+       "│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\n",
+       "│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/37312354-59AB-E44B-BC94-CF424D4B7DDB.root\n",
+       "│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\n",
+       "│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/7B14228A-5331-DF4E-B677-7B8AA281D460.root\n",
+       "│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\n",
+       "│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/7B181B92-AA2C-1E44-86FE-B074D359BBB3.root\n",
+       "│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\n",
+       "│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/C4F476DA-3D00-334B-867C-7E12F94EE3AB.root\n",
+       "│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\n",
+       "│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/D8D41BBC-D514-D342-A514-CCF48575D184.root\n",
+       "│   └── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\n",
+       "│       18_MiniAODv2_NanoAODv9_GT36-v1/2520000/FE5EEFA5-C07A-5C44-B66D-5B31BE02C7D3.root\n",
+       "├── T2_FR_IPHC\n",
+       "│   └── root://sbgdcache.in2p3.fr///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/25200\n",
+       "│       00/1CEB718A-7DC1-C74A-A7BE-A3C8D9FA785A.root\n",
+       "├── T2_DE_DESY\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/26FC8C40-EA29-804C-B17D-84FB1C6BC505.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/2D58C3FE-512A-1F48-9AEB-6F80379B8F4A.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/459261DD-4441-6047-9FF2-1EDE468452C9.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/51515E3C-C640-3A4C-A16C-DC267FD142BF.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/648ECD9C-8AAA-BB46-8683-C8987CCC73B9.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/74A75B73-E5B8-C942-BBC9-1DDDD7F752FB.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/81CEA7BA-9E66-BC4F-A96F-32642D59B653.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/8223C4A3-D4BD-6A4B-A513-54B6668C7122.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/8C8690F8-4FEE-1047-85F4-29E414B3D12C.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/B78A9B75-3B32-CF4E-A144-375189CF48AE.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/BAAA6E00-7AC3-9947-9262-D9833D3A8B19.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/BCBF89A2-329C-744B-A38F-139EA8F94007.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/CBD43A1E-AE2F-0B4D-A642-29FB2E9EB33B.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/D40D1285-B075-D446-B1BF-86A463EF6993.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/DA47C0B6-BCAB-C54C-A6BF-B0A64E88E3D4.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/ECD4877E-707B-EA43-A38B-D1B700FBDE79.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/ED95384D-9D3D-AE45-8425-C4C080E691C5.root\n",
+       "│   └── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│       36-v1/2520000/F1B3977A-E777-EC4D-8FC7-981FE4ED5E0C.root\n",
+       "├── T1_DE_KIT_Disk\n",
+       "│   ├── root://cmsxrootd-kit-disk.gridka.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv\n",
+       "│   │   9_GT36-v1/2520000/365F32F6-F971-1B4D-8E9D-C0ACD74FFB03.root\n",
+       "│   ├── root://cmsxrootd-kit-disk.gridka.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv\n",
+       "│   │   9_GT36-v1/2520000/3FE5B677-9AB3-0245-A1CF-4B320592F18F.root\n",
+       "│   ├── root://cmsxrootd-kit-disk.gridka.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv\n",
+       "│   │   9_GT36-v1/2520000/6DDF448B-4605-5C41-9711-1C73EC5F01D3.root\n",
+       "│   ├── root://cmsxrootd-kit-disk.gridka.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv\n",
+       "│   │   9_GT36-v1/2520000/6EAA5EDB-0DB3-6E40-87DC-7AB582295D29.root\n",
+       "│   └── root://cmsxrootd-kit-disk.gridka.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv\n",
+       "│       9_GT36-v1/2520000/7DEA3718-B7BC-EE42-A8BE-11C62BB8536D.root\n",
+       "├── T2_DE_RWTH\n",
+       "│   ├── root://grid-cms-xrootd.physik.rwth-aachen.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2\n",
+       "│   │   _NanoAODv9_GT36-v1/2520000/59DA0585-BD57-CE49-A15E-CDBAC5473EDE.root\n",
+       "│   ├── root://grid-cms-xrootd.physik.rwth-aachen.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2\n",
+       "│   │   _NanoAODv9_GT36-v1/2520000/A59D511A-A419-714F-8EE1-8B8BAFEC04D5.root\n",
+       "│   └── root://grid-cms-xrootd.physik.rwth-aachen.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2\n",
+       "│       _NanoAODv9_GT36-v1/2520000/B9E9087C-255C-C24D-A733-FB9291DC7C3C.root\n",
+       "├── T1_IT_CNAF_Disk\n",
+       "│   ├── root://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\n",
+       "│   │   2520000/A74EFE57-BAD2-C143-B8DC-817CE4F96FD7.root\n",
+       "│   ├── root://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\n",
+       "│   │   2520000/AB8DD69D-A522-D44C-BB9C-209623F7D41A.root\n",
+       "│   ├── root://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\n",
+       "│   │   2520000/B3487FE0-B172-AD47-A13A-388C0A9BF93F.root\n",
+       "│   ├── root://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\n",
+       "│   │   2520000/CDD2CDF9-72D0-4045-B28F-89002077FB89.root\n",
+       "│   ├── root://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\n",
+       "│   │   2520000/D7875684-9F26-084E-9B2B-5E9BB5D353E8.root\n",
+       "│   └── root://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\n",
+       "│       2520000/F09135D8-FCBE-AF40-BCE8-03A529C5C87F.root\n",
+       "└── T2_UK_SGrid_RALPP\n",
+       "    ├── root://mover.pp.rl.ac.uk:1094/pnfs/pp.rl.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_Mini\n",
+       "    │   AODv2_NanoAODv9_GT36-v1/2520000/B1B449CE-5952-8347-A9A7-35FE231D0C72.root\n",
+       "    ├── root://mover.pp.rl.ac.uk:1094/pnfs/pp.rl.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_Mini\n",
+       "    │   AODv2_NanoAODv9_GT36-v1/2520000/BA02D468-A8CE-4F49-884F-F836BB481AD5.root\n",
+       "    └── root://mover.pp.rl.ac.uk:1094/pnfs/pp.rl.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_Mini\n",
+       "        AODv2_NanoAODv9_GT36-v1/2520000/F6E44EA5-F4C6-E746-AD43-7A263F1E316E.root\n",
+       "
\n" + ], + "text/plain": [ + "Replicas for \u001b[32m/SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD\u001b[0m\n", + "├── \u001b[32mT2_CH_CERN\u001b[0m\n", + "│ ├── \u001b[36mroot://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\u001b[0m\n", + "│ │ \u001b[36m520000/0144EC47-BFA3-EA43-BF05-BD4248ED6031.root\u001b[0m\n", + "│ ├── \u001b[36mroot://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\u001b[0m\n", + "│ │ \u001b[36m520000/1DD0FAC6-3087-E44E-ABCB-8AF812C1310D.root\u001b[0m\n", + "│ ├── \u001b[36mroot://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\u001b[0m\n", + "│ │ \u001b[36m520000/2747DEFE-A247-1F42-B0EF-E7B7F1D3FCD6.root\u001b[0m\n", + "│ ├── \u001b[36mroot://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\u001b[0m\n", + "│ │ \u001b[36m520000/2DA9130E-8423-304C-9902-1E42CD72E658.root\u001b[0m\n", + "│ ├── \u001b[36mroot://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\u001b[0m\n", + "│ │ \u001b[36m520000/39D52C69-2035-A24B-A413-40976993651D.root\u001b[0m\n", + "│ ├── \u001b[36mroot://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\u001b[0m\n", + "│ │ \u001b[36m520000/69ABD79C-C684-8244-9F0D-153C6B8C2D9C.root\u001b[0m\n", + "│ ├── \u001b[36mroot://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\u001b[0m\n", + "│ │ \u001b[36m520000/7CCCB2C3-F210-2C42-85DF-AA00293FACFB.root\u001b[0m\n", + "│ └── \u001b[36mroot://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\u001b[0m\n", + "│ \u001b[36m520000/F34F4F00-3370-EF4D-AF44-39E474E6530F.root\u001b[0m\n", + "├── \u001b[32mT3_FR_IPNL\u001b[0m\n", + "│ ├── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ │ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/0C9615C1-7EE6-CD44-8FC0-04F63B2C16FD.root\u001b[0m\n", + "│ ├── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ │ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/30A3A1AB-2F27-C84E-9437-6BB3881F6856.root\u001b[0m\n", + "│ ├── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ │ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/410C32AB-DEB5-404F-BC6B-92E8F560563F.root\u001b[0m\n", + "│ ├── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ │ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/42DC0F42-82E8-BE47-B04D-544B67274829.root\u001b[0m\n", + "│ ├── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ │ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/62789325-3C0B-FC4D-B578-B41A396399E4.root\u001b[0m\n", + "│ ├── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ │ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/6809B5E3-6DE6-1541-AE4C-E1804C877EDE.root\u001b[0m\n", + "│ ├── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ │ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/78AC6A39-C303-EB44-9264-71819CC70FCC.root\u001b[0m\n", + "│ ├── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ │ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/A350E2E4-705C-2C4D-9B11-3436056EEBE7.root\u001b[0m\n", + "│ ├── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ │ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/FCAF4145-8E3F-2142-BDCB-5E276523B592.root\u001b[0m\n", + "│ └── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/FE3D79A6-27D4-8948-A89B-2F966C5B29D4.root\u001b[0m\n", + "├── \u001b[32mT2_UK_London_IC\u001b[0m\n", + "│ ├── \u001b[36mroot://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\u001b[0m\n", + "│ │ \u001b[36mOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/12FAE9F1-7139-924C-A8DE-9699A00FC994.root\u001b[0m\n", + "│ ├── \u001b[36mroot://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\u001b[0m\n", + "│ │ \u001b[36mOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/63047CC0-38C6-F74C-9A00-0DF9050F7CF1.root\u001b[0m\n", + "│ ├── \u001b[36mroot://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\u001b[0m\n", + "│ │ \u001b[36mOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/8369B0EA-E4CC-AC4D-BD3F-0679B3310E09.root\u001b[0m\n", + "│ ├── \u001b[36mroot://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\u001b[0m\n", + "│ │ \u001b[36mOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/AE014F55-84BE-E84E-B447-0B614070CD17.root\u001b[0m\n", + "│ ├── \u001b[36mroot://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\u001b[0m\n", + "│ │ \u001b[36mOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/F16A9138-7563-E540-B6AD-8A8A688B3830.root\u001b[0m\n", + "│ └── \u001b[36mroot://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\u001b[0m\n", + "│ \u001b[36mOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/FAF0C67B-A8B4-8A4F-83B1-E43675CE9630.root\u001b[0m\n", + "├── \u001b[32mT1_FR_CCIN2P3_Disk\u001b[0m\n", + "│ ├── \u001b[36mroot://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\u001b[0m\n", + "│ │ \u001b[36m18_MiniAODv2_NanoAODv9_GT36-v1/2520000/152C304A-97AD-1649-BCB6-3EA0CCD0DD33.root\u001b[0m\n", + "│ ├── \u001b[36mroot://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\u001b[0m\n", + "│ │ \u001b[36m18_MiniAODv2_NanoAODv9_GT36-v1/2520000/37312354-59AB-E44B-BC94-CF424D4B7DDB.root\u001b[0m\n", + "│ ├── \u001b[36mroot://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\u001b[0m\n", + "│ │ \u001b[36m18_MiniAODv2_NanoAODv9_GT36-v1/2520000/7B14228A-5331-DF4E-B677-7B8AA281D460.root\u001b[0m\n", + "│ ├── \u001b[36mroot://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\u001b[0m\n", + "│ │ \u001b[36m18_MiniAODv2_NanoAODv9_GT36-v1/2520000/7B181B92-AA2C-1E44-86FE-B074D359BBB3.root\u001b[0m\n", + "│ ├── \u001b[36mroot://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\u001b[0m\n", + "│ │ \u001b[36m18_MiniAODv2_NanoAODv9_GT36-v1/2520000/C4F476DA-3D00-334B-867C-7E12F94EE3AB.root\u001b[0m\n", + "│ ├── \u001b[36mroot://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\u001b[0m\n", + "│ │ \u001b[36m18_MiniAODv2_NanoAODv9_GT36-v1/2520000/D8D41BBC-D514-D342-A514-CCF48575D184.root\u001b[0m\n", + "│ └── \u001b[36mroot://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\u001b[0m\n", + "│ \u001b[36m18_MiniAODv2_NanoAODv9_GT36-v1/2520000/FE5EEFA5-C07A-5C44-B66D-5B31BE02C7D3.root\u001b[0m\n", + "├── \u001b[32mT2_FR_IPHC\u001b[0m\n", + "│ └── \u001b[36mroot://sbgdcache.in2p3.fr///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/25200\u001b[0m\n", + "│ \u001b[36m00/1CEB718A-7DC1-C74A-A7BE-A3C8D9FA785A.root\u001b[0m\n", + "├── \u001b[32mT2_DE_DESY\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/26FC8C40-EA29-804C-B17D-84FB1C6BC505.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/2D58C3FE-512A-1F48-9AEB-6F80379B8F4A.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/459261DD-4441-6047-9FF2-1EDE468452C9.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/51515E3C-C640-3A4C-A16C-DC267FD142BF.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/648ECD9C-8AAA-BB46-8683-C8987CCC73B9.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/74A75B73-E5B8-C942-BBC9-1DDDD7F752FB.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/81CEA7BA-9E66-BC4F-A96F-32642D59B653.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/8223C4A3-D4BD-6A4B-A513-54B6668C7122.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/8C8690F8-4FEE-1047-85F4-29E414B3D12C.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/B78A9B75-3B32-CF4E-A144-375189CF48AE.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/BAAA6E00-7AC3-9947-9262-D9833D3A8B19.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/BCBF89A2-329C-744B-A38F-139EA8F94007.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/CBD43A1E-AE2F-0B4D-A642-29FB2E9EB33B.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/D40D1285-B075-D446-B1BF-86A463EF6993.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/DA47C0B6-BCAB-C54C-A6BF-B0A64E88E3D4.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/ECD4877E-707B-EA43-A38B-D1B700FBDE79.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/ED95384D-9D3D-AE45-8425-C4C080E691C5.root\u001b[0m\n", + "│ └── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ \u001b[36m36-v1/2520000/F1B3977A-E777-EC4D-8FC7-981FE4ED5E0C.root\u001b[0m\n", + "├── \u001b[32mT1_DE_KIT_Disk\u001b[0m\n", + "│ ├── \u001b[36mroot://cmsxrootd-kit-disk.gridka.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv\u001b[0m\n", + "│ │ \u001b[36m9_GT36-v1/2520000/365F32F6-F971-1B4D-8E9D-C0ACD74FFB03.root\u001b[0m\n", + "│ ├── \u001b[36mroot://cmsxrootd-kit-disk.gridka.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv\u001b[0m\n", + "│ │ \u001b[36m9_GT36-v1/2520000/3FE5B677-9AB3-0245-A1CF-4B320592F18F.root\u001b[0m\n", + "│ ├── \u001b[36mroot://cmsxrootd-kit-disk.gridka.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv\u001b[0m\n", + "│ │ \u001b[36m9_GT36-v1/2520000/6DDF448B-4605-5C41-9711-1C73EC5F01D3.root\u001b[0m\n", + "│ ├── \u001b[36mroot://cmsxrootd-kit-disk.gridka.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv\u001b[0m\n", + "│ │ \u001b[36m9_GT36-v1/2520000/6EAA5EDB-0DB3-6E40-87DC-7AB582295D29.root\u001b[0m\n", + "│ └── \u001b[36mroot://cmsxrootd-kit-disk.gridka.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv\u001b[0m\n", + "│ \u001b[36m9_GT36-v1/2520000/7DEA3718-B7BC-EE42-A8BE-11C62BB8536D.root\u001b[0m\n", + "├── \u001b[32mT2_DE_RWTH\u001b[0m\n", + "│ ├── \u001b[36mroot://grid-cms-xrootd.physik.rwth-aachen.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2\u001b[0m\n", + "│ │ \u001b[36m_NanoAODv9_GT36-v1/2520000/59DA0585-BD57-CE49-A15E-CDBAC5473EDE.root\u001b[0m\n", + "│ ├── \u001b[36mroot://grid-cms-xrootd.physik.rwth-aachen.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2\u001b[0m\n", + "│ │ \u001b[36m_NanoAODv9_GT36-v1/2520000/A59D511A-A419-714F-8EE1-8B8BAFEC04D5.root\u001b[0m\n", + "│ └── \u001b[36mroot://grid-cms-xrootd.physik.rwth-aachen.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2\u001b[0m\n", + "│ \u001b[36m_NanoAODv9_GT36-v1/2520000/B9E9087C-255C-C24D-A733-FB9291DC7C3C.root\u001b[0m\n", + "├── \u001b[32mT1_IT_CNAF_Disk\u001b[0m\n", + "│ ├── \u001b[36mroot://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\n", + "│ │ \u001b[36m2520000/A74EFE57-BAD2-C143-B8DC-817CE4F96FD7.root\u001b[0m\n", + "│ ├── \u001b[36mroot://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\n", + "│ │ \u001b[36m2520000/AB8DD69D-A522-D44C-BB9C-209623F7D41A.root\u001b[0m\n", + "│ ├── \u001b[36mroot://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\n", + "│ │ \u001b[36m2520000/B3487FE0-B172-AD47-A13A-388C0A9BF93F.root\u001b[0m\n", + "│ ├── \u001b[36mroot://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\n", + "│ │ \u001b[36m2520000/CDD2CDF9-72D0-4045-B28F-89002077FB89.root\u001b[0m\n", + "│ ├── \u001b[36mroot://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\n", + "│ │ \u001b[36m2520000/D7875684-9F26-084E-9B2B-5E9BB5D353E8.root\u001b[0m\n", + "│ └── \u001b[36mroot://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\n", + "│ \u001b[36m2520000/F09135D8-FCBE-AF40-BCE8-03A529C5C87F.root\u001b[0m\n", + "└── \u001b[32mT2_UK_SGrid_RALPP\u001b[0m\n", + " ├── \u001b[36mroot://mover.pp.rl.ac.uk:1094/pnfs/pp.rl.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_Mini\u001b[0m\n", + " │ \u001b[36mAODv2_NanoAODv9_GT36-v1/2520000/B1B449CE-5952-8347-A9A7-35FE231D0C72.root\u001b[0m\n", + " ├── \u001b[36mroot://mover.pp.rl.ac.uk:1094/pnfs/pp.rl.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_Mini\u001b[0m\n", + " │ \u001b[36mAODv2_NanoAODv9_GT36-v1/2520000/BA02D468-A8CE-4F49-884F-F836BB481AD5.root\u001b[0m\n", + " └── \u001b[36mroot://mover.pp.rl.ac.uk:1094/pnfs/pp.rl.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_Mini\u001b[0m\n", + " \u001b[36mAODv2_NanoAODv9_GT36-v1/2520000/F6E44EA5-F4C6-E746-AD43-7A263F1E316E.root\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Selected datasets:\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[36mSelected datasets:\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
                                                 Selected datasets                                                 \n",
+       "┏━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳┳┓\n",
+       "┃ Dataset                                                                                                   ┃\n",
+       "┡━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇╇┩\n",
+       "│ 1  /DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realisti… │││\n",
+       "│ 2  /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD                                           │││\n",
+       "└───┴───────────────────────────────────────────────────────────────────────────────────────────────────────────┴┴┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3m Selected datasets \u001b[0m\n", + "┏━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳┳┓\n", + "┃\u001b[1m \u001b[0m\u001b[1m…\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mDataset \u001b[0m\u001b[1m \u001b[0m┃┃┃\n", + "┡━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇╇┩\n", + "│\u001b[36m \u001b[0m\u001b[36m1\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realisti…\u001b[0m\u001b[35m \u001b[0m│││\n", + "│\u001b[36m \u001b[0m\u001b[36m2\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m/SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD \u001b[0m\u001b[35m \u001b[0m│││\n", + "└───┴───────────────────────────────────────────────────────────────────────────────────────────────────────────┴┴┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ddc = DataDiscoveryCLI()\n", + "ddc.do_regex_sites(r\"T[123]_(CH|IT|UK|FR|DE)_\\w+\")\n", + "ddc.load_dataset_definition(dataset_definition, \n", + " query_results_strategy=\"all\",\n", + " replicas_strategy=\"round-robin\")" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "dd9ca4ea-039d-4ebb-bbf2-79092ba6e7d0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Selected datasets:\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[36mSelected datasets:\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
                                                 Selected datasets                                                 \n",
+       "┏━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳┳┓\n",
+       "┃ Dataset                                                                                                   ┃\n",
+       "┡━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇╇┩\n",
+       "│ 1  /DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realisti… │││\n",
+       "│ 2  /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD                                           │││\n",
+       "└───┴───────────────────────────────────────────────────────────────────────────────────────────────────────────┴┴┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3m Selected datasets \u001b[0m\n", + "┏━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳┳┓\n", + "┃\u001b[1m \u001b[0m\u001b[1m…\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mDataset \u001b[0m\u001b[1m \u001b[0m┃┃┃\n", + "┡━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇╇┩\n", + "│\u001b[36m \u001b[0m\u001b[36m1\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realisti…\u001b[0m\u001b[35m \u001b[0m│││\n", + "│\u001b[36m \u001b[0m\u001b[36m2\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m/SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD \u001b[0m\u001b[35m \u001b[0m│││\n", + "└───┴───────────────────────────────────────────────────────────────────────────────────────────────────────────┴┴┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ddc.do_list_selected()" + ] + }, + { + "cell_type": "markdown", + "id": "a6ffbefb-8276-4733-aedb-cc12898f4ed8", + "metadata": {}, + "source": [ + "### Save the replicas metadata" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "b0e3e4b8-34d4-4558-988a-edacd1df9b37", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
File replicas_info.json saved!\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[32mFile replicas_info.json saved!\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ddc.do_save(\"replicas_info.json\")" + ] + }, + { + "cell_type": "markdown", + "id": "f9f6a70b-0194-4b00-ab79-4fdb0b4fa0cf", + "metadata": {}, + "source": [ + "## DataDiscoveryCLI from shell" + ] + }, + { + "cell_type": "markdown", + "id": "7237fc9e-50b8-4cc4-9c51-9674fbf4358a", + "metadata": {}, + "source": [ + "The DataDiscoveryCLI can be used directly from CLI" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "2c075f2e-a06e-4c97-b5b6-6a6806571a9a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "usage: dataset_query.py [-h] [--cli] [-d DATASET_DEFINITION] [-o OUTPUT]\n", + " [-fo FILESET_OUTPUT] [-p] [--step-size STEP_SIZE]\n", + " [--dask-cluster DASK_CLUSTER]\n", + " [-as ALLOW_SITES [ALLOW_SITES ...]]\n", + " [-bs BLOCK_SITES [BLOCK_SITES ...]] [-rs REGEX_SITES]\n", + " [--query-results-strategy QUERY_RESULTS_STRATEGY]\n", + " [--replicas-strategy REPLICAS_STRATEGY]\n", + "\n", + "options:\n", + " -h, --help show this help message and exit\n", + " --cli Start the dataset discovery CLI\n", + " -d DATASET_DEFINITION, --dataset-definition DATASET_DEFINITION\n", + " Dataset definition file\n", + " -o OUTPUT, --output OUTPUT\n", + " Output name for dataset discovery output (no fileset\n", + " preprocessing)\n", + " -fo FILESET_OUTPUT, --fileset-output FILESET_OUTPUT\n", + " Output name for fileset\n", + " -p, --preprocess Preprocess with dask\n", + " --step-size STEP_SIZE\n", + " Step size for preprocessing\n", + " --dask-cluster DASK_CLUSTER\n", + " Dask cluster url\n", + " -as ALLOW_SITES [ALLOW_SITES ...], --allow-sites ALLOW_SITES [ALLOW_SITES ...]\n", + " List of sites to be allowlisted\n", + " -bs BLOCK_SITES [BLOCK_SITES ...], --block-sites BLOCK_SITES [BLOCK_SITES ...]\n", + " List of sites to be blocklisted\n", + " -rs REGEX_SITES, --regex-sites REGEX_SITES\n", + " Regex string to be used to filter the sites\n", + " --query-results-strategy QUERY_RESULTS_STRATEGY\n", + " Mode for query results selection: [all|manual]\n", + " --replicas-strategy REPLICAS_STRATEGY\n", + " Mode for selecting replicas for datasets:\n", + " [manual|round-robin|choose]\n" + ] + } + ], + "source": [ + "!python -m coffea.dataset_tools.dataset_query --help" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e93cb24c-44ed-43f1-8aae-0f6b03c88de0", + "metadata": {}, + "outputs": [], + "source": [ + "!python -m coffea.dataset_tools.dataset_query --cli -d dataset_definition.json" + ] + }, + { + "cell_type": "markdown", + "id": "f7d52663-c5e3-4abe-9c2f-4bf8f08d8919", + "metadata": {}, + "source": [ + "## Preprocess the fileset with dask" + ] + }, + { + "cell_type": "markdown", + "id": "046a0c99-6500-41b5-9954-fa7b78061800", + "metadata": {}, + "source": [ + "The replicas metadata contain the file location in the CMS grid. \n", + "This info can be **preprocessed** with uproot and dask-awkward to extract the **fileset**. Practically a fileset is a collection of metadata about the file location, file name, chunks splitting, that can be used directly to configure the uproot reading. \n", + "\n", + "This step replaces the preprocessing step in coffea 0.7.x. The output of the preprocessing can be used directly to start an analysis with dask-awkward.\n", + "\n", + "The preprocessing is performed locally with multiple processes if `dask_cluster==None`, but a pre-existing dask cluster url can be passed." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "04a2aeca-9c9f-4baf-b33b-b4f1b5ba4d4a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
  Preprocessing files to extract available chunks with dask\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[32m⠙\u001b[0m \u001b[31m Preprocessing files to extract available chunks with dask\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+      ],
+      "text/plain": []
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "
Saved available fileset chunks to fileset_available.json.gz\n",
+       "
\n" + ], + "text/plain": [ + "Saved available fileset chunks to fileset_available.json.gz\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Saved all fileset chunks to fileset_all.json.gz\n",
+       "
\n" + ], + "text/plain": [ + "Saved all fileset chunks to fileset_all.json.gz\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fileset_total = ddc.do_preprocess(output_file=\"fileset\", \n", + " step_size=10000, #chunk size for files splitting\n", + " align_to_clusters=False,\n", + " scheduler_url=None)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "d1206bce-b726-43cc-b217-d74fd5516147", + "metadata": {}, + "outputs": [], + "source": [ + "import gzip\n", + "import json\n", + "with gzip.open(\"fileset_available.json.gz\", \"rt\") as file:\n", + " fileset_available = json.load(file)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "957ea9c6-783a-4932-960f-cbec5f2f0656", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "root://cmsxrd.ts.infn.it:1094///store/mc/RunIISummer20UL18NanoAODv9/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/NANOAODSIM/106X_upgrade2018_realistic_v16_L1v1-v2/100000/13D0AD97-6B32-CB4C-BA87-5E37BA4CF20E.root {'object_path': 'Events', 'steps': [[0, 10000], [10000, 20000], [20000, 30000], [30000, 40000], [40000, 50000], [50000, 59081]], 'uuid': 'fbe50b00-1f7e-11ec-97b8-2bbee183beef'}\n", + "root://cmsxrd.ts.infn.it:1094///store/mc/RunIISummer20UL18NanoAODv9/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/NANOAODSIM/106X_upgrade2018_realistic_v16_L1v1-v2/230000/00C9792D-ACD2-2547-BB04-097F0C4E47E3.root {'object_path': 'Events', 'steps': [[0, 10000], [10000, 20000], [20000, 30000], [30000, 40000], [40000, 50000], [50000, 60000], [60000, 70000], [70000, 80000], [80000, 90000], [90000, 100000], [100000, 110000], [110000, 120000], [120000, 130000], [130000, 138192]], 'uuid': '938a4fe2-1d77-11ec-bddf-59319e86beef'}\n", + "root://dcache-cms-xrootd.desy.de:1094//store/mc/RunIISummer20UL18NanoAODv9/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/NANOAODSIM/106X_upgrade2018_realistic_v16_L1v1-v2/230000/00EA9563-5449-D24E-9566-98AE8E2A61AE.root {'object_path': 'Events', 'steps': [[0, 10000], [10000, 20000], [20000, 30000], [30000, 40000], [40000, 50000], [50000, 60000], [60000, 70000], [70000, 80000], [80000, 90000], [90000, 100000], [100000, 110000], [110000, 120000], [120000, 130000], [130000, 140000], [140000, 150000], [150000, 160000], [160000, 170000], [170000, 180000], [180000, 190000], [190000, 200000], [200000, 210000], [210000, 220000], [220000, 230000], [230000, 240000], [240000, 250000], [250000, 260000], [260000, 270000], [270000, 280000], [280000, 290000], [290000, 300000], [300000, 310000], [310000, 320000], [320000, 330000], [330000, 340000], [340000, 350000], [350000, 360000], [360000, 370000], [370000, 380000], [380000, 390000], [390000, 400000], [400000, 410000], [410000, 420000], [420000, 430000], [430000, 440000], [440000, 450000], [450000, 460000], [460000, 470000], [470000, 480000], [480000, 490000], [490000, 500000], [500000, 510000], [510000, 520000], [520000, 530000], [530000, 540000], [540000, 550000], [550000, 560000], [560000, 570000], [570000, 580000], [580000, 590000], [590000, 600000], [600000, 610000], [610000, 620000], [620000, 630000], [630000, 640000], [640000, 650000], [650000, 660000], [660000, 670000], [670000, 680000], [680000, 690000], [690000, 700000], [700000, 710000], [710000, 720000], [720000, 730000], [730000, 740000], [740000, 750000], [750000, 760000], [760000, 770000], [770000, 780000], [780000, 790000], [790000, 800000], [800000, 810000], [810000, 820000], [820000, 830000], [830000, 840000], [840000, 850000], [850000, 860000], [860000, 870000], [870000, 880000], [880000, 890000], [890000, 900000], [900000, 910000], [910000, 920000], [920000, 930000], [930000, 940000], [940000, 950000], [950000, 960000], [960000, 970000], [970000, 980000], [980000, 990000], [990000, 1000000], [1000000, 1010000], [1010000, 1020000], [1020000, 1030000], [1030000, 1040000], [1040000, 1050000], [1050000, 1060000], [1060000, 1070000], [1070000, 1080000], [1080000, 1090000], [1090000, 1100000], [1100000, 1110000], [1110000, 1120000], [1120000, 1130000], [1130000, 1140000], [1140000, 1150000], [1150000, 1160000], [1160000, 1170000], [1170000, 1180000], [1180000, 1190000], [1190000, 1200000], [1200000, 1210000], [1210000, 1220000], [1220000, 1230000], [1230000, 1240000], [1240000, 1250000], [1250000, 1260000], [1260000, 1270000], [1270000, 1280000], [1280000, 1290000], [1290000, 1300000], [1300000, 1310000], [1310000, 1320000], [1320000, 1330000], [1330000, 1340000], [1340000, 1350000], [1350000, 1360000], [1360000, 1370000], [1370000, 1380000], [1380000, 1390000], [1390000, 1400000], [1400000, 1410000], [1410000, 1420000], [1420000, 1430000], [1430000, 1440000], [1440000, 1450000], [1450000, 1460000], [1460000, 1470000], [1470000, 1480000], [1480000, 1490000], [1490000, 1500000], [1500000, 1510000], [1510000, 1520000], [1520000, 1530000], [1530000, 1540000], [1540000, 1550000], [1550000, 1551326]], 'uuid': 'ced110a0-1b0f-11ec-b2e9-09c08e80beef'}\n", + "root://grid-cms-xrootd.physik.rwth-aachen.de:1094///store/mc/RunIISummer20UL18NanoAODv9/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/NANOAODSIM/106X_upgrade2018_realistic_v16_L1v1-v2/230000/068B0797-DEF5-9341-BBBE-EDBE50EBC6A1.root {'object_path': 'Events', 'steps': [[0, 10000], [10000, 20000], [20000, 30000], [30000, 40000], [40000, 50000], [50000, 60000], [60000, 70000], [70000, 80000], [80000, 90000], [90000, 100000], [100000, 110000], [110000, 120000], [120000, 130000], [130000, 140000], [140000, 150000], [150000, 160000], [160000, 170000], [170000, 180000], [180000, 190000], [190000, 200000], [200000, 210000], [210000, 220000], [220000, 230000], [230000, 240000], [240000, 250000], [250000, 260000], [260000, 270000], [270000, 280000], [280000, 290000], [290000, 300000], [300000, 310000], [310000, 320000], [320000, 330000], [330000, 340000], [340000, 350000], [350000, 360000], [360000, 370000], [370000, 380000], [380000, 390000], [390000, 400000], [400000, 410000], [410000, 420000], [420000, 430000], [430000, 440000], [440000, 450000], [450000, 460000], [460000, 470000], [470000, 480000], [480000, 490000], [490000, 500000], [500000, 510000], [510000, 520000], [520000, 530000], [530000, 540000], [540000, 550000], [550000, 560000], [560000, 570000], [570000, 580000], [580000, 590000], [590000, 600000], [600000, 610000], [610000, 620000], [620000, 630000], [630000, 640000], [640000, 650000], [650000, 660000], [660000, 670000], [670000, 680000], [680000, 690000], [690000, 700000], [700000, 710000], [710000, 720000], [720000, 730000], [730000, 740000], [740000, 750000], [750000, 760000], [760000, 770000], [770000, 780000], [780000, 790000], [790000, 800000], [800000, 810000], [810000, 820000], [820000, 830000], [830000, 840000], [840000, 850000], [850000, 860000], [860000, 870000], [870000, 880000], [880000, 890000], [890000, 900000], [900000, 910000], [910000, 920000], [920000, 930000], [930000, 940000], [940000, 950000], [950000, 960000], [960000, 970000], [970000, 980000], [980000, 990000], [990000, 1000000], [1000000, 1010000], [1010000, 1020000], [1020000, 1030000], [1030000, 1040000], [1040000, 1050000], [1050000, 1060000], [1060000, 1070000], [1070000, 1080000], [1080000, 1090000], [1090000, 1100000], [1100000, 1110000], [1110000, 1120000], [1120000, 1130000], [1130000, 1138724]], 'uuid': 'd86ab2e2-1b28-11ec-8504-738a8e80beef'}\n", + "root://cmsxrd.ts.infn.it:1094///store/mc/RunIISummer20UL18NanoAODv9/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/NANOAODSIM/106X_upgrade2018_realistic_v16_L1v1-v2/230000/0CFD79EF-41AB-4B4A-8F62-06393273EEDE.root {'object_path': 'Events', 'steps': [[0, 10000], [10000, 20000], [20000, 30000], [30000, 40000], [40000, 50000], [50000, 60000], [60000, 70000], [70000, 80000], [80000, 90000], [90000, 100000], [100000, 110000], [110000, 120000], [120000, 130000], [130000, 140000], [140000, 150000], [150000, 160000], [160000, 170000], [170000, 180000], [180000, 190000], [190000, 200000], [200000, 210000], [210000, 220000], [220000, 230000], [230000, 240000], [240000, 250000], [250000, 260000], [260000, 270000], [270000, 280000], [280000, 290000], [290000, 300000], [300000, 310000], [310000, 320000], [320000, 330000], [330000, 340000], [340000, 350000], [350000, 360000], [360000, 370000], [370000, 380000], [380000, 390000], [390000, 400000], [400000, 410000], [410000, 420000], [420000, 430000], [430000, 440000], [440000, 450000], [450000, 460000], [460000, 470000], [470000, 480000], [480000, 490000], [490000, 500000], [500000, 510000], [510000, 520000], [520000, 530000], [530000, 540000], [540000, 550000], [550000, 560000], [560000, 570000], [570000, 580000], [580000, 590000], [590000, 600000], [600000, 610000], [610000, 620000], [620000, 630000], [630000, 640000], [640000, 650000], [650000, 660000], [660000, 670000], [670000, 680000], [680000, 690000], [690000, 700000], [700000, 710000], [710000, 720000], [720000, 730000], [730000, 740000], [740000, 750000], [750000, 760000], [760000, 770000], [770000, 780000], [780000, 790000], [790000, 800000], [800000, 810000], [810000, 820000], [820000, 830000], [830000, 840000], [840000, 850000], [850000, 860000], [860000, 870000], [870000, 880000], [880000, 890000], [890000, 900000], [900000, 910000], [910000, 911868]], 'uuid': '9d799986-1ad9-11ec-9257-fc1b1e0abeef'}\n" + ] + } + ], + "source": [ + "dataset = '/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2/NANOAODSIM'\n", + "for i, (file, meta) in enumerate(fileset_available[dataset][\"files\"].items()):\n", + " print(file, meta)\n", + " if i>3:\n", + " break" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f23bae95-8a2e-46a9-a884-714474a8ff12", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/_sources/notebooks/mltools.ipynb.txt b/_sources/notebooks/mltools.ipynb.txt new file mode 100644 index 000000000..58d48bc19 --- /dev/null +++ b/_sources/notebooks/mltools.ipynb.txt @@ -0,0 +1,670 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Running inference tools\n", + "\n", + "As machine learning (ML) becomes more popular in HEP analysis, `coffea` also\n", + "provide tools to assist with using ML tools within the coffea framework. For\n", + "training and validation, you would likely need custom data mangling tools to\n", + "convert HEP data formats ([NanoAOD][nanoaod], [PFNano][pfnano]) to a format that\n", + "best interfaces with the ML tool of choice, as for training and validation, you\n", + "typical want to have fine control over what computation is done. For more\n", + "advanced use cases of data mangling and data saving, refer to the [awkward array\n", + "manual][datamangle] and [uproot][uproot_write]/[parquet][ak_parquet] write\n", + "operations for saving intermediate states. The helper tools provided in coffea\n", + "focuses on ML inference, where ML tool outputs are used as another variable to\n", + "be used in the event/object selection chain.\n", + "\n", + "[nanoaod]: https://twiki.cern.ch/twiki/bin/view/CMSPublic/WorkBookNanoAOD\n", + "[pfnano]: https://github.com/cms-jet/PFNano\n", + "[datamangle]: https://awkward-array.org/doc/main/user-guide/how-to-restructure.html\n", + "[uproot_write]: https://uproot.readthedocs.io/en/latest/basic.html#writing-ttrees-to-a-file\n", + "[ak_parquet]: https://awkward-array.org/doc/main/reference/generated/ak.to_parquet.html\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Why these wrapper tools are needed\n", + "\n", + "The typical operation of using ML inference tools in the awkward/coffea analysis\n", + "tools involves the conversion and padding of awkward array to ML tool containers\n", + "(usually something that is `numpy`-compatible), run the inference, then\n", + "convert-and-truncate back into the awkward array syntax required for the\n", + "analysis chain to continue. With awkward arrays' laziness now being handled\n", + "entirely by [`dask`][dask_awkward], the conversion operation of awkward array to\n", + "other array types needs to be wrapped in a way that is understandable to `dask`.\n", + "The packages in the `ml_tools` package attempts to wrap the common tools used by\n", + "the HEP community with a common interface to reduce the verbosity of the code on\n", + "the analysis side.\n", + "\n", + "[dask_awkward]: https://dask-awkward.readthedocs.io/en/stable/gs-limitations.html\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example using ParticleNet-like jet variable calculation using PyTorch\n", + "\n", + "The example given in this notebook be using [`pytorch`][pytorch] to calculate a\n", + "jet-level discriminant using its constituent particles. An example for how to\n", + "construct such a `pytorch` network can be found in the docs file, but for\n", + "`mltools` in coffea, we only support the [TorchScript][pytorch] format files to\n", + "load models to ensure operability when scaling to clusters. Let us first start\n", + "by downloading the example ParticleNet model file and a small `PFNano`\n", + "compatible file, and a simple function to open the `PFNano` with and without\n", + "dask.\n", + "\n", + "[pytorch]: https://pytorch.org/\n", + "[pytorch_jit]: https://pytorch.org/tutorials/beginner/saving_loading_models.html#export-load-model-in-torchscript-format\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "!wget --quiet -O model.pt https://github.com/CoffeaTeam/coffea/raw/master/tests/samples/triton_models_test/pn_test/1/model.pt\n", + "!wget --quiet -O pfnano.root https://github.com/CoffeaTeam/coffea/raw/master/tests/samples/pfnano.root" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from coffea.nanoevents import NanoEventsFactory\n", + "from coffea.nanoevents.schemas import PFNanoAODSchema\n", + "\n", + "\n", + "def open_events():\n", + " factory = NanoEventsFactory.from_root(\n", + " {\"file:./pfnano.root\": \"Events\"},\n", + " schemaclass=PFNanoAODSchema,\n", + " )\n", + " return factory.events()\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we prepare a class to handle inference request by extending the\n", + "`mltools.torch_wrapper` class. As the base class cannot know anything about the\n", + "data mangling required for the users particular model, we will need to overload\n", + "at least the method `prepare_awkward`:\n", + "\n", + "- The input can be an arbitrary number of awkward arrays or dask awkward array\n", + " (but never a mix of dask/non-dask array). In this example, we will be passing\n", + " in the event array.\n", + "- The output should be single tuple `a` + single dictionary `b`, this is to\n", + " ensure that arbitrarily complicated outputs can be passed to the underlying\n", + " `pytorch` model instance like `model(*a, **b)`. The contents of `a` and `b`\n", + " should be `numpy`-compatible awkward-like arrays: if the inputs are non-dask\n", + " awkward arrays, the return should also be non-dask awkward arrays that can be\n", + " trivially converted to `numpy` arrays via a `ak.to_numpy` call; if the inputs\n", + " are dask awkward arrays, the return should be still be dask awkward arrays\n", + " that can be trivially converted via a `to_awkward().to_numpy()` call.\n", + "\n", + " In this ParticleNet-like example, the model expects the following inputs:\n", + "\n", + " - A `N` jets x `2` coordinate x `100` constituents \"points\" array,\n", + " representing the constituent coordinates.\n", + " - A `N` jets x `5` feature x `100` constituents \"features\" array, representing\n", + " the constituent features of interest to be used for inference.\n", + " - A `N` jets x `1` mask x `100` constituent \"mask\" array, representing whether\n", + " a constituent should be masked from the inference request.\n", + "\n", + " In this case, we will need to flatten the `E` events x `N` jets structure,\n", + " then, we will need to stack the constituent attributes of interest via\n", + " `ak.concatenate` into a single array.\n", + "\n", + "After defining this minimum class, we can attempt to run inference using the\n", + "`__call__` method defined in the base class.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/saransh/Code/HEP/coffea/.env/lib/python3.11/site-packages/coffea/ml_tools/helper.py:175: UserWarning: No format checks were performed on input!\n", + " warnings.warn(\"No format checks were performed on input!\")\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Dask awkward results: [[0.0693, -0.0448], [0.0678, -0.0451], ..., [0.0616, ...], [0.0587, -0.0172]]\n" + ] + } + ], + "source": [ + "from coffea.ml_tools.torch_wrapper import torch_wrapper\n", + "import awkward as ak\n", + "import dask_awkward\n", + "import numpy as np\n", + "\n", + "\n", + "class ParticleNetExample1(torch_wrapper):\n", + " def prepare_awkward(self, events):\n", + " jets = ak.flatten(events.Jet)\n", + "\n", + " def pad(arr):\n", + " return ak.fill_none(\n", + " ak.pad_none(arr, 100, axis=1, clip=True),\n", + " 0.0,\n", + " )\n", + "\n", + " # Human readable version of what the inputs are\n", + " # Each array is a N jets x 100 constituent array\n", + " imap = {\n", + " \"points\": {\n", + " \"deta\": pad(jets.eta - jets.constituents.pf.eta),\n", + " \"dphi\": pad(jets.delta_phi(jets.constituents.pf)),\n", + " },\n", + " \"features\": {\n", + " \"dr\": pad(jets.delta_r(jets.constituents.pf)),\n", + " \"lpt\": pad(np.log(jets.constituents.pf.pt)),\n", + " \"lptf\": pad(np.log(jets.constituents.pf.pt / jets.pt)),\n", + " \"f1\": pad(np.log(np.abs(jets.constituents.pf.d0) + 1)),\n", + " \"f2\": pad(np.log(np.abs(jets.constituents.pf.dz) + 1)),\n", + " },\n", + " \"mask\": {\n", + " \"mask\": pad(ak.ones_like(jets.constituents.pf.pt)),\n", + " },\n", + " }\n", + "\n", + " # Compacting the array elements into the desired dimension using\n", + " # ak.concatenate\n", + " retmap = {\n", + " k: ak.concatenate([x[:, np.newaxis, :] for x in imap[k].values()], axis=1)\n", + " for k in imap.keys()\n", + " }\n", + "\n", + " # Returning everything using a dictionary. Also perform type conversion!\n", + " return (), {\n", + " \"points\": ak.values_astype(retmap[\"points\"], \"float32\"),\n", + " \"features\": ak.values_astype(retmap[\"features\"], \"float32\"),\n", + " \"mask\": ak.values_astype(retmap[\"mask\"], \"float16\"),\n", + " }\n", + "\n", + "\n", + "# Setting up the model container\n", + "pn_example1 = ParticleNetExample1(\"model.pt\")\n", + "\n", + "# Running on dask_awkward array\n", + "dask_events = open_events()\n", + "dask_results = pn_example1(dask_events)\n", + "print(\"Dask awkward results:\", dask_results.compute()) # Runs file!" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For each jet in the input to the `torch` model, the model returns a 2-tuple\n", + "probability value. Without additional specification, the `torch_wrapper` class\n", + "performs a trival conversion of `ak.from_numpy` of the torch model's output. We\n", + "can specify that we want to fold this back into nested structure by overloading\n", + "the `postprocess_awkward` method of the class.\n", + "\n", + "For the ParticleNet example we are going perform additional computation for the\n", + "conversion back to awkward array formats:\n", + "\n", + "- Calculate the `softmax` method for the return of each jet (commonly used as\n", + " the singular ML inference \"scores\")\n", + "- Fold the computed `softmax` array back into nested structure that is\n", + " compatible with the original events.Jet array.\n", + "\n", + "Notice that the inputs of the `postprocess_awkward` method is different from the\n", + "`prepare_awkward` method, only by that the first argument is the return array\n", + "of the model inference after the trivial `from_numpy` conversion. Notice that\n", + "the return_array is a dask array.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/saransh/Code/HEP/coffea/.env/lib/python3.11/site-packages/dask_awkward/lib/structure.py:901: UserWarning: Please ensure that dask.awkward\n", + " is partitionwise-compatible with dask.awkward\n", + " (e.g. counts comes from a dak.num(array, axis=1)),\n", + " otherwise this unflatten operation will fail when computed!\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0.528, 0.528, 0.524, 0.523, 0.521, 0.52, 0.519, 0.519], ..., [0.528, ...]]\n" + ] + } + ], + "source": [ + "class ParticleNetExample2(ParticleNetExample1):\n", + " def postprocess_awkward(self, return_array, events):\n", + " softmax = np.exp(return_array)[:, 0] / ak.sum(np.exp(return_array), axis=-1)\n", + " njets = ak.count(events.Jet.pt, axis=-1)\n", + " return ak.unflatten(softmax, njets)\n", + "\n", + "\n", + "pn_example2 = ParticleNetExample2(\"model.pt\")\n", + "\n", + "# Running on dask awkward\n", + "dask_events = open_events()\n", + "dask_jets = dask_events.Jet\n", + "dask_jets[\"MLresults\"] = pn_example2(dask_events)\n", + "dask_events[\"Jet\"] = dask_jets\n", + "print(dask_events.Jet.MLresults.compute())" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Of course, the implementation of the classes above can be written in a single\n", + "class. Here is a copy-and-paste implementation of the class with all the\n", + "functionality described in the cells above:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0.528, 0.528, 0.524, 0.523, 0.521, 0.52, 0.519, 0.519], ..., [0.528, ...]]\n", + "{'from-uproot-3196a0c383555cda3738c112acd1c70e': frozenset({'nJetPFCands', 'PFCands_dz', 'nPFCands', 'Jet_eta', 'Jet_nConstituents', 'PFCands_phi', 'PFCands_d0', 'nJet', 'PFCands_pt', 'JetPFCands_pFCandsIdx', 'PFCands_eta', 'Jet_phi', 'Jet_pt'})}\n" + ] + } + ], + "source": [ + "class ParticleNetExample(torch_wrapper):\n", + " def prepare_awkward(self, events):\n", + " jets = ak.flatten(events.Jet)\n", + "\n", + " def pad(arr):\n", + " return ak.fill_none(\n", + " ak.pad_none(arr, 100, axis=1, clip=True),\n", + " 0.0,\n", + " )\n", + "\n", + " # Human readable version of what the inputs are\n", + " # Each array is a N jets x 100 constituent array\n", + " imap = {\n", + " \"points\": {\n", + " \"deta\": pad(jets.eta - jets.constituents.pf.eta),\n", + " \"dphi\": pad(jets.delta_phi(jets.constituents.pf)),\n", + " },\n", + " \"features\": {\n", + " \"dr\": pad(jets.delta_r(jets.constituents.pf)),\n", + " \"lpt\": pad(np.log(jets.constituents.pf.pt)),\n", + " \"lptf\": pad(np.log(jets.constituents.pf.pt / jets.pt)),\n", + " \"f1\": pad(np.log(np.abs(jets.constituents.pf.d0) + 1)),\n", + " \"f2\": pad(np.log(np.abs(jets.constituents.pf.dz) + 1)),\n", + " },\n", + " \"mask\": {\n", + " \"mask\": pad(ak.ones_like(jets.constituents.pf.pt)),\n", + " },\n", + " }\n", + "\n", + " # Compacting the array elements into the desired dimension using\n", + " # ak.concatenate\n", + " retmap = {\n", + " k: ak.concatenate([x[:, np.newaxis, :] for x in imap[k].values()], axis=1)\n", + " for k in imap.keys()\n", + " }\n", + "\n", + " # Returning everything using a dictionary. Also take care of type\n", + " # conversion here.\n", + " return (), {\n", + " \"points\": ak.values_astype(retmap[\"points\"], \"float32\"),\n", + " \"features\": ak.values_astype(retmap[\"features\"], \"float32\"),\n", + " \"mask\": ak.values_astype(retmap[\"mask\"], \"float16\"),\n", + " }\n", + "\n", + " def postprocess_awkward(self, return_array, events):\n", + " softmax = np.exp(return_array)[:, 0] / ak.sum(np.exp(return_array), axis=-1)\n", + " njets = ak.count(events.Jet.pt, axis=-1)\n", + " return ak.unflatten(softmax, njets)\n", + "\n", + "\n", + "pn_example = ParticleNetExample(\"model.pt\")\n", + "\n", + "# Running on dask awkward arrays\n", + "dask_events = open_events()\n", + "dask_jets = dask_events.Jet\n", + "dask_jets[\"MLresults\"] = pn_example(dask_events)\n", + "dask_events[\"Jet\"] = dask_jets\n", + "print(dask_events.Jet.MLresults.compute())\n", + "\n", + "print(dask_awkward.necessary_columns(dask_events.Jet.MLresults))" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In particular, analyzers should check that the last line contains only the\n", + "branches required for ML inference; if there are many non-required branches,\n", + "this may lead the significant performance penalties. \n", + "\n", + "As per other dask tools, the users can extract how dask is analyzing the\n", + "processing the computation routines using the following snippet." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "HighLevelGraph with 104 layers.\n", + "\n", + " 0. from-uproot-3196a0c383555cda3738c112acd1c70e\n", + " 1. JetPFCands-dd2ea51f30214bf71538143d483f24f9\n", + " 2. PFCands-bc578074fd7542d617f1a321b55033b8\n", + " 3. JetPFCands-2022a279fa9f32fb5958ee0196c7bc9c\n", + " 4. PFCands-83b1509b3ea29e972a2c83951cb53cb6\n", + " 5. JetPFCands-c3abed82cbd768736fc7d2efe53b1bfb\n", + " 6. PFCands-1082ee2cc592b1a0c1b8219ddbb9df76\n", + " 7. JetPFCands-95b391cea3695b0e90f6ff4136821900\n", + " 8. PFCands-448b56417f7e6e78f111bda34eb8ba7e\n", + " 9. JetPFCands-31a2eb013adf67227780245e9f6e7654\n", + " 10. PFCands-80d89bc6034885fc4a99e252f4c76d87\n", + " 11. JetPFCands-fa15abc1502f6fa51ba0d6608dac9af8\n", + " 12. PFCands-4b547af5e660141b1c5163448bc75e50\n", + " 13. JetPFCands-65dd6ed1fed0463a350740a761960f79\n", + " 14. PFCands-18a47bdc7f8227a81fc30fa63c20e0b8\n", + " 15. JetPFCands-a30dac67296389d5ee6ed32d038d9a29\n", + " 16. PFCands-16b38f51395d73298b304b5b74560b87\n", + " 17. Jet-2a79d0b5a69da035a6f63a34642205aa\n", + " 18. flatten-645563137107a3dabf8c0252326c099b\n", + " 19. pFCandsIdxG-be948845416432cfc7843dc1818979ba\n", + " 20. apply-global-index-5d46f157ea0ed464f14667860b7f9fa0\n", + " 21. pFCandsIdxG-3658836fb2e3ea21bc533848c17dbf9c\n", + " 22. apply-global-index-7ea60f265dccb1ecc1371332dda18513\n", + " 23. pt-e2b62bfe096c321d604a32fbf89668b2\n", + " 24. ones-like-d424640d3caa1d220630da9879f9a6d4\n", + " 25. pad-none-61123924df10b8c261bbc98bc5c2b24f\n", + " 26. fill-none-16100aa7cabf6e0f37054b3cda2d9d7e\n", + " 27. getitem-fad74ed67d4b95383a9d0afde0e454b4\n", + " 28. concatenate-axisgt0-0615838b6257bb1dd9e0ad365df899a7\n", + " 29. values-astype-2f87bb6f27689b84fbd8379d88089848\n", + " 30. pFCandsIdxG-91d61065f2be395629a7f7c2f4c75a4c\n", + " 31. apply-global-index-0920d60e59835d92a5dacb96a448cb0d\n", + " 32. pFCandsIdxG-a081c6286992ba2fccaa2f2a11518923\n", + " 33. apply-global-index-e509f72064969e949a238db289c45072\n", + " 34. dz-1730bacc99456e5ba3253a49df42e172\n", + " 35. absolute-e01baff37424469f75445b90028366da\n", + " 36. add-a70004667fa4b10107c6efb1f2a97989\n", + " 37. log-a3603e25871acedaabcc3e2099d4bcb2\n", + " 38. pad-none-4a4dedef54637f16ef2b271c1475f31a\n", + " 39. fill-none-c5a035e8e95e0c9e361ff39d1ebd9f2d\n", + " 40. getitem-bc1fb20d7b9e5fbc6a51534ccd3054f3\n", + " 41. pFCandsIdxG-d6802f98055e2806250a9c3227728372\n", + " 42. apply-global-index-e35fa5ba3d7597da70c007766683a812\n", + " 43. pFCandsIdxG-632a8052988ed5a2a8938a273ab2d333\n", + " 44. apply-global-index-b5e8f87704f5d545cf817d2762944d25\n", + " 45. d0-29e79e5b5a7de17a03a3d475ff89c599\n", + " 46. absolute-c8d09ca24f3086d1e1e2b9414b4ed022\n", + " 47. add-8761d4cf88a177af713d19002a764f4f\n", + " 48. log-ddae64d2513ac33f2660b46d6854a3dc\n", + " 49. pad-none-d886677ded46c3f4e8d87456e6e680e2\n", + " 50. fill-none-d45149e4990e4da381d842d166e7c5ba\n", + " 51. getitem-836d4f0d5523ecbd8d6db1e90ae2b3b6\n", + " 52. pt-10e04c1e9f951b6eea81cb85c498833a\n", + " 53. pFCandsIdxG-f039caebcf4c11cb6e22e91d73d58061\n", + " 54. apply-global-index-b7778b7df69d732f785a0b8c9d57ca7c\n", + " 55. pFCandsIdxG-32fb1e5b834c5af2cfb38c19c71f7901\n", + " 56. apply-global-index-75fa94598ada38bc2c7ac256829aba69\n", + " 57. pt-35cd28a2662d400d82c8b0e0bf1043be\n", + " 58. divide-b70f48381fa00780673100850a77be64\n", + " 59. log-59467169551d668c177b279d7ce41e08\n", + " 60. pad-none-d5344cecf02aace568fb6048ed540975\n", + " 61. fill-none-82e8626d15b47f726ea132d0ce2172db\n", + " 62. getitem-4404eac5ca31322afe93d2f586df1bc7\n", + " 63. pFCandsIdxG-f0b011a50db292fb2b871686ee0a4ca4\n", + " 64. apply-global-index-adabd8aa56e51de7d7da71bbc78e54d7\n", + " 65. pFCandsIdxG-61b55e563c2ef8da75531d37f4588e46\n", + " 66. apply-global-index-4ddf80eb0996d4e224663e3718eea052\n", + " 67. pt-54e90537bdb3fe376c28a70cd79127a6\n", + " 68. log-8784340a02993c5f7a0a94affb9303b7\n", + " 69. pad-none-8e9507bad08a1e98574503d852bb8e08\n", + " 70. fill-none-35f0eb9a5380d8e9b99d3fdd92720c63\n", + " 71. getitem-3122b07919ce90a875c60fe3379baaf2\n", + " 72. pFCandsIdxG-6751177f307689956c9a5195ee32bf1c\n", + " 73. apply-global-index-7d0b6c07be47f20e367642fb8e283891\n", + " 74. pFCandsIdxG-5057f535f83a536bfa670cd1be195413\n", + " 75. apply-global-index-35c83043c8ca14ca9330f4e462ee80d3\n", + " 76. delta-r-a4e12fdba83dc2391ced6c43b1f899fd\n", + " 77. pad-none-529c1a1cfc95ddd8615681183fb06572\n", + " 78. fill-none-ea30a23fe8ebad07ad2326697bc04680\n", + " 79. getitem-9f44943e437f2bb256ccc100cc97f2da\n", + " 80. concatenate-axisgt0-b5c7c2098dc5ed82427a7f31eb5ed39a\n", + " 81. values-astype-e8e2df120704dbe38f61b0a4b0263819\n", + " 82. pFCandsIdxG-aa02ecbc510ba5db2b1bec3d1007c8a7\n", + " 83. apply-global-index-149b1ad33ead558e3b736d22c3a261fc\n", + " 84. pFCandsIdxG-988a4723504c8a86b25fce7b6dcd1ed0\n", + " 85. apply-global-index-ac5938c59513f8973b8a0cc39f69be2a\n", + " 86. delta-phi-f7ff1ff2df14e7932e2b711fb13b15ab\n", + " 87. pad-none-4fbed45948badcca50ce362c653eefff\n", + " 88. fill-none-1f7d59ea6f5c76a6b81dbf2e358271e1\n", + " 89. getitem-0dc813c8eeffc021339d7e91776fa416\n", + " 90. pFCandsIdxG-e798cc4121bd681e903080f4f1389924\n", + " 91. apply-global-index-d7b8b6b56eeeb86c9683ebc761346f24\n", + " 92. pFCandsIdxG-f6807458d1b798c1765dc82431de0630\n", + " 93. apply-global-index-97d92fe2282fbbc36a1d400cebc3f8d6\n", + " 94. eta-f24b1fc33dca394d0f6803cc7784e37e\n", + " 95. eta-d97bf469e0213a29c85425c1e3d91b04\n", + " 96. subtract-6138b5e5f850f64d920c23efa39303ca\n", + " 97. pad-none-9b25781acc91d8b6517bb37dae719dd0\n", + " 98. fill-none-d0965fb8ec4099be0707b78aecaf4a1b\n", + " 99. getitem-9f41b44078a5993adc37fbadf25ee227\n", + " 100. concatenate-axisgt0-fae11878826f65e15ee7d9eb1e0043d7\n", + " 101. values-astype-bf0acc24ca1d686bc7e4dc91eee546e8\n", + " 102. ParticleNetExample1-d4d79650-ea96-4f0d-9187-9a87f15fe12c\n", + " 103. numpy-call-ParticleNetExample1-906b63a30d0298bea4410f9b6ff1d666\n", + "\n" + ] + }, + { + "data": { + "image/png": "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AO/IgBwAAAAAAHhPd999d4488sg8/PDDue222zJlypScdtppRWeVhaOPPjqPPPJIHn/88SxevDjt27fPtddem/Xr1xedBgAAAADwFlWlUqlUdAQAAAAAAFCeFi1alC996Ut5/PHHM2DAgFx//fXZd999i84qW5s3b87PfvazfP/7388hhxyS22+/PV27di06CwAAAABgi6VOIAcAAAAAAN7WyJEj07FjxyxcuDDjx4/PoEGDjMffQ7169XL11VfnxRdfzCGHHJKTTz45V111VTZs2FB0GgAAAABAksSAHAAAAAAA2Mbq1avTt2/f9OvXL5deemlmzZqV7t27F51VUdq0aZOxY8fmF7/4RQYPHpyuXbtm7ty5RWcBAAAAABiQAwAAAAAA/8/06dNz/PHHZ9KkSRk9enT+4z/+Iw0bNiw6q2JdfvnlmTVrVurXr59OnTpl5MiRRScBAAAAAHWcATkAAAAAAJAkGTZsWLp27ZqDDz44M2bMSO/evYtO2i20bds2kyZNyoABA9KvX79cddVV2bRpU9FZAAAAAEAdZUAOAAAAAAB1XG1tbb75zW/mggsuyIABAzJhwoS0aNGi6KzdSk1NTW644YYMGTIkt912W84888ysW7eu6CwAAAAAoA6qKpVKpaIjAAAAAACAYrz55pu58MILM2rUqAwePDjnnXde0Um7veeffz59+vTJQQcdlMceeywHHXRQ0UkAAAAAQN2x1IAcAAAAAADqqDVr1uSMM87Iyy+/nIcffjjdunUrOqnOWLhwYT796U9n3bp1GTduXI466qiikwAAAACAumFpddEFAAAAAADArrdy5cqcfvrpWbx4cSZPnmw8vou1bds2kydPzsEHH5xu3bplxowZRScBAAAAAHWEATkAAAAAANQxf/7zn9O9e/esXr06kyZNcvp1QZo0aZJx48bl2GOPzamnnprnn3++6CQAAAAAoA4wIAcAAAAAgDpk1apV+cQnPpGNGzdm0qRJadu2bdFJddo+++yTxx57LCeeeGJ69erlJHIAAAAAYKerKpVKpaIjAAAAAACAne+1115Ljx49snz58kyaNClt2rQpOon/34YNG3LmmWfmhRdeyMSJE9OuXbuikwAAAACA3dNSA3IAAAAAAKgD1q9fn549e2b+/Pl58sknc+ihhxadxP+xbt269OzZM0uWLMmzzz6bVq1a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y5k9e3buueeePProoymVSpk4cWJmz56dX/3qV3n44Ydzzjnn5I9//GPmz5+/zeNfeeWVXHvttXnkkUdy/fXXZ8qUKTn11FMzZMiQvPDCCznzzDOzzz775MEHH9zmcQ899FCSvO1J6VvU1tbm6quvTsOGDTNx4sTcdNNNGTx4cJ577rls3rw5P//5z5Mkw4cPT01NTV555ZX87Gc/y7XXXpvHH388LVu2zKhRoz7Qz2Vn2PJ52bhxY8ElAAAAAEC5MSAHAAAAAIAytuXk8SKGwHvuuWd+8IMfpKqqKklSXV2drl27Zu3atVm6dOl2P1+9evVyzTXXbP2+Q4cOSZLTTjstRxxxxNbbu3fvniR56aWXtnl848aNc/XVV2/9vrq6Ot/97ndTKpUybty47L333vnc5z6XqVOnZtGiRVuvGzlyZJo1a5aePXumtrY2b7zxxjZfmzdvzrRp0zJjxox89rOfzWGHHbb1sUcddVQGDRqUE044IUnyta99Lb///e/TuHHjrdds2LAhjRs3zmuvvbbdP5OdZcvnZctJ5AAAAAAAWxiQAwAAAABAGdsyAN6wYcMuf+0DDjgge+yxxza3NWnSJEmybt267X6+gw46aJtB85bnPuigg7a5rl69ekne+p4PP/zwrWP2LY455pgkfz+dPPl/p4xvOYV8yZIlmTJlSvr165f69etnypQp2Weffbb5GjFixNbTztu3b/+W7q985Sv5l3/5lyR/H5QfdNBB+c///M+cffbZOf7449O6deu8/PLL2/3z2JnWr1+fJGnYsGHBJQAAAABAuTEgBwAAAACAMrZlcF3UCeTvpFQqvetj//KXv7zltr333vttr62ufn//XNGyZct3fM4tY/TTTz89Bx544NYB+YMPPphSqZTzzjsvSdKsWbOcd95523y1adMmK1asSJK0atXqXRtuvPHGHHzwwfnhD3+YjRs3pkePHrnrrrvStWvX9/UedpUt43sDcgAAAADg/6opOgAAAAAAAHhne+65Z+rVq5fXX3+96JS3VVVVldra2rfcPmfOnB3+WltOCf/fFi1alCQ58sgjk/z99PL+/fvnpz/9aZYsWZKRI0fm0EMPzUknnZTk76eYDx069C3Ps2rVqiTJlClT0r9//23uu+eee1JbW5tPf/rT+fa3v53mzZtn3rx52Xfffbdec/311++Q97ijbPm8vNNoHwAAAACou5xADgAAAAAAZay6ujr7779/Vq5cWXTK22rTpk0WLVq0zQnps2fPftux9z9q7ty5mTdv3ja33XnnnUmSj3zkI1tvO//881MqlXLzzTfnueeeywUXXPCez/2xj30se+65ZyZMmLDN7S+99FIuvvjiPPnkk1m8eHFqa2vz+c9/fpvx+JIlSzJ9+vR/5K3tcNGwdsYAACAASURBVFtOVG/evHnBJQAAAABAuTEgBwAAAACAMte0adOyHZB37tw5GzZsyMUXX5yJEyfmjjvuyGc/+9k0atRoh7/W5s2b89nPfjaPPPJIZs+enR/+8IcZNGhQ+vbtm5NPPnnrdZ06dcpRRx2Vm2++OUly4YUXvudzt2jRIldffXVmzpyZK664IlOnTs0999yTc845JzU1Nbniiity5JFHZp999skDDzyQUaNGZd68ebnrrrvSpUuX7Lffflm3bt1OOXn9g9hyonrTpk0LLgEAAAAAyk1N0QEAAAAAAMC7a9as2dYTpcvN17/+9Tz77LO57777ct9996VVq1ZbT/y+4YYbduhrnX766WnVqlXOPvvs1NbWJkm6d++en//852+59vzzz8/3v//9fPKTn0zbtm3f1/P/8Ic/TKlUyo033phf/vKXSZKWLVtm2LBh6dy5c5JkyJAhueSSS9KnT58kyf7775+BAwdm7733zkUXXZRjjz12m9PYi7Jy5co0aNBgm5PSAQAAAACSpKpUKpWKjgAAAAAAAN7Zueeem7/+9a959NFHi055RytWrMiyZcvSoUOHVFVV7fDnb9asWT72sY9lzJgxWb16daZOnZpWrVqlXbt2b3v9I488ks9//vN56KGH8vnPf367XuuNN97IzJkzs99+++Xwww9PgwYNtrl/1apVmTZtWlq2bJl27dptfb+rVq3K6tWrc9hhh32wN7kDXX/99bnzzjszf/78olMAAAAAgPKy1AnkAAAAAABQ5tq0aZPRo0cXnfGumjdvnubNm++S12rSpEk+8YlPvOs1gwcPTqtWrbaeFL499t5775x00knveH/Tpk3To0ePt729adOm2/16O8PChQvf98nrAAAAAEDdYkAOAAAAAABlrk2bNlm4cGHRGRXh+uuvz7Jly/Kb3/wmgwYNSk1N3fynkIULF+bDH/5w0RkAAAAAQBmqm39rCgAAAAAAFeSwww7L66+/nuXLl+fAAw8sOqcQLVu2TLNmzd7zuttuuy3r1q3LZZddlssvv3wXlJWnefPm5ZOf/GTRGQAAAABAGTIgBwAAAACAMnfcccclSWbOnFlnB+SzZs16X9ctXrx4J5eUvzVr1mTp0qVp37590SkAAAAAQBmqLjoAAAAAAAB4d82aNUvLli0zc+bMolOoADNnzkypVNr6iwcAAAAAAP+bATkAAAAAAFSA4447zoCc92XWrFlp0qRJDj744KJTAAAAAIAyZEAOAAAAAAAV4IQTTsizzz5bdAYV4Jlnnknnzp2LzgAAAAAAypQBOQAAAAAAVICuXbtm/vz5Wb58edEplLnJkyena9euRWcAAAAAAGXKgBwAAAAAACrASSedlHr16uW5554rOoUytmzZsixevNiAHAAAAAB4RwbkAAAAAABQAfbbb78cd9xxmTBhQtEplLHx48enYcOG6dy5c9EpAAAAAECZMiAHAAAAAIAK0atXr4wePbroDMrY2LFjc8opp2SvvfYqOgUAAAAAKFMG5AAAAAAAUCF69eqVBQsWZP78+UWnUIY2b96ccePGpWfPnkWnAAAAAABlzIAcAAAAAAAqRJcuXdK4ceOMGjWq6BTK0HPPPZdVq1ald+/eRacAAAAAAGXMgBwAAAAAACpETU1N+vTpk5EjRxadQhkaMWJEjjrqqLRr167oFAAAAACgjBmQAwAAAABABenbt2+ee+65LF68uOgUykhtbW0eeuih9O/fv+gUAAAAAKDMGZADAAAAAEAF+cQnPpHGjRs7hZxtPPXUU1m2bFm+8IUvFJ0CAAAAAJQ5A3IAAAAAAKggDRo0SL9+/TJkyJCiUygjQ4YMSadOndKuXbuiUwAAAACAMmdADgAAAAAAFeaKK67Iyy+/nMmTJxedQhlYu3ZtHnzwwXzxi18sOgUAAAAAqAAG5AAAAAAAUGE6dOiQTp065bbbbis6hTIwbNiwVFVV5Zxzzik6BQAAAACoAAbkAAAAAABQga644oo88MADWb58edEpFKi2tjaDBg3KOeeck/3226/oHAAAAACgAhiQAwAAAABABbrgggvSpEmT3HLLLUWnUKBRo0Zl7ty5+epXv1p0CgAAAABQIapKpVKp6AgAAAAAAGD7XXfddRk0aFAWL16cvffeu+gcCnDKKaekUaNGGTVqVNEpAAAAAEBlWOoEcgAAAAAAqFBf/vKX87e//S233npr0SkU4Mknn8xTTz2Va665pugUAAAAAKCCOIEcAAAAAAAq2He+853ccccdWbBgQfbdd9+ic9iFunfvnpqamjz++ONFpwAAAAAAlcMJ5AAAAAAAUMmuueaabNiwIYMGDSo6hV3od7/7XZ588slcd911RacAAAAAABXGCeQAAAAAAFDh/u3f/i0DBw7M3Llzc8ABBxSdw05WW1ub448/Pi1btszo0aOLzgEAAAAAKosTyAEAAAAAoNJ985vfTKNGjfL973+/6BR2gcGDB2fWrFn5yU9+UnQKAAAAAFCBnEAOAAAAAAC7gaFDh+biiy/O1KlT85GPfKToHHaStWvX5sgjj0y/fv3y05/+tOgcAAAAAKDyLDUgBwAAAACA3UCpVErXrl1TW1ubyZMnp169ekUnsRMMGDAgI0aMyJw5c7L//vsXnQMAAAAAVJ6l1UUXAAAAAAAA/7iqqqoMGTIk06dPzy233FJ0DjvBlClT8otf/CIDBw40HgcAAAAAPjAnkAMAAAAAwG7k2muvzU033ZRZs2alTZs2Reewg6xfvz4f/ehHc8ghh2TMmDFF5wAAAAAAlWupATkAAAAAAOxG1q9fn+OPPz5NmjTJE088kXr16hWdxA7wta99LYMHD86MGTP8YgAAAAAA8I9YWl10AQAAAAAAsOM0bNgw999/f37/+9/nhhtuKDqHHeB3v/tdbr755txyyy3G4wAAAADAP8wJ5AAAAAAAsBsaOHBgvvWtb2XSpEk58cQTi87hA/rzn/+cjh07plu3bhk+fHjROQAAAABA5VtqQA4AAAAAALuhUqmUM844IzNnzszUqVPTokWLopPYTps2bUqPHj2ydOnSTJ06NY0bNy46CQAAAACofEuriy4AAAAAAAB2vKqqqgwdOjQNGzbMWWedlY0bNxadxHb65je/meeffz4jR440HgcAAAAAdhgDcgAAAAAA2E01adIkDz30UKZNm5avfvWrReewHe65557cfPPNuf3229OxY8eicwAAAACA3YgBOQAAAAAA7MY6dOiQu+++O7feemsGDhxYdA7vw6RJk3L55Zfn29/+ds4777yicwAAAACA3cz/x959RmlVH+wevmcYBAWDiAY1NmKlCAlqcCaWKEVdRnNiAQVFQ7D3mqhJ1IgxHrvnGFsgdhRrNFbAWF7ngUDEChKxBMGggh0RmHI+vG88MZaoDLOnXNdarCXPfubZP3B/mrnXn7L6+vr6oiMAAAAAAIDl67zzzsvPfvaz3HLLLdl9992LzuFzPPfcc9l6662z4447ZuzYsSkrKys6CQAAAABoWeYYkAMAAAAAQCtxxBFH5Pe//33uuuuuDBo0qOgc/s1LL72UbbbZJhtssEEefPDBtG/fvugkAAAAAKDlMSAHAAAAAIDWor6+PgceeGDGjh2be++9N9ttt13RSfyPuXPnZptttkmnTp3y0EMPpXPnzkUnAQAAAAAtkwE5AAAAAAC0JjU1NRkyZEgmTJiQP/3pT9lmm22KTmr1Xn311QwYMCBt27bNww8/nNVWW63oJAAAAACg5ZpTXnQBAAAAAADQeCoqKjJ27NgMGDAgO+20U8aPH190Uqs2a9asbLvttmnXrl0mTJhgPA4AAAAALHcG5AAAAAAA0MqssMIKGTNmTDbbbLPsuuuuueOOO4pOapWefvrpbLvttll99dXz8MMPZ4011ig6CQAAAABoBQzIAQAAAACgFfnwww9zwQUXZMMNN8w222yTkSNHZs8998yFF15YdFqr8sADD2SbbbbJpptumgkTJmTVVVctOgkAAAAAaCUqig4AAAAAAACWv48++ihXXHFFRo0alfnz56eioiLHHHNMvvWtb2X99dfPCSeckJdeeikXXnhhKir8+GB5uvLKK3P44Ydn6NChueqqq7LCCisUnQQAAAAAtCJOIAcAAAAAgBZs8eLFufTSS7Peeuvl+OOPz/z589OmTZvss88++da3vpUkOeGEEzJu3LiMGTMmAwcOzBtvvFFwdcu0ePHiHHzwwTnkkEPyi1/8IldffbXxOAAAAADQ6Mrq6+vri44AAAAAAAAa1tKlSzN27Niceuqpee2111JfX59//ZHAk08+mT59+nzia5566qnsscceWbx4ccaNG5fKysrGzm6xXn311fzoRz/KCy+8kOuvvz4/+tGPik4CAAAAAFqnOU4gBwAAAACAFmTp0qW59tprs+GGG+YnP/lJ5s6dm7q6uo/H4xUVFRk4cOCnxuNJ0qdPn0yZMiV9+vTJdtttl7POOiu1tbWN/UdocW699db06dMnS5YsySqrrJJZs2alpqam6CwAAAAAoJUyIAcAAAAAgBagrq4ut9xySzbeeOP85Cc/yauvvvqJ4fg/1dTU5OSTT/7cz+ncuXPuvvvunHPOOTnzzDOz/fbb55VXXlnO9S3Te++9lxEjRmSvvfbK3nvvnSlTpmS33XbLCSeckM033zzTpk0rOhEAAAAAaIUMyAEAAAAAoJm74YYbssEGG2TvvffO7NmzP3M4niTl5eXZbLPNsv3223/h55WVleXYY4/NX/7yl7z99tvZbLPNcvHFFzuN/Cu4++6706tXr/zpT3/KH//4x/zud7/LiiuumCFDhiRJnn322WyxxRY58cQT8+GHHxZcCwAAAAC0JgbkAAAAAADQzC1evPjj4XhdXd0XvveLTh//d717987UqVNz3HHH5aSTTsr3v//9PPnkk8ua26LNnTs3Q4YMyW677ZZtt902zz33XHbbbbePr2+99dbp2rXrx/+vLrroomyyySZ58MEHC6wGAAAAAFoTA3IAAAAAAGjmRowYkRtvvDFt2rRJefnnf+t/zTXXzF577fWVPrtdu3Y544wz8te//jXl5eXZfPPNc9BBB+WNN95Y1uwWZdGiRTnrrLOyySabZMqUKbn33ntz/fXXZ/XVV//E+8rLyzN06NCssMIKSZKampr84x//yI477pg999wzb775ZhH5AAAAAEArYkAOAAAAAAAtwJAhQ3LnnXemTZs2KSsr+9T1ioqKnHTSSamoqPhan9+rV688/vjjueaaa3Lfffdl4403zllnnZX3339/WdObtZqamlx99dXp3r17fvvb3+aUU07J9OnTs/POO3/u1wwZMiRLliz5+Pe1tbVJkrvuuisbbLBBrrzyyuXeDQAAAAC0XmX19fX1RUcAAAAAAAANY88998xtt92W8vLy1NXVffz6yiuvnNdeey0dO3Zc5nssXLgw5513Xi644IKssMIKOemkk3LYYYelQ4cOy/zZzUVtbW1uuumm/PrXv87LL7+c/fffP2eccUbWWmutL/X16623XmbPnv2p1/85/t96660zevTobLTRRg3aDQAAAAC0enOcQA4AAAAAAC3EqaeemjvvvDOnnXZa2rdv//Fp423bts1RRx3VIOPxJOnQoUNOO+20vPzyyzn88MMzatSorLXWWjn66KMzZ86cBrlHU7V48eJce+216dmzZ4YPH54+ffrkueeey1VXXfWlx+NJMnTo0LRt2/ZTr9fX16e+vj6lUimbbbZZzjnnnI9PKAcAAAAAaAhOIAcAAAAAgBZg1KhR+dWvfpUrr7wyI0eOTKlUyqBBg/Lhhx+mTZs2mT17dtZYY43lcu/58+fnsssuy6WXXpp33nknQ4YMyYEHHpitt956udyvCM8//3xGjx6dP/zhD1m0aFH233//HHfccdlwww2/1uc9+eST+e53v/ul3rvPPvvkxhtv/Fr3AQAAAAD4N3MMyAEAAAAAoJm75JJLcswxx+TSSy/NoYce+vHrTzzxRPr375/dd989o0ePXu4dH330Ua6//vpcfvnl+etf/5pNN900I0aMyODBg7Peeust9/s3tLfffjt33HFHrr766jz22GNZf/31M3LkyBx88MFZbbXVlvnzN9xww7z44oufe728vDw77bRTbrzxxnTq1GmZ7wcAAAAAEANyAAAAAABo3saMGZORI0fmt7/9bU466aRPXX/uuefStm3bbLzxxo3aNW3atFx11VW5+eab8/bbb6dfv34ZPHhwdtlll0Zv+SrmzZuX++67L7feemsmTJiQ8vLy7LrrrvnpT3+agQMHpry8vMHudfrpp+c3v/lNli5d+onXy8vLU1dXl5/97Gf5zW9+06D3BAAAAABaPQNyAAAAAABorq677roccMABOeOMM/KLX/yi6JzPtHTp0owfPz7jxo3LH//4x7zzzjv59re/nZ122in9+/dPVVVV1lhjjcL63nvvvZRKpTzwwAN5+OGH8+STT6Zdu3YZOHBgBg8enN122y3f+MY3lsu9n3/++XTv3v0Tr1VUVKS8vDxt2rTJtGnTsskmmyyXewMAAAAArZYBOQAAAAAANEe33357hgwZkiOPPDIXXHBB0TlfSk1NTUqlUu6///488MADefLJJ1NbW5sNNtgglZWV6d27d3r37p3NNtssa621VoPf/+23384zzzzz8a9Jkybl2WefTW1tbVZeeeXsv//+2WmnnbL99ttnpZVWavD7f5aePXtm+vTpSf57PL7xxhvnjjvuyIgRIzJ//vxMmTIlK6+8cqO0AAAAAACtggE5AAAAAAA0Nw888EB+9KMf5aCDDsoll1xSdM7X9v777+e//uu/cuaZZ6ZTp055+umn89prryVJOnTokG7duqVbt25Zf/3106VLl3Tp0iWrrbZaOnfunDZt2qS8vDydOnXKwoULs2TJkiTJO++8k/nz52fBggWZP39+5syZk5dffjkvv/xy3nrrrSRJ586d07t37/Tt2zdbb711unXrlr59++bmm2/O4MGDG/Xv4Oyzz84vfvGL1NfXZ5999slVV12VlVZaKa+++mo233zz9O/fP2PHjm3UJgAAAACgRTMgBwAAAACA5mTixIn54Q9/mH322SejR49OWVlZ0UnL5Pzzz89ll12WWbNmJUkWLFiQp59+Oi+99NLHw+/Zs2dnwYIFH/+qra39ws9cddVVs9pqq6VLly5Za621Ph6if/vb307Pnj2zzjrrfOL906ZNS9++ffONb3wjM2fOzBprrLHc/rz/7qWXXsqmm26a888/P0ceeeQnrj300EMZNGhQLrroohxxxBGN1gQAAAAAtGgG5AAAAAAA0FyUSqUMGjQoO++8c8aOHZs2bdoUnbRM/v73v2fTTTdNXV1dPvrooy89hv/ggw+ydOnS1NbW5r333stKK62Udu3apaysLKussspX7pgwYUIGDhyYNm3aZMcdd8w999zzlT9jWUyfPj09evT4zGujRo3Kr3/96zz00EPZeuutG7ULAAAAAGiRDMgBAAAAAKA5mDZtWvr3758f/OAHGTduXCoqKopOWma77LJL7rvvvtTX12fevHnp2rVrIR1jx47NsGHDUl9fn7KysowZMyYHHHBAIS3/rr6+PrvvvnumTp2aJ554IquvvnrRSQAAAABA8zanvOgCAAAAAADgiz399NMZOHBgttxyy4wdO7ZFjMdvu+223HvvvfnnOTezZ88urGXBggUf/53W19fniCOOKLTnX/1z0L7CCitkyJAhqa2tLToJAAAAAGjmDMgBAAAAAKAJ+9vf/pYdd9wxffr0yZ133pl27doVnbTM3n///Rx++OEpL///P6YocrA9f/78T7QsWbIkw4cPT1P5R1w7d+6c22+/PZMmTcppp51WdA4AAAAA0MwZkAMAAAAAQBP14osvZvvtt0+3bt3yxz/+MSuuuGLRSQ3i1FNPzYIFC1JXV5ckadu2bV599dXCehYsWPCJsfjSpUvz2GOP5fLLLy+s6d/16dMnl1xySX7zm9/kjjvuKDoHAAAAAGjGDMgBAAAAAKAJmjNnTgYOHJhvfvObueeee9KxY8eikxrE1KlTc+mll6ampubj18rKygodkM+fP/8TPUlSV1eX4447Li+88EJBVZ82cuTI/OQnP8mIESPy4osvFp0DAAAAADRTBuQAAAAAANDEvPHGGxk4cGA6duyYCRMmpHPnzkUnNYja2tqMGDEi5eWf/PHE0qVL8/e//72gquT111//+DT0f1VbW5t99903tbW1BVR9tksvvTQbbLBBdt9993z44YdF5wAAAAAAzZABOQAAAAAANCHz58/PDjvskNra2jzwwAPp0qVL0UkN5pJLLslzzz33qdO+6+vrCz1R+/XXX//M15cuXZqpU6fm4osvbuSiz9e+ffvcdtttmTt3bg4++OCicwAAAACAZqisvr6+vugIAAAAAAAgeffddzNgwIC88cYbefTRR7PeeusVndRgXn311WyyySZZtGjRZ15fddVVs2DBgkau+m9rrLHG547Ik6Rt27aZNm1aevbs2YhVX+yee+7JbrvtliuuuCIjR44sOgcAAAAAaD7mOIEcAAAAAACagA8//DC77rpr5s2bl4cffrhFjceT5LDDDvvUyeP/6u23387ixYsbsej/e/fdd7/wel1dXfbbb78v7G9su+yyS04++eQceeSRmTp1atE5AAAAAEAzYkAOAAAAAAAFW7RoUX74wx9m5syZefDBB9OtW7eikxrUvffemz/96U9ZunTp576nvr4+c+bMacSq/7Zo0aJ89NFHn3mtvLw8FRUVqa2tzdy5c/PII480ct0X+/Wvf53tttsue+yxR+bPn190DgAAAADQTBiQAwAAAABAgZYsWZK99tor06ZNy/3335/u3bsXndSgPvjggxx00EEpKyv7j++dPXt2IxR90oIFCz7x+4qKio//e/vtt895552XZ555Jq+//nr69+/f2HlfqLy8PDfeeGPKy8szdOjQ1NbWFp0EAAAAADQDBuQAAAAAAFCQ2tra7Lvvvvmv//qvjB8/Pt/97neLTmpw9fX1ueSSS3Lcccdlyy23TNu2bZMkbdq0SZs2bT5+X3l5eSED8n+e3N2mTZt873vfy6mnnpo//elPKS8vzxFHHJGjjz46vXr1avSuL2vVVVfNTTfdlEceeSS/+c1vis4BAAAAAJqBiv/8FgAAAAAAoKHV1tZm+PDhueeee3L//fdniy22KDppuVh55ZWz++67Z/fdd0/y3yeur7feevnOd76TlVZaKY899ljefPPN1NXV5dVXX230vi5duuSuu+7KD37wg6y88sofv/6d73wnEydOzP/6X/+r0Zu+qn79+uW8887LMcccky233DI77bRT0UkAAAAAQBNmQA4AAAAAAI2svr4+hx56aO64447cc8892WabbYpOajTz58/PvHnzcvzxx2fAgAFJktmzZ6e6ujodOnRo9J511lkn66yzzqdeHzBgQO66665G7/m6jjzyyEydOjXDhg3L1KlT061bt6KTAAAAAIAmqqy+vr6+6AgAAAAAAGhNjj/++Pzf//t/c/vtt2eXXXYpOqdR3XbbbRk8eHDeeuutdOrUqeiczzV+/PgMGjQos2fP/syBeVO0cOHC9OvXLx06dMijjz6adu3aFZ0EAAAAADQ9c8qLLgAAAAAAgNbk5z//eS6++OJcd911rW48niSlUim9evVq0uPxJNlmm22y4oorZuLEiUWnfGkdOnTIHXfckZkzZ+a4444rOgcAAAAAaKIMyAEAAAAAoJGcfvrpOffcc3PNNddk8ODBRecUorq6OlVVVUVn/Eft27dPVVVVsxqQJ8lGG22Ua665JpdddlmuueaaonMAAAAAgCbIgBwAAAAAABrBRRddlF//+te57LLLMmzYsKJzCrF48eJMmzYtlZWVRad8Kf3798/48eNTX19fdMpX8qMf/SjHHntsDj300EybNq3oHAAAAACgiTEgBwAAAACA5ezSSy/Nsccem3PPPTcHHXRQ0TmFeeKJJ/LRRx81mwH5gAED8vrrr+e5554rOuUrO+ecc7LllltmyJAheffdd4vOAQAAAACaEANyAAAAAABYjq655pocddRROfvss3P88ccXnVOo6urqrLbaatlwww2LTvlS+vbtm1VXXTUTJkwoOuUrq6ioyLhx47Jw4cIMHz682Z2iDgAAAAAsPwbkAAAAAACwnNx666356U9/ml/+8pf5+c9/XnRO4UqlUiorK1NWVlZ0ypfSpk2bbL/99s1yQJ4kXbt2zS233JL77rsv5513XtE5AAAAAEATYUAOAAAAAADLwZ133pmhQ4fmiCOOyOmnn150TpMwadKkVFZWFp3xlfTv3z+PPPJIli5dWnTK11JVVZWzzjorJ598crMdwgMAAAAADcuAHAAAAAAAGtj48eOz9957Z/jw4bnwwguLzmkS/v73v2fu3LmpqqoqOuUrGTBgQD744INMmjSp6JSv7YQTTsiPf/zj7Lvvvpk7d27ROQAAAABAwQzIAQAAAACgAT3++OP58Y9/nCFDhuTKK69MWVlZ0UlNQqlUSkVFRTbffPOiU76SjTbaKOuvv34mTpxYdMrXVlZWljFjxmTVVVfNXnvtlSVLlhSdBAAAAAAUyIAcAAAAAAAayKRJk7Lzzjtnp512yujRo1Ne7tvw/1QqldKnT5907Nix6JSvrH///pkwYULRGctk5ZVXzrhx4/L000/n5JNPLjoHAAAAACiQ71wDAAAAAEADeOqpp7LLLrtkhx12yNixY1NRUVF0UpNSXV2dqqqqojO+lgEDBmTy5Ml57733ik5ZJr169cpVV12VCy+8MLfcckvROQAAAABAQQzIAQAAAABgGc2cOTM77rhj+vbtm5tuuilt27YtOqlJWbRoUZ5++ulUVlYWnfK1p8AoCgAAIABJREFUDBgwIHV1dXnkkUeKTllm++yzTw455JCMGDEi06dPLzoHAAAAACiAATkAAAAAACyDWbNmZfvtt8+GG26YO++8M+3bty86qcmZMmVKlixZ0mwH5Kuttlp69+6diRMnFp3SIC688ML06NEjgwcPzsKFC4vOAQAAAAAamQE5AAAAAAB8TbNnz87AgQOz7rrr5r777kuHDh2KTmqSqqurs+aaa2b99dcvOuVrGzBgQCZMmFB0RoNo165dbrnllrz++us55JBDis4BAAAAABqZATkAAAAAAHwNc+fOzfbbb59OnTrl3nvvzcorr1x0UpNVKpVSVVVVdMYy6d+/f5577rnMnTu36JQGse666+baa6/NjTfemCuvvLLoHAAAAACgERmQAwAAAADAV/Tmm29m0KBBadu2bR544IGsuuqqRSc1aZMnT05lZWXRGctk2223Tbt27fLQQw8VndJgdt555/z85z/P0UcfnSeeeKLoHAAAAACgkRiQAwAAAADAV/DOO+9kp512ypIlS/LQQw+la9euRSc1abNmzcrrr7/e7AfkK620UiorKzNx4sSiUxrUmWeema233jpDhgzJu+++W3QOAAAAANAIDMgBAAAAAOBLeu+99zJo0KC8+eabGT9+fNZaa62ik5q86urqtGvXLn379i06ZZn1798/48ePLzqjQZWXl+f666/PwoULM3z48NTX1xedBAAAAAAsZwbkAAAAAADwJXz44YfZddddM3v27IwfPz7rr79+0UnNQqlUyne/+920b9++6JRlNmDAgLz22muZMWNG0SkNqmvXrrnxxhtzzz335P/8n/9TdA4AAAAAsJwZkAMAAAAAwH+wZMmS7LnnnpkxY0YeeuihbLLJJkUnNRulUilVVVVFZzSILbfcMp07d25xp5AnyQ9+8IOcfvrpOeGEE1JdXV10DgAAAACwHBmQAwAAAADAF1i6dGn22GOPVFdX5/7770+PHj2KTmo23n///Tz77LOprKwsOqVBtGnTJtttt10mTpxYdMpyccopp6R///7Ze++9M3/+/KJzAAAAAIDlxIAcAAAAAAA+R21tbYYPH55HH300Dz74YPr27Vt0UrPyl7/8JbW1tdlqq62KTmkw/fv3z5///OcsXbq06JQGV15enhtuuCHl5eXZf//9U19fX3QSAAAAALAcGJADAAAAAMBnqK+vz8EHH5y77rord911V773ve8VndTsVFdXZ911183aa69ddEqDGTBgQN5///1MmTKl6JTlYtVVV83NN9+cCRMm5H//7/9ddA4AAAAAsBwYkAMAAAAAwL+pr6/PYYcdluuuuy633nprtttuu6KTmqVSqZSqqqqiMxrUpptumnXWWScTJkwoOmW56devX84666z84he/yGOPPVZ0DgAAAADQwAzIAQAAAADg3/zsZz/L6NGjc+utt2bnnXcuOqdZqq+vz+TJk1NZWVl0SoMbMGBAJk6cWHTGcnX88cdnt912y+DBg/OPf/yj6BwAAAAAoAEZkAMAAAAAwL849dRTc8EFF+Taa6/NrrvuWnROs/X888/nrbfeapED8v79+2fSpEn54IMPik5ZbsrKyjJ69OistNJKGTZsWGpra4tOAgAAAAAaiAE5AAAAAAD8j1GjRuXss8/O5Zdfnr333rvonGaturo6K664Yvr06VN0SoMbMGBAli5dmkcffbTolOVqlVVWye23355JkyblzDPPLDoHAAAAAGggBuQAAAAAAJDkkksuya9+9atceumlGTlyZNE5zV6pVMqWW26ZFVZYoeiUBte1a9f06tUrEydOLDpluevTp0/OPffcnHnmmXnwwQeLzgEAAAAAGoABOQAAAAAArd6YMWNyzDHH5Le//W0OPfTQonNahFKplMrKyqIzlpsBAwZkwoQJRWc0isMPPzxDhw7Nfvvtl7lz5xadAwAAAAAsIwNyAAAAAABateuuuy4HHnhgzjzzzJx00klF57QI77zzTp5//vkWPSDv379/nnnmmcybN6/olEZx2WWXpUuXLtlrr72ydOnSonMAAAAA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xIjsscce2X///bNgwYKicwAAAACgyTEgBwAAAAAAPlepVMomm2yS1VZbreiUZueZZ55JRUXFp16vq6vLKaeckvfff7+AqtbhiiuuSHl5eQ455JCiUwAAAACgyTEgBwAAAAAAPlepVEplZWXRGc3SM888k7Kyss+89t577+Wiiy5q5KLWo3Pnzrn66qtz++2359prry06BwAAAACaFANyAAAAAADgM9XU1GTq1KkG5F/TE088kaVLl37mtZqampx99tl5/fXXG7mq9ejfv3+OOuqoHHnkkXnllVeKzgEAAACAJsOAHAAAAAAA+ExPPfVUPvjgg1RVVRWd0iw9++yzX3i9pqYmZ555ZiPVtE6//e1vs/7662e//fZLbW1t0TkAAAAA0CQYkAMAAAAAAJ+pVCrlG9/4Rrp37150SrMzZ86cvP/++597vaysLHV1dbniiivywgsvNGJZ69KuXbvceOONmTp1as4///yicwAAAACgSagoOgAAAAAAAGiaSqVSKisrU17uPJqv6plnnkny30Pxtm3bpqamJnV1dUmSNddcM717907v3r2z6aabpl27dkWmtng9e/bM6aefnl/+8pcZNGhQvvOd7xSdBAAAAACFMiAHAAAAAAA+U3V1dQ444ICiM5qlGTNmpFu3btlss83Ss2fP9OjRI88++2yuuOKKvPbaa0XntTonnnhi7r///gwbNixTp07NiiuuWHQSAAAAABSmrL6+vr7oCAAAAAAAoGl5/fXXs8Yaa+SBBx7IoEGDis5pEf785z9nhx12yLx589K1a9eic1qdOXPmpHfv3jnggANywQUXFJ0DAAAAAEWZ49+cBAAAAAAAPuXxxx9PeXl5+vXrV3RKi9G9e/ckyfTp0wsuaZ3WXnvtXHjhhbnoooty//33F50DAAAAAIUxIAcAAAAAAD6lVCqlZ8+e6dSpU9EpLcYaa6yRLl26GJAXaP/9989ee+2VkSNH5q233io6BwAAAAAKYUAOAAAAAAB8SqlUSmVlZdEZLU737t0zY8aMojNatcsvvzxlZWU56KCDik4BAAAAgEIYkAMAAAAAAJ+wZMmS/PWvfzUgXw66d+/uBPKCde7cOWPGjMntt9+esWPHFp0DAAAAAI3OgBwAAAAAAPiEJ554Ih999FGqqqqKTmlxDMibhoEDB+awww7LoYcemtmzZxedAwAAAACN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QkIUHByskJAQlS1bViVLlpQklShRQn5+fvnPm5GRodzcXOXk5CgtLe2G4fmpU6fyR+knT55UTk6OvL29VaNGDTVu3FiNGjVSixYtZLPZVKpUKSPvi6tLTExUeHi4ZsyYoaFDh5rOAQAAAAAAAG6FATkAAAAAAAAAAJ5q0qRJWrZsmY4ePWo6xW0lJiZqw4YN+vrrr2VZli5cuKCAgID88Xbjxo3VsGFDhYWFqUyZMkXakpOToxMnTmjfvn1KSkpSUlKS9u7dq6NHj8rb21v169dX69at9eijj+qxxx5T6dKli7THnUycOFEzZ85UYmKiatasaToHAAAAAAAAuBkG5AAAAAAAAAAAeKr27durXLly+uCDD0ynuI1r164pPj4+/+PUqVMqV66c2rRpo8jISEVERKhp06YqVqyY6dR8586dk91u19atW2W327Vz5055eXmpVatWioqKUpcuXdSgQQPTmU4tKysGsWfrAAAgAElEQVRLzZs3V0hIiL788kt5eXmZTgIAAAAAAAB+DwNyAAAAAAAAAAA8UV5ensqUKaOpU6dq8ODBpnNc2vXr17V+/XqtXLlSa9as0bVr19SiRQtFRUWpY8eOatasmby9vU1nFtjFixf1v//7v1q3bp3i4+N15swZ1a9fX927d1f37t1Vt25d04lOac+ePWrZsqXefPNNDRw40HQOAAAAAAAA8HsYkAMAAAAAAAAA4ImSkpLUqFEj7d69W02bNjWd45ISExO1aNEiLV++XBkZGWrdurW6d++up556ShUqVDCdVyjy8vJkt9u1cuVKffzxxzp9+rTCw8P1/PPPq2fPnipZsqTpRKcyduxYLViwQN99951CQ0NN5wAAAAAAAAC/hQE5AAAAAAAAAACeaNGiRRo5cqTS09Pl6+trOsdlZGZmavny5Vq0aJF27NihOnXqaMCAAerVq5cqVapkOq9I5eXlacuWLXrnnXe0atUqFStWTD179tTgwYPVuHFj03lOITMzUw899JCqVq2qtWvXms4BAAAAAAAAfstJ1/n/EgEAAAAAAAAAQKGxLEstWrRgPF5AFy5cUExMjKpWrapBgwapZs2a2rRpkw4cOKDRo0e7/Xhckry9vfXII49o2bJlSk1N1ZQpU2S329WkSRO1a9dO69atk6efW+Tv76/Fixdrw4YNWrp0qekcAAAAAAAA4DcxIAcA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DBigqVOnqkyZMpKkjRs3qm/fvkpNTc1vK168uF599VWNHz/+pq+voK+hINdIS0tTp06dtH37drVt21abNm3Kv+/UqVP1yiuvqH379lq/fv0NDSEhIWratKkqV66sZcuWKS8vT5LUtm1brVq16oZxdkHej3utc+fOCgoK0tKlS41c31llZWWpQYMGatas2Q2n1wMAAAAAAMAlnWRADgAAAAAAAACACzh06JAefPBBWZalVq1amc4psOzsbPn7+2vVqlXq1q2b6ZybSktL0549e1SxYkWFhYXJy8sr//aLFy+qVq1av/vY8+fP69SpU2rcuHH+437LpUuXtGfPHl2+fFkNGzZUaGjor+5z9epVJSYm6scff1RISIgaNGigcuXKFeprKOg1UlNTVbJkSZUsWTL/ttWrV6tbt276+OOPf/VvGhISovDwcMXHx+vixYvatWuXKleurLCwsDt+P+4lm80mm82m2bNnG+1wRp999pm6du3qFL8MAgAAAAAAgLvCgBwAAAAAAAAAAFfw3nvv6cUXX9TPP/8sf39/0zm3JTg4WDExMXrppZdMp6AQdOrUSXv37lVycrJ8fX1v+Nx/D8hdUc2aNTVgwACNGzfOdIpTioqK0pkzZ7Rr1y75+PiYzgEAAAAAAMCdOeltugAAAAAAAAAAANyaZVlq3ry5y43HJalq1ao6ceKE6QzcpalTp+qll17S2rVrFR0d/avxuKvLyclRSkqKqlWrZjrFac2ePVv79+/X4sWLTacAAAAAAADgLjAgBwAAAAAAAADABViWJZvNZjrjjlSvXl3JycmmM3CXFi1apJUrV2rAgAEaOHDgb96nYsWKCgkJucdlhePkyZPKzs5W9erVTac4rXr16mnIkCEaP3680tLSTOcAAAAAAADgDjEgBwAAAAAAAADAyWVkZOj777932QF5tWrVdPz4cdMZuEsnTpxQWlqaFi1aJD8/v9+8T1JSkpYtW3aPywrHf75GGZDf3KRJk+Tn56fJkyebTgEAAAAAAMAdYkAOAAAAAAAAAICT2759u3Jzc9WqVSvTKXekevXqOnbsmOkM4KaOHTumgIAAlStXznSKUwsMDFRMTIzmz5+vpKQk0zkAAAAAAAC4AwzIAQAAAAAAAABwcpZlqVq1aqpUqZLplDtSv359paWlKTU11XQK8LuSkpJUv359eXl5mU5xev37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mpqamtQRAAAAAADQHJ1zzjkxe/bsmDx5cuqURun555+PQYMGxaBBg+Lee++N0tLS1EnUsVmzZsXBBx8cBx54YIwbN87veRNXVVUV++yzT+yxxx4xbty41DkAAAAATcVbbiAHAAAAAIBECoVC5HK51BmN1v777x+PPPJIPPbYY3HGGWdEdXV16iTq0Jw5c2LQoEHRv3//GDt2rPF4M1BaWhrXX3993H///fHkk0+mzgEAAABoMtxADgAAAAAACaxcuTI6duwYY8eOjRNOOCF1TqP22GOPxXHHHRcnnnhi3HHHHYbFTdCMGTPiiCOOiD333DP+9re/Rdu2bVMnUY+OPPLIeO+99+KFF16IkpKS1DkAAAAAjZ0byAEAAAAAIIUpU6bEunXrYuDAgalTGr0jjjgiJk6cGA8//HAcf/zxsWbNmtRJ1KJp06bFoEGDYq+99opHH33UeLwZuvHGG+Pll1+OO+64I3UKAAAAQJNgQA4AAAAAAAlkWRbdunWLnXfeOXVKk3DQQQfFhAkTYtKkSfGd73wnKioqUidRC5588sk45JBD4utf/3pMnDgx2rVrlzqJBPbcc884++yz49JLL40VK1akzgEAAABo9AzIAQAAAAAggSzLIpfLpc5oUr7+9a/HU089FS+++GIcdNBB8d5776VOYgvccccd8a1vfSuOO+64GDduXLRq1Sp1Egn94he/iHXr1sV1112XOgUAAACg0TMgBwAAAACAelZTUxNTp041IK8D/fr1iylTpsQnn3wS/fr1i5kzZ6ZOYhPV1NTElVdeGT/4wQ/inHPOiTvvvDNatGiROovEtt122xg+fHjceOONsWTJktQ5AAAAAI2aATkAAAAAANSzuXPnxkcffRT5fD51SpP01a9+Nf7xj3/EV7/61Tj44INjwoQJqZPYSKtWrYphw4bFNddcEyNHjozf/e53UVzsn7P4b+edd1585StfiUsvvTR1CgAAAECj5m/cAAAAAACgnmVZFm3atInevXunTmmyOnXqFE888UR8+9vfjmOOOSZ+/vOfR3V1deosvsSCBQsil8vF448/HhMmTIgzzjgjdRINTIsWLeJXv/pVjBkzJgqFQuocAAAAgEarqKampiZ1BAAAAAAANCdnnHFGLFy4MJ555pnUKc3Cf/7nf8YFF1wQhx12WIwePTo6duyYOol/8sgjj8Spp54a3bt3j/vvvz923XXX1Ek0YAceeGBUVVXF5MmTo6ioKHUOAAAAQGPzlhvIAQAAAACgnhUKhcjn86kzmo1zzz03Jk2aFLNmzYo+ffrEpEmTUifxP9asWRPnn39+HHfccXH88cfHP/7xD+Nx/qXf/e53MXXq1HjggQdSpwAAAAA0SgbkAAAAAABQjz766KOYP39+5HK51CnNysCBA2P27NlxwAEHxMEHHxznn39+rF27NnVWszZ37tzI5XJxxx13xKhRo+K2226L1q1bp86iEdh3333j5JNPjp/+9Kfx6aefps4BAAAAaHQMyAEAAAAAoB5lWRY1NTUxcODA1CnNTocOHaKsrCz+9Kc/xW233Ra5XC5mzpyZOqvZqaqqiuuuuy769u0bW221VcyaNSu+//3vp86ikbnuuuvivffeiz/+8Y+pUwAAAAAaHQNyAAAAAACoR1mWRY8ePaJz586pU5qts846K6ZPnx5t27aN/v37xyWXXBKrV69OndUsvPjii9G/f/+48sorY8SIETFp0qTo1q1b6iwaoV122SV+9KMfxVVXXRXl5eWpcwAAAAAaFQNyAAAAAACoR1mWRS6XS53R7PXs2TMmTZoUN998c/zxj3+MPn36xMSJE1NnNVnLly+P//iP/4gBAwbENttsE7NmzYpLLrkkSkpKUqfRiF166aXRqlWr+OUvf5k6BQAAAKBRMSAHAAAAAIB6sm7dupg2bZoBeQNRXFwc5557bsydOzd69+4dRx55ZBx99NHx6quvpk5rMtatWxd//vOfo2fPnjF69Oj4r//6r/j73/8ePXv2TJ1GE9CuXbsYMWJE/OEPf4jXXnstdQ4AAABAo2FADgAAAAAA9WT27NmxYsWKyOfzqVP4P3beeecYN25cPP300/Hmm29Gr1694oILLoilS5emTmvUHn/88ejXr1+cd955MXTo0Jg/f36ceeaZUVRUlDqNJuTss8+Or33ta3HJJZekTgEAAABoNAzIAQAAAACgnmRZFu3atYu99tordQpf4OCDD47p06fHzTffHGPGjInu3bvHpZdeGsuWLUud1qg888wz8Y1vfCOOOOKI2GWXXeKll16Km266KTp27Jg6jSaopKQkrrvuurj//vvjueeeS50DAAAA0CgYkAMAAAAAQD3JsiwGDBgQJSUlqVPYgJKSkjjnnHNi0aJFMWLEiBg5cmTstttucdlll8V7772XOq9Be+KJJ+LQQw+Ngw8+OFq3bh2FQiEeeeSR2GOPPVKn0cR961vfisMOOywuuuiiqKmpSZ0DAAAA0OAZkAMAAAAAQD0pFAqRz+dTZ7AR2rZtGz/5yU9i0aJF8dOf/jRGjhwZ3bp1i7POOivmzp2bOq/BqKysjLvuuiv22WefOPzww6OoqCieeeaZeOKJJyKXy6XOoxn59a9/HS+++GKMGTMmdQoAAABAg1dU49PwAQAAAACgzi1dujS6dOkSf/vb32Lw4MGpc9hEa9asiTvvvDNuvPHGmD9/fgwaNCjOPPPM+Pa3vx0tW7ZMnVfvFi9eHLfffnvcfvvt8cEHH8R3v/vduOiii2LfffdNnUYz9oMf/CCeeOKJePXVV6Nt27apcwAAAAAaqrfcQA4AAAAAAPUgy7IoKiqK/fffP3UKm6F169Zx9tlnx9y5c+Phhx+OVq1axfe+973YZZdd4sILL4yZM2emTqxzFRUVUVZWFocffnj06NEjbr/99jj99NNjwYIFcffddxuPk9zVV18dH330Udxyyy2pUwAAAAAaNDeQAwAAAABAPfjZz34WjzzySLz88supU6glb7/9dvzlL3+J22+/PRYvXhw9e/aMIUOGxJAhQ6JXr16p82rFqlWrYsKECTF27NiYMGFCrF27NgYPHhxnnXVWHHXUUVFaWpo6ET7jiiuuiN/+9rfx2muvRZcuXVLnAAAAADREbxmQAwAAAABAPTjwwAOjmxUhlgAAIABJREFUZ8+eceutt6ZOoQ68/PLLcd9998Xo0aNj0aJFsdtuu8Vhhx0WgwYNiiOOOCLat2+fOnGjLVq0KJ588sl48sknY+LEiVFRURG5XC6++93vxsknn2yUS4O2atWq2H333eO4446L3//+96lzAAAAABoiA3IAAAAAAKhrlZWV0aFDh7j55pvjjDPOSJ1DHaquro6pU6fG+PHjY+LEiTF9+vRo2bJl7L///nHAAQfEAQccEPl8PrbddtvUqRHx371z586NyZMnx+TJk+O5556LJUuWRIcOHWLQoEExePDgOProo43GaVRuu+22OOecc2LmzJmx1157pc4BAAAAaGgMyAEAAAAAoK5NmzYt9t9//5g7d27sueeeqXOoR++//348/vjj8eyzz0ahUIh58+ZFRET37t2jd+/e0atXr+jVq1f827/9W+y2227RunXrOm1ZsGBBzJkzJ1566aWYPXt2vPTSS7F8+fJo165dDBw4MA444IA45JBDIpfLRWlpaZ21QF2qrq6O/v37x8477xwPP/xw6hwAAACAhsaAHAAAAAAA6trNN98cV1xxRZSXl0dxcXHqHBIqLy+PQqEQM2bMiNmzZ8esWbNi4cKFUV1dHRERO+64Y+y2227RrVu32G677aJTp07rv9xmm22itLQ0SkpKon379hERUVVVFStXroyIiIqKivj444+jvLw8ysvL44MPPoh33303Fi9eHIsXL45Vq1ZFRET79u1j7733jl69ekWfPn1iwIAB0adPnygpKUnziwJ14Omnn45DDz00nnjiiRg0aFDqHAAAAICGxIAcAAAAAADq2tChQ2P58uUxYcKE1Ck0QKtWrYr58+fHkiVLYvHixbFkyZJYsmTJ+iH4/37878j8y7Rt2zY6deq0/mOnnXaKXXfdNXbbbbf1H7vuumsUFRXVw88M0jrqqKPinXfeienTp/vkHQAAAID/z4AcAAAAAADq2q677hpnnnlmXH755alTaMQ++eSTqKysjKqqqli4cGFcf/31cdNNN0W7du0iIqJdu3ZRWlqauBIajnnz5kXv3r3j1ltvjdNOOy11DgAAAEBD8ZZPtQcAAAAAgDr0zjvvxBtvvBH5fD51Co3c1ltvHR07dozOnTtHlmXx+OOPR6dOnaJjx47RsWNH43H4J3vuuWecccYZMXz48KioqEidAwAAANBgGJADAAAAAEAdKhQKUVJSEv3790+dQhMyatSoqKioiEceeSR1CjRov/jFL2LlypVx4403pk4BAAAAaDAMyAEAAAAAoA5lWRZ77713tG/fPnUKTcSCBQti1qxZUVRUFHfddVfqHGjQtt9++7j44ovj+uuvj3fffTd1DgAAAECDYEAOAAAAAAB1qFAoRD6fT51BE3LPPfdEixYtoqamJiZOnBjl5eWpk6BB+/GPfxwdO3aMK664InUKAAAAQINgQA4AAAAAAHXk008/jRkzZkQul0udQhMyevToqKysXP/6gQceSFgDDV+bNm3il7/8Zdx+++3x8ssvp84BAAAASM6AHAAAAAAA6siLL74Yn376qQE5tWb69OmxYMGC9a9ramrizjvvTFgEjcOwYcNin332iYsvvjh1CgAAAEByBuQAAAAAAFBHsiyL7bbb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KA4//PD42c9+FjU1NalzAAAAADaZATkAAAAAAGymQqEQEREDBgxIXAJAffr1r38dL774YowbNy51CgAAAMAmMyAHAAAAAIDNlGVZ7LHHHrHtttumTgGgHvXu3TuGDh0aw4cPj8rKytQ5AAAAAJvEgBwAAAAAADZToVCIfD6fOgOABK6++up444034tZbb02dAgAAALBJDMgBAAAAAGAzVFZWxgsvvBC5XC51CgAJdOvWLc4999y48sorY+XKlalzAAAAADZaaeoAAAAAAABojGbNmhWrVq0yIG8mysvL4/XXX0+dsV55eXl06dIlpk+fnjplvZKSkujTp0/qDPicujy/xxxzTNx1111RVlYW/fr1q5Mfoz44vwAAANC8GJADAAAAAMBmKBQK0aFDh9hjjz1Sp1APHnzwwTjrrLNSZ3xO3759Uyes165du1ixYkXqDPic+ji/P/zhD+v0+69rzi8AAAA0LwbkAAAAAACwGbIsi1wuF8XFxalTqCdbb711zJgxI3VGg3TffffFtddemzoDNsj53TDnFwAAAJofA3IAAAAAANgMWZbFGWeckTqDelRUVBQ9evRIndEgde7cOXUCfCnnd8OcXwAAAGh+XIsCAAAAAACb6J133onXX389crlc6hQAAAAAANgkBuQAAAAAALCJCoVCFBcXR//+/VOnAAAAAADAJjEgBwAAAACATZRlWey9996xzTbbpE4BAAAAAIBNYkAOAAAAAACbKMuyyOfzqTMAAAAAAGCTGZADAAAAAMAm+PTTT2PGjBmRy+VSpwAAAAAAwCYzIAcAAAAAgE0wffr0WLNmjQE5AAAAAACNkgE5AAAAAABsgkKhENttt1306NEjdQoAAAAAAGwyA3IAAAAAANgEWZZFPp+PoqKi1CkAAAAAALDJDMgBAAAAAGATTJkyJXK5XOoMAAAAAADYLAbkAAAAAACwkV5//fV4++23DcgBAAAAAGi0DMgBAAAAAGAjFQqFKC0tjX79+qVOAQAAAACAzWJADgAAAAAAGynLsujTp09stdVWqVMAAAAAAGCzGJADAAAAAMBGyrIs8vl86gwAAAAAANhsBuQAAAAAALARVq9eHbNmzYpcLpc6BQAAAAAANpsBOQAAAAAAbIRp06ZFZWWlATkAAAAAAI2aATkAAAAAAGyEQqEQO+64Y3Tr1i11CkRERHV1deoE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lgYNGqRFixZp9erVeu6550wnAcViw4YN8vf3V2ZmplJSUhQZGWk66Vdat26t/fv36+WXX9Zrr72mjh076ssvvzSd5bby8/P14Ycfys/PTxcuXFBSUpJmzJghX1/fEm/x8PBQVFSUbDab5s2bp379+ikzM7PEOwDcm5YtW6p169ay2WymUwAAAAAAKHUYkAMAAAAAAACAARkZGQoNDVVKSori4+PVv39/00mA0+Xn5ysqKkoDBw5U3759lZ6erj/96U+ms35TmTJlNGXKFO3fv18eHh5q166dXnjhBWVkZJhOcytbt25VmzZtNHnyZE2cOFEHDhxQYGCg6SxFRkZq+/btOnjwoDp16qQzZ86YTgLwH1itVsXFxSkvL890CgAAAAAApQoDcgAAAAAAAAAoYadPn1ZQUJB+/PFH7dmzRx07djSdBDjdpUuX1KtXL82YMUOzZ8/WokWLVL58edNZv0urVq2UnJysuXPnatWqVWratKn+53/+Rzk5OabTXNqxY8fUv39/9erVS82aNdNXX32lt99+28hVx39LQECA0tPTVbZsWT322GNKTEw0nQTg3xg2bJgyMjK0bds20ykAAAAAAJQqDMgBAAAAAAAAoASlpaUpMDBQVapUUWpqqpo1a2Y6CXC6xMREtWnTRj/88IP27t2rZ555xnTSPfP09NRTTz2lkydPauzYsXr99dfVtGlTzZ07lyvh/otTp05p+PDh8vPz09mzZ7Vt2zatXr1aTZo0MZ12V/Xr19fu3bvVs2dPhYaGatasWaaTAPyGhg0bKjAwUDabzXQKAAAAAAClCgNyAAAAAAAAACgh69atU7du3eTv76+EhATVqlXLdBLgVA6HQzNmzJDFYlFgYKDS0tLUunVr01lFUqlSJU2bNk2nTp1S//799dJLL6l58+aaPXu2bt++bTrPqKNHj+qpp55Sy5YtlZSUpMGDB+vgwYPq0aOH6bT/qGzZslq8eLHee+89jRs3TmPHjlV+fr7pLAB3YbVatWrVKmVlZZlOAQAAAACg1GBADgAAAAAAAAAlYMGCBQoLC1NERIQ2bNigSpUqmU4CnOrKlSvq3bu33nnnHX344YdatWqVqlSpYjrLaerXr69Zs2bp5MmTslgsevnll/Xwww8rKipKly5dMp1XorZv366+ffvKz89Pe/fu1Weffab9+/dr5cqVmjRpkhwO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FSqoXr16+sMf/qCYmBh9+eWX6t27t1555RVVqFBB06dPN53oVN7e3oqOjtbs2bP1/vvvKzIyUj///LPpLKDUs1qt+v7775Wammo6BQAAAAAAt8SAHAAAAAAAAAD+g5UrV6p3797q1q2bEhISVKNGDdNJQJHl5+crKipKgwYNUt++fbVv3z49+uijprPcmsPh0MiRI5WdnX3Xq+IWFBQUeUC+ZMkS+fj43Pl9YWGhduzYoZ9++qlIj+tMCxYs0KlTpzR8+HB5ev7vW1EVKlTQm2++qVmzZun06dOGC51vzJgxSkhIUGJiojp16qQffvjBdBJQqvn7++tPf/qTbDab6RQAAAAAANwSA3IAAAAAAAAA+Deio6M1dOhQjRkzRitWrFC5cuVMJwFFdv78eXXr1k0zZszQnDlztGjRIpUvX950ltv7+OOPlZiYqLy8vLven5+frytXrhTpOWJiYn71+B4eHlqxYkWRHteZQkND5evr+6vbx4wZo4YNG2rKlCkGqopfcHCwUlJSlJOTo4CAAO3bt890ElCqRUREaNmyZcrPzzedAgAAAACA22FADgAAAAAAAAB34XA4NHHiRL388st66623FB0dfedKuoA7S0xMVPv27XXp0iWlpaVp9OjRppNKhRMnTui1115TYWHhv/26S5cu3fdzpKam6uzZs7+6vaCgQIsWLbrvxy0pPj4+mjJlimJiYnT48GHTOcWicePGSk1NVbt27dS5c2ctXrzYdBJQag0bNkyXL19WYmKi6RQAAAAAANwO73YAAAAAAAAAwL/IycnRsGHDFB0drSVLligqKsp0ElBkDodDM2bMkMViUVBQkNLS0uTn52c6q9RISkrSww8/LEny8vKSt7f3Xb+uKFcgt9lsd72yt8Ph0L59+3TmzJn7fuySEhkZKX9/f7311lumU4pNpUqVtHr1ao0fP15//vOfNWnSpP/4wQIA965x48Zq3769bDab6RQAAAAAANwOA3IAAAAAAAAA+CfXrl1TaGiotmzZoq1bt8pqtZpOAorsypUr6t27t9555x19+OGHWrlypapUqWI6q1R5+umndfLkSZ07d06fffaZAgMD5eHhIUny9fW98xMMrl69el+PX1hYqNjYWOXm5t71fm9vby1btuz+4kuQh4eH3n//fa1fv147duwwnVNsvLy8NH36dM2bN08fffSRBgwY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768333xTbdu2VbNmzeTsXLwPldx1112666675Ofn96v3Hzp0SFu3btWWLVu0cuVKTZ8+XeXKlVPHjh3VqVMndenSRfXr1y/W1pJmx44d6tKli+69916tWrVK1apVM50E2L158+apbt266tChg+kU2KGCggIlJiZq1KhRplNgw6pUqXLjtF3YnpCQEEVFRZnOAG5beHi4unXrppMnT6pq1apKSkrS2rVrtXbtWh0+fFiVKlWSn5+fBgwYoLZt26pNmzbF/iovlSpVUtOmTdW0aVP17NnzxvvT09O1bdu2GwP3zz77TNnZ2fLx8VGnTp3UuXNn+fv7F9nF2AAAAACAv86h4D+vawUAAAAAAFCKnD9/XqtWrdKyZcsUGxsrJycn+fv7KyQkRCEhIfL19TWdeNvOnj2r9evX6+uvv9aqVauUkZGhRo0aqWfPnnriiSfs7uTtFStW6IknnpC/v7+++OKLYh9RAPit3Nxc1a5dW88884xee+010zmwQ3v27NGDDz6onTt32tT3+L9i7ty5Gjt2rC5evGg6pdRo1aqVgoKCNH36dNMpuAObNm1Shw4ddPjwYbu/2BK24cqVK6pRo4Zatmyp1NRUnTt3TvXq1VOXLl3UtWtXdejQQWXLljWdeVuys7O1ZcsWxcfHKz4+Xt9++608PT0VFhamnj17qnPnzsV+wTYAAAAA4KZOOpouAAAAAAAAKCy5ublasWKFunTpourVq+uZZ56Ri4uLFi1apPT0dFmtVo0fP97mhmVVq1ZVz549FR0drbNnzyo+Pl7+/v764IMP1KBBA/n5+Wnu3LnKzMw0nVrk5s2bpx49eqhPnz5avXo143GghFi1apV++eUX9evXz3QK7JTVapWnp6eaN29uOgU2rEqVKjp//rzpDNwhPz8/ubm5KT4+3nQKcFMpKSkaNWqUateurczMTGVnZ+uVV17RDz/8oKNHj2rmzJkKCQmxmfG4JLm4uCgkJETTpk3Tzp07dfDgQY0ZM0bfffedHn30UdWpU0evvPKKjh07ZjoVAAAAAPBvDMgBAAAAAIDN++GHHzRx4kTVqVNH3bp1U05OjhYsWKAzZ87o888/V48ePVShQgXTmYXCyclJwcHB+vjjj/XTTz8pNjZW9913n0aOHKm7775bw4YN0+7du01nFrqCggJFRERoyJAhmjBhgj799FNOsANKkKioKAUFBalevXqmU2CnrFarQkJC5OjI0x64c56enkpPTzedgTvk7Oys9u3bMyBHiZSdna158+bJz89PPj4+WrduncaNG6fjx49r27Ztev7551W7dm3TmYXG29tbEydOVEpKivbt26cnn3xS0dHRuv/++2WxWLRs2TLl5uaazgQAAAAAu8YjqQAAAAAAwGbt3LlT4eHhuu+++xQZGanBgwfryJEjio2NVZ8+feTq6mo6sUg5OzsrNDRUCxcu1KlTp/Tmm29qy5YtatGihYKCgrR69WoVFBSYzvzLcnNzNXToUE2ePFkff/yxIiIiTCcB+C9nzpzRmjVrNGjQINMpsFNXr17Vpk2bZLFYTKfAxnECue0LDg5WQkKC8vLyTKcAkv71c1JERITq1KmjZ599VnXr1lViYqIOHjyo8ePHq06dOqYTi1zDhg315ptv6sSJE4qJiZGLi4vCw8NVv359vffee7p06ZLpRAAAAACwSwzIAQAAAACAzbFarQoICFCrVq108OBBRUZGKi0tTZMmTVLdunVN5xlRpUoVjR49Wnv37lV8fLzKlSunrl27qnHjxpo/f77NjmgyMzP16KOPasmSJVqxYoWefvpp00kA/sfChQvl4uKibt26mU6Bndq0aZOys7MZkOMvY0Bu+0JCQnThwgXt2rXLdArs3IkTJzRs2DDVqVNHH3zwgYYPH64TJ05o0aJFCgwMlIODg+nEYufk5KSuXbtq5cqVOnLkiP72t7/p9ddf1z333KPx48fr7NmzphMBAAAAwK4wIAcAAAAAADZj48aN6tixo0JDQ1W+fHklJCRo165d6tevn8qUKWM6r8QIDg7W2rVrlZqaqtatW2vIkCFq3LixFi9erPz8fNN5t+2nn35Sx44dtXv3bq1fv15hYWGmkwD8jujoaPXu3VsVKlQwnQI7ZbVa9cADD+iee+4xnQIbx4Dc9jVp0kR33XWX4uPjTafATp06dUrPPvusvL29FR8frxkzZujEiRN64403VL16ddN5Jca9996r999/Xz/++KNefvllzZ8/X/Xq1dPEiROVkZFhOg8AAAAA7AIDcgAAAAAAUOKlpKQoNDRUHTt2lJOTkzZv3qx169YpKCjIdFqJ1rhxY0VGRmr//v166KGH1L9/f/n4+GjdunWm025p//798vPz06VLl7Rp0yb5+vqaTgLwO7799lvt2bNH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VauWOnTooAEDBujMmTOm02zKsWPHFBERoYkTJ6pRo0amc2CjAgICNHjwYI0cOZJXogAAAABQ6jEgBwAAAAAAN3Xu3Dm99tprevHFF0v0S8Gj5HNzc9OsWbO0YMECbdu2zXQOUKR2796tJk2aaPLkyZo0aZL27t2rkJAQ01mFxsXFRREREdqzZ4+qVasmf39/jRkzRteuXTOdhlImLi5Od999N2NAFCsPDw9JYjxYwnz44Ydq0KCB9u3bp6SkJH399deqVauW6axCc99992n16tX64osvtH79ejVs2FBffvml6SybMXbsWNWpU0fjx483nQIb9/bbbysnJ0dvvvmm6RQAAAAAKFIMyAEAAAAAwE29+uqrKleunP7+97+bTkEp0K1bN4WEhGjEiBHKz883nQMUiTlz5qht27aqXbu29u/fr7Fjx8rZ2dl0VpHw9vZWXFycFixYoMjISPn7++vYsWOms1CKWK1WhYaGysHBwXQK7Ii7u7skKSMjw3AJJOnSpUvq3bu3Ro4cqZdeeknfffedAgICTGcVmW7dumn//v3q1auXevTooVGjRnGB1i0kJSUpJiZG7733nsqUKWM6BzauSpUqeuONNzR79mwdPHjQdA4AAAAAFBkG5AAAAAAA4A/t27dPc+fO1VtvvSU3NzfTOSglZsyYoZSUFC1cuNB0ClCoLl26pPDwcI0YMUKjR49WbGysatasaTqrWPTt21d79uyRo6OjmjdvriVLlphOQilw+fJlJScny2KxmE6BnfnPCeQMyM3btWuXfH19tX79eq1Zs0YRERF2MRB2dXXVhx9+qOXLl2vBggVq27atjhw5YjqrRMrLy9OYMWPUpUsXderUyXQOSomhQ4eqYcOGevHFF02nAAAAAECRYUAOAAAAAAD+0AsvvKDmzZurX79+plNQijRu3FhDhgzRK6+8ouzsbNM5QKE4fPiwWrRooQ0bNighIUHTpk2Tk5OT6axide+992rDhg3q27evwsPD9dJLL6mgoMB0FmzY+vXrlZubq6CgINMpsDP/GZBfuHDBcIl9+89wuk6dOkpJSVFoaKjppGL3+OOPa8eOHSooKFDLli1ltVpNJ5U4UVFR2r9/v9555x3TKShFnJycNGPGDK1atUqJiYmmcwAAAACgSDAgBwAAAAAAv2vLli2KjY3VtGnT5OjIQwgoXK+//royMjL0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m4yQ6zw8PNSpUyd9+umnDv9GDQAAAADOgQFyAAAAAAAgSZo/f76aNGmicuXKmU6BE3J1dVW3bt30+eefKyUlxXQOkOby5cvq3Lmz2rVrpwEDBpjOcRheXl5asWKFwsPDNW7cONM5yEO2bdumhIQENWnSxHQKnJyvr69iY2OVmppqOsXhrFmzRh9//LE+//xzVahQwXSOw6hdu7YmTpyoUaNGad++faZzcsSqVat0/fp1de/e3XQKnFSfPn0UERGhHTt2mE4BAAAAgCxjgBwAAAAAACgqKkqhoaGsPg6jevTooXPnzmnr1q2mU4A0I0eOlKurq+bPn286xeFUqlRJM2bM0LRp0xQeHm46B3nExo0bValSJZUsWdJ0Cpycn5+fLMtSbGys6RSHEhMTo4EDB6pXr1564YUXTOc4nBEjRqhhw4bq27evkpOTTedkuy+//FKtWrXSAw88YDoFTqp69eoKCgrS0qVLTacAAAAAQJYxQA4AAAAAALR69Wq5uLiodevWplPgxMqXL6/HH39cK1asMJ0CSJK2b9+uL774Qh988IF8fX1N5zikPn36qFatWurfv78syzKdgzzg+++/V/PmzU1nAPLz85P098Azss/bb7+txMRETZ482XSKQ7LZbPrnP/+pY8eO6aOPPjKdk62uXLmiH374QZ06dTKdAifXsWNHrVq1yiHfpAEAAADAuTBADgAAAAAAtHz5crVu3ZoBSRjXoUMHff3117wYD+OSk5P1yiuvqFmzZmrXrp3pHIeVL18+ffLJJ9qzZ4+++OIL0zkw7OLFizp69KiaNWtmOgVIGyCPjo42XOI4wsPD9dFHH2n69OkKCAgwneOwypUrp2HDhumtt97S77//bjon23z99ddyd3fX008/bToFTq5Tp066fPmytmzZYjoFAAAAALKEAXIAAAAAAJzc5cuXtXXrVj5CHnlChw4ddOXKFYWFhZlOgZObNWuWjh07pjlz5phOcXhVqlRR//79NXz4cF25csV0Dgz6/vvv5ebmpgYNGphOARggz2aWZenll19W7dq19dJLL5nOcXhjxoxRkSJFNGLECNMp2WblypVq1aqVvL29TafAyZUpU0bVq1fnk7MAAAAA2D1X0wEAAAAAAMCsdevWycXFhZXckCeULVtWVatW1dq1a1mBFsZcu3ZNEyZM0Ouvv67y5cubznEKEyZM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/vyKjIzUzz//rHHjxqlatWrKly+f4uPjTScC2cbHx4cVyHOBp6en1qxZo+eff17PPfecli5dajopz5g2bZq6d++uYcOGaeHChQyzSho+fLhsNptmzZplOgUOauzYsXr44YfVtWtX0ykAAAAAkO0YIAcAAAAAALfVvn17ValSRW+99ZbpFDigGTNmKD4+XiNGjDCdAmRZx44d9d133+lf//qXGjRooMjISNNJRs2dO1cNGzZUzZo19cMPPyggIMB0EnLQunXr1KhRI3l6eqpSpUoaPXq0Dhw4oHPnzqlq1aqm84Bs4+3tzQB5LnFzc9PChQs1ePBgdenSRUOHDnXqN2jFxsaqc+fOGj16tGbOnKnJkyenfdKDs/Pz89Nrr72mmTNn6tKlS6Zz4GB+/vlnffnllxo3bpxcXV1N5wAAAABAtmOAHAAAAAAA3JbNZtOMGTO0du1abdiwwXQOHMj58+c1depUjR49msFSOIymTZtq//79SkhIUNWqVbVy5UrTSbkuNjZW//jHPzRgwAD17dtX33zzjby8vExnIQclJydr48aNatWq1S1fK1asGJ8wAYfi5eXFqvq5yGazadq0aVq5cqUWLFigunXr6uTJk6azct0vv/yiOnXq6IcfftB3332nwYMHm07Kc1577TX5+fnxxmdku2HDhikoKEidO3c2nQIAAAAAOYIBcgAAAAAAcEeNGzfWM888o6FDhyopKcl0DhzE66+/rgceeEBDhw41nQJkq/Lly2vXrl3q1KmTOnbsqCFDhighIcF0Vq44ePCgatSooc2bN+v777/XrFmz5ObmZjoLOWz79u26du2aQkJCTKcAOc7Dw0M3btwwneF0nn/+ee3du1fJycmqWbOmVq9ebTop18ydO1c1atTQgw8+qMOHD6tly5amk/IkT09PTZw4UfPnz9eBAwdM58BBfPPNN2n/ps2Xj5EKAAAAAI6Jsx0AAAAAAHBX7733nk6ePKlPP/3UdAocwO7du7V06VK99957KlCggOkcINt5eHjok08+0apVq/TFF1+ocuXKCg0NNZ2VY27cuKFx48apTp06KlGihH766Sc1bdrUdBZyybp161SxYkWVK1fOdAqQ4zw9PRkgN6R8+fLavXu3unXrpueff15t2rTR6dOnTWflmOPHj6tFixYaMGCABg8erI0bN6pYsWKms/K0Ll26qFat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NHnyZK1bt04ul0sdOnTQ0KFDdfTo0Ur5/IGqoKBAf/zjH9WsWTOtX79e33zzjVJTU3XLLbeYTgNwjdhAjsq2ePFi2e32Cr+zCOCPQkJCJEmFhYWGS2BSaGgoA+SQxWLRU089pX379mnAgAEaNmyYOnXqpBUrVphO82kej0dz5sxRq1atNHbsWP33f/+39uzZo3vvvdd0GgAAAAD4HQbIAQAAAADAVTly5Ih69eqlqKgorV27VnPmzJHNZlNQUJCCgoL0v//7vwoODq7Ur9mhQwetXr1aU6dO1dKlS3XLLbdoxIgROnnyZKV+HX9XWFioP//5z7rpppv07rvvauzYsdq5c2elDfwDMI8N5KhsaWlpSkhIUO3atU2nAF6DAXJIUlhYGAPkKBMZGakPPvhAmzdvVt26dZWYmKjk5GStW7fOdJrPWbRokTp16qR7771Xbdq00ffff69x48bxswgAAAAAVBEGyAEAAAAAwK86deqUevXqpdDQUKWlpSkiIkJ33nmnFixYILvdrrCwMD366KNV8rUtFouGDBmiffv2acKECZoxY4ZuvvlmjRw5UseOHauSr+kvCgoKNHHiRN1888167bXX9MQTT+jAgQMaNWoUW4oBP+NwOGSxWGSz2UynwA94PB6lp6erR48eplMAr1KrVi1JDJAHOgbIcSmtWrVSamqq0tPTVVhYqPj4ePXr109r1641nebVPB6PFi1apC5duqhv37664YYbtGnTJk2fPl3R0dGm8wAAAADArzFADgAAAAAAruj06dNKSkqSy+XS0qVLFRkZWXZbz549lZqaqldeeaVsI2NVqVGjhp577jnt379ff/zjHzV16lTFxMToscce0/bt26v0a/ua48eP6+WXX1bjxo31yiuvaMiQITpw4IDefPPNX/z/A+A/nE6n7Ha7LBaL6RT4gZ07d+r48ePq2bOn6RTAq7CBHJIUHh7OADkuq3v37lq9erUWLVqknJwcdenSRZ07d9bs2bPldrtN53kNp9OpTz/9VK1bt9add96p8PBwrVu3Tt99953atGljOg8AAAAAAgID5AAAAAAA4LJyc3PVu3dvFRQUKDU1VTfeeONF90lISNALL7xQbU21atXSiy++qIMHD+rDDz/Uhg0bFBcXp+TkZM2aNUtOp7PaWryJx+PRihUr9NBDD6lp06b69NNP9dJLL+nQoUP6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aNmyZcrKytLTTz+tMWPGqGHDhqbzYND06dP14Ycf3vLFaTiOgoICxcTEKDIyUl9//bWys7NVs2bNa0vdwcHBRf6EkoKCAu3Zs+faJePY2FhlZ2fL399fAwYMUP/+/XXvvfcW6ecszlggL9527Nihd999V6tWrVLFihXVp08fPfPMM3b1qiE///yzFi1apMjISCUlJSkgIEDjxo3TE088wULzHcS8tHiy1bwUAAAAAOwMC+QAAAD4vStXrqht27bKzMzU9u3b5efnZzoJRaSgoEBPPPGEdu3apd27d6tatWpF+vGTkpL02muvae3aterRo4emTp1a5J8DAADgj1y5ckXz58/X1KlTdfr0afXv31+vv/663S9kX716VV9++aXCw8N14MABde/eXWPHjtUDDzxgOg0GjBkzRmvXrlV8fLzpFBSxAwcO6PPPP1dUVJROnjyp1q1bq3///uratavNv2/Kzc3Vzp07tWLFCi1ZskQZGRkKDAxUSEiIevbsqTJlyti0x9GwQF48bdiwQe+++642bdqk1q1ba9SoUeratavc3d1Np/2pXbt2adq0afrqq6/k7++vMWPGqHfv3nbf7WiYlxZfd3peCgAAAAB2Ko2noAMAAOB3Bg8erJSUFK1cuZIfhhQzbm5uWrJkiSpVqqSnnnpKV69eLZKPm5GRodDQUDVu3Fhnz57Vli1btGzZMn7gAgAAbKKgoEAff/yxatasqZEjR6p79+46dOiQ5s+fb/fL45JUokQJ9evXT3v37tVXX32ltLQ0NW/eXF27dlViYqLpPNjY2bNn7eZSPopGfHy8evXqpcaNG2vp0qUaMGCADh48qG3btmnw4MFGvm/y9PRUYGCgPvroI50+fVpr165V1apVNXToUFWvXl1hYWE6f/68zbsAE3bs2KFWrVqpY8eOcnNz06ZNm7Rt2zY9/vjjDrGE3aJFCy1fvlwJCQl64IEH9Oyzz6pevXpaunSp6bRihXlp8XWn5qUAAAAAYO9YIAcAAMB1Zs+ercjISEVGRqp27dqmc3AHlClTRl999ZWOHDmiF1544bY+Vn5+vubOnat69epp+fLlmj17tuLi4vTQQw8VUS0AAMCfi4uLU4sWLfTaa6+pX79+Onr0qD766CPde++9ptNumYuLi7p37664uDitXbtWZ86c0f3336/Ro0fr8uXLpvNgIyyQFx8bNmxQ+/bt1axZM508eVLff/+9jh07psmTJ6tOnTqm865xc3NTx44dFRERoZ9//llDhgzRRx99pOrVq2vcuHE6e/as6UTgjkhPT9e//vUvPfTQQypTpox27typ9evXq127dqbT/pb69etr4cKFOnjwoIKCgtS3b1916tRJycnJptMcHvPS4q8o56UAAAAA4ChYIAcAAMA1u3fv1uuvv64JEyaoW7dupnNwB9WuXVsRERFatGiRFixY8Lc+xoYNG9S0aVO98sor6tu3r5KSkvTCCy/I1ZVvMwAAwJ134cIFhYaGqnXr1ipdurTi4+M1bdo0VaxY0XRakejcubPi4uI0b948zZs3T/Xq1VNERITpLNgAC+SO76efflJwcLA6duwod3d3bdq0SbGxseratatcXFxM5/0pPz8/vf3220pNTdWYMWM0b9481ahRQ5MnT1Zubq7pPKBIWK1WRUREqH79+lq5cqU+++wzrV+/Xi1atDCdViRq1KihBQsWKC4uTpcuXVLjxo0VGhqqrKws02kOiXmp8yiKeSkAAAAAOBI2OwAAACBJysrKUr9+/RQUFKTx48ebzoENPPbYYxoxYoRCQ0N16NChm/7nDh06pF69eqljx46qXr26EhMTNWPGDPn4+NzBWgAAgP9vzZo1114BJSIiQhaLRQ0bNjSdVeRcXV0VEhKiAwcOqEOHDho4cKB69OihCxcumE7DHcQCueO6fPmyRo8erSZNmigrK0s7duzQunXrHPKasY+Pj0aPHq2jR49q7NixmjRpkpo0aaJNmzaZTgNuy4kTJ9SuXTs999xz6t+/v5KTkxUSEmI6645o1qyZtm/frmnTpmnhwoVq0qSJdu/ebTrLoTAvdT5/d14KAAAAAI6IBXIAAABIkl599VWdO3dO8+fP54K0E3nnnXfUoEED9enT5y+vyWVlZSksLEyNGzfW/v37tXr1akVHR6tmzZo2qgUAAM4uPz9fY8aMUdeuXdW5c2clJiaqb9++prPuuIoVK2rhwoWKiYnRjh07FBAQoLi4ONNZuEPOnj2rcuXKmc7ALfr222/VoEEDzZ07VzNmzNCuXbvUsmVL01m3rVSpUho7dqwOHDigunXrqn379urXr59++eUX02nALVu9erWaNGmiM2fOaPfu3Xr//ffl7e1tOuuOcnNz07Bhw5SYmKhatWrpoYce0owZM2S1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byghIUHLli1TyZIlTecU/wWMjwAAIABJREFUC926ddOrr76qwYMHKzEx0XQOiolXX31VFy9e1JIlS+Tm5mY6p9h65513FBAQoGeffVYFBQWmc4oc81L8HcxLAQAAABQXLJADAAA4iU8++UQ9evRQ5cqVTafAgbi5uWno0KFatGiRsrKyTOcAAIBiZMKECbpy5Ypmz55tOqXYa9Cggd566y299957SklJMZ2DP3Hp0iUWyA1at26dZs6cqU8//VT+/v6mc4qV8PBwNWrUSAMGDCiWS6iwrbi4OH322Wf66KOPVKlSJdM5xZqHh4c+//xz/fTTT/r4449N5xQ55qX4O5iXAgAAACguWCAHAABwAvv379euXbv0r3/9y3QKHNCAAQOUl5enpUuXmk4BAADFREJCgmbNmqXw8HCVK1fOdI5TeP3111WnTh29/PLLplPwJ7hAbk5OTo6GDRumHj16qHfv3qZzih0PDw9FRkYqISFBn3zyiekcOLCCggK9+OKL6tChg3r27Gk6xynUqVNHw4cP1/jx43Xy5EnTOUWGeSluB/NSAAAAAMUBC+QAAABOYO7cuapVq5aCgoJMp8AB+fr66sknn9S8efNMpwAAgGLAarVq6NChatKkiQYNGmQ6x2m4u7tr1qxZWrt2rb799lvTObgBq9WqrKwsFsgNmTx5so4fP66pU6eaTim26tSpo9dff13jxo3TqVOnTOfAQc2cOVM//fSTZs6caTrFqYwfP15+fn4aOXKk6ZQiw7wUt4N5KQAAAIDigAVyAACAYi43N1dRUVH617/+JRcXF9M5cFDPP/+8du7cqcTERNMpAADAwUVERCg2NlZz5syRqyvjSVtq27at+vXrp9DQUF25csV0Dv6P7OxsFRQUsEBuwJEjRzR58mS9/fbbqlatmumcYu3NN9+Un5+fRo0aZToFDuj06dOaMGGCRo4cqXr16pnOcSolS5bUhx9+qKioKFksFtM5t415KYoC81IAAAAAjo6f0AAAABRz69at0/nz53kJbtyWdu3aqXLlyrwsKwAAuC35+fmaOHGinn/+eTVt2tR0jlOaOnWqzp49y7VEO5SZmSlJ8vHxMVzifF599VXVrl1bw4YNM51S7JUsWVIffPCBFi1apC1btpjOgYOZOnWqypQpo7Fjx5pOcUqPP/64OnXqpDfffNN0ym1jXoqiwLwU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/ckNlyUK1f3pqn48zuGcdFUpz3jqFMW3Xv3p5vj1r3+doArgcK+++mr87ne/O+InJfy+e+65pxOLiIgYPHhw7NixI3UGBeyFF16I5ubmI27P5XLxxhtvxMyZMxNUkW+ul+af66UAAAAnx4AcAIAOUVpaGtddd12sXbs2xo8fH+eff35cfvnlsXnz5tRpBeXAgQNx4403xqRJk2L79u3x3HPPxY9//OPo1atX6jQAgKKQy+Xi+9//fmQymWM+ZuXKlfH22293YhXAke69996jnlL8jvb29njqqaeMmTvZkCFD/DfnhOVyuVi2bNkx729ra4sbb7wxDh482IlVdBTXS/PD9VIAAID8MCAHAKBDDRs2LB588MGYP39+vPTSSzFx4sT453/+5zhw4EDqtC6tvb097r777hg7dmz8+Mc/jn/5l3+Jl19+OT7wgQ+kTgMAKCoPPvhgrF279qinj7+jpaXluOMugM4we/bsaGlpOe5j2traYsGCBZ1URETE0KFDDcg5YevWrYv9+/cf9zG7du2KGTNmdFIRncH10hPjeikAAEB+GZADANApPvOZz8SaNWvihhtuiH//93+PbDYbP/nJT6KpqSl1WpeSy+ViwYIFcfbZZ8dVV10Vl156aaxbty6+8Y1vHPekOQAA3rt3Th+PiCgpOfal0vLy8nj++ec7KwvgCOvXr48BAwbEpEmTDv0aPnx4lJSUHHbbWWedFatXr06d2604gZyTsXTp0uO+B6moqIhcLhf/+q//alxchFwvfXdcLwUAAOgYBuQAAHSaU045JW644YbYsGFDfP7zn4/rr78+qqur45Zbbun2H4K1t7fHggUL4pxzzonLL788Jk2aFCtXrozbbrstBg0alDoPAKAoHThwIKZNmxb/8A//EFdccUWcd9550bdv38hkMoceU1JSEq2trbF48eKEpUB3V11dHS+//HKsXLny0K8bb7wxevXqddhtr7zyStxyyy2pc7sVA3JOxksvvRS5XC5KS0sP3VZSUhIDBgyIiy66KK699tr4wQ9+EHfddVe0tbUlLKWjuF56bK6XAgAAdKxMLpfLpY4AAKB7ev311+Pf/u3f4s4774xTTz01pk2bFl/72tdiyJAhqdM6zYEDB2LWrFnxgx/8IDZu3Bh/8Rd/Ed/73vfi7LPPTp0GANAtXX/99fHLX/4yfv7zn8fmzZuj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DgBAp2lra4vPfvaz8fLLLx9zqN3W1tapA/I333wznnrqqYiI2L17d/zqV7/qtN8bAICupb6+PkaOHJk6A4ACM3z48Ghubo6dO3emTqFIVFVVRSaTidra2tQpdGNbt26N5cuXRy6Xi5KSkrjjjjtSJwEAAJBHBuQAAHSKXC4XU6dOjf/9v//3UU8ef0d7e3v07t2707rmz59/6H+Xl5fH3LlzO+33BgCg62hsbIx9+/bFqFGjUqcAUGCGDx8eERFbtmxJXEKxOPXUU2Po0KGxYcOG1Cl0YwsWLIjS0tKI+D+HfjzxxBPx+uuvJ64CAAAgXwzIAQDoFG+88Ubs2bMnSktLo7y8/LiP7cwB+ezZsw/9iOmWlpZYsGBBHDhwoNN+fwAAuoa6urqICANyAN6zdwbkW7duTVxCMclmswbkJHX//fdHe3v7oa9LSkpizpw5CYsAAADIJwNyAAA6xZAhQ+KBBx6ILVu2xD/90z/FkCFDIiIOnWLz+/r27dspTXV1dfHSSy8d9kHI22+/HY888kin/P4AAHQddXV1kclkYuTIkalTACgwp512WvTp08eAnLwyICelhoaGeP755w+7btrS0hK33XbbocM4AAAAKGwG5AAAdKqhQ4fG3//938d1110XPXv2jPPOOy8ymUxUVFQcekxnnUA+d+7cIwbspaWlTtIBAOiG6urqYtCgQXHqqaemTgGgAA0fPtyAnLyqqqoyICeZhx566Ki3b9y4MV544YVOrgEAAKAjGJADANDp2tvb44477oivfOUr8dxzz8Xq1atj6tSph8Y6ffr06ZSO2bNnR2tr62G3tba2xmOPPRaNjY2d0gAAQNdQV1cXo0aNSp0BQIEyICffstlsbNq0Kdra2lKn0A098MADR729vLw87rrrrk6uAQAAoCMYkAMA0OkeffTR2LhxY0ydOjUiIs4888y46aabYseOHXHbbbd1ygnka9asiTVr1hz1vlwuFw8++GCHNwAA0HUYkANwMgzIybdsNhstLS1RX1+fOoVuZt++ffHkk08e9ZsXWlpa4t577439+/cnKAMAACCfDMgBAOh0t956a3z0ox+NiRMnHnZ7r1694pprromysrIOb7j33nujvLz8qPflcrm45557OrwBAICuw4AcgJNhQE6+ZbPZiIiora1NXEJ388gjjxzxUxt/X1NTUyxcuLATiwAAAOgIBuQAAHSq2traWLRoUUyfPj1px5w5c6KlpeWo97W3t8czzzzjg18AgG7EgByAk2FATr4NGjQoevfuHRs2bEidQjezYMGCKC0tPeb9mUwm7rjjjk4sAgAAoCMYkAMA0Kluu+22GDp0aFx66aXJGl588cXYvHnzcR9TWloaDzzwQCcVAQCQUktLS2zfvt2AHIATNnz48Ni1a1e89dZbqVMoIlVVVQbkdKq33347Hn300eOeQN7W1hbPPfec0/EBAAAKnAE5AACdpqmpKWbNmhXXXnttlJeXJ+u47777IpPJHPcxra2tcffdd3dSEQAAKdXX10dbW5sBOQAnbPjw4RER8frrrycuoZhks1kDcjrVE088EQcPHvyDj+vVq1fcf//9nVAEAABARylLHQAAQPcxb9682L17d1x11VVJOxoaGuKCCy449HVbW1s8++yzcfbZZ0e/fv0O3V5eXh67du067DYAAIpPXV1dRIQBOQAnbMSIERERsXXr1hg7dmziGopFNpuNJ554InUG3ci5554bS5YsibKysjj99NMjIuJ//I//EUuWLImnn346TjvttMSFAAAA5IsBOQAAnaampib+8i//MoYNG5a0Y/bs2Yd9vWfPnujbt2/8x3/8R1x44YWJqgAASKWuri569OgRgwcPTp0CQIEaNGhQVFRUxNatW1OnUESqqqqcQE6net/73hfve9/7Drutb9++0dbWZjwOAABQZEpSBwAA0D0sW7YsXnrppZg+fXrqFAAAOExdXV2MGjUqMplM6hQAClRJSUkMHTrUgJy8ymazsXfv3ti5c2fqFLqxHj16RFNTU+oMAAAA8syAHACATvGTn/wkJkyYEOeff37qFAAAOExdXV1UVlamzgCgwI0cOTLq6+tTZ1BEstlsRETU1tYmLqE7MyAHAAAoTgbkAAB0uF27dsX8+fPja1/7mlMdAQDoct45gRwATsaoUaOirq4udQZFZNSoUVFRUREbNmxInUI3ZkAOAABQnAzIAQDocHfeeWeUlpbGFVdckToFAACOUFdXFyNHjkydAUCBq6ysjM2bN6fOoIiUlpbGqFGjDMhJyoAcAACgOBmQAwDQoXK5XNx+++3xxS9+MXr37p06BwAAjlBfXx+VlZWpMwAocE4gpyNks1kDcpIyIAcAAChOBuQAAHSoRYsWxWuvvRbXXHNN6hQAADhC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xyOPPBKzZs06oX8+l8vFnj174rrrrosJEybkN64IHDx4ML7+9a9HS0tL6hQAgJOyf//+mDRpUnzhC19IndIl/fjHP44DBw6kzgDepaampmhqaoof//jHqVO6pGeffTYeeuih1BldxogRI6JHjx5RW1trQF4kXM86Ptez8svz7fg83wAAAE6eATkAAO/ZrbfeGn379o3LLrvspP49F198cVx44YV5qioee/bsia9//eupMwAA8mL8+PExderU1Bld0oIFC1InAO9ReXm517RjKCkpMSD/PSUlJTFmzJjYsGFD6hTyzPWso3M9q2N4vh2d5xsAAMDJK0kdAABAYWlpaYm77rorpk6d2qV+TDYAAABAVzJ27Nh47bXXUmcAAAAAwBEMyAEAeE8WLFgQO3bsiKuvvjp1CgAAAECXVV1dbUAOAAAAQJdk3beTKwAAIABJREFUQA4AwHtSU1MTl156aYwePTp1CgAAAECXNXbs2Fi3bl3qDAAAAAA4QlnqAAAACsfq1avj2Wefjccffzx1CgAAAECXNnbs2NizZ0/s3LkzBg4cmDoHAAAAAA5xAjkAAO/azTffHNlsNj760Y+mTgEAAADo0saOHRsREa+99lriEgAAAAA4nAE5AADvyr59+2Lu3Lnx1a9+NUpKvI0EAAAAOJ6RI0fGKaecYkAOAAAAQJdj+QMAwLsya9asaGlpiS984QupUwAAAAC6vJKSkqiqqjIgBwAAAKDLMSAHAOBduf322+OKK66I/v37p04BAAAAKAhjx441IAcAAACgyzEgBwDgD3rqqadi1apVce2116ZOAQAAACgY1dXVsX79+tQZAAAAAHAYA3IAAP6gmpqa+OM//uM455xzUqcAAAAAFAwnkAMAAADQFRmQAwBwXNu2bYuHH344pk+fnjoFAAAAoKCMHTs29u7dG2+88UbqFAAAAAA4xIAcAIDjmjFjRvTp0yc+85nPpE4BAAAAKChjx46NiHAKOQAAAABdigE5AADH1NraGjNnzoyrr746TjnllNQ5AAAAAAVlxIgR0bNnTwNyAAAAALoUA3IAAI5p4cKFsW3btpg6dWrqFAAAAICCk8lkorq62oAcAAAAgC7FgBwAgGOqqamJj3/84zFmzJjUKQAAAAAFady4cbF27drUGQAAAABwiAE5AABHtWbNmnjmmWdi+vTpqVM6TXt7e+oE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7/Nj5zlz5mTOnDn79HvCRNLX15eDDz646BhMEosXL05fX99O2wcHB3PFFVcokLODX/7yl3s893HRRRflM5/5jBtYqlhjY2OOPfbYHHvssb/3vR/+8Idz4okn5qtf/eo4JGMyqVQqWbBgwU7l8e0aGhpy/fXX5wtf+MI4JwMAAOCN0IQCANiDcrmc9vb2omOwj42OjmbBggW7vICabLsosqcJ5QAAtWZgYCCf+MQn8v3vf3+35fHGxsaceOKJ45wMJj8Fcl6PhQsXpqmpaZevvfjii3n44YfHORET2e23377bcx9Jsnr16tx0003jmIiJasOGDfn5z3+eyy+/fLfHetSue++9N2vWrNnt6yMjI/nhD384jokAAADYFxTIAQD2QIG8Ov3yl7/MunXr9viexsbGXHfddeOUCABg4urp6cmpp56aG264IaOjo7t9X319fY477rhxTAbVYdOmTQrkvCYvv/xybrnllt1OgG1qasq11147zqmYqDZv3pxHHnlkj++pq6vL17/+9XFKxER20003ZWRkJKtXr859991XdBwmmO1PctydSqWSRx55JL/97W/HMRUAAABvlAI5AMAelMvldHR0FB2Dfey6665LXV1dmpqa0tTUlMbGxtTX16exsXFs2/DwcK666qqiowIAFG769On5+Mc/noMPPni3U2+TZHBwUIEc9oIJ5LxWN998cwYGBnb7+tDQUK666qqMjIyMYyomqnvvvXentdDQ0DB23iPZ9oS2X//611m6dGkREZlAFi5cmPr6+jQ1NWXhwoVFx2ECGR4ezqJFizI8PDz2+6OhoWFsvWw/t5okixYtKjgtAAAAr0dj0QEAACayUqmU+fPnFx2Dfay1tTWf+tSnxr4eHBzMlVdemT/90z/NnDlzdnjvhg0bMmPGjPGOCAAwYUyZMiVf+MIX8ud//uf5+7//+1x88cVJtpVJXu34448f73gw6SmQ81otWLAg9fX1eyyIl0qlLF26NO973/vGLxgT0t13353m5ua0trbm0EMPzaxZs/LUU0+lvr4+n//859PV1ZXOzs7MnDkzhx9+eNFxKVC5XM7dd9+dkZGRjIyMZOHChfnWt76V5ubmoqMxAaxcuTJnnHHGDtueeuqpPPDAA/mLv/iLHbZbMwAAAJNLXaVSqRQdAgBgojrhhBPy0Y9+NF/96leLjsJ+tHHjxsyY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zpwdLnBOnz49TU1NqVQqY4Xy7RdEX3rppSxcuDDPPfdchoeHkySHH354/uiP/iinnnpqTj311MybN6/gnxoAqEb9/f1VXUSEarRq1aoceOCBVTN5ml177rnn8td//df56U9/mjPOOCPf+c530tnZWXSscfOWt7wlt956a2699db89V//dY455phceOGF+dznPpeGhoai4/E6bN26Nffdd1/uvPPO3H333XnssceyefPmJElLS0vmzZuX448/fofzJ9OmTRu7sX7z5s3ZvHnz2A36GzduzF133ZXvf//72bRpU5JkxowZedvb3pZTTz0173//+/OOd7wjTU1Nhf3MvH4K5NWrUqnkN7/5Te68887ceeedefDBB8eeONDc3Jw3velNedOb3pS5c+fudMNIsu2G11cO6NiyZUueeeaZ3HrrrXnppZeSJFOmTMn8+fPzvve9L6eeemr++I//2HESAADABFFXqVQqRYcAAHi9RkZG8sILL4xNQnn66aezYsWKlMvlsQtXmzdvzoYNG1JXVzc2BalSqaSuri7HHXdc5s6dm2OPPTbz5s3L/Pnzc9hhh6Wurq7oH43XaXR0NHfffXduvPHG3HXXXXniiSfS1NSUd77znXnf+96XP/iDPxibfHXggQfu9Z8zNDQ0Nsn8ySefzD333JOlS5dm8+bNmT17dt7//vfn9NNPz+mnn25SKACwTxx33HE544wzcsEFFxQdBWrGyy+/nGeeeWaHyZurVq0a+3y5/fPmli1b0tzcnGnTpo193txeqmxsbMwnPvGJscmbLS0tRf9Y7COjo6P5xje+ka9+9auZO3duvvvd7+aP//iPi45VqJdffjn/5//8n1x88cU5/vjjc+WVV+YP/uAPio7FHixfvjyLFi3KkiVL8sADD2RgYCDz5s3LqaeempNOOmlscvAbHcCwevXqsUnmDzzwQO68886sXLky06ZNy3vf+978f/buPKzGvPHj+KddlBbL2EKWInvZUrSIoonBpFDJXsYuk22MdRhjPNMwlhkMRZJZ0AxlaRUmiUhU9i1LIZUW1fn98TydHzNjJur0PafzeV3Xc106ztz3O93P6V6+9/ceMGAA3N3d0aRJkyr6zkhWdu/ejQkTJqCoqEh0ClWB3Nxc/Pzzzzh8+DCio6Px5MkTGBoawsbGBtbW1tLz5S1btqzUTUEvXryQ7lOd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aAMGDEBISAi+++47fPHFF6JzFMrZs2fRpUsXnDp1ClFRUVi6dClUVZXvMp+GhgbWrFmDn376CWFhYejTpw+uXbsmOqvG4wBy8XJycvDRRx/Bz88PS5cuxbFjx9CoUSPRWUIMHToU586dQ506dWBpacknEhAREREREb0n5TuzRERERNUmKioK5ubmuHHjBqKjozF16tQaNRPc22hoaGDZsmU4ceIEYmNj0aVLF/zxxx+is+RKWVkZZs6ciblz52LZsmU4fPgwGjRoIDpLKE1NTQQEBODnn39GSEgInJ2dkZubKzqLiIiIBCkqKgIAaGlpCS4hki9lZWX48ssv4ejoCEtLS5w9exYWFhais6pF06ZNceLECSxduhTTpk3D8OHD8fz5c9FZCu3ly5cYMmQIiouLERERwZnHq8lHH32EjRs3YvHixdi2bZvoHIVw5MgR2NnZoV27drhw4QL69u0rOkm44cOHIykpCerq6rCyssK5c+dEJ9VohoaGyM7OFp2htB4+fAgbGxskJiYiKioKCxYsUMobSF5nbGyMkydPwtvbG6NHj8a6detEJxERERERESkc5T6yJCIiIplZv349HBwc0K9fPyQnJ6NXr16ik6qdra0tkpKS0KpVK9jY2GDfvn2ik+RCSUkJJk6ciC1btmDPnj1YsGCBUtxYUFHDhg1DfHw8UlNTYWdnh8ePH4tOIiIiIgE4AznRX+Xl5WHw4MFYunQpNmzYgF9++QX6+vqis6qViooK/P39ERERgVOnTqFXr164efOm6CyF9OrVK3z00Ue4ceMGIiIi0LhxY9FJSsXHxweLFy+Gj48PDh06JDpHrgUHB2Po0KEYPnw4wsLCUL9+fdFJcsPY2BgxMTGwsLCAjY0NwsPDRSfVWJyBXJybN2+iX79+yM3NRUxMDKytrUUnyQ1NTU18++23CAgIgL+/P2bOnImysjLRWURERERERAqDA8iJiIioSkkkEvj7+8PPzw9r165FSEgI6tatKzpLmEaNGuHo0aPw9fXF6NGjsWHDBtFJQuXn52PIkCHYv38/Dh06BHd3d9FJcqljx444efIkXrx4AUtLSz6KmYiISAlxADnRm7KysmBvb4/z588jLi4Ovr6+opOE6t+/P86fP486derAysoKFy9eFJ2kcPz9/XH69GkcOXIEbdq0EZ2jlJYvX45x48bBw8MD6enp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oNzNnTs3t9122/B5Rn9/f/7t3/6t4FRQuZYvX55HHnlkuLBYU1OTGTNmFJwKDo4HHnggq1evHv55cHDQh6Ep1M033zxcKB0aGsqKFSvym9/8puBUHGxz587d44MC69aty69+9asCE3Gw3Xnnndm0adPwz319fbnqqqsKTAQAAMBLoUAOAJS1pUuX5t577x2e7LjbvffeW1Aiyskdd9yRP/zhD3tsa2xszOzZswtKBABUgh07duTzn//88ETG3VatWlVQIqh8//6bhZI/Tv2/4447smHDhgJTwcHxH9f74OBgFi1alDVr1hSYimr15JNP7vUtKw0NDfnhD39YUCJKoaurK3ffffceE8fr6+tz+eWXF5iKg23WrFnD3zaw2+4P8QEAAFB+FMgBgLJ2ySWX7DF9PPnjTapf//rXxQSirMyaNWuPm+5J0tvbm3/5l38pJhAAUBH+1//6X9mwYcMehZokefbZZ/eY0ggcODNmzBie+L9bTU1NbrzxxoISwcExODiYq6++eq/1Xl9fnzlz5hSUimo2f/78va7N9fX1Ze7cuXn66acLSsXBNn/+/L0GevT392fevHk+vFWhent7c/311w9/28BujY2NueaaawpKBQAAwEuhQA4AlK1169bl+uuv3+umaW9vb375y18WlIpysWvXrtx44417rZ8kWbNmTR588MECUgEA5e7hhx/OD3/4w+c8x+jt7c3GjRsLSAWV7YEHHsjq1av32j44OJjp06cXkAgOnrvvvvs5X0v6+/utdwpx22237fWhuSSpra3NFVdcUUAiSmHevHl7fXBgt6uuuqrEaSiF2267LV1dXXtt7+3tzVVXXeWDsgAAAGVIgRwAKFvf/e53U1v73Kczy5cvz6ZNm0qciHJyyy23ZMeOHc/5WGNjY2bPnl3iRABAuRscHMxf/dVfpaamZp/PWbNmTQkTQXWYPXv2Xt8slPzxmFy0aJHjjoryXN+klSRDQ0N55JFH8thjjxWQimq1a9eu3H333c9ZIO/r68s///M/P+eH6ihvAwMDueWWW55z3/b39+ef//mflYkr0MyZM/f5oYF169bl/vvvL3EiAAAAXioFcgCgLG3fvj3/7//9v/3ehLrnnntKmIhyc/XVV6euru45H+vt7c306dMzMDBQ4lQAQDn7yU9+ksWLF6e/v/85H6+pqcnatWtLnAoq2+DgYK6++up9vjesr6/PnDlzSpwKDo7e3t7MmTNnn+u9oaEh1157bYlTUc1+/etfp6enZ5+Pb968OTfddFMJE1EK9957b7Zv377Px9euXZu77767hIk42Do7O3Prrbfu8/XHMA4AAIDypEAOAJSlyy67LL29vft8vKGhwY0K9mn79u1ZsGDBPstdSbJx48bce++9JUwFAJSzjo6OfPWrX93vtMWGhgaTkOEAu/vuu7Nx48Z9Pt7f35/p06eXMBEcPAsWLEhnZ+c+H+/r68uVV15p8i8ls2DBgjQ2Nu7z8dra2nz/+98vYSJK4ZZbbtnvfm9oaMjll19ewkQcbHPnzt3vIJfe3t7MmDFjv9daAQAAGHkUyAGAstPb25vvfe97+70g3dvbm9tvv72EqSgnN9544396Q6O+vj6zZs0qUSIAoNx96UtfSldX1z6/4WQ3BXI4sGbNmpWGhoZ9Pj40NJRHHnkkjz32WAlTwcExc+bM1NfX7/c5v//977N48eISJaLa3Xzzzfsd8DAwMJDf/va3efjhh0uYioPt+uuv3+9+7+vryw033JDNmzeXMBUH08yZM1NTU7Pf52zZsiW//vWvSxMIAACAA0KBHAAoO7NmzcrGjRtTW1ubxsbGNDU1PWdRZ8WKFfudREf1mj17dgYHB/f7nP7+/v/0hhgAwG5f+tKX8oMf/CDnnXdejj322CRJTU1Nmpqahp/T19eXp556qqCEUHl6e3szZ86cDAwMpKGhIQ0NDamvr09dXd0ePyfJtddeW3BaeGm6urpyyy237LHe6+rqUltbO/zz7g9TzJ49u+C0VIPVq1dn9erVqa+v3+8HGxobGzNz5swSJuNgevzxx7N27drU19enqalp+LrsfywX9/X1ZcaMGQWl5EDauHFjZzV2KAAAIABJREFU7rzzzgwMDPynz/X6AwAAUF72P6oCAGAEOuuss3LHHXdk/fr12bhxY9avX5/LLrssRx11VBoaGrJhw4Zs2bIlAwMDufvuu/PBD36w6MiMMF/72tdy4YUXDv/c3d2d9773vbnkkkvyhje8YY/n9vb27vdreQEAkuT000/P6aefni984QtJkk996lO566678oEPfCD33HNP2tvb09PTk9WrVxecFCrH73//+3zoQx/aY9vy5cuzaNGifPzjH99j+6hRo0qYDA68zs7OfP/7399j229+85tcd911+cEPfrDH9sMPP7yU0ahS27dvz9/93d9l7Nixw3/uu+++XHnllXnggQeGtzU3NxcdlQNo48aNOf/883PIIYekpaUlTU1Nueeee7Js2bJ873vfS2traxobG3PooYfm0EMPLTouB0BtbW3mz5+/x7b58+fnJz/5SebNm7fH9tbW1lJGAwAA4CWqGRoaGio6BADASzV69Oj86Ec/yic+8YnhbRs3bkxDQ0Pa2toKTEY52LZtW9ra2rJgwYKcffbZRccBACrAG9/4xrzpTW/Kj370oyR/nMK4dOnSPProo/nLv/zLgtNB5briiitywQUXZNu2bUVHgYPOemekueaaa/Kxj30svb29e02kpnJdcskl+dnPfpaVK1cWHYUS8foDAABQEdbVFp0AAOCl6urqSnd3d4488sg9th9xxBHK4wAAlNzOnTuzdOnSTJkyZXhbQ0ND3vCGNyiPAwAVa+zYsenv7093d3fRUSihlpYW+xwAAADKkAI5AFD2Ojo6kiRHHXVUwUkAACB58MEH09vbm6lTpxYdBQCgZHYPcjCVuLq0tLRkx44dRccAAAAAXiAFcgCg7K1fvz5J9ppADgAARVi0aFFe9rKX5ZWvfGXRUQAASmbs2LFJkq1btxachFJqbW1VIAcAAIAypEAOAJS9jo6O1NTU5Igjjig6CgAAZOHChaaPAwBVxwTy6tTS0pL+/v709vYWHQUAAAB4ARTIAYCy19HRkUMPPTSNjY1FRwEAgNx///2ZMmVK0TEAAErKBPLq1NLSkiTp7u4uOAkAAADwQiiQAwBlr6OjI0ceeWTRMQAAIGvXrs3TTz9tAjkAUHVaW1vT0NBgAnmVaW1tTZLs2LGj4CQAAADAC6FADgCUvY6Ojhx11FFFxwAAgCxcuDB1dXV5/etfX3QUAICSGzt2rAnkVWb3BHIFcgAAACgvCuQAQNkzgRwAgJFi0aJFOfXUUzN69OiiowAAlNzYsWNNIK8yCuQAAABQnhTIAYCyt379egVyAABGhIULF2bq1KlFxwAAKIQCefXZXSDv7u4uOAkAAADwQiiQAwBlzwRyAABGgp6enixZsiRTpkwpOgoAQCHa2tqydevWomNQQq2trUlMIAcAAIByo0AOAJQ9BXIAAEaChx56KD09PSaQAwBVywTy6rN7ArkCOQAAAJQXBXIAoKx1d3enu7tbgRwAgMItXLgw48aNy4QJE4qOAgBQCBPIq09zc3Pq6urS3d1ddBQAAADgBVAgBwDKWkdHR5IokAMAULhFixZl6tSpqampKToKAEAhTCCvTqNGjTKBHAAAAMqMAjkAUNbWr1+fJDnqqKMKTgIAQLVbuHBhpk6dWnQMAIDCKJBXp9bWVgVyAAAAKDMK5ABAWevo6EhNTU2OOOKIoqMAAFDFnnnmmaxbty5TpkwpOgoAQGHa2tqydevWomNQYi0tLenu7i46BgAAAPACKJADAGWto6MjbW1taWpqKjoKAABV7L777ktdXV3e8IY3FB0FAKAwJpBXp5aWluzcubPoGAAAAMALoEAOAJS1jo6OHHnkkUXHAACgyi1atCinnHJKxowZU3QUAIDCtLW1paurK/39/UVHoYRaW1uzY8eOomMAAAAAL4ACOQBQ1jo6OnLUUUcVHQMAgCq3aNGiTJkypegYAACFGjt2bJKYQl5lWlpa0t3dXXQMAAAA4AVQIAcAypoJ5AAAFK23tzcPPfRQpk6dWnQUAIBCtbW1JVEgrzYtLS0mkAMAAECZUSAHAMqaAjkAAEVrb2/Prl27TCAHAKre7gnkW7duLTgJpaRADgAAAOVHgRwAKGvr169XIAcAoFALFy7MYYcdlokTJxYdBQCgULsL5CaQV5fW1tZ0d3cXHQMAAAB4ARTIAYCyZgI5AABFW7RoUaZMmZKampqiowAAFKqtrS2JCeTVxgRyAAAAKD8K5ABA2dq5c2e6uroUyAEAKNTChQszZcqUomMAABSuvr4+ra2tJpBXGQVyAAAAKD8K5ABA2Vq/fn2SKJADAFCYZ599NmvXrs3UqVOLjgIAMCKMHTtWgbzKtLa2KpADAABAmVEgBwDKVkdHR5LkqKOOKjgJAADVauHChamtrc3pp59edBQAgBGhra0tW7duLToGJTRq1Kh0d3cXHQMAAAB4ARTIAYCytXsC+RFHHFFwEgAAqtWiRYvy6le/OmPHji06CgDAiGACefVpaWkxgRwAAADKjAI5AFC2Ojo60tbWlubm5qKjAABQpRYuXJipU6cWHQMAYMRoa2tTIK8yra2tCuQAAABQZhTIAYCy1dHRkSOPPLLoGAAAVKm+vr489NBDmTJlStFRAABGjLFjx2br1q1Fx6CETCAHAACA8qNADgCULQVyAACKtGTJkuzYscMEcgCAf8cE8urT0tKSgYGB7Nq1q+goAAAAwPOkQA4AlK2Ojo4cddRRRccAAKBKLVq0KG1tbZk0aVLRUQAARgwTyKtPa2trkphCDgAAAGWkvugAAAAvVkdHRyZPnlx0DEa4Z599Nk8++WSeeuqprF69Os8880w2bdqUzZs3p6urK9u3b09/f3+OPvrofOYzn0ldXV3a2toyatSoHH744Rk3blyOOuqojB8/PuPHj8+ECRNy/PHHp6ampuhfDQAo2MKFCzNlypTU1prRAABUn+7u7ixfvjxPPfVUnnrqqaxZsyabN2/O2rVr093dnZNPPnmvidQtLS1paWnJuHHjhv8cf/zxw9ddTjzxxDQ1NRX0G/FitbS0JPljgfywww4rOA0v1sDAQFauXJlVq1YNH9cbNmwYvpa6c+fO4Wupra2tmTBhQhoaGjJ69OiMGTMmhx9+eA4//PD8l//yX3LccccNH9Pjxo0r+lcDAADgOSiQAwBlq6OjI0ceeWTRMRhBOjo6snDhwtx3331pb2/P0qVLs2nTpiRJU1NTjjvuuBx77LF52ctellNOOSWjR49OW1vbXmXw7du3p6urK5s3b84zzzyTBx54IE899VQ6OzuTJIccckhOOeWUvPa1r83UqVNzxhln5JWvfGXJf18AoFiLFi3KX/7lXxYdAwDgoNu5c2cWL16c++67L4sXL87SpUuzatWqDA4Opra2NkcffXTGjx+fww8/PJMmTcqb3/zmtLa27lUG37lzZ7q7u7N58+Zs2rQpK1euzLXXXpv169cnSerr6zNx4sSceuqpedOb3pSpU6fmda97XRoaGor4tXmedhfIu7u7C07C8zU0NJTHH388v/3tb7No0aIsWbIkjz32WHbu3JkkOfTQQzN+/PgcffTRGTduXF71qldl9OjRGT169B5/z8DAQLZv357t27dnw4YNeeyxx3L77bfn97//ffr6+pIkxx57bF7zmtfk9a9/fd785jfnzW9+c9ra2kr+OwMAALAnBXIAoGytX79egbzK7dy5M3fffXcWLFiQBQsW5IknnkhtbW1OOeWUnH766fnTP/3TnHrqqTnxxBNz9NFHv+Sp4btvbC5btizLli1Le3t7fv7zn6enpydHH310zj777Jxzzjl55zvfadoSAFS4DRs2ZPXq1Zk6dWrRUQAADrihoaEsXbp0+JrLwoUL09vbm2OOOSZTpkzJRz/60bzmNa/Ja17zmrziFa94yVPDd+7cmVWrVuXRRx/N0qVLs2zZslx88cXZtGlTWlpa8ta3vjXvfve78+53vzsTJ048QL8lB0pra2uSP04gZ+Rav3798DF9xx13ZPPmzWltbc0b3/jGnHnmmfnc5z6XU089Na961asyduzYl/RvDQwM5Omnn87jjz+epUuX5uGHH87111+fiy++OLW1tTn11FNzzjnn5JxzzskZZ5yR+nq1BQAAgFLzTgwAKEs7d+5MZ2enAnkV2rVrV+bPn585c+bklltuSXd3d0477bS8973vzVlnnZWpU6dmzJgxB+Xf3v01rFOmTBne1tPTk8WLFw8X2T/60Y8mSf7kT/4k06ZNy3vf+15lcgCoQL/97W9TU1OT008/vegoAAAHzOLFizNnzpzMmTMna9asyZFHHplzzjknn/rUp3LGGWdk/PjxB+XfHTVqVE4++eScfPLJmTZt2vD25cuX57777svtt9+e//2//3f+x//4H3n1q1+dadOmZdq0aTnppJMOSh5emN0TyBXIR55nnnkmN9xwQ6699tosXLgwjY2NOfPMM/O3f/u3OfPMM3PaaacdlPJ2XV1dXvGKV+QVr3hFzj777OHtGzduzMKFC3PHHXfkhhtuyLe//e0cdthhed/73pdp06bl7W9/uzI5AABAidQMDQ0NFR0CAOCFeuqpp3L88cfn/vvvzxvf+Mai41ACy5Yty09/+tNcffXV2b59e84888ycd955+bM/+7Mce+yxRccbtnXr1ixYsCBz5szJ/PnzMzQ0lPe973355Cc/mbe//e0veQo6ADAyfO1rX8stt9ySRx99tOgowL9zxRVX5IILLsi2bduKjgIHnfXOgbJ58+ZMnz49P/3pT/P4449nwoQJmTZtWj7wgQ/kda973Yi5ltHf35/f/va3ueGGG3L99dfnmWeeyRvf+MZ88pOfzIc+9KEccsghRUesWlu2bMlhhx2WX/7yl3nnO99ZdJyq19/fn9tuuy0//elPs2DBgrS2tuY973lPzjvvvLzjHe8YLvyPBCtXrszcuXMzZ86cLF68OEcffXQ+/vGP56/+6q8yYcKEouMBAABUsnW1RScAAHgxOjo6ksQE8go3MDCQG264IWeccUZOO+20/PKXv8zXv/71rFu3LnfddVfOP//8EVUeT5K2trZ86EMfyo033piOjo78+Mc/ztq1a/OOd7wjkyZNymWXXZbu7u6iYwIAL9HChQszderUomMAALxoDz/8cD7xiU/k2GOPzTe/+c287W1vy+9+97usXLky3/rWt/L6179+xJTHk6S+vj5nnnlmfvCDH+T3v/997rrrrpxwwgn5whe+kGOPPTZf/OIXs2rVqqJjVqXdhWTXvIr1hz/8IZdcckmOO+64vP/9709/f3+uueaadHR0ZMaMGXnPe94zosrjSfKqV70qF154YR544IGsXLkyn/zkJzN9+vSccMIJefe735077rij6IgAAAAVS4EcAChLCuSVra+vL5dffnkmTpyYadOm5WUve1nuvPPOLF++PBdeeGGOPvrooiM+L2PGjMknPvGJ3HfffXnkkUfyJ3/yJ/nKV76S4447LhdddFG2bt1adEQA4EXo7+/Pgw8+mClTphQdBQDgBbvvvvty9tln57TTTsvvfve7/OhHP8ozzzyTH//4xzn99NOLjve81NbW5r/+1/+aq6++Os8880y++c1vZt68ecPXkh555JGiI1aVpqam1NfXZ8eOHUVHqUrPPvtsvvjFL+YVr3hF/vEf/zEf/ehHs3LlyixYsCAf/OAH09zcXHTE52XChAn5+7//+6xZsyY33XRTent78853vjOvfe1rM2fOnAwODhYdEQAAoKIokAMAZWn9+vUZO3Zs2Vz85vkZGBjIlVdemUmTJuULX/hC3vWud2X58uWZO3duzjrrrBE19eqFOvnkk4enkX/+85/Pj370o7zyla/MxRdfbDoTAJSZZcuWpbu72wRyAKCsLF68OOecc07e8pa3ZNeuXbntttvyyCOP5FOf+lRaW1uLjveiHXroofnyl7+clStXZubMmVmxYkVOO+20fPjDH86KFSuKjlc1WlpaFMhLbNOmTfnKV76SCRMm5IYbbsjFF1+ctWvX5jvf+U6OP/74ouO9aHV1dXnPe96TX/3qV3nooYdy0kkn5cMf/nAmT56cefPmFR0PAACgYtQXHQAAYLf+/v6sWbMmW7duzdatW9Pd3Z2urq50dXVl165daW1tzZgxYzJmzJg88MADaWtry+bNmzNu3Liio3MAtLe35/zzz8+DDz6YD33oQ7nooosyYcKEomMdcIcffnguuuiiXHDBBbn00kvz7W9/O5dddlkuueSS/Pf//t+LjgcAPA8LFy7MmDFjctJJ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2Njqz2FhYZKkyMhIPf7441q+fLlKSkp05513mogHAAAAAJDU/ndKAwAAnMdjjz2m6dOna/v27crNzdW6deu0cOHClvsjIiJUX1+vuro6lZeXKyoqymBaoLW5c+decIKV2+3WwoULdfr0afXq1ctHyQAgcHm9Xj3yyCO66aabVFxcLJfLpZ07d2r//v2yWCwtZQC3261169YZTgsA8Ef79+/XxIkTWy72PH36tPbu3auIiAhdeeWVLY+z2Wxav3697rnnHlNRAZ/78ssvtWfPnot67Ny5c/Xggw92cyKg844cOaKqqipZrVZZrdaWCyMsFotiY2OVnJys5ORkXX311RoyZIjhtOhuBw8eVFRUlPr3799y24kTJ/TVV1/pmmuuabnNYrFo3759JiKigzwej9xutywWi7xer+Lj4/XAAw/oH//4h37yk5/oV7/6lemIAAAAAABJFi/f/QYAAC6BpUuX6o477tDevXvldDqVm5urzZs3Ky8vT5999plGjx5tOiLQorCwsFWBvKamRiNHjtR7772nG264odVjHQ5Hy4QcAEDHpKena9asWaqrq1NFRUVLsbyoqEiPPPII+1cAwAWNHTtW48eP1x//+EfTUQC/8+677+rZZ59VVVWV6ShAh+Tk5OgPf/iDkpKSlJSUpMTERJWXl2vGjBkqKyvToEGDTEeEYezfAlt9fb2uv/56paWlKS0tTddee60k6T/+4z+0fv167dy503BCAAAAAIAkFxPIAQDAJZGbm6uEhARdc801uuaaa3TXXXe13Hehrx8FfC0+Pr7Vn89+GHXllVcqISHBRCQA6JFcLpdiYmJksVgUFRWlqKgojRw50nQsAEAA8Xg8stlspmMAAC6hG2644ZwL+I8ePSpJKigooEAOBDi73a4dO3acc3taWpr++te/6tChQ0pMTDSQDAAAAADwr6ymAwAAgJ4hLy+v3SnjoaGhPk4DAAD8gcvlksPhMB0DABDA3G63rFZOYwNAT+dwOBQREaGCggLTUQB0kxtvvFFRUVHKysoyHQUAAAAAIArkAADgEsnLy1NKSorpGAAAwI9QIAcAdJXb7WYCOQAEAavVqvj4eB06dMh0FADdxGazafLkyRTIAQAAAMBPUCAHAABdVlhYqGPHjrU7gRwAAAQnl8ul2NhY0zEAAAHM4/FQIAeAIJGUlMQEcqCHS0tL05Yt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e/Zo06ZN2rBhg/74xz/q5z//ua644grddtttuueee3Tbbbd16ucDAHwvMTFRK1euNB0DgI+FhobqrrvuUlZW1gUL5E1NTS2DcA4fPqySkpKWITknTpxQU1OTJKmurk4RERGSpL59++ryyy9XZGSkrrjiCjkcDsXFxSkhIUFRUVHd/vsBAAAAgL+gQA4AgJ+rqKhQRkaG5s6dq7y8PA0cOFB33nmnnnjiCd18880aMGCAz7IMHjxYgwcP1p133inpzEnXtWvXaunSpZo3b55+97vfKTExUQ888IB+9KMfKTEx0WfZAACAeS6XS5IokANAEGlubtbixYuVkZGhJUuWyO12a+LEifrVr36l22+/XcnJyT7L0qdPH11//fW6/vrr9cwzz8jr9WrXrl1aunSplixZoqlTp6pPnz66++679cMf/lCpqamdugAbAOAbSUlJOnr0qBoaGhQeHm46DgAfSktL09SpU/XVV1/pyiuvlHTmfefOnTu1ceNGbdu2Tbt379a+ffvU2Ngo6Uwx3OFwKDIyUgMHDtTgwYNls9kkSWFhYS2Pq62tVUlJiXbv3q3S0lJ99dVXcrvdkqRBgwZpxIgRuu666zR27FiNHz++5ecDAAAAQE9j8Xq9XtMhAADAudauXau///3vys7Olt1u17333qtp06YpNTVVISH+eQ1YXl6ePvroI3344YcqLi5WamqqZs2apbS0NL/NDEhSVVWV+vfvr2XLlunWW281HQcA/FZVVZVqa2tVW1srq9Wq3r17q3fv3urbt68k6cMPP9SDDz6o+vp6XvsBoIc7evSo/v73v+v9999XWVmZJk2apPvvv19Tpkzx6YXOHVFSUqKPP/5YH374oTZt2qSEhAQ9+uijeuyxxzRw4EDT8YAOe/fdd/Xss8+qqqrKdBSgW+zYsUPf/va3tX//fg0bNsx0HPhAXV2damtrNXfuXP31r3/V8uXL1adPH/Xv318Wi8V0PPhQXV2doqKi9POf/1yXXXaZli5dqvXr16u2tlYDBgxQSkqKrrvuOg0fPlzf+MY3FBcXp8jIyE79rKamJrlcLh06dEh79uzRnj17tGPHDu3Zs0dut1sJCQm65ZZbdPvttys1NVV9+vS5xL8tAAAAABjhokAOAIAfaWpq0vz58/Xmm29q27Ztuv766/XYY4/p/vvvV69evUzHu2hut1tLly7V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4qbe64477sgpn18qBFSqVInCOJaayKwAACAASURBVAB4AZfLpcWLF+uDDz7QqlWrVL16dfXo0UNRUVEeV7I7fvy4pk+frokTJ2r//v168skn1b9/fzVs2NB0NOCqBg0apP/85z/XvFPNJStXrlRkZGQBpboxo0eP1osvvqivv/5aTZo0MR0HuK5Tp06pdOnSGjdunLp162Y6jlc5fvy49uzZc9kFx38ugN+okJCQy443/1xG9/f3v+b/V65cOR08eFBhYWHaunWr7rrrrrz4YyEfbNu2TdOnT9fs2bN17NgxVapUSc2bN9ejjz6qevXqFdhdIl0ul3788UetXr1ay5Yt04oVK3Tu3Dk1aNBAXbp0Ubt27Tzud2AAAAAA+BMK5AAAuKPs7Gy98cYbmjx5so4fP66yZcuqU6dOat++vapWrWo63jX99ttvmjt3rmbOnKmtW7fqvvvuU48ePdStWzeFhISYjod8sHfvXtWrV09NmzbVnDlzPO5Chz+rXLmy9u3bp7vuuksHDx70+JUUAXiW+fPnq1u3bjp37tw1S0FFixbVyZMnC3xbm5WVlbPSW2Zmpk6fPp1TdC9UqJBCQkJUuHBhhYWFKSwsjBW3AMBHfP/99xozZozmzp0ri8Witm3bqkOHDnr00UcvWzXUnZw/f16LFy9WYmKiFi1apKCgIEVHR+v555//y5WdAZOcTqfuuusuHTlyJOff15+/2rn033a7Xf/61780btw4Izmv56mnntL69eu1bds2lSpVynQc4LratWun48eP69tvvzUdxWdcOuZMS0vTuXPnlJWVlfNcSEiIAgICFBYWpuLFi9/yAhWXzv35+fmpbNmy2rx5M+VfN2e327VmzRotW7ZMS5cu1a5du2S1WlWlShXVqVNHVatW1f3336/77rtPpUuXztX53AsXLmj//v364YcftHPnTu3YsUPr169XamqqgoOD1bRpUzVr1kwtWrTg4gMAAAAA3oICOQAA7mj9+vVq0qSJOnfurH79+mnKlClKTEzUb7/9pipVqugf//iHmjVrpnr16hktablcLu3cuVNLly7VokWL9N1336lo0aJq06aNunXrpgYNGhjLhvyXkpKihx56SMWKFdOqVavcenXxv7Jv3z5Vrlw55+fvvvtODz30kMFEAHzRsWPH1K5dO61du/aKlchtNps6dOigGTNmGEoHAMDVnTlzRjNnztSMGTO0YcMGFStWTK1atcpZJbJYsWJG8x09ejSndLR48WJduHBBDz/8sGJiYvTPf/5ThQsXNpoPuBGpqamaPHmyHA6Hzp49K0lKSkrS/Pnz1bt3b9nt9pzXFi9eXMOHDzcV9ZpOnz6tmjVrqlKlSlq8eLFHX4AO77do0SK1atVKP/30kypUqGA6DvJI9erVtWPHDkmSn5+fHn74YS1dulSFChUynAw36sSJE1q/fr3Wrl2rrVu3aufOnTl3TQsMDFTZsmV1xx13KCIiQuHh4SpSpIiCg4Mvu7gxPT1dmZmZOnz4sM6ePavU1FQdOHBAR44ckfTH+Zd7771X1apV00MPPaT69eurevXqXCwPAAAAwBtRIAcAwN3s3r1b9evX19mzZzVw4EC98847kv4oa3/33XeaO3euFi9erJ9//llFixZVw4YNVb9+fdWvX181a9ZUkSJF8i1bdna2du/erXXr1mndunX69ttvdeTIEZUsWVLNmjVT27Zt9fjjj1/3VqHwDhkZGWratKmOHj2qDRs2qESJEqYj5crQoUP19ttvKzs7W35+furevbvGjx9vOhYAH5Odna369evr+PHjOnr0qBwOR04ZyGq1avr06YqOjjacEgCAa/vll180d+5cLVy4UBs2bJDL5dLf//531a9fXw0aNFCdOnVUunTpfM+wfv16rVu3TmvWrNHOnTsVEBCghg0bqnXr1vrnP//p8ccvgCTNnTtX7du3l9Pp9Jg7aG3evFkNGjTQsGHDNGDAANNxgGuy2+0qU6aMevbsqTfeeMN0HOSROnXqaNOmTTk/FypUSH369NFHH31kMBVy6+jRo0pKStKBAwd04MABHTp0KGdF+3Pnzik9Pf2yO73ddttt8vf314ULFxQaGqoaNWqobNmyKleunMqVK6fKlSsrICDA4J8IAAAAAAoMBXIAANzJgQMHVKdOHZ06dUoWi0Vvv/22Xn755au+9ueff9aXX36p1atXa+3atTp8+LCsVqvKly+vatWqqXLlyipbtqzKli2rMmXKKCwsTGFhYX+5wtOZM2dyimuXTromJSVp9+7d2rt3r7KyshQaGqp69eqpQYMGeuyxx1SjRg1WjvIhTqdT7dq106pVq/Tdd995xa3eK1asqJ9++inn59tuu00nTpzgywIABeqVV17RmDFjtHXrVmVnZ6tj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zZr94dcnTpzQmjVrlJCQoMcff1wDBgzQk08+qUGDBqlSpUqF8WXAzTAgB9yXw+GQn58fPycAAJBPgwYN0v79+7VlyxYVK1bMdI7bKlu2rObOnavWrVtr/PjxGjRokOkk4LIYkPsGm82mxMRE0xnwIR06dNBNN92kefPm6dVXXzWd47WsViuXlgD4R9q0aaNt27Zp8uTJGj58uBYsWKCRI0eqd+/e/GwIAACAf4SrZgD4lE2bNmnNmjUaOXIk/5B2Q8OGDdP58+c1bdo00ylwc0eOHFHPnj0VHh6u9evXa+LEiTpx4oQ+++wzPfjgg9c8Hr+cChUq6NFHH9XixYv1n//8R7GxsZo3b55q1qypZ599VidPnizArwTuiAE5YE52drY2bdqkd955R08++aTuuOMO1ahRQ2XKlFFAQIB69eql4OBg1alTR+3bt9czzzyjiRMnaufOncrNzTWdDwCAW1qwYIE++OADffLJJwoNDTWd4/ZatGihESNG6NVXX9XmzZtN5wCXxYDcN9hsNiUlJXFGgSITEBCghx9+WAkJCaZTvNLZs2e1detWnTx5Ujk5OZo3b56WL1+u7777Tj/++KOys7NNJwLwAAEBAYqJidHBgwf18MMP6/HHH1f79u21e/du02kAAADwQBYXJ08AfMh9992n06dP64cffjCdgiv417/+pfnz5+vAgQPcioa/uHjxosaPH69///vfqlKlit5++21169at0F9+/eLFi5o5c6beeustZWRkaNSoUerXrx8v++6lxowZoylTpig1NdV0CuATLl68qOXLl+vTTz/VypUr5XA4VKFCBdWvX1916tRRtWrVVLp0aZUqVUq5ubk6f/68Tp48qSNHjmj//v3atWuXTp8+rbJly6pz587q3bu3OnTowN/RAABIOnPmjMLCwvTggw/qo48+Mp3jMVwulzp37qyjR49qx44dCgwMNJ0E/EFAQIA+/fRT9ezZ03QKClFiYqJatGihlJQU1alTx3QOfMR3332ntm3bKjk5WXXr1jWd47FcLpe2bt2qNWvW6Ntvv9W2bdv0yy+/XPV/ExQUpNq1a6tVq1Zq27atOnbsqHLlyhVRMQBPtWXLFg0cOFBbtmzRs88+q7fffls33HCD6SwAAAB4hp8YkAPwGTt37lSTJk20bNkyderUyXQOruD48eO69dZbNXHiRD311FOmc+BGjhw5okceeUQ7d+7UkCFD9Oqrrxb5kwzOnz+vcePGadSoUWrVqpU+++wzVaxYsUgbUPjGjh2rDz/8UIcOHTKdAni106dP6/3339ekSZN0+vRptWvXTg8//LDatWunsLCwa/44ubm52r17t1avXq158+Zp06ZNqlKlil566SX1799fwcHBhfhVAADg3gYMGKCFCxfKbrerdOnSpnM8ytGjR1W3bl0NGzZMQ4YMMZ0D/IG/v78+++wzPfLII6ZTUIgyMzN1ww036OOPP1avXr10/vx5OZ1OORwOlShRQlarVSEhIaYz4WVyc3NVtWpVPfnkk4qNjf3D+7KyspSenq5z587Jz89PpUqVUkhIiPz9/c3EuqFjx47pk08+0aeffqqDBw+qQoUKatu2rVq0aKGwsDDVqlVLZcuWValSpRQQEKD09HQ5nU4dPXpU+/fv1549e/Tdd98pMTFRFotF9957r/r06aMuXbooICDA9JcHwE3l5uZq1qxZevnll5WTk6M333xTAwcOdJsLNvj+AQAA4LYYkAPwHd27d9eBAwe0bds2XuLVzT399NNatWqVUlJSOBSFJGn+/Pnq16+fatWqpYSEBNWqVctoz5YtWxQVFaULFy5ozpw5atOmjdEeFKxx48Zp8uTJOnz4sOkUwCtlZGRo7NixeueddxQYGKjnn39eTz75pKpUqVIgHz8lJUUfffSR/u///k/BwcEaPny4nnnmGR6QAAD4nK1bt6pFixaaOXOmevXqZTrHI40YMUKjRo1ScnKyqlevbjoHuMTPz09z5sxRVFSU6RQUkuPHj2vNmjUaPHiwihUrJofDodOnT//l91mtVtWpU0fh4eG688471a5dO4WGhhoohjd56aWX9OWXX+qDDz7Q2rVrtWXLFqWkpOjo0aP688PK/v7+ql69usLCwhQREaH27dsrIiJCQUFBhurNOHDggEaNGqVZs2apTJkyevTRR9W7d281btz4H3289PR0LV68WJ9++qlWrVql6tWr65VXXlGfPn14ZRQAV3TmzBnFxsZq8uTJatKkiSZNmqQWLVoUaYPT6dTGjRv5/gEAAOAZGJAD8A0HDx5UnTp1lJCQoG7dupnOwd9ITU1VaGioPv30U25SgiZMmKBBgwZpwIABGj9+fJHfOn4l586d0+OPP65ly5Zp5syZ/LfqRd555x29//77OnLkiOkUwOusWrVKAwYM0IkTJ/Taa6/p+eefV6lSpQrlc/32228aN26c3nvvPTVo0EBTp05Vs2bNCuVzAQDgbnJzc9WiRQuVLFlSa9as4Yn0/1BmZqYaNmyo+vXra8GCBaZzgEssFosSEhLUo0cP0ykoQOfPn1dCQoJmzpypdevWKTAwUBEREWratKlCQ0NVrVo1BQcHKyQkRE6nU06nUz/99JP279+v3bt3a/369XI4HKpXr56io6MVHR2tChUqmP6y4GHWrl2rCRMm6Ouvv9bFixcVGhqq22+//dLt2TfccINuuOEG5ebmyuFw6NSpUzpw4ID27t2r9evX6+jRoypTpoweeeQR9e3bVzabzfSXVKguXLigMWPGaPTo0apUqZJeeOEFPf300ypevHiBfY7Dhw9rwoQJmjp1qqpUqaJJkybp7rvvLrCPD8D77NixQwMHDtTGjRvVq1cvvfvuuypfvnyhfs61a9dqxowZ+uKLL5Sens73DwAAAM/AgByAbxg+fLimTZumo0ePcvukh4iMjFR2dra++uor0ykw6NVXX9WYMWP07rvv6l//+pfpnL9wuVx66aWXNHHiRMXFxen55583nYQCwIAcKHjZ2dkaNmyYxowZo65duyouLk6VK1cuks+9b98+Pfvss9q4caPGjh2rF154gREdAMDrffHFF+revbt27typ+vXrm87xaMuXL9d9992npKQkNW/e3HQOIIkBubdJS0vT+++/r/fee0/p6el64IEH9Nhjj6l9+/ayWq3X/HGys7O1adMmzZkzR59//rmcTqeeeOIJDR06VFWrVi3ErwCezuVyaeHChRo5cqS2bt2qiIgIRUdHq2vXrqpUqVK+PtbBgwe1YMECxcfHKzk5We3atdMbb7yh9u3bF1K9OXnDzLNnz2rEiBGF/upnhw4d0gsvvKBly5apX79+iouLU3BwcKF9PgCezeVyaf78+Ro0aJDS09M1fPhwPf/88wX69xTfPwAAADzeT36mCwCgsLlcLs2aNUu9evViPO5BevfurZUrV+r48eOmU2DI22+/rXHjxmnmzJluOR6Xfn/AdsKECRoxYoReeOEFTZ8+3XQSCoDFYvnLyykC+OfOnj2rjh07Ki4uTlOnTtWCBQuKbDwuSeHh4Vq9erWGDx+uwYMH65FHHlFmZmaRfX4AAEwYNWqUHnroIcbjBaBz586y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48aN09GjR/XLL78oLS1N99xzjwYNGmQ6HnBTIiMjFRERofT0dNNRAI+Vl5cnX19fff311+rTp4/pOAD+x8GDB9WqVSu1b99e8+bNy394EABuVlBQkGrVqqXIyEjTUQCXQT8Q7uCjjz7SBx98oKNHj5qOAg+QnZ2tsLAwrV27VvHx8WrdurXpSABwU3JyctS7d2998803Sk5Ozn/HcwAw6eLFiypbtux1v/bKK69o0qRJmjt3rvr16+fgZACAm3DEx3QCwNNER0erf//+KlGihCSpffv2at++vaZMmaKMjAzD6QDg1qSlpalnz56qX7++6tevbzoOAMDF2Ww2SWIoFXBCZ8+eVXBwsO6++27NnDmT/08BAABw07y9vfOv+4DiVqJECc2bN08DBgxQ165dtWTJEnXs2NF0LAAoND8/P82fP1/du3dX586dlZycrCZNmpiOBcDDFTQ8LkkTJ07U+fPnNWTIEJUrV46HnwHAiXGXD3CgvXv3aseOHdc9jdfX11eVK1c2kAoAbo/VatWvv/6qWrVqmY4CAHATDJADzik3N1f9+/dXZmamFi9erDJlypiOBAAAABfEADkczc/PT7GxsQoKClKPHj2UmJhoOhIA3JRSpUpp6dKlatSokTp16qS9e/eajgQABfLy8tK//vUv9enTR3369FFKSorpSACAAnA3HnCgOXPmqEaNGmrfvr3pKABQZI4fP67c3Fz5+/ubjgIAcBMMkAPOx263a+TIkdq6dauWL1+umjVrmo4EAAAAF8UAOUzw9fVVTEyM+vbtq549e2rlypWmIwHATSldurSWLFmi2rVrq2vXrjp48KDpSABQIG9vb82cOVMdO3ZUjx49tGPHDtORAADXwd14wIFiYmI0ePBgWSwW01EAoMgcOXJEkhggBwAUGQbIAefz7rvvKioqSvPmzVOzZs1MxwEAAIALY4AcplgsFk2fPl0DBgxQaGioFi9ebDoSANyU8uXLa+XKlapevbo6duyoQ4cOmY4EAAXy9fXN7ycHBgZq//79piMBAP4Hd+MBB9m8ebN++uknDRo0yHQUAChSaWlp8vb2Vo0aNUxHAQC4CQbIAeeyaNEivfXWW/rkk08UGBhoOg4AAABcHAPkMMlisejLL7/UyJEjFRYWpgULFpiOBAA3pUKFClq1apWqVKmirl276tixY6YjAUCBSpUqpSVL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gBwofkePHtWwYcM0fPhwDRkyxHQcAAAAeBAGyOGqunfvroULFyo6OlpDhgxRXl6e6UgAUGhdu3bVokWLFBUVpdGjR8tut5uOBADXZbFYNHv2bLVp00ZBQUH68ccfTUcCALfF3XigGMyePVvVq1dXx44dTUcBgGKTm5urkydPyt/f33QUAICbYYAcKF42m01PPPGEKleurI8//th0HAAAAHgYBsjhyoKCghQfH6+lS5dqyJAhys3NNR0JAAotMDBQc+fO1YwZMzRu3DjTcQCgQH5+fvr666/VqFEjde3aVYcOHTIdCQDcEnfjgWIwd+5cDRw4UBaLxXQUACg2R48elc1mY4AcAFDkrpx+wwA5UDwmTZqklJQURUdHq2zZsqbjAAAAwMMwQA5X9+ijj2r58uWKj49Xnz59lJ2dbToSABRar169FB0drU8//VQRERGm4wBAgUqXLq2lS5eqatWq6tq1q44fP246EgC4He7GA0Vs27Zt2rdvnwYNGmQ6CgAUq7S0NEligBwAUOSuDBF4eXkZTgK4nz179ujNN9/UhAkT9OCDD5qOAwAAAA/EADncQfv27RUfH69169apT58+unz5sulIAFBoffv21Zw5czRlyhS99dZbpuMAQIEqVKighIQEWSwWdevWTWfPnjUdCQDcCgPkQBGLjo5WvXr19PDDD5uOAgDFKi0tTT4+PqpWrZrpKAAAN3NliIATyIGilZ2drSFDhqhFixZ68cUXTccBAACAh2KAHO6ibdu2SkpK0ubNm9WrVy9lZWWZjgQAhRYWFqbIyEi9++67eu+990zHAYACVa1aVatWrVJGRoZCQkJ08eJF05EAwG1wNx4oQjabTTExMRoyZAinJQJwe2lpaapRo4YsFovpKAAAN8MAOVA83nrrLf3888/66quv2MMBAADAGAbI4U5atmypxMREbd++XcHBwQw0AXApw4cP1+eff66//OUvmjhxouk4AFAgf39/rVq1SocOHVKvXr2UnZ1tOhIAuAXuxgNFaM2aNTp69KgGDBhgOgoAFLsjR47I39/fdAwAgBtigBwoehs3btSHH36oyZMnq379+qbjAAAAwIMxQA538+CDDyoxMVE//PCDgoODdeHCBdORAKDQRowYoY8++kivvvqqPvzwQ9NxAKBA9evX14oVK7R9+3YNHDhQeXl5piMBgMvjbjxQhKKiotSiRQs1adLEdBQAKHZpaWkMkAMAigUD5EDRyszM1LBhwxQUFKSRI0eajgMAAAAPxwA53FHz5tOF6kEAACAASURBVM21bt06HTx4UEFBQcrIyDAdCQAK7fnnn9fkyZP18ssv61//+pfpOABQoObNm2vZsmVatWqVRowYwTUFANwm7sYDRSQnJ0cLFy7U4MGDTUcBAIdggBwAUFwYIAeK1uuvv66zZ89q2rRp8vLyMh0HAAAAHo4BcrirRo0aKSkpSYcPH1anTp105swZ05EAoNBeeOEF/f3vf9ezzz6rzz//3HQcAChQmzZttHDhQsXExGjs2LGm4wCAS+NuPFBEli1bpvPnz2vAgAGmowCAQxw5ckS1atUyHQMA4IYYIAeKzubNmzV16lRNnjxZd911l+k4AAAAAAPkcGsNGzbUhg0bdPbsWXXp0kWnT582HQkACu3FF1/U66+/rjFjxmj27Nmm4wBAgbp27aqoqCj961//0oQJE0zHAQCX5WM6AOAuoqOj9eijjzJMCcAjZGdn69SpU5xADgAoFgyQA0UjOztbI0aM0GOPPaZhw4aZjgMAAABIYoAc7q9OnTpKTk5W586d1aFDB61evZoHegG4jHfeeUdWq1XDhw+XxWLRoEGDTEcCgOvq06ePIiMjFR4erjJlyigiIsJ0JABwOQyQA0XgwoULWrp0qaZMmWI6CgA4xJEjR2S32xkgBwAUCwbIgaIxfvx4HT58WEuXLpWXl5fpOAAAAIAkBsjhGWrXrq3k5GR16tRJnTp10urVq1WjRg3TsQCgUP76178qLy9PTzzxhCwWi8LCwkxHAoDrGj58uNLT0zVu3DhVrFhRI0aMMB0JAFwKA+RwKpmZmTp9+rTOnDmjs2fP6sKFC8rLy5PNZlN6evpV3+vn56cyZcpIksqWLauyZcuqcuXK+R8+Po77671gwQJZrVb16dPHYT8TAG5GUdfXtLQ0SeJdFwAANy0nJ0dnzpzJ/7h48aIuXbokSfnr04EDB1S6dGnNmTNHd999t6Tf1qcra1KVKlVUuXJllSpVyuRvBXBqO3bs0KRJkzRlyhTVrVvXdBwAHur3a/6FCxfyrz+zs7N16dIlnTp1Sjk5Ofr8889VtmxZ+fr6SpLuuOMOlStXTpUrV9add96pChUqmPxtAABuwY36kXv27FHp0qUVHR2tKlWqONX9HqAo+fv7a/369erSpYs6duyo1atX01N3Mn+0X/099qvwNH/729+UmZmpJ554QqVKlVJoaKjpSB6pMP3037vjjjsk0U+HZxk7dqyOHz+u0aNHq3z58urfv7/pSB6B+gS4BzoucBir1aoDBw7owIEDOnTo0FUfR48e1ZkzZ3T58uXr/lpvb+9rLrxzcnKUmZlZ4M+rWLGiqlWrJn9/f9WpU0d16tRR3bp1VadOHTVq1EiVKlUqst9bdHS0goODVbly5SL7bwJAYZmor5UqVdI999yjN954Q3Xr1i22+goAcD3Hjx/X/v37dejQIaWmpuavSWlpaTp58qQuXLhQ4K8tV65c/mBAiRIl9N577+ncuXMFfn/p0qVVuXLlq/b8Vz7uvfde1alTh1OX4ZGsVqvCw8PVpk0bjR492nQcAG4qMzNTe/fuveY6NDU1VSdPntSZM2cKPFm2RIkSKl26dP6/79ixQxcvXlRubu51v9/Hx0eVK1dW9erVr+nz1alTR40bN5afn1+x/D4BANcqin5kiRIl9OGHH0pyrvs9QFGrXr26kpKS1KVLF7Vv315JSUk85OsgRblflcR+FR7Hy8tLU6dOldVqVb9+/bRw4UKFhISYjuV2iqqffgX9dHiq999/X1lZWRo6dKjKlSunoKAg05FcHvUJ8AxedrvdbjoE3M+FCxe0fft27dq1S7t27dLOnTu1Z88eZWVlSfrtqaLfF3t/f//8p4quPGFUqVIlVahQoVBvW3/p0iVlZGTozJkz+SdanDp1SidOnNDhw4evWsSuXNjXqlVL999/v5o1a6bmzZvrgQceUKNGjW56wTl16pRq1Kih2bNna8CAATf/hwXchvT0dFWsWFEJCQkKDAw0HQcO4En1FTAlMjJSERER15zOD+BqVqtV33//vXbs2JG/Lu3atUsnT56U9NuNttq1a+ffLPP391f16tWvWpMqV66s8uXLq2TJkn/48/Ly8pSenn7VaQZX1qW0tLT85lVqaqouXrwoSSpfvrzuu+++/DWpWbNmevDBBznJAG7vo48+0iuvvKIdO3aocePGpuMAcANpaWn516K7d+/Wzp07deDAAdlsNnl7e+uuu+66akDmypp/55135q/5FSpUULly5Qr189LT0/PX/SvDPWfOnNGxY8euGv45fvy4pN8Gdho2bKj7778/f81v2bKlqlWrVpx/LIAR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r2+fOnWq/fz586ZjuYXs7Gz7vHnz7G3btrVLsj/yyCP2mJgYe15enulo8DApKSl2Ly8v++LFi01HAWDQ4cOH7S+++KK9QoUK9nLlytnHjh1r37dvn+lYbmP79u328PBwe4kSJezVqlWzT5gwwX7q1CnTseCh6Afif9GPLF70I+EoOTk59r59+9pLly5tX7Vqlek4RY79avFivwqTzp8/b3/44Yft/v7+9oMHD5qOc1vopxcf+ulwBlu2bLGXK1fO3qdPH5f7u0d9Kj7UJ3i4NG+j8+twuIsXL+r9999X7dq19dxzz6l169bavXu3li9frqCgIHl781eiKFStWlX/7//9P6WmpmratGnatWuXHnzwQXXp0kXr1683HQ9AMaC+Ogb1FQD+mN1uV1xcnB5++GE99thjOnfunL7++mvt3btXzz77rCpUqGA6olvw8/NTv379tGHDBm3atEl33323Bg8erHvvvVf//ve/lZOTYzoiPIDNZtPYsWPVqVMn9ezZ03QcAAbs379fTzzxhO69915FR0frtdde0y+//KKPPvpIDRo0MB3PbbRo0UJffPGFDh06pBEjRuijjz7Kv/4/duyY6XgAPBT9SMegHwlH8fX1VUxMjPr27asePXpoyZIlpiMVCfarjsF+FSZVqFBBK1euVNWqVdWxY0cdPnzYdKSbQj/dMeinwxk88sgjWrRokZYvX66RI0fKbrebjnRD1CfHoD7B09E98hBZWVmaNGmS7rnnHr3//vsaOXKkDh06pC+++EJNmzY1Hc9t+fn56cknn9SOHTu0YsUKWa1WdejQQYGBgdqyZYvpeACKAPXVDOorAFxfQkKCAgIC1KtXL/n7+2vz5s1av369evXqxfBAMWrVqpXmzZunffv2KSQkRC+88IIaNmyoL7/8Unl5eabjwY19+eWX2rFjhz7++GPTUQA4WGpqqp566ik1bdpU27dv1xdffKHU1FS9/PLLqlixoul4bqt69ep677339Msvv2jixIlatGiR7r33Xv35z3/WyZMnTccD4CHoR5pBPxKOYLFYNH36dA0aNEj9+vXT4sWLTUe6ZexXzWC/ClMqVqyo+Ph4lStXTl27dnWZBxfop5tBPx0mderUSTExMZo9e7b+/Oc/m45TIOqTGdQneCIqipvLycnR1KlTVa9ePb311lsKDw9Xamqq3nvvPVWvXt10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tcp5vfDCC1q4cKEOHTpkOgWwO9Yq51StWjW1adNG77//vukUwG5Yn1xHqVKl9Oyzz2r8+PFKS0sznQM7cPsB8mXLlunXX3/VCy+8YDoFebhy5YratGmjL774QsHBwRowYIB+++03tW7dWps2bTKdB8AJZGZmavbs2erVq5csFovpHIfB+grcGG4gd10ffPCBUlJS9Morr5hOcWvsSwAAuC72eeTGYrHok08+0Z49ezRt2jTTOQ6LAXK4EvYD51aqVCn16dNHEyZMUEZGhukcwG5Yq5xbp06dVKFCBU2cONF0CmBXrFXObciQIdq5c6e2bNliOgWwOdYn1/Pyyy/r0qVLio6ONp0CO3D7AfIJEyYoODhYtWvXNp2CPLz++uv69ddfNX/+fE2ZMkVjxozRpk2b5Ofnp969e5vOA+AEVq1apdOnT6tHjx6mUxwK6ytwY4oVKyYPDw9uIHcx58+f17hx4zR06FAFBQWZznFr7EsAALgu9nnk5a677tKLL76o1157TefOnTOd45AYIIcrYT9wfoMHD9bp06e1cOFC0ymA3bBWOTdPT089//zzmj59ui5cuGA6B7Ab1irn1qhRIz388MMaP3686RTA5lifXE/ZsmXVo0cPvffee8rMzDSdAxtz6wHyn376SevXr9fgwYNNp+AavvzyS9WpU0ehoaE5XytTpoyCg4N1+PBhffvttwbrADiDGTNm6JFHHlH16tVNpzgU1lfgxlgsFpUqVYpDZxczZswYFS5cmE8kcgDsSwAAuC72eVzLG2+8IV9fX7366qumUxwSA+RwJewHzq9KlSpq27atxo0bZzoFsBvWKuf37LPPytPTU9OnTzedAtgNa5Xze+mll7RkyRIdPHjQdApgU6xPrmnYsGE6cuQIDxO7ILceIB8/frxq166tFi1amE5BHs6fP6+LFy+qefPm//q1O++8U5K0a9eugs4C4EQSExP11VdfqVevXqZTHArrK3Bz/P39GSB3IUeOHNGnn36qN998U8WLFzed49bYlwAAcF3s87ieYsWK6T//+Y+ioqJ4EzEXqamp8vT0lLe3t+kU4JawH7iOoUOH6rvvvuPj5+GSWKtcQ/HixdW3b199/PHHSk9PN50D2BxrlWto3769qlatqg8//NB0CmAzrE+uq1q1aurQoYPeffddZWdnm86BDbntAPnZs2c1d+5cvfji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q1frt99+U79+/UynAADsbNasWYqIiJCXl5fpFAAujBvIncf777+v7Oxsvfjii6ZTAAAAANyi1157TUWKFNGbb75pOqXAXL16VZmZmdxADsApWCwWDRgwQDExMUpMTDSdAwC5qlu3rho1aqRJkyaZTgGAPA0cOFAJCQlatGiR6RQAuK5SpUqpZ8+emjhxIp/y4oRcfoB88uTJatKkie6++27TKQAAO9qxY4f279+v7t27m04B4OIYIHcO586d08SJEzVs2DCVKlXKdA4AAACAW1SsWDGNHj1aU6ZM0d69e03nFIiUlBRJYoAcgNPo3bu3srOzNXPmTNMpAJCnyMhIxcfH6/jx46ZTACBX5cuXV+vWrXnYBYDTGDRokA4ePKivv/7adApukEsPkJ86dUrLli1T//79TacAAOwsJiZGd9xxhx544AHTKQBcHAPkzuGdd95RsWLF9Nxzz5lOAQAAAGAjvXr1Uv369TV48GDTKQWCAXIAzqZEiRKKiIjQ9OnTTacAQJ46dOigUqVKKSoqynQKAOSpf//+2rx5s/bv3286BQCuq1atWmrYsKGmTJliOgU3yKUHyGfOnClfX1+1bdvWdAoAwI4yMzM1f/589ezZ03QKADfAALnjO3r0qKZMmaIRI0aoaNGipnMAAAAA2IjFYtGHH36o9evXa/HixaZz7I4BcgDOqE+fPtq7d6927dplOgUAcuXt7a0ePXooKipKVqvVdA4A5KpZs2aqXLkyD7sAcBr9+vXT4sWLdfLkSdMpuAEuPUA+Y8YMde3aVUWKFDGdAgCwo1WrVuns2bPq1q2b6RQAbqBUqVIMkDu4t956S+XKlVPfvn1NpwAAAACwsQYNGigiIkJDhgzR1atXTefYFQPkAJxRgwYNVLt2bX3xxRemUwAgT3369NHhw4e1ceNG0ykAkKtChQqpd+/emjFjhjIyMkznAMB1derUSSVLltSMGTNMp+AGuOwA+bfffqtffvlFvXv3Np0CALCz2bNnq1GjRqpatarpFABugBvIHduBAwc0c+ZMjRo1St7e3qZzAAAAANjB2LFjdfr0aX300UemU+wqOTlZklS8eHHDJQBwY5566inNnj1bqampplMAIFd33XWXHnroIR52AeDQnnrqKZ07d07Lly83nQIA11W4cGF1795d06ZN41NenIjLDpB2jbJ8AAAgAElEQVR/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vZnE5gK4px9//FE//fSTIiIiTKc4PdZX4OYFBATo/PnzpjPcVlZWlkaPHq2ePXuqZs2apnNgI7NmzfrXw2F/3UTHm3MAADi39evX68yZM//6emJior7++msDRXBlXbt2Vb169TRs2DDTKbeMG8jhajiPdG8RERGaP38+H10Oh7ds2TKlpqb+6+vHjh3Trl27DBShoNxzzz26++672ZPgFDhPd19du3bViRMntGnTJtMpQK5Yn/C/evToobi4OCUnJ5tOQS5cYoA8NjZW3t7eatWqlekU2EF8fLzS0tL+9fX09HR9+eWXPFUHuJk5c+botttuU8OGDU2nOD3WV+DmBQYGMkBuUFRUlH7//XcNHz7cdApsJCUlRUuXLs31BtKTJ09q27ZtBqoAAICtREdH/+u2WUny8vLS3LlzDRTBlVksFo0bN04rVqzQunXrTOfcEgbI4Wo4j3Rv3bp10+nTp7VhwwbTKcA1zZo1Sx4eHv/6upeXF4PFbiAiIkKxsbHKzMw0nQLkifN091azZk3Vq1ePPQkOifUJuencubOysrK0aNEi0ynIhUsMkM+bN09t2rSRr6+v6RTYQV4v0qU/b5/fvHlzARcBMCU7O1tz585VRESELBaL6Rynx/oK3LzAwEAlJyfn+qYn7CsjI0NjxoxR3759Va1aNdM5sJHFixf/42OB/4435wAAcG5paWlasGBBrm8cZWRkaMGCBbp69aqBMriyxx57TMHBwXr11Ved9nar9PR0paenM0AOl8J5pHurXr266tevz2t8OLSkpCQtW7Ys1+HhjIwMRUdHc4u+i+vSpYvOnz+vtWvXmk4B8sR5Ov562CWv/w4AU1ifkJtSpUopLCxM0dHRplOQC6cfID916pQ2b96szp07m06BHVy8eFGrVq3K8wlfLy8vzZ49u4CrAJiyfft2HT58WBEREaZTnB7rK3BrAgMDJUkJCQmGS9zPtGnTdPLkSb322mumU2BDMTExKlQo95enGRkZiomJ4dYfAACc1OLFi5Wamprnr1++fFmrV68uwCK4i/fff1/fffedYmNjTafclKSkJEmSn5+f4RLANjiPhPTnsNPChQt5eAwOa9GiRdc8gzp//rw2btxYgEUoaNWqVdNDDz3EgBscGufpiIiIUGJiIucpcDisT8hLjx49tH79eh07dsx0Cv6H0w+Qz507V8WKFVNI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ZWdnS/pz/65YsWLO687KlSvrvvvuk7e3t3x9fSX9uV9brdac16vJyclKT0/PeZPpyJEjSkhI0NGjR5WSkiLpz9erlStXVp06dXL2+Xr16un2228385cBtzR06FBNnTpVMTEx6tOnj12/V3p6utLS0nh9CYfGeSQKQo0aNVSxYkWtW7eOAXLcMH5+RUFp2rSpRowYoV9//VU1atQwnQMnw3k6CkqzZs20du1a0xlwIqxPMK1FixaaNGmSzp49q6CgINM5Ls2S/dcrJAcSFhamokWLKjY21nQKblJ2drZ++uknffPNN9q6dau2bNmiP/74Q5J022235Rzu1apVS9WqVVOVKlVUvnx5m358bWpqas5NF4cOHdJPP/2kvXv36ueff1ZKSop8fHxUv359NWrUSI0aNVLjxo3l7+9vs+8PFITExESVLFlSK1euVHBwsOmcGzZw4EDt2LFDu3btMp3iNFhfAcfz/fffq379+jpw4IDuuOMO0zkOqW/fvtq4caP2798vT0+HfIYVN+n06dPatGlTzp60e/duZWZmqkSJEjl70j333KOqVauqatWqqly5snx8fGz2/TMzM3X8+PGcfWnfvn05bwqeOXNGFotFNWrUUMOGDdW4cWM1btyY/5+iQISEhKhixYqaPn266RQAuClXrlzRtm3btGXLFm3dulXbtm1TYmKivLy8VLNmzZw3cO64446cmxb/Ggi0lbNnz+bcaHTgwIF/DChmZWWpdOnSatiwoRo1aqSGDRvqwQcf5KZH2NXTTz+tDRs22P11zblz5xQUFKQNGzbo0Ucftdv3AfKL80iY1LNnTx07dizn9mcgL/z8ClMyMzMVEBCgd999VwMHDjSdAwfHeTpM+eqrr9SmTRudPHmS252RK9YnOJrk5GQFBAToyy+/VNeuXU3nuLLjDjdAzg/YzuvixYtau3atVqxYoZUrV+rUqVPy8/NTgwYNcl4M169f3/hHb1qtVh08eFDbt2/POUTYt2+fLBaLHnroIYWGhiokJET33XefTQ84AXtw9gHy6tWrq1u3bho1apTpFIfG+go4tuPHj6tSpUravHmzGjVqZDrH4Rw9elR33HGHPvvsMz311FOmc3CLMjMztW3btpw9affu3fLw8FDdunVz3vx66KGHVKVKFdOpOnv2rHbu3Jlz2LVz506lpqaqWrVqCgkJUWhoqB5/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Xapbt66WL18up9Op119/XT169GCY9CutW7fWM888o927dys5OVm9evXS008/rXr16mnYsGH6+uuv5Xa7TccEAAQp+s2Sod+EN7hcLm4mRsDjfCgZzgfAjMzMTL344otq3ry5unXrpp07d2r69OnKyMjQ0qVLNXLkSJbHf6VWrVq69957tWrVKh0+fFj/+Mc/tHLlSsXFxaldu3Z64403dOrUKdMxAdthnl4yzNMB/6E+lQz1CTg/FsiD3KlTpzR9+nQ1btxYN954owoKCvTRRx/p4MGDmjJlipo3b246YsCLjIzUDTfcoM8//1yHDh3Sgw8+qHnz5qlp06bq0qWLlixZIj9c9I8At379eklSu3btvPK83NxcFRUVqVKlSl55HryP+lp21NfgU1RUpEOHDqlBgwamo9iSw+FQSkqK6RgwwO12a8mSJerdu7ccDodWrFihRx99VIcOHdK8efPUt29fhYeHm44Z8Nq2batXXnlFLpdLc+fO1U8//aS+ffuqadOmmj59us6cOWM6IgAgSNBvlh39JkqLBXIEMs6HsuN8AHwvLS1N48aNU0xMjCZPnqyrrrpKGzduVFJSku666y5Vr17ddMSAV6dOHU2YMEE7duzQhg0bFBcXpwkTJqhu3bq6++67tWvXLtMRAUtjnu4dzNMB76M+eQf1CTgXC+RBat++fXrggQdUr149PfHEE7rpppu0d+9eff311xo6dCgfyVdK0dHRevjhh7V792599tlnioiI0ODBg9WmTRu9//77KigoMB0RhiQmJqpJkyaqWbOmV5539i8s3EAeeKivvkF9DQ7p6ekqKChggdxHWCAPPmfOnNHMmTN1+eWX67rrrlPFihW1cuVK7dy5Uw8//LBq1aplOqIlRUZGaujQofr666+1detWXX311XrkkUcUExOjJ554QkePHjUdEQBgU/SbvkG/iZJwOp2Kjo42HQM4B+eDb3A+AN61YsUK9e/fX82aNdPXX3+t6dOny+Vy6Y033lBcXJzpeJbVpk0bvfHGGzp8+LAmTZqk5cuXq2XLlvrTn/6k5ORk0/EAS2Ge7hvM04Gyoz75BvUJ+AUL5EEmLS1Nt956qy677DJ9+umnmjRpkg4ePKjnn39eMTExpuPZRlhYmAYNGqSVK1cqOTlZzZo10+23364mTZro9ddfV35+vumI8LPExER16NDBa8/L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gZwTyK0PC+TSycrKuv7CXEtt3rwZjz76KNzd3SVOReYSEBCAzMxM0THITCZNmoQBAwZgypQpMBqNouOQmdXU1KCurk7yAnlFRQU8PDwkvaati4yMxLlz51BYWCg6ClkptVqN8+fP4+rVq6KjkBXi/o5upbGxEWVlZejcubPoKES39MMPPyAtLQ3x8fGio5BgWq0W69atw5IlS9ChQwfRcagFONXXsgwbNgw//vgj9Hq96ChEFqOqqgoXL17kVF8L165dO3Ts2BFZWVmio0imuroabm5uomOQldBqtXBzc0P37t1FR7F6bm5uCA4Oxi+//CI6CpHN4flPXn369AEAZGdnC05CREQkL04gp9tqKpBzklrrFBYWory83KQJ5FqtFseOHcNTTz1lhmRkLgEBASgvL8elS5dERyEzUCqVWL9+PX755Rds3bpVdBwys9LSUgBggdwChIeHQ6VS4eeffxYdhaxUSEgIjEYjnyBBJuH+jm6luLgYRqOR52ayaMuXL8ff/vY3hIaGio5Cgk2bNg39+/fHpEmTREehFuJUX8sybNgwlJWV4fjx46KjEFkMTvW1Hn379rWpAnlNTQ3atGkjOgZZCa1Wi7vuugtKpaxVCZsVERHBAjmRGfD8J68ePXrA2dkZZ86cER2FiIhIViyQ021dvnwZjo6O8PT0FB3FqjU9CtCUAvmnn36Krl274r777pM4FZlT05QVrVYrOAmZS1hYGCZPnowZM2agvLxcdBwyI3MVyCsrK/n7tYU8PDxw991349ChQ6KjkJXq1q0bOnTogLS0NNFRyApxf0e3UlxcDIAfvCbLdeTIEaSkpGDWrFmio5Bgn3/+OXbv3o233noLKpVKdBxqgerqauTm5nKqrwXp168funTpguTkZNFRiCyGVquFi4sLevToIToK3YatFcirq6tZIKdm02g03FNJKDw8HOnp6XwSPZGEeP6Tn0qlQs+ePTmBnIiI7A4L5HRbly9fRseOHaFQKERHsWpZWVnw9PSEj49Pi7/3v//9L8aMGcNPwluZzp07o3379tBoNKKjkBktWbIERqMR8+bNEx2FzMicE8hZIG+5yMhIFsipVYKDg5Geni46Blkh7u/oVoqKigCwQE6Wa8mSJRg0aBDuvfde0VFIoJqaGsycORPjx49HdHS06DjUQlqtllN9LYxCoUBMTAz27NkjOgqR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fxQsJFKW2rVr48knn8SCBQv4Kv9KUqlUGD9+PA4dOoSbN2+iXbt2ZSMvIiIiovtlMBjKXqB29epV/PDDD8JFREQkzWazITk5Ge3atZNOqTI5OTkckDuwzMxMzJkzByUlJdBqtThx4oR0EjmZl19+GRqNBjabDYmJidI5RIq2ePFixMbGIigoSDqFfgcvkJM927dvH7Zt24bS0lKoVCpuVZxMcXExL5ATkSJotVpeIK8Ahx2Qb9iwARaLBVarFbt27cLJkyelkxSncePGHJALi4iIQEZGBq5duyadQlRm5MiRaNOmDVxc/v+XkOLiYthsNvz444/o06cP2rZti6+++opfkImqwHPPPYfU1FTs27dPOsWhhYSE4NChQxg1ahRGjBiBuLi4sstbRERERJW1bt06aLVaALfeGnHx4sXCRUREJC0jIwN5eXlo3769dEqVycnJgY+Pj3QGVdLLL798xz9zQE41af369Th06FDZ9beMjAyYzWbhKiJlys/Px8aNGzF69GjpFPoDHJCTPXvllVeg0WgA3Dosd+zYMeEiqklms5kDciJSBA7IK8YhB+Rnz55Fenp62T9rNBosWLBAsEiZbl8gLy0tlU5xWhEREbDZbHxLP7IrarUa77///j2vId/+ApySkoLRo0fD19cXH374IfLy8mo6k0gxwsPDERUVhYULF0qnODw3NzfMnj0b69evx/fff4+oqCgcPXpUOouIiIgc2MqVK8seB5WUlGDDhg3Izs4WriIiIklJSUlQq9UICwuTTqkS165dg9ls5oDcQe3fvx8bN24s+36luLiYQyCqMVarFVOnTr3jGI3VakVqaqpgFZFyrVq1CjabDcOGDZNOod9RWloKi8XCATnZpe+++w4HDx4se9GXxWLBkSNHhKuoJlksFg7IiUgRNBpN2dcz+nMOOSDfvHkz1Gp12T8XFxdjwYIFKCgoEKxSnqZNm6K4uJhPfAry9fVFvXr1+ANdsjtDhw5FaGjoHX8X/7fS0lLYbDZcvHgRr7766l1XboioYsaPH481a9YgJydHOkURBg8ejKNHj6Jhw4bo1KkTPvnkE75gjoiIiCosLS0NJpPprl//5ptvBGqIiMheHD16FMHBwXB3d5dOqRJXrlwBADRo0EC4hCrKZrMhPj7+rp/hpqSkCBWRs/nyyy+RkZFxx8/dXFxceDSJqJosXrwYQ4YMgZeXl3QK/Y6CggLYbDbUrl1bOoXoDqWlpfjHP/5xx/eNNpuNA3InwwE5ESkFL5BXjMMOyP/XzZs3sXr1aoEa5fL19QUAnDlzRrjEealUKrRt25YDcrI7KpUKM2bMgNVq/cM/p9Vq0bNnT8ydO7eGyoiUacSIEdDpdFi8eLF0imI0b94cu3btwhtvvIEpU6agd+/e/J6HiIiIKmTdunXQarV3/JrVauU7xxARObmkpCS0b99eOqPKnD9/HsCtx9HkWFatWoXExMS7rm7l5+fj6tWrQlXkLAoLCzFt2rS73slUq9VCr9cLVREpl8FgwMGDBzF27FjpFPoD169fBwDUrVtXuIToTsuXL4fRaLzruf/Lly/z4KQTsVgs0Ol00hlERPeNA/KKcbgBudlsxk8//XTP0eLs2bMFipSrRYsWUKvVOHXqlHSKU4uIiMDRo0elM4ju0q9fP3Tq1Akajeaev6/VahEREYHvvvuODzSI7lOdOnUQFxeHefPm8VJ2FVKr1XjjjTdw5MgR/Pbbb2jbti0WLFggnUVEREQOYtWqVXcNsmw2G44dO8arikRETuzo0aNo166ddEaVOX/+PFxdXeHj4yOdQhVgsVgwdepUqFSqe/4+r5BTdZs1axays7PvGpCbzWYkJSUJVREp18KFC9G6dWt0795dOoX+wI0bNwDces6HyF5YLBa88cYbv/t9I3/G5Tx4gZyIlEKj0dz13A39PocbkP/0008oKiq669dLS0uRnJyMxMREgSpl0mq1aNKkCU6fPi2d4tTatWsHg8HAV8aQXZo5c+Y9v+iqVCo0bNgQ27dv59uwEVWRiRMnIjMzE9u3b5dOUZywsDAcOHAAEyZMwIQJE9CvXz9cvHhROouIiIjs2Llz53D8+PG7BjEA4OrqimXLlglUERGRtLNnz+Lq1auKGpBnZWWhSZMmcHFxuKeTnNonn3yCrKysex4i0Gq1OHHihEAVOYvs7Gx88MEHv/sOpsnJyTVcRKRsZrMZX3/9NcaNG/e7A1CyDxyQkz2aN28eLly48LvfN/LrtvMwm80ckBORIvACecU43E/8tm7d+rtfsLRaLebOnVvDRcrWqlUrDsiFRUZGoqioCAaDQTqF6C5du3ZFz54973jbdq1WCy8vL1y4cAFLliyRiyNSmKCgIDz00ENISEiQTlEkNzc3zJgxA3v37sXJkycRERGBDRs2SGcRERGRnVq7di3UavU9f89isWDRokX8ASURkRP65ZdfoNVqERkZKZ1SZbKystCsWTPpDKqA7OxsvPPOO7873gXAATlVq/feew9ms/l3fz8nJwdXrlypwSIiZVu3bh3y8vIQFxcnnUJ/4vr16wCAunXrCpcQ3XLjxg289dZbv/t9o81m44DcifACOREpBQfkFeNwA/INGzbAYrHc8/eKi4uxYsUK/PbbbzVcpVytWrXCqVOnpDOcWnBwMGrXro0jR45IpxDd039fIddoNKhfvz6OHj2KTz/9FC+//DKmTp0qXEikHBMnTsSWLVv4tbkaxcbGIikpCYMGDcLgwYMxfPhw5ObmSmcRERGRnVm1atUfjrJyc3Oxbdu2GiwiIiJ7sHv3bkRFRSnqquT58+fRtGlT6QyqgDfffPN3n0cDbj2XduzYsRosImdy+vRpfP7553/6duF6vb6GioiU74svvsCAAQPQpEkT6RT6E7xATvZm1qxZyM/P/93fLykpweHDh2uwiCRZLBbodDrpDCKi+6bRaP70MSn9fw41IE9LS8PZs2f/8M+Ulpby4m0VatmyJS+QC1Or1YiIiOCAnOxWVFQU/vKXvwAAvLy8sHfvXvj6+uKFF15AQkICPvzwQ7zwwgv3fGt3IqqYgQMHokmTJliwYIF0iqJ5eHhg/vz5+Pbbb7F79260a9cOO3bskM4iIiIiO3H58mUcPnz4Dx/jqNVqfPnllzVYRURE9uDnn39G9+7dpTOqFC+QOxaTyYT58+f/6aWtlJSUGioiZ/PGG2/86eefVqvF8ePHa6iISNkyMzPx888/Y8yYMdIpVA43btyAi4sL3N3dpVOIkJ2djZkzZ/7hgQTg1k7rj95ZhJSDF8iJSCl4gbxiHGpAvnXrVqhUqj/8M1arFZ999hmHilWkVatWOH36NP//FBYVFYXExETpDKLf9f7776N+/frYtWsX/Pz8yn792WefxYoVKzBv3jyMHj2ar/Aiuk8ajQbjxo3DF198gaKiIukcxRs0aBD0ej2io6PxyCOPYNy4cX94iYGIiIicw7ffflv2cxKNRgOtVgu1Wg1XV1fodDrodDrYbDZ8//33yM7OFq4lIqKacunSJZhMJsUNyHmB3LGcO3cOTz31FMLCwsrGHyqVCjqdDmq1uuzP5ebm8vsUqnIWiwXNmzdH//794evrCxeXW09D/+/noNVq5YCcqIp88cUXaNq0KR599FHpFCqHGzduoHbt2mV/PxJJMhgM6NmzJ1q1anXH94murq53jIitVitOnDghkUg1jANyIlIKXiCvGI10QEV8//33ZU/Q6XQ6uLu7Iz8/Hw888AD8/Pzg7e0NDw8PeHh44PLly3jggQeEix1f69atUVRUxCsjwiIjI5GQkACz2cy3jCG7FBoaCr1ej8aNG9/1e0888QTq1q2LYcOG4dq1a1i1ahU/j4nuw/jx4/Huu+9izZo1GDlypHSO4jVs2BBr1qzBpk2b8Nxzz2HLli2YO3cuBg0aJJ1GREREQnJzczFs2DAAt952WqvVYvXq1XjwwQfRtWtXqFQqeHl5Abh1zcnHx0cyl4iIasjPP/8MjUaDzp07S6dUGavVisuXL3NA7kB69+6N3r17A7j18UtOTkZ0dDQee+wxFBYWIikpCefOnUNpaSlSUlIU94IHkuXq6ooPPvig7J/NZjMmTpyIHTt2YMyYMThx4gSOHz+OzMxMHDt2TLCUSBlKSkqwdOlSjB079o7xJ9mv69evo06dOtIZRACAHj16oEePHgCA4uJiZGZmIjo6Gj179oSPjw/0ej1MJhPy8/ORnJyMdu3ayQZTtTObzRyQE5Ei8AJ5xTjUgHzBggWoU6cOPDw8oNHcSm/dujWee+45vPrqq8J1yhQQEAAAOHnyJAfkgiIjI2GxWGAwGBAZGSmdQ3RP9xqP39a/f39s27YNAwYMwJAhQ7B27VrUqlWrBuuIlOOBBx7A4MGDkZCQwAF5DRowYAC6du2KKVOmYPDgwRg2bBgSEhJQv3596TQiIiKqYf/4xz/u+rWDBw+iR48eeO+99wSKiIjIHuzevRuRkZGoW7eudEqVuXjxIqxWK58bcFBqtRpFRUWw2Wz44IMP0KJFCwBAYWEhjEYjGjRoIFxISqfT6ZCTk4OOHTvizTffLPt1q9WKrKwswTIiZdi8eTMuXryIuLg46RQqpxs3bnBATnZJq9Wifv36uH79OiZNmoQ+ffqU/V5OTg6vuDoJXiAnIqXggLxiHOq9cVq0aAFvb++y8TgAeHh44Nq1a4JVytaoUSPUq1cPJpNJOsWpBQUFoW7dukhMTJROIaq0bt26YdeuXTh06BAeeeQR5OfnSycROayJEydi//79OHr0qHSKU/Hy8sL8+fOxZcsW7N+/HyEhIVi3bp10FhEREdkBV1dX/kCSiMjJ/fzzz2UX/JTi9sCTF8gdl16vh4eHB5o3b172a7Vq1UL79u3v+DWi6mI0GhEcHHzHr6nV6rIXNBBR5X355Zfo06cP2rRpI51C5XTjxg1FvdiQlOX2JigwMPCOX69fvz4aNWokkUQ1jANyIlIKjUbDFz9VgEMNyO/F09OTA/JqFhAQwAG5MBcXF0RERODIkSPSKUT3JTIyEnv27EFmZiZ69uyJq1evSicROaTu3bsjLCwM//73v6VTnFK/fv2g1+vRt29fDB06FE8++ST/PiMiInJyrq6usFgs0hlERCTkypUrMJlM6N69u3RKlTp//jxcXFz+8J0Hyb4ZDAaEhoZCpVJJp5ATslgsyMzMvGtATkT378yZM9i6dSvGjRsnnUIVwAvkZM9MJhNq1arFdx9yYhyQE5FS8AJ5xTj8gJwXyKtfYGAgB+R2ICoqigNyUoTg4GDs27cP165dQ7du3XD+/HnpJCKH9MILL2DlypW4dOmSdIpT8vLywuLFi7F161b88ssvCA4OxtKlS2Gz2aTTiIiISAAH5EREzm379u3QarXo0qWLdEqVysrKQsOGDTkicGB6vR5hYWHSGeSk0tLSUFJSwgE5UTWYP38+GjZsiIEDB0qnUAXwAjnZM5PJhMDAQLi4OPyMjCqJA3IiUgqtVssL5BXg8F/5PTw8kJ+fL52haByQ24fIyEjo9XoUFRVJpxDdt5YtW2Lv3r1lT6ylpaVJJxE5nJEjR8LLywvz5s2TTnFqjz76KIxGI8aOHYsxY8agR48eSE1Nlc4iIiKiGsYBORGRc9u0aRO6d++uuEFQVlYWmjZtKp1B9yElJQWhoaHSGeSkjEYjXFxcEBAQIJ1CpCgWiwWLFi3Cs88+C61WK51DFcAL5GTPUlNTERgYKJ1BgsxmMwfkRKQIGo2GF8grQBEDcl4gr16BgYE4c+YMh8vCoqKiUFxcDL1eL51CVCUeeOAB7N69G40bN0a3bt1w/Phx6SQih6LT6TBu3DgkJCTwa7Qwd3d3zJgxA4mJiSgsLES7du0wffp0mM1m6TQiIiKqIRyQExE5r+LiYuzYsQMDBgyQTqly58+f51vYO7ALFy4gJyeHF8hJjNFoRMuWLVGrVi3pFCJFWbt2LXJycjB27FjpFKqg69evc0BOduv2BXJyXhaLBTqdTjqDiOi+abVaDsgrwOEH5J6enhyQV7OgoCCUlpbyQrCwgIAAeHp6IjExUTqFqMrUq1cPO3bsQGhoKHr06IH9+/dLJxE5lIkTJyIvLw+rVq2STiEAERER+PXXXzFjxgx8/PHHCAsLw08//SSdRURERDWAA3IiIue1Z88e5OXloV+/ftIpVe7s2bMckDuw28doQkJChEvIWRmNRgQHB0tnEClOQkICBg4cyHcJcUB5eXnw8vKSziC6S0lJCTIzMzkgd3IWi4UXyIlIEbRaLUpKSqQzHIbDD8jr1q3LAXk18/Pzg1arRUpKinSKU1OpVGjXrh2OHDkinUJUperUqYPNmzeje/fu6NOnD3bs2CGdROQwGjdujOHDh2PWrFmw2WzSOYRbb4cUHx+P48ePo02bNujVqxfi4uKQk5MjnUZERETViANyIiLntXnzZoSEhKBNmzbSKVUuPT0dfn5+0hlUSQaDAY0bN4aPj490CjkpDsiJqt6JEyewb98+TJgwQTqFKoEDcrJXGRkZKC4u5oDcyXFATkRKodVq+XxNBTj8gNzT0xP5+fnSGYqm0+ng7+9fdq2C5ERGRnJAToqk0+mwZs0aDB06FAMGDMD69eulk4gcxosvvgi9Xo+ff/5ZOoX+S6tWrbB161YsX74c27dvR1hYGFasWMGhPxERkUJxQE5E5Ly2bNmCAQMGSGdUuRs3buDy5csckDswg8GAsLAw6QxyUqWlpTh58iQH5ERVbM6cOfD390fPnj2lU6gScnNzOSAnu2QymaBSqRAQECCdQkKsViuKi4vh5uYmnUJEdN+0Wi2Ki4ulMxyGww/IPTw8eIG8BoSFhXFAbgciIyNhMBhQWFgonUJU5TQaDRYtWoRRo0Zh+PDhWLJkiXQSkUNo3749unTpgtmzZ0un0D08+eSTMBqN+Otf/4q4uDj07NkTJ06ckM4iIiKiKsYBORGRczIajUhLS8Nf/vIX6ZQql5aWBpvNBn9/f+kUqiS9Xo/Q0FDpDHJSZ86cQUFBAQfkRFXo+vXrWLFiBSZNmgSVSiWdQ5WQn5+PevXqSWcQ3cVkMqFJkyaoW7eudAoJMZvNAG4d/iMicnSurq4ckFeAIgbkhYWFfJKumnFAbh+ioqJQUlKC48ePS6cQVQsXFxfMmzcPL730Ev72t79xEEtUTv/3f/+HTZs2ISMjQzqF7sHb2xvz5s3D4cOHUVhYiPDwcMTHx+P69evSaURERFRFOCAnInJOmzdvRv369dGxY0fplCqXnp4OtVqNVq1aSadQJVitVhiNRg7ISYzRaAQABAUFCZcQKcdXX32F4uJijBw5UjqFKqGgoABms5kXyMkumUwmBAYGSmeQoNsDcl4gJyIl0Gq1fL6mAhQxIAfAAU41CwsLw5kzZ3jtXZifnx+8vLyQmJgonUJUbVQqFf71r3/hgw8+wP/93//hrbfekk4isnuDBg1Cy5Yt8dlnn0mn0B9o3749fv31V3z55Zf4+uuvERQUhK+++ko6i4iIiKoAB+RERM7p22+/Rf/+/aFWq6VTqlxaWhpatGgBV1dX6RSqhIyMDBQUFCAsLEw6hZyU0WjEAw88wEu7RFVo/vz5eOqpp+Dt7S2dQpWQl5cHAByQk13igJyKiooA8AI5ESkDn6+pGIcfkHt6egIAh83VLCwsDDabDSkpKdIpTk2lUiE6OhoHDx6UTiGqdlOmTMHcuXPx9ttvY+rUqbDZbNJJRHZLrVZj4sSJWLRoEfLz86Vz6A+4uLggLi4OJpMJQ4cOxTPPPIOePXuWXWUiIiIix8QfSBIROZ8zZ87gwIEDGDFihHRKtcjIyICfn590BlWSwWCAi4sLgoODpVPISRmNRn7+EVWhPXv2QK/X47nnnpNOoUrKzc0FwAE52ScOyIkXyIlISVxdXVFcXCyd4TAcfkB++wI5x1LVq2XLlvDw8IBer5dOcXoxMTEckJPTmDBhApYtW4ZZs2Zh4sSJKC0tlU4islvjxo2DSqXCokWLpFOoHLy9vTF79mzs3r0bOTk5aNeuHV577TXcuHFDOo2IiIgqgQNyIiLns2LFCvj4+KBXr17SKdUiLS0N/v7+0hlUSXq9Hm3atEHt2rWlU8hJcUBOVLUSEhIQExODyMhI6RSqpNsXyPnODGRvfvvtN1y9ehVBQUHSKSSIF8iJSEm0Wi2fr6kAxQzIeYG8eqlUKjz44IM4fvy4dIrTi4mJQVpaGnJycqRTiGrEk08+iXXr1mHJkiV4+umn+Soxot/h4eGBUaNGYfbs2bBardI5VE5dunTBkSNHMHPmTCQkJCAoKAjLly/nuy4QERE5GP5AkojI+axcuRLDhg2DVquVTqkW6enpaNOmjXQGVZLBYEBoaKh0Bjkxk8nEATlRFbl69Sq+/fZbTJgwQTqF7sPtATkvkJO9MZlMAMAL5E7u9gVyDsiJSAm0Wi23ZRXAATmVW/v27ZGUlCSd4fRiYmJgs9lw+PBh6RSiGjNgwABs3boVmzdvxpAhQ1BYWCidRGSXXnjhBZw7dw4bN26UTqEK0Gg0iI+PR0ZGBh577DGMHj0aHTp0wP79+6XTiIiIqJw4ICcici4nTpyAwWDAiBEjpFOqxc2bN3Hp0iVeIHdgBoMBYWFh0hnkpC5fvoycnBwOyImqyIIFC+Du7o5hw4ZJp9B9yMvLg6urK9zd3aVTiO5gMpng5uaG5s2bS6eQoNsXyN3c3IRLiIjuH98xtmIcfkBeq1YtuLq6ckBeAyIjI3Hs2DGUlJRIpzi1Bg0aoHXr1jhw4IB0ClGN6tGjB3bu3In9+/ejb9++/Huf6B78/PzQv39/zJ49WzqFKsHb2xuzZ89GYmIi3N3d0blzZ8TFxeHSpUvSaURERPQn+ANJIiLnsnz5cjRv3hyxsbHSKdUiLS0NNpsNfn5+0ilUCWazGenp6bxATmKMRiMAcEBOVAWsViu++OILjBkzhsNjB5ebm8vr42SXTCYTAgICoFarpVNIEC+QE5GS8OBPxTj8gBy4dYU8Pz9fOkPxIiMjUVBQgNTUVOkUpxcTE4ODBw9KZxDVuOjoaOzZswdpaWno1asXsrOzpZOI7E58fDz27NnDd6pwYBEREdi9ezc2btyIvXv3ws/PD9OnTy/74Q0RERHZHw7IiYicy5o1azBixAi4uCjiKZa7pKenw8XFBa1atZJOoUo4ceIESkpKOCAnMUajER4eHmjcuLF0CpHD27JlC86cOYNx48ZJp9B9ysvLQ7169aQziO5iMpkQGBgonUHCbj8HyQvkRKQErq6uKC4uls5wGIr46aaHhwcv0daAkJAQuLm54ciRI9IpTi8mJgaHDh2CzWaTTiGqcQ8++CD27duH3NxcdOvWDVlZWdJJRHalV69eCA8Px5w5c6RT6D4NGDAAKSkpePnll/Gvf/0LYWFh2LBhg3QWERER3QMH5EREzmP//v1IT0/HiBEjpFOqTXp6Opo3b87xgIMyGAzQ6XTw9/eXTiEnZTQaERwcDJVKJZ1C5PASEhLw8MMPIyAgQDqF7lNeXh4vkJNdSk1N5YCcUFRUBIAXyIlIGfh8TcUoZkB+/fp16QzF02g0CAsLQ1JSknSK0+vYsSN+++03pKWlSacQiWjVqhX27t0LtVqNrl27IiMjQzqJyK48//zzWLlyJV9goQDu7u546623YDQaERkZiSFDhqBHjx58QR8REZGd4UULIiLnsWzZMgQHByMiIkI6pdqkp6fDz89POoMqSa/XIzg4GBqNRjqFnNTtATkR3Z+MjAxPgax2AAAgAElEQVT88MMPmDBhgnQKVQEOyMkeWa1WZGZmckBOZRfIOSAnIiXQarV8vqYCFDMgz8/Pl85wCpGRkRws2YGIiAjodDocPHhQOoVITOPGjbF79240aNAAXbt2hV6vl04ishtPP/00vL29MX/+fOkUqiK+vr5YuXIlDh48iNLSUkRHR2P48OE4ffq0dBoRERGBFy2IiJxFYWEhVq5ciTFjxkinVKu0tDRer3ZgBoMBYWFh0hnkxDggJ6oa8+bNQ9OmTdG/f3/pFKoCeXl58PT0lM4gusOpU6dgNps5ICcUFRVBq9XCxUURM0IicnK3D/7YbDbpFIegiL/5PT09ce3aNekMpxAZGYmjR4/CarVKpzg1nU6HiIgIDsjJ6Xl7e+OHH35AmzZt0KNHD/43QfQfOp0O48ePx7x581BQUCCdQ1UoOjoae/bswcaNG5GUlIQHH3wQU6dO5ffCREREwlxdXVFSUoLS0lLpFCIiqkYrV65EQUEB4uLipFOq1cmTJ3mB3IHp9XqEhoZKZ5CTunbtGi5cuMABOdF9KigowOLFizF+/Hi+o4RC5OTkoEGDBtIZRHdITU0FAL54lGA2m+Hm5iadQURUJbRaLWw2G0pKSqRTHIIiBuQeHh4czdSQ6OhoFBQUICUlRTrF6cXExHAsS4RbLyLavn07OnTogN69e2Pnzp3SSUR24e9//ztu3LiBxYsXS6dQNRgwYABSUlLw9ttvY/78+QgMDMSCBQv4IIiIiEiIq6srAPAKORGRwi1cuBBDhgxR9PgnOzsbly5d4gVrB5Wfn4+srCwOyElMamoqbDYbB+RE92nZsmW4ceMGxo0bJ51CVSQ7Oxs+Pj7SGUR3MJlMaNy4Mby8vKRTSJjZbIZOp5POICKqEny+pmI4IKcKCQ0NhaenJ3799VfpFKcXExODY8eOobCwUDqFSJy7uzs2btyIvn37on///tiwYYN0EpG4hg0bYtSoUfj44485KlYonU6HV155BRkZGRg1ahReeOEFhIaGYs2aNXw7JiIiohrGH0gSESmfXq/HgQMHFD/k0uv1AMABsoPS6/Ww2Wx8AQCJMRqN0Ol0aNWqlXQKkcOy2WyYPXs2nn76aTRq1Eg6h6pIdnY26tevL51BdAeTyYTAwEDpDLIDRUVFvEBORIpx+/ma4uJi4RLHoJgBeX5+vnSGU1Cr1ejQoQN++eUX6RSnFxMTg+LiYiQlJUmnENkFV1dXrFy5EiNHjsTjjz+O1atXSycRiZs8eTLOnTuHtWvXSqdQNfL29saMGTNgMpnQvXt3jBgxAuHh4VizZo10GhERkdPggJyISPkWLlyINm3a4KGHHpJOqVZ6vR7e3t5o0qSJdApVgl6vh6enJ5o1ayadQk7KaDQiICAAarVaOoXIYW3fvh1GoxHPP/+8dApVEZvNhpycHA7Iye5wQE638QI5ESmJVqsFwOdryksxA3JeIK85sbGxvEBuB9q0aYOGDRvi4MGD0ilEdkOtVmPBggV4/vnn8eSTT2LhwoXSSUSiWrdujSFDhmDGjBm8SO0EfH19MX/+fBw7dgxBQUEYPnw4unTpgr1790qnERERKR4H5EREylZYWIgVK1Zg/PjxUKlU0jnVymAw8Hq1AzMYDAgNDVX85ynZL6PRiODgYOkMIoc2e/Zs9OrVC+Hh4dIpVEXy8/NRXFwMHx8f6RSiO3BATrdxQE5ESsIL5BXDATlVWGxsLDIzM3Hx4kXpFKcXHR3NATnR/1CpVPjoo4/w3nvv4dlnn8VHH30knUQk6rXXXsPx48exY8cO6RSqISEhIVi9ejV+/fVXaLVadOvWDX369MGxY8ek04iIiBSLA3IiImVbu3Ytrl+/jpEjR0qnVDsOyB2bXq/nx49EcUBOdH9OnjyJH374AfHx8dIpVIWys7MBgANysit5eXm4fPkyB+QEACgqKoKbm5t0BhFRleAF8orhgJwqrGPHjlCr1bxCbgc6duyIAwcOSGcQ2aUpU6bgs88+w5QpUzB16lTpHCIx4eHh6NWrF2bOnCmdQjWsU6dO+Omnn7Bjxw789ttvaN++PYYPH46MjAzpNCIiIsXhgJyISNk+//xzDBo0CI0bN5ZOqVY2mw0pKSkIDQ2VTqFK4sePJFksFpw6dYoDcqL78Mknn6B169bo37+/dApVIQ7IyR6ZTCYAQFBQkHAJ2QNeICciJeHzNRWjiAG5p6cnCgsL+UGvIR4eHggNDeWA3A7Exsbi7NmzOH/+vHQKkV2aNGkSli5dio8//hiTJk1CaWmpdBKRiClTpmDXrl181won1bt3byQmJmLVqlVITk5GcHAwnn32WVy6dEk6jYiISDH4A0kiIuXat28fDh48iBdffFE6pdqdOXMG165d4wDZQWVlZeG3337jBXISc/LkSZSUlHBATlRJubm5WLZsGV544QW4uChixkH/wQE52SOTyQSdTgdfX1/pFLIDvEBOREpy+wJ5cXGxcIljUMQjDw8PDwDgFfIa1LlzZw7I7UBMTAw0Gg0/FkR/4Omnn8batWuxaNEixMXFoaSkRDqJqMb17t0bkZGR+Pjjj6VTSIhKpcKwYcOQkpKCOXPmYPPmzfDz88PUqVORl5cnnUdEROTwOCAnIlKuTz75BNHR0ejUqZN0SrXT6/VQqVQICQmRTqFK0Ov1AMCPH4kxGo1wcXGBv7+/dAqRQ5o/fz7UajVGjRolnUJVLDs7G7Vq1YK7u7t0ClEZk8kEPz8/qNVq6RSyA7xATkRKwudrKoYDcqqU2NhYHDlyBAUFBdIpTq127dpo27YtfvnlF+kUIrs2cOBAbNmyBRs3bsSQIUNQVFQknURU4yZPnoz169cjLS1NOoUEabVajB8/HmlpaXjvvfewePFitGnTBjNnzkRhYaF0HhERkcPiDySJiJTp1KlT2LhxIyZPniydUiMMBgOaN28OLy8v6RSqBIPBgCZNmqB+/frSKeSkjEYjWrVqhVq1akmnEDmckpISzJ07F+PHjy/bPpByZGdno0GDBtIZRHcwmUwICgqSziA7YTabeYGciBTj9vM1vEBePhrpgKrg6ekJgAPymhQbG4vi4mIcOXIEXbt2lc5xarwGT1Q+PXv2xM6dO9G3b1/069cPGzduRN26daWziGrM0KFD8cYbb+Djjz/GvHnzpHNImLu7O+Lj4zFq1Cj861//wjvvvIM5c+bgn//8J0aPHl32oIqIiIjuZLFYkJ6ejtTUVJw8eRJXrlzBzZs3cfXqVQQGBuLVV19FrVq14OnpCQ8PD9SuXRve3t4ICAhAQEAAAgMDUadOHel/DSIiKqdPP/0UzZo1w+DBg6VTaoTBYEBYWJh0BlUSP34kzWg0Ijg4WDqDyCGtWbMGFy5cwMSJE6VTqBrk5OTAx8dHOoPoDqmpqRg4cKB0BtmJoqIiXiAnIsXQarUAePCnvBR1gTw/P1+4xHm0atUKTZs25eVrOxAbG4vk5GTcuHFDOoXI7nXo0AE//vgjUlJS0KtXL+Tk5EgnEdUYtVqNl156CUuWLMHFixelc8hOeHl54f3330d6ejoGDhyI559/HgEBAZg3bx7MZrN0HhERkbizZ89i6dKlGDVqFPz9/eHu7o6QkBAMGzYM8+fPx/79+5GZmQm1Wo2OHTsiODgYzZs3BwCcP38eSUlJWLlyJUaNGoWoqCjUrVsXzZs3x+DBg/HZZ58hJSUFNptN+N+SiIju5dq1a1iyZAni4+Oh0SjiFs+f0uv1CA0Nlc6gSuLHj6RxQE5UebNnz8bgwYPRqlUr6RSqBtnZ2RyQk10pLS1FRkYGAgMDpVPITpjNZg7IiUgx+I6xFaOoATkvkNesTp068fK1HejatStKSkpw+PBh6RQih9CuXTvs2bMHly5dQvfu3XHhwgXpJKIa88wzz6BevXr47LPPpFPIzjzwwAOYM2dO2ZD8pZdegq+vL2bOnInCwkLpPCIiohqVmJiI+Ph4+Pv7w9fXF8899xzOnTuHp59+GitXrkRycjJu3ryJU6dOYf/+/dixYwfWrFmDJUuWYP78+fjiiy+wevVqbNu2DXv37kVqaioKCgpw8uRJfPfdd3jhhRdgs9kwbdo0hIaGonHjxhg5ciS2bdsGq9Uq/a9PRET/MW/ePNhsNvztb3+TTqkRxcXFMJlMHCA7KKvVCqPRyI8fiSktLUVaWhoH5ESVsH//fhw8eBDx8fHSKVRNOCAne3P69GkUFRVxQE5lioqK4ObmJp1BRFQlbl8gLy4uFi5xDIoYkLu5ucHV1ZUD8hoWGxuLX3/9lZeyhDVt2hTNmzfnmJ+oAgIDA7Fv3z4UFxeja9euyMzMlE4iqhFubm74+9//js8//5zv3EL31Lx5c8yePRunT5/G6NGj8fbbb6Nly5aYOXMmCgoKpPOIiIiqTVZWFmbOnImQkBBER0dj+/btePzxx7Fz507k5uZi165dePPNNzFs2DCEh4dX+AkVjUYDf39/DBgwAJMnT8aGDRuQnZ2Nw4cP46WXXkJmZib69euH5s2b45VXXoHBYKimf1MiIiqP4uJizJkzB2PHjoWnp6d0To0wmUywWCwICwuTTqFKSE9PR2FhIT9+JOb06dMoKCjggJyoEmbPno327dujS5cu0ilUTTggJ3tjMpkAAAEBAcIlZC94gZyIlIQXyCtGEQNy4NYVcg7Ia1ZsbCxycnJw8uRJ6RSn17lzZ/zyyy/SGUQOpUWLFtizZw88PDzw0EMPlT1QJlK6iRMnwmaz4YsvvpBOITvWsGFDzJgxA6dPn8aECRPw/vvvo2XLlpg+fTq/5yYiIkU5deoU4uPj4efnhxkzZqBLly7Yu3cvjEYj3n33XfTs2bParu+o1WpERUXh1VdfxS+//ILTp08jPj4eGzduRFhYGLp06YKdO3dWy/82ERH9seXLl+PSpUtOdQnUYDBAo9EgKChIOoUqwWAwQK1Wc7xLYoxGIwDwkilRBWVlZWH9+vV48cUXpVOoGmVnZ6N+/frSGURlUlNT0ahRI9SrV086heyE2WzmBXIiUozbA3JeIC8fxQzIPT09eUmzhrVv3x7u7u4cLtuB2NhY7N+/H6WlpdIpRA6lUaNG+Omnn9CsWTN069YNycnJ0klE1a5evXoYN24cPvnkE77ikv5UgwYNMH36dGRkZGDixIn49NNP0aZNG0yfPp3fexMRkUMzGAwYMWIE/P39sW3bNsydOxeXL1/G/Pnz0aVLF6hUqhpvatGiBaZMmYKTJ09i27ZtUKvV6N27N7p3744ff/yxxnuIiJyV1WrFjBkzEBcXB19fX+mcGnP8+HEEBATw6pyD0uv1aNOmDdzd3aVTyEkZjUY0btyYQzSiCvrss8/g4+OD4cOHS6dQNbp8+TIaNWoknUFUxmQy8UVfdIeioiI+FiQixXBxcYFareYeppwUMyD38PDA9evXpTOcilarRXR0NPbs2SOd4vQ6d+6MvLy8sgsPRFR+Xl5e+OGHHxAREYGHHnqIL4ohp/Diiy/i6tWrWLFihXQKOQgfH5+yIfmkSZMwe/bssiF5Xl6edB4REVG53bx5E1OnTkW7du2QkpKCRYsWISUlBc8880zZVQppKpUKjzzyCHbv3o29e/fCw8MDDz/8MAYMGIBTp05J5xERKd7XX3+NjIwMTJkyRTqlRh0+fBjR0dHSGVRJBoMBoaGh0hnkxIxGIy/gE1VQQUEBvvjiC0ycONFuHo9S1bNYLMjLy+OAnOwKB+T0v8xmMwfkRKQoWq2WA/JyUtSA/Nq1a9IZTqdXr17YsWOHdIbTCw8PR506dTh8Jaqk2rVrY9OmTejVqxcefvhhbN++XTqJqFo1a9YMI0aMwIcffsh3r6AKqV+/PqZPn44zZ85g8uTJ+Pe//40WLVpg6tSpyM3Nlc4jIiL6Q5s2bUJwcDAWLlyIjz76CMnJyYiLi4NGo5FO+11dunTBpk2b8NNPP+HUqVMICQnB9OnTYTabpdOIiBSptLQUM2fOxFNPPQV/f3/pnBpjs9lw9OhRREZGSqdQJRkMBoSFhUlnkBPjgJyo4pYuXYqbN2/i2WeflU6hanTlyhXYbDYOyMmucEBO/4sXyIlIaVxdXVFcXCyd4RAUNSDPz8+XznA6ffr0wYULF3j5WpharUaHDh3w66+/SqcQOSxXV1d88803ePzxx/HXv/4Va9eulU4iqlZTpkyByWTCunXrpFPIAXl4eGDKlCnIzMzEK6+8ggULFqBVq1aYNm0arl69Kp1HRER0h6tXr6Jfv34YNGgQ+vXrh7S0NMTHx8PFxXF+LNa9e3ckJSVh2rRp+OijjxAZGYmUlBTpLCIixVm9ejVSU1Px2muvSafUqMzMTOTk5HBA7qCKioqQnp7OC+QkKjU1lQNyogqwWq2YNWsWRo0ahQYNGkjnUDW6dOkSAHBATnbj+vXruHTpEgfkdAez2Qw3NzfpDCKiKuPq6soL5OXkOM+U/QlPT09eIBcQHR2NevXq8Qq5HejcuTMvkBPdJ7VajS+//BITJ07EE088gUWLFkknEVWb4OBgPPbYY3jvvfdgs9mkc8hBeXl5Ydq0aTh9+jQmT56MhIQEtGzZEpMmTUJmZqZ0HhEREfbs2YN27drBaDRi3759mDdvHry9vaWzKsXV1RVTp05FSkoKvLy80KFDBz5mISKqQjabDe+//z6GDx/udGOKxMREqNVqhIeHS6dQJZw4cQJWq5UDchJz6dIl5ObmckBOVAHr169HZmYm4uPjpVOoml2+fBkAB+RkP1JTU2Gz2RAUFCSdQnaEF8iJSGm0Wi0vkJeTYgbkHh4eHJALUKvV6N69O3788UfpFKcXGxuLjIyMsgehRFQ5KpUKn3zyCd577z2MHTsWs2bNkk4iqjZvvvkm9Ho9Nm3aJJ1CDs7DwwOvv/46zp8/j4SEBPz444/w9/fHgAEDcODAAek8IiJyQjabDe+99x569eqF6OhoJCUloVOnTtJZVcLX1xc///wznn/+eYwdOxYjR47EzZs3pbOIiBze+vXrYTAY8I9//EM6pcYdOXIEISEhqF27tnQKVYLBYIBOp4Ofn590Cjmp2+9SzAE5UfnNmjULgwYN4n83TuDy5cuoXbs2v88iu2EymeDq6oqWLVtKp5Ad4QVyIlIaXiAvPw7I6b717t0bP//8M1+1ISw2NhYuLi7Yu3evdAqRIkyZMgWzZ8/GK6+8gqlTp0rnEFWLkJAQDBgwAG+99RavkFOV0Ol0iIuLg9FoxIYNG3D16lV06tQJXbp0waZNm/h5RkRENaKkpASjR4/G22+/jY8++gjr169HvXr1pLOqlEajwYwZM7BlyxZs27YNvXr1Qk5OjnQWEZHDKi0txbvvvoshQ4YgLCxMOqfGJSYmIioqSjqDKkmv1+PBBx+ERqORTiEnZTQa4eXlhcaNG0unEDmE3bt348CBA3jllVekU6gGXL58mdfHya6YTCa0adOG3zvSHSwWCy+QE5Gi8AJ5+SlqQJ6fny+d4ZT69OmD69ev49ChQ9IpTs3DwwMREREckBNVoeeffx5LlizBxx9/jOeffx6lpaXSSURV7s0338TRo0exfft26RRSEBcXl7Lr43v37kW9evUwcOBARERE4KuvvuKDNSIiqjZmsxmPP/441q1bhw0bNiA+Ph4qlUo6q9r07dsXBw8eRE5ODrp06YKzZ89KJxEROaRVq1bh+PHj+Oc//ymdUuNsNhuOHj2KyMhI6RSqJIPB4JQvfCD7YTQaERQUJJ1B5DA+/PBDdO3aVTHvkkV/jANysjcmkwmBgYHSGWRHLBYLSktLeYGciBSFF8jLT1EDcl4glxEQEICWLVtix44d0ilOr1u3btizZ490BpGixMXFYdmyZZg/fz5Gjx6NkpIS6SSiKtWuXTs8+uijeOutt6RTSKFuXx9PTk5GeHg4xowZA19fX0yfPp0vACUioiqVm5uLnj17Ys+ePdi1axf69u0rnVQjWrdujd27d0Or1aJz5844ceKEdBIRkUMpLi7GtGnTEBcXh/DwcOmcGpeWloa8vDwOyB2YXq9HaGiodAY5MaPRiODgYOkMIoeQmpqKrVu3YvLkydIpVEM4ICd7YzKZ+MIvukNRUREA8AI5ESkKL5CXHwfkVCV69uyJnTt3Smc4va5du+L48ePIy8uTTiFSlCeeeAIbNmzA2rVrMXToUJjNZukkoio1bdo0HDhwALt27ZJOIQVr27YtvvrqK6SnpyMuLg6ffvopWrRogfj4eFy4cEE6j4iIHFxBQQH+8pe/4Ny5c9i7dy86dOggnVSjmjRpgj179sDX1xd9+vTBqVOnpJOIiBzG/Pnzce7cOUybNk06RURiYiK0Wi3atm0rnUKVkJubi6ysLA7ISRQH5ETlN3PmTPj7+6N///7SKVRDOCAne1JaWoq0tDReIKc73N4+cEBORErCC+Tlp6gBeVFRET/wQvr06YMDBw5wxC+sa9eusNls2Ldvn3TK/2PvzsOiLNT/j3+GYVU2l1xwQRFlETS33BIUBVfcylxRM7e0UrMS28yUY2V6tE7upUW574jiCuKaS1YzNgygYCi4oLIpsszM74+++jseVxS4Z/m8rqvrOg4e5m3nzPPgM/fcD5HZ6dGjB2JiYhAbG4sePXogLy9POomo1LRp0wZBQUGYPXu2dApZAHd3d3zxxRc4d+4cpk6dijVr1sDT0xNvvvkmkpKSpPOIiMgEFRUVYcCAAUhMTMTu3bstdouSq6srdu7ciRo1aiA4OBhXrlyRTiIiMnq3bt1CREQEJk6ciPr160vniDh9+jT8/Pzg4OAgnULPQK1WAwD8/f2FS8hS5eTkICMjgwPkRE/h0qVLWL16NT744ANYWZnNmAY9AQfIyZj8/fffyM/P5wA53efuBnJ7e3vhEiKi0mNra8sN5E/JbP5m4uLiAgAcYBbSpUsX6PV6HDx4UDrFolWtWhU+Pj44dOiQdAqRWQoICMCBAwegUqnQo0cPZGdnSycRlZpPPvkEsbGxPIdQualSpQo+/fRTXLhwAfPmzcPevXvh7e2Nnj17Ys+ePTAYDNKJRERkAgwGA8aNG4e4uDhs27bN4gdXnJ2dERMTA6VSiV69eiE3N1c6iYjIqM2fPx+3bt1CeHi4dIqY06dPo2XLltIZ9IxUKhVcXFxQq1Yt6RSyUBqNBgaDweJ/Did6GgsXLkSlSpUwZMgQ6RQqRxwgJ2Oi1WoBAI0aNRIuIWPCDeREZI5sbGy4iPopmc0AubOzMwBwmE9I1apV0aRJE+zbt086xeIFBAQgPj5eOoPIbLVo0QIHDx5ESkoKgoKCcO3aNekkolLRsWNHdOjQAREREdIpZGEcHBzw5ptv3tsaa2VlhW7dusHLywsLFy7ErVu3pBOJiMiIRURE4JdffsHmzZvRrl076Ryj8MILLyA6OhppaWkYPnw4P5RFRPQImZmZ+Prrr/HBBx+gWrVq0jki9Ho9zpw5gxYtWkin0DNSq9Xw9/eHQqGQTiELpdFoYG9vj3r16kmnEBm1nJwcLF++HFOmTOGGVwtSXFyMmzdvcoCcjIZWq0XVqlVRpUoV6RQyIncHyHl+IiJzwg3kT8/sBsi5gVxOcHAwB8iNQIcOHXD69GkOWxGVobub/nNychAQEIC0tDTpJKJS8fHHH2P37t04ceKEdApZICsrK3Tp0gVRUVHQaDTo3r07PvzwQ7i5uWHSpElITU2VTiQiIiMTHx+PmTNnYu7cuejatat0jlHx9PTE+vXrsWPHDnzzzTfSOURERikiIgL29vaYNGmSdIoYrVaLnJwcDpCbMJVKBX9/f+kMsmAajQaNGjWCUqmUTiEyakuXLoVOp8O4ceOkU6gcXb16FXq9ngPkZDS0Wi28vb2lM8jI3LlzBwA3kBOReeEG8qfHAXIqNV26dMFff/2FixcvSqdYtMDAQBQVFeH48ePSKURmrV69ejh06BBsbW3RoUMHJCUlSScRPbeQkBC0a9cOs2fPlk4hC3d3+3h6ejo+//xzbN26FQ0aNEBoaCj27dvHTapERIRr165hyJAh6NatG95++23pHKMUEBCAGTNm4P3338exY8ekc4iIjEpycjIWL16MGTNmwMnJSTpHzKlTp2Bra8sBZBP2119/wc/PTzqDLJhGo4GPj490BpFRKyoqwrfffouxY8fC1dVVOofK0ZUrVwDAYu92Q8YnISEBXl5e0hlkZO5uIOcAORGZE1tbWw6QPyWzGSB3cXEBwAFySR06dIC9vT32798vnWLRatWqBQ8PDxw6dEg6hcjs1ahRA3FxcahZsyY6dOiAP/74QzqJ6LmFh4cjKioKp0+flk4hgouLCyZNmoSUlBRs3boVd+7cQXBwMJo3b45ly5bh9u3b0olERCTAYDBgxIgRsLGxwU8//QSFQiGdZLQ+/PBDdOrUCUOHDuU1MyKi/zJ16lQ0aNAAY8aMkU4RdfLkSTRp0oSDAibq4sWLuHHjBj8AQKI4QE70ZL/88gsuX76Md955RzqFytmlS5cAAG5ubsIlRP/QarUcIKcH3N1Abm9vL1xCRFR6bG1tUVRUJJ1hEqylA0qLnZ0d7OzskJ2dLZ1isRwcHNChQwfs2rULI0aMkM4xCkVFRfd+2CpPbdu2RWxsLKZOnVruz11SCoUCjo6O0hlEz6xSpUrYt28f+vbti06dOiE6Ohpt27aVziIzV5bnl44dO+LFF1/ErFmzEBkZWSbPUR54fjEvVlZWCA0NRWhoKH777TcsXboUkydPxscff4xRo0Zh4sSJqFOnTpl35Ofno7i4uMyfx5TZ2tpy+ISIytzq1auxe/duHD58GJUqVZLOMWpWVlaIjIxE48aN8emnn2LBggXSSURE4g4cOIDt27cjJiYGNjY20jmiDh8+jMDAQOkMekYqlQoA0LhxY+ESslQFBQVITU3lADmVOan3W0vL119/jVdeeQWVKlVCbm5umTwHr1N7bR4AACAASURBVIcbp/T0dDg7O/N/GzIKt27dQnp6OgfIjUBZnQueVVZWFoB/zrfG0lahQgUolUrpDCIqIWM5htx1+/Zto2syxuOb2QyQA4CzszO3KQnr1asXPvnkExQWFsLW1lY6R9yPP/4ousXG2dlZ7LmflpOTE1+3ZPIqVqyIHTt2YPDgwQgODsaWLVsQHBwsnUVmrDzOL7///rtJnEcehecX89W8eXMsXboUM2fOxJIlS7BkyRLMnz8fffv2xfjx49GpU6cy20Tbt29f7Nmzp0y+t7kYNWoUvv/+e+kMIjJjOTk5+OCDDzB27Fh+cPMpVatWDV988QXGjRuHkSNH4sUXX5ROIiISo9PpMHnyZPTp0wddu3aVzhF169YtqFQqTJ8+XTqFnpFarUatWrVQuXJl6RSyUImJiSguLuYAOZU56fdbS8PZs2exdu3aMvv+vB5unNLT07l9nIxGQkICDAYDB8iFZWdnw9XVVTrjoYzpeBUTE2Pxf2cnMjXGenwztpkXYzy+cYCcSlWfPn0wadIkxMfHo0uXLtI5RqFChQrYuHGjdIZR2r17N3744QfpDKJSYWdnhw0bNuCNN95AaGgoVq9ejf79+0tnkRnj+eXReH6xDDVq1MBnn32G6dOnY8OGDVi8eDE6d+4MLy8vjBs3DiNGjCiTN9FDQkIwefLkUv++5uDjjz+WTiAiC/Dxxx+joKAAs2bNkk4xKXc/4DNu3DgcO3YMVlZW0klERCIWLVoErVbLv08DOH78OIqLi/mBLBOmVqvh7+8vnUEWTKPRQKlUomHDhtIpZAF4PfzReD3ceGVkZBjVQCZZNq1WCxsbG3h4eEinEIDZs2ejefPm0hlG5/bt23j11VelM4joOfD49nDGfHzjADmVKnd3d/j5+SEqKooD5P9HqVSie/fu0hlG6dKlS9IJRKVKqVRi5cqVcHFxwWuvvYYVK1Zg5MiR0llkpnh+eTSeXyyLnZ0dhg0bhmHDhiEhIQGrVq3CrFmzMH36dPTu3Rtjx44t1Z9La9euzdfeIyxYsEA6gYjMnEqlwqJFi7B8+XJUrVpVOsekKBQKLFq0CK1atUJkZCRGjBghnUREVO5u3ryJmTNnYsqUKWjUqJF0jrgjR47A3d0dtWvXlk6hZ6RSqdC5c2fpDLJgGo0G9evXh729vXQKWQBeD380Xg83XtxATsZEq9XCw8MDNjY20ikEoGXLlka3gdYYZGdnSycQ0XPi8e3hjPn4ZlbrhlxcXDhAbgR69+6Nbdu2SWcQEYlQKBRYsGABpk6dilGjRnGYjoioHHl7e+OLL75Aeno6li1bhuTkZAQHB8PX1xdffvklbt68KZ1IRETPISIiAn5+fvyQ5jN68cUXMWLECERERECn00nnEBGVu08//RTW1taYPn26dIpROHr0KNq3by+dQc9Ip9MhISEBfn5+0ilkwTQaDXx8fKQziIiMFgfIyZhotVp4eXlJZxAREZGRMasBcm4gNw6hoaG4cOEC1Gq1dAoRkQiFQoEvv/wSc+bMwZQpUxAeHi6dRERkUezt7TF8+HD89ttvOHXqFDp06IBZs2bB3d0d48aNw5kzZ6QTiYiohM6dO4eNGzfio48+gkKhkM4xWdOnT0dKSgrWr18vnUJEVK5UKhWWLFmCf/3rX3BxcZHOEafX63H8+HG0a9dOOoWeUVJSEvLz8+Hv7y+dQhaMA+RERI+Xnp6OmjVrSmcQAeAAORERET2c2Q2QG/O6d0vx0ksvoUaNGti+fbt0ChGRqGnTpmHx4sWYO3cuwsPDYTAYpJOIiCxOixYtsHTpUqSlpWHmzJk4ePAgmjdvjnbt2uHHH3/ErVu3pBOJiOgpREREoH79+ujfv790iklr0KABXnvtNcyePRt6vV46h4ioXOj1eowfPx4tW7bkXSz+j1qtRnZ2NjeQmzC1Wg2lUsnhXRKj1+uRlJTE/w8SET1CcXExrl27xg3kZBQMBgOSk5M5QE5EREQPMKsBchcXF24gNwJWVlbo0aMHoqKipFOIiMSNHz8ekZGRmD9/Pt58800OaRARCalUqRKmTJkCjUaD/fv3o3bt2hg7dizc3NwwduxYHD9+XDqRiIge4eLFi/j555/x0UcfQalUSueYvA8//BAJCQmIjo6WTiEiKhfLly/HiRMnsGjRIlhZmdVbIs/s6NGjcHR0hJ+fn3QKPSO1Wg1PT084ODhIp5CFSklJQX5+PgfIiYge4fLly9DpdBwgJ6OQlpaGvLw8eHt7S6cQERGRkTGrq6XOzs4cIDcSoaGhOHHiBC5fviydQkQkbsiQIdi8eTN++uknDB06FEVFRdJJREQWS6FQICgoCOvXr8fly5cxd+5cnDx5Em3btoWPjw++/PJLXL16VTqTiIj+S2RkJFxcXDBkyBDpFLPQuHFjdO7cGT/88IN0ChFRmbty5QqmT5+OyZMno1mzZtI5RuPo0aNo06YNrK2tpVPoGalUKn4AgERpNBoA4CAaEdEjpKenAwAHyMkoaLVaAOAGciIiInqAWQ2QOzk5cYDcSISEhMDe3h47d+6UTiEiMgq9evXCrl27sHPnTvTr1w/5+fnSSUREFq9SpUoYO3Yszpw5g1OnTiEkJARfffUV3NzcEBwcjA0bNqC4uFg6k4jI4v3yyy8YPHgwbG1tpVPMRlhYGHbu3InMzEzpFCKiMvXuu+/CyckJM2bMkE4xKkeOHEH79u2lM+g5qNVqDpCTKI1GAzc3N7i4uEinEBEZpbsD5DVr1hQuIfpngLxy5cqoWrWqdAoREREZGbMaIHdxcUF2drZ0BgGoUKECOnbsiKioKOkUIiKjERgYiP379+PXX39Ft27d+KEnIiIj0qJFCyxcuBCXLl3CmjVrAAADBw5E3bp1ER4ejuTkZOFCIiLLdOLECZw9exZhYWHSKWalf//+sLW1xbp166RTiIjKTFxcHNasWYNvv/0Wjo6O0jlG48qVKzh//jzatWsnnULPKD8/H+fOnYO/v790ClkwjUYDHx8f6QwiIqOVnp6OKlWqwMHBQTqFCFqtlncNISIioocyqwFyZ2dnDuMZkdDQUOzZswe3b9+WTiEiMhotW7bEwYMHce7cOQQFBXHjHxGRkbG3t8eAAQOwd+9eJCYmYuTIkYiMjESjRo1w7tw56TwiIovz888/w9vbG61atZJOMSsVK1ZE//79ERkZKZ1CRFQmCgoKMH78ePTt2xe9e/eWzjEqR44cgZWVFVq3bi2dQs/or7/+gk6n4wZyEsUBciKix8vIyICbm5t0BhGAfwbIvby8pDOIiIjICJndAHlBQQEKCgqkUwhA7969kZ+fj7i4OOkUIiKj4uvri0OHDiErKwsBAQG4dOmSdBIRET2Ep6cn/vWvf+Hvv/9GVFQUXnjhBekkIiKLEx0djQEDBkhnmKVXX30VJ06cwLVr16RTiIhK3ezZs5Geno5vvvlGOsXoHDlyBP7+/nBxcZFOoWekVqthb28PT09P6RSyYFqtlgPkRESPkZ6ezgFyMhoJCQkcICciIqKHMrsBcgDcQm4k3Nzc0KxZM0RFRUmnEBEZnfr16+PQoUNQKpV4+eWXkZycLJ1ERESPoFQq0bNnz3t/3yAiovLx999/4/z58wgKCpJOMUsdO3aEUqnkB/+JyOz88ccf+PLLLzF79mzUrl1bOsfoHD16FG3btpXOoOegUqng6+sLpVIpnUIWKiMjAzdv3uQAORHRY1y6dAk1a9aUziDC7du3cenSJQ6QExER0UOZ1QD53Y0ZHCA3Hr1790ZUVBT0er10ChGR0alZsyYOHjyI6tWro0OHDlCpVNJJRERERERGY//+/bC3t0ebNm2kU8ySk5MTWrRogdjYWOkUIqJSU1xcjDfeeAMtW7bExIkTpXOMTl5eHk6fPo3AwEDpFHoOarUafn5+0hlkwTQaDQBwgJyI6DHS0tJQt25d6QwiJCYmQq/Xc4CciIiIHsqsBsjvbgTMzs4WLqG7+vXrh0uXLuHYsWPSKURERqly5crYt28ffH19ERgYiOPHj0snEREREREZhdjYWLRv3x729vbSKWYrKCgIBw4ckM4gIio1c+bMwdmzZ/H9999zO/NDHD58GEVFRQgICJBOoeegUqng7+8vnUEWTKPRwNXVFTVq1JBOISIyWhcvXuTdcMgoJCQkwNraGh4eHtIpREREZITMcoCcG8iNR5MmTeDj44MNGzZIpxARGS1HR0dERUWhTZs2CA4Oxr59+6STiIiIiIjEHT16lANuZSwwMBBarRaZmZnSKUREz02j0eBf//oXIiIiuBX3EeLi4uDt7Q03NzfpFHpGN2/eRHp6OjeQkyiNRsPjLBHRY2RnZyMnJ4cD5GQUtFot6tevDzs7O+kUIiIiMkIcIKcyN2DAAKxfvx56vV46hYjIaFWoUAFbt25Fjx490KtXL2zdulU6iYiIiIhITEFBAVJTUzkcVcYaN24M4J83E4mITFlxcTFGjBiBpk2bYtKkSdI5Ris2NhadOnWSzqDnoFKpAIAbyEkUB8iJiB7v4sWLAIA6deoIlxD9c83Hy8tLOoOIiIiMlFkNkNvZ2cHOzo4D5EZmwIAByMjIwJEjR6RTiIiMmq2tLVavXo2wsDAMGDAAP/30k3QSEREREZGIpKQk6HQ6NGrUSDrFrNWqVQuOjo4cICcikzd37lz8+eef+P7776FUKqVzjFJubi5+++03dOzYUTqFnoNKpUKlSpVQq1Yt6RSyYBwgJyJ6vLS0NADgBnIyChwgJyIioscxqwFyAHBxcUF2drZ0Bv0XPz8/+Pr6YsOGDdIpBHATPJGRUyqVWLZsGSZPnoxRo0Zh+fLl0klET4XnFyIZfO0RkbnSarWwsrKCp6dnmXz/tLQ0LF68GLNmzQIAHD16FN9//z2KiorK5PmMlUKhgKenJwfIicikaTQafP7555g5c+a9OyvQgw4dOgSdTofAwEDpFHoOarWad2ghUTk5OcjIyOAAOVk8XpOjx7l48SIcHR3h6uoqnUIWzmAwIDExkQPk9EQ8rxGRueLx7cnMboDc2dmZG8iN0IABA7BhwwbodDrpFIuUmJiISZMmoV69eqhSpQp69eqF/fv3S2cR0SMoFArMnTsXERERGDduHObOnSudRPRQPL8QyeBrj4gsgVarhbu7O+zt7Uv9excUFKB58+aYMGEC1q1bBwD45ZdfMHr0aOTn55foex09ehSzZ8/GlStXHvuYMfP29kZCQoJ0BhHRMykqKkJYWBiaNGmCqVOnSucYtbi4OPj6+qJ69erSKfQcVCoV/P39pTPIgv31118AwAFyski8JkdPKy0tDXXq1JHOIMKlS5eQl5fHAXJ6KJ7XiMhc8fhWMmY5QJ6bmyudQf9j0KBBuHz5Mo4cOSKdYnHy8/PRu3dv/PDDD+jatSvefPNNJCUlITQ0FPHx8dJ5RPQY06ZNw3/+8x+Eh4cjPDxcOofoPjy/EMnga4+ILMWVK1fg5uZWJt87OjoamZmZmDdvHtRq9XN9r0OHDuGTTz5BRkbGYx8zZjVr1sTVq1elM4iInsmMGTOQkJCAn376CdbW1tI5Ri02NhYdO3aUzqDndPbsWW4gJ1EajQb29vZwd3eXTiEqV7wmRyVx8eJF1K5dWzqD6N4d57y9vYVLyNjwvEZE5orHt5Izuyuqzs7OyM7Ols6g/+Ht7Q0/Pz9s2LABAQEB0jkW5aOPPoJWq8XOnTvRvXt3AMCkSZPQtGlTjBw5EufPnxcuJKLHmTBhApydnfH6668jJycH//nPf2BlZXaf/yITxPMLkQy+9ojIUuTl5cHJyalMvndWVhYA4KWXXiqT729qnJycuIyBiEzSkSNH8NVXX2HRokXcqPcE2dnZOHPmDKZNmyadQs8hLS0NWVlZ3EBOojQaDby8vKBUKqVTiMoVr8lRSXADORkLrVYLV1dXVKtWTTqFjAzPa0Rkrnh8Kzmzm0BzcXFBTk6OdAY9xIABA7Bx40bodDrpFIuyatUqNGnS5N5BEQCqV6+Orl27IiUlBb/++qtgHRE9jWHDhmHTpk1YuXIlwsLCUFRUJJ1ExPMLkRC+9ojIUuTm5pbJAHl4eDj+/e9/AwDee+89jBw58pG/Ny4uDhMnTkSjRo1Qp04dDB48GEuWLLl3XWPs2LFYsmQJAGDUqFF45513HvrYXVlZWZgwYQL8/PxQo0YN9O/fHzt37rzvOceMGYO33noL6enpGDJkCNzd3dGgQQOMGjUKt27dKs1/FfdwgJyITFFeXh5GjhyJ4OBgjBkzRjrH6B06dAh6vZ7LXUycSqUCAPj6+gqXkCXTaDTw8fGRziAqd7wmRyXBDeRkLLRaLT9sSw/F8xoRmSse30rO7AbInZ2dOUBupAYOHIjLly/j0KFD0ikWIzMzEzdv3kSXLl0e+FqjRo0AAKdOnSrvLCJ6Br1798bOnTsRFRWFV155BXfu3JFOIgvG8wuRDL72iMiS5ObmwtHRsdS/r5ub272tS7Vq1YK7u/tDf19sbCy6dOmCtWvXomvXrhg9ejTS0tLw5ptvYvr06QD+OfbWrFnz3n/29PR86GPAP28eN2vWDD/99BMCAgLw+uuvIzU1FaGhoViwYMG95/39998RHR2Nl156CWlpaRg0aBDq1KmDlStXYvjw4aX+7wPgADkRmaaJEyciOzsbK1euhEKhkM4xenFxcfDz8+PmQROnVqtRu3ZtVK5cWTqFLBgHyMkS8ZocldTFixe5gZyMglarhbe3t3QGGRme14jIXPH49myspQNKm7OzM9LS0qQz6CG8vLzg7++PDRs2oGPHjtI5FkGr1QLAvTev/9vdT5pevXq1XJuI6Nl16tQJ+/fvR/fu3dG9e3ds3769TLYyEj0Jzy9EMvjaIyJLcvv2bVSoUKHUv+8777wDR0dHHDhwAFOmTMHLL7/80N+3Zs0aWFtb49y5c3B1dQUATJs2DR4eHoiKisJXX32F9957DzqdDseOHUN4eDhefPFFAHjoY+Hh4UhNTcXx48fRunVrAMDMmTPRvXt3TJs2DcOHD783DJaamopp06Zhzpw5UCgU0Ov1aNWqFfbv31/q/z4AwNHRscy2mxMRlYUtW7YgMjIS27ZtQ40aNaRzTEJsbCw6deoknUHPSa1Ww9/fXzqDLNidO3eQmprKAXKyOLwmRyWRlZWF3NxcbiAno5CQkIDAwEDpDDIyPK8Rkbni8e3ZmOUG8uzsbOkMeoQBAwZgw4YNKC4ulk6xCMnJyQDw0I0kd7esZWVllWsTET2fVq1a4eDBg0hMTETnzp1x/fp16SSyQDy/EMnga4+ILImdnR0KCgrEnv/dd9/FyZMn7w2PA0BhYSFcXV1LfOe7GzduYPXq1WjVqtW94XEAsLW1xZgxY1BYWIjNmzffe9zBwQGfffbZvY26VlZWaN++PbKzs3Hx4sXn/JM9KD8/H/b29qX+fYmIysKlS5cwZswYjBs3DqGhodI5JiErKwt//PEHl7qYAZVKBT8/P+kMsmCJiYnQ6XQcICeLw2tyVBJ3/97ODeQkLT8/H2lpafcG5oju4nmNiMwVj2/Pxiw3kJf0jTwqPwMHDsSnn36KQ4cOceNJObCzswPwz5vV/+vudrFKlSqVaxMRPb/GjRvjwIEDCAkJQUBAAPbu3Qs3NzfpLLIgPL8QyeBrj4gsiZOTE3Jzc8We39vbG9evX8e8efNw7NgxpKamIikpCTk5OSX+2Vur1cJgMCAvLw8DBw6872t3r2GdO3fu3mPVqlV7YKD77vE9Ly/vWf44j5Wbm8s7GxGRSdDpdBg2bBiqVq2Kr7/+WjrHZMTHx8NgMCAgIEA6hZ5DcXExEhISMGXKFOkUsmAajQZKpRINGzaUTiEqV7wmRyWRlpYGAKhVq5ZwCVm6pKQk6PV6DpDTA3heIyJzxePbszHLDeQcIDdejRo1QtOmTbF+/XrpFItw9xau58+ff+Brdw+WL7zwQrk2EVHp8PLywqFDh1BcXIyXX375voETorLG8wuRDL72iMiSODk5lcmw9NOaO3cuateujVmzZqGoqAhdunTBqlWr0L59+xJ/r7t3DbKzs4ONjc19/1SpUgVDhw5F48aN7/1+BweHR34vg8FQ8j/ME3CAnIhMxaxZs3Ds2DGsWbMGFStWlM4xGXv37kXTpk1RpUoV6RR6DklJSbhz5w78/f2lU8iCaTQaeHh43HtTnshS8JoclURqaipcXFzuu6MZkQStVgsrKys0aNBAOoWMDM9rRGSueHx7Nma5gTw7O1s6gx5j0KBB+Prrr7Fw4ULY2tpK55i1Ro0aQaFQPPTA+McffwDAfbfPJiLTUrduXcTHx6Nbt27o0KED9uzZw9vYUrng+YVIBl97RGRJHB0dkZKSIvLc165dQ3h4OF544QUkJSXdN1wdERFR4u/n4eEBAGjYsCF+/vnn+76m0+mQm5uLChUqPF/0c+AAORGZgoMHD2L27Nn45ptv0KxZM+kck7Jnzx70799fOoOek1qthlKphLe3t3QKWTCNRgMfHx/pDKJyx2tyVBKpqan3rgMQSUpISED9+vUfuMsdEc9rRGSueHx7Nma3gdzFxQWFhYUoKCiQTqFHCAsLQ1ZWFnbu3CmdYvbc3NwQEBCA+Pj4+7YTFxUVYfXq1ahVqxZatGghWEhEz6t69eqIjY2Fh4cHAgMDceLECekksgA8vxDJ4GuPiCxJlSpVcO3aNZHnvnDhAvR6Pfr373/fYHVaWhp+//33En8/T09PvPDCC9i9ezeKioru+9qcOXNQqVIl0Z/jMzMzUblyZbHnJyJ6kmvXrmHIkCHo27cvJkyYIJ1jUlJTU5GYmIiQkBDpFHpOarUaDRs2fOydSojKGgfIyVLxmhyVRGpqKurVqyedQQStVgsvLy/pDDJCPK8Rkbni8e3ZmN0AubOzMwBwC7kRq1WrFgICAhAZGSmdYhE+/PBDFBUV4bXXXsPmzZsRGxuL0NBQnD9/HsuXL4dCoZBOJKLn5Orqij179qBVq1YICQnB4cOHpZPIAvD8QiSDrz0ishQNGzbEuXPnUFxcXO7P7eXlBUdHR6xbtw5RUVFISkrCqlWr0K5dOzg7OyMvLw9arRYA4O7uDgBYtmwZTp48+dDHbG1tMWfOHOTk5GDYsGH47bffkJycjHnz5mH27NkIDg5G+/bty/3PeZdWq0WjRo3Enp+I6HEMBgPeeOMNWFtbY9myZdI5Jmf37t2oWLEi2rVrJ51Cz0mlUvHOgyRKp9MhKSmJA+RksXhNjp4WB8jJWHCAnB6H5zUiMlc8vpWctXRAabs7QJ6Tk4Nq1aoJ19CjhIWFYfz48bh+/TqqVKkinWPWQkJCEBkZidGjR+OVV14B8M+w6fz589G9e3fhOiIqLRUqVMD27dsxdOhQdO3aFZs2bUK3bt2ks8iM8fxCJIOvPSKyFF5eXigsLMSFCxfQoEGDcn1uJycn/PDDDxg1ahR69+4NAKhcuTL+/e9/o2LFihgxYgT8/PxQVFSE4OBgtGnTBosXL4ZGo0FsbOxDH3vjjTdw+/ZtfPDBB1i/fj0AwNraGqNHj0ZERIToRcvExEQMHTpU7PmJiB7nq6++QkxMDA4ePMi7JTyDvXv3omPHjrCzs5NOoeekVqt5viZRKSkpuHPnDgfIyWLxmhw9rdTUVJ6zySgkJiZi9OjR0hlkpHheIyJzxeNbyZndALmLiwuAfwbIyXi98soreOutt7BhwwaMHz9eOsfsDRo0CK+++ipOnToFvV6P1q1bQ6lUSmcRUSmztbXF2rVrMXbsWPTp0wc///wzBgwYIJ1FZoznFyIZfO0RkSW4uyFJq9WW+gD5qFGjMGrUqPse++677/Ddd9/d+/WAAQMQFBSEM2fOoGbNmvD19b035N2xY0fcvHkTAFClShUcO3YM6enpcHJyeuRjAPD2229j5MiROHPmDPLy8uDv7486derc13F3i/n/mjlzJmbOnPn8f/j/kZmZievXr3MjFREZpaNHj+KTTz7BnDlz0LZtW+kck6PT6RAbG4sZM2ZIp9Bzys/Px/nz5+Hv7y+dQhZMo9EAAH9uJIvGa3L0JLdv38a1a9e4gZzEZWRkICcnh+dteiye14jIXPH4VjJmN0B+dwN5dna2cAk9jrOzM/r06YPIyEgOkJcTa2trtGnTRjqDiMqYUqnEihUr4OLigsGDByMnJwdvvPGGdBaZMZ5fiGTwtUdE5s7Z2Rk1a9ZEQkICevToIdJQpUoVdOnS5aGP/+/d1Nzc3B74fQ97zMnJCQEBAaUX+ZwSEhIAAI0aNRIuISK639WrVzFw4EB07doV7777rnSOSfr1119x48YNhISESKfQczp79ix0Oh38/PykU8iCaTQa1KpV694iLyJLxWty9DipqakwGAwcICdxd6/3eHt7C5eQseN5jYjMFY9vT89KOqC03R0g5wZy4xcWFoajR48iMTFROoWIyKwoFArMnz8fERERGDNmDObNmyedRERERERUYq1atcKRI0ekM8za4cOHUb169Qc2oRMRSdLpdBg2bBisra2xatWqe3eAoJLZs2cPateuzaERM6BWq+Hg4FDqd2UhKgmNRgMfHx/pDCIio5aSkgIAcHd3Fy4hS6fVauHs7IwaNWpIpxAREZGRM7sBcltbW9jb23OA3AQEBwejRo0aWL16tXQKEZFZmjZtGr755hu8//77CA8Pl84hIiIiIiqRTp06IS4uDnq9XjrFbMXGxqJz584cziQioxIeHo5Dhw5h06ZND9zxgZ7enj170L17d+kMKgUqlQq+vr683TKJ4gA5EdGTpaamonLlyrxbA4nTarXw8vKSziAiIiITYHYD5MA/W8g5QG78rK2tMXjwYPz4448wGAzSOUREZumtt97CqlWrMG/ePLz11lscviEiIiIikxEUFIQbN27gjz/+kE4xS4WFhThy5Ag6deoknUJEdM/W9VR1dQAAIABJREFUrVsxb948LF68GM2bN5fOMVlZWVk4efIkQkJCpFOoFKjVavj5+UlnkIXTarUcICcieoILFy6gXr160hlEHCAnIiKip2aWA+QuLi7Izs6WzqCnEBYWhtTUVBw7dkw6hYjIbA0fPhwbNmzAihUrMGLECBQXF0snERERERE9kb+/P6pVq4YDBw5Ip5il48eP49atWwgKCpJOISIC8M+Qw4gRIzBhwgSMHDlSOsek7d+/HwaDgcd4M6FSqeDv7y+dQRYsPT0dWVlZHCAnInqC1NRU1K9fXzqDiAPkRERE9NTMcoDc2dkZubm50hn0FJo1awZ/f39ERkZKpxARmbW+fftiy5Yt2Lx5M1599VXcuXNHOomIiIiI6LEUCgW6dOmCrVu3SqeYpW3btsHT0xMeHh7SKUREyMvLQ//+/eHr64v58+dL55i8PXv2oFWrVqhcubJ0Cj2nGzduICMjgxvISZRGowEADpATET1BamoqN5CTuIKCAly4cAHe3t7SKURERGQCzHaAPCcnRzqDntLQoUOxbt06FBQUSKcQEZm17t27IyYmBnFxcejZsyfy8vKkk4iIiIiIHmvo0KE4cuQIzp8/L51iVnQ6HVavXo2hQ4dKpxARwWAwYOTIkcjMzMTGjRtha2srnWTy9u7di5CQEOkMKgUqlQoAuIGcRGk0Gri6uqJ69erSKURERi0lJQXu7u7SGWThkpKSoNPpuIGciIiInorZDpBnZ2dLZ9BTCgsLQ05ODqKjo6VTiIjMXocOHXDgwAGoVCp07twZN27ckE4iIiIiInqkkJAQVK9eHT///LN0ilnZu3cvLl++jCFDhkinEBFh1qxZ2L59O9avX49atWpJ55i8xMREpKSkcIDcTKhUKlSqVAlubm7SKWTBNBoNfH19pTOIiIzarVu3kJmZyQ3kJE6r1cLKygqenp7SKURERGQCzHKA3MXFhRvITYibmxs6deqEH3/8UTqFiMgiNG/eHPHx8UhPT0eXLl1w9epV6SQiIiIiooeytrbG4MGDERkZCYPBIJ1jNiIjI9G+fXs0atRIOoWILNzWrVsxc+ZMfPPNNwgMDJTOMQs7duxA5cqV0bp1a+kUKgVqtZrbx0mcRqOBj4+PdAYRkVFLSUkBANSvX1+4hCydVqtF3bp14eDgIJ1CREREJsAsB8idnZ05QG5iRo4ciZ07dyI9PV06hYjIInh7e+Pw4cPIy8tDQEAA0tLSpJOIiIiIiB5qxIgRSE5Oxv79+6VTzMKVK1ewZcsWjBgxQjqFiCycRqPBiBEjMHLkSIwfP146x2xER0ejW7dusLa2lk6hUqBSqThATuI4QE5E9GSpqakAAHd3d9kQsnharRbe3t7SGURERGQiOEBORuHVV1+Fq6srt5ATEZUjd3d3xMfHw87ODi+//DKSkpKkk4iIiIiIHtC0aVMEBwcjIiJCOsUszJ8/H87Ozhg2bJh0ChFZsBs3biA0NBRNmjTB4sWLpXPMRk5ODg4fPoyePXtKp1ApMBgM+Ouvv+Dn5yedQhYsKysLly9f5gA5EdETpKamomrVqnBycpJOIQuXkJAALy8v6QwiIiIyEWY7QJ6dnS2dQSVgZ2eHIUOGYMWKFdDr9dI5REQWo0aNGoiLi0OtWrXQoUMH/PHHH9JJREREREQP+OijjxAXF4fDhw9Lp5i0GzduYPHixXjvvfd4K2MiElNcXIwBAwaguLgYmzZtgq2trXSS2di9ezd0Oh26du0qnUKlIC0tDVlZWdxATqI0Gg0AcICciOgJLly4gHr16klnECExMZED5ERERPTUzHaAnBvITc/o0aNx/vx5xMXFSacQEVmUSpUqYe/evWjSpAk6duyIo0ePSicREREREd0nMDAQL7/8MubMmSOdYtIWLlwIGxsbjBs3TjqFiCzYlClT8Ouvv2Lbtm2oVq2adI5ZiY6ORtu2bVGlShXpFCoFKpUKANC4cWPhErJkGo0GDg4OcHd3l04hIjJqKSkpHCAncVeuXEFWVhYHyImIiOipcYCcjIa/vz9at26N77//XjqFiMjiVKxYEVFRUQgKCkJISAj27NkjnUREREREdJ+PP/4Yu3bt4gfPn1FGRgYWLFiAKVOm8JbaRCRm0aJF+O6777Bq1So0bdpUOses6PV6xMTEoGfPntIpVErUajXq1KkDV1dX6RSyYBqNBl5eXrCyMsu3lImISk1qaioHyElcQkICAHCAnIiIiJ6atXRAWXB2dkZhYSHu3LkDe3t76RwqgdGjR+Ott97CwoULUbVqVemcUpObmyudYJQKCgqkE4jov9jZ2WH9+vUYPXo0QkNDsXr1arzyyivSWfQYPL88HM8vVJaKior42nsEnU4nnUBEZq5r167o2bMnJk6ciN9//x02NjbSSSblvffeg6urK6ZMmSKdQkQWKiYmBpMmTcLs2bPx6quvSueYnZMnT+LKlSvo1auXdAqVErVaDX9/f+kMsnAajQY+Pj7SGUQAeD38UXg93DhwgJyMgVarhaOjI9zc3KRT6Any8/N5XnuIvLw86QQiek48vj2cMR/fzHKA3MXFBQCQk5PDAXITM2jQILz77rv45ZdfMGnSJOmcUpGbmwtnZ2fpDKPFrWdExkWpVOKHH36Ai4sLBg4ciOXLl+P111+XzqKH4Pnl8Xh+obISGRmJyMhI6QyjNWrUKOkEIjJz//nPf+Dr64sFCxbg/fffl84xGfHx8VizZg22bduGihUrSucQkQU6e/YsBg0ahGHDhuHDDz+UzjFL0dHRqFu3Lvz8/KRTqJSoVCp07dpVOoMsnEajwciRI6UziHg9/Al4PVxWbm4url+/zgFyEqfVauHl5QWFQiGdQk/Qr18/6QQiojLB45vpMcsB8rt/eczOzka1atWEa6gkHB0dMXDgQKxYscIsBsi7deuGnTt3SmeUuYSEBKhUKvTu3Rt2dnYl+u9aW5vlYYjIpCkUCixYsAA1a9bEG2+8gezsbEyePFk6i/6LpZxfHub06dO4fv06AgMDH3vO4fmFykJERIRFHA+zsrLw1VdfYfDgwSXedlenTp0yqiIi+oe7uzvCw8Px+eefY+DAgahbt650ktErLCzE+PHjERoaitDQUOkcIrJAGRkZ6NGjB5o2bYolS5ZI55it6Ohobh83I8XFxUhISMDUqVOlU8iC3blzBxcuXOAGchIndT386NGj2LVrF2bNmlXuz11SvB4uKzU1FQA4QE7i7g6Qk/GqWLGi0bzHazAYMHv2bHzyySfSKQ9o0aKFdAIRlZAxHd/uOnnyJK5du4YePXpIp9xjjMc3hcFgMEhHlLbz58+jQYMGOHXqlFH+S6fH+/XXX9GmTRscP34crVu3ls6hp2AwGODr64vMzEzMmDEDY8eOha2trXQWEZWCL7/8EtOnT8cHH3yAL774QjqHCHfu3IGXlxdu3LiBUaNGYfz48XwTi6gMvP7661i1ahW6d++OiIgINGvWTDqJiOiegoICNGvWDFWrVsWBAwf4RvkTTJo0CStXrsSff/7JN7OJqNzl5+ejU6dOyMzMxPHjx1G1alXpJLOUkZGBWrVqYceOHUb1phg9O41GA19fX5w5cwYvvviidA5ZqD/++AMvvvgi1Go1GjduLJ1DVK4uX74MHx8fuLu74/fff5fOISMXFRWF3r17Izc3F46OjtI5ZMEaNmyIsLAwfPrpp9IpZAL27duH4OBgnD9/HvXr15fOITOUnZ0NV1dXxMTE8O5aJOKNN97An3/+iZMnT0qnGLOLVtIFZeHuBvKcnBzhEnoWrVu3RtOmTbFixQrpFHpKCoUCU6ZMQWZmJt5++23Uq1cPP/zwA4qLi6XTiOg5TZs2DYsWLcLcuXPxzjvvwAw/d0Ymxt7eHnPmzEFeXh6+/fZb+Pr6on379li7di0KCwul84jMxpQpU6BQKBATE4MWLVqgf//++Ouvv6SziIgAAHZ2dli/fj1Onz6Nzz77TDrHqO3YsQPffvstFi1axOFxIip3er0eQ4cORXJyMnbt2sXh8TK0Y8cO2Nvbo2PHjtIpVEpUKhWsra3h7e0tnUIWTKPRwNraGp6entIpROVu1KhRyMrKwvXr16VTyASkpqaiWrVqHB4nUYWFhUhNTeUGcnpqixYtAvDP3ayIiMxNcXExNm/ejFOnTiEhIUE6x6iZ5QC5i4sLAA6Qm7JRo0Zh7dq1yM3NlU6hpzR8+HBUrlwZwD+fyh8zZgzq1auHZcuWQafTCdcR0fMYP348fv75ZyxZsgQjR47kh0NI3ODBg9GqVSsolUoAwPHjxzF06FBUr14d4eHhOH/+vHAhkelr0qQJOnbsCKVSCYPBgB07dsDPzw+vvvoqkpKSpPOIiODn54cFCxZgzpw52L17t3SOUfr7778xYsQIjB07FsOGDZPOISIL9N5772Hnzp3YunUrGjZsKJ1j1qKjo9GlSxdUqFBBOoVKiVqtRsOGDWFvby+dQhZMo9HAw8MDdnZ20ilE5Wr58uWIiYkBAGRlZQnXkClITU3lh7ZJXHJyMoqLi/kBRHoqGRkZ2L59OwBg27ZtwjVERKUvLi4OWVlZUCqV+Omnn6RzjJpZDpDb2NjAwcEB2dnZ0in0jIYPHw6dTod169ZJp9BTsre3x8SJE2FjYwODwQC9Xo+MjAyMHz8ePj4+2LBhAzcXE5mwwYMHY8uWLdiwYQPCwsJQVFQknUQWTKFQYOHChfc+oKTX66HX65GVlYX58+fD09MTQUFB2LBhAz/wQPQcPvjgg3uvoaKiIhgMBmzfvh0+Pj4ICwvjhzWISNyYMWMwaNAghIWFITk5WTrHqOTm5qJfv36oU6cO/v3vf0vnEJEFmj9/PhYuXIhVq1bh5Zdfls4xawUFBdi/fz969OghnUKlSKVSwc/PTzqDLJxGo4GPj490BlG5SklJweTJk++9p3nr1i1eY6YnSk1Nhbu7u3QGWTitVguFQsEP79JTWbFiBRQKBQDg4MGDyMvLEy4iIipdGzduhK2tLXQ6Hb7//nsuv30MsxwgBwBnZ2duIDdhrq6u6N+/P5YvXy6dQiXw1ltv3fdrvV4Pg8GAc+fO4bXXXkOLFi0QFRUlVEdEz6tnz57YtWsXdu7cib59+yI/P186iSxY27Zt0adPH9jY2Nz3+N0h10OHDmHgwIFwc3NDeHg4/v77b6FSItPVrVs3+Pj4wMrq//+1saio6N4HPb28vDB27Fikp6cLVhKRpVu6dCnq1auHrl27IiMjQzrHKBQWFqJ///5IT0/H5s2b4eDgIJ1ERBZm/fr1eP/99zF37lwMGjRIOsfs7d+/H7du3UKvXr2kU6gUqdVqDpCTOA6Qk6XR6/UPLNAxGAzcQk5PlJycDE9PT+kMsnBarRZ16tThXYnoifR6PZYsWXLvA1LFxcU4cOCAcBURUenR6XRYv349CgsLAQBXr15FbGyscJXx4gA5Ga2xY8fixIkTOH36tHQKPaVq1aph2LBhDwzz6fV6AP9sTenduzdat27NAzORiQoMDMT+/ftx4sQJdOvWjedaEvX1118/8u4WxcXFMBgMuHbtGubPnw8PDw+MHz++nAuJTN+777770MeLiopQXFyMVatWwcPDA5MmTcKVK1fKuY6ICHB0dMTOnTtha2uLrl274ubNm9JJogwGA8aMGYMTJ05g586d8PDwkE4iIgtz8OBBDB8+HOPHj3/kz5JUurZu3YpWrVqhdu3a0ilUSm7fvo3z58/D399fOoUsmE6nQ3JyMgfIyaLMmzcPR48efeAOrNevXxcqIlNwd5kaB8hJmlarhbe3t3QGmYDo6Oj7FgNZW1sjOjpasIiIqHTFx8ff916RjY0NVq5cKVhk3DhATkYrICAATZo0wXfffSedQiUwZcqUR97K7e7jp0+fRlBQEIKDg/HXX3+VZx4RlYKWLVsiPj4e586dQ1BQEK5duyadRBaqQYMGeOeddx744NL/Ki4uhlKpxPDhw8upjMh8DBs2DC4uLo/8elFREQoKCrBo0SI0aNAAW7duLcc6IqJ/VK1aFTExMbhx4wb69OmD3Nxc6SQRer0eEydOxLp167B161Y0a9ZMOomILMzZs2fRr18/9OnTB99++610jkXQ6/WIiopCnz59pFOoFJ09exZ6vZ4byEnU+fPncefOHQ6Qk8XQaDT46KOPHrqw5MaNGwJFZCoyMjJw69YtDpCTOK1WCy8vL+kMMgHfffcdrK2t7/26qKgImzdvfuTSLiIiU7Np0ybY2tre+3VRURE2btyI7OxswSrjZbYD5C4uLhwgNwNvvvkm1q5dy092mxB/f3906tTpvh84/5dOp4NSqcSNGzdQo0aNcqwjotLi4+ODw4cPIysrC4GBgbh48aJ0ElmoTz755Klux7dmzRq0a9euHIqIzIu9vT0mT5782J/tgH827XTo0AFdu3YtpzIiovu5u7sjJiYGSUlJ6Nixo8XdFaGwsBBDhw7FDz/8gLVr16JTp07SSURkYS5duoQePXrA398fP/74I6yszPatB6Ny9OhRXL58Gf369ZNOoVKkVqvh4ODAO4mQKI1GA4VCwUE0sgjFxcUYOnToIwfnOEBOj5OcnAwAHCAncRwgp6fx999/Y+/evQ8shczMzMTvv/8uVEVEVHr0ej3WrVuHwsLC+x7X6XTYtGmTUJVxM9uruNxAbh6GDRsGW1tb3kbAxLz//vuP3EIO/HMLnDZt2iA2NhaVK1cuxzIiKk316tXDoUOHYG1tjQ4dOty7SEZUnlxdXTFz5kwolcpH/p4FCxagf//+5VhFZF7efPPNxw4AKZVK9OvXD9u3b4eDg0M5lhER3c/Pzw/Hjh1DXl4e2rZti6SkJOmkcpGXl4c+ffpgx44d2L59O/r27SudREQW5ubNm+jWrRucnJywbds22NvbSydZjG3btqFhw4bcEGxmVCoVGjdu/NhrHURlTaPRoFatWnB2dpZOISpzM2fOxJ9//vnQ9zatrKy46IweKykpCRUqVEDNmjWlU8iCXbt2DTdu3OAAOT3R0qVLH/r3DFtbW0RHRwsUERGVriNHjiAzM/OBxw0GA1asWCFQZPzMeoCca+dNn6OjI4YPH47FixdDr9dL59BT6tatG3x8fB46aKRUKtG5c2fs3buXFx6JzEDNmjURFxeH6tWro0OHDvjzzz+lk8gCTZgwAXXr1n3gvKNQKGBra8sLZkTP6YUXXsCIESNgY2PzwNcUCgUGDx6MNWvWPPTrRETl7e6HHCtXroyAgAAcPnxYOqlMpaSkICAgAL///jvi4+MREhIinUREFubWrVvo1asXsrOzsWvXLri6ukonWZTt27fzA9NmSK1Ww8/PTzqDLJxGo+GHU8ginD59GnPmzIFOp3vo162trbmBnB7r3Llz8PT0hEKhkE4hC6bVagGA74fRYxUVFWHZsmUoKip66Ne2bt0qUEVEVLo2bdoEW1vbBx7X6/U4fvw4zp07J1Bl3Mx2gNzFxYUbyM3E22+/jZSUFMTExEinUAlMnTr1gccUCgUUCgU+/PBDbqckMiOVK1fGvn370LhxY3Ts2BHHjx+XTiILY2Njg/nz59/3YTNra2v0798fw4cPR69evbBs2TLBQiLTN3Xq1Ae2MN392a5+/fqwtrYWKiMielC1atUQGxuLl156CZ06dcIXX3zxyFuRm7ItW7agefPm0Ol0OHz4MJo1ayadREQWpqioCAMGDEBiYiJ2796NOnXqSCdZFLVajcTERN55wgypVCr4+/tLZ5CF4wA5WYLbt2/jtddee+zgr0Kh4AA5PVZycjIaNmwonUEWLiEhARUrVkTt2rWlU8iIbd68+ZF31TAYDPjtt99w5cqVcq4iIio9BoMB69atQ2Fh4UO/bm1tjcjIyHKuMn5mO0Du7OzMAXIz0bBhQwQFBeG7776TTqESGDZsGCpVqnTv11ZWVhgyZAi6d++O3r1749SpU4J1RFTaHB0dER0djcDAQHTp0gX79u2TTiIL07dvX7Rv3x7W1tawsbFBmzZt8Msvv2DZsmX46KOPMG7cOISHh0tnEpksLy8vdO3a9d6WcYVCgQ8++AArV65EREQEvvrqK+FCIqL7OTk5YevWrfjqq68wY8YM9OjRA9euXZPOKhWFhYWYNGkSXnnlFbz22ms4fvw4GjRoIJ1FRBZGr9cjLCwMR44cwa5duzhkKGDLli2oXr06XnrpJekUKkWZmZm4fPkyN5CTOK1Wy2M7mb3w8HCcP3/+gaUJ/02v13OAnB4rKSkJnp6e0hlk4bRaLRo1asRN+PRY33333QN3c/5vCoUCu3fvLsciIqLS9euvv+Ly5cuP/HpRURGWL19+32JCMuMBcicnJw6Qm5GJEydi165dSEpKkk6hp2RnZ4e3334bSqUSCoUCkydPRmRkJDZu3Ij27dsjODgYZ86ckc4kolJkZ2eHdevWoWfPnujVqxe2bNkinUQWZuHChdDpdPDw8EBUVBTs7OygUCjw2Wef4fvvv8e8efPw+uuvP/TWbET0ZO+///6918/XX3+NL774AsOHD8fChQsRHh6OJUuWCBcSEd1PoVBgypQpOHLkCBITE+Ht7Y2FCxea9MXB+Ph4NG/eHCtXrsTPP/+MpUuX8g5fRFTuDAYDJkyYgC1btmDjxo1o2bKldJJF2rZtG/r16/fYAQAyPWq1GgC4gZxEXbp0CdnZ2RwgJ7M3cOBAfPLJJ2jRogWsrKygUCgeuMtecXHxI7e1EgHAuXPn+KFuEqfVauHl5SWdQUZMq9Xi8OHD0Ol0j/w9VlZWiIqKKscqIqLStWnTJtja2j7296SnpyM+Pr6cikyD2V5ZdHFxQXZ2tnQGlZLevXujbt26WLZsmXQKlcCECRNgY2ODmTNnYt68eVAoFLC1tcXGjRvx4osvolu3btBoNNKZRFSKbG1tsXr1agwfPhyvvfYafvzxR+kksiAtWrTAtGnTsHfvXri6ut73tVGjRiE6OhqbNm1Cz549kZubK1RJZLqCgoLQrFkzLFu2DO++++69x9966y3MnDkTEydOxOrVqwULiYgermXLlvjtt98wdOhQTJ06FYGBgfjzzz+ls0okIyMDQ4cORWBgIDw8PPDnn39iyJAh0llEZKE++ugjrFixAqtXr0ZwcLB0jkW6dOkSfvvtN/Tt21c6hUqZSqVC5cqVUbNmTekUsmB337fhADmZu/bt2+Pzzz/HqVOnkJmZic6dO6NKlSqoU6cOANwbJr969apkJhmxy5cvIzc3lxvISRwHyOlJli5dCoPBAIVCARsbG9jZ2cHGxga2trawsbGBQqFAcXExYmJiuIiLiEzW2rVrUVxcfO/4dvcYZ2dnd+8fAJxj+h/WT/4tpsnZ2ZkbyM2IUqnEmDFjMG/ePMycORMVKlSQTqKn8MILLyA+Ph6tWrW673EHBwfs2LED3bp1Q0hICA4ePAgPDw+hSiIqbUqlEkuXLoWrqytef/11ZGdn45133pHOIgsxZ86cR34tJCQE+/fvR69evRAUFIQdO3agevXq5VhHZPr+H3t3Hhdlvf///znCgLIqomkKLqS4QMvxWGoCsgwiiqhoioGpuRyXROt8XE7ll1N5bNE0Ky01tXLfcQGcUUTAre14GnQYRMmtxdyGAVQE5vvH+en356cSU4bXzFzP++3mP3mWh7dGmLl4Xu9r3759aNSo0W/++euvv46ysjKMGDECLi4uGDx4sEAdEdEf8/b2xqJFizBq1ChMnDgRXbp0wahRozBz5kyb/jx65coVLFq0CAsWLICPjw/S0tLQv39/6SwiUrDbT6JZtWoVEhISpHMUa+vWrfDy8kJ4eLh0CtWy/Px8nj5O4gwGA3x8fNC0aVPpFKI606hRIxQVFeFvf/sbUlNTcerUKeh0OuzZs4eHkdAfKioqAgC0a9dOuISU7NatWyguLuaAnO5p2LBhiIiIQFlZGUwmE0wmE2bOnIm+ffuiefPmKCkpgclkQnl5OQwGAx5//HHpZCKiP+Wnn35CTEzMnSf1ubm54cKFC9i0aROmT58OHx+fO//Z2zeM0n+pLBaLRTrCGnbt2oW4uDiUl5fzUb4O4tdff4Wfnx+WLFmCUaNGSedQLTCZTIiMjMSvv/6KnJwctGrVSjqJiGrZO++8g1mzZuHtt9/G9OnTpXOIAACnT59GbGwsKioqkJGRwYtqRLXEYrFg4sSJWLFiBdLS0hATEyOdRET0u6qrq/HFF1/grbfewpkzZ5CYmIhZs2bZ1AmLFy9exPz587FkyRKo1WpMnToVr7zyCm+oJyJRS5YswaRJk7BgwQKkpKRI5yhaZGQkHnnkET4ByAH16NEDXbp0wYcffiidQgo2ceJEfP/998jLy5NOIaozhYWFCAwMRF5eHp599tm7fu/2ia1E/9uqVaswceJElJaW3hkrEdW1goICdOzYEd9++y3+8pe/SOeQnSgrK4OHhwfS09PRp08f6RxyUCaTCQ0bNkRmZiZ69+4tnUMKtG/fPkRFReHy5ct3DcjpLucd9l2sl5cXAPAUcgfSpEkTJCQk8MKpA/H29kZmZiY8PT2h0Wjw008/SScRUS2bMWMGPvroI8yaNQszZ86UziECALRt2xaHDh3Co48+ih49evCHYUS1RKVSYfHixUhKSkJCQgJyc3Olk4iIfle9evUwcuRIGI1GrFq1Ct999x2CgoIQExODNWvWoLy8XKSrqqoKmZmZSEpKQuvWrfH555/j9ddfx5kzZ/D6669zPE5Eor744gtMnjwZb731Fsfjwq5cuYLc3FzEx8dLp1Ats1gsOHHiBIKCgqRTSOEMBoNN3VxJVBe0Wi08PT3x9NNP/+b3OB6nP1JUVISAgACOx0mU0WiESqVC+/btpVPIjtx+uoanp6dwCRGR9ajVagD/fVoH/TGHfSfr7e0NgANyRzNp0iT8+9//xuHDh6VTqJb4+voiKysLTk5O6N27Ny7CU1UDAAAgAElEQVRfviydRES1bOLEifjiiy8wf/58TJgwAdXV1dJJRPDx8YFWq8Wzzz6LqKgobNy4UTqJyCGoVCosXboUsbGxiIuLw7fffiudRET0h5ycnPD888/j+++/x9atW+Hq6opRo0ahWbNmGDlyJHbv3m31R5VXVFQgNzcXr7zyCvz8/BAbG4vi4mIsXLgQxcXF+J//+R94eHhYtYGIqCZbt27Fiy++iFmzZuEf//iHdI7ibdu2DU5OTjwlzgGdPXsWJpMJwcHB0imkcByQkxLpdDpERETcGZkQ3Y+ioiI89thj0hmkcEajES1atOD1I/pTOCAnIiW4/d6+oqJCuMS2OeyA/PYJ5CaTSbiEalOPHj3wzDPPYMGCBdIpVIuaNm0KrVaL0tJSREVF4erVq9JJRFTLnn/+eWzduhWrVq1CcnIy7/Ajm+Dm5oZt27bhxRdfxPDhw/Hxxx9LJxE5BCcnJ6xZswbdu3dHnz59YDAYpJOIiO6pXr16iI+PR1paGn788UfMmTMHJ06cQFxcHHx8fNCjRw+89tpr0Gq1uHDhwkP9f12+fBkHDx7Eu+++i5iYGPj4+CA0NBRpaWkYN24cCgsLcfDgQYwbNw4NGjSopT8hEdGDy8zMxPDhwzFx4kS89dZb0jkEYPPmzejTp8+dn4GQ49Dr9VCpVOjUqZN0CinYtWvX8Msvv3BATopSWVmJAwcOQKPRSKeQneGAnGyB0WhEYGCgdAbZGQ7IiUgJeAL5/XGWDrCW2xdPeQK540lJSUFycjKKi4vRpk0b6RyqJX5+ftDpdAgNDUXfvn2h1Wp5lyyRg4mLi0N6ejri4+MxaNAgbNy4kaMYEufk5ISPP/4Y7du3x5QpU1BYWIgFCxbwkZNED8nFxQVbtmxBTEwMNBoNcnNz+d6diOyCr68vXnrpJbz00ku4ePEi9u/fj/3792Pjxo2YM2cOAMDDwwOBgYFo3749WrZsCXd3d3h4eMDT0xMNGzZESUkJysrKUFpaCrPZjF9++QUnT56E0WjEpUuXAADNmjVDeHg4FixYgIiICAQEBEj+sYmIftfevXsxcOBADB8+HAsXLpTOIfx32JmVlYWVK1dKp5AV5Ofnw8/PDw0bNpROIQU7ceIEAHBATopy5MgRmEwmREdHS6eQnSkqKsLYsWOlM0jhjEYjnnzySekMsjMckBOREri4uADggLwmDjsg9/b2BsABuSMaMmQIZsyYgY8//hjz5s2TzqFaFBAQgP379yMsLAzx8fHYtWsXx6VEDiY8PBz79u1Dnz59EBsbix07dvCDKdmElJQU+Pj4YMyYMfjxxx/x5Zdfon79+tJZRHbNzc0NO3fuRGRkJDQaDXJycvDoo49KZxER3bemTZti6NChGDp0KADg119/hcFgQGFhIYxGIwoLC5GdnY3S0tI7v65duwZPT094eHjcGZVfv34dvXr1wrBhw+4Mz1u1aiX8pyMiurfs7GzEx8djyJAhWL58OVQqlXQSAdi2bRtUKhX69esnnUJWkJ+fj+DgYOkMUjiDwQA3Nzf4+/tLpxDVGZ1Oh1atWqFdu3bSKWRHfv31V5hMJp5ATuIKCgruXLsiul8ckBOREvAE8vvjsANyZ2dnNGjQgANyB+Ts7IxJkybhX//6F2bPns1HdTqY9u3bIzMzE+Hh4Rg0aBC2b98OV1dX6SwiqkVdu3bFgQMHEB0djYiICGRkZMDX11c6iwjJyclo0aIFBg0ahNjYWGzbtu3OTYlE9GC8vb2RkZGBXr16oXfv3sjOzkbjxo2ls4iIHkiTJk3QpEkThIaG/qn/3l//+ldoNBoMGDDASmVERLUrKysLcXFxiIuLw8qVK/mEJhuyefNm9O7dm9fEHZRer0efPn2kM0jhDAYDAgMD+bWfFEWr1fL0cfrTTp48CQAckJOoK1eu4PLlywgMDJROITtTWloKZ2dnHqZFRA6NA/L749Cf/r29vWEymaQzyArGjRuH6upqrFq1SjqFrOCJJ57Avn37cPToUQwYMAA3b96UTiKiWta5c2fk5eXhypUrCAsLw4ULF6STiAAAERERyMvLQ1FREZ599lmcPXtWOonI7jVp0gRarRZlZWWIiorCtWvXpJOIiOpMWVkZjh07htTUVOkUIqL7kpOTg/j4ePTr1w+rV6+Gk5OTdBL9f65du4a9e/di8ODB0ilkBZWVlTAajQgKCpJOIYUzGAzo2LGjdAZRnbl27Rq++eYbaDQa6RSyM0VFRXB1dUXLli2lU0jBCgoKAIADcvrTzGYzPDw8pDOIiKyKA/L749ADci8vL55A7qAaNWqEF154AQsXLkRVVZV0DlnBU089hfT0dBw8eBCJiYn8Yk7kgNq0aYPc3FyoVCqEhITg1KlT0klEAICgoCAcOXIEzs7O6N69O44dOyadRGT3WrRoAZ1Oh4sXL6Jv374oKyuTTiIiqhNff/01qqqq8J///AeZmZnSOURE96TT6RATE4O+fftizZo1cHZ22AeY2qUdO3bAYrGgX79+0ilkBYWFhbh58yaCg4OlU0jhOCAnpcnKykJ1dTXCw8OlU8jOnDp1Cm3btuUNlyTKaDSiQYMG8PPzk04hO2M2m+Hp6SmdQURkVRyQ3x+HH5CbzWbpDLKSlJQUnDlzBjt37pROISvp1q0bMjMzodPpkJiYiMrKSukkIqpljz76KLKysuDt7Y2QkBDk5+dLJxEB+O9rMzs7G+3atUNoaCj27NkjnURk9wICApCVlYVTp05h4MCBfMoMESnCoUOHoFar4eTkhNmzZ0vnEBH9Ia1Wi/j4eMTHx2P16tUcj9ugTZs2ITo6Go0aNZJOISvQ6/VwdnZGhw4dpFNIwW7cuIGzZ89yQE6KotPp0KVLF/j6+kqnkJ05efIkHnvsMekMUjij0Yj27dujXj2Hnn6RFXBATkRKcHtAXlFRIVxi2xz6XYSXlxdMJpN0BllJu3bt0LdvXyxYsEA6hayoR48eyMjIwJ49ezB8+HCOyIkcUNOmTbF//360bdsWYWFhOHr0qHQSEQCgYcOG2LNnD/r164f+/ftj7dq10klEdi8wMBCZmZn45ptvMGzYML63IyKHl5eXh6qqKlRVVeHrr7/G/v37pZOIiH5jz549iI+Px4ABA/Dll19yPG6DzGYz9u7di8GDB0unkJXk5+ejffv2cHV1lU4hBSsoKEBVVRUH5KQoWq0W0dHR0hlkh4qKitCuXTvpDFK4goICBAYGSmeQHeKAnIiUgCeQ3x+HHpB7e3ujpKREOoOsaNq0acjJycHXX38tnUJW1LNnT2zbtg07d+7EmDFjUF1dLZ1ERLWsYcOG0Gq16Nq1K6KiopCVlSWdRAQAcHV1xZo1azBr1iwkJSUhNTVVOonI7j355JPYvXs3dDodRo8ezfd2ROSwLBYLDh06dOfrnLOzM99LEJHNyczMxIABA5CYmMiTx21YWloaqqqq0L9/f+kUshK9Xo+goCDpDFI4g8EAZ2dnBAQESKcQ1Yni4mKcPn0aGo1GOoXsUFFREb9ekjij0cgBOT0QDsiJSAlcXFwAcEBeE4cekHt5eXFA7uDCw8Px5JNPYtGiRdIpZGVRUVFIS0vDhg0bMHbsWA6NiByQm5sbduzYgZiYGMTFxSEzM1M6iQgAoFKpkJqaioULF+LNN9/E2LFjeWoy0UPq3r07tm/fjo0bN2LKlCnSOUREVlFYWHjXk/EqKyuRk5ODvLw8wSoiov8nIyMDAwcOxPDhw7F8+XI+9tyGbd68GVFRUfDx8ZFOISvJz8/ngJzEGQwGBAQE8CR8Uow9e/bA3d0d3bp1k04hO3P58mVcvXoVjz32mHQKKVhlZSVOnz7NATk9EA7IiUgJeAL5/XHoK8IckCvD1KlTsWHDBpw/f146hawsOjoa27Ztw5o1azB+/HhYLBbpJCKqZS4uLli/fj0SExMRHx+PjRs3SicR3TFlyhRs3rwZa9aswZAhQ1BeXi6dRGTXoqKisH79enz66ad47bXXpHOIiGrdoUOHfjPGdHZ2xptvvilURET0/2RkZGDQoEF4/vnnsWzZMo7HbVhJSQn27NmDhIQE6RSykrKyMhQXFyM4OFg6hRTOYDCgY8eO0hlEdUan06FXr168aYL+tKKiIgDggJxEFRcXo6KiggNyeiClpaUckBORw3N2doZKpeKAvAYOfVXYy8vrrpOeyDENGzYMvr6++Oijj6RTqA7ExMRg3bp1+PzzzzF16lTpHCKyAicnJyxbtgyTJ0++cwoaka0YOHAgsrKykJeXh4iICPz666/SSUR2bcCAAVixYgXmzp2Lt99+WzqHiKhWHT58GE5OTnf9s8rKSmi1Wnz99ddCVUREwO7duzFw4EAkJSVh6dKlHI/buG3btqGqqgoDBw6UTiErOX78OKqrq3kCOYnjgJyUpKqqCvv374dGo5FOITtkMBhQv359tGrVSjqFFKygoAAA0L59e+ESskc8gZyIlEClUsHJyYkD8ho49JVhnkCuDK6urkhJScGSJUtw7do16RyqAwMHDsS6deuwePFivPzyy9I5RGQFKpUK8+fPx5w5czBu3DjMnz9fOonojm7duuHw4cO4fPkyunfvjpMnT0onEdm15ORkLFq0CLNmzcLChQulc4iIas2BAwd+98KkWq3GW2+9JVBERPTf8XhCQgJGjBiBTz/9lONxO7B+/XrExMTAx8dHOoWsJD8/H25ubmjbtq10CilYZWUlioqKOCAnxfjqq69w9epVREdHS6eQHTIajWjfvv1vbhonqktGoxGPPvoovLy8pFPIDpnNZnh4eEhnEBFZnVqt5oC8Bg59dZgDcuWYMGECVCoVli5dKp1CdSQhIQFr167Fhx9+iP/5n/+RziEiK5kxYwYWLVqE6dOnY+bMmdI5RHc89thjyM3NRcOGDRESEoJvvvlGOonIrk2aNAlvvfUWXn75ZaxYsUI6h4jooZWUlPzhTWa3bt3Czp078f3339dxFREp3aZNmzBw4EC8+OKLHI/biUuXLmHfvn1ITEyUTiEr0uv16Ny5M/9OkqjTp0/j5s2bHJCTYuh0OrRo0YKveXogRqMRgYGB0hmkcHwd0sPgCeREpBRqtRoVFRXSGTbNoa9GeXl5wWQySWdQHfDy8sK4ceOwYMEC3LhxQzqH6siQIUOwfPlyvP/++3jjjTekc4jISiZPnoxVq1Zh/vz5mDx5Mqqrq6WTiAAAzZo1Q3Z2Nrp06YJevXph9+7d0klEdu3VV1/FjBkzMG7cOGzatEk6h4jooRw+fBgWi+UPf9/Z2Rlz5sypwyIiUrrly5cjMTEREydOxEcffQSVSiWdRPdh06ZNUKvViIuLk04hK8rPz0dQUJB0BimcwWCASqXiEI0UQ6fT8fRxemAFBQXo0KGDdAYpHAfk9DA4ICcipXBxceEJ5DVw6AG5t7c3Kisrcf36dekUqgMvv/wyrl27hjVr1kinUB164YUX8OmnnyI1NRVz586VziEiK0lOTsbmzZuxfPlyvPDCC6isrJROIgIAeHh4IC0tDc8//zzi4+PxySefSCcR2bW5c+diypQpSEpKQkZGhnQOEdEDO3z4MFxcXP7w92/duoXNmzfDaDTWYRURKdWiRYswbtw4/P3vf8fChQs5Hrcj69evR//+/flocQen1+sRHBwsnUEKZzAY0LJlSw6JSBHMZjOOHj0KjUYjnUJ2qLKyEqdOneJwl8RxQE4PgwNyIlIKtVrNAXkNHHpA7uXlBQA8hVwhmjVrhuHDh+O9997j6bQKM2bMGHz88cd49dVX8fbbb0vnEJGVxMfHIz09Hdu3b0dCQgKfOEE2w9nZGZ988glee+01TJgwATNnzrzniaNEdG/z589HcnIyBg8ejJycHOkcIqIHkpeX94cXJZ2dneHq6orq6mreCE1EVvfOO+9g6tSpmDdvHq+b2Zkff/wReXl5GDZsmHQKWdGlS5fwyy+/8ARyEmcwGNCxY0fpDKI6kZWVhcrKSkRGRkqnkB06ffo0KioqeAI5ibp27RouXrzI1yE9kOrqapSXl3NATkSKwAF5zZylA6zp9oC8pKQEzZo1E66hujB9+nR06tQJO3bswIABA6RzqA5NmDABzs7OGD9+PCorK/Haa69JJxGRFURERCA9PR1xcXGIjY1FWloaP9ySTVCpVEhNTUXr1q0xbtw4/Pzzz1i2bBnUarV0GpHdUalU+PTTT1FSUoK4uDhkZWWhS5cu0llERPeturoaX3311V03lN0+jfypp55CUFAQ/Pz80KpVK7Rp00Yqk4gcnMViwbRp0/DRRx9h+fLlGD16tHQS/Unr1q2Dl5cXYmJipFPIivR6PQDwBHISZzAY0KNHD+kMojqh0+nw1FNPoWnTptIpZIcKCgqgUql48jOJKigoAAC+DumBlJWVobq6mj9jJyJF4IC8Zg49IPf29gbw3wE5KUNgYCD69++PuXPnckCuQGPHjgUAjB8/HgA4IidyUCEhIcjKykJMTAyioqKQnp6Oxo0bS2cRAQBGjhyJFi1aICEhARcuXMCWLVvu3NRIRPfPyckJq1evxoABAxATE4MDBw6gU6dO0llERPelrKwM//rXv9CqVSv4+fnBz88Prq6u8PT0xKuvvoq4uDjpRCJycBUVFRgxYgS2b9+ODRs2ICEhQTqJHsC6deswaNAguLq6SqeQFen1evj6+vIQJBJlsVhgNBrx4osvSqcQ1QmdToeBAwdKZ5CdKigoQIsWLeDh4SGdQgpmNBrh6uoKf39/6RSyQ6WlpQDAr2NEpAgckNesnnSANd0e65hMJuESqkuzZs3CV199xcfdK9TYsWPx6aefYvbs2Xjrrbekc4jISv7yl78gJycHP/30E8LCwvDjjz9KJxHdodFokJWVBb1ej5CQEFy4cEE6icguubi4YPPmzejUqROio6Nx+vRp6SQiovvi6emJyZMnIy4uDk8++SQaN24MDw8P+Pj44Ny5c9J5ROTgysvLMWDAAOzatQs7d+7keNxOnTp1Ct9++y0SExOlU8jK8vPzERQUJJ1BCnfhwgWUlJSgY8eO0ilEVnfmzBkUFhZCo9FIp5CdMhqN6NChg3QGKZzRaES7du3g5OQknUJ2yGw2AwBPICciReCAvGaKGJDzBHJlefrppxESEoJ3331XOoWEcEROpAwdOnRAbm4uKioqEBERwTEO2ZS//vWvOHz4MG7evImePXveeZwgEf05bm5u2LlzJ5o3b47w8HCcPXtWOomI6IH5+fnxPSsRWdW1a9fQu3dvHDlyBHv37uUwyo6tXbsWTZo0Qa9evaRTyMr0ej2Cg4OlM0jhDAYDAHBAToqg1WrRoEED9OjRQzqF7BQH5GQL+Dqkh8EBOREpCQfkNXPoAbmzszPc3Nw4IFeg6dOnIz09HceOHZNOISEckRMpQ6tWrZCbm4v69eujZ8+eKCwslE4iuqNNmzY4dOgQWrZsiR49eiA3N1c6icgueXl5ISMjAx4eHtBoNPjll1+kk4iIHoi/vz9vhCEiq/nll18QHh6OU6dO4cCBA+jWrZt0Ej2E9evX47nnnoOzs7N0ClmRxWLBiRMneAI5iTMYDGjcuDGaNGkinUJkdTqdDmFhYWjQoIF0CtmpgoICBAYGSmeQwvF1SA+DA3IiUhIXFxdUVFRIZ9g0hx6QA/8dG3BArjx9+/ZF586dMW/ePOkUEsQROZEyPPLII8jOzkbLli0RGhrKm4fIpvj4+Nw5+U+j0WDDhg3SSUR2ydfXFzqdDpWVlejduzeuXr0qnURE9KdxQE5E1nL27FmEhobCZDIhNzeXpxnbue+++w4nTpxAUlKSdApZ2ZkzZ1BSUsK/syTOYDDw9HFShOrqauzfv59PaaEHdunSJVy+fJknP5OoqqoqnD59mgNyemAckBORkvAE8po5/IDc29sbJpNJOoPqmEqlwsyZM7F+/XqcPHlSOocEcUROpAwNGzaEVqvF448/jvDwcBw8eFA6iegOV1dXrF27FmPGjEFiYiLee+896SQiu/Too49i//79uHr1Kvr27YvS0lLpJCKiP8XPzw/nzp2TziAiB2MwGPDss8+iQYMGOHz4MAICAqST6CGtXr0aAQEBeOaZZ6RTyMr0ej1UKhU6deoknUIKxwE5KcW3336LS5cucUBOD6ygoAAAONwlUT/88ANu3LjB1yE9MLPZDLVaDVdXV+kUIiKr44C8Zg4/IPfy8rpz9xQpy7BhwxAQEIB3331XOoWEcUROpAzu7u7YuXMnIiIiEB0dDa1WK51EdIeTkxM++ugjLFiwADNnzkRKSgqqq6uls4jsjr+/P3Q6HU6fPo2BAwfi5s2b0klERPfNz88PFy5cQGVlpXQKETmI3Nxc9OzZE61atUJ2djYeeeQR6SR6SFVVVVi3bh2Sk5OhUqmkc8jK8vPz4e/vD29vb+kUUjgOyEkptFotmjVrhqCgIOkUslMFBQVwd3dHy5YtpVNIwW7fyNC+fXvhErJXZrOZp48TkWJwQF4zRQzIS0pKpDNIgJOTE6ZPn47PP/8cZ86ckc4hYRyREymDq6srNm7ciKFDhyIuLg6bN2+WTiK6S0pKCjZs2IClS5fiueeew40bN6STiOxO+/btsWfPHnz77bcYNmwYh5hEZDf8/f1RWVmJn3/+WTqFiBzA1q1b0bt3b4SGhkKn06Fhw4bSSVQLdDodfv75ZyQmJkqnUB3Iz89HcHCwdAYp3NWrV3Hx4kUOyEkRdDodoqOjeZMWPTCj0YgOHTrwNUSijEYjmjVrxs+A9MA4ICciJeGAvGaKGJCbTCbpDBIyYsQItGjRAvPmzZNOIRvAETmRMjg5OeGzzz7DxIkTMWzYMKxYsUI6iegugwcPRnp6Ovbu3YvIyEhcvnxZOonI7jzxxBPYvXs39u7di1GjRvFEfyKyC/7+/gCAs2fPCpcQkb374IMPMGTIEIwdOxZbtmxBgwYNpJOolqxevRrdu3fnaYIKodfreQouiTtx4gQAcEBODq+srAxHjhyBRqORTiE7VlBQgA4dOkhnkMIZjUYEBgZKZ5AdKy0t5YCciBSDA/KaOfyA3NvbmyeQK5harcbf//53LF++HD/++KN0DtkAjsiJlEGlUmHBggWYM2cOxowZgwULFkgnEd0lPDwcBw8exPnz5xEaGsohGdED6N69O7Zt24bNmzfjpZdeks4hIqrRo48+CmdnZ37fJ6IHZrFYMGPGDEybNg2vv/46PvjgA9Sr5/CX+BWjrKwMaWlpSE5Olk6hOnDr1i0YjUYOyEmcwWCAm5sb/Pz8pFOIrCo7OxsVFRWIjIyUTiE7xuEu2QK+Dulhmc1meHh4SGcQEdUJDshr5vBXl728vDggV7gxY8bAx8eH40G6gyNyIuWYMWMGFi5ciFdeeQUzZ86UziG6S+fOnXH48GG4uLigW7du+Pe//y2dRGR3oqKisH79eixduhTTpk2TziEiuidnZ2c0b94c586dk04hIjt08+ZNJCYm4oMPPsCaNWuQmpoqnUS1bMuWLbh58yaGDBkinUJ1oLCwEBUVFQgODpZOIYUzGAzo0KEDb0gih6fT6RAcHIzmzZtLp5CdqqioQHFxMYe7JI4DcnpYZrOZJ5ATkWK4uLigoqJCOsOmOfzVAA7IydXVFS+//DKWLFmCX3/9VTqHbMTYsWPx0UcfYfbs2fjXv/4lnUNEVjRlyhQsWbIE7733HqZMmQKLxSKdRHTHo48+ipycHDz++OMIDQ1FZmamdBKR3YmPj8fKlSuxaNEizJ07VzqHiOie/P39OSAnoj/typUr0Gg00Gq12LNnDxITE6WTyApWr16N2NhY+Pr6SqdQHdDr9XB2dub4h8QZDAZ07NhROoPI6nQ6HaKjo6UzyI6dPHkSlZWV6NChg3QKKZjJZMLPP//M95D0UDggJyIl4QnkNVPEgNxkMklnkLC//e1vcHNzw6JFi6RTyIZMnDgRH3/8MV577TWe2kTk4MaPH481a9bgk08+wciRI1FZWSmdRHSHp6cnduzYgf79+yM+Ph6rV6+WTiKyO0lJSfjwww/xj3/8A++//750DhHRH/Lz88PZs2elM4jIjhQXF+PZZ5/F6dOnkZ2djbCwMOkksoKffvoJWVlZSEpKkk6hOpKfn4/AwEC4urpKp5DCcUBOSnDhwgWcOHECGo1GOoXsmNFoRL169dCuXTvpFFIwo9EIALyRgR4KB+REpCQckNfMWTrA2ngCOQGAu7s7UlJS8O677+KVV15Bw4YNpZPIRkyYMAGurq4YO3YsysvL8e6770onEZGVDBs2DJ6enhgyZAhKSkqwfv16/pCObIaLiwtWr16Ndu3aYcSIESgqKuLNTUR/0sSJE1FRUYGXX34Z3t7eePHFF6WTiIh+w9/fHzqdTjqDiOzE999/j9jYWPj4+ODIkSNo2bKldBJZydq1a+Hp6Yl+/fpJp1Ad0ev1CAoKks4ghSsvL8fZs2c5ICeHp9VqUb9+ffTs2VM6hexYQUEBWrdujQYNGkinkIIZjUa4uLigVatW0ilkx8xmM9q0aSOdQURUJzggr5kiTiDngJwAYPLkyahXrx4+/PBD6RSyMaNHj8aaNWuwYMECvPLKK7BYLNJJRGQlffv2RWZmJrKysjBo0CBcv35dOonoDpVKhdTUVCxduhRz5szBmDFjeFo+0Z80depUzJo1C+PHj8fGjRulc4iIfoMnkBPR/dLpdOjZsyc6duyIvLw8jscd3Oeff47nnnsO9evXl06hOpKfn88BOYkzGo2orq7mgJwc3u33VW5ubtIpZMcKCgp46jOJMxqNeOyxx+Ds7PBnhZIVlZaW8gRyIlIMDshrpogBeWVlJcrLy6VTSJi3tzdSUlIwf/58XL16VTqHbMywYcOwZs0afPjhh5gwYQKqq6ulk4jISkJDQ5GVlYWvvvoKvXv3hslkkk4iusuYMWOwadMmrFu3DlT+s7gAACAASURBVAkJCXwfS/QnzZkzBykpKUhOTkZ6erp0DhHRXfz9/XH58mWUlZVJpxCRDVu8eDFiY2MxePBgpKenw8vLSzqJrOjrr7+GXq/HqFGjpFOojpSVleGHH35AcHCwdAopnMFggFqtRkBAgHQKkdVYLBbs27cPGo1GOoXs3PHjx9GpUyfpDFI4o9HIGxnooZnNZnh4eEhnEBHVCQ7Ia+bwA3Jvb28A4CnkBACYNm0a6tWrh0WLFkmnkA167rnnsHXrVqxatQp/+9vfOCIncmBdunRBTk4OTp8+jYiICPz666/SSUR3GTBgALKysnD48GGEh4fj4sWL0klEdmXevHlITk7G4MGDceDAAekcIqI7/Pz8AADnzp0TLiEiW1RZWYmXXnoJkydPxv/5P/8Hn332GdRqtXQWWdnKlSsRGBiIbt26SadQHcnPz0d1dTVPICdxBoMBAQEBcHFxkU4hsppjx47h4sWLHJDTQ6murobRaETnzp2lU0jhjEYjAgMDpTPIzpnNZp5ATkSKwQF5zRx+QH77dBaeLkrAf28omDp1KhYsWMBTyOl39evXD1u3bsWXX36J5ORkVFZWSicRkZXcfgx4SUkJQkNDcf78eekkors888wzOHz4MK5evYru3bujsLBQOonIbqhUKnz66aeIi4tD//798c0330gnEREB+O8J5AAH5ET0W2azGQMHDsTy5cuxevVqvPbaa1CpVNJZZGU3btzA+vXrMWbMGOkUqkP5+flwd3dHmzZtpFNI4QwGAzp27CidQWRVWq0Wvr6+eOKJJ6RTyI4VFxejrKyMJ5CTqOrqapw8eZIDcnpoHJATkZKo1WpUVFRIZ9g0xQzIeQI53TZ16lQ4OTnhgw8+kE4hGxUbG4tt27Zh27ZtHJETObjWrVsjNzcXarUaPXv2xMmTJ6WTiO4SEBCA3NxcNGrUCD169MChQ4ekk4jshpOTE7788kv07NkTffr0wfHjx6WTiIjQuHFjeHh44OzZs9IpRGRDTp8+jW7duuHbb79FTk4Ohg8fLp1EdWTr1q0wm814/vnnpVOoDun1enTu3Bn16jn8j+jIxnFATkqg0+kQHR3Nr7n0UI4fPw6VSsWvmSTqzJkzuHHjBgfk9FCqq6tRXl7OATkRKYaLiwtPIK+Bw39S4oCc/jcvLy9MmzYNCxcuxJUrV6RzyEbFxMQgIyMDu3btwvDhw/nNhMiBNWvWDAcOHEDz5s0RGhqK77//XjqJ6C6PPPIIDhw4gG7duiE6Ohq7du2STiKyGy4uLti8eTM6d+6MyMhIGI1G6SQiIrRs2ZInkBPRHQcPHkT37t2hVqtx5MgRdO3aVTqJ6tDKlSvRt29fNG/eXDqF6lB+fj6CgoKkM0jhKisrcerUKY4hyaFdv34dhw4dgkajkU4hO3fixAn4+/tzcEmibl/bbt++vXAJ2bPS0lJYLBZ+PSMixVCr1dz81UARA3KVSsUBOd1l6tSpcHFxwcKFC6VTyIaFhYUhPT0dmZmZGDRoEG7evCmdRERW0qhRI+h0OgQFBaFXr144fPiwdBLRXdzd3ZGWloakpCQMGDAAS5YskU4ishsNGjTAjh074Ofnh+joaJw5c0Y6iYgUzt/fnyeQExEAYMWKFYiIiEBISAgOHToEf39/6SSqQ2fOnEFWVhZGjRolnUJ1TK/XIzg4WDqDFO7UqVO4efMmB+Tk0HJycnD9+nVERkZKp5CdO378ODp37iydQQpXUFCApk2bwsfHRzqF7JjZbAYADsiJSDE4IK+Zww/InZ2d4ebmBpPJJJ1CNsTDwwNTp07FBx98wFPI6Z5CQkKQkZGBnJwcDBw4EDdu3JBOIiIr8fDwwK5duxAWFgaNRgOdTiedRHQXJycnfPLJJ5gzZw4mTZqElJQUWCwW6Swiu+Dl5YWMjAx4enpCo9Hgl19+kU4iIgXz8/PjCeRECmexWJCamooxY8Zg2rRp2LhxI9zc3KSzqI6tWrUKvr6+iI2NlU6hOnTp0iVcvHiRJ5CTOIPBAJVKhcDAQOkUIqvR6XTo1KkT/Pz8pFPIzp04cQKdOnWSziCFMxqN/L5ND40DciJSGg7Ia+bwA3Lgv2MBnkBO/9uUKVPg6uqK999/XzqFbNyzzz6LrKwsHD16FAMGDMD169elk4jISlxdXbFp0yYMHjwYcXFx2Lp1q3QS0W/MmDEDK1euxJIlSzBy5Eh+4CG6T76+vsjKykK9evUQHR2Nq1evSicRkUL5+fnxBHIiBSstLcXAgQPx9ttv4/PPP8fbb7+NevUUcZme/n8sFgu+/PJLJCcnQ61WS+dQHfr+++8BgCeQkziDwQA/Pz94eHhIpxBZjVarRXR0tHQG2bnq6moYjUaeQE7iOCCn2sABOREpDQfkNVPElWkOyOn3eHh44OWXX8aiRYtw6dIl6RyycV26dMHevXvx7bffIiYmBqWlpdJJRGQlzs7OWLFiBUaMGIHnnnsOq1atkk4i+o0XXngB6enp2L59O/r06cOn7RDdp6ZNm0Kn08FkMiE2Npbv6YhIhL+/P86ePcsniRAp0A8//IAePXrg6NGjyM7ORnJysnQSCcnKysKpU6cwYsQI6RSqY3q9Hr6+vnjkkUekU0jhDAYDOnbsKJ1BZDU///wz8vPzodFopFPIzhUXF6OsrIwnkJM4DsipNtz+mQhvIiQipeCAvGYckJOiTZ48GQ0aNMA777wjnUJ24KmnnsKBAwdQWFiIPn363Lk7k4gcT7169fDpp5/i5ZdfxujRo/HBBx9IJxH9RlRUFHJzc1FQUICQkBCcP39eOonILvj5+UGn0+GHH37AgAEDcOPGDekkIlIYf39/3LhxgzezEynMvn370LVrVzg5OeHo0aPo1q2bdBIJWrlyJZ555hk8/vjj0ilUx/Lz83n6ONkEDsjJ0el0OqjVaoSGhkqnkJ07fvw4VCoVv2aSKLPZjJ9++okDcnpoPIGciJRGrVajoqJCOsOmKWJA7u3tzQE5/S4PDw/MnDkTH330EUdXdF86deqEvXv3oqioCNHR0bh69ap0EhFZiUqlwrvvvou5c+di6tSp+Oc//ymdRPQbjz/+OPLy8nDr1i1069btzqOwieje2rVrhz179uDf//43hg4disrKSukkIlIQPz8/AMDZs2eFS4iorixduhR9+vRBZGQk8vLy4O/vL51EgkwmE7Zt24ZRo0ZJp5AAvV7PATmJs1gsMBqNHEOSQ9PpdOjRowdPWKWHduLECfj7+3NsSaKMRiMsFgsH5PTQzGYzXFxc4OLiIp1CRFQnXFxc+HPgGihiQM4TyOleJkyYgCZNmmDu3LnSKWQnOnfujOzsbFy4cAERERG4ePGidBIRWdGMGTOwePFivPHGG5g5cyYsFot0EtFdWrdujUOHDqFt27bo1asXcnJypJOI7MLjjz+O3bt3IysrCyNHjkR1dbV0EhEphL+/P1QqFc6dOyedQkRWduPGDYwaNQoTJ07Em2++iXXr1sHd3V06i4StW7cOFosFQ4cOlU6hOmaxWHDixAkEBQVJp5DCnT9/HmazmQNyclgWiwV79+6FRqORTiEHcPz4cXTu3Fk6gxTOaDRCrVajTZs20ilk58xmM2+IISJFUavVsFgsHJHfg2IG5CaTSTqDbFT9+vXx+uuvY9myZTh16pR0DtmJwMBA5OXloaysDKGhofzBP5GDmzBhAr788ku8//77mDhxIkeGZHMaNWoEnU6H6OhoREdHY/369dJJRHahW7duSEtLw5YtWzBmzBjeJEREdaJ+/frw9fXlCeREDu78+fMIDQ3Fjh07kJ6ejhkzZkClUklnkQ1YuXIlEhIS0LBhQ+kUqmM//PADzGYzTyAncQaDAQA4ICeHpdfr8dNPPyE6Olo6hRzAiRMn0KlTJ+kMUjij0YiAgACo1WrpFLJzHJATkdLc/t5569Yt4RLbpYgBube3N08gp3saPXo02rZtizfeeEM6heyIv78/cnNz4erqipCQEBQVFUknEZEVDR8+HFu2bMGqVauQlJTEN5hkc1xdXbFu3TpMmTIFw4cPxzvvvCOdRGQXIiIisGHDBnz55ZeYNm2adA4RKYS/vz9vRCZyYDk5OfjrX/+Kmzdv4uuvv+Z4ie44fvw4vvrqK4waNUo6hQTo9XqoVCqO0EicwWBA48aN4evrK51CZBU6nQ6NGzfGX/7yF+kUsnPV1dUwGo383k3ijEYjAgMDpTPIAXBATkRKwwF5zRQxIPfy8uKAnO7JyckJs2fPxpo1a3DixAnpHLIjjzzyCLKzs9G8eXOEhIRAr9dLJxGRFcXFxSEjIwO7du3CoEGDcP36dekkoruoVCq8++67WLBgAf7xj38gJSWFJ+YT3Yf+/ftj1apV+PDDD/HWW29J5xCRAvj7+/MEciIHtXTpUkRFRSEsLAyHDh1C27ZtpZPIhqxcuRKtW7dGr169pFNIQH5+Plq1agUvLy/pFFI4g8HAMSQ5NJ1Oh8jISNSrp4gpBFlRcXExysrK0LlzZ+kUUjij0YgOHTpIZ5ADKC0t5YCciBSFA/KaKeJTk6enJwfkVKNhw4YhKCgIs2fPlk4hO9OoUSPodDp06tQJYWFhOHr0qHQSEVlRr169sG/fPhw+fBh9+vThewyySSkpKdi4cSOWLl2KwYMH82YHovvw/PPPY/ny5Zg9ezbmz58vnUNEDs7Pz48nkBM5mBs3bmD06NGYOHEi3nzzTaxfvx7u7u7SWWRDKisrsWbNGowcOZKDNoXKz89HcHCwdAYRDAYDOnbsKJ1BZBU3btxAbm4uNBqNdAo5gOPHj0OlUvFrJomqrq7GyZMneQI51QqeQE5ESnN7QF5RUSFcYrucpQPqgre3N0wmk3QG1ZJbt25h69atVvnfjo6Oxvvvv4+PP/7Y7h/dFxYWhmbNmklnKIaHhwd27tyJhIQEREVFIS0tDREREdJZRGQlXbt2RU5ODjQaDSIjI5GRkWH33zfI8SQkJKB58+bo378/IiMjsWPHDr5OiWowatQolJSUYNq0afD29saYMWOkk4jICnJycvDTTz+JNlRVVaFBgwbYsGGDaMcfadu2Lbp27SqdQTbMmtfn7JVWq8WmTZswffp0tG7dGhs3buT1OSux19fflStX4Ovri8aNG9fJ13++/myPXq9HXFycdAYRDAYDBg4cKJ1BZBV5eXkoLy9HVFSUdArdB1v4fH4vOp0OTZo0QXp6ulgDP5/TuXPnUF5ezgE51Qqz2QwPDw/pDLISW7tecv36dTRt2hRHjhzBtWvXpHPu4PUSZeEJ5DVTWSwWi3SEta1fvx5JSUm4desWVCqVdA49JJPJhIYNG0pn2LzMzEz07t1bOkNxKioq8PzzzyM9PR1bt27lvwMiB1dcXAyNRgMXFxfodDq0aNFCOonoN44fP47Y2Fi4u7sjIyMDrVq1kk4isnmvv/465s6dizVr1mDo0KHSOURUy3r37g2tViudYdNGjx6Nzz77TDqDbBivz90fXp+zDr7+7g9ff7bl1q1b8PDwwMqVKzF8+HDpHFKwy5cvw9fXl18jyGHNmDEDaWlpKCgokE6h+8DP5zXj53PSarXo3bs3Ll26hMaNG0vnkJ3r27cvmjZtipUrV0qnkBXwesn94WchZfnuu+/QpUsXFBUVISAgQDrHFp1XxHMSvby8UFVVhfLycukUqkWZmZmwWCz89b9+2dJdW0rk4uKC9evXY+jQoejfvz+2bNkinUREVtSmTRvk5ubCyckJISEhOHXqlHQS0W907twZR44cQf369dG9e3d899130klENu/NN9/E1KlTkZycjN27d0vnEJEVjB49Wvzzu63+io6Olv7XQ3aE1+d+/xevz9UNvv74+rMnRqMRFRUVCA4Olk4hhTMYDACAjh07CpcQWYdOp4NGo5HOoD+Bn8//+Bc/nxPw3/eRPj4+HI9TrTCbzfD09JTOICvj9ZLf/8XrJcrEE8hrppgBOQCUlJQIlxCREjg5OeGzzz7DhAkTMHToUKxatUo6iYisqHnz5jhw4ACaNGmCkJAQ6PV66SSi32jevDlycnLwxBNPICwsDBkZGdJJRDbvvffew8iRIzFkyBBkZ2dL5xARERERkR3T6/VQq9UIDAyUTiGFMxgMcHd3h5+fn3QKUa27dOkS/vOf/3BATkQOxWg08sYvqjUckBOR0nBAXjNFDMi9vb0BcEBORHVHpVJh4cKFeO211zB69Gh88MEH0klEZEU+Pj7QarUICAhAr169cPToUekkot/w8PBAWloaBgwYgP79+2PZsmXSSUQ2TaVSYcmSJYiPj0d8fDy+/vpr6SQiIiIiIrJT+fn5CAwMhIuLi3QKKZzBYECHDh2gUqmkU4hqnVarRb169dCrVy/pFCKiWlNQUMCbEKnWcEBORErDAXnNFDEgv30CuclkEi4hIqVJTU3F3LlzMXXqVLzxxhvSOURkRd7e3tizZw+efvppREVFYd++fdJJRL/h4uKCL774Aq+++irGjx+P1NRU6SQim+bk5IQvvvgCISEhiI6OxrFjx6STiIiIiIjIDun1egQFBUlnEMFgMPAUU3JYOp0O3bt3v7MNICJyBEajkQNyqjUckBOR0nBAXjNFDch5AjkRSZgxYwYWL16Mf/7zn5g5c6Z0DhFZkZubG9LS0tCnTx/07dsX27dvl04i+g2VSoXU1FQsW7YMc+bMwejRo1FZWSmdRWSz1Go1Nm3ahCeffBK9e/eG0WiUTiIiIiIiIjuTn5/PATnZBA7IyZHt27cPGo1GOoOIqNaUlZXhwoULHJBTrSktLeWAnIgU5faAvKKiQrjEdilmQK5SqTggJyIxEyZMwOeff4758+dj0qRJqK6ulk4iIitxcXHBunXrkJSUhKFDh2Ljxo3SSUS/68UXX8SWLVuwYcMG9O3bF2azWTqJyGY1aNAAO3bsQKtWraDRaHDmzBnpJCIiIiIishOlpaX44YcfEBwcLJ1CCldeXo5z585xQE4O6cSJEzh37hwH5ETkUAoLC2GxWDggp1pRVVWF69evw8PDQzqFiKjO8ATymiliQO7k5AQ3NzcOyIlIVFJSEtauXYvly5fjxRdf5GmvRA7MyckJy5Ytw0svvYThw4dj2bJl0klEv6t///7Yv38/jh07hsjISFy8eFE6ichmeXp6QqvVwtfXFxqNBj///LN0EhERERER2YH8/HxYLBaeQE7iCgoKUF1dzQE5OSStVouGDRuia9eu0ilERLWmoKAAzs7OaNu2rXQKOYDS0lJYLBaeQE5EiuLi4gKAA/J7UcSAHAC8vb1hMpmkM4hI4YYMGYK0tDRs2rQJCQkJuH79unQSEVmJSqXCvHnzMGfOHIwfPx7z5s2TTiL6XU8//TQOHz4Mk8mEbt26wWg0SicR2ayGDRsiMzMT9erVQ3R0NK5cuSKdRERERERENi4/Px/u7u5o3bq1dAopnMFggFqtRkBAgHQKUa3T6XSIjIyEk5OTdAoRUa0xGo1o27btnfEb0cO4/SRiDsiJSEl4AnnNFDMg9/Ly4gnkRGQTYmJisH//fhw6dAjh4eG4fPmydBIRWdGMGTPw4YcfYsaMGZg5c6Z0DtHvatu2LQ4dOoTmzZujR48eOHjwoHQSkc1q2rQpdDodSkpKEBsbi9LSUukkIiIiIiKyYXq9HkFBQahXTzE/kiMbZTAY8Nhjj935ATqRo6ioqEBOTg40Go10ChFRrTIajQgMDJTOIAfBATkRKREH5DVTzNUqLy+vO98MiYikde3aFTk5Ofjxxx8RFhaGCxcuSCcRkRVNmjQJn3/+OebPn49JkyahurpaOonoNxo3bgytVosePXogKioKmzZtkk4isll+fn7Q6XQ4c+YM4uPjcePGDekkIiIiIiKyUfn5+QgKCpLOIILBYEDHjh2lM4hq3aFDh1BaWsoBORE5HA7IqTZxQE5ESuTs7AyVSsUB+T0oakBuMpmkM4iI7ujYsSPy8vJQVVWFnj17orCwUDqJiKwoKSkJmzdvxooVKzBixAhUVlZKJxH9hru7O7Zv345Ro0YhMTERixcvlk4islnt2rWDVqvFsWPHMHToUF54ICIiIiKi35Wfn4/g4GDpDCIOyMlh6XQ6BAQEoG3bttIpRES1xmKx4OTJkxyQU63hgJyIlMrZ2Zk/x70HxQzIvb29UVJSIp1BRHQXf39/HDx4EM2bN0doaCi+++476SQisqL4+Hjs3r0baWlpGDRoEE+sJZvk5OSExYsXY/78+Zg8eTJSUlJ4aj7RHwgODkZ6ejr279+PxMREVFVVSScREREREZEN+eWXX3Dx4kWeQE7ibt26hVOnTnFATg5Jp9MhOjpaOoOIqFadP38epaWl6NChg3QKOYjbA3IPDw/hEiKiuqVWq1FRUSGdYbMUMyD38vLigJyIbJKPjw90Oh2eeuophIWFQafTSScRkRVFRERg3759OHjwIGJjY+98WCeyNSkpKVi1ahWWLFmCF154gR+qiP7AM888g+3bt2P37t0YM2YMLBaLdBIREREREdmI/Px8AOAJ5CTu1KlTqKio4ICcHM7Vq1fx3XffQaPRSKcQEdUqo9EIADyBnGpNaWkp6tevD7VaLZ1CRFSnXFxceAL5PXBATkRkA9zd3ZGWloZ+/fohLi4OmzZtkk4iIit6+umnsXfvXhw/fhyRkZG4fPmydBLR7xoxYgQyMjKwY8cO9OnTByaTSTqJyCZFRERg+/btWLt2LaZOnSqdQ0RERERENkKv18PX1xdNmzaVTiGFMxgMUKlUaN++vXQKUa26fShTr169ZEOIiGqZ0WhEo0aN0KRJE+kUchBms5mnjxORIqnVag7I70FRA3IOXojIlrm4uGDt2rWYOHEiEhMTsXTpUukkIrKip556Cjk5Ofj5558RFhaGH3/8UTqJ6HdFRkYiLy8PhYWF6NmzJ86dOyedRGSTevfujbVr1+Ljjz/GG2+8IZ1DREREREQ2ID8/H48//rh0BhEMBgP8/f05GiKHo9Pp8PTTT6NRo0bSKUREtcpoNPL0capVZrMZnp6e0hlERHWOA/J7U9SAnCeQE5GtU6lUeP/99zFnzhyMHz8eM2fOlE4iIisKDAxEXl4ebt26hZCQEJw+fVo6ieh3BQcH48iRI6hXrx66deuG//znP9JJRDYpISEBy5cvR2pqKubNmyedQ0REREREwvR6PYKDg6UziGAwGNCxY0fpDKJat2/fPmg0GukMIqJaZzQa0aFDB+kMciAckBORUnFAfm8ckBMR2aAZM2Zg8eLFeO+99/DSSy+hurpaOomIrMTf3x85OTnw9PREeHg4jEajdBLR72rRogWys7Px2GOPoVevXjhw4IB0EpFNGjlyJBYuXIjp06fziTJERERERApmsVhgMBgQFBQknULEATk5pMLCQhQXF3NATkQOqaCggCeQU63igJyIlIoD8ntT3IDcYrFIp5CD4sCXatuECROwZcsWLF++HMnJyfxmRuTAHnnkEWRnZ6Nly5YIDQ3FsWPHpJOIflejRo2g1WoRExOD6OhorF27VjqJyCZNmTIFs2fPxoQJE7B+/XrpHCKyA7ymQFQ7+HeJJPH1R/9bcXExzGYzTyAncRaLBUajkQNycjharRaenp545plnpFPIgfA9HdmC69ev4/z58xyQU63igJyk8HsrSeOA/N4UMyD39vZGVVUVysvLpVPIgRQWFiIlJQWtW7dG48aN0a9fP+zbt086ixzIgAEDkJ6ejl27dqFPnz4wm83SSURkJQ0bNoRWq8WTTz6J8PBwHDx4UDqJ6He5urpi7dq1mDZtGpKSkpCamiqdRGSTUlNT8corr2DEiBHYtWuXdA4R2SBeUyCqHfy7RJL4+qN70ev1UKlU6NSpk3QKKdy5c+dQWlrKATk5HJ1Oh4iICKjVaukUsnN8T0e2prCwENXV1RyQU63igJzqEr+3ki1xcXHhgPweFDMg9/LyAgCYTCbhEnIU169fR//+/bFixQr07t0bEyZMwMmTJxEXF4ecnBzpPHIg4eHh2LdvH77//ntERkbi0qVL0klEZCXu7u7YuXMnIiMjER0djT179kgnEf0ulUqFt99+GwsWLMCbb76JKVOm8O5xot/xzjvvYNSoUXjuueewf/9+6Rwi+r/s3XlUk2fi9vErgQQRBHcFte4sCq21WkUFBUlcUWzVahXr1lptncz01xY6Yzt0Olo7LtWOoxbXat3FOqKiREUW17onGqIi7vuGQUEIyfuHr850KqgtyZ3kuT7neM6MOud8z5nEJA9X7seB8JoCUcXgc4lE4uOPnkWv16NRo0YcaZBwBoMBABAUFCS4hKjimM1mZGRkQKVSiU4hJ8f3dOSIcnJy4ObmhqZNm4pOIRdSUFDAzyZkF3xtJUejUChQXFwsOsNhuYsOsJfHA/J79+7B399fcA25gr/85S8wGo3YvHkzevToAQDQaDR45ZVXMHz4cJw5c0ZwIbmSNm3aICsrC926dUPnzp2xefNmNGzYUHQWEdmAUqnEqlWr8O6776JPnz5YtmwZ+vfvLzqL6Kk0Gg1eeuklDBkyBBcuXMDy5cvh6ekpOovIYchkMsyZMwf37t1D7969kZaWho4dO4rOIiIHwGsKRBWDzyUSiY8/eha9Xo/Q0FDRGUQwGAyoVasWatasKTqFqMLs3bsX+fn5HJDT78b3dOSIjEYjGjduDA8PD9Ep5EJMJhMCAgJEZ5AE8LWVHI1CoeAJ5OWQzAnkvr6+AB4NyIkqwuLFi/Hyyy8/ebEDgDp16qBbt27Iy8vDvn37BNaRKwoMDMSuXbvg7u6OsLAwHD58WHQSEdmIm5sbFixYgHHjxmHQoEFYuHCh6CSiMvXr1w/bt29HdnY2oqKicOPGDdFJRA5FLpdjyZIliIqKQu/evfkejogA8JoCUUXhc4lE4uOPnkWn0yEkJER0BhEMBgOCg4NFZxBV4ViIpAAAIABJREFUKK1Wi4YNG3IIR78b39ORIzIajQgMDBSdQS7GZDLB29tbdAZJAF9bydFwQF4+yQzIH59Anp+fL7iEXMHNmzdx584dREdH/+rPHl+oOHDggL2zSALq1auHXbt2oVWrVggPD8emTZtEJxGRjchkMnz77beYOHEiRo8ejenTp4tOIipTWFgYMjMzceXKFXTo0AGnT58WnUTkUBQKBZKTk9GuXTt0794dOTk5opOISCBeUyCqGHwukUh8/NGzlJSU4NSpUxyQk0PggJxcUVpaGtRqtegMcnJ8T0eOigNysgWTyYQqVaqIziAXx9dWckQckJdPMgPyKlWqQCaT8QRyqhBGoxEA4Ofn96s/e/xG/vr163ZtIunw9vbGhg0bMGTIEPTt2xdz584VnURENhQfH4+ZM2fi448/RkJCgugcojIFBwdjz5498PHxQXh4OA4ePCg6icihKJVKrFu3DgEBAVCpVDh79qzoJCIShNcUiCoGn0skEh9/9Cw5OTkoLi5GaGio6BQiDsjJ5dy9excHDhyASqUSnUJOju/pyFGdOnWKA3KqcByQkz3wtZUcEQfk5ZPMgNzNzQ1eXl4ckFOFeHyqZvXq1X/1Zw0bNgTw6OIFka24u7tj7ty5mDBhAsaNGweNRgOr1So6i4hsZPz48Vi8eDGmTZuG8ePHw2KxiE4ieio/Pz9kZGTg1VdfRefOnXmnDKL/UblyZWzcuBG1atWCSqXClStXRCcRkQC8pkBUMfhcIpH4+KNn0el0UCgUT05YIxLl1q1buHnzJgfk5FJ27NgBi8WCyMhI0Snk5PiejhzRpUuXcO/ePQ7IqcJxQE72wNdWckQckJdPMgNyAPDx8eGAnCqEh4cHAOD27du/+rP79+8DAKpVq2bXJpIemUyGxMRELFy4EHPmzMHw4cNRXFwsOouIbGTYsGFYunQpvv/+ewwfPhxms1l0EtFTPb5Txttvv42+ffsiKSlJdBKRQ/H19cXWrVvh7u6Obt26PfUzBRG5Nl5TIKoYfC6RSHz80bPo9XoEBQVBqVSKTiGJO3HiBABwQE4uRavV4rXXXkPNmjVFp5CT43s6ckSPT+8NCgoSXEKuxGw2o6ioiANysjm+tpIjUiqVHJCXQ1IDcl9fX+Tn54vOIBdQt25dAMCZM2d+9WePXwRr1apl1yaSruHDh2Pz5s1Yv349evTowX/niFzYoEGDsH79eqxduxb9+/fHw4cPRScRPZW7uzu+//57TJgwAWPGjEFCQoLoJCKHUqtWLWi1WphMJvTo0QMmk0l0EhHZEa8pEFUMPpdIJD7+6Fl0Oh1CQkJEZxDBYDDA29sb9evXF51CVGHS0tKgVqtFZ5AL4Hs6ckRGoxG+vr6oU6eO6BRyIY9/BsEBOdkaX1vJESkUCh7IWg5JDch9fHz4g3mqEAEBAZDJZE99wTt69CgAoF27dvbOIgmLjo5GdnY2Tp48iY4dO+L8+fOik4jIRnr27IktW7YgPT0dPXv2REFBgegkoqd6fKeMBQsWYNq0aRgxYgS/2Uv0X+rXrw+tVosLFy6gb9++KCwsFJ1ERHbCawpEFYPPJRKJjz96Fr1ezwE5OQSDwYCgoCDIZDLRKUQVIi8vD2fOnIFKpRKdQi6A7+nIERmNRgQGBorOIBfz+OfJ3t7egkvI1fG1lRyRQqHgTqEckhuQ37t3T3QGuQB/f39EREQgMzMTubm5T36/pKQEy5cvR7169fDaa68JLCQpCg0Nxd69e+Hu7o727dvj8OHDopOIyEYiIiKwY8cO6HQ69OzZk3ceIIc2cuRIbNq0CcnJyejVqxffjxP9l2bNmmHr1q04duwYYmNjeWcJIongNQWiisHnEonExx+Vx2Qy4dy5cwgNDRWdQgSDwYDg4GDRGUQVZuvWrfDy8kL79u1Fp5AL4Hs6ckRGoxFBQUGiM8jF8ARyshe+tpIj4oC8fJIbkHNgRRXlz3/+M0pKSjBw4ECsW7cO6enpiImJwZkzZzBv3jye5kBC1KtXDzt37kRgYCAiIiKQmpoqOomIbOS1115DRkYG8vLyEBUVhRs3bohOIiqTWq3G9u3bcfToUYSHh+PSpUuik4gcRmhoKDZv3ow9e/bg7bffhtlsFp1ERHbAawpEFYPPJRKJjz8qi16vh9Vq5Qnk5BA4ICdXo9Vq0aVLF3h4eIhOIRfB93TkaHgCOdkCB+RkT3xtJUfDAXn5JDUg9/X15YmHVGHUajWWLl0Ko9GIN998E1FRUdi3bx+mT5+OHj16iM4jCatatSq2bt2Kvn37ok+fPpg3b57oJCKykeDgYGRlZeHevXuIiIjAhQsXRCcRlalt27bYu3cvHj58iPDwcOTk5IhOInIYr7/+OlJTU7F161aMHj0aVqtVdBIR2RivKRBVDD6XSCQ+/qgser0e3t7eaNSokegUkrj79+/jwoULHJCTyygtLUV6ejpUKpXoFHIhfE9HjqSoqAjnz5/ngJwqHAfkZE98bSVHwwF5+dxFB9iTj48PjEaj6AxyIYMGDUL//v1x4MABWCwWtGvXDm5ubqKziKBUKrF06VI0a9YMY8aMwaVLl5CYmCg6i4hsoFGjRsjKykK3bt0QHh4OrVaL5s2bi84ieqrGjRtj9+7d6NOnDzp27Ih///vf6NSpk+gsIofQsWNHrFu3Dn369IGPjw++++470UlEZGO8pkBUMfhcIpH4+KOn0el0CAkJ4alqJFxOTg6sVisH5OQy9u/fjzt37kCtVotOIRfD93TkKE6dOoXS0lIOyKnCPR6Qe3t7Cy4hqeBrKzkSDsjLJ7kBOU8gp4rm7u6O9u3bi84g+hWZTIbExES89NJLGDNmDM6dO4ekpCQoFArRaURUwerWrYudO3eiZ8+eCA8Px9atW/HKK6+IziJ6qurVq2Pbtm2Ii4tDdHQ0lixZgoEDB4rOInIIarUay5cvx1tvvYXq1avzC4BEEsBrCkQVg88lEomPP/pfer0eISEhojOIYDAYoFAo0KRJE9EpRBVCq9WiXr16/FIE2QTf05EjMBqNkMvlaNasmegUcjEmkwmenp5wd5fUTJAE42srOQqlUskBeTnkogPsycfHB/n5+aIziIjsauTIkVi3bh3WrFmDPn36PPl2KRG5lmrVqmHbtm0IDQ1FZGQk9uzZIzqJqEyVKlXCypUrMWrUKLz99tuYNWuW6CQih/HGG29g/vz5+Nvf/oYpU6aIziEiIiIiohek1+sRGhoqOoMIBoMBzZs356Ey5DK0Wi1PHycil5aTk4NGjRqhUqVKolPIxZhMJlSpUkV0BhGREAqFAsXFxaIzHJbkBuQ8gZyIpCgmJgbp6ek4fPgwOnbsiLNnz4pOIiIb8PLywsaNG9GlSxeoVCpotVrRSURlcnNzw7/+9S9MmzYNGo0GGo0GFotFdBaRQ3jnnXcwc+ZMxMfH4/vvvxedQ0REREREz+nq1au4ceMGTyAnh2AwGHhSM7kMk8mEffv2QaVSiU4hIrIZo9GIwMBA0RnkgjggJyIpUygUPIG8HJIbkJtMJlitVtEpRER217ZtWxw4cAAKhQJt2rRBRkaG6CQisgEPDw+sWbMG/fv3R0xMDNatWyc6iahcGo0GP/zwA+bOnYu33noLRUVFopOIHML48ePx17/+FePGjcOKFStE5xARERER0XPQ6/UAwAE5OQQOyMmV7NixA2azGV27dhWdQkRkMxyQk60UFBRwQE5EksUBefkkNyAvLS3F/fv3RacQEQlRv359ZGRkIDw8HN26dcPixYtFJxGRDbi5uWHRokUYM2YMBg4cyOc6ObyhQ4ciNTUVWq0WPXv2xN27d0UnETmEv/71r/j4448RFxeH5ORk0TlERERERPQMOp0OderUQe3atUWnkMSVlJQgNzeXA3JyGVqtFq+++ir/fSUil3bq1CkOyMkmTCYTvL29RWcQEQnBAXn5JDUg9/X1BQDcu3dPcAkRkTje3t5Yt24dEhISMGLECGg0GlgsFtFZRFTBZDIZZsyYgf/7v//DyJEjMWPGDNFJROWKiopCdnY2Tp8+jU6dOuH8+fOik4gcwuTJkzF69Gi8/fbb2Lp1q+gcIiIiIiIqh16v5+nj5BBOnz6NkpISDsjJZWi1WqhUKtEZREQ2c/XqVdy9e5cDcrIJk8nEE8iJSLI4IC+fpAbkPj4+AID8/HzBJUREYslkMiQmJmLFihWYN28eevfuzS/XELkgmUyGb775Bl9//TX+9Kc/ISEhQXQSUblCQkKwd+9euLu7o3379jhy5IjoJCLhZDIZZs+ejf79++ONN95Adna26CQiIiIiIiqDTqdDaGio6AwiGAwGyOVyBAQEiE4h+t3OnTuHkydPckBORC4tJycHADggJ5vggJyIpIwD8vJJckDOkSQR0SODBg3C9u3bcejQIXTq1Alnz54VnURENhAfH485c+ZgypQpSEhIgNVqFZ1EVCZ/f3/s3LkTAQEBiIiI4InLRADkcjmWLFmCnj17onfv3jh06JDoJCIiIiIi+h8WiwUnTpzgCeTkEAwGA1566SV4eXmJTiH63dLS0uDp6YkOHTqITiEishmj0YgqVarAz89PdAq5IA7IiUjKFAoFiouLRWc4LA7IiYgkLiwsDAcOHIBCoUDbtm2RmZkpOomIbOD999/H0qVLMX36dIwdOxYWi0V0ElGZqlatirS0NMTExKBPnz5YtmyZ6CQi4dzc3LBs2TKEhYWhe/fuMBgMopOIiIiIiOi/5OXl4f79+zyBnByCwWBAcHCw6AyiCqHVatG5c2d4enqKTiEishmj0YjAwEDIZDLRKeSCOCAnIilTKpU8gbwckhuQy2QyDsiJiP5H/fr1kZGRgY4dO0KtVuOHH34QnURENvD2229j3bp1WLJkCYYMGcI3yeTQlEolfvzxR3z22WeIi4tDYmKi6CQi4ZRKJZKTkxEUFAS1Wo28vDzRSURERERE9P/pdDrIZDKOdskhcEBOrsJisSA9PR0qlUp0ChGRTT0ekBPZQkFBAQfkRCRZCoWC25hySGpALpfL4e3tjfz8fNEpREQOx9vbGz/99BMSEhIwfPhwaDQanlBM5IJ69+6N1NRUbN68Gf369UNhYaHoJKIyyWQyJCYmYsaMGfjqq6/w7rvvwmw2i84iEqpy5cpISUlB7dq1oVKpcOXKFdFJREREREQEQK/Xo3HjxhxmkHBWqxUnT57kgJxcwsGDB3Hz5k0OyInI5XFATrZkMpng7e0tOoOISAiFQgGz2Qyr1So6xSFJakAOPDqFnCeQExE93eOh3vLly5GUlISYmBj+m0nkgjp37ozt27dj37596N69O5/n5PD+8Ic/IDk5GcuWLUP//v3x4MED0UlEQvn6+mLLli1QKpVQq9W4deuW6CQiIiIiIsnT6/UIDQ0VnUGE8+fPo6CggANycglarRZ169ZFSEiI6BQiIpspLi7G2bNnERQUJDqFXJTJZOIXXYlIshQKBQDwoLoycEBORES/MnjwYGzfvh0HDx5EeHg4zp07JzqJiCpYmzZtkJGRgdzcXERFReHmzZuik4jKFRsbix07dmD37t2IiorCjRs3RCcRCVWrVi2kpaXh/v37iI6Oxt27d0UnERERERFJmk6n48CRHILBYAAAjtDIJWi1WqjVashkMtEpREQ2c+rUKZSWlvIEcrIZDsiJSMoeD8hLSkoElzgmDsiJiOipOnTogAMHDsDNzQ1t2rRBVlaW6CQiqmAtWrRAVlYW7t69i4iICFy6dEl0ElG52rdvj927d+PWrVsICwvDqVOnRCcRCVW/fn1otVpcu3YNvXr1wv3790UnERERERFJUnFxMU6dOsUBOTkEg8GA2rVro0aNGqJTiH6X+/fvY8+ePVCpVKJTiIhsymg0Qi6Xo1mzZqJTyAWVlJTg4cOHHJATkWQ9HpAXFxcLLnFM7qID7M3X15cDcheRmZnJU/aeorCwUHQCuZD69esjIyMDb7/9NtRqNebPn48hQ4aIziKiCtS4cWNkZWVBrVajU6dO0Gq1vEBFDq1Zs2bIyspC7969ERYWhpSUFISFhYnOIhKmadOmSEtLQ5cuXdCvXz+kpKTAw8NDdBaRw8vLy8OqVatEZzikq1evon79+qIzyEnY6/qcxWKBXO48Z6Hw+px98Prw0/HxJ0ZOTg5KSkoQGhoqOoUIBoMBwcHBojOIfredO3eiuLgYXbt2FZ1CNsTP52Xj53PpMBqNaNCgASpXriw6hVyQyWQCAA7IJYTXS56O10ukiyeQl09yA3KeQO78Ht+ibNKkSYJLHBtv5UYVpUqVKli/fj0SEhIQFxeHgwcP4h//+Afc3SX3EkLksvz8/JCRkYGePXsiPDwcaWlp/IEnObS6desiIyMDAwcOhEqlwsqVK9G7d2/RWUTChISEYNu2bYiMjMTgwYOxevVqvlcjKodMJkN6ejrS09NFpzistm3bik4gB8frc8+H1+dsg4+/58PHn33pdDoolUo0b95cdAoRDAYDT8Mnl6DVahEaGgo/Pz/RKWQj/Hz+bPx8Lg1GoxFBQUGiM8hFcUAuHbxe8nx4vUR6lEolAA7Iy+I8x7ZUEB8fH+Tn54vOoN/Bx8cHVqtVMr8OHz6MBg0a4LvvvsODBw+e+3+nVqtF/19FLsTNzQ1TpkzBsmXLkJSUhKioKFy9elV0FhFVoOrVq2Pbtm1o0aIFOnfujL1794pOIiqXl5cX/v3vf2PIkCGIjY3F3LlzRScRCdWqVSts2rQJaWlpGDVqFCwWi+gkIoe1ZcsW4Z/1n/Zr7dq1UKvVwjusVivmz58v+v8mcnD2uj738OFDREVFYfDgwcKfF7/lF6/P2YY9rw9bLBYMGTIEWq1W+OOJjz/HptfrERQU9OSHkkQi5eTk8ARycglarRYqlUp0BtmQ6M/ns2bNwoQJE4S/byvvFz+fS0NOTg4CAwNFZ5CL4oBcOhxtT2c2m1G3bl2cPHlSeMt//+L1EunhCeTlk9yA3NfXlyeQk1Np1aoVWrZsiT/84Q9o0KABpk6dioKCAtFZJFGDBw/G7t27cfnyZbRp0wZ79uwRnUREFcjb2xspKSlo3749VCoVtm3bJjqJqFzu7u74/vvvMXHiRIwdOxYJCQmwWq2is4iE6dChA3766SesWrUKGo1GdA4RvaCsrCykpaXh8OHDolOIHILFYkFcXBx27NiBatWqic4hifriiy+wbNkyVKpUSXQKOTidTscTn8kh3LhxAzdv3uSAnJzepUuXcOLECQ7IyWbu3buHL774AseOHROdQoRTp05xQE42wwE5iZKeno6rV69i1apVolNI4jggL5/kBuQ+Pj4ckJPTmTBhAgDg1q1bSEhIQL169fD3v/8dd+/eFVxGUvTyyy/j0KFDaNu2LSIjIzFz5kzRSURUgSpXroz169ejZ8+e6N27N9avXy86ieiZ4uPjsWjRIkyfPh0jRozghz+SNJVKhRUrVmDu3Ln44osvROcQ0Qt4/OW9yZMnCy4hcgwajQZr166FXC7ngJyEWLlyJSZOnAgA8PT0FFxDjk6v13NATg7BYDAAAAfk5PTS0tJQqVIlhIeHi04hFzV58mTcvn0bR48eFZ1CEnf9+nXcvn2bA3KymccHVHp7ewsuIalZvnw5AOCHH34QXEJSxwF5+SQ3IK9SpQoH5OR0OnbsiI4dO8Ld3R2lpaW4d+8evvzyS/j7+0Oj0eDq1auiE0lifHx8sG7dOnz55Zf46KOPEBcXh8LCQtFZRFRBlEolli9fjri4OAwYMABLliwRnUT0TMOHD8emTZvw008/oWfPnnzPT5LWr18/LFiwABMnTsQ333wjOoeInkN+fv6Tsc/atWtx5swZwUVEYv3973/Hv/71L1gsFri7u3NATnaXkZGBuLi4J3c44gnkVB6TyYTz588jNDRUdAoRDAYDvL29Ua9ePdEpRL+LVqtFp06dULlyZdEp5IIuXLiAadOmPfnPRUVFgotIyoxGIwBwQE42YzKZIJPJOCAnu3r48CHWrFkDADh9+jSOHDkiuIikjAPy8kluQO7r64v8/HzRGUQv7PPPP4fZbH7y381mMwoLCzFnzhw0btwYGo0Gly5dElhIUiOTyRAfH4+UlBRs2rQJHTt2RF5enugsIqogbm5uSEpKwh//+EeMHDkS8+bNE51E9EwqlQrbt2+HTqdDp06dcPHiRdFJRMIMGzYM3333HT777DPMnTtXdA4RPUN2djYsFguAR+/DpkyZIriISJx58+bh888/fzLctVgsHJCTXeXm5iI2NvbJYxAAx2tULp1OB6vVyhPIySEYDAYEBwdDJpOJTiH6zaxWK7Zv3w6VSiU6hVzUZ5999ovPG48HvEQi5OTkwMvLi1/+IpsxmUzw9PSEm5ub6BSSkE2bNuH+/fsAHo13V6xYIbiIpOzxgLy4uFhwiWOS3IDcx8cHJpPpFxd/iZxBt27d0KpVq1+9qSspKUFRURHmzJmDRo0aIS4uDrm5uYIqSYp69uyJ/fv3w2w2o23bttBqtaKTiKiCyGQyTJkyBRMnTsSYMWM4ZCKn0KZNG+zZswclJSUIDw9HTk6O6CQiYT744AP87W9/w7hx47Bw4ULROURUjqysLCiVSgCPPucvWLCAdxsjSdqwYQPef//9X/ye2WzmgJzs5tatW1CpVCgoKEBpaemT3+cJ5FQevV6PKlWqoGHDhqJTiJ4MyImc2ZEjR3D9+nUOyMkmjhw5guXLlz85gVIul+P48eOCq0jKjEYjAgMD+eUvshmTyYQqVaqIziCJWbZsGdzd3QE8ut69ZMmSJweoENkbTyAvnyQH5BaLBQUFBaJTiF7Y559/XuYLaklJCcxmM1atWoWgoCCMGjWKp0GT3TRr1gz79u1D79690aNHDyQmJvKLOkQuJD4+HrNmzUJCQgISEhJE5xA9U+PGjbFr1y7Ur18fHTp0QGZmpugkImEmTJiATz/9FO+9996T2wUSkePZvn37L06/sFqtmDVrlsAiIvvLyMjAgAEDnno9oWrVqgKKSGqKi4vRr18/XLx48Rd3ggQAT09PQVXkDHQ6HUJCQjj6IYfAATm5grS0NNSsWROvvPKK6BRyQR999NGTQRvwaFDEATmJ9HhATmQrHJCTvZlMJmzcuPEXY92rV69i9+7dAqtIyv778B76NUkOyAHg3r17gkuIXlxsbCyaNWsGubzsp25JSQksFgtSUlJ46wWyK09PTyxevBizZ8/GpEmTEBsbi/z8fNFZRFRBxo0bhx9++AHTpk3DuHHj+A1hcnjVq1fHtm3boFKpoFarsWrVKtFJRMJ8/fXXePfddzF06FBs2bJFdA4R/Y8HDx7gyJEjv/g9s9mMGTNm8DMVSYZOp0NMTAxKS0ufOiDnCeRka1arFSNHjsTu3buf+sMkDsipPHq9HiEhIaIziFBQUICLFy9yQE5OT6vVQq1Wl/vzUKLfIiUlBenp6b94v1dcXIxjx44JrCKp44CcbI0DcrK3n3766VdfzFcoFFixYoWgIpI6nkBePsl96vL19QXAATk5J7lcjgkTJpR7srO7uzuqVq2KnTt38oMGCfHee+9h+/bt2L9/P9q1a4cTJ06ITiKiCjJ06FAkJydj0aJFiIuL4xtscngeHh5Yvnw5Ro8ejcGDB+Mf//iH6CQiIWQyGWbPno2hQ4fizTffRFZWlugkIvove/bs+dUFdQAoKirC/PnzBRQR2VdeXh66du2KwsJClJaWPvXvcEBOtva3v/0Ny5cvf+pjUCaTPTmpiOhpjh8/jtDQUNEZRMjJyYHVauWAnJxaYWEhdu/eDZVKJTqFXExpaSk+/vhjuLm5/eL3rVYrjh49KqiKpK64uBh5eXncdZBNFRQUcEBOdrV06dJf3aGrpKQEy5Yt476AhOCAvHySG5A/PoGcJziRsxoyZAgaNGjw1NthPh6PZ2VloUWLFgLqiB4JDw/HgQMHUK1aNbRv3x7Jycmik4iogvTp0webN29GSkoK3nzzTRQVFYlOIiqXm5sbZs2ahW+//RafffYZNBoNT9AnSZLJZEhKSkKvXr0QExODgwcPik4iov8vKyvrqcPE0tJS/OMf/+Ddxcil3bhxA9HR0bhz585Tv0jxGAfkZEurV6/Gl19+WeahHUql8qnXYokA4MqVK7hx4wZPICeHYDAYoFQq0aRJE9EpRL9ZZmYmCgsL0bVrV9Ep5GKSkpJw+vTpp35h8OLFi3jw4IGAKpK63NxcmM1mBAUFiU4hF8YTyMmebty4gfT09Ke+3ubn52Pbtm0CqkjqOCAvn2QH5DyBnJyVm5sbEhISfvVDC7lcjtLSUsyYMYPjcXII9erVw86dOzFixAgMGDAACQkJZZ4kRkTOJTIyEtu2bcPu3bvRo0cPmEwm0UlEz6TRaLBq1SokJSVh4MCBKCwsFJ1EZHdubm748ccf0aFDB/To0YN3iiFyEDt27CjzwuXNmzexbNkyOxcR2YfJZIJKpcKFCxfKHY/L5XJ4e3vbsYykJDs7G0OHDi337/D0cSqPXq8HAA7IySEYDAY0b94c7u7uolOIfjOtVosWLVqgQYMGolPIhZhMJnz++edlfmHQarXCaDTauYoIMBqNkMlkaNasmegUcmEmk4nXVchuVq9eXeafKRQKLF++3I41RI9wQF4+yQ3Iq1SpArlczgE5ObWRI0eiRo0aT/67QqFArVq10KtXL4wZMwYZGRkC64j+w8PDAzNnzsS8efMwc+ZM9O7dG7du3RKdRUQV4PXXX0dGRgZOnjyJrl278rlNTqF///7YvHkztm/fzsctSZZSqcTatWsRFBQEtVqNvLw80UlEklZcXIz9+/eX+0Psv//977x7BrmkXbt24datWzCbzb+6jfx/q1y5MuRyyV3GJjs4ffo0YmJiUFpaWua/wwBQqVIlO1aRs9HpdKhbty5q1aolOoUIBoMBwcHBojOIfpcVwS+DAAAgAElEQVS0tDSo1WrRGeRiJk+ejPz8/DLf88nlchw/ftzOVUSPBuT169fnuJdsiieQkz0tWbKkzNfbkpISJCcn864fZHdubm6Qy+W822sZJHflXS6Xw8vLiwNycmoeHh749NNP4ebmBnd3d9SoUQPZ2dlYt24d1Go1evXqhczMTNGZRE+MGjUKmZmZOHHiBFq3bo09e/aITiKiCtCyZUvs2LED165dQ0REBC5fviw6ieiZIiMjkZ2djUuXLiEiIgLnz58XnURkd5UrV0ZKSgrq1q0LlUrFf7+JBPr555/x8OHDMv/carUiLy8PKSkpdqwiso/u3bvj3LlzSEtLg0qlAvCf02D+W9WqVe2dRhJx9uxZhISEwGq1PvWx95iHh4cdq8jZ6PV6nj5ODoMDcnJ2V69ehV6vf/LekKgiXLx4EdOmTSv3rkcKheLJXUWI7MloNCIwMFB0Brk4DsjJXs6fP4+ff/653MNQioqKsHHjRjtWET2iUCh4AnkZJDcgBwBfX1/k5+eLziD6Xd5//314eXmhZs2ayM7ORrNmzaBQKLBq1SqoVCr07NmTI3JyKG3btsWhQ4cQGhqKiIgIJCYm8hQ9IhcQGBiIrKwsmM1mdOrUCbm5uaKTiJ6pZcuW2LNnD5RKJdq3b4/Dhw+LTiKyO19fX2zZsgUeHh6IiorCtWvXRCcRSVJmZma5o0WZTAYAmDRpkr2SiOxKLpcjOjoaqampaN26NerXrw9PT0+4u7s/efxzQE62Eh0djaysLJw7dw5fffUVfH19AQDu7u6/+Huenp4i8shJ6HQ6hIaGis4gQklJCc6cOcMBOTk1rVYLhUKBiIgI0SnkQiZMmICHDx9CqVSWeeej4uJiHDt2zM5lRI8G5EFBQaIzyMVxQE72snLlymf+HZlMhh9//NEONUS/xAF52SQ5IPfx8eEJ5OT0vL29MWXKFOzatQtNmzZ98vsKhQKrV69GdHQ0YmJisHfvXoGVRL9Uo0YNpKSkYOrUqZg0aRL69u2L27dvi84iot/ppZdeQmZmJnx9fREeHs6TOsgp+Pv7IzMzEy+//DIiIiKwZcsW0UlEdlezZk2kpaWhuLgY3bt3x507d0QnEUlOZmbmUy9aVq1aFW3atEFsbCw+/PBD9O3bl7f2JJd25MgRHDp0CPPnz8eVK1cwdepUNGzYEMCjawlEttSgQQPEx8ejcePGiI6ORo8ePeDm5vbkCz6VK1cWXEiOymKxwGAw8ARycginTp1CSUkJB+Tk1LRaLTp06ABvb2/RKeRCvvzyS6SkpODLL7/EoEGD0LRpU8jlj2YyMpkMlSpVAgAOyEkInkBO9sABOdnLihUrYLVay/07FosFaWlpuHv3rp2qiB7hgLxskh2Qm0wm0RlEv9t7772HJk2a/Or3H4/IIyMj0b17d+zbt09AHdHTyWQyaDQa7Nq1C8ePH0erVq2wa9cu0VlE9DvVqVMH6enpaNKkCbp27coTnckpVKlSBRs2bEDfvn0RExOD+fPni04isrt69epBq9Xi+vXr6NWrF+7fvy86iUhSevfujR9++AFpaWnQ6/W4efMmmjRpgk8++QQ///wz1q1bh++++w5//vOfOWAklzZr1iwEBwcjMjISvr6+0Gg0yM3NRWpqKvr16yc6jyTg0KFDOHLkCBITE7FhwwZcvHgRX331FRo1asQRG5XpzJkzuH//Pk8gJ4dgMBggl8sREBAgOoXoN7Fardi2bRtUKpXoFHIxDRs2RO/evZGQkIAff/wRn3zyCby8vHDixAmsWrUK8fHxiI2Nhbe3NwoLC0XnkoTcvHkTt27d4oCcbI4DcrKXw4cPw2q1Pvn1eCS+ZcuWX/x+UVER7zhIdscBedncn/1XXI+Pjw/y8/NFZxDZlFKpxOrVqzFgwAB069YNW7duRbt27URnET3Rtm1b/Pzzzxg2bBi6dOmCv/zlL/jiiy+efOufiJxP1apVkZaWhjfeeAORkZHYuHEjOnXqJDqLqFxKpRJLly5Fs2bN8N577+HixYtITEwUnUVkV02bNkV6ejoiIiIQGxuLjRs3wsPDQ3QWkSR88MEHv/o9f39/XLlyRUANkRh37tzBihUrMHXqVMhksie/L5fL0b17d3Tv3l1gHUnFggULEBgYiA4dOgAA6tati/j4eHz66afIzc0VXEeOSqfTQS6Xo0WLFqJTiGAwGNCwYUN+6ZCclk6nw5UrV6BWq0WnkIs7fvw4QkJCEBwcjODgYAwYMEB0EkmU0WgEAA7IyeYKCgo4ICciyeOAvGySXOn5+vri3r17ojOIbE6pVGLNmjXo3LkzunXrhv3794tOIvqFGjVqYOPGjZg6dSomTZqE2NhY3L59W3QWEf0OlStXxoYNG6BSqdCtWzds2bJFdBLRM8lkMiQmJiIpKQkTJ07EqFGjYDabRWcR2VVAQAC2bt2KgwcPYtCgQXwOEAnk5+fHATlJyrx58+Dm5oYhQ4aITiGJKiwsxIoVKzB69OhffIkBePRZoVmzZoLKyNHp9Xo0btwYXl5eolOIYDAYEBwcLDqD6DfTarWoUaMGWrduLTqFXJxer0dISIjoDCLk5OSgcuXKqF+/vugUcmHFxcUoLi7mnbWISPI4IC+bJAfkPj4+HJCTZDwekUdERECtVnNETg5HJpNBo9EgOzsbOp0OrVq1wu7du0VnEdHvoFQqsXLlSgwaNAh9+/bFmjVrRCcRPZfRo0dj7dq1WLlyJd588008ePBAdBKRXb3yyivYtGkTtFotRo4cCYvFIjqJSJL8/f1x+fJl0RlEdmGxWDB37lyMGjUKPj4+onNIotauXQuTyYShQ4eKTiEno9frERoaKjqDCAAH5OT8tFotunbtyrvUks3p9Xq0bNlSdAYRjEYjAgIC+O8e2ZTJZAIAnkBORJKnUChQXFwsOsMhSfKdCAfkJDVKpRJr165FeHg4unXrhp9//ll0EtGvvP766/j5558RGhqKzp07IzExkaMlIifm5uaG+fPn44MPPsDgwYOxYMEC0UlEz6Vv377YsWMH9uzZg8jISFy/fl10EpFdhYWFYf369Vi9ejXGjx8vOodIkngCOUlJSkoKzp49i7Fjx4pOIQlbsGAB+vTpg7p164pOISej0+l4gik5BIvFgpMnT3JATk6rqKgIWVlZUKlUolPIxV27dg03btzg6zc5BKPRiMDAQNEZ5OI4ICciekSpVPIE8jJIdkCen58vOoPIrpRKJZKTk9GpUyeo1WqOyMkh1axZExs3bsTUqVMxadIkxMbG4vbt26KziOg3kslkmD59OiZOnIh3330X06ZNE51E9FzatWuHPXv24M6dOwgLC8PJkydFJxHZVXR0NFauXImkpCRMmDBBdA6R5DwekFutVtEpRDb3z3/+E927d0dAQIDoFJKoM2fOIDMzE6NGjRKdQk7m4cOHOHXqFAdo5BDOnz+P+/fvc0BOTis7OxsPHjxAdHS06BRycXq9HgD4+k0OgQNysgcOyImIHlEoFByQl0GyA3KeQE5S9Pgk8o4dO0KtVuPAgQOik4h+RSaTQaPRYPv27Th06BBeffVV7NmzR3QWEf0O8fHx+O677/DJJ58gISFBdA7Rc2natCn27NmDOnXqoEOHDti1a5foJCK7io2NxcKFC/H1119j8uTJonOIJMXf3x8PHz7EnTt3RKcQ2ZTBYMCOHTt4xwsSat68efD390e3bt1Ep5CTycnJgdlsRmhoqOgUIhgMBgDgCI2cllarRWBgIBo1aiQ6hVycXq9HzZo1UadOHdEpJHFmsxlnzpzhazfZHAfkRESPcEBeNg7IiSTGw8MDycnJ6NixI1QqFUfk5LDCw8Nx5MgRtGzZEhEREfjmm294Ah+RE/vwww+xePFiTJs2DR9++CEsFovoJKJnqlGjBrRaLcLCwqBWq5GSkiI6iciu4uLi8M9//hOfffYZvv32W9E5RJLh5+cHALh8+bLgEiLbmjVrFpo0acLhLgljNpuxZMkSjBgxAm5ubqJzyMnodDoolUo0b95cdAoRDAYD6tSpgxo1aohOIfpNtFotVCqV6AySgOPHj/P0cXIIubm5KCkp4YCcbI4DciKiRzggL5skB+S+vr4wmUwcLpFkeXh4YM2aNWjTpg3UajUOHjwoOonoqWrWrIlNmzZh6tSp+PzzzxEbG4vbt2+LziKi32jYsGFYs2YN5s+fj3feeQdms1l0EtEzeXl5Yf369Rg2bBj69euHOXPmiE4isqtx48Zh4sSJ+L//+z8sWLBAdA6RJPj7+wMArly5IriEyHZMJhN+/PFHfPjhh5DLJXmJmhzA5s2bceXKFQwfPlx0CjkhvV6PoKAgKBQK0SlEMBgMCA4OFp1B9JvcvHkTR48e5YCc7IIDcnIURqMRMpkMAQEBolPIxZlMJshkMnh5eYlOISISigPyskny6ryPjw8sFgsKCgpEpxAJ4+npiQ0bNqB169ZQqVQckZPDkslk0Gg00Gq1OHDgANq0aYN9+/aJziKi3yg2NhY//fQTkpOT0b9/fxQVFYlOInomNzc3zJkzBxMnTsQHH3wAjUbDu2KQpPz5z39GfHw8xowZgzVr1ojOIXJ51apVg6enJ08gJ5e2cOFCmM1mvPPOO6JTSMIWLFiAqKgoNG3aVHQKOSGdTofQ0FDRGUQAOCAn56bVaiGXy9GlSxfRKeTirFYrTpw4gZYtW4pOIYLRaIS/vz9PhSabKygogJeXF7+8T0SSxwF52ST5CuHj4wMAuHfvnuASIrH+e0Teo0cP6HQ60UlEZercuTMOHz6MgIAAhIeH4+uvv+adJIicVI8ePbB161bs3LkTvXr14pf6yGnEx8dj0aJFmDNnDoYPH84PmSQpX3/9Nf7whz9g6NChSE1NFZ1D5PLq1q3LE8jJZVmtVsyZMwfvvPMOqlWrJjqHJOrq1atITU3FqFGjRKeQk9Lr9TzBlBxGTk4OB+TktLRaLcLCwp78/J7IVi5cuIC7d+/y9ZscgtFoRGBgoOgMkgCTyQRvb2/RGUREwnFAXjYOyIkkrnLlytiwYQNCQ0PRtWtXjsjJodWuXRupqamYMmUKvvzyS0RHR+PixYuis4joNwgPD8eOHTug0+nQtWtX3L59W3QS0XN55513sHnzZqxfvx49evRAfn6+6CQiu5k2bRri4uLQv39/ZGZmis4hcml+fn4ckJPL2rJlC4xGI8aOHSs6hSRs0aJFqFKlCvr16yc6hZxQfn4+Lly4wBPIySFcv34dt27d4oCcnNa2bdugUqlEZ5AE6PV6AECLFi0ElxA9GpAHBQWJziAJMJlMPOmeiAiAUqlEcXGx6AyHJMkBua+vLwAOyIkeq1y5MlJSUp6MyB9/gCZyRDKZDBqNBgcOHMCNGzcQGhqKVatWic4iot+gdevWyMzMxOXLlxEdHY3r16+LTiJ6LtHR0cjOzkZOTg7Cw8P5ZSaSDJlMhu+//x69e/dGTEwMDhw4IDqJyGX5+/vj8uXLojOIbGLWrFmIiori8JKEsVqtWLRoEYYOHYpKlSqJziEnpNfrYbVaeYIpOQSDwQAAHJCTUzpx4gQuXLjAATnZhV6vR/369VG9enXRKUQ8gZzshgNyIqJHeAJ52SQ5IH98AjlPCyT6j8cj8pCQEI7IySmEhIRg//79GDZsGAYNGoRhw4bh/v37orOI6AUFBQUhOzsbBQUFiIiIwIULF0QnET2X0NBQZGdno6SkBO3bt8fRo0dFJxHZhZubG5YuXYpOnTqhR48eOHHihOgkIpfEE8jJVeXm5mLLli0YP3686BSSsIyMDJw6dQojRowQnUJOSq/Xo0qVKnjppZdEpxDBYDDAx8cH/v7+olOIXphWq0XVqlXRtm1b0SkkAcePH+eXv8gh3L59Gzdu3OCAnOyCA3Iiokc4IC+bJAfk3t7ekMvlPIGc6H9UrlwZGzduRMuWLdG1a1ccP35cdBJRuTw9PTFz5kwkJydj06ZNaNu2LY4cOSI6i4heUMOGDZGZmQkPDw906tQJp06dEp1E9FwaNWqE3bt3o2nTpoiMjERGRoboJCK7UCqVWLt2LVq0aAGVSoUzZ86ITiJyOX5+fjyBnFzSrFmzUL9+fcTExIhOIQlbsGAB2rZti1atWolOISel0+kQGhoKmUwmOoUIBoMBQUFBfDySU9JqtYiKioKbm5voFJIAvV7PATk5BKPRCAAckJNdcEBORPQIB+Rlk+SAXC6Xw9vbmwNyoqd4PCJv0aIFoqKiOCInp/DGG2/gyJEjqFWrFsLCwjBz5kxYrVbRWUT0AurWrYudO3eiXr16CA8P52nO5DSqVauGtLQ0qNVqdOvWDStWrBCdRGQXnp6eSElJgb+/PyIjI3H+/HnRSUQuxd/fnyeQk8t58OABfvjhB4wbN44jIRImPz8f69atw6hRo0SnkBPjAI0cicFgQHBwsOgMohdWXFyMjIwMqFQq0SkkAaWlpTAYDGjZsqXoFCIYjUZUqlQJDRo0EJ1CEsABORHRIxyQl02SA3IA8PHx4YCcqAz/OyLnbenJGTRo0AA7duxAYmIiPvnkE3Tv3h1Xr14VnUVEL6BatWrQarV4+eWX0aVLF+zevVt0EtFz8fDwwIoVK6DRaDBkyBAkJiaKTiKyCx8fH6SmpsLb2xsqlQrXrl0TnUTkMvz8/FBUVIQ7d+6ITiGqMEuWLEFRURFGjx4tOoUkbNmyZbBarXjrrbdEp5AT0+v1CA0NFZ1BBIADcnJeu3fvRkFBAdRqtegUkoDc3FwUFhbyC2DkEIxGIwICAvjFarKLgoICDsiJiMABeXkkOyD39fVFfn6+6Awih+Xl5YWNGzciODiYI3JyGm5uboiPj0dWVhZOnz6NV155BampqaKziOgFeHl5ISUlBVFRUVCr1UhLSxOdRPRcZDIZvvnmG3z77bf46quvoNFoYLFYRGcR2VzNmjWh1WphNpvRrVs3jl2JKoi/vz8A8BRycimzZ8/G4MGDUaNGDdEpJGELFizAwIEDUbVqVdEp5KQuX76MW7ducYBGDqGgoACXLl3igJycklarRePGjdGkSRPRKSQBer0ecrmc/16SQ8jJyUFgYKDoDJIInkBORPQIB+Rlk+yA3MfHByaTSXQGkUPz8vLCpk2bEBgYyBE5OZV27drh8OHDiI6ORq9evaDRaFBcXCw6i4iek4eHB1avXo0BAwYgJiYGycnJopOInptGo8Hq1auRlJSE/v37o7CwUHQSkc35+/sjPT0dd+7cQa9evVBQUCA6icjp+fn5AXg0UiNyBTt27IBOp8O4ceNEp5CEHTt2DIcOHcKoUaNEp5AT0+v1AICWLVsKLiF6dPq41WrlIJKcklarRbdu3URnkETo9Xo0adIEXl5eolOIYDQaOSAnuzGZTPD29hadQUQknFKp5G6sDJIekN+7d090BpHD8/LywubNm5+MyA0Gg+gkoufi4+ODZcuWYfHixVi4cCE6dOiAkydPis4ioufk5uaGhQsXYuzYsXjrrbewaNEi0UlEz+3NN9/Ejh07kJmZiaioKNy8eVN0EpHNvfTSS9BqtThz5gz69euHoqIi0UlETq169eqoVKkSTyAnlzFr1ix06tQJr732mugUkrCkpCQEBASgU6dOolPIiel0Ovj5+aFWrVqiU4hgMBigVCrRuHFj0SlEL+TOnTs4dOgQVCqV6BSSiOPHj/PuIeQQSktLcebMGQ7IyW54AjkR0SM8gbxskh6Q5+fni84gcgpeXl5ISUlB48aNOSInpzNs2DAcO3YMCoUCrVq1wsyZM0UnEdFzkslkmDFjBiZOnIhRo0ZhxowZopOInltYWBgyMzNx+fJlRERE4Ny5c6KTiGwuICAAW7duxcGDBzFo0CCYzWbRSUROSyaToU6dOjyBnFzC+fPnkZKSgg8//FB0CklYUVERli9fjlGjRkEmk4nOISem1+s5QCOHYTAYEBAQAHd3d9EpRC9Eq9UCACIjIwWXkFTw9ZscRV5eHh4+fMgBOdkNB+RERI9wQF42yQ7IfX19eQI50Qvw8fHBli1b0LBhQ6jVapw+fVp0EtFza9y4MbKysvDpp5/io48+woABA3Dnzh3RWUT0nOLj4/H111/jo48+QkJCgugcoufWokUL7N27F5UqVUL79u1x6NAh0UlENvfKK69g8+bN2L59O0aMGAGLxSI6ichp+fv78wRycgmzZ89GrVq18MYbb4hOIQlLTk6GyWRCXFyc6BRycjqdDqGhoaIziAA8GpAHBweLziB6YVqtFq+//jqqVasmOoUkoLi4GKdOnULLli1FpxAhJycHANC8eXPBJSQVBQUFHJATEYED8vJIdkDu4+PDATnRC/L19cXWrVtRr149REZGIjc3V3QS0XNzd3dHYmIiUlNTkZ2djdatWyMzM1N0FhE9p/j4eMyePRtTpkyBRqOB1WoVnUT0XPz8/JCZmYlWrVqhc+fOSE1NFZ1EZHPt27fH+vXrsXbtWowfP150DpHT8vPz44CcnN7Dhw+xaNEijB07FgqFQnQOSdiCBQsQExMDPz8/0SnkxCwWC3JycniCKTkMDsjJWW3fvh0qlUp0BklETk4OSkpK+PpNDsFoNMLPzw9Vq1YVnUISUFRUhJKSEg7IiYjAAXl5JDsgr1KlCgfkRL/B4xG5v78/R+TklNRqNY4ePYqXX34ZkZGRiI+PR3FxsegsInoO77//Pn788UfMmTMHw4cPh9lsFp1E9Fy8vb2RkpKCQYMGoU+fPpg3b57oJCKb69q1K1auXImkpCT86U9/Ep1D5JT8/f1x+fJl0RlEv8vy5ctx9+5dvPvuu6JTSMLy8vKwc+dOjBo1SnQKObnc3Fzcv3+fJ5CTQyguLsaZM2c4ICenc/LkSeTl5XFATnaj1+uhUCgQEBAgOoUIRqMRgYGBojNIIkwmEwBwQE5EBA7IyyPZAbmvry/y8/NFZxA5JV9fX6SlpcHPz48jcnJKtWvXxr///W8sWrQIc+bMQevWrXHkyBHRWUT0HAYPHoyffvoJa9asQVxcHN/kk9Nwd3dHUlIS/vKXv2DMmDFITEwUnURkc3379sWiRYvw3XffYdKkSaJziJwOTyAnVzB79mwMGDAAdevWFZ1CEjZ//nz4+/uje/fuolPIyel0Osjlcg52ySGcOnUKZrOZj0dyOmlpaahSpQratWsnOoUk4vjx4wgMDIRSqRSdQsQBOdlVQUEBgEeHHBERSR0H5GWT7IDcx8eHJ5AT/Q6PTyKvW7cuIiMjcebMGdFJRC9s2LBhOHbsGGrUqIGwsDB88803sFgsorOI6Bl69eqF1NRUbN68GbGxsSgsLBSdRPRcZDIZEhMTMX/+fEycOBEjR47kB1VyeUOHDsWsWbMwYcIETJ8+XXQOkVPx8/PjCeTk1Hbt2oUDBw5g/PjxolNIwsxmMxYvXozhw4fDzc1NdA45Ob1ejyZNmsDLy0t0ChEMBgPkcjmaN28uOoXohWi1WkRFRUGhUIhOIYnQ6/UICQkRnUEEgANysi+eQE5E9B8KhQLFxcWiMxySpAfkJpOJQ0Gi36Fq1apIS0vjiJycWqNGjZCeno7Jkyfjiy++QHh4OB/LRE6gc+fO2L59O/bv34/u3bvzi4HkVEaOHInk5GSsWrUKvXv3fnIRj8hVjR07FtOnT8fHH3+M+fPni84hchr+/v4oLCzE3bt3RacQ/SazZs1C69atebokCZWamoorV65g+PDholPIBej1eoSGhorOIALwaEDeqFEjVK5cWXQK0XMzm83IyMiASqUSnUISotfr0bJlS9EZRLh79y6uXbuGoKAg0SkkERyQExH9h1Kp5MFuZZD0gNxqtT65ZQcR/TaPR+S1a9dGZGQk8vLyRCcRvTC5XA6NRoMDBw6goKAAr776KpKSkkRnEdEztGnTBpmZmcjNzUVUVBRu3LghOonoufXp0wfp6ek4cuQIunbtimvXrolOIrKpP/7xj/jss8/w/vvvY9WqVaJziJyCn58fAODKlSuCS4he3JUrV7Bu3TpoNBrRKSRxCxYsQGRkJJo1ayY6hVyATqfjCabkMAwGA4KDg0VnEL2QvXv3Ij8/nwNyspsHDx7g7NmzfP0mh2A0GgGAJ5CT3XBATkT0HwqFggPyMkh2QO7r6wsAPK2SqAJUrVoVWq0WtWvXRpcuXTgiJ6cVGhqKffv2YezYsRg7diwGDBiAW7duic4ionIEBwcjOzsbd+/eRefOnXHx4kXRSUTP7fXXX8eePXuQn5+PsLCwJxeQiVzVxIkTodFoEBcXh82bN4vOIXJ4/v7+ADggJ+c0d+5c+Pr6YuDAgaJTSMKuXbuGzZs3Y9SoUaJTyAU8fPgQp0+f5gCNHAYH5OSMtFotGjZsiICAANEpJBHHjx+HxWLhCeTkEIxGIzw8PNCwYUPRKSQRJpMJcrmcd6whIgIH5OWR7IDcx8cHAJCfny+4hMg1PD6JvFatWjyJnJxapUqVMHnyZGzduhV79+5FSEgINm3aJDqLiMrRqFEjZGVlwd3dHeHh4Th9+rToJKLn1qRJE+zevRv+/v7o0KEDsrOzRScR2dTUqVPxzjvvoH///sjIyBCdQ+TQatSoAaVSicuXL4tOIXohJSUlmD9/Pt577z1UqlRJdA5J2OLFi+Hl5YXY2FjRKeQCDAYDzGYzQkNDRacQwWKx4OTJkxyQk9NJS0uDWq0WnUESotfr4enpiSZNmohOIYLRaESzZs3g5uYmOoUkwmQywcvLC3K5ZKeBRERPKBQKlJaWwmKxiE5xOJJ9lXg8IOcJ5EQVp1q1atBqtahRowYiIyNx9uxZ0UlEv1l0dDT0ej2io6MRExODMWPG4P79+6KziKgMfn5+2LlzJ+rUqYPw8HAcO3ZMdBLRc6tRowbS0tLQsWNHqFQqrFmzRnQSkc3IZDLMnTsXffr0QZ8+fXDgwAHRSUQOSyaToW7dujyBnHGZRiMAACAASURBVJzO6tWrcf36dbz//vuiU0jiFi9ejKFDh/K0NaoQOp0OHh4eaN68uegUIpw7dw4PHjzggJycyt3/x96dh8d4rn8A/85kj2wkRBAiUgkhEWkJEVlsERpr7KqWY1+KKq1WONVTbWkdRe07PYgqtUSRBBH7loQgIgkSQiJENlnm/v3Rn7RaS5aZed6ZuT/Xda7zB2a+0Xbmez/P877vkyc4f/48OnXqJDoK0yFXr15F06ZN+cAuk4QbN27AxcVFdAymQ549ewZzc3PRMRhjTBIMDAwAACUlJYKTSI++6ACi8AFyxlSjevXqCA8PR4cOHeDn54eoqCg4ODiIjiUphYWFyMrKKvtfaWkpiouLkZubCwCQy+WwtLQEAJiamsLa2hrW1tawsbERGVsnWVpaYvPmzQgODsbYsWNx4sQJbN68GZ6enqKjMcZeoUaNGjhy5Ah69uwJPz8/HDhwAF5eXqJjaYScnBxkZmYiMzOzrB/n5eWhqKgIwB9PZzAxMQHwx3e9jY0NrK2tYWZmJiyztjE1NcXu3bsxadIkDBw4EA8fPsSECRNEx2JMJfT09LB582b06tULXbt2RVRUlM4/Sri0tPSlGaGwsBAAkJ2dXfZ7LCwsoKenBwMDg7IZ4cUdqpn2srOz4wPk7JWk3N+WLl2Knj17ol69eip/L8Ze5/jx47h+/Tq2bdsmOgoTRNn9Kj4+Hi4uLtDX19ltNSYhCQkJAMCH0FiVqXO/KiIiAgqFAv7+/kr9GRh7k/j4eDRr1kx0DKbhlDV/X79+HT169FBveKbT+AA5U5fXzd9paWkAgBMnTgAA728woV4cIC8qKuJ/7/5GZ1e6zM3NIZfL+QA5YypQs2ZNHD16FB06dECnTp0QFRWFunXrio6lVqmpqYiNjcW1a9eQkpJS9r+7d+9W+i7WcrkctWrVQv369eHg4AAHBwc0atQI7u7ucHV15UN8KhQSEgIvLy8MGzYMXl5emD17Nr744gu+YwFjEmRmZob9+/djwIAB6NixI3799Vd07NhRdCzhiouLkZCQgNjYWNy8efOl76YHDx6guLi4Uq9rZGSEOnXqlH0vOTg4wMXFBW5ubnjnnXf4c7KC9PT0sHz5cjg7O2PSpEm4efMmfvjhB368INNKBgYG2LlzJ7p27YqAgAAcP34czs7OomOp1JMnTxAbG4v4+HgkJSW9NCM8evSo0q9rYWEBe3t7NGzYsOyzuHnz5mjevDns7OyU+BMwEerUqYP09HTRMZgAmtrfLl68iNOnT+PYsWNVeh3Gqmrt2rXw9PSEh4eH6ChMhdTZryIjI+Hk5KTE9IxVXkJCAmrXro3q1auLjsI0gFT2qw4fPgxPT0++WRJTq/j4eHTo0EF0DCZx6pq/X3w2Xr9+nfdPmFrk5ubyAXKmNFWZv7/66qvX/hrvbzB1eXGAvLLf69pMRkQkOoQoVlZWWLhwIUaNGiU6CmNa6dGjRwgICMDz588RGRmptYfIHz16hFOnTuHkyZM4ffo0YmNj8eTJEwBAgwYNXtqUbdCgQdndGV78v1wuh4GBQdnQqFAo8PTpUwBAfn4+MjMzkZWVhYcPH+Lhw4dITk4uK2O3bt1Cbm4u5HI5HB0d4enpibZt26Jt27Zo0aIF3xFHyYgIq1evxtSpU9G8eXNs3ryZH1vLmEQVFRVh6NCh2LNnD37++Wf06tVLdCS1ISLcuHEDp06dQnR0NM6fP4+EhAQUFxfD0NAQTk5OL3031alTp+w7qWbNmmVP6qlWrVrZ1beFhYUoKCgA8Mfd2h49elR2Ffm9e/fKvpeSk5ORnJyMkpISGBsbw9XVFa1bt0bbtm3h7e3NTyWpgE2bNmHUqFHo0aMHNm/eDGNjY9GRGFOJnJwcdOzYEQ8ePMCJEyfQoEED0ZGUorCwEBcuXEBMTAxOnjyJy5cvIzU1FcAfdyL662dx/fr1Ubt2bdjY2JTNCS/+m//rgZCcnJyyu8G9+AzOzMzEw4cPcffu3bLP4aSkJDx48AAAYGNjAw8PD7Rp0wZt2rRB27Ztyz7nmWaYMGEC4uPj+TCultOm/jZs2DBcvHgRsbGxkMlkSv17Yqy8nj59ijp16mDhwoUYN26c6DhMSbhfMfanUaNG4fbt24iIiBAdhUmMlPernJ2dMXDgQMyfP1/Y3w/TLdnZ2ahRowYOHDiArl27io7DJEKb5m/G3mbChAm4du0aIiMjRUdhGobnb6aNjh07Bj8/P2RkZKBWrVqi40jJPZ0+QF6/fn189NFHmDZtmugojGmthw8fokOHDlp1iLywsBDHjh1DeHg4Dh06hISEBMjlcjRt2hRt2rSBh4cH3Nzc0KxZs7JH+6kKEeH27duIjY1FXFwczp07h5iYGDx+/BjVqlWDj48Punbtiq5du/JBZyWKj4/HkCFDkJSUhEWLFuFf//oXb4wzJkGlpaUYN24c1q9fjzVr1mDYsGGiI6lMRkYGwsPDcfDgQRw9ehSZmZkwNTXFe++9By8vL7i5ucHNzQ3Ozs5lV9eqSmFhIa5du4bY2FjExsbi9OnTuHDhAoqKilC3bl107twZgYGB6NSpE98p6y2OHj2KPn36wNPTE7/88ovKewVjojx58gT+/v7Iy8vD8ePHUbt2bdGRKuXKlStln8WnT5/G8+fPYWdnh7Zt2+Ldd9+Fm5sbmjdvDnt7e5VnycrKwpUrVxAXF4dLly4hJiYGiYmJkMvlcHd3R2BgIAIDA9G2bVu+6FTi5s+fj40bNyIxMVF0FKZk2tjfMjMzYW9vjyVLluBf//qXSjMz9iY//fQTpk+fjvT0dFhZWYmOw6qA+xVjr+bt7Y0WLVpg2bJloqMwwTRpv6pGjRoICQnB2LFjeb+KqcWJEyfQvn173LlzRy1dgUmXNs7fjJXHBx98gCdPnmDv3r2iozANwPM303YxMTHw9vbGvXv3tOLsohLp9gHyZs2aoW/fvpg7d67oKIxptYcPHyIgIABFRUWIiopCnTp1REeqsGfPnuG3337Djh07cPjwYeTn58PNzQ2BgYHw8/NDmzZtJLMhRURISEjAyZMn8fvvv+PIkSN48uQJnJyc0Lt3b/Tv3x8tW7YUHVPjPX/+HHPnzsV3332Hjh07Ys2aNahXr57oWIyxvyEifPLJJ1i0aBEWL16MyZMni46kNMnJydixYwfCwsJw4cIFGBkZwcfHB4GBgWjXrh08PDxUvthZXgUFBTh//jyOHz+O8PBwnD59GkQEb29vhISEoG/fvhp7YFTV4uLiEBQUBCsrKxw4cIA3O5jWevjwIdq3bw8jIyNERkaiRo0aoiO9lUKhwMmTJ7F9+3b8+uuvSEtLQ61atco2edq2bQtHR0fRMctkZGTg1KlTOHr0KMLDw3Hr1i1YWVkhKCgI/fr1Q2BgIIyMjETHZH+zbt06TJo0qdKPlmfSou397T//+Q++++473Lt3D9WqVROUnDHg3XffhaurKzZu3Cg6Cqsg7leMlY+NjQ3mzp2LiRMnio7CBOD9KsbK56effsKnn36K7OxsvgmUDtL2+Zux8ujVqxdMTU2xdetW0VGYBPH8zXTNuXPn0KpVKyQnJ/NTP16m2wfIvb290bp1a3z//feiozCm9V4cIi8uLkZkZKRGHCIvLS3FgQMHsGHDBhw8eBAlJSXo2LEjevXqha5du2rMYeGSkhLExMRg//792LlzJ5KTk+Hk5ISBAwdixIgR/MVYRWfOnMGHH36I9PR0fPfddxg9erToSIyxV/jmm2/w6aefYsGCBfjkk09Ex6m0x48fY8uWLdi6dSvOnj0La2tr9O7dG8HBwfD399eYgzrZ2dk4cuQIfv31V/z222/Iz8+Hj48Phg4div79+2vMz6EuaWlpCAoKQmZmJvbv348WLVqIjsSYSty9exc+Pj6ws7PD4cOHyx6ZLTVXr17FmjVrsHPnTqSlpZVdnN6tWze0bNkScrlcdMRySUxMxIEDB7Br1y6cPHkS5ubm6NGjB4YPHw5fX1/eXJWIgwcPIigoCE+fPuXHc2ooXelvRkZGcHR0RP/+/fHdd9+Jjst0WFxcHNzc3HDs2DG0b99edBxWTtyvGCu/jIwM1K5dG0eOHEGHDh1Ex2FqwvtVjFXcxIkTcfnyZURHR4uOwtREV+ZvTfk5mHgdO3aEk5MTVqxYIToKkxCev5muunz5Mjw8PHDz5k1+ItLLdPsAedeuXVG3bl2sWbNGdBTGdEJGRgYCAgJQUlIi6UPkd+7cwZo1a7Bu3Trcv38f/v7+GDhwIHr16qURd0J8m3PnzmHHjh3YunUrMjIy0KlTJ4waNQo9evSQzJXWmqawsBBz587FwoUL0alTJ6xZs4YfecKYBC1fvhyTJk3CjBkzsGDBAtFxKuT48eNYvXo1wsLCYGBggJCQEPTr1w8dOnTQ+EdzFRQU4ODBg9i+fTv27NkDIyMjDBo0CKNHj4aHh4foeJKRnZ2NXr164cqVK9i9ezf8/PxER2JMJRITE9G+fXs0bdoU+/fvh7GxsehIAP74rNq+fTtWr16NmJgYODk5YfDgwejXrx+aNm0qOl6VpaWlISwsDNu2bcPZs2fRuHFjjBo1Ch9++CFq1qwpOp5Ou3LlClq0aIHr16/D2dlZdBxWAbrW3/z8/LBv3z4kJiZK6u5ETPdMnjwZhw4dwvXr13mzUOK4XzFWOVFRUfD390daWppk91iY8vB+FWOV5+fnBxcXFz44qQN0bf7m/RNWXq1bt0b79u35Qn/G8zdj+OPiiWbNmuHq1ata8e+9Et0D6bB+/fpRSEiI6BiM6ZQHDx5Q06ZNydnZmdLT00XHecmFCxdo6NChpK+vT7Vr16aZM2fSrVu3RMdSmdLSUjp8+DCFhISU/cyhoaH0+PFj0dE01smTJ6lx48ZkZWVFK1euFB2HMfYKW7ZsIX19fRo7diyVlpaKjvNGRUVFtGPHDmrdujUBIE9PT1q5ciXl5OSIjqYy2dnZtHLlSnJzcyMA5O3tTTt27KCSkhLR0SShsLCQBgwYQIaGhrR161bRcRhTmStXrlCNGjUoODiYioqKhGbJyMig0NBQsrGxIUNDQwoJCaHDhw+TQqEQmkuVrl27RjNnziRra2syMjKioUOHUnx8vOhYOisjI4MAUEREhOgorBy4v3F/Y2IVFBRQjRo1aMGCBaKjsDfgfsX9ilXN8uXLycLCQqv/m2G8X8X7VUwZbGxsaMmSJaJjMBXh+Zvnb/Z2TZs2pXnz5omOwQTi+Zvnb/anGzduEAC6dOmS6ChSc1enD5CPGjWKOnfuLDoGYzpHaofIw8PDqV27dmXD5bZt24QfVFG3lJQUmjp1Kpmbm5OFhQV9/PHHlJGRITqWRsrPz6eZM2eSXC6nbt26SeLfccbYy/bu3UvGxsY0aNAgSX7e5+fn06JFi6hevXqkr69PAwcOpHPnzomOpXYRERHUrVs3kslk5OzsTOvWraPi4mLRsYRTKBQUGhpKMpmMQkNDRcdhTGVOnTpFZmZmNHjwYCEX/CQnJ9OoUaPIyMiIatasSaGhoTrXj/Pz82nFihXUuHFjkslk1L17dzpz5ozoWDpHoVCQgYEBXzgkcdzf/sD9jYm2detW0tfXp7S0NNFR2Ctwv+J+xZRj0qRJ1Lp1a9ExmIrwfhXvVzHlSE9P54uxtRTP33/g+ZuVh729PS1atEh0DCYAz988f7N/un37NgGgs2fPio4iNXflYu58Lg2WlpbIyckRHYMxnWNra4uIiAjI5XIEBATg/v37QnJERUXBx8cHgYGBMDc3R2RkJM6fP4+BAwfq3KPxGjRogO+//x53797F559/ji1btqBRo0b47LPP8PjxY9HxNIqJiQkWLFiAY8eO4fr163B3d8euXbtEx2KM/cX777+PAwcO4LfffkPv3r1RUFAgOhIAoKioCMuWLYOTkxO++OIL9OvXD0lJSdi2bRveffdd0fHUzt/fH/v27UN8fDy8vb0xZswYuLq6YuvWrVAoFKLjCSOTyTB37lz88MMP+PLLLzF58mSd/vtg2svLywt79uzBrl27MGrUKBCRWt733r17GDduHJydnREZGYklS5YgNTUVc+fORa1atdSSQSpMTEwwZswYJCQkYPfu3cjKykLr1q0RHByMy5cvi46nM2QyGWxtbZGeni46CnsF7m8v4/7GRFu7di26deuGOnXqiI7C/oL71Z+4XzFlSEhIQJMmTUTHYErG+1V/4v0qpgzx8fEAgGbNmglOwpSF5++X8fzNyuPZs2cwNzcXHYOpEc/ff+L5m/2doaEhAKC4uFhwEunR6QPk5ubmfICcMUFeHCKXyWQICAjAgwcP1PbeV69eRWBgIPz9/WFsbIyYmBgcOHAAfn5+assgVZaWlpgxYwaSkpIwZ84crF69Go6Ojvj222/x/Plz0fE0Srt27XDx4kX06tULISEh6NevH7KyskTHYoz9P39/fxw9ehSnTp1CUFAQnj17JiwLEWH79u1o3LgxPv74Y4SEhOD27dtYtGgR6tevLyyXVDRt2hRr165FQkICvLy8MGzYMLi7u+Pw4cOiowk1ZcoUhIWFYc2aNejTp49kLoRgTJkCAgKwfft2bNmyBVOnTlXpe+Xk5GDWrFl45513cODAASxbtgwJCQkYPXo0TExMVPreUieXy9GjRw/ExMRg//79SE9PR8uWLTFw4EDcuXNHdDydUKdOHWEXXrNX4/72ZtzfmAjJycmIiorCyJEjRUdh/4/71etxv2JVwQfItQvvV70e71exqoiPj4etrS1q1qwpOgqrIp6/34znb/Ymubm5fIBcR/D8/Xo8f7MXXlyYywfI/0mnD5BbWFjwAXLGBKpduzZ+//13lJSUwN/fX+WHyLOysjBx4kS0aNECmZmZiIyMxOHDh9GmTRuVvq8mMjU1xYwZM3D79m1MmTIF8+bNg6urK3799VfR0TSKhYUFVq5ciYMHD+LUqVP8d8iYxLz33ns4duwYbt68iYCAAGRmZqo9w/nz5+Hj44NBgwYhICAAiYmJWLx4MWxtbdWeReoaNWqEjRs3Ij4+Ho6OjujcuTN69OiBxMRE0dGE6dWrFyIiIhAdHY2AgAA8evRIdCTGlC44OBjbtm3D0qVLMX/+fKW/vkKhwNq1a+Hs7IzVq1fjm2++QWJiIkaNGqVzd3krj6CgIJw7dw5hYWE4f/48mjRpgtDQUOTn54uOptXs7Oz4ALmEcH8rP+5vTJ3Wrl2LWrVqoWvXrqKj6DzuVxXD/YpVRE5ODtLT0/kAuRbg/ary4/0qVhlXr17lu49rAZ6/y4/nb/Z3BQUFKCkp4QPkWo7n74rh+Vu38QHy19PpA+SWlpZ4+vSp6BiM6bR69eohMjISxcXFCAgIQEZGhkreZ+PGjWjcuDF27dqFlStX4uzZs3wHh3IwNzfHvHnzcP36dbRq1Qq9e/dGUFAQUlNTRUfTKF26dEF8fDx69OiBXr16oV+/fvyoRcYkwtXVFdHR0Xj8+DF8fX2RlpamlvfNycnB+PHj0bp1a8hkMpw9exbr1q1DvXr11PL+mszFxQV79uzB77//jqSkJDRr1gxz585FUVGR6GhCeHl54fjx47h//z7atGnDC8JMK/Xt2xerV6/GnDlzsGjRIqW9blxcHNq0aYOxY8eib9++SExMxOTJk8seY8deTSaToXfv3oiPj0doaCgWL16MJk2a4MCBA6Kjaa06deogPT1ddAydx/2t8ri/MVUrLS3Fpk2bMGLECOjr64uOo9O4X1UO9ytWXtevXwcR8QFyDcf7VZXD+1WsIuLj4/kAuQbj+bvyeP5mL7x48jIfINdePH9XDs/fuosPkL+eTh8gt7CwQG5uLhQKhegojOm0F4fIi4qK0LlzZ6XeATY5ORmdO3fGiBEjMGTIENy8eRMjRoyAXK7TH38VZm9vj23btuHYsWNITk5Gs2bNsGTJEv78rABLS0usXLkS+/fvx8mTJ9GsWTPs27dPdCzGGICGDRvixIkTkMlk8PHxQVJSkkrfb9++fXB1dUVYWBg2btyI48ePw9PTU6XvqY06deqEy5cvY8GCBVi4cCE8PDwQExMjOpYQTZo0wenTp2FpaYn27dvjwoULoiMxpnTDhw/HDz/8gBkzZmD16tVVeq3nz5/jiy++gKenJ/T09HDp0iX8+OOPqFGjhpLS6gYjIyN88sknuHnzJtq2bYtu3bphyJAh/DQEFeA7kIvH/U05uL8xVQkPD8e9e/cwfPhw0VF0Fvcr5eB+xd4mISEBRkZGcHBwEB2FVQLvVykH71extyEiXLt2Da6urqKjsErg+Vs5eP5mfIBce/H8rRw8f+sePkD+ejo9kVpYWICIyr44GWPi2NvbIzIyEnl5eejYsaNSDpGvXr0azZs3R3p6OqKjo/Hf//6XC3IV+fj44PLly5g6dSpmzJiB9u3bIyUlRXQsjRIUFIQrV66gXbt2CA4Oxrhx45Cbmys6FmM6r06dOoiIiIClpSV8fHwQHx+v9PfIycnBsGHD8P7778PX1xfXrl3DkCFDIJPJlP5eukJfXx9Tp05FXFwc7O3t4ePjgxkzZujk3TRq166NY8eOwcPDA76+vti/f7/oSIwp3ZQpU/D5559j3Lhx+N///lep17hy5Qo8PT2xePFiLFy4ENHR0XxHqiqytbXFzz//jN9++w3Hjx+Hq6sr9uzZIzqWVrGzs+M7kAvC/U35uL8xVVi7di38/Pzg5OQkOopO4n6lfNyv2OskJCSgcePG/LQFDcT7VcrH+1XsdVJTU/Hs2TPuIxqG52/l4/lbt/EBcu3E87fy8fytO14cIOfvwX/S+QPkwB9llDEm3otD5M+ePUPHjh2RlZVVqdfJzMxEr169MHbsWEyaNAkXL15EmzZtlJxWdxkZGeHf//43zp8/j5ycHLRo0QJbt24VHUuj2NjYYMeOHdi+fTvCwsLQrFkzHD58WHQsxnRerVq1EBkZCUdHR/j6+uLMmTNKe+2YmBi0aNEC4eHh+O2337BlyxbY2Ngo7fV1XcOGDREeHo7Vq1djxYoV8PLywvXr10XHUjszMzPs3bsXgwYNQo8ePbBy5UrRkRhTun//+9+YOnUqPvjggwpdKEFEWLRoEVq3bg1ra2vEx8dj8uTJfKc3JerevTuuXr2K999/Hz179sTYsWORn58vOpZWqFOnDnJzc/kGCGrG/U21uL8xZcnIyMC+ffswcuRI0VF0Dvcr1eN+xf4uISEBTZo0ER2DVQDvV6kW71exV4mPj4dMJkPTpk1FR2HlxPO3avH8rZv4ALl24flb9Xj+1n5yuRx6enp8B/JXkBERiQ6hDvn5+UhJSUFycjLu3LmDR48eISUlBUePHoWbmxuICM+fPwcAmJiYwNjYGMbGxrC2toa1tTVsbW1Rv359ODg4wMHBAUZGRoJ/Isa01507d+Dv7w8LCwscOXIE1tbW5f6zx48fx8CBA6Gvr49NmzbB19dXhUlZYWEhZs2ahSVLlmDIkCFYsWIFTE1NRcfSKA8fPsTEiROxc+dOhISEYMWKFfx4IRV6VR/IyspCVlYWioqKkJ+fz32AIT8/H71798bJkyexZ88eBAQEVPq1iAj/+c9/MHfuXHTu3Bnr1q2Dra2tEtOyv7t16xYGDx6M+Ph4LF26VCcfY09EmDdvHubNm4eZM2fi66+/1ok7tZSUlODevXtITU1FSkoKHjx4gMzMTGRlZSE3NxclJSVli6Z6enqwsLCAnp5e2We8tbU17O3tyz7jq1evLvgnYq9DRBgzZgy2bNmCAwcOwM/P742/PzMzE4MHD0ZkZCTmzZuHTz75BHp6euoJq6PCwsIwZswY1KpVC2FhYfzY6Cq6dOkSWrZsiRs3bqBx48ai42g97m/qx/1Nc0mhf3377bf4z3/+g/T0dF6TUiPuV+rH/UpzKXM9snv37hg8eDDmzp0r9odi5cL7VerF+1Wa7cXZjZSUFKSlpZV9TmZlZYGI8OTJE7w41mJpaQm5XA4LCwvY2NjAxsYGtWvXhoODAxo2bIhNmzZhxYoVSE1NFfxTsbfh+Vv9eP7WXBWdvw0NDZGZmQl3d3fUqlWL9z80GM/f6sfzt+Z62/x9+/btsrmbzwOVuaeVB8gfP36MmJgYnD17FrGxsYiNjUVKSkrZUFG9enXY2tqW/cM3MjKCqalp2T/0goICFBYWoqCgoOxfovv377/0ZduoUSO4u7vDzc0NXl5eaN26NV+5xZgS3blzB35+frC0tCz3IfLFixdjxowZeP/997Fu3TpYWVmpISkDgIMHD2Lo0KGoW7cufvnlFzRq1Eh0JI3z22+/YezYsVAoFPjpp5/Qs2dP0ZE0HvcBVhVFRUUYPHgwDhw4gF27diEwMLDCr/H06VN88MEHOHjwIBYuXIhJkybpxCFeKSguLsYXX3yBb7/9FqNHj8Z///tfXRnwXrJ+/XqMGTMGgwcPxqpVq8oezaUNioqKcOHCBZw+fRqXL19GXFwcrl69WvbYMWNjY9SuXbtsYdTMzAz6+vpln9GlpaXIyclBaWkpsrKyyhZaHzx4UPYetra2cHNzg7u7Ozw9PeHt7Q17e3shPy/7p9LSUgwZMgT79+/H0aNH8d57773y950/fx59+vSBXC7Hjh07Xvv7mPLdu3cPAwYMwJUrV7B27Vr069dPdCSNlZGRgdq1ayMqKooPnagY9zdxuL9Jn1T7V9OmTREQEIClS5eq7odnL+F+JQ73K+lTx3qkg4MDWrZsyeuREsf7VeLwfpX0JSYmIiYmBhcuXEBcXByuXLmC7OxsAH98ztna2sLGxqbss1Imk8HKyqpsNnv69CkUCgVycnLw6NEjZGZm4sGDBy/10vr168PX1xfu7u7w9vZG8+bN+bCdxPD8LQ7P39In1fmbqR/P3+Lw/C19fB5IabTjAHl+fj6ioqJw8OBBREREICEhAQDQuHHjsi88V1dXNGrU+EQCbAAAIABJREFUCA4ODpX+B/n48WOkpKTg9u3biI2NRVxcHC5fvoyUlBTo6enBzc0NnTp1QmBgILy9vWFoaKjMH5MxnfPXQ+RHjx597V2ZCwoKMHLkSOzYsQNffvklZs2axQOmACkpKejTpw9u376NrVu3IigoSHQkjfPkyRPMnDkTq1atQkhICJYvX86PaKsA7gNM2UpLSzFmzBhs3rwZmzdvrtBgeO3aNfTs2RO5ubnYsWMH2rVrp8Kk7HV++eUXDB8+HE2aNMGuXbtQt25d0ZHU7vfff0ffvn3h5eWFsLAwWFhYiI5UKUSES5cuITw8HIcOHcK5c+dQUFCAmjVrwsPDA+7u7mjevDmcnJzg4OAAOzu7Sr1PYWEhUlNTkZycjKtXryIuLq7ss76kpAT29vbw9/dHYGAgOnfuXKEn5TDlKy4uRu/evREdHY2IiAh4eHi89Ovr16/H+PHj4ePjg59//pn/eQlQXFyMadOmYdmyZZg2bRq++eYb3rCtBIVCASMjI2zatAkDBw4UHUdrcX+TBu5v0qEJ/evEiRNo3749Ll68+I8ewFSD+5V43K+khdcj2d/xfpU08H6VtKSnpyM8PBzh4eE4duwYHj58CGNj47LDOG5ubmjSpAkcHBxQv379St0EQ6FQID09HSkpKbh+/Tri4uIQFxeHixcv4unTpzA3N0fbtm3RpUsXdO3aFS4uLir4SVl58fwtDTx/S4cmzN9M/Xj+Fo/nb2nh+Vtl7oE01LNnz2jbtm3Uo0cPMjY2JplMRi1atKBPPvmE9u7dS5mZmWrLkp6eTmFhYTR58mRydnYmAGRubk6DBg2iPXv2UGFhodqyMKZtUlJSyMHBgTw8PCgrK+sfv56RkUFeXl5Uo0YNOnTokICE7K/y8/Ppgw8+ID09PVq2bJnoOBpr//79VK9ePbK1taWdO3eKjiNp3AeYqikUCpo2bRrp6enR6tWry/Vnjh49SlZWVtS2bVtKT09XcUL2NgkJCeTi4kL16tWjK1euiI4jxNmzZ8nW1pbc3Nzo3r17ouOUW2lpKR0/fpwmTpxIdnZ2BIDs7Ozoww8/pPXr19ONGzfUliUvL48iIyPpyy+/JF9fXzIwMCA9PT3y8fGhpUuX0v3799WWhb0sPz+f/Pz8qFatWpSQkEBEf3x2f/rppySTyWjWrFlUUlIiOCXbtGkTGRsbU3BwMOXm5oqOo5Hq1q1LixYtEh1Da3F/kxbub+JoWv8aNmwYubm5qS2TLuN+JT3cr8Th9Uj2OrxfJS28XyVWcnIyffPNN+Tp6UkAyMTEhAIDA2nhwoUUExNDz58/V0uO0tJSiouLo59++on69+9PNWrUIADk6OhIM2fOpIsXL6olB/sTz9/SwvO3OJo2fzP14flbenj+Fofnb7W4q3EHyI8fP05Dhw4lExMTMjAwoMDAQFqzZo2kyuXt27dpyZIl5OPjQ3K5nKysrGj8+PF06dIl0dEY00ivO0SemJhIjRs3poYNG5YdFmHSsHjxYpLL5TR58mQqLS0VHUcjPXnyhEaPHk0ymYy6d+9OaWlpoiNJCvcBpm4LFiwgmUxGCxcufOPv27BhAxkaGlLfvn0pPz9fTenY2zx+/Jj8/f3JzMyM9u3bJzqOELdv3yZnZ2eN6E2pqakUGhpK9vb2BIBcXV1p3rx5dPHiRVIoFKLjERHR06dPKSwsjAYNGkRmZmakp6dHXbt2pV27dlFRUZHoeDonNzeXvL29yd7enm7evEmDBw8mfX19WrFiheho7C9OnTpFtWrVInd3d7p7967oOBrn3XffpY8//lh0DK3E/U2auL+pl6b2Lzs7OxozZgz3LxUrLCzkfiVR3K/Ui9cj2ZvwfpV08X6V+uTn59OGDRvI29ubZDIZWVtb06hRo+jgwYOSmbVKSkro5MmT9Mknn5CDgwMBIBcXF1q4cCE9fPhQdDytx/O3NPH8rV6aOn/z/od68PwtXTx/qxfP32qlGQfI8/PzacWKFdSkSRMCQJ6envTTTz+p9SqCyrp37x5999135OLiQgCoVatW9PPPP1NxcbHoaIxplBeHyFu2bElZWVl07tw5sra2Ji8vL8rIyBAdj73C1q1bycjIiAYMGMCDRBWEh4dTgwYNqHr16rRy5UrRcYTiPsBE+/HHH0kul9PMmTNf+esvDpnPmjVLMos87E/Pnz+noUOHkr6+Pm3dulV0HCGysrKoXbt2VKNGDTp+/LjoOP8QERFB77//Punp6ZGtrS3NnDmT4uPjRcd6q/z8fNq5cycFBgaSXC6n2rVr09y5c3nTSc2ysrLI1dWVbGxsyMrKio4cOSI6EnuFvx6qSEpKEh1HowQHB9OgQYNEx9A63N+kjfub6nH/Ym/z7Nkz8vPz434lYdyvVIvXI1l58H6V9PF+lWqlpKTQtGnTyMrKigwNDSkkJIQOHjwo+b9rhUJBp0+fpvHjx5OlpSUZGhrS4MGD6cKFC6KjaSWev6WN52/V4/mbvQ3P39LH87dq8fwtjLQPkD958oTmzp1LNWvWJCMjIxo5cqRGF/Zjx45Rv379SE9Pj+rXr0+LFy+mgoIC0bEY0xiJiYlUt25dcnV1JQsLC+ratStfnSxxERERZGZmRsHBwZr8uA7h8vLyaObMmSSXyykoKEjnrmjkPsCkZNOmTaSvr08TJkx46Y41X3zxBclkMvrxxx8FpmNvo1AoaMaMGSSXy2nVqlWi4whRUFBAISEhZGRkRNu3bxcdh0pLS2nHjh3UsmVLAkA+Pj60c+dOyW8wvU5qairNnj2brK2tycTEhMaMGUMpKSmiY+mE7Oxsevfdd6lmzZoUGxsrOg57g0ePHpGnpyfVqVOHrl27JjqOxhgzZgz5+/uLjqFVuL9pBu5vysf9i5VXdnY2tWnThmxtbblfSRz3K+Xj9UhWXidOnOD9Kg3B+1XKFxcXRwMGDCB9fX2qV68eLViwQGMvosjLy6P169dTixYtCAD5+/vT4cOHRcfSGjx/awaev5WP529WXjx/aw6ev5WP52/hpHmA/NmzZzR//nyqXr06Va9enebMmUMPHjwQHUtpkpOTacqUKWRqakp169al5cuXa2xBYEzdNm7cSEZGRtS7d296/vy56DisHGJiYsjKyoo6duxIeXl5ouNotBMnTlDjxo3J0tKSVq5cqfVX6HMfYFL166+/kpGREQ0ZMoSKi4tp+vTppKenR+vWrRMdjZXT3LlzSSaT0Q8//CA6ihAlJSU0YcIE0tPTE7pov2fPHnJ3dye5XE79+vWjs2fPCsuibHl5ebRs2TJq2LAhGRoa0oQJEygtLU10LK316NEj8vDwoHr16tH169dFx2Hl8OTJE/L29qaaNWtq4uP8hJg7dy45OzuLjqE1uL9pHl3vb8rC/YuVF/crzcP9Sjl4PZJVxJEjR6hatWq8X6VBeL9KOW7cuEEDBw4kuVxObm5utGXLFq36LDl8+DB17tyZAJCvr68kn+SoSXj+1jw8fysHz9+svHj+1jw8fysHz9+SIb0D5Hv37qX69euTmZkZzZw5k7Kzs0VHUpmHDx/SzJkzycTEhN555x06dOiQ6EiMSdqxY8fI1NSUBg0apCmPeWD/7+LFi2RjY0OdO3fmOztUUX5+Ps2cOZP09PSoS5culJqaKjqSSnAfYFJ38OBBMjU1pU6dOpG+vj79/PPPoiOxClq4cCHJZDJaunSp6CjCLF68mORyOU2ePPmlO+qrWmJiInXp0oUAUMeOHenixYtqe291Kyoqoo0bN5KjoyOZmppSaGgobyorWXZ2NrVs2ZIaNmxIycnJouOwCsjNzaWAgACysbGhq1evio4jeatWrSILCwvRMbTCzJkzub9pKO5vlcf9i/tXRXC/0lzcr6qG1yNZRfB+lebi/arKy8vLo9DQUDIyMqImTZrQxo0bqaSkRHQslYmJiaHu3bsTAOrevTvduXNHdCSNw/O35uL5u/J4/ub5uyJ4/tZcPH9XDc/fkiKdA+Q3b96kzp07k0wmo+HDh9PDhw9FR1Kb5ORkCg4OJgA0aNAgSk9PFx2JMck5c+YMmZubU69evXgxTkNdvnyZqlevTsHBwVK9qkqjREdHk7OzM1lYWGjV3ci5D3Af0CTjx48nmUxGa9asER2FVdL3339PMpmMVq9eLTqKMDt27CBjY2Pq06ePyh+flZeXR5999hkZGhpSixYtKCYmRqXvJyUFBQU0b948MjExoWbNmtGxY8dER9IKeXl55OPjQ3Xr1qWkpCTRcVgl5OXlka+vL9WqVYvvrvIWv/32GwGgZ8+eiY6i0ebNm8f9TcNxf6sY7l/cvyqK+5Xm435VcbweyeuRFcX7VZqP96sq7pdffqH69euTlZUVLV26VKsPjv/dvn37yNHRkSwsLOj777/n/+7Liedvzcfzd8Xw/M3zd0Xx/K35eP6uOJ6/JTl/iz9Anp+fT6GhoWRsbExubm4UHR0tOpIwe/fupYYNG1K1atVowYIFPHww9v/i4uKoevXq1K1bN75iUcOdPHmSzMzMaPDgwVpz4FmkgoICCg0NJQMDA/Lx8aGEhATRkSqN+8CfuA9ohh9++IFkMhmtWrVKdBRWRbNnzyY9PT0KCwsTHUWYo0ePkqWlJfn7+6vsCm/+bPtDUlISdevWjQBQSEiIVj2KTd0KCwvJ39+fbG1teWFOwz19+pTee+89atCgAd27d090HMm6cOECAaDExETRUTQW9zftwf2tfLh//YH7V/lxv9Ie3K/Kh9cj/8TfGeXH+1Xag/eryicpKYmCgoJ0vkv9/TvjxIkToiNJGs/f2oPn7/LhLvUHnr/Lj+dv7cHzd/nw/P0nCX5niD1AfuXKFXJxceGrNf8iLy+PZs+eTUZGRuTl5UUpKSmiIzEmVFpaGtWvX598fX1VfldMph6HDx8mQ0ND+vTTT0VH0Rrnzp0jd3d3MjExkUrBqBDuA//EfUDawsLCSC6X03fffSc6ClOSCRMmkImJiU7dEeLv4uLiyN7enlxdXSk1NVVpr/vs2TMaMmSIFK+mFurFXZtq1KhBe/fuFR1H4ygUCho8eDBZWlrSlStXRMdhSpCZmUlNmjShFi1aUE5Ojug4kpSenk4A+A4+lcT9Tftwf3s97l+vxv3rzbhfaR/uV2/G65H/xOuRb8f7VdqH96vebPXq1Xw32b+5efMmdenShWQyGU2fPp3vYP8KPH9rH56/X4/n71fj+fvNeP7WPjx/vxnP3/8ksflb3AHyVatWkYmJCbVv357u3r0rKoZkXb16lZo1a0Y1atSgPXv2iI7DmBB5eXnUqlUratSoET169Eh0HKZE27ZtI5lMRsuWLRMdRWsUFxfT4sWLqVq1auTm5kZnz54VHalcuA+8GfcB6Tl79ixVq1aN/vWvf4mOwpSotLSUevbsSdbW1nTjxg3RcYRJS0ujFi1akJ2dHV26dKnKr3flyhVydnammjVr0oEDB5SQULvk5ubSiBEjSCaT0bRp03jDqQJmz55NBgYG9Pvvv4uOwpQoOTmZbG1tqWvXrryA+AolJSWkp6dH//vf/0RH0Tjc37QT97dX4/71Zty/Xo/7lXbifvVqvB75Zrwe+Wq8X6W9eL/qn3JycmjQoEEkl8vps88+4870Chs2bKBq1apJ4cCPpPD8rZ14/n41nr/fjOfv1+P5Wzvx/P1qPH+/mUTmb/UfIH8xcMhkMpo8eTJ/SbxBQUEBTZ48uezvih+FxnRJaWkpBQcHU61atSgpKUl0HKYCc+bMIX19fTpy5IjoKFrl1q1b1KFDB9LX16fJkydTbm6u6EivxH2g/LgPSEdqairVqlWLunXrRiUlJaLjMCXLzc0lT09PcnZ2pidPnoiOI0x2djb5+fmRmZkZHTx4sNKvs3HjRjI1NaX27dvzI9veYvPmzWRmZkbvvvsu995y2LhxI8lkMlqzZo3oKEwFzpw5Q6ampjRx4kTRUSTJzs6Ovv/+e9ExNAr3N+3G/e1l3L/Kj/vXy7hfaTfuV3/i9cjy4/XIl/F+lfbj/ao/Xb16lVxdXcnGxoYPRL7F9evXyc3NjSwtLWnHjh2i4wjH87d24/n7ZTx/lx/P3y/j+Vu78fz9J56/y08C87d6D5DHxsZS48aNqVatWnTo0CF1vrVGe/GF2qpVK6U+Tp4xKZs3bx4ZGhpSdHS06ChMRRQKBfXr149q1qzJn21KplAoaOPGjVSjRg1ydHSkw4cPi470Eu4DlcN9QKyCggJ69913qVmzZvTs2TPRcZiKpKenk52dHQUHB5NCoRAdR5jnz5/ToEGDyNDQkLZs2VKhP5ubm0sDBw4kuVxOs2fP5qvsyykhIYGaN29O1atX50c6vsHFixfJxMSEPv74Y9FRmApt376dZDIZbdy4UXQUyfH09KQZM2aIjqExuL/pBu5v3L8qi/vXH7hf6QbuV7weWVm8HvkH3q/Sfrxf9YdVq1aRsbEx+fr6Ulpamug4GiE/P59GjhxJMpmMpk6dqrNdnOdv3cDzN8/flcXz9x94/tYNPH/z/F1ZAudv9R0gj4qKIktLS/Lx8eGBoxISEhLI1dWV6tatS3FxcaLjMKZSv//+O+np6fHj4nRAbm4uNWvWjFq0aEH5+fmi42id+/fvU58+fUgmk9HQoUMpMzNTdCTuA1XEfUCckSNHkrm5OV27dk10FKZiMTExZGhoSF9++aXoKEIpFAoKDQ0lmUxGoaGh5fozWVlZ5OXlRTY2NrwgUAn5+fk0fPhw0tPTo59++kl0HMl5/PgxOTo6UkBAAC/M64CPP/6YjI2N6fz586KjSEr37t1pyJAhomNoDO5vukOX+xv3r6rR9f7F/Uq36HK/4vXIqtH19Ujer9IdurxfpVAoaPbs2SSTyWj27Nl89+hK2Lx5M5mamlJwcLDO/ftDxPO3LuH5m+fvyuL5m+dvXcLzN8/flSVo/lbPAfI9e/aQiYkJ9ezZkwoKCtTxllopOzub2rdvT1ZWVnTixAnRcRhTidTUVKpevTp98MEHoqMwNblx4wZZWlrSuHHjREfRWnv37qW6deuSra2t0CsduQ8oB/cB9Vu3bh3JZDLas2eP6ChMTZYsWUJyuZwfW0t//l2MHDnyjYtaaWlp5ObmRg0aNKCEhAQ1JtQ+CxYsIAA0c+ZM0VEkQ6FQUFBQENnb29PDhw9Fx2FqUFxcTP7+/uTo6EhPnz4VHUcyRo8eTQEBAaJjaATub7pHF/sb9y/l0cX+xf1K9+hqv+L1SOXQ1fVI3q/SPbq4X1VSUkJjxowhPT09WrVqleg4Gu3MmTNkY2NDrVu3lsQNndSF52/dw/M3z99VwfM3z9+6gOdvnr+rQsD8rfoD5OvXryd9fX0aPnw4X0WjBIWFhdS3b18yMjKisLAw0XEYU6rS0lLy9fWlpk2b6uTV2bpsx44dBIAXF1QoOzubRo8eTTKZjLp370537txR6/tzH1Au7gPqk5iYSGZmZjRjxgzRUZia9e3bl+rWratTi/2vs3v3bjIxMaEePXpQXl7eP3792rVrVL9+fWratKnav1+01YvvzREjRvD3Jv2xKaGvr08xMTGiozA1evDgAdna2tLQoUNFR5GM0NBQatKkiegYksf9TXfpUn/j/qV8uta/uF/pJl3rV7weqVy6th7J+1W6S5f2qwoLCykkJERn/rtWh2vXrpG9vb3O9HSev3UXz9+sKnj+ZrqA529WFWqev1V7gHz+/PkVeuQ5K5+SkhIaNWoU6evr0/r160XHYUxpvvrqKzIyMqJLly6JjsIE+PDDD8nGxobS09NFR9Fqx44dI2dnZ7K0tKTFixdTaWmpyt+T+4BqcB9QveLiYvLy8iIPDw96/vy56DhMzbKzs6l+/frUq1cv0VEk4dSpU1SzZk1q1arVS3dIOH36NFlbW5O3tzc9fvxYYELt88svv5CxsTH17dtXpz+Drl69SiYmJjR37lzRUZgABw8eJJlMRtu2bRMdRRJWrFhBlpaWomNIGvc33aYr/Y37l+roSv/ifqXbdKVf8XqkaujSeiTvV+k2Xdivevr0Kfn6+lL16tV16skC6nDnzh1q0qQJNWjQgG7cuCE6jsrw/K3beP5mVcXzN9MFPH+zqlDj/K26A+SLFi0imUxGy5YtU9Vb6DSFQkGffvopyeVy+t///ic6DmNVdvHiRTIwMKCFCxeKjsIEycnJIScnJ+ratavoKFovPz+fQkNDycDAgNq1a6fSR21xH1At7gOqNWfOHDI1NaVr166JjsIEiYiIILlcrvWbouV169YtcnJyokaNGtHNmzcpNjaWrKysqFu3bq+8MzmruqioKLKwsKABAwao5aIvqSkqKiJ3d3dq27Yt37FAh02cOJGsrKzo7t27oqMIt3fvXgJAubm5oqNIFvc3pu39jfuX6ml7/+J+xYi0v1/xeqRq6cJ6JO9XMW3fryooKCA/Pz+ys7OjuLg40XG0UmZmJrVu3Zrs7e219o7FPH8znr9ZVfH8zXQBz9+sKtQ0f6vmAPnWrVtJLpfzYK0G06ZNIwMDAwoPDxcdhbFKKy4uJg8PD/Lx8dHKYsjKLzo6muRyOW3atEl0FJ1w/vx5atGiBRkbG9NXX31FRUVFSn197gPqw31A+WJjY8nAwIAWL14sOgoTbOrUqVS9enW6f/++6CiScP/+fWrZsiXZ2NhQ7dq1ydfXlwoKCkTH0mqRkZFkbGxM48aNEx1F7f7973+TqakpJSYmio7CBMrPz6d33nmHgoODRUcR7ty5cwSAbt26JTqKJHF/Yy9oa3+7c+cO2dvbc/9SA23uX9yvGJF29ytej1QfbV2P5P0q9oK27leVlJRQ3759ydLSku+wr2JPnjwhd3d3eueddygjI0N0HKXi+Zu9wPM3qyqev5m24/mbKYOK52/lHyA/fPgwGRoa0qxZs5T90uwVFAoFDRs2jMzNzen8+fOi4zBWKV9//TUZGRnxFcqMiIgmTJhA1tbWWreYIlXFxcX09ddfk4mJCTVr1oxOnjyplNflPqBe3AeUq7S0lNq0aUOtW7emkpIS0XGYYHl5eeTo6EghISGio0hGSkoKWVlZUdOmTfmxjWry66+/kp6eHs2fP190FLW5fv06GRsb03fffSc6CpOAqKgokslktH37dtFRhEpLSyMA/HjxV+D+xv5KG/vbo0ePyMXFhZo3b879S020sX9xv2J/pY39itcj1Utb1yN5v4r9lTbuV02aNIlMTEzo+PHjoqPohLS0NHJwcKBWrVrRs2fPRMdRCp6/2V/x/M2Ugedvpu14/mZVpeL5W7kHyM+cOUNmZmY0ZMgQUigUynxp9gZFRUUUGBhINjY2dP36ddFxGKuQxMREMjExoa+++kp0FCYROTk5ZG9vT4MHDxYdRafcvn2bunTpQjKZjIYOHUqZmZmVfi3uA2JwH1CexYsXk6GhIcXHx4uOwiQiPDycANCePXtERxEuLy+P2rRpQ46Ojlp3VxGpW7FiBclkMlq1apXoKCqnUCioXbt25OnpyY92ZGVGjRpFtra2Or1xU1JSQnp6elq10Kws3N/Y32lTf+P+JY429S/uV+xVtKlf8XqkGNq2Hsn7VezvtG2/6vPPPyc9PT3atWuX6Cg6JTExkWrVqkUdO3ak58+fi45TZTx/s7/j+ZspA8/fTNvx/M2qSoXz910ZERGUIDU1FZ6enmjbti1++eUX6OvrK+NlWTnl5uYiICAAjx8/xvnz52FlZSU6EmPl0qNHDyQlJeHSpUswMDAQHYdJxK+//orevXvjxIkT8Pb2Fh1Hp+zcuRMTJ06EXC7HN998gw8++KBCf577gFjcB6ru4cOHaNy4MSZOnIj58+eLjsMkZNCgQThz5gyuXbsGIyMj0XGEICIEBwfj3LlziI6OhpOTk+hIOic0NBRfffUVDh48iE6dOomOozJbt27FBx98gHPnzqFly5ai4zCJePLkCRo3bozBgwfjhx9+EB1HGDs7O8yaNQtTpkwRHUUyuL+x19GG/sb9Szxt6V/cr9iraEu/4vVIsbRpPZL3q9iraMt+1YYNGzBixAisWbMGI0aMEB1H55w9exYBAQEYMmQIVqxYITpOpfH8zV6H52+mDDx/M23G8zdTBhXN3/eUcoC8uLgY7du3R15eHk6fPg1TU1NlhGMVlJGRAQ8PD7Rp0wa7du0SHYext4qIiECHDh0QHh6OLl26iI7DJCYwMBAPHz7E+fPnIZfLRcfRKU+ePEFoaCiWLl2KwMBALF++HA0aNHjrn+M+IA3cB6pmzJgx2L9/P27cuIFq1aqJjsMkJC0tDc7Ozvj8888xa9Ys0XGE+Pbbb/H555/j+PHj8PLyEh1HZw0cOBARERG4fPky7OzsRMdRuoKCAri4uKBLly5YtWqV6DhMYlauXImJEyfi8uXLcHV1FR1HiJYtW6Jz585YsGCB6CiSwf2NvY429DfuX9Kg6f2L+xV7E03vV7weKQ3asB7J+1XsTTR9v+rq1ato1aoVJk2axLOkQL/88gv69u2LrVu3YuDAgaLjVArP3+x1eP5mysLzN9NmPH8zZVDB/H0PyriP+fTp06latWp09epVZbwcq4KoqCjS09OjJUuWiI7C2BuVlJRQ8+bN6f333xcdhUlUXFwc6evr07p160RH0VknTpygpk2bkqmpKS1YsOCtj1jiPiAd3Acq58qVK6Snp0ebNm0SHYVJ1Lx588jc3FwnH114+vRpMjAwoIULF4qOovOePXtGLi4u5OvrSyUlJaLjKF1oaChZWFjQgwcPREdhElRSUkLu7u4UFBQkOoow3bp1o6FDh4qOIRnc39jbaHJ/4/4lHZrev7hfsTfR9H7F65HSocnrkbxfxd5Gk/ercnNzqWnTpuTl5UVFRUWi4+i8SZMmkZmZGSUkJIiOUmE8f7O34fmbKQPP30yb8fzNlEXJ8/fdKh8g379/P8lkMtq4caMyAjElmDdvHhkYGNDVG1guAAAgAElEQVSpU6dER2HstdavX08GBgZ048YN0VGYhI0bN47q1atHBQUFoqPorKKiIlqwYAEZGRmRu7s7nTlz5pW/j/uA9HAfqLigoCB67733SKFQiI7CJCo/P5/s7e1p/PjxoqOo1ePHj8nBwYGCgoL4vw+JiI2NJRMTE5ozZ47oKEqVkZFBZmZmtGDBAtFRmIRFREQQAIqMjBQdRYhRo0ZRx44dRceQDO5v7G00tb9x/5IeTe1f3K9YeWhqv+L1SOnR1PVI3q9i5aGp+1XDhg2j6tWrU0pKiugojP7Yc/Py8qLmzZtTfn6+6DgVwvM3exuev5my8PzNtBnP30xZlDh/35UREVX6/uX37sHDwwPBwcFYu3atMm6JzpRAoVCga9euSEpKwoULF2BpaSk6EmMvKS4uhouLCzp06MCPbWFvdP/+fTg5OeHrr7/G5MmTRcfRabdu3cK4ceMQERGBUaNGYeHChTA3NwfAfUCquA9UzKlTp9C2bVscOnQInTt3Fh2HSdjKlSsxefJkXL9+HQ0bNhQdR+WICL169cLFixdx8eJF2NjYiI7E/t9PP/2EiRMnIjw8HJ06dRIdRymmTZuGn3/+GUlJSfzoO/ZGHTt2RGFhIaKjo0VHUbvQ0FCEhYXh6tWroqMIx/2NlZem9TfuX9Klif2L+xUrL03rV7weKU2auB7J+1WsvDRxv2rDhg0YMWIEdu/ejR49eoiOw/5famoqWrZsif79+2P58uWi45QLz9+svHj+ZsrC8zfTZjx/M2VQ4vx9r0oHyDt06ICMjAycPXuWP/wkJiMjAx4eHggMDMS6detEx2HsJStWrMCUKVM0ZnBgYnHRlg4iwubNmzF9+nQYGhpiyZIl6NOnD/cBCeM+UH6aNqgxcV5sLAYEBGD16tWi46jcypUrMWnSJERFRaFt27ai47C/GTBgAE6cOIGEhARYWFiIjlMlLzZiFyxYgEmTJomOwyTu3LlzaN26NcLDw3Vu43LFihX47LPP8PjxY9FRhOP+xspL0/ob9y9p06T+xf2KVYSm9Stej5QuTVuP5P0qVhGatF91584dNG3aFOPHj8e3334rOg77m127dqFv377Yv38/goKCRMd5K56/WXnx/M2Uiedvpq14/mbKoqT5u/IHyLdt24ahQ4fi5MmT8PLyqmwApkJhYWHo168fIiMj4evrKzoOYwD+GBoaNWqE4OBgLF26VHQcpgEePnwIR0dHfPnll5g6daroOAx//DOZOnUqtm3bBh8fH5w8eZL7gIRxH3i76Oho+Pj4IDIyEn5+fqLjMA2wYcMGjB49Gjdv3oSDg4PoOCqTlZUFFxcXDB8+nDeaJOrx48dwcXHBkCFD8P3334uOUyVTpkzB7t27cfPmTRgbG4uOwzRAt27dkJ2djZiYGNFR1GrPnj3o2bMn8vPzYWJiIjqOMNzfWEVpSn/j/iV9mtS/uF+xitKUfsX7k9KnKeuRvF/FKkqT9qt69+6N+Ph4xMXFwcjISHQc9gr9+/fHhQsXEB8fL+muxvM3qyiev5my8PzNtBnP30xZlDB/V+4AeU5ODpo0aYL3338fK1asqMwbMzXp1q0b7ty5g4sXL8LAwEB0HMawZcsWDB8+HLdu3UKDBg1Ex2Ea4qOPPsKuXbtw+/Zt/iyTkN27d2PEiBHo378/9wGJ4z7wZj169EBWVhbfPYOVW0lJCZycnNCrVy/88MMPouOozPDhw3HkyBEkJCTAzMxMdBz2GmvWrMHYsWNx/vx5tGjRQnScSsnOzkb9+vXx5Zdf4qOPPhIdh2mIkydPol27doiOjoa3t7foOGpz7tw5tGrVCklJSXB0dBQdRxjub6yiNKW/cf/SDJrQv7hfscrQhH7F+5OaQxPWI3m/ilWGJuxXHTp0CIGBgThw4AC6du0qOg57jQcPHsDFxQUfffQR5s6dKzrOa/H8zSqK52+mTDx/M23F8zdTpirO3/fklXnTL774As+fP8f8+fMr88eZGv33v//FrVu3sGzZMtFRGAMAfP/99wgJCeHFOFYhU6dOxYMHD7Bz507RUdhfREVFQU9Pj/uABuA+8HqJiYnYt28fpk+fLjoK0yD6+vqYPHkyVq9ejaysLNFxVCI6OhobN27E4sWLefFU4kaOHIlWrVph4sSJqOQDxoRbsWIF5HI5RowYIToK0yDe3t5o06YNFi1aJDqKWtnZ2QH447Gouor7G6sMTehv3L80hyb0L+5XrDI0oV/x/qTm0IT1SN6vYpUh9f2qgoICjB8/Hv379+fD4xJXu3ZtzJkzBwsWLMDNmzdFx3klnr9ZZfD8zZSJ52+mrXj+ZspU1fm7wgfI4+LisHz5cnz77bewsbGp1Jsy9XFycsKMGTMwZ84cpKWliY7DdFxUVBQuXbok+ce6Melp0KAB+vTpI/lHE+kS7gOahfvA6y1evBgNGzZEcHCw6ChMw4waNQr6+vpYs2aN6ChKV1JSgokTJ6JTp07o06eP6DjsLWQyGVauXIkzZ85gw4YNouNUWFFREZYtW4YxY8bAwsJCdBymYaZPn449e/YgMTFRdBS1qV27NuRyuU4fIOf+xipLyv2N+5dmkXr/4n7FqkLK/YrXIzWL1Ncjeb+KVZbU96u+/vprPHr0SNKHkdifJk+eDBcXF0yaNEl0lFfi+ZtVFs/fTFl4/mbajOdvpixVnb9lVMFLdHx8fKBQKBAdHQ2ZTFbhN2TqV1BQgGbNmqFt27bYvHmz6DhMh/Xr1w/p6en8iCtWKWfOnIGXlxdOnz6N1q1bi46j87gPaB7uA/+Um5uLOnXq4Msvv8SUKVNEx2EaaPr06di9ezdu3boFubxSD3eSpB9//BGffPIJ4uLi4OTkJDoOK6cpU6bg559/RlJSEszNzUXHKbewsDAMGDAAycnJsLe3Fx2HaZjS0lI4OTmhT58+WLhwoeg4KqVQKJCSkoKbN29i2rRpaNmyJerVq4cnT57A3Nwc1apVg7m5ORwdHeHs7AwnJycYGhqKjq103N9YVUm1v3H/0kxS7V//x96dh1VV7XED/wIyiCKoSKYiCDKogKI4heas4JSZYjndcrpmdbNe763M7E29WZaV2WDa4JhzYg5gjqg4VIKCKKIiziYggyiDwH7/6JWrqHg47L3XPnt/P8/j8yQcz/oR66zz/a21zznMV1QVWs5X3I+0PFrej+R5FVWFVs+r0tLS4O/vjw8//BBvvvmm6HLIRPv378fTTz+NyMhITV2ozf6bqor9N8mJ/TfpEftvklMV+u9LlbqAPCoqCn379sXBgwfRoUOHyldKwqxevRrDhw/H0aNHERgYKLocMqCMjAw0atQIixYtwqhRo0SXQxYqODgYISEhWLRokehSDI15wHIxD9xv4cKFeP3113H58mXUqVNHdDlkgU6dOoVmzZph27Zt6NWrl+hyZHHr1i14e3tj5MiRmtusoIplZ2fDy8sLb775JqZNmya6HJP17t0b9vb22LRpk+hSyELNnDkTX375JS5dugR7e3vR5cjq2LFj2LZtG3bv3o19+/bh1q1bAAA3Nze4uLjAyckJzs7OuHnzJm7duoXc3FxcvnwZkiShWrVqaNeuHbp164aePXvi6aef1tRhnbmY36iqtJjfmL8sl1bzF/MVVZUW8xX3Iy2XFvcjeV5FctDiedWYMWOwe/dunDp1SpcvKNazIUOG4NSpUzh27Jhmenf231RV7L9JTuy/Sa/Yf5OczOy/K3cBefv27fHEE0/g119/Na9KEkaSJAQHB8PX1xdr1qwRXQ4Z0Jw5czB79mxcvnwZjo6OosshCzV//nxMnToVV65c0dQrS42GecByMQ/cr23btmjWrBmWLl0quhSyYJ07d0aDBg2wevVq0aXI4uOPP8bMmTORmpoKNzc30eVQJX3wwQf4/PPPkZqaahEHO+fOnUPTpk2xYcMGTb3DElmWy5cvw8PDAytXrsTQoUNFl1Nl169fx9KlS7FkyRIcP34c9evXR7du3dC1a1e0atUKvr6+cHFxeeS/z8/PR0pKCpKSkhATE4Pdu3fj9OnTaNSoEUaMGIExY8bA19dXxZ9IXsxvJAet5TfmL8umtfzFfEVy0GK+4n6k5dLifiTPq0gOWjuvOn36NJo3b44ffvgBo0ePFl0OVVJSUhKCgoKwcuVKREREiC4HAPtvkgf7b5IT+2/SI/bfJCcz++9LJr98MSoqCn/88Qc++OAD8yokoaysrPD+++9j3bp1OHHihOhyyIB+/PFHjBw5kptxVCUjR45EcXEx1q5dK7oUw2IesGzMA/+TkJCAP//8E+PGjRNdClm48ePHIzIyEpmZmaJLqbL8/HzMnTsXr732GjdPLdQbb7wBGxsbfP3116JLMclPP/2E+vXro2/fvqJLIQvWsGFDhIeH48cffxRdSpX89ddfePvtt9GkSRPMmjULwcHB2L59O65cuYKff/4ZEyZMQLt27Sq8eBwAqlevjpYtW2L48OH47rvvkJKSguTkZIwdOxbr1q1Ds2bNMGDAAPz5558q/WTyYX4juWgpvzF/WT6t5S/mK5KD1vIV9yMtmxb3I3leRXLQ2nnVRx99BG9vb4wYMUJ0KWSGFi1aYNiwYZg1axYq8f6PimH/TXJh/01yYv9NesT+m+Rkbv9t8gXkc+fORa9evRAcHGxWgSTeoEGD4O/vj88//1x0KWQw8fHxOHXqFD8KkKqsdu3a6NevH1atWiW6FMNiHrB8zAN/W7VqFdzd3dG5c2fRpZCFe+6552Bra4sNGzaILqXKli1bhtzcXLz++uuiSyEz1apVCy+//DK++uor5Ofniy7nsVatWoUXXngB1apVE10KWbgRI0Zgx44duH79uuhSKi0/Px/Tp0+Hh4cHfv75Z8yePRtXrlzB0qVL0bNnT1hZWVV5DD8/P/zf//t/kZKSgtWrV+PSpUto164dRo8ejb/++kuGn0IdzG8kFy3lN+Yvy6e1/MV8RXLRUr7ifqTl09J+JM+rSC5aOq+6fv06fv75Z0yZMgU2NjaiyyEzvfPOOzh+/Dh+++030aWw/ybZsP8mObH/Jr1i/01yMqf/NukC8mPHjmHnzp148803zS6OxLOyssLkyZOxfPlyizogJMu3Zs0aNG7cGG3bthVdCulAREQEdu3apYnwZDTMA/rAPPC3tWvX4vnnn5floiwytho1aiAsLEwzH8FoLkmS8MUXX2DkyJGoX7++6HKoCl599VXk5ORg+fLlokupUFxcHE6fPq2Zj+UlyzZw4EDY29sjMjJSdCmVsnPnTgQEBGDevHn46KOPcObMGfzrX/9S7J0Qra2tMWTIEMTFxWHdunWIiYmBv78/Fi5cqMh4cmN+I7loJb8xf+mHVvIX8xXJSSv5ivuR+qCl/UieV5GctHJeNX/+fNSqVQsjR44UWgdVTWBgIHr27Im5c+eKLoX9N8mG/TfJjf036RH7b5KTOf23SReQf/PNN2jevDl69+5dpQJJvNGjR6NmzZr44YcfRJdCBrJu3To2mSSb/v37w8HBAb/88ovoUgyHeUA/jJ4Hjhw5gjNnzrCpJ9lERERg9+7dwg9Bq2LXrl04efIkJk+eLLoUqqL69evjhRdewDfffCO6lAqtXbsWTZo04aE9ycLR0RF9+/YVfhhlqpKSEkyfPh29e/dG69aty9ZfOzs7Vca3srLC4MGDceLECYwfPx6TJk3CsGHDkJubq8r45mB+I7lpIb8xf+mHVvIX8xXJSSv5ivuR+qGV/UieV5GctHBedefOHSxatAgTJ06Eg4ODsDpIHm+88QZ27NiBU6dOCauB/TfJjf03yYn9N+kR+2+SW2X778deQJ6Xl4dVq1ZhwoQJbKZ1wMHBAaNGjcL333+P0tJS0eWQASQkJODMmTN47rnnRJdCOuHo6Ijw8HDhr74zGuYBfTF6Hti4cSM8PDzQpk0b0aWQTvTv3x92dnbYsmWL6FLMtnDhQoSGhiIgIEB0KSSDCRMm4OjRo/jjjz9El/JIkZGRGDx4MHMFyWbIkCGIiYlBVlaW6FIqlJubiz59+uDTTz/Ft99+i7Vr16JBgwZCaqlRowbmzJmDbdu2Ye/evQgJCcGZM2eE1PI4zG8kNy3kN+YvfdFC/mK+IrmJzlfcj9QXLexH8ryK5KaF86qNGzciPT0dY8aMEVYDyadPnz5o3Lix0BfbsP8mubH/Jrmx/yY9Yv9Ncqps//3YC8hXrVqFoqIijBo1SpYCSbxx48bh3Llz2LVrl+hSyACioqJQr149hISEiC6FdCQ8PBwxMTG4ffu26FIMg3lAf4ycB7Zu3Yq+ffuy+SHZODo6okuXLoiOjhZdilnS09MRGRmJcePGiS6FZNKxY0cEBARg0aJFokt5qHPnziE5ORn9+vUTXQrpSO/evWFlZYXt27eLLuWR/vrrL3Tt2hUnT57EgQMHMGHCBNElAQB69OiB+Ph4uLi4oFOnToiLixNd0gOY30huovMb85f+iM5fzFekBNH5ivuR+iN6P5LnVaQE0edVixYtQnh4ODw8PISMT/KytrbGmDFjsGTJEty5c0dIDey/SW7sv0lu7L9Jj9h/k9wq038/9gLyFStW4JlnnkGdOnVkKY7Ea968Odq3b48VK1aILoUMICoqCmFhYbC2fuxyQ2Sy8PBwFBYWIiYmRnQphsE8oD9GzQPp6emIj49HeHi46FJIZ8LCwrB9+3YUFxeLLqXS1q1bB1tbW34sqc68+OKLWLduHYqKikSX8oCoqCg4OTkhNDRUdCmkIy4uLmjfvj22bdsmupSHun79Op5++mnk5eVh//79aNWqleiS7lO/fn3s2rULLVu2RLdu3TT1CQbMb6QUkfmN+UufROYv5itSguh8xf1I/RG9H8nzKlKCyPOqv/76Czt37sSLL76o+tiknH/84x9IT08XcgEZ+29SCvtvkhv7b9Ib9t8kt8r03xV2yNeuXcO+ffswbNgw2YojbYiIiEBkZCQKCwtFl0I6lpubiwMHDrDJJNk9+eSTaNmypcW+06ulYR7QLyPmgejoaNja2qJbt26iSyGdCQ8PR3Z2Ng4dOiS6lEpbvXo1BgwYAEdHR9GlkIwiIiKQnZ2N3377TXQpD4iOjkaPHj1gZ2cnuhTSmfDwcERHR0OSJNGl3Cc3Nxfh4eEoLS3Fvn370KRJE9ElPVTNmjWxadMmPPXUU+jXrx9SUlJElwSA+Y2UIzK/MX/pk8j8xXxFShGVr7gfqV+i9iN5XkVKEXletXbtWlSvXp3vgKozHh4eaN++PdasWaP62Oy/SSnsv0lu7L9Jj9h/k9xM7b8rvIB8/fr1cHR0RFhYmKzFkXhDhw5FTk6Opj/amSzfgQMHUFxcjB49eoguhXSoR48e2LNnj+gyDIF5QL+MmAf27NmDDh06oGbNmqJLIZ3x9fWFu7u7xX06xt1NgaFDh4ouhWTm7u6Ojh07Yu3ataJLuc/dC2h79uwpuhTSoZ49e+LKlSuaufAZ+HvODx06FFevXsVvv/2GJ554QnRJFbKzs8O6devg5eWFsLAw3LhxQ3RJzG+kGFH5jflLv0TlL+YrUpKofMX9SP0StR/J8ypSkqjzqnXr1mHAgAGoXr266mOTsoYNG4bIyEjV31mX/Tcphf03yY39N+kR+2+Sm6n9d4UXkG/evBlhYWFsOnTI3d0dISEh2LJli+hSSMdiY2Ph4+MDNzc30aWQDoWGhuL48ePIzs4WXYruMQ/olxHzQGxsLDp16iS6DNKpTp06ITY2VnQZlbJ161bY29tzU0CnBg0ahK1bt6K0tFR0KWWSkpKQnZ3Nj3ckRbRu3RqOjo6aWotnzZqFmJgYbNq0SbPvPF5ejRo1sHnzZhQXF+PFF18U/o7uzG+kJBH5jflL30TkL+YrUpKofMX9SP0StR/J8ypSkojzqqysLMTGxmLQoEGqjUnqGTRoEHJycrBv3z5Vx2X/TUpi/01yY/9NesP+m+Rmav/9yAvI8/PzERMTw4/y0rGwsDAhH6dFxhEbG4unnnpKdBmkU507d4YkSUI+6spImAf0z0h5ICMjAykpKXxuIsWEhoYiNjYWJSUloksxWVRUFLp06cKPb9SpsLAwZGRk4MiRI6JLKRMbGwsnJycEBgaKLoV0yNbWFm3bttXMBeR79+7FjBkz8Omnn6JNmzaiy6kUV1dXrFy5ElFRUfjiiy+E1cH8RkoTkd+Yv/RNRP5iviIlichX3I/UPxH7kTyvIiWJOK/avn07JEniO6DqlKenJ/z9/bFt2zbVxmT/TUpj/01yY/9NesP+m5RgSv/9yAvI9+zZg4KCAvTp00f2wkgbwsLCkJaWhuTkZNGlkA6VlJTgjz/+YJNJinF1dYWPjw8OHDgguhRdYx7QPyPlgbsb+B06dBBcCelVaGgocnNzceLECdGlmKSkpAQ7duzgu2/oWGBgIBo1aqSpFwodPHgQ7du3h42NjehSSKdCQ0M10SMUFRVhwoQJ6Nu3L1599VXR5ZglNDQU06dPx7Rp03D+/HkhNTC/kdLUzm/MX/onIn8xX5HS1M5X3I/UP7X3I3leRUoTcV61bds2dOzYEXXq1FFtTFJXeHi4qpmS/Tcpjf03yY39N+kR+2+Smyn99yMvIN+7dy/8/f3RoEEDRYoj8dq1a4eaNWti7969okshHUpJSUFeXp7FvcsaWZY2bdogPj5edBm6xjygf0bKA3FxcfDy8uKmOikmICAADg4OOHr0qOhSTJKQkIDs7Gz06NFDdCmkoO7duyMmJkZ0GWXi4+MREhIiugzSsTZt2iAlJQW3bt0SWscnn3yCixcvYt68eULrqKq33noLjRs3xuTJk4WMz/xGSlM7vzF/GYPa+Yv5ipSmdr7ifqT+qb0fyfMqUoPa51V79+5F9+7dVRuP1Ne9e3ccP34cmZmZqozH/puUxv6blMD+m/SG/TfJzZT++5EXkMfGxqJTp06KFEbaUK1aNXTo0EEzH+1M+pKQkIBq1aqhefPmokshHQsMDERiYqLoMnSNeUD/jJQHEhMTERQUJLoM0rFq1arB39/fYp6bYmNj4eLiwrymc6GhoTh06BCKi4tFl4KioiKcOnWKH+9IigoKCkJpaSmSkpKE1ZCeno7Zs2dj2rRpaNKkibA65GBnZ4f58+cjMjISe/bsUX185jdSmtr5jfnLGNTMX8xXpAa18xX3I/VP7f1InleRGtQ8r/rrr79w5swZrpU6FxoaCisrK9XehZT9NymN/Tcpgf036Q37b5KbKf33Qy8gv3PnDv7880907NhRseJIG0JDQw1xwRipLzExEb6+vnBwcBBdCulYYGAgLly4gOzsbNGl6BLzgHEYJQ8kJCRwA5QUFxgYiISEBNFlmOTgwYPo2LEjrK0f+bpi0oFOnTrh1q1bOHbsmOhScPLkSRQVFXEtJkV5eXmhRo0aQl/M8/nnn6NGjRp4/fXXhdUgp549e6Jbt27473//q/rYzG+kBjXzG/OXMaiZv5ivSA1q5ivuRxqHmvuRPK8iNah5XnXgwAFYW1ujXbt2io9F4tSuXRv+/v6qXUDO/pvUwP6b5Mb+m/SG/Tcp4XH990OfKU+ePIn8/Hy0bdtWscJIG9q2bYvU1FRefEmyO378OAICAkSXQToXGBgISZKEvrugnjEPGIcR8kBBQQHOnj3L5yZSXGBgII4fPy66DJPExcXxo/YMwN/fHzVr1kRcXJzoUpCUlAQ7Ozv4+fmJLoV0zNraGs2bNxe2Fufk5OCbb77BG2+8AUdHRyE1KGHatGnYsWMHDh8+rNqYzG+kFjXzG/OXMaiZv5ivSA1q5ivuRxqHmvuRPK8iNah5XhUXFwc/Pz84OzsrPhaJ1bZtW1UyJftvUgv7b5Ib+2/SG/bfpITH9d8PvYD82LFjsLe356JnAHebWUu5yIUsR2pqKnx8fESXQTrn7u4Oe3t7nDt3TnQpusQ8YBxGyANpaWkoKSlB06ZNRZdCOuft7Y0rV66goKBAdCkVys/Px+nTp9GyZUvRpZDCrK2t0aJFC6HvxnzX2bNn4eHhAVtbW9GlkM41bdoUqampQsZeuXIl7ty5g0mTJgkZXyndu3dHmzZt8N1336k2JvMbqUWt/Mb8ZRxq5i/mK1KLWvmK+5HGoeZ+JM+rSA1qnlcdO3aMmdIg1Hq3ZvbfpBb23yQ39t+kR+y/SW6P678fegF5YmIi/P39uegZgLu7O1xcXFT7mBgyjrS0NHh4eIgug3TO2toa7u7uvIBcIcwDxmGEPJCWlgYA8PT0FFoH6V+TJk0gSRLOnz8vupQKJSUloaSkBIGBgaJLIRUEBQVp4gLy8+fPcx0mVXh6egrrEZYsWYLBgwejVq1aQsZX0ujRo7F+/Xrcvn1blfGY30gtauU35i9jUSt/MV+RWtTKV9yPNA419yN5XkVqUPO8KjExke8UbRCBgYG4du0a0tPTFR2H/Tephf03KYH9N+kN+2+S2+P674deQJ6SkoJmzZopWhhpg5WVFfz8/HD69GnRpZCOZGZm4ubNmwxPpIomTZqUbWyQvJgHjMMIeSAtLQ3Ozs5wcXERXQrpnJeXFwBo/sVNKSkpsLW1hbe3t+hSSAX+/v5ISUkRXQbS0tLYI5AqRPUIZ8+exaFDhzBq1CjVx1bDCy+8gPz8fPz666+qjMf8RmpRK78xfxmLWvmL+YrUola+4n6kcai1H8nzKlKTGmtlYWEhLly4AH9/f0XHIW24+3tWOley/ya1sP8mJbD/Jr1h/01ye1z//dALyNPS0tCkSRNFCyPtEPnOXKRPFy5cAAC+owOpwtPTU/Pv8mqpmAeMRe954MKFC2zqSRV3N9q1/tx07tw5NG7cGDY2NqJLIRV4enri6tWrin806ONcuHABjRs3FloDGYOnpydu3ryJGzduqDrub7/9BicnJ3Tr1k3VcdVSr149dOzYEdu3b1dlPOY3Uota+Y35y1jUyl/MV3bUfPIAACAASURBVKQWtfIV9yONRY39SJ5XkZrUOK86f/48SktLuVYaRMOGDWFnZ6f4RWTsv0kt7L9JCey/SW/Yf5MSKuq/H3kBORtp4+C795Lcrl+/DgB44oknBFdCRvDEE08o/tFtRsU8YCx6zwPp6el8XiLVuLm5af65iR+1ZyxqfTTo41y/fp1rManCzc0NAFRfi3fv3o2nn35a1x/52K1bN+zYsUOVsZjfSE1q5DfmL2NRK38xX5Fa1MpX3I80FjX2I3leRWpS47zq7mOGudIYbGxs4O7urviLbdh/k5rYf5Pc2H+T3rD/JiVU1H9XK/+FW7duIScnB40aNVK6LiQnJyM2NvaBr9vY2MDT0xNt2rSBk5PTY29/rxo1auD555+/72u///479u3bh7i4ONy6dQu+vr7o2rUr+vbtK88PUkkJCQnYvXs3Ro8ejdq1awup4V7u7u64fPmy6DJIRzIzM2Fra4tatWqJLgUAsHHjRmRkZGDs2LFVvi+uW9pYt+5Vt25dZGRkiC5Dd5gHlKe1x5Xe80BGRgbq1q0rugwAfF6Sg9YeP+XVrVsXmZmZosuo0OXLl9GwYUNVxuI8FT9P3d3dAfz9e/fz8xNSw507d5CbmwtXV1ch45fHtbjqtDTHy7s7z9Rei/ft24c333xTsfuXc96aq3v37vjggw9Ueccd5reKb38vrhlVp0Z+Y/5SnpbmmRr5i/mKc1hNauQr7kcqT2tzTI39SJ5XcR6rSY3zqitXrsDR0RF16tRRdByAc0wrc6xx48aKr5Xsvyu+/b04h6uO/TfnmdzYf1cN57D4OVwe+2/OMSVU2H9L5aSlpUkApMOHD5f/luwWLFggAXjkn3r16kkbNmww+fYAJHd397Lb37lzR5oyZUrZ92rXri25uLiU/T0sLEy6ceOG4j9neV9//bUEQDpx4oTqYz/M6tWrJWtra6mkpER0KaQT8+bNk+rXry+6jDKtW7eWrKysKv3vYmNjpZkzZ0rXrl0r+xrXLW2sW/daunSpZG9vL7oM3WEeUJ7WHld6zwOdO3eWXnvtNdFlSJLE5yU5aO3xU96AAQOkUaNGiS6jQu3atZOmTJmiylicp+LnaUlJiWRjYyOtWbNGWA1Xr16VAEgxMTHCargX1+Kq09IcL6+goEACIG3cuFG1MTMzMyUA0rZt2xQbQ855a66srCwJgBQVFVXl+3oc5jfTbs81Qx5q5DfmL+VpaZ6pkb+YrziH1aRGvuJ+pPK0NsfU2I/keRXnsZrUOK/65JNPJA8PD0XHuItzTBtzbOjQodLQoUMVHYP9t2m35xyWB/tvzjO5sf82HdfK/9HSHC6P/TfnmBIq6L8vPvAO5HdfFavmq2bee+89DBs2rOzv6enp+P333zF9+nSMHDkSCQkJ8PLyKvv+G2+8gYEDBz70vhwcHMr+OyIiAhs2bEDXrl2xYMEC+Pn5obi4GLGxsfj++++xfPlyjB49Gr/++iusrKyU+wE1ztXVFaWlpcjKytLMK0vJsmVnZ6vyynel7du3D++99x769+//wEfRcN3Sjrp166KwsBC3bt1CjRo1RJejG8wDxqP3PJCVlaWJV3ZWBZ+XLEedOnU0/+kYmZmZqj/WOU/Fsba2houLi9B5mZWVBQAW3ydwLbYM9vb2qFGjRtm8U8OpU6cAQNi7/FekonlbWS4uLnBzc8OpU6cQFhYmU4UPx/zGNUNNauQ35i9jUSN/MV9xDqtJjXzF/UjjUWM/kudVnMdqUuO8ipnSeOrWrYuUlBRFx2D/zTmsJvbff+M8kw/7b9NxrbQM7L//xjkmr4r67wcuIM/JyQEAODs7q1MdgAYNGqBFixb3fa1r164oLS3FO++8g02bNuH1118v+97dt5ivyK5du7BhwwZ069YNO3bsgLW1NQCgWrVq6NKlC5566in8+eef2Lx5M/bv34/OnTvL/nNZChcXFwB/b6Lo8YIxUl9BQcF9i7Uecd3SjrtzrbCwkBeQy4h5wHj0ngf0/tzEx4+2ODg4oKCgQHQZFcrJySl73KuF81Ss2rVrIzs7W9j4dx8TXIs5x9Vib2+v6lp89uxZ2NnZlX1kqp75+Pjg7Nmzio/D/MY1Q01q5DfmL+NROn8xX3EOq03pfMX9SONRYz9S75kS4DzWEjXOq5gpjUeNPT29r5Wcw9rC/vtvnGfyYv9ddZzD2sL+m3NMbhX139blb1xYWAjg74komq+vLwDgwoULlf63M2fOBAB8+OGHZZPjXra2tli4cCFGjx5935PInj178Morr8DX1xfu7u544YUXsGDBApSUlJTdZvz48Xj11Vdx5coVDB8+HB4eHvD29saYMWNw69at+8b5448/MHToUHh5eaFnz5746quvIEnSfbcpKCjA+++/D29vb9jb28PHxwf//Oc/cfPmzUr/3Oa4+7u++7snqqrCwkLY2dmJLqNC2dnZmDRpEgICAlC/fn0MHjwYW7duLfv+hAkTsGDBAgDAmDFj8K9//cuk++W6pc66da+7c41rmLyYB4z3uNJ7HtD6cxOflyz78VOevb295h9LBQUFmnlMcJ6qt86LnJdFRUUAoJl59zBciy17jpen9py/ezD1sN+TkpSatxVR6wUpzG9cM9SkxprB/GW8eab0vGK+4hxWm9JzmvuRxptjauxHaj1TAlwrLX0e30uN86qCggJNrJMA55hac8zOzk7xi221vlZynbTsOVwe+2/TcZ6Zjv0310pLn8Plsf82DeeY6Srqvx94B/K7N9LCordy5UoAgLe3d6X/bXx8PNzc3NChQ4dH3qZz5873vbJg9+7d6NWrF5ydnTF8+HC4urpi+/btePnll5Gamoo5c+YAAI4ePYqMjAxERkaiSZMmeP7553H48GH89NNPyMnJwfr16wH8Pdn69esHBwcHDB48GNbW1njvvfceeKXbpEmTsHTpUowaNQrBwcE4e/YsFi1ahMTERBw4cKDSP3tl6f2CMVJfUVGRJtaQR7l06RI6d+6M9PR0jB49Gs7Ozti2bRsGDBiAuXPnYvLkyfD19cXx48eRlpYGX19fNG3a1KT75rqlzrp1L65hymAeMN7jSu+PJS0/N/F5yfIfP+XZ2dlp/rGkpccE56k681T0vNRStngYrsWWP8fLU3vO37x5EzVr1lRtPEDZeVsRJycnVTY1tfRcVR7XDK4Z5tDSnOY800f+Yr7iHFabkeY055h+9iO19Pz7MFwrLX8e38toc5pzTL210ki9SnlcJy1/DpfH/tt0nGemM1Kv8jBcKy1/DpdnpDnNOaaB/lsqZ+3atRIAqaSkpPy3ZLdgwQIJgDR16lQpLi6u7M8vv/wivfLKK1K1atWk2rVrSxkZGffdvmXLltKgQYMe+DNkyBBJkiTp+vXrEgCpXbt2lapn/Pjxkr29vZSVlVX2tfz8fOnJJ5+U/P39y74WEhIiAZDeeustqbS0VJIkSSopKZFat24tOTs7l92uZcuWUu3ataVz586VfS0lJUVydHSUAEgnTpyQCgoKJFtbW2ngwIH31TJv3jwJgHTq1KlK/QzmSEtLkwBIhw4dUnwsMoZ//vOfUvfu3UWXUaZ169aSlZVV2d9HjBjxwJwvLCyUunfvLtnZ2UmZmZmSJEnSRx99JAGQ4uPjy27HdUsb69a9jh49KmRcvWMeMN7jSu95oG7dutK3334rugxJkvi8JEn6e/yUN3XqVKlVq1aqj1sZ1tbW0qpVq1QZi/NUG/O0ffv20ptvvqn4OI+yc+dOCUDZ71k0rsX6m+Pl+fj4SLNmzVJtvOnTp0sBAQGKjiHnvK2KcePGSb169ZLlvirC/MY1Q01q5DfmL+PNM6XzF/MV57DalM5X3I803hxTYz+S51Wcx2pS47wqIiJCeu655xS7/3txjmljjn366adS48aNFR2D/TfnsJrYf3OeKYH9N9dKSbLsOVwe+2/OMblV0H9ffOAC8g0bNkgApKKiIsULu/sLf9Sfhg0bSrt3737g9k5OTpKbm9sDfxo2bChJ0v9+4P79+1eqnpMnT0oJCQn3fS0nJ0dq1qyZ1KBBg7KvhYSESNWrV5fy8/Pvu+1rr70mAZAuXrwoHTx4UAIgvfvuuw+M889//rNsgty6dUuytbWVatWqJcXFxZXdpqSkRMrLy5OKi4sr9TOY4/Tp0xKA+8YnqopXXnlF6tKli+gyytwbnjIzMyUrKyupbdu2D9xu5cqVEgBp0aJFkiRVHJ64boldt+71+++/SwDuezKmqmMeMN7jSu95wM3NTZo/f77oMiRJ4vOSJOnv8VPev//974f+TrXE1tZWWr58uSpjcZ5qY562bt1aevvttxUf51FiYmIkANK1a9eE1XAvrsX6m+PleXp6SnPmzFFtvA8//FDy9vZWdAw5521VDB8+XHrmmWdkua+KML/df3uuGcpSI78xfxlvnimdv5ivdj9we85hZSmdr7gfabw5psZ+JM+rdj9we85j5ahxXjV8+HBp0KBBit3/vTjHtDHH1NhvYP99/+05h5XF/pvzTAnsv7lW3mWpc7g89t+cY3KroP++WA3l3H1r+qKiItja2pb/tiLGjh2L3r17l/3dxsYGXl5eaNasGRwcHB64/Zw5czBx4sRH3p+7uzscHBxw5cqVStXh7++PzMxMzJ07FwcPHkRaWhpOnz6N3NxcNGjQ4L7burm5PVBb7dq1AQB5eXlITk4GALRq1eqBcVq0aFH2346Ojnj//fcxbdo0tG7dGs2aNUO3bt3Qt29f9OnTBzY2NpX6GcxRVFQE4H9vVU9UVfb29mXzSmtOnToFSZKQl5eHYcOG3fe93NxcAMDZs2cfez9ct8SuW/e6O9e08NEqesI8YLzHld7zgFafm/i8pI/HT3mFhYWafyyJeExwnoqdp6Ln5b3ZQmu4FutjjpdXWFioao/g5OSEvLw81caTa96a4+bNm3B2dlbkvu/F/HY/rhnKUuN5kvnLePNM6XnFfMU5rDal8xX3I403x9TYj9RqpgS4VuplHt9LjfMqe3t7ZGdnK3b/D8M5Jn6t1GOvYgquk/qYw+Wx//4b55m82H9zrbzLUudweey/OcfkVlH/bV3+C3d/6MLCQoXL+p+QkBBERESU/XnuuecQHBz80MlhCmtra/j4+ODs2bO4c+fOI28XGxsLV1dXvPPOOwCATz75BI0aNcLMmTNx584d9OzZE4sXL0ZoaOgD/7Z69eqPvF9JknDjxg0AeOgvuPzP9e677+LMmTN477334OjoiAULFqB///5o0aIFrl27ZtLPXBV3f9e8+JLkYmdnJyQ4HT58GL/88gskSbrv6/f+PTMzE8DfC6Ktre19f+rWrYsRI0bct4g/CtctsevWve6uYVq/UM/SMA8Y73Gl9zwg4rmJz0vGefyUV1RUpPnHkr29vaprPMB5KnqeqnHYVJG7Y3MtNh3neNWoPeednZ2Rk5PzwFwzh5rz1hzZ2dmqXEDO/FY5XDOqRo38xvxlvHmm9HMR81XlcQ5XjdJzmvuRxptjauxH8ryq8jiPzafGeRUzpfHmmBoX27L/rhzO4aph/20azrPKYf/NtbI8S5vD5bH/fjzOscqpqP9+4ALyuwdAar9yVW4hISHIycnBsmXLHnmb77//HpmZmWjbti3S09Px9ttvw9nZGRcvXsTGjRvx0Ucf4dlnn0VBQUGlx2/SpAkAICYm5oHvpaWllf13UVERsrOz4enpiRkzZuDPP//E5cuX8eqrryIlJQXz58+v9NiVlZWVBeB/r5AgqioHBwfk5+erPu6nn36K55577oGxb926hfr16wMAvLy8AAA+Pj5Yvnz5fX+WLFmCr776ChEREarXDnDdMhcvIFcG84DxHld6zwMODg5m/Q6rgs9Lxnn8lFdQUGB2s6sWZ2dni1/jAc7TysjKyoKLi4vi4zzK3ccE1+LK4Rw3X2FhoaprsZeXFwoKCnDp0qUq35fW5+3p06fh7e2tyH3fi/mt8rhmmE+N/Mb8Zbx5pnT+Yr4yD+ew+ZTOV9yPNN4cU2M/kudV5uE8No8a51XMlMabY9nZ2Yrv6bH/rjzOYfOx/zYd55np2H9zrXwYS5rD5bH/Ng3nmOkq6r8fuIC8bt26AICMjAyFy1LWrFmz4OLigunTp+P48eMPfH/79u1YtWoV/P390a9fP5w/fx6lpaUYPHgwnJycym538eJFHD16tNLjh4SEwNbWFrt27brv68XFxfj555/L/r5r1y7Url0bK1euLPta/fr18e9//xvA/355SsrIyIC1tbXQiwlIX2rXrq3K3C2vcePGAIB9+/aVfS0/Px/nz59HcHAwAKBp06aoV68etm3b9sArkGbPno3atWvj999/V6/oe3DdMk9mZibs7OxQs2ZNVcfVO+YB4z2u9J4HRDw38Xnpb0Z4/JR348YN1KlTR/VxK8PV1bXsXQksGeepaUpLS5GVlVX2/C7C3Q2Ju6/GVwvX4r/pfY6XV1hYiLy8PFXXYj8/PwBASkpKle9Ly/P25s2buHbtWtnPqyTmt8rjmmE+NfIb85ex5pka+Yv5yjycw+ZRI19xP9J4c0yN/UieV5mH89g8apxX1a1b1+LXSYBzrDIyMjLg6uqq6BjsvyuPc9h87L9Nx3lmGvbfXCsfxVLmcHnsv03HOWa6ivpv3V5A3qBBA3z++ee4fPkyOnbsiClTpuDnn3/GypUr8dprr6Ffv36wt7fHkiVLYG9vDz8/P9SsWROrV6/Gpk2bcPr0aSxevBhPPfUUatWqhby8PJw6dcrk8d3d3fHKK68gMTERY8eORVxcHOLj4zFkyBDk5OSU3S40NBRubm6YMWMG9uzZg5ycHBw5cgSTJ08GAPTr10/2/zflZWZmwsXF5aFvp09kjrubF3J8dHdldO3aFQDwzjvvYMWKFdi5cyciIiJQWFiILl26APj7oxhmz56N3NxcjBw5EnFxcThz5gzmzp2LWbNmoVevXmUfS+Hh4QEAWLhwIf744w/F6+e6ZR41Nk6MiHnAeI8rvecBV1dX1eczn5eM8/gpzxKem/Ry2MR5apqsrCyUlJQIvYC8bt26sLKy4lpcSZzj5rk7z9Sc866urqhXrx4SEhKqfF9anreJiYkAAH9//yrdjymY3yqPa4b51MhvzF/Gmmdq5C/mK/NwDptHjXzF/UjjzTE19iN5XmUezmPzqJEpRfRJSuAcM11mZqYqF9syU1YO57D52H+bjvPMNOy/uVY+iqXM4fLYf5uOc8x0Ffbf0kM4OTlJCxcufNi3ZLVgwQIJgPTtt98qcntJkqStW7dKTZs2lQCU/bGyspJ69uwpnT9//r7brlmzRqpZs2bZ7erUqSMtWbJEWrdunVSjRg2pWrVqkiRJUkhIiOTv7//AWNOnT5cASCdOnJAkSZIKCgqk8ePH3zd2jx49pGXLlt13u+3bt0sNGjS473YODg7Sf//7X5N/zqqYOnWqFBAQoMpYZAzR0dESACk7O1v1sd966y2pWrVq9z3eX3nlFam0tPS+23355ZeSg4ND2e2qVasmTZw4UcrMzCy7TUZGhtShQwcJgNS1a1dJkrhuaWXdute0adOkwMBA1cc1AuYBYz2u9J4Hxo4dK/Xu3Vv1cfm8ZIzHT3m+vr7SzJkzhYxtqrFjx0q9evVSZSzOU/Hz9OjRo/fVIkqtWrVUyRblcS3W/xwv7+6cT05OVnXcZ599VnrmmWdkuS+l5625Zs6cKTVo0KBK92Eq5jfJrNtLEtcMc6iR35i/jDXP1MpfzFeSWbeXJM7hylIrX3E/0lhzTI39SJ5X/Q/nsfLUOK+KioqSAEhZWVmKjiNJnGNamWM+Pj7SBx98oOgY7L8ls24vSZzD5mD/zXkmN/bff+Na+TdLnMPlsf/mHFNCBf33RStJevAl10FBQRg4cCBmzZpV/lsWSZIknD9/HidPnoSzszMCAwPvexv6e2VmZiI+Ph5PPvkkmjdvDisrq7KvZ2VloWnTppUe/+LFi0hMTESzZs3QpEmTh97m9u3bSEhIwIULF+Dq6oqAgAC4ublVeixzDB8+HHl5efj1119VGY/078iRIwgJCcHp06fNesxU1ZUrV3Ds2DE4OjoiODgYtWrVeujtbt68ifj4eOTl5SEwMBDu7u6PvD8nJ6dHrhtK4LpluokTJyIlJeWBjwShqmMeMNbjSu954J133kF0dDTi4+NVH5vPS/p//JRXp04dfPjhh5g4caKQ8U0xc+ZMLFu2DCkpKaJLkQ3n6aNFRkZi8ODByMvLg6Ojo+LjPUrTpk0xZswYTJ06VfWxuRbre46Xt3PnTvTs2RPp6emqfiLE/PnzMX36dGRkZMjyLopanLc9evRAo0aNsGTJErPvw1TMb1XDNaNy1MhvzF/Gmmdq5S/mq6rhHDadWvmK+5HGmmNq7EfyvKrqOI9Np8Z5VXJyMpo1a4b4+Hi0atVKsXHUxDn2aKWlpXB0dMSiRYswatQoxcZh/101nMOVw/7bPJxnj8b++3+4Vj6aludweey/zcM5VrEK+u9LD72AfODAgXBycsKKFStUKZDEeuqpp9C2bVvMmzdPdCmkE+np6XBzc8OOHTvQo0cP0eWQzoWFheHJJ5/ETz/9JLoU3WEeMBa954FvvvkG7733HjIzM0WXQjp38+ZN1KpVC1u2bEHfvn1Fl/NIy5cvx9ixY5Gfnw9ra2vR5ZDCvvjiC3z88ce4evWq0Dq6desGPz8/LFiwQGgdpH8//PADXn/9deTl5ak67qlTp+Dv74/du3eXfbyonmRlZeHJJ5/E999/j5EjRyo+HvMbqUWt/Mb8ZSxq5S/mK1KLWvmK+5HGosZ+JM+rSE1qnFcVFBTA0dER69evx7PPPqvYOKQNly5dgru7O/bu3YvOnTsrNg77b1IL+29SAvtv0hv236SECvrvSw99pvTx8UFycrLylZEmnDp1Cj4+PqLLIB2pV68eatasibS0NNGlkAGcO3cOnp6eosvQJeYBY9F7HvD09MSNGzeQk5MjuhTSudTUVAB45CuLtcLHxwdFRUU4d+6c6FJIBVpZ45s0acIegVQhqkfw8/NDmzZtsGzZMtXHVsPq1athY2ODZ555RpXxmN9ILWrlN+YvY1ErfzFfkVrUylfcjzQWNdZKnleRmtRYKx0cHODu7o5Tp04pOg5pw93fs6+vr6LjsP8mtbD/JiWw/ya9Yf9NSqhorXzoBeRBQUFISkpCcXGxooWReJcuXcKNGzcQFBQkuhTSGQ8PD5w/f150GaRzkiThwoULmr9Iz1IxDxiHEfLA3SaLz02ktHPnzsHKygoeHh6iS6lQQEAArK2tkZCQILoUUsGxY8c0scZ7eHhwg5VUkZaWJqxHGDVqFNatW4dbt24JGV9JS5cuxaBBg1T7aFPmN1KLWvmN+ctY1MpfzFekFrXyFfcjjUPN/UieV5Ea1DyvCgoKYqY0iISEBNSrVw9PPPGEouOw/ya1sP8mJbD/Jr1h/01ye1z//cgLyAsLC3H69GlFiyPxEhMTAQAtWrQQXAnpjZeXF86cOSO6DNK5S5cuoaCggBeQK4R5wDiMkAc8PT1hbW2Ns2fPii6FdC41NRX169eHo6Oj6FIqVKNGDXh7e3MD1QAkSUJSUhICAwNFlwJvb2+kpaVxM4oUd/bsWXh5eQkZe8SIESgpKcGiRYuEjK+UAwcO4ODBg5gwYYJqYzK/kVrUym/MX8ahZv5iviK1qJWvuB9pHGruR/K8itSg5nlVUFBQ2WOI9C0xMREtW7ZUfBz236QW9t8kN/bfpEfsv0luj+u/H3oBefPmzWFvb48///xTucpIE44cOQIPDw/UrVtXdCmkMwEBAdy8IMUZ4aJXkZgHjMMIecDR0RFeXl7cLCLFJSQkICAgQHQZJmnVqhXXeANISUlBbm4uWrVqJboUtGjRAoWFhUhJSRFdCunY3UMDUWuxq6srxo8fjzlz5qCgoEBIDUqYNWsWOnbsiC5duqg2JvMbqUXN/Mb8ZQxq5i/mK1KDmvmK+5HGoeZ+JM+rSA1qnle1atUKycnJyMvLU3wsEuvIkSOqZEr236QW9t8kN/bfpDfsv0kJj+u/H3oBub29Pdq0aYPY2FhFiyPx9u/fj06dOokug3QoMDAQycnJKCwsFF0K6VhiYiLc3d1Rp04d0aXoEvOAcRglD/CdWUgNiYmJqnxUnhxCQ0MRGxuL0tJS0aWQgvbv34/q1asjODhYdClo3rw5bG1teRhFijp37hxu3rwp9F33p0yZghs3bmDBggXCapBTbGwsoqOjMX36dNXHZn4jNaiZ35i/jEHN/MV8RWpQM19xP9I41NyP5HkVqUHN86rQ0FAUFxfj8OHDio9F4uTk5CApKQmhoaGqjMf+m9TA/pvkxv6b9Ib9Nynhcf33Qy8gB/5+Mj1w4IAiRZE2lJaW4tChQ6o1HWQsQUFBKC4uRnJysuhSSMcSExOFXhhiBMwD+mekPBAYGMimnhRVUlKCkydPWsxzU2hoKLKysnDq1CnRpZCCYmNj0aFDB9jZ2YkuBfb29vD19eVhFCkqISEBVlZWQj+lqGHDhpgyZQref/99XLlyRVgdcigpKcGrr76Knj17IiwsTPXxmd9IaWrnN+YvY1AzfzFfkRrUzlfcj9Q/tfcjeV5FalDzvKpBgwbw9PTkxT46d+DAAZSWluKpp55SZTz236Q09t+kBPbfpDfsv0lupvTfj7yAvHPnzkhKSsL169cVKY7EO3LkCHJyctC5c2fRpZAO+fn5wdHREXFxcaJLIR2Lj49Hy5YtRZeha8wD+mekPBAcHIyzZ88iJydHdCmkUydPnkR+fr7FPDe1bNkSTk5O2L17t+hSSEF79uzR1KdMtGrVij0CKSo+Ph7e3t5wcnISWsfUqVNRt25dvPnmm0LrqKp58+bh5MmT+Prrr4WMz/xGSlM7vzF/GYPa+Yv5ipSmdr7ifqT+qb0fyfMqUoPa+KzHiAAAIABJREFU51WdO3dmptS53bt3w9/fH25ubqqMx/6blMb+m5TA/pv0hv03yc2U/vuRF5B3794dtra2+O233xQpjsSLiopCo0aNhL4rF+lXtWrV0LZtW776nRSTmZmJkydPGuJdk0ViHtA/I+WB0NBQSJKEQ4cOiS6FdGr//v2oVauWxbwDua2tLXr06IHo6GjRpZBCkpOTce7cOSHvGvwoHTt2xIEDB1BSUiK6FNKpx30Un1ocHR3x7bffYs2aNVi8eLHocswSFxeHqVOnYtq0afDx8RFSA/MbKU3t/Mb8pX8i8hfzFSlN7XzF/Uj9U3s/kudVpDQR51V9+vRBbGwsL/bVsejoaFUzJftvUhr7b5Ib+2/SI/bfJDdT+u9HXkBeo0YNdOrUCVFRUYoUR+Jt27YNffr0gZWVlehSSKeeeuopbsiRYu7OrY4dOwquRN+YB/TPSHnA1dUV3t7efG4ixdz9qDwbGxvRpZgsPDwcu3btQmFhoehSSAHR0dGoXbs22rdvL7qUMqGhocjNzcWJEydEl0I6VFxcjN9//10zLzLt06cPpkyZgldffdXi5nxOTg6GDRuGTp06YerUqcLqYH4jpYnIb8xf+iYifzFfkZJE5CvuR+qfiP1InleRkkScV/Xp0wclJSXYtWuXamOSei5duoTjx4+jT58+qo3J/puUxv6b5Mb+m/SG/TcpwZT++5EXkANAv379sHXrVj6Z6tDVq1dx+PBh9OvXT3QppGOhoaE4deoUMjMzRZdCOnTgwAE0b94cderUEV2K7jEP6JcR80BoaCgOHDggugzSqdjYWDz11FOiy6iUvn374vbt29i+fbvoUkgBkZGR6NOnj6Ze1BAYGAgnJyceRpEijh49iry8PE2txf/973/RqlUr9O/fH1euXBFdjkkKCwsxePBg3L59G8uXL4e1dYXbh4pjfiMlichvzF/6JiJ/MV+RkkTlK+5H6peo/UieV5GSRJxXubq6okOHDoiMjFRtTFLPxo0bUaNGDTz99NOqjsv+m5TE/pvkxv6b9Ib9N8nN1P67whOgoUOHIjc3l29Tr0Nr166Fo6Ojpj7KnPQnNDQUNjY2fPU7KWLnzp3o0qWL6DIMgXlAv4yYB7p06YIDBw4gPz9fdCmkM6mpqTh37hy6du0qupRKadSoETp27Ig1a9aILoVkdu3aNezfvx/Dhg0TXcp9bGxs0KlTJ/YIpIhdu3bBzc0NzZo1E11KGVtbW2zcuBH29vYIDw9Hdna26JIqVFpain/84x84cuQItm7divr164suifmNFCMqvzF/6Zeo/MV8RUoSla+4H6lfovYjeV5FShJ1XjV06FBERkaioKBA9bFJWatXr8bAgQNRvXp1Vcdl/01KYf9NcmP/TXrE/pvkZmr/XeEF5Hwy1a+1a9cKaTrIWFxcXNC+fXtER0eLLoV0Jj09HXFxcYa66FUk5gH9MmIeCAsLQ0FBAWJiYkSXQjoTFRUFJycnTb3rramGDRuGjRs38rBJZ9auXYsaNWpoMi+FhYXht99+w507d0SXQjoTFRWFsLCwCj+KT4S6deti27ZtuHHjBrp164Zr166JLumhCgsL8fzzz2Pjxo2IjIxEy5YtRZcEgPmNlCMyvzF/6ZPI/MV8RUoRla+4H6lfovYjeV5FShF5XjV06FDk5eXxYh+duXz5MmJjYxEREaH62Oy/SSnsv0lu7L9Jj9h/k9xM7b8f+xm0w4cPx4YNG5CTkyNbcSTWmTNnEBsbi+HDh4suhQwgPDwcUVFRkCRJdCmkI9HR0ahWrRq6desmuhTDYB7QH6PmgSeffBJBQUGIiooSXQrpTHR0NHr27AlbW1vRpVRaREQEbt++jV9++UV0KSSjxYsX49lnn4WDg4PoUh4QHh6OnJwcHD58WHQppCM3b97EgQMH0KdPH9GlPFTjxo2xb98+3L59G6GhoUhJSRFd0n2ys7MRHh6O7du3Izo6WlOfqMH8RkoRmd+Yv/RJZP5iviIliM5X3I/UH9H7kTyvIiWIPK9q2LAhunTpgsWLF6s+Niln2bJlcHFxEXJRJPtvUgr7b5Ib+2/SG/bfJLfK9N+PvYB8xIgRkCQJK1eulKU4Eu/7779Hw4YNNXuoSvoSHh6Oq1ev4ujRo6JLIR2JiopCp06dULNmTdGlGAbzgP4YOQ+Eh4djy5YtossgHSkoKMDu3bst9vFUv3599OvXD99//73oUkgmR44cQVxcHMaPHy+6lIfy8fGBt7c312KS1Y4dO1BcXIzevXuLLuWRPD09sX//ftSrVw9t27bVzDt6/PHHH2jdujVSUlIQExMj5KPXH4f5jeQmOr8xf+mP6PzFfEVKEJ2vuB+pP6L3I3leRUoQfV41duxYbNq0CVeuXBEyPslLkiT8+OOPGDVqFOzt7YXUwP6b5Mb+m+TG/pv0iP03ya0y/fdjLyB3dnbG0KFDsXDhQlmKI7GKioqwZMkSvPTSS7CxsRFdDhlAcHAwPD09sW7dOtGlkE4UFBRgy5YtePbZZ0WXYijMA/pi9DwwaNAgnD17lodFJJuoqCjk5+djwIABoksx24QJE7Bnzx7NvSMumWfRokVo1qwZQkNDRZfySIMGDcLatWtFl0E6snbtWnTq1Amurq6iS6lQvXr1EBMTg9GjR2PYsGEYP348srKyhNRy584dzJ49G506dYKvry/i4+MRFBQkpJbHYX4juWkhvzF/6YsW8hfzFclNdL7ifqS+aGE/kudVJDctnFc999xzqFWrFt+FXCd27dqF06dPY+zYscJqYP9NcmP/TXJj/016xP6b5FTZ/vuxF5ADwKRJkxAfH4+YmJgqF0hiLV26FDdu3MCECRNEl0IGYWVlhSFDhmDVqlWiSyGd2Lp1K/Ly8jB48GDRpRgO84B+GD0PtGvXDp6enpp510+yfKtXr8bTTz+NBg0aiC7FbH369EGTJk0wb9480aVQFV27dg1LlizBq6++KrqUCkVERODs2bOIi4sTXQrpwN1D+2HDhokuxST29vaYP38+1q9fj82bN8Pf3x+LFy9GaWmpajXs3LkTLVu2xMyZMzFjxgxs3boV9erVU238ymJ+I7lpIb8xf+mHVvIX8xXJSSv5ivuR+qGF/UieV5HctHBe5eDggDFjxuCbb75BUVGRsDpIHnPmzEGXLl0QGBgorAb23yQ39t8kJ/bfpEfsv0lule2/TbqAvF27dujUqRPmzp1bpeJIrJKSEsyZMwcvvvgiGjVqJLocMpCIiAikpqYyPJEs1qxZgy5dulj0RXqWinlAH5gH/j4sGjp0KFavXg1JkkSXQxbu9u3bmmjqq8rGxgaTJ0/G4sWLkZGRIbocqoK5c+fCxcUFL730kuhSKtSuXTt4e3vzXTpIFps3b0ZeXp7FfUrR4MGDkZycjOeffx7jxo2Dr68vFi5ciOLiYsXG3L9/PwYMGICePXvC29sbSUlJeOutt2BtbdIWoTDMbyQnreQ35i/90Er+Yr4iOWklX3E/Uh+0tB/J8yqSk1bOqyZPnozr16/zxREWLi4uDtu3b8e7774rtA723yQn9t8kN/bfpEfsv0lO5vTfJp8O/Z//83+wZcsWJCUlmV0gibVy5UqcO3cOb731luhSyGBCQkLg5eWFFStWiC6FLFxubi42b96MiIgI0aUYFvOA5WMe+NuwYcOQmpqKw4cPiy6FLNzGjRtRUFCgi0/GeOmll2Bvb4+vv/5adClkpszMTCxYsABTpkxB9erVRZfzWEOHDsXKlStVfddl0qeVK1eiW7duePLJJ0WXUmnOzs6YN28ejh8/jtDQULzyyivw8vLC1KlTcfLkSVnGuHr1Kj777DO0bNkSnTt3RkFBAfbs2YNNmzahSZMmsoyhBuY3kouW8hvzl+XTWv5iviK5aClfcT/S8mlpP5LnVSQXLZ1XNWzYEBEREfj000+ZASzYjBkz0LZtW/Tq1Ut0Key/STbsv0lO7L9Jr9h/k5zM6b+tJBNfNihJEoKDg+Hj48NX0FggSZIQGBgIW1tbPPPMM6hbty5cXV3h6uoKNze3sr87ODiILpV0atasWfjiiy9w+fJl2Nvbiy6HLNR3332HN954A5cvX0bt2rVFl2NIzAOWTZIkBAUFITg4GEuXLhVdjnDBwcFo06YNvv/+e9GlkAXr0aMHatWqhQ0bNoguRRYzZszAZ599htTUVNSpU0d0OVRJ06dPxzfffIO0tDTUrFlTdDmPlZKSAn9/f2zduhVhYWGiyyEL9ddff8Hd3R0//fQTRowYIbqcKjt37hwWLVqEFStW4MKFC/D390e3bt3QvXt3tGrVCp6enqhWrVqF93Hx4kUkJSVhz549iI6OxvHjx+Hk5ISIiAiMGzcObdu2VemnkR/zG8lBa/mN+cuyaS1/MV+RHLSWr7gfadm0uB/J8yqSg9bOq5KSkhAUFISVK1dq4qJ2qpy7v7/IyEgMGDBAdDkA2H+TPNh/k5zYf5Mesf8mOZnZf18y+QJyANiwYQOee+45xMXFoVWrVuZVSkKsX78eERER2LRpE15++WVcuHDhobdzcHCAi4sL3NzcUL9+fbi5uZVdaO7q6orWrVtb9EEjiXP16lU0btwYy5cvF/4RRWS5QkJC0KJFCyxZskR0KYbGPGC57uaBY8eOISAgQHQ5wn311Vd4++23ceXKFdSqVUt0OWSBUlNT4ePjg40bN6J///6iy5FFXl4evLy8MGHCBMyaNUt0OVQJubm58PT0xJtvvolp06aJLsdkXbp0gaurK9avXy+6FLJQH3/8MT766CNcvnwZjo6OosuRTWlpKfbu3Ytt27Zh165dOHLkCEpKSmBnZwcvLy/Url0bNWvWhIuLC/Ly8pCXl4fs7Gykpqbi1q1bAIBmzZrBz88POTk52Lx5sy7+/zC/UVVpMb8xf1kureYv5iuqKi3mK+5HWi4t7kfyvIrkoMXzquHDh+PIkSNISkp67AuPSVuef/55JCcnIz4+HlZWVqLLAcD+m6qO/TfJif036RX7b5KTmf135S4glyQJ7dq1g7OzM3bs2GFepaS64uJitGrVCs2bN8eaNWtw+fJldO3aFefPn8edO3cq/LfW1taoVq0aJEnCnTt3sHbtWgwZMkSlyklvnnnmGeTl5WHnzp2iSyELFB8fj9atWyMmJgZPP/206HIMjXnAMpXPAwRkZ2ejQYMG+OyzzzBx4kTR5ZAFeuedd7Bs2TKcP38eNjY2osuRzZw5czBjxgycOHECjRs3Fl0OmWjatGn4+uuvce7cObi4uIgux2QrVqzASy+9hPPnz2vi4/nIskiSBD8/P4SFheHLL78UXY6i8vLykJycjJSUFKSkpCAnJwd5eXnIyclBjRo1ULNmTTg7O6NJkybw8/NDs2bNULduXZw4cQItWrTApEmTdPERvcxvVFVazW/MX5ZJq/mL+YqqQqv5ivuRlknL+5E8r6Kq0Op5VUpKCgICAvDll1+yX7IgR48eRUhICFauXImhQ4eKLqcM+2+qKvbfJCf236RH7L9JTlXovyt3ATkA/PHHH+jQoQNWrFiB559/vnKVkhDz58/HlClTcPz4cfj4+AAAbty4gd69e+PYsWMoLi426X4aNGiA8+fP8xXLZLbo6Gj07dsXR48eRVBQkOhyyML84x//wJEjR5CYmKiZV98bGfOA5XlYHiBg7NixOHjwIJKSkri2UKXcvn0bjRs3xmuvvYb3339fdDmyKioqQsuWLdG8eXO+a4KFuHjxIvz9/TFr1iy88cYbosuplIKCAnh4eGDChAmYOXOm6HLIwmzevBkDBw5EYmIiWrRoIbocTcrMzISrqysAYPLkyfj8888FV1R1zG9kLi3nN+Yvy6Pl/MV8RVWh5XzF/UjLo+X9SJ5XUVVo+bzq3//+N3744QckJyfDzc1NdDlkgq5du6KoqAixsbGam0/sv8lc7L9JTuy/Sa/Yf5OcqtB/V/4CcgAYP348tm7dipMnT/LjajQuMzMTvr6+GDduHD7++OP7vpeXl4cBAwZg//79j72IvFq1apgzZ47mnozJ8rRs2RLBwcFYvHix6FLIgly+fBleXl747rvv8OKLL4ouh/4/5gHLUVEeMLrk5GQ0b94cv/76q2Y+Qo8sw1dffYW33noLaWlpqFevnuhyZLd9+3b07t0bW7ZsQd++fUWXQ48xdOhQJCYmIiEhAXZ2dqLLqbQPPvgAX375JS5cuIAaNWqILocsSJcuXVCzZk1s2bJFdCmaJUkSbG1tUVJSAisrK8yYMUNTH/NqDuY3MpfW8xvzl2XRev5iviJzaT1fcT/ScljCfiTPq8gcWj+vysvLQ7NmzdCrVy/8+OOPosuhx1i7di2GDRuGQ4cOoV27dqLLeQD7bzIX+2+SE/tv0iv23ySXKvbf5l1AnpmZCX9/f4wcOVIX71ykZy+++CJ27NiBEydOPPTBXFhYiIiICGzZsgUlJSWPvJ/q1avj6tWrcHZ2VrJcMoAff/wREydORGpqKho1aiS6HLIQ//nPf7B06VKkpaXBwcFBdDn0/zEPWI7H5QGjCw8PR0FBAXbv3i26FLIQJSUl8PPzQ58+ffD111+LLkcxw4YNw5EjR3D8+HE+/2rYli1b0L9/f0RFRSEsLEx0OWZJT0+Hh4cHPv30U0yaNEl0OWQh/vzzT7Rt2xa7du1Ct27dRJejafXq1UNGRkbZ3z/55BNMmTJFYEVVx/xGlWUp+Y35yzJYQv5iviJzWEK+4n6k5bCE/UieV5E5LOG8at26dYiIiMC+ffsQGhoquhx6hJycHDRv3hxhYWH44YcfRJfzSOy/qbLYf5Oc2H+TXrH/JjlVsf++ZG3OoHXr1sXs2bMxf/58HD161Jy7IBXs3r0bS5cuxfz58x85Oezt7bF+/XoMHz4c1tYPnw62trbo1asXnJyclCyXDGLEiBFwdXXlkwuZ7MaNG1i4cCEmT57M5k1jmAcsgyl5wOimTJmCPXv24NChQ6JLIQuxZs0apKWlYfLkyaJLUdS8efOQkZGBjz76SHQp9Ai3bt3Ca6+9hhEjRmh289QU9erVw+jRozF37lzcuXNHdDlkIT788EO0bt1as5urWlL+nZ7+85//4LvvvhNUjTyY36iyLCW/MX9pn6XkL+YrMocl5CvuR1oGS9mP5HkVVZalnFcNGTIE4eHhmDhxInOAhv3nP/9BUVGRZj+l4S7231RZ7L9JLuy/Sc/Yf5Nc5Oi/zXoHcgAoLS1Fp06dcOfOHezfvx/29vZmFUDKyMrKQnBwMEJCQrBu3brH3l6SJEyePBnz589H+SlhZWUFAGjSpAkmTZqEMWPGoHbt2orUTcbwxRdf4J133sGZM2fQsGFD0eWQxk2dOhULFy5EamqqpjebjYp5QNsqmweMrEuXLrC3t8dvv/0muhTSuJKSEgQEBCAkJATLli0TXY7iPvvsM7z77rs4ePAgWrVqJbocKmfcuHHYuHEjTpw4ocmPAq2M8+fPw8/PD/Pnz8f48eNFl0MaFxcXh5CQEERGRmLgwIGiy9G8Hj16YNeuXfd9zcrKCsuXL8fw4cMFVVV1zG9kKkvLb8xf2mZJ+Yv5iirDkvIV9yO1zdL2I3leRZVhSedVp0+fRlBQEKZOnYr33ntPdDlUTnR0NPr27YuVK1di2LBhost5LPbfZCr23yQn9t+kV+y/SS4y9d+XIFXB6dOnpVq1akn/+te/qnI3JLPS0lLp2WeflRo2bCilp6dX6t/Onj1bAlD2x9bWVnrmmWeklJQU6a233pJq164t2dvbS6NGjZKOHj2q0E9Aepefny81atRIeu2110SXQhqXnp4uOTk5SR9//LHoUqgCzAPaVJU8YER79+6VAEh79uwRXQpp3OLFiyUbGxspOTlZdCmqKCkpkXr27Ck1bdpUysnJEV0O3WPVqlWSlZWVtGHDBtGlyObll1+WGjduLBUUFIguhTSuX79+Ups2baTS0lLRpViEUaNGSTY2Nvft9wCQrK2tpTVr1oguz2zMb2QqS8tvzF/aZYn5i/mKTGVp+Yr7kdpkifuRPK8iU1niedWXX34pWVtbSzt27BBdCt3j6tWrUv369aVhw4aJLsVk7L/JVOy/SS7sv0nP2H+THGTsvy9W6QJySZKk1atXS1ZWVtL69eurelckk88++0yysbGRdu7cada//+ijjyQrK6uyA8WYmJiy7+Xm5krfffedFBAQIAGQ2rRpIy1ZskQqKiqSq3wyiG+//Vayt7eX0tLSRJdCGvbGG29ITzzxhJSXlye6FHoM5gHtqWoeMKLu3btLnTt3Fl0Gadj/Y+/O42O69/+Bf86ZPfu+iCz2JYISUkJpG3soJShVupiqJXpTmnJplC6hVNTWUK64RRtKpWj7i6Jiiz2WUiqWxBaRILLPzOv3R7+ZK7LIMjNn5sz7+Xjkn8xk5jVMJu/3ZzvFxcVo3Lgx3nrrLaGjmNSdO3fg7e2N4cOHCx2F/J9Lly7BwcEBUVFRQkcxqMzMTCiVSixZskToKMSMHTp0CIwx7Nq1S+goFuODDz6AXC6vsICc4zhIpVKL/rek+o08i6XWb1R/mR9Lrb+oviI1Yan1FY1Hmh9LHY+k+SpSE5Y6XzV06FB4enri9u3bQkchADQaDV566SU0a9bM4harUv9NnoX6b2Io1H8TMaP+mxiKAfvv+i8gBwC1Wg0nJydcuXLFEA9H6uHo0aOQy+X4/PPP6/U433zzDTiOQ9u2bau8T0pKCiIiIiCVSuHt7Y3o6GhkZmbW63mJ9SguLkbz5s2pECdV+uuvvyCXy7F8+XKho5AaonrAfBiqHrA2qamp4DjOok/iJMa1YMECqFQqXL9+XegoJrdnzx5IJBJ88803QkexeoWFhWjfvj06deqE4uJioeMY3IcffggXFxfcv39f6CjEDOl0OnTu3Bk9e/YUOopFmT9/fqULyMtOIVcoFBZ7ihjVb+RZLLl+o/rLfFh6/UX1FamOpddXNB5pPix5PJLmq8izWPJ8VW5uLho3bowXX3wRGo1G6DhWb+bMmVAqlTh16pTQUWqN+m/yLNR/E0Og/puIGfXfxFAM3H9ncADA6qmwsJA9//zzTKFQsAMHDjC5XF7fhyR1kJubyzp27MiaN2/Odu3axXier9fjff/994zjODZixIhq73fz5k22evVqtmzZMpaXl8deeeUVNnXqVBYaGlqv5yfit2PHDjZw4EC2b98+1qNHD6HjEDMzcOBAlp6eztLS0phUKhU6DqkBqgfMg6HrAWszduxYtnfvXnbx4kVmY2MjdBxiRrKysljz5s3Z+++/z+bMmSN0HEHMnj2bLVy4kB05coS1a9dO6DhWS61Wsy1btrCTJ0+ygIAAoeMYXF5eHmvRogUbOnQoW7p0qdBxiJlJSEhgb7/9Njtx4gR9DtVC2b+bVqut9Hae55lSqWR//PEHCw4ONnG6+qP6jVRFDPUb1V/mwdLrL6qvSHUsvb6i8UjzIIbxSJqvItWx9PmqY8eOsW7durHZs2ezWbNmCR3Hav3222+sf//+7JtvvmHjx48XOk6dUP9NqkL9NzEU6r+JmFH/TQzBCP13pkFOIAeAixcvwt7eHqNGjYJWqzXUw5IaKioqQs+ePeHj44O7d+8KkiE/Px+rV69Gu3btwBhDSEgI1q9fj8LCQkHyEMvQu3dvdOjQgXa9k3J+/fVXMMawe/duoaOQWqJ6QFjmUA9Yups3b8LOzg7z5s0TOgoxM2+99RZ8fX2Rn58vdBTBaDQa9OjRA35+fsjIyBA6jlX66quvwHEctm3bJnQUo/r2228hlUpx7tw5oaMQM/Lo0SM0aNAAEyZMEDqKxfnll18qPX386S9XV1fcvHlT6Li1RvUbqYoY6jeqv4QnlvqL6itSGbHUVzQeKSwxjUfSfBWpjFjmq5YsWQKe5+n0aIGcPXsWzs7OGDVqlNBR6oX6b1IV6r+JIVD/TcSM+m9iCEbqvzMMtoAc+OeyHgqFAhMnTjTkw5Jn0Gq1iIiIgIODg9lc7uiPP/5AREQEZDIZXF1dERUVhb/++kvoWMQMnT9/HnK5HIsXLxY6CjET+fn5aNSoEYYOHSp0FFJHVA8IwxzrAUv1xRdfQKVS4dKlS0JHIWbijz/+AMdx+OGHH4SOIrgHDx6gXbt2aN26NV2Cz8Q2btwInuexcOFCoaMYnVarRXBwMEJDQ2kAiuhFRkbC1dUV9+7dEzqKxTlx4kSVi8ZlMhmkUilef/11nDlzRuiodUb1G3mamOo3qr+EI6b6i+orUhkx1Vc0HikMsY1H0nwVeVp+fj6aNGkimvmqf/3rX5DL5fjtt9+EjmJVMjIy4OvrixdeeEEUB+9R/02eRv03MQTqv4nYUf9N6suI/bdhF5ADwLZt2yCRSPD5558b+qFJFSIjI6FUKvHHH38IHaWC27dvIzY2Fo0aNQJjDB07dkRCQgJKSkqEjkbMyMcffwwbGxtcuXJF6CjEDEyfPh12dnbw8fFBYGAghg0bhpkzZ+I///kPDh06JIqCyhpQPWB67733ntnWA5amtLQUzz33HHr06AGdTid0HCKwoqIitGrVCv369RM6itnIzMyEv78/QkJC8PjxY6HjWIXdu3dDoVBg+vTpQkcxmbS0NMhkMixfvlzoKMQMpKamQiKRYN26dUJHsUgZGRnlFo1zHAeJRAKO4xAWFiaKU5WofiNPEmP9RvWX6Ymx/qL6ijxJjPUVjUeanjnPT9YVzVeRJ02fPh0ODg7IzMwUOopB6HQ6vPHGG7C3t8eJEyeEjmMV7t27h5YtW6JNmzbIyckROo5BUP9NnkT9NzEE6r+J2FH/TQzBiP234ReQA8CKFSvAcRy+/fZbYzw8eUJMTAwkEgm2bNkidJRqabVaJCcnIyIiAlKpFJ6enoiOjkZ6errQ0YgZKCoqQuvWrdGnTx+hoxCBnThxAlKpFPHx8Th27BhsbGz0p+L97I4VAAAgAElEQVTxPK9f8GBnZ4d27dph9OjRmDt3LjZt2oTjx4/j4cOHQr8E8gSqB0ynrB5o3bo1Bg8ejP/85z+02aKejh49ColEgtWrVwsdhQhs1qxZsLe3x/Xr14WOYlYuXboEDw8PDBgwAKWlpULHEbWjR4/Czs4Oo0ePtrpJmRkzZsDBwQE3btwQOgoRUHFxMYKCghAWFmZ1vwOGUlxcDI7j9F8NGzbE119/jXHjxsHf3x9FRUVCRzQIqt9IGbHWb1R/mY6Y6y+qrwgg7vqKxiNNx1LmJ2uL5qtImSfnq8SkpKQEffr0gbu7Oy5evCh0HFHLz89H165d4evrK7rai/pvUob6b1Jf1H8TsaP+mxiCkftv4ywgB/4pFKRSKTZt2mSsp7B6CxcuBMdxFte43rx5E7GxsfDz8wPP8wgLC0NiYiIVXlbu4MGDkEgkWLlypdBRiEAKCgoQGBhYbsf63r17Kywef/JLIpFAoVCA4zj991xcXNC/f39oNBqBXxEBqB4whSfrgT///BNyuRyMMfA8jy5duuCrr76iE3Pq6IMPPoCDgwNteLNiR44cgVQqxdKlS4WOYpYOHz4MW1tbjBo1iq4wZCQnTpyAm5sb+vfvb5X/xgUFBWjRogVefvllutSjFfvoo49ga2tL9Uw9OTo6okOHDkhMTNT3Sjdv3oRKpcKyZcsETmc4VL8RsddvVH8Zn9jrL6qvCCD++orGI43PUucna4rmq0hl81Vi8ujRIwQHB6Nx48ai/VsgtLy8PISFhcHd3R1//fWX0HGMgvpvQv03qS/qv4k1oP6b1JcJ+m/jLSDX6XSIiooCz/P4+uuvjfU0Vkmn0+HDDz8Ex3H46quvhI5TZxqNBsnJyQgPDwfHcfD29kZ0dLTodieSmps5cyZsbGxw4cIFoaMQAUyePBmOjo64evVque8nJSXpL69e2SLyyr4+/vhjYV4EqYDqAeOpqh5YuHCh/neB4zhIpVIwxtCiRQvMnj0bx48fF+WgtzEUFRWhXbt26Nq1K210s0KPHz9G8+bN0bt3b/qdqUZycjLs7OzQr18/upyjge3evRsODg7o1asX8vPzhY4jmOPHj0Mul+PLL78UOgoRwP79++lEKwNJS0ur9PtTp06Ft7e3aD5nqH6zbtZSv1H9ZTzWUn9RfWXdrKG+ovFI4xHL/GRN0HyVdatqvkpMsrKy0KFDB3h7e+P06dNCxxGVrKwsdOrUCR4eHjh58qTQcYyG+m/rRv03qS/qv4k1oP6b1IcJ+2/jLSAvExcXB47jEB0dLerCwVQ0Gg3eeecdSKVSUV0C4PLly5g+fTrc3NwglUoxZMgQ/Prrr7QLy8qUlJSgc+fO6NChA4qLi4WOQ0xox44d4DgOGzdurPT2DRs21HgBuYODAx4+fGjiV0CeheoBw6quHtBqtQgNDYVMJqvw+1F2OrmHhwfUajWSkpLo8/YZzp49C6VSiTlz5ggdhZjY2LFj4e7ujtu3bwsdxewdO3YMHh4e6NSpE7KysoSOIwpbt26FUqnEq6++isLCQqHjCO6LL76AXC4X9aQbqej+/fto2LAhXn31VaGjiNrdu3dhZ2eH2NhYoaMYDNVv1sua6jeqvwzP2uovqq+sk7XVVzQeaVhinZ+sCs1XWa9nzVeJSV5eHnr37g07Ozv8v//3/4SOIwrXrl1DixYtEBAQINqTx59E/bf1ov6b1Af138QaUP9N6sPE/bfxF5ADwPr16yGTyTB27FjafVgP+fn5GDBgAGxsbLBz506h4xhFcXExEhMTERYWBo7j4OPjg+joaNFeyoFUdPnyZdjb22PixIlCRyEmcu3aNbi5ueGNN96o9n4rVqx45uJxqVSKBQsWmCg5qS2qBwyjJvXA33//DaVSWe3vS9licjs7O7z22mvYsWOHiV+J5Vi6dCkkEgl2794tdBRiImvXrgXHcfj555+FjmIxrly5gqZNm6JVq1Z0RaF6WrZsGXiex+TJk2lD7f/RarXo2bMnmjZtitzcXKHjEBPQarUYMGAAGjZsiOzsbKHjiN7s2bPh6Ogoqkkwqt+sjzXWb1R/GY411l9UX1kfa62vaDzSMKxhfrIyNF9lfWo6XyUmxcXFGDFiBBQKBRITE4WOY9HOnTuHhg0bok2bNsjMzBQ6jslQ/219qP+m/rs+qP+m/tsaUP9N/Xd9CNB/m2YBOQAkJSXBxsYG4eHhyMnJMdXTisaNGzcQEhICV1dXHDlyROg4JnHx4kVER0fD09MTPM8jNDQU8fHxor58CfnHTz/9BI7jsHbtWqGjECMrLCxEcHAwgoKCanTZp88++6zaBbFubm70GWHmqB6on9rUA8uXLwfP8zU6uZ8xhvXr15voVVimN954Ay4uLkhPTxc6CjGyU6dOQaVSYcaMGUJHsTg3b95EUFAQGjZsaDU9iyGVlpbigw8+AMdx+OSTT4SOY3bu3LkDHx8fhIeHW83AsjWLiYmBTCZDSkqK0FGsQn5+Pnx9fTFhwgShoxgU1W/Ww5rrN6q/6ufJ+uuzzz4TOo7JUX1lXay5vqLxyPqxxvnJJ9F8lfWo7XyVmGi1WkycOBESiQRfffUVnRpZBzt27ICTkxN69uyJBw8eCB3H5Kj/th7Uf1P/XVfUf1P/bU2o/6b+u64E6r9Nt4AcAA4dOoSGDRsiICCA/qDWwo4dO+Dq6opWrVrhwoULQscxOY1Gg+TkZEREREAmk8HR0RFqtdoqP2ityfTp06FSqegyLiL31ltvwdHREZcuXarxz3z44YfgOK7SBbABAQFWdQKKpaJ6oG5qWw/odDr06tULMpnsmSf3jx071vgvwMI9fvwYbdq0QadOnazicmrWKjs7G/7+/ggLC4NGoxE6jkXKzc1Fv379IJPJsGjRIppwqqEbN26ga9eusLGxwZIlS+Dv749p06bVqkayBgcPHoRcLsfcuXOFjkKMaMeOHeB5HsuXLxc6ilVZt24dJBIJ0tLShI5iMFS/WQeq36j+qqsn6y9r3lBN9ZV1oPqKxiPrytrnJ8vQfJV1qMt8ldjMnz8fUqkUr7zyCi34qaGSkhJMnz4dHMdh7NixKCoqEjqSIKj/tg7Uf1P/XVfUf/+D+m/rQP039d91JWD/bdoF5ABw79499O/fH1KpFDExMbSzphqlpaWIiYkBz/MYM2aM1e12rszt27cRFxeHoKAgMMbQunVrxMbG4t69e0JHIwam0Wjw8ssvo2HDhlZ1mS9rsnDhQvA8j6SkpFr9nE6nw/jx48udrMxxHDw8PDB06FBwHId27dohMTGRmjYzRvVAzdWnHsjMzIS9vX21i8cbNWqER48eGfEViMelS5fg5OSEkSNH0ueLCBUVFaF79+7w9/en2rKedDod4uLiIJPJMHDgQNy/f1/oSGbt559/hqurK1q2bIkzZ84AAD755BN9jdOjRw9s2bIFJSUlAic1D2VX2KDLKovTmTNn4ODgQJvbBKDT6dC5c2e89NJLQkcxKKrfxI3qt/+h+qt2Kqu/rBnVV+JG9dU/kpOT8eWXX9J4ZA3R/GR5NF8lfnWdrxKj1NRU+Pn5wdfXFwcOHBA6jlm7ceMGQkNDoVKpEBcXJ3QcwVH/LW7Uf/8P9d+1Q/13edR/ixv13/9D64Fqzgz6b9MvIAf++YMaGxsLqVSKQYMG0R/USly/fh1dunSBra0t1q1bJ3Qcs3T8+HGo1WrY2dlBoVAgIiICSUlJVrvbUYwePnyIoKAgtGnTxiov9yVmW7ZsAc/zWLRoUZ1+XqPRYOjQoZBKpWCMged5/W7VtLQ0REREgOM4tG3blhaSmzGqB57NEPXAmjVrqjy1XyaT4fTp0wZOLW779u2DQqGwysvziZlOp8Mrr7wClUqF33//Xeg4onHgwAH4+vrCz88Phw4dEjqO2SkpKcG0adPAcRzGjRuH/Px8/W35+fnw9PQEx3HgeR4cx8HFxQWzZs3CtWvXBExtHiIjI6FUKnHw4EGhoxADunXrFvz8/NC9e3erPbFLaAcOHADHcdi+fbvQUQyK6jdx0ul0GDNmDBwcHER1cn59Uf1VverqL2tH9ZU4WXt9VVxcjPXr16N169bgeR5paWk0HlkDND9ZOZqvEq/6zleJyaVLlzBx4kQMHToU/fv3h0wmw8KFC2mOrRJJSUlwcXFBYGAgzp8/L3Qcs0H9tzhR/13RgQMHMGXKFOq/q0H9d9Wo/xYna++/K3Px4kWMHz+e+u9qmEn/LcwC8jKpqalo1KgRXFxcEBcXR7sN8E/xFR8fDwcHB9qBVUOPHj3C6tWr0aVLFzDG4O/vj5iYGFy9elXoaMQA0tPT4enpiX79+tGpiyJx6NAhqFQqTJo0qV6PU1xcjF69eoExhmbNmlXYPHLmzBlaSG4hqB6oyND1wKBBgyCTySosIA8NDcXDhw8NlNp6rFu3DhzHIT4+XugoxEBmzJgBmUymryebNGmCiRMnIjExEVlZWULHs2jZ2dkYMGCAftd0dna20JHMwsmTJ9GxY0eoVCqsWrWq0vuUfdY8+bktl8vBcRxefPFFJCYmorS01MTJzYNGo8Err7wCNzc3q760tJg8evQIHTp0QMuWLWkQUWCjRo1CQECA6E6ZpPpNfMrqt+TkZKGjmB2qvypXk/rLmlF9JT7WXF/l5uYiNjYWHh4e+p4qIiKi3H1oPLIimp98NpqvEh9DzVdZuj179qB///7gOA4cx+HMmTPlTtgNDg7G0aNHhY5pFnJycqBWq8FxHF2hoQrUf4sP9d//KCkpwYYNG9C+fXswxrBv3z7qv6tA/Xf1qP8WH2vuv5+m0+mQnJyMvn37QqFQID09nfrvSphZ/y3sAnLgn4GcyZMnQyKRoHv37kL/gwjq9OnTCA0NhUwmw0cffYSCggKhI1mcixcvIjo6Gp6enmCMoWPHjoiLi7P6y+hYutTUVNjZ2WHkyJF0wryFO336NJydnTFo0CCD/F/m5+cjNDQUW7durfI+Z86cwZgxY8DzPIKCgpCQkGC1i63MGdUD/2OMeuDWrVtwdHTUT5rJZDJ069YN3t7e8Pf3x969e+sf3Mp88sknkEgk2LRpk9BRSD19+eWX4DgO69atQ05ODnx8fPS/J2WTJs2aNUNkZCS2bdtm9Y1/Xeh0Oqxbtw4eHh7w8vLCf//7X6vd1JWbm4vIyEhIJBK8/PLL+Pvvv6u8r1arRfv27fVXXHnyq+x77u7uiI6OxvXr1034KsxDfn4+QkJC4OfnZ5WvX0zy8/PRrVs3eHl54cqVK0LHsXp37tyBs7Mzpk2bJnQUg6P6TTzK6jdakFA1qr/+pzb1l7XLz89HcHAw1VciUFBQgJ49e1pdfXX16lVER0fDzs6uXB/F8zz+/PPPCven8cj/ofnJmqP5KvEw9HyVpSkuLkZCQgKCgoL0Y00cx2HkyJHl7nf69Gl07doVUqkUU6dOtdoDaXQ6HRISEuDh4QEfHx9s27ZN6Ehmjfpv8Xhy/sRaZWdn4/PPPy+3OfHll1/W30799/9Q/11zNL8hHtbafz+tsLAQq1evRsuWLfW9+MSJE/W3U//9P2bYfwu/gLzMiRMnEBISAqlUig8++ACPHj0SOpLJZGVlQa1WQyKRICQkBKdPnxY6ksUrKSlBUlIShg8fDqVSCaVSiYiICCQlJdGpABbq999/h1KpxNixY2k3koW6dOkSvLy88NJLL6GwsNBgj/vo0aMaNWGnT5/GiBEjIJFI0KxZM3z77bcoLi42WA5iGFQPGK8e2Lhxo37SzN/fHw8fPkRWVhYGDx4MjuOgVqvp8mG1NH36dEgkEmzevFnoKKSO1q5dC47j8OWXX+q/d/To0UpP7JfL5eB5Howx+Pn5Qa1WIzExETk5OQK+AsuSk5OD9957DzzPo0ePHjh37pzQkUxGo9Fg5cqVcHNzg5ubG9auXVuj+mXfvn0V3ouVLSaXSCQYPHgwkpOTrWpwOjc3Fx06dEDTpk1x8+ZNoeOQOigpKcGAAQOgUCjQqVMnLFq0CH/99ZfQsazeN998A6lUipMnTwodxeCofrN8T9Zv7777LiZOnGhVNUVtUf1V+/rLGhUXF2Pjxo3o3r07du/eTfWVhSurr5ycnET5t7wyJ06cwOjRoyGRSCpswJXJZHj99def+fM0Hknzk7VB81WWz1jzVZbgwYMHiIuLg6enJziO0493ls0dXLx4scLP6HQ6rFmzBm5ubvD29sbGjRsFSC6cw4cPo3PnzpBIJHjvvffw4MEDoSNZBOq/LV9l8yfW5PLly5gyZQqUSmW5GpPjOKSmpla4P/Xf1H/XFs1vWD5r7L+fduvWLcyaNQvOzs6QSCT62lKpVOLWrVsV7k/9t1n23+azgBz4385Nd3d3uLm5ISYmBrm5uULHMpqsrCzExMTAyckJDRo0QHx8PA00GMGDBw+QkJCA8PBwSCQSODs7Q61WIyUlhYoWC7Njxw7I5XJMnDiR/u8szF9//YWGDRuia9euyMvLEzRLeno6IiMjoVQq4enpiZiYGKs9McFcUT1gvHpgyJAhkMlkOHHiRLnvr1mzBvb29mjTpo3VNjd1odPpoFaroVQqsWvXLqHjkFpau3YteJ7Hp59+WuG2pUuX6k+SqG7RbtnESrt27RAXFyfAq7BMJ0+exPPPPw+e5xERESHqUyhKSkqQkJCAli1bQiaTQa1W1/rqSAMHDqx0U0NlX71797a6DbN37txBixYtEBgYiNu3bwsdh9RCcXExhgwZAgcHB+zfvx9NmjTRv5f9/PwQFRWF33//3ere0+ZAq9UiNDQUnTp1Et1JfFS/Wban67erV69CLpeDMYbQ0FB8//33tFG8ClR/0dUpK3Pt2jXMmDEDzs7OYIxhxIgRAKi+smRP1ldHjx4VOo5RabVaJCUloWfPnvqF4pX1SDzP12iDIo1H0vxkba1atQoSiQRqtZrmqyyMOc1XmVJVCyGf3HDz9ttvV/sYOTk5+pNlQ0JCkJSUZKL0wjh16hQiIiLAcRx69uyJU6dOCR3JojzZf2/YsEHoOKSWqps/EbuUlBT07dsXHMfpxxye/KwcMmRItT9P/Tf137VB/bflsqb+uzInT57E+PHjIZfLK/TjMpkMM2bMqPJnqf82u/7bvBaQl8nOzsbMmTPh6OgIJycnzJ49G9nZ2ULHMpiMjAxERkZCpVLB09MT8+fPt6oGVUgZGRmIi4tD+/btwRiDv78/oqOjcfnyZaGjkRr68ccfIZfL8eabb4puIluszpw5Ay8vL4SEhJjVH/07d+4gJiYGDg4O+qLk/v37QsciT6B6wPCysrKQkJBQ6W3p6el44YUXIJPJMGvWLBQVFRk1i1hotVqMGzcOcrkcP/74o9BxSA2VLRCfPXt2lfcZOnRojRftMsZoEVotabVarFu3Do0bN4ZcLodarRbVqcNFRUVYuXIlAgICIJPJMG7cOFy6dKlOj3XlypVKJ/ae3tDQokULqz0BKSMjA82bN0fz5s1x48YNoeOQGigoKEC/fv3g4OCAAwcOAACOHTsGiURSbpCRMQYbGxsMHToUCQkJyMrKEji59Th37hzkcjmWLFkidBSDo/rNMlVVv02bNk2/QJDjOLi4uODf//43/T2oBNVfBPjnfbBr1y4MGDAAPM/rF0TIZDKkp6fr70f1leWprL4So/z8fKxYsQIBAQHgOK5c/VjZYsi33nqrVo9P45GkKhqNBvv378f06dPRqFEjMMYwduxYmq+yMOY6X2VMKSkpePXVV8HzfLVjnTKZrMZ/848fP45+/fqBMYbu3btj586dotpIsW/fPvTq1QuMMTz//PP4+eefhY5kcfLz8/Hzzz/j3XffhZ2dHaRSKfXfFqQm8ydiU1RUhISEBLRq1arcAUKVbU78888/n/l41H+TmsrJycGKFSvg4OAAf39/6r8thLX03097eiP305tsyr7s7OxqtPaK+m+zYZ4LyMvk5uZi3rx5cHNzg52dHaZNm1ZuENPSnDt3Tr/7wtfXF19//TUKCgqEjmW1zp07h+joaHh5eYExho4dOyIuLo4mpC3Azp07oVKpMGLECDqNzswdPXoULi4u6Nmzp9leeuTevXv6S6rY29vjgw8+wPXr14WORZ5A9YDp6HQ6xMfHw97eHoGBgThy5IjQkSyCTqfDpEmTIJVK8d///lfoOOQZPv/8c3Ach/nz51d7v7y8PDRp0uSZC3fLBsdI3ZSUlGDVqlVo0qQJeJ7H4MGDsWfPHouddLp//z4WLVqEBg0aQKlUYuLEibh69Wq9H/f999+vcpJPIpHAw8PD6gcWb9++jaCgIPj7+4v6VBcxePToEXr06AFXV1ccO3as3G1z584td/nsJ9/nZYtD27Zti5iYGBw/ftxiPyssxezZs2FjY1PpJcwtHdVvlqW6+i03NxeOjo7lPjPkcjk4jsOLL76IxMREWtD1FKq/rFNubi7i4uLg6+tbYUGETCbDtGnTKvwM1VeWo7r6SmwOHToElUr1zKuGlb23r127VqfnofFIAvzzu7V582aMGTMGTk5O5RZJhIaGQqvV0nyVBbGE+SpDSk9PR2BgYLULIZ/8vJw6dWqtn+PgwYPo06cPOI5D69atsXr1ajx+/NgIr8b4NBoNtm/fjm7duoExhp49e2L37t1Cx7Io165dw4oVK9CnTx8oFAr9++v999+n/tuC1HT+RCxu376NWbNmwcnJST/+WN1n5RtvvFGrx6f+m1Tm9OnT+OKLL/Qn1TPGMH78eOq/LYQ19d9lHjx4gEWLFqFhw4bP3MgtlUrx2Wef1erxqf8WnHkvIC/z+PFjLFq0CD4+PuB5Hr1798YPP/xg7v+4AP75JVqzZg26dOkCxhiaNWuG1atX0+VUzUhpaSl27tyJ1157DSqVCgqFAq+++iq2bduGwsJCoeORKuzduxd2dnbo1auX1Z60aO527NgBOzs79O/f3yI+rx8+fIgFCxbAx8cHMpkMo0aNwokTJ4SORZ5A9YDpXL16FWFhYeB5Hmq12mIHfU0tOjoaPM9bzcCapdFoNJgyZQp4nsfy5ctr9DNnzpwpN9j99BfHcXB3d0dOTo6R04ufVqvFli1b0LVrV/3n5Pz585GZmSl0tGfSaDT4/fffMXr0aCiVStjb2yMqKgq3bt0y2HPk5ORUWBxX9h7keZ5OQvo/2dnZCA4OhqenJ1JTU4WOQyqRmZmJ9u3bw8vLC2fPnq1we2lpKTp16lTtqWgcx+lv9/T0xMSJE6l3N5LS0lJ07twZHTp0EO1iGKrfzFtN67fFixdXOnFRtlDG19cXsbGxdBnlp1D9ZR2OHz+O8ePHQ6FQVLl4zN7evsqToai+Mn/Pqq/EaPfu3ZDJZM9c4DNp0qR6PxeNR1qf69evIz4+Hv369YNMJivXf5R9qVSqcgt7aL7K/FnafJWhfPDBB9V+Vj75nr57926dn+fMmTMYO3YsFAoFHBwcMGHCBIupGy5duoRZs2bBx8cHHMehf//+VnWSaH1oNBqkpKTgo48+QosWLfQ9WFnNyfM8WrRooR+zof7bvNVl/kQMLl26BDc3txpvTqzrYmnqv61bXl4etm3bhvHjx8PT01O/KbHswJSyz0rqv82fNfbfwD9jr8/6jCz7cnV1rfPaEuq/BWMZC8jLlJaW4qeffsKAAQMgkUhgZ2eHUaNGYevWrWZ1xHt2dja+++47vPLKK1AoFFAoFBg5ciR2795tsTvJrEVBQQESExMRHh4OqVQKGxsbhIeHIzExEUVFRULHI09JS0uDr68vAgMD63ySCDGO1atXQyqV4s0337S4hQYlJSVITExE586d9SeJ0Ill5oXqAdPQ6XRYtWoVHB0d0bx5c+zbt0/oSBYhLi4OEokEb731lsV9/onZ48ePMWjQICgUCmzcuLFWP7tq1apqG+GffvrJSKmtV1paGqZMmQJnZ2fwPI/u3btj6dKlZlXvlZSUYM+ePZg8ebL+ikYhISFYvXq10f4WLV68uMKkn0QiQcuWLeHg4ICtW7ca5XktzePHjxEeHg6lUonvv/9e6DjkCWfPnoWfnx+aNWtW7SVNL1++DJVKVeMByffff9+Er8L6XLhwASqVCjExMUJHMRqq38xTbeq3kpISBAQEVLs4RiqVQiaTYdiwYUhOTjbRq7AcVH+JS2FhIRISEtCmTRv9QoeqfjckEgkWL15c7eNRfWW+alpfidH27dshkUiqXOwjk8kMuiCHxiPF7dy5c4iNjUVwcLD+RL2q6gqO47B27doKj0HzVebLkuer6kun02H8+PHVnhIpk8nw73//2yDPl52dja+++gqtWrUCYwyNGjXChx9+iCNHjkCr1RrkOQzhwoULiI2NRYcOHcAYg7e3N2bOnIkrV64IHc3s3b9/H4mJiRg/fjxcXV3BGKvyABaZTIbTp0+X+3nqv81TfeZPxODMmTNwcHB45mfllClTDPJ81H9bhytXrlTYlFh2JZvqPiup/zZf1tx/A/9sBHvWZhuJRIKlS5fW+7mo/zY5y1pA/qTbt29j2bJl6N69O3ieh1wux0svvYTY2FgcOHDApIt9Hz9+jN9//x0xMTF4/vnnIZFIIJPJ0LdvX/znP/9Bbm6uybIQw7l37x4SEhL0J7A6OTlhzJgxSEpKspQdIlbh+vXrCAoKgre3Nw4fPix0HKtXWlqKqVOnguM4fPrpp0LHqbeUlBSEh4eD4zg0bdoUcXFxFrG7zZpQPWB8N27cwIABA8BxHMaNG0en9tXAtm3bYGNjgz59+tDJ1Gbg+vXr6NixI9zd3XHo0KE6PcaYMWMqnNYnlUrh7OxMJz8bUVFREX766SeMGjUK9vb2YIyhVatWiIqKwvbt2036eaTVapGWloZly5ZhyJAh+jyBgYGYO3cuLl68aPQMJSUlaNSokX4Sm+M4rF+/HkVFRXjnnXfAcRyio6PNakJOKKWlpZgwYYL+VCMLG6gRpaSkJDg4OCUG++QAACAASURBVODFF1+s0d/GVatWPXMwUiqVomXLlnT6uAksWbIEUqkUR44cETqK0VD9Zl7qUr9t3ry5RieGlU0Ib9++3civwjJR/WX5dDodevbsqT/1sbrfB57n4efnV6OxbqqvzE9t6ysx+vjjj6tc4BMVFWW056XxSHEZOnSo/hTIZ9URMpkMAwYMqPKxaL7KvIhtvqqutFothg8fXmVdYGdnV+WVSOrjxIkTiI6ORqNGjcAYg5ubG0aNGoU1a9aYvI7LzMzEDz/8gAkTJiAgIACM/XM65vjx47F79246QKoGTp06heeffx48z4Pn+SqvbPNknfnll19W+ljUf5sXQ8yfiMGRI0egUqmq/KxUKpW4ffu2QZ+T+m/xSU1NxZQpU+Dn56evHavry3mex6JFiyo8DvXf5of673/Gm9RqdbUbbRs0aGDwfpj6b5Ow3AXkT8rKysJ3332H0aNHw9vbW7/TsUuXLnj33XexYsUK7Nu3DxkZGfWaTC8tLcXVq1exe/duLF68GG+//TY6duyoL5ADAgIwfvx4bNmyhS5RJjIZGRmIi4tDaGgoOI6jxeRm5sGDB+jfvz/kcjlWrFghdByrdefOHbzwwguwtbXFpk2bhI5jUGfPnsWbb74JhUIBT09PxMTE0GWZzBDVA8aVlJQEPz8/ODs7Iy4ujhYoPsPRo0fRsGFDNG7cGKdOnRI6jtXavXs33N3d0aZNm3KXFq6tx48fo1mzZvrfc47j4OLigsGDB4MxhkGDBiE9Pd2AycnTioqKsHv3bkybNg1BQUH6AYqWLVti5MiR+OKLL/Dzzz/j4sWL9R4suHv3LlJTU7F27VpERUUhLCwMjo6OYIzBwcEBAwcOxPLlywU5lWjbtm369+CCBQvK3ZaQkACVSoV+/foZZeLPEi1atAhSqRTDhg3Do0ePhI5jlbRaLWbPng2O4/D222/Xqn8ePHhwtSemKhQKXLhwwYjpSRmdToewsDA0b95c1L9LVL+Zh7rWbzqdDp06dar2c6Nscm7GjBlGfAXiQfWX5bp16xYaNmz4zN8HjuOQmJhYq8em+kp49amvxGTNmjWQyWTo1KlThQ1ESqUSd+7cMUkOGo+0fFevXoWdnd0zN6KVHTT1rPcWzVeZBzHPV9VWUVERxo4dqz9d/+mN2Z999pnRM5w9exZffvklwsLCYGNjA8YY3N3d0b9/f0RHR2PDhg04ceJEvRdk5efn49y5c9iyZQvmzJmDYcOG6ReMS6VSdO7cGbNmzcLBgwdp0XgtlZaWolOnTs/coFj2b92tW7dq/+5R/20eDDV/IhZRUVH6PunpDWQzZ8406nNT/y0Oqamp1Z5k//T7qmfPntV+VlL/LTzqv8vTarX6K7hU1i8lJCQY9fmp/zaaDA4AmMhcuXKFHTx4kKWmprKzZ8+ys2fPsgcPHjDGGJPL5czf3595eHgwV1dX5urqyuRyOXNyctL/PAD24MEDVlxczO7fv8/u37/P7ty5wzIyMphGo2GMMebu7s7atm3L2rZty0JCQli3bt2Yj4+PIK+XmFZmZib78ccf2ebNm9mhQ4eYk5MTCw8PZxEREaxv375MJpMJHdEq6XQ6NnfuXDZv3jz2xhtvsOXLlzMbGxuhY1mNgwcPshEjRjCVSsV+/PFH1rZtW6EjGcWdO3fYsmXL2KpVq9jDhw/Z0KFD2eTJk1nXrl2FjkYqQfWA4RUUFLC5c+eyhQsXsi5durCVK1eyNm3aCB3LbGVlZbERI0awo0ePshUrVrCxY8cKHclq6HQ6tmDBAjZr1iw2bNgwtmbNGmZra1uvx/zzzz9ZcHAwKyoqYgBYUlISGzhwINu3bx+bPHkyS09PZx9++CH76KOPmFKpNNArIVV58OABO3jwIDt8+DBLS0tjZ8+eZdevX2eMMcZxHPP29mYNGjRgbm5uzNXVldna2jI7O7tytXpeXh4rLS1l2dnZ+s/5a9eusfz8fMYYYyqVirVu3Zq1bduWdezYkXXv3p0FBgYyiUQiyGsu0717d9auXTu2bNmyCredOHGCDR06lAFgW7ZsYZ06dRIgoXnZu3cvGzlyJHN1dWVbtmxhrVu3FjqS1cjOzmZjxoxhe/fuZV9//TVTq9W1+vl79+6xVq1asdzcXKbT6crdxnEcW7VqFXvnnXcMGZlU4+bNm6xDhw6sZ8+e7IcffhA6jtFQ/SYcQ9RvqamprEuXLqyq4W6JRMKGDx/ONmzYwDiOM0Rsq2LN9Zcl+vvvv1nnzp3Zo0ePmFarrXC7VCpl7dq1Y8eOHav17wPVV8Kpb30lBgDYJ598wj755BMWGRnJFi9ezL7++mv2r3/9izH2z3t72rRp7IsvvhAkH41HWqYff/yRDRs27Jn327x5c43uR/NVwrKW+aqayM7OZsOGDWMnT55ka9asYUuWLGFHjx5lpaWljDHGnJyc2I0bN5i9vb3JMpWWlrKTJ0+yQ4cOsRMnTrCzZ8+yCxcu6DM5OjoyPz8/5urqytzc3JiLiwuTy+XleoPi4mJWUFDA8vLy2P3791lWVha7ffs2u3v3LmOMMZ7nWePGjVnbtm1Z+/btWdeuXVlISAizs7Mz2esUo6tXr7KgoCBWUFBQZc/FcRyzsbFh58+fZ/7+/tU+HvXfwjHG/Ikl02g0bNasWWzBggVsyJAh7Keffio3FmlnZ8euX7/OXFxcTJaJ+m/L9dlnn7GPP/64wnj2kziOY7a2tuz8+fPMz8+v2sej/ls41H+XV1xczCZNmsTWrl3LAgICWGZmpr5+43meBQQEsL/++otJpVKTZaL+22AyRbmAvDK3bt1i6enp7OrVq+zatWv6//j79++z0tJSlpubq78vz/PM0dGRKRQK/ZvIw8OD+fv7s0aNGrHGjRszDw8PAV8NMRcZGRls69at+sXkzs7ObMCAAbSYXEA7d+5kb7zxBvPw8GAbNmxgHTp0EDqSqGk0Gvbpp5+yzz77jPXr14+tX7++3B9csSopKWHbt29ncXFx7NChQ+y5555jEyZMYK+//joNBJs5qgcM4+TJk2zChAns9OnTbOrUqWzWrFnM0dFR6FhmSaPRsBkzZrBFixaxkSNHspUrV9K/lZHdunWLjR07lv3xxx9s/vz5+klkQ/juu+/YmDFj2KhRo9iGDRv03y8tLWUrVqxgs2fPZh4eHmzJkiVswIABBnteUjMPHz7Uf8Zfv36d3bp1S/8ZX1BQwPLz81lJSYn+/vb29kwmk+k/411dXZmfnx8LCAhgjRo1Yv7+/mY5WHrjxg3m4+NTZbYnJ1+WL1/Oxo0bZ9qAZigzM5NFRESwtLQ0tmjRIjZhwgRaOGhkycnJbOzYsUwmk7HNmzezzp071+lxkpKS2CuvvFLuexKJhPE8z9asWcPGjBljiLikhvbu3ct69+7NFixYYNC/r+aG6jfTM2T99uqrr7IdO3boJzDKcBzHgoOD2YEDB5hcLq9vZPJ/alJ/lU3CuLm5WWz9ZamOHTvGunbtyrRabaWLfFJSUli3bt3q9NhUX5meoeorS1ZcXMzefPNN9uOPP7LVq1ezN954Q3/bvHnz2Mcff8xsbW3ZjRs3TLrA51loPNIyjB8/nq1bt06/UOBJMpmMvfbaaywhIaFWj0nzVaZlrfNVVUlLS2OvvPIKk0qlbPv27SwwMJA9evSIvfDCC+zPP/9kOp2OLVy4kL3//vtCR2WlpaXs6tWr+q+bN2+y+/fvs+zsbJabm8tKSkr0Cx4ZY0ypVDKVSsXs7OyYq6src3d3Z15eXqxx48YsICCANWnShObqjCQxMZGNGDGi2vts3LiRvfbaazV6POq/Tc+Y8yeW6P79+2z48OEsNTWVrVu3Tr+gfvz48QwAk0qlbO7cuWzGjBlCR7Wa+Q9Lp9PpWM+ePdmRI0cqjE096fvvv3/m52kZ6r9Nj/rv8m7dusWGDh3Kzp8/z9avX8/69OnDXn75ZXb8+HFWWlrKOI5jP/74IxsyZIjQUan/rptMJsCx54SIUnp6OmJjY9GxY0cwxuDh4YF3330Xu3btQmFhodDxrEpGRgZefPFFyOVyzJ8/v16XpiBVu3LlCrp06QKVSoWlS5dCp9MJHUkQx48fh1qthlKphJOTEyIjI3Ht2jWhYxFidBqNBitWrICrqys8PT3x7bff0udtNX755Rd4eXnB398f+/fvFzqOaG3duhWurq5o3rw5jh07ZpTnmD17Nu7fv1/pbTdv3sSYMWPAGEN4eDjS09ONkoGQZyktLcX06dPBcRwiIiKqfM9ak9LSUsyaNQsSiQQDBw7E3bt3hY4kSkVFRYiKigLHcRg+fDhyc3Pr/Zhvv/22/tKAPM/Dw8MDU6dOhUQiQb9+/XDjxg0DJCc19fnnn0MqlVpFPUP1m2kYun67cuWK/jODPXFZYFtbWzg7O+PgwYMGSE1q45dffkHr1q2FjmF1dDodPvzwQ3AcV+kl2IcMGVLv56D6yjSMUV9Zolu3biEkJAQuLi7Yu3dvpff58MMPERMTY9JcRDwKCwvh7+9foY6QSCTw9PRETk5OnR6X5qtMg+aryktMTIStrS26d++OrKyscrfdu3cPTZs2hZeXF81fkzoZPXo0ZDJZuc/K+taY1H+bhinmTyzJ6dOnERAQAF9fXxw/frzcbQsXLgRjDK6urnj8+LFACYmlysjIgIODQ4VevOyzcuzYsbV+TOq/TYP674oOHjwIb29vNGvWDOfPn9d/Pzc3F4GBgWCM4bnnnrP6+tvCZdACckKM4O+//8bnn3+O4OBgcBwHOzs7DB06FOvXr0d2drbQ8ayCVqvF/PnzIZfLERISgrNnzwodSTQ0Gg0WLVoEW1tbtG3bFufOnRM6klm4ffs25syZA29vb0gkEgwePBg7d+6ERqMROhohRpWTk4Po6GjI5XJ06NCBBveqkZWVhYEDB4LneUyaNAmPHj0SOpJo3LlzB8OHDwdjDO+8847gA3rJyclo2bIlVCoVZs6ciYcPHwqah1iv3bt3o2HDhvDy8sKuXbuEjmMWUlJSEBAQAFdXVyQkJAgdR1T279+Pli1bwt7eHuvWrTPY4+bl5cHPzw88z4PneX2tcfDgQbRs2RKOjo6Ij4+nAUoT0el0ePXVV+Hl5YWbN28KHcfoqH4zHmPWb1OnTtUv/pJKpfD19UV6ejoGDBgAW1tb/PzzzwZ7LvJsZRssT58+LXQUq1FcXIyRI0dCLpdj48aNWL16dYXFkJcuXTLY81F9ZTzGqq8szcGDB9GgQQM0a9YMFy9erPJ+Op2OFkOSOsnLy8PEiRPBcVyFBeQcx2HPnj31enyarzIemq8qr7S0FB999BE4jsPkyZNRWlpa6f0yMzPx008/mTgdEYOcnBy8+eabsLOzK/d5Wbbhvz6HWFD/bTzmNn9iDjZs2AAbGxu89NJLuHfvXqX3+fe//42lS5eaOBkRg/z8fAwePLjC4nGJRAJfX996zRlS/2081H9XFB8fD7lcjoEDB1b6vr1z5w6aNm2K5ORkAdIRA6IF5IQYW1ZWFhISEhAeHg6FQgGJRILQ0FDExsbiwoULQscTvbNnzyIkJARyuRyzZ8+mAeR6OnXqFIKDg6FQKDBnzhwUFxcLHcnslJSUYNOmTejRowc4joOfnx/mzJlDJyMS0Tt37hzCwsLAcRxGjRpFJ/FXY/369XBzc4Ovry8tXqknnU6HNWvWwNnZGf7+/ma1QLa4uBgLFy6Ei4sL3NzcsGTJEvq7SQTx4MEDjB49GhzHQa1WIz8/X+hIgnv06BEmT54MnufRu3dvulpAPeXm5uLdd98Fx3Ho378/rl+/bvDnOHjwIHiex8cff1zu+wUFBYiKioJEIkHv3r2p/jCR3NxcNG3aFF27dkVBQYHQcUyC6jfDMUX9lp2dDTs7O3AcBycnJ/1CWY1GA7VaDYlEgvj4eIM/L6mooKAANjY2YIwhOjpa6DhW4dGjR+jduzfs7e3x22+/6b//8ccfg+d5SCQSTJkyxSjPS/WV4ZiivrIUZRPW/fv3r/MJ0IRU548//kDTpk3h7OyM+Ph4rFixQn9apFQqxdSpUw32XDRfZVg0X1XetWvX0LVrV9jY2GDNmjVCxyEilJiYCHd3d3h7eyM2NhYSiaTcZpvff//dIM9D/bfhmPP8iVDy8vIwbtw4cByHqVOnVrnRpsyzbifkab/++isaN24MR0dHdOvWrdwVG3iex6FDh+r9HNR/Gxb13xXl5ORg+PDh+jmZ6q6iVNUmHGJRaAE5IaaUn5+PpKQkqNVqeHp6gjGGxo0bIzIyEikpKXTpOiPRarWIj4+Hvb09fH19aSdeHdy/fx+RkZGQSqXo2rVruUuTkKpdunQJ0dHR8PDwAM/zCAsLQ2JiIkpKSoSORojRbNu2DU2bNoVCoUBUVBRdeaMKOTk5UKvVYIwhLCzM6k/HqYvjx48jNDQUPM9DrVab7YkkZaf0q1Qq+Pn5IT4+nmo+IojExEQ4OzsjMDAQp06dEjqOWTh06BACAwMhl8sRGRlptp8j5kqr1SIhIQGenp5wcXEx+mLMTZs2VTlpc/jwYbRq1Qo2NjaIiYmx+oUDpnD58mW4u7tj4MCBVnPVJarf6s+U9duCBQugUqmQmppa4bbY2Fha0GwiiYmJ+kV4Xl5edLUII7t16xbat28Pb2/vCvWeTqfDm2++CQcHB6P26VRf1Y+p6ytzVlhYiLfffhscxyE6Opr6aGJwDx48gFqtBsdxCA8PL3d1nbITI5s1a2bwDZM0X1V/NF9V0bZt2+Di4oJWrVohLS1N6DhEZNLT09G7d2/94RRlJ5B++umn+g2KUVFRBn1O6r/rz1LmT0zp2LFjaNasGdzc3LB9+3ah4xCRuXPnjv4KbOHh4bhx4wYePnwIX19fSCQSSCQSxMTEGPQ5qf+uH+q/K3fo0CE0atQInp6etPHIetACckKEotFokJKSgujoaLRo0QKMMbi5uWHMmDFITExEXl6e0BFFJyMjQ3/64osvvkgLZ2qguLgYcXFxcHZ2hre3N9atW0eD9XVQXFyMxMRE9OrVCzzPo0GDBpg5cyauXLkidDRCjKKkpATx8fHw8vKCnZ0doqOjqWmtwu+//462bdtCJpMhKiqqXpd4tBYZGRkYO3YsOI5Djx49LObveUZGhv7Ey+Dg4Hpf/piQurh27RpeeOEFKBQKxMbGUl2H/10twNHRET4+PkhISKB/lxrYs2cP2rdvD5lMhqlTp5rFaZCFhYWYM2cOlEolgoKCcODAAaEjid7+/fuhVCoxYcIEoaOYFNVvtSdE/VZYWIi9e/dWefvatWshlUrx5ptv0oliRjRo0KByl7ZPSUkROpJonT9/Hn5+fmjdunWVp2WVlpaa5LLCVF/VjTnWV0K5ceMGOnfuDAcHB2zbtk3oOESEtmzZAh8fH3h6emLLli0Vbs/JyUHjxo1x/Phxo2Wg+arao/mqigoLCxEZGQmO4zBmzBg8fvxY6EhERIqLixEbGwsbGxu0adMGhw8fLne7RqNBaGgoWrZsiaKiIqNkoP679ix1/sSYdDod4uLiIJfL8dJLLyEzM1PoSEREtFotVq1apT/pf8eOHeVuP3TokH5e0BjjT9R/1w313xWVlpYiJiYGEokEQ4YMoUMCrQstICfEXKSlpWHevHkIDg4Gx3GwtbXFq6++irVr11IRa2CHDx9GSEgIOI7DsGHDaNdyJUpKSrBq1Sr4+flBqVRixowZtKnBQDIyMhAbGws/Pz8wxtCxY0fExcVRAUZEKS8vD3PmzIG9vT0aNGiA+Ph4OoG/EhqNBitXroS7uzscHR0RExODBw8eCB3L7Ny+fRuRkZFQKpUICAhAYmKi0JHq5Pz584iIiNCfnnL69GmhIxEro9Vq9QPmoaGh+PPPP4WOZBaysrL0mzwCAwOxefNmOiW1EgcPHsTLL78Mxhj69u1rlu+fv//+G/369dNPoGdlZQkdSdQSExPB8zwWL14sdBSTovqtZsy9ftu+fTtsbGwwaNAg5OfnCx1HdB4+fFjuUs0ymQwTJ04UOpYoHT58GG5ubnj++efN6tLBVF/VjCXUV6a0a9cuuLm5oW3btvj777+FjkNE5vLly+jbty84jsO4ceOqHZPPzc01SSaar3o2mq+q3MWLF9G+fXs4ODhg48aNQschIrNz5040b94cKpUK8+bNq3Je58aNGzhz5oxRs1D/XTPm3n8L5c6dO+jbty+kUiliYmJoYS0xqNTUVHTp0gVSqbTaE8C//PJLo/c21H/XDPXflUtPT0fXrl2hUqkQFxcndBxierSAnBBzlJmZiZUrV6Jv375QKpVgjCEwMBD/+te/8Msvv9CklgHodDps27YNQUFB4Hkeo0aNoh24+Oe0glWrVqFx48aQy+WYMGECMjIyhI4lSqWlpUhKSkJERASUSiWUSiWGDx+On3/+mU4/I6KTnZ2N6OhoKBQK+Pv7Iy4uzmgnUliyR48eYd68eXB2doaLiwvmzp1Lm0vwzyB0VFQUbGxs0KBBAyxbtgzFxcVCx6q33bt3o0OHDuB5HuHh4Th27JjQkYiVOXXqFDp27AilUlntRJC1uXDhAkaOHAme59G+fXv88MMP0Gg0QscS3B9//IF+/fqBMYbu3btj3759Qkd6pqSkJPj5+cHZ2RlxcXE0QWRECxYsAM/zVrlogeq3yllS/XbkyBG4u7ujc+fOtOHEwNasWQOJRKJfQM4Yg5OTE9UcBrZt2zaoVCoMHjwYBQUFQsepFNVXlbPE+sqYCgsLMXXqVHAch9dff51O0SUGVXaKrlKpRIsWLbB7926hI5VD81WVo/mqymk0Gnz11VewsbFBSEgI0tPThY5EROTSpUsIDw8HYwzh4eFm9f6i/rtyltR/m9p3330HNzc3NGvWjOZfiEHduHEDY8aMAcdxePnll5GWliZ0JD3qvytH/XfltFotVqxYAVtbWwQHB+Ovv/4SOhIRBi0gJ8TcFRQUIDk5GdHR0ejYsSM4joNUKkVoaChiY2Nx/PhxmgivB61Wi++//x5BQUH6k0B//fVXq9uNl52djXnz5sHT0xMKhQLvvPMOrl69KnQsq/HgwQMkJCQgLCwMHMfBxcUFarWaLu1MROfatWv6ExD8/PwQFxeHwsJCoWOZndzcXMyePRvOzs6wsbHBpEmTrPLUrdOnT+P111+HTCaDj48PvvrqK7NdEFFXWq0WP/zwA9q2bQuO4zBo0CCkpqYKHYtYkdLSUixcuFB/KdoDBw4IHclsnDlzBsOGDQPP82jUqBGWLFlidSecaTQaJCYmonPnzmCMoVu3bvjtt9+EjlUrjx8/RkxMDORyOYKDg2lg2IiioqIglUqxadMmoaMIguq3f1hq/fb333+jadOmaNKkCS5fvix0HNHo2bNnhQXkjDHs2rVL6GiisXTpUvA8j0mTJlnEhDDVV+Kor4zh/Pnz+lN0169fL3QcIjK7du1CkyZNYG9vj0WLFpn14S00X/UPmq+qWlpaGjp37gyFQoFPPvmENuYRgykbP1EoFGjVqhV+/fVXoSNVifrvf1hq/20Kly9fRq9evcDzPCZMmGB1PQcxnrLPSqVSiebNm5v1Sf/Uf1P//Sx//vknQkNDIZVKMXPmTKorrRstICfE0ty9exeJiYlQq9Xw8fEBYwzu7u6IiIhAfHw87b6vh5SUFISHh4PjODRr1gyxsbG4e/eu0LGM6vjx41Cr1bC1tYWDgwMiIyPpPSSw9PR0zJ07F82bNwdjDK1bt8bcuXPp8jlEVK5fv4733nsPCoUCfn5+WLFiBZ1IXonHjx8jPj4eLVq0AM/zCAsLQ2JioqhPjygsLERiYqJ+Q01QUBDi4+OtYqNBcnIynn/+eTDGEBoaiqSkJKEjESty5coV9OnTBxzHYcyYMbh165bQkcxGeno6IiMj9fWyWq3G8ePHhY5lVJmZmYiNjUVAQID+KgmWvrngzJkz6NWrFxhjGDp0KC0QNZIZM2ZAIpHgv//9r9BRBEP1m+XWb7dv30aHDh3g5eWFEydOCB3H4t29exc8z1dYPC6TyfD6668LHc/i6XQ6xMTEgOM4xMTECB2n1qi+Ekd9ZQg6nQ7x8fH6U3SpRiOGdOHCBUREROhP0b1+/brQkWqF5qtovupJJSUliI2NhVwuR5cuXXD+/HmhIxGRKCoqQlxcHDw8PODm5oaVK1daxMZEgPpvS+6/jaWkpARxcXGwtbVFUFAQDh06JHQkIhKFhYX4+uuv4enpCRcXF8TFxVnMYlvqv6n/flpBQYF+01hwcDBOnz4tdCQiPFpAToilu3LlCuLi4hAWFgaFQgHGGBo3bgy1Wo2kpCRqGOogLS0NkyZNgpOTE+RyOYYOHYotW7aIZtfupUuX8Omnn6JFixZgjKFTp06Ij4+3uh2HluDw4cOYPHkyvL29wRhDYGAgYmJicO7cOaGjEWIQd+7cQXR0NFQqFTw8PBATE4N79+4JHcvsaDQabN26Ff369YNEIoGnpyeioqJw5MgRUZxApNFosGfPHqjVajg6OkKhUGD48OFITk4WxeurrbIJwicXklvjvwMRxtatWxEQEAAHBwcsXLjQYgZBTSE7OxsLFy5Ey5YtwRhDx44dsXjxYmRmZgodzSDKrojTp08f8DwPLy8vfPTRR7hy5YrQ0QwqOTkZbdu2hUwmg1qtRlZWltCRRKdsEbm1nx5K9ZtlysvLQ9++fWFnZ4dffvlF6DgWLS4uDlKptMICcsYYVCoV8vPzhY5osUpLS/HOO+9AKpVi9erVQsepF6qvrFtWVhYGDhwIiUSC6Oho6j2Iwdy7dw+RkZGQSqXo2LEj9uzZI3SkeqH5KnLw4EG0atUKNjY2iI2NtZjFvcS8lZSUYNWqVfD19YWNjQ2mT5+OnJwcoWPVCfXfBAD279+PwMBAqFQqxMTEiHojATGdoqIiLFu2DD4+PlCpVIiKisL9+/eFjlUnwEdkxAAAIABJREFU1H8T4J85wEaNGsHOzg6LFi2iupKUoQXkhIjJ48ePsXPnTkydOhWtWrUCYww2Njbo1asX5s2bh/3799MJr7VQUFCAhIQEvPTSS5BIJLCzs8Nrr72GzZs3Izc3V+h4tXLmzBl88cUX6NChAxhj8PT0xJQpU2g3mYXQarVISUlBZGSk/soDjRs3RmRkJFJSUoSOR0i93bp1CzNnzoSLiwtUKhXeffddXLx4UehYZunGjRuYM2cOmjVrBsYYAgIC8OGHHyIlJcWsL8H7tKKiIiQnJ2PSpEnw8vICYwzPPfccFi1aRJsI/s/+/fvRp08fMMYQHByMTZs20YQ6MYmCggLExsbC1tYW/v7+SEhIoMmIp6SkpGDcuHFwdHQEz/Po1q0blixZYnGXy7179y4SEhIwaNAgKBQKKBQKDBo0CNu2bRP1501paSlWrFgBDw8PuLi4YPHixdQnG9i0adMgkUiwbt06oaOYBarfLEtxcTFGjx4NuVyO7777Tug4FqtDhw7gOK7SBeQcx5n1ZZ7NWV5eHvr16wdbW1vs+v/s3XdUVOf6PvyLKvZCUXpTpEoZBGkWIAoIUYNYsMYY1ESTqPkmOSmWGE3xJNFEjxFjBTURFBVUVJpU6b1KbwLSkT4z+/0jL/snURNN1M3A/VlrL9EDa12cwMwu13M/169zHeeFovOrocXX15eRl5dnNDU1mZiYGK7jkEGivb2d+eabb5gxY8YwKioqzNGjRxmBQMB1rBeGnlcNPXV1dcyGDRsYcXFxxsXFReSm6JOBSSAQMBcuXGCmTJnCLq6vqqriOtYLQ9ffQ091dTWzdu1aRkxMjJk/fz5TUlLCdSQyCPT09DCnT59mtLS0GGlp6UH3WknX30NPZmYm89prrzFiYmLMihUrBs3CAfLCUIGckMGsvLycOX78OLNy5UpGVVWVnfIze/ZsZufOnUxYWNigmVLwstXU1DCHDh1iZs6cyUhISDCSkpKMnZ0ds2/fPiYmJmbArWKtqqpifv/9d2b9+vWMiooKA4CRl5dnvLy8mNDQUFpJJsL6yuTvv/8++9926tSpzCeffMJERUXRf1si0h4+fMgcPnyYmTJlCiMuLs64ubnRFIW/kJKSwnzyySeMtrY2A4AZP3484+Hhwfz6669Mfn4+1/H6EQgETEZGBvPzzz8zrq6uzMiRIxkAzLRp05g9e/YMuLwDSUJCAuPu7s5ISEgwKioqzL59+5j6+nquY5EhoLS0lFm5ciUjLi7OWFpaMpGRkVxHGnC6urqYK1euMCtWrGDGjBnDAGCmTJnCbNmyhbl69eqA+119+PAhExYWxnz22WcMj8djxMXFmWHDhjHOzs7MqVOnRK508G+1tLQwn3zyCSMjI8Ooqqoy//vf/wbcdZ0o+/TTTxkxMTFmx44ddC73CDp/Ew1CoZDZuXMnIyYmxuzcuZPrOCKnqKjoqeVxAIykpCTz+uuvcx1T5NTU1DA8Ho+ZOHHioN5ums6vBrfi4mJ2ItymTZuYlpYWriORQaCjo4M5cOAAo6ioyIwdO5b55ptvBv3OvPS8anDr7u5m/vvf/zLjxo1jlJSUmLNnz3IdiQwCPT09zJkzZxgDAwNGQkKCWbt27aAv2tL19+DW1tbGfPHFF8zIkSMZNTU1xt/fn+tIZBBoa2tjfv75Z0ZdXZ0ZNmwYs3nz5kFdtKXr78GvtLSUWbNmDSMuLs6YmprScEryNBViDMMwIIQMCSUlJYiMjERERAQiIyNRXFwMaWlpTJ8+HdbW1rC2toaVlRUmTpzIddQBrbGxEbdv38bNmzcRHByM+/fvQ0ZGhv3/0dTUFEZGRtDR0YGkpOQryZORkYGsrCwkJCQgJiYGxcXFkJSUxPTp0+Hs7AwnJyfweDyIi4u/9Dzk1WEYBnFxcfD398fVq1dRVFQEWVlZzJs3D66urpg3bx4mTJjAdUxCnptQKERgYCB++OEHREZGYvLkyXjrrbfw5ptv0nvUUxQUFODGjRsIDg5GZGQkOjo6oKCgwL63T5s2DYaGhlBRUXnpWRiGQWlpKTIyMpCRkYG7d+8iNjYWzc3NGDt2LBwcHDBv3jw4OTlBTU3tpecZLMrKynDo0CEcP34cXV1d8PT0hJeXFywsLLiORga51NRUfPzxx7h9+zZcXFywY8cOWFpach1rwOnt7UVsbCyCg4MRHByM9PR0AICenh6sra1hbm7OvhaPHj36pefp7u5GTk4OsrKykJKSgtjYWKSkpIDP50NLSwvz5s2Ds7Mz7O3tMXLkyJeeZyCrq6vDDz/8gJ9++glycnLYvn07Nm7ciGHDhnEdTeSdOHECGzduxMKFC3H69GkMHz6c60gDCp2/DXw///wzPvjgA7z77rs4cOAA3VN5Rnv37sXu3bvR29v71M+RlJREbW0t3bN4RsXFxXBycoJAIEBwcDCmTJnCdaRXgs6vBg8+n4/Dhw/j888/h6KiIo4ePYo5c+ZwHYuIuM7OThw9ehTfffcdWlpasHHjRvznP/+BnJwc19FeKXpeNXgwDAM/Pz98/vnnqKysxLZt2/DJJ59g1KhRXEcjIqy1tRXHjh3DwYMHUVNTgyVLluDzzz+Hrq4u19FeKbr+Hjy6urrg7e2Nffv2obu7G//5z3/w3nvvQUZGhutoRISVl5fj0KFDOHbsGHp7e7F27Vp88sknr+Q1YaCg6+/Bpbq6Gvv378eRI0egoqKCPXv2YOnSpXT+TZ6mkgrkhAxhFRUVuHPnDqKjoxETE4OcnBwIhUJoa2uzF0zW1tYwNDSEhIQE13EHrMLCQsTExCA6Ohp3795FXl4e+Hw+pKWloaenB01NTWhoaEBTUxPq6uqQlZWFnJwcZGVlISsr+5dv0p2dnaivr0dDQwMePHiAmpoalJaWoqSkBKWlpSgoKEBVVRUAYMKECeDxeLCxsYGNjQ1mzJhBN5aGmOLiYoSEhCAwMBC3bt2CQCCAiYkJXF1d4ebmBjMzM4iJiXEdk5Dnkp+fj5MnT+L48eNoamrCnDlz4OXlhTfeeIPem56it7cXycnJiI2NRVRUFJKSklBZWQngj/cKXV3dfu9NSkpKkJWVhby8POTk5P72wr+5uRkPHjxAQ0MD6uvrUVVVxb4vlZSUIDc3F21tbRATE4OmpiYsLS1hbW0NW1tbGBkZ0X+3f6m9vR1nzpzBkSNHkJmZCRMTE3h5eWHFihUYM2YM1/HIIHb79m3s3LkTcXFxcHZ2xs6dO6lI/heampoQExOD2NhYREdHIz09Ha2trRATE4OGhgYmT57Mvharqamxr8V91wp/VV7m8/nsa3DfdUJZWRn7WlxYWIjCwkLw+XwMGzYMhoaGsLKygo2NDWxtbYfUje/nUVlZif3798Pb2xsKCgrYtm0bFclfgNDQUCxevBh6enq4fPkyFBQUuI40INH528AVEBAAT09PODs74+zZs7QQ4hno6uoiPz//bz/v+PHjWLdu3StIJNoSExPh6uoKdXV1BAUFDenXUTq/Ek3p6el4++23kZaWhm3btmH37t10fkX+le7ubpw+fRq7d+9GQ0MD1qxZg507d0JJSYnraAMCPa8STdeuXcPnn3+OjIwMLF++HHv37oW6ujrXsYgIq62txZEjR/DTTz+ht7cX69atw/bt26mQDLr+FlWdnZ3w9vbGt99+i+bmZmzatAmffvopZGVluY5GRFhycjIOHjyI3377DbKystiwYQO2bNlCP1eg629RVVZWhu+++w4nTpyArKws/vOf/8DLywtSUlJcRyMDGxXICSH/T0tLC+7evYu4uDjExsbi7t27aGtrw+jRo8Hj8WBubg5zc3NMnz4dWlpaXMcdsHp6epCTk4PMzEzk5OT0uyisq6t74teMHDkS0tLS7N9bW1shEAge+zxpaWmoq6uzJ2Pa2tqYNm0ajIyMoKys/NK+JyJ6WlpacOvWLVy7dg03btxAXV0dVFVV4eDgwB6KiopcxyTkmXV1dcHf3x/e3t6IioqCuro6PD094enpCUNDQ67jDXhNTU3IyMhAZmYmCgoKUFJSwr4/tbe3P/Frxo8fz34sFArR0tLyxM8bO3Zsvxuqurq6MDIyemWr0IeyuLg4eHt748KFCxATE8Mbb7yBVatWwd7enm40k5fm1q1b2L17N2JjY+Hg4ID3338f8+fPp8kFf6NvulBmZiaysrJQVFTEvg5XVFSAz+c/9jVSUlL9HrB3dXWhs7Pzsc8TExODoqIiNDU12ddjQ0PDVzplbjApLy/H3r17cerUKSgrK2P79u148803MWLECK6jiaycnBzMnz8fEhIS8PPzg6mpKdeRRAKdvw0ccXFxcHNzg46ODgIDA+lB4l/Iy8vDjBkz+t3T4vP56O7u7jcRSkxMDHPnzoW/vz8XMUXGrVu3sHjxYsyYMQMXL16k388/ofOrga2xsRG7du3CkSNHYG1tjaNHjw65aafkxWpoaMAvv/yCn3/+GW1tbdi4cSM++ugj2q3wb9DzqoGLYRgEBgbi66+/xt27d7FgwQLs2bMHRkZGXEcjIophGERERMDb2xuXLl2CnJwc3nvvPWzYsAHjxo3jOt6ARtffA1d9fT1++eUXHDp0CG1tbdiwYQM++ugjTJo0ietoRETV1dXh/Pnz8PHxQXJyMqZPn46tW7di8eLFVLL9C3T9PbDduXMHR48ehb+/P5SVlfHRRx9h3bp1tHibPCsqkBNCnk4gECA7OxuxsbFITExEUlIScnJywOfzMWHCBEyfPp0tlZubm9NKr2fQ3d2NhoaGfodQKER7ezt6enrYzxszZgwkJCQwfPhwdvqDnJxcv4tRQp6VUChEYmIigoODERoaivj4ePT09EBfXx/29vZwcHDArFmz6OeLiIzc3FycPn0a58+fR3l5OaZNmwZPT08sX76cJmj8A21tbewK74aGBrS1tQH4Y1JG36WChIQEO9167NixkJeXZ9+bqFDHvebmZpw7dw4+Pj64e/culJSU4OnpiVWrVmHatGlcxyODVEhICL7//nvcvHkT2tra2Lx5M958802ahP8PMAzDXhv0Td3o7u5Gb28vHj58yH6ejIwMhg8fDklJSXaaR99BN7dfvNLSUuzfvx8nT57EyJEj8e6772Lz5s2Qk5PjOppIqqurw7JlyxAXF4cDBw5gw4YNXEcSaXT+9uplZ2fD2dkZo0ePxo0bN+i64zn8+uuv2L59+1MLFeTJTp06xe405O3tTe/1z4nOr7jD5/Pxyy+/YOfOnZCSksLevXuxbt062hWR/GNFRUX48ccfcerUKUhJSWHDhg3YunUrFcdfAHpexY3e3l6cP38e3333HXJycuDq6orPP/8cFhYWXEcjIqq+vh6nTp3CsWPHUFBQACsrK2zYsAHLly/vtxiE/DN0/c2NnJwcHDhwAL6+vhg+fDi8vLzwwQcf0Ps/+Uc6Oztx5coV+Pr64ubNmxgxYgTc3d3x1ltvwcbGhut4Io+uv7nR1NSEM2fO4OjRo8jNzYWlpSXeeecdLF++nP7/JM+LCuSEkOfT0dGBtLQ0JCUlsUd+fj6EQiEUFRXZMrmZmRlMTEyoVE7IANTe3o6oqCiEhYUhNDQUaWlpEBMTg5mZGezt7TF79mzY2NjQyncy4DEMg+joaJw7dw5+fn5obGyEra0tli9fDg8PDyp4kSHp3r178PX1ha+vL4qLi2FkZISlS5fCw8MDOjo6XMcjg1BhYSF+/fVXHD16FAKBAMuXL8cHH3wAPT09rqMR8kLU19fj0KFDOHz4MNra2rBkyRJ89tlnmDp1KtfRRI5QKMT+/fvx6aefYuHChThx4gTGjh3LdSxCnll1dTVcXFzw4MEDXL9+HcbGxlxHEglUIH9+3377LT755BN8/PHH+Prrr6l4S0RGaGgotm7diry8PGzatAlffvklvdeTfyw5ORkHDx7E+fPnoaKigo0bN9IUXSLSWlpacOLECRw8eBBVVVVYtmwZPv74Y9pdk/wjQqEQ4eHh+PXXXxEQEAAZGRmsXLkSGzZsoCn2RKRFR0fj22+/xbVr16ClpYUtW7Zg/fr1/Xa0IuRZ1NfX4/r16wgKCkJwcDA6OjowZ84crFq1Cu7u7vQzRUQSn89HeHg4zp49iwsXLkBSUhKenp7YuHEjTExMuI5HRBcVyAkh/15bWxuSk5P7lcqLi4vBMAxkZWVhamoKY2NjmJiYwMTEBLq6urTNCCEDSENDAyIiIhAaGoqwsDDk5+dDQkICJiYmsLW1xcyZM2FrawsFBQWuoxLyVAKBAOHh4Thz5gwCAgLQ0dEBKysreHh4wN3dnRY0kSGHYRjExMTg3LlzuHjxIurq6mBiYgIPDw94eHhgypQpXEckg0xLSwt+/fVXHD58GGVlZXBxccH7778PBwcHKj2RQaG7uxu///479u7di8LCQri4uOCzzz7DjBkzuI4mcsLDw+Hp6YkxY8bAz8+PdssgIqW5uRkLFixARkYGrly5gpkzZ3IdacCjAvmzEwgE2Lx5M44dO4ZDhw5h48aNXEci5Jncu3cPn332Gfz8/ODq6ooDBw5AW1ub61hEBAmFQly7dg3ffvstYmJiYGZmhvfffx+enp70TImIrIKCAvz88884ffo0GIbB2rVrsX37dmhoaHAdjYignJwc+Pj4wNfXF5WVlbCyssLbb7+NpUuX0qRrIrLa29tx/vx5HDx4EFlZWbC3t8fWrVvh4uICcXFxruMREcEwDDIyMnD9+nVcvXoVCQkJGDZsGBwcHPD6669jwYIF1HUgIkkgECAiIgIXLlzApUuXUF9fD3Nzc6xfvx6enp40FJK8CFQgJ4S8HG1tbUhPT0dOTg6ys7ORnJyMlJQUdHZ2QkpKClOmTAGPxwOPx4OBgQFMTU0hKyvLdWxCCIDa2lokJCQgJiYG0dHRSEhIQG9vL7S0tGBjYwNbW1vY2NjAwMCA66iEPFF7ezuuX7+OS5cu4dq1a3j48CEsLS2xaNEiuLu700NMMuQIBALcuXMHfn5+uHjxIh48eAATExMsXLgQrq6uMDMzo4IveWGEQiHCwsJw8OBBXLt2DSoqKvD09MTbb79Nr79kUODz+fD398f+/fuRkpICe3t7fPjhh3BycqLX0ufQN3EvJSUFhw8fxtq1a7mORMgz6+7uxpo1a3D58mWcPn0aS5cu5TrSgEYF8mfT0dGBpUuXIiQkBD4+Pli8eDHXkQj5W3V1ddizZw+OHj0KPT09/Pjjj7C3t+c6FhFBXV1duHDhAvbt24d79+6xC5IdHR25jkbIPyIQCBAcHIzDhw8jODgYmpqaePfdd/HWW2/RzgzkuTU1NcHPzw9nzpxBTEwMlJWV4e7ujnXr1tGuSESkpaamwtvbG+fOnUNPTw+WLVuGDz74gH6uyTMrLi5GSEgIoqOjERYWhqqqKsjJycHZ2Rlubm5wcnKici0RSb29vYiMjIS/vz/7XNfU1BRLliyBh4cHPWsjLxoVyAkhr05vby9yc3ORlpbW72hqaoKYmBg0NTVhaGgIAwMDGBkZwcDAALq6upCWluY6OiFDWmtrK6KjoxEdHY2oqCgkJiaiu7sbKioqmDFjBqysrGBpaQkzMzMMHz6c67iE9NPd3Y3bt2/j0qVLuHr1KhoaGjBt2jQsWrQIrq6u4PF4VPYiQ0rfSnU/Pz8EBQWhqqoKSkpKmD9/PlxdXeHo6EjTasgLk5WVhZMnT+LcuXOora2FnZ0d1q5di8WLF9ONWzIohISEYP/+/bh9+zZ0dHSwZcsWrFmzBqNGjeI6mkjg8/n46quvsGfPHri7u+OXX37BhAkTuI5FyDNhGAYfffQRvv/+e3z33Xf48MMPuY40YFGB/O81Njbi9ddfR25uLq5evQobGxuuIxHyl9rb2/HDDz9g//79GD16NHbt2oV169ZBQkKC62hExFRUVODIkSM4evQoOjs7sWbNGmzduhU6OjpcRyPkHykvL8eJEydw4sQJVFZWwt7eHlu2bIGbmxtN0SXPpampCZcvX8aFCxcQGhoKGRkZuLu7Y/Xq1Zg1axb9PBGR1dXVhcDAQHh7eyMkJAQ6OjpYt24d1q1bB3l5ea7jkQGuoKAAcXFxiIiIQFhYGMrLyzFq1CjY2dnBwcEB9vb2MDY2ptdIIpJqampw69YtBAUF4fbt22huboa+vj48PDywfPlyTJ06leuIZPCiAjkhhHtlZWVIT09HZmYmMjMzkZ2djfz8fPT29kJKSgo6Ojr9SuVGRkbQ0tKiEz9CONLV1YXExERER0fj7t27iI+PR21tLaSkpGBiYoIZM2bA0tISVlZW0NLS4jouISw+n487d+4gICAAV69eRUVFBSZNmgQXFxe4uLhg7ty5VGgkQ052djaCgoIQGBiIuLg4SEtLw9bWFq6urli0aBHU1NS4jkgGgb6p5GfOnMHFixchFArh5uaGVatWwdnZmbYiJyKvoKAAhw8fxvHjxyEhIYFly5Zh69at0NXV5TqaSAgJCcHatWshEAhw4sQJODs7cx2JkGd28OBBbNu2DZs3b8aPP/5I96qegArkf620tBROTk7o7u5GcHAwPRAkAxqfz8eJEyewa9cutLW14d1338Vnn31G91LIc2EYBuHh4Th8+DCuXr0KOTk5bNq0Ce+88w7k5OS4jkfIc+vp6cG1a9fw66+/4ubNm5CTk8OaNWuwfv16TJkyhet4RIQ0NzfjypUruHDhAkJCQiAuLo558+ZhyZIlWLhwIQ39ICItJSUF3t7eOH/+PHp6euDu7g4vLy/MnDmT62hkgOrq6kJSUhJiY2MRExODuLg4PHjwADIyMrCwsGAL45aWlpCSkuI6LiHPraurC1FRUQgODkZwcDBycnIwcuRIzJkzB05OTnB2dqauDXlVqEBOCBmYent7kZeXh+zsbLZUnpmZidLSUgiFQowYMQL6+vowNDSEnp4ee2hqatKkE0I4UFJSgri4OMTHx+Pu3btITU1Fb28vFBQUYGlpCUtLS0yfPh08Hg+ysrJcxyUEwB9bmwUGBiIoKAh37tyBUCjEjBkz4ObmBjc3N+jr63MdkZBXqr6+HuHh4QgMDMTVq1fR0tICLS0tuLq6ws3NDbNnz6aiL/nXmpqa8Pvvv+PMmTOIi4uDiooKVq5ciWXLltH2pETktbS04NSpU/jxxx9RUVEBe3t7vPfee3B1daUdT/5Gc3Mz3n33XZw/fx5vv/02fvzxR3o4TkSGr68v1q1bh6VLl+L48eO0k96fUIH86TIzM+Hs7IwJEybgxo0bUFZW5joSIU/EMAwCAgLw6aefoqSkBBs2bMAXX3xBUyLJc2lra8P58+dx6NAhZGZmgsfjwcvLC6tWraJdLYlIio+Ph4+PD3777Tc0NTXhtddew9tvv43XX3+dimzkmdXX1yMoKAgXL17E7du3AQDz5s2Dh4cHXn/9dYwZM4bjhIT8c9XV1fDz84OPjw+Sk5Np2jh5KqFQiLy8PCQnJyMpKQmJiYlITk5GT08PJk2aBGtra9jY2MDKygo8Ho/uuxCR1NXVhYSEBNy5cweRkZGIjY1FR0cHDA0N4eTkhHnz5sHOzg7Dhg3jOioZeqhATggRLe3t7cjJyelXKs/Ly0NFRQUAYNiwYdDV1cXUqVPZUrmuri50dXXpjZaQV6irqwvJycmIj49HXFwcEhISUF5eDgDQ1NSEubk5e5iZmWHcuHEcJyZDXUNDA4KDgxEUFISbN2+iqakJkydPxmuvvYbXXnsN9vb2GDt2LNcxCXlluru7cefOHQQFBeHatWsoLi6GvLw8nJ2d2ckOKioqXMckIi4/Px8+Pj7w8fFBeXk5tLW14e7uDnd3d0yfPp0Kt0Rk8fl8XL58GT/99BOioqIwbdo0vPfee/D09KRyzN/w8/PDhg0boKSkBF9fX5iYmHAdiZBnEhoaijfeeAPm5uYICAigoscjqED+ZPQzQ0TFjRs3sGPHDiQnJ2PJkiXYu3cvtLW1uY5FRMi9e/dw/PhxeHt7o6OjA6+//jq2bt0KKysrrqMR8txKS0tx9uxZ+Pj4ID8/H3p6eli9ejVWrFgBVVVVruMREVFUVIQrV67gypUriImJgZSUFF577TUsXrwYCxYsoOcQRKS1tbXh0qVL8PX1RVhYGMaOHQsPDw+sWrUKtra2XMcjAwDDMCgoKGDL4snJyUhJScHDhw8hLS0NY2NjTJ8+HVZWVrC2tqYJzERkdXR0IC4uDpGRkYiIiEBCQgK6urqgpqaGWbNmYdasWZg7dy6dQ5KBgArkhJDBoa2tDXl5ecjNzUVubi7y8vKQk5OD4uJi8Pl8SEhIQENDo1+pXE9PDzo6OjQNmZBXpK6ujr0QTEpKQlJSEqqrqyEmJobJkyfD3NwcPB4P5ubmMDU1pYenhDN8Ph9xcXG4efMmbt26hZSUFIiJicHCwoItlFtaWtIkZjKk5OTkICgoCMHBwYiLi0NXVxd0dHRgb28Pe3t7zJ49m6aGkH8lOzsbfn5++O2335Cfnw9VVVU4OzvD1dUVzs7O9JpLRFZaWhqOHDkCHx8fSEtLY+nSpdiyZQsMDQ25jjZglZaWYvXq1UhISMCePXuwbds22mmMiASaJv1kVCB/HE2tJ6IgOjoaX3zxBSIiIuDo6IhvvvkGPB6P61hERAiFQoSFheHgwYO4du0aNDU14eXlhbfeegtycnJcxyPkuZSVleHy5cvw8/NDbGwsxo0bR2VI8lyEQiGSk5PZ0nhWVhYmTJgAFxcXLFy4EPPmzcOoUaO4jknIPyYQCBAeHo4zZ84gICAAPT09mDt3Ljw8PLB48WLaYW4Ia29vR1ZWFtLT05Geno6MjAxkZGSgtbUVUlJSMDQ07NcPmDZtGu3iQURWRUUF4uPjER8fj9jYWCQmJqK3txfa2tqYOXMmWxrX0NDgOiohf0YFckLI4Nbb24uKigpkZ2ezhfLs7Gykp6fj4cOHAICPhWHhAAAgAElEQVTx48dDS0uLPfT19WFgYAAdHR2MHj2a4++AkMGturoaycnJ7JGYmIja2loAgKKiIng8Hng8HgwMDKCvrw99fX2aRkpeuYaGBoSFheH27du4desWysrKMGbMGNjb28PR0RGzZ8+mn00ypPD5fKSnpyMkJAQhISGIjIxET08PtLS04OjoyB7jx4/nOioRUX1l8qCgICQnJ0NWVhYuLi7w8PDAvHnzqGRFRFJdXR2OHz+OY8eOobS0FLNnz8bGjRuxcOFC+pl+AoFAgP/+97/YtWsXDA0Ncfz4cUybNo3rWIT8rdLSUjg5OaG7uxvBwcGYOnUq15E4RwXy/g4ePIht27Zh8+bN+PHHHyEuLs51JEL6iYuLwxdffIHQ0FDY2Nhg3759mDlzJtexiIioqanByZMn8csvv6CyshLz5s3D5s2b4eTkRK93RKQUFBTA398f/v7+SE1NhaysLBYuXIjFixfDwcGBym3kbzU2NiI0NBQhISEICgpCdXU11NTU4OTkBFdXV7q/RUSeQCBAZGQk/P39cfHiRdTV1cHa2horV67EkiVLMGHCBK4jkldIKBSitLQU2dnZyMjIYAvjhYWFEAqFGD16NAwNDWFsbAxjY2OYmZnB2NgYw4YN4zo6If9IW1sbEhMT2cJ4QkIC7t+/DwkJCRgaGsLKygp2dnaYNWsWDZggooAK5ISQoUkoFKK8vBwFBQW4d+8e8vPz2Y/LysogEAgAAKqqqpgyZQqmTJkCHR0d9tDU1KQbRIS8JOXl5UhNTUVaWhrS0tKQnp6OkpISAICcnBxMTEz6HVOnTqWppOSVKigowO3bt3H79m2Eh4ejtbUVCgoK7MphKpSToaa9vR1xcXFsoTw1NRViYmIwMTGBo6MjbGxsMHv2bFqYR/6RvLw8XLx4EZcuXUJKSgomTJgAJycnzJ8/H3PnzqXpdUTk9E1j9Pb2RkBAAGRlZbF27Vps2LABmpqaXMcbcAoLC/H2228jOjoa27dvx+7du+nhEhnwGhsb8frrryM3NxdXr16FjY0N15E4RQXyPzAMg48++gjff/89vvvuO3z44YdcRyKkn9jYWHz55Ze4efMmZs6cia+++gp2dnZcxyIiQCAQIDg4GMePH0dQUBBGjRqFN998E++88w60tbW5jkfIMysuLkZgYCD8/PwQExPTbzG7k5MTPRMkf4lhGKSmpuLGjRu4ceMG7t69CzExMVhbW8PZ2RnOzs4wNjbmOiYh/4pAIEBERAT8/f1x6dIl1NXVYdq0afDw8ICnpye0tLS4jkhesqcNb0xLS0N7ezuA/zcgrm84HI/Hg56eHi0mJCKro6MDGRkZSE1NRVJSEuLj45GbmwuhUAgVFRVYWlqyB4/Hw8iRI7mOTMjzogI5IYT8Wd+Jb3FxMXvS23cCXFJSAoZhICkpCTU1tX6Ty/uOqVOn0lZjhLxgzc3NbKG8r1SenZ2N3t5eDB8+HAYGBjAyMoKhoSGmTZsGQ0NDTJo0ievYZAgQCATIy8tDTEwMW55tamqCvLw8LC0tYWtrC0dHR5iZmVGhnAwZDx48QEREBMLCwhAWFoaCggIMGzYMM2bMgK2tLaysrGBtbU0TyslzKykpwaVLl3D9+nVER0dDIBBg+vTpcHFxgbOzM8zMzOhGNBEp1dXV8PHxwf/+9z9UVlbC3t4eXl5eWLRoES2QfATDMDh27Bg+/PBDTJo0CceOHcOsWbO4jkXIX+ro6MDSpUsREhICHx8fLF68mOtInKECOdDd3Y01a9bg8uXLOH36NJYuXcp1JEJYERER2LNnD8LCwmBjY4Ndu3bB0dGR61hEBFRVVcHX1xe//PILSktLwePx4OXlhZUrV2LEiBFcxyPkmWRkZLDTc3NycqCoqIg33ngDixcvhp2dHSQkJLiOSAawqqoq3L59GyEhIQgNDUVNTQ0UFRXZwvhrr72GsWPHch2TkH9FIBAgLi4Ofn5+uHDhAmpqaqCvrw8PDw8sW7YMurq6XEckL0FLSwvy8vKQk5ODvLw89uOSkhIIBAJISEhAU1MT+vr60NXVha6uLvT19aGnp4cxY8ZwHZ+Qf6yxsRGpqanssMPU1FTk5+dDIBBg7NixMDMzg6WlJSwsLGBpaQklJSWuIxPyIlCBnBBCnkdbWxs7qbywsBBFRUUoKipCYWEh7t+/DwAQExODsrIytLW1MXnyZGhra/f7mG4WEPJi9PT0sKuaMzMz2aO2thYAIC8vDyMjo37FcgMDA1r1SV6qpxXKx4wZAwsLC9jY2MDW1ha2traQkZHhOi4hr0RlZSXCwsIQERGB2NhY5OfnQ0xMDHp6erC2toaNjQ2sra2ho6PDdVQiQjo6OhAbG4vAwEAEBASgoqICcnJymDNnDlxdXeHq6kpbpRKRIRAIEB4ejoMHD+LatWtQVFTEqlWrsH79ekyePJnreANGaWkpvLy8EBYWhi1btmDPnj20eJsMaAKBAJs3b8axY8dw6NAhbNy4ketInBjqBfLm5mYsWLAAGRkZuHLlCmbOnMl1JEIAANHR0di5cydbHP/444/h5ubGdSwywPX09ODmzZvw8fHBpUuXIC8vjyVLlsDLywsGBgZcxyPkbz16L+HKlSsoKyuDiooKXFxc4OrqCmdnZ1rMS56qtbUVERER7H3/3NxcyMjIwMbGBq+99hrmzp0LExMTGiRDRF57eztu377NvlY2NDTAzMwMixcvhoeHB92rGkSampoemybeVxRnGAbS0tJQUVGBvr4+O1HcwMAAenp6tGCQiDShUIiSkhJkZWUhPT2dLY2XlZUB+GOSvomJCUxNTdlDS0uL3uPJYEUFckIIeVE6Ojr6lcr7iuVFRUUoLy+HQCAAAMjJyUFbWxtaWlpQV1eHhoYGe6irq1OhkJB/6cGDB8jIyEBWVhZ70p+Tk4P29naIi4tDU1MT06ZNg56eHvT09NiV0VQ+IS+DQCBASkoKoqKiEB0djdjYWNTW1kJGRgbTp0+HjY0NW56loiMZKlpbW5GQkIDo6GjExMQgJiYGnZ2djy20sLGxwfDhw7mOS0REeno6u01wbGwsGIaBlZUVO/HJzMyMJocRkXDv3j2cOHECZ86cwf379zFr1iysW7cO7u7u9GAGf0wjP3nyJD788EOMHDkSP/zwAzw8PLiORchf+vbbb/HJJ5/g448/xtdffz3kHjYN5QJ5dXU1XFxc8ODBA1y/fh3GxsZcRyJDHMMwCAwMxFdffYXExEQ4OTnh888/h42NDdfRyACXn5+PkydP4uTJk6ivr2d3zlm4cCGkpKS4jkfIX8rLy8P169dx48YNREVFobe3FzweDy4uLnBxccH06dOH3PkZeTZtbW2Ijo5GdHQ0IiIikJCQAKFQCBMTEzg6OsLR0RG2trZ0/5IMClVVVQgKCsLVq1cRFhaGnp4eTJ8+HYsWLcLixYuhra3NdUTyDzAMg6qqKhQVFaG4uLhfj6WgoIC9Th8/fny/5+Z9k8U1NDRox08i8qqrq5GVlYXMzEzk5OSwf7a3t0NMTAxaWlr9iuKmpqa00z0ZaqhATgghr0JPTw9KS0v7nZSXlJSgtLQUpaWl/R6iKSoqQlNTs1+p/NGPhw0bxuF3Qoho6ltF2lcsz8zMRF5eHvLz89HT0wMAUFNTw9SpU9kL5KlTp0JfXx8TJ07kOD0ZbO7du4eYmBi2PJufnw8A0NfXh7W1NaysrGBhYQE9PT26MUOGBD6fj/T0dERHRyM5ORmRkZEoKyuDpKQkjI2NYWNjAx6Ph1mzZkFdXZ3ruEQENDc34/bt27h+/TqCg4NRU1ODcePGYebMmbC3t4e9vT0MDQ3pATEZ0IRCIcLCwuDt7Y0rV65ARkYGCxYswOrVq+Ho6Mh1PM41NjZi9+7dOHToEGbNmoVDhw5BX1+f61iEPNWpU6fg5eWFFStWwNvbe0iV7YZqgTw7OxvOzs4YPXo0goODoaqqynUkMoT19vbi/Pnz+O6775CTk4P58+fjiy++gIWFBdfRyADW0tICPz8/nDx5ErGxsdDU1MS6devw5ptvQllZmet4hDxVZ2cnuzvklStXkJeXhwkTJsDBwQGOjo5wdXWFkpIS1zHJAPTgwQNER0cjMjISUVFRSEtLg0AggK6uLuzs7ODg4AAHBwfIyclxHZWQFyI7OxtBQUEIDAxEbGwsO1Hf1dUVHh4e9FopIrq7ux/rofSVxYuLi9HV1QUAGD58ODvkUFtbGzo6OvQsnAwqDx48QE5ODlsSz87ORlZWFhobGwEAkyZNgqGhIQwNDWFgYIBp06ZBX1+fhgwSQgVyQggZGDo7O3H//n0UFxc/dhQVFaG5uZn93PHjx0NLS6vfoaioCCUlJejq6mLkyJEcfieEiJ7q6mrk5OT026IrIyMDdXV1AIBx48axF9SPbtGlq6tLk0zJC1FfX4/Y2Fh2QnlKSkq/acyWlpbsoaCgwHVcQl6J6urqfgstUlNTIRQKoaioCB6Pxx4zZsyAvLw813HJAFdcXMxuLxwaGorGxkbIy8tj9uzZ7MR7MzMzKpSTAauurg6+vr44ceIEsrOzYWBggHXr1mHlypVD/twgKSkJ77zzDtLS0rBp0ybs3buXbvqTAevWrVtYvHgxZsyYgYsXL2L06NFcR3olhmKBPCIiAosWLYKenh4CAwMhKyvLdSQyRLW1teHEiRP4/vvvUVNTg2XLluGjjz6CoaEh19HIAMXn8xEcHAwfHx9cvXoVALBgwQK89dZbcHBwoEEHZMDKz8/HzZs3cf36ddy5cwfd3d0wNTWFs7MznJ2dMWPGDLqXTx5z//59dsJ43/1HANDV1WV3R5wzZw4tBCSDRktLC0JDQ9nXy8rKSqioqMDV1RVubm6wt7enndIHqK6uLhQVFbHPsR89ysrKIBAIADy5R9J30DRxMhjw+XyUl5ejuLi4X7cjKysLNTU1AICxY8di8uTJ/Xod06dPp6nihDwdFcgJIUQUvKiCuZ6eHm17Tsgzampq6nfh0fdxSUkJGIaBlJQUVFVV+118GBgY0EIO8q/19vYiIyMD8fHx7FFQUACGYaClpcWWyS0sLGBiYkJbZJIhobW1FXFxcUhMTERSUhKSkpJQVVUFMTExaGtrw9zcnD3MzMyGTCGLPD+hUIjc3Fx2GtmtW7fQ0tKCSZMmwc7ODo6Ojpg7dy40NDS4jkrIEyUnJ+PMmTPw9fVFS0sL5syZg1WrVsHd3X3InoPy+XwcPnwYO3bswIQJE3DgwAEsWLCA61iEPFFiYiJcXV2hrq6OoKCgIbEIZKgVyAMCAuDp6QlnZ2ecPXuWrtcIJ2pra3HkyBH89NNP6O3txbp167B9+3aoqalxHY0MUNnZ2fDx8cGpU6dQW1sLHo+HVatWYcWKFTRplwxIfYMHQkJCcPPmTZSVlWHkyJGYM2cO3Nzc4OLiAhUVFa5jkgGmuLiYLYtHR0cjJyen3w6Itra2cHBwwIQJE7iOSsgLIRQKkZycjJs3b+LWrVuIi4sDwzDg8XhwcXGBm5sbTE1NaajGANDe3o6ysjKUlZWhvLycLcj2TRTvm6AsISEBNTW1fpPEH/14zJgxHH8nhLwYjY2NKCwsRH5+PnJzc5Gfn4+8vDwUFhY+trt83w7zU6dOha6uLu2WRMjzowI5IYQMBo2NjSgtLX3sKCkpQWlpKR4+fAgAEBcXh5KSEjQ0NKCpqQkNDQ2oqqpCWVkZampqUFFRwbhx4zj+bggZ2FpbW5Gfn4+cnBzk5eUhLy+PLZnz+XyIi4tDQ0MDurq60NPTg66uLnR0dKCtrU0XLOQfa21tRUZGBntzOz4+Hg8ePICEhASmTp3abyIzj8ejkgIZEpqampCcnIzo6GgkJycjKSmJnTDQN6m8b1qQqanpkC1Wkr8mEAiQlpbGTiiPjo5GV1cXFBUV2Z8fW1tbmJqa0oQWMqB0dHQgICAAZ8+exa1btzBy5Ei4u7tj1apVmDVr1pD8eb1//z7+7//+D+fOnYO9vT2+//57GBsbcx2LkMcUFxfDyckJAoEAwcHBmDJlCteRXqqhVCD/6aefsHXrVrz77rs4cODAkHwtJtxKS0vDwYMHcf78eYwfPx7vvfceNm3aRPd7yRNVVVXB398fp06dQlpaGtTV1bFs2TKsX78ekydP5joeIf2Ul5cjIiICYWFhCA8PR3l5OYYPHw5ra2vMmTMHc+bMgYWFBSQlJbmOSgaInp4epKWlIT4+HtHR0YiMjERNTQ1GjBiBGTNmYObMmZg5cyYsLS1p8BYZVOrq6nDnzh2EhIQgKCgI1dXVUFBQwKxZs+Do6Ag3NzcoKipyHXPIqampYYvh5eXlj5XFGxoa2M8dN24c1NTU2EGBj5bENTQ0ICUlxeF3QsiL09TU9MQBmn0HgMcG+vXtGG9sbEyDpAh5cahATgghQ0FDQ8NTC+aVlZX9HuKNHDkSampqUFZWhrKyMtTV1R/7ePz48Rx+N4QMTL29vaioqHhsanlGRgba2toAANLS0lBRUWEv+h+92FFXV6dtNMlzKSoqYkuzycnJSE5ORktLC6SkpGBoaAhzc3PweDyYm5vDyMgI0tLSXEcm5KWrqKhgJ5T3HY2NjZCUlIS+vj77O2FiYgIjIyO6wUQe09nZidjYWERFRSEmJgZ3797Fw4cPMX78eNjY2LCFcnNzc9rSlQwYjY2N8Pf3x5kzZxATEwNlZWW4u7tjzZo1MDMz4zreK5eQkIBt27YhLi4OK1aswLfffksPR8mAU1tbi/nz56OyshLXrl0Dj8fjOtJLMxQK5AzDYPfu3fjyyy+xY8cO7Nq1i+tIZAgRCoUICgrCgQMHEB4eDgMDA3zwwQdYtWoVhg0bxnU8MsB0dnYiKCgIZ86cQXBwMEaNGgU3NzesXr0aDg4ONIGUDBi1tbWIjIxkF3o/Oina0dERjo6OsLW1petyAuCPc7GCggIkJCSwR1paGnp6etj7OXZ2drCzs4O5uTmVL8mg0traisjISISHhyM0NBQZGRmQlpaGnZ0d5s2bh3nz5sHIyIjrmINaT08P6uvrH9tNvrq6Gvfv30d+fj477A/ov5t83y7yj+4sTz0MMpjU1tay0/Tv3buHwsJC9uibrC8tLQ1NTU1MnjwZU6ZMweTJk9lDQ0OD+hOEvHxUICeEEAJ0dXWhurqavZB59KLm0Y/7yMjIQElJqd9FzZ8/VlRUpBvOhPz//ryCtq9kXlhYyD5E71tB++hNgr7DwMCAboaTZ1JdXc2WyZOTkxEbG8uWZ3V0dGBgYNCvREtlKjIUFBcX9yuUp6SkoKWlBWJiYtDS0oKJiQmMjY0xbdo0GBsbQ0NDg+vIZAARCATIy8tjd4CIjIxEWVnZY1scz5kzh7Z2JwNCTk4Ozp49C19fX5SXl8PExASrVq3CkiVLhtQW7gzDwN/fHx9//DFqa2uxZcsWfP755xg1ahTX0QhhPXz4EEuWLEFkZCT8/Pzg7OzMdaSXYrAXyHt6evDmm2/C398fJ06cwIoVK7iORIaIhw8f4ty5czhw4ADy8vLg4OCA9957D66urnRPlvTT2dmJ69ev4/fff8e1a9cgEAjg4uKC1atXw8XFhQYOkAGhrKyMve4ODw9HXl4epKSkYGFhwU4Yt7Kyol0XCQCgubkZSUlJ7K6Ed+/eRX19PXsPvG9HOR6PBz09PdoVhgwqHR0d7GtleHg4kpOTIRAIYGhoCHt7e8ydOxezZ8+myfoviFAoRG1tLaqqqlBdXd1vanjfJPGamhr01e6GDx8OdXV1qKmpsYe6ujr7byoqKrSIhQwq3d3dqKqqeuIE8Xv37qG1tRXA03sQ+vr6mDp1Ku0iQwi3qEBOCCHk2TxLyfzRC6Rhw4ZBWVmZSuaE/I1n2Z5JUlKy33Zljx66uroYOXIkx98FGaiEQiEKCgqQmpqK9PR0pKenIyMjA9XV1QAARUVFtjTbd9CFOhkK+hZb5OTkIDs7G8nJycjLy4NQKMSYMWNgZGTUb8GFmZkZ3XQnrKKiIvbBdkxMDHJzcwEAenp6sLS0ZA9DQ0N6PSWcEQqFiIqKgq+vL/z9/dHa2gobGxssXboUixcvxsSJE7mO+Ep0dnbixx9/xDfffINx48bhq6++wsqVK6lAQAYMPp+PTZs24dSpUzhy5AjWr1/PdaQXbjAXyB8+fAgPDw9ER0fDz88PTk5OXEciQ0BeXh6OHj2KkydPgs/nY9WqVXj//fehq6vLdTQygHR3d+PmzZv4/fffcfXqVXR2dmLWrFlYsmQJPDw8MGHCBK4jkiGst7cXqampiIuLQ0xMDGJjY1FVVQUpKSnweDzMnj0bs2fPhq2tLd33Jmhvb0dqamq/oSm5ublgGAaKior9yuK0WxwZjPh8PtLT0xESEoKQkBBERUWhu7sbWlpacHR0hI2NDezt7YfU0IAXpbu7Gw0NDY/1Hh7tP1RUVKC3t5f9mvHjxz9xanjfv2loaNA9JzKo9PT0oLKyEuXl5SgtLUVJSQnbYSgpKek3hFJBQYH9ndDU1Oz3p4qKCk0SJ2TgogI5IYSQF6e9vR3l5eWorKxEVVXVEz9ubm5mP3/48OFQVVWFsrIyVFVVoaqqCiUlJSgrK2PSpElQVlbGxIkTaSUuGbKamppQVFTUbzunvqO2thYAIC4uDlVVVXYrJ21tbUyePBlaWlrQ0NDA2LFjOf4uyEDU3NyMrKysxwq0XV1dkJKSwpQpU8Dj8dgCrYWFxZApmpGhq62tDQUFBezvQ3JyMtLS0tDe3g4JCQmoq6uzhfK+3w8tLS2uY5MBoKGhAbGxsYiJiUF8fDySkpLw8OFDjBgxAmZmZrC0tISFhQUsLS2hrq7OdVwyBHV3d+PWrVvw8/PD5cuX0d7eDisrK3h4eGD58uVQUFDgOuJLV1NTgx07duDEiRPQ09PDV199hQULFnAdixAAf0zM3717N7788kvs2LEDu3bt4jrSCzVYC+Q1NTWYP38+qqurce3aNZiZmXEdiQxiPT09CAgIwNGjRxEREQENDQ1s2LABb7/9NhWBCUsgECAuLg5+fn44d+4cGhsb2XO+JUuW0C50hDOtra1ISEhgp0VHRUWhpaUFY8aMgYWFBbuzl7W1NS3eH+K6urqQlZWF1NRUJCQkICEhAdnZ2RAIBJg0aRIsLCz6HfTsgwxGDx8+RGxsLKKjoxEVFYX4+Hh0dnZCQ0OD3ZHB3t4eysrKXEcd0Jqamp5YCH/03x4djAf8UQ5/tAz+58F4qqqqGDNmDIffFSEv3qO/K33F8Ef/XlZWBoFAAACQlpaGiorKEwfeTZkyhX4/CBFdVCAnhBDyaj2pZF5VVYWqqiqUlZWhuroajY2N/b5m4sSJUFBQgKqqKhQUFKCiooKJEyeyBfO+vw8bNoyj74qQV+/RLaGys7ORk5PDXtg9ejEnIyPz2Er4vkNbWxvjxo3j+DshAwWfz0d+fn6/QnlSUhJqamoA/DGt/NGJzDweD7q6urRinAxqAoEAhYWF7AT/vin+FRUVAAA5OTkYGRlBT08PhoaG7J9ycnIcJydcEggEyMvL6zcdKzExET09PRg3bhzMzc3Z6VjW1taQlZXlOjIZQrq6unD79m34+fkhICAAnZ2dmDFjBlavXo2lS5cO+gfweXl52LdvH86ePQtzc3Ps27cPDg4OXMciBABw6NAhvP/++9i0aRMOHjw4aM6zB2OBvKioCE5OTmAYBsHBwZg8eTLXkcggVVVVBV9fXxw6dAjV1dWwt7eHl5cX3njjjUHzGkH+HaFQiNjYWPj5+eG3335DXV0d9PX14eHhgdWrV9OiZ8KJ4uJitiweExOD1NRUCIVCaGlpsdfCtra2MDU1pSmtQ1hjYyNSU1ORlpbGHnl5eeDz+Rg1ahR4PF6/sriamhrXkQl5Kerq6hATE4PIyEhER0cjLS0NfD4f2trasLW1xcyZMzFnzhxoampyHXVA6OjoYMvflZWVuH//PsrLy3H//n22e3D//n10d3ezXzN27FgoKytDWVkZSkpKUFVVZQvhfYPtJk6cSLumk0Gnb3r40wri9+7dQ2trK/v5f15EQRP2CRkyqEBOCCFk4Hl0y6g/rw5+9M/a2loIhUL26/qKsn9eGfzon7Q6mAwFXV1dKCkpQVlZGUpLS9mj7+99hWDgj4tBDQ2Npx70+0Kqq6uRkZHRr0BbUFAAPp+PESNGwMDAAIaGhtDV1YW+vj709fXpJgIZ9BobG5GWlobMzEx20UV2dja704q8vHy/QjkVy0l7eztSUlIQHx+PhIQExMfHo7y8HGJiYtDV1cX06dNhZmYGMzMzmJiYYPTo0VxHJkNAW1sbrl69it9//x03b96EuLg45s6dC3d3d7i5uWH8+PFcR3xpMjMzsWfPHvj5+cHGxgZff/017OzsuI5FCC5fvgxPT0/MmzcP586dw/Dhw7mO9K8NtgJ5fHw83NzcoKmpiaCgIMjLy3MdiQwyQqEQYWFh8Pb2xqVLlyAvL481a9Zg48aN0NDQ4DoeGQB6e3sRHh6OS5cuISAgAHV1deDxeFi6dCmWLFlCux6RV6q6uhpJSUlISkpCYmIiEhMT0dDQgOHDh7OLp62trWnx9BBXXV3NLrDvu4+Wm5sLhmEwfvz4fgNLeDwe9PT06N4yGbSKiooQExODqKgoREdHIy8vDxISEjAyMoKdnR1sbW1hZ2c35HYO6ZuC3NTU9NReQN//9qjx48c/Nin80W4ADdIig9mTpoc/WhAvLS1luzTDhg2DsrLyU8vhU6dOxahRozj+jgghHKECOSGEENHV09OD+vr6p15A9v3bo9OYgWcrmisrK9MFJRm0Hp1e/uetqIqLi/tdUNIEc/IkXV1dyM7ORnp6OjIzM5GdnY28vDx2KrOMjAz09PTYUrmenh709PQwZcoUSElJcZyekJenqamJ3RWi78+MjAzU1dUBAPtQrG+av4GBAQwMDArYyPYAACAASURBVIbcAwHyh5qaGnZL5sTERCQnJ6OhoQHi4uLQ0dFhC+VmZmYwNTWl91zyUjU1NeHy5cvw9/dHaGgohEIh5syZA3d3dyxcuBAKCgpcR3wp7ty5g08//RRxcXFYsGABduzYAVNTU65jkSHu7t27cHNzw+TJkxEYGCjyC9AGU4H86tWrWL58ORwdHXH+/HmMGDGC60hkEKmpqcHp06fxyy+/oKysDA4ODvDy8sLChQvpOpqgo6MDN27cwOXLlxEUFITm5maYmZnB3d0dS5cuhba2NtcRyRDQ2NiIxMREtiyelJSEqqoqiImJQUdHB+bm5jA3N4eVlRXMzMzotWsI6tvh8tGieHx8PB48eADgjx0uHy2Km5ub0z0xMqg9fPgQaWlp7I4Md+7cQV1dHSQlJWFsbAwbGxvY2trCwcEBEyZM4DruC9fV1YWamhpUV1ejrq4OVVVVqK2tZYfE3b9/H/fv30ddXR34fD77dTIyMpg0aRKUlJSgoKDATghXUlLCxIkToaioCEVFRUycOJF25SGDEp/PR21tLaqqqthp+zU1NSgvL0dFRQV7dHV1AQDExMQwadIkqKurQ1VVFaqqqlBXV4eamhrU1NSgqqpKi98JIX+FCuSEEEIGv97eXvbCtKamhv2zb4urvvLsnyeajxkzhr0oVVFRgYKCAhQVFaGgoAB5efl+H9PNUDKYdHZ29ptc/uj08tLSUtTW1rKfO2HChH4Ty9XV1aGhoQEVFRX294cMHd3d3SgsLOxXns3OzkZ+fj4EAgEkJSWhpqbGFme1tLSgr68PExMTWtlOBrWqqqp+vxdZWVnIzc1lJ5YrKCjAwMAAenp6mDp1KnR1daGjowM1NTWauDTEPDqVq+/om6zz5wetFhYW9D5LXoqOjg6EhobCz88Ply9fRnt7O6ysrODm5gZ3d3dMnjyZ64gvXFBQEHbt2oWUlBTMnz8fX3zxBSwsLLiORYawnJwcODs7Y9SoUbhx4wbU1NS4jvSPDZYC+YkTJ7BhwwasWrUK3t7ekJSU5DoSGQQYhkFoaCi8vb1x+fJljBw5EkuWLMH7778PfX19ruMRjjU1NSEkJASBgYEICAhAR0cHe062aNEi6OjocB2RDGKPlh77jr6J0X++NrWyshL5BW/k+VVVVSE7OxtZWVnIyspCWloasrOz0dPTAxkZGRgZGcHExASmpqYwMTGBkZER3f8lgxrD/H/svWdwW9eZ//8lCRIkQbCiEmARxU6JKrSoQlmRZFmyYknexFESO7GTmSTOJBNvsnmRZGc2b3ZfJJn8ZtJ2s7sZZ9dxnGSzWjtRsVUsS7K6ZVGFEin2AgJEJdFIohHA/4X/5+SikZREEizPZ+bMPffgAjwX4L3AOef7fJ8wOjs7cf36dV7a29sRDAZRUlKCLVu28NLU1ASxWJzsLj8SoVAIVqsVVqsVJpOJr69Hi8SNRiOf+2bIZLIYAXi0SFytVpOJBrFsCYfDsFgsXBRuNBphMBi4MSIr0ZqVwsJCqNVqaLVaLghnAnEmGM/IyEjimREEscQhATlBEARBMILBYETEMxOWszp7zGq18ohOhkwm42Ly4uJiyOVyLjiPri+HFNTEysbj8WBgYCBCVC4UmQsF5mKxGFqtlg9qWZ0NaLVaLS0wrAD8fj96enrQ0dGB/v5+LqLt6OiAx+MB8LEwUujKXFFRgcbGxmXreEoQAKDX6yOE5Q8ePEBXVxdsNhuAj91WampqUF1djerqatTV1aG6uho1NTXIzc1Ncu+JhYKJym/dusWLXq8HAJSWlmLjxo1Yt24dGhsbsW7dOlRUVCAlJSXJvSaWC8zt8u2338Y777wDl8uFTZs24dOf/jSee+451NbWJruLc8rZs2fxwx/+ENevX0dLSwv++Z//Gbt37052t4gVitFoxCc/+UmYzWa8++67WL9+fbK79EgsBwH5T37yE/zgBz/A97//ffz4xz9OdneIZYBOp8Pvf/97vP766+jt7cWOHTvw9a9/Hc8///ySFRMRc4PVasXJkydx5MgRnDlzBqFQCJs3b8bhw4fx2c9+lpx6iXnB6XTi7t27XDB+8+ZNdHZ2IhQKQaVS4YknnsCmTZv4lhwsVxYmkwnt7e0xhQlDlUolF4uzUlNTQ8F2xLLHaDTi5s2buHnzJj788EN8+OGHcDgcyMrKQlNTE7Zs2YKtW7di8+bN0Gg0ye7utHg8Htjt9ogM34nqVqs1wi08IyMDRUVFKCgoSJj1u6CgAGVlZRREQixrPB5PhL4ketvf34/h4WEEAgH+HJYFPN51w7YlJSW0FkQQxHxDAnKCIAiCeBTYYHqmgbTdbofJZILw6zYzMzNiID1dXa1WkwCIWHL4/X7YbDY+IBYOjtm+8LoQi8XQaDR8QFxRURFTp2theRIIBNDX14f29nZ0dnbybWdnJxeWazQa1NXVoaqqKqKsWrWKIuqJZYvdbuf3TCYu7+/vjwi6KCgo4C7+Qkf/2tpaSt25ArBYLFxMfvv2bdy5cwf9/f0IhULIycnB2rVruaC8sbERa9eupYlm4rHx+Xx4//338fbbb+Po0aOw2WyoqqrCc889h4MHD6KlpWXZ3H/ee+89/Mu//AsuXbqE3bt344c//CF27tyZ7G4RKxC3243PfOYzuHbtGv7v//4Pe/fuTXaXHpqlLCAPBoP45je/id/+9rf49a9/jVdeeSXZXSKWMG63G2+//TZ+97vf4YMPPkBhYSFefPFFvPLKK2hoaEh294gk0tbWhnfeeQdHjx7FjRs3kJOTg/379+PTn/409u/fT7/jiTllcHCQi8XZdmBgAMDHJjkbN27EE088wcXiWq02yT0mFgq73R6RUZJl0DOZTACA/Px8rF69GvX19WhqakJDQwPWrFkDlUqV5J4TxPwzOjrKxeIfffQRbt68CYPBgJSUFFRVVaG5uRmbN2/Gli1bsG7duqRnrRa6hDO3Y7bPjNKYg7jFYsHk5GTE83NycqBSqbhxmlKphFKphFwu5xm6WXtRUVGSzpIgFgav18udwRMJxPV6PVwuF3+OWCxGYWHhtOLwiooKFBQUJPHMCIIgOCQgJwiCIIj5xuv1YmxsbFaCc4vFgmAwyJ/LxOazEZwrlcplI9gglj8+nw8GgyFCXB6vzoiOwo4nMi8uLk7iGRFzSSgUwuDgIB48eICOjg50dnaip6cH3d3d3OFeJBKhrKwMlZWVMeLy8vJycrkhliVTU1MYHBxEV1cXOjs70d3dzevs2hCLxaisrERNTQ1qampQVVWFyspKVFZWklvdModle2DpxTs6OnD37l1YrVYA4GnGWbaHpqYmCjggHplQKITbt2/j+PHjOHLkCDo6OlBYWIinnnoKBw4cwHPPPYe8vLxkd/OxuXz5Mn7yk5/gxIkT2LBhA77zne/gxRdfpN8ZxILi9/vxpS99CW+//TZef/11vPDCC8nu0kOxVAXkExMT+NznPocLFy7gz3/+M5599tlkd4lYgoRCIVy9ehW///3v8cc//hF+vx979+7Fyy+/jOeee46ColcoHo8H58+fx4kTJ/DOO+9Ap9NBqVTiwIED+NSnPoWnnnoKmZmZye4mscSZmppCV1cXHxu2t7fjww8/jBkfCseI9fX1ZOCxAnA4HNzQQygW7+/vBwDk5eWhsrKSGxYIjQsIYiXgdrtx9+5dPr/W2tqKBw8eIBwOR9w7m5qasHXr1gXLsOtwOGCxWGCz2WCz2WKE4UwMzvaFMjCRSMTF39MJw1UqFWXSJlYEszUKNBqNsNvtEc9lxj7TuYaTKRpBEEsMEpATBEEQxGLC7/fDarXCbDbzgX+iutVqjRCbp6enQy6XQyaTQS6XQ6FQQCaT8RKvjQRDxGJmfHwcOp0Oer0eer0ew8PDGB4e5nWdTofx8XF+vFQqRUlJCUpKSqBWq6HVaqFUKlFSUgKlUsn3k+3+QDwePp8Pvb29fGFDWAYGBhAOhyESiVBaWoqKioqIQu7MxHLG4XBECMq7u7vR3d2Nnp4e7loukUhQWVmJ1atXc1E5q2u1WqSmpib5LIj5YHBwEG1tbbh37x7u3r2LtrY29Pb2IhgMQiKRYM2aNVi7di3q6+uxZs0a1NfXL/rUusTio6urC8eOHcOxY8dw7do1iEQi7Nq1C4cOHcKBAwdQUlKS7C4+Frdu3cLPf/5z/PGPf0RpaSm+/e1v42tf+xqys7OT3TVihRAOh/GDH/wAP/3pT/HjH/8Y3/ve95LdpVmzFAXko6OjOHToEL+3bdu2LdldIpYYnZ2d+J//+R+88cYbGBgYQFNTE1566SW8+OKLkMvlye4ekQQsFgtOnTqFEydO4NSpU3C73aivr8fBgwdx4MABbNu2jcZjxCNjs9nQ1taGtrY27ize3t6OQCCAzMxMrFmzBhs2bMC6deuwfv16NDY2QiqVJrvbxDwSDAYTGhAwR/Hc3NyIeQCaDyBWIsx5XygW7+zsRCgUihGLNzc3Q6lUzunfZmJVVoQCVmGbXq+H3++PeP5M2a7JgIxYaYyNjcFsNnOnfWGdBVcwMz+v1xvxXKahkMvlKC4u5vtqtRoKhQJarZYHX5AwnCCIZQgJyAmCIAhiqSJMQSYUlttsNp6WjEWisxJNUVER5HI5ioqKEorM2YBJJpORQIJYdDidTuj1egwNDcFgMECv10On08FkMkGv18NkMkX876ekpECpVEKlUkGj0UCtVvNtcXExL0qlkhbuliDMQSdaWN7e3s4d7dPT01FSUhIjLG9oaEBZWRlNpBLLErvdHnNNdHR0oLe3l4u5MjIyoNVq4wZe1NTUkNvuMmNychLt7e24e/cu7t27h/b2dty/f5872efn56OhoYGnpGaLyXO5UEYsX8bGxvD+++/j+PHjOHr0KFwuFyoqKnDgwAEcPHgQO3bsWLKOq/39/fjFL36B1157DdnZ2fjKV76Cb3/725ThgVgwfvGLX+C73/0uvvWtb+FnP/vZkhizLDUB+cDAAJ555hkEAgGcOnUK1dXVye4SsUSw2+04cuQI3njjDVy5cgVarRaf/vSn8ZWvfAWNjY3J7h6xwLBsLWfPnsXx48dx9epVZGZmoqWlBQcOHMDzzz8PrVab7G4SSwyn04ne3t6EztFsHCd0Fl+zZg3EYnGSe07MF2NjY+ju7kZnZye6urq4ULynp4eLTZVKJWpra1FdXY2amho0NDSgrq4OZWVlSe49QSwcoVAIfX19uH37Nm7fvo07d+7gzp07PKCivLwc69evx4YNG7B+/Xo88cQTD5Xx1ul0xl2TjddmNpvhdrsjnp+WlgaZTMbXamUyGZRKJa+zdmEbZSshVgIej2dWLuHxgiwKCgqmzezO6iUlJWQ8RhDESocE5ARBEASxkogeaCWKajcajTAYDPD5fBHPZxHt0dHridooqp1YDPj9fthstojJhHhbk8kUkdaPTS4kSkFWXFxMguMlxNjYGHp6etDT04Pu7m709vaip6cHvb29cDgcAD6+x1VUVGDVqlVxS15eXpLPgiDmHrPZjL6+Pn499PX1obe3F729vTw9Y3p6OsrLyyNcy4XXikQiSfJZEHNFvFTWra2tPAgnPz8fq1evRn19PRckNDQ0kHiWSIjX68UHH3yAkydP4t1330VPTw/y8/Px9NNPY//+/di/fz9UKlWyu/nQWCwW/Ou//it+/etfw+Px4Itf/CJeffVVrFmzJtldI1YAb731Fr74xS/i2WefxZtvvrnohQNLSUB+8+ZNnjXhxIkTFDhFzIjX68W7776L3/3udzh58iQyMzPx/PPP40tf+hJ27NixJII8iLnDYrHgvffew+nTp3H69GlYLBaUl5fj2WefxYEDB7Bz585Ff88mFgcTExPo6OjA/fv30dHRwYN+9Xo9gI+do+vq6rB27dqIwF8aly1PpqamoNPpIgwBhCYBwN9MAZhJBjMFWLt2Lf2eIVYc4+PjuH//Ps/McPfuXdy9exdutxsikQg1NTVcKL5hwwZs2LABBQUF/PlutxtjY2Ow2WwYHR3lZTpheCAQiOiDRCKJEHzHE4YL22Qy2UK/TQSRFNh1leh6ErqEW61WTE1N8eeKRCIoFAruDC6Xy7lhmEKh4HVmlkdjMYIgiFlDAnKCIAiCIBLjdrv5IC06Qn42UfMikShiAkTocF5UVITCwsKIrUwmI4EmkTQmJydhMBgi3Mv1ej3MZjOGh4dhNpuh1+sxMTHBn5ORkQGVSsXTlwldzVUqFU9vRmnNFjdWq5WLy/v7+zEwMICBgQH09/fDaDTywILCwsK4wvKKigqUlZWRoxOx7BgbG+NiciYs7+npQV9fHywWCz9OoVAkDL4gB4/lgcVi4eKF+/fvo729He3t7TzIQC6Xc7f62tpa1NXVoaamBmVlZTRZT0TQ29uLd999F++++y4++OAD+Hw+bNy4Efv378cnP/lJNDc3L6ngvImJCbz++uv41a9+ha6uLuzatQuvvvoqDh06tKTOg1h6nD9/Hp/61KewceNG/OUvf1nU4+ilIiA/e/Ysnn/+eTQ3N+Ott95Cbm5usrtELFJ8Ph/OnDmDI0eO4NixY3C73di6dStefvllvPjii8jJyUl2F4kFIhAI4MqVKzhz5gxOnz6NO3fuQCQSYdu2bXjmmWfw7LPPUnAZMS0ejwednZ0x46yBgQGEw2FkZ2ejrq4uQiTOMugRy4tQKITh4WH09fXxIP+uri50dnZiYGCAi1O1Wi1qamq4mzhzFqexN7ESCQaD6Ovr40Lxe/fuoa2tjd9DpVIpqqurUVlZiZKSEiiVSuTk5MDtdnMR69jYGBeIs3q0i7FIJEJRUdGMInBhW1ZWVpLeFYJYODwez7Ru+8I2JhoPBoMRryGVSiGXy3kmdLlcDrVaDaVSyetsjVUulyfpTAmCIJY9JCAnCIIgCGLu8Pl8EVHC0wnP2aRMdGR+WlpaXHF5tNA8+nGakCEWCqGTf6KtXq+Hy+WKeF68dGnx0qaRc//iwu/3Q6/XRzj7sMI+c0ZBQQF3+Iku5FZPLDd8Ph8MBkPca6O3tzdCJDbdtVFeXk6LnEuYkZERdHR0oKOjAw8ePEBXVxcePHjAUwBnZWWhpqYmRlheU1NDv90IeDweXLlyBWfPnsXRo0fR2dmJnJwcbNmyBQcOHMChQ4ewatWqZHdz1ly+fBm//OUv8fbbb0OpVOJrX/savvWtb5GTGDFv3L9/H/v370d+fj5OnjwJrVab7C7FZSkIyN944w189atfxQsvvIDXXnuNgt+IGPx+P86cOYP//d//5aLxbdu24fDhw/jMZz6D4uLiZHeRWCD6+/tx9uxZnD17FmfOnIHT6URFRQX27NmDPXv2YO/evYs6qIdIDna7PcY9ur29HV1dXQgGg0hPT0dJSUlEpqf6+nrU1tbSXNIywufzYWBggIvEWbB+X18fBgYGuGhVKpWisrIS1dXVqK2t5WPo6upqClIiViz9/f24efMmbt26hfv376Orqws6nQ5+vx8pKSmQSqWQSCRIT09HOBzma5WhUCjidaKzLM+UcZkyLRMrCY/HEzdr+XRt0QjXQWfKZq7RaMiUiSAIYnFAAnKCIAiCIJILG5DGK/EGpHa7PSZtFTD9xE+igapMJkNGRkaSzpxY7tjtdphMJlgsFp5yzWw2w2g0wmKxwGg0wmw2w2q1RgRSpKenQ6FQQKVS8dRrxcXFPAUbS82mVquRn5+fxDMkAMDhcHDH8njF6/UC+Nitvry8PMKZuby8HKWlpSgtLYVarSaXemJZYbPZEl4XQ0NDfGE0MzMz7nVRVlbGrw1i6eFwONDV1YWOjg7umvbgwQP09/djamoKqampKCsrQ01NDerq6viieHV1NX3mK5jOzk6cOXMGZ86cwYULFzAxMYHKykrs3bsXTz/9NHbv3r0kHIF7e3vxb//2b/jv//5vBAIBfP7zn8fXv/51NDc3J7trxDJkcHAQ+/fvh8fjwalTp1BbW5vsLsWw2AXkv/jFL/AP//APePXVV/Hzn/+cfpMTnGAwiGvXruHIkSP405/+BKvVivr6ehw+fBgvv/wyKioqkt1FYgFwuVw4d+4cdxnv7++HVCrFU089hb1792Lfvn30v0AA+NiRfmBggI+BWHBtV1cXz9yUl5cXMwaqq6tDZWUlRCJRks+AmAu8Xi9GRkZiAgb6+/sxNDTEnVenC7RftWoV/R4hli0OhwNjY2O82O32iK3BYIBOp4PJZILdbsfExESMIzgApKamQiKRoKioCMXFxZDL5dyIKtqESmhEReuBxEogGAxyR33h9caM3VjmceYKzkq0dDAvL49nFRcWYRu73pRK5ZKYsyMIgiDiQgJygiAIgiCWHqFQKCKlXKKtzWaLaJuYmIh5rby8PD7IjXY1j94KhejklkrMJfFczaODKIxGI3Q6XUTwhFgsRmFh4Yyu5izqnxYfFh7mMhWvCD/P9PR0yGQyFBcX8wUj9nlWVFRg9erVFDBALBtCoRAMBkOMsJwtqI6MjPBFVbFYHCEoLy0tjRCZa7VaWvxZQgQCAQwPD8c47927d49n7hCLxVi9ejUaGhoiFtHXrFkDlUqV5DMgFgq/34+rV6/izJkzeO+993Dr1i2kpqZi8+bN2Lt3L/bs2YPm5uZFLbQZHx/HG2+8gf/4j//AvXv3sH79erzyyiv4whe+QItqxJxit9tx6NAhtLe34+jRo3jyySeT3aUIFquAPBgM4u///u/xn//5n/jlL3+Jb37zm8nuErEImE40/tJLL2H16tXJ7iIxz3g8HrS2tvIsKRcvXoTf70d9fT0OHjyIPXv2YMeOHTQGWcGMjo6it7cXnZ2d6Ozs5ELxvr4+BAIBpKSkoLS0lGdhEgrFKVh26RMOh2E0GjE4OMjdw4WO4larFcDH4taSkhKsXr06olRWVmL16tWQSqVJPhOCeHR8Pl9CATjbJmqLlialpKQgPT0dKSkpCAQC3DE8JycHCoWCX0c1NTVYv349qqqqUFRURGNqYkUQCoUixN9CMfh0AvF4Y++srCwUFhZCJpNBLpdDLpdHiMDlcjkUCgUXhMtkMsrMRRAEsXIgATlBEARBECsHr9fLJ6xmKky4Ozo6GtfhYLaO59FFoVAsaqELsfix2+0JBeZCAbrFYuECTCD2fzY6bVy08LygoCCJZ7lyEArM2ecXvc/IzMxMKDCvqKhASUkJTeoRy4Z4wRfsmuju7obb7ebHCp27oq8LCr5YOhgMBnR3d6Onpwc9PT3o7u5GV1dXRCpvuVyO6upq1NTUoKqqClVVVaiurkZVVRUyMzOTfAbEfDI6Oopz587h7NmzOH36NIaGhpCdnY1t27ahpaUF27dvX9RirtbWVvzmN7/BH/7wBwSDQRw8eBCvvPIK9uzZk+yuEcsEn8+Hl156CceOHcPvf/97HD58ONld4ixGAbnP58PLL7+Mo0eP4o033sBnP/vZZHeJSCKBQADvv/8+jhw5gr/+9a+w2+1obm7G4cOHcfjwYZSWlia7i8Q84vf78eGHH+LcuXM4d+4crl+/Dr/fj+rqauzevRu7d+/Grl27IJPJkt1VYgFxOBzo6+uLGZO2t7fzeZr09HSUlJSgvr6eB7/W19dj3bp1JA5e4kTPRwjn67q6ujA+Pg7g42yDWq02rot4XV0dsrOzk3wmBDE902UHnq6YTKYYIXi89bLc3FykpKTA7/fD7XZjbGwMRqMRBoOBC8XVajUaGhr4vbS+vh6NjY0kECeWHfGut0RZuKfLxg2AG0Y9zNp0cXFxEs6aIAiCWCKQgJwgCIIgCGImXC5XjGPCTIUdFw/hoJ25R89UCgsLkZeXt8BnTixlpqamYLFYYDabYTQaYbVaYbPZYDKZeN1qtcJkMsFms2FycjLi+RKJBHK5HEqlkrsRKBQKKJVK7lKgVCp5ujoS7s0PwtS38QTmg4ODEZ/ddEJatVpNTvTEssFsNmNoaAg6nQ46nQ5DQ0MYHBzk+2NjY/zYgoIC7l5eUlICrVYLrVaL0tJSXheLxUk8G2I6pqamMDQ0hO7ubl6YyFyn0yEUCnGXv6qqKu7sJgwioIXH5UdXVxcuXLiACxcu4IMPPoDRaEROTg6efPJJ7Ny5E5/4xCfQ1NS06AI3HQ4H3nzzTfzmN7/hruRf/vKX8YUvfIGEacRjEwwG8eqrr+I3v/kNfvWrX+Eb3/hGsrsEYPEJyO12O5577jncv39/UTq2EwvDxMQEzp07hyNHjuD48eNwOBzcafwLX/gCqqqqkt1FYp4IBoO4c+cOLl++jCtXruD06dNwuVxQq9XYvn079uzZg3379qGsrCzZXSXmGafTid7eXvT09PBtd3c3ent7YbPZAHwsEl+1ahUqKyt54GplZSWqqqpQWlqKtLS0JJ8F8SiYTCYMDg7ywuYTWPF6vQD+FiRQVlaG8vJylJeXY9WqVbyu0WgoSymRdB5VBG6z2RAIBGJe72GMk5ghTWpqKgwGA882x7YDAwMIh8MxATdsS4EWxFLD4/HA4XDAbrdHbKOdweO5g0fL8jIyMngGbGERthUVFcUcI5FIknT2BEEQxDKGBOQEQRAEQRDzyUwC80TF4XDEvFZqauqMIvPotvz8fOTl5ZGbNDEjwsnmaOeD6H29Xg+XyxXxfOHkcrSbebTTuVarXbQOoUsR5oyUyMGcTdYDf/ucmLCcicyFYnNyMieWA263Gzqdji8G63Q66PV6vjUYDBEZRpRKJbRaLTQaDcrKynidicw1Gg3dtxYhXq+Xi8mZ4KO/vx99fX0RjlYymYyLyYWucKtXr6ZF/2VCf38/F4KdPHkSw8PDkEgk2Lp166J1KL927Rpee+01HDlyBD6fD88++yy+/OUvY//+/fQ9TDwWP/nJT/CP//iPePXVV/Hzn/886cGDi0lAbjAY8MlPfhI2mw0nT55EY2NjsrtELCADAwM4fvw4jh07hosXMQuXcgAAIABJREFULyIcDmPHjh04dOgQDh06hFWrViW7i8Q8EAgEcPPmTVy6dIkXp9MJlUqFXbt2YdeuXdi9ezdWr16d7K4S84DNZuNzJH19fVwo3tPTA4vFAgAQiUQoLy/n4vDq6mouEi8rK1t0AYnE9ITDYZhMpohA8+ji8XgAfPzZzyQQpyABYr4RilAT1RO1sf9lISKRCPn5+XxtiG1ZPbpdKEydLoPf6Ogov48Kg2+6u7u5iUNeXh5qa2vR0NCAmpoa1NfXo66uDuXl5XQtEYuGeNfWbLcswEhIRkYGCgoKHloMnpOTk4SzJwiCIIi4kICcIAiCIAhisfKo7hEWiwXBYDDm9eK5R2RlZc3KVaKoqIjcWYkI3G43zGYzLBZLjJu51WqF1WqF2WzmbudCoSbw8YSyQqHgE2dFRUWQyWR8K5fLIx4rKioiMdUj4vF4uIDWYDBgeHgYIyMjMBgMMBgMMBqNMJlM/PjU1FQolUpoNBou+Fer1SgpKUFxcTE0Gg00Gg1lRSCWNGxRWa/XQ6/XY3h4GMPDwxF1o9HI3ZhSUlKgUqm4Y3lJSQl3M2d1lUq1qMSpKx2/3w+9Xh+Tdr6/vx/d3d1wu90Apk87Xl1dTennlyj9/f04e/YsLl++jAsXLkQIyvfs2YOWlhZs3rx5Ufy28Hq9OH78ON544w2cPHkSubm5OHz4ML7+9a9j48aNye4esUR544038NWvfhUvvPACXnvttaT+ry8WAfn9+/exf/9+5Ofn491330VJSUlS+0MsDO3t7Thy5AhOnDiBW7duITs7G7t27cLhw4dx8OBBCrZfhkxOTuLDDz/ExYsXcfHiRVy/fh2Tk5NQKpV48sknsWPHDuzevRsNDQ3J7ioxB/j9fgwNDcX9zd/f38/ND0QiEcrKylBZWcnF4UwoXl5evih+ExKzw+PxcPOEeEYKQ0NDmJiY4McLM/VFl9LSUgoQIB4bp9PJi8PhiKjPJARPlMFWKpVOKwKfru1xRKkWiwV9fX1cHC4srK/CzAws6Ka2thZ1dXUoLi5+5L9NEA9Dspz3462nUsZXgiAIYhlAAnKCIAiCIIjlRjAYjHAydzqdEXU2SSmc1BS2RTtLM3JycpCXl8ddzYVbodN5osczMzMX+J0gFhMOhyNCUM6E5zabDaOjoxHFYrHEFZjk5eVBLpdzobmwCNuFj9Mi4Ozw+/2w2WzcbV64ZYtw0c7zmZmZEe7l5GZOLEfiOfwL6zqdDlNTU/x4tnCQ6JpQq9VQqVTkeL0IYJ9tvDI4OMjdy6cTHJSXl9NnuUQQCsrPnz8PvV6PnJwcbNmyZVEJyg0GA95880389re/RU9PD+rr63H48GG89NJL5IxKPDTvvfcenn/+eWzevBlvv/120gJiFoOA/Pz58/jUpz6FjRs34i9/+QsFQi5jvF4vLl++jOPHj+Ott96CwWBAaWkpnnnmGRw4cAD79u2jgL9lxvj4OK5fv84zkVy6dAk+nw9qtRrbt2/nmUg2btxI4p4lynS/24XjMRIKL308Hk9EcPfQ0BCv63Q66HQ6jI+P8+MLCwuh1WpRWlrKs4cxR3EW8E2fOzEdfr8/ruA7nhg8us6OjSe1ycjI4Gsi04m9E7XPp1t3vHtqe3s77t+/z3+vJwq0r6+vR01NDV1XxGMxOTnJ1yGjrz9hQEYiF/DJycmY1xSJRDHBFfG2iR4jh3yCIAhihUMCcoIgCIIgCCKSUCg0a9F59GPsOfF+YorF4ocSnefl5SE3Nxe5ubm8jRb7Vg5TU1MYHR2NEJgzd3PhPqtbrVY4HI6Y18nNzY1wOheKy6OdzmUyGQoLC0lQMA2jo6MwGo3cnZm5mTOBudFohNls5senpqZCpVJBrVZDrVZDqVSiuLiYO5wrFAouqM3KykrimRHEoxEMBmE0GqHT6WA0GrmzP7smTCYThoeHIxzQWPBFtMO/Wq2GVqvlj1HgVfLw+XwwGAxxRSqdnZ388xSLxdBoNHFFKrW1tZBIJEk+EyIe4XAYHR0dOH/+PC5cuICLFy/CarUiLy8P27Ztw5YtW7Bt2zZs3rw5aYLbcDiMK1eu4A9/+AOOHDmCsbExtLS04IUXXsBnP/tZyGSypPSLWHp89NFHOHDgAEpLS/HOO+9AoVAseB+SLSB/66238MUvfhHPPvss3nzzTfp+XYbo9XqcPn0a77zzDs6cOYPJyUk0NTXh0KFDOHjwINavX5/sLhJzyMDAAK5du4Zr167h8uXLaGtrQzgcRl1dHZ588knuMk5ZBpYOdrsdg4ODGBoawtDQEAYGBjA0NITBwUEMDAzw7w+RSITS0tKEInHKKLC48Xq9fP5ImP1raGiI161WKz8+KysroSic7dN4ixC6EHu93lm7ErNjTSZT3HWMaIfh2WZxZccmex1DKBJvb29HR0cH+vv70dPTw81BokXi9fX1aGhoQEVFBcrKykhQS8TF6/VGiLyjAyyii8vlihGHx3MAB8DXBFmZjSB8Lpz3CYIgCIIgATlBEARBEAQxD0RP1j7MBO7Y2Bh8Pl/c183MzJx2wnY2jymVSpoAXcawVLYjIyNx/7+iH7NYLAgGgxGvMdsFAWHRaDTIz89P0lkvLnw+X4yQ1mAwwGw2w2g0cpG5zWaLeF5eXh6Ki4uhUCi4uLy4uBgqlYqL0JVKJeRyeZLOjCAeHZfLBb1eHxNwwYIx9Ho9zGZzxP1IJpNxcblKpeLXhVar5UEYSqUSYrE4iWe28giFQlxc3tfXFyEu7+vr4/e21NRUaDQalJWVoby8HKWlpSgrK+PueOXl5cjOzk7y2RDAx2Lt9vZ2XLhwAdeuXcPVq1cxODiItLQ0NDQ0oKWlBVu3bsXWrVtRWVm54P0LBAI4ffo0/vSnP+Ho0aPw+XzYu3cvPv/5z+PQoUPkpEzMSH9/P/bv349AIIBTp06hurp6Qf9+MgXkv/jFL/Dd734X3/rWt/Czn/2MskYsE5jL+KlTp3D69Gncv38fWVlZ2LlzJxeNazSaZHeTmAO8Xi9aW1v59/O1a9dgMpmQnp6ODRs2YNu2bdixYwe2b99O48RFjNVq5eJwJgxnZWhoKCLTmVqtRnl5OcrKylBWVkYu4ksEu90ek80uOouX2WzmWZ6ASMf46KxdxcXFlO1pmePxeBKuF8y2fXR0FH6/P+7rzzS3O90aglwuT3pmqpmwWCwJ76u9vb3wer0APs4oW1lZGVNWr14NrVab5LMgksF0a3SzWcNj/1vRCK+n2QRcRB+jUCjoO54gCIIgkgcJyAmCIAiCIIjFx+TkJFwuFy/MoUDYxordbo/bnkigkJqayl0MhA7nUqkUubm5KCgo4O3CwlzQ2T4J9pYHwWAwwsl8dHQUY2NjGBsb4wENwjZW3G53zGtlZ2ejsLAwYSkqKorbvlIFhH6/HzabLULYH7212+0YHh6Oeb8LCgr4omK8bUFBAUpLS5PmHEsQj0IwGITZbI4Ql5tMJr4/MjICk8kUE3xRVFQElUrF//9ZYW1MfL5S7zULjcvl4mJy5p4oLMLfJ3K5nAvK4wnNyWU6eZhMJnz00UdobW3FlStXcPnyZXi9XuTl5WHTpk1oaWnB9u3bsW3btgW9tiYmJnD06FH86U9/wunTp5Gamoqnn34azz//PJ577jly3iQSMjo6ioMHD6K7uxvHjh3Dtm3bFuxvJ0NAHg6H8YMf/AA//elP8aMf/Qjf//73F+xvE/NDf38/zp49i7Nnz+L06dNwuVyoqKjAnj17sGfPHjzzzDP0238ZMDIyEvHd29raCq/XC6VSiU2bNqGpqQnbt29HS0sLZbBaJASDQZhMJgwNDXE36WhBI8vek5qaiuLiYpSVlWHVqlVcJM5+B5eVldFc2yLD5/PxTHTRgnDWptPpMD4+zp/DMm5Fz9UIxeEUDLB08Xg8cLlccLvd3HmY7UfP1wvbWJ3N40ebeTAkEknMfLxwDp/N3wszmLLC9pfD3IfRaIy4l0bfVycnJwH87b5aXl7Oy+rVq1FZWYmqqioolcoknwkxF0xOTsLtdvPrzul08n12bTkcjog2t9vNr0P2nETib6lUyq8z4TXFXMATPSY8hiAIgiCIJQ0JyAmCIAiCIIjlC5vEji4PI0j3eDxxX1ssFvPJazZBLZzgFk685eTkQCqVIicnh6fUY225ubkL/K4Qc0EgEIgRlU9XmAg9nnCGuW1MJz4vLCyMm55xpbjpj46OwmQywWQycQdzg8EAi8XCnayMRiPsdnvE8woLC7lruUKhgEqlglwuh1wuh1qt5nWVSkXXIrFk8Pl8EdcAcy9nTv9MaB7t8CaVShO6mBcXF/NrRS6XJzXV8nKHpW4XOpcLxRhDQ0N8MV0sFkOj0cS48pEL48IzNTWFu3fvcjHbpUuXMDg4CJFIhOrqai5ma2pqQkNDw4L0yeFw4NixYzhx4gTeeecd+Hw+bNmyBYcPH8bnPvc5qFSqBekHsXSYmJjA5z73OVy4cAF//vOf8eyzzy7I311oAbnf78eXv/xlvPXWW3j99dfxwgsvLMjfJeaWyclJXL16FWfPnsWxY8fw4MEDSCQSbN26FQcOHMDf/d3foaysLNndJB4Dt9uNW7du4caNG7hx4wauX78OvV4PkUiEtWvXYtu2bdiyZQu2bduGioqKZHd3xcKyvMX73drf34/h4WEEAgF+vNBVWljUajVWrVq1LISdywGv1wuTyYSRkRE+prRYLHxMqdPpYDQaI4KX09LSoFKpoNVqeaYstVoNjUYT0ZaTk5PEMyOm43HcvmfKGgokdv1O5EYc3S6TyZCRkbGA70jysNvtCecEurq6IoIy6L66NAkGg3wdanx8HC6Xi2+nE3sLC1vbShRwIRaL+fpSfn4+pFJpRCkoKOBrVMJgjGhxOGV7IAiCIIgVDwnICYIgCIIgCGI6AoEAdzR/GEH6+Ph4xGRgIocHAMjLy4sQmbMJP9YmlUqRn58fcUwicTqxuAkGgw8lPBe6occburEJ4nji8uhtdNtyXGDwer1cQMvE5RaLBVarFWazGWazGVarFRaLBWNjYxHPzczMhFwuh1KpnJXonESbxFJgulTibKvX62PSPjOX/4KCgghn/+h6SUnJok/tvNTw+/3Q6/Ux4hy2qCx0GwPiLyYzsXl1dTW5sc4jg4ODuHr1Kq5du4arV6+ira0NU1NT0Gq12LZtG7Zu3YqtW7di/fr18+6m6XQ6cfz4cbz11ls4deoUpqamsGPHDhw6dAiHDh3CqlWr5vXvE0uHYDCIb3zjG/iv//ov/Pu//zu+9rWvzfvfXEgB+fj4OJ5//nlcvXoVb731Fvbu3Tvvf5OYG4LBIG7fvo33338fp06dwtWrVzE1NYWNGzdi37592LdvH7Zu3Uq/wZcogUAAd+/exUcffYSPPvoIN27cQGdnJ4LBIFQqFZqbm9Hc3IyWlhZs2rQJEokk2V1eEfh8PhgMhpjfnWy/t7c34t4tzAQWL8CRghuTD8vwJgw4FgYaJwq+l8lkPLBYrVbHiMRZAPJKMTFYbEQLuR9G9C18LBGzEXdP115UVETZAwRMTU3BaDRyt/BoB3GdTsfnYNLT06HVankWBqGTeFlZGbRaLd1XF5BQKMTdvScmJjA+Ph7j9i0Udgvbop3BhfM20TBht7CwzLfCNib0ZvtsTYi1rZSAC4IgCIIg5h0SkBMEQRAEQRDEQjA1NcUnGN1uN8bHx/kkJJtwZG3McYLtC90qxsfHefrfeAgF5cxRgu0LxelCgbpQsC4Up9PC0OIi0SLQbEqihaJE7kAzFYVCseQXMPx+P6xWK6xWK4xGI6+bTKa4ovNoga1MJoNCoZhWdF5UVAS5XI7CwsIknSVBzA4WWGGxWPj1IKybzWZ+bQgdx1JSUnhQhVKphEqlgkKhgEKh4AEXrF0ul9Oi8hwQCoX4YvTQ0BB0Oh10Oh1fkB4aGopwK1MqlSgrK0NpaSlKS0v5IjQLAFCpVPR9P0dMTEzg9u3baG1txZUrV3DhwgVYrVbuUt7U1MTLE088gczMzHnph9vtxrvvvou//vWvOHnyJJxOJxobG3Ho0CE899xzaGpqoiwDK5xwOIx/+qd/wo9+9CP8+Mc/xve+9715/XsLJSC3WCx4+umnYbPZcPLkSTQ2Ns7r3yMej3A4jHv37uH8+fM4d+4cLl68CIfDAaVSib1792Lfvn3Yu3cv5HJ5srtKPAIjIyO4cuUKz9xx69YteDweSKVSNDY2RnwnLlTmjpWG0Dk8OoCUtZlMJh6ozjLfRIvC2X5VVRVl7UoSgUCAz1UwEXi0czj7PIVzP+np6VAoFDzrlFqthlqthkqlQnFxMc9MpVAoSIQ4DzBzkYmJCW5MwgSpQjMSt9sdYUjCRKhsP9F8XkZGBs+CWVBQwIWnwsyYrF3YJsykSQLUh8fv98Nms017f9XpdJiamgLw8XXIAjGiM4pR4M3cwObLowMoHmXf6XRGZPKLJnoe/WECLVgbBeMQBEEQBLEIIQE5QRAEQRAEQSxFEk2OzmZCVNhmtVr5pHY8hJOdwsnP6InQ2Ty2HETHSxX2+Tscjrjb6R5zuVxxX1Poai5MhSks7LH8/PyY45aakJS9h2xhaLq62WyOWXDIzMyMcG9mJVEbZRQgFivTXQvRbdHOduy7gf3fJ3I312g0yM/PT9IZLn1GR0djROVMbK7X62EymfixIpEISqUSpaWlKC4uhlarhVarhUajQUlJCTQaDYqLi5fcPXsxEA6H0d3djZs3b6K1tRU3b97E7du3MT4+DrFYzAV0TzzxBBfQzbWjv9/vxwcffICjR4/i+PHj0Ol00Gg0OHjwIJ555hns3r2bXOqXIX/4wx/wne98Z8bjvF4vUlJS5v36DgaDCAaD8y5QCofDmJiYQHZ29oxp2KVSKfr7++e1P0Qs/f39OHv2LC5fvoxz587BYDAgJycHW7ZswZ49e7Bnzx5s2LBhxs+PWDwEg0F0dnaio6MD7e3taG1txbVr1zA6OhoRQLV9+3a0tLSgrq6OPt/HJBgMwmw2Y3h4GCMjI9Dr9TAYDDAYDBgeHobRaMTw8DA8Hg9/jkQi4b/1NBoNDyYsLS1FSUkJtFotZDJZEs9q5eH1enm2uZnmGCwWC4LBIH9uojFV9JZEig+Hx+OZEwHqw861PqwIlbXTnNHc4/F4+L11eHiY319ZnQVqMEQiEVQqFUpLS6HRaCLG0MxVXK1W0/eeAK/Xi4mJCR48wYIshK7fExMT3EiHBV0I9ycmJmC32zExMRFj9iEkOzs7wlBHIpFAIpFwZ2+2zwIscnJyIvbZ4yzYgtY0CIIgCIJYxpCAnCAIgiAIgiBWOkJ3c5Zy0eVyYXJykk/asgla5prO9pl7+sTEBCYnJ2PEgtFIpVJIJBJkZ2ejoKCAT8Yy53P2GJuczc7OhkQiQUFBAa+zid7s7GxkZWUt0Lu0cgmFQgnF5qzOHJKiC0vpGY/MzMwYUXk8oblQiB593GJ1UGXu5jabDRaLBTabjZfR0VHu7jw6OsrbA4FAxGtkZ2dDJpNxd2eZTAaZTMZdzYVtrJ0Wh4nFxsMEXggdEIFYYcR0dbVavWjvB4sRoWtatBMlqw8PD0fcl9j7LBSmCF0pV69eTaL/WRLtynrnzh1MTEwgPT0dVVVVEa6smzZtmlNx761bt3Ds2DGcOHECt2/fRlpaGlpaWrBv3z7s27cP69evp2tpGfDaa6/h1Vdfxf/7f/8v2V1ZlFy9ehXHjx9P+BuVmDvY/e7s2bM4deoUdDodJBIJtm7dij179qClpQWbN2+e8+AZYn7w+Xy4f/8+bt26hdu3b+PWrVtoa2uDx+OBWCzG2rVrsXHjRmzYsAFNTU1Yt24dOds+JMxl2mAwwGQyQa/Xw2w28wDA4eFhmM3mCGGqQqHgQYAs8C9aLJ6Xl5fEs1o5jI+PY2RkhGc3Y3WW2YllOjMajXC73RHPzcnJgVqt5lnO4tWVSiWKi4shkUiSdIaLj8cRewvb4s3JCJmNmcZs9xfzXNZyxuv1YmRkJOH4NzorQ0ZGBoqKimLGvcKx8HJ2D2eZVN1uNzweD3fO93g8XPA9OTnJrymPxwOPxwOHw8Hb2fqBx+PhjvrCYJho4om22X5+fj4XeDNBONtn6wbCNQa6zgiCIAiCIB4KEpATBEEQBEEQBDG3MDE5E6OzfeYmwoTpdrud11nKViZMdzqdEc4iiUhNTUVeXl7EpDFzFcnKyuKi9KysLD4Rzeo5OTnIzMzk9aysLEilUuTk5JCIYQ4Jh8NwOBwJhebC9kTHCd3ThOTm5sYVmEcLz6PT+C7GdL1Op5OLzYXCcqEAnbVbrda4wRpMSM5E5YWFhSgsLERRUREvbJ9tKQiDWCx4vV4uqGDiikSiC6vVGvFcluVCoVBEBFZEB2EIrw9yAZsZu92eMC03c2UTil9YpoVEC+xqtZrE/nFg7q2tra283L59G5OTk3FF5c3NzXPy3WWz2XD+/HmcPXsW77zzDgwGA+RyOXbu3Ik9e/bgwIEDKC4unoMzJBaa1157Dd/97ndJIJ0Aen/mj87OTly5cgUXL17EhQsXoNPpkJ2djZaWFuzatQu7du3CE088sWzFVssJu92OtrY2tLW14fbt27h9+zba29sRCASQk5ODdevWcbH4xo0bUV9fT2PoabDZbBHC8OgtE4r7fD7+nKysLGg0GqhUKr4tKSlBcXExZYlZICYmJmCxWCLG5FarFWazOWLfZDLBYrHEzFsUFRXxMYpKpYqoK5XKCHH4ShmXz4W7t91ux9jYWMT1Ek1mZmZc9+5HEXzn5eXR2HERMzExgZGREZjNZhiNRhiNRphMJi4I1+v1GB4ejvjdl5WVFXE/FWbgYhkaVCpVEs9q9sxG6O3xeDA5OQmHwxFRTyT0Hh8fnzagAgDy8/ORlZXF3fBZPT8/H9nZ2cjOzo6Zb4/n+i0UjBMEQRAEQRBJgwTkBEEQBEEQBEEsfpgL+uTkJHctSeSQzibBmWg9ekLc6/XC6XRO+/dEIhEXk7OJbqlUiszMTF7PyspCTk5ORD03NxeZmZm8npWVxSfGWZ14eHw+X4zoPFpoHk94ztrcbnfCtKYsiCBaWJ5IcM7acnNzkypEn5qaihGVM9dz1j46OoqxsTGMjY3BZrPB4XDEvE5WVlaMqLywsJAL0Nl+dH2xCO+JlUkgEIgQlrN6PMd/i8US87+fkpISISZn9ekE6Dk5OUk628WNxWLByMgI9Ho9T+ut0+lgMBh4uu/x8XF+fHZ2Nl+s12q1fIFeo9FAqVRygdRKF0NNTU2hvb0dra2tuHnzJlpbW3H37l34fD5IJBKsWbMGjY2NWLduHdauXYvGxsbHdoDv7+/H8ePHceLECVy6dAk+nw/19fU4ePAg9uzZgx07dtC9f4lAAunpofdnbggEArh58yauXr2KS5cu4erVq7BarcjOzkZzczN27tyJ3bt3Y/PmzXTvWMQEg0H09PSgra0Nd+/e5aJxnU4HACgsLMT69esjxOLV1dUkpsTHQlgmWGQiYpPJxIMgzWYzDAYDjEZjjDCcBdgJg+2it5TZZe5xOBwzisFZwKrNZosRhLMsYcwZnI0VlEolF4QLxeFL/d7n8/l4pkHhnBvbZ6YPdrud19mcHMtyyObsZhKkMqEpmz9jQlM25yY0jmBzNOzxaDdiGrctD9j4ngnBmTic3VstFgsMBkPEWDM1NZUHami1WigUCpSWlkKj0UCj0fDsDEVFRQt6LkzkLZyT9ng88Hq9cDgc8Pl8PMunz+eLe6zQ3ZvNjc9G6C2cjxZm84wn+mYBE9Fz4cI5byYOJwiCIAiCIJYVJCAnCIIgCIIgCGJlEu2u4vV6ed3j8XAHF6/XG+PmksjZZaZ0nEDs5H1mZiavZ2VlITs7O6Kem5sLsVjMU3eKxWLk5+dDLBbHPE4khn2OLpcLDoeDByK4XK6Hap9OiB5PWB4tOGfCdLZAGm9xdL4IBoNcUC4Ul7O6cCsUoAsX5BhSqXRad/PCwsIIpy+hgxdBJAO73Y6RkZGIlOV2u507awvbDAZDTKCRWCyO+3/NhD7RbVqtdsmLRuYKl8uF4eFhLjAfHh7mAnOdTsfFVkKKioqgUqn4+ysszBGuuLh4RS1eBwIB3L9/H62trVzg19bWxjNSlJWVobGxEWvXrsW6devQ2NiIqqoqpKWlPfTfcrvdOHfuHE6fPo3Tp0+jv78fubm5eOqpp7B3717s3LkTtbW1c32KxBxBAunpoffn0RgfH8f169dx+fJlXLlyBVeuXIHH40Fubi6am5uxZ88etLS0YNOmTSs+CGixMjo6yr877t27h7t376K9vR0ejwcikQjV1dU8OKmxsRGNjY3QarXJ7vaC4vF4uBDcYrHAZDLBbDZHZMNhgsboMVJubi53k1apVBG/W4TC8IKCgiSd3fJicnIyInOXMIiatQvF4DabLWYsL5VKuRhcKAgXCsRlMhmUSiVkMtmiNgRgYtREjt2zqQv3H8Xh+1H3FQoFZaZYQbBxuTDDVfRWr9dHXK9sLC4ce8cLvCkpKXnkbBjTibeZ0Nvr9XLx9kzHCkXhM80TC01MxGIxnxNm1wub/51O9C2RSJCdnR0j+iYIgiAIgiCIWUACcoIgCIIgCIIgiLnE7/fHpAmNThnKFh1Y+tB4i3fxFh5mQiKRICMjI2KBQSgwz87Ohlgsjnk8IyODO8mwxzMyMri7k1gsRm5u7gK8e0sD4QJrovTKs2lPBFsketgF2Oi2oqKiORHw+P3+hIJzodBceMzY2FiMYxsA/v81U8nPz49pW8wL9sTyI/q6jSc0F7ZZrVZMTU1FvIbw+kwkNBe2KZXKRxL7Lgf8fj9sNlvE+xpvq9PpIt7nzMzMhO6d0cKC5crIyAg6Ojq4Y3lHRwfu378Pn8+H9PR0VFVVoampCQ0NDaivr0dzczOUSuVD/Y2enh4uJr+bYrVEAAAgAElEQVRw4QLGx8ehVCrx5JNPYseOHfjEJz6BNWvWkCPtIoEE0tND78/sGBoawtWrV3HlyhVcvnwZ9+7dQygUQnV1NbZt24Ynn3wSLS0tqKmpSXZXiSicTid6e3vR3t7Ovx86OjrQ398PAMjPz0dDQwP/XmhqasLGjRuXbVCW1+vF2NhYxO+2RHWTyQThkin7LTfdb4yCggKUlJTQePkxcLvdCYXgrFit1oj96LFmWlpaRHDzdGJwtp+MYBdhljw278PmjFjWvWgDg+j5JPZ8Vp9O6A18fM0zgwImOmVzQTk5OcjOzo7Johf9HBbwLpFIKAiCiMDr9XI3fxa0wbIysC3LyhAdNJyfnw+1Ws2Dg4XO4SxoWK1WA/ibizebY2Pu2w6HA1NTU1zUzbJV+v1+OJ1O+P3+WYnCZ0KYcXImoffDHrtS5wAIgiAIgiCIRQMJyAmCIAiCIAiCIJYKbrcbPp+Pu55HC8zdbjdfJIn3+Pj4OHw+X8zjfr8/rst0NExgzhzQowXmbDEk+nGRSISCggKkpaVxQTtbtGTPTUtLW1ELkT6fjy8GM+d75m4vTPnMUkC73W6+73K54HQ6I45JBHMdYmme2QIWS/PMXI6EbujC1NDR6WofZmHL6/XGCOeFxeFwJHws3gIeC46YSWjOSl5eHvLy8vgxBDHfMCHITGJzVqJFSsDMovN4ZaUJz2fjWjc8PByRzjuRACx6q1KploUI2uv1or29nbvMtrW14e7du7DZbAAAjUbD3WXXrVuH+vp61NbWzkpIFQwGcefOHe5C/P7772NsbAxSqRSbN2/mLsTNzc3kwp8kSCA9PfT+xDI+Po47d+6gtbUVV65cwaVLl2AymZCWloaamhps374dLS0t2LlzJ0pLS5PdXeL/x+l08qAhJhRvb2/HyMgIgI/FbvX19VizZg3q6uqwZs0arFmzZlkEVT2MKNxoNEY8Vxh8Fv17i0Thj4fL5cLY2FjM2I61jY2NxRWIRzuDZ2RkRIjBi4qKuOg7up2JxedjvPc4bt7xnL1n40ScKGB8NvV4j5E4lXhYgsEgF4FbLBYu/BaKxG02G8xmM0wmU4zZBZvjE2baY67ZIpEIGRkZfLzFhN9TU1NwOBwIBAI8KyTLIhgdpB2PlJQU5OfnIz09nf89liUwIyNjToTeBEEQBEEQBLGMIQE5QRAEQRAEQRAE8THxBOZOp5OLncfHx+H3+7lLj8fjiXh8YmICPp8v5vGpqSk4nc5Z9YGlbmUpkZmrel5eHtLS0iIWhdgxOTk5SE9PR35+PtLS0pCXl8cd1IULRyKRCPn5+RCJRMtODDBTCurpHNGFbTOlqgbiO6Q/zCJ2dF0mk8UVGcZzbp9NMZvNCIVCCfs9nYN7opKVlUUidGLO8Xq93GnRYrFEOPpPV6KFJ2lpaSgsLERhYSGKiop4PVFhYpu8vLwknfn8Ew6HYTabYTabYTAYYDabodfrYbFYoNfrI9qF97zMzEzudKdQKKBSqbhTpVqt5vXi4mJIpdIknuGjYbfbI5zKWZ1lxVCr1dyRlm3XrVs37bmGQiE8ePCAuxSfP38eer0eEokEW7duRUtLC7Zv347t27cjMzNzoU51RUMC6elZ6e/P1NQU7t+/j+vXr+PGjRv48MMP0dnZiVAohJKSEjQ3N2PLli1obm5GU1MTZYBZBLB7N3MRZ/WBgQGEw2GIxWKsXr06wlG8oaEB5eXlSyYoyul0clEiK0y8ODo6GtEWT7BYUFAAlUoV9/taoVBAoVDw7/ZkuE4vJcbHxxMKwGdqjyeOzsvLQ0FBAQoLC1FQUMBF4PHE4HK5HEVFRQ/1Gyt6voIJtZlLdzxnb+ZQLHT2Zm7gzNl7Oth8BBOaZmdn8zFjdnY2F84yAbcwKFv4HOYGnpWVhfz8/If+rAgiHmwuT7hl99iBgQGYzWbY7XZ+XxUaFbDrI1o6kpaWBpFIhHA4jHA4jGAwGHfOJR5s3i56Hih6O91jMx2Tn5+PlJSU+Xg7CYIgCIIgCGIlQAJygiAIgiAIgiAIYuGIt5glFDEn2j7MMSxd7WyY64WreI8xgftSwePxYGJigjujezweuN1u7nzPFtunS73t8Xj4AiRLLzwdbOGcLbZnZ2fHdUBnzvXx0nCz52dkZMDv9yMYDMLpdHKnc6fTyfenq9vt9rh9ZO77QmdzVti+8DEmFmDtzP2KIB6XmYIr4rmdx3N3BGIDK2bjeq5QKCASiZJw5vODzWbjqdWFKdYtFguMRiMsFgtPxy4kMzOTp1eXy+VQKpVQq9WQy+VceM5E6ItZFOT3+9HT04OOjg50dnaivb0dnZ2d6Ozs5OL60tJS1NbWor6+HnV1dairq0N9fT2KiopiXi8cDuPBgwe4ePEiLl26hA8++AAGgwFZWVkRwtTm5mZotdqFPt0VwUoXSM/ESnt/BgcHcfPmTS4Yb21txeTkJKRSKZ544gls3rwZmzdvRnNz87Jwpl6qeL1edHV1obu7G52dnXjw4AG6urrQ1dXFxdIymQx1dXWora1FTU0NvyeXlZUtKuGc3+/nLtPMpVYoDGeBc8J9YdYQAJBIJJDJZFAqlZDJZFxszL5jo793SRQeyaMG4iYKJp5t0G10kcvlSE9PTzien42D93SPz9bR+3GCnaPrhYWFFBBHPBKznd+aae7L5XLBZrPxwAiv1wuv1wu/38+DQmciJSUFqampSEtLQ3p6OsRiMcRiMQ+cl0qlyM3N5fMdjzJXttTmwQiCIAiCIAhiBUMCcoIgCIIgCIIgCGJ58rCLcY8iZJ9tSl1g9s5Lj3MMc1pfjDysWGA26cKdTue0zlfTCQamq6empiI9PR2pqanw+/0Ih8NIT0/nC7RMaB6veL3ehCJ01qd4DuezbSfRAvGoOJ1OjI2NzcrlXHhM9D0uNTU1obs5+z9lYoPo+lJ07RZit9u5OF8o1Gd1trVarRHvm1gs5u+PUKQfr65SqRaFY2wwGMTAwAA6Ojrw4MEDPHjwgIvM3W43AEAul6OhoSFCXF5bWxsjDO/r68OlS5dw6dIl3LhxAw8ePEAwGERxcTGam5u5gLWpqWnZZQhJBitNIP2wLOf3Z2RkBK2trbzcuHEDFosFaWlpqKmpQVNTE5qamrB9+3asX78eaWlpye7yisLn88FgMES4iPf396O/vx9DQ0NcCBudDaKiogINDQ1Qq9VJ6bfwd3m8ILXotnjZgDIzM+MGqcVr02g0izrwaiF5FCG40WiMOxaZTgTOMn9lZ2dDJBLx8VBqaioyMjJ44DAb5/h8PkxOTsLlcsHr9XIH4+hsZtONiRhisZi7dovFYuTk5PBsYyyAWCwWo6CggI/tHuZYghASDAbhcrkQCoX4XILT6UQ4HIbD4eBbAPz/l23Z48LnhUIhHsjAtmyOyG63Y2pqiv9unomMjAyIRCIedC4SiRAMBhEOhzE1NYWpqSn4/f6Y+6tIJEJOTg4XfQsDOGQyGVQqFYqLi6HRaFBeXg6VSrVo54wIgiAIgiAIgkgKJCAnCIIgCIIgCIIgiMdhcnISPp+PLxgKFwqZ4Jm5ojudTgSDQTgcDgQCAZ5mm7l0BwIBOBwO7p7t9/u5o/ds3aSY01NeXh5EIhHfSqVSpKWlITc3F6mpqcjLy0NKSgoXaBQUFAAAT/+bl5eH1NRU5ObmIi0tjYvT2etLJBJkZGTwhfpkwBZ4JycnuYhhLlzTZwoKmM4BPSsrC+np6cjMzEQoFIJIJEIoFOJpoAOBAEKhELxeL3w+H3w+H/98WT9dLhdcLldCJ32xWMwdzgsKCnhduC0oKOCiCpYuPTc3FxKJhDu6s8+YIKbD5XLFFZbHa2OO/+y6jCYtLS2usHw60bmwvlRc/IPBIHctF7qYM3G50N3carVGuGdmZGRwh1XmssqcVmUyWcx+dnb2gp+f3W7n4kfh1mg0Avj4HqXRaCLEj6ysWrUKExMTuHPnToTQtaOjAwBQUVGBlpYWLnTdtGkTOcs+JMtZID0XLIf3JxQKoaenB7du3UJraytu3bqFW7duwel0QiQSoa6uDhs3bkRTUxM2btyI9evXQyKRJLvbKwKbzYa+vj709vbGbC0WC4CPA7FKSkqwevVqXiorK1FTU4Pq6up5+64LBoMzBpDFcweP/j2anZ0NmUwGhULBBYrMITy6jbUvJof0hSKR+Ds6WDbR4/GE+MDfxgESiYSLvrOysiAWi7mbcGZmJsLhMFJSUhAOhzE5OQm/3x83oHemgFxg5kDo2QTqxmsrKiqi7/gVCpsfYXMpbBsdxB8d0C88lv1fT0xM8LkVtmXzMWzLBN4PQ/R8SPS8iHB+JBQKIS0tjf+mDwQCCIfD8Hg8CAQC3C18fHwcbrebj/mjkUqlKCwshFwuR1FRUcLC7q+FhYXIycmZk8+EIAiCIAiCIIgVCwnICYIgCIIgCIIgCGKpwBZBHQ4Hpqam4HK5+OLpdEL26IXV6IXUaOctALNyjBPChABMIMDc5DIyMiCRSJCeno6cnJx5EbPPNex9crlc/L11OBxcdM7EsR6PB06nM0K0zhbD7XY7fx3WxlzLZkIqlUYEAYjFYmRkZCAlJYULQpjwe2pqCikpKfD7/ZiamkIgEOAL7GyR3ePxJPxb2dnZkEgkkEqlyM/P54JziUQSV4QulUr5PhOhs+OXurs0Mfc8inOm3W7H6Oho3ACKeMKk2RaFQrEo3fZCoRAXlZtMJpjNZi48Z3UmQLfZbDHXs0Qi4e6CTGA+3f58Cs6tVis6OjrQ09ODnp4e9Pb28joLgsrNzUVVVRUqKytRVVWFqqoqVFdXIycnB729vbhx4wY+/PBD3Lx5Ey6XC1lZWVwIu27dOqxbtw4NDQ2UiWEaloNAej5Zau+Px+NBe3s72tra0NbWhlu3buHOnTtwu91IT09HQ0NDhFh83bp15Lo7z9jtdu4czkp7ezva29v57+j09HSUlJREBNCwUltb+1iC/kAgMKMQPF6gl9PpjHmtzMzMiEwiRUVFkMvlUCgUESJFoTB8uf9/CQM62dbhcMDhcES0sa0wgM7tdmN8fDxhEGhGRgb/XZ+WlgaRSITU1FSkpKQgNTUVgUAAwMefMSsTExMz9ln4u4iNwXJzc5GZmcl/t4vFYh7sOttjkxkoTCwM02VfY7/dZjrmYbdsvmK2TJeR7XG20a+dkpICn88Hr9fL51xmM26Jzjwk7Pd02RaiszFoNBq63giCIAiCIAiCSAYkICcIgiAIgiAIgiAIYnrmetF4ttuHYaEWloXbR3Xwjuf+N1Pbwxw/W6E6c5Jn4hUmYGFuhcDHbpXBYBBTU1Pw+Xxx02YLYY6IUqmUu6EzQUpubi6ysrIgkUhmVc/Ly0NmZia5pq5Q3G43dzMXOpvPpp4oVTxzNI/ncs5c+oVb1s7aFoOoQyjKNxqNGBkZSbg/MjLCxYyM6cQs8fZZQM/jEA6Hodfr4wrL+/r64PP5AHz8+TBheWVlJSQSCVwuF/R6PTo7O3H//n1MTExAJBKhpqaGC8rXr1+PxsZGqFSqx+7rcmCpCaQXmsX8/gwN/X/s3XuUnHV9P/DP7D27m2ST3YUkEMBgAiRCkJBailykigFvBa1YEaVCtYe2ll5srbXH9nip2or19NDTVkoFEZFLtdWC1WJEAhYBlXCJEBICJARy2Uuy2c1e5/cHv+/D7GaT7Oayzybzep0zZ595nrl8ZnbmmWd239/P99lYuXJlPProo/HII4/EypUrY/Xq1TE4OBhTpkzJwuLpdMopp0yK/dLhZvPmzfHcc8/F888/H88++2w8++yzsXbt2qybeDpGbWhoGNZBvLSj+DHHHBOVlZV7va+enp5d9t17O43WmXq8g6rSafbs2YdVd/DSz8idO3fG5s2bY8uWLfHSSy/Fli1bsi7rO3fuzAaLptB3GjS6u2BrOlauqKjILjOWEGyhUMiOIdKgy5qammhqaoqamppobGzMgtrTp0+PmpqamDp16riC3hx6Sjtip0B1+i5Xui11iB/LtrF24d6Xbtxj6cJdOkvZyNnK0s+R36lHfr8uvex4Bz329/dHZ2fnmIPfpafRBtgUCoUx7UdLZ1QqPQEAABwiBMgBAACAyWe0bugpGJ3+WZ7+AZ7+MZ7+YT5ySuyRU2Dvbsrr9M/18djdP83TP77TP8NTp/XS65T+Yzz9kzldP3Vsj3ilE3v653r6533EK//MH+25S48vPS+764re19eXBWd6e3ujo6Mj+vv7Y/v27dlz19nZGf39/bFt27YxB/wrKiqiuro66/pcWufg4GAUi8UYHByMvr6+vQbeS5/XqVOnZp3Tm5qasuB56qpYX18/bLmpqSnq6upGXT6cQlO8Is3CMDJYPvJn6fbUTbSzs3O33T7r6uqGhcxnzJgxLGA+8mfaXrruYHYAH82OHTti06ZNWXhuy5Ytezw/ssN5fX191o22paUlmpubs1PqTJtOaf14A63t7e3x+OOPxxNPPDGso++qVauiu7s7IiJqa2vjqKOOiqOOOirq6+tjcHAwduzYES+99FI888wzUSwWY8aMGbFw4cJYsmRJLFmyJBYtWhSvec1ryi5gO5kD0pPBZHh+Ojs7Y9WqVVlX8UcffTRWrlyZHfe86lWvipNPPjlOOeWU7PTqV796TIFk9qy3tzfWr1+fBcTXrVuXLT/33HPx7LPPDtsPzp49O4455piYN2/eLmHx2bNnR1dX17DPkz2d2tvbh3UG7+rq2qW+hoaGYR3BSzuDj7Y+nQ7FruA9PT1Zh/SNGzfG5s2bs8/hbdu2RXt7e/b8puPZ0uP4FJgdGBjITvuiqqoqqqurs+B2OnZvaGjIZvlIgxpLQ927G4A6cpvjzcmj9Ptl+v6YXk9pRq6xbkvfK0u3pe+mY9k2Xul7Y+msXSO/U5YGvEtn+trTjF8jZ/4aOQPYvg6Y3hd7mrmodOD07rbvbhD1vg6wmayzFwEAABxgAuQAAAAApVJXtvRP//0Js6dQdmk4fU+d5NL1x2u0oHoKtacucBF7DqqngMCegurpfgqFQlRVVcXAwMCwLuUDAwPR19cXnZ2dWehi+/bt0d/fv9tQe3qeU9e40u554wlYjNZBfWhoaK/h9KqqqqzjXXV1ddYlMoXVp06dGrW1tdHa2pp1f2xubo4ZM2bsEhRKyxMZtuDgGC2kMpbwStq+u+nsI0YPspS+hkY7lW4/8sgjD1qQNAXON23alHVu3bx5c2zatCm2bt0aW7Zsia1bt2anLVu27HIbjY2N0dLSEq2trVnQfGTwfOS23YW829vbh4XKS0/PPvts1v21NPg3ODgYW7dujf7+/qiqqoqjjz46XvOa18SiRYti3rx5sXDhwjj11FOzfd/hZjIEpCeziXx+Ojs74+mnn84GSKSfadDD1KlTY8GCBdnAh0WLFsWpp54aLS0tB722w1WafWHjxo3ZvqL0fOl+o7a2NubMmRMtLS0xc+bMaG1tzbo9V1VVRV1dXXR3d+9xANJo+/na2tpslovS04wZM/YYAp85c2auA17S8Wg6VkvHsOnYtKOjI7q7u2PTpk2xY8eO2Lp1a9a9e/v27cOO+dJAxZEh76GhoTF17Y6I7JiusrIyKisrs+PW6urqqK+vzwYEptOMGTOisbExmpubY/r06TFz5sw44ogjskFcpcd21dXVWZCWibGnGacmYlt6TY7XWGalOtjbUlB8stq2bVu2HygdAJKWSweG7G57mo1mpMbGxlEHa44cpDlyBqF0/KxDPwAAwF4JkAMAAABMNil8XRpeT6HqFOyJeCXIvqeg+mhd8EZ21iu9nxSwSEHufZGC6qkTe5riPGLPQfWRnfQKhUI0NjZGX19f1NTUxNDQUES83M28t7c3ampqore3NwqFQhZeLxaLWfi8UChEe3t71lk9dVNPQaihoaHYvn17DA0NZR0Gdxdg2BcVFRVZ4Kmqqipbrq2tjZqampgyZUrU1NREU1NT1NbWZgHYFHSaOXNmTJs2LVpbW6O2tjaam5ujoaFBZ8tDRGnYfDzh83TasmVL9Pf3j3rbow1e2FMYfXfr9neww9DQ0LAweeny5s2bdwmbp+WRf5JOob/W1tZhgfPS5ZFdeOvq6mL9+vXDQuUpKLpmzZpYt25ddj81NTVRKBSyfUShUIjm5uZ41ateFYsXL47TTz89Fi1aFCeddFI0Nzfv8/MxGQiQ79nBeH5efPHFeOqpp+KXv/zlsKD4Cy+8EBEvv75POumk7DW2aNGiWLhwYRx33HH232PU29sbGzdujBdeeCFefPHF2LBhQ7z00kvZ+379+vWxYcOGYTOkNDY2RmNjY0yZMiWqq6ujoqIim/mku7s7tm3bNupnflVV1ajh79KfezodyG7gewpzDw4ODht4l4Ky6Xhx06ZN0d/fH21tbbFz585sZpl06uvry44P96Uj8kjpWCeF72tra4cdr0ybNi2bNaa+vn5YuDuF+GfPnh0zZsyI1tbWA/DslY/S4/h0bB/xyvF+6XeA0g7YaQBs6WDW0hB2+i5R+v0ivRYjXvkeUvqdYX+/R4z2nWFP3ydG25aOjdO20WZ22tO2NND2cLanY9S9nS9dN9YBk+MZKJlOLS0th/3vAQAAYBIQIAcAAABg78bT5W+8lx/rbaWgy74YraNf6fLIdTU1NTE4OJgFogYHB7MumBUVFVnYvL+/P5uSPnXZHBwczLb19fVl51MHznSZ/v7+rBvnvj6uiFe6r6faqqqqorq6OusaX1lZGfX19VnXzhTuamhoiNra2pg+fXrU1dVFU1NT1NfXZwH2FOqtr6+PI488MnuO0vPFwbdt27ZhHRvTz46Ojti+ffuw7q/t7e3Zcjqly+0uiJ5mLZg+fXo0NjbG1KlTo7GxMZqammLatGnZuqlTp0ZTU1O2nNanjq9Tp04dc2iyWCyO2sl869atWdfzkdva2tqyASRJVVXVLqHy0lN9fX0MDAxET09PdHV1xbZt22LLli2xbt26eO6550a9zYiXuwe3tLTEUUcdFccff3ycdNJJcdppp8XSpUvjiCOOGP8vcYIJkO/Zvj4/o3XDf/zxx+PRRx/Nbqu2tjaOP/74LCCefp500klmpRghfa63t7fHU089FWvXro3nnnsuNmzYEC+++GK0tbVFR0dHdHZ2RldX1y5B74qKiigWi7udZWRPQcW9hRZnzZq1299XCuKmwG0K1qawbArvjgxzp+ukruUpzJ324b29vdntpWOdsYa6C4VCVm/pDCx7UlFREbW1tVFXV5d9tqd9eerSnbr3ps+DWbNmZSHw9DnR2NgYDQ0N2Uw3h7P0u5yMYe19VRqUToM/S2cuSrMZFQqFrGN76fFymqGodDDonmYyGm3byIGl7Ko0sN3R0ZENAkmDY3fs2JEd73V1dWXHPKkzeDo27OjoiK6urj2+ZtLxYDql93np+XQc2NjYGNOmTRt2vJiOKXX4BwAAOGSsn7xzXgEAAAAwaaTgcAqY5CUFKEbrzr67UE/aHvFyCCMihgVwSgM6KcAzODiYdXovDQClgNDu7mtfFAqFmDFjRhSLxaiurs4CNLW1tVFRUREDAwMxZcqU6O/vj0KhEIVCIQYHB7OgWKonBY/S4ysWi1mH9S1btmTXST9TwGxf+0tUVlZGRGThohRaT93WU3C9oqIiGhoaorKyMgsr1dfXR11dXdTX12dd1adOnZoF00qDKqlTdkT5BY1SMOfoo4/er9tJnWtTCL00eJ5C6aXrOjo6YsOGDcNC6u3t7dnrfzQpEFYaNmpoaIimpqZoaGiI+vr67PGk33vadvzxx8fixYuzQQypS22p9vb2aGtri61bt0ZbW9uopy1btsRTTz017HK7C54vWLAgpk2blnUg7e3tjc7Ozixg9cgjj8RPf/rTYdctFApRW1sb06ZNi9mzZ8fcuXPj1a9+dSxatChOOeWUOProo/cYPmVy6+3tjQ0bNmQdxEcGxiNe3t/NnTs35s2bF4sWLYrf/M3fjEWLFsW8efPiuOOOO6x/9yn42tnZGTt27Bi2DykNLLa1tcVLL70Umzdvjvb29mz7jh07ss7Xu1MoFIbNRDJ9+vQ45phjoqWlJVpaWmL27NlZl+pp06ZlnwXV1dXZ505lZeVuB6qVBtc3bty4x8t1d3cPC4N3dHSMK6ybBnWlz+00+0H6rN7bZ296HtJgr/r6+mhsbMxmKmlsbIzp06dnA2bSQLDSGUrS52zpwLA028tkUHp8NpHLewtjp2PF0ll/9sXewtjp9xrxyiw8NTU1MW/evIgYe1g74pXjo9JO3KnLdsQr3bVLO25z4OzYsSOb6ah0Oe1D0nLal5Qul+6XSpdLv3/sThoQOn369F2C3XPnzh12TJ0G/ZUOAhl5HQAAAMrP5PgrEQAAAACMQeqWGRExc+bMnKsZ3Wjd00uXD/b23V12T+HfsaqqqorKysooFotRUVGRdWMvFApZx/XSkFxph9i0vKeusfuqoqIiC+ulgFYK3xUKhaipqYmampqYMmVKFjRMIaoUqquoqMiCNdXV1VnAZvr06XvtWD9yOQXFJova2tqss/b+2rlz5y4dzlOQtDSgngKmnZ2dsXXr1njuueeyoPqOHTuiu7s7C+ntThpUUF9fHzNmzMg63abfS9o2e/bsWLBgQRY+nzFjRrZcXV0dxWIxG+jR3t4+7LRx48Z44YUXore3d9jgkdG6tldUVMTg4GC0t7fH1q1bY+XKlbu8ltPrLQXkjzrqqHj1q18dJ598csyfPz9mzZoVs2bNitbW1izYd7gbGhqaVMHqYrEY3/rWt2L16tXZ6amnnoqNGzdGxMv7uWOPPTbmz58fJ510UrzjHe+I+fPnx/z58+PYY4/NBs8cCnp6eoYFEdPrfjzn29raoqenJ7Zt27bbfXdpB+zR3hO1tbUxZcqUOOKII7IO1yncPGXKlGwgUX9/f9ZRt6+vLwv9Pvvss2u3jnkAACAASURBVLFmzZqsS3dnZ+eYP0cqKiqipqYmC8+mjt2FQiG7TAp0Dw4OxtDQUPT19e21i3eSZvJIIe7m5uZhnc1LPzNGrtvdcnNz87j3D6Wf8SOXU0fsNWvW7PYyE7VcGuTeH6Xh6PEuz507NzueOVBh7NG6eZO/NPAlHQOk119HR0f09/fH9u3bs/1dmk0gbevq6soGmW7bti2bTSANLEiDYvY2o0UaNLC79/3MmTP3um9I+5CRywAAALC/BMgBAAAA4ABK3dojJl+IKAVpIkbvrD40NJQFzUovW9pxPSKGBX9T1/bS24kYHhIr7fJe2kW+p6cnenp6YnBwMAYGBmLHjh1ZiG88Xd2HhoayGtL9lCoNCqbHMxFSiDx1Zo94+fVRKBSisrIyW04d2mtqarJu66lTbKFQiNbW1igUCllX2YiXw9Up+FYaYhvv8nilQRytra37dP3RjDXIWrr84osvjnrZbdu2xeDg4B7r312gc8aMGdlyVVVV1NXVZa/HioqKbJBEut/e3t7o6OjIgvSpw2hvb2/09vZGW1tbrF27Nu69995Ra0nB1tQhuLW1NWbPnh1HHXVUzJ07N+bOnRvHHXdczJ8/P4444ogD9nxPhKeeeiquvfba+M///M/o7OyMM888M/7oj/4ofv3Xfz3v0qK/vz8uvvjimDFjRixcuDAWLVoUF1xwQcybNy/mzZsXCxcuzPbhE2FgYCAbWFHatba3t3fY676joyN6e3tjx44dsW3btti5c2d0dXVlIceurq5oa2vLun3vaR9aVVWVnUrD1Gl2irRPToHqUiMD2KX739EUi8XYuXNn1lW39H7TfrF0YNLg4GAUCoUs1J3qGOsAqClTpkRNTU1MnTo1qqurY8aMGVFZWRnTp0/PBnek935jY2MUCoWor6+PqqqqaGxsjIGBgSwsnGYGqa6ujtra2ujt7c0GHJV+1pR+xqXfZ1K6T+ro6MgGKoz8XC39zCztjJ2ulz63dhfM3h/7E8Y+8sgj9/m6+7PMoSm9V9LPkQMeR84EUHrZ0p/pMrsLdvf19Q07Pt2TtF9IgwCmT58e1dXVMW3atOxYYc6cOdn+JA0sSMf7KRy+u+VymDEHAACAQ5cAOQAAAACUicrKykkXat+bgxFeT8vptlLgsr+/P+tum0KU27Zti6Ghoejv74+enp4saN/b25uFAku71abrRcSwMGBSGgqcDFKYPSKGBTpTuDni5ddNXV1ddtm6urqorq7OllOH97Tc0NAQdXV1UVtbm4WxUnfehoaGLHzV0NAQEa+Et5JZs2bFnDlzsvtOQfmI4R3fd6ejoyML0G7bti22bdsW3d3d0d3dHZ2dndHb25t1TU+dRbu7u2Pnzp2xcePG3QZ29xRMj3i5E3F9fX0ceeSRUV1dnT1P6fVRGoDr7e2NgYGBLJDe1tYWzzzzzB5vP3XaT/czbdq0mDlzZsyYMSNaWlriyCOPjBdffHGPtzERenp64u1vf3ts2LAh3vve90Zzc3Pccccd8ba3vS2+973vxdlnn51rfdXV1dHe3j6ukPhYQtw7d+6MzZs3Z6+t9DosvV5PT0+2f0oByL0FHNPvvVAoRKFQyILEaZaH9HM8BgYGYmBgIAuBp0B4OqV9QbrfFOru7e3NBlWMRdpHVFRURH19fUS83Km5WCxmM0SkfUua1aKuri4GBweHhcz7+/uz4Hlvb29Wb5pdINVZGtwe2Wn46aefzraVBrIPhNL9Uuo2nJTOSDFy8E7qdB0R0dramgVNKyoqssFEES8PGEr75tJO18LYjEf6DCo9rkph69JBC+kYqHQflQYXps/CdMyVfqb3W/qZbjf9LD0WG4t0XJDeM+lnOn5In4O7C3bX1dVlg0iampqy66fX/bRp06K6unrY+wwAAADKUaE4Ue12AAAAAADKVApijVwuPd/X15cFTbu7u7NO7CnolYLOES8H4/v6+qKnpyfrjJ2CXMViMbq6urKQaDrt3LkzC3+mUHsKvJcG4EsDqhET17F9f6Tga0RkQdSksrIyC8lHvNx9eWR3+MrKyiyoW1NTk61LncjT+YiXg22pW3J1dXUUCoXo6+vLAq87d+6MwcHBKBaLUSwWs99PGqDQ3d0d/f39WdguhesO1PPQ2NiYzR6Qhz/+4z+OL33pS3HnnXfGBRdcEBERL730UixevDjq6+tj7dq1udV23XXXxdVXXx3nn39+Fu7esWNHFu5O76fe3t7o7+8f9l450NLrtXSGhJHvtf1976VgdlouDWoXi8Vh75vSQHnE6LM5HCgjQ9Yjz+9rILupqSl7DKWdf/cUyB45gKV0kFVpyDqFU5Np06YN269QvkoHp5UGsUuD1xHDBy6UDkpKIeux3lYKaaeAdultp6B26SwyYxkANZrS90Z6X6T3XxrIkH6m90r6OXKmj9Fm/5gyZcqw69TX1+/yfgQAAAAOqvUC5AAAAAAAjFlbW1sWZOvt7Y3NmzdnXdq3b98eO3bsyELsEZF1a05SZ+bBwcEsBJ+6u/f19cXAwEDWpTt1WO7p6cnC7amjdzqlsHbanoJyKcBd2uE5rTvUlAZ792bKlClZqDAPM2fOjLlz58YjjzwybP0HPvCBuPHGG+P//u//4nWve10utV133XVx1VVXHbRQ+P4o7QIe8XJ4M61LHbzTYIiKioqYOXPmsPNNTU1ZKLqqqiqam5uH3f7I2Sf25/zeAuB7O0/5GjmAKuKVztilSsPTo123NDxdGpaOGD5TyViC2vt7W/urdMBE6aCIkQMf0nswBa5LBzWkAQ3ptkrfcyn0XXrbabBFCnOX3lfpAAsAAADgsLbeXwAAAAAAABizmTNnxsyZM7PzJ554Yo7V7L/Ozs5hIfOR50u7xg4NDcWGDRuGXX/jxo3Durtu3LgxCzkWi8XYuXNntLe3Z+H2FJRPXedTCH5wcHBY9/LUATttHxgYGNYpvr+/P6srBeUHBwfHFTY/0LZs2RLt7e3x27/927tsW7BgQUREPPTQQ7kFyCOGh/FLu3On5dRVurKyMut0Xdqlvrq6OqqqqqK+vj4LXtbU1ERtbW3U1NRk4cvSQGdlZWU0NzfHzJkzs2BmfX39qL+r0jDpWBzsy++LYrE4LHgb8fLAk8lqPGHg0cLOuzMwMBDbt28f02WLxWI228RYjNZVujQIvacaRnbG3tP9l+7/9nTfqSt2qQMZst6b0gEO06dPz97PpR3rS7vSl3a6njJlShx55JGj3lZpp/nUbTti+Puo9LYqKytj2rRp47otAAAAgLwIkAMAAAAAULZKO7xG7Np5eaSlS5cezHL2y3XXXRd//Md/nNv9P/nkkxERMXv27F22nXDCCRERsWnTpgmtaaTKysr4zd/8zez8aAHZiNHDuMn27duju7t7lyDxyO7FpUbrvAylUmfpsSgNLScjO1Yno+3TUgfqpFAoxLHHHpsFnJPSAPae6iwNZye1tbVRX18/bF1pF+xkZOg61TOya/2egtoAAAAAjJ8AOQAAAAAAsN+efvrpiIhhHeqTY489NiJiXF2WD4aqqqq49dZbc61hT3YXaM/r8uVgvGHkvQ0yKZU60gMAAADAZOOvVgAAAAAAwH5LXYnb2tp22Za6eY8nfFuORnZd3hvPJwAAAACwLyryLgAAAAAAADj0zZo1KyIi1q5du8u2FCpvbW2d0JoAAAAAANiVADkAAAAAALDfFixYEIVCYdQA+SOPPBIREa973esmuiwAAAAAAEYQIAcAAAAAAPbbnDlz4uyzz44f//jHsWbNmmx9f39/3HzzzXHUUUfFkiVLcqwQAAAAAIAIAXIAAAAAAOAA+fjHPx79/f3x7ne/O/7jP/4jli9fHm9729ti7dq18ZWvfCUKhULeJQIAAAAAlL2qvAsAAAAAAAAOD+eff3587WtfiyuvvDLe+c53RkREU1NTXHPNNXHBBRfkXB0AAAAAABEC5AAAAAAAwAH0nve8J971rnfFQw89FENDQ/G6170uKisr8y4LAAAAAID/T4AcAAAAAAA4oKqqquJXf/VX8y4DAAAAAIBRVORdAAAAAAAAAAAAAAAAE0OAHAAAAAAAAAAAAACgTAiQAwAAAAAAAAAAAACUCQFyAAAAAAAAAAAAAIAyIUAOAAAAAAAAAAAAAFAmBMgBAAAAAAAAAAAAAMqEADkAAAAAAAAAAAAAQJkQIAcAAAAAAAAAAAAAKBMC5AAAAAAAAAAAAAAAZUKAHAAAAAAAAAAAAACgTAiQAwAAAAAAAAAAAACUCQFyAAAAAAAAAAAAAIAyIUAOAAAAAAAAAAAAAFAmBMgBAAAAAAAAAAAAAMpEVd4FAAAAAAAAB0ZXV1e0trbmXUZmcHAwKisr8y4jIiJ27twZhUIh7zIAAAAAAHInQA4AAAAAAIeBM888M/7xH/8x7zIy7e3t8a1vfSs++MEP5l1KpqamJu8SAAAAAAByVygWi8W8iwAAAAAAAA4vf/d3fxef/OQn46WXXoqpU6fmXQ4AAAAAAC9bX5F3BQAAAAAAwOHnhhtuiJ6envj2t7+ddykAAAAAAJQQIAcAAAAAAA6oX/7yl/H4449HoVCIm266Ke9yAAAAAAAoIUAOAAAAAAAcUDfffHNUV1dHsViMu+++OzZt2pR3SQAAAAAA/H8C5AAAAAAAwAF14403Rn9/f0REFAqFuP3223OuCAAAAACARIAcAAAAAAA4YH7605/Gs88+m50fHByMG2+8MceKAAAAAAAoJUAOAAAAAAAcMN/4xjeiuro6O18sFuOnP/1prFu3Lr+iAAAAAADICJADAAAAAAAHxNDQUHz961+P/v7+Yeurqqri1ltvzakqAAAAAABKCZADAAAAAAAHxPLly2Pz5s27rO/v748bbrghh4oAAAAAABhJgBwAAAAAADggbr755qipqRl12xNPPBGPP/74BFcEAAAAAMBIAuQAAAAAAMB+6+vri9tuuy36+vpG3V5TUxO33HLLBFcFAAAAAMBIAuQAAAAAAMB+u/POO6Orq2u32/v6+uKGG26IYrE4gVUBAAAAADCSADkAAAAAALDfvv71r0dVVdUeL/P888/Hgw8+OEEVAQAAAAAwGgFyAAAAAABgv3R1dcV3v/vdGBwcjOrq6qiuro6qqqqorKzMzldXV0dExDe+8Y2cqwUAAAAAKG97bgUCAAAAAACwF9u2bYsvf/nLw9atWLEibrvttl3Wt7S0TGRpAAAAAACMUCgWi8W8iwAAAAAAAA4v1113XfzJn/xJdHZ25l0KAAAAAACvWF+RdwUAAAAAAAAAAAAAAEwMAXIAAAAAAAAAAAAAgDIhQA4AAAAAAAAAAAAAUCYEyAEAAAAAAAAAAAAAyoQAOQAAAAAAAAAAAABAmRAgBwAAAAAAAAAAAAAoEwLkAAAAAAAAAAAAAABlQoAcAAAAAAAAAAAAAKBMCJADAAAAAAAAAAAAAJQJAXIAAAAAAAAAAAAAgDIhQA4AAAAAAAAAAAAAUCYEyAEAAAAAAAAAAAAAyoQAOQAAAAAAAAAAAABAmRAgBwAAAAAAAAAAAAAoEwLkAAAAAAAAAAAAAABlQoAcAAAAAAAAAAAAAKBMCJADAAAAAAAAAAAAAJQJAXIAAAAAAAAAAAAAgDIhQA4AAAAAAAAAAAAAUCYEyAEAAAAAAAAAAAAAyoQAOQAAAAAAAAAAAABAmRAgBwAAAAAAAAAAAAAoEwLkAAAAAAAAAAAAAABlQoAcAAAAAAAAAAAAAKBMCJADAAAAAAAAAAAAAJQJAXIAAAAAAAAAAAAAgDIhQA4AAAAAAAAAAAAAUCYEyAEAAAAAAAAAAAAAyoQAOQAAAAAAAAAAAABAmRAgBwAAAAAAAAAAAAAoE1V5FwAAAAAAABwa+vr6Yt26ddnp+eefjxdffDG2bt0aW7duje3bt0dnZ2dEROzcuTMKhUIcf/zxERFRU1MTU6dOjebm5uw0Z86cOO6447LTkUcemefDAwAAAAAoC4VisVjMuwgAAAAAAGBy6erqip/+9Kfx4IMPxsqVK2PlypXx5JNPRn9/f0RETJs2LY455piYNWtWtLS0RHNzczQ1NcXUqVMj4uXAeH19fXR0dERExMDAQHR2dsaWLVuywPn69etjw4YNMTAwEBERM2fOjMWLF8cpp5wSixcvjjPOOCNOOOGEKBQK+TwJAAAAAACHn/UC5AAAAAAAQHR3d8cPf/jD+MEPfhArVqyIlStXxsDAQMydOzdOOeWUOPnkk2Px4sWxYMGCOO6442LmzJkH5H4HBgbi+eefj2eeeSYee+yxePTRR+ORRx6Jxx9/PLq7u6OlpSXOOOOMOPfcc2PZsmWxcOHCA3K/AAAAAABlSoAcAAAAAADK1caNG+P222+P73znO3HvvfdGb29vnHrqqXH22WfHmWeeGb/2a78WRx11VC619ff3x89//vO4//7747777ovly5fH1q1b49hjj41ly5bFxRdfHOedd15UVVXlUh8AAAAAwCFKgBwAAAAAAMpJe3t73HLLLfHNb34z7r333mhsbIwLLrggli1bFsuWLYtZs2blXeKoBgcH48EHH4y77ror/vu//zsefvjhaGlpiXe+853x3ve+N84666woFAp5lwkAAAAAMNkJkAMAAAAAQDm499574ytf+UrcfvvtUVFREW9729vi3e9+d1xwwQVRV1eXd3njtmbNmrj11lvj1ltvjV/84hdxwgknxJVXXhkf+MAHorW1Ne/yAAAAAAAmKwFyAAAAAAA4XPX19cUtt9wSf//3fx+PPvpoLFmyJC677LJ4//vfHzNmzMi7vANm1apVccMNN8R1110X27dvj0suuSQ++tGPxsknn5x3aQAAAAAAk40AOQAAAAAAHG66urri2muvjS9/+cuxZcuWeM973hNXX311nHbaaXmXdlB1d3fHzTffHF/60pdi1apV8eY3vzk+/vGPx1lnnZV3aQAAAAAAk8X6irwrAAAAAAAADoyenp744he/GPPmzYvPfOYzcdlll8XatWvjxhtvPOzD4xER9fX1ceWVV8Zjjz0W3/nOd6KnpyfOPvvsOP/88+OBBx7IuzwAAAAAgElBgBwAAAAAAA5xQ0NDcf3118fxxx8fn/zkJ+O3f/u345lnnonPf/7zcfTRR+dd3oQrFArxlre8JX70ox/F3XffHd3d3fGrv/qrcdFFF8XTTz+dd3kAAAAAALkSIAcAAAAAgEPYihUr4ld+5Vfiwx/+cFx00UWxZs2a+PznPx/Nzc15lzYpnHfeebFixYq48847Y/Xq1bFo0aL4sz/7s+js7My7NAAAAACAXAiQAwAAAADAIaijoyM+/OEPx9lnnx3Tp0+Phx9+OK699to48sgj8y5tUrrgggti5cqV8ZWvfCVuuOGGOOGEE+LGG2/MuywAAAAAgAknQA4AAAAAAIeYW2+9NU488cT47ne/G7fffnvcfffdccopp+Rd1qRXUVER73//+2PVqlXx1re+NS6//PK46KKL4oUXXsi7NAAAAACACSNADgAAAAAAh4jOzs543/veF+95z3vi/PPPj5UrV8bFF1+cd1mHnJkzZ8Z1110X99xzT/zyl7+MhQsXxte//vW8ywIAAAAAmBAC5AAAAAAAcAhYvnx5nHzyybF8+fL4n//5n7jxxhujubk577IOaWeddVb87Gc/i0svvTQuu+yyuPzyy2P79u15lwUAAAAAcFAJkAMAAAAAwCQ2NDQUf/M3fxNvfOMbY+nSpbFy5cp405velHdZh40pU6bEtddeG//1X/8Vd911VyxZsiQeffTRvMsCAAAAADhoBMgBAAAAAGCS6ujoiHe84x3x2c9+Nv7xH/8x7rjjDl3HD5K3vvWt8cgjj8SsWbPijDPOiFtuuSXvkgAAAAAADgoBcgAAAAAAmISefPLJWLp0afzsZz+L5cuXx1VXXZV3SYe9WbNmxd133x1XXnllvPe9740/+7M/i6GhobzLAgAAAAA4oArFYrGYdxEAAAAAAMAr7r333viN3/iNmD9/fnz729+OWbNm5V1S2bnpppviyiuvjLe+9a3xta99LaZMmZJ3SQAAAAAAB8J6HcgBAAAAAGASueWWW+JNb3pTnHvuubF8+XLh8Zy8733vi+9///uxfPnyOO+882Lz5s15lwQAAAAAcEAIkAMAAAAAwCTxr//6r3HppZfGVVddFbfddpuu1zk7++yz4/77749NmzbFueeeGy+88ELeJQEAAAAA7DcBcgAAAAAAmASuvfba+N3f/d346Ec/Gtdcc01UVPgT/mRwwgknxH333RcVFRVx5plnxpo1a/IuCQAAAABgv/jrMwAAAAAA5OwLX/hC/MEf/EH8/d//fXzuc5/LuxxGmDVrVtx9993R1NQUb3jDG2LdunV5lwQAAAAAsM8KxWKxmHcRAAAAAABQrq699tr4gz/4g/iHf/iH+MhHPpJ3OexBe3t7nHfeebF9+/b48Y9/HHPmzMm7JAAAAACA8VovQA4AAAAAADn56le/Gh/84AfjM5/5TPzFX/xF3uUwBps2bYpzzz03CoVC3HPPPdHS0pJ3SQAAAAAA4yFADgAAAAAAebjrrrvi7W9/e/z5n/95fPrTn867HMZhw4YNcdZZZ8WsWbPi7rvvjilTpuRdEgAAAADAWAmQAwAAAADARHvsscfi9a9/fVx44YXx9a9/PQqFQt4lMU5r1qyJM844I84555z45je/GRUVFXmXBAAAAAAwFuv9NRMAAAAAACbQCy+8EMuWLYslS5bEV7/6VeHxQ9Txxx8ft99+e3znO9+Jv/iLv8i7HAAAAACAMdOBHAAAAAAAJkhfX1+84Q1viLa2tvjJT34STU1NeZfEfvra174WH/jAB+Ib3/hGXHLJJXmXAwAAAACwN+ur8q4AAAAAAADKxdVXXx0rV66M//u//xMeP0xcdtll8eCDD8YVV1wRixYtite85jV5lwQAAAAAsEc6kAMAAAAAwARInapvu+22eOc735l3ORxA/f39cd5558WmTZvi4YcfjsbGxrxLAgAAAADYnfUC5AAAAAAAcJCtXbs2Xvva18YVV1wR11xzTd7lcBC88MILsXjx4nj7298e//Zv/5Z3OQAAAAAAuyNADgAAAAAAB9PAwECcffbZsW3btnjooYeirq4u75I4SO666654y1veEt/4xjfikksuybscAAAAAIDRrK/IuwIAAAAAADicfe5zn4uf//zn8c1vflN4/DB3wQUXxIc//OG46qqrYuPGjXmXAwAAAAAwKh3IAQAAAADgIFm1alW89rWvjU9/+tPxp3/6p3mXwwTo7u6Ok08+OU477bS47bbb8i4HAAAAAGCk9QLkAAAAAABwEAwNDcU555wTXV1d8eCDD0ZVVVXeJTFBli9fHr/+678ed9xxR1x00UV5lwMAAAAAUGp9Rd4VAAAAAADA4ehf//Vf44EHHoivfvWrwuNl5g1veENcdtll8fu///uxffv2vMsBAAAAABhGgBwAAAAAAA6w9vb2+MQnPhF/+Id/GIsXL867HHLwxS9+MXp6euKzn/1s3qUAAAAAAAwjQA4AAAAAAAfYX//1X0dlZWV84hOfyLsUctLS0hKf/OQn45prronVq1fnXQ4AAAAAQKZQLBaLeRcBAAAAAACHiyeffDJOPvnkuPbaa+N3fud38i6HHPX398fixYvjpJNOijvuuCPvcgAAAAAAIiLWC5ADAAAAAMAB9J73vCcef/zx+MUvfhGVlZV5l0POvvvd78bb3/72eOCBB2Lp0qV5lwMAAAAAIEAOAAAAAAAHymOPPRaLFy+O2267LS6++OK8y2GSOOOMM2LGjBlx55135l0KAAAAAIAAOQAAAAAAHCgXXXRRPPvss/Hwww9HoVDIuxwmiR/84Adx/vnnx4oVK+LMM8/MuxwAAAAAoLwJkAMAAAAAwIHwxBNPxGte85r41re+Fe94xzvyLodJ5qyzzorp06fHd7/73bxLAQAAAADKmwA5AAAAAAAcCFdccUXcd9998cQTT0RFRUXe5TDJ/Nd//Vf8xm/8Rjz22GOxcOHCvMsBAAAAAMrXen/BBgAAAACA/bRp06a4+eab40/+5E+ExxnV2972tjjxxBPjS1/6Ut6lAAAAAABlzl+xAQAAAABgP/3zP/9zTJ06Nd73vvflXQqTVKFQiKuvvjpuuumm2Lp1a97lAAAAAABlTIAcAAAAAAD2w9DQUFx//fXxwQ9+MKZMmZJ3OUxil156adTU1MTXvva1vEsBAAAAAMqYADkAAAAAAOyHu+66K5577rm44oor8i6FSa6hoSF+67d+K/7lX/4l71IAAAAAgDJWKBaLxbyLAAAAAACAQ9XFF18cHR0d8cMf/jDvUjgEPPTQQ7F06dK4//7744wzzsi7HAAAAACg/KzXgRwAAAAAAPZRR0dH3HnnnXH55ZfnXQqHiNNPPz0WLVoUN998c96lAAAAAABlSoAcAAAAAAD20be+9a2IiHjHO96RcyUcSi655JK4/fbbY3BwMO9SAAAAAIAyJEAOAAAAAAD76NZbb41ly5bF9OnT8y6FQ8gll1wSL774Ytxzzz15lwIAAAAAlCEBcgAAAAAA2Afbtm2Lu+++O971rnflXQqHmAULFsTixYvjP/7jP/IuBQAAAAAoQwLkAAAAAACwD/73f/83BgcH481vfnPepXAIestb3hJ33nln3mUAAAAAAGVIgBwAAAAAAPbB9773vfiVX/mVaG1tzbsUDkHLli2LZ555JlavXp13KQAAAABAmREgBwAAAACAffC9730vli1blncZHKLOOOOMaGpqirvuuivvUgAAAACAMiNADgAAAAAA47R27dp4/vnn441vfGPepXCIqqqqinPOOSfuueeevEsBAAAAAMqMADkAAAAAAIzTihUrora2NpYsWZJ3KRzCzjzzzLjvvvvyLgMAAAAAKDMCatgDvAAAGjFJREFU5AAAAAAAME733XdfnH766VFXV5d3KRzCXv/618dLL70Ua9asybsUAAAAAKCMCJADAAAAAMA4PfDAA/Frv/ZreZfBIe60006Lurq6uP/++/MuBQAAAAAoIwLkAAAAAAAwDn19fbFq1ap47Wtfm3cpHOJqa2tj4cKFsXLlyrxLAQAAAADKiAA5AAAAAACMwxNPPBF9fX1xyimn5F0Kh4GTTz5ZgBwAAAAAmFAC5AAAAAAAMA4rV66M2traWLBgQd6lcBgQIAcAAAAAJpoAOQAAAAAAjMMvf/nLWLBgQVRXV+ddCoeBRYsWxYsvvhjt7e15lwIAAAAAlAkBcgAAAAAAGIdnnnkm5s2bl3cZHCZe9apXRUTEunXr8i0EAAAAACgbAuQAAAAAADAO69ati+OOOy7vMjhMHHvssVFRURHPPPNM3qUAAAAAAGVCgBwAAAAAAMZBgJwDqa6uLmbNmiVADgAAAABMGAFyAAAAAAAYo8HBwdi0aVMcddRReZfCYeToo4+OF154Ie8yAAAAAIAyUZV3AQAAAAAAcKhoa2uLoaGhaGlpmfD7fuKJJ+Lb3/529Pf3xyc/+ckJv38OnpaWlti6dWveZQAAAAAAZUIHcgAAAAAAGKMU8p3oAPmmTZvi9NNPj7/8y7+M2267bULvu1zcf//98elPfzpeeumlCb9vAXIAAAAAYCIJkAMAAAAAwBi1tbVFRERzc/OE3u99990XPT098bd/+7fx2GOPTeh9l4t77703/uqv/io2btw44ffd3NwsQA4AAAAATBgBcgAAAAAAGKOurq6IiGhoaJjQ+21vb4+IiNNOO23c1x0aGjrQ5UxKY32ck/H5aGhoiB07duRdBgAAAABQJgTIAQAAAABgjPr6+iIioqamZsLu82Mf+1h86UtfioiIT3ziE3H55ZdHRMRHPvKRuOKKK2L9+vXxe7/3e9Ha2ppdZ9WqVXHhhRdGa2trNDQ0xNKlS+OOO+4Ydru/8zu/Ex/4wAfi6aefjiuvvDLmzp0b5513Xtx0000REXHNNdfEkiVL4ogjjogLLrggVq9ePaZ63//+98f73ve+XdZ/7nOfi7POOisGBgYiIuKSSy6Jz372s3H//ffHJZdcEq2trbFo0aL4/Oc/Pyzkvb+PcyyX+9CHPhT//M//HBERH/zgB+MjH/nImB7rgVJTUxO9vb0Tep8AAAAAQPkSIAcAAAAAgDFKId+JDJDPmTMnjjjiiIiImDt3bhx77LEREbFy5cq477774i1veUv80z/9UxxzzDEREbFixYpYunRprFq1Kj784Q/HJz7xiaisrIx3vetd8alPfSq73V/84hfx/e9/P84555z4yU9+Em94wxvivvvui/e///1x4YUXxp//+Z/H0UcfHa9//evjhz/8YbzxjW8cU/fuhx9+OB5++OFd1q9evTpWrFiR3cbdd98d119/fVx44YXR19cXH/rQh6K+vj4+9rGPxYc+9KHsevv7OMdyuQULFsTs2bOz5Ve/+tVj/wUdALW1tQLkAAAAAMCEKRSLxWLeRQAAAAAAwKHglltuiUsvvTQGBwcn9H6vv/76uOKKK+Lee++N17/+9RERce6558Y999wTb37zm+Mf/uEf4sQTT4xisRinn356rFu3Lh599NGYM2dORET09/fHsmXLYsWKFfHoo4/GggULYunSpfHQQw/Fpz/96fjLv/zLiIi466674sILL4wpU6bEL37xi1iwYEFERFx++eVxww03xJNPPpmt251FixbF0NBQrFq1atj6K664Iq6//vro7e2NmpqaaGlpia1bt8Y111wTf/RHfxQREUNDQ/HGN74xfvSj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3HPP5TOf+UzROQAAAAAA/7DtqKILAAAAAADgSDRr1qy89dZbmTFjRtEpHGY7d+7Mt7/97Xzta18zHgcAAAAA2hw3kAMAAAAAwCHyy1/+Mtdff33WrFmToUOHFp3DYTJ58uQ888wz2bhxY6qqqorOAQAAAAD4/20zIAcAAAAAgEOkVCrl3HPPzZtvvplnn302lZWVRSdxiP32t7/N+PHjs2jRolx00UVF5wAAAAAA/G8G5AAAAAAAcCg1Nzfn05/+dKZNm5ZZs2YVncMh9Prrr+eMM87IRRddlLvvvrvoHAAAAACAf8WAHAAAAAAADrV77703U6dOzaJFi/L5z3++6BwOgVKplIsvvjhNTU1Zv359qqqqik4CAAAAAPhXth1VdAEAAAAAABzppkyZkrq6ukybNi3bt28vOodD4NZbb80TTzyR+vp643EAAAAAoE1zAzkAAAAAABwGb7/9doYPH57jjjsuy5cvT+fOnYtO4iBZunRpLrjggvz4xz/O9OnTi84BAAAAAPhPthmQAwAAAADAYbJp06YMGzYsU6ZMye233150DgfB1q1bM2TIkJx//vl58MEHi84BAAAAAPggBuQAAAAAAHA4LViwIHV1dbn99ttz/fXXF53Dh/D2229nxIgRaW1tzZo1a3LMMccUnQQAAAAA8EG2dSy6AAAAAAAAysmXvvSlvPzyy/n617+enj17Zty4cUUncQBaW1szefLkbN++PatXrzYeBwAAAADaDTeQAwAAAABAAa666qosWLAgy5cvz+DBg4vOYT995StfSX19fZ566qkMHTq06BwAAAAAgH217aiiCwAAAAAAoBzdcccdOfvss3PhhRdm06ZNReewH77zne9k7ty5qa+vNx4HAAAAANodA3IAAAAAAChAp06d8sgjj6R///4599xz09TUVHQS++Dmm2/OD3/4w9xxxx0ZN25c0TkAAAAAAPutolQqlYqOAAAAAACAcrVr166cf/752bFjR5588sl88pOfLDqJf+PWW2/NTTfdlDlz5uTaa68tOgcAAAAA4EBscwM5AAAAAAAU6Pjjj09DQ0NOOumkjBw5Mps2bSo6iX/hu9/9bm666abcdtttxuMAAAAAQLtmQA4AAAAAAAWrrq7O0qVLc+qpp2bUqFH5/e9/X3QS/8/evXszffr03HLLLbnnnnvy1a9+tegkAAAAAIAPxYAcAAAAAADagOOOOy6LFy/OkCFDMnr06Dz22GNFJ5W9d999N3V1dbnjjjvy61//OlOnTi06CQAAAADgQzMgBwAAAACANqJr165ZtGhRrrjiinzxi1/Mz3/+86KTylZLS0suuOCCLF26NIsXL86ECROKTgIAAAAAOCg6Fh0AAAAAAAD8t44dO2bOnDnp169fpk+fnsbGxtx2223p3Llz0WllY/369bnsssuSJKtWrUq/fv0KLgIAAAAAOHjcQA4AAAAAAG3Q9OnTs2DBgjz44IMZNWpUXnvttaKTysLcuXNz9tln59RTT82zzz5rPA4AAAAAHHEMyAEAAAAAoI269NJL8+yzz2bXrl0ZPHhwHn/88aKTjli7d+/OtGnTMm3atNxwww1paGhIt27dis4CAAAAADjoDMgBAAAAAKAN69evX9auXZsxY8bkoosuyje+8Y289957RWcdUdatW5fBgwfn0UcfzW9+85vMnDkzHTp0KDoLAAAAAOCQMCAHAAAAAIA2rqqqKvfff3/uv//+3HvvvRk6dGjWrl1bdFa79/777+f73/9+amtr06tXr7z44osZN25c0VkAAAAAAIeUATkAAAAAALQTkyZNyosvvpju3buntrY2N9xwQ3bv3l10Vru0atWqDB48OD/4wQ9y6623ZvHixenRo0fRWQAAAAAAh5wBOQAAAAAAtCO9evXKkiVLctddd+W+++7LwIEDs2DBgqKz2o0dO3bk2muvzYgRI9KzZ89s3LgxN954Y446yp9MAAAAAIDy4LehAAAAAADQzlRUVGTq1KnZtGlTRo8enbq6uowaNSrr168vOq3N+vvf/55Zs2alb9++WbRoUe69994sXrw4vXv3LjoNAAAAAOCwMiAHAAAAAIB26mMf+1h+9atfZd26ddm7d2+GDh2aiRMnpqmpqei0NmPv3r1ZsGBBBgwYkJtuuilTpkzJK6+8ksmTJxedBgAAAABQCANyAAAAAABo54YMGZIVK1akvr4+jY2NGThwYK666qr88Y9/LDqtMHv27El9fX0GDBiQSZMm5ZxzzklTU1Nmz56dqqqqovMAAAAAAApjQA4AAAAAAEeAioqK1NXVZePGjbn77rvz9NNP57TTTsull16aVatWFZ132OzevTuzZ89Onz59MmXKlAwZMiSbNm3KPffck5qamqLzAAAAAAAKV1EqlUpFRwAAAAAAAAdXa2trHnnkkfzoRz/K2rVrc9ZZZ+Waa67J5ZdfnmOPPbbovIOusbExd911V+677768//77ufLKK3PjjTfmlFNOKToNAAAAAKAt2WZADgAAAAAAR7hnnnkmc+bMycKFC9OpU6fU1dVl8uTJGTFiRDp06FB03gHbsWNHHn744cybNy9r165Nnz59Mm3atFxzzTX5yEc+UnQeAAAAAEBbZEAOAAAAAADl4s0338z999+fuXPn5oUXXkj37t0zYcKEXHLJJTnnnHPSqVOnohM/0Pbt2/PYY49lwYIFWbZsWY4++uiMHz8+V199dUaNGpWKioqiEwEAAAAA2jIDcgAAAAAAKEdNTU156KGHMn/+/Lz00kupqqrKeeedlwsvvDAjR45Mv3792sQYe/fu3VmzZk2efPLJNDQ0ZMOGDTn66KMzduzY1NXV5eKLL07Xrl2LzgQAAAAAaC8MyAEAAAAAoNxt3rw5DQ0NaWhoyLJly/LXv/411dXVOfvsszN8+PAMGjQoAwcOTE1NzSHtePfdd/PSSy+lsbEx69evz8qVK7Nhw4bs2bMnffv2zYUXXpixY8dm1KhR6dKlyyFtAQAAAAA4QhmQAwAAAAAA/23Pnj3/HG+vXLkyzz33XLZs2ZIkOf7449O3b9/U1NSkd+/e6dWrVz7+8Y+nW7duqa6uTnV1dSorK1NRUZETTjghSfK3v/0t77zzTpJk165d2bFjR3bu3JmWlpa89tpraW5uTnNzczZv3pzm5ua0tramS5cuOf300/PZz342tbW1qa2tTY8ePYr6SAAAAAAAjiQG5AAAAAAAwH+2a9eubNy4MY2NjfnDH/6Q5ubmbNmyJVu3bk1LS8sBfc/OnTune/fu6d27d2pqanLKKaekf//+GTRoUE499dR06NDhIL8FAAAAAAAxIAcAAAAAAD6MPXv2pKWlJS0tLXnzzTfz3nvvpVQq5a233kqSVFZWpmvXrkmSE0444Z+3lVdVVRWZDQAAAABQrgzIAQAAAAAAAAAAAADKxLajii4AAAAAAAAAAAAAAODwMCAHAAAAAAAAAAAAACgTBuQAAAAAAAAAAAAAAGXivwAmGd24W5rMxAAAAABJRU5ErkJggg==", + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "print(dask_results.dask)\n", + "dask_results.visualize(optimize_graph=False)\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Or a peek at the optimized results:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/saransh/Code/HEP/coffea/.env/lib/python3.11/site-packages/coffea/ml_tools/helper.py:175: UserWarning: No format checks were performed on input!\n", + " warnings.warn(\"No format checks were performed on input!\")\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dask_results.visualize(optimize_graph=True)\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Comments about generalizing to other ML tools\n", + "\n", + "All ML wrappers provided in the `coffea.mltools` module (`triton_wrapper` for\n", + "[triton][triton] server inference, `torch_wrapper` for pytorch,\n", + "`xgboost_wrapper` for [xgboost][xgboost] inference, `tf_wrapper` for tensorflow) \n", + "follow the same design: analyzers is responsible for providing the model of \n", + "interest, along with providing an inherited class that overloads of the following\n", + "methods to data type conversion:\n", + "\n", + "- `prepare_awkward`: converting awkward arrays to `numpy`-compatible awkward\n", + " arrays, the output arrays should be in the format of a tuple `a` and a\n", + " dictionary `b`, which can be expanded out to the input of the ML tool like\n", + " `model(*a, **b)`. Notice some additional trivial conversion, such as the\n", + " conversion to available kernels for `pytorch`, converting to a matrix format\n", + " for `xgboost`, and slice of array for `triton` is handled automatically by the\n", + " respective wrappers.\n", + "- `postprocess_awkward` (optional): converting the trivial converted numpy array\n", + " results back to the analysis specific format. If this is not provided, then a\n", + " simple `ak.from_numpy` conversion results is returned.\n", + "\n", + "If the ML tool of choice for your analysis has not been implemented by the\n", + "`coffea.mltools` modules, consider constructing your own with the provided\n", + "`numpy_call_wrapper` base class in `coffea.mltools`. Aside from the functions\n", + "listed above, you will also need to provide the `numpy_call` method to perform\n", + "any additional data format conversions, and call the ML tool of choice. If you\n", + "think your implementation is general, also consider submitting a PR to the\n", + "`coffea` repository!\n", + "\n", + "[triton]: https://catalog.ngc.nvidia.com/orgs/nvidia/containers/tritonserver\n", + "[xgboost]: https://xgboost.readthedocs.io/en/stable/\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Additional comments on common `prepare_awkward` patterns\n", + "\n", + "The key requirement of all wrapper classes in `ml_tools` pacakge, is that to convert\n", + "awkward arrays into `numpy`-compatible formats using just `awkward` related tools, \n", + "which ensures that no eager data conversion is performed on dask arrays. Below are\n", + "some common patterns that are useful when defining a user-level class.\n", + "\n", + "### Casting multiple fields a collection to be separate axis\n", + "\n", + "Given our collection of particles of length $N$, our tool is interested in just a \n", + "sub-set of fields is to be represented as an $N\\time M$ array. You can do acheive this \n", + "using just `ak.concatenate` and dimension expansion with `np.newaxis`:\n", + "\n", + "```python\n", + "fields_of_interest = [\"field1\", \"field2\", \"field3\"]\n", + "part_np_array = ak.concatenate(\n", + " [\n", + " part[field][:,np.newaxis] # Expanding length N array to Nx1\n", + " for field in fields_of_interest\n", + " ],\n", + " axis=1,\n", + ") # This should now be a Nx3 array\n", + "```\n", + "\n", + "### Fixing collection dimensions\n", + "\n", + "Many ML inteference tools work with fixed dimension inputs, with missing entries \n", + "being set to a placeholder values. A common method for achieving this in awkward\n", + "is with `pad_none`/`fill_none` calls, for example to pad the number of particles\n", + "passed to the inference tool in each event to be a fixed length of 128:\n", + "\n", + "```python\n", + "part_padded = ak.fill_none(\n", + " ak.pad_none(part, 128, axis=1, clip=True),\n", + " -1000, # Placeholder value\n", + " axis=1,\n", + ")\n", + "```\n", + "\n", + "The dimensions of this resulting `part_padded` array is still `N x var`, indicating\n", + "that the number of entries `axis=1` can potentially be variable. Depending on the \n", + "ML tools being used, this axis dimension may to be fixed. To strictly convert this \n", + "to a `Nx128` array, one can call `flatten`/`unflatten` pairs:\n", + "\n", + "```python\n", + "part_padded = ak.flatten(part_padded)\n", + "part_padded = ak.unflatten(part_padded, 128) # Now this is a Nx128 array\n", + "```" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.11.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/_sources/notebooks/nanoevents.ipynb.txt b/_sources/notebooks/nanoevents.ipynb.txt new file mode 100644 index 000000000..4946e4427 --- /dev/null +++ b/_sources/notebooks/nanoevents.ipynb.txt @@ -0,0 +1,894 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Reading data with coffea NanoEvents\n", + "\n", + "This is a rendered copy of [nanoevents.ipynb](https://github.com/CoffeaTeam/coffea/blob/master/binder/nanoevents.ipynb). You can optionally run it interactively on [binder at this link](https://mybinder.org/v2/gh/coffeateam/coffea/master?filepath=binder%2Fnanoevents.ipynb)\n", + "\n", + "NanoEvents is a Coffea utility to wrap flat nTuple structures (such as the CMS [NanoAOD](https://www.epj-conferences.org/articles/epjconf/pdf/2019/19/epjconf_chep2018_06021.pdf) format) into a single awkward array with appropriate object methods (such as Lorentz vector methods$^*$), cross references, and nested objects, all lazily accessed$^\\dagger$ from the source ROOT TTree via uproot. The interpretation of the TTree data is configurable via [schema objects](https://coffeateam.github.io/coffea/modules/coffea.nanoevents.html#classes), which are community-supplied for various source file types. These schema objects allow a richer interpretation of the file contents than the [uproot.lazy](https://uproot4.readthedocs.io/en/latest/uproot4.behaviors.TBranch.lazy.html) methods. Currently available schemas include:\n", + "\n", + " - `BaseSchema`, which provides a simple representation of the input TTree, where each branch is available verbatim as `events.branch_name`, effectively the same behavior as `uproot.lazy`. Any branches that uproot supports at \"full speed\" (i.e. that are fully split and either flat or single-jagged) can be read by this schema;\n", + " - `NanoAODSchema`, which is optimized to provide all methods and cross-references in CMS NanoAOD format;\n", + " - `PFNanoAODSchema`, which builds a double-jagged particle flow candidate colllection `events.jet.constituents` from compatible PFNanoAOD input files;\n", + " - `TreeMakerSchema` which is designed to read TTrees made by [TreeMaker](https://github.com/TreeMaker/TreeMaker), an alternative CMS nTuplization format;\n", + " - `PHYSLITESchema`, for the ATLAS DAOD_PHYSLITE derivation, a compact centrally-produced data format similar to CMS NanoAOD; and\n", + " - `DelphesSchema`, for reading Delphes fast simulation [nTuples](https://cp3.irmp.ucl.ac.be/projects/delphes/wiki/WorkBook/RootTreeDescription).\n", + "\n", + "We welcome contributions for new schemas, and can assist with the design of them.\n", + "\n", + "$^*$ Vector methods are currently made possible via the [coffea vector](https://coffeateam.github.io/coffea/modules/coffea.nanoevents.methods.vector.html) methods mixin class structure. In a future version of coffea, they will instead be provided by the dedicated scikit-hep [vector](https://vector.readthedocs.io/en/latest/) library, which provides a more rich feature set. The coffea vector methods predate the release of the vector library.\n", + "\n", + "$^\\dagger$ _Lazy_ access refers to only fetching the needed data from the (possibly remote) file when a sub-array is first accessed. The sub-array is then _materialized_ and subsequent access of the sub-array uses a cached value in memory. As such, fully materializing a `NanoEvents` object may require a significant amount of memory.\n", + "\n", + "\n", + "In this demo, we will use NanoEvents to read a small CMS NanoAOD sample. The events object can be instantiated as follows:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import awkward as ak\n", + "from coffea.nanoevents import NanoEventsFactory, NanoAODSchema\n", + "\n", + "NanoAODSchema.warn_missing_crossrefs = False\n", + "\n", + "fname = \"https://raw.githubusercontent.com/CoffeaTeam/coffea/master/tests/samples/nano_dy.root\"\n", + "events = NanoEventsFactory.from_root(\n", + " {fname: \"Events\"},\n", + " schemaclass=NanoAODSchema,\n", + " metadata={\"dataset\": \"DYJets\"},\n", + ").events()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the factory constructor, we also pass the desired schema version (the latest version of NanoAOD can be built with `schemaclass=NanoAODSchema`) for this file and some extra metadata that we can later access with `events.metadata`. In a later example, we will show how to set up this metadata in coffea processors where the `events` object is pre-created for you. Consider looking at the [from_root](https://coffeateam.github.io/coffea/api/coffea.nanoevents.NanoEventsFactory.html#coffea.nanoevents.NanoEventsFactory.from_root) class method to see all optional arguments.\n", + "\n", + "The `events` object is an awkward array, which at its top level is a record array with one record for each \"collection\", where a collection is a grouping of fields (TBranches) based on the naming conventions of [NanoAODSchema](https://coffeateam.github.io/coffea/api/coffea.nanoevents.NanoAODSchema.html). For example, in the file we opened, the branches:\n", + "```\n", + "Generator_binvar\n", + "Generator_scalePDF\n", + "Generator_weight\n", + "Generator_x1\n", + "Generator_x2\n", + "Generator_xpdf1\n", + "Generator_xpdf2\n", + "Generator_id1\n", + "Generator_id2\n", + "```\n", + "are grouped into one sub-record named `Generator` which can be accessed using either getitem or getattr syntax, i.e. `events[\"Generator\"]` or `events.Generator`. e.g." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[1,\n",
+       " -1,\n",
+       " -1,\n",
+       " 21,\n",
+       " 21,\n",
+       " 4,\n",
+       " 2,\n",
+       " -2,\n",
+       " 2,\n",
+       " 1,\n",
+       " ...,\n",
+       " 1,\n",
+       " -2,\n",
+       " 2,\n",
+       " 1,\n",
+       " 2,\n",
+       " -2,\n",
+       " -1,\n",
+       " 2,\n",
+       " 1]\n",
+       "--------------------------------------------------------------\n",
+       "type: 40 * int32[parameters={"__doc__": "id of first parton"}]
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "events.Generator.id1.compute()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['binvar', 'scalePDF', 'weight', 'x1', 'x2', 'xpdf1', 'xpdf2', 'id1', 'id2']" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# all names can be listed with:\n", + "events.Generator.fields" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In CMS NanoAOD, each TBranch has a self-documenting help string embedded in the title field, which is carried into the NanoEvents, e.g. executing the following cell should produce a help pop-up:\n", + "```\n", + "Type: Array\n", + "String form: [1, -1, -1, 21, 21, 4, 2, -2, 2, 1, 3, 1, ... -1, -1, 1, -2, 2, 1, 2, -2, -1, 2, 1]\n", + "Length: 40\n", + "File: ~/src/awkward-1.0/awkward1/highlevel.py\n", + "Docstring: id of first parton\n", + "Class docstring: ...\n", + "```\n", + "where the `Docstring` shows information about the content of this array." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\u001b[0;31mType:\u001b[0m Array\n", + "\u001b[0;31mString form:\u001b[0m dask.awkward\n", + "\u001b[0;31mFile:\u001b[0m /opt/homebrew/lib/python3.11/site-packages/dask_awkward/lib/core.py\n", + "\u001b[0;31mDocstring:\u001b[0m id of first parton\n", + "\u001b[0;31mClass docstring:\u001b[0m\n", + "Partitioned, lazy, and parallel Awkward Array Dask collection.\n", + "\n", + "The class constructor is not intended for users. Instead use\n", + "factory functions like :py:func:`~dask_awkward.from_parquet`,\n", + ":py:func:`~dask_awkward.from_json`, etc.\n", + "\n", + "Within dask-awkward the ``new_array_object`` factory function is\n", + "used for creating new instances.\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "events.Generator.id1?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Based on a collection's name or contents, some collections acquire additional _methods_, which are extra features exposed by the code in the mixin classes of the `coffea.nanoevents.methods` modules. For example, although `events.GenJet` has the fields:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['eta', 'mass', 'phi', 'pt', 'partonFlavour', 'hadronFlavour']" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "events.GenJet.fields" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "we can access additional attributes associated to each generated jet by virtue of the fact that they can be interpreted as [Lorentz vectors](https://coffeateam.github.io/coffea/api/coffea.nanoevents.methods.vector.LorentzVector.html#coffea.nanoevents.methods.vector.LorentzVector):" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[[217, 670, 258],\n",
+       " [34.5, 98.3, 1.16e+03, 38.1, 20.4, 29.7],\n",
+       " [306, 62.8, 74.1, 769, 11.2],\n",
+       " [170, 117, 29.3, 45.9],\n",
+       " [101, 117, 129, 15.6],\n",
+       " [63.1, 37.2, 33.7, 36.2],\n",
+       " [303, 50.5, 1.29e+03, 278],\n",
+       " [615, 282, 2.11e+03],\n",
+       " [195, 47.6],\n",
+       " [95, 44.6, 223, 318, 30, 108, 62.9],\n",
+       " ...,\n",
+       " [41.6, 36.7, 78.9, 13],\n",
+       " [1.51e+03, 1.23e+03],\n",
+       " [152, 160, 777, 27.1, 346, 65.1, 37.9, 27.2, 16.3],\n",
+       " [35.4, 20.4],\n",
+       " [20.1, 16.2],\n",
+       " [34],\n",
+       " [553, 283],\n",
+       " [771, 452, 16],\n",
+       " [76.9]]\n",
+       "----------------------------------------------------\n",
+       "type: 40 * var * float32
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "events.GenJet.energy.compute()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can call more complex methods, like computing the distance $\\Delta R = \\sqrt{\\Delta \\eta^2 + \\Delta \\phi ^2}$ between two LorentzVector objects:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[[],\n",
+       " [3.13],\n",
+       " [3.45, 2.18],\n",
+       " [1.58, 3.76],\n",
+       " [],\n",
+       " [0.053],\n",
+       " [0.0748],\n",
+       " [],\n",
+       " [],\n",
+       " [1.82],\n",
+       " ...,\n",
+       " [0.00115],\n",
+       " [],\n",
+       " [0.0149],\n",
+       " [],\n",
+       " [0.0308],\n",
+       " [],\n",
+       " [0.0858],\n",
+       " [],\n",
+       " []]\n",
+       "------------------------\n",
+       "type: 40 * var * float32
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# find distance between leading jet and all electrons in each event\n", + "dr = events.Jet[:, 0].delta_r(events.Electron)\n", + "dr.compute()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[None,\n",
+       " 3.13,\n",
+       " 2.18,\n",
+       " 1.58,\n",
+       " None,\n",
+       " 0.053,\n",
+       " 0.0748,\n",
+       " None,\n",
+       " None,\n",
+       " 1.82,\n",
+       " ...,\n",
+       " 0.00115,\n",
+       " None,\n",
+       " 0.0149,\n",
+       " None,\n",
+       " 0.0308,\n",
+       " None,\n",
+       " 0.0858,\n",
+       " None,\n",
+       " None]\n",
+       "-------------------\n",
+       "type: 40 * ?float32
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# find minimum distance\n", + "ak.min(dr, axis=1).compute()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[None, None, None, None, None], [Electron, Electron, ..., Electron], ..., [None, None]]\n" + ] + } + ], + "source": [ + "# a convenience method for this operation on all jets is available\n", + "print(events.Jet.nearest(events.Electron).compute())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The assignment of methods classes to collections is done inside the schema object during the initial creation of the array, governed by the awkward array's `__record__` parameter and the associated behavior. See [ak.behavior](https://awkward-array.readthedocs.io/en/latest/ak.behavior.html) for a more detailed explanation of array behaviors.\n", + "\n", + "Additional methods provide convenience functions for interpreting some branches, e.g. CMS NanoAOD packs several jet identification flag bits into a single integer, `jetId`. By implementing the bit-twiddling in the [Jet mixin](https://github.com/CoffeaTeam/coffea/blob/7045c06b9448d2be4315e65d432e6d8bd117d6d7/coffea/nanoevents/methods/nanoaod.py#L279-L282), the analsyis code becomes more clear:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[6, 6, 6, 6, 6], [6, 2, 6, 6, 6, 6, 6, 0], ..., [6, 6, 0, ..., 6, 6], [6, 6]]\n", + "[[True, True, True, True, True], [True, True, ..., False], ..., [True, True]]\n" + ] + } + ], + "source": [ + "print(events.Jet.jetId.compute())\n", + "print(events.Jet.isTight.compute())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also define convenience functions to unpack and apply some mask to a set of flags, e.g. for generated particles:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Raw status flags: [[10625, 27009, 4481, 22913, 257, ..., 13884, 13884, 13884, 12876, 12876], ...]\n" + ] + } + ], + "source": [ + "print(f\"Raw status flags: {events.GenPart.statusFlags.compute()}\")\n", + "events.GenPart.hasFlags(['isPrompt', 'isLastCopy']);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "CMS NanoAOD also contains pre-computed cross-references for some types of collections. For example, there is a TBranch `Electron_genPartIdx` which indexes the `GenPart` collection per event to give the matched generated particle, and `-1` if no match is found. NanoEvents transforms these indices into an awkward _indexed array_ pointing to the collection, so that one can directly access the matched particle using getattr syntax:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[[],\n",
+       " [-11],\n",
+       " [-11, 11],\n",
+       " [22, None],\n",
+       " [],\n",
+       " [None],\n",
+       " [None],\n",
+       " [],\n",
+       " [],\n",
+       " [11],\n",
+       " ...,\n",
+       " [11],\n",
+       " [],\n",
+       " [11],\n",
+       " [],\n",
+       " [-11],\n",
+       " [],\n",
+       " [None],\n",
+       " [],\n",
+       " []]\n",
+       "---------------------------------------------------------\n",
+       "type: 40 * var * ?int32[parameters={"__doc__": "PDG id"}]
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "events.Electron.matched_gen.pdgId.compute()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[[84.4, 29.4],\n",
+       " [31.1],\n",
+       " [53.4, 81.9],\n",
+       " [29.2],\n",
+       " [17.5],\n",
+       " [65.9, 47.8],\n",
+       " [58.5, 44.7],\n",
+       " [50.2, 45.2],\n",
+       " [33.3, 25.9],\n",
+       " [None],\n",
+       " [26.1],\n",
+       " [25.8]]\n",
+       "-------------------------------------------------------\n",
+       "type: 12 * var * ?float32[parameters={"__doc__": "pt"}]
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "events.Muon[ak.num(events.Muon)>0].matched_jet.pt.compute()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For generated particles, the parent index is similarly mapped:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[[None, None, 1, 1, 23, 23, 23, 23, ..., 15, -15, -15, -15, -15, -15, 111, 111],\n",
+       " [None, None, -1, 23, 23, 23, 23, ..., -11, None, None, None, None, None, 433],\n",
+       " [None, None, -1, -1, 23, 23, 23, 23, ..., -423, -1, -1, -421, -421, 111, 111],\n",
+       " [None, None, 21, 21, 23, -1, 23, 23, ..., -15, -15, -15, -15, -15, 111, 111],\n",
+       " [None, None, 21, 21, 23, 23, 23, 23, ..., 13, 13, -13, 1, None, None, 2, 2],\n",
+       " [None, None, 4, 23, 23, 23, 23, 23, ..., -15, -15, -15, 15, 15, 15, 423, 311],\n",
+       " [None, None, 2, 2, 2, 23, 23, 2, 23, ..., -13, 13, 2, 2, 2, 2, 111, 111, 111],\n",
+       " [None, None, -2, -2, 23, 21, 21, 23, 23, ..., 21, 21, 21, 21, None, 423, 2, 2],\n",
+       " [None, None, 2, 23, 23, 23, 23, 23, ..., -15, -15, -15, -15, 111, 111, 311],\n",
+       " [None, None, 1, 1, 1, 23, 21, 23, 23, 23, ..., -411, 21, 21, 1, 1, 1, 1, 3, 3],\n",
+       " ...,\n",
+       " [None, None, 1, 23, 23, 23, 23, 23, ..., -15, -15, -15, -15, 1, 1, 111, 111],\n",
+       " [None, None, -2, 23, 23, 23, 23, 23, 13, 13, -13, -13, -13, 13],\n",
+       " [None, None, 2, 2, 2, 23, 2, 23, ..., None, -413, 413, 413, 2, 2, -421, -421],\n",
+       " [None, None, 1, 23, 23, 23, 23, 23, ..., -15, 15, 15, 15, -15, -15, -15, -15],\n",
+       " [None, None, 2, 2, 23, 23, 21, 23, ..., 15, 15, 15, -15, -15, -15, 111, 111],\n",
+       " [None, None, -2, 23, 23, None, 23, 23, ..., -15, -15, -15, 423, 4, 4, 3, 3],\n",
+       " [None, None, -1, 23, 23, 23],\n",
+       " [None, None, 2, 23, 23, 23, 23, -11, -11, 11],\n",
+       " [None, None, 1, 1, 23, 23, 23, 23, ..., -15, -15, -15, 111, 111, 111, 111]]\n",
+       "--------------------------------------------------------------------------------\n",
+       "type: 40 * var * ?int32[parameters={"__doc__": "PDG id"}]
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "events.GenPart.parent.pdgId.compute()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In addition, using the parent index, a helper method computes the inverse mapping, namely, `children`. As such, one can find particle siblings with:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[[None, None, [23, 21], ..., [-16, 111, ..., 211, -211], [22, 22], [22, 22]],\n",
+       " [None, None, [23], [23], [23], [23], ..., None, None, None, None, None, [431]],\n",
+       " [None, None, [23, -1], [23, -1], [23], ..., [13, -14], [13, -14], [22], [22]],\n",
+       " [None, None, [23, -1], ..., [-16, 111, ..., 211, -211], [22, 22], [22, 22]],\n",
+       " [None, None, [23, 1], [23, 1], [23], ..., None, None, [11, -11], [11, -11]],\n",
+       " [None, None, [23], [23], ..., [16, 13, -14], [16, 13, -14], [421], [310]],\n",
+       " [None, None, [23, 2, 2], [23, 2, 2], ..., [...], [22], [11, -11], [11, -11]],\n",
+       " [None, None, [23, 21], [23, 21], [23], ..., None, [421], [11, -11], [11, -11]],\n",
+       " [None, None, [23], [23], ..., [-16, 111, ..., 311], [22, 22], [22, 22], [310]],\n",
+       " [None, None, [23, 21, 21], [23, ...], ..., [11, -11], [11, -11], [11, -11]],\n",
+       " ...,\n",
+       " [None, None, [23], [23], [23], ..., [11, -11], [11, -11], [22, 22], [22, 22]],\n",
+       " [None, None, [23], [23], [23], ..., [...], [-13], [-13, 22], [-13, 22], [13]],\n",
+       " [None, None, [23, 2, 21], ..., [2, 21, ..., 11, -11], [13, -14], [13, -14]],\n",
+       " [None, None, [23], ..., [...], [-16, 211, 211, -211], [-16, 211, 211, -211]],\n",
+       " [None, None, [23, 21], [23, 21], ..., [-16, -11, 12], [22, 22], [22, 22]],\n",
+       " [None, None, [23], [23], ..., [423, -421, 11, -11], [11, -11], [11, -11]],\n",
+       " [None, None, [23], [23], [-13, 13], [-13, 13]],\n",
+       " [None, None, [23], [23], [23], ..., [-11, 11], [-11, 22], [-11, 22], [11]],\n",
+       " [None, None, [23, 21], [23, 21], ..., [22, ...], [22, 22], [22, 22], [22, 22]]]\n",
+       "--------------------------------------------------------------------------------\n",
+       "type: 40 * var * option[var * ?int32[parameters={"__doc__": "PDG id"}]]
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "events.GenPart.parent.children.pdgId.compute()\n", + "# notice this is a doubly-jagged array" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since often one wants to shortcut repeated particles in a decay sequence, a helper method `distinctParent` is also available. Here we use it to find the parent particle ID for all prompt electrons:" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[[],\n",
+       " [23, 23],\n",
+       " [23, 23],\n",
+       " [],\n",
+       " [],\n",
+       " [],\n",
+       " [],\n",
+       " [23, 23],\n",
+       " [],\n",
+       " [23, 23],\n",
+       " ...,\n",
+       " [],\n",
+       " [],\n",
+       " [23, 23],\n",
+       " [],\n",
+       " [],\n",
+       " [],\n",
+       " [],\n",
+       " [23, 23],\n",
+       " []]\n",
+       "---------------------------------------------------------\n",
+       "type: 40 * var * ?int32[parameters={"__doc__": "PDG id"}]
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "events.GenPart[\n", + " (abs(events.GenPart.pdgId) == 11)\n", + " & events.GenPart.hasFlags(['isPrompt', 'isLastCopy'])\n", + "].distinctParent.pdgId.compute()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Events can be filtered like any other awkward array using boolean fancy-indexing" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[94.6,\n",
+       " 87.6,\n",
+       " 88,\n",
+       " 90.4,\n",
+       " 89.1,\n",
+       " 31.6]\n",
+       "-----------------\n",
+       "type: 6 * float32
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mmevents = events[ak.num(events.Muon) == 2]\n", + "zmm = mmevents.Muon[:, 0] + mmevents.Muon[:, 1]\n", + "zmm.mass.compute()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[94.6,\n",
+       " 87.6,\n",
+       " 88,\n",
+       " 90.4,\n",
+       " 89.1,\n",
+       " 31.6]\n",
+       "-----------------\n",
+       "type: 6 * float32
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# a convenience method is available to sum vectors along an axis:\n", + "mmevents.Muon.sum(axis=1).mass.compute()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As expected for this sample, most of the dimuon events have a pair invariant mass close to that of a Z boson. But what about the last event? Let's take a look at the generator information:" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[-13, 13]\n", + "[False, False]\n" + ] + } + ], + "source": [ + "print(mmevents[-1].Muon.matched_gen.pdgId.compute())\n", + "print(mmevents[-1].Muon.matched_gen.hasFlags([\"isPrompt\"]).compute())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So they are real generated muons, but they are not prompt (i.e. from the initial decay of a heavy resonance)\n", + "\n", + "Let's look at their parent particles:" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[-15,\n",
+       " 15]\n",
+       "--------------------------------------------------\n",
+       "type: 2 * ?int32[parameters={"__doc__": "PDG id"}]
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mmevents[-1].Muon.matched_gen.parent.pdgId.compute()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "aha! They are muons coming from tau lepton decays, and hence a fair amount of the Z mass is carried away by the neutrinos:" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "31.265245\n", + "91.68365\n" + ] + } + ], + "source": [ + "print(mmevents[-1].Muon.matched_gen.sum().mass.compute())\n", + "print(mmevents[-1].Muon.matched_gen.parent.sum().mass.compute())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One can assign new variables to the arrays, with some caveats:\n", + "\n", + " * Assignment must use setitem (`events[\"path\", \"to\", \"name\"] = value`)\n", + " * Assignment to a sliced `events` won't be accessible from the original variable\n", + " * New variables are not visible from cross-references" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[[],\n",
+       " [121],\n",
+       " [],\n",
+       " [],\n",
+       " [],\n",
+       " []]\n",
+       "-----------------------\n",
+       "type: 6 * var * float32
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mmevents[\"Electron\", \"myvariable\"] = mmevents.Electron.pt + zmm.mass\n", + "mmevents.Electron.myvariable.compute()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.11.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/_sources/notebooks/packedselection.ipynb.txt b/_sources/notebooks/packedselection.ipynb.txt new file mode 100644 index 000000000..b042a15b8 --- /dev/null +++ b/_sources/notebooks/packedselection.ipynb.txt @@ -0,0 +1,1745 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0ef5ce86-6598-46ad-8fd4-c074b13c06d2", + "metadata": {}, + "source": [ + "# PackedSelection in Coffea 2023\n", + "\n", + "In `coffea`, `PackedSelection` is a class that can store several boolean arrays in a memory-efficient manner and evaluate arbitrary combinations of boolean requirements in an CPU-efficient way. Supported inputs include 1D numpy or awkward arrays and it has built-in functionalities to form analysis in signal and control regions, and to implement cutflow or \"N-1\" plots.\n", + "\n", + "Although `coffea` 2023 should be used in delayed mode (using `dask-awkward`), we will first present these functionalities eagerly (like in `coffea` 0.7) to showcase this better. Let's first read a sample file of 40 Drell-Yan events to demonstrate the utilities using our `NanoAODSchema` as our schema." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "d144affc-9918-4642-940e-148335eed6b7", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/iason/fun/coffea_dev/coffea/binder/coffea/nanoevents/schemas/nanoaod.py:215: RuntimeWarning: Missing cross-reference index for FatJet_genJetAK8Idx => GenJetAK8\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "text/html": [ + "
[{FsrPhoton: [], Electron: [], SoftActivityJetHT5: 63.5, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 64, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [Electron, Electron], SoftActivityJetHT5: 130, ...},\n",
+       " {FsrPhoton: [], Electron: [Electron, Electron], SoftActivityJetHT5: 25.8, ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 172, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 54.4, RawMET: ..., ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 96.2, RawMET: ..., ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 19, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 9.36, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 115, RawMET: ..., ...},\n",
+       " ...,\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 49.6, RawMET: ..., ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 14.7, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 22.1, RawMET: ..., ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 33.9, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 16.2, RawMET: ..., ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 28.4, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 16.1, RawMET: ..., ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 28.5, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 7, RawMET: {...}, ...}]\n",
+       "--------------------------------------------------------------------------------\n",
+       "type: 40 * event
" + ], + "text/plain": [ + ", ...] type='40 * event'>" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import awkward as ak\n", + "import numpy as np\n", + "from coffea.nanoevents import NanoEventsFactory, NanoAODSchema\n", + "from matplotlib import pyplot as plt\n", + "\n", + "\n", + "events = NanoEventsFactory.from_root(\n", + " {\"../tests/samples/nano_dy.root\": \"Events\"},\n", + " metadata={\"dataset\": \"nano_dy\"},\n", + " schemaclass=NanoAODSchema,\n", + " permit_dask=False,\n", + ").events()\n", + "\n", + "events" + ] + }, + { + "cell_type": "markdown", + "id": "919582c0-9dc0-40d0-8e25-076dc4a848cd", + "metadata": {}, + "source": [ + "Now let's import `PackedSelection`, and create an instance of it." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "e4c80e4f-f4bd-4a92-b5fe-4c9faaf22bf7", + "metadata": {}, + "outputs": [], + "source": [ + "from coffea.analysis_tools import PackedSelection\n", + "\n", + "selection = PackedSelection()" + ] + }, + { + "cell_type": "markdown", + "id": "18124df0-d370-4c3e-9e25-a9500eb1daf1", + "metadata": {}, + "source": [ + "We can create a boolean mask and add this to our selection by using the `add` method. This adds the following \"cut\" to our selection and names it \"twoElectron\"." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "b3d0e60b-48b6-4c8b-bb1a-7d8e295cd23b", + "metadata": {}, + "outputs": [], + "source": [ + "selection.add(\"twoElectron\", ak.num(events.Electron) == 2)" + ] + }, + { + "cell_type": "markdown", + "id": "324c3acb-eb43-440a-a23e-3e31dded970a", + "metadata": {}, + "source": [ + "We've added one \"cut\" to our selection. Now let's add a couple more." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "0e45733b-36dc-43b5-94d2-6cc9f974e830", + "metadata": {}, + "outputs": [], + "source": [ + "selection.add(\"eleOppSign\", ak.sum(events.Electron.charge, axis=1) == 0)\n", + "selection.add(\"noElectron\", ak.num(events.Electron) == 0)" + ] + }, + { + "cell_type": "markdown", + "id": "71edfec0-537d-42a7-86df-f96423f69371", + "metadata": {}, + "source": [ + "To avoid repeating calling `add` multiple times, we can just use the `add_multiple` method which does just that." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "f16c75b5-71bf-4957-835e-efabda6978cf", + "metadata": {}, + "outputs": [], + "source": [ + "selection.add_multiple(\n", + " {\n", + " \"twoMuon\": ak.num(events.Muon) == 2,\n", + " \"muOppSign\": ak.sum(events.Muon.charge, axis=1) == 0,\n", + " \"noMuon\": ak.num(events.Muon) == 0,\n", + " \"leadPt20\": ak.any(events.Electron.pt >= 20.0, axis=1)\n", + " | ak.any(events.Muon.pt >= 20.0, axis=1),\n", + " }\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "d0e968df-afdd-413b-a7ab-29f05f1e25c4", + "metadata": {}, + "source": [ + "By viewing the `PackedSelection` instance, one can see the names of the added selections, whether it is operating in delayed mode or not, the number of added selections and the maximum supported number of selections." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "927d8de4-53b7-4250-b24c-17fa16c16526", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "PackedSelection(selections=('twoElectron', 'eleOppSign', 'noElectron', 'twoMuon', 'muOppSign', 'noMuon', 'leadPt20'), delayed_mode=False, items=7, maxitems=32)\n" + ] + } + ], + "source": [ + "print(selection)" + ] + }, + { + "cell_type": "markdown", + "id": "434fa647-9e54-4678-adf5-c75e25cc032e", + "metadata": {}, + "source": [ + "To evaluate a boolean mask (e.g. to filter events) we can use the `selection.all(*names)` function, which will compute the logical AND of all listed boolean selections." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "0055353a-735b-4ac7-a2f1-698d2d42008b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([False, False, True, False, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, True, True, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, False, False])" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "selection.all(\"twoElectron\", \"noMuon\", \"leadPt20\")" + ] + }, + { + "cell_type": "markdown", + "id": "b81d7b70-29cd-46b1-8d23-8f538b109c54", + "metadata": {}, + "source": [ + "We can also be more specific and require that a specific set of selections have a given value (with the unspecified ones allowed to be either true or false) using `selection.require`." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "5e6a478e-e69b-4181-8f8a-398bd6810375", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([False, False, False, True, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, False, False])" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "selection.require(twoElectron=True, noMuon=True, eleOppSign=False)" + ] + }, + { + "cell_type": "markdown", + "id": "52a11d5f-3d39-4146-b38d-f783039ccac9", + "metadata": {}, + "source": [ + "There exist also the `allfalse` and `any` methods where the first one is the opposite of `all` and the second one is a logical OR between all listed boolean selections." + ] + }, + { + "cell_type": "markdown", + "id": "9e36a33b-2fcc-4380-8a0c-9c3402315e61", + "metadata": {}, + "source": [ + "Using `PackedSelection`, we are now able to perform an N-1 style selection using the `nminusone(*names)` method. This will perform an N-1 style selection by using as \"N\" the provided names and will exclude each named cut one at a time in order. In the end it will also peform a selection using all N cuts." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "77bc1bdc-3449-425a-8853-e2622fc4ed94", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "NminusOne(selections=('twoElectron', 'noMuon', 'leadPt20'))" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nminusone = selection.nminusone(\"twoElectron\", \"noMuon\", \"leadPt20\")\n", + "nminusone" + ] + }, + { + "cell_type": "markdown", + "id": "164c7fb8-f582-4892-8e78-a54e47820721", + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "source": [ + "This returns an `NminusOne` object which has the following methods: `result()`, `print()`, `yieldhist()`, `to_npz()` and `plot_vars()`" + ] + }, + { + "cell_type": "markdown", + "id": "7945c67d-5488-426c-b81c-56e2d09cee96", + "metadata": {}, + "source": [ + "Let's look at the results of the N-1 selection." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "eef67293-1f22-4ea0-ad7a-ac95a424a14c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " ('labels', 'nev', 'masks')\n" + ] + } + ], + "source": [ + "res = nminusone.result()\n", + "print(type(res), res._fields)" + ] + }, + { + "cell_type": "markdown", + "id": "7cdcfac7-ec59-447d-a285-609332042306", + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "source": [ + "This is just a `namedtuple` with the attributes `labels`, `nev` and `masks`. So we can say:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "5ee9d9e6-b496-4cc3-9d36-578ce096ff57", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(['initial', 'N - twoElectron', 'N - noMuon', 'N - leadPt20', 'N'],\n", + " [40, 10, 3, 5, 3],\n", + " [array([False, True, True, False, False, False, False, False, False,\n", + " True, False, False, False, False, False, True, True, False,\n", + " False, False, True, True, False, False, False, False, False,\n", + " True, False, True, False, False, False, True, False, False,\n", + " False, False, False, False]),\n", + " array([False, False, True, False, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, True, True, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, False, False]),\n", + " array([False, False, True, True, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " True, False, True, True, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, False, False]),\n", + " array([False, False, True, False, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, True, True, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, False, False])])" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "labels, nev, masks = res\n", + "labels, nev, masks" + ] + }, + { + "cell_type": "markdown", + "id": "e321f2b4-3e35-423c-a0a2-7b878ae7a260", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "`labels` is a list of labels of each mask that is applied, `nev` is a list of the number of events that survive each mask, and `masks` is a list of boolean masks (arrays) of which events survive each selection.\n", + "You can also choose to print the statistics of your N-1 selection in a similar fashion to `RDataFrame`." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "abe984e8-a4f1-4769-8d7c-60ce565b2d56", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "N-1 selection stats:\n", + "Ignoring twoElectron : pass = 10 all = 40 -- eff = 25.0 %\n", + "Ignoring noMuon : pass = 3 all = 40 -- eff = 7.5 %\n", + "Ignoring leadPt20 : pass = 5 all = 40 -- eff = 12.5 %\n", + "All cuts : pass = 3 all = 40 -- eff = 7.5 %\n" + ] + } + ], + "source": [ + "nminusone.print()" + ] + }, + { + "cell_type": "markdown", + "id": "282ebb23-70f8-43e1-bb60-99770fcf3543", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Or get a histogram of your total event yields. This just returns a `hist.Hist` object and we can plot it with its backends to `mplhep`." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "ef6b795a-3205-4850-a366-791bf625f094", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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1FQ1b95cq1atkpeXV95VDQAAXFauw0fLli1ljPnD7TabTaNGjdKoUaNuqTAAAFA4sbYLAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKUIHwAAwFKEDwAAYCnCBwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACApQgfAADAUoQPAABgKcIHAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGApwgcAALBUnoePN998UzabLcetTp06ef00AADARRXPjwetX7++vvrqq/89SfF8eRoAAOCC8iUVFC9eXAEBAfnx0ABgGWOMLl7JdHYZRU4J92Ky2WzOLgP5KF/Cx/79+1WpUiV5eXkpPDxcMTExCgoKumFfu90uu93uuJ+enp4fJQFArl28kql6I1Y7u4wiZ/eoCJX0YMS8MMvzOR9hYWGaO3euVq1apRkzZigxMVH33HOPfv311xv2j4mJka+vr+MWGBiY1yUBAIACJM+jZceOHR1fN2zYUGFhYapatao++eQTPfXUU9f1j46O1uDBgx3309PTCSAACpwfX2+rkh7FnF1GoXXhcqaavP3VX3dEoZDv41plypRRrVq1dODAgRtu9/T0lKenZ36XAQC3pKRHMQ4FAHkk36/zcf78eR08eFAVK1bM76cCAAAuIM/Dx0svvaQNGzbo8OHD+v7779WtWzcVK1ZMPXr0yOunAgAALijPxxCPHz+uHj166MyZM/L391fz5s21ZcsW+fv75/VTAQAAF5Tn4WPhwoV5/ZAAAKAQYW0XAABgKcIHAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBSrJIEuLgLlzOdXUKhxb51Dva7NUq4F5PNZnPKcxM+ABfHMuQobPibtsbuURFOW6mZwy4AAMBSjHwALqiEezHtHhXh7DKKlBLuxZxdQqHG37Q1LlzOLBAjS4QPwAXZbDanDZcC+YG/6aKFwy4AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKUIHwAAwFKEDwAAYCnCBwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACA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PDzUtGlTxz575plnNGbMGI0ePVrbt29XyZIl1b17d3377bcsHXCTsk+n7dGjh1q3bq25c+cqIyND48eP1+TJk1WiRAktWLBAc+bM0UMPPaT27dsrISFBDRo0cHbpKOqcnX6KqosXLzq7hCItewQjNTXVGGNMcnKyGTBggAkLCzNvv/22o99LL71k3NzczMqVK825c+fML7/8YoYOHWr8/f3N7t27nVK7K/j222+Nu7u7Y0L1b//ea9WqZaZMmeKs0gqVQ4cOmdDQUDN16lRjjDHnz583FStWNCEhIaZhw4aOs7GAgoaRDyfx8vJydglFVlZWltzc3BQfH6/g4GDt379fFSpU0KuvvqqmTZtq+fLleuuttyRduxDTo48+qi5duqhJkybq1KmTPv74Y61evVp169Z18k/ifObaoVtJ1/ZrtubNm6tNmzZ64okndPLkSXl5eckYowsXLqhkyZLy9fV1VsmFym233abu3bura9euSkpKUuPGjdWtWzetWbNG7u7umjJliuNvGShIWNUWRUp28NixY4fuuecePf3005o4caJjpdqUlBSNGTNGW7ZsUZcuXfTqq69KklauXKkzZ87otttuU+PGjVW5cmUn/yQFQ/Z+W79+vT7//HP5+fkpIiJC//jHP7RlyxYNGzZM586d03vvvSdjjL788kvNnDlTW7duVbVq1ZxdfqGQlpYmX19fDRkyRMePH9d7770nX19fDRgwQJ9//rkaNGigOXPmsKIyChTCB4qM3waP8PBwDRo0SKNHj3Zs/+WXX+Tv76+UlBTFxMRo8+bNuv/++1lq/C+sXr1anTp1UufOnfXtt98qJCRETzzxhPr06aO4uDiNGjVKX331lQIDA1WsWDHNnz9fd955p7PLdjnZQS8xMVGpqany9PRUUFCQvL29JUldu3ZVqVKlNH/+fElS//79VaNGDT322GPy9/d3ZunAdQgfKFJ+/vlnNWrUSCNHjlR0dLSjffTo0Vq5cqVWrlyp0qVL69SpUxozZox+/PFHtWjRIsdEVPzP8ePH9c4776hu3brq27evjh8/rmHDhikxMVF9+vTR008/LUmKj49XmTJl5OPjwxvhTcgOHkuWLNHgwYPl6+urM2fO6J577lGfPn3Url07DRkyRNu3b1fz5s2Vnp6uefPmadu2bawvhAKJOR8oMjIzM/Xhhx/q6tWr6tSp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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "h, labels = nminusone.yieldhist()\n", + "h.plot1d()\n", + "plt.xticks(plt.gca().get_xticks(), labels, rotation=45)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "0080510c-aa7c-4492-b1a1-28601d4e7a27", + "metadata": {}, + "source": [ + "You can also save the results of the N-1 selection to a `.npz` file for later use." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "d6bb3514-403c-441a-bf85-d88304e556c4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "labels: ['initial' 'N - twoElectron' 'N - noMuon' 'N - leadPt20' 'N']\n", + "nev: [40 10 3 5 3]\n", + "masks: [[False True True False False False False False False True False False\n", + " False False False True True False False False True True False False\n", + " False False False True False True False False False True False False\n", + " False False False False]\n", + " [False False True False False False False False False False False False\n", + " False False False False False False False False True True False False\n", + " False False False False False False False False False False False False\n", + " False False False False]\n", + " [False False True True False False False False False False False False\n", + " False False False False False False True False True True False False\n", + " False False False False False False False False False False False False\n", + " False False False False]\n", + " [False False True False False False False False False False False False\n", + " False False False False False False False False True True False False\n", + " False False False False False False False False False False False False\n", + " False False False False]]\n" + ] + } + ], + "source": [ + "nminusone.to_npz(\"nminusone_results.npz\")\n", + "\n", + "with np.load(\"nminusone_results.npz\") as f:\n", + " for i in f.files:\n", + " print(f\"{i}: {f[i]}\")" + ] + }, + { + "cell_type": "markdown", + "id": "abfab631-e4bd-40b7-a3e8-faff7c87ed76", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Finally, we can ask from this object to create histograms of different variables, masking them with our N-1 selection.\n", + "What it will output is a list of histograms, one for each requested variable, where the x-axis is the distribution of the variable, and the y-axis is the mask that was applied.\n", + "It is essentially slices of how the variable distribution evolves as each N-1 or N selection is applied. It does also return a list of labels of the masks to keep track.\n", + "\n", + "Note that the variables are parsed using a dictonary of `name: array` pairs and that the arrays will of course be flattened to be histogrammed." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "b21100ec-06e8-4e94-9966-925a512212b7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "([Hist(\n", + " Regular(20, 5.81891, 60.0685, name='Ept'),\n", + " Integer(0, 5, name='N-1'),\n", + " storage=Double()) # Sum: 60.0,\n", + " Hist(\n", + " Regular(20, -2.93115, 3.11865, name='Ephi'),\n", + " Integer(0, 5, name='N-1'),\n", + " storage=Double()) # Sum: 60.0],\n", + " ['initial', 'N - twoElectron', 'N - noMuon', 'N - leadPt20', 'N'])" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "hs, labels = nminusone.plot_vars(\n", + " {\"Ept\": events.Electron.pt, \"Ephi\": events.Electron.phi}\n", + ")\n", + "hs, labels" + ] + }, + { + "cell_type": "markdown", + "id": "ef70ef89-f1d8-4692-a2fd-044d20ffd706", + "metadata": {}, + "source": [ + "And we can actually plot those histograms using again the `mplhep` backend." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "d7ba7d28-b862-4f59-97df-27a1df3361f5", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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RikpKUm5ublBH6u2tlazZs1Sp06d1Lp1aw0ePFiFhYXe17/++mtNnDhRnTp1UqtWrdS/f/86wWJNTY0mT56s2NhYJScn67HHHqt3rFatWikpKUk9evRQTk6OevXqpbVr1yo/P19z587VRx995M2K5ufn67LLLtPLL7+ssWPH6pJLLtFVV12lBQsW6LXXXvNmNP/yl7/o008/1TPPPKO0tDSNGTNG8+fP1+OPP64TJ04Ebd0AAED4aZaBZ0REhBYuXKilS5fq4MGDQR3rjjvu0ObNm7Vy5Up9/PHHuuGGGzR69Gjt3r1bknT8+HENGjRIb7zxhnbs2KFf/vKXuvnmm7V161ZvH/fdd5+Kior06quv6i9/+YsKCwu1ffv2844dExOjEydOaMKECbr33nt16aWXqry8XOXl5ZowYUK976msrFR8fLwiI08/0GDz5s3q37+/OnTo4L0nKytLVVVV2rlzZ7191NbWqqqqyqcBAICGczrTScYzwK677jqlpaUpOzs7aGMcOHBAK1as0KpVqzRs2DBdcsklmjVrloYOHaoVK1ZIkjp16qRZs2YpLS1NPXr00K9+9SuNHj1aL774oiSpurpay5cv16OPPqqRI0eqf//+KigoOOceS7fbrWeeeUYff/yxrrrqKsXExCg2NlaRkZFKSkpSUlKSYmJi6rzvq6++0vz58/XLX/7Se+3w4cM+Qack78+HDx+ud/zc3FwlJCR4W0pKin8LBwBAmHM64CTwDIJFixapoKBAu3btOu+9t956q2JjY72tIT755BO53W717t3b571FRUXau3evpNNB4vz589W/f3+1a9dOsbGxWr9+vQ4cOCBJ2rt3r06cOKHBgwd7+23Xrp369OlTZ7zf//73io2NVUxMjKZPn667775bt912W4PmWlVVpWuvvVapqanKyclp0HvOZs6cOaqsrPS2srKyRvUHAADCQ7N+gPzw4cOVlZWlOXPmaOrUqee8d968eZo1a5Zf/VdXVysiIkLFxcWKiIjwee1M8PrII49o8eLF+t3vfqf+/furdevWmjlz5gXtn5w0aZIefPBBxcTEKDk5WS1aNOy/G44dO6bRo0crLi5Oq1evVsuWLb2vJSUl+ZT9JenLL7/0vlYfl8sll8vl9/wBAMBpTmUcvzsH05p14ClJeXl5SktLqzeD+G2JiYlKTEz0q+/LL79c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3XLLLUH5nAAA4PwcP9FuO/PNRX4Fni1atFBERMQ5W30l4VA1b948Y49/sixLr776qtq2bavhw4dr1KhR6tGjh1544YWzvicmJkYXXXTRWV/PysrSQw89pPvvv19XXHGFjh07psmTJ/vck5eXp+uvv14333yzvve972nPnj1av3692rZtG7DPBgAA0BCW7ccmzVdfffWsr23evFlLliyRx+M562loNE9VVVVKSEhQpsYp0mp5/jcAF8g9clBQ+o3YePYvxmiMQw/8ICj9dthWG5R+g7UOCL6m9m8jWIKxDqdOHdffCueqsrIyIGcazvzO7PafC9QiOjoAM7xwnuPHtf/XDwbsszWEX+nJcePG1blWWlqq2bNn67XXXtOkSZM0b968gE0OAACgWXJoj2WdORh2wXs8Dx06pOnTp6t///46deqUSkpKVFBQ0KQfMA8AAIDg8TvwrKys1AMPPKCePXtq586d2rhxo1577TVddtllwZgfAABAs+P0oSKnDhf5VWp/+OGHtWjRIiUlJen555+vt/QOAACA83Dom4PqzMEwvwLP2bNnKyYmRj179lRBQYEKCgrqve+VV14JyOQAAACapTDd4+lX4Dl58mTvt9oAAAAA/vAr8MzPzw/SNAAAAMKHU3ssvzsH05rO094BAACaizAttYftd7UDAADALDKeAAAApoVAqT3kDxcBAAAgACi1AwAAAMFDxhMAAMC0MM14EngCAAAYFq6PU6LUDgAAACMIPAEAAGAEpXYAAADT2OMJAAAAE9jjCQAAAAQRGU8AAAAnOF1qdwCBJwAAgGlhuseTUjsAAACMIOMJAABgWLgeLiLwBAAAMI1SOwAAABA8ZDwBAAAMC9dSOxlPAAAA0+wQaQ2Um5urK664QnFxcUpMTNT48eNVWlrq98cm8AQAAMA5FRUVacaMGXr//fe1YcMGnTx5UldffbVqamr86odSOwAAgGlN7HDRunXrfH7Oz89XYmKiiouLNXz48Ab3Q+AJAABgWCjt8ayqqvK57nK55HK5zvneyspKSVK7du38GpPAE0DAuUcOCkq/X6af+/8IL1j6D4LTbxNz6IHgrEOHbbVB6TdiY3FQ+gWMCKGMZ0pKis/l7Oxs5eTknPVtHo9HM2fO1JAhQ3TZZZf5NSSBJwAAQBgrKytTfHy89+fzZTtnzJihHTt26N133/V7LAJPAAAA00Io4xkfH+8TeJ7LHXfcoddff13vvPOOOnfu7PeQBJ4AAACGhdIez4awbVu/+tWvtHr1ahUWFqp79+4XNCaBJwAAAM5pxowZeu655/Tqq68qLi5Ohw8fliQlJCQoJiamwf3wHE8AAADTnH5wvJ+l/mXLlqmyslKZmZlKTk72thdeeMGvj03GEwAAwLCmWGoPBDKeAAAAMIKMJwAAgGkhdKrdJAJPAAAA08I08KTUDgAAACPIeAIAABhm/bs5PQfTCDwBAABMC9NSO4EnAACAYU3tcUqBwh5PAAAAGEHGEwAAwDRK7QAAADDG6cDTAZTaAQAAYAQZTwAAAMPC9XARgScAAIBpYbrHk1I7AAAAjCDjCQAAYBildgAAAJhBqR0AAAAIHjKeAAAAhlFqBwAAgBlhWmon8AQAADAtTANP9ngCAADACDKeAAAAhrHHEwAAAGZQagcAAACCh4wnAACAYZZty7KdTXk6MT4ZTwOmTp2q8ePHOz0NAAAQKuwQaYY5GnhOnTpVlmUpLy/P5/qaNWtkWVaj+8/MzNTMmTMb3c+5FBYWyrKsetvhw4eDMiaBLAAAaIocz3hGR0dr0aJFOnLkiNNTaZTS0lKVl5f7tMTEREfndPLkSUfHBwAA9Ttzqt3pZprjgeeoUaOUlJSk3NzcgPY7depUFRUVafHixd4M5P79+5Wenq5HH33Ue9/48ePVsmVLVVdXS5IOHjwoy7K0Z88eSdKRI0c0efJktW3bVq1atdKYMWO0e/fuOuMlJiYqKSnJp7VoUf/yejwe5ebmqnv37oqJidHAgQP10ksv+dyzc+dO/ehHP1J8fLzi4uI0bNgw7d27Vzk5OSooKNCrr77q/VyFhYXav3+/LMvSCy+8oBEjRig6OlrPPvusPB6P5s2bp86dO8vlciktLU3r1q3zjnPmfa+88oquvPJKtWrVSgMHDtTmzZsb/b8BAAA4C6dL7OFYapekiIgILVy4UEuXLtXBgwcD1u/ixYuVkZGh6dOnezOQKSkpGjFihAoLCyVJtm3rb3/7m9q0aaN3331XklRUVKROnTqpZ8+ekk4HsNu2bdPatWu1efNm2bata665plHZxNzcXD399NN64okntHPnTt1999266aabVFRUJEn64osvNHz4cLlcLr311lsqLi7WtGnTdOrUKc2aNUs33nijRo8e7f1cP/jBD7x9z549W3fddZd27dqlrKwsLV68WI899pgeffRRffzxx8rKytKPf/zjOsHzgw8+qFmzZqmkpES9e/fWxIkTderUqXrnX1tbq6qqKp8GAABwPiFxqv26665TWlqasrOztXz58oD0mZCQoKioKLVq1UpJSUne65mZmVq+fLncbrd27NihqKgoTZgwQYWFhRo9erQKCws1YsQISdLu3bu1du1abdq0yRvcPfvss0pJSdGaNWt0ww03ePvt3Lmzz/hdu3bVzp0768yrtrZWCxcu1F//+ldlZGRIknr06KF3331XTz75pEaMGKHHH39cCQkJWrlypVq2bClJ6t27t7ePmJgY1dbW+nyuM2bOnKmf/OQn3p8fffRRPfDAA/rpT38qSVq0aJHefvtt/e53v9Pjjz/uvW/WrFm69tprJUlz587VpZdeqj179qhv3751xsjNzdXcuXPrXXcAAHB+4foAeccznmcsWrRIBQUF2rVr13nvvfXWWxUbG+tt/hg2bJiOHTumDz/8UEVFRRoxYoQyMzO9WdCioiJlZmZKknbt2qXIyEgNHjzY+/6LLrpIffr0qTPPv/3tbyopKfG2P//5z/WOv2fPHn3zzTf64Q9/6PMZnn76ae3du1eSVFJSomHDhnmDTn+kp6d7/1xVVaVDhw5pyJAhPvcMGTKkzvwHDBjg/XNycrIkqaKiot4x5syZo8rKSm8rKyvze54AAIQ1p0vsDpXaQyLjKUnDhw9XVlaW5syZo6lTp57z3nnz5mnWrFkXNE6bNm00cOBAFRYWavPmzfrhD3+o4cOHa8KECfrss8+0e/dub8bTH927d1ebNm3Oe9+ZvaRvvPGGOnXq5POay+WSdDqjeaFat259Qe/7dpB75okCHo+n3ntdLpd3rgAAwH/hmvEMmcBTkvLy8pSWlqY+ffqc877ExMQGnRiPioqS2+2uc33EiBF6++23tXXrVi1YsEDt2rVTv379tGDBAiUnJ3vL2v369dOpU6e0ZcsWb6n966+/VmlpqVJTUy/gE0qpqalyuVw6cODAWQPcAQMGqKCgQCdPnqw363m2z/Vd8fHx6tixozZt2uQz1qZNm/T973//guYPAABwoUKm1C5J/fv316RJk7RkyZKA9NetWzdt2bJF+/fv11dffeXN4GVmZmr9+vWKjIz07mHMzMzUs88+6xOg9erVS+PGjdP06dP17rvv6qOPPtJNN92kTp06ady4cT5jVVRU6PDhwz6tvgNIcXFxmjVrlu6++24VFBRo79692r59u5YuXaqCggJJ0h133KGqqir99Kc/1bZt27R792796U9/UmlpqfdzffzxxyotLdVXX311zoNO9913nxYtWqQXXnhBpaWlmj17tkpKSnTXXXc1bnEBAMCFc7rEHq6n2r9r3rx5Zy3x+mvWrFmKiIhQamqq2rdvrwMHDkg6vc/T4/H4BJmZmZlyu93e/Z1nrFixQoMGDdKPfvQjZWRkyLZt/fnPf66TiezTp4+Sk5N9WnFxcb3zmj9/vh566CHl5uaqX79+Gj16tN544w11795d0ul9pG+99Zaqq6s1YsQIDRo0SE899ZR3zOnTp6tPnz5KT09X+/bttWnTprOuwZ133ql77rlH9957r/r3769169Zp7dq16tWrl9/rCQAAAifcnuF5+jPbDn9RKJq8qqoqJSQkKFPjFGn5fyAKzY975KCg9PtlOnuLJanDttqg9Bus9Q3WfCM21v8f9+EoWP/mmtoaB2MdTp06rr8VzlVlZaXi4+Mb3d+Z35mDblygyJbRAZjhhTt18riKX3wwYJ+tIUJqjycAAEBYsO3Tzek5GEbgCQAAYFi4nmoPuT2eAAAAaJ7IeAIAAJjm0KnyOnMwjMATAADAMMtzujk9B9MotQMAAMAIMp4AAACmUWoHAACACeF6qp3AEwAAwLQwfY4nezwBAABgBBlPAAAAwyi1AwAAwIwwPVxEqR0AAABGkPEEAAAwjFI7AAAAzOBUOwAAABA8ZDwBAAAMo9QOAAAAMzjVDgAAAAQPGU8AAADDKLUDAADADI99ujk9B8MIPAEAAExjjycAAAAQPGQ8AQAADLMUAns8HRiTwBMAAMA0vrkIAAAACB4CTwAAAMPOPE7J6eaPd955R2PHjlXHjh1lWZbWrFnj9+cm8AQAADDNDpHmh5qaGg0cOFCPP/74BX1kiT2eAAAAaIAxY8ZozJgxjeqDwBMAAMAwy7ZlOXy46Mz4VVVVPtddLpdcLldQxiTwRMAM2uSWKzawuzfmJ+4IaH9nZHUcGJR+3SMHBaXfiI3FQekXpx1P+yYo/UaXtApKv1+mB+cXAgCDPP9uTs9BUkpKis/l7Oxs5eTkBGVIAk8AAIAwVlZWpvj4eO/Pwcp2SgSeAAAAxoVSqT0+Pt4n8AwmAk8AAADTwvS72gk8AQAATGuC31xUXV2tPXv2eH/et2+fSkpK1K5dO3Xp0qVBfRB4AgAA4Ly2bdumK6+80vvzPffcI0maMmWK8vPzG9QHgScAAIBhF/LNQcGYgz8yMzNlNzJLS+AJAABgWhMstQcCX5kJAAAAI8h4AgAAGGZ5Tjen52AagScAAIBplNoBAACA4CHjCQAAYBoPkAcAAIAJofSVmSZRagcAAIARZDwBAABMC9PDRQSeAAAAptmSHH6cEns8AQAAwgB7PAEAAIAgIuMJAABgmq0Q2ONpfkgCTwAAANPC9HARpXYAAAAYQcYTAADANI8kKwTmYBiBJwAAgGGcagcAAACCiIwnAACAaWF6uIjAEwAAwLQwDTwptQMAAMAIMp4AAACmhWnGk8ATAADANB6nBAAAABN4nBIAAAAQRASeISQzM1MzZ85s0L379++XZVkqKSkJWJ+SVFhYKMuydPTo0Qa/BwAA+OnMHk+nm2GU2kPIK6+8opYtWzbo3pSUFJWXl+viiy+WdDpgvPLKK3XkyBG1adPmgvoEAACGeGzJcvhwkYfAM6y1a9euwfdGREQoKSkpoH0CAAAEE6X2EPLtsni3bt20cOFCTZs2TXFxcerSpYv+8Ic/eO/9dql9//79uvLKKyVJbdu2lWVZmjp1ap0+JelPf/qT0tPTFRcXp6SkJP3sZz9TRUWFqY8IAAAk50vsDpXaCTxD2GOPPab09HR9+OGHuv3223XbbbeptLS0zn0pKSl6+eWXJUmlpaUqLy/X4sWL6+3z5MmTmj9/vj766COtWbNG+/fv9wapDVVbW6uqqiqfBgAA/BEKQSeldnzLNddco9tvv12S9MADD+i//uu/9Pbbb6tPnz4+90VERHhL6omJiT57PL9r2rRp3j/36NFDS5Ys0RVXXKHq6mrFxsY2aF65ubmaO3eun58GAACEOzKeIWzAgAHeP1uWpaSkpEaXxYuLizV27Fh16dJFcXFxGjFihCTpwIEDDe5jzpw5qqys9LaysrJGzQkAgLDjdLaTU+34ru+eRrcsSx7PhX/NQE1NjbKyspSVlaVnn31W7du314EDB5SVlaUTJ040uB+XyyWXy3XB8wAAIOx5nCl1152DWQSezURUVJQkye12n/We//3f/9XXX3+tvLw8paSkSJK2bdtmZH4AAACU2puJrl27yrIsvf766/rHP/6h6urqOvd06dJFUVFRWrp0qT7//HOtXbtW8+fPd2C2AACEOdsTGs0wAs9molOnTpo7d65mz56tDh066I477qhzT/v27ZWfn69Vq1YpNTVVeXl5evTRRx2YLQAAYc7pvZ3s8URhYaH3z/v376/z+re/HrNbt26yv/MX5qGHHtJDDz101j4laeLEiZo4caLPtW/3k5mZWadfAAAQYGG6x5OMJwAAAIwg4wkAAGCaQ6XuOnMwjMATAADANFshEHiaH5JSOwAAAIwg4wkAAGAapXYAAAAY4fFIMv8czbpzMItSOwAAAIwg4wkAAGAapXYAAAAYEaaBJ6V2AAAAGEHGEwAAwLQw/cpMAk8AAADDbNsj23b2VLsT4xN4AgAAmGbbjmQc68zBMPZ4AgAAwAgyngAAAKbZIbDHk8cpAQAAhAGPR7Ic/uYiB/Z4UmoHAACAEWQ8AQAATKPUDgAAABNsj0e2w6V2Jx6nRKkdAAAARpDxBAAAMI1SOwAAAIzw2JIVfoEnpXYAAAAYQcYTAADANNuW5PRzPCm1AwAANHu2x5btcKndJvAEAAAIA7ZHzmc8eZwSAAAAQtTjjz+ubt26KTo6WoMHD9bWrVv9ej+BJwAAgGG2xw6J5o8XXnhB99xzj7Kzs7V9+3YNHDhQWVlZqqioaHAfBJ4AAACm2Z7QaH747W9/q+nTp+vnP/+5UlNT9cQTT6hVq1b64x//2OA+2OOJRjuzObm25mTA+66KcQe8T0k6ZQd+rpLkPnU8KP3aQZpvsARrHdy1wdkI7/kmWPPlv+0l6dSp2qD029T+XQQT/99zWjDW4czf30AfxDmlk44/P/6UTv/vW1VV5XPd5XLJ5XL5XDtx4oSKi4s1Z84c77UWLVpo1KhR2rx5c4PHtGwnjjShWTl48KBSUlKcngYAAEFTVlamzp07N7qf48ePq3v37jp8+HAAZtV4sbGxqq6u9rmWnZ2tnJwcn2uHDh1Sp06d9N577ykjI8N7/f7771dRUZG2bNnSoPHIeKLROnbsqLKyMsXFxcmyLMfmUVVVpZSUFJWVlSk+Pt6xeTRlrGHjsYaBwTo2HmvYeGfW8NNPP1XHjh0D0md0dLT27dunEydOBKS/xrJtu87v7u9mOwOJwBON1qJFi4D8V2CgxMfH83+yjcQaNh5rGBisY+Oxho3XqVMntWgRuK0z0dHRio6ODlh/Jlx88cWKiIjQl19+6XP9yy+/VFJSUoP7YQMSAAAAzikqKkqDBg3Sxo0bvdc8Ho82btzoU3o/HzKeAAAAOK977rlHU6ZMUXp6ur7//e/rd7/7nWpqavTzn/+8wX0QeKLZcLlcys7ODurelOaONWw81jAwWMfGYw0bjzX0NWHCBP3jH//Qb37zGx0+fFhpaWlat26dOnTo0OA+ONUOAAAAI9jjCQAAACMIPAEAAGAEgScAAACMIPAEAACAEQSeaFLeeecdjR07Vh07dpRlWVqzZo3P67Zt6ze/+Y2Sk5MVExOjUaNGaffu3c5MNkTl5ubqiiuuUFxcnBITEzV+/HiVlpb63HP8+HHNmDFDF110kWJjY3X99dfXeWhwuFu2bJkGDBjgfTh3RkaG3nzzTe/rrKH/8vLyZFmWZs6c6b3GOp5bTk6OLMvyaX379vW+zvo13BdffKGbbrpJF110kWJiYtS/f39t27bN+zq/XwKDwBNNSk1NjQYOHKjHH3+83tcffvhhLVmyRE888YS2bNmi1q1bKysrS8ePHzc809BVVFSkGTNm6P3339eGDRt08uRJXX311aqpqfHec/fdd+u1117TqlWrVFRUpEOHDuknP/mJg7MOPZ07d1ZeXp6Ki4u1bds2XXXVVRo3bpx27twpiTX01wcffKAnn3xSAwYM8LnOOp7fpZdeqvLycm979913va+xfg1z5MgRDRkyRC1bttSbb76pTz/9VI899pjatm3rvYffLwFiA02UJHv16tXenz0ej52UlGQ/8sgj3mtHjx61XS6X/fzzzzsww6ahoqLClmQXFRXZtn16zVq2bGmvWrXKe8+uXbtsSfbmzZudmmaT0LZtW/t//ud/WEM/HTt2zO7Vq5e9YcMGe8SIEfZdd91l2zZ/FxsiOzvbHjhwYL2vsX4N98ADD9hDhw496+v8fgkcMp5oNvbt26fDhw9r1KhR3msJCQkaPHiwNm/e7ODMQltlZaUkqV27dpKk4uJinTx50mcd+/btqy5durCOZ+F2u7Vy5UrV1NQoIyODNfTTjBkzdO211/qsl8TfxYbavXu3OnbsqB49emjSpEk6cOCAJNbPH2vXrlV6erpuuOEGJSYm6vLLL9dTTz3lfZ3fL4FD4Ilm4/Dhw5JU5xsUOnTo4H0Nvjwej2bOnKkhQ4bosssuk3R6HaOiotSmTRufe1nHuj755BPFxsbK5XLp1ltv1erVq5Wamsoa+mHlypXavn27cnNz67zGOp7f4MGDlZ+fr3Xr1mnZsmXat2+fhg0bpmPHjrF+fvj888+1bNky9erVS+vXr9dtt92mO++8UwUFBZL4/RJIfGUmEMZmzJihHTt2+OwJQ8P16dNHJSUlqqys1EsvvaQpU6aoqKjI6Wk1GWVlZbrrrru0YcMGRUdHOz2dJmnMmDHePw8YMECDBw9W165d9eKLLyomJsbBmTUtHo9H6enpWrhwoSTp8ssv144dO/TEE09oypQpDs+ueSHjiWYjKSlJkuqc2Pzyyy+9r+H/3HHHHXr99df19ttvq3Pnzt7rSUlJOnHihI4ePepzP+tYV1RUlHr27KlBgwYpNzdXAwcO1OLFi1nDBiouLlZFRYW+973vKTIyUpGRkSoqKtKSJUsUGRmpDh06sI5+atOmjXr37q09e/bw99APycnJSk1N9bnWr18/77YFfr8EDoEnmo3u3bsrKSlJGzdu9F6rqqrSli1blJGR4eDMQott27rjjju0evVqvfXWW+revbvP64MGDVLLli191rG0tFQHDhxgHc/D4/GotraWNWygkSNH6pNPPlFJSYm3paena9KkSd4/s47+qa6u1t69e5WcnMzfQz8MGTKkzmPlPvvsM3Xt2lUSv18CyunTTYA/jh07Zn/44Yf2hx9+aEuyf/vb39offvih/fe//922bdvOy8uz27RpY7/66qv2xx9/bI8bN87u3r27/a9//cvhmYeO2267zU5ISLALCwvt8vJyb/vmm2+899x66612ly5d7Lfeesvetm2bnZGRYWdkZDg469Aze/Zsu6ioyN63b5/98ccf27Nnz7Yty7L/8pe/2LbNGl6ob59qt23W8Xzuvfdeu7Cw0N63b5+9adMme9SoUfbFF19sV1RU2LbN+jXU1q1b7cjISHvBggX27t277WeffdZu1aqV/cwzz3jv4fdLYBB4okl5++23bUl12pQpU2zbPv3Ii4ceesju0KGD7XK57JEjR9qlpaXOTjrE1Ld+kuwVK1Z47/nXv/5l33777Xbbtm3tVq1a2dddd51dXl7u3KRD0LRp0+yuXbvaUVFRdvv27e2RI0d6g07bZg0v1HcDT9bx3CZMmGAnJyfbUVFRdqdOnewJEybYe/bs8b7O+jXca6+9Zl922WW2y+Wy+/bta//hD3/weZ3fL4Fh2bZtO5NrBQAAQDhhjycAAACMIPAEAACAEQSeAAAAMILAEwAAAEYQeAIAAMAIAk8AAAAYQeAJAAAAIwg8AQAAYASBJwCEiKlTp8qyrDpt9OjRDXr//v37ZVmWSkpKgjtRALhAkU5PAADwf0aPHq0VK1b4XHO5XA7NBgACi4wnAIQQl8ulpKQkn9a2bVtJkmVZWrZsmcaMGaOYmBj16NFDL730kve93bt3lyRdfvnlsixLmZmZTnwEADgrAk8AaEIeeughXX/99froo480adIk/fSnP9WuXbskSVu3bpUk/fWvf1V5ebleeeUVJ6cKAHUQeAJACHn99dcVGxvr0xYuXOh9/YYbbtAvfvEL9e7dW/Pnz1d6erqWLl0qSWrfvr0k6aKLLlJSUpLatWvnyGcAgLNhjycAhJArr7xSy5Yt87n27QAyIyPD57WMjAwOEwFoMgg8ASCEtG7dWj179nR6GgAQFJTaAaAJef/99+v83K9fP0lSVFSUJMntdhufFwA0BBlPAAghtbW1Onz4sM+1yMhIXXzxxZKkVatWKT09XUOHDtWzzz6rrVu3avny5ZKkxMRExcTEaN26dercubOio6OVkJBg/DMAwNmQ8QSAELJu3TolJyf7tKFDh3pfnzt3rlauXKkBAwbo6aef1vPPP6/U1FRJpwPUJUuW6Mknn1THjh01btw4pz4GANTLsm3bdnoSAIDzsyxLq1ev1vjx452eCgBcEDKeAAAAMILAEwAAAEZwuAgAmgh2RgFo6sh4AgAAwAgCTwAAABhB4AkAAAAjCDwBAABgBIEnAAAAjCDwBAAAgBEEngAAADCCwBMAAABGEHgCAADAiP8P6Fcn6WrgLY8AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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R4/WI488ovvvv9+rWEtKSjRo0CDFxcVpypQpXh1TlUmTJqm4uNg9CgoKajQfAABAVa7ohwL07dtXycnJmjRpktLS0qrdd+rUqRo/frxP85eWlqpevXravn276tWr5/HehYR39uzZWrBggebPn6+uXbuqcePGSk9Pv6x+0BEjRuiJJ55QaGioWrRooaAg7/5f49SpUxowYIDCw8O1evVqNWjQwP2e3W73aEmQpGPHjrnfq0xwcLCCg4N9jh8AAJxnhcqm2et764pOViVp5syZio+Pr7RSebGoqChFRUX5NPf1118vh8Oh48eP65Zbbql0n48//lhDhgzR7373O0mS0+nUl19+qbi4OEnSNddcowYNGmjLli1q06aNJOnkyZP68ssvlZiY6DFXZGSkYmJiKl2nYcOGcjgcFbaXlJQoOTlZwcHBeuuttxQSEuLxfkJCgqZPn67jx4+7P/+GDRsUERHhjhEAANQul8sml8nJotnre+uKbgOQpK5du2rEiBFauHBhrc/dqVMnjRgxQqmpqXrzzTd18OBBbd26VRkZGXr33XclSR07dtSGDRu0adMm7d27V//v//0/d+VSOl+BHTVqlCZMmKD3339fu3fvVlpamtdV0wvatWungwcPKi8vTydOnHBfBHX77berrKxMy5YtU0lJiYqKilRUVORObG+//XbFxcXprrvu0qeffqr169frySef1JgxY6ieAgAA013xlVXp/Ff8r776ql/mXr58uZ555hk9+uij+uabb3T11Vfrpptu0s9//nNJ0pNPPqmvv/5aycnJatSokX7/+98rJSXF48b8s2fPVmlpqQYPHqzw8HA9+uijFW7cfym/+tWv9Oabb6pfv376/vvvtXz5crVr105btmyRpAoV2YMHD6pdu3aqV6+e3nnnHd1///1KSEhQ48aNNXLkSE2dOrWGZwYAAFTlwo35zY4hENhcLlegPMAAFlVSUqLIyEglaYjq2xpc+oAr2IH5N/ll3mvSN/tlXn/54c7el97JQkJXbzE7BEvw19+bv86vv/69SVLLHP/8auRnzb/88TPhPH1ahx9/0n3rx5q68Duz95qHVL+xud9gnisr15aUhbX22fzlim8DAAAAQOCqE20AAAAAVsIFVt4jWQUAADAYt67yHskqAACAwaiseo+eVQAAAFgWlVUAAACDuSzQBhAolVWSVQAA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qsTERIWEhOiVV16R0+nU1KlT1bp1awUHBys+Pl7r1q1zr3PhuDfffFP9+vVTo0aN1L17d+Xm5tb47wAAAFTB7K//aQPwXr169TRjxgwtWrRIR44cqbV5FyxYoISEBI0ePdpd6YyOjlZiYqKys7MlSS6XS//3f/+nJk2a6KOPPpIk5eTkqFWrVoqJiZF0Pundtm2b3nrrLeXm5srlcumOO+6oUdUyIyNDL730kp5//nnt2bNHjzzyiH73u98pJydHkvTNN9+ob9++Cg4O1vvvv6/t27frnnvu0blz5zR+/Hj9+te/1oABA9yfq0+fPu65J06cqIcfflh79+5VcnKyFixYoLlz52rOnDn67LPPlJycrF/84hcVEu4nnnhC48ePV15enjp16qThw4fr3LlzlcZfXl6ukpISjwEAAOAPlrgbwJ133qn4+HhNnjxZy5Ytq5U5IyMj1bBhQzVq1Eh2u929PSkpScuWLZPD4dDu3bvVsGFDDRs2TNnZ2RowYICys7OVmJgoSfrqq6/01ltv6eOPP3YnhK+88oqio6O1Zs0aDR061D1v69atPdZv27at9uzZUyGu8vJyzZgxQ//617+UkJAgSerQoYM++ugjLV26VImJiVq8eLEiIyO1cuVKNWjQQJLUqVMn9xyhoaEqLy/3+FwXpKen65e//KX79Zw5c/T444/rN7/5jSRp1qxZ+uCDDzR//nwtXrzYvd/48eM1aNAgSdLTTz+ta6+9Vvv371fnzp0rrJGRkaGnn3660vMOAAAuzQpfw5u9vrdMr6xeMGvWLGVlZWnv3r2X3Pe+++5TWFiYe/jilltu0alTp7Rz507l5OQoMTFRSUlJ7mprTk6OkpKSJEl79+5V/fr11bt3b/fxP/nJTxQbG1shzv/7v/9TXl6ee7z33nuVrr9//3795z//0W233ebxGV566SUdOHBAkpSXl6dbbrnFnaj6olevXu4/l5SU6OjRo7r55ps99rn55psrxN+tWzf3n1u0aCFJOn78eKVrTJo0ScXFxe5RUFDgc5wAANRpZn/9H0BtAJaorEpS3759lZycrEmTJiktLa3afadOnarx48df1jpNmjRR9+7dlZ2drdzcXN12223q27evhg0bpi+//FJfffWVu7Lqi/bt26tJkyaX3O9Cb+y7776rVq1aebwXHBws6Xzl9HI1btz4so67ODG+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1L17dyUnJ+v48eNmh2YZZWVl6t69uxYvXmx2KJaUk5OjMWPGaPPmzdqwYYPOnj2r22+/XWVlZWaHZhmtW7fWzJkztX37dm3btk233nqrhgwZoj179pgdGirBrasAA82ePVtLlizR119/bXYolpOZman09HR9//33Zodiqt69e+uGG27Qs88+K+n8E2Kio6P14IMPauLEiSZHZz02m02rV69WSkqK2aFY1rfffquoqCjl5OSob9++ZodjWU2bNtXs2bM1atQos0PBj1BZBQxUXFyspk2bmh0GLOrMmTPavn27+vfv794WFBSk/v37Kzc318TIEMiKi4slif/2VMHhcGjlypUqKyvz+TGgMAZPsAIMsn//fi1atEhz5swxOxRY1IkTJ+RwONxPg7mgefPm+uKLL0yKCoHM6XQqPT1dN998s89PDbrS7dq1SwkJCTp9+rTCwsK0evVqxcXFmR0WKkFlFfDRxIkTZbPZqh0/Tiy++eYbDRgwQEOHDtXo0aNNitw4l3OOANS+MWPGaPfu3Vq5cqXZoVhObGys8vLytGXLFt1///0aOXKkPv/8c7PDQiWorAI+evTRR5WWllbtPh06dHD/+ejRo+rXr5/69OmjF154wc/RWYOv5wjnXX311apXr56OHTvmsf3YsWOy2+0mRYVANXbsWL3zzjv68MMP1bp1a7PDsZyGDRsqJiZGktSzZ0998sknWrBggZYuXWpyZPgxklXAR82aNVOzZs282vebb75Rv3791LNnTy1fvlxBQXXjywxfzhH+p2HDhurZs6c2btzovmDI6XRq48aNGjt2rLnBIWC4XC49+OCDWr16tbKzs9W+fXuzQwoITqdT5eXlZoeBSpCsAn7yzTffKCkpSW3bttWcOXP07bffut+jSvY/+fn5+u6775Sfny+Hw6G8vDxJUkxMjMLCwswNzgTjxo3TyJEj1atXL914442aP3++ysrKdPfdd5sdmmWUlpZq//797tcHDx5UXl6emjZtqjZt2pgYmTWMGTNGK1as0Nq1axUeHq6ioiJJUmRkpEJDQ02OzhomTZqkgQMHqk2bNjp16pRWrFih7OxsrV+/3uzQUAluXQX4SWZmZpUJBv/s/ictLU1ZWVkVtn/wwQdKSkoyPiALePbZZzV79mwVFRUpPj5eCxcuVO/evc0OyzKys7PVr1+/CttHjhypzMxM4wOyGJvNVun25cuXX7I9p64YNWqUNm7cqMLCQkVGRqpbt256/PHHddttt5kdGipBsgoAAADLqhsNdAAAAAhIJKsAAACwLJJVAAAAWBbJKgAAACyLZBUAAACWRbIKAAAAyyJZBQAAgGWRrAJAADt06JBsNpv7yV+VyczMVJMmTQyLCQBqE8kqAJgoLS1NNputwhgwYECtrTFs2DB9+eWXtTYfABipvtkBAEBdN2DAAC1fvtxjW3BwcK3NHxoayjPhAQQsKqsAYLLg4GDZ7XaPcdVVV0k6/5z3JUuWaODAgQoNDVWHDh30+uuvV5jj66+/Vr9+/dSoUSN1795dubm57vdoAwAQyEhWAcDinnrqKf3qV7/Sp59+qhEjRug3v/mN9u7d67HPE088ofHjxysvL0+dOnXS8OHDde7cOZMiBoDaQ7IKACZ75513FBYW5jFmzJjhfn/o0KG699571alTJ02bNk29evXSokWLPOYYP368Bg0apE6dOunpp5/W4cOHtX//fqM/CgDUOnpWAcBk/fr105IlSzy2NW3a1P3nhIQEj/cSEhIqXP3frVs3959btGghSTp+/Lg6d+5cy9ECgLFIVgHAZI0bN1ZMTEyN5mjQoIH7zzabTZLkdDprNCcAWAFtAABgcZs3b67wukuXLiZFAwDGorIKACYrLy9XUVGRx7b69evr6quvliStWrVKvXr10k9/+lO98sor2rp1q5YtW2ZGqABgOJJVADDZunXr3H2mF8TGxuqLL76QJD399NNauXKlHnjgAbVo0UJ///vfFRcXZ0aoAGA4m8vlcpkdBACgcjabTatXr1ZKSorZoQCAKehZBQAAgGWRrAIAAMCy6FkFAAujUwtAXUdlFQAAAJZFsgoAAADLIlkFAACAZZGsAgAAwLJIVgEAAGBZJKsAAACwLJJVAAAAWBbJKgAAACyLZBUAAACW9f8BKTUhIJBMVKYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for h in hs:\n", + " h.plot2d()\n", + " plt.yticks(plt.gca().get_yticks(), labels, rotation=0)\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "f78249e8-8ebe-43b3-8dd5-b996db6cfa2d", + "metadata": {}, + "source": [ + "You can slice these histograms to view and plot the 1D histogram at each step of the selection. For example, if we want the $P_T$ of the electrons at the final step (index 4) of the selection, we can do the following." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "2cda4d43-4933-4fe1-a19b-1db74a5b62d0", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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Cxfqww8/VHl5uf8rLi5OS5cu9f9v1rL7GhsbdfHiRY0bN44/l100d+7cdr9a5ZNPPtHEiRMl9YPvP71+CzkGlBs3bljnz5+3zp8/b0mytm7dap0/f9763//9X8uyLOvll1+2HnzwQeu9996zfv/731uPP/64NXnyZOvzzz8P8OT9zzPPPGOFhYVZv/nNb6wrV674v5qbm/37/PCHP7SioqKsEydOWKWlpVZiYqKVmJgYwKn7p3Xr1lknT560qqurrd///vfWunXrLJvNZh09etSyLNbxbnz103CWxVp2xXPPPWf95je/saqrq60zZ85YKSkp1ujRo62rV69alsVadkVJSYllt9utl156yfr000+tt99+2xo6dKj1n//5n/59Avn9h1hCG0VFRZakdl+ZmZmWZf3l45vr16+3IiIirNDQUGvhwoVWVVVVYIfupzpaR0nW7t27/ft8/vnn1o9+9CNr5MiR1tChQ62MjAzrypUrgRu6n3r66aetiRMnWiEhIdaYMWOshQsX+kPJsljHu/H1WGIt79zixYutcePGWSEhIZbT6bQWL15sXbhwwf88a9k1v/rVr6wZM2ZYoaGh1kMPPWS9+eabbZ4P5Pcfm2VZVu9fvwIAABiYuGcJAADAgFgCAAAwIJYAAAAMiCUAAAADYgkAAMCAWAIAADAglgAAAAyIJQAAAANiCQAAwIBYAnDfeuqpp2Sz2dp9ffe7372j1//P//yPbDabysvLe3dQAAFlD/QAABBI3/3ud7V79+4220JDQwM0DYD+iCtLAO5roaGhioyMbPM1cuRISZLNZlNOTo7cbreGDBmiKVOm6Be/+IX/tZMnT5YkzZ49WzabTQsWLAjEWwDQy4glADBYv369vve97+l3v/udli5dqu9///v66KOPJEklJSWSpOPHj+vKlSs6cOBAIEcF0EuIJQD3tUOHDmnYsGFtvjZt2uR//sknn9Tf//3f65vf/KZ+8pOfKC4uTq+//rokacyYMZKk8PBwRUZGatSoUQF5DwB6F/csAbivJSUlKScnp822r0ZPYmJim+cSExO5oRu4zxBLAO5rDzzwgL7xjW8EegwA/Rg/hgMAgw8++KDd42nTpkmSQkJCJEmtra19PheAvsOVJQD3tS+++EK1tbVtttntdo0ePVqS9O677youLk6PPPKI3n77bZWUlGjnzp2SpLFjx2rIkCEqKCjQ+PHjNXjwYIWFhfX5ewDQu7iyBOC+VlBQoHHjxrX5euSRR/zP/9u//Zv279+vmTNn6j/+4z/0s5/9TDExMZL+ElWvvfaa3njjDTkcDj3++OOBehsAepHNsiwr0EMAQH9ks9mUn5+vRYsWBXoUAAHElSUAAAADYgkAAMCAG7wBoBPcpQBA4soSAACAEbEEAABgQCwBAAAYEEsAAAAGxBIAAIABsQQAAGBALAEAABgQSwAAAAb/Dzx9urnAPgsTAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "hs[0][:, 4].plot1d(yerr=0)\n", + "plt.yscale(\"log\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "328c05ef-6ddf-478d-93f2-c260436b4b0e", + "metadata": {}, + "source": [ + "Because this automatic bining doesn't look great, for $P_T$ at least, the user has the ability to customize the axes or pass in their own axes objects." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "10c5faad-e4a0-458c-9097-26acee2bba12", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Help on method plot_vars in module coffea.analysis_tools:\n", + "\n", + "plot_vars(vars, axes=None, bins=None, start=None, stop=None, edges=None, transform=None) method of coffea.analysis_tools.NminusOne instance\n", + " Plot the histograms of variables for each step of the N-1 selection\n", + " \n", + " Parameters\n", + " ----------\n", + " vars : dict\n", + " A dictionary in the form ``{name: array}`` where ``name`` is the name of the variable,\n", + " and ``array`` is the corresponding array of values.\n", + " The arrays must be the same length as each mask of the N-1 selection.\n", + " axes : list of hist.axis objects, optional\n", + " The axes objects to histogram the variables on. This will override all the following arguments that define axes.\n", + " Must be the same length as ``vars``.\n", + " bins : iterable of integers or Nones, optional\n", + " The number of bins for each variable histogram. If not specified, it defaults to 20.\n", + " Must be the same length as ``vars``.\n", + " start : iterable of floats or integers or Nones, optional\n", + " The lower edge of the first bin for each variable histogram. If not specified, it defaults to the minimum value of the variable array.\n", + " Must be the same length as ``vars``.\n", + " stop : iterable of floats or integers or Nones, optional\n", + " The upper edge of the last bin for each variable histogram. If not specified, it defaults to the maximum value of the variable array.\n", + " Must be the same length as ``vars``.\n", + " edges : list of iterables of floats or integers, optional\n", + " The bin edges for each variable histogram. This overrides ``bins``, ``start``, and ``stop`` if specified.\n", + " Must be the same length as ``vars``.\n", + " transform : iterable of hist.axis.transform objects or Nones, optional\n", + " The transforms to apply to each variable histogram axis. If not specified, it defaults to None.\n", + " Must be the same length as ``vars``.\n", + " \n", + " Returns\n", + " -------\n", + " hists : list of hist.Hist or hist.dask.Hist objects\n", + " A list of 2D histograms of the variables for each step of the N-1 selection.\n", + " The first axis is the variable, the second axis is the N-1 selection step.\n", + " labels : list of strings\n", + " The bin labels of y axis of the histogram.\n", + "\n" + ] + } + ], + "source": [ + "help(nminusone.plot_vars)" + ] + }, + { + "cell_type": "markdown", + "id": "5c3cd75f-858b-41a3-8b0b-060361a51eba", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Cutflow is implemented in a similar manner to the N-1 selection. We just have to use the `cutflow(*names)` function which will return a `Cutflow` object" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "a856a24d-487d-4308-8236-4f89bb5917ca", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Cutflow(selections=('noMuon', 'twoElectron', 'leadPt20'))" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cutflow = selection.cutflow(\"noMuon\", \"twoElectron\", \"leadPt20\")\n", + "cutflow" + ] + }, + { + "cell_type": "markdown", + "id": "ec84e2a3-b2ab-4352-b716-d568814f3300", + "metadata": {}, + "source": [ + "The methods of this object are similar to the `NminusOne` object. The only difference is that now we seperate things in either \"onecut\" or \"cutflow\". \"onecut\" represents results where each cut is applied alone, while \"cutflow\" represents results where the cuts are applied cumulatively in order." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "96692df8-d25b-4e57-9eea-59acdc1a7f78", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " ('labels', 'nevonecut', 'nevcutflow', 'masksonecut', 'maskscutflow')\n" + ] + }, + { + "data": { + "text/plain": [ + "(['initial', 'noMuon', 'twoElectron', 'leadPt20'],\n", + " [40, 28, 5, 17],\n", + " [40, 28, 5, 3],\n", + " [array([ True, True, True, True, False, False, False, True, True,\n", + " True, False, True, True, True, False, True, True, True,\n", + " True, True, True, True, True, False, False, True, False,\n", + " True, False, True, False, False, True, True, False, True,\n", + " True, True, True, True]),\n", + " array([False, False, True, True, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " True, False, True, True, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, False, False]),\n", + " array([False, True, True, False, True, True, True, False, False,\n", + " True, False, False, False, False, False, True, True, False,\n", + " False, False, True, True, False, True, True, False, True,\n", + " True, False, True, False, True, False, True, False, False,\n", + " False, False, False, False])],\n", + " [array([ True, True, True, True, False, False, False, True, True,\n", + " True, False, True, True, True, False, True, True, True,\n", + " True, True, True, True, True, False, False, True, False,\n", + " True, False, True, False, False, True, True, False, True,\n", + " True, True, True, True]),\n", + " array([False, False, True, True, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " True, False, True, True, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, False, False]),\n", + " array([False, False, True, False, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, True, True, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, False, False])])" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res = cutflow.result()\n", + "print(type(res), res._fields)\n", + "labels, nevonecut, nevcutflow, masksonecut, maskscutflow = res\n", + "labels, nevonecut, nevcutflow, masksonecut, maskscutflow" + ] + }, + { + "cell_type": "markdown", + "id": "e2a06c5f-23d0-4ad0-ab36-dfec7796b8d4", + "metadata": {}, + "source": [ + "As you can see, again we have the same `labels`, `nev` and `masks` only now we have two \"versions\" of them since they've been split into \"onecut\" and \"cutflow\".\n", + "You can again print the statistics of the cutflow exactly like `RDataFrame`." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "4db657a5-f16f-4fef-9956-649269e4ae2c", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Cutflow stats:\n", + "Cut noMuon : pass = 28 cumulative pass = 28 all = 40 -- eff = 70.0 % -- cumulative eff = 70.0 %\n", + "Cut twoElectron : pass = 5 cumulative pass = 5 all = 40 -- eff = 12.5 % -- cumulative eff = 12.5 %\n", + "Cut leadPt20 : pass = 17 cumulative pass = 3 all = 40 -- eff = 42.5 % -- cumulative eff = 7.5 %\n" + ] + } + ], + "source": [ + "cutflow.print()" + ] + }, + { + "cell_type": "markdown", + "id": "e6aa8edf-3953-410d-b46f-f7d54adda821", + "metadata": {}, + "source": [ + "Again, you can extract yield hists, only now there are two of them." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "e9e3db1b-8836-4a85-8e56-5819134b7343", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "data": { + "image/png": "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nasrV65o7dq17H10MI75AG7C/v371b9/f1WsWFELFixQo0aN7OvWrl2rp59+Wo0aNdLrr78uT09PdvE6CWOMdu/erX79+qlx48Zq166dZs6cqXfeeUfdunXLtW1iYqJ8fX11+fJleXp6Omji4mPt2rXy8/NTYGCgjDE6e/as7rnnHvXu3VtjxozR5cuXVb16dT3wwAOaOXOmbDab0tPTtWvXLp09e1YtWrTgoo2FAPEB3KQDBw5o8ODBat26tUaPHp0rQD7//HPVr1+f83g4IWOMdu3apaFDh+rw4cNat26dunbtqqysLJUoUUKSNGHCBO3cuVMxMTGEhwWSkpIUEhKijh076oknntCtt96qS5cu6fbbb9fSpUvl5uam9u3bq3v37nr99dclSevWrVPDhg15a3shwzEfwE0KDAzUW2+9pT179mjOnDk6dOiQfV3Xrl0JDyfx+7/DbDabWrdurYULF6p27dp68cUXc4XH5MmTNXfuXM2cOZPwsEjlypX14Ycf6uDBg5o1a5YOHjyoEiVK6PLly9q8ebO6du2qsLAw+xlmf/jhBy1evNh+jA4KD+IDyAfNmzfXm2++qQMHDmjq1Kn6/vvvHT0S8uC3p+KOiorSY489ppiYGP36669q06aNlixZori4OPsp1adPn64ZM2Zo27ZtCg4OdvD0xUtQUJAWLFigffv2ac6cOTp//rxGjBihxx57TPXq1dMbb7xhD8Q33nhDBw8eVOPGjR08NX6Pl12AfLR792498cQTevfdd1WlShVHj4M8+OijjzRo0CC1a9dOFy5c0LfffquBAwfqscceU5MmTfT111/rvvvu008//SQXFxdt27ZNLVq0cPTYxdb+/fv10EMPqWXLlurfv7/WrVun2bNnKyoqSpJ08uRJLVmyRFu3blWzZs0cOyz+gPgA8hnX4XE+J0+eVNeuXTVx4kQNGzZMkvTuu+/qxRdf1G233aZp06bJx8dH27dv19SpU/Xvf/+bX2iFwP79+zVs2DC1bNlS4eHhiouL0/z58+Xl5aVatWrpX//6F3s9CiniA0Cxd+TIEXXt2lVLlixRu3bt7MuXLVumYcOG6fPPP1fbtm2VlZWlzMxM4rIQ2bdvnx555BE1a9ZMzz//vHx9fe3vcOF5Krw45gNAsZPzN1d6erqka6fivnDhgjIzMyVJly9fliTdf//9ql27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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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PFxPPvlkUdUOAACcUIHCx4IFC/50mZ+fn2JjY6+7IAAAULJxbxcAAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKUIHwAAwFKEDwAAYCnCBwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACApQgfAADAUoQPAABgKcIHAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKUIHwAAwFKEDwAAYKkChY958+YpMDBQXl5e8vLyUnBwsL744gv78szMTEVERKhy5cry9PRUeHi4UlJSCr1oAADgvAoUPmrXrq3nnntOO3bs0Pbt29WtWzf17dtXP/74oyRp3LhxWrVqlT766CPFxsbq5MmT6t+/f5EUDgAAnFO5gnTu06dPvufPPvus5s2bp61bt6p27dpasGCBlixZom7dukmS3n77bTVr1kxbt25Vhw4dCq9qAADgtK75nI+cnBwtXbpUFy5cUHBwsHbs2KHs7GyFhoba+zRt2lR16tTRli1bCqVYAADg/Ao08iFJu3fvVnBwsDIzM+Xp6anly5erefPmio+Pl6urqypVqpSvf/Xq1ZWcnPyn28vKylJWVpb9eXp6ekFLAgAATqTAIx9NmjRRfHy8tm3bpkceeURDhw7V3r17r7mAqKgoeXt72x9+fn7XvC0AAFD8FTh8uLq66sYbb1Tbtm0VFRWlli1bau7cufL19dWlS5eUmpqar39KSop8fX3/dHuRkZFKS0uzPxITEwv8QwAAAOdx3fN85ObmKisrS23btpWLi4vWr19vX5aQkKBjx44pODj4T9d3c3OzX7qb9wAAACVXgc75iIyMVK9evVSnTh2dO3dOS5Ys0caNG7V27Vp5e3tr+PDhGj9+vHx8fOTl5aXRo0crODiYK10AAIBdgcLHqVOnNGTIECUlJcnb21uBgYFau3atbr31VknS7NmzVaZMGYWHhysrK0thYWF69dVXi6RwAADgnAoUPhYsWPCXy93d3RUdHa3o6OjrKgoAAJRc3NsFAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGApwgcAALAU4QMAAFiqQDOcAsVFxqUcR5eA6+DhUlY2m83RZQBw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BQv06quv6tKlS1q9ejWjjw7GOR/Addi5c6cGDRqkqlWrav78+fL397cvW716tZ544gn5+/vr9ddfl4eHB0O8TsIYo++//14DBgxQQECAOnXqpJkzZ+q9995Tz5498/VNTk6Wr6+vLl68KA8PDwdVXHqsXr1atWvXVmBgoIwxOn36tO68807dcccdGjt2rC5evKi6devqnnvu0cyZM2Wz2ZSZmalt27bp9OnTatu2LTdtLAYIH8B12rVrl4YOHar27dtrzJgx+QLIl19+qSZNmjCPhxMyxmjbtm0aPny49u3bpzVr1qhHjx7KyclR2bJlJUkTJ07U1q1bFRMTQ/CwQEpKioKDgxUSEqLHHntMzZo104ULF9S1a1ctXrxYrq6u6ty5s2677Ta9/vrrkqQ1a9aoefPmXNpezHDOB3CdAgMD9dZbb2n79u2aM2eO9u7da1/Wo0cPgoeT+P33MJvNpvbt22vBggVq2LChXnjhhXzBY8qUKXr11Vc1c+ZMgodFqlevro8//lh79uzRrFmztGfPHpUtW1YXL17Uxo0b1aNHD/Xq1cs+w+zRo0f1zjvv2M/RQfFB+AAKQevWrfXmm29q165deuaZZ/TTTz85uiQUwG+n4o6KitIjjzyimJgY/frrr+rQoYMWLVqkhIQE+5Tqzz77rGbMmKGvv/5aQUFBDq6+dGnTpo3mz5+vuLg4zZkzR2fPntXIkSP1yCOPqHHjxnrjjTfsAfGNN97Qnj17FBAQ4OCq8XscdgEK0ffff6/HHntM77//vmrUqOHoclAAn3zyiYYMGaJOnTrp3Llz2r17t+6991498sgjatGihb777jvdddddOnHihMqUKaOvv/5abdu2dXTZpdbOnTt1//33q127dho0aJDWrFmj2bNnKyoqSpJ05MgRLVq0SJs2bVKrVq0cWyyuQvgAChn34XE+R44cUY8ePTRp0iSNGDFCkvT+++/rhRde0M0336zp06fL29tb33zzjZ555hk9//zzfKAVAzt37tSIESPUrl07hYeHKyEhQa+99po8PT3VoEED/fvf/2bUo5gifAAo9fbv368ePXpo0aJF6tSpk719yZIlGjFihL788kt17NhROTk5ys7OJlwWI3FxcXrooYfUqlUrTZs2Tb6+vvYrXHidii/O+QBQ6uR958rMzJR0ZSruc+fOKTs7W5J08eJFSdLd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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "honecut, hcutflow, labels = cutflow.yieldhist()\n", + "\n", + "honecut.plot1d(yerr=0)\n", + "plt.xticks(plt.gca().get_xticks(), labels, rotation=45)\n", + "plt.show()\n", + "\n", + "hcutflow.plot1d(yerr=0)\n", + "plt.xticks(plt.gca().get_xticks(), labels, rotation=45)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "b7faec21-57c7-477d-9f7b-1a22c06c0754", + "metadata": {}, + "source": [ + "Saving to `.npz` files is again there." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "ecc3be33-da27-4845-bba2-f163729670ce", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "labels: ['initial' 'noMuon' 'twoElectron' 'leadPt20']\n", + "nevonecut: [40 28 5 17]\n", + "nevcutflow: [40 28 5 3]\n", + "masksonecut: [[ True True True True False False False True True True False True\n", + " True True False True True True True True True True True False\n", + " False True False True False True False False True True False True\n", + " True True True True]\n", + " [False False True True False False False False False False False False\n", + " False False False False False False True False True True False False\n", + " False False False False False False False False False False False False\n", + " False False False False]\n", + " [False True True False True True True False False True False False\n", + " False False False True True False False False True True False True\n", + " True False True True False True False True False True False False\n", + " False False False False]]\n", + "maskscutflow: [[ True True True True False False False True True True False True\n", + " True True False True True True True True True True True False\n", + " False True False True False True False False True True False True\n", + " True True True True]\n", + " [False False True True False False False False False False False False\n", + " False False False False False False True False True True False False\n", + " False False False False False False False False False False False False\n", + " False False False False]\n", + " [False False True False False False False False False False False False\n", + " False False False False False False False False True True False False\n", + " False False False False False False False False False False False False\n", + " False False False False]]\n" + ] + } + ], + "source": [ + "cutflow.to_npz(\"cutflow_results.npz\")\n", + "\n", + "with np.load(\"cutflow_results.npz\") as f:\n", + " for i in f.files:\n", + " print(f\"{i}: {f[i]}\")" + ] + }, + { + "cell_type": "markdown", + "id": "423a72e7-79f6-4e6c-ab59-b2d709e3f9a0", + "metadata": {}, + "source": [ + "And finally, `plot_vars` is also there with the same axes customizability while now it returns two lists of histograms, one for \"onecut\" and one for \"cutflow\". Those can of course be plotted in a similar fashion." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "22454105-13f9-4f22-9450-9915cab46759", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "([Hist(\n", + " Regular(20, 5.81891, 60.0685, name='ept'),\n", + " Integer(0, 4, name='onecut'),\n", + " storage=Double()) # Sum: 73.0,\n", + " Hist(\n", + " Regular(20, -2.93115, 3.11865, name='ephi'),\n", + " Integer(0, 4, name='onecut'),\n", + " storage=Double()) # Sum: 73.0],\n", + " [Hist(\n", + " Regular(20, 5.81891, 60.0685, name='ept'),\n", + " Integer(0, 4, name='cutflow'),\n", + " storage=Double()) # Sum: 63.0,\n", + " Hist(\n", + " Regular(20, -2.93115, 3.11865, name='ephi'),\n", + " Integer(0, 4, name='cutflow'),\n", + " storage=Double()) # Sum: 63.0],\n", + " ['initial', 'noMuon', 'twoElectron', 'leadPt20'])" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "h1, h2, labels = cutflow.plot_vars(\n", + " {\"ept\": events.Electron.pt, \"ephi\": events.Electron.phi}\n", + ")\n", + "h1, h2, labels" + ] + }, + { + "cell_type": "markdown", + "id": "a96edc79-1b3b-4ff9-8459-6ef28a99d629", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Now, in `coffea` 2023, everything happens in a delayed fashion. Therefore, `PackedSelection` can also operate in delayed or lazy mode and fully support `dask_awkward` arrays. Use is still the same, but everything now is\n", + "a delayed `dask` type object which can be computed whenever the user wants to. This can be done by either calling `.compute()` on the object or `dask.compute(*things)`.\n", + "\n", + "PackedSelection can be initialized to operate in delayed mode by adding a delayed `dask_awkward` array for the first time instead of a materialized `numpy` or `awkward` one.\n", + "I would like to note that we only support delayed `dask_awkward` arrays and not `dask.array` arrays. Please convert your `dask` arrays to `dask_awkward` via `dask_awkward.from_dask_array(array)`. I would also like to note that you cannot mix materialized and delayed arrays in the same `PackedSelection`. Let's now read the same events using dask and perform the exact same things." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "1adf0374-eee9-471b-9582-9cbbf06d2dda", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/iason/fun/coffea_dev/coffea/binder/coffea/nanoevents/schemas/nanoaod.py:215: RuntimeWarning: Missing cross-reference index for FatJet_genJetAK8Idx => GenJetAK8\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "text/plain": [ + "dask.awkward" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import dask\n", + "import dask_awkward as dak\n", + "\n", + "dakevents = NanoEventsFactory.from_root(\n", + " {\"../tests/samples/nano_dy.root\": \"Events\"},\n", + " metadata={\"dataset\": \"nano_dy\"},\n", + " schemaclass=NanoAODSchema,\n", + " permit_dask=True,\n", + ").events()\n", + "\n", + "dakevents" + ] + }, + { + "cell_type": "markdown", + "id": "8cb3c5fc-8897-4860-8fb0-924655e81ef7", + "metadata": {}, + "source": [ + "Now `dakevents` is a delayed `dask_awkward` version of our events and if we compute it we get our normal events." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "a54d1fcc-13c6-4919-bbac-3d6c299f65ab", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[{FsrPhoton: [], Electron: [], SoftActivityJetHT5: 63.5, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 64, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [Electron, Electron], SoftActivityJetHT5: 130, ...},\n",
+       " {FsrPhoton: [], Electron: [Electron, Electron], SoftActivityJetHT5: 25.8, ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 172, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 54.4, RawMET: ..., ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 96.2, RawMET: ..., ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 19, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 9.36, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 115, RawMET: ..., ...},\n",
+       " ...,\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 49.6, RawMET: ..., ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 14.7, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 22.1, RawMET: ..., ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 33.9, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 16.2, RawMET: ..., ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 28.4, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 16.1, RawMET: ..., ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 28.5, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 7, RawMET: {...}, ...}]\n",
+       "--------------------------------------------------------------------------------\n",
+       "type: 40 * event
" + ], + "text/plain": [ + ", ...] type='40 * event'>" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dakevents.compute()" + ] + }, + { + "cell_type": "markdown", + "id": "bd16d282-ace9-4d86-9079-dd66a635e508", + "metadata": {}, + "source": [ + "Now we have to use `dask_awkward` instead of `awkward` and `dakevents` instead of `events` to do the same things. Let's add the same (now delayed) arrays to PackedSelection." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "dc25b728-7504-44fb-b920-051dab6c99d1", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "PackedSelection(selections=('twoElectron', 'eleOppSign', 'noElectron', 'twoMuon', 'muOppSign', 'noMuon', 'leadPt20'), delayed_mode=True, items=7, maxitems=32)\n" + ] + } + ], + "source": [ + "selection = PackedSelection()\n", + "\n", + "selection.add_multiple(\n", + " {\n", + " \"twoElectron\": dak.num(dakevents.Electron) == 2,\n", + " \"eleOppSign\": dak.sum(dakevents.Electron.charge, axis=1) == 0,\n", + " \"noElectron\": dak.num(dakevents.Electron) == 0,\n", + " \"twoMuon\": dak.num(dakevents.Muon) == 2,\n", + " \"muOppSign\": dak.sum(dakevents.Muon.charge, axis=1) == 0,\n", + " \"noMuon\": dak.num(dakevents.Muon) == 0,\n", + " \"leadPt20\": dak.any(dakevents.Electron.pt >= 20.0, axis=1)\n", + " | dak.any(dakevents.Muon.pt >= 20.0, axis=1),\n", + " }\n", + ")\n", + "\n", + "print(selection)" + ] + }, + { + "cell_type": "markdown", + "id": "49520c74-3bac-4355-b4b8-482ac38b4ae2", + "metadata": {}, + "source": [ + "Now, the same functions will return `dask_awkward` objects that have to be computed." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "74c43d65-824b-49e6-a6aa-aa7bef97e7d9", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "dask.awkward" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "selection.all(\"twoElectron\", \"noMuon\", \"leadPt20\")" + ] + }, + { + "cell_type": "markdown", + "id": "87ce9147-a37d-46ba-802c-f1531cd1cf3d", + "metadata": {}, + "source": [ + "When computing those arrays we should get the same arrays that we got when operating in eager mode." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "be4b8e7a-5ea1-45f4-b1d9-827e90331366", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[False, False, True, False, False, ..., False, False, False, False, False]\n", + "[False, False, False, True, False, ..., False, False, False, False, False]\n" + ] + } + ], + "source": [ + "print(selection.all(\"twoElectron\", \"noMuon\", \"leadPt20\").compute())\n", + "print(selection.require(twoElectron=True, noMuon=True, eleOppSign=False).compute())" + ] + }, + { + "cell_type": "markdown", + "id": "b32ece8e-90af-4808-8248-8dfe63c16a6c", + "metadata": {}, + "source": [ + "Now, N-1 and cutflow will just return only delayed objects that must be computed." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "4e79a6b3-55cc-4248-a1db-a076f4667278", + "metadata": { + "slideshow": { + "slide_type": "-" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "NminusOne(selections=('twoElectron', 'noMuon', 'leadPt20'))" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nminusone = selection.nminusone(\"twoElectron\", \"noMuon\", \"leadPt20\")\n", + "nminusone" + ] + }, + { + "cell_type": "markdown", + "id": "e661f0d1-f792-423c-b698-f031209a721f", + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "source": [ + "It is again an `NminusOne` object which has the same methods." + ] + }, + { + "cell_type": "markdown", + "id": "8442cbf2-6c41-4174-a011-a0c451c2feb6", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Let's look at the results of the N-1 selection in the same way" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "dee4c70f-d6fa-4b0a-9d04-f5555ec1856f", + "metadata": { + "slideshow": { + "slide_type": "-" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(['initial', 'N - twoElectron', 'N - noMuon', 'N - leadPt20', 'N'],\n", + " [dask.awkward,\n", + " dask.awkward,\n", + " dask.awkward,\n", + " dask.awkward,\n", + " dask.awkward],\n", + " [dask.awkward,\n", + " dask.awkward,\n", + " dask.awkward,\n", + " dask.awkward])" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "labels, nev, masks = nminusone.result()\n", + "labels, nev, masks" + ] + }, + { + "cell_type": "markdown", + "id": "fbd64ce9-fa7d-4ff6-847a-856dae236565", + "metadata": {}, + "source": [ + "Now however, you can see that everything is a dask awkward object (apart from the labels of course). If we compute them we should get the same things as before and indeed we do:" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "f8fc01f5-3f07-441d-b7de-44aeeaa042ca", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "((40, 10, 3, 5, 3),\n", + " (,\n", + " ,\n", + " ,\n", + " ))" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dask.compute(*nev), dask.compute(*masks)" + ] + }, + { + "cell_type": "markdown", + "id": "1df3b553-70b9-4785-b5f3-f44cd25889a6", + "metadata": {}, + "source": [ + "We can again print the statistics, however for this to happen, the object must of course compute the delayed `nev` list." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "118ee230-eb4f-44da-9dba-05ce15e7951e", + "metadata": { + "slideshow": { + "slide_type": "-" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "N-1 selection stats:\n", + "Ignoring twoElectron : pass = 10 all = 40 -- eff = 25.0 %\n", + "Ignoring noMuon : pass = 3 all = 40 -- eff = 7.5 %\n", + "Ignoring leadPt20 : pass = 5 all = 40 -- eff = 12.5 %\n", + "All cuts : pass = 3 all = 40 -- eff = 7.5 %\n" + ] + } + ], + "source": [ + "nminusone.print()" + ] + }, + { + "cell_type": "markdown", + "id": "e1146ee8-5fe8-4e05-8ebe-658014f613a3", + "metadata": {}, + "source": [ + "And now if we call `result()` again, the `nev` list is materialized." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "700e7669-0459-4e3d-b020-805562106cab", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[40, 10, 3, 5, 3]" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nminusone.result().nev" + ] + }, + { + "cell_type": "markdown", + "id": "b77aa859-7ae1-4c54-9fc4-2ab516e3a483", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "Again the histogram of your total event yields works. This time it is returns a `hist.dask.Hist` object." + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "a2c4fb20-b241-4eeb-8312-ee5a645f30b6", + "metadata": { + "slideshow": { + "slide_type": "-" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "5\n", + "\n", + "\n", + "N-1\n", + "\n", + "\n", + "\n", + "
\n", + "
\n", + "Integer(0, 5, name='N-1')
\n", + "
\n", + "Double() Σ=0.0\n", + "\n", + "
\n", + "
\n", + "" + ], + "text/plain": [ + "Hist(Integer(0, 5, name='N-1'), storage=Double()) # (has staged fills)" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "h, labels = nminusone.yieldhist()\n", + "h" + ] + }, + { + "cell_type": "markdown", + "id": "bc992bfd-cce3-4004-9e16-275d69044745", + "metadata": {}, + "source": [ + "It appears empty because it hasn't been computed yet. Let's do that." + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "38a6d003-fc3c-46e5-ad3b-5d343e997dc5", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "5\n", + "\n", + "\n", + "N-1\n", + "\n", + "\n", + "\n", + "
\n", + "
\n", + "Integer(0, 5, name='N-1')
\n", + "
\n", + "Double() Σ=61.0\n", + "\n", + "
\n", + "
\n", + "" + ], + "text/plain": [ + "Hist(Integer(0, 5, name='N-1'), storage=Double()) # Sum: 61.0" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "h.compute()" + ] + }, + { + "cell_type": "markdown", + "id": "c36f391a-d2a6-4364-afcc-8da81d72ec90", + "metadata": {}, + "source": [ + "Notice that this doesn't happen in place as `h` is still not computed." + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "226cd7fa-ac79-460d-aee5-856eb3362099", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "5\n", + "\n", + "\n", + "N-1\n", + "\n", + "\n", + "\n", + "
\n", + "
\n", + "Integer(0, 5, name='N-1')
\n", + "
\n", + "Double() Σ=0.0\n", + "\n", + "
\n", + "
\n", + "" + ], + "text/plain": [ + "Hist(Integer(0, 5, name='N-1'), storage=Double()) # (has staged fills)" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "h" + ] + }, + { + "cell_type": "markdown", + "id": "6e496df3-8846-4678-a92a-deaf0f2cafbb", + "metadata": {}, + "source": [ + "We can again plot this histogram but we have to call plot on the computed one, otherwise it will just be empty." + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "c96c48b2-53b3-460b-8019-e9f91473aef5", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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1FQ1b95cq1atkpeXV95VDQAAXFauw0fLli1ljPnD7TabTaNGjdKoUaNuqTAAAFA4sbYLAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKUIHwAAwFKEDwAAYCnCBwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACApQgfAADAUoQPAABgKcIHAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGApwgcAALBUnoePN998UzabLcetTp06ef00AADARRXPjwetX7++vvrqq/89SfF8eRoAAOCC8iUVFC9eXAEBAfnx0ABgGWOMLl7JdHYZRU4J92Ky2WzOLgP5KF/Cx/79+1WpUiV5eXkpPDxcMTExCgoKumFfu90uu93uuJ+enp4fJQFArl28kql6I1Y7u4wiZ/eoCJX0YMS8MMvzOR9hYWGaO3euVq1apRkzZigxMVH33HOPfv311xv2j4mJka+vr+MWGBiY1yUBAIACJM+jZceOHR1fN2zYUGFhYapatao++eQTPfXUU9f1j46O1uDBgx3309PTCSAACpwfX2+rkh7FnF1GoXXhcqaavP3VX3dEoZDv41plypRRrVq1dODAgRtu9/T0lKenZ36XAQC3pKRHMQ4FAHkk36/zcf78eR08eFAVK1bM76cCAAAuIM/Dx0svvaQNGzbo8OHD+v7779WtWzcVK1ZMPXr0yOunAgAALijPxxCPHz+uHj166MyZM/L391fz5s21ZcsW+fv75/VTAQAAF5Tn4WPhwoV5/ZAAAKAQYW0XAABgKcIHAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBSrJIEuLgLlzOdXUKhxb51Dva7NUq4F5PNZnPKcxM+ABfHMuQobPibtsbuURFOW6mZwy4AAMBSjHwALqiEezHtHhXh7DKKlBLuxZxdQqHG37Q1LlzOLBAjS4QPwAXZbDanDZcC+YG/6aKFwy4AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKUIHwAAwFKEDwAAYCnCBwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACA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PDzUtGlTxz575plnNGbMGI0ePVrbt29XyZIl1b17d3377bcsHXCTsk+n7dGjh1q3bq25c+cqIyND48eP1+TJk1WiRAktWLBAc+bM0UMPPaT27dsrISFBDRo0cHbpKOqcnX6KqosXLzq7hCItewQjNTXVGGNMcnKyGTBggAkLCzNvv/22o99LL71k3NzczMqVK825c+fML7/8YoYOHWr8/f3N7t27nVK7K/j222+Nu7u7Y0L1b//ea9WqZaZMmeKs0gqVQ4cOmdDQUDN16lRjjDHnz583FStWNCEhIaZhw4aOs7GAgoaRDyfx8vJydglFVlZWltzc3BQfH6/g4GDt379fFSpU0KuvvqqmTZtq+fLleuuttyRduxDTo48+qi5duqhJkybq1KmTPv74Y61evVp169Z18k/ifObaoVtJ1/ZrtubNm6tNmzZ64okndPLkSXl5eckYowsXLqhkyZLy9fV1VsmFym233abu3bura9euSkpKUuPGjdWtWzetWbNG7u7umjJliuNvGShIWNUWRUp28NixY4fuuecePf3005o4caJjpdqUlBSNGTNGW7ZsUZcuXfTqq69KklauXKkzZ87otttuU+PGjVW5cmUn/yQFQ/Z+W79+vT7//HP5+fkpIiJC//jHP7RlyxYNGzZM586d03vvvSdjjL788kvNnDlTW7duVbVq1ZxdfqGQlpYmX19fDRkyRMePH9d7770nX19fDRgwQJ9//rkaNGigOXPmsKIyChTCB4qM3waP8PBwDRo0SKNHj3Zs/+WXX+Tv76+UlBTFxMRo8+bNuv/++1lq/C+sXr1anTp1UufOnfXtt98qJCRETzzxhPr06aO4uDiNGjVKX331lQIDA1WsWDHNnz9fd955p7PLdjnZQS8xMVGpqany9PRUUFCQvL29JUldu3ZVqVKlNH/+fElS//79VaNGDT322GPy9/d3ZunAdQgfKFJ+/vlnNWrUSCNHjlR0dLSjffTo0Vq5cqVWrlyp0qVL69SpUxozZox+/PFHtWjRIsdEVPzP8ePH9c4776hu3brq27evjh8/rmHDhikxMVF9+vTR008/LUmKj49XmTJl5OPjwxvhTcgOHkuWLNHgwYPl6+urM2fO6J577lGfPn3Url07DRkyRNu3b1fz5s2Vnp6uefPmadu2bawvhAKJOR8oMjIzM/Xhhx/q6tWr6tSp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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "h.compute().plot1d()\n", + "plt.xticks(plt.gca().get_xticks(), labels, rotation=45)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "8ca4e1f0-f5a3-46b3-9bcb-848aa3e04a99", + "metadata": {}, + "source": [ + "And we got exactly the same thing. Saving to `.npz` files is still possible but the delayed arrays will be naturally materalized while saving." + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "d0d57fbb-633b-4140-95b6-7ac551a4c271", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "labels: ['initial' 'N - twoElectron' 'N - noMuon' 'N - leadPt20' 'N']\n", + "nev: [40 10 3 5 3]\n", + "masks: [[False True True False False False False False False True False False\n", + " False False False True True False False False True True False False\n", + " False False False True False True False False False True False False\n", + " False False False False]\n", + " [False False True False False False False False False False False False\n", + " False False False False False False False False True True False False\n", + " False False False False False False False False False False False False\n", + " False False False False]\n", + " [False False True True False False False False False False False False\n", + " False False False False False False True False True True False False\n", + " False False False False False False False False False False False False\n", + " False False False False]\n", + " [False False True False False False False False False False False False\n", + " False False False False False False False False True True False False\n", + " False False False False False False False False False False False False\n", + " False False False False]]\n" + ] + } + ], + "source": [ + "nminusone.to_npz(\"nminusone_results.npz\")\n", + "\n", + "with np.load(\"nminusone_results.npz\") as f:\n", + " for i in f.files:\n", + " print(f\"{i}: {f[i]}\")" + ] + }, + { + "cell_type": "markdown", + "id": "7dd71131-d0df-4930-b853-d126d7c0c2db", + "metadata": {}, + "source": [ + "Same logic applies to the `plot_vars` function. Remember to use `dakevents` now and not `events`." + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "621cc56b-7bf1-4be8-b24c-04c89125e6b0", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "hs, labels = nminusone.plot_vars(\n", + " {\"Ept\": dakevents.Electron.pt, \"Ephi\": dakevents.Electron.phi}\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "8e94ed9c-dfd7-47d3-997a-4c7561f51147", + "metadata": {}, + "source": [ + "Those histograms are also delayed and have to be computed before plotting them." + ] + }, + { + "cell_type": "markdown", + "id": "0877deac-0e27-480d-b471-bafba2441328", + "metadata": {}, + "source": [ + "Exactly the same things apply to the cutflow in delayed mode." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/_sources/notebooks/processor.ipynb.txt b/_sources/notebooks/processor.ipynb.txt new file mode 100644 index 000000000..27735447a --- /dev/null +++ b/_sources/notebooks/processor.ipynb.txt @@ -0,0 +1,749 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Coffea Processors\n", + "This is a rendered copy of [processor.ipynb](https://github.com/CoffeaTeam/coffea/blob/master/binder/processor.ipynb). You can optionally run it interactively on [binder at this link](https://mybinder.org/v2/gh/coffeateam/coffea/master?filepath=binder%2Fprocessor.ipynb)\n", + "\n", + "Coffea relies mainly on [uproot](https://github.com/scikit-hep/uproot) to provide access to ROOT files for analysis.\n", + "As a usual analysis will involve processing tens to thousands of files, totalling gigabytes to terabytes of data, there is a certain amount of work to be done to build a parallelized framework to process the data in a reasonable amount of time. Of course, one can work directly within uproot to achieve this, as we'll show in the beginning, but coffea provides the `coffea.processor` module, which allows users to worry just about the actual analysis code and not about how to implement efficient parallelization, assuming that the parallization is a trivial map-reduce operation (e.g. filling histograms and adding them together). The module provides the following key features:\n", + "\n", + " * A `ProcessorABC` abstract base class that can be derived from to implement the analysis code;\n", + " * A [NanoEvents](https://coffeateam.github.io/coffea/notebooks/nanoevents.html) interface to the arrays being read from the TTree as inputs;\n", + " * A generic `accumulate()` utility to reduce the outputs to a single result, as showin in the accumulators notebook tutorial; and\n", + " * A set of parallel executors to access multicore processing or distributed computing systems such as [Dask](https://distributed.dask.org/en/latest/), [Parsl](http://parsl-project.org/), [Spark](https://spark.apache.org/), [WorkQueue](https://cctools.readthedocs.io/en/latest/work_queue/), and others.\n", + "\n", + "Let's start by writing a simple processor class that reads some CMS open data and plots a dimuon mass spectrum.\n", + "We'll start by copying the [ProcessorABC](https://coffeateam.github.io/coffea/api/coffea.processor.ProcessorABC.html#coffea.processor.ProcessorABC) skeleton and filling in some details:\n", + "\n", + " * Remove `flag`, as we won't use it\n", + " * Adding a new histogram for $m_{\\mu \\mu}$\n", + " * Building a [Candidate](https://coffeateam.github.io/coffea/api/coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate.html#coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate) record for muons, since we will read it with `BaseSchema` interpretation (the files used here could be read with `NanoAODSchema` but we want to show how to build vector objects from other TTree formats) \n", + " * Calculating the dimuon invariant mass" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import hist\n", + "import dask\n", + "import awkward as ak\n", + "import hist.dask as hda\n", + "import dask_awkward as dak\n", + "\n", + "from coffea import processor\n", + "from coffea.nanoevents.methods import candidate\n", + "from coffea.dataset_tools import (\n", + " apply_to_fileset,\n", + " max_chunks,\n", + " preprocess,\n", + ")\n", + "from distributed import Client\n", + "\n", + "\n", + "client = Client()\n", + "\n", + "\n", + "class MyProcessor(processor.ProcessorABC):\n", + " def __init__(self):\n", + " pass\n", + "\n", + " def process(self, events):\n", + " dataset = events.metadata['dataset']\n", + " muons = ak.zip(\n", + " {\n", + " \"pt\": events.Muon_pt,\n", + " \"eta\": events.Muon_eta,\n", + " \"phi\": events.Muon_phi,\n", + " \"mass\": events.Muon_mass,\n", + " \"charge\": events.Muon_charge,\n", + " },\n", + " with_name=\"PtEtaPhiMCandidate\",\n", + " behavior=candidate.behavior,\n", + " )\n", + "\n", + " h_mass = (\n", + " hda.Hist.new\n", + " .StrCat([\"opposite\", \"same\"], name=\"sign\")\n", + " .Log(1000, 0.2, 200., name=\"mass\", label=\"$m_{\\mu\\mu}$ [GeV]\")\n", + " .Int64()\n", + " )\n", + "\n", + " cut = (ak.num(muons) == 2) & (ak.sum(muons.charge, axis=1) == 0)\n", + " # add first and second muon in every event together\n", + " dimuon = muons[cut][:, 0] + muons[cut][:, 1]\n", + " h_mass.fill(sign=\"opposite\", mass=dimuon.mass)\n", + "\n", + " cut = (ak.num(muons) == 2) & (ak.sum(muons.charge, axis=1) != 0)\n", + " dimuon = muons[cut][:, 0] + muons[cut][:, 1]\n", + " h_mass.fill(sign=\"same\", mass=dimuon.mass)\n", + "\n", + " return {\n", + " dataset: {\n", + " \"entries\": ak.num(events, axis=0),\n", + " \"mass\": h_mass,\n", + " }\n", + " }\n", + "\n", + " def postprocess(self, accumulator):\n", + " pass" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we were to just use bare uproot to execute this processor, we could do that with the following example, which:\n", + "\n", + " * Opens a CMS open data file\n", + " * Creates a NanoEvents object using `BaseSchema` (roughly equivalent to the output of `uproot.lazy`)\n", + " * Creates a `MyProcessor` instance\n", + " * Runs the `process()` function, which returns our accumulators\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/saransh/Code/HEP/coffea/.env/lib/python3.11/site-packages/coffea/nanoevents/factory.py:299: RuntimeWarning: You have set steps_per_file to 2000, this should only be used for a\n", + " small number of inputs (e.g. for early-stage/exploratory analysis) since it does not\n", + " inform dask of each chunk lengths at creation time, which can cause unexpected\n", + " slowdowns at scale. If you would like to process larger datasets please specify steps\n", + " using the appropriate uproot \"files\" specification:\n", + " https://github.com/scikit-hep/uproot5/blob/v5.1.2/src/uproot/_dask.py#L109-L132.\n", + " \n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'DoubleMuon': {'entries': 26084708, 'mass': Hist(\n", + " StrCategory(['opposite', 'same'], name='sign'),\n", + " Regular(1000, 0.2, 200, transform=log, name='mass', label='$m_{\\\\mu\\\\mu}$ [GeV]'),\n", + " storage=Int64()) # Sum: 12819609.0 (12835141.0 with flow)}}\n" + ] + } + ], + "source": [ + "from coffea.nanoevents import NanoEventsFactory, BaseSchema\n", + "\n", + "filename = \"file://Run2012B_DoubleMuParked.root\"\n", + "events = NanoEventsFactory.from_root(\n", + " {filename: \"Events\"},\n", + " steps_per_file=2_000,\n", + " metadata={\"dataset\": \"DoubleMuon\"},\n", + " schemaclass=BaseSchema,\n", + ").events()\n", + "p = MyProcessor()\n", + "out = p.process(events)\n", + "(computed,) = dask.compute(out)\n", + "print(computed)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkIAAAG6CAYAAADkjinpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABqyUlEQVR4nO3deVgV5dsH8O9hOyyyKMimgOAGKmCiIu4LiYYWZVZaiWZaBqVSavYzNa301dzKrU3R0jQrydRQRNxxA3EXNwwXDrjBYV/n/ePIyBEEDgIHmO/nuuaSmbln5j6LzM3M8zwjEwRBABEREZEE6Wg7ASIiIiJtYSFEREREksVCiIiIiCSLhRARERFJFgshIiIikiwWQkRERCRZLISIiIhIsvS0nUBdVlRUhDt37sDU1BQymUzb6RAREVElCIKA9PR02NvbQ0en/Gs+LITKcefOHTg4OGg7DSIiIqqCmzdvonnz5uXGsBAqh6mpKQDVG2lmZqblbIiIiKgylEolHBwcxPN4eVgIlaP4dpiZmRkLISIionqmMs1a2FiaiIiIJIuFEBEREUkWCyEiIiKSLLYRqgaFhYXIz8/Xdhr0jPT19aGrq6vtNIiIqBaxEHoGgiBAoVAgNTVV26lQNbGwsICtrS3HjSIikggWQs+guAiytraGsbExT571mCAIyMrKQkpKCgDAzs5OyxkREVFtYCFURYWFhWIRZGlpqe10qBoYGRkBAFJSUmBtbc3bZEREEsDG0lVU3CbI2NhYy5lQdSr+PNnmi4hIGlgIPSPeDmtY+HkSEUkLCyEiIiKSLBZCREREJFkshOoAmUyGsLAwbadRI0aPHo2AgABtp0FERFQmFkI1ZPTo0ZDJZJDJZNDX14eNjQ2ef/55rFmzBkVFRWqxSUlJGDx4sJYyJSIiki4WQjVo0KBBSEpKwo0bN/Dvv/+iX79+mDhxIoYMGYKCggIxztbWFnK5XIuZ1i+CIKi9f1R3JKVlIzbxIWITH0IQBG2nQ0RUIRZCNUgul8PW1hbNmjVDp06d8Nlnn+Hvv//Gv//+i9DQUDGu5K2xGzduQCaT4ffff0evXr1gZGSELl264PLlyzhx4gQ6d+6MRo0aYfDgwbh79664j759+2LSpElqxw8ICMDo0aPF+YcPH2LUqFFo3LgxjI2NMXjwYFy5ckVcHxoaCgsLC+zatQtubm5o1KiRWMyV5/z58xgyZAjMzMxgamqKXr164dq1a2ox33zzDezs7GBpaYmgoCC17um//PILOnfuDFNTU9ja2mLkyJHiwIYAsG/fPshkMvz777/w8vKCXC7HoUOHkJ6ejjfffBMmJiaws7PDkiVLSr0Pubm5+OSTT9CsWTOYmJjA29sb+/btK/f1UNVtPJaIV1YewSsrj4B1EBHVByyEaln//v3h6emJv/76q9y4WbNmYcaMGYiNjYWenh5GjhyJqVOnYtmyZTh48CCuXr2KmTNnanTs0aNH4+TJk9i2bRuio6MhCAJeeOEFtaIkKysL33zzDX755RccOHAAiYmJ+OSTT566z9u3b6N3796Qy+XYu3cvYmJi8M4776hdsYmKisK1a9cQFRWFdevWITQ0VK0QzM/Px9y5c3H69GmEhYXhxo0bagVcsU8//RTz58/HxYsX4eHhgZCQEBw+fBjbtm1DREQEDh48iNjYWLVtgoODER0djU2bNuHMmTMYPnw4Bg0apFYAUvVRZnP8JSKqXziytBa4urrizJkz5cZ88skn8PPzAwBMnDgRI0aMQGRkJHr06AEAGDt2rFoxUZErV65g27ZtOHz4MLp37w4A2LBhAxwcHBAWFobhw4cDUBUlq1evRsuWLQGoCok5c+Y8db8rVqyAubk5Nm3aBH19fQBAmzZt1GIaN26M5cuXQ1dXF66urvD390dkZCTGjRsHAHjnnXfEWBcXF3z77bfo0qULMjIy0KhRI3HdnDlz8PzzzwMA0tPTsW7dOmzcuBEDBgwAAKxduxb29vZifGJiItauXYvExERx+SeffILw8HCsXbsWX3/9daXfPyIiaphYCGmBIAgVDtzn4eEh/mxjYwMAcHd3V1tW8vZRRS5evAg9PT14e3uLyywtLdG2bVtcvHhRXGZsbCwWQYDqmVvlHScuLg69evUSi6CytG/fXu1xFXZ2djh79qw4HxMTg9mzZ+P06dN4+PCh2Jg8MTER7dq1E+M6d+4s/nz9+nXk5+eja9eu4jJzc3O0bdtWnD979iwKCwtLFWa5ubl8LAoREQFgIaQVFy9ehLOzc7kxJQuL4qLpyWUle5/p6OiUapxalcdEPFnQyGSychu9Fj+fS9N9FueemZkJPz8/+Pn5YcOGDWjatCkSExPh5+eHvLw8te1MTEwq+zIAABkZGdDV1UVMTEyp54aVvNJERETSxTZCtWzv3r04e/Yshg0bVq37bdq0qVqj5sLCQpw7d06cd3NzQ0FBAY4dOyYuu3//PuLj49WuumjKw8MDBw8erPKzuS5duoT79+9j/vz56NWrF1xdXSt1pcvFxQX6+vo4ceKEuCwtLQ2XL18W55977jkUFhYiJSUFrVq1UptsbW2rlC8RETUsLIRqUG5uLhQKBW7fvo3Y2Fh8/fXXeOmllzBkyBCMGjWqWo/Vv39/7NixAzt27MClS5cwYcIEpKamiutbt26Nl156CePGjcOhQ4dw+vRpvPXWW2jWrBleeumlKh83ODgYSqUSb7zxBk6ePIkrV67gl19+QXx8fKW2d3R0hIGBAb777jtcv34d27Ztw9y5cyvcztTUFIGBgZgyZQqioqJw/vx5jB07Fjo6OuIVtDZt2uDNN9/EqFGj8NdffyEhIQHHjx/HvHnzsGPHjiq/ZiIiajhYCNWg8PBw2NnZoUWLFhg0aBCioqLw7bff4u+//y51q+ZZvfPOOwgMDMSoUaPQp08fuLi4oF+/fmoxa9euhZeXF4YMGQIfHx8IgoCdO3eW276nIpaWlti7dy8yMjLQp08feHl54ccff6z0Pps2bYrQ0FBs2bIF7dq1w/z58/HNN99UatvFixfDx8cHQ4YMga+vL3r06AE3NzcYGhqKMWvXrsWoUaPw8ccfo23btggICMCJEyfg6OhYpddLREQNi0zgqGdPpVQqYW5ujrS0NJiZmamty8nJQUJCApydndVOvKQ9mZmZaNasGRYtWoSxY8dWaR/8XJ/NrL/PYV30fwCA61+/AB2d8jsFEBHVhPLO309iY2mqt06dOoVLly6ha9euSEtLE7v5P8utPiIikhYWQlSvffPNN4iPj4eBgQG8vLxw8OBBWFlZaTstIiKqJ1gIUb313HPPISYmRttpEBFRPcbG0kRERCRZLISIiIhIslgIERERkWSxECIiIiLJYiFEREREkqVRITRv3jx06dIFpqamsLa2RkBAQKlHKeTk5CAoKAiWlpZo1KgRhg0bhuTkZLWYxMRE+Pv7w9jYGNbW1pgyZQoKCgrUYvbt24dOnTpBLpejVatWCA0NLZXPihUr0KJFCxgaGsLb2xvHjx/XOBeqH1q0aIGlS5dqOw0iImpgNCqE9u/fj6CgIBw9ehQRERHIz8/HwIEDkZmZKcZMnjwZ//zzD7Zs2YL9+/fjzp07eOWVV8T1hYWF8Pf3R15eHo4cOYJ169YhNDQUM2fOFGMSEhLg7++Pfv36IS4uDpMmTcK7776LXbt2iTGbN29GSEgIZs2ahdjYWHh6esLPz0/tgZ0V5UL1x4kTJzB+/HhxXiaTISwsTHsJERFRwyA8g5SUFAGAsH//fkEQBCE1NVXQ19cXtmzZIsZcvHhRACBER0cLgiAIO3fuFHR0dASFQiHGrFq1SjAzMxNyc3MFQRCEqVOnCu3bt1c71uuvvy74+fmJ8127dhWCgoLE+cLCQsHe3l6YN29epXOpSFpamgBASEtLK7UuOztbuHDhgpCdnV2pfVH1AiBs3bq12vfLz/XZzAw7KzhN2y44TdsuFBYWaTsdIpKo8s7fT3qmNkJpaWkAgCZNmgAAYmJikJ+fD19fXzHG1dUVjo6OiI6OBgBER0fD3d0dNjY2Yoyfnx+USiXOnz8vxpTcR3FM8T7y8vIQExOjFqOjowNfX18xpjK5PCk3NxdKpVJtkoLc3Fx89NFHsLa2hqGhIXr27IkTJ04AUN2ilMlk2LFjBzw8PGBoaIhu3brh3Llz4vahoaGwsLBAWFgYWrduDUNDQ/j5+eHmzZtqx1m1ahVatmwJAwMDtG3bFr/88ou4ThAEzJ49G46OjpDL5bC3t8dHH30kri95a6xFixYAgJdffhkymUycB4C///4bnTp1gqGhIVxcXPDFF1+Uuu1KRERUrMqFUFFRESZNmoQePXqgQ4cOAACFQgEDAwNYWFioxdrY2EChUIgxJYug4vXF68qLUSqVyM7Oxr1791BYWFhmTMl9VJTLk+bNmwdzc3NxcnBwqOS7UTZBEJCVV1Drk6Dhc3SnTp2KP//8E+vWrUNsbCxatWoFPz8/PHjwQIyZMmUKFi1ahBMnTqBp06YYOnQo8vPzxfVZWVn46quvsH79ehw+fBipqal44403xPVbt27FxIkT8fHHH+PcuXN47733MGbMGERFRQEA/vzzTyxZsgTff/89rly5grCwMLi7u5eZb3GRtnbtWiQlJYnzBw8exKhRozBx4kRcuHAB33//PUJDQ/HVV19p9H4QEZF0VPkRG0FBQTh37hwOHTpUnflo1fTp0xESEiLOK5XKZyqGsvML0W7mrooDq9mFOX4wNqjcR5uZmYlVq1YhNDQUgwcPBgD8+OOPiIiIwM8//4wuXboAAGbNmoXnn38eALBu3To0b94cW7duxWuvvQYAyM/Px/Lly+Ht7S3GuLm54fjx4+jatSu++eYbjB49Gh988AEAICQkBEePHsU333yDfv36ITExEba2tvD19YW+vj4cHR3RtWvXMnNu2rQpAMDCwgK2trbi8i+++AKffvopAgMDAQAuLi6YO3cupk6dilmzZmn0HhIRkTRU6YpQcHAwtm/fjqioKDRv3lxcbmtri7y8PKSmpqrFJycniycsW1vbUj23iucrijEzM4ORkRGsrKygq6tbZkzJfVSUy5PkcjnMzMzUpobu2rVryM/PR48ePcRl+vr66Nq1Ky5evCgu8/HxEX9u0qQJ2rZtq7ZeT09PLJoA1W1ICwsLMebixYtqxwCAHj16iOuHDx+O7OxsuLi4YNy4cdi6davGt7ROnz6NOXPmoFGjRuI0btw4JCUlISsrS6N9ERGRNGh0RUgQBHz44YfYunUr9u3bB2dnZ7X1Xl5e0NfXR2RkJIYNGwYAiI+PR2Jiongi9fHxwVdffYWUlBRYW1sDACIiImBmZoZ27dqJMTt37lTbd0REhLiP4ieNR0ZGIiAgAIDqVl1kZCSCg4MrnUtNM9LXxYU5frVyrCePW984ODggPj4ee/bsQUREBD744AMsXLgQ+/fvh76+fqX2kZGRgS+++KLMnoGGhobVnTIRETUAGhVCQUFB2LhxI/7++2+YmpqKbW3Mzc1hZGQEc3NzjB07FiEhIWjSpAnMzMzw4YcfwsfHB926dQMADBw4EO3atcPbb7+NBQsWQKFQYMaMGQgKCoJcLgcAvP/++1i+fDmmTp2Kd955B3v37sXvv/+OHTt2iLmEhIQgMDAQnTt3RteuXbF06VJkZmZizJgxYk4V5VLTZDJZpW9RaUtx4+XDhw/DyckJgOo214kTJzBp0iQx7ujRo3B0dAQAPHz4EJcvX4abm5u4vqCgACdPnhRvZ8XHxyM1NVWMcXNzw+HDh8XbVgBw+PBhsfgFACMjIwwdOhRDhw5FUFAQXF1dcfbsWXTq1KlU3vr6+igsLFRb1qlTJ8THx6NVq1bP+K4QEZFkaNIdDUCZ09q1a8WY7Oxs4YMPPhAaN24sGBsbCy+//LKQlJSktp8bN24IgwcPFoyMjAQrKyvh448/FvLz89VioqKihI4dOwoGBgaCi4uL2jGKfffdd4Kjo6NgYGAgdO3aVTh69Kja+srkUh6pdJ+fOHGiYG9vL/z777/C+fPnhcDAQKFx48bCgwcPhKioKAGA0L59e2HPnj3C2bNnhRdffFFwdHQUhztYu3atoK+vL34GJ0+eFLp16yZ069ZNPMbWrVsFfX19YeXKlcLly5eFRYsWCbq6ukJUVJS4j59++kk4e/ascO3aNWHGjBmCkZGRcO/ePUEQBMHJyUlYsmSJuL/WrVsLEyZMEJKSkoQHDx4IgiAI4eHhgp6enjB79mzh3LlzwoULF4TffvtN+N///lfp96Ihfa7awO7zRFQXaNJ9/pnGEWropFIIZWdnCx9++KFgZWUlyOVyoUePHsLx48cFQRDEQuiff/4R2rdvLxadp0+fFrdfu3atYG5uLvz555+Ci4uLIJfLBV9fX+G///5TO87KlSsFFxcXQV9fX2jTpo2wfv16cd3WrVsFb29vwczMTDAxMRG6desm7NmzR1z/ZCG0bds2oVWrVoKenp7g5OQkLg8PDxe6d+8uGBkZCWZmZkLXrl2FH374QaP3oqF8rtrAQoiI6gJNCiGZIGjY11pClEolzM3NkZaWVqrhdE5ODhISEuDs7Nyg25/s27cP/fr1w8OHD0sNRVAsNDQUkyZNKtUwvT6SyudaU2b9fQ7rov8DAFz/+gXo6Mi0nBERSVF55+8n8aGrREREJFkshIiIiEiyWAhRufr27QtBEJ56WwwARo8e3SBuixERkfSwECIiIiLJYiFEREREksVCiIiIiCSLhRARERFJFgshIiIikiwWQkRERCRZLISIiIhIslgIERERkWSxECIiIiLJYiFE+OOPP+Du7g4jIyNYWlrC19cXmZmZOHHiBJ5//nlYWVnB3Nwcffr0QWxsrNq2MpkM33//PYYMGQJjY2O4ubkhOjoaV69eRd++fWFiYoLu3bvj2rVratv9/fff6NSpEwwNDeHi4oIvvvgCBQUFtfmyiYiIWAjVKEEA8jJrfxKESqeYlJSEESNG4J133sHFixexb98+vPLKKxAEAenp6QgMDMShQ4dw9OhRtG7dGi+88ALS09PV9jF37lyMGjUKcXFxcHV1xciRI/Hee+9h+vTpOHnyJARBQHBwsBh/8OBBjBo1ChMnTsSFCxfw/fffIzQ0FF999VW1vfVERESVoaftBBq0/Czga/vaP+5ndwADk0qFJiUloaCgAK+88gqcnJwAAO7u7gCA/v37q8X+8MMPsLCwwP79+zFkyBBx+ZgxY/Daa68BAKZNmwYfHx98/vnn8PPzAwBMnDgRY8aMEeO/+OILfPrppwgMDAQAuLi4YO7cuZg6dSpmzZpVxRdNRESkORZCEufp6YkBAwbA3d0dfn5+GDhwIF599VU0btwYycnJmDFjBvbt24eUlBQUFhYiKysLiYmJavvw8PAQf7axsQHwuJgqXpaTkwOlUgkzMzOcPn0ahw8fVrsCVFhYiJycHGRlZcHY2LiGXzURUd0T8nscIi4kw8XKBH8H99R2OpLBQqgm6Rurrs5o47iVpKuri4iICBw5cgS7d+/Gd999h//97384duwYJkyYgPv372PZsmVwcnKCXC6Hj48P8vLy1A+nry/+LJPJnrqsqKgIAJCRkYEvvvgCr7zySql8DA0NK/86iYgakNj/HiI9pwCnb6VpOxVJYSFUk2SySt+i0iaZTIYePXqgR48emDlzJpycnLB161YcPnwYK1euxAsvvAAAuHnzJu7du/fMx+vUqRPi4+PRqlWrZ94XEVFDkZHLDiPawEJI4o4dO4bIyEgMHDgQ1tbWOHbsGO7evQs3Nze0bt0av/zyCzp37gylUokpU6bAyMjomY85c+ZMDBkyBI6Ojnj11Veho6OD06dP49y5c/jyyy+r4VURERFVDnuNSZyZmRkOHDiAF154AW3atMGMGTOwaNEiDB48GD///DMePnyITp064e2338ZHH30Ea2vrZz6mn58ftm/fjt27d6NLly7o1q0blixZIjbWJiKSusT7WdpOQTJ4RUji3NzcEB4eXua65557DidOnFBb9uqrr6rNC0901W/RokWpZX379i21zM/PT+xVRkRE6hIfZMHRkh1HagOvCBEREdUBTU3ZWUQbWAgRERHVAc5WvAKkDSyEiIiISLJYCBEREZFksRB6Rk82Aqb6jZ8nEZG0sBCqouKRk7Oy2MWxISn+PEuOjE1ERA0Xu89Xka6uLiwsLJCSkgIAMDY2Fh8lQfWPIAjIyspCSkoKLCwsoKurq+2UiIioFrAQega2trYAIBZDVP9ZWFiInysRETV8LISegUwmg52dHaytrZGfn6/tdOgZ6evr80oQEZHEaNxG6MCBAxg6dCjs7e0hk8kQFhamtl4mk5U5LVy4UIxp0aJFqfXz589X28+ZM2fQq1cvGBoawsHBAQsWLCiVy5YtW+Dq6gpDQ0O4u7tj586dausFQcDMmTNhZ2cHIyMj+Pr64sqVK5q+5Arp6urC0NCQUz2fWAQREUmPxoVQZmYmPD09sWLFijLXJyUlqU1r1qyBTCbDsGHD1OLmzJmjFvfhhx+K65RKJQYOHAgnJyfExMRg4cKFmD17Nn744Qcx5siRIxgxYgTGjh2LU6dOISAgAAEBATh37pwYs2DBAnz77bdYvXo1jh07BhMTE/j5+SEnJ0fTl01EREQNkMa3xgYPHozBgwc/df2T7Sv+/vtv9OvXDy4uLmrLTU1Nn9oWY8OGDcjLy8OaNWtgYGCA9u3bIy4uDosXL8b48eMBAMuWLcOgQYMwZcoUAMDcuXMRERGB5cuXY/Xq1RAEAUuXLsWMGTPw0ksvAQDWr18PGxsbhIWF4Y033ih13NzcXOTm5orzSqWyEu8IERER1Vc12n0+OTkZO3bswNixY0utmz9/PiwtLfHcc89h4cKFKCgoENdFR0ejd+/eMDAwEJf5+fkhPj4eDx8+FGN8fX3V9unn54fo6GgAQEJCAhQKhVqMubk5vL29xZgnzZs3D+bm5uLk4OBQ9RdPREREdV6NFkLr1q2DqakpXnnlFbXlH330ETZt2oSoqCi89957+PrrrzF16lRxvUKhgI2Njdo2xfMKhaLcmJLrS25XVsyTpk+fjrS0NHG6efOmpi+ZiIiI6pEa7TW2Zs0avPnmmzA0VH+ibkhIiPizh4cHDAwM8N5772HevHmQy+U1mVK55HK5Vo9PREREtavGrggdPHgQ8fHxePfddyuM9fb2RkFBAW7cuAFA1c4oOTlZLaZ4vrhd0dNiSq4vuV1ZMURERCRtNVYI/fzzz/Dy8oKnp2eFsXFxcdDR0YG1tTUAwMfHBwcOHFAbmyciIgJt27ZF48aNxZjIyEi1/URERMDHxwcA4OzsDFtbW7UYpVKJY8eOiTFEREQkbRrfGsvIyMDVq1fF+YSEBMTFxaFJkyZwdHQEoCo4tmzZgkWLFpXaPjo6GseOHUO/fv1gamqK6OhoTJ48GW+99ZZY5IwcORJffPEFxo4di2nTpuHcuXNYtmwZlixZIu5n4sSJ6NOnDxYtWgR/f39s2rQJJ0+eFLvYy2QyTJo0CV9++SVat24NZ2dnfP7557C3t0dAQICmL5uIiIgaII0LoZMnT6Jfv37ifHF7n8DAQISGhgIANm3aBEEQMGLEiFLby+VybNq0CbNnz0Zubi6cnZ0xefJktXZD5ubm2L17N4KCguDl5QUrKyvMnDlT7DoPAN27d8fGjRsxY8YMfPbZZ2jdujXCwsLQoUMHMWbq1KnIzMzE+PHjkZqaip49eyI8PLxUmyUiIiKSJpkgCIK2k6irlEolzM3NkZaWBjMzM22nQ1Tnzfr7HNZF/wcAuP71C9DR4YOIiSrrgw0x2HlW1av517He6NnaSssZ1V+anL9rtPs8ERERUV3GQoiIiIgki4UQERGRlhUVCbifkaftNCSJhRAREZGW3cvMxbGEB9pOQ5JYCBEREZFksRAiIiIiyWIhRERERJLFQoiIiIgki4UQERERSRYLISKqNg+y8isOIiKqQ1gIEVG1+ef0HW2nQESkERZCRFQj9l+5q+0UiIgqxEKIiGrE9buZ2k6BiKhCLISIqNoY6j/+lcLnzhNRfcBCiIiqjaG+rrZTICLSCAshIiIikiwWQkRERCRZLISIiIhIslgIERER1TF/xt7SdgqSwUKIiIiojrl2N0PbKUgGCyEiIqI6xtrUUNspSAYLISIiIpIsFkJEREQkWSyEiIiISLJYCBEREZFksRAiIiIiyWIhRERERJLFQoiIiIgki4UQERERSRYLISIiIpIsjQuhAwcOYOjQobC3t4dMJkNYWJja+tGjR0Mmk6lNgwYNUot58OAB3nzzTZiZmcHCwgJjx45FRob6cOJnzpxBr169YGhoCAcHByxYsKBULlu2bIGrqysMDQ3h7u6OnTt3qq0XBAEzZ86EnZ0djIyM4OvriytXrmj6komIiKiB0rgQyszMhKenJ1asWPHUmEGDBiEpKUmcfvvtN7X1b775Js6fP4+IiAhs374dBw4cwPjx48X1SqUSAwcOhJOTE2JiYrBw4ULMnj0bP/zwgxhz5MgRjBgxAmPHjsWpU6cQEBCAgIAAnDt3ToxZsGABvv32W6xevRrHjh2DiYkJ/Pz8kJOTo+nLJiIiogZIT9MNBg8ejMGDB5cbI5fLYWtrW+a6ixcvIjw8HCdOnEDnzp0BAN999x1eeOEFfPPNN7C3t8eGDRuQl5eHNWvWwMDAAO3bt0dcXBwWL14sFkzLli3DoEGDMGXKFADA3LlzERERgeXLl2P16tUQBAFLly7FjBkz8NJLLwEA1q9fDxsbG4SFheGNN97Q9KUTERFRA1MjbYT27dsHa2trtG3bFhMmTMD9+/fFddHR0bCwsBCLIADw9fWFjo4Ojh07Jsb07t0bBgYGYoyfnx/i4+Px8OFDMcbX11ftuH5+foiOjgYAJCQkQKFQqMWYm5vD29tbjHlSbm4ulEql2kREREQNV7UXQoMGDcL69esRGRmJ//u//8P+/fsxePBgFBYWAgAUCgWsra3VttHT00OTJk2gUCjEGBsbG7WY4vmKYkquL7ldWTFPmjdvHszNzcXJwcFB49dPRERE9YfGt8YqUvKWk7u7Ozw8PNCyZUvs27cPAwYMqO7DVavp06cjJCREnFcqlSyGiIiIGrAa7z7v4uICKysrXL16FQBga2uLlJQUtZiCggI8ePBAbFdka2uL5ORktZji+YpiSq4vuV1ZMU+Sy+UwMzNTm4iIiKjhqvFC6NatW7h//z7s7OwAAD4+PkhNTUVMTIwYs3fvXhQVFcHb21uMOXDgAPLz88WYiIgItG3bFo0bNxZjIiMj1Y4VEREBHx8fAICzszNsbW3VYpRKJY4dOybGEBERkbRpXAhlZGQgLi4OcXFxAFSNkuPi4pCYmIiMjAxMmTIFR48exY0bNxAZGYmXXnoJrVq1gp+fHwDAzc0NgwYNwrhx43D8+HEcPnwYwcHBeOONN2Bvbw8AGDlyJAwMDDB27FicP38emzdvxrJly9RuW02cOBHh4eFYtGgRLl26hNmzZ+PkyZMIDg4GAMhkMkyaNAlffvkltm3bhrNnz2LUqFGwt7dHQEDAM75tRERE1BBo3Ebo5MmT6NevnzhfXJwEBgZi1apVOHPmDNatW4fU1FTY29tj4MCBmDt3LuRyubjNhg0bEBwcjAEDBkBHRwfDhg3Dt99+K643NzfH7t27ERQUBC8vL1hZWWHmzJlqYw11794dGzduxIwZM/DZZ5+hdevWCAsLQ4cOHcSYqVOnIjMzE+PHj0dqaip69uyJ8PBwGBoaavqyiYiIqAGSCYIgaDuJukqpVMLc3BxpaWlsL0RUCR3n7EZqluqW9swh7fBOT2ctZ0RUP6Sk56DrV4+bcvi62eCnwM7lbEHl0eT8zWeNERERkWSxECIiIiLJYiFEREREksVCiIiIiCSLhRARERFJFgshIiIikiwWQkRERCRZLISIiIhIslgIERERaVl6ToG2U5AsFkJERERa9uOB69pOQbJYCBEREWmZZSMDbacgWSyEiIiI6ggjfV1tpyA5LISIiIhIslgIERERkWSxECIiIiLJYiFEREREksVCiIiIiCSLhRARERFJFgshIiIikiwWQkRERCRZLISIiIhIslgIERERkWSxECIiIiLJYiFEREREksVCiIiIiCSLhRARERFJFgshIiIikiwWQkRERCRZLISIiIhIslgIERERkWSxECIiIqpj9lxMRooyR9tpSILGhdCBAwcwdOhQ2NvbQyaTISwsTFyXn5+PadOmwd3dHSYmJrC3t8eoUaNw584dtX20aNECMplMbZo/f75azJkzZ9CrVy8YGhrCwcEBCxYsKJXLli1b4OrqCkNDQ7i7u2Pnzp1q6wVBwMyZM2FnZwcjIyP4+vriypUrmr5kIiKiWpdfJGg7BUnQuBDKzMyEp6cnVqxYUWpdVlYWYmNj8fnnnyM2NhZ//fUX4uPj8eKLL5aKnTNnDpKSksTpww8/FNcplUoMHDgQTk5OiImJwcKFCzF79mz88MMPYsyRI0cwYsQIjB07FqdOnUJAQAACAgJw7tw5MWbBggX49ttvsXr1ahw7dgwmJibw8/NDTg6rbCIiqnv6tGmq7RQkR0/TDQYPHozBgweXuc7c3BwRERFqy5YvX46uXbsiMTERjo6O4nJTU1PY2tqWuZ8NGzYgLy8Pa9asgYGBAdq3b4+4uDgsXrwY48ePBwAsW7YMgwYNwpQpUwAAc+fORUREBJYvX47Vq1dDEAQsXboUM2bMwEsvvQQAWL9+PWxsbBAWFoY33nij1HFzc3ORm5srziuVSg3eGSIiomdja24IAz0d5BUUaTsVyajxNkJpaWmQyWSwsLBQWz5//nxYWlriueeew8KFC1FQUCCui46ORu/evWFgYCAu8/PzQ3x8PB4+fCjG+Pr6qu3Tz88P0dHRAICEhAQoFAq1GHNzc3h7e4sxT5o3bx7Mzc3FycHB4ZleOxEREdVtNVoI5eTkYNq0aRgxYgTMzMzE5R999BE2bdqEqKgovPfee/j6668xdepUcb1CoYCNjY3avornFQpFuTEl15fcrqyYJ02fPh1paWnidPPmzaq8bCIiIqonNL41Vln5+fl47bXXIAgCVq1apbYuJCRE/NnDwwMGBgZ47733MG/ePMjl8ppKqUJyuVyrxyciIqLaVSNXhIqLoP/++w8RERFqV4PK4u3tjYKCAty4cQMAYGtri+TkZLWY4vnidkVPiym5vuR2ZcUQERGRtFV7IVRcBF25cgV79uyBpaVlhdvExcVBR0cH1tbWAAAfHx8cOHAA+fn5YkxERATatm2Lxo0bizGRkZFq+4mIiICPjw8AwNnZGba2tmoxSqUSx44dE2OIiIhI2jS+NZaRkYGrV6+K8wkJCYiLi0OTJk1gZ2eHV199FbGxsdi+fTsKCwvF9jhNmjSBgYEBoqOjcezYMfTr1w+mpqaIjo7G5MmT8dZbb4lFzsiRI/HFF19g7NixmDZtGs6dO4dly5ZhyZIl4nEnTpyIPn36YNGiRfD398emTZtw8uRJsYu9TCbDpEmT8OWXX6J169ZwdnbG559/Dnt7ewQEBDzLe0ZEREQNhMaF0MmTJ9GvXz9xvri9T2BgIGbPno1t27YBADp27Ki2XVRUFPr27Qu5XI5NmzZh9uzZyM3NhbOzMyZPnqzWbsjc3By7d+9GUFAQvLy8YGVlhZkzZ4pd5wGge/fu2LhxI2bMmIHPPvsMrVu3RlhYGDp06CDGTJ06FZmZmRg/fjxSU1PRs2dPhIeHw9DQUNOXTURERA2QxoVQ3759IQhPH+2yvHUA0KlTJxw9erTC43h4eODgwYPlxgwfPhzDhw9/6nqZTIY5c+Zgzpw5FR6PiIiIpIfPGiMiIiLJYiFEREREksVCiIiIiCSLhRARERFJFgshIiIikiwWQkRERCRZLISIiIhIslgIERERkWSxECIiIiLJYiFEREREksVCiIiIiCSLhRARERFJFgshIiIikiwWQkRERCRZLISIiIhIslgIERERkWSxECIiItKyFVHXtJ2CZLEQIiIi0jK5nup0nJKeo+VMpIeFEBERkZYZ6KpOx8M7O2g5E+lhIURERFRHOFuaaDsFyWEhRERERJLFQoiIiIgki4UQERERSRYLISIiIpIsFkJEREQkWSyEiIiISLJYCBEREZFksRAiIiIiyWIhRERERJLFQoiIiIgkS+NC6MCBAxg6dCjs7e0hk8kQFhamtl4QBMycORN2dnYwMjKCr68vrly5ohbz4MEDvPnmmzAzM4OFhQXGjh2LjIwMtZgzZ86gV69eMDQ0hIODAxYsWFAqly1btsDV1RWGhoZwd3fHzp07Nc6FiIiIpEvjQigzMxOenp5YsWJFmesXLFiAb7/9FqtXr8axY8dgYmICPz8/5OQ8fqLum2++ifPnzyMiIgLbt2/HgQMHMH78eHG9UqnEwIED4eTkhJiYGCxcuBCzZ8/GDz/8IMYcOXIEI0aMwNixY3Hq1CkEBAQgICAA586d0ygXIiIikjDhGQAQtm7dKs4XFRUJtra2wsKFC8VlqampglwuF3777TdBEAThwoULAgDhxIkTYsy///4ryGQy4fbt24IgCMLKlSuFxo0bC7m5uWLMtGnThLZt24rzr732muDv76+Wj7e3t/Dee+9VOpeKpKWlCQCEtLS0SsUTSZ3nF7sEp2nbBadp24WfD17XdjpE9UaHmeGC07TtQsLdDKH1/3YKTtO2C7ceZmk7rXpLk/N3tbYRSkhIgEKhgK+vr7jM3Nwc3t7eiI6OBgBER0fDwsICnTt3FmN8fX2ho6ODY8eOiTG9e/eGgYGBGOPn54f4+Hg8fPhQjCl5nOKY4uNUJpcn5ebmQqlUqk1ERETUcFVrIaRQKAAANjY2asttbGzEdQqFAtbW1mrr9fT00KRJE7WYsvZR8hhPiym5vqJcnjRv3jyYm5uLk4ODQyVeNREREdVX7DVWwvTp05GWliZON2/e1HZKREREVIOqtRCytbUFACQnJ6stT05OFtfZ2toiJSVFbX1BQQEePHigFlPWPkoe42kxJddXlMuT5HI5zMzM1CYiIiJquKq1EHJ2doatrS0iIyPFZUqlEseOHYOPjw8AwMfHB6mpqYiJiRFj9u7di6KiInh7e4sxBw4cQH5+vhgTERGBtm3bonHjxmJMyeMUxxQfpzK5EBERkbRpXAhlZGQgLi4OcXFxAFSNkuPi4pCYmAiZTIZJkybhyy+/xLZt23D27FmMGjUK9vb2CAgIAAC4ublh0KBBGDduHI4fP47Dhw8jODgYb7zxBuzt7QEAI0eOhIGBAcaOHYvz589j8+bNWLZsGUJCQsQ8Jk6ciPDwcCxatAiXLl3C7NmzcfLkSQQHBwNApXIhIiIiadPTdIOTJ0+iX79+4nxxcRIYGIjQ0FBMnToVmZmZGD9+PFJTU9GzZ0+Eh4fD0NBQ3GbDhg0IDg7GgAEDoKOjg2HDhuHbb78V15ubm2P37t0ICgqCl5cXrKysMHPmTLWxhrp3746NGzdixowZ+Oyzz9C6dWuEhYWhQ4cOYkxlciEiIiLpkgmCIGg7ibpKqVTC3NwcaWlpbC9EVAkd5+xGapbqlvbMIe3wTk9nLWdEVD+4z9qF9NwC7PukLwYuPYC8giIc/rQ/mlkYaTu1ekmT8zd7jREREdVBNx9kaTsFSWAhREREVIcUFBYBAH4/ySFcagMLISIiojqk6FGDlaaN5NpNRCJYCBEREdUh43u7aDsFSWEhRERERJLFQoiIiIgki4UQERERSRYLISIiIpIsFkJEREQkWSyEiKhaxPz3UBxVmoiovmAhRETV4tZDjoJLRPUPCyEiIiKSLBZCREREJFkshIiIiEiyWAgRERGRZLEQIiIiIsliIURERESSxUKIiIhIi9Ky85GeW6DtNCSLhRAREZEW7bmQrO0UJI2FEBERUR2hI5NpOwXJYSFERERUB/Rp0xSOlsbaTkNyWAgRUY2Ys/2CtlMgIqoQCyEiqhGWJgbaToGIqEIshIioRjQy1NN2CkREFWIhRETVykhfV9spEBFVGgshIiIikiwWQkRERCRZLISIiIhIslgIERERkWSxECIiIiLJYiFEREREklXthVCLFi0gk8lKTUFBQQCAvn37llr3/vvvq+0jMTER/v7+MDY2hrW1NaZMmYKCAvUn8+7btw+dOnWCXC5Hq1atEBoaWiqXFStWoEWLFjA0NIS3tzeOHz9e3S+XiIiI6rFqL4ROnDiBpKQkcYqIiAAADB8+XIwZN26cWsyCBQvEdYWFhfD390deXh6OHDmCdevWITQ0FDNnzhRjEhIS4O/vj379+iEuLg6TJk3Cu+++i127dokxmzdvRkhICGbNmoXY2Fh4enrCz88PKSkp1f2SiYiIqJ6q9kKoadOmsLW1Faft27ejZcuW6NOnjxhjbGysFmNmZiau2717Ny5cuIBff/0VHTt2xODBgzF37lysWLECeXl5AIDVq1fD2dkZixYtgpubG4KDg/Hqq69iyZIl4n4WL16McePGYcyYMWjXrh1Wr14NY2NjrFmz5qm55+bmQqlUqk1ERETUcNVoG6G8vDz8+uuveOeddyCTycTlGzZsgJWVFTp06IDp06cjKytLXBcdHQ13d3fY2NiIy/z8/KBUKnH+/HkxxtfXV+1Yfn5+iI6OFo8bExOjFqOjowNfX18xpizz5s2Dubm5ODk4ODzbG0BERER1Wo0+DCgsLAypqakYPXq0uGzkyJFwcnKCvb09zpw5g2nTpiE+Ph5//fUXAEChUKgVQQDEeYVCUW6MUqlEdnY2Hj58iMLCwjJjLl269NR8p0+fjpCQEHFeqVSyGCIiImrAarQQ+vnnnzF48GDY29uLy8aPHy/+7O7uDjs7OwwYMADXrl1Dy5YtazKdCsnlcsjlcq3mQERERLWnxm6N/ffff9izZw/efffdcuO8vb0BAFevXgUA2NraIjk5WS2meN7W1rbcGDMzMxgZGcHKygq6urplxhTvg4iIiKjGCqG1a9fC2toa/v7+5cbFxcUBAOzs7AAAPj4+OHv2rFrvroiICJiZmaFdu3ZiTGRkpNp+IiIi4OPjAwAwMDCAl5eXWkxRUREiIyPFGCIiIqIaKYSKioqwdu1aBAYGQk/v8d23a9euYe7cuYiJicGNGzewbds2jBo1Cr1794aHhwcAYODAgWjXrh3efvttnD59Grt27cKMGTMQFBQk3rZ6//33cf36dUydOhWXLl3CypUr8fvvv2Py5MnisUJCQvDjjz9i3bp1uHjxIiZMmIDMzEyMGTOmJl4yERER1UM10kZoz549SExMxDvvvKO23MDAAHv27MHSpUuRmZkJBwcHDBs2DDNmzBBjdHV1sX37dkyYMAE+Pj4wMTFBYGAg5syZI8Y4Oztjx44dmDx5MpYtW4bmzZvjp59+gp+fnxjz+uuv4+7du5g5cyYUCgU6duyI8PDwUg2oiYiISLpqpBAaOHAgBEEotdzBwQH79++vcHsnJyfs3Lmz3Ji+ffvi1KlT5cYEBwcjODi4wuMRERGRNPFZY0RERCRZLISIiIjqoK2nbms7BUlgIURERFSH5OQXAgBS0nO1nIk0sBAiIiKqQyyMDQAAcj2eomsD32UiIqI65PUufLRTbWIhRERERJLFQoiIiIgki4UQERGRFn285bS2U5A0FkJERERa1N7eDABw5laqdhORKBZCREREWqSrIwMAfDSgtZYzkSYWQkRERHVAC0sTbacgSSyEiIiISLJYCBEREZFksRAiIiIiyWIhRERERJLFQoiIiIgki4UQERERSRYLISIiIpIsFkJEREQkWSyEiIiISLJYCBEREZFksRAiIiIiyWIhRERERJLFQoiIiIgki4UQERERSRYLISIiIpIsFkJEREQkWSyEiIiISLJYCBEREZFksRAiIiIiyar2Qmj27NmQyWRqk6urq7g+JycHQUFBsLS0RKNGjTBs2DAkJyer7SMxMRH+/v4wNjaGtbU1pkyZgoKCArWYffv2oVOnTpDL5WjVqhVCQ0NL5bJixQq0aNEChoaG8Pb2xvHjx6v75RIREVXZhTtKnLmVpu00JK1Grgi1b98eSUlJ4nTo0CFx3eTJk/HPP/9gy5Yt2L9/P+7cuYNXXnlFXF9YWAh/f3/k5eXhyJEjWLduHUJDQzFz5kwxJiEhAf7+/ujXrx/i4uIwadIkvPvuu9i1a5cYs3nzZoSEhGDWrFmIjY2Fp6cn/Pz8kJKSUhMvmYiISGM5BYVPXZdbUIRkZU4tZiNNNVII6enpwdbWVpysrKwAAGlpafj555+xePFi9O/fH15eXli7di2OHDmCo0ePAgB2796NCxcu4Ndff0XHjh0xePBgzJ07FytWrEBeXh4AYPXq1XB2dsaiRYvg5uaG4OBgvPrqq1iyZImYw+LFizFu3DiMGTMG7dq1w+rVq2FsbIw1a9bUxEsmIiJ6Jp4OFqWWRV3iH+81rUYKoStXrsDe3h4uLi548803kZiYCACIiYlBfn4+fH19xVhXV1c4OjoiOjoaABAdHQ13d3fY2NiIMX5+flAqlTh//rwYU3IfxTHF+8jLy0NMTIxajI6ODnx9fcWYsuTm5kKpVKpNRERENc2hiRGamBgAAPR1ZFrORlqqvRDy9vZGaGgowsPDsWrVKiQkJKBXr15IT0+HQqGAgYEBLCws1LaxsbGBQqEAACgUCrUiqHh98bryYpRKJbKzs3Hv3j0UFhaWGVO8j7LMmzcP5ubm4uTg4FCl94CIiKiqrM0M4etmU3EgVQu96t7h4MGDxZ89PDzg7e0NJycn/P777zAyMqruw1Wr6dOnIyQkRJxXKpUshoiIiBqwGu8+b2FhgTZt2uDq1auwtbVFXl4eUlNT1WKSk5Nha2sLALC1tS3Vi6x4vqIYMzMzGBkZwcrKCrq6umXGFO+jLHK5HGZmZmoTERERNVw1XghlZGTg2rVrsLOzg5eXF/T19REZGSmuj4+PR2JiInx8fAAAPj4+OHv2rFrvroiICJiZmaFdu3ZiTMl9FMcU78PAwABeXl5qMUVFRYiMjBRjiKh63U3P1XYKREQaq/ZC6JNPPsH+/ftx48YNHDlyBC+//DJ0dXUxYsQImJubY+zYsQgJCUFUVBRiYmIwZswY+Pj4oFu3bgCAgQMHol27dnj77bdx+vRp7Nq1CzNmzEBQUBDkcjkA4P3338f169cxdepUXLp0CStXrsTvv/+OyZMni3mEhITgxx9/xLp163Dx4kVMmDABmZmZGDNmTHW/ZCIC8OWOiwAAAYKWMyEiqrxqbyN069YtjBgxAvfv30fTpk3Rs2dPHD16FE2bNgUALFmyBDo6Ohg2bBhyc3Ph5+eHlStXitvr6upi+/btmDBhAnx8fGBiYoLAwEDMmTNHjHF2dsaOHTswefJkLFu2DM2bN8dPP/0EPz8/Meb111/H3bt3MXPmTCgUCnTs2BHh4eGlGlATUfXo5GiB2MRU5OQXaTsVIqJKq/ZCaNOmTeWuNzQ0xIoVK7BixYqnxjg5OWHnzp3l7qdv3744depUuTHBwcEIDg4uN4aIqtf7fVpi9f5r2k6DiKhS+KwxIiIikiwWQkRERCRZLISIiIhIslgIERERkWSxECIiIiLJYiFERESkJZeS0rWdguSxECIiItKSzScSAQC5HH9La1gIERERaUkLKxMAQAofUaM1LISIiIi0bIa/m7ZTkCwWQkRERCRZLISIqEbkFRShqIgPYCWiuo2FEBHViKS0HOy/clfbaRARlYuFEBERUR2VV8jeZDWNhRARVSvP5uZoYWms7TSIGoSZf5/XdgoNHgshIqpWujoyNDLU03YaRPVazH8PAACutqZazqThYyFERERUxyx81VPbKUgGCyEiIqI6xlBfV9spSAYLISIiIi0QBAEFhRxiQttYCBEREWmBMrsAO84maTsNyWMhREREpGWFHHxUa1gIERERadlb3Zy0nYJksRAiIiLSMrkeT8fawneeiIiIJIuFEBEREUkWCyEiIiKSLBZCREREJFkshIiIiEiyWAgRERFpwZaYm9pOgcBCiIiISCvSsvMrjLmkSEfczdSaT0bC9LSdABHVf4q0HMQmpmo7jTppzaEEnPzvAZo2kuOLlzpoOx2qQ/R0VNciLE0MoCOTPTUuN7+wtlKSJBZCRPTM7qbnajuFOmvn2SSc/O8hAEi2EDp6/T4S7mXC2EAX/VytkZ1XCLmeDiyMDbSdWp0wqIMtdHTUCyH35uZaykZ6qv3W2Lx589ClSxeYmprC2toaAQEBiI+PV4vp27cvZDKZ2vT++++rxSQmJsLf3x/GxsawtrbGlClTUFBQoBazb98+dOrUCXK5HK1atUJoaGipfFasWIEWLVrA0NAQ3t7eOH78eHW/ZCIqwdHSWNsp1CkKZY62U9AKQRBw+Oo9tPh0B9744Sim/3UWEzfFwWP2bnh/HYmOcyLw8srDWBF1FTcfZGk73TrH3EgfLk1NtJ2GJFR7IbR//34EBQXh6NGjiIiIQH5+PgYOHIjMzEy1uHHjxiEpKUmcFixYIK4rLCyEv78/8vLycOTIEaxbtw6hoaGYOXOmGJOQkAB/f3/069cPcXFxmDRpEt59913s2rVLjNm8eTNCQkIwa9YsxMbGwtPTE35+fkhJSanul01EAOzNDeFqa6btNOqMzNwC3HqYre00al1RkYANxxLx5k/Hyo07lZiKhbvi0WtBFN5ddwKXFMpaypDosWq/NRYeHq42HxoaCmtra8TExKB3797icmNjY9ja2pa5j927d+PChQvYs2cPbGxs0LFjR8ydOxfTpk3D7NmzYWBggNWrV8PZ2RmLFi0CALi5ueHQoUNYsmQJ/Pz8AACLFy/GuHHjMGbMGADA6tWrsWPHDqxZswaffvppqePm5uYiN/fxJX6lkv8piajq8guLtJ1CrcvJL8QrK4/gQlLp35+trRvBzc4M207fKbVuz8UU7LmYgt2Te8OhsTGMDHRrI12t2hvPP8rrghrvNZaWlgYAaNKkidryDRs2wMrKCh06dMD06dORlfX40mh0dDTc3d1hY2MjLvPz84NSqcT58+fFGF9fX7V9+vn5ITo6GgCQl5eHmJgYtRgdHR34+vqKMU+aN28ezM3NxcnBweEZXjkRkbSkZedj/C8xpYqgFSM74ezsgfh3Yi98O+I53Jjvj6hP+uKDvi1L7WPgkgMIWHG4tlLWqtOPeoPl5EuvYK5LarQQKioqwqRJk9CjRw906PC4keDIkSPx66+/IioqCtOnT8cvv/yCt956S1yvUCjUiiAA4rxCoSg3RqlUIjs7G/fu3UNhYWGZMcX7eNL06dORlpYmTjdvcowHIqoezRsbaTuFGnUvIxdj1h7Hgct31ZbHfzkI/h52MDXUh57u41OOs5UJpg5yxaW5g/DRgNbq2ySno8WnO7D7fNm/qxuKJiaqxuI6T+8wRrWgRnuNBQUF4dy5czh06JDa8vHjx4s/u7u7w87ODgMGDMC1a9fQsmXpvxBqi1wuh1wu19rxiYjqqx1nktSGUPj4+Tb48IkCpyyG+rqYOKA1vJ2bYOofZ3A79XGbqvG/xGBEV0dM6NOyQTfCH9/bRdspSFqNXREKDg7G9u3bERUVhebNm5cb6+3tDQC4evUqAMDW1hbJyclqMcXzxe2KnhZjZmYGIyMjWFlZQVdXt8yYp7VNIiKiqtl+5nG7n7Y2ppUqgorp6sjQo5UVtn/YE+/1US8KfjueiN4Lo6otT6InVXshJAgCgoODsXXrVuzduxfOzs4VbhMXFwcAsLOzAwD4+Pjg7Nmzar27IiIiYGZmhnbt2okxkZGRavuJiIiAj48PAMDAwABeXl5qMUVFRYiMjBRjiIjo2W06nogTN1RjJbW2boQtE6r2O7axiQGmD3bD6rc6leo67jF7V4PqZp9bUIjUrLxKxf56LLGGs5G2ai+EgoKC8Ouvv2Ljxo0wNTWFQqGAQqFAdrbqcue1a9cwd+5cxMTE4MaNG9i2bRtGjRqF3r17w8PDAwAwcOBAtGvXDm+//TZOnz6NXbt2YcaMGQgKChJvXb3//vu4fv06pk6dikuXLmHlypX4/fffMXnyZDGXkJAQ/Pjjj1i3bh0uXryICRMmIDMzU+xFRkREz+6Hg9fFn50sjWFmqP9M+xvUwQ57P+6LuQGP25YqcwrQa0EUwk7dfqZ91xW7ziejSCg/5vpd1bAz9zM4YGlNqvY2QqtWrQKgGjSxpLVr12L06NEwMDDAnj17sHTpUmRmZsLBwQHDhg3DjBkzxFhdXV1s374dEyZMgI+PD0xMTBAYGIg5c+aIMc7OztixYwcmT56MZcuWoXnz5vjpp5/ErvMA8Prrr+Pu3buYOXMmFAoFOnbsiPDw8FINqImIqGp2nEkST9gAMMO/XbXt+/XODoj97yG2lih+Jm2Og66ODAPb20Cu17C72LvamuKSIh2NOQJ3jar2QkgQyi9xHRwcsH///gr34+TkhJ07d5Yb07dvX5w6darcmODgYAQHB1d4PCKqfjfuZQJttZ0F1aSgjbHiz/83zB0trKpvNGQDPR0seb0jOjQzx9ztF8TlH/52CuN7u+DTQa6lHk1R33R1boJW1o3KXDfS2xEz/z5fyxlJD58+T0TVrqBQ9QfRiqirWs6EatK+JwYEHOxuVyPHGdvTGZvHd1Nb9sOB63D5bCd2nk2qkWPWFt1Hj5ki7WEhRETV7pIiHQDg3owPjix262F2pRvH1hfvhJ4Qf/76ZfdnbhtUHm8XS6x7p2up5R9siEVuQf17OvtHv5V/N4NqDwshInpm4efV/ypf+KqHljKp2049Gkm4IbiSnK7W2PeljvY1fsw+bZoi/stB6NBM/Xl2bWeE4+SNBzV+/Or0nKMFACDmv4faTYRYCBHRszt/R/VIhTtp0nzSutQIgoDQIzfE+Y/6t4KJvEbH5xXJ9XSx/cNe+G7Ec2rLX10djX/r0W0ynUe3w6YNdq0w9kFmHooq6mJGVcZCiIiemaWJalgLQ33+SpGCuxm52FBibJs3ujrWeg5DPe3xvxfc1JZN2BBbL9oMXU3JEK8ENbOo+NEr0dfv435mw7qtWpfwtxYRVZvJvm20nUKd8tPBBLX52w+z8W3kFXwbeaVeDw64/fTjYqOxsT7sK3EyrwnjertgT0hvtWUfbIhF8MZYpKTX3auTOfn1r01TQ8ZCiIiohjzZs/vWw2wsjriMxRGXkVhPC6F4RTrmlOjKHj19gBazAVpZmyJu5vNqy7afSYLPvL3IyC3QUlblU5S4hdzJyeKpcW93c6qFbIiFEBFRDanvY9yU5fv919TmDfW1P6ihhbEBzn3hB6tGjx+aXVgkoMOsuvlYjtWP3sOmpnJYmxo+NU4mk4E962seCyEi0orpf53B+PUnseZQQsXBVCfcy8jFXyVGed7+YU8tZqOukVwPG971hlxP/bTWa0EU4h8N51BXOD8adPJueuUfnXEluW69hoaEhRARPZOM3AL8GXtL4+1+O34Tuy8kY9d5RQ1kVfdtrWfPzCooLMLnYefE+TY2jdChjo0T1dbWFPFfDsZv49QHX/RbegBz/rlQJ8YbyskvxJYY1f+XaYMq7jFW/LCGcIn+P6kNLISIqNrk5BdpvM1dCT1QcnWJ20p/xNzC/st3kZSWrcWMKi8jtwD/nnt8Mv5muKcWsymfT8vSgy+uOZyAtjPCcULL4w3dK/F9zy+s/P+XmhysUupYCBFRtXnbR71x5+3U7Ap/2V+/m4nMOtqotboZPHHbJnDNcRy4fFdL2WhmffR/4s86MsCjuYX2kqmEPm2a4vrXL6CNjfpzvIavjsaRq/e0lBXw+4mb4s/ezk0qjB/dvUUNZkMACyEiekYHS5zIjQ3UG85eTs5AUmrF3ZgLK3hYc0OhW09bvq6IuorFEZfF+StfvVD5jdMVwN144MZhYMfHwJIOwGxz4MBCYO+XQI6yBjJW0dGRYffkPqV6X4386Rhe+z5aK93Yv937+Pl7mhSTV1LYRqim1M5QoEQN1JfbLyArvxDezk3wUsdm2k5HK+LLaMSp2wB7S0lVXkERFu6KF+ddbU1LDQtQiiAAt04APz//9Ji9X6r+PbDw8TITa6DTKKB7MKBvAugZVD3xEuYGdEDAc80wbNURcdnxhAdw/Twcv4ztil6tm1bLcSpS8nEafdo0hZFBxT3uih79kbDrfHKN5SV1LISInsFPj3o8bTyWiKEe9vWiu/TDzDxk5xfi50MJEATg12P/QV9Hhsy8x38dW5vK4d7MHH1drdHauhG6uViWua/8wiIs3XNFnC8ugF7p1Byfh51T22dJUZdSylze0GQ/ccXhyfm6ThAETPvzjNqyfyf2evrT0jPvAat7Ael3qnbAzBTg4DeqCQBa9gc6vgm4DQX05OVvWwEvp8Y4OcMXnb/co7b87Z+PAwBOzxoIc6OabYdTso1Y10rcFgMgjihtWkuPMJEivrNEVVQfHpaYk1+Iz/46q9bluSxPDt6fkp6LyEspiHxKwfKCuy3a2JiqFUFdWzSBvm7l7rYXSuS5Sd/vv67tFJ7J6Vtpar3bfhzVuewiKDsV2PCq6irQ0/T6GLDrCLQaAOjoAYnRQMIB4N5l4OI/ZW9zba9qAgCbDkDfT4FWvoB+1Uaytmokx435/li8O17tFhUAeH6xG/1drbHsjY4wrYGGyQ8y8xBx4fFVnZGVfCzJlIFtseNMEtJzC6BIy4Gt+dPHHaKqYSFEVEW3Hta9gdryCorwMCsP288kYW6J0X/LY2ygi6ynXLl5mp1nFdh5Vr077wf9Wmq0DylobKyPh1n55cZM+/MsXu9S+8/qqsjawwn44p/H3yFnKxM8386mdGDsL8C24NLLX10LtOgJGFsBOmUUyC59VdOTslOBRa5AwRO96ZLPAZvfUv3cZjDwwkLAvDmqMuJgyMC2GN3DGSN/PIpLJcYY2nspBe6zd6NLi8b4Zax3tQ0WKQiC2jARns3N0dhE89t+h6/ewzCv5tWSEz3GQoiomtxOzYZDE+NaPWZuQSGiLqVgzeEbOJ5Q+W7BgT5O+MzfDXK9p/+iT8vKx4kbDxCb+BBJaTnljnsz7xV39H5KO4u/Tt3CJIk/g2xMjxZYe/iGON/NpQmOXld9Xq62plrKqmwnbjzA8NXRpZaHBfVQX5CRAnzfp/RtMBt3wP8bwFF9LJ9KM7IAZiiAwgLgagSw63/AA/XRrHH5X9UEAK/8CLgP17ggamJigPBJvXHudhqGfHdIbd2JGw/h+nk4JvRtiUm+rcv9f1IZ6bkFmP7XWXF+1ovtK72tvh77NNU0FkIkWTn5hfj3nOrhke7NLNDKulEFW5Rv94VkjO3pXB2plSm3oBBXUzKw63wylNn52Hg8EXkFFY9DMmtoO4zpoXle5sb68G1nA99HVwEWvOohdoW/l56HQkGAiVwXVibyMttGFbcPKvlcpaeJvnYffu1tNc6xvnjyRDqsU3O80cURkzbHPb29TS1KSc9B168in7r+17He6u1n7l0BlncuHTh+H2D/XPUkpasHtB2smvKygBM/ARGfl477a5xqsmoDjNoGNLIp+wrUU3RoZo4b8/0x/a8z+O34TbV1q/Zdw6p917B85HPo2qIJrM00vy2VkVsAj9m71ZZ1cmxc6e2bWRihd5umOHD5Lj7ecppXhGoACyGSrEW74/FjiaeD35jvr9H2EzfFqc1XVzvp1Kw83E3PxY37WXj/15gqtaf5qH8r9GhlBe+nNHKuCn1dHbENkKNlxb86TA31kJ5TgLTs0reGnry6dPZWWoMuhJ40vLODVsYPyi0oRIoyFyv3XS110i/LEA87fDPcU/0WUex6YNuH6oHGlsDrG6qvCHqSgTHQ4yPVlJ+t6nEWvVw95t5lYPGjkZpf/h7wfEOjQ8x7xQPzXvHA/st3EbjmuNq64I2nVGno6WD7hz3hYmUCvUq0h0vLyofnHPUi6NTn5fSke4qYR4NAtrJuhMIigb0yqxkLIZKskkVQMwvNG196NDfHmVtp4vy/5xQaX3lJuJeJO6nZCD+nwP7Ld6v0RPKhnvbo2coSvm42sGz0bD1rqtNb3Zywat81/HtOgYeZeWptIi4q1MeOefL5UA1B5MXkCtsHAcDFJCVu3MtEi0fPn6oO2XmFuJKSjoW74nHwiuaDB/4c2BkD3J5oD5SfA8x3BAqfGAl8eCjQ/uWqJ6spfSPA7ytgwCzgv8PALwGlY7a+p5oaOwNvbABsKn8rqk+bprgx3x9bT93C5M2n1dblFRRh4JIDAIAOzczwzXBP6OnowNxIH2ZGeuKVv+y8QizdcxnfH1BvLD+hb8sqtQ2aNbQ9pv55BldTMnDmViqe0+CKElWMhVAddPPmTWzfvh3jxo2Dnl7lP6KqbidVhvo64iMhbqdm48yt1EoPcKZIy1ErggBUqo3OvvgU/Hr0P+y5WLXu4yYGuvjM3w1921pXqXirTQ8yHvdF+/HgdUwt8VylZhZGuH43Uxtp1ZqMEqNl925jpdZ1+kkp6bkaFUJFRQLuZuQi4V4mEh9k4fbDbCyLVPXgMzPUgzKn8iN125sbYmB7W3zQtyUaGerB2KCM3x0PEoBvO5ZePukcYOFQ6WNVKz0DoGU/YHYacCtGNR5RcbuhYg8TgFXdVT+/9Rdg5wmYWFVq9y8/1xx+7W0Rfe0+xq0/iScvzJ67rcSgpQcrne7EAa0x+fmqtZWzMn1cPK2IuoqfArtUaT/apuk5qrbOaTxb1kEzZsxAeHg43nzzTZiZmdX4dlJ07nZaqediPch8shP506WkP273IpM9fjDiL9E38LZPCxQWCYj57yH+jruNDccSNcqtk6MF7C2M0Ku1FbydLav1SkFt+sSvLTafVN1+WbnvGpwsjfF6F0coc/LFqxRG+rr1bmydyvpyx0UAqqtdzzk0RtcWTXD1bob4PXOyfNyw/k7q0583dvNBFlKz8nEhKQ0ymQzfRl7BrYdPjy+vCGphaYympnKM7ekMV1uzir9bRYXAD30BhfpYQhj4JdDl3Sp3Y692zb2AkZuAoiJVF/41A0vH/PqK6l+z5kDPSaoG1kYW5e7W2EAPA9xscH2eP4qKBCyKiMeKqKcXtGXp1doK//N3g6tt1X8n92ljLf587rYSBYVFlbo1V9doeo6qrXOaTBAkMrZ9FSiVSpibmyMtLa3WCovY2Fh4eXlh1apVeP/992t8O6kKXHMc+59oo2Gkr4uLcwdVuG1uQSHazggX5796uQP+t/VcOVuUz6GJEea+1AHdXCyrrbtuue5fA5R3gPBPVV2Sn8bcAUh71I6krT9gaAb0ngKYNFX9XAnd50XiTonG0u3tzTDU0x7z/70EQL0Q0rSNVl1280EWei2IAqAanPL4/3zLjOuzMAr/3VfdDp3/ijvyC4vwR+xtXLyjRJ4GD+QsqatzE7SxUQ2C6d7MHPYWRpUe3wmF+cDDG6pbTv9MLDtmwCyg5+QqdVuvVRl3gZM/A/vmPT3G3BFw7gV4vwfYelT6NeUWFOL3Ezfx16nbOJWYWmr91y+7I+7mQ3zi1xbWptUz7s/IH4/iyLX7AIBN47s9dZDTukrTc9SzntM0OX+zECpHbRdCgiCgf//+SE5OxpkzZyp9KbCq20nVvYzcUqPLFtv4rje6typ96bywSMC207dLtRkAgHNf+KHDrF2VOvbYns54t5czLIwMoK8rq/m/6rJTgQthwN6vVKP2Vjc9Q2DkZsC5j+rqga76d+9+Ri68nvJeA4CejgwFRQLMjfRxelYZf8XXMzn5hYj57yHe/OmYuOytbo74MsC9zPgWn+54puO5WJlg8vNt4OXUGHaPBtqrsBdaXiZw8ziQlwGc+1P1LLDE0t3lS2niAgSfBHRqoVivbimXgJXeFcf1nwF0C1I1zq5jfj36H2aEqf5w8Whujm3BPbWcUeVpeo6qjnOaJudvnjHrkB07dmDfvn3Yvn175T74+9eAO6ewY3+MZttJWMm/1AGgS4vG8HWzwbxHVyhGPjqB+bhYIvr6/Qr3N3toOzSS6+HYZwMwfHU0CgqLcCctB33bNsWg9rawNTeEl1NjGBvo1V5Pj+xUIH4nEDah5o9VkAOsf+nxfPMuwKD5QHNV12rLRnIc+bQ/3v81plSbKgBYPvI5vP9rLNKy87H3UjL6u5YxYN8zysorwI17WThzKxV303OR+CAL5+8ocSFJCX8PO+QXFGH3hWR0dmqMkyVGC+/s1BgymWpMmWLuzcxx9naaWMCZGOiKwwQ0szDC7TJucb1TTgP6zeO74fUfjpabv5G+Lt7t5YzBHexQJAjo0My8jBf5AEi+CsSHq4qarHtAywHAocWq9ab2VX/sRYdhgOcI1YjOdf0q0NNYu6raEgGqq6E/9lc9DqToicbse798/Ay0N/8EHLpW+upnTRvR1VEshM7cSsNfsbfwSqf60ZVe03ObxufCZ8QrQuWozStCBQUFcHd3h729Pfbs2VO5sUVO/IyCfybDfVUm7Ft2wJ7oujEmSV2RkVuAe+m5+DP2Fi4mpWPPxdIPLfw7qAesTOXoMX+vxvv/aVRn9He11v7zxfKygDungL1zK/eXvXMfoNsHQLNOQCPriuMBoCAXyLwL3L8KHFwMJOyv3HbdgoCW/ZFn7YFT93WxPOrqo4d2ytC5RRM4NDFSa3A696X26NPGGo0M9dDkKb1r7mfk4sb9TFxNycDl5Azo6shwMUlZpd5RNe2rlzvgTW+nCuMS7mUi5r+H0NORwdPBAtamcujr6sBAT0fV7iXzLpAUBxQVAJd3qR5Jkf1A9VlW9rOoDOt2QO9PALm5qpitoA1NvffgOhATChxeVn6crYdqlGyvMUBT7Q0O+tFvp7Dt9OOCtj7cItP03Falc2EZeGusmtRmIbRq1SoEBQUhJiYGzz1XybE4TvyMVbODEbQzBzEft8Jzn0ephpxvYFKz8nAvIxcZuYXQ05GJfxHnFxYht6AIifezcO1uBr4/cA3nbqu6Zfd3tcbeCh7sOaZHC8waqupWe/1uBkb8eBTJylz0bGWFnPxCtasDZoZ6+HSwG3q1toK5sT7MauBZRBopLFCdFK/tBTaNKD+27QvAoHlA4xbVn8f9a8CJn4GjKyoXP/AroPVAQG4KNLJGdgHgNjP8qeElr7K42ZnhYpLyqbFVNW2QKxrJdRF65AZaWTfCrvPJ6O9qDccmxvB2boKfDyWofRfe9HZEWnY+LtxRQldHhmFezWHVSI7rdzOgI5NBT1cG92bmpbufP03GXeDMZsDMHvh3KtDaD4j7tXpenIUTkPof0OFVICdN9UgLq9aqK3eGFhoNPNigFRYAdy+pCqKzv1cc/9zbqqtj3u9r1DX/WT3IzEOnuRFqy75/26tOj8Gl6bmtSufCMrAQqia1VQgplUq0atUKgwcPxrp16yq/XdRytBryEQa31sO6gEe9Nz6MxZUCayhzCrD7vALbzySVebm+shrJ9cRuwFaN5LiX8XgMkeLbBF1bNMFFhRLpj3qr9G3bFO/0cMbDrDws3XMFd9Nz0byxEQZ3sINDEyMUFgm49TAbuQVFWL3/Gvzd7WBhrA9bM0PsPKeAUxNjhJd4Lk9Z7M0N1RrhaurXsd7o2bpy3WjrhII81WMG7l0Bfn+74vghS1UDytVmr56iIiAtETi6Gji2qnLbuA9HWuJZrLnXHoeKOiBGaFtt6XR2aox+rtbo7NQY1maGcNa0911Roao9TFGR6qT3tL9M83OAnFQgI1n1MNG8LNV85l0g+Tzg6AOc2aS6ffXf4Wd9WarG6pklGvoPXggU5gEpF4F2L6qu6mirS3tDIQhAxEzVoI1CJRqtt+yv+qPklZ9Ut+Fsy24TVh2upmTAd7H6VcCeraww+8X2zzw6fnXT9NxW1XPh0/bFQqga1FYh9L///Q+LFy/GlStX0Lx55a/o/G+MPxb/uhNXPmyE5mbqf9nFFzXH9sJu2FTYD/dgDgHS+8vvvd4uWHv4Br4d8Rx6tLKskSdK14jM+8Clf4CrkcDFbZXfzms00PczwLT629lUSUGu6orRxtce9z7TUIz1q/BK+QMXdNvCyM4NzrfCcEzuAzOH9rDBAxg7eMCwqQsg01FN0SuBvHQg6TTg8+hBoMaWgFkz1c/HfwDa+KlOdEIRcORbIP+JQSwb2QIZ5RTiTVxUt1Rqkp6h6pER+kaAx+tA9kPVFb32L9fPxsr1mSCoPu9/JqoK3If/AbmVuDKpo69qg+T+muo71nGk6mqf7rO3eSmrGAJUtfqi4Z51pu2Qpue2qp4Ly8JC6AkrVqzAwoULoVAo4Onpie+++w5du3atcLvaKIRu3ryJNm3a4OOPP8aXX36p2XatW+LjrjJ82V/z7pnHilxxrcgeR4ra44Zgg/uCOTJghGwYoKCOtaG3MNZHZ6fGyMwtRBubRtDT1YGTpTE8mlsgv7AIGTkFaGFlAiN9XdiaV/BeCILql5KekeqXlFD0aBAgQf3f1P9UXYl1dB/FFD0+eRZP9y6rBpqzdVddDUi5CFg4qq7atH4euL5P1a4g/FOg63tAwgHgXrzqNoVQpGpvk7Bf9ddkYT5wo/KDswFQtQ/pOQlo6gaY2VXtza0tRUWqW3n34oHw6Zq/1obG1E5V3Lj0Vd26NG8GOPetlpMk1YLURCBmnaqzQLoCOPeH5vswtlL9v3V7UVXBtOgNNHEG5GaAfsW/08t6fMeTurk0ga+bDXq3aQp7CyMY6+vWWptGTc9tVT0XPg0LoRI2b96MUaNGYfXq1fD29sbSpUuxZcsWxMfHw9q6/IaitVEIBQYGIjw8HFevXoWpaeWfQh0YGIjw7VtxdTxwSs8DPxW+gPUG/1ft+T2064U0s7ZoEf+TuCzTrhsMk2NwR94SeZZuaCzLRIZZSzieX4V48x5wsrGEbuoNPLDuBptzPwAA7jYbgKxmPWBvaQ69W8dQdOMwrjoOR9vzS5HeZzZM9fGo3Us+hCPfQdDRg06uEnnth8Pgyr+qrr7F7DsBd2JVPVkK81RdgC1bq4oQ4FHX4PTH8U1dVff/6zMLR9VVgi7jVE/1tvPQdkbVozBf1YunuCG2roGqIfC9K0DLvsCR7wCjJqqGwQaN1L8HxRy7qwrLm0/pfaUrVz0WwqWf6oRzba/q5GPSFLgdo2qEXMzAVFWMFF9BSj4HuA4B0pNUD/Ns/7LqytPNY6rxdtoMUhW9KZdUIx3r6KnylekABiaAqa1qGTsxNHz5OcCl7aqrePvmVf7KUVksWwHpyeq/xwxMVd81j9cAXX2gIBd5RTLcN2mJpXtvYGt8NvKgB6Di79rgDrZobd0Ip26momcrKzQ2MUBzCyPI9XXg2MQE+royGOrrPtO4Zpqe26p6LnwaFkIleHt7o0uXLli+XPWAvqKiIjg4OODDDz/Ep59+Wu62NV0IVXXAqG2bQ/HSG2Owyt8Q73c2QHhhF7yfPxkA4GV8Fy+1BLwNbqBt2mHg1vEK9kYVMmv+6NYLHt+CKZ5ylKrbKKZ2qnnlo4eJNuusOgHePKoq0u5fUTUSNrEGzv8FdB0H6JsAEIDr+4EuY1W/3IQiVVsSWw/A2k11MgV4IiWqj4oKVcWQIKiuHN0+CdyOVV1NTrmguiooNwdySw8t8SxSBRPkQxdNZUqkCBa4LVghH7ooEHTRXfcCzhc54bLQHAWCLgqgC7ksH346J7CxcACKIIMAnUf/Ar46sThm2BMZOqYQZDpIUubB1c4cOjo6kOnoQEemg5OJqfB2aQpdXV1ApoNrN25hyuzFtTZ4YllYCD2Sl5cHY2Nj/PHHHwgICBCXBwYGIjU1FX///bdafG5uLnJzHzcGTktLg6OjI27evFnthZAgCBgyZAhSUlIQHR2t0eCJAzybIz09E9HvmkBPR4b4oub4znkFlo/0qnwC6cnAf0dUT5JOv6P6z3j3AmDXEXD1V3WR1pMDniOB0xsBI0vgYYmh5dsMfvxcnw6vql8abvm86pbSlSd6A7m9qGrz0ryrqs1IehLQopfqNklLX1VXbl09VQFxco2qaDC0AO5ffrwPK1fg3iWglR/g0FlVPOjoq8YEyUlVFRAQgLiNQG4G0GqA6vZDUaHq9eVmqIoUxWnVsXMzVFeM9A0fFRuyR0XOo5919NizhohqVlGh6jZb8kXV75vbJ1VXSy9sA1LOP45r1kV1FVxRemDXuuJukSne2JSKe2iMmFOVGzyxKufCiiiVSjg4OCA1NRXm5mWMvfVEEg3W7du3BQDCkSNH1JZPmTJF6Nq1a6n4WbNmPWokwokTJ06cOHGq79PNmzcrrBXYMq+E6dOnIyQkRJwvKirCgwcPYGlpWa0DFRYUFKBbt26ws7PDtm3bKr3v4u1u3bqFpKSkGh08sUuXLjhx4oTW9qPJdpWJfdaYstYV/8VRE1cMa0J1faa1cYyq7EfTbarje6Ppdwbg96amjlFXftdUJq6hfm80PUdV9VwIVPweC4KA9PR02NvbV7ivBl0IWVlZQVdXF8nJ6iMKJycnw9a29ABUcrkccrlcbZmFhUW157Vq1SpcvXoVmzdvrviSXRnbtWjRQqPtqkJXV7da/rNVdT+abFeZ2GeNKW+dmZlZnf3FVFJ1faa1cYyq7EfTbarje1PV7wzA7011H6Ou/K6pTFxD/d5oeo6q6rkQqNxnUdl9NujGDwYGBvDy8kJkZKS4rKioCJGRkfDx8dFKTkqlErNmzcKoUaM0GjWz5HYff/xxDWaoEhQUpNX9aLJdZWKfNaa63g9tqo3XoM3vjabbVMf3pqF/Z4D6872pK79rKhPXEL83mp6jqnouLFat71N1tcepqzZt2iTI5XIhNDRUuHDhgjB+/HjBwsJCUCgUWsnns88+EwwNDSt137I6tqOak5aWJgAQ0tLStJ0K1SP83lBV1PXvjabnqLp0TmvQt8YA4PXXX8fdu3cxc+ZMKBQKdOzYEeHh4bCxqf3Rd2/evInFixfj448/1mjUzKpuRzVLLpdj1qxZpW6nEpWH3xuqirr8vdH0HFXXzmkNuvt8XTNq1Cjs2rVL4wGjqrodERFRTdP0HFXXzmkN/opQXREbG4tffvkFq1at0uiDr+p2RERENU3Tc1RdPKfxilAtEAQB/fv3R3JyMs6cqXiAqWfdjoiIqKZpeo6qq+e0upFFA7djxw7s27cP27dv1+iDr+p2RERENU3Tc1RdPafxilANy8/Ph4eHB+zt7bFnz55KDxhV1e2IiIhqmqbnqLp8Tqs7JVkD9dNPPyE+Ph4bN27U6IOv6nZEREQ1TdNzVF0+pzXoARW1rToGT6zKQFNUN2zfvh1t27ZF69at8dNPP2k7HaoHXn75ZTRu3BivvvqqtlOheuLmzZvo27cv2rVrBw8PD2zZsqXGj6npOaqun9N4a6wGFRQU4KeffsKQIUM0GiuhqttR3VFQUIB27dohKioK5ubm8PLywpEjR2Bpaant1KgO27dvH9LT07Fu3Tr88ccf2k6H6oGkpCQkJyejY8eOUCgU8PLywuXLl2FiYlJjx9T0HFXXz2kshIhqwJEjR7Bw4UJs3boVADBp0iR4e3tjxIgRWs6M6rp9+/Zh+fLlLISoSjw9PbF9+3Y4ODhoO5V6g7fGiMpw4MABDB06FPb29pDJZAgLCysVs2LFCrRo0QKGhobw9vbG8ePHxXV37txBs2bNxPlmzZrh9u3btZE6acmzfmdImqrzexMTE4PCwkIWQRpiIURUhszMTHh6emLFihVlrt+8eTNCQkIwa9YsxMbGwtPTE35+fkhJSanlTKmu4HeGqqK6vjcPHjzAqFGj8MMPP9RG2g2LNh5wRlSfABC2bt2qtqxr165CUFCQOF9YWCjY29sL8+bNEwRBEA4fPiwEBASI6ydOnChs2LChVvIl7avKd6ZYVFSUMGzYsNpIk+qYqn5vcnJyhF69egnr16+vrVQbFF4RItJQXl4eYmJi4OvrKy7T0dGBr68voqOjAQBdu3bFuXPncPv2bWRkZODff/+Fn5+ftlImLavMd4boSZX53giCgNGjR6N///54++23tZVqvcZCiEhD9+7dQ2FhIWxsbNSW29jYQKFQAAD09PSwaNEi9OvXDx07dsTHH3/MHmMSVpnvDAD4+vpi+PDh2LlzJ5o3b84iSeIq8705fPgwNm/ejLCwMHTs2BEdO3bE2bNntZFuvcUBFYlqyIsvvogXX3xR22lQPbJnzx5tp0D1TM+ePVFUVKTtNOo1XhEi0pCVlRV0dXWRnJystjw5ORm2trZayorqMn5nqCr4vakdLISINGRgYAAvLy9ERkaKy4qKihAZGQkfHx8tZkZ1Fb8zVBX83tQO3hojKkNGRgauXr0qzickJCAuLg5NmjSBo6MjQkJCEBgYiM6dO6Nr165YunQpMjMzMWbMGC1mTdrE7wxVBb83dYC2u60R1UVRUVECgFJTYGCgGPPdd98Jjo6OgoGBgdC1a1fh6NGj2kuYtI7fGaoKfm+0j4/YICIiIsliGyEiIiKSLBZCREREJFkshIiIiEiyWAgRERGRZLEQIiIiIsliIURERESSxUKIiIiIJIuFEBEREUkWCyEiIiKSLBZCREREJFkshIhIUvr27QuZTAaZTIa4uDit5TF69Ggxj7CwMK3lQSR1LISISHLGjRuHpKQkdOjQQW25QqHAxIkT0apVKxgaGsLGxgY9evTAqlWrkJWVVal9Dx06FIMGDSpz3cGDByGTyXDmzBksW7YMSUlJz/xaiOjZ6Gk7ASKi2mZsbAxbW1u1ZdevX0ePHj1gYWGBr7/+Gu7u7pDL5Th79ix++OEHNGvWDC+++GKF+x47diyGDRuGW7duoXnz5mrr1q5di86dO8PDwwMAYG5uXn0vioiqhFeEiEgrbty4AZlMhj///BO9e/eGkZERunTpgsTERBw8eBDdunWDsbExBgwYgNTU1BrP54MPPoCenh5OnjyJ1157DW5ubnBxccFLL72EHTt2YOjQoQCAoqIizJs3D87OzjAyMoKnpyf++OMPcT9DhgxB06ZNERoaqrb/jIwMbNmyBWPHjq3x10JElcdCiIi04vTp0wCAVatW4euvv8aRI0eQnJyMt956C/Pnz8fy5csRFRWF06dPY+3atTWay/3797F7924EBQXBxMSkzBiZTAYAmDdvHtavX4/Vq1fj/PnzmDx5Mt566y3s378fAKCnp4dRo0YhNDQUgiCI22/ZsgWFhYUYMWJEjb4WItIMb40RkVbExcWhSZMm2Lx5MywtLQEAffr0waFDh3D+/HkYGxsDALp06QKFQlGjuVy9ehWCIKBt27Zqy62srJCTkwMACAoKwpw5c/D1119jz5498PHxAQC4uLjg0KFD+P7779GnTx8AwDvvvIOFCxdi//796Nu3LwDVbbFhw4bxdhhRHcMrQkSkFadPn8bLL78sFkEAkJiYiNdff10sgoqXOTs7ayNFHD9+HHFxcWjfvj1yc3Nx9epVZGVl4fnnn0ejRo3Eaf369bh27Zq4naurK7p37441a9YAUBVaBw8e5G0xojqIhRARaUVcXBy8vb3Vlp0+fRrdunUT53NychAfHw9PT08AgI+Pj3h1KDY2FsOGDSt3eWW1atUKMpkM8fHxastdXFzQqlUrGBkZAVC18wGAHTt2IC4uTpwuXLig1k4IUDWa/vPPP5Geno61a9eiZcuW4hUjIqo7WAgRUa1TKpW4ceMGnnvuOXFZQkIC0tLS1JadPXsWgiDA3d0dgiAgJSVF7O119uxZeHh4PHW5JiwtLfH8889j+fLlyMzMfGpcu3btIJfLkZiYiFatWqlNDg4OarGvvfYadHR0sHHjRqxfvx7vvPOO2M6IiOoOthEiolp3+vRp6Orqqo3jU9xmyMnJSW1Zy5Yt0ahRI1y7dk3tFtnZs2fRvXt3XL9+vczlmlq5ciV69OiBzp07Y/bs2fDw8ICOjg5OnDiBS5cuwcvLC6ampvjkk08wefJkFBUVoWfPnkhLS8Phw4dhZmaGwMBAcX+NGjXC66+/junTp0OpVGL06NEa50RENY9XhIio1p0+fRpt27aFoaGh2rKSV4OKlxXfFjtz5gzc3d3FdadOnYK7u/tTl2uqZcuWOHXqFHx9fTF9+nR4enqic+fO+O677/DJJ59g7ty5AIC5c+fi888/x7x58+Dm5oZBgwZhx44dZbZjGjt2LB4+fAg/Pz/Y29trnBMR1TyZULJ/JxFRHfXFF19AoVBg1apVOHHiBPr16welUom5c+eWuVxHp+y/8/r27YuOHTti6dKltfsCnkImk2Hr1q0ICAjQdipEksQrQkRUL5w5cwZKpRKenp5Yu3Yt7OzssHHjxqcuL8/KlSvRqFEjnD17tpayL+39999Ho0aNtHZ8IlLhFSEiqhfc3Nxw6tQptdtp5S1/mtu3byM7OxsA4OjoCAMDg2rPtTJSUlKgVCoBAHZ2dk8dyJGIahYbSxNRnZeZmQldXd1Sxc7TlpenWbNm1Z1elVhbW8Pa2lrbaRBJHq8IERERkWSxjRARERFJFgshIiIikiwWQkRERCRZLISIiIhIslgIERERkWSxECIiIiLJYiFEREREksVCiIiIiCSLhRARERFJFgshIiIikiwWQkRERCRZ/w+hFe6TgVhWtwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "fig, ax = plt.subplots()\n", + "computed[\"DoubleMuon\"][\"mass\"].plot1d(ax=ax)\n", + "ax.set_xscale(\"log\")\n", + "ax.legend(title=\"Dimuon charge\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One could expand on this code to run over several chunks of the file, setting `entry_start` and `entry_stop` as appropriate. Then, several datasets could be processed by iterating over several files. However, the `dask.compute` and `coffea.dataset_tools` can help with this! We can `preprocess` multiple files and then use our custom `MyProcessor` class to generate the relevant dask task graph. Finally, the result can be obtained by calling `dask.compute`. Since these files are very large, we limit to just reading the first few chunks of events from each dataset with `maxchunks`." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "fileset = {\n", + " 'DoubleMuon': {\n", + " \"files\": {\n", + " 'file://Run2012B_DoubleMuParked.root': \"Events\",\n", + " 'file://Run2012C_DoubleMuParked.root': \"Events\",\n", + " }\n", + " },\n", + " 'ZZ to 4mu': {\n", + " \"files\": {\n", + " 'file://ZZTo4mu.root': \"Events\"\n", + " }\n", + " }\n", + "}\n", + "\n", + "\n", + "dataset_runnable, dataset_updated = preprocess(\n", + " fileset,\n", + " align_clusters=False,\n", + " step_size=100_000,\n", + " files_per_batch=1,\n", + " skip_bad_files=True,\n", + " save_form=False,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'DoubleMuon': {'DoubleMuon': {'entries': 56084708, 'mass': Hist(\n", + " StrCategory(['opposite', 'same'], name='sign'),\n", + " Regular(1000, 0.2, 200, transform=log, name='mass', label='$m_{\\\\mu\\\\mu}$ [GeV]'),\n", + " storage=Int64()) # Sum: 28258324.0 (28290486.0 with flow)}}, 'ZZ to 4mu': {'ZZ to 4mu': {'entries': 1499064, 'mass': Hist(\n", + " StrCategory(['opposite', 'same'], name='sign'),\n", + " Regular(1000, 0.2, 200, transform=log, name='mass', label='$m_{\\\\mu\\\\mu}$ [GeV]'),\n", + " storage=Int64()) # Sum: 288707.0 (289326.0 with flow)}}}\n" + ] + } + ], + "source": [ + "to_compute = apply_to_fileset(\n", + " MyProcessor(),\n", + " max_chunks(dataset_runnable, 300),\n", + " schemaclass=BaseSchema,\n", + " )\n", + "(out,) = dask.compute(to_compute)\n", + "print(out)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The run may depend on how many cores are available on the machine you are running this notebook and your connection to `eospublic.cern.ch`." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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dN1112ny5MkqLS1Venq6Zs6cqUcffVTffvutfvrpJ+d6s6e7nAUnczgcKi0tdVmvt9px4JQyMzMdkhyZmZnuLgUAAADVTH5+vmPz5s2O/Pz8k/YNHjzY0a9fv5O2z5071yHJ8dFHHzm3SXL88MMPDofD4di9e7dDkmPq1KmOSy+91OHj4+Po0qWLIykpybFixQpHbGysw9/f33Hdddc59u/f7zzGFVdc4Xj00Uddnqtfv36OwYMHO+8fPnzYcffddztCQkIcvr6+juuuu86xbds25/7Jkyc7goODHTNnznS0atXK4e/v70hISHDs27fvtN+HjRs3Ovr06eMIDAx0BAQEOC699FLHjh07XL4Pb7zxhiMyMtJRt25dx0MPPeQoKipyPv6zzz5zxMbGOgICAhwRERGOO+64w5Genu7cP3/+fIckxy+//OLo3Lmzw9PT0zF//nxHVlaW484773T4+fk5IiMjHW+//fZJ34eCggLHE0884YiKinL4+fk5unXr5pg/f/4pv5bT/Uwrkw3OfTljAAAAABVy1VVXqUOHDvr+++9P2+7555/XqFGjtHr1anl4eOjOO+/U008/rXHjxun333/Xjh07NHr06Eo995AhQ7Rq1Sr99NNPWrp0qRwOh66//nrnLImSlJeXpzfffFOff/65Fi1apOTkZD355JOnPObevXt1+eWXy9vbW/PmzVNiYqLuvfdelZSUONvMnz9fO3fu1Pz58/Xpp59qypQpmjJlinN/cXGxxowZo3Xr1mnatGnas2ePhgwZctJzPfvss3rttde0ZcsWtW/fXiNGjNDixYv1008/afbs2fr999+1evVql8cMHz5cS5cu1VdffaX169frlltu0XXXXaft27dX6ntXWdX4HBsAAABQ+7Rq1Urr168/bZsnn3zSebnMo48+qjvuuENz585Vjx49JElDhw51CSpnsn37dv30009avHixLrnkEknSF198oejoaE2bNk233HKLJCPwTJw4URdddJEkI6Qcf2nPiT744AMFBwfrq6++ck553qJFC5c2derU0fjx42Wz2dSqVSv16dNHc+fO1f333y9Juvfee51tmzZtqvfee09du3ZVTk6OAgICnPteeuklXXPNNZKk7Oxsffrpp/ryyy919dVXS5ImT56sqKgoZ/vk5GRNnjxZycnJzu1PPvmkZs6cqcmTJ+vV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VWSgJMnTw+LmSlDdEbIAACexWVw7EBv2ZrqpEgCoPm7vGu3uElBDELIAAAAAwESELAAAAAAwESELAAAAAExEyAIAAAAAExGyAAAAAMBEhCwAAAAAMBEhCwAAAABMRMgCAAAAABMRsgAAAADARIQsAAAAADARIQsAAAAATETIAgAAAAATEbIAAAAAwESELAAAAAAwESELAAAAAExEyAIAAAAAExGyAAAAAMBEhCwAAAAAMBEhCwAAAABMRMgCAAAAABMRsgAAAADARIQsAAAAADARIQsAAAAATETIAgAAAAATEbIAAAAAwESELAAAAAAwESELAAAAAExEyAIAAAAAExGyAAAAAMBEhCwAAAAAMBEhCwAAAABMRMgCAAAAABMRsgAAAADARIQsAAAAADARIQsAAAAATETIAgAAAAATEbIAAACAU1iTkuHuElADEbIAAACAU/ho0S53l4AaiJAFAAAAnILFcuxzm42uMyqG3xQAAADgDMb0a6sgHw93l4EagpAFAAAAACYiZAEAAACAiQhZAAAAAGAiQhYAAAAAmIiQBQAAAAAmImQBAAAAgIkIWQAAAABgIkIWAAAAAJiIkAUAAAAAJiJkAQAAAICJCFkAAAAAYCJCFgAAAACYiJAFAAAAACYiZAEAAACAiQhZAAAAAGAiQhYAAAAAmIiQBQAAAAAmImQBAAAAgIkIWQAAAABgokqFrAkTJqh9+/YKCgpSUFCQ4uPj9euvvzr3FxQUaNiwYQoNDVVAQIAGDhyo9PR0l2MkJyerT58+8vPzU3h4uJ566imVlJS4tFmwYIE6d+4sb29vNWvWTFOmTDmplg8++ECNGzeWj4+P4uLitGLFCpf9FakFAAAAAMxWqZDVsGFDvfbaa0pMTNSqVat01VVXqV+/ftq0aZMk6fHHH9fPP/+sb775RgsXLtS+ffs0YMAA5+NLS0vVp08fFRUVacmSJfr00081ZcoUjR492tlm9+7d6tOnj3r27Km1a9fqscce03333afffvvN2Wbq1KkaMWKEnn/+ea1evVodOnRQQkKC9u/f72xzploAAAAAoCpYHA6H41wOULduXb3xxhu6+eabFRYWpi+//FI333yzJGnr1q1q3bq1li5dqu7du+vXX39V3759tW/fPkVEREiSJk6cqGeeeUYHDhyQl5eXnnnmGc2YMUMbN250Psftt9+u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cAqNQv1OuS+vqFTFpfbzWA1qCkIWAAAAUI5ujevqypbhp9yf+OcRfZf413msCDUFIQsAAAAATETIAgAAACqhb/v6urRZPXeXgWqMkAUAAABUgofNKh9Pm7vLQDVGyAIAAAAAExGyAAAAAMBEhCwAAAAAMBEhCwAAAABMRMgCAAAAABMRsgAAAADARIQsAAAAADARIQsAAAAATETIAgA45RSWaNS0je4uAwCAGq3SIWvRokW64YYbFBUVJYvFomnTprnsdzgcGj16tOrXry9fX1/16tVL27dvd2lz+PBh3XXXXQoKClJISIiGDh2qnJwclzbr16/XZZddJh8fH0VHR+v1118/qZZvvvlGrVq1ko+Pj9q1a6dffvml0rUAAI4pKbU7Pz/uUwAAUAmVDlm5ubnq0KGDPvjgg3L3v/7663rvvfc0ceJELV++XP7+/kpISFBBQYGzzV133aVNmzZp9uzZmj59uhYtWqS///3vzv1ZWVm69tpr1ahRIyUmJuqNN97QCy+8oH//+9/ONkuWLNEdd9yhoUOHas2aNerfv7/69++vjRs3VqoWAED5bu8a7e4SAACokTwq+4DevXurd+/e5e5zOBx69913NWrUKPXr10+S9NlnnykiIkLTpk3T7bffri1btmjmzJlauXKlunTpIkl6//33df311+vNN99UVFSUvvjiCxUVFemTTz6Rl5eX2rZtq7Vr1+rtt992hrFx48bpuuuu01NPPSVJGjNmjGbPnq3x48dr4sSJFaoFAHBqV7YMU0Z+sbvLAACgxjH1mqzdu3crLS1NvXr1cm4LDg5WXFycli5dKklaunSpQkJCnAFLknr16iWr1arly5c721x++eXy8vJytklISFBSUpKOHDnibHP885S1KXueitRyosLCQmVlZbncAAAAAKAyTA1ZaWlpkqSIiAiX7REREc59aWlpCg8Pd9nv4eGhunXrurQp7xjHP8ep2hy//0y1nGjs2LEKDg523qKjGSoDAAAAoHKYXfA4I0eOVGZmpvOWkpLi7pIAAABwnq1JyXB3CajhTA1ZkZGRkqT09HSX7enp6c59kZGR2r9/v8v+kpISHT582KVNecc4/jlO1eb4/Weq5UTe3t4KCgpyuQEAAODC8u9FuyRJJXamWcXZMTVkNWnSRJGRkZo7d65zW1ZWlpYvX674+HhJUnx8vDIyMpSY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njD1F6yqjgucjre3t55//vmThuUCqBq85oDz60J/zZnVv6wN/dRafyarphs0aJB+++030xdeq6rjAgAA4MJkVv+yNvRTa/2ZrJps9erV+vzzzzVhwgRTf8Gq6rgAAAC4MJnVv6wt/VTOZFVTDodDV111ldLT07V+/XrTFl6rquMCAADgwmRW/7I29VNrbuW13IwZM7RgwQJNnz7d1F+wqjouAAAALkxm9S9rUz+VM1nVUElJidq1a6eoqCjNmTPH1IWHq+K4AAAAuDCZ1b+sbf3UWr1OVk310UcfKSkpSW+++aapv2BVdVzADNOnT1fLli3VvHlzffzxx+4uB7gg3HTTTapTp45uvvlmd5cC1HopKSm68sor1aZNG7Vv317ffPONu0syhVn9y9rWT+VMVjWTlZWlZs2a6frrr9eUKVOq/XEBM5SUlKhNmzaaP3++goODFRsbqyVLlig0NNTdpQG12oIFC5Sdna1PP/1U3377rbvLAWq11NRUpaenq2PHjkpLS1NsbKy2bdsmf39/d5d21szqX9bGfipnsqqZf/3rX8rOztbLL79cI44LmGHFihVq27atGjRooICAAPXu3VuzZs1yd1lArXfllVfW6Nm7gJqkfv366tixoyQpMjJS9erV0+HDh91b1Dkyq39ZG/uphKxqhIWHUVMtWrRIN9xwg6KiomSxWDRt2rST2nzwwQdq3LixfHx8FBcXpxUrVjj37du3Tw0aNHDeb9Cggfbu3Xs+SgdqrHN93QGoHDNfc4mJiSotLVV0dHQVV111WHj49AhZ1chzzz2noKAgPfPMMzXiuECZ3NxcdejQQR988EG5+6dOnaoRI0bo+eef1+rVq9WhQwclJCRo//7957lSoPbgdQecX2a95g4fPqxBgwbp3//+9/kou8qY1b+srf3Umj03Yi3icDjUokUL9ezZ09ShG1V1XOB4vXv3Vu/evU+5/+2339b999+ve+65R5I0ceJEzZgxQ5988omeffZZRUVFuZy52rt3r7p161bldQM12bm+7gBUjhmvucLCQvXv31/PPvusLrnkkvNSd1Uwq39Zm/uphKxqwmKxaNSoUTXmuEBFFRUVKTExUSNHjnRus1qt6tWrl5YuXSpJ6tatmzZu3Ki9e/cqODhYv/76q/75z3+6q2SgxqvI6w6AeSrymnM4HBoyZIiuuuoq3X333e4q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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(figsize=(10, 6))\n", + "out[\"DoubleMuon\"][\"DoubleMuon\"][\"mass\"].plot1d(ax=ax)\n", + "ax.set_xscale(\"log\")\n", + "ax.legend(title=\"Dimuon charge\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Getting fancy\n", + "Let's flesh out this analysis into a 4-muon analysis, searching for diboson events:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "from collections import defaultdict\n", + "import numba\n", + "\n", + "\n", + "@numba.njit\n", + "def find_4lep_kernel(events_leptons, builder):\n", + " \"\"\"Search for valid 4-lepton combinations from an array of events * leptons {charge, ...}\n", + " \n", + " A valid candidate has two pairs of leptons that each have balanced charge\n", + " Outputs an array of events * candidates {indices 0..3} corresponding to all valid\n", + " permutations of all valid combinations of unique leptons in each event\n", + " (omitting permutations of the pairs)\n", + " \"\"\"\n", + " for leptons in events_leptons:\n", + " builder.begin_list()\n", + " nlep = len(leptons)\n", + " for i0 in range(nlep):\n", + " for i1 in range(i0 + 1, nlep):\n", + " if leptons[i0].charge + leptons[i1].charge != 0:\n", + " continue\n", + " for i2 in range(nlep):\n", + " for i3 in range(i2 + 1, nlep):\n", + " if len({i0, i1, i2, i3}) < 4:\n", + " continue\n", + " if leptons[i2].charge + leptons[i3].charge != 0:\n", + " continue\n", + " builder.begin_tuple(4)\n", + " builder.index(0).integer(i0)\n", + " builder.index(1).integer(i1)\n", + " builder.index(2).integer(i2)\n", + " builder.index(3).integer(i3)\n", + " builder.end_tuple()\n", + " builder.end_list()\n", + "\n", + " return builder\n", + "\n", + "\n", + "def find_4lep(events_leptons):\n", + " if ak.backend(events_leptons) == \"typetracer\":\n", + " # here we fake the output of find_4lep_kernel since\n", + " # operating on length-zero data returns the wrong layout!\n", + " ak.typetracer.length_zero_if_typetracer(events_leptons.charge) # force touching of the necessary data\n", + " return ak.Array(ak.Array([[(0,0,0,0)]]).layout.to_typetracer(forget_length=True))\n", + " return find_4lep_kernel(events_leptons, ak.ArrayBuilder()).snapshot()\n", + "\n", + "\n", + "class FancyDimuonProcessor(processor.ProcessorABC):\n", + " def process(self, events):\n", + " dataset_axis = hist.axis.StrCategory([], growth=True, name=\"dataset\", label=\"Primary dataset\")\n", + " mass_axis = hist.axis.Regular(300, 0, 300, name=\"mass\", label=r\"$m_{\\mu\\mu}$ [GeV]\")\n", + " pt_axis = hist.axis.Regular(300, 0, 300, name=\"pt\", label=r\"$p_{T,\\mu}$ [GeV]\")\n", + " \n", + " h_nMuons = hda.Hist(\n", + " dataset_axis,\n", + " hda.hist.hist.axis.IntCategory(range(6), name=\"nMuons\", label=\"Number of good muons\"),\n", + " storage=\"weight\", label=\"Counts\",\n", + " )\n", + " h_m4mu = hda.hist.Hist(dataset_axis, mass_axis, storage=\"weight\", label=\"Counts\")\n", + " h_mZ1 = hda.hist.Hist(dataset_axis, mass_axis, storage=\"weight\", label=\"Counts\")\n", + " h_mZ2 = hda.hist.Hist(dataset_axis, mass_axis, storage=\"weight\", label=\"Counts\")\n", + " h_ptZ1mu1 = hda.hist.Hist(dataset_axis, pt_axis, storage=\"weight\", label=\"Counts\")\n", + " h_ptZ1mu2 = hda.hist.Hist(dataset_axis, pt_axis, storage=\"weight\", label=\"Counts\")\n", + " \n", + " cutflow = defaultdict(int)\n", + " \n", + " dataset = events.metadata['dataset']\n", + " muons = ak.zip({\n", + " \"pt\": events.Muon_pt,\n", + " \"eta\": events.Muon_eta,\n", + " \"phi\": events.Muon_phi,\n", + " \"mass\": events.Muon_mass,\n", + " \"charge\": events.Muon_charge,\n", + " \"isolation\": events.Muon_pfRelIso03_all,\n", + " }, with_name=\"PtEtaPhiMCandidate\", behavior=candidate.behavior)\n", + " \n", + " # make sure they are sorted by transverse momentum\n", + " muons = muons[ak.argsort(muons.pt, axis=1)]\n", + " \n", + " cutflow['all events'] = ak.num(muons, axis=0)\n", + " \n", + " # impose some quality and minimum pt cuts on the muons\n", + " muons = muons[\n", + " (muons.pt > 5)\n", + " & (muons.isolation < 0.2)\n", + " ]\n", + " cutflow['at least 4 good muons'] += ak.sum(ak.num(muons) >= 4)\n", + " h_nMuons.fill(dataset=dataset, nMuons=ak.num(muons))\n", + " \n", + " # reduce first axis: skip events without enough muons\n", + " muons = muons[ak.num(muons) >= 4]\n", + " \n", + " # find all candidates with helper function\n", + " fourmuon = dak.map_partitions(find_4lep, muons)\n", + " fourmuon = [muons[fourmuon[idx]] for idx in \"0123\"]\n", + "\n", + " fourmuon = ak.zip({\n", + " \"z1\": ak.zip({\n", + " \"lep1\": fourmuon[0],\n", + " \"lep2\": fourmuon[1],\n", + " \"p4\": fourmuon[0] + fourmuon[1],\n", + " }),\n", + " \"z2\": ak.zip({\n", + " \"lep1\": fourmuon[2],\n", + " \"lep2\": fourmuon[3],\n", + " \"p4\": fourmuon[2] + fourmuon[3],\n", + " }),\n", + " })\n", + "\n", + " cutflow['at least one candidate'] += ak.sum(ak.num(fourmuon) > 0)\n", + "\n", + " # require minimum dimuon mass\n", + " fourmuon = fourmuon[(fourmuon.z1.p4.mass > 60.) & (fourmuon.z2.p4.mass > 20.)]\n", + " cutflow['minimum dimuon mass'] += ak.sum(ak.num(fourmuon) > 0)\n", + "\n", + " # choose permutation with z1 mass closest to nominal Z boson mass\n", + " bestz1 = ak.singletons(ak.argmin(abs(fourmuon.z1.p4.mass - 91.1876), axis=1))\n", + " fourmuon = ak.flatten(fourmuon[bestz1])\n", + "\n", + " h_m4mu.fill(\n", + " dataset=dataset,\n", + " mass=(fourmuon.z1.p4 + fourmuon.z2.p4).mass,\n", + " )\n", + " h_mZ1.fill(\n", + " dataset=dataset, \n", + " mass=fourmuon.z1.p4.mass,\n", + " )\n", + " h_mZ2.fill(\n", + " dataset=dataset, \n", + " mass=fourmuon.z2.p4.mass,\n", + " )\n", + " h_ptZ1mu1.fill(\n", + " dataset=dataset,\n", + " pt=fourmuon.z1.lep1.pt,\n", + " )\n", + " h_ptZ1mu2.fill(\n", + " dataset=dataset,\n", + " pt=fourmuon.z1.lep2.pt,\n", + " )\n", + " return {\n", + " 'nMuons': h_nMuons,\n", + " 'mass': h_m4mu,\n", + " 'mass_z1': h_mZ1,\n", + " 'mass_z2': h_mZ2,\n", + " 'pt_z1_mu1': h_ptZ1mu1,\n", + " 'pt_z1_mu2': h_ptZ1mu2,\n", + " 'cutflow': {dataset: cutflow},\n", + " }\n", + "\n", + " def postprocess(self, accumulator):\n", + " pass" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'DoubleMuon': {'nMuons': Hist(\n", + " StrCategory(['DoubleMuon'], growth=True, name='dataset', label='Primary dataset'),\n", + " IntCategory([0, 1, 2, 3, 4, 5], name='nMuons', label='Number of good muons'),\n", + " storage=Weight()) # Sum: WeightedSum(value=5.59547e+07, variance=5.59547e+07) (WeightedSum(value=5.60847e+07, variance=5.60847e+07) with flow), 'mass': Hist(\n", + " StrCategory(['DoubleMuon'], growth=True, name='dataset', label='Primary dataset'),\n", + " Regular(300, 0, 300, name='mass', label='$m_{\\\\mu\\\\mu}$ [GeV]'),\n", + " storage=Weight()) # Sum: WeightedSum(value=54219, variance=54219) (WeightedSum(value=60748, variance=60748) with flow), 'mass_z1': Hist(\n", + " StrCategory(['DoubleMuon'], growth=True, name='dataset', label='Primary dataset'),\n", + " Regular(300, 0, 300, name='mass', label='$m_{\\\\mu\\\\mu}$ [GeV]'),\n", + " storage=Weight()) # Sum: WeightedSum(value=60314, variance=60314) (WeightedSum(value=60748, variance=60748) with flow), 'mass_z2': Hist(\n", + " StrCategory(['DoubleMuon'], growth=True, name='dataset', label='Primary dataset'),\n", + " Regular(300, 0, 300, name='mass', label='$m_{\\\\mu\\\\mu}$ [GeV]'),\n", + " storage=Weight()) # Sum: WeightedSum(value=60079, variance=60079) (WeightedSum(value=60748, variance=60748) with flow), 'pt_z1_mu1': Hist(\n", + " StrCategory(['DoubleMuon'], growth=True, name='dataset', label='Primary dataset'),\n", + " Regular(300, 0, 300, name='pt', label='$p_{T,\\\\mu}$ [GeV]'),\n", + " storage=Weight()) # Sum: WeightedSum(value=60736, variance=60736) (WeightedSum(value=60748, variance=60748) with flow), 'pt_z1_mu2': Hist(\n", + " StrCategory(['DoubleMuon'], growth=True, name='dataset', label='Primary dataset'),\n", + " Regular(300, 0, 300, name='pt', label='$p_{T,\\\\mu}$ [GeV]'),\n", + " storage=Weight()) # Sum: WeightedSum(value=57002, variance=57002) (WeightedSum(value=60748, variance=60748) with flow), 'cutflow': {'DoubleMuon': defaultdict(, {'all events': dask.awkward, 'at least 4 good muons': dask.awkward, 'at least one candidate': dask.awkward, 'minimum dimuon mass': dask.awkward})}}, 'ZZ to 4mu': {'nMuons': Hist(\n", + " StrCategory(['ZZ to 4mu'], growth=True, name='dataset', label='Primary dataset'),\n", + " IntCategory([0, 1, 2, 3, 4, 5], name='nMuons', label='Number of good muons'),\n", + " storage=Weight()) # Sum: WeightedSum(value=1.49776e+06, variance=1.49776e+06) (WeightedSum(value=1.49906e+06, variance=1.49906e+06) with flow), 'mass': Hist(\n", + " StrCategory(['ZZ to 4mu'], growth=True, name='dataset', label='Primary dataset'),\n", + " Regular(300, 0, 300, name='mass', label='$m_{\\\\mu\\\\mu}$ [GeV]'),\n", + " storage=Weight()) # Sum: WeightedSum(value=79350, variance=79350) (WeightedSum(value=98261, variance=98261) with flow), 'mass_z1': Hist(\n", + " StrCategory(['ZZ to 4mu'], growth=True, name='dataset', label='Primary dataset'),\n", + " Regular(300, 0, 300, name='mass', label='$m_{\\\\mu\\\\mu}$ [GeV]'),\n", + " storage=Weight()) # Sum: WeightedSum(value=98198, variance=98198) (WeightedSum(value=98261, variance=98261) with flow), 'mass_z2': Hist(\n", + " StrCategory(['ZZ to 4mu'], growth=True, name='dataset', label='Primary dataset'),\n", + " Regular(300, 0, 300, name='mass', label='$m_{\\\\mu\\\\mu}$ [GeV]'),\n", + " storage=Weight()) # Sum: WeightedSum(value=97699, variance=97699) (WeightedSum(value=98261, variance=98261) with flow), 'pt_z1_mu1': Hist(\n", + " StrCategory(['ZZ to 4mu'], growth=True, name='dataset', label='Primary dataset'),\n", + " Regular(300, 0, 300, name='pt', label='$p_{T,\\\\mu}$ [GeV]'),\n", + " storage=Weight()) # Sum: WeightedSum(value=98259, variance=98259) (WeightedSum(value=98261, variance=98261) with flow), 'pt_z1_mu2': Hist(\n", + " StrCategory(['ZZ to 4mu'], growth=True, name='dataset', label='Primary dataset'),\n", + " Regular(300, 0, 300, name='pt', label='$p_{T,\\\\mu}$ [GeV]'),\n", + " storage=Weight()) # Sum: WeightedSum(value=97998, variance=97998) (WeightedSum(value=98261, variance=98261) with flow), 'cutflow': {'ZZ to 4mu': defaultdict(, {'all events': dask.awkward, 'at least 4 good muons': dask.awkward, 'at least one candidate': dask.awkward, 'minimum dimuon mass': dask.awkward})}}}\n", + "109.41525983810425\n" + ] + } + ], + "source": [ + "import time\n", + "\n", + "tstart = time.time()\n", + "\n", + "to_compute = apply_to_fileset(\n", + " FancyDimuonProcessor(),\n", + " max_chunks(dataset_runnable, 300),\n", + " schemaclass=BaseSchema,\n", + " )\n", + "(out,) = dask.compute(to_compute)\n", + "print(out)\n", + "\n", + "elapsed = time.time() - tstart\n", + "print(elapsed)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Events/s: 526286.4803794603\n" + ] + } + ], + "source": [ + "nevt = out['ZZ to 4mu']['cutflow']['ZZ to 4mu']['all events'] + out['DoubleMuon']['cutflow']['DoubleMuon']['all events']\n", + "print(\"Events/s:\", (nevt / elapsed).compute())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What follows is just us looking at the output, you can execute it if you wish" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# scale ZZ simulation to expected yield\n", + "lumi = 11.6 # 1/fb\n", + "zzxs = 7200 * 0.0336**2 # approximate 8 TeV ZZ(4mu)\n", + "nzz = out['ZZ to 4mu']['cutflow']['ZZ to 4mu']['all events']\n", + "\n", + "scaled = {}\n", + "for (name1, h1), (nam2, h2) in zip(out['ZZ to 4mu'].items(), out['DoubleMuon'].items()):\n", + " if isinstance(h1, hist.Hist) and isinstance(h2, hist.Hist):\n", + " scaled[name1] = h1.copy() + h2.copy()\n", + " scaled[name1].view()[0, :] *= lumi * zzxs / nzz.compute()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1, 54961323.59635242)" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "scaled['nMuons'].plot1d(ax=ax, overlay='dataset')\n", + "ax.set_yscale('log')\n", + "ax.set_ylim(1, None)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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Tz5p7Nu3zzCM0GsfemB8VF1drW3btik9Pd15rk2bNkpPT1dBQUEQaxZc3333nZKTk9WnTx9NmTJFpaWlkqRt27appqbGrb0GDBig8847L2Lba+/evbLb7W5tYrPZlJqa6myTgoICxcXFacSIEc4y6enpatOmjbZu3drqdQ6WvLw8xcfHq3///po1a5YOHTrkvBZpbVReXi5J6tKliyTffrcKCgo0ZMgQt8SfGRkZcjgc2r17dyvWvnWc2kYNVq9erW7dumnw4MHKyspSZWWl81oktdHJkyf15ptvqra2VhMmTPD5O5SSkqIHHnjAmbQu1NondKYTh7h//etfOnny5GmZgBMSEvTtt98GqVbBlZqaqpUrV6p///46cOCAHn30UV122WXatWuX7Ha7rFbraRtqJiQkyG63B6fCQdbw3J6+Qw3X7Ha74uPj3a63a9dOXbp0iZh2GzdunG688Ub17t1be/bs0UMPPaTx48eroKBAbdu2jag2qqur03333adRo0Zp8ODBkuTT75bdbvf4PWu4Fk48tZEk3XrrrerVq5eSk5NVVFSkBQsWqLi4WH//+98lRUYb7dy5U2lpaTpx4oQ6deqkt956S4MGDVJhYWFYfIcIYNBi48ePdx6npKQoNTVVvXr10uuvv64OHToEsWYws8mTJzuPhwwZopSUFPXt21d5eXkaM2ZMEGvW+jIzM7Vr1y63uWVw562NXOdEDRkyRElJSRozZoz27Nmjvn37tnY1g6J///4qLCxUeXm53nzzTU2bNk35+fnBrpbfMITko27duqlt27anzdIuKytTYmJikGoVWuLi4nT++eerpKREiYmJqq6u1pEjR9zKRHJ7NTz3mb5DiYmJp00Kr62t1eHDhyO23fr06aNu3bqppKREUuS00ezZs7Vu3Tp99NFHbvvO+PK7lZiY6PF71nAtXHhrI09SU1Mlye17FO5tZLVa1a9fPw0fPlw5OTkaOnSonnvuubD5DhHA+MhqtWr48OHauHGj81xdXZ02btyotLS0INYsdBw7dkx79uxRUlKShg8frqioKLf2Ki4uVmlpacS2V+/evZWYmOjWJg6HQ1u3bnW2SVpamo4cOaJt27Y5y2zatEl1dXXOf4AjzU8//aRDhw4pKSlJUvi3kWEYmj17tt566y1t2rRJvXv3drvuy+9WWlqadu7c6Rbo5ebmKjY2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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "\n", + "scaled['mass'][:, ::hist.rebin(4)].plot1d(ax=ax, overlay='dataset');" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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qRo3bpx+/PFHXXbZZW7bVqxYoUGDBikuLk6SFBYW1ngHBaBBOAMDoF5++OEH2Ww2/f3vf9ewYcMUFBSkwYMHKy8vT59++qmGDBmi4OBgDR8+XAUFBU1ez4MPPqg2bdroq6++0u9+9zv16dNHPXr00G233aaNGzdqzJgxkqSKigqlpqaqe/fuCgoKUnx8vN5++23X59xyyy3q3LmzVq5c6fb5RUVFWrdunaZOndrkxwLAewQYAPWyZ88eSVJaWpoWL16s7du3Kz8/X3fffbeeeeYZvfLKK/rkk0+0Z88erVixoklrOX78uD766COlpKSoXbt2HtvYbDZJUmpqqlatWqXly5dr//79mjlzpu6++25lZGRIktq0aaNJkyZp5cqVMgzDtf+6det09uxZTZgwoUmPBUD9cAkJQL1kZWWpQ4cOWrt2rTp27ChJuv766/XZZ59p//79Cg4OliQNHjxYDoejSWvJzc2VYRjq1auX2/pOnTrp9OnTkqSUlBQ99dRTWrx4sT7++GMlJiZKknr06KHPPvtM//mf/6nrr79eknTffffpueeeU0ZGhm644QZJlZePxo0bx2UjwMdwBgZAvezZs0e33367K7xIUl5enu68805XeKla1717dzNK1BdffKGsrCxdeeWVKi0tVW5urkpKSvTb3/5WISEhrmXVqlU6ePCga7/evXvrN7/5jV5//XVJlQHp008/5fIR4IMIMADqJSsrSwkJCW7r9uzZoyFDhrjenz59Wjk5OYqPj5ckJSYmus7G7N69W+PGjbvgem/FxsbKZrMpJyfHbX2PHj0UGxuroKAgSZXjWCRp48aNysrKci3ffPON2zgYqXIw79///nedPHlSK1asUM+ePV1naAD4DgIMAK85nU798MMPGjBggGvdoUOHVFhY6LZu7969MgxD/fv3l2EYOnbsmGv20N69exUXF1fr+vro2LGjfvvb3+qVV15RcXFxre369u2rwMBA5eXlKTY21m3p0qWLW9vf/e53atWqldasWaNVq1bpvvvuc42jAeA7GAMDwGt79uxR69at3e7DUjUmplu3bm7revbsqZCQEB08eNDtUtLevXv1m9/8Rt9//73H9fX16quvaujQoRo0aJAWLVqkuLg4tWrVSl9++aUOHDiggQMHqn379po9e7ZmzpypiooKXXvttSosLNTnn3+u0NBQTZ482fV5ISEhuvPOOzVv3jw5nU5NmTKl3jUBaHqcgQHgtT179qhXr15q27at27rqZ1+q1lVdPsrOzlb//v1d277++mv179+/1vX11bNnT3399ddKSkrSvHnzFB8fr0GDBunll1/W7Nmz9fTTT0uSnn76aT3++ONKTU1Vnz59NHLkSG3cuNHjOJ2pU6fq119/VXJysmJiYupdE4CmZzOqzxcEgEb25JNPyuFwKC0tTV9++aVuvPFGOZ1OPf300x7Xt2rl+d9VN9xwg6666iq98MILzXsAtbDZbFq/fr3Gjh1rdilAi8QZGABNKjs7W06nU/Hx8VqxYoWio6O1Zs2aWtdfyKuvvqqQkBDt3bu3mao/3wMPPKCQkBDTfj6ASpyBAdCk+vTpo6+//trtstOF1tfmp59+0qlTpyRJXbt2ld1ub/RavXHs2DE5nU5JUnR0dK030APQtBjEC6DJFBcXq3Xr1ueFlNrWX8ill17a2OU1SEREhCIiIswuA2jxOAMDAAAshzEwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcv4/RnSP29eDXVYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "\n", + "scaled['mass_z1'].plot1d(ax=ax, overlay='dataset');" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(2.0, 300.0)" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkwAAAG2CAYAAACNhdkhAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA170lEQVR4nO3df1RUdeL/8deIDgo4kCK/8sdRKX+kkqlLrGWWrmj2w/JzNs3SyrVji1v+rOzbmuV+pDWr7Yfhp/azWp/NPmabtemuib8wEy1NRK04YfpB08FWg0lQQLnfP1hGBgcuA8PMAM/HOfcc5t73vfO+bwfm5b3v+35bDMMwBAAAgBq18ncFAAAAAh2BCQAAwASBCQAAwASBCQAAwASBCQAAwASBCQAAwASBCQAAwASBCQAAwERrf1egsZSXl+vEiRNq3769LBaLv6sDAADqwDAM/fzzz4qLi1OrVoFzXafZBqYTJ06oS5cu/q4GAACoh2PHjqlz587+roZTsw1M7du3l1TR4Dabzc+1AQAAdeFwONSlSxfn93igaLaBqfI2nM1mIzABANDEBFp3msC5OQgAABCgCEwAAAAmCEwAAAAmCEwAAAAmCEwAAAAmCEwAAAAmCEwAAAAmCEwAAAAmCEwAAAAmCEwAAAAmCEwAAAAmCEwAAAAmCEwAAAAmCEwAAAAmCEzeVlokLQyvWEqL/F0bAADgBQQmAAAAEwQmAAAAEwQmAAAAEwQmAAAAEwQmbzIMqbTY9TUAAGjyCEzeVFYsLY2v8vqc/+oCAAC8hsAEAABggsAEAABggsAEAABggsAEAABggsAEAABggsAEAABggsAEAABggsDUmKwh/q4BAADwAgITAACACQITAACACQITAACACQJTY1ocJ5UW+bsWAACggQhMAAAAJghMAAAAJghMAAAAJghMja20WDIMf9cCAAA0AIGpsS2Nl8qK/V0LAADQAAQmAAAAEwQmAAAAEwQmAAAAEwQmAAAAEwQmAAAAEwQmAAAAEwSmxjI31981AAAAXkJgAgAAMEFgAgAAMEFgAgAAMEFgAgAAMOFRYEpNTdWQIUPUvn17RUVFady4ccrJyXEpM3z4cFksFpdl+vTpLmXy8vI0duxYhYSEKCoqSvPmzdOFCxdcymzbtk3XXXedgoODFR8fr5UrV9bvDAEAABrIo8CUkZGhlJQU7dq1S+np6SorK9OoUaNUVFTkUm7atGk6efKkc1myZIlz28WLFzV27FiVlpZq586devvtt7Vy5UotWLDAWebIkSMaO3asbr75ZmVlZWnmzJn6zW9+o08//bSBpwsAAOC51p4U3rBhg8vrlStXKioqSnv37tWwYcOc60NCQhQTE+P2GBs3btTXX3+tTZs2KTo6Wtdee60WLVqkJ554QgsXLpTVatXy5cvVvXt3vfjii5KkPn36aMeOHXr55ZeVnJzs6TkCAAA0SIP6MBUWFkqSOnTo4LL+3XffVWRkpPr166f58+eruLjYuS0zM1P9+/dXdHS0c11ycrIcDocOHTrkLDNy5EiXYyYnJyszM7PGupSUlMjhcLgsAAAA3uDRFaaqysvLNXPmTA0dOlT9+vVzrr/33nvVrVs3xcXFKTs7W0888YRycnL04YcfSpLsdrtLWJLkfG2322st43A4dO7cObVr1+6y+qSmpurZZ5+t7+kAAADUqN6BKSUlRQcPHtSOHTtc1j/88MPOn/v376/Y2FiNGDFChw8fVs+ePetfUxPz58/X7Nmzna8dDoe6dOnSaO8HAABajnrdkpsxY4bWrVunrVu3qnPnzrWWTUxMlCTl5lZMFRITE6P8/HyXMpWvK/s91VTGZrO5vbokScHBwbLZbC4LAACAN3gUmAzD0IwZM7R27Vpt2bJF3bt3N90nKytLkhQbGytJSkpK0oEDB3Tq1ClnmfT0dNlsNvXt29dZZvPmzS7HSU9PV1JSkifVBQAA8AqPAlNKSor++te/atWqVWrfvr3sdrvsdrvOnTsnSTp8+LAWLVqkvXv36ujRo/r73/+uyZMna9iwYRowYIAkadSoUerbt6/uv/9+7d+/X59++qmefvpppaSkKDg4WJI0ffp0ff/993r88cf17bff6o033tD777+vWbNmefn0AQAAzHkUmNLS0lRYWKjhw4crNjbWuaxevVqSZLVatWnTJo0aNUq9e/fWnDlzNH78eH3yySfOYwQFBWndunUKCgpSUlKS7rvvPk2ePFnPPfecs0z37t21fv16paenKyEhQS+++KL+/Oc/M6QAAADwC486fRuGUev2Ll26KCMjw/Q43bp10z/+8Y9aywwfPlz79u3zpHoAAACNgrnkfGFxnFRaZF4OAAAEJAITAACACQITAACACQITAACACQITAACACQKTr5QW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RWACAAAwQWAKZKXFzCkHAEAAIDAFsqXxUlmxv2sBAECLR2ACAAAwQWAKJEyTAgBAQCIwBRKmSQEAICARmAAAAEwQmAAAAEwQmAKNNZQpUgAACDAEJgAAABMEJgAAABMeB6bt27fr9ttvV1xcnCwWiz766COX7Q888IAsFovLMnr0aJcyZ86c0aRJk2Sz2RQREaGpU6fq7NmzLmWys7N14403qm3bturSpYuWLFni+dkBAAB4gceBqaioSAkJCVq2bFmNZUaPHq2TJ086l/fee89l+6RJk3To0CGlp6dr3bp12r59ux5++GHndofDoVGjRqlbt27au3evXnjhBS1cuFBvvvmmp9UFAABosNae7jBmzBiNGTOm1jLBwcGKiYlxu+2bb77Rhg0b9OWXX2rw4MGSpNdee0233nqrli5dqri4OL377rsqLS3VX/7yF1mtVl1zzTXKysrSSy+95BKsAAAAfKFR+jBt27ZNUVFR6tWrlx555BGdPn3auS0zM1MRERHOsCRJI0eOVKtWrbR7925nmWHDhslqtTrLJCcnKycnRz/99JPb9ywpKZHD4XBZAAAAvMHrgWn06NF65513tHnzZv3xj39URkaGxowZo4sXL0qS7Ha7oqKiXPZp3bq1OnToILvd7iwTHR3tUqbydWWZ6lJTUxUeHu5cunTp4u1T84/FcVJpkb9rAQBAi+bxLTkzEyZMcP7cv39/DRgwQD179tS2bds0YsQIb7+d0/z58zV79mzna4fD0XxCEwAA8KtGH1agR48eioyMVG5uxaSyMTExOnXqlEuZCxcu6MyZM85+TzExMcrPz3cpU/m6pr5RwcHBstlsLgsAAIA3NHpgOn78uE6fPq3Y2FhJUlJSkgoKCrR3715nmS1btqi8vFyJiYnOMtu3b1dZWZmzTHp6unr16qUrrriisasceEqLJcPwdy0AAGixPA5MZ8+eVVZWlrKysiRJR44cUVZWlvLy8nT27FnNmzdPu3bt0tGjR7V582bdeeedio+PV3JysiSpT58+Gj16tKZNm6YvvvhCn3/+uWbMmKEJEyYoLi5OknTvvffKarVq6tSpOnTokFavXq1XXnnF5ZZbi7I0Xior9nctAABosTwOTHv27NHAgQM1cOBASdLs2bM1cOBALViwQEFBQcrOztYdd9yhq6++WlOnTtWgQYP02WefKTg42HmM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IEkKDw/33kkBaBK4wgTAI0ePHpXFYtHf/vY3DRs2TO3atdOQIUOUl5enzz77TNdff71CQkI0YsQIFRQUNHp9fvvb36p169bas2ePfv3rX6tPnz7q0aOH7rzzTq1fv1633367JKm8vFypqanq3r272rVrp4SEBH3wwQfO49x2223q1KmTVq5c6XL8s2fPas2aNZo6dWqjnwuAwEVgAuCR/fv3S5LS0tK0ePFi7dy5U/n5+brvvvv0/PPP6/XXX9fWrVu1f/9+rVixolHrcvr0aW3cuFEpKSkKDQ11W8ZisUiSUlNT9c4772j58uU6dOiQZs2apfvuu08ZGRmSpNatW2vy5MlauXKlDMNw7r9mzRpdvHhREydObNRzARDYuCUHwCNZWVnq0KGDVq9erY4dO0qSbrrpJu3YsUOHDh1SSEiIJGnIkCGy2+2NWpfc3FwZhqFevXq5rI+MjNT58+clSSkpKXruuee0ePFibdq0SUlJSZKkHj16aMeOHfqv//ov3XTTTZKkhx56SC+88IIyMjI0fPhwSRW348aPH89tOKCF4woTAI/s379fd911lzMsSVJeXp7uueceZ1iqXNe9e3d/VFFffPGFsrKydM0116ikpES5ubkqLi7Wr371K4WFhTmXd955R4cPH3bu17t3b/3yl7/UX/7yF0kVgeyzzz7jdhwAAhMAz2RlZSkxMdFl3f79+3X99dc7X58/f145OTlKSEiQJCUlJTmvNn311VcaP358revrKj4+XhaLRTk5OS7re/Toofj4eLVr105SRT8kSVq/fr2ysrKcy9dff+3Sj0mq6Pz9t7/9TT///LNWrFihnj17Oq9AAWi5CEwA6szhcOjo0aMaOHCgc92RI0dUWFjosu7AgQMyDEP9+/eXYRg6deqU8+m2AwcOaMCAATWu90THjh31q1/9Sq+//rqKiopqLNe3b18FBwcrLy9P8fHxLkuXLl1cyv76179Wq1attGrVKr3zzjt66KGHnP2gALRc9GECUGf79+9XUFCQyzhIlX2aunXr5rKuZ8+eCgsL0+HDh11uzR04cEC//OUv9f3337td76k33nhDQ4cO1eDBg7Vw4UINGDBArVq10pdffqlvv/1WgwYNUvv27TV37lzNmjVL5eXluuGGG1RYWKjPP/9cNptNU6ZMcR4vLCxM99xzj+bPny+Hw6EHHnjA4zoBaH64wgSgzvbv369evXqpbdu2LuuqXl2qXFd5Oy47O1v9+/d3btu3b5/69+9f43pP9ezZU/v27dPIkSM1f/58JSQkaPDgwXrttdc0d+5cLVq0SJK0aNEi/f73v1dqaqr69Omj0aNHa/369W77WU2dOlU//fSTkpOTFRcX53GdADQ/FqPq87MA4GXPPvus7Ha70tLS9OWXX+rmm2+Ww+HQokWL3K5v1cr9/+OGDx+ua6+9Vn/60598ewI1sFgsWrt2rcaNG+fvqgDwAa4wAWhU2dnZcjgcSkhI0IoVKxQbG6tVq1bVuL42b7zxhsLCwnTgwAEf1f5y06dPV1hYmN/eH4B/cIUJQKPq06eP9u3b53Ibr7b1Nfnhhx907tw5SVLXrl1ltVq9Xte6OHXqlBwOhyQpNja2xgEzATQvdPoG0GiKiooUFBR0WSiqaX1trrzySm9Xr16ioqIUFRXl72oA8DGuMAEAAJigDxMAAIAJAhMAAIAJAhMAAIAJAhMAAIAJAhMAAIAJAhMAAIAJAhMAAIAJAhMAAIAJAhMAAIAJAhMAAIAJAhMAAIAJAhMAAICJ/w8iDY+wmtlifwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "\n", + "scaled['mass_z2'].plot1d(ax=ax, overlay='dataset')\n", + "ax.set_xlim(2, 300)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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0+nUhx9+6Nk+cuRIWSwWr2XatGlexygoKFBiYqKCg4MVHh6uefPmqbKy0qtNenq6hg0bJpvNppiYGKWmpjb+DAEAQMDp4Evjnj176oknntBPfvITGYah1atX6+abb9aePXt0xRVXSJKmTp2qxx57zLNPcHCw5+eqqiolJibK4XBox44dOnbsmCZNmqSgoCAtWbJEknT48GElJiZq2rRpWrNmjbZu3ar7779fkZGRSkhIaIpzBgAAJudTgBk/frzX6z/+8Y9auXKldu7c6QkwwcHBcjgcde6/ZcsW7d+/Xx999JEiIiI0ZMgQPf7441qwYIEWL14sq9WqVatWKTo6Wk899ZQkacCAAfrkk0/0zDPPEGAAAICkSxgDU1VVpTfffFOlpaVyOp2e9WvWrFH37t01cOBAJScn69Sps09izszM1KBBgxQREeFZl5CQILfbrX379nnajB492uu9EhISlJmZ2dhSAQBAgPHpCowk5ebmyul06syZMwoJCdH69esVGxsrSbrrrrvUp08fRUVFKScnRwsWLFBeXp7+9re/SZJcLpdXeJHkee1yuS7axu126/Tp0+rUqVOddZWVlamsrMzz2u12+3pqTav8lPfP1s7+qwUAgADjc4Dp16+fsrOzVVJSonfeeUeTJ09WRkaGYmNj9cADD3jaDRo0SJGRkRo1apQOHTqkyy+/vEkL/6GUlBQ9+uijzfoeAACgdfD5KySr1aqYmBgNHz5cKSkpGjx4sJYvX15n2/j4eElSfn7NtPoOh0OFhYVebWpf146buVAbu91+wasvkpScnKySkhLPcuTIEV9PDQAAmMQlzwNTXV3t9dXNubKzsyVJkZGRkiSn06nc3FwVFRV52qSlpclut3u+hnI6ndq6davXcdLS0rzG2dTFZrN5bu+uXVqN8lOSYfi7CgAAAoZPASY5OVnbt2/X119/rdzcXCUnJys9PV0TJ07UoUOH9PjjjysrK0tff/213n//fU2aNEkjRoxQXFycJGnMmDGKjY3VPffco3/+85/avHmzFi5cqKSkJNlsNknStGnT9NVXX2n+/Pk6ePCgXnzxRb399tuaNWtW0599S3kuTqo4VX87AADQID4FmKKiIk2aNEn9+vXTqFGj9Pnnn2vz5s264YYbZLVa9dFHH2nMmDHq37+/5syZowkTJuiDDz7w7N++fXtt2LBB7du3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Qn/84x+bdZ+m0KrvQlqxYoV+/OMfq2PHjoqPj9dnn33m75LQULVhpnapHej725yL71d7G3bpd2fvYio7WbOce1fTudtOfnv+9nOd2567ogCgTkeOHNHTTz+tOXPmqGfPns22T1NptVdg3nrrLc2ePVurVq1SfHy8nn32WSUkJCgvL0/h4eH+Lg++qg00l51zZebkdzWBpS4X+/rpoX9KywdfeHvtGJtaP7z6MzdfCunh/ZXXueq7+lPXflwxAmByCxculN1u14IFC5p1n6bSasfAxMfH66qrrtILL7wgSaqurlavXr304IMP6ne/+129+zfnGJhTJ0vq3lBxSsHL+9e0mVvQ9sbA+MoTBIyacTCGoeDnBjT725566GBN4Djn31ed2y+kjv3q3QcAWrGD/3tIw4cP18qVKzVt2rQG7bN7926f92mIhv79bpUBpry8XMHBwXrnnXd0yy23eNZPnjxZxcXFeu+9987bp6ysTGVlZZ7XJSUl6t27t44cOdL0g3hT6r9MduWZFTqjjk37vgHPUEed/XcYrDJt7zjbj/UAQOAzDEM3fTpERUVFyszMbNAcLoZh6KabbvJpn4Zyu93q1auXiouLFRoaesF2rfIrpO+++05VVVWKiIjwWh8REaGDBw/WuU9KSooeffTR89b36tWrWWqs3yQ/vW9gufBHFwDQdD6RJHXr1s3nPRuzT0OcOHHCfAGmMZKTkzV79tn/W6+urtb333+vbt26Nek96bXJsFmu7AQI+qh+9FH96KP60Uf1o48urrKyUj/72c906NAhFRQUXDQwnLvP1VdfrcjISL3//vtNPu+LYRg6ceKEoqKiLtquVQaY7t27q3379iosLPRaX1hYKIfDUec+NptNNpvNa11YWFhzlSi73c4vQz3oo/rRR/Wjj+pHH9WPPqrbypUr9dVXX0mSQkNDG9RHK1euVH5+vt56660GBZ7GaMhxW+Vt1FarVcOHD9fWrVs966qrq7V161Y5nU4/VgYAQGBwu9165JFHdOedd/q8z6RJkzR06NBmrK5+rTLASNLs2bP10ksvafXq1Tpw4ICmT5+u0tJS/frXv/Z3aQAAmF7tBHQLFy70eZ8//OEPzVhZw7TKr5Ak6fbbb9e3336rRYsWyeVyaciQIdq0adN5A3tbms1m0yOPPHLe11U4iz6qH31UP/qofvRR/eijup07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r+vgwYNq3769unTporlz52rWrFlavXq1Dh06pN27d+v555/X6tWrvY4XEhKi22+/XcnJyTp27Jjuvfden2sC0PwYAwOgwbKzs9W/f3/Nnz9fEyZMUElJiRISEpSRkaGwsDBPu4ZcgcnJyfEKLHv27NF//dd/+VzT5Zdfrj179mjJkiVKTk7WN998I5vNptjYWM2dO1e/+c1vJEmPP/64evTooZSUFH311VcKCwvTsGHD9PDDD593zClTpuivf/2rbrzxRkVFRflcE4DmZzHOvV8QAC4iKSlJ//73v7V27doLtjl9+rR69uyp48ePe60fNWqUXnvtNc84mUcffVQul0srV67U559/ruuuu05ut9vzNdQPjRw5UkOGDNGzzz7bZOdzKSwWi9avX69bbrnF36UAbRJfIQFosOzs7HrHqRw4cED9+/f3WmcYhvLz89W1a1fPupycHLndbg0ePFivvvqqIiMjLxqMpJqvi0JCQpSbm9v4k7hE06ZNU0hIiN/eH0ANrsAAaBDDMBQaGqo333xTN954o0/7HjhwQC+99JKefvppz7oBAwZoz5496tixY4OO8X//9386ffq0JKl3796yWq0+1dBUioqK5Ha7JUmRkZEXnEAPQPMiwABocaWlpYqPj9fevXv9XQoAkyLAAAAA02EMDAAAMB0CDAAAMB0CDAAAMB0CDAAAMB0CDAAAMB0CDAAAMB0CDAAAMB0CDAAAMB0CDAAAMB0CDAAAMB0CDAAAMB0CDAAAMJ3/B6+WPCgfPjNNAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "\n", + "scaled['pt_z1_mu1'].plot1d(ax=ax, overlay='dataset');" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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BCAoBBQALh9++KESEhL0+uuv64orrtDIkSP1+OOPq6qqSk888YTGjRun0aNHKzExUePGjdO4ceO0cuXKiJSlsrJShmHo/PPP99jev39/paWlKS0tTQ8++KCam5tVUlKi559/XlOmTNHw4cN1++236/vf/75+9atfuc6744479Omnn7pCi+Ro3pk+fTrNOoAF0QcFgMuePXt044036txzz3VtS09Pl+QY4fLwww+roqJCs2bN0vbt200p4/vvv6+2tjYVFhaqublZlZWVampq0ne/+12P4+x2u8aPH+/6fuTIkfrWt76l559/XldeeaUqKyv1t7/9TY8++mh33wKAAFCDAsBlz549GjdunMe28vJy9e/fX4MGDZIk7du3TxdeeGGn18rPz1d1dbUkadeuXZo+fXpQZcnLy5PNZtOBAwc8tg8fPlx5eXlKTk6W5OhHIklvvPGG9uzZ43p9/PHHHv1QJEdn2f/+7//WiRMntHr1ap133nm64oorgioXgO5BQAEgSTp16pQOHjyo1tZW17a2tjY988wzmjFjhuLiHP9cfPTRR50GFMMwVFtb6xqVs3fvXtcomUD169dP3/3ud/WLX/xCjY2NHR43atQoJSUlqaqqSnl5eR6vIUOGeBx70003KS4uTuvXr9e6det0xx13uPqxALAWAgoASY4QYbPZ9MILL6i8vFz79+/XzTffrLq6Oi1cuNB13L59+9rNVeLts88+U25urse1R48eHXSZfvnLX+rMmTOaMGGCXn75Ze3fv18HDhzQCy+8oE8++US9evVSnz59NH/+fM2bN09r167Vp59+ql27dmnFihVau3atx/XS0tJ08803q7i4WEePHtXtt98edJkAdA/6oACQ5GjeGTlypH7yk59o+vTpqq+v15QpU7R161ZlZma6jgukBqWiosIjkOzevVs/+tGPgi7Teeedp927d6ukpETFxcX6/PPPlZSUpFGjRmn+/Pm66667JEmPPfaYzjnnHJWWluqzzz5TZmamLr74Yi1YsKDdNWfOnKnf/OY3uvbaa5WTkxN0mQB0D5vhPuYOQI9VVFSkf/7zn1q/fn2Hx5w6dUqDBw/WsWPHPLZPnjxZ69atc/VTeeSRR1RdXa2ysjLt2LFD//qv/6qGhgZXM5G3K6+8UuPGjdMzzzwTtvvpCpvNpldffVU33HCD2UUBeiyaeABIctSgdNZPZP/+/Ro5cqTHNsMwVFlZqb59+7q2VVRUqKGhQWPHjtXq1as1cOBAv8FHcjTnpKWlae/evaHfRBfdeeedSktLM+39AZxFDQoAGYahjIwMvfTSS7r22muDOnf//v167rnn9PTTT7u2XXDBBdq9e7d69+4d0DW++OILnTp1SpI0dOhQJSYmBlWGcKmtrVVDQ4MkaeDAgR1OEAcg8ggoAMKqsbFREydO1EcffWR2UQBEMQIKAACwHPqgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAy/l//nd127ENC/YAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "\n", + "scaled['pt_z1_mu2'].plot1d(ax=ax, overlay='dataset');" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.13" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/_sources/reference.rst.txt b/_sources/reference.rst.txt new file mode 100644 index 000000000..e5b5a9a17 --- /dev/null +++ b/_sources/reference.rst.txt @@ -0,0 +1,30 @@ +API Reference Guide +******************* +Coffea: a column object framework for effective analysis. + +When executing + + >>> import coffea + +a subset of the full coffea package is imported into the python environment. +Some packages must be imported explicitly, so as to avoid importing unnecessary +and/or heavy dependencies. Below lists the packages available in the ``coffea`` namespace. + +.. autosummary:: + :toctree: modules + :template: automodapi_templ.rst + + coffea.analysis_tools + coffea.btag_tools + coffea.dataset_tools + coffea.jetmet_tools + coffea.lookup_tools + coffea.lumi_tools + coffea.ml_tools + coffea.nanoevents + coffea.nanoevents.methods.base + coffea.nanoevents.methods.candidate + coffea.nanoevents.methods.nanoaod + coffea.nanoevents.methods.vector + coffea.processor + coffea.util diff --git a/_sources/wq.rst.txt b/_sources/wq.rst.txt new file mode 100644 index 000000000..b0d1421b5 --- /dev/null +++ b/_sources/wq.rst.txt @@ -0,0 +1,101 @@ +.. _intro-coffea-wq: + +Work Queue Executor +=================== + +`Work Queue `_ is a +distributed computing framework used to build large scale manager-worker +applications, developed by the Cooperative Computing Lab +(CCL) at the University of Notre Dame. This executor functions as the +manager program which divides up a Coffea data analysis workload into +discrete tasks. A large number of worker processes running on +cluster or cloud systems will execute the tasks. + +To set up Coffea and Work Queue together, you may need to +create a Conda environment, install the software, and then +create a tarball containing the environment. The tarball is +sent to each worker in order to provide the same environment +as the manager machine. + +.. code-block:: bash + + # Create a new environment + conda create --yes --name coffea-env -c conda-forge python coffea xrootd ndcctools conda conda-pack + conda activate coffea-env + + # Pack the environment into a portable tarball. + conda-pack --output coffea-env.tar.gz + +To run an analysis, you must set up a work queue executor +with appropriate arguments. Here is a complete example: + +.. literalinclude:: wq-example.py + :language: Python + +When executing this example, +you should see that Coffea begins to run, and a progress bar +shows the creation of tasks. Workers are created locally using the factory +declared. + +You can also launch workers outside python. For testing purposes, you can start +a single worker on the same machine, and direct it to connect to your manager +process, like this: + +.. code-block:: + + work_queue_worker -P password.txt 9123 + +Or: + +.. code-block:: + + work_queue_worker -P password.txt -M coffea-wq-${USER} + +With a single worker, the process will be gradual as it completes +one task (or a few tasks) at a time. The output will be similar to this: + +.. code-block:: + + ------------------------------------------------ + Example Coffea Analysis with Work Queue Executor + ------------------------------------------------ + Manager Name: -M coffea-wq-btovar + ------------------------------------------------ + Listening for work queue workers on port 9123. + submitted preprocessing task id 1 item pre_0, with 1 file + submitted preprocessing task id 2 item pre_1, with 1 file + preprocessing task id 2 item pre_1 with 1 events on localhost. return code 0 (success) + allocated cores: 2.0, memory: 1000 MB, disk 2000 MB, gpus: 0.0 + measured cores: 0.3, memory: 120 MB, disk 6 MB, gpus: 0.0, runtime 3.1 s + preprocessing task id 1 item pre_0 with 1 events on localhost. return code 0 (success) + allocated cores: 2.0, memory: 1000 MB, disk 2000 MB, gpus: 0.0 + measured cores: 0.3, memory: 120 MB, disk 6 MB, gpus: 0.0, runtime 2.9 s + submitted processing task id 3 item p_2, with 100056 event + submitted processing task id 4 item p_3, with 100056 event + submitted processing task id 5 item p_4, with 100056 event + submitted processing task id 6 item p_5, with 100056 event + Preprocessing 100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2/2 [ 0:00:06 < 0:00:00 | 0.3 file/s ] + Submitted 0% 0/400224 [ 0:00:00 < -:--:-- | ? event/s ] + Processed 0% 0/400224 [ 0:00:00 < -:--:-- | ? event/s ] + Accumulated 0% 0/1 [ 0:00:00 < -:--:-- | ? tasks/s ] + + +To run at larger scale, you will need to run a large number +of workers on a cluster or other infrastructure. For example, +to submit 32 workers to an HTCondor pool: + +.. code-block:: + + condor_submit_workers -M coffea-wq-${USER} -P password.txt 1 + + +Similarly, you can run the worker's factory outside the manager. In that way, +you can have the manager and the factory running on different machines: + +.. code-block:: + + work_queue_factory -T condor -M coffea-wq-${USER} -P password.txt --max-workers 10 --cores 8 --python-env=env.tar.gz + +For more information on starting and managing workers +on various batch systems and clusters, see the +`Work Queue `_ documentation diff --git a/_static/_sphinx_javascript_frameworks_compat.js b/_static/_sphinx_javascript_frameworks_compat.js new file mode 100644 index 000000000..81415803e --- /dev/null +++ b/_static/_sphinx_javascript_frameworks_compat.js @@ -0,0 +1,123 @@ +/* Compatability shim for jQuery and underscores.js. + * + * Copyright Sphinx contributors + * Released under the two clause BSD licence + */ + +/** + * small helper function to urldecode strings + * + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL + */ +jQuery.urldecode = function(x) { + if (!x) { + return x + } + return decodeURIComponent(x.replace(/\+/g, ' ')); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} diff --git a/_static/basic.css b/_static/basic.css new file mode 100644 index 000000000..f316efcb4 --- /dev/null +++ b/_static/basic.css @@ -0,0 +1,925 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +a:visited { + color: #551A8B; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +nav.contents, +aside.topic, +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/_static/check-solid.svg b/_static/check-solid.svg new file mode 100644 index 000000000..92fad4b5c --- /dev/null +++ b/_static/check-solid.svg @@ -0,0 +1,4 @@ + + + + diff --git a/_static/clipboard.min.js b/_static/clipboard.min.js new file mode 100644 index 000000000..54b3c4638 --- /dev/null +++ b/_static/clipboard.min.js @@ -0,0 +1,7 @@ +/*! + * clipboard.js v2.0.8 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return o}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),c=n.n(e);function a(t){try{return document.execCommand(t)}catch(t){return}}var f=function(t){t=c()(t);return a("cut"),t};var l=function(t){var e,n,o,r=1 + + + + diff --git a/_static/copybutton.css b/_static/copybutton.css new file mode 100644 index 000000000..f1916ec7d --- /dev/null +++ b/_static/copybutton.css @@ -0,0 +1,94 @@ +/* Copy buttons */ +button.copybtn { + position: absolute; + display: flex; + top: .3em; + right: .3em; + width: 1.7em; + height: 1.7em; + opacity: 0; + transition: opacity 0.3s, border .3s, background-color .3s; + user-select: none; + padding: 0; + border: none; + outline: none; + border-radius: 0.4em; + /* The colors that GitHub uses */ + border: #1b1f2426 1px solid; + background-color: #f6f8fa; + color: #57606a; +} + +button.copybtn.success { + border-color: #22863a; + color: #22863a; +} + +button.copybtn svg { + stroke: currentColor; + width: 1.5em; + height: 1.5em; + padding: 0.1em; +} + +div.highlight { + position: relative; +} + +/* Show the copybutton */ +.highlight:hover button.copybtn, button.copybtn.success { + opacity: 1; +} + +.highlight button.copybtn:hover { + background-color: rgb(235, 235, 235); +} + +.highlight button.copybtn:active { + background-color: rgb(187, 187, 187); +} + +/** + * A minimal CSS-only tooltip copied from: + * https://codepen.io/mildrenben/pen/rVBrpK + * + * To use, write HTML like the following: + * + *

Short

+ */ + .o-tooltip--left { + position: relative; + } + + .o-tooltip--left:after { + opacity: 0; + visibility: hidden; + position: absolute; + content: attr(data-tooltip); + padding: .2em; + font-size: .8em; + left: -.2em; + background: grey; + color: white; + white-space: nowrap; + z-index: 2; + border-radius: 2px; + transform: translateX(-102%) translateY(0); + transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1); +} + +.o-tooltip--left:hover:after { + display: block; + opacity: 1; + visibility: visible; + transform: translateX(-100%) translateY(0); + transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1); + transition-delay: .5s; +} + +/* By default the copy button shouldn't show up when printing a page */ +@media print { + button.copybtn { + display: none; + } +} diff --git a/_static/copybutton.js b/_static/copybutton.js new file mode 100644 index 000000000..1efcd51da --- /dev/null +++ b/_static/copybutton.js @@ -0,0 +1,248 @@ +// Localization support +const messages = { + 'en': { + 'copy': 'Copy', + 'copy_to_clipboard': 'Copy to clipboard', + 'copy_success': 'Copied!', + 'copy_failure': 'Failed to copy', + }, + 'es' : { + 'copy': 'Copiar', + 'copy_to_clipboard': 'Copiar al portapapeles', + 'copy_success': '¡Copiado!', + 'copy_failure': 'Error al copiar', + }, + 'de' : { + 'copy': 'Kopieren', + 'copy_to_clipboard': 'In die Zwischenablage kopieren', + 'copy_success': 'Kopiert!', + 'copy_failure': 'Fehler beim Kopieren', + }, + 'fr' : { + 'copy': 'Copier', + 'copy_to_clipboard': 'Copier dans le presse-papier', + 'copy_success': 'Copié !', + 'copy_failure': 'Échec de la copie', + }, + 'ru': { + 'copy': 'Скопировать', + 'copy_to_clipboard': 'Скопировать в буфер', + 'copy_success': 'Скопировано!', + 'copy_failure': 'Не удалось скопировать', + }, + 'zh-CN': { + 'copy': '复制', + 'copy_to_clipboard': '复制到剪贴板', + 'copy_success': '复制成功!', + 'copy_failure': '复制失败', + }, + 'it' : { + 'copy': 'Copiare', + 'copy_to_clipboard': 'Copiato negli appunti', + 'copy_success': 'Copiato!', + 'copy_failure': 'Errore durante la copia', + } +} + +let locale = 'en' +if( document.documentElement.lang !== undefined + && messages[document.documentElement.lang] !== undefined ) { + locale = document.documentElement.lang +} + +let doc_url_root = DOCUMENTATION_OPTIONS.URL_ROOT; +if (doc_url_root == '#') { + doc_url_root = ''; +} + +/** + * SVG files for our copy buttons + */ +let iconCheck = ` + ${messages[locale]['copy_success']} + + +` + +// If the user specified their own SVG use that, otherwise use the default +let iconCopy = ``; +if (!iconCopy) { + iconCopy = ` + ${messages[locale]['copy_to_clipboard']} + + + +` +} + +/** + * Set up copy/paste for code blocks + */ + +const runWhenDOMLoaded = cb => { + if (document.readyState != 'loading') { + cb() + } else if (document.addEventListener) { + document.addEventListener('DOMContentLoaded', cb) + } else { + document.attachEvent('onreadystatechange', function() { + if (document.readyState == 'complete') cb() + }) + } +} + +const codeCellId = index => `codecell${index}` + +// Clears selected text since ClipboardJS will select the text when copying +const clearSelection = () => { + if (window.getSelection) { + window.getSelection().removeAllRanges() + } else if (document.selection) { + document.selection.empty() + } +} + +// Changes tooltip text for a moment, then changes it back +// We want the timeout of our `success` class to be a bit shorter than the +// tooltip and icon change, so that we can hide the icon before changing back. +var timeoutIcon = 2000; +var timeoutSuccessClass = 1500; + +const temporarilyChangeTooltip = (el, oldText, newText) => { + el.setAttribute('data-tooltip', newText) + el.classList.add('success') + // Remove success a little bit sooner than we change the tooltip + // So that we can use CSS to hide the copybutton first + setTimeout(() => el.classList.remove('success'), timeoutSuccessClass) + setTimeout(() => el.setAttribute('data-tooltip', oldText), timeoutIcon) +} + +// Changes the copy button icon for two seconds, then changes it back +const temporarilyChangeIcon = (el) => { + el.innerHTML = iconCheck; + setTimeout(() => {el.innerHTML = iconCopy}, timeoutIcon) +} + +const addCopyButtonToCodeCells = () => { + // If ClipboardJS hasn't loaded, wait a bit and try again. This + // happens because we load ClipboardJS asynchronously. + if (window.ClipboardJS === undefined) { + setTimeout(addCopyButtonToCodeCells, 250) + return + } + + // Add copybuttons to all of our code cells + const COPYBUTTON_SELECTOR = 'div.highlight pre'; + const codeCells = document.querySelectorAll(COPYBUTTON_SELECTOR) + codeCells.forEach((codeCell, index) => { + const id = codeCellId(index) + codeCell.setAttribute('id', id) + + const clipboardButton = id => + `` + codeCell.insertAdjacentHTML('afterend', clipboardButton(id)) + }) + +function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string +} + +/** + * Removes excluded text from a Node. + * + * @param {Node} target Node to filter. + * @param {string} exclude CSS selector of nodes to exclude. + * @returns {DOMString} Text from `target` with text removed. + */ +function filterText(target, exclude) { + const clone = target.cloneNode(true); // clone as to not modify the live DOM + if (exclude) { + // remove excluded nodes + clone.querySelectorAll(exclude).forEach(node => node.remove()); + } + return clone.innerText; +} + +// Callback when a copy button is clicked. Will be passed the node that was clicked +// should then grab the text and replace pieces of text that shouldn't be used in output +function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = "", hereDocDelim = "") { + var regexp; + var match; + + // Do we check for line continuation characters and "HERE-documents"? + var useLineCont = !!lineContinuationChar + var useHereDoc = !!hereDocDelim + + // create regexp to capture prompt and remaining line + if (isRegexp) { + regexp = new RegExp('^(' + copybuttonPromptText + ')(.*)') + } else { + regexp = new RegExp('^(' + escapeRegExp(copybuttonPromptText) + ')(.*)') + } + + const outputLines = []; + var promptFound = false; + var gotLineCont = false; + var gotHereDoc = false; + const lineGotPrompt = []; + for (const line of textContent.split('\n')) { + match = line.match(regexp) + if (match || gotLineCont || gotHereDoc) { + promptFound = regexp.test(line) + lineGotPrompt.push(promptFound) + if (removePrompts && promptFound) { + outputLines.push(match[2]) + } else { + outputLines.push(line) + } + gotLineCont = line.endsWith(lineContinuationChar) & useLineCont + if (line.includes(hereDocDelim) & useHereDoc) + gotHereDoc = !gotHereDoc + } else if (!onlyCopyPromptLines) { + outputLines.push(line) + } else if (copyEmptyLines && line.trim() === '') { + outputLines.push(line) + } + } + + // If no lines with the prompt were found then just use original lines + if (lineGotPrompt.some(v => v === true)) { + textContent = outputLines.join('\n'); + } + + // Remove a trailing newline to avoid auto-running when pasting + if (textContent.endsWith("\n")) { + textContent = textContent.slice(0, -1) + } + return textContent +} + + +var copyTargetText = (trigger) => { + var target = document.querySelector(trigger.attributes['data-clipboard-target'].value); + + // get filtered text + let exclude = '.linenos'; + + let text = filterText(target, exclude); + return formatCopyText(text, '>>> |\\.\\.\\. |\\$ ', true, true, true, true, '', 'EOF') +} + + // Initialize with a callback so we can modify the text before copy + const clipboard = new ClipboardJS('.copybtn', {text: copyTargetText}) + + // Update UI with error/success messages + clipboard.on('success', event => { + clearSelection() + temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_success']) + temporarilyChangeIcon(event.trigger) + }) + + clipboard.on('error', event => { + temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_failure']) + }) +} + +runWhenDOMLoaded(addCopyButtonToCodeCells) \ No newline at end of file diff --git a/_static/copybutton_funcs.js b/_static/copybutton_funcs.js new file mode 100644 index 000000000..dbe1aaad7 --- /dev/null +++ b/_static/copybutton_funcs.js @@ -0,0 +1,73 @@ +function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string +} + +/** + * Removes excluded text from a Node. + * + * @param {Node} target Node to filter. + * @param {string} exclude CSS selector of nodes to exclude. + * @returns {DOMString} Text from `target` with text removed. + */ +export function filterText(target, exclude) { + const clone = target.cloneNode(true); // clone as to not modify the live DOM + if (exclude) { + // remove excluded nodes + clone.querySelectorAll(exclude).forEach(node => node.remove()); + } + return clone.innerText; +} + +// Callback when a copy button is clicked. Will be passed the node that was clicked +// should then grab the text and replace pieces of text that shouldn't be used in output +export function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = "", hereDocDelim = "") { + var regexp; + var match; + + // Do we check for line continuation characters and "HERE-documents"? + var useLineCont = !!lineContinuationChar + var useHereDoc = !!hereDocDelim + + // create regexp to capture prompt and remaining line + if (isRegexp) { + regexp = new RegExp('^(' + copybuttonPromptText + ')(.*)') + } else { + regexp = new RegExp('^(' + escapeRegExp(copybuttonPromptText) + ')(.*)') + } + + const outputLines = []; + var promptFound = false; + var gotLineCont = false; + var gotHereDoc = false; + const lineGotPrompt = []; + for (const line of textContent.split('\n')) { + match = line.match(regexp) + if (match || gotLineCont || gotHereDoc) { + promptFound = regexp.test(line) + lineGotPrompt.push(promptFound) + if (removePrompts && promptFound) { + outputLines.push(match[2]) + } else { + outputLines.push(line) + } + gotLineCont = line.endsWith(lineContinuationChar) & useLineCont + if (line.includes(hereDocDelim) & useHereDoc) + gotHereDoc = !gotHereDoc + } else if (!onlyCopyPromptLines) { + outputLines.push(line) + } else if (copyEmptyLines && line.trim() === '') { + outputLines.push(line) + } + } + + // If no lines with the prompt were found then just use original lines + if (lineGotPrompt.some(v => v === true)) { + textContent = outputLines.join('\n'); + } + + // Remove a trailing newline to avoid auto-running when pasting + if (textContent.endsWith("\n")) { + textContent = textContent.slice(0, -1) + } + return textContent +} diff --git a/_static/css/badge_only.css b/_static/css/badge_only.css new file mode 100644 index 000000000..c718cee44 --- /dev/null +++ b/_static/css/badge_only.css @@ -0,0 +1 @@ +.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} \ No newline at end of file diff --git a/_static/css/fonts/Roboto-Slab-Bold.woff b/_static/css/fonts/Roboto-Slab-Bold.woff new file mode 100644 index 000000000..6cb600001 Binary files /dev/null and b/_static/css/fonts/Roboto-Slab-Bold.woff differ diff --git a/_static/css/fonts/Roboto-Slab-Bold.woff2 b/_static/css/fonts/Roboto-Slab-Bold.woff2 new file mode 100644 index 000000000..7059e2314 Binary files /dev/null and b/_static/css/fonts/Roboto-Slab-Bold.woff2 differ diff --git a/_static/css/fonts/Roboto-Slab-Regular.woff b/_static/css/fonts/Roboto-Slab-Regular.woff new file mode 100644 index 000000000..f815f63f9 Binary files /dev/null and b/_static/css/fonts/Roboto-Slab-Regular.woff differ diff --git a/_static/css/fonts/Roboto-Slab-Regular.woff2 b/_static/css/fonts/Roboto-Slab-Regular.woff2 new file mode 100644 index 000000000..f2c76e5bd Binary files /dev/null and b/_static/css/fonts/Roboto-Slab-Regular.woff2 differ diff --git a/_static/css/fonts/fontawesome-webfont.eot b/_static/css/fonts/fontawesome-webfont.eot new file mode 100644 index 000000000..e9f60ca95 Binary files /dev/null and b/_static/css/fonts/fontawesome-webfont.eot differ diff --git a/_static/css/fonts/fontawesome-webfont.svg b/_static/css/fonts/fontawesome-webfont.svg new file mode 100644 index 000000000..855c845e5 --- /dev/null +++ b/_static/css/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/_static/css/fonts/fontawesome-webfont.ttf b/_static/css/fonts/fontawesome-webfont.ttf new file mode 100644 index 000000000..35acda2fa Binary files /dev/null and b/_static/css/fonts/fontawesome-webfont.ttf differ diff --git a/_static/css/fonts/fontawesome-webfont.woff b/_static/css/fonts/fontawesome-webfont.woff new file mode 100644 index 000000000..400014a4b Binary files /dev/null and b/_static/css/fonts/fontawesome-webfont.woff differ diff --git a/_static/css/fonts/fontawesome-webfont.woff2 b/_static/css/fonts/fontawesome-webfont.woff2 new file mode 100644 index 000000000..4d13fc604 Binary files /dev/null and b/_static/css/fonts/fontawesome-webfont.woff2 differ diff --git a/_static/css/fonts/lato-bold-italic.woff b/_static/css/fonts/lato-bold-italic.woff new file mode 100644 index 000000000..88ad05b9f Binary files /dev/null and b/_static/css/fonts/lato-bold-italic.woff differ diff --git a/_static/css/fonts/lato-bold-italic.woff2 b/_static/css/fonts/lato-bold-italic.woff2 new file mode 100644 index 000000000..c4e3d804b Binary files /dev/null and b/_static/css/fonts/lato-bold-italic.woff2 differ diff --git a/_static/css/fonts/lato-bold.woff b/_static/css/fonts/lato-bold.woff new file mode 100644 index 000000000..c6dff51f0 Binary files /dev/null and b/_static/css/fonts/lato-bold.woff differ diff --git a/_static/css/fonts/lato-bold.woff2 b/_static/css/fonts/lato-bold.woff2 new file mode 100644 index 000000000..bb195043c Binary files /dev/null and b/_static/css/fonts/lato-bold.woff2 differ diff --git a/_static/css/fonts/lato-normal-italic.woff b/_static/css/fonts/lato-normal-italic.woff new file mode 100644 index 000000000..76114bc03 Binary files /dev/null and b/_static/css/fonts/lato-normal-italic.woff differ diff --git a/_static/css/fonts/lato-normal-italic.woff2 b/_static/css/fonts/lato-normal-italic.woff2 new file mode 100644 index 000000000..3404f37e2 Binary files /dev/null and b/_static/css/fonts/lato-normal-italic.woff2 differ diff --git a/_static/css/fonts/lato-normal.woff b/_static/css/fonts/lato-normal.woff new file mode 100644 index 000000000..ae1307ff5 Binary files /dev/null and b/_static/css/fonts/lato-normal.woff differ diff --git a/_static/css/fonts/lato-normal.woff2 b/_static/css/fonts/lato-normal.woff2 new file mode 100644 index 000000000..3bf984332 Binary files /dev/null and b/_static/css/fonts/lato-normal.woff2 differ diff --git a/_static/css/theme.css b/_static/css/theme.css new file mode 100644 index 000000000..19a446a0e --- /dev/null +++ b/_static/css/theme.css @@ -0,0 +1,4 @@ +html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden],audio:not([controls]){display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;text-decoration:none}ins,mark{color:#000}mark{background:#ff0;font-style:italic;font-weight:700}.rst-content code,.rst-content tt,code,kbd,pre,samp{font-family:monospace,serif;_font-family:courier new,monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:after,q:before{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,ol,ul{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure,form{margin:0}label{cursor:pointer}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{body,html,section{background:none!important}*{box-shadow:none!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}.rst-content .toctree-wrapper>p.caption,h2,h3,p{orphans:3;widows:3}.rst-content .toctree-wrapper>p.caption,h2,h3{page-break-after:avoid}}.btn,.fa:before,.icon:before,.rst-content .admonition,.rst-content .admonition-title:before,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .code-block-caption .headerlink:before,.rst-content .danger,.rst-content .eqno .headerlink:before,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-alert,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .eqno .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .eqno .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .eqno .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li button.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content .eqno a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content .eqno .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p .btn .headerlink,.rst-content p .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li button.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .eqno .btn .fa-large.headerlink,.rst-content .eqno .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p .btn .fa-large.headerlink,.rst-content p .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .eqno .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li button.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .eqno .btn .fa-spin.headerlink,.rst-content .eqno .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p .btn .fa-spin.headerlink,.rst-content p .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content .eqno .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content p .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content .eqno .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content p .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li button.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content .eqno .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini button.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27ae60}.wy-tray-container li.wy-tray-item-info{background:#2980b9}.wy-tray-container li.wy-tray-item-warning{background:#e67e22}.wy-tray-container li.wy-tray-item-danger{background:#e74c3c}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width:768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980b9!important}.btn-info:hover{background-color:#2e8ece!important}.btn-neutral{background-color:#f3f6f6!important;color:#404040!important}.btn-neutral:hover{background-color:#e5ebeb!important;color:#404040}.btn-neutral:visited{color:#404040!important}.btn-success{background-color:#27ae60!important}.btn-success:hover{background-color:#295!important}.btn-danger{background-color:#e74c3c!important}.btn-danger:hover{background-color:#ea6153!important}.btn-warning{background-color:#e67e22!important}.btn-warning:hover{background-color:#e98b39!important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f!important}.btn-link{background-color:transparent!important;color:#2980b9;box-shadow:none;border-color:transparent!important}.btn-link:active,.btn-link:hover{background-color:transparent!important;color:#409ad5!important;box-shadow:none}.btn-link:visited{color:#9b59b6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:after,.wy-btn-group:before{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980b9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:1px solid #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type=search]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980b9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#e74c3c}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.wy-control-group .wy-form-full input[type=search],.wy-control-group .wy-form-full input[type=tel],.wy-control-group .wy-form-full input[type=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.wy-control-group .wy-form-halves input[type=search],.wy-control-group .wy-form-halves input[type=tel],.wy-control-group .wy-form-halves input[type=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.wy-control-group .wy-form-thirds input[type=search],.wy-control-group .wy-form-thirds input[type=tel],.wy-control-group .wy-form-thirds input[type=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child,.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;*overflow:visible}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]:focus:invalid:focus{outline-color:#e74c3c}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:1px solid #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27ae60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#e74c3c}.wy-control-group.wy-control-group-error input[type=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.wy-control-group.wy-control-group-error input[type=search],.wy-control-group.wy-control-group-error input[type=tel],.wy-control-group.wy-control-group-error input[type=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27ae60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#e74c3c}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#e67e22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980b9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width:480px){.wy-form button[type=submit]{margin:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width:768px){.tablet-hide{display:none}}@media screen and (max-width:480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0!important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980b9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9b59b6}html{height:100%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#e67e22!important}a.wy-text-warning:hover{color:#eb9950!important}.wy-text-info{color:#2980b9!important}a.wy-text-info:hover{color:#409ad5!important}.wy-text-success{color:#27ae60!important}a.wy-text-success:hover{color:#36d278!important}.wy-text-danger{color:#e74c3c!important}a.wy-text-danger:hover{color:#ed7669!important}.wy-text-neutral{color:#404040!important}a.wy-text-neutral:hover{color:#595959!important}.rst-content .toctree-wrapper>p.caption,h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif}p{line-height:24px;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.rst-content section ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.rst-content section ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.rst-content section ul li p:last-child,.rst-content section ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.rst-content section ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.rst-content section ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.rst-content section ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs>li{display:inline-block;padding-top:5px}.wy-breadcrumbs>li.wy-breadcrumbs-aside{float:right}.rst-content .wy-breadcrumbs>li code,.rst-content .wy-breadcrumbs>li tt,.wy-breadcrumbs>li .rst-content tt,.wy-breadcrumbs>li code{all:inherit;color:inherit}.breadcrumb-item:before{content:"/";color:#bbb;font-size:13px;padding:0 6px 0 3px}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 1.618em .4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 button.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 button.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em;max-width:100%}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search>a:hover{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.version{margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-nav .wy-menu-vertical header{color:#2980b9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980b9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980b9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width:768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60;*zoom:1}.rst-versions .rst-current-version:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .eqno .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content .eqno .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}.rst-content .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.rst-content section>a>img,.rst-content section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.rst-content section ol.loweralpha,.rst-content section ol.loweralpha>li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha>li,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.rst-content section ol.upperalpha,.rst-content section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.rst-content section ol li>*,.rst-content section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.rst-content section ol li>:first-child,.rst-content section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.rst-content section ol li>p,.rst-content section ol li>p:last-child,.rst-content section ul li>p,.rst-content section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.rst-content section ol li>p:only-child,.rst-content section ol li>p:only-child:last-child,.rst-content section ul li>p:only-child,.rst-content section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.rst-content section ol li>ol,.rst-content section ol li>ul,.rst-content section ul li>ol,.rst-content section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.rst-content section ol.simple li>*,.rst-content section ol.simple li ol,.rst-content section ol.simple li ul,.rst-content section ul.simple li>*,.rst-content section ul.simple li ol,.rst-content section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content p a{overflow-wrap:anywhere}.rst-content .wy-table td p,.rst-content .wy-table td ul,.rst-content .wy-table th p,.rst-content .wy-table th ul,.rst-content table.docutils td p,.rst-content table.docutils td ul,.rst-content table.docutils th p,.rst-content table.docutils th ul,.rst-content table.field-list td p,.rst-content table.field-list td ul,.rst-content table.field-list th p,.rst-content table.field-list th ul{font-size:inherit}.rst-content .btn:focus{outline:2px solid}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .citation-reference>span.fn-bracket,.rst-content .footnote-reference>span.fn-bracket{display:none}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:auto minmax(80%,95%)}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{display:inline-grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{display:grid;grid-template-columns:auto auto minmax(.65rem,auto) minmax(40%,95%)}html.writer-html5 .rst-content aside.citation>span.label,html.writer-html5 .rst-content aside.footnote>span.label,html.writer-html5 .rst-content div.citation>span.label{grid-column-start:1;grid-column-end:2}html.writer-html5 .rst-content aside.citation>span.backrefs,html.writer-html5 .rst-content aside.footnote>span.backrefs,html.writer-html5 .rst-content div.citation>span.backrefs{grid-column-start:2;grid-column-end:3;grid-row-start:1;grid-row-end:3}html.writer-html5 .rst-content aside.citation>p,html.writer-html5 .rst-content aside.footnote>p,html.writer-html5 .rst-content div.citation>p{grid-column-start:4;grid-column-end:5}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{margin-bottom:24px}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.citation>dt>span.brackets:before,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.citation>dt>span.brackets:after,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a{word-break:keep-all}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a:not(:first-child):before,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.citation>dd p,html.writer-html5 .rst-content dl.footnote>dd p{font-size:.9rem}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{padding-left:1rem;padding-right:1rem;font-size:.9rem;line-height:1.2rem}html.writer-html5 .rst-content aside.citation p,html.writer-html5 .rst-content aside.footnote p,html.writer-html5 .rst-content div.citation p{font-size:.9rem;line-height:1.2rem;margin-bottom:12px}html.writer-html5 .rst-content aside.citation span.backrefs,html.writer-html5 .rst-content aside.footnote span.backrefs,html.writer-html5 .rst-content div.citation span.backrefs{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content aside.citation span.backrefs>a,html.writer-html5 .rst-content aside.footnote span.backrefs>a,html.writer-html5 .rst-content div.citation span.backrefs>a{word-break:keep-all}html.writer-html5 .rst-content aside.citation span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content aside.footnote span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content div.citation span.backrefs>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content aside.citation span.label,html.writer-html5 .rst-content aside.footnote span.label,html.writer-html5 .rst-content div.citation span.label{line-height:1.2rem}html.writer-html5 .rst-content aside.citation-list,html.writer-html5 .rst-content aside.footnote-list,html.writer-html5 .rst-content div.citation-list{margin-bottom:24px}html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content aside.footnote-list aside.footnote,html.writer-html5 .rst-content div.citation-list>div.citation,html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content aside.footnote-list aside.footnote code,html.writer-html5 .rst-content aside.footnote-list aside.footnote tt,html.writer-html5 .rst-content aside.footnote code,html.writer-html5 .rst-content aside.footnote tt,html.writer-html5 .rst-content div.citation-list>div.citation code,html.writer-html5 .rst-content div.citation-list>div.citation tt,html.writer-html5 .rst-content dl.citation code,html.writer-html5 .rst-content dl.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040;overflow-wrap:normal}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl dd>ol:last-child,.rst-content dl dd>p:last-child,.rst-content dl dd>table:last-child,.rst-content dl dd>ul:last-child{margin-bottom:0}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.rst-content .viewcode-back,.rst-content .viewcode-link{display:inline-block;color:#27ae60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel,.rst-content .menuselection{font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .guilabel,.rst-content .menuselection{border:1px solid #7fbbe3;background:#e7f2fa}.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>.kbd,.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>kbd{color:inherit;font-size:80%;background-color:#fff;border:1px solid #a6a6a6;border-radius:4px;box-shadow:0 2px grey;padding:2.4px 6px;margin:auto 0}.rst-content .versionmodified{font-style:italic}@media screen and (max-width:480px){.rst-content .sidebar{width:100%}}span[id*=MathJax-Span]{color:#404040}.math{text-align:center}@font-face{font-family:Lato;src:url(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block} \ No newline at end of file diff --git a/_static/doctools.js b/_static/doctools.js new file mode 100644 index 000000000..4d67807d1 --- /dev/null +++ b/_static/doctools.js @@ -0,0 +1,156 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Base JavaScript utilities for all Sphinx HTML documentation. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); + } +}; + +/** + * Small JavaScript module for the documentation. + */ +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); + }, + + /** + * i18n support + */ + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } + }, + + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; + }, + + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; + }, + + /** + * helper function to focus on search bar + */ + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); + }, + + /** + * Initialise the domain index toggle buttons + */ + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); + }, + + initOnKeyListeners: () => { + // only install a listener if it is really needed + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { + switch (event.key) { + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + } + } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } + }); + }, +}; + +// quick alias for translations +const _ = Documentation.gettext; + +_ready(Documentation.init); diff --git a/_static/documentation_options.js b/_static/documentation_options.js new file mode 100644 index 000000000..2e79dbc62 --- /dev/null +++ b/_static/documentation_options.js @@ -0,0 +1,13 @@ +const DOCUMENTATION_OPTIONS = { + VERSION: '2024.8.4.dev4+g4f3a673e', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, +}; \ No newline at end of file diff --git a/_static/file.png b/_static/file.png new file mode 100644 index 000000000..a858a410e Binary files /dev/null and b/_static/file.png differ diff --git a/_static/graphviz.css b/_static/graphviz.css new file mode 100644 index 000000000..027576e34 --- /dev/null +++ b/_static/graphviz.css @@ -0,0 +1,19 @@ +/* + * graphviz.css + * ~~~~~~~~~~~~ + * + * Sphinx stylesheet -- graphviz extension. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +img.graphviz { + border: 0; + max-width: 100%; +} + +object.graphviz { + max-width: 100%; +} diff --git a/_static/jquery.js b/_static/jquery.js new file mode 100644 index 000000000..c4c6022f2 --- /dev/null +++ b/_static/jquery.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=y.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=y.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),y.elements=c+" "+a,j(b)}function f(a){var b=x[a[v]];return b||(b={},w++,a[v]=w,x[w]=b),b}function g(a,c,d){if(c||(c=b),q)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():u.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||t.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),q)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return y.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(y,b.frag)}function j(a){a||(a=b);var d=f(a);return!y.shivCSS||p||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),q||i(a,d),a}function k(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(l(b)));return g}function l(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(A+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function m(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+A+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function n(a){for(var b=a.length;b--;)a[b].removeNode()}function o(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,e,g=f(a),h=a.namespaces,i=a.parentWindow;return!B||a.printShived?a:("undefined"==typeof h[A]&&h.add(A),i.attachEvent("onbeforeprint",function(){b();for(var f,g,h,i=a.styleSheets,j=[],l=i.length,n=Array(l);l--;)n[l]=i[l];for(;h=n.pop();)if(!h.disabled&&z.test(h.media)){try{f=h.imports,g=f.length}catch(o){g=0}for(l=0;g>l;l++)n.push(f[l]);try{j.push(h.cssText)}catch(o){}}j=m(j.reverse().join("")),e=k(a),d=c(a,j)}),i.attachEvent("onafterprint",function(){n(e),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var p,q,r="3.7.3",s=a.html5||{},t=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,u=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",w=0,x={};!function(){try{var a=b.createElement("a");a.innerHTML="",p="hidden"in a,q=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){p=!0,q=!0}}();var y={elements:s.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:r,shivCSS:s.shivCSS!==!1,supportsUnknownElements:q,shivMethods:s.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=y,j(b);var z=/^$|\b(?:all|print)\b/,A="html5shiv",B=!q&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();y.type+=" print",y.shivPrint=o,o(b),"object"==typeof module&&module.exports&&(module.exports=y)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/_static/js/html5shiv.min.js b/_static/js/html5shiv.min.js new file mode 100644 index 000000000..cd1c674f5 --- /dev/null +++ b/_static/js/html5shiv.min.js @@ -0,0 +1,4 @@ +/** +* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed +*/ +!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3-pre",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/_static/js/theme.js b/_static/js/theme.js new file mode 100644 index 000000000..1fddb6ee4 --- /dev/null +++ b/_static/js/theme.js @@ -0,0 +1 @@ +!function(n){var e={};function t(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{}};return n[i].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=n,t.c=e,t.d=function(n,e,i){t.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:i})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,e){if(1&e&&(n=t(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var i=Object.create(null);if(t.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var o in n)t.d(i,o,function(e){return n[e]}.bind(null,o));return i},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},t.p="",t(t.s=0)}([function(n,e,t){t(1),n.exports=t(3)},function(n,e,t){(function(){var e="undefined"!=typeof window?window.jQuery:t(2);n.exports.ThemeNav={navBar:null,win:null,winScroll:!1,winResize:!1,linkScroll:!1,winPosition:0,winHeight:null,docHeight:null,isRunning:!1,enable:function(n){var t=this;void 0===n&&(n=!0),t.isRunning||(t.isRunning=!0,e((function(e){t.init(e),t.reset(),t.win.on("hashchange",t.reset),n&&t.win.on("scroll",(function(){t.linkScroll||t.winScroll||(t.winScroll=!0,requestAnimationFrame((function(){t.onScroll()})))})),t.win.on("resize",(function(){t.winResize||(t.winResize=!0,requestAnimationFrame((function(){t.onResize()})))})),t.onResize()})))},enableSticky:function(){this.enable(!0)},init:function(n){n(document);var e=this;this.navBar=n("div.wy-side-scroll:first"),this.win=n(window),n(document).on("click","[data-toggle='wy-nav-top']",(function(){n("[data-toggle='wy-nav-shift']").toggleClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift")})).on("click",".wy-menu-vertical .current ul li a",(function(){var t=n(this);n("[data-toggle='wy-nav-shift']").removeClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift"),e.toggleCurrent(t),e.hashChange()})).on("click","[data-toggle='rst-current-version']",(function(){n("[data-toggle='rst-versions']").toggleClass("shift-up")})),n("table.docutils:not(.field-list,.footnote,.citation)").wrap("
"),n("table.docutils.footnote").wrap("
"),n("table.docutils.citation").wrap("
"),n(".wy-menu-vertical ul").not(".simple").siblings("a").each((function(){var t=n(this);expand=n(''),expand.on("click",(function(n){return e.toggleCurrent(t),n.stopPropagation(),!1})),t.prepend(expand)}))},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),t=e.find('[href="'+n+'"]');if(0===t.length){var i=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(t=e.find('[href="#'+i.attr("id")+'"]')).length&&(t=e.find('[href="#"]'))}if(t.length>0){$(".wy-menu-vertical .current").removeClass("current").attr("aria-expanded","false"),t.addClass("current").attr("aria-expanded","true"),t.closest("li.toctree-l1").parent().addClass("current").attr("aria-expanded","true");for(let n=1;n<=10;n++)t.closest("li.toctree-l"+n).addClass("current").attr("aria-expanded","true");t[0].scrollIntoView()}}catch(n){console.log("Error expanding nav for anchor",n)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,t=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(t),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",(function(){this.linkScroll=!1}))},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current").attr("aria-expanded","false"),e.siblings().find("li.current").removeClass("current").attr("aria-expanded","false");var t=e.find("> ul li");t.length&&(t.removeClass("current").attr("aria-expanded","false"),e.toggleClass("current").attr("aria-expanded",(function(n,e){return"true"==e?"false":"true"})))}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:n.exports.ThemeNav,StickyNav:n.exports.ThemeNav}),function(){for(var n=0,e=["ms","moz","webkit","o"],t=0;t0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + diff --git a/_static/minus.png b/_static/minus.png new file mode 100644 index 000000000..d96755fda Binary files /dev/null and b/_static/minus.png differ diff --git a/_static/nbsphinx-broken-thumbnail.svg b/_static/nbsphinx-broken-thumbnail.svg new file mode 100644 index 000000000..4919ca882 --- /dev/null +++ b/_static/nbsphinx-broken-thumbnail.svg @@ -0,0 +1,9 @@ + + + + diff --git a/_static/nbsphinx-code-cells.css b/_static/nbsphinx-code-cells.css new file mode 100644 index 000000000..a3fb27c30 --- /dev/null +++ b/_static/nbsphinx-code-cells.css @@ -0,0 +1,259 @@ +/* remove conflicting styling from Sphinx themes */ +div.nbinput.container div.prompt *, +div.nboutput.container div.prompt *, +div.nbinput.container div.input_area pre, +div.nboutput.container div.output_area pre, +div.nbinput.container div.input_area .highlight, +div.nboutput.container div.output_area .highlight { + border: none; + padding: 0; + margin: 0; + box-shadow: none; +} + +div.nbinput.container > div[class*=highlight], +div.nboutput.container > div[class*=highlight] { + margin: 0; +} + +div.nbinput.container div.prompt *, +div.nboutput.container div.prompt * { + background: none; +} + +div.nboutput.container div.output_area .highlight, +div.nboutput.container div.output_area pre { + background: unset; +} + +div.nboutput.container div.output_area div.highlight { + color: unset; /* override Pygments text color */ +} + +/* avoid gaps between output lines */ +div.nboutput.container div[class*=highlight] pre { + line-height: normal; +} + +/* input/output containers */ +div.nbinput.container, +div.nboutput.container { + display: -webkit-flex; + display: flex; + align-items: flex-start; + margin: 0; + width: 100%; +} +@media (max-width: 540px) { + div.nbinput.container, + div.nboutput.container { + flex-direction: column; + } +} + +/* input container */ +div.nbinput.container { + padding-top: 5px; +} + +/* last container */ +div.nblast.container { + padding-bottom: 5px; +} + +/* input prompt */ +div.nbinput.container div.prompt pre, +/* for sphinx_immaterial theme: */ +div.nbinput.container div.prompt pre > code { + color: #307FC1; +} + +/* output prompt */ +div.nboutput.container div.prompt pre, +/* for sphinx_immaterial theme: */ +div.nboutput.container div.prompt pre > code { + color: #BF5B3D; +} + +/* all prompts */ +div.nbinput.container div.prompt, +div.nboutput.container div.prompt { + width: 4.5ex; + padding-top: 5px; + position: relative; + user-select: none; +} + +div.nbinput.container div.prompt > div, +div.nboutput.container div.prompt > div { + position: absolute; + right: 0; + margin-right: 0.3ex; +} + +@media (max-width: 540px) { + div.nbinput.container div.prompt, + div.nboutput.container div.prompt { + width: unset; + text-align: left; + padding: 0.4em; + } + div.nboutput.container div.prompt.empty { + padding: 0; + } + + div.nbinput.container div.prompt > div, + div.nboutput.container div.prompt > div { + position: unset; + } +} + +/* disable scrollbars and line breaks on prompts */ +div.nbinput.container div.prompt pre, +div.nboutput.container div.prompt pre { + overflow: hidden; + white-space: pre; +} + +/* input/output area */ +div.nbinput.container div.input_area, +div.nboutput.container div.output_area { + -webkit-flex: 1; + flex: 1; + overflow: auto; +} +@media (max-width: 540px) { + div.nbinput.container div.input_area, + div.nboutput.container div.output_area { + width: 100%; + } +} + +/* input area */ +div.nbinput.container div.input_area { + border: 1px solid #e0e0e0; + border-radius: 2px; + /*background: #f5f5f5;*/ +} + +/* override MathJax center alignment in output cells */ +div.nboutput.container div[class*=MathJax] { + text-align: left !important; +} + +/* override sphinx.ext.imgmath center alignment in output cells */ +div.nboutput.container div.math p { + text-align: left; +} + +/* standard error */ +div.nboutput.container div.output_area.stderr { + background: #fdd; +} + +/* ANSI colors */ +.ansi-black-fg { color: #3E424D; } +.ansi-black-bg { background-color: #3E424D; } +.ansi-black-intense-fg { color: #282C36; } +.ansi-black-intense-bg { background-color: #282C36; } +.ansi-red-fg { color: #E75C58; } +.ansi-red-bg { background-color: #E75C58; } +.ansi-red-intense-fg { color: #B22B31; } +.ansi-red-intense-bg { background-color: #B22B31; } +.ansi-green-fg { color: #00A250; } +.ansi-green-bg { background-color: #00A250; } +.ansi-green-intense-fg { color: #007427; } +.ansi-green-intense-bg { background-color: #007427; } +.ansi-yellow-fg { color: #DDB62B; } +.ansi-yellow-bg { background-color: #DDB62B; } +.ansi-yellow-intense-fg { color: #B27D12; } +.ansi-yellow-intense-bg { background-color: #B27D12; } +.ansi-blue-fg { color: #208FFB; } +.ansi-blue-bg { background-color: #208FFB; } +.ansi-blue-intense-fg { color: #0065CA; } +.ansi-blue-intense-bg { background-color: #0065CA; } +.ansi-magenta-fg { color: #D160C4; } +.ansi-magenta-bg { background-color: #D160C4; } +.ansi-magenta-intense-fg { color: #A03196; } +.ansi-magenta-intense-bg { background-color: #A03196; } +.ansi-cyan-fg { color: #60C6C8; } +.ansi-cyan-bg { background-color: #60C6C8; } +.ansi-cyan-intense-fg { color: #258F8F; } +.ansi-cyan-intense-bg { background-color: #258F8F; } +.ansi-white-fg { color: #C5C1B4; } +.ansi-white-bg { background-color: #C5C1B4; } +.ansi-white-intense-fg { color: #A1A6B2; } +.ansi-white-intense-bg { background-color: #A1A6B2; } + +.ansi-default-inverse-fg { color: #FFFFFF; } +.ansi-default-inverse-bg { background-color: #000000; } + +.ansi-bold { font-weight: bold; } +.ansi-underline { text-decoration: underline; } + + +div.nbinput.container div.input_area div[class*=highlight] > pre, +div.nboutput.container div.output_area div[class*=highlight] > pre, +div.nboutput.container div.output_area div[class*=highlight].math, +div.nboutput.container div.output_area.rendered_html, +div.nboutput.container div.output_area > div.output_javascript, +div.nboutput.container div.output_area:not(.rendered_html) > img{ + padding: 5px; + margin: 0; +} + +/* fix copybtn overflow problem in chromium (needed for 'sphinx_copybutton') */ +div.nbinput.container div.input_area > div[class^='highlight'], +div.nboutput.container div.output_area > div[class^='highlight']{ + overflow-y: hidden; +} + +/* hide copy button on prompts for 'sphinx_copybutton' extension ... */ +.prompt .copybtn, +/* ... and 'sphinx_immaterial' theme */ +.prompt .md-clipboard.md-icon { + display: none; +} + +/* Some additional styling taken form the Jupyter notebook CSS */ +.jp-RenderedHTMLCommon table, +div.rendered_html table { + border: none; + border-collapse: collapse; + border-spacing: 0; + color: black; + font-size: 12px; + table-layout: fixed; +} +.jp-RenderedHTMLCommon thead, +div.rendered_html thead { + border-bottom: 1px solid black; + vertical-align: bottom; +} +.jp-RenderedHTMLCommon tr, +.jp-RenderedHTMLCommon th, +.jp-RenderedHTMLCommon td, +div.rendered_html tr, +div.rendered_html th, +div.rendered_html td { + text-align: right; + vertical-align: middle; + padding: 0.5em 0.5em; + line-height: normal; + white-space: normal; + max-width: none; + border: none; +} +.jp-RenderedHTMLCommon th, +div.rendered_html th { + font-weight: bold; +} +.jp-RenderedHTMLCommon tbody tr:nth-child(odd), +div.rendered_html tbody tr:nth-child(odd) { + background: #f5f5f5; +} +.jp-RenderedHTMLCommon tbody tr:hover, +div.rendered_html tbody tr:hover { + background: rgba(66, 165, 245, 0.2); +} + diff --git a/_static/nbsphinx-gallery.css b/_static/nbsphinx-gallery.css new file mode 100644 index 000000000..365c27a96 --- /dev/null +++ b/_static/nbsphinx-gallery.css @@ -0,0 +1,31 @@ +.nbsphinx-gallery { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); + gap: 5px; + margin-top: 1em; + margin-bottom: 1em; +} + +.nbsphinx-gallery > a { + padding: 5px; + border: 1px dotted currentColor; + border-radius: 2px; + text-align: center; +} + +.nbsphinx-gallery > a:hover { + border-style: solid; +} + +.nbsphinx-gallery img { + max-width: 100%; + max-height: 100%; +} + +.nbsphinx-gallery > a > div:first-child { + display: flex; + align-items: start; + justify-content: center; + height: 120px; + margin-bottom: 5px; +} diff --git a/_static/nbsphinx-no-thumbnail.svg b/_static/nbsphinx-no-thumbnail.svg new file mode 100644 index 000000000..9dca7588f --- /dev/null +++ b/_static/nbsphinx-no-thumbnail.svg @@ -0,0 +1,9 @@ + + + + diff --git a/_static/plus.png b/_static/plus.png new file mode 100644 index 000000000..7107cec93 Binary files /dev/null and b/_static/plus.png differ diff --git a/_static/pygments.css b/_static/pygments.css new file mode 100644 index 000000000..0d49244ed --- /dev/null +++ b/_static/pygments.css @@ -0,0 +1,75 @@ +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.highlight .hll { background-color: #ffffcc } +.highlight { background: #eeffcc; } +.highlight .c { color: #408090; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #007020; font-weight: bold } /* Keyword */ +.highlight .o { color: #666666 } /* Operator */ +.highlight .ch { color: #408090; font-style: italic } /* Comment.Hashbang */ +.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #007020 } /* Comment.Preproc */ +.highlight .cpf { color: #408090; font-style: italic } /* Comment.PreprocFile */ +.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +.highlight .gr { color: #FF0000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #333333 } /* Generic.Output */ +.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0044DD } /* Generic.Traceback */ +.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #007020 } /* Keyword.Pseudo */ +.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #902000 } /* Keyword.Type */ +.highlight .m { color: #208050 } /* Literal.Number */ +.highlight .s { color: #4070a0 } /* Literal.String */ +.highlight .na { color: #4070a0 } /* Name.Attribute */ +.highlight .nb { color: #007020 } /* Name.Builtin */ +.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ +.highlight .no { color: #60add5 } /* Name.Constant */ +.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ +.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #007020 } /* Name.Exception */ +.highlight .nf { color: #06287e } /* Name.Function */ +.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ +.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #bb60d5 } /* Name.Variable */ +.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mb { color: #208050 } /* Literal.Number.Bin */ +.highlight .mf { color: #208050 } /* Literal.Number.Float */ +.highlight .mh { color: #208050 } /* Literal.Number.Hex */ +.highlight .mi { color: #208050 } /* Literal.Number.Integer */ +.highlight .mo { color: #208050 } /* Literal.Number.Oct */ +.highlight .sa { color: #4070a0 } /* Literal.String.Affix */ +.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ +.highlight .sc { color: #4070a0 } /* Literal.String.Char */ +.highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */ +.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ +.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ +.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ +.highlight .sx { color: #c65d09 } /* Literal.String.Other */ +.highlight .sr { color: #235388 } /* Literal.String.Regex */ +.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ +.highlight .ss { color: #517918 } /* Literal.String.Symbol */ +.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #06287e } /* Name.Function.Magic */ +.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ +.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ +.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ +.highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */ +.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/_static/searchtools.js b/_static/searchtools.js new file mode 100644 index 000000000..b08d58c9b --- /dev/null +++ b/_static/searchtools.js @@ -0,0 +1,620 @@ +/* + * searchtools.js + * ~~~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for the full-text search. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +/** + * Simple result scoring code. + */ +if (typeof Scorer === "undefined") { + var Scorer = { + // Implement the following function to further tweak the score for each result + // The function takes a result array [docname, title, anchor, descr, score, filename] + // and returns the new score. + /* + score: result => { + const [docname, title, anchor, descr, score, filename] = result + return score + }, + */ + + // query matches the full name of an object + objNameMatch: 11, + // or matches in the last dotted part of the object name + objPartialMatch: 6, + // Additive scores depending on the priority of the object + objPrio: { + 0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5, // used to be unimportantResults + }, + // Used when the priority is not in the mapping. + objPrioDefault: 0, + + // query found in title + title: 15, + partialTitle: 7, + // query found in terms + term: 5, + partialTerm: 2, + }; +} + +const _removeChildren = (element) => { + while (element && element.lastChild) element.removeChild(element.lastChild); +}; + +/** + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + */ +const _escapeRegExp = (string) => + string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + +const _displayItem = (item, searchTerms, highlightTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + const contentRoot = document.documentElement.dataset.content_root; + + const [docName, title, anchor, descr, score, _filename] = item; + + let listItem = document.createElement("li"); + let requestUrl; + let linkUrl; + if (docBuilder === "dirhtml") { + // dirhtml builder + let dirname = docName + "/"; + if (dirname.match(/\/index\/$/)) + dirname = dirname.substring(0, dirname.length - 6); + else if (dirname === "index/") dirname = ""; + requestUrl = contentRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = contentRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; + } + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + anchor; + linkEl.dataset.score = score; + linkEl.innerHTML = title; + if (descr) { + listItem.appendChild(document.createElement("span")).innerHTML = + " (" + descr + ")"; + // highlight search terms in the description + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + } + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms, anchor) + ); + // highlight search terms in the summary + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + }); + Search.output.appendChild(listItem); +}; +const _finishSearch = (resultCount) => { + Search.stopPulse(); + Search.title.innerText = _("Search Results"); + if (!resultCount) + Search.status.innerText = Documentation.gettext( + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." + ); + else + Search.status.innerText = _( + "Search finished, found ${resultCount} page(s) matching the search query." + ).replace('${resultCount}', resultCount); +}; +const _displayNextItem = ( + results, + resultCount, + searchTerms, + highlightTerms, +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), searchTerms, highlightTerms); + setTimeout( + () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; +// Helper function used by query() to order search results. +// Each input is an array of [docname, title, anchor, descr, score, filename]. +// Order the results by score (in opposite order of appearance, since the +// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. +const _orderResultsByScoreThenName = (a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; +}; + +/** + * Default splitQuery function. Can be overridden in ``sphinx.search`` with a + * custom function per language. + * + * The regular expression works by splitting the string on consecutive characters + * that are not Unicode letters, numbers, underscores, or emoji characters. + * This is the same as ``\W+`` in Python, preserving the surrogate pair area. + */ +if (typeof splitQuery === "undefined") { + var splitQuery = (query) => query + .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) + .filter(term => term) // remove remaining empty strings +} + +/** + * Search Module + */ +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, + + htmlToText: (htmlString, anchor) => { + const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); + for (const removalQuery of [".headerlink", "script", "style"]) { + htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() }); + } + if (anchor) { + const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`); + if (anchorContent) return anchorContent.textContent; + + console.warn( + `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.` + ); + } + + // if anchor not specified or not found, fall back to main content + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent) return docContent.textContent; + + console.warn( + "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template." + ); + return ""; + }, + + init: () => { + const query = new URLSearchParams(window.location.search).get("q"); + document + .querySelectorAll('input[name="q"]') + .forEach((el) => (el.value = query)); + if (query) Search.performSearch(query); + }, + + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), + + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); + } + }, + + hasIndex: () => Search._index !== null, + + deferQuery: (query) => (Search._queued_query = query), + + stopPulse: () => (Search._pulse_status = -1), + + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { + Search._pulse_status = (Search._pulse_status + 1) % 4; + Search.dots.innerText = ".".repeat(Search._pulse_status); + if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something (or wait until index is loaded) + */ + performSearch: (query) => { + // create the required interface elements + const searchText = document.createElement("h2"); + searchText.textContent = _("Searching"); + const searchSummary = document.createElement("p"); + searchSummary.classList.add("search-summary"); + searchSummary.innerText = ""; + const searchList = document.createElement("ul"); + searchList.classList.add("search"); + + const out = document.getElementById("search-results"); + Search.title = out.appendChild(searchText); + Search.dots = Search.title.appendChild(document.createElement("span")); + Search.status = out.appendChild(searchSummary); + Search.output = out.appendChild(searchList); + + const searchProgress = document.getElementById("search-progress"); + // Some themes don't use the search progress node + if (searchProgress) { + searchProgress.innerText = _("Preparing search..."); + } + Search.startPulse(); + + // index already loaded, the browser was quick! + if (Search.hasIndex()) Search.query(query); + else Search.deferQuery(query); + }, + + _parseQuery: (query) => { + // stem the search terms and add them to the correct list + const stemmer = new Stemmer(); + const searchTerms = new Set(); + const excludedTerms = new Set(); + const highlightTerms = new Set(); + const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); + splitQuery(query.trim()).forEach((queryTerm) => { + const queryTermLower = queryTerm.toLowerCase(); + + // maybe skip this "word" + // stopwords array is from language_data.js + if ( + stopwords.indexOf(queryTermLower) !== -1 || + queryTerm.match(/^\d+$/) + ) + return; + + // stem the word + let word = stemmer.stemWord(queryTermLower); + // select the correct list + if (word[0] === "-") excludedTerms.add(word.substr(1)); + else { + searchTerms.add(word); + highlightTerms.add(queryTermLower); + } + }); + + if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js + localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) + } + + // console.debug("SEARCH: searching for:"); + // console.info("required: ", [...searchTerms]); + // console.info("excluded: ", [...excludedTerms]); + + return [query, searchTerms, excludedTerms, highlightTerms, objectTerms]; + }, + + /** + * execute search (requires search index to be loaded) + */ + _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // Collect multiple result groups to be sorted separately and then ordered. + // Each is an array of [docname, title, anchor, descr, score, filename]. + const normalResults = []; + const nonMainIndexResults = []; + + _removeChildren(document.getElementById("search-progress")); + + const queryLower = query.toLowerCase().trim(); + for (const [title, foundTitles] of Object.entries(allTitles)) { + if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) { + for (const [file, id] of foundTitles) { + const score = Math.round(Scorer.title * queryLower.length / title.length); + const boost = titles[file] === title ? 1 : 0; // add a boost for document titles + normalResults.push([ + docNames[file], + titles[file] !== title ? `${titles[file]} > ${title}` : title, + id !== null ? "#" + id : "", + null, + score + boost, + filenames[file], + ]); + } + } + } + + // search for explicit entries in index directives + for (const [entry, foundEntries] of Object.entries(indexEntries)) { + if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { + for (const [file, id, isMain] of foundEntries) { + const score = Math.round(100 * queryLower.length / entry.length); + const result = [ + docNames[file], + titles[file], + id ? "#" + id : "", + null, + score, + filenames[file], + ]; + if (isMain) { + normalResults.push(result); + } else { + nonMainIndexResults.push(result); + } + } + } + } + + // lookup as object + objectTerms.forEach((term) => + normalResults.push(...Search.performObjectSearch(term, objectTerms)) + ); + + // lookup as search terms in fulltext + normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + + // let the scorer override scores with a custom scoring function + if (Scorer.score) { + normalResults.forEach((item) => (item[4] = Scorer.score(item))); + nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item))); + } + + // Sort each group of results by score and then alphabetically by name. + normalResults.sort(_orderResultsByScoreThenName); + nonMainIndexResults.sort(_orderResultsByScoreThenName); + + // Combine the result groups in (reverse) order. + // Non-main index entries are typically arbitrary cross-references, + // so display them after other results. + let results = [...nonMainIndexResults, ...normalResults]; + + // remove duplicate search results + // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept + let seen = new Set(); + results = results.reverse().reduce((acc, result) => { + let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); + if (!seen.has(resultStr)) { + acc.push(result); + seen.add(resultStr); + } + return acc; + }, []); + + return results.reverse(); + }, + + query: (query) => { + const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query); + const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms); + + // for debugging + //Search.lastresults = results.slice(); // a copy + // console.info("search results:", Search.lastresults); + + // print the results + _displayNextItem(results, results.length, searchTerms, highlightTerms); + }, + + /** + * search for object names + */ + performObjectSearch: (object, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const objects = Search._index.objects; + const objNames = Search._index.objnames; + const titles = Search._index.titles; + + const results = []; + + const objectSearchCallback = (prefix, match) => { + const name = match[4] + const fullname = (prefix ? prefix + "." : "") + name; + const fullnameLower = fullname.toLowerCase(); + if (fullnameLower.indexOf(object) < 0) return; + + let score = 0; + const parts = fullnameLower.split("."); + + // check for different match types: exact matches of full name or + // "last name" (i.e. last dotted part) + if (fullnameLower === object || parts.slice(-1)[0] === object) + score += Scorer.objNameMatch; + else if (parts.slice(-1)[0].indexOf(object) > -1) + score += Scorer.objPartialMatch; // matches in last name + + const objName = objNames[match[1]][2]; + const title = titles[match[0]]; + + // If more than one term searched for, we require other words to be + // found in the name/title/description + const otherTerms = new Set(objectTerms); + otherTerms.delete(object); + if (otherTerms.size > 0) { + const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); + if ( + [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) + ) + return; + } + + let anchor = match[3]; + if (anchor === "") anchor = fullname; + else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; + + const descr = objName + _(", in ") + title; + + // add custom score for some objects according to scorer + if (Scorer.objPrio.hasOwnProperty(match[2])) + score += Scorer.objPrio[match[2]]; + else score += Scorer.objPrioDefault; + + results.push([ + docNames[match[0]], + fullname, + "#" + anchor, + descr, + score, + filenames[match[0]], + ]); + }; + Object.keys(objects).forEach((prefix) => + objects[prefix].forEach((array) => + objectSearchCallback(prefix, array) + ) + ); + return results; + }, + + /** + * search for full-text terms in the index + */ + performTermsSearch: (searchTerms, excludedTerms) => { + // prepare search + const terms = Search._index.terms; + const titleTerms = Search._index.titleterms; + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + + const scoreMap = new Map(); + const fileMap = new Map(); + + // perform the search on the required terms + searchTerms.forEach((word) => { + const files = []; + const arr = [ + { files: terms[word], score: Scorer.term }, + { files: titleTerms[word], score: Scorer.title }, + ]; + // add support for partial matches + if (word.length > 2) { + const escapedWord = _escapeRegExp(word); + if (!terms.hasOwnProperty(word)) { + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + } + if (!titleTerms.hasOwnProperty(word)) { + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: titleTerms[term], score: Scorer.partialTitle }); + }); + } + } + + // no match but word was a required one + if (arr.every((record) => record.files === undefined)) return; + + // found search word in contents + arr.forEach((record) => { + if (record.files === undefined) return; + + let recordFiles = record.files; + if (recordFiles.length === undefined) recordFiles = [recordFiles]; + files.push(...recordFiles); + + // set score for the word in each file + recordFiles.forEach((file) => { + if (!scoreMap.has(file)) scoreMap.set(file, {}); + scoreMap.get(file)[word] = record.score; + }); + }); + + // create the mapping + files.forEach((file) => { + if (!fileMap.has(file)) fileMap.set(file, [word]); + else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); + }); + }); + + // now check if the files don't contain excluded terms + const results = []; + for (const [file, wordList] of fileMap) { + // check if all requirements are matched + + // as search terms with length < 3 are discarded + const filteredTermCount = [...searchTerms].filter( + (term) => term.length > 2 + ).length; + if ( + wordList.length !== searchTerms.size && + wordList.length !== filteredTermCount + ) + continue; + + // ensure that none of the excluded terms is in the search result + if ( + [...excludedTerms].some( + (term) => + terms[term] === file || + titleTerms[term] === file || + (terms[term] || []).includes(file) || + (titleTerms[term] || []).includes(file) + ) + ) + break; + + // select one (max) score for the file. + const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); + // add result to the result list + results.push([ + docNames[file], + titles[file], + "", + null, + score, + filenames[file], + ]); + } + return results; + }, + + /** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words. + */ + makeSearchSummary: (htmlText, keywords, anchor) => { + const text = Search.htmlToText(htmlText, anchor); + if (text === "") return null; + + const textLower = text.toLowerCase(); + const actualStartPosition = [...keywords] + .map((k) => textLower.indexOf(k.toLowerCase())) + .filter((i) => i > -1) + .slice(-1)[0]; + const startWithContext = Math.max(actualStartPosition - 120, 0); + + const top = startWithContext === 0 ? "" : "..."; + const tail = startWithContext + 240 < text.length ? "..." : ""; + + let summary = document.createElement("p"); + summary.classList.add("context"); + summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; + + return summary; + }, +}; + +_ready(Search.init); diff --git a/_static/sphinx_highlight.js b/_static/sphinx_highlight.js new file mode 100644 index 000000000..8a96c69a1 --- /dev/null +++ b/_static/sphinx_highlight.js @@ -0,0 +1,154 @@ +/* Highlighting utilities for Sphinx HTML documentation. */ +"use strict"; + +const SPHINX_HIGHLIGHT_ENABLED = true + +/** + * highlight a given string on a node by wrapping it in + * span elements with the given class name. + */ +const _highlight = (node, addItems, text, className) => { + if (node.nodeType === Node.TEXT_NODE) { + const val = node.nodeValue; + const parent = node.parentNode; + const pos = val.toLowerCase().indexOf(text); + if ( + pos >= 0 && + !parent.classList.contains(className) && + !parent.classList.contains("nohighlight") + ) { + let span; + + const closestNode = parent.closest("body, svg, foreignObject"); + const isInSVG = closestNode && closestNode.matches("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.classList.add(className); + } + + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + const rest = document.createTextNode(val.substr(pos + text.length)); + parent.insertBefore( + span, + parent.insertBefore( + rest, + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + /* There may be more occurrences of search term in this node. So call this + * function recursively on the remaining fragment. + */ + _highlight(rest, addItems, text, className); + + if (isInSVG) { + const rect = document.createElementNS( + "http://www.w3.org/2000/svg", + "rect" + ); + const bbox = parent.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute("class", className); + addItems.push({ parent: parent, target: rect }); + } + } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); + } +}; +const _highlightText = (thisNode, text, className) => { + let addItems = []; + _highlight(thisNode, addItems, text, className); + addItems.forEach((obj) => + obj.parent.insertAdjacentElement("beforebegin", obj.target) + ); +}; + +/** + * Small JavaScript module for the documentation. + */ +const SphinxHighlight = { + + /** + * highlight the search words provided in localstorage in the text + */ + highlightSearchWords: () => { + if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight + + // get and clear terms from localstorage + const url = new URL(window.location); + const highlight = + localStorage.getItem("sphinx_highlight_terms") + || url.searchParams.get("highlight") + || ""; + localStorage.removeItem("sphinx_highlight_terms") + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); + + // get individual terms from highlight string + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do + + // There should never be more than one element matching "div.body" + const divBody = document.querySelectorAll("div.body"); + const body = divBody.length ? divBody[0] : document.querySelector("body"); + window.setTimeout(() => { + terms.forEach((term) => _highlightText(body, term, "highlighted")); + }, 10); + + const searchBox = document.getElementById("searchbox"); + if (searchBox === null) return; + searchBox.appendChild( + document + .createRange() + .createContextualFragment( + '" + ) + ); + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + localStorage.removeItem("sphinx_highlight_terms") + }, + + initEscapeListener: () => { + // only install a listener if it is really needed + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; + if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { + SphinxHighlight.hideSearchWords(); + event.preventDefault(); + } + }); + }, +}; + +_ready(() => { + /* Do not call highlightSearchWords() when we are on the search page. + * It will highlight words from the *previous* search query. + */ + if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); + SphinxHighlight.initEscapeListener(); +}); diff --git a/api/coffea.analysis_tools.Cutflow.html b/api/coffea.analysis_tools.Cutflow.html new file mode 100644 index 000000000..07755f941 --- /dev/null +++ b/api/coffea.analysis_tools.Cutflow.html @@ -0,0 +1,292 @@ + + + + + + + Cutflow — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

Cutflow

+
+
+class coffea.analysis_tools.Cutflow(names, nevonecut, nevcutflow, masksonecut, maskscutflow, delayed_mode)[source]
+

Bases: object

+

Object to be returned by PackedSelection.cutflow()

+

Methods Summary

+ + + + + + + + + + + + + + + + + + +

plot_vars(vars[, axes, bins, start, stop, ...])

Plot the histograms of variables for each step of the N-1 selection

print()

Prints the statistics of the Cutflow

result()

Returns the results of the cutflow as a namedtuple

to_npz(file[, compressed, compute])

Saves the results of the cutflow to a .npz file

yieldhist()

Returns the cutflow yields as hist.Hist objects

+

Methods Documentation

+
+
+plot_vars(vars, axes=None, bins=None, start=None, stop=None, edges=None, transform=None)[source]
+

Plot the histograms of variables for each step of the N-1 selection

+
+
Parameters:
+
    +
  • vars (dict) – A dictionary in the form {name: array} where name is the name of the variable, +and array is the corresponding array of values. +The arrays must be the same length as each mask of the cutflow.

  • +
  • axes (list of hist.axis objects, optional) – The axes objects to histogram the variables on. This will override all the following arguments that define axes. +Must be the same length as vars.

  • +
  • bins (iterable of integers or Nones, optional) – The number of bins for each variable histogram. If not specified, it defaults to 20. +Must be the same length as vars.

  • +
  • start (iterable of floats or integers or Nones, optional) – The lower edge of the first bin for each variable histogram. If not specified, it defaults to the minimum value of the variable array. +Must be the same length as vars.

  • +
  • stop (iterable of floats or integers or Nones, optional) – The upper edge of the last bin for each variable histogram. If not specified, it defaults to the maximum value of the variable array. +Must be the same length as vars.

  • +
  • edges (list of iterables of floats or integers, optional) – The bin edges for each variable histogram. This overrides bins, start, and stop if specified. +Must be the same length as vars.

  • +
  • transform (iterable of hist.axis.transform objects or Nones, optional) – The transforms to apply to each variable histogram axis. If not specified, it defaults to None. +Must be the same length as vars.

  • +
+
+
Returns:
+

    +
  • histsonecut (list of hist.Hist or hist.dask.Hist objects) – A list of 1D histograms of the variables of events surviving each cut alone. +The first axis is the variable, the second axis is the cuts.

  • +
  • histscutflow (list of hist.Hist or hist.dask.Hist objects) – A list of 1D histograms of the variables of events surviving the cumulative cutflow. +The first axis is the variable, the second axis is the cuts.

  • +
  • labels (list of strings) – The bin labels of the y axis of the histograms.

  • +
+

+
+
+
+ +
+
+print()[source]
+

Prints the statistics of the Cutflow

+
+ +
+
+result()[source]
+

Returns the results of the cutflow as a namedtuple

+
+
Returns:
+

result – A namedtuple with the following attributes:

+
+
nevonecutlist of integers or dask_awkward.lib.core.Scalar objects

The number of events that survive each cut alone as a list of integers or delayed integers

+
+
nevcutflowlist of integers or dask_awkward.lib.core.Scalar objects

The number of events that survive the cumulative cutflow as a list of integers or delayed integers

+
+
masksonecutlist of boolean numpy.ndarray or dask_awkward.lib.core.Array objects

The boolean mask vectors of which events pass each cut alone as a list of materialized or delayed boolean arrays

+
+
maskscutflowlist of boolean numpy.ndarray or dask_awkward.lib.core.Array objects

The boolean mask vectors of which events pass the cumulative cutflow a list of materialized or delayed boolean arrays

+
+
+

+
+
Return type:
+

CutflowResult

+
+
+
+ +
+
+to_npz(file, compressed=False, compute=False)[source]
+

Saves the results of the cutflow to a .npz file

+
+
Parameters:
+
    +
  • file (str or file) – Either the filename (string) or an open file (file-like object) +where the data will be saved. If file is a string or a Path, the +.npz extension will be appended to the filename if it is not +already there.

  • +
  • compressed (bool, optional) – If True, the data will be compressed in the .npz file. +Default is False.

  • +
  • compute (bool, optional) – Whether to immediately start writing or to return an object +that the user can choose when to start writing by calling compute(). +Default is False.

  • +
+
+
Returns:
+

out – If compute=True, returns None. Otherwise, returns an object +that can be used to start writing the data by calling compute().

+
+
Return type:
+

CutflowToNpz or None

+
+
+
+ +
+
+yieldhist()[source]
+

Returns the cutflow yields as hist.Hist objects

+
+
Returns:
+

    +
  • honecut (hist.Hist or hist.dask.Hist) – Histogram of the number of events surviving each cut alone

  • +
  • hcutflow (hist.Hist or hist.dask.Hist) – Histogram of the number of events surviving the cumulative cutflow

  • +
  • labels (list of strings) – The bin labels of the histograms

  • +
+

+
+
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.analysis_tools.CutflowToNpz.html b/api/coffea.analysis_tools.CutflowToNpz.html new file mode 100644 index 000000000..522c845b8 --- /dev/null +++ b/api/coffea.analysis_tools.CutflowToNpz.html @@ -0,0 +1,227 @@ + + + + + + + CutflowToNpz — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

CutflowToNpz

+
+
+class coffea.analysis_tools.CutflowToNpz(file, labels, nevonecut, nevcutflow, masksonecut, maskscutflow, saver)[source]
+

Bases: object

+

Object to be returned by Cutflow.to_npz()

+

Attributes Summary

+ + + + + + + + + + + + + + + + + + + + + +

file

labels

maskscutflow

masksonecut

nevcutflow

nevonecut

+

Methods Summary

+ + + + + + +

compute()

+

Attributes Documentation

+
+
+file
+
+ +
+
+labels
+
+ +
+
+maskscutflow
+
+ +
+
+masksonecut
+
+ +
+
+nevcutflow
+
+ +
+
+nevonecut
+
+ +

Methods Documentation

+
+
+compute()[source]
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.analysis_tools.NminusOne.html b/api/coffea.analysis_tools.NminusOne.html new file mode 100644 index 000000000..ab0927beb --- /dev/null +++ b/api/coffea.analysis_tools.NminusOne.html @@ -0,0 +1,285 @@ + + + + + + + NminusOne — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

NminusOne

+
+
+class coffea.analysis_tools.NminusOne(names, nev, masks, delayed_mode)[source]
+

Bases: object

+

Object to be returned by PackedSelection.nminusone()

+

Methods Summary

+ + + + + + + + + + + + + + + + + + +

plot_vars(vars[, axes, bins, start, stop, ...])

Plot the histograms of variables for each step of the N-1 selection

print()

Prints the statistics of the N-1 selection

result()

Returns the results of the N-1 selection as a namedtuple

to_npz(file[, compressed, compute])

Saves the results of the N-1 selection to a .npz file

yieldhist()

Returns the N-1 selection yields as a hist.Hist object

+

Methods Documentation

+
+
+plot_vars(vars, axes=None, bins=None, start=None, stop=None, edges=None, transform=None)[source]
+

Plot the histograms of variables for each step of the N-1 selection

+
+
Parameters:
+
    +
  • vars (dict) – A dictionary in the form {name: array} where name is the name of the variable, +and array is the corresponding array of values. +The arrays must be the same length as each mask of the N-1 selection.

  • +
  • axes (list of hist.axis objects, optional) – The axes objects to histogram the variables on. This will override all the following arguments that define axes. +Must be the same length as vars.

  • +
  • bins (iterable of integers or Nones, optional) – The number of bins for each variable histogram. If not specified, it defaults to 20. +Must be the same length as vars.

  • +
  • start (iterable of floats or integers or Nones, optional) – The lower edge of the first bin for each variable histogram. If not specified, it defaults to the minimum value of the variable array. +Must be the same length as vars.

  • +
  • stop (iterable of floats or integers or Nones, optional) – The upper edge of the last bin for each variable histogram. If not specified, it defaults to the maximum value of the variable array. +Must be the same length as vars.

  • +
  • edges (list of iterables of floats or integers, optional) – The bin edges for each variable histogram. This overrides bins, start, and stop if specified. +Must be the same length as vars.

  • +
  • transform (iterable of hist.axis.transform objects or Nones, optional) – The transforms to apply to each variable histogram axis. If not specified, it defaults to None. +Must be the same length as vars.

  • +
+
+
Returns:
+

    +
  • hists (list of hist.Hist or hist.dask.Hist objects) – A list of 2D histograms of the variables for each step of the N-1 selection. +The first axis is the variable, the second axis is the N-1 selection step.

  • +
  • labels (list of strings) – The bin labels of y axis of the histogram.

  • +
+

+
+
+
+ +
+
+print()[source]
+

Prints the statistics of the N-1 selection

+
+ +
+
+result()[source]
+

Returns the results of the N-1 selection as a namedtuple

+
+
Returns:
+

result – A namedtuple with the following attributes:

+
+
nevlist of integers or dask_awkward.lib.core.Scalar objects

The number of events in each step of the N-1 selection as a list of integers or delayed integers

+
+
maskslist of boolean numpy.ndarray or dask_awkward.lib.core.Array objects

The boolean mask vectors of which events pass the N-1 selection each time as a list of materialized or delayed boolean arrays

+
+
+

+
+
Return type:
+

NminusOneResult

+
+
+
+ +
+
+to_npz(file, compressed=False, compute=False)[source]
+

Saves the results of the N-1 selection to a .npz file

+
+
Parameters:
+
    +
  • file (str or file) – Either the filename (string) or an open file (file-like object) +where the data will be saved. If file is a string or a Path, the +.npz extension will be appended to the filename if it is not +already there.

  • +
  • compressed (bool, optional) – If True, the data will be compressed in the .npz file. +Default is False.

  • +
  • compute (bool, optional) – Whether to immediately start writing or to return an object +that the user can choose when to start writing by calling compute(). +Default is False.

  • +
+
+
Returns:
+

out – If compute=True, returns None. Otherwise, returns an object +that can be used to start writing the data by calling compute().

+
+
Return type:
+

NminusOneToNpz or None

+
+
+
+ +
+
+yieldhist()[source]
+

Returns the N-1 selection yields as a hist.Hist object

+
+
Returns:
+

    +
  • h (hist.Hist or hist.dask.Hist) – Histogram of the number of events surviving the N-1 selection

  • +
  • labels (list of strings) – The bin labels of the histogram

  • +
+

+
+
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.analysis_tools.NminusOneToNpz.html b/api/coffea.analysis_tools.NminusOneToNpz.html new file mode 100644 index 000000000..43fef85d2 --- /dev/null +++ b/api/coffea.analysis_tools.NminusOneToNpz.html @@ -0,0 +1,211 @@ + + + + + + + NminusOneToNpz — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

NminusOneToNpz

+
+
+class coffea.analysis_tools.NminusOneToNpz(file, labels, nev, masks, saver)[source]
+

Bases: object

+

Object to be returned by NminusOne.to_npz()

+

Attributes Summary

+ + + + + + + + + + + + + + + +

file

labels

masks

nev

+

Methods Summary

+ + + + + + +

compute()

+

Attributes Documentation

+
+
+file
+
+ +
+
+labels
+
+ +
+
+masks
+
+ +
+
+nev
+
+ +

Methods Documentation

+
+
+compute()[source]
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.analysis_tools.PackedSelection.html b/api/coffea.analysis_tools.PackedSelection.html new file mode 100644 index 000000000..c764747fc --- /dev/null +++ b/api/coffea.analysis_tools.PackedSelection.html @@ -0,0 +1,377 @@ + + + + + + + PackedSelection — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

PackedSelection

+
+
+class coffea.analysis_tools.PackedSelection(dtype='uint32')[source]
+

Bases: object

+

Store several boolean arrays in a compact manner

+

This class can store several boolean arrays in a memory-efficient mannner +and evaluate arbitrary combinations of boolean requirements in an CPU-efficient way. +Supported inputs are 1D numpy or awkward arrays.

+
+
Parameters:
+

dtype (numpy.dtype or str) – internal bitwidth of the packed array, which governs the maximum +number of selections storable in this object. The default value +is uint32, which allows up to 32 booleans to be stored, but +if a smaller or larger number of selections needs to be stored, +one can choose uint16 or uint64 instead.

+
+
+

Attributes Summary

+ + + + + + + + + + + + +

delayed_mode

maxitems

names

Current list of mask names available

+

Methods Summary

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

add(name, selection[, fill_value])

Add a new boolean array

add_multiple(selections[, fill_value])

Add multiple boolean arrays at once, see add for details

all(*names)

Shorthand for require, where all the values are True.

allfalse(*names)

Shorthand for require, where all the values are False.

any(*names)

Return a mask vector corresponding to an inclusive OR of requirements

cutflow(*names)

Compute the cutflow for a set of selections

nminusone(*names)

Compute the "N-1" style selection for a set of selections

require(**names)

Return a mask vector corresponding to specific requirements

+

Attributes Documentation

+
+
+delayed_mode
+
+ +
+
+maxitems
+
+ +
+
+names
+

Current list of mask names available

+
+ +

Methods Documentation

+
+
+add(name, selection, fill_value=False)[source]
+

Add a new boolean array

+
+
Parameters:
+
    +
  • name (str) – name of the selection

  • +
  • selection (numpy.ndarray or awkward.Array) – a flat array of type bool or ?bool. +If this is not the first selection added, it must also have +the same shape as previously added selections. If the array +is option-type, null entries will be filled with fill_value.

  • +
  • fill_value (bool, optional) – All masked entries will be filled as specified (default: False)

  • +
+
+
+
+ +
+
+add_multiple(selections, fill_value=False)[source]
+

Add multiple boolean arrays at once, see add for details

+
+
Parameters:
+
    +
  • selections (dict) – a dictionary of selections, in the form {name: selection}

  • +
  • fill_value (bool, optional) – All masked entries will be filled as specified (default: False)

  • +
+
+
+
+ +
+
+all(*names)[source]
+

Shorthand for require, where all the values are True. +If no arguments are given, all the added selections are required to be True.

+
+ +
+
+allfalse(*names)[source]
+

Shorthand for require, where all the values are False. +If no arguments are given, all the added selections are required to be False.

+
+ +
+
+any(*names)[source]
+

Return a mask vector corresponding to an inclusive OR of requirements

+
+
Parameters:
+

*names (args) – The named selections to allow

+
+
+

Examples

+

If

+
>>> selection.names
+['cut1', 'cut2', 'cut3']
+
+
+

then

+
>>> selection.any("cut1", "cut2")
+array([True, False, True, ...])
+
+
+

returns a boolean array where an entry is True if the corresponding entries +cut1 == True or cut2 == False, and cut3 arbitrary.

+
+ +
+
+cutflow(*names)[source]
+

Compute the cutflow for a set of selections

+

Returns an object which can return a list of the number of events that pass all the previous selections including the current one +after each named selection is applied consecutively. The first element +of the returned list is the total number of events before any selections are applied. +The last element is the final number of events that pass after all the selections are applied. +Can also return a cutflow histogram as a hist.Hist object where the bin heights are the number of events of the cutflow list. +If the PackedSelection is in delayed mode, the elements of the list will be dask_awkward Arrays that can be computed whenever the user wants. +If the histogram is requested, those delayed arrays will be computed in the process in order to set the bin heights.

+
+
Parameters:
+

*names (args) – The named selections to use, need to be a subset of the selections already added

+
+
Returns:
+

res – A wrapper class for the results, see the documentation for that class for more details

+
+
Return type:
+

coffea.analysis_tools.Cutflow

+
+
+
+ +
+
+nminusone(*names)[source]
+

Compute the “N-1” style selection for a set of selections

+

The N-1 style selection for a set of selections, returns an object which can return a list of the number of events +that pass all the other selections ignoring one at a time. The first element of the returned list +is the total number of events before any selections are applied. +The last element is the final number of events that pass if all selections are applied. +It also returns a list of boolean mask vectors of which events pass the N-1 selection each time. +Can also return a histogram as a hist.Hist object where the bin heights are the number of events of the N-1 selection list. +If the PackedSelection is in delayed mode, the elements of those lists will be dask_awkward Arrays that can be computed whenever the user wants. +If the histogram is requested, the delayed arrays of the number of events list will be computed in the process in order to set the bin heights.

+
+
Parameters:
+

*names (args) – The named selections to use, need to be a subset of the selections already added

+
+
Returns:
+

res – A wrapper class for the results, see the documentation for that class for more details

+
+
Return type:
+

coffea.analysis_tools.NminusOne

+
+
+
+ +
+
+require(**names)
+

Return a mask vector corresponding to specific requirements

+

Specify an exact requirement on an arbitrary subset of the masks

+
+
Parameters:
+

**names (kwargs) – Each argument to require specific value for, in form arg=True +or arg=False.

+
+
+

Examples

+

If

+
>>> selection.names
+['cut1', 'cut2', 'cut3']
+
+
+

then

+
>>> selection.require(cut1=True, cut2=False)
+array([True, False, True, ...])
+
+
+

returns a boolean array where an entry is True if the corresponding entries +cut1 == True, cut2 == False, and cut3 arbitrary.

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.analysis_tools.WeightStatistics.html b/api/coffea.analysis_tools.WeightStatistics.html new file mode 100644 index 000000000..0b73f5ff7 --- /dev/null +++ b/api/coffea.analysis_tools.WeightStatistics.html @@ -0,0 +1,180 @@ + + + + + + + WeightStatistics — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

WeightStatistics

+
+
+class coffea.analysis_tools.WeightStatistics(sumw=0.0, sumw2=0.0, minw=inf, maxw=-inf, n=0)[source]
+

Bases: object

+

Methods Summary

+ + + + + + + + + +

add(other)

identity()

+

Methods Documentation

+
+
+add(other)[source]
+
+ +
+
+identity()[source]
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.analysis_tools.Weights.html b/api/coffea.analysis_tools.Weights.html new file mode 100644 index 000000000..077885edc --- /dev/null +++ b/api/coffea.analysis_tools.Weights.html @@ -0,0 +1,312 @@ + + + + + + + Weights — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

Weights

+
+
+class coffea.analysis_tools.Weights(size, storeIndividual=False)[source]
+

Bases: object

+

Container for event weights and associated systematic shifts

+

This container keeps track of correction factors and systematic +effects that can be encoded as multiplicative modifiers to the event weight. +All weights are stored in vector form.

+
+
Parameters:
+
    +
  • size (int | None) – size of the weight arrays to be handled (i.e. the number of events / instances). +If None then we expect to operate in delayed mode.

  • +
  • storeIndividual (bool, optional) – store not only the total weight + variations, but also each individual weight. +Default is false.

  • +
+
+
+

Attributes Summary

+ + + + + + + + + +

variations

List of available modifiers

weightStatistics

+

Methods Summary

+ + + + + + + + + + + + + + + +

add(name, weight[, weightUp, weightDown, shift])

Add a new weight

add_multivariation(name, weight, ...[, shift])

Add a new weight with multiple variations

partial_weight([include, exclude, modifier])

Partial event weight vector

weight([modifier])

Current event weight vector

+

Attributes Documentation

+
+
+variations
+

List of available modifiers

+
+ +
+
+weightStatistics
+
+ +

Methods Documentation

+
+
+add(name, weight, weightUp=None, weightDown=None, shift=False)[source]
+

Add a new weight

+

Adds a named correction to the event weight, and optionally also associated +systematic uncertainties.

+
+
Parameters:
+
    +
  • name (str) – name of correction

  • +
  • weight (numpy.ndarray) – the nominal event weight associated with the correction

  • +
  • weightUp (numpy.ndarray, optional) – weight with correction uncertainty shifted up (if available)

  • +
  • weightDown (numpy.ndarray, optional) – weight with correction uncertainty shifted down. If weightUp is supplied, and +the correction uncertainty is symmetric, this can be set to None to auto-calculate +the down shift as 1 / weightUp.

  • +
  • shift (bool, optional) – if True, interpret weightUp and weightDown as a relative difference (additive) to the +nominal value

  • +
+
+
+
+

Note

+

weightUp and weightDown are assumed to be rvalue-like and may be modified in-place by this function

+
+
+ +
+
+add_multivariation(name, weight, modifierNames, weightsUp, weightsDown, shift=False)[source]
+

Add a new weight with multiple variations

+

Each variation of a single weight is given a different modifier name. +This is particularly useful e.g. for btag SF variations.

+
+
Parameters:
+
    +
  • name (str) – name of correction

  • +
  • weight (numpy.ndarray) – the nominal event weight associated with the correction

  • +
  • modifierNames (list of str) – list of modifiers for each set of weights variation

  • +
  • weightsUp (list of numpy.ndarray) – weight with correction uncertainty shifted up (if available)

  • +
  • weightsDown (list of numpy.ndarray) – weight with correction uncertainty shifted down. If weightUp is supplied, and +the correction uncertainty is symmetric, this can be set to None to auto-calculate +the down shift as 1 / weightUp.

  • +
  • shift (bool, optional) – if True, interpret weightUp and weightDown as a relative difference (additive) to the +nominal value

  • +
+
+
+
+

Note

+

weightUp and weightDown are assumed to be rvalue-like and may be modified in-place by this function

+
+
+ +
+
+partial_weight(include=[], exclude=[], modifier=None)[source]
+

Partial event weight vector

+

Return a partial weight by multiplying a subset of all weights. +Can be operated either by specifying weights to include or +weights to exclude, but not both at the same time. The method +can only be used if the individual weights are stored via the +storeIndividual argument in the Weights initializer.

+
+
Parameters:
+
    +
  • include (list) – Weight names to include, defaults to []

  • +
  • exclude (list) – Weight names to exclude, defaults to []

  • +
  • modifier (str, optional) – if supplied, provide event weight corresponding to a particular +systematic uncertainty shift, of form str(name + 'Up') or (Down)

  • +
+
+
Returns:
+

weight – The weight vector, corresponding to only the effect of the +corrections specified.

+
+
Return type:
+

numpy.ndarray

+
+
+
+ +
+
+weight(modifier=None)[source]
+

Current event weight vector

+
+
Parameters:
+

modifier (str, optional) – if supplied, provide event weight corresponding to a particular +systematic uncertainty shift, of form str(name + 'Up') or (Down)

+
+
Returns:
+

weight – The weight vector, possibly modified by the effect of a given systematic variation.

+
+
Return type:
+

numpy.ndarray

+
+
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.btag_tools.BTagScaleFactor.html b/api/coffea.btag_tools.BTagScaleFactor.html new file mode 100644 index 000000000..c11ef0d64 --- /dev/null +++ b/api/coffea.btag_tools.BTagScaleFactor.html @@ -0,0 +1,295 @@ + + + + + + + BTagScaleFactor — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

BTagScaleFactor

+
+
+class coffea.btag_tools.BTagScaleFactor(filename, workingpoint, methods='comb,comb,incl', keep_df=False)[source]
+

Bases: object

+

A class holding one complete BTag scale factor for a given working point

+
+
Parameters:
+
    +
  • filename (str) – The BTag-formatted CSV file to read (accepts .csv, .csv.gz, etc.) +See pandas read_csv for all supported compressions.

  • +
  • workingpoint (str or int) – The working point, one of LOOSE, MEDIUM, TIGHT, or RESHAPE (0-3, respectively)

  • +
  • methods (str, optional) – The scale factor derivation method to use for each flavor, ‘b,c,light’ respectively. +Defaults to ‘comb,comb,incl’

  • +
  • keep_df (bool, optional) – If set true, keep the parsed dataframe as an attribute (.df) for later inspection

  • +
+
+
+

Attributes Summary

+ + + + + + + + + + + + + + + + + + + + + + + + +

FLAV_B

FLAV_C

FLAV_UDSG

LOOSE

MEDIUM

RESHAPE

TIGHT

+

Methods Summary

+ + + + + + + + + + + + +

__call__(systematic, flavor, eta, pt[, ...])

Call self as a function.

eval(systematic, flavor, eta, pt[, discr, ...])

Evaluate this scale factor as a function of jet properties

readcsv(filename)

Reads a BTag-formmated CSV file into a pandas dataframe

+

Attributes Documentation

+
+
+FLAV_B = 0
+
+ +
+
+FLAV_C = 1
+
+ +
+
+FLAV_UDSG = 2
+
+ +
+
+LOOSE = 0
+
+ +
+
+MEDIUM = 1
+
+ +
+
+RESHAPE = 3
+
+ +
+
+TIGHT = 2
+
+ +

Methods Documentation

+
+
+__call__(systematic, flavor, eta, pt, discr=None, ignore_missing=False)[source]
+

Call self as a function.

+
+ +
+
+eval(systematic, flavor, eta, pt, discr=None, ignore_missing=False)[source]
+

Evaluate this scale factor as a function of jet properties

+
+
Parameters:
+
    +
  • systematic (str) – Which systematic to evaluate. Nominal correction is ‘central’, the options depend +on the scale factor and method

  • +
  • flavor (numpy.ndarray or awkward.Array) – The generated jet hadron flavor, following the enumeration: +0: uds quark or gluon, 4: charm quark, 5: bottom quark

  • +
  • eta (numpy.ndarray or awkward.Array) – The jet pseudorapitiy

  • +
  • pt (numpy.ndarray or awkward.Array) – The jet transverse momentum

  • +
  • discr (numpy.ndarray or awkward.Array, optional) – The jet tagging discriminant value (default None), optional for all scale factors except +the reshaping scale factor

  • +
  • ignore_missing (bool, optional) – If set true, any values that have no correction will return 1. instead of throwing +an exception. Out-of-bounds values are always clipped to the nearest bin.

  • +
+
+
Returns:
+

out – An array with shape matching pt, containing the per-jet scale factor

+
+
Return type:
+

numpy.ndarray or awkward.Array

+
+
+
+ +
+
+classmethod readcsv(filename)[source]
+

Reads a BTag-formmated CSV file into a pandas dataframe

+

This function also merges the bin min and max into a tuple representing the bin

+
+
Parameters:
+

filename (str) – The file to open

+
+
Returns:
+

    +
  • df (pandas.DataFrame) – A dataframe containing all info in the file

  • +
  • discriminator (str) – The name of the discriminator the correction map is for

  • +
+

+
+
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.dataset_tools.apply_to_dataset.html b/api/coffea.dataset_tools.apply_to_dataset.html new file mode 100644 index 000000000..8fe7f1c8f --- /dev/null +++ b/api/coffea.dataset_tools.apply_to_dataset.html @@ -0,0 +1,179 @@ + + + + + + + apply_to_dataset — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

apply_to_dataset

+
+
+coffea.dataset_tools.apply_to_dataset(data_manipulation: ~coffea.processor.processor.ProcessorABC | ~typing.Callable[[~dask_awkward.lib.core.Array], ~dask.base.DaskMethodsMixin | ~typing.Dict[~typing.Hashable, ~dask.base.DaskMethodsMixin] | ~typing.Set[~dask.base.DaskMethodsMixin] | ~typing.List[~dask.base.DaskMethodsMixin] | ~typing.Tuple[~dask.base.DaskMethodsMixin] | ~typing.Tuple[~dask.base.DaskMethodsMixin | ~typing.Dict[~typing.Hashable, ~dask.base.DaskMethodsMixin] | ~typing.Set[~dask.base.DaskMethodsMixin] | ~typing.List[~dask.base.DaskMethodsMixin] | ~typing.Tuple[~dask.base.DaskMethodsMixin], ...]], dataset: ~coffea.dataset_tools.preprocess.DatasetSpec | ~coffea.dataset_tools.preprocess.DatasetSpecOptional, schemaclass: ~coffea.nanoevents.schemas.base.BaseSchema = <class 'coffea.nanoevents.schemas.nanoaod.NanoAODSchema'>, metadata: dict[~typing.Hashable, ~typing.Any] = {}, uproot_options: dict[str, ~typing.Any] = {}) DaskMethodsMixin | Dict[Hashable, DaskMethodsMixin] | Set[DaskMethodsMixin] | List[DaskMethodsMixin] | Tuple[DaskMethodsMixin] | Tuple[DaskMethodsMixin | Dict[Hashable, DaskMethodsMixin] | Set[DaskMethodsMixin] | List[DaskMethodsMixin] | Tuple[DaskMethodsMixin], ...] | tuple[DaskMethodsMixin | Dict[Hashable, DaskMethodsMixin] | Set[DaskMethodsMixin] | List[DaskMethodsMixin] | Tuple[DaskMethodsMixin] | Tuple[DaskMethodsMixin | Dict[Hashable, DaskMethodsMixin] | Set[DaskMethodsMixin] | List[DaskMethodsMixin] | Tuple[DaskMethodsMixin], ...], Array][source]
+

Apply the supplied function or processor to the supplied dataset. +:param data_manipulation: The user analysis code to run on the input dataset +:type data_manipulation: ProcessorABC or GenericHEPAnalysis +:param dataset: The data to be acted upon by the data manipulation passed in. +:type dataset: DatasetSpec | DatasetSpecOptional +:param schemaclass: The nanoevents schema to interpret the input dataset with. +:type schemaclass: BaseSchema, default NanoAODSchema +:param metadata: Metadata for the dataset that is accessible by the input analysis. Should also be dask-serializable. +:type metadata: dict[Hashable, Any], default {} +:param uproot_options: Options to pass to uproot. Pass at least {“allow_read_errors_with_report”: True} to turn on file access reports. +:type uproot_options: dict[str, Any], default {}

+
+
Returns:
+

    +
  • out (DaskOutputType) – The output of the analysis workflow applied to the dataset

  • +
  • report (dask_awkward.Array, optional) – The file access report for running the analysis on the input dataset. Needs to be computed in simultaneously with the analysis to be accurate.

  • +
+

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.dataset_tools.apply_to_fileset.html b/api/coffea.dataset_tools.apply_to_fileset.html new file mode 100644 index 000000000..5a238c125 --- /dev/null +++ b/api/coffea.dataset_tools.apply_to_fileset.html @@ -0,0 +1,177 @@ + + + + + + + apply_to_fileset — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

apply_to_fileset

+
+
+coffea.dataset_tools.apply_to_fileset(data_manipulation: ~coffea.processor.processor.ProcessorABC | ~typing.Callable[[~dask_awkward.lib.core.Array], ~dask.base.DaskMethodsMixin | ~typing.Dict[~typing.Hashable, ~dask.base.DaskMethodsMixin] | ~typing.Set[~dask.base.DaskMethodsMixin] | ~typing.List[~dask.base.DaskMethodsMixin] | ~typing.Tuple[~dask.base.DaskMethodsMixin] | ~typing.Tuple[~dask.base.DaskMethodsMixin | ~typing.Dict[~typing.Hashable, ~dask.base.DaskMethodsMixin] | ~typing.Set[~dask.base.DaskMethodsMixin] | ~typing.List[~dask.base.DaskMethodsMixin] | ~typing.Tuple[~dask.base.DaskMethodsMixin], ...]], fileset: ~typing.Dict[str, ~coffea.dataset_tools.preprocess.DatasetSpec] | ~typing.Dict[str, ~coffea.dataset_tools.preprocess.DatasetSpecOptional], schemaclass: ~coffea.nanoevents.schemas.base.BaseSchema = <class 'coffea.nanoevents.schemas.nanoaod.NanoAODSchema'>, uproot_options: dict[str, ~typing.Any] = {}) dict[str, DaskMethodsMixin | Dict[Hashable, DaskMethodsMixin] | Set[DaskMethodsMixin] | List[DaskMethodsMixin] | Tuple[DaskMethodsMixin] | Tuple[DaskMethodsMixin | Dict[Hashable, DaskMethodsMixin] | Set[DaskMethodsMixin] | List[DaskMethodsMixin] | Tuple[DaskMethodsMixin], ...]] | tuple[dict[str, DaskMethodsMixin | Dict[Hashable, DaskMethodsMixin] | Set[DaskMethodsMixin] | List[DaskMethodsMixin] | Tuple[DaskMethodsMixin] | Tuple[DaskMethodsMixin | Dict[Hashable, DaskMethodsMixin] | Set[DaskMethodsMixin] | List[DaskMethodsMixin] | Tuple[DaskMethodsMixin], ...]], Array][source]
+

Apply the supplied function or processor to the supplied fileset (set of datasets). +:param data_manipulation: The user analysis code to run on the input dataset +:type data_manipulation: ProcessorABC or GenericHEPAnalysis +:param fileset: The data to be acted upon by the data manipulation passed in. Metadata within the fileset should be dask-serializable. +:type fileset: FilesetSpec | FilesetSpecOptional +:param schemaclass: The nanoevents schema to interpret the input dataset with. +:type schemaclass: BaseSchema, default NanoAODSchema +:param uproot_options: Options to pass to uproot. Pass at least {“allow_read_errors_with_report”: True} to turn on file access reports. +:type uproot_options: dict[str, Any], default {}

+
+
Returns:
+

    +
  • out (dict[str, DaskOutputType]) – The output of the analysis workflow applied to the datasets, keyed by dataset name.

  • +
  • report (dask_awkward.Array, optional) – The file access report for running the analysis on the input dataset. Needs to be computed in simultaneously with the analysis to be accurate.

  • +
+

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.dataset_tools.filter_files.html b/api/coffea.dataset_tools.filter_files.html new file mode 100644 index 000000000..498556ae6 --- /dev/null +++ b/api/coffea.dataset_tools.filter_files.html @@ -0,0 +1,172 @@ + + + + + + + filter_files — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

filter_files

+
+
+coffea.dataset_tools.filter_files(fileset: ~typing.Dict[str, ~coffea.dataset_tools.preprocess.DatasetSpec], thefilter: ~typing.Callable[[tuple[str, ~coffea.dataset_tools.preprocess.CoffeaFileSpec]], bool] = <function _default_filter>) Dict[str, DatasetSpec][source]
+

Modify the input dataset so that only the files of each dataset that pass the filter remain. +:param fileset: The set of datasets to be sliced. +:type fileset: FilesetSpec +:param thefilter: How to filter the files in the each dataset. +:type thefilter: Callable[[tuple[str, CoffeaFileSpec]], bool], default filters empty files

+
+
Returns:
+

out – The reduce fileset with only the files specified by thefilter left.

+
+
Return type:
+

FilesetSpec

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.dataset_tools.get_failed_steps_for_dataset.html b/api/coffea.dataset_tools.get_failed_steps_for_dataset.html new file mode 100644 index 000000000..76670696b --- /dev/null +++ b/api/coffea.dataset_tools.get_failed_steps_for_dataset.html @@ -0,0 +1,172 @@ + + + + + + + get_failed_steps_for_dataset — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

get_failed_steps_for_dataset

+
+
+coffea.dataset_tools.get_failed_steps_for_dataset(dataset: DatasetSpec, report: Array) DatasetSpec[source]
+

Modify an input dataset to only contain the files and row-ranges for failed processing jobs as specified in the supplied report. +:param dataset: The dataset to be reduced to only contain files and row-ranges that have previously encountered failed file access. +:type dataset: DatasetSpec +:param report: The computed file-access error report from dask-awkward. +:type report: awkward.Array

+
+
Returns:
+

out – The reduced dataset with only the row-ranges and files that failed processing, according to the input report.

+
+
Return type:
+

DatasetSpec

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.dataset_tools.get_failed_steps_for_fileset.html b/api/coffea.dataset_tools.get_failed_steps_for_fileset.html new file mode 100644 index 000000000..b88dc24bc --- /dev/null +++ b/api/coffea.dataset_tools.get_failed_steps_for_fileset.html @@ -0,0 +1,172 @@ + + + + + + + get_failed_steps_for_fileset — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

get_failed_steps_for_fileset

+
+
+coffea.dataset_tools.get_failed_steps_for_fileset(fileset: Dict[str, DatasetSpec], report_dict: dict[str, Array])[source]
+

Modify an input dataset to only contain the files and row-ranges for failed processing jobs as specified in the supplied report. +:param fileset: The set of datasets to be reduced to only contain files and row-ranges that have previously encountered failed file access. +:type fileset: FilesetSpec +:param report_dict: The computed file-access error reports from dask-awkward, indexed by dataset name. +:type report_dict: dict[str, awkward.Array]

+
+
Returns:
+

out – The reduced dataset with only the row-ranges and files that failed processing, according to the input report.

+
+
Return type:
+

FilesetSpec

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.dataset_tools.max_chunks.html b/api/coffea.dataset_tools.max_chunks.html new file mode 100644 index 000000000..61454673b --- /dev/null +++ b/api/coffea.dataset_tools.max_chunks.html @@ -0,0 +1,172 @@ + + + + + + + max_chunks — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

max_chunks

+
+
+coffea.dataset_tools.max_chunks(fileset: Dict[str, DatasetSpec], maxchunks: int | None = None) Dict[str, DatasetSpec][source]
+

Modify the input dataset so that only the first “maxchunks” chunks of each file will be processed. +:param fileset: The set of datasets reduce to max-chunks row-ranges. +:type fileset: FilesetSpec +:param maxchunks: How many chunks to keep for each file. +:type maxchunks: int | None, default None

+
+
Returns:
+

out – The reduced fileset with only the first maxchunks event ranges left in.

+
+
Return type:
+

FilesetSpec

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.dataset_tools.max_files.html b/api/coffea.dataset_tools.max_files.html new file mode 100644 index 000000000..b5704da35 --- /dev/null +++ b/api/coffea.dataset_tools.max_files.html @@ -0,0 +1,172 @@ + + + + + + + max_files — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

max_files

+
+
+coffea.dataset_tools.max_files(fileset: Dict[str, DatasetSpec], maxfiles: int | None = None) Dict[str, DatasetSpec][source]
+

Modify the input dataset so that only the first “maxfiles” files of each dataset will be processed. +:param fileset: The set of datasets reduce to max-files files per dataset. +:type fileset: FilesetSpec +:param maxfiles: How many files to keep for each dataset. +:type maxfiles: int | None, default None

+
+
Returns:
+

out – The reduced fileset with only the first maxfiles files left in.

+
+
Return type:
+

FilesetSpec

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.dataset_tools.preprocess.html b/api/coffea.dataset_tools.preprocess.html new file mode 100644 index 000000000..01719593d --- /dev/null +++ b/api/coffea.dataset_tools.preprocess.html @@ -0,0 +1,188 @@ + + + + + + + preprocess — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

preprocess

+
+
+coffea.dataset_tools.preprocess(fileset: ~typing.Dict[str, ~coffea.dataset_tools.preprocess.DatasetSpecOptional], step_size: None | int = None, align_clusters: bool = False, recalculate_steps: bool = False, files_per_batch: int = 1, skip_bad_files: bool = False, file_exceptions: Exception | Warning | tuple[Exception | Warning] = (<class 'OSError'>,), save_form: bool = False, scheduler: None | ~typing.Callable | str = None, uproot_options: dict = {}, step_size_safety_factor: float = 0.5, allow_empty_datasets: bool = False) tuple[Dict[str, DatasetSpec], Dict[str, DatasetSpecOptional]][source]
+

Given a list of normalized file and object paths (defined in uproot), determine the steps for each file according to the supplied processing options.

+
+
Parameters:
+
    +
  • fileset (FilesetSpecOptional) – The set of datasets whose files will be preprocessed.

  • +
  • step_size (int | None, default None) – If specified, the size of the steps to make when analyzing the input files.

  • +
  • align_clusters (bool, default False) – Round to the cluster size in a root file, when chunks are specified. Reduces data transfer in +analysis.

  • +
  • recalculate_steps (bool, default False) – If steps are present in the input normed files, force the recalculation of those steps, +instead of only recalculating the steps if the uuid has changed.

  • +
  • skip_bad_files (bool, False) – Instead of failing, catch exceptions specified by file_exceptions and return null data.

  • +
  • file_exceptions (Exception | Warning | tuple[Exception | Warning], default (FileNotFoundError, OSError)) – What exceptions to catch when skipping bad files.

  • +
  • save_form (bool, default False) – Extract the form of the TTree from each file in each dataset, creating the union of the forms over the dataset.

  • +
  • scheduler (None | Callable | str, default None) – Specifies the scheduler that dask should use to execute the preprocessing task graph.

  • +
  • uproot_options (dict, default {}) – Options to pass to get_steps for opening files with uproot.

  • +
  • step_size_safety_factor (float, default 0.5) – When using align_clusters, if a resulting step is larger than step_size by this factor +warn the user that the resulting steps may be highly irregular.

  • +
  • allow_empty_datasets (bool, default False) – When a dataset query comes back completely empty, this is normally considered a processing error. +Toggle this argument to True to change this to warnings and allow incomplete returned filesets.

  • +
+
+
Returns:
+

    +
  • out_available (FilesetSpec) – The subset of files in each dataset that were successfully preprocessed, organized by dataset.

  • +
  • out_updated (FilesetSpecOptional) – The original set of datasets including files that were not accessible, updated to include the result of preprocessing where available.

  • +
+

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.dataset_tools.slice_chunks.html b/api/coffea.dataset_tools.slice_chunks.html new file mode 100644 index 000000000..9b0bd1bd1 --- /dev/null +++ b/api/coffea.dataset_tools.slice_chunks.html @@ -0,0 +1,172 @@ + + + + + + + slice_chunks — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

slice_chunks

+
+
+coffea.dataset_tools.slice_chunks(fileset: Dict[str, DatasetSpec], theslice: Any = slice(None, None, None)) Dict[str, DatasetSpec][source]
+

Modify the input dataset so that only the chunks of each file specified by the input slice are processed. +:param fileset: The set of datasets to be sliced. +:type fileset: FilesetSpec +:param theslice: How to slice the array of row-ranges (steps) in the input fileset. +:type theslice: Any, default slice(None)

+
+
Returns:
+

out – The reduce fileset with only the row-ranges specific by theslice left.

+
+
Return type:
+

FilesetSpec

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.dataset_tools.slice_files.html b/api/coffea.dataset_tools.slice_files.html new file mode 100644 index 000000000..92ab7a061 --- /dev/null +++ b/api/coffea.dataset_tools.slice_files.html @@ -0,0 +1,172 @@ + + + + + + + slice_files — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

slice_files

+
+
+coffea.dataset_tools.slice_files(fileset: Dict[str, DatasetSpec], theslice: Any = slice(None, None, None)) Dict[str, DatasetSpec][source]
+

Modify the input dataset so that only the files of each dataset specified by the input slice are processed. +:param fileset: The set of datasets to be sliced. +:type fileset: FilesetSpec +:param theslice: How to slice the array of files in the input datasets. We slice in key-order. +:type theslice: Any, default slice(None)

+
+
Returns:
+

out – The reduce fileset with only the files specified by theslice left.

+
+
Return type:
+

FilesetSpec

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.jetmet_tools.CorrectedJetsFactory.html b/api/coffea.jetmet_tools.CorrectedJetsFactory.html new file mode 100644 index 000000000..5c2082180 --- /dev/null +++ b/api/coffea.jetmet_tools.CorrectedJetsFactory.html @@ -0,0 +1,180 @@ + + + + + + + CorrectedJetsFactory — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CorrectedJetsFactory

+
+
+class coffea.jetmet_tools.CorrectedJetsFactory(name_map, jec_stack)[source]
+

Bases: object

+

Methods Summary

+ + + + + + + + + +

build(injets)

uncertainties()

+

Methods Documentation

+
+
+build(injets)[source]
+
+ +
+
+uncertainties()[source]
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.jetmet_tools.CorrectedMETFactory.html b/api/coffea.jetmet_tools.CorrectedMETFactory.html new file mode 100644 index 000000000..531f25148 --- /dev/null +++ b/api/coffea.jetmet_tools.CorrectedMETFactory.html @@ -0,0 +1,180 @@ + + + + + + + CorrectedMETFactory — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CorrectedMETFactory

+
+
+class coffea.jetmet_tools.CorrectedMETFactory(name_map)[source]
+

Bases: object

+

Methods Summary

+ + + + + + + + + +

build(in_MET, in_corrected_jets)

uncertainties()

+

Methods Documentation

+
+
+build(in_MET, in_corrected_jets)[source]
+
+ +
+
+uncertainties()[source]
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.jetmet_tools.FactorizedJetCorrector.html b/api/coffea.jetmet_tools.FactorizedJetCorrector.html new file mode 100644 index 000000000..3a6f6dbb4 --- /dev/null +++ b/api/coffea.jetmet_tools.FactorizedJetCorrector.html @@ -0,0 +1,215 @@ + + + + + + + FactorizedJetCorrector — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

FactorizedJetCorrector

+
+
+class coffea.jetmet_tools.FactorizedJetCorrector(**kwargs)[source]
+

Bases: object

+

This class is a columnar implementation of the FactorizedJetCorrector tool in +CMSSW and FWLite. It applies a series of JECs in ascending order as defined by +‘_level_order’, and checks for the consistency of input corrections.

+

It implements the jet energy correction definition specified in the JEC TWiki.

+

You can use this class as follows:

+
fjc = FactorizedJetCorrector(name1=corrL1,...)
+jetCorrs = fjc(JetParameter1=jet.parameter1,...)
+
+
+

Attributes Summary

+ + + + + + +

signature

list the necessary jet properties that must be input to this function

+

Methods Summary

+ + + + + + + + + +

getCorrection(**kwargs)

Returns the set of corrections for all input jets at the highest available level

getSubCorrections(**kwargs)

Returns the set of corrections for all input jets broken down by level

+

Attributes Documentation

+
+
+signature
+

list the necessary jet properties that must be input to this function

+
+ +

Methods Documentation

+
+
+getCorrection(**kwargs)[source]
+

Returns the set of corrections for all input jets at the highest available level

+

Use it like:

+
jecs = corrector.getCorrection(JetProperty1=jet.property1,...)
+
+
+
+ +
+
+getSubCorrections(**kwargs)[source]
+

Returns the set of corrections for all input jets broken down by level

+

Use it like:

+
jecs = corrector.getSubCorrections(JetProperty1=jet.property1,...)
+#'jecs' will be formatted like [[jec_jet1 jec_jet2 ...] ...]
+
+
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.jetmet_tools.JECStack.html b/api/coffea.jetmet_tools.JECStack.html new file mode 100644 index 000000000..f05fb45a6 --- /dev/null +++ b/api/coffea.jetmet_tools.JECStack.html @@ -0,0 +1,204 @@ + + + + + + + JECStack — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

JECStack

+
+
+class coffea.jetmet_tools.JECStack(corrections, jec=None, junc=None, jer=None, jersf=None)[source]
+

Bases: object

+

Attributes Summary

+ + + + + + + + + + + + + + + + + + +

blank_name_map

jec

jer

jersf

junc

+

Attributes Documentation

+
+
+blank_name_map
+
+ +
+
+jec
+
+ +
+
+jer
+
+ +
+
+jersf
+
+ +
+
+junc
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.jetmet_tools.JetCorrectionUncertainty.html b/api/coffea.jetmet_tools.JetCorrectionUncertainty.html new file mode 100644 index 000000000..bf52d342f --- /dev/null +++ b/api/coffea.jetmet_tools.JetCorrectionUncertainty.html @@ -0,0 +1,212 @@ + + + + + + + JetCorrectionUncertainty — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

JetCorrectionUncertainty

+
+
+class coffea.jetmet_tools.JetCorrectionUncertainty(**kwargs)[source]
+

Bases: object

+

This class is a columnar implementation of the JetCorrectionUncertainty tool in +CMSSW and FWLite. It calculates the jet energy scale uncertainty for a corrected jet +in a given binning.

+

It implements the jet energy correction definition specified in the JES Uncertainty TWiki.

+

You can use this class as follows:

+
jcu = JetCorrectionUncertainty(name1=corrL1,...)
+jetUncs = jcu(JetParameter1=jet.parameter1,...)
+
+
+

Attributes Summary

+ + + + + + + + + +

levels

list the different sources of uncertainty

signature

list the necessary jet properties that must be input to this function

+

Methods Summary

+ + + + + + +

getUncertainty(**kwargs)

Returns the set of uncertainties for all input jets for all the levels (== sources)

+

Attributes Documentation

+
+
+levels
+

list the different sources of uncertainty

+
+ +
+
+signature
+

list the necessary jet properties that must be input to this function

+
+ +

Methods Documentation

+
+
+getUncertainty(**kwargs)[source]
+

Returns the set of uncertainties for all input jets for all the levels (== sources)

+

Use it like:

+
juncs = uncertainty.getUncertainty(JetProperty1=jet.property1,...)
+#'juncs' will be formatted like [('SourceName', [[up_val down_val]_jet1 ... ]), ...]
+#in a zip iterator
+
+
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.jetmet_tools.JetResolution.html b/api/coffea.jetmet_tools.JetResolution.html new file mode 100644 index 000000000..ac638e70a --- /dev/null +++ b/api/coffea.jetmet_tools.JetResolution.html @@ -0,0 +1,201 @@ + + + + + + + JetResolution — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

JetResolution

+
+
+class coffea.jetmet_tools.JetResolution(**kwargs)[source]
+

Bases: object

+

This class is a columnar implementation of the JetResolution tool in +CMSSW and FWLite. It calculates the jet energy resolution for a corrected jet +in a given binning.

+

It implements the jet energy correction definition specified in the JER TWiki.

+

You can use this class as follows:

+
jr = JetResolution(name1=corrL1,...)
+jetRes = jr(JetParameter1=jet.parameter1,...)
+
+
+

Attributes Summary

+ + + + + + +

signature

list the necessary jet properties that must be input to this function

+

Methods Summary

+ + + + + + +

getResolution(**kwargs)

Returns the set of resolutions for all input jets at the highest available level

+

Attributes Documentation

+
+
+signature
+

list the necessary jet properties that must be input to this function

+
+ +

Methods Documentation

+
+
+getResolution(**kwargs)[source]
+

Returns the set of resolutions for all input jets at the highest available level

+

Use it like:

+
jrs = reso.getResolution(JetProperty1=jet.property1,...)
+
+
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.jetmet_tools.JetResolutionScaleFactor.html b/api/coffea.jetmet_tools.JetResolutionScaleFactor.html new file mode 100644 index 000000000..aaeaa2b08 --- /dev/null +++ b/api/coffea.jetmet_tools.JetResolutionScaleFactor.html @@ -0,0 +1,201 @@ + + + + + + + JetResolutionScaleFactor — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

JetResolutionScaleFactor

+
+
+class coffea.jetmet_tools.JetResolutionScaleFactor(**kwargs)[source]
+

Bases: object

+

This class is a columnar implementation of the JetResolutionScaleFactor tool in +CMSSW and FWLite. It calculates the jet energy resolution scale factor for a +corrected jet in a given binning.

+

It implements the jet energy scale factor definition specified in the JER TWiki.

+

You can use this class as follows:

+
jersf = JetResolutionScaleFactor(name1=corrL1,...)
+jetResSF = jersf(JetParameter1=jet.parameter1,...)
+
+
+

Attributes Summary

+ + + + + + +

signature

list the necessary jet properties that must be input to this function

+

Methods Summary

+ + + + + + +

getScaleFactor(**kwargs)

Returns the set of resolutions for all input jets at the highest available level

+

Attributes Documentation

+
+
+signature
+

list the necessary jet properties that must be input to this function

+
+ +

Methods Documentation

+
+
+getScaleFactor(**kwargs)[source]
+

Returns the set of resolutions for all input jets at the highest available level

+

Use it like:

+
jersfs = jersf.getScaleFactor(JetProperty1=jet.property1,...)
+
+
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.lookup_tools.evaluator.html b/api/coffea.lookup_tools.evaluator.html new file mode 100644 index 000000000..369c0cbee --- /dev/null +++ b/api/coffea.lookup_tools.evaluator.html @@ -0,0 +1,183 @@ + + + + + + + evaluator — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

evaluator

+
+
+class coffea.lookup_tools.evaluator(names, types, primitives)[source]
+

Bases: object

+

The evaluator class serves as a single point of entry for +looking up values of histograms and other functions read in +with the extractor class. Stored look ups can be indexed by +name and then called through an overloaded __call__ function.

+

Example:

+
#assuming 'eta' and 'pt' are array like objects
+wgts = "testSF2d scalefactors_Tight_Electron tests/samples/testSF2d.histo.root"
+extractor.add_weight_sets([wgts])
+extractor.finalize(reduce_list=['testSF2d'])
+evaluator = extractor.make_evaluator()
+out = evaluator["testSF2d"](eta, pt)
+
+
+

The returned value has the same shape as the input arguments.

+

lookup_types is a map of possible constructors for extracted data

+

Methods Summary

+ + + + + + +

keys()

returns the available functions

+

Methods Documentation

+
+
+keys()[source]
+

returns the available functions

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.lookup_tools.extractor.html b/api/coffea.lookup_tools.extractor.html new file mode 100644 index 000000000..9911dc421 --- /dev/null +++ b/api/coffea.lookup_tools.extractor.html @@ -0,0 +1,239 @@ + + + + + + + extractor — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

extractor

+
+
+class coffea.lookup_tools.extractor[source]
+

Bases: object

+

This class defines a common entry point for defining functions that extract +the inputs to build lookup tables from various kinds of files.

+

The files that can be converted are presently defined in the “file_converters” dict.

+
+
The file names are used to determine the converter that is used, i.e.:

something.TYPE.FORMAT will apply the TYPE extractor to a file of given FORMAT

+
+
+

If there is no file type specifier the ‘default’ value is used.

+
+
The extractor class supports a number of useful file formats by default:
    +
  • .histo.root : 1,2, and 3 dimensional histograms in root files.

  • +
  • .histo.json : N-dimensional histograms stored in JSON format.

  • +
  • .ea.txt : CMS EGM effective area text files.

  • +
  • ‘.[jec, jersf, jr, junc].txt’ : CMS JME jet energy corrections and systematic error text files.

  • +
+
+
+

It is possible to extend the functionality of lookup_tools.extractor by editing coffea.lookup_tools.file_converters to add new types and formats.

+
+
You can add sets of lookup tables / weights by calling:

extractor.add_weight_set(<description>)

+
+
<description> is formatted like ‘<nickname> <name-in-file> <the file to extract>’

* can be used as a wildcard to import all available lookup tables in a file

+
+
+

Methods Summary

+ + + + + + + + + + + + + + + + + + + + + +

add_weight_set(local_name, thetype, weights)

adds one extracted weight to the extractor

add_weight_sets(weightsdescs)

expects a list of text lines to be formatted as '<local name> <name> <weights file>' allows * * <file> and <prefix> * <file> to do easy imports of whole file

extract_from_file(thefile, name)

import a file and then extract a lookup set

finalize([reduce_list])

stop any further imports and if provided pare down the stored histograms to those specified in reduce_list

import_file(thefile)

cache the whole contents of a file for later processing

make_evaluator()

produce an evaluator based on the finalized extractor

+

Methods Documentation

+
+
+add_weight_set(local_name, thetype, weights)[source]
+

adds one extracted weight to the extractor

+
+ +
+
+add_weight_sets(weightsdescs)[source]
+

expects a list of text lines to be formatted as ‘<local name> <name> <weights file>’ +allows * * <file> and <prefix> * <file> to do easy imports of whole file

+
+ +
+
+extract_from_file(thefile, name)[source]
+

import a file and then extract a lookup set

+
+ +
+
+finalize(reduce_list=None)[source]
+

stop any further imports and if provided pare down +the stored histograms to those specified in reduce_list

+
+ +
+
+import_file(thefile)[source]
+

cache the whole contents of a file for later processing

+
+ +
+
+make_evaluator()[source]
+

produce an evaluator based on the finalized extractor

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.lumi_tools.LumiData.html b/api/coffea.lumi_tools.LumiData.html new file mode 100644 index 000000000..e1635f30d --- /dev/null +++ b/api/coffea.lumi_tools.LumiData.html @@ -0,0 +1,204 @@ + + + + + + + LumiData — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

LumiData

+
+
+class coffea.lumi_tools.LumiData(lumi_csv, is_inst_lumi=False)[source]
+

Bases: object

+

Holds per-lumiSection integrated lumi values

+
+
Parameters:
+

lumi_csv (str) – The path the the luminosity csv output file

+
+
+

The values are extracted from the csv output as returned by brilcalc, e.g. with a command such as:

+
brilcalc lumi -c /cvmfs/cms.cern.ch/SITECONF/local/JobConfig/site-local-config.xml \
+         -b "STABLE BEAMS" --normtag=/cvmfs/cms-bril.cern.ch/cms-lumi-pog/Normtags/normtag_PHYSICS.json \
+         -u /pb --byls --output-style csv -i Cert_294927-306462_13TeV_PromptReco_Collisions17_JSON.txt > lumi2017.csv
+
+
+

Note that some brilcalc files may be in different units than inverse picobarns, including possibly average instantaneous luminosity. +You should make sure that you understand the units of the LumiData file you are using before calculating luminosity with this tool. +If you are using a LumiData file containing avg. inst. luminosity, make sure to set is_inst_lumi=True in the constructor of this class.

+

Attributes Summary

+ + + + + + +

seconds_per_lumi_LHC

+

Methods Summary

+ + + + + + +

get_lumi(runlumis)

Calculate integrated lumi

+

Attributes Documentation

+
+
+seconds_per_lumi_LHC = 23.310991192395022
+
+ +

Methods Documentation

+
+
+get_lumi(runlumis)[source]
+

Calculate integrated lumi

+
+
Parameters:
+

runlumis (numpy.ndarray or LumiList) – A 2d numpy array of [[run,lumi], [run,lumi], ...] or LumiList object +of the lumiSections to integrate over.

+
+
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.lumi_tools.LumiList.html b/api/coffea.lumi_tools.LumiList.html new file mode 100644 index 000000000..32c7921a3 --- /dev/null +++ b/api/coffea.lumi_tools.LumiList.html @@ -0,0 +1,180 @@ + + + + + + + LumiList — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

LumiList

+
+
+class coffea.lumi_tools.LumiList(runs=None, lumis=None, delayed=True)[source]
+

Bases: object

+

Mergeable list of unique (run, lumiSection) values

+

This list can be merged with another via +=.

+
+
Parameters:
+
    +
  • runs (numpy.ndarray, dask_awkward.Array) – Vectorized list of run numbers

  • +
  • lumis (numpy.ndarray, dask_awkward.Array) – Vectorized list of lumiSection values

  • +
  • delayed (bool) – Is this LumiList in delayed mode or not.

  • +
+
+
+

Methods Summary

+ + + + + + +

clear()

Clear current lumi list

+

Methods Documentation

+
+
+clear()[source]
+

Clear current lumi list

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.lumi_tools.LumiMask.html b/api/coffea.lumi_tools.LumiMask.html new file mode 100644 index 000000000..cca767219 --- /dev/null +++ b/api/coffea.lumi_tools.LumiMask.html @@ -0,0 +1,191 @@ + + + + + + + LumiMask — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

LumiMask

+
+
+class coffea.lumi_tools.LumiMask(jsonfile)[source]
+

Bases: object

+

Holds a luminosity mask index, and provides vectorized lookup

+
+
Parameters:
+

jsonfile (str) – Path the the ‘golden json’ file or other valid lumiSection database in json format.

+
+
+

This class parses a CMS lumi json into an efficient valid lumiSection lookup table

+

Methods Summary

+ + + + + + +

__call__(runs, lumis)

Check if run and lumi are valid

+

Methods Documentation

+
+
+__call__(runs, lumis)[source]
+

Check if run and lumi are valid

+
+
Parameters:
+
    +
  • runs (numpy.ndarray or awkward.highlevel.Array or dask_awkward.Array) – Vectorized list of run numbers

  • +
  • lumis (numpy.ndarray or awkward.highlevel.Array or dask_awkward.Array) – Vectorized list of lumiSection numbers

  • +
+
+
Returns:
+

mask_out – An array of dtype bool where valid (run, lumi) tuples +will have their corresponding entry set True.

+
+
Return type:
+

numpy.ndarray

+
+
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.ml_tools.numpy_call_wrapper.html b/api/coffea.ml_tools.numpy_call_wrapper.html new file mode 100644 index 000000000..99a25d4b6 --- /dev/null +++ b/api/coffea.ml_tools.numpy_call_wrapper.html @@ -0,0 +1,253 @@ + + + + + + + numpy_call_wrapper — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

numpy_call_wrapper

+
+
+class coffea.ml_tools.numpy_call_wrapper[source]
+

Bases: ABC

+

Wrapper for awkward.to_numpy evaluations for dask_awkward array inputs.

+

For tools outside the coffea package (like for ML inference), the inputs +typically expect a numpy-like input. This class wraps up the user-level +awkward->numpy data mangling and the underling numpy evaluation calls to +recognizable to dask.

+

For the class to be fully functional, the user must overload these methods:

+
    +
  • numpy_call: How the evaluation using all numpy tool be performed

  • +
  • prepare_awkward: How awkward arrays should be translated to the a numpy +format that is compatible with the numpy_call

  • +
+

Additionally, the following helper functions can be omitted, but will help +assist with either code debugging or for data mangling niceties.

+
    +
  • validate_numpy_input: makes sure the computation routine understand the +input.

  • +
  • numpy_to_awkward: Additional translation to convert numpy outputs to +awkward (defaults to a simple awkward.from_numpy conversion)

  • +
+

Methods Summary

+ + + + + + + + + + + + + + + + + + + + + +

__call__(*args, **kwargs)

Highest level abstraction to be directly called by the user.

get_awkward_lib(*args, **kwargs)

numpy_call(*args, **kwargs)

Underlying numpy-like evaluation.

postprocess_awkward(return_array, *args, ...)

Additional conversion from the numpy_call output back to awkward arrays.

prepare_awkward(*args, **kwargs)

Converting awkward-array like inputs into be numpy-compatible awkward-arrays compatible with the numpy_call method.

validate_numpy_input(*args, **kwargs)

Validating that the numpy-like input arguments are compatible with the underlying evaluation calls.

+

Methods Documentation

+
+
+__call__(*args, **kwargs)[source]
+

Highest level abstraction to be directly called by the user. Checks +whether the inputs has any awkward arrays or dask_awkward arrays, and +call the corresponding function if they are found. If no dask awkward or +awkward arrays are found, calling the underlying _call_numpy method.

+
+ +
+
+get_awkward_lib(*args, **kwargs)[source]
+
+ +
+
+abstract numpy_call(*args, **kwargs)[source]
+

Underlying numpy-like evaluation. This method should be reimplemented by +the user or by tool-specialized classes.

+
+ +
+
+postprocess_awkward(return_array, *args, **kwargs)[source]
+

Additional conversion from the numpy_call output back to awkward arrays. +This method does not need to need to be overloaded, but can make the +data-mangling that occurs outside the class cleaner (ex: additional +awkward unflatten calls). To ensure that the data mangling can occur, +the unformatted awkward-like inputs are also passed to this function.

+

For the base method, we will simply iterate over the containers and call +the default awkward.from_numpy conversion

+
+ +
+
+abstract prepare_awkward(*args, **kwargs) Tuple[source]
+

Converting awkward-array like inputs into be numpy-compatible awkward-arrays +compatible with the numpy_call method. The actual conversion to numpy is +handled automatically. The return value should be (*args, **kwargs) pair +that is compatible with the numpy_call.

+

Consult the following documentation to find the awkward operations +needed. +https://awkward-array.org/doc/main/user-guide/how-to-restructure-pad.html

+
+ +
+
+validate_numpy_input(*args, **kwargs) None[source]
+

Validating that the numpy-like input arguments are compatible with the +underlying evaluation calls. This function should raise an exception if +invalid input values are found. The base method performs no checks but +raises a warning that no checks were performed.

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.ml_tools.tf_wrapper.html b/api/coffea.ml_tools.tf_wrapper.html new file mode 100644 index 000000000..a635c60e3 --- /dev/null +++ b/api/coffea.ml_tools.tf_wrapper.html @@ -0,0 +1,188 @@ + + + + + + + tf_wrapper — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

tf_wrapper

+
+
+class coffea.ml_tools.tf_wrapper(tf_model: str)[source]
+

Bases: nonserializable_attribute, numpy_call_wrapper

+

Wrapper for running tensorflow inference with awkward/dask-awkward inputs.

+

Methods Summary

+ + + + + + + + + +

numpy_call(*args, **kwargs)

Evaluating the numpy inputs via the model.__call__ method.

validate_numpy_input(*args, **kwargs)

Here we are assuming that the model contains the required information for parsing the input numpy array(s), and that the input numpy array(s) is the first argument of the user method call.

+

Methods Documentation

+
+
+numpy_call(*args: array, **kwargs: array) array[source]
+

Evaluating the numpy inputs via the model.__call__ method. With a +trivial conversion for tensors for the numpy inputs.

+

TODO: Do we need to evaluate using predict [1]? Since array batching +is already handled by dask.

+

[1] +https://keras.io/getting_started/faq/#whats-the-difference-between-model-methods-predict-and-call

+
+ +
+
+validate_numpy_input(*args: array, **kwargs: array) None[source]
+

Here we are assuming that the model contains the required information +for parsing the input numpy array(s), and that the input numpy array(s) +is the first argument of the user method call.

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.ml_tools.torch_wrapper.html b/api/coffea.ml_tools.torch_wrapper.html new file mode 100644 index 000000000..125162d0a --- /dev/null +++ b/api/coffea.ml_tools.torch_wrapper.html @@ -0,0 +1,185 @@ + + + + + + + torch_wrapper — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

torch_wrapper

+
+
+class coffea.ml_tools.torch_wrapper(torch_jit: str)[source]
+

Bases: nonserializable_attribute, numpy_call_wrapper

+

Wrapper for running pytorch with awkward/dask-awkward inputs.

+

Methods Summary

+ + + + + + + + + +

numpy_call(*args, **kwargs)

Evaluating the numpy inputs via the model.

validate_numpy_input(*args, **kwargs)

Validating that the numpy-like input arguments are compatible with the underlying evaluation calls.

+

Methods Documentation

+
+
+numpy_call(*args: array, **kwargs: array) array[source]
+

Evaluating the numpy inputs via the model. Returning the results also as +as numpy array.

+
+ +
+
+validate_numpy_input(*args: array, **kwargs: array) None[source]
+

Validating that the numpy-like input arguments are compatible with the +underlying evaluation calls. This function should raise an exception if +invalid input values are found. The base method performs no checks but +raises a warning that no checks were performed.

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.ml_tools.triton_wrapper.html b/api/coffea.ml_tools.triton_wrapper.html new file mode 100644 index 000000000..3a6b1efed --- /dev/null +++ b/api/coffea.ml_tools.triton_wrapper.html @@ -0,0 +1,254 @@ + + + + + + + triton_wrapper — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

triton_wrapper

+
+
+class coffea.ml_tools.triton_wrapper(model_url: str, client_args: Dict | None = None, batch_size=-1)[source]
+

Bases: nonserializable_attribute, numpy_call_wrapper

+

Wrapper for running triton inference.

+

The target of this class is such that all triton specific operations are +wrapped and abstracted-away from the users. The users should then only needs +to handle awkward-level operations to mangle the arrays into the expected +input format required by the the model of interest.

+

Attributes Summary

+ + + + + + + + + + + + + + + + + + +

batch_size

Getting the batch size to be used for array splitting.

batch_size_fallback

client_args

Function for adding default arguments to the client constructor kwargs.

http_client_concurrency

pmod

Getting the protocol module based on the url protocol string.

+

Methods Summary

+ + + + + + + + + +

numpy_call(output_list, input_dict)

validate_numpy_input(output_list, input_dict)

tritonclient can return the expected input array dimensions and available output values.

+

Attributes Documentation

+
+
+batch_size
+

Getting the batch size to be used for array splitting. If it is +explicitly set by the users, use that; otherwise, extract from the model +configuration hosted on the server.

+
+ +
+
+batch_size_fallback = 10
+
+ +
+
+client_args
+

Function for adding default arguments to the client constructor kwargs.

+
+ +
+
+http_client_concurrency = 12
+
+ +
+
+pmod
+

Getting the protocol module based on the url protocol string.

+
+ +

Methods Documentation

+
+
+numpy_call(output_list: List[str], input_dict: Dict[str, array]) Dict[str, array][source]
+
+
Parameters:
+
    +
  • output_list (-) – of interest. These strings will be automatically translated into the +required tritonclient.InferRequestedOutput objects.

  • +
  • input_dict (-) – appropriate numpy array as the dictionary value. This dictionary is +automatically translated into a list of tritonclient.InferInput +objects.

  • +
+
+
Returns:
+

    +
  • The return will be the dictionary of numpy arrays that have the

  • +
  • output_list arguments as keys.

  • +
+

+
+
+
+ +
+
+validate_numpy_input(output_list: List[str], input_dict: Dict[str, array]) None[source]
+

tritonclient can return the expected input array dimensions and +available output values.

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.ml_tools.xgboost_wrapper.html b/api/coffea.ml_tools.xgboost_wrapper.html new file mode 100644 index 000000000..85718c79c --- /dev/null +++ b/api/coffea.ml_tools.xgboost_wrapper.html @@ -0,0 +1,189 @@ + + + + + + + xgboost_wrapper — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

xgboost_wrapper

+
+
+class coffea.ml_tools.xgboost_wrapper(fname)[source]
+

Bases: numpy_call_wrapper, nonserializable_attribute

+

Very simple wrapper for xgbooster inference. The xgboost.Booster object is +nonserializable, so the users should pass in the xgboost model file.

+

Methods Summary

+ + + + + + + + + +

numpy_call(data[, dmat_args, predict_args])

Passing the numpy array data as-is to the construction of an xgboost.DMatrix constructor (with additional keyword arguments should they be specified), the run the xgboost.Booster.predict method (with additional keyword arguments).

validate_numpy_input(data[, dmat_args, ...])

The inner most dimension of the data array should be smaller than the number of features of the xgboost model.

+

Methods Documentation

+
+
+numpy_call(data: ndarray, dmat_args: Dict | None = None, predict_args: Dict | None = None)[source]
+

Passing the numpy array data as-is to the construction of an +xgboost.DMatrix constructor (with additional keyword arguments should +they be specified), the run the xgboost.Booster.predict method (with +additional keyword arguments).

+
+ +
+
+validate_numpy_input(data: ndarray, dmat_args: Dict | None = None, predict_args: Dict | None = None)[source]
+

The inner most dimension of the data array should be smaller than the +number of features of the xgboost model. (Will raise a warning if +mismatched). We will not attempt to parse the kwargs passed to the +construction of a DMatrix, or the predict call, as those advanced +features are expected to be properly handled by the user.

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.BaseSchema.html b/api/coffea.nanoevents.BaseSchema.html new file mode 100644 index 000000000..2037a2ac9 --- /dev/null +++ b/api/coffea.nanoevents.BaseSchema.html @@ -0,0 +1,194 @@ + + + + + + + BaseSchema — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

BaseSchema

+
+
+class coffea.nanoevents.BaseSchema(base_form, *args, **kwargs)[source]
+

Bases: object

+

Base schema builder

+

The basic schema is essentially unchanged from the original ROOT file. +A top-level base.NanoEvents object is returned, where each original branch +form is accessible as a direct descendant.

+

Attributes Summary

+ + + + + + +

form

Awkward form of this schema

+

Methods Summary

+ + + + + + +

behavior()

Behaviors necessary to implement this schema

+

Attributes Documentation

+
+
+form
+

Awkward form of this schema

+
+ +

Methods Documentation

+
+
+classmethod behavior()[source]
+

Behaviors necessary to implement this schema

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.DelphesSchema.html b/api/coffea.nanoevents.DelphesSchema.html new file mode 100644 index 000000000..61ae58f7c --- /dev/null +++ b/api/coffea.nanoevents.DelphesSchema.html @@ -0,0 +1,230 @@ + + + + + + + DelphesSchema — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DelphesSchema

+
+
+class coffea.nanoevents.DelphesSchema(base_form, version='latest', *args, **kwargs)[source]
+

Bases: BaseSchema

+

Delphes schema builder

+

The Delphes schema is built from all branches found in the supplied file, based on +the naming pattern of the branches. The following additional arrays are constructed:

+
    +
  • Any branches named {name}_size are assumed to be counts branches and converted to offsets o{name}

  • +
+

Attributes Summary

+ + + + + + + + + + + + + + + +

docstrings

mixins

singletons

warn_missing_crossrefs

+

Methods Summary

+ + + + + + + + + +

behavior()

Behaviors necessary to implement this schema

v1(base_form)

Build the DelphesEvents

+

Attributes Documentation

+
+
+docstrings = {'AlphaQCD': 'value of the QCD coupling used in the event, see hep-ph/0109068', 'AlphaQED': 'value of the QED coupling used in the event, see hep-ph/0109068', 'Area': 'area', 'BTVSumPT2': 'sum pt^2 of tracks attached to the secondary vertex', 'BTag': '0 or 1 for a jet that has been tagged as containing a heavy quark', 'BTagAlgo': '0 or 1 for a jet that has been tagged as containing a heavy quark', 'BTagPhys': '0 or 1 for a jet that has been tagged as containing a heavy quark', 'Beta': '(sum pt of charged pile-up constituents)/(sum pt of charged constituents)', 'BetaStar': '(sum pt of charged constituents coming from hard interaction)/(sum pt of charged constituents)', 'Charge': 'charge', 'Constituents': 'references to constituents', 'CrossSection': 'cross-section in [pb]', 'CrossSectionError': 'cross-section error [pb]', 'CtgTheta': 'cotangent of theta', 'D0': 'transverse impact parameter', 'D1': 'particle first child', 'D2': 'particle last child', 'DZ': 'longitudinal impact parameter', 'E': 'energy [GeV]', 'ET': 'transverse energy [GeV]', 'Edges[2]': 'pseudorapidity range edges', 'Edges[4]': 'calorimeter tower edges', 'Eem': 'calorimeter tower electromagnetic energy', 'Ehad': 'calorimeter tower hadronic energy', 'EhadOverEem': 'ratio of the hadronic versus electromagnetic energy deposited in the calorimeter', 'ErrorCtgTheta': 'cotangent of theta error', 'ErrorD0': 'transverse impact parameter error', 'ErrorDZ': 'longitudinal impact parameter error', 'ErrorP': 'momentum error [GeV]', 'ErrorPT': 'transverse momentum error [GeV]', 'ErrorPhi': 'azimuthal angle error', 'ErrorT': 'vertex position error (t component)', 'ErrorX': 'vertex position error (x component)', 'ErrorY': 'vertex position error (y component)', 'ErrorZ': 'vertex position error (z component)', 'Eta': 'pseudorapidity', 'EtaOuter': 'pseudorapidity at the edge', 'Flavor': 'jet flavor', 'FlavorAlgo': 'jet flavor', 'FlavorPhys': 'jet flavor', 'FracPt[5]': '(sum pt of constituents within a ring 0.1*i < DeltaR < 0.1*(i+1))/(sum pt of constituents)', 'GenDeltaZ': 'distance in z to closest generated vertex', 'GenSumPT2': 'sum pt^2 of gen tracks attached to the vertex', 'HT': 'scalar sum of transverse momenta [GeV]', 'ID': 'ID', 'ID1': 'flavour code of first parton', 'ID2': 'flavour code of second parton', 'Index': 'index', 'IsPU': '0 or 1 for particles from pile-up interactions', 'IsolationVar': 'isolation variable', 'IsolationVarRhoCorr': 'isolation variable', 'L': 'path length', 'M1': 'particle first parent', 'M2': 'particle second parent', 'MET': 'missing transverse energy', 'MPI': 'number of multi parton interactions', 'Mass': 'invariant mass [GeV]', 'MeanSqDeltaR': 'average distance (squared) between constituent and particle weighted by pt (squared) of constituent', 'NCharged': 'number of charged constituents', 'NDF': 'number of degrees of freedom', 'NNeutrals': 'number of neutral constituents', 'NSubJetsPruned': 'number of subjets pruned', 'NSubJetsSoftDropped': 'number of subjets soft-dropped', 'NSubJetsTrimmed': 'number of subjets trimmed', 'NTimeHits': 'number of hits contributing to time measurement', 'Number': 'event number', 'P': 'momentum [GeV]', 'PDF1': 'PDF (id1, x1, Q)', 'PDF2': 'PDF (id2, x2, Q)', 'PID': 'HEP ID number', 'PT': 'transverse momentum [GeV]', 'PTD': 'average pt between constituent and jet weighted by pt of constituent', 'Particle': 'reference to generated particle', 'Particles': 'references to generated particles', 'Phi': 'azimuthal angle', 'PhiOuter': 'azimuthal angle at the edge', 'ProcTime': 'processing time', 'ProcessID': 'subprocess code for the event or signal process id', 'PrunedP4[5]': 'first entry (i = 0) is the total Pruned Jet 4-momenta and from i = 1 to 4 are the pruned subjets 4-momenta', 'Px': 'particle momentum vector (x component)', 'Py': 'particle momentum vector (y component)', 'Pz': 'particle momentum vector (z component)', 'Rapidity': 'particle rapidity', 'ReadTime': 'read time', 'Rho': 'rho energy density', 'S': 'distance to the interaction point [m]', 'Scale': 'energy scale, see hep-ph/0109068', 'ScalePDF': "Q-scale used in evaluation of PDF's [GeV]", 'Sigma': 'vertex position (z component) error', 'SoftDroppedP4[5]': 'first entry (i = 0) is the total SoftDropped Jet 4-momenta and from i = 1 to 4 are the pruned subjets 4-momenta', 'SoftDroppedSubJet1': 'leading soft-dropped subjet', 'SoftDroppedSubJet2': 'subleading soft-dropped subjet', 'Status': 'particle status', 'SumPT2': 'sum pt^2 of tracks attached to the vertex', 'SumPt': 'isolation variable', 'SumPtCharged': 'isolation variable', 'SumPtChargedPU': 'isolation variable', 'SumPtNeutral': 'isolation variable', 'TOuter': 'time position (t component) at the edge', 'TauTag': '0 or 1 for a particle that has been tagged as a tau', 'Tau[5]': 'N-subjettiness', 'Trigger': 'trigger word', 'TrimmedP4[5]': 'first entry (i = 0) is the total Trimmed Jet 4-momenta and from i = 1 to 4 are the trimmed subjets 4-momenta', 'Tx': 'angle of the momentum in the horizontal (x,z) plane [urad]', 'Ty': 'angle of the momentum in the vertical (y,z) plane [urad]', 'VertexIndex': 'reference to vertex', 'Weight': 'weight for the event', 'X1': 'fraction of beam momentum carried by first parton ("beam side")', 'X2': 'fraction of beam momentum carried by second parton ("target side")', 'XOuter': 'position (x component) at the edge', 'Xd': 'X coordinate of point of closest approach to vertex', 'YOuter': 'position (y component) at the edge', 'Yd': 'Y coordinate of point of closest approach to vertex', 'ZOuter': 'position (z component) at the edge', 'Zd': 'Z coordinate of point of closest approach to vertex'}
+
+ +
+
+mixins = {'CaloJet02': 'Jet', 'CaloJet04': 'Jet', 'CaloJet08': 'Jet', 'CaloJet15': 'Jet', 'EFlowNeutralHadron': 'Tower', 'EFlowPhoton': 'Photon', 'EFlowTrack': 'Track', 'Electron': 'Electron', 'ElectronCHS': 'Electron', 'Event': 'Event', 'EventLHEF': 'EventLHEF', 'FatJet': 'Jet', 'GenJet': 'Jet', 'GenJet02': 'Jet', 'GenJet04': 'Jet', 'GenJet08': 'Jet', 'GenJet15': 'Jet', 'GenJetAK8': 'Jet', 'GenMissingET': 'MissingET', 'GenPileUpMissingET': 'MissingET', 'HepMCEvent': 'HepMCEvent', 'Jet': 'Jet', 'JetAK8': 'Jet', 'JetPUPPI': 'Jet', 'JetPUPPIAK8': 'Jet', 'LHCOEvent': 'LHCOEvent', 'MissingET': 'MissingET', 'Muon': 'Muon', 'MuonLoose': 'Muon', 'MuonLooseCHS': 'Muon', 'MuonTight': 'Muon', 'MuonTightCHS': 'Muon', 'Particle': 'Particle', 'ParticleFlowJet02': 'Jet', 'ParticleFlowJet04': 'Jet', 'ParticleFlowJet08': 'Jet', 'ParticleFlowJet15': 'Jet', 'Photon': 'Photon', 'PhotonCHS': 'Photon', 'PuppiMissingET': 'MissingET', 'Rho': 'Rho', 'ScalarHT': 'ScalarHT', 'Tower': 'Tower', 'Track': 'Track', 'TrackJet02': 'Jet', 'TrackJet04': 'Jet', 'TrackJet08': 'Jet', 'TrackJet15': 'Jet', 'Weight': 'Weight', 'WeightLHEF': 'WeightLHEF'}
+
+ +
+
+singletons = ['Event', 'EventLHEF', 'HepMCEvent', 'LHCOEvent', 'Rho', 'ScalarHT', 'MissingET']
+
+ +
+
+warn_missing_crossrefs = True
+
+ +

Methods Documentation

+
+
+classmethod behavior()[source]
+

Behaviors necessary to implement this schema

+
+ +
+
+classmethod v1(base_form)[source]
+

Build the DelphesEvents

+

For example, one can use NanoEventsFactory.from_root("file.root", schemaclass=DelphesSchema.v1) +to ensure NanoAODv7 compatibility.

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.NanoAODSchema.html b/api/coffea.nanoevents.NanoAODSchema.html new file mode 100644 index 000000000..d3a505ca4 --- /dev/null +++ b/api/coffea.nanoevents.NanoAODSchema.html @@ -0,0 +1,306 @@ + + + + + + + NanoAODSchema — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

NanoAODSchema

+
+
+class coffea.nanoevents.NanoAODSchema(base_form, version='latest')[source]
+

Bases: BaseSchema

+

NanoAOD schema builder

+

The NanoAOD schema is built from all branches found in the supplied file, based on +the naming pattern of the branches. The following additional arrays are constructed:

+
    +
  • Any branches named n{name} are assumed to be counts branches and converted to offsets o{name}

  • +
  • Any local index branches with names matching {source}_{target}Idx* are converted to global indexes for the event chunk (postfix G)

  • +
  • Any nested_items are constructed, if the necessary branches are available

  • +
  • Any special_items are constructed, if the necessary branches are available

  • +
+

From those arrays, NanoAOD collections are formed as collections of branches grouped by name, where:

+
    +
  • one branch exists named name and no branches start with name_, interpreted as a single flat array;

  • +
  • one branch exists named name, one named n{name}, and no branches start with name_, interpreted as a single jagged array;

  • +
  • no branch exists named {name} and many branches start with name_*, interpreted as a flat table; or

  • +
  • one branch exists named n{name} and many branches start with name_*, interpreted as a jagged table.

  • +
+

Collections are assigned mixin types according to the mixins mapping. +All collections are then zipped into one base.NanoEvents record and returned.

+

There is a class-level variable warn_missing_crossrefs which will alter the behavior of +NanoAODSchema. If warn_missing_crossrefs is true then when a missing global index cross-ref +target is encountered a warning will be issued. Regardless, the cross-reference is dropped.

+

The same holds for error_missing_events_id. If error_missing_events_id is true, then when the ‘run’, ‘event’, +or ‘luminosityBlock’ fields are missing, an exception will be thrown; if it is false, just a warning will be issued.

+

Attributes Summary

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

all_cross_references

Cross-references, where an index is to be interpreted with respect to another collection

error_missing_event_ids

event_ids

List of NanoAOD event IDs

mixins

Default configuration for mixin types, based on the collection name.

nested_index_items

Nested collections, where nesting is accomplished by assuming the target can be unflattened according to a source counts

nested_items

Nested collections, where nesting is accomplished by a fixed-length set of indexers

special_items

Special arrays, where the callable and input arrays are specified in the value

warn_missing_crossrefs

+

Methods Summary

+ + + + + + + + + + + + + + + +

behavior()

Behaviors necessary to implement this schema

v5(base_form)

Build the NanoEvents assuming NanoAODv5

v6(base_form)

Build the NanoEvents assuming NanoAODv6

v7(base_form)

Build the NanoEvents assuming NanoAODv7

+

Attributes Documentation

+
+
+all_cross_references = {'Electron_genPartIdx': 'GenPart', 'Electron_jetIdx': 'Jet', 'Electron_photonIdx': 'Photon', 'FatJet_genJetAK8Idx': 'GenJetAK8', 'FatJet_subJetIdx1': 'SubJet', 'FatJet_subJetIdx2': 'SubJet', 'FsrPhoton_muonIdx': 'Muon', 'GenPart_genPartIdxMother': 'GenPart', 'GenVisTau_genPartIdxMother': 'GenPart', 'Jet_electronIdx1': 'Electron', 'Jet_electronIdx2': 'Electron', 'Jet_genJetIdx': 'GenJet', 'Jet_muonIdx1': 'Muon', 'Jet_muonIdx2': 'Muon', 'LowPtElectron_electronIdx': 'Electron', 'LowPtElectron_genPartIdx': 'GenPart', 'LowPtElectron_photonIdx': 'Photon', 'Muon_fsrPhotonIdx': 'FsrPhoton', 'Muon_genPartIdx': 'GenPart', 'Muon_jetIdx': 'Jet', 'Photon_electronIdx': 'Electron', 'Photon_genPartIdx': 'GenPart', 'Photon_jetIdx': 'Jet', 'Tau_genPartIdx': 'GenPart', 'Tau_jetIdx': 'Jet'}
+

Cross-references, where an index is to be interpreted with respect to another collection

+

Each such cross-reference will be converted to a global indexer, so that arbitrarily sliced events +can still resolve the indirection back the parent events

+
+ +
+
+error_missing_event_ids = True
+
+ +
+
+event_ids = ['run', 'luminosityBlock', 'event']
+

List of NanoAOD event IDs

+
+ +
+
+mixins = {'CaloMET': 'MissingET', 'ChsMET': 'MissingET', 'Electron': 'Electron', 'FatJet': 'FatJet', 'FsrPhoton': 'FsrPhoton', 'GenDressedLepton': 'PtEtaPhiMCollection', 'GenIsolatedPhoton': 'PtEtaPhiMCollection', 'GenJet': 'PtEtaPhiMCollection', 'GenJetAK8': 'PtEtaPhiMCollection', 'GenMET': 'MissingET', 'GenPart': 'GenParticle', 'GenVisTau': 'GenVisTau', 'IsoTrack': 'PtEtaPhiMCollection', 'Jet': 'Jet', 'LHEPart': 'PtEtaPhiMCollection', 'LowPtElectron': 'LowPtElectron', 'MET': 'MissingET', 'METFixEE2017': 'MissingET', 'Muon': 'Muon', 'PV': 'Vertex', 'Photon': 'Photon', 'PuppiMET': 'MissingET', 'RawMET': 'MissingET', 'RawPuppiMET': 'MissingET', 'SV': 'SecondaryVertex', 'SoftActivityJet': 'PtEtaPhiMCollection', 'SubGenJetAK8': 'PtEtaPhiMCollection', 'SubJet': 'PtEtaPhiMCollection', 'Tau': 'Tau', 'TkMET': 'MissingET', 'TrigObj': 'PtEtaPhiMCollection'}
+

Default configuration for mixin types, based on the collection name.

+

The types are implemented in the coffea.nanoevents.methods.nanoaod module.

+
+ +
+
+nested_index_items = {'FatJet_pFCandsIdxG': ('FatJet_nConstituents', 'FatJetPFCands'), 'GenFatJet_pFCandsIdxG': ('GenJetAK8_nConstituents', 'GenFatJetCands'), 'GenJet_pFCandsIdxG': ('GenJet_nConstituents', 'GenJetCands'), 'Jet_pFCandsIdxG': ('Jet_nConstituents', 'JetPFCands')}
+

Nested collections, where nesting is accomplished by assuming the target can be unflattened according to a source counts

+
+ +
+
+nested_items = {'FatJet_subJetIdxG': ['FatJet_subJetIdx1G', 'FatJet_subJetIdx2G'], 'Jet_electronIdxG': ['Jet_electronIdx1G', 'Jet_electronIdx2G'], 'Jet_muonIdxG': ['Jet_muonIdx1G', 'Jet_muonIdx2G']}
+

Nested collections, where nesting is accomplished by a fixed-length set of indexers

+
+ +
+
+special_items = {'GenPart_childrenIdxG': (<function children_form>, ('oGenPart', 'GenPart_genPartIdxMotherG')), 'GenPart_distinctChildrenDeepIdxG': (<function distinctChildrenDeep_form>, ('oGenPart', 'GenPart_genPartIdxMotherG', 'GenPart_pdgId')), 'GenPart_distinctChildrenIdxG': (<function children_form>, ('oGenPart', 'GenPart_distinctParentIdxG')), 'GenPart_distinctParentIdxG': (<function distinctParent_form>, ('GenPart_genPartIdxMotherG', 'GenPart_pdgId'))}
+

Special arrays, where the callable and input arrays are specified in the value

+
+ +
+
+warn_missing_crossrefs = True
+
+ +

Methods Documentation

+
+
+classmethod behavior()[source]
+

Behaviors necessary to implement this schema

+
+ +
+
+classmethod v5(base_form)[source]
+

Build the NanoEvents assuming NanoAODv5

+
+ +
+
+classmethod v6(base_form)[source]
+

Build the NanoEvents assuming NanoAODv6

+
+ +
+
+classmethod v7(base_form)[source]
+

Build the NanoEvents assuming NanoAODv7

+

For example, one can use NanoEventsFactory.from_root("file.root", schemaclass=NanoAODSchema.v7) +to ensure NanoAODv7 compatibility.

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.NanoEventsFactory.html b/api/coffea.nanoevents.NanoEventsFactory.html new file mode 100644 index 000000000..40af62938 --- /dev/null +++ b/api/coffea.nanoevents.NanoEventsFactory.html @@ -0,0 +1,267 @@ + + + + + + + NanoEventsFactory — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

NanoEventsFactory

+
+
+class coffea.nanoevents.NanoEventsFactory(schema, mapping, partition_key, cache=None, is_dask=False)[source]
+

Bases: object

+

A factory class to build NanoEvents objects

+

Methods Summary

+ + + + + + + + + + + + + + + +

events()

Build events

from_parquet(file[, treepath, entry_start, ...])

Quickly build NanoEvents from a parquet file

from_preloaded(array_source[, entry_start, ...])

Quickly build NanoEvents from a pre-loaded array source

from_root(file[, treepath, entry_start, ...])

Quickly build NanoEvents from a root file

+

Methods Documentation

+
+
+events()[source]
+

Build events

+
+ +
+
+classmethod from_parquet(file, treepath=uproot._util.unset, entry_start=None, entry_stop=None, runtime_cache=None, persistent_cache=None, schemaclass=<class 'coffea.nanoevents.schemas.nanoaod.NanoAODSchema'>, metadata=None, parquet_options={}, skyhook_options={}, access_log=None, delayed=True)[source]
+

Quickly build NanoEvents from a parquet file

+
+
Parameters:
+
    +
  • file (str, pathlib.Path, pyarrow.NativeFile, or python file-like) – The filename or already opened file using e.g. uproot.open()

  • +
  • treepath (str, optional) – Name of the tree to read in the file

  • +
  • entry_start (int, optional) – Start at this entry offset in the tree (default 0)

  • +
  • entry_stop (int, optional) – Stop at this entry offset in the tree (default end of tree)

  • +
  • runtime_cache (dict, optional) – A dict-like interface to a cache object. This cache is expected to last the +duration of the program only, and will be used to hold references to materialized +awkward arrays, etc.

  • +
  • persistent_cache (dict, optional) – A dict-like interface to a cache object. Only bare numpy arrays will be placed in this cache, +using globally-unique keys.

  • +
  • schemaclass (BaseSchema) – A schema class deriving from BaseSchema and implementing the desired view of the file

  • +
  • metadata (dict, optional) – Arbitrary metadata to add to the base.NanoEvents object

  • +
  • parquet_options (dict, optional) – Any options to pass to pyarrow.parquet.ParquetFile

  • +
  • access_log (list, optional) – Pass a list instance to record which branches were lazily accessed by this instance

  • +
  • delayed – Nanoevents will use dask as a backend to construct a delayed task graph representing your analysis.

  • +
+
+
+
+ +
+
+classmethod from_preloaded(array_source, entry_start=None, entry_stop=None, runtime_cache=None, persistent_cache=None, schemaclass=<class 'coffea.nanoevents.schemas.nanoaod.NanoAODSchema'>, metadata=None, access_log=None)[source]
+

Quickly build NanoEvents from a pre-loaded array source

+
+
Parameters:
+
    +
  • array_source (Mapping[str, awkward.Array]) – A mapping of names to awkward arrays, it must have a metadata attribute with uuid, +num_rows, and path sub-items.

  • +
  • entry_start (int, optional) – Start at this entry offset in the tree (default 0)

  • +
  • entry_stop (int, optional) – Stop at this entry offset in the tree (default end of tree)

  • +
  • runtime_cache (dict, optional) – A dict-like interface to a cache object. This cache is expected to last the +duration of the program only, and will be used to hold references to materialized +awkward arrays, etc.

  • +
  • persistent_cache (dict, optional) – A dict-like interface to a cache object. Only bare numpy arrays will be placed in this cache, +using globally-unique keys.

  • +
  • schemaclass (BaseSchema) – A schema class deriving from BaseSchema and implementing the desired view of the file

  • +
  • metadata (dict, optional) – Arbitrary metadata to add to the base.NanoEvents object

  • +
  • access_log (list, optional) – Pass a list instance to record which branches were lazily accessed by this instance

  • +
+
+
+
+ +
+
+classmethod from_root(file, treepath=uproot._util.unset, entry_start=None, entry_stop=None, steps_per_file=uproot._util.unset, runtime_cache=None, persistent_cache=None, schemaclass=<class 'coffea.nanoevents.schemas.nanoaod.NanoAODSchema'>, metadata=None, uproot_options={}, access_log=None, iteritems_options={}, use_ak_forth=True, delayed=True, known_base_form=None, decompression_executor=None, interpretation_executor=None)[source]
+

Quickly build NanoEvents from a root file

+
+
Parameters:
+
    +
  • file (a string or dict input to uproot.open() or uproot.dask() or a uproot.reading.ReadOnlyDirectory) – The filename or dict of filenames including the treepath (as it would be passed directly to uproot.open() +or uproot.dask()) already opened file using e.g. uproot.open().

  • +
  • treepath (str, optional) – Name of the tree to read in the file. Used only if file is a uproot.reading.ReadOnlyDirectory.

  • +
  • entry_start (int, optional (eager mode only)) – Start at this entry offset in the tree (default 0)

  • +
  • entry_stop (int, optional (eager mode only)) – Stop at this entry offset in the tree (default end of tree)

  • +
  • steps_per_file (int, optional) – Partition files into this many steps (previously “chunks”)

  • +
  • runtime_cache (dict, optional) – A dict-like interface to a cache object. This cache is expected to last the +duration of the program only, and will be used to hold references to materialized +awkward arrays, etc.

  • +
  • persistent_cache (dict, optional) – A dict-like interface to a cache object. Only bare numpy arrays will be placed in this cache, +using globally-unique keys.

  • +
  • schemaclass (BaseSchema) – A schema class deriving from BaseSchema and implementing the desired view of the file

  • +
  • metadata (dict, optional) – Arbitrary metadata to add to the base.NanoEvents object

  • +
  • uproot_options (dict, optional) – Any options to pass to uproot.open or uproot.dask

  • +
  • access_log (list, optional) – Pass a list instance to record which branches were lazily accessed by this instance

  • +
  • use_ak_forth – Toggle using awkward_forth to interpret branches in root file.

  • +
  • delayed – Nanoevents will use dask as a backend to construct a delayed task graph representing your analysis.

  • +
  • known_base_form – If the base form of the input file is known ahead of time we can skip opening a single file and parsing metadata.

  • +
  • method) (interpretation_executor (None or Executor with a submit) – see: https://github.com/scikit-hep/uproot5/blob/main/src/uproot/_dask.py#L109

  • +
  • method) – see: https://github.com/scikit-hep/uproot5/blob/main/src/uproot/_dask.py#L113

  • +
+
+
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.PDUNESchema.html b/api/coffea.nanoevents.PDUNESchema.html new file mode 100644 index 000000000..b47a6461d --- /dev/null +++ b/api/coffea.nanoevents.PDUNESchema.html @@ -0,0 +1,197 @@ + + + + + + + PDUNESchema — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

PDUNESchema

+
+
+class coffea.nanoevents.PDUNESchema(base_form)[source]
+

Bases: BaseSchema

+

Attributes Summary

+ + + + + + + + + +

mixins

top_objects

+

Methods Summary

+ + + + + + +

behavior()

Behaviors necessary to implement this schema

+

Attributes Documentation

+
+
+mixins = {'RecoBeam': 'Beam', 'Showers': 'Showers', 'Tracks': 'Tracks', 'end3D': 'ThreeVector', 'end4D': 'LorentzVector', 'reco_beam': 'RecoBeam', 'reco_daughter_allShower': 'Showers', 'reco_daughter_allTrack': 'Tracks', 'start3D': 'ThreeVector', 'start4D': 'LorentzVector', 'vtx3D': 'ThreeVector'}
+
+ +
+
+top_objects = {'reco_beam': 'RecoBeam', 'reco_daughter_allShower': 'Showers', 'reco_daughter_allTrack': 'Tracks', 'true_beam': 'TrueBeam'}
+
+ +

Methods Documentation

+
+
+classmethod behavior()[source]
+

Behaviors necessary to implement this schema

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.PFNanoAODSchema.html b/api/coffea.nanoevents.PFNanoAODSchema.html new file mode 100644 index 000000000..c331dcac2 --- /dev/null +++ b/api/coffea.nanoevents.PFNanoAODSchema.html @@ -0,0 +1,190 @@ + + + + + + + PFNanoAODSchema — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

PFNanoAODSchema

+
+
+class coffea.nanoevents.PFNanoAODSchema(base_form, version='latest')[source]
+

Bases: NanoAODSchema

+

PFNano schema builder

+

PFNano is an extended NanoAOD format that includes PF candidates and secondary vertices +More info at https://github.com/cms-jet/PFNano

+

Attributes Summary

+ + + + + + + + + +

all_cross_references

Cross-references, where an index is to be interpreted with respect to another collection

mixins

Default configuration for mixin types, based on the collection name.

+

Attributes Documentation

+
+
+all_cross_references = {'Electron_genPartIdx': 'GenPart', 'Electron_jetIdx': 'Jet', 'Electron_photonIdx': 'Photon', 'FatJetPFCands_jetIdx': 'FatJet', 'FatJetPFCands_pFCandsIdx': 'PFCands', 'FatJetSVs_jetIdx': 'FatJet', 'FatJetSVs_sVIdx': 'SV', 'FatJet_electronIdx3SJ': 'Electron', 'FatJet_genJetAK8Idx': 'GenJetAK8', 'FatJet_muonIdx3SJ': 'Muon', 'FatJet_subJetIdx1': 'SubJet', 'FatJet_subJetIdx2': 'SubJet', 'FsrPhoton_muonIdx': 'Muon', 'GenFatJetCands_jetIdx': 'GenJetAK8', 'GenFatJetCands_pFCandsIdx': 'GenCands', 'GenFatJetSVs_jetIdx': 'GenJetAK8', 'GenFatJetSVs_sVIdx': 'SV', 'GenJetCands_jetIdx': 'GenJet', 'GenJetCands_pFCandsIdx': 'GenCands', 'GenJetSVs_jetIdx': 'GenJet', 'GenJetSVs_sVIdx': 'SV', 'GenPart_genPartIdxMother': 'GenPart', 'GenVisTau_genPartIdxMother': 'GenPart', 'JetPFCands_jetIdx': 'Jet', 'JetPFCands_pFCandsIdx': 'PFCands', 'JetSVs_jetIdx': 'Jet', 'JetSVs_sVIdx': 'SV', 'Jet_electronIdx1': 'Electron', 'Jet_electronIdx2': 'Electron', 'Jet_genJetIdx': 'GenJet', 'Jet_muonIdx1': 'Muon', 'Jet_muonIdx2': 'Muon', 'LowPtElectron_electronIdx': 'Electron', 'LowPtElectron_genPartIdx': 'GenPart', 'LowPtElectron_photonIdx': 'Photon', 'Muon_fsrPhotonIdx': 'FsrPhoton', 'Muon_genPartIdx': 'GenPart', 'Muon_jetIdx': 'Jet', 'Photon_electronIdx': 'Electron', 'Photon_genPartIdx': 'GenPart', 'Photon_jetIdx': 'Jet', 'SubJet_subGenJetAK8Idx': 'SubGenJetAK8', 'Tau_genPartIdx': 'GenPart', 'Tau_jetIdx': 'Jet'}
+

Cross-references, where an index is to be interpreted with respect to another collection

+

Each such cross-reference will be converted to a global indexer, so that arbitrarily sliced events +can still resolve the indirection back the parent events

+
+ +
+
+mixins = {'CaloMET': 'MissingET', 'ChsMET': 'MissingET', 'Electron': 'Electron', 'FatJet': 'FatJet', 'FatJetPFCands': 'AssociatedPFCand', 'FatJetSVs': 'AssociatedSV', 'FsrPhoton': 'FsrPhoton', 'GenCands': 'PFCand', 'GenDressedLepton': 'PtEtaPhiMCollection', 'GenFatJetCands': 'AssociatedPFCand', 'GenFatJetSVs': 'AssociatedSV', 'GenIsolatedPhoton': 'PtEtaPhiMCollection', 'GenJet': 'PtEtaPhiMCollection', 'GenJetAK8': 'PtEtaPhiMCollection', 'GenJetCands': 'AssociatedPFCand', 'GenJetSVs': 'AssociatedSV', 'GenMET': 'MissingET', 'GenPart': 'GenParticle', 'GenVisTau': 'GenVisTau', 'IsoTrack': 'PtEtaPhiMCollection', 'Jet': 'Jet', 'JetPFCands': 'AssociatedPFCand', 'JetSVs': 'AssociatedSV', 'LHEPart': 'PtEtaPhiMCollection', 'LowPtElectron': 'LowPtElectron', 'MET': 'MissingET', 'METFixEE2017': 'MissingET', 'Muon': 'Muon', 'PFCands': 'PFCand', 'PV': 'Vertex', 'Photon': 'Photon', 'PuppiMET': 'MissingET', 'RawMET': 'MissingET', 'RawPuppiMET': 'MissingET', 'SV': 'SecondaryVertex', 'SoftActivityJet': 'PtEtaPhiMCollection', 'SubGenJetAK8': 'PtEtaPhiMCollection', 'SubJet': 'PtEtaPhiMCollection', 'Tau': 'Tau', 'TkMET': 'MissingET', 'TrigObj': 'PtEtaPhiMCollection'}
+

Default configuration for mixin types, based on the collection name.

+

The types are implemented in the coffea.nanoevents.methods.nanoaod module.

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.PHYSLITESchema.html b/api/coffea.nanoevents.PHYSLITESchema.html new file mode 100644 index 000000000..f87846b99 --- /dev/null +++ b/api/coffea.nanoevents.PHYSLITESchema.html @@ -0,0 +1,214 @@ + + + + + + + PHYSLITESchema — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

PHYSLITESchema

+
+
+class coffea.nanoevents.PHYSLITESchema(base_form, *args, **kwargs)[source]
+

Bases: BaseSchema

+

PHYSLITE schema builder - work in progress.

+

This is a schema for the ATLAS DAOD_PHYSLITE derivation. +Closely following schemas.nanoaod.NanoAODSchema, it is mainly build from +naming patterns where the “Analysis” prefix has been removed, so the +collections will be named Electrons, Muons, instead of AnalysisElectrons, +AnalysisMunos, etc. The collection fields correspond to the “Aux” and +“AuxDyn” columns.

+

Collections are assigned mixin types according to the mixins mapping. +All collections are then zipped into one base.NanoEvents record and returned.

+

Cross references are build from ElementLink columns. Global indices are +created dynamically, using an _eventindex field that is attached to +each collection.

+

Attributes Summary

+ + + + + + + + + +

mixins

Default configuration for mixin types, based on the collection name.

truth_collections

TRUTH3 collection names.

+

Methods Summary

+ + + + + + +

behavior()

Behaviors necessary to implement this schema

+

Attributes Documentation

+
+
+mixins = {'CombinedMuonTrackParticles': 'TrackParticle', 'Electrons': 'Electron', 'ExtrapolatedMuonTrackParticles': 'TrackParticle', 'GSFTrackParticles': 'TrackParticle', 'InDetTrackParticles': 'TrackParticle', 'Jets': 'Particle', 'MuonSpectrometerTrackParticles': 'TrackParticle', 'Muons': 'Muon', 'TauJets': 'Particle', 'TruthBoson': 'TruthParticle', 'TruthBottom': 'TruthParticle', 'TruthElectrons': 'TruthParticle', 'TruthMuons': 'TruthParticle', 'TruthNeutrinos': 'TruthParticle', 'TruthPhotons': 'TruthParticle', 'TruthTaus': 'TruthParticle', 'TruthTop': 'TruthParticle', 'egammaClusters': 'NanoCollection'}
+

Default configuration for mixin types, based on the collection name.

+

The types are implemented in the coffea.nanoevents.methods.physlite module.

+
+ +
+
+truth_collections = ['TruthPhotons', 'TruthMuons', 'TruthNeutrinos', 'TruthTaus', 'TruthElectrons', 'TruthBoson', 'TruthBottom', 'TruthTop']
+

TRUTH3 collection names.

+

TruthParticle behavior is assigned to all of them and global index forms +for parent/children relations are created for all combinations.

+
+ +

Methods Documentation

+
+
+classmethod behavior()[source]
+

Behaviors necessary to implement this schema

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.ScoutingNanoAODSchema.html b/api/coffea.nanoevents.ScoutingNanoAODSchema.html new file mode 100644 index 000000000..4cda6e2af --- /dev/null +++ b/api/coffea.nanoevents.ScoutingNanoAODSchema.html @@ -0,0 +1,189 @@ + + + + + + + ScoutingNanoAODSchema — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ScoutingNanoAODSchema

+
+
+class coffea.nanoevents.ScoutingNanoAODSchema(base_form, version='latest')[source]
+

Bases: NanoAODSchema

+

ScoutingNano schema builder

+

ScoutingNano is a NanoAOD format that includes Scouting objects

+

Attributes Summary

+ + + + + + + + + +

all_cross_references

Cross-references, where an index is to be interpreted with respect to another collection

mixins

Default configuration for mixin types, based on the collection name.

+

Attributes Documentation

+
+
+all_cross_references = {'Electron_genPartIdx': 'GenPart', 'Electron_jetIdx': 'Jet', 'Electron_photonIdx': 'Photon', 'FatJet_genJetAK8Idx': 'GenJetAK8', 'FatJet_subJetIdx1': 'SubJet', 'FatJet_subJetIdx2': 'SubJet', 'FsrPhoton_muonIdx': 'Muon', 'GenPart_genPartIdxMother': 'GenPart', 'GenVisTau_genPartIdxMother': 'GenPart', 'Jet_electronIdx1': 'Electron', 'Jet_electronIdx2': 'Electron', 'Jet_genJetIdx': 'GenJet', 'Jet_muonIdx1': 'Muon', 'Jet_muonIdx2': 'Muon', 'LowPtElectron_electronIdx': 'Electron', 'LowPtElectron_genPartIdx': 'GenPart', 'LowPtElectron_photonIdx': 'Photon', 'Muon_fsrPhotonIdx': 'FsrPhoton', 'Muon_genPartIdx': 'GenPart', 'Muon_jetIdx': 'Jet', 'Photon_electronIdx': 'Electron', 'Photon_genPartIdx': 'GenPart', 'Photon_jetIdx': 'Jet', 'Tau_genPartIdx': 'GenPart', 'Tau_jetIdx': 'Jet'}
+

Cross-references, where an index is to be interpreted with respect to another collection

+

Each such cross-reference will be converted to a global indexer, so that arbitrarily sliced events +can still resolve the indirection back the parent events

+
+ +
+
+mixins = {'CaloMET': 'MissingET', 'ChsMET': 'MissingET', 'Electron': 'Electron', 'FatJet': 'FatJet', 'FsrPhoton': 'FsrPhoton', 'GenDressedLepton': 'PtEtaPhiMCollection', 'GenIsolatedPhoton': 'PtEtaPhiMCollection', 'GenJet': 'PtEtaPhiMCollection', 'GenJetAK8': 'PtEtaPhiMCollection', 'GenMET': 'MissingET', 'GenPart': 'GenParticle', 'GenVisTau': 'GenVisTau', 'IsoTrack': 'PtEtaPhiMCollection', 'Jet': 'Jet', 'LHEPart': 'PtEtaPhiMCollection', 'LowPtElectron': 'LowPtElectron', 'MET': 'MissingET', 'METFixEE2017': 'MissingET', 'Muon': 'Muon', 'PV': 'Vertex', 'Photon': 'Photon', 'PuppiMET': 'MissingET', 'RawMET': 'MissingET', 'RawPuppiMET': 'MissingET', 'SV': 'SecondaryVertex', 'ScoutingElectron': 'Electron', 'ScoutingFatJet': 'FatJet', 'ScoutingJet': 'Jet', 'ScoutingMET': 'MissingET', 'ScoutingMuonNoVtx': 'Muon', 'ScoutingMuonNoVtxDisplacedVertex': 'Vertex', 'ScoutingMuonVtx': 'Muon', 'ScoutingMuonVtxDisplacedVertex': 'Vertex', 'ScoutingPhoton': 'Photon', 'ScoutingPrimaryVertex': 'Vertex', 'SoftActivityJet': 'PtEtaPhiMCollection', 'SubGenJetAK8': 'PtEtaPhiMCollection', 'SubJet': 'PtEtaPhiMCollection', 'Tau': 'Tau', 'TkMET': 'MissingET', 'TrigObj': 'PtEtaPhiMCollection'}
+

Default configuration for mixin types, based on the collection name.

+

The types are implemented in the coffea.nanoevents.methods.nanoaod module.

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.TreeMakerSchema.html b/api/coffea.nanoevents.TreeMakerSchema.html new file mode 100644 index 000000000..4df4df85d --- /dev/null +++ b/api/coffea.nanoevents.TreeMakerSchema.html @@ -0,0 +1,218 @@ + + + + + + + TreeMakerSchema — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

TreeMakerSchema

+
+
+class coffea.nanoevents.TreeMakerSchema(base_form, *args, **kwargs)[source]
+

Bases: BaseSchema

+

TreeMaker schema builder

+

The TreeMaker schema is built from all branches found in the supplied file, +based on the naming pattern of the branches. There are two steps of to the +generation of array collections:

+
    +
  • Objects with vector-like quantities (momentum, coordinate points) in the +TreeMaker n-tuples are stored using ROOT PtEtaPhiEVectors and XYZPoint +classes with maximum TTree splitting. These variable branches are grouped +into a single collection with the original object name, with the +corresponding coordinate variables names mapped to the standard variable +names for coffea.nanoevents.methods.vector behaviors. For example:

    +
      +
    • The “Jets” branch in a TreeMaker n-tuple branch stores ‘PtEtaPhiEVector’s +corresponding to the momentum of AK4 jets. The resulting collection after +this first step would contain the vector variables in the form of +Jets.pt, Jets.eta, Jets.phi, Jets.energy, and addition vector quantities +(px) can be accessed via the usual vector behavior methods.

    • +
    • The “PrimaryVertices” branch in a TreeMaker n-tuple branch stores +‘XYZPoint’s corresponding to the coordinates of the primary vertices, The +resulting collection after this first step wold contain the coordinate +variables in the form of PrimaryVertices.x, PrimaryVertices.y, +PrimaryVertices.z.

    • +
    +
  • +
  • Extended quantities of physic objects are stored in the format +<Object>_<variable>, such as “Jets_jecFactor”. Such variables will be +merged into the collection <Object>, so the branch “Jets_jetFactor” will be +access to in the array format as “Jets.jecFactor”. An exception to the

  • +
+

All collections are then zipped into one base.NanoEvents record and +returned.

+

Methods Summary

+ + + + + + + + + +

behavior()

Behaviors necessary to implement this schema

uproot_writeable(events)

Converting a TreeMakerSchema event into something that is uproot writeable.

+

Methods Documentation

+
+
+classmethod behavior()[source]
+

Behaviors necessary to implement this schema

+
+ +
+
+classmethod uproot_writeable(events)[source]
+

Converting a TreeMakerSchema event into something that is uproot +writeable. Based off the discussion thread here [1], but added specific +cased to handled the nested structures define for TreeMaker n-tuples. +[1] https://github.com/CoffeaTeam/coffea/discussions/735

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.base.NanoCollection.html b/api/coffea.nanoevents.methods.base.NanoCollection.html new file mode 100644 index 000000000..400a5d320 --- /dev/null +++ b/api/coffea.nanoevents.methods.base.NanoCollection.html @@ -0,0 +1,157 @@ + + + + + + + NanoCollection — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

NanoCollection

+
+
+class coffea.nanoevents.methods.base.NanoCollection[source]
+

Bases: object

+

A NanoEvents collection

+

This mixin provides some helper methods useful for creating cross-references +and other advanced mixin types.

+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.base.NanoEvents.html b/api/coffea.nanoevents.methods.base.NanoEvents.html new file mode 100644 index 000000000..396b8b18b --- /dev/null +++ b/api/coffea.nanoevents.methods.base.NanoEvents.html @@ -0,0 +1,171 @@ + + + + + + + NanoEvents — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

NanoEvents

+
+
+class coffea.nanoevents.methods.base.NanoEvents[source]
+

Bases: Systematic

+

NanoEvents mixin class

+

This mixin class is used as the top-level type for NanoEvents objects.

+

Attributes Summary

+ + + + + + +

metadata

Arbitrary metadata

+

Attributes Documentation

+
+
+metadata
+

Arbitrary metadata

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.base.Systematic.html b/api/coffea.nanoevents.methods.base.Systematic.html new file mode 100644 index 000000000..6e29e9121 --- /dev/null +++ b/api/coffea.nanoevents.methods.base.Systematic.html @@ -0,0 +1,216 @@ + + + + + + + Systematic — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

Systematic

+
+
+class coffea.nanoevents.methods.base.Systematic[source]
+

Bases: object

+

A base mixin class to describe and build variations on a feature of an nanoevents object.

+

Attributes Summary

+ + + + + + +

systematics

Return the list of all systematics attached to this object.

+

Methods Summary

+ + + + + + + + + + + + + + + +

add_kind(kind)

Register a type of systematic variation, it must fulfill the base class interface.

add_systematic(name, kind, what, ...)

name: str, name of the systematic variation / uncertainty source kind: str, the name of the kind of systematic variation what: Union[str, List[str], Tuple[str]], name what gets varied, this could be a list or tuple of column names varying_function: Union[function, bound method], a function that describes how 'what' is varied, it must close over all non-event-data arguments.

describe_variations()

returns a list of variation names

explodes_how()

This describes how a systematic uncertainty needs to be evaluated in the context of other systematic uncertainties.

+

Attributes Documentation

+
+
+systematics
+

Return the list of all systematics attached to this object.

+
+ +

Methods Documentation

+
+
+classmethod add_kind(kind: str)[source]
+

Register a type of systematic variation, it must fulfill the base class interface.

+
+ +
+
+add_systematic(name: str, kind: str, what: str | List[str] | Tuple[str], varying_function: Callable)[source]
+

name: str, name of the systematic variation / uncertainty source +kind: str, the name of the kind of systematic variation +what: Union[str, List[str], Tuple[str]], name what gets varied, this could be a list or tuple of column names +varying_function: Union[function, bound method], a function that describes how ‘what’ is varied, it must close over all non-event-data arguments.

+
+ +
+
+abstract describe_variations()[source]
+

returns a list of variation names

+
+ +
+
+abstract explodes_how()[source]
+

This describes how a systematic uncertainty needs to be evaluated in the context of other systematic uncertainties. +i.e. Do you iterate over this keeping all others fixed or do you need to have correlations with other (subsets of) systematics.

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.candidate.Candidate.html b/api/coffea.nanoevents.methods.candidate.Candidate.html new file mode 100644 index 000000000..8e0d1527b --- /dev/null +++ b/api/coffea.nanoevents.methods.candidate.Candidate.html @@ -0,0 +1,628 @@ + + + + + + + Candidate — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

Candidate

+
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float)[source]
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, z: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pt: float, phi: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, z: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, z: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, z: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pt: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pt: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pt: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pt: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pt: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pt: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pt: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pt: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, ptau: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, ptau: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, ptau: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, ptau: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pE: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pE: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pE: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pE: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pe: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pe: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pe: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pe: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pt: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pt: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pt: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pt: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pM: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pM: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pM: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pM: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pm: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pm: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pm: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pm: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pt: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pt: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pt: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, x: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, px: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, rho: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(*, pt: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.Candidate(__azumthal: Azimuthal)
+
+class coffea.nanoevents.methods.candidate.Candidate(__azumthal: Azimuthal, __longitudinal: Longitudinal)
+
+class coffea.nanoevents.methods.candidate.Candidate(__azumthal: Azimuthal, __longitudinal: Longitudinal, __temporal: Temporal)
+

Bases: LorentzVector

+

A Lorentz vector with charge

+

This mixin class requires the parent class to provide items x, y, z, t, and charge.

+

Methods Summary

+ + + + + + + + + +

add(other)

Add two candidates together elementwise using x, y, z, t, and charge components

sum([axis])

Sum an array of vectors elementwise using x, y, z, t, and charge components

+

Methods Documentation

+
+
+add(other)[source]
+

Add two candidates together elementwise using x, y, z, t, and charge components

+
+ +
+
+sum(axis=-1)[source]
+

Sum an array of vectors elementwise using x, y, z, t, and charge components

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.candidate.PtEtaPhiECandidate.html b/api/coffea.nanoevents.methods.candidate.PtEtaPhiECandidate.html new file mode 100644 index 000000000..ac220c90c --- /dev/null +++ b/api/coffea.nanoevents.methods.candidate.PtEtaPhiECandidate.html @@ -0,0 +1,604 @@ + + + + + + + PtEtaPhiECandidate — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

PtEtaPhiECandidate

+
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float)[source]
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, z: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pt: float, phi: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, z: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, z: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, z: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pt: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pt: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pt: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pt: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pt: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pt: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pt: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pt: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, ptau: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, ptau: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, ptau: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, ptau: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pE: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pE: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pE: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pE: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pe: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pe: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pe: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pe: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pt: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pt: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pt: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pt: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pM: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pM: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pM: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pM: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pm: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pm: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pm: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pm: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pt: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pt: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pt: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, x: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, px: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, rho: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(*, pt: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(__azumthal: Azimuthal)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(__azumthal: Azimuthal, __longitudinal: Longitudinal)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiECandidate(__azumthal: Azimuthal, __longitudinal: Longitudinal, __temporal: Temporal)
+

Bases: Candidate, PtEtaPhiELorentzVector

+

A Lorentz vector in eta, energy coordinates with charge

+

This mixin class requires the parent class to provide items pt, eta, phi, energy, and charge.

+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate.html b/api/coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate.html new file mode 100644 index 000000000..24b41fa4a --- /dev/null +++ b/api/coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate.html @@ -0,0 +1,604 @@ + + + + + + + PtEtaPhiMCandidate — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

PtEtaPhiMCandidate

+
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float)[source]
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, z: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pt: float, phi: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, z: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, z: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, z: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pt: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pt: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pt: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pt: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pt: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pt: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pt: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pt: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, ptau: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, ptau: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, ptau: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, ptau: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pE: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pE: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pE: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pE: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pe: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pe: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pe: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pe: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pt: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pt: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pt: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pt: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pM: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pM: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pM: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pM: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pm: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pm: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pm: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pm: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pt: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pt: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pt: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, x: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, px: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, rho: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(*, pt: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(__azumthal: Azimuthal)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(__azumthal: Azimuthal, __longitudinal: Longitudinal)
+
+class coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate(__azumthal: Azimuthal, __longitudinal: Longitudinal, __temporal: Temporal)
+

Bases: Candidate, PtEtaPhiMLorentzVector

+

A Lorentz vector in eta, mass coordinates with charge

+

This mixin class requires the parent class to provide items pt, eta, phi, mass, and charge.

+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.nanoaod.AssociatedPFCand.html b/api/coffea.nanoevents.methods.nanoaod.AssociatedPFCand.html new file mode 100644 index 000000000..09b0ded99 --- /dev/null +++ b/api/coffea.nanoevents.methods.nanoaod.AssociatedPFCand.html @@ -0,0 +1,199 @@ + + + + + + + AssociatedPFCand — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

AssociatedPFCand

+
+
+class coffea.nanoevents.methods.nanoaod.AssociatedPFCand[source]
+

Bases: NanoCollection

+

PFNano PF candidate to jet association object

+

Attributes Summary

+ + + + + + + + + + + + +

collection_map

jet

pf

+

Attributes Documentation

+
+
+collection_map = {'FatJetPFCands': ('FatJet', 'PFCands'), 'GenFatJetCands': ('GenJetAK8', 'GenCands'), 'GenJetCands': ('GenJet', 'GenCands'), 'JetPFCands': ('Jet', 'PFCands')}
+
+ +
+
+jet
+
+ +
+
+pf
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.nanoaod.AssociatedSV.html b/api/coffea.nanoevents.methods.nanoaod.AssociatedSV.html new file mode 100644 index 000000000..451b9a15b --- /dev/null +++ b/api/coffea.nanoevents.methods.nanoaod.AssociatedSV.html @@ -0,0 +1,199 @@ + + + + + + + AssociatedSV — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

AssociatedSV

+
+
+class coffea.nanoevents.methods.nanoaod.AssociatedSV[source]
+

Bases: NanoCollection

+

PFNano secondary vertex to jet association object

+

Attributes Summary

+ + + + + + + + + + + + +

collection_map

jet

sv

+

Attributes Documentation

+
+
+collection_map = {'FatJetSVs': ('FatJet', 'SV'), 'GenFatJetSVs': ('GenJetAK8', 'SV'), 'GenJetSVs': ('GenJet', 'SV'), 'JetSVs': ('Jet', 'SV')}
+
+ +
+
+jet
+
+ +
+
+sv
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.nanoaod.Electron.html b/api/coffea.nanoevents.methods.nanoaod.Electron.html new file mode 100644 index 000000000..ea667cd65 --- /dev/null +++ b/api/coffea.nanoevents.methods.nanoaod.Electron.html @@ -0,0 +1,728 @@ + + + + + + + Electron — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

Electron

+
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float)[source]
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pt: float, phi: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pt: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pt: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pt: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pt: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pt: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pt: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pt: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pt: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, ptau: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, ptau: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, ptau: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, ptau: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pE: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pE: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pE: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pE: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pe: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pe: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pe: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pe: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pt: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pt: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pt: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pt: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pM: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pM: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pM: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pM: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pm: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pm: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pm: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pm: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pt: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pt: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pt: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, x: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, px: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, rho: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(*, pt: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Electron(__azumthal: Azimuthal)
+
+class coffea.nanoevents.methods.nanoaod.Electron(__azumthal: Azimuthal, __longitudinal: Longitudinal)
+
+class coffea.nanoevents.methods.nanoaod.Electron(__azumthal: Azimuthal, __longitudinal: Longitudinal, __temporal: Temporal)
+

Bases: PtEtaPhiMCandidate, NanoCollection, Systematic

+

NanoAOD electron object

+

Attributes Summary

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

FAIL

cutBased selection minimum value

LOOSE

cutBased selection minimum value

MEDIUM

cutBased selection minimum value

TIGHT

cutBased selection minimum value

VETO

cutBased selection minimum value

isLoose

Returns a boolean array marking loose cut-based electrons

isMedium

Returns a boolean array marking medium cut-based electrons

isTight

Returns a boolean array marking tight cut-based electrons

isVeto

Returns a boolean array marking veto cut-based electrons

matched_gen

matched_jet

matched_photon

+

Attributes Documentation

+
+
+FAIL = 0
+

cutBased selection minimum value

+
+ +
+
+LOOSE = 2
+

cutBased selection minimum value

+
+ +
+
+MEDIUM = 3
+

cutBased selection minimum value

+
+ +
+
+TIGHT = 4
+

cutBased selection minimum value

+
+ +
+
+VETO = 1
+

cutBased selection minimum value

+
+ +
+
+isLoose
+

Returns a boolean array marking loose cut-based electrons

+
+ +
+
+isMedium
+

Returns a boolean array marking medium cut-based electrons

+
+ +
+
+isTight
+

Returns a boolean array marking tight cut-based electrons

+
+ +
+
+isVeto
+

Returns a boolean array marking veto cut-based electrons

+
+ +
+
+matched_gen
+
+ +
+
+matched_jet
+
+ +
+
+matched_photon
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.nanoaod.FatJet.html b/api/coffea.nanoevents.methods.nanoaod.FatJet.html new file mode 100644 index 000000000..e8bd9bd6a --- /dev/null +++ b/api/coffea.nanoevents.methods.nanoaod.FatJet.html @@ -0,0 +1,709 @@ + + + + + + + FatJet — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

FatJet

+
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float)[source]
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pt: float, phi: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pt: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pt: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pt: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pt: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pt: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pt: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pt: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pt: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, ptau: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, ptau: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, ptau: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, ptau: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pE: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pE: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pE: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pE: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pe: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pe: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pe: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pe: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pt: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pt: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pt: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pt: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pM: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pM: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pM: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pM: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pm: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pm: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pm: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pm: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pt: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pt: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pt: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, x: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, px: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, rho: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(*, pt: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(__azumthal: Azimuthal)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(__azumthal: Azimuthal, __longitudinal: Longitudinal)
+
+class coffea.nanoevents.methods.nanoaod.FatJet(__azumthal: Azimuthal, __longitudinal: Longitudinal, __temporal: Temporal)
+

Bases: PtEtaPhiMCandidate, NanoCollection, Systematic

+

NanoAOD large radius jet object

+

Attributes Summary

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

LOOSE

jetId bit position

TIGHT

jetId bit position

TIGHTLEPVETO

jetId bit position

charge

constituents

isLoose

Returns a boolean array marking loose jets according to jetId index

isTight

Returns a boolean array marking tight jets according to jetId index

isTightLeptonVeto

Returns a boolean array marking tight jets with explicit lepton veto according to jetId index

matched_gen

subjets

+

Attributes Documentation

+
+
+LOOSE = 0
+

jetId bit position

+
+ +
+
+TIGHT = 1
+

jetId bit position

+
+ +
+
+TIGHTLEPVETO = 2
+

jetId bit position

+
+ +
+
+charge
+
+ +
+
+constituents
+
+ +
+
+isLoose
+

Returns a boolean array marking loose jets according to jetId index

+
+ +
+
+isTight
+

Returns a boolean array marking tight jets according to jetId index

+
+ +
+
+isTightLeptonVeto
+

Returns a boolean array marking tight jets with explicit lepton veto according to jetId index

+
+ +
+
+matched_gen
+
+ +
+
+subjets
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.nanoaod.FsrPhoton.html b/api/coffea.nanoevents.methods.nanoaod.FsrPhoton.html new file mode 100644 index 000000000..54a72cbbb --- /dev/null +++ b/api/coffea.nanoevents.methods.nanoaod.FsrPhoton.html @@ -0,0 +1,631 @@ + + + + + + + FsrPhoton — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

FsrPhoton

+
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float)[source]
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pt: float, phi: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pt: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pt: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pt: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pt: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pt: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pt: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pt: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pt: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, ptau: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, ptau: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, ptau: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, ptau: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pE: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pE: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pE: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pE: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pe: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pe: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pe: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pe: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pt: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pt: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pt: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pt: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pM: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pM: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pM: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pM: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pm: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pm: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pm: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pm: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pt: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pt: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pt: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, x: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, px: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, rho: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(*, pt: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(__azumthal: Azimuthal)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(__azumthal: Azimuthal, __longitudinal: Longitudinal)
+
+class coffea.nanoevents.methods.nanoaod.FsrPhoton(__azumthal: Azimuthal, __longitudinal: Longitudinal, __temporal: Temporal)
+

Bases: PtEtaPhiMCandidate, NanoCollection

+

NanoAOD fsr photon object

+

Attributes Summary

+ + + + + + +

matched_muon

+

Attributes Documentation

+
+
+matched_muon
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.nanoaod.GenParticle.html b/api/coffea.nanoevents.methods.nanoaod.GenParticle.html new file mode 100644 index 000000000..cba654931 --- /dev/null +++ b/api/coffea.nanoevents.methods.nanoaod.GenParticle.html @@ -0,0 +1,698 @@ + + + + + + + GenParticle — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

GenParticle

+
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float)[source]
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pt: float, phi: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pt: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pt: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pt: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pt: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pt: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pt: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pt: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pt: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, ptau: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, ptau: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, ptau: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, ptau: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pE: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pE: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pE: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pE: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pe: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pe: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pe: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pe: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pt: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pt: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pt: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pt: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pM: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pM: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pM: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pM: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pm: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pm: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pm: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pm: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pt: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pt: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pt: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, x: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, px: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, rho: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(*, pt: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(__azumthal: Azimuthal)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(__azumthal: Azimuthal, __longitudinal: Longitudinal)
+
+class coffea.nanoevents.methods.nanoaod.GenParticle(__azumthal: Azimuthal, __longitudinal: Longitudinal, __temporal: Temporal)
+

Bases: PtEtaPhiMLorentzVector, NanoCollection

+

NanoAOD generator-level particle object, including parent and child self-references

+

Parent and child self-references are constructed from the genPartIdxMother column, where +for each entry, the mother entry index is recorded, or -1 if no mother exists.

+

Attributes Summary

+ + + + + + + + + + + + + + + + + + + + + +

FLAGS

bit-packed statusFlags interpretations.

children

distinctChildren

distinctChildrenDeep

Accessor to distinct child particles with different PDG id, or last ones in the chain

distinctParent

parent

+

Methods Summary

+ + + + + + +

hasFlags(*flags)

Check if one or more status flags are set

+

Attributes Documentation

+
+
+FLAGS = ['isPrompt', 'isDecayedLeptonHadron', 'isTauDecayProduct', 'isPromptTauDecayProduct', 'isDirectTauDecayProduct', 'isDirectPromptTauDecayProduct', 'isDirectHadronDecayProduct', 'isHardProcess', 'fromHardProcess', 'isHardProcessTauDecayProduct', 'isDirectHardProcessTauDecayProduct', 'fromHardProcessBeforeFSR', 'isFirstCopy', 'isLastCopy', 'isLastCopyBeforeFSR']
+

bit-packed statusFlags interpretations. Use GenParticle.hasFlags to query

+
+ +
+
+children
+
+ +
+
+distinctChildren
+
+ +
+
+distinctChildrenDeep
+

Accessor to distinct child particles with different PDG id, or last ones in the chain

+
+ +
+
+distinctParent
+
+ +
+
+parent
+
+ +

Methods Documentation

+
+
+hasFlags(*flags)[source]
+

Check if one or more status flags are set

+
+
Parameters:
+

flags (str or list) – A list of flags that are required to be set true. If the first argument +is a list, it is expanded and subsequent arguments ignored. +Possible flags are enumerated in the FLAGS attribute

+
+
+

Returns a boolean array

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.nanoaod.GenVisTau.html b/api/coffea.nanoevents.methods.nanoaod.GenVisTau.html new file mode 100644 index 000000000..d25f4d07d --- /dev/null +++ b/api/coffea.nanoevents.methods.nanoaod.GenVisTau.html @@ -0,0 +1,632 @@ + + + + + + + GenVisTau — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

GenVisTau

+
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float)[source]
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pt: float, phi: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pt: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pt: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pt: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pt: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pt: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pt: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pt: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pt: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, ptau: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, ptau: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, ptau: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, ptau: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pE: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pE: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pE: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pE: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pe: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pe: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pe: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pe: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pt: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pt: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pt: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pt: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pM: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pM: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pM: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pM: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pm: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pm: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pm: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pm: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pt: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pt: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pt: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, x: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, px: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, rho: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(*, pt: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(__azumthal: Azimuthal)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(__azumthal: Azimuthal, __longitudinal: Longitudinal)
+
+class coffea.nanoevents.methods.nanoaod.GenVisTau(__azumthal: Azimuthal, __longitudinal: Longitudinal, __temporal: Temporal)
+

Bases: PtEtaPhiMCandidate, NanoCollection

+

NanoAOD visible tau object

+

Attributes Summary

+ + + + + + +

parent

Accessor to the parent particle

+

Attributes Documentation

+
+
+parent
+

Accessor to the parent particle

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.nanoaod.Jet.html b/api/coffea.nanoevents.methods.nanoaod.Jet.html new file mode 100644 index 000000000..2799aecf5 --- /dev/null +++ b/api/coffea.nanoevents.methods.nanoaod.Jet.html @@ -0,0 +1,717 @@ + + + + + + + Jet — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

Jet

+
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float)[source]
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pt: float, phi: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pt: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pt: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pt: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pt: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pt: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pt: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pt: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pt: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, ptau: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, ptau: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, ptau: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, ptau: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pE: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pE: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pE: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pE: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pe: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pe: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pe: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pe: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pt: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pt: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pt: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pt: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pM: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pM: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pM: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pM: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pm: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pm: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pm: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pm: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pt: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pt: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pt: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, x: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, px: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, rho: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(*, pt: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Jet(__azumthal: Azimuthal)
+
+class coffea.nanoevents.methods.nanoaod.Jet(__azumthal: Azimuthal, __longitudinal: Longitudinal)
+
+class coffea.nanoevents.methods.nanoaod.Jet(__azumthal: Azimuthal, __longitudinal: Longitudinal, __temporal: Temporal)
+

Bases: PtEtaPhiMCandidate, NanoCollection, Systematic

+

NanoAOD narrow radius jet object

+

Attributes Summary

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

LOOSE

jetId bit position

TIGHT

jetId bit position

TIGHTLEPVETO

jetId bit position

charge

constituents

isLoose

Returns a boolean array marking loose jets according to jetId index

isTight

Returns a boolean array marking tight jets according to jetId index

isTightLeptonVeto

Returns a boolean array marking tight jets with explicit lepton veto according to jetId index

matched_electrons

matched_gen

matched_muons

+

Attributes Documentation

+
+
+LOOSE = 0
+

jetId bit position

+
+ +
+
+TIGHT = 1
+

jetId bit position

+
+ +
+
+TIGHTLEPVETO = 2
+

jetId bit position

+
+ +
+
+charge
+
+ +
+
+constituents
+
+ +
+
+isLoose
+

Returns a boolean array marking loose jets according to jetId index

+
+ +
+
+isTight
+

Returns a boolean array marking tight jets according to jetId index

+
+ +
+
+isTightLeptonVeto
+

Returns a boolean array marking tight jets with explicit lepton veto according to jetId index

+
+ +
+
+matched_electrons
+
+ +
+
+matched_gen
+
+ +
+
+matched_muons
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.nanoaod.LowPtElectron.html b/api/coffea.nanoevents.methods.nanoaod.LowPtElectron.html new file mode 100644 index 000000000..ea56f2637 --- /dev/null +++ b/api/coffea.nanoevents.methods.nanoaod.LowPtElectron.html @@ -0,0 +1,647 @@ + + + + + + + LowPtElectron — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

LowPtElectron

+
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float)[source]
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pt: float, phi: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pt: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pt: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pt: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pt: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pt: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pt: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pt: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pt: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, ptau: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, ptau: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, ptau: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, ptau: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pE: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pE: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pE: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pE: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pe: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pe: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pe: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pe: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pt: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pt: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pt: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pt: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pM: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pM: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pM: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pM: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pm: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pm: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pm: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pm: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pt: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pt: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pt: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, x: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, px: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, rho: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(*, pt: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(__azumthal: Azimuthal)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(__azumthal: Azimuthal, __longitudinal: Longitudinal)
+
+class coffea.nanoevents.methods.nanoaod.LowPtElectron(__azumthal: Azimuthal, __longitudinal: Longitudinal, __temporal: Temporal)
+

Bases: PtEtaPhiMCandidate, NanoCollection, Systematic

+

NanoAOD low-pt electron object

+

Attributes Summary

+ + + + + + + + + + + + +

matched_electron

matched_gen

matched_photon

+

Attributes Documentation

+
+
+matched_electron
+
+ +
+
+matched_gen
+
+ +
+
+matched_photon
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.nanoaod.MissingET.html b/api/coffea.nanoevents.methods.nanoaod.MissingET.html new file mode 100644 index 000000000..604ce03d4 --- /dev/null +++ b/api/coffea.nanoevents.methods.nanoaod.MissingET.html @@ -0,0 +1,631 @@ + + + + + + + MissingET — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

MissingET

+
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float)[source]
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pt: float, phi: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pt: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pt: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pt: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pt: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pt: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pt: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pt: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pt: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, ptau: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, ptau: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, ptau: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, ptau: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pE: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pE: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pE: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pE: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pe: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pe: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pe: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pe: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pt: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pt: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pt: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pt: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pM: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pM: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pM: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pM: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pm: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pm: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pm: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pm: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pt: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pt: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pt: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, x: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, px: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, rho: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(*, pt: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(__azumthal: Azimuthal)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(__azumthal: Azimuthal, __longitudinal: Longitudinal)
+
+class coffea.nanoevents.methods.nanoaod.MissingET(__azumthal: Azimuthal, __longitudinal: Longitudinal, __temporal: Temporal)
+

Bases: PolarTwoVector, NanoCollection, Systematic

+

NanoAOD Missing transverse energy object

+

Attributes Summary

+ + + + + + +

r

Distance from origin in XY plane

+

Attributes Documentation

+
+
+r
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.nanoaod.Muon.html b/api/coffea.nanoevents.methods.nanoaod.Muon.html new file mode 100644 index 000000000..2a4e65c36 --- /dev/null +++ b/api/coffea.nanoevents.methods.nanoaod.Muon.html @@ -0,0 +1,647 @@ + + + + + + + Muon — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

Muon

+
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float)[source]
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pt: float, phi: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pt: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pt: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pt: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pt: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pt: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pt: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pt: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pt: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, ptau: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, ptau: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, ptau: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, ptau: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pE: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pE: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pE: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pE: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pe: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pe: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pe: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pe: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pt: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pt: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pt: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pt: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pM: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pM: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pM: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pM: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pm: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pm: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pm: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pm: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pt: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pt: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pt: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, x: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, px: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, rho: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(*, pt: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Muon(__azumthal: Azimuthal)
+
+class coffea.nanoevents.methods.nanoaod.Muon(__azumthal: Azimuthal, __longitudinal: Longitudinal)
+
+class coffea.nanoevents.methods.nanoaod.Muon(__azumthal: Azimuthal, __longitudinal: Longitudinal, __temporal: Temporal)
+

Bases: PtEtaPhiMCandidate, NanoCollection, Systematic

+

NanoAOD muon object

+

Attributes Summary

+ + + + + + + + + + + + +

matched_fsrPhoton

matched_gen

matched_jet

+

Attributes Documentation

+
+
+matched_fsrPhoton
+
+ +
+
+matched_gen
+
+ +
+
+matched_jet
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.nanoaod.PFCand.html b/api/coffea.nanoevents.methods.nanoaod.PFCand.html new file mode 100644 index 000000000..f2d8c2f52 --- /dev/null +++ b/api/coffea.nanoevents.methods.nanoaod.PFCand.html @@ -0,0 +1,617 @@ + + + + + + + PFCand — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

PFCand

+
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float)[source]
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pt: float, phi: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pt: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pt: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pt: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pt: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pt: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pt: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pt: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pt: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, ptau: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, ptau: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, ptau: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, ptau: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pE: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pE: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pE: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pE: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pe: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pe: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pe: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pe: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pt: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pt: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pt: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pt: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pM: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pM: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pM: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pM: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pm: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pm: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pm: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pm: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pt: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pt: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pt: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, x: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, px: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, rho: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(*, pt: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(__azumthal: Azimuthal)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(__azumthal: Azimuthal, __longitudinal: Longitudinal)
+
+class coffea.nanoevents.methods.nanoaod.PFCand(__azumthal: Azimuthal, __longitudinal: Longitudinal, __temporal: Temporal)
+

Bases: PtEtaPhiMCandidate, NanoCollection

+

PFNano particle flow candidate object

+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.nanoaod.Photon.html b/api/coffea.nanoevents.methods.nanoaod.Photon.html new file mode 100644 index 000000000..9706801d7 --- /dev/null +++ b/api/coffea.nanoevents.methods.nanoaod.Photon.html @@ -0,0 +1,726 @@ + + + + + + + Photon — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

Photon

+
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float)[source]
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pt: float, phi: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pt: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pt: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pt: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pt: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pt: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pt: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pt: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pt: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, ptau: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, ptau: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, ptau: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, ptau: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pE: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pE: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pE: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pE: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pe: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pe: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pe: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pe: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pt: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pt: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pt: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pt: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pM: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pM: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pM: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pM: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pm: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pm: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pm: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pm: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pt: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pt: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pt: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, x: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, px: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, rho: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(*, pt: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Photon(__azumthal: Azimuthal)
+
+class coffea.nanoevents.methods.nanoaod.Photon(__azumthal: Azimuthal, __longitudinal: Longitudinal)
+
+class coffea.nanoevents.methods.nanoaod.Photon(__azumthal: Azimuthal, __longitudinal: Longitudinal, __temporal: Temporal)
+

Bases: PtEtaPhiMCandidate, NanoCollection, Systematic

+

NanoAOD photon object

+

Attributes Summary

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

FAIL

cutBased selection minimum value

LOOSE

cutBased selection minimum value

MEDIUM

cutBased selection minimum value

TIGHT

cutBased selection minimum value

charge

isLoose

Returns a boolean array marking loose cut-based photons

isMedium

Returns a boolean array marking medium cut-based photons

isTight

Returns a boolean array marking tight cut-based photons

mass

Momentum-synonym for vector._methods.VectorProtocolLorentz.tau.

matched_electron

matched_gen

matched_jet

+

Attributes Documentation

+
+
+FAIL = 0
+

cutBased selection minimum value

+
+ +
+
+LOOSE = 1
+

cutBased selection minimum value

+
+ +
+
+MEDIUM = 2
+

cutBased selection minimum value

+
+ +
+
+TIGHT = 3
+

cutBased selection minimum value

+
+ +
+
+charge
+
+ +
+
+isLoose
+

Returns a boolean array marking loose cut-based photons

+
+ +
+
+isMedium
+

Returns a boolean array marking medium cut-based photons

+
+ +
+
+isTight
+

Returns a boolean array marking tight cut-based photons

+
+ +
+
+mass
+
+ +
+
+matched_electron
+
+ +
+
+matched_gen
+
+ +
+
+matched_jet
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection.html b/api/coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection.html new file mode 100644 index 000000000..55b591242 --- /dev/null +++ b/api/coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection.html @@ -0,0 +1,617 @@ + + + + + + + PtEtaPhiMCollection — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

PtEtaPhiMCollection

+
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float)[source]
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pt: float, phi: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pt: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pt: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pt: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pt: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pt: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pt: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pt: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pt: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, ptau: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, ptau: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, ptau: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, ptau: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pE: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pE: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pE: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pE: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pe: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pe: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pe: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pe: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pt: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pt: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pt: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pt: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pM: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pM: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pM: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pM: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pm: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pm: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pm: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pm: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pt: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pt: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pt: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, x: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, px: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, rho: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(*, pt: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(__azumthal: Azimuthal)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(__azumthal: Azimuthal, __longitudinal: Longitudinal)
+
+class coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection(__azumthal: Azimuthal, __longitudinal: Longitudinal, __temporal: Temporal)
+

Bases: PtEtaPhiMLorentzVector, NanoCollection

+

Generic collection that has Lorentz vector properties

+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.nanoaod.SecondaryVertex.html b/api/coffea.nanoevents.methods.nanoaod.SecondaryVertex.html new file mode 100644 index 000000000..8f0232c97 --- /dev/null +++ b/api/coffea.nanoevents.methods.nanoaod.SecondaryVertex.html @@ -0,0 +1,184 @@ + + + + + + + SecondaryVertex — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

SecondaryVertex

+
+
+class coffea.nanoevents.methods.nanoaod.SecondaryVertex[source]
+

Bases: Vertex

+

NanoAOD secondary vertex object

+

Attributes Summary

+ + + + + + +

p4

4-momentum vector of tracks associated to this SV

+

Attributes Documentation

+
+
+p4
+

4-momentum vector of tracks associated to this SV

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.nanoaod.Tau.html b/api/coffea.nanoevents.methods.nanoaod.Tau.html new file mode 100644 index 000000000..99a5fd378 --- /dev/null +++ b/api/coffea.nanoevents.methods.nanoaod.Tau.html @@ -0,0 +1,639 @@ + + + + + + + Tau — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

Tau

+
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float)[source]
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pt: float, phi: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pt: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pt: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pt: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pt: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pt: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pt: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pt: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pt: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, ptau: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, ptau: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, ptau: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, ptau: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pE: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pE: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pE: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pE: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pe: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pe: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pe: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pe: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pt: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pt: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pt: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pt: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pM: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pM: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pM: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pM: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pm: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pm: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pm: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pm: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pt: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pt: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pt: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, x: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, px: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, rho: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(*, pt: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.nanoaod.Tau(__azumthal: Azimuthal)
+
+class coffea.nanoevents.methods.nanoaod.Tau(__azumthal: Azimuthal, __longitudinal: Longitudinal)
+
+class coffea.nanoevents.methods.nanoaod.Tau(__azumthal: Azimuthal, __longitudinal: Longitudinal, __temporal: Temporal)
+

Bases: PtEtaPhiMCandidate, NanoCollection, Systematic

+

NanoAOD tau object

+

Attributes Summary

+ + + + + + + + + +

matched_gen

matched_jet

+

Attributes Documentation

+
+
+matched_gen
+
+ +
+
+matched_jet
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.nanoaod.Vertex.html b/api/coffea.nanoevents.methods.nanoaod.Vertex.html new file mode 100644 index 000000000..8ebe4596d --- /dev/null +++ b/api/coffea.nanoevents.methods.nanoaod.Vertex.html @@ -0,0 +1,184 @@ + + + + + + + Vertex — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

Vertex

+
+
+class coffea.nanoevents.methods.nanoaod.Vertex[source]
+

Bases: NanoCollection

+

NanoAOD vertex object

+

Attributes Summary

+ + + + + + +

pos

Vertex position as a three vector

+

Attributes Documentation

+
+
+pos
+

Vertex position as a three vector

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.vector.LorentzVector.html b/api/coffea.nanoevents.methods.vector.LorentzVector.html new file mode 100644 index 000000000..d52842922 --- /dev/null +++ b/api/coffea.nanoevents.methods.vector.LorentzVector.html @@ -0,0 +1,736 @@ + + + + + + + LorentzVector — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

LorentzVector

+
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float)[source]
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, z: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pt: float, phi: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, z: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, z: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, z: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pt: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pt: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pt: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pt: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pt: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pt: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pt: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pt: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, ptau: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, ptau: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, ptau: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, ptau: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pE: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pE: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pE: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pE: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pe: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pe: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pe: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pe: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pt: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pt: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pt: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pt: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pM: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pM: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pM: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pM: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pm: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pm: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pm: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pm: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pt: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pt: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pt: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, x: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, px: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, rho: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(*, pt: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.LorentzVector(__azumthal: Azimuthal)
+
+class coffea.nanoevents.methods.vector.LorentzVector(__azumthal: Azimuthal, __longitudinal: Longitudinal)
+
+class coffea.nanoevents.methods.vector.LorentzVector(__azumthal: Azimuthal, __longitudinal: Longitudinal, __temporal: Temporal)
+

Bases: MomentumAwkward4D

+

A cartesian Lorentz vector

+

A heavy emphasis towards a momentum vector interpretation is assumed. +(+, -, -, -) metric +This mixin class requires the parent class to provide items x, y, z, and t.

+

Attributes Summary

+ + + + + + + + + + + + + + + +

boostvec

The x, y and z components divided by t as a ThreeVector

metric_table

nearest

pvec

The x, y and z components as a ThreeVector

+

Methods Summary

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

absolute()

Magnitude of this Lorentz vector

delta_phi(other)

Compute difference in angle between two vectors

delta_r(other)

Distance between two Lorentz vectors in (eta,phi) plane

delta_r2(other)

Squared delta_r

divide(other)

Divide this vector by a scalar elementwise using its cartesian components This is realized by using the multiplication functionality

multiply(other)

Multiply this vector by a scalar elementwise using x, y, z, and t components

negative()

Returns the negative of the vector

sum([axis])

Sum an array of vectors elementwise using x, y, z, and t components

+

Attributes Documentation

+
+
+boostvec
+

The x, y and z components divided by t as a ThreeVector

+

This can be used for boosting. For cases where |t| <= r, this +returns the unit vector.

+
+ +
+
+metric_table
+
+ +
+
+nearest
+
+ +
+
+pvec
+

The x, y and z components as a ThreeVector

+
+ +

Methods Documentation

+
+
+absolute()[source]
+

Magnitude of this Lorentz vector

+

Alias for mass

+
+ +
+
+delta_phi(other)[source]
+

Compute difference in angle between two vectors

+

Returns a value within [-pi, pi)

+
+ +
+
+delta_r(other)[source]
+

Distance between two Lorentz vectors in (eta,phi) plane

+

\(\sqrt{\Delta\eta^2 + \Delta\phi^2}\)

+
+ +
+
+delta_r2(other)[source]
+

Squared delta_r

+
+ +
+
+divide(other)[source]
+

Divide this vector by a scalar elementwise using its cartesian components +This is realized by using the multiplication functionality

+
+ +
+
+multiply(other)[source]
+

Multiply this vector by a scalar elementwise using x, y, z, and t components

+
+ +
+
+negative()[source]
+

Returns the negative of the vector

+
+ +
+
+sum(axis=-1)[source]
+

Sum an array of vectors elementwise using x, y, z, and t components

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.vector.PolarTwoVector.html b/api/coffea.nanoevents.methods.vector.PolarTwoVector.html new file mode 100644 index 000000000..086273541 --- /dev/null +++ b/api/coffea.nanoevents.methods.vector.PolarTwoVector.html @@ -0,0 +1,634 @@ + + + + + + + PolarTwoVector — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

PolarTwoVector

+
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float)[source]
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, z: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pt: float, phi: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, z: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, z: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, z: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pt: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pt: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pt: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pt: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pt: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pt: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pt: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pt: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, ptau: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, ptau: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, ptau: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, ptau: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pE: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pE: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pE: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pE: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pe: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pe: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pe: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pe: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pt: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pt: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pt: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pt: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pM: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pM: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pM: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pM: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pm: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pm: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pm: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pm: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pt: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pt: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pt: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, x: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, px: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, rho: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(*, pt: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(__azumthal: Azimuthal)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(__azumthal: Azimuthal, __longitudinal: Longitudinal)
+
+class coffea.nanoevents.methods.vector.PolarTwoVector(__azumthal: Azimuthal, __longitudinal: Longitudinal, __temporal: Temporal)
+

Bases: TwoVector

+

A polar coordinate 2-dimensional vector

+

This mixin class requires the parent class to provide items rho and phi. +Some additional properties are overridden for performance

+

Methods Summary

+ + + + + + + + + +

multiply(other)

Multiply this vector by a scalar elementwise using using x and y components

negative()

Returns the negative of the vector

+

Methods Documentation

+
+
+multiply(other)[source]
+

Multiply this vector by a scalar elementwise using using x and y components

+

In reality, this directly adjusts r and phi for performance

+
+ +
+
+negative()[source]
+

Returns the negative of the vector

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector.html b/api/coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector.html new file mode 100644 index 000000000..764dc3228 --- /dev/null +++ b/api/coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector.html @@ -0,0 +1,644 @@ + + + + + + + PtEtaPhiELorentzVector — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

PtEtaPhiELorentzVector

+
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float)[source]
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, z: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pt: float, phi: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, z: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, z: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, z: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pt: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pt: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pt: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pt: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pt: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pt: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pt: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pt: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, ptau: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, ptau: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, ptau: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, ptau: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pE: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pE: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pE: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pE: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pe: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pe: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pe: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pe: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pt: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pt: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pt: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pt: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pM: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pM: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pM: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pM: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pm: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pm: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pm: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pm: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pt: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pt: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pt: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, x: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, px: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, rho: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(*, pt: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(__azumthal: Azimuthal)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(__azumthal: Azimuthal, __longitudinal: Longitudinal)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector(__azumthal: Azimuthal, __longitudinal: Longitudinal, __temporal: Temporal)
+

Bases: LorentzVector

+

A Lorentz vector using pseudorapidity and energy

+

This mixin class requires the parent class to provide items pt, eta, phi, and energy. +Some additional properties are overridden for performance

+

Methods Summary

+ + + + + + + + + + + + +

divide(other)

Divide this vector by a scalar elementwise using its cartesian components This is realized by using the multiplication functionality

multiply(other)

Multiply this vector by a scalar elementwise using x, y, z, and t components

negative()

Returns the negative of the vector

+

Methods Documentation

+
+
+divide(other)[source]
+

Divide this vector by a scalar elementwise using its cartesian components +This is realized by using the multiplication functionality

+
+ +
+
+multiply(other)[source]
+

Multiply this vector by a scalar elementwise using x, y, z, and t components

+

In reality, this directly adjusts pt, eta, phi and energy for performance

+
+ +
+
+negative()[source]
+

Returns the negative of the vector

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector.html b/api/coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector.html new file mode 100644 index 000000000..026040bba --- /dev/null +++ b/api/coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector.html @@ -0,0 +1,644 @@ + + + + + + + PtEtaPhiMLorentzVector — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

PtEtaPhiMLorentzVector

+
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float)[source]
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, z: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pt: float, phi: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, z: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, z: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, z: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pt: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pt: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pt: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pt: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pt: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pt: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pt: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pt: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, ptau: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, ptau: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, ptau: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, ptau: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pE: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pE: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pE: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pE: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pe: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pe: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pe: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pe: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pt: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pt: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pt: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pt: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pM: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pM: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pM: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pM: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pm: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pm: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pm: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pm: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pt: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pt: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pt: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, x: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, px: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, rho: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(*, pt: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(__azumthal: Azimuthal)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(__azumthal: Azimuthal, __longitudinal: Longitudinal)
+
+class coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector(__azumthal: Azimuthal, __longitudinal: Longitudinal, __temporal: Temporal)
+

Bases: LorentzVector

+

A Lorentz vector using pseudorapidity and mass

+

This mixin class requires the parent class to provide items pt, eta, phi, and mass. +Some additional properties are overridden for performance

+

Methods Summary

+ + + + + + + + + + + + +

divide(other)

Divide this vector by a scalar elementwise using its cartesian components This is realized by using the multiplication functionality

multiply(other)

Multiply this vector by a scalar elementwise using x, y, z, and t components

negative()

Returns the negative of the vector

+

Methods Documentation

+
+
+divide(other)[source]
+

Divide this vector by a scalar elementwise using its cartesian components +This is realized by using the multiplication functionality

+
+ +
+
+multiply(other)[source]
+

Multiply this vector by a scalar elementwise using x, y, z, and t components

+

In reality, this directly adjusts pt, eta, phi and mass for performance

+
+ +
+
+negative()[source]
+

Returns the negative of the vector

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.vector.SphericalThreeVector.html b/api/coffea.nanoevents.methods.vector.SphericalThreeVector.html new file mode 100644 index 000000000..c2daacf76 --- /dev/null +++ b/api/coffea.nanoevents.methods.vector.SphericalThreeVector.html @@ -0,0 +1,652 @@ + + + + + + + SphericalThreeVector — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

SphericalThreeVector

+
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float)[source]
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, z: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pt: float, phi: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, z: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, z: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, z: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pt: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pt: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pt: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pt: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pt: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pt: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pt: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pt: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, ptau: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, ptau: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, ptau: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, ptau: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pE: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pE: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pE: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pE: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pe: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pe: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pe: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pe: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pt: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pt: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pt: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pt: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pM: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pM: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pM: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pM: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pm: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pm: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pm: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pm: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pt: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pt: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pt: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, x: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, px: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, rho: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(*, pt: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(__azumthal: Azimuthal)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(__azumthal: Azimuthal, __longitudinal: Longitudinal)
+
+class coffea.nanoevents.methods.vector.SphericalThreeVector(__azumthal: Azimuthal, __longitudinal: Longitudinal, __temporal: Temporal)
+

Bases: ThreeVector

+

A spherical coordinate 3-dimensional vector

+

This mixin class requires the parent class to provide items rho, theta, and phi. +Some additional properties are overridden for performance

+

Attributes Summary

+ + + + + + +

r

Distance from origin in XY plane

+

Methods Summary

+ + + + + + + + + +

multiply(other)

Multiply this vector by a scalar elementwise using x, y, and z components

negative()

Returns the negative of the vector

+

Attributes Documentation

+
+
+r
+

Distance from origin in XY plane

+

\(\sqrt{x^2+y^2} = \rho \sin(\theta)\)

+
+ +

Methods Documentation

+
+
+multiply(other)[source]
+

Multiply this vector by a scalar elementwise using x, y, and z components

+

In reality, this directly adjusts r, theta and phi for performance

+
+ +
+
+negative()[source]
+

Returns the negative of the vector

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.vector.ThreeVector.html b/api/coffea.nanoevents.methods.vector.ThreeVector.html new file mode 100644 index 000000000..21dbcf89d --- /dev/null +++ b/api/coffea.nanoevents.methods.vector.ThreeVector.html @@ -0,0 +1,708 @@ + + + + + + + ThreeVector — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

ThreeVector

+
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float)[source]
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, z: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pt: float, phi: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, z: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, z: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, z: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pt: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pt: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pt: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pt: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pt: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pt: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pt: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pt: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, ptau: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, ptau: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, ptau: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, ptau: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pE: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pE: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pE: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pE: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pe: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pe: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pe: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pe: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pt: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pt: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pt: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pt: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pM: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pM: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pM: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pM: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pm: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pm: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pm: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pm: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pt: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pt: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pt: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, x: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, px: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, rho: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(*, pt: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.ThreeVector(__azumthal: Azimuthal)
+
+class coffea.nanoevents.methods.vector.ThreeVector(__azumthal: Azimuthal, __longitudinal: Longitudinal)
+
+class coffea.nanoevents.methods.vector.ThreeVector(__azumthal: Azimuthal, __longitudinal: Longitudinal, __temporal: Temporal)
+

Bases: MomentumAwkward3D

+

A cartesian 3-dimensional vector

+

A heavy emphasis towards a momentum vector interpretation is assumed. +This mixin class requires the parent class to provide items x, y, and z.

+

Attributes Summary

+ + + + + + + + + + + + +

r

Distance from origin in XY plane

r2

Squared r

unit

Unit vector, a vector of length 1 pointing in the same direction

+

Methods Summary

+ + + + + + + + + + + + + + + + + + + + + +

absolute()

Returns magnitude of the 3D vector

delta_phi(other)

Compute difference in angle between two vectors

divide(other)

Divide this vector by a scalar elementwise using its cartesian components This is realized by using the multiplication functionality

multiply(other)

Multiply this vector by a scalar elementwise using x, y, and z components

negative()

Returns the negative of the vector

sum([axis])

Sum an array of vectors elementwise using x, y, and z components

+

Attributes Documentation

+
+
+r
+

Distance from origin in XY plane

+

\(\sqrt{x^2+y^2}\)

+
+ +
+
+r2
+

Squared r

+
+ +
+
+unit
+

Unit vector, a vector of length 1 pointing in the same direction

+
+ +

Methods Documentation

+
+
+absolute()[source]
+

Returns magnitude of the 3D vector

+

Alias for rho

+
+ +
+
+delta_phi(other)[source]
+

Compute difference in angle between two vectors

+

Returns a value within [-pi, pi)

+
+ +
+
+divide(other)[source]
+

Divide this vector by a scalar elementwise using its cartesian components +This is realized by using the multiplication functionality

+
+ +
+
+multiply(other)[source]
+

Multiply this vector by a scalar elementwise using x, y, and z components

+
+ +
+
+negative()[source]
+

Returns the negative of the vector

+
+ +
+
+sum(axis=-1)[source]
+

Sum an array of vectors elementwise using x, y, and z components

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.nanoevents.methods.vector.TwoVector.html b/api/coffea.nanoevents.methods.vector.TwoVector.html new file mode 100644 index 000000000..59e092f05 --- /dev/null +++ b/api/coffea.nanoevents.methods.vector.TwoVector.html @@ -0,0 +1,709 @@ + + + + + + + TwoVector — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

TwoVector

+
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float)[source]
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, z: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pt: float, phi: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, z: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, z: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, pz: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, z: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, pz: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pt: float, phi: float, z: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pt: float, phi: float, pz: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, theta: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, theta: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pt: float, phi: float, theta: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, eta: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, eta: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pt: float, phi: float, eta: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pt: float, phi: float, z: float, t: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pt: float, phi: float, pz: float, t: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pt: float, phi: float, theta: float, t: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pt: float, phi: float, eta: float, t: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, ptau: float, phi: float, z: float, tau: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, ptau: float, phi: float, pz: float, tau: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, ptau: float, phi: float, theta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, ptau: float, phi: float, eta: float, tau: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pE: float, phi: float, z: float, E: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pE: float, phi: float, pz: float, E: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pE: float, phi: float, theta: float, E: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pE: float, phi: float, eta: float, E: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pe: float, phi: float, z: float, e: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pe: float, phi: float, pz: float, e: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pe: float, phi: float, theta: float, e: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pe: float, phi: float, eta: float, e: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pt: float, phi: float, z: float, energy: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pt: float, phi: float, pz: float, energy: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pt: float, phi: float, theta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pt: float, phi: float, eta: float, energy: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pM: float, phi: float, z: float, M: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pM: float, phi: float, pz: float, M: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pM: float, phi: float, theta: float, M: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pM: float, phi: float, eta: float, M: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pm: float, phi: float, z: float, m: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pm: float, phi: float, pz: float, m: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pm: float, phi: float, theta: float, m: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pm: float, phi: float, eta: float, m: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pt: float, phi: float, z: float, mass: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pt: float, phi: float, pz: float, mass: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pt: float, phi: float, theta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, x: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, y: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, px: float, py: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, rho: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(*, pt: float, phi: float, eta: float, mass: float)
+
+class coffea.nanoevents.methods.vector.TwoVector(__azumthal: Azimuthal)
+
+class coffea.nanoevents.methods.vector.TwoVector(__azumthal: Azimuthal, __longitudinal: Longitudinal)
+
+class coffea.nanoevents.methods.vector.TwoVector(__azumthal: Azimuthal, __longitudinal: Longitudinal, __temporal: Temporal)
+

Bases: MomentumAwkward2D

+

A cartesian 2-dimensional vector

+

A heavy emphasis towards a momentum vector interpretation is assumed, hence +properties like px and py are provided in addition to x and y.

+

This mixin class requires the parent class to provide items x and y.

+

Attributes Summary

+ + + + + + + + + + + + +

r

Distance from origin in XY plane

r2

Squared r

unit

Unit vector, a vector of length 1 pointing in the same direction

+

Methods Summary

+ + + + + + + + + + + + + + + + + + + + + +

absolute()

Returns magnitude of the 2D vector

delta_phi(other)

Compute difference in angle between two vectors

divide(other)

Divide this vector by a scalar elementwise using its cartesian components

multiply(other)

Multiply this vector by a scalar elementwise using x and y components

negative()

Returns the negative of the vector

sum([axis])

Sum an array of vectors elementwise using x and y components

+

Attributes Documentation

+
+
+r
+

Distance from origin in XY plane

+

\(\sqrt{x^2+y^2}\)

+
+ +
+
+r2
+

Squared r

+
+ +
+
+unit
+

Unit vector, a vector of length 1 pointing in the same direction

+
+ +

Methods Documentation

+
+
+absolute()[source]
+

Returns magnitude of the 2D vector

+

Alias for r

+
+ +
+
+delta_phi(other)[source]
+

Compute difference in angle between two vectors

+

Returns a value within [-pi, pi)

+
+ +
+
+divide(other)[source]
+

Divide this vector by a scalar elementwise using its cartesian components

+

This is realized by using the multiplication functionality

+
+ +
+
+multiply(other)[source]
+

Multiply this vector by a scalar elementwise using x and y components

+
+ +
+
+negative()[source]
+

Returns the negative of the vector

+
+ +
+
+sum(axis=-1)[source]
+

Sum an array of vectors elementwise using x and y components

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.processor.ProcessorABC.html b/api/coffea.processor.ProcessorABC.html new file mode 100644 index 000000000..a90a9be7c --- /dev/null +++ b/api/coffea.processor.ProcessorABC.html @@ -0,0 +1,205 @@ + + + + + + + ProcessorABC — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ProcessorABC

+
+
+class coffea.processor.ProcessorABC[source]
+

Bases: object

+

ABC for a generalized processor

+

The various data delivery mechanisms (spark, striped, uproot, uproot+futures, condor, …) +receive such an object and the appropriate metadata to deliver NanoEvents to it. +It is expected that the entire processor object can be serializable (check with save) +No attempt should be made to track state inside an instance of ProcessorABC, it is to be +treated simply as a bundle of methods.

+

Examples

+

A skeleton processor:

+
from coffea import hist, processor
+
+class MyProcessor(processor.ProcessorABC):
+    def __init__(self, flag=False):
+        self._flag = flag
+
+    def process(self, events):
+        out = {"sumw": ak.num(events, axis=0)}
+
+        # ...
+
+        return {events.metadata.dataset: out}
+
+    def postprocess(self, accumulator):
+        pass
+
+p = MyProcessor()
+
+
+

Methods Summary

+ + + + + + + + + +

postprocess(accumulator)

Final processing on aggregated accumulator

process(events)

Processes a single NanoEvents chunk

+

Methods Documentation

+
+
+abstract postprocess(accumulator)[source]
+

Final processing on aggregated accumulator

+

Do any final processing on the resulting accumulator object, it should be modified in-place

+
+ +
+
+abstract process(events)[source]
+

Processes a single NanoEvents chunk

+

Returns a filled accumulator object

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.util.SpeedColumn.html b/api/coffea.util.SpeedColumn.html new file mode 100644 index 000000000..58111f664 --- /dev/null +++ b/api/coffea.util.SpeedColumn.html @@ -0,0 +1,167 @@ + + + + + + + SpeedColumn — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

SpeedColumn

+
+
+class coffea.util.SpeedColumn(fmt: str = '.1f', table_column: Column | None = None)[source]
+

Bases: ProgressColumn

+

Renders human readable transfer speed.

+

Methods Summary

+ + + + + + +

render(task)

Show data transfer speed.

+

Methods Documentation

+
+
+render(task: Any) Text[source]
+

Show data transfer speed.

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.util.awkward_rewrap.html b/api/coffea.util.awkward_rewrap.html new file mode 100644 index 000000000..0d2852579 --- /dev/null +++ b/api/coffea.util.awkward_rewrap.html @@ -0,0 +1,159 @@ + + + + + + + awkward_rewrap — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

awkward_rewrap

+
+
+coffea.util.awkward_rewrap(arr, like_what, gfunc)[source]
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.util.compress_form.html b/api/coffea.util.compress_form.html new file mode 100644 index 000000000..96f5225de --- /dev/null +++ b/api/coffea.util.compress_form.html @@ -0,0 +1,159 @@ + + + + + + + compress_form — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/api/coffea.util.decompress_form.html b/api/coffea.util.decompress_form.html new file mode 100644 index 000000000..55d38175e --- /dev/null +++ b/api/coffea.util.decompress_form.html @@ -0,0 +1,159 @@ + + + + + + + decompress_form — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

decompress_form

+
+
+coffea.util.decompress_form(form_compressedb64)[source]
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.util.deprecate.html b/api/coffea.util.deprecate.html new file mode 100644 index 000000000..f779d03d9 --- /dev/null +++ b/api/coffea.util.deprecate.html @@ -0,0 +1,159 @@ + + + + + + + deprecate — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

deprecate

+
+
+coffea.util.deprecate(message, version, date=None, will_be='an error', category=<class 'DeprecationWarning'>, stacklevel=2)[source]
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.util.load.html b/api/coffea.util.load.html new file mode 100644 index 000000000..8aa60dc0b --- /dev/null +++ b/api/coffea.util.load.html @@ -0,0 +1,160 @@ + + + + + + + load — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/api/coffea.util.rewrap_recordarray.html b/api/coffea.util.rewrap_recordarray.html new file mode 100644 index 000000000..7dd007886 --- /dev/null +++ b/api/coffea.util.rewrap_recordarray.html @@ -0,0 +1,159 @@ + + + + + + + rewrap_recordarray — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

rewrap_recordarray

+
+
+coffea.util.rewrap_recordarray(layout, depth, data)[source]
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/api/coffea.util.rich_bar.html b/api/coffea.util.rich_bar.html new file mode 100644 index 000000000..fc1f6ed3a --- /dev/null +++ b/api/coffea.util.rich_bar.html @@ -0,0 +1,159 @@ + + + + + + + rich_bar — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/api/coffea.util.save.html b/api/coffea.util.save.html new file mode 100644 index 000000000..e1abf39fc --- /dev/null +++ b/api/coffea.util.save.html @@ -0,0 +1,161 @@ + + + + + + + save — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+ +
+
+ +
+

save

+
+
+coffea.util.save(output, filename)[source]
+

Save a coffea object or collection thereof to disk

+

This function can accept any picklable object. Suggested suffix: .coffea

+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/concepts.html b/concepts.html new file mode 100644 index 000000000..5fb871616 --- /dev/null +++ b/concepts.html @@ -0,0 +1,188 @@ + + + + + + + Coffea concepts — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Coffea concepts

+

This page explains concepts and terminology used within the coffea package. +It is intended to provide a high-level overview, while details can be found in other sections of the documentation.

+
+

Columnar analysis

+

Columnar analysis is a paradigm that describes the way the user writes the analysis application that is best described +in contrast to the the traditional paradigm in high-energy particle physics (HEP) of using an event loop. In an event loop, the analysis operates row-wise +on the input data (in HEP, one row usually corresponds to one reconstructed particle collision event.) Each row +is a structure containing several fields, such as the properties of the visible outgoing particles +that were reconstructed in a collision event. The analysis code manipulates this structure to either output derived +quantities or summary statistics in the form of histograms. In contrast, columnar analysis operates on individual +columns of data spanning a chunk (partition, batch) of rows using array programming +primitives in turn, to compute derived quantities and summary statistics. Array programming is widely used within +the scientific python ecosystem, supported by the numpy library. +However, although the existing scientific python stack is fully capable of analyzing rectangular arrays (i.e. +no variable-length array dimensions), HEP data is very irregular, and manipulating it can become awkward without +first generalizing array structure a bit. The awkward package does this, +extending array programming capabilities to the complexity of HEP data.

+_images/columnar.png +
+
+

Coffea processor

+

In almost all HEP analyses, each row corresponds to an independent event, and it is exceptionally rare +to need to compute inter-row derived quantities. Due to this, horizontal scale-out is almost trivial: +each chunk of rows can be operated on independently. Further, if the output of an analysis is restricted +to reducible accumulators such as histograms (abstracted by dask, dask-awkward, and dask-histogram), +then outputs can even be merged via tree reduction. The ProcessorABC class is an abstraction to encapsulate +analysis code so that it can be easily scaled out, leaving the delivery of input columns and reduction of +output accumulators to the coffea framework. However it is not an absolute requirement, and mere a useful +organizational framework.

+
+
+

Scale-out

+

Often, the computation requirements of a HEP data analysis exceed the resources of a single thread of execution. +To facilitate parallelization and allow the user to access more compute resources, coffea employs dask, +dask-distributed, and taskvine to ease the transition between a local analysis on a small set of test data to a +full-scale analysis. Dask provides local schedulers and distributed schedulers, and taskvine supplies an additional +distributed scheduler.

+
+

Local executors

+

Currently, four local executors exist: sync, Thread State and the Global Interpreter Lock, processes, and local distributed client. +The sync schedulersimply processes each chunk of an input dataset in turn, using the current python thread. The +threads scheduler employs python multithreaded to spawn multiple python threads that process chunks in parallel +on the machine. The processes and local distributed client schedulures use multiprocessing to spawn multiple python +processes that process chunk in parallel on the machine. Process-base parallelism tends to more efficient when using +uproot since it avoids performance limitations due to the CPython global interpreter lock.

+
+
+

Distributed executors

+

Currently, coffea supports two types of distributed schedulers:

+
+
    +
  • the dask distributed executor, accessed via the distributed.Client entrypoint,

  • +
  • and the taskvine distributed scheduler.

  • +
+
+

These schedulers use their respective underlying libraries to distribute processing tasks over multiple machines.

+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/examples.html b/examples.html new file mode 100644 index 000000000..cfba78467 --- /dev/null +++ b/examples.html @@ -0,0 +1,183 @@ + + + + + + + Coffea by Example — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+
+ + + + \ No newline at end of file diff --git a/genindex.html b/genindex.html new file mode 100644 index 000000000..b0f44f033 --- /dev/null +++ b/genindex.html @@ -0,0 +1,1234 @@ + + + + + + Index — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + +
  • +
  • +
+
+
+
+
+ + +

Index

+ +
+ _ + | A + | B + | C + | D + | E + | F + | G + | H + | I + | J + | K + | L + | M + | N + | P + | R + | S + | T + | U + | V + | W + | X + | Y + +
+

_

+ + +
+ +

A

+ + + +
+ +

B

+ + + +
+ +

C

+ + + +
+ +

D

+ + + +
+ +

E

+ + + +
+ +

F

+ + + +
+ +

G

+ + + +
+ +

H

+ + + +
+ +

I

+ + + +
+ +

J

+ + + +
+ +

K

+ + +
+ +

L

+ + + +
+ +

M

+ + + +
+ +

N

+ + + +
+ +

P

+ + + +
+ +

R

+ + + +
+ +

S

+ + + +
+ +

T

+ + + +
+ +

U

+ + + +
+ +

V

+ + + +
+ +

W

+ + + +
+ +

X

+ + +
+ +

Y

+ + +
+ + + +
+
+
+ +
+ +
+

© Copyright 2024, Fermi National Accelerator Laboratory.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 000000000..ec511da7c --- /dev/null +++ b/index.html @@ -0,0 +1,1094 @@ + + + + + + + coffea - Columnar Object Framework For Effective Analysis — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + +
  • + View page source +
  • +
+
+
+
+
+ +
+

coffea - Columnar Object Framework For Effective Analysis

+https://zenodo.org/badge/159673139.svg +https://github.com/CoffeaTeam/coffea/actions/workflows/ci.yml/badge.svg +https://codecov.io/gh/CoffeaTeam/coffea/branch/master/graph/badge.svg?event=schedule +https://badge.fury.io/py/coffea.svg +https://img.shields.io/pypi/dm/coffea.svg +https://img.shields.io/conda/vn/conda-forge/coffea.svg +https://badges.gitter.im/CoffeaTeam/coffea.svg +https://mybinder.org/badge_logo.svg +

Basic tools and wrappers for enabling not-too-alien syntax when running columnar Collider HEP analysis.

+

coffea is a prototype package for pulling together all the typical needs +of a high-energy collider physics (HEP) experiment analysis using the scientific +python ecosystem. It makes use of uproot +and awkward-array to provide an +array-based syntax for manipulating HEP event data in an efficient and numpythonic +way. There are sub-packages that implement histogramming, plotting, and look-up +table functionalities that are needed to convey scientific insight, apply transformations +to data, and correct for discrepancies in Monte Carlo simulations compared to data.

+

coffea also supplies facilities for horizontally scaling an analysis in order to reduce +time-to-insight in a way that is largely independent of the resource the analysis +is being executed on. By making use of modern big-data technologies like +Apache Spark, parsl, +Dask , and Work Queue, +it is possible with coffea to scale a HEP analysis from a testing +on a laptop to: a large multi-core server, computing clusters, and super-computers without +the need to alter or otherwise adapt the analysis code itself.

+

coffea is a HEP community project collaborating with iris-hep +and is currently a prototype. We welcome input to improve its quality as we progress towards +a sensible refactorization into the scientific python ecosystem and a first release. Please +feel free to contribute at our github repo!

+
+
+

Installation

+

Install coffea like any other Python package:

+
pip install coffea
+
+
+

or similar (use sudo, --user, virtualenv, or pip-in-conda if you wish). +For more details, see the Installing coffea section of the documentation.

+
+
+

Strict dependencies

+ +

The following are installed automatically when you install coffea with pip:

+
    +
  • numpy (1.22+);

  • +
  • uproot for interacting with ROOT files and handling their data transparently;

  • +
  • awkward-array to manipulate complex-structured columnar data, such as jagged arrays;

  • +
  • numba just-in-time compilation of python functions;

  • +
  • scipy for many statistical functions;

  • +
  • matplotlib as a plotting backend;

  • +
  • and other utility packages, as enumerated in pyproject.toml.

  • +
+
+
+

Documentation

+

All documentation is hosted at https://coffeateam.github.io/coffea/

+
+
+

Citation

+

If you would like to cite this code in your work, you can use the zenodo DOI indicated in CITATION.cff, or the latest DOI. You may also cite the proceedings:

+
    +
  • “N. Smith et al 2020 EPJ Web Conf. 245 06012”

  • +
  • “L. Gray et al 2023 J. Phys.: Conf. Ser. 2438 012033”

  • +
+
+ +
+
+
+

Indices and tables

+ +
+ + +
+
+
+ +
+ +
+

© Copyright 2024, Fermi National Accelerator Laboratory.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/installation.html b/installation.html new file mode 100644 index 000000000..7b96b2194 --- /dev/null +++ b/installation.html @@ -0,0 +1,341 @@ + + + + + + + Installing coffea — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Installing coffea

+
+

Quick start

+

To try coffea now, without installing anything, you can experiment with our +hosted tutorial notebooks.

+
+
+

Platform support

+

Coffea is a python package distributed via PyPI. A python installation is required to use coffea. +Python version 3.6 or newer is required.

+

All functional features in each supported python version are routinely tested. +You can see the python version you have installed by typing the following at the command prompt:

+
>>> python --version
+
+
+

or, in some cases, if both python 2 and 3 are available, you can find the python 3 version via:

+
>>> python3 --version
+
+
+

coffea core functionality is routinely tested on Windows, Linux and MacOS. +All def-local-executors are tested against all three platforms, +however the Distributed executors are not routinely tested on Windows.

+

Coffea starts from v0.5.0 in the PyPI repository since before v0.5.0 it was hosted as fnal-column-analysis-tools. If you are still using fnal-column-analysis-tools, please move to coffea!

+
+
+

Install coffea

+

To install coffea, there are several mostly-equivalent options:

+
+
    +
  • install coffea system-wide using pip install coffea;

  • +
  • if you do not have administrator permissions, install as local user with pip install --user coffea;

  • +
  • if you prefer to not place coffea in your global environment, you can set up a Virtual environment;

  • +
  • if you use Conda, simply conda install coffea;

  • +
  • or, if you like to use containers, see Pre-built images below.

  • +
+
+

To update a previously installed coffea to a newer version, use: pip install --upgrade coffea +Although not required, it is recommended to also install Jupyter, as it provides a more interactive development environment. +The installation procedure is essentially identical as above: pip install jupyter. (If you use conda, conda install jupyter is a better option.)

+

In rare cases, you may find that the pip executable in your path does not correspond to the same python installation as the python executable. This is a sign of a broken python environment. However, this can be bypassed by using the syntax python -m pip ... in place of pip ....

+
+
+

Install optional dependencies

+

Coffea supports several optional components that require additional package installations. +In particular, all of the Distributed executors require additional packages. +The necessary dependencies can be installed easily via pip using the setuptools extras facility:

+
+
    +
  • Apache Spark distributed executor: pip install coffea[spark]

  • +
  • parsl distributed executor: pip install coffea[parsl]

  • +
  • dask distributed executor: pip install coffea[dask]

  • +
  • Work Queue distributed executor: see Work Queue Executor for installation instructions

  • +
+
+

Multiple extras can be installed together via, e.g. pip install coffea[dask,spark]

+
+
+

Virtual environment

+

Virtual environments are a good way to isolate python environments, and ensure no hidden dependencies. +You can find more information at https://docs.python.org/3/library/venv.html

+
python -m venv my_env
+source my_env/bin/activate
+pip install coffea
+
+
+
+
+

Pre-built images

+

A complete coffea + scientific python environment is available as a docker image:

+
docker run -it --name docker-coffea-base coffeateam/coffea-base
+
+
+

More information is available at https://github.com/CoffeaTeam/docker-coffea-base#readme +Additionally there is an image with dask dependencies (including dask-jobqueue):

+
docker run -it --name docker-coffea-dask coffeateam/coffea-dask
+
+
+

With corresponding repo at https://github.com/CoffeaTeam/docker-coffea-dask#readme

+

If you use singularity, there are preconverted images available via the unpacked.cern.ch service. For example, you can start a shell with:

+
singularity shell -B ${PWD}:/work /cvmfs/unpacked.cern.ch/registry.hub.docker.com/coffeateam/coffea-dask:latest
+
+
+
+
+

Install via cvmfs

+

Although the local installation can work anywhere, if the base environment does not already have most of the coffea dependencies, then the user-local package directory can become quite bloated. +An option to avoid this bloat is to use a base python environment provided via CERN LCG, which is available on any system that has the cvmfs directory /cvmfs/sft.cern.ch/ mounted. +Simply source a LCG release (shown here: 98python3) and install:

+
# check your platform: CC7 shown below, for SL6 it would be "x86_64-slc6-gcc8-opt"
+source /cvmfs/sft.cern.ch/lcg/views/LCG_98python3/x86_64-centos7-gcc9-opt/setup.sh  # or .csh, etc.
+pip install --user coffea
+
+
+

This method can be fragile, since the LCG-distributed packages may conflict with the coffea dependencies. In general it is better to define your own environment or use an image.

+
+
+

Creating a portable virtual environment

+

In some instances, it may be useful to have a self-contained environment that can be relocated. +One use case is for users of coffea that do not have access to a distributed compute cluster that is compatible with +one of the coffea distributed executors. Here, a fallback solution can be found by creating traditional batch jobs (e.g. condor) +which then use coffea local executors, possibly multi-threaded. In this case, often the user-local python package directory +is not available from batch workers, so a portable python environment needs to be created. +Annoyingly, python virtual environments are not portable by default due to several hardcoded paths in specific locations, however +there are two workarounds presented below. In both cases, we make a virtual environment that starts from a non-system base +python environment to lower the amount of needed installations in the virtual environment. One can always start a venv from scratch, +but the number of coffea dependencies makes the installation rather large, up to a few hundred MB.

+
+

Container-based

+

If we start from one of the singularity containers from the Pre-built images section, we don’t have to install nearly as much +software in our virtual environment, letting the container image take care of the majority of the codebase. For example, the following +code starts from the coffea-dask image and adds a special python module that is not included in the base image:

+
singularity shell -B ${PWD}:/srv /cvmfs/unpacked.cern.ch/registry.hub.docker.com/coffeateam/coffea-dask:latest
+cd /srv
+python -m venv --without-pip --system-site-packages myenv
+source myenv/bin/activate
+python -m pip install --ignore-installed h5py
+
+
+

This creates a virtual environmennt myenv and a directory with the same name where the extra python module h5py will be +installed. At this point, the terminal prompt will look like (myenv) Singularity>, indicating you are inside a singularity +image and have myenv activated. Next time you log in, only lines 1, 2, and 4 need to be re-executed.

+

If using HTCondor for job submission, you can create a tarball of the virtual environment directory and then submit condor +jobs using the +SingularityImage HTCondor option. +Note that this option is not enabled by default in HTCondor installations, so you may need to talk to your site administrator to be +able to use this option. You will also need to create a small wrapper script to re-source the environment to have the job use the +same environment as your interactive container. +A complete example that runs at FNAL LPC is shown in this gist.

+
+
+

LCG-based

+

There are not many locations to edit to make a venv portable, and some sed hacks can save the day. +Here is an example of a bash script that installs coffea on top of the LCG 98python3 software stack inside a portable virtual environment, +with the caveat that cvmfs must be visible from batch workers:

+
#!/usr/bin/env bash
+NAME=coffeaenv
+LCG=/cvmfs/sft.cern.ch/lcg/views/LCG_98python3/x86_64-centos7-gcc9-opt
+
+source $LCG/setup.sh
+# following https://aarongorka.com/blog/portable-virtualenv/, an alternative is https://github.com/pantsbuild/pex
+python -m venv --copies $NAME
+source $NAME/bin/activate
+LOCALPATH=$NAME$(python -c 'import sys; print(f"/lib/python{sys.version_info.major}.{sys.version_info.minor}/site-packages")')
+export PYTHONPATH=${LOCALPATH}:$PYTHONPATH
+python -m pip install setuptools pip wheel --upgrade
+python -m pip install coffea
+sed -i '1s/#!.*python$/#!\/usr\/bin\/env python/' $NAME/bin/*
+sed -i '40s/.*/VIRTUAL_ENV="$(cd "$(dirname "$(dirname "${BASH_SOURCE[0]}" )")" \&\& pwd)"/' $NAME/bin/activate
+sed -i "2a source ${LCG}/setup.sh" $NAME/bin/activate
+sed -i "3a export PYTHONPATH=${LOCALPATH}:\$PYTHONPATH" $NAME/bin/activate
+tar -zcf ${NAME}.tar.gz ${NAME}
+
+
+

The resulting tarball size is about 60 MB. +An example batch job wrapper script is:

+
#!/usr/bin/env bash
+tar -zxf coffeaenv.tar.gz
+source coffeaenv/bin/activate
+
+echo "Running command:" $@
+time $@ || exit $?
+
+
+

Note that this environment only functions from the working directory of the wrapper script due to having relative paths. +Unless you install jupyter into this environment (which may bloat the tarball–LCG98 jupyter is reasonably recent), it is not visible inside the LCG jupyter server. From a shell with the virtual environment activated, you can execute:

+
python -m ipykernel install --user --name=coffeaenv
+
+
+

to make a new kernel available that uses this environment.

+
+
+
+

For Developers

+
    +
  1. Download source:

  2. +
+
+
git clone https://github.com/CoffeaTeam/coffea
+
+
+
+
    +
  1. Install with development dependencies:

  2. +
+
+
cd coffea
+pip install --editable .[dev]
+// or if you need to work on the executors, e.g. dask,
+pip install --editable .[dev,dask]
+
+
+
+
    +
  1. Develop a cool new feature or fix some bugs

  2. +
  3. Lint source, run tests, and build documentation:

  4. +
+
+
pre-commit run --all-files
+pytest tests
+pushd docs && make html && popd
+
+
+
+
    +
  1. Make a pull request!

  2. +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/modules/coffea.analysis_tools.html b/modules/coffea.analysis_tools.html new file mode 100644 index 000000000..3e2d39d20 --- /dev/null +++ b/modules/coffea.analysis_tools.html @@ -0,0 +1,197 @@ + + + + + + + coffea.analysis_tools — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

coffea.analysis_tools

+

Tools of general use for columnar analysis

+

These helper classes were previously part of coffea.processor +but have been migrated and updated to be compatible with awkward-array 1.0

+
+

Classes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

Cutflow(names, nevonecut, nevcutflow, ...)

Object to be returned by PackedSelection.cutflow()

CutflowToNpz(file, labels, nevonecut, ...)

Object to be returned by Cutflow.to_npz()

IncompatiblePartitions(name, *args)

NminusOne(names, nev, masks, delayed_mode)

Object to be returned by PackedSelection.nminusone()

NminusOneToNpz(file, labels, nev, masks, saver)

Object to be returned by NminusOne.to_npz()

PackedSelection([dtype])

Store several boolean arrays in a compact manner

WeightStatistics([sumw, sumw2, minw, maxw, n])

Weights(size[, storeIndividual])

Container for event weights and associated systematic shifts

+
+
+

Class Inheritance Diagram

+
Inheritance diagram of coffea.analysis_tools.Cutflow, coffea.analysis_tools.CutflowToNpz, coffea.analysis_tools.NminusOne, coffea.analysis_tools.NminusOneToNpz, coffea.analysis_tools.PackedSelection, coffea.analysis_tools.WeightStatistics, coffea.analysis_tools.Weights
+ + + + + + + + +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/modules/coffea.btag_tools.html b/modules/coffea.btag_tools.html new file mode 100644 index 000000000..5c11f4c14 --- /dev/null +++ b/modules/coffea.btag_tools.html @@ -0,0 +1,164 @@ + + + + + + + coffea.btag_tools — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

coffea.btag_tools

+

BTag tools: CMS analysis-level b-tagging corrections and uncertainties

+

These classes provide computation of CMS b-tagging and mistagging +corrections and uncertainties on columnar data.

+
+

Classes

+ + + + + + +

BTagScaleFactor(filename, workingpoint[, ...])

A class holding one complete BTag scale factor for a given working point

+
+
+

Class Inheritance Diagram

+
Inheritance diagram of coffea.btag_tools.btagscalefactor.BTagScaleFactor
+ + +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/modules/coffea.dataset_tools.html b/modules/coffea.dataset_tools.html new file mode 100644 index 000000000..7126ae2b2 --- /dev/null +++ b/modules/coffea.dataset_tools.html @@ -0,0 +1,190 @@ + + + + + + + coffea.dataset_tools — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

coffea.dataset_tools

+
+

Functions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

preprocess(fileset[, step_size, ...])

Given a list of normalized file and object paths (defined in uproot), determine the steps for each file according to the supplied processing options.

apply_to_dataset(data_manipulation, dataset)

Apply the supplied function or processor to the supplied dataset.

apply_to_fileset(data_manipulation, fileset)

Apply the supplied function or processor to the supplied fileset (set of datasets).

max_chunks(fileset[, maxchunks])

Modify the input dataset so that only the first "maxchunks" chunks of each file will be processed.

slice_chunks(fileset[, theslice])

Modify the input dataset so that only the chunks of each file specified by the input slice are processed.

filter_files(fileset[, thefilter])

Modify the input dataset so that only the files of each dataset that pass the filter remain.

max_files(fileset[, maxfiles])

Modify the input dataset so that only the first "maxfiles" files of each dataset will be processed.

slice_files(fileset[, theslice])

Modify the input dataset so that only the files of each dataset specified by the input slice are processed.

get_failed_steps_for_dataset(dataset, report)

Modify an input dataset to only contain the files and row-ranges for failed processing jobs as specified in the supplied report.

get_failed_steps_for_fileset(fileset, ...)

Modify an input dataset to only contain the files and row-ranges for failed processing jobs as specified in the supplied report.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/modules/coffea.jetmet_tools.html b/modules/coffea.jetmet_tools.html new file mode 100644 index 000000000..d03a761a3 --- /dev/null +++ b/modules/coffea.jetmet_tools.html @@ -0,0 +1,194 @@ + + + + + + + coffea.jetmet_tools — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

coffea.jetmet_tools

+

JetMET tools: CMS analysis-level jet corrections and uncertainties

+

These classes provide computation of CMS jet energy scale and jet energy resolution +corrections and uncertainties on columnar data.

+
+

Classes

+ + + + + + + + + + + + + + + + + + + + + + + + +

FactorizedJetCorrector(**kwargs)

This class is a columnar implementation of the FactorizedJetCorrector tool in CMSSW and FWLite.

JetResolution(**kwargs)

This class is a columnar implementation of the JetResolution tool in CMSSW and FWLite.

JetResolutionScaleFactor(**kwargs)

This class is a columnar implementation of the JetResolutionScaleFactor tool in CMSSW and FWLite.

JetCorrectionUncertainty(**kwargs)

This class is a columnar implementation of the JetCorrectionUncertainty tool in CMSSW and FWLite.

JECStack(corrections[, jec, junc, jer, jersf])

CorrectedJetsFactory(name_map, jec_stack)

CorrectedMETFactory(name_map)

+
+
+

Class Inheritance Diagram

+
Inheritance diagram of coffea.jetmet_tools.FactorizedJetCorrector.FactorizedJetCorrector, coffea.jetmet_tools.JetResolution.JetResolution, coffea.jetmet_tools.JetResolutionScaleFactor.JetResolutionScaleFactor, coffea.jetmet_tools.JetCorrectionUncertainty.JetCorrectionUncertainty, coffea.jetmet_tools.JECStack.JECStack, coffea.jetmet_tools.CorrectedJetsFactory.CorrectedJetsFactory, coffea.jetmet_tools.CorrectedMETFactory.CorrectedMETFactory
+ + + + + + + + +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/modules/coffea.lookup_tools.html b/modules/coffea.lookup_tools.html new file mode 100644 index 000000000..4d46643bd --- /dev/null +++ b/modules/coffea.lookup_tools.html @@ -0,0 +1,169 @@ + + + + + + + coffea.lookup_tools — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

coffea.lookup_tools

+

Lookup tools

+

These classes enable efficient extraction of precomputed lookup tables +from multiple source file formats into a uniform function-call accessor.

+
+

Classes

+ + + + + + + + + +

extractor()

This class defines a common entry point for defining functions that extract the inputs to build lookup tables from various kinds of files.

evaluator(names, types, primitives)

The evaluator class serves as a single point of entry for looking up values of histograms and other functions read in with the extractor class.

+
+
+

Class Inheritance Diagram

+
Inheritance diagram of coffea.lookup_tools.extractor.extractor, coffea.lookup_tools.evaluator.evaluator
+ + + +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/modules/coffea.lumi_tools.html b/modules/coffea.lumi_tools.html new file mode 100644 index 000000000..5105cdeee --- /dev/null +++ b/modules/coffea.lumi_tools.html @@ -0,0 +1,175 @@ + + + + + + + coffea.lumi_tools — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

coffea.lumi_tools

+

Tools to parse CMS luminosity non-event data

+

These tools are currently tailored to the CMS experiment +data formats, however they could be generalized and/or compartmentalized +into a standalone package.

+
+

Classes

+ + + + + + + + + + + + +

LumiData(lumi_csv[, is_inst_lumi])

Holds per-lumiSection integrated lumi values

LumiList([runs, lumis, delayed])

Mergeable list of unique (run, lumiSection) values

LumiMask(jsonfile)

Holds a luminosity mask index, and provides vectorized lookup

+
+
+

Class Inheritance Diagram

+
Inheritance diagram of coffea.lumi_tools.lumi_tools.LumiData, coffea.lumi_tools.lumi_tools.LumiList, coffea.lumi_tools.lumi_tools.LumiMask
+ + + + +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/modules/coffea.ml_tools.html b/modules/coffea.ml_tools.html new file mode 100644 index 000000000..d1d5e3579 --- /dev/null +++ b/modules/coffea.ml_tools.html @@ -0,0 +1,186 @@ + + + + + + + coffea.ml_tools — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

coffea.ml_tools

+

Tools to interface with various ML inference services

+

Providing the interfaces to the run ML inference such that user can simply +handle data mangling in awkward/numpy formats. Specifics of passing numpy arrays +conversion and the handling of dask are mostly abstract away.

+
+

Classes

+ + + + + + + + + + + + + + + + + + +

numpy_call_wrapper()

Wrapper for awkward.to_numpy evaluations for dask_awkward array inputs.

torch_wrapper(torch_jit)

Wrapper for running pytorch with awkward/dask-awkward inputs.

triton_wrapper(model_url[, client_args, ...])

Wrapper for running triton inference.

xgboost_wrapper(fname)

Very simple wrapper for xgbooster inference.

tf_wrapper(tf_model)

Wrapper for running tensorflow inference with awkward/dask-awkward inputs.

+
+
+

Class Inheritance Diagram

+
Inheritance diagram of coffea.ml_tools.helper.numpy_call_wrapper, coffea.ml_tools.torch_wrapper.torch_wrapper, coffea.ml_tools.triton_wrapper.triton_wrapper, coffea.ml_tools.xgboost_wrapper.xgboost_wrapper, coffea.ml_tools.tf_wrapper.tf_wrapper
+ + + + + + + +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/modules/coffea.nanoevents.html b/modules/coffea.nanoevents.html new file mode 100644 index 000000000..e41d307eb --- /dev/null +++ b/modules/coffea.nanoevents.html @@ -0,0 +1,202 @@ + + + + + + + coffea.nanoevents — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

coffea.nanoevents

+

NanoEvents and helpers

+
+

Classes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

NanoEventsFactory(schema, mapping, partition_key)

A factory class to build NanoEvents objects

BaseSchema(base_form, *args, **kwargs)

Base schema builder

NanoAODSchema(base_form[, version])

NanoAOD schema builder

PFNanoAODSchema(base_form[, version])

PFNano schema builder

TreeMakerSchema(base_form, *args, **kwargs)

TreeMaker schema builder

PHYSLITESchema(base_form, *args, **kwargs)

PHYSLITE schema builder - work in progress.

DelphesSchema(base_form[, version])

Delphes schema builder

PDUNESchema(base_form)

ScoutingNanoAODSchema(base_form[, version])

ScoutingNano schema builder

+
+
+

Class Inheritance Diagram

+
Inheritance diagram of coffea.nanoevents.factory.NanoEventsFactory, coffea.nanoevents.schemas.base.BaseSchema, coffea.nanoevents.schemas.nanoaod.NanoAODSchema, coffea.nanoevents.schemas.nanoaod.PFNanoAODSchema, coffea.nanoevents.schemas.treemaker.TreeMakerSchema, coffea.nanoevents.schemas.physlite.PHYSLITESchema, coffea.nanoevents.schemas.delphes.DelphesSchema, coffea.nanoevents.schemas.pdune.PDUNESchema, coffea.nanoevents.schemas.nanoaod.ScoutingNanoAODSchema
+ + + + + + + + + + +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/modules/coffea.nanoevents.methods.base.html b/modules/coffea.nanoevents.methods.base.html new file mode 100644 index 000000000..9e3ce2eb1 --- /dev/null +++ b/modules/coffea.nanoevents.methods.base.html @@ -0,0 +1,172 @@ + + + + + + + coffea.nanoevents.methods.base — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

coffea.nanoevents.methods.base

+

Basic NanoEvents and NanoCollection mixins

+
+

Classes

+ + + + + + + + + + + + +

NanoCollection()

A NanoEvents collection

NanoEvents()

NanoEvents mixin class

Systematic()

A base mixin class to describe and build variations on a feature of an nanoevents object.

+
+
+

Class Inheritance Diagram

+
Inheritance diagram of coffea.nanoevents.methods.base.NanoCollection, coffea.nanoevents.methods.base.NanoEvents, coffea.nanoevents.methods.base.Systematic
+ + + + +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/modules/coffea.nanoevents.methods.candidate.html b/modules/coffea.nanoevents.methods.candidate.html new file mode 100644 index 000000000..786b739e3 --- /dev/null +++ b/modules/coffea.nanoevents.methods.candidate.html @@ -0,0 +1,178 @@ + + + + + + + coffea.nanoevents.methods.candidate — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

coffea.nanoevents.methods.candidate

+

Physics object candidate mixin

+

This provides just a Lorentz vector with charge, but maybe +in the future it will provide some sort of composite candidate building tool +that automatically resolves duplicates in the chain.

+
+

Classes

+ + + + + + + + + + + + +

Candidate()

A Lorentz vector with charge

PtEtaPhiMCandidate()

A Lorentz vector in eta, mass coordinates with charge

PtEtaPhiECandidate()

A Lorentz vector in eta, energy coordinates with charge

+
+
+

Class Inheritance Diagram

+
Inheritance diagram of coffea.nanoevents.methods.candidate.Candidate, coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate, coffea.nanoevents.methods.candidate.PtEtaPhiECandidate
+ + + + + + + +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/modules/coffea.nanoevents.methods.nanoaod.html b/modules/coffea.nanoevents.methods.nanoaod.html new file mode 100644 index 000000000..e7a53c61c --- /dev/null +++ b/modules/coffea.nanoevents.methods.nanoaod.html @@ -0,0 +1,250 @@ + + + + + + + coffea.nanoevents.methods.nanoaod — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

coffea.nanoevents.methods.nanoaod

+

Mixins for the CMS NanoAOD schema

+
+

Classes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

PtEtaPhiMCollection()

Generic collection that has Lorentz vector properties

GenParticle()

NanoAOD generator-level particle object, including parent and child self-references

GenVisTau()

NanoAOD visible tau object

Electron()

NanoAOD electron object

LowPtElectron()

NanoAOD low-pt electron object

Muon()

NanoAOD muon object

Tau()

NanoAOD tau object

Photon()

NanoAOD photon object

FsrPhoton()

NanoAOD fsr photon object

Jet()

NanoAOD narrow radius jet object

FatJet()

NanoAOD large radius jet object

MissingET()

NanoAOD Missing transverse energy object

Vertex()

NanoAOD vertex object

SecondaryVertex()

NanoAOD secondary vertex object

AssociatedPFCand()

PFNano PF candidate to jet association object

AssociatedSV()

PFNano secondary vertex to jet association object

PFCand()

PFNano particle flow candidate object

+
+
+

Class Inheritance Diagram

+
Inheritance diagram of coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection, coffea.nanoevents.methods.nanoaod.GenParticle, coffea.nanoevents.methods.nanoaod.GenVisTau, coffea.nanoevents.methods.nanoaod.Electron, coffea.nanoevents.methods.nanoaod.LowPtElectron, coffea.nanoevents.methods.nanoaod.Muon, coffea.nanoevents.methods.nanoaod.Tau, coffea.nanoevents.methods.nanoaod.Photon, coffea.nanoevents.methods.nanoaod.FsrPhoton, coffea.nanoevents.methods.nanoaod.Jet, coffea.nanoevents.methods.nanoaod.FatJet, coffea.nanoevents.methods.nanoaod.MissingET, coffea.nanoevents.methods.nanoaod.Vertex, coffea.nanoevents.methods.nanoaod.SecondaryVertex, coffea.nanoevents.methods.nanoaod.AssociatedPFCand, coffea.nanoevents.methods.nanoaod.AssociatedSV, coffea.nanoevents.methods.nanoaod.PFCand
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/modules/coffea.nanoevents.methods.vector.html b/modules/coffea.nanoevents.methods.vector.html new file mode 100644 index 000000000..f0e1b7f0e --- /dev/null +++ b/modules/coffea.nanoevents.methods.vector.html @@ -0,0 +1,234 @@ + + + + + + + coffea.nanoevents.methods.vector — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

coffea.nanoevents.methods.vector

+

2D, 3D, and Lorentz vector class mixins

+

These mixins will eventually be superseded by the vector library, +which will hopefully be feature-compatible. The 2D vector provides cartesian and polar coordinate attributes, +where r represents the polar distance from the origin.. The 3D vector provides cartesian and spherical coordinates, +where rho represents the 3D distance from the origin and r is the axial distance from the z axis, so that it can +subclass the 2D vector. The Lorentz vector also subclasses the 3D vector, adding t as the fourth +cartesian coordinate. Aliases typical of momentum vectors are also provided.

+

A small example:

+
import numpy as np
+import awkward as ak
+from coffea.nanoevents.methods import vector
+
+n = 1000
+
+vec = ak.zip(
+    {
+        "x": np.random.normal(size=n),
+        "y": np.random.normal(size=n),
+        "z": np.random.normal(size=n),
+    },
+    with_name="ThreeVector",
+    behavior=vector.behavior,
+)
+
+vec4 = ak.zip(
+    {
+        "pt": vec.r,
+        "eta": -np.log(np.tan(vec.theta/2)),
+        "phi": vec.phi,
+        "mass": np.full(n, 1.),
+    },
+    with_name="PtEtaPhiMLorentzVector",
+    behavior=vector.behavior,
+)
+
+assert np.allclose(np.array(vec4.x), np.array(vec.x))
+assert np.allclose(np.array(vec4.y), np.array(vec.y))
+assert np.allclose(np.array(vec4.z), np.array(vec.z))
+assert np.allclose(np.array(abs(2*vec + vec4) / abs(vec)), 3)
+
+
+
+

Classes

+ + + + + + + + + + + + + + + + + + + + + + + + +

TwoVector()

A cartesian 2-dimensional vector

PolarTwoVector()

A polar coordinate 2-dimensional vector

ThreeVector()

A cartesian 3-dimensional vector

SphericalThreeVector()

A spherical coordinate 3-dimensional vector

LorentzVector()

A cartesian Lorentz vector

PtEtaPhiMLorentzVector()

A Lorentz vector using pseudorapidity and mass

PtEtaPhiELorentzVector()

A Lorentz vector using pseudorapidity and energy

+
+
+

Class Inheritance Diagram

+
Inheritance diagram of coffea.nanoevents.methods.vector.TwoVector, coffea.nanoevents.methods.vector.PolarTwoVector, coffea.nanoevents.methods.vector.ThreeVector, coffea.nanoevents.methods.vector.SphericalThreeVector, coffea.nanoevents.methods.vector.LorentzVector, coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector, coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector
+ + + + + + + + +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/modules/coffea.processor.html b/modules/coffea.processor.html new file mode 100644 index 000000000..4fb729936 --- /dev/null +++ b/modules/coffea.processor.html @@ -0,0 +1,162 @@ + + + + + + + coffea.processor — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

coffea.processor

+

A framework for analysis scale-out

+
+

Classes

+ + + + + + +

ProcessorABC()

ABC for a generalized processor

+
+
+

Class Inheritance Diagram

+
Inheritance diagram of coffea.processor.processor.ProcessorABC
+ + +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/modules/coffea.util.html b/modules/coffea.util.html new file mode 100644 index 000000000..1a7cbdda4 --- /dev/null +++ b/modules/coffea.util.html @@ -0,0 +1,235 @@ + + + + + + + coffea.util — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

coffea.util

+

Utility functions

+
+

Functions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

awkward_rewrap(arr, like_what, gfunc)

compress_form(formjson)

decompress_form(form_compressedb64)

deprecate(message, version[, date, will_be, ...])

load(filename)

Load a coffea file from disk

rewrap_recordarray(layout, depth, data)

rich_bar()

save(output, filename)

Save a coffea object or collection thereof to disk

+
+
+

Classes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Any(*args, **kwargs)

Special type indicating an unconstrained type.

BarColumn([bar_width, style, ...])

Renders a visual progress bar.

Column(header, footer, header_style, ...)

Defines a column within a ~Table.

Progress(*columns[, console, auto_refresh, ...])

Renders an auto-updating progress bar(s).

ProgressColumn([table_column])

Base class for a widget to use in progress display.

SpeedColumn([fmt, table_column])

Renders human readable transfer speed.

Text([text, style, justify, overflow, ...])

Text with color / style.

TextColumn(text_format[, style, justify, ...])

A column containing text.

TimeElapsedColumn([table_column])

Renders time elapsed.

TimeRemainingColumn([compact, ...])

Renders estimated time remaining.

partial

partial(func, *args, **keywords) - new function with partial application of the given arguments and keywords.

+
+
+

Class Inheritance Diagram

+
Inheritance diagram of coffea.util.SpeedColumn
+ + + +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/notebooks/applying_corrections.html b/notebooks/applying_corrections.html new file mode 100644 index 000000000..d21970ed0 --- /dev/null +++ b/notebooks/applying_corrections.html @@ -0,0 +1,746 @@ + + + + + + + Applying corrections to columnar data — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Applying corrections to columnar data

+

Here we will show how to apply corrections to columnar data using:

+
    +
  • the coffea.lookup_tools package, which is designed to read in ROOT histograms and a variety of data file formats popular within CMS into a standardized lookup table format;

  • +
  • CMS-specific extensions to the above, for jet corrections (coffea.jetmet_tools) and b-tagging efficiencies/uncertainties (coffea.btag_tools);

  • +
  • the correctionlib package, which provides a experiment-agnostic serializable data format for common correction functions.

  • +
+

Test data: We’ll use NanoEvents to construct some test data.

+
+
[1]:
+
+
+
import awkward as ak
+from coffea.nanoevents import NanoEventsFactory, NanoAODSchema
+
+NanoAODSchema.warn_missing_crossrefs = False
+
+fname = "https://raw.githubusercontent.com/CoffeaTeam/coffea/master/tests/samples/nano_dy.root"
+events = NanoEventsFactory.from_root(
+    {fname: "Events"},
+    schemaclass=NanoAODSchema,
+    metadata={"dataset": "DYJets"},
+).events()
+
+
+
+
+
+
+
+
+/Users/saransh/Code/HEP/coffea/src/coffea/nanoevents/methods/candidate.py:11: FutureWarning: In version 2024.7.0 (target date: 2024-06-30 11:59:59-05:00), this will be an error.
+To raise these warnings as errors (and get stack traces to find out where they're called), run
+    import warnings
+    warnings.filterwarnings("error", module="coffea.*")
+after the first `import coffea` or use `@pytest.mark.filterwarnings("error:::coffea.*")` in pytest.
+Issue: coffea.nanoevents.methods.vector will be removed and replaced with scikit-hep vector. Nanoevents schemas internal to coffea will be migrated. Otherwise please consider using that package!.
+  from coffea.nanoevents.methods import vector
+
+
+
+

Coffea lookup_tools

+

The entrypoint for coffea.lookup_tools is the extractor class.

+
+
[2]:
+
+
+
from coffea.lookup_tools import extractor
+
+
+
+
+
[3]:
+
+
+
%%bash
+# download some sample correction sources
+mkdir -p data
+pushd data
+PREFIX=https://raw.githubusercontent.com/CoffeaTeam/coffea/master/tests/samples
+curl -Os $PREFIX/testSF2d.histo.root
+curl -Os $PREFIX/Fall17_17Nov2017_V32_MC_L2Relative_AK4PFPuppi.jec.txt
+curl -Os $PREFIX/Fall17_17Nov2017_V32_MC_Uncertainty_AK4PFPuppi.junc.txt
+curl -Os $PREFIX/DeepCSV_102XSF_V1.btag.csv.gz
+popd
+
+
+
+
+
+
+
+
+~/Code/HEP/coffea/binder/data ~/Code/HEP/coffea/binder
+~/Code/HEP/coffea/binder
+
+
+
+

Opening a root file and using it as a lookup table

+

In tests/samples, there is an example file with a TH2F histogram named scalefactors_Tight_Electron. The following code reads that histogram into an evaluator instance, under the key testSF2d and applies it to some electrons.

+
+
[4]:
+
+
+
ext = extractor()
+# several histograms can be imported at once using wildcards (*)
+ext.add_weight_sets(["testSF2d scalefactors_Tight_Electron data/testSF2d.histo.root"])
+ext.finalize()
+
+evaluator = ext.make_evaluator()
+
+print("available evaluator keys:")
+for key in evaluator.keys():
+    print("\t", key)
+print("testSF2d:", evaluator['testSF2d'])
+print("type of testSF2d:", type(evaluator['testSF2d']))
+
+
+
+
+
+
+
+
+available evaluator keys:
+         testSF2d
+testSF2d: <coffea.lookup_tools.dense_lookup.dense_lookup object at 0x313217210> 2 dimensional histogram with axes:
+        1: [-2.5   -2.    -1.566 -1.444 -0.8    0.     0.8    1.444  1.566  2.
+  2.5  ]
+        2: [ 10.  20.  35.  50.  90. 150. 500.]
+
+type of testSF2d: <class 'coffea.lookup_tools.dense_lookup.dense_lookup'>
+
+
+
+
[5]:
+
+
+
print("Electron eta:", events.Electron.eta.compute())
+print("Electron pt:", events.Electron.pt.compute())
+print("Scale factor:", evaluator["testSF2d"](events.Electron.eta, events.Electron.pt).compute())
+
+
+
+
+
+
+
+
+Electron eta: [[], [1.83], [-0.293, -0.904], [-2.19, 1.65], [], ..., [], [0.381], [], []]
+Electron pt: [[], [29.6], [60.1, 51.7], [10.7, 8.6], [], ..., [15.6], [], [7.68], [], []]
+Scale factor: [[], [0.909], [0.953, 0.972], [0.807, 0.827], [], ..., [], [0.946], [], []]
+
+
+
+
+

Building and using your own correction from a histogram

+

To use a histogram or ratio of histograms to build your own correction, you can use lookup_tools to simplify the implementation. Here we create some mock data for two slightly different pt and eta spectra (say, from two different generators) and derive a correction to reweight one sample to the other.

+
+
[6]:
+
+
+
import numpy as np
+import hist
+import matplotlib.pyplot as plt
+
+dists = (
+    hist.Hist.new
+    .StrCat(["gen1", "gen2", "gen2rwt"], name="dataset")
+    .Reg(20, 0, 100, name="pt")
+    .Reg(4, -3, 3, name="eta")
+    .Weight()
+    .fill(
+        dataset="gen1",
+        pt=np.random.exponential(scale=10.0, size=10000) + np.random.exponential(scale=10.0, size=10000),
+        eta=np.random.normal(scale=1, size=10000)
+    )
+    .fill(
+        dataset="gen2",
+        pt=np.random.exponential(scale=10.0, size=10000) + np.random.exponential(scale=15.0, size=10000),
+        eta=np.random.normal(scale=1.1, size=10000)
+    )
+)
+
+fig, ax = plt.subplots()
+dists[:, :, sum].plot1d(ax=ax)
+ax.legend(title="dataset")
+
+
+
+
+
+
+
+
+/opt/homebrew/lib/python3.11/site-packages/mplhep/utils.py:197: RuntimeWarning: All sumw are zero!  Cannot compute meaningful error bars
+  return np.abs(method_fcn(self.values, variances) - self.values)
+
+
+
+
[6]:
+
+
+
+
+<matplotlib.legend.Legend at 0x312239950>
+
+
+
+
+
+
+../_images/notebooks_applying_corrections_10_2.png +
+
+

Now we derive a correction as a function of \(p_T\) and \(\eta\) to gen2 such that it agrees with gen1. We’ll set it to 1 anywhere we run out of statistics for the correction, to avoid divide by zero issues

+
+
[7]:
+
+
+
from coffea.lookup_tools.dense_lookup import dense_lookup
+
+num = dists["gen1", :, :].values()
+den = dists["gen2", :, :].values()
+sf = np.where(
+    (num > 0) & (den > 0),
+    num / np.maximum(den, 1) * den.sum() / num.sum(),
+    1.0,
+)
+
+corr = dense_lookup(sf, [ax.edges for ax in dists.axes[1:]])
+print(corr)
+
+# a quick way to plot the scale factor is to steal the axis definitions from the input histograms:
+sfhist = hist.Hist(*dists.axes[1:], data=sf)
+sfhist.plot2d()
+
+
+
+
+
+
+
+
+<coffea.lookup_tools.dense_lookup.dense_lookup object at 0x319bfba50> 2 dimensional histogram with axes:
+        1: [  0.   5.  10.  15.  20.  25.  30.  35.  40.  45.  50.  55.  60.  65.
+  70.  75.  80.  85.  90.  95. 100.]
+        2: [-3.  -1.5  0.   1.5  3. ]
+
+
+
+
+
[7]:
+
+
+
+
+ColormeshArtists(pcolormesh=<matplotlib.collections.QuadMesh object at 0x319d24150>, cbar=<matplotlib.colorbar.Colorbar object at 0x319d18090>, text=[])
+
+
+
+
+
+
+../_images/notebooks_applying_corrections_12_2.png +
+
+

Now we generate some new mock data as if it was drawn from gen2 and reweight it with our corr to match gen1

+
+
[8]:
+
+
+
ptvals = np.random.exponential(scale=10.0, size=10000) + np.random.exponential(scale=15.0, size=10000)
+etavals = np.random.normal(scale=1.1, size=10000)
+
+dists.fill(
+    dataset="gen2rwt",
+    pt=ptvals,
+    eta=etavals,
+    weight=corr(ptvals, etavals)
+)
+
+fig, ax = plt.subplots()
+dists[:, :, sum].plot1d(ax=ax)
+ax.legend(title="dataset")
+
+
+
+
+
[8]:
+
+
+
+
+<matplotlib.legend.Legend at 0x319d25290>
+
+
+
+
+
+
+../_images/notebooks_applying_corrections_14_1.png +
+
+

Note that corr() can accept also jagged arrays if need be.

+
+
+
+

CMS high-level tools

+
+

Applying energy scale transformations with jetmet_tools

+

The coffea.jetmet_tools package provides a convenience class JetTransformer which applies specified corrections and computes uncertainties in one call. First we build the desired jet correction stack to apply. This will usually be some set of the various JEC and JER correction text files that depends on the jet cone size (AK4, AK8) and the pileup mitigation algorithm, as +well as the data-taking year they are associated with.

+
+
[9]:
+
+
+
from coffea.jetmet_tools import FactorizedJetCorrector, JetCorrectionUncertainty
+from coffea.jetmet_tools import JECStack, CorrectedJetsFactory
+import numpy as np
+
+ext = extractor()
+ext.add_weight_sets([
+    "* * data/Fall17_17Nov2017_V32_MC_L2Relative_AK4PFPuppi.jec.txt",
+    "* * data/Fall17_17Nov2017_V32_MC_Uncertainty_AK4PFPuppi.junc.txt",
+])
+ext.finalize()
+
+jec_stack_names = [
+    "Fall17_17Nov2017_V32_MC_L2Relative_AK4PFPuppi",
+    "Fall17_17Nov2017_V32_MC_Uncertainty_AK4PFPuppi"
+]
+
+evaluator = ext.make_evaluator()
+
+jec_inputs = {name: evaluator[name] for name in jec_stack_names}
+jec_stack = JECStack(jec_inputs)
+### more possibilities are available if you send in more pieces of the JEC stack
+# mc2016_ak8_jxform = JECStack(["more", "names", "of", "JEC parts"])
+
+print(dir(evaluator))
+
+
+
+
+
+
+
+
+['Fall17_17Nov2017_V32_MC_L2Relative_AK4PFPuppi', 'Fall17_17Nov2017_V32_MC_Uncertainty_AK4PFPuppi']
+
+
+

Now we prepare some auxilary variables that are used to parameterize the jet energy corrections, such as jet area, mass, and event \(\rho\) (mean pileup energy density), and pass all of these into the CorrectedJetsFactory:

+
+
[10]:
+
+
+
name_map = jec_stack.blank_name_map
+name_map['JetPt'] = 'pt'
+name_map['JetMass'] = 'mass'
+name_map['JetEta'] = 'eta'
+name_map['JetA'] = 'area'
+
+jets = events.Jet
+
+jets['pt_raw'] = (1 - jets['rawFactor']) * jets['pt']
+jets['mass_raw'] = (1 - jets['rawFactor']) * jets['mass']
+jets['pt_gen'] = ak.values_astype(ak.fill_none(jets.matched_gen.pt, 0), np.float32)
+jets['PU_rho'] = ak.broadcast_arrays(events.fixedGridRhoFastjetAll, jets.pt)[0]
+name_map['ptGenJet'] = 'pt_gen'
+name_map['ptRaw'] = 'pt_raw'
+name_map['massRaw'] = 'mass_raw'
+name_map['Rho'] = 'PU_rho'
+
+corrector = FactorizedJetCorrector(
+    Fall17_17Nov2017_V32_MC_L2Relative_AK4PFPuppi=evaluator['Fall17_17Nov2017_V32_MC_L2Relative_AK4PFPuppi'],
+)
+uncertainties = JetCorrectionUncertainty(
+    Fall17_17Nov2017_V32_MC_Uncertainty_AK4PFPuppi=evaluator['Fall17_17Nov2017_V32_MC_Uncertainty_AK4PFPuppi']
+)
+
+jet_factory = CorrectedJetsFactory(name_map, jec_stack)
+corrected_jets = jet_factory.build(jets)
+
+print('starting columns:', set(ak.fields(jets)))
+print('new columns:', set(ak.fields(corrected_jets)) - set(ak.fields(jets)))
+
+
+
+
+
+
+
+
+starting columns: {'chHEF', 'jetId', 'pt_gen', 'phi', 'bRegCorr', 'electronIdx2', 'bRegRes', 'mass', 'btagCMVA', 'electronIdx1', 'pt', 'partonFlavour', 'muEF', 'jercCHPUF', 'muonIdx1', 'genJetIdx', 'hadronFlavour', 'btagDeepB', 'btagDeepC', 'neEmEF', 'btagDeepFlavC', 'electronIdx2G', 'genJetIdxG', 'pt_raw', 'btagDeepFlavB', 'qgl', 'muonIdx1G', 'electronIdxG', 'muonSubtrFactor', 'electronIdx1G', 'rho', 'eta', 'nConstituents', 'neHEF', 'cleanmask', 'chEmEF', 'muonIdx2', 'jercCHF', 'btagCSVV2', 'puId', 'muonIdxG', 'rawFactor', 'nMuons', 'mass_raw', 'muonIdx2G', 'area', 'nElectrons'}
+new columns: {'mass_jec', 'jet_energy_uncertainty_jes', 'JES_jes', 'jet_energy_correction', 'pt_orig', 'pt_jec', 'mass_orig'}
+
+
+

Below we show that the corrected jets indeed have a different \(p_T\) and mass than we started with

+
+
[11]:
+
+
+
print('untransformed pt ratios', (jets.pt/jets.pt_raw).compute())
+print('untransformed mass ratios', (jets.mass/jets.mass_raw).compute())
+
+print('transformed pt ratios', (corrected_jets.pt/corrected_jets.pt_raw).compute())
+print('transformed mass ratios', (corrected_jets.mass/corrected_jets.mass_raw).compute())
+
+print('JES UP pt ratio', (corrected_jets.JES_jes.up.pt/corrected_jets.pt_raw).compute())
+print('JES DOWN pt ratio', (corrected_jets.JES_jes.down.pt/corrected_jets.pt_raw).compute())
+
+
+
+
+
+
+
+
+untransformed pt ratios [[1.12, 1.09, 1.2, 1.35, 1.27], [1.03, 1.08, ..., 1, 0.918], ..., [1.13, 0.978]]
+untransformed mass ratios [[1.12, 1.09, 1.2, 1.35, 1.27], [1.03, 1.08, ..., 1, 0.918], ..., [1.13, 0.978]]
+transformed pt ratios [[1.2, 1.3, 1.46, 2.09, 2.1], [1.09, 1.29, ..., 1.22, 1.83], ..., [1.37, 1.15]]
+transformed mass ratios [[1.2, 1.3, 1.46, 2.09, 2.1], [1.09, 1.29, ..., 1.22, 1.83], ..., [1.37, 1.15]]
+JES UP pt ratio [[1.22, 1.35, 1.56, 2.34, 2.37], [1.1, 1.32, ..., 1.94], ..., [1.41, 1.17]]
+JES DOWN pt ratio [[1.19, 1.25, 1.35, 1.83, 1.83], [1.08, 1.26, ..., 1.73], ..., [1.33, 1.12]]
+
+
+
+
+

Applying CMS b-tagging corrections with btag_tools

+

The coffea.btag_tools module provides the high-level utility BTagScaleFactor which calculates per-jet weights for b-tagging as well as light flavor mis-tagging efficiencies. Uncertainties can be calculated as well.

+
+
[12]:
+
+
+
from coffea.btag_tools import BTagScaleFactor
+
+btag_sf = BTagScaleFactor("data/DeepCSV_102XSF_V1.btag.csv.gz", "medium")
+
+print("SF:", btag_sf.eval("central", events.Jet.hadronFlavour, abs(events.Jet.eta), events.Jet.pt).compute())
+print("systematic +:", btag_sf.eval("up", events.Jet.hadronFlavour, abs(events.Jet.eta), events.Jet.pt).compute())
+print("systematic -:", btag_sf.eval("down", events.Jet.hadronFlavour, abs(events.Jet.eta), events.Jet.pt).compute())
+
+
+
+
+
+
+
+
+SF: [[1.52, 1.56, 1.59, 1.6, 1.6], [0.969, 1.57, ..., 1.6, 1.6], ..., [1.6, 1.6]]
+systematic +: [[1.72, 1.77, 1.79, 1.8, 1.8], [1.01, 1.78, ..., 1.8, 1.8], ..., [1.8, 1.8]]
+systematic -: [[1.31, 1.36, 1.38, 1.4, 1.4], [0.925, 1.37, ..., 1.4, 1.4], ..., [1.4, 1.4]]
+
+
+
+
+
+

Using correctionlib

+

For the most part, using correctionlib is straightforward. We’ll show here how to convert the custom correction we derived earlier (corr) into a correctionlib object, and save it in the json format:

+
+
[13]:
+
+
+
import correctionlib
+import rich
+import correctionlib.convert
+
+# without a name, the resulting object will fail validation
+sfhist.name = "gen2_to_gen1"
+sfhist.label = "out"
+clibcorr = correctionlib.convert.from_histogram(sfhist)
+clibcorr.description = "Reweights gen2 to agree with gen1"
+# set overflow bins behavior (default is to raise an error when out of bounds)
+clibcorr.data.flow = "clamp"
+
+cset = correctionlib.schemav2.CorrectionSet(
+    schema_version=2,
+    description="my custom corrections",
+    corrections=[clibcorr],
+)
+rich.print(cset)
+
+with open("data/mycorrections.json", "w") as fout:
+    fout.write(cset.json(exclude_unset=True))
+
+
+
+
+
+
+
+
CorrectionSet (schema v2)
+my custom corrections
+📂
+└── 📈 gen2_to_gen1 (v0)
+    Reweights gen2 to agree with gen1
+    Node counts: MultiBinning: 1
+    ╭──────────── ▶ input ─────────────╮ ╭──────────── ▶ input ────────────╮
+    │ pt (real)                        │ │ eta (real)                      │
+    │ pt                               │ │ eta                             │
+    │ Range: [0.0, 100.0), overflow ok │ │ Range: [-3.0, 3.0), overflow ok │
+    ╰──────────────────────────────────╯ ╰─────────────────────────────────╯
+    ╭─── ◀ output ───╮
+    │ out (real)     │
+    │ No description │
+    ╰────────────────╯
+
+
+

We can now use this new correction in a similar way to the original corr() object:

+
+
[14]:
+
+
+
ceval = cset.to_evaluator()
+
+ceval["gen2_to_gen1"].evaluate(ptvals, etavals)
+
+
+
+
+
[14]:
+
+
+
+
+array([1.01495674, 1.40799728, 1.31112463, ..., 0.37951701, 1.16222439,
+       0.73213844])
+
+
+

At the time of writing, correctionlib does not support jagged arrays. A correctionlib_wrapper provided in coffea.lookup_tools allows for the processing of jagged array inputs.

+
+
[15]:
+
+
+
from coffea.lookup_tools.correctionlib_wrapper import correctionlib_wrapper
+
+wrap_c = correctionlib_wrapper(ceval["gen2_to_gen1"])
+wrap_c(events.Jet.pt, events.Jet.eta).compute()
+
+
+
+
+
[15]:
+
+
+
+
[[1, 0.273, 0.722, 1.02, 1.02],
+ [0.496, 0.439, 0.912, 0.952, 1.02, 0.952, 1.16, 1.02],
+ [1, 0.393, 0.609, 0.516, 1],
+ [0.496, 0.69, 0.952],
+ [0.397, 0.347, 0.722, 0.952, 0.952],
+ [0.778, 0.439, 0.732, 0.935, 0.679, 0.952, 1.02, 1.09],
+ [0.331, 0.519, 0.69, 0.776],
+ [0.69, 0.776, 0.679, 0.952],
+ [0.679],
+ [0.993, 0.668, 0.439, 0.732, 0.776, 0.722, 1.02, 1.16, 1.02],
+ ...,
+ [0.888, 0.935],
+ [0.679, 1.02, 1.02, 1.02],
+ [0.273, 0.443, 0.776, 1.13, 1.09, 0.952, 1.16, 1.16, 1.02],
+ [0.749, 0.722, 0.935],
+ [1.13, 1.09],
+ [0.912, 1, 1.09],
+ [1.01],
+ [0.607, 0.551, 1, 0.679, 1, 1.09],
+ [0.952, 1.16]]
+--------------------------------------------------------------
+type: 40 * var * float64
+
+

Alternatively, we can use the awkward utilities flatten and unflatten to convert awkward arrays into numpy arrays for evaluation.

+
+
[16]:
+
+
+
def myJetSF(jets):
+    j, nj = ak.flatten(jets), ak.num(jets)
+    sf = ceval["gen2_to_gen1"].evaluate(np.array(j.pt), np.array(j.eta))
+    return ak.unflatten(sf, nj)
+
+myJetSF(events.Jet.compute())
+
+
+
+
+
[16]:
+
+
+
+
[[1, 0.273, 0.722, 1.02, 1.02],
+ [0.496, 0.439, 0.912, 0.952, 1.02, 0.952, 1.16, 1.02],
+ [1, 0.393, 0.609, 0.516, 1],
+ [0.496, 0.69, 0.952],
+ [0.397, 0.347, 0.722, 0.952, 0.952],
+ [0.778, 0.439, 0.732, 0.935, 0.679, 0.952, 1.02, 1.09],
+ [0.331, 0.519, 0.69, 0.776],
+ [0.69, 0.776, 0.679, 0.952],
+ [0.679],
+ [0.993, 0.668, 0.439, 0.732, 0.776, 0.722, 1.02, 1.16, 1.02],
+ ...,
+ [0.888, 0.935],
+ [0.679, 1.02, 1.02, 1.02],
+ [0.273, 0.443, 0.776, 1.13, 1.09, 0.952, 1.16, 1.16, 1.02],
+ [0.749, 0.722, 0.935],
+ [1.13, 1.09],
+ [0.912, 1, 1.09],
+ [1.01],
+ [0.607, 0.551, 1, 0.679, 1, 1.09],
+ [0.952, 1.16]]
+--------------------------------------------------------------
+type: 40 * var * float64
+
+
+
[ ]:
+
+
+

+
+
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/notebooks/applying_corrections.ipynb b/notebooks/applying_corrections.ipynb new file mode 100644 index 000000000..01cfa7a93 --- /dev/null +++ b/notebooks/applying_corrections.ipynb @@ -0,0 +1,781 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Applying corrections to columnar data\n", + "\n", + "Here we will show how to apply corrections to columnar data using:\n", + "\n", + "- the `coffea.lookup_tools` package, which is designed to read in ROOT histograms and a variety of data file formats popular within CMS into a standardized lookup table format;\n", + "- CMS-specific extensions to the above, for jet corrections (`coffea.jetmet_tools`) and b-tagging efficiencies/uncertainties (`coffea.btag_tools`);\n", + "- the [correctionlib](https://cms-nanoaod.github.io/correctionlib/) package, which provides a experiment-agnostic serializable data format for common correction functions." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Test data**:\n", + "We'll use NanoEvents to construct some test data." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/saransh/Code/HEP/coffea/src/coffea/nanoevents/methods/candidate.py:11: FutureWarning: In version 2024.7.0 (target date: 2024-06-30 11:59:59-05:00), this will be an error.\n", + "To raise these warnings as errors (and get stack traces to find out where they're called), run\n", + " import warnings\n", + " warnings.filterwarnings(\"error\", module=\"coffea.*\")\n", + "after the first `import coffea` or use `@pytest.mark.filterwarnings(\"error:::coffea.*\")` in pytest.\n", + "Issue: coffea.nanoevents.methods.vector will be removed and replaced with scikit-hep vector. Nanoevents schemas internal to coffea will be migrated. Otherwise please consider using that package!.\n", + " from coffea.nanoevents.methods import vector\n" + ] + } + ], + "source": [ + "import awkward as ak\n", + "from coffea.nanoevents import NanoEventsFactory, NanoAODSchema\n", + "\n", + "NanoAODSchema.warn_missing_crossrefs = False\n", + "\n", + "fname = \"https://raw.githubusercontent.com/CoffeaTeam/coffea/master/tests/samples/nano_dy.root\"\n", + "events = NanoEventsFactory.from_root(\n", + " {fname: \"Events\"},\n", + " schemaclass=NanoAODSchema,\n", + " metadata={\"dataset\": \"DYJets\"},\n", + ").events()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Coffea lookup_tools\n", + "\n", + "The entrypoint for `coffea.lookup_tools` is the [extractor class](https://coffeateam.github.io/coffea/api/coffea.lookup_tools.extractor.html#coffea.lookup_tools.extractor)." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from coffea.lookup_tools import extractor" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "~/Code/HEP/coffea/binder/data ~/Code/HEP/coffea/binder\n", + "~/Code/HEP/coffea/binder\n" + ] + } + ], + "source": [ + "%%bash\n", + "# download some sample correction sources\n", + "mkdir -p data\n", + "pushd data\n", + "PREFIX=https://raw.githubusercontent.com/CoffeaTeam/coffea/master/tests/samples\n", + "curl -Os $PREFIX/testSF2d.histo.root\n", + "curl -Os $PREFIX/Fall17_17Nov2017_V32_MC_L2Relative_AK4PFPuppi.jec.txt\n", + "curl -Os $PREFIX/Fall17_17Nov2017_V32_MC_Uncertainty_AK4PFPuppi.junc.txt\n", + "curl -Os $PREFIX/DeepCSV_102XSF_V1.btag.csv.gz\n", + "popd" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Opening a root file and using it as a lookup table\n", + "\n", + "In [tests/samples](https://github.com/CoffeaTeam/coffea/tree/master/tests/samples), there is an example file with a `TH2F` histogram named `scalefactors_Tight_Electron`. The following code reads that histogram into an [evaluator](https://coffeateam.github.io/coffea/api/coffea.lookup_tools.evaluator.html#coffea.lookup_tools.evaluator) instance, under the key `testSF2d` and applies it to some electrons." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "available evaluator keys:\n", + "\t testSF2d\n", + "testSF2d: 2 dimensional histogram with axes:\n", + "\t1: [-2.5 -2. -1.566 -1.444 -0.8 0. 0.8 1.444 1.566 2.\n", + " 2.5 ]\n", + "\t2: [ 10. 20. 35. 50. 90. 150. 500.]\n", + "\n", + "type of testSF2d: \n" + ] + } + ], + "source": [ + "ext = extractor()\n", + "# several histograms can be imported at once using wildcards (*)\n", + "ext.add_weight_sets([\"testSF2d scalefactors_Tight_Electron data/testSF2d.histo.root\"])\n", + "ext.finalize()\n", + "\n", + "evaluator = ext.make_evaluator()\n", + "\n", + "print(\"available evaluator keys:\")\n", + "for key in evaluator.keys():\n", + " print(\"\\t\", key)\n", + "print(\"testSF2d:\", evaluator['testSF2d'])\n", + "print(\"type of testSF2d:\", type(evaluator['testSF2d']))" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Electron eta: [[], [1.83], [-0.293, -0.904], [-2.19, 1.65], [], ..., [], [0.381], [], []]\n", + "Electron pt: [[], [29.6], [60.1, 51.7], [10.7, 8.6], [], ..., [15.6], [], [7.68], [], []]\n", + "Scale factor: [[], [0.909], [0.953, 0.972], [0.807, 0.827], [], ..., [], [0.946], [], []]\n" + ] + } + ], + "source": [ + "print(\"Electron eta:\", events.Electron.eta.compute())\n", + "print(\"Electron pt:\", events.Electron.pt.compute())\n", + "print(\"Scale factor:\", evaluator[\"testSF2d\"](events.Electron.eta, events.Electron.pt).compute())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Building and using your own correction from a histogram\n", + "\n", + "To use a histogram or ratio of histograms to build your own correction, you can use `lookup_tools` to simplify the implementation. Here we create some mock data for two slightly different pt and eta spectra (say, from two different generators) and derive a correction to reweight one sample to the other." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/homebrew/lib/python3.11/site-packages/mplhep/utils.py:197: RuntimeWarning: All sumw are zero! Cannot compute meaningful error bars\n", + " return np.abs(method_fcn(self.values, variances) - self.values)\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGwCAYAAAC3qV8qAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABIFElEQVR4nO3de1xVVf7/8ffhcpAjN0G5TShqeUtN8hZTGiVf0axvTs5MmaVOTlZfrdQ0tRxTKzVlLGv66q9mxKbRbPp+y/pqeU20GjTFyFuSmoaTIk0mCEc5XPbvD8aTJxEOyOGw4fV8PPajvfdaa+91tsT5sNbaa1kMwzAEAABgIj7ergAAAEBNEcAAAADTIYABAACmQwADAABMhwAGAACYDgEMAAAwHQIYAABgOn7eroCnlJeX68SJEwoODpbFYvF2dQAAgBsMw9DZs2cVGxsrH5/Lt7M02gDmxIkTiouL83Y1AABALRw/flxXXXXVZdMbbQATHBwsqeIBhISEeLk2AADAHQUFBYqLi3N+j19Oow1gLnQbhYSEEMAAAGAy1Q3/YBAvAAAwHQIYAABgOgQwAADAdBrtGBgAQNNUVlamkpISb1cDl+Hv7y9fX98rvg4BDACgUTAMQ7m5uTpz5oy3q4JqhIWFKTo6+ormaSOAAQA0CheCl8jISNlsNiYxbYAMw5DdbldeXp4kKSYmptbXIoABAJheWVmZM3iJiIjwdnVQhcDAQElSXl6eIiMja92dxCBeAIDpXRjzYrPZvFwTuOPCv9OVjFUigAEANBp0G5lDXfw7EcAAAADTIYABAACmQwADAEAdS0pK0oQJE7xdjUaNAAYAAC9KT0+XxWKp9/lrZs2apR49etTrPesSAQwAADAdAhgAAK5AUVGRRo4cqaCgIMXExOiPf/yjS/qbb76pXr16KTg4WNHR0br33nudE7kdO3ZMt9xyiySpRYsWslgsGj16tCRp3bp1uummmxQWFqaIiAjdfvvtOnLkiPO6DodD48ePV0xMjJo1a6Y2bdpo3rx5zvQzZ87o97//vVq1aqWQkBDdeuut+vLLLyVJy5cv1+zZs/Xll1/KYrHIYrFo+fLlHnxKdY8AxmTsjlLFT1ur+GlrZXeUers6ANDkTZkyRVu3btX777+vDRs2KD09Xbt373aml5SU6Nlnn9WXX36p1atX69ixY84gJS4uTv/7v/8rScrOztbJkye1ePFiSRWB0aRJk7Rr1y5t3rxZPj4++tWvfqXy8nJJ0ssvv6wPPvhAf//735Wdna0VK1YoPj7eed/f/OY3ysvL00cffaTMzExdf/31GjBggE6fPq27775bTzzxhK699lqdPHlSJ0+e1N13310/D6yOMBMvJFUERl1mrpckHZiTIpuVHw0AqE5hYaH+8pe/6G9/+5sGDBggSXrjjTd01VVXOfM88MADzv127drp5ZdfVu/evVVYWKigoCCFh4dLkiIjIxUWFubMO2zYMJd7LVu2TK1atdKBAwfUtWtX5eTk6JprrtFNN90ki8WiNm3aOPN++umn+vzzz5WXl6eAgABJUmpqqlavXq3/+Z//0dixYxUUFCQ/Pz9FR0fX+XOpD7TAAABQS0eOHJHD4VDfvn2d58LDw9WxY0fncWZmpu644w61bt1awcHBuvnmmyVJOTk5VV770KFDGj58uNq1a6eQkBBn68qFcqNHj1ZWVpY6duyoxx57TBs2bHCW/fLLL1VYWKiIiAgFBQU5t6NHj7p0Q5kZf2YDAOAhRUVFSklJUUpKilasWKFWrVopJydHKSkpcjgcVZa944471KZNG73++uuKjY1VeXm5unbt6ix3/fXX6+jRo/roo4+0adMm/fa3v1VycrL+53/+R4WFhYqJiVF6evol1724lcfMCGAAAKil9u3by9/fXzt27FDr1q0lST/++KO+/vpr3XzzzTp48KB++OEHzZ8/X3FxcZKkXbt2uVzDarVKqliQ8oIffvhB2dnZev3119WvXz9JFd1CPxcSEqK7775bd999t379619r0KBBOn36tK6//nrl5ubKz8/PZVzMz+978T3NhgAGAIBaCgoK0pgxYzRlyhRFREQoMjJSTz/9tHx8KkZotG7dWlarVa+88ooefvhh7du3T88++6zLNdq0aSOLxaI1a9botttuU2BgoFq0aKGIiAi99tpriomJUU5OjqZNm+ZSbtGiRYqJiVFCQoJ8fHz0zjvvKDo6WmFhYUpOTlZiYqKGDh2qBQsWqEOHDjpx4oTWrl2rX/3qV+rVq5fi4+N19OhRZWVl6aqrrlJwcLBzvIwZMAamATAMQ3ZHqdvbBTUpYxiGFz8hADReCxcuVL9+/XTHHXcoOTlZN910k3r27ClJatWqlZYvX6533nlHXbp00fz585WamupS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P19ff/21+vfvr4SEBJWVlSkvL0/9+vW7onstWLBAzz//vNavX69evXrVRfW9hgAGAAAvCg4O1qhRozRlyhSFh4crMjJSzzzzjHx8fGSxWNShQweNGDFCI0eO1B//+EclJCTo+++/1+bNm9W9e3cNGTLErfu88MILmjlzplauXKn4+Hjl5uZKqmjFubglxyx4jRoAAC9btGiREhMTdfvttys5OVk33nijOnfu7ByfkpaWppEjR+qJJ55Qx44dNXToUJcWG3csWbJEDodDv/71rxUTE+PcUlNTPfWxPIoWGAAAvCw4ONjldeeioiLNnj1bY8eOlVQxvmX27NmaPXt2peVHjx6t0aNHu5wbOnSoyxiYY8eO1Xm9vYkABgAAL/viiy908OBB9enTR/n5+c7Xn++8804v16zhIoABAOBi1ubSrPx6v21qaqqys7NltVrVs2dPffLJJ2rZsmW918MsCGAAAPCyhIQEZWZmersapsIgXgAAYDoEMAAAwHQIYOBRdkep4qetVfy0tbI7Sr1dHQBAI0EAgwqOImlWaMV28SyUAAA0QAQwAADAdGocwGzbtk133HGHYmNjZbFYtHr1apf00aNHy2KxuGyDBg1yyXP69GmNGDFCISEhCgsL05gxY1RYWOiSZ8+ePerXr5+aNWumuLg4LViwoOafDgCAGrKX2NXtjW7q9kY32UsqWewRDUKNA5iioiJdd911evXVVy+bZ9CgQTp58qRze+utt1zSR4wYof3792vjxo1as2aNtm3b5pxtUJIKCgo0cOBAtWnTRpmZmVq4cKFmzZql1157rabVBQAAjVCN54EZPHiwBg8eXGWegIAARUdHV5r21Vdfad26ddq5c6dzJcxXXnlFt912m1JTUxUbG6sVK1bI4XBo2bJlslqtuvbaa5WVlaVFixa5BDoAAMA9r7/+uv76179q3759kqSePXtq7ty56tOnT53eJykpST169NBLL71Up9f9OY+MgUlPT1dkZKQ6duyoRx55RD/88IMzLSMjQ2FhYS7LeCcnJ8vHx0c7duxw5unfv7+sVqszT0pKirKzs/Xjjz9Wes/i4mIVFBS4bPA8u6NMdkdpldtPeavOd/F28fodAIArl56eruHDh2vLli3KyMhQXFycBg4cqO++++6yZRwORz3WsGbqfCbeQYMG6a677lLbtm115MgRPfXUUxo8eLAyMjLk6+ur3NxcRUZGulbCz0/h4eHOpb1zc3PVtm1blzxRUVHOtBYtWlxy33nz5l12kasmyzAkd/tvHfbK9yvNW6pAnZck9XpuoySLW7fo9dxm9+oi6cCcFNmsTBQNoGk4e/asHn74Ya1evVohISF68skn9f777ztbMoqLi/X000/rrbfe0pkzZ9S1a1e98MILSkpKkiQtX75cEyZM0Ntvv60JEybo+PHjuummm5SWlqaYmBhJclksUpL+/Oc/63//93+1efNmjRw5UpIUHx+vMWPG6NChQ1q9erXuuusuFRYWKjo6Wn/6058kSRMmTNDixYv11VdfqVOnTnI4HGrRooXef/99/e1vf9PWrVu1detWLV68WJJ09OhRxcfH1/kzq/NviHvuuce5361bN3Xv3l3t27dXenq6BgwYUNe3c5o+fbomTZrkPC4oKFBcXJzH7mcKJXZpbmzNy6VeXWWyTdJXFSu8q/P5ZTqnZjW/BwB4mGEYOld6rso8laVffO70+dOV5gn0C6zyuoF+gbJY3PvjTpImTZqkzz77TB988IGioqI0c+ZM7d69Wz169JAkjR8/XgcOHNCqVasUGxur9957T4MGDdLevXt1zTXXSJLsdrtSU1P15ptvysfHR/fdd58mT558SeBygd1uV0lJicLDw13Op6amaubMmXrmmWckSR9++KH+3//7f870rVu3qmXLlkpPT1enTp20c+dOlZSU6Je//KV69+6tr7/+Wl27dnUuSNmqVSu3n0NNePxP3Hbt2qlly5Y6fPiwBgwYoOjoaOXl5bnkKS0t1enTp53jZqKjo3Xq1CmXPBeOLze2JiAgQAEBAR74BKhK5ozkioXPLsPuKHW2vOyaMaDKVhW7o0y9nttU53UE0DSdKz2nviv7XtE1Br9b9ZjPy9lx7w7Z/G1u5T179qzeeOMNrVy50vmHflpammJjK/4AzcnJUVpamnJycpznJk+erHXr1iktLU1z586VJJWUlGjp0qVq3769pIqg50IQUZmpU6cqNjZWycnJLudvvfVWPfHEE87jpKQkPf744/r+++/l5+enAwcO6A9/+IPS09P18MMPKz09Xb1795bNVvF5rVarbDbbZb+v64rHA5h//vOf+uGHH5xNWImJiTpz5owyMzPVs2dPSdLHH3+s8vJy9e3b15nn6aefVklJifz9/SVJGzdu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8II6duzozJOUlKStW7e6lHvooYe0dOlS53FOTo4eeeQRbdmyRUFBQRo1apTmzZsnPz9iLqBJSb3aM3mfOiFZm9e8PgAahDqPBrZu3apx48apd+/eKi0t1VNPPaWBAwfqwIEDat78p18WDz74oObMmeM8ttlszv2ysjINGTJE0dHR+sc//qGTJ09q5MiR8vf319y5c+u6ygAAwGTqPIBZt26dy/Hy5csVGRmpzMxM9e/f33neZrMpOjq60mts2LBBBw4c0KZNmxQVFaUePXro2Wef1dSpUzVr1ixZrdZLyhQXF6u4uNh5XFBQUEefCEC987dVtJC4w2H/qeVl8mHJanMvLwBT8/gg3vz8fElSeHi4y/kVK1aoZcuW6tq1q6ZPny67/ae+64yMDHXr1k1RUVHOcykpKSooKND+/fsrvc+8efMUGhrq3OLi4jzwaQDUC4ulonvHre2igMVqcz8vAFPz6ICS8vJyTZgwQTfeeKO6du3qPH/vvfeqTZs2io2N1Z49ezR16lRlZ2fr3XfflSTl5ua6BC+SnMe5ubmV3mv69OmaNGmS87igoIAgBmgKrM2lWfnergWAeubRAGbcuHHat2+fPv30U5fzY8eOde5369ZNMTExGjBggI4cOaL27dvX6l4BAQEKCAi4ovoCAABz8FgX0vjx47VmzRpt2bJFV111VZV5+/btK0k6fPiwJCk6OlqnTp1yyXPh+HLjZgAAQNNR5wGMYRgaP3683nvvPX388cdq27ZttWWysrIkSTExMZKkxMRE7d27V3l5ec48GzduVEhIiLp06VLXVQYAACZT511I48aN08qVK/X+++8rODjYOWYlNDRUgYGBOnLkiFauXKnbbrtNERER2rNnjyZOnKj+/fure/fukqSBAweqS5cuuv/++7VgwQLl5uZqxowZGjduHN1EAACg7ltglixZovz8fCUlJSkmJsa5vf3225Ikq9WqTZs2aeDAgerUqZOeeOIJDRs2TP/3f//nvIavr6/WrFkjX19fJSYm6r777tPIkSNd5o0BAABNV523wBiGUWV6XFzcJbPwVqZNmzb68MMP66paALzM7ihVl5nrJUkH5qTIZmVWbQC1x28QAHXC7iirJr200v3qBPr7ysKaRQB+hgAGQJ3o9dymGuTd7HZeWmsAVMbjM/ECgCk5iqRZoRWbo8jbtQHwM/xZA6DW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5597u0qmM2/ePPXu3VvBwcGKjIzU0KFDlZ2d7ZLn/PnzGjdunCIiIhQUFKRhw4ZdMrEhqjd//nxZLBZNmDDBeY5ne2W+++473XfffYqIiFBgYKC6deumXbt2OdMNw9DMmTMVExOjwMBAJScn69ChQ16ssXmUlZXpD3/4g9q2bavAwEC1b99ezz77rMuaODxf923btk133HGHYmNjZbFY9Oijjyo7O1upqamyWCxuPcvFixfr4MGD2r59u1q0aKExY8aosLDQS5/oZwy4bdWqVYbVajWWLVtm7N+/33jwwQeNsLAw49SpU96umqmkpKQYaWlpxr59+4ysrCzjtttuM1q3bm0UFhY68zz88MNGXFycsXnzZmPXrl3GDTfcYPzyl7/0Yq3N5/PPPzfi4+ON7t27G48//rjzPM+29k6fPm20adPGGD16tLFjxw7jm2++MdavX28cPnzYmWf+/PlGaGiosXr1auPLL780/vM//9No27atce7cOS/W3Byef/55IyIiwlizZo1x9OhR45133jGCgoKMxYsXO/PwfN334YcfGk8//bTx7rvvGpKMkJAQY9SoUc706p5lfn6+YbVajRYtWhjbt283PvnkE+Pqq682hg8f7qVP5IoApgb69OljjBs3znlcVlZmxMbGGvPmzfNircwvLy/PkGRs3brVMAzDOHPmjOHv72+88847zjxfffWVIcnIyMjwVjVN5ezZs8Y111xjbNy40bj55pudAQzP9spMnTrVuOmmmy6bXl5ebkRHRxsLFy50njtz5owREBBgvPXWW/VRRVMbMmSI8cADD7icu+uuu4wRI0YYhsHzvRKSjIceesg4fvy4YRjuPcs9e/YYkow1a9Y483z00UeGxWIxvvvuu/r9AJWgC8lNDodDmZmZSk5Odp7z8fFRcnKyMjIyvFgz88vPz5ckhYeHS5IyMzNVUlLi8qw7deqk1q1b86zdNG7cOA0ZMsTlGUo82yv1wQcfqFevXvrNb36jyMhIJSQk6PXXX3emHz16VLm5uS7PNzQ0VH379uX5uuGXv/ylNm/erK+//lqS9OWXX+rTTz/V4MGDJfF8r9SgQYOcE9C58yx37typsLAwDRkyxJknOTlZPj4+2rFjR/1WvhINZzhxA/evf/1LZWVll8wEHBUVpYMHD3qpVuZXXl6uCRMm6MYbb1TXrl0lSbm5ubJa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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import hist\n", + "import matplotlib.pyplot as plt\n", + "\n", + "dists = (\n", + " hist.Hist.new\n", + " .StrCat([\"gen1\", \"gen2\", \"gen2rwt\"], name=\"dataset\")\n", + " .Reg(20, 0, 100, name=\"pt\")\n", + " .Reg(4, -3, 3, name=\"eta\")\n", + " .Weight()\n", + " .fill(\n", + " dataset=\"gen1\",\n", + " pt=np.random.exponential(scale=10.0, size=10000) + np.random.exponential(scale=10.0, size=10000),\n", + " eta=np.random.normal(scale=1, size=10000)\n", + " )\n", + " .fill(\n", + " dataset=\"gen2\",\n", + " pt=np.random.exponential(scale=10.0, size=10000) + np.random.exponential(scale=15.0, size=10000),\n", + " eta=np.random.normal(scale=1.1, size=10000)\n", + " )\n", + ")\n", + "\n", + "fig, ax = plt.subplots()\n", + "dists[:, :, sum].plot1d(ax=ax)\n", + "ax.legend(title=\"dataset\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we derive a correction as a function of $p_T$ and $\\eta$ to `gen2` such that it agrees with `gen1`. We'll set it to 1 anywhere we run out of statistics for the correction, to avoid divide by zero issues" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 2 dimensional histogram with axes:\n", + "\t1: [ 0. 5. 10. 15. 20. 25. 30. 35. 40. 45. 50. 55. 60. 65.\n", + " 70. 75. 80. 85. 90. 95. 100.]\n", + "\t2: [-3. -1.5 0. 1.5 3. ]\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "ColormeshArtists(pcolormesh=, cbar=, text=[])" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from coffea.lookup_tools.dense_lookup import dense_lookup\n", + "\n", + "num = dists[\"gen1\", :, :].values()\n", + "den = dists[\"gen2\", :, :].values()\n", + "sf = np.where(\n", + " (num > 0) & (den > 0),\n", + " num / np.maximum(den, 1) * den.sum() / num.sum(),\n", + " 1.0,\n", + ")\n", + "\n", + "corr = dense_lookup(sf, [ax.edges for ax in dists.axes[1:]])\n", + "print(corr)\n", + "\n", + "# a quick way to plot the scale factor is to steal the axis definitions from the input histograms:\n", + "sfhist = hist.Hist(*dists.axes[1:], data=sf)\n", + "sfhist.plot2d()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we generate some new mock data as if it was drawn from `gen2` and reweight it with our `corr` to match `gen1`" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ptvals = np.random.exponential(scale=10.0, size=10000) + np.random.exponential(scale=15.0, size=10000)\n", + "etavals = np.random.normal(scale=1.1, size=10000)\n", + "\n", + "dists.fill(\n", + " dataset=\"gen2rwt\",\n", + " pt=ptvals,\n", + " eta=etavals,\n", + " weight=corr(ptvals, etavals)\n", + ")\n", + "\n", + "fig, ax = plt.subplots()\n", + "dists[:, :, sum].plot1d(ax=ax)\n", + "ax.legend(title=\"dataset\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that `corr()` can accept also jagged arrays if need be." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## CMS high-level tools\n", + "\n", + "### Applying energy scale transformations with jetmet_tools\n", + "\n", + "The `coffea.jetmet_tools` package provides a convenience class [JetTransformer](https://coffeateam.github.io/coffea/api/coffea.jetmet_tools.JetTransformer.html#coffea.jetmet_tools.JetTransformer) which applies specified corrections and computes uncertainties in one call. First we build the desired jet correction stack to apply. This will usually be some set of the various JEC and JER correction text files that depends on the jet cone size (AK4, AK8) and the pileup mitigation algorithm, as well as the data-taking year they are associated with." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['Fall17_17Nov2017_V32_MC_L2Relative_AK4PFPuppi', 'Fall17_17Nov2017_V32_MC_Uncertainty_AK4PFPuppi']\n" + ] + } + ], + "source": [ + "from coffea.jetmet_tools import FactorizedJetCorrector, JetCorrectionUncertainty\n", + "from coffea.jetmet_tools import JECStack, CorrectedJetsFactory\n", + "import numpy as np\n", + "\n", + "ext = extractor()\n", + "ext.add_weight_sets([\n", + " \"* * data/Fall17_17Nov2017_V32_MC_L2Relative_AK4PFPuppi.jec.txt\",\n", + " \"* * data/Fall17_17Nov2017_V32_MC_Uncertainty_AK4PFPuppi.junc.txt\",\n", + "])\n", + "ext.finalize()\n", + "\n", + "jec_stack_names = [\n", + " \"Fall17_17Nov2017_V32_MC_L2Relative_AK4PFPuppi\",\n", + " \"Fall17_17Nov2017_V32_MC_Uncertainty_AK4PFPuppi\"\n", + "]\n", + "\n", + "evaluator = ext.make_evaluator()\n", + "\n", + "jec_inputs = {name: evaluator[name] for name in jec_stack_names}\n", + "jec_stack = JECStack(jec_inputs)\n", + "### more possibilities are available if you send in more pieces of the JEC stack\n", + "# mc2016_ak8_jxform = JECStack([\"more\", \"names\", \"of\", \"JEC parts\"])\n", + "\n", + "print(dir(evaluator))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we prepare some auxilary variables that are used to parameterize the jet energy corrections, such as jet area, mass, and event $\\rho$ (mean pileup energy density), and pass all of these into the `CorrectedJetsFactory`:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "starting columns: {'chHEF', 'jetId', 'pt_gen', 'phi', 'bRegCorr', 'electronIdx2', 'bRegRes', 'mass', 'btagCMVA', 'electronIdx1', 'pt', 'partonFlavour', 'muEF', 'jercCHPUF', 'muonIdx1', 'genJetIdx', 'hadronFlavour', 'btagDeepB', 'btagDeepC', 'neEmEF', 'btagDeepFlavC', 'electronIdx2G', 'genJetIdxG', 'pt_raw', 'btagDeepFlavB', 'qgl', 'muonIdx1G', 'electronIdxG', 'muonSubtrFactor', 'electronIdx1G', 'rho', 'eta', 'nConstituents', 'neHEF', 'cleanmask', 'chEmEF', 'muonIdx2', 'jercCHF', 'btagCSVV2', 'puId', 'muonIdxG', 'rawFactor', 'nMuons', 'mass_raw', 'muonIdx2G', 'area', 'nElectrons'}\n", + "new columns: {'mass_jec', 'jet_energy_uncertainty_jes', 'JES_jes', 'jet_energy_correction', 'pt_orig', 'pt_jec', 'mass_orig'}\n" + ] + } + ], + "source": [ + "name_map = jec_stack.blank_name_map\n", + "name_map['JetPt'] = 'pt'\n", + "name_map['JetMass'] = 'mass'\n", + "name_map['JetEta'] = 'eta'\n", + "name_map['JetA'] = 'area'\n", + "\n", + "jets = events.Jet\n", + " \n", + "jets['pt_raw'] = (1 - jets['rawFactor']) * jets['pt']\n", + "jets['mass_raw'] = (1 - jets['rawFactor']) * jets['mass']\n", + "jets['pt_gen'] = ak.values_astype(ak.fill_none(jets.matched_gen.pt, 0), np.float32)\n", + "jets['PU_rho'] = ak.broadcast_arrays(events.fixedGridRhoFastjetAll, jets.pt)[0]\n", + "name_map['ptGenJet'] = 'pt_gen'\n", + "name_map['ptRaw'] = 'pt_raw'\n", + "name_map['massRaw'] = 'mass_raw'\n", + "name_map['Rho'] = 'PU_rho'\n", + " \n", + "corrector = FactorizedJetCorrector(\n", + " Fall17_17Nov2017_V32_MC_L2Relative_AK4PFPuppi=evaluator['Fall17_17Nov2017_V32_MC_L2Relative_AK4PFPuppi'],\n", + ")\n", + "uncertainties = JetCorrectionUncertainty(\n", + " Fall17_17Nov2017_V32_MC_Uncertainty_AK4PFPuppi=evaluator['Fall17_17Nov2017_V32_MC_Uncertainty_AK4PFPuppi']\n", + ")\n", + "\n", + "jet_factory = CorrectedJetsFactory(name_map, jec_stack)\n", + "corrected_jets = jet_factory.build(jets)\n", + "\n", + "print('starting columns:', set(ak.fields(jets)))\n", + "print('new columns:', set(ak.fields(corrected_jets)) - set(ak.fields(jets)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Below we show that the corrected jets indeed have a different $p_T$ and mass than we started with" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "untransformed pt ratios [[1.12, 1.09, 1.2, 1.35, 1.27], [1.03, 1.08, ..., 1, 0.918], ..., [1.13, 0.978]]\n", + "untransformed mass ratios [[1.12, 1.09, 1.2, 1.35, 1.27], [1.03, 1.08, ..., 1, 0.918], ..., [1.13, 0.978]]\n", + "transformed pt ratios [[1.2, 1.3, 1.46, 2.09, 2.1], [1.09, 1.29, ..., 1.22, 1.83], ..., [1.37, 1.15]]\n", + "transformed mass ratios [[1.2, 1.3, 1.46, 2.09, 2.1], [1.09, 1.29, ..., 1.22, 1.83], ..., [1.37, 1.15]]\n", + "JES UP pt ratio [[1.22, 1.35, 1.56, 2.34, 2.37], [1.1, 1.32, ..., 1.94], ..., [1.41, 1.17]]\n", + "JES DOWN pt ratio [[1.19, 1.25, 1.35, 1.83, 1.83], [1.08, 1.26, ..., 1.73], ..., [1.33, 1.12]]\n" + ] + } + ], + "source": [ + "print('untransformed pt ratios', (jets.pt/jets.pt_raw).compute())\n", + "print('untransformed mass ratios', (jets.mass/jets.mass_raw).compute())\n", + "\n", + "print('transformed pt ratios', (corrected_jets.pt/corrected_jets.pt_raw).compute())\n", + "print('transformed mass ratios', (corrected_jets.mass/corrected_jets.mass_raw).compute())\n", + "\n", + "print('JES UP pt ratio', (corrected_jets.JES_jes.up.pt/corrected_jets.pt_raw).compute())\n", + "print('JES DOWN pt ratio', (corrected_jets.JES_jes.down.pt/corrected_jets.pt_raw).compute())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Applying CMS b-tagging corrections with btag_tools\n", + "The `coffea.btag_tools` module provides the high-level utility [BTagScaleFactor](https://coffeateam.github.io/coffea/api/coffea.btag_tools.BTagScaleFactor.html#coffea.btag_tools.BTagScaleFactor) which calculates per-jet weights for b-tagging as well as light flavor mis-tagging efficiencies. Uncertainties can be calculated as well." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "SF: [[1.52, 1.56, 1.59, 1.6, 1.6], [0.969, 1.57, ..., 1.6, 1.6], ..., [1.6, 1.6]]\n", + "systematic +: [[1.72, 1.77, 1.79, 1.8, 1.8], [1.01, 1.78, ..., 1.8, 1.8], ..., [1.8, 1.8]]\n", + "systematic -: [[1.31, 1.36, 1.38, 1.4, 1.4], [0.925, 1.37, ..., 1.4, 1.4], ..., [1.4, 1.4]]\n" + ] + } + ], + "source": [ + "from coffea.btag_tools import BTagScaleFactor\n", + "\n", + "btag_sf = BTagScaleFactor(\"data/DeepCSV_102XSF_V1.btag.csv.gz\", \"medium\")\n", + "\n", + "print(\"SF:\", btag_sf.eval(\"central\", events.Jet.hadronFlavour, abs(events.Jet.eta), events.Jet.pt).compute())\n", + "print(\"systematic +:\", btag_sf.eval(\"up\", events.Jet.hadronFlavour, abs(events.Jet.eta), events.Jet.pt).compute())\n", + "print(\"systematic -:\", btag_sf.eval(\"down\", events.Jet.hadronFlavour, abs(events.Jet.eta), events.Jet.pt).compute())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using correctionlib\n", + "\n", + "For the most part, using correctionlib is straightforward. We'll show here how to convert the custom correction we derived earlier (`corr`) into a correctionlib object, and save it in the json format:" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
CorrectionSet (schema v2)\n",
+       "my custom corrections\n",
+       "📂\n",
+       "└── 📈 gen2_to_gen1 (v0)\n",
+       "    Reweights gen2 to agree with gen1\n",
+       "    Node counts: MultiBinning: 1\n",
+       "    ╭──────────── ▶ input ─────────────╮ ╭──────────── ▶ input ────────────╮\n",
+       "    │ pt (real)                        │ │ eta (real)                      │\n",
+       "    │ pt                               │ │ eta                             │\n",
+       "    │ Range: [0.0, 100.0), overflow ok │ │ Range: [-3.0, 3.0), overflow ok │\n",
+       "    ╰──────────────────────────────────╯ ╰─────────────────────────────────╯\n",
+       "    ╭─── ◀ output ───╮\n",
+       "    │ out (real)     │\n",
+       "    │ No description │\n",
+       "    ╰────────────────╯\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[1mCorrectionSet\u001b[0m (\u001b[3mschema v2\u001b[0m)\n", + "my custom corrections\n", + "📂\n", + "└── 📈 \u001b[1mgen2_to_gen1\u001b[0m (v0)\n", + " Reweights gen2 to agree with gen1\n", + " Node counts: \u001b[1mMultiBinning\u001b[0m: 1\n", + " ╭──────────── ▶ input ─────────────╮ ╭──────────── ▶ input ────────────╮\n", + " │ \u001b[1mpt\u001b[0m (real) │ │ \u001b[1meta\u001b[0m (real) │\n", + " │ pt │ │ eta │\n", + " │ Range: [0.0, 100.0), overflow ok │ │ Range: [-3.0, 3.0), overflow ok │\n", + " ╰──────────────────────────────────╯ ╰─────────────────────────────────╯\n", + " ╭─── ◀ output ───╮\n", + " │ \u001b[1mout\u001b[0m (real) │\n", + " │ \u001b[3mNo description\u001b[0m │\n", + " ╰────────────────╯\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import correctionlib\n", + "import rich\n", + "import correctionlib.convert\n", + "\n", + "# without a name, the resulting object will fail validation\n", + "sfhist.name = \"gen2_to_gen1\"\n", + "sfhist.label = \"out\"\n", + "clibcorr = correctionlib.convert.from_histogram(sfhist)\n", + "clibcorr.description = \"Reweights gen2 to agree with gen1\"\n", + "# set overflow bins behavior (default is to raise an error when out of bounds)\n", + "clibcorr.data.flow = \"clamp\"\n", + "\n", + "cset = correctionlib.schemav2.CorrectionSet(\n", + " schema_version=2,\n", + " description=\"my custom corrections\",\n", + " corrections=[clibcorr],\n", + ")\n", + "rich.print(cset)\n", + "\n", + "with open(\"data/mycorrections.json\", \"w\") as fout:\n", + " fout.write(cset.json(exclude_unset=True))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now use this new correction in a similar way to the original `corr()` object:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([1.01495674, 1.40799728, 1.31112463, ..., 0.37951701, 1.16222439,\n", + " 0.73213844])" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ceval = cset.to_evaluator()\n", + "\n", + "ceval[\"gen2_to_gen1\"].evaluate(ptvals, etavals)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "At the time of writing, `correctionlib` does not support jagged arrays. A `correctionlib_wrapper` provided in `coffea.lookup_tools` allows for the processing of jagged array inputs." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[[1, 0.273, 0.722, 1.02, 1.02],\n",
+       " [0.496, 0.439, 0.912, 0.952, 1.02, 0.952, 1.16, 1.02],\n",
+       " [1, 0.393, 0.609, 0.516, 1],\n",
+       " [0.496, 0.69, 0.952],\n",
+       " [0.397, 0.347, 0.722, 0.952, 0.952],\n",
+       " [0.778, 0.439, 0.732, 0.935, 0.679, 0.952, 1.02, 1.09],\n",
+       " [0.331, 0.519, 0.69, 0.776],\n",
+       " [0.69, 0.776, 0.679, 0.952],\n",
+       " [0.679],\n",
+       " [0.993, 0.668, 0.439, 0.732, 0.776, 0.722, 1.02, 1.16, 1.02],\n",
+       " ...,\n",
+       " [0.888, 0.935],\n",
+       " [0.679, 1.02, 1.02, 1.02],\n",
+       " [0.273, 0.443, 0.776, 1.13, 1.09, 0.952, 1.16, 1.16, 1.02],\n",
+       " [0.749, 0.722, 0.935],\n",
+       " [1.13, 1.09],\n",
+       " [0.912, 1, 1.09],\n",
+       " [1.01],\n",
+       " [0.607, 0.551, 1, 0.679, 1, 1.09],\n",
+       " [0.952, 1.16]]\n",
+       "--------------------------------------------------------------\n",
+       "type: 40 * var * float64
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from coffea.lookup_tools.correctionlib_wrapper import correctionlib_wrapper\n", + "\n", + "wrap_c = correctionlib_wrapper(ceval[\"gen2_to_gen1\"])\n", + "wrap_c(events.Jet.pt, events.Jet.eta).compute()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Alternatively, we can use the awkward utilities `flatten` and `unflatten` to convert awkward arrays into numpy arrays for evaluation." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[[1, 0.273, 0.722, 1.02, 1.02],\n",
+       " [0.496, 0.439, 0.912, 0.952, 1.02, 0.952, 1.16, 1.02],\n",
+       " [1, 0.393, 0.609, 0.516, 1],\n",
+       " [0.496, 0.69, 0.952],\n",
+       " [0.397, 0.347, 0.722, 0.952, 0.952],\n",
+       " [0.778, 0.439, 0.732, 0.935, 0.679, 0.952, 1.02, 1.09],\n",
+       " [0.331, 0.519, 0.69, 0.776],\n",
+       " [0.69, 0.776, 0.679, 0.952],\n",
+       " [0.679],\n",
+       " [0.993, 0.668, 0.439, 0.732, 0.776, 0.722, 1.02, 1.16, 1.02],\n",
+       " ...,\n",
+       " [0.888, 0.935],\n",
+       " [0.679, 1.02, 1.02, 1.02],\n",
+       " [0.273, 0.443, 0.776, 1.13, 1.09, 0.952, 1.16, 1.16, 1.02],\n",
+       " [0.749, 0.722, 0.935],\n",
+       " [1.13, 1.09],\n",
+       " [0.912, 1, 1.09],\n",
+       " [1.01],\n",
+       " [0.607, 0.551, 1, 0.679, 1, 1.09],\n",
+       " [0.952, 1.16]]\n",
+       "--------------------------------------------------------------\n",
+       "type: 40 * var * float64
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def myJetSF(jets):\n", + " j, nj = ak.flatten(jets), ak.num(jets)\n", + " sf = ceval[\"gen2_to_gen1\"].evaluate(np.array(j.pt), np.array(j.eta))\n", + " return ak.unflatten(sf, nj)\n", + "\n", + "myJetSF(events.Jet.compute())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.11.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/notebooks/dataset_discovery.html b/notebooks/dataset_discovery.html new file mode 100644 index 000000000..315233954 --- /dev/null +++ b/notebooks/dataset_discovery.html @@ -0,0 +1,1283 @@ + + + + + + + Dataset discovery tools — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Dataset discovery tools

+

This notebook shows some features to make the dataset discovery for CMS analysis easier. The rucio sytem is queried to look for dataset and access to the list of all available file replicas.

+

Users can exploit these tools at 2 different levels: - low level: use the rucio_utils module directly to just query rucio - high level: use the DataDiscoveryCLI class to simplify dataset query, replicas filters and uproot preprocessing with dask

+
+

Using Rucio utils directly

+
+
[1]:
+
+
+
from coffea.dataset_tools import rucio_utils
+from coffea.dataset_tools.dataset_query import print_dataset_query
+from rich.console import Console
+from rich.table import Table
+
+
+
+
+
[2]:
+
+
+
client = rucio_utils.get_rucio_client()
+client
+
+
+
+
+
[2]:
+
+
+
+
+<rucio.client.client.Client at 0x7f9bd2277fd0>
+
+
+
+
[3]:
+
+
+
query = "/TTToSemiLeptonic_*_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9*/NANOAODSIM"
+
+
+
+
+
[4]:
+
+
+
outlist, outtree = rucio_utils.query_dataset(
+                query,
+                client=client,
+                tree=True,
+                scope="cms",
+            )
+
+outlist[1:5]
+
+
+
+
+
[4]:
+
+
+
+
+['/TTToSemiLeptonic_TuneCP5CR1_erdON_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM',
+ '/TTToSemiLeptonic_TuneCP5CR2_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2/NANOAODSIM',
+ '/TTToSemiLeptonic_TuneCP5_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM',
+ '/TTToSemiLeptonic_TuneCP5_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM']
+
+
+

Let’s now pretty-print the results in a table using an utility function in the dataset_query module.

+
+
[6]:
+
+
+
console = Console()
+print_dataset_query(query, outtree, console)
+
+
+
+
+
+
+
+
              Query: /TTToSemiLeptonic_*_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9*/NANOAODSIM               
+┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳┓
+┃ Name                               Tag                                                                        ┃
+┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇┩
+│ TTToSemiLeptonic_TuneCP5CR1_13Te…  (1) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2/NAN… │
+├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤
+│ TTToSemiLeptonic_TuneCP5CR1_erdO…  (2) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NAN… ││
+├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤
+│ TTToSemiLeptonic_TuneCP5CR2_13Te…  (3) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2/NAN… │
+├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤
+│ TTToSemiLeptonic_TuneCP5_13TeV-p…  (4) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NAN… ││
+│                                    (5) RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v… │
+│                                    (6) RunIISummer20UL18NanoAODv9-PUForMUOVal_106X_upgrade2018_realistic_v16… ││
+│                                    (7) RunIISummer20UL18NanoAODv9-PUForTRK_TRK_106X_upgrade2018_realistic_v1… │
+│                                    (8) RunIISummer20UL18NanoAODv9-PUForTRKv2_TRKv2_106X_upgrade2018_realisti… ││
+├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤
+│ TTToSemiLeptonic_TuneCP5_erdON_1…  (9) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NAN… │
+├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤
+│ TTToSemiLeptonic_TuneCP5down_13T…  (10) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… ││
+├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤
+│ TTToSemiLeptonic_TuneCP5up_13TeV…  (11) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… │
+├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤
+│ TTToSemiLeptonic_Vcb_TuneCP5_13T…  (12) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2/NA… ││
+├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤
+│ TTToSemiLeptonic_hdampDOWN_TuneC…  (13) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… │
+├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤
+│ TTToSemiLeptonic_hdampUP_TuneCP5…  (14) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… ││
+├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤
+│ TTToSemiLeptonic_mtop166p5_TuneC…  (15) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… │
+├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤
+│ TTToSemiLeptonic_mtop169p5_TuneC…  (16) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… ││
+├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤
+│ TTToSemiLeptonic_mtop171p5_TuneC…  (17) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… │
+├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤
+│ TTToSemiLeptonic_mtop173p5_TuneC…  (18) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… ││
+├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤
+│ TTToSemiLeptonic_mtop175p5_TuneC…  (19) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… │
+├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤
+│ TTToSemiLeptonic_mtop178p5_TuneC…  (20) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… ││
+├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤
+│ TTToSemiLeptonic_widthx0p55_Tune…  (21) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… │
+├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤
+│ TTToSemiLeptonic_widthx0p7_TuneC…  (22) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… ││
+├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤
+│ TTToSemiLeptonic_widthx0p85_Tune…  (23) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… │
+├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤
+│ TTToSemiLeptonic_widthx1p15_Tune…  (24) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… ││
+├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤
+│ TTToSemiLeptonic_widthx1p3_TuneC…  (25) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… │
+├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤
+│ TTToSemiLeptonic_widthx1p45_Tune…  (26) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… ││
+└───────────────────────────────────┴────────────────────────────────────────────────────────────────────────────┴┘
+
+
+
+

Dataset replicas

+

Let’s select one dataset and look for available replicas

+
+
[7]:
+
+
+
dataset = outlist[0]
+dataset
+
+
+
+
+
[7]:
+
+
+
+
+'/TTToSemiLeptonic_TuneCP5CR1_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2/NANOAODSIM'
+
+
+

Using the option mode='full' in the function rucio_utils.get_dataset_file_replicas() one gets all the available replicas.

+
+
[8]:
+
+
+
try:
+    (
+        outfiles,
+        outsites,
+        sites_counts,
+    ) = rucio_utils.get_dataset_files_replicas(
+        dataset,
+        allowlist_sites=[],
+        blocklist_sites=[],
+        regex_sites=[],
+        mode="full",   # full or first. "full"==all the available replicas
+        client=client,
+    )
+except Exception as e:
+    print(f"\n[red bold] Exception: {e}[/]")
+
+
+
+
+
[9]:
+
+
+
def print_replicas(sites_counts):
+    console.print(f"[cyan]Sites availability for dataset: [red]{dataset}")
+    table = Table(title="Available replicas")
+    table.add_column("Index", justify="center")
+    table.add_column("Site", justify="left", style="cyan", no_wrap=True)
+    table.add_column("Files", style="magenta", no_wrap=True)
+    table.add_column("Availability", justify="center")
+    table.row_styles = ["dim", "none"]
+    Nfiles = len(outfiles)
+
+    sorted_sites = dict(
+        sorted(sites_counts.items(), key=lambda x: x[1], reverse=True)
+    )
+    for i, (site, stat) in enumerate(sorted_sites.items()):
+        table.add_row(
+            str(i), site, f"{stat} / {Nfiles}", f"{stat*100/Nfiles:.1f}%"
+        )
+    console.print(table)
+
+
+
+
+
[10]:
+
+
+
print_replicas(sites_counts)
+
+
+
+
+
+
+
+
Sites availability for dataset: 
+/TTToSemiLeptonic_TuneCP5CR1_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2
+/NANOAODSIM
+
+
+
+
+
+
+
                    Available replicas                    
+┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
+┃ Index  Site                 Files      Availability ┃
+┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
+│   0    T2_DE_DESY           294 / 294     100.0%    │
+│   1   │ T1_DE_KIT_Disk       294 / 294 │    100.0%    │
+│   2    T1_UK_RAL_Disk       294 / 294     100.0%    │
+│   3   │ T1_RU_JINR_Disk      294 / 294 │    100.0%    │
+│   4    T3_CH_PSI            294 / 294     100.0%    │
+│   5   │ T3_KR_UOS            294 / 294 │    100.0%    │
+│   6    T1_US_FNAL_Disk      193 / 294     65.6%     │
+│   7   │ T2_US_Nebraska       99 / 294  │    33.7%     │
+│   8    T1_IT_CNAF_Disk      58 / 294      19.7%     │
+│   9   │ T2_US_Purdue         53 / 294  │    18.0%     │
+│  10    T2_BE_IIHE           50 / 294      17.0%     │
+│  11   │ T2_US_MIT            50 / 294  │    17.0%     │
+│  12    T1_ES_PIC_Disk       43 / 294      14.6%     │
+│  13   │ T2_US_Vanderbilt     40 / 294  │    13.6%     │
+│  14    T2_BR_SPRACE         39 / 294      13.3%     │
+│  15   │ T2_US_Florida        33 / 294  │    11.2%     │
+│  16    T2_IT_Legnaro        28 / 294       9.5%     │
+│  17   │ T2_US_UCSD           28 / 294  │     9.5%     │
+│  18    T2_UA_KIPT           26 / 294       8.8%     │
+│  19   │ T2_US_Caltech        24 / 294  │     8.2%     │
+│  20    T2_US_Wisconsin      22 / 294       7.5%     │
+│  21   │ T2_TR_METU           18 / 294  │     6.1%     │
+│  22    T2_ES_CIEMAT         17 / 294       5.8%     │
+│  23   │ T2_DE_RWTH           11 / 294  │     3.7%     │
+│  24    T2_BR_UERJ           7 / 294        2.4%     │
+│  25   │ T2_UK_SGrid_Bristol  3 / 294   │     1.0%     │
+│  26    T2_ES_IFCA           2 / 294        0.7%     │
+└───────┴─────────────────────┴───────────┴──────────────┘
+
+
+
+
+

Filtering sites

+

Grid sites can be filtered in 3 different ways - allowlist: if this list of specified, only the sites in the list are considered. No blocklist and regex are considered - blocklist: if this list is specified, those sites are excluded from the replicas - regex_sites: regex filter the sites to be considered, on top of the blocklist

+
+
[16]:
+
+
+
# Example with allowlist
+try:
+    (
+        outfiles,
+        outsites,
+        sites_counts,
+    ) = rucio_utils.get_dataset_files_replicas(
+        dataset,
+        allowlist_sites=["T2_DE_DESY", "T1_US_FNAL_Disk"],
+        blocklist_sites=[],
+        regex_sites=None,
+        mode="full",   # full or first. "full"==all the available replicas
+        client=client,
+    )
+except Exception as e:
+    print(f"\n[red bold] Exception: {e}[/]")
+
+print_replicas(sites_counts)
+
+
+
+
+
+
+
+
Sites availability for dataset: 
+/TTToSemiLeptonic_TuneCP5CR1_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2
+/NANOAODSIM
+
+
+
+
+
+
+
                  Available replicas                  
+┏━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
+┃ Index  Site             Files      Availability ┃
+┡━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
+│   0    T2_DE_DESY       294 / 294     100.0%    │
+│   1   │ T1_US_FNAL_Disk  193 / 294 │    65.6%     │
+└───────┴─────────────────┴───────────┴──────────────┘
+
+
+
+
[18]:
+
+
+
# Example with blocklist
+try:
+    (
+        outfiles,
+        outsites,
+        sites_counts,
+    ) = rucio_utils.get_dataset_files_replicas(
+        dataset,
+        allowlist_sites=[],
+        blocklist_sites=["T2_DE_DESY", "T3_CH_PSI"],
+        regex_sites=None,
+        mode="full",   # full or first. "full"==all the available replicas
+        client=client,
+    )
+except Exception as e:
+    print(f"\n[red bold] Exception: {e}[/]")
+
+print_replicas(sites_counts)
+
+
+
+
+
+
+
+
Sites availability for dataset: 
+/TTToSemiLeptonic_TuneCP5CR1_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2
+/NANOAODSIM
+
+
+
+
+
+
+
                    Available replicas                    
+┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
+┃ Index  Site                 Files      Availability ┃
+┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
+│   0    T1_DE_KIT_Disk       294 / 294     100.0%    │
+│   1   │ T1_UK_RAL_Disk       294 / 294 │    100.0%    │
+│   2    T1_RU_JINR_Disk      294 / 294     100.0%    │
+│   3   │ T3_KR_UOS            294 / 294 │    100.0%    │
+│   4    T1_US_FNAL_Disk      193 / 294     65.6%     │
+│   5   │ T2_US_Nebraska       99 / 294  │    33.7%     │
+│   6    T1_IT_CNAF_Disk      58 / 294      19.7%     │
+│   7   │ T2_US_Purdue         53 / 294  │    18.0%     │
+│   8    T2_BE_IIHE           50 / 294      17.0%     │
+│   9   │ T2_US_MIT            50 / 294  │    17.0%     │
+│  10    T1_ES_PIC_Disk       43 / 294      14.6%     │
+│  11   │ T2_US_Vanderbilt     40 / 294  │    13.6%     │
+│  12    T2_BR_SPRACE         39 / 294      13.3%     │
+│  13   │ T2_US_Florida        33 / 294  │    11.2%     │
+│  14    T2_IT_Legnaro        28 / 294       9.5%     │
+│  15   │ T2_US_UCSD           28 / 294  │     9.5%     │
+│  16    T2_UA_KIPT           26 / 294       8.8%     │
+│  17   │ T2_US_Caltech        24 / 294  │     8.2%     │
+│  18    T2_US_Wisconsin      22 / 294       7.5%     │
+│  19   │ T2_TR_METU           18 / 294  │     6.1%     │
+│  20    T2_ES_CIEMAT         17 / 294       5.8%     │
+│  21   │ T2_DE_RWTH           11 / 294  │     3.7%     │
+│  22    T2_BR_UERJ           7 / 294        2.4%     │
+│  23   │ T2_UK_SGrid_Bristol  3 / 294   │     1.0%     │
+│  24    T2_ES_IFCA           2 / 294        0.7%     │
+└───────┴─────────────────────┴───────────┴──────────────┘
+
+
+
+
[22]:
+
+
+
# Example with regex
+try:
+    (
+        outfiles,
+        outsites,
+        sites_counts,
+    ) = rucio_utils.get_dataset_files_replicas(
+        dataset,
+        allowlist_sites=[],
+        blocklist_sites=[],
+        regex_sites= r"T[123]_(FR|IT|BE|CH|DE|ES|UK)_\w+",
+        mode="full",   # full or first. "full"==all the available replicas
+        client=client,
+    )
+except Exception as e:
+    print(f"\n[red bold] Exception: {e}[/]")
+
+print_replicas(sites_counts)
+
+
+
+
+
+
+
+
Sites availability for dataset: 
+/TTToSemiLeptonic_TuneCP5CR1_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2
+/NANOAODSIM
+
+
+
+
+
+
+
                    Available replicas                    
+┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
+┃ Index  Site                 Files      Availability ┃
+┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
+│   0    T2_DE_DESY           294 / 294     100.0%    │
+│   1   │ T1_DE_KIT_Disk       294 / 294 │    100.0%    │
+│   2    T1_UK_RAL_Disk       294 / 294     100.0%    │
+│   3   │ T3_CH_PSI            294 / 294 │    100.0%    │
+│   4    T1_IT_CNAF_Disk      58 / 294      19.7%     │
+│   5   │ T2_BE_IIHE           50 / 294  │    17.0%     │
+│   6    T1_ES_PIC_Disk       43 / 294      14.6%     │
+│   7   │ T2_IT_Legnaro        28 / 294  │     9.5%     │
+│   8    T2_ES_CIEMAT         17 / 294       5.8%     │
+│   9   │ T2_DE_RWTH           11 / 294  │     3.7%     │
+│  10    T2_UK_SGrid_Bristol  3 / 294        1.0%     │
+│  11   │ T2_ES_IFCA           2 / 294   │     0.7%     │
+└───────┴─────────────────────┴───────────┴──────────────┘
+
+
+
+
+
+

Using the DataDiscoveryCLI

+

Manipulating the dataset query and replicas is simplified by the DataDiscoveryCLI class in dataset_query module.

+
+
[1]:
+
+
+
from coffea.dataset_tools import rucio_utils
+from coffea.dataset_tools.dataset_query import print_dataset_query
+from rich.console import Console
+from coffea.dataset_tools.dataset_query import DataDiscoveryCLI
+
+
+
+
+
[2]:
+
+
+
dataset_definition = {
+    "/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL18NanoAODv9-106X*/NANOAODSIM": {"short_name": "ZJets",
+                                                                                                   "metadata": {"xsec": 100.0,"isMC":True}},
+    "/SingleMuon/Run2018C-UL20*_MiniAODv2_NanoAODv9_GT36*/NANOAOD": {"short_name": "SingleMuon", "metadata": {"isMC":False}}
+}
+
+
+
+

The dataset definition is passed to a DataDiscoveryCLI to automatically query rucio and get replicas

+
+
[11]:
+
+
+
ddc = DataDiscoveryCLI()
+ddc.load_dataset_definition(dataset_definition,
+                           query_results_strategy="all",
+                           replicas_strategy="round-robin")
+
+
+
+
+
+
+
+
 Querying rucio for replicas: /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD
+
+
+
+
+
+
+
+
+
+
+
+
+
Sites availability for dataset: /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD
+
+
+
+
+
+
+
                   Available replicas                   
+┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┓
+┃ Index  Site                 Files    Availability ┃
+┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━┩
+│   0    T2_DE_DESY           67 / 67     100.0%    │
+│   1   │ T3_KR_KISTI          67 / 67 │    100.0%    │
+│   2    T2_TW_NCHC           67 / 67     100.0%    │
+│   3   │ T2_BE_IIHE           67 / 67 │    100.0%    │
+│   4    T2_US_Purdue         67 / 67     100.0%    │
+│   5   │ T2_ES_CIEMAT         67 / 67 │    100.0%    │
+│   6    T3_FR_IPNL           67 / 67     100.0%    │
+│   7   │ T1_US_FNAL_Disk      61 / 67 │    91.0%     │
+│   8    T2_UK_London_IC      39 / 67     58.2%     │
+│   9   │ T1_FR_CCIN2P3_Disk   38 / 67 │    56.7%     │
+│  10    T2_US_Caltech        26 / 67     38.8%     │
+│  11   │ T2_CH_CERN           25 / 67 │    37.3%     │
+│  12    T2_DE_RWTH           22 / 67     32.8%     │
+│  13   │ T1_IT_CNAF_Disk      20 / 67 │    29.9%     │
+│  14    T2_US_Wisconsin      16 / 67     23.9%     │
+│  15   │ T2_US_Florida        16 / 67 │    23.9%     │
+│  16    T2_US_Nebraska       13 / 67     19.4%     │
+│  17   │ T2_TR_METU           11 / 67 │    16.4%     │
+│  18    T1_DE_KIT_Disk       11 / 67     16.4%     │
+│  19   │ T2_UK_SGrid_RALPP    6 / 67  │     9.0%     │
+│  20    T2_IT_Legnaro        6 / 67       9.0%     │
+│  21   │ T2_ES_IFCA           4 / 67  │     6.0%     │
+│  22    T2_FR_IPHC           2 / 67       3.0%     │
+│  23   │ T2_UK_London_Brunel  1 / 67  │     1.5%     │
+└───────┴─────────────────────┴─────────┴──────────────┘
+
+
+
+
+
+
+
Replicas for /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD
+├── T2_DE_DESY
+│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT
+│   │   36-v1/2520000/0144EC47-BFA3-EA43-BF05-BD4248ED6031.root
+│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT
+│   │   36-v1/2520000/2747DEFE-A247-1F42-B0EF-E7B7F1D3FCD6.root
+│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT
+│   │   36-v1/2520000/2DA9130E-8423-304C-9902-1E42CD72E658.root
+│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT
+│   │   36-v1/2520000/63047CC0-38C6-F74C-9A00-0DF9050F7CF1.root
+│   └── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT
+│       36-v1/2520000/8369B0EA-E4CC-AC4D-BD3F-0679B3310E09.root
+├── T3_KR_KISTI
+│   ├── root://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36
+│   │   -v1/2520000/0C9615C1-7EE6-CD44-8FC0-04F63B2C16FD.root
+│   ├── root://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36
+│   │   -v1/2520000/152C304A-97AD-1649-BCB6-3EA0CCD0DD33.root
+│   ├── root://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36
+│   │   -v1/2520000/1CEB718A-7DC1-C74A-A7BE-A3C8D9FA785A.root
+│   ├── root://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36
+│   │   -v1/2520000/51515E3C-C640-3A4C-A16C-DC267FD142BF.root
+│   ├── root://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36
+│   │   -v1/2520000/7DEA3718-B7BC-EE42-A8BE-11C62BB8536D.root
+│   ├── root://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36
+│   │   -v1/2520000/81CEA7BA-9E66-BC4F-A96F-32642D59B653.root
+│   └── root://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36
+│       -v1/2520000/C4F476DA-3D00-334B-867C-7E12F94EE3AB.root
+├── T2_ES_CIEMAT
+│   ├── root://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1
+│   │   /2520000/12FAE9F1-7139-924C-A8DE-9699A00FC994.root
+│   ├── root://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1
+│   │   /2520000/1DD0FAC6-3087-E44E-ABCB-8AF812C1310D.root
+│   ├── root://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1
+│   │   /2520000/3FE5B677-9AB3-0245-A1CF-4B320592F18F.root
+│   ├── root://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1
+│   │   /2520000/74A75B73-E5B8-C942-BBC9-1DDDD7F752FB.root
+│   ├── root://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1
+│   │   /2520000/8C8690F8-4FEE-1047-85F4-29E414B3D12C.root
+│   └── root://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1
+│       /2520000/DA47C0B6-BCAB-C54C-A6BF-B0A64E88E3D4.root
+├── T1_FR_CCIN2P3_Disk
+│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20
+│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/26FC8C40-EA29-804C-B17D-84FB1C6BC505.root
+│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20
+│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/2D58C3FE-512A-1F48-9AEB-6F80379B8F4A.root
+│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20
+│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/30A3A1AB-2F27-C84E-9437-6BB3881F6856.root
+│   └── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20
+│       18_MiniAODv2_NanoAODv9_GT36-v1/2520000/A350E2E4-705C-2C4D-9B11-3436056EEBE7.root
+├── T2_BE_IIHE
+│   ├── root://maite.iihe.ac.be:1095//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/252
+│   │   0000/365F32F6-F971-1B4D-8E9D-C0ACD74FFB03.root
+│   ├── root://maite.iihe.ac.be:1095//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/252
+│   │   0000/410C32AB-DEB5-404F-BC6B-92E8F560563F.root
+│   ├── root://maite.iihe.ac.be:1095//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/252
+│   │   0000/6809B5E3-6DE6-1541-AE4C-E1804C877EDE.root
+│   ├── root://maite.iihe.ac.be:1095//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/252
+│   │   0000/78AC6A39-C303-EB44-9264-71819CC70FCC.root
+│   └── root://maite.iihe.ac.be:1095//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/252
+│       0000/7CCCB2C3-F210-2C42-85DF-AA00293FACFB.root
+├── T2_US_Purdue
+│   ├── root://eos.cms.rcac.purdue.edu///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/
+│   │   2520000/37312354-59AB-E44B-BC94-CF424D4B7DDB.root
+│   ├── root://eos.cms.rcac.purdue.edu///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/
+│   │   2520000/42DC0F42-82E8-BE47-B04D-544B67274829.root
+│   ├── root://eos.cms.rcac.purdue.edu///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/
+│   │   2520000/D7875684-9F26-084E-9B2B-5E9BB5D353E8.root
+│   ├── root://eos.cms.rcac.purdue.edu///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/
+│   │   2520000/FAF0C67B-A8B4-8A4F-83B1-E43675CE9630.root
+│   └── root://eos.cms.rcac.purdue.edu///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/
+│       2520000/FE5EEFA5-C07A-5C44-B66D-5B31BE02C7D3.root
+├── T2_US_Wisconsin
+│   ├── root://cmsxrootd.hep.wisc.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36
+│   │   -v1/2520000/39D52C69-2035-A24B-A413-40976993651D.root
+│   └── root://cmsxrootd.hep.wisc.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36
+│       -v1/2520000/FCAF4145-8E3F-2142-BDCB-5E276523B592.root
+├── T2_TW_NCHC
+│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v
+│   │   1/2520000/459261DD-4441-6047-9FF2-1EDE468452C9.root
+│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v
+│   │   1/2520000/6DDF448B-4605-5C41-9711-1C73EC5F01D3.root
+│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v
+│   │   1/2520000/7B14228A-5331-DF4E-B677-7B8AA281D460.root
+│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v
+│   │   1/2520000/7B181B92-AA2C-1E44-86FE-B074D359BBB3.root
+│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v
+│   │   1/2520000/8223C4A3-D4BD-6A4B-A513-54B6668C7122.root
+│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v
+│   │   1/2520000/A74EFE57-BAD2-C143-B8DC-817CE4F96FD7.root
+│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v
+│   │   1/2520000/AE014F55-84BE-E84E-B447-0B614070CD17.root
+│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v
+│   │   1/2520000/BCBF89A2-329C-744B-A38F-139EA8F94007.root
+│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v
+│   │   1/2520000/D8D41BBC-D514-D342-A514-CCF48575D184.root
+│   └── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v
+│       1/2520000/F1B3977A-E777-EC4D-8FC7-981FE4ED5E0C.root
+├── T2_UK_London_IC
+│   ├── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA
+│   │   OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/59DA0585-BD57-CE49-A15E-CDBAC5473EDE.root
+│   ├── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA
+│   │   OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/F16A9138-7563-E540-B6AD-8A8A688B3830.root
+│   └── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA
+│       OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/FE3D79A6-27D4-8948-A89B-2F966C5B29D4.root
+├── T1_US_FNAL_Disk
+│   ├── root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO
+│   │   Dv9_GT36-v1/2520000/62789325-3C0B-FC4D-B578-B41A396399E4.root
+│   ├── root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO
+│   │   Dv9_GT36-v1/2520000/6EAA5EDB-0DB3-6E40-87DC-7AB582295D29.root
+│   ├── root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO
+│   │   Dv9_GT36-v1/2520000/A59D511A-A419-714F-8EE1-8B8BAFEC04D5.root
+│   ├── root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO
+│   │   Dv9_GT36-v1/2520000/B78A9B75-3B32-CF4E-A144-375189CF48AE.root
+│   ├── root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO
+│   │   Dv9_GT36-v1/2520000/B9E9087C-255C-C24D-A733-FB9291DC7C3C.root
+│   ├── root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO
+│   │   Dv9_GT36-v1/2520000/CDD2CDF9-72D0-4045-B28F-89002077FB89.root
+│   └── root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO
+│       Dv9_GT36-v1/2520000/ED95384D-9D3D-AE45-8425-C4C080E691C5.root
+├── T1_IT_CNAF_Disk
+│   └── root://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/
+│       2520000/648ECD9C-8AAA-BB46-8683-C8987CCC73B9.root
+├── T2_US_Nebraska
+│   ├── root://xrootd-local.unl.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v
+│   │   1/2520000/69ABD79C-C684-8244-9F0D-153C6B8C2D9C.root
+│   ├── root://xrootd-local.unl.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v
+│   │   1/2520000/AB8DD69D-A522-D44C-BB9C-209623F7D41A.root
+│   └── root://xrootd-local.unl.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v
+│       1/2520000/B3487FE0-B172-AD47-A13A-388C0A9BF93F.root
+├── T2_IT_Legnaro
+│   └── root://t2-xrdcms.lnl.infn.it:7070///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-
+│       v1/2520000/B1B449CE-5952-8347-A9A7-35FE231D0C72.root
+├── T3_FR_IPNL
+│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO
+│   │   Dv2_NanoAODv9_GT36-v1/2520000/BA02D468-A8CE-4F49-884F-F836BB481AD5.root
+│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO
+│   │   Dv2_NanoAODv9_GT36-v1/2520000/BAAA6E00-7AC3-9947-9262-D9833D3A8B19.root
+│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO
+│   │   Dv2_NanoAODv9_GT36-v1/2520000/CBD43A1E-AE2F-0B4D-A642-29FB2E9EB33B.root
+│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO
+│   │   Dv2_NanoAODv9_GT36-v1/2520000/ECD4877E-707B-EA43-A38B-D1B700FBDE79.root
+│   └── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO
+│       Dv2_NanoAODv9_GT36-v1/2520000/F09135D8-FCBE-AF40-BCE8-03A529C5C87F.root
+├── T2_DE_RWTH
+│   └── root://grid-cms-xrootd.physik.rwth-aachen.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2
+│       _NanoAODv9_GT36-v1/2520000/D40D1285-B075-D446-B1BF-86A463EF6993.root
+├── T2_TR_METU
+│   └── root://eymir.grid.metu.edu.tr//dpm/grid.metu.edu.tr/home/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018
+│       _MiniAODv2_NanoAODv9_GT36-v1/2520000/F34F4F00-3370-EF4D-AF44-39E474E6530F.root
+└── T2_US_Florida
+    └── root://cmsio2.rc.ufl.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2
+        520000/F6E44EA5-F4C6-E746-AD43-7A263F1E316E.root
+
+
+
+
+
+
+
Selected datasets:
+
+
+
+
+
+
+
                                                 Selected datasets                                                 
+┏━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳┳┓
+┃ Dataset                                                                                                   ┃
+┡━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇╇┩
+│ 1  /DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realisti… │││
+│ 2  /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD                                           │││
+└───┴───────────────────────────────────────────────────────────────────────────────────────────────────────────┴┴┘
+
+
+
+

Filtering sites

+

Sites filtering works in a very similar way for DataDiscoveryCLI

+
+
[17]:
+
+
+
ddc = DataDiscoveryCLI()
+ddc.do_regex_sites(r"T[123]_(CH|IT|UK|FR|DE)_\w+")
+ddc.load_dataset_definition(dataset_definition,
+                           query_results_strategy="all",
+                           replicas_strategy="round-robin")
+
+
+
+
+
+
+
+
 Querying rucio for replicas: /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD
+
+
+
+
+
+
+
+
+
+
+
+
+
Sites availability for dataset: /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD
+
+
+
+
+
+
+
                   Available replicas                   
+┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┓
+┃ Index  Site                 Files    Availability ┃
+┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━┩
+│   0    T2_DE_DESY           67 / 67     100.0%    │
+│   1   │ T3_FR_IPNL           67 / 67 │    100.0%    │
+│   2    T2_UK_London_IC      39 / 67     58.2%     │
+│   3   │ T1_FR_CCIN2P3_Disk   38 / 67 │    56.7%     │
+│   4    T2_CH_CERN           25 / 67     37.3%     │
+│   5   │ T2_DE_RWTH           22 / 67 │    32.8%     │
+│   6    T1_IT_CNAF_Disk      20 / 67     29.9%     │
+│   7   │ T1_DE_KIT_Disk       11 / 67 │    16.4%     │
+│   8    T2_UK_SGrid_RALPP    6 / 67       9.0%     │
+│   9   │ T2_IT_Legnaro        6 / 67  │     9.0%     │
+│  10    T2_FR_IPHC           2 / 67       3.0%     │
+│  11   │ T2_UK_London_Brunel  1 / 67  │     1.5%     │
+└───────┴─────────────────────┴─────────┴──────────────┘
+
+
+
+
+
+
+
Replicas for /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD
+├── T2_CH_CERN
+│   ├── root://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2
+│   │   520000/0144EC47-BFA3-EA43-BF05-BD4248ED6031.root
+│   ├── root://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2
+│   │   520000/1DD0FAC6-3087-E44E-ABCB-8AF812C1310D.root
+│   ├── root://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2
+│   │   520000/2747DEFE-A247-1F42-B0EF-E7B7F1D3FCD6.root
+│   ├── root://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2
+│   │   520000/2DA9130E-8423-304C-9902-1E42CD72E658.root
+│   ├── root://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2
+│   │   520000/39D52C69-2035-A24B-A413-40976993651D.root
+│   ├── root://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2
+│   │   520000/69ABD79C-C684-8244-9F0D-153C6B8C2D9C.root
+│   ├── root://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2
+│   │   520000/7CCCB2C3-F210-2C42-85DF-AA00293FACFB.root
+│   └── root://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2
+│       520000/F34F4F00-3370-EF4D-AF44-39E474E6530F.root
+├── T3_FR_IPNL
+│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO
+│   │   Dv2_NanoAODv9_GT36-v1/2520000/0C9615C1-7EE6-CD44-8FC0-04F63B2C16FD.root
+│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO
+│   │   Dv2_NanoAODv9_GT36-v1/2520000/30A3A1AB-2F27-C84E-9437-6BB3881F6856.root
+│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO
+│   │   Dv2_NanoAODv9_GT36-v1/2520000/410C32AB-DEB5-404F-BC6B-92E8F560563F.root
+│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO
+│   │   Dv2_NanoAODv9_GT36-v1/2520000/42DC0F42-82E8-BE47-B04D-544B67274829.root
+│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO
+│   │   Dv2_NanoAODv9_GT36-v1/2520000/62789325-3C0B-FC4D-B578-B41A396399E4.root
+│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO
+│   │   Dv2_NanoAODv9_GT36-v1/2520000/6809B5E3-6DE6-1541-AE4C-E1804C877EDE.root
+│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO
+│   │   Dv2_NanoAODv9_GT36-v1/2520000/78AC6A39-C303-EB44-9264-71819CC70FCC.root
+│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO
+│   │   Dv2_NanoAODv9_GT36-v1/2520000/A350E2E4-705C-2C4D-9B11-3436056EEBE7.root
+│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO
+│   │   Dv2_NanoAODv9_GT36-v1/2520000/FCAF4145-8E3F-2142-BDCB-5E276523B592.root
+│   └── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO
+│       Dv2_NanoAODv9_GT36-v1/2520000/FE3D79A6-27D4-8948-A89B-2F966C5B29D4.root
+├── T2_UK_London_IC
+│   ├── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA
+│   │   OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/12FAE9F1-7139-924C-A8DE-9699A00FC994.root
+│   ├── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA
+│   │   OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/63047CC0-38C6-F74C-9A00-0DF9050F7CF1.root
+│   ├── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA
+│   │   OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/8369B0EA-E4CC-AC4D-BD3F-0679B3310E09.root
+│   ├── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA
+│   │   OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/AE014F55-84BE-E84E-B447-0B614070CD17.root
+│   ├── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA
+│   │   OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/F16A9138-7563-E540-B6AD-8A8A688B3830.root
+│   └── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA
+│       OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/FAF0C67B-A8B4-8A4F-83B1-E43675CE9630.root
+├── T1_FR_CCIN2P3_Disk
+│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20
+│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/152C304A-97AD-1649-BCB6-3EA0CCD0DD33.root
+│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20
+│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/37312354-59AB-E44B-BC94-CF424D4B7DDB.root
+│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20
+│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/7B14228A-5331-DF4E-B677-7B8AA281D460.root
+│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20
+│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/7B181B92-AA2C-1E44-86FE-B074D359BBB3.root
+│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20
+│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/C4F476DA-3D00-334B-867C-7E12F94EE3AB.root
+│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20
+│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/D8D41BBC-D514-D342-A514-CCF48575D184.root
+│   └── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20
+│       18_MiniAODv2_NanoAODv9_GT36-v1/2520000/FE5EEFA5-C07A-5C44-B66D-5B31BE02C7D3.root
+├── T2_FR_IPHC
+│   └── root://sbgdcache.in2p3.fr///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/25200
+│       00/1CEB718A-7DC1-C74A-A7BE-A3C8D9FA785A.root
+├── T2_DE_DESY
+│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT
+│   │   36-v1/2520000/26FC8C40-EA29-804C-B17D-84FB1C6BC505.root
+│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT
+│   │   36-v1/2520000/2D58C3FE-512A-1F48-9AEB-6F80379B8F4A.root
+│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT
+│   │   36-v1/2520000/459261DD-4441-6047-9FF2-1EDE468452C9.root
+│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT
+│   │   36-v1/2520000/51515E3C-C640-3A4C-A16C-DC267FD142BF.root
+│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT
+│   │   36-v1/2520000/648ECD9C-8AAA-BB46-8683-C8987CCC73B9.root
+│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT
+│   │   36-v1/2520000/74A75B73-E5B8-C942-BBC9-1DDDD7F752FB.root
+│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT
+│   │   36-v1/2520000/81CEA7BA-9E66-BC4F-A96F-32642D59B653.root
+│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT
+│   │   36-v1/2520000/8223C4A3-D4BD-6A4B-A513-54B6668C7122.root
+│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT
+│   │   36-v1/2520000/8C8690F8-4FEE-1047-85F4-29E414B3D12C.root
+│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT
+│   │   36-v1/2520000/B78A9B75-3B32-CF4E-A144-375189CF48AE.root
+│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT
+│   │   36-v1/2520000/BAAA6E00-7AC3-9947-9262-D9833D3A8B19.root
+│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT
+│   │   36-v1/2520000/BCBF89A2-329C-744B-A38F-139EA8F94007.root
+│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT
+│   │   36-v1/2520000/CBD43A1E-AE2F-0B4D-A642-29FB2E9EB33B.root
+│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT
+│   │   36-v1/2520000/D40D1285-B075-D446-B1BF-86A463EF6993.root
+│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT
+│   │   36-v1/2520000/DA47C0B6-BCAB-C54C-A6BF-B0A64E88E3D4.root
+│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT
+│   │   36-v1/2520000/ECD4877E-707B-EA43-A38B-D1B700FBDE79.root
+│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT
+│   │   36-v1/2520000/ED95384D-9D3D-AE45-8425-C4C080E691C5.root
+│   └── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT
+│       36-v1/2520000/F1B3977A-E777-EC4D-8FC7-981FE4ED5E0C.root
+├── T1_DE_KIT_Disk
+│   ├── root://cmsxrootd-kit-disk.gridka.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv
+│   │   9_GT36-v1/2520000/365F32F6-F971-1B4D-8E9D-C0ACD74FFB03.root
+│   ├── root://cmsxrootd-kit-disk.gridka.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv
+│   │   9_GT36-v1/2520000/3FE5B677-9AB3-0245-A1CF-4B320592F18F.root
+│   ├── root://cmsxrootd-kit-disk.gridka.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv
+│   │   9_GT36-v1/2520000/6DDF448B-4605-5C41-9711-1C73EC5F01D3.root
+│   ├── root://cmsxrootd-kit-disk.gridka.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv
+│   │   9_GT36-v1/2520000/6EAA5EDB-0DB3-6E40-87DC-7AB582295D29.root
+│   └── root://cmsxrootd-kit-disk.gridka.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv
+│       9_GT36-v1/2520000/7DEA3718-B7BC-EE42-A8BE-11C62BB8536D.root
+├── T2_DE_RWTH
+│   ├── root://grid-cms-xrootd.physik.rwth-aachen.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2
+│   │   _NanoAODv9_GT36-v1/2520000/59DA0585-BD57-CE49-A15E-CDBAC5473EDE.root
+│   ├── root://grid-cms-xrootd.physik.rwth-aachen.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2
+│   │   _NanoAODv9_GT36-v1/2520000/A59D511A-A419-714F-8EE1-8B8BAFEC04D5.root
+│   └── root://grid-cms-xrootd.physik.rwth-aachen.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2
+│       _NanoAODv9_GT36-v1/2520000/B9E9087C-255C-C24D-A733-FB9291DC7C3C.root
+├── T1_IT_CNAF_Disk
+│   ├── root://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/
+│   │   2520000/A74EFE57-BAD2-C143-B8DC-817CE4F96FD7.root
+│   ├── root://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/
+│   │   2520000/AB8DD69D-A522-D44C-BB9C-209623F7D41A.root
+│   ├── root://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/
+│   │   2520000/B3487FE0-B172-AD47-A13A-388C0A9BF93F.root
+│   ├── root://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/
+│   │   2520000/CDD2CDF9-72D0-4045-B28F-89002077FB89.root
+│   ├── root://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/
+│   │   2520000/D7875684-9F26-084E-9B2B-5E9BB5D353E8.root
+│   └── root://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/
+│       2520000/F09135D8-FCBE-AF40-BCE8-03A529C5C87F.root
+└── T2_UK_SGrid_RALPP
+    ├── root://mover.pp.rl.ac.uk:1094/pnfs/pp.rl.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_Mini
+    │   AODv2_NanoAODv9_GT36-v1/2520000/B1B449CE-5952-8347-A9A7-35FE231D0C72.root
+    ├── root://mover.pp.rl.ac.uk:1094/pnfs/pp.rl.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_Mini
+    │   AODv2_NanoAODv9_GT36-v1/2520000/BA02D468-A8CE-4F49-884F-F836BB481AD5.root
+    └── root://mover.pp.rl.ac.uk:1094/pnfs/pp.rl.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_Mini
+        AODv2_NanoAODv9_GT36-v1/2520000/F6E44EA5-F4C6-E746-AD43-7A263F1E316E.root
+
+
+
+
+
+
+
Selected datasets:
+
+
+
+
+
+
+
                                                 Selected datasets                                                 
+┏━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳┳┓
+┃ Dataset                                                                                                   ┃
+┡━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇╇┩
+│ 1  /DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realisti… │││
+│ 2  /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD                                           │││
+└───┴───────────────────────────────────────────────────────────────────────────────────────────────────────────┴┴┘
+
+
+
+
[18]:
+
+
+
ddc.do_list_selected()
+
+
+
+
+
+
+
+
Selected datasets:
+
+
+
+
+
+
+
                                                 Selected datasets                                                 
+┏━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳┳┓
+┃ Dataset                                                                                                   ┃
+┡━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇╇┩
+│ 1  /DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realisti… │││
+│ 2  /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD                                           │││
+└───┴───────────────────────────────────────────────────────────────────────────────────────────────────────────┴┴┘
+
+
+
+
+

Save the replicas metadata

+
+
[20]:
+
+
+
ddc.do_save("replicas_info.json")
+
+
+
+
+
+
+
+
File replicas_info.json saved!
+
+
+
+
+
+

DataDiscoveryCLI from shell

+

The DataDiscoveryCLI can be used directly from CLI

+
+
[35]:
+
+
+
!python -m coffea.dataset_tools.dataset_query --help
+
+
+
+
+
+
+
+
+usage: dataset_query.py [-h] [--cli] [-d DATASET_DEFINITION] [-o OUTPUT]
+                        [-fo FILESET_OUTPUT] [-p] [--step-size STEP_SIZE]
+                        [--dask-cluster DASK_CLUSTER]
+                        [-as ALLOW_SITES [ALLOW_SITES ...]]
+                        [-bs BLOCK_SITES [BLOCK_SITES ...]] [-rs REGEX_SITES]
+                        [--query-results-strategy QUERY_RESULTS_STRATEGY]
+                        [--replicas-strategy REPLICAS_STRATEGY]
+
+options:
+  -h, --help            show this help message and exit
+  --cli                 Start the dataset discovery CLI
+  -d DATASET_DEFINITION, --dataset-definition DATASET_DEFINITION
+                        Dataset definition file
+  -o OUTPUT, --output OUTPUT
+                        Output name for dataset discovery output (no fileset
+                        preprocessing)
+  -fo FILESET_OUTPUT, --fileset-output FILESET_OUTPUT
+                        Output name for fileset
+  -p, --preprocess      Preprocess with dask
+  --step-size STEP_SIZE
+                        Step size for preprocessing
+  --dask-cluster DASK_CLUSTER
+                        Dask cluster url
+  -as ALLOW_SITES [ALLOW_SITES ...], --allow-sites ALLOW_SITES [ALLOW_SITES ...]
+                        List of sites to be allowlisted
+  -bs BLOCK_SITES [BLOCK_SITES ...], --block-sites BLOCK_SITES [BLOCK_SITES ...]
+                        List of sites to be blocklisted
+  -rs REGEX_SITES, --regex-sites REGEX_SITES
+                        Regex string to be used to filter the sites
+  --query-results-strategy QUERY_RESULTS_STRATEGY
+                        Mode for query results selection: [all|manual]
+  --replicas-strategy REPLICAS_STRATEGY
+                        Mode for selecting replicas for datasets:
+                        [manual|round-robin|choose]
+
+
+
+
[ ]:
+
+
+
!python -m coffea.dataset_tools.dataset_query --cli  -d dataset_definition.json
+
+
+
+
+
+

Preprocess the fileset with dask

+

The replicas metadata contain the file location in the CMS grid. This info can be preprocessed with uproot and dask-awkward to extract the fileset. Practically a fileset is a collection of metadata about the file location, file name, chunks splitting, that can be used directly to configure the uproot reading.

+

This step replaces the preprocessing step in coffea 0.7.x. The output of the preprocessing can be used directly to start an analysis with dask-awkward.

+

The preprocessing is performed locally with multiple processes if dask_cluster==None, but a pre-existing dask cluster url can be passed.

+
+
[22]:
+
+
+
fileset_total = ddc.do_preprocess(output_file="fileset",
+                  step_size=10000,  #chunk size for files splitting
+                  align_to_clusters=False,
+                 scheduler_url=None)
+
+
+
+
+
+
+
+
  Preprocessing files to extract available chunks with dask
+
+
+
+
+
+
+
+
+
+
+
+
+
Saved available fileset chunks to fileset_available.json.gz
+
+
+
+
+
+
+
Saved all fileset chunks to fileset_all.json.gz
+
+
+
+
[24]:
+
+
+
import gzip
+import json
+with gzip.open("fileset_available.json.gz", "rt") as file:
+    fileset_available = json.load(file)
+
+
+
+
+
[32]:
+
+
+
dataset = '/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2/NANOAODSIM'
+for i, (file, meta) in enumerate(fileset_available[dataset]["files"].items()):
+    print(file, meta)
+    if i>3:
+        break
+
+
+
+
+
+
+
+
+root://cmsxrd.ts.infn.it:1094///store/mc/RunIISummer20UL18NanoAODv9/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/NANOAODSIM/106X_upgrade2018_realistic_v16_L1v1-v2/100000/13D0AD97-6B32-CB4C-BA87-5E37BA4CF20E.root {'object_path': 'Events', 'steps': [[0, 10000], [10000, 20000], [20000, 30000], [30000, 40000], [40000, 50000], [50000, 59081]], 'uuid': 'fbe50b00-1f7e-11ec-97b8-2bbee183beef'}
+root://cmsxrd.ts.infn.it:1094///store/mc/RunIISummer20UL18NanoAODv9/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/NANOAODSIM/106X_upgrade2018_realistic_v16_L1v1-v2/230000/00C9792D-ACD2-2547-BB04-097F0C4E47E3.root {'object_path': 'Events', 'steps': [[0, 10000], [10000, 20000], [20000, 30000], [30000, 40000], [40000, 50000], [50000, 60000], [60000, 70000], [70000, 80000], [80000, 90000], [90000, 100000], [100000, 110000], [110000, 120000], [120000, 130000], [130000, 138192]], 'uuid': '938a4fe2-1d77-11ec-bddf-59319e86beef'}
+root://dcache-cms-xrootd.desy.de:1094//store/mc/RunIISummer20UL18NanoAODv9/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/NANOAODSIM/106X_upgrade2018_realistic_v16_L1v1-v2/230000/00EA9563-5449-D24E-9566-98AE8E2A61AE.root {'object_path': 'Events', 'steps': [[0, 10000], [10000, 20000], [20000, 30000], [30000, 40000], [40000, 50000], [50000, 60000], [60000, 70000], [70000, 80000], [80000, 90000], [90000, 100000], [100000, 110000], [110000, 120000], [120000, 130000], [130000, 140000], [140000, 150000], [150000, 160000], [160000, 170000], [170000, 180000], [180000, 190000], [190000, 200000], [200000, 210000], [210000, 220000], [220000, 230000], [230000, 240000], [240000, 250000], [250000, 260000], [260000, 270000], [270000, 280000], [280000, 290000], [290000, 300000], [300000, 310000], [310000, 320000], [320000, 330000], [330000, 340000], [340000, 350000], [350000, 360000], [360000, 370000], [370000, 380000], [380000, 390000], [390000, 400000], [400000, 410000], [410000, 420000], [420000, 430000], [430000, 440000], [440000, 450000], [450000, 460000], [460000, 470000], [470000, 480000], [480000, 490000], [490000, 500000], [500000, 510000], [510000, 520000], [520000, 530000], [530000, 540000], [540000, 550000], [550000, 560000], [560000, 570000], [570000, 580000], [580000, 590000], [590000, 600000], [600000, 610000], [610000, 620000], [620000, 630000], [630000, 640000], [640000, 650000], [650000, 660000], [660000, 670000], [670000, 680000], [680000, 690000], [690000, 700000], [700000, 710000], [710000, 720000], [720000, 730000], [730000, 740000], [740000, 750000], [750000, 760000], [760000, 770000], [770000, 780000], [780000, 790000], [790000, 800000], [800000, 810000], [810000, 820000], [820000, 830000], [830000, 840000], [840000, 850000], [850000, 860000], [860000, 870000], [870000, 880000], [880000, 890000], [890000, 900000], [900000, 910000], [910000, 920000], [920000, 930000], [930000, 940000], [940000, 950000], [950000, 960000], [960000, 970000], [970000, 980000], [980000, 990000], [990000, 1000000], [1000000, 1010000], [1010000, 1020000], [1020000, 1030000], [1030000, 1040000], [1040000, 1050000], [1050000, 1060000], [1060000, 1070000], [1070000, 1080000], [1080000, 1090000], [1090000, 1100000], [1100000, 1110000], [1110000, 1120000], [1120000, 1130000], [1130000, 1140000], [1140000, 1150000], [1150000, 1160000], [1160000, 1170000], [1170000, 1180000], [1180000, 1190000], [1190000, 1200000], [1200000, 1210000], [1210000, 1220000], [1220000, 1230000], [1230000, 1240000], [1240000, 1250000], [1250000, 1260000], [1260000, 1270000], [1270000, 1280000], [1280000, 1290000], [1290000, 1300000], [1300000, 1310000], [1310000, 1320000], [1320000, 1330000], [1330000, 1340000], [1340000, 1350000], [1350000, 1360000], [1360000, 1370000], [1370000, 1380000], [1380000, 1390000], [1390000, 1400000], [1400000, 1410000], [1410000, 1420000], [1420000, 1430000], [1430000, 1440000], [1440000, 1450000], [1450000, 1460000], [1460000, 1470000], [1470000, 1480000], [1480000, 1490000], [1490000, 1500000], [1500000, 1510000], [1510000, 1520000], [1520000, 1530000], [1530000, 1540000], [1540000, 1550000], [1550000, 1551326]], 'uuid': 'ced110a0-1b0f-11ec-b2e9-09c08e80beef'}
+root://grid-cms-xrootd.physik.rwth-aachen.de:1094///store/mc/RunIISummer20UL18NanoAODv9/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/NANOAODSIM/106X_upgrade2018_realistic_v16_L1v1-v2/230000/068B0797-DEF5-9341-BBBE-EDBE50EBC6A1.root {'object_path': 'Events', 'steps': [[0, 10000], [10000, 20000], [20000, 30000], [30000, 40000], [40000, 50000], [50000, 60000], [60000, 70000], [70000, 80000], [80000, 90000], [90000, 100000], [100000, 110000], [110000, 120000], [120000, 130000], [130000, 140000], [140000, 150000], [150000, 160000], [160000, 170000], [170000, 180000], [180000, 190000], [190000, 200000], [200000, 210000], [210000, 220000], [220000, 230000], [230000, 240000], [240000, 250000], [250000, 260000], [260000, 270000], [270000, 280000], [280000, 290000], [290000, 300000], [300000, 310000], [310000, 320000], [320000, 330000], [330000, 340000], [340000, 350000], [350000, 360000], [360000, 370000], [370000, 380000], [380000, 390000], [390000, 400000], [400000, 410000], [410000, 420000], [420000, 430000], [430000, 440000], [440000, 450000], [450000, 460000], [460000, 470000], [470000, 480000], [480000, 490000], [490000, 500000], [500000, 510000], [510000, 520000], [520000, 530000], [530000, 540000], [540000, 550000], [550000, 560000], [560000, 570000], [570000, 580000], [580000, 590000], [590000, 600000], [600000, 610000], [610000, 620000], [620000, 630000], [630000, 640000], [640000, 650000], [650000, 660000], [660000, 670000], [670000, 680000], [680000, 690000], [690000, 700000], [700000, 710000], [710000, 720000], [720000, 730000], [730000, 740000], [740000, 750000], [750000, 760000], [760000, 770000], [770000, 780000], [780000, 790000], [790000, 800000], [800000, 810000], [810000, 820000], [820000, 830000], [830000, 840000], [840000, 850000], [850000, 860000], [860000, 870000], [870000, 880000], [880000, 890000], [890000, 900000], [900000, 910000], [910000, 920000], [920000, 930000], [930000, 940000], [940000, 950000], [950000, 960000], [960000, 970000], [970000, 980000], [980000, 990000], [990000, 1000000], [1000000, 1010000], [1010000, 1020000], [1020000, 1030000], [1030000, 1040000], [1040000, 1050000], [1050000, 1060000], [1060000, 1070000], [1070000, 1080000], [1080000, 1090000], [1090000, 1100000], [1100000, 1110000], [1110000, 1120000], [1120000, 1130000], [1130000, 1138724]], 'uuid': 'd86ab2e2-1b28-11ec-8504-738a8e80beef'}
+root://cmsxrd.ts.infn.it:1094///store/mc/RunIISummer20UL18NanoAODv9/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/NANOAODSIM/106X_upgrade2018_realistic_v16_L1v1-v2/230000/0CFD79EF-41AB-4B4A-8F62-06393273EEDE.root {'object_path': 'Events', 'steps': [[0, 10000], [10000, 20000], [20000, 30000], [30000, 40000], [40000, 50000], [50000, 60000], [60000, 70000], [70000, 80000], [80000, 90000], [90000, 100000], [100000, 110000], [110000, 120000], [120000, 130000], [130000, 140000], [140000, 150000], [150000, 160000], [160000, 170000], [170000, 180000], [180000, 190000], [190000, 200000], [200000, 210000], [210000, 220000], [220000, 230000], [230000, 240000], [240000, 250000], [250000, 260000], [260000, 270000], [270000, 280000], [280000, 290000], [290000, 300000], [300000, 310000], [310000, 320000], [320000, 330000], [330000, 340000], [340000, 350000], [350000, 360000], [360000, 370000], [370000, 380000], [380000, 390000], [390000, 400000], [400000, 410000], [410000, 420000], [420000, 430000], [430000, 440000], [440000, 450000], [450000, 460000], [460000, 470000], [470000, 480000], [480000, 490000], [490000, 500000], [500000, 510000], [510000, 520000], [520000, 530000], [530000, 540000], [540000, 550000], [550000, 560000], [560000, 570000], [570000, 580000], [580000, 590000], [590000, 600000], [600000, 610000], [610000, 620000], [620000, 630000], [630000, 640000], [640000, 650000], [650000, 660000], [660000, 670000], [670000, 680000], [680000, 690000], [690000, 700000], [700000, 710000], [710000, 720000], [720000, 730000], [730000, 740000], [740000, 750000], [750000, 760000], [760000, 770000], [770000, 780000], [780000, 790000], [790000, 800000], [800000, 810000], [810000, 820000], [820000, 830000], [830000, 840000], [840000, 850000], [850000, 860000], [860000, 870000], [870000, 880000], [880000, 890000], [890000, 900000], [900000, 910000], [910000, 911868]], 'uuid': '9d799986-1ad9-11ec-9257-fc1b1e0abeef'}
+
+
+
+
[ ]:
+
+
+

+
+
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/notebooks/dataset_discovery.ipynb b/notebooks/dataset_discovery.ipynb new file mode 100644 index 000000000..571f11a7a --- /dev/null +++ b/notebooks/dataset_discovery.ipynb @@ -0,0 +1,2003 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "c5754206-f41b-4e08-bc4d-496df85e8194", + "metadata": {}, + "source": [ + "# Dataset discovery tools\n", + "\n", + "This notebook shows some features to make the dataset discovery for CMS analysis easier. \n", + "The rucio sytem is queried to look for dataset and access to the list of all available file replicas.\n", + "\n", + "Users can exploit these tools at 2 different levels:\n", + "- low level: use the `rucio_utils` module directly to just query rucio\n", + "- high level: use the `DataDiscoveryCLI` class to simplify dataset query, replicas filters and uproot preprocessing with dask" + ] + }, + { + "cell_type": "markdown", + "id": "42242097-c04e-459e-9f3a-1d746df4e9dd", + "metadata": {}, + "source": [ + "## Using Rucio utils directly" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "09103c77-b8e6-4d61-920b-b1ff8fba8791", + "metadata": {}, + "outputs": [], + "source": [ + "from coffea.dataset_tools import rucio_utils\n", + "from coffea.dataset_tools.dataset_query import print_dataset_query\n", + "from rich.console import Console\n", + "from rich.table import Table" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "d62b43cb-53c0-4e2d-b571-1a0683e34dc5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "client = rucio_utils.get_rucio_client()\n", + "client" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "0359afc0-fc98-4aa8-acf4-288ef19ac7db", + "metadata": {}, + "outputs": [], + "source": [ + "query = \"/TTToSemiLeptonic_*_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9*/NANOAODSIM\"" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "659bee88-9fb0-4d1a-9544-a97372595f18", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['/TTToSemiLeptonic_TuneCP5CR1_erdON_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM',\n", + " '/TTToSemiLeptonic_TuneCP5CR2_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2/NANOAODSIM',\n", + " '/TTToSemiLeptonic_TuneCP5_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM',\n", + " '/TTToSemiLeptonic_TuneCP5_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v16_L1v1-v1/NANOAODSIM']" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "outlist, outtree = rucio_utils.query_dataset(\n", + " query,\n", + " client=client,\n", + " tree=True,\n", + " scope=\"cms\", \n", + " )\n", + "\n", + "outlist[1:5]" + ] + }, + { + "cell_type": "markdown", + "id": "9bc2a454-4915-4366-9c02-2e389e9eb6fb", + "metadata": {}, + "source": [ + "Let's now pretty-print the results in a table using an utility function in the `dataset_query` module." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "4487d997-dc22-4a47-87df-4da14fa5b35a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
              Query: /TTToSemiLeptonic_*_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9*/NANOAODSIM               \n",
+       "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳┓\n",
+       "┃ Name                               Tag                                                                        ┃\n",
+       "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇┩\n",
+       "│ TTToSemiLeptonic_TuneCP5CR1_13Te…  (1) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2/NAN… │\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_TuneCP5CR1_erdO…  (2) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NAN… ││\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_TuneCP5CR2_13Te…  (3) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2/NAN… │\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_TuneCP5_13TeV-p…  (4) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NAN… ││\n",
+       "│                                    (5) RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v… │\n",
+       "│                                    (6) RunIISummer20UL18NanoAODv9-PUForMUOVal_106X_upgrade2018_realistic_v16… ││\n",
+       "│                                    (7) RunIISummer20UL18NanoAODv9-PUForTRK_TRK_106X_upgrade2018_realistic_v1… │\n",
+       "│                                    (8) RunIISummer20UL18NanoAODv9-PUForTRKv2_TRKv2_106X_upgrade2018_realisti… ││\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_TuneCP5_erdON_1…  (9) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NAN… │\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_TuneCP5down_13T…  (10) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… ││\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_TuneCP5up_13TeV…  (11) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… │\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_Vcb_TuneCP5_13T…  (12) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2/NA… ││\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_hdampDOWN_TuneC…  (13) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… │\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_hdampUP_TuneCP5…  (14) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… ││\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_mtop166p5_TuneC…  (15) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… │\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_mtop169p5_TuneC…  (16) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… ││\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_mtop171p5_TuneC…  (17) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… │\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_mtop173p5_TuneC…  (18) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… ││\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_mtop175p5_TuneC…  (19) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… │\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_mtop178p5_TuneC…  (20) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… ││\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_widthx0p55_Tune…  (21) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… │\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_widthx0p7_TuneC…  (22) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… ││\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_widthx0p85_Tune…  (23) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… │\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_widthx1p15_Tune…  (24) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… ││\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_widthx1p3_TuneC…  (25) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… │\n",
+       "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n",
+       "│ TTToSemiLeptonic_widthx1p45_Tune…  (26) RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA… ││\n",
+       "└───────────────────────────────────┴────────────────────────────────────────────────────────────────────────────┴┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3m Query: \u001b[0m\u001b[1;3;31m/TTToSemiLeptonic_*_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9*/NANOAODSIM\u001b[0m\u001b[3m \u001b[0m\n", + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mName \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mTag \u001b[0m\u001b[1m \u001b[0m┃┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇┩\n", + "│\u001b[2;36m \u001b[0m\u001b[2;36mTTToSemiLeptonic_TuneCP5CR1_13Te…\u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[1;2;35m(1)\u001b[0m\u001b[2;35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2/NAN…\u001b[0m\u001b[2;35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[36m \u001b[0m\u001b[36mTTToSemiLeptonic_TuneCP5CR1_erdO…\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[1;35m(2)\u001b[0m\u001b[35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NAN…\u001b[0m\u001b[35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[2;36m \u001b[0m\u001b[2;36mTTToSemiLeptonic_TuneCP5CR2_13Te…\u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[1;2;35m(3)\u001b[0m\u001b[2;35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2/NAN…\u001b[0m\u001b[2;35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[36m \u001b[0m\u001b[36mTTToSemiLeptonic_TuneCP5_13TeV-p…\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[1;35m(4)\u001b[0m\u001b[35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NAN…\u001b[0m\u001b[35m \u001b[0m││\n", + "│\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[1;2;35m(5)\u001b[0m\u001b[2;35m RunIISummer20UL18NanoAODv9-20UL18JMENano_106X_upgrade2018_realistic_v…\u001b[0m\u001b[2;35m \u001b[0m││\n", + "│\u001b[36m \u001b[0m\u001b[36m \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[1;35m(6)\u001b[0m\u001b[35m RunIISummer20UL18NanoAODv9-PUForMUOVal_106X_upgrade2018_realistic_v16…\u001b[0m\u001b[35m \u001b[0m││\n", + "│\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[1;2;35m(7)\u001b[0m\u001b[2;35m RunIISummer20UL18NanoAODv9-PUForTRK_TRK_106X_upgrade2018_realistic_v1…\u001b[0m\u001b[2;35m \u001b[0m││\n", + "│\u001b[36m \u001b[0m\u001b[36m \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[1;35m(8)\u001b[0m\u001b[35m RunIISummer20UL18NanoAODv9-PUForTRKv2_TRKv2_106X_upgrade2018_realisti…\u001b[0m\u001b[35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[2;36m \u001b[0m\u001b[2;36mTTToSemiLeptonic_TuneCP5_erdON_1…\u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[1;2;35m(9)\u001b[0m\u001b[2;35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NAN…\u001b[0m\u001b[2;35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[36m \u001b[0m\u001b[36mTTToSemiLeptonic_TuneCP5down_13T…\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[1;35m(10)\u001b[0m\u001b[35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[2;36m \u001b[0m\u001b[2;36mTTToSemiLeptonic_TuneCP5up_13TeV…\u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[1;2;35m(11)\u001b[0m\u001b[2;35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[2;35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[36m \u001b[0m\u001b[36mTTToSemiLeptonic_Vcb_TuneCP5_13T…\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[1;35m(12)\u001b[0m\u001b[35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2/NA…\u001b[0m\u001b[35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[2;36m \u001b[0m\u001b[2;36mTTToSemiLeptonic_hdampDOWN_TuneC…\u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[1;2;35m(13)\u001b[0m\u001b[2;35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[2;35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[36m \u001b[0m\u001b[36mTTToSemiLeptonic_hdampUP_TuneCP5…\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[1;35m(14)\u001b[0m\u001b[35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[2;36m \u001b[0m\u001b[2;36mTTToSemiLeptonic_mtop166p5_TuneC…\u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[1;2;35m(15)\u001b[0m\u001b[2;35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[2;35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[36m \u001b[0m\u001b[36mTTToSemiLeptonic_mtop169p5_TuneC…\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[1;35m(16)\u001b[0m\u001b[35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[2;36m \u001b[0m\u001b[2;36mTTToSemiLeptonic_mtop171p5_TuneC…\u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[1;2;35m(17)\u001b[0m\u001b[2;35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[2;35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[36m \u001b[0m\u001b[36mTTToSemiLeptonic_mtop173p5_TuneC…\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[1;35m(18)\u001b[0m\u001b[35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[2;36m \u001b[0m\u001b[2;36mTTToSemiLeptonic_mtop175p5_TuneC…\u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[1;2;35m(19)\u001b[0m\u001b[2;35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[2;35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[36m \u001b[0m\u001b[36mTTToSemiLeptonic_mtop178p5_TuneC…\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[1;35m(20)\u001b[0m\u001b[35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[2;36m \u001b[0m\u001b[2;36mTTToSemiLeptonic_widthx0p55_Tune…\u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[1;2;35m(21)\u001b[0m\u001b[2;35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[2;35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[36m \u001b[0m\u001b[36mTTToSemiLeptonic_widthx0p7_TuneC…\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[1;35m(22)\u001b[0m\u001b[35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[2;36m \u001b[0m\u001b[2;36mTTToSemiLeptonic_widthx0p85_Tune…\u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[1;2;35m(23)\u001b[0m\u001b[2;35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[2;35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[36m \u001b[0m\u001b[36mTTToSemiLeptonic_widthx1p15_Tune…\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[1;35m(24)\u001b[0m\u001b[35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[2;36m \u001b[0m\u001b[2;36mTTToSemiLeptonic_widthx1p3_TuneC…\u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[1;2;35m(25)\u001b[0m\u001b[2;35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[2;35m \u001b[0m││\n", + "├───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────┼┤\n", + "│\u001b[36m \u001b[0m\u001b[36mTTToSemiLeptonic_widthx1p45_Tune…\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[1;35m(26)\u001b[0m\u001b[35m RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v1/NA…\u001b[0m\u001b[35m \u001b[0m││\n", + "└───────────────────────────────────┴────────────────────────────────────────────────────────────────────────────┴┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "console = Console()\n", + "print_dataset_query(query, outtree, console)" + ] + }, + { + "cell_type": "markdown", + "id": "c213d5fc-6424-4cdf-8751-88ced7987a59", + "metadata": {}, + "source": [ + "### Dataset replicas" + ] + }, + { + "cell_type": "markdown", + "id": "961b4ad8-e3d6-49b1-a2ce-7cad49b46f06", + "metadata": {}, + "source": [ + "Let's select one dataset and look for available replicas" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "d08fd6ed-4b3a-4e9f-994a-d1bd529421a7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'/TTToSemiLeptonic_TuneCP5CR1_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2/NANOAODSIM'" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dataset = outlist[0]\n", + "dataset" + ] + }, + { + "cell_type": "markdown", + "id": "a605fb64-6e0b-4fbe-8807-84b9d75f2d53", + "metadata": {}, + "source": [ + "Using the option `mode='full'` in the function `rucio_utils.get_dataset_file_replicas()` one gets all the available replicas. " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "2d64069e-ea8f-48c2-bd33-43fc555f6ec8", + "metadata": {}, + "outputs": [], + "source": [ + "try:\n", + " (\n", + " outfiles,\n", + " outsites,\n", + " sites_counts,\n", + " ) = rucio_utils.get_dataset_files_replicas(\n", + " dataset,\n", + " allowlist_sites=[],\n", + " blocklist_sites=[],\n", + " regex_sites=[],\n", + " mode=\"full\", # full or first. \"full\"==all the available replicas\n", + " client=client,\n", + " )\n", + "except Exception as e:\n", + " print(f\"\\n[red bold] Exception: {e}[/]\")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "3e4fc6c2-f378-40d2-a4ea-f265b6c18887", + "metadata": {}, + "outputs": [], + "source": [ + "def print_replicas(sites_counts):\n", + " console.print(f\"[cyan]Sites availability for dataset: [red]{dataset}\")\n", + " table = Table(title=\"Available replicas\")\n", + " table.add_column(\"Index\", justify=\"center\")\n", + " table.add_column(\"Site\", justify=\"left\", style=\"cyan\", no_wrap=True)\n", + " table.add_column(\"Files\", style=\"magenta\", no_wrap=True)\n", + " table.add_column(\"Availability\", justify=\"center\")\n", + " table.row_styles = [\"dim\", \"none\"]\n", + " Nfiles = len(outfiles)\n", + " \n", + " sorted_sites = dict(\n", + " sorted(sites_counts.items(), key=lambda x: x[1], reverse=True)\n", + " )\n", + " for i, (site, stat) in enumerate(sorted_sites.items()):\n", + " table.add_row(\n", + " str(i), site, f\"{stat} / {Nfiles}\", f\"{stat*100/Nfiles:.1f}%\"\n", + " )\n", + " console.print(table)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "79c68044-dc3b-4dd5-a0d3-c3f6ddd0bea1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Sites availability for dataset: \n",
+       "/TTToSemiLeptonic_TuneCP5CR1_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2\n",
+       "/NANOAODSIM\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[36mSites availability for dataset: \u001b[0m\n", + "\u001b[31m/TTToSemiLeptonic_TuneCP5CR1_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2\u001b[0m\n", + "\u001b[31m/\u001b[0m\u001b[31mNANOAODSIM\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
                    Available replicas                    \n",
+       "┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━┓\n",
+       "┃ Index  Site                 Files      Availability ┃\n",
+       "┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━┩\n",
+       "│   0    T2_DE_DESY           294 / 294     100.0%    │\n",
+       "│   1   │ T1_DE_KIT_Disk       294 / 294 │    100.0%    │\n",
+       "│   2    T1_UK_RAL_Disk       294 / 294     100.0%    │\n",
+       "│   3   │ T1_RU_JINR_Disk      294 / 294 │    100.0%    │\n",
+       "│   4    T3_CH_PSI            294 / 294     100.0%    │\n",
+       "│   5   │ T3_KR_UOS            294 / 294 │    100.0%    │\n",
+       "│   6    T1_US_FNAL_Disk      193 / 294     65.6%     │\n",
+       "│   7   │ T2_US_Nebraska       99 / 294  │    33.7%     │\n",
+       "│   8    T1_IT_CNAF_Disk      58 / 294      19.7%     │\n",
+       "│   9   │ T2_US_Purdue         53 / 294  │    18.0%     │\n",
+       "│  10    T2_BE_IIHE           50 / 294      17.0%     │\n",
+       "│  11   │ T2_US_MIT            50 / 294  │    17.0%     │\n",
+       "│  12    T1_ES_PIC_Disk       43 / 294      14.6%     │\n",
+       "│  13   │ T2_US_Vanderbilt     40 / 294  │    13.6%     │\n",
+       "│  14    T2_BR_SPRACE         39 / 294      13.3%     │\n",
+       "│  15   │ T2_US_Florida        33 / 294  │    11.2%     │\n",
+       "│  16    T2_IT_Legnaro        28 / 294       9.5%     │\n",
+       "│  17   │ T2_US_UCSD           28 / 294  │     9.5%     │\n",
+       "│  18    T2_UA_KIPT           26 / 294       8.8%     │\n",
+       "│  19   │ T2_US_Caltech        24 / 294  │     8.2%     │\n",
+       "│  20    T2_US_Wisconsin      22 / 294       7.5%     │\n",
+       "│  21   │ T2_TR_METU           18 / 294  │     6.1%     │\n",
+       "│  22    T2_ES_CIEMAT         17 / 294       5.8%     │\n",
+       "│  23   │ T2_DE_RWTH           11 / 294  │     3.7%     │\n",
+       "│  24    T2_BR_UERJ           7 / 294        2.4%     │\n",
+       "│  25   │ T2_UK_SGrid_Bristol  3 / 294   │     1.0%     │\n",
+       "│  26    T2_ES_IFCA           2 / 294        0.7%     │\n",
+       "└───────┴─────────────────────┴───────────┴──────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3m Available replicas \u001b[0m\n", + "┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mIndex\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mSite \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mFiles \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mAvailability\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━┩\n", + "│\u001b[2m \u001b[0m\u001b[2m 0 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_DE_DESY \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m294 / 294\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 100.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 1 │\u001b[36m \u001b[0m\u001b[36mT1_DE_KIT_Disk \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m294 / 294\u001b[0m\u001b[35m \u001b[0m│ 100.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 2 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_UK_RAL_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m294 / 294\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 100.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 3 │\u001b[36m \u001b[0m\u001b[36mT1_RU_JINR_Disk \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m294 / 294\u001b[0m\u001b[35m \u001b[0m│ 100.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 4 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT3_CH_PSI \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m294 / 294\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 100.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 5 │\u001b[36m \u001b[0m\u001b[36mT3_KR_UOS \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m294 / 294\u001b[0m\u001b[35m \u001b[0m│ 100.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 6 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_US_FNAL_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m193 / 294\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 65.6% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 7 │\u001b[36m \u001b[0m\u001b[36mT2_US_Nebraska \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m99 / 294 \u001b[0m\u001b[35m \u001b[0m│ 33.7% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 8 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_IT_CNAF_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m58 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 19.7% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 9 │\u001b[36m \u001b[0m\u001b[36mT2_US_Purdue \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m53 / 294 \u001b[0m\u001b[35m \u001b[0m│ 18.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 10 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_BE_IIHE \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m50 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 17.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 11 │\u001b[36m \u001b[0m\u001b[36mT2_US_MIT \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m50 / 294 \u001b[0m\u001b[35m \u001b[0m│ 17.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 12 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_ES_PIC_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m43 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 14.6% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 13 │\u001b[36m \u001b[0m\u001b[36mT2_US_Vanderbilt \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m40 / 294 \u001b[0m\u001b[35m \u001b[0m│ 13.6% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 14 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_BR_SPRACE \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m39 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 13.3% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 15 │\u001b[36m \u001b[0m\u001b[36mT2_US_Florida \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m33 / 294 \u001b[0m\u001b[35m \u001b[0m│ 11.2% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 16 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_IT_Legnaro \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m28 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 9.5% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 17 │\u001b[36m \u001b[0m\u001b[36mT2_US_UCSD \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m28 / 294 \u001b[0m\u001b[35m \u001b[0m│ 9.5% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 18 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_UA_KIPT \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m26 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 8.8% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 19 │\u001b[36m \u001b[0m\u001b[36mT2_US_Caltech \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m24 / 294 \u001b[0m\u001b[35m \u001b[0m│ 8.2% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 20 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_US_Wisconsin \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m22 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 7.5% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 21 │\u001b[36m \u001b[0m\u001b[36mT2_TR_METU \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m18 / 294 \u001b[0m\u001b[35m \u001b[0m│ 6.1% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 22 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_ES_CIEMAT \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m17 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 5.8% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 23 │\u001b[36m \u001b[0m\u001b[36mT2_DE_RWTH \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m11 / 294 \u001b[0m\u001b[35m \u001b[0m│ 3.7% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 24 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_BR_UERJ \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m7 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 2.4% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 25 │\u001b[36m \u001b[0m\u001b[36mT2_UK_SGrid_Bristol\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m3 / 294 \u001b[0m\u001b[35m \u001b[0m│ 1.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 26 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_ES_IFCA \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m2 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 0.7% \u001b[0m\u001b[2m \u001b[0m│\n", + "└───────┴─────────────────────┴───────────┴──────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "print_replicas(sites_counts)" + ] + }, + { + "cell_type": "markdown", + "id": "c9544ceb-5949-4bd3-b997-14da4aa2d956", + "metadata": {}, + "source": [ + "### Filtering sites\n", + "Grid sites can be filtered in 3 different ways\n", + "- **allowlist**: if this list of specified, only the sites in the list are considered. No blocklist and regex are considered\n", + "- **blocklist**: if this list is specified, those sites are excluded from the replicas\n", + "- **regex_sites**: regex filter the sites to be considered, on top of the blocklist" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "1f6b586c-a8b7-40d8-a25a-b02e94f4a892", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Sites availability for dataset: \n",
+       "/TTToSemiLeptonic_TuneCP5CR1_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2\n",
+       "/NANOAODSIM\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[36mSites availability for dataset: \u001b[0m\n", + "\u001b[31m/TTToSemiLeptonic_TuneCP5CR1_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2\u001b[0m\n", + "\u001b[31m/\u001b[0m\u001b[31mNANOAODSIM\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
                  Available replicas                  \n",
+       "┏━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━┓\n",
+       "┃ Index  Site             Files      Availability ┃\n",
+       "┡━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━┩\n",
+       "│   0    T2_DE_DESY       294 / 294     100.0%    │\n",
+       "│   1   │ T1_US_FNAL_Disk  193 / 294 │    65.6%     │\n",
+       "└───────┴─────────────────┴───────────┴──────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3m Available replicas \u001b[0m\n", + "┏━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mIndex\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mSite \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mFiles \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mAvailability\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━┩\n", + "│\u001b[2m \u001b[0m\u001b[2m 0 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_DE_DESY \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m294 / 294\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 100.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 1 │\u001b[36m \u001b[0m\u001b[36mT1_US_FNAL_Disk\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m193 / 294\u001b[0m\u001b[35m \u001b[0m│ 65.6% │\n", + "└───────┴─────────────────┴───────────┴──────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Example with allowlist\n", + "try:\n", + " (\n", + " outfiles,\n", + " outsites,\n", + " sites_counts,\n", + " ) = rucio_utils.get_dataset_files_replicas(\n", + " dataset,\n", + " allowlist_sites=[\"T2_DE_DESY\", \"T1_US_FNAL_Disk\"],\n", + " blocklist_sites=[],\n", + " regex_sites=None,\n", + " mode=\"full\", # full or first. \"full\"==all the available replicas\n", + " client=client,\n", + " )\n", + "except Exception as e:\n", + " print(f\"\\n[red bold] Exception: {e}[/]\")\n", + "\n", + "print_replicas(sites_counts)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "12f7e403-67fe-42c0-a3ee-a668006b1836", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Sites availability for dataset: \n",
+       "/TTToSemiLeptonic_TuneCP5CR1_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2\n",
+       "/NANOAODSIM\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[36mSites availability for dataset: \u001b[0m\n", + "\u001b[31m/TTToSemiLeptonic_TuneCP5CR1_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2\u001b[0m\n", + "\u001b[31m/\u001b[0m\u001b[31mNANOAODSIM\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
                    Available replicas                    \n",
+       "┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━┓\n",
+       "┃ Index  Site                 Files      Availability ┃\n",
+       "┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━┩\n",
+       "│   0    T1_DE_KIT_Disk       294 / 294     100.0%    │\n",
+       "│   1   │ T1_UK_RAL_Disk       294 / 294 │    100.0%    │\n",
+       "│   2    T1_RU_JINR_Disk      294 / 294     100.0%    │\n",
+       "│   3   │ T3_KR_UOS            294 / 294 │    100.0%    │\n",
+       "│   4    T1_US_FNAL_Disk      193 / 294     65.6%     │\n",
+       "│   5   │ T2_US_Nebraska       99 / 294  │    33.7%     │\n",
+       "│   6    T1_IT_CNAF_Disk      58 / 294      19.7%     │\n",
+       "│   7   │ T2_US_Purdue         53 / 294  │    18.0%     │\n",
+       "│   8    T2_BE_IIHE           50 / 294      17.0%     │\n",
+       "│   9   │ T2_US_MIT            50 / 294  │    17.0%     │\n",
+       "│  10    T1_ES_PIC_Disk       43 / 294      14.6%     │\n",
+       "│  11   │ T2_US_Vanderbilt     40 / 294  │    13.6%     │\n",
+       "│  12    T2_BR_SPRACE         39 / 294      13.3%     │\n",
+       "│  13   │ T2_US_Florida        33 / 294  │    11.2%     │\n",
+       "│  14    T2_IT_Legnaro        28 / 294       9.5%     │\n",
+       "│  15   │ T2_US_UCSD           28 / 294  │     9.5%     │\n",
+       "│  16    T2_UA_KIPT           26 / 294       8.8%     │\n",
+       "│  17   │ T2_US_Caltech        24 / 294  │     8.2%     │\n",
+       "│  18    T2_US_Wisconsin      22 / 294       7.5%     │\n",
+       "│  19   │ T2_TR_METU           18 / 294  │     6.1%     │\n",
+       "│  20    T2_ES_CIEMAT         17 / 294       5.8%     │\n",
+       "│  21   │ T2_DE_RWTH           11 / 294  │     3.7%     │\n",
+       "│  22    T2_BR_UERJ           7 / 294        2.4%     │\n",
+       "│  23   │ T2_UK_SGrid_Bristol  3 / 294   │     1.0%     │\n",
+       "│  24    T2_ES_IFCA           2 / 294        0.7%     │\n",
+       "└───────┴─────────────────────┴───────────┴──────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3m Available replicas \u001b[0m\n", + "┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mIndex\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mSite \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mFiles \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mAvailability\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━┩\n", + "│\u001b[2m \u001b[0m\u001b[2m 0 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_DE_KIT_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m294 / 294\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 100.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 1 │\u001b[36m \u001b[0m\u001b[36mT1_UK_RAL_Disk \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m294 / 294\u001b[0m\u001b[35m \u001b[0m│ 100.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 2 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_RU_JINR_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m294 / 294\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 100.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 3 │\u001b[36m \u001b[0m\u001b[36mT3_KR_UOS \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m294 / 294\u001b[0m\u001b[35m \u001b[0m│ 100.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 4 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_US_FNAL_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m193 / 294\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 65.6% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 5 │\u001b[36m \u001b[0m\u001b[36mT2_US_Nebraska \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m99 / 294 \u001b[0m\u001b[35m \u001b[0m│ 33.7% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 6 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_IT_CNAF_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m58 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 19.7% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 7 │\u001b[36m \u001b[0m\u001b[36mT2_US_Purdue \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m53 / 294 \u001b[0m\u001b[35m \u001b[0m│ 18.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 8 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_BE_IIHE \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m50 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 17.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 9 │\u001b[36m \u001b[0m\u001b[36mT2_US_MIT \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m50 / 294 \u001b[0m\u001b[35m \u001b[0m│ 17.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 10 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_ES_PIC_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m43 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 14.6% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 11 │\u001b[36m \u001b[0m\u001b[36mT2_US_Vanderbilt \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m40 / 294 \u001b[0m\u001b[35m \u001b[0m│ 13.6% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 12 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_BR_SPRACE \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m39 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 13.3% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 13 │\u001b[36m \u001b[0m\u001b[36mT2_US_Florida \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m33 / 294 \u001b[0m\u001b[35m \u001b[0m│ 11.2% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 14 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_IT_Legnaro \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m28 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 9.5% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 15 │\u001b[36m \u001b[0m\u001b[36mT2_US_UCSD \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m28 / 294 \u001b[0m\u001b[35m \u001b[0m│ 9.5% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 16 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_UA_KIPT \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m26 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 8.8% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 17 │\u001b[36m \u001b[0m\u001b[36mT2_US_Caltech \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m24 / 294 \u001b[0m\u001b[35m \u001b[0m│ 8.2% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 18 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_US_Wisconsin \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m22 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 7.5% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 19 │\u001b[36m \u001b[0m\u001b[36mT2_TR_METU \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m18 / 294 \u001b[0m\u001b[35m \u001b[0m│ 6.1% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 20 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_ES_CIEMAT \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m17 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 5.8% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 21 │\u001b[36m \u001b[0m\u001b[36mT2_DE_RWTH \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m11 / 294 \u001b[0m\u001b[35m \u001b[0m│ 3.7% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 22 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_BR_UERJ \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m7 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 2.4% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 23 │\u001b[36m \u001b[0m\u001b[36mT2_UK_SGrid_Bristol\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m3 / 294 \u001b[0m\u001b[35m \u001b[0m│ 1.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 24 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_ES_IFCA \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m2 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 0.7% \u001b[0m\u001b[2m \u001b[0m│\n", + "└───────┴─────────────────────┴───────────┴──────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Example with blocklist\n", + "try:\n", + " (\n", + " outfiles,\n", + " outsites,\n", + " sites_counts,\n", + " ) = rucio_utils.get_dataset_files_replicas(\n", + " dataset,\n", + " allowlist_sites=[],\n", + " blocklist_sites=[\"T2_DE_DESY\", \"T3_CH_PSI\"],\n", + " regex_sites=None,\n", + " mode=\"full\", # full or first. \"full\"==all the available replicas\n", + " client=client,\n", + " )\n", + "except Exception as e:\n", + " print(f\"\\n[red bold] Exception: {e}[/]\")\n", + "\n", + "print_replicas(sites_counts)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "f5dafcc2-c32e-4e33-9878-183a8e476b73", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Sites availability for dataset: \n",
+       "/TTToSemiLeptonic_TuneCP5CR1_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2\n",
+       "/NANOAODSIM\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[36mSites availability for dataset: \u001b[0m\n", + "\u001b[31m/TTToSemiLeptonic_TuneCP5CR1_13TeV-powheg-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2\u001b[0m\n", + "\u001b[31m/\u001b[0m\u001b[31mNANOAODSIM\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
                    Available replicas                    \n",
+       "┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━┓\n",
+       "┃ Index  Site                 Files      Availability ┃\n",
+       "┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━┩\n",
+       "│   0    T2_DE_DESY           294 / 294     100.0%    │\n",
+       "│   1   │ T1_DE_KIT_Disk       294 / 294 │    100.0%    │\n",
+       "│   2    T1_UK_RAL_Disk       294 / 294     100.0%    │\n",
+       "│   3   │ T3_CH_PSI            294 / 294 │    100.0%    │\n",
+       "│   4    T1_IT_CNAF_Disk      58 / 294      19.7%     │\n",
+       "│   5   │ T2_BE_IIHE           50 / 294  │    17.0%     │\n",
+       "│   6    T1_ES_PIC_Disk       43 / 294      14.6%     │\n",
+       "│   7   │ T2_IT_Legnaro        28 / 294  │     9.5%     │\n",
+       "│   8    T2_ES_CIEMAT         17 / 294       5.8%     │\n",
+       "│   9   │ T2_DE_RWTH           11 / 294  │     3.7%     │\n",
+       "│  10    T2_UK_SGrid_Bristol  3 / 294        1.0%     │\n",
+       "│  11   │ T2_ES_IFCA           2 / 294   │     0.7%     │\n",
+       "└───────┴─────────────────────┴───────────┴──────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3m Available replicas \u001b[0m\n", + "┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mIndex\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mSite \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mFiles \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mAvailability\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━┩\n", + "│\u001b[2m \u001b[0m\u001b[2m 0 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_DE_DESY \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m294 / 294\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 100.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 1 │\u001b[36m \u001b[0m\u001b[36mT1_DE_KIT_Disk \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m294 / 294\u001b[0m\u001b[35m \u001b[0m│ 100.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 2 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_UK_RAL_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m294 / 294\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 100.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 3 │\u001b[36m \u001b[0m\u001b[36mT3_CH_PSI \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m294 / 294\u001b[0m\u001b[35m \u001b[0m│ 100.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 4 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_IT_CNAF_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m58 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 19.7% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 5 │\u001b[36m \u001b[0m\u001b[36mT2_BE_IIHE \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m50 / 294 \u001b[0m\u001b[35m \u001b[0m│ 17.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 6 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_ES_PIC_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m43 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 14.6% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 7 │\u001b[36m \u001b[0m\u001b[36mT2_IT_Legnaro \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m28 / 294 \u001b[0m\u001b[35m \u001b[0m│ 9.5% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 8 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_ES_CIEMAT \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m17 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 5.8% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 9 │\u001b[36m \u001b[0m\u001b[36mT2_DE_RWTH \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m11 / 294 \u001b[0m\u001b[35m \u001b[0m│ 3.7% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 10 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_UK_SGrid_Bristol\u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m3 / 294 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 1.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 11 │\u001b[36m \u001b[0m\u001b[36mT2_ES_IFCA \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m2 / 294 \u001b[0m\u001b[35m \u001b[0m│ 0.7% │\n", + "└───────┴─────────────────────┴───────────┴──────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Example with regex\n", + "try:\n", + " (\n", + " outfiles,\n", + " outsites,\n", + " sites_counts,\n", + " ) = rucio_utils.get_dataset_files_replicas(\n", + " dataset,\n", + " allowlist_sites=[],\n", + " blocklist_sites=[],\n", + " regex_sites= r\"T[123]_(FR|IT|BE|CH|DE|ES|UK)_\\w+\",\n", + " mode=\"full\", # full or first. \"full\"==all the available replicas\n", + " client=client,\n", + " )\n", + "except Exception as e:\n", + " print(f\"\\n[red bold] Exception: {e}[/]\")\n", + "\n", + "print_replicas(sites_counts)" + ] + }, + { + "cell_type": "markdown", + "id": "0b805dde-dd38-46a4-92ad-55ab2e4a4876", + "metadata": {}, + "source": [ + "## Using the DataDiscoveryCLI\n", + "Manipulating the dataset query and replicas is simplified by the `DataDiscoveryCLI` class in `dataset_query` module." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "39846193-d6f2-4de5-ba42-a089d1b0786d", + "metadata": {}, + "outputs": [], + "source": [ + "from coffea.dataset_tools import rucio_utils\n", + "from coffea.dataset_tools.dataset_query import print_dataset_query\n", + "from rich.console import Console\n", + "from coffea.dataset_tools.dataset_query import DataDiscoveryCLI" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "eaba3e39-c95a-4282-83e2-3aadf748adca", + "metadata": {}, + "outputs": [], + "source": [ + "dataset_definition = {\n", + " \"/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL18NanoAODv9-106X*/NANOAODSIM\": {\"short_name\": \"ZJets\",\n", + " \"metadata\": {\"xsec\": 100.0,\"isMC\":True}},\n", + " \"/SingleMuon/Run2018C-UL20*_MiniAODv2_NanoAODv9_GT36*/NANOAOD\": {\"short_name\": \"SingleMuon\", \"metadata\": {\"isMC\":False}}\n", + "}\n" + ] + }, + { + "cell_type": "markdown", + "id": "ecb84b02-b85f-4037-a08d-cce001bc35c7", + "metadata": {}, + "source": [ + "The dataset definition is passed to a `DataDiscoveryCLI` to automatically query rucio and get replicas" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "716a6c0c-ea07-498a-a010-f9e7f87ba3a3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
 Querying rucio for replicas: /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[32m⠇\u001b[0m Querying rucio for replicas: \u001b[1;31m/SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+      ],
+      "text/plain": []
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "
Sites availability for dataset: /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[36mSites availability for dataset: \u001b[0m\u001b[31m/SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\u001b[31mNANOAOD\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
                   Available replicas                   \n",
+       "┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┓\n",
+       "┃ Index  Site                 Files    Availability ┃\n",
+       "┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━┩\n",
+       "│   0    T2_DE_DESY           67 / 67     100.0%    │\n",
+       "│   1   │ T3_KR_KISTI          67 / 67 │    100.0%    │\n",
+       "│   2    T2_TW_NCHC           67 / 67     100.0%    │\n",
+       "│   3   │ T2_BE_IIHE           67 / 67 │    100.0%    │\n",
+       "│   4    T2_US_Purdue         67 / 67     100.0%    │\n",
+       "│   5   │ T2_ES_CIEMAT         67 / 67 │    100.0%    │\n",
+       "│   6    T3_FR_IPNL           67 / 67     100.0%    │\n",
+       "│   7   │ T1_US_FNAL_Disk      61 / 67 │    91.0%     │\n",
+       "│   8    T2_UK_London_IC      39 / 67     58.2%     │\n",
+       "│   9   │ T1_FR_CCIN2P3_Disk   38 / 67 │    56.7%     │\n",
+       "│  10    T2_US_Caltech        26 / 67     38.8%     │\n",
+       "│  11   │ T2_CH_CERN           25 / 67 │    37.3%     │\n",
+       "│  12    T2_DE_RWTH           22 / 67     32.8%     │\n",
+       "│  13   │ T1_IT_CNAF_Disk      20 / 67 │    29.9%     │\n",
+       "│  14    T2_US_Wisconsin      16 / 67     23.9%     │\n",
+       "│  15   │ T2_US_Florida        16 / 67 │    23.9%     │\n",
+       "│  16    T2_US_Nebraska       13 / 67     19.4%     │\n",
+       "│  17   │ T2_TR_METU           11 / 67 │    16.4%     │\n",
+       "│  18    T1_DE_KIT_Disk       11 / 67     16.4%     │\n",
+       "│  19   │ T2_UK_SGrid_RALPP    6 / 67  │     9.0%     │\n",
+       "│  20    T2_IT_Legnaro        6 / 67       9.0%     │\n",
+       "│  21   │ T2_ES_IFCA           4 / 67  │     6.0%     │\n",
+       "│  22    T2_FR_IPHC           2 / 67       3.0%     │\n",
+       "│  23   │ T2_UK_London_Brunel  1 / 67  │     1.5%     │\n",
+       "└───────┴─────────────────────┴─────────┴──────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3m Available replicas \u001b[0m\n", + "┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mIndex\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mSite \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mFiles \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mAvailability\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━┩\n", + "│\u001b[2m \u001b[0m\u001b[2m 0 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_DE_DESY \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m67 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 100.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 1 │\u001b[36m \u001b[0m\u001b[36mT3_KR_KISTI \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m67 / 67\u001b[0m\u001b[35m \u001b[0m│ 100.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 2 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_TW_NCHC \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m67 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 100.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 3 │\u001b[36m \u001b[0m\u001b[36mT2_BE_IIHE \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m67 / 67\u001b[0m\u001b[35m \u001b[0m│ 100.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 4 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_US_Purdue \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m67 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 100.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 5 │\u001b[36m \u001b[0m\u001b[36mT2_ES_CIEMAT \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m67 / 67\u001b[0m\u001b[35m \u001b[0m│ 100.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 6 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT3_FR_IPNL \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m67 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 100.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 7 │\u001b[36m \u001b[0m\u001b[36mT1_US_FNAL_Disk \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m61 / 67\u001b[0m\u001b[35m \u001b[0m│ 91.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 8 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_UK_London_IC \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m39 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 58.2% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 9 │\u001b[36m \u001b[0m\u001b[36mT1_FR_CCIN2P3_Disk \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m38 / 67\u001b[0m\u001b[35m \u001b[0m│ 56.7% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 10 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_US_Caltech \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m26 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 38.8% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 11 │\u001b[36m \u001b[0m\u001b[36mT2_CH_CERN \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m25 / 67\u001b[0m\u001b[35m \u001b[0m│ 37.3% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 12 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_DE_RWTH \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m22 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 32.8% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 13 │\u001b[36m \u001b[0m\u001b[36mT1_IT_CNAF_Disk \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m20 / 67\u001b[0m\u001b[35m \u001b[0m│ 29.9% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 14 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_US_Wisconsin \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m16 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 23.9% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 15 │\u001b[36m \u001b[0m\u001b[36mT2_US_Florida \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m16 / 67\u001b[0m\u001b[35m \u001b[0m│ 23.9% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 16 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_US_Nebraska \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m13 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 19.4% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 17 │\u001b[36m \u001b[0m\u001b[36mT2_TR_METU \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m11 / 67\u001b[0m\u001b[35m \u001b[0m│ 16.4% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 18 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_DE_KIT_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m11 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 16.4% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 19 │\u001b[36m \u001b[0m\u001b[36mT2_UK_SGrid_RALPP \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m6 / 67 \u001b[0m\u001b[35m \u001b[0m│ 9.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 20 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_IT_Legnaro \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m6 / 67 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 9.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 21 │\u001b[36m \u001b[0m\u001b[36mT2_ES_IFCA \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m4 / 67 \u001b[0m\u001b[35m \u001b[0m│ 6.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 22 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_FR_IPHC \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m2 / 67 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 3.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 23 │\u001b[36m \u001b[0m\u001b[36mT2_UK_London_Brunel\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m1 / 67 \u001b[0m\u001b[35m \u001b[0m│ 1.5% │\n", + "└───────┴─────────────────────┴─────────┴──────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Replicas for /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD\n",
+       "├── T2_DE_DESY\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/0144EC47-BFA3-EA43-BF05-BD4248ED6031.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/2747DEFE-A247-1F42-B0EF-E7B7F1D3FCD6.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/2DA9130E-8423-304C-9902-1E42CD72E658.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/63047CC0-38C6-F74C-9A00-0DF9050F7CF1.root\n",
+       "│   └── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│       36-v1/2520000/8369B0EA-E4CC-AC4D-BD3F-0679B3310E09.root\n",
+       "├── T3_KR_KISTI\n",
+       "│   ├── root://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\n",
+       "│   │   -v1/2520000/0C9615C1-7EE6-CD44-8FC0-04F63B2C16FD.root\n",
+       "│   ├── root://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\n",
+       "│   │   -v1/2520000/152C304A-97AD-1649-BCB6-3EA0CCD0DD33.root\n",
+       "│   ├── root://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\n",
+       "│   │   -v1/2520000/1CEB718A-7DC1-C74A-A7BE-A3C8D9FA785A.root\n",
+       "│   ├── root://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\n",
+       "│   │   -v1/2520000/51515E3C-C640-3A4C-A16C-DC267FD142BF.root\n",
+       "│   ├── root://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\n",
+       "│   │   -v1/2520000/7DEA3718-B7BC-EE42-A8BE-11C62BB8536D.root\n",
+       "│   ├── root://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\n",
+       "│   │   -v1/2520000/81CEA7BA-9E66-BC4F-A96F-32642D59B653.root\n",
+       "│   └── root://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\n",
+       "│       -v1/2520000/C4F476DA-3D00-334B-867C-7E12F94EE3AB.root\n",
+       "├── T2_ES_CIEMAT\n",
+       "│   ├── root://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1\n",
+       "│   │   /2520000/12FAE9F1-7139-924C-A8DE-9699A00FC994.root\n",
+       "│   ├── root://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1\n",
+       "│   │   /2520000/1DD0FAC6-3087-E44E-ABCB-8AF812C1310D.root\n",
+       "│   ├── root://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1\n",
+       "│   │   /2520000/3FE5B677-9AB3-0245-A1CF-4B320592F18F.root\n",
+       "│   ├── root://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1\n",
+       "│   │   /2520000/74A75B73-E5B8-C942-BBC9-1DDDD7F752FB.root\n",
+       "│   ├── root://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1\n",
+       "│   │   /2520000/8C8690F8-4FEE-1047-85F4-29E414B3D12C.root\n",
+       "│   └── root://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1\n",
+       "│       /2520000/DA47C0B6-BCAB-C54C-A6BF-B0A64E88E3D4.root\n",
+       "├── T1_FR_CCIN2P3_Disk\n",
+       "│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\n",
+       "│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/26FC8C40-EA29-804C-B17D-84FB1C6BC505.root\n",
+       "│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\n",
+       "│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/2D58C3FE-512A-1F48-9AEB-6F80379B8F4A.root\n",
+       "│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\n",
+       "│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/30A3A1AB-2F27-C84E-9437-6BB3881F6856.root\n",
+       "│   └── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\n",
+       "│       18_MiniAODv2_NanoAODv9_GT36-v1/2520000/A350E2E4-705C-2C4D-9B11-3436056EEBE7.root\n",
+       "├── T2_BE_IIHE\n",
+       "│   ├── root://maite.iihe.ac.be:1095//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/252\n",
+       "│   │   0000/365F32F6-F971-1B4D-8E9D-C0ACD74FFB03.root\n",
+       "│   ├── root://maite.iihe.ac.be:1095//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/252\n",
+       "│   │   0000/410C32AB-DEB5-404F-BC6B-92E8F560563F.root\n",
+       "│   ├── root://maite.iihe.ac.be:1095//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/252\n",
+       "│   │   0000/6809B5E3-6DE6-1541-AE4C-E1804C877EDE.root\n",
+       "│   ├── root://maite.iihe.ac.be:1095//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/252\n",
+       "│   │   0000/78AC6A39-C303-EB44-9264-71819CC70FCC.root\n",
+       "│   └── root://maite.iihe.ac.be:1095//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/252\n",
+       "│       0000/7CCCB2C3-F210-2C42-85DF-AA00293FACFB.root\n",
+       "├── T2_US_Purdue\n",
+       "│   ├── root://eos.cms.rcac.purdue.edu///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\n",
+       "│   │   2520000/37312354-59AB-E44B-BC94-CF424D4B7DDB.root\n",
+       "│   ├── root://eos.cms.rcac.purdue.edu///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\n",
+       "│   │   2520000/42DC0F42-82E8-BE47-B04D-544B67274829.root\n",
+       "│   ├── root://eos.cms.rcac.purdue.edu///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\n",
+       "│   │   2520000/D7875684-9F26-084E-9B2B-5E9BB5D353E8.root\n",
+       "│   ├── root://eos.cms.rcac.purdue.edu///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\n",
+       "│   │   2520000/FAF0C67B-A8B4-8A4F-83B1-E43675CE9630.root\n",
+       "│   └── root://eos.cms.rcac.purdue.edu///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\n",
+       "│       2520000/FE5EEFA5-C07A-5C44-B66D-5B31BE02C7D3.root\n",
+       "├── T2_US_Wisconsin\n",
+       "│   ├── root://cmsxrootd.hep.wisc.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\n",
+       "│   │   -v1/2520000/39D52C69-2035-A24B-A413-40976993651D.root\n",
+       "│   └── root://cmsxrootd.hep.wisc.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\n",
+       "│       -v1/2520000/FCAF4145-8E3F-2142-BDCB-5E276523B592.root\n",
+       "├── T2_TW_NCHC\n",
+       "│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\n",
+       "│   │   1/2520000/459261DD-4441-6047-9FF2-1EDE468452C9.root\n",
+       "│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\n",
+       "│   │   1/2520000/6DDF448B-4605-5C41-9711-1C73EC5F01D3.root\n",
+       "│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\n",
+       "│   │   1/2520000/7B14228A-5331-DF4E-B677-7B8AA281D460.root\n",
+       "│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\n",
+       "│   │   1/2520000/7B181B92-AA2C-1E44-86FE-B074D359BBB3.root\n",
+       "│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\n",
+       "│   │   1/2520000/8223C4A3-D4BD-6A4B-A513-54B6668C7122.root\n",
+       "│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\n",
+       "│   │   1/2520000/A74EFE57-BAD2-C143-B8DC-817CE4F96FD7.root\n",
+       "│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\n",
+       "│   │   1/2520000/AE014F55-84BE-E84E-B447-0B614070CD17.root\n",
+       "│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\n",
+       "│   │   1/2520000/BCBF89A2-329C-744B-A38F-139EA8F94007.root\n",
+       "│   ├── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\n",
+       "│   │   1/2520000/D8D41BBC-D514-D342-A514-CCF48575D184.root\n",
+       "│   └── root://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\n",
+       "│       1/2520000/F1B3977A-E777-EC4D-8FC7-981FE4ED5E0C.root\n",
+       "├── T2_UK_London_IC\n",
+       "│   ├── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\n",
+       "│   │   OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/59DA0585-BD57-CE49-A15E-CDBAC5473EDE.root\n",
+       "│   ├── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\n",
+       "│   │   OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/F16A9138-7563-E540-B6AD-8A8A688B3830.root\n",
+       "│   └── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\n",
+       "│       OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/FE3D79A6-27D4-8948-A89B-2F966C5B29D4.root\n",
+       "├── T1_US_FNAL_Disk\n",
+       "│   ├── root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\n",
+       "│   │   Dv9_GT36-v1/2520000/62789325-3C0B-FC4D-B578-B41A396399E4.root\n",
+       "│   ├── root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\n",
+       "│   │   Dv9_GT36-v1/2520000/6EAA5EDB-0DB3-6E40-87DC-7AB582295D29.root\n",
+       "│   ├── root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\n",
+       "│   │   Dv9_GT36-v1/2520000/A59D511A-A419-714F-8EE1-8B8BAFEC04D5.root\n",
+       "│   ├── root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\n",
+       "│   │   Dv9_GT36-v1/2520000/B78A9B75-3B32-CF4E-A144-375189CF48AE.root\n",
+       "│   ├── root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\n",
+       "│   │   Dv9_GT36-v1/2520000/B9E9087C-255C-C24D-A733-FB9291DC7C3C.root\n",
+       "│   ├── root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\n",
+       "│   │   Dv9_GT36-v1/2520000/CDD2CDF9-72D0-4045-B28F-89002077FB89.root\n",
+       "│   └── root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\n",
+       "│       Dv9_GT36-v1/2520000/ED95384D-9D3D-AE45-8425-C4C080E691C5.root\n",
+       "├── T1_IT_CNAF_Disk\n",
+       "│   └── root://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\n",
+       "│       2520000/648ECD9C-8AAA-BB46-8683-C8987CCC73B9.root\n",
+       "├── T2_US_Nebraska\n",
+       "│   ├── root://xrootd-local.unl.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\n",
+       "│   │   1/2520000/69ABD79C-C684-8244-9F0D-153C6B8C2D9C.root\n",
+       "│   ├── root://xrootd-local.unl.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\n",
+       "│   │   1/2520000/AB8DD69D-A522-D44C-BB9C-209623F7D41A.root\n",
+       "│   └── root://xrootd-local.unl.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\n",
+       "│       1/2520000/B3487FE0-B172-AD47-A13A-388C0A9BF93F.root\n",
+       "├── T2_IT_Legnaro\n",
+       "│   └── root://t2-xrdcms.lnl.infn.it:7070///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-\n",
+       "│       v1/2520000/B1B449CE-5952-8347-A9A7-35FE231D0C72.root\n",
+       "├── T3_FR_IPNL\n",
+       "│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│   │   Dv2_NanoAODv9_GT36-v1/2520000/BA02D468-A8CE-4F49-884F-F836BB481AD5.root\n",
+       "│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│   │   Dv2_NanoAODv9_GT36-v1/2520000/BAAA6E00-7AC3-9947-9262-D9833D3A8B19.root\n",
+       "│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│   │   Dv2_NanoAODv9_GT36-v1/2520000/CBD43A1E-AE2F-0B4D-A642-29FB2E9EB33B.root\n",
+       "│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│   │   Dv2_NanoAODv9_GT36-v1/2520000/ECD4877E-707B-EA43-A38B-D1B700FBDE79.root\n",
+       "│   └── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│       Dv2_NanoAODv9_GT36-v1/2520000/F09135D8-FCBE-AF40-BCE8-03A529C5C87F.root\n",
+       "├── T2_DE_RWTH\n",
+       "│   └── root://grid-cms-xrootd.physik.rwth-aachen.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2\n",
+       "│       _NanoAODv9_GT36-v1/2520000/D40D1285-B075-D446-B1BF-86A463EF6993.root\n",
+       "├── T2_TR_METU\n",
+       "│   └── root://eymir.grid.metu.edu.tr//dpm/grid.metu.edu.tr/home/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018\n",
+       "│       _MiniAODv2_NanoAODv9_GT36-v1/2520000/F34F4F00-3370-EF4D-AF44-39E474E6530F.root\n",
+       "└── T2_US_Florida\n",
+       "    └── root://cmsio2.rc.ufl.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\n",
+       "        520000/F6E44EA5-F4C6-E746-AD43-7A263F1E316E.root\n",
+       "
\n" + ], + "text/plain": [ + "Replicas for \u001b[32m/SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD\u001b[0m\n", + "├── \u001b[32mT2_DE_DESY\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/0144EC47-BFA3-EA43-BF05-BD4248ED6031.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/2747DEFE-A247-1F42-B0EF-E7B7F1D3FCD6.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/2DA9130E-8423-304C-9902-1E42CD72E658.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/63047CC0-38C6-F74C-9A00-0DF9050F7CF1.root\u001b[0m\n", + "│ └── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ \u001b[36m36-v1/2520000/8369B0EA-E4CC-AC4D-BD3F-0679B3310E09.root\u001b[0m\n", + "├── \u001b[32mT3_KR_KISTI\u001b[0m\n", + "│ ├── \u001b[36mroot://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\u001b[0m\n", + "│ │ \u001b[36m-v1/2520000/0C9615C1-7EE6-CD44-8FC0-04F63B2C16FD.root\u001b[0m\n", + "│ ├── \u001b[36mroot://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\u001b[0m\n", + "│ │ \u001b[36m-v1/2520000/152C304A-97AD-1649-BCB6-3EA0CCD0DD33.root\u001b[0m\n", + "│ ├── \u001b[36mroot://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\u001b[0m\n", + "│ │ \u001b[36m-v1/2520000/1CEB718A-7DC1-C74A-A7BE-A3C8D9FA785A.root\u001b[0m\n", + "│ ├── \u001b[36mroot://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\u001b[0m\n", + "│ │ \u001b[36m-v1/2520000/51515E3C-C640-3A4C-A16C-DC267FD142BF.root\u001b[0m\n", + "│ ├── \u001b[36mroot://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\u001b[0m\n", + "│ │ \u001b[36m-v1/2520000/7DEA3718-B7BC-EE42-A8BE-11C62BB8536D.root\u001b[0m\n", + "│ ├── \u001b[36mroot://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\u001b[0m\n", + "│ │ \u001b[36m-v1/2520000/81CEA7BA-9E66-BC4F-A96F-32642D59B653.root\u001b[0m\n", + "│ └── \u001b[36mroot://cms-xrdr.sdfarm.kr:1094//xrd//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\u001b[0m\n", + "│ \u001b[36m-v1/2520000/C4F476DA-3D00-334B-867C-7E12F94EE3AB.root\u001b[0m\n", + "├── \u001b[32mT2_ES_CIEMAT\u001b[0m\n", + "│ ├── \u001b[36mroot://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1\u001b[0m\n", + "│ │ \u001b[36m/2520000/12FAE9F1-7139-924C-A8DE-9699A00FC994.root\u001b[0m\n", + "│ ├── \u001b[36mroot://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1\u001b[0m\n", + "│ │ \u001b[36m/2520000/1DD0FAC6-3087-E44E-ABCB-8AF812C1310D.root\u001b[0m\n", + "│ ├── \u001b[36mroot://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1\u001b[0m\n", + "│ │ \u001b[36m/2520000/3FE5B677-9AB3-0245-A1CF-4B320592F18F.root\u001b[0m\n", + "│ ├── \u001b[36mroot://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1\u001b[0m\n", + "│ │ \u001b[36m/2520000/74A75B73-E5B8-C942-BBC9-1DDDD7F752FB.root\u001b[0m\n", + "│ ├── \u001b[36mroot://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1\u001b[0m\n", + "│ │ \u001b[36m/2520000/8C8690F8-4FEE-1047-85F4-29E414B3D12C.root\u001b[0m\n", + "│ └── \u001b[36mroot://gaexrdoor.ciemat.es:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1\u001b[0m\n", + "│ \u001b[36m/2520000/DA47C0B6-BCAB-C54C-A6BF-B0A64E88E3D4.root\u001b[0m\n", + "├── \u001b[32mT1_FR_CCIN2P3_Disk\u001b[0m\n", + "│ ├── \u001b[36mroot://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\u001b[0m\n", + "│ │ \u001b[36m18_MiniAODv2_NanoAODv9_GT36-v1/2520000/26FC8C40-EA29-804C-B17D-84FB1C6BC505.root\u001b[0m\n", + "│ ├── \u001b[36mroot://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\u001b[0m\n", + "│ │ \u001b[36m18_MiniAODv2_NanoAODv9_GT36-v1/2520000/2D58C3FE-512A-1F48-9AEB-6F80379B8F4A.root\u001b[0m\n", + "│ ├── \u001b[36mroot://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\u001b[0m\n", + "│ │ \u001b[36m18_MiniAODv2_NanoAODv9_GT36-v1/2520000/30A3A1AB-2F27-C84E-9437-6BB3881F6856.root\u001b[0m\n", + "│ └── \u001b[36mroot://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\u001b[0m\n", + "│ \u001b[36m18_MiniAODv2_NanoAODv9_GT36-v1/2520000/A350E2E4-705C-2C4D-9B11-3436056EEBE7.root\u001b[0m\n", + "├── \u001b[32mT2_BE_IIHE\u001b[0m\n", + "│ ├── \u001b[36mroot://maite.iihe.ac.be:1095//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/252\u001b[0m\n", + "│ │ \u001b[36m0000/365F32F6-F971-1B4D-8E9D-C0ACD74FFB03.root\u001b[0m\n", + "│ ├── \u001b[36mroot://maite.iihe.ac.be:1095//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/252\u001b[0m\n", + "│ │ \u001b[36m0000/410C32AB-DEB5-404F-BC6B-92E8F560563F.root\u001b[0m\n", + "│ ├── \u001b[36mroot://maite.iihe.ac.be:1095//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/252\u001b[0m\n", + "│ │ \u001b[36m0000/6809B5E3-6DE6-1541-AE4C-E1804C877EDE.root\u001b[0m\n", + "│ ├── \u001b[36mroot://maite.iihe.ac.be:1095//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/252\u001b[0m\n", + "│ │ \u001b[36m0000/78AC6A39-C303-EB44-9264-71819CC70FCC.root\u001b[0m\n", + "│ └── \u001b[36mroot://maite.iihe.ac.be:1095//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/252\u001b[0m\n", + "│ \u001b[36m0000/7CCCB2C3-F210-2C42-85DF-AA00293FACFB.root\u001b[0m\n", + "├── \u001b[32mT2_US_Purdue\u001b[0m\n", + "│ ├── \u001b[36mroot://eos.cms.rcac.purdue.edu///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\n", + "│ │ \u001b[36m2520000/37312354-59AB-E44B-BC94-CF424D4B7DDB.root\u001b[0m\n", + "│ ├── \u001b[36mroot://eos.cms.rcac.purdue.edu///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\n", + "│ │ \u001b[36m2520000/42DC0F42-82E8-BE47-B04D-544B67274829.root\u001b[0m\n", + "│ ├── \u001b[36mroot://eos.cms.rcac.purdue.edu///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\n", + "│ │ \u001b[36m2520000/D7875684-9F26-084E-9B2B-5E9BB5D353E8.root\u001b[0m\n", + "│ ├── \u001b[36mroot://eos.cms.rcac.purdue.edu///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\n", + "│ │ \u001b[36m2520000/FAF0C67B-A8B4-8A4F-83B1-E43675CE9630.root\u001b[0m\n", + "│ └── \u001b[36mroot://eos.cms.rcac.purdue.edu///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\n", + "│ \u001b[36m2520000/FE5EEFA5-C07A-5C44-B66D-5B31BE02C7D3.root\u001b[0m\n", + "├── \u001b[32mT2_US_Wisconsin\u001b[0m\n", + "│ ├── \u001b[36mroot://cmsxrootd.hep.wisc.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\u001b[0m\n", + "│ │ \u001b[36m-v1/2520000/39D52C69-2035-A24B-A413-40976993651D.root\u001b[0m\n", + "│ └── \u001b[36mroot://cmsxrootd.hep.wisc.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36\u001b[0m\n", + "│ \u001b[36m-v1/2520000/FCAF4145-8E3F-2142-BDCB-5E276523B592.root\u001b[0m\n", + "├── \u001b[32mT2_TW_NCHC\u001b[0m\n", + "│ ├── \u001b[36mroot://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\u001b[0m\n", + "│ │ \u001b[36m1/2520000/459261DD-4441-6047-9FF2-1EDE468452C9.root\u001b[0m\n", + "│ ├── \u001b[36mroot://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\u001b[0m\n", + "│ │ \u001b[36m1/2520000/6DDF448B-4605-5C41-9711-1C73EC5F01D3.root\u001b[0m\n", + "│ ├── \u001b[36mroot://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\u001b[0m\n", + "│ │ \u001b[36m1/2520000/7B14228A-5331-DF4E-B677-7B8AA281D460.root\u001b[0m\n", + "│ ├── \u001b[36mroot://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\u001b[0m\n", + "│ │ \u001b[36m1/2520000/7B181B92-AA2C-1E44-86FE-B074D359BBB3.root\u001b[0m\n", + "│ ├── \u001b[36mroot://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\u001b[0m\n", + "│ │ \u001b[36m1/2520000/8223C4A3-D4BD-6A4B-A513-54B6668C7122.root\u001b[0m\n", + "│ ├── \u001b[36mroot://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\u001b[0m\n", + "│ │ \u001b[36m1/2520000/A74EFE57-BAD2-C143-B8DC-817CE4F96FD7.root\u001b[0m\n", + "│ ├── \u001b[36mroot://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\u001b[0m\n", + "│ │ \u001b[36m1/2520000/AE014F55-84BE-E84E-B447-0B614070CD17.root\u001b[0m\n", + "│ ├── \u001b[36mroot://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\u001b[0m\n", + "│ │ \u001b[36m1/2520000/BCBF89A2-329C-744B-A38F-139EA8F94007.root\u001b[0m\n", + "│ ├── \u001b[36mroot://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\u001b[0m\n", + "│ │ \u001b[36m1/2520000/D8D41BBC-D514-D342-A514-CCF48575D184.root\u001b[0m\n", + "│ └── \u001b[36mroot://se01.grid.nchc.org.tw//cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\u001b[0m\n", + "│ \u001b[36m1/2520000/F1B3977A-E777-EC4D-8FC7-981FE4ED5E0C.root\u001b[0m\n", + "├── \u001b[32mT2_UK_London_IC\u001b[0m\n", + "│ ├── \u001b[36mroot://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\u001b[0m\n", + "│ │ \u001b[36mOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/59DA0585-BD57-CE49-A15E-CDBAC5473EDE.root\u001b[0m\n", + "│ ├── \u001b[36mroot://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\u001b[0m\n", + "│ │ \u001b[36mOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/F16A9138-7563-E540-B6AD-8A8A688B3830.root\u001b[0m\n", + "│ └── \u001b[36mroot://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\u001b[0m\n", + "│ \u001b[36mOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/FE3D79A6-27D4-8948-A89B-2F966C5B29D4.root\u001b[0m\n", + "├── \u001b[32mT1_US_FNAL_Disk\u001b[0m\n", + "│ ├── \u001b[36mroot://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\u001b[0m\n", + "│ │ \u001b[36mDv9_GT36-v1/2520000/62789325-3C0B-FC4D-B578-B41A396399E4.root\u001b[0m\n", + "│ ├── \u001b[36mroot://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\u001b[0m\n", + "│ │ \u001b[36mDv9_GT36-v1/2520000/6EAA5EDB-0DB3-6E40-87DC-7AB582295D29.root\u001b[0m\n", + "│ ├── \u001b[36mroot://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\u001b[0m\n", + "│ │ \u001b[36mDv9_GT36-v1/2520000/A59D511A-A419-714F-8EE1-8B8BAFEC04D5.root\u001b[0m\n", + "│ ├── \u001b[36mroot://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\u001b[0m\n", + "│ │ \u001b[36mDv9_GT36-v1/2520000/B78A9B75-3B32-CF4E-A144-375189CF48AE.root\u001b[0m\n", + "│ ├── \u001b[36mroot://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\u001b[0m\n", + "│ │ \u001b[36mDv9_GT36-v1/2520000/B9E9087C-255C-C24D-A733-FB9291DC7C3C.root\u001b[0m\n", + "│ ├── \u001b[36mroot://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\u001b[0m\n", + "│ │ \u001b[36mDv9_GT36-v1/2520000/CDD2CDF9-72D0-4045-B28F-89002077FB89.root\u001b[0m\n", + "│ └── \u001b[36mroot://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAO\u001b[0m\n", + "│ \u001b[36mDv9_GT36-v1/2520000/ED95384D-9D3D-AE45-8425-C4C080E691C5.root\u001b[0m\n", + "├── \u001b[32mT1_IT_CNAF_Disk\u001b[0m\n", + "│ └── \u001b[36mroot://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\n", + "│ \u001b[36m2520000/648ECD9C-8AAA-BB46-8683-C8987CCC73B9.root\u001b[0m\n", + "├── \u001b[32mT2_US_Nebraska\u001b[0m\n", + "│ ├── \u001b[36mroot://xrootd-local.unl.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\u001b[0m\n", + "│ │ \u001b[36m1/2520000/69ABD79C-C684-8244-9F0D-153C6B8C2D9C.root\u001b[0m\n", + "│ ├── \u001b[36mroot://xrootd-local.unl.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\u001b[0m\n", + "│ │ \u001b[36m1/2520000/AB8DD69D-A522-D44C-BB9C-209623F7D41A.root\u001b[0m\n", + "│ └── \u001b[36mroot://xrootd-local.unl.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v\u001b[0m\n", + "│ \u001b[36m1/2520000/B3487FE0-B172-AD47-A13A-388C0A9BF93F.root\u001b[0m\n", + "├── \u001b[32mT2_IT_Legnaro\u001b[0m\n", + "│ └── \u001b[36mroot://t2-xrdcms.lnl.infn.it:7070///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-\u001b[0m\n", + "│ \u001b[36mv1/2520000/B1B449CE-5952-8347-A9A7-35FE231D0C72.root\u001b[0m\n", + "├── \u001b[32mT3_FR_IPNL\u001b[0m\n", + "│ ├── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ │ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/BA02D468-A8CE-4F49-884F-F836BB481AD5.root\u001b[0m\n", + "│ ├── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ │ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/BAAA6E00-7AC3-9947-9262-D9833D3A8B19.root\u001b[0m\n", + "│ ├── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ │ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/CBD43A1E-AE2F-0B4D-A642-29FB2E9EB33B.root\u001b[0m\n", + "│ ├── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ │ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/ECD4877E-707B-EA43-A38B-D1B700FBDE79.root\u001b[0m\n", + "│ └── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/F09135D8-FCBE-AF40-BCE8-03A529C5C87F.root\u001b[0m\n", + "├── \u001b[32mT2_DE_RWTH\u001b[0m\n", + "│ └── \u001b[36mroot://grid-cms-xrootd.physik.rwth-aachen.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2\u001b[0m\n", + "│ \u001b[36m_NanoAODv9_GT36-v1/2520000/D40D1285-B075-D446-B1BF-86A463EF6993.root\u001b[0m\n", + "├── \u001b[32mT2_TR_METU\u001b[0m\n", + "│ └── \u001b[36mroot://eymir.grid.metu.edu.tr//dpm/grid.metu.edu.tr/home/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018\u001b[0m\n", + "│ \u001b[36m_MiniAODv2_NanoAODv9_GT36-v1/2520000/F34F4F00-3370-EF4D-AF44-39E474E6530F.root\u001b[0m\n", + "└── \u001b[32mT2_US_Florida\u001b[0m\n", + " └── \u001b[36mroot://cmsio2.rc.ufl.edu:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\u001b[0m\n", + " \u001b[36m520000/F6E44EA5-F4C6-E746-AD43-7A263F1E316E.root\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Selected datasets:\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[36mSelected datasets:\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
                                                 Selected datasets                                                 \n",
+       "┏━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳┳┓\n",
+       "┃ Dataset                                                                                                   ┃\n",
+       "┡━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇╇┩\n",
+       "│ 1  /DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realisti… │││\n",
+       "│ 2  /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD                                           │││\n",
+       "└───┴───────────────────────────────────────────────────────────────────────────────────────────────────────────┴┴┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3m Selected datasets \u001b[0m\n", + "┏━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳┳┓\n", + "┃\u001b[1m \u001b[0m\u001b[1m…\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mDataset \u001b[0m\u001b[1m \u001b[0m┃┃┃\n", + "┡━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇╇┩\n", + "│\u001b[36m \u001b[0m\u001b[36m1\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realisti…\u001b[0m\u001b[35m \u001b[0m│││\n", + "│\u001b[36m \u001b[0m\u001b[36m2\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m/SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD \u001b[0m\u001b[35m \u001b[0m│││\n", + "└───┴───────────────────────────────────────────────────────────────────────────────────────────────────────────┴┴┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ddc = DataDiscoveryCLI()\n", + "ddc.load_dataset_definition(dataset_definition, \n", + " query_results_strategy=\"all\",\n", + " replicas_strategy=\"round-robin\")" + ] + }, + { + "cell_type": "markdown", + "id": "db7798eb-eb9f-47e5-9239-92cdea20600f", + "metadata": {}, + "source": [ + "### Filtering sites" + ] + }, + { + "cell_type": "markdown", + "id": "bd57fe7b-0642-48b8-9f9f-cd209e50d867", + "metadata": {}, + "source": [ + "Sites filtering works in a very similar way for `DataDiscoveryCLI`" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "d85ca119-0a56-4c67-bb21-ebbca8164728", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
 Querying rucio for replicas: /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[32m⠇\u001b[0m Querying rucio for replicas: \u001b[1;31m/SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+      ],
+      "text/plain": []
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "
Sites availability for dataset: /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[36mSites availability for dataset: \u001b[0m\u001b[31m/SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\u001b[31mNANOAOD\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
                   Available replicas                   \n",
+       "┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┓\n",
+       "┃ Index  Site                 Files    Availability ┃\n",
+       "┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━┩\n",
+       "│   0    T2_DE_DESY           67 / 67     100.0%    │\n",
+       "│   1   │ T3_FR_IPNL           67 / 67 │    100.0%    │\n",
+       "│   2    T2_UK_London_IC      39 / 67     58.2%     │\n",
+       "│   3   │ T1_FR_CCIN2P3_Disk   38 / 67 │    56.7%     │\n",
+       "│   4    T2_CH_CERN           25 / 67     37.3%     │\n",
+       "│   5   │ T2_DE_RWTH           22 / 67 │    32.8%     │\n",
+       "│   6    T1_IT_CNAF_Disk      20 / 67     29.9%     │\n",
+       "│   7   │ T1_DE_KIT_Disk       11 / 67 │    16.4%     │\n",
+       "│   8    T2_UK_SGrid_RALPP    6 / 67       9.0%     │\n",
+       "│   9   │ T2_IT_Legnaro        6 / 67  │     9.0%     │\n",
+       "│  10    T2_FR_IPHC           2 / 67       3.0%     │\n",
+       "│  11   │ T2_UK_London_Brunel  1 / 67  │     1.5%     │\n",
+       "└───────┴─────────────────────┴─────────┴──────────────┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3m Available replicas \u001b[0m\n", + "┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mIndex\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mSite \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mFiles \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mAvailability\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━┩\n", + "│\u001b[2m \u001b[0m\u001b[2m 0 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_DE_DESY \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m67 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 100.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 1 │\u001b[36m \u001b[0m\u001b[36mT3_FR_IPNL \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m67 / 67\u001b[0m\u001b[35m \u001b[0m│ 100.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 2 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_UK_London_IC \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m39 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 58.2% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 3 │\u001b[36m \u001b[0m\u001b[36mT1_FR_CCIN2P3_Disk \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m38 / 67\u001b[0m\u001b[35m \u001b[0m│ 56.7% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 4 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_CH_CERN \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m25 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 37.3% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 5 │\u001b[36m \u001b[0m\u001b[36mT2_DE_RWTH \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m22 / 67\u001b[0m\u001b[35m \u001b[0m│ 32.8% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 6 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT1_IT_CNAF_Disk \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m20 / 67\u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 29.9% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 7 │\u001b[36m \u001b[0m\u001b[36mT1_DE_KIT_Disk \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m11 / 67\u001b[0m\u001b[35m \u001b[0m│ 16.4% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 8 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_UK_SGrid_RALPP \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m6 / 67 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 9.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 9 │\u001b[36m \u001b[0m\u001b[36mT2_IT_Legnaro \u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m6 / 67 \u001b[0m\u001b[35m \u001b[0m│ 9.0% │\n", + "│\u001b[2m \u001b[0m\u001b[2m 10 \u001b[0m\u001b[2m \u001b[0m│\u001b[2;36m \u001b[0m\u001b[2;36mT2_FR_IPHC \u001b[0m\u001b[2;36m \u001b[0m│\u001b[2;35m \u001b[0m\u001b[2;35m2 / 67 \u001b[0m\u001b[2;35m \u001b[0m│\u001b[2m \u001b[0m\u001b[2m 3.0% \u001b[0m\u001b[2m \u001b[0m│\n", + "│ 11 │\u001b[36m \u001b[0m\u001b[36mT2_UK_London_Brunel\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m1 / 67 \u001b[0m\u001b[35m \u001b[0m│ 1.5% │\n", + "└───────┴─────────────────────┴─────────┴──────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Replicas for /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD\n",
+       "├── T2_CH_CERN\n",
+       "│   ├── root://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\n",
+       "│   │   520000/0144EC47-BFA3-EA43-BF05-BD4248ED6031.root\n",
+       "│   ├── root://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\n",
+       "│   │   520000/1DD0FAC6-3087-E44E-ABCB-8AF812C1310D.root\n",
+       "│   ├── root://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\n",
+       "│   │   520000/2747DEFE-A247-1F42-B0EF-E7B7F1D3FCD6.root\n",
+       "│   ├── root://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\n",
+       "│   │   520000/2DA9130E-8423-304C-9902-1E42CD72E658.root\n",
+       "│   ├── root://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\n",
+       "│   │   520000/39D52C69-2035-A24B-A413-40976993651D.root\n",
+       "│   ├── root://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\n",
+       "│   │   520000/69ABD79C-C684-8244-9F0D-153C6B8C2D9C.root\n",
+       "│   ├── root://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\n",
+       "│   │   520000/7CCCB2C3-F210-2C42-85DF-AA00293FACFB.root\n",
+       "│   └── root://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\n",
+       "│       520000/F34F4F00-3370-EF4D-AF44-39E474E6530F.root\n",
+       "├── T3_FR_IPNL\n",
+       "│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│   │   Dv2_NanoAODv9_GT36-v1/2520000/0C9615C1-7EE6-CD44-8FC0-04F63B2C16FD.root\n",
+       "│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│   │   Dv2_NanoAODv9_GT36-v1/2520000/30A3A1AB-2F27-C84E-9437-6BB3881F6856.root\n",
+       "│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│   │   Dv2_NanoAODv9_GT36-v1/2520000/410C32AB-DEB5-404F-BC6B-92E8F560563F.root\n",
+       "│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│   │   Dv2_NanoAODv9_GT36-v1/2520000/42DC0F42-82E8-BE47-B04D-544B67274829.root\n",
+       "│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│   │   Dv2_NanoAODv9_GT36-v1/2520000/62789325-3C0B-FC4D-B578-B41A396399E4.root\n",
+       "│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│   │   Dv2_NanoAODv9_GT36-v1/2520000/6809B5E3-6DE6-1541-AE4C-E1804C877EDE.root\n",
+       "│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│   │   Dv2_NanoAODv9_GT36-v1/2520000/78AC6A39-C303-EB44-9264-71819CC70FCC.root\n",
+       "│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│   │   Dv2_NanoAODv9_GT36-v1/2520000/A350E2E4-705C-2C4D-9B11-3436056EEBE7.root\n",
+       "│   ├── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│   │   Dv2_NanoAODv9_GT36-v1/2520000/FCAF4145-8E3F-2142-BDCB-5E276523B592.root\n",
+       "│   └── root://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\n",
+       "│       Dv2_NanoAODv9_GT36-v1/2520000/FE3D79A6-27D4-8948-A89B-2F966C5B29D4.root\n",
+       "├── T2_UK_London_IC\n",
+       "│   ├── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\n",
+       "│   │   OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/12FAE9F1-7139-924C-A8DE-9699A00FC994.root\n",
+       "│   ├── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\n",
+       "│   │   OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/63047CC0-38C6-F74C-9A00-0DF9050F7CF1.root\n",
+       "│   ├── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\n",
+       "│   │   OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/8369B0EA-E4CC-AC4D-BD3F-0679B3310E09.root\n",
+       "│   ├── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\n",
+       "│   │   OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/AE014F55-84BE-E84E-B447-0B614070CD17.root\n",
+       "│   ├── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\n",
+       "│   │   OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/F16A9138-7563-E540-B6AD-8A8A688B3830.root\n",
+       "│   └── root://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\n",
+       "│       OD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/FAF0C67B-A8B4-8A4F-83B1-E43675CE9630.root\n",
+       "├── T1_FR_CCIN2P3_Disk\n",
+       "│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\n",
+       "│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/152C304A-97AD-1649-BCB6-3EA0CCD0DD33.root\n",
+       "│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\n",
+       "│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/37312354-59AB-E44B-BC94-CF424D4B7DDB.root\n",
+       "│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\n",
+       "│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/7B14228A-5331-DF4E-B677-7B8AA281D460.root\n",
+       "│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\n",
+       "│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/7B181B92-AA2C-1E44-86FE-B074D359BBB3.root\n",
+       "│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\n",
+       "│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/C4F476DA-3D00-334B-867C-7E12F94EE3AB.root\n",
+       "│   ├── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\n",
+       "│   │   18_MiniAODv2_NanoAODv9_GT36-v1/2520000/D8D41BBC-D514-D342-A514-CCF48575D184.root\n",
+       "│   └── root://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\n",
+       "│       18_MiniAODv2_NanoAODv9_GT36-v1/2520000/FE5EEFA5-C07A-5C44-B66D-5B31BE02C7D3.root\n",
+       "├── T2_FR_IPHC\n",
+       "│   └── root://sbgdcache.in2p3.fr///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/25200\n",
+       "│       00/1CEB718A-7DC1-C74A-A7BE-A3C8D9FA785A.root\n",
+       "├── T2_DE_DESY\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/26FC8C40-EA29-804C-B17D-84FB1C6BC505.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/2D58C3FE-512A-1F48-9AEB-6F80379B8F4A.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/459261DD-4441-6047-9FF2-1EDE468452C9.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/51515E3C-C640-3A4C-A16C-DC267FD142BF.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/648ECD9C-8AAA-BB46-8683-C8987CCC73B9.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/74A75B73-E5B8-C942-BBC9-1DDDD7F752FB.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/81CEA7BA-9E66-BC4F-A96F-32642D59B653.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/8223C4A3-D4BD-6A4B-A513-54B6668C7122.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/8C8690F8-4FEE-1047-85F4-29E414B3D12C.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/B78A9B75-3B32-CF4E-A144-375189CF48AE.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/BAAA6E00-7AC3-9947-9262-D9833D3A8B19.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/BCBF89A2-329C-744B-A38F-139EA8F94007.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/CBD43A1E-AE2F-0B4D-A642-29FB2E9EB33B.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/D40D1285-B075-D446-B1BF-86A463EF6993.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/DA47C0B6-BCAB-C54C-A6BF-B0A64E88E3D4.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/ECD4877E-707B-EA43-A38B-D1B700FBDE79.root\n",
+       "│   ├── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│   │   36-v1/2520000/ED95384D-9D3D-AE45-8425-C4C080E691C5.root\n",
+       "│   └── root://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\n",
+       "│       36-v1/2520000/F1B3977A-E777-EC4D-8FC7-981FE4ED5E0C.root\n",
+       "├── T1_DE_KIT_Disk\n",
+       "│   ├── root://cmsxrootd-kit-disk.gridka.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv\n",
+       "│   │   9_GT36-v1/2520000/365F32F6-F971-1B4D-8E9D-C0ACD74FFB03.root\n",
+       "│   ├── root://cmsxrootd-kit-disk.gridka.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv\n",
+       "│   │   9_GT36-v1/2520000/3FE5B677-9AB3-0245-A1CF-4B320592F18F.root\n",
+       "│   ├── root://cmsxrootd-kit-disk.gridka.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv\n",
+       "│   │   9_GT36-v1/2520000/6DDF448B-4605-5C41-9711-1C73EC5F01D3.root\n",
+       "│   ├── root://cmsxrootd-kit-disk.gridka.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv\n",
+       "│   │   9_GT36-v1/2520000/6EAA5EDB-0DB3-6E40-87DC-7AB582295D29.root\n",
+       "│   └── root://cmsxrootd-kit-disk.gridka.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv\n",
+       "│       9_GT36-v1/2520000/7DEA3718-B7BC-EE42-A8BE-11C62BB8536D.root\n",
+       "├── T2_DE_RWTH\n",
+       "│   ├── root://grid-cms-xrootd.physik.rwth-aachen.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2\n",
+       "│   │   _NanoAODv9_GT36-v1/2520000/59DA0585-BD57-CE49-A15E-CDBAC5473EDE.root\n",
+       "│   ├── root://grid-cms-xrootd.physik.rwth-aachen.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2\n",
+       "│   │   _NanoAODv9_GT36-v1/2520000/A59D511A-A419-714F-8EE1-8B8BAFEC04D5.root\n",
+       "│   └── root://grid-cms-xrootd.physik.rwth-aachen.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2\n",
+       "│       _NanoAODv9_GT36-v1/2520000/B9E9087C-255C-C24D-A733-FB9291DC7C3C.root\n",
+       "├── T1_IT_CNAF_Disk\n",
+       "│   ├── root://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\n",
+       "│   │   2520000/A74EFE57-BAD2-C143-B8DC-817CE4F96FD7.root\n",
+       "│   ├── root://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\n",
+       "│   │   2520000/AB8DD69D-A522-D44C-BB9C-209623F7D41A.root\n",
+       "│   ├── root://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\n",
+       "│   │   2520000/B3487FE0-B172-AD47-A13A-388C0A9BF93F.root\n",
+       "│   ├── root://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\n",
+       "│   │   2520000/CDD2CDF9-72D0-4045-B28F-89002077FB89.root\n",
+       "│   ├── root://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\n",
+       "│   │   2520000/D7875684-9F26-084E-9B2B-5E9BB5D353E8.root\n",
+       "│   └── root://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\n",
+       "│       2520000/F09135D8-FCBE-AF40-BCE8-03A529C5C87F.root\n",
+       "└── T2_UK_SGrid_RALPP\n",
+       "    ├── root://mover.pp.rl.ac.uk:1094/pnfs/pp.rl.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_Mini\n",
+       "    │   AODv2_NanoAODv9_GT36-v1/2520000/B1B449CE-5952-8347-A9A7-35FE231D0C72.root\n",
+       "    ├── root://mover.pp.rl.ac.uk:1094/pnfs/pp.rl.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_Mini\n",
+       "    │   AODv2_NanoAODv9_GT36-v1/2520000/BA02D468-A8CE-4F49-884F-F836BB481AD5.root\n",
+       "    └── root://mover.pp.rl.ac.uk:1094/pnfs/pp.rl.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_Mini\n",
+       "        AODv2_NanoAODv9_GT36-v1/2520000/F6E44EA5-F4C6-E746-AD43-7A263F1E316E.root\n",
+       "
\n" + ], + "text/plain": [ + "Replicas for \u001b[32m/SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD\u001b[0m\n", + "├── \u001b[32mT2_CH_CERN\u001b[0m\n", + "│ ├── \u001b[36mroot://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\u001b[0m\n", + "│ │ \u001b[36m520000/0144EC47-BFA3-EA43-BF05-BD4248ED6031.root\u001b[0m\n", + "│ ├── \u001b[36mroot://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\u001b[0m\n", + "│ │ \u001b[36m520000/1DD0FAC6-3087-E44E-ABCB-8AF812C1310D.root\u001b[0m\n", + "│ ├── \u001b[36mroot://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\u001b[0m\n", + "│ │ \u001b[36m520000/2747DEFE-A247-1F42-B0EF-E7B7F1D3FCD6.root\u001b[0m\n", + "│ ├── \u001b[36mroot://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\u001b[0m\n", + "│ │ \u001b[36m520000/2DA9130E-8423-304C-9902-1E42CD72E658.root\u001b[0m\n", + "│ ├── \u001b[36mroot://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\u001b[0m\n", + "│ │ \u001b[36m520000/39D52C69-2035-A24B-A413-40976993651D.root\u001b[0m\n", + "│ ├── \u001b[36mroot://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\u001b[0m\n", + "│ │ \u001b[36m520000/69ABD79C-C684-8244-9F0D-153C6B8C2D9C.root\u001b[0m\n", + "│ ├── \u001b[36mroot://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\u001b[0m\n", + "│ │ \u001b[36m520000/7CCCB2C3-F210-2C42-85DF-AA00293FACFB.root\u001b[0m\n", + "│ └── \u001b[36mroot://eoscms.cern.ch//eos/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2\u001b[0m\n", + "│ \u001b[36m520000/F34F4F00-3370-EF4D-AF44-39E474E6530F.root\u001b[0m\n", + "├── \u001b[32mT3_FR_IPNL\u001b[0m\n", + "│ ├── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ │ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/0C9615C1-7EE6-CD44-8FC0-04F63B2C16FD.root\u001b[0m\n", + "│ ├── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ │ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/30A3A1AB-2F27-C84E-9437-6BB3881F6856.root\u001b[0m\n", + "│ ├── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ │ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/410C32AB-DEB5-404F-BC6B-92E8F560563F.root\u001b[0m\n", + "│ ├── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ │ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/42DC0F42-82E8-BE47-B04D-544B67274829.root\u001b[0m\n", + "│ ├── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ │ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/62789325-3C0B-FC4D-B578-B41A396399E4.root\u001b[0m\n", + "│ ├── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ │ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/6809B5E3-6DE6-1541-AE4C-E1804C877EDE.root\u001b[0m\n", + "│ ├── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ │ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/78AC6A39-C303-EB44-9264-71819CC70FCC.root\u001b[0m\n", + "│ ├── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ │ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/A350E2E4-705C-2C4D-9B11-3436056EEBE7.root\u001b[0m\n", + "│ ├── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ │ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/FCAF4145-8E3F-2142-BDCB-5E276523B592.root\u001b[0m\n", + "│ └── \u001b[36mroot://lyogrid06.in2p3.fr//dpm/in2p3.fr/home/cms/data//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAO\u001b[0m\n", + "│ \u001b[36mDv2_NanoAODv9_GT36-v1/2520000/FE3D79A6-27D4-8948-A89B-2F966C5B29D4.root\u001b[0m\n", + "├── \u001b[32mT2_UK_London_IC\u001b[0m\n", + "│ ├── \u001b[36mroot://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\u001b[0m\n", + "│ │ \u001b[36mOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/12FAE9F1-7139-924C-A8DE-9699A00FC994.root\u001b[0m\n", + "│ ├── \u001b[36mroot://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\u001b[0m\n", + "│ │ \u001b[36mOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/63047CC0-38C6-F74C-9A00-0DF9050F7CF1.root\u001b[0m\n", + "│ ├── \u001b[36mroot://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\u001b[0m\n", + "│ │ \u001b[36mOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/8369B0EA-E4CC-AC4D-BD3F-0679B3310E09.root\u001b[0m\n", + "│ ├── \u001b[36mroot://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\u001b[0m\n", + "│ │ \u001b[36mOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/AE014F55-84BE-E84E-B447-0B614070CD17.root\u001b[0m\n", + "│ ├── \u001b[36mroot://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\u001b[0m\n", + "│ │ \u001b[36mOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/F16A9138-7563-E540-B6AD-8A8A688B3830.root\u001b[0m\n", + "│ └── \u001b[36mroot://gfe02.grid.hep.ph.ic.ac.uk:1094//pnfs/hep.ph.ic.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOA\u001b[0m\n", + "│ \u001b[36mOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/2520000/FAF0C67B-A8B4-8A4F-83B1-E43675CE9630.root\u001b[0m\n", + "├── \u001b[32mT1_FR_CCIN2P3_Disk\u001b[0m\n", + "│ ├── \u001b[36mroot://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\u001b[0m\n", + "│ │ \u001b[36m18_MiniAODv2_NanoAODv9_GT36-v1/2520000/152C304A-97AD-1649-BCB6-3EA0CCD0DD33.root\u001b[0m\n", + "│ ├── \u001b[36mroot://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\u001b[0m\n", + "│ │ \u001b[36m18_MiniAODv2_NanoAODv9_GT36-v1/2520000/37312354-59AB-E44B-BC94-CF424D4B7DDB.root\u001b[0m\n", + "│ ├── \u001b[36mroot://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\u001b[0m\n", + "│ │ \u001b[36m18_MiniAODv2_NanoAODv9_GT36-v1/2520000/7B14228A-5331-DF4E-B677-7B8AA281D460.root\u001b[0m\n", + "│ ├── \u001b[36mroot://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\u001b[0m\n", + "│ │ \u001b[36m18_MiniAODv2_NanoAODv9_GT36-v1/2520000/7B181B92-AA2C-1E44-86FE-B074D359BBB3.root\u001b[0m\n", + "│ ├── \u001b[36mroot://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\u001b[0m\n", + "│ │ \u001b[36m18_MiniAODv2_NanoAODv9_GT36-v1/2520000/C4F476DA-3D00-334B-867C-7E12F94EE3AB.root\u001b[0m\n", + "│ ├── \u001b[36mroot://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\u001b[0m\n", + "│ │ \u001b[36m18_MiniAODv2_NanoAODv9_GT36-v1/2520000/D8D41BBC-D514-D342-A514-CCF48575D184.root\u001b[0m\n", + "│ └── \u001b[36mroot://ccxrdcms.in2p3.fr:1094/pnfs/in2p3.fr/data/cms/disk/data//store/data/Run2018C/SingleMuon/NANOAOD/UL20\u001b[0m\n", + "│ \u001b[36m18_MiniAODv2_NanoAODv9_GT36-v1/2520000/FE5EEFA5-C07A-5C44-B66D-5B31BE02C7D3.root\u001b[0m\n", + "├── \u001b[32mT2_FR_IPHC\u001b[0m\n", + "│ └── \u001b[36mroot://sbgdcache.in2p3.fr///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/25200\u001b[0m\n", + "│ \u001b[36m00/1CEB718A-7DC1-C74A-A7BE-A3C8D9FA785A.root\u001b[0m\n", + "├── \u001b[32mT2_DE_DESY\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/26FC8C40-EA29-804C-B17D-84FB1C6BC505.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/2D58C3FE-512A-1F48-9AEB-6F80379B8F4A.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/459261DD-4441-6047-9FF2-1EDE468452C9.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/51515E3C-C640-3A4C-A16C-DC267FD142BF.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/648ECD9C-8AAA-BB46-8683-C8987CCC73B9.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/74A75B73-E5B8-C942-BBC9-1DDDD7F752FB.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/81CEA7BA-9E66-BC4F-A96F-32642D59B653.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/8223C4A3-D4BD-6A4B-A513-54B6668C7122.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/8C8690F8-4FEE-1047-85F4-29E414B3D12C.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/B78A9B75-3B32-CF4E-A144-375189CF48AE.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/BAAA6E00-7AC3-9947-9262-D9833D3A8B19.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/BCBF89A2-329C-744B-A38F-139EA8F94007.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/CBD43A1E-AE2F-0B4D-A642-29FB2E9EB33B.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/D40D1285-B075-D446-B1BF-86A463EF6993.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/DA47C0B6-BCAB-C54C-A6BF-B0A64E88E3D4.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/ECD4877E-707B-EA43-A38B-D1B700FBDE79.root\u001b[0m\n", + "│ ├── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ │ \u001b[36m36-v1/2520000/ED95384D-9D3D-AE45-8425-C4C080E691C5.root\u001b[0m\n", + "│ └── \u001b[36mroot://dcache-cms-xrootd.desy.de:1094//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT\u001b[0m\n", + "│ \u001b[36m36-v1/2520000/F1B3977A-E777-EC4D-8FC7-981FE4ED5E0C.root\u001b[0m\n", + "├── \u001b[32mT1_DE_KIT_Disk\u001b[0m\n", + "│ ├── \u001b[36mroot://cmsxrootd-kit-disk.gridka.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv\u001b[0m\n", + "│ │ \u001b[36m9_GT36-v1/2520000/365F32F6-F971-1B4D-8E9D-C0ACD74FFB03.root\u001b[0m\n", + "│ ├── \u001b[36mroot://cmsxrootd-kit-disk.gridka.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv\u001b[0m\n", + "│ │ \u001b[36m9_GT36-v1/2520000/3FE5B677-9AB3-0245-A1CF-4B320592F18F.root\u001b[0m\n", + "│ ├── \u001b[36mroot://cmsxrootd-kit-disk.gridka.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv\u001b[0m\n", + "│ │ \u001b[36m9_GT36-v1/2520000/6DDF448B-4605-5C41-9711-1C73EC5F01D3.root\u001b[0m\n", + "│ ├── \u001b[36mroot://cmsxrootd-kit-disk.gridka.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv\u001b[0m\n", + "│ │ \u001b[36m9_GT36-v1/2520000/6EAA5EDB-0DB3-6E40-87DC-7AB582295D29.root\u001b[0m\n", + "│ └── \u001b[36mroot://cmsxrootd-kit-disk.gridka.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv\u001b[0m\n", + "│ \u001b[36m9_GT36-v1/2520000/7DEA3718-B7BC-EE42-A8BE-11C62BB8536D.root\u001b[0m\n", + "├── \u001b[32mT2_DE_RWTH\u001b[0m\n", + "│ ├── \u001b[36mroot://grid-cms-xrootd.physik.rwth-aachen.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2\u001b[0m\n", + "│ │ \u001b[36m_NanoAODv9_GT36-v1/2520000/59DA0585-BD57-CE49-A15E-CDBAC5473EDE.root\u001b[0m\n", + "│ ├── \u001b[36mroot://grid-cms-xrootd.physik.rwth-aachen.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2\u001b[0m\n", + "│ │ \u001b[36m_NanoAODv9_GT36-v1/2520000/A59D511A-A419-714F-8EE1-8B8BAFEC04D5.root\u001b[0m\n", + "│ └── \u001b[36mroot://grid-cms-xrootd.physik.rwth-aachen.de:1094///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2\u001b[0m\n", + "│ \u001b[36m_NanoAODv9_GT36-v1/2520000/B9E9087C-255C-C24D-A733-FB9291DC7C3C.root\u001b[0m\n", + "├── \u001b[32mT1_IT_CNAF_Disk\u001b[0m\n", + "│ ├── \u001b[36mroot://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\n", + "│ │ \u001b[36m2520000/A74EFE57-BAD2-C143-B8DC-817CE4F96FD7.root\u001b[0m\n", + "│ ├── \u001b[36mroot://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\n", + "│ │ \u001b[36m2520000/AB8DD69D-A522-D44C-BB9C-209623F7D41A.root\u001b[0m\n", + "│ ├── \u001b[36mroot://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\n", + "│ │ \u001b[36m2520000/B3487FE0-B172-AD47-A13A-388C0A9BF93F.root\u001b[0m\n", + "│ ├── \u001b[36mroot://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\n", + "│ │ \u001b[36m2520000/CDD2CDF9-72D0-4045-B28F-89002077FB89.root\u001b[0m\n", + "│ ├── \u001b[36mroot://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\n", + "│ │ \u001b[36m2520000/D7875684-9F26-084E-9B2B-5E9BB5D353E8.root\u001b[0m\n", + "│ └── \u001b[36mroot://xrootd-cms.infn.it:1194///store/data/Run2018C/SingleMuon/NANOAOD/UL2018_MiniAODv2_NanoAODv9_GT36-v1/\u001b[0m\n", + "│ \u001b[36m2520000/F09135D8-FCBE-AF40-BCE8-03A529C5C87F.root\u001b[0m\n", + "└── \u001b[32mT2_UK_SGrid_RALPP\u001b[0m\n", + " ├── \u001b[36mroot://mover.pp.rl.ac.uk:1094/pnfs/pp.rl.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_Mini\u001b[0m\n", + " │ \u001b[36mAODv2_NanoAODv9_GT36-v1/2520000/B1B449CE-5952-8347-A9A7-35FE231D0C72.root\u001b[0m\n", + " ├── \u001b[36mroot://mover.pp.rl.ac.uk:1094/pnfs/pp.rl.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_Mini\u001b[0m\n", + " │ \u001b[36mAODv2_NanoAODv9_GT36-v1/2520000/BA02D468-A8CE-4F49-884F-F836BB481AD5.root\u001b[0m\n", + " └── \u001b[36mroot://mover.pp.rl.ac.uk:1094/pnfs/pp.rl.ac.uk/data/cms//store/data/Run2018C/SingleMuon/NANOAOD/UL2018_Mini\u001b[0m\n", + " \u001b[36mAODv2_NanoAODv9_GT36-v1/2520000/F6E44EA5-F4C6-E746-AD43-7A263F1E316E.root\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Selected datasets:\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[36mSelected datasets:\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
                                                 Selected datasets                                                 \n",
+       "┏━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳┳┓\n",
+       "┃ Dataset                                                                                                   ┃\n",
+       "┡━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇╇┩\n",
+       "│ 1  /DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realisti… │││\n",
+       "│ 2  /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD                                           │││\n",
+       "└───┴───────────────────────────────────────────────────────────────────────────────────────────────────────────┴┴┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3m Selected datasets \u001b[0m\n", + "┏━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳┳┓\n", + "┃\u001b[1m \u001b[0m\u001b[1m…\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mDataset \u001b[0m\u001b[1m \u001b[0m┃┃┃\n", + "┡━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇╇┩\n", + "│\u001b[36m \u001b[0m\u001b[36m1\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realisti…\u001b[0m\u001b[35m \u001b[0m│││\n", + "│\u001b[36m \u001b[0m\u001b[36m2\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m/SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD \u001b[0m\u001b[35m \u001b[0m│││\n", + "└───┴───────────────────────────────────────────────────────────────────────────────────────────────────────────┴┴┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ddc = DataDiscoveryCLI()\n", + "ddc.do_regex_sites(r\"T[123]_(CH|IT|UK|FR|DE)_\\w+\")\n", + "ddc.load_dataset_definition(dataset_definition, \n", + " query_results_strategy=\"all\",\n", + " replicas_strategy=\"round-robin\")" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "dd9ca4ea-039d-4ebb-bbf2-79092ba6e7d0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
Selected datasets:\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[36mSelected datasets:\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
                                                 Selected datasets                                                 \n",
+       "┏━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳┳┓\n",
+       "┃ Dataset                                                                                                   ┃\n",
+       "┡━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇╇┩\n",
+       "│ 1  /DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realisti… │││\n",
+       "│ 2  /SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD                                           │││\n",
+       "└───┴───────────────────────────────────────────────────────────────────────────────────────────────────────────┴┴┘\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[3m Selected datasets \u001b[0m\n", + "┏━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳┳┓\n", + "┃\u001b[1m \u001b[0m\u001b[1m…\u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mDataset \u001b[0m\u001b[1m \u001b[0m┃┃┃\n", + "┡━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇╇┩\n", + "│\u001b[36m \u001b[0m\u001b[36m1\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realisti…\u001b[0m\u001b[35m \u001b[0m│││\n", + "│\u001b[36m \u001b[0m\u001b[36m2\u001b[0m\u001b[36m \u001b[0m│\u001b[35m \u001b[0m\u001b[35m/SingleMuon/Run2018C-UL2018_MiniAODv2_NanoAODv9_GT36-v1/NANOAOD \u001b[0m\u001b[35m \u001b[0m│││\n", + "└───┴───────────────────────────────────────────────────────────────────────────────────────────────────────────┴┴┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ddc.do_list_selected()" + ] + }, + { + "cell_type": "markdown", + "id": "a6ffbefb-8276-4733-aedb-cc12898f4ed8", + "metadata": {}, + "source": [ + "### Save the replicas metadata" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "b0e3e4b8-34d4-4558-988a-edacd1df9b37", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
File replicas_info.json saved!\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[32mFile replicas_info.json saved!\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ddc.do_save(\"replicas_info.json\")" + ] + }, + { + "cell_type": "markdown", + "id": "f9f6a70b-0194-4b00-ab79-4fdb0b4fa0cf", + "metadata": {}, + "source": [ + "## DataDiscoveryCLI from shell" + ] + }, + { + "cell_type": "markdown", + "id": "7237fc9e-50b8-4cc4-9c51-9674fbf4358a", + "metadata": {}, + "source": [ + "The DataDiscoveryCLI can be used directly from CLI" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "2c075f2e-a06e-4c97-b5b6-6a6806571a9a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "usage: dataset_query.py [-h] [--cli] [-d DATASET_DEFINITION] [-o OUTPUT]\n", + " [-fo FILESET_OUTPUT] [-p] [--step-size STEP_SIZE]\n", + " [--dask-cluster DASK_CLUSTER]\n", + " [-as ALLOW_SITES [ALLOW_SITES ...]]\n", + " [-bs BLOCK_SITES [BLOCK_SITES ...]] [-rs REGEX_SITES]\n", + " [--query-results-strategy QUERY_RESULTS_STRATEGY]\n", + " [--replicas-strategy REPLICAS_STRATEGY]\n", + "\n", + "options:\n", + " -h, --help show this help message and exit\n", + " --cli Start the dataset discovery CLI\n", + " -d DATASET_DEFINITION, --dataset-definition DATASET_DEFINITION\n", + " Dataset definition file\n", + " -o OUTPUT, --output OUTPUT\n", + " Output name for dataset discovery output (no fileset\n", + " preprocessing)\n", + " -fo FILESET_OUTPUT, --fileset-output FILESET_OUTPUT\n", + " Output name for fileset\n", + " -p, --preprocess Preprocess with dask\n", + " --step-size STEP_SIZE\n", + " Step size for preprocessing\n", + " --dask-cluster DASK_CLUSTER\n", + " Dask cluster url\n", + " -as ALLOW_SITES [ALLOW_SITES ...], --allow-sites ALLOW_SITES [ALLOW_SITES ...]\n", + " List of sites to be allowlisted\n", + " -bs BLOCK_SITES [BLOCK_SITES ...], --block-sites BLOCK_SITES [BLOCK_SITES ...]\n", + " List of sites to be blocklisted\n", + " -rs REGEX_SITES, --regex-sites REGEX_SITES\n", + " Regex string to be used to filter the sites\n", + " --query-results-strategy QUERY_RESULTS_STRATEGY\n", + " Mode for query results selection: [all|manual]\n", + " --replicas-strategy REPLICAS_STRATEGY\n", + " Mode for selecting replicas for datasets:\n", + " [manual|round-robin|choose]\n" + ] + } + ], + "source": [ + "!python -m coffea.dataset_tools.dataset_query --help" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e93cb24c-44ed-43f1-8aae-0f6b03c88de0", + "metadata": {}, + "outputs": [], + "source": [ + "!python -m coffea.dataset_tools.dataset_query --cli -d dataset_definition.json" + ] + }, + { + "cell_type": "markdown", + "id": "f7d52663-c5e3-4abe-9c2f-4bf8f08d8919", + "metadata": {}, + "source": [ + "## Preprocess the fileset with dask" + ] + }, + { + "cell_type": "markdown", + "id": "046a0c99-6500-41b5-9954-fa7b78061800", + "metadata": {}, + "source": [ + "The replicas metadata contain the file location in the CMS grid. \n", + "This info can be **preprocessed** with uproot and dask-awkward to extract the **fileset**. Practically a fileset is a collection of metadata about the file location, file name, chunks splitting, that can be used directly to configure the uproot reading. \n", + "\n", + "This step replaces the preprocessing step in coffea 0.7.x. The output of the preprocessing can be used directly to start an analysis with dask-awkward.\n", + "\n", + "The preprocessing is performed locally with multiple processes if `dask_cluster==None`, but a pre-existing dask cluster url can be passed." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "04a2aeca-9c9f-4baf-b33b-b4f1b5ba4d4a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
  Preprocessing files to extract available chunks with dask\n",
+       "
\n" + ], + "text/plain": [ + "\u001b[32m⠙\u001b[0m \u001b[31m Preprocessing files to extract available chunks with dask\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n"
+      ],
+      "text/plain": []
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "
Saved available fileset chunks to fileset_available.json.gz\n",
+       "
\n" + ], + "text/plain": [ + "Saved available fileset chunks to fileset_available.json.gz\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Saved all fileset chunks to fileset_all.json.gz\n",
+       "
\n" + ], + "text/plain": [ + "Saved all fileset chunks to fileset_all.json.gz\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fileset_total = ddc.do_preprocess(output_file=\"fileset\", \n", + " step_size=10000, #chunk size for files splitting\n", + " align_to_clusters=False,\n", + " scheduler_url=None)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "d1206bce-b726-43cc-b217-d74fd5516147", + "metadata": {}, + "outputs": [], + "source": [ + "import gzip\n", + "import json\n", + "with gzip.open(\"fileset_available.json.gz\", \"rt\") as file:\n", + " fileset_available = json.load(file)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "957ea9c6-783a-4932-960f-cbec5f2f0656", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "root://cmsxrd.ts.infn.it:1094///store/mc/RunIISummer20UL18NanoAODv9/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/NANOAODSIM/106X_upgrade2018_realistic_v16_L1v1-v2/100000/13D0AD97-6B32-CB4C-BA87-5E37BA4CF20E.root {'object_path': 'Events', 'steps': [[0, 10000], [10000, 20000], [20000, 30000], [30000, 40000], [40000, 50000], [50000, 59081]], 'uuid': 'fbe50b00-1f7e-11ec-97b8-2bbee183beef'}\n", + "root://cmsxrd.ts.infn.it:1094///store/mc/RunIISummer20UL18NanoAODv9/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/NANOAODSIM/106X_upgrade2018_realistic_v16_L1v1-v2/230000/00C9792D-ACD2-2547-BB04-097F0C4E47E3.root {'object_path': 'Events', 'steps': [[0, 10000], [10000, 20000], [20000, 30000], [30000, 40000], [40000, 50000], [50000, 60000], [60000, 70000], [70000, 80000], [80000, 90000], [90000, 100000], [100000, 110000], [110000, 120000], [120000, 130000], [130000, 138192]], 'uuid': '938a4fe2-1d77-11ec-bddf-59319e86beef'}\n", + "root://dcache-cms-xrootd.desy.de:1094//store/mc/RunIISummer20UL18NanoAODv9/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/NANOAODSIM/106X_upgrade2018_realistic_v16_L1v1-v2/230000/00EA9563-5449-D24E-9566-98AE8E2A61AE.root {'object_path': 'Events', 'steps': [[0, 10000], [10000, 20000], [20000, 30000], [30000, 40000], [40000, 50000], [50000, 60000], [60000, 70000], [70000, 80000], [80000, 90000], [90000, 100000], [100000, 110000], [110000, 120000], [120000, 130000], [130000, 140000], [140000, 150000], [150000, 160000], [160000, 170000], [170000, 180000], [180000, 190000], [190000, 200000], [200000, 210000], [210000, 220000], [220000, 230000], [230000, 240000], [240000, 250000], [250000, 260000], [260000, 270000], [270000, 280000], [280000, 290000], [290000, 300000], [300000, 310000], [310000, 320000], [320000, 330000], [330000, 340000], [340000, 350000], [350000, 360000], [360000, 370000], [370000, 380000], [380000, 390000], [390000, 400000], [400000, 410000], [410000, 420000], [420000, 430000], [430000, 440000], [440000, 450000], [450000, 460000], [460000, 470000], [470000, 480000], [480000, 490000], [490000, 500000], [500000, 510000], [510000, 520000], [520000, 530000], [530000, 540000], [540000, 550000], [550000, 560000], [560000, 570000], [570000, 580000], [580000, 590000], [590000, 600000], [600000, 610000], [610000, 620000], [620000, 630000], [630000, 640000], [640000, 650000], [650000, 660000], [660000, 670000], [670000, 680000], [680000, 690000], [690000, 700000], [700000, 710000], [710000, 720000], [720000, 730000], [730000, 740000], [740000, 750000], [750000, 760000], [760000, 770000], [770000, 780000], [780000, 790000], [790000, 800000], [800000, 810000], [810000, 820000], [820000, 830000], [830000, 840000], [840000, 850000], [850000, 860000], [860000, 870000], [870000, 880000], [880000, 890000], [890000, 900000], [900000, 910000], [910000, 920000], [920000, 930000], [930000, 940000], [940000, 950000], [950000, 960000], [960000, 970000], [970000, 980000], [980000, 990000], [990000, 1000000], [1000000, 1010000], [1010000, 1020000], [1020000, 1030000], [1030000, 1040000], [1040000, 1050000], [1050000, 1060000], [1060000, 1070000], [1070000, 1080000], [1080000, 1090000], [1090000, 1100000], [1100000, 1110000], [1110000, 1120000], [1120000, 1130000], [1130000, 1140000], [1140000, 1150000], [1150000, 1160000], [1160000, 1170000], [1170000, 1180000], [1180000, 1190000], [1190000, 1200000], [1200000, 1210000], [1210000, 1220000], [1220000, 1230000], [1230000, 1240000], [1240000, 1250000], [1250000, 1260000], [1260000, 1270000], [1270000, 1280000], [1280000, 1290000], [1290000, 1300000], [1300000, 1310000], [1310000, 1320000], [1320000, 1330000], [1330000, 1340000], [1340000, 1350000], [1350000, 1360000], [1360000, 1370000], [1370000, 1380000], [1380000, 1390000], [1390000, 1400000], [1400000, 1410000], [1410000, 1420000], [1420000, 1430000], [1430000, 1440000], [1440000, 1450000], [1450000, 1460000], [1460000, 1470000], [1470000, 1480000], [1480000, 1490000], [1490000, 1500000], [1500000, 1510000], [1510000, 1520000], [1520000, 1530000], [1530000, 1540000], [1540000, 1550000], [1550000, 1551326]], 'uuid': 'ced110a0-1b0f-11ec-b2e9-09c08e80beef'}\n", + "root://grid-cms-xrootd.physik.rwth-aachen.de:1094///store/mc/RunIISummer20UL18NanoAODv9/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/NANOAODSIM/106X_upgrade2018_realistic_v16_L1v1-v2/230000/068B0797-DEF5-9341-BBBE-EDBE50EBC6A1.root {'object_path': 'Events', 'steps': [[0, 10000], [10000, 20000], [20000, 30000], [30000, 40000], [40000, 50000], [50000, 60000], [60000, 70000], [70000, 80000], [80000, 90000], [90000, 100000], [100000, 110000], [110000, 120000], [120000, 130000], [130000, 140000], [140000, 150000], [150000, 160000], [160000, 170000], [170000, 180000], [180000, 190000], [190000, 200000], [200000, 210000], [210000, 220000], [220000, 230000], [230000, 240000], [240000, 250000], [250000, 260000], [260000, 270000], [270000, 280000], [280000, 290000], [290000, 300000], [300000, 310000], [310000, 320000], [320000, 330000], [330000, 340000], [340000, 350000], [350000, 360000], [360000, 370000], [370000, 380000], [380000, 390000], [390000, 400000], [400000, 410000], [410000, 420000], [420000, 430000], [430000, 440000], [440000, 450000], [450000, 460000], [460000, 470000], [470000, 480000], [480000, 490000], [490000, 500000], [500000, 510000], [510000, 520000], [520000, 530000], [530000, 540000], [540000, 550000], [550000, 560000], [560000, 570000], [570000, 580000], [580000, 590000], [590000, 600000], [600000, 610000], [610000, 620000], [620000, 630000], [630000, 640000], [640000, 650000], [650000, 660000], [660000, 670000], [670000, 680000], [680000, 690000], [690000, 700000], [700000, 710000], [710000, 720000], [720000, 730000], [730000, 740000], [740000, 750000], [750000, 760000], [760000, 770000], [770000, 780000], [780000, 790000], [790000, 800000], [800000, 810000], [810000, 820000], [820000, 830000], [830000, 840000], [840000, 850000], [850000, 860000], [860000, 870000], [870000, 880000], [880000, 890000], [890000, 900000], [900000, 910000], [910000, 920000], [920000, 930000], [930000, 940000], [940000, 950000], [950000, 960000], [960000, 970000], [970000, 980000], [980000, 990000], [990000, 1000000], [1000000, 1010000], [1010000, 1020000], [1020000, 1030000], [1030000, 1040000], [1040000, 1050000], [1050000, 1060000], [1060000, 1070000], [1070000, 1080000], [1080000, 1090000], [1090000, 1100000], [1100000, 1110000], [1110000, 1120000], [1120000, 1130000], [1130000, 1138724]], 'uuid': 'd86ab2e2-1b28-11ec-8504-738a8e80beef'}\n", + "root://cmsxrd.ts.infn.it:1094///store/mc/RunIISummer20UL18NanoAODv9/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/NANOAODSIM/106X_upgrade2018_realistic_v16_L1v1-v2/230000/0CFD79EF-41AB-4B4A-8F62-06393273EEDE.root {'object_path': 'Events', 'steps': [[0, 10000], [10000, 20000], [20000, 30000], [30000, 40000], [40000, 50000], [50000, 60000], [60000, 70000], [70000, 80000], [80000, 90000], [90000, 100000], [100000, 110000], [110000, 120000], [120000, 130000], [130000, 140000], [140000, 150000], [150000, 160000], [160000, 170000], [170000, 180000], [180000, 190000], [190000, 200000], [200000, 210000], [210000, 220000], [220000, 230000], [230000, 240000], [240000, 250000], [250000, 260000], [260000, 270000], [270000, 280000], [280000, 290000], [290000, 300000], [300000, 310000], [310000, 320000], [320000, 330000], [330000, 340000], [340000, 350000], [350000, 360000], [360000, 370000], [370000, 380000], [380000, 390000], [390000, 400000], [400000, 410000], [410000, 420000], [420000, 430000], [430000, 440000], [440000, 450000], [450000, 460000], [460000, 470000], [470000, 480000], [480000, 490000], [490000, 500000], [500000, 510000], [510000, 520000], [520000, 530000], [530000, 540000], [540000, 550000], [550000, 560000], [560000, 570000], [570000, 580000], [580000, 590000], [590000, 600000], [600000, 610000], [610000, 620000], [620000, 630000], [630000, 640000], [640000, 650000], [650000, 660000], [660000, 670000], [670000, 680000], [680000, 690000], [690000, 700000], [700000, 710000], [710000, 720000], [720000, 730000], [730000, 740000], [740000, 750000], [750000, 760000], [760000, 770000], [770000, 780000], [780000, 790000], [790000, 800000], [800000, 810000], [810000, 820000], [820000, 830000], [830000, 840000], [840000, 850000], [850000, 860000], [860000, 870000], [870000, 880000], [880000, 890000], [890000, 900000], [900000, 910000], [910000, 911868]], 'uuid': '9d799986-1ad9-11ec-9257-fc1b1e0abeef'}\n" + ] + } + ], + "source": [ + "dataset = '/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2/NANOAODSIM'\n", + "for i, (file, meta) in enumerate(fileset_available[dataset][\"files\"].items()):\n", + " print(file, meta)\n", + " if i>3:\n", + " break" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f23bae95-8a2e-46a9-a884-714474a8ff12", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/mltools.html b/notebooks/mltools.html new file mode 100644 index 000000000..f84a382e2 --- /dev/null +++ b/notebooks/mltools.html @@ -0,0 +1,607 @@ + + + + + + + Running inference tools — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Running inference tools

+

As machine learning (ML) becomes more popular in HEP analysis, coffea also provide tools to assist with using ML tools within the coffea framework. For training and validation, you would likely need custom data mangling tools to convert HEP data formats (NanoAOD, PFNano) to a format that best interfaces with the ML tool of choice, as for training and validation, you typical want to +have fine control over what computation is done. For more advanced use cases of data mangling and data saving, refer to the awkward array manual and uproot/parquet write operations for saving intermediate states. The helper tools provided in coffea focuses on ML +inference, where ML tool outputs are used as another variable to be used in the event/object selection chain.

+
+

Why these wrapper tools are needed

+

The typical operation of using ML inference tools in the awkward/coffea analysis tools involves the conversion and padding of awkward array to ML tool containers (usually something that is numpy-compatible), run the inference, then convert-and-truncate back into the awkward array syntax required for the analysis chain to continue. With awkward arrays’ laziness now being handled entirely by `dask <https://dask-awkward.readthedocs.io/en/stable/gs-limitations.html>`__, the conversion +operation of awkward array to other array types needs to be wrapped in a way that is understandable to dask. The packages in the ml_tools package attempts to wrap the common tools used by the HEP community with a common interface to reduce the verbosity of the code on the analysis side.

+
+
+

Example using ParticleNet-like jet variable calculation using PyTorch

+

The example given in this notebook be using `pytorch <https://pytorch.org/>`__ to calculate a jet-level discriminant using its constituent particles. An example for how to construct such a pytorch network can be found in the docs file, but for mltools in coffea, we only support the TorchScript format files to load models to ensure operability when scaling to clusters. Let us first start by downloading the example ParticleNet model file and a small +PFNano compatible file, and a simple function to open the PFNano with and without dask.

+
+
[1]:
+
+
+
!wget --quiet -O model.pt https://github.com/CoffeaTeam/coffea/raw/master/tests/samples/triton_models_test/pn_test/1/model.pt
+!wget --quiet -O pfnano.root https://github.com/CoffeaTeam/coffea/raw/master/tests/samples/pfnano.root
+
+
+
+
+
[2]:
+
+
+
from coffea.nanoevents import NanoEventsFactory
+from coffea.nanoevents.schemas import PFNanoAODSchema
+
+
+def open_events():
+    factory = NanoEventsFactory.from_root(
+        {"file:./pfnano.root": "Events"},
+        schemaclass=PFNanoAODSchema,
+    )
+    return factory.events()
+
+
+
+

Now we prepare a class to handle inference request by extending the mltools.torch_wrapper class. As the base class cannot know anything about the data mangling required for the users particular model, we will need to overload at least the method prepare_awkward:

+
    +
  • The input can be an arbitrary number of awkward arrays or dask awkward array (but never a mix of dask/non-dask array). In this example, we will be passing in the event array.

  • +
  • The output should be single tuple a + single dictionary b, this is to ensure that arbitrarily complicated outputs can be passed to the underlying pytorch model instance like model(*a, **b). The contents of a and b should be numpy-compatible awkward-like arrays: if the inputs are non-dask awkward arrays, the return should also be non-dask awkward arrays that can be trivially converted to numpy arrays via a ak.to_numpy call; if the inputs are dask awkward +arrays, the return should be still be dask awkward arrays that can be trivially converted via a to_awkward().to_numpy() call.

    +

    In this ParticleNet-like example, the model expects the following inputs:

    +
      +
    • A N jets x 2 coordinate x 100 constituents “points” array, representing the constituent coordinates.

    • +
    • A N jets x 5 feature x 100 constituents “features” array, representing the constituent features of interest to be used for inference.

    • +
    • A N jets x 1 mask x 100 constituent “mask” array, representing whether a constituent should be masked from the inference request.

    • +
    +

    In this case, we will need to flatten the E events x N jets structure, then, we will need to stack the constituent attributes of interest via ak.concatenate into a single array.

    +
  • +
+

After defining this minimum class, we can attempt to run inference using the __call__ method defined in the base class.

+
+
[3]:
+
+
+
from coffea.ml_tools.torch_wrapper import torch_wrapper
+import awkward as ak
+import dask_awkward
+import numpy as np
+
+
+class ParticleNetExample1(torch_wrapper):
+    def prepare_awkward(self, events):
+        jets = ak.flatten(events.Jet)
+
+        def pad(arr):
+            return ak.fill_none(
+                ak.pad_none(arr, 100, axis=1, clip=True),
+                0.0,
+            )
+
+        # Human readable version of what the inputs are
+        # Each array is a N jets x 100 constituent array
+        imap = {
+            "points": {
+                "deta": pad(jets.eta - jets.constituents.pf.eta),
+                "dphi": pad(jets.delta_phi(jets.constituents.pf)),
+            },
+            "features": {
+                "dr": pad(jets.delta_r(jets.constituents.pf)),
+                "lpt": pad(np.log(jets.constituents.pf.pt)),
+                "lptf": pad(np.log(jets.constituents.pf.pt / jets.pt)),
+                "f1": pad(np.log(np.abs(jets.constituents.pf.d0) + 1)),
+                "f2": pad(np.log(np.abs(jets.constituents.pf.dz) + 1)),
+            },
+            "mask": {
+                "mask": pad(ak.ones_like(jets.constituents.pf.pt)),
+            },
+        }
+
+        # Compacting the array elements into the desired dimension using
+        # ak.concatenate
+        retmap = {
+            k: ak.concatenate([x[:, np.newaxis, :] for x in imap[k].values()], axis=1)
+            for k in imap.keys()
+        }
+
+        # Returning everything using a dictionary. Also perform type conversion!
+        return (), {
+            "points": ak.values_astype(retmap["points"], "float32"),
+            "features": ak.values_astype(retmap["features"], "float32"),
+            "mask": ak.values_astype(retmap["mask"], "float16"),
+        }
+
+
+# Setting up the model container
+pn_example1 = ParticleNetExample1("model.pt")
+
+# Running on dask_awkward array
+dask_events = open_events()
+dask_results = pn_example1(dask_events)
+print("Dask awkward results:", dask_results.compute())  # Runs file!
+
+
+
+
+
+
+
+
+/Users/saransh/Code/HEP/coffea/.env/lib/python3.11/site-packages/coffea/ml_tools/helper.py:175: UserWarning: No format checks were performed on input!
+  warnings.warn("No format checks were performed on input!")
+
+
+
+
+
+
+
+Dask awkward results: [[0.0693, -0.0448], [0.0678, -0.0451], ..., [0.0616, ...], [0.0587, -0.0172]]
+
+
+

For each jet in the input to the torch model, the model returns a 2-tuple probability value. Without additional specification, the torch_wrapper class performs a trival conversion of ak.from_numpy of the torch model’s output. We can specify that we want to fold this back into nested structure by overloading the postprocess_awkward method of the class.

+

For the ParticleNet example we are going perform additional computation for the conversion back to awkward array formats:

+
    +
  • Calculate the softmax method for the return of each jet (commonly used as the singular ML inference “scores”)

  • +
  • Fold the computed softmax array back into nested structure that is compatible with the original events.Jet array.

  • +
+

Notice that the inputs of the postprocess_awkward method is different from the prepare_awkward method, only by that the first argument is the return array of the model inference after the trivial from_numpy conversion. Notice that the return_array is a dask array.

+
+
[4]:
+
+
+
class ParticleNetExample2(ParticleNetExample1):
+    def postprocess_awkward(self, return_array, events):
+        softmax = np.exp(return_array)[:, 0] / ak.sum(np.exp(return_array), axis=-1)
+        njets = ak.count(events.Jet.pt, axis=-1)
+        return ak.unflatten(softmax, njets)
+
+
+pn_example2 = ParticleNetExample2("model.pt")
+
+# Running on dask awkward
+dask_events = open_events()
+dask_jets = dask_events.Jet
+dask_jets["MLresults"] = pn_example2(dask_events)
+dask_events["Jet"] = dask_jets
+print(dask_events.Jet.MLresults.compute())
+
+
+
+
+
+
+
+
+/Users/saransh/Code/HEP/coffea/.env/lib/python3.11/site-packages/dask_awkward/lib/structure.py:901: UserWarning: Please ensure that dask.awkward<count, npartitions=1>
+        is partitionwise-compatible with dask.awkward<divide, npartitions=1>
+        (e.g. counts comes from a dak.num(array, axis=1)),
+        otherwise this unflatten operation will fail when computed!
+  warnings.warn(
+
+
+
+
+
+
+
+[[0.528, 0.528, 0.524, 0.523, 0.521, 0.52, 0.519, 0.519], ..., [0.528, ...]]
+
+
+

Of course, the implementation of the classes above can be written in a single class. Here is a copy-and-paste implementation of the class with all the functionality described in the cells above:

+
+
[5]:
+
+
+
class ParticleNetExample(torch_wrapper):
+    def prepare_awkward(self, events):
+        jets = ak.flatten(events.Jet)
+
+        def pad(arr):
+            return ak.fill_none(
+                ak.pad_none(arr, 100, axis=1, clip=True),
+                0.0,
+            )
+
+        # Human readable version of what the inputs are
+        # Each array is a N jets x 100 constituent array
+        imap = {
+            "points": {
+                "deta": pad(jets.eta - jets.constituents.pf.eta),
+                "dphi": pad(jets.delta_phi(jets.constituents.pf)),
+            },
+            "features": {
+                "dr": pad(jets.delta_r(jets.constituents.pf)),
+                "lpt": pad(np.log(jets.constituents.pf.pt)),
+                "lptf": pad(np.log(jets.constituents.pf.pt / jets.pt)),
+                "f1": pad(np.log(np.abs(jets.constituents.pf.d0) + 1)),
+                "f2": pad(np.log(np.abs(jets.constituents.pf.dz) + 1)),
+            },
+            "mask": {
+                "mask": pad(ak.ones_like(jets.constituents.pf.pt)),
+            },
+        }
+
+        # Compacting the array elements into the desired dimension using
+        # ak.concatenate
+        retmap = {
+            k: ak.concatenate([x[:, np.newaxis, :] for x in imap[k].values()], axis=1)
+            for k in imap.keys()
+        }
+
+        # Returning everything using a dictionary. Also take care of type
+        # conversion here.
+        return (), {
+            "points": ak.values_astype(retmap["points"], "float32"),
+            "features": ak.values_astype(retmap["features"], "float32"),
+            "mask": ak.values_astype(retmap["mask"], "float16"),
+        }
+
+    def postprocess_awkward(self, return_array, events):
+        softmax = np.exp(return_array)[:, 0] / ak.sum(np.exp(return_array), axis=-1)
+        njets = ak.count(events.Jet.pt, axis=-1)
+        return ak.unflatten(softmax, njets)
+
+
+pn_example = ParticleNetExample("model.pt")
+
+# Running on dask awkward arrays
+dask_events = open_events()
+dask_jets = dask_events.Jet
+dask_jets["MLresults"] = pn_example(dask_events)
+dask_events["Jet"] = dask_jets
+print(dask_events.Jet.MLresults.compute())
+
+print(dask_awkward.necessary_columns(dask_events.Jet.MLresults))
+
+
+
+
+
+
+
+
+[[0.528, 0.528, 0.524, 0.523, 0.521, 0.52, 0.519, 0.519], ..., [0.528, ...]]
+{'from-uproot-3196a0c383555cda3738c112acd1c70e': frozenset({'nJetPFCands', 'PFCands_dz', 'nPFCands', 'Jet_eta', 'Jet_nConstituents', 'PFCands_phi', 'PFCands_d0', 'nJet', 'PFCands_pt', 'JetPFCands_pFCandsIdx', 'PFCands_eta', 'Jet_phi', 'Jet_pt'})}
+
+
+

In particular, analyzers should check that the last line contains only the branches required for ML inference; if there are many non-required branches, this may lead the significant performance penalties.

+

As per other dask tools, the users can extract how dask is analyzing the processing the computation routines using the following snippet.

+
+
[6]:
+
+
+
print(dask_results.dask)
+dask_results.visualize(optimize_graph=False)
+
+
+
+
+
+
+
+
+HighLevelGraph with 104 layers.
+<dask.highlevelgraph.HighLevelGraph object at 0x29169cc10>
+ 0. from-uproot-3196a0c383555cda3738c112acd1c70e
+ 1. JetPFCands-dd2ea51f30214bf71538143d483f24f9
+ 2. PFCands-bc578074fd7542d617f1a321b55033b8
+ 3. JetPFCands-2022a279fa9f32fb5958ee0196c7bc9c
+ 4. PFCands-83b1509b3ea29e972a2c83951cb53cb6
+ 5. JetPFCands-c3abed82cbd768736fc7d2efe53b1bfb
+ 6. PFCands-1082ee2cc592b1a0c1b8219ddbb9df76
+ 7. JetPFCands-95b391cea3695b0e90f6ff4136821900
+ 8. PFCands-448b56417f7e6e78f111bda34eb8ba7e
+ 9. JetPFCands-31a2eb013adf67227780245e9f6e7654
+ 10. PFCands-80d89bc6034885fc4a99e252f4c76d87
+ 11. JetPFCands-fa15abc1502f6fa51ba0d6608dac9af8
+ 12. PFCands-4b547af5e660141b1c5163448bc75e50
+ 13. JetPFCands-65dd6ed1fed0463a350740a761960f79
+ 14. PFCands-18a47bdc7f8227a81fc30fa63c20e0b8
+ 15. JetPFCands-a30dac67296389d5ee6ed32d038d9a29
+ 16. PFCands-16b38f51395d73298b304b5b74560b87
+ 17. Jet-2a79d0b5a69da035a6f63a34642205aa
+ 18. flatten-645563137107a3dabf8c0252326c099b
+ 19. pFCandsIdxG-be948845416432cfc7843dc1818979ba
+ 20. apply-global-index-5d46f157ea0ed464f14667860b7f9fa0
+ 21. pFCandsIdxG-3658836fb2e3ea21bc533848c17dbf9c
+ 22. apply-global-index-7ea60f265dccb1ecc1371332dda18513
+ 23. pt-e2b62bfe096c321d604a32fbf89668b2
+ 24. ones-like-d424640d3caa1d220630da9879f9a6d4
+ 25. pad-none-61123924df10b8c261bbc98bc5c2b24f
+ 26. fill-none-16100aa7cabf6e0f37054b3cda2d9d7e
+ 27. getitem-fad74ed67d4b95383a9d0afde0e454b4
+ 28. concatenate-axisgt0-0615838b6257bb1dd9e0ad365df899a7
+ 29. values-astype-2f87bb6f27689b84fbd8379d88089848
+ 30. pFCandsIdxG-91d61065f2be395629a7f7c2f4c75a4c
+ 31. apply-global-index-0920d60e59835d92a5dacb96a448cb0d
+ 32. pFCandsIdxG-a081c6286992ba2fccaa2f2a11518923
+ 33. apply-global-index-e509f72064969e949a238db289c45072
+ 34. dz-1730bacc99456e5ba3253a49df42e172
+ 35. absolute-e01baff37424469f75445b90028366da
+ 36. add-a70004667fa4b10107c6efb1f2a97989
+ 37. log-a3603e25871acedaabcc3e2099d4bcb2
+ 38. pad-none-4a4dedef54637f16ef2b271c1475f31a
+ 39. fill-none-c5a035e8e95e0c9e361ff39d1ebd9f2d
+ 40. getitem-bc1fb20d7b9e5fbc6a51534ccd3054f3
+ 41. pFCandsIdxG-d6802f98055e2806250a9c3227728372
+ 42. apply-global-index-e35fa5ba3d7597da70c007766683a812
+ 43. pFCandsIdxG-632a8052988ed5a2a8938a273ab2d333
+ 44. apply-global-index-b5e8f87704f5d545cf817d2762944d25
+ 45. d0-29e79e5b5a7de17a03a3d475ff89c599
+ 46. absolute-c8d09ca24f3086d1e1e2b9414b4ed022
+ 47. add-8761d4cf88a177af713d19002a764f4f
+ 48. log-ddae64d2513ac33f2660b46d6854a3dc
+ 49. pad-none-d886677ded46c3f4e8d87456e6e680e2
+ 50. fill-none-d45149e4990e4da381d842d166e7c5ba
+ 51. getitem-836d4f0d5523ecbd8d6db1e90ae2b3b6
+ 52. pt-10e04c1e9f951b6eea81cb85c498833a
+ 53. pFCandsIdxG-f039caebcf4c11cb6e22e91d73d58061
+ 54. apply-global-index-b7778b7df69d732f785a0b8c9d57ca7c
+ 55. pFCandsIdxG-32fb1e5b834c5af2cfb38c19c71f7901
+ 56. apply-global-index-75fa94598ada38bc2c7ac256829aba69
+ 57. pt-35cd28a2662d400d82c8b0e0bf1043be
+ 58. divide-b70f48381fa00780673100850a77be64
+ 59. log-59467169551d668c177b279d7ce41e08
+ 60. pad-none-d5344cecf02aace568fb6048ed540975
+ 61. fill-none-82e8626d15b47f726ea132d0ce2172db
+ 62. getitem-4404eac5ca31322afe93d2f586df1bc7
+ 63. pFCandsIdxG-f0b011a50db292fb2b871686ee0a4ca4
+ 64. apply-global-index-adabd8aa56e51de7d7da71bbc78e54d7
+ 65. pFCandsIdxG-61b55e563c2ef8da75531d37f4588e46
+ 66. apply-global-index-4ddf80eb0996d4e224663e3718eea052
+ 67. pt-54e90537bdb3fe376c28a70cd79127a6
+ 68. log-8784340a02993c5f7a0a94affb9303b7
+ 69. pad-none-8e9507bad08a1e98574503d852bb8e08
+ 70. fill-none-35f0eb9a5380d8e9b99d3fdd92720c63
+ 71. getitem-3122b07919ce90a875c60fe3379baaf2
+ 72. pFCandsIdxG-6751177f307689956c9a5195ee32bf1c
+ 73. apply-global-index-7d0b6c07be47f20e367642fb8e283891
+ 74. pFCandsIdxG-5057f535f83a536bfa670cd1be195413
+ 75. apply-global-index-35c83043c8ca14ca9330f4e462ee80d3
+ 76. delta-r-a4e12fdba83dc2391ced6c43b1f899fd
+ 77. pad-none-529c1a1cfc95ddd8615681183fb06572
+ 78. fill-none-ea30a23fe8ebad07ad2326697bc04680
+ 79. getitem-9f44943e437f2bb256ccc100cc97f2da
+ 80. concatenate-axisgt0-b5c7c2098dc5ed82427a7f31eb5ed39a
+ 81. values-astype-e8e2df120704dbe38f61b0a4b0263819
+ 82. pFCandsIdxG-aa02ecbc510ba5db2b1bec3d1007c8a7
+ 83. apply-global-index-149b1ad33ead558e3b736d22c3a261fc
+ 84. pFCandsIdxG-988a4723504c8a86b25fce7b6dcd1ed0
+ 85. apply-global-index-ac5938c59513f8973b8a0cc39f69be2a
+ 86. delta-phi-f7ff1ff2df14e7932e2b711fb13b15ab
+ 87. pad-none-4fbed45948badcca50ce362c653eefff
+ 88. fill-none-1f7d59ea6f5c76a6b81dbf2e358271e1
+ 89. getitem-0dc813c8eeffc021339d7e91776fa416
+ 90. pFCandsIdxG-e798cc4121bd681e903080f4f1389924
+ 91. apply-global-index-d7b8b6b56eeeb86c9683ebc761346f24
+ 92. pFCandsIdxG-f6807458d1b798c1765dc82431de0630
+ 93. apply-global-index-97d92fe2282fbbc36a1d400cebc3f8d6
+ 94. eta-f24b1fc33dca394d0f6803cc7784e37e
+ 95. eta-d97bf469e0213a29c85425c1e3d91b04
+ 96. subtract-6138b5e5f850f64d920c23efa39303ca
+ 97. pad-none-9b25781acc91d8b6517bb37dae719dd0
+ 98. fill-none-d0965fb8ec4099be0707b78aecaf4a1b
+ 99. getitem-9f41b44078a5993adc37fbadf25ee227
+ 100. concatenate-axisgt0-fae11878826f65e15ee7d9eb1e0043d7
+ 101. values-astype-bf0acc24ca1d686bc7e4dc91eee546e8
+ 102. ParticleNetExample1-d4d79650-ea96-4f0d-9187-9a87f15fe12c
+ 103. numpy-call-ParticleNetExample1-906b63a30d0298bea4410f9b6ff1d666
+
+
+
+
+
[6]:
+
+
+
+../_images/notebooks_mltools_12_1.png +
+
+

Or a peek at the optimized results:

+
+
[7]:
+
+
+
dask_results.visualize(optimize_graph=True)
+
+
+
+
+
+
+
+
+/Users/saransh/Code/HEP/coffea/.env/lib/python3.11/site-packages/coffea/ml_tools/helper.py:175: UserWarning: No format checks were performed on input!
+  warnings.warn("No format checks were performed on input!")
+
+
+
+
[7]:
+
+
+
+../_images/notebooks_mltools_14_1.png +
+
+
+
+

Comments about generalizing to other ML tools

+

All ML wrappers provided in the coffea.mltools module (triton_wrapper for triton server inference, torch_wrapper for pytorch, xgboost_wrapper for xgboost inference, tf_wrapper for tensorflow) follow the same design: analyzers is responsible for providing the model of interest, along with providing an inherited class that overloads of the following methods +to data type conversion:

+
    +
  • prepare_awkward: converting awkward arrays to numpy-compatible awkward arrays, the output arrays should be in the format of a tuple a and a dictionary b, which can be expanded out to the input of the ML tool like model(*a, **b). Notice some additional trivial conversion, such as the conversion to available kernels for pytorch, converting to a matrix format for xgboost, and slice of array for triton is handled automatically by the respective wrappers.

  • +
  • postprocess_awkward (optional): converting the trivial converted numpy array results back to the analysis specific format. If this is not provided, then a simple ak.from_numpy conversion results is returned.

  • +
+

If the ML tool of choice for your analysis has not been implemented by the coffea.mltools modules, consider constructing your own with the provided numpy_call_wrapper base class in coffea.mltools. Aside from the functions listed above, you will also need to provide the numpy_call method to perform any additional data format conversions, and call the ML tool of choice. If you think your implementation is general, also consider submitting a PR to the coffea repository!

+
+
+

Additional comments on common prepare_awkward patterns

+

The key requirement of all wrapper classes in ml_tools pacakge, is that to convert awkward arrays into numpy-compatible formats using just awkward related tools, which ensures that no eager data conversion is performed on dask arrays. Below are some common patterns that are useful when defining a user-level class.

+
+

Casting multiple fields a collection to be separate axis

+

Given our collection of particles of length \(N\), our tool is interested in just a sub-set of fields is to be represented as an \(N\time M\) array. You can do acheive this using just ak.concatenate and dimension expansion with np.newaxis:

+
fields_of_interest = ["field1", "field2", "field3"]
+part_np_array = ak.concatenate(
+    [
+        part[field][:,np.newaxis] # Expanding length N array to Nx1
+        for field in fields_of_interest
+    ],
+    axis=1,
+) # This should now be a Nx3 array
+
+
+
+
+

Fixing collection dimensions

+

Many ML inteference tools work with fixed dimension inputs, with missing entries being set to a placeholder values. A common method for achieving this in awkward is with pad_none/fill_none calls, for example to pad the number of particles passed to the inference tool in each event to be a fixed length of 128:

+
part_padded = ak.fill_none(
+    ak.pad_none(part, 128, axis=1, clip=True),
+    -1000, # Placeholder value
+    axis=1,
+)
+
+
+

The dimensions of this resulting part_padded array is still N x var, indicating that the number of entries axis=1 can potentially be variable. Depending on the ML tools being used, this axis dimension may to be fixed. To strictly convert this to a Nx128 array, one can call flatten/unflatten pairs:

+
part_padded = ak.flatten(part_padded)
+part_padded = ak.unflatten(part_padded, 128) # Now this is a Nx128 array
+
+
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/notebooks/mltools.ipynb b/notebooks/mltools.ipynb new file mode 100644 index 000000000..58d48bc19 --- /dev/null +++ b/notebooks/mltools.ipynb @@ -0,0 +1,670 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Running inference tools\n", + "\n", + "As machine learning (ML) becomes more popular in HEP analysis, `coffea` also\n", + "provide tools to assist with using ML tools within the coffea framework. For\n", + "training and validation, you would likely need custom data mangling tools to\n", + "convert HEP data formats ([NanoAOD][nanoaod], [PFNano][pfnano]) to a format that\n", + "best interfaces with the ML tool of choice, as for training and validation, you\n", + "typical want to have fine control over what computation is done. For more\n", + "advanced use cases of data mangling and data saving, refer to the [awkward array\n", + "manual][datamangle] and [uproot][uproot_write]/[parquet][ak_parquet] write\n", + "operations for saving intermediate states. The helper tools provided in coffea\n", + "focuses on ML inference, where ML tool outputs are used as another variable to\n", + "be used in the event/object selection chain.\n", + "\n", + "[nanoaod]: https://twiki.cern.ch/twiki/bin/view/CMSPublic/WorkBookNanoAOD\n", + "[pfnano]: https://github.com/cms-jet/PFNano\n", + "[datamangle]: https://awkward-array.org/doc/main/user-guide/how-to-restructure.html\n", + "[uproot_write]: https://uproot.readthedocs.io/en/latest/basic.html#writing-ttrees-to-a-file\n", + "[ak_parquet]: https://awkward-array.org/doc/main/reference/generated/ak.to_parquet.html\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Why these wrapper tools are needed\n", + "\n", + "The typical operation of using ML inference tools in the awkward/coffea analysis\n", + "tools involves the conversion and padding of awkward array to ML tool containers\n", + "(usually something that is `numpy`-compatible), run the inference, then\n", + "convert-and-truncate back into the awkward array syntax required for the\n", + "analysis chain to continue. With awkward arrays' laziness now being handled\n", + "entirely by [`dask`][dask_awkward], the conversion operation of awkward array to\n", + "other array types needs to be wrapped in a way that is understandable to `dask`.\n", + "The packages in the `ml_tools` package attempts to wrap the common tools used by\n", + "the HEP community with a common interface to reduce the verbosity of the code on\n", + "the analysis side.\n", + "\n", + "[dask_awkward]: https://dask-awkward.readthedocs.io/en/stable/gs-limitations.html\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example using ParticleNet-like jet variable calculation using PyTorch\n", + "\n", + "The example given in this notebook be using [`pytorch`][pytorch] to calculate a\n", + "jet-level discriminant using its constituent particles. An example for how to\n", + "construct such a `pytorch` network can be found in the docs file, but for\n", + "`mltools` in coffea, we only support the [TorchScript][pytorch] format files to\n", + "load models to ensure operability when scaling to clusters. Let us first start\n", + "by downloading the example ParticleNet model file and a small `PFNano`\n", + "compatible file, and a simple function to open the `PFNano` with and without\n", + "dask.\n", + "\n", + "[pytorch]: https://pytorch.org/\n", + "[pytorch_jit]: https://pytorch.org/tutorials/beginner/saving_loading_models.html#export-load-model-in-torchscript-format\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "!wget --quiet -O model.pt https://github.com/CoffeaTeam/coffea/raw/master/tests/samples/triton_models_test/pn_test/1/model.pt\n", + "!wget --quiet -O pfnano.root https://github.com/CoffeaTeam/coffea/raw/master/tests/samples/pfnano.root" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from coffea.nanoevents import NanoEventsFactory\n", + "from coffea.nanoevents.schemas import PFNanoAODSchema\n", + "\n", + "\n", + "def open_events():\n", + " factory = NanoEventsFactory.from_root(\n", + " {\"file:./pfnano.root\": \"Events\"},\n", + " schemaclass=PFNanoAODSchema,\n", + " )\n", + " return factory.events()\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we prepare a class to handle inference request by extending the\n", + "`mltools.torch_wrapper` class. As the base class cannot know anything about the\n", + "data mangling required for the users particular model, we will need to overload\n", + "at least the method `prepare_awkward`:\n", + "\n", + "- The input can be an arbitrary number of awkward arrays or dask awkward array\n", + " (but never a mix of dask/non-dask array). In this example, we will be passing\n", + " in the event array.\n", + "- The output should be single tuple `a` + single dictionary `b`, this is to\n", + " ensure that arbitrarily complicated outputs can be passed to the underlying\n", + " `pytorch` model instance like `model(*a, **b)`. The contents of `a` and `b`\n", + " should be `numpy`-compatible awkward-like arrays: if the inputs are non-dask\n", + " awkward arrays, the return should also be non-dask awkward arrays that can be\n", + " trivially converted to `numpy` arrays via a `ak.to_numpy` call; if the inputs\n", + " are dask awkward arrays, the return should be still be dask awkward arrays\n", + " that can be trivially converted via a `to_awkward().to_numpy()` call.\n", + "\n", + " In this ParticleNet-like example, the model expects the following inputs:\n", + "\n", + " - A `N` jets x `2` coordinate x `100` constituents \"points\" array,\n", + " representing the constituent coordinates.\n", + " - A `N` jets x `5` feature x `100` constituents \"features\" array, representing\n", + " the constituent features of interest to be used for inference.\n", + " - A `N` jets x `1` mask x `100` constituent \"mask\" array, representing whether\n", + " a constituent should be masked from the inference request.\n", + "\n", + " In this case, we will need to flatten the `E` events x `N` jets structure,\n", + " then, we will need to stack the constituent attributes of interest via\n", + " `ak.concatenate` into a single array.\n", + "\n", + "After defining this minimum class, we can attempt to run inference using the\n", + "`__call__` method defined in the base class.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/saransh/Code/HEP/coffea/.env/lib/python3.11/site-packages/coffea/ml_tools/helper.py:175: UserWarning: No format checks were performed on input!\n", + " warnings.warn(\"No format checks were performed on input!\")\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Dask awkward results: [[0.0693, -0.0448], [0.0678, -0.0451], ..., [0.0616, ...], [0.0587, -0.0172]]\n" + ] + } + ], + "source": [ + "from coffea.ml_tools.torch_wrapper import torch_wrapper\n", + "import awkward as ak\n", + "import dask_awkward\n", + "import numpy as np\n", + "\n", + "\n", + "class ParticleNetExample1(torch_wrapper):\n", + " def prepare_awkward(self, events):\n", + " jets = ak.flatten(events.Jet)\n", + "\n", + " def pad(arr):\n", + " return ak.fill_none(\n", + " ak.pad_none(arr, 100, axis=1, clip=True),\n", + " 0.0,\n", + " )\n", + "\n", + " # Human readable version of what the inputs are\n", + " # Each array is a N jets x 100 constituent array\n", + " imap = {\n", + " \"points\": {\n", + " \"deta\": pad(jets.eta - jets.constituents.pf.eta),\n", + " \"dphi\": pad(jets.delta_phi(jets.constituents.pf)),\n", + " },\n", + " \"features\": {\n", + " \"dr\": pad(jets.delta_r(jets.constituents.pf)),\n", + " \"lpt\": pad(np.log(jets.constituents.pf.pt)),\n", + " \"lptf\": pad(np.log(jets.constituents.pf.pt / jets.pt)),\n", + " \"f1\": pad(np.log(np.abs(jets.constituents.pf.d0) + 1)),\n", + " \"f2\": pad(np.log(np.abs(jets.constituents.pf.dz) + 1)),\n", + " },\n", + " \"mask\": {\n", + " \"mask\": pad(ak.ones_like(jets.constituents.pf.pt)),\n", + " },\n", + " }\n", + "\n", + " # Compacting the array elements into the desired dimension using\n", + " # ak.concatenate\n", + " retmap = {\n", + " k: ak.concatenate([x[:, np.newaxis, :] for x in imap[k].values()], axis=1)\n", + " for k in imap.keys()\n", + " }\n", + "\n", + " # Returning everything using a dictionary. Also perform type conversion!\n", + " return (), {\n", + " \"points\": ak.values_astype(retmap[\"points\"], \"float32\"),\n", + " \"features\": ak.values_astype(retmap[\"features\"], \"float32\"),\n", + " \"mask\": ak.values_astype(retmap[\"mask\"], \"float16\"),\n", + " }\n", + "\n", + "\n", + "# Setting up the model container\n", + "pn_example1 = ParticleNetExample1(\"model.pt\")\n", + "\n", + "# Running on dask_awkward array\n", + "dask_events = open_events()\n", + "dask_results = pn_example1(dask_events)\n", + "print(\"Dask awkward results:\", dask_results.compute()) # Runs file!" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For each jet in the input to the `torch` model, the model returns a 2-tuple\n", + "probability value. Without additional specification, the `torch_wrapper` class\n", + "performs a trival conversion of `ak.from_numpy` of the torch model's output. We\n", + "can specify that we want to fold this back into nested structure by overloading\n", + "the `postprocess_awkward` method of the class.\n", + "\n", + "For the ParticleNet example we are going perform additional computation for the\n", + "conversion back to awkward array formats:\n", + "\n", + "- Calculate the `softmax` method for the return of each jet (commonly used as\n", + " the singular ML inference \"scores\")\n", + "- Fold the computed `softmax` array back into nested structure that is\n", + " compatible with the original events.Jet array.\n", + "\n", + "Notice that the inputs of the `postprocess_awkward` method is different from the\n", + "`prepare_awkward` method, only by that the first argument is the return array\n", + "of the model inference after the trivial `from_numpy` conversion. Notice that\n", + "the return_array is a dask array.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/saransh/Code/HEP/coffea/.env/lib/python3.11/site-packages/dask_awkward/lib/structure.py:901: UserWarning: Please ensure that dask.awkward\n", + " is partitionwise-compatible with dask.awkward\n", + " (e.g. counts comes from a dak.num(array, axis=1)),\n", + " otherwise this unflatten operation will fail when computed!\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0.528, 0.528, 0.524, 0.523, 0.521, 0.52, 0.519, 0.519], ..., [0.528, ...]]\n" + ] + } + ], + "source": [ + "class ParticleNetExample2(ParticleNetExample1):\n", + " def postprocess_awkward(self, return_array, events):\n", + " softmax = np.exp(return_array)[:, 0] / ak.sum(np.exp(return_array), axis=-1)\n", + " njets = ak.count(events.Jet.pt, axis=-1)\n", + " return ak.unflatten(softmax, njets)\n", + "\n", + "\n", + "pn_example2 = ParticleNetExample2(\"model.pt\")\n", + "\n", + "# Running on dask awkward\n", + "dask_events = open_events()\n", + "dask_jets = dask_events.Jet\n", + "dask_jets[\"MLresults\"] = pn_example2(dask_events)\n", + "dask_events[\"Jet\"] = dask_jets\n", + "print(dask_events.Jet.MLresults.compute())" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Of course, the implementation of the classes above can be written in a single\n", + "class. Here is a copy-and-paste implementation of the class with all the\n", + "functionality described in the cells above:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0.528, 0.528, 0.524, 0.523, 0.521, 0.52, 0.519, 0.519], ..., [0.528, ...]]\n", + "{'from-uproot-3196a0c383555cda3738c112acd1c70e': frozenset({'nJetPFCands', 'PFCands_dz', 'nPFCands', 'Jet_eta', 'Jet_nConstituents', 'PFCands_phi', 'PFCands_d0', 'nJet', 'PFCands_pt', 'JetPFCands_pFCandsIdx', 'PFCands_eta', 'Jet_phi', 'Jet_pt'})}\n" + ] + } + ], + "source": [ + "class ParticleNetExample(torch_wrapper):\n", + " def prepare_awkward(self, events):\n", + " jets = ak.flatten(events.Jet)\n", + "\n", + " def pad(arr):\n", + " return ak.fill_none(\n", + " ak.pad_none(arr, 100, axis=1, clip=True),\n", + " 0.0,\n", + " )\n", + "\n", + " # Human readable version of what the inputs are\n", + " # Each array is a N jets x 100 constituent array\n", + " imap = {\n", + " \"points\": {\n", + " \"deta\": pad(jets.eta - jets.constituents.pf.eta),\n", + " \"dphi\": pad(jets.delta_phi(jets.constituents.pf)),\n", + " },\n", + " \"features\": {\n", + " \"dr\": pad(jets.delta_r(jets.constituents.pf)),\n", + " \"lpt\": pad(np.log(jets.constituents.pf.pt)),\n", + " \"lptf\": pad(np.log(jets.constituents.pf.pt / jets.pt)),\n", + " \"f1\": pad(np.log(np.abs(jets.constituents.pf.d0) + 1)),\n", + " \"f2\": pad(np.log(np.abs(jets.constituents.pf.dz) + 1)),\n", + " },\n", + " \"mask\": {\n", + " \"mask\": pad(ak.ones_like(jets.constituents.pf.pt)),\n", + " },\n", + " }\n", + "\n", + " # Compacting the array elements into the desired dimension using\n", + " # ak.concatenate\n", + " retmap = {\n", + " k: ak.concatenate([x[:, np.newaxis, :] for x in imap[k].values()], axis=1)\n", + " for k in imap.keys()\n", + " }\n", + "\n", + " # Returning everything using a dictionary. Also take care of type\n", + " # conversion here.\n", + " return (), {\n", + " \"points\": ak.values_astype(retmap[\"points\"], \"float32\"),\n", + " \"features\": ak.values_astype(retmap[\"features\"], \"float32\"),\n", + " \"mask\": ak.values_astype(retmap[\"mask\"], \"float16\"),\n", + " }\n", + "\n", + " def postprocess_awkward(self, return_array, events):\n", + " softmax = np.exp(return_array)[:, 0] / ak.sum(np.exp(return_array), axis=-1)\n", + " njets = ak.count(events.Jet.pt, axis=-1)\n", + " return ak.unflatten(softmax, njets)\n", + "\n", + "\n", + "pn_example = ParticleNetExample(\"model.pt\")\n", + "\n", + "# Running on dask awkward arrays\n", + "dask_events = open_events()\n", + "dask_jets = dask_events.Jet\n", + "dask_jets[\"MLresults\"] = pn_example(dask_events)\n", + "dask_events[\"Jet\"] = dask_jets\n", + "print(dask_events.Jet.MLresults.compute())\n", + "\n", + "print(dask_awkward.necessary_columns(dask_events.Jet.MLresults))" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In particular, analyzers should check that the last line contains only the\n", + "branches required for ML inference; if there are many non-required branches,\n", + "this may lead the significant performance penalties. \n", + "\n", + "As per other dask tools, the users can extract how dask is analyzing the\n", + "processing the computation routines using the following snippet." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "HighLevelGraph with 104 layers.\n", + "\n", + " 0. from-uproot-3196a0c383555cda3738c112acd1c70e\n", + " 1. JetPFCands-dd2ea51f30214bf71538143d483f24f9\n", + " 2. PFCands-bc578074fd7542d617f1a321b55033b8\n", + " 3. JetPFCands-2022a279fa9f32fb5958ee0196c7bc9c\n", + " 4. PFCands-83b1509b3ea29e972a2c83951cb53cb6\n", + " 5. JetPFCands-c3abed82cbd768736fc7d2efe53b1bfb\n", + " 6. PFCands-1082ee2cc592b1a0c1b8219ddbb9df76\n", + " 7. JetPFCands-95b391cea3695b0e90f6ff4136821900\n", + " 8. PFCands-448b56417f7e6e78f111bda34eb8ba7e\n", + " 9. JetPFCands-31a2eb013adf67227780245e9f6e7654\n", + " 10. PFCands-80d89bc6034885fc4a99e252f4c76d87\n", + " 11. JetPFCands-fa15abc1502f6fa51ba0d6608dac9af8\n", + " 12. PFCands-4b547af5e660141b1c5163448bc75e50\n", + " 13. JetPFCands-65dd6ed1fed0463a350740a761960f79\n", + " 14. PFCands-18a47bdc7f8227a81fc30fa63c20e0b8\n", + " 15. JetPFCands-a30dac67296389d5ee6ed32d038d9a29\n", + " 16. PFCands-16b38f51395d73298b304b5b74560b87\n", + " 17. Jet-2a79d0b5a69da035a6f63a34642205aa\n", + " 18. flatten-645563137107a3dabf8c0252326c099b\n", + " 19. pFCandsIdxG-be948845416432cfc7843dc1818979ba\n", + " 20. apply-global-index-5d46f157ea0ed464f14667860b7f9fa0\n", + " 21. pFCandsIdxG-3658836fb2e3ea21bc533848c17dbf9c\n", + " 22. apply-global-index-7ea60f265dccb1ecc1371332dda18513\n", + " 23. pt-e2b62bfe096c321d604a32fbf89668b2\n", + " 24. ones-like-d424640d3caa1d220630da9879f9a6d4\n", + " 25. pad-none-61123924df10b8c261bbc98bc5c2b24f\n", + " 26. fill-none-16100aa7cabf6e0f37054b3cda2d9d7e\n", + " 27. getitem-fad74ed67d4b95383a9d0afde0e454b4\n", + " 28. concatenate-axisgt0-0615838b6257bb1dd9e0ad365df899a7\n", + " 29. values-astype-2f87bb6f27689b84fbd8379d88089848\n", + " 30. pFCandsIdxG-91d61065f2be395629a7f7c2f4c75a4c\n", + " 31. apply-global-index-0920d60e59835d92a5dacb96a448cb0d\n", + " 32. pFCandsIdxG-a081c6286992ba2fccaa2f2a11518923\n", + " 33. apply-global-index-e509f72064969e949a238db289c45072\n", + " 34. dz-1730bacc99456e5ba3253a49df42e172\n", + " 35. absolute-e01baff37424469f75445b90028366da\n", + " 36. add-a70004667fa4b10107c6efb1f2a97989\n", + " 37. log-a3603e25871acedaabcc3e2099d4bcb2\n", + " 38. pad-none-4a4dedef54637f16ef2b271c1475f31a\n", + " 39. fill-none-c5a035e8e95e0c9e361ff39d1ebd9f2d\n", + " 40. getitem-bc1fb20d7b9e5fbc6a51534ccd3054f3\n", + " 41. pFCandsIdxG-d6802f98055e2806250a9c3227728372\n", + " 42. apply-global-index-e35fa5ba3d7597da70c007766683a812\n", + " 43. pFCandsIdxG-632a8052988ed5a2a8938a273ab2d333\n", + " 44. apply-global-index-b5e8f87704f5d545cf817d2762944d25\n", + " 45. d0-29e79e5b5a7de17a03a3d475ff89c599\n", + " 46. absolute-c8d09ca24f3086d1e1e2b9414b4ed022\n", + " 47. add-8761d4cf88a177af713d19002a764f4f\n", + " 48. log-ddae64d2513ac33f2660b46d6854a3dc\n", + " 49. pad-none-d886677ded46c3f4e8d87456e6e680e2\n", + " 50. fill-none-d45149e4990e4da381d842d166e7c5ba\n", + " 51. getitem-836d4f0d5523ecbd8d6db1e90ae2b3b6\n", + " 52. pt-10e04c1e9f951b6eea81cb85c498833a\n", + " 53. pFCandsIdxG-f039caebcf4c11cb6e22e91d73d58061\n", + " 54. apply-global-index-b7778b7df69d732f785a0b8c9d57ca7c\n", + " 55. pFCandsIdxG-32fb1e5b834c5af2cfb38c19c71f7901\n", + " 56. apply-global-index-75fa94598ada38bc2c7ac256829aba69\n", + " 57. pt-35cd28a2662d400d82c8b0e0bf1043be\n", + " 58. divide-b70f48381fa00780673100850a77be64\n", + " 59. log-59467169551d668c177b279d7ce41e08\n", + " 60. pad-none-d5344cecf02aace568fb6048ed540975\n", + " 61. fill-none-82e8626d15b47f726ea132d0ce2172db\n", + " 62. getitem-4404eac5ca31322afe93d2f586df1bc7\n", + " 63. pFCandsIdxG-f0b011a50db292fb2b871686ee0a4ca4\n", + " 64. apply-global-index-adabd8aa56e51de7d7da71bbc78e54d7\n", + " 65. pFCandsIdxG-61b55e563c2ef8da75531d37f4588e46\n", + " 66. apply-global-index-4ddf80eb0996d4e224663e3718eea052\n", + " 67. pt-54e90537bdb3fe376c28a70cd79127a6\n", + " 68. log-8784340a02993c5f7a0a94affb9303b7\n", + " 69. pad-none-8e9507bad08a1e98574503d852bb8e08\n", + " 70. fill-none-35f0eb9a5380d8e9b99d3fdd92720c63\n", + " 71. getitem-3122b07919ce90a875c60fe3379baaf2\n", + " 72. pFCandsIdxG-6751177f307689956c9a5195ee32bf1c\n", + " 73. apply-global-index-7d0b6c07be47f20e367642fb8e283891\n", + " 74. pFCandsIdxG-5057f535f83a536bfa670cd1be195413\n", + " 75. apply-global-index-35c83043c8ca14ca9330f4e462ee80d3\n", + " 76. delta-r-a4e12fdba83dc2391ced6c43b1f899fd\n", + " 77. pad-none-529c1a1cfc95ddd8615681183fb06572\n", + " 78. fill-none-ea30a23fe8ebad07ad2326697bc04680\n", + " 79. getitem-9f44943e437f2bb256ccc100cc97f2da\n", + " 80. concatenate-axisgt0-b5c7c2098dc5ed82427a7f31eb5ed39a\n", + " 81. values-astype-e8e2df120704dbe38f61b0a4b0263819\n", + " 82. pFCandsIdxG-aa02ecbc510ba5db2b1bec3d1007c8a7\n", + " 83. apply-global-index-149b1ad33ead558e3b736d22c3a261fc\n", + " 84. pFCandsIdxG-988a4723504c8a86b25fce7b6dcd1ed0\n", + " 85. apply-global-index-ac5938c59513f8973b8a0cc39f69be2a\n", + " 86. delta-phi-f7ff1ff2df14e7932e2b711fb13b15ab\n", + " 87. pad-none-4fbed45948badcca50ce362c653eefff\n", + " 88. fill-none-1f7d59ea6f5c76a6b81dbf2e358271e1\n", + " 89. getitem-0dc813c8eeffc021339d7e91776fa416\n", + " 90. pFCandsIdxG-e798cc4121bd681e903080f4f1389924\n", + " 91. apply-global-index-d7b8b6b56eeeb86c9683ebc761346f24\n", + " 92. pFCandsIdxG-f6807458d1b798c1765dc82431de0630\n", + " 93. apply-global-index-97d92fe2282fbbc36a1d400cebc3f8d6\n", + " 94. eta-f24b1fc33dca394d0f6803cc7784e37e\n", + " 95. eta-d97bf469e0213a29c85425c1e3d91b04\n", + " 96. subtract-6138b5e5f850f64d920c23efa39303ca\n", + " 97. pad-none-9b25781acc91d8b6517bb37dae719dd0\n", + " 98. fill-none-d0965fb8ec4099be0707b78aecaf4a1b\n", + " 99. getitem-9f41b44078a5993adc37fbadf25ee227\n", + " 100. concatenate-axisgt0-fae11878826f65e15ee7d9eb1e0043d7\n", + " 101. values-astype-bf0acc24ca1d686bc7e4dc91eee546e8\n", + " 102. ParticleNetExample1-d4d79650-ea96-4f0d-9187-9a87f15fe12c\n", + " 103. numpy-call-ParticleNetExample1-906b63a30d0298bea4410f9b6ff1d666\n", + "\n" + ] + }, + { + "data": { + "image/png": "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AO/IgBwAAAAAAHhPd999d4488sg8/PDDue222zJlypScdtppRWeVhaOPPjqPPPJIHn/88SxevDjt27fPtddem/Xr1xedBgAAAADwFlWlUqlUdAQAAAAAAFCeFi1alC996Ut5/PHHM2DAgFx//fXZd999i84qW5s3b87PfvazfP/7388hhxyS22+/PV27di06CwAAAABgi6VOIAcAAAAAAN7WyJEj07FjxyxcuDDjx4/PoEGDjMffQ7169XL11VfnxRdfzCGHHJKTTz45V111VTZs2FB0GgAAAABAksSAHAAAAAAA2Mbq1avTt2/f9OvXL5deemlmzZqV7t27F51VUdq0aZOxY8fmF7/4RQYPHpyuXbtm7ty5RWcBAAAAABiQAwAAAAAA/8/06dNz/PHHZ9KkSRk9enT+4z/+Iw0bNiw6q2JdfvnlmTVrVurXr59OnTpl5MiRRScBAAAAAHWcATkAAAAAAJAkGTZsWLp27ZqDDz44M2bMSO/evYtO2i20bds2kyZNyoABA9KvX79cddVV2bRpU9FZAAAAAEAdZUAOAAAAAAB1XG1tbb75zW/mggsuyIABAzJhwoS0aNGi6KzdSk1NTW644YYMGTIkt912W84888ysW7eu6CwAAAAAoA6qKpVKpaIjAAAAAACAYrz55pu58MILM2rUqAwePDjnnXde0Um7veeffz59+vTJQQcdlMceeywHHXRQ0UkAAAAAQN2x1IAcAAAAAADqqDVr1uSMM87Iyy+/nIcffjjdunUrOqnOWLhwYT796U9n3bp1GTduXI466qiikwAAAACAumFpddEFAAAAAADArrdy5cqcfvrpWbx4cSZPnmw8vou1bds2kydPzsEHH5xu3bplxowZRScBAAAAAHWEATkAAAAAANQxf/7zn9O9e/esXr06kyZNcvp1QZo0aZJx48bl2GOPzamnnprnn3++6CQAAAAAoA4wIAcAAAAAgDpk1apV+cQnPpGNGzdm0qRJadu2bdFJddo+++yTxx57LCeeeGJ69erlJHIAAAAAYKerKpVKpaIjAAAAAACAne+1115Ljx49snz58kyaNClt2rQpOon/34YNG3LmmWfmhRdeyMSJE9OuXbuikwAAAACA3dNSA3IAAAAAAKgD1q9fn549e2b+/Pl58sknc+ihhxadxP+xbt269OzZM0uWLMmzzz6bVq1a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y5k9e3buueeePProoymVSpk4cWJmz56dX/3qV3n44Ydzzjnn5I9//GPmz5+/zeNfeeWVXHvttXnkkUdy/fXXZ8qUKTn11FMzZMiQvPDCCznzzDOzzz775MEHH9zmcQ899FCSvO1J6VvU1tbm6quvTsOGDTNx4sTcdNNNGTx4cJ577rls3rw5P//5z5Mkw4cPT01NTV555ZX87Gc/y7XXXpvHH388LVu2zKhRoz7Qz2Vn2PJ52bhxY8ElAAAAAEC5MSAHAAAAAIAytuXk8SKGwHvuuWd+8IMfpKqqKklSXV2drl27Zu3atVm6dOl2P1+9evVyzTXXbP2+Q4cOSZLTTjstRxxxxNbbu3fvniR56aWXtnl848aNc/XVV2/9vrq6Ot/97ndTKpUybty47L333vnc5z6XqVOnZtGiRVuvGzlyZJo1a5aePXumtrY2b7zxxjZfmzdvzrRp0zJjxox89rOfzWGHHbb1sUcddVQGDRqUE044IUnyta99Lb///e/TuHHjrdds2LAhjRs3zmuvvbbdP5OdZcvnZctJ5AAAAAAAWxiQAwAAAABAGdsyAN6wYcMuf+0DDjgge+yxxza3NWnSJEmybt267X6+gw46aJtB85bnPuigg7a5rl69ekne+p4PP/zwrWP2LY455pgkfz+dPPl/p4xvOYV8yZIlmTJlSvr165f69etnypQp2Weffbb5GjFixNbTztu3b/+W7q985Sv5l3/5lyR/H5QfdNBB+c///M+cffbZOf7449O6deu8/PLL2/3z2JnWr1+fJGnYsGHBJQAAAABAuTEgBwAAAACAMrZlcF3UCeTvpFQqvetj//KXv7zltr333vttr62ufn//XNGyZct3fM4tY/TTTz89Bx544NYB+YMPPphSqZTzzjsvSdKsWbOcd95523y1adMmK1asSJK0atXqXRtuvPHGHHzwwfnhD3+YjRs3pkePHrnrrrvStWvX9/UedpUt43sDcgAAAADg/6opOgAAAAAAAHhne+65Z+rVq5fXX3+96JS3VVVVldra2rfcPmfOnB3+WltOCf/fFi1alCQ58sgjk/z99PL+/fvnpz/9aZYsWZKRI0fm0EMPzUknnZTk76eYDx069C3Ps2rVqiTJlClT0r9//23uu+eee1JbW5tPf/rT+fa3v53mzZtn3rx52Xfffbdec/311++Q97ijbPm8vNNoHwAAAACou5xADgAAAAAAZay6ujr7779/Vq5cWXTK22rTpk0WLVq0zQnps2fPftux9z9q7ty5mTdv3ja33XnnnUmSj3zkI1tvO//881MqlXLzzTfnueeeywUXXPCez/2xj30se+65ZyZMmLDN7S+99FIuvvjiPPnkk1m8eHFqa2vz+c9/fpvx+JIlSzJ9+vR/5K3tcNGwdsYAACAASURBVFtOVG/evHnBJQAAAABAuTEgBwAAAACAMte0adOyHZB37tw5GzZsyMUXX5yJEyfmjjvuyGc/+9k0atRoh7/W5s2b89nPfjaPPPJIZs+enR/+8IcZNGhQ+vbtm5NPPnnrdZ06dcpRRx2Vm2++OUly4YUXvudzt2jRIldffXVmzpyZK664IlOnTs0999yTc845JzU1Nbniiity5JFHZp999skDDzyQUaNGZd68ebnrrrvSpUuX7Lffflm3bt1OOXn9g9hyonrTpk0LLgEAAAAAyk1N0QEAAAAAAMC7a9as2dYTpcvN17/+9Tz77LO57777ct9996VVq1ZbT/y+4YYbduhrnX766WnVqlXOPvvs1NbWJkm6d++en//852+59vzzz8/3v//9fPKTn0zbtm3f1/P/8Ic/TKlUyo033phf/vKXSZKWLVtm2LBh6dy5c5JkyJAhueSSS9KnT58kyf7775+BAwdm7733zkUXXZRjjz12m9PYi7Jy5co0aNBgm5PSAQAAAACSpKpUKpWKjgAAAAAAAN7Zueeem7/+9a959NFHi055RytWrMiyZcvSoUOHVFVV7fDnb9asWT72sY9lzJgxWb16daZOnZpWrVqlXbt2b3v9I488ks9//vN56KGH8vnPf367XuuNN97IzJkzs99+++Xwww9PgwYNtrl/1apVmTZtWlq2bJl27dptfb+rVq3K6tWrc9hhh32wN7kDXX/99bnzzjszf/78olMAAAAAgPKy1AnkAAAAAABQ5tq0aZPRo0cXnfGumjdvnubNm++S12rSpEk+8YlPvOs1gwcPTqtWrbaeFL499t5775x00knveH/Tpk3To0ePt729adOm2/16O8PChQvf98nrAAAAAEDdYkAOAAAAAABlrk2bNlm4cGHRGRXh+uuvz7Jly/Kb3/wmgwYNSk1N3fynkIULF+bDH/5w0RkAAAAAQBmqm39rCgAAAAAAFeSwww7L66+/nuXLl+fAAw8sOqcQLVu2TLNmzd7zuttuuy3r1q3LZZddlssvv3wXlJWnefPm5ZOf/GTRGQAAAABAGTIgBwAAAACAMnfcccclSWbOnFlnB+SzZs16X9ctXrx4J5eUvzVr1mTp0qVp37590SkAAAAAQBmqLjoAAAAAAAB4d82aNUvLli0zc+bMolOoADNnzkypVNr6iwcAAAAAAP+bATkAAAAAAFSA4447zoCc92XWrFlp0qRJDj744KJTAAAAAIAyZEAOAAAAAAAV4IQTTsizzz5bdAYV4Jlnnknnzp2LzgAAAAAAypQBOQAAAAAAVICuXbtm/vz5Wb58edEplLnJkyena9euRWcAAAAAAGXKgBwAAAAAACrASSedlHr16uW5554rOoUytmzZsixevNiAHAAAAAB4RwbkAAAAAABQAfbbb78cd9xxmTBhQtEplLHx48enYcOG6dy5c9EpAAAAAECZMiAHAAAAAIAK0atXr4wePbroDMrY2LFjc8opp2SvvfYqOgUAAAAAKFMG5AAAAAAAUCF69eqVBQsWZP78+UWnUIY2b96ccePGpWfPnkWnAAAAAABlzIAcAAAAAAAqRJcuXdK4ceOMGjWq6BTK0HPPPZdVq1ald+/eRacAAAAAAGXMgBwAAAAAACpETU1N+vTpk5EjRxadQhkaMWJEjjrqqLRr167oFAAAAACgjBmQAwAAAABABenbt2+ee+65LF68uOgUykhtbW0eeuih9O/fv+gUAAAAAKDMGZADAAAAAEAF+cQnPpHGjRs7hZxtPPXUU1m2bFm+8IUvFJ0CAAAAAJQ5A3IAAAAAAKggDRo0SL9+/TJkyJCiUygjQ4YMSadOndKuXbuiUwAAAACAMmdADgAAAAAAFeaKK67Iyy+/nMmTJxedQhlYu3ZtHnzwwXzxi18sOgUAAAAAqAAG5AAAAAAAUGE6dOiQTp065bbbbis6hTIwbNiwVFVV5Zxzzik6BQAAAACoAAbkAAAAAABQga644oo88MADWb58edEpFKi2tjaDBg3KOeeck/3226/oHAAAAACgAhiQAwAAAABABbrgggvSpEmT3HLLLUWnUKBRo0Zl7ty5+epXv1p0CgAAAABQIapKpVKp6AgAAAAAAGD7XXfddRk0aFAWL16cvffeu+gcCnDKKaekUaNGGTVqVNEpAAAAAEBlWOoEcgAAAAAAqFBf/vKX87e//S233npr0SkU4Mknn8xTTz2Va665pugUAAAAAKCCOIEcAAAAAAAq2He+853ccccdWbBgQfbdd9+ic9iFunfvnpqamjz++ONFpwAAAAAAlcMJ5AAAAAAAUMmuueaabNiwIYMGDSo6hV3od7/7XZ588slcd911RacAAAAAABXGCeQAAAAAAFDh/u3f/i0DBw7M3Llzc8ABBxSdw05WW1ub448/Pi1btszo0aOLzgEAAAAAKosTyAEAAAAAoNJ985vfTKNGjfL973+/6BR2gcGDB2fWrFn5yU9+UnQKAAAAAFCBnEAOAAAAAAC7gaFDh+biiy/O1KlT85GPfKToHHaStWvX5sgjj0y/fv3y05/+tOgcAAAAAKDyLDUgBwAAAACA3UCpVErXrl1TW1ubyZMnp169ekUnsRMMGDAgI0aMyJw5c7L//vsXnQMAAAAAVJ6l1UUXAAAAAAAA/7iqqqoMGTIk06dPzy233FJ0DjvBlClT8otf/CIDBw40HgcAAAAAPjAnkAMAAAAAwG7k2muvzU033ZRZs2alTZs2Reewg6xfvz4f/ehHc8ghh2TMmDFF5wAAAAAAlWupATkAAAAAAOxG1q9fn+OPPz5NmjTJE088kXr16hWdxA7wta99LYMHD86MGTP8YgAAAAAA8I9YWl10AQAAAAAAsOM0bNgw999/f37/+9/nhhtuKDqHHeB3v/tdbr755txyyy3G4wAAAADAP8wJ5AAAAAAAsBsaOHBgvvWtb2XSpEk58cQTi87hA/rzn/+cjh07plu3bhk+fHjROQAAAABA5VtqQA4AAAAAALuhUqmUM844IzNnzszUqVPTokWLopPYTps2bUqPHj2ydOnSTJ06NY0bNy46CQAAAACofEuriy4AAAAAAAB2vKqqqgwdOjQNGzbMWWedlY0bNxadxHb65je/meeffz4jR440HgcAAAAAdhgDcgAAAAAA2E01adIkDz30UKZNm5avfvWrReewHe65557cfPPNuf3229OxY8eicwAAAACA3YgBOQAAAAAA7MY6dOiQu+++O7feemsGDhxYdA7vw6RJk3L55Zfn29/+ds4777yicwAAAACA3cz/x959RmlVH+wevmcYBAWDiAY1NmKlCAlqcCaWKEVdRnNiAQVFQ7D3mqhJ1IgxHrvnGFsgdhRrNFbAWF7ngUDEChKxBMGggh0RmHI+vG88MZaoDLOnXNdarCXPfubZP3B/mrnXn7L6+vr6oiMAAAAAAIDl67zzzsvPfvaz3HLLLdl9992LzuFzPPfcc9l6662z4447ZuzYsSkrKys6CQAAAABoWeYYkAMAAAAAQCtxxBFH5Pe//33uuuuuDBo0qOgc/s1LL72UbbbZJhtssEEefPDBtG/fvugkAAAAAKDlMSAHAAAAAIDWor6+PgceeGDGjh2be++9N9ttt13RSfyPuXPnZptttkmnTp3y0EMPpXPnzkUnAQAAAAAtkwE5AAAAAAC0JjU1NRkyZEgmTJiQP/3pT9lmm22KTmr1Xn311QwYMCBt27bNww8/nNVWW63oJAAAAACg5ZpTXnQBAAAAAADQeCoqKjJ27NgMGDAgO+20U8aPH190Uqs2a9asbLvttmnXrl0mTJhgPA4AAAAALHcG5AAAAAAA0MqssMIKGTNmTDbbbLPsuuuuueOOO4pOapWefvrpbLvttll99dXz8MMPZ4011ig6CQAAAABoBQzIAQAAAACgFfnwww9zwQUXZMMNN8w222yTkSNHZs8998yFF15YdFqr8sADD2SbbbbJpptumgkTJmTVVVctOgkAAAAAaCUqig4AAAAAAACWv48++ihXXHFFRo0alfnz56eioiLHHHNMvvWtb2X99dfPCSeckJdeeikXXnhhKir8+GB5uvLKK3P44Ydn6NChueqqq7LCCisUnQQAAAAAtCJOIAcAAAAAgBZs8eLFufTSS7Peeuvl+OOPz/z589OmTZvss88++da3vpUkOeGEEzJu3LiMGTMmAwcOzBtvvFFwdcu0ePHiHHzwwTnkkEPyi1/8IldffbXxOAAAAADQ6Mrq6+vri44AAAAAAAAa1tKlSzN27Niceuqpee2111JfX59//ZHAk08+mT59+nzia5566qnsscceWbx4ccaNG5fKysrGzm6xXn311fzoRz/KCy+8kOuvvz4/+tGPik4CAAAAAFqnOU4gBwAAAACAFmTp0qW59tprs+GGG+YnP/lJ5s6dm7q6uo/H4xUVFRk4cOCnxuNJ0qdPn0yZMiV9+vTJdtttl7POOiu1tbWN/UdocW699db06dMnS5YsySqrrJJZs2alpqam6CwAAAAAoJUyIAcAAAAAgBagrq4ut9xySzbeeOP85Cc/yauvvvqJ4fg/1dTU5OSTT/7cz+ncuXPuvvvunHPOOTnzzDOz/fbb55VXXlnO9S3Te++9lxEjRmSvvfbK3nvvnSlTpmS33XbLCSeckM033zzTpk0rOhEAAAAAaIUMyAEAAAAAoJm74YYbssEGG2TvvffO7NmzP3M4niTl5eXZbLPNsv3223/h55WVleXYY4/NX/7yl7z99tvZbLPNcvHFFzuN/Cu4++6706tXr/zpT3/KH//4x/zud7/LiiuumCFDhiRJnn322WyxxRY58cQT8+GHHxZcCwAAAAC0JgbkAAAAAADQzC1evPjj4XhdXd0XvveLTh//d717987UqVNz3HHH5aSTTsr3v//9PPnkk8ua26LNnTs3Q4YMyW677ZZtt902zz33XHbbbbePr2+99dbp2rXrx/+vLrroomyyySZ58MEHC6wGAAAAAFoTA3IAAAAAAGjmRowYkRtvvDFt2rRJefnnf+t/zTXXzF577fWVPrtdu3Y544wz8te//jXl5eXZfPPNc9BBB+WNN95Y1uwWZdGiRTnrrLOyySabZMqUKbn33ntz/fXXZ/XVV//E+8rLyzN06NCssMIKSZKampr84x//yI477pg999wzb775ZhH5AAAAAEArYkAOAAAAAAAtwJAhQ3LnnXemTZs2KSsr+9T1ioqKnHTSSamoqPhan9+rV688/vjjueaaa3Lfffdl4403zllnnZX3339/WdObtZqamlx99dXp3r17fvvb3+aUU07J9OnTs/POO3/u1wwZMiRLliz5+Pe1tbVJkrvuuisbbLBBrrzyyuXeDQAAAAC0XmX19fX1RUcAAAAAAAANY88998xtt92W8vLy1NXVffz6yiuvnNdeey0dO3Zc5nssXLgw5513Xi644IKssMIKOemkk3LYYYelQ4cOy/zZzUVtbW1uuumm/PrXv87LL7+c/fffP2eccUbWWmutL/X16623XmbPnv2p1/85/t96660zevTobLTRRg3aDQAAAAC0enOcQA4AAAAAAC3EqaeemjvvvDOnnXZa2rdv//Fp423bts1RRx3VIOPxJOnQoUNOO+20vPzyyzn88MMzatSorLXWWjn66KMzZ86cBrlHU7V48eJce+216dmzZ4YPH54+ffrkueeey1VXXfWlx+NJMnTo0LRt2/ZTr9fX16e+vj6lUimbbbZZzjnnnI9PKAcAAAAAaAhOIAcAAAAAgBZg1KhR+dWvfpUrr7wyI0eOTKlUyqBBg/Lhhx+mTZs2mT17dtZYY43lcu/58+fnsssuy6WXXpp33nknQ4YMyYEHHpitt956udyvCM8//3xGjx6dP/zhD1m0aFH233//HHfccdlwww2/1uc9+eST+e53v/ul3rvPPvvkxhtv/Fr3AQAAAAD4N3MMyAEAAAAAoJm75JJLcswxx+TSSy/NoYce+vHrTzzxRPr375/dd989o0ePXu4dH330Ua6//vpcfvnl+etf/5pNN900I0aMyODBg7Peeust9/s3tLfffjt33HFHrr766jz22GNZf/31M3LkyBx88MFZbbXVlvnzN9xww7z44oufe728vDw77bRTbrzxxnTq1GmZ7wcAAAAAEANyAAAAAABo3saMGZORI0fmt7/9bU466aRPXX/uuefStm3bbLzxxo3aNW3atFx11VW5+eab8/bbb6dfv34ZPHhwdtlll0Zv+SrmzZuX++67L7feemsmTJiQ8vLy7LrrrvnpT3+agQMHpry8vMHudfrpp+c3v/lNli5d+onXy8vLU1dXl5/97Gf5zW9+06D3BAAAAABaPQNyAAAAAABorq677roccMABOeOMM/KLX/yi6JzPtHTp0owfPz7jxo3LH//4x7zzzjv59re/nZ122in9+/dPVVVV1lhjjcL63nvvvZRKpTzwwAN5+OGH8+STT6Zdu3YZOHBgBg8enN122y3f+MY3lsu9n3/++XTv3v0Tr1VUVKS8vDxt2rTJtGnTsskmmyyXewMAAAAArZYBOQAAAAAANEe33357hgwZkiOPPDIXXHBB0TlfSk1NTUqlUu6///488MADefLJJ1NbW5sNNtgglZWV6d27d3r37p3NNtssa621VoPf/+23384zzzzz8a9Jkybl2WefTW1tbVZeeeXsv//+2WmnnbL99ttnpZVWavD7f5aePXtm+vTpSf57PL7xxhvnjjvuyIgRIzJ//vxMmTIlK6+8cqO0AAAAAACtggE5AAAAAAA0Nw888EB+9KMf5aCDDsoll1xSdM7X9v777+e//uu/cuaZZ6ZTp055+umn89prryVJOnTokG7duqVbt25Zf/3106VLl3Tp0iWrrbZaOnfunDZt2qS8vDydOnXKwoULs2TJkiTJO++8k/nz52fBggWZP39+5syZk5dffjkvv/xy3nrrrSRJ586d07t37/Tt2zdbb711unXrlr59++bmm2/O4MGDG/Xv4Oyzz84vfvGL1NfXZ5999slVV12VlVZaKa+++mo233zz9O/fP2PHjm3UJgAAAACgRTMgBwAAAACA5mTixIn54Q9/mH322SejR49OWVlZ0UnL5Pzzz89ll12WWbNmJUkWLFiQp59+Oi+99NLHw+/Zs2dnwYIFH/+qra39ws9cddVVs9pqq6VLly5Za621Ph6if/vb307Pnj2zzjrrfOL906ZNS9++ffONb3wjM2fOzBprrLHc/rz/7qWXXsqmm26a888/P0ceeeQnrj300EMZNGhQLrroohxxxBGN1gQAAAAAtGgG5AAAAAAA0FyUSqUMGjQoO++8c8aOHZs2bdoUnbRM/v73v2fTTTdNXV1dPvrooy89hv/ggw+ydOnS1NbW5r333stKK62Udu3apaysLKussspX7pgwYUIGDhyYNm3aZMcdd8w999zzlT9jWUyfPj09evT4zGujRo3Kr3/96zz00EPZeuutG7ULAAAAAGiRDMgBAAAAAKA5mDZtWvr3758f/OAHGTduXCoqKopOWma77LJL7rvvvtTX12fevHnp2rVrIR1jx47NsGHDUl9fn7KysowZMyYHHHBAIS3/rr6+PrvvvnumTp2aJ554IquvvnrRSQAAAABA8zanvOgCAAAAAADgiz399NMZOHBgttxyy4wdO7ZFjMdvu+223HvvvfnnOTezZ88urGXBggUf/53W19fniCOOKLTnX/1z0L7CCitkyJAhqa2tLToJAAAAAGjmDMgBAAAAAKAJ+9vf/pYdd9wxffr0yZ133pl27doVnbTM3n///Rx++OEpL///P6YocrA9f/78T7QsWbIkw4cPT1P5R1w7d+6c22+/PZMmTcppp51WdA4AAAAA0MwZkAMAAAAAQBP14osvZvvtt0+3bt3yxz/+MSuuuGLRSQ3i1FNPzYIFC1JXV5ckadu2bV599dXCehYsWPCJsfjSpUvz2GOP5fLLLy+s6d/16dMnl1xySX7zm9/kjjvuKDoHAAAAAGjGDMgBAAAAAKAJmjNnTgYOHJhvfvObueeee9KxY8eikxrE1KlTc+mll6ampubj18rKygodkM+fP/8TPUlSV1eX4447Li+88EJBVZ82cuTI/OQnP8mIESPy4osvFp0DAAAAADRTBuQAAAAAANDEvPHGGxk4cGA6duyYCRMmpHPnzkUnNYja2tqMGDEi5eWf/PHE0qVL8/e//72gquT111//+DT0f1VbW5t99903tbW1BVR9tksvvTQbbLBBdt9993z44YdF5wAAAAAAzZABOQAAAAAANCHz58/PDjvskNra2jzwwAPp0qVL0UkN5pJLLslzzz33qdO+6+vrCz1R+/XXX//M15cuXZqpU6fm4osvbuSiz9e+ffvcdtttmTt3bg4++OCicwAAAACAZqisvr6+vugIAAAAAAAgeffddzNgwIC88cYbefTRR7PeeusVndRgXn311WyyySZZtGjRZ15fddVVs2DBgkau+m9rrLHG547Ik6Rt27aZNm1aevbs2YhVX+yee+7JbrvtliuuuCIjR44sOgcAAAAAaD7mOIEcAAAAAACagA8//DC77rpr5s2bl4cffrhFjceT5LDDDvvUyeP/6u23387ixYsbsej/e/fdd7/wel1dXfbbb78v7G9su+yyS04++eQceeSRmTp1atE5AAAAAEAzYkAOAAAAAAAFW7RoUX74wx9m5syZefDBB9OtW7eikxrUvffemz/96U9ZunTp576nvr4+c+bMacSq/7Zo0aJ89NFHn3mtvLw8FRUVqa2tzdy5c/PII480ct0X+/Wvf53tttsue+yxR+bPn190DgAAAADQTBiQAwAAAABAgZYsWZK99tor06ZNy/3335/u3bsXndSgPvjggxx00EEpKyv7j++dPXt2IxR90oIFCz7x+4qKio//e/vtt895552XZ555Jq+//nr69+/f2HlfqLy8PDfeeGPKy8szdOjQ1NbWFp0EAAAAADQDBuQAAAAAAFCQ2tra7Lvvvvmv//qvjB8/Pt/97neLTmpw9fX1ueSSS3Lcccdlyy23TNu2bZMkbdq0SZs2bT5+X3l5eSED8n+e3N2mTZt873vfy6mnnpo//elPKS8vzxFHHJGjjz46vXr1avSuL2vVVVfNTTfdlEceeSS/+c1vis4BAAAAAJqBiv/8FgAAAAAAoKHV1tZm+PDhueeee3L//fdniy22KDppuVh55ZWz++67Z/fdd0/y3yeur7feevnOd76TlVZaKY899ljefPPN1NXV5dVXX230vi5duuSuu+7KD37wg6y88sofv/6d73wnEydOzP/6X/+r0Zu+qn79+uW8887LMcccky233DI77bRT0UkAAAAAQBNmQA4AAAAAAI2svr4+hx56aO64447cc8892WabbYpOajTz58/PvHnzcvzxx2fAgAFJktmzZ6e6ujodOnRo9J511lkn66yzzqdeHzBgQO66665G7/m6jjzyyEydOjXDhg3L1KlT061bt6KTAAAAAIAmqqy+vr6+6AgAAAAAAGhNjj/++Pzf//t/c/vtt2eXXXYpOqdR3XbbbRk8eHDeeuutdOrUqeiczzV+/PgMGjQos2fP/syBeVO0cOHC9OvXLx06dMijjz6adu3aFZ0EAAAAADQ9c8qLLgAAAAAAgNbk5z//eS6++OJcd911rW48niSlUim9evVq0uPxJNlmm22y4oorZuLEiUWnfGkdOnTIHXfckZkzZ+a4444rOgcAAAAAaKIMyAEAAAAAoJGcfvrpOffcc3PNNddk8ODBRecUorq6OlVVVUVn/Eft27dPVVVVsxqQJ8lGG22Ua665JpdddlmuueaaonMAAAAAgCbIgBwAAAAAABrBRRddlF//+te57LLLMmzYsKJzCrF48eJMmzYtlZWVRad8Kf3798/48eNTX19fdMpX8qMf/SjHHntsDj300EybNq3oHAAAAACgiTEgBwAAAACA5ezSSy/Nsccem3PPPTcHHXRQ0TmFeeKJJ/LRRx81mwH5gAED8vrrr+e5554rOuUrO+ecc7LllltmyJAheffdd4vOAQAAAACaEANyAAAAAABYjq655pocddRROfvss3P88ccXnVOo6urqrLbaatlwww2LTvlS+vbtm1VXXTUTJkwoOuUrq6ioyLhx47Jw4cIMHz682Z2iDgAAAAAsPwbkAAAAAACwnNx666356U9/ml/+8pf5+c9/XnRO4UqlUiorK1NWVlZ0ypfSpk2bbL/99s1yQJ4kXbt2zS233JL77rsv5513XtE5AAAAAEATYUAOAAAAAADLwZ133pmhQ4fmiCOOyOmnn150TpMwadKkVFZWFp3xlfTv3z+PPPJIli5dWnTK11JVVZWzzjorJ598crMdwgMAAAAADcuAHAAAAAAAGtj48eOz9957Z/jw4bnwwguLzmkS/v73v2fu3LmpqqoqOuUrGTBgQD744INMmjSp6JSv7YQTTsiPf/zj7Lvvvpk7d27ROQAAAABAwQzIAQAAAACgAT3++OP58Y9/nCFDhuTKK69MWVlZ0UlNQqlUSkVFRTbffPOiU76SjTbaKOuvv34mTpxYdMrXVlZWljFjxmTVVVfNXnvtlSVLlhSdBAAAAAAUyIAcAAAAAAAayKRJk7Lzzjtnp512yujRo1Ne7tvw/1QqldKnT5907Nix6JSvrH///pkwYULRGctk5ZVXzrhx4/L000/n5JNPLjoHAAAAACiQ71wDAAAAAEADeOqpp7LLLrtkhx12yNixY1NRUVF0UpNSXV2dqqqqojO+lgEDBmTy5Ml57733ik5ZJr169cpVV12VCy+8MLfcckvROQAAAABAQQzIAQAAAABgGc2cOTM77rhj+vbtm5tuuilt27YtOqlJWbRoUZ5++ulUVlYWnfK1p8AoCgAAIABJREFUDBgwIHV1dXnkkUeKTllm++yzTw455JCMGDEi06dPLzoHAAAAACiAATkAAAAAACyDWbNmZfvtt8+GG26YO++8M+3bty86qcmZMmVKlixZ0mwH5Kuttlp69+6diRMnFp3SIC688ML06NEjgwcPzsKFC4vOAQAAAAAamQE5AAAAAAB8TbNnz87AgQOz7rrr5r777kuHDh2KTmqSqqurs+aaa2b99dcvOuVrGzBgQCZMmFB0RoNo165dbrnllrz++us55JBDis4BAAAAABqZATkAAAAAAHwNc+fOzfbbb59OnTrl3nvvzcorr1x0UpNVKpVSVVVVdMYy6d+/f5577rnMnTu36JQGse666+baa6/NjTfemCuvvLLoHAAAAACgERmQAwAAAADAV/Tmm29m0KBBadu2bR544IGsuuqqRSc1aZMnT05lZWXRGctk2223Tbt27fLQQw8VndJgdt555/z85z/P0UcfnSeeeKLoHAAAAACgkRiQAwAAAADAV/DOO+9kp512ypIlS/LQQw+la9euRSc1abNmzcrrr7/e7AfkK620UiorKzNx4sSiUxrUmWeema233jpDhgzJu+++W3QOAAAAANAIDMgBAAAAAOBLeu+99zJo0KC8+eabGT9+fNZaa62ik5q86urqtGvXLn379i06ZZn1798/48ePLzqjQZWXl+f666/PwoULM3z48NTX1xedBAAAAAAsZwbkAAAAAADwJXz44YfZddddM3v27IwfPz7rr79+0UnNQqlUyne/+920b9++6JRlNmDAgLz22muZMWNG0SkNqmvXrrnxxhtzzz335P/8n/9TdA4AAAAAsJwZkAMAAAAAwH+wZMmS7LnnnpkxY0YeeuihbLLJJkUnNRulUilVVVVFZzSILbfcMp07d25xp5AnyQ9+8IOcfvrpOeGEE1JdXV10DgAAAACwHBmQAwAAAADAF1i6dGn22GOPVFdX5/7770+PHj2KTmo23n///Tz77LOprKwsOqVBtGnTJtttt10mTpxYdMpyccopp6R///7Ze++9M3/+/KJzAAAAAIDlxIAcAAAAAAA+R21tbYYPH55HH300Dz74YPr27Vt0UrPyl7/8JbW1tdlqq62KTmkw/fv3z5///OcsXbq06JQGV15enhtuuCHl5eXZf//9U19fX3QSAAAAALAcGJADAAAAAMBnqK+vz8EHH5y77rord911V773ve8VndTsVFdXZ911183aa69ddEqDGTBgQN5///1MmTKl6JTlYtVVV83NN9+cCRMm5H//7/9ddA4AAAAAsBwYkAMAAAAAwL+pr6/PYYcdluuuuy633nprtttuu6KTmqVSqZSqqqqiMxrUpptumnXWWScTJkwoOmW56devX84666z84he/yGOPPVZ0DgAAAADQwAzIAQAAAADg3/zsZz/L6NGjc+utt2bnnXcuOqdZqq+vz+TJk1NZWVl0SoMbMGBAJk6cWHTGcnX88cdnt912y+DBg/OPf/yj6BwAAAAAoAEZkAMAAAAAwL849dRTc8EFF+Taa6/NrrvuWnROs/X888/nrbfeapED8v79+2fSpEn54IMPik5ZbsrKyjJ69OistNJKGTZsWGpra4tOAgAAAAAaiAE5AAAAAAD8j1GjRuXss8/O5Zdfnr333rvonGaturo6K664Yvr06VN0SoMbMGBAli5dmkcffbTolOVqlVVWye23355JkyblzDPPLDoHAAAAAGggBuQAAAAAAJDkkksuya9+9atceumlGTlyZNE5zV6pVMqWW26ZFVZYoeiUBte1a9f06tUrEydOLDpluevTp0/OPffcnHnmmXnwwQeLzgEAAAAAGoABOQAAAAAArd6YMWNyzDHH5Le//W0OPfTQonNahFKplMrKyqIzlpsBAwZkwoQJRWc0isMPPzxDhw7Nfvvtl7lz5xadAwAAAAAsIwNyAAAAAABateuuuy4HHnhgzjzzzJx00klF57QI77zzTp5//vkWPSDv379/nnnmmcybN6/olEZx2WWXpUuXLtlrr72ydOnSonMAAAAA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xIjsscce2X///bNgwYKicwAAAACgyTEgBwAAAAAAPlepVMomm2yS1VZbreiUZueZZ55JRUXFp16vq6vLKaeckvfff7+AqtbhiiuuSHl5eQ455JCiUwAAAACgyTEgBwAAAAAAPlepVEplZWXRGc3SM888k7Kyss+89t577+Wiiy5q5KLWo3Pnzrn66qtz++2359prry06BwAAAACaFANyAAAAAADgM9XU1GTq1KkG5F/TE088kaVLl37mtZqampx99tl5/fXXG7mq9ejfv3+OOuqoHHnkkXnllVeKzgEAAACAJsOAHAAAAAAA+ExPPfVUPvjgg1RVVRWd0iw9++yzX3i9pqYmZ555ZiPVtE6//e1vs/7662e//fZLbW1t0TkAAAAA0CQYkAMAAAAAAJ+pVCrlG9/4Rrp37150SrMzZ86cvP/++597vaysLHV1dbniiivywgsvNGJZ69KuXbvceOONmTp1as4///yicwAAAACgSagoOgAAAAAAAGiaSqVSKisrU17uPJqv6plnnkny30Pxtm3bpqamJnV1dUmSNddcM717907v3r2z6aabpl27dkWmtng9e/bM6aefnl/+8pcZNGhQvvOd7xSdBAAAAACFMiAHAAAAAAA+U3V1dQ444ICiM5qlGTNmpFu3btlss83Ss2fP9OjRI88++2yuuOKKvPbaa0XntTonnnhi7r///gwbNixTp07NiiuuWHQSAAAAABSmrL6+vr7oCAAAAAAAoGl5/fXXs8Yaa+SBBx7IoEGDis5pEf785z9nhx12yLx589K1a9eic1qdOXPmpHfv3jnggANywQUXFJ0DAAAAAEWZ49+cBAAAAAAAPuXxxx9PeXl5+vXrV3RKi9G9e/ckyfTp0wsuaZ3WXnvtXHjhhbnoooty//33F50DAAAAAIUxIAcAAAAAAD6lVCqlZ8+e6dSpU9EpLcYaa6yRLl26GJAXaP/9989ee+2VkSNH5q233io6BwAAAAAKYUAOAAAAAAB8SqlUSmVlZdEZLU737t0zY8aMojNatcsvvzxlZWU56KCDik4BAAAAgEIYkAMAAAAAAJ+wZMmS/PWvfzUgXw66d+/uBPKCde7cOWPGjMntt9+esWPHFp0DAAAAAI3OgBwAAAAAAPiEJ554Ih999FGqqqqKTmlxDMibhoEDB+awww7LoYcemtmzZxedAwAAAACNyoAcAAAAAAD4hFKplC5dumSjjTYqOqXF6dGjR15//fUsWLCg6JRW77zzzsvaa6+dfffdN3V1dUXnAAAAAECjMSAHAAAAAAA+oVQqpbKyMmVlZUWntDg9evRIksyYMaPgEtq3b59rr702kydPzsUXX1x0DgAAAAA0GgNyAAAAAADgE/45IKfhrb322vnGN76R6dOnF51Ckr59++aXv/xlTj755Dz99NNF5wAAAABAozAgBwAAAAAAPjZ79uzMmTMnVVVVRae0SGVlZdl0002dQN6EnHLKKenXr1+GDh2ajz76qOgcAAAAAFjuDMgBAAAAAICPlUqltGnTJltssUXRKS1Wjx49DMibkPLy8vzhD3/I7Nmzc9pppxWdAwAAAADLnQE5AAAAAADwsVKplD59+qRjx45Fp7RY3bt3z/Tp04vO4F98+9vfzgUXXJDzzjsvjz76aNE5AAAAALBcGZADAAAAAAAfq66uTmVlZdEZLVqPHj0yZ86cvPvuu0Wn8C9GjhyZXXbZJQcccEDef//9onMAAAAAYLkxIAcAAAAAAJIkixYtylNPPWVAvpx179499fX1mTlzZtEp/JvRo0dn4cKFOfHEE4tOAQAAAIDlxoAcAAAAAABIkkydOjVLlixJVVVV0SktWrdu3bLSSitl+vTpRafwb1ZfffVcfvnlufLKK3PfffcVnQMAAAAAy4UBOQAAAAAAkCQplUrp2rVrunXrVnRKi1ZeXp5NNtkkM2bMKDqFz/DjH/84e+21V0aOHJm333676BwAAAAAaHAG5AAAAAAAQJL/HpA7fbxx9OjRwwnkTdjvfve71NXV5dhjjy06BQAAAAAanAE5AAAAAACQJJk0aVIqKyuLzmgVunfvbkDehHXp0iVXXnllrrnmmtx+++1F5wAAAABAgzIgBwAAAAAA8uKLL2bevHlOIG8k3bt3zyuvvJIPP/yw6BQ+x6677prhw4fnkEMOyRtvvFF0DgAAAAA0GANyAAAAAAAgpVIpbdu2Td++fYtOaRV69OiRurq6zJw5s+gUvsAll1yS9u3b56ijjio6BQAAAAAajAE5AAAAAACQUqmUvn37ZsUVVyw6pVXYcMMN065du0yfPr3oFL5Ap06dMmbMmIwbNy7jxo0rOgcAAAAAGoQBOQAAAAAAkOrq6lRWVhad0WpUVFRkww03zIwZM4pO4T8YMGBADjzwwBx22GGZN29e0TkAAAAAsMwMyAEAAAAAoJVbuHBhnn32WQPyRtajRw8nkDcTF1xwQVZZZZUcdNBBRacAAAAAwDIzIAcAAAAAgFZu8uTJqampSVVVVdEprUqPHj2cQN5MdOjQIVdffXXuueeeXHvttUXnAAAAAMAyMSAHAAAAAIBWrlQq5Vvf+lbWXnvtolNale7du2fWrFlZvHhx0Sl8CVtvvXWOOOKIHHXUUXn11VeLzgEAAACAr82AHAAAAAAAWrlSqZTvf//7RWe0Oj169EhNTU1eeOGFolP4ks4+++x07do1I0aMSH19fdE5AAAAAPC1GJADAAAAAEArVl9fn8mTJ6eysrLolFZn4403TkVFRWbMmFF0Cl/SSiutlKuvvjp//vOfc9VV/4+9Ow+v+U7YP35nkWhUiMTe2Cmxl+Ak6tFOLemgqjNoKWVUq4x1ENqiYpmOLbQ6KF2oDo1WW1PBo0XL+aJiSaq1i4ZYU2msWc/vjz6Ta/zaEiQ+Z3m/rivXxck55/s+R/5K7ny8bToHAAAAAAAAuCMMyAEAAAAAAAAA8GAHDx7UhQsXFBERYTrF4/j7+6tGjRr6/vvvTafgNthsNo0aNUojR47U0aNHTecAAAAAAAAAt40BOQAAAAAAAAAAHsyyLBUvXlxNmjQxneKRwsLCOIHcBU2ePFk1atTQc889p7y8PNM5AAAAAAAAwG1hQA4AAAAAAAAAgAezLEvNmzeXn5+f6RSPVK9ePU4gd0H+/v56//33tWPHDs2fP990DgAAAAAAAHBbfE0HAAAAAAAAAAAAc+x2u/74xz+azvBY9erV06xZs5STkyNf39/+sU1eXp7S0tJ06dIlSdKVK1eUlZWV//nAwED5+PjI19dXwcHBKlGixD1p93RNmzbVuHHjFB0drQ4dOqhOnTqmkwAAAAAAAIAC8XI4HA7TEQAAAAAAAAAA4N7LyMhQUFCQPv74Y3Xt2tV0jkdKSEhQ8+bNtWTJEmVnZys5OVnJycn68ccfdeHCBaWlpSktLe22nrN48eIKDg5WcHCwKlasqGrVquV/1KhRQ/Xr12dkXkiys7PVsmVLlShRQlu2bJG3N//5LwAAAAAAAJzeSQbkAAAAAAAAAAB4qPXr16tjx446ffq0KlSoYDrH7TkcDh08eFCWZSkhIUFJSUlKTExUenq6JKlUqVI3jL1DQkIUHByskJAQlS1bViVLlpQklShRQn5+fvnPm5GRodzcXOXk5CgtLe2G4fmpU6fyR+knT55UTk6OvL29VaNGDTVu3FiNGjVSixYtZLPZVKpUKSPvi6tLTExUeHi4ZsyYoaFDh5rOAQAAAAAAAG6FATkAAAAAAAAAAJ5q0qRJWrZsmY4ePWo6xW0lJiZqw4YN+vrrr2VZli5cuKCAgID88Xbjxo3VsGFDhYWFqUyZMkXakpOToxMnTmjfvn1KSkpSUlKS9u7dq6NHj8rb21v169dX69at9eijj+qxxx5T6dKli7THnUycOFEzZ85UYmKiatasaToHAAAAAAAAuBkG5AAAAAAAAAAAeKr27durXLly+uCDD0ynuI1r164pPj4+/+PUqVMqV66c2rRpo8jISEVERKhp06YqVqyY6dR8586dk91u19atW2W327Vz5055eXmpVatWioqKUpcuXdSgQQPTmU4tKysGsWfrAAAgAElEQVRLzZs3V0hIiL788kt5eXmZTgIAAAAAAAB+DwNyAAAAAAAAAAA8UV5ensqUKaOpU6dq8ODBpnNc2vXr17V+/XqtXLlSa9as0bVr19SiRQtFRUWpY8eOatasmby9vU1nFtjFixf1v//7v1q3bp3i4+N15swZ1a9fX927d1f37t1Vt25d04lOac+ePWrZsqXefPNNDRw40HQOAAAAAAAA8HsYkAMAAAAAAAAA4ImSkpLUqFEj7d69W02bNjWd45ISExO1aNEiLV++XBkZGWrdurW6d++up556ShUqVDCdVyjy8vJkt9u1cuVKffzxxzp9+rTCw8P1/PPPq2fPnipZsqTpRKcyduxYLViwQN99951CQ0NN5wAAAAAAAAC/hQE5AAAAAAAAAACeaNGiRRo5cqTS09Pl6+trOsdlZGZmavny5Vq0aJF27NihOnXqaMCAAerVq5cqVapkOq9I5eXlacuWLXrnnXe0atUqFStWTD179tTgwYPVuHFj03lOITMzUw899JCqVq2qtWvXms4BAAAAAAAAfstJ1/n/EgEAAAAAAAAAQKGxLEstWrRgPF5AFy5cUExMjKpWrapBgwapZs2a2rRpkw4cOKDRo0e7/Xhckry9vfXII49o2bJlSk1N1ZQpU2S329WkSRO1a9dO69atk6efW+Tv76/Fixdrw4YNWrp0qekcAAAAAAAA4DcxIAcAAAAAAAAAwAPZ7XZFRESYznB6qampGjp0qKpWrarY2Fj1799fycnJWr58udq2bSsvLy/TiUYEBQVp6NChSkpK0rp16+Tl5aWoqCg1atRIK1euVF5enulEY2w2mwYPHqxhw4bp1KlTpnMAAAAAAACAX2FADgAAAAAAAACAh0lLS9Phw4dls9lMpzit8+fPa9SoUapVq5ZWr16tv//97/rxxx81bdo0VaxY0XSe0/Dy8lKHDh20YcMG7du3T40aNdIzzzyjpk2b6tNPP/XYE8mnT5+u4OBgDRo0yHQKAAAAAAAA8CsMyAEAAAAAAAAA8DCWZUmSWrZsabjE+Vy9elWvvfaaatSooeXLl2v69Ok6fPiw/vrXv6pEiRKm85xao0aNtHz5ciUmJqpOnTrq1q2bWrZsqa1bt5pOu+cCAgL09ttv69///rc++ugj0zkAAAAAAADADRiQAwAAAAAAAADgYSzLUp06dRQSEmI6xWk4HA7961//Ut26dTVr1iyNHz9ex44d07Bhw1S8eHHTeS6lfv36iouL0+7du1W6dGm1adNGPXv21I8//mg67Z565JFH9Pzzz2vw4ME6d+6c6RwAAAAAAAAgHwNyAAAAAAAAAAA8jN1ul81mM53hNPbv36+HH35YvXv3Vrt27XTo0CGNGzdOAQEBptNcWpMmTbRhwwZ9+umnSkhIUN26dTVlyhRlZ2ebTrtnZsyYofvuu08jRowwnQIAAAAAAADkY0AOAAAAAAAAAIAHycnJ0a5duxiQS8rKytKkSZP00EMPKTs7Wzt37tSSJUtUoUIF02lupUuXLtq/f78mTpyo6dOnq1mzZtqxY4fprHsiMDBQCxcu1IcffqjVq1ebzgEAAAAAAAAkMSAHAAAAAAAAAMCjJCYm6vLly4qIiDCdYtTOnTvVtGlTzZw5U6+//rrsdruaNWtmOstt+fn5aezYsUpMTFT58uUVGRmpESNG6Nq1a6bTilxUVJT69OmjIUOGKD093XQOAAAAAAAAwIAcAAAAAAAAAABPYlmWAgMDVa9ePdMpRuTm5mrKlCmKjIxU5cqV9d1332n48OHy8fExneYRatasqQ0bNmjx4sV677331Lx5c+3bt890VpGbM2eO8vLyNHr0aNMpAAAAAAAAAANyAAAAAAAAAAA8iWVZatWqlUcOpn/88Uc9+uijmjJliqZMmaJ169apWrVqprM8jpeXl5577jklJiaqbNmyCg8P16RJk5SXl2c6rciUKVNGc+fO1ZIlS/Tll1+azgEAAAAAAICHY0AOAAAAAAAAAIAHsdvtstlspjPuubVr16pJkya6cOGCtm/frrFjx8rbmx+TmBQaGqpNmzZpxowZmj59ujp37qyLFy+azioy3bt31xNPPKFBgwbp2rVrpnMAAAAAAADgwfjOKAAAAAAAAAAAHuLs2bM6fvy4IiIiTKfcM3l5eZo0aZI6d+6sJ554QgkJCWrSpInpLPwfLy8vDRs2TJs3b9a+ffvUokULJSYmms4qMvPnz9f58+c1efJk0ykAAAAAAADwYAzIAQAAAAAAAADwEHa7Xd7e3goPDzedck9kZGSoS5cumj59uubPn693331XxYsXN52F32Cz2ZSQkKDKlSvLZrNp5cqVppOKRKVKlTRt2jTNnDlTu3fvNp0DAAAAAAAAD8WAHAAAAAAAAAAAD2FZlsLCwhQUFGQ6pcilpKSodevW2r17t7Zs2aIXX3zRdBJuoXz58tq4caOef/55Pf3005o2bZrppCLxwgsvyGazqX///srOzjadAwAAAAAAAA/EgBwAAAAAAAAAAA9ht9sVERFhOqPIJSYmKjIyUnl5ebIsS61atTKdhALy9fVVbGysFi1apIkTJ6pfv35uN7L29vbW4sWLdfDgQc2dO9d0DgAAAAAAADwQA3IAAAAAAAAAADxAdna2du/eLZvNZjqlSG3cuFGRkZGqW7eutm3bpqpVq5pOwh0YMGCAPv30U61atUqdO3fW1atXTScVqjp16mj8+PGaOHGijh49ajoHAAAAAAAAHsbL4XA4TEcAAAAAAAAAAICitWPHDrVq1UoHDhzQgw8+aDqnSKxZs0bdu3fXU089pXfffVfFihUznYS7lJCQoI4dOyosLExr1qxRYGCg6aRCk5OTo/DwcAUFBenLL7+Ul5eX6SQAAAAAAAB4hpOcQA4AAAAAAAAAgAew2+0KDg5WnTp1TKcUiY8++khPPfWUnn32WS1dupTxuJto1qyZvvnmGx09elSPPvqoLly4YDqp0Pj6+mrhwoX6+uuv9f7775vOAQAAAAAAgAdhQA4AAAAAAAAAgAewLEutWrVyy1OOV6xYoWeeeUYvvfSSFi5cKG9vfvzhTurWratNmzbp/PnzateunS5evGg6qdC0aNFCQ4YM0ahRo3T27FnTOQAAAAAAAPAQfAcVAAAAAAAAAAAPYFmWbDab6YxC9/nnn6tPnz7661//qtjYWLccyEOqXbu2tmzZorS0ND3++OO6dOmS6aRCM23aNJUuXVrDhw83nQIAAAAAAAAPwYAcAAAAAAAAAAA3d+rUKZ08eVIRERGmUwrVxo0b1aNHD/Xu3VuzZ882nYMiVq1aNX355Zc6ceKEoqKidOXKFdNJhSIgIEDz58/XihUr9Nlnn5nOAQAAAAAAgAdgQA4AAAAAAAAAgJvbtm2bfHx8FB4ebjql0OzcuVNPPPGE/vznP2vx4sWcPO4hateurfXr1+vAgQN6+umnlZubazqpUHTs2FG9e/fWSy+9pJ9//tl0DgAAAAAAANwcA3IAAAAAAAAAANycZVlq1KiR7r//ftMphSI5OVldunRR27Zt9c4778jbmx93eJKGDRtqzZo12rhxo4YPH246p9DExsYqJydHr7zyiukUAAAAAAAAuDm+owoAAAAAAAAAgJuz2+2KiIgwnVEoMjIy1KVLF5UtW1YffvihfH19TSfBAJvNpmXLlumtt95SbGys6ZxCERwcrNmzZ+utt96SZVmmcwAAAAAAAODGGJADAAAAAAAAAODGrl27pr1798pms5lOuWs5OTnq1q2bLl68qHXr1qlUqVKmk2DQU089pddff12jRo3Sv//9b9M5haJXr16KiorSwIEDlZ2dbToHAAAAAAAAbooBOQAAAAAAAAAAbiwhIUFZWVluMSAfP3687Ha7Pv/8c1WuXNl0DpzA3/72Nz333HN69tlndeTIEdM5heLNN9/U8ePHNWvWLNMpAAAAAAAAcFMMyAEAAAAAAAAAcGN2u13lypVTjRo1TKfclU8//VQzZ87U/Pnz1bRpU9M5cCLz589X7dq11a1bN125csV0zl2rVq2aXn75ZU2ePFlHjx41nQMAAAAAAAA35OVwOBymIwAAAAAAAAAAQNF48sknJUmrV682XHLnDhw4oBYtWujZZ5/V/PnzTefACZ04cULNmjVTx44d9cEHH5jOuWs5OTlq3ry5ypcvr/Xr15vOAQAAAAAAgHs5yQnkAAAAAAAAAAC4se3bt8tms5nOuGNZWVl65plnVK9ePc2ZM8d0DpxU1apV9cEHH+jDDz/U0qVLTefcNV9fXy1cuFAbN27Uhx9+aDoHAAAAAAAAboYBOQAAAAAAAAAAburYsWM6c+aMIiIiTKfcsVdeeUWHDh3SsmXL5OfnZzoHTqxjx44aPny4Bg8erMOHD5vOuWstW7bUwIEDNWzYMF24cMF0DgAAAAAAANyIl8PhcJiOAAAAAAAAAAAAhW/58uXq16+f0tPTFRAQYDrntn399dd69NFHtWjRIvXv3990DlxAZmamWrVqpWLFimnbtm0qVqyY6aS7kpGRobCwMD3++ONatGiR6RwAAAAAAAC4h5OcQA4AAAAAAAAAgJuyLEtNmzZ1yfH45cuX1adPHz3xxBOMx1Fg/v7+Wr58uZKSkjRnzhzTOXctMDBQs2bN0uLFi7Vp0ybTOQAAAAAAAHATDMgBAAAAAAAAAHBTdrtdERERpjPuyMsvv6xLly7prbfeMp0CFxMWFqZXX31VkyZN0pEjR0zn3LUePXqoU6dOGjRokDIzM03nAAAAAAAAwA0wIAcAAAAAAAAAwA1duXJFSUlJstlsplNu244dOzR//nzNmjVL5cuXN50DFzRmzBjVrVtXAwYMkMPhMJ1z1958802dOnVK//jHP0ynAAAAAAAAwA0wIAcAAAAAAAAAwA3t3LlTOTk5Ljcgz8nJ0YABA/TII4+ob9++pnPgonx9fbVw4UJt3bpV7733numcu1alShVNmDBBU6dO1YEDB0znAAAAAAAAwMUxIAcAAAAAAAAAwA3Z7XZVqlRJoaGhplNuyz//+U8dPnxY//znP+Xl5WU6By4sPDxcgwYN0rhx45SRkWE6566NGDFCYWFhevHFF93iVHUAAAAAAACYw4AcAAAAAAAAAAA3ZFmWWrdubTrjtly8eFGvvfaahg8frlq1apnOgRuYPHmycnNzNXXqVNMpd+2/T1VftmyZ6RwAAAAAAAC4MAbkAAAAAAAAAAC4GYfDoR07dshms5lOuS0TJkyQj4+Pxo0bZzoFbiIoKEgTJ05UbGysDh8+bDrnrv3nVPWRI0fq/PnzpnMAAAAAAADgorwc/B93AAAAAAAAAAC4lYMHD6pu3bravn27WrZsaTqnQI4cOaJ69eppwYIF+stf/mI6B24kJydHjRs3VoMGDbRy5UrTOXctIyNDYWFhateund59913TOQAAAAAAAHA9JzmBHAAAAAAAAAAAN2O32+Xv768mTZqYTimw1157TdWrV1ffvn1Np8DN+Pr6KiYmRnFxcdq3b5/pnLsWGBiouXPn6v3339fXX39tOgcAAAAAAAAuiBPIAQAAAAAAAABwMwMHDtT333+vrVu3mk4pkEOHDiksLEwffPCBevbsaToHbsjhcKhly5aqXLmyVq9ebTqnUHTu3FmHDx/Wvn375O/vbzoHAAAAAAAAroMTyAEAAAAAAAAAcDeWZSkiIsJ0RoG98sorCgsLU/fu3U2nwE15eXlpwoQJ+uyzz7Rr1y7TOYXizTff1MmTJzVnzhzTKQAAAAAAAHAxDMgBAAAAAAAAAHAjGRkZ+uGHH2Sz2UynFMihQ4f08ccfa8KECfL25scWKDqdOnVS8+bNNX36dNMphaJq1aoaN26cJk+erGPHjpnOAQAAAAAAgAvxcjgcDtMRAAAAAAAAAACgcGzYsEEdOnRQamqqKlasaDrnlgYNGqT169fr8OHD8vHxMZ0DNxcXF6eePXvq4MGDqlWrlumcu5aVlaUmTZqoatWqio+PN50DAAAAAAAA13CSozwAAAAAAAAAAHAjdrtd1atXd4nx+E8//aRly5Zp1KhRjMdxT3Tr1k3Vq1dXbGys6ZRC4efnpwULFmj9+vVavXq16RwAAAAAAAC4CAbkAAAAAAAAAAC4EcuyFBERYTqjQN566y35+/vrueeeM50CD+Hj46Nhw4bp3Xff1U8//WQ6p1C0adNGzz77rIYNG6bLly+bzgEAAAAAAIALYEAOAAAAAAAAAICbyMvL07fffiubzWY65ZZyc3O1aNEiDRgwQCVKlDCdAw/Sr18/+fr6aunSpaZTCs3s2bN17do1TZo0yXQKAAAAAAAAXAADcgAAAAAAAAAA3MT333+vixcvusSAfN26dTp58qQGDBhgOgUe5v7779fTTz+thQsXmk4pNMHBwZoyZYrmzp2rvXv3ms4BAAAAAACAk/NyOBwO0xEAAAAAAAAAAODuLVq0SCNHjlR6erp8fX1N59xU165ddenSJX355ZemU+CBdu3apfDwcNntdpf4hYuCyMvLU+vWrZWbmyvLsuTtzTlSAAAAAAAA+E0n+c4RAAAAAAAAAABuwrIshYeHO/14/PTp0/riiy/0/PPPm06Bh2revLmaNm2qt99+23RKofH29tbChQu1Z88eLVmyxHQOAAAAAAAAnBgDcgAAAAAAAAAA3IRlWYqIiDCdcUtxcXEKCAhQ165dTafAg/Xp00effPKJMjMzTacUmoYNG2rIkCGKjo7WuXPnTOcAAAAAAADASTEgBwAAAAAAAADADaSlpenQoUOy2WymU25pxYoV6tq1q4oXL246BR6sR48eunTpktavX286pVC99tprCggI0JgxY0ynAAAAAAAAwEkxIAcAAAAAAAAAwA1s375dktSyZUvDJTeXkpKi7du3q3v37qZT4OEqVqyoyMhIffTRR6ZTClXJkiUVGxurpUuX6quvvjKdAwAAAAAAACfEgBwAAAAAAAAAADdgWZZq166tsmXLmk65qbi4OJUuXVrt2rUznQKoe/fu+vzzz3X9+nXTKYXqqaee0h//+EcNGjRImZmZpnMAAAAAAADgZBiQAwAAAAAAAADgBux2uyIiIkxn3NIXX3yhxx9/XH5+fqZTAHXt2lWXLl3Sli1bTKcUunnz5iklJUVz5swxnQIAAAAAAAAnw4AcAAAAAAAAAAAXl5ubq2+//VY2m810yk1duXJF27ZtU1RUlOkUQJL0wAMPqEGDBlq/fr3plEJXvXp1jRs3TjExMTpx4oTpHAAAAAAAADgRBuQAAAAAAAAAALi4xMREXb582ekH5Bs3blR2drbatWtnOgXIFxUVpfj4eNMZRWLMmDF64IEHNHr0aNMpAAAAAAAAcCIMyAEAAAAAAAAAcHF2u12BgYEKCwsznXJT69atU7NmzVSuXDnTKUC+qKgoHThwQMePHzedUuj8/f31xhtvKC4uTuvWrTOdAwAAAAAAACfBgBwAAAAAAAAAABdnWZZatWolHx8f0yk3tWXLFv3hD38wnQHcICIiQsWLF9eWLVtMpxSJ9u3b64knntDQoUOVmZlpOgcAAAAAAABOgAE5AAAAAAAAAAAuzrIs2Ww20xk3lZaWpgMHDqh169amU4Ab+Pv7Kzw8XNu2bTOdUmTmzZun1NRUzZkzx3QKAAAAAAAAnAADcgAAAAAAAAAAXNi5c+d07Ngxpx+Q2+12SXL6Tnim1q1bu/WAvEqVKho7dqxiYmJ04sQJ0zkAAAAAAAAwjAE5AAAAAAAAAAAubNu2bfLy8lKLFi1Mp9yU3W5XvXr1VKZMGdMpwK9ERkbqwIEDOn/+vOmUIjNmzBg98MADGj16tOkUAAAAAAAAGMaAHAAAAAAAAAAAF2ZZlsLCwhQUFGQ65aYSEhKcfuQOz9WyZUs5HA7t2bPHdEqR8ff31xtvvKG4uDjFx8ebzgEAAAAAAIBBDMgBAAAAAAAAAHBhlmUpIiLCdMYt7du3T40aNTKdAfymkJAQVaxYUYmJiaZTilT79u31xBNPaNiwYcrMzDSdAwAAAAAAAEMYkAMAAAAAAAAA4KKys7O1e/du2Ww20yk3debMGZ07d44BOZxao0aNlJSUZDqjyM2bN0+pqamaM2eO6RQAAAAAAAAYwoAcAAAAAAAAAAAXtWfPHl29etXpB+T/OdW5YcOGhkuA39ewYUO3P4FckqpUqaKxY8cqJiZGycnJpnMAAAAAAABgAANyAAAAAAAAAABclN1uV1BQkB588EHTKTf1ww8/qFy5cipXrpzpFOB3NWjQQAcOHFBeXp7plCI3duxYPfDAAxo9erTpFAAAAAAAABjAgBwAAAAAAAAAABdlWZYiIiLk5eVlOuWmjh8/rho1apjOAG6qevXqun79us6cOWM6pcj5+fnpjTfe0KpVqxQfH286BwAAAAAAAPcYA3IAAAAAAAAAAFyUZVmy2WymM24pOTlZ1apVM50B3FT16tUl/fILD56gffv26tq1q4YNG6bMzEzTOQAAAAAAALiHGJADAAAAAAAAAOCCUlNTlZKS4jID8v+McwFnVblyZfn7+ys5Odl0yj0zd+5cpaamas6cOaZTAAAAAAAAcA8xIAcAAAAAAAAAwAVt3bpVPj4+atGihemUWzpx4oSqVq1qOgO4KW9vb4WGhnrUgLxKlSoaO3asYmJiPOp1AwAAAAAAeDoG5AAAAAAAAAAAuCDLstSwYUPdf//9plNuKisrS+np6SpfvrzpFOCWypcvr3PnzpnOuKfGjh2r0NBQjR492nQKAAAAAAAA7hEG5AAAAAAAAAAAuCDLshQREWE645bS0tIkSSEhIYZLgFsLCQnJ/5r1FH5+fpo3b55WrVql+Ph40zkAAAAAAAC4BxiQAwAAAAAAAADgYjIzM7V3717ZbDbTKbd04cIFSe4zIF+7dq1WrFhhOgNFJDg42OMG5JLUvn17de3aVcOGDVNmZqbpHAAAAAAAABQxBuQAAAAAAAAAALiYXbt2KTMz0yUG5P8Z4wYHBxsuKRz/+Mc/NHr0aNMZRc5ut2vKlCk6e/as6ZR7KiQkJP+XHjzN3LlzlZqaqjlz5phOAQAAAAAAQBFjQA4AAAAAAAAAgIux2+0qV66catasaTrlli5fvixJKlmypOES3I5vvvlGr776qk6fPm065Z4qWbKkLl26ZDrDiCpVqig6OloxMTFKTk42nQMAAAAAAIAixIAcAAAAAAAAAAAXY1mWIiIiTGcUSGZmpiTJz8/PcAlwa35+fsrKyjKdYcyYMWMUGhrqEafsAwAAAAAAeDIG5AAAAAAAAAAAuJjt27fLZrOZziiQzMxM+fr6ytvbzI8k/vrXv+rhhx/+zZO0Bw4cqPbt2+cPhjdv3qzBgwerTp06Cg0N1dNPP60FCxYoNzf3d5+/T58+6t27969u//vf/66HH35YOTk5+belp6frpZdeUoMGDVShQgV169ZNa9euveFx169f18SJE1WzZk35+/urdu3aeuGFFwp8KnZBXsOtrjFw4EAtWLBAktS/f38NHTpUEyZM0MMPP6xjx4796pp9+/ZVhw4dlJOTox49emjatGmy2+3q0aOHypYtq/r16+v1119XXl7eDY8ryPtxr/n7++f/0oMn8vPz07x587Rq1SrFx8ebzgEAAAAAAEARYUAOAAAAAAAAAIALOX78uE6fPu0yA/KsrCz5+/sbu36tWrW0detWffLJJzfcnpqaqiVLlqhMmTLy8/PTpk2b9Nhjj2nFihXq0KGDBgwYoJSUFA0aNEjjxo373edPSEhQQkLCr24/fPiwtm7dmj+aPnnypJo2baqlS5eqTZs26tevn5KTk9W5c2fFxsbmP+6ll17S1KlT1aZNG82YMUOPP/64li1bpg4dOtzytRb0NdzqGnXq1FHFihXz/1yrVi3VrVtXW7duVVxc3A3XPHHihJYuXaqgoCD5+vrqyy+/1DvvvKPHH39cWVlZGjhwoAICAhQdHa2BAwfmP66g78e95ufn59EDcklq3769unbtqmHDhnn8ewEAAAAAAOCuvBwOh8N0BAAAAAAAAAAAKJjly5erX79+Sk9PV0BAgOmcW1q8eLFGjRqln3/+2cj1z58/r0qVKql169batGlT/u2xsbEaMWKE1q1bpw4dOmjgwIFaunSpzpw5o9KlS0v65aTuGjVqqFSpUvrhhx8kSW3bttXRo0eVkpIiSapfv77y8vLyP/8ff/nLX/TOO+8oMzNTfn5+6t27t5YvX67t27erZcuWkn4Z10dFRWnr1q06ffq0SpQooZIlSyoqKkqfffZZ/nPNmzdPw4YN08GDB1WnTp3ffa0FeQ2ZmZkFusbrr7+u6Oho7dmzR02aNNGVK1dUoUIF1a1bV99++23+42bPnq1Ro0ZpzZo16tSpk0JCQpSWlqbZs2drxIgRkqS8vDw99thj2rx5s7799ls1a9asQO9HmTJlbvNf++4tWbJEI0eONPb16ix+/PFHhYWF6eWXX77pL1AAAAAAAADAJZ3kBHIAAAAAAAAAAFyIZVlq2rSpS4zHJcnX11c5OTnGrl+2bFlFRUXpm2++0blz5/JvX7FihSpXrqx27dpJkkaOHKlvv/02f3gt/TJoLl26tDIyMu6q4aefftKHH36o8PDw/LG09Mtp188//7yysrL0ySefKDc3V5K0efNm7dmzJ/9+Q4YM0eXLl1WzZk3l5eXpypUrN3z853EFeQ0FucZvKVGihJ588knt2rVLycnJ+bfHxcUpJCTkhhPSS5cureHDh+f/3dvbW+PHj5fD4dCGDRsK/H6YkJWVpWLFihm5tjOpUqWKoqOjNWXKlBv+vQEAAAAAAOAeGJADAAAAAAAAAOBCLMuSzWYznVFg/v7+ysrKMtrQt29f5ebmavXq1ZKk5ORk7dixQ3369JG39y8/Kqlbt64qVaqkWbNm6U9/+pOaN2+u0Og8xssAACAASURBVNDQX50sficOHjwoh8Ohy5cvq0ePHjd8vP/++5Kko0ePKiAgQBMnTlRGRoYeeughhYWFafDgwYqPj5e/v798fHy0Y8cO3X///Td8fPTRRwV+DQW5xu/p3bu3JGnVqlWSpJSUFO3YsUM9evS4YXRdu3ZteXl53fDY+vXr57/Ogr4fJmRmZsrf39/ItZ3NmDFjFBoaqtGjR5tOAQAAAAAAQCFjQA4AAAAAAAAAgIu4cuWKEhMTXW5AnpOTo7y8PGMNnTp1UlBQUP7weeXKlZKk5557Lv8+M2bM0AMPPKCYmBhlZ2frscce03vvvafIyMg7uuZPP/2U/+e0tDRJv7wXxYoVu+EjODhYvXr1yh9Yv/zyyzpy5IheffVVBQQEaMGCBerUqZPq16+vM2fOKCQkRL169brho1q1arf1Gm51jd/zhz/8QRUqVMh/H1etWiWHw6FevXrdcL+KFSv+6rElSpSQJBUvXvy23o97LSsriwH5//Hz89O8efO0atUqxcfHm84BAAAAAABAIfI1HQAAAAAAAAAAAApm586dysnJcbkBufTLyc733XefsYYePXpo8eLFSktL04oVKxQREaE6depIks6fP6/o6GiVLVtWhw8fVsmSJfMfO3Xq1Js+t5eX12+O4w8ePJj/5xo1akj65WTuDz744Ib75ebm6tKlSwoICFBWVpauXr2qatWqafLkyZo8ebLOnDmjqVOn6s0339Qbb7yhqVOn/uo5buc1FPQav8XHx0c9e/bU3LlzlZKSori4ONWsWfNXX49Hjhz51WOTk5MlSQ8++GCB3w8TGJDfqH379nryySc1dOhQfffdd7w3AAAAAAAAboITyAEAAAAAAAAAcBGWZalSpUqqUqWK6ZQCCwwMlCRlZGQY7ejbt69ycnL0+uuva+/everXr1/+506cOKG8vDx169bthuF1SkqK9u7de9PnrVatmpKTk5WdnZ1/2/79+28YUdeqVUtly5bV+vXrb7ifJE2fPl1BQUHauXOnvvrqKwUFBelf//pX/ucrVKig0aNHS5IuXrz4ux0FfQ13cw1J6t27txwOh2JjY7V9+3Y9++yzv7rPoUOHdPjw4Rtue/fddyVJTZo0KfD7YUJ6erpKlSpl5NrOau7cuTp9+rRmz55tOgUAAAAAAACFhAE5AAAAAAAAAAAuwrIsRUZGms64LcHBwZKkCxcuGO1o1aqV6tSpo9mzZysgIEDdu3fP/9yDDz6o+++/XytXrtSaNWt0+PBhvffee4qIiFBgYKAuX758w4ni/61ly5bKysrSc889p82bN2vx4sXq2rXrDSNkPz8/TZ8+XRkZGerdu7d2796tI0eOaNasWZoyZYratWunyMhIRUZGqly5cpo8ebI2b96sn3/+WQkJCRo+fLgk6Y9//OPvvr6CvoaCXqNq1aqSpEWLFunbb7/Nv06zZs1Ut25dxcbGSpL69Onzq5bc3Fx17dpVq1ev1v79+xUTE6N58+ape/fuevjhhwv8fpiQlpaW/zWLX4SGhmrcuHGaOnWqUlJSTOcAAAAAAACgEHg5HA6H6QgAAAAAAAAAAHBzDodD5cuX17hx4zRixAjTOQV29uxZVahQQZs3b9b//M//GG2ZMmWKXn31VfXu3VvLli274XNxcXHq37+/Ll++LEkqU6aM5syZoxIlSqhv377KzMxUdna22rZtq6NHj+YPaa9evao//elPio+PlyRVrlw5/1Tuv//978rMzJSfn58k6Y033tCYMWN0/fp1SZKvr68GDBigqVOnqkyZMpKkjRs3qm/fvkpNTc1vK168uF599VWNHz/+pq+voK+hINdIS0tTp06dtH37drVt21abNm3Kv+/UqVP1yiuvqH379lq/fv0NDSEhIWratKkqV66sZcuWKS8vT5LUtm1brVq16oZxdkHej3utc+fOCgoK0tKlS41c31llZWWpQYMGatas2Q2n1wMAAAAAAMAlnWRADgAAAAAAAACACzh06JAefPBBWZalVq1amc4psOzsbPn7+2vVqlXq1q2b6ZybSktL0549e1SxYkWFhYXJy8sr//aLFy+qVq1av/vY8+fP69SpU2rcuHH+437LpUuXtGfPHl2+fFkNGzZUaGjor+5z9epVJSYm6scff1RISIgaNGigcuXKFeprKOg1UlNTVbJkSZUsWTL/ttWrV6tbt276+OOPf/VvGhISovDwcMXHx+vixYvatWuXKleurLCwsDt+P+4lm80mm82m2bNnG+1wRp999pm6du3qFL8MAgAAAAAAgLvCgBwAAAAAAAAAAFfw3nvv6cUXX9TPP/8sf39/0zm3JTg4WDExMXrppZdMp6AQdOrUSXv37lVycrJ8fX1v+Nx/D8hdUc2aNTVgwACNGzfOdIpTioqK0pkzZ7Rr1y75+PiYzgEAAAAAAMCdOeltugAAAAAAAAAAANyaZVlq3ry5y43HJalq1ao6ceKE6QzcpalTp+qll17S2rVrFR0d/avxuKvLyclRSkqKqlWrZjrFac2ePVv79+/X4sWLTacAAAAAAADgLjAgBwAAAAAAAADABViWJZvNZjrjjlSvXl3JycmmM3CXFi1apJUrV2rAgAEaOHDgb96nYsWKCgkJucdlhePkyZPKzs5W9erVTac4rXr16mnIkCEaP3680tLSTOcAAAAAAADgDjEgBwAAAAAAAADAyWVkZOj777932QF5tWrVdPz4cdMZuEsnTpxQWlqaFi1aJD8/v9+8T1JSkpYtW3aPywrHf75GGZDf3KRJk+Tn56fJkyebTgEAAAAAAMAdYkAOAAAAAAAAAICT2759u3Jzc9WqVSvTKXekevXqOnbsmOkM4KaOHTumgIAAlStXznSKUwsMDFRMTIzmz5+vpKQk0zkAAAAAAAC4AwzIAQAAAAAAAABwcpZlqVq1aqpUqZLplDtSv359paWlKTU11XQK8LuSkpJUv359eXl5mU5xev37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mpqamtQRAAAAAADQHJ1zzjkxe/bsmDx5cuqURun555+PQYMGxaBBg+Lee++N0tLS1EnUsVmzZsXBBx8cBx54YIwbN87veRNXVVUV++yzT+yxxx4xbty41DkAAAAATcVbbiAHAAAAAIBECoVC5HK51BmN1v777x+PPPJIPPbYY3HGGWdEdXV16iTq0Jw5c2LQoEHRv3//GDt2rPF4M1BaWhrXX3993H///fHkk0+mzgEAAABoMtxADgAAAAAACaxcuTI6duwYY8eOjRNOOCF1TqP22GOPxXHHHRcnnnhi3HHHHYbFTdCMGTPiiCOOiD333DP+9re/Rdu2bVMnUY+OPPLIeO+99+KFF16IkpKS1DkAAAAAjZ0byAEAAAAAIIUpU6bEunXrYuDAgalTGr0jjjgiJk6cGA8//HAcf/zxsWbNmtRJ1KJp06bFoEGDYq+99opHH33UeLwZuvHGG+Pll1+OO+64I3UKAAAAQJNgQA4AAAAAAAlkWRbdunWLnXfeOXVKk3DQQQfFhAkTYtKkSfGd73wnKioqUidRC5588sk45JBD4utf/3pMnDgx2rVrlzqJBPbcc884++yz49JLL40VK1akzgEAAABo9AzIAQAAAAAggSzLIpfLpc5oUr7+9a/HU089FS+++GIcdNBB8d5776VOYgvccccd8a1vfSuOO+64GDduXLRq1Sp1Egn94he/iHXr1sV1112XOgUAAACg0TMgBwAAAACAelZTUxNTp041IK8D/fr1iylTpsQnn3wS/fr1i5kzZ6ZOYhPV1NTElVdeGT/4wQ/inHPOiTvvvDNatGiROovEtt122xg+fHjceOONsWTJktQ5AAAAAI2aATkAAAAAANSzuXPnxkcffRT5fD51SpP01a9+Nf7xj3/EV7/61Tj44INjwoQJqZPYSKtWrYphw4bFNddcEyNHjozf/e53UVzsn7P4b+edd1585StfiUsvvTR1CgAAAECj5m/cAAAAAACgnmVZFm3atInevXunTmmyOnXqFE888UR8+9vfjmOOOSZ+/vOfR3V1deosvsSCBQsil8vF448/HhMmTIgzzjgjdRINTIsWLeJXv/pVjBkzJgqFQuocAAAAgEarqKampiZ1BAAAAAAANCdnnHFGLFy4MJ555pnUKc3Cf/7nf8YFF1wQhx12WIwePTo6duyYOol/8sgjj8Spp54a3bt3j/vvvz923XXX1Ek0YAceeGBUVVXF5MmTo6ioKHUOAAAAQGPzlhvIAQAAAACgnhUKhcjn86kzmo1zzz03Jk2aFLNmzYo+ffrEpEmTUifxP9asWRPnn39+HHfccXH88cfHP/7xD+Nx/qXf/e53MXXq1HjggQdSpwAAAAA0SgbkAAAAAABQjz766KOYP39+5HK51CnNysCBA2P27NlxwAEHxMEHHxznn39+rF27NnVWszZ37tzI5XJxxx13xKhRo+K2226L1q1bp86iEdh3333j5JNPjp/+9Kfx6aefps4BAAAAaHQMyAEAAAAAoB5lWRY1NTUxcODA1CnNTocOHaKsrCz+9Kc/xW233Ra5XC5mzpyZOqvZqaqqiuuuuy769u0bW221VcyaNSu+//3vp86ikbnuuuvivffeiz/+8Y+pUwAAAAAaHQNyAAAAAACoR1mWRY8ePaJz586pU5qts846K6ZPnx5t27aN/v37xyWXXBKrV69OndUsvPjii9G/f/+48sorY8SIETFp0qTo1q1b6iwaoV122SV+9KMfxVVXXRXl5eWpcwAAAAAaFQNyAAAAAACoR1mWRS6XS53R7PXs2TMmTZoUN998c/zxj3+MPn36xMSJE1NnNVnLly+P//iP/4gBAwbENttsE7NmzYpLLrkkSkpKUqfRiF166aXRqlWr+OUvf5k6BQAAAKBRMSAHAAAAAIB6sm7dupg2bZoBeQNRXFwc5557bsydOzd69+4dRx55ZBx99NHx6quvpk5rMtatWxd//vOfo2fPnjF69Oj4r//6r/j73/8ePXv2TJ1GE9CuXbsYMWJE/OEPf4jXXnstdQ4AAABAo2FADgAAAAAA9WT27NmxYsWKyOfzqVP4P3beeecYN25cPP300/Hmm29Gr1694oILLoilS5emTmvUHn/88ejXr1+cd955MXTo0Jg/f36ceeaZUVRUlDqNJuTss8+Or33ta3HJJZekTgEAAABoNAzIAQAAAACgnmRZFu3atYu99tordQpf4OCDD47p06fHzTffHGPGjInu3bvHpZdeGsuWLUud1qg888wz8Y1vfCOOOOKI2GWXXeKll16Km266KTp27Jg6jSaopKQkrrvuurj//vvjueeeS50DAAAA0CgYkAMAAAAAQD3JsiwGDBgQJSUlqVPYgJKSkjjnnHNi0aJFMWLEiBg5cmTstttucdlll8V7772XOq9Be+KJJ+LQQw+Ngw8+OFq3bh2FQiEeeeSR2GOPPVKn0cR961vfisMOOywuuuiiqKmpSZ0DAAAA0OAZkAMAAAAAQD0pFAqRz+dTZ7AR2rZtGz/5yU9i0aJF8dOf/jRGjhwZ3bp1i7POOivmzp2bOq/BqKysjLvuuiv22WefOPzww6OoqCieeeaZeOKJJyKXy6XOoxn59a9/HS+++GKMGTMmdQoAAABAg1dU49PwAQAAAACgzi1dujS6dOkSf/vb32Lw4MGpc9hEa9asiTvvvDNuvPHGmD9/fgwaNCjOPPPM+Pa3vx0tW7ZMnVfvFi9eHLfffnvcfvvt8cEHH8R3v/vduOiii2LfffdNnUYz9oMf/CCeeOKJePXVV6Nt27apcwAAAAAaqrfcQA4AAAAAAPUgy7IoKiqK/fffP3UKm6F169Zx9tlnx9y5c+Phhx+OVq1axfe+973YZZdd4sILL4yZM2emTqxzFRUVUVZWFocffnj06NEjbr/99jj99NNjwYIFcffddxuPk9zVV18dH330Udxyyy2pUwAAAAAaNDeQAwAAAABAPfjZz34WjzzySLz88supU6glb7/9dvzlL3+J22+/PRYvXhw9e/aMIUOGxJAhQ6JXr16p82rFqlWrYsKECTF27NiYMGFCrF27NgYPHhxnnXVWHHXUUVFaWpo6ET7jiiuuiN/+9rfx2muvRZcuXVLnAAAAADREbxmQAwAAAABAPTjwwAOjmxUhlgAAIABJREFUZ8+eceutt6ZOoQ68/PLLcd9998Xo0aNj0aJFsdtuu8Vhhx0WgwYNiiOOOCLat2+fOnGjLVq0KJ588sl48sknY+LEiVFRURG5XC6++93vxsknn2yUS4O2atWq2H333eO4446L3//+96lzAAAAABoiA3IAAAAAAKhrlZWV0aFDh7j55pvjjDPOSJ1DHaquro6pU6fG+PHjY+LEiTF9+vRo2bJl7L///nHAAQfEAQccEPl8PrbddtvUqRHx371z586NyZMnx+TJk+O5556LJUuWRIcOHWLQoEExePDgOProo43GaVRuu+22OOecc2LmzJmx1157pc4BAAAAaGgMyAEAAAAAoK5NmzYt9t9//5g7d27sueeeqXOoR++//348/vjj8eyzz0ahUIh58+ZFRET37t2jd+/e0atXr+jVq1f827/9W+y2227RunXrOm1ZsGBBzJkzJ1566aWYPXt2vPTSS7F8+fJo165dDBw4MA444IA45JBDIpfLRWlpaZ21QF2qrq6O/v37x8477xwPP/xw6hwAAACAhsaAHAAAAAAA6trNN98cV1xxRZSXl0dxcXHqHBIqLy+PQqEQM2bMiNmzZ8esWbNi4cKFUV1dHRERO+64Y+y2227RrVu32G677aJTp07rv9xmm22itLQ0SkpKon379hERUVVVFStXroyIiIqKivj444+jvLw8ysvL44MPPoh33303Fi9eHIsXL45Vq1ZFRET79u1j7733jl69ekWfPn1iwIAB0adPnygpKUnziwJ14Omnn45DDz00nnjiiRg0aFDqHAAAAICGxIAcAAAAAADq2tChQ2P58uUxYcKE1Ck0QKtWrYr58+fHkiVLYvHixbFkyZJYsmTJ+iH4/37878j8y7Rt2zY6deq0/mOnnXaKXXfdNXbbbbf1H7vuumsUFRXVw88M0jrqqKPinXfeienTp/vkHQAAAID/z4AcAAAAAADq2q677hpnnnlmXH755alTaMQ++eSTqKysjKqqqli4cGFcf/31cdNNN0W7du0iIqJdu3ZRWlqauBIajnnz5kXv3r3j1ltvjdNOOy11DgAAAEBD8ZZPtQcAAAAAgDr0zjvvxBtvvBH5fD51Co3c1ltvHR07dozOnTtHlmXx+OOPR6dOnaJjx47RsWNH43H4J3vuuWecccYZMXz48KioqEidAwAAANBgGJADAAAAAEAdKhQKUVJSEv3790+dQhMyatSoqKioiEceeSR1CjRov/jFL2LlypVx4403pk4BAAAAaDAMyAEAAAAAoA5lWRZ77713tG/fPnUKTcSCBQti1qxZUVRUFHfddVfqHGjQtt9++7j44ovj+uuvj3fffTd1DgAAAECDYEAOAAAAAAB1qFAoRD6fT51BE3LPPfdEixYtoqamJiZOnBjl5eWpk6BB+/GPfxwdO3aMK664InUKAAAAQINgQA4AAAAAAHXk008/jRkzZkQul0udQhMyevToqKysXP/6gQceSFgDDV+bNm3il7/8Zdx+++3x8ssvp84BAAAASM6AHAAAAAAA6siLL74Yn376qQE5tWb69OmxYMGC9a9ramrizjvvTFgEjcOwYcNin332iYsvvjh1CgAAAEByBuQAAAAAAFBHsiyL7bbb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KA4//PD42c9+FjU1NalzAAAAADaZATkAAAAAAGymQqEQEREDBgxIXAJAffr1r38dL774YowbNy51CgAAAMAmMyAHAAAAAIDNlGVZ7LHHHrHtttumTgGgHvXu3TuGDh0aw4cPj8rKytQ5AAAAAJvEgBwAAAAAADZToVCIfD6fOgOABK6++up444034tZbb02dAgAAALBJDMgBAAAAAGAzVFZWxgsvvBC5XC51CgAJdOvWLc4999y48sorY+XKlalzAAAAADZaaeoAAAAAAABojGbNmhWrVq0yIG8mysvL4/XXX0+dsV55eXl06dIlpk+fnjplvZKSkujTp0/qDPicujy/xxxzTNx1111RVlYW/fr1q5Mfoz44vwAAANC8GJADAAAAAMBmKBQK0aFDh9hjjz1Sp1APHnzwwTjrrLNSZ3xO3759Uyes165du1ixYkXqDPic+ji/P/zhD+v0+69rzi8AAAA0LwbkAAAAAACwGbIsi1wuF8XFxalTqCdbb711zJgxI3VGg3TffffFtddemzoDNsj53TDnFwAAAJofA3IAAAAAANgMWZbFGWeckTqDelRUVBQ9evRIndEgde7cOXUCfCnnd8OcXwAAAGh+XIsCAAAAAACb6J133onXX389crlc6hQAAAAAANgkBuQAAAAAALCJCoVCFBcXR//+/VOnAAAAAADAJjEgBwAAAACATZRlWey9996xzTbbpE4BAAAAAIBNYkAOAAAAAACbKMuyyOfzqTMAAAAAAGCTGZADAAAAAMAm+PTTT2PGjBmRy+VSpwAAAAAAwCYzIAcAAAAAgE0wffr0WLNmjQE5AAAAAACNkgE5AAAAAABsgkKhENttt1306NEjdQoAAAAAAGwyA3IAAAAAANgEWZZFPp+PoqKi1CkAAAAAALDJDMgBAAAAAGATTJkyJXK5XOoMAAAAAADYLAbkAAAAAACwkV5//fV4++23DcgBAAAAAGi0DMgBAAAAAGAjFQqFKC0tjX79+qVOAQAAAACAzWJADgAAAAAAGynLsujTp09stdVWqVMAAAAAAGCzGJADAAAAAMBGyrIs8vl86gwAAAAAANhsBuQAAAAAALARVq9eHbNmzYpcLpc6BQAAAAAANpsBOQAAAAAAbIRp06ZFZWWlATkAAAAAAI2aATkAAAAAAGyEQqEQO+64Y3Tr1i11CkRERHV1deoE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lgYNGqRFixZp9erVeu6550wnAcViw4YN8vf3V2ZmplJSUhQZGWk66Vdat26t/fv36+WXX9Zrr72mjh076ssvvzSd5bby8/P14Ycfys/PTxcuXFBSUpJmzJghX1/fEm/x8PBQVFSUbDab5s2bp379+ikzM7PEOwDcm5YtW6p169ay2WymUwAAAAAAKHUYkAMAAAAAAACAARkZGQoNDVVKSori4+PVv39/00mA0+Xn5ysqKkoDBw5U3759lZ6erj/96U+ms35TmTJlNGXKFO3fv18eHh5q166dXnjhBWVkZJhOcytbt25VmzZtNHnyZE2cOFEHDhxQYGCg6SxFRkZq+/btOnjwoDp16qQzZ86YTgLwH1itVsXFxSkvL890CgAAAAAApQoDcgAAAAAAAAAoYadPn1ZQUJB+/PFH7dmzRx07djSdBDjdpUuX1KtXL82YMUOzZ8/WokWLVL58edNZv0urVq2UnJysuXPnatWqVWratKn+53/+Rzk5OabTXNqxY8fUv39/9erVS82aNdNXX32lt99+28hVx39LQECA0tPTVbZsWT322GNKTEw0nQTg3xg2bJgyMjK0bds20ykAAAAAAJQqDMgBAAAAAAAAoASlpaUpMDBQVapUUWpqqpo1a2Y6CXC6xMREtWnTRj/88IP27t2rZ555xnTSPfP09NRTTz2lkydPauzYsXr99dfVtGlTzZ07lyvh/otTp05p+PDh8vPz09mzZ7Vt2zatXr1aTZo0MZ12V/Xr19fu3bvVs2dPhYaGatasWaaTAPyGhg0bKjAwUDabzXQKAAAAAAClCgNyAAAAAAAAACgh69atU7du3eTv76+EhATVqlXLdBLgVA6HQzNmzJDFYlFgYKDS0tLUunVr01lFUqlSJU2bNk2nTp1S//799dJLL6l58+aaPXu2bt++bTrPqKNHj+qpp55Sy5YtlZSUpMGDB+vgwYPq0aOH6bT/qGzZslq8eLHee+89jRs3TmPHjlV+fr7pLAB3YbVatWrVKmVlZZlOAQAAAACg1GBADgAAAAAAAAAlYMGCBQoLC1NERIQ2bNigSpUqmU4CnOrKlSvq3bu33nnnHX344YdatWqVqlSpYjrLaerXr69Zs2bp5MmTslgsevnll/Xwww8rKipKly5dMp1XorZv366+ffvKz89Pe/fu1Weffab9+/dr5cqVmjRpkhwOh+nE38XDw0MTJ07U0qVLtXjxYvXt21fXr183nQXgX0RERCgnJ0cbN240nQIAAAAAQKnh4XCXV/EAAAAAAAAAwA05HA799a9/1ZQpU/T2228rKirKdBLgdGlpaRo6dKgcDoeWLVumgIAA00nF7vLly1qwYIGio6OVkZGh0NBQ/fnPf9YTTzwhLy8v03lOd+3aNcXFxelvf/ubjhw5oo4dO2r8+PG/+H6rVauma9eu6cknn9Rnn30mb29vw9W/36FDhzRw4ED5+vpq/fr1atGihekkAP+kZ8+eKl++vFavXm06BQAAAACA0uAcVyAHAAAAAAAAgGKSn5+vsWPHaurUqZo9ezbjcZQ6DodD0dHR6tSpk1q3bq1Dhw49EONxSapZs6YmTpyob7/9VnPnztX169c1dOhQNWnSRJMnT9bhw4dNJxZZVlaWli1bpieeeEJ16tTRxIkTFRwcrIMHDyopKUnh4eG/GMu3bNlSkrR48WINHjxY2dnZptLvmb+/v1JTU1WtWjUFBQVp27ZtppMA/BOr1apNmzbp6tWrplMAAAAAACgVGJADAAAAAAAAQDG4deuWBgwYoNjYWK1du1ZjxowxnQQ41Y0bNxQeHq5XX31Vb7zxhtasWaOqVauazipx5cqV05NPPqndu3fr2LFjCg8P15IlS+Tv768WLVrozTff1J49e1RQUGA69Xe5fPmylixZooiICNWqVUsjRoxQVlaW5s2bpwsXLmjWrFny9/e/6//bqlUr+fj4qKCgQFu2bFH37t2VmZlZwt/B/atbt6527dql/v37q1evXpoxY4bpJAD/5x8/7WDNmjWmUwAAAAAAKBU8HA6Hw3QEAAAAAAAAAJQmFy9eVN++fXXhwgVt2LBB7dq1M50EONWBAwcUHh6unJwcLVu2TB07djSd5FIcDodSU1O1fPlyrVmzRt99952qVq2q4OBg9e3bVx07dtSjjz4qDw8P06m6efOm9uzZo6SkJG3dulX79++Xt7e3goODFR4errCwMNWoUeN3PdbMmTP1+uuvKzc3V5Lk4+OjP/7xj9q+fbvq1atXnN+G00VHR+uVV17R008/rVmzZsnHx8d0EvDACwsL040bN2S3202nAAAAAADg7s4xIAcAAAAAAAAAJzp16pR69+4th8OhzZs3q2nTpqaTAKeaEWoedgAAIABJREFUO3euxo0bp6CgIMXGxqpOnTqmk1ze119/rfXr1+uDDz5Qdna2bt26papVqyooKEht27ZV69at5efnp6ZNm8rLy6vYOq5fv64jR47oq6++0uHDh7V3714dOXJEBQUFatKkiUJCQtSrVy/16NFDFStWvOfH37Rpk/r27fuL23x8fFS7dm0lJiaqSZMmzvpWSsSmTZtktVrVunVrrVy5UrVq1TKdBDzQVqxYoYiICP3www9u96EUAAAAAABcDANyAAAAAAAAAHCW1NRU9e/fX40bN9b69etVs2ZN00mA09y8eVNjxozRsmXL9Nprr2nq1KnFOnYubcaNG6f58+crMzNThw8fVnJyslJSUnTo0CF98803KigoUJkyZfTII4/okUceUaNGjdSgQQPVqlVLNWrUUPXq1VWpUiVVrlxZklS+fHmVKVNGmZmZKiwsVF5enm7evKmMjIw7vy5evKgzZ87ou+++05kzZ3Tx4kVJ0kMPPaTWrVurXbt26tSpk4KCgpzyQYDTp0+rcePGv7rdx8dHlStX1rZt2+Tv71/k5ylJR44c0YABA+Tp6al169bpT3/6k+kk4IGVnZ2tOnXqaMqUKRo3bpzpHAAAAAAA3BkDcgAAAAAAAABwhjVr1mjYsGEKDQ1VbGysypcvbzoJcJrjx48rPDxcly5dUkxMjHr27Gk6ya1s375dISEhcjgcun37tsqWLfuL+7Ozs3X06FEdO3ZMp0+fvjP6PnfunC5fvqwbN27c0/P5+PioWrVqqlWrlho1anRnkN60aVP5+fmpYcOGzvz27igsLFS5cuWUm5v7q/u8vLxUrlw5bdq0ScHBwcXy/MXlypUrGjJkiA4cOKDFixdrwIABppOAB9aTTz6pkydPKiUlxXQKAAAAAADujAE5AAAAAAAAABTVJ598or/85S8aNWqU/v73v8vb29t0EuA0ixYt0vPPP6//9//+n5YuXap69eqZTnIrmZmZatmypS5evCiHw6Hz58/f859hXl6eMjIylJWVpevXr0uSzp8/rzlz5uidd96Rl5eXfH19VbFiRVWvXv3OVcpNaNGihU6cOHHX+zw9PeXl5aWlS5fqiSeeKOGyosnNzdVzzz2nL774QlOnTtXEiRNNJwEPpC1btqh379765ptv1KRJE9M5AAAAAAC4q3OepgsAAAAAAAAAwF05HA5FRUVp/PjxeuuttzRv3jzG4yg1srOzNXbsWI0cOVJPP/20EhISGI/fh5deekmXL1/WP67nc/Xq1Xt+DB8fH9WpU0eNGzdWu3bt1K5dO507d05JSUlq3bq12rVrJz8/PzVq1MjoeFySWrduLU/Pu7/9VFhYqPz8fIWHh2vRokUlXFY0vr6+mj9/vj799FO9+eabGjZsmG7fvm06C3jghISEqHbt2lq+fLnpFAAAAAAA3BoDcgAAAAAAAAC4D7m5uRoxYoSmTZumRYsWKSoqynQS4DQnT55Uhw4dtGzZMsXFxSk6Olo+Pj6ms9zO2rVrFRMTo/z8/Du3ZWRkOOWxv/jiC924cUObNm1yyuM5S8uWLf/t35V/fMgmKSlJeXl5JZXlNGPGjNGGDRu0efNm9ejRQz/99JPpJOCB4u3trbCwMC1evNh0CgAAAAAAbo0BOQAAAAAAAADco5s3b2rAgAFat26d1q5dqxEjRphOApxm9erVevzxx+Xj46MDBw4oLCzMdJJbunz5skaNGvWrq3HfzxXI/9X333+vffv2ycPDw+VGlM2bN7/rMPwfw/Hg4GAdOnRIc+fOddsPJfTs2VNpaWm6evWq2rdvr/3795tOAh4oVqtVx48f15EjR0ynAAAAAADgthiQAwAAAAAAAMA9uHDhgjp37qwvv/xSu3btUq9evUwnAU6Rk5Oj8ePH64knnlBERIT27NmjP/7xj6az3NaYMWN08+ZNFRYW3rnN29vbKQNym80mLy8vORwObdiwQZmZmUV+TGdp0aLFL75nLy8vSZKnp6dGjx6thIQE+fn5mcpzmqZNm2rPnj1q3ry5unTpotWrV5tOAh4YHTt21COPPCKbzWY6BQAAAAAAt8WAHAAAAAAAAAB+p6NHjyowMFC5ublKTU1V27ZtTScBTnH27Fl17dpVn3/+uZYuXao5c+bI19fXdJbbWrhwodauXfurK3F7eXkpIyOjyI+/aNEi5efnS5IKCgq0Zs2aIj+mszRv3lweHh53frVo0UKbNm3Sm2++qWXLlunSpUumE52mWrVq2rJli55++mmFhYUpKipKDofDdBZQ6nl4eGjo0KGKjY3l3xwAAAAAAPeJATkAAAAAAAAA/A47duxQp06dVL9+fe3cuVMNGzY0nQQ4xfr169W2bVvduHFDqampioiIMJ3k1s6dO6dx48b95v1FvQL58ePHdfz48V/cFhMTU6THdKYKFSqoXr16+sMf/qCYmBh9+eWX6t27t1555RVVqFBB06dPN53oVN7e3oqOjtbs2bP1/vvvKzIyUj///LPpLKDUs1qt+v7775Wammo6BQAAAAAAt8SAHAAAAAAAAAD+g5UrV6p3797q1q2bEhISVKNGDdNJQJHl5+crKipKgwYNUt++fbVv3z49+uijprPcmsPh0MiRI5WdnX3Xq+IWFBQUeUC+ZMkS+fj43Pl9YWGhduzYoZ9++qlIj+tMCxYs0KlTpzR8+HB5ev7vW1EVKlTQm2++qVmzZun06dOGC51vzJgxSkhIUGJiojp16qQffvjBdBJQqvn7++tPf/qTbDab6RQAAAAAANwSA3IAAAAAAAAA+Deio6M1dOhQjRkzRitWrFC5cuVMJwFFdv78eXXr1k0zZszQnDlztGjRIpUvX950ltv7+OOPlZiYqLy8vLven5+frytXrhTpOWJiYn71+B4eHlqxYkWRHteZQkND5evr+6vbx4wZo4YNG2rKlCkGqopfcHCwUlJSlJOTo4CAAO3bt890ElCqRUREaNmyZcrPzzedAgAAAACA22FADgAAAAAAAAB34XA4NHHiRL388st66623FB0dfedKuoA7S0xMVPv27XXp0iWlpaVp9OjRppNKhRMnTui1115TYWHhv/26S5cu3fdzpKam6uzZs7+6vaCgQIsWLbrvxy0pPj4+mjJlimJiYnT48GHTOcWicePGSk1NVbt27dS5c2ctXrzYdBJQag0bNkyXL19WYmKi6RQAAAAAANwO73YAAAAAAAAAwL/IycnRsGHDFB0drSVLligqKsp0ElBkDodDM2bMkMViUVBQkNLS0uTn52c6q9RISkrSww8/LEny8vKSt7f3Xb+uKFcgt9lsd72yt8Ph0L59+3TmzJn7fuySEhkZKX9/f7311lumU4pNpUqVtHr1ao0fP15//vOfNWnSpP/4wQIA965x48Zq3769bDab6RQAAAAAANwOA3IAAAAAAAAA+CfXrl1TaGiotmzZoq1bt8pqtZpOAorsypUr6t27t9555x19+OGHWrlypapUqWI6q1R5+umndfLkSZ07d06fffaZAgMD5eHhIUny9fW98xMMrl69el+PX1hYqNjYWOXm5t71fm9vby1btuz+4kuQh4eH3n//fa1fv147duwwnVNsvLy8NH36dM2bN08fffSRBgwY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768333xTbdu2VbNmzeTsXLwPldx1112666675Ofn96v3Hzp0SFu3btWWLVu0cuVKTZ8+XeXKlVPHjh3VqVMndenSRfXr1y/W1pJmx44d6tKli+69916tWrVK1apVM50E2L158+apbt266tChg+kU2KGCggIlJiZq1KhRplNgw6pUqXLjtF3YnpCQEEVFRZnOAG5beHi4unXrppMnT6pq1apKSkrS2rVrtXbtWh0+fFiVKlWSn5+fBgwYoLZt26pNmzbF/iovlSpVUtOmTdW0aVP17NnzxvvT09O1bdu2GwP3zz77TNnZ2fLx8VGnTp3UuXNn+fv7F9nF2AAAAACAv86h4D+vawUAAAAAAFCKnD9/XqtWrdKyZcsUGxsrJycn+fv7KyQkRCEhIfL19TWdeNvOnj2r9evX6+uvv9aqVauUkZGhRo0aqWfPnnriiSfs7uTtFStW6IknnpC/v7+++OKLYh9RAPit3Nxc1a5dW88884xee+010zmwQ3v27NGDDz6onTt32tT3+L9i7ty5Gjt2rC5evGg6pdRo1aqVgoKCNH36dNMpuAObNm1Shw4ddPjwYbu/2BK24cqVK6pRo4Zatmyp1NRUnTt3TvXq1VOXLl3UtWtXdejQQWXLljWdeVuys7O1ZcsWxcfHKz4+Xt9++608PT0VFhamnj17qnPnzsV+wTYAAAAA4KZOOpouAAAAAAAAKCy5ublasWKFunTpourVq+uZZ56Ri4uLFi1apPT0dFmtVo0fP97mhmVVq1ZVz549FR0drbNnzyo+Pl7+/v764IMP1KBBA/n5+Wnu3LnKzMw0nVrk5s2bpx49eqhPnz5avXo143GghFi1apV++eUX9evXz3QK7JTVapWnp6eaN29uOgU2rEqVKjp//rzpDNwhPz8/ubm5KT4+3nQKcFMpKSkaNWqUateurczMTGVnZ+uVV17RDz/8oKNHj2rmzJkKCQmxmfG4JLm4uCgkJETTpk3Tzp07dfDgQY0ZM0bfffedHn30UdWpU0evvPKKjh07ZjoVAAAAAPBvDMgBAAAAAIDN++GHHzRx4kTVqVNH3bp1U05OjhYsWKAzZ87o888/V48ePVShQgXTmYXCyclJwcHB+vjjj/XTTz8pNjZW9913n0aOHKm7775bw4YN0+7du01nFrqCggJFRERoyJAhmjBhgj799FNOsANKkKioKAUFBalevXqmU2CnrFarQkJC5OjI0x64c56enkpPTzedgTvk7Oys9u3bMyBHiZSdna158+bJz89PPj4+WrduncaNG6fjx49r27Ztev7551W7dm3TmYXG29tbEydOVEpKivbt26cnn3xS0dHRuv/++2WxWLRs2TLl5uaazgQAAAAAu8YjqQAAAAAAwGbt3LlT4eHhuu+++xQZGanBgwfryJEjio2NVZ8+feTq6mo6sUg5OzsrNDRUCxcu1KlTp/Tmm29qy5YtatGihYKCgrR69WoVFBSYzvzLcnNzNXToUE2ePFkff/yxIiIiTCcB+C9nzpzRmjVrNGjQINMpsFNXr17Vpk2bZLFYTKfAxnECue0LDg5WQkKC8vLyTKcAkv71c1JERITq1KmjZ599VnXr1lViYqIOHjyo8ePHq06dOqYTi1zDhg315ptv6sSJE4qJiZGLi4vCw8NVv359vffee7p06ZLpRAAAAACwSwzIAQAAAACAzbFarQoICFCrVq108OBBRUZGKi0tTZMmTVLdunVN5xlRpUoVjR49Wnv37lV8fLzKlSunrl27qnHjxpo/f77NjmgyMzP16KOPasmSJVqxYoWefvpp00kA/sfChQvl4uKibt26mU6Bndq0aZOys7MZkOMvY0Bu+0JCQnThwgXt2rXLdArs3IkTJzRs2DDVqVNHH3zwgYYPH64TJ05o0aJFCgwMlIODg+nEYufk5KSuXbtq5cqVOnLkiP72t7/p9ddf1z333KPx48fr7NmzphMBAAAAwK4wIAcAAAAAADZj48aN6tixo0JDQ1W+fHklJCRo165d6tevn8qUKWM6r8QIDg7W2rVrlZqaqtatW2vIkCFq3LixFi9erPz8fNN5t+2nn35Sx44dtXv3bq1fv15hYWGmkwD8jujoaPXu3VsVKlQwnQI7ZbVa9cADD+iee+4xnQIbx4Dc9jVp0kR33XWX4uPjTafATp06dUrPPvusvL29FR8frxkzZujEiRN64403VL16ddN5Jca9996r999/Xz/++KNefvllzZ8/X/Xq1dPEiROVkZFhOg8AAAAA7AIDcgAAAAAAUOKlpKQoNDRUHTt2lJOTkzZv3qx169YpKCjIdFqJ1rhxY0VGRmr//v166KGH1L9/f/n4+GjdunWm025p//798vPz06VLl7Rp0yb5+vqaTgLwO7799lvt2bNH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VauWOnTooAEDBujMmTOm02zKsWPHFBERoYkTJ6pRo0amc2CjAgICNHjwYI0cOZJXogAAAABQ6jEgBwAAAAAAN3Xu3Dm99tprevHFF0v0S8Gj5HNzc9OsWbO0YMECbdu2zXQOUKR2796tJk2aaPLkyZo0aZL27t2rkJAQ01mFxsXFRREREdqzZ4+qVasmf39/jRkzRteuXTOdhlImLi5Od999N2NAFCsPDw9JYjxYwnz44Ydq0KCB9u3bp6SkJH399deqVauW6axCc99992n16tX64osvtH79ejVs2FBffvml6SybMXbsWNWpU0fjx483nQIb9/bbbysnJ0dvvvmm6RQAAAAAKFIMyAEAAAAAwE29+uqrKleunP7+97+bTkEp0K1bN4WEhGjEiBHKz883nQMUiTlz5qht27aqXbu29u/fr7Fjx8rZ2dl0VpHw9vZWXFycFixYoMjISPn7++vYsWOms1CKWK1WhYaGysHBwXQK7Ii7u7skKSMjw3AJJOnSpUvq3bu3Ro4cqZdeeknfffedAgICTGcVmW7dumn//v3q1auXevTooVGjRnGB1i0kJSUpJiZG7733nsqUKWM6BzauSpUqeuONNzR79mwdPHjQdA4AAAAAFBkG5AAAAAAA4A/t27dPc+fO1VtvvSU3NzfTOSglZsyYoZSUFC1cuNB0ClCoLl26pPDwcI0YMUKjR49WbGysatasaTqrWPTt21d79uyRo6OjmjdvriVLlphOQilw+fJlJScny2KxmE6BnfnPCeQMyM3btWuXfH19tX79eq1Zs0YRERF2MRB2dXXVhx9+qOXLl2vBggVq27atjhw5YjqrRMrLy9OYMWPUpUsXderUyXQOSomhQ4eqYcOGevHFF02nAAAAAECRYUAOAAAAAAD+0AsvvKDmzZurX79+plNQijRu3FhDhgzRK6+8ouzsbNM5QKE4fPiwWrRooQ0bNighIUHTpk2Tk5OT6axide+992rDhg3q27evwsPD9dJLL6mgoMB0FmzY+vXrlZubq6CgINMpsDP/GZBfuHDBcIl9+89wuk6dOkpJSVFoaKjppGL3+OOPa8eOHSooKFDLli1ltVpNJ5U4UVFR2r9/v9555x3TKShFnJycNGPGDK1atUqJiYmmcwAAAACgSDAgBwAAAAAAv2vLli2KjY3VtGnT5OjIQwgoXK+//royMjL0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m4yQ6zw8PNSpUyd9+umnDv9GDQAAAADOgQFyAAAAAAAgSZo/f76aNGmicuXKmU6BE3J1dVW3bt30+eefKyUlxXQOkOby5cvq3Lmz2rVrpwEDBpjOcRheXl5asWKFwsPDNW7cONM5yEO2bdumhIQENWnSxHQKnJyvr69iY2OVmppqOsXhrFmzRh9//LE+//xzVahQwXSOw6hdu7YmTpyoUaNGad++faZzcsSqVat0/fp1de/e3XQKnFSfPn0UERGhHTt2mE4BAAAAgCxjgBwAAAAAACgqKkqhoaGsPg6jevTooXPnzmnr1q2mU4A0I0eOlKurq+bPn286xeFUqlRJM2bM0LRp0xQeHm46B3nExo0bValSJZUsWdJ0Cpycn5+fLMtSbGys6RSHEhMTo4EDB6pXr1564YUXTOc4nBEjRqhhw4bq27evkpOTTedkuy+//FKtWrXSAw88YDoFTqp69eoKCgrS0qVLTacAAAAAQJYxQA4AAAAAALR69Wq5uLiodevWplPgxMqXL6/HH39cK1asMJ0CSJK2b9+uL774Qh988IF8fX1N5zikPn36qFatWurfv78syzKdgzzg+++/V/PmzU1nAPLz85P098Azss/bb7+txMRETZ482XSKQ7LZbPrnP/+pY8eO6aOPPjKdk62uXLmiH374QZ06dTKdAifXsWNHrVq1yiHfpAEAAADAuTBADgAAAAAAtHz5crVu3ZoBSRjXoUMHff3117wYD+OSk5P1yiuvqFmzZmrXrp3pHIeVL18+ffLJJ9qzZ4+++OIL0zkw7OLFizp69KiaNWtmOgVIGyCPjo42XOI4wsPD9dFHH2n69OkKCAgwneOwypUrp2HDhumtt97S77//bjon23z99ddyd3fX008/bToFTq5Tp066fPmytmzZYjoFAAAAALKEAXIAAAAAAJzc5cuXtXXrVj5CHnlChw4ddOXKFYWFhZlOgZObNWuWjh07pjlz5phOcXhVqlRR//79NXz4cF25csV0Dgz6/vvv5ebmpgYNGphOARggz2aWZenll19W7dq19dJLL5nOcXhjxoxRkSJFNGLECNMp2WblypVq1aqVvL29TafAyZUpU0bVq1fnk7MAAAAA2D1X0wEAAAAAAMCsdevWycXFhZXckCeULVtWVatW1dq1a1mBFsZcu3ZNEyZM0Ouvv67y5cubznEKEyZM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/vyKjIzUzz//rHHjxqlatWrKly+f4uPjTScC2cbHx4cVyHOBp6en1qxZo+eff17PPfecli5dajopz5g2bZq6d++uYcOGaeHChQyzSho+fLhsNptmzZplOgUOauzYsXr44YfVtWtX0ykAAAAAkO0YIAcAAAAAALfVvn17ValSRW+99ZbpFDigGTNmKD4+XiNGjDCdAmRZx44d9d133+lf//qXGjRooMjISNNJRs2dO1cNGzZUzZo19cMPPyggIMB0EnLQunXr1KhRI3l6eqpSpUoaPXq0Dhw4oHPnzqlq1aqm84Bs4+3tzQB5LnFzc9PChQs1ePBgdenSRUOHDnXqN2jFxsaqc+fOGj16tGbOnKnJkyenfdKDs/Pz89Nrr72mmTNn6tKlS6Zz4GB+/vlnffnllxo3bpxcXV1N5wAAAABAtmOAHAAAAAAA3JbNZtOMGTO0du1abdiwwXQOHMj58+c1depUjR49msFSOIymTZtq//79SkhIUNWqVbVy5UrTSbkuNjZW//jHPzRgwAD17dtX33zzjby8vExnIQclJydr48aNatWq1S1fK1asGJ8wAYfi5eXFqvq5yGazadq0aVq5cqUWLFigunXr6uTJk6azct0vv/yiOnXq6IcfftB3332nwYMHm07Kc1577TX5+fnxxmdku2HDhikoKEidO3c2nQIAAAAAOYIBcgAAAAAAcEeNGzfWM888o6FDhyopKcl0DhzE66+/rgceeEBDhw41nQJkq/Lly2vXrl3q1KmTOnbsqCFDhighIcF0Vq44ePCgatSooc2bN+v777/XrFmz5ObmZjoLOWz79u26du2aQkJCTKcAOc7Dw0M3btwwneF0nn/+ee3du1fJycmqWbOmVq9ebTop18ydO1c1atTQgw8+qMOHD6tly5amk/IkT09PTZw4UfPnz9eBAwdM58BBfPPNN2n/ps2Xj5EKAAAAAI6Jsx0AAAAAAHBX7733nk6ePKlPP/3UdAocwO7du7V06VK99957KlCggOkcINt5eHjok08+0apVq/TFF1+ocuXKCg0NNZ2VY27cuKFx48apTp06KlGihH766Sc1bdrUdBZyybp161SxYkWVK1fOdAqQ4zw9PRkgN6R8+fLavXu3unXrpueff15t2rTR6dOnTWflmOPHj6tFixYaMGCABg8erI0bN6pYsWKms/K0Ll26qFat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NHnyZK1bt04ul0sdOnTQ0KFDdfTo0Ur5/IGqoKBAf/zjH9WsWTOtX79e33zzjVJTU3XLLbeYTgNwjdhAjsq2ePFi2e32Cr+zCOCPQkJCJEmFhYWGS2BSaGgoA+SQxWLRU089pX379mnAgAEaNmyYOnXqpBUrVphO82kej0dz5sxRq1atNHbsWP33f/+39uzZo3vvvdd0GgAAAAD4HQbIAQAAAADAVTly5Ih69eqlqKgorV27VnPmzJHNZlNQUJCCgoL0v//7vwoODq7Ur9mhQwetXr1aU6dO1dKlS3XLLbdoxIgROnnyZKV+HX9XWFioP//5z7rpppv07rvvauzYsdq5c2elDfwDMI8N5KhsaWlpSkhIUO3atU2nAF6DAXJIUlhYGAPkKBMZGakPPvhAmzdvVt26dZWYmKjk5GStW7fOdJrPWbRokTp16qR7771Xbdq00ffff69x48bxswgAAAAAVBEGyAEAAAAAwK86deqUevXqpdDQUKWlpSkiIkJ33nmnFixYILvdrrCwMD366KNV8rUtFouGDBmiffv2acKECZoxY4ZuvvlmjRw5UseOHauSr+kvCgoKNHHiRN1888167bXX9MQTT+jAgQMaNWoUW4oBP+NwOGSxWGSz2UynwA94PB6lp6erR48eplMAr1KrVi1JDJAHOgbIcSmtWrVSamqq0tPTVVhYqPj4ePXr109r1641nebVPB6PFi1apC5duqhv37664YYbtGnTJk2fPl3R0dGm8wAAAADArzFADgAAAAAAruj06dNKSkqSy+XS0qVLFRkZWXZbz549lZqaqldeeaVsI2NVqVGjhp577jnt379ff/zjHzV16lTFxMToscce0/bt26v0a/ua48eP6+WXX1bjxo31yiuvaMiQITpw4IDefPPNX/z/A+A/nE6n7Ha7LBaL6RT4gZ07d+r48ePq2bOn6RTAq7CBHJIUHh7OADkuq3v37lq9erUWLVqknJwcdenSRZ07d9bs2bPldrtN53kNp9OpTz/9VK1bt9add96p8PBwrVu3Tt99953atGljOg8AAAAAAgID5AAAAAAA4LJyc3PVu3dvFRQUKDU1VTfeeONF90lISNALL7xQbU21atXSiy++qIMHD+rDDz/Uhg0bFBcXp+TkZM2aNUtOp7PaWryJx+PRihUr9NBDD6lp06b69NNP9dJLL+nQoUP6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aNmyZcrKytLTTz+tMWPGqGHDhqbzYND06dP14Ycf3vLFaTiOgoICxcTEKDIyUl9//bWys7NVs2bNa0vdwcHBRf6EkoKCAu3Zs+faJePY2FhlZ2fL399fAwYMUP/+/XXvvfcW6ecszlggL9527Nihd999V6tWrVLFihXVp08fPfPMM3b1qiE///yzFi1apMjISCUlJSkgIEDjxo3TE088wULzHcS8tHiy1bwUAAAAAOwMC+QAAAD4vStXrqht27bKzMzU9u3b5efnZzoJRaSgoEBPPPGEdu3apd27d6tatWpF+vGTkpL02muvae3aterRo4emTp1a5J8DAADgj1y5ckXz58/X1KlTdfr0afXv31+vv/663S9kX716VV9++aXCw8N14MABde/eXWPHjtUDDzxgOg0GjBkzRmvXrlV8fLzpFBSxAwcO6PPPP1dUVJROnjyp1q1bq3///uratavNv2/Kzc3Vzp07tWLFCi1ZskQZGRkKDAxUSEiIevbsqTJlyti0x9GwQF48bdiwQe+++642bdqk1q1ba9SoUeratavc3d1Np/2pXbt2adq0afrqq6/k7++vMWPGqHfv3nbf7WiYlxZfd3peCgAAAAB2Ko2noAMAAOB3Bg8erJSUFK1cuZIfhhQzbm5uWrJkiSpVqqSnnnpKV69eLZKPm5GRodDQUDVu3Fhnz57Vli1btGzZMn7gAgAAbKKgoEAff/yxatasqZEjR6p79+46dOiQ5s+fb/fL45JUokQJ9evXT3v37tVXX32ltLQ0NW/eXF27dlViYqLpPNjY2bNn7eZSPopGfHy8evXqpcaNG2vp0qUaMGCADh48qG3btmnw4MFGvm/y9PRUYGCgPvroI50+fVpr165V1apVNXToUFWvXl1hYWE6f/68zbsAE3bs2KFWrVqpY8eOcnNz06ZNm7Rt2zY9/vjjDrGE3aJFCy1fvlwJCQl64IEH9Oyzz6pevXpaunSp6bRihXlp8XWn5qUAAAAAYO9YIAcAAMB1Zs+ercjISEVGRqp27dqmc3AHlClTRl999ZWOHDmiF1544bY+Vn5+vubOnat69epp+fLlmj17tuLi4vTQQw8VUS0AAMCfi4uLU4sWLfTaa6+pX79+Onr0qD766CPde++9ptNumYuLi7p37664uDitXbtWZ86c0f3336/Ro0fr8uXLpvNgIyyQFx8bNmxQ+/bt1axZM508eVLff/+9jh07psmTJ6tOnTqm865xc3NTx44dFRERoZ9//llDhgzRRx99pOrVq2vcuHE6e/as6UTgjkhPT9e//vUvPfTQQypTpox27typ9evXq127dqbT/pb69etr4cKFOnjwoIKCgtS3b1916tRJycnJptMcHvPS4q8o56UAAAAA4ChYIAcAAMA1u3fv1uuvv64JEyaoW7dupnNwB9WuXVsRERFatGiRFixY8Lc+xoYNG9S0aVO98sor6tu3r5KSkvTCCy/I1ZVvMwAAwJ134cIFhYaGqnXr1ipdurTi4+M1bdo0VaxY0XRakejcubPi4uI0b948zZs3T/Xq1VNERITpLNgAC+SO76efflJwcLA6duwod3d3bdq0SbGxseratatcXFxM5/0pPz8/vf3220pNTdWYMWM0b9481ahRQ5MnT1Zubq7pPKBIWK1WRUREqH79+lq5cqU+++wzrV+/Xi1atDCdViRq1KihBQsWKC4uTpcuXVLjxo0VGhqqrKws02kOiXmp8yiKeSkAAAAAOBI2OwAAACBJysrKUr9+/RQUFKTx48ebzoENPPbYYxoxYoRCQ0N16NChm/7nDh06pF69eqljx46qXr26EhMTNWPGDPn4+NzBWgAAgP9vzZo1114BJSIiQhaLRQ0bNjSdVeRcXV0VEhKiAwcOqEOHDho4cKB69OihCxcumE7DHcQCueO6fPmyRo8erSZNmigrK0s7duzQunXrHPKasY+Pj0aPHq2jR49q7NixmjRpkpo0aaJNmzaZTgNuy4kTJ9SuXTs999xz6t+/v5KTkxUSEmI6645o1qyZtm/frmnTpmnhwoVq0qSJdu/ebTrLoTAvdT5/d14KAAAAAI6IBXIAAABIkl599VWdO3dO8+fP54K0E3nnnXfUoEED9enT5y+vyWVlZSksLEyNGzfW/v37tXr1akVHR6tmzZo2qgUAAM4uPz9fY8aMUdeuXdW5c2clJiaqb9++prPuuIoVK2rhwoWKiYnRjh07FBAQoLi4ONNZuEPOnj2rcuXKmc7ALfr222/VoEEDzZ07VzNmzNCuXbvUsmVL01m3rVSpUho7dqwOHDigunXrqn379urXr59++eUX02nALVu9erWaNGmiM2fOaPfu3Xr//ffl7e1tOuuOcnNz07Bhw5SYmKhatWrpoYce0owZM2S1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byghIUHLli1TyZIlTecU/wWMjwAAIABJREFUC926ddOrr76qwYMHKzEx0XQOiolXX31VFy9e1JIlS+Tm5mY6p9h65513FBAQoGeffVYFBQWmc4oc81L8HcxLAQAAABQXLJADAAA4iU8++UQ9evRQ5cqVTafAgbi5uWno0KFatGiRsrKyTOcAAIBiZMKECbpy5Ypmz55tOqXYa9Cggd566y299957SklJMZ2DP3Hp0iUWyA1at26dZs6cqU8//VT+/v6mc4qV8PBwNWrUSAMGDCiWS6iwrbi4OH322Wf66KOPVKlSJdM5xZqHh4c+//xz/fTTT/r4449N5xQ55qX4O5iXAgAAACguWCAHAABwAvv379euXbv0r3/9y3QKHNCAAQOUl5enpUuXmk4BAADFREJCgmbNmqXw8HCVK1fOdI5TeP3111WnTh29/PLLplPwJ7hAbk5OTo6GDRumHj16qHfv3qZzih0PDw9FRkYqISFBn3zyiekcOLCCggK9+OKL6tChg3r27Gk6xynUqVNHw4cP1/jx43Xy5EnTOUWGeSluB/NSAAAAAMUBC+QAAABOYO7cuapVq5aCgoJMp8AB+fr66sknn9S8efNMpwAAgGLAarVq6NChatKkiQYNGmQ6x2m4u7tr1qxZWrt2rb799lvTObgBq9WqrKwsFsgNmTx5so4fP66pU6eaTim26tSpo9dff13jxo3TqVOnTOfAQc2cOVM//fSTZs6caTrFqYwfP15+fn4aOXKk6ZQiw7wUt4N5KQAAAIDigAVyAACAYi43N1dRUVH617/+JRcXF9M5cFDPP/+8du7cqcTERNMpAADAwUVERCg2NlZz5syRqyvjSVtq27at+vXrp9DQUF25csV0Dv6P7OxsFRQUsEBuwJEjRzR58mS9/fbbqlatmumcYu3NN9+Un5+fRo0aZToFDuj06dOaMGGCRo4cqXr16pnOcSolS5bUhx9+qKioKFksFtM5t415KYoC81IAAAAAjo6f0AAAABRz69at0/nz53kJbtyWdu3aqXLlyrwsKwAAuC35+fmaOHGinn/+eTVt2tR0jlOaOnWqzp49y7VEO5SZmSlJ8vHxMVzifF599VXVrl1bw4YNM51S7JUsWVIffPCBFi1apC1btpjOgYOZOnWqypQpo7Fjx5pOcUqPP/64OnXqpDfffNN0ym1jXoqiwLwU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/ckNlyUK1f3pqn48zuGcdFUpz3jqFMW3Xv3p5vj1r3+doArgcK+++mr87ne/O+InJfy+e+65pxOLiIgYPHhw7NixI3UGBeyFF16I5ubmI27P5XLxxhtvxMyZMxNUkW+ul+af66UAAAAnx4AcAIAOUVpaGtddd12sXbs2xo8fH+eff35cfvnlsXnz5tRpBeXAgQNx4403xqRJk2L79u3x3HPPxY9//OPo1atX6jQAgKKQy+Xi+9//fmQymWM+ZuXKlfH22293YhXAke69996jnlL8jvb29njqqaeMmTvZkCFD/DfnhOVyuVi2bNkx729ra4sbb7wxDh482IlVdBTXS/PD9VIAAID8MCAHAKBDDRs2LB588MGYP39+vPTSSzFx4sT453/+5zhw4EDqtC6tvb097r777hg7dmz8+Mc/jn/5l3+Jl19+OT7wgQ+kTgMAKCoPPvhgrF279qinj7+jpaXluOMugM4we/bsaGlpOe5j2traYsGCBZ1URETE0KFDDcg5YevWrYv9+/cf9zG7du2KGTNmdFIRncH10hPjeikAAEB+GZADANApPvOZz8SaNWvihhtuiH//93+PbDYbP/nJT6KpqSl1WpeSy+ViwYIFcfbZZ8dVV10Vl156aaxbty6+8Y1vHPekOQAA3rt3Th+PiCgpOfal0vLy8nj++ec7KwvgCOvXr48BAwbEpEmTDv0aPnx4lJSUHHbbWWedFatXr06d2604gZyTsXTp0uO+B6moqIhcLhf/+q//alxchFwvfXdcLwUAAOgYBuQAAHSaU045JW644YbYsGFDfP7zn4/rr78+qqur45Zbbun2H4K1t7fHggUL4pxzzonLL788Jk2aFCtXrozbbrstBg0alDoPAKAoHThwIKZNmxb/8A//EFdccUWcd9550bdv38hkMoceU1JSEq2trbF48eKEpUB3V11dHS+//HKsXLny0K8bb7wxevXqddhtr7zyStxyyy2pc7sVA3JOxksvvRS5XC5KS0sP3VZSUhIDBgyIiy66KK699tr4wQ9+EHfddVe0tbUlLKWjuF56bK6XAgAAdKxMLpfLpY4AAKB7ev311+Pf/u3f4s4774xTTz01pk2bFl/72tdiyJAhqdM6zYEDB2LWrFnxgx/8IDZu3Bh/8Rd/Ed/73vfi7LPPTp0GANAtXX/99fHLX/4yfv7zn8fmzZuj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DgBAp2lra4vPfvaz8fLLLx9zqN3W1tapA/I333wznnrqqYiI2L17d/zqV7/qtN8bAICupb6+PkaOHJk6A4ACM3z48Ghubo6dO3emTqFIVFVVRSaTidra2tQpdGNbt26N5cuXRy6Xi5KSkrjjjjtSJwEAAJBHBuQAAHSKXC4XU6dOjf/9v//3UU8ef0d7e3v07t2707rmz59/6H+Xl5fH3LlzO+33BgCg62hsbIx9+/bFqFGjUqcAUGCGDx8eERFbtmxJXEKxOPXUU2Po0KGxYcOG1Cl0YwsWLIjS0tKI+D+HfjzxxBPx+uuvJ64CAAAgXwzIAQDoFG+88Ubs2bMnSktLo7y8/LiP7cwB+ezZsw/9iOmWlpZYsGBBHDhwoNN+fwAAuoa6urqICANyAN6zdwbkW7duTVxCMclmswbkJHX//fdHe3v7oa9LSkpizpw5CYsAAADIJwNyAAA6xZAhQ+KBBx6ILVu2xD/90z/FkCFDIiIOnWLz+/r27dspTXV1dfHSSy8d9kHI22+/HY888kin/P4AAHQddXV1kclkYuTIkalTACgwp512WvTp08eAnLwyICelhoaGeP755w+7btrS0hK33XbbocM4AAAAKGwG5AAAdKqhQ4fG3//938d1110XPXv2jPPOOy8ymUxUVFQcekxnnUA+d+7cIwbspaWlTtIBAOiG6urqYtCgQXHqqaemTgGgAA0fPtyAnLyqqqoyICeZhx566Ki3b9y4MV544YVOrgEAAKAjGJADANDp2tvb44477oivfOUr8dxzz8Xq1atj6tSph8Y6ffr06ZSO2bNnR2tr62G3tba2xmOPPRaNjY2d0gAAQNdQV1cXo0aNSp0BQIEyICffstlsbNq0Kdra2lKn0A098MADR729vLw87rrrrk6uAQAAoCMYkAMA0OkeffTR2LhxY0ydOjUiIs4888y46aabYseOHXHbbbd1ygnka9asiTVr1hz1vlwuFw8++GCHNwAA0HUYkANwMgzIybdsNhstLS1RX1+fOoVuZt++ffHkk08e9ZsXWlpa4t577439+/cnKAMAACCfDMgBAOh0t956a3z0ox+NiRMnHnZ7r1694pprromysrIOb7j33nujvLz8qPflcrm45557OrwBAICuw4AcgJNhQE6+ZbPZiIiora1NXEJ388gjjxzxUxt/X1NTUyxcuLATiwAAAOgIBuQAAHSq2traWLRoUUyfPj1px5w5c6KlpeWo97W3t8czzzzjg18AgG7EgByAk2FATr4NGjQoevfuHRs2bEidQjezYMGCKC0tPeb9mUwm7rjjjk4sAgAAoCMYkAMA0Kluu+22GDp0aFx66aXJGl588cXYvHnzcR9TWloaDzzwQCcVAQCQUktLS2zfvt2AHIATNnz48Ni1a1e89dZbqVMoIlVVVQbkdKq33347Hn300eOeQN7W1hbPPfec0/EBAAAKnAE5AACdpqmpKWbNmhXXXnttlJeXJ+u47777IpPJHPcxra2tcffdd3dSEQAAKdXX10dbW5sBOQAnbPjw4RER8frrrycuoZhks1kDcjrVE088EQcPHvyDj+vVq1fcf//9nVAEAABARylLHQAAQPcxb9682L17d1x11VVJOxoaGuKCCy449HVbW1s8++yzcfbZZ0e/fv0O3V5eXh67du067DYAAIpPXV1dRIQBOQAnbMSIERERsXXr1hg7dmziGopFNpuNJ554InUG3ci5554bS5YsibKysjj99NMjIuJ//I//EUuWLImnn346TjvttMSFAAAA5IsBOQAAnaampib+8i//MoYNG5a0Y/bs2Yd9vWfPnujbt2/8x3/8R1x44YWJqgAASKWuri569OgRgwcPTp0CQIEaNGhQVFRUxNatW1OnUESqqqqcQE6net/73hfve9/7Drutb9++0dbWZjwOAABQZEpSBwAA0D0sW7YsXnrppZg+fXrqFAAAOExdXV2MGjUqMplM6hQAClRJSUkMHTrUgJy8ymazsXfv3ti5c2fqFLqxHj16RFNTU+oMAAAA8syAHACATvGTn/wkJkyYEOeff37qFAAAOExdXV1UVlamzgCgwI0cOTLq6+tTZ1BEstlsRETU1tYmLqE7MyAHAAAoTgbkAAB0uF27dsX8+fPja1/7mlMdAQDoct45gRwATsaoUaOirq4udQZFZNSoUVFRUREbNmxInUI3ZkAOAABQnAzIAQDocHfeeWeUlpbGFVdckToFAACOUFdXFyNHjkydAUCBq6ysjM2bN6fOoIiUlpbGqFGjDMhJyoAcAACgOBmQAwDQoXK5XNx+++3xxS9+MXr37p06BwAAjlBfXx+VlZWpMwAocE4gpyNks1kDcpIyIAcAAChOBuQAAHSoRYsWxWuvvRbXXHNN6hQAADhCQ0ND7N+/P0aNGpU6BYACV1lZGbt27Yq9e/emTqGIGJCTmgE5AABAcTIgBwCgQ9XU1MSHP/zhmDRpUuoUAAA4wjsnxRqQA3Cy3vlpFk4hJ5+qqqoMyEmqR48e0dzcHLlcLnUKAAAAeWRADgBAh6mrq4vHHnsspk2bljoFAACOavPmzZHJZGLEiBGpUwAocAbkdIRsNhvbtm2LAwcOpE6hm+rRo0fkcrloaWlJnQIAAEAeGZADANBhampqYvDgwfEXf/EXqVMAAOCo6urqYvDgwdGzZ8/UKQAUuF69ekW/fv1i8+bNqVMoItlsNnK5XGzatCl1Ct1Ujx49IiKiqakpcQkAAAD5ZEAOAECHaGpqip/+9KcxderUKC8vT50DAABHVV9fH6NGjUqdAUCRqKysdAI5eZXNZiOTycSGDRtSp9BNGZADAAAUJwNyAAA6xPz586OxsTG+8pWvpE4BAIBjqquri8rKytQZABSJUaNGOYGcvDr11FNjyJAhBuQkY0AOAABQnAzIAQDoEDU1NfHpT386hg8fnjoFAACOafPmzU4gByBvnEBOR8hmswbkJGNADgAAUJwMyAEAyLvly5fHCy+8ENOnT0+dAgAAx1VXVxcjR45MnQFAkXACOR3BgJyUDMgBAACKkwE5AAB5d/PNN8eZZ54ZH/rQh1KnAADAMTU3N8eOHTucQA5A3lRWVsa2bduipaUldQpFpKqqKmpra1Nn0E0ZkAMAABQnA3IAAPJq9+7dcd9998VXv/rVyGQyqXMAAOCY6uvro729PSorK1OnAFAkKisro62tLbZu3Zo6hSKSzWZj06ZN0dbWljqFbsiAHAAAoDgZkAMAkFd33XVXZDKZuPLKK1OnAADAcdXV1UVEOIEcgLx558+UzZs3Jy6hmGSz2WhqavKNCSRhQA4AAFCcDMgBAMibXC4XM2bMiCuvvDJ69+6dOgcAAI5r8+bN0bNnzxg4cGDqFACKxJAhQ6Jnz54G5ORVNpuNiIgNGzYkLqE7MiAHAAAoTgbkAADkzRNPPBHr1q2LadOmpU4BAIA/qK6uLkaNGhWZTCZ1CgBFIpPJxOjRo6O2tjZ1CkVk8ODBcfrppxuQk4QBOQAAQHEyIAcAIG9qamriggsuiLPOOit1CgAA/EH19fUxatSo1BkAFJmqqqrYuHFj6gyKTFVVlQE5SRiQAwAAFKey1AEAABSHurq6eOSRR+Lee+9NnQIAAO/KOyeQA0A+jRkzJpYvX546gyJjQE4qJSUlUVZWZkAOAABQZJxADgBAXsyYMSMGDRoUn/70p1OnAADAu7J582YDcgDybsyYMVFbW5s6gyKTzWY9r0imR48eBuQAAABFxoAcAICT1tzcHHfeeWd85StfiYqKitQ5AADwrtTX1xuQA5B3VVVVsW3btjhw4EDqFIpINpt1AjnJGJADAAAUHwNyAABO2v333x8NDQ0xderU1CkAAPCuvPnmm3HgwAEDcgDyrqqqKnK5XGzatCl1CkUkm83G7t27o7GxMXUK3VBFRYUBOQAAQJExIAcA4KTV1NTEJz/5yRgxYkTqFAAAeFfq6uoiIgzIAci7qqqqiIiora1NXEIxyWazERFOIScJJ5ADAAAUHwNyAABOyooVK2Lx4sUxffr01CkAAPCu1dXVRSaT8U2QAORdr169YvDgwQbk5NWoUaOivLzcgJwkDMgBAACKjwE5AAAn5ZZbbomxY8fGRz7ykdQpAADwrtXV1cXQoUPjlFNOSZ0CQBGqqqqKjRs3ps6giJSVlcWoUaMMyEnCgBwAAKD4GJADAHDC9uzZE3Pnzo2vfe1rkclkUucAAMC7VldXF6NGjUqdAUCRqqqqcgI5eVdVVWVAThIG5AAAAMXHgBwAgBM2a9asyOVyceWVV6ZOAQCA98SAHICOZOhLR8hms74xgSQMyAEAAIqPATkAACckl8vFrbfeGldeeWX069cvdQ4AALwnBuQAdKQxY8ZEbW1t5HK51CkUkWw26xsTSMKAHAAAoPgYkAMAcEKefPLJWLt2bUydOjV1CgAAvGcG5AB0pKqqqjh48GBs3749dQpFJJvNxtatW+PgwYOpU+hmDMgBAACKTybn6AMAAE7AX/7lX8abb74Zv/nNb97zP7t3794uN9ZpamqK8vLyKCnpOt9juXDhwvjIRz6SOgMA4IRddtll8eSTT6bOOKrm5uYoLS2N0tLSpB1XXnll3HTTTUkb6BouuuiiGDFiRMycOTN1Csdwzz33xN/+7d+mzjikra0tWltbo0ePHqlTDundu3fU1dWlzugS6urqorKyMp599tn44Ac/mDqHPOgK17Pa29ujpaUlKioqIpPJJG05Ftez8qMrPN9+X0tLS2QymSgrK0udchjPNwAAgBO2pWv9DQ8AgILw+uuvxyOPPBKzZs06oX8+l8vFnj174rrrrosJEybkN64IHDx4ML7+9a9HS0tL6hQAgJOyf//+mDRpUnzhC19IndIl/fjHP44DBw6kzgDepaampmhqaoof//jHqVO6pGeffTYeeuih1BldxogRI6JHjx5RW1trQF4kXM86Ptez8svz7fg83wAAAE6eATkAAO/ZrbfeGn379o3LLrvspP49F198cVx44YV5qioee/bsia9//eupMwAA8mL8+PExderU1Bld0oIFC1InAO9ReXm517RjKCkpMSD/PSUlJTFmzJjYsGFD6hTyzPWso3M9q2N4vh2d5xsAAMDJK0kdAABAYWlpaYm77rorpk6d2qV+TDYAAABAVzJ27Nh47bXXUmcAAAAAwBEMyAEAeE8WLFgQO3bsiKuvvjp1CgAAAECXVV1dbUAOAAAAQJdk3beTKwAAIABJREFUQA4AwHtSU1MTl156aYwePTp1CgAAAECXNXbs2Fi3bl3qDAAAAAA4QlnqAAAACsfq1avj2Wefjccffzx1CgAAAECXNnbs2NizZ0/s3LkzBg4cmDoHAAAAAA5xAjkAAO/azTffHNlsNj760Y+mTgEAAADo0saOHRsREa+99lriEgAAAAA4nAE5AADvyr59+2Lu3Lnx1a9+NUpKvI0EAAAAOJ6RI0fGKaecYkAOAAAAQJdj+QMAwLsya9asaGlpiS984QupUwAAAAC6vJKSkqiqqjIgBwAAAKDLMSAHAOBduf322+OKK66I/v37p04BAAAAKAhjx441IAcAAACgyzEgBwDgD3rqqadi1apVce2116ZOAQAAACgY1dXVsX79+tQZAAAAAHAYA3IAAP6gmpqa+OM//uM455xzUqcAAAAAFAwnkAMAAADQFRmQAwBwXNu2bYuHH344pk+fnjoFAAAAoKCMHTs29u7dG2+88UbqFAAAAAA4xIAcAIDjmjFjRvTp0yc+85nPpE4BAAAAKChjx46NiHAKOQAAAABdigE5AADH1NraGjNnzoyrr746TjnllNQ5AAAAAAVlxIgR0bNnTwNyAAAAALoUA3IAAI5p4cKFsW3btpg6dWrqFAAAAICCk8lkorq62oAcAAAAgC7FgBwAgGOqqamJj3/84zFmzJjUKQAAAAAFady4cbF27drUGQAAAABwiAE5AABHtWbNmnjmmWdi+vTpqVM6TXt7e+oE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7/Nj5zlz5mTOnDn79HvCRNLX15eDDz646BhMEosXL05fX99O2wcHB3PFFVcokLODX/7yl3s893HRRRflM5/5jBtYqlhjY2OOPfbYHHvssb/3vR/+8Idz4okn5qtf/eo4JGMyqVQqWbBgwU7l8e0aGhpy/fXX5wtf+MI4JwMAAOCN0IQCANiDcrmc9vb2omOwj42OjmbBggW7vICabLsosqcJ5QAAtWZgYCCf+MQn8v3vf3+35fHGxsaceOKJ45wMJj8Fcl6PhQsXpqmpaZevvfjii3n44YfHORET2e23377bcx9Jsnr16tx0003jmIiJasOGDfn5z3+eyy+/fLfHetSue++9N2vWrNnt6yMjI/nhD384jokAAADYFxTIAQD2QIG8Ov3yl7/MunXr9viexsbGXHfddeOUCABg4urp6cmpp56aG264IaOjo7t9X319fY477rhxTAbVYdOmTQrkvCYvv/xybrnllt1OgG1qasq11147zqmYqDZv3pxHHnlkj++pq6vL17/+9XFKxER20003ZWRkJKtXr859991XdBwmmO1PctydSqWSRx55JL/97W/HMRUAAABvlAI5AMAelMvldHR0FB2Dfey6665LXV1dmpqa0tTUlMbGxtTX16exsXFs2/DwcK666qqiowIAFG769On5+Mc/noMPPni3U2+TZHBwUIEc9oIJ5LxWN998cwYGBnb7+tDQUK666qqMjIyMYyomqnvvvXentdDQ0DB23iPZ9oS2X//611m6dGkREZlAFi5cmPr6+jQ1NWXhwoVFx2ECGR4ezqJFizI8PDz2+6OhoWFsvWw/t5okixYtKjgtAAAAr0dj0QEAACayUqmU+fPnFx2Dfay1tTWf+tSnxr4eHBzMlVdemT/90z/NnDlzdnjvhg0bMmPGjPGOCAAwYUyZMiVf+MIX8ud//uf5+7//+1x88cVJtpVJXu34448f73gw6SmQ81otWLAg9fX1eyyIl0qlLF26NO973/vGLxgT0t13353m5ua0trbm0EMPzaxZs/LUU0+lvr4+n//859PV1ZXOzs7MnDkzhx9+eNFxKVC5XM7dd9+dkZGRjIyMZOHChfnWt76V5ubmoqMxAaxcuTJnnHHGDtueeuqpPPDAA/mLv/iLHbZbMwAAAJNLXaVSqRQdAgBgojrhhBPy0Y9+NF/96leLjsJ+tHHjxsyY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zpwdLnBOnz49TU1NqVQqY4Xy7RdEX3rppSxcuDDPPfdchoeHkySHH354/uiP/iinnnpqTj311MybN6/gnxoAqEb9/f1VXUSEarRq1aoceOCBVTN5ml177rnn8td//df56U9/mjPOOCPf+c530tnZWXSscfOWt7wlt956a2699db89V//dY455phceOGF+dznPpeGhoai4/E6bN26Nffdd1/uvPPO3H333XnssceyefPmJElLS0vmzZuX448/fofzJ9OmTRu7sX7z5s3ZvHnz2A36GzduzF133ZXvf//72bRpU5JkxowZedvb3pZTTz0173//+/OOd7wjTU1Nhf3MvH4K5NWrUqnkN7/5Te68887ceeedefDBB8eeONDc3Jw3velNedOb3pS5c+fudMNIsu2G11cO6NiyZUueeeaZ3HrrrXnppZeSJFOmTMn8+fPzvve9L6eeemr++I//2HESAADABFFXqVQqRYcAAHi9RkZG8sILL4xNQnn66aezYsWKlMvlsQtXmzdvzoYNG1JXVzc2BalSqaSuri7HHXdc5s6dm2OPPTbz5s3L/Pnzc9hhh6Wurq7oH43XaXR0NHfffXduvPHG3HXXXXniiSfS1NSUd77znXnf+96XP/iDPxibfHXggQfu9Z8zNDQ0Nsn8ySefzD333JOlS5dm8+bNmT17dt7//vfn9NNPz+mnn25SKACwTxx33HE544wzcsEFFxQdBWrGyy+/nGeeeWaHyZurVq0a+3y5/fPmli1b0tzcnGnTpo193txeqmxsbMwnPvGJscmbLS0tRf9Y7COjo6P5xje+ka9+9auZO3duvvvd7+aP//iPi45VqJdffjn/5//8n1x88cU5/vjjc+WVV+YP/uAPio7FHixfvjyLFi3KkiVL8sADD2RgYCDz5s3LqaeempNOOmlscvAbHcCwevXqsUnmDzzwQO68886sXLky06ZNy3vf+978f/buPKzGvPHj+KddlBbL2EKWInvZUrSIoonBpFDJXsYuk22MdRhjPNMwlhkMRZJZ0AxlaRUmiUhU9i1LIZUW1fn98TydHzNjJur0PafzeV3Xc106ztz3O93P6V6+9/ceMGAA3N3d0aRJkyr6zkhWdu/ejQkTJqCoqEh0ClWB3Nxc/Pzzzzh8+DCio6Px5MkTGBoawsbGBtbW1tLz5S1btqzUTUEvXryQ7lOd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aAMGDEBISAi+++47fPHFF6JzFMrZs2fRpUsXnDp1ClFRUVi6dClUVZXvMp+GhgbWrFmDn376CWFhYejTpw+uXbsmOqvG4wBy8XJycvDRRx/Bz88PS5cuxbFjx9CoUSPRWUIMHToU586dQ506dWBpacknEhAREREREb0n5TuzRERERNUmKioK5ubmuHHjBqKjozF16tQaNRPc22hoaGDZsmU4ceIEYmNj0aVLF/zxxx+is+RKWVkZZs6ciblz52LZsmU4fPgwGjRoIDpLKE1NTQQEBODnn39GSEgInJ2dkZubKzqLiIiIBCkqKgIAaGlpCS4hki9lZWX48ssv4ejoCEtLS5w9exYWFhais6pF06ZNceLECSxduhTTpk3D8OHD8fz5c9FZCu3ly5cYMmQIiouLERERwZnHq8lHH32EjRs3YvHixdi2bZvoHIVw5MgR2NnZoV27drhw4QL69u0rOkm44cOHIykpCerq6rCyssK5c+dEJ9VohoaGyM7OFp2htB4+fAgbGxskJiYiKioKCxYsUMobSF5nbGyMkydPwtvbG6NHj8a6detEJxERERERESkc5T6yJCIiIplZv349HBwc0K9fPyQnJ6NXr16ik6qdra0tkpKS0KpVK9jY2GDfvn2ik+RCSUkJJk6ciC1btmDPnj1YsGCBUtxYUFHDhg1DfHw8UlNTYWdnh8ePH4tOIiIiIgE4AznRX+Xl5WHw4MFYunQpNmzYgF9++QX6+vqis6qViooK/P39ERERgVOnTqFXr164efOm6CyF9OrVK3z00Ue4ceMGIiIi0LhxY9FJSsXHxweLFy+Gj48PDh06JDpHrgUHB2Po0KEYPnw4wsLCUL9+fdFJcsPY2BgxMTGwsLCAjY0NwsPDRSfVWJyBXJybN2+iX79+yM3NRUxMDKytrUUnyQ1NTU18++23CAgIgL+/P2bOnImysjLRWURERERERAqDA8iJiIioSkkkEvj7+8PPzw9r165FSEgI6tatKzpLmEaNGuHo0aPw9fXF6NGjsWHDBtFJQuXn52PIkCHYv38/Dh06BHd3d9FJcqljx444efIkXrx4AUtLSz6KmYiISAlxADnRm7KysmBvb4/z588jLi4Ovr6+opOE6t+/P86fP486derAysoKFy9eFJ2kcPz9/XH69GkcOXIEbdq0EZ2jlJYvX45x48bBw8MD6enp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oNzNnTs3t9122/B5Rn9/f/7t3/6t4FRQuZYvX55HHnlkuLBYU1OTGTNmFJwKDo4HHnggq1evHv55cHDQh6Ep1M033zxcKB0aGsqKFSvym9/8puBUHGxz587d44MC69aty69+9asCE3Gw3Xnnndm0adPwz319fbnqqqsKTAQAAMBLoUAOAJS1pUuX5t577x2e7LjbvffeW1Aiyskdd9yRP/zhD3tsa2xszOzZswtKBABUgh07duTzn//88ETG3VatWlVQIqh8//6bhZI/Tv2/4447smHDhgJTwcHxH9f74OBgFi1alDVr1hSYimr15JNP7vUtKw0NDfnhD39YUCJKoaurK3ffffceE8fr6+tz+eWXF5iKg23WrFnD3zaw2+4P8QEAAFB+FMgBgLJ2ySWX7DF9PPnjTapf//rXxQSirMyaNWuPm+5J0tvbm3/5l38pJhAAUBH+1//6X9mwYcMehZokefbZZ/eY0ggcODNmzBie+L9bTU1NbrzxxoISwcExODiYq6++eq/1Xl9fnzlz5hSUimo2f/78va7N9fX1Ze7cuXn66acLSsXBNn/+/L0GevT392fevHk+vFWhent7c/311w9/28BujY2NueaaawpKBQAAwEuhQA4AlK1169bl+uuv3+umaW9vb375y18WlIpysWvXrtx44417rZ8kWbNmTR588MECUgEA5e7hhx/OD3/4w+c8x+jt7c3GjRsLSAWV7YEHHsjq1av32j44OJjp06cXkAgOnrvvvvs5X0v6+/utdwpx22237fWhuSSpra3NFVdcUUAiSmHevHl7fXBgt6uuuqrEaSiF2267LV1dXXtt7+3tzVVXXeWDsgAAAGVIgRwAKFvf/e53U1v73Kczy5cvz6ZNm0qciHJyyy23ZMeOHc/5WGNjY2bPnl3iRABAuRscHMxf/dVfpaamZp/PWbNmTQkTQXWYPXv2Xt8slPzxmFy0aJHjjoryXN+klSRDQ0N55JFH8thjjxWQimq1a9eu3H333c9ZIO/r68s///M/P+eH6ihvAwMDueWWW55z3/b39+ef//mflYkr0MyZM/f5oYF169bl/vvvL3EiAAAAXioFcgCgLG3fvj3/7//9v/3ehLrnnntKmIhyc/XVV6euru45H+vt7c306dMzMDBQ4lQAQDn7yU9+ksWLF6e/v/85H6+pqcnatWtLnAoq2+DgYK6++up9vjesr6/PnDlzSpwKDo7e3t7MmTNnn+u9oaEh1157bYlTUc1+/etfp6enZ5+Pb968OTfddFMJE1EK9957b7Zv377Px9euXZu77767hIk42Do7O3Prrbfu8/XHMA4AAIDypEAOAJSlyy67LL29vft8vKGhwY0K9mn79u1ZsGDBPstdSbJx48bce++9JUwFAJSzjo6OfPWrX93vtMWGhgaTkOEAu/vuu7Nx48Z9Pt7f35/p06eXMBEcPAsWLEhnZ+c+H+/r68uVV15p8i8ls2DBgjQ2Nu7z8dra2nz/+98vYSJK4ZZbbtnvfm9oaMjll19ewkQcbHPnzt3vIJfe3t7MmDFjv9daAQAAGHkUyAGAstPb25vvfe97+70g3dvbm9tvv72EqSgnN9544396Q6O+vj6zZs0qUSIAoNx96UtfSldX1z6/4WQ3BXI4sGbNmpWGhoZ9Pj40NJRHHnkkjz32WAlTwcExc+bM1NfX7/c5v//977N48eISJaLa3Xzzzfsd8DAwMJDf/va3efjhh0uYioPt+uuv3+9+7+vryw033JDNmzeXMBUH08yZM1NTU7Pf52zZsiW//vWvSxMIAACAA0KBHAAoO7NmzcrGjRtTW1ubxsbGNDU1PWdRZ8WKFfudREf1mj17dgYHB/f7nP7+/v/0hhgAwG5f+tKX8oMf/CDnnXdejj322CRJTU1Nmpqahp/T19eXp556qqCEUHl6e3szZ86cDAwMpKGhIQ0NDamvr09dXd0ePyfJtddeW3BaeGm6urpyyy237LHe6+rqUltbO/zz7g9TzJ49u+C0VIPVq1dn9erVqa+v3+8HGxobGzNz5swSJuNgevzxx7N27drU19enqalp+LrsfywX9/X1ZcaMGQWl5EDauHFjZzV2KAAAIABJREFU7rzzzgwMDPynz/X6AwAAUF72P6oCAGAEOuuss3LHHXdk/fr12bhxY9avX5/LLrssRx11VBoaGrJhw4Zs2bIlAwMDufvuu/PBD36w6MiMMF/72tdy4YUXDv/c3d2d9773vbnkkkvyhje8YY/n9vb27vdreQEAkuT000/P6aefni984QtJkk996lO566678oEPfCD33HNP2tvb09PTk9WrVxecFCrH73//+3zoQx/aY9vy5cuzaNGifPzjH99j+6hRo0qYDA68zs7OfP/7399j229+85tcd911+cEPfrDH9sMPP7yU0ahS27dvz9/93d9l7Nixw3/uu+++XHnllXnggQeGtzU3NxcdlQNo48aNOf/883PIIYekpaUlTU1Nueeee7Js2bJ873vfS2traxobG3PooYfm0EMPLTouB0BtbW3mz5+/x7b58+fnJz/5SebNm7fH9tbW1lJGAwAA4CWqGRoaGio6BADASzV69Oj86Ec/yic+8YnhbRs3bkxDQ0Pa2toKTEY52LZtW9ra2rJgwYKcffbZRccBACrAG9/4xrzpTW/Kj370oyR/nMK4dOnSPProo/nLv/zLgtNB5briiitywQUXZNu2bUVHgYPOemekueaaa/Kxj30svb29e02kpnJdcskl+dnPfpaVK1cWHYUS8foDAABQEdbVFp0AAOCl6urqSnd3d4488sg9th9xxBHK4wAAlNzOnTuzdOnSTJkyZXhbQ0ND3vCGNyiPAwAVa+zYsenv7093d3fRUSihlpYW+xwAAADKkAI5AFD2Ojo6kiRHHXVUwUkAACB58MEH09vbm6lTpxYdBQCgZHYPcjCVuLq0tLRkx44dRccAAAAAXiAFcgCg7K1fvz5J9ppADgAARVi0aFFe9rKX5ZWvfGXRUQAASmbs2LFJkq1btxachFJqbW1VIAcAAIAypEAOAJS9jo6O1NTU5Igjjig6CgAAZOHChaaPAwBVxwTy6tTS0pL+/v709vYWHQUAAAB4ARTIAYCy19HRkUMPPTSNjY1FRwEAgNx///2ZMmVK0TEAAErKBPLq1NLSkiTp7u4uOAkAAADwQiiQAwBlr6OjI0ceeWTRMQAAIGvXrs3TTz9tAjkAUHVaW1vT0NBgAnmVaW1tTZLs2LGj4CQAAADAC6FADgCUvY6Ojhx11FFFxwAAgCxcuDB1dXV5/etfX3QUAICSGzt2rAnkVWb3BHIFcgAAACgvCuQAQNkzgRwAgJFi0aJFOfXUUzN69OiiowAAlNzYsWNNIK8yCuQAAABQnhTIAYCyt379egVyAABGhIULF2bq1KlFxwAAKIQCefXZXSDv7u4uOAkAAADwQiiQAwBlzwRyAABGgp6enixZsiRTpkwpOgoAQCHa2tqydevWomNQQq2trUlMIAcAAIByo0AOAJQ9BXIAAEaChx56KD09PSaQAwBVywTy6rN7ArkCOQAAAJQXBXIAoKx1d3enu7tbgRwAgMItXLgw48aNy4QJE4qOAgBQCBPIq09zc3Pq6urS3d1ddBQAAADgBVAgBwDKWkdHR5IokAMAULhFixZl6tSpqampKToKAEAhTCCvTqNGjTKBHAAAAMqMAjkAUNbWr1+fJDnqqKMKTgIAQLVbuHBhpk6dWnQMAIDCKJBXp9bWVgVyAAAAKDMK5ABAWevo6EhNTU2OOOKIoqMAAFDFnnnmmaxbty5TpkwpOgoAQGHa2tqydevWomNQYi0tLenu7i46BgAAAPACKJADAGWto6MjbW1taWpqKjoKAABV7L777ktdXV3e8IY3FB0FAKAwJpBXp5aWluzcubPoGAAAAMALoEAOAJS1jo6OHHnkkUXHAACgyi1atCinnHJKxowZU3QUAIDCtLW1paurK/39/UVHoYRaW1uzY8eOomMAAAAAL4ACOQBQ1jo6OnLUUUcVHQMAgCq3aNGiTJkypegYAACFGjt2bJKYQl5lWlpa0t3dXXQMAAAA4AVQIAcAypoJ5AAAFK23tzcPPfRQpk6dWnQUAIBCtbW1JVEgrzYtLS0mkAMAAECZUSAHAMqaAjkAAEVrb2/Prl27TCAHAKre7gnkW7duLTgJpaRADgAAAOVHgRwAKGvr169XIAcAoFALFy7MYYcdlokTJxYdBQCgULsL5CaQV5fW1tZ0d3cXHQMAAAB4ARTIAYCyZgI5AABFW7RoUaZMmZKampqiowAAFKqtrS2JCeTVxgRyAAAAKD8K5ABA2dq5c2e6uroUyAEAKNTChQszZcqUomMAABSuvr4+ra2tJpBXGQVyAAAAKD8K5ABA2Vq/fn2SKJADAFCYZ599NmvXrs3UqVOLjgIAMCKMHTtWgbzKtLa2KpADAABAmVEgBwDKVkdHR5LkqKOOKjgJAADVauHChamtrc3pp59edBQAgBGhra0tW7duLToGJTRq1Kh0d3cXHQMAAAB4ARTIAYCytXsC+RFHHFFwEgAAqtWiRYvy6le/OmPHji06CgDAiGACefVpaWkxgRwAAADKjAI5AFC2Ojo60tbWlubm5qKjAABQpRYuXJipU6cWHQMAYMRoa2tTIK8yra2tCuQAAABQZhTIAYCy1dHRkSOPPLLoGAAAVKm+vr489NBDmTJlStFRAABGjLFjx2br1q1Fx6CETCAHAACA8qNADgCULQVyAACKtGTJkuzYscMEcgCAf8cE8urT0tKSgYGB7Nq1q+goAAAAwPOkQA4AlK2Ojo4cddRRRccAAKBKLVq0KG1tbZk0aVLRUQAARgwTyKtPa2trkphCDgAAAGWkvugAAAAvVkdHRyZPnlx0DEa4Z599Nk8++WSeeuqprF69Os8880w2bdqUzZs3p6urK9u3b09/f3+OPvrofOYzn0ldXV3a2toyatSoHH744Rk3blyOOuqojB8/PuPHj8+ECRNy/PHHp6ampuhfDQAo2MKFCzNlypTU1prRAABUn+7u7ixfvjxPPfVUnnrqqaxZsyabN2/O2rVr093dnZNPPnmvidQtLS1paWnJuHHjhv8cf/zxw9ddTjzxxDQ1NRX0G/FitbS0JPljgfywww4rOA0v1sDAQFauXJlVq1YNH9cbNmwYvpa6c+fO4Wupra2tmTBhQhoaGjJ69OiMGTMmhx9+eA4//PD8l//yX3LccccNH9Pjxo0r+lcDAADgOSiQAwBlq6OjI0ceeWTRMRhBOjo6snDhwtx3331pb2/P0qVLs2nTpiRJU1NTjjvuuBx77LF52ctellNOOSWjR49OW1vbXmXw7du3p6urK5s3b84zzzyTBx54IE899VQ6OzuTJIccckhOOeWUvPa1r83UqVNzxhln5JWvfGXJf18AoFiLFi3KX/7lXxYdAwDgoNu5c2cWL16c++67L4sXL87SpUuzatWqDA4Opra2NkcffXTGjx+fww8/PJMmTcqb3/zmtLa27lUG37lzZ7q7u7N58+Zs2rQpK1euzLXXXpv169cnSerr6zNx4sSceuqpedOb3pSpU6fmda97XRoaGor4tXmedhfIu7u7C07C8zU0NJTHH388v/3tb7No0aIsWbIkjz32WHbu3JkkOfTQQzN+/PgcffTRGTduXF71qldl9OjRGT169B5/z8DAQLZv357t27dnw4YNeeyxx3L77bfn97//ffr6+pIkxx57bF7zmtfk9a9/fd785jfnzW9+c9ra2kr+OwMAALAnBXIAoGytX79egbzK7dy5M3fffXcWLFiQBQsW5IknnkhtbW1OOeWUnH766fnTP/3TnHrqqTnxxBNz9NFHv+Sp4btvbC5btizLli1Le3t7fv7zn6enpydHH310zj777Jxzzjl55zvfadoSAFS4DRs2ZPXq1Zk6dWrRUQAADrihoaEsXbp0+JrLwoUL09vbm2OOOSZTpkzJRz/60bzmNa/Ja17zmrziFa94yVPDd+7cmVWrVuXRRx/N0qVLs2zZslx88cXZtGlTWlpa8ta3vjXvfve78+53vzsTJ048QL8lB0pra2uSP04gZ+Rav3798DF9xx13ZPPmzWltbc0b3/jGnHnmmfnc5z6XU089Na961asyduzYl/RvDQwM5Omnn87jjz+epUuX5uGHH87111+fiy++OLW1tTn11FNzzjnn5JxzzskZZ5yR+nq1BQAAgFLzTgwAKEs7d+5MZ2enAnkV2rVrV+bPn585c+bklltuSXd3d0477bS8973vzVlnnZWpU6dmzJgxB+Xf3v01rFOmTBne1tPTk8WLFw8X2T/60Y8mSf7kT/4k06ZNy3vf+15lcgCoQL/97W9TU1OT008/vegoAAAHzOLFizNnzpzMmTMna9asyZFHHplzzjknn/rUp3LGGWdk/PjxB+XfHTVqVE4++eScfPLJmTZt2vD25cuX57777svtt9+e//2//3f+x//4H3n1q1+dadOmZdq0aTnppJMOSh5emN0TyBXIR55nnnkmN9xwQ6699tosXLgwjY2NOfPMM/O3f/u3OfPMM3PaaacdlPJ2XV1dXvGKV+QVr3hFzj777OHtGzduzMKFC3PHHXfkhhtuyLe//e0cdthhed/73pdp06bl7W9/uzI5AABAidQMDQ0NFR0CAOCFeuqpp3L88cfn/vvvzxvf+Mai41ACy5Yty09/+tNcffXV2b59e84888ycd955+bM/+7Mce+yxRccbtnXr1ixYsCBz5szJ/PnzMzQ0lPe973355Cc/mbe//e0veQo6ADAyfO1rX8stt9ySRx99tOgowL9zxRVX5IILLsi2bduKjgIHnfXOgbJ58+ZMnz49P/3pT/P4449nwoQJmTZtWj7wgQ/kda973Yi5ltHf35/f/va3ueGGG3L99dfnmWeeyRvf+MZ88pOfzIc+9KEccsghRUesWlu2bMlhhx2WX/7yl3nnO99ZdJyq19/fn9tuuy0//elPs2DBgrS2tuY973lPzjvvvLzjHe8YLvyPBCtXrszcuXMzZ86cLF68OEcffXQ+/vGP56/+6q8yYcKEouMBAABUsnW1RScAAHgxOjo6ksQE8go3MDCQG264IWeccUZOO+20/PKXv8zXv/71rFu3LnfddVfOP//8EVUeT5K2trZ86EMfyo033piOjo78+Mc/ztq1a/OOd7wjkyZNymWXXZbu7u6iYwIAL9HChQszderUomMAALxoDz/8cD7xiU/k2GOPzTe/+c287W1vy+9+97usXLky3/rWt/L6179+xJTHk6S+vj5nnnlmfvCDH+T3v/997rrrrpxwwgn5whe+kGOPPTZf/OIXs2rVqqJjVqXdhWTXvIr1hz/8IZdcckmOO+64vP/9709/f3+uueaadHR0ZMaMGXnPe94zosrjSfKqV70qF154YR544IGsXLkyn/zkJzN9+vSccMIJefe735077rij6IgAAAAVS4EcAChLCuSVra+vL5dffnkmTpyYadOm5WUve1nuvPPOLF++PBdeeGGOPvrooiM+L2PGjMknPvGJ3HfffXnkkUfyJ3/yJ/nKV76S4447LhdddFG2bt1adEQA4EXo7+/Pgw8+mClTphQdBQDgBbvvvvty9tln57TTTsvvfve7/OhHP8ozzzyTH//4xzn99NOLjve81NbW5r/+1/+aq6++Os8880y++c1vZt68ecPXkh555JGiI1aVpqam1NfXZ8eOHUVHqUrPPvtsvvjFL+YVr3hF/vEf/zEf/ehHs3LlyixYsCAf/OAH09zcXHTE52XChAn5+7//+6xZsyY33XRTent78853vjOvfe1rM2fOnAwODhYdEQAAoKIokAMAZWn9+vUZO3Zs2Vz85vkZGBjIlVdemUmTJuULX/hC3vWud2X58uWZO3duzjrrrBE19eqFOvnkk4enkX/+85/Pj370o7zyla/MxRdfbDoTAJSZZcuWpbu72wRyAKCsLF68OOecc07e8pa3ZNeuXbntttvyyCOP5FOf+lRaW1uLjveiHXroofnyl7+clStXZubMmVmxYkVOO+20fPjDH86KFSuKjlc1WlpaFMhLbNOmTfnKV76SCRMm5IYbbsjFF1+ctWvX5jvf+U6OP/74ouO9aHV1dXnPe96TX/3qV3nooYdy0kkn5cMf/nAmT56cefPmFR0PAACgYtQXHQAAYLf+/v6sWbMmW7duzdatW9Pd3Z2urq50dXVl165daW1tzZgxYzJmzJg88MADaWtry+bNmzNu3Liio3MAtLe35/zzz8+DDz6YD33oQ7nooosyYcKEomMdcIcffnguuuiiXHDBBbn00kvz7W9/O5dddlkuueSS/Pf//t+LjgcAPA8LFy7MmDFjctJJ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2Njqz2FhYZKkyMhIPf7441q+fLlKSkp05513mogHAAAAAJDU/ndKAwAAnMdjjz2m6dOna/v27crNzdW6deu0cOHClvsjIiJUX1+vuro6lZeXKyoqymBaoLW5c+decIKV2+3WwoULdfr0afXq1ctHyQAgcHm9Xj3yyCO66aabVFxcLJfLpZ07d2r//v2yWCwtZQC3261169YZTgsA8Ef79+/XxIkTWy72PH36tPbu3auIiAhdeeWVLY+z2Wxav3697rnnHlNRAZ/78ssvtWfPnot67Ny5c/Xggw92cyKg844cOaKqqipZrVZZrdaWCyMsFotiY2OVnJys5ORkXX311RoyZIjhtOhuBw8eVFRUlPr3799y24kTJ/TVV1/pmmuuabnNYrFo3759JiKigzwej9xutywWi7xer+Lj4/XAAw/oH//4h37yk5/oV7/6lemIAAAAAABJFi/f/QYAAC6BpUuX6o477tDevXvldDqVm5urzZs3Ky8vT5999plGjx5tOiLQorCwsFWBvKamRiNHjtR7772nG264odVjHQ5Hy4QcAEDHpKena9asWaqrq1NFRUVLsbyoqEiPPPII+1cAwAWNHTtW48eP1x//+EfTUQC/8+677+rZZ59VVVWV6ShAh+Tk5OgPf/iDkpKSlJSUpMTERJWXl2vGjBkqKyvToEGDTEeEYezfAlt9fb2uv/56paWlKS0tTddee60k6T/+4z+0fv167dy503BCAAAAAIAkFxPIAQDAJZGbm6uEhARdc801uuaaa3TXXXe13Hehrx8FfC0+Pr7Vn89+GHXllVcqISHBRCQA6JFcLpdiYmJksVgUFRWlqKgojRw50nQsAEAA8Xg8stlspmMAAC6hG2644ZwL+I8ePSpJKigooEAOBDi73a4dO3acc3taWpr++te/6tChQ0pMTDSQDAAAAADwr6ymAwAAgJ4hLy+v3SnjoaGhPk4DAAD8gcvlksPhMB0DABDA3G63rFZOYwNAT+dwOBQREaGCggLTUQB0kxtvvFFRUVHKysoyHQUAAAAAIArkAADgEsnLy1NKSorpGAAAwI9QIAcAdJXb7WYCOQAEAavVqvj4eB06dMh0FADdxGazafLkyRTIAQAAAMBPUCAHAABdVlhYqGPHjrU7gRwAAAQnl8ul2NhY0zEAAAHM4/FQIAeAIJGUlMQEcqCHS0tL05Yt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e/Zo06ZN2rBhg/74xz/q5z//ua644grddtttuueee3Tbbbd16ucDAHwvMTFRK1euNB0DgI+FhobqrrvuUlZW1gUL5E1NTS2DcA4fPqySkpKWITknTpxQU1OTJKmurk4RERGSpL59++ryyy9XZGSkrrjiCjkcDsXFxSkhIUFRUVHd/vsBAAAAgL+gQA4AgJ+rqKhQRkaG5s6dq7y8PA0cOFB33nmnnnjiCd18880aMGCAz7IMHjxYgwcP1p133inpzEnXtWvXaunSpZo3b55+97vfKTExUQ888IB+9KMfKTEx0WfZAACAeS6XS5IokANAEGlubtbixYuVkZGhJUuWyO12a+LEifrVr36l22+/XcnJyT7L0qdPH11//fW6/vrr9cwzz8jr9WrXrl1aunSplixZoqlTp6pPnz66++679cMf/lCpqamdugAbAOAbSUlJOnr0qBoaGhQeHm46DgAfSktL09SpU/XVV1/pyiuvlHTmfefOnTu1ceNGbdu2Tbt379a+ffvU2Ngo6Uwx3OFwKDIyUgMHDtTgwYNls9kkSWFhYS2Pq62tVUlJiXbv3q3S0lJ99dVXcrvdkqRBgwZpxIgRuu666zR27FiNHz++5ecDAAAAQE9j8Xq9XtMhAADAudauXau///3vys7Olt1u17333qtp06YpNTVVISH+eQ1YXl6ePvroI3344YcqLi5WamqqZs2apbS0NL/NDEhSVVWV+vfvr2XLlunWW281HQcA/FZVVZVqa2tVW1srq9Wq3r17q3fv3urbt68k6cMPP9SDDz6o+vp6XvsBoIc7evSo/v73v+v9999XWVmZJk2apPvvv19Tpkzx6YXOHVFSUqKPP/5YH374oTZt2qSEhAQ9+uijeuyxxzRw4EDT8YAOe/fdd/Xss8+qqqrKdBSgW+zYsUPf/va3tX//fg0bNsx0HPhAXV2damtrNXfuXP31r3/V8uXL1adPH/Xv318Wi8V0PPhQXV2doqKi9POf/1yXXXaZli5dqvXr16u2tlYDBgxQSkqKrrvuOg0fPlzf+MY3FBcXp8jIyE79rKamJrlcLh06dEh79uzRnj17tGPHDu3Zs0dut1sJCQm65ZZbdPvttys1NVV9+vS5xL8tAAAAABjhokAOAIAfaWpq0vz58/Xmm29q27Ztuv766/XYY4/p/vvvV69evUzHu2hut1tLly7V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4qbe64477sgpn18qBFSqVInCOJaayKwAACAASURBVAB4AZfLpcWLF+uDDz7QqlWrVL16dfXo0UNRUVEeV7I7fvy4pk+frokTJ2r//v168skn1b9/fzVs2NB0NOCqBg0apP/85z/XvFPNJStXrlRkZGQBpboxo0eP1osvvqivv/5aTZo0MR0HuK5Tp06pdOnSGjdunLp162Y6jlc5fvy49uzZc9kFx38ugN+okJCQy443/1xG9/f3v+b/V65cOR08eFBhYWHaunWr7rrrrrz4YyEfbNu2TdOnT9fs2bN17NgxVapUSc2bN9ejjz6qevXqFdhdIl0ul3788UetXr1ay5Yt04oVK3Tu3Dk1aNBAXbp0Ubt27Tzud2AAAAAA+BMK5AAAuKPs7Gy98cYbmjx5so4fP66yZcuqU6dOat++vapWrWo63jX99ttvmjt3rmbOnKmtW7fqvvvuU48ePdStWzeFhISYjod8sHfvXtWrV09NmzbVnDlzPO5Chz+rXLmy9u3bp7vuuksHDx70+JUUAXiW+fPnq1u3bjp37tw1S0FFixbVyZMnC3xbm5WVlbPSW2Zmpk6fPp1TdC9UqJBCQkJUuHBhhYWFKSwsjBW3AMBHfP/99xozZozmzp0ri8Witm3bqkOHDnr00UcvWzXUnZw/f16LFy9WYmKiFi1apKCgIEVHR+v555//y5WdAZOcTqfuuusuHTlyJOff15+/2rn033a7Xf/61780btw4Izmv56mnntL69eu1bds2lSpVynQc4LratWun48eP69tvvzUdxWdcOuZMS0vTuXPnlJWVlfNcSEiIAgICFBYWpuLFi9/yAhWXzv35+fmpbNmy2rx5M+VfN2e327VmzRotW7ZMS5cu1a5du2S1WlWlShXVqVNHVatW1f3336/77rtPpUuXztX53AsXLmj//v364YcftHPnTu3YsUPr169XamqqgoOD1bRpUzVr1kwtWrTg4gMAAAAA3oICOQAA7mj9+vVq0qSJOnfurH79+mnKlClKTEzUb7/9pipVqugf//iHmjVrpnr16hktablcLu3cuVNLly7VokWL9N1336lo0aJq06aNunXrpgYNGhjLhvyXkpKihx56SMWKFdOqVavcenXxv7Jv3z5Vrlw55+fvvvtODz30kMFEAHzRsWPH1K5dO61du/aKlchtNps6dOigGTNmGEoHAMDVnTlzRjNnztSMGTO0YcMGFStWTK1atcpZJbJYsWJG8x09ejSndLR48WJduHBBDz/8sGJiYvTPf/5ThQsXNpoPuBGpqamaPHmyHA6Hzp49K0lKSkrS/Pnz1bt3b9nt9pzXFi9eXMOHDzcV9ZpOnz6tmjVrqlKlSlq8eLFHX4AO77do0SK1atVKP/30kypUqGA6DvJI9erVtWPHDkmSn5+fHn74YS1dulSFChUynAw36sSJE1q/fr3Wrl2rrVu3aufOnTl3TQsMDFTZsmV1xx13KCIiQuHh4SpSpIiCg4Mvu7gxPT1dmZmZOnz4sM6ePavU1FQdOHBAR44ckfTH+Zd7771X1apV00MPPaT69eurevXqXCwPAAAAwBtRIAcAwN3s3r1b9evX19mzZzVw4EC98847kv4oa3/33XeaO3euFi9erJ9//llFixZVw4YNVb9+fdWvX181a9ZUkSJF8i1bdna2du/erXXr1mndunX69ttvdeTIEZUsWVLNmjVT27Zt9fjjj1/3VqHwDhkZGWratKmOHj2qDRs2qESJEqYj5crQoUP19ttvKzs7W35+furevbvGjx9vOhYAH5Odna369evr+PHjOnr0qBwOR04ZyGq1avr06YqOjjacEgCAa/vll180d+5cLVy4UBs2bJDL5dLf//531a9fXw0aNFCdOnVUunTpfM+wfv16rVu3TmvWrNHOnTsVEBCghg0bqnXr1vrnP//p8ccvgCTNnTtX7du3l9Pp9Jg7aG3evFkNGjTQsGHDNGDAANNxgGuy2+0qU6aMevbsqTfeeMN0HOSROnXqaNOmTTk/FypUSH369NFHH31kMBVy6+jRo0pKStKBAwd04MABHTp0KGdF+3Pnzik9Pf2yO73ddttt8vf314ULFxQaGqoaNWqobNmyKleunMqVK6fKlSsrICDA4J8IAAAAAAoMBXIAANzJgQMHVKdOHZ06dUoWi0Vvv/22Xn755au+9ueff9aXX36p1atXa+3atTp8+LCsVqvKly+vatWqqXLlyipbtqzKli2rMmXKKCwsTGFhYX+5wtOZM2dyimuXTromJSVp9+7d2rt3r7KyshQaGqp69eqpQYMGeuyxx1SjRg1WjvIhTqdT7dq106pVq/Tdd995xa3eK1asqJ9++inn59tuu00nTpzgywIABeqVV17RmDFjtHXrVmVnZ6tj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zZr94dcnTpzQmjVrlJCQoMcff1wDBgzQk08+qUGDBqlSpUqF8WXAzTAgB9yXw+GQn58fPycAAJBPgwYN0v79+7VlyxYVK1bMdI7bKlu2rObOnavWrVtr/PjxGjRokOkk4LIYkPsGm82mxMRE0xnwIR06dNBNN92kefPm6dVXXzWd47WsViuXlgD4R9q0aaNt27Zp8uTJGj58uBYsWKCRI0eqd+/e/GwIAACAf4SrZgD4lE2bNmnNmjUaOXIk/5B2Q8OGDdP58+c1bdo00ylwc0eOHFHPnj0VHh6u9evXa+LEiTpx4oQ+++wzPfjgg9c8Hr+cChUq6NFHH9XixYv1n//8R7GxsZo3b55q1qypZ599VidPnizArwTuiAE5YE52drY2bdqkd955R08++aTuuOMO1ahRQ2XKlFFAQIB69eql4OBg1alTR+3bt9czzzyjiRMnaufOncrNzTWdDwCAW1qwYIE++OADffLJJwoNDTWd4/ZatGihESNG6NVXX9XmzZtN5wCXxYDcN9hsNiUlJXFGgSITEBCghx9+WAkJCaZTvNLZs2e1detWnTx5Ujk5OZo3b56WL1+u7777Tj/++KOys7NNJwLwAAEBAYqJidHBgwf18MMP6/HHH1f79u21e/du02kAAADwQBYXJ08AfMh9992n06dP64cffjCdgiv417/+pfnz5+vAgQPcioa/uHjxosaPH69///vfqlKlit5++21169at0F9+/eLFi5o5c6beeustZWRkaNSoUerXrx8v++6lxowZoylTpig1NdV0CuATLl68qOXLl+vTTz/VypUr5XA4VKFCBdWvX1916tRRtWrVVLp0aZUqVUq5ubk6f/68Tp48qSNHjmj//v3atWuXTp8+rbJly6pz587q3bu3OnTowN/RAABIOnPmjMLCwvTggw/qo48+Mp3jMVwulzp37qyjR49qx44dCgwMNJ0E/EFAQIA+/fRT9ezZ03QKClFiYqJatGihlJQU1alTx3QOfMR3332ntm3bKjk5WXXr1jWd47FcLpe2bt2qNWvW6Ntvv9W2bdv0yy+/XPV/ExQUpNq1a6tVq1Zq27atOnbsqHLlyhVRMQBPtWXLFg0cOFBbtmzRs88+q7fffls33HCD6SwAAAB4hp8YkAPwGTt37lSTJk20bNkyderUyXQOruD48eO69dZbNXHiRD311FOmc+BGjhw5okceeUQ7d+7UkCFD9Oqrrxb5kwzOnz+vcePGadSoUWrVqpU+++wzVaxYsUgbUPjGjh2rDz/8UIcOHTKdAni106dP6/3339ekSZN0+vRptWvXTg8//LDatWunsLCwa/44ubm52r17t1avXq158+Zp06ZNqlKlil566SX1799fwcHBhfhVAADg3gYMGKCFCxfKbrerdOnSpnM8ytGjR1W3bl0NGzZMQ4YMMZ0D/IG/v78+++wzPfLII6ZTUIgyMzN1ww036OOPP1avXr10/vx5OZ1OORwOlShRQlarVSEhIaYz4WVyc3NVtWpVPfnkk4qNjf3D+7KyspSenq5z587Jz89PpUqVUkhIiPz9/c3EuqFjx47pk08+0aeffqqDBw+qQoUKatu2rVq0aKGwsDDVqlVLZcuWValSpRQQEKD09HQ5nU4dPXpU+/fv1549e/Tdd98pMTFRFotF9957r/r06aMuXbooICDA9JcHwE3l5uZq1qxZevnll5WTk6M333xTAwcOdJsLNvj+AQAA4LYYkAPwHd27d9eBAwe0bds2XuLVzT399NNatWqVUlJSOBSFJGn+/Pnq16+fatWqpYSEBNWqVctoz5YtWxQVFaULFy5ozpw5atOmjdEeFKxx48Zp8uTJOnz4sOkUwCtlZGRo7NixeueddxQYGKjnn39eTz75pKpUqVIgHz8lJUUfffSR/u///k/BwcEaPny4nnnmGR6QAAD4nK1bt6pFixaaOXOmevXqZTrHI40YMUKjRo1ScnKyqlevbjoHuMTPz09z5sxRVFSU6RQUkuPHj2vNmjUaPHiwihUrJofDodOnT//l91mtVtWpU0fh4eG688471a5dO4WGhhoohjd56aWX9OWXX+qDDz7Q2rVrtWXLFqWkpOjo0aP688PK/v7+ql69usLCwhQREaH27dsrIiJCQUFBhurNOHDggEaNGqVZs2apTJkyevTRR9W7d281btz4H3289PR0LV68WJ9++qlWrVql6tWr65VXXlGfPn14ZRQAV3TmzBnFxsZq8uTJatKkiSZNmqQWLVoUaYPT6dTGjRv5/gEAAOAZGJAD8A0HDx5UnTp1lJCQoG7dupnOwd9ITU1VaGioPv30U25SgiZMmKBBgwZpwIABGj9+fJHfOn4l586d0+OPP65ly5Zp5syZ/LfqRd555x29//77OnLkiOkUwOusWrVKAwYM0IkTJ/Taa6/p+eefV6lSpQrlc/32228aN26c3nvvPTVo0EBTp05Vs2bNCuVzAQDgbnJzc9WiRQuVLFlSa9as4Yn0/1BmZqYaNmyo+vXra8GCBaZzgEssFosSEhLUo0cP0ykoQOfPn1dCQoJmzpypdevWKTAwUBEREWratKlCQ0NVrVo1BQcHKyQkRE6nU06nUz/99JP279+v3bt3a/369XI4HKpXr56io6MVHR2tChUqmP6y4GHWrl2rCRMm6Ouvv9bFixcVGhqq22+//dLt2TfccINuuOEG5ebmyuFw6NSpUzpw4ID27t2r9evX6+jRoypTpoweeeQR9e3bVzabzfSXVKguXLigMWPGaPTo0apUqZJeeOEFPf300ypevHiBfY7Dhw9rwoQJmjp1qqpUqaJJkybp7rvvLrCPD8D77NixQwMHDtTGjRvVq1cvvfvuuypfvnyhfs61a9dqxowZ+uKLL5Sens73DwAAAM/AgByAbxg+fLimTZumo0ePcvukh4iMjFR2dra++uor0ykw6NVXX9WYMWP07rvv6l//+pfpnL9wuVx66aWXNHHiRMXFxen55583nYQCwIAcKHjZ2dkaNmyYxowZo65duyouLk6VK1cuks+9b98+Pfvss9q4caPGjh2rF154gREdAMDrffHFF+revbt27typ+vXrm87xaMuXL9d9992npKQkNW/e3HQOIIkBubdJS0vT+++/r/fee0/p6el64IEH9Nhjj6l9+/ayWq3X/HGys7O1adMmzZkzR59//rmcTqeeeOIJDR06VFWrVi3ErwCezuVyaeHChRo5cqS2bt2qiIgIRUdHq2vXrqpUqVK+PtbBgwe1YMECxcfHKzk5We3atdMbb7yh9u3bF1K9OXnDzLNnz2rEiBGF/upnhw4d0gsvvKBly5apX79+iouLU3BwcKF9PgCezeVyaf78+Ro0aJDS09M1fPhwPf/88wX69xTfPwAAADzeT36mCwCgsLlcLs2aNUu9evViPO5BevfurZUrV+r48eOmU2DI22+/rXHjxmnmzJluOR6Xfn/AdsKECRoxYoReeOEFTZ8+3XQSCoDFYvnLyykC+OfOnj2rjh07Ki4uTlOnTtWCBQuKbDwuSeHh4Vq9erWGDx+uwYMH65FHHlFmZmaRfX4AAEwYNWqUHnroIcbjBaBz586y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48aN09GjR/XLL78oLS1N99xzjwYNGmQ6HnBTIiMjFRERofT0dNNRAI+Vl5cnX19fff311+rTp4/pOAD+x8GDB9WqVSu1b99e8+bNy394EABuVlBQkGrVqqXIyEjTUQCXQT8Q7uCjjz7SBx98oKNHj5qOAg+QnZ2tsLAwrV27VvHx8WrdurXpSABwU3JyctS7d2998803Sk5Ozn/HcwAw6eLFiypbtux1v/bKK69o0qRJmjt3rvr16+fgZACAm3DEx3QCwNNER0erf//+KlGihCSpffv2at++vaZMmaKMjAzD6QDg1qSlpalnz56qX7++6tevbzoOAMDF2Ww2SWIoFXBCZ8+eVXBwsO6++27NnDmT/08BAABw07y9vfOv+4DiVqJECc2bN08DBgxQ165dtWTJEnXs2NF0LAAoND8/P82fP1/du3dX586dlZycrCZNmpiOBcDDFTQ8LkkTJ07U+fPnNWTIEJUrV46HnwHAiXGXD3CgvXv3aseOHdc9jdfX11eVK1c2kAoAbo/VatWvv/6qWrVqmY4CAHATDJADzik3N1f9+/dXZmamFi9erDJlypiOBAAAABfEADkczc/PT7GxsQoKClKPHj2UmJhoOhIA3JRSpUpp6dKlatSokTp16qS9e/eajgQABfLy8tK//vUv9enTR3369FFKSorpSACAAnA3HnCgOXPmqEaNGmrfvr3pKABQZI4fP67c3Fz5+/ubjgIAcBMMkAPOx263a+TIkdq6dauWL1+umjVrmo4EAAAAF8UAOUzw9fVVTEyM+vbtq549e2rlypWmIwHATSldurSWLFmi2rVrq2vXrjp48KDpSABQIG9vb82cOVMdO3ZUjx49tGPHDtORAADXwd14wIFiYmI0ePBgWSwW01EAoMgcOXJEkhggBwAUGQbIAefz7rvvKioqSvPmzVOzZs1MxwEAAIALY4AcplgsFk2fPl0DBgxQaGioFi9ebDoSANyU8uXLa+XKlapevbo6duyoQ4cOmY4EAAXy9fXN7ycHBgZq//79piMBAP4Hd+MBB9m8ebN++uknDRo0yHQUAChSaWlp8vb2Vo0aNUxHAQC4CQbIAeeyaNEivfXWW/rkk08UGBhoOg4AAABcHAPkMMlisejLL7/UyJEjFRYWpgULFpiOBAA3pUKFClq1apWqVKmirl276tixY6YjAUCBSpUqpSVL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gBwofkePHtWwYcM0fPhwDRkyxHQcAAAAeBAGyOGqunfvroULFyo6OlpDhgxRXl6e6UgAUGhdu3bVokWLFBUVpdGjR8tut5uOBADXZbFYNHv2bLVp00ZBQUH68ccfTUcCALfF3XigGMyePVvVq1dXx44dTUcBgGKTm5urkydPyt/f33QUAICbYYAcKF42m01PPPGEKleurI8//th0HAAAAHgYBsjhyoKCghQfH6+lS5dqyJAhys3NNR0JAAotMDBQc+fO1YwZMzRu3DjTcQCgQH5+fvr666/VqFEjde3aVYcOHTIdCQDcEnfjgWIwd+5cDRw4UBaLxXQUACg2R48elc1mY4AcAFDkrpx+wwA5UDwmTZqklJQURUdHq2zZsqbjAAAAwMMwQA5X9+ijj2r58uWKj49Xnz59lJ2dbToSABRar169FB0drU8//VQRERGm4wBAgUqXLq2lS5eqatWq6tq1q44fP246EgC4He7GA0Vs27Zt2rdvnwYNGmQ6CgAUq7S0NEligBwAUOSuDBF4eXkZTgK4nz179ujNN9/UhAkT9OCDD5qOAwAAAA/EADncQfv27RUfH69169apT58+unz5sulIAFBoffv21Zw5czRlyhS99dZbpuMAQIEqVKighIQEWSwWdevWTWfPnjUdCQDcCgPkQBGLjo5WvXr19PDDD5uOAgDFKi0tTT4+PqpWrZrpKAAAN3NliIATyIGilZ2drSFDhqhFixZ68cUXTccBAACAh2KAHO6ibdu2SkpK0ubNm9WrVy9lZWWZjgQAhRYWFqbIyEi9++67eu+990zHAYACVa1aVatWrVJGRoZCQkJ08eJF05EAwG1wNx4oQjabTTExMRoyZAinJQJwe2lpaapRo4YsFovpKAAAN8MAOVA83nrrLf3888/66quv2MMBAADAGAbI4U5atmypxMREbd++XcHBwQw0AXApw4cP1+eff66//OUvmjhxouk4AFAgf39/rVq1SocOHVKvXr2UnZ1tOhIAuAXuxgNFaM2aNTp69KgGDBhgOgoAFLsjR47I39/fdAwAgBtigBwoehs3btSHH36oyZMnq379+qbjAAAAwIMxQA538+CDDyoxMVE//PCDgoODdeHCBdORAKDQRowYoY8++kivvvqqPvzwQ9NxAKBA9evX14oVK7R9+3YNHDhQeXl5piMBgMvjbjxQhKKiotSiRQs1adLEdBQAKHZpaWkMkAMAigUD5EDRyszM1LBhwxQUFKSRI0eajgMAAAAPxwA53FHz5tOF6kEAACAASURBVM21bt06HTx4UEFBQcrIyDAdCQAK7fnnn9fkyZP18ssv61//+pfpOABQoObNm2vZsmVatWqVRowYwTUFANwm7sYDRSQnJ0cLFy7U4MGDTUcBAIdggBwAUFwYIAeK1uuvv66zZ89q2rRp8vLyMh0HAAAAHo4BcrirRo0aKSkpSYcPH1anTp105swZ05EAoNBeeOEF/f3vf9ezzz6rzz//3HQcAChQmzZttHDhQsXExGjs2LGm4wCAS+NuPFBEli1bpvPnz2vAgAGmowCAQxw5ckS1atUyHQMA4IYYIAeKzubNmzV16lRNnjxZd911l+k4AAAAAAPkcGsNGzbUhg0bdPbsWXXp0kWnT582HQkACu3FF1/U66+/rjFjxmj27Nmm4wBAgbp27aqoqCj961//0oQJE0zHAQCX5WM6AOAuoqOj9eijjzJMCcAjZGdn69SpU5xADgAoFgyQA0UjOztbI0aM0GOPPaZhw4aZjgMAAABIYoAc7q9OnTpKTk5W586d1aFDB61evZoHegG4jHfeeUdWq1XDhw+XxWLRoEGDTEcCgOvq06ePIiMjFR4erjJlyigiIsJ0JABwOQyQA0XgwoULWrp0qaZMmWI6CgA4xJEjR2S32xkgBwAUCwbIgaIxfvx4HT58WEuXLpWXl5fpOAAAAIAkBsjhGWrXrq3k5GR16tRJnTp10urVq1WjRg3TsQCgUP76178qLy9PTzzxhCwWi8LCwkxHAoDrGj58uNLT0zVu3DhVrFhRI0aMMB0JAFwKA+RwKpmZmTp9+rTOnDmjs2fP6sKFC8rLy5PNZlN6evpV3+vn56cyZcpIksqWLauyZcuqcuXK+R8+Po77671gwQJZrVb16dPHYT8TAG5GUdfXtLQ0SeJdFwAANy0nJ0dnzpzJ/7h48aIuXbokSfnr04EDB1S6dGnNmTNHd999t6Tf1qcra1KVKlVUuXJllSpVyuRvBXBqO3bs0KRJkzRlyhTVrVvXdBwAHur3a/6FCxfyrz+zs7N16dIlnTp1Sjk5Ofr8889VtmxZ+fr6SpLuuOMOlStXTpUrV9add96pChUqmPxtAABuwY36kXv27FHp0qUVHR2tKlWqONX9HqAo+fv7a/369erSpYs6duyo1atX01N3Mn+0X/099qvwNH/729+UmZmpJ554QqVKlVJoaKjpSB6pMP3037vjjjsk0U+HZxk7dqyOHz+u0aNHq3z58urfv7/pSB6B+gS4BzoucBir1aoDBw7owIEDOnTo0FUfR48e1ZkzZ3T58uXr/lpvb+9rLrxzcnKUmZlZ4M+rWLGiqlWrJn9/f9WpU0d16tRR3bp1VadOHTVq1EiVKlUqst9bdHS0goODVbly5SL7bwJAYZmor5UqVdI999yjN954Q3Xr1i22+goAcD3Hjx/X/v37dejQIaWmpuavSWlpaTp58qQuXLhQ4K8tV65c/mBAiRIl9N577+ncuXMFfn/p0qVVuXLlq/b8Vz7uvfde1alTh1OX4ZGsVqvCw8PVpk0bjR492nQcAG4qMzNTe/fuveY6NDU1VSdPntSZM2cKPFm2RIkSKl26dP6/79ixQxcvXlRubu51v9/Hx0eVK1dW9erVr+nz1alTR40bN5afn1+x/D4BANcqin5kiRIl9OGHH0pyrvs9QFGrXr26kpKS1KVLF7Vv315JSUk85OsgRblflcR+FR7Hy8tLU6dOldVqVb9+/bRw4UKFhISYjuV2iqqffgX9dHiq999/X1lZWRo6dKjKlSunoKAg05FcHvUJ8AxedrvdbjoE3M+FCxe0fft27dq1S7t27dLOnTu1Z88eZWVlSfrtqaLfF3t/f//8p4quPGFUqVIlVahQoVBvW3/p0iVlZGTozJkz+SdanDp1SidOnNDhw4evWsSuXNjXqlVL999/v5o1a6bmzZvrgQceUKNGjW56wTl16pRq1Kih2bNna8CAATf/hwXchvT0dFWsWFEJCQkKDAw0HQcO4En1FTAlMjJSERER15zOD+BqVqtV33//vXbs2JG/Lu3atUsnT56U9NuNttq1a+ffLPP391f16tWvWpMqV66s8uXLq2TJkn/48/Ly8pSenn7VaQZX1qW0tLT85lVqaqouXrwoSSpfvrzuu+++/DWpWbNmevDBBznJAG7vo48+0iuvvKIdO3aocePGpuMAcANpaWn516K7d+/Wzp07deDAAdlsNnl7e+uuu+66akDmypp/55135q/5FSpUULly5Qr189LT0/PX/SvDPWfOnNGxY8euGv45fvy4pN8Gdho2bKj7778/f81v2bKlqlWrVpx/LIAR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r2+fOnWq/fz586ZjuYXs7Gz7vHnz7G3btrVLsj/yyCP2mJgYe15enulo8DApKSl2Ly8v++LFi01HAWDQ4cOH7S+++KK9QoUK9nLlytnHjh1r37dvn+lYbmP79u328PBwe4kSJezVqlWzT5gwwX7q1CnTseCh6Afif9GPLF70I+EoOTk59r59+9pLly5tX7Vqlek4RY79avFivwqTzp8/b3/44Yft/v7+9oMHD5qOc1vopxcf+ulwBlu2bLGXK1fO3qdPH5f7u0d9Kj7UJ3i4NG+j8+twuIsXL+r9999X7dq19dxzz6l169bavXu3li9frqCgIHl781eiKFStWlX/7//9P6WmpmratGnatWuXHnzwQXXp0kXr1683HQ9AMaC+Ogb1FQD+mN1uV1xcnB5++GE99thjOnfunL7++mvt3btXzz77rCpUqGA6olvw8/NTv379tGHDBm3atEl33323Bg8erHvvvVf//ve/lZOTYzoiPIDNZtPYsWPVqVMn9ezZ03QcAAbs379fTzzxhO69915FR0frtdde0y+//KKPPvpIDRo0MB3PbbRo0UJffPGFDh06pBEjRuijjz7Kv/4/duyY6XgAPBT9SMegHwlH8fX1VUxMjPr27asePXpoyZIlpiMVCfarjsF+FSZVqFBBK1euVNWqVdWxY0cdPnzYdKSbQj/dMeinwxk88sgjWrRokZYvX66RI0fKbrebjnRD1CfHoD7B09E98hBZWVmaNGmS7rnnHr3//vsaOXKkDh06pC+++EJNmzY1Hc9t+fn56cknn9SOHTu0YsUKWa1WdejQQYGBgdqyZYvpeACKAPXVDOorAFxfQkKCAgIC1KtXL/n7+2vz5s1av369evXqxfBAMWrVqpXmzZunffv2KSQkRC+88IIaNmyoL7/8Unl5eabjwY19+eWX2rFjhz7++GPTUQA4WGpqqp566ik1bdpU27dv1xdffKHU1FS9/PLLqlixoul4bqt69ep677339Msvv2jixIlatGiR7r33Xv35z3/WyZMnTccD4CHoR5pBPxKOYLFYNH36dA0aNEj9+vXT4sWLTUe6ZexXzWC/ClMqVqyo+Ph4lStXTl27dnWZBxfop5tBPx0mderUSTExMZo9e7b+/Oc/m45TIOqTGdQneCIqipvLycnR1KlTVa9ePb311lsKDw9Xamqq3nvvPVWvXt10PI/h5eWlbt26KTk5WatXr9bFixfVqlUrhYaGaseOHabjAbgF1FfnQH0FgN+sXbtW7dq1U3BwsKpWrapt27ZpwYIFCggIMB3No9SrV0+ffvqp9u/fr65du+qZZ55RkyZNNGfOHNlsNtPx4GYyMzP15ptvavTo0WrSpInpOAAc5OjRo3rmmWfUsGFDbdiwQV9++aV2/3/27jxOx3px4/g1xsxgSCJKdpIYKlQYfrJkmzAN2SIyVET2I4QhRYSUyN5CZBmUxhaRNUOFQZstnHDsS8Ywc//+6HCyz3I/872f5/68X6/zRxrmGifX/Z1rvp7Zvl2tWrVSQECA6XiuERwcrM6dO+v333/XsGHDNHPmTBUpUkR9+vTRyZMnTccD4KPYI52BPRKe5u/vr6lTp6pdu3Zq0qSJoqOjTUdKEc6rzsB5FSbce++9WrFihQICAlS9enUdPnzYdKRbYk93BvZ0mNKgQQNNmzZN77//vt555x3Tca5BPzkD/QQ34QK5D/vqq69UunRp9erVS02bNtXu3bs1bNgw5cyZ03Q0V6tevbrWrVunmJgYHTlyROXKlVP79u115MgR09EAJBP96kz0KwA32r17tyIiIvTUU08pS5Ys2rBhgxYtWqSyZcuajuZqBQoU0MSJE/Xzzz+rUqVKat26tSpUqKD169ebjgYfMmrUKJ09e1b9+/c3HQVAOrhw4YIGDx6shx56SEuWLNH48eO1a9cutWrVSv7+/qbjuVZQUJBee+017d69W4MGDdKUKVP04IMP6sMPP+RViQDYij3Smdgj4Sl+fn4aO3asXnnlFTVp0kTTp083HemOOK86E+dVpLfcuXNr5cqV8vPzU+3atXX8+HHTka7Bnu5M7OkwoWXLlnr//ffVp08fffTRR6bj0E8ORT/BDbhA7oN++eUXhYWFqUGDBipevLh27typ0aNHK0+ePKaj4R/q1q2rTZs2acGCBfrmm29UtGhRRUVFKT4+3nQ0ALdAv3oH+hWAG5w/f15RUVEKCQnRzp07tWjRIi1btkwVKlQwHQ3/UKRIEX388ceKi4tTrly5FBoaqvr162vfvn2mo8HL/ec//9G7776r3r17cxYFXOCrr75SyZIlNXz4cPXs2VM///yzIiMjlTFjRtPR8F9ZsmRRjx49tHfvXnXq1Ek9evRQSEiIYmJiTEcD4OXYI70DeyQ8wc/PT++99546d+6sNm3a6NNPPzUd6ZY4rzof51Wkpzx58mjZsmU6e/asatasqRMnTpiOxJ7uJdjTkd5effVVRUVF6dVXX9XMmTONZKCfvAP9BF/GBXIfcvbsWXXp0kUhISE6cuSI1qxZo6+++kqFCxc2HQ23Ub9+fe3YsUM9e/bUiBEjVLp0aS1dutR0LAD/QL96J/oVgK+aPn26ihUrpg8++EAjRoxQXFycwsLCTMfCbZQoUUIxMTGaP3++du3apVKlSmnIkCFKSEgwHQ1eavDgwQoODla3bt1MRwHgQXFxcapcubLCw8NVvXp1/f7774qKilKmTJlMR8MtBAcHKyoqStu3b9dDDz2ksLAwhYeH648//jAdDYCXYY/0TuyRsJufn59Gjx6tPn36qG3btpo2bZrpSNfgvOp9OK8iveTPn1+rVq3SqVOn9PTTT+vkyZPGsrCnex/2dKSnAQMGqHv37mrdurUWLVqUru+bfvI+9BN8ERfIfURMTIxCQkL0+eefa8KECdq0aZMqV65sOhaSKUuWLIqKitKuXbv06KOPqk6dOnrhhRd07Ngx09EA16NfvRv9CsCX7Nu3T3Xr1lXr1q0VERGh3377TZ06deLVnLxIeHi4duzYoQEDBmjo0KEqV66cNm7caDoWvMzevXs1ceJERUVFKTg42HQcAB5w8eJFDRw4UOXKlVNiYqI2bdqkKVOm6L777jMdDcn04IMPauHChVq2bJl+/vlnhYSEaOzYsUpKSjIdDYAXYI/0buyR8IQ333xTb7zxhiIjIzV27FjTcTiv+gDOq0gPBQoU0PLly3X48GGFhYXp7Nmz6fr+2dO9H3s60svw4cPVpk0bNWnSRKtWrfL4+6OfvB/9BF/CBXIvd/LkSb388ssKCwvTk08+qR07dqht27bKkIH/a71RgQIFNGfOHC1atEirVq1S8eLFNXHiRNOxAFeiX30L/QrAmyUlJWnixIkqU6aMfv/9d61YsUIffvih7rnnHtPRkApBQUHq3bu34uLilDdvXlWqVEkvv/xyun8BBd6rX79+KlKkiNq2bWs6CgAPWL9+vcqWLat3331XgwcP1tq1a1WuXDnTsZBKTz/9tLZv365+/fqpR48eqly5snbs2GE6FgCHYo/0LeyRsFtUVJSGDh2q1157TWPGjDGWg/Oqb+G8Ck8rVqyYvv32W+3du1f16tXT+fPnPf4+2dN9C3s60oOfn5/Gjx+v+vXrq2HDhtq8ebNH3g/95FvoJ/gKVicvNm/ePBUvXlxLlizRokWLNHv2bOXOndt0LNggLCxMcXFxatasmTp06KD69evr6NGjpmMBrkG/+i76FYC32b17typXrqzOnTurW7duiouL01NPPWU6FmxQuHBhLVmyRFOnTtXcuXNVpkwZfffdd6ZjweF27NihL774Qm+++SavRgL4mPj4eHXr1k1VqlRRgQIFtHPnTvXu3Vv+/v6moyGNAgIC1Lt3b8XGxioxMVFly5bVsGHDeHVHANdgj/Rd7JGwU+/evTV8+HB17dpVb7/9drq+b86rvovzKjytePHiV1/tPjw8XPHx8R57X+zpvos9HZ7m7++vzz77TKGhoapbt6527txp669PP/ku+gnejgvkXujcuXOKjIxU48aNFRERobi4OIWFhZmOBZvdddddGjdunFatWqUdO3aoTJkyiomJMR0L8Gn0qzvQrwC8xbRp0/TYY4/pwoUL2rJliwYNGqSgoCDTsWAjPz8/tWnTRjt37tSjjz6q6tWrq1+/frp06ZLpaHCoqKgolSxZUhEREaajALDR9u3b9cQTT2jq1KmaNm2aFi9erIIFC5qOBZuVKVNG69ev11tvvaWoqChVr15dBw4cMB0LgGHske7AHgk79ezZU+PGjdMbb7yhN998M13eJ+dVd+C8Ck8qXbq0vvnmG/3www8KDw/XxYsXbX8f7Om+jz0dnhYYGKi5c+fq4YcfVq1atbR3715bfl36yffRT/BmXCD3MrGxsSpbtqy+/PJLLViwQBMmTFC2bNlMx4IHValSRVu3blXDhg31zDPP6OWXX9Zff/1lOhbgc+hX96FfATjV6dOn9fzzzysyMlIvvviiNm7cqJCQENOx4EF58uTR/PnzNXXqVL3//vuqVKmSfv31V9Ox4DBxcXGKjo7Wm2++qQwZmHMAX2BZliZOnKgKFSooS5Ys2rJli1544QXTseBB/v7+6tmzp7Zs2aKTJ0+qdOnSmjFjhulYAAxhj3Qf9kjYpUOHDvroo48UFRWl119/3WPvh/Oq+3BehSc98sgj+uabb7Rp0yY1a9bMtkt17Onuw54OT8qSJYu++uor5cmTR08//bT+/PPPVP9a9JP70E/wRnzF0UtYlqXhw4erUqVKKlKkiLZt26aGDRuajoV0ki1bNk2YMEEzZszQF198oSeeeEK//PKL6ViAT6Bf3Y1+BeA069evV0hIiFavXq3ly5drzJgxvAqBi7zwwgvavHmzkpKSVLZsWU2fPt10JDjIgAED9Mgjj3BWBXzEiRMnFBYWpldffVWvv/661q1bp2LFipmOhXRSqlQpbdy4US1atFCrVq0UGRnp0W/jDsBZ2CPdjT0SdnnppZc0ceJEme2MngAAIABJREFUjRgxQr1797b91+e86m6cV+Epjz32mL7++mutWLFCzZs31+XLl9P067Gnuxt7Ojwle/bsWrJkiQICAlSrVi2dOHEixb8G/eRu9BO8CRfIvcDZs2f13HPPqV+/fho2bJgWL16s+++/33QsGNC8eXNt3bpVwcHBeuKJJ7RgwQLTkQCvRr/iCvoVgBOMGzdO1apV06OPPqpt27apRo0apiPBgIceekgbNmzQSy+9pFatWum1117jW9xBP/74oxYsWKBBgwbJz8/PdBwAafTjjz+qfPnyiouL05o1a9S/f3/5+/ubjoV0ljlzZo0bN04LFixQdHS0QkNDtW/fPtOxAHgYeySuYI+EHSIjIzV9+nSNGjVKPXv2tO3X5bwKifMqPKdixYpavHixli5dqhYtWigxMTFVvw57OiT2dHjOvffeq+XLl+vs2bOqV6+ezp07l+yfSz9Bop/gPbhA7nC//vqrKlasqNWrV2vJkiXq0aMHXyx2uYIFC+q7775TmzZtFBERoS5duqT5b+YCbkS/4nr0KwBT4uPj1a5dO3Xq1EndunXTwoULdc8995iOBYMCAwM1atQoLViwQJ988omqVaumf//736ZjwaDBgwerXLlyeuaZZ0xHAZBGM2bMUOXKlZU/f37FxsaqQoUKpiPBsAYNGmjz5s26fPmyypUrp6VLl5qOBMBD2CNxPfZI2KF58+aaMWOGxowZow4dOsiyrDT9epxXcT3Oq/CE0NBQzZ8/X1999ZUiIyOVlJSU7J/Lno7rsafDU/Lly6fly5dr//79atiw4R2/Gwf9hOvRT/AGXCB3sIULF+rxxx9X1qxZ9eOPP/I3knBVUFCQxowZo0mTJmnixImqV6+eTp48aToW4DXoV9wK/Qogvf3xxx+qVKmSoqOjtWjRIg0bNkwZMvBpGv7WsGFDrVu3TkePHlX58uW1YcMG05FgwM8//6wvv/xS/fv354IR4MUuX76szp07q1WrVurYsaNWrFihPHnymI4FhyhatKg2bNigOnXqKCwsTMOGDTMdCYDN2CNxK+yRsEOTJk00c+ZMTZkyRS+//HKKLmJewXkVt8N5FZ5Qs2ZNLVy4UF988YXat2+frL8Aw56O22FPhyc8+OCDWrp0qX788Uc1bdr0ln/hk37C7dBPcDKayqHGjBmjRo0aqUmTJlq9erXy5ctnOhIcKDIyUmvWrNGuXbv4tmFAMtGvSA76FUB6+OGHH1SxYkVdunRJsbGxqlevnulIcKCQkBDFxsaqbNmyqlGjhubOnWs6EtLZsGHDVLx4cV59HPBiZ8+eVYMGDTR16lTNmjVLI0aMUMaMGU3HgsNkyZJFM2bM0Lvvvqs33nhDkZGRfFtbwEewRyI52CORVo0bN9b8+fP12Wef6YUXXlBiYmKyfy7nVSQH51V4Qq1atRQdHa0ZM2aoS5cut31b9nQkB3s6PKFMmTL6+uuvtWLFCr344os3/GU9+gnJQT/BqbhA7jCJiYnq0qWLunXrpjfeeEOTJk1SUFCQ6VhwsPLly+v7779X5syZVb58ea1bt850JMCR6FekFP0KwJOWLVumatWq6eGHH9aaNWtUtGhR05HgYNmzZ9fChQvVrl07NWnSRFFRUaYjIZ0cPHhQM2fO1Ouvv86rlQBe6s8//9RTTz2lTZs2admyZWrSpInpSHC4rl276uuvv9bcuXNVt25dnT592nQkAKnEHomUYo9EWoWFhWn+/PmKjo5Wy5Ytb/kKmf/EeRUpxXkVdqtbt64+//xzjR8/Xt26dbvp27CnIyXY0+EJFStW1IIFCzRnzhy99tprV3+cfkJK0E9wIr766CDnz59XRESEJkyYoBkzZlASSLa8efNq9erVqlixomrWrKnZs2ebjgQ4Cv2K1KJfAXjC5MmTFRYWpoiICC1evFh333236UjwAv7+/nr//fc1evRovfnmm2rXrh2v8uQC7777rnLnzq3mzZubjgIgFeLi4lShQgWdOXNGGzZsUGhoqOlI8BK1a9fWmjVr9Ouvvyo0NFT79+83HQlACrFHIrXYI5FWderU0eLFi7Vo0SI9//zzt90OOK8itTivwm4RERGaOXOmxo4dq169el3z79jTkRrs6fCEmjVraubMmZowYYKioqLoJ6QK/QSn4QK5Q5w+fVq1atXSunXrtHz5cr44jBTLmjWrFixYoMjISLVo0UJTpkwxHQlwBPoVaUW/ArDTO++8o5deekn9+vXTtGnTFBAQYDoSvEyXLl00b948zZw5U40aNVJ8fLzpSPCQ48ePa8qUKerZs6cCAwNNxwGQQrGxsapatary58+vDRs26MEHHzQdCV6mTJky2rhxowIDA1WxYkXt2LHDdCQAycQeibRij0RaVa1aVTExMVq8eLEiIiJ08eLFG96G8yrSivMq7Na4cWNNnjxZo0aN0ptvvimJPR1px54Ouz377LMaP368Vq5cST8hTegnOAUXyB3g5MmTqlWrlvbu3avVq1erSpUqpiPBS/n7+2vs2LF666231L59e7333numIwFG0a+wC/0KwA79+/dX3759NXHiRF59DmkSHh6upUuX6rvvvlO9evV07tw505HgAWPHjlVQUJDatWtnOgqAFFq9erVq1KihSpUq6ZtvvlGuXLlMR4KXyps3r1auXKnChQurevXq2rp1q+lIAO6APRJ2YY9EWlWpUkWLFy/Wd999p2efffaaCymcV2EXzquwW+vWrTV+/HgNHDhQTZs2ZU+HLdjTYbf9+/dr3bp19BPSjH6CE3CB3LAjR46oatWqOnLkiNasWaNSpUqZjgQf0Lt3b73zzjvq3r27Bg0aZDoOYAT9Ck+gXwGkhmVZ6tq1q4YOHaqpU6dyGRS2qFy5slauXKnt27erXr16OnPmjOlIsFFCQoI++ugjvfLKKwoODjYdB0AKLF68WHXr1lVYWJiio6OVKVMm05Hg5e6++24tW7ZMZcqU0VNPPaWNGzeajgTgFtgj4QnskUiL0NBQrVy5Ut9//73Cw8N14cIFzquwHedV2K19+/YKDw/XvHnz2NNhG/Z02IGv98ET6CeYxgVygw4ePKgqVaooISFBa9euVdGiRU1Hgg/p1auXPvjgAw0aNEj9+/c3HQdIV/QrPIl+BZASSUlJioyM1EcffaQ5c+aodevWpiPBh5QtW1YrV67Ub7/9plq1aunUqVOmI8Ems2bN0rFjx/TKK6+YjgIgBaKjoxUeHq4WLVpo+vTpfOta2CY4OFhffvmlKlWqpNq1a2vt2rWmIwG4DnskPIk9EmlRrlw5LVu2TLGxsapZsybnVXgE51XY5cqeHhMTw54O27GnIy34eh88iX6CSVwgN+TIkSOqWbOmgoKCtHr1auXLl890JPigV199VVOmTNHbb7+tIUOGmI4DpAv6FemBfgWQHJZlqUOHDpo5c6YWLFigZ5991nQk+KDSpUtr9erVOnjwoMLCwnT+/HnTkWCDsWPHqnHjxpxlAS/y9ddfq3nz5mrfvr0mTZokf39/05HgYzJnzqz58+erRo0aCgsLU2xsrOlIAP6LPRLpgT0SaVGuXDkNGjRIsbGxnFfhMZxXkVbs6UgP7OlIDfoJ6YF+gilcIDfg1KlTqlu3rhITE7Vs2TLlyZPHdCT4sBdffFGTJk3SgAEDNGLECNNxAI+iX5Ge6FcAd9K7d29NmzZNs2fPVp06dUzHgQ8rXry4Vq5cqT179qhBgwaKj483HQlpsG7dOsXGxqpLly6mowBIppUrV6px48Zq3ry53n//ffn5+ZmOBB8VGBioWbNmqUqVKqpVq5Z+/PFH05EA12OPRHpij0RqrVy5Ur169VKLFi04r8KjOK8iLdjTkV7Y05FS9BPSC/0EE7hAns7OnDmjWrVq6dixY1q+fLnuv/9+05HgAm3bttXo0aPVu3dvTZgwwXQcwCPoV5hAvwK4lTfeeEOjRo3SJ598ovr165uOAxcoXry4li5dqp9++kkNGzbUxYsXTUdCKr3//vsqV66cKlSoYDoKgGTYuHGjGjZsqGeeeUZTpkxRhgzMrfCswMBAzZkzR4899phq166tXbt2mY4EuBZ7JExgj0RKcV5FeuO8itRgT0d6Y09HctFPSG/0E9IbnyGmo/j4eD3zzDM6dOiQvv32WxUqVMh0JLhIly5dNHDgQHXs2FGzZ882HQewFf0Kk+hXANcbMWKE3n77bU2ePFnNmzc3HQcuUqZMGcXExGjDhg1q06aNkpKSTEdCCh06dEjz589X165dTUcBkAxbt25VnTp1VLNmTc2cOVP+/v6mI8ElMmfOrIULF6po0aKqXbu2Dh48aDoS4DrskTCJPRLJxXkVpnBeRUqwp8MU9nTcCf0EU+gnpCcukKeTpKQktW7dWnFxcVq+fLmKFi1qOhJcaODAgercubNat26ttWvXmo4D2IJ+hRPQrwCumD17tl5//XWNHj1abdq0MR0HLvTkk09q4cKFio6OVt++fU3HQQpNmzZN2bNn13PPPWc6CoA7OHjwoJ555hmVK1dOs2bNUsaMGU1Hgstky5ZNMTExuuuuuxQWFqYzZ86YjgS4BnsknIA9EnfCeRWmcV5FcrCnwzT2dNwK/QTT6CekFy6Qp5M+ffpo/vz5mjNnjkqWLGk6Dlxs1KhRqlu3rsLDw/XLL7+YjgOkGf0Kp6BfAWzatEkvvviiOnfurC5dupiOAxerVq2aPvnkEw0fPlwffvih6ThIpqSkJE2ZMkWtW7dWUFCQ6TgAbuPs2bOqX7++smXLprlz5/JnFsbkyJFDS5cu1fHjx9WkSRNdvnzZdCTAFdgj4RTskbgVzqtwCs6ruB32dDgFezquRz/BKegnpAcukKeDyZMna8SIEZo0aZJq1KhhOg5cLkOGDJoxY4YefPBB1atXT0ePHjUdCUg1+hVOQr8C7rZnzx7Vr19f1apV08iRI03HAdSsWTMNGDBAXbp00Zdffmk6DpJh+fLl2rdvn9q2bWs6CoDbSExM1PPPP69Dhw7pyy+/VI4cOUxHgss98MADWrhwodauXatXXnnFdBzA57FHwknYI3EznFfhNJxXcTPs6XAa9nRcQT/BaegneBoXyD1s+fLl6tChgwYOHKjWrVubjgNIkjJnzqwFCxYoKSlJERERSkhIMB0JSDH6FU5EvwLudOrUKdWpU0cFCxbU7Nmz5e/vbzoSIOnvb2nesmVLtWzZUnFxcabj4A4mTZqkypUr8yqWgMO99tprWrFihb7++msVK1bMdBxAklSuXDl9/vnn+vjjjzVixAjTcQCfxR4JJ2KPxPU4r8KJOK/in9jT4VTs6aCf4FT0EzyJC+QetH//fjVv3lyNGzfWgAEDTMcBrpEnTx4tWrRIW7duVffu3U3HAVKEfoWT0a+AuyQlJalVq1Y6f/68vvzyS2XJksV0JOAqPz8/TZw4UWXKlFFERIROnz5tOhJu4dixY1q0aJHat29vOgqA2/j44481fvx4ffrpp3r88cdNxwGu0aBBAw0bNkx9+vTRihUrTMcBfA57JJyMPRJXcF6Fk3FehcSeDmdjT3c3+glORj/Bk7hA7iHx8fFq3Lix8ubNq8mTJ8vPz890JOAGpUqV0meffaZx48Zp2rRppuMAyUK/whvQr4B7DB48WEuXLtUXX3yh++67z3Qc4AaBgYGaN2+e/vrrL7Vq1UpJSUmmI+Empk2bpsyZM6tx48amowC4hZ9++kkdO3bU66+/rkaNGpmOA9xUz5491ahRIzVp0kR79+41HQfwGeyR8AbskeC8Cm/AeRXs6XA69nT3op/gdPQTPIUL5B7y6quvavfu3YqOjlZwcLDpOMAthYeHq0ePHurYsaO2bNliOg5wR/QrvAX9Cvi+5cuXa8iQIXr//fdVuXJl03GAW8qTJ4/mzJmjpUuXaujQoabj4CY+++wzNW3alFc1ARzqxIkTioiIUKVKlfTmm2+ajgPc1pQpU5Q3b141atRIFy5cMB0H8AnskfAW7JHuxXkV3oTzqnuxp8NbsKe7D/0Eb0E/wRO4QO4BkyZN0scff6zPPvtMxYoVMx0HuKOhQ4eqYsWKatKkCd/mAo5Gv8Lb0K+A79q3b5+aNm2qVq1a6ZVXXjEdB7ijihUr6t1339WAAQO0fPly03HwD1u3btX27dvVsmVL01EA3ERSUpJatGihpKQkzZo1S/7+/qYjAbeVNWtWzZs3T3v27FG3bt1MxwG8HnskvA17pPtwXoW34bzqTuzp8Dbs6e5BP8Hb0E+wGxfIbfbzzz+ra9eu6tOnj8LCwkzHAZIlY8aMmjVrlv766y916NDBdBzgpuhXeCP6FfBNiYmJatmypfLnz6/x48ebjgMkW+fOnfXcc8+pdevWOnbsmOk4+K8ZM2aoYMGCCg0NNR0FwE289957WrlypebOnatcuXKZjgMkS/HixTVlyhRNmDBB8+fPNx0H8FrskfBG7JHuw3kV3ojzqruwp8Nbsaf7PvoJ3op+gp24QG6jS5cuqXXr1nr44Yc1cOBA03GAFMmdO7c++eQTzZo1S9OnTzcdB7gG/QpvRr8Cvuett97S5s2b9dlnnylTpkym4wApMmHCBAUGBuqFF16QZVmm47jelVeIa9mypfz8/EzHAXCduLg49evXT4MHD1b58uVNxwFSpFGjRmrXrp0iIyN14MAB03EAr8MeCW/GHukenFfhzTivugd7OrwZe7pvo5/gzegn2IUL5DZ64403tGPHDn3++ecKCAgwHQdIsVq1aum1115Thw4d9Pvvv5uOA1xFv8Lb0a+A79i8ebOGDBmi4cOHq0yZMqbjACmWPXt2TZ8+XcuWLdPEiRNNx3G91atX68CBA2revLnpKACuEx8frxYtWujxxx9Xr169TMcBUuW9995T7ty51apVKyUlJZmOA3gV9kh4O/ZI38d5Fb6A86rvY0+Ht2NP9130E7wd/QS7cIHcJt9++63effddjRkzRsWLFzcdB0i1YcOGqUiRImrTpo0SExNNxwHoV/gM+hXwfufOnVOzZs1Uo0YNde7c2XQcINUqV66s119/Xd27d9fPP/9sOo6rzZgxQ4899phKlSplOgqA6/Tq1UsHDhzQ9OnT5e/vbzoOkCrBwcGaPn261q9fr9GjR5uOA3gN9kj4CvZI38Z5Fb6A86pvY0+Hr2BP9z30E3wF/QQ7cIHcBufPn1e7du3UoEEDRUZGmo4DpEmmTJk0Y8YMbd68WWPGjDEdBy5Hv8KX0K+A9+vbt69OnTqlqVOnys/Pz3QcIE0GDhyokiVLKjIykld4MuTSpUuaP38+rz4OONDq1av14Ycf6sMPP1SBAgVMxwHSpHz58oqKitIbb7yhX3/91XQcwPHYI+FL2CN9F+dV+BLOq76LPR2+hD3dt9BP8CX0E9KKC+Q2GDBggI4fP66xY8eajgLYIiQkRH369FH//v21e/du03HgYvQrfA39Cniv77//XuPGjdOoUaN0//33m44DpFlAQICmTp2q2NhYjR8/3nQcV1q1apVOnDihiIgI01EA/MPFixfVoUMH1a1bVy1atDAdB7DFv/71L5UsWVIvvfSSLMsyHQdwNPZI+Br2SN/DeRW+iPOq72FPh69hT/cd9BN8Df2EtOICeRrFxsZqzJgxGjlypB544AHTcQDb9OnTR4ULF+YTdRhDv8JX0a+A90lISFBkZKSqVq2qVq1amY4D2KZ06dLq1auX+vTpowMHDpiO4zrz58/Xo48+qqJFi5qOAuAfoqKidOjQIX300UemowC2yZgxo6ZOnar169dr8uTJpuMAjsUeCV/FHulbOK/CF3Fe9S3s6fBV7Onej36Cr6KfkBZcIE+Dy5cv6+WXX1blypXVtm1b03EAWwUGBmrKlClavXq1Pv30U9Nx4DL0K3wZ/Qp4n7feekt79+7VpEmT+FZ28DkDBgxQvnz59PLLL5uO4iqWZemrr77Ss88+azoKgH/Ytm2bRo4cqaFDhyp//vym4wC2euSRR9SlSxf17NlThw4dMh0HcBz2SPgy9kjfwXkVvozzqu9gT4cvY0/3bvQTfBn9hNTiAnkajBo1Sj///LMmT57MgwU+6cknn1THjh3Vo0cPnThxwnQcuAj9Cl9HvwLe49dff9WwYcM0ZMgQFSlSxHQcwHZBQUEaP368lixZonnz5pmO4xobN27UwYMHFRERYToKgP9KSkpS+/bt9cQTT+iVV14xHQfwiEGDBilXrlzq3r276SiA47BHwtexR3o/zqtwA86r3o89Hb6OPd170U/wdfQTUosL5Kl09OhRvf322+rdu7eKFStmOg7gMW+99ZYCAwM1aNAg01HgEvQr3IJ+BbxD9+7dVaxYMXXu3Nl0FMBjqlatqpYtW6pXr16Kj483HccV5s+fr2LFiikkJMR0FAD/9dlnn2nLli0aN26cMmRgMoVvypIli9577z3Nnj1bq1evNh0HcAz2SLgFe6R347wKN+C86v3Y0+EG7OneiX6CG9BPSA0+u0ylPn36KFu2bOrZs6fpKIBHZcuWTYMHD9a4ceMUFxdnOg5cgH6FW9CvgPOtWLFCX3/9tUaPHq2MGTOajgN41NChQ/Wf//xHo0aNMh3FFb788ks9++yzpmMA+K9z586pb9++at++vcqUKWM6DuBR9evXV506ddS1a1clJiaajgM4Ansk3II90ntxXoWbcF71XuzpcBP2dO9CP8FN6CekFBfIU+HHH3/Uxx9/rOHDhys4ONh0HMDj2rZtq0cffVRdu3Y1HQU+jn6F29CvgHNdvnxZXbt21bPPPqtatWqZjgN43AMPPKDevXtr6NCh+ve//206jk/bu3evfvnlF4WFhZmOAuC/hg4dqr/++kuDBw82HQVIF6NGjdKOHTv08ccfm44CGMceCbdhj/ROnFfhNpxXvQ97OtyGPd170E9wG/oJKcUF8lTo2rWrKlSooGbNmpmOAqSLDBkyaOTIkVf/Vh7gKfQr3IZ+BZzro48+0m+//abhw4ebjgKkmx49eihnzpzq16+f6Sg+LSYmRtmyZVOlSpVMRwEgaf/+/Ro1apT69++ve++913QcIF08/PDDevnll9WvXz+dPXvWdBzAKPZIuA17pPfhvAo34rzqfdjT4Ubs6d6BfoIb0U9ICS6Qp1BMTIzWrFmj0aNHy8/Pz3QcIN383//9nxo1aqS+ffsqKSnJdBz4IPoVbkW/As5z/vx5DRkyRJ06dVKxYsVMxwHSTebMmTVs2DB9+umn2rFjh+k4PmvJkiWqWbOmAgICTEcBICkqKkr58uVTp06dTEcB0tWgQYN08eJFjR492nQUwBj2SLgVe6R34bwKt+K86j3Y0+FW7OnORz/BregnpAQXyFPAsixFRUWpQYMGeuKJJ0zHAdLd4MGDFRcXp7lz55qOAh9Dv8Lt6FfAWT744AOdP39e//rXv0xHAdJd06ZNVbp0aUVFRZmO4pMSEhK0atUq1alTx3QUAJJ+++03TZ8+XVFRUQoMDDQdB0hX99xzj7p3765Ro0bpxIkTpuMA6Y49Em7HHukdOK/CzTiveg/2dLgZe7qz0U9wM/oJycUF8hRYsGCBNm/ezB8suFbJkiXVrFkz9e/fX5cvXzYdBz6EfoXb0a+Ac5w7d06jRo1S165dlTt3btNxgHTn5+enqKgozZs3Tz/99JPpOD7nu+++07lz51S7dm3TUQBIGjhwoIoUKaJmzZqZjgIY0a1bNwUGBmrUqFGmowDpjj0Sbsce6R04r8LtOK86H3s63I493bnoJ7gd/YTk4gJ5MiUlJWnQoEFq3LixHn30UdNxAGOioqK0Z88ezZw503QU+Aj6Ffgb/Qo4w8iRI5WQkKBu3bqZjgIYEx4erscff1wDBw40HcXnLFmyRCVLllTBggVNRwFcb8eOHfriiy80ZMgQ+fv7m44DGJE1a1b16NFDY8aM0dGjR03HAdINeyTwN/ZIZ+O8CnBe9Qbs6QB7ulPRTwD9hOThAnkyzZ07V9u3b+fVKOB6Dz74oFq1aqXBgwcrMTHRdBz4APoV+Bv9Cph36tQpjR49Wj169NA999xjOg5g1MCBA/Xll18qNjbWdBSfsmrVKtWoUcN0DAD6+8JUSEiIGjVqZDoKYFSnTp0UHBysd99913QUIN2wRwJ/Y490Ns6rwN84rzoXezrwP+zpzkI/Af9DP+FOuECeTCNGjFCjRo1UsmRJ01EA4/r27au9e/cqOjradBT4APoV+B/6FTBr0qRJsixLr732mukogHH16tVT+fLlNWLECNNRfMbp06f1008/qWrVqqajAK63e/duzZ8/X/369VOGDMyjcLfg4GB1795dEyZM0JkzZ0zHAdIFeyTwP+yRzsR5FfgfzqvOxZ4O/A97urPQT8D/0E+4Ez7jTIbVq1dr8+bN6t69u+kogCMUK1ZM4eHhPFyQZvQrcC36FTDn0qVL+uCDD9S+fXtlz57ddBzAEXr06KHo6Gjt3r3bdBSfsHbtWiUlJalKlSqmowCuN3r0aOXPn18RERGmowCO8Morr8jPz08TJ040HQXwOPZI4Frskc7EeRW4FudV52FPB27Enu4M9BNwI/oJt8MF8mQYOXKkqlSpogoVKpiOAjhG7969FRsbqzVr1piOAi9GvwI3ol8BM2bNmqU///yTVyMA/uG5555TwYIF9f7775uO4hO+++47Pfzww8qdO7fpKICrnThxQp988om6deumjBkzmo4DOMJdd92lyMhIvffee0pISDAdB/Ao9kjgRuyRzsJ5FbgR51XnYU8HbsSe7gz0E3Aj+gm3wwXyO/j111/19ddfq0ePHqajAI7y+OOPKzQ0VCNHjjQdBV6KfgVujn4FzBg9erSaNGmiAgUKmI4COIa/v786d+6syZMn6/jx46bjeL3Vq1eratWqpmMArjd+/HgFBASobdu2pqMAjtKtWzcdPXpUc+bMMR0F8Bj2SODm2COdhfMqcHNx80aUAAAgAElEQVScV52FPR24EXu6M9BPwI3oJ9wOF8jvYMyYMSpatKjq169vOgrgOD169NBXX33Ft7hAqtCvwK3Rr0D6WrVqlX788Ue+hTlwE5GRkQoMDNSUKVNMR/Fq58+f1w8//MAFcsCwS5cuady4cXrppZeUNWtW03EAR8mXL58aN26s0aNHm44CeAx7JHBr7JHOwHkVuDXOq87Bng7cGnu6WfQTcGv0E26FC+S3ceHCBX3++efq0KGDMmTgtwq4XsOGDZUvXz5NnjzZdBR4GfoVuD36FUhfEydOVIUKFVSuXDnTUQDHyZYtm1544QVNmDBBlmWZjuO1vv/+e126dEmVK1c2HQVwtUWLFunw4cPq0KGD6SiAI3Xs2FFbtmzRDz/8YDoKYDv2SOD22COdgfMqcHucV52BPR24NfZ0s+gn4NboJ9wKK9ltzJo1S3/99ZdatmxpOgrgSBkyZFDr1q01bdo0Xbp0yXQceBH6Fbg9+hVIP8ePH9f8+fPVvn1701EAx2rXrp327NmjVatWmY7itTZt2qR8+fLpgQceMB0FcLVJkyapVq1aKliwoOkogCNVrlxZJUuW5PIgfBJ7JHB77JHOwHkVuD3Oq+axpwN3xp5uBv0E3Bn9hJvhAvltTJo0SREREbr33ntNRwEcq3379jp27Ji+/vpr01HgRehX4M7oVyB9fPrpp8qYMaOee+4501EAxypdurSefPJJvjiXBrGxsXr88cdNxwBc7cCBA1q2bBlfRALuIDIyUp9//rnOnz9vOgpgK/ZI4M7YI83ivAokD+dVs9jTgTtjTzeDfgLujH7CzXCB/BZ27dqlDRs28Ek6cAf58+dXzZo1NWnSJNNR4CXoVyB56FcgfUyZMkXPP/+8smXLZjoK4Gjt27fXvHnzdOzYMdNRvNKmTZu4QA4YNnnyZOXKlUv169c3HQVwtNatWys+Pl5z5swxHQWwDXskkDzskWZxXgWSh/OqWezpQPKwp6c/+glIHvoJ1+MC+S1MnjxZRYsWVbVq1UxHARyvXbt2Wrp0qQ4dOmQ6CrwA/QokH/0KeNbGjRu1Y8cOtWvXznQUwPGaNm2qwMBAzZw503QUr3P48GEdPHiQC+SAQZZl6eOPP1abNm0UEBBgOg7gaDlz5lR4eLimTp1qOgpgG/ZIIPnYI83gvAokH+dVc9jTgeRjT09f9BOQfPQTrscF8ptISkrSF198oeeff15+fn6m4wCOV79+fWXNmlVz5841HQUOR78CKUO/Ap41a9YsPfTQQypfvrzpKIDjZc2aVQ0bNtQXX3xhOorX2bRpk/z8/FSuXDnTUQDXWr9+vf744w+1bNnSdBTAKzz//PNau3at/vjjD9NRgDRjjwRShj3SDM6rQMpwXjWDPR1IPvb09EU/AclHP+F6XCC/iXXr1unQoUNq0qSJ6SiAVwgKClLDhg01e/Zs01HgcPQrkDL0K+A5SUlJmjt3rpo1a2Y6CuA1mjZtevWL2ki+LVu2qFixYsqRI4fpKIBrffHFFypRooRCQkJMRwG8Qu3atZUjRw7NmzfPdBQgzdgjgZRhjzSD8yqQMpxX0x97OpBy7Onpg34CUo5+wj9xgfwmZs+erRIlSqhUqVKmowBeo0mTJtqwYYP2799vOgocjH4FUo5+BTxj7dq1OnTokJ577jnTUQCvwRfnUmfr1q169NFHTccAXCspKUnz5s3ji0hACgQGBqpBgwZcHoRPYI8EUo49Mn1xXgVSjvNq+mNPB1KOPT190E9AytFP+CcukF8nKSlJ0dHRatGihekogFepVauWcuTIwbc1xC3Rr0Dq0K+AZ8yePVshISFcIgBSICAgQA0aNODb2qXQjh076BrAoDVr1ujf//43X0QCUqhJkyb6/vvvtW/fPtNRgFRjjwRShz0yfXFeBVKH82r6Yk8HUo49PX3QT0DK0U/4Jy6QX2ft2rV8kg6kQkBAgMLDwxkUcUv0K5A69CtgP8uyFB0dzTMJSIUmTZpo06ZNfFu7ZIqPj9fevXv5NuSAQXPnzlXp0qVVsmRJ01EAr1KzZk3lyJFD0dHRpqMAqcYeCaQOe2T64rwKpA7n1fTDng6kHnu6Z9FPQOrRT7iCC+TXiYmJUfHixVWiRAnTUQCvU79+fW3atElHjx41HQUORL8CqUe/Avb64Ycf9Oeff6phw4amowBep0aNGgoODtaSJUtMR/EKO3fuVGJiIq9+Ahi0ePFiNWjQwHQMwOsEBASoTp06iomJMR0FSDX2SCD12CPTD+dVIHU4r6Yf9nQg9djTPYt+AlKPfsIVXCC/zuLFi1W3bl3TMQCvVKNGDWXMmFHffPON6ShwIPoVSD36FbDXkiVLdN9996lMmTKmowBeJzAwUNWqVdPixYtNR/EKO3bsUGBgoIoVK2Y6CuBKv/76q3bv3q06deqYjgJ4pTp16mjNmjU6e/as6ShAqrBHAqnHHpk+OK8CacN5NX2wpwOpx57uWfQTkHr0E67gAvk//Pnnn9q+fTufpAOplC1bNlWqVIm/nYQb0K9A2tCvgL2uXCLw8/MzHQXwSnXq1NGKFSuUkJBgOorj7dixQyVKlFDGjBlNRwFcafHixbr77rtVoUIF01EAr1SnTh1dvnxZ3377rekoQIqxRwJpwx6ZPjivAmnDeTV9sKcDacOe7jn0E5A29BMkLpBfIyYmRpkyZdL//d//mY4CeK26detqyZIlSkpKMh0FDkK/AmlHvwL2OHnypL7//ntehQ5Ig7p16+rs2bNav3696SiOt2vXLpUsWdJ0DMC1Fi9erKeffpq/xAGk0r333quyZctyeRBeiT0SSDv2SM/jvAqkDedVz2NPB9KOPd0z6Ccg7egnSFwgv8bSpUv11FNPKUuWLKajAF6rbt26+s9//qMffvjBdBQ4CP0KpB39CthjxYoVkqSaNWsaTgJ4r8KFC+uhhx7ii3PJsHv3bhUrVsx0DMCV4uPj9d133/FFJCCNrlweBLwNeySQduyRnsV5FbAH51XPYk8H0o493TPoJyDt6CdIXCC/xpo1a1S9enXTMQCvFhISoty5c+u7774zHQUOQr8CaUe/AvZYvXq1HnvsMeXIkcN0FMCrVa9enWfSHViWpb1796pw4cKmowCutGnTJl24cIHPRYE0qlatmvbu3asDBw6YjgKkCHskkHbskZ7FeRWwB+dVz2JPB+zBnm4/+gmwB/0ELpD/1++//67Dhw8rNDTUdBTAq/n5+alixYpat26d6ShwCPoVsAf9Cthj/fr1PJMAG4SGhmrz5s3666+/TEdxrMOHD+uvv/5SkSJFTEcBXGndunXKmzevChYsaDoK4NUqVKigwMBAPheFV2GPBOzBHulZnFcBe3Be9Sz2dMAe7On2o58Ae9BP4AL5f61fv15BQUEqW7as6SiA1wsNDeWTdFxFvwL2oV+BtDl//ry2bdumSpUqmY4CeL3Q0FBdunRJW7ZsMR3Fsfbs2SNJXCAHDFm/fr0qV65sOgbg9TJnzqxHHnmEz0XhVdgjAfuwR3oO51XAHpxXPYc9HbAPe7q96CfAPvQTuED+X+vWrVP58uUVFBRkOgrg9UJDQ3XkyBHt3r3bdBQ4AP0K2Id+BdJm48aNunz5sipWrGg6CuD1ChUqpHz58vHFudvYs2ePAgMD9cADD5iOAriOZVnauHEjX0QCbMLlQXgb9kjAPuyRnsF5FbAX51XPYE8H7MOebi/6CbAP/QQukP/Xhg0b+CQdsEm5cuWUKVMmrV271nQUOAD9CtiHfgXSZv369SpYsKDy5ctnOgrgEypVqsSgdBt79uxRoUKF5O/vbzoK4Dq//PKLjh07xueigE1CQ0O1bds2nT171nQUIFnYIwH7sEd6BudVwF6cVz2DPR2wF3u6fegnwF70k7txgVzSX3/9pZ07d+rJJ580HQXwCUFBQXr00Uf59hagXwGb0a9A2mzZsoVnEmCjJ554Qps3bzYdw7EOHjyoAgUKmI4BuNKWLVuunp0BpN2TTz6pxMRE/fTTT6ajAHfEHgnYiz3SMzivAvbivOoZ7OmAvdjT7UM/Afain9yNC+SS4uLilJiYqDJlypiOAviMMmXKaPv27aZjwDD6FbAf/Qqk3tatW3kmATYqU6aMDh8+rKNHj5qO4kh//vmn8ubNazoG4Epbt27Vww8/rICAANNRAJ+QP39+5cyZU9u2bTMdBbgj9kjAfuyR9uO8CtiL86pnsKcD9mJPtw/9BNiLfnI3LpBL2rZtm4KDg1W0aFHTUQCfUbp0aT5JB/0KeAD9CqTOmTNntH//fgYlwEZX/jxxkeDmDh8+rPvuu890DMCVtm3bxjMfsFmpUqV45sMrsEcC9mOPtB/nVcB+nFftxZ4O2I893R70E2A/+snduECuv//jDwkJUYYM/HYAdildurROnDihQ4cOmY4Cg+hXwH70K5A627Ztk2VZDEqAjfLkyaPcuXMzKN3C4cOHlSdPHtMxAFfatm2bSpcubToG4FPKlCnD5UF4BfZIwH7skfbjvArYj/OqvdjTAfuxp9uDfgLsRz+5Gwua+FvegCdc+TPFJ+ruRr8C9qNfgdTZtm2bsmfPrgIFCpiOAviU0qVLMyjdhGVZOnr0KK9ADhhw7Ngx/fnnn3wuCtisdOnSiouLk2VZpqMAt8UeCdiPPdJenFcBz+C8ai/2dMAz2NPTjn4CPIN+ci8ukEvauXOnSpUqZToG4FNy5MihvHnzaseOHaajwCD6FbAf/Qqkzq5du1SqVCn5+fmZjgL4lJCQEJ5JN3Hs2DFdunRJ999/v+kogOtc6SQ+FwXsFRISorNnz+qPP/4wHQW4LfZIwH7skfbivAp4BudVe7GnA57Bnp529BPgGfSTe7n+Avn58+d19OhRFSlSxHQUwOcUKVJE+/btMx0DhtCvgOfQr0DK7dmzR0WLFjUdA/A5RYoU0d69e03HcJwjR45I+vvb/gFIX3v37lWmTJmUN29e01EAn3Jl3+G5DydjjwQ8hz3SPpxXAc/gvGov9nTAM9jT045+AjyDfnIv118gv/IffqFChcwGAXxQ4cKFebi4GP0KeA79CqTcvn37eCYBHlCoUCEdPXpU586dMx3FUU6cOCFJypkzp+EkgPtceebzKkSAvfLkyaMsWbJweRCOxh4JeA57pH04rwKewXnVXuzpgGewp6cd/QR4Bv3kXq6/QH7lEwgeLoD9ChUqxKDoYvQr4Dn0K5By+/fv55kEeEDhwoUl/f1nDP9z+vRpSVL27NkNJwHchy8iAZ7h5+enAgUK8LkoHI09EvAc9kj7cF4FPIPzqr3Y0wHPYE9PO/oJ8Az6yb24QL5vn3LlyqVs2bKZjgL4nMKFC2vfvn2yLMt0FBhAvwKeQ78CKXP06FGdP3+eQQnwgCt/rvji3LVOnz6twMBAZcqUyXQUwHX27t17dewGYK8rn4sCTsUeCXgOe6R9OK8CnsN51R7s6YDnsKenDf0EeA795F6uv0DO30wCPKdw4cK6cOGCjhw5YjoKDKBfAc+hX4GU4VXoAM/Jli2b7r33Xr44d50zZ87orrvuMh0DcKX9+/erYMGCpmMAPqlw4cJ8EQmOxh4JeA57pH04rwKew3nVHuzpgOewp6cN/QR4Dv3kXq6/QP7nn38qb968pmMAPun++++XJAZFl6JfAc+hX4GUOXz4sCTxXAI85P7777/65wx/O336tLJnz246BuBKhw8f5pkPeAjPfDgdeyTgOeyR9uG8CngO51V7sKcDnkVXpR79BHgW/eROrr9Afvz4ceXKlct0DMAnXfmzdezYMcNJYAL9CngO/QqkzLFjx5Q1a1ZlypTJdBTAJ+XKlUvHjx83HcNReAVywIyzZ8/q4sWLfC4KeAjPfDgdeyTgOeyR9uC8CngW51V7sKcDnkVXpR79BHgW/eROrr9AfuzYMeXMmdN0DMAn5ciRQ/7+/jxcXIp+BTyHfgVS5vjx4zyTAA/KmTMnlwiuc+bMGWXLls10DMB1rpyPuZADeEauXLl06tQpJSYmmo4C3BR7JOA57JH24LwKeBbnVXuwpwOexZ6eevQT4Fn0kzu5/gI5DxfAczJkyKAcOXLwcHEp+hXwHPoVSBlehQ7wLF6R4EYXL15U5syZTccAXOfK+ZjPRQHPyJkzp5KSknTixAnTUYCbYo8EPIc90h6cVwHP4rxqD/Z0wLPY01OPfgI8i35yJ9dfID927BgPF8CDeLi4F/0KeBb9CiQfzyTAs3LlysUlgutcunRJGTNmNB0DcB1e0RHwrCt/tvhcFE7F536AZ7FHph3nVcCzOK/agzMV4Fns6alHPwGeRT+5k6svkCcmJurcuXO6++67TUdxhJiYGM2aNcsr3ufEiRMVExOT7jkWLlyo2bNn2/Z+t23bpjFjxujkyZO2/ZpOkyNHDp/++HBz9Ou16Ff61RPoVyD5Tp8+zTPpH3gu8VyyW44cOXTq1CnTMRzl0qVLCggIMB0DcJ1Tp07J399f2bJlMx3FEXjm88y3W44cOSTJZz8+eDf2yGvxDOAZ4AnskWnHefVadBVdZTfOq/ZgT78WXUVX2Y09PfXop2vRT/ST3egnd3L1BfKLFy/KsixlypTJdBRHGD58uHr16uUV77Nv376aNm1auucYMmSIXn/9ddve79q1a9W1a1cdPnzYtl/TaYKCgnTx4kXTMZDO6Ndr0a/0qyfQr0DyxcfH80z6B55LPJfsFhQUpPj4eNMxHOXy5cu8AjlgQHx8vIKCguTn52c6iiPwzOeZb7crZ2o+F4UTsUdei2cAzwBPYI9MO86r16Kr6Cq7cV61B3v6tegquspu7OmpRz9di36in+xGP7mTq7+amZCQIEkKDAw0nATeolOnTrpw4YLpGF4lKCjo6p81uAf9ipSiX1OOfgWSLyEhgWcSUoTnUsoEBgbyTLrOpUuXlDlzZtMxANfhmY+U4pmfMlf+fHEhB07EHomU4hmQcuyRacd5FSlFV6UM51V70FVIKboqZdjTU49+QkrRTylDP7kTF8jFoOhkSUlJypDBOS+U37p1a9MRvE5gYCCfpLsQ/ep89Kv3o1+B5Lt48SLPJIfjueTdeBW6G12+fFkBAQGmYwCuwxeRnI9nvncLCgqSJL6QBEdij3Q+ngHejz0y7TivOh9d5d04r9qDPd356Crvxp6eevST89FP3o1+cifn/Ik14Mp/8E58uKxatUqvvvqqihcvrvz586t58+b66KOPlJiYePVtmjZtqrffflvr169X06ZNde+996pUqVJ65513lJSUlOK3+6cBAwaoSpUq2rNnzw3/rnXr1qpdu7YuX758249h27ZtioiIUOHChdWwYUN98skn+uabb/Tcc8/p+PHjt/x5u3btUr169XTvvfcqODhYjz/+uObNm3fTt126dKlCQ0MVHByshx9+WIMHD74hV3J+L5Prtdde04svvnj1n9u3b69OnTrp3//+t1q0aKGCBQuqaNGiatu2rc6fP3/Nz42NjdVzzz2nIkWKqGbNmho7dqwsy7rhfZw6dUodO3ZUSEiI7rvvPkVERCgmJubqv//8889VpUoVDR48+Jqft3LlSlWrVk1vv/12ij8uT+Lh4k70K/2aUvRrytGvQPI5+YtzPJd4LvnCc4lLBDe6fPmyMmZ09d/ZB4xw8heReObzzPeVZ77EKzrCmdgjeQakFM+AlGOPTDvOq3RVStFVKcN51R7s6XRVStFVKcOennr0E/2UUvRTytBPLmW52O+//25JsrZs2WI6yjVWrlxp+fv7W/fcc4/VqVMnKyoqygoNDbUkWb169br6djlz5rSKFi1qZc+e3QoPD7f69u1rlS9f3pJkRUZGpvjtqlatauXLl8+yLMuaMWOGJckaNmzYNdn27dtnSbKaNm16249h9erVVpYsWaxcuXJZLVu2tFq3bm1lzZrVKlGihCXJ+uOPP254n5ZlWWvWrLGCg4OtQoUKWf369bOGDBliPfnkk5Yka/Dgwdd8TPfdd58VEBBgNWvWzBowYIBVqVKlG7Il9/fy+hy3Ur58eatw4cLX/HOhQoWsBx54wKpcubL1r3/9y6pataolyYqIiLj6dt9++62VJUsW65577rHatWtnvfTSS9bdd99tFSpUyJJk7dy507Isyzpw4IBVqFAhKzg42OrQoYP1+uuvW4899piVIUMGa/To0ZZlWVZ8fLxVqlQpK0OGDNa6dessy7Kss2fPWgULFrSyZ89u7d+//44fR3pq0aKF1bBhQ9MxfNapU6csSdaSJUtMR7kG/Uq/3uxjvx36NeXoV8+ZNGmSddddd5mOARuVLVvW6t27t+kYN+C5xHPJV55L8+fPtyRZCQkJpqM4Ru3ata/5cwcgfQwdOtQqUqSI6Rg34JnPM99XnvmWZVkBAQHW9OnTTcdwNafugaaxR/IMuNnHfjs8A1KOPTLtOK/SVTf72G+Hrko5zqtpx55OV93sY78duipl2NNTj36in272sd8O/ZQy9JMrHeACuWRt3rzZdJRrtG/f3goKCrJOnjx59ccuXLhg3X///VaJEiWu/ljOnDktSdaoUaOu/lhiYqJVrVo1y8/P7+rHldy3+2e5njt3zsqaNatVvnz5a7KNHDnSkmR99dVXt8yfmJhoPfLII1aOHDmsffv2Xf3xbdu2WYGBgbd8sCQlJVlly5a17rnnHuvQoUNXf15CQoJVvXp1KzAw0Prll1+u+ZjmzJlz9e0uX75s1axZ05JkbdiwIUW/l2l5sEiyevfubSUlJV39+MuWLWtlz5796ttd+f3Yu3fv1R/79ddfrSxZslzzYHn++ectSdbGjRuvvt3FixevfvzHjx+3LMuytmzZYgUEBFglSpSw4uPjrY4dO1qSHPnJcIsWLazw8HDTMXyWU79gRL/Sr1fQr55Dv3oOF8h9T7ly5Rw5KPFc4rnkK8+l6OhoBqXrcIEcMMOpF3J45vPM95VnvmVxIccJnLoHmsYeyTPgCp4BnsMemXacV+mqK+gqz+G8mnbs6XTVFXSVZ7Cnpx79RD9dQT95Bv3kSgcyyMWufFuLhIQEw0mu1b17d8XGxuruu++++mMJCQm6++67debMmWve9u6771bXrl2v/nOGDBnUt29fWZalZcuWpfjtrggODtazzz6rzZs3a9++fVd/fM6cOcqVK5dq166tpKQknT9//pr/JSYm6scff9TWrVv18ssvq2DBgld/bunSpdW0adNbftw//PCDfvjhB1WvXl158+a9+uMBAQFq06aNEhIStHz58qs//thjj6lx48ZX/9nf319NmjSRJK1YsSLFv5dX3OrjupXMmTMrKipKfn5+kv7+vQ0NDdXp06d18OBBbdy4UVu3blXHjh1VqFChqz/vwQcfVKtWra7+84kTJ/T555/r8ccf15NPPnn1xwMDA9W+fXslJCQoOjpaklS2bFn1799fP//8sxo1aqTx48eradOmev7552+Z0xQnfwsZeA79Sr/eDP1qL/rVc/z8/G767afgvQIDAx33TJJ4LvFc8p3nUkJCgjJkyKCAgADTUQC4HM98nvk3wzPfPpZl6dKlSwoKCjIdBbgBeyTPgJvhGWAv9si047xKV90MXWUfzqv2oKvoqpuhq+zDnp569BP9dDP0k33oJ3fKaDqASVc+cXDaw6VEiRI6fvy4Ro4cqQ0bNmjfvn367bffdObMmWsKV/q7nK4U2hWlSpWSJO3evTvFb/dPLVu21Geffaa5c+eqZ8+eOnDggL7//nt17NhR/8/encfZWPd/HH+fWRk7kaIiEdmyL2PJvoRKtrIkW7pRSDfuylaIrOlHslVKlki2QfaQQg0iFNpQUpJ11uv3h3vmNmaGWa5zvtc55/V8PH6P393Mofe4b+/rez7nc64THBysL774QjVr1kzyaxYsWKDAwEBJ0v3335/s90z4d6bk+++/lyTVrVs32fcqVqwoSTp69Gji10qVKpXscfXr15cknThxQlL6/iwTfPnllyn+XE888USKjy9QoICyZMmS5Gt58uSRJF28eFGHDx+WJD344IPJfu31fx5HjhyRZVm6ePFisgtwwkXw+v+uhg4dqlWrVmn16tUqVKiQZsyYkWI+06KiopJc2OEf6Ff6NSX0q73oV/dhgdz3OHWgxHWJ65KvXJdYIgDgFKGhoVzzxTX/Rlzz7ZPw94uFHLMSnq8GBPj1/YGSYR7JNSAlXAPsxTwy8ziv0lUpoavsw3nVHszT6aqU0FX2YZ6ecfQT/ZQS+sk+9JN/8usFcqfekeKNN97QsGHDFBoaqrp166phw4Z66aWXNHHixMTCTHDHHXck+/XZsmWTpCRll9bHXa9BgwYqWLBg4oXl448/lmVZie9+ue2225K9E6ZIkSLav3+/JClfvnzJfs+bvcPn7Nmzib/HjaKioiQp8aIlXXsH0Y2CgoKS/P/0/FkmSO3nSk3WrFlT/Z5lWfrrr7+SZU9w/Z/9n3/+KenaE9ob38mTL18+dezYMdmF2RuW26Kjo3mS7ofoV/o1JfSrvehX9wkICEjx7wG8l1NfnOO6VCTZ97gueed1KSoqimsSAEdw6otIXPOLJPse13zvveZLLOSYlvC/kxtfSPZ3zCO5BqSEa4C9mEdmHudVuioldJV9OK/ag3k6XZUSuso+zNMzjn6in1JCP9mHfvJPfr1A7sQ7Uvzxxx8aMmSI8ufPr++//145cuRI/N7o0aOTPf6HH35I9rWEj6K4/p1BaX3c9QIDA9WhQwdNnTpVv/zyi5YsWaJixYqpRo0akq692+mDDz5I9usS3kWzY8cOtWzZMsn3vvnmmxT/XZJUtGhRSdLnn3+uFi1aJPneF198IUm69957E7+W8I6f623fvj3xcen9s0yQ2s+VUQk/19atW/XYY48l+d71HxuS8LOl9O+Pi4vThQsXFBYWlvi10aNHa/fu3WrWrJkiIiLUt29fffjhh7bltgsXFzdjfKwAACAASURBVP9EvyZ/3PXoV3vQr/Sru7BA7nuc+OIc1yWuS750XWKJAIBTOPFFJK75XPN97ZoviTsRGcYCecqYRyZ/3PW4BtjDn68BEvNIO3BeTf6469FV9vDnruK8ag/m6ckfdz26yh7+3lWcqTKGfkr+uOvRT/agn+gnf+PXn3EYEhIil8ulq1evmo6S6KefflJ8fLxat26dpAh/+eUXRUZGJnv80aNHEz8SIsG8efMkJf0ohbQ+7kadOnWSZVmaMmWKdu3apc6dO9/yZyhTpoyCgoL02WefJfn68ePHtWHDhlR/XYUKFRQSEpLs10nSli1bFBgYqCZNmiR+7dChQzp06FCSx23evFkul0vNmjVL95+lu1SuXFnBwcHatGlTkq/HxsZqwYIFif983333KX/+/Fq3bp1iYmKSPHbs2LHKkyePvvrqK0nS3r179dprr6lGjRpatWqVWrZsqQULFmjJkiXu/4HSiYGif6Jf6VdPoF/pV3cJDAy86bup4X2yZMniqGuSxHWJ65JvXZeuXr3KNQmAI2TJkkVRUVGOupML13yu+b52zZe4o6NpLJCnjHkk1wBP8OdrgMQ80g6cV+kqT/DnruK8ag/m6XSVJ/h7V9FTGUM/0U+eQD/RT37H8nO5cuWyZs2aZTpGon/++cfKnj27lTdvXmvFihXW0aNHrXnz5lmFCxe28uTJY+XMmdM6fPiwZVmWlS9fPsvlclkPPPCAtWzZMuvbb7+1Ro0aZQUEBFjt2rVL/D3T+ri6detahQsXTpapZMmSVkBAgOVyuazjx4+n6ed44YUXLEnWU089Za1Zs8aaOnWqVaJECSt37tyWJOvnn39O8d85cOBAS5L17LPPWgcOHLAOHz5sDRs2LPH3uv5nCg0NtUqUKGG999571u7du61Ro0ZZLpfLatOmTbr/LFP72W9UuXJlq2jRokn+uWTJkskel5D50KFDlmVZVv/+/S1JVrdu3ay9e/daX3/9tfXII49YefLkSfK42bNnW5Ksdu3aWXv37rW+//57a8KECVZoaKjVqFEjKz4+3rpy5YpVqlQpKyQkxDp48KBlWZZ18uRJK3fu3Fa+fPms06dPp+m/I08pUaKE9eqrr5qO4bP+/vtvS5K1du1a01GSoV/p15v97DeiX9OPfnWfBQsWWIGBgaZjwEY9e/a0GjVqZDpGElyXuC750nXppZdessqXL286hqM0adLE6t69u+kYgN9Zt26dJcn6+++/TUdJxDWfa74vXfP37dtnSUr8c4YZf/zxhyXJ2rRpk+kojsM8kmvAzX72G3ENSD/mkZnHeZWuoqvci/OqPZin01V0lXsxT884+ol+op/ci37yS7/4/QL5vffea40dO9Z0jCQWL15sZc+e3ZJkSbLy5s1rvffee9bHH39sZcuWzQoKCrIs61q5NmzY0HrqqaesgICAxMc/9NBD1tmzZxN/v7Q+LrVyfe211yxJVuPGjdP8M8TExFivvvqqlS9fPkuSlS9fPuu5555LLNyEwciN/86oqCjr+eefT8yY8H+9e/e2oqKikvxMPXv2tDp37mwFBQUlPq5t27bW5cuX0/1n6e4Ly9WrV62ePXsm+ZkaNGhgzZ8/P8njLMuy3nzzTStLliyJjwsKCrJ69+5t/fnnn5ZlWdaAAQMsSdaIESOS/DvnzZtnSbIefvjhW/4cnpQvXz5rxowZpmP4LCcvkNOv9OvNfvYb0a/pR7+6z8KFCy2Xy2U6Bmw0ZMgQq2LFiqZjJMN1ieuSr1yXevfubdWvX990DEdhgRwwY+/evZYk64cffjAdJQmu+VzzfeWav3HjRktSkv+dwfPOnDljSbI2b95sOorjMI/kGnCzn/1GXAPSj3lk5nFepavoKvfivGoP5ul0FV3lXszTM45+op/oJ/ein/wSC+RVq1a1Bg0aZDpGMmfPnrU+++wz69tvv7Xi4+OTfP3777+3LOtauTZt2tSyLMv666+/rPXr1ye+U+V6aX1capYtW2ZJspYuXZqhn+Wvv/5K/M99+/a1ihQpcstf8/vvv1vr1q2ztmzZkuTXp+Tvv/+2tmzZYp05cybF76flz9JTfv75Z2v16tW3fIfXP//8Y23dutVavXp14ru4vFFsbKwVEBBgLV682HQUn+XkBXL69dboV/vQr7DT4sWLLUlJ/ncN7/bGG29Yd999t+kYKeK6xHXJF65Lbdq0SXLXC7BADpjy448/WpKsXbt2mY6SDNd8rvm+cM1ftGiRFRAQYMXGxpqO4td+//13S5K1ZcsW01Ech3nkrXENsI+/XQOYR9qD82ra0FX28beu4rxqD+bpaUNX2cffuop5esbRT2lDP9mHfoIf+MVlWZYlP9a8eXPdfvvtmjdvnuko6XbbbbepSpUqioiIsOVxqWnRooUiIyP1448/Kigo6JaPv3LliurXr6/q1atr8uTJiV+/dOmSKlSooNKlS+uTTz7JUBZ4l7Nnzyp//vzatGmT6tWrZzqOTzp//rxy586ttWvXqkmTJqbjJEG/3hr9ioyiX91r6dKlatOmjWJjYxUYGGg6Dmzw7rvvqk+fPrp06ZLpKBnCdQlOV69ePZUqVUrTp083HcUxmjZtqsKFC2v27NmmowB+5dKlS8qePbtWr16t5s2bm46Tblzz4XQzZszQK6+8orNnz5qO4td+//13FSxYUFu3blWdOnVMx3EU5pG3xjUAGcU80h6cV9OGrkJGcV61B/P0tKGrkFHM0zOOfkob+gkZRT/5pV9v3RI+7rbbbtOff/5pOoYjjR49WidPntSaNWv05ptvpumiIklZs2ZV3rx5NW3aNJ0/f14tWrTQuXPnNG/ePJ08eZIX0P1IwpPzfPnyGU4CE+jX1NGvyCz61b0CAgIkSfHx8SyQ+4h8+fLp8uXLunLlirJmzWo6juNwXUJm/fnnn7rttttMxwAAZcuWTVmyZGFZIBVc85FZZ8+e5ZrvAAn3BHK5XIaTOA/zyNRxDUBmMY+0B+fVm6OrkFmcV+3BPP3m6CpkFvP0jKOfbo5+QmbRT/7J7xfIb7/9dh06dMh0jAy544470vSXNq2Pu9E777yjixcvqkePHurVq1e6fu2CBQs0ZswYffbZZ3r33XeVLVs2VaxYUStXruSuKH7k9OnTkq79PYP/oV9TR78is+hX90pYGo+PjzecBHYpWLCgJOnUqVMqVqyY4TTpx3UJTnf69GkVKFDAdAwAkHTtjJxwXvY2XPPhdL/99hvXfAdggTx1zCNTxzUAmcU80j6cV1NHVyGzOK/ag3n6zdFVyCzm6RlHP90c/YTMop/8k8tKmDb6qbfeeksjRozgnd5udP78eeXIkSPxbp7wH3PnzlXfvn116dIlXtBwk/Pnzyt37txau3atmjRpYjpOEvSr+9Gv/ot+da9Vq1apZcuWunTpksLCwkzHgQ3OnDmj22+/XRs3blT9+vVNx/FZXJf804ULF5QzZ06tWrVKDz/8sOk4jtG0aVMVLlyYO3MABjz00EMqVaqUZsyYYTqKz+Ka77+aN2+u/Pnz67333jMdxa+dOnVKhQoV0vbt2xUeHm46jqMwj3Q/rgH+i3mkfTivuh9d5b84r9qDebpn0FX+iXl65tBPnkE/+Sf6yW/96vd/04sWLao///xTFy5cMB3FZ+XKlYuLip/68ccfVbRoUYaJfop+dT/61X/Rr+6V8PeKO5D7jgIFCih79uw6ceKE6Sg+jeuSf/rxxx8lXTv7AYATFClSJLGb4B5c8/3XiRMnuOY7AHcgTx3zSPfjGuC/mEfah/Oq+9FV/ovzqj2Yp3sGXeWfmKdnDv3kGfSTf6Kf/Jff/20vUqSIJPFEHXADnqT7N/oVcB/61b1YIPdN99xzj3766SfTMQCfkzCoveeeewwnAYBrWMgB3MOyLP3888+J8x6YwwJ56phHAu7DPNI+nFcB9+C8ai/m6YB7ME/PPPoJcA/6yX+xQM5AEXCbEydO8CTdj9GvgPvQr+7FArlvKlKkCHckANzgxIkTKlCggLJly2Y6CgBI+t9CTsKCJQB7/Pbbb7p8+TLLgw7AAnnqmEcC7sM80j6cVwH34LxqL+bpgHswT888+glwD/rJf/n9Anm2bNl0++2369ixY6ajAD6HO1L4N/oVcB/61b1YIPdNRYsW5ZoEuMHx48e5JgFwlHvvvVdXr17VqVOnTEcBfMrx48cl8TG2TsACeeqYRwLuwzzSPpxXAffgvGov5umAezBPzzz6CXAP+sl/+f0CuSSVLl1a3377rekYgE/566+/dOrUKZUpU8Z0FBhEvwL2o1/dLzAwUBIL5L4m4ZrE3Z0Aex04cIBrEgBHSeikAwcOGE4C+JYDBw4oR44cuuuuu0xH8XsskN8c80jAfswj7cV5FXAPzqv2Yp4OuAfz9MyjnwD3oJ/8FwvkksqVK6f9+/ebjgH4lH379kmSypYtazgJTKJfAfvRr+6XcAfyuLg4w0lgp3LlyunChQt8lDlgs2+//ZZrEgBHyZs3rwoVKsRzUcBmBw4cULly5VhadgAWyG+OeSRgP+aR9uK8CrgH51V7MU8H3IN5eubRT4B70E/+iwVyXRt4fPvttywJATY6cOCA8uXLpzvvvNN0FBhEvwL2o1/dL2GBnDuQ+5ayZcvK5XLx4hxgo9OnT+uPP/5QuXLlTEcBgCTKlSvHHR0Bm+3fv59rvkOwQH5zzCMB+zGPtB/nVcB+nFftxTwdsB/zdHvQT4D96Cf/xgK5rj1Jv3Llio4dO2Y6CuAzEt7lDf9GvwL2o1/djwVy35QjRw4VLVqUF+cAGyUMaPlIOwBOw91nAXtZlsVdiByEBfKbYx4J2I95pP04rwL24rxqP+bpgP2Yp9uDfgLsRz/5NxbIJZUuXVqBgYE8UQdsdODAAZ6kg34F3IB+dT8WyH0XL84B9vr22291xx13KH/+/KajAEASZcuW1eHDhxUdHW06CuATfv31V/3999+8iOQQLJDfHPNIwH7MI+3HeRWwF+dV92CeDtiLebp96CfAXvSTf2OBXFLWrFlVunRpffnll6ajAD4hKipKkZGRqlSpkukoMIx+BexFv3oGC+S+q1KlSlyTABt9+eWXqly5sukYAJBM5cqVFR0drcjISNNRAJ+wa9cuBQUF6cEHHzQdBWKB/FaYRwL2Yh7pHpxXAXtxXnUP5umAvZin24d+AuxFP/k3Fsj/q2bNmtqxY4fpGIBP2L17t6KiolS7dm3TUeAA9CtgH/rVMwIDAyWxQO6LwsPD9fPPP+uXX34xHQXwCdu3b1etWrVMxwCAZEqUKKH8+fPzXBSwyfbt21W+fHnlyJHDdBSIBfK0YB4J2Id5pHtwXgXsxXnVPZinA/Zinm4f+gmwF/3k31gg/6/w8HB9/fXXunr1qukogNfbsWOHChYsqKJFi5qOAgegXwH70K+ekXAH8ri4OMNJYLeqVasqODhYO3fuNB0F8HrHjx/X6dOnFR4ebjoKACTjcrlUo0YNrvmATXbs2ME130FYIL815pGAfZhHugfnVcBenFfdg3k6YB/m6fainwD70E9ggfy/wsPDFRUVpb1795qOAni9HTt2cDcKJKJfAfvQr56RsEDOHch9T7Zs2VS+fHkGSoANtm/frtDQUD7GHIBjhYeHa/v27aZjAF7v0qVL2rdvHy8iOUjCAjlSxzwSsA/zSPfhvArYg/Oq+zBPB+zDPN1e9BNgH/oJLJD/V9GiRVWoUCE+KgzIJMuy9MUXX/AkHYnoV8Ae9KvnsEDu28LDw7kmATbYsWOHKleurCxZspiOAgApqlmzpn777TedOHHCdBTAq+3atUuxsbGqWbOm6Sj4r4RPywoKCjKcxLmYRwL2YB7pXpxXAXtwXnUv5umAPZin249+AuxBP4EF8uvUqlVLmzdvNh0D8Gr79+/X2bNnuSMFkqBfgcyjXz2HBXLfVrt2bUVGRurcuXOmowBebcuWLVyTADha5cqVFRYWpk2bNpmOAni1zZs3q1ixYipcuLDpKPivhAXyhOeuSBnzSCDzmEe6F+dVwB6cV92LeTpgD+bp9qOfAHvQT2DCeJ0mTZpoy5Ytunz5sukogNeKiIhQ/vz59eCDD5qOAgehX4HMo189hwVy39aoUSMFBATos88+Mx0F8FonTpzQ0aNH1bRpU9NRACBVWbJkUd26dbV27VrTUQCvFhERwTXfYRIWyAMDAw0ncTbmkUDmMY90L86rgD04r7oX83Qg85inuwf9BGQe/QSJBfIkmjVrpqioKG3dutV0FMBrRUREqFmzZtwBB0nQr0Dm0a+ek/AifMKL8vAtOXPmVPXq1RUREWE6CuC1Vq9erZw5c/LRwAAcr2nTplq/fr1iYmJMRwG80pkzZxQZGcmLSA6T8GZnFshvjnkkkHnMI92P8yqQOZxX3Y95OpB5zNPdg34CMo9+gsQCeRIFCxZUuXLluLgAGfTPP//oiy++4Ek6kqFfgcyhXz2LO5D7vqZNm2rt2rWyLMt0FMArrV27Vg0bNlRwcLDpKABwU82aNdM///yjXbt2mY4CeKWIiAgFBQXpoYceMh0F1+EO5GnDPBLIHOaRnsF5FcgczquewTwdyBzm6e5DPwGZQz9BYoE8mWbNmmn16tWmYwBeacOGDYqPj1fjxo1NR4ED0a9AxtGvnsUCue9r1qyZfvvtN0VGRpqOAnidhLs4skQAwBsUL15c9913H8uDQAatXbtWderUUfbs2U1HwXVYIE875pFAxjGP9AzOq0DmcF71DObpQMYxT3cv+gnIOPoJCVggv8HDDz+s48eP69ChQ6ajAF5n5cqVqlq1qvLly2c6ChyIfgUyjn71LBbIfd+DDz6oO++8UytWrDAdBfA6GzZs0KVLlxgoAfAazZs355oPZEB0dLTWrVun5s2bm46CG7BAnnbMI4GMYx7pOZxXgYzhvOo5zNOBjGOe7l70E5Bx9BMSsEB+g5o1a6pQoUJavHix6SiAV4mOjtann36qdu3amY4Ch6JfgYyhXz2PBXLf53K51KZNGy1cuNB0FMDrLFq0SDVq1NBdd91lOgoApEmbNm108OBBHTx40HQUwKusX79ef//9t1q3bm06Cm6QsECe8NwVqWMeCWQM80jP4rwKZAznVc9hng5kHPN096KfgIyjn5CACeMNAgIC9Pjjj3NxAdJp7dq1PEnHTdGvQMbQr57HArl/aNeunQ4fPqwDBw6YjgJ4jaioKK1YsYIlAgBepVatWrr77rtZHgTSafHixapZs6buuece01Fwg4TnqtyB/NaYRwIZwzzSszivAhnDedWzmKcD6cc83TPoJyD96CdcjwXyFLRv315Hjhzh4gKkw+LFixUeHq67777bdBQ4GP0KpB/96nkJL8In3NUNvinhxQVenAPSbu3atbpw4YLatGljOgoApJnL5VLr1q21aNEi01EAr8GLSM6W8FyVBfK0YR4JpB/zSM/ivAqkH+dVz2OeDqQf83TPoJ+A9KOfcD0WyFNQo0YN3XPPPTxRB9Lo6tWrWrlypdq3b286ChyOfgXSh341IygoSJIUGxtrOAncyeVy6fHHH9dHH31kOgrgNRYvXqxatWqpUKFCpqMAQLokLA/u27fPdBTAK0REROjChQt6/PHHTUdBClggTx/mkUD6MI80g/MqkD6cVz2PeTqQfszTPYN+AtKPfsL1WCBPgcvlUtu2bbVgwYLEj4MEkLqVK1fq0qVLPEnHLdGvQPrQr2aEhIRIkqKjow0ngbu1b99ex44d01dffWU6CuB4Fy5c0IoVK1giAOCVqlWrpiJFiuiDDz4wHQXwCgsWLFDt2rV5EcmhWCBPH+aRQPowjzSD8yqQPpxXzWCeDqQd83TPop+AtKOfcCMWyFPRvXt3/fjjj9q0aZPpKIDjzZo1S82bN9cdd9xhOgq8AP0KpB39akZoaKikax+DCd9WtWpVlS9fXrNnzzYdBXC8hQsXKjY2Vk888YTpKACQbi6XS08//bTeffddznjALZw9e1YrVqxQt27dTEdBKlggTz/mkUDaMY80g/MqkHacV81hng6kHfN0z6KfgLSjn3AjFshTUbJkSdWsWVOzZs0yHQVwtBMnTmjjxo3q0aOH6SjwEvQrkDb0qzncgdy/dOvWTR999JEuXLhgOgrgaLNmzVKbNm2UJ08e01EAIEO6deumc+fOaeXKlaajAI727rvvKkuWLGrTpo3pKEhFwgJ5QAAv76QV80ggbZhHmsV5FUgbzqtmMU8H0oZ5uufRT0Da0E+4ERPGm+jZs6eWL1+uM2fOmI4CONacOXNUoEABNWvWzHQUeBH6Fbg1+tWcwMBABQYGskDuJ7p06aL4+HgtWrTIdBTAsfbv36/du3ezRADAqxUuXFhNmzZleRC4hblz56pTp04KCwszHQWpiI+Pl8QdyNOLeSRwa8wjzeK8CqQN51WzmKcDt8Y83Qz6Cbg1+gkpYYH8Jtq1a6ds2bJp/vz5pqMAjhQXF6f3339f3bp1U3BwsOk48CL0K3Bz9Kt5ISEhLJD7idy5c+uxxx7jxTngJmbNmqUSJUqoTp06pqMAQKb07NlTn332mY4dO2Y6CuBI27Zt03fffafu3bubjoKbSLgDOQvk6cM8Erg55pHOwHkVuDnOq+YxTwdujXm6GfQTcGv0E1LCAvlNZM2aVR07dtSMGTMSh7IA/ueTTz7RyZMneZKOdKNfgZujX81jgdy/9OrVS1999ZV2795tOgrgOP/884/mz5+vHj16yOVymY4DAJny8MMP684779TMmTNNRwEcafr06apcubIqVKhgOgpuIi4uTi6Xi7NZOjGPBG6OeaQzcF4Fbo7zqjMwTwdSxzzdLPoJSB39hNSwQH4LAwYM0I8//qjly5ebjgI4zsSJE/Xoo4/q3nvvNR0FXoh+BVJHv5oXEhKiqKgo0zHgIXXq1FHVqlU1ceJE01EAx3nnnXcUHx+vnj17mo4CAJkWFBSkvn37aubMmTp//rzpOICj/Pjjj1q6dKkGDhxoOgpuIS4ujruPZxDzSCB1zCOdgfMqkDrOq87BPB1IHfN0s+gnIHX0E1LDAvkt3HvvvWrZsqXGjRtnOgrgKJ9//rl27dqlF154wXQUeCn6FUgZ/eoMoaGh3IHcz/Tv318ff/yxjh8/bjoK4BgxMTGaNm2aevToody5c5uOAwC26N27t+Lj4zV37lzTUQBHmTx5sgoWLKg2bdqYjoJbYIE845hHAiljHuksnFeBlHFedRbm6UByzNOdgX4CkqOfcDMskKfBCy+8oN27d2vnzp2mowCOMWHCBFWtWlU1a9Y0HQVejH4FkqNfnSEkJIQFcj/Ttm1bFSpUSNOmTTMdBXCMRYsW6eTJk+rbt6/pKABgm9y5c6tbt26aNGmSYmJiTMcBHOHcuXOaO3euBg4cqODgYNNxcAvx8fEKCOClnYxiHgkkxzzSWTivAslxXnUe5ulAcszTnYF+ApKjn3AzTBnToFatWqpWrRofcQH815EjR7Rq1SoNHjzYdBR4OfoVSIp+dQ4WyP1PUFCQnn/+ec2ZM0fnzp0zHQcwzrIsTZo0SW3btuUjzAH4nP79++v06dP6+OOPTUcBHOHtt99WUFCQevToYToK0oA7kGcO80ggKeaRzsR5FUiK86rzME8HkmKe7hz0E5AU/YRbYYE8jV588UUtX75cBw4cMB0FMG706NG677779Mgjj5iOAh9AvwL/Q786Bwvk/qlHjx4KCgrSlClTTEcBjFu1apUiIyP14osvmo4CALYrWrSo2rZtqzFjxig+Pt50HMCoixcvavLkyXr22WeVI0cO03GQBiyQZx7zSOB/mEc6E+dV4H84rzoX83Tgf5inOwv9BPwP/YRbYYE8jVq3bq1y5cppxIgRpqMARh09elQfffSRRowYwQsVsAX9ClxDvzpLaGgoC+R+KGfOnHrhhRc0adIk/fHHH6bjAMZYlqXhw4fr0UcfVcWKFU3HAQC3GDlypA4fPqzFixebjgIY9eabb+rKlSsaMGCA6ShIIxbIM495JHAN80hn47wKXMN51bmYpwPXME93HvoJuIZ+QlqwQJ5GLpdLI0eO1CeffKLdu3ebjgMYM2zYMN1///1q37696SjwEfQrcA396izcgdx/Pf/88woLC9PkyZNNRwGMWbZsmSIjIzV8+HDTUQDAbUqUKKEOHTpo2LBhio2NNR0HMOL8+fOaOHGiBg4cqPz585uOgzSKj49n0TOTmEcC1zCPdDbOqwDnVW/APB1gnu5U9BNAPyFtWCBPh1atWqlq1aoaNWqU6SiAEQcPHtSSJUs0cuRIBQRQH7AP/Qp/R786Dwvk/it79uwaNGiQ3nzzTZ05c8Z0HMDj4uPjNWrUKLVr107ly5c3HQcA3Gr48OE6ceKEFixYYDoKYMTkyZMVHx+v/v37m46CdIiJiVFQUJDpGF6PeST8HfNI78B5Ff6O86rzMU+Hv2Oe7lz0E/wd/YS0YiKQTiNHjtSqVau0c+dO01EAj3vppZdUrlw5tW7d2nQU+CD6Ff6MfnWekJAQRUVFmY4BQ/r06aMcOXJo7NixpqMAHvfRRx/p4MGDGjFihOkoAOB29913n5566imNHDmSNw/C75w9e1ZTpkzRoEGDlCdPHtNxkA6xsbEskNuEeST8GfNI78B5Ff6M86r3YJ4Of8Y83dnoJ/gz+glpxQJ5OjVp0kT16tXTwIEDZVmW6TiAx2zatEmffvqpXn/9dblcLtNx4IPoV/gr+tWZuAO5fwsLC9Pw4cM1ffp0HT161HQcwGMuX76soUOHqmvXripZsqTpOADgEcOHD9dvv/2mqVOnmo4CeNSwYcOULVs2Pf/886ajIJ1iYmIUHBxsOoZPYB4Jf8U80rtwXoW/4rzqPZinw18xT3c++gn+in5CerBAngHTpk3T3r17NX/+fNNRAI+Ii4vTgAED1LJlSzVp0sR0HPgw+hX+N+wGQAAAIABJREFUhn51rtDQUBbI/VzPnj1VsmRJvfDCC6ajAB4zfvx4/f3333r11VdNRwEAj7nrrrv04osv6tVXX9Xp06dNxwE84uDBg5o1a5bGjh2r7Nmzm46DdOIO5PZiHgl/wzzS+3BehT/ivOp9mKfDHzFP9w70E/wR/YT0YIE8A0qXLq3u3bvr3//+t/755x/TcQC3e+edd3T48GFNmDDBdBT4OPoV/oZ+dS7uQI7AwEBNmTJFq1at0tq1a03HAdzu119/1YQJEzRs2DDdcccdpuMAgEcNHjxYefPm1SuvvGI6CuARAwYMUPny5dWpUyfTUZAB3IHcXswj4W+YR3onzqvwN5xXvQ/zdPgb5uneg36Cv6GfkF4skGfQq6++qqioKI0fP950FMCtzp07p2HDhqlfv34qUaKE6TjwA/Qr/AX96mwhISGKiooyHQOG1atXT48++qgGDhyomJgY03EAt3rxxRdVsGBB9evXz3QUAPC4rFmzasyYMZo3b5727NljOg7gVsuWLdOGDRs0ZcoUBQTw8oA34g7k9mMeCX/BPNJ7cV6FP+G86r2Yp8OfME/3LvQT/An9hPTixJ1B+fPn17BhwzRx4kQdOXLEdBzAbf7zn/8oICCAuxrAY+hX+Av61dm4AzkSTJgwQSdOnNCUKVNMRwHcZuPGjVq0aJEmTZqk0NBQ03EAwIgnnnhC1atXV9++fRUXF2c6DuAWFy9e1MCBA/Xkk0+qVq1apuMgg7gDuf2YR8JfMI/0bpxX4Q84r3o/5unwB8zTvRP9BH9APyEjWCDPhH79+ql06dJ6+umnFR8fbzoOYLtdu3bpnXfe0ZQpU5QrVy7TceBH6Ff4OvrV+UJDQ1kghySpWLFieumllzR8+HD98MMPpuMAtrty5Yp69+6thx9+WK1atTIdBwCMcblcevvtt/XNN9/o//7v/0zHAdzilVde0YULFzRx4kTTUZAJsbGxLJC7AfNI+Drmkd6P8yr8AedV78c8Hb6Oebr3op/g6+gnZBQL5JkQFBSkOXPmaM+ePXrnnXdMxwFsFRUVpe7du6tJkyZ64oknTMeBn6Ff4cvoV+/AHchxvSFDhqhkyZLq2bOnLMsyHQew1YgRI3TmzBm9/fbbpqMAgHFly5bV4MGDNXToUB0/ftx0HMBWu3fv1rRp0zRx4kTdfvvtpuMgE2JiYhQUFGQ6hs9hHglfxjzSd3BehS/jvOo7mKfDlzFP9270E3wZ/YSMYoE8k8qXL68BAwZo8ODB+vXXX03HAWwzevRo/fTTT9zFAMbQr/BV9Kt3YIEc1wsKCtLMmTP1+eefa968eabjALbZv3+/Jk+erPHjx6tQoUKm4wCAI7z00ksqUqSI+vTpYzoKYJvY2Fg988wzql27tp566inTcZBJ3IHcfZhHwlcxj/QtnFfhiziv+hbm6fBVzNO9H/0EX0U/ITNYILfBiBEjVKBAAf3rX/8yHQWwxb59+zRu3DiNGTNGRYsWNR0Hfox+ha+hX71HSEiIoqKiTMeAg1SpUkX9+vXTiy++qJMnT5qOA2RadHS0nn76aVWvXl29evUyHQcAHCM0NFQzZ87U+vXr9f7775uOA9hi7NixOnLkiGbPni2Xy2U6DjKJO5C7F/NI+Brmkb6H8yp8EedV38M8Hb6GebrvoJ/ga+gnZBYL5DbImjWr5syZozVr1mjmzJmm4wCZcuXKFXXs2FHVqlXj7gUwjn6FL6FfvQt3IEdKXnvtNd12223q2rWr4uPjTccBMuWVV17R0aNHNWfOHF6YA4Ab1KpVS/369VO/fv104sQJ03GATPnyyy81atQojRkzRsWKFTMdBzaIiYnhDuRuxDwSvoR5pO/ivApfwnnVdzFPhy9hnu5b6Cf4EvoJmcUCuU3q1KmjwYMHa+DAgTp8+LDpOECGDRo0SL/++qvmz5+vwMBA03EA+hU+g371LiyQIyXZsmXTggULtG3bNk2ePNl0HCDDtm3bpokTJ2rKlCkqXry46TgA4Ejjxo1T0aJF1blzZ8XFxZmOA2TIxYsX1aVLF9WvX1/PPfec6TiwSWxsLAvkbsY8Er6CeaRv47wKX8B51bcxT4evYJ7ue+gn+Ar6CXZggdxGI0eOVNmyZdWxY0cWjuCVIiIiNGPGDM2YMUP33HOP6ThAIvoV3o5+9T4skCM1lSpV0vDhw/XSSy8pMjLSdBwg3c6dO6fOnTurVatW6t69u+k4AOBYoaGh+vDDD/X1119r9OjRpuMAGdKnTx+dO3dO7777Lncg8iExMTEKCgoyHcPnMY+Et2Me6fs4r8IXcF71fczT4e2Yp/su+gnejn6CXVggt1FQUJDmz5+vo0eP6uWXXzYdB0iX06dPq2vXrurSpYueeOIJ03GAJOhXeDP61TuFhIQoKirKdAw41JAhQ1S9enV17NhRly5dMh0HSDPLstSjRw/Fx8dr9uzZpuMAgOOVLl1ar7/+ul599VXt3LnTdBwgXRYuXKj58+dr7ty5uuOOO0zHgY24A7lnMI+EN2Me6T84r8KbcV71H8zT4a2Yp/s++gnein6CnVggt1nx4sU1bdo0TZgwQZ988onpOECaxMTEqF27dsqVK5emTZtmOg6QIvoV3oh+9V6hoaHcYQypCggI0Pvvv6/ff/9dvXr1Mh0HSLNJkyZpxYoVmj9/vvLmzWs6DgB4hX79+qlJkyZq3769fv/9d9NxgDQ5dOiQevbsqb59+6pFixam48Bm3IHcc5hHwhsxj/Q/nFfhjTiv+hfm6fBWzNN9H/0Eb0U/wU4skLtB165d1bNnT3Xp0kWHDh0yHQe4pRdeeEHffPONli1bphw5cpiOA6SKfoW3oV+9V0hICAvkuKm7775bixYt0qJFizR16lTTcYBb2rx5s4YMGaIxY8booYceMh0HALyGy+XS/PnzFRoaqtatWysmJsZ0JOCmLly4oLZt26pMmTKaMGGC6Thwg5iYGO5A7kHMI+FtmEf6H86r8DacV/0T83R4G+bp/oN+grehn2A3Fsjd5K233lL58uXVunVr/fPPP6bjAKn66KOPNG3aNE2fPl1lypQxHQe4JfoV3oJ+9W4hISGKiYlRfHy86ShwsAYNGmjUqFEaNGiQtm7dajoOkKrTp0+rY8eOevjhhzVo0CDTcQDA6+TJk0fLli1TZGSkhgwZYjoOkCrLstStWzf9+eef+vjjjxUSEmI6EtwgNjaWO5B7GPNIeAvmkf6L8yq8BedV/8Y8Hd6Cebr/oZ/gLegnuAML5G4SHBysjz76SOfOnVP37t1lWZbpSEAy+/fvV48ePdS/f3916dLFdBwgTehXeAP61fslDK65Yw9uZejQoWrRooU6dOigkydPmo4DJBMVFaXWrVsrV65cmj9/vlwul+lIAOCVypUrp5kzZ2ry5MlauHCh6ThAil5//XUtX75cixYtUqFChUzHgZtwB3LPYx4Jb8A8EpxX4Q04r4J5OpyOebr/op/gdPQT3IUFcje66667tHDhQn366ad65ZVXTMcBkjh16pRatmypKlWqaPz48abjAOlCv8LJ6FffkLBAHhUVZTgJnM7lcum9995T7ty51bJlS128eNF0JCBRwl2dvvvuOz6+HABs0KlTJ/Xr10/dunXTF198YToOkMTSpUv18ssv64033lDdunVNx4EbxcbGskBuAPNIOBnzSCTgvAon47wKiXk6nI15un+jn+Bk9BPciQVyN6tXr55mzpyp0aNH6+233zYdB5AkXb58WY899piCg4O1ZMkSXnCAV6Jf4UT0q+8IDQ2VJEVHRxtOAm+QM2dOrVmzRqdOnVK7du0UGxtrOhIgSXrllVe0ZMkSLVmyRKVKlTIdBwB8wqRJk9S4cWO1atVK33//vek4gCRpz549euqpp9S9e3f179/fdBy4WUxMjIKCgkzH8EvMI+FEzCNxI86rcCLOq7ge83Q4FfN00E9wKvoJ7sQCuQc8/fTTevnll/Xcc8/ps88+Mx0Hfi4uLk5PPvmkjh8/roiICOXPn990JCDD6Fc4Cf3qW7JkySJJunr1quEk8BZFixbVqlWrtG3bNv3rX/8yHQfQvHnzNHr0aL355ptq1KiR6TgA4DMCAwO1YMECFStWTM2aNdMff/xhOhL83IkTJ9SiRQvVqVNH06dPNx0HHhATE8OCqEHMI+EkzCOREs6rcBrOq0gJ83Q4DfN0JKCf4DT0E9yNBXIPGTVqlNq1a6e2bdvqwIEDpuPAjz333HNav369Vq5cqeLFi5uOA2Qa/QqnoF99S9asWSVJV65cMZwE3qRy5cp6//33NWfOHE2YMMF0HPix9evX65lnntHLL7+s3r17m44DAD4nLCxMn3zyiWJiYtSmTRvedAhj/vzzTzVv3lyFChXS4sWLuSu1n4iNjeW/a8OYR8IpmEciNZxX4RScV3EzzNPhFMzTcSP6CU5BP8ETWCD3EJfLpTlz5qhixYpq3Lixjh49ajoS/NDLL7+smTNn6oMPPlD16tVNxwFsQb/CCehX3xMWFibp2scAA+nRunVrTZo0Sf/+9781a9Ys03Hgh3bu3KnWrVurQ4cOGjVqlOk4AOCz7rjjDq1evVoHDhxQ27ZtFRMTYzoS/Mw///yjZs2a6erVq1q5cqWyZ89uOhI8hDuQm8c8Ek7APBK3wnkVpnFeRVowT4dpzNORGvoJptFP8BQWyD0oNDRUK1eu1H333acGDRroxIkTpiPBj0yZMkVjxozR22+/rdatW5uOA9iKfoVJ9Ktv4g7kyIznn39ew4YNU+/evfXhhx+ajgM/sm/fPrVo0UINGzbU3Llz5XK5TEcCAJ9WpkwZRUREaOvWrerQoYNiY2NNR4KfuHLlilq1aqWffvpJa9eu1Z133mk6EjyIO5A7A/NImMQ8EmnFeRWmcF5FejBPhynM03Er9BNMoZ/gSSyQe1i2bNm0atUqFShQQI0aNdKpU6dMR4IfmD59ugYMGKAJEyaoR48epuMAbkG/wgT61XdxB3Jk1ogRI/Tiiy/qqaee0pIlS0zHgR84evSomjRpokqVKmnhwoUsFQGAh1SrVk0RERFat26dunfvrvj4eNOR4OOio6PVpk0bHTx4UJs2bdL9999vOhI8LDo6WiEhIaZjQMwjYQbzSKQX51V4GudVZATzdHga83SkFf0ET6Of4GkskBuQK1cuRUREKDg4WA0bNtTp06dNR4IPmz17tvr166exY8dq4MCBpuMAbkW/wpPoV9/GAjnsMHbsWPXq1UudO3fW6tWrTceBDzty5Ijq1aunEiVK6NNPP1WWLFlMRwIAvxIeHq6PP/5YCxcu1L/+9S+WcuA2UVFRateunXbs2KF169apdOnSpiPBABbInYV5JDyJeSQyivMqPIXzKjKDeTo8hXk60ot+gqfQTzCBBXJDChQooA0bNiguLk5169bVzz//bDoSfNCbb76pXr16adiwYRoyZIjpOIBH0K/wBPrV92XNmlUul4sFcmSKy+XSW2+9pU6dOql169bcmQBusW/fPtWpU0dFihTRqlWrEt8AAwDwrKZNm2rRokWaN2+eunXrpri4ONOR4GMuX76sRx55RFu2bFFERIQqVqxoOhIMYYHceZhHwhOYRyKzOK/C3TivIrOYp8MTmKcjI+gneAL9BFNYIDeoUKFC+vzzzxUWFqbatWvr+++/Nx0JPmTcuHHq37+/xo8fr+HDh5uOA3gU/Qp3ol/9g8vlUpYsWXTlyhXTUeDlAgICNGvWLPXp00dPPPGE5s6dazoSfMiePXvUoEEDlSpVSmvXrlXOnDlNRwIAv/boo49q7dq1Wrp0qVq3bq2oqCjTkeAjLl68qJYtW+qrr77SunXrVKNGDdORYBAL5M7EPBLuxDwSduG8CnfhvAq7ME+HOzFPR2bQT3An+gkmsUBuWIECBbRlyxbdeeedql27tg4cOGA6EnzA8OHDNXToUE2ZMkWDBg0yHQcwgn6FO9Cv/iVr1qzcgRy2cLlcmjRpkkaPHq0ePXpo6tSppiPBB2zbtk0NGjRQ9erVFRERoRw5cpiOBACQVK9ePa1Zs0ZbtmzRY489xhsSkWnnzp1To0aNdOjQIW3dulXVqlUzHQmGsUDuXMwj4Q7MI2E3zquwG+dV2I15OtyBeTrsQD/BHegnmMYCuQPkzp1bGzZsUOnSpVW3bl1t2bLFdCR4qdjYWD377LMaPXq05s6dq+eee850JMAo+hV2oV/9U1hYGAvksNXgwYM1duxY9e/fX88//7wsyzIdCV5q6dKlatq0qZo2bapPPvlEWbNmNR0JAHCd2rVra9OmTfrqq69Uv359/fHHH6YjwUudOHFC4eHhOnXqlLZt26ayZcuajgTDLMtSTEwMC+QOxjwSdmEeCXfivAq7cF6FOzFPh12Yp8Nu9BPsQj/BCVggd4hs2bJpzZo1atKkiZo0aaIPPvjAdCR4mQsXLqhVq1aaP3++li9frq5du5qOBDgC/YrMol/9V1hYGHfgge0GDx6suXPnasaMGWrfvr2uXr1qOhK8zNSpU9WuXTv17NlTCxYsUHBwsOlIAIAUVKpUSdu2bdNvv/2mGjVq6MiRI6Yjwct89dVXqlGjhoKCgrR9+3YVL17cdCQ4QHR0tCSxQO5wzCORWcwj4QmcV5FZnFfhCczTkVnM0+Eu9BMyi36CU7BA7iChoaFasGCBhg4dqi5dumjEiBG8SwlpcvLkSdWpU0eRkZHaunWrWrRoYToS4Cj0KzKKfvVvLJDDXZ5++mmtWbNG69evV4MGDXT27FnTkeAF4uLi1KdPH73wwguaPHmypk6dqsDAQNOxAAA38cADD+iLL75Q3rx5VbNmTW3bts10JHiJ5cuXq169eipfvry2b9+uu+66y3QkOAQL5N6DeSQyinkkPInzKjKK8yo8iXk6MoJ5OjyBfkJG0E9wGhbIHcblcmnEiBH6v//7P7322mvq2rUr71LCTX3xxReqUqWK4uLi9OWXX6pSpUqmIwGORL8ivehXZM2aVZcvXzYdAz6qYcOG2rZtm3755RfVrl2buzzhpv766y89/PDDevfdd7V06VI+uhwAvEjBggW1efNm1apVi7vQ4pYsy9L48eP1+OOPq0uXLlq9erVy5sxpOhYchAVy78I8EunFPBImcF5FenBehSnM05EezNPhSfQT0oN+ghOxQO5Qzz77rFasWKEVK1YoPDxcP/74o+lIcKAZM2booYceUsWKFXl3N5BG9CvSgn6FdO0O5CyQw53KlSunXbt2KWfOnKpataqWL19uOhIcKDIyUlWqVNHBgwe1ZcsWPfLII6YjAQDSKVu2bFq2bJn+9a9/qXPnznruuecUExNjOhYc5sKFC3r88cf10ksv6Y033tCMGTMUFBRkOhYcJioqShIL5N6GeSTSgnkkTOK8irS4cOGC2rVrx3kVxjBPR1owT4cJ9BPSgn6CU7FA7mDNmzfX7t27FRsbq8qVK2vdunWmI8Ehrl69qh49eqhPnz4aMGCAVqxYwbu7gXSgX5Ea+hXXCwsL05UrV0zHgI+78847tW3bNnXt2lWtW7fWkCFDFBcXZzoWHOLDDz9UeHi4ChcurN27d6tKlSqmIwEAMigwMFATJ07URx99pLlz56pevXo6ffq06VhwiKNHj6pmzZpas2aNxo4dq4EDB5qOBIdKuAN5aGio4SRIL+aRSA3zSDgF51XcTMJ5dcuWLYqIiOC8CmOYp+NmmKfDJPoJN0M/wclYIHe4++67Tzt37lSTJk308MMPa/To0YqPjzcdCwYdO3ZMNWvW1LJly7Rq1Sq9/vrrCgjgrzKQXvQrbkS/4kZZs2blDuTwiNDQUE2dOlWzZs3S1KlT1bx5c505c8Z0LBh09epV9e3bV507d1afPn20ceNGFSxY0HQsAIANOnTooF27dunMmTOqVKmStm3bZjoSDPv4449VpUoVZc+eXYMHD9bgwYM1cOBAXb161XQ0OFDCAjl3IPdOzCNxI+aRcCLOq7jR9efVb775Rg0bNjQdCX6OeTpuxDwdTkE/4Ub0E7wBUwgvkC1bNn344YeaNGmSRo0apQYNGuiXX34xHQsGvPfee6pQoYJcLpf27Nmj5s2bm44EeDX6FQnoV6QkLCyMBXJ4VPfu3fX555/r6NGjKleunNauXWs6Egw4ePCgqlWrpg8++EBLlizR+PHj+ThgAPAxZcqU0e7du1WtWjXVr19fL7/8smJiYkzHgoddunRJPXr0UNu2bdW5c2dt3bpVnTp1Unx8vCZPnqxy5cpp7969pmPCYVgg937MI5GAeSScjPMqpJTPq4ULFzYdC0jEPB0S83Q4E/0E6Vo/Va5cWe+//z79BEdjgdyLPPfcc9q7d6/+/PNPlS1bVh9++KHpSPCQ8+fPq1OnTnr66af19NNPa+fOnbr33ntNxwJ8Bv3qv+hX3ExYWJiuXLliOgb8TOXKlbVv3z498sgjat68uZ555hneyOAnLMvSO++8o6pVqypr1qzau3evHn/8cdOxAABukitXLn3yySeaO3eupkyZovDwcB09etR0LHjInj17VLFiRX366adavny53nrrLYWEhKh48eIqVqyYJOnEiROqWrWqhgwZwsIWErFA7juYR/qv8+fPq2PHjswj4XicV/3bnj17VKFChWTnVcBpmKf7L8uy9PbbbzNPh2PRT/7r+tf7smXLpty5cytnzpymYwGpYoHcy5QpU0a7du3SE088oU6dOqlLly46f/686Vhwo02bNqlcuXLavHmz1q9fr6lTpyo0NNR0LMDn3NivTz/9NP3q4+hX3ErWrFl5Ig8jcubMqZkzZ2r+/PlatGiRqlWrpsjISNOx4EanT59WixYt1KdPH/373//W9u3bE5fHAAC+rUuXLtqzZ49iY2NVqVIlzZ49W5ZlmY4FN4mNjdWYMWNUs2ZN3X333YkvJF7v8ccfV3BwsGJjYxUfH68JEyaoWrVqOnz4sKHUcBIWyH0L80j/kzCPXLVqlcaPH888El6B86p/uf68eunSJW3YsCHZeRVwGubp/idhnt63b19VrFhR27ZtY54OR6Kf/M+Nr/ft2LFDJUuWVNOmTTVmzBjO0XAkFsi9UFhYmOrWrau77rpL69at0wMPPKDly5ebjgWbnTt3Tj169FDDhg1VqVIl7du3Tw0bNjQdC/BpYWFhmjFjhj799FOtWbOGfvVR9CvSKiwsjAVyGNWxY0dFRkYqT548qlq1qoYOHcpd8X1Mwl0IHnjgAR0+fFhbt27V8OHD+Qg7APAzJUuW1K5du/Tss8+qd+/eatSokY4dO2Y6Fmy2d+9eVa1aVa+++qrGjBmj9evX684770z2uJYtWya543hcXJwOHDig8uXLa9y4cYqPj/dkbDgMC+S+h3mkf7hxHjl9+nQNHTpU06dPNx0NSBPOq/7hxvNqgwYN1KJFCxbd4DWYp/u+G+fpW7Zs0TfffKO2bdvq4sWLpuMBqaKffN/NXu+rW7eu4uPj9corr6hly5a8cRyOwwK5l7EsS8OGDdOTTz6p6tWr68iRI2rRooVat26tli1b6tdffzUdETZYuXJl4l0o3n33XS1btky33Xab6ViA32jVqhX96qPoV6QHdyCHExQpUkRbt27VW2+9penTp6tMmTLasGGD6ViwwbFjx9SoUSP16dNHXbp00b59+1SzZk3TsQAAhoSEhGj8+PHavXu3zp07p7Jly2rEiBFJFonhna5cuaIRI0aoRo0aCgsL09dff61BgwbJ5XKl+PiaNWsqb968Sb4WGxur6Oho/ec//1H9+vX1yy+/eCI6HIgFct/FPNJ3pTSPbNSokWJjY9WnTx/16tUr8e824GScV31XaufVatWq6ddff1WNGjX08ccfm44JpAnzdN+V0jy9Vq1aevDBB7VixQpVqVJFx48fNx0TSBX95Ltu9Xpf7dq1JUnx8fFav369ypcvr/3795uKCyTDArkXuXz5sh5//HGNHj1almWpatWqyp07t2bOnKl169bp0KFDKlu2rGbMmKG4uDjTcZEBx48fV6tWrfTII4+oSZMm+u6779SlSxfTsQC/RL/6FvoVGREWFsa7v+EILpdLvXr10sGDB1W6dGk1btxYPXr00JkzZ0xHQwZcuXJFo0aNUpkyZfTXX39p165dmjp1qrJnz246GgDAASpUqKBdu3bpP//5j8aNG6fq1avriy++MB0LGbRq1SqVKVNGU6dO1VtvvaXPP/9cpUqVuumvCQgIUMuWLRUcHJzse/Hx8dq5c6dKlSqld955x12x4WAskPs25pG+5WbzyAIFCqhQoUKSpHnz5umhhx7iOT68BudV33Kz82q1atUkSVevXlXbtm01bNgwWZZlMi6QJszTfcut5um1atVSYGCgfvjhB1WoUEGbN282nBhIHf3kW9L6el+1atUS53wxMTE6efKkKleurHnz5pmIDSTDArmXOHXqlMLDw7Vy5crEjymtUqVK4vcbNWqkAwcOqEePHurfv78qVKigjRs3moqLdLpw4YKGDh2qBx54QD/88IM2btyo2bNnK0+ePKajAX6PfvVu9CsygzuQw2kKFy6sFStWaOHChVq7dq1KlCihcePGcacyL7J48WKVKlVKb7zxhkaNGqWvvvpKlSpVMh0LAOAwwcHBevnll/XNN98oV65cCg8PV6dOnbgTrRf57rvv1LRpU7Vs2VKVK1fWwYMH1atXr1TvOn6jVq1aKTY2NsXvxcTE6NKlS3rmmWf02GOP6ezZs3ZGh8OxQO4fmEd6t7TOIxOWnWJjY7V3716VK1dOe/bsMZQaSB/Oq94vLefV8uXLJzlzjB49Ws2bN9f58+dNRAbSLaV5+oQJE5ine5G0zNOrVaum+Ph4xcbG6tKlS2rYsKHGjRtnKDGQNvST90vP632hoaGqUKFC4j/HxsYqJiZG3bp14xOp4AgskHuBb775RpUqVdLBgwcTXzhwuVw8gXiJAAAgAElEQVRJykW6dpfMN954Q99++61Kliyphg0bqmXLljp27JiJ2EgDy7K0ZMkSlS5dWjNnztTIkSMVGRmpevXqmY4G4Dr0q/ehX2GHsLAwFsjhSO3atdPRo0fVpk0bDR8+XKVLl9aSJUtMx8JNfPPNN6pbt646dOigqlWr6uDBg3rxxRcVFBRkOhoAwMFKliypTZs26dNPP9WuXbt0//33a8iQIbp48aLpaEjFuXPnNGTIED344IM6c+aMtm7dqkWLFunOO+9M1+/TuHHjNJ0Tli9frkGDBmU0LrxQdHS0XC5Xineoh29hHul90juPrF69euKiZnR0tM6ePavw8HB98MEHnowNZArnVe+TnvNqcHCwypcvn/jP8fHx2rhxo6pXr67jx497MjaQKQnz9KFDh2rkyJHM071Aeubp1atXT/x0hLi4OMXHx2vo0KHq0aMHS5lwPPrJ+2T09b769euneDOAefPmqVq1avrpp5/cFRm4JRbIHW7x4sWqUaOGzp49q5iYmMSvFytWTDlz5kzx1xQvXlyLFy/Whg0b9NNPP6lUqVJ65plndPLkSU/FRhps2LBBVapUUYcOHfTQQw/p8OHDGjx4MHePARyMfvUO9CvsEhYWppiYmFTv/AeYtGDBAr333nuaN2+eatSoofbt26tWrVratGmT6Wi4zokTJ/TMM8+oSpUqunLlinbs2KHFixfr7rvvNh0NAOBFWrZsqe+++05jxozRjBkzVKxYMY0bN05Xr141HQ3/denSJY0bN0733XefZs+erfHjx2v37t2qU6dOhn6/7Nmzq169egoMDEzx+0FBQQoMDNTw4cM1d+7czESHl4mOjlZwcHCa72YP78c80jtkZB5ZrVq1JDOnuLg4RUdHq3PnzhoyZEjipxED3oDzqvNl9Lxaq1atJF0WExOjH374gU/HgNcJCwvT4MGD9d133zFPd7CMzNPvuOMOFShQIMnXLMvSe++9p1q1aum3335zd2wgU+gn75DZ1/tq166d4ptaYmNjdfDgQVWoUEEbNmywOzaQJiyQO5RlWRo3bpw6dOig6OjoJEOkoKAg1axZ85a/R4MGDfT111/rrbfeUkREhO677z4NGDBAZ86ccWd03EJERISqVq2qxo0b65577tH+/fv1/vvvJzvUAnAu+tWZ6FfYLWvWrJLEXcjhKJZl6ZVXXlHPnj0VGxur+vXr6/3339f27dsVEhKiBg0aqHHjxvryyy9NR/Vrx48fV9euXVW8eHFt375dH330kb788kvVqFHDdDQAgJcKDg7W888/ryNHjqh9+/YaPny4SpUqpblz5/KGR4MuX76siRMnqmjRohozZoz69u2rY8eO6fnnn091+TutHn300RS/HhAQoOzZs2vbtm0aMWKEAgIY8fuTqKgo3iDvp5hHOlNm5pEVK1ZM9dME3njjDTVv3lznz5+3OzLgNpxXnSmz59Vq1aolucmddG3R6dKlS2rcuLHGjRvnruiAWxQuXJh5ugNldp4eHh6erNNiY2MVGRmp8uXLa8+ePe6IDdiKfnImu17vCw8PT3WGFxMTo/Pnz6tJkyYaN25c4qcqAJ7CdNmBrl69qieffFJDhw6VZVnJisHlcqlKlSpp+r2CgoLUq1cvff/99xo/frwWLVqke++9Vy+++CJ3qPAgy7K0atUqhYeHq3nz5rr99tu1d+9eLV26VKVLlzYdD0AG0K/OQL/CncLCwiRJV65cMZwEuCY6OlpdunTRmDFjJEl58+bV7bffLkmqWbOmNm3apE2bNuny5cuqXr26WrRooe3bt5uM7HeOHDminj17qmTJktq5c6feffddHThwQG3btuUukQAAWxQsWFBvvvmmvv/+ezVu3Fi9e/dWqVKlNGfOHEVFRZmO5zcuXLigSZMmqVixYho+fLi6deum48ePa+TIkf/P3p2HRV3u/x9/DcMqIJhL7oriHm6kCGlaVGJuuZuWggqVmnYUBFRWQXBDS3MJFBEX9IhpLmCaqcfdCEVccM8tFVCQHWaY3x/+5Js54MIw9yyvx3Wd63sOUvM8fa9zf2bueX/uD6ysrFTyGgMHDnzh9FmJRIIWLVqgqKgIb731lkpeh7RLcXExB8j1GPcjNYOq9iNNTEzK/f3S0lIcOHAAnTt3RlpamqrSidSC71c1g6rerzo4OCgdYpLL5SgtLYWvry/Gjx+v9ERNIk3G/XTNoKr9dEdHR6WDmSUlJcjMzISTkxPWr1+vynSiKsP1STOo+vs+KysrtG7dutw/Ly0tRWlpKXx8fDBy5EjegElqxQFyDXPv3j04OjoiPj6+3DtKSkpKXnmA/BkTExN8++23uHr1KoKCgrBhwwbY2NhgzJgxOHv2rCrSSYmioiKsXr0a77zzDgYMGAArKyucOHECO3fuRKdOnUTnEZEKcH0Vg+srqcOzAXKeQE6aICcnB/369cOmTZvKBok6duz4wu998MEHOHLkCBISEvD48WP06NED3bp1w3//+1/I5XJ1Z+uNI0eO4LPPPkPbtm1x6NAhrFy5EhcuXMAXX3zBU0GJiKhKNGrUCKtWrcKlS5fQo0cPTJw4EU2bNkVoaCgePXokOk9n3b17F97e3mjUqBECAgIwatQoXL9+HeHh4ahZs6ZKX6t+/fp45513ADwdGjU1NUVUVBRSU1PRvn17jB49moM6eogD5ARwP1KUqtiP7N69e7n/my4pKcGtW7fQtWtXPr6etBLfr4qh6verTZs2rfDGRYVCgZiYGLz//vt48OBBZdKJhOB+uhiq3k9X9rSEZ+RyOUpKSvDll19i9uzZL9yoTaSpuD6JUZXf9zk7O1e4p2NoaIjGjRvDw8MDhoaGlXototfBb7I1yMmTJ9GhQwecP3++3Dc3ACCVStGhQ4c3eo1q1aph+vTpuHnzJn766SckJyejY8eO+OSTT7B7925eZFTk/v37CA0NRdOmTTFx4kQ4ODggJSUFe/bsgYODg+g8IqoCFa2vu3bt4vqqIlxfSZ04QE6a4tlNpgcPHiy7npiYmMDe3r7cv8bFxQVHjx7F0aNH0aBBA4wcORItW7bE999/j6ysLHWl67SioiJs3rwZ3bp1Q48ePZCeno6tW7fi0qVLGDduHDd3iIhILZo1a4Y1a9bgxo0bcHV1xaJFi9C4cWN8++23uHjxoug8nXH69GmMHTsWzZo1Q2xsLHx8fHDr1i0sWrQIderUqbLXHTx4MACgZcuWSE5OLnuPsWHDBly5cgUBAQFV9tqkmUpKSjhATmX4fY96VOV+pIODQ4Uny8lkMuTk5KBv3768rpPW4vtV9ajK96vlnez7jFwux8mTJ/HZZ5/xtEzSWtxPr3pVuZ9ub28PqVRa4e9IJBKEhoZi4cKFb/w6RCJwfap66vq+r0ePHkrnQQ0NDSGRSODm5obz58/D2dlZJa9H9Ko4QK5Bzp49i8LCwpf+XuvWrWFqalqp1zI2NoarqytSUlKQkJAAhUKB/v37o2nTpggICMBff/1Vqb+/PpLL5di9ezcGDRqExo0bIyIiAq6urrh58ybWrFlTdmIQEem2f6+vjx49woABA7i+VgLXVxLFzMwMAFBQUCC4hPTZuXPnYG9vj8uXLz+3qSCTyWBnZ/fSv97JyQnx8fFIS0uDi4sLZs2ahfr162PMmDE4fPhwuU89ovJdvHgR06dPR8OGDTF69Gg0aNAAx44dw9GjRzFo0CCeOE5ERELUr18fYWFhuHXrFkJDQ7Fnzx60bdsW3bt3R0xMDG+KfANZWVlYtmwZOnbsiK5du+LMmTNYtWoVbt68CR8fH9SoUaPKGwYMGIDJkycjKSnpucfcNm/eHBEREZg/fz5PpdUzBQUFZZ9ViZ7h9z2qp679SAcHhwpPwZRIJOjatStOnz6NNm3aqOQ1iUTh+1XVU9f7VScnp3IHpwwNDWFgYIBvv/0We/fu5YEKpPW4n6566thPNzc3R6tWrcr9c0NDQ9SoUQMxMTHw8vKq9OsRicD1SfXU/X1fjx49Xvj/k1QqRbVq1dCyZUusWLECFhYWKn1NolfBb7Y1iIeHB27evImvvvoKEolE6R1yRkZG6N69u8peUyKRwMXFBfv27cPly5cxevRo/PTTT2jWrBn69OmDuLg45Obmquz1dNGFCxfg7++Ppk2bon///sjOzsbatWtx9+5dhIWFoV69eqITiUgAiUSC+vXr4+rVq9ixYwfX1zfA9ZVE4wnkJNr+/fvRrVs3ZGRkvHBHulwuR/v27V/572Vra4sff/wR9+7dw5IlS3Dx4kX07NkTbdq0wfz58zlQ8BKPHj1CVFQUunfvjrZt2+Lnn3/Gd999h1u3biE+Ph6Ojo6iE4mIiAAAFhYWmDp1Kq5cuYJff/0VDRo0gIeHB+rXr49Jkybh6NGjfFxzBWQyGfbu3YsxY8agfv368PHxgb29PY4dO4azZ8/C1dVVrac/d+7cGUuXLlV6mMiECRMwdOhQjB07Fo8ePVJbE4lVWFhY6cNlSHfx+57KU/d+pK2tLaysrF74uaGhIYyMjLB48WIcO3aMB2iQTuH71coR8X7VwcEBxcXFL/xcIpGgQYMGOHHiBH744QdUr15dpa9LJBL30ytHxH56jx49YGRk9NzPnt3UMmjQIFy+fBljxoyBRCJR+WsTqRPXp8oR+X1f3bp10aRJEwBP5z+NjIwwZ84cnDhxAn/99ReWLVtWZa9NVBGJgregaKSwsDDMnDkTBgYGz31INjQ0xIoVKzBhwoQqe+2SkhLs2rULq1evxq+//gpDQ0P07dsXw4cPR9++fcuGqfTZ5cuXsWXLFmzevBmpqalo0KABvvjiC0yYMAG2trai80iPZGdnw9raGomJiejdu7foHPqH27dv491338XDhw9x9epVNG/enOvrK+D6SprkyZMnsLKyQkJCAlxcXETnkJ5Zu3YtJkyYAIVCofRLM6lUivz8/Ep9IXTmzBlERUUhLi4Ojx49goODA4YPH46hQ4eiUaNGlcnXCVlZWdixYwc2b96M/fv3w9DQEAMGDMD48ePh7OzMk8apQi4uLmjYsCGioqJEpxARIT09HevWrUN0dDTOnz+Phg0bYtiwYRg+fDgcHBz0/stTuVyOQ4cOYfPmzdi2bRsyMjLg4OCAcePGYeTIkRo9CPP48WN06NABXbt2xdatW0XnkBpMnz4dR48exYkTJ0SnkJbgfuTLid6P7N27N/bt2weFQgGpVIrS0lJ8+OGH+O2337jvT3qD71crJvr9ak5ODqysrMpOzDQyMoKpqSnatWuH27dv49KlSzwtk/QC99MrJno/PTo6GhMmTCj7PsXAwACtW7fGw4cPMWTIEKxcubJKX59IJK5PFRO9Pv3T+PHjsWbNGjg5OSE6OhotW7YEAPj7+5fdENCgQQO19RABuMMBcg1UUFCANm3a4MMPP0Tnzp3h6+uLoqKislMHk5OT0bFjR7W0ZGZmYtu2bdi8eTMOHjwIU1NTuLi4lP2rYcOGaukQTSaT4fjx40hMTMSePXtw5swZvP322xg6dCiGDx+O7t27c4CEhOAAuWbKysqCo6Mj0tLSoFAocP/+fbz99tvP/Q7X16e4vpImKykpgbGxMeLj4zF48GDROaQnFAoFAgMDERwcXOHvtWzZEmlpaSp5zZKSEuzfvx9btmzB9u3bkZ2djW7duuHTTz+Fi4sLOnfurDdr8dWrV5GQkICEhAQcOHAAwNMv80eMGIH+/fvD0tJScCFpCw6QE5GmSk1NLRuSu3z5Mpo0aYJ+/frBxcUFH374od4MEmZlZWHfvn1ITEzE7t278eDBA3Tq1AkjRozA8OHDYWNjIzrxle3btw8uLi5Yu3YtvvzyS9E5VMUmTZqECxcu4PfffxedQlqI+5FPadp+ZFBQUNkeQJs2bRAVFYVu3bph4MCBuHLlCs6ePfvCaZpEuozvV5/StPerLVq0wLVr16BQKDBmzBgsXLgQCoUCrVq1wqRJkxASEqLWHiKRuJ/+fzRpP/3ChQto164dpFIpzMzMEB4ejq+//hqbNm3C2LFjceLECXTp0kVtPUQicH36P5q0Pv1TfHw8MjIy4OHh8dxNkkVFRejQoQPat2+PLVu2CGkjvcUBck0UFBSERYsWIS0tDfXq1cPDhw/h5eWF2NhYGBsbIycnR8hm0cOHDxEfH49du3bh4MGDyM/Ph52dHVxcXPDxxx+jW7duOjVQceXKFRw+fBiJiYnYv38/srKy0Lx5c7i4uGDw4MHo2bMnpFKp6EzScxwg1zwlJSX45JNPcPTo0bIbf/Lz82FmZlbuX8P1lesraS5jY2NER0dj9OjRolNIDxQXF8Pd3R3r1q2r8PekUimGDx+OjRs3qryhqKgIv/76K7Zv347ExETcu3cPderUQe/evdG7d2/07NlTp4YKHj16hKNHj+LXX39FYmIirl69CisrK3z00UcYMGAABg4cqPRx4kQvwwFyItIGZ86cwdatW5GQkIDk5GSYmJigR48eZcM5dnZ2OvPZrLi4GElJSfj999+RkJCAEydOQKFQlH2JNmzYMLRo0UJ05hubNm0aIiMj8eeff2r1fw96uXHjxuHvv/9GQkKC6BTSctyP1Jz9yMTERAwbNgxz5szB5MmTYWhoCAC4fv062rVrh7CwMHz33XdC2ohE4/tVzXm/Om7cOBw7dgyRkZHo0aNH2c+XLFkCb29vpKam8n0o6SXup2vOfnppaSlq1KiBvn37IiIiAnXr1gXw9NCeXr16QSaT4ciRI3r/VAvSH1yfNGd9elW//vorevfujZ07d6Jfv36ic0h/cIBc09y5cwetW7eGv78/ZsyY8dyfHTt2DOvXr8fy5csF1f2fwsJCHDp0CImJiUhISEBaWhqkUinat2+P7t27w8nJCU5OTmjcuLHo1FdSVFSE5ORkHDt2DEeOHMGxY8fw4MEDmJmZoVevXnBxcUGfPn34wZc0DgfINYtCocCXX36JzZs3QyaTAXj6eCy5XP7Kfw+ur0SaxcrKCgsXLoS7u7voFNIDCoUCGzduhKenJzIyMsquJf9mbGyM4OBgeHt7V3lPSkoKEhMTkZiYWHZzVKNGjdCjRw84OTnhvffeQ7t27bTiNDSFQoGrV6/i+PHjOHLkCI4ePYqLFy8CADp27Fh26p6Tk1PZF/ZEb4oD5ESkbe7fv4+9e/ciISEB+/btw6NHj2BpaQlHR0c4OTmhe/fu6NKlC6pXry469ZVkZmbixIkTZZ9FT58+jYKCAtSrV6/smv/xxx+jRo0aolNVoqioCA4ODjA3N8fhw4d1ZpCKXjRq1CgUFBTg559/Fp1COoT7kWLl5OTgyZMnSh9TPnv2bCxduhSXLl1CvXr1BNQRaQ6+XxXr2rVraNy48Qt7gDKZDJ07d4aNjQ127NghqI5IM3A/XbxLly6hdevWL/w8OTkZXbp0QUxMDA+MIr3E9Ul7jBw5EidOnMD58+dhbm4uOof0AwfINc2oUaNw8uRJXLhwASYmJqJzXtnff/+No0ePlv0rOTkZMpkMNWrUQPv27fHOO++gffv2sLOzQ4sWLVCrVi0hnSUlJbh16xbOnz+P1NRUnD17Fqmpqbh8+TJkMhlq165dtsnw3nvvwd7eHsbGxkJaiV4FB8g1i7e3NxYuXIjS0tKyn1lYWCAnJ+eN/55cX4nEql+/Pry9vTF16lTRKaRHCgoK8MMPPyAoKAhFRUXPXVeeSUhIgIuLi1q78vPzcerUqbIv4I8dO4bs7GwYGxujbdu2eOedd2BnZ4cOHTqgdevWaNiwobDhpb///huXL19GamoqUlJSkJKSgvPnzyMnJwempqZ499138d577+G9996Dk5MTatasKaSTdBcHyIlIm5WWluL8+fPPfRa9ceMGAMDGxgZ2dnZ455130KFDB7Rt2xbNmzev8KlbVSknJwfXrl1Damoqzp07V/ZZ9O7du5BIJGjdunXZZ1EnJye0bNlSSKc6XLhwAe+++y58fHzg7+8vOoeqyODBg2FqalolTyMieob7kZojPz8fbdu2xUcffcTPFkT/wPermuXAgQNwdnbGnj170KdPH9E5RBqD++ma5auvvsIvv/yCtLQ0rbnZiKiqcH3SXPfv30ebNm0wadIkhISEiM4h/cABck1y/PhxvPfee/j5558xcOBA0TmVkpeXhz///LNs8T537hxSU1PLhigtLCxgY2ODpk2bwsbGBo0aNUKtWrVQs2ZN1KxZs+zfV6tW7ZU+0D9+/Bj5+fnIzMxEZmYm0tPTkZGRgfT0dNy4cQM3btzAzZs3cffu3bKTgJ9tINjZ2aF9+/bo2LGjVn4oJ/3GAXLNsWrVKnz99dcv/LxOnTp48OCByl6H6yuRerVo0QKurq6YNWuW6BTSQ5988gmSkpKQlZUFqVSKkpKSsj+7e/cu6tevL7Du6Zd1Fy5cwJkzZ3Du3Lmy69Ldu3cBAEZGRmjUqFHZdalJkyaoXbs26tSpU3ZdenZNepXHxuXm5qKgoACZmZnIyMgouzY9fPgQt2/fxs2bN8uuTYWFhQBQNuDw7LrUoUMHdOzYUatu1iXtxAFyItI19+7dQ1JS0nPX/GcDegBQt27dss+hTZs2Rd26dcs+f9aqVQu1a9eGpaUlLC0tX3ryT3FxMfLy8pCVlYX09PSya35GRgbu3btX9jn0xo0byMzMBICyL7j++VnU3t5e2FCjKD/88AOmT5+Ow4cPw9HRUXQOVYFPP/0UdevWxZo1a0SnkB7hfqRYcXFxGD16NI4fP46uXbuKziHSWHy/KtaQIUOQkpKC1NRU7rsRlYP76WI9evQILVu2hLu7O8LCwkTnEGkUrk+aZenSpfD09ERycjLatm0rOod0HwfINUVpaSkcHR1hYWGB3377TXROlVAoFLh58yauXbtWttg/+7937txBZmYm8vPzy/3rq1evDqlUCoVCAYlEgry8PBQXFyv9XYlEgpo1a6J27dpo0qTJcxsCNjY2aNWqFe8qJJ3AAXLNsGvXLgwcOFDpCbHNmjXDtWvXqvT1ub4SVZ3OnTujd+/e3EwitTt06BB69eqFxMRE1K5dG1OmTMHRo0chkUhgaWmJ7Oxs0YnlevToEdLS0p67Ht28eRO3b9/Gw4cP8fjx43L/WlNTU5iZmZVdk0pKSpCbm1vu71tYWKBWrVpo1KhR2bXo2XXJ1tYWDRs2rIr/ikQvxQFyItIHRUVFL1zzn/37hw8fIjMz87kb4P7JwMAA1atXh0QiKftZRe8RTExMULNmzRcGf2xsbNCsWTPY2tpqxSN2q5pCoUD//v1x8eJFJCcn8/O5Dvrggw/Qpk0bLF++XHQK6TnuR6rXBx98gNzcXJw8eRIGBgaic4i0RmXfr1pZWZWtUwDfr1bk9u3baN26NYKCguDp6Sk6h0ircD9dfZ4NZaakpKBVq1aic4g0HtcnMUpLS+Hk5ARjY2McOnTouf1ToirAAXJNER0dDXd3dyQnJ8POzk50jjDP7jB69q/CwkLk5eUBAJ48eYLs7Gzs2LEDo0ePhrm5OYyNjcs+wFerVu25O5u4gJI+4AC5eKdPn8b777+P4uJipQPkHTp0wJkzZwSUPY/rK9Gb6dmzJ+zs7LBs2TLRKaRHFAoFunbtilq1aiEhIaHs59u2bcO0adPQpEkTHDp0SGBh5cjl8heuSc82mQoLC1FQUIDIyEi4ubnBzMwMFhYWAABLS0uYmpo+d03SxZMFSDdwgJyI6Kns7GxkZGQgIyMDOTk5yM3NRUlJCfLz87Fy5Uq4ubmV/a61tTUkEglMTExQrVo1WFtbo1atWqhVq1bZ+wF6uYcPH6J9+/b49NNPeUq1DnJ0dISjoyMiIiJEpxC9FPcjVef8+fPo2LEjIiMj4erqKjqHSKeU935VLpfjyZMn+N///oe33noL7dq14/vVlwgMDERERAQuXbok/MmJRLqE++mqI5fL0blzZ9StWxd79+4VnUOk9bg+VZ2kpCQ4ODhg9erVGDt2rOgc0m0cINcEOTk5aNWqFQYPHszhpJdYsWIFfH198eDBA148iMABctGuXbuGLl264MmTJ2WPS/23Hj164PDhw2oue31cX4mU69evH2rWrImYmBjRKaRHYmNj4ebmpvTm0uLiYpw9exZdunQRVFf1Hjx4gAYNGmD79u3o16+f6ByiN8IBciKiisXGxsLDwwMPHz6EpaWl6Bydk5CQgL59+2LTpk0YMWKE6BxSoU6dOuHTTz9FaGio6BSiSuN+5OuZNGkS4uPjkZaW9kqPhSci1ejZsyeaNGmCdevWiU7ReAUFBWjbti169uyJtWvXis4h0hvcT389R44cwfvvv4+dO3eib9++onOIdBrXp8qZMmUKNm7ciEuXLqFWrVqic0h33eFzzjRAaGgoCgsLERgYKDpF461btw7Z2dnPncRIRCTCw4cP8eGHHyI3N7fc4XHg6Qlq2oDrK5FyFhYWyMnJEZ1BeqSwsBB+fn5wc3NT+mQiY2NjnR4eB4DNmzdDLpdjw4YNolOIiIioikRHR6OwsBC7du0SnaKT+vTpAw8PD3z99de4deuW6BxSoYKCAg7aks7gfuTrCQkJgVwuR0hIiOgUIr3x999/48iRI9i6dSsKCgpE52g8MzMzLFiwAOvWrcORI0dE5xDpDe6nv57u3btj2LBhmDp1KoqKikTnEOk0rk+VExISAhMTE/j6+opOIR3HAXLBrl+/jiVLliAwMJB3i7zE7du3cfLkSUgkEl5ciEg4b29v3Lp1CxU9yMPAwADVq1dXY9Wb4fpKVD5LS0vk5uaKziA9EhERgYyMDAQHB4tOESY2NhYAsGPHjrLHmxMREZHuuHv3Lg4dOgSJRIK4uDjROTorIiICdevWxZdffonS0lLROaQihYWFMDMzE51BVGncj3x9NWrUQHBwMJYsWYLU1FTROUR6IS4uDhKJhDc+voahQ4fi448/xtSpU/kelBGvIXMAACAASURBVEhNuJ/++hYtWoT79+9jyZIlolOIdBrXp8qpXr06IiIisGbNGpw8eVJ0DukwDpAL5unpiWbNmuGbb74RnaLxNm7cCKlUCoVCgV9++QXZ2dmik4hIj0VHR+OPP/6Aq6srjI2NYWDw4iVVKpVqxaO4ub4Slc/S0pInkJPapKenY/78+fDy8kK9evVE5whx/fp1JCUlAQCKiorwyy+/CC4iIiIiVVu/fj0MDAygUCiQmJiIJ0+eiE7SSdWqVcOGDRtw4sQJREREiM4hFSksLISpqanoDKJK437km/Hw8ICdnR28vLxEpxDphZiYGJSWlkIqlWL9+vWic7RGREQEUlJSEB0dLTqFSOdxP/3NNGzYEN7e3ggJCcHff/8tOodIJ3F9Uo0RI0agZ8+emDRpEm/OoyrDAXKBDh06hJ9//hmLFi2CkZGR6ByNt27dOsjlcgCATCbjxYWIhLO3t0dkZCT++usvVK9evey08WdrukQigYWFhcjEV8L1lah8HCAndQoMDIS5uTk8PT1FpwizadMmGBoaAnh6HeWXc0RERLpn7dq1z30G3b17t+Ai3dW5c2cEBwdj9uzZOHPmjOgcUgEOkJOu4H7km5FKpVi8eDESExORkJAgOodIp127dg1nz56FQqGATCZDQkICsrKyRGdphXbt2uHrr7+Gn58fn+5JVMW4n/7mPD09UbNmTcyePVt0CpFO4vqkOsuWLePNeVSlOEAuiEKhgJeXFz788EP06dNHdI7Gu3TpEi5cuACFQlH2s2ePuiAiEu306dPIzs7G6dOnsXfvXvTp0wdSqRTFxcUafwI511eiillYWHCAnNQiLS0NkZGRCA4Ohrm5uegcYWJjY1FSUgIAkMvl2Lt3LzIzMwVXERERkaokJSXh0qVLZZ9BDQwMEBcXJ7hKt3l5ecHBwQFjx45FcXGx6ByqpIKCAg6Qk9bjfmTl9OzZE4MGDcL06dMhk8lE5xDprPXr1z93AFxpaSl+/vlngUXaJSgoCEVFRZg3b57oFCKdxv30N2dmZoa5c+di7dq1ZackE5HqcH1SnbZt22LixInw9vbmP0OqEhwgFyQuLg5JSUlYsGCB6BStsGHDhhc+pB84cAAPHz4UWEVE9FRkZCScnZ3RsmVLfPLJJ9ixYwf++usvBAUFwdbWVnRehbi+ElXM0tKSp6SQWnh5eaF169ZwdXUVnSJMSkoK0tLSXvj5tm3bBNQQERFRVYiNjYWxsXHZf5bJZEhMTMSTJ08EVuk2AwMDrF27Fjdu3EBgYKDoHKqE0tJSFBcXw8zMTHQKUaVwP7LyFi5ciOvXryMyMlJ0CpHOWr9+fdnQ0zO82eXVvfXWW/D19cWiRYvw119/ic4h0kncT6+8zz//HI6Ojnr9VFiiqsD1SfWCg4NhbGyMoKAg0SmkgzhALkBxcTH8/PwwZswYdO7cWXSOVvjnnUn/tHXrVgE1RET/5+7du9izZw/c3d2f+3mDBg3g7++PUaNGCSp7NVxfiSpmaWnJE8ipyh06dAg7d+7EggULIJVKRecIs2nTpueGCICnT25at26doCIiIiJSJZlMhtjY2BdOwZbJZNi9e7egKv1gY2ODBQsWYN68eThy5IjoHHpDhYWFAMATyEnrcT+y8po1a4aJEyciICAA2dnZonOIdM6ff/6Jq1evPvczuVyOgwcP4t69e4KqtM+UKVPQsGFDzJ49W3QKkU7ifnrlSSQSLFy4EIcOHcIvv/wiOodIZ3B9Ur3q1asjJCQEy5cvx9mzZ0XnkI7hALkAP/zwA+7du8e7Ql7RqVOnlN6ZXFpayosLEQm3Zs0a1KhRAwMHDhSd8tq4vhK9nKWlJUpKSlBUVCQ6hXSUQqGAp6cnXFxc0Lt3b9E5wigUCqUnO5WWluLo0aO4e/euoDIiIiJSlcTERDx69OiFnxsYGCAuLk5AkX7x8PBA79694erqyqcsaSkOkJMu4H6k6vj5+aG0tBRhYWGiU4h0zqZNm557as4zUqmUN7u8BmNjY8ydOxcbNmzAqVOnROcQ6RTup6tOt27dMGzYMEybNu2FG96J6PVxfao6rq6uePfddzF58mQoFArROaRDOECuZo8fP0ZYWBimTZuGxo0bi87RCsruTAKeXnROnTqFmzdvqj+KiAhP3+SuWbMGrq6uMDExEZ3z2ri+Er2cpaUlAPAUcqoy69evR3JyMubPny86Rajjx4/jzp07Sv/M0NAQmzdvVnMRERERqVpMTIzSz6AymQwJCQl48uSJgCr9IZFIEBUVhcePH/MUSC1VUFAAADAzMxNcQvTmuB+pOjVq1ICfnx8WL16Ma9euic4h0hkKhQIbNmxQOkQol8t5s8trGjp0KLp3747vvvuOg05EKsT9dNUKDw/H3bt3sXLlStEpRFqP61PVMTAwwI8//ohjx47xnyOpFAfI1WzOnDmQSqWYMWOG6BStUFpaig0bNih9nCHAiwsRifXrr7/i5s2bGDdunOiU18b1lejVWFhYAOAAOVWNwsJC+Pn5wc3NDXZ2dqJzhCpviAB4OlQWExOj5iIiIiJSpezsbPzyyy/lfgaVy+XYvXu3mqv0T/369bFkyRIsXboUv//+u+gcek08gZy0HfcjVW/SpEmwtbXFrFmzRKcQ6YzDhw/j77//VvpnCoUCSUlJuHr1qpqrtNv333+PkydPIj4+XnQKkc7gfrpq2djYYMqUKQgMDERmZqboHCKtxvWpatnb28PNzQ2enp58wiCpDAfI1ejGjRtYvnw5AgMDUb16ddE5WuH3339Henp6uX9eUlLCiwsRCRMZGYn3338fbdq0EZ3y2ri+Er2aZyeQ8wMYVYWIiAhkZGQgODhYdIpQcrkcGzduLHeIQKFQICUlBZcvX1ZzGREREanK5s2bIZfLy/1zAwMDxMXFqbFIf3355ZcYPHgwxo0bx1PftQwHyEnbcT9S9QwNDTF37lxs3rwZR44cEZ1DpBM2bdoEY2Pjcv/cyMgIW7ZsUWOR9uvUqRNGjRqFGTNmoKioSHQOkdbjfnrVmD17NoyNjTF37lzRKURai+uTesydOxd5eXlcr0hlOECuRr6+vmjSpAnc3d1Fp2iNjRs3VvghHQAuXryI8+fPq6mIiOipBw8eYOfOnVq7pnN9JXo1zwbIeQI5qVp6ejrmz58PLy8v1KtXT3SOUPv378ejR48q/B1jY2Ns2rRJTUVERESkatHR0RU+sl4mkyEhIYEDzWqyYsUKFBQUYPr06aJT6DUUFBQA4AA5aS/uR1aNgQMH4qOPPoKnp2eF11oiermSkhLExcWhuLi4wt+Jjo5WY5VuCA8Px4MHD7B06VLRKURaj/vpVcPS0hL+/v5YtmwZrly5IjqHSCtxfVKPOnXqICgoCIsWLeIwPqkEB8jV5NSpU9iyZQvmzZtX7qMa6HnFxcXYunUr5HI5TExMYGJiAmNjYxgbG5f9ZxMTEwDgCUVEpHbR0dEwNzfH4MGDRae8Nq6vRK+OA+RUVQIDA2Fubg5PT0/RKcLFxcVBIpE8dw0yMjJ67rokk8kQGxsrOpWIiIjewPXr13Hy5EkYGBi88BnUyMgIRkZGMDQ0RElJCXbv3i06Vy/UqlULq1atwurVq/nPXIs8O4HczMxMcAnR6+N+ZNVauHAhTp8+zX92RJW0b98+ZGdnw8jIqNy1ytDQEFevXsW5c+dE52qVBg0aYNq0aQgNDUVGRoboHCKtxv30qvPVV1+hZcuW8PHxEZ1CpJW4PqnPpEmT0Lp1a3z77beiU0gHGIoO0Be+vr7o1q0bBg4cKDpFa/z999/45ptvnvvZ2bNn8fvvv+O777577uf6fmojEamXQqHAmjVrMGbMGFSrVk10zmvj+kr06iwsLCCRSDhATiqVlpaGyMhIrFixAubm5qJzhGvZsiVmzJhR9p+LioqwZMkSDB8+HDY2Ns/9bnZ2NqysrNSdSERERJXw5MkThIWFQS6Xl50wvn//fjx48AD9+/eHXC4v+91nJyxT1Rs4cCBGjRoFd3d3pKam4q233hKdRC/xbICcJ5CTNuJ+ZNXq0KEDxo4dixkzZmDgwIFauWdNpAlKS0vh7e393M+2bNkCS0tL9OnT57mfZ2VlqTNNJ3h7e2P16tUICgriSeRElcD99KojlUoxb9489O3bF7/99hucnZ1FJxFpFa5P6iOVSvH999/jgw8+wK5du9CvXz/RSaTFJAo+z6zK7dixA4MGDcKRI0fg5OQkOkerRUVFYfr06cjOzhadQqQRsrOzYW1tjcTERPTu3Vt0jt44cOAAnJ2dcebMGXTo0EF0jkpwfSUqn7m5OX788Ue4urqKTiEdMWDAANy8eRPJycmQSqWiczQO39+QLnBxcUHDhg0RFRUlOoWISCNNmjQJFy5cwO+//y46Ra9lZWWhffv26NGjBzZs2CA6h15i165d6N+/P/Ly8jgcSjqB+5Gq9eDBA7Ro0QK+vr7w9fUVnUOkM/j5XrWioqLwzTff4MyZM2jXrp3oHCKdwP101XNxccHDhw/xxx9/wMDAQHQOkdbi+lT1RowYgTNnziA1NRVGRkaic0g73eGVrorJZDL4+Phg2LBhHB4nItIRkZGRcHR01JnhcSKqmKWlJU8gJ5U5dOgQdu7ciQULFnB4nIiIiPSWTCaDoSEfjimatbU1Vq9ejU2bNuG///2v6Bx6iWcn9PMEciJS5u2334anpyfCw8ORnp4uOoeISCk3Nze0a9eON7oQkUZbsGABUlJSsHHjRtEpREQVmjdvHm7duoXly5eLTiEtxgHyKrZ27Vpcu3YNc+fOFZ1CREQqkJmZiZ9//hnu7u6iU4hITThATqqiUCjg6ekJFxcX3mlPREREeo0D5Jrj448/hru7OyZOnIj79++LzqEKFBYWwsTEhCfgEVG5pk+fDnNzc4SGhopOISJSSiqVIjw8HDt37sTBgwdF5xARKWVnZ4exY8fCz88PRUVFonOIiMrVtGlTTJ06FUFBQcjMzBSdQ1qKO41VqLCwEMHBwXB3d0fz5s1F5xARkQrExMTA2NgYw4YNE51CRGpiaWmJ3Nxc0RmkA9avX4/k5GTMnz9fdAoRERGRUDKZjE9j0SARERGwtrbGV199JTqFKlBYWMjTx4moQubm5vDz88OKFStw7do10TlEREq5uLjA2dkZPj4+UCgUonOIiJQKDg7Gw4cPsXLlStEpREQVmjVrFkxMTHgjMb0xDpBXoeXLlyMjIwMzZ84UnUJERCqyevVqfPHFF7CwsBCdQkRqwhPISRUKCwvh5+cHNzc32NnZic4hIiIiEkoul/MEcg1ibm6OtWvXYteuXYiJiRGdQ+UoKCjgADkRvZS7uzuaNWuGwMBA0SlEROUKCwvDqVOnsHPnTtEpRERKNWjQABMnTkRISAiePHkiOoeIqFyWlpbw9/fHsmXLcPnyZdE5pIU4QF5FcnNzMW/ePEyZMgUNGjQQnUNERCrwv//9DxcuXMCECRNEpxCRGllYWHCAnCpt8eLFyMzMRHBwsOgUIiIiIuFkMhkHyDXMe++9hylTpmDq1Km4deuW6BxSgieQE9GrMDQ0RGBgIDZu3Ijk5GTROURESnXp0gVDhgyBt7c3ZDKZ6BwiIqVmzpyJ0tJSLFq0SHQKEVGFPDw80Lp1a3h7e4tOIS3EAfIqsmjRIhQVFWHGjBmiU4iISEUiIyNhb2+Pzp07i04hIjXiCeRUWenp6Zg3bx48PT1Rr1490TlEREREwnGAXDOFhYWhYcOGGDduHBQKhegc+pfCwkKYmZmJziAiLTB8+HB06dIFs2fPFp1CRFSu0NBQXLt2DbGxsaJTiIiUqlGjBry8vBAREYH79++LziEiKpdUKsXixYuxfft27N+/X3QOaRkOkFeBjIwMREREwMvLC2+99ZboHCIiUoGsrCzEx8fD3d1ddAoRqZmlpSVyc3NFZ5AWCwwMhLm5OTw9PUWnEBEREWkEDpBrJlNTU8TExODw4cNYuXKl6Bz6F55ATkSvSiKRIDw8HHv27MGBAwdE5xARKdWyZUu4ubnBz88PBQUFonOIiJSaOnUqrK2tERISIjqFiKhCzs7OcHFxgZeXF0pLS0XnkBbhAHkVCAsLg4mJCaZMmSI6hYiIVCQ2NhYSiQSff/656BQiUjOeQE6VkZaWhsjISAQHB8Pc3Fx0DhEREZFG4AC55rK3t4eXlxe8vLxw5coV0Tn0DxwgJ6LX0atXL3z88cfw9fXlUyWISGMFBgYiKysLy5cvF51CRKSUmZkZ/Pz88NNPP+Hq1auic4iIKhQREYHU1FSsW7dOdAppEQ6Qq9i9e/ewYsUK+Pn5wdLSUnQOERGpyJo1azBy5EhUr15ddAoRqRkHyKkyvLy80Lp1a7i6uopOISIiItIYMpkMUqlUdAaVIyAgAM2bN8f48eN5YpEGKSwshJmZmegMItIiCxYswB9//IHt27eLTiEiUqpevXqYMmUKQkND8fjxY9E5RERKjR8/Hra2tvD39xedQkRUoTZt2mDChAmYNWsW8vLyROeQluAAuYoFBgaiTp068PDwEJ1CREQqcvLkSZw5cwbu7u6iU4hIAAsLC+Tm5orOIC106NAh7Ny5EwsWLOCAFBEREdE/yOVynkCuwYyNjbF27VocP34cK1euFJ1D/19BQQFPICei19KhQwcMGzYMvr6+kMlkonOIiJTy9vaGgYEBFi5cKDqFiEgpqVSKOXPmIC4uDn/++afoHCKiCgUHByMvLw8LFiwQnUJaggPkKnTlyhWsXbsWgYGBMDExEZ1DREQqEhkZCTs7Ozg4OIhOISIBeAI5vQmFQgFPT0+4uLigd+/eonOIiIiINIpMJuMAuYbr1KkTZsyYgRkzZuDGjRuicwhPTyDnADkRva6wsDDcuHEDa9euFZ1CRKSUlZUVfHx8sHjxYty5c0d0DhGRUkOGDEG3bt0wc+ZM0SlERBWqXbs2fHx8MH/+fNy6dUt0DmkBDpCrkL+/P5o1a4YvvvhCdAoREalIbm4utmzZwidLEOkxDpDTm1i/fj2Sk5Mxf/580SlEREREGocD5NrB398fTZo0gbu7OxQKhegcvVdYWAgzMzPRGUSkZWxsbDBhwgQEBAQgPz9fdA4RkVKTJ09G7dq1ERISIjqFiKhc4eHh2Lt3L3777TfRKUREFZo2bRrq168Pf39/0SmkBThAriLnzp3Dli1bEBoayi8/iIh0yIYNGyCTyTB69GjRKUQkiKWlJYqLi1FcXCw6hbREYWEh/Pz84ObmBjs7O9E5RERERBqHA+TawcTEBKtXr8bBgwcRGxsrOkfv8QRyInpTAQEByMnJwbJly0SnEBEpZWpqisDAQERFReHixYuic4iIlHr//ffh4uICHx8f3mRNRBrN2NgYoaGhiI2NxdmzZ0XnkIbjALmK+Pj4oFOnThg8eLDoFCIiUqHIyEgMGzYMNWrUEJ1CRIJYWFgAAE8hp1e2ePFiZGZmIjg4WHQKERERkUbiALn26NatGyZOnIj//Oc/ePDggegcvVZQUMABciJ6I3Xq1MF3332H8PBwZGVlic4hIlJqzJgxaN26NQICAkSnEBGVKywsDH/++Sfi4+NFpxARVWj48OHo2rUrfH19RaeQhuMAuQocP34ce/bswdy5cyGRSETnEBGRipw9exZJSUlwd3cXnUJEAllaWgIAcnNzBZeQNkhPT8e8efPg6emJevXqic4hIiIi0kgymQxSqVR0Br2isLAwWFtb49tvvxWdotd4AjkRVYanpyckEgkiIiJEpxARKSWVSjFnzhxs3bqVJ2USkcbq2LEjRowYgYCAAJSWlorOISIql0QiQXh4OBISEnDgwAHROaTBOECuAkFBQXB0dMQnn3wiOoWIiFRo5cqVaNWqFd577z3RKUQk0LMBcp5ATq8iMDAQ5ubm8PT0FJ1CREREpLHkcjlPINci5ubmiIyMxNatW7Ft2zbROXqrsLAQZmZmojOISEtVr14d06dPx+LFi5Geni46h4hIqc8++wzvvvsuAgMDRacQEZUrKCgIly9fxubNm0WnEBFVqGfPnvjoo4/g6+sLhUIhOoc0FAfIK+nEiRPYu3cvgoKCRKcQEZEK5efnIy4uDh4eHny6BJGeq169OgAgOztbcAlpurS0NERGRiI4OBjm5uaic4iIiIg0Fk8g1z4ffvghxo4di0mTJuHx48eic/RSQUEBTExMRGcQkRabOnUqqlWrhsWLF4tOISJSSiKRwM/PD9u3b8fp06dF5xARKdWiRQt8/vnnCAgIgEwmE51DRFShhQsX4o8//sD27dtFp5CG4gB5JQUGBsLR0REff/yx6BQiIlKhuLg45Ofn48svvxSdQkSCWVlZAeAAOb2ct7c3WrduDVdXV9EpRERERBpNJpPxBHIttGTJEkilUj5tRxCeQE5ElfXsiWk//PADHj58KDqHiEip/v37w8HBAcHBwaJTiIjK5e/vjxs3bmDjxo2iU4iIKtShQwcMHToUvr6+vOmFlOIAeSU8O32cj1AiItI9kZGRGDx4MGrXri06hYgEMzc3h5GREQfIqUJHjhzBjh07MH/+fJ6mSURERPQSHCDXTlZWVlixYgXWrFmDX3/9VXSO3iksLISpqanoDCLScpMnT4aVlRUWLFggOoWIqFyBgYHYtWsXTpw4ITqFiEgpW1tbjBkzBsHBwSgpKRGdQ0RUoZCQEFy/fh3r1q0TnUIaiAPklRAUFARHR0d88sknolOIiEiFzp07hxMnTsDd3V10ChFpCCsrK2RlZYnOIA3m7e2NXr16wcXFRXQKERERkcbjALn26t+/P4YMGQIPDw/k5uaKztErBQUFHCAnokozMzODp6cnli1bhnv37onOISJSysXFBT169OBBfkSk0fz9/XH79m0OZBKRxmvRogXGjx8Pf39/5Ofni84hDcMB8jeUlJTE08eJiHRUVFQUbG1t8cEHH4hOISINYWVlxRPIqVzx8fE4fvw4Fi5cKDqFiIiISCtwgFy7LVu2DDk5OZg9e7boFL3CE8iJSFW++eYb1KpVC/PnzxedQkRUroCAAOzduxeHDx8WnUJEpFSTJk3g6uqKOXPmoLi4WHQOEVGF/P39kZWVheXLl4tOIQ3DAfI35OfnBwcHB54+TkSkY4qKirBhwwaMGzcOEolEdA4RaQhra2sOkJNSMpkMfn5+GDlyJOzt7UXnEBEREWkFuVwOqVQqOoPeUN26dREREYGlS5fiyJEjonP0glwuR0lJCczMzESnEJEOMDU1hbe3N1atWoU7d+6IziEiUsrZ2Rm9evVCUFCQ6BQionLNnj0b9+/fx5o1a0SnEBFVqF69epg6dSrmzp2Lx48fi84hDcIB8jeQlJSExMREnj5ORKSDtm/fjqysLHzxxReiU4hIg1hZWSErK0t0BmmgyMhIXLt2DXPmzBGdQkRERKQ1eAK59hs7diw++eQTTJgwAYWFhaJzdN6zf8Y8gZyIVMXDwwN169ZFeHi46BQionLNmTMHBw4cwMGDB0WnEBEp1ahRI0yYMAFz5sxBQUGB6BwiogrNmDEDBgYGfKo2PYcD5G/g2enjvXv3Fp1CREQqFh0dDRcXFzRq1Eh0ChFpECsrK55ATi/Izc1FcHAwvvnmGzRv3lx0DhEREZHW4AC5bli1ahXu3buH0NBQ0Sk6jwPkRKRqxsbG8PHxQWRkJG7cuCE6h4hIqe7du8PZ2RmzZ88WnUJEVK5Zs2bh8ePHWL16tegUIqIKWVlZwcfHB4sXL+bTqKgMB8hf07PTxwMCAkSnEBGRit25cwf79++Hm5ub6BQi0jDW1tY8gZxesGjRIuTl5WHmzJmiU4iIiIi0CgfIdUPjxo0xd+5chIeH488//xSdo9Py8vIAABYWFoJLiEiXjBs3Dg0bNuQp5ESk0ebMmYOjR49i3759olOIiJSqV68evvrqK8ydOxf5+fmic4iIKjR58mTUrl2bB0JQGQ6QvyZ/f384ODjAxcVFdAoREalYdHQ0rK2t0a9fP9EpRKRheAI5/Vt6ejoiIiLg4+ODOnXqiM4hIiIi0iocINcdEydOhKOjI8aPH4+SkhLROTrr2QC5ubm54BIi0iVGRkaYOXMmoqOjcf36ddE5RERKOTo6wsXFBbNmzYJCoRCdQ0SklLe3N7Kzs7Fq1SrRKUREFTI1NUVAQABWr16NK1euiM4hDcAB8teQlJSEhIQEnj5ORKSDFAoFYmJiMGbMGJiYmIjOISINwwFy+rfAwEBYWFhg6tSpolOIiIiItA4HyHWHgYEBoqKikJaWhoiICNE5OosD5ERUVVxdXWFjY4OQkBDRKURE5QoJCcEff/yBxMRE0SlERErVrVsXEydORFhYGHJzc0XnEBFVaOzYsbC1tUVwcLDoFNIAHCB/DQEBAejatStPHyci0kEHDx7EtWvXMHbsWNEpRKSBrK2tkZWVJTqDNMT169cRFRWFoKAgDnAQERERvSaFQoHS0lJIpVLRKaQiLVu2hJ+fHwICAnDx4kXROTrp2QB5tWrVBJcQka6RSqWYNWsWYmNjce3aNdE5RERK2dvbo1+/fjzoj4g02owZM1BQUICVK1eKTiEiqpBUKoWfnx82bdqES5cuic4hwThA/orOnDmDPXv2wM/PT3QKERFVgejoaHTp0gUdOnQQnUJEGognkNM/eXt7w8bGBq6urqJTiIiIiLSOTCYDAJ5ArmO8vLzwzjvvYPz48SgtLRWdo3N4AjkRVaXRo0fDxsYG8+bNE51CRFSuwMBA/PHHH9i3b5/oFCIipWrXro2vv/4aCxcuREFBgegcIqIKjRgxAm3btsWcOXNEp5BgHCB/ReHh4bCzs8Onn34qOoWIiFTsyZMniI+Ph5ubm+gUItJQ1tbWyM3NLRt2If116tQpxMfHY/78+Rx6IiIiInoDHCDXTYaGhoiMjMTp06exatUq0Tk6Jy8vDxKJBE2GdwAAIABJREFUhCeQE1GVkEql8PLywtq1a3Hr1i3ROURESnXu3BkfffQRQkNDRacQEZXL09MTT548QXR0tOgUIqIKGRgYYNasWYiLi0NqaqroHBJIolAoFKIjNN3169fRqlUrxMbGYuTIkaJz1GrDhg34z3/+IzqjjCY+4tbS0pKP9SNhsrOzYW1tjcTERPTu3Vt0jtb66aefMHXqVNy7dw81atRQy2tyfX05rq+kSQ4cOABnZ2dkZGSgZs2aonNIIGdnZ5SUlODw4cOiU1QmJycHzZs3F53xHLlcDgMDA0gkEtEpZbZs2YJevXqJziAt4eLigoYNGyIqKkp0ChGRxn3+BDTvWs/Pn6rj4+ODlStX4uLFi6hXr57oHJ0RExODb775Bvn5+aJTSItp2vWA+5GapaSkBLa2thg0aBCWLFkiOof02IgRI/D777+Lzijz7MkqBgaacy7f6NGjsXjxYtEZQhw6dAi9evXC//73P3Tv3l10Dukp7qe/Gn3eT580aRJ27tyJq1evwtjYWHQO6RGuT69Gn9enfystLUWnTp3Qtm1bbNq0SXQOiXGHx7y8gnnz5qFx48YYOnSo6BS1KygoQE5ODhYsWCA6RSMdP34cO3fuFJ1BRJUUHR2NIUOGqG14HOD6+jJcX0nTWFlZAXh64w4HyPXXrl27cODAARw9elR0ikqVlpYiPT0dEydORJs2bUTnaJzCwkJ4eXmhqKhIdAoREdEb4efPivHzp2oFBARg69at+O6777B582bROTojLy8P5ubmojNIy/F6UDF9vx4YGRlh2rRpmDlzJmbOnIk6deqITiI9lZWVBVtbW4waNUp0ikZavnw5njx5IjpDmJ49e6J79+6YO3cu9uzZIzqH9BT30yvG/fSnN1ZHRUVh48aNcHV1FZ1DeoTrU8W4Pr3IwMAAs2fPxsiRIzFz5kzY2dmJTiIBOED+Evfv38e6devw/fff6+1jVY2MjDB58mTRGRrJ1NRUrzcUiXRBWloaTpw4gZCQELW/NtfX8nF9JU1jbW0N4OkXGKSf5HI5fH19MWTIEDg5OYnOqRIDBgzgE02UyM7OhpeXl+gMIiKiSuHnz/Lx86dqmZmZ4ccff4SLiwu++OIL9O/fX3SSTuAAOakKrwfl4/UAcHd3x9y5c/H9998jNDRUdA7psTZt2nCtKoe+r1MA4Ovri759+yIpKQn29vaic0iPcT9dOe6nA40aNcKoUaMQGhqKL7/8UqOeuEP6geuTclyflBs6dCjs7OwQEhLCwyD0lOY8a0lDLVq0CFZWVhgzZozoFCIiqgJRUVFo0qQJPvjgA9EpRKTB/nkCOemnmJgYXLp0CXPmzBGdQkRERESk0Xr37o2RI0di8uTJyM3NFZ2jEzhATkTqUK1aNUydOhXLli3jIQpEpLE+/fRT2NvbIzw8XHQKEVG5Zs2ahRs3biA+Pl50ChFRhSQSCfz8/PDf//4XKSkponNIAA6QVyA7OxuRkZGYPn06TE1NRecQEZGKyWQyrF+/Hq6urjAw4CWRiMr37ARyDpDrp8LCQgQGBsLd3Z2PfCMiIiIiegVLlixBTk4OgoKCRKfoBA6QE5G6TJ48GQYGBvjxxx9FpxARlcvHxwfbtm3D+fPnRacQESlla2uLIUOGYO7cuVAoFKJziIgqNHjwYLRv354HqekpTstVYOnSpQAADw8PwSVERFQVdu3ahQcPHvApE0T0UoaGhjA3N+fpS3pqyZIlePz4Mfz9/UWnEBERERFphbfffhvh4eFYsmQJkpOTRedoPQ6QE5G6VK9eHZMmTcLixYv5FAki0liDBw9GmzZtMH/+fNEpRETlmjlzJlJSUrB7927RKUREFZJIJAgICEB8fDzOnj0rOofUjAPk5cjPz8cPP/yAb7/9FlZWVqJziIioCkRHR8PZ2RnNmjUTnUJEWsDKyoonkOuhx48fY8GCBZg+fTrq1q0rOoeIiIiISGu4u7ujW7du+OqrryCXy0XnaDUOkBOROv3nP/9BUVERIiMjRacQESllYGCAGTNmYMOGDbh69aroHCIipTp06IC+ffsiJCREdAoR0Ut99tlnsLe3R3BwsOgUUjMOkJcjKioKeXl5+Pbbb0WnEBFRFXjw4AESEhLg5uYmOoWItISVlRVPINdDISEhMDQ0xPTp00WnEBERERFpFYlEgqioKKSkpGD58uWic7Rafn4+B8iJSG1q1qwJd3d3zJ8/H4WFhaJziIiUGj16NGxsbLBo0SLRKURE5Zo9ezZOnjyJAwcOiE4hIqqQRCLB7Nmz8fPPP+PMmTOic0iNOECuRElJCSIiIjB+/HjUqVNHdA4REVWB2NhYmJubY9CgQaJTiEhLWFtb8wRyPXPr1i0sX74cfn5+sLS0FJ1DRERERKR1WrVqBU9PT8yaNQt37twRnaO18vLyUK1aNdEZRKRHZsyYgaysLMTExIhOISJSSiqVYvr06YiOjsbdu3dF5xARKeXg4IAPPvgAc+fOFZ1CRPRSAwcOxLvvvougoCDRKaRGHCBXYuPGjbh37x5PGSQi0mHr1q3DiBEjYGZmJjqFiLSElZUVB8j1TEBAAOrVqwcPDw/RKUREREREWsvPzw/169fH1KlTRadorby8PJ5ATkRqVbduXYwdOxbz5s2DTCYTnUNEpJSbmxtq1qyJiIgI0SlEROWaNWsWfvvtNxw7dkx0ChHRS/n5+WHHjh04ffq06BRSEw6Q/4tCocDChQvx+eefo0mTJqJziIioCiQlJeHcuXMYO3as6BQi0iLW1tbIysoSnUFqcunSJaxfvx4hISEwNjYWnUNEREREpLVMTEywbNkybNu2Db/88ovoHK3EAXIiEmHGjBm4ffs2Nm3aJDqFiEgpExMTTJs2DatWrUJ6erroHCIipZydneHk5ITw8HDRKUREL9WvXz/Y29sjLCxMdAqpCQfI/2XHjh04f/48vL29RacQEVEViYmJQYsWLdCtWzfRKUSkRXgCuX7x8fFB27ZtMXLkSNEpRERERERa76OPPsKoUaMwZcoU5Ofni87ROhwgJyIRmjVrhs8//xzh4eFQKBSic4iIlPr6669hZmaGpUuXik4hIiqXj48Pdu3ahZSUFNEpREQVkkgk8PX1xfbt23H+/HnROaQGHCD/l4ULF6J///5o+//Yu++4quv+/+PPI0MURQXEnatyVGrZcmTlAkLFkQN3WjnIyuxrVlpmadmlWZmZo0jBiYpibs2RK7VSKzPTzD1RAUFkHH5/dMWvrkBRz+F9xuN+u/VH6O3GQ6+u95vzPq/P+9SubToFAGAH6enpmjt3rnr37i2LxWI6B4ATKVmyJAPkbmLHjh2Kj4/Xe++9p0KFeMkEAAAA2MIHH3ygxMREjR492nSK02GAHIApQ4cO1S+//KLly5ebTgGAXPn6+ioyMlKTJk1SSkqK6RwAyFXr1q11zz33aPz48aZTAOC62rVrp9q1a2vcuHGmU1AAmIb4m127dmnLli0aMmSI6RQAgJ0sW7ZMCQkJ6t69u+kUAE6mRIkSunTpkukMFIBhw4apcePGCg0NNZ0CAAAAuIwyZcpo1KhRGjdunH755RfTOU6FAXIAptx9991q2bIlw04AHFpkZKSuXLmimTNnmk4BgDy98MILmjNnjo4fP246BQCuyWKx6OWXX9asWbN05MgR0zmwMwbI/2b8+PG677771KRJE9MpAAA7mTFjhpo2barbbrvNdAoAJ1OiRAluIHcDy5cv1/r16/Xee++ZTgEAAABcTmRkpOrVq6f+/fsrOzvbdI7TSE1NZYAcgDFDhgzR+vXrtXPnTtMpAJCr0qVLq3v37powYYKsVqvpHADIVbdu3RQYGKhJkyaZTgGA6+rWrZvKly+vCRMmmE6BnTFA/l8nTpzQwoULNXjwYNMpAAA7SUhI0IoVK9SrVy/TKQCcEDeQuz6r1arhw4erbdu2atiwoekcAAAAwOUUKlRIkyZN0ubNmzV79mzTOU4hKytLaWlpDJADMKZFixaqV6+ePvroI9MpAJCnIUOG6NChQ4qPjzedAgC5Kly4sAYOHKgpU6bo8uXLpnMA4Jq8vLw0ePBgTZs2TefOnTOdAztigPy/Jk6cqNKlS6tTp06mUwAAdhITEyNvb2+1bdvWdAoAJ1SyZEllZGQoNTXVdArsZM6cOdq7d6/eeecd0ykAAACAy7r//vv1zDPPaMiQITykmw9/vQZlgByASYMHD9a8efN09OhR0ykAkKsaNWroiSee0Pjx402nAECeBg4cqPT0dH3xxRemUwDgup555hn5+vpq4sSJplNgRwyQ688D2OnTp2vgwIHy9vY2nQMAsJMZM2aoU6dOKlasmOkUAE6oRIkSkqTExETDJbCHjIwMvfnmm+rZs6fuuusu0zkAAACAS3v33XeVnZ2tN954w3SKw0tJSZEkFS1a1HAJAHcWERGhsmXLMjgAwKENGTJEmzdv1vbt202nAECu/P391atXL02YMEGZmZmmcwDgmooWLapBgwbpk08+UXJysukc2AkD5JK+/PJLpaamql+/fqZTkA9Wq9V0AgAn9PPPP+uHH35Qr169TKc4LNZX4NpKliwpiQFyVzVlyhSdOHFCI0eONJ2C/2JfAgDAdbHPo1SpUho7dqwmTZqkHTt2mM5xaH8NkHMDOVwR+4Hz8PLyUmRkpKZOncrZGNwOa5XzeOyxx/Tggw9qwoQJplOAAsda5TyGDBmiY8eOafHixaZTgALB+uTcnnvuOWVmZmrKlCmmU2Anbj9Anp2drYkTJ6pHjx4KDAw0nYM8HDhwQC+88IKqVKmigIAAtWrVSuvWrTOdBcCJREVFqUqVKnrkkUdMpzgU1lcg//66gZyPWHc9KSkpGj16tAYOHKjbbrvNdI5bY18CAMB1sc/jf/Xq1UtNmjRRZGSksrKyTOc4LAbI4WrYD5xXv379ZLVa9fnnn5tOAeyOtcp5vfDCC1q4cKEOHTpkOgWwO9Yq51StWjW1adNG77//vukUwG5Yn1xHqVKl9Oyzz2r8+PFKS0sznQM7cPsB8mXLlunXX3/VCy+8YDoFebhy5YratGmjL774QsHBwRowYIB+++03tW7dWps2bTKdB8AJZGZmavbs2erVq5csFovpHIfB+grcGG4gd10ffPCBUlJS9Morr5hOcWvsSwAAuC72eeTGYrHok08+0Z49ezRt2jTTOQ6LAXK4EvYD51aqVCn16dNHEyZMUEZGhukcwG5Yq5xbp06dVKFCBU2cONF0CmBXrFXObciQIdq5c6e2bNliOgWwOdYn1/Pyyy/r0qVLio6ONp0CO3D7AfIJEyYoODhYtWvXNp2CPLz++uv69ddfNX/+fE2ZMkVjxozRpk2b5Ofnp969e5vOA+AEVq1apdOnT6tHjx6mUxwK6ytwY4oVKyYPDw9uIHcx58+f17hx4zR06FAFBQWZznFr7EsAALgu9nnk5a677tKLL76o1157TefOnTOd45AYIIcrYT9wfoMHD9bp06e1cOFC0ymA3bBWOTdPT089//zzmj59ui5cuGA6B7Ab1irn1qhRIz388MMaP3686RTA5lifXE/ZsmXVo0cPvffee8rMzDSdAxtz6wHyn376SevXr9fgwYNNp+AavvzyS9WpU0ehoaE5XytTpoyCg4N1+PBhffvttwbrADiDGTNm6JFHHlH16tVNpzgU1lfgxlgsFpUqVYpDZxczZswYFS5cmE8kcgDsSwAAuC72eVzLG2+8IV9fX7366qumUxwSA+RwJewHzq9KlSpq27atxo0bZzoFsBvWKuf37LPPytPTU9OnTzedAtgNa5Xze+mll7RkyRIdPHjQdApgU6xPrmnYsGE6cuQIDxO7ILceIB8/frxq166tFi1amE5BHs6fP6+LFy+qefPm//q1O++8U5K0a9eugs4C4EQSExP11VdfqVevXqZTHArrK3Bz/P39GSB3IUeOHNGnn36qN998U8WLFzed49bYlwAAcF3s87ieYsWK6T//+Y+ioqJ4EzEXqamp8vT0lLe3t+kU4JawH7iOoUOH6rvvvuPj5+GSWKtcQ/HixdW3b199/PHHSk9PN50D2BxrlWto3769qlatqg8//NB0CmAzrE+uq1q1aurQoYPeffddZWdnm86BDbntAPnZs2c1d+5cvfji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q1frt99+U79+/UynAADsbNasWYqIiJCXl5fpFAAujBvIncf777+v7Oxsvfjii6ZTAAAAANyi1157TUWKFNGbb75pOqXAXL16VZmZmdxADsApWCwWDRgwQDExMUpMTDSdAwC5qlu3rho1aqRJkyaZTgGAPA0cOFAJCQlatGiR6RQAuK5SpUqpZ8+emjhxIp/y4oRcfoB88uTJatKkie6++27TKQAAO9qxY4f279+v7t27m04B4OIYIHcO586d08SJEzVs2DCVKlXKdA4AAACAW1SsWDGNHj1aU6ZM0d69e03nFIiUlBRJYoAcgNPo3bu3srOzNXPmTNMpAJCnyMhIxcfH6/jx46ZTACBX5cuXV+vWrXnYBYDTGDRokA4ePKivv/7adApukEsPkJ86dUrLli1T//79TacAAOwsJiZGd9xxhx544AHTKQBcHAPkzuGdd95RsWLF9Nxzz5lOAQAAAGAjvXr1Uv369TV48GDTKQWCAXIAzqZEiRKKiIjQ9OnTTacAQJ46dOigUqVKKSoqynQKAOSpf//+2rx5s/bv3286BQCuq1atWmrYsKGmTJliOgU3yKUHyGfOnClfX1+1bdvWdAoAwI4yMzM1f/589ezZ03QKADfAALnjO3r0qKZMmaIRI0aoaNGipnMAAAAA2IjFYtGHH36o9evXa/HixaZz7I4BcgDOqE+fPtq7d6927dplOgUAcuXt7a0ePXooKipKVqvVdA4A5KpZs2aqXLkyD7sAcBr9+vXT4sWLdfLkSdMpuAEuPUA+Y8YMde3aVUWKFDGdAgCwo1WrVuns2bPq1q2b6RQAbqBUqVIMkDu4t956S+XKlVPfvn1NpwAAAACwsQYNGigiIkJDhgzR1atXTefYFQPkAJxRgwYNVLt2bX3xxRemUwAgT3369NHhw4e1ceNG0ykAkKtChQqpd+/emjFjhjIyMkznAMB1derUSSVLltSMGTNMp+AGuOwA+bfffqtffvlFvXv3Np0CALCz2bNnq1GjRqpatarpFABugBvIHduBAwc0c+ZMjRo1St7e3qZzAAAAANjB2LFjdfr0aX300UemU+wqOTlZklS8eHHDJQBwY5566inNnj1bqampplMAIFd33XWXHnroIR52AeDQnnrqKZ07d07Lly83nQIA11W4cGF1795d06ZN41NenIjLDpB2jbJ8AAAgAElEQVR/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vZnE5gK4px9//FE//fSTIiIiTKc4PdZX4OYFBATo/PnzpjPcVlZWlkaPHq2ePXuqZs2apnNgI7NmzfrXw2F/3UTHm3MAADi39evX68yZM//6emJior7++msDRXBlXbt2Vb169TRs2DDTKbeMG8jhajiPdG8RERGaP38+H10Oh7ds2TKlpqb+6+vHjh3Trl27DBShoNxzzz26++672ZPgFDhPd19du3bViRMntGnTJtMpQK5Yn/C/evToobi4OCUnJ5tOQS5cYoA8NjZW3t7eatWqlekU2EF8fLzS0tL+9fX09HR9+eWXPFUHuJk5c+botttuU8OGDU2nOD3WV+DmBQYGMkBuUFRUlH7//XcNHz7cdApsJCUlRUuXLs31BtKTJ09q27ZtBqoAAICtREdH/+u2WUny8vLS3LlzDRTBlVksFo0bN04rVqzQunXrTOfcEgbI4Wo4j3Rv3bp10+nTp7VhwwbTKcA1zZo1Sx4eHv/6upeXF4PFbiAiIkKxsbHKzMw0nQLkifN091azZk3Vq1ePPQkOifUJuencubOysrK0aNEi0ynIhUsMkM+bN09t2rSRr6+v6RTYQV4v0qU/b5/fvHlzARcBMCU7O1tz585VRESELBaL6Rynx/oK3LzAwEAlJyfn+qYn7CsjI0NjxoxR3759Va1aNdM5sJHFixf/42OB/4435wAAcG5paWlasGBBrm8cZWRkaMGCBbp69aqBMriyxx57TMHBwXr11Ved9nar9PR0paenM0AOl8J5pHurXr266tevz2t8OLSkpCQtW7Ys1+HhjIwMRUdHc4u+i+vSpYvOnz+vtWvXmk4B8sR5Ov562CWv/w4AU1ifkJtSpUopLCxM0dHRplOQC6cfID916pQ2b96szp07m06BHVy8eFGrVq3K8wlfLy8vzZ49u4CrAJiyfft2HT58WBEREaZTnB7rK3BrAgMDJUkJCQmGS9zPtGnTdPLkSb322mumU2BDMTExKlQo95enGRkZiomJ4dYfAACc1OLFi5Wamprnr1++fFmrV68uwCK4i/fff1/fffedYmNjTafclKSkJEmSn5+f4RLANjiPhPTnsNPChQt5eAwOa9GiRdc8gzp//rw2btxYgEUoaNWqVdNDDz3EgBscGufpiIiIUGJiIucpcDisT8hLjx49tH79eh07dsx0Cv6H0w+Qz507V8WKFVNI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ZWdnS/pz/65YsWLO687KlSvrvvvuk7e3t3x9fSX9uV9brdac16vJyclKT0/PeZPpyJEjSkhI0NGjR5WSkiLpz9erlStXVp06dXL2+Xr16un2228385cBtzR06FBNnTpVMTEx6tOnj12/V3p6utLS0nh9CYfGeSQKQo0aNVSxYkWtW7eOAXLcMH5+RUFp2rSpRowYoV9//VU1atQwnQMnw3k6CkqzZs20du1a0xlwIqxPMK1FixaaNGmSzp49q6CgINM5Ls2S/dcrJAcSFhamokWLKjY21nQKblJ2drZ++uknffPNN9q6dau2bNmiP/74Q5J022235Rzu1apVS9WqVVOVKlVUvnx5m358bWpqas5NF4cOHdJPP/2kvXv36ueff1ZKSop8fHxUv359NWrUSI0aNVLjxo3l7+9vs+8PFITExESVLFlSK1euVHBwsOmcGzZw4EDt2LFDu3btMp3iNFhfAcfz/fffq379+jpw4IDuuOMO0zkOqW/fvtq4caP2798vT0+HfIYVN+n06dPatGlTzp60e/duZWZmqkSJEjl70j333KOqVauqatWqqly5snx8fGz2/TMzM3X8+PGcfWnfvn05bwqeOXNGFotFNWrUUMOGDdW4cWM1btyY/5+iQISEhKhixYqaPn266RQAuClXrlzRtm3btGXLFm3dulXbtm1TYmKivLy8VLNmzZw3cO64446cmxb/Ggi0lbNnz+bcaHTgwIF/DChmZWWpdOnSatiwoRo1aqSGDRvqwQcf5KZH2NXTTz+tDRs22P11zblz5xQUFKQNGzbo0Ucftdv3AfKL80iY1LNnTx07dizn9mcgL/z8ClMyMzMVEBCgd999VwMHDjSdAwfHeTpM+eqrr9SmTRudPHmS252RK9YnOJrk5GQFBAToyy+/VNeuXU3nuLLjDjdAzg/YzuvixYtau3atVqxYoZUrV+rUqVPy8/NTgwYNcl4M169f3/hHb1qtVh08eFDbt2/POUTYt2+fLBaLHnroIYWGhiokJET33XefTQ84AXtw9gHy6tWrq1u3bho1apTpFIfG+go4tuPHj6tSpUravHmzGjVqZDrH4Rw9elR33HGHPvvsMz311FOmc3CLMjMztW3btpw9affu3fLw8FDdunVz3vx66KGHVKVKFdOpOnv2rHbu3Jlz2LVz506lpqaqWrVqCgkJUWhoqB5/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Xapbt66WL18up9Op119/XT169GCY9CutW7fWM888o927dys5OVm9evXS008/rXr16mnYsGH6+uuv5Xa7TccEAAQp+s2Sod+EN7hcLm4mRsDjfCgZzgfAjMzMTL344otq3ry5unXrpp07d2r69OnKyMjQ0qVLNXLkSJbHf6VWrVq69957tWrVKh0+fFj/+Mc/tHLlSsXFxaldu3Z64403dOrUKdMxAdthnl4yzNMB/6E+lQz1CTg/FsiD3KlTpzR9+nQ1btxYN954owoKCvTRRx/p4MGDmjJlipo3b246YsCLjIzUDTfcoM8//1yHDh3Sgw8+qHnz5qlp06bq0qWLlixZIj9c9I8At379eklSu3btvPK83NxcFRUVqVKlSl55HryP+lp21NfgU1RUpEOHDqlBgwamo9iSw+FQSkqK6RgwwO12a8mSJerdu7ccDodWrFihRx99VIcOHdK8efPUt29fhYeHm44Z8Nq2batXXnlFLpdLc+fO1U8//aS+ffuqadOmmj59us6cOWM6IgAgSNBvlh39JkqLBXIEMs6HsuN8AHwvLS1N48aNU0xMjCZPnqyrrrpKGzduVFJSku666y5Vr17ddMSAV6dOHU2YMEE7duzQhg0bFBcXpwkTJqhu3bq6++67tWvXLtMRAUtjnu4dzNMB76M+eQf1CTgXC+RBat++fXrggQdUr149PfHEE7rpppu0d+9eff311xo6dCgfyVdK0dHRevjhh7V792599tlnioiI0ODBg9WmTRu9//77KigoMB0RhiQmJqpJkyaqWbOmV5539i8s3EAeeKivvkF9DQ7p6ekqKChggdxHWCAPPmfOnNHMmTN1+eWX67rrrlPFihW1cuVK7dy5Uw8//LBq1aplOqIlRUZGaujQofr666+1detWXX311XrkkUcUExOjJ554QkePHjUdEQBgU/SbvkG/iZJwOp2Kjo42HQM4B+eDb3A+AN61YsUK9e/fX82aNdPXX3+t6dOny+Vy6Y033lBcXJzpeJbVpk0bvfHGGzp8+LAmTZqk5cuXq2XLlvrTn/6k5ORk0/EAS2Ge7hvM04Gyoz75BvUJ+AUL5EEmLS1Nt956qy677DJ9+umnmjRpkg4ePKjnn39eMTExpuPZRlhYmAYNGqSVK1cqOTlZzZo10+23364mTZro9ddfV35+vumI8LPExER16NDBa8/L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gZwTyK0PC+TSycrKuv7CXEtt3rwZjz76KNzd3SVOReYSEBCAzMxM0THITCZNmoQBAwZgypQpMBqNouOQmdXU1KCurk7yAnlFRQU8PDwkvaati4yMxLlz51BYWCg6ClkptVqN8+fP4+rVq6KjkBXi/o5upbGxEWVlZejcubPoKES39MMPPyAtLQ3x8fGio5BgWq0W69atw5IlS9ChQwfRcagFONXXsgwbNgw//vgj9Hq96ChEFqOqqgoXL17kVF8L165dO3Ts2BFZWVmio0imuroabm5uomOQldBqtXBzc0P37t1FR7F6bm5uCA4Oxi+//CI6CpHN4flPXn369AEAZGdnC05CREQkL04gp9tqKpBzklrrFBYWory83KQJ5FqtFseOHcNTTz1lhmRkLgEBASgvL8elS5dERyEzUCqVWL9+PX755Rds3bpVdBwys9LSUgBggdwChIeHQ6VS4eeffxYdhaxUSEgIjEYjnyBBJuH+jm6luLgYRqOR52ayaMuXL8ff/vY3hIaGio5Cgk2bNg39+/fHpEmTREehFuJUX8sybNgwlJWV4fjx46KjEFkMTvW1Hn379rWpAnlNTQ3atGkjOgZZCa1Wi7vuugtKpaxVCZsVERHBAjmRGfD8J68ePXrA2dkZZ86cER2FiIhIViyQ021dvnwZjo6O8PT0FB3FqjU9CtCUAvmnn36Krl274r777pM4FZlT05QVrVYrOAmZS1hYGCZPnowZM2agvLxcdBwyI3MVyCsrK/n7tYU8PDxw991349ChQ6KjkJXq1q0bOnTogLS0NNFRyApxf0e3UlxcDIAfvCbLdeTIEaSkpGDWrFmio5Bgn3/+OXbv3o233noLKpVKdBxqgerqauTm5nKqrwXp168funTpguTkZNFRiCyGVquFi4sLevToIToK3YatFcirq6tZIKdm02g03FNJKDw8HOnp6XwSPZGEeP6Tn0qlQs+ePTmBnIiI7A4L5HRbly9fRseOHaFQKERHsWpZWVnw9PSEj49Pi7/3v//9L8aMGcNPwluZzp07o3379tBoNKKjkBktWbIERqMR8+bNEx2FzMicE8hZIG+5yMhIFsipVYKDg5Geni46Blkh7u/oVoqKigCwQE6Wa8mSJRg0aBDuvfde0VFIoJqaGsycORPjx49HdHS06DjUQlqtllN9LYxCoUBMTAz27NkjOgqR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fxQsJFKW2rVr48knn8SCBQv4Kv9KUqlUGD9+PA4dOoSbN2+iXbt2ZSMvIiIiovtlMBjKXqB29epV/PDDD8JFREQkzWazITk5Ge3atZNOqTI5OTkckDuwzMxMzJkzByUlJdBqtThx4oR0EjmZl19+GRqNBjabDYmJidI5RIq2ePFixMbGIigoSDqFfgcvkJM927dvH7Zt24bS0lKoVCpuVZxMcXExL5ATkSJotVpeIK8Ahx2Qb9iwARaLBVarFbt27cLJkyelkxSncePGHJALi4iIQEZGBq5duyadQlRm5MiRaNOmDVxc/v+XkOLiYthsNvz444/o06cP2rZti6+++opfkImqwHPPPYfU1FTs27dPOsWhhYSE4NChQxg1ahRGjBiBuLi4sstbRERERJW1bt06aLVaALfeGnHx4sXCRUREJC0jIwN5eXlo3769dEqVycnJgY+Pj3QGVdLLL798xz9zQE41af369Th06FDZ9beMjAyYzWbhKiJlys/Px8aNGzF69GjpFPoDHJCTPXvllVeg0WgA3Dosd+zYMeEiqklms5kDciJSBA7IK8YhB+Rnz55Fenp62T9rNBosWLBAsEiZbl8gLy0tlU5xWhEREbDZbHxLP7IrarUa77///j2vId/+ApySkoLRo0fD19cXH374IfLy8mo6k0gxwsPDERUVhYULF0qnODw3NzfMnj0b69evx/fff4+oqCgcPXpUOouIiIgc2MqVK8seB5WUlGDDhg3Izs4WriIiIklJSUlQq9UICwuTTqkS165dg9ls5oDcQe3fvx8bN24s+36luLiYQyCqMVarFVOnTr3jGI3VakVqaqpgFZFyrVq1CjabDcOGDZNOod9RWloKi8XCATnZpe+++w4HDx4se9GXxWLBkSNHhKuoJlksFg7IiUgRNBpN2dcz+nMOOSDfvHkz1Gp12T8XFxdjwYIFKCgoEKxSnqZNm6K4uJhPfAry9fVFvXr1+ANdsjtDhw5FaGjoHX8X/7fS0lLYbDZcvHgRr7766l1XboioYsaPH481a9YgJydHOkURBg8ejKNHj6Jhw4bo1KkTPvnkE75gjoiIiCosLS0NJpPprl//5ptvBGqIiMheHD16FMHBwXB3d5dOqRJXrlwBADRo0EC4hCrKZrMhPj7+rp/hpqSkCBWRs/nyyy+RkZFxx8/dXFxceDSJqJosXrwY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AAAAAMAr7r333viN3/iNmD9/fnz729+OWbNm5V1S2bnpppviyiuvjLe+9a3xta99LaZMmZJ3SQAAAAAAB8J6HcgBAAAAAGASueWWW+JNb3pTnHvuubF8+XLh8Zy8733vi+9///uxfPnyOO+882Lz5s15lwQAAAAAcEAIkAMAAAAAwCTxr//6r3HppZfGVVddFbfddpuu1zk7++yz4/77749NmzbFueeeGy+88ELeJQEAAAAA7DcBcgAAAAAAmASuvfba+N3f/d346Ec/Gtdcc01UVPgT/mRwwgknxH333RcVFRVx5plnxpo1a/IuCQAAAABgv/jrMwAAAAAA5OwLX/hC/MEf/EH8/d//fXzuc5/LuxxGmDVrVtx9993R1NQUb3jDG2LdunV5lwQAAAAAsM8KxWKxmHcRAAAAAABQrq699tr4gz/4g/iHf/iH+MhHPpJ3OexBe3t7nHfeebF9+/b48Y9/HHPmzMm7JAAAAACA8VovQA4AAAAAADn56le/Gh/84AfjM5/5TPzFX/xF3uUwBps2bYpzzz03CoVC3HPPPdHS0pJ3SQAAAAAA4yFADgAAAAAAebjrrrvi7W9/e/z5n/95fPrTn867HMZhw4YNcdZZZ8WsWbPi7rvvjilTpuRdEgAAAADAWAmQAwAAAADARHvsscfi9a9/fVx44YXx9a9/PQqFQt4lMU5r1qyJM844I84555z45je/GRUVFXmXBAAAAAAwFuv9NRMAAAAAACbQCy+8EMuWLYslS5bEV7/6VeHxQ9Txxx8ft99+e3znO9+Jv/iLv8i7HAAAAACAMdOBHAAAAAAAJkhfX1+84Q1viLa2tvjJT34STU1NeZfEfvra174WH/jAB+Ib3/hGXHLJJXmXAwAAAACwN+ur8q4AAAAAAADKxdVXXx0rV66M//u//xMeP0xcdtll8eCDD8YVV1wRixYtite85jV5lwQAAAAAsEc6kAMAAAAAwARInapvu+22eOc735l3ORxA/f39cd5558WmTZvi4YcfjsbGxrxLAgAAAADYnfUC5AAAAAAAcJCtXbs2Xvva18YVV1wR11xzTd7lcBC88MILsXjx4nj7298e//Zv/5Z3OQAAAAAAuyNADgAAAAAAB9PAwECcffbZsW3btnjooYeirq4u75I4SO666654y1veEt/4xjfikksuybscAAAAAIDRrK/I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TZvi9NNPj7/8y7+M2267bULvu1zcf//98elPfzpeeumlCb9vAXIAAAAAYCIJkAMAAAAAwBi1tbVFRERzc/OE3u99990XPT098bd/+7fx2GOPTeh9l4t77703/uqv/io2btw44ffd3NwsQA4AAAAATBgBcgAAAAAAGKOurq6IiGhoaJjQ+21vb4+IiNNOO23c1x0aGjrQ5UxKY32ck/H5aGhoiB07duRdBgAAAABQJgTIAQAAAABgjPr6+iIioqamZsLu82Mf+1h86UtfioiIT3ziE3H55ZdHRMRHPvKRuOKKK2L9+vXxe7/3e9Ha2ppdZ9WqVXHhhRdGa2trNDQ0xNKlS+OOO+4Ydru/8zu/Ex/4wAfi6aefjiuvvDLmzp0b5513Xtx0000REXHNNdfEkiVL4ogjjogLLrggVq9ePaZ63//+98f73ve+XdZ/7nOfi7POOisGBgYiIuKSSy6Jz372s3H//ffHJZdcEq2trbFo0aL4/Oc/Pyzkvb+PcyyX+9CHPhT//M//HBERH/zgB+MjH/nImB7rgVJTUxO9vb0Tep8AAAAAQPkSIAcAAAAAgDFKId+JDJDPmTMnjjjiiIiImDt3bhx77LEREbFy5cq477774i1veUv80z/9UxxzzDEREbFixYpYunRprFq1Kj784Q/HJz7xiaisrIx3vetd8alPfSq73V/84hfx/e9/P84555z4yU9+Em94wxvivvvui/e///1x4YUXxp//+Z/H0UcfHa9//evjhz/8YbzxjW8cU/fuhx9+OB5++OFd1q9evTpWrFiR3cbdd98d119/fVx44YXR19cXH/rQh6K+vj4+9rGPxYc+9KHsevv7OMdyuQULFsTs2bOz5Ve/+tVj/wUdALW1tQLkAAAAAMCEKRSLxWLeRQAAAAAAwKHglltuiUsvvTQGBwcn9H6vv/76uOKKK+Lee++N17/+9RERce6558Y999wTb37zm+Mf/uEf4sQTT4xisRinn356rFu3Lh599NGYM2dORET09/fHsmXLYsWKFfHoo4/GggULYunSpfHQQw/Fpz/96fjLv/zLiIi466674sILL4wpU6bEL37xi1iwYEFERFx++eVxww03xJNPPpmt251FixbF0NBQrFq1atj6K664Iq6//vro7e2NmpqaaGlpia1bt8Y111wTf/RHfxQREUNDQ/HGN74xfvSj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3HPP5TOf+UzROQAAAAAA/7DtqKILAAAAAADgSDRr1qy89dZbmTFjRtEpHGY7d+7Mt7/97Xzta18zHgcAAAAA2hw3kAMAAAAAwCHyy1/+Mtdff33WrFmToUOHFp3DYTJ58uQ888wz2bhxY6qqqorOAQAAAAD4/20zIAcAAAAAgEOkVCrl3HPPzZtvvplnn302lZWVRSdxiP32t7/N+PHjs2jRolx00UVF5wAAAAAA/G8G5AAAAAAAcCg1Nzfn05/+dKZNm5ZZs2YVncMh9Prrr+eMM87IRRddlLvvvrvoHAAAAACAf8WAHAAAAAAADrV77703U6dOzaJFi/L5z3++6BwOgVKplIsvvjhNTU1Zv359qqqqik4CAAAAAPhXth1VdAEAAAAAABzppkyZkrq6ukybNi3bt28vOodD4NZbb80TTzyR+vp643EAAAAAoE1zAzkAAAAAABwGb7/9doYPH57jjjsuy5cvT+fOnYtO4iBZunRpLrjggvz4xz/O9OnTi84BAAAAAPhPthmQAwAAAADAYbJp06YMGzYsU6ZMye233150DgfB1q1bM2TIkJx//vl58MEHi84BAAAAAPggBuQAAAAAAHA4LViwIHV1dbn99ttz/fXXF53Dh/D2229nxIgRaW1tzZo1a3LMMccUnQQAAAAA8EG2dSy6AAAAAAAAysmXvvSlvPzyy/n617+enj17Zty4cUUncQBaW1szefLkbN++PatXrzYeBwAAAADaDTeQAwAAAABAAa666qosWLAgy5cvz+DBg4vOYT995StfSX19fZ566qkMHTq06BwAAAAAgH217aiiCwAAAAAAoBzdcccdOfvss3PhhRdm06ZNReewH77zne9k7ty5qa+vNx4HAAAAANodA3IAAAAAAChAp06d8sgjj6R///4599xz09TUVHQS++Dmm2/OD3/4w9xxxx0ZN25c0TkAAAAAAPutolQqlYqOAAAAAACAcrVr166cf/752bFjR5588sl88pOfLDqJf+PWW2/NTTfdlDlz5uTaa68tOgcAAAAA4EBscwM5AAAAAAAU6Pjjj09DQ0NOOumkjBw5Mps2bSo6iX/hu9/9bm666abcdtttxuMAAAAAQLtmQA4AAAAAAAWrrq7O0qVLc+qpp2bUqFH5/e9/X3QS/8/evXszffr03HLLLbnnnnvy1a9+tegkAAAAAIAPxYAcAAAAAADagOOOOy6LFy/OkCFDMnr06Dz22GNFJ5W9d999N3V1dbnjjjvy61//OlOnTi06CQAAAADgQzMgBwAAAACANqJr165ZtGhRrrjiinzxi1/Mz3/+86KTylZLS0suuOCCLF26NIsXL86ECROKTgIAAAAAOCg6Fh0AAAAAAAD8t44dO2bOnDnp169fpk+fnsbGxtx2223p3Llz0WllY/369bnsssuSJKtWrUq/fv0KLgIAAAAAOHjcQA4AAAAAAG3Q9OnTs2DBgjz44IMZNWpUXnvttaKTysLcuXNz9tln59RTT82zzz5rPA4AAAAAHHEMyAEAAAAAoI269NJL8+yzz2bXrl0ZPHhwHn/88aKTjli7d+/OtGnTMm3atNxwww1paGhIt27dis4CAAAAADjoDMgBAAAAAKAN69evX9auXZsxY8bkoosuyje+8Y289957RWcdUdatW5fBgwfn0UcfzW9+85vMnDkzHTp0KDoLAAAAAOCQMCAHAAAAAIA2rqqqKvfff3/uv//+3HvvvRk6dGjWrl1bdFa79/777+f73/9+amtr06tXr7z44osZN25c0VkAAAAAAIeUATkAAAAAALQTkyZNyosvvpju3buntrY2N9xwQ3bv3l10Vru0atWqDB48OD/4wQ9y6623ZvHixenRo0fRWQAAAAAAh5wBOQAAAAAAtCO9evXKkiVLctddd+W+++7LwIEDs2DBgqKz2o0dO3bk2muvzYgRI9KzZ89s3LgxN954Y446yp9MAAAAAIDy4LehAAAAAADQzlRUVGTq1KnZtGlTRo8enbq6uowaNSrr168vOq3N+vvf/55Zs2alb9++WbRoUe69994sXrw4vXv3LjoNAAAAAOCwMiAHAAAAAIB26mMf+1h+9atfZd26ddm7d2+GDh2aiRMnpqmpqei0NmPv3r1ZsGBBBgwYkJtuuilTpkzJK6+8ksmTJxedBgAAAABQCANyAAAAAABo54YMGZIVK1akvr4+jY2NGThwYK666qr88Y9/LDqtMHv27El9fX0GDBiQSZMm5ZxzzklTU1Nmz56dqqqqovMAAAAAAApjQA4AAAAAAEeAioqK1NXVZePGjbn77rvz9NNP57TTTsull16aVatWFZ132OzevTuzZ89Onz59MmXKlAwZMiSbNm3KPffck5qamqLzAAAAAAAKV1EqlUpFRwAAAAAAAAdXa2trHnnkkfzoRz/K2rVrc9ZZZ+Waa67J5ZdfnmOPPbbovIOusbExd911V+677768//77ufLKK3PjjTfmlFNOKToNAAAAAKAt2WZADgAAAAAAR7hnnnkmc+bMycKFC9OpU6fU1dVl8uTJGTFiRDp06FB03gHbsWNHHn744cybNy9r165Nnz59Mm3atFxzzTX5yEc+UnQeAAAAAEBbZEAOAAAAAADl4s0338z999+fuXPn5oUXXkj37t0zYcKEXHLJJTnnnHPSqVOnohM/0Pbt2/PYY49lwYIFWbZsWY4++uiMHz8+V199dUaNGpWKioqiEwEAAAAA2jIDcgAAAAAAKEdNTU156KGHMn/+/Lz00kupqqrKeeedlwsvvDAjR45Mv3792sQYe/fu3VmzZk2efPLJNDQ0ZMOGDTn66KMzduzY1NXV5eKLL07Xrl2LzgQAAAAAaC8MyAEAAAAAoNxt3rw5DQ0NaWhoyLJly/LXv/411dXVOfvsszN8+PAMGjQoAwcOTE1NzSHtePfdd/PSSy+lsbEx69evz8qVK7Nhw4bs2bMnffv2zYUXXpixY8dm1KhR6dKlyyFtAQAAAAA4QhmQAwAAAAAA/23Pnj3/HG+vXLkyzz33XLZs2ZIkOf7449O3b9/U1NSkd+/e6dWrVz7+8Y+nW7duqa6uTnV1dSorK1NRUZETTjghSfK3v/0t77zzTpJk165d2bFjR3bu3JmWlpa89tpraW5uTnNzczZv3pzm5ua0tramS5cuOf300/PZz342tbW1qa2tTY8ePYr6SAAAAAAAjiQG5AAAAAAAwH+2a9eubNy4MY2NjfnDH/6Q5ubmbNmyJVu3bk1LS8sBfc/OnTune/fu6d27d2pqanLKKaekf//+GTRoUE499dR06NDhIL8FAAAAAAAxIAcAAAAAAD6MPXv2pKWlJS0tLXnzzTfz3nvvpVQq5a233kqSVFZWpmvXrkmSE0444Z+3lVdVVRWZDQAAAABQrgzIAQAAAAAAAAAAAADKxLajii4AAAAAAAAAAAAAAODwMCAHAAAAAAAAAAAAACgTBuQAAAAAAAAAAAAAAGXivwAmGd24W5rMxAAAAABJRU5ErkJggg==", + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "print(dask_results.dask)\n", + "dask_results.visualize(optimize_graph=False)\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Or a peek at the optimized results:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/saransh/Code/HEP/coffea/.env/lib/python3.11/site-packages/coffea/ml_tools/helper.py:175: UserWarning: No format checks were performed on input!\n", + " warnings.warn(\"No format checks were performed on input!\")\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dask_results.visualize(optimize_graph=True)\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Comments about generalizing to other ML tools\n", + "\n", + "All ML wrappers provided in the `coffea.mltools` module (`triton_wrapper` for\n", + "[triton][triton] server inference, `torch_wrapper` for pytorch,\n", + "`xgboost_wrapper` for [xgboost][xgboost] inference, `tf_wrapper` for tensorflow) \n", + "follow the same design: analyzers is responsible for providing the model of \n", + "interest, along with providing an inherited class that overloads of the following\n", + "methods to data type conversion:\n", + "\n", + "- `prepare_awkward`: converting awkward arrays to `numpy`-compatible awkward\n", + " arrays, the output arrays should be in the format of a tuple `a` and a\n", + " dictionary `b`, which can be expanded out to the input of the ML tool like\n", + " `model(*a, **b)`. Notice some additional trivial conversion, such as the\n", + " conversion to available kernels for `pytorch`, converting to a matrix format\n", + " for `xgboost`, and slice of array for `triton` is handled automatically by the\n", + " respective wrappers.\n", + "- `postprocess_awkward` (optional): converting the trivial converted numpy array\n", + " results back to the analysis specific format. If this is not provided, then a\n", + " simple `ak.from_numpy` conversion results is returned.\n", + "\n", + "If the ML tool of choice for your analysis has not been implemented by the\n", + "`coffea.mltools` modules, consider constructing your own with the provided\n", + "`numpy_call_wrapper` base class in `coffea.mltools`. Aside from the functions\n", + "listed above, you will also need to provide the `numpy_call` method to perform\n", + "any additional data format conversions, and call the ML tool of choice. If you\n", + "think your implementation is general, also consider submitting a PR to the\n", + "`coffea` repository!\n", + "\n", + "[triton]: https://catalog.ngc.nvidia.com/orgs/nvidia/containers/tritonserver\n", + "[xgboost]: https://xgboost.readthedocs.io/en/stable/\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Additional comments on common `prepare_awkward` patterns\n", + "\n", + "The key requirement of all wrapper classes in `ml_tools` pacakge, is that to convert\n", + "awkward arrays into `numpy`-compatible formats using just `awkward` related tools, \n", + "which ensures that no eager data conversion is performed on dask arrays. Below are\n", + "some common patterns that are useful when defining a user-level class.\n", + "\n", + "### Casting multiple fields a collection to be separate axis\n", + "\n", + "Given our collection of particles of length $N$, our tool is interested in just a \n", + "sub-set of fields is to be represented as an $N\\time M$ array. You can do acheive this \n", + "using just `ak.concatenate` and dimension expansion with `np.newaxis`:\n", + "\n", + "```python\n", + "fields_of_interest = [\"field1\", \"field2\", \"field3\"]\n", + "part_np_array = ak.concatenate(\n", + " [\n", + " part[field][:,np.newaxis] # Expanding length N array to Nx1\n", + " for field in fields_of_interest\n", + " ],\n", + " axis=1,\n", + ") # This should now be a Nx3 array\n", + "```\n", + "\n", + "### Fixing collection dimensions\n", + "\n", + "Many ML inteference tools work with fixed dimension inputs, with missing entries \n", + "being set to a placeholder values. A common method for achieving this in awkward\n", + "is with `pad_none`/`fill_none` calls, for example to pad the number of particles\n", + "passed to the inference tool in each event to be a fixed length of 128:\n", + "\n", + "```python\n", + "part_padded = ak.fill_none(\n", + " ak.pad_none(part, 128, axis=1, clip=True),\n", + " -1000, # Placeholder value\n", + " axis=1,\n", + ")\n", + "```\n", + "\n", + "The dimensions of this resulting `part_padded` array is still `N x var`, indicating\n", + "that the number of entries `axis=1` can potentially be variable. Depending on the \n", + "ML tools being used, this axis dimension may to be fixed. To strictly convert this \n", + "to a `Nx128` array, one can call `flatten`/`unflatten` pairs:\n", + "\n", + "```python\n", + "part_padded = ak.flatten(part_padded)\n", + "part_padded = ak.unflatten(part_padded, 128) # Now this is a Nx128 array\n", + "```" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.11.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/notebooks/nanoevents.html b/notebooks/nanoevents.html new file mode 100644 index 000000000..850645de3 --- /dev/null +++ b/notebooks/nanoevents.html @@ -0,0 +1,775 @@ + + + + + + + Reading data with coffea NanoEvents — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Reading data with coffea NanoEvents

+

This is a rendered copy of nanoevents.ipynb. You can optionally run it interactively on binder at this link

+

NanoEvents is a Coffea utility to wrap flat nTuple structures (such as the CMS NanoAOD format) into a single awkward array with appropriate object methods (such as Lorentz vector methods\(^*\)), cross references, and nested objects, all lazily accessed\(^\dagger\) from the source ROOT TTree via uproot. The interpretation of the TTree data is configurable via schema +objects, which are community-supplied for various source file types. These schema objects allow a richer interpretation of the file contents than the uproot.lazy methods. Currently available schemas include:

+
    +
  • BaseSchema, which provides a simple representation of the input TTree, where each branch is available verbatim as events.branch_name, effectively the same behavior as uproot.lazy. Any branches that uproot supports at “full speed” (i.e. that are fully split and either flat or single-jagged) can be read by this schema;

  • +
  • NanoAODSchema, which is optimized to provide all methods and cross-references in CMS NanoAOD format;

  • +
  • PFNanoAODSchema, which builds a double-jagged particle flow candidate colllection events.jet.constituents from compatible PFNanoAOD input files;

  • +
  • TreeMakerSchema which is designed to read TTrees made by TreeMaker, an alternative CMS nTuplization format;

  • +
  • PHYSLITESchema, for the ATLAS DAOD_PHYSLITE derivation, a compact centrally-produced data format similar to CMS NanoAOD; and

  • +
  • DelphesSchema, for reading Delphes fast simulation nTuples.

  • +
+

We welcome contributions for new schemas, and can assist with the design of them.

+

\(^*\) Vector methods are currently made possible via the coffea vector methods mixin class structure. In a future version of coffea, they will instead be provided by the dedicated scikit-hep vector library, which provides a more rich feature set. The coffea vector methods predate the release of the vector library.

+

\(^\dagger\) Lazy access refers to only fetching the needed data from the (possibly remote) file when a sub-array is first accessed. The sub-array is then materialized and subsequent access of the sub-array uses a cached value in memory. As such, fully materializing a NanoEvents object may require a significant amount of memory.

+

In this demo, we will use NanoEvents to read a small CMS NanoAOD sample. The events object can be instantiated as follows:

+
+
[1]:
+
+
+
import awkward as ak
+from coffea.nanoevents import NanoEventsFactory, NanoAODSchema
+
+NanoAODSchema.warn_missing_crossrefs = False
+
+fname = "https://raw.githubusercontent.com/CoffeaTeam/coffea/master/tests/samples/nano_dy.root"
+events = NanoEventsFactory.from_root(
+    {fname: "Events"},
+    schemaclass=NanoAODSchema,
+    metadata={"dataset": "DYJets"},
+).events()
+
+
+
+

In the factory constructor, we also pass the desired schema version (the latest version of NanoAOD can be built with schemaclass=NanoAODSchema) for this file and some extra metadata that we can later access with events.metadata. In a later example, we will show how to set up this metadata in coffea processors where the events object is pre-created for you. Consider looking at the +from_root class method to see all optional arguments.

+

The events object is an awkward array, which at its top level is a record array with one record for each “collection”, where a collection is a grouping of fields (TBranches) based on the naming conventions of NanoAODSchema. For example, in the file we opened, the branches:

+
Generator_binvar
+Generator_scalePDF
+Generator_weight
+Generator_x1
+Generator_x2
+Generator_xpdf1
+Generator_xpdf2
+Generator_id1
+Generator_id2
+
+
+

are grouped into one sub-record named Generator which can be accessed using either getitem or getattr syntax, i.e. events["Generator"] or events.Generator. e.g.

+
+
[2]:
+
+
+
events.Generator.id1.compute()
+
+
+
+
+
[2]:
+
+
+
+
[1,
+ -1,
+ -1,
+ 21,
+ 21,
+ 4,
+ 2,
+ -2,
+ 2,
+ 1,
+ ...,
+ 1,
+ -2,
+ 2,
+ 1,
+ 2,
+ -2,
+ -1,
+ 2,
+ 1]
+--------------------------------------------------------------
+type: 40 * int32[parameters={"__doc__": "id of first parton"}]
+
+
+
[3]:
+
+
+
# all names can be listed with:
+events.Generator.fields
+
+
+
+
+
[3]:
+
+
+
+
+['binvar', 'scalePDF', 'weight', 'x1', 'x2', 'xpdf1', 'xpdf2', 'id1', 'id2']
+
+
+

In CMS NanoAOD, each TBranch has a self-documenting help string embedded in the title field, which is carried into the NanoEvents, e.g. executing the following cell should produce a help pop-up:

+
Type:            Array
+String form:     [1, -1, -1, 21, 21, 4, 2, -2, 2, 1, 3, 1, ... -1, -1, 1, -2, 2, 1, 2, -2, -1, 2, 1]
+Length:          40
+File:            ~/src/awkward-1.0/awkward1/highlevel.py
+Docstring:       id of first parton
+Class docstring: ...
+
+
+

where the Docstring shows information about the content of this array.

+
+
[4]:
+
+
+
events.Generator.id1?
+
+
+
+
+
+
+
+
+Type:            Array
+String form:     dask.awkward<id1, npartitions=1>
+File:            /opt/homebrew/lib/python3.11/site-packages/dask_awkward/lib/core.py
+Docstring:       id of first parton
+Class docstring:
+Partitioned, lazy, and parallel Awkward Array Dask collection.
+
+The class constructor is not intended for users. Instead use
+factory functions like :py:func:`~dask_awkward.from_parquet`,
+:py:func:`~dask_awkward.from_json`, etc.
+
+Within dask-awkward the ``new_array_object`` factory function is
+used for creating new instances.
+
+
+
+

Based on a collection’s name or contents, some collections acquire additional methods, which are extra features exposed by the code in the mixin classes of the coffea.nanoevents.methods modules. For example, although events.GenJet has the fields:

+
+
[5]:
+
+
+
events.GenJet.fields
+
+
+
+
+
[5]:
+
+
+
+
+['eta', 'mass', 'phi', 'pt', 'partonFlavour', 'hadronFlavour']
+
+
+

we can access additional attributes associated to each generated jet by virtue of the fact that they can be interpreted as Lorentz vectors:

+
+
[6]:
+
+
+
events.GenJet.energy.compute()
+
+
+
+
+
[6]:
+
+
+
+
[[217, 670, 258],
+ [34.5, 98.3, 1.16e+03, 38.1, 20.4, 29.7],
+ [306, 62.8, 74.1, 769, 11.2],
+ [170, 117, 29.3, 45.9],
+ [101, 117, 129, 15.6],
+ [63.1, 37.2, 33.7, 36.2],
+ [303, 50.5, 1.29e+03, 278],
+ [615, 282, 2.11e+03],
+ [195, 47.6],
+ [95, 44.6, 223, 318, 30, 108, 62.9],
+ ...,
+ [41.6, 36.7, 78.9, 13],
+ [1.51e+03, 1.23e+03],
+ [152, 160, 777, 27.1, 346, 65.1, 37.9, 27.2, 16.3],
+ [35.4, 20.4],
+ [20.1, 16.2],
+ [34],
+ [553, 283],
+ [771, 452, 16],
+ [76.9]]
+----------------------------------------------------
+type: 40 * var * float32
+
+

We can call more complex methods, like computing the distance \(\Delta R = \sqrt{\Delta \eta^2 + \Delta \phi ^2}\) between two LorentzVector objects:

+
+
[7]:
+
+
+
# find distance between leading jet and all electrons in each event
+dr = events.Jet[:, 0].delta_r(events.Electron)
+dr.compute()
+
+
+
+
+
[7]:
+
+
+
+
[[],
+ [3.13],
+ [3.45, 2.18],
+ [1.58, 3.76],
+ [],
+ [0.053],
+ [0.0748],
+ [],
+ [],
+ [1.82],
+ ...,
+ [0.00115],
+ [],
+ [0.0149],
+ [],
+ [0.0308],
+ [],
+ [0.0858],
+ [],
+ []]
+------------------------
+type: 40 * var * float32
+
+
+
[8]:
+
+
+
# find minimum distance
+ak.min(dr, axis=1).compute()
+
+
+
+
+
[8]:
+
+
+
+
[None,
+ 3.13,
+ 2.18,
+ 1.58,
+ None,
+ 0.053,
+ 0.0748,
+ None,
+ None,
+ 1.82,
+ ...,
+ 0.00115,
+ None,
+ 0.0149,
+ None,
+ 0.0308,
+ None,
+ 0.0858,
+ None,
+ None]
+-------------------
+type: 40 * ?float32
+
+
+
[9]:
+
+
+
# a convenience method for this operation on all jets is available
+print(events.Jet.nearest(events.Electron).compute())
+
+
+
+
+
+
+
+
+[[None, None, None, None, None], [Electron, Electron, ..., Electron], ..., [None, None]]
+
+
+

The assignment of methods classes to collections is done inside the schema object during the initial creation of the array, governed by the awkward array’s __record__ parameter and the associated behavior. See ak.behavior for a more detailed explanation of array behaviors.

+

Additional methods provide convenience functions for interpreting some branches, e.g. CMS NanoAOD packs several jet identification flag bits into a single integer, jetId. By implementing the bit-twiddling in the Jet mixin, the analsyis code becomes more clear:

+
+
[10]:
+
+
+
print(events.Jet.jetId.compute())
+print(events.Jet.isTight.compute())
+
+
+
+
+
+
+
+
+[[6, 6, 6, 6, 6], [6, 2, 6, 6, 6, 6, 6, 0], ..., [6, 6, 0, ..., 6, 6], [6, 6]]
+[[True, True, True, True, True], [True, True, ..., False], ..., [True, True]]
+
+
+

We can also define convenience functions to unpack and apply some mask to a set of flags, e.g. for generated particles:

+
+
[11]:
+
+
+
print(f"Raw status flags: {events.GenPart.statusFlags.compute()}")
+events.GenPart.hasFlags(['isPrompt', 'isLastCopy']);
+
+
+
+
+
+
+
+
+Raw status flags: [[10625, 27009, 4481, 22913, 257, ..., 13884, 13884, 13884, 12876, 12876], ...]
+
+
+

CMS NanoAOD also contains pre-computed cross-references for some types of collections. For example, there is a TBranch Electron_genPartIdx which indexes the GenPart collection per event to give the matched generated particle, and -1 if no match is found. NanoEvents transforms these indices into an awkward indexed array pointing to the collection, so that one can directly access the matched particle using getattr syntax:

+
+
[12]:
+
+
+
events.Electron.matched_gen.pdgId.compute()
+
+
+
+
+
[12]:
+
+
+
+
[[],
+ [-11],
+ [-11, 11],
+ [22, None],
+ [],
+ [None],
+ [None],
+ [],
+ [],
+ [11],
+ ...,
+ [11],
+ [],
+ [11],
+ [],
+ [-11],
+ [],
+ [None],
+ [],
+ []]
+---------------------------------------------------------
+type: 40 * var * ?int32[parameters={"__doc__": "PDG id"}]
+
+
+
[13]:
+
+
+
events.Muon[ak.num(events.Muon)>0].matched_jet.pt.compute()
+
+
+
+
+
[13]:
+
+
+
+
[[84.4, 29.4],
+ [31.1],
+ [53.4, 81.9],
+ [29.2],
+ [17.5],
+ [65.9, 47.8],
+ [58.5, 44.7],
+ [50.2, 45.2],
+ [33.3, 25.9],
+ [None],
+ [26.1],
+ [25.8]]
+-------------------------------------------------------
+type: 12 * var * ?float32[parameters={"__doc__": "pt"}]
+
+

For generated particles, the parent index is similarly mapped:

+
+
[14]:
+
+
+
events.GenPart.parent.pdgId.compute()
+
+
+
+
+
[14]:
+
+
+
+
[[None, None, 1, 1, 23, 23, 23, 23, ..., 15, -15, -15, -15, -15, -15, 111, 111],
+ [None, None, -1, 23, 23, 23, 23, ..., -11, None, None, None, None, None, 433],
+ [None, None, -1, -1, 23, 23, 23, 23, ..., -423, -1, -1, -421, -421, 111, 111],
+ [None, None, 21, 21, 23, -1, 23, 23, ..., -15, -15, -15, -15, -15, 111, 111],
+ [None, None, 21, 21, 23, 23, 23, 23, ..., 13, 13, -13, 1, None, None, 2, 2],
+ [None, None, 4, 23, 23, 23, 23, 23, ..., -15, -15, -15, 15, 15, 15, 423, 311],
+ [None, None, 2, 2, 2, 23, 23, 2, 23, ..., -13, 13, 2, 2, 2, 2, 111, 111, 111],
+ [None, None, -2, -2, 23, 21, 21, 23, 23, ..., 21, 21, 21, 21, None, 423, 2, 2],
+ [None, None, 2, 23, 23, 23, 23, 23, ..., -15, -15, -15, -15, 111, 111, 311],
+ [None, None, 1, 1, 1, 23, 21, 23, 23, 23, ..., -411, 21, 21, 1, 1, 1, 1, 3, 3],
+ ...,
+ [None, None, 1, 23, 23, 23, 23, 23, ..., -15, -15, -15, -15, 1, 1, 111, 111],
+ [None, None, -2, 23, 23, 23, 23, 23, 13, 13, -13, -13, -13, 13],
+ [None, None, 2, 2, 2, 23, 2, 23, ..., None, -413, 413, 413, 2, 2, -421, -421],
+ [None, None, 1, 23, 23, 23, 23, 23, ..., -15, 15, 15, 15, -15, -15, -15, -15],
+ [None, None, 2, 2, 23, 23, 21, 23, ..., 15, 15, 15, -15, -15, -15, 111, 111],
+ [None, None, -2, 23, 23, None, 23, 23, ..., -15, -15, -15, 423, 4, 4, 3, 3],
+ [None, None, -1, 23, 23, 23],
+ [None, None, 2, 23, 23, 23, 23, -11, -11, 11],
+ [None, None, 1, 1, 23, 23, 23, 23, ..., -15, -15, -15, 111, 111, 111, 111]]
+--------------------------------------------------------------------------------
+type: 40 * var * ?int32[parameters={"__doc__": "PDG id"}]
+
+

In addition, using the parent index, a helper method computes the inverse mapping, namely, children. As such, one can find particle siblings with:

+
+
[15]:
+
+
+
events.GenPart.parent.children.pdgId.compute()
+# notice this is a doubly-jagged array
+
+
+
+
+
[15]:
+
+
+
+
[[None, None, [23, 21], ..., [-16, 111, ..., 211, -211], [22, 22], [22, 22]],
+ [None, None, [23], [23], [23], [23], ..., None, None, None, None, None, [431]],
+ [None, None, [23, -1], [23, -1], [23], ..., [13, -14], [13, -14], [22], [22]],
+ [None, None, [23, -1], ..., [-16, 111, ..., 211, -211], [22, 22], [22, 22]],
+ [None, None, [23, 1], [23, 1], [23], ..., None, None, [11, -11], [11, -11]],
+ [None, None, [23], [23], ..., [16, 13, -14], [16, 13, -14], [421], [310]],
+ [None, None, [23, 2, 2], [23, 2, 2], ..., [...], [22], [11, -11], [11, -11]],
+ [None, None, [23, 21], [23, 21], [23], ..., None, [421], [11, -11], [11, -11]],
+ [None, None, [23], [23], ..., [-16, 111, ..., 311], [22, 22], [22, 22], [310]],
+ [None, None, [23, 21, 21], [23, ...], ..., [11, -11], [11, -11], [11, -11]],
+ ...,
+ [None, None, [23], [23], [23], ..., [11, -11], [11, -11], [22, 22], [22, 22]],
+ [None, None, [23], [23], [23], ..., [...], [-13], [-13, 22], [-13, 22], [13]],
+ [None, None, [23, 2, 21], ..., [2, 21, ..., 11, -11], [13, -14], [13, -14]],
+ [None, None, [23], ..., [...], [-16, 211, 211, -211], [-16, 211, 211, -211]],
+ [None, None, [23, 21], [23, 21], ..., [-16, -11, 12], [22, 22], [22, 22]],
+ [None, None, [23], [23], ..., [423, -421, 11, -11], [11, -11], [11, -11]],
+ [None, None, [23], [23], [-13, 13], [-13, 13]],
+ [None, None, [23], [23], [23], ..., [-11, 11], [-11, 22], [-11, 22], [11]],
+ [None, None, [23, 21], [23, 21], ..., [22, ...], [22, 22], [22, 22], [22, 22]]]
+--------------------------------------------------------------------------------
+type: 40 * var * option[var * ?int32[parameters={"__doc__": "PDG id"}]]
+
+

Since often one wants to shortcut repeated particles in a decay sequence, a helper method distinctParent is also available. Here we use it to find the parent particle ID for all prompt electrons:

+
+
[16]:
+
+
+
events.GenPart[
+    (abs(events.GenPart.pdgId) == 11)
+    & events.GenPart.hasFlags(['isPrompt', 'isLastCopy'])
+].distinctParent.pdgId.compute()
+
+
+
+
+
[16]:
+
+
+
+
[[],
+ [23, 23],
+ [23, 23],
+ [],
+ [],
+ [],
+ [],
+ [23, 23],
+ [],
+ [23, 23],
+ ...,
+ [],
+ [],
+ [23, 23],
+ [],
+ [],
+ [],
+ [],
+ [23, 23],
+ []]
+---------------------------------------------------------
+type: 40 * var * ?int32[parameters={"__doc__": "PDG id"}]
+
+

Events can be filtered like any other awkward array using boolean fancy-indexing

+
+
[17]:
+
+
+
mmevents = events[ak.num(events.Muon) == 2]
+zmm = mmevents.Muon[:, 0] + mmevents.Muon[:, 1]
+zmm.mass.compute()
+
+
+
+
+
[17]:
+
+
+
+
[94.6,
+ 87.6,
+ 88,
+ 90.4,
+ 89.1,
+ 31.6]
+-----------------
+type: 6 * float32
+
+
+
[18]:
+
+
+
# a convenience method is available to sum vectors along an axis:
+mmevents.Muon.sum(axis=1).mass.compute()
+
+
+
+
+
[18]:
+
+
+
+
[94.6,
+ 87.6,
+ 88,
+ 90.4,
+ 89.1,
+ 31.6]
+-----------------
+type: 6 * float32
+
+

As expected for this sample, most of the dimuon events have a pair invariant mass close to that of a Z boson. But what about the last event? Let’s take a look at the generator information:

+
+
[19]:
+
+
+
print(mmevents[-1].Muon.matched_gen.pdgId.compute())
+print(mmevents[-1].Muon.matched_gen.hasFlags(["isPrompt"]).compute())
+
+
+
+
+
+
+
+
+[-13, 13]
+[False, False]
+
+
+

So they are real generated muons, but they are not prompt (i.e. from the initial decay of a heavy resonance)

+

Let’s look at their parent particles:

+
+
[20]:
+
+
+
mmevents[-1].Muon.matched_gen.parent.pdgId.compute()
+
+
+
+
+
[20]:
+
+
+
+
[-15,
+ 15]
+--------------------------------------------------
+type: 2 * ?int32[parameters={"__doc__": "PDG id"}]
+
+

aha! They are muons coming from tau lepton decays, and hence a fair amount of the Z mass is carried away by the neutrinos:

+
+
[21]:
+
+
+
print(mmevents[-1].Muon.matched_gen.sum().mass.compute())
+print(mmevents[-1].Muon.matched_gen.parent.sum().mass.compute())
+
+
+
+
+
+
+
+
+31.265245
+91.68365
+
+
+

One can assign new variables to the arrays, with some caveats:

+
    +
  • Assignment must use setitem (events["path", "to", "name"] = value)

  • +
  • Assignment to a sliced events won’t be accessible from the original variable

  • +
  • New variables are not visible from cross-references

  • +
+
+
[22]:
+
+
+
mmevents["Electron", "myvariable"] = mmevents.Electron.pt + zmm.mass
+mmevents.Electron.myvariable.compute()
+
+
+
+
+
[22]:
+
+
+
+
[[],
+ [121],
+ [],
+ [],
+ [],
+ []]
+-----------------------
+type: 6 * var * float32
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/notebooks/nanoevents.ipynb b/notebooks/nanoevents.ipynb new file mode 100644 index 000000000..4946e4427 --- /dev/null +++ b/notebooks/nanoevents.ipynb @@ -0,0 +1,894 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Reading data with coffea NanoEvents\n", + "\n", + "This is a rendered copy of [nanoevents.ipynb](https://github.com/CoffeaTeam/coffea/blob/master/binder/nanoevents.ipynb). You can optionally run it interactively on [binder at this link](https://mybinder.org/v2/gh/coffeateam/coffea/master?filepath=binder%2Fnanoevents.ipynb)\n", + "\n", + "NanoEvents is a Coffea utility to wrap flat nTuple structures (such as the CMS [NanoAOD](https://www.epj-conferences.org/articles/epjconf/pdf/2019/19/epjconf_chep2018_06021.pdf) format) into a single awkward array with appropriate object methods (such as Lorentz vector methods$^*$), cross references, and nested objects, all lazily accessed$^\\dagger$ from the source ROOT TTree via uproot. The interpretation of the TTree data is configurable via [schema objects](https://coffeateam.github.io/coffea/modules/coffea.nanoevents.html#classes), which are community-supplied for various source file types. These schema objects allow a richer interpretation of the file contents than the [uproot.lazy](https://uproot4.readthedocs.io/en/latest/uproot4.behaviors.TBranch.lazy.html) methods. Currently available schemas include:\n", + "\n", + " - `BaseSchema`, which provides a simple representation of the input TTree, where each branch is available verbatim as `events.branch_name`, effectively the same behavior as `uproot.lazy`. Any branches that uproot supports at \"full speed\" (i.e. that are fully split and either flat or single-jagged) can be read by this schema;\n", + " - `NanoAODSchema`, which is optimized to provide all methods and cross-references in CMS NanoAOD format;\n", + " - `PFNanoAODSchema`, which builds a double-jagged particle flow candidate colllection `events.jet.constituents` from compatible PFNanoAOD input files;\n", + " - `TreeMakerSchema` which is designed to read TTrees made by [TreeMaker](https://github.com/TreeMaker/TreeMaker), an alternative CMS nTuplization format;\n", + " - `PHYSLITESchema`, for the ATLAS DAOD_PHYSLITE derivation, a compact centrally-produced data format similar to CMS NanoAOD; and\n", + " - `DelphesSchema`, for reading Delphes fast simulation [nTuples](https://cp3.irmp.ucl.ac.be/projects/delphes/wiki/WorkBook/RootTreeDescription).\n", + "\n", + "We welcome contributions for new schemas, and can assist with the design of them.\n", + "\n", + "$^*$ Vector methods are currently made possible via the [coffea vector](https://coffeateam.github.io/coffea/modules/coffea.nanoevents.methods.vector.html) methods mixin class structure. In a future version of coffea, they will instead be provided by the dedicated scikit-hep [vector](https://vector.readthedocs.io/en/latest/) library, which provides a more rich feature set. The coffea vector methods predate the release of the vector library.\n", + "\n", + "$^\\dagger$ _Lazy_ access refers to only fetching the needed data from the (possibly remote) file when a sub-array is first accessed. The sub-array is then _materialized_ and subsequent access of the sub-array uses a cached value in memory. As such, fully materializing a `NanoEvents` object may require a significant amount of memory.\n", + "\n", + "\n", + "In this demo, we will use NanoEvents to read a small CMS NanoAOD sample. The events object can be instantiated as follows:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import awkward as ak\n", + "from coffea.nanoevents import NanoEventsFactory, NanoAODSchema\n", + "\n", + "NanoAODSchema.warn_missing_crossrefs = False\n", + "\n", + "fname = \"https://raw.githubusercontent.com/CoffeaTeam/coffea/master/tests/samples/nano_dy.root\"\n", + "events = NanoEventsFactory.from_root(\n", + " {fname: \"Events\"},\n", + " schemaclass=NanoAODSchema,\n", + " metadata={\"dataset\": \"DYJets\"},\n", + ").events()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the factory constructor, we also pass the desired schema version (the latest version of NanoAOD can be built with `schemaclass=NanoAODSchema`) for this file and some extra metadata that we can later access with `events.metadata`. In a later example, we will show how to set up this metadata in coffea processors where the `events` object is pre-created for you. Consider looking at the [from_root](https://coffeateam.github.io/coffea/api/coffea.nanoevents.NanoEventsFactory.html#coffea.nanoevents.NanoEventsFactory.from_root) class method to see all optional arguments.\n", + "\n", + "The `events` object is an awkward array, which at its top level is a record array with one record for each \"collection\", where a collection is a grouping of fields (TBranches) based on the naming conventions of [NanoAODSchema](https://coffeateam.github.io/coffea/api/coffea.nanoevents.NanoAODSchema.html). For example, in the file we opened, the branches:\n", + "```\n", + "Generator_binvar\n", + "Generator_scalePDF\n", + "Generator_weight\n", + "Generator_x1\n", + "Generator_x2\n", + "Generator_xpdf1\n", + "Generator_xpdf2\n", + "Generator_id1\n", + "Generator_id2\n", + "```\n", + "are grouped into one sub-record named `Generator` which can be accessed using either getitem or getattr syntax, i.e. `events[\"Generator\"]` or `events.Generator`. e.g." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[1,\n",
+       " -1,\n",
+       " -1,\n",
+       " 21,\n",
+       " 21,\n",
+       " 4,\n",
+       " 2,\n",
+       " -2,\n",
+       " 2,\n",
+       " 1,\n",
+       " ...,\n",
+       " 1,\n",
+       " -2,\n",
+       " 2,\n",
+       " 1,\n",
+       " 2,\n",
+       " -2,\n",
+       " -1,\n",
+       " 2,\n",
+       " 1]\n",
+       "--------------------------------------------------------------\n",
+       "type: 40 * int32[parameters={"__doc__": "id of first parton"}]
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "events.Generator.id1.compute()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['binvar', 'scalePDF', 'weight', 'x1', 'x2', 'xpdf1', 'xpdf2', 'id1', 'id2']" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# all names can be listed with:\n", + "events.Generator.fields" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In CMS NanoAOD, each TBranch has a self-documenting help string embedded in the title field, which is carried into the NanoEvents, e.g. executing the following cell should produce a help pop-up:\n", + "```\n", + "Type: Array\n", + "String form: [1, -1, -1, 21, 21, 4, 2, -2, 2, 1, 3, 1, ... -1, -1, 1, -2, 2, 1, 2, -2, -1, 2, 1]\n", + "Length: 40\n", + "File: ~/src/awkward-1.0/awkward1/highlevel.py\n", + "Docstring: id of first parton\n", + "Class docstring: ...\n", + "```\n", + "where the `Docstring` shows information about the content of this array." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\u001b[0;31mType:\u001b[0m Array\n", + "\u001b[0;31mString form:\u001b[0m dask.awkward\n", + "\u001b[0;31mFile:\u001b[0m /opt/homebrew/lib/python3.11/site-packages/dask_awkward/lib/core.py\n", + "\u001b[0;31mDocstring:\u001b[0m id of first parton\n", + "\u001b[0;31mClass docstring:\u001b[0m\n", + "Partitioned, lazy, and parallel Awkward Array Dask collection.\n", + "\n", + "The class constructor is not intended for users. Instead use\n", + "factory functions like :py:func:`~dask_awkward.from_parquet`,\n", + ":py:func:`~dask_awkward.from_json`, etc.\n", + "\n", + "Within dask-awkward the ``new_array_object`` factory function is\n", + "used for creating new instances.\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "events.Generator.id1?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Based on a collection's name or contents, some collections acquire additional _methods_, which are extra features exposed by the code in the mixin classes of the `coffea.nanoevents.methods` modules. For example, although `events.GenJet` has the fields:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['eta', 'mass', 'phi', 'pt', 'partonFlavour', 'hadronFlavour']" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "events.GenJet.fields" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "we can access additional attributes associated to each generated jet by virtue of the fact that they can be interpreted as [Lorentz vectors](https://coffeateam.github.io/coffea/api/coffea.nanoevents.methods.vector.LorentzVector.html#coffea.nanoevents.methods.vector.LorentzVector):" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[[217, 670, 258],\n",
+       " [34.5, 98.3, 1.16e+03, 38.1, 20.4, 29.7],\n",
+       " [306, 62.8, 74.1, 769, 11.2],\n",
+       " [170, 117, 29.3, 45.9],\n",
+       " [101, 117, 129, 15.6],\n",
+       " [63.1, 37.2, 33.7, 36.2],\n",
+       " [303, 50.5, 1.29e+03, 278],\n",
+       " [615, 282, 2.11e+03],\n",
+       " [195, 47.6],\n",
+       " [95, 44.6, 223, 318, 30, 108, 62.9],\n",
+       " ...,\n",
+       " [41.6, 36.7, 78.9, 13],\n",
+       " [1.51e+03, 1.23e+03],\n",
+       " [152, 160, 777, 27.1, 346, 65.1, 37.9, 27.2, 16.3],\n",
+       " [35.4, 20.4],\n",
+       " [20.1, 16.2],\n",
+       " [34],\n",
+       " [553, 283],\n",
+       " [771, 452, 16],\n",
+       " [76.9]]\n",
+       "----------------------------------------------------\n",
+       "type: 40 * var * float32
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "events.GenJet.energy.compute()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can call more complex methods, like computing the distance $\\Delta R = \\sqrt{\\Delta \\eta^2 + \\Delta \\phi ^2}$ between two LorentzVector objects:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[[],\n",
+       " [3.13],\n",
+       " [3.45, 2.18],\n",
+       " [1.58, 3.76],\n",
+       " [],\n",
+       " [0.053],\n",
+       " [0.0748],\n",
+       " [],\n",
+       " [],\n",
+       " [1.82],\n",
+       " ...,\n",
+       " [0.00115],\n",
+       " [],\n",
+       " [0.0149],\n",
+       " [],\n",
+       " [0.0308],\n",
+       " [],\n",
+       " [0.0858],\n",
+       " [],\n",
+       " []]\n",
+       "------------------------\n",
+       "type: 40 * var * float32
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# find distance between leading jet and all electrons in each event\n", + "dr = events.Jet[:, 0].delta_r(events.Electron)\n", + "dr.compute()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[None,\n",
+       " 3.13,\n",
+       " 2.18,\n",
+       " 1.58,\n",
+       " None,\n",
+       " 0.053,\n",
+       " 0.0748,\n",
+       " None,\n",
+       " None,\n",
+       " 1.82,\n",
+       " ...,\n",
+       " 0.00115,\n",
+       " None,\n",
+       " 0.0149,\n",
+       " None,\n",
+       " 0.0308,\n",
+       " None,\n",
+       " 0.0858,\n",
+       " None,\n",
+       " None]\n",
+       "-------------------\n",
+       "type: 40 * ?float32
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# find minimum distance\n", + "ak.min(dr, axis=1).compute()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[None, None, None, None, None], [Electron, Electron, ..., Electron], ..., [None, None]]\n" + ] + } + ], + "source": [ + "# a convenience method for this operation on all jets is available\n", + "print(events.Jet.nearest(events.Electron).compute())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The assignment of methods classes to collections is done inside the schema object during the initial creation of the array, governed by the awkward array's `__record__` parameter and the associated behavior. See [ak.behavior](https://awkward-array.readthedocs.io/en/latest/ak.behavior.html) for a more detailed explanation of array behaviors.\n", + "\n", + "Additional methods provide convenience functions for interpreting some branches, e.g. CMS NanoAOD packs several jet identification flag bits into a single integer, `jetId`. By implementing the bit-twiddling in the [Jet mixin](https://github.com/CoffeaTeam/coffea/blob/7045c06b9448d2be4315e65d432e6d8bd117d6d7/coffea/nanoevents/methods/nanoaod.py#L279-L282), the analsyis code becomes more clear:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[6, 6, 6, 6, 6], [6, 2, 6, 6, 6, 6, 6, 0], ..., [6, 6, 0, ..., 6, 6], [6, 6]]\n", + "[[True, True, True, True, True], [True, True, ..., False], ..., [True, True]]\n" + ] + } + ], + "source": [ + "print(events.Jet.jetId.compute())\n", + "print(events.Jet.isTight.compute())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also define convenience functions to unpack and apply some mask to a set of flags, e.g. for generated particles:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Raw status flags: [[10625, 27009, 4481, 22913, 257, ..., 13884, 13884, 13884, 12876, 12876], ...]\n" + ] + } + ], + "source": [ + "print(f\"Raw status flags: {events.GenPart.statusFlags.compute()}\")\n", + "events.GenPart.hasFlags(['isPrompt', 'isLastCopy']);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "CMS NanoAOD also contains pre-computed cross-references for some types of collections. For example, there is a TBranch `Electron_genPartIdx` which indexes the `GenPart` collection per event to give the matched generated particle, and `-1` if no match is found. NanoEvents transforms these indices into an awkward _indexed array_ pointing to the collection, so that one can directly access the matched particle using getattr syntax:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[[],\n",
+       " [-11],\n",
+       " [-11, 11],\n",
+       " [22, None],\n",
+       " [],\n",
+       " [None],\n",
+       " [None],\n",
+       " [],\n",
+       " [],\n",
+       " [11],\n",
+       " ...,\n",
+       " [11],\n",
+       " [],\n",
+       " [11],\n",
+       " [],\n",
+       " [-11],\n",
+       " [],\n",
+       " [None],\n",
+       " [],\n",
+       " []]\n",
+       "---------------------------------------------------------\n",
+       "type: 40 * var * ?int32[parameters={"__doc__": "PDG id"}]
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "events.Electron.matched_gen.pdgId.compute()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[[84.4, 29.4],\n",
+       " [31.1],\n",
+       " [53.4, 81.9],\n",
+       " [29.2],\n",
+       " [17.5],\n",
+       " [65.9, 47.8],\n",
+       " [58.5, 44.7],\n",
+       " [50.2, 45.2],\n",
+       " [33.3, 25.9],\n",
+       " [None],\n",
+       " [26.1],\n",
+       " [25.8]]\n",
+       "-------------------------------------------------------\n",
+       "type: 12 * var * ?float32[parameters={"__doc__": "pt"}]
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "events.Muon[ak.num(events.Muon)>0].matched_jet.pt.compute()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For generated particles, the parent index is similarly mapped:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[[None, None, 1, 1, 23, 23, 23, 23, ..., 15, -15, -15, -15, -15, -15, 111, 111],\n",
+       " [None, None, -1, 23, 23, 23, 23, ..., -11, None, None, None, None, None, 433],\n",
+       " [None, None, -1, -1, 23, 23, 23, 23, ..., -423, -1, -1, -421, -421, 111, 111],\n",
+       " [None, None, 21, 21, 23, -1, 23, 23, ..., -15, -15, -15, -15, -15, 111, 111],\n",
+       " [None, None, 21, 21, 23, 23, 23, 23, ..., 13, 13, -13, 1, None, None, 2, 2],\n",
+       " [None, None, 4, 23, 23, 23, 23, 23, ..., -15, -15, -15, 15, 15, 15, 423, 311],\n",
+       " [None, None, 2, 2, 2, 23, 23, 2, 23, ..., -13, 13, 2, 2, 2, 2, 111, 111, 111],\n",
+       " [None, None, -2, -2, 23, 21, 21, 23, 23, ..., 21, 21, 21, 21, None, 423, 2, 2],\n",
+       " [None, None, 2, 23, 23, 23, 23, 23, ..., -15, -15, -15, -15, 111, 111, 311],\n",
+       " [None, None, 1, 1, 1, 23, 21, 23, 23, 23, ..., -411, 21, 21, 1, 1, 1, 1, 3, 3],\n",
+       " ...,\n",
+       " [None, None, 1, 23, 23, 23, 23, 23, ..., -15, -15, -15, -15, 1, 1, 111, 111],\n",
+       " [None, None, -2, 23, 23, 23, 23, 23, 13, 13, -13, -13, -13, 13],\n",
+       " [None, None, 2, 2, 2, 23, 2, 23, ..., None, -413, 413, 413, 2, 2, -421, -421],\n",
+       " [None, None, 1, 23, 23, 23, 23, 23, ..., -15, 15, 15, 15, -15, -15, -15, -15],\n",
+       " [None, None, 2, 2, 23, 23, 21, 23, ..., 15, 15, 15, -15, -15, -15, 111, 111],\n",
+       " [None, None, -2, 23, 23, None, 23, 23, ..., -15, -15, -15, 423, 4, 4, 3, 3],\n",
+       " [None, None, -1, 23, 23, 23],\n",
+       " [None, None, 2, 23, 23, 23, 23, -11, -11, 11],\n",
+       " [None, None, 1, 1, 23, 23, 23, 23, ..., -15, -15, -15, 111, 111, 111, 111]]\n",
+       "--------------------------------------------------------------------------------\n",
+       "type: 40 * var * ?int32[parameters={"__doc__": "PDG id"}]
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "events.GenPart.parent.pdgId.compute()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In addition, using the parent index, a helper method computes the inverse mapping, namely, `children`. As such, one can find particle siblings with:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[[None, None, [23, 21], ..., [-16, 111, ..., 211, -211], [22, 22], [22, 22]],\n",
+       " [None, None, [23], [23], [23], [23], ..., None, None, None, None, None, [431]],\n",
+       " [None, None, [23, -1], [23, -1], [23], ..., [13, -14], [13, -14], [22], [22]],\n",
+       " [None, None, [23, -1], ..., [-16, 111, ..., 211, -211], [22, 22], [22, 22]],\n",
+       " [None, None, [23, 1], [23, 1], [23], ..., None, None, [11, -11], [11, -11]],\n",
+       " [None, None, [23], [23], ..., [16, 13, -14], [16, 13, -14], [421], [310]],\n",
+       " [None, None, [23, 2, 2], [23, 2, 2], ..., [...], [22], [11, -11], [11, -11]],\n",
+       " [None, None, [23, 21], [23, 21], [23], ..., None, [421], [11, -11], [11, -11]],\n",
+       " [None, None, [23], [23], ..., [-16, 111, ..., 311], [22, 22], [22, 22], [310]],\n",
+       " [None, None, [23, 21, 21], [23, ...], ..., [11, -11], [11, -11], [11, -11]],\n",
+       " ...,\n",
+       " [None, None, [23], [23], [23], ..., [11, -11], [11, -11], [22, 22], [22, 22]],\n",
+       " [None, None, [23], [23], [23], ..., [...], [-13], [-13, 22], [-13, 22], [13]],\n",
+       " [None, None, [23, 2, 21], ..., [2, 21, ..., 11, -11], [13, -14], [13, -14]],\n",
+       " [None, None, [23], ..., [...], [-16, 211, 211, -211], [-16, 211, 211, -211]],\n",
+       " [None, None, [23, 21], [23, 21], ..., [-16, -11, 12], [22, 22], [22, 22]],\n",
+       " [None, None, [23], [23], ..., [423, -421, 11, -11], [11, -11], [11, -11]],\n",
+       " [None, None, [23], [23], [-13, 13], [-13, 13]],\n",
+       " [None, None, [23], [23], [23], ..., [-11, 11], [-11, 22], [-11, 22], [11]],\n",
+       " [None, None, [23, 21], [23, 21], ..., [22, ...], [22, 22], [22, 22], [22, 22]]]\n",
+       "--------------------------------------------------------------------------------\n",
+       "type: 40 * var * option[var * ?int32[parameters={"__doc__": "PDG id"}]]
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "events.GenPart.parent.children.pdgId.compute()\n", + "# notice this is a doubly-jagged array" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since often one wants to shortcut repeated particles in a decay sequence, a helper method `distinctParent` is also available. Here we use it to find the parent particle ID for all prompt electrons:" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[[],\n",
+       " [23, 23],\n",
+       " [23, 23],\n",
+       " [],\n",
+       " [],\n",
+       " [],\n",
+       " [],\n",
+       " [23, 23],\n",
+       " [],\n",
+       " [23, 23],\n",
+       " ...,\n",
+       " [],\n",
+       " [],\n",
+       " [23, 23],\n",
+       " [],\n",
+       " [],\n",
+       " [],\n",
+       " [],\n",
+       " [23, 23],\n",
+       " []]\n",
+       "---------------------------------------------------------\n",
+       "type: 40 * var * ?int32[parameters={"__doc__": "PDG id"}]
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "events.GenPart[\n", + " (abs(events.GenPart.pdgId) == 11)\n", + " & events.GenPart.hasFlags(['isPrompt', 'isLastCopy'])\n", + "].distinctParent.pdgId.compute()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Events can be filtered like any other awkward array using boolean fancy-indexing" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[94.6,\n",
+       " 87.6,\n",
+       " 88,\n",
+       " 90.4,\n",
+       " 89.1,\n",
+       " 31.6]\n",
+       "-----------------\n",
+       "type: 6 * float32
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mmevents = events[ak.num(events.Muon) == 2]\n", + "zmm = mmevents.Muon[:, 0] + mmevents.Muon[:, 1]\n", + "zmm.mass.compute()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[94.6,\n",
+       " 87.6,\n",
+       " 88,\n",
+       " 90.4,\n",
+       " 89.1,\n",
+       " 31.6]\n",
+       "-----------------\n",
+       "type: 6 * float32
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# a convenience method is available to sum vectors along an axis:\n", + "mmevents.Muon.sum(axis=1).mass.compute()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As expected for this sample, most of the dimuon events have a pair invariant mass close to that of a Z boson. But what about the last event? Let's take a look at the generator information:" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[-13, 13]\n", + "[False, False]\n" + ] + } + ], + "source": [ + "print(mmevents[-1].Muon.matched_gen.pdgId.compute())\n", + "print(mmevents[-1].Muon.matched_gen.hasFlags([\"isPrompt\"]).compute())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So they are real generated muons, but they are not prompt (i.e. from the initial decay of a heavy resonance)\n", + "\n", + "Let's look at their parent particles:" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[-15,\n",
+       " 15]\n",
+       "--------------------------------------------------\n",
+       "type: 2 * ?int32[parameters={"__doc__": "PDG id"}]
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mmevents[-1].Muon.matched_gen.parent.pdgId.compute()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "aha! They are muons coming from tau lepton decays, and hence a fair amount of the Z mass is carried away by the neutrinos:" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "31.265245\n", + "91.68365\n" + ] + } + ], + "source": [ + "print(mmevents[-1].Muon.matched_gen.sum().mass.compute())\n", + "print(mmevents[-1].Muon.matched_gen.parent.sum().mass.compute())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One can assign new variables to the arrays, with some caveats:\n", + "\n", + " * Assignment must use setitem (`events[\"path\", \"to\", \"name\"] = value`)\n", + " * Assignment to a sliced `events` won't be accessible from the original variable\n", + " * New variables are not visible from cross-references" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[[],\n",
+       " [121],\n",
+       " [],\n",
+       " [],\n",
+       " [],\n",
+       " []]\n",
+       "-----------------------\n",
+       "type: 6 * var * float32
" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mmevents[\"Electron\", \"myvariable\"] = mmevents.Electron.pt + zmm.mass\n", + "mmevents.Electron.myvariable.compute()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.11.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/notebooks/packedselection.html b/notebooks/packedselection.html new file mode 100644 index 000000000..4cf7dffc8 --- /dev/null +++ b/notebooks/packedselection.html @@ -0,0 +1,1245 @@ + + + + + + + PackedSelection in Coffea 2023 — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

PackedSelection in Coffea 2023

+

In coffea, PackedSelection is a class that can store several boolean arrays in a memory-efficient manner and evaluate arbitrary combinations of boolean requirements in an CPU-efficient way. Supported inputs include 1D numpy or awkward arrays and it has built-in functionalities to form analysis in signal and control regions, and to implement cutflow or “N-1” plots.

+

Although coffea 2023 should be used in delayed mode (using dask-awkward), we will first present these functionalities eagerly (like in coffea 0.7) to showcase this better. Let’s first read a sample file of 40 Drell-Yan events to demonstrate the utilities using our NanoAODSchema as our schema.

+
+
[1]:
+
+
+
import awkward as ak
+import numpy as np
+from coffea.nanoevents import NanoEventsFactory, NanoAODSchema
+from matplotlib import pyplot as plt
+
+
+events = NanoEventsFactory.from_root(
+    {"../tests/samples/nano_dy.root": "Events"},
+    metadata={"dataset": "nano_dy"},
+    schemaclass=NanoAODSchema,
+    permit_dask=False,
+).events()
+
+events
+
+
+
+
+
+
+
+
+/Users/iason/fun/coffea_dev/coffea/binder/coffea/nanoevents/schemas/nanoaod.py:215: RuntimeWarning: Missing cross-reference index for FatJet_genJetAK8Idx => GenJetAK8
+  warnings.warn(
+
+
+
+
[1]:
+
+
+
+
[{FsrPhoton: [], Electron: [], SoftActivityJetHT5: 63.5, RawMET: {...}, ...},
+ {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 64, RawMET: {...}, ...},
+ {FsrPhoton: [], Electron: [Electron, Electron], SoftActivityJetHT5: 130, ...},
+ {FsrPhoton: [], Electron: [Electron, Electron], SoftActivityJetHT5: 25.8, ...},
+ {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 172, RawMET: {...}, ...},
+ {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 54.4, RawMET: ..., ...},
+ {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 96.2, RawMET: ..., ...},
+ {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 19, RawMET: {...}, ...},
+ {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 9.36, RawMET: {...}, ...},
+ {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 115, RawMET: ..., ...},
+ ...,
+ {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 49.6, RawMET: ..., ...},
+ {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 14.7, RawMET: {...}, ...},
+ {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 22.1, RawMET: ..., ...},
+ {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 33.9, RawMET: {...}, ...},
+ {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 16.2, RawMET: ..., ...},
+ {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 28.4, RawMET: {...}, ...},
+ {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 16.1, RawMET: ..., ...},
+ {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 28.5, RawMET: {...}, ...},
+ {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 7, RawMET: {...}, ...}]
+--------------------------------------------------------------------------------
+type: 40 * event
+
+

Now let’s import PackedSelection, and create an instance of it.

+
+
[2]:
+
+
+
from coffea.analysis_tools import PackedSelection
+
+selection = PackedSelection()
+
+
+
+

We can create a boolean mask and add this to our selection by using the add method. This adds the following “cut” to our selection and names it “twoElectron”.

+
+
[3]:
+
+
+
selection.add("twoElectron", ak.num(events.Electron) == 2)
+
+
+
+

We’ve added one “cut” to our selection. Now let’s add a couple more.

+
+
[4]:
+
+
+
selection.add("eleOppSign", ak.sum(events.Electron.charge, axis=1) == 0)
+selection.add("noElectron", ak.num(events.Electron) == 0)
+
+
+
+

To avoid repeating calling add multiple times, we can just use the add_multiple method which does just that.

+
+
[5]:
+
+
+
selection.add_multiple(
+    {
+        "twoMuon": ak.num(events.Muon) == 2,
+        "muOppSign": ak.sum(events.Muon.charge, axis=1) == 0,
+        "noMuon": ak.num(events.Muon) == 0,
+        "leadPt20": ak.any(events.Electron.pt >= 20.0, axis=1)
+        | ak.any(events.Muon.pt >= 20.0, axis=1),
+    }
+)
+
+
+
+

By viewing the PackedSelection instance, one can see the names of the added selections, whether it is operating in delayed mode or not, the number of added selections and the maximum supported number of selections.

+
+
[6]:
+
+
+
print(selection)
+
+
+
+
+
+
+
+
+PackedSelection(selections=('twoElectron', 'eleOppSign', 'noElectron', 'twoMuon', 'muOppSign', 'noMuon', 'leadPt20'), delayed_mode=False, items=7, maxitems=32)
+
+
+

To evaluate a boolean mask (e.g. to filter events) we can use the selection.all(*names) function, which will compute the logical AND of all listed boolean selections.

+
+
[7]:
+
+
+
selection.all("twoElectron", "noMuon", "leadPt20")
+
+
+
+
+
[7]:
+
+
+
+
+array([False, False,  True, False, False, False, False, False, False,
+       False, False, False, False, False, False, False, False, False,
+       False, False,  True,  True, False, False, False, False, False,
+       False, False, False, False, False, False, False, False, False,
+       False, False, False, False])
+
+
+

We can also be more specific and require that a specific set of selections have a given value (with the unspecified ones allowed to be either true or false) using selection.require.

+
+
[8]:
+
+
+
selection.require(twoElectron=True, noMuon=True, eleOppSign=False)
+
+
+
+
+
[8]:
+
+
+
+
+array([False, False, False,  True, False, False, False, False, False,
+       False, False, False, False, False, False, False, False, False,
+       False, False, False, False, False, False, False, False, False,
+       False, False, False, False, False, False, False, False, False,
+       False, False, False, False])
+
+
+

There exist also the allfalse and any methods where the first one is the opposite of all and the second one is a logical OR between all listed boolean selections.

+

Using PackedSelection, we are now able to perform an N-1 style selection using the nminusone(*names) method. This will perform an N-1 style selection by using as “N” the provided names and will exclude each named cut one at a time in order. In the end it will also peform a selection using all N cuts.

+
+
[9]:
+
+
+
nminusone = selection.nminusone("twoElectron", "noMuon", "leadPt20")
+nminusone
+
+
+
+
+
[9]:
+
+
+
+
+NminusOne(selections=('twoElectron', 'noMuon', 'leadPt20'))
+
+
+

This returns an NminusOne object which has the following methods: result(), print(), yieldhist(), to_npz() and plot_vars()

+

Let’s look at the results of the N-1 selection.

+
+
[10]:
+
+
+
res = nminusone.result()
+print(type(res), res._fields)
+
+
+
+
+
+
+
+
+<class 'coffea.analysis_tools.NminusOneResult'> ('labels', 'nev', 'masks')
+
+
+

This is just a namedtuple with the attributes labels, nev and masks. So we can say:

+
+
[11]:
+
+
+
labels, nev, masks = res
+labels, nev, masks
+
+
+
+
+
[11]:
+
+
+
+
+(['initial', 'N - twoElectron', 'N - noMuon', 'N - leadPt20', 'N'],
+ [40, 10, 3, 5, 3],
+ [array([False,  True,  True, False, False, False, False, False, False,
+          True, False, False, False, False, False,  True,  True, False,
+         False, False,  True,  True, False, False, False, False, False,
+          True, False,  True, False, False, False,  True, False, False,
+         False, False, False, False]),
+  array([False, False,  True, False, False, False, False, False, False,
+         False, False, False, False, False, False, False, False, False,
+         False, False,  True,  True, False, False, False, False, False,
+         False, False, False, False, False, False, False, False, False,
+         False, False, False, False]),
+  array([False, False,  True,  True, False, False, False, False, False,
+         False, False, False, False, False, False, False, False, False,
+          True, False,  True,  True, False, False, False, False, False,
+         False, False, False, False, False, False, False, False, False,
+         False, False, False, False]),
+  array([False, False,  True, False, False, False, False, False, False,
+         False, False, False, False, False, False, False, False, False,
+         False, False,  True,  True, False, False, False, False, False,
+         False, False, False, False, False, False, False, False, False,
+         False, False, False, False])])
+
+
+

labels is a list of labels of each mask that is applied, nev is a list of the number of events that survive each mask, and masks is a list of boolean masks (arrays) of which events survive each selection. You can also choose to print the statistics of your N-1 selection in a similar fashion to RDataFrame.

+
+
[12]:
+
+
+
nminusone.print()
+
+
+
+
+
+
+
+
+N-1 selection stats:
+Ignoring twoElectron         : pass = 10                                  all = 40                                  -- eff = 25.0 %
+Ignoring noMuon              : pass = 3                                   all = 40                                  -- eff = 7.5 %
+Ignoring leadPt20            : pass = 5                                   all = 40                                  -- eff = 12.5 %
+All cuts                     : pass = 3                                   all = 40                                  -- eff = 7.5 %
+
+
+

Or get a histogram of your total event yields. This just returns a hist.Hist object and we can plot it with its backends to mplhep.

+
+
[13]:
+
+
+
h, labels = nminusone.yieldhist()
+h.plot1d()
+plt.xticks(plt.gca().get_xticks(), labels, rotation=45)
+plt.show()
+
+
+
+
+
+
+
+../_images/notebooks_packedselection_27_0.png +
+
+

You can also save the results of the N-1 selection to a .npz file for later use.

+
+
[14]:
+
+
+
nminusone.to_npz("nminusone_results.npz")
+
+with np.load("nminusone_results.npz") as f:
+    for i in f.files:
+        print(f"{i}: {f[i]}")
+
+
+
+
+
+
+
+
+labels: ['initial' 'N - twoElectron' 'N - noMuon' 'N - leadPt20' 'N']
+nev: [40 10  3  5  3]
+masks: [[False  True  True False False False False False False  True False False
+  False False False  True  True False False False  True  True False False
+  False False False  True False  True False False False  True False False
+  False False False False]
+ [False False  True False False False False False False False False False
+  False False False False False False False False  True  True False False
+  False False False False False False False False False False False False
+  False False False False]
+ [False False  True  True False False False False False False False False
+  False False False False False False  True False  True  True False False
+  False False False False False False False False False False False False
+  False False False False]
+ [False False  True False False False False False False False False False
+  False False False False False False False False  True  True False False
+  False False False False False False False False False False False False
+  False False False False]]
+
+
+

Finally, we can ask from this object to create histograms of different variables, masking them with our N-1 selection. What it will output is a list of histograms, one for each requested variable, where the x-axis is the distribution of the variable, and the y-axis is the mask that was applied. It is essentially slices of how the variable distribution evolves as each N-1 or N selection is applied. It does also return a list of labels of the masks to keep track.

+

Note that the variables are parsed using a dictonary of name: array pairs and that the arrays will of course be flattened to be histogrammed.

+
+
[15]:
+
+
+
hs, labels = nminusone.plot_vars(
+    {"Ept": events.Electron.pt, "Ephi": events.Electron.phi}
+)
+hs, labels
+
+
+
+
+
[15]:
+
+
+
+
+([Hist(
+    Regular(20, 5.81891, 60.0685, name='Ept'),
+    Integer(0, 5, name='N-1'),
+    storage=Double()) # Sum: 60.0,
+  Hist(
+    Regular(20, -2.93115, 3.11865, name='Ephi'),
+    Integer(0, 5, name='N-1'),
+    storage=Double()) # Sum: 60.0],
+ ['initial', 'N - twoElectron', 'N - noMuon', 'N - leadPt20', 'N'])
+
+
+

And we can actually plot those histograms using again the mplhep backend.

+
+
[16]:
+
+
+
for h in hs:
+    h.plot2d()
+    plt.yticks(plt.gca().get_yticks(), labels, rotation=0)
+    plt.show()
+
+
+
+
+
+
+
+../_images/notebooks_packedselection_33_0.png +
+
+
+
+
+
+../_images/notebooks_packedselection_33_1.png +
+
+

You can slice these histograms to view and plot the 1D histogram at each step of the selection. For example, if we want the \(P_T\) of the electrons at the final step (index 4) of the selection, we can do the following.

+
+
[17]:
+
+
+
hs[0][:, 4].plot1d(yerr=0)
+plt.yscale("log")
+plt.show()
+
+
+
+
+
+
+
+../_images/notebooks_packedselection_35_0.png +
+
+

Because this automatic bining doesn’t look great, for \(P_T\) at least, the user has the ability to customize the axes or pass in their own axes objects.

+
+
[18]:
+
+
+
help(nminusone.plot_vars)
+
+
+
+
+
+
+
+
+Help on method plot_vars in module coffea.analysis_tools:
+
+plot_vars(vars, axes=None, bins=None, start=None, stop=None, edges=None, transform=None) method of coffea.analysis_tools.NminusOne instance
+    Plot the histograms of variables for each step of the N-1 selection
+
+    Parameters
+    ----------
+        vars : dict
+            A dictionary in the form ``{name: array}`` where ``name`` is the name of the variable,
+            and ``array`` is the corresponding array of values.
+            The arrays must be the same length as each mask of the N-1 selection.
+        axes : list of hist.axis objects, optional
+            The axes objects to histogram the variables on. This will override all the following arguments that define axes.
+            Must be the same length as ``vars``.
+        bins : iterable of integers or Nones, optional
+            The number of bins for each variable histogram. If not specified, it defaults to 20.
+            Must be the same length as ``vars``.
+        start : iterable of floats or integers or Nones, optional
+            The lower edge of the first bin for each variable histogram. If not specified, it defaults to the minimum value of the variable array.
+            Must be the same length as ``vars``.
+        stop : iterable of floats or integers or Nones, optional
+            The upper edge of the last bin for each variable histogram. If not specified, it defaults to the maximum value of the variable array.
+            Must be the same length as ``vars``.
+        edges : list of iterables of floats or integers, optional
+            The bin edges for each variable histogram. This overrides ``bins``, ``start``, and ``stop`` if specified.
+            Must be the same length as ``vars``.
+        transform : iterable of hist.axis.transform objects or Nones, optional
+            The transforms to apply to each variable histogram axis. If not specified, it defaults to None.
+            Must be the same length as ``vars``.
+
+    Returns
+    -------
+        hists : list of hist.Hist or hist.dask.Hist objects
+            A list of 2D histograms of the variables for each step of the N-1 selection.
+            The first axis is the variable, the second axis is the N-1 selection step.
+        labels : list of strings
+            The bin labels of y axis of the histogram.
+
+
+
+

Cutflow is implemented in a similar manner to the N-1 selection. We just have to use the cutflow(*names) function which will return a Cutflow object

+
+
[19]:
+
+
+
cutflow = selection.cutflow("noMuon", "twoElectron", "leadPt20")
+cutflow
+
+
+
+
+
[19]:
+
+
+
+
+Cutflow(selections=('noMuon', 'twoElectron', 'leadPt20'))
+
+
+

The methods of this object are similar to the NminusOne object. The only difference is that now we seperate things in either “onecut” or “cutflow”. “onecut” represents results where each cut is applied alone, while “cutflow” represents results where the cuts are applied cumulatively in order.

+
+
[20]:
+
+
+
res = cutflow.result()
+print(type(res), res._fields)
+labels, nevonecut, nevcutflow, masksonecut, maskscutflow = res
+labels, nevonecut, nevcutflow, masksonecut, maskscutflow
+
+
+
+
+
+
+
+
+<class 'coffea.analysis_tools.CutflowResult'> ('labels', 'nevonecut', 'nevcutflow', 'masksonecut', 'maskscutflow')
+
+
+
+
[20]:
+
+
+
+
+(['initial', 'noMuon', 'twoElectron', 'leadPt20'],
+ [40, 28, 5, 17],
+ [40, 28, 5, 3],
+ [array([ True,  True,  True,  True, False, False, False,  True,  True,
+          True, False,  True,  True,  True, False,  True,  True,  True,
+          True,  True,  True,  True,  True, False, False,  True, False,
+          True, False,  True, False, False,  True,  True, False,  True,
+          True,  True,  True,  True]),
+  array([False, False,  True,  True, False, False, False, False, False,
+         False, False, False, False, False, False, False, False, False,
+          True, False,  True,  True, False, False, False, False, False,
+         False, False, False, False, False, False, False, False, False,
+         False, False, False, False]),
+  array([False,  True,  True, False,  True,  True,  True, False, False,
+          True, False, False, False, False, False,  True,  True, False,
+         False, False,  True,  True, False,  True,  True, False,  True,
+          True, False,  True, False,  True, False,  True, False, False,
+         False, False, False, False])],
+ [array([ True,  True,  True,  True, False, False, False,  True,  True,
+          True, False,  True,  True,  True, False,  True,  True,  True,
+          True,  True,  True,  True,  True, False, False,  True, False,
+          True, False,  True, False, False,  True,  True, False,  True,
+          True,  True,  True,  True]),
+  array([False, False,  True,  True, False, False, False, False, False,
+         False, False, False, False, False, False, False, False, False,
+          True, False,  True,  True, False, False, False, False, False,
+         False, False, False, False, False, False, False, False, False,
+         False, False, False, False]),
+  array([False, False,  True, False, False, False, False, False, False,
+         False, False, False, False, False, False, False, False, False,
+         False, False,  True,  True, False, False, False, False, False,
+         False, False, False, False, False, False, False, False, False,
+         False, False, False, False])])
+
+
+

As you can see, again we have the same labels, nev and masks only now we have two “versions” of them since they’ve been split into “onecut” and “cutflow”. You can again print the statistics of the cutflow exactly like RDataFrame.

+
+
[21]:
+
+
+
cutflow.print()
+
+
+
+
+
+
+
+
+Cutflow stats:
+Cut noMuon              : pass = 28                                  cumulative pass = 28                                  all = 40                                  --  eff = 70.0 %                -- cumulative eff = 70.0 %
+Cut twoElectron         : pass = 5                                   cumulative pass = 5                                   all = 40                                  --  eff = 12.5 %                -- cumulative eff = 12.5 %
+Cut leadPt20            : pass = 17                                  cumulative pass = 3                                   all = 40                                  --  eff = 42.5 %                -- cumulative eff = 7.5 %
+
+
+

Again, you can extract yield hists, only now there are two of them.

+
+
[22]:
+
+
+
honecut, hcutflow, labels = cutflow.yieldhist()
+
+honecut.plot1d(yerr=0)
+plt.xticks(plt.gca().get_xticks(), labels, rotation=45)
+plt.show()
+
+hcutflow.plot1d(yerr=0)
+plt.xticks(plt.gca().get_xticks(), labels, rotation=45)
+plt.show()
+
+
+
+
+
+
+
+../_images/notebooks_packedselection_45_0.png +
+
+
+
+
+
+../_images/notebooks_packedselection_45_1.png +
+
+

Saving to .npz files is again there.

+
+
[23]:
+
+
+
cutflow.to_npz("cutflow_results.npz")
+
+with np.load("cutflow_results.npz") as f:
+    for i in f.files:
+        print(f"{i}: {f[i]}")
+
+
+
+
+
+
+
+
+labels: ['initial' 'noMuon' 'twoElectron' 'leadPt20']
+nevonecut: [40 28  5 17]
+nevcutflow: [40 28  5  3]
+masksonecut: [[ True  True  True  True False False False  True  True  True False  True
+   True  True False  True  True  True  True  True  True  True  True False
+  False  True False  True False  True False False  True  True False  True
+   True  True  True  True]
+ [False False  True  True False False False False False False False False
+  False False False False False False  True False  True  True False False
+  False False False False False False False False False False False False
+  False False False False]
+ [False  True  True False  True  True  True False False  True False False
+  False False False  True  True False False False  True  True False  True
+   True False  True  True False  True False  True False  True False False
+  False False False False]]
+maskscutflow: [[ True  True  True  True False False False  True  True  True False  True
+   True  True False  True  True  True  True  True  True  True  True False
+  False  True False  True False  True False False  True  True False  True
+   True  True  True  True]
+ [False False  True  True False False False False False False False False
+  False False False False False False  True False  True  True False False
+  False False False False False False False False False False False False
+  False False False False]
+ [False False  True False False False False False False False False False
+  False False False False False False False False  True  True False False
+  False False False False False False False False False False False False
+  False False False False]]
+
+
+

And finally, plot_vars is also there with the same axes customizability while now it returns two lists of histograms, one for “onecut” and one for “cutflow”. Those can of course be plotted in a similar fashion.

+
+
[24]:
+
+
+
h1, h2, labels = cutflow.plot_vars(
+    {"ept": events.Electron.pt, "ephi": events.Electron.phi}
+)
+h1, h2, labels
+
+
+
+
+
[24]:
+
+
+
+
+([Hist(
+    Regular(20, 5.81891, 60.0685, name='ept'),
+    Integer(0, 4, name='onecut'),
+    storage=Double()) # Sum: 73.0,
+  Hist(
+    Regular(20, -2.93115, 3.11865, name='ephi'),
+    Integer(0, 4, name='onecut'),
+    storage=Double()) # Sum: 73.0],
+ [Hist(
+    Regular(20, 5.81891, 60.0685, name='ept'),
+    Integer(0, 4, name='cutflow'),
+    storage=Double()) # Sum: 63.0,
+  Hist(
+    Regular(20, -2.93115, 3.11865, name='ephi'),
+    Integer(0, 4, name='cutflow'),
+    storage=Double()) # Sum: 63.0],
+ ['initial', 'noMuon', 'twoElectron', 'leadPt20'])
+
+
+

Now, in coffea 2023, everything happens in a delayed fashion. Therefore, PackedSelection can also operate in delayed or lazy mode and fully support dask_awkward arrays. Use is still the same, but everything now is a delayed dask type object which can be computed whenever the user wants to. This can be done by either calling .compute() on the object or dask.compute(*things).

+

PackedSelection can be initialized to operate in delayed mode by adding a delayed dask_awkward array for the first time instead of a materialized numpy or awkward one. I would like to note that we only support delayed dask_awkward arrays and not dask.array arrays. Please convert your dask arrays to dask_awkward via dask_awkward.from_dask_array(array). I would also like to note that you cannot mix materialized and delayed arrays in the same PackedSelection. +Let’s now read the same events using dask and perform the exact same things.

+
+
[25]:
+
+
+
import dask
+import dask_awkward as dak
+
+dakevents = NanoEventsFactory.from_root(
+    {"../tests/samples/nano_dy.root": "Events"},
+    metadata={"dataset": "nano_dy"},
+    schemaclass=NanoAODSchema,
+    permit_dask=True,
+).events()
+
+dakevents
+
+
+
+
+
+
+
+
+/Users/iason/fun/coffea_dev/coffea/binder/coffea/nanoevents/schemas/nanoaod.py:215: RuntimeWarning: Missing cross-reference index for FatJet_genJetAK8Idx => GenJetAK8
+  warnings.warn(
+
+
+
+
[25]:
+
+
+
+
+dask.awkward<from-uproot, npartitions=1>
+
+
+

Now dakevents is a delayed dask_awkward version of our events and if we compute it we get our normal events.

+
+
[26]:
+
+
+
dakevents.compute()
+
+
+
+
+
[26]:
+
+
+
+
[{FsrPhoton: [], Electron: [], SoftActivityJetHT5: 63.5, RawMET: {...}, ...},
+ {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 64, RawMET: {...}, ...},
+ {FsrPhoton: [], Electron: [Electron, Electron], SoftActivityJetHT5: 130, ...},
+ {FsrPhoton: [], Electron: [Electron, Electron], SoftActivityJetHT5: 25.8, ...},
+ {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 172, RawMET: {...}, ...},
+ {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 54.4, RawMET: ..., ...},
+ {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 96.2, RawMET: ..., ...},
+ {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 19, RawMET: {...}, ...},
+ {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 9.36, RawMET: {...}, ...},
+ {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 115, RawMET: ..., ...},
+ ...,
+ {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 49.6, RawMET: ..., ...},
+ {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 14.7, RawMET: {...}, ...},
+ {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 22.1, RawMET: ..., ...},
+ {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 33.9, RawMET: {...}, ...},
+ {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 16.2, RawMET: ..., ...},
+ {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 28.4, RawMET: {...}, ...},
+ {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 16.1, RawMET: ..., ...},
+ {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 28.5, RawMET: {...}, ...},
+ {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 7, RawMET: {...}, ...}]
+--------------------------------------------------------------------------------
+type: 40 * event
+
+

Now we have to use dask_awkward instead of awkward and dakevents instead of events to do the same things. Let’s add the same (now delayed) arrays to PackedSelection.

+
+
[27]:
+
+
+
selection = PackedSelection()
+
+selection.add_multiple(
+    {
+        "twoElectron": dak.num(dakevents.Electron) == 2,
+        "eleOppSign": dak.sum(dakevents.Electron.charge, axis=1) == 0,
+        "noElectron": dak.num(dakevents.Electron) == 0,
+        "twoMuon": dak.num(dakevents.Muon) == 2,
+        "muOppSign": dak.sum(dakevents.Muon.charge, axis=1) == 0,
+        "noMuon": dak.num(dakevents.Muon) == 0,
+        "leadPt20": dak.any(dakevents.Electron.pt >= 20.0, axis=1)
+        | dak.any(dakevents.Muon.pt >= 20.0, axis=1),
+    }
+)
+
+print(selection)
+
+
+
+
+
+
+
+
+PackedSelection(selections=('twoElectron', 'eleOppSign', 'noElectron', 'twoMuon', 'muOppSign', 'noMuon', 'leadPt20'), delayed_mode=True, items=7, maxitems=32)
+
+
+

Now, the same functions will return dask_awkward objects that have to be computed.

+
+
[28]:
+
+
+
selection.all("twoElectron", "noMuon", "leadPt20")
+
+
+
+
+
[28]:
+
+
+
+
+dask.awkward<equal, npartitions=1>
+
+
+

When computing those arrays we should get the same arrays that we got when operating in eager mode.

+
+
[29]:
+
+
+
print(selection.all("twoElectron", "noMuon", "leadPt20").compute())
+print(selection.require(twoElectron=True, noMuon=True, eleOppSign=False).compute())
+
+
+
+
+
+
+
+
+[False, False, True, False, False, ..., False, False, False, False, False]
+[False, False, False, True, False, ..., False, False, False, False, False]
+
+
+

Now, N-1 and cutflow will just return only delayed objects that must be computed.

+
+
[30]:
+
+
+
nminusone = selection.nminusone("twoElectron", "noMuon", "leadPt20")
+nminusone
+
+
+
+
+
[30]:
+
+
+
+
+NminusOne(selections=('twoElectron', 'noMuon', 'leadPt20'))
+
+
+

It is again an NminusOne object which has the same methods.

+

Let’s look at the results of the N-1 selection in the same way

+
+
[31]:
+
+
+
labels, nev, masks = nminusone.result()
+labels, nev, masks
+
+
+
+
+
[31]:
+
+
+
+
+(['initial', 'N - twoElectron', 'N - noMuon', 'N - leadPt20', 'N'],
+ [dask.awkward<count, type=Scalar, dtype=int64>,
+  dask.awkward<sum, type=Scalar, dtype=int64>,
+  dask.awkward<sum, type=Scalar, dtype=int64>,
+  dask.awkward<sum, type=Scalar, dtype=int64>,
+  dask.awkward<sum, type=Scalar, dtype=int64>],
+ [dask.awkward<equal, npartitions=1>,
+  dask.awkward<equal, npartitions=1>,
+  dask.awkward<equal, npartitions=1>,
+  dask.awkward<equal, npartitions=1>])
+
+
+

Now however, you can see that everything is a dask awkward object (apart from the labels of course). If we compute them we should get the same things as before and indeed we do:

+
+
[32]:
+
+
+
dask.compute(*nev), dask.compute(*masks)
+
+
+
+
+
[32]:
+
+
+
+
+((40, 10, 3, 5, 3),
+ (<Array [False, True, True, False, ..., False, False, False] type='40 * bool'>,
+  <Array [False, False, True, False, ..., False, False, False] type='40 * bool'>,
+  <Array [False, False, True, True, ..., False, False, False] type='40 * bool'>,
+  <Array [False, False, True, False, ..., False, False, False] type='40 * bool'>))
+
+
+

We can again print the statistics, however for this to happen, the object must of course compute the delayed nev list.

+
+
[33]:
+
+
+
nminusone.print()
+
+
+
+
+
+
+
+
+N-1 selection stats:
+Ignoring twoElectron         : pass = 10                                  all = 40                                  -- eff = 25.0 %
+Ignoring noMuon              : pass = 3                                   all = 40                                  -- eff = 7.5 %
+Ignoring leadPt20            : pass = 5                                   all = 40                                  -- eff = 12.5 %
+All cuts                     : pass = 3                                   all = 40                                  -- eff = 7.5 %
+
+
+

And now if we call result() again, the nev list is materialized.

+
+
[34]:
+
+
+
nminusone.result().nev
+
+
+
+
+
[34]:
+
+
+
+
+[40, 10, 3, 5, 3]
+
+
+

Again the histogram of your total event yields works. This time it is returns a hist.dask.Hist object.

+
+
[35]:
+
+
+
h, labels = nminusone.yieldhist()
+h
+
+
+
+
+
[35]:
+
+
+
+ +
+
+ + + +0 + + +5 + + +N-1 + + + +
+
+Integer(0, 5, name='N-1')
+
+Double() Σ=0.0 + +
+
+
+
+

It appears empty because it hasn’t been computed yet. Let’s do that.

+
+
[36]:
+
+
+
h.compute()
+
+
+
+
+
[36]:
+
+
+
+ +
+
+ + + +0 + + +5 + + +N-1 + + + +
+
+Integer(0, 5, name='N-1')
+
+Double() Σ=61.0 + +
+
+
+
+

Notice that this doesn’t happen in place as h is still not computed.

+
+
[37]:
+
+
+
h
+
+
+
+
+
[37]:
+
+
+
+ +
+
+ + + +0 + + +5 + + +N-1 + + + +
+
+Integer(0, 5, name='N-1')
+
+Double() Σ=0.0 + +
+
+
+
+

We can again plot this histogram but we have to call plot on the computed one, otherwise it will just be empty.

+
+
[38]:
+
+
+
h.compute().plot1d()
+plt.xticks(plt.gca().get_xticks(), labels, rotation=45)
+plt.show()
+
+
+
+
+
+
+
+../_images/notebooks_packedselection_78_0.png +
+
+

And we got exactly the same thing. Saving to .npz files is still possible but the delayed arrays will be naturally materalized while saving.

+
+
[39]:
+
+
+
nminusone.to_npz("nminusone_results.npz")
+
+with np.load("nminusone_results.npz") as f:
+    for i in f.files:
+        print(f"{i}: {f[i]}")
+
+
+
+
+
+
+
+
+labels: ['initial' 'N - twoElectron' 'N - noMuon' 'N - leadPt20' 'N']
+nev: [40 10  3  5  3]
+masks: [[False  True  True False False False False False False  True False False
+  False False False  True  True False False False  True  True False False
+  False False False  True False  True False False False  True False False
+  False False False False]
+ [False False  True False False False False False False False False False
+  False False False False False False False False  True  True False False
+  False False False False False False False False False False False False
+  False False False False]
+ [False False  True  True False False False False False False False False
+  False False False False False False  True False  True  True False False
+  False False False False False False False False False False False False
+  False False False False]
+ [False False  True False False False False False False False False False
+  False False False False False False False False  True  True False False
+  False False False False False False False False False False False False
+  False False False False]]
+
+
+

Same logic applies to the plot_vars function. Remember to use dakevents now and not events.

+
+
[40]:
+
+
+
hs, labels = nminusone.plot_vars(
+    {"Ept": dakevents.Electron.pt, "Ephi": dakevents.Electron.phi}
+)
+
+
+
+

Those histograms are also delayed and have to be computed before plotting them.

+

Exactly the same things apply to the cutflow in delayed mode.

+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/notebooks/packedselection.ipynb b/notebooks/packedselection.ipynb new file mode 100644 index 000000000..b042a15b8 --- /dev/null +++ b/notebooks/packedselection.ipynb @@ -0,0 +1,1745 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0ef5ce86-6598-46ad-8fd4-c074b13c06d2", + "metadata": {}, + "source": [ + "# PackedSelection in Coffea 2023\n", + "\n", + "In `coffea`, `PackedSelection` is a class that can store several boolean arrays in a memory-efficient manner and evaluate arbitrary combinations of boolean requirements in an CPU-efficient way. Supported inputs include 1D numpy or awkward arrays and it has built-in functionalities to form analysis in signal and control regions, and to implement cutflow or \"N-1\" plots.\n", + "\n", + "Although `coffea` 2023 should be used in delayed mode (using `dask-awkward`), we will first present these functionalities eagerly (like in `coffea` 0.7) to showcase this better. Let's first read a sample file of 40 Drell-Yan events to demonstrate the utilities using our `NanoAODSchema` as our schema." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "d144affc-9918-4642-940e-148335eed6b7", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/iason/fun/coffea_dev/coffea/binder/coffea/nanoevents/schemas/nanoaod.py:215: RuntimeWarning: Missing cross-reference index for FatJet_genJetAK8Idx => GenJetAK8\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "text/html": [ + "
[{FsrPhoton: [], Electron: [], SoftActivityJetHT5: 63.5, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 64, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [Electron, Electron], SoftActivityJetHT5: 130, ...},\n",
+       " {FsrPhoton: [], Electron: [Electron, Electron], SoftActivityJetHT5: 25.8, ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 172, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 54.4, RawMET: ..., ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 96.2, RawMET: ..., ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 19, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 9.36, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 115, RawMET: ..., ...},\n",
+       " ...,\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 49.6, RawMET: ..., ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 14.7, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 22.1, RawMET: ..., ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 33.9, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 16.2, RawMET: ..., ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 28.4, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 16.1, RawMET: ..., ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 28.5, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 7, RawMET: {...}, ...}]\n",
+       "--------------------------------------------------------------------------------\n",
+       "type: 40 * event
" + ], + "text/plain": [ + ", ...] type='40 * event'>" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import awkward as ak\n", + "import numpy as np\n", + "from coffea.nanoevents import NanoEventsFactory, NanoAODSchema\n", + "from matplotlib import pyplot as plt\n", + "\n", + "\n", + "events = NanoEventsFactory.from_root(\n", + " {\"../tests/samples/nano_dy.root\": \"Events\"},\n", + " metadata={\"dataset\": \"nano_dy\"},\n", + " schemaclass=NanoAODSchema,\n", + " permit_dask=False,\n", + ").events()\n", + "\n", + "events" + ] + }, + { + "cell_type": "markdown", + "id": "919582c0-9dc0-40d0-8e25-076dc4a848cd", + "metadata": {}, + "source": [ + "Now let's import `PackedSelection`, and create an instance of it." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "e4c80e4f-f4bd-4a92-b5fe-4c9faaf22bf7", + "metadata": {}, + "outputs": [], + "source": [ + "from coffea.analysis_tools import PackedSelection\n", + "\n", + "selection = PackedSelection()" + ] + }, + { + "cell_type": "markdown", + "id": "18124df0-d370-4c3e-9e25-a9500eb1daf1", + "metadata": {}, + "source": [ + "We can create a boolean mask and add this to our selection by using the `add` method. This adds the following \"cut\" to our selection and names it \"twoElectron\"." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "b3d0e60b-48b6-4c8b-bb1a-7d8e295cd23b", + "metadata": {}, + "outputs": [], + "source": [ + "selection.add(\"twoElectron\", ak.num(events.Electron) == 2)" + ] + }, + { + "cell_type": "markdown", + "id": "324c3acb-eb43-440a-a23e-3e31dded970a", + "metadata": {}, + "source": [ + "We've added one \"cut\" to our selection. Now let's add a couple more." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "0e45733b-36dc-43b5-94d2-6cc9f974e830", + "metadata": {}, + "outputs": [], + "source": [ + "selection.add(\"eleOppSign\", ak.sum(events.Electron.charge, axis=1) == 0)\n", + "selection.add(\"noElectron\", ak.num(events.Electron) == 0)" + ] + }, + { + "cell_type": "markdown", + "id": "71edfec0-537d-42a7-86df-f96423f69371", + "metadata": {}, + "source": [ + "To avoid repeating calling `add` multiple times, we can just use the `add_multiple` method which does just that." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "f16c75b5-71bf-4957-835e-efabda6978cf", + "metadata": {}, + "outputs": [], + "source": [ + "selection.add_multiple(\n", + " {\n", + " \"twoMuon\": ak.num(events.Muon) == 2,\n", + " \"muOppSign\": ak.sum(events.Muon.charge, axis=1) == 0,\n", + " \"noMuon\": ak.num(events.Muon) == 0,\n", + " \"leadPt20\": ak.any(events.Electron.pt >= 20.0, axis=1)\n", + " | ak.any(events.Muon.pt >= 20.0, axis=1),\n", + " }\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "d0e968df-afdd-413b-a7ab-29f05f1e25c4", + "metadata": {}, + "source": [ + "By viewing the `PackedSelection` instance, one can see the names of the added selections, whether it is operating in delayed mode or not, the number of added selections and the maximum supported number of selections." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "927d8de4-53b7-4250-b24c-17fa16c16526", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "PackedSelection(selections=('twoElectron', 'eleOppSign', 'noElectron', 'twoMuon', 'muOppSign', 'noMuon', 'leadPt20'), delayed_mode=False, items=7, maxitems=32)\n" + ] + } + ], + "source": [ + "print(selection)" + ] + }, + { + "cell_type": "markdown", + "id": "434fa647-9e54-4678-adf5-c75e25cc032e", + "metadata": {}, + "source": [ + "To evaluate a boolean mask (e.g. to filter events) we can use the `selection.all(*names)` function, which will compute the logical AND of all listed boolean selections." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "0055353a-735b-4ac7-a2f1-698d2d42008b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([False, False, True, False, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, True, True, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, False, False])" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "selection.all(\"twoElectron\", \"noMuon\", \"leadPt20\")" + ] + }, + { + "cell_type": "markdown", + "id": "b81d7b70-29cd-46b1-8d23-8f538b109c54", + "metadata": {}, + "source": [ + "We can also be more specific and require that a specific set of selections have a given value (with the unspecified ones allowed to be either true or false) using `selection.require`." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "5e6a478e-e69b-4181-8f8a-398bd6810375", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([False, False, False, True, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, False, False])" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "selection.require(twoElectron=True, noMuon=True, eleOppSign=False)" + ] + }, + { + "cell_type": "markdown", + "id": "52a11d5f-3d39-4146-b38d-f783039ccac9", + "metadata": {}, + "source": [ + "There exist also the `allfalse` and `any` methods where the first one is the opposite of `all` and the second one is a logical OR between all listed boolean selections." + ] + }, + { + "cell_type": "markdown", + "id": "9e36a33b-2fcc-4380-8a0c-9c3402315e61", + "metadata": {}, + "source": [ + "Using `PackedSelection`, we are now able to perform an N-1 style selection using the `nminusone(*names)` method. This will perform an N-1 style selection by using as \"N\" the provided names and will exclude each named cut one at a time in order. In the end it will also peform a selection using all N cuts." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "77bc1bdc-3449-425a-8853-e2622fc4ed94", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "NminusOne(selections=('twoElectron', 'noMuon', 'leadPt20'))" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nminusone = selection.nminusone(\"twoElectron\", \"noMuon\", \"leadPt20\")\n", + "nminusone" + ] + }, + { + "cell_type": "markdown", + "id": "164c7fb8-f582-4892-8e78-a54e47820721", + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "source": [ + "This returns an `NminusOne` object which has the following methods: `result()`, `print()`, `yieldhist()`, `to_npz()` and `plot_vars()`" + ] + }, + { + "cell_type": "markdown", + "id": "7945c67d-5488-426c-b81c-56e2d09cee96", + "metadata": {}, + "source": [ + "Let's look at the results of the N-1 selection." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "eef67293-1f22-4ea0-ad7a-ac95a424a14c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " ('labels', 'nev', 'masks')\n" + ] + } + ], + "source": [ + "res = nminusone.result()\n", + "print(type(res), res._fields)" + ] + }, + { + "cell_type": "markdown", + "id": "7cdcfac7-ec59-447d-a285-609332042306", + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "source": [ + "This is just a `namedtuple` with the attributes `labels`, `nev` and `masks`. So we can say:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "5ee9d9e6-b496-4cc3-9d36-578ce096ff57", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(['initial', 'N - twoElectron', 'N - noMuon', 'N - leadPt20', 'N'],\n", + " [40, 10, 3, 5, 3],\n", + " [array([False, True, True, False, False, False, False, False, False,\n", + " True, False, False, False, False, False, True, True, False,\n", + " False, False, True, True, False, False, False, False, False,\n", + " True, False, True, False, False, False, True, False, False,\n", + " False, False, False, False]),\n", + " array([False, False, True, False, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, True, True, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, False, False]),\n", + " array([False, False, True, True, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " True, False, True, True, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, False, False]),\n", + " array([False, False, True, False, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, True, True, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, False, False])])" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "labels, nev, masks = res\n", + "labels, nev, masks" + ] + }, + { + "cell_type": "markdown", + "id": "e321f2b4-3e35-423c-a0a2-7b878ae7a260", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "`labels` is a list of labels of each mask that is applied, `nev` is a list of the number of events that survive each mask, and `masks` is a list of boolean masks (arrays) of which events survive each selection.\n", + "You can also choose to print the statistics of your N-1 selection in a similar fashion to `RDataFrame`." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "abe984e8-a4f1-4769-8d7c-60ce565b2d56", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "N-1 selection stats:\n", + "Ignoring twoElectron : pass = 10 all = 40 -- eff = 25.0 %\n", + "Ignoring noMuon : pass = 3 all = 40 -- eff = 7.5 %\n", + "Ignoring leadPt20 : pass = 5 all = 40 -- eff = 12.5 %\n", + "All cuts : pass = 3 all = 40 -- eff = 7.5 %\n" + ] + } + ], + "source": [ + "nminusone.print()" + ] + }, + { + "cell_type": "markdown", + "id": "282ebb23-70f8-43e1-bb60-99770fcf3543", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Or get a histogram of your total event yields. This just returns a `hist.Hist` object and we can plot it with its backends to `mplhep`." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "ef6b795a-3205-4850-a366-791bf625f094", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAh8AAAH3CAYAAAAboj2jAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABBzUlEQVR4nO3deVyU5f7/8fegLCqCoSguYCruuBSekDRzRzNzoU5ZZtqmReZWKZWWluLSMTdcOl9/WqbZ4paZW5aapUYoasfccUUwFyBRR4Xr94eHOZG2oHAPA6/n4zGPB3PdFzMfbmDmPdd93fdlM8YYAQAAWMTN2QUAAICihfABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGCp4s4u4PeysrKUlJSk0qVLy2azObscAADwNxhj9Ouvv6pSpUpyc/vzsY0CFz6SkpIUGBjo7DIAAMBNOHbsmKpUqfKnfQpc+ChdurSka8X7+Pg4uRoAAPB3pKenKzAw0PE+/mcKXPjIPtTi4+ND+AAAwMX8nSkTTDgFAACWInwAAABLET4AAIClCB8AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKVuKXyMHTtWNptNAwcOdLRdunRJUVFRKlu2rLy9vRUZGamUlJRbrRMAABQSNx0+4uLiNGvWLDVs2DBH+6BBg7R8+XJ9+umn2rBhg5KSktS9e/dbLhQAABQON7Wq7fnz5/XYY4/p3//+t95++21He1pammbPnq0FCxaodevWkqQ5c+aobt262rJli5o2bZo3Vd8EY4wuXsl02vMXRSXci/2t1Q0BAEXLTYWPqKgoderUSW3bts0RPuLj43XlyhW1bdvW0VanTh0FBQVp8+bNNwwfdrtddrvdcT89Pf1mSvpLF69kqt6I1fny2Lix3aMiVNLjpv7EAACFWK7fGRYuXKht27YpLi7uum3Jycny8PBQmTJlcrRXqFBBycnJN3y8mJgYjRw5MrdlAAAAF5Wr8HHs2DENGDBAa9eulZeXV54UEB0drcGDBzvup6enKzAwME8e+4/8+HpblfQolq/PUVRduJypJm9/5ewyAAAFWK7CR3x8vE6dOqU777zT0ZaZmamNGzdq2rRpWr16tS5fvqzU1NQcox8pKSkKCAi44WN6enrK09Pz5qq/SSU9inE4AAAAJ8nVO3CbNm20a9euHG19+vRRnTp1NHToUAUGBsrd3V3r1q1TZGSkJGnv3r06evSowsPD865qAADgsnIVPkqXLq2QkJAcbaVKlVLZsmUd7U899ZQGDx4sPz8/+fj4qH///goPD3fqmS4AAKDgyPNjD++++67c3NwUGRkpu92uiIgITZ8+Pa+fBgAAuKhbDh/r16/Pcd/Ly0uxsbGKjY291YcGAACFEGu7AAAASxE+AACApQgfAADAUoQPAABgKcIHAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKUIHwAAwFKEDwAAYCnCBwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACApQgfAADAUoQPAABgKcIHAACwFOEDAABYivABAAAsRfgAAACWInwAAABL5Sp8zJgxQw0bNpSPj498fHwUHh6ulStXOra3bNlSNpstx61fv355XjQAAHBdxXPTuUqVKho7dqxq1qwpY4zef/99denSRdu3b1f9+vUlSc8884xGjRrl+J6SJUvmbcUAAMCl5Sp8dO7cOcf90aNHa8aMGdqyZYsjfJQsWVIBAQF5VyEAAChUbnrOR2ZmphYuXKiMjAyFh4c72ufPn69y5copJCRE0dHRunDhwp8+jt1uV3p6eo4bAAAovHI18iFJu3btUnh4uC5duiRvb28tWbJE9erVkyQ9+uijqlq1qipVqqSdO3dq6NCh2rt3rxYvXvyHjxcTE6ORI0fe/E8AAABcSq7DR+3atZWQkKC0tDR99tlneuKJJ7RhwwbVq1dPzz77rKNfgwYNVLFiRbVp00YHDx5UjRo1bvh40dHRGjx4sON+enq6AgMDb+JHAQAAriDX4cPDw0PBwcGSpNDQUMXFxWny5MmaNWvWdX3DwsIkSQcOHPjD8OHp6SlPT8/clgEAAFzULV/nIysrS3a7/YbbEhISJEkVK1a81acBAACFRK5GPqKjo9WxY0cFBQXp119/1YIFC7R+/XqtXr1aBw8e1IIFC3TfffepbNmy2rlzpwYNGqQWLVqoYcOG+VU/AABwMbkKH6dOnVKvXr108uRJ+fr6qmHDhlq9erXatWunY8eO6auvvtKkSZOUkZGhwMBARUZG6vXXX8+v2gEAgAvKVfiYPXv2H24LDAzUhg0bbrkgAABQuLG2CwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACApQgfAADAUoQPAABgKcIHAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKUIHwAAwFKEDwAAYCnCBwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACApQgfAADAUoQPAABgKcIHAACwVK7Cx4wZM9SwYUP5+PjIx8dH4eHhWrlypWP7pUuXFBUVpbJly8rb21uRkZFKSUnJ86IBAIDrylX4qFKlisaOHav4+Hj9+OOPat26tbp06aL//Oc/kqRBgwZp+fLl+vTTT7VhwwYlJSWpe/fu+VI4AABwTcVz07lz58457o8ePVozZszQli1bVKVKFc2ePVsLFixQ69atJUlz5sxR3bp1tWXLFjVt2jTvqgYAAC7rpud8ZGZmauHChcrIyFB4eLji4+N15coVtW3b1tGnTp06CgoK0ubNm//wcex2u9LT03PcAABA4ZXr8LFr1y55e3vL09NT/fr105IlS1SvXj0lJyfLw8NDZcqUydG/QoUKSk5O/sPHi4mJka+vr+MWGBiY6x8CAAC4jlyHj9q1ayshIUFbt27Vc889pyeeeEK7d+++6QKio6OVlpbmuB07duymHwsAABR8uZrzIUkeHh4KDg6WJIWGhiouLk6TJ0/Www8/rMuXLys1NTXH6EdKSooCAgL+8PE8PT3l6emZ+8oBAIBLuuXrfGRlZclutys0NFTu7u5at26dY9vevXt19OhRhYeH3+rTAACAQiJXIx/R0dHq2LGjgoKC9Ouvv2rBggVav369Vq9eLV9fXz311FMaPHiw/Pz85OPjo/79+ys8PJwzXQAAgEOuwsepU6fUq1cvnTx5Ur6+vmrYsKFWr16tdu3aSZLeffddubm5KTIyUna7XREREZo+fXq+FA4AAFxTrsLH7Nmz/3S7l5eXYmNjFRsbe0tFAQCAwou1XQAAgKUIHwAAwFKEDwAAYCnCBwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACApQgfAADAUoQPAABgKcIHAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKUIHwAAwFKEDwAAYCnCBwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACApXIVPmJiYvSPf/xDpUuXVvny5dW1a1ft3bs3R5+WLVvKZrPluPXr1y9PiwYAAK4rV+Fjw4YNioqK0pYtW7R27VpduXJF7du3V0ZGRo5+zzzzjE6ePOm4jR8/Pk+LBgAArqt4bjqvWrUqx/25c+eqfPnyio+PV4sWLRztJUuWVEBAQN5UCAAACpVbmvORlpYmSfLz88vRPn/+fJUrV04hISGKjo7WhQsX/vAx7Ha70tPTc9wAAEDhlauRj9/KysrSwIED1axZM4WEhDjaH330UVWtWlWVKlXSzp07NXToUO3du1eLFy++4ePExMRo5MiRN1sGAABwMTcdPqKiovTTTz9p06ZNOdqfffZZx9cNGjRQxYoV1aZNGx08eFA1atS47nGio6M1ePBgx/309HQFBgbebFkAAKCAu6nw8cILL+iLL77Qxo0bVaVKlT/tGxYWJkk6cODADcOHp6enPD09b6YMAADggnIVPowx6t+/v5YsWaL169erWrVqf/k9CQkJkqSKFSveVIEAAKBwyVX4iIqK0oIFC7Rs2TKVLl1aycnJkiRfX1+VKFFCBw8e1IIFC3TfffepbNmy2rlzpwYNGqQWLVqoYcOG+fIDAAAA15Kr8DFjxgxJ1y4k9ltz5sxR79695eHhoa+++kqTJk1SRkaGAgMDFRkZqddffz3PCgYAAK4t14dd/kxgYKA2bNhwSwUBAIDCjbVdAACApQgfAADAUoQPAABgKcIHAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKUIHwAAwFKEDwAAYCnCBwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACApQgfAADAUoQPAABgKcIHAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClchU+YmJi9I9//EOlS5dW+fLl1bVrV+3duzdHn0uXLikqKkply5aVt7e3IiMjlZKSkqdFAwAA15Wr8LFhwwZFRUVpy5YtWrt2ra5cuaL27dsrIyPD0WfQoEFavny5Pv30U23YsEFJSUnq3r17nhcOAABcU/HcdF61alWO+3PnzlX58uUVHx+vFi1aKC0tTbNnz9aCBQvUunVrSdKcOXNUt25dbdmyRU2bNs27ygEAgEu6pTkfaWlpkiQ/Pz9JUnx8vK5cuaK2bds6+tSpU0dBQUHavHnzDR/DbrcrPT09xw0AABReNx0+srKyNHDgQDVr1kwhISGSpOTkZHl4eKhMmTI5+laoUEHJyck3fJyYmBj5+vo6boGBgTdbEgAAcAE3HT6ioqL0008/aeHChbdUQHR0tNLS0hy3Y8eO3dLjAQCAgi1Xcz6yvfDCC/riiy+0ceNGValSxdEeEBCgy5cvKzU1NcfoR0pKigICAm74WJ6envL09LyZMgAAgAvK1ciHMUYvvPCClixZoq+//lrVqlXLsT00NFTu7u5at26do23v3r06evSowsPD86ZiAADg0nI18hEVFaUFCxZo2bJlKl26tGMeh6+vr0qUKCFfX1899dRTGjx4sPz8/OTj46P+/fsrPDycM10AAICkXIaPGTNmSJJatmyZo33OnDnq3bu3JOndd9+Vm5ubIiMjZbfbFRERoenTp+dJsQAAwPXlKnwYY/6yj5eXl2JjYxUbG3vTRQEAgMKLtV0AAIClCB8AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKUIHwAAwFKEDwAAYCnCBwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACApQgfAADAUoQPAABgKcIHAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKVyHT42btyozp07q1KlSrLZbFq6dGmO7b1795bNZstx69ChQ17VCwAAXFyuw0dGRoYaNWqk2NjYP+zToUMHnTx50nH76KOPbqlIAABQeBTP7Td07NhRHTt2/NM+np6eCggIuOmiAABA4ZUvcz7Wr1+v8uXLq3bt2nruued05syZP+xrt9uVnp6e4wYAAAqvPA8fHTp00AcffKB169Zp3Lhx2rBhgzp27KjMzMwb9o+JiZGvr6/jFhgYmNclAQCAAiTXh13+yiOPPOL4ukGDBmrYsKFq1Kih9evXq02bNtf1j46O1uDBgx3309PTCSAAABRi+X6qbfXq1VWuXDkdOHDghts9PT3l4+OT4wYAAAqvfA8fx48f15kzZ1SxYsX8fioAAOACcn3Y5fz58zlGMRITE5WQkCA/Pz/5+flp5MiRioyMVEBAgA4ePKhXXnlFwcHBioiIyNPCAQCAa8p1+Pjxxx/VqlUrx/3s+RpPPPGEZsyYoZ07d+r9999XamqqKlWqpPbt2+utt96Sp6dn3lUNAABcVq7DR8uWLWWM+cPtq1evvqWCAABA4cbaLgAAwFKEDwAAYCnCBwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACApQgfAADAUoQPAABgKcIHAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKUIHwAAwFKEDwAAYCnCBwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACApQgfAADAUrkOHxs3blTnzp1VqVIl2Ww2LV26NMd2Y4xGjBihihUrqkSJEmrbtq3279+fV/UCAAAXl+vwkZGRoUaNGik2NvaG28ePH68pU6Zo5syZ2rp1q0qVKqWIiAhdunTplosFAACur3huv6Fjx47q2LHjDbcZYzRp0iS9/vrr6tKliyTpgw8+UIUKFbR06VI98sgjt1YtXMqFy5nOLqFIKOFeTDabzdllAMDfluvw8WcSExOVnJystm3bOtp8fX0VFhamzZs33zB82O122e12x/309PS8LAlO1OTtr5xdQpGwe1SESnrk6b8yAOSrPJ1wmpycLEmqUKFCjvYKFSo4tv1eTEyMfH19HbfAwMC8LAkAABQwTv+4FB0drcGDBzvup6enE0BcWAn3Yto9KsLZZRR6Fy5nMrIEwGXlafgICAiQJKWkpKhixYqO9pSUFDVu3PiG3+Pp6SlPT8+8LANOZLPZOAQAAPhTeXrYpVq1agoICNC6descbenp6dq6davCw8Pz8qkAAICLyvVH1PPnz+vAgQOO+4mJiUpISJCfn5+CgoI0cOBAvf3226pZs6aqVaum4cOHq1KlSuratWte1g0AAFxUrsPHjz/+qFatWjnuZ8/XeOKJJzR37ly98sorysjI0LPPPqvU1FQ1b95cq1atkpeXV95VDQAAXFauw0fLli1ljPnD7TabTaNGjdKoUaNuqTAAAFA4sbYLAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKUIHwAAwFKEDwAAYCnCBwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACApQgfAADAUoQPAABgKcIHAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGApwgcAALBUnoePN998UzabLcetTp06ef00AADARRXPjwetX7++vvrqq/89SfF8eRoAAOCC8iUVFC9eXAEBAfnx0ABgGWOMLl7JdHYZRU4J92Ky2WzOLgP5KF/Cx/79+1WpUiV5eXkpPDxcMTExCgoKumFfu90uu93uuJ+enp4fJQFArl28kql6I1Y7u4wiZ/eoCJX0YMS8MMvzOR9hYWGaO3euVq1apRkzZigxMVH33HOPfv311xv2j4mJka+vr+MWGBiY1yUBAIACJM+jZceOHR1fN2zYUGFhYapatao++eQTPfXUU9f1j46O1uDBgx3309PTCSAACpwfX2+rkh7FnF1GoXXhcqaavP3VX3dEoZDv41plypRRrVq1dODAgRtu9/T0lKenZ36XAQC3pKRHMQ4FAHkk36/zcf78eR08eFAVK1bM76cCAAAuIM/Dx0svvaQNGzbo8OHD+v7779WtWzcVK1ZMPXr0yOunAgAALijPxxCPHz+uHj166MyZM/L391fz5s21ZcsW+fv75/VTAQAAF5Tn4WPhwoV5/ZAAAKAQYW0XAABgKcIHAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBSrJIEuLgLlzOdXUKhxb51Dva7NUq4F5PNZnPKcxM+ABfHMuQobPibtsbuURFOW6mZwy4AAMBSjHwALqiEezHtHhXh7DKKlBLuxZxdQqHG37Q1LlzOLBAjS4QPwAXZbDanDZcC+YG/6aKFwy4AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKUIHwAAwFKEDwAAYCnCBwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACA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PDzUtGlTxz575plnNGbMGI0ePVrbt29XyZIl1b17d3377bcsHXCTsk+n7dGjh1q3bq25c+cqIyND48eP1+TJk1WiRAktWLBAc+bM0UMPPaT27dsrISFBDRo0cHbpKOqcnX6KqosXLzq7hCItewQjNTXVGGNMcnKyGTBggAkLCzNvv/22o99LL71k3NzczMqVK825c+fML7/8YoYOHWr8/f3N7t27nVK7K/j222+Nu7u7Y0L1b//ea9WqZaZMmeKs0gqVQ4cOmdDQUDN16lRjjDHnz583FStWNCEhIaZhw4aOs7GAgoaRDyfx8vJydglFVlZWltzc3BQfH6/g4GDt379fFSpU0KuvvqqmTZtq+fLleuuttyRduxDTo48+qi5duqhJkybq1KmTPv74Y61evVp169Z18k/ifObaoVtJ1/ZrtubNm6tNmzZ64okndPLkSXl5eckYowsXLqhkyZLy9fV1VsmFym233abu3bura9euSkpKUuPGjdWtWzetWbNG7u7umjJliuNvGShIWNUWRUp28NixY4fuuecePf3005o4caJjpdqUlBSNGTNGW7ZsUZcuXfTqq69KklauXKkzZ87otttuU+PGjVW5cmUn/yQFQ/Z+W79+vT7//HP5+fkpIiJC//jHP7RlyxYNGzZM586d03vvvSdjjL788kvNnDlTW7duVbVq1ZxdfqGQlpYmX19fDRkyRMePH9d7770nX19fDRgwQJ9//rkaNGigOXPmsKIyChTCB4qM3waP8PBwDRo0SKNHj3Zs/+WXX+Tv76+UlBTFxMRo8+bNuv/++1lq/C+sXr1anTp1UufOnfXtt98qJCRETzzxhPr06aO4uDiNGjVKX331lQIDA1WsWDHNnz9fd955p7PLdjnZQS8xMVGpqany9PRUUFCQvL29JUldu3ZVqVKlNH/+fElS//79VaNGDT322GPy9/d3ZunAdQgfKFJ+/vlnNWrUSCNHjlR0dLSjffTo0Vq5cqVWrlyp0qVL69SpUxozZox+/PFHtWjRIsdEVPzP8ePH9c4776hu3brq27evjh8/rmHDhikxMVF9+vTR008/LUmKj49XmTJl5OPjwxvhTcgOHkuWLNHgwYPl6+urM2fO6J577lGfPn3Url07DRkyRNu3b1fz5s2Vnp6uefPmadu2bawvhAKJOR8oMjIzM/Xhhx/q6tWr6tSp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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "h, labels = nminusone.yieldhist()\n", + "h.plot1d()\n", + "plt.xticks(plt.gca().get_xticks(), labels, rotation=45)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "0080510c-aa7c-4492-b1a1-28601d4e7a27", + "metadata": {}, + "source": [ + "You can also save the results of the N-1 selection to a `.npz` file for later use." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "d6bb3514-403c-441a-bf85-d88304e556c4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "labels: ['initial' 'N - twoElectron' 'N - noMuon' 'N - leadPt20' 'N']\n", + "nev: [40 10 3 5 3]\n", + "masks: [[False True True False False False False False False True False False\n", + " False False False True True False False False True True False False\n", + " False False False True False True False False False True False False\n", + " False False False False]\n", + " [False False True False False False False False False False False False\n", + " False False False False False False False False True True False False\n", + " False False False False False False False False False False False False\n", + " False False False False]\n", + " [False False True True False False False False False False False False\n", + " False False False False False False True False True True False False\n", + " False False False False False False False False False False False False\n", + " False False False False]\n", + " [False False True False False False False False False False False False\n", + " False False False False False False False False True True False False\n", + " False False False False False False False False False False False False\n", + " False False False False]]\n" + ] + } + ], + "source": [ + "nminusone.to_npz(\"nminusone_results.npz\")\n", + "\n", + "with np.load(\"nminusone_results.npz\") as f:\n", + " for i in f.files:\n", + " print(f\"{i}: {f[i]}\")" + ] + }, + { + "cell_type": "markdown", + "id": "abfab631-e4bd-40b7-a3e8-faff7c87ed76", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Finally, we can ask from this object to create histograms of different variables, masking them with our N-1 selection.\n", + "What it will output is a list of histograms, one for each requested variable, where the x-axis is the distribution of the variable, and the y-axis is the mask that was applied.\n", + "It is essentially slices of how the variable distribution evolves as each N-1 or N selection is applied. It does also return a list of labels of the masks to keep track.\n", + "\n", + "Note that the variables are parsed using a dictonary of `name: array` pairs and that the arrays will of course be flattened to be histogrammed." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "b21100ec-06e8-4e94-9966-925a512212b7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "([Hist(\n", + " Regular(20, 5.81891, 60.0685, name='Ept'),\n", + " Integer(0, 5, name='N-1'),\n", + " storage=Double()) # Sum: 60.0,\n", + " Hist(\n", + " Regular(20, -2.93115, 3.11865, name='Ephi'),\n", + " Integer(0, 5, name='N-1'),\n", + " storage=Double()) # Sum: 60.0],\n", + " ['initial', 'N - twoElectron', 'N - noMuon', 'N - leadPt20', 'N'])" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "hs, labels = nminusone.plot_vars(\n", + " {\"Ept\": events.Electron.pt, \"Ephi\": events.Electron.phi}\n", + ")\n", + "hs, labels" + ] + }, + { + "cell_type": "markdown", + "id": "ef70ef89-f1d8-4692-a2fd-044d20ffd706", + "metadata": {}, + "source": [ + "And we can actually plot those histograms using again the `mplhep` backend." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "d7ba7d28-b862-4f59-97df-27a1df3361f5", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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RikpKUm5ublBH6u2tlazZs1Sp06d1Lp1aw0ePFiFhYXe17/++mtNnDhRnTp1UqtWrdS/f/86wWJNTY0mT56s2NhYJScn67HHHqt3rFatWikpKUk9evRQTk6OevXqpbVr1yo/P19z587VRx995M2K5ufn67LLLtPLL7+ssWPH6pJLLtFVV12lBQsW6LXXXvNmNP/yl7/o008/1TPPPKO0tDSNGTNG8+fP1+OPP64TJ04Ebd0AAED4aZaBZ0REhBYuXKilS5fq4MGDQR3rjjvu0ObNm7Vy5Up9/PHHuuGGGzR69Gjt3r1bknT8+HENGjRIb7zxhnbs2KFf/vKXuvnmm7V161ZvH/fdd5+Kior06quv6i9/+YsKCwu1ffv2844dExOjEydOaMKECbr33nt16aWXqry8XOXl5ZowYUK976msrFR8fLwiI08/0GDz5s3q37+/OnTo4L0nKytLVVVV2rlzZ7191NbWqqqqyqcBAICGczrTScYzwK677jqlpaUpOzs7aGMcOHBAK1as0KpVqzRs2DBdcsklmjVrloYOHaoVK1ZIkjp16qRZs2YpLS1NPXr00K9+9SuNHj1aL774oiSpurpay5cv16OPPqqRI0eqf//+KigoOOceS7fbrWeeeUYff/yxrrrqKsXExCg2NlaRkZFKSkpSUlKSYmJi6rzvq6++0vz58/XLX/7Se+3w4cM+Qack78+HDx+ud/zc3FwlJCR4W0pKin8LBwBAmHM64CTwDIJFixapoKBAu3btOu+9t956q2JjY72tIT755BO53W717t3b571FRUXau3evpNNB4vz589W/f3+1a9dOsbGxWr9+vQ4cOCBJ2rt3r06cOKHBgwd7+23Xrp369OlTZ7zf//73io2NVUxMjKZPn667775bt912W4PmWlVVpWuvvVapqanKyclp0HvOZs6cOaqsrPS2srKyRvUHAADCQ7N+gPzw4cOVlZWlOXPmaOrUqee8d968eZo1a5Zf/VdXVysiIkLFxcWKiIjwee1M8PrII49o8eLF+t3vfqf+/furdevWmjlz5gXtn5w0aZIefPBBxcTEKDk5WS1aNOy/G44dO6bRo0crLi5Oq1evVsuWLb2vJSUl+ZT9JenLL7/0vlYfl8sll8vl9/wBAMBpTmUcvzsH05p14ClJeXl5SktLqzeD+G2JiYlKTEz0q+/LL79c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3XLLLUH5nAAA4PwcP9FuO/PNRX4Fni1atFBERMQ5W30l4VA1b948Y49/sixLr776qtq2bavhw4dr1KhR6tGjh1544YWzvicmJkYXXXTRWV/PysrSQw89pPvvv19XXHGFjh07psmTJ/vck5eXp+uvv14333yzvve972nPnj1av3692rZtG7DPBgAA0BCW7ccmzVdfffWsr23evFlLliyRx+M562loNE9VVVVKSEhQpsYp0mp5/jcAF8g9clBQ+o3YePYvxmiMQw/8ICj9dthWG5R+g7UOCL6m9m8jWIKxDqdOHdffCueqsrIyIGcazvzO7PafC9QiOjoAM7xwnuPHtf/XDwbsszWEX+nJcePG1blWWlqq2bNn67XXXtOkSZM0b968gE0OAACgWXJoj2WdORh2wXs8Dx06pOnTp6t///46deqUSkpKVFBQ0KQfMA8AAIDg8TvwrKys1AMPPKCePXtq586d2rhxo1577TVddtllwZgfAABAs+P0oSKnDhf5VWp/+OGHtWjRIiUlJen555+vt/QOAACA83Dom4PqzMEwvwLP2bNnKyYmRj179lRBQYEKCgrqve+VV14JyOQAAACapTDd4+lX4Dl58mTvt9oAAAAA/vAr8MzPzw/SNAAAAMKHU3ssvzsH05rO094BAACaizAttYftd7UDAADALDKeAAAApoVAqT3kDxcBAAAgACi1AwAAAMFDxhMAAMC0MM14EngCAAAYFq6PU6LUDgAAACMIPAEAAGAEpXYAAADT2OMJAAAAE9jjCQAAAAQRGU8AAAAnOF1qdwCBJwAAgGlhuseTUjsAAACMIOMJAABgWLgeLiLwBAAAMI1SOwAAABA8ZDwBAAAMC9dSOxlPAAAA0+wQaQ2Um5urK664QnFxcUpMTNT48eNVWlrq98cm8AQAAMA5FRUVacaMGXr//fe1YcMGnTx5UldffbVqamr86odSOwAAgGlN7HDRunXrfH7Oz89XYmKiiouLNXz48Ab3Q+AJAABgWCjt8ayqqvK57nK55HK5zvneyspKSVK7du38GpPAE0DAuUcOCkq/X6af+/8IL1j6D4LTbxNz6IHgrEOHbbVB6TdiY3FQ+gWMCKGMZ0pKis/l7Oxs5eTknPVtHo9HM2fO1JAhQ3TZZZf5NSSBJwAAQBgrKytTfHy89+fzZTtnzJihHTt26N133/V7LAJPAAAA00Io4xkfH+8TeJ7LHXfcoddff13vvPOOOnfu7PeQBJ4AAACGhdIez4awbVu/+tWvtHr1ahUWFqp79+4XNCaBJwAAAM5pxowZeu655/Tqq68qLi5Ohw8fliQlJCQoJiamwf3wHE8AAADTnH5wvJ+l/mXLlqmyslKZmZlKTk72thdeeMGvj03GEwAAwLCmWGoPBDKeAAAAMIKMJwAAgGkhdKrdJAJPAAAA08I08KTUDgAAACPIeAIAABhm/bs5PQfTCDwBAABMC9NSO4EnAACAYU3tcUqBwh5PAAAAGEHGEwAAwDRK7QAAADDG6cDTAZTaAQAAYAQZTwAAAMPC9XARgScAAIBpYbrHk1I7AAAAjCDjCQAAYBildgAAAJhBqR0AAAAIHjKeAAAAhlFqBwAAgBlhWmon8AQAADAtTANP9ngCAADACDKeAAAAhrHHEwAAAGZQagcAAACCh4wnAACAYZZty7KdTXk6MT4ZTwOmTp2q8ePHOz0NAAAQKuwQaYY5GnhOnTpVlmUpLy/P5/qaNWtkWVaj+8/MzNTMmTMb3c+5FBYWyrKsetvhw4eDMiaBLAAAaIocz3hGR0dr0aJFOnLkiNNTaZTS0lKVl5f7tMTEREfndPLkSUfHBwAA9Ttzqt3pZprjgeeoUaOUlJSk3NzcgPY7depUFRUVafHixd4M5P79+5Wenq5HH33Ue9/48ePVsmVLVVdXS5IOHjwoy7K0Z88eSdKRI0c0efJktW3bVq1atdKYMWO0e/fuOuMlJiYqKSnJp7VoUf/yejwe5ebmqnv37oqJidHAgQP10ksv+dyzc+dO/ehHP1J8fLzi4uI0bNgw7d27Vzk5OSooKNCrr77q/VyFhYXav3+/LMvSCy+8oBEjRig6OlrPPvusPB6P5s2bp86dO8vlciktLU3r1q3zjnPmfa+88oquvPJKtWrVSgMHDtTmzZsb/b8BAAA4C6dL7OFYapekiIgILVy4UEuXLtXBgwcD1u/ixYuVkZGh6dOnezOQKSkpGjFihAoLCyVJtm3rb3/7m9q0aaN3331XklRUVKROnTqpZ8+ekk4HsNu2bdPatWu1efNm2bata665plHZxNzcXD399NN64okntHPnTt1999266aabVFRUJEn64osvNHz4cLlcLr311lsqLi7WtGnTdOrUKc2aNUs33nijRo8e7f1cP/jBD7x9z549W3fddZd27dqlrKwsLV68WI899pgeffRRffzxx8rKytKPf/zjOsHzgw8+qFmzZqmkpES9e/fWxIkTderUqXrnX1tbq6qqKp8GAABwPiFxqv26665TWlqasrOztXz58oD0mZCQoKioKLVq1UpJSUne65mZmVq+fLncbrd27NihqKgoTZgwQYWFhRo9erQKCws1YsQISdLu3bu1du1abdq0yRvcPfvss0pJSdGaNWt0ww03ePvt3Lmzz/hdu3bVzp0768yrtrZWCxcu1F//+ldlZGRIknr06KF3331XTz75pEaMGKHHH39cCQkJWrlypVq2bClJ6t27t7ePmJgY1dbW+nyuM2bOnKmf/OQn3p8fffRRPfDAA/rpT38qSVq0aJHefvtt/e53v9Pjjz/uvW/WrFm69tprJUlz587VpZdeqj179qhv3751xsjNzdXcuXPrXXcAAHB+4foAeccznmcsWrRIBQUF2rVr13nvvfXWWxUbG+tt/hg2bJiOHTumDz/8UEVFRRoxYoQyMzO9WdCioiJlZmZKknbt2qXIyEgNHjzY+/6LLrpIffr0qTPPv/3tbyopKfG2P//5z/WOv2fPHn3zzTf64Q9/6PMZnn76ae3du1eSVFJSomHDhnmDTn+kp6d7/1xVVaVDhw5pyJAhPvcMGTKkzvwHDBjg/XNycrIkqaKiot4x5syZo8rKSm8rKyvze54AAIQ1p0vsDpXaQyLjKUnDhw9XVlaW5syZo6lTp57z3nnz5mnWrFkXNE6bNm00cOBAFRYWavPmzfrhD3+o4cOHa8KECfrss8+0e/dub8bTH927d1ebNm3Oe9+ZvaRvvPGGOnXq5POay+WSdDqjeaFat259Qe/7dpB75okCHo+n3ntdLpd3rgAAwH/hmvEMmcBTkvLy8pSWlqY+ffqc877ExMQGnRiPioqS2+2uc33EiBF6++23tXXrVi1YsEDt2rVTv379tGDBAiUnJ3vL2v369dOpU6e0ZcsWb6n966+/VmlpqVJTUy/gE0qpqalyuVw6cODAWQPcAQMGqKCgQCdPnqw363m2z/Vd8fHx6tixozZt2uQz1qZNm/T973//guYPAABwoUKm1C5J/fv316RJk7RkyZKA9NetWzdt2bJF+/fv11dffeXN4GVmZmr9+vWKjIz07mHMzMzUs88+6xOg9erVS+PGjdP0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HaOiotSmTRufe1nHuj755BPFxsbK5XLp1ltv1erVq5Wamsoa+mHlypXavn27cnNz67zGOp7f4MGDlZ+fr3Xr1mnZsmXat2+fhg0bpmPHjrF+fvj888+1bNky9erVS+vXr9dtt92mO++8UwUFBZL4/RJIfGUmEMZmzJihHTt2+OwJQ8P16dNHJSUlqqys1EsvvaQpU6aoqKjI6Wk1GWVlZbrrrru0YcMGRUdHOz2dJmnMmDHePw8YMECDBw9W165d9eKLLyomJsbBmTUtHo9H6enpWrhwoSTp8ssv144dO/TEE09oypQpDs+ueSHjiWYjKSlJkuqc2Pzyyy+9r+H/3HHHHXr99df19ttvq3Pnzt7rSUlJOnHihI4ePepzP+tYV1RUlHr27KlBgwYpNzdXAwcO1OLFi1nDBiouLlZFRYW+973vKTIyUpGRkSoqKtKSJUsUGRmpDh06sI5+atOmjXr37q09e/bw99APycnJSk1N9bnWr18/77YFfr8EDoEnmo3u3bsrKSlJGzdu9F6rqqrSli1blJGR4eDMQott27rjjju0evVqvfXWW+revbvP64MGDVLLli191rG0tFQHDhxgHc/D4/GotraWNWygkSNH6pNPPlFJSYm3paena9KkSd4/s47+qa6u1t69e5WcnMzfQz8MGTKkzmPlPvvsM3Xt2lUSv18CyunTTYA/jh07Zn/44Yf2hx9+aEuyf/vb39offvih/fe//922bdvOy8uz27RpY7/66qv2xx9/bI8bN87u3r27/a9//cvhmYeO2267zU5ISLALCwvt8vJyb/vmm2+899x66612ly5d7Lfeesvetm2bnZGRYWdkZDg469Aze/Zsu6ioyN63b5/98ccf27Nnz7Yty7L/8pe/2LbNGl6ob59qt23W8Xzuvfdeu7Cw0N63b5+9adMme9SoUfbFF19sV1RU2LbN+jXU1q1b7cjISHvBggX27t277WeffdZu1aqV/cwzz3jv4fdLYBB4okl5++23bUl12pQpU2zbPv3Ii4ceesju0KGD7XK57JEjR9qlpaXOTjrE1Ld+kuwVK1Z47/nXv/5l33777Xbbtm3tVq1a2dddd51dXl7u3KRD0LRp0+yuXbvaUVFRdvv27e2RI0d6g07bZg0v1HcDT9bx3CZMmGAnJyfbUVFRdqdOnewJEybYe/bs8b7O+jXca6+9Zl922WW2y+Wy+/bta//hD3/weZ3fL4Fh2bZtO5NrBQAAQDhhjycAAACMIPAEAACAEQSeAAAAMILAEwAAAEYQeAIAAMAIAk8AAAAYQeAJAAAAIwg8AQAAYASBJwCEiKlTp8qyrDpt9OjRDXr//v37ZVmWSkpKgjtRALhAkU5PAADwf0aPHq0VK1b4XHO5XA7NBgACi4wnAIQQl8ulpKQkn9a2bVtJkmVZWrZsmcaMGaOYmBj16NFDL730kve93bt3lyRdfvnlsixLmZmZTnwEADgrAk8AaEIeeughXX/99froo480adIk/fSnP9WuXbskSVu3bpUk/fWvf1V5ebleeeUVJ6cKAHUQeAJACHn99dcVGxvr0xYuXOh9/YYbbtAvfvEL9e7dW/Pnz1d6erqWLl0qSWrfvr0k6aKLLlJSUpLatWvnyGcAgLNhjycAhJArr7xSy5Yt87n27QAyIyPD57WMjAwOEwFoMgg8ASCEtG7dWj179nR6GgAQFJTaAaAJef/99+v83K9fP0lSVFSUJMntdhufFwA0BBlPAAghtbW1Onz4sM+1yMhIXXzxxZKkVatWKT09XUOHDtWzzz6rrVu3avny5ZKkxMRExcTEaN26dercubOio6OVkJBg/DMAwNmQ8QSAELJu3TolJyf7tKFDh3pfnzt3rlauXKkBAwbo6aef1vPPP6/U1FRJpwPUJUuW6Mknn1THjh01btw4pz4GANTLsm3bdnoSAIDzsyxLq1ev1vjx452eCgBcEDKeAAAAMILAEwAAAEZwuAgAmgh2RgFo6sh4AgAAwAgCTwAAABhB4AkAAAAjCDwBAABgBIEnAAAAjCDwBAAAgBEEngAAADCCwBMAAABGEHgCAADAiP8P6Fcn6WrgLY8AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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R4/WI488ovvvv9+rWEtKSjRo0CDFxcVpypQpXh1TlUmTJqm4uNg9CgoKajQfAABAVa7ohwL07dtXycnJmjRpktLS0qrdd+rUqRo/frxP85eWlqpevXravn276tWr5/HehYR39uzZWrBggebPn6+uXbuqcePGSk9Pv6x+0BEjRuiJJ55QaGioWrRooaAg7/5f49SpUxowYIDCw8O1evVqNWjQwP2e3W73aEmQpGPHjrnfq0xwcLCCg4N9jh8AAJxnhcqm2et764pOViVp5syZio+Pr7RSebGoqChFRUX5NPf1118vh8Oh48eP65Zbbql0n48//lhDhgzR7373O0mS0+nUl19+qbi4OEnSNddcowYNGmjLli1q06aNJOnkyZP68ssvlZiY6DFXZGSkYmJiKl2nYcOGcjgcFbaXlJQoOTlZwcHBeuuttxQSEuLxfkJCgqZPn67jx4+7P/+GDRsUERHhjhEAANQul8sml8nJotnre+uKbgOQpK5du2rEiBFauHBhrc/dqVMnjRgxQqmpqXrzzTd18OBBbd26VRkZGXr33XclSR07dtSGDRu0adMm7d27V//v//0/d+VSOl+BHTVqlCZMmKD3339fu3fvVlpamtdV0wvatWungwcPKi8vTydOnHBfBHX77berrKxMy5YtU0lJiYqKilRUVORObG+//XbFxcXprrvu0qeffqr169frySef1JgxY6ieAgAA013xlVXp/Ff8r776ql/mXr58uZ555hk9+uij+uabb3T11Vfrpptu0s9//nNJ0pNPPqmvv/5aycnJatSokX7/+98rJSXF48b8s2fPVmlpqQYPHqzw8HA9+uijFW7cfym/+tWv9Oabb6pfv376/vvvtXz5crVr105btmyRpAoV2YMHD6pdu3aqV6+e3nnnHd1///1KSEhQ48aNNXLkSE2dOrWGZwYAAFTlwo35zY4hENhcLlegPMAAFlVSUqLIyEglaYjq2xpc+oAr2IH5N/ll3mvSN/tlXn/54c7el97JQkJXbzE7BEvw19+bv86vv/69SVLLHP/8auRnzb/88TPhPH1ahx9/0n3rx5q68Duz95qHVL+xud9gnisr15aUhbX22fzlim8DAAAAQOCqE20AAAAAVsIFVt4jWQUAADAYt67yHskqAACAwaiseo+eVQAAAFgWlVUAAACDuSzQBhAolVWSVQAA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qsTERIWEhOiVV16R0+nU1KlT1bp1awUHBys+Pl7r1q1zr3PhuDfffFP9+vVTo0aN1L17d+Xm5tb47wAAAFTB7K//aQPwXr169TRjxgwtWrRIR44cqbV5FyxYoISEBI0ePdpd6YyOjlZiYqKys7MlSS6XS//3f/+nJk2a6KOPPpIk5eTkqFWrVoqJiZF0Pundtm2b3nrrLeXm5srlcumOO+6oUdUyIyNDL730kp5//nnt2bNHjzzyiH73u98pJydHkvTNN9+ob9++Cg4O1vvvv6/t27frnnvu0blz5zR+/Hj9+te/1oABA9yfq0+fPu65J06cqIcfflh79+5VcnKyFixYoLlz52rOnDn67LPPlJycrF/84hcVEu4nnnhC48ePV15enjp16qThw4fr3LlzlcZfXl6ukpISjwEAAOAPlrgbwJ133qn4+HhNnjxZy5Ytq5U5IyMj1bBhQzVq1Eh2u929PSkpScuWLZPD4dDu3bvVsGFDDRs2TNnZ2RowYICys7OVmJgoSfrqq6/01ltv6eOPP3YnhK+88oqio6O1Zs0aDR061D1v69atPdZv27at9uzZUyGu8vJyzZgxQ//617+UkJAgSerQoYM++ugjLV26VImJiVq8eLEiIyO1cuVKNWjQQJLUqVMn9xyhoaEqLy/3+FwXpKen65e//KX79Zw5c/T444/rN7/5jSRp1qxZ+uCDDzR//nwtXrzYvd/48eM1aNAgSdLTTz+ta6+9Vvv371fnzp0rrJGRkaGnn3660vMOAAAuzQpfw5u9vrdMr6xeMGvWLGVlZWnv3r2X3Pe+++5TWFiYe/jilltu0alTp7Rz507l5OQoMTFRSUlJ7mprTk6OkpKSJEl79+5V/fr11bt3b/fxP/nJTxQbG1shzv/7v/9TXl6ee7z33nuVrr9//3795z//0W233ebxGV566SUdOHBAkpSXl6dbbrnFnaj6olevXu4/l5SU6OjRo7r55ps99rn55psrxN+tWzf3n1u0aCFJOn78eKVrTJo0ScXFxe5RUFDgc5wAANRpZn/9H0BtAJaorEpS3759lZycrEmTJiktLa3afadOnarx48df1jpNmjRR9+7dlZ2drdzcXN12223q27evhg0bpi+//FJfffWVu7Lqi/bt26tJkyaX3O9Cb+y7776rVq1aebwXHBws6Xzl9HI1btz4so67ODG+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1L17dyUnJ+v48eNmh2YZZWVl6t69uxYvXmx2KJaUk5OjMWPGaPPmzdqwYYPOnj2r22+/XWVlZWaHZhmtW7fWzJkztX37dm3btk233nqrhgwZoj179pgdGirBrasAA82ePVtLlizR119/bXYolpOZman09HR9//33Zodiqt69e+uGG27Qs88+K+n8E2Kio6P14IMPauLEiSZHZz02m02rV69WSkqK2aFY1rfffquoqCjl5OSob9++ZodjWU2bNtXs2bM1atQos0PBj1BZBQxUXFyspk2bmh0GLOrMmTPavn27+vfv794WFBSk/v37Kzc318TIEMiKi4slif/2VMHhcGjlypUqKyvz+TGgMAZPsAIMsn//fi1atEhz5swxOxRY1IkTJ+RwONxPg7mgefPm+uKLL0yKCoHM6XQqPT1dN998s89PDbrS7dq1SwkJCTp9+rTCwsK0evVqxcXFmR0WKkFlFfDRxIkTZbPZqh0/Tiy++eYbDRgwQEOHDtXo0aNNitw4l3OOANS+MWPGaPfu3Vq5cqXZoVhObGys8vLytGXLFt1///0aOXKkPv/8c7PDQiWorAI+evTRR5WWllbtPh06dHD/+ejRo+rXr5/69OmjF154wc/RWYOv5wjnXX311apXr56OHTvmsf3YsWOy2+0mRYVANXbsWL3zzjv68MMP1bp1a7PDsZyGDRsqJiZGktSzZ0998sknWrBggZYuXWpyZPgxklXAR82aNVOzZs282vebb75Rv3791LNnTy1fvlxBQXXjywxfzhH+p2HDhurZs6c2btzovmDI6XRq48aNGjt2rLnBIWC4XC49+OCDWr16tbKzs9W+fXuzQwoITqdT5eXlZoeBSpCsAn7yzTffKCkpSW3bttWcOXP07bffut+jSvY/+fn5+u6775Sfny+Hw6G8vDxJUkxMjMLCwswNzgTjxo3TyJEj1atXL914442aP3++ysrKdPfdd5sdmmWUlpZq//797tcHDx5UXl6emjZtqjZt2pgYmTWMGTNGK1as0Nq1axUeHq6ioiJJUmRkpEJDQ02OzhomTZqkgQMHqk2bNjp16pRWrFih7OxsrV+/3uzQUAluXQX4SWZmZpUJBv/s/ictLU1ZWVkVtn/wwQdKSkoyPiALePbZZzV79mwVFRUpPj5eCxcuVO/evc0OyzKys7PVr1+/CttHjhypzMxM4wOyGJvNVun25cuXX7I9p64YNWqUNm7cqMLCQkVGRqpbt256/PHHddttt5kdGipBsgoAAADLqhsNdAAAAAhIJKsAAACwLJJVAAAAWBbJKgAAACyLZBUAAACWRbIKAAAAyyJZBQAAgGWRrAJAADt06JBsNpv7yV+VyczMVJMmTQyLCQBqE8kqAJgoLS1NNputwhgwYECtrTFs2DB9+eWXtTYfABipvtkBAEBdN2DAAC1fvtxjW3BwcK3NHxoayjPhAQQsKqsAYLLg4GDZ7XaPcdVVV0k6/5z3JUuWaODAgQoNDVWHDh30+uuvV5jj66+/Vr9+/dSoUSN1795dubm57vdoAwAQyEhWAcDinnrqKf3qV7/Sp59+qhEjRug3v/mN9u7d67HPE088ofHjxysvL0+dOnXS8OHDde7cOZMiBoDaQ7IKACZ75513FBYW5jFmzJjhfn/o0KG699571alTJ02bNk29evXSokWLPOYYP368Bg0apE6dOunpp5/W4cOHtX//fqM/CgDUOnpWAcBk/fr105IlSzy2NW3a1P3nhIQEj/cSEhIqXP3frVs3959btGghSTp+/Lg6d+5cy9ECgLFIVgHAZI0bN1ZMTEyN5mjQoIH7zzabTZLkdDprNCcAWAFtAABgcZs3b67wukuXLiZFAwDGorIKACYrLy9XUVGRx7b69evr6quvliStWrVKvXr10k9/+lO98sor2rp1q5YtW2ZGqABgOJJVADDZunXr3H2mF8TGxuqLL76QJD399NNauXKlHnjgAbVo0UJ///vfFRcXZ0aoAGA4m8vlcpkdBACgcjabTatXr1ZKSorZoQCAKehZBQAAgGWRrAIAAMCy6FkFAAujUwtAXUdlFQAAAJZFsgoAAADLIlkFAACAZZGsAgAAwLJIVgEAAGBZJKsAAACwLJJVAAAAWBbJKgAAACyLZBUAAACW9f8BKTUhIJBMVKYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for h in hs:\n", + " h.plot2d()\n", + " plt.yticks(plt.gca().get_yticks(), labels, rotation=0)\n", + " plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "f78249e8-8ebe-43b3-8dd5-b996db6cfa2d", + "metadata": {}, + "source": [ + "You can slice these histograms to view and plot the 1D histogram at each step of the selection. For example, if we want the $P_T$ of the electrons at the final step (index 4) of the selection, we can do the following." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "2cda4d43-4933-4fe1-a19b-1db74a5b62d0", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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Cxfqww8/VHl5uf8rLi5OS5cu9f9v1rL7GhsbdfHiRY0bN44/l100d+7cdr9a5ZNPPtHEiRMl9YPvP71+CzkGlBs3bljnz5+3zp8/b0mytm7dap0/f9763//9X8uyLOvll1+2HnzwQeu9996zfv/731uPP/64NXnyZOvzzz8P8OT9zzPPPGOFhYVZv/nNb6wrV674v5qbm/37/PCHP7SioqKsEydOWKWlpVZiYqKVmJgYwKn7p3Xr1lknT560qqurrd///vfWunXrLJvNZh09etSyLNbxbnz103CWxVp2xXPPPWf95je/saqrq60zZ85YKSkp1ujRo62rV69alsVadkVJSYllt9utl156yfr000+tt99+2xo6dKj1n//5n/59Avn9h1hCG0VFRZakdl+ZmZmWZf3l45vr16+3IiIirNDQUGvhwoVWVVVVYIfupzpaR0nW7t27/ft8/vnn1o9+9CNr5MiR1tChQ62MjAzrypUrgRu6n3r66aetiRMnWiEhIdaYMWOshQsX+kPJsljHu/H1WGIt79zixYutcePGWSEhIZbT6bQWL15sXbhwwf88a9k1v/rVr6wZM2ZYoaGh1kMPPWS9+eabbZ4P5Pcfm2VZVu9fvwIAABiYuGcJAADAgFgCAAAwIJYAAAAMiCUAAAADYgkAAMCAWAIAADAglgAAAAyIJQAAAANiCQAAwIBYAnDfeuqpp2Sz2dp9ffe7372j1//P//yPbDabysvLe3dQAAFlD/QAABBI3/3ud7V79+4220JDQwM0DYD+iCtLAO5roaGhioyMbPM1cuRISZLNZlNOTo7cbreGDBmiKVOm6Be/+IX/tZMnT5YkzZ49WzabTQsWLAjEWwDQy4glADBYv369vve97+l3v/udli5dqu9///v66KOPJEklJSWSpOPHj+vKlSs6cOBAIEcF0EuIJQD3tUOHDmnYsGFtvjZt2uR//sknn9Tf//3f65vf/KZ+8pOfKC4uTq+//rokacyYMZKk8PBwRUZGatSoUQF5DwB6F/csAbivJSUlKScnp822r0ZPYmJim+cSExO5oRu4zxBLAO5rDzzwgL7xjW8EegwA/Rg/hgMAgw8++KDd42nTpkmSQkJCJEmtra19PheAvsOVJQD3tS+++EK1tbVtttntdo0ePVqS9O677youLk6PPPKI3n77bZWUlGjnzp2SpLFjx2rIkCEqKCjQ+PHjNXjwYIWFhfX5ewDQu7iyBOC+VlBQoHHjxrX5euSRR/zP/9u//Zv279+vmTNn6j/+4z/0s5/9TDExMZL+ElWvvfaa3njjDTkcDj3++OOBehsAepHNsiwr0EMAQH9ks9mUn5+vRYsWBXoUAAHElSUAAAADYgkAAMCAG7wBoBPcpQBA4soSAACAEbEEAABgQCwBAAAYEEsAAAAGxBIAAIABsQQAAGBALAEAABgQSwAAAAb/Dzx9urnAPgsTAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "hs[0][:, 4].plot1d(yerr=0)\n", + "plt.yscale(\"log\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "328c05ef-6ddf-478d-93f2-c260436b4b0e", + "metadata": {}, + "source": [ + "Because this automatic bining doesn't look great, for $P_T$ at least, the user has the ability to customize the axes or pass in their own axes objects." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "10c5faad-e4a0-458c-9097-26acee2bba12", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Help on method plot_vars in module coffea.analysis_tools:\n", + "\n", + "plot_vars(vars, axes=None, bins=None, start=None, stop=None, edges=None, transform=None) method of coffea.analysis_tools.NminusOne instance\n", + " Plot the histograms of variables for each step of the N-1 selection\n", + " \n", + " Parameters\n", + " ----------\n", + " vars : dict\n", + " A dictionary in the form ``{name: array}`` where ``name`` is the name of the variable,\n", + " and ``array`` is the corresponding array of values.\n", + " The arrays must be the same length as each mask of the N-1 selection.\n", + " axes : list of hist.axis objects, optional\n", + " The axes objects to histogram the variables on. This will override all the following arguments that define axes.\n", + " Must be the same length as ``vars``.\n", + " bins : iterable of integers or Nones, optional\n", + " The number of bins for each variable histogram. If not specified, it defaults to 20.\n", + " Must be the same length as ``vars``.\n", + " start : iterable of floats or integers or Nones, optional\n", + " The lower edge of the first bin for each variable histogram. If not specified, it defaults to the minimum value of the variable array.\n", + " Must be the same length as ``vars``.\n", + " stop : iterable of floats or integers or Nones, optional\n", + " The upper edge of the last bin for each variable histogram. If not specified, it defaults to the maximum value of the variable array.\n", + " Must be the same length as ``vars``.\n", + " edges : list of iterables of floats or integers, optional\n", + " The bin edges for each variable histogram. This overrides ``bins``, ``start``, and ``stop`` if specified.\n", + " Must be the same length as ``vars``.\n", + " transform : iterable of hist.axis.transform objects or Nones, optional\n", + " The transforms to apply to each variable histogram axis. If not specified, it defaults to None.\n", + " Must be the same length as ``vars``.\n", + " \n", + " Returns\n", + " -------\n", + " hists : list of hist.Hist or hist.dask.Hist objects\n", + " A list of 2D histograms of the variables for each step of the N-1 selection.\n", + " The first axis is the variable, the second axis is the N-1 selection step.\n", + " labels : list of strings\n", + " The bin labels of y axis of the histogram.\n", + "\n" + ] + } + ], + "source": [ + "help(nminusone.plot_vars)" + ] + }, + { + "cell_type": "markdown", + "id": "5c3cd75f-858b-41a3-8b0b-060361a51eba", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Cutflow is implemented in a similar manner to the N-1 selection. We just have to use the `cutflow(*names)` function which will return a `Cutflow` object" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "a856a24d-487d-4308-8236-4f89bb5917ca", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Cutflow(selections=('noMuon', 'twoElectron', 'leadPt20'))" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cutflow = selection.cutflow(\"noMuon\", \"twoElectron\", \"leadPt20\")\n", + "cutflow" + ] + }, + { + "cell_type": "markdown", + "id": "ec84e2a3-b2ab-4352-b716-d568814f3300", + "metadata": {}, + "source": [ + "The methods of this object are similar to the `NminusOne` object. The only difference is that now we seperate things in either \"onecut\" or \"cutflow\". \"onecut\" represents results where each cut is applied alone, while \"cutflow\" represents results where the cuts are applied cumulatively in order." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "96692df8-d25b-4e57-9eea-59acdc1a7f78", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " ('labels', 'nevonecut', 'nevcutflow', 'masksonecut', 'maskscutflow')\n" + ] + }, + { + "data": { + "text/plain": [ + "(['initial', 'noMuon', 'twoElectron', 'leadPt20'],\n", + " [40, 28, 5, 17],\n", + " [40, 28, 5, 3],\n", + " [array([ True, True, True, True, False, False, False, True, True,\n", + " True, False, True, True, True, False, True, True, True,\n", + " True, True, True, True, True, False, False, True, False,\n", + " True, False, True, False, False, True, True, False, True,\n", + " True, True, True, True]),\n", + " array([False, False, True, True, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " True, False, True, True, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, False, False]),\n", + " array([False, True, True, False, True, True, True, False, False,\n", + " True, False, False, False, False, False, True, True, False,\n", + " False, False, True, True, False, True, True, False, True,\n", + " True, False, True, False, True, False, True, False, False,\n", + " False, False, False, False])],\n", + " [array([ True, True, True, True, False, False, False, True, True,\n", + " True, False, True, True, True, False, True, True, True,\n", + " True, True, True, True, True, False, False, True, False,\n", + " True, False, True, False, False, True, True, False, True,\n", + " True, True, True, True]),\n", + " array([False, False, True, True, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " True, False, True, True, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, False, False]),\n", + " array([False, False, True, False, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, True, True, False, False, False, False, False,\n", + " False, False, False, False, False, False, False, False, False,\n", + " False, False, False, False])])" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res = cutflow.result()\n", + "print(type(res), res._fields)\n", + "labels, nevonecut, nevcutflow, masksonecut, maskscutflow = res\n", + "labels, nevonecut, nevcutflow, masksonecut, maskscutflow" + ] + }, + { + "cell_type": "markdown", + "id": "e2a06c5f-23d0-4ad0-ab36-dfec7796b8d4", + "metadata": {}, + "source": [ + "As you can see, again we have the same `labels`, `nev` and `masks` only now we have two \"versions\" of them since they've been split into \"onecut\" and \"cutflow\".\n", + "You can again print the statistics of the cutflow exactly like `RDataFrame`." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "4db657a5-f16f-4fef-9956-649269e4ae2c", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Cutflow stats:\n", + "Cut noMuon : pass = 28 cumulative pass = 28 all = 40 -- eff = 70.0 % -- cumulative eff = 70.0 %\n", + "Cut twoElectron : pass = 5 cumulative pass = 5 all = 40 -- eff = 12.5 % -- cumulative eff = 12.5 %\n", + "Cut leadPt20 : pass = 17 cumulative pass = 3 all = 40 -- eff = 42.5 % -- cumulative eff = 7.5 %\n" + ] + } + ], + "source": [ + "cutflow.print()" + ] + }, + { + "cell_type": "markdown", + "id": "e6aa8edf-3953-410d-b46f-f7d54adda821", + "metadata": {}, + "source": [ + "Again, you can extract yield hists, only now there are two of them." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "e9e3db1b-8836-4a85-8e56-5819134b7343", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "data": { + "image/png": "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nasrV65o7dq17H10MI75AG7C/v371b9/f1WsWFELFixQo0aN7OvWrl2rp59+Wo0aNdLrr78uT09PdvE6CWOMdu/erX79+qlx48Zq166dZs6cqXfeeUfdunXLtW1iYqJ8fX11+fJleXp6Omji4mPt2rXy8/NTYGCgjDE6e/as7rnnHvXu3VtjxozR5cuXVb16dT3wwAOaOXOmbDab0tPTtWvXLp09e1YtWrTgoo2FAPEB3KQDBw5o8ODBat26tUaPHp0rQD7//HPVr1+f83g4IWOMdu3apaFDh+rw4cNat26dunbtqqysLJUoUUKSNGHCBO3cuVMxMTGEhwWSkpIUEhKijh076oknntCtt96qS5cu6fbbb9fSpUvl5uam9u3bq3v37nr99dclSevWrVPDhg15a3shwzEfwE0KDAzUW2+9pT179mjOnDk6dOiQfV3Xrl0JDyfx+7/DbDabWrdurYULF6p27dp68cUXc4XH5MmTNXfuXM2cOZPwsEjlypX14Ycf6uDBg5o1a5YOHjyoEiVK6PLly9q8ebO6du2qsLAw+xlmf/jhBy1evNh+jA4KD+IDyAfNmzfXm2++qQMHDmjq1Kn6/vvvHT0S8uC3p+KOiorSY489ppiYGP36669q06aNlixZori4OPsp1adPn64ZM2Zo27ZtCg4OdvD0xUtQUJAWLFigffv2ac6cOTp//rxGjBihxx57TPXq1dMbb7xhD8Q33nhDBw8eVOPGjR08NX6Pl12AfLR792498cQTevfdd1WlShVHj4M8+OijjzRo0CC1a9dOFy5c0LfffquBAwfqscceU5MmTfT111/rvvvu008//SQXFxdt27ZNLVq0cPTYxdb+/fv10EMPqWXLlurfv7/WrVun2bNnKyoqSpJ08uRJLVmyRFu3blWzZs0cOyz+gPgA8hnX4XE+J0+eVNeuXTVx4kQNGzZMkvTuu+/qxRdf1G233aZp06bJx8dH27dv19SpU/Xvf/+bX2iFwP79+zVs2DC1bNlS4eHhiouL0/z58+Xl5aVatWrpX//6F3s9CiniA0Cxd+TIEXXt2lVLlixRu3bt7MuXLVumYcOG6fPPP1fbtm2VlZWlzMxM4rIQ2bdvnx555BE1a9ZMzz//vHx9fe3vcOF5Krw45gNAsZPzN1d6erqka6fivnDhgjIzMyVJly9fliTdf//9ql27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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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PFxPPvlkUdUOAACcUIHCx4IFC/50mZ+fn2JjY6+7IAAAULJxbxcAAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKUIHwAAwFKEDwAAYCnCBwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACApQgfAADAUoQPAABgKcIHAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKUIHwAAwFKEDwAAYKkChY958+YpMDBQXl5e8vLyUnBwsL744gv78szMTEVERKhy5cry9PRUeHi4UlJSCr1oAADgvAoUPmrXrq3nnntOO3bs0Pbt29WtWzf17dtXP/74oyRp3LhxWrVqlT766CPFxsbq5MmT6t+/f5EUDgAAnFO5gnTu06dPvufPPvus5s2bp61bt6p27dpasGCBlixZom7dukmS3n77bTVr1kxbt25Vhw4dCq9qAADgtK75nI+cnBwtXbpUFy5cUHBwsHbs2KHs7GyFhoba+zRt2lR16tTRli1bCqVYAADg/Ao08iFJu3fvVnBwsDIzM+Xp6anly5erefPmio+Pl6urqypVqpSvf/Xq1ZWcnPyn28vKylJWVpb9eXp6ekFLAgAATqTAIx9NmjRRfHy8tm3bpkceeURDhw7V3r17r7mAqKgoeXt72x9+fn7XvC0AAFD8FTh8uLq66sYbb1Tbtm0VFRWlli1bau7cufL19dWlS5eUmpqar39KSop8fX3/dHuRkZFKS0uzPxITEwv8QwAAAOdx3fN85ObmKisrS23btpWLi4vWr19vX5aQkKBjx44pODj4T9d3c3OzX7qb9wAAACVXgc75iIyMVK9evVSnTh2dO3dOS5Ys0caNG7V27Vp5e3tr+PDhGj9+vHx8fOTl5aXRo0crODiYK10AAIBdgcLHqVOnNGTIECUlJcnb21uBgYFau3atbr31VknS7NmzVaZMGYWHhysrK0thYWF69dVXi6RwAADgnAoUPhYsWPCXy93d3RUdHa3o6OjrKgoAAJRc3NsFAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGApwgcAALAU4QMAAFiqQDOcAsVFxqUcR5eA6+DhUlY2m83RZQBw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BQv06quv6tKlS1q9ejWjjw7GOR/Addi5c6cGDRqkqlWrav78+fL397cvW716tZ544gn5+/vr9ddfl4eHB0O8TsIYo++//14DBgxQQECAOnXqpJkzZ+q9995Tz5498/VNTk6Wr6+vLl68KA8PDwdVXHqsXr1atWvXVmBgoIwxOn36tO68807dcccdGjt2rC5evKi6devqnnvu0cyZM2Wz2ZSZmalt27bp9OnTatu2LTdtLAYIH8B12rVrl4YOHar27dtrzJgx+QLIl19+qSZNmjCPhxMyxmjbtm0aPny49u3bpzVr1qhHjx7KyclR2bJlJUkTJ07U1q1bFRMTQ/CwQEpKioKDgxUSEqLHHntMzZo104ULF9S1a1ctXrxYrq6u6ty5s2677Ta9/vrrkqQ1a9aoefPmXNpezHDOB3CdAgMD9dZbb2n79u2aM2eO9u7da1/Wo0cPgoeT+P33MJvNpvbt22vBggVq2LChXnjhhXzBY8qUKXr11Vc1c+ZMgodFqlevro8//lh79uzRrFmztGfPHpUtW1YXL17Uxo0b1aNHD/Xq1cs+w+zRo0f1zjvv2M/RQfFB+AAKQevWrfXmm29q165deuaZZ/TTTz85uiQUwG+n4o6KitIjjzyimJgY/frrr+rQoYMWLVqkhIQE+5Tqzz77rGbMmKGvv/5aQUFBDq6+dGnTpo3mz5+vuLg4zZkzR2fPntXIkSP1yCOPqHHjxnrjjTfsAfGNN97Qnj17FBAQ4OCq8XscdgEK0ffff6/HHntM77//vmrUqOHoclAAn3zyiYYMGaJOnTrp3Llz2r17t+6991498sgjatGihb777jvdddddOnHihMqUKaOvv/5abdu2dXTZpdbOnTt1//33q127dho0aJDWrFmj2bNnKyoqSpJ05MgRLVq0SJs2bVKrVq0cWyyuQvgAChn34XE+R44cUY8ePTRp0iSNGDFCkvT+++/rhRde0M0336zp06fL29tb33zzjZ555hk9//zzfKAVAzt37tSIESPUrl07hYeHKyEhQa+99po8PT3VoEED/fvf/2bUo5gifAAo9fbv368ePXpo0aJF6tSpk719yZIlGjFihL788kt17NhROTk5ys7OJlwWI3FxcXrooYfUqlUrTZs2Tb6+vvYrXHidii/O+QBQ6uR958rMzJR0ZSruc+fOKTs7W5J08eJFSdLd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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "honecut, hcutflow, labels = cutflow.yieldhist()\n", + "\n", + "honecut.plot1d(yerr=0)\n", + "plt.xticks(plt.gca().get_xticks(), labels, rotation=45)\n", + "plt.show()\n", + "\n", + "hcutflow.plot1d(yerr=0)\n", + "plt.xticks(plt.gca().get_xticks(), labels, rotation=45)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "b7faec21-57c7-477d-9f7b-1a22c06c0754", + "metadata": {}, + "source": [ + "Saving to `.npz` files is again there." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "ecc3be33-da27-4845-bba2-f163729670ce", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "labels: ['initial' 'noMuon' 'twoElectron' 'leadPt20']\n", + "nevonecut: [40 28 5 17]\n", + "nevcutflow: [40 28 5 3]\n", + "masksonecut: [[ True True True True False False False True True True False True\n", + " True True False True True True True True True True True False\n", + " False True False True False True False False True True False True\n", + " True True True True]\n", + " [False False True True False False False False False False False False\n", + " False False False False False False True False True True False False\n", + " False False False False False False False False False False False False\n", + " False False False False]\n", + " [False True True False True True True False False True False False\n", + " False False False True True False False False True True False True\n", + " True False True True False True False True False True False False\n", + " False False False False]]\n", + "maskscutflow: [[ True True True True False False False True True True False True\n", + " True True False True True True True True True True True False\n", + " False True False True False True False False True True False True\n", + " True True True True]\n", + " [False False True True False False False False False False False False\n", + " False False False False False False True False True True False False\n", + " False False False False False False False False False False False False\n", + " False False False False]\n", + " [False False True False False False False False False False False False\n", + " False False False False False False False False True True False False\n", + " False False False False False False False False False False False False\n", + " False False False False]]\n" + ] + } + ], + "source": [ + "cutflow.to_npz(\"cutflow_results.npz\")\n", + "\n", + "with np.load(\"cutflow_results.npz\") as f:\n", + " for i in f.files:\n", + " print(f\"{i}: {f[i]}\")" + ] + }, + { + "cell_type": "markdown", + "id": "423a72e7-79f6-4e6c-ab59-b2d709e3f9a0", + "metadata": {}, + "source": [ + "And finally, `plot_vars` is also there with the same axes customizability while now it returns two lists of histograms, one for \"onecut\" and one for \"cutflow\". Those can of course be plotted in a similar fashion." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "22454105-13f9-4f22-9450-9915cab46759", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "([Hist(\n", + " Regular(20, 5.81891, 60.0685, name='ept'),\n", + " Integer(0, 4, name='onecut'),\n", + " storage=Double()) # Sum: 73.0,\n", + " Hist(\n", + " Regular(20, -2.93115, 3.11865, name='ephi'),\n", + " Integer(0, 4, name='onecut'),\n", + " storage=Double()) # Sum: 73.0],\n", + " [Hist(\n", + " Regular(20, 5.81891, 60.0685, name='ept'),\n", + " Integer(0, 4, name='cutflow'),\n", + " storage=Double()) # Sum: 63.0,\n", + " Hist(\n", + " Regular(20, -2.93115, 3.11865, name='ephi'),\n", + " Integer(0, 4, name='cutflow'),\n", + " storage=Double()) # Sum: 63.0],\n", + " ['initial', 'noMuon', 'twoElectron', 'leadPt20'])" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "h1, h2, labels = cutflow.plot_vars(\n", + " {\"ept\": events.Electron.pt, \"ephi\": events.Electron.phi}\n", + ")\n", + "h1, h2, labels" + ] + }, + { + "cell_type": "markdown", + "id": "a96edc79-1b3b-4ff9-8459-6ef28a99d629", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Now, in `coffea` 2023, everything happens in a delayed fashion. Therefore, `PackedSelection` can also operate in delayed or lazy mode and fully support `dask_awkward` arrays. Use is still the same, but everything now is\n", + "a delayed `dask` type object which can be computed whenever the user wants to. This can be done by either calling `.compute()` on the object or `dask.compute(*things)`.\n", + "\n", + "PackedSelection can be initialized to operate in delayed mode by adding a delayed `dask_awkward` array for the first time instead of a materialized `numpy` or `awkward` one.\n", + "I would like to note that we only support delayed `dask_awkward` arrays and not `dask.array` arrays. Please convert your `dask` arrays to `dask_awkward` via `dask_awkward.from_dask_array(array)`. I would also like to note that you cannot mix materialized and delayed arrays in the same `PackedSelection`. Let's now read the same events using dask and perform the exact same things." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "1adf0374-eee9-471b-9582-9cbbf06d2dda", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/iason/fun/coffea_dev/coffea/binder/coffea/nanoevents/schemas/nanoaod.py:215: RuntimeWarning: Missing cross-reference index for FatJet_genJetAK8Idx => GenJetAK8\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "text/plain": [ + "dask.awkward" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import dask\n", + "import dask_awkward as dak\n", + "\n", + "dakevents = NanoEventsFactory.from_root(\n", + " {\"../tests/samples/nano_dy.root\": \"Events\"},\n", + " metadata={\"dataset\": \"nano_dy\"},\n", + " schemaclass=NanoAODSchema,\n", + " permit_dask=True,\n", + ").events()\n", + "\n", + "dakevents" + ] + }, + { + "cell_type": "markdown", + "id": "8cb3c5fc-8897-4860-8fb0-924655e81ef7", + "metadata": {}, + "source": [ + "Now `dakevents` is a delayed `dask_awkward` version of our events and if we compute it we get our normal events." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "a54d1fcc-13c6-4919-bbac-3d6c299f65ab", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
[{FsrPhoton: [], Electron: [], SoftActivityJetHT5: 63.5, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 64, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [Electron, Electron], SoftActivityJetHT5: 130, ...},\n",
+       " {FsrPhoton: [], Electron: [Electron, Electron], SoftActivityJetHT5: 25.8, ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 172, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 54.4, RawMET: ..., ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 96.2, RawMET: ..., ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 19, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 9.36, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 115, RawMET: ..., ...},\n",
+       " ...,\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 49.6, RawMET: ..., ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 14.7, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 22.1, RawMET: ..., ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 33.9, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 16.2, RawMET: ..., ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 28.4, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [{...}], SoftActivityJetHT5: 16.1, RawMET: ..., ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 28.5, RawMET: {...}, ...},\n",
+       " {FsrPhoton: [], Electron: [], SoftActivityJetHT5: 7, RawMET: {...}, ...}]\n",
+       "--------------------------------------------------------------------------------\n",
+       "type: 40 * event
" + ], + "text/plain": [ + ", ...] type='40 * event'>" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dakevents.compute()" + ] + }, + { + "cell_type": "markdown", + "id": "bd16d282-ace9-4d86-9079-dd66a635e508", + "metadata": {}, + "source": [ + "Now we have to use `dask_awkward` instead of `awkward` and `dakevents` instead of `events` to do the same things. Let's add the same (now delayed) arrays to PackedSelection." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "dc25b728-7504-44fb-b920-051dab6c99d1", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "PackedSelection(selections=('twoElectron', 'eleOppSign', 'noElectron', 'twoMuon', 'muOppSign', 'noMuon', 'leadPt20'), delayed_mode=True, items=7, maxitems=32)\n" + ] + } + ], + "source": [ + "selection = PackedSelection()\n", + "\n", + "selection.add_multiple(\n", + " {\n", + " \"twoElectron\": dak.num(dakevents.Electron) == 2,\n", + " \"eleOppSign\": dak.sum(dakevents.Electron.charge, axis=1) == 0,\n", + " \"noElectron\": dak.num(dakevents.Electron) == 0,\n", + " \"twoMuon\": dak.num(dakevents.Muon) == 2,\n", + " \"muOppSign\": dak.sum(dakevents.Muon.charge, axis=1) == 0,\n", + " \"noMuon\": dak.num(dakevents.Muon) == 0,\n", + " \"leadPt20\": dak.any(dakevents.Electron.pt >= 20.0, axis=1)\n", + " | dak.any(dakevents.Muon.pt >= 20.0, axis=1),\n", + " }\n", + ")\n", + "\n", + "print(selection)" + ] + }, + { + "cell_type": "markdown", + "id": "49520c74-3bac-4355-b4b8-482ac38b4ae2", + "metadata": {}, + "source": [ + "Now, the same functions will return `dask_awkward` objects that have to be computed." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "74c43d65-824b-49e6-a6aa-aa7bef97e7d9", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "dask.awkward" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "selection.all(\"twoElectron\", \"noMuon\", \"leadPt20\")" + ] + }, + { + "cell_type": "markdown", + "id": "87ce9147-a37d-46ba-802c-f1531cd1cf3d", + "metadata": {}, + "source": [ + "When computing those arrays we should get the same arrays that we got when operating in eager mode." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "be4b8e7a-5ea1-45f4-b1d9-827e90331366", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[False, False, True, False, False, ..., False, False, False, False, False]\n", + "[False, False, False, True, False, ..., False, False, False, False, False]\n" + ] + } + ], + "source": [ + "print(selection.all(\"twoElectron\", \"noMuon\", \"leadPt20\").compute())\n", + "print(selection.require(twoElectron=True, noMuon=True, eleOppSign=False).compute())" + ] + }, + { + "cell_type": "markdown", + "id": "b32ece8e-90af-4808-8248-8dfe63c16a6c", + "metadata": {}, + "source": [ + "Now, N-1 and cutflow will just return only delayed objects that must be computed." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "4e79a6b3-55cc-4248-a1db-a076f4667278", + "metadata": { + "slideshow": { + "slide_type": "-" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "NminusOne(selections=('twoElectron', 'noMuon', 'leadPt20'))" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nminusone = selection.nminusone(\"twoElectron\", \"noMuon\", \"leadPt20\")\n", + "nminusone" + ] + }, + { + "cell_type": "markdown", + "id": "e661f0d1-f792-423c-b698-f031209a721f", + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "source": [ + "It is again an `NminusOne` object which has the same methods." + ] + }, + { + "cell_type": "markdown", + "id": "8442cbf2-6c41-4174-a011-a0c451c2feb6", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Let's look at the results of the N-1 selection in the same way" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "dee4c70f-d6fa-4b0a-9d04-f5555ec1856f", + "metadata": { + "slideshow": { + "slide_type": "-" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(['initial', 'N - twoElectron', 'N - noMuon', 'N - leadPt20', 'N'],\n", + " [dask.awkward,\n", + " dask.awkward,\n", + " dask.awkward,\n", + " dask.awkward,\n", + " dask.awkward],\n", + " [dask.awkward,\n", + " dask.awkward,\n", + " dask.awkward,\n", + " dask.awkward])" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "labels, nev, masks = nminusone.result()\n", + "labels, nev, masks" + ] + }, + { + "cell_type": "markdown", + "id": "fbd64ce9-fa7d-4ff6-847a-856dae236565", + "metadata": {}, + "source": [ + "Now however, you can see that everything is a dask awkward object (apart from the labels of course). If we compute them we should get the same things as before and indeed we do:" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "f8fc01f5-3f07-441d-b7de-44aeeaa042ca", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "((40, 10, 3, 5, 3),\n", + " (,\n", + " ,\n", + " ,\n", + " ))" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dask.compute(*nev), dask.compute(*masks)" + ] + }, + { + "cell_type": "markdown", + "id": "1df3b553-70b9-4785-b5f3-f44cd25889a6", + "metadata": {}, + "source": [ + "We can again print the statistics, however for this to happen, the object must of course compute the delayed `nev` list." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "118ee230-eb4f-44da-9dba-05ce15e7951e", + "metadata": { + "slideshow": { + "slide_type": "-" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "N-1 selection stats:\n", + "Ignoring twoElectron : pass = 10 all = 40 -- eff = 25.0 %\n", + "Ignoring noMuon : pass = 3 all = 40 -- eff = 7.5 %\n", + "Ignoring leadPt20 : pass = 5 all = 40 -- eff = 12.5 %\n", + "All cuts : pass = 3 all = 40 -- eff = 7.5 %\n" + ] + } + ], + "source": [ + "nminusone.print()" + ] + }, + { + "cell_type": "markdown", + "id": "e1146ee8-5fe8-4e05-8ebe-658014f613a3", + "metadata": {}, + "source": [ + "And now if we call `result()` again, the `nev` list is materialized." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "700e7669-0459-4e3d-b020-805562106cab", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[40, 10, 3, 5, 3]" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nminusone.result().nev" + ] + }, + { + "cell_type": "markdown", + "id": "b77aa859-7ae1-4c54-9fc4-2ab516e3a483", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "source": [ + "Again the histogram of your total event yields works. This time it is returns a `hist.dask.Hist` object." + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "a2c4fb20-b241-4eeb-8312-ee5a645f30b6", + "metadata": { + "slideshow": { + "slide_type": "-" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "5\n", + "\n", + "\n", + "N-1\n", + "\n", + "\n", + "\n", + "
\n", + "
\n", + "Integer(0, 5, name='N-1')
\n", + "
\n", + "Double() Σ=0.0\n", + "\n", + "
\n", + "
\n", + "" + ], + "text/plain": [ + "Hist(Integer(0, 5, name='N-1'), storage=Double()) # (has staged fills)" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "h, labels = nminusone.yieldhist()\n", + "h" + ] + }, + { + "cell_type": "markdown", + "id": "bc992bfd-cce3-4004-9e16-275d69044745", + "metadata": {}, + "source": [ + "It appears empty because it hasn't been computed yet. Let's do that." + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "38a6d003-fc3c-46e5-ad3b-5d343e997dc5", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "5\n", + "\n", + "\n", + "N-1\n", + "\n", + "\n", + "\n", + "
\n", + "
\n", + "Integer(0, 5, name='N-1')
\n", + "
\n", + "Double() Σ=61.0\n", + "\n", + "
\n", + "
\n", + "" + ], + "text/plain": [ + "Hist(Integer(0, 5, name='N-1'), storage=Double()) # Sum: 61.0" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "h.compute()" + ] + }, + { + "cell_type": "markdown", + "id": "c36f391a-d2a6-4364-afcc-8da81d72ec90", + "metadata": {}, + "source": [ + "Notice that this doesn't happen in place as `h` is still not computed." + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "226cd7fa-ac79-460d-aee5-856eb3362099", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "\n", + "5\n", + "\n", + "\n", + "N-1\n", + "\n", + "\n", + "\n", + "
\n", + "
\n", + "Integer(0, 5, name='N-1')
\n", + "
\n", + "Double() Σ=0.0\n", + "\n", + "
\n", + "
\n", + "" + ], + "text/plain": [ + "Hist(Integer(0, 5, name='N-1'), storage=Double()) # (has staged fills)" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "h" + ] + }, + { + "cell_type": "markdown", + "id": "6e496df3-8846-4678-a92a-deaf0f2cafbb", + "metadata": {}, + "source": [ + "We can again plot this histogram but we have to call plot on the computed one, otherwise it will just be empty." + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "c96c48b2-53b3-460b-8019-e9f91473aef5", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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1FQ1b95cq1atkpeXV95VDQAAXFauw0fLli1ljPnD7TabTaNGjdKoUaNuqTAAAFA4sbYLAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKUIHwAAwFKEDwAAYCnCBwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACApQgfAADAUoQPAABgKcIHAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGApwgcAALBUnoePN998UzabLcetTp06ef00AADARRXPjwetX7++vvrqq/89SfF8eRoAAOCC8iUVFC9eXAEBAfnx0ABgGWOMLl7JdHYZRU4J92Ky2WzOLgP5KF/Cx/79+1WpUiV5eXkpPDxcMTExCgoKumFfu90uu93uuJ+enp4fJQFArl28kql6I1Y7u4wiZ/eoCJX0YMS8MMvzOR9hYWGaO3euVq1apRkzZigxMVH33HOPfv311xv2j4mJka+vr+MWGBiY1yUBAIACJM+jZceOHR1fN2zYUGFhYapatao++eQTPfXUU9f1j46O1uDBgx3309PTCSAACpwfX2+rkh7FnF1GoXXhcqaavP3VX3dEoZDv41plypRRrVq1dODAgRtu9/T0lKenZ36XAQC3pKRHMQ4FAHkk36/zcf78eR08eFAVK1bM76cCAAAuIM/Dx0svvaQNGzbo8OHD+v7779WtWzcVK1ZMPXr0yOunAgAALijPxxCPHz+uHj166MyZM/L391fz5s21ZcsW+fv75/VTAQAAF5Tn4WPhwoV5/ZAAAKAQYW0XAABgKcIHAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBSrJIEuLgLlzOdXUKhxb51Dva7NUq4F5PNZnPKcxM+ABfHMuQobPibtsbuURFOW6mZwy4AAMBSjHwALqiEezHtHhXh7DKKlBLuxZxdQqHG37Q1LlzOLBAjS4QPwAXZbDanDZcC+YG/6aKFwy4AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKUIHwAAwFKEDwAAYCnCBwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACA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PDzUtGlTxz575plnNGbMGI0ePVrbt29XyZIl1b17d3377bcsHXCTsk+n7dGjh1q3bq25c+cqIyND48eP1+TJk1WiRAktWLBAc+bM0UMPPaT27dsrISFBDRo0cHbpKOqcnX6KqosXLzq7hCItewQjNTXVGGNMcnKyGTBggAkLCzNvv/22o99LL71k3NzczMqVK825c+fML7/8YoYOHWr8/f3N7t27nVK7K/j222+Nu7u7Y0L1b//ea9WqZaZMmeKs0gqVQ4cOmdDQUDN16lRjjDHnz583FStWNCEhIaZhw4aOs7GAgoaRDyfx8vJydglFVlZWltzc3BQfH6/g4GDt379fFSpU0KuvvqqmTZtq+fLleuuttyRduxDTo48+qi5duqhJkybq1KmTPv74Y61evVp169Z18k/ifObaoVtJ1/ZrtubNm6tNmzZ64okndPLkSXl5eckYowsXLqhkyZLy9fV1VsmFym233abu3bura9euSkpKUuPGjdWtWzetWbNG7u7umjJliuNvGShIWNUWRUp28NixY4fuuecePf3005o4caJjpdqUlBSNGTNGW7ZsUZcuXfTqq69KklauXKkzZ87otttuU+PGjVW5cmUn/yQFQ/Z+W79+vT7//HP5+fkpIiJC//jHP7RlyxYNGzZM586d03vvvSdjjL788kvNnDlTW7duVbVq1ZxdfqGQlpYmX19fDRkyRMePH9d7770nX19fDRgwQJ9//rkaNGigOXPmsKIyChTCB4qM3waP8PBwDRo0SKNHj3Zs/+WXX+Tv76+UlBTFxMRo8+bNuv/++1lq/C+sXr1anTp1UufOnfXtt98qJCRETzzxhPr06aO4uDiNGjVKX331lQIDA1WsWDHNnz9fd955p7PLdjnZQS8xMVGpqany9PRUUFCQvL29JUldu3ZVqVKlNH/+fElS//79VaNGDT322GPy9/d3ZunAdQgfKFJ+/vlnNWrUSCNHjlR0dLSjffTo0Vq5cqVWrlyp0qVL69SpUxozZox+/PFHtWjRIsdEVPzP8ePH9c4776hu3brq27evjh8/rmHDhikxMVF9+vTR008/LUmKj49XmTJl5OPjwxvhTcgOHkuWLNHgwYPl6+urM2fO6J577lGfPn3Url07DRkyRNu3b1fz5s2Vnp6uefPmadu2bawvhAKJOR8oMjIzM/Xhhx/q6tWr6tSp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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "h.compute().plot1d()\n", + "plt.xticks(plt.gca().get_xticks(), labels, rotation=45)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "8ca4e1f0-f5a3-46b3-9bcb-848aa3e04a99", + "metadata": {}, + "source": [ + "And we got exactly the same thing. Saving to `.npz` files is still possible but the delayed arrays will be naturally materalized while saving." + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "d0d57fbb-633b-4140-95b6-7ac551a4c271", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "labels: ['initial' 'N - twoElectron' 'N - noMuon' 'N - leadPt20' 'N']\n", + "nev: [40 10 3 5 3]\n", + "masks: [[False True True False False False False False False True False False\n", + " False False False True True False False False True True False False\n", + " False False False True False True False False False True False False\n", + " False False False False]\n", + " [False False True False False False False False False False False False\n", + " False False False False False False False False True True False False\n", + " False False False False False False False False False False False False\n", + " False False False False]\n", + " [False False True True False False False False False False False False\n", + " False False False False False False True False True True False False\n", + " False False False False False False False False False False False False\n", + " False False False False]\n", + " [False False True False False False False False False False False False\n", + " False False False False False False False False True True False False\n", + " False False False False False False False False False False False False\n", + " False False False False]]\n" + ] + } + ], + "source": [ + "nminusone.to_npz(\"nminusone_results.npz\")\n", + "\n", + "with np.load(\"nminusone_results.npz\") as f:\n", + " for i in f.files:\n", + " print(f\"{i}: {f[i]}\")" + ] + }, + { + "cell_type": "markdown", + "id": "7dd71131-d0df-4930-b853-d126d7c0c2db", + "metadata": {}, + "source": [ + "Same logic applies to the `plot_vars` function. Remember to use `dakevents` now and not `events`." + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "621cc56b-7bf1-4be8-b24c-04c89125e6b0", + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "hs, labels = nminusone.plot_vars(\n", + " {\"Ept\": dakevents.Electron.pt, \"Ephi\": dakevents.Electron.phi}\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "8e94ed9c-dfd7-47d3-997a-4c7561f51147", + "metadata": {}, + "source": [ + "Those histograms are also delayed and have to be computed before plotting them." + ] + }, + { + "cell_type": "markdown", + "id": "0877deac-0e27-480d-b471-bafba2441328", + "metadata": {}, + "source": [ + "Exactly the same things apply to the cutflow in delayed mode." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/processor.html b/notebooks/processor.html new file mode 100644 index 000000000..59287b0de --- /dev/null +++ b/notebooks/processor.html @@ -0,0 +1,775 @@ + + + + + + + Coffea Processors — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Coffea Processors

+

This is a rendered copy of processor.ipynb. You can optionally run it interactively on binder at this link

+

Coffea relies mainly on uproot to provide access to ROOT files for analysis. As a usual analysis will involve processing tens to thousands of files, totalling gigabytes to terabytes of data, there is a certain amount of work to be done to build a parallelized framework to process the data in a reasonable amount of time. Of course, one can work directly within uproot to achieve this, as we’ll show in the beginning, but coffea provides the +coffea.processor module, which allows users to worry just about the actual analysis code and not about how to implement efficient parallelization, assuming that the parallization is a trivial map-reduce operation (e.g. filling histograms and adding them together). The module provides the following key features:

+
    +
  • A ProcessorABC abstract base class that can be derived from to implement the analysis code;

  • +
  • A NanoEvents interface to the arrays being read from the TTree as inputs;

  • +
  • A generic accumulate() utility to reduce the outputs to a single result, as showin in the accumulators notebook tutorial; and

  • +
  • A set of parallel executors to access multicore processing or distributed computing systems such as Dask, Parsl, Spark, WorkQueue, and others.

  • +
+

Let’s start by writing a simple processor class that reads some CMS open data and plots a dimuon mass spectrum. We’ll start by copying the ProcessorABC skeleton and filling in some details:

+
    +
  • Remove flag, as we won’t use it

  • +
  • Adding a new histogram for \(m_{\mu \mu}\)

  • +
  • Building a Candidate record for muons, since we will read it with BaseSchema interpretation (the files used here could be read with NanoAODSchema but we want to show how to build vector objects from other TTree formats)

  • +
  • Calculating the dimuon invariant mass

  • +
+
+
[1]:
+
+
+
import hist
+import dask
+import awkward as ak
+import hist.dask as hda
+import dask_awkward as dak
+
+from coffea import processor
+from coffea.nanoevents.methods import candidate
+from coffea.dataset_tools import (
+    apply_to_fileset,
+    max_chunks,
+    preprocess,
+)
+from distributed import Client
+
+
+client = Client()
+
+
+class MyProcessor(processor.ProcessorABC):
+    def __init__(self):
+        pass
+
+    def process(self, events):
+        dataset = events.metadata['dataset']
+        muons = ak.zip(
+            {
+                "pt": events.Muon_pt,
+                "eta": events.Muon_eta,
+                "phi": events.Muon_phi,
+                "mass": events.Muon_mass,
+                "charge": events.Muon_charge,
+            },
+            with_name="PtEtaPhiMCandidate",
+            behavior=candidate.behavior,
+        )
+
+        h_mass = (
+            hda.Hist.new
+            .StrCat(["opposite", "same"], name="sign")
+            .Log(1000, 0.2, 200., name="mass", label="$m_{\mu\mu}$ [GeV]")
+            .Int64()
+        )
+
+        cut = (ak.num(muons) == 2) & (ak.sum(muons.charge, axis=1) == 0)
+        # add first and second muon in every event together
+        dimuon = muons[cut][:, 0] + muons[cut][:, 1]
+        h_mass.fill(sign="opposite", mass=dimuon.mass)
+
+        cut = (ak.num(muons) == 2) & (ak.sum(muons.charge, axis=1) != 0)
+        dimuon = muons[cut][:, 0] + muons[cut][:, 1]
+        h_mass.fill(sign="same", mass=dimuon.mass)
+
+        return {
+            dataset: {
+                "entries": ak.num(events, axis=0),
+                "mass": h_mass,
+            }
+        }
+
+    def postprocess(self, accumulator):
+        pass
+
+
+
+

If we were to just use bare uproot to execute this processor, we could do that with the following example, which:

+
    +
  • Opens a CMS open data file

  • +
  • Creates a NanoEvents object using BaseSchema (roughly equivalent to the output of uproot.lazy)

  • +
  • Creates a MyProcessor instance

  • +
  • Runs the process() function, which returns our accumulators

  • +
+
+
[2]:
+
+
+
from coffea.nanoevents import NanoEventsFactory, BaseSchema
+
+filename = "file://Run2012B_DoubleMuParked.root"
+events = NanoEventsFactory.from_root(
+    {filename: "Events"},
+    steps_per_file=2_000,
+    metadata={"dataset": "DoubleMuon"},
+    schemaclass=BaseSchema,
+).events()
+p = MyProcessor()
+out = p.process(events)
+(computed,) = dask.compute(out)
+print(computed)
+
+
+
+
+
+
+
+
+/Users/saransh/Code/HEP/coffea/.env/lib/python3.11/site-packages/coffea/nanoevents/factory.py:299: RuntimeWarning: You have set steps_per_file to 2000, this should only be used for a
+                small number of inputs (e.g. for early-stage/exploratory analysis) since it does not
+                inform dask of each chunk lengths at creation time, which can cause unexpected
+                slowdowns at scale. If you would like to process larger datasets please specify steps
+                using the appropriate uproot "files" specification:
+                    https://github.com/scikit-hep/uproot5/blob/v5.1.2/src/uproot/_dask.py#L109-L132.
+
+  warnings.warn(
+
+
+
+
+
+
+
+{'DoubleMuon': {'entries': 26084708, 'mass': Hist(
+  StrCategory(['opposite', 'same'], name='sign'),
+  Regular(1000, 0.2, 200, transform=log, name='mass', label='$m_{\\mu\\mu}$ [GeV]'),
+  storage=Int64()) # Sum: 12819609.0 (12835141.0 with flow)}}
+
+
+
+
[3]:
+
+
+
import matplotlib.pyplot as plt
+
+fig, ax = plt.subplots()
+computed["DoubleMuon"]["mass"].plot1d(ax=ax)
+ax.set_xscale("log")
+ax.legend(title="Dimuon charge")
+
+
+
+
+
[3]:
+
+
+
+
+<matplotlib.legend.Legend at 0x29782ba10>
+
+
+
+
+
+
+../_images/notebooks_processor_4_1.png +
+
+

One could expand on this code to run over several chunks of the file, setting entry_start and entry_stop as appropriate. Then, several datasets could be processed by iterating over several files. However, the dask.compute and coffea.dataset_tools can help with this! We can preprocess multiple files and then use our custom MyProcessor class to generate the relevant dask task graph. Finally, the result can be obtained by calling dask.compute. Since these files are very +large, we limit to just reading the first few chunks of events from each dataset with maxchunks.

+
+
[4]:
+
+
+
fileset = {
+    'DoubleMuon': {
+        "files": {
+            'file://Run2012B_DoubleMuParked.root': "Events",
+            'file://Run2012C_DoubleMuParked.root': "Events",
+        }
+    },
+    'ZZ to 4mu': {
+        "files": {
+            'file://ZZTo4mu.root': "Events"
+        }
+    }
+}
+
+
+dataset_runnable, dataset_updated = preprocess(
+    fileset,
+    align_clusters=False,
+    step_size=100_000,
+    files_per_batch=1,
+    skip_bad_files=True,
+    save_form=False,
+)
+
+
+
+
+
[5]:
+
+
+
to_compute = apply_to_fileset(
+                MyProcessor(),
+                max_chunks(dataset_runnable, 300),
+                schemaclass=BaseSchema,
+            )
+(out,) = dask.compute(to_compute)
+print(out)
+
+
+
+
+
+
+
+
+{'DoubleMuon': {'DoubleMuon': {'entries': 56084708, 'mass': Hist(
+  StrCategory(['opposite', 'same'], name='sign'),
+  Regular(1000, 0.2, 200, transform=log, name='mass', label='$m_{\\mu\\mu}$ [GeV]'),
+  storage=Int64()) # Sum: 28258324.0 (28290486.0 with flow)}}, 'ZZ to 4mu': {'ZZ to 4mu': {'entries': 1499064, 'mass': Hist(
+  StrCategory(['opposite', 'same'], name='sign'),
+  Regular(1000, 0.2, 200, transform=log, name='mass', label='$m_{\\mu\\mu}$ [GeV]'),
+  storage=Int64()) # Sum: 288707.0 (289326.0 with flow)}}}
+
+
+

The run may depend on how many cores are available on the machine you are running this notebook and your connection to eospublic.cern.ch.

+
+
[6]:
+
+
+
fig, ax = plt.subplots(figsize=(10, 6))
+out["DoubleMuon"]["DoubleMuon"]["mass"].plot1d(ax=ax)
+ax.set_xscale("log")
+ax.legend(title="Dimuon charge")
+
+
+
+
+
[6]:
+
+
+
+
+<matplotlib.legend.Legend at 0x297ca0710>
+
+
+
+
+
+
+../_images/notebooks_processor_9_1.png +
+
+
+

Getting fancy

+

Let’s flesh out this analysis into a 4-muon analysis, searching for diboson events:

+
+
[7]:
+
+
+
from collections import defaultdict
+import numba
+
+
+@numba.njit
+def find_4lep_kernel(events_leptons, builder):
+    """Search for valid 4-lepton combinations from an array of events * leptons {charge, ...}
+
+    A valid candidate has two pairs of leptons that each have balanced charge
+    Outputs an array of events * candidates {indices 0..3} corresponding to all valid
+    permutations of all valid combinations of unique leptons in each event
+    (omitting permutations of the pairs)
+    """
+    for leptons in events_leptons:
+        builder.begin_list()
+        nlep = len(leptons)
+        for i0 in range(nlep):
+            for i1 in range(i0 + 1, nlep):
+                if leptons[i0].charge + leptons[i1].charge != 0:
+                    continue
+                for i2 in range(nlep):
+                    for i3 in range(i2 + 1, nlep):
+                        if len({i0, i1, i2, i3}) < 4:
+                            continue
+                        if leptons[i2].charge + leptons[i3].charge != 0:
+                            continue
+                        builder.begin_tuple(4)
+                        builder.index(0).integer(i0)
+                        builder.index(1).integer(i1)
+                        builder.index(2).integer(i2)
+                        builder.index(3).integer(i3)
+                        builder.end_tuple()
+        builder.end_list()
+
+    return builder
+
+
+def find_4lep(events_leptons):
+    if ak.backend(events_leptons) == "typetracer":
+        # here we fake the output of find_4lep_kernel since
+        # operating on length-zero data returns the wrong layout!
+        ak.typetracer.length_zero_if_typetracer(events_leptons.charge) # force touching of the necessary data
+        return ak.Array(ak.Array([[(0,0,0,0)]]).layout.to_typetracer(forget_length=True))
+    return find_4lep_kernel(events_leptons, ak.ArrayBuilder()).snapshot()
+
+
+class FancyDimuonProcessor(processor.ProcessorABC):
+    def process(self, events):
+        dataset_axis = hist.axis.StrCategory([], growth=True, name="dataset", label="Primary dataset")
+        mass_axis = hist.axis.Regular(300, 0, 300, name="mass", label=r"$m_{\mu\mu}$ [GeV]")
+        pt_axis = hist.axis.Regular(300, 0, 300, name="pt", label=r"$p_{T,\mu}$ [GeV]")
+
+        h_nMuons = hda.Hist(
+            dataset_axis,
+            hda.hist.hist.axis.IntCategory(range(6), name="nMuons", label="Number of good muons"),
+            storage="weight", label="Counts",
+        )
+        h_m4mu = hda.hist.Hist(dataset_axis, mass_axis, storage="weight", label="Counts")
+        h_mZ1 = hda.hist.Hist(dataset_axis, mass_axis, storage="weight", label="Counts")
+        h_mZ2 = hda.hist.Hist(dataset_axis, mass_axis, storage="weight", label="Counts")
+        h_ptZ1mu1 = hda.hist.Hist(dataset_axis, pt_axis, storage="weight", label="Counts")
+        h_ptZ1mu2 = hda.hist.Hist(dataset_axis, pt_axis, storage="weight", label="Counts")
+
+        cutflow = defaultdict(int)
+
+        dataset = events.metadata['dataset']
+        muons = ak.zip({
+            "pt": events.Muon_pt,
+            "eta": events.Muon_eta,
+            "phi": events.Muon_phi,
+            "mass": events.Muon_mass,
+            "charge": events.Muon_charge,
+            "isolation": events.Muon_pfRelIso03_all,
+        }, with_name="PtEtaPhiMCandidate", behavior=candidate.behavior)
+
+        # make sure they are sorted by transverse momentum
+        muons = muons[ak.argsort(muons.pt, axis=1)]
+
+        cutflow['all events'] = ak.num(muons, axis=0)
+
+        # impose some quality and minimum pt cuts on the muons
+        muons = muons[
+            (muons.pt > 5)
+            & (muons.isolation < 0.2)
+        ]
+        cutflow['at least 4 good muons'] += ak.sum(ak.num(muons) >= 4)
+        h_nMuons.fill(dataset=dataset, nMuons=ak.num(muons))
+
+        # reduce first axis: skip events without enough muons
+        muons = muons[ak.num(muons) >= 4]
+
+        # find all candidates with helper function
+        fourmuon = dak.map_partitions(find_4lep, muons)
+        fourmuon = [muons[fourmuon[idx]] for idx in "0123"]
+
+        fourmuon = ak.zip({
+            "z1": ak.zip({
+                "lep1": fourmuon[0],
+                "lep2": fourmuon[1],
+                "p4": fourmuon[0] + fourmuon[1],
+            }),
+            "z2": ak.zip({
+                "lep1": fourmuon[2],
+                "lep2": fourmuon[3],
+                "p4": fourmuon[2] + fourmuon[3],
+            }),
+        })
+
+        cutflow['at least one candidate'] += ak.sum(ak.num(fourmuon) > 0)
+
+        # require minimum dimuon mass
+        fourmuon = fourmuon[(fourmuon.z1.p4.mass > 60.) & (fourmuon.z2.p4.mass > 20.)]
+        cutflow['minimum dimuon mass'] += ak.sum(ak.num(fourmuon) > 0)
+
+        # choose permutation with z1 mass closest to nominal Z boson mass
+        bestz1 = ak.singletons(ak.argmin(abs(fourmuon.z1.p4.mass - 91.1876), axis=1))
+        fourmuon = ak.flatten(fourmuon[bestz1])
+
+        h_m4mu.fill(
+            dataset=dataset,
+            mass=(fourmuon.z1.p4 + fourmuon.z2.p4).mass,
+        )
+        h_mZ1.fill(
+            dataset=dataset,
+            mass=fourmuon.z1.p4.mass,
+        )
+        h_mZ2.fill(
+            dataset=dataset,
+            mass=fourmuon.z2.p4.mass,
+        )
+        h_ptZ1mu1.fill(
+            dataset=dataset,
+            pt=fourmuon.z1.lep1.pt,
+        )
+        h_ptZ1mu2.fill(
+            dataset=dataset,
+            pt=fourmuon.z1.lep2.pt,
+        )
+        return {
+            'nMuons': h_nMuons,
+            'mass': h_m4mu,
+            'mass_z1': h_mZ1,
+            'mass_z2': h_mZ2,
+            'pt_z1_mu1': h_ptZ1mu1,
+            'pt_z1_mu2': h_ptZ1mu2,
+            'cutflow': {dataset: cutflow},
+        }
+
+    def postprocess(self, accumulator):
+        pass
+
+
+
+
+
[8]:
+
+
+
import time
+
+tstart = time.time()
+
+to_compute = apply_to_fileset(
+                FancyDimuonProcessor(),
+                max_chunks(dataset_runnable, 300),
+                schemaclass=BaseSchema,
+            )
+(out,) = dask.compute(to_compute)
+print(out)
+
+elapsed = time.time() - tstart
+print(elapsed)
+
+
+
+
+
+
+
+
+{'DoubleMuon': {'nMuons': Hist(
+  StrCategory(['DoubleMuon'], growth=True, name='dataset', label='Primary dataset'),
+  IntCategory([0, 1, 2, 3, 4, 5], name='nMuons', label='Number of good muons'),
+  storage=Weight()) # Sum: WeightedSum(value=5.59547e+07, variance=5.59547e+07) (WeightedSum(value=5.60847e+07, variance=5.60847e+07) with flow), 'mass': Hist(
+  StrCategory(['DoubleMuon'], growth=True, name='dataset', label='Primary dataset'),
+  Regular(300, 0, 300, name='mass', label='$m_{\\mu\\mu}$ [GeV]'),
+  storage=Weight()) # Sum: WeightedSum(value=54219, variance=54219) (WeightedSum(value=60748, variance=60748) with flow), 'mass_z1': Hist(
+  StrCategory(['DoubleMuon'], growth=True, name='dataset', label='Primary dataset'),
+  Regular(300, 0, 300, name='mass', label='$m_{\\mu\\mu}$ [GeV]'),
+  storage=Weight()) # Sum: WeightedSum(value=60314, variance=60314) (WeightedSum(value=60748, variance=60748) with flow), 'mass_z2': Hist(
+  StrCategory(['DoubleMuon'], growth=True, name='dataset', label='Primary dataset'),
+  Regular(300, 0, 300, name='mass', label='$m_{\\mu\\mu}$ [GeV]'),
+  storage=Weight()) # Sum: WeightedSum(value=60079, variance=60079) (WeightedSum(value=60748, variance=60748) with flow), 'pt_z1_mu1': Hist(
+  StrCategory(['DoubleMuon'], growth=True, name='dataset', label='Primary dataset'),
+  Regular(300, 0, 300, name='pt', label='$p_{T,\\mu}$ [GeV]'),
+  storage=Weight()) # Sum: WeightedSum(value=60736, variance=60736) (WeightedSum(value=60748, variance=60748) with flow), 'pt_z1_mu2': Hist(
+  StrCategory(['DoubleMuon'], growth=True, name='dataset', label='Primary dataset'),
+  Regular(300, 0, 300, name='pt', label='$p_{T,\\mu}$ [GeV]'),
+  storage=Weight()) # Sum: WeightedSum(value=57002, variance=57002) (WeightedSum(value=60748, variance=60748) with flow), 'cutflow': {'DoubleMuon': defaultdict(<class 'int'>, {'all events': dask.awkward<numaxis0, type=Scalar, dtype=int64>, 'at least 4 good muons': dask.awkward<add, type=Scalar, dtype=int64>, 'at least one candidate': dask.awkward<add, type=Scalar, dtype=int64>, 'minimum dimuon mass': dask.awkward<add, type=Scalar, dtype=int64>})}}, 'ZZ to 4mu': {'nMuons': Hist(
+  StrCategory(['ZZ to 4mu'], growth=True, name='dataset', label='Primary dataset'),
+  IntCategory([0, 1, 2, 3, 4, 5], name='nMuons', label='Number of good muons'),
+  storage=Weight()) # Sum: WeightedSum(value=1.49776e+06, variance=1.49776e+06) (WeightedSum(value=1.49906e+06, variance=1.49906e+06) with flow), 'mass': Hist(
+  StrCategory(['ZZ to 4mu'], growth=True, name='dataset', label='Primary dataset'),
+  Regular(300, 0, 300, name='mass', label='$m_{\\mu\\mu}$ [GeV]'),
+  storage=Weight()) # Sum: WeightedSum(value=79350, variance=79350) (WeightedSum(value=98261, variance=98261) with flow), 'mass_z1': Hist(
+  StrCategory(['ZZ to 4mu'], growth=True, name='dataset', label='Primary dataset'),
+  Regular(300, 0, 300, name='mass', label='$m_{\\mu\\mu}$ [GeV]'),
+  storage=Weight()) # Sum: WeightedSum(value=98198, variance=98198) (WeightedSum(value=98261, variance=98261) with flow), 'mass_z2': Hist(
+  StrCategory(['ZZ to 4mu'], growth=True, name='dataset', label='Primary dataset'),
+  Regular(300, 0, 300, name='mass', label='$m_{\\mu\\mu}$ [GeV]'),
+  storage=Weight()) # Sum: WeightedSum(value=97699, variance=97699) (WeightedSum(value=98261, variance=98261) with flow), 'pt_z1_mu1': Hist(
+  StrCategory(['ZZ to 4mu'], growth=True, name='dataset', label='Primary dataset'),
+  Regular(300, 0, 300, name='pt', label='$p_{T,\\mu}$ [GeV]'),
+  storage=Weight()) # Sum: WeightedSum(value=98259, variance=98259) (WeightedSum(value=98261, variance=98261) with flow), 'pt_z1_mu2': Hist(
+  StrCategory(['ZZ to 4mu'], growth=True, name='dataset', label='Primary dataset'),
+  Regular(300, 0, 300, name='pt', label='$p_{T,\\mu}$ [GeV]'),
+  storage=Weight()) # Sum: WeightedSum(value=97998, variance=97998) (WeightedSum(value=98261, variance=98261) with flow), 'cutflow': {'ZZ to 4mu': defaultdict(<class 'int'>, {'all events': dask.awkward<numaxis0, type=Scalar, dtype=int64>, 'at least 4 good muons': dask.awkward<add, type=Scalar, dtype=int64>, 'at least one candidate': dask.awkward<add, type=Scalar, dtype=int64>, 'minimum dimuon mass': dask.awkward<add, type=Scalar, dtype=int64>})}}}
+109.41525983810425
+
+
+
+
[9]:
+
+
+
nevt = out['ZZ to 4mu']['cutflow']['ZZ to 4mu']['all events'] + out['DoubleMuon']['cutflow']['DoubleMuon']['all events']
+print("Events/s:", (nevt / elapsed).compute())
+
+
+
+
+
+
+
+
+Events/s: 526286.4803794603
+
+
+

What follows is just us looking at the output, you can execute it if you wish

+
+
[10]:
+
+
+
# scale ZZ simulation to expected yield
+lumi = 11.6  # 1/fb
+zzxs = 7200 * 0.0336**2  # approximate 8 TeV ZZ(4mu)
+nzz = out['ZZ to 4mu']['cutflow']['ZZ to 4mu']['all events']
+
+scaled = {}
+for (name1, h1), (nam2, h2) in zip(out['ZZ to 4mu'].items(), out['DoubleMuon'].items()):
+    if isinstance(h1, hist.Hist) and isinstance(h2, hist.Hist):
+        scaled[name1] = h1.copy() + h2.copy()
+        scaled[name1].view()[0, :] *= lumi * zzxs / nzz.compute()
+
+
+
+
+
[11]:
+
+
+
fig, ax = plt.subplots()
+scaled['nMuons'].plot1d(ax=ax, overlay='dataset')
+ax.set_yscale('log')
+ax.set_ylim(1, None)
+
+
+
+
+
[11]:
+
+
+
+
+(1, 54961323.59635242)
+
+
+
+
+
+
+../_images/notebooks_processor_16_1.png +
+
+
+
[12]:
+
+
+
fig, ax = plt.subplots()
+
+scaled['mass'][:, ::hist.rebin(4)].plot1d(ax=ax, overlay='dataset');
+
+
+
+
+
+
+
+../_images/notebooks_processor_17_0.png +
+
+
+
[13]:
+
+
+
fig, ax = plt.subplots()
+
+scaled['mass_z1'].plot1d(ax=ax, overlay='dataset');
+
+
+
+
+
+
+
+../_images/notebooks_processor_18_0.png +
+
+
+
[14]:
+
+
+
fig, ax = plt.subplots()
+
+scaled['mass_z2'].plot1d(ax=ax, overlay='dataset')
+ax.set_xlim(2, 300)
+
+
+
+
+
[14]:
+
+
+
+
+(2.0, 300.0)
+
+
+
+
+
+
+../_images/notebooks_processor_19_1.png +
+
+
+
[15]:
+
+
+
fig, ax = plt.subplots()
+
+scaled['pt_z1_mu1'].plot1d(ax=ax, overlay='dataset');
+
+
+
+
+
+
+
+../_images/notebooks_processor_20_0.png +
+
+
+
[16]:
+
+
+
fig, ax = plt.subplots()
+
+scaled['pt_z1_mu2'].plot1d(ax=ax, overlay='dataset');
+
+
+
+
+
+
+
+../_images/notebooks_processor_21_0.png +
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/notebooks/processor.ipynb b/notebooks/processor.ipynb new file mode 100644 index 000000000..27735447a --- /dev/null +++ b/notebooks/processor.ipynb @@ -0,0 +1,749 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Coffea Processors\n", + "This is a rendered copy of [processor.ipynb](https://github.com/CoffeaTeam/coffea/blob/master/binder/processor.ipynb). You can optionally run it interactively on [binder at this link](https://mybinder.org/v2/gh/coffeateam/coffea/master?filepath=binder%2Fprocessor.ipynb)\n", + "\n", + "Coffea relies mainly on [uproot](https://github.com/scikit-hep/uproot) to provide access to ROOT files for analysis.\n", + "As a usual analysis will involve processing tens to thousands of files, totalling gigabytes to terabytes of data, there is a certain amount of work to be done to build a parallelized framework to process the data in a reasonable amount of time. Of course, one can work directly within uproot to achieve this, as we'll show in the beginning, but coffea provides the `coffea.processor` module, which allows users to worry just about the actual analysis code and not about how to implement efficient parallelization, assuming that the parallization is a trivial map-reduce operation (e.g. filling histograms and adding them together). The module provides the following key features:\n", + "\n", + " * A `ProcessorABC` abstract base class that can be derived from to implement the analysis code;\n", + " * A [NanoEvents](https://coffeateam.github.io/coffea/notebooks/nanoevents.html) interface to the arrays being read from the TTree as inputs;\n", + " * A generic `accumulate()` utility to reduce the outputs to a single result, as showin in the accumulators notebook tutorial; and\n", + " * A set of parallel executors to access multicore processing or distributed computing systems such as [Dask](https://distributed.dask.org/en/latest/), [Parsl](http://parsl-project.org/), [Spark](https://spark.apache.org/), [WorkQueue](https://cctools.readthedocs.io/en/latest/work_queue/), and others.\n", + "\n", + "Let's start by writing a simple processor class that reads some CMS open data and plots a dimuon mass spectrum.\n", + "We'll start by copying the [ProcessorABC](https://coffeateam.github.io/coffea/api/coffea.processor.ProcessorABC.html#coffea.processor.ProcessorABC) skeleton and filling in some details:\n", + "\n", + " * Remove `flag`, as we won't use it\n", + " * Adding a new histogram for $m_{\\mu \\mu}$\n", + " * Building a [Candidate](https://coffeateam.github.io/coffea/api/coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate.html#coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate) record for muons, since we will read it with `BaseSchema` interpretation (the files used here could be read with `NanoAODSchema` but we want to show how to build vector objects from other TTree formats) \n", + " * Calculating the dimuon invariant mass" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import hist\n", + "import dask\n", + "import awkward as ak\n", + "import hist.dask as hda\n", + "import dask_awkward as dak\n", + "\n", + "from coffea import processor\n", + "from coffea.nanoevents.methods import candidate\n", + "from coffea.dataset_tools import (\n", + " apply_to_fileset,\n", + " max_chunks,\n", + " preprocess,\n", + ")\n", + "from distributed import Client\n", + "\n", + "\n", + "client = Client()\n", + "\n", + "\n", + "class MyProcessor(processor.ProcessorABC):\n", + " def __init__(self):\n", + " pass\n", + "\n", + " def process(self, events):\n", + " dataset = events.metadata['dataset']\n", + " muons = ak.zip(\n", + " {\n", + " \"pt\": events.Muon_pt,\n", + " \"eta\": events.Muon_eta,\n", + " \"phi\": events.Muon_phi,\n", + " \"mass\": events.Muon_mass,\n", + " \"charge\": events.Muon_charge,\n", + " },\n", + " with_name=\"PtEtaPhiMCandidate\",\n", + " behavior=candidate.behavior,\n", + " )\n", + "\n", + " h_mass = (\n", + " hda.Hist.new\n", + " .StrCat([\"opposite\", \"same\"], name=\"sign\")\n", + " .Log(1000, 0.2, 200., name=\"mass\", label=\"$m_{\\mu\\mu}$ [GeV]\")\n", + " .Int64()\n", + " )\n", + "\n", + " cut = (ak.num(muons) == 2) & (ak.sum(muons.charge, axis=1) == 0)\n", + " # add first and second muon in every event together\n", + " dimuon = muons[cut][:, 0] + muons[cut][:, 1]\n", + " h_mass.fill(sign=\"opposite\", mass=dimuon.mass)\n", + "\n", + " cut = (ak.num(muons) == 2) & (ak.sum(muons.charge, axis=1) != 0)\n", + " dimuon = muons[cut][:, 0] + muons[cut][:, 1]\n", + " h_mass.fill(sign=\"same\", mass=dimuon.mass)\n", + "\n", + " return {\n", + " dataset: {\n", + " \"entries\": ak.num(events, axis=0),\n", + " \"mass\": h_mass,\n", + " }\n", + " }\n", + "\n", + " def postprocess(self, accumulator):\n", + " pass" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we were to just use bare uproot to execute this processor, we could do that with the following example, which:\n", + "\n", + " * Opens a CMS open data file\n", + " * Creates a NanoEvents object using `BaseSchema` (roughly equivalent to the output of `uproot.lazy`)\n", + " * Creates a `MyProcessor` instance\n", + " * Runs the `process()` function, which returns our accumulators\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/saransh/Code/HEP/coffea/.env/lib/python3.11/site-packages/coffea/nanoevents/factory.py:299: RuntimeWarning: You have set steps_per_file to 2000, this should only be used for a\n", + " small number of inputs (e.g. for early-stage/exploratory analysis) since it does not\n", + " inform dask of each chunk lengths at creation time, which can cause unexpected\n", + " slowdowns at scale. If you would like to process larger datasets please specify steps\n", + " using the appropriate uproot \"files\" specification:\n", + " https://github.com/scikit-hep/uproot5/blob/v5.1.2/src/uproot/_dask.py#L109-L132.\n", + " \n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'DoubleMuon': {'entries': 26084708, 'mass': Hist(\n", + " StrCategory(['opposite', 'same'], name='sign'),\n", + " Regular(1000, 0.2, 200, transform=log, name='mass', label='$m_{\\\\mu\\\\mu}$ [GeV]'),\n", + " storage=Int64()) # Sum: 12819609.0 (12835141.0 with flow)}}\n" + ] + } + ], + "source": [ + "from coffea.nanoevents import NanoEventsFactory, BaseSchema\n", + "\n", + "filename = \"file://Run2012B_DoubleMuParked.root\"\n", + "events = NanoEventsFactory.from_root(\n", + " {filename: \"Events\"},\n", + " steps_per_file=2_000,\n", + " metadata={\"dataset\": \"DoubleMuon\"},\n", + " schemaclass=BaseSchema,\n", + ").events()\n", + "p = MyProcessor()\n", + "out = p.process(events)\n", + "(computed,) = dask.compute(out)\n", + "print(computed)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "fig, ax = plt.subplots()\n", + "computed[\"DoubleMuon\"][\"mass\"].plot1d(ax=ax)\n", + "ax.set_xscale(\"log\")\n", + "ax.legend(title=\"Dimuon charge\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One could expand on this code to run over several chunks of the file, setting `entry_start` and `entry_stop` as appropriate. Then, several datasets could be processed by iterating over several files. However, the `dask.compute` and `coffea.dataset_tools` can help with this! We can `preprocess` multiple files and then use our custom `MyProcessor` class to generate the relevant dask task graph. Finally, the result can be obtained by calling `dask.compute`. Since these files are very large, we limit to just reading the first few chunks of events from each dataset with `maxchunks`." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "fileset = {\n", + " 'DoubleMuon': {\n", + " \"files\": {\n", + " 'file://Run2012B_DoubleMuParked.root': \"Events\",\n", + " 'file://Run2012C_DoubleMuParked.root': \"Events\",\n", + " }\n", + " },\n", + " 'ZZ to 4mu': {\n", + " \"files\": {\n", + " 'file://ZZTo4mu.root': \"Events\"\n", + " }\n", + " }\n", + "}\n", + "\n", + "\n", + "dataset_runnable, dataset_updated = preprocess(\n", + " fileset,\n", + " align_clusters=False,\n", + " step_size=100_000,\n", + " files_per_batch=1,\n", + " skip_bad_files=True,\n", + " save_form=False,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'DoubleMuon': {'DoubleMuon': {'entries': 56084708, 'mass': Hist(\n", + " StrCategory(['opposite', 'same'], name='sign'),\n", + " Regular(1000, 0.2, 200, transform=log, name='mass', label='$m_{\\\\mu\\\\mu}$ [GeV]'),\n", + " storage=Int64()) # Sum: 28258324.0 (28290486.0 with flow)}}, 'ZZ to 4mu': {'ZZ to 4mu': {'entries': 1499064, 'mass': Hist(\n", + " StrCategory(['opposite', 'same'], name='sign'),\n", + " Regular(1000, 0.2, 200, transform=log, name='mass', label='$m_{\\\\mu\\\\mu}$ [GeV]'),\n", + " storage=Int64()) # Sum: 288707.0 (289326.0 with flow)}}}\n" + ] + } + ], + "source": [ + "to_compute = apply_to_fileset(\n", + " MyProcessor(),\n", + " max_chunks(dataset_runnable, 300),\n", + " schemaclass=BaseSchema,\n", + " )\n", + "(out,) = dask.compute(to_compute)\n", + "print(out)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The run may depend on how many cores are available on the machine you are running this notebook and your connection to `eospublic.cern.ch`." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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dN1112ny5MkqLS1Venq6Zs6cqUcffVTffvutfvrpJ+d6s6e7nAUnczgcKi0tdVmvt9px4JQyMzMdkhyZmZnuLgUAAADVTH5+vmPz5s2O/Pz8k/YNHjzY0a9fv5O2z5071yHJ8dFHHzm3SXL88MMPDofD4di9e7dDkmPq1KmOSy+91OHj4+Po0qWLIykpybFixQpHbGysw9/f33Hdddc59u/f7zzGFVdc4Xj00Uddnqtfv36OwYMHO+8fPnzYcffddztCQkIcvr6+juuuu86xbds25/7Jkyc7goODHTNnznS0atXK4e/v70hISHDs27fvtN+HjRs3Ovr06eMIDAx0BAQEOC699FLHjh07XL4Pb7zxhiMyMtJRt25dx0MPPeQoKipyPv6zzz5zxMbGOgICAhwRERGOO+64w5Genu7cP3/+fIckxy+//OLo3Lmzw9PT0zF//nxHVlaW484773T4+fk5IiMjHW+//fZJ34eCggLHE0884YiKinL4+fk5unXr5pg/f/4pv5bT/Uwrkw3OfTljAAAAABVy1VVXqUOHDvr+++9P2+7555/XqFGjtHr1anl4eOjOO+/U008/rXHjxun333/Xjh07NHr06Eo995AhQ7Rq1Sr99NNPWrp0qRwOh66//nrnLImSlJeXpzfffFOff/65Fi1apOTkZD355JOnPObevXt1+eWXy9vbW/PmzVNiYqLuvfdelZSUONvMnz9fO3fu1Pz58/Xpp59qypQpmjJlinN/cXGxxowZo3Xr1mnatGnas2ePhgwZctJzPfvss3rttde0ZcsWtW/fXiNGjNDixYv1008/afbs2fr999+1evVql8cMHz5cS5cu1VdffaX169frlltu0XXXXaft27dX6ntXWdX4HBsAAABQ+7Rq1Urr168/bZsnn3zSebnMo48+qjvuuENz585Vjx49JElDhw51CSpnsn37dv30009avHixLrnkEknSF198oejoaE2bNk233HKLJCPwTJw4URdddJEkI6Qcf2nPiT744AMFBwfrq6++ck553qJFC5c2derU0fjx42Wz2dSqVSv16dNHc+fO1f333y9Juvfee51tmzZtqvfee09du3ZVTk6OAgICnPteeuklXXPNNZKk7Oxsffrpp/ryyy919dVXS5ImT56sqKgoZ/vk5GRNnjxZycnJzu1PPvmkZs6cqcmTJ+vV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VWSgJMnTw+LmSlDdEbIAACexWVw7EBv2ZrqpEgCoPm7vGu3uElBDELIAAAAAwESELAAAAAAwESELAAAAAExEyAIAAAAAExGyAAAAAMBEhCwAAAAAMBEhCwAAAABMRMgCAAAAABMRsgAAAADARIQsAAAAADARIQsAAAAATETIAgAAAAATEbIAAAAAwESELAAAAAAwESELAAAAAExEyAIAAAAAExGyAAAAAMBEhCwAAAAAMBEhCwAAAABMRMgCAAAAABMRsgAAAADARIQsAAAAADARIQsAAAAATETIAgAAAAATEbIAAAAAwESELAAAAAAwESELAAAAAExEyAIAAAAAExGyAAAAAMBEhCwAAAAAMBEhCwAAAABMRMgCAAAAABMRsgAAAADARIQsAAAAADARIQsAAAAATETIAgAAAAATEbIAAACAU1iTkuHuElADEbIAAACAU/ho0S53l4AaiJAFAAAAnILFcuxzm42uMyqG3xQAAADgDMb0a6sgHw93l4EagpAFAAAAACYiZAEAAACAiQhZAAAAAGAiQhYAAAAAmIiQBQAAAAAmImQBAAAAgIkIWQAAAABgIkIWAAAAAJiIkAUAAAAAJiJkAQAAAICJCFkAAAAAYCJCFgAAAACYiJAFAAAAACYiZAEAAACAiQhZAAAAAGAiQhYAAAAAmIiQBQAAAAAmImQBAAAAgIkIWQAAAABgokqFrAkTJqh9+/YKCgpSUFCQ4uPj9euvvzr3FxQUaNiwYQoNDVVAQIAGDhyo9PR0l2MkJyerT58+8vPzU3h4uJ566imVlJS4tFmwYIE6d+4sb29vNWvWTFOmTDmplg8++ECNGzeWj4+P4uLitGLFCpf9FakFAAAAAMxWqZDVsGFDvfbaa0pMTNSqVat01VVXqV+/ftq0aZMk6fHHH9fPP/+sb775RgsXLtS+ffs0YMAA5+NLS0vVp08fFRUVacmSJfr00081ZcoUjR492tlm9+7d6tOnj3r27Km1a9fqscce03333afffvvN2Wbq1KkaMWKEnn/+ea1evVodOnRQQkKC9u/f72xzploAAAAAoCpYHA6H41wOULduXb3xxhu6+eabFRYWpi+//FI333yzJGnr1q1q3bq1li5dqu7du+vXX39V3759tW/fPkVEREiSJk6cqGeeeUYHDhyQl5eXnnnmGc2YMUMbN250Psftt9+u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cAqNQv1OuS+vqFTFpfbzWA1qCkIWAAAAUI5ujevqypbhp9yf+OcRfZf413msCDUFIQsAAAAATETIAgAAACqhb/v6urRZPXeXgWqMkAUAAABUgofNKh9Pm7vLQDVGyAIAAAAAExGyAAAAAMBEhCwAAAAAMBEhCwAAAABMRMgCAAAAABMRsgAAAADARIQsAAAAADARIQsAAAAATETIAgA45RSWaNS0je4uAwCAGq3SIWvRokW64YYbFBUVJYvFomnTprnsdzgcGj16tOrXry9fX1/16tVL27dvd2lz+PBh3XXXXQoKClJISIiGDh2qnJwclzbr16/XZZddJh8fH0VHR+v1118/qZZvvvlGrVq1ko+Pj9q1a6dffvml0rUAAI4pKbU7Pz/uUwAAUAmVDlm5ubnq0KGDPvjgg3L3v/7663rvvfc0ceJELV++XP7+/kpISFBBQYGzzV133aVNmzZp9uzZmj59uhYtWqS///3vzv1ZWVm69tpr1ahRIyUmJuqNN97QCy+8oH//+9/ONkuWLNEdd9yhoUOHas2aNerfv7/69++vjRs3VqoWAED5bu8a7e4SAACokTwq+4DevXurd+/e5e5zOBx69913NWrUKPXr10+S9NlnnykiIkLTpk3T7bffri1btmjmzJlauXKlunTpIkl6//33df311+vNN99UVFSUvvjiCxUVFemTTz6Rl5eX2rZtq7Vr1+rtt992hrFx48bpuuuu01NPPSVJGjNmjGbPnq3x48dr4sSJFaoFAHBqV7YMU0Z+sbvLAACgxjH1mqzdu3crLS1NvXr1cm4LDg5WXFycli5dKklaunSpQkJCnAFLknr16iWr1arly5c721x++eXy8vJytklISFBSUpKOHDnibHP885S1KXueitRyosLCQmVlZbncAAAAAKAyTA1ZaWlpkqSIiAiX7REREc59aWlpCg8Pd9nv4eGhunXrurQp7xjHP8ep2hy//0y1nGjs2LEKDg523qKjGSoDAAAAoHKYXfA4I0eOVGZmpvOWkpLi7pIAAABwnq1JyXB3CajhTA1ZkZGRkqT09HSX7enp6c59kZGR2r9/v8v+kpISHT582KVNecc4/jlO1eb4/Weq5UTe3t4KCgpyuQEAAODC8u9FuyRJJXamWcXZMTVkNWnSRJGRkZo7d65zW1ZWlpYvX674+HhJUnx8vDIyMpSY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njD1F6yqjgucjre3t55//vmThuUCqBq85oDz60J/zZnVv6wN/dRafyarphs0aJB+++030xdeq6rjAgAA4MJkVv+yNvRTa/2ZrJps9erV+vzzzzVhwgRTf8Gq6rgAAAC4MJnVv6wt/VTOZFVTDodDV111ldLT07V+/XrTFl6rquMCAADgwmRW/7I29VNrbuW13IwZM7RgwQJNnz7d1F+wqjouAAAALkxm9S9rUz+VM1nVUElJidq1a6eoqCjNmTPH1IWHq+K4AAAAuDCZ1b+sbf3UWr1OVk310UcfKSkpSW+++aapv2BVdVzADNOnT1fLli3VvHlzffzxx+4uB7gg3HTTTapTp45uvvlmd5cC1HopKSm68sor1aZNG7Vv317ffPONu0syhVn9y9rWT+VMVjWTlZWlZs2a6frrr9eUKVOq/XEBM5SUlKhNmzaaP3++goODFRsbqyVLlig0NNTdpQG12oIFC5Sdna1PP/1U3377rbvLAWq11NRUpaenq2PHjkpLS1NsbKy2bdsmf39/d5d21szqX9bGfipnsqqZf/3rX8rOztbLL79cI44LmGHFihVq27atGjRooICAAPXu3VuzZs1yd1lArXfllVfW6Nm7gJqkfv366tixoyQpMjJS9erV0+HDh91b1Dkyq39ZG/uphKxqhIWHUVMtWrRIN9xwg6KiomSxWDRt2rST2nzwwQdq3LixfHx8FBcXpxUrVjj37du3Tw0aNHDeb9Cggfbu3Xs+SgdqrHN93QGoHDNfc4mJiSotLVV0dHQVV111WHj49AhZ1chzzz2noKAgPfPMMzXiuECZ3NxcdejQQR988EG5+6dOnaoRI0bo+eef1+rVq9WhQwclJCRo//7957lSoPbgdQecX2a95g4fPqxBgwbp3//+9/kou8qY1b+srf3Umj03Yi3icDjUokUL9ezZ09ShG1V1XOB4vXv3Vu/evU+5/+2339b999+ve+65R5I0ceJEzZgxQ5988omeffZZRUVFuZy52rt3r7p161bldQM12bm+7gBUjhmvucLCQvXv31/PPvusLrnkkvNSd1Uwq39Zm/uphKxqwmKxaNSoUTXmuEBFFRUVKTExUSNHjnRus1qt6tWrl5YuXSpJ6tatmzZu3Ki9e/cqODhYv/76q/75z3+6q2SgxqvI6w6AeSrymnM4HBoyZIiuuuoq3X333e4q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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(figsize=(10, 6))\n", + "out[\"DoubleMuon\"][\"DoubleMuon\"][\"mass\"].plot1d(ax=ax)\n", + "ax.set_xscale(\"log\")\n", + "ax.legend(title=\"Dimuon charge\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Getting fancy\n", + "Let's flesh out this analysis into a 4-muon analysis, searching for diboson events:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "from collections import defaultdict\n", + "import numba\n", + "\n", + "\n", + "@numba.njit\n", + "def find_4lep_kernel(events_leptons, builder):\n", + " \"\"\"Search for valid 4-lepton combinations from an array of events * leptons {charge, ...}\n", + " \n", + " A valid candidate has two pairs of leptons that each have balanced charge\n", + " Outputs an array of events * candidates {indices 0..3} corresponding to all valid\n", + " permutations of all valid combinations of unique leptons in each event\n", + " (omitting permutations of the pairs)\n", + " \"\"\"\n", + " for leptons in events_leptons:\n", + " builder.begin_list()\n", + " nlep = len(leptons)\n", + " for i0 in range(nlep):\n", + " for i1 in range(i0 + 1, nlep):\n", + " if leptons[i0].charge + leptons[i1].charge != 0:\n", + " continue\n", + " for i2 in range(nlep):\n", + " for i3 in range(i2 + 1, nlep):\n", + " if len({i0, i1, i2, i3}) < 4:\n", + " continue\n", + " if leptons[i2].charge + leptons[i3].charge != 0:\n", + " continue\n", + " builder.begin_tuple(4)\n", + " builder.index(0).integer(i0)\n", + " builder.index(1).integer(i1)\n", + " builder.index(2).integer(i2)\n", + " builder.index(3).integer(i3)\n", + " builder.end_tuple()\n", + " builder.end_list()\n", + "\n", + " return builder\n", + "\n", + "\n", + "def find_4lep(events_leptons):\n", + " if ak.backend(events_leptons) == \"typetracer\":\n", + " # here we fake the output of find_4lep_kernel since\n", + " # operating on length-zero data returns the wrong layout!\n", + " ak.typetracer.length_zero_if_typetracer(events_leptons.charge) # force touching of the necessary data\n", + " return ak.Array(ak.Array([[(0,0,0,0)]]).layout.to_typetracer(forget_length=True))\n", + " return find_4lep_kernel(events_leptons, ak.ArrayBuilder()).snapshot()\n", + "\n", + "\n", + "class FancyDimuonProcessor(processor.ProcessorABC):\n", + " def process(self, events):\n", + " dataset_axis = hist.axis.StrCategory([], growth=True, name=\"dataset\", label=\"Primary dataset\")\n", + " mass_axis = hist.axis.Regular(300, 0, 300, name=\"mass\", label=r\"$m_{\\mu\\mu}$ [GeV]\")\n", + " pt_axis = hist.axis.Regular(300, 0, 300, name=\"pt\", label=r\"$p_{T,\\mu}$ [GeV]\")\n", + " \n", + " h_nMuons = hda.Hist(\n", + " dataset_axis,\n", + " hda.hist.hist.axis.IntCategory(range(6), name=\"nMuons\", label=\"Number of good muons\"),\n", + " storage=\"weight\", label=\"Counts\",\n", + " )\n", + " h_m4mu = hda.hist.Hist(dataset_axis, mass_axis, storage=\"weight\", label=\"Counts\")\n", + " h_mZ1 = hda.hist.Hist(dataset_axis, mass_axis, storage=\"weight\", label=\"Counts\")\n", + " h_mZ2 = hda.hist.Hist(dataset_axis, mass_axis, storage=\"weight\", label=\"Counts\")\n", + " h_ptZ1mu1 = hda.hist.Hist(dataset_axis, pt_axis, storage=\"weight\", label=\"Counts\")\n", + " h_ptZ1mu2 = hda.hist.Hist(dataset_axis, pt_axis, storage=\"weight\", label=\"Counts\")\n", + " \n", + " cutflow = defaultdict(int)\n", + " \n", + " dataset = events.metadata['dataset']\n", + " muons = ak.zip({\n", + " \"pt\": events.Muon_pt,\n", + " \"eta\": events.Muon_eta,\n", + " \"phi\": events.Muon_phi,\n", + " \"mass\": events.Muon_mass,\n", + " \"charge\": events.Muon_charge,\n", + " \"isolation\": events.Muon_pfRelIso03_all,\n", + " }, with_name=\"PtEtaPhiMCandidate\", behavior=candidate.behavior)\n", + " \n", + " # make sure they are sorted by transverse momentum\n", + " muons = muons[ak.argsort(muons.pt, axis=1)]\n", + " \n", + " cutflow['all events'] = ak.num(muons, axis=0)\n", + " \n", + " # impose some quality and minimum pt cuts on the muons\n", + " muons = muons[\n", + " (muons.pt > 5)\n", + " & (muons.isolation < 0.2)\n", + " ]\n", + " cutflow['at least 4 good muons'] += ak.sum(ak.num(muons) >= 4)\n", + " h_nMuons.fill(dataset=dataset, nMuons=ak.num(muons))\n", + " \n", + " # reduce first axis: skip events without enough muons\n", + " muons = muons[ak.num(muons) >= 4]\n", + " \n", + " # find all candidates with helper function\n", + " fourmuon = dak.map_partitions(find_4lep, muons)\n", + " fourmuon = [muons[fourmuon[idx]] for idx in \"0123\"]\n", + "\n", + " fourmuon = ak.zip({\n", + " \"z1\": ak.zip({\n", + " \"lep1\": fourmuon[0],\n", + " \"lep2\": fourmuon[1],\n", + " \"p4\": fourmuon[0] + fourmuon[1],\n", + " }),\n", + " \"z2\": ak.zip({\n", + " \"lep1\": fourmuon[2],\n", + " \"lep2\": fourmuon[3],\n", + " \"p4\": fourmuon[2] + fourmuon[3],\n", + " }),\n", + " })\n", + "\n", + " cutflow['at least one candidate'] += ak.sum(ak.num(fourmuon) > 0)\n", + "\n", + " # require minimum dimuon mass\n", + " fourmuon = fourmuon[(fourmuon.z1.p4.mass > 60.) & (fourmuon.z2.p4.mass > 20.)]\n", + " cutflow['minimum dimuon mass'] += ak.sum(ak.num(fourmuon) > 0)\n", + "\n", + " # choose permutation with z1 mass closest to nominal Z boson mass\n", + " bestz1 = ak.singletons(ak.argmin(abs(fourmuon.z1.p4.mass - 91.1876), axis=1))\n", + " fourmuon = ak.flatten(fourmuon[bestz1])\n", + "\n", + " h_m4mu.fill(\n", + " dataset=dataset,\n", + " mass=(fourmuon.z1.p4 + fourmuon.z2.p4).mass,\n", + " )\n", + " h_mZ1.fill(\n", + " dataset=dataset, \n", + " mass=fourmuon.z1.p4.mass,\n", + " )\n", + " h_mZ2.fill(\n", + " dataset=dataset, \n", + " mass=fourmuon.z2.p4.mass,\n", + " )\n", + " h_ptZ1mu1.fill(\n", + " dataset=dataset,\n", + " pt=fourmuon.z1.lep1.pt,\n", + " )\n", + " h_ptZ1mu2.fill(\n", + " dataset=dataset,\n", + " pt=fourmuon.z1.lep2.pt,\n", + " )\n", + " return {\n", + " 'nMuons': h_nMuons,\n", + " 'mass': h_m4mu,\n", + " 'mass_z1': h_mZ1,\n", + " 'mass_z2': h_mZ2,\n", + " 'pt_z1_mu1': h_ptZ1mu1,\n", + " 'pt_z1_mu2': h_ptZ1mu2,\n", + " 'cutflow': {dataset: cutflow},\n", + " }\n", + "\n", + " def postprocess(self, accumulator):\n", + " pass" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'DoubleMuon': {'nMuons': Hist(\n", + " StrCategory(['DoubleMuon'], growth=True, name='dataset', label='Primary dataset'),\n", + " IntCategory([0, 1, 2, 3, 4, 5], name='nMuons', label='Number of good muons'),\n", + " storage=Weight()) # Sum: WeightedSum(value=5.59547e+07, variance=5.59547e+07) (WeightedSum(value=5.60847e+07, variance=5.60847e+07) with flow), 'mass': Hist(\n", + " StrCategory(['DoubleMuon'], growth=True, name='dataset', label='Primary dataset'),\n", + " Regular(300, 0, 300, name='mass', label='$m_{\\\\mu\\\\mu}$ [GeV]'),\n", + " storage=Weight()) # Sum: WeightedSum(value=54219, variance=54219) (WeightedSum(value=60748, variance=60748) with flow), 'mass_z1': Hist(\n", + " StrCategory(['DoubleMuon'], growth=True, name='dataset', label='Primary dataset'),\n", + " Regular(300, 0, 300, name='mass', label='$m_{\\\\mu\\\\mu}$ [GeV]'),\n", + " storage=Weight()) # Sum: WeightedSum(value=60314, variance=60314) (WeightedSum(value=60748, variance=60748) with flow), 'mass_z2': Hist(\n", + " StrCategory(['DoubleMuon'], growth=True, name='dataset', label='Primary dataset'),\n", + " Regular(300, 0, 300, name='mass', label='$m_{\\\\mu\\\\mu}$ [GeV]'),\n", + " storage=Weight()) # Sum: WeightedSum(value=60079, variance=60079) (WeightedSum(value=60748, variance=60748) with flow), 'pt_z1_mu1': Hist(\n", + " StrCategory(['DoubleMuon'], growth=True, name='dataset', label='Primary dataset'),\n", + " Regular(300, 0, 300, name='pt', label='$p_{T,\\\\mu}$ [GeV]'),\n", + " storage=Weight()) # Sum: WeightedSum(value=60736, variance=60736) (WeightedSum(value=60748, variance=60748) with flow), 'pt_z1_mu2': Hist(\n", + " StrCategory(['DoubleMuon'], growth=True, name='dataset', label='Primary dataset'),\n", + " Regular(300, 0, 300, name='pt', label='$p_{T,\\\\mu}$ [GeV]'),\n", + " storage=Weight()) # Sum: WeightedSum(value=57002, variance=57002) (WeightedSum(value=60748, variance=60748) with flow), 'cutflow': {'DoubleMuon': defaultdict(, {'all events': dask.awkward, 'at least 4 good muons': dask.awkward, 'at least one candidate': dask.awkward, 'minimum dimuon mass': dask.awkward})}}, 'ZZ to 4mu': {'nMuons': Hist(\n", + " StrCategory(['ZZ to 4mu'], growth=True, name='dataset', label='Primary dataset'),\n", + " IntCategory([0, 1, 2, 3, 4, 5], name='nMuons', label='Number of good muons'),\n", + " storage=Weight()) # Sum: WeightedSum(value=1.49776e+06, variance=1.49776e+06) (WeightedSum(value=1.49906e+06, variance=1.49906e+06) with flow), 'mass': Hist(\n", + " StrCategory(['ZZ to 4mu'], growth=True, name='dataset', label='Primary dataset'),\n", + " Regular(300, 0, 300, name='mass', label='$m_{\\\\mu\\\\mu}$ [GeV]'),\n", + " storage=Weight()) # Sum: WeightedSum(value=79350, variance=79350) (WeightedSum(value=98261, variance=98261) with flow), 'mass_z1': Hist(\n", + " StrCategory(['ZZ to 4mu'], growth=True, name='dataset', label='Primary dataset'),\n", + " Regular(300, 0, 300, name='mass', label='$m_{\\\\mu\\\\mu}$ [GeV]'),\n", + " storage=Weight()) # Sum: WeightedSum(value=98198, variance=98198) (WeightedSum(value=98261, variance=98261) with flow), 'mass_z2': Hist(\n", + " StrCategory(['ZZ to 4mu'], growth=True, name='dataset', label='Primary dataset'),\n", + " Regular(300, 0, 300, name='mass', label='$m_{\\\\mu\\\\mu}$ [GeV]'),\n", + " storage=Weight()) # Sum: WeightedSum(value=97699, variance=97699) (WeightedSum(value=98261, variance=98261) with flow), 'pt_z1_mu1': Hist(\n", + " StrCategory(['ZZ to 4mu'], growth=True, name='dataset', label='Primary dataset'),\n", + " Regular(300, 0, 300, name='pt', label='$p_{T,\\\\mu}$ [GeV]'),\n", + " storage=Weight()) # Sum: WeightedSum(value=98259, variance=98259) (WeightedSum(value=98261, variance=98261) with flow), 'pt_z1_mu2': Hist(\n", + " StrCategory(['ZZ to 4mu'], growth=True, name='dataset', label='Primary dataset'),\n", + " Regular(300, 0, 300, name='pt', label='$p_{T,\\\\mu}$ [GeV]'),\n", + " storage=Weight()) # Sum: WeightedSum(value=97998, variance=97998) (WeightedSum(value=98261, variance=98261) with flow), 'cutflow': {'ZZ to 4mu': defaultdict(, {'all events': dask.awkward, 'at least 4 good muons': dask.awkward, 'at least one candidate': dask.awkward, 'minimum dimuon mass': dask.awkward})}}}\n", + "109.41525983810425\n" + ] + } + ], + "source": [ + "import time\n", + "\n", + "tstart = time.time()\n", + "\n", + "to_compute = apply_to_fileset(\n", + " FancyDimuonProcessor(),\n", + " max_chunks(dataset_runnable, 300),\n", + " schemaclass=BaseSchema,\n", + " )\n", + "(out,) = dask.compute(to_compute)\n", + "print(out)\n", + "\n", + "elapsed = time.time() - tstart\n", + "print(elapsed)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Events/s: 526286.4803794603\n" + ] + } + ], + "source": [ + "nevt = out['ZZ to 4mu']['cutflow']['ZZ to 4mu']['all events'] + out['DoubleMuon']['cutflow']['DoubleMuon']['all events']\n", + "print(\"Events/s:\", (nevt / elapsed).compute())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What follows is just us looking at the output, you can execute it if you wish" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# scale ZZ simulation to expected yield\n", + "lumi = 11.6 # 1/fb\n", + "zzxs = 7200 * 0.0336**2 # approximate 8 TeV ZZ(4mu)\n", + "nzz = out['ZZ to 4mu']['cutflow']['ZZ to 4mu']['all events']\n", + "\n", + "scaled = {}\n", + "for (name1, h1), (nam2, h2) in zip(out['ZZ to 4mu'].items(), out['DoubleMuon'].items()):\n", + " if isinstance(h1, hist.Hist) and isinstance(h2, hist.Hist):\n", + " scaled[name1] = h1.copy() + h2.copy()\n", + " scaled[name1].view()[0, :] *= lumi * zzxs / nzz.compute()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1, 54961323.59635242)" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "scaled['nMuons'].plot1d(ax=ax, overlay='dataset')\n", + "ax.set_yscale('log')\n", + "ax.set_ylim(1, None)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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Tz5p7Nu3zzCM0GsfemB8VF1drW3btik9Pd15rk2bNkpPT1dBQUEQaxZc3333nZKTk9WnTx9NmTJFpaWlkqRt27appqbGrb0GDBig8847L2Lba+/evbLb7W5tYrPZlJqa6myTgoICxcXFacSIEc4y6enpatOmjbZu3drqdQ6WvLw8xcfHq3///po1a5YOHTrkvBZpbVReXi5J6tKliyTffrcKCgo0ZMgQt8SfGRkZcjgc2r17dyvWvnWc2kYNVq9erW7dumnw4MHKyspSZWWl81oktdHJkyf15ptvqra2VhMmTPD5O5SSkqIHHnjAmbQu1NondKYTh7h//etfOnny5GmZgBMSEvTtt98GqVbBlZqaqpUrV6p///46cOCAHn30UV122WXatWuX7Ha7rFbraRtqJiQkyG63B6fCQdbw3J6+Qw3X7Ha74uPj3a63a9dOXbp0iZh2GzdunG688Ub17t1be/bs0UMPPaTx48eroKBAbdu2jag2qqur03333adRo0Zp8ODBkuTT75bdbvf4PWu4Fk48tZEk3XrrrerVq5eSk5NVVFSkBQsWqLi4WH//+98lRUYb7dy5U2lpaTpx4oQ6deqkt956S4MGDVJhYWFYfIcIYNBi48ePdx6npKQoNTVVvXr10uuvv64OHToEsWYws8mTJzuPhwwZopSUFPXt21d5eXkaM2ZMEGvW+jIzM7Vr1y63uWVw562NXOdEDRkyRElJSRozZoz27Nmjvn37tnY1g6J///4qLCxUeXm53nzzTU2bNk35+fnBrpbfMITko27duqlt27anzdIuKytTYmJikGoVWuLi4nT++eerpKREiYmJqq6u1pEjR9zKRHJ7NTz3mb5DiYmJp00Kr62t1eHDhyO23fr06aNu3bqppKREUuS00ezZs7Vu3Tp99NFHbvvO+PK7lZiY6PF71nAtXHhrI09SU1Mlye17FO5tZLVa1a9fPw0fPlw5OTkaOnSonnvuubD5DhHA+MhqtWr48OHauHGj81xdXZ02btyotLS0INYsdBw7dkx79uxRUlKShg8frqioKLf2Ki4uVmlpacS2V+/evZWYmOjWJg6HQ1u3bnW2SVpamo4cOaJt27Y5y2zatEl1dXXOf4AjzU8//aRDhw4pKSlJUvi3kWEYmj17tt566y1t2rRJvXv3drvuy+9WWlqadu7c6Rbo5ebmKjY2VoMGDWqdBwmgptrIk8LCQkly+x6Fcxt5UldXp6qqqvD5DgV7FrGZ/PWvfzWio6ONlStXGl9//bVx1113GXFxcW6z2CPJ/fffb+Tl5Rl79+41Pv30UyM9Pd3o1q2bcfDgQcMwDOPuu+82zjvvPGPTpk3Gl19+aaSlpRlpaWlBrnVgHT161Pjqq6+Mr776ypBkPPPMM8ZXX31l/Pjjj4ZhGMYTTzxhxMXFGe+8845RVFRkXHfddUbv3r2N48ePOz9j3LhxxrBhw4ytW7can3zyifHb3/7WuOWWW4L1SH53pjY6evSoMW/ePKOgoMDYu3ev8eGHHxoXXXSR8dvf/tY4ceKE8zPCuY1mzZpl2Gw2Iy8vzzhw4IDzVVlZ6SzT1O9WbW2tMXjwYGPs2LFGYWGhsWHDBqN79+5GVlZWMB7J75pqo5KSEuOxxx4zvvzyS2Pv3r3GO++8Y/Tp08cYPXq08zPCvY0efPBBIz8/39i7d69RVFRkPPjgg4bFYjE++OADwzDC4ztEANNML7zwgnHeeecZVqvVuOSSS4wtW7YEu0pBc/PNNxtJSUmG1Wo1zj33XOPmm282SkpKnNePHz9u/PGPfzTOOeccIyYmxrjhhhuMAwcOBLHGgffRRx8Zkk57TZs2zTCM+qXUDz/8sJGQkGBER0cbY8aMMYqLi90+49ChQ8Ytt9xidOrUyYiNjTX+8Ic/GEePHg3C0wTGmdqosrLSGDt2rNG9e3cjKirK6NWrlzFz5szT/ichnNvIU9tIMlasWOEs48vv1g8//GCMHz/e6NChg9GtWzfj/vvvN2pqalr5aQKjqTYqLS01Ro8ebXTp0sWIjo42+vXrZ8yfP98oLy93+5xwbqM77rjD6NWrl2G1Wo3u3bsbY8aMcQYvhhEe3yG2EgAAAKbDHBgAAGA6BDAAAMB0CGAAAIDpEMAAAADTIYABAACmQwADAABMhwAGAACYDgEMAAAwHQIYAABgOgQwAEzhiiuukMVikcVicW7MFwzTp0931uPtt98OWj2ASEcAA8A0Zs6cqQMHDmjw4MFu5+12u+69917169dP7du3V0JCgkaNGqVly5apsrLSp8+eOHGixo0b5/Haxx9/LIvFoqKiIj333HM6cODAWT8LgLPTLtgVAABfxcTEKDEx0e3c999/r1GjRikuLk6LFy/WkCFDFB0drZ07d+rll1/Wueeeq2uvvbbJz54xY4YmTZqkn376ST169HC7tmLFCo0YMUIpKSmSJJvN5r+HAtAi9MAAaJYffvhBFotFf/vb3zR69Gh16NBBF198sUpLS/Xxxx9r5MiRiomJ0ZgxY3TkyJGA1+ePf/yj2rVrpy+//FI33XSTBg4cqD59+ui6667T+vXrNXHiRElSXV2dcnJy1Lt3b3Xo0EFDhw7Vm2++6fyca665Rt27d9fKlSvdPv/YsWN64403NGPGjIA/CwDfEcAAaJYdO3ZIkpYtW6bFixfrs88+U1lZmW677TY98cQTevHFF/XRRx9px44dWrFiRUDrcujQIX3wwQfKzMxUx44dPZaxWCySpJycHK1atUrLly/X7t27NWfOHN12223Kz8+XJLVr105Tp07VypUrZRiG8/433nhDJ0+e1C233BLQZwHQPAwhAWiWwsJCdenSRWvXrlXXrl0lSZdffrk++eQT7d69WzExMZKkiy++WHa7PaB1KSkpkWEY6t+/v9v5bt266cSJE5KkzMxMPfbYY1q8eLE+/PBDpaWlSZL69OmjTz75RP/5n/+pyy+/XJJ0xx136KmnnlJ+fr6uuOIKSfXDR5MmTWLYCAgx9MAAaJYdO3bohhtucAYvklRaWqqbb77ZGbw0nOvdu3cwqqjPP/9chYWFuuCCC1RVVaWSkhJVVlbq97//vTp16uR8rVq1Snv27HHeN2DAAP3ud7/TK6+8Iqk+QPr4448ZPgJCEAEMgGYpLCxUamqq27kdO3Zo5MiRzvcnTpxQcXGxhg4dKklKS0tz9sZs375dkyZNOuN5X/Xr108Wi0XFxcVu5/v06aN+/fqpQ4cOkurnsUjS+vXrVVhY6Hx9/fXXbvNgpPrJvH/729909OhRrVixQn379nX20AAIHQQwAHzmcDj0ww8/aNiwYc5ze/fuVXl5udu5nTt3yjAMDRkyRIZh6ODBg87VQzt37lRKSorX883RtWtX/f73v9eLL76oiooKr+UGDRqk6OholZaWql+/fm6vnj17upW96aab1KZNG61Zs0arVq3SHXfc4ZxHAyB0MAcGgM927Nihtm3buuVhaZgT06tXL7dzffv2VadOnbRnzx63oaSdO3fqd7/7nb7//nuP55vrpZde0qhRozRixAhlZ2crJSVFbdq00RdffKFvv/1Ww4cPV+fOnTVv3jzNmTNHdXV1uvTSS1VeXq5PP/1UsbGxmjZtmvPzOnXqpJtvvllZWVlyOByaPn16s+sEIPDogQHgsx07dqh///5q37692znX3peGcw3DR0VFRRoyZIjz2ldffaUhQ4Z4Pd9cffv21VdffaX09HRlZWVp6NChGjFihF544QXNmzdPjz/+uCTp8ccf18MPP6ycnBwNHDhQ48aN0/r16z3O05kxY4Z++eUXZWRkKDk5udl1AhB4FsN1vSAA+Nmjjz4qu92uZcuW6YsvvtCVV14ph8Ohxx9/3OP5Nm08/3/VFVdcoQsvvFDPPvts6z6AFxaLRW+99Zauv/76YFcFiEj0wAAIqKKiIjkcDg0dOlQrVqxQUlKS1qxZ4/X8mbz00kvq1KmTdu7c2Uq1P93dd9+tTp06Be3nA6hHDwyAgBo4cKC++uort2GnM5335p///KeOHz8uSTrvvPNktVr9XldfHDx4UA6HQ5KUlJTkNYEegMBiEi+AgKmoqFDbtm1PC1K8nT+Tc88919/Va5H4+HjFx8cHuxpAxKMHBgAAmA5zYAAAgOkQwAAAANMhgAEAAKZDAAMAAEyHAAYAAJgOAQwAADAdAhgAAGA6BDAAAMB0CGAAAIDpEMAAAADTIYABAACmQwADAABM5/8B3vFNakI7ZYUAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "\n", + "scaled['mass'][:, ::hist.rebin(4)].plot1d(ax=ax, overlay='dataset');" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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qRo3bpx+/PFHXXbZZW7bVqxYoUGDBikuLk6SFBYW1ngHBaBBOAMDoF5++OEH2Ww2/f3vf9ewYcMUFBSkwYMHKy8vT59++qmGDBmi4OBgDR8+XAUFBU1ez4MPPqg2bdroq6++0u9+9zv16dNHPXr00G233aaNGzdqzJgxkqSKigqlpqaqe/fuCgoKUnx8vN5++23X59xyyy3q3LmzVq5c6fb5RUVFWrdunaZOndrkxwLAewQYAPWyZ88eSVJaWpoWL16s7du3Kz8/X3fffbeeeeYZvfLKK/rkk0+0Z88erVixoklrOX78uD766COlpKSoXbt2HtvYbDZJUmpqqlatWqXly5dr//79mjlzpu6++25lZGRIktq0aaNJkyZp5cqVMgzDtf+6det09uxZTZgwoUmPBUD9cAkJQL1kZWWpQ4cOWrt2rTp27ChJuv766/XZZ59p//79Cg4OliQNHjxYDoejSWvJzc2VYRjq1auX2/pOnTrp9OnTkqSUlBQ99dRTWrx4sT7++GMlJiZKknr06KHPPvtM//mf/6nrr79eknTffffpueeeU0ZGhm644QZJlZePxo0bx2UjwMdwBgZAvezZs0e33367K7xIUl5enu68805XeKla1717dzNK1BdffKGsrCxdeeWVKi0tVW5urkpKSvTb3/5WISEhrmXVqlU6ePCga7/evXvrN7/5jV5//XVJlQHp008/5fIR4IMIMADqJSsrSwkJCW7r9uzZoyFDhrjenz59Wjk5OYqPj5ckJSYmus7G7N69W+PGjbvgem/FxsbKZrMpJyfHbX2PHj0UGxuroKAgSZXjWCRp48aNysrKci3ffPON2zgYqXIw79///nedPHlSK1asUM+ePV1naAD4DgIMAK85nU798MMPGjBggGvdoUOHVFhY6LZu7969MgxD/fv3l2EYOnbsmGv20N69exUXF1fr+vro2LGjfvvb3+qVV15RcXFxre369u2rwMBA5eXlKTY21m3p0qWLW9vf/e53atWqldasWaNVq1bpvvvuc42jAeA7GAMDwGt79uxR69at3e7DUjUmplu3bm7revbsqZCQEB08eNDtUtLevXv1m9/8Rt9//73H9fX16quvaujQoRo0aJAWLVqkuLg4tWrVSl9++aUOHDiggQMHqn379po9e7ZmzpypiooKXXvttSosLNTnn3+u0NBQTZ482fV5ISEhuvPOOzVv3jw5nU5NmTKl3jUBaHqcgQHgtT179qhXr15q27at27rqZ1+q1lVdPsrOzlb//v1d277++mv179+/1vX11bNnT3399ddKSkrSvHnzFB8fr0GDBunll1/W7Nmz9fTTT0uSnn76aT3++ONKTU1Vnz59NHLkSG3cuNHjOJ2pU6fq119/VXJysmJiYupdE4CmZzOqzxcEgEb25JNPyuFwKC0tTV9++aVuvPFGOZ1OPf300x7Xt2rl+d9VN9xwg6666iq98MILzXsAtbDZbFq/fr3Gjh1rdilAi8QZGABNKjs7W06nU/Hx8VqxYoWio6O1Zs2aWtdfyKuvvqqQkBDt3bu3mao/3wMPPKCQkBDTfj6ASpyBAdCk+vTpo6+//trtstOF1tfmp59+0qlTpyRJXbt2ld1ub/RavXHs2DE5nU5JUnR0dK030APQtBjEC6DJFBcXq3Xr1ueFlNrWX8ill17a2OU1SEREhCIiIswuA2jxOAMDAAAshzEwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcggwAADAcv4/RnSP29eDXVYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "\n", + "scaled['mass_z1'].plot1d(ax=ax, overlay='dataset');" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(2.0, 300.0)" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkwAAAG2CAYAAACNhdkhAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA170lEQVR4nO3df1RUdeL/8deIDgo4kCK/8sdRKX+kkqlLrGWWrmj2w/JzNs3SyrVji1v+rOzbmuV+pDWr7Yfhp/azWp/NPmabtemuib8wEy1NRK04YfpB08FWg0lQQLnfP1hGBgcuA8PMAM/HOfcc5t73vfO+bwfm5b3v+35bDMMwBAAAgBq18ncFAAAAAh2BCQAAwASBCQAAwASBCQAAwASBCQAAwASBCQAAwASBCQAAwASBCQAAwERrf1egsZSXl+vEiRNq3769LBaLv6sDAADqwDAM/fzzz4qLi1OrVoFzXafZBqYTJ06oS5cu/q4GAACoh2PHjqlz587+roZTsw1M7du3l1TR4Dabzc+1AQAAdeFwONSlSxfn93igaLaBqfI2nM1mIzABANDEBFp3msC5OQgAABCgCEwAAAAmCEwAAAAmCEwAAAAmCEwAAAAmCEwAAAAmCEwAAAAmCEwAAAAmCEwAAAAmCEwAAAAmCEwAAAAmCEwAAAAmCEwAAAAmCEwAAAAmCEzeVlokLQyvWEqL/F0bAADgBQQmAAAAEwQmAAAAEwQmAAAAEwQmAAAAEwQmbzIMqbTY9TUAAGjyCEzeVFYsLY2v8vqc/+oCAAC8hsAEAABggsAEAABggsAEAABggsAEAABggsAEAABggsAEAABggsAEAABggsDUmKwh/q4BAADwAgITAACACQITAACACQITAACACQJTY1ocJ5UW+bsWAACggQhMAAAAJghMAAAAJghMAAAAJghMja20WDIMf9cCAAA0AIGpsS2Nl8qK/V0LAADQAAQmAAAAEwQmAAAAEwQmAAAAEwQmAAAAEwQmAAAAEwQmAAAAEwSmxjI31981AAAAXkJgAgAAMEFgAgAAMEFgAgAAMEFgAgAAMOFRYEpNTdWQIUPUvn17RUVFady4ccrJyXEpM3z4cFksFpdl+vTpLmXy8vI0duxYhYSEKCoqSvPmzdOFCxdcymzbtk3XXXedgoODFR8fr5UrV9bvDAEAABrIo8CUkZGhlJQU7dq1S+np6SorK9OoUaNUVFTkUm7atGk6efKkc1myZIlz28WLFzV27FiVlpZq586devvtt7Vy5UotWLDAWebIkSMaO3asbr75ZmVlZWnmzJn6zW9+o08//bSBpwsAAOC51p4U3rBhg8vrlStXKioqSnv37tWwYcOc60NCQhQTE+P2GBs3btTXX3+tTZs2KTo6Wtdee60WLVqkJ554QgsXLpTVatXy5cvVvXt3vfjii5KkPn36aMeOHXr55ZeVnJzs6TkCAAA0SIP6MBUWFkqSOnTo4LL+3XffVWRkpPr166f58+eruLjYuS0zM1P9+/dXdHS0c11ycrIcDocOHTrkLDNy5EiXYyYnJyszM7PGupSUlMjhcLgsAAAA3uDRFaaqysvLNXPmTA0dOlT9+vVzrr/33nvVrVs3xcXFKTs7W0888YRycnL04YcfSpLsdrtLWJLkfG2322st43A4dO7cObVr1+6y+qSmpurZZ5+t7+kAAADUqN6BKSUlRQcPHtSOHTtc1j/88MPOn/v376/Y2FiNGDFChw8fVs+ePetfUxPz58/X7Nmzna8dDoe6dOnSaO8HAABajnrdkpsxY4bWrVunrVu3qnPnzrWWTUxMlCTl5lZMFRITE6P8/HyXMpWvK/s91VTGZrO5vbokScHBwbLZbC4LAACAN3gUmAzD0IwZM7R27Vpt2bJF3bt3N90nKytLkhQbGytJSkpK0oEDB3Tq1ClnmfT0dNlsNvXt29dZZvPmzS7HSU9PV1JSkifVBQAA8AqPAlNKSor++te/atWqVWrfvr3sdrvsdrvOnTsnSTp8+LAWLVqkvXv36ujRo/r73/+uyZMna9iwYRowYIAkadSoUerbt6/uv/9+7d+/X59++qmefvpppaSkKDg4WJI0ffp0ff/993r88cf17bff6o033tD777+vWbNmefn0AQAAzHkUmNLS0lRYWKjhw4crNjbWuaxevVqSZLVatWnTJo0aNUq9e/fWnDlzNH78eH3yySfOYwQFBWndunUKCgpSUlKS7rvvPk2ePFnPPfecs0z37t21fv16paenKyEhQS+++KL+/Oc/M6QAAADwC486fRuGUev2Ll26KCMjw/Q43bp10z/+8Y9aywwfPlz79u3zpHoAAACNgrnkfGFxnFRaZF4OAAAEJAITAACACQITAACACQITAACACQITAACACQKTr5QW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RWACAAAwQWAKZKXFzCkHAEAAIDAFsqXxUlmxv2sBAECLR2ACAAAwQWAKJEyTAgBAQCIwBRKmSQEAICARmAAAAEwQmAAAAEwQmAKNNZQpUgAACDAEJgAAABMEJgAAABMeB6bt27fr9ttvV1xcnCwWiz766COX7Q888IAsFovLMnr0aJcyZ86c0aRJk2Sz2RQREaGpU6fq7NmzLmWys7N14403qm3bturSpYuWLFni+dkBAAB4gceBqaioSAkJCVq2bFmNZUaPHq2TJ086l/fee89l+6RJk3To0CGlp6dr3bp12r59ux5++GHndofDoVGjRqlbt27au3evXnjhBS1cuFBvvvmmp9UFAABosNae7jBmzBiNGTOm1jLBwcGKiYlxu+2bb77Rhg0b9OWXX2rw4MGSpNdee0233nqrli5dqri4OL377rsqLS3VX/7yF1mtVl1zzTXKysrSSy+95BKsAAAAfKFR+jBt27ZNUVFR6tWrlx555BGdPn3auS0zM1MRERHOsCRJI0eOVKtWrbR7925nmWHDhslqtTrLJCcnKycnRz/99JPb9ywpKZHD4XBZAAAAvMHrgWn06NF65513tHnzZv3xj39URkaGxowZo4sXL0qS7Ha7oqKiXPZp3bq1OnToILvd7iwTHR3tUqbydWWZ6lJTUxUeHu5cunTp4u1T84/FcVJpkb9rAQBAi+bxLTkzEyZMcP7cv39/DRgwQD179tS2bds0YsQIb7+d0/z58zV79mzna4fD0XxCEwAA8KtGH1agR48eioyMVG5uxaSyMTExOnXqlEuZCxcu6MyZM85+TzExMcrPz3cpU/m6pr5RwcHBstlsLgsAAIA3NHpgOn78uE6fPq3Y2FhJUlJSkgoKCrR3715nmS1btqi8vFyJiYnOMtu3b1dZWZmzTHp6unr16qUrrriisasceEqLJcPwdy0AAGixPA5MZ8+eVVZWlrKysiRJR44cUVZWlvLy8nT27FnNmzdPu3bt0tGjR7V582bdeeedio+PV3JysiSpT58+Gj16tKZNm6YvvvhCn3/+uWbMmKEJEyYoLi5OknTvvffKarVq6tSpOnTokFavXq1XXnnF5ZZbi7I0Xior9nctAABosTwOTHv27NHAgQM1cOBASdLs2bM1cOBALViwQEFBQcrOztYdd9yhq6++WlOnTtWgQYP02WefKTg42HmM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IEkKDw/33kkBaBK4wgTAI0ePHpXFYtHf/vY3DRs2TO3atdOQIUOUl5enzz77TNdff71CQkI0YsQIFRQUNHp9fvvb36p169bas2ePfv3rX6tPnz7q0aOH7rzzTq1fv1633367JKm8vFypqanq3r272rVrp4SEBH3wwQfO49x2223q1KmTVq5c6XL8s2fPas2aNZo6dWqjnwuAwEVgAuCR/fv3S5LS0tK0ePFi7dy5U/n5+brvvvv0/PPP6/XXX9fWrVu1f/9+rVixolHrcvr0aW3cuFEpKSkKDQ11W8ZisUiSUlNT9c4772j58uU6dOiQZs2apfvuu08ZGRmSpNatW2vy5MlauXKlDMNw7r9mzRpdvHhREydObNRzARDYuCUHwCNZWVnq0KGDVq9erY4dO0qSbrrpJu3YsUOHDh1SSEiIJGnIkCGy2+2NWpfc3FwZhqFevXq5rI+MjNT58+clSSkpKXruuee0ePFibdq0SUlJSZKkHj16aMeOHfqv//ov3XTTTZKkhx56SC+88IIyMjI0fPhwSRW348aPH89tOKCF4woTAI/s379fd911lzMsSVJeXp7uueceZ1iqXNe9e3d/VFFffPGFsrKydM0116ikpES5ubkqLi7Wr371K4WFhTmXd955R4cPH3bu17t3b/3yl7/UX/7yF0kVgeyzzz7jdhwAAhMAz2RlZSkxMdFl3f79+3X99dc7X58/f145OTlKSEiQJCUlJTmvNn311VcaP358revrKj4+XhaLRTk5OS7re/Toofj4eLVr105SRT8kSVq/fr2ysrKcy9dff+3Sj0mq6Pz9t7/9TT///LNWrFihnj17Oq9AAWi5CEwA6szhcOjo0aMaOHCgc92RI0dUWFjosu7AgQMyDEP9+/eXYRg6deqU8+m2AwcOaMCAATWu90THjh31q1/9Sq+//rqKiopqLNe3b18FBwcrLy9P8fHxLkuXLl1cyv76179Wq1attGrVKr3zzjt66KGHnP2gALRc9GECUGf79+9XUFCQyzhIlX2aunXr5rKuZ8+eCgsL0+HDh11uzR04cEC//OUv9f3337td76k33nhDQ4cO1eDBg7Vw4UINGDBArVq10pdffqlvv/1WgwYNUvv27TV37lzNmjVL5eXluuGGG1RYWKjPP/9cNptNU6ZMcR4vLCxM99xzj+bPny+Hw6EHHnjA4zoBaH64wgSgzvbv369evXqpbdu2LuuqXl2qXFd5Oy47O1v9+/d3btu3b5/69+9f43pP9ezZU/v27dPIkSM1f/58JSQkaPDgwXrttdc0d+5cLVq0SJK0aNEi/f73v1dqaqr69Omj0aNHa/369W77WU2dOlU//fSTkpOTFRcX53GdADQ/FqPq87MA4GXPPvus7Ha70tLS9OWXX+rmm2+Ww+HQokWL3K5v1cr9/+OGDx+ua6+9Vn/60598ewI1sFgsWrt2rcaNG+fvqgDwAa4wAWhU2dnZcjgcSkhI0IoVKxQbG6tVq1bVuL42b7zxhsLCwnTgwAEf1f5y06dPV1hYmN/eH4B/cIUJQKPq06eP9u3b53Ibr7b1Nfnhhx907tw5SVLXrl1ltVq9Xte6OHXqlBwOhyQpNja2xgEzATQvdPoG0GiKiooUFBR0WSiqaX1trrzySm9Xr16ioqIUFRXl72oA8DGuMAEAAJigDxMAAIAJAhMAAIAJAhMAAIAJAhMAAIAJAhMAAIAJAhMAAIAJAhMAAIAJAhMAAIAJAhMAAIAJAhMAAIAJAhMAAIAJAhMAAICJ/w8iDY+wmtlifwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "\n", + "scaled['mass_z2'].plot1d(ax=ax, overlay='dataset')\n", + "ax.set_xlim(2, 300)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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0+nUhx9+6Nk+cuRIWSwWr2XatGlexygoKFBiYqKCg4MVHh6uefPmqbKy0qtNenq6hg0bJpvNppiYGKWmpjb+DAEAQMDp4Evjnj176oknntBPfvITGYah1atX6+abb9aePXt0xRVXSJKmTp2qxx57zLNPcHCw5+eqqiolJibK4XBox44dOnbsmCZNmqSgoCAtWbJEknT48GElJiZq2rRpWrNmjbZu3ar7779fkZGRSkhIaIpzBgAAJudTgBk/frzX6z/+8Y9auXKldu7c6QkwwcHBcjgcde6/ZcsW7d+/Xx999JEiIiI0ZMgQPf7441qwYIEWL14sq9WqVatWKTo6Wk899ZQkacCAAfrkk0/0zDPPEGAAAICkSxgDU1VVpTfffFOlpaVyOp2e9WvWrFH37t01cOBAJScn69Sps09izszM1KBBgxQREeFZl5CQILfbrX379nnajB492uu9EhISlJmZ2dhSAQBAgPHpCowk5ebmyul06syZMwoJCdH69esVGxsrSbrrrrvUp08fRUVFKScnRwsWLFBeXp7+9re/SZJcLpdXeJHkee1yuS7axu126/Tp0+rUqVOddZWVlamsrMzz2u12+3pqTav8lPfP1s7+qwUAgADjc4Dp16+fsrOzVVJSonfeeUeTJ09WRkaGYmNj9cADD3jaDRo0SJGRkRo1apQOHTqkyy+/vEkL/6GUlBQ9+uijzfoeAACgdfD5KySr1aqYmBgNHz5cKSkpGjx4sJYvX15n2/j4eElSfn7NtPoOh0OFhYVebWpf146buVAbu91+wasvkpScnKySkhLPcuTIEV9PDQAAmMQlzwNTXV3t9dXNubKzsyVJkZGRkiSn06nc3FwVFRV52qSlpclut3u+hnI6ndq6davXcdLS0rzG2dTFZrN5bu+uXVqN8lOSYfi7CgAAAoZPASY5OVnbt2/X119/rdzcXCUnJys9PV0TJ07UoUOH9PjjjysrK0tff/213n//fU2aNEkjRoxQXFycJGnMmDGKjY3VPffco3/+85/avHmzFi5cqKSkJNlsNknStGnT9NVXX2n+/Pk6ePCgXnzxRb399tuaNWtW0599S3kuTqo4VX87AADQID4FmKKiIk2aNEn9+vXTqFGj9Pnnn2vz5s264YYbZLVa9dFHH2nMmDHq37+/5syZowkTJuiDDz7w7N++fXtt2LBB7du3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Qn/84x+bdZ+m0KrvQlqxYoV+/OMfq2PHjoqPj9dnn33m75LQULVhpnapHej725yL71d7G3bpd2fvYio7WbOce1fTudtOfnv+9nOd2567ogCgTkeOHNHTTz+tOXPmqGfPns22T1NptVdg3nrrLc2ePVurVq1SfHy8nn32WSUkJCgvL0/h4eH+Lg++qg00l51zZebkdzWBpS4X+/rpoX9KywdfeHvtGJtaP7z6MzdfCunh/ZXXueq7+lPXflwxAmByCxculN1u14IFC5p1n6bSasfAxMfH66qrrtILL7wgSaqurlavXr304IMP6ne/+129+zfnGJhTJ0vq3lBxSsHL+9e0mVvQ9sbA+MoTBIyacTCGoeDnBjT725566GBN4Djn31ed2y+kjv3q3QcAWrGD/3tIw4cP18qVKzVt2rQG7bN7926f92mIhv79bpUBpry8XMHBwXrnnXd0yy23eNZPnjxZxcXFeu+9987bp6ysTGVlZZ7XJSUl6t27t44cOdL0g3hT6r9MduWZFTqjjk37vgHPUEed/XcYrDJt7zjbj/UAQOAzDEM3fTpERUVFyszMbNAcLoZh6KabbvJpn4Zyu93q1auXiouLFRoaesF2rfIrpO+++05VVVWKiIjwWh8REaGDBw/WuU9KSooeffTR89b36tWrWWqs3yQ/vW9gufBHFwDQdD6RJHXr1s3nPRuzT0OcOHHCfAGmMZKTkzV79tn/W6+urtb333+vbt26Nek96bXJsFmu7AQI+qh+9FH96KP60Uf1o48urrKyUj/72c906NAhFRQUXDQwnLvP1VdfrcjISL3//vtNPu+LYRg6ceKEoqKiLtquVQaY7t27q3379iosLPRaX1hYKIfDUec+NptNNpvNa11YWFhzlSi73c4vQz3oo/rRR/Wjj+pHH9WPPqrbypUr9dVXX0mSQkNDG9RHK1euVH5+vt56660GBZ7GaMhxW+Vt1FarVcOHD9fWrVs966qrq7V161Y5nU4/VgYAQGBwu9165JFHdOedd/q8z6RJkzR06NBmrK5+rTLASNLs2bP10ksvafXq1Tpw4ICmT5+u0tJS/frXv/Z3aQAAmF7tBHQLFy70eZ8//OEPzVhZw7TKr5Ak6fbbb9e3336rRYsWyeVyaciQIdq0adN5A3tbms1m0yOPPHLe11U4iz6qH31UP/qofvRR/eijup07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r+vgwYNq3769unTporlz52rWrFlavXq1Dh06pN27d+v555/X6tWrvY4XEhKi22+/XcnJyTp27Jjuvfden2sC0PwYAwOgwbKzs9W/f3/Nnz9fEyZMUElJiRISEpSRkaGwsDBPu4ZcgcnJyfEKLHv27NF//dd/+VzT5Zdfrj179mjJkiVKTk7WN998I5vNptjYWM2dO1e/+c1vJEmPP/64evTooZSUFH311VcKCwvTsGHD9PDDD593zClTpuivf/2rbrzxRkVFRflcE4DmZzHOvV8QAC4iKSlJ//73v7V27doLtjl9+rR69uyp48ePe60fNWqUXnvtNc84mUcffVQul0srV67U559/ruuuu05ut9vzNdQPjRw5UkOGDNGzzz7bZOdzKSwWi9avX69bbrnF36UAbRJfIQFosOzs7HrHqRw4cED9+/f3WmcYhvLz89W1a1fPupycHLndbg0ePFivvvqqIiMjLxqMpJqvi0JCQpSbm9v4k7hE06ZNU0hIiN/eH0ANrsAAaBDDMBQaGqo333xTN954o0/7HjhwQC+99JKefvppz7oBAwZoz5496tixY4OO8X//9386ffq0JKl3796yWq0+1dBUioqK5Ha7JUmRkZEXnEAPQPMiwABocaWlpYqPj9fevXv9XQoAkyLAAAAA02EMDAAAMB0CDAAAMB0CDAAAMB0CDAAAMB0CDAAAMB0CDAAAMB0CDAAAMB0CDAAAMB0CDAAAMB0CDAAAMB0CDAAAMB0CDAAAMJ3/B6+WPCgfPjNNAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "\n", + "scaled['pt_z1_mu1'].plot1d(ax=ax, overlay='dataset');" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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BCAoBBQALh9++KESEhL0+uuv64orrtDIkSP1+OOPq6qqSk888YTGjRun0aNHKzExUePGjdO4ceO0cuXKiJSlsrJShmHo/PPP99jev39/paWlKS0tTQ8++KCam5tVUlKi559/XlOmTNHw4cN1++236/vf/75+9atfuc6744479Omnn7pCi+Ro3pk+fTrNOoAF0QcFgMuePXt044036txzz3VtS09Pl+QY4fLwww+roqJCs2bN0vbt200p4/vvv6+2tjYVFhaqublZlZWVampq0ne/+12P4+x2u8aPH+/6fuTIkfrWt76l559/XldeeaUqKyv1t7/9TY8++mh33wKAAFCDAsBlz549GjdunMe28vJy9e/fX4MGDZIk7du3TxdeeGGn18rPz1d1dbUkadeuXZo+fXpQZcnLy5PNZtOBAwc8tg8fPlx5eXlKTk6W5OhHIklvvPGG9uzZ43p9/PHHHv1QJEdn2f/+7//WiRMntHr1ap133nm64oorgioXgO5BQAEgSTp16pQOHjyo1tZW17a2tjY988wzmjFjhuLiHP9cfPTRR50GFMMwVFtb6xqVs3fvXtcomUD169dP3/3ud/WLX/xCjY2NHR43atQoJSUlqaqqSnl5eR6vIUOGeBx70003KS4uTuvXr9e6det0xx13uPqxALAWAgoASY4QYbPZ9MILL6i8vFz79+/XzTffrLq6Oi1cuNB13L59+9rNVeLts88+U25urse1R48eHXSZfvnLX+rMmTOaMGGCXn75Ze3fv18HDhzQCy+8oE8++US9evVSnz59NH/+fM2bN09r167Vp59+ql27dmnFihVau3atx/XS0tJ08803q7i4WEePHtXtt98edJkAdA/6oACQ5GjeGTlypH7yk59o+vTpqq+v15QpU7R161ZlZma6jgukBqWiosIjkOzevVs/+tGPgi7Teeedp927d6ukpETFxcX6/PPPlZSUpFGjRmn+/Pm66667JEmPPfaYzjnnHJWWluqzzz5TZmamLr74Yi1YsKDdNWfOnKnf/OY3uvbaa5WTkxN0mQB0D5vhPuYOQI9VVFSkf/7zn1q/fn2Hx5w6dUqDBw/WsWPHPLZPnjxZ69atc/VTeeSRR1RdXa2ysjLt2LFD//qv/6qGhgZXM5G3K6+8UuPGjdMzzzwTtvvpCpvNpldffVU33HCD2UUBeiyaeABIctSgdNZPZP/+/Ro5cqTHNsMwVFlZqb59+7q2VVRUqKGhQWPHjtXq1as1cOBAv8FHcjTnpKWlae/evaHfRBfdeeedSktLM+39AZxFDQoAGYahjIwMvfTSS7r22muDOnf//v167rnn9PTTT7u2XXDBBdq9e7d69+4d0DW++OILnTp1SpI0dOhQJSYmBlWGcKmtrVVDQ4MkaeDAgR1OEAcg8ggoAMKqsbFREydO1EcffWR2UQBEMQIKAACwHPqgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAyyGgAAAAy/l//nd127ENC/YAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots()\n", + "\n", + "scaled['pt_z1_mu2'].plot1d(ax=ax, overlay='dataset');" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.13" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/objects.inv b/objects.inv new file mode 100644 index 000000000..0e76783d5 Binary files /dev/null and b/objects.inv differ diff --git a/py-modindex.html b/py-modindex.html new file mode 100644 index 000000000..5ffe17b1e --- /dev/null +++ b/py-modindex.html @@ -0,0 +1,202 @@ + + + + + + Python Module Index — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + +
  • +
  • +
+
+
+
+
+ + +

Python Module Index

+ +
+ c +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 
+ c
+ coffea +
    + coffea.analysis_tools +
    + coffea.btag_tools +
    + coffea.dataset_tools +
    + coffea.jetmet_tools +
    + coffea.lookup_tools +
    + coffea.lumi_tools +
    + coffea.ml_tools +
    + coffea.nanoevents +
    + coffea.nanoevents.methods.base +
    + coffea.nanoevents.methods.candidate +
    + coffea.nanoevents.methods.nanoaod +
    + coffea.nanoevents.methods.vector +
    + coffea.processor +
    + coffea.util +
+ + +
+
+
+ +
+ +
+

© Copyright 2024, Fermi National Accelerator Laboratory.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/reference.html b/reference.html new file mode 100644 index 000000000..aa3f0c298 --- /dev/null +++ b/reference.html @@ -0,0 +1,193 @@ + + + + + + + API Reference Guide — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

API Reference Guide

+

Coffea: a column object framework for effective analysis.

+

When executing

+
>>> import coffea
+
+
+

a subset of the full coffea package is imported into the python environment. +Some packages must be imported explicitly, so as to avoid importing unnecessary +and/or heavy dependencies. Below lists the packages available in the coffea namespace.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

coffea.analysis_tools

Tools of general use for columnar analysis

coffea.btag_tools

BTag tools: CMS analysis-level b-tagging corrections and uncertainties

coffea.dataset_tools

coffea.jetmet_tools

JetMET tools: CMS analysis-level jet corrections and uncertainties

coffea.lookup_tools

Lookup tools

coffea.lumi_tools

Tools to parse CMS luminosity non-event data

coffea.ml_tools

Tools to interface with various ML inference services

coffea.nanoevents

NanoEvents and helpers

coffea.nanoevents.methods.base

Basic NanoEvents and NanoCollection mixins

coffea.nanoevents.methods.candidate

Physics object candidate mixin

coffea.nanoevents.methods.nanoaod

Mixins for the CMS NanoAOD schema

coffea.nanoevents.methods.vector

2D, 3D, and Lorentz vector class mixins

coffea.processor

A framework for analysis scale-out

coffea.util

Utility functions

+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/search.html b/search.html new file mode 100644 index 000000000..26a36abc8 --- /dev/null +++ b/search.html @@ -0,0 +1,132 @@ + + + + + + Search — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + +
  • +
  • +
+
+
+
+
+ + + + +
+ +
+ +
+
+
+ +
+ +
+

© Copyright 2024, Fermi National Accelerator Laboratory.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/searchindex.js b/searchindex.js new file mode 100644 index 000000000..a0674a178 --- /dev/null +++ b/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({"alltitles": {"API Reference Guide": [[108, null]], "Additional comments on common prepare_awkward patterns": [[104, "Additional-comments-on-common-prepare_awkward-patterns"]], "Applying CMS b-tagging corrections with btag_tools": [[102, "Applying-CMS-b-tagging-corrections-with-btag_tools"]], "Applying corrections to columnar data": [[102, null]], "Applying energy scale transformations with jetmet_tools": [[102, "Applying-energy-scale-transformations-with-jetmet_tools"]], "AssociatedPFCand": [[50, null]], "AssociatedSV": [[51, null]], "BTagScaleFactor": [[7, null]], "BaseSchema": [[35, null]], "Building and using your own correction from a histogram": [[102, "Building-and-using-your-own-correction-from-a-histogram"]], "CMS high-level tools": [[102, "CMS-high-level-tools"]], "Candidate": [[47, null]], "Casting multiple fields a collection to be separate axis": [[104, "Casting-multiple-fields-a-collection-to-be-separate-axis"]], "Citation": [[86, "citation"]], "Class Inheritance Diagram": [[88, "class-inheritance-diagram"], [89, "class-inheritance-diagram"], [91, "class-inheritance-diagram"], [92, "class-inheritance-diagram"], [93, "class-inheritance-diagram"], [94, "class-inheritance-diagram"], [95, "class-inheritance-diagram"], [96, "class-inheritance-diagram"], [97, "class-inheritance-diagram"], [98, "class-inheritance-diagram"], [99, "class-inheritance-diagram"], [100, "class-inheritance-diagram"], [101, "class-inheritance-diagram"]], "Classes": [[88, "classes"], [89, "classes"], [91, "classes"], [92, "classes"], [93, "classes"], [94, "classes"], [95, "classes"], [96, "classes"], [97, "classes"], [98, "classes"], [99, "classes"], [100, "classes"], [101, "classes"]], "Coffea Processors": [[107, null]], "Coffea by Example": [[85, null]], "Coffea concepts": [[84, null]], "Coffea lookup_tools": [[102, "Coffea-lookup_tools"]], "Coffea processor": [[84, "coffea-processor"]], "Columnar analysis": [[84, "columnar-analysis"]], "Comments about generalizing to other ML tools": [[104, "Comments-about-generalizing-to-other-ML-tools"]], "Container-based": [[87, "container-based"]], "CorrectedJetsFactory": [[18, null]], "CorrectedMETFactory": [[19, null]], "Creating a portable virtual environment": [[87, "creating-a-portable-virtual-environment"]], "Cutflow": [[0, null]], "CutflowToNpz": [[1, null]], "DataDiscoveryCLI from shell": [[103, "DataDiscoveryCLI-from-shell"]], "Dataset discovery tools": [[103, null]], "Dataset replicas": [[103, "Dataset-replicas"]], "DelphesSchema": [[36, null]], "Distributed executors": [[84, "distributed-executors"]], "Documentation": [[86, "documentation"]], "Electron": [[52, null]], "Example using ParticleNet-like jet variable calculation using PyTorch": [[104, "Example-using-ParticleNet-like-jet-variable-calculation-using-PyTorch"]], "FactorizedJetCorrector": [[20, null]], "FatJet": [[53, null]], "Filtering sites": [[103, "Filtering-sites"], [103, "id1"]], "Fixing collection dimensions": [[104, "Fixing-collection-dimensions"]], "For Developers": [[87, "for-developers"]], "FsrPhoton": [[54, null]], "Functions": [[90, "functions"], [101, "functions"]], "GenParticle": [[55, null]], "GenVisTau": [[56, null]], "Getting fancy": [[107, "Getting-fancy"]], "Indices and tables": [[86, "indices-and-tables"]], "Install coffea": [[87, "install-coffea"]], "Install optional dependencies": [[87, "install-optional-dependencies"]], "Install via cvmfs": [[87, "install-via-cvmfs"]], "Installation": [[86, "installation"]], "Installing coffea": [[87, null]], "JECStack": [[21, null]], "Jet": [[57, null]], "JetCorrectionUncertainty": [[22, null]], "JetResolution": [[23, null]], "JetResolutionScaleFactor": [[24, null]], "LCG-based": [[87, "lcg-based"]], "Local executors": [[84, "local-executors"]], "LorentzVector": [[67, null]], "LowPtElectron": [[58, null]], "LumiData": [[27, null]], "LumiList": [[28, null]], "LumiMask": [[29, null]], "MissingET": [[59, null]], "Muon": [[60, null]], "NanoAODSchema": [[37, null]], "NanoCollection": [[44, null]], "NanoEvents": [[45, null]], "NanoEventsFactory": [[38, null]], "NminusOne": [[2, null]], "NminusOneToNpz": [[3, null]], "Opening a root file and using it as a lookup table": [[102, "Opening-a-root-file-and-using-it-as-a-lookup-table"]], "PDUNESchema": [[39, null]], "PFCand": [[61, null]], "PFNanoAODSchema": [[40, null]], "PHYSLITESchema": [[41, null]], "PackedSelection": [[4, null]], "PackedSelection in Coffea 2023": [[106, null]], "Photon": [[62, null]], "Platform support": [[87, "platform-support"]], "PolarTwoVector": [[68, null]], "Pre-built images": [[87, "pre-built-images"]], "Preprocess the fileset with dask": [[103, "Preprocess-the-fileset-with-dask"]], "ProcessorABC": [[74, null]], "PtEtaPhiECandidate": [[48, null]], "PtEtaPhiELorentzVector": [[69, null]], "PtEtaPhiMCandidate": [[49, null]], "PtEtaPhiMCollection": [[63, null]], "PtEtaPhiMLorentzVector": [[70, null]], "Quick start": [[87, "quick-start"]], "Reading data with coffea NanoEvents": [[105, null]], "Running inference tools": [[104, null]], "Save the replicas metadata": [[103, "Save-the-replicas-metadata"]], "Scale-out": [[84, "scale-out"]], "ScoutingNanoAODSchema": [[42, null]], "SecondaryVertex": [[64, null]], "SpeedColumn": [[75, null]], "SphericalThreeVector": [[71, null]], "Strict dependencies": [[86, "strict-dependencies"]], "Systematic": [[46, null]], "Tau": [[65, null]], "ThreeVector": [[72, null]], "TreeMakerSchema": [[43, null]], "TwoVector": [[73, null]], "Using Rucio utils directly": [[103, "Using-Rucio-utils-directly"]], "Using correctionlib": [[102, "Using-correctionlib"]], "Using the DataDiscoveryCLI": [[103, "Using-the-DataDiscoveryCLI"]], "Vertex": [[66, null]], "Virtual environment": [[87, "virtual-environment"]], "WeightStatistics": [[5, null]], "Weights": [[6, null]], "Why these wrapper tools are needed": [[104, "Why-these-wrapper-tools-are-needed"]], "Work Queue Executor": [[109, null]], "apply_to_dataset": [[8, null]], "apply_to_fileset": [[9, null]], "awkward_rewrap": [[76, null]], "coffea - Columnar Object Framework For Effective Analysis": [[86, null]], "coffea.analysis_tools": [[88, null]], "coffea.btag_tools": [[89, null]], "coffea.dataset_tools": [[90, null]], "coffea.jetmet_tools": [[91, null]], "coffea.lookup_tools": [[92, null]], "coffea.lumi_tools": [[93, null]], "coffea.ml_tools": [[94, null]], "coffea.nanoevents": [[95, null]], "coffea.nanoevents.methods.base": [[96, null]], "coffea.nanoevents.methods.candidate": [[97, null]], "coffea.nanoevents.methods.nanoaod": [[98, null]], "coffea.nanoevents.methods.vector": [[99, null]], "coffea.processor": [[100, null]], "coffea.util": [[101, null]], "compress_form": [[77, null]], "decompress_form": [[78, null]], "deprecate": [[79, null]], "evaluator": [[25, null]], "extractor": [[26, null]], "filter_files": [[10, null]], "get_failed_steps_for_dataset": [[11, null]], "get_failed_steps_for_fileset": [[12, null]], "load": [[80, null]], "max_chunks": [[13, null]], "max_files": [[14, null]], "numpy_call_wrapper": [[30, null]], "preprocess": [[15, null]], "rewrap_recordarray": [[81, null]], "rich_bar": [[82, null]], "save": [[83, null]], "slice_chunks": [[16, null]], "slice_files": [[17, null]], "tf_wrapper": [[31, null]], "torch_wrapper": [[32, null]], "triton_wrapper": [[33, null]], "xgboost_wrapper": [[34, null]]}, "docnames": ["api/coffea.analysis_tools.Cutflow", "api/coffea.analysis_tools.CutflowToNpz", "api/coffea.analysis_tools.NminusOne", "api/coffea.analysis_tools.NminusOneToNpz", "api/coffea.analysis_tools.PackedSelection", "api/coffea.analysis_tools.WeightStatistics", "api/coffea.analysis_tools.Weights", "api/coffea.btag_tools.BTagScaleFactor", "api/coffea.dataset_tools.apply_to_dataset", "api/coffea.dataset_tools.apply_to_fileset", "api/coffea.dataset_tools.filter_files", "api/coffea.dataset_tools.get_failed_steps_for_dataset", "api/coffea.dataset_tools.get_failed_steps_for_fileset", "api/coffea.dataset_tools.max_chunks", "api/coffea.dataset_tools.max_files", "api/coffea.dataset_tools.preprocess", "api/coffea.dataset_tools.slice_chunks", "api/coffea.dataset_tools.slice_files", "api/coffea.jetmet_tools.CorrectedJetsFactory", "api/coffea.jetmet_tools.CorrectedMETFactory", "api/coffea.jetmet_tools.FactorizedJetCorrector", "api/coffea.jetmet_tools.JECStack", "api/coffea.jetmet_tools.JetCorrectionUncertainty", "api/coffea.jetmet_tools.JetResolution", "api/coffea.jetmet_tools.JetResolutionScaleFactor", "api/coffea.lookup_tools.evaluator", "api/coffea.lookup_tools.extractor", "api/coffea.lumi_tools.LumiData", "api/coffea.lumi_tools.LumiList", "api/coffea.lumi_tools.LumiMask", "api/coffea.ml_tools.numpy_call_wrapper", "api/coffea.ml_tools.tf_wrapper", "api/coffea.ml_tools.torch_wrapper", "api/coffea.ml_tools.triton_wrapper", "api/coffea.ml_tools.xgboost_wrapper", "api/coffea.nanoevents.BaseSchema", "api/coffea.nanoevents.DelphesSchema", "api/coffea.nanoevents.NanoAODSchema", "api/coffea.nanoevents.NanoEventsFactory", "api/coffea.nanoevents.PDUNESchema", "api/coffea.nanoevents.PFNanoAODSchema", "api/coffea.nanoevents.PHYSLITESchema", "api/coffea.nanoevents.ScoutingNanoAODSchema", "api/coffea.nanoevents.TreeMakerSchema", "api/coffea.nanoevents.methods.base.NanoCollection", "api/coffea.nanoevents.methods.base.NanoEvents", "api/coffea.nanoevents.methods.base.Systematic", "api/coffea.nanoevents.methods.candidate.Candidate", "api/coffea.nanoevents.methods.candidate.PtEtaPhiECandidate", "api/coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate", "api/coffea.nanoevents.methods.nanoaod.AssociatedPFCand", "api/coffea.nanoevents.methods.nanoaod.AssociatedSV", "api/coffea.nanoevents.methods.nanoaod.Electron", "api/coffea.nanoevents.methods.nanoaod.FatJet", "api/coffea.nanoevents.methods.nanoaod.FsrPhoton", "api/coffea.nanoevents.methods.nanoaod.GenParticle", "api/coffea.nanoevents.methods.nanoaod.GenVisTau", "api/coffea.nanoevents.methods.nanoaod.Jet", "api/coffea.nanoevents.methods.nanoaod.LowPtElectron", "api/coffea.nanoevents.methods.nanoaod.MissingET", "api/coffea.nanoevents.methods.nanoaod.Muon", "api/coffea.nanoevents.methods.nanoaod.PFCand", "api/coffea.nanoevents.methods.nanoaod.Photon", "api/coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection", "api/coffea.nanoevents.methods.nanoaod.SecondaryVertex", "api/coffea.nanoevents.methods.nanoaod.Tau", "api/coffea.nanoevents.methods.nanoaod.Vertex", "api/coffea.nanoevents.methods.vector.LorentzVector", "api/coffea.nanoevents.methods.vector.PolarTwoVector", "api/coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector", "api/coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector", "api/coffea.nanoevents.methods.vector.SphericalThreeVector", "api/coffea.nanoevents.methods.vector.ThreeVector", "api/coffea.nanoevents.methods.vector.TwoVector", "api/coffea.processor.ProcessorABC", "api/coffea.util.SpeedColumn", "api/coffea.util.awkward_rewrap", "api/coffea.util.compress_form", "api/coffea.util.decompress_form", "api/coffea.util.deprecate", "api/coffea.util.load", "api/coffea.util.rewrap_recordarray", "api/coffea.util.rich_bar", "api/coffea.util.save", "concepts", "examples", "index", "installation", "modules/coffea.analysis_tools", "modules/coffea.btag_tools", "modules/coffea.dataset_tools", "modules/coffea.jetmet_tools", "modules/coffea.lookup_tools", "modules/coffea.lumi_tools", "modules/coffea.ml_tools", "modules/coffea.nanoevents", "modules/coffea.nanoevents.methods.base", "modules/coffea.nanoevents.methods.candidate", "modules/coffea.nanoevents.methods.nanoaod", "modules/coffea.nanoevents.methods.vector", "modules/coffea.processor", "modules/coffea.util", "notebooks/applying_corrections", "notebooks/dataset_discovery", "notebooks/mltools", "notebooks/nanoevents", "notebooks/packedselection", "notebooks/processor", "reference", "wq"], "envversion": {"nbsphinx": 4, "sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1}, "filenames": ["api/coffea.analysis_tools.Cutflow.rst", "api/coffea.analysis_tools.CutflowToNpz.rst", "api/coffea.analysis_tools.NminusOne.rst", "api/coffea.analysis_tools.NminusOneToNpz.rst", "api/coffea.analysis_tools.PackedSelection.rst", "api/coffea.analysis_tools.WeightStatistics.rst", "api/coffea.analysis_tools.Weights.rst", "api/coffea.btag_tools.BTagScaleFactor.rst", "api/coffea.dataset_tools.apply_to_dataset.rst", "api/coffea.dataset_tools.apply_to_fileset.rst", "api/coffea.dataset_tools.filter_files.rst", "api/coffea.dataset_tools.get_failed_steps_for_dataset.rst", "api/coffea.dataset_tools.get_failed_steps_for_fileset.rst", "api/coffea.dataset_tools.max_chunks.rst", "api/coffea.dataset_tools.max_files.rst", "api/coffea.dataset_tools.preprocess.rst", "api/coffea.dataset_tools.slice_chunks.rst", "api/coffea.dataset_tools.slice_files.rst", "api/coffea.jetmet_tools.CorrectedJetsFactory.rst", "api/coffea.jetmet_tools.CorrectedMETFactory.rst", "api/coffea.jetmet_tools.FactorizedJetCorrector.rst", "api/coffea.jetmet_tools.JECStack.rst", "api/coffea.jetmet_tools.JetCorrectionUncertainty.rst", "api/coffea.jetmet_tools.JetResolution.rst", "api/coffea.jetmet_tools.JetResolutionScaleFactor.rst", "api/coffea.lookup_tools.evaluator.rst", "api/coffea.lookup_tools.extractor.rst", "api/coffea.lumi_tools.LumiData.rst", "api/coffea.lumi_tools.LumiList.rst", "api/coffea.lumi_tools.LumiMask.rst", "api/coffea.ml_tools.numpy_call_wrapper.rst", "api/coffea.ml_tools.tf_wrapper.rst", "api/coffea.ml_tools.torch_wrapper.rst", "api/coffea.ml_tools.triton_wrapper.rst", "api/coffea.ml_tools.xgboost_wrapper.rst", "api/coffea.nanoevents.BaseSchema.rst", "api/coffea.nanoevents.DelphesSchema.rst", "api/coffea.nanoevents.NanoAODSchema.rst", "api/coffea.nanoevents.NanoEventsFactory.rst", "api/coffea.nanoevents.PDUNESchema.rst", "api/coffea.nanoevents.PFNanoAODSchema.rst", "api/coffea.nanoevents.PHYSLITESchema.rst", "api/coffea.nanoevents.ScoutingNanoAODSchema.rst", "api/coffea.nanoevents.TreeMakerSchema.rst", "api/coffea.nanoevents.methods.base.NanoCollection.rst", "api/coffea.nanoevents.methods.base.NanoEvents.rst", "api/coffea.nanoevents.methods.base.Systematic.rst", "api/coffea.nanoevents.methods.candidate.Candidate.rst", "api/coffea.nanoevents.methods.candidate.PtEtaPhiECandidate.rst", "api/coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate.rst", "api/coffea.nanoevents.methods.nanoaod.AssociatedPFCand.rst", "api/coffea.nanoevents.methods.nanoaod.AssociatedSV.rst", "api/coffea.nanoevents.methods.nanoaod.Electron.rst", "api/coffea.nanoevents.methods.nanoaod.FatJet.rst", "api/coffea.nanoevents.methods.nanoaod.FsrPhoton.rst", "api/coffea.nanoevents.methods.nanoaod.GenParticle.rst", "api/coffea.nanoevents.methods.nanoaod.GenVisTau.rst", "api/coffea.nanoevents.methods.nanoaod.Jet.rst", "api/coffea.nanoevents.methods.nanoaod.LowPtElectron.rst", "api/coffea.nanoevents.methods.nanoaod.MissingET.rst", "api/coffea.nanoevents.methods.nanoaod.Muon.rst", "api/coffea.nanoevents.methods.nanoaod.PFCand.rst", "api/coffea.nanoevents.methods.nanoaod.Photon.rst", "api/coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection.rst", "api/coffea.nanoevents.methods.nanoaod.SecondaryVertex.rst", "api/coffea.nanoevents.methods.nanoaod.Tau.rst", "api/coffea.nanoevents.methods.nanoaod.Vertex.rst", "api/coffea.nanoevents.methods.vector.LorentzVector.rst", "api/coffea.nanoevents.methods.vector.PolarTwoVector.rst", "api/coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector.rst", "api/coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector.rst", "api/coffea.nanoevents.methods.vector.SphericalThreeVector.rst", "api/coffea.nanoevents.methods.vector.ThreeVector.rst", "api/coffea.nanoevents.methods.vector.TwoVector.rst", "api/coffea.processor.ProcessorABC.rst", "api/coffea.util.SpeedColumn.rst", "api/coffea.util.awkward_rewrap.rst", "api/coffea.util.compress_form.rst", "api/coffea.util.decompress_form.rst", "api/coffea.util.deprecate.rst", "api/coffea.util.load.rst", "api/coffea.util.rewrap_recordarray.rst", "api/coffea.util.rich_bar.rst", "api/coffea.util.save.rst", "concepts.rst", "examples.rst", "index.rst", "installation.rst", "modules/coffea.analysis_tools.rst", "modules/coffea.btag_tools.rst", "modules/coffea.dataset_tools.rst", "modules/coffea.jetmet_tools.rst", "modules/coffea.lookup_tools.rst", "modules/coffea.lumi_tools.rst", "modules/coffea.ml_tools.rst", "modules/coffea.nanoevents.rst", "modules/coffea.nanoevents.methods.base.rst", "modules/coffea.nanoevents.methods.candidate.rst", "modules/coffea.nanoevents.methods.nanoaod.rst", "modules/coffea.nanoevents.methods.vector.rst", "modules/coffea.processor.rst", "modules/coffea.util.rst", "notebooks/applying_corrections.ipynb", "notebooks/dataset_discovery.ipynb", "notebooks/mltools.ipynb", "notebooks/nanoevents.ipynb", "notebooks/packedselection.ipynb", "notebooks/processor.ipynb", "reference.rst", "wq.rst"], "indexentries": {"__call__() (coffea.btag_tools.btagscalefactor method)": [[7, "coffea.btag_tools.BTagScaleFactor.__call__", false]], "__call__() (coffea.lumi_tools.lumimask method)": [[29, "coffea.lumi_tools.LumiMask.__call__", false]], "__call__() (coffea.ml_tools.numpy_call_wrapper method)": [[30, "coffea.ml_tools.numpy_call_wrapper.__call__", false]], "absolute() (coffea.nanoevents.methods.vector.lorentzvector method)": [[67, "coffea.nanoevents.methods.vector.LorentzVector.absolute", false]], "absolute() (coffea.nanoevents.methods.vector.threevector method)": [[72, "coffea.nanoevents.methods.vector.ThreeVector.absolute", false]], "absolute() (coffea.nanoevents.methods.vector.twovector method)": [[73, "coffea.nanoevents.methods.vector.TwoVector.absolute", false]], "add() (coffea.analysis_tools.packedselection method)": [[4, "coffea.analysis_tools.PackedSelection.add", false]], "add() (coffea.analysis_tools.weights method)": [[6, "coffea.analysis_tools.Weights.add", false]], "add() (coffea.analysis_tools.weightstatistics method)": [[5, "coffea.analysis_tools.WeightStatistics.add", false]], "add() (coffea.nanoevents.methods.candidate.candidate method)": [[47, "coffea.nanoevents.methods.candidate.Candidate.add", false]], "add_kind() (coffea.nanoevents.methods.base.systematic class method)": [[46, "coffea.nanoevents.methods.base.Systematic.add_kind", false]], "add_multiple() (coffea.analysis_tools.packedselection method)": [[4, "coffea.analysis_tools.PackedSelection.add_multiple", false]], "add_multivariation() (coffea.analysis_tools.weights method)": [[6, "coffea.analysis_tools.Weights.add_multivariation", false]], "add_systematic() (coffea.nanoevents.methods.base.systematic method)": [[46, "coffea.nanoevents.methods.base.Systematic.add_systematic", false]], "add_weight_set() (coffea.lookup_tools.extractor method)": [[26, "coffea.lookup_tools.extractor.add_weight_set", false]], "add_weight_sets() (coffea.lookup_tools.extractor method)": [[26, "coffea.lookup_tools.extractor.add_weight_sets", false]], "all() (coffea.analysis_tools.packedselection method)": [[4, "coffea.analysis_tools.PackedSelection.all", false]], "all_cross_references (coffea.nanoevents.nanoaodschema attribute)": [[37, "coffea.nanoevents.NanoAODSchema.all_cross_references", false]], "all_cross_references (coffea.nanoevents.pfnanoaodschema attribute)": [[40, "coffea.nanoevents.PFNanoAODSchema.all_cross_references", false]], "all_cross_references (coffea.nanoevents.scoutingnanoaodschema attribute)": [[42, "coffea.nanoevents.ScoutingNanoAODSchema.all_cross_references", false]], "allfalse() (coffea.analysis_tools.packedselection method)": [[4, "coffea.analysis_tools.PackedSelection.allfalse", false]], "any() (coffea.analysis_tools.packedselection method)": [[4, "coffea.analysis_tools.PackedSelection.any", false]], "apply_to_dataset() (in module coffea.dataset_tools)": [[8, "coffea.dataset_tools.apply_to_dataset", false]], "apply_to_fileset() (in module coffea.dataset_tools)": [[9, "coffea.dataset_tools.apply_to_fileset", false]], "associatedpfcand (class in coffea.nanoevents.methods.nanoaod)": [[50, "coffea.nanoevents.methods.nanoaod.AssociatedPFCand", false]], "associatedsv (class in coffea.nanoevents.methods.nanoaod)": [[51, "coffea.nanoevents.methods.nanoaod.AssociatedSV", false]], "awkward_rewrap() (in module coffea.util)": [[76, "coffea.util.awkward_rewrap", false]], "baseschema (class in coffea.nanoevents)": [[35, "coffea.nanoevents.BaseSchema", false]], "batch_size (coffea.ml_tools.triton_wrapper attribute)": [[33, "coffea.ml_tools.triton_wrapper.batch_size", false]], "batch_size_fallback (coffea.ml_tools.triton_wrapper attribute)": [[33, "coffea.ml_tools.triton_wrapper.batch_size_fallback", false]], "behavior() (coffea.nanoevents.baseschema class method)": [[35, "coffea.nanoevents.BaseSchema.behavior", false]], "behavior() (coffea.nanoevents.delphesschema class method)": [[36, "coffea.nanoevents.DelphesSchema.behavior", false]], "behavior() (coffea.nanoevents.nanoaodschema class method)": [[37, "coffea.nanoevents.NanoAODSchema.behavior", false]], "behavior() (coffea.nanoevents.pduneschema class method)": [[39, "coffea.nanoevents.PDUNESchema.behavior", false]], "behavior() (coffea.nanoevents.physliteschema class method)": [[41, "coffea.nanoevents.PHYSLITESchema.behavior", false]], "behavior() (coffea.nanoevents.treemakerschema class method)": [[43, "coffea.nanoevents.TreeMakerSchema.behavior", false]], "blank_name_map (coffea.jetmet_tools.jecstack attribute)": [[21, "coffea.jetmet_tools.JECStack.blank_name_map", false]], "boostvec (coffea.nanoevents.methods.vector.lorentzvector attribute)": [[67, "coffea.nanoevents.methods.vector.LorentzVector.boostvec", false]], "btagscalefactor (class in coffea.btag_tools)": [[7, "coffea.btag_tools.BTagScaleFactor", false]], "build() (coffea.jetmet_tools.correctedjetsfactory method)": [[18, "coffea.jetmet_tools.CorrectedJetsFactory.build", false]], "build() (coffea.jetmet_tools.correctedmetfactory method)": [[19, "coffea.jetmet_tools.CorrectedMETFactory.build", false]], "candidate (class in coffea.nanoevents.methods.candidate)": [[47, "coffea.nanoevents.methods.candidate.Candidate", false]], "charge (coffea.nanoevents.methods.nanoaod.fatjet attribute)": [[53, "coffea.nanoevents.methods.nanoaod.FatJet.charge", false]], "charge (coffea.nanoevents.methods.nanoaod.jet attribute)": [[57, "coffea.nanoevents.methods.nanoaod.Jet.charge", false]], "charge (coffea.nanoevents.methods.nanoaod.photon attribute)": [[62, "coffea.nanoevents.methods.nanoaod.Photon.charge", false]], "children (coffea.nanoevents.methods.nanoaod.genparticle attribute)": [[55, "coffea.nanoevents.methods.nanoaod.GenParticle.children", false]], "clear() (coffea.lumi_tools.lumilist method)": [[28, "coffea.lumi_tools.LumiList.clear", false]], "client_args (coffea.ml_tools.triton_wrapper attribute)": [[33, "coffea.ml_tools.triton_wrapper.client_args", false]], "coffea.analysis_tools": [[88, "module-coffea.analysis_tools", false]], "coffea.btag_tools": [[89, "module-coffea.btag_tools", false]], "coffea.dataset_tools": [[90, "module-coffea.dataset_tools", false]], "coffea.jetmet_tools": [[91, "module-coffea.jetmet_tools", false]], "coffea.lookup_tools": [[92, "module-coffea.lookup_tools", false]], "coffea.lumi_tools": [[93, "module-coffea.lumi_tools", false]], "coffea.ml_tools": [[94, "module-coffea.ml_tools", false]], "coffea.nanoevents": [[95, "module-coffea.nanoevents", false]], "coffea.nanoevents.methods.base": [[96, "module-coffea.nanoevents.methods.base", false]], "coffea.nanoevents.methods.candidate": [[97, "module-coffea.nanoevents.methods.candidate", false]], "coffea.nanoevents.methods.nanoaod": [[98, "module-coffea.nanoevents.methods.nanoaod", false]], "coffea.nanoevents.methods.vector": [[99, "module-coffea.nanoevents.methods.vector", false]], "coffea.processor": [[100, "module-coffea.processor", false]], "coffea.util": [[101, "module-coffea.util", false]], "collection_map (coffea.nanoevents.methods.nanoaod.associatedpfcand attribute)": [[50, "coffea.nanoevents.methods.nanoaod.AssociatedPFCand.collection_map", false]], "collection_map (coffea.nanoevents.methods.nanoaod.associatedsv attribute)": [[51, "coffea.nanoevents.methods.nanoaod.AssociatedSV.collection_map", false]], "compress_form() (in module coffea.util)": [[77, "coffea.util.compress_form", false]], "compute() (coffea.analysis_tools.cutflowtonpz method)": [[1, "coffea.analysis_tools.CutflowToNpz.compute", false]], "compute() (coffea.analysis_tools.nminusonetonpz method)": [[3, "coffea.analysis_tools.NminusOneToNpz.compute", false]], "constituents (coffea.nanoevents.methods.nanoaod.fatjet attribute)": [[53, "coffea.nanoevents.methods.nanoaod.FatJet.constituents", false]], "constituents (coffea.nanoevents.methods.nanoaod.jet attribute)": [[57, "coffea.nanoevents.methods.nanoaod.Jet.constituents", false]], "correctedjetsfactory (class in coffea.jetmet_tools)": [[18, "coffea.jetmet_tools.CorrectedJetsFactory", false]], "correctedmetfactory (class in coffea.jetmet_tools)": [[19, "coffea.jetmet_tools.CorrectedMETFactory", false]], "cutflow (class in coffea.analysis_tools)": [[0, "coffea.analysis_tools.Cutflow", false]], "cutflow() (coffea.analysis_tools.packedselection method)": [[4, "coffea.analysis_tools.PackedSelection.cutflow", false]], "cutflowtonpz (class in coffea.analysis_tools)": [[1, "coffea.analysis_tools.CutflowToNpz", false]], "decompress_form() (in module coffea.util)": [[78, "coffea.util.decompress_form", false]], "delayed_mode (coffea.analysis_tools.packedselection attribute)": [[4, "coffea.analysis_tools.PackedSelection.delayed_mode", false]], "delphesschema (class in coffea.nanoevents)": [[36, "coffea.nanoevents.DelphesSchema", false]], "delta_phi() (coffea.nanoevents.methods.vector.lorentzvector method)": [[67, "coffea.nanoevents.methods.vector.LorentzVector.delta_phi", false]], "delta_phi() (coffea.nanoevents.methods.vector.threevector method)": [[72, "coffea.nanoevents.methods.vector.ThreeVector.delta_phi", false]], "delta_phi() (coffea.nanoevents.methods.vector.twovector method)": [[73, "coffea.nanoevents.methods.vector.TwoVector.delta_phi", false]], "delta_r() (coffea.nanoevents.methods.vector.lorentzvector method)": [[67, "coffea.nanoevents.methods.vector.LorentzVector.delta_r", false]], "delta_r2() (coffea.nanoevents.methods.vector.lorentzvector method)": [[67, "coffea.nanoevents.methods.vector.LorentzVector.delta_r2", false]], "deprecate() (in module coffea.util)": [[79, "coffea.util.deprecate", false]], "describe_variations() (coffea.nanoevents.methods.base.systematic method)": [[46, "coffea.nanoevents.methods.base.Systematic.describe_variations", false]], "distinctchildren (coffea.nanoevents.methods.nanoaod.genparticle attribute)": [[55, "coffea.nanoevents.methods.nanoaod.GenParticle.distinctChildren", false]], "distinctchildrendeep (coffea.nanoevents.methods.nanoaod.genparticle attribute)": [[55, "coffea.nanoevents.methods.nanoaod.GenParticle.distinctChildrenDeep", false]], "distinctparent (coffea.nanoevents.methods.nanoaod.genparticle attribute)": [[55, "coffea.nanoevents.methods.nanoaod.GenParticle.distinctParent", false]], "divide() (coffea.nanoevents.methods.vector.lorentzvector method)": [[67, "coffea.nanoevents.methods.vector.LorentzVector.divide", false]], "divide() (coffea.nanoevents.methods.vector.ptetaphielorentzvector method)": [[69, "coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector.divide", false]], "divide() (coffea.nanoevents.methods.vector.ptetaphimlorentzvector method)": [[70, "coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector.divide", false]], "divide() (coffea.nanoevents.methods.vector.threevector method)": [[72, "coffea.nanoevents.methods.vector.ThreeVector.divide", false]], "divide() (coffea.nanoevents.methods.vector.twovector method)": [[73, "coffea.nanoevents.methods.vector.TwoVector.divide", false]], "docstrings (coffea.nanoevents.delphesschema attribute)": [[36, "coffea.nanoevents.DelphesSchema.docstrings", false]], "electron (class in coffea.nanoevents.methods.nanoaod)": [[52, "coffea.nanoevents.methods.nanoaod.Electron", false]], "error_missing_event_ids (coffea.nanoevents.nanoaodschema attribute)": [[37, "coffea.nanoevents.NanoAODSchema.error_missing_event_ids", false]], "eval() (coffea.btag_tools.btagscalefactor method)": [[7, "coffea.btag_tools.BTagScaleFactor.eval", false]], "evaluator (class in coffea.lookup_tools)": [[25, "coffea.lookup_tools.evaluator", false]], "event_ids (coffea.nanoevents.nanoaodschema attribute)": [[37, "coffea.nanoevents.NanoAODSchema.event_ids", false]], "events() (coffea.nanoevents.nanoeventsfactory method)": [[38, "coffea.nanoevents.NanoEventsFactory.events", false]], "explodes_how() (coffea.nanoevents.methods.base.systematic method)": [[46, "coffea.nanoevents.methods.base.Systematic.explodes_how", false]], "extract_from_file() (coffea.lookup_tools.extractor method)": [[26, "coffea.lookup_tools.extractor.extract_from_file", false]], "extractor (class in coffea.lookup_tools)": [[26, "coffea.lookup_tools.extractor", false]], "factorizedjetcorrector (class in coffea.jetmet_tools)": [[20, "coffea.jetmet_tools.FactorizedJetCorrector", false]], "fail (coffea.nanoevents.methods.nanoaod.electron attribute)": [[52, "coffea.nanoevents.methods.nanoaod.Electron.FAIL", false]], "fail (coffea.nanoevents.methods.nanoaod.photon attribute)": [[62, "coffea.nanoevents.methods.nanoaod.Photon.FAIL", false]], "fatjet (class in coffea.nanoevents.methods.nanoaod)": [[53, "coffea.nanoevents.methods.nanoaod.FatJet", false]], "file (coffea.analysis_tools.cutflowtonpz attribute)": [[1, "coffea.analysis_tools.CutflowToNpz.file", false]], "file (coffea.analysis_tools.nminusonetonpz attribute)": [[3, "coffea.analysis_tools.NminusOneToNpz.file", false]], "filter_files() (in module coffea.dataset_tools)": [[10, "coffea.dataset_tools.filter_files", false]], "finalize() (coffea.lookup_tools.extractor method)": [[26, "coffea.lookup_tools.extractor.finalize", false]], "flags (coffea.nanoevents.methods.nanoaod.genparticle attribute)": [[55, "coffea.nanoevents.methods.nanoaod.GenParticle.FLAGS", false]], "flav_b (coffea.btag_tools.btagscalefactor attribute)": [[7, "coffea.btag_tools.BTagScaleFactor.FLAV_B", false]], "flav_c (coffea.btag_tools.btagscalefactor attribute)": [[7, "coffea.btag_tools.BTagScaleFactor.FLAV_C", false]], "flav_udsg (coffea.btag_tools.btagscalefactor attribute)": [[7, "coffea.btag_tools.BTagScaleFactor.FLAV_UDSG", false]], "form (coffea.nanoevents.baseschema attribute)": [[35, "coffea.nanoevents.BaseSchema.form", false]], "from_parquet() (coffea.nanoevents.nanoeventsfactory class method)": [[38, "coffea.nanoevents.NanoEventsFactory.from_parquet", false]], "from_preloaded() (coffea.nanoevents.nanoeventsfactory class method)": [[38, "coffea.nanoevents.NanoEventsFactory.from_preloaded", false]], "from_root() (coffea.nanoevents.nanoeventsfactory class method)": [[38, "coffea.nanoevents.NanoEventsFactory.from_root", false]], "fsrphoton (class in coffea.nanoevents.methods.nanoaod)": [[54, "coffea.nanoevents.methods.nanoaod.FsrPhoton", false]], "genparticle (class in coffea.nanoevents.methods.nanoaod)": [[55, "coffea.nanoevents.methods.nanoaod.GenParticle", false]], "genvistau (class in coffea.nanoevents.methods.nanoaod)": [[56, "coffea.nanoevents.methods.nanoaod.GenVisTau", false]], "get_awkward_lib() (coffea.ml_tools.numpy_call_wrapper method)": [[30, "coffea.ml_tools.numpy_call_wrapper.get_awkward_lib", false]], "get_failed_steps_for_dataset() (in module coffea.dataset_tools)": [[11, "coffea.dataset_tools.get_failed_steps_for_dataset", false]], "get_failed_steps_for_fileset() (in module coffea.dataset_tools)": [[12, "coffea.dataset_tools.get_failed_steps_for_fileset", false]], "get_lumi() (coffea.lumi_tools.lumidata method)": [[27, "coffea.lumi_tools.LumiData.get_lumi", false]], "getcorrection() (coffea.jetmet_tools.factorizedjetcorrector method)": [[20, "coffea.jetmet_tools.FactorizedJetCorrector.getCorrection", false]], "getresolution() (coffea.jetmet_tools.jetresolution method)": [[23, "coffea.jetmet_tools.JetResolution.getResolution", false]], "getscalefactor() (coffea.jetmet_tools.jetresolutionscalefactor method)": [[24, "coffea.jetmet_tools.JetResolutionScaleFactor.getScaleFactor", false]], "getsubcorrections() (coffea.jetmet_tools.factorizedjetcorrector method)": [[20, "coffea.jetmet_tools.FactorizedJetCorrector.getSubCorrections", false]], "getuncertainty() (coffea.jetmet_tools.jetcorrectionuncertainty method)": [[22, "coffea.jetmet_tools.JetCorrectionUncertainty.getUncertainty", false]], "hasflags() (coffea.nanoevents.methods.nanoaod.genparticle method)": [[55, "coffea.nanoevents.methods.nanoaod.GenParticle.hasFlags", false]], "http_client_concurrency (coffea.ml_tools.triton_wrapper attribute)": [[33, "coffea.ml_tools.triton_wrapper.http_client_concurrency", false]], "identity() (coffea.analysis_tools.weightstatistics method)": [[5, "coffea.analysis_tools.WeightStatistics.identity", false]], "import_file() (coffea.lookup_tools.extractor method)": [[26, "coffea.lookup_tools.extractor.import_file", false]], "isloose (coffea.nanoevents.methods.nanoaod.electron attribute)": [[52, "coffea.nanoevents.methods.nanoaod.Electron.isLoose", false]], "isloose (coffea.nanoevents.methods.nanoaod.fatjet attribute)": [[53, "coffea.nanoevents.methods.nanoaod.FatJet.isLoose", false]], "isloose (coffea.nanoevents.methods.nanoaod.jet attribute)": [[57, "coffea.nanoevents.methods.nanoaod.Jet.isLoose", false]], "isloose (coffea.nanoevents.methods.nanoaod.photon attribute)": [[62, "coffea.nanoevents.methods.nanoaod.Photon.isLoose", false]], "ismedium (coffea.nanoevents.methods.nanoaod.electron attribute)": [[52, "coffea.nanoevents.methods.nanoaod.Electron.isMedium", false]], "ismedium (coffea.nanoevents.methods.nanoaod.photon attribute)": [[62, "coffea.nanoevents.methods.nanoaod.Photon.isMedium", false]], "istight (coffea.nanoevents.methods.nanoaod.electron attribute)": [[52, "coffea.nanoevents.methods.nanoaod.Electron.isTight", false]], "istight (coffea.nanoevents.methods.nanoaod.fatjet attribute)": [[53, "coffea.nanoevents.methods.nanoaod.FatJet.isTight", false]], "istight (coffea.nanoevents.methods.nanoaod.jet attribute)": [[57, "coffea.nanoevents.methods.nanoaod.Jet.isTight", false]], "istight (coffea.nanoevents.methods.nanoaod.photon attribute)": [[62, "coffea.nanoevents.methods.nanoaod.Photon.isTight", false]], "istightleptonveto (coffea.nanoevents.methods.nanoaod.fatjet attribute)": [[53, "coffea.nanoevents.methods.nanoaod.FatJet.isTightLeptonVeto", false]], "istightleptonveto (coffea.nanoevents.methods.nanoaod.jet attribute)": [[57, "coffea.nanoevents.methods.nanoaod.Jet.isTightLeptonVeto", false]], "isveto (coffea.nanoevents.methods.nanoaod.electron attribute)": [[52, "coffea.nanoevents.methods.nanoaod.Electron.isVeto", false]], "jec (coffea.jetmet_tools.jecstack attribute)": [[21, "coffea.jetmet_tools.JECStack.jec", false]], "jecstack (class in coffea.jetmet_tools)": [[21, "coffea.jetmet_tools.JECStack", false]], "jer (coffea.jetmet_tools.jecstack attribute)": [[21, "coffea.jetmet_tools.JECStack.jer", false]], "jersf (coffea.jetmet_tools.jecstack attribute)": [[21, "coffea.jetmet_tools.JECStack.jersf", false]], "jet (class in coffea.nanoevents.methods.nanoaod)": [[57, "coffea.nanoevents.methods.nanoaod.Jet", false]], "jet (coffea.nanoevents.methods.nanoaod.associatedpfcand attribute)": [[50, "coffea.nanoevents.methods.nanoaod.AssociatedPFCand.jet", false]], "jet (coffea.nanoevents.methods.nanoaod.associatedsv attribute)": [[51, "coffea.nanoevents.methods.nanoaod.AssociatedSV.jet", false]], "jetcorrectionuncertainty (class in coffea.jetmet_tools)": [[22, "coffea.jetmet_tools.JetCorrectionUncertainty", false]], "jetresolution (class in coffea.jetmet_tools)": [[23, "coffea.jetmet_tools.JetResolution", false]], "jetresolutionscalefactor (class in coffea.jetmet_tools)": [[24, "coffea.jetmet_tools.JetResolutionScaleFactor", false]], "junc (coffea.jetmet_tools.jecstack attribute)": [[21, "coffea.jetmet_tools.JECStack.junc", false]], "keys() (coffea.lookup_tools.evaluator method)": [[25, "coffea.lookup_tools.evaluator.keys", false]], "labels (coffea.analysis_tools.cutflowtonpz attribute)": [[1, "coffea.analysis_tools.CutflowToNpz.labels", false]], "labels (coffea.analysis_tools.nminusonetonpz attribute)": [[3, "coffea.analysis_tools.NminusOneToNpz.labels", false]], "levels (coffea.jetmet_tools.jetcorrectionuncertainty attribute)": [[22, "coffea.jetmet_tools.JetCorrectionUncertainty.levels", false]], "load() (in module coffea.util)": [[80, "coffea.util.load", false]], "loose (coffea.btag_tools.btagscalefactor attribute)": [[7, "coffea.btag_tools.BTagScaleFactor.LOOSE", false]], "loose (coffea.nanoevents.methods.nanoaod.electron attribute)": [[52, "coffea.nanoevents.methods.nanoaod.Electron.LOOSE", false]], "loose (coffea.nanoevents.methods.nanoaod.fatjet attribute)": [[53, "coffea.nanoevents.methods.nanoaod.FatJet.LOOSE", false]], "loose (coffea.nanoevents.methods.nanoaod.jet attribute)": [[57, "coffea.nanoevents.methods.nanoaod.Jet.LOOSE", false]], "loose (coffea.nanoevents.methods.nanoaod.photon attribute)": [[62, "coffea.nanoevents.methods.nanoaod.Photon.LOOSE", false]], "lorentzvector (class in coffea.nanoevents.methods.vector)": [[67, "coffea.nanoevents.methods.vector.LorentzVector", false]], "lowptelectron (class in coffea.nanoevents.methods.nanoaod)": [[58, "coffea.nanoevents.methods.nanoaod.LowPtElectron", false]], "lumidata (class in coffea.lumi_tools)": [[27, "coffea.lumi_tools.LumiData", false]], "lumilist (class in coffea.lumi_tools)": [[28, "coffea.lumi_tools.LumiList", false]], "lumimask (class in coffea.lumi_tools)": [[29, "coffea.lumi_tools.LumiMask", false]], "make_evaluator() (coffea.lookup_tools.extractor method)": [[26, "coffea.lookup_tools.extractor.make_evaluator", false]], "masks (coffea.analysis_tools.nminusonetonpz attribute)": [[3, "coffea.analysis_tools.NminusOneToNpz.masks", false]], "maskscutflow (coffea.analysis_tools.cutflowtonpz attribute)": [[1, "coffea.analysis_tools.CutflowToNpz.maskscutflow", false]], "masksonecut (coffea.analysis_tools.cutflowtonpz attribute)": [[1, "coffea.analysis_tools.CutflowToNpz.masksonecut", false]], "mass (coffea.nanoevents.methods.nanoaod.photon attribute)": [[62, "coffea.nanoevents.methods.nanoaod.Photon.mass", false]], "matched_electron (coffea.nanoevents.methods.nanoaod.lowptelectron attribute)": [[58, "coffea.nanoevents.methods.nanoaod.LowPtElectron.matched_electron", false]], "matched_electron (coffea.nanoevents.methods.nanoaod.photon attribute)": [[62, "coffea.nanoevents.methods.nanoaod.Photon.matched_electron", false]], "matched_electrons (coffea.nanoevents.methods.nanoaod.jet attribute)": [[57, "coffea.nanoevents.methods.nanoaod.Jet.matched_electrons", false]], "matched_fsrphoton (coffea.nanoevents.methods.nanoaod.muon attribute)": [[60, "coffea.nanoevents.methods.nanoaod.Muon.matched_fsrPhoton", false]], "matched_gen (coffea.nanoevents.methods.nanoaod.electron attribute)": [[52, "coffea.nanoevents.methods.nanoaod.Electron.matched_gen", false]], "matched_gen (coffea.nanoevents.methods.nanoaod.fatjet attribute)": [[53, "coffea.nanoevents.methods.nanoaod.FatJet.matched_gen", false]], "matched_gen (coffea.nanoevents.methods.nanoaod.jet attribute)": [[57, "coffea.nanoevents.methods.nanoaod.Jet.matched_gen", false]], "matched_gen (coffea.nanoevents.methods.nanoaod.lowptelectron attribute)": [[58, "coffea.nanoevents.methods.nanoaod.LowPtElectron.matched_gen", false]], "matched_gen (coffea.nanoevents.methods.nanoaod.muon attribute)": [[60, "coffea.nanoevents.methods.nanoaod.Muon.matched_gen", false]], "matched_gen (coffea.nanoevents.methods.nanoaod.photon attribute)": [[62, "coffea.nanoevents.methods.nanoaod.Photon.matched_gen", false]], "matched_gen (coffea.nanoevents.methods.nanoaod.tau attribute)": [[65, "coffea.nanoevents.methods.nanoaod.Tau.matched_gen", false]], "matched_jet (coffea.nanoevents.methods.nanoaod.electron attribute)": [[52, "coffea.nanoevents.methods.nanoaod.Electron.matched_jet", false]], "matched_jet (coffea.nanoevents.methods.nanoaod.muon attribute)": [[60, "coffea.nanoevents.methods.nanoaod.Muon.matched_jet", false]], "matched_jet (coffea.nanoevents.methods.nanoaod.photon attribute)": [[62, "coffea.nanoevents.methods.nanoaod.Photon.matched_jet", false]], "matched_jet (coffea.nanoevents.methods.nanoaod.tau attribute)": [[65, "coffea.nanoevents.methods.nanoaod.Tau.matched_jet", false]], "matched_muon (coffea.nanoevents.methods.nanoaod.fsrphoton attribute)": [[54, "coffea.nanoevents.methods.nanoaod.FsrPhoton.matched_muon", false]], "matched_muons (coffea.nanoevents.methods.nanoaod.jet attribute)": [[57, "coffea.nanoevents.methods.nanoaod.Jet.matched_muons", false]], "matched_photon (coffea.nanoevents.methods.nanoaod.electron attribute)": [[52, "coffea.nanoevents.methods.nanoaod.Electron.matched_photon", false]], "matched_photon (coffea.nanoevents.methods.nanoaod.lowptelectron attribute)": [[58, "coffea.nanoevents.methods.nanoaod.LowPtElectron.matched_photon", false]], "max_chunks() (in module coffea.dataset_tools)": [[13, "coffea.dataset_tools.max_chunks", false]], "max_files() (in module coffea.dataset_tools)": [[14, "coffea.dataset_tools.max_files", false]], "maxitems (coffea.analysis_tools.packedselection attribute)": [[4, "coffea.analysis_tools.PackedSelection.maxitems", false]], "medium (coffea.btag_tools.btagscalefactor attribute)": [[7, "coffea.btag_tools.BTagScaleFactor.MEDIUM", false]], "medium (coffea.nanoevents.methods.nanoaod.electron attribute)": [[52, "coffea.nanoevents.methods.nanoaod.Electron.MEDIUM", false]], "medium (coffea.nanoevents.methods.nanoaod.photon attribute)": [[62, "coffea.nanoevents.methods.nanoaod.Photon.MEDIUM", false]], "metadata (coffea.nanoevents.methods.base.nanoevents attribute)": [[45, "coffea.nanoevents.methods.base.NanoEvents.metadata", false]], "metric_table (coffea.nanoevents.methods.vector.lorentzvector attribute)": [[67, "coffea.nanoevents.methods.vector.LorentzVector.metric_table", false]], "missinget (class in coffea.nanoevents.methods.nanoaod)": [[59, "coffea.nanoevents.methods.nanoaod.MissingET", false]], "mixins (coffea.nanoevents.delphesschema attribute)": [[36, "coffea.nanoevents.DelphesSchema.mixins", false]], "mixins (coffea.nanoevents.nanoaodschema attribute)": [[37, "coffea.nanoevents.NanoAODSchema.mixins", false]], "mixins (coffea.nanoevents.pduneschema attribute)": [[39, "coffea.nanoevents.PDUNESchema.mixins", false]], "mixins (coffea.nanoevents.pfnanoaodschema attribute)": [[40, "coffea.nanoevents.PFNanoAODSchema.mixins", false]], "mixins (coffea.nanoevents.physliteschema attribute)": [[41, "coffea.nanoevents.PHYSLITESchema.mixins", false]], "mixins (coffea.nanoevents.scoutingnanoaodschema attribute)": [[42, "coffea.nanoevents.ScoutingNanoAODSchema.mixins", false]], "module": [[88, "module-coffea.analysis_tools", false], [89, "module-coffea.btag_tools", false], [90, "module-coffea.dataset_tools", false], [91, "module-coffea.jetmet_tools", false], [92, "module-coffea.lookup_tools", false], [93, "module-coffea.lumi_tools", false], [94, "module-coffea.ml_tools", false], [95, "module-coffea.nanoevents", false], [96, "module-coffea.nanoevents.methods.base", false], [97, "module-coffea.nanoevents.methods.candidate", false], [98, "module-coffea.nanoevents.methods.nanoaod", false], [99, "module-coffea.nanoevents.methods.vector", false], [100, "module-coffea.processor", false], [101, "module-coffea.util", false]], "multiply() (coffea.nanoevents.methods.vector.lorentzvector method)": [[67, "coffea.nanoevents.methods.vector.LorentzVector.multiply", false]], "multiply() (coffea.nanoevents.methods.vector.polartwovector method)": [[68, "coffea.nanoevents.methods.vector.PolarTwoVector.multiply", false]], "multiply() (coffea.nanoevents.methods.vector.ptetaphielorentzvector method)": [[69, "coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector.multiply", false]], "multiply() (coffea.nanoevents.methods.vector.ptetaphimlorentzvector method)": [[70, "coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector.multiply", false]], "multiply() (coffea.nanoevents.methods.vector.sphericalthreevector method)": [[71, "coffea.nanoevents.methods.vector.SphericalThreeVector.multiply", false]], "multiply() (coffea.nanoevents.methods.vector.threevector method)": [[72, "coffea.nanoevents.methods.vector.ThreeVector.multiply", false]], "multiply() (coffea.nanoevents.methods.vector.twovector method)": [[73, "coffea.nanoevents.methods.vector.TwoVector.multiply", false]], "muon (class in coffea.nanoevents.methods.nanoaod)": [[60, "coffea.nanoevents.methods.nanoaod.Muon", false]], "names (coffea.analysis_tools.packedselection attribute)": [[4, "coffea.analysis_tools.PackedSelection.names", false]], "nanoaodschema (class in coffea.nanoevents)": [[37, "coffea.nanoevents.NanoAODSchema", false]], "nanocollection (class in coffea.nanoevents.methods.base)": [[44, "coffea.nanoevents.methods.base.NanoCollection", false]], "nanoevents (class in coffea.nanoevents.methods.base)": [[45, "coffea.nanoevents.methods.base.NanoEvents", false]], "nanoeventsfactory (class in coffea.nanoevents)": [[38, "coffea.nanoevents.NanoEventsFactory", false]], "nearest (coffea.nanoevents.methods.vector.lorentzvector attribute)": [[67, "coffea.nanoevents.methods.vector.LorentzVector.nearest", false]], "negative() (coffea.nanoevents.methods.vector.lorentzvector method)": [[67, "coffea.nanoevents.methods.vector.LorentzVector.negative", false]], "negative() (coffea.nanoevents.methods.vector.polartwovector method)": [[68, "coffea.nanoevents.methods.vector.PolarTwoVector.negative", false]], "negative() (coffea.nanoevents.methods.vector.ptetaphielorentzvector method)": [[69, "coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector.negative", false]], "negative() (coffea.nanoevents.methods.vector.ptetaphimlorentzvector method)": [[70, "coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector.negative", false]], "negative() (coffea.nanoevents.methods.vector.sphericalthreevector method)": [[71, "coffea.nanoevents.methods.vector.SphericalThreeVector.negative", false]], "negative() (coffea.nanoevents.methods.vector.threevector method)": [[72, "coffea.nanoevents.methods.vector.ThreeVector.negative", false]], "negative() (coffea.nanoevents.methods.vector.twovector method)": [[73, "coffea.nanoevents.methods.vector.TwoVector.negative", false]], "nested_index_items (coffea.nanoevents.nanoaodschema attribute)": [[37, "coffea.nanoevents.NanoAODSchema.nested_index_items", false]], "nested_items (coffea.nanoevents.nanoaodschema attribute)": [[37, "coffea.nanoevents.NanoAODSchema.nested_items", false]], "nev (coffea.analysis_tools.nminusonetonpz attribute)": [[3, "coffea.analysis_tools.NminusOneToNpz.nev", false]], "nevcutflow (coffea.analysis_tools.cutflowtonpz attribute)": [[1, "coffea.analysis_tools.CutflowToNpz.nevcutflow", false]], "nevonecut (coffea.analysis_tools.cutflowtonpz attribute)": [[1, "coffea.analysis_tools.CutflowToNpz.nevonecut", false]], "nminusone (class in coffea.analysis_tools)": [[2, "coffea.analysis_tools.NminusOne", false]], "nminusone() (coffea.analysis_tools.packedselection method)": [[4, "coffea.analysis_tools.PackedSelection.nminusone", false]], "nminusonetonpz (class in coffea.analysis_tools)": [[3, "coffea.analysis_tools.NminusOneToNpz", false]], "numpy_call() (coffea.ml_tools.numpy_call_wrapper method)": [[30, "coffea.ml_tools.numpy_call_wrapper.numpy_call", false]], "numpy_call() (coffea.ml_tools.tf_wrapper method)": [[31, "coffea.ml_tools.tf_wrapper.numpy_call", false]], "numpy_call() (coffea.ml_tools.torch_wrapper method)": [[32, "coffea.ml_tools.torch_wrapper.numpy_call", false]], "numpy_call() (coffea.ml_tools.triton_wrapper method)": [[33, "coffea.ml_tools.triton_wrapper.numpy_call", false]], "numpy_call() (coffea.ml_tools.xgboost_wrapper method)": [[34, "coffea.ml_tools.xgboost_wrapper.numpy_call", false]], "numpy_call_wrapper (class in coffea.ml_tools)": [[30, "coffea.ml_tools.numpy_call_wrapper", false]], "p4 (coffea.nanoevents.methods.nanoaod.secondaryvertex attribute)": [[64, "coffea.nanoevents.methods.nanoaod.SecondaryVertex.p4", false]], "packedselection (class in coffea.analysis_tools)": [[4, "coffea.analysis_tools.PackedSelection", false]], "parent (coffea.nanoevents.methods.nanoaod.genparticle attribute)": [[55, "coffea.nanoevents.methods.nanoaod.GenParticle.parent", false]], "parent (coffea.nanoevents.methods.nanoaod.genvistau attribute)": [[56, "coffea.nanoevents.methods.nanoaod.GenVisTau.parent", false]], "partial_weight() (coffea.analysis_tools.weights method)": [[6, "coffea.analysis_tools.Weights.partial_weight", false]], "pduneschema (class in coffea.nanoevents)": [[39, "coffea.nanoevents.PDUNESchema", false]], "pf (coffea.nanoevents.methods.nanoaod.associatedpfcand attribute)": [[50, "coffea.nanoevents.methods.nanoaod.AssociatedPFCand.pf", false]], "pfcand (class in coffea.nanoevents.methods.nanoaod)": [[61, "coffea.nanoevents.methods.nanoaod.PFCand", false]], "pfnanoaodschema (class in coffea.nanoevents)": [[40, "coffea.nanoevents.PFNanoAODSchema", false]], "photon (class in coffea.nanoevents.methods.nanoaod)": [[62, "coffea.nanoevents.methods.nanoaod.Photon", false]], "physliteschema (class in coffea.nanoevents)": [[41, "coffea.nanoevents.PHYSLITESchema", false]], "plot_vars() (coffea.analysis_tools.cutflow method)": [[0, "coffea.analysis_tools.Cutflow.plot_vars", false]], "plot_vars() (coffea.analysis_tools.nminusone method)": [[2, "coffea.analysis_tools.NminusOne.plot_vars", false]], "pmod (coffea.ml_tools.triton_wrapper attribute)": [[33, "coffea.ml_tools.triton_wrapper.pmod", false]], "polartwovector (class in coffea.nanoevents.methods.vector)": [[68, "coffea.nanoevents.methods.vector.PolarTwoVector", false]], "pos (coffea.nanoevents.methods.nanoaod.vertex attribute)": [[66, "coffea.nanoevents.methods.nanoaod.Vertex.pos", false]], "postprocess() (coffea.processor.processorabc method)": [[74, "coffea.processor.ProcessorABC.postprocess", false]], "postprocess_awkward() (coffea.ml_tools.numpy_call_wrapper method)": [[30, "coffea.ml_tools.numpy_call_wrapper.postprocess_awkward", false]], "prepare_awkward() (coffea.ml_tools.numpy_call_wrapper method)": [[30, "coffea.ml_tools.numpy_call_wrapper.prepare_awkward", false]], "preprocess() (in module coffea.dataset_tools)": [[15, "coffea.dataset_tools.preprocess", false]], "print() (coffea.analysis_tools.cutflow method)": [[0, "coffea.analysis_tools.Cutflow.print", false]], "print() (coffea.analysis_tools.nminusone method)": [[2, "coffea.analysis_tools.NminusOne.print", false]], "process() (coffea.processor.processorabc method)": [[74, "coffea.processor.ProcessorABC.process", false]], "processorabc (class in coffea.processor)": [[74, "coffea.processor.ProcessorABC", false]], "ptetaphiecandidate (class in coffea.nanoevents.methods.candidate)": [[48, "coffea.nanoevents.methods.candidate.PtEtaPhiECandidate", false]], "ptetaphielorentzvector (class in coffea.nanoevents.methods.vector)": [[69, "coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector", false]], "ptetaphimcandidate (class in coffea.nanoevents.methods.candidate)": [[49, "coffea.nanoevents.methods.candidate.PtEtaPhiMCandidate", false]], "ptetaphimcollection (class in coffea.nanoevents.methods.nanoaod)": [[63, "coffea.nanoevents.methods.nanoaod.PtEtaPhiMCollection", false]], "ptetaphimlorentzvector (class in coffea.nanoevents.methods.vector)": [[70, "coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector", false]], "pvec (coffea.nanoevents.methods.vector.lorentzvector attribute)": [[67, "coffea.nanoevents.methods.vector.LorentzVector.pvec", false]], "r (coffea.nanoevents.methods.nanoaod.missinget attribute)": [[59, "coffea.nanoevents.methods.nanoaod.MissingET.r", false]], "r (coffea.nanoevents.methods.vector.sphericalthreevector attribute)": [[71, "coffea.nanoevents.methods.vector.SphericalThreeVector.r", false]], "r (coffea.nanoevents.methods.vector.threevector attribute)": [[72, "coffea.nanoevents.methods.vector.ThreeVector.r", false]], "r (coffea.nanoevents.methods.vector.twovector attribute)": [[73, "coffea.nanoevents.methods.vector.TwoVector.r", false]], "r2 (coffea.nanoevents.methods.vector.threevector attribute)": [[72, "coffea.nanoevents.methods.vector.ThreeVector.r2", false]], "r2 (coffea.nanoevents.methods.vector.twovector attribute)": [[73, "coffea.nanoevents.methods.vector.TwoVector.r2", false]], "readcsv() (coffea.btag_tools.btagscalefactor class method)": [[7, "coffea.btag_tools.BTagScaleFactor.readcsv", false]], "render() (coffea.util.speedcolumn method)": [[75, "coffea.util.SpeedColumn.render", false]], "require() (coffea.analysis_tools.packedselection method)": [[4, "coffea.analysis_tools.PackedSelection.require", false]], "reshape (coffea.btag_tools.btagscalefactor attribute)": [[7, "coffea.btag_tools.BTagScaleFactor.RESHAPE", false]], "result() (coffea.analysis_tools.cutflow method)": [[0, "coffea.analysis_tools.Cutflow.result", false]], "result() (coffea.analysis_tools.nminusone method)": [[2, "coffea.analysis_tools.NminusOne.result", false]], "rewrap_recordarray() (in module coffea.util)": [[81, "coffea.util.rewrap_recordarray", false]], "rich_bar() (in module coffea.util)": [[82, "coffea.util.rich_bar", false]], "save() (in module coffea.util)": [[83, "coffea.util.save", false]], "scoutingnanoaodschema (class in coffea.nanoevents)": [[42, "coffea.nanoevents.ScoutingNanoAODSchema", false]], "secondaryvertex (class in coffea.nanoevents.methods.nanoaod)": [[64, "coffea.nanoevents.methods.nanoaod.SecondaryVertex", false]], "seconds_per_lumi_lhc (coffea.lumi_tools.lumidata attribute)": [[27, "coffea.lumi_tools.LumiData.seconds_per_lumi_LHC", false]], "signature (coffea.jetmet_tools.factorizedjetcorrector attribute)": [[20, "coffea.jetmet_tools.FactorizedJetCorrector.signature", false]], "signature (coffea.jetmet_tools.jetcorrectionuncertainty attribute)": [[22, "coffea.jetmet_tools.JetCorrectionUncertainty.signature", false]], "signature (coffea.jetmet_tools.jetresolution attribute)": [[23, "coffea.jetmet_tools.JetResolution.signature", false]], "signature (coffea.jetmet_tools.jetresolutionscalefactor attribute)": [[24, "coffea.jetmet_tools.JetResolutionScaleFactor.signature", false]], "singletons (coffea.nanoevents.delphesschema attribute)": [[36, "coffea.nanoevents.DelphesSchema.singletons", false]], "slice_chunks() (in module coffea.dataset_tools)": [[16, "coffea.dataset_tools.slice_chunks", false]], "slice_files() (in module coffea.dataset_tools)": [[17, "coffea.dataset_tools.slice_files", false]], "special_items (coffea.nanoevents.nanoaodschema attribute)": [[37, "coffea.nanoevents.NanoAODSchema.special_items", false]], "speedcolumn (class in coffea.util)": [[75, "coffea.util.SpeedColumn", false]], "sphericalthreevector (class in coffea.nanoevents.methods.vector)": [[71, "coffea.nanoevents.methods.vector.SphericalThreeVector", false]], "subjets (coffea.nanoevents.methods.nanoaod.fatjet attribute)": [[53, "coffea.nanoevents.methods.nanoaod.FatJet.subjets", false]], "sum() (coffea.nanoevents.methods.candidate.candidate method)": [[47, "coffea.nanoevents.methods.candidate.Candidate.sum", false]], "sum() (coffea.nanoevents.methods.vector.lorentzvector method)": [[67, "coffea.nanoevents.methods.vector.LorentzVector.sum", false]], "sum() (coffea.nanoevents.methods.vector.threevector method)": [[72, "coffea.nanoevents.methods.vector.ThreeVector.sum", false]], "sum() (coffea.nanoevents.methods.vector.twovector method)": [[73, "coffea.nanoevents.methods.vector.TwoVector.sum", false]], "sv (coffea.nanoevents.methods.nanoaod.associatedsv attribute)": [[51, "coffea.nanoevents.methods.nanoaod.AssociatedSV.sv", false]], "systematic (class in coffea.nanoevents.methods.base)": [[46, "coffea.nanoevents.methods.base.Systematic", false]], "systematics (coffea.nanoevents.methods.base.systematic attribute)": [[46, "coffea.nanoevents.methods.base.Systematic.systematics", false]], "tau (class in coffea.nanoevents.methods.nanoaod)": [[65, "coffea.nanoevents.methods.nanoaod.Tau", false]], "tf_wrapper (class in coffea.ml_tools)": [[31, "coffea.ml_tools.tf_wrapper", false]], "threevector (class in coffea.nanoevents.methods.vector)": [[72, "coffea.nanoevents.methods.vector.ThreeVector", false]], "tight (coffea.btag_tools.btagscalefactor attribute)": [[7, "coffea.btag_tools.BTagScaleFactor.TIGHT", false]], "tight (coffea.nanoevents.methods.nanoaod.electron attribute)": [[52, "coffea.nanoevents.methods.nanoaod.Electron.TIGHT", false]], "tight (coffea.nanoevents.methods.nanoaod.fatjet attribute)": [[53, "coffea.nanoevents.methods.nanoaod.FatJet.TIGHT", false]], "tight (coffea.nanoevents.methods.nanoaod.jet attribute)": [[57, "coffea.nanoevents.methods.nanoaod.Jet.TIGHT", false]], "tight (coffea.nanoevents.methods.nanoaod.photon attribute)": [[62, "coffea.nanoevents.methods.nanoaod.Photon.TIGHT", false]], "tightlepveto (coffea.nanoevents.methods.nanoaod.fatjet attribute)": [[53, "coffea.nanoevents.methods.nanoaod.FatJet.TIGHTLEPVETO", false]], "tightlepveto (coffea.nanoevents.methods.nanoaod.jet attribute)": [[57, "coffea.nanoevents.methods.nanoaod.Jet.TIGHTLEPVETO", false]], "to_npz() (coffea.analysis_tools.cutflow method)": [[0, "coffea.analysis_tools.Cutflow.to_npz", false]], "to_npz() (coffea.analysis_tools.nminusone method)": [[2, "coffea.analysis_tools.NminusOne.to_npz", false]], "top_objects (coffea.nanoevents.pduneschema attribute)": [[39, "coffea.nanoevents.PDUNESchema.top_objects", false]], "torch_wrapper (class in coffea.ml_tools)": [[32, "coffea.ml_tools.torch_wrapper", false]], "treemakerschema (class in coffea.nanoevents)": [[43, "coffea.nanoevents.TreeMakerSchema", false]], "triton_wrapper (class in coffea.ml_tools)": [[33, "coffea.ml_tools.triton_wrapper", false]], "truth_collections (coffea.nanoevents.physliteschema attribute)": [[41, "coffea.nanoevents.PHYSLITESchema.truth_collections", false]], "twovector (class in coffea.nanoevents.methods.vector)": [[73, "coffea.nanoevents.methods.vector.TwoVector", false]], "uncertainties() (coffea.jetmet_tools.correctedjetsfactory method)": [[18, "coffea.jetmet_tools.CorrectedJetsFactory.uncertainties", false]], "uncertainties() (coffea.jetmet_tools.correctedmetfactory method)": [[19, "coffea.jetmet_tools.CorrectedMETFactory.uncertainties", false]], "unit (coffea.nanoevents.methods.vector.threevector attribute)": [[72, "coffea.nanoevents.methods.vector.ThreeVector.unit", false]], "unit (coffea.nanoevents.methods.vector.twovector attribute)": [[73, "coffea.nanoevents.methods.vector.TwoVector.unit", false]], "uproot_writeable() (coffea.nanoevents.treemakerschema class method)": [[43, "coffea.nanoevents.TreeMakerSchema.uproot_writeable", false]], "v1() (coffea.nanoevents.delphesschema class method)": [[36, "coffea.nanoevents.DelphesSchema.v1", false]], "v5() (coffea.nanoevents.nanoaodschema class method)": [[37, "coffea.nanoevents.NanoAODSchema.v5", false]], "v6() (coffea.nanoevents.nanoaodschema class method)": [[37, "coffea.nanoevents.NanoAODSchema.v6", false]], "v7() (coffea.nanoevents.nanoaodschema class method)": [[37, "coffea.nanoevents.NanoAODSchema.v7", false]], "validate_numpy_input() (coffea.ml_tools.numpy_call_wrapper method)": [[30, "coffea.ml_tools.numpy_call_wrapper.validate_numpy_input", false]], "validate_numpy_input() (coffea.ml_tools.tf_wrapper method)": [[31, "coffea.ml_tools.tf_wrapper.validate_numpy_input", false]], "validate_numpy_input() (coffea.ml_tools.torch_wrapper method)": [[32, "coffea.ml_tools.torch_wrapper.validate_numpy_input", false]], "validate_numpy_input() (coffea.ml_tools.triton_wrapper method)": [[33, "coffea.ml_tools.triton_wrapper.validate_numpy_input", false]], "validate_numpy_input() (coffea.ml_tools.xgboost_wrapper method)": [[34, "coffea.ml_tools.xgboost_wrapper.validate_numpy_input", false]], "variations (coffea.analysis_tools.weights attribute)": [[6, "coffea.analysis_tools.Weights.variations", false]], "vertex (class in coffea.nanoevents.methods.nanoaod)": [[66, "coffea.nanoevents.methods.nanoaod.Vertex", false]], "veto (coffea.nanoevents.methods.nanoaod.electron attribute)": [[52, "coffea.nanoevents.methods.nanoaod.Electron.VETO", false]], "warn_missing_crossrefs (coffea.nanoevents.delphesschema attribute)": [[36, "coffea.nanoevents.DelphesSchema.warn_missing_crossrefs", false]], "warn_missing_crossrefs (coffea.nanoevents.nanoaodschema attribute)": [[37, "coffea.nanoevents.NanoAODSchema.warn_missing_crossrefs", false]], "weight() (coffea.analysis_tools.weights method)": [[6, "coffea.analysis_tools.Weights.weight", false]], "weights (class in coffea.analysis_tools)": [[6, "coffea.analysis_tools.Weights", false]], "weightstatistics (class in coffea.analysis_tools)": [[5, "coffea.analysis_tools.WeightStatistics", false]], "weightstatistics (coffea.analysis_tools.weights attribute)": [[6, "coffea.analysis_tools.Weights.weightStatistics", false]], "xgboost_wrapper (class in coffea.ml_tools)": [[34, "coffea.ml_tools.xgboost_wrapper", false]], "yieldhist() (coffea.analysis_tools.cutflow method)": [[0, "coffea.analysis_tools.Cutflow.yieldhist", false]], "yieldhist() (coffea.analysis_tools.nminusone method)": [[2, "coffea.analysis_tools.NminusOne.yieldhist", false]]}, "objects": {"coffea": [[88, 0, 0, "-", "analysis_tools"], [89, 0, 0, "-", "btag_tools"], [90, 0, 0, "-", "dataset_tools"], [91, 0, 0, "-", "jetmet_tools"], [92, 0, 0, "-", "lookup_tools"], [93, 0, 0, "-", "lumi_tools"], [94, 0, 0, "-", "ml_tools"], [95, 0, 0, "-", "nanoevents"], [100, 0, 0, "-", "processor"], [101, 0, 0, "-", "util"]], "coffea.analysis_tools": [[0, 1, 1, "", "Cutflow"], [1, 1, 1, "", "CutflowToNpz"], [2, 1, 1, "", "NminusOne"], [3, 1, 1, "", "NminusOneToNpz"], [4, 1, 1, "", "PackedSelection"], [5, 1, 1, "", "WeightStatistics"], [6, 1, 1, "", "Weights"]], "coffea.analysis_tools.Cutflow": [[0, 2, 1, "", "plot_vars"], [0, 2, 1, "", "print"], [0, 2, 1, "", "result"], [0, 2, 1, "", "to_npz"], [0, 2, 1, "", "yieldhist"]], "coffea.analysis_tools.CutflowToNpz": [[1, 2, 1, "", "compute"], [1, 3, 1, "", "file"], [1, 3, 1, "", "labels"], [1, 3, 1, "", "maskscutflow"], [1, 3, 1, "", "masksonecut"], [1, 3, 1, "", "nevcutflow"], [1, 3, 1, "", "nevonecut"]], "coffea.analysis_tools.NminusOne": [[2, 2, 1, "", "plot_vars"], [2, 2, 1, "", "print"], [2, 2, 1, "", "result"], [2, 2, 1, "", "to_npz"], [2, 2, 1, "", "yieldhist"]], "coffea.analysis_tools.NminusOneToNpz": [[3, 2, 1, "", "compute"], [3, 3, 1, "", "file"], [3, 3, 1, "", "labels"], [3, 3, 1, "", "masks"], [3, 3, 1, "", "nev"]], "coffea.analysis_tools.PackedSelection": [[4, 2, 1, "", "add"], [4, 2, 1, "", "add_multiple"], [4, 2, 1, "", "all"], [4, 2, 1, "", "allfalse"], [4, 2, 1, "", "any"], [4, 2, 1, "", "cutflow"], [4, 3, 1, "", "delayed_mode"], [4, 3, 1, "", "maxitems"], [4, 3, 1, "", "names"], [4, 2, 1, "", "nminusone"], [4, 2, 1, "", "require"]], "coffea.analysis_tools.WeightStatistics": [[5, 2, 1, "", "add"], [5, 2, 1, "", "identity"]], "coffea.analysis_tools.Weights": [[6, 2, 1, "", "add"], [6, 2, 1, "", "add_multivariation"], [6, 2, 1, "", "partial_weight"], [6, 3, 1, "", "variations"], [6, 2, 1, "", "weight"], [6, 3, 1, "", "weightStatistics"]], "coffea.btag_tools": [[7, 1, 1, "", "BTagScaleFactor"]], "coffea.btag_tools.BTagScaleFactor": [[7, 3, 1, "", "FLAV_B"], [7, 3, 1, "", "FLAV_C"], [7, 3, 1, "", "FLAV_UDSG"], [7, 3, 1, "", "LOOSE"], [7, 3, 1, "", "MEDIUM"], [7, 3, 1, "", "RESHAPE"], [7, 3, 1, "", "TIGHT"], [7, 2, 1, "", "__call__"], [7, 2, 1, "", "eval"], [7, 2, 1, "", "readcsv"]], "coffea.dataset_tools": [[8, 4, 1, "", "apply_to_dataset"], [9, 4, 1, "", "apply_to_fileset"], [10, 4, 1, "", "filter_files"], [11, 4, 1, "", "get_failed_steps_for_dataset"], [12, 4, 1, "", "get_failed_steps_for_fileset"], [13, 4, 1, "", "max_chunks"], [14, 4, 1, "", "max_files"], [15, 4, 1, "", "preprocess"], [16, 4, 1, "", "slice_chunks"], [17, 4, 1, "", "slice_files"]], "coffea.jetmet_tools": [[18, 1, 1, "", "CorrectedJetsFactory"], [19, 1, 1, "", "CorrectedMETFactory"], [20, 1, 1, "", "FactorizedJetCorrector"], [21, 1, 1, "", "JECStack"], [22, 1, 1, "", "JetCorrectionUncertainty"], [23, 1, 1, "", "JetResolution"], [24, 1, 1, "", "JetResolutionScaleFactor"]], "coffea.jetmet_tools.CorrectedJetsFactory": [[18, 2, 1, "", "build"], [18, 2, 1, "", "uncertainties"]], "coffea.jetmet_tools.CorrectedMETFactory": [[19, 2, 1, "", "build"], [19, 2, 1, "", "uncertainties"]], "coffea.jetmet_tools.FactorizedJetCorrector": [[20, 2, 1, "", "getCorrection"], [20, 2, 1, "", "getSubCorrections"], [20, 3, 1, "", "signature"]], "coffea.jetmet_tools.JECStack": [[21, 3, 1, "", "blank_name_map"], [21, 3, 1, "", "jec"], [21, 3, 1, "", "jer"], [21, 3, 1, "", "jersf"], [21, 3, 1, "", "junc"]], "coffea.jetmet_tools.JetCorrectionUncertainty": [[22, 2, 1, "", "getUncertainty"], [22, 3, 1, "", "levels"], [22, 3, 1, "", "signature"]], "coffea.jetmet_tools.JetResolution": [[23, 2, 1, "", "getResolution"], [23, 3, 1, "", "signature"]], "coffea.jetmet_tools.JetResolutionScaleFactor": [[24, 2, 1, "", "getScaleFactor"], [24, 3, 1, "", "signature"]], "coffea.lookup_tools": [[25, 1, 1, "", "evaluator"], [26, 1, 1, "", "extractor"]], "coffea.lookup_tools.evaluator": [[25, 2, 1, "", "keys"]], "coffea.lookup_tools.extractor": [[26, 2, 1, "", "add_weight_set"], [26, 2, 1, "", "add_weight_sets"], [26, 2, 1, "", "extract_from_file"], [26, 2, 1, "", "finalize"], [26, 2, 1, "", "import_file"], [26, 2, 1, "", "make_evaluator"]], "coffea.lumi_tools": [[27, 1, 1, "", "LumiData"], [28, 1, 1, "", "LumiList"], [29, 1, 1, "", "LumiMask"]], "coffea.lumi_tools.LumiData": [[27, 2, 1, "", "get_lumi"], [27, 3, 1, "", "seconds_per_lumi_LHC"]], "coffea.lumi_tools.LumiList": [[28, 2, 1, "", "clear"]], "coffea.lumi_tools.LumiMask": [[29, 2, 1, "", "__call__"]], "coffea.ml_tools": [[30, 1, 1, "", "numpy_call_wrapper"], [31, 1, 1, "", "tf_wrapper"], [32, 1, 1, "", "torch_wrapper"], [33, 1, 1, "", "triton_wrapper"], [34, 1, 1, "", "xgboost_wrapper"]], "coffea.ml_tools.numpy_call_wrapper": [[30, 2, 1, "", "__call__"], [30, 2, 1, "", "get_awkward_lib"], [30, 2, 1, "", "numpy_call"], [30, 2, 1, "", "postprocess_awkward"], [30, 2, 1, "", "prepare_awkward"], [30, 2, 1, "", "validate_numpy_input"]], "coffea.ml_tools.tf_wrapper": [[31, 2, 1, "", "numpy_call"], [31, 2, 1, "", "validate_numpy_input"]], "coffea.ml_tools.torch_wrapper": [[32, 2, 1, "", "numpy_call"], [32, 2, 1, "", "validate_numpy_input"]], "coffea.ml_tools.triton_wrapper": [[33, 3, 1, "", "batch_size"], [33, 3, 1, "", "batch_size_fallback"], [33, 3, 1, "", "client_args"], [33, 3, 1, "", "http_client_concurrency"], [33, 2, 1, "", "numpy_call"], [33, 3, 1, "", "pmod"], [33, 2, 1, "", "validate_numpy_input"]], "coffea.ml_tools.xgboost_wrapper": [[34, 2, 1, "", "numpy_call"], [34, 2, 1, "", "validate_numpy_input"]], "coffea.nanoevents": [[35, 1, 1, "", "BaseSchema"], [36, 1, 1, "", "DelphesSchema"], [37, 1, 1, "", "NanoAODSchema"], [38, 1, 1, "", "NanoEventsFactory"], [39, 1, 1, "", "PDUNESchema"], [40, 1, 1, "", "PFNanoAODSchema"], [41, 1, 1, "", "PHYSLITESchema"], [42, 1, 1, "", "ScoutingNanoAODSchema"], [43, 1, 1, "", "TreeMakerSchema"]], "coffea.nanoevents.BaseSchema": [[35, 2, 1, "", "behavior"], [35, 3, 1, "", "form"]], "coffea.nanoevents.DelphesSchema": [[36, 2, 1, "", "behavior"], [36, 3, 1, "", "docstrings"], [36, 3, 1, "", "mixins"], [36, 3, 1, "", "singletons"], [36, 2, 1, "", "v1"], [36, 3, 1, "", "warn_missing_crossrefs"]], "coffea.nanoevents.NanoAODSchema": [[37, 3, 1, "", "all_cross_references"], [37, 2, 1, "", "behavior"], [37, 3, 1, "", "error_missing_event_ids"], [37, 3, 1, "", "event_ids"], [37, 3, 1, "", "mixins"], [37, 3, 1, "", "nested_index_items"], [37, 3, 1, "", "nested_items"], [37, 3, 1, "", "special_items"], [37, 2, 1, "", "v5"], [37, 2, 1, "", "v6"], [37, 2, 1, "", "v7"], [37, 3, 1, "", "warn_missing_crossrefs"]], "coffea.nanoevents.NanoEventsFactory": [[38, 2, 1, "", "events"], [38, 2, 1, "", "from_parquet"], [38, 2, 1, "", "from_preloaded"], [38, 2, 1, "", "from_root"]], "coffea.nanoevents.PDUNESchema": [[39, 2, 1, "", "behavior"], [39, 3, 1, "", "mixins"], [39, 3, 1, "", "top_objects"]], "coffea.nanoevents.PFNanoAODSchema": [[40, 3, 1, "", "all_cross_references"], [40, 3, 1, "", "mixins"]], "coffea.nanoevents.PHYSLITESchema": [[41, 2, 1, "", "behavior"], [41, 3, 1, "", "mixins"], [41, 3, 1, "", "truth_collections"]], "coffea.nanoevents.ScoutingNanoAODSchema": [[42, 3, 1, "", "all_cross_references"], [42, 3, 1, "", "mixins"]], "coffea.nanoevents.TreeMakerSchema": [[43, 2, 1, "", "behavior"], [43, 2, 1, "", "uproot_writeable"]], "coffea.nanoevents.methods": [[96, 0, 0, "-", "base"], [97, 0, 0, "-", "candidate"], [98, 0, 0, "-", "nanoaod"], [99, 0, 0, "-", "vector"]], "coffea.nanoevents.methods.base": [[44, 1, 1, "", "NanoCollection"], [45, 1, 1, "", "NanoEvents"], [46, 1, 1, "", "Systematic"]], "coffea.nanoevents.methods.base.NanoEvents": [[45, 3, 1, "", "metadata"]], "coffea.nanoevents.methods.base.Systematic": [[46, 2, 1, "", "add_kind"], [46, 2, 1, "", "add_systematic"], [46, 2, 1, "", "describe_variations"], [46, 2, 1, "", "explodes_how"], [46, 3, 1, "", "systematics"]], "coffea.nanoevents.methods.candidate": [[47, 1, 1, "", "Candidate"], [48, 1, 1, "", "PtEtaPhiECandidate"], [49, 1, 1, "", "PtEtaPhiMCandidate"]], "coffea.nanoevents.methods.candidate.Candidate": [[47, 2, 1, "", "add"], [47, 2, 1, "", "sum"]], "coffea.nanoevents.methods.nanoaod": [[50, 1, 1, "", "AssociatedPFCand"], [51, 1, 1, "", "AssociatedSV"], [52, 1, 1, "", "Electron"], [53, 1, 1, "", "FatJet"], [54, 1, 1, "", "FsrPhoton"], [55, 1, 1, "", "GenParticle"], [56, 1, 1, "", "GenVisTau"], [57, 1, 1, "", "Jet"], [58, 1, 1, "", "LowPtElectron"], [59, 1, 1, "", "MissingET"], [60, 1, 1, "", "Muon"], [61, 1, 1, "", "PFCand"], [62, 1, 1, "", "Photon"], [63, 1, 1, "", "PtEtaPhiMCollection"], [64, 1, 1, "", "SecondaryVertex"], [65, 1, 1, "", "Tau"], [66, 1, 1, "", "Vertex"]], "coffea.nanoevents.methods.nanoaod.AssociatedPFCand": [[50, 3, 1, "", "collection_map"], [50, 3, 1, "", "jet"], [50, 3, 1, "", "pf"]], "coffea.nanoevents.methods.nanoaod.AssociatedSV": [[51, 3, 1, "", "collection_map"], [51, 3, 1, "", "jet"], [51, 3, 1, "", "sv"]], "coffea.nanoevents.methods.nanoaod.Electron": [[52, 3, 1, "", "FAIL"], [52, 3, 1, "", "LOOSE"], [52, 3, 1, "", "MEDIUM"], [52, 3, 1, "", "TIGHT"], [52, 3, 1, "", "VETO"], [52, 3, 1, "", "isLoose"], [52, 3, 1, "", "isMedium"], [52, 3, 1, "", "isTight"], [52, 3, 1, "", "isVeto"], [52, 3, 1, "", "matched_gen"], [52, 3, 1, "", "matched_jet"], [52, 3, 1, "", "matched_photon"]], "coffea.nanoevents.methods.nanoaod.FatJet": [[53, 3, 1, "", "LOOSE"], [53, 3, 1, "", "TIGHT"], [53, 3, 1, "", "TIGHTLEPVETO"], [53, 3, 1, "", "charge"], [53, 3, 1, "", "constituents"], [53, 3, 1, "", "isLoose"], [53, 3, 1, "", "isTight"], [53, 3, 1, "", "isTightLeptonVeto"], [53, 3, 1, "", "matched_gen"], [53, 3, 1, "", "subjets"]], "coffea.nanoevents.methods.nanoaod.FsrPhoton": [[54, 3, 1, "", "matched_muon"]], "coffea.nanoevents.methods.nanoaod.GenParticle": [[55, 3, 1, "", "FLAGS"], [55, 3, 1, "", "children"], [55, 3, 1, "", "distinctChildren"], [55, 3, 1, "", "distinctChildrenDeep"], [55, 3, 1, "", "distinctParent"], [55, 2, 1, "", "hasFlags"], [55, 3, 1, "", "parent"]], "coffea.nanoevents.methods.nanoaod.GenVisTau": [[56, 3, 1, "", "parent"]], "coffea.nanoevents.methods.nanoaod.Jet": [[57, 3, 1, "", "LOOSE"], [57, 3, 1, "", "TIGHT"], [57, 3, 1, "", "TIGHTLEPVETO"], [57, 3, 1, "", "charge"], [57, 3, 1, "", "constituents"], [57, 3, 1, "", "isLoose"], [57, 3, 1, "", "isTight"], [57, 3, 1, "", "isTightLeptonVeto"], [57, 3, 1, "", "matched_electrons"], [57, 3, 1, "", "matched_gen"], [57, 3, 1, "", "matched_muons"]], "coffea.nanoevents.methods.nanoaod.LowPtElectron": [[58, 3, 1, "", "matched_electron"], [58, 3, 1, "", "matched_gen"], [58, 3, 1, "", "matched_photon"]], "coffea.nanoevents.methods.nanoaod.MissingET": [[59, 3, 1, "", "r"]], "coffea.nanoevents.methods.nanoaod.Muon": [[60, 3, 1, "", "matched_fsrPhoton"], [60, 3, 1, "", "matched_gen"], [60, 3, 1, "", "matched_jet"]], "coffea.nanoevents.methods.nanoaod.Photon": [[62, 3, 1, "", "FAIL"], [62, 3, 1, "", "LOOSE"], [62, 3, 1, "", "MEDIUM"], [62, 3, 1, "", "TIGHT"], [62, 3, 1, "", "charge"], [62, 3, 1, "", "isLoose"], [62, 3, 1, "", "isMedium"], [62, 3, 1, "", "isTight"], [62, 3, 1, "", "mass"], [62, 3, 1, "", "matched_electron"], [62, 3, 1, "", "matched_gen"], [62, 3, 1, "", "matched_jet"]], "coffea.nanoevents.methods.nanoaod.SecondaryVertex": [[64, 3, 1, "", "p4"]], "coffea.nanoevents.methods.nanoaod.Tau": [[65, 3, 1, "", "matched_gen"], [65, 3, 1, "", "matched_jet"]], "coffea.nanoevents.methods.nanoaod.Vertex": [[66, 3, 1, "", "pos"]], "coffea.nanoevents.methods.vector": [[67, 1, 1, "", "LorentzVector"], [68, 1, 1, "", "PolarTwoVector"], [69, 1, 1, "", "PtEtaPhiELorentzVector"], [70, 1, 1, "", "PtEtaPhiMLorentzVector"], [71, 1, 1, "", "SphericalThreeVector"], [72, 1, 1, "", "ThreeVector"], [73, 1, 1, "", "TwoVector"]], "coffea.nanoevents.methods.vector.LorentzVector": [[67, 2, 1, "", "absolute"], [67, 3, 1, "", "boostvec"], [67, 2, 1, "", "delta_phi"], [67, 2, 1, "", "delta_r"], [67, 2, 1, "", "delta_r2"], [67, 2, 1, "", "divide"], [67, 3, 1, "", "metric_table"], [67, 2, 1, "", "multiply"], [67, 3, 1, "", "nearest"], [67, 2, 1, "", "negative"], [67, 3, 1, "", "pvec"], [67, 2, 1, "", "sum"]], "coffea.nanoevents.methods.vector.PolarTwoVector": [[68, 2, 1, "", "multiply"], [68, 2, 1, "", "negative"]], "coffea.nanoevents.methods.vector.PtEtaPhiELorentzVector": [[69, 2, 1, "", "divide"], [69, 2, 1, "", "multiply"], [69, 2, 1, "", "negative"]], "coffea.nanoevents.methods.vector.PtEtaPhiMLorentzVector": [[70, 2, 1, "", "divide"], [70, 2, 1, "", "multiply"], [70, 2, 1, "", "negative"]], "coffea.nanoevents.methods.vector.SphericalThreeVector": [[71, 2, 1, "", "multiply"], [71, 2, 1, "", "negative"], [71, 3, 1, "", "r"]], "coffea.nanoevents.methods.vector.ThreeVector": [[72, 2, 1, "", "absolute"], [72, 2, 1, "", "delta_phi"], [72, 2, 1, "", "divide"], [72, 2, 1, "", "multiply"], [72, 2, 1, "", "negative"], [72, 3, 1, "", "r"], [72, 3, 1, "", "r2"], [72, 2, 1, "", "sum"], [72, 3, 1, "", "unit"]], "coffea.nanoevents.methods.vector.TwoVector": [[73, 2, 1, "", "absolute"], [73, 2, 1, "", "delta_phi"], [73, 2, 1, "", "divide"], [73, 2, 1, "", "multiply"], [73, 2, 1, "", "negative"], [73, 3, 1, "", "r"], [73, 3, 1, "", "r2"], [73, 2, 1, "", "sum"], [73, 3, 1, "", "unit"]], "coffea.processor": [[74, 1, 1, "", "ProcessorABC"]], "coffea.processor.ProcessorABC": [[74, 2, 1, "", "postprocess"], [74, 2, 1, "", "process"]], "coffea.util": [[75, 1, 1, "", "SpeedColumn"], [76, 4, 1, "", "awkward_rewrap"], [77, 4, 1, "", "compress_form"], [78, 4, 1, "", "decompress_form"], [79, 4, 1, "", "deprecate"], [80, 4, 1, "", "load"], [81, 4, 1, "", "rewrap_recordarray"], [82, 4, 1, "", "rich_bar"], [83, 4, 1, "", "save"]], "coffea.util.SpeedColumn": [[75, 2, 1, "", "render"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "function", "Python function"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:function"}, "terms": {"": [31, 36, 43, 103, 104, 105, 106, 107, 109], "0": [5, 7, 15, 36, 38, 52, 53, 57, 62, 74, 87, 88, 102, 103, 104, 105, 106, 107, 109], "00": [102, 103, 109], "0000": 103, "00115": 105, "00c9792d": 103, "00ea9563": 103, "01": 102, "0109068": 36, "012033": 86, "0123": 107, "0144ec47": 103, "0149": 105, "01495674": 102, "0172": 104, "02": 102, "0245": 103, "03": [102, 105], "0308": 105, "0336": 107, "03a529c5c87f": 103, "0448": 104, "0451": 104, "04f63b2c16fd": 103, "05": 102, "053": 105, "0587": 104, "06": [102, 107, 109], "06012": 86, "0615838b6257bb1dd9e0ad365df899a7": 104, "0616": 104, "06393273eed": 103, "0678": 104, "0679b3310e09": 103, "0685": 106, "068b0797": 103, "0693": 104, "07": 107, "0748": 105, "08": 102, "084e": 103, "0858": 105, "09": 102, "0920d60e59835d92a5dacb96a448cb0d": 104, "097f0c4e47e3": 103, "09c08e80beef": 103, "0b4d": 103, "0b614070cd17": 103, "0c9615c1": 103, "0cfd79ef": 103, "0db3": 103, "0dc813c8eeffc021339d7e91776fa416": 104, "0df9050f7cf1": 103, "0x29169cc10": 104, "0x29782ba10": 107, "0x297ca0710": 107, "0x312239950": 102, "0x313217210": 102, "0x319bfba50": 102, "0x319d18090": 102, "0x319d24150": 102, "0x319d25290": 102, "0x7f9bd2277fd0": 103, "1": [0, 2, 4, 6, 7, 15, 26, 31, 33, 36, 43, 47, 52, 53, 55, 57, 62, 67, 72, 73, 86, 87, 88, 99, 102, 103, 104, 105, 106, 107, 109], "10": [33, 102, 103, 104, 105, 106, 107, 109], "100": [102, 103, 104, 109], "1000": [99, 104, 107, 109], "10000": [102, 103], "100000": [103, 109], "1000000": 103, "100056": 109, "100_000": 107, "101": [104, 105], "1010000": 103, "102": 104, "1020000": 103, "103": 104, "1030000": 103, "104": 104, "1040000": 103, "1047": 103, "1050000": 103, "1060000": 103, "10625": 105, "106x": 103, "106x_upgrade2018_realisti": 103, "106x_upgrade2018_realistic_v16_l1v1": 103, "1070000": 103, "108": 105, "1080000": 103, "1082ee2cc592b1a0c1b8219ddbb9df76": 104, "109": 107, "1090000": 103, "1094": 103, "1095": 103, "10e04c1e9f951b6eea81cb85c498833a": 104, "11": [102, 103, 104, 105, 106, 107], "110000": 103, "1100000": 103, "111": 105, "1110000": 103, "1120000": 103, "1130000": 103, "1138724": 103, "1140000": 103, "115": 106, "1150000": 103, "1160000": 103, "117": 105, "1170000": 103, "1180000": 103, "11865": 106, "1190000": 103, "1194": 103, "11c62bb8536d": 103, "11e": 105, "11ec": 103, "12": [33, 102, 103, 104, 105, 106, 107], "120": 109, "120000": 103, "1200000": 103, "121": 105, "1210000": 103, "1220000": 103, "123": 103, "1230000": 103, "1240000": 103, "1250000": 103, "1260000": 103, "1270000": 103, "128": 104, "1280000": 103, "12819609": 107, "12835141": 107, "12876": 105, "129": 105, "1290000": 103, "12fae9f1": 103, "13": [102, 103, 104, 105, 106, 107], "130": 106, "130000": 103, "1300000": 103, "1310000": 103, "1320000": 103, "1330000": 103, "1340000": 103, "1350000": 103, "1360000": 103, "1370000": 103, "1380000": 103, "138192": 103, "13884": 105, "1390000": 103, "139ea8f94007": 103, "13d0ad97": 103, "14": [102, 103, 104, 105, 106, 107], "140000": 103, "1400000": 103, "1410000": 103, "1420000": 103, "1430000": 103, "1440000": 103, "1450000": 103, "1460000": 103, "1470000": 103, "1480000": 103, "1490000": 103, "1499064": 107, "149b1ad33ead558e3b736d22c3a261fc": 104, "15": [102, 103, 104, 105, 106, 107], "150": 102, "150000": 103, "1500000": 103, "1510000": 103, "152": 105, "1520000": 103, "152c304a": 103, "1530000": 103, "153c6b8c2d9c": 103, "1540000": 103, "1541": 103, "1550000": 103, "1551326": 103, "16": [102, 103, 104, 105, 106, 107], "160": 105, "160000": 103, "16100aa7cabf6e0f37054b3cda2d9d7": 104, "16222439": 102, "1649": 103, "16b38f51395d73298b304b5b74560b87": 104, "16e": 105, "17": [102, 103, 104, 105, 106], "170": 105, "170000": 103, "172": 106, "1730bacc99456e5ba3253a49df42e172": 104, "175": 104, "18": [103, 104, 105, 106], "180000": 103, "1876": 107, "18_miniaodv2_nanoaodv9_gt36": 103, "18a47bdc7f8227a81fc30fa63c20e0b8": 104, "19": [102, 103, 104, 105, 106], "190000": 103, "193": 103, "195": 105, "197": 102, "1ad9": 103, "1b0f": 103, "1b28": 103, "1b4d": 103, "1c73ec5f01d3": 103, "1ceb718a": 103, "1d": [0, 4, 106], "1d77": 103, "1dd0fac6": 103, "1dddd7f752fb": 103, "1e42cd72e658": 103, "1e44": 103, "1ede468452c9": 103, "1f": [75, 103], "1f42": 103, "1f48": 103, "1f7d59ea6f5c76a6b81dbf2e358271e1": 104, "1f7e": 103, "2": [7, 26, 36, 52, 53, 57, 62, 67, 68, 71, 72, 73, 79, 87, 99, 102, 103, 104, 105, 106, 107, 109], "20": [0, 2, 102, 103, 104, 105, 106, 107], "200": 107, "2000": [107, 109], "20000": 103, "200000": 103, "2020": 86, "2022a279fa9f32fb5958ee0196c7bc9c": 104, "2023": [85, 86], "2024": 102, "2035": 103, "209623f7d41a": 103, "20ul18jmenano_106x_upgrade2018_realistic_v": 103, "20ul18jmenano_106x_upgrade2018_realistic_v16_l1v1": 103, "21": [103, 104, 105, 106], "210000": 103, "211": 105, "2142": 103, "215": 106, "217": 105, "22": [86, 102, 103, 104, 105, 106], "220000": 103, "223": 105, "22913": 105, "23": [27, 103, 104, 105, 106], "230000": 103, "23e": 105, "24": [103, 104, 106], "240000": 103, "2438": 86, "245": 86, "25": [102, 103, 104, 105, 106], "250000": 103, "252": 103, "25200": 103, "2520000": 103, "2547": 103, "255c": 103, "257": 105, "258": 105, "26": [102, 103, 104, 105, 106], "260000": 103, "26084708": 107, "265245": 105, "26fc8c40": 103, "27": [102, 104, 105, 106], "270000": 103, "27009": 105, "273": 102, "2747defe": 103, "278": 105, "27d4": 103, "28": [103, 104, 106], "280000": 103, "282": 105, "28258324": 107, "28290486": 107, "283": 105, "288707": 107, "289326": 107, "29": [102, 103, 104, 105, 106], "290000": 103, "293": 102, "294": 103, "299": 107, "29e": 105, "29e414b3d12c": 103, "29e79e5b5a7de17a03a3d475ff89c599": 104, "29fb2e9eb33b": 103, "2_000": 107, "2a": 87, "2a79d0b5a69da035a6f63a34642205aa": 104, "2bbee183beef": 103, "2c42": 103, "2c4d": 103, "2d": [2, 27, 73, 99, 106], "2d58c3fe": 103, "2da9130": 103, "2f27": 103, "2f87bb6f27689b84fbd8379d88089848": 104, "2f966c5b29d4": 103, "3": [7, 26, 52, 62, 71, 72, 86, 87, 99, 102, 103, 104, 105, 106, 107, 109], "30": [102, 104, 105, 106], "300": 107, "30000": 103, "300000": 103, "303": 105, "304c": 103, "306": 105, "306462_13tev_promptreco_collisions17_json": 27, "3087": 103, "30a3a1ab": 103, "31": [102, 104, 105, 106], "310": 105, "310000": 103, "310991192395022": 27, "311": 105, "31112463": 102, "3122b07919ce90a875c60fe3379baaf2": 104, "318": 105, "3196a0c383555cda3738c112acd1c70": 104, "31a2eb013adf67227780245e9f6e7654": 104, "32": [4, 102, 103, 104, 106, 109], "320000": 103, "32642d59b653": 103, "329c": 103, "32fb1e5b834c5af2cfb38c19c71f7901": 104, "33": [102, 103, 104, 105, 106], "330000": 103, "331": 102, "334b": 103, "3370": 103, "34": [102, 104, 105, 106, 107], "340000": 103, "3436056eebe7": 103, "346": 105, "347": 102, "35": [102, 103, 104, 105, 106], "350000": 103, "35c83043c8ca14ca9330f4e462ee80d3": 104, "35cd28a2662d400d82c8b0e0bf1043b": 104, "35f0eb9a5380d8e9b99d3fdd92720c63": 104, "35fe231d0c72": 103, "36": [102, 103, 104, 105, 106], "360000": 103, "3658836fb2e3ea21bc533848c17dbf9c": 104, "365f32f6": 103, "37": [102, 103, 104, 105, 106], "370000": 103, "37312354": 103, "375189cf48ae": 103, "37951701": 102, "38": [102, 103, 104, 105, 106], "380000": 103, "381": 102, "388c0a9bf93f": 103, "38c6": 103, "39": [102, 103, 104, 105, 106, 107], "390000": 103, "393": 102, "397": 102, "39d52c69": 103, "39e474e6530f": 103, "3a": 87, "3a4c": 103, "3b32": 103, "3c0b": 103, "3d": [72, 99], "3d00": 103, "3ea0ccd0dd33": 103, "3fe5b677": 103, "4": [7, 36, 52, 64, 87, 102, 103, 104, 105, 106, 107, 109], "40": [87, 102, 103, 104, 105, 106], "40000": 103, "400000": 103, "400224": 109, "4045": 103, "404f": 103, "40799728": 102, "40976993651d": 103, "41": [102, 104, 105], "410000": 103, "410c32ab": 103, "411": 105, "413": 105, "41525983810425": 107, "41ab": 103, "42": [104, 106], "420000": 103, "421": 105, "423": 105, "42dc0f42": 103, "43": [103, 104], "430000": 103, "431": 105, "433": 105, "439": 102, "44": [104, 105], "440000": 103, "4404eac5ca31322afe93d2f586df1bc7": 104, "443": 102, "444": 102, "4441": 103, "4481": 105, "448b56417f7e6e78f111bda34eb8ba7": 104, "45": [102, 104, 105, 106], "450000": 103, "452": 105, "459261dd": 103, "46": [102, 104], "460000": 103, "4605": 103, "47": [104, 105], "470000": 103, "48": 104, "480000": 103, "4803794603": 107, "49": [104, 106], "490000": 103, "496": 102, "49776e": 107, "49906e": 107, "4a4dedef54637f16ef2b271c1475f31a": 104, "4b320592f18f": 103, "4b4a": 103, "4b547af5e660141b1c5163448bc75e50": 104, "4ddf80eb0996d4e224663e3718eea052": 104, "4f0d": 104, "4f49": 103, "4fbed45948badcca50ce362c653eefff": 104, "4fee": 103, "4mu": 107, "5": [7, 15, 36, 87, 102, 103, 104, 105, 106, 107, 109], "50": [102, 103, 104, 105], "500": 102, "50000": 103, "500000": 103, "5057f535f83a536bfa670cd1be195413": 104, "50_tunecp5_13tev": 103, "51": [102, 104], "510000": 103, "512a": 103, "51515e3c": 103, "516": 102, "519": [102, 104], "51e": 105, "52": [102, 104], "520000": 103, "521": 104, "523": 104, "524": 104, "526286": 107, "528": 104, "529c1a1cfc95ddd8615681183fb06572": 104, "53": [103, 104, 105], "530000": 103, "5331": 103, "54": [104, 106], "540000": 103, "54219": 107, "5449": 103, "544b67274829": 103, "54961323": 107, "54b6668c7122": 103, "54e90537bdb3fe376c28a70cd79127a6": 104, "55": [102, 104], "550000": 103, "551": 102, "553": 105, "56": [102, 103, 104], "560000": 103, "56084708": 107, "566": 102, "57": [102, 104], "570000": 103, "57002": 107, "58": [103, 104, 105], "580000": 103, "59": [102, 104], "590000": 103, "59081": 103, "59319e86beef": 103, "59467169551d668c177b279d7ce41e08": 104, "5952": 103, "59547e": 107, "59635242": 107, "59ab": 103, "59da0585": 103, "5b31be02c7d3": 103, "5c41": 103, "5c44": 103, "5d46f157ea0ed464f14667860b7f9fa0": 104, "5e276523b592": 103, "5e37ba4cf20": 103, "5e9bb5d353e8": 103, "6": [87, 102, 103, 104, 105, 106, 107, 109], "60": [87, 102, 104, 106, 107, 109], "60000": 103, "600000": 103, "60079": 107, "60314": 107, "6047": 103, "607": 102, "60736": 107, "60748": 107, "60847e": 107, "609": 102, "61": [103, 104, 106], "610000": 103, "61123924df10b8c261bbc98bc5c2b24f": 104, "6138b5e5f850f64d920c23efa39303ca": 104, "615": 105, "61b55e563c2ef8da75531d37f4588e46": 104, "62": [104, 105], "620000": 103, "62789325": 103, "63": [104, 105, 106], "630000": 103, "63047cc0": 103, "632a8052988ed5a2a8938a273ab2d333": 104, "64": [104, 106], "640000": 103, "645563137107a3dabf8c0252326c099b": 104, "648ecd9c": 103, "65": [102, 103, 104, 105], "650000": 103, "65dd6ed1fed0463a350740a761960f79": 104, "66": 104, "660000": 103, "668": 102, "67": [103, 104], "670": 105, "670000": 103, "6751177f307689956c9a5195ee32bf1c": 104, "679": 102, "68": [102, 104], "680000": 103, "6809b5e3": 103, "68365": 105, "69": [102, 104], "690000": 103, "69abd79c": 103, "6a4b": 103, "6b32": 103, "6bb3881f6856": 103, "6ddf448b": 103, "6de6": 103, "6e40": 103, "6eaa5edb": 103, "6f80379b8f4a": 103, "7": [102, 103, 104, 105, 106, 107], "70": [102, 104, 106], "70000": 103, "700000": 103, "705c": 103, "7070": 103, "707b": 103, "71": 104, "710000": 103, "7139": 103, "714f": 103, "71819cc70fcc": 103, "72": [102, 104], "7200": 107, "720000": 103, "722": 102, "72d0": 103, "73": [102, 104, 106], "730000": 103, "732": 102, "73213844": 102, "735": 43, "738a8e80beef": 103, "74": [104, 105], "740000": 103, "744b": 103, "749": 102, "74a75b73": 103, "75": [102, 104], "750000": 103, "7563": 103, "75fa94598ada38bc2c7ac256829aba69": 104, "76": [104, 105], "760000": 103, "769": 105, "77": [102, 104], "770000": 103, "771": 105, "776": 102, "777": 105, "778": 102, "78": [102, 104, 105], "780000": 103, "78ac6a39": 103, "79": [102, 104], "790000": 103, "79350": 107, "7a263f1e316": 103, "7ab582295d29": 103, "7ac3": 103, "7b14228a": 103, "7b181b92": 103, "7b8aa281d460": 103, "7cccb2c3": 103, "7d0b6c07be47f20e367642fb8e283891": 104, "7dc1": 103, "7dea3718": 103, "7e12f94ee3ab": 103, "7ea60f265dccb1ecc1371332dda18513": 104, "7ee6": 103, "8": [86, 102, 103, 104, 105, 106, 107, 109], "80": [102, 104], "80000": 103, "800000": 103, "804c": 103, "807": 102, "80d89bc6034885fc4a99e252f4c76d87": 104, "81": [104, 105], "810000": 103, "817ce4f96fd7": 103, "81891": 106, "81cea7ba": 103, "82": [104, 105], "820000": 103, "8223c4a3": 103, "8244": 103, "827": 102, "82e8": 103, "82e8626d15b47f726ea132d0ce2172db": 104, "83": [102, 104], "830000": 103, "8347": 103, "8369b0ea": 103, "836d4f0d5523ecbd8d6db1e90ae2b3b6": 104, "83b1": 103, "83b1509b3ea29e972a2c83951cb53cb6": 104, "84": [104, 105], "840000": 103, "8423": 103, "8425": 103, "84be": 103, "84fb1c6bc505": 103, "85": [102, 104], "850000": 103, "8504": 103, "85df": 103, "85f4": 103, "86": 104, "860000": 103, "867c": 103, "8683": 103, "86a463ef6993": 103, "86fe": 103, "87": [104, 105], "870000": 103, "8761d4cf88a177af713d19002a764f4f": 104, "8784340a02993c5f7a0a94affb9303b7": 104, "87dc": 103, "88": [104, 105], "880000": 103, "884f": 103, "888": 102, "89": [104, 105], "890000": 103, "89002077fb89": 103, "8948": 103, "8a4f": 103, "8a8a688b3830": 103, "8aaa": 103, "8af812c1310d": 103, "8b8bafec04d5": 103, "8c8690f8": 103, "8e3f": 103, "8e9507bad08a1e98574503d852bb8e08": 104, "8e9d": 103, "8ee1": 103, "8f62": 103, "8fc0": 103, "8fc7": 103, "9": [102, 103, 104, 105, 106, 107, 109], "90": [102, 104, 105], "90000": 103, "900000": 103, "901": 104, "904": 102, "906b63a30d0298bea4410f9b6ff1d666": 104, "909": 102, "91": [103, 104, 105, 107], "910000": 103, "911868": 103, "912": 102, "9123": 109, "918": 102, "9187": 104, "91d61065f2be395629a7f7c2f4c75a4c": 104, "92": 104, "920000": 103, "924c": 103, "925": 102, "9257": 103, "9262": 103, "9264": 103, "92e8f560563f": 103, "93": 104, "930000": 103, "93115": 106, "9341": 103, "935": 102, "938a4fe2": 103, "94": [102, 104, 105], "940000": 103, "9437": 103, "946": 102, "95": [102, 104, 105], "950000": 103, "952": 102, "953": 102, "9566": 103, "95b391cea3695b0e90f6ff4136821900": 104, "96": [104, 106], "960000": 103, "969": 102, "9699a00fc994": 103, "97": 104, "970000": 103, "9711": 103, "972": 102, "97699": 107, "978": 102, "97998": 107, "97ad": 103, "97b8": 103, "97d92fe2282fbbc36a1d400cebc3f8d6": 104, "98": [104, 105], "980000": 103, "98198": 107, "981fe4ed5e0c": 103, "98259": 107, "98261": 107, "988a4723504c8a86b25fce7b6dcd1ed0": 104, "98ae8e2a61a": 103, "98python3": 87, "99": [103, 104], "990000": 103, "9902": 103, "993": 102, "9947": 103, "9_gt36": 103, "9a00": 103, "9a87f15fe12c": 104, "9ab3": 103, "9aeb": 103, "9b11": 103, "9b25781acc91d8b6517bb37dae719dd0": 104, "9b2b": 103, "9d3d": 103, "9d799986": 103, "9e66": 103, "9f0d": 103, "9f26": 103, "9f41b44078a5993adc37fbadf25ee227": 104, "9f44943e437f2bb256ccc100cc97f2da": 104, "9ff2": 103, "A": [0, 2, 4, 7, 27, 35, 38, 44, 46, 47, 48, 49, 55, 67, 68, 69, 70, 71, 72, 73, 74, 87, 99, 100, 102, 104, 106, 107, 109], "AND": 106, "And": 106, "As": [104, 105, 106, 107], "At": [87, 102], "BE": 103, "But": 105, "By": [86, 105, 106], "For": [30, 36, 37, 43, 67, 102, 104, 105, 106, 109], "IT": 103, "If": [0, 2, 4, 6, 7, 15, 26, 27, 30, 33, 37, 38, 55, 86, 87, 104, 106, 107, 109], "In": [68, 69, 70, 71, 84, 87, 102, 104, 105, 106, 109], "It": [4, 20, 22, 23, 24, 26, 74, 84, 86, 106, 109], "No": [74, 102, 103, 104], "OR": [4, 106], "Of": [104, 107], "One": [87, 105, 107], "Or": [104, 106, 109], "Such": 43, "The": [0, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 25, 26, 27, 30, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 67, 74, 84, 85, 86, 87, 99, 102, 103, 104, 105, 106, 107, 109], "Then": 107, "There": [37, 43, 86, 87, 106], "These": [33, 43, 84, 88, 89, 91, 92, 93, 99, 105], "To": [30, 84, 87, 102, 104, 106, 109], "Will": 34, "With": [31, 87, 104, 109], "_": [37, 43, 103], "_13tev": 103, "__": 104, "__azumth": [47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, 72, 73], "__call__": [7, 25, 29, 30, 31, 86, 104], "__doc__": 105, "__init__": [74, 107], "__longitudin": [47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, 72, 73], "__record__": 105, "__tempor": [47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, 72, 73], "_call_numpi": 30, "_dask": [38, 107], "_default_filt": 10, "_eventindex": 41, "_field": 106, "_flag": 74, "_jet1": 22, "_level_ord": 20, "_method": [97, 98, 99], "_miniaodv2_nanoaodv9_gt36": 103, "_nanoaodv9_gt36": 103, "_size": 36, "_util": 38, "a081c6286992ba2fccaa2f2a11518923": 104, "a13a": 103, "a144": 103, "a15": 103, "a16c": 103, "a1cf": 103, "a247": 103, "a24b": 103, "a30dac67296389d5ee6ed32d038d9a29": 104, "a350e2e4": 103, "a3603e25871acedaabcc3e2099d4bcb2": 104, "a38b": 103, "a38f": 103, "a3c8d9fa785a": 103, "a413": 103, "a419": 103, "a4e12fdba83dc2391ced6c43b1f899fd": 104, "a513": 103, "a514": 103, "a522": 103, "a59d511a": 103, "a642": 103, "a6bf": 103, "a70004667fa4b10107c6efb1f2a97989": 104, "a733": 103, "a74efe57": 103, "a7b": 103, "a89b": 103, "a8b": 103, "a8b4": 103, "a8c": 103, "a8d": 103, "a96f": 103, "a9a7": 103, "aa00293facfb": 103, "aa02ecbc510ba5db2b1bec3d1007c8a7": 104, "aa2c": 103, "aachen": 103, "aarongorka": 87, "ab": [99, 102, 104, 105, 107], "ab8dd69d": 103, "abc": [30, 74, 94, 101], "abcb": 103, "abil": 106, "abl": [87, 106], "about": [85, 86, 87, 103, 105, 107, 109], "abov": [87, 102, 104], "absolut": [67, 72, 73, 84, 86, 104], "abstract": [30, 33, 46, 74, 84, 94, 107], "ac": 103, "ac4d": 103, "ac5938c59513f8973b8a0cc39f69be2a": 104, "accept": [7, 83, 102], "access": [8, 9, 11, 12, 15, 35, 38, 43, 84, 87, 103, 105, 107], "access_log": 38, "accessor": [55, 56, 92], "accomplish": 37, "accord": [11, 12, 15, 37, 41, 53, 57, 109], "accumul": [74, 84, 107, 109], "accur": [8, 9], "acd2": 103, "acheiv": 104, "achiev": [104, 107], "acquir": 105, "act": [8, 9], "activ": [87, 109], "actual": [30, 106, 107], "ad": [4, 33, 43, 99, 106, 107], "ad43": 103, "ad47": 103, "adabd8aa56e51de7d7da71bbc78e54d7": 104, "adapt": 86, "add": [4, 5, 6, 26, 38, 47, 86, 87, 104, 106, 107, 109], "add_column": 103, "add_kind": [46, 86], "add_multipl": [4, 86, 106], "add_multivari": [6, 86], "add_row": 103, "add_systemat": [46, 86], "add_weight_set": [25, 26, 86, 102], "addit": [6, 30, 34, 36, 37, 43, 68, 69, 70, 71, 73, 84, 85, 86, 87, 105], "addition": [30, 87], "adjust": [68, 69, 70, 71, 109], "administr": 87, "advanc": [34, 44, 104], "ae014f55": 103, "ae2f": 103, "ae45": 103, "ae4c": 103, "af40": 103, "af44": 103, "after": [4, 43, 102, 104], "again": 106, "against": 87, "aggreg": 74, "agnost": 102, "agre": 102, "aha": 105, "ahead": 38, "ak": [74, 99, 102, 104, 105, 106, 107, 109], "ak4": [43, 102], "ak8": 102, "al": 86, "algorithm": 102, "alia": [67, 72, 73], "alias": 99, "alien": 86, "align_clust": [15, 107], "align_to_clust": 103, "all": [0, 2, 4, 6, 7, 20, 22, 23, 24, 26, 30, 33, 36, 37, 41, 43, 46, 84, 86, 87, 102, 103, 104, 105, 106, 107], "all_cross_refer": [37, 40, 42, 86], "allclos": 99, "allfals": [4, 86, 106], "alloc": 109, "allow": [4, 15, 26, 84, 102, 103, 105, 106, 107], "allow_empty_dataset": 15, "allow_read_errors_with_report": [8, 9], "allow_sit": 103, "allowlist": 103, "allowlist_sit": 103, "almost": 84, "alon": [0, 106], "along": [104, 105], "alphaq": 36, "alphaqcd": 36, "alreadi": [0, 2, 4, 31, 38, 87], "also": [4, 6, 7, 8, 30, 32, 86, 87, 99, 102, 104, 105, 106, 109], "alter": [37, 86], "altern": [87, 102, 105], "although": [84, 87, 105, 106], "alwai": [7, 87], "amcatnlofxfx": 103, "amount": [87, 105, 107], "an": [0, 2, 4, 7, 11, 12, 25, 26, 29, 30, 32, 34, 37, 40, 41, 42, 43, 46, 47, 67, 72, 73, 74, 79, 84, 85, 86, 87, 102, 103, 104, 105, 106, 107, 109], "analsyi": 105, "analys": 84, "analysi": [8, 9, 15, 38, 41, 87, 88, 89, 91, 100, 103, 104, 106, 107, 108, 109], "analysis_tool": [0, 1, 2, 3, 4, 5, 6, 86, 106], "analysiselectron": 41, "analysismuno": 41, "analyz": [15, 84, 104], "angl": [36, 67, 72, 73], "ani": [4, 7, 8, 9, 16, 17, 26, 30, 36, 37, 38, 74, 75, 83, 86, 87, 104, 105, 106], "annoyingli": 87, "anoth": [28, 37, 40, 42, 104], "anyth": [87, 104], "anywher": [87, 102], "aodv2_nanoaodv9_gt36": 103, "apach": [86, 87], "apart": 106, "api": 86, "appear": 106, "append": [0, 2], "appli": [0, 2, 4, 8, 9, 20, 26, 85, 86, 104, 105, 106], "applic": [84, 109], "apply_to_dataset": 86, "apply_to_fileset": [86, 107], "approach": 36, "appropri": [33, 74, 105, 107, 109], "approxim": 107, "ar": [4, 6, 7, 15, 16, 17, 25, 26, 27, 29, 30, 31, 32, 33, 34, 36, 37, 40, 41, 42, 43, 55, 68, 69, 70, 71, 73, 85, 86, 87, 93, 94, 99, 102, 103, 105, 106, 107, 109], "arbitrari": [4, 38, 45, 104, 106], "arbitrarili": [37, 40, 42, 104], "area": [26, 36, 102], "arg": [4, 30, 31, 32, 35, 36, 41, 43], "argmin": 107, "argsort": 107, "argument": [0, 2, 4, 6, 15, 25, 30, 31, 32, 33, 34, 46, 55, 104, 105, 106, 109], "arr": [76, 104], "arrai": [0, 2, 4, 6, 7, 8, 9, 11, 12, 16, 17, 25, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 43, 47, 52, 53, 55, 57, 62, 67, 72, 73, 84, 86, 88, 94, 99, 102, 104, 105, 106, 107], "array_sourc": 38, "arraybuild": 107, "ascend": 20, "asid": 104, "ask": 106, "assert": [99, 109], "assign": [37, 41, 105], "assist": [30, 104, 105], "associ": [6, 50, 51, 64, 102, 105], "associatedpfcand": [40, 86, 98], "associatedsv": [40, 86, 98], "assum": [6, 25, 31, 36, 37, 67, 72, 73, 107], "astyp": 104, "atla": [41, 105], "attach": [36, 41, 46], "attempt": [34, 74, 104], "attribut": [0, 1, 2, 3, 4, 6, 7, 20, 21, 22, 23, 24, 27, 33, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 62, 64, 65, 66, 67, 71, 72, 73, 99, 104, 105, 106], "authent": 109, "auto": [6, 109], "automat": [30, 33, 86, 97, 103, 104, 106, 109], "aux": 41, "auxdyn": 41, "auxilari": 102, "avail": [4, 6, 15, 20, 23, 24, 25, 26, 33, 37, 87, 102, 103, 104, 105, 107, 108, 109], "averag": [27, 36], "avg": 27, "avoid": [84, 87, 102, 106, 108], "awai": [33, 94, 105], "awkward": [4, 7, 11, 12, 29, 30, 31, 32, 33, 35, 38, 84, 86, 88, 94, 97, 98, 99, 102, 103, 104, 105, 106, 107, 109], "awkward1": 105, "awkward_forth": 38, "awkward_rewrap": 86, "ax": [0, 2, 102, 106, 107], "axi": [0, 2, 47, 67, 72, 73, 74, 85, 86, 99, 102, 105, 106, 107, 109], "axial": 99, "axisgt0": 104, "azimuth": [36, 47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, 72, 73], "b": [7, 27, 85, 86, 87, 89, 103, 104], "b04d": 103, "b074d359bbb3": 103, "b075": 103, "b0a64e88e3d4": 103, "b0ef": 103, "b172": 103, "b17d": 103, "b1b449ce": 103, "b1bf": 103, "b28f": 103, "b2e9": 103, "b3487fe0": 103, "b41a396399e4": 103, "b447": 103, "b578": 103, "b5c7c2098dc5ed82427a7f31eb5ed39a": 104, "b5e8f87704f5d545cf817d2762944d25": 104, "b66d": 103, "b677": 103, "b6ad": 103, "b70f48381fa00780673100850a77be64": 104, "b7778b7df69d732f785a0b8c9d57ca7c": 104, "b78a9b75": 103, "b7bc": 103, "b8dc": 103, "b9e9087c": 103, "ba02d468": 103, "ba87": 103, "baaa6e00": 103, "back": [15, 30, 37, 40, 42, 104], "backend": [38, 86, 97, 98, 99, 106, 107], "bad": 15, "bad2": 103, "balanc": 107, "bar": [102, 109], "bare": [38, 107], "base": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 84, 86, 95, 98, 104, 105, 107], "base_form": [35, 36, 37, 39, 40, 41, 42, 43], "baseschema": [8, 9, 36, 37, 38, 39, 41, 43, 86, 95, 105, 107], "bash": [87, 102], "bash_sourc": 87, "basic": [35, 86, 96], "batch": [31, 33, 84, 87, 109], "batch_siz": [33, 86], "batch_size_fallback": [33, 86], "batch_typ": 109, "bb04": 103, "bb46": 103, "bb9c": 103, "bbbe": 103, "bbc9": 103, "bc1fb20d7b9e5fbc6a51534ccd3054f3": 104, "bc4f": 103, "bc578074fd7542d617f1a321b55033b8": 104, "bc6b": 103, "bc94": 103, "bcab": 103, "bcb6": 103, "bcbf89a2": 103, "bce8": 103, "bd3f": 103, "bd4248ed6031": 103, "bd57": 103, "bdcb": 103, "bddf": 103, "be47": 103, "be948845416432cfc7843dc1818979ba": 104, "beam": [27, 36, 39], "becaus": 106, "becom": [84, 87, 104, 105], "been": [36, 41, 88, 104, 106], "befor": [4, 27, 87, 106], "begin": [107, 109], "begin_list": 107, "begin_tupl": 107, "behavior": [35, 36, 37, 39, 41, 43, 86, 99, 102, 105, 107, 109], "being": [86, 104, 107], "below": [87, 102, 104, 108, 109], "best": [84, 104], "bestz1": 107, "beta": 36, "betastar": 36, "better": [87, 106], "between": [31, 36, 67, 72, 73, 84, 105, 106, 109], "bf05": 103, "bf0acc24ca1d686bc7e4dc91eee546e8": 104, "bfa3": 103, "big": 86, "bin": [0, 2, 4, 7, 22, 23, 24, 87, 102, 106], "binder": [102, 105, 106, 107], "bine": 106, "binvar": 105, "bit": [53, 55, 57, 84, 105], "bitwidth": 4, "blank_name_map": [21, 86, 102], "bloat": 87, "blob": [38, 107], "block": 103, "block_sit": 103, "blocklist": 103, "blocklist_sit": 103, "blog": 87, "bold": 103, "bool": [0, 2, 4, 6, 7, 10, 15, 28, 29, 106], "boolean": [0, 2, 4, 52, 53, 55, 57, 62, 105, 106], "boost": 67, "booster": 34, "boostvec": [67, 86], "boson": [105, 107], "both": [6, 87, 109], "bottom": 7, "bound": [7, 46, 102], "branch": [35, 36, 37, 38, 43, 104, 105], "branch_nam": 105, "break": 103, "bregcorr": 102, "bregr": 102, "bril": 27, "brilcalc": 27, "broadcast_arrai": 102, "broken": [20, 87], "btag": [6, 7, 36, 89, 102], "btag_sf": 102, "btag_tool": [7, 85, 86], "btagalgo": 36, "btagcmva": 102, "btagcsvv2": 102, "btagdeepb": 102, "btagdeepc": 102, "btagdeepflavb": 102, "btagdeepflavc": 102, "btagphi": 36, "btagscalefactor": [86, 89, 102], "btovar": 109, "btvsumpt2": 36, "bug": 87, "build": [18, 19, 26, 36, 37, 38, 41, 46, 85, 86, 87, 97, 105, 107, 109], "builder": [35, 36, 37, 40, 41, 42, 43, 107], "built": [36, 37, 43, 86, 105, 106], "bundl": 74, "byl": 27, "bypass": 87, "c": [7, 27, 87, 109], "c07a": 103, "c0acd74ffb03": 103, "c143": 103, "c24d": 103, "c303": 103, "c3abed82cbd768736fc7d2efe53b1bfb": 104, "c4c080e691c5": 103, "c4f476da": 103, "c54c": 103, "c5a035e8e95e0c9e361ff39d1ebd9f2d": 104, "c640": 103, "c684": 103, "c74a": 103, "c84e": 103, "c8987ccc73b9": 103, "c8d09ca24f3086d1e1e2b9414b4ed022": 104, "c942": 103, "cach": [26, 38, 105], "calcul": [6, 22, 23, 24, 27, 85, 86, 102, 107], "call": [0, 2, 7, 25, 26, 30, 31, 32, 34, 92, 102, 104, 105, 106, 107], "callabl": [8, 9, 10, 15, 37, 46], "calojet02": 36, "calojet04": 36, "calojet08": 36, "calojet15": 36, "calomet": [37, 40, 42], "calorimet": 36, "can": [0, 2, 4, 6, 20, 22, 23, 24, 25, 26, 28, 30, 33, 36, 37, 38, 40, 42, 43, 67, 74, 83, 84, 86, 87, 94, 99, 102, 103, 104, 105, 106, 107, 109], "candid": [40, 48, 49, 50, 61, 86, 98, 102, 105, 107, 109], "cannot": [102, 104, 106], "capabl": 84, "care": [87, 104], "carlo": 86, "carri": [36, 105], "cartesian": [67, 69, 70, 72, 73, 99], "case": [43, 67, 87, 104], "cast": [85, 86], "catch": 15, "categori": 79, "caus": [107, 109], "caveat": [87, 105], "cb4c": 103, "cbar": 102, "cbd43a1e": 103, "cc7": 87, "ccf48575d184": 103, "ccl": 109, "ccxrdcm": 103, "cd": 87, "cd44": 103, "cdbac5473ed": 103, "cdd2cdf9": 103, "ce49": 103, "ced110a0": 103, "cell": [104, 105], "center": 103, "centos7": 87, "central": [7, 102, 105], "cern": [27, 87, 103, 107, 109], "cert_294927": 27, "certain": 107, "ceval": 102, "cf424d4b7ddb": 103, "cf4e": 103, "cff": 86, "ch": [27, 87, 103, 107, 109], "chain": [55, 97, 104], "chang": [15, 109], "channel": 109, "charg": [36, 47, 48, 49, 53, 57, 62, 86, 97, 106, 107, 109], "charm": 7, "check": [20, 29, 30, 32, 55, 74, 87, 104], "chemef": 102, "chhef": 102, "child": [36, 55], "children": [41, 55, 86, 105], "children_form": 37, "choic": 104, "choos": [0, 2, 4, 103, 106, 107, 109], "chsmet": [37, 40, 42], "chunk": [13, 15, 16, 37, 38, 74, 84, 103, 107, 109], "chunksiz": 109, "ciemat": 103, "cite": 86, "clamp": 102, "class": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 79, 84, 86, 102, 103, 104, 105, 106, 107, 109], "classmethod": [7, 35, 36, 37, 38, 39, 41, 43, 46], "cleaner": 30, "cleanmask": 102, "clear": [28, 86, 105], "cli": 103, "clibcorr": 102, "client": [33, 84, 103, 107], "client_arg": [33, 86], "clip": [7, 104], "clone": 87, "close": [41, 46, 105], "closest": [36, 107], "cloud": 109, "cluster": [15, 86, 87, 103, 104, 109], "cm": [26, 27, 29, 40, 85, 86, 89, 91, 93, 98, 103, 105, 107], "cms_opendata_2012_nanoaod": 109, "cmsdcadisk": 103, "cmsio2": 103, "cmssw": [20, 22, 23, 24], "cmsxrd": 103, "cmsxrootd": 103, "code": [8, 9, 30, 36, 84, 86, 87, 102, 104, 105, 107, 109], "codebas": 87, "coffea": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 103, 104, 108, 109], "coffea_dev": 106, "coffeaenv": 87, "coffeafilespec": 10, "coffeateam": [43, 86, 87, 102, 104, 105], "collabor": 86, "collect": [37, 40, 41, 42, 43, 44, 63, 83, 85, 86, 102, 103, 105, 107, 109], "collection_map": [50, 51, 86], "collid": 86, "collis": 84, "colllect": 105, "colorbar": 102, "colormeshartist": 102, "column": [41, 46, 55, 75, 84, 87, 102, 108], "columnar": [20, 22, 23, 24, 85, 88, 89, 91], "com": [38, 40, 43, 87, 102, 104, 105, 107], "comb": 7, "combin": [4, 41, 106, 107], "combinedmuontrackparticl": 41, "come": [15, 36, 104, 105, 109], "command": [27, 87], "comment": [85, 86], "commit": 87, "common": [26, 85, 86, 102], "commonli": 104, "commun": [86, 104, 105], "compact": [4, 104, 105], "compar": 86, "compartment": 93, "compat": [30, 32, 36, 37, 87, 88, 99, 104, 105], "compil": 86, "complet": [7, 15, 87, 109], "complex": [84, 86, 105], "complic": 104, "compon": [36, 47, 67, 68, 69, 70, 71, 72, 73, 87], "composit": 97, "compress": [0, 2, 7], "compress_form": 86, "comput": [0, 1, 2, 3, 4, 8, 9, 11, 12, 30, 67, 72, 73, 84, 86, 87, 89, 91, 102, 104, 105, 106, 107, 109], "concaten": 104, "concept": 86, "conda": [86, 87, 109], "condor": [74, 87, 109], "condor_submit_work": 109, "cone": 102, "conf": 86, "config": 27, "configur": [33, 37, 40, 41, 42, 103, 105, 109], "conflict": 87, "connect": [107, 109], "consecut": 4, "consid": [15, 102, 103, 104, 105], "consist": 20, "consol": 103, "constitu": [36, 53, 57, 86, 104, 105], "construct": [34, 36, 37, 38, 55, 102, 104], "constructor": [25, 27, 33, 34, 105], "consult": 30, "contain": [6, 7, 11, 12, 27, 30, 31, 36, 43, 84, 86, 103, 104, 105, 109], "content": [26, 104, 105], "context": 46, "continu": [104, 107], "contrast": 84, "contribut": [36, 86, 105], "control": [104, 106, 109], "convei": 86, "conveni": [102, 105], "convent": 105, "convers": [30, 31, 94, 104], "convert": [26, 30, 36, 37, 40, 42, 43, 102, 104, 106], "cool": 87, "cooper": 109, "coordin": [36, 43, 48, 49, 68, 71, 99, 104], "copi": [87, 104, 105, 107], "core": [0, 2, 8, 9, 86, 87, 105, 107, 109], "corr": 102, "correct": [6, 7, 20, 21, 22, 23, 24, 26, 85, 86, 89, 91], "corrected_jet": 102, "correctedjetsfactori": [86, 91, 102], "correctedmetfactori": [86, 91], "correctionlib": [85, 86], "correctionlib_wrapp": 102, "correctionset": 102, "corrector": [20, 102], "correl": 46, "correspond": [0, 2, 4, 6, 29, 30, 41, 43, 84, 87, 106, 107], "corrl1": [20, 22, 23, 24], "cotang": 36, "could": [46, 93, 107], "count": [36, 37, 102, 104, 106, 107], "coupl": [36, 106], "cours": [104, 106, 107], "cpu": [4, 106], "cpython": 84, "creat": [15, 41, 44, 86, 102, 105, 106, 107, 109], "creation": [105, 107, 109], "cross": [36, 37, 40, 41, 42, 44, 105, 106], "crosssect": 36, "crosssectionerror": 36, "cset": 102, "csh": 87, "csv": [7, 27, 102], "ctgtheta": 36, "cumul": [0, 106], "curl": 102, "current": [4, 6, 28, 84, 86, 93, 105], "custom": [102, 104, 106, 107, 109], "customiz": 106, "cut": [0, 52, 62, 106, 107, 109], "cut1": 4, "cut2": 4, "cut3": 4, "cutbas": [52, 62], "cutflow": [1, 4, 86, 88, 106, 107], "cutflow_result": 106, "cutflowresult": [0, 106], "cutflowtonpz": [0, 86, 88], "cvmf": [27, 86], "cyan": 103, "d": 103, "d0": [36, 104], "d0965fb8ec4099be0707b78aecaf4a1b": 104, "d1": 36, "d1b700fbde79": 103, "d2": 36, "d24e": 103, "d342": 103, "d40d1285": 103, "d424640d3caa1d220630da9879f9a6d4": 104, "d446": 103, "d44c": 103, "d45149e4990e4da381d842d166e7c5ba": 104, "d4bd": 103, "d4d79650": 104, "d514": 103, "d5344cecf02aace568fb6048ed540975": 104, "d6802f98055e2806250a9c3227728372": 104, "d7875684": 103, "d7b8b6b56eeeb86c9683ebc761346f24": 104, "d86ab2e2": 103, "d886677ded46c3f4e8d87456e6e680e2": 104, "d8d41bbc": 103, "d97bf469e0213a29c85425c1e3d91b04": 104, "d9833d3a8b19": 103, "da47c0b6": 103, "dagger": 105, "dai": 87, "dak": [104, 106, 107], "dakev": 106, "dame": 109, "daod_physlit": [41, 105], "dask": [0, 2, 8, 9, 11, 12, 15, 30, 31, 32, 38, 84, 85, 86, 87, 94, 104, 105, 106, 107], "dask_awkward": [0, 2, 4, 8, 9, 28, 29, 30, 104, 105, 106, 107], "dask_clust": 103, "dask_ev": 104, "dask_jet": 104, "dask_result": 104, "daskmethodsmixin": [8, 9], "daskoutputtyp": [8, 9], "data": [0, 2, 8, 9, 15, 25, 30, 34, 46, 74, 75, 81, 84, 85, 86, 89, 91, 93, 94, 103, 104, 107, 109], "data_manipul": [8, 9], "databas": 29, "datadiscoverycli": [85, 86], "datafram": 7, "dataset": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 74, 84, 85, 86, 102, 105, 106, 107, 109], "dataset_axi": 107, "dataset_definit": 103, "dataset_queri": 103, "dataset_runn": 107, "dataset_tool": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 86, 103, 107], "dataset_upd": 107, "datasetspec": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17], "datasetspecopt": [8, 9, 15], "date": [79, 102], "dc267fd142bf": 103, "dcach": 103, "dd2ea51f30214bf71538143d483f24f9": 104, "ddae64d2513ac33f2660b46d6854a3dc": 104, "ddc": 103, "de": 103, "deb5": 103, "debug": [30, 109], "debug_log": 109, "decai": 105, "declar": 109, "decompress_form": 86, "decompression_executor": 38, "dedic": 105, "deepcsv_102xsf_v1": 102, "def": [74, 87, 102, 103, 104, 107, 109], "def5": 103, "default": [0, 2, 4, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17, 26, 30, 33, 37, 38, 40, 41, 42, 87, 102, 106], "defaultdict": [107, 109], "defin": [0, 2, 15, 20, 26, 43, 87, 104, 105, 106, 109], "definit": [20, 22, 23, 24, 102, 103], "degre": 36, "delai": [0, 2, 4, 6, 28, 38, 106], "delayed_mod": [0, 2, 4, 86, 106], "deliv": 74, "deliveri": [74, 84], "delph": [36, 95, 105], "delphesev": 36, "delphesschema": [86, 95, 105], "delta": [67, 104, 105], "delta_phi": [67, 72, 73, 86, 104], "delta_r": [67, 86, 104, 105], "delta_r2": [67, 86], "deltar": 36, "demo": 105, "demonstr": 106, "den": 102, "dense_lookup": 102, "densiti": [36, 102], "depend": [7, 102, 104, 107, 108, 109], "deposit": 36, "deprec": 86, "deprecationwarn": 79, "depth": 81, "deriv": [7, 38, 41, 84, 102, 105, 107], "descend": 35, "describ": [46, 84, 104], "describe_vari": [46, 86], "descript": [26, 102], "desi": 103, "design": [102, 104, 105], "desir": [38, 102, 104, 105], "deta": 104, "detail": [4, 84, 86, 105, 107], "determin": [15, 26], "dev": 87, "develop": [86, 109], "df": 7, "df4e": 103, "diagram": 86, "diboson": 107, "dict": [0, 2, 4, 8, 9, 10, 12, 13, 14, 15, 16, 17, 26, 33, 34, 38, 103, 106], "dictionari": [0, 2, 4, 33, 104, 106], "dictonari": 106, "differ": [6, 22, 27, 31, 55, 67, 72, 73, 102, 103, 104, 106, 109], "dim": 103, "dimens": [33, 34, 84, 85, 86], "dimension": [26, 68, 71, 72, 73, 102], "dimuon": [105, 107, 109], "dir": [102, 109], "direct": [35, 72, 73, 109], "directli": [30, 38, 68, 69, 70, 71, 85, 86, 105, 107, 109], "directori": [87, 109], "dirnam": 87, "discoveri": [85, 86], "discr": 7, "discrep": 86, "discret": 109, "discrimin": [7, 104], "discuss": 43, "disk": [80, 83, 103, 109], "displai": 109, "dist": 102, "distanc": [36, 67, 71, 72, 73, 99, 105], "distinct": 55, "distinctchildren": [55, 86], "distinctchildrendeep": [55, 86], "distinctchildrendeep_form": 37, "distinctpar": [55, 86, 105], "distinctparent_form": 37, "distribut": [86, 87, 106, 107, 109], "divid": [67, 69, 70, 72, 73, 86, 102, 104, 109], "dmat_arg": 34, "dmatrix": 34, "do": [26, 31, 46, 74, 87, 104, 106, 107], "do_list_select": 103, "do_preprocess": 103, "do_regex_sit": 103, "do_sav": 103, "doc": [30, 87, 104], "docker": 87, "docstr": [36, 86, 105], "document": [0, 1, 2, 3, 4, 5, 6, 7, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 84, 87, 105, 109], "doe": [30, 84, 87, 102, 106, 107], "doesn": 106, "doi": 86, "don": 87, "done": [104, 105, 106, 107], "doubl": [105, 106], "doublemuon": [107, 109], "doubli": 105, "down": [6, 20, 26, 102], "down_val": 22, "download": [87, 102, 104], "dphi": 104, "dpm": 103, "dr": [104, 105], "drawn": 102, "drell": 106, "drop": [36, 37], "dtype": [4, 29, 106, 107], "due": [84, 87], "duplic": 97, "durat": 38, "dure": 105, "dv2_nanoaodv9_gt36": 103, "dv9_gt36": 103, "dyjet": [102, 105], "dyjetstoll_m": 103, "dynam": 41, "dz": [36, 104], "e": [6, 26, 27, 36, 38, 46, 47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, 72, 73, 84, 87, 103, 104, 105, 106, 107, 109], "e01baff37424469f75445b90028366da": 104, "e1804c877ed": 103, "e2b62bfe096c321d604a32fbf89668b2": 104, "e35fa5ba3d7597da70c007766683a812": 104, "e43675ce9630": 103, "e44": 103, "e44b": 103, "e4cc": 103, "e509f72064969e949a238db289c45072": 104, "e540": 103, "e5b8": 103, "e746": 103, "e777": 103, "e798cc4121bd681e903080f4f1389924": 104, "e7b7f1d3fcd6": 103, "e84": 103, "e8e2df120704dbe38f61b0a4b0263819": 104, "ea": 26, "ea29": 103, "ea30a23fe8ebad07ad2326697bc04680": 104, "ea43": 103, "ea96": 104, "each": [0, 2, 4, 6, 7, 10, 13, 14, 15, 16, 17, 35, 37, 40, 41, 42, 55, 84, 85, 87, 104, 105, 106, 107, 109], "eager": [38, 104, 106], "eagerli": 106, "earli": 107, "earlier": 102, "eas": 84, "easi": 26, "easier": 103, "easili": [84, 87], "eb44": 103, "ec4d": 103, "ecd4877": 103, "echo": 87, "ecosystem": [84, 86], "ed95384d": 103, "edbe50ebc6a1": 103, "edg": [0, 2, 36, 102, 106], "edit": [26, 87], "edu": 103, "ee42": 103, "eem": 36, "ef4d": 103, "eff": 106, "effect": [6, 26, 105, 108], "effici": [4, 29, 84, 86, 92, 102, 106, 107], "eflowneutralhadron": 36, "eflowphoton": 36, "eflowtrack": 36, "egammaclust": 41, "egm": 26, "ehad": 36, "ehadovereem": 36, "either": [0, 2, 6, 30, 84, 105, 106], "elaps": [107, 109], "electromagnet": 36, "electron": [36, 37, 40, 41, 42, 58, 86, 98, 102, 105, 106], "electron_genpartidx": [37, 40, 42, 105], "electron_jetidx": [37, 40, 42], "electron_photonidx": [37, 40, 42], "electronch": 36, "electronidx1": 102, "electronidx1g": 102, "electronidx2": 102, "electronidx2g": 102, "electronidxg": 102, "element": [4, 104], "elementlink": 41, "elementwis": [47, 67, 68, 69, 70, 71, 72, 73], "eleoppsign": 106, "embed": 105, "emphasi": [67, 72, 73], "emploi": 84, "empti": [10, 15, 106, 109], "en": 104, "enabl": [86, 87, 92], "encapsul": 84, "encod": 6, "encount": [11, 12, 37], "end": [38, 106], "end3d": 39, "end4d": 39, "end_list": 107, "end_tupl": 107, "energi": [20, 22, 23, 24, 26, 36, 43, 47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, 72, 73, 84, 85, 86, 91, 105], "enough": 107, "ensur": [30, 36, 37, 87, 104, 109], "entir": [74, 104], "entri": [4, 25, 26, 29, 36, 38, 55, 104, 107], "entry_start": [38, 107], "entry_stop": [38, 107], "entrypoint": [84, 102], "enumer": [7, 55, 86, 103], "env": [87, 104, 107, 109], "environ": [86, 108, 109], "environmennt": 87, "environment_fil": 109, "eo": [103, 109], "eoscm": 103, "eospubl": [107, 109], "ephi": 106, "epj": 86, "ept": 106, "equal": 106, "equival": [87, 107], "error": [11, 12, 15, 26, 36, 79, 102, 109], "error_missing_event_id": [37, 86], "error_missing_events_id": 37, "errorctgtheta": 36, "errord0": 36, "errordz": 36, "errori": 36, "errorp": 36, "errorphi": 36, "errorpt": 36, "errort": 36, "errorx": 36, "errorz": 36, "essenti": [35, 87, 106], "et": [36, 86], "eta": [7, 25, 36, 43, 47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, 72, 73, 99, 102, 104, 105, 107, 109], "etaout": 36, "etav": 102, "etc": [7, 38, 41, 87, 105], "eval": [7, 86, 102], "evalu": [4, 7, 26, 30, 31, 32, 36, 46, 86, 92, 102, 106], "even": 84, "event": [0, 2, 4, 6, 13, 36, 37, 38, 40, 42, 43, 46, 74, 84, 86, 93, 102, 103, 104, 105, 106, 107, 109], "event_id": [37, 86], "eventlhef": 36, "events_lepton": 107, "eventu": 99, "everi": [107, 109], "everyth": [104, 106], "evolv": 106, "ex": 30, "exact": [4, 106], "exactli": 106, "exampl": [4, 25, 36, 37, 43, 74, 86, 87, 99, 102, 103, 105, 106, 107, 109], "exce": 84, "except": [7, 15, 30, 32, 37, 43, 103], "exception": 84, "exclud": [6, 103, 106], "exclude_unset": 102, "execut": [15, 84, 86, 87, 105, 107, 108, 109], "executor": [38, 86, 87, 107], "exhaust": 109, "exist": [37, 55, 84, 103, 106], "exit": [87, 103], "exp": 104, "expand": [55, 104, 107], "expans": 104, "expect": [6, 26, 30, 33, 34, 38, 74, 104, 105, 107], "experi": [86, 87, 93, 102], "explain": 84, "explan": 105, "explicit": [53, 57], "explicitli": [33, 108], "explodes_how": [46, 86], "exploit": 103, "exploratori": 107, "exponenti": 102, "export": 87, "expos": 105, "ext": 102, "extend": [26, 40, 43, 84, 104], "extens": [0, 2, 102], "extra": [87, 105], "extract": [15, 25, 26, 27, 33, 92, 103, 104, 106], "extract_from_fil": [26, 86], "extractor": [25, 86, 92, 102], "extrapolatedmuontrackparticl": 41, "eymir": 103, "f": [87, 103, 105, 106, 109], "f039caebcf4c11cb6e22e91d73d58061": 104, "f09135d8": 103, "f0b011a50db292fb2b871686ee0a4ca4": 104, "f1": 104, "f16a9138": 103, "f1b3977a": 103, "f2": 104, "f210": 103, "f24b1fc33dca394d0f6803cc7784e37": 104, "f34f4f00": 103, "f4c6": 103, "f6807458d1b798c1765dc82431de0630": 104, "f6e44ea5": 103, "f74c": 103, "f7ff1ff2df14e7932e2b711fb13b15ab": 104, "f836bb481ad5": 103, "f971": 103, "fa15abc1502f6fa51ba0d6608dac9af8": 104, "facil": [86, 87], "facilit": 84, "fact": 105, "factor": [6, 7, 15, 24, 102], "factori": [38, 95, 104, 105, 107, 109], "factorizedjetcorrector": [86, 91, 102], "fad74ed67d4b95383a9d0afde0e454b4": 104, "fae11878826f65e15ee7d9eb1e0043d7": 104, "faf0c67b": 103, "fail": [11, 12, 15, 52, 62, 86, 102, 104], "fair": 105, "fake": 107, "fall17_17nov2017_v32_mc_l2relative_ak4pfpuppi": 102, "fall17_17nov2017_v32_mc_uncertainty_ak4pfpuppi": 102, "fallback": 87, "fals": [0, 2, 4, 6, 7, 15, 27, 37, 38, 74, 102, 103, 104, 105, 106, 107, 109], "fanci": [85, 86, 105], "fancydimuonprocessor": 107, "faq": 31, "fashion": 106, "fast": 105, "fatjet": [36, 37, 40, 42, 50, 51, 86, 98], "fatjet_electronidx3sj": 40, "fatjet_genjetak8idx": [37, 40, 42, 106], "fatjet_muonidx3sj": 40, "fatjet_nconstitu": 37, "fatjet_pfcandsidxg": 37, "fatjet_subjetidx1": [37, 40, 42], "fatjet_subjetidx1g": 37, "fatjet_subjetidx2": [37, 40, 42], "fatjet_subjetidx2g": 37, "fatjet_subjetidxg": 37, "fatjetpfcand": [37, 40, 50], "fatjetpfcands_jetidx": 40, "fatjetpfcands_pfcandsidx": 40, "fatjetsv": [40, 51], "fatjetsvs_jetidx": 40, "fatjetsvs_svidx": 40, "favorit": 109, "fb": 107, "fb9291dc7c3c": 103, "fbe50b00": 103, "fc1b1e0abeef": 103, "fc4d": 103, "fcaf4145": 103, "fcbe": 103, "fe3d79a6": 103, "fe5eefa5": 103, "featur": [34, 46, 85, 87, 99, 103, 104, 105, 107], "feel": 86, "fetch": 105, "few": [87, 107, 109], "field": [37, 41, 84, 85, 86, 102, 105], "field1": 104, "field2": 104, "field3": 104, "fields_of_interest": 104, "fig": [102, 107], "figsiz": 107, "file": [0, 1, 2, 3, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 26, 27, 29, 34, 35, 36, 37, 38, 43, 80, 85, 86, 87, 92, 103, 104, 105, 106, 107, 109], "file_convert": 26, "file_except": 15, "filenam": [0, 2, 7, 38, 80, 83, 107], "filenotfounderror": 15, "files_per_batch": [15, 107], "fileset": [9, 10, 12, 13, 14, 15, 16, 17, 85, 86, 107, 109], "fileset_al": 103, "fileset_avail": 103, "fileset_output": 103, "fileset_tot": 103, "filesetspec": [9, 10, 12, 13, 14, 15, 16, 17], "filesetspecopt": [9, 15], "fill": [4, 74, 102, 104, 107, 109], "fill_non": [102, 104], "fill_valu": 4, "filter": [10, 85, 86, 105, 106], "filter_fil": 86, "filterwarn": 102, "final": [4, 25, 26, 74, 86, 102, 106, 107], "find": [30, 87, 102, 105, 107, 109], "find_4lep": 107, "find_4lep_kernel": 107, "fine": 104, "first": [0, 2, 4, 13, 14, 31, 36, 43, 55, 84, 86, 102, 103, 104, 105, 106, 107, 109], "fix": [37, 46, 85, 86, 87], "fixedgridrhofastjetal": 102, "fjc": 20, "flag": [55, 74, 86, 105, 107], "flat": [4, 37, 105], "flatten": [102, 104, 106, 107], "flav_b": [7, 86], "flav_c": [7, 86], "flav_udsg": [7, 86], "flavor": [7, 36, 102], "flavoralgo": 36, "flavorphi": 36, "flavour": 36, "flesh": 107, "float": [0, 2, 15, 47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, 72, 73, 106, 109], "float16": 104, "float32": [102, 104, 105], "float64": 102, "flow": [61, 102, 105, 107], "fmt": 75, "fnal": [87, 103], "fname": [34, 102, 105], "fo": 103, "focus": 104, "fold": 104, "follow": [0, 2, 7, 20, 22, 23, 24, 30, 36, 37, 41, 85, 86, 87, 102, 104, 105, 106, 107], "forc": [15, 107], "forg": 109, "forget_length": 107, "form": [0, 2, 4, 6, 15, 35, 37, 38, 41, 43, 84, 86, 105, 106], "form_compressedb64": 78, "format": [7, 20, 22, 26, 29, 30, 33, 40, 42, 43, 92, 93, 94, 102, 104, 105, 107], "formjson": 77, "formmat": 7, "found": [30, 32, 36, 37, 43, 84, 87, 104, 105], "four": 84, "fourmuon": 107, "fourth": 99, "fout": 102, "fr": 103, "fracpt": 36, "fraction": 36, "fragil": 87, "framework": [84, 100, 104, 107, 108, 109], "free": 86, "freedom": 36, "friendli": 109, "from": [11, 12, 15, 26, 27, 30, 33, 35, 36, 37, 38, 41, 43, 55, 71, 72, 73, 74, 80, 85, 86, 87, 92, 99, 104, 105, 106, 107, 109], "from_dask_arrai": 106, "from_histogram": 102, "from_json": 105, "from_numpi": [30, 104], "from_parquet": [38, 86, 105], "from_preload": [38, 86], "from_root": [36, 37, 38, 86, 102, 104, 105, 106, 107], "fromhardprocess": 55, "fromhardprocessbeforefsr": 55, "frozenset": 104, "fsr": 54, "fsrphoton": [37, 40, 42, 86, 98, 106], "fsrphoton_muonidx": [37, 40, 42], "fulfil": 46, "full": [84, 99, 103, 105, 108], "fulli": [30, 84, 105, 106], "fun": 106, "func": 105, "function": [6, 7, 8, 9, 10, 20, 22, 23, 24, 25, 26, 30, 32, 33, 37, 46, 67, 69, 70, 72, 73, 83, 86, 87, 92, 102, 103, 104, 105, 106, 107, 109], "further": [26, 84], "futur": [74, 97, 105], "futurewarn": 102, "fwlite": [20, 22, 23, 24], "g": [6, 27, 37, 38, 87, 104, 105, 106, 107, 109], "gaexrdoor": 103, "gca": 106, "gcc8": 87, "gcc9": 87, "gen": 36, "gen1": 102, "gen2": 102, "gen2_to_gen1": 102, "gen2rwt": 102, "gencand": [40, 50], "gendeltaz": 36, "gendressedlepton": [37, 40, 42], "gener": [7, 36, 43, 55, 63, 74, 84, 85, 86, 87, 88, 93, 102, 105, 107], "generator_binvar": 105, "generator_id1": 105, "generator_id2": 105, "generator_scalepdf": 105, "generator_weight": 105, "generator_x1": 105, "generator_x2": 105, "generator_xpdf1": 105, "generator_xpdf2": 105, "generichepanalysi": [8, 9], "genfatjet_pfcandsidxg": 37, "genfatjetcand": [37, 40, 50], "genfatjetcands_jetidx": 40, "genfatjetcands_pfcandsidx": 40, "genfatjetsv": [40, 51], "genfatjetsvs_jetidx": 40, "genfatjetsvs_svidx": 40, "genisolatedphoton": [37, 40, 42], "genjet": [36, 37, 40, 42, 50, 51, 105], "genjet02": 36, "genjet04": 36, "genjet08": 36, "genjet15": 36, "genjet_nconstitu": 37, "genjet_pfcandsidxg": 37, "genjetak8": [36, 37, 40, 42, 50, 51, 106], "genjetak8_nconstitu": 37, "genjetcand": [37, 40, 50], "genjetcands_jetidx": 40, "genjetcands_pfcandsidx": 40, "genjetidx": 102, "genjetidxg": 102, "genjetsv": [40, 51], "genjetsvs_jetidx": 40, "genjetsvs_svidx": 40, "genmet": [37, 40, 42], "genmissinget": 36, "genpart": [37, 40, 42, 105], "genpart_childrenidxg": 37, "genpart_distinctchildrendeepidxg": 37, "genpart_distinctchildrenidxg": 37, "genpart_distinctparentidxg": 37, "genpart_genpartidxmoth": [37, 40, 42], "genpart_genpartidxmotherg": 37, "genpart_pdgid": 37, "genparticl": [37, 40, 42, 86, 98], "genpartidxmoth": 55, "genpileupmissinget": 36, "gensumpt2": 36, "genvistau": [37, 40, 42, 86, 98], "genvistau_genpartidxmoth": [37, 40, 42], "get": [33, 46, 85, 86, 102, 103, 106], "get_awkward_lib": [30, 86], "get_dataset_file_replica": 103, "get_dataset_files_replica": 103, "get_failed_steps_for_dataset": 86, "get_failed_steps_for_fileset": 86, "get_lumi": [27, 86], "get_rucio_cli": 103, "get_step": 15, "get_xtick": 106, "get_ytick": 106, "getattr": 105, "getcorrect": [20, 86], "getitem": [104, 105], "getpass": 109, "getresolut": [23, 86], "getscalefactor": [24, 86], "getsubcorrect": [20, 86], "getting_start": 31, "getuncertainti": [22, 86], "getus": 109, "gev": [36, 107, 109], "gfe02": 103, "gfunc": 76, "gigabyt": 107, "gist": 87, "git": 87, "github": [38, 40, 43, 86, 87, 104, 107], "githubusercont": [102, 105], "give": 105, "given": [4, 6, 7, 15, 22, 23, 24, 26, 104, 106, 109], "global": [37, 38, 40, 41, 42, 84, 87, 104], "gluon": 7, "go": [85, 104, 109], "golden": 29, "good": [87, 107], "got": 106, "gov": 103, "govern": [4, 105], "gpu": 109, "gradual": 109, "grai": 86, "graph": [15, 38, 107], "great": 106, "grid": 103, "gridka": 103, "group": [37, 43, 105], "growth": 107, "gsftrackparticl": 41, "gt": [102, 103, 104, 105, 106, 107], "guid": [30, 86], "gz": [7, 87, 102, 103, 109], "gzip": 103, "h": [2, 103, 106], "h1": [106, 107], "h2": [106, 107], "h5py": 87, "h_m4mu": 107, "h_mass": 107, "h_mz1": 107, "h_mz2": 107, "h_nmuon": 107, "h_ptz1mu1": 107, "h_ptz1mu2": 107, "ha": [15, 25, 30, 36, 41, 63, 87, 104, 105, 106, 107], "hack": 87, "hadron": [7, 36], "hadronflavour": [102, 105], "half": 109, "handl": [6, 30, 31, 33, 34, 43, 86, 94, 104], "happen": 106, "hard": 36, "hardcod": 87, "hasflag": [55, 86, 105], "hashabl": [8, 9], "hasn": 106, "have": [4, 7, 11, 12, 29, 33, 38, 46, 87, 88, 102, 104, 105, 106, 107, 109], "hcutflow": [0, 106], "hda": 107, "heavi": [36, 67, 72, 73, 105, 108], "height": 4, "help": [30, 103, 105, 106, 107], "helper": [30, 44, 88, 94, 95, 104, 105, 107], "henc": [73, 105], "hep": [36, 38, 84, 86, 102, 103, 104, 105, 107], "hepmcev": 36, "here": [31, 43, 87, 102, 104, 105, 107, 109], "hidden": 87, "high": [84, 85, 86, 103], "highest": [20, 23, 24, 30], "highlevel": [29, 105], "highlevelgraph": 104, "highli": 15, "hist": [0, 2, 4, 74, 102, 106, 107, 109], "histo": [25, 26, 102], "histogram": [0, 2, 4, 25, 26, 84, 85, 86, 106, 107], "histscutflow": 0, "histsonecut": 0, "hit": 36, "hold": [7, 27, 29, 37, 38], "home": 103, "homebrew": [102, 105], "honecut": [0, 106], "hopefulli": 99, "horizont": [36, 84, 86], "host": [33, 86, 87], "hostnam": 109, "how": [10, 13, 14, 16, 17, 30, 46, 102, 104, 105, 106, 107, 109], "howev": [84, 87, 93, 106, 107], "ht": 36, "htcondor": [87, 109], "html": [30, 87, 104], "http": [30, 31, 38, 40, 43, 86, 87, 102, 104, 105, 107], "http_client_concurr": [33, 86], "hub": 87, "human": [75, 104], "hundr": 87, "i": [0, 2, 4, 6, 7, 8, 15, 20, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 45, 46, 55, 67, 69, 70, 72, 73, 74, 84, 85, 86, 87, 99, 102, 103, 104, 105, 106, 107, 108, 109], "i0": 107, "i1": 107, "i2": 107, "i3": 107, "iason": 106, "ic": 103, "id": [36, 37, 55, 105, 109], "id1": [36, 105], "id2": [36, 105], "ident": [5, 86, 87], "identif": 105, "idx": [37, 107], "ignor": [4, 55, 87, 106], "ignore_miss": 7, "iih": 103, "imag": 86, "imap": 104, "immedi": [0, 2], "impact": 36, "implement": [20, 22, 23, 24, 35, 36, 37, 38, 39, 40, 41, 42, 43, 86, 102, 104, 105, 106, 107], "import": [26, 74, 87, 99, 102, 103, 104, 105, 106, 107, 108, 109], "import_fil": [26, 86], "impos": 107, "improv": 86, "in2p3": 103, "in_corrected_jet": 19, "in_met": 19, "incl": 7, "includ": [4, 6, 15, 27, 38, 40, 42, 55, 87, 105, 106, 109], "inclus": 4, "incomplet": 15, "inde": [102, 106], "independ": [84, 86], "indettrackparticl": 41, "index": [12, 25, 29, 36, 37, 40, 41, 42, 53, 55, 57, 86, 103, 104, 105, 106, 107], "indic": [41, 87, 104, 105, 107], "indirect": [37, 40, 42], "individu": [6, 84], "inf": 5, "infer": [30, 31, 33, 34, 85, 86, 94], "inferinput": 33, "inferrequestedoutput": 33, "infn": 103, "info": [7, 40, 103, 109], "inform": [31, 87, 105, 107, 109], "infrastructur": 109, "inherit": [86, 104], "initi": [6, 105, 106, 109], "injet": 18, "inner": 34, "input": [4, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 25, 26, 30, 31, 32, 33, 37, 38, 84, 86, 102, 104, 105, 106, 107], "input_dict": 33, "insid": [74, 87, 105], "insight": 86, "inspect": 7, "inst": 27, "instal": 109, "instanc": [6, 38, 74, 87, 102, 104, 105, 106, 107, 109], "instantan": 27, "instanti": 105, "instead": [4, 7, 15, 41, 105, 106, 109], "instruct": 87, "int": [6, 7, 13, 14, 15, 38, 107], "int32": 105, "int64": [106, 107], "intcategori": 107, "intefer": 104, "integ": [0, 2, 105, 106, 107], "integr": 27, "intend": [84, 105], "inter": 84, "interact": [36, 86, 87, 105, 107], "interest": [33, 104], "interfac": [38, 46, 94, 104, 107], "intermedi": 104, "intern": [4, 102], "interpret": [6, 8, 9, 37, 38, 40, 42, 55, 67, 72, 73, 84, 105, 107], "interpretation_executor": 38, "invalid": [30, 32], "invari": [36, 105, 107], "invers": [27, 105], "involv": [104, 107], "io": [31, 86, 104], "ipykernel": 87, "ipynb": [105, 107], "iri": 86, "irregular": [15, 84], "is_dask": 38, "is_inst_lumi": 27, "isdecayedleptonhadron": 55, "isdirecthadrondecayproduct": 55, "isdirecthardprocesstaudecayproduct": 55, "isdirectprompttaudecayproduct": 55, "isdirecttaudecayproduct": 55, "isfirstcopi": 55, "ishardprocess": 55, "ishardprocesstaudecayproduct": 55, "isinst": 107, "islastcopi": [55, 105], "islastcopybeforefsr": 55, "isloos": [52, 53, 57, 62, 86], "ismc": 103, "ismedium": [52, 62, 86], "isol": [36, 87, 107], "isolationvar": 36, "isolationvarrhocorr": 36, "isotrack": [37, 40, 42], "isprompt": [55, 105], "isprompttaudecayproduct": 55, "ispu": 36, "issu": [37, 102], "istaudecayproduct": 55, "istight": [52, 53, 57, 62, 86, 105], "istightleptonveto": [53, 57, 86], "isveto": [52, 86], "item": [38, 47, 48, 49, 67, 68, 69, 70, 71, 72, 73, 103, 106, 107, 109], "iter": [0, 2, 22, 30, 46, 106, 107], "iteritems_opt": 38, "its": [67, 69, 70, 72, 73, 86, 104, 105, 106, 109], "itself": [86, 109], "j": [86, 102], "jag": [37, 86, 102, 105], "jcu": 22, "je": [22, 102], "jec": [20, 21, 26, 86, 102], "jec_input": 102, "jec_jet1": 20, "jec_jet2": 20, "jec_stack": [18, 102], "jec_stack_nam": 102, "jecfactor": 43, "jecstack": [86, 91, 102], "jer": [21, 23, 24, 86, 102], "jercchf": 102, "jercchpuf": 102, "jersf": [21, 24, 26, 86], "jes_j": 102, "jet": [7, 20, 22, 23, 24, 26, 36, 37, 40, 41, 42, 43, 50, 51, 53, 85, 86, 91, 98, 102, 105], "jet_electronidx1": [37, 40, 42], "jet_electronidx1g": 37, "jet_electronidx2": [37, 40, 42], "jet_electronidx2g": 37, "jet_electronidxg": 37, "jet_energy_correct": 102, "jet_energy_uncertainty_j": 102, "jet_eta": 104, "jet_factori": 102, "jet_genjetidx": [37, 40, 42], "jet_muonidx1": [37, 40, 42], "jet_muonidx1g": 37, "jet_muonidx2": [37, 40, 42], "jet_muonidx2g": 37, "jet_muonidxg": 37, "jet_nconstitu": [37, 104], "jet_pfcandsidxg": 37, "jet_phi": 104, "jet_pt": 104, "jeta": 102, "jetak8": 36, "jetcorr": 20, "jetcorrectionuncertainti": [86, 91, 102], "jeteta": 102, "jetid": [53, 57, 102, 105], "jetmass": 102, "jetmet": 91, "jetmet_tool": [18, 19, 20, 21, 22, 23, 24, 85, 86], "jetparameter1": [20, 22, 23, 24], "jetpfcand": [37, 40, 50, 104], "jetpfcands_jetidx": 40, "jetpfcands_pfcandsidx": [40, 104], "jetproperty1": [20, 22, 23, 24], "jetpt": 102, "jetpuppi": 36, "jetpuppiak8": 36, "jetr": 23, "jetresolut": [86, 91], "jetresolutionscalefactor": [86, 91], "jetressf": 24, "jets_jecfactor": 43, "jets_jetfactor": 43, "jetsv": [40, 51], "jetsvs_jetidx": 40, "jetsvs_svidx": 40, "jettransform": 102, "jetunc": 22, "jme": 26, "job": [11, 12, 87], "jobconfig": 27, "jobqueu": 87, "jr": [23, 26], "json": [26, 27, 29, 102, 103], "jsonfil": 29, "junc": [21, 22, 26, 86, 102], "jupyt": [85, 87], "just": [37, 86, 97, 103, 104, 106, 107], "justifi": 103, "k": 104, "keep": [6, 7, 13, 14, 46, 106], "keep_df": 7, "kei": [9, 17, 25, 33, 38, 86, 102, 103, 104, 107], "kera": 31, "kernel": [87, 104], "keyword": 34, "kind": [26, 46], "kit": 103, "know": 104, "known": 38, "known_base_form": 38, "kr": 103, "kwarg": [4, 20, 22, 23, 24, 30, 31, 32, 33, 34, 35, 36, 41, 43], "l": [36, 86], "l109": [38, 107], "l113": 38, "l132": 107, "lab": 109, "label": [0, 1, 2, 3, 86, 102, 106, 107, 109], "lambda": 103, "laptop": 86, "larg": [53, 86, 87, 107, 109], "larger": [4, 15, 107, 109], "last": [0, 2, 4, 36, 38, 55, 104, 105, 106], "later": [7, 26, 105, 106], "latest": [36, 37, 40, 42, 86, 87, 105], "launch": 109, "layer": 104, "layout": [81, 107], "lazi": [104, 105, 106, 107], "lazili": [38, 105], "lcg": 86, "lcg98": 87, "lcg_98python3": 87, "lead": [36, 104, 105], "leadpt20": 106, "learn": 104, "least": [8, 9, 104, 106, 107, 109], "leav": 84, "left": [10, 13, 14, 16, 17, 103], "legend": [102, 107], "len": [103, 107, 109], "length": [0, 2, 36, 37, 72, 73, 84, 104, 105, 106, 107], "length_zero_if_typetrac": 107, "lep1": 107, "lep2": 107, "lepton": [53, 57, 105, 107], "let": [87, 103, 104, 105, 106, 107], "level": [20, 22, 23, 24, 30, 33, 35, 37, 45, 55, 84, 85, 86, 89, 91, 103, 104, 105], "lhcoevent": 36, "lhepart": [37, 40, 42], "lib": [0, 2, 8, 9, 87, 102, 104, 105, 107], "librari": [84, 87, 99, 105], "light": [7, 102], "like": [0, 2, 6, 20, 22, 23, 24, 25, 26, 30, 32, 38, 43, 73, 85, 86, 87, 105, 106, 107, 109], "like_what": 76, "limit": [84, 104, 107], "line": [26, 87, 104], "link": [105, 107], "lint": 87, "linux": 87, "list": [0, 2, 4, 6, 8, 9, 15, 20, 22, 23, 24, 26, 28, 29, 33, 37, 38, 46, 55, 103, 104, 105, 106, 108], "listen": 109, "ll": [102, 107], "lnl": 103, "load": [38, 86, 103, 104, 106], "load_dataset_definit": 103, "local": [26, 27, 37, 86, 87, 103, 109], "local_nam": 26, "localhost": 109, "localpath": 87, "locat": [87, 103], "lock": 84, "log": [87, 99, 104, 106, 107, 109], "logic": 106, "longitudin": [36, 47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, 72, 73], "look": [25, 86, 87, 103, 105, 106, 107], "lookup": [26, 29, 85, 86, 92], "lookup_tool": [25, 26, 85, 86], "lookup_typ": 25, "loop": 84, "loos": [7, 52, 53, 57, 62, 86], "lorentz": [47, 48, 49, 63, 67, 69, 70, 97, 98, 99, 105], "lorentzmomentum": [97, 98, 99], "lorentzvector": [39, 47, 69, 70, 86, 97, 98, 99, 105], "lot": 109, "low": [58, 103], "lower": [0, 2, 87, 106], "lowptelectron": [37, 40, 42, 86, 98], "lowptelectron_electronidx": [37, 40, 42], "lowptelectron_genpartidx": [37, 40, 42], "lowptelectron_photonidx": [37, 40, 42], "lpc": 87, "lpt": 104, "lptf": 104, "lt": [102, 103, 104, 105, 106, 107], "lumi": [27, 28, 29, 107], "lumi2017": 27, "lumi_csv": 27, "lumi_tool": [27, 28, 29, 86], "lumidata": [86, 93], "lumilist": [27, 86, 93], "lumimask": [86, 93], "luminos": [27, 29, 93], "luminosityblock": 37, "lumisect": [27, 28, 29], "lyogrid06": 103, "m": [36, 47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, 72, 73, 87, 103, 104, 109], "m1": 36, "m2": 36, "m_": [107, 109], "machin": [84, 104, 107, 109], "maco": 87, "made": [74, 105], "magenta": 103, "magnitud": [67, 72, 73], "mai": [6, 15, 27, 86, 87, 104, 105, 107, 109], "main": [30, 38, 109], "mainli": [41, 107], "mait": 103, "major": 87, "make": [15, 27, 30, 86, 87, 103, 107], "make_evalu": [25, 26, 86, 102], "manag": 109, "manager_host_port": 109, "manager_nam": 109, "mangl": [30, 33, 94, 104], "mani": [13, 14, 37, 38, 86, 87, 104, 107], "manipul": [8, 9, 84, 86, 103], "manner": [4, 106], "mannner": 4, "manual": [103, 104, 109], "map": [7, 25, 37, 38, 41, 43, 105, 107], "map_partit": 107, "mark": [52, 53, 57, 62, 102], "mask": [0, 2, 3, 4, 29, 86, 104, 105, 106], "mask_out": 29, "maskscutflow": [0, 1, 86, 106], "masksonecut": [0, 1, 86, 106], "mass": [36, 47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, 72, 73, 86, 99, 102, 105, 107, 109], "mass_axi": 107, "mass_jec": 102, "mass_orig": 102, "mass_raw": 102, "mass_z1": 107, "mass_z2": 107, "massraw": 102, "master": [102, 104, 105], "master_nam": 109, "match": [7, 37, 102, 105], "matched_electron": [57, 58, 62, 86], "matched_fsrphoton": [60, 86], "matched_gen": [52, 53, 57, 58, 60, 62, 65, 86, 102, 105], "matched_jet": [52, 60, 62, 65, 86, 105], "matched_muon": [54, 57, 86], "matched_photon": [52, 58, 86], "mater": 106, "materi": [0, 2, 38, 105, 106], "matplotlib": [86, 102, 106, 107], "matrix": 104, "max": [7, 13, 14, 109], "max_chunk": [86, 107], "max_fil": 86, "max_work": 109, "maxchunk": [13, 107, 109], "maxfil": 14, "maximum": [0, 2, 4, 43, 102, 106, 109], "maxitem": [4, 86, 106], "maxw": 5, "mayb": 97, "mb": [87, 109], "mc": 103, "mc2016_ak8_jxform": 102, "mean": 102, "meaning": 102, "meansqdeltar": 36, "measur": [36, 109], "mechan": 74, "medium": [7, 52, 62, 86, 102], "memori": [4, 105, 106, 109], "mere": 84, "merg": [7, 28, 43, 84], "mergeabl": 28, "messag": [79, 103], "met": [36, 37, 40, 42], "meta": 103, "metadata": [8, 9, 38, 45, 74, 85, 86, 102, 105, 106, 107, 109], "metfixee2017": [37, 40, 42], "method": [0, 1, 2, 3, 4, 5, 6, 7, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 86, 87, 102, 104, 105, 106, 107, 109], "method_fcn": 102, "metric": 67, "metric_t": [67, 86], "metu": 103, "mi": 102, "migrat": [88, 102], "min": [7, 105], "min_work": 109, "minimum": [0, 2, 52, 62, 104, 105, 106, 107], "minor": 87, "minw": 5, "mismatch": 34, "miss": [36, 37, 59, 104, 106], "missinget": [36, 37, 40, 42, 86, 98], "mistag": 89, "mitig": 102, "mix": [104, 106], "mixin": [36, 37, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 67, 68, 69, 70, 71, 72, 73, 86, 96, 97, 98, 99, 105], "mkdir": 102, "ml": [30, 85, 86, 94], "ml_tool": [30, 31, 32, 33, 34, 86, 104], "mlresult": 104, "mltool": 104, "mmevent": 105, "mock": 102, "mode": [4, 6, 28, 38, 103, 106], "model": [31, 32, 33, 34, 104], "model_url": 33, "modern": 86, "modifi": [6, 10, 11, 12, 13, 14, 16, 17, 74], "modifiernam": 6, "modul": [33, 37, 40, 41, 42, 86, 87, 102, 103, 104, 105, 106, 107], "momenta": 36, "momentum": [7, 36, 43, 64, 67, 72, 73, 97, 98, 99, 107], "momentumawkward2d": [73, 98, 99], "momentumawkward3d": [72, 99], "momentumawkward4d": [67, 97, 98, 99], "momentumprotocollorentz": [97, 98, 99], "momentumprotocolplanar": [97, 98, 99], "momentumprotocolspati": [97, 98, 99], "mont": 86, "more": [4, 40, 55, 84, 86, 87, 102, 104, 105, 106, 109], "most": [34, 87, 102, 105], "mostli": [87, 94], "mother": 55, "mount": 87, "move": 87, "mover": 103, "mpi": 36, "mplhep": [102, 106], "mu": [107, 109], "much": 87, "muef": 102, "multi": [36, 86, 87], "multibin": 102, "multicor": 107, "multipl": [4, 6, 67, 69, 70, 72, 73, 84, 85, 86, 87, 92, 103, 106, 107], "multipli": [6, 67, 68, 69, 70, 71, 72, 73, 86], "multiprocess": 84, "multithread": 84, "muon": [36, 37, 40, 41, 42, 86, 98, 105, 106, 107, 109], "muon_charg": [107, 109], "muon_eta": [107, 109], "muon_fsrphotonidx": [37, 40, 42], "muon_genpartidx": [37, 40, 42], "muon_jetidx": [37, 40, 42], "muon_mass": [107, 109], "muon_pfreliso03_al": 107, "muon_phi": [107, 109], "muon_pt": [107, 109], "muonidx1": 102, "muonidx1g": 102, "muonidx2": 102, "muonidx2g": 102, "muonidxg": 102, "muonloos": 36, "muonloosech": 36, "muonspectrometertrackparticl": 41, "muonsubtrfactor": 102, "muontight": 36, "muontightch": 36, "muoppsign": 106, "must": [0, 2, 4, 20, 22, 23, 24, 30, 38, 46, 87, 105, 106, 108, 109], "my": [102, 109], "my_env": 87, "my_password_fil": 109, "my_secret_password": 109, "mycorrect": 102, "myenv": 87, "myjetsf": 102, "myprocessor": [74, 107, 109], "myvari": 105, "n": [0, 2, 4, 5, 26, 36, 37, 43, 86, 99, 103, 104, 106], "na": 103, "nam2": 107, "name": [0, 2, 4, 6, 7, 9, 12, 25, 26, 36, 37, 38, 40, 41, 42, 43, 46, 86, 87, 102, 103, 105, 106, 107, 109], "name1": [20, 22, 23, 24, 107], "name_": 37, "name_map": [18, 19, 102], "namedtupl": [0, 2, 106], "namespac": 108, "nan": 103, "nano_di": [102, 105, 106], "nanoa": 103, "nanoaod": [8, 9, 37, 38, 40, 41, 42, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 86, 95, 103, 104, 105, 106], "nanoaodschema": [8, 9, 38, 40, 41, 42, 86, 95, 102, 105, 106, 107], "nanoaodsim": 103, "nanoaodv5": 37, "nanoaodv6": 37, "nanoaodv7": [36, 37], "nanocollect": [41, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 66, 86, 96, 98], "nanoev": [8, 9, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 85, 86, 102, 104, 106, 107, 109], "nanoeventsfactori": [36, 37, 86, 95, 102, 104, 105, 106, 107], "narrow": 57, "nativefil": 38, "natur": 106, "ncharg": 36, "nchc": 103, "nconstitu": 102, "ndarrai": [0, 2, 4, 6, 7, 27, 28, 29, 34], "ndcctool": 109, "ndf": 36, "nearest": [7, 67, 86, 105], "nearli": 87, "necessari": [20, 22, 23, 24, 35, 36, 37, 39, 41, 43, 87, 107], "necessary_column": 104, "need": [4, 8, 9, 30, 31, 33, 46, 84, 85, 86, 87, 102, 105, 109], "neemef": 102, "neg": [67, 68, 69, 70, 71, 72, 73, 86], "nehef": 102, "nelectron": 102, "nest": [37, 43, 104, 105], "nested_index_item": [37, 86], "nested_item": [37, 86], "network": 104, "neutral": 36, "neutrino": 105, "nev": [2, 3, 86, 106], "nevcutflow": [0, 1, 86, 106], "never": 104, "nevonecut": [0, 1, 86, 106], "nevt": 107, "new": [4, 6, 26, 87, 102, 105, 107, 109], "new_array_object": 105, "newaxi": 104, "newer": 87, "next": 87, "nfile": 103, "niceti": 30, "nicknam": 26, "nj": 102, "njet": 104, "njetpfcand": 104, "njit": 107, "nlep": 107, "nminuson": [3, 4, 86, 88, 106], "nminusone_result": 106, "nminusoneresult": [2, 106], "nminusonetonpz": [2, 86, 88], "nmuon": [102, 107], "nneutral": 36, "no_wrap": 103, "node": 102, "noelectron": 106, "nomin": [6, 7, 107], "nomuon": 106, "non": [46, 87, 93, 104], "none": [0, 2, 6, 7, 13, 14, 15, 16, 17, 21, 26, 28, 30, 31, 32, 33, 34, 38, 75, 79, 103, 104, 105, 106, 107, 109], "nonserializ": 34, "nonserializable_attribut": [31, 32, 33, 34, 94], "norm": 15, "normal": [15, 99, 102, 106], "normtag": 27, "normtag_phys": 27, "note": [27, 87, 102, 106, 109], "notebook": [85, 87, 103, 104, 107], "notic": [104, 105, 106], "notr": 109, "now": [87, 102, 103, 104, 106], "np": [99, 102, 104, 106], "npartit": [104, 105, 106], "npfcand": 104, "npz": [0, 2, 106], "nsubjetsprun": 36, "nsubjetssoftdrop": 36, "nsubjetstrim": 36, "ntimehit": 36, "ntupl": 105, "ntupliz": 105, "null": [4, 15], "num": [74, 102, 104, 105, 106, 107, 109], "num_row": 38, "numaxis0": 107, "numba": [86, 107], "number": [0, 2, 4, 6, 26, 28, 29, 34, 36, 87, 104, 106, 107, 109], "numpi": [0, 2, 4, 6, 7, 27, 28, 29, 30, 31, 32, 33, 34, 38, 84, 86, 94, 99, 102, 104, 106], "numpy_cal": [30, 31, 32, 33, 34, 86, 104], "numpy_call_wrapp": [31, 32, 33, 34, 86, 94, 104], "numpy_to_awkward": 30, "numpython": 86, "nx1": 104, "nx128": 104, "nx3": 104, "nzz": 107, "o": [36, 37, 102, 103, 104], "object": [0, 1, 2, 3, 4, 5, 6, 7, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 33, 34, 35, 38, 42, 43, 44, 45, 46, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 64, 65, 66, 74, 83, 97, 102, 104, 105, 106, 107, 108], "object_path": 103, "obtain": 107, "occur": 30, "od": 103, "off": 43, "offset": [36, 37, 38], "often": [84, 87, 105], "ogenpart": 37, "ok": 102, "omit": [30, 107], "onc": [4, 102], "one": [4, 7, 26, 36, 37, 41, 43, 55, 84, 85, 87, 102, 103, 104, 105, 106, 107, 109], "onecut": 106, "ones": [55, 104, 106], "ones_lik": 104, "onli": [6, 10, 11, 12, 13, 14, 15, 16, 17, 33, 38, 87, 103, 104, 105, 106, 107, 109], "open": [0, 2, 7, 15, 38, 85, 86, 103, 104, 105, 107, 109], "open_ev": 104, "opendata": 109, "oper": [6, 30, 33, 84, 104, 105, 106, 107], "opposit": [106, 107], "opt": [87, 102, 105], "optim": [104, 105], "optimize_graph": 104, "option": [0, 2, 4, 6, 7, 8, 9, 15, 38, 86, 103, 104, 105, 106, 107, 109], "order": [4, 17, 20, 85, 86, 106, 109], "org": [30, 87, 103, 104], "organ": 15, "organiz": 84, "origin": [15, 35, 43, 71, 72, 73, 99, 102, 104, 105], "oserror": 15, "other": [4, 5, 25, 29, 44, 46, 47, 67, 68, 69, 70, 71, 72, 73, 84, 85, 86, 102, 105, 107, 109], "otherwis": [0, 2, 33, 86, 102, 104, 106], "our": [86, 87, 102, 104, 106, 107, 109], "out": [0, 2, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 25, 74, 86, 100, 102, 104, 107], "out_avail": 15, "out_upd": 15, "outfil": 103, "outgo": 84, "outlist": 103, "output": [8, 9, 27, 30, 33, 83, 84, 102, 103, 104, 106, 107, 109], "output_fil": 103, "output_list": 33, "outsid": [30, 109], "outsit": 103, "outtre": 103, "over": [15, 27, 30, 46, 84, 104, 107], "overflow": 102, "overlai": 107, "overload": [25, 30, 104], "overrid": [0, 2, 106], "overridden": [68, 69, 70, 71], "overview": [84, 85], "own": [85, 86, 87, 104, 106], "p": [36, 74, 102, 103, 107, 109], "p4": [64, 86, 107], "p_": 107, "p_2": 109, "p_3": 109, "p_4": 109, "p_5": 109, "p_t": [102, 106], "pacakg": 104, "pack": [4, 55, 105, 109], "packag": [30, 84, 86, 87, 93, 102, 104, 105, 107, 108], "packedselect": [0, 2, 85, 86, 88], "pad": [30, 104], "pad_non": 104, "page": [84, 85, 86], "pair": [30, 104, 105, 106, 107], "panda": 7, "pantsbuild": 87, "paradigm": 84, "paral": 107, "parallel": [84, 105, 107], "param": [8, 9, 10, 11, 12, 13, 14, 16, 17], "paramet": [0, 2, 4, 6, 7, 15, 27, 28, 29, 33, 36, 38, 55, 105, 106], "parameter": 102, "parameter1": [20, 22, 23, 24], "pare": 26, "parent": [36, 37, 40, 41, 42, 47, 48, 49, 55, 56, 67, 68, 69, 70, 71, 72, 73, 86, 105], "parquet": [38, 104], "parquet_opt": 38, "parquetfil": 38, "pars": [7, 29, 31, 34, 38, 93, 106], "parsl": [86, 87, 107], "part": [88, 102, 104], "part_np_arrai": 104, "part_pad": 104, "partial": 6, "partial_weight": [6, 86], "particl": [36, 41, 55, 56, 61, 84, 104, 105], "particleflowjet02": 36, "particleflowjet04": 36, "particleflowjet08": 36, "particleflowjet15": 36, "particlenet": [85, 86], "particlenetexampl": 104, "particlenetexample1": 104, "particlenetexample2": 104, "particular": [6, 87, 104], "particularli": 6, "partit": [38, 84, 105], "partition_kei": 38, "partitionwis": 104, "parton": [36, 105], "partonflavour": [102, 105], "pass": [0, 2, 4, 8, 9, 10, 15, 30, 34, 38, 74, 94, 102, 103, 104, 105, 106, 107, 109], "password": 109, "password_fil": 109, "past": 104, "path": [0, 2, 15, 27, 29, 36, 38, 87, 105], "pathlib": 38, "pattern": [36, 37, 41, 43, 85, 86], "pb": [27, 36], "pcolormesh": 102, "pdf": 36, "pdf1": 36, "pdf2": 36, "pdg": [55, 105], "pdgid": 105, "pdune": 95, "pduneschema": [86, 95], "pe": [47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, 72, 73], "peek": 104, "peform": 106, "penalti": 104, "per": [7, 14, 27, 102, 104, 105, 109], "perform": [30, 32, 68, 69, 70, 71, 84, 103, 104, 106], "permiss": 87, "permit_dask": 106, "permut": 107, "persistent_cach": 38, "pex": 87, "pf": [40, 50, 86, 104], "pfcand": [40, 50, 86, 98, 104], "pfcands_d0": 104, "pfcands_dz": 104, "pfcands_eta": 104, "pfcands_phi": 104, "pfcands_pt": 104, "pfcandsidxg": 104, "pfnano": [40, 50, 51, 61, 104], "pfnanoaod": 105, "pfnanoaodschema": [86, 95, 104, 105], "ph": [36, 103], "phi": [36, 43, 47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, 72, 73, 99, 102, 104, 105, 106, 107, 109], "phiouter": 36, "photon": [36, 37, 40, 42, 54, 86, 98], "photon_electronidx": [37, 40, 42], "photon_genpartidx": [37, 40, 42], "photon_jetidx": [37, 40, 42], "photonch": 36, "phy": 86, "physic": [43, 84, 86, 97], "physik": 103, "physlit": [41, 95], "physliteschema": [86, 95, 105], "pi": [67, 72, 73], "picklabl": 83, "picobarn": 27, "pid": 36, "piec": 102, "pile": 36, "pileup": 102, "pip": [86, 87], "place": [6, 38, 74, 87, 106], "placehold": 104, "planar": [97, 98, 99], "planarmomentum": [97, 98, 99], "plane": [36, 67, 71, 72, 73], "platform": 86, "pleas": [86, 87, 102, 104, 106, 107], "plot": [0, 2, 86, 102, 106, 107], "plot1d": [102, 106, 107], "plot2d": [102, 106], "plot_var": [0, 2, 86, 106], "plt": [102, 106, 107], "pm": [47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, 72, 73], "pmod": [33, 86], "pn_exampl": 104, "pn_example1": 104, "pn_example2": 104, "pn_test": 104, "pnf": 103, "po": [66, 86], "pog": 27, "point": [7, 25, 26, 36, 43, 72, 73, 87, 104, 105], "polar": [68, 99], "polartwovector": [59, 86, 98, 99], "pool": 109, "pop": 105, "popd": [87, 102], "popular": [102, 104], "port": 109, "portabl": [86, 109], "posit": [36, 53, 57, 66], "possibl": [25, 26, 55, 86, 102, 105, 106], "possibli": [6, 27, 87, 105], "postfix": 37, "postprocess": [74, 86, 107, 109], "postprocess_awkward": [30, 86, 104], "potenti": 104, "powheg": 103, "pp": 103, "pr": 104, "practic": 103, "pre": [38, 86, 103, 105], "pre_0": 109, "pre_1": 109, "precomput": 92, "preconvert": 87, "predat": 105, "predict": [31, 34], "predict_arg": 34, "prefer": 87, "prefix": [26, 41, 102], "prepar": [102, 104], "prepare_awkward": [30, 85, 86], "preprocess": [8, 9, 10, 85, 86, 107, 109], "present": [15, 26, 87, 106], "pretti": 103, "previou": [4, 85], "previous": [4, 11, 12, 38, 87, 88], "primari": [43, 107], "primaryvertic": 43, "primit": [25, 84], "print": [0, 2, 86, 87, 102, 103, 104, 105, 106, 107, 109], "print_dataset_queri": 103, "print_replica": 103, "print_stdout": 109, "probabl": 104, "procedur": 87, "proceed": 86, "process": [4, 11, 12, 13, 14, 15, 16, 17, 26, 36, 74, 84, 86, 102, 103, 104, 107, 109], "processid": 36, "processor": [8, 9, 74, 85, 86, 88, 105, 109], "processorabc": [8, 9, 84, 86, 100, 107, 109], "proctim": 36, "produc": [26, 105, 109], "program": [38, 84, 109], "progress": [41, 86, 101, 109], "progresscolumn": [75, 101], "project": 86, "prompt": [87, 105], "properli": 34, "properti": [7, 20, 22, 23, 24, 63, 68, 69, 70, 71, 73, 84, 109], "property1": [20, 22, 23, 24], "protocol": 33, "prototyp": 86, "provid": [6, 26, 29, 44, 47, 48, 49, 67, 68, 69, 70, 71, 72, 73, 84, 85, 86, 87, 89, 91, 94, 97, 99, 102, 104, 105, 106, 107, 109], "prune": 36, "prunedp4": 36, "pseudorapid": [36, 69, 70], "pseudorapitii": 7, "pt": [7, 25, 36, 43, 47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, 72, 73, 99, 102, 104, 105, 106, 107, 109], "pt_axi": 107, "pt_gen": 102, "pt_jec": 102, "pt_orig": 102, "pt_raw": 102, "pt_z1_mu1": 107, "pt_z1_mu2": 107, "ptau": [47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, 72, 73], "ptd": 36, "ptetaphiecandid": [86, 97], "ptetaphielorentzvector": [48, 86, 97, 99], "ptetaphievector": 43, "ptetaphimcandid": [52, 53, 54, 56, 57, 58, 60, 61, 62, 65, 86, 97, 98, 107, 109], "ptetaphimcollect": [37, 40, 42, 86, 98], "ptetaphimlorentzvector": [49, 55, 63, 86, 97, 98, 99], "ptgenjet": 102, "ptraw": 102, "ptval": 102, "pu_rho": 102, "puformuoval_106x_upgrade2018_realistic_v16": 103, "pufortrk_trk_106x_upgrade2018_realistic_v1": 103, "pufortrkv2_trkv2_106x_upgrade2018_realisti": 103, "puid": 102, "pull": [86, 87], "puppimet": [37, 40, 42], "puppimissinget": 36, "purdu": 103, "purpos": 109, "pushd": [87, 102], "pv": [37, 40, 42], "pvec": [67, 86], "pwd": 87, "px": [36, 43, 47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, 72, 73], "py": [36, 38, 47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, 72, 73, 102, 103, 104, 105, 106, 107], "pyarrow": 38, "pypi": 87, "pyplot": [102, 106, 107], "pyproject": 86, "pytest": [87, 102], "pythia8": 103, "python": [38, 84, 86, 87, 103, 108, 109], "python3": [87, 102, 104, 105, 107], "python_packag": 109, "pythonpath": 87, "pytorch": [32, 85, 86], "pz": [36, 47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, 72, 73], "q": 36, "qcd": 36, "qed": 36, "qgl": 102, "quadmesh": 102, "qualiti": [86, 107], "quantiti": [43, 84], "quark": [7, 36], "queri": [15, 55, 103], "query_dataset": 103, "query_results_strategi": 103, "queue": [86, 87], "quick": [86, 102], "quickli": 38, "quiet": 104, "quit": 87, "quot": 105, "r": [59, 67, 68, 71, 72, 73, 86, 99, 103, 104, 105, 107, 109], "r2": [72, 73, 86], "radiu": [53, 57], "rais": [30, 32, 34, 102], "random": [99, 102], "rang": [11, 12, 13, 16, 36, 102, 107], "rapid": 36, "rare": [84, 87], "rather": 87, "ratio": [36, 102], "raw": [102, 104, 105], "rawfactor": 102, "rawmet": [37, 40, 42, 106], "rawpuppimet": [37, 40, 42], "rc": 103, "rcac": 103, "rdatafram": 106, "re": [4, 87, 102, 106], "read": [7, 25, 36, 38, 85, 86, 102, 103, 106, 107], "read_csv": 7, "readabl": [75, 104], "readcsv": [7, 86], "readm": 87, "readonlydirectori": 38, "readthedoc": 104, "readtim": 36, "real": [102, 105, 109], "realiti": [68, 69, 70, 71], "realiz": [67, 69, 70, 72, 73], "reason": [87, 107], "rebin": 107, "recalcul": 15, "recalculate_step": 15, "receiv": 74, "recent": 87, "reco_beam": 39, "reco_daughter_allshow": 39, "reco_daughter_alltrack": 39, "recobeam": 39, "recogniz": 30, "recommend": [85, 87], "reconstruct": 84, "record": [37, 38, 41, 43, 55, 105, 107], "rectangular": 84, "red": 103, "reduc": [10, 11, 12, 13, 14, 15, 16, 17, 84, 86, 104, 107], "reduce_list": [25, 26], "reduct": 84, "ref": 37, "refactor": 86, "refer": [36, 37, 38, 40, 41, 42, 44, 55, 86, 104, 105, 106], "reg": 102, "regardless": 37, "regex": 103, "regex_sit": 103, "region": 106, "regist": [46, 109], "registri": 87, "regular": [106, 107, 109], "reimplement": 30, "rel": [6, 87], "relat": [41, 104], "releas": [86, 87, 105], "relev": 107, "reli": 107, "reloc": 87, "remain": 10, "rememb": 106, "remot": [105, 109], "remov": [41, 102, 107], "render": [75, 85, 86, 105, 107], "repeat": [105, 106], "replac": [102, 103], "replica": [85, 86], "replicas_info": 103, "replicas_strategi": 103, "repo": [86, 87], "report": [8, 9, 11, 12], "report_dict": 12, "repositori": [87, 104], "repres": [7, 38, 99, 104, 106], "represent": 105, "request": [4, 87, 104, 106], "requir": [4, 31, 33, 47, 48, 49, 55, 67, 68, 69, 70, 71, 72, 73, 84, 86, 87, 104, 105, 106, 107, 109], "reshap": [7, 86], "reso": 23, "resolut": [23, 24, 91], "resolv": [37, 40, 42, 97], "reson": 105, "resourc": [84, 86, 109], "resources_mod": 109, "respect": [7, 37, 40, 42, 84, 104], "respons": 104, "restrict": 84, "restructur": 30, "result": [0, 2, 4, 15, 32, 43, 74, 86, 87, 102, 103, 104, 106, 107], "retmap": 104, "return": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 25, 27, 29, 30, 32, 33, 35, 37, 41, 43, 46, 52, 53, 55, 57, 62, 67, 68, 69, 70, 71, 72, 73, 74, 102, 104, 106, 107, 109], "return_arrai": [30, 104], "revers": 103, "reweight": 102, "rewrap_recordarrai": 86, "rho": [36, 47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, 72, 73, 99, 102], "rich": [101, 102, 103, 105], "rich_bar": 86, "richer": 105, "ring": 36, "rl": 103, "robin": 103, "root": [15, 25, 26, 35, 36, 37, 38, 43, 85, 86, 103, 104, 105, 106, 107, 109], "rotat": 106, "roughli": 107, "round": [15, 103], "routin": [30, 87, 104], "row": [11, 12, 13, 16, 84], "row_styl": 103, "rt": 103, "rucio": [85, 86], "rucio_util": 103, "run": [8, 9, 27, 28, 29, 31, 32, 33, 34, 37, 85, 86, 87, 94, 102, 105, 107, 109], "run2012b_doublemupark": [107, 109], "run2012c_doublemupark": [107, 109], "run2018c": 103, "run_fn": 109, "runiisummer20ul18nanoaodv9": 103, "runlumi": 27, "runner": 109, "runtim": 109, "runtime_cach": 38, "runtimewarn": [102, 106, 107], "rvalu": 6, "rwth": 103, "sai": [102, 106], "same": [0, 2, 4, 6, 25, 37, 72, 73, 87, 104, 105, 106, 107, 109], "sampl": [25, 102, 104, 105, 106, 109], "saransh": [102, 104, 107], "save": [0, 2, 74, 85, 86, 87, 102, 104, 106], "save_form": [15, 107], "saver": [1, 3], "sbgdcach": 103, "scalar": [0, 2, 36, 67, 68, 69, 70, 71, 72, 73, 106, 107], "scalarht": 36, "scale": [7, 22, 24, 36, 85, 86, 91, 100, 104, 107, 109], "scalefactors_tight_electron": [25, 102], "scalepdf": [36, 105], "schedul": [15, 84], "scheduler_url": 103, "schedulersimpli": 84, "schedulur": 84, "schema": [8, 9, 35, 36, 37, 38, 39, 40, 41, 42, 43, 95, 98, 102, 104, 105, 106], "schema_vers": 102, "schemaclass": [8, 9, 36, 37, 38, 102, 104, 105, 106, 107], "schemav2": 102, "scientif": [84, 86, 87], "scikit": [38, 102, 105, 107], "scipi": 86, "scope": 103, "score": 104, "scout": 42, "scoutingelectron": 42, "scoutingfatjet": 42, "scoutingjet": 42, "scoutingmet": 42, "scoutingmuonnovtx": 42, "scoutingmuonnovtxdisplacedvertex": 42, "scoutingmuonvtx": 42, "scoutingmuonvtxdisplacedvertex": 42, "scoutingnano": 42, "scoutingnanoaodschema": [86, 95], "scoutingphoton": 42, "scoutingprimaryvertex": 42, "scracth": 109, "scratch": [87, 109], "scratch_dir": 109, "script": [87, 109], "sdfarm": 103, "se01": 103, "search": [86, 107], "second": [0, 2, 36, 106, 107, 109], "secondari": [36, 40, 51, 64], "secondaryvertex": [37, 40, 42, 86, 98], "seconds_per_lumi_lhc": [27, 86], "secret": 109, "section": [36, 84, 86, 87], "sed": 87, "see": [4, 7, 36, 38, 86, 87, 105, 106, 109], "select": [0, 2, 4, 52, 62, 103, 104, 106], "self": [7, 55, 74, 87, 102, 104, 105, 107, 109], "send": 102, "sensibl": 86, "sent": 109, "separ": [85, 86], "seper": 106, "sequenc": 105, "ser": 86, "seri": 20, "serializ": [8, 9, 74, 102], "serv": 25, "server": [33, 86, 87, 104], "servic": [87, 94], "set": [4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 29, 33, 37, 55, 84, 87, 102, 104, 105, 106, 107, 109], "set_xlim": 107, "set_xscal": 107, "set_ylim": 107, "set_yscal": 107, "setitem": 105, "setup": [87, 109], "setuptool": 87, "sever": [4, 84, 87, 102, 105, 106, 107, 109], "sf": [6, 102], "sfhist": 102, "sft": 87, "sh": 87, "shape": [4, 7, 25], "shell": [85, 86, 87], "shift": 6, "short": 109, "short_nam": 103, "shortcut": 105, "shorthand": 4, "should": [8, 9, 15, 27, 30, 32, 33, 34, 74, 104, 105, 106, 107, 109], "show": [75, 102, 103, 105, 106, 107, 109], "showcas": 106, "shower": 39, "showin": 107, "shown": 87, "sibl": 105, "side": [36, 104, 109], "sigma": 36, "sign": [87, 107], "signal": [36, 106], "signatur": [20, 22, 23, 24, 86], "signific": [104, 105], "similar": [86, 102, 103, 105, 106, 109], "similarli": [105, 109], "simpl": [30, 34, 104, 105, 107, 109], "simpli": [30, 74, 87, 94], "simplifi": [102, 103], "simul": [86, 105, 107], "simultan": [8, 9], "sin": 71, "sinc": [31, 84, 87, 105, 106, 107], "singl": [6, 25, 37, 38, 43, 74, 84, 104, 105, 107, 109], "singlemuon": 103, "singleton": [36, 86, 107], "singular": [87, 104], "singularityimag": 87, "site": [27, 85, 86, 87, 102, 104, 105, 107, 109], "siteconf": 27, "sites_count": 103, "size": [6, 15, 33, 87, 99, 102, 103], "skeleton": [74, 107], "skip": [15, 38, 107], "skip_bad_fil": [15, 107], "skyhook_opt": 38, "sl6": 87, "slc6": 87, "slice": [10, 16, 17, 37, 40, 42, 104, 105, 106], "slice_chunk": 86, "slice_fil": 86, "slightli": 102, "slowdown": 107, "small": [84, 87, 99, 104, 105, 107], "smaller": [4, 34], "smith": 86, "snapshot": 107, "snippet": 104, "so": [10, 13, 14, 16, 17, 34, 37, 40, 41, 42, 43, 84, 85, 87, 99, 105, 106, 108], "soft": 36, "softactivityjet": [37, 40, 42], "softactivityjetht5": 106, "softdrop": 36, "softdroppedp4": 36, "softdroppedsubjet1": 36, "softdroppedsubjet2": 36, "softmax": 104, "softwar": [87, 109], "solut": 87, "some": [27, 44, 68, 69, 70, 71, 87, 97, 102, 103, 104, 105, 107, 108], "someth": [26, 43, 104], "sort": [97, 103, 107], "sorted_sit": 103, "sourc": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 87, 92, 102, 105, 109], "sourcenam": 22, "span": 84, "spark": [74, 86, 87, 107], "spatial": [97, 98, 99], "spatialmomentum": [97, 98, 99], "spawn": 84, "special": [30, 37, 87], "special_item": [37, 86], "specif": [4, 16, 33, 43, 87, 94, 102, 104, 106, 107], "specifi": [0, 2, 4, 6, 10, 11, 12, 15, 16, 17, 20, 22, 23, 24, 26, 34, 37, 102, 103, 104, 106, 107], "spectra": 102, "spectrum": 107, "speed": [75, 105], "speedcolumn": [86, 101], "spheric": [71, 99], "sphericalthreevector": [86, 99], "split": [33, 43, 103, 105, 106, 109], "split_on_exhaust": 109, "sqrt": [67, 71, 72, 73, 105], "squar": [36, 67, 72, 73], "src": [38, 102, 105, 107], "srv": 87, "stabl": [27, 104], "stack": [84, 87, 102, 104], "stacklevel": 79, "stage": 107, "standalon": 93, "standard": [43, 102], "start": [0, 2, 37, 38, 86, 102, 103, 104, 106, 107, 109], "start3d": 39, "start4d": 39, "stat": [103, 106], "state": [74, 84, 104], "statist": [0, 2, 84, 86, 102, 106], "statu": [36, 55, 105], "statusflag": [55, 105], "steal": 102, "step": [0, 2, 15, 16, 38, 43, 103, 106, 107], "step_siz": [15, 103, 107], "step_size_safety_factor": 15, "steps_per_fil": [38, 107], "still": [37, 40, 42, 87, 104, 106], "stop": [0, 2, 26, 38, 106], "storabl": 4, "storag": [106, 107], "store": [4, 6, 25, 26, 43, 103, 106], "storeindividu": 6, "str": [0, 2, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 27, 29, 31, 32, 33, 38, 46, 55, 75, 103], "straightforward": 102, "strategi": 103, "strcat": [102, 107], "strcategori": [107, 109], "strictli": 104, "string": [0, 2, 33, 38, 103, 105, 106], "stripe": 74, "structur": [43, 84, 86, 104, 105], "style": [4, 27, 103, 106], "sub": [38, 86, 104, 105], "subclass": 99, "subgenjetak8": [37, 40, 42], "subjet": [36, 37, 40, 42, 53, 86], "subjet_subgenjetak8idx": 40, "subjetti": 36, "sublead": 36, "submiss": 87, "submit": [38, 87, 104, 109], "subplot": [102, 107], "subprocess": 36, "subsequ": [55, 105], "subset": [4, 6, 15, 46, 108], "subtract": 104, "success": 109, "successfulli": 15, "sudo": 86, "suffix": 83, "suggest": 83, "sum": [36, 47, 67, 72, 73, 86, 102, 104, 105, 106, 107, 109], "summari": [0, 1, 2, 3, 4, 5, 6, 7, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 84], "sumpt": 36, "sumpt2": 36, "sumptcharg": 36, "sumptchargedpu": 36, "sumptneutr": 36, "sumw": [5, 74, 102, 109], "sumw2": 5, "super": 86, "supersed": 99, "suppli": [6, 8, 9, 11, 12, 15, 36, 37, 43, 84, 86, 105], "support": [4, 7, 26, 84, 86, 102, 104, 105, 106], "sure": [27, 30, 107], "surviv": [0, 2, 106], "sv": [37, 40, 42, 51, 64, 86], "sy": 87, "symmetr": 6, "sync": 84, "syntax": [86, 87, 104, 105], "system": [87, 107, 109], "systemat": [6, 7, 26, 45, 52, 53, 57, 58, 59, 60, 62, 65, 86, 96, 98, 102], "sytem": 103, "t": [36, 47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, 72, 73, 87, 99, 102, 103, 105, 106, 107, 109], "t1_de_kit_disk": 103, "t1_es_pic_disk": 103, "t1_fr_ccin2p3_disk": 103, "t1_it_cnaf_disk": 103, "t1_ru_jinr_disk": 103, "t1_uk_ral_disk": 103, "t1_us_fnal_disk": 103, "t2": 103, "t2_be_iih": 103, "t2_br_sprace": 103, "t2_br_uerj": 103, "t2_ch_cern": 103, "t2_de_desi": 103, "t2_de_rwth": 103, "t2_es_ciemat": 103, "t2_es_ifca": 103, "t2_fr_iphc": 103, "t2_it_legnaro": 103, "t2_tr_metu": 103, "t2_tw_nchc": 103, "t2_ua_kipt": 103, "t2_uk_london_": 103, "t2_uk_london_brunel": 103, "t2_uk_sgrid_bristol": 103, "t2_uk_sgrid_ralpp": 103, "t2_us_caltech": 103, "t2_us_florida": 103, "t2_us_mit": 103, "t2_us_nebraska": 103, "t2_us_purdu": 103, "t2_us_ucsd": 103, "t2_us_vanderbilt": 103, "t2_us_wisconsin": 103, "t3_ch_psi": 103, "t3_fr_ipnl": 103, "t3_kr_kisti": 103, "t3_kr_uo": 103, "tabl": [26, 29, 37, 85, 92, 103], "table_column": 75, "tag": [7, 36, 85, 86, 89, 103], "tailor": 93, "take": [87, 102, 104, 105], "talk": 87, "tan": 99, "tar": [87, 109], "tarbal": [87, 109], "target": [33, 36, 37, 102], "task": [15, 38, 75, 84, 107, 109], "taskvin": 84, "tau": [36, 37, 40, 42, 47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 67, 68, 69, 70, 71, 72, 73, 86, 98, 105], "tau_genpartidx": [37, 40, 42], "tau_jetidx": [37, 40, 42], "taujet": 41, "tautag": 36, "tbranch": 105, "technologi": 86, "tempor": [47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, 72, 73], "temporari": 109, "ten": 107, "tend": 84, "tensor": 31, "tensorflow": [31, 104], "terabyt": 107, "termin": 87, "terminologi": 84, "test": [25, 84, 86, 87, 102, 104, 105, 106, 109], "testsf2d": [25, 102], "tev": 107, "text": [26, 75, 102], "tf_model": 31, "tf_wrapper": [86, 94, 104], "th2f": 102, "than": [15, 27, 34, 102, 105], "thefil": 26, "thefilt": 10, "thei": [30, 34, 93, 102, 105, 106, 107], "them": [41, 85, 105, 106, 107], "therefor": 106, "thereof": 83, "theslic": [16, 17], "theta": [36, 47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, 72, 73, 99], "thetyp": 26, "thi": [0, 2, 4, 6, 7, 15, 20, 22, 23, 24, 26, 27, 28, 29, 30, 32, 33, 35, 36, 37, 38, 39, 41, 43, 44, 45, 46, 47, 48, 49, 64, 67, 68, 69, 70, 71, 72, 73, 83, 84, 86, 87, 97, 102, 103, 104, 105, 106, 107, 109], "thing": [106, 109], "think": 104, "those": [4, 15, 26, 34, 37, 103, 106], "thousand": 107, "thread": [43, 84, 87], "three": [66, 87], "threevector": [39, 67, 71, 86, 99], "through": [25, 85], "throw": 7, "thrown": 37, "tight": [7, 52, 53, 57, 62, 86], "tightlepveto": [53, 57, 86], "time": [2, 4, 6, 36, 38, 86, 87, 102, 104, 106, 107, 109], "titl": [102, 103, 105, 107], "tkmet": [37, 40, 42], "tmp": 109, "tmpdir": 109, "to_awkward": 104, "to_comput": 107, "to_evalu": 102, "to_npz": [0, 1, 2, 3, 86, 106], "to_numpi": [30, 104], "to_typetrac": 107, "todo": 31, "togeth": [47, 86, 87, 107, 109], "toggl": [15, 38], "toml": 86, "too": 86, "tool": [20, 22, 23, 24, 27, 30, 85, 86, 87, 88, 89, 91, 92, 93, 94, 97], "top": [35, 45, 87, 103, 105], "top_object": [39, 86], "torch": 104, "torch_jit": 32, "torch_wrapp": [86, 94, 104], "torchscript": 104, "total": [4, 6, 36, 106, 107], "touch": 107, "touter": 36, "toward": [67, 72, 73, 86], "tower": 36, "tr": 103, "trace": 102, "track": [6, 36, 39, 64, 74, 106], "trackjet02": 36, "trackjet04": 36, "trackjet08": 36, "trackjet15": 36, "trackparticl": 41, "tradit": [84, 87], "train": 104, "transfer": [15, 75, 109], "transform": [0, 2, 85, 86, 105, 106, 107], "transit": 84, "translat": [30, 33], "transpar": 86, "transvers": [7, 36, 59, 107], "treat": 74, "tree": [38, 84, 103], "treemak": [43, 95, 105], "treemakerschema": [86, 95, 105], "treepath": 38, "tri": 109, "trigger": 36, "trigobj": [37, 40, 42], "trim": 36, "trimmedp4": 36, "triton": [33, 104], "triton_models_test": 104, "triton_wrapp": [86, 94, 104], "tritoncli": 33, "trival": 104, "trivial": [31, 84, 104, 107], "true": [0, 2, 4, 6, 7, 8, 9, 15, 27, 28, 29, 36, 37, 38, 55, 102, 103, 104, 105, 106, 107, 109], "true_beam": 39, "truebeam": 39, "truncat": 104, "truth3": 41, "truth_collect": [41, 86], "truthboson": 41, "truthbottom": 41, "truthelectron": 41, "truthmuon": 41, "truthneutrino": 41, "truthparticl": 41, "truthphoton": 41, "truthtau": 41, "truthtop": 41, "try": [87, 103], "tstart": [107, 109], "ttree": [15, 43, 105, 107], "tttosemileptonic_": 103, "tttosemileptonic_hdampdown_tunec": 103, "tttosemileptonic_hdampup_tunecp5": 103, "tttosemileptonic_mtop166p5_tunec": 103, "tttosemileptonic_mtop169p5_tunec": 103, "tttosemileptonic_mtop171p5_tunec": 103, "tttosemileptonic_mtop173p5_tunec": 103, "tttosemileptonic_mtop175p5_tunec": 103, "tttosemileptonic_mtop178p5_tunec": 103, "tttosemileptonic_tunecp5_13tev": 103, "tttosemileptonic_tunecp5_erdon_1": 103, "tttosemileptonic_tunecp5cr1_13t": 103, "tttosemileptonic_tunecp5cr1_13tev": 103, "tttosemileptonic_tunecp5cr1_erdo": 103, "tttosemileptonic_tunecp5cr1_erdon_13tev": 103, "tttosemileptonic_tunecp5cr2_13t": 103, "tttosemileptonic_tunecp5cr2_13tev": 103, "tttosemileptonic_tunecp5down_13t": 103, "tttosemileptonic_tunecp5up_13tev": 103, "tttosemileptonic_vcb_tunecp5_13t": 103, "tttosemileptonic_widthx0p55_tun": 103, "tttosemileptonic_widthx0p7_tunec": 103, "tttosemileptonic_widthx0p85_tun": 103, "tttosemileptonic_widthx1p15_tun": 103, "tttosemileptonic_widthx1p3_tunec": 103, "tttosemileptonic_widthx1p45_tun": 103, "tupl": [7, 8, 9, 10, 15, 29, 30, 43, 46, 104], "turn": [8, 9, 84], "tutori": [87, 107], "tw": 103, "twiddl": 105, "twiki": [20, 22, 23, 24], "two": [43, 47, 67, 72, 73, 84, 87, 102, 105, 106, 107], "twoelectron": 106, "twomuon": 106, "twovector": [68, 86, 98, 99], "tx": 36, "txt": [26, 27, 102, 109], "ty": 36, "type": [0, 2, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 25, 26, 29, 37, 40, 41, 42, 44, 45, 46, 84, 87, 102, 104, 105, 106, 107], "typetrac": 107, "typic": [30, 86, 99, 104], "u": [27, 104, 107], "ud": 7, "ufl": 103, "uint16": 4, "uint32": 4, "uint64": 4, "uk": 103, "ul20": 103, "ul2018": 103, "ul2018_mini": 103, "ul2018_miniao": 103, "ul2018_miniaodv2": 103, "ul2018_miniaodv2_nanoao": 103, "ul2018_miniaodv2_nanoaodv": 103, "ul2018_miniaodv2_nanoaodv9_gt": 103, "ul2018_miniaodv2_nanoaodv9_gt36": 103, "uncertainti": [6, 18, 19, 22, 46, 86, 89, 91, 102], "unchang": 35, "under": 102, "underl": 30, "underli": [30, 32, 84, 104], "understand": [27, 30, 104], "unexpect": 107, "unflatten": [30, 37, 102, 104], "unformat": 30, "uniform": 92, "union": [15, 46], "uniqu": [28, 38, 107], "unit": [27, 67, 72, 73, 86], "univers": 109, "unl": 103, "unless": 87, "unnecessari": 108, "unpack": [87, 105], "unset": 38, "unspecifi": 106, "untransform": 102, "up": [4, 6, 25, 30, 36, 86, 87, 102, 104, 105, 109], "up_val": 22, "updat": [15, 87, 88, 109], "upgrad": 87, "upon": [8, 9], "upper": [0, 2, 106], "uproot": [8, 9, 15, 38, 43, 74, 84, 86, 103, 104, 105, 106, 107], "uproot5": [38, 107], "uproot_opt": [8, 9, 15, 38], "uproot_writ": [43, 86], "urad": 36, "url": [33, 103], "us": [0, 2, 4, 6, 7, 15, 20, 22, 23, 24, 26, 27, 30, 31, 33, 36, 37, 38, 41, 43, 44, 45, 47, 55, 67, 68, 69, 70, 71, 72, 73, 84, 85, 86, 87, 88, 105, 106, 107, 109], "usag": [85, 103], "uscmsdisk": 103, "use_ak_forth": 38, "user": [0, 2, 4, 8, 9, 15, 30, 31, 33, 34, 84, 86, 87, 94, 102, 103, 104, 105, 106, 107, 109], "userwarn": 104, "usr": 87, "usual": [43, 84, 102, 104, 107, 109], "util": [75, 76, 77, 78, 79, 80, 81, 82, 83, 85, 86, 102, 105, 106, 107], "uuid": [15, 38, 103], "v": 103, "v0": [87, 102], "v1": [36, 86, 103], "v2": [102, 103], "v5": [37, 86, 107], "v6": [37, 86], "v7": [37, 86], "valid": [29, 30, 32, 102, 104, 107, 109], "validate_numpy_input": [30, 31, 32, 33, 34, 86], "valu": [0, 2, 4, 6, 7, 25, 26, 27, 28, 30, 32, 33, 36, 37, 52, 62, 67, 72, 73, 102, 104, 105, 106, 107, 109], "values_astyp": [102, 104], "var": [0, 2, 102, 104, 105, 106], "vari": 46, "variabl": [0, 2, 36, 37, 43, 84, 85, 86, 102, 105, 106], "varianc": [102, 107], "variat": [6, 46, 86], "varieti": 102, "variou": [26, 74, 94, 102, 105, 109], "varying_funct": 46, "ve": 106, "vec": 99, "vec4": 99, "vector": [0, 2, 4, 6, 28, 29, 36, 43, 47, 48, 49, 63, 64, 66, 67, 68, 69, 70, 71, 72, 73, 86, 97, 98, 102, 105, 107], "vector2d": [98, 99], "vector3d": 99, "vector4d": [97, 98, 99], "vectorawkward": [97, 98, 99], "vectorawkward2d": [98, 99], "vectorawkward3d": 99, "vectorawkward4d": [97, 98, 99], "vectorprotocol": [97, 98, 99], "vectorprotocollorentz": [97, 98, 99], "vectorprotocolplanar": [97, 98, 99], "vectorprotocolspati": [97, 98, 99], "venv": 87, "verbatim": 105, "verbos": [104, 109], "veri": [34, 84, 103, 107], "version": [36, 37, 40, 42, 79, 87, 102, 104, 105, 106], "version_info": 87, "versu": 36, "vertex": [36, 37, 40, 42, 51, 64, 86, 98], "vertexindex": 36, "vertic": [36, 40, 43], "veto": [52, 53, 57, 86], "via": [6, 28, 31, 32, 43, 84, 86, 104, 105, 106], "view": [38, 87, 106, 107], "virtu": 105, "virtual": 86, "virtual_env": 87, "virtualenv": [86, 87], "visibl": [56, 84, 87, 105], "visual": 104, "vtx3d": 39, "w": [102, 103, 109], "wa": [87, 102, 106], "wai": [4, 84, 86, 87, 102, 103, 104, 106, 109], "want": [4, 104, 105, 106, 107], "warn": [15, 30, 32, 34, 37, 102, 104, 106, 107], "warn_missing_crossref": [36, 37, 86, 102, 105], "we": [6, 17, 30, 31, 34, 38, 86, 87, 102, 104, 105, 106, 107], "web": 86, "weight": [26, 36, 86, 88, 102, 105, 107], "weightdown": 6, "weightedsum": 107, "weightlhef": 36, "weightsdesc": 26, "weightsdown": 6, "weightstatist": [6, 86, 88], "weightsup": 6, "weightup": 6, "welcom": [86, 105], "well": 102, "were": [15, 30, 32, 38, 84, 88, 104, 107], "wget": 104, "wgt": 25, "what": [15, 31, 46, 104, 105, 106, 107], "wheel": 87, "when": [0, 2, 15, 37, 84, 86, 102, 104, 105, 106, 108, 109], "whenev": [4, 106], "where": [0, 2, 4, 15, 29, 35, 37, 40, 41, 42, 55, 67, 87, 99, 102, 104, 105, 106], "whether": [0, 2, 30, 104, 106], "which": [0, 2, 4, 7, 37, 38, 87, 99, 102, 104, 105, 106, 107, 109], "while": [84, 106], "whole": [26, 109], "whose": 15, "why": [85, 86], "wide": [84, 87], "wildcard": [26, 102], "will_b": 79, "window": 87, "wisc": 103, "wise": 84, "wish": [86, 107], "with_nam": [99, 107, 109], "within": [9, 36, 67, 72, 73, 84, 102, 104, 105, 107], "without": [84, 86, 87, 102, 104, 107], "wold": 43, "won": [105, 107], "word": 36, "work": [7, 41, 86, 87, 103, 104, 106, 107], "work_queu": 109, "work_queue_executor_arg": 109, "work_queue_factori": 109, "work_queue_work": 109, "workaround": 87, "worker": [87, 109], "workflow": [8, 9, 109], "workingpoint": 7, "workload": 109, "workqueu": 107, "workqueueexecutor": 109, "worri": 107, "would": [38, 43, 86, 87, 104, 106, 107], "wq": 109, "wq_manager_nam": 109, "wq_port": 109, "wrap": [30, 33, 104, 105], "wrap_c": 102, "wrapper": [4, 30, 31, 32, 33, 34, 85, 86, 87], "write": [0, 2, 84, 102, 104, 107, 109], "writeabl": 43, "written": [104, 109], "wrong": 107, "x": [36, 43, 47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, 72, 73, 99, 103, 104, 106], "x1": [36, 105], "x2": [36, 105], "x86_64": 87, "xd": 36, "xgboost": [34, 104], "xgboost_wrapp": [86, 94, 104], "xgbooster": 34, "xml": 27, "xouter": 36, "xpdf1": 105, "xpdf2": 105, "xrd": 103, "xrdcm": 103, "xrdr": 103, "xrootd": [103, 109], "xsec": 103, "xtick": 106, "xy": [71, 72, 73], "xyzpoint": 43, "y": [0, 2, 36, 43, 47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, 72, 73, 99, 106], "yan": 106, "yd": 36, "ye": 109, "year": 102, "yerr": 106, "yet": 106, "yield": [0, 2, 106, 107], "yieldhist": [0, 2, 86, 106], "you": [20, 22, 23, 24, 26, 27, 46, 86, 87, 102, 104, 105, 106, 107, 109], "your": [38, 85, 86, 87, 104, 106, 107, 109], "youter": 36, "yscale": 106, "ytick": 106, "z": [36, 43, 47, 48, 49, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 67, 68, 69, 70, 71, 72, 73, 99, 105, 107], "z1": 107, "z2": 107, "zcf": 87, "zd": 36, "zenodo": 86, "zero": [102, 107, 109], "zip": [22, 37, 41, 43, 99, 107, 109], "zjet": 103, "zmm": 105, "zouter": 36, "zxf": 87, "zz": 107, "zzto4mu": 107, "zzx": 107, "\u03c3": 106}, "titles": ["Cutflow", "CutflowToNpz", "NminusOne", "NminusOneToNpz", "PackedSelection", "WeightStatistics", "Weights", "BTagScaleFactor", "apply_to_dataset", "apply_to_fileset", "filter_files", "get_failed_steps_for_dataset", "get_failed_steps_for_fileset", "max_chunks", "max_files", "preprocess", "slice_chunks", "slice_files", "CorrectedJetsFactory", "CorrectedMETFactory", "FactorizedJetCorrector", "JECStack", "JetCorrectionUncertainty", "JetResolution", "JetResolutionScaleFactor", "evaluator", "extractor", "LumiData", "LumiList", "LumiMask", "numpy_call_wrapper", "tf_wrapper", "torch_wrapper", "triton_wrapper", "xgboost_wrapper", "BaseSchema", "DelphesSchema", "NanoAODSchema", "NanoEventsFactory", "PDUNESchema", "PFNanoAODSchema", "PHYSLITESchema", "ScoutingNanoAODSchema", "TreeMakerSchema", "NanoCollection", "NanoEvents", "Systematic", "Candidate", "PtEtaPhiECandidate", "PtEtaPhiMCandidate", "AssociatedPFCand", "AssociatedSV", "Electron", "FatJet", "FsrPhoton", "GenParticle", "GenVisTau", "Jet", "LowPtElectron", "MissingET", "Muon", "PFCand", "Photon", "PtEtaPhiMCollection", "SecondaryVertex", "Tau", "Vertex", "LorentzVector", "PolarTwoVector", "PtEtaPhiELorentzVector", "PtEtaPhiMLorentzVector", "SphericalThreeVector", "ThreeVector", "TwoVector", "ProcessorABC", "SpeedColumn", "awkward_rewrap", "compress_form", "decompress_form", "deprecate", "load", "rewrap_recordarray", "rich_bar", "save", "Coffea concepts", "Coffea by Example", "coffea - Columnar Object Framework For Effective Analysis", "Installing coffea", "coffea.analysis_tools", "coffea.btag_tools", "coffea.dataset_tools", "coffea.jetmet_tools", "coffea.lookup_tools", "coffea.lumi_tools", "coffea.ml_tools", "coffea.nanoevents", "coffea.nanoevents.methods.base", "coffea.nanoevents.methods.candidate", "coffea.nanoevents.methods.nanoaod", "coffea.nanoevents.methods.vector", "coffea.processor", "coffea.util", "Applying corrections to columnar data", "Dataset discovery tools", "Running inference tools", "Reading data with coffea NanoEvents", "PackedSelection in Coffea 2023", "Coffea Processors", "API Reference Guide", "Work Queue Executor"], "titleterms": {"2023": 106, "For": [86, 87], "about": 104, "addit": 104, "analysi": [84, 86], "analysis_tool": 88, "api": 108, "appli": 102, "apply_to_dataset": 8, "apply_to_fileset": 9, "ar": 104, "associatedpfcand": 50, "associatedsv": 51, "awkward_rewrap": 76, "axi": 104, "b": 102, "base": [87, 96], "baseschema": 35, "btag_tool": [89, 102], "btagscalefactor": 7, "build": 102, "built": 87, "calcul": 104, "candid": [47, 97], "cast": 104, "citat": 86, "class": [88, 89, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101], "cm": 102, "coffea": [84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 105, 106, 107], "collect": 104, "columnar": [84, 86, 102], "comment": 104, "common": 104, "compress_form": 77, "concept": 84, "contain": 87, "correct": 102, "correctedjetsfactori": 18, "correctedmetfactori": 19, "correctionlib": 102, "creat": 87, "cutflow": 0, "cutflowtonpz": 1, "cvmf": 87, "dask": 103, "data": [102, 105], "datadiscoverycli": 103, "dataset": 103, "dataset_tool": 90, "decompress_form": 78, "delphesschema": 36, "depend": [86, 87], "deprec": 79, "develop": 87, "diagram": [88, 89, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101], "dimens": 104, "directli": 103, "discoveri": 103, "distribut": 84, "document": 86, "effect": 86, "electron": 52, "energi": 102, "environ": 87, "evalu": 25, "exampl": [85, 104], "executor": [84, 109], "extractor": 26, "factorizedjetcorrector": 20, "fanci": 107, "fatjet": 53, "field": 104, "file": 102, "fileset": 103, "filter": 103, "filter_fil": 10, "fix": 104, "framework": 86, "from": [102, 103], "fsrphoton": 54, "function": [90, 101], "gener": 104, "genparticl": 55, "genvistau": 56, "get": 107, "get_failed_steps_for_dataset": 11, "get_failed_steps_for_fileset": 12, "guid": 108, "high": 102, "histogram": 102, "imag": 87, "indic": 86, "infer": 104, "inherit": [88, 89, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101], "instal": [86, 87], "jecstack": 21, "jet": [57, 104], "jetcorrectionuncertainti": 22, "jetmet_tool": [91, 102], "jetresolut": 23, "jetresolutionscalefactor": 24, "lcg": 87, "level": 102, "like": 104, "load": 80, "local": 84, "lookup": 102, "lookup_tool": [92, 102], "lorentzvector": 67, "lowptelectron": 58, "lumi_tool": 93, "lumidata": 27, "lumilist": 28, "lumimask": 29, "max_chunk": 13, "max_fil": 14, "metadata": 103, "method": [96, 97, 98, 99], "missinget": 59, "ml": 104, "ml_tool": 94, "multipl": 104, "muon": 60, "nanoaod": 98, "nanoaodschema": 37, "nanocollect": 44, "nanoev": [45, 95, 96, 97, 98, 99, 105], "nanoeventsfactori": 38, "need": 104, "nminuson": 2, "nminusonetonpz": 3, "numpy_call_wrapp": 30, "object": 86, "open": 102, "option": 87, "other": 104, "out": 84, "own": 102, "packedselect": [4, 106], "particlenet": 104, "pattern": 104, "pduneschema": 39, "pfcand": 61, "pfnanoaodschema": 40, "photon": 62, "physliteschema": 41, "platform": 87, "polartwovector": 68, "portabl": 87, "pre": 87, "prepare_awkward": 104, "preprocess": [15, 103], "processor": [84, 100, 107], "processorabc": 74, "ptetaphiecandid": 48, "ptetaphielorentzvector": 69, "ptetaphimcandid": 49, "ptetaphimcollect": 63, "ptetaphimlorentzvector": 70, "pytorch": 104, "queue": 109, "quick": 87, "read": 105, "refer": 108, "replica": 103, "rewrap_recordarrai": 81, "rich_bar": 82, "root": 102, "rucio": 103, "run": 104, "save": [83, 103], "scale": [84, 102], "scoutingnanoaodschema": 42, "secondaryvertex": 64, "separ": 104, "shell": 103, "site": 103, "slice_chunk": 16, "slice_fil": 17, "speedcolumn": 75, "sphericalthreevector": 71, "start": 87, "strict": 86, "support": 87, "systemat": 46, "tabl": [86, 102], "tag": 102, "tau": 65, "tf_wrapper": 31, "threevector": 72, "tool": [102, 103, 104], "torch_wrapp": 32, "transform": 102, "treemakerschema": 43, "triton_wrapp": 33, "twovector": 73, "us": [102, 103, 104], "util": [101, 103], "variabl": 104, "vector": 99, "vertex": 66, "via": 87, "virtual": 87, "weight": 6, "weightstatist": 5, "why": 104, "work": 109, "wrapper": 104, "xgboost_wrapp": 34, "your": 102}}) \ No newline at end of file diff --git a/wq.html b/wq.html new file mode 100644 index 000000000..32a3e4413 --- /dev/null +++ b/wq.html @@ -0,0 +1,404 @@ + + + + + + + Work Queue Executor — coffea 2024.8.4.dev4+g4f3a673e documentation + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Work Queue Executor

+

Work Queue is a +distributed computing framework used to build large scale manager-worker +applications, developed by the Cooperative Computing Lab +(CCL) at the University of Notre Dame. This executor functions as the +manager program which divides up a Coffea data analysis workload into +discrete tasks. A large number of worker processes running on +cluster or cloud systems will execute the tasks.

+

To set up Coffea and Work Queue together, you may need to +create a Conda environment, install the software, and then +create a tarball containing the environment. The tarball is +sent to each worker in order to provide the same environment +as the manager machine.

+
# Create a new environment
+conda create --yes --name coffea-env -c conda-forge python coffea xrootd ndcctools conda conda-pack
+conda activate coffea-env
+
+# Pack the environment into a portable tarball.
+conda-pack --output coffea-env.tar.gz
+
+
+

To run an analysis, you must set up a work queue executor +with appropriate arguments. Here is a complete example:

+
###############################################################################
+# Example of Coffea with the Work Queue executor.
+#
+# To execute, start this application, and then start workers that will connect
+# to it and execute tasks.
+#
+# Note that, as written, this only processes 4 data chunks and should complete
+# in a short time.  For a real run, change maxchunks=None in the main program
+# below.
+#
+# For simple testing this script will automatically use one local worker. To
+# scale this up, see the wq.Factory configuration below to change to your
+# favorite batch system.
+###############################################################################
+
+###############################################################################
+# Sample processor class given in the Coffea manual.
+###############################################################################
+import work_queue as wq
+
+from coffea.processor import Runner, WorkQueueExecutor
+
+###############################################################################
+# Collect and display setup info.
+###############################################################################
+
+print("------------------------------------------------")
+print("Example Coffea Analysis with Work Queue Executor")
+print("------------------------------------------------")
+
+import getpass
+
+wq_manager_name = f"coffea-wq-{getpass.getuser()}"
+wq_port = 9123
+
+print("Manager Name: -M " + wq_manager_name)
+print("------------------------------------------------")
+
+
+###############################################################################
+# Define a custom Coffea processor
+###############################################################################
+
+from collections import defaultdict
+
+import awkward as ak
+import hist
+
+from coffea import processor
+from coffea.nanoevents.methods import candidate
+
+# register our candidate behaviors
+ak.behavior.update(candidate.behavior)
+
+
+class MyProcessor(processor.ProcessorABC):
+    @property
+    def accumulator(self):
+        return {
+            "sumw": defaultdict(float),
+            "mass": hist.Hist(
+                hist.axis.StrCategory([], name="dataset", label="Dataset"),
+                hist.axis.Regular(
+                    60, 60, 120, name="mass", label=r"$m_{\mu\mu}$ [GeV]"
+                ),
+                name="Events",
+            ),
+        }
+
+    def process(self, events):
+        # Note: This is required to ensure that behaviors are registered
+        # when running this code in a remote task.
+        ak.behavior.update(candidate.behavior)
+
+        output = self.accumulator
+
+        dataset = events.metadata["dataset"]
+        muons = ak.zip(
+            {
+                "pt": events.Muon_pt,
+                "eta": events.Muon_eta,
+                "phi": events.Muon_phi,
+                "mass": events.Muon_mass,
+                "charge": events.Muon_charge,
+            },
+            with_name="PtEtaPhiMCandidate",
+        )
+
+        cut = (ak.num(muons) == 2) & (ak.sum(muons.charge) == 0)
+        # add first and second muon in every event together
+        dimuon = muons[cut][:, 0] + muons[cut][:, 1]
+
+        output["sumw"][dataset] += len(events)
+        output["mass"].fill(
+            dataset=dataset,
+            mass=dimuon.mass,
+        )
+
+        return output
+
+    def postprocess(self, accumulator):
+        return accumulator
+
+
+###############################################################################
+# Sample data sources come from CERN opendata.
+###############################################################################
+
+fileset = {
+    "DoubleMuon": [
+        "root://eospublic.cern.ch//eos/root-eos/cms_opendata_2012_nanoaod/Run2012B_DoubleMuParked.root",
+        "root://eospublic.cern.ch//eos/root-eos/cms_opendata_2012_nanoaod/Run2012C_DoubleMuParked.root",
+    ],
+}
+
+
+###############################################################################
+# Configuration of the Work Queue Executor
+###############################################################################
+
+# secret passed between manager and workers for authentication
+my_password_file = "password.txt"
+with open(my_password_file, "w") as f:
+    f.write("my_secret_password")
+
+work_queue_executor_args = {
+    # Automatically allocate cores, memory and disk to tasks. Adjusts to
+    # maximum values measured. Initially, tasks use whole workers.
+    "resources_mode": "auto",
+    # Split a processing task in half according to its chunksize when it
+    # exhausts the resources allocated to it.
+    "split_on_exhaustion": True,
+    # Options to control how workers find this manager.
+    "master_name": wq_manager_name,
+    # Port for manager to listen on: if zero, will choose automatically.
+    "port": wq_port,
+    # Secret passed between manager and workers
+    "password_file": my_password_file,
+    # The named conda environment tarball will be transferred to each worker,
+    # and activated. This is useful when coffea is not installed in the remote
+    # machines. conda environments are created with conda-pack, and should at
+    # least include coffea, ndcctools (both from conda-forge channel)
+    # and their dependencies.
+    #
+    # "environment_file": "coffea-env.tar.gz",
+    # Debugging: Display notes about each task submitted/complete.
+    "verbose": True,
+    # Debugging: Display output of task if not empty.
+    "print_stdout": False,
+    # Debugging: Produce a lot at the manager side of things.
+    "debug_log": "coffea-wq.log",
+}
+
+executor = WorkQueueExecutor(**work_queue_executor_args)
+
+
+###############################################################################
+# Run the analysis using local Work Queue workers
+###############################################################################
+
+import time
+
+tstart = time.time()
+
+workers = wq.Factory(
+    # local runs:
+    batch_type="local",
+    manager_host_port=f"localhost:{wq_port}",
+    # with a batch system, e.g., condor.
+    # (If coffea not at the installation site, then a conda
+    # environment_file should be defined in the work_queue_executor_args.)
+    # batch_type="condor", manager_name=wq_manager_name
+)
+
+workers.max_workers = 2
+workers.min_workers = 1
+workers.cores = 2
+workers.memory = 1000  # MB
+workers.disk = 2000  # MB
+workers.password = my_password_file
+
+# Instead of declaring the python environment per task, you can set it in
+# the factory directly. This is useful if you are going to run a workflow
+# several times using the same set of workers. It also ensures that the worker
+# itself executes in a friendly environment.
+# workers.python_package = "coffea-env.tar.gz"
+#
+# The factory tries to write temporary files to $TMPDIR (usually /tmp). When
+# this is not available, or causes errors, this scracth directory can be
+# manually set.
+# workers.scratch_dir = "./my-scratch-dir"
+
+with workers:
+    # define the Runner instance
+    run_fn = Runner(
+        executor=executor,
+        chunksize=100000,
+        maxchunks=4,  # change this to None for a large run
+    )
+    # execute the analysis on the given dataset
+    hists = run_fn(fileset, "Events", MyProcessor())
+
+elapsed = time.time() - tstart
+
+
+print(hists)
+print(hists["mass"])
+
+# (assert only valid when using maxchunks=4)
+assert hists["sumw"]["DoubleMuon"] == 400224
+
+
+

When executing this example, +you should see that Coffea begins to run, and a progress bar +shows the creation of tasks. Workers are created locally using the factory +declared.

+

You can also launch workers outside python. For testing purposes, you can start +a single worker on the same machine, and direct it to connect to your manager +process, like this:

+
work_queue_worker -P password.txt <hostname> 9123
+
+
+

Or:

+
work_queue_worker -P password.txt -M coffea-wq-${USER}
+
+
+

With a single worker, the process will be gradual as it completes +one task (or a few tasks) at a time. The output will be similar to this:

+
------------------------------------------------
+Example Coffea Analysis with Work Queue Executor
+------------------------------------------------
+Manager Name: -M coffea-wq-btovar
+------------------------------------------------
+Listening for work queue workers on port 9123.
+submitted preprocessing task id 1 item pre_0, with 1 file
+submitted preprocessing task id 2 item pre_1, with 1 file
+preprocessing task id 2 item pre_1 with 1 events on localhost. return code 0 (success)
+allocated cores: 2.0, memory: 1000 MB, disk 2000 MB, gpus: 0.0
+measured cores: 0.3, memory: 120 MB, disk 6 MB, gpus: 0.0, runtime 3.1 s
+preprocessing task id 1 item pre_0 with 1 events on localhost. return code 0 (success)
+allocated cores: 2.0, memory: 1000 MB, disk 2000 MB, gpus: 0.0
+measured cores: 0.3, memory: 120 MB, disk 6 MB, gpus: 0.0, runtime 2.9 s
+submitted processing task id 3 item p_2, with 100056 event
+submitted processing task id 4 item p_3, with 100056 event
+submitted processing task id 5 item p_4, with 100056 event
+submitted processing task id 6 item p_5, with 100056 event
+Preprocessing 100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━      2/2 [ 0:00:06 < 0:00:00 | 0.3  file/s ]
+    Submitted   0%                                  0/400224 [ 0:00:00 < -:--:-- | ?   event/s ]
+    Processed   0%                                  0/400224 [ 0:00:00 < -:--:-- | ?   event/s ]
+    Accumulated 0%                                       0/1 [ 0:00:00 < -:--:-- | ?   tasks/s ]
+
+
+

To run at larger scale, you will need to run a large number +of workers on a cluster or other infrastructure. For example, +to submit 32 workers to an HTCondor pool:

+
condor_submit_workers -M coffea-wq-${USER} -P password.txt 1
+
+
+

Similarly, you can run the worker’s factory outside the manager. In that way, +you can have the manager and the factory running on different machines:

+
work_queue_factory -T condor -M coffea-wq-${USER} -P password.txt --max-workers 10 --cores 8 --python-env=env.tar.gz
+
+
+

For more information on starting and managing workers +on various batch systems and clusters, see the +Work Queue documentation

+
+ + +
+
+
+ +
+ +
+

© Copyright 2024, Fermi National Accelerator Laboratory.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file