{ "info": { "author": "Raymond Ehlers", "author_email": "raymond.ehlers@cern.ch", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# Reaction plane fit\n\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1599239.svg)](https://doi.org/10.5281/zenodo.1599239)\n[![Documentation Status](https://readthedocs.org/projects/reactionplanefit/badge/?version=latest)](https://reactionplanefit.readthedocs.io/en/latest/?badge=latest)\n[![Build Status](https://travis-ci.com/raymondEhlers/reactionPlaneFit.svg?branch=master)](https://travis-ci.com/raymondEhlers/reactionPlaneFit)\n[![codecov](https://codecov.io/gh/raymondEhlers/reactionPlaneFit/branch/master/graph/badge.svg)](https://codecov.io/gh/raymondEhlers/reactionPlaneFit)\n\nImplements the reaction plane (RP) fit described in [Phys. Rev. C 93,\n044915](https://journals.aps.org/prc/abstract/10.1103/PhysRevC.93.044915) (or on the\n[arxiv](https://arxiv.org/abs/1509.04732)) to characterize and subtract background contributions to\ncorrelation functions measured in heavy ion collisions. It allows for fits to the background dominated region,\nas well as the option of fitting the RP inclusive signal dominated region or the RP dependent signal dominated\nregion. This package implements the fit for three orientations relative to the RP, with the possibility of\nstraightforward extension to other sets of orientations.\n\n![Sample reaction plane fit](https://github.com/raymondEhlers/reactionPlaneFit/raw/master/docs/images/sampleSignalInclusiveRPF.png)\n\n## Installation\n\nThis package requires python 3.6 and above. A few prerequisites are required which unfortunately cannot be\nresolved solely by pip because of the packaging details of `probfit`.\n\n```bash\n$ pip install numpy cython\n```\n\nThe package is available on [PyPI](https://pypi.org/project/reaction_plane_fit) and is available via pip.\n\n```bash\n$ pip install reaction_plane_fit\n```\n\nYou may want to consider installing this to your user directory (`--user`) or better, within a virtual\nenvironment.\n\n# Usage\n\nPerforming a fit with this package only requires a few lines of code. Below is sufficient to define and run a\nfit with some sample values:\n\n```python\nfrom reaction_plane_fit import three_orientations\n# Define the fit object.\nrp_fit = three_orientations.BackgroundFit(\n resolution_parameters = {\"R22\": 0.6, \"R42\": 0.3, \"R62\": 0.1, \"R82\": 0.1},\n use_log_likelihood = False,\n signal_region = (0, 0.6),\n background_region = (0.8, 1.2),\n)\n# Load or otherwise provide the relevant histograms here.\n# The structure of this dictionary is important to ensure that the proper data ends up in the right place.\n# Note that the data must already be projected into the background or signal dominated regions.\ndata = {\"background\": {\"in_plane\": ROOT.TH1.., \"mid_plane\": ROOT.TH1..., \"out_of_plane\": ROOT.TH1...}}\n# Perform the actual fit.\nsuccess, _ = rp_fit.fit(data = data)\n# Print the fit results\nprint(\"Fit result: {fit_result}\".format(fit_result = rp_fit.fit_result))\n```\n\nFor best fit results, the data should **not** be normalized by the number of triggers before performing the\nfit. Afterwards, the fit needs to be scaled by the number of triggers in order to make it comparable to the\nscaled data. Examples for fitting an inclusive reaction plane orientation signal alongside the background, or\nfor fitting only the background are both available in `reaction_plane_fit.example`. This module can also be\nrun directly in the terminal via:\n\n```\n$ python -m reaction_plane_fit.example [-b] [-i dataFilename]\n```\n\nIf fit data is not specified, it will use some sample data. For further information, including all possible\nfit function combinations, please see the [full documentation](https://reactionplanefit.readthedocs.io/en/latest/).\n\n## But I don't like python!\n\nYou might not be so happy about using Python. That's okay - we can work around this using ROOT, although it\nwill be much more painful than using python directly. To do so, it should look something like (the code below\nis **untested**, so it may need some minor modifications):\n\n```c++\n// Setup the input data.\nstd::map> inputData;\ninputData[\"background\"][\"in_plane\"] = my_in_plane_hist;\n// Fill in the rest of your input data.\n...\n// Setup the fit objects.\nTPython::Exec(\"from reaction_plane_fit import three_orientations\");\nTPython::Exec(\"rp_fit = three_orientations.BackgroundFit(\"\n \"resolution_parameters = {'R22': 0.6, 'R42': 0.3, 'R62': 0.1, 'R82': 0.1},\"\n \"use_log_likelihood = False,\"\n \"signal_region = (0, 0.6),\"\n \"background_region = (0.8, 1.2),)\"\n);\n// Perform the actual fit.\nTPython::Exec(\"success, _ = rp_fit.fit(data = data)\");\n// Print the fit results.\nTPython::Exec(\"print('Fit result: {fit_result}'.format(fit_result = rp_fit.fit_result))\")\n// Access values back in c++.\nint chi_2 = double(TPython::Eval(\"rp_fit.fit_result.minimum_val\"))\n// It will require some attention to extract all of the relevant values.\n// You can extract a number of types (see TPyResult), but it doens't appear that you can extract complex objects.\n// So this could still be a somewhat painful process.\n```\n\n(Don't forgot that we're calling Minuit underneath, so this package should be fast enough for this fit).\n\n# Fits implemented\n\nThere are three possible types of fits:\n\n- Background dominated region only: This fits only regions on the near-side at large dEta which are dominated\n by background contributions. Called `BackgroundFit` in each set of orientations implementation.\n- Inclusive signal region: This fits to the RP inclusive signal dominated region, as well as fitting the RP\n dependent background dominated regions. Called `InclusiveSignalFit` in each set of orientations implementation.\n- RP dependent signal region: This fits to the RP dependent signal dominated region, as well as fitting the RP\n dependent background dominated regions. Called `SignalFit` in each set of orientations implementation.\n\n## Three orientation (in-, mid-, and out-of-plane)\n\nThis package implements the fit for three orientations relative to the reaction plane:\n\n- in-plane (0<|Δφ|<π/6)\n- mid-plane (π/6<|Δφ|<π/3)\n- and out-of-plane (π/3<|Δφ|<π/2)\n\nThese fits are implemented in the `reaction_plane_fit.three_orientations` module.\n\n# Notes on fitting\n\nThis package makes it possible to use Minos rather than Hesse errors. Minos errors can be calculated when\nHesse errors become inaccurate (when the function around the minima is not approximately a hyperparabola),\nbut they can take much longer to calculate and cannot be described via a covariance matrix (which makes error\npropagation much more difficult). If the Hesse and Minos errors are similar, then the function is well\napproximately by a hyperparabola and you can safely use Hesse errors. For more, see the iminuit tutorials.\n\n# Development\n\nIf developing the packaging, clone the repository and then install with\n\n```bash\n$ pip install -e .[dev,tests]\n```\n\nNote that python 3.6 and above is required because this package uses `dataclasses` (which has a python 3.6\nbackport), and it relies on dictionaries being ordered (which is true for `cpython` 3.6 and is required for\npython 3.7 in general).\n\n# Citation\n\nPlease cite the paper (Phys. Rev. C 93, 044915), as well as this implementation:\n\n```\n@misc{raymond_ehlers_2018_1599239,\n author = {Raymond Ehlers},\n title = {reactionPlaneFit - RPF implementation},\n month = nov,\n year = 2018,\n doi = {10.5281/zenodo.1599239},\n url = {https://doi.org/10.5281/zenodo.1599239}\n}\n```\n\n# Acknowledgments\n\nCode started from implementation work done by [M. Arratia](https://github.com/miguelignacio/BackgroundFit).\nThanks to C. Nattrass and J. Mazer for help and discussions.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/raymondEhlers/reactionPlaneFit", "keywords": "HEP Physics", "license": "BSD 3-Clause", "maintainer": "", "maintainer_email": "", "name": "reaction-plane-fit", "package_url": "https://pypi.org/project/reaction-plane-fit/", "platform": "", "project_url": "https://pypi.org/project/reaction-plane-fit/", "project_urls": { "Homepage": "https://github.com/raymondEhlers/reactionPlaneFit" }, "release_url": "https://pypi.org/project/reaction-plane-fit/4.0/", "requires_dist": [ "numpy", "uproot", "iminuit", "pachyderm (>2.2)", "dataclasses ; python_version < \"3.7\"", "pre-commit ; extra == 'dev'", "flake8 ; extra == 'dev'", "flake8-colors ; extra == 'dev'", "mypy ; extra == 'dev'", "sphinx ; extra == 'docs'", "recommonmark ; extra == 'docs'", "sphinx-markdown-tables ; extra == 'docs'", "pytest ; extra == 'tests'", "pytest-cov ; extra == 'tests'", "pytest-mock ; extra == 'tests'", "codecov ; extra == 'tests'", "pytest-mpl ; extra == 'tests'" ], "requires_python": "", "summary": "Implments the reaction plane fit for background subtraction in heavy ion collisions.", "version": "4.0", "yanked": false, "yanked_reason": null }, "last_serial": 6007797, "releases": { "0.9": [ { "comment_text": "", "digests": { "md5": "5dd6bf28dd7e872fc87c8b592c6535e0", "sha256": "f1191073f90dc7bedcd9287a1bd20ff566e6aded755a2534639c355089a2d234" }, "downloads": -1, "filename": "reaction_plane_fit-0.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5dd6bf28dd7e872fc87c8b592c6535e0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 33811, "upload_time": "2018-11-28T00:47:10", "upload_time_iso_8601": "2018-11-28T00:47:10.752322Z", "url": "https://files.pythonhosted.org/packages/16/ad/bc1ebb0864f4812f3d47ee4ff69ca5bb7386e2988e88284060232b6cf958/reaction_plane_fit-0.9-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "4afd1bcfce4e1d569038bb7e7eb95e56", "sha256": "87c31a1d1b2aa9a458e9bc8a6f01374bfab4124de062fabb584f2071e32f1bb4" }, "downloads": -1, "filename": "reaction_plane_fit-0.9.tar.gz", "has_sig": false, "md5_digest": "4afd1bcfce4e1d569038bb7e7eb95e56", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32836, "upload_time": "2018-11-28T00:47:13", "upload_time_iso_8601": "2018-11-28T00:47:13.071801Z", "url": "https://files.pythonhosted.org/packages/e6/93/3511e9ea153e80b6e5c18cc1ceeccdaf5584416d21cba7e1b2fd64869abc/reaction_plane_fit-0.9.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0": [ { "comment_text": "", "digests": { "md5": "0c869838e44fba0b8b6bf80ddc006003", "sha256": "bd8278a4a5c131c8b5a6870d6fe5029c4151c03eac218dec5a9bb1f2cd1c6b57" }, "downloads": -1, "filename": "reaction_plane_fit-1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0c869838e44fba0b8b6bf80ddc006003", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 37639, "upload_time": "2018-11-30T06:23:19", "upload_time_iso_8601": "2018-11-30T06:23:19.552901Z", "url": "https://files.pythonhosted.org/packages/e0/d7/865640a9833603b3b8a81988ea9e8352f5b0a5f3d575d4467a4c61325d62/reaction_plane_fit-1.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ea7e6a3ee90f0958a2d58c35e8c6bf08", "sha256": "57fd5fcdc3ee714598022963a1fbc80a9b95f95dea8303802e740faa60bb6397" }, "downloads": -1, "filename": "reaction_plane_fit-1.0.tar.gz", "has_sig": false, "md5_digest": "ea7e6a3ee90f0958a2d58c35e8c6bf08", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36923, "upload_time": "2018-11-30T06:23:21", "upload_time_iso_8601": "2018-11-30T06:23:21.576303Z", "url": "https://files.pythonhosted.org/packages/bf/fc/8bcada09bcdcfd36b49452aec2a9ef0c51a5e7f8d6551d91ac6c30c709a9/reaction_plane_fit-1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "36d9192d0621410468497273516e7939", "sha256": "2115be05b65a86142f0d60d5eb47b5918315a6d4e69b166c5f72e201fdc703d7" }, "downloads": -1, "filename": "reaction_plane_fit-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "36d9192d0621410468497273516e7939", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 37634, "upload_time": "2018-11-30T06:47:36", "upload_time_iso_8601": "2018-11-30T06:47:36.922206Z", "url": "https://files.pythonhosted.org/packages/d3/48/cead944b36bc599b41cc75c6daeb851885ae9fb227ebb4091cf921b8fb4d/reaction_plane_fit-1.0.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e6b3602c048ee308f21094e28ef2d027", "sha256": "7a7945ee42c52d9a095d7f63c120351fb386fe8903980da8f1731e843aa473ef" }, "downloads": -1, "filename": "reaction_plane_fit-1.0.1.tar.gz", "has_sig": false, "md5_digest": "e6b3602c048ee308f21094e28ef2d027", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36904, "upload_time": "2018-11-30T06:47:38", "upload_time_iso_8601": "2018-11-30T06:47:38.345511Z", "url": "https://files.pythonhosted.org/packages/bf/35/4add710401ead30c4ae8c986ae7d38bd1093316e9e9adbe8dbc086cad8a9/reaction_plane_fit-1.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1": [ { "comment_text": "", "digests": { "md5": "ca3e3b4e6a8950edb36d6c4de2f24521", "sha256": "a63477e93828ca7ffa627758feb0fb03dbb20f8b18a43948c4ca1d75964b04de" }, "downloads": -1, "filename": "reaction_plane_fit-1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ca3e3b4e6a8950edb36d6c4de2f24521", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 36791, "upload_time": "2018-12-11T22:35:12", "upload_time_iso_8601": "2018-12-11T22:35:12.194236Z", "url": "https://files.pythonhosted.org/packages/a1/96/471e04dab896924892cf04bcc98dd332762a36878a81c9d6a643559892d1/reaction_plane_fit-1.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "2afc1a4d9f35a858c394ec6546700be6", "sha256": "c76c83d0244aca6e7b8a86ec5587630333b402e1804ed0fe403b8b60edf326b2" }, "downloads": -1, "filename": "reaction_plane_fit-1.1.tar.gz", "has_sig": false, "md5_digest": "2afc1a4d9f35a858c394ec6546700be6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36264, "upload_time": "2018-12-11T22:35:13", "upload_time_iso_8601": "2018-12-11T22:35:13.725065Z", "url": "https://files.pythonhosted.org/packages/87/be/3a8b88df41981c92f51896dfd6d8a3e4beccf27a9030e3e4665f48fb7bb3/reaction_plane_fit-1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2": [ { "comment_text": "", "digests": { "md5": "e1efe24a964d1e54f310f37bc8714bb3", "sha256": "d1cb33a8712da5493a757d4d13af04f839648401045deb5a3b63c41481a9608e" }, "downloads": -1, "filename": "reaction_plane_fit-1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e1efe24a964d1e54f310f37bc8714bb3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 37369, "upload_time": "2019-01-31T04:01:24", "upload_time_iso_8601": "2019-01-31T04:01:24.532935Z", "url": "https://files.pythonhosted.org/packages/27/0f/99b98a7259ff3084a63f54ef61d9062c81e173767578635198cdbe295ff3/reaction_plane_fit-1.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "af260a8cbede775b3bfda0df9de8fa77", "sha256": "72a8e373530e22c54a5876cde574a4249d635f4d5ffe8ee117df92f7cbf0f47d" }, "downloads": -1, "filename": "reaction_plane_fit-1.2.tar.gz", "has_sig": false, "md5_digest": "af260a8cbede775b3bfda0df9de8fa77", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37044, "upload_time": "2019-01-31T04:01:25", "upload_time_iso_8601": "2019-01-31T04:01:25.922882Z", "url": "https://files.pythonhosted.org/packages/c0/df/caac58ac8ec86a5b88fb16a7610ab6d6d93372a61c45d8e872ab93ace0e5/reaction_plane_fit-1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0": [ { "comment_text": "", "digests": { "md5": "47ac4f814469b124184ef52e0a28d5de", "sha256": "21dcb173cb1683027f4889ad1a11946a218c8647a7b19473451b3214f61ac35d" }, "downloads": -1, "filename": "reaction_plane_fit-2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "47ac4f814469b124184ef52e0a28d5de", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 39202, "upload_time": "2019-02-22T21:44:07", "upload_time_iso_8601": "2019-02-22T21:44:07.818506Z", "url": "https://files.pythonhosted.org/packages/37/fd/d54b01c97ef00bd36c829768fa2c05916354784f22d1a81b889c79582274/reaction_plane_fit-2.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "31bc0d462f3b8bdb7564f06bc9fccadb", "sha256": "8aa3c1ee9f3a2a5b801ea1e66fbf27c7040c93ec03544904a876f49d9cd8d62d" }, "downloads": -1, "filename": "reaction_plane_fit-2.0.tar.gz", "has_sig": false, "md5_digest": "31bc0d462f3b8bdb7564f06bc9fccadb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39703, "upload_time": "2019-02-22T21:44:09", "upload_time_iso_8601": "2019-02-22T21:44:09.118332Z", "url": "https://files.pythonhosted.org/packages/8a/2c/06fd1cfe5db114130590008e0a439d7da5552aaa24ad9f0d29fa994e1568/reaction_plane_fit-2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1": [ { "comment_text": "", "digests": { "md5": "0a9d6512a572b293a6a14c8ef8fec296", "sha256": "44b7ae7e9e2132a4b26f92fa41abce9971ce8679977a0e9e5cf27deb0f0045f2" }, "downloads": -1, "filename": "reaction_plane_fit-2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0a9d6512a572b293a6a14c8ef8fec296", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 40557, "upload_time": "2019-03-29T21:26:48", "upload_time_iso_8601": "2019-03-29T21:26:48.270469Z", "url": "https://files.pythonhosted.org/packages/26/bd/f6e9cb155b2aac50d560e6c3d59cbd92cb781234f5b7838489b5f9a4c5cd/reaction_plane_fit-2.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d4b3a14b1b91a3d1a0c95198c66007f1", "sha256": "8048114d52d752d9d1b2dea550ba124509eb182d4aa0f82d48738772999c44ee" }, "downloads": -1, "filename": "reaction_plane_fit-2.1.tar.gz", "has_sig": false, "md5_digest": "d4b3a14b1b91a3d1a0c95198c66007f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41013, "upload_time": "2019-03-29T21:26:49", "upload_time_iso_8601": "2019-03-29T21:26:49.797496Z", "url": "https://files.pythonhosted.org/packages/a4/11/57e4c1ada0a3cdf03e6ac1442ff1708d2f8dd32421841ddacd0793a696d2/reaction_plane_fit-2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "00cf387b2a9b9e74dfc737669f724ee9", "sha256": "98b33ba6582b14ef7dd2290f2fc9b3dc77ce0e0623ed4e9a85643feae9d9d8af" }, "downloads": -1, "filename": "reaction_plane_fit-2.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "00cf387b2a9b9e74dfc737669f724ee9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 41442, "upload_time": "2019-05-04T02:51:18", "upload_time_iso_8601": "2019-05-04T02:51:18.979599Z", "url": "https://files.pythonhosted.org/packages/6e/74/0a6b7ca73f43baaf9426b1beca587616fe75c76419c2b201b218d72d511c/reaction_plane_fit-2.1.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "eb3adddbf6901e63cc7fa81b24b1fd97", "sha256": "5a6d56b5157dd2d4c597a3469a67a5bb0406c28881027246a346fda6463fdf86" }, "downloads": -1, "filename": "reaction_plane_fit-2.1.1.tar.gz", "has_sig": false, "md5_digest": "eb3adddbf6901e63cc7fa81b24b1fd97", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41663, "upload_time": "2019-05-04T02:51:20", "upload_time_iso_8601": "2019-05-04T02:51:20.450283Z", "url": "https://files.pythonhosted.org/packages/b0/b0/79baad0617872d7cc5d8ed6dba8d362d15be72653c6cf1db4323afce3fdb/reaction_plane_fit-2.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.2": [ { "comment_text": "", "digests": { "md5": "50c0bf908c45513a7511f8393039290f", "sha256": "91f02cc545027737ef614cd4dbb7b3973fa0552f56cc88cec122abf3d6af9f95" }, "downloads": -1, "filename": "reaction_plane_fit-2.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "50c0bf908c45513a7511f8393039290f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 41537, "upload_time": "2019-05-05T04:35:11", "upload_time_iso_8601": "2019-05-05T04:35:11.546411Z", "url": "https://files.pythonhosted.org/packages/80/6c/37b674163d413f8ff80190d6dd3a165a8772cb0039e6f95d6df63d9476c2/reaction_plane_fit-2.1.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d3c066afa81b5564dcbb7f14c8a86350", "sha256": "e0f6695f23414da648b402e369bb818c9aef6a99b307e4462b52f9959637384a" }, "downloads": -1, "filename": "reaction_plane_fit-2.1.2.tar.gz", "has_sig": false, "md5_digest": "d3c066afa81b5564dcbb7f14c8a86350", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41853, "upload_time": "2019-05-05T04:35:13", "upload_time_iso_8601": "2019-05-05T04:35:13.218409Z", "url": "https://files.pythonhosted.org/packages/c4/f5/66c7387836ad249d5f1050dd3f2845a870dc8e6a3b13524c8fe4efa4a96a/reaction_plane_fit-2.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "3.0": [ { "comment_text": "", "digests": { "md5": "7345b99e73ddd5eae709616e8166f77c", "sha256": "e60d216d0179639ab264e0c422446653d617666e7211efb24424f00054f1df93" }, "downloads": -1, "filename": "reaction_plane_fit-3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7345b99e73ddd5eae709616e8166f77c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 39128, "upload_time": "2019-08-08T19:55:31", "upload_time_iso_8601": "2019-08-08T19:55:31.328105Z", "url": "https://files.pythonhosted.org/packages/c6/89/25c3f782962f72cf5249c34be9482c6bb16bacbe8b8eb0645ee9d8849174/reaction_plane_fit-3.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "51ab9b14fcc4d745c7790d53235e4e9e", "sha256": "fb104e728f093894c68d789f57f06e744d1e2805063662de569a3d1081566e4f" }, "downloads": -1, "filename": "reaction_plane_fit-3.0.tar.gz", "has_sig": false, "md5_digest": "51ab9b14fcc4d745c7790d53235e4e9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39661, "upload_time": "2019-08-08T19:55:33", "upload_time_iso_8601": "2019-08-08T19:55:33.035844Z", "url": "https://files.pythonhosted.org/packages/7c/37/f9c74d3fb7ac2d3965e2f465c39f1ebedf277d1fe274d21c83b9ada431f2/reaction_plane_fit-3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "3.1": [ { "comment_text": "", "digests": { "md5": "4dda39b65166254322023ccb481dc839", "sha256": "838be6b0fe0d5ca145e95eb473a0fb96e34e0f22294ad7266fc9913bea463f11" }, "downloads": -1, "filename": "reaction_plane_fit-3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4dda39b65166254322023ccb481dc839", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 41249, "upload_time": "2019-08-24T21:01:22", "upload_time_iso_8601": "2019-08-24T21:01:22.778247Z", "url": "https://files.pythonhosted.org/packages/20/17/8df9f311ef604eb160a54b908bb171713399fd838982dc56f66112bad9cf/reaction_plane_fit-3.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d7af9ee333e38535bfe8ee3eeb2f197b", "sha256": "1b2ad487897177826e085d0bcf3373291547978f9cd053e0ebcfa3d6c8db62bf" }, "downloads": -1, "filename": "reaction_plane_fit-3.1.tar.gz", "has_sig": false, "md5_digest": "d7af9ee333e38535bfe8ee3eeb2f197b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41492, "upload_time": "2019-08-24T21:01:24", "upload_time_iso_8601": "2019-08-24T21:01:24.469771Z", "url": "https://files.pythonhosted.org/packages/4c/7c/f53d6de9f2b3c3d3748ef14a06adb9b1e70570323adb887416eebc8f8d54/reaction_plane_fit-3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "4.0": [ { "comment_text": "", "digests": { "md5": "5de5f3a938aef5744eed41840ad29db3", "sha256": "332bfbd98ec16b570ef2cf88f37b195ceef2434fb4a7229a5fd2ec51c767118f" }, "downloads": -1, "filename": "reaction_plane_fit-4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5de5f3a938aef5744eed41840ad29db3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 43978, "upload_time": "2019-10-21T15:11:46", "upload_time_iso_8601": "2019-10-21T15:11:46.815449Z", "url": "https://files.pythonhosted.org/packages/3e/31/d303d8f6eda84d590d6f4e96483e28a377fada2e1de088d9243c38a7a61c/reaction_plane_fit-4.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9e2986240806e3fb28a686ad4f572b98", "sha256": "e2132a093cf50900963bf9e849a871e2244b1091157f72df0db7063df163b198" }, "downloads": -1, "filename": "reaction_plane_fit-4.0.tar.gz", "has_sig": false, "md5_digest": "9e2986240806e3fb28a686ad4f572b98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44267, "upload_time": "2019-10-21T15:12:06", "upload_time_iso_8601": "2019-10-21T15:12:06.686621Z", "url": "https://files.pythonhosted.org/packages/17/ae/a33d808d42c4bbaae016414732e0c84142b7ba9ed2fb77c52b9925d73e98/reaction_plane_fit-4.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5de5f3a938aef5744eed41840ad29db3", "sha256": "332bfbd98ec16b570ef2cf88f37b195ceef2434fb4a7229a5fd2ec51c767118f" }, "downloads": -1, "filename": "reaction_plane_fit-4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5de5f3a938aef5744eed41840ad29db3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 43978, "upload_time": "2019-10-21T15:11:46", "upload_time_iso_8601": "2019-10-21T15:11:46.815449Z", "url": "https://files.pythonhosted.org/packages/3e/31/d303d8f6eda84d590d6f4e96483e28a377fada2e1de088d9243c38a7a61c/reaction_plane_fit-4.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9e2986240806e3fb28a686ad4f572b98", "sha256": "e2132a093cf50900963bf9e849a871e2244b1091157f72df0db7063df163b198" }, "downloads": -1, "filename": "reaction_plane_fit-4.0.tar.gz", "has_sig": false, "md5_digest": "9e2986240806e3fb28a686ad4f572b98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44267, "upload_time": "2019-10-21T15:12:06", "upload_time_iso_8601": "2019-10-21T15:12:06.686621Z", "url": "https://files.pythonhosted.org/packages/17/ae/a33d808d42c4bbaae016414732e0c84142b7ba9ed2fb77c52b9925d73e98/reaction_plane_fit-4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }