decaylanguage 0.13.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. DecayLanguage-0.13.0.dist-info/LICENSE +23 -0
  2. DecayLanguage-0.13.0.dist-info/METADATA +320 -0
  3. DecayLanguage-0.13.0.dist-info/RECORD +37 -0
  4. DecayLanguage-0.13.0.dist-info/WHEEL +5 -0
  5. DecayLanguage-0.13.0.dist-info/top_level.txt +1 -0
  6. decaylanguage/__init__.py +27 -0
  7. decaylanguage/__main__.py +26 -0
  8. decaylanguage/_version.py +5 -0
  9. decaylanguage/data/DECAY_BELLE2.DEC +10783 -0
  10. decaylanguage/data/DECAY_LHCB.DEC +11657 -0
  11. decaylanguage/data/MintDalitzSpecialParticles.csv +37 -0
  12. decaylanguage/data/MintDalitzSpecialParticles.fwf +41 -0
  13. decaylanguage/data/MintDalitzSpecialParticlesLatex.csv +15 -0
  14. decaylanguage/data/README.rst +51 -0
  15. decaylanguage/data/WorkingOutModel.ipynb +682 -0
  16. decaylanguage/data/__init__.py +19 -0
  17. decaylanguage/data/ampgen.lark +65 -0
  18. decaylanguage/data/decfile.lark +66 -0
  19. decaylanguage/data/particle.lark +35 -0
  20. decaylanguage/dec/__init__.py +8 -0
  21. decaylanguage/dec/dec.py +1439 -0
  22. decaylanguage/dec/decparser.py +422 -0
  23. decaylanguage/dec/enums.py +96 -0
  24. decaylanguage/decay/__init__.py +8 -0
  25. decaylanguage/decay/decay.py +669 -0
  26. decaylanguage/decay/viewer.py +243 -0
  27. decaylanguage/modeling/AmpGenReader.ipynb +1589 -0
  28. decaylanguage/modeling/__init__.py +7 -0
  29. decaylanguage/modeling/ampgen2goofit.py +86 -0
  30. decaylanguage/modeling/ampgentransform.py +61 -0
  31. decaylanguage/modeling/amplitudechain.py +288 -0
  32. decaylanguage/modeling/decay.py +124 -0
  33. decaylanguage/modeling/goofit.py +386 -0
  34. decaylanguage/utils/__init__.py +15 -0
  35. decaylanguage/utils/errors.py +9 -0
  36. decaylanguage/utils/particleutils.py +65 -0
  37. decaylanguage/utils/utilities.py +53 -0
@@ -0,0 +1,23 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2018-2021, Eduardo Rodrigues and Henry Schreiner.
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following
7
+ conditions are met:
8
+
9
+ * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
10
+
11
+ * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
12
+ disclaimer in the documentation and/or other materials provided with the distribution.
13
+
14
+ * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products
15
+ derived from this software without specific prior written permission.
16
+
17
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
18
+ BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
19
+ SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
22
+ TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
23
+ POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,320 @@
1
+ Metadata-Version: 2.1
2
+ Name: DecayLanguage
3
+ Version: 0.13.0
4
+ Summary: A language to describe, manipulate and convert particle decays
5
+ Home-page: https://github.com/scikit-hep/decaylanguage
6
+ Author: Eduardo Rodrigues, Henry Fredrick Schreiner III
7
+ Author-email: eduardo.rodrigues@cern.ch, henry.schreiner@cern.ch
8
+ Maintainer: The Scikit-HEP admins
9
+ Maintainer-email: scikit-hep-admins@googlegroups.com
10
+ License: BSD-3-Clause
11
+ Keywords: HEP,particle,decay,chain,representation
12
+ Platform: Any
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Intended Audience :: Science/Research
16
+ Classifier: License :: OSI Approved :: BSD License
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Programming Language :: Python :: 3 :: Only
21
+ Classifier: Programming Language :: Python :: 3.6
22
+ Classifier: Programming Language :: Python :: 3.7
23
+ Classifier: Programming Language :: Python :: 3.8
24
+ Classifier: Programming Language :: Python :: 3.9
25
+ Classifier: Programming Language :: Python :: 3.10
26
+ Classifier: Topic :: Scientific/Engineering
27
+ Requires-Python: >=3.6
28
+ Description-Content-Type: text/markdown
29
+ License-File: LICENSE
30
+ Requires-Dist: attrs (>=19.2)
31
+ Requires-Dist: deprecated
32
+ Requires-Dist: graphviz
33
+ Requires-Dist: lark-parser (>=0.11.0)
34
+ Requires-Dist: numpy (>=1.12)
35
+ Requires-Dist: pandas (>=0.22)
36
+ Requires-Dist: particle (==0.16.*)
37
+ Requires-Dist: plumbum (>=1.6.9)
38
+ Requires-Dist: importlib-resources (>=2.0) ; python_version < "3.9"
39
+ Provides-Extra: dev
40
+ Requires-Dist: pytest (>=6) ; extra == 'dev'
41
+ Provides-Extra: test
42
+ Requires-Dist: pytest (>=6) ; extra == 'test'
43
+ Requires-Dist: pytest-cov ; extra == 'test'
44
+
45
+ <img alt="DecayLanguage logo" src="https://raw.githubusercontent.com/scikit-hep/decaylanguage/master/images/DecayLanguage.png"/>
46
+
47
+ # DecayLanguage: describe, manipulate and convert particle decays
48
+
49
+ [![Scikit-HEP](https://scikit-hep.org/assets/images/Scikit--HEP-Project-blue.svg)](https://scikit-hep.org/)
50
+ [![PyPI Package latest release](https://img.shields.io/pypi/v/decaylanguage.svg)](https://pypi.python.org/pypi/decaylanguage)
51
+ [![Conda latest release](https://img.shields.io/conda/vn/conda-forge/decaylanguage.svg)](https://anaconda.org/conda-forge/decaylanguage)
52
+ [![Supported versions](https://img.shields.io/pypi/pyversions/decaylanguage.svg)](https://pypi.python.org/pypi/decaylanguage)
53
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3257423.svg)](https://doi.org/10.5281/zenodo.3257423)
54
+
55
+ [![GitHub Actions Status: CI](https://github.com/scikit-hep/decaylanguage/workflows/CI/badge.svg)](https://github.com/scikit-hep/decaylanguage/actions)
56
+ [![Code Coverage](https://codecov.io/gh/scikit-hep/decaylanguage/graph/badge.svg?branch=master)](https://codecov.io/gh/scikit-hep/decaylanguage?branch=master)
57
+ [![Documentation Status](https://readthedocs.org/projects/decaylanguage/badge/?style=flat)](https://readthedocs.org/projects/decaylanguage)
58
+ [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
59
+
60
+ [![Binder demo](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/scikit-hep/decaylanguage/master?urlpath=lab/tree/notebooks/DecayLanguageDemo.ipynb)
61
+
62
+
63
+ DecayLanguage implements a language to describe and convert particle decays
64
+ between digital representations, effectively making it possible to interoperate
65
+ several fitting programs. Particular interest is given to programs dedicated
66
+ to amplitude analyses.
67
+
68
+ DecayLanguage provides tools to parse so-called .dec decay files,
69
+ and describe, manipulate and visualize decay chains.
70
+
71
+
72
+ ## Installation
73
+
74
+ Just run the following:
75
+
76
+ ```bash
77
+ pip install decaylanguage
78
+ ```
79
+
80
+ You can use a virtual environment through pipenv or with `--user` if you know
81
+ what those are. [Python
82
+ 3.6+](http://docs.python-guide.org/en/latest/starting/installation) supported
83
+ (see version 0.12 for Python 2 & 3.5 support).
84
+
85
+ <details><summary>Dependencies: (click to expand)</summary><p>
86
+
87
+ Required and compatibility dependencies will be automatically installed by pip.
88
+
89
+ ### Required dependencies:
90
+
91
+ - [particle](https://github.com/scikit-hep/particle): PDG particle data and identification codes
92
+ - [NumPy](https://scipy.org/install.html): The numerical library for Python
93
+ - [pandas](https://pandas.pydata.org/): Tabular data in Python
94
+ - [attrs](https://github.com/python-attrs/attrs): DataClasses for Python
95
+ - [plumbum](https://github.com/tomerfiliba/plumbum): Command line tools
96
+ - [lark-parser](https://github.com/lark-parser/lark): A modern parsing library for Python
97
+ - [graphviz](https://gitlab.com/graphviz/graphviz/) to render (DOT language) graph
98
+ descriptions and visualizations of decay chains.
99
+
100
+ ### Python compatibility:
101
+ - [importlib_resources](http://importlib-resources.readthedocs.io/en/latest/) backport if using Python /< 3.7
102
+ </p></details>
103
+
104
+
105
+ ## Getting started
106
+
107
+ The [Binder demo](https://mybinder.org/v2/gh/scikit-hep/decaylanguage/master?urlpath=lab/tree/notebooks/DecayLanguageDemo.ipynb)
108
+ is an excellent way to get started with `DecayLanguage`.
109
+
110
+ This is a quick user guide. For a full API docs, go [here](https://decaylanguage.readthedocs.io/en/latest/)
111
+ (note that it is presently work-in-progress).
112
+
113
+ ### What is DecayLanguage?
114
+
115
+ `DecayLanguage` is a set of tools for building and transforming particle
116
+ decays:
117
+
118
+ 1. It provides tools to parse so-called `.dec` decay files,
119
+ and describe, manipulate and visualize the resulting decay chains.
120
+
121
+ 2. It implements a language to describe and convert particle decays
122
+ between digital representations, effectively making it possible to interoperate
123
+ several fitting programs. Particular interest is given to programs dedicated
124
+ to amplitude analyses.
125
+
126
+ ### Particles
127
+
128
+ Particles are a key component when dealing with decays.
129
+ Refer to the [particle package](https://github.com/scikit-hep/particle)
130
+ for how to deal with particles and Monte Carlo particle identification codes.
131
+
132
+ ### Parse decay files
133
+
134
+ Decay `.dec` files can be parsed simply with
135
+
136
+ ```python
137
+ from decaylanguage import DecFileParser
138
+
139
+ parser = DecFileParser('my-decay-file.dec')
140
+ parser.parse()
141
+
142
+ # Inspect what decays are defined
143
+ parser.list_decay_mother_names()
144
+
145
+ # Print decay modes, etc. ...
146
+ ```
147
+
148
+ A copy of the master DECAY.DEC file used by the LHCb experiment is provided
149
+ [here](https://github.com/scikit-hep/decaylanguage/tree/master/decaylanguage/data)
150
+ for convenience.
151
+
152
+ The `DecFileParser` class implements a series of methods giving access to all
153
+ information stored in decay files: the decays themselves, particle name aliases,
154
+ definitions of charge-conjugate particles, variable and Pythia-specific
155
+ definitions, etc.
156
+
157
+ It can be handy to parse from a multi-line string rather than a file:
158
+
159
+ ```python
160
+ s = """Decay pi0
161
+ 0.988228297 gamma gamma PHSP;
162
+ 0.011738247 e+ e- gamma PI0_DALITZ;
163
+ 0.000033392 e+ e+ e- e- PHSP;
164
+ 0.000000065 e+ e- PHSP;
165
+ Enddecay
166
+ """
167
+
168
+ dfp = DecFileParser.from_string(s)
169
+ dfp.parse()
170
+ ```
171
+
172
+ #### Advanced usage
173
+
174
+ The list of `.dec` file decay models known to the package can be inspected via
175
+
176
+ ```python
177
+ from decaylanguage.dec import known_decay_models
178
+ ```
179
+
180
+ Say you have to deal with a decay file containing a new model not yet on the list above.
181
+ Running the parser as usual will result in a `UnexpectedToken` exception.
182
+ It is nevertheless easy to deal with this issue; no need to wait for a new release.
183
+ It is just a matter of adding the model name to the list in `decaylanguage/data/decfile.lark`
184
+ (or your private copy), see the line
185
+ `MODEL_NAME.2 : "BaryonPCR"|"BTO3PI_CP"|"BTOSLLALI"|...`,
186
+ and then proceed as usual apart from adding an extra line to call to `load_grammar`
187
+ to specify the Lark grammar to use:
188
+
189
+ ```python
190
+ dfp = DecFileParser('my_decfile.dec')
191
+ dfp.load_grammar('path/to/my_updated_decfile.lark')
192
+ dfp.parse()
193
+ ...
194
+ ```
195
+
196
+ This being said, please do submit a pull request to add new models,
197
+ if you spot missing ones ...
198
+
199
+ ### Visualize decay files
200
+
201
+ The class `DecayChainViewer` allows the visualization of parsed decay chains:
202
+
203
+ ```python
204
+ from decaylanguage import DecayChainViewer
205
+
206
+ # Build the (dictionary-like) D*+ decay chain representation setting the D+ and D0 mesons to stable,
207
+ # to avoid too cluttered an image
208
+ d = dfp.build_decay_chains('D*+', stable_particles=('D+', 'D0'))
209
+ DecayChainViewer(d) # works in a notebook
210
+ ```
211
+
212
+ ![DecayChain D*](https://raw.githubusercontent.com/scikit-hep/decaylanguage/master/images/DecayChain_Dst_stable-D0-and-D+.png)
213
+
214
+ The actual graph is available as
215
+
216
+ ```python
217
+ # ...
218
+ dcv = DecayChainViewer(d)
219
+ dcv.graph
220
+ ```
221
+
222
+ making all `graphviz.dot.Digraph` class properties and methods available, such as
223
+
224
+ ```python
225
+ dcv.graph.render(filename='mygraph', format='pdf', view=True, cleanup=True)
226
+ ```
227
+
228
+ In the same way, all `graphviz.dot.Digraph` class attributes are settable
229
+ upon instantiation of `DecayChainViewer`:
230
+
231
+ ```python
232
+ dcv = DecayChainViewer(chain, name='TEST', format='pdf')
233
+ ```
234
+
235
+ ### Universal representation of decay chains
236
+
237
+ A series of classes and methods have been designed to provide universal representations
238
+ of particle decay chains of any complexity, and to provide the ability
239
+ to convert between these representations.
240
+ Specifically, class- and dictionary-based representations have been implemented.
241
+
242
+ An example of a class-based representation of a decay chain is the following:
243
+
244
+ ```python
245
+ >>> from decaylanguage import DaughtersDict, DecayMode, DecayChain
246
+ >>>
247
+ >>> dm1 = DecayMode(0.0124, 'K_S0 pi0', model='PHSP')
248
+ >>> dm2 = DecayMode(0.692, 'pi+ pi-')
249
+ >>> dm3 = DecayMode(0.98823, 'gamma gamma')
250
+ >>> dc = DecayChain('D0', {'D0':dm1, 'K_S0':dm2, 'pi0':dm3})
251
+ >>> dc
252
+ <DecayChain: D0 -> K_S0 pi0 (2 sub-decays), BF=0.0124>
253
+ ```
254
+
255
+ Decay chains can be visualised with the `DecayChainViewer` class making use
256
+ of the dictionary representation `dc.to_dict()`, which is the simple
257
+ representation understood by `DecayChainViewer`, as see above:
258
+
259
+ ```python
260
+ DecayChainViewer(dc.to_dict())
261
+ ```
262
+
263
+ The fact that 2 representations of particle decay chains are provided ensures
264
+ the following:
265
+
266
+ 1. Human-readable (class) and computer-efficient (dictionary) alternatives.
267
+ 2. Flexibility for parsing, manipulation and storage of decay chain information.
268
+
269
+ ### Decay modeling
270
+
271
+ The most common way to create a decay chain is to read in an [AmpGen]
272
+ style syntax from a file or a string. You can use:
273
+
274
+ ```python
275
+ from decaylanguage.modeling import AmplitudeChain
276
+ lines, parameters, constants, states = AmplitudeChain.read_ampgen(text='''
277
+ EventType D0 K- pi+ pi+ pi-
278
+
279
+ D0[D]{K*(892)bar0{K-,pi+},rho(770)0{pi+,pi-}} 0 1 0.1 0 1 0.1
280
+
281
+ K(1460)bar-_mass 0 1460 1
282
+ K(1460)bar-_width 0 250 1
283
+
284
+ a(1)(1260)+::Spline::Min 0.18412
285
+ a(1)(1260)+::Spline::Max 1.86869
286
+ a(1)(1260)+::Spline::N 34
287
+ ''')
288
+ ```
289
+
290
+ Here, `lines` will be a list of AmplitudeChain lines (pretty print supported in Jupyter notebooks),
291
+ `parameters` will be a table of parameters (ranged parameters not yet supported),
292
+ `constants` will be a table of constants,
293
+ and `states` will be the list of known states (EventType).
294
+
295
+ #### Converters
296
+
297
+ You can output to a format (currently only [GooFit] supported, feel free
298
+ to make a PR to add more). Use a subclass of DecayChain, in this case,
299
+ GooFitChain. To use the [GooFit] output, type from the shell:
300
+
301
+ ```bash
302
+ python -m decaylanguage -G goofit myinput.opts
303
+ ```
304
+
305
+ ## Acknowledgements
306
+
307
+ The UK Science and Technology Facilities Council (STFC) and the University of Liverpool
308
+ provide funding for Eduardo Rodrigues (2020-) to work on this project part-time.
309
+
310
+ Support for this work was provided by the National Science Foundation
311
+ cooperative agreement OAC-1450377 (DIANA/HEP) in 2016-2019
312
+ and has been provided by OAC-1836650 (IRIS-HEP) since 2019.
313
+ Any opinions, findings, conclusions or recommendations expressed in this material
314
+ are those of the authors and do not necessarily reflect the views of the National Science Foundation.
315
+
316
+
317
+ [AmpGen]: https://gitlab.cern.ch/lhcb/Gauss/tree/LHCBGAUSS-1058.AmpGenDev/Gen/AmpGen
318
+ [GooFit]: https://GooFit.github.io
319
+
320
+
@@ -0,0 +1,37 @@
1
+ decaylanguage/__init__.py,sha256=m_luI0KvpAvCVDhBLxTwf9ObW0SGMFnu39mq61_ftOo,695
2
+ decaylanguage/__main__.py,sha256=5C2gWnFbfvDVC0mdnp7YnhHZB8lJhX6TArO-LM49oVs,641
3
+ decaylanguage/_version.py,sha256=YoxiEd2a3_SXwX-vRnmgSRH4ZrUvGq7JwQJpvV0eLYI,144
4
+ decaylanguage/data/DECAY_BELLE2.DEC,sha256=hZcGcK941-FvnSLfZwBvrGFVPiGOkTqQZKRo4eLA8xg,513709
5
+ decaylanguage/data/DECAY_LHCB.DEC,sha256=lAm_rGHiuYFv3JlFZqt3_DE0rX1CZi85S4o6yFqdECs,559864
6
+ decaylanguage/data/MintDalitzSpecialParticles.csv,sha256=pd-mZwHyp3Nigul4EbCGz2R5kHVh0GTelEBZfb-DjlY,3050
7
+ decaylanguage/data/MintDalitzSpecialParticles.fwf,sha256=RtAw_V7btv3XJkdzGvfbmVKJFZ7biv2ecfJ28mrhy2Q,4331
8
+ decaylanguage/data/MintDalitzSpecialParticlesLatex.csv,sha256=lsWdKUbTx5RuLf5cjkqcpPteJYUtlt4I5qSvb2xw_Jw,631
9
+ decaylanguage/data/README.rst,sha256=esV_9BydY7tTx1fdVXeY16LkHkqx0tFoaemRT8AZB0A,1661
10
+ decaylanguage/data/WorkingOutModel.ipynb,sha256=JNNN5vB1jNvZIrAdHqIO8xBOlM3XoYSsJabB5yubKzM,24969
11
+ decaylanguage/data/__init__.py,sha256=kbsVo92He4TppyLjTiRWg4jQLj9sNQzT7tTRS6XuzsQ,369
12
+ decaylanguage/data/ampgen.lark,sha256=Xlq7T62BRPPc0GI6mFqrBTMElDwRl1lUHu6_p74xsXY,1663
13
+ decaylanguage/data/decfile.lark,sha256=8qJytSMx8qQU0x3xTbY85rSbAVN8P0-gMUczq7Ws4l0,2603
14
+ decaylanguage/data/particle.lark,sha256=p0ysF8WfUnbiviS5xoJrIX_cGIftk2KzczRbjm_BRNY,568
15
+ decaylanguage/dec/__init__.py,sha256=Udlpg_i94haCHgQWeZy2zNci-fAJ8gNDUyhgFMMa8fw,156
16
+ decaylanguage/dec/dec.py,sha256=jtdlthWZq55-dGY__l1NERiKmKVnS_S39iQ7nV2YzpE,50840
17
+ decaylanguage/dec/decparser.py,sha256=waEt2CMWz0fAdvR8HhVhcEQzkXexA9RHH7PGGkUVZW8,13130
18
+ decaylanguage/dec/enums.py,sha256=uJZVTRo-1mckL6uIWlCVvbNh7TZYGWdmdbQ61xD4R6Q,1689
19
+ decaylanguage/decay/__init__.py,sha256=8fpZ23K6zYO1G6RAYEiAL7TwSsFqW8l5H1EXq7V2aM0,205
20
+ decaylanguage/decay/decay.py,sha256=mI9VXcSPBwqa1L6k7uJpH6pbF9bG-ts1i9yW6eiKn8U,22272
21
+ decaylanguage/decay/viewer.py,sha256=f4-8Ypl01ZQaXJU4D99tgn0VVdUJi2uTchnIJfhFlsI,8754
22
+ decaylanguage/modeling/AmpGenReader.ipynb,sha256=VYMSvKod94xgtv47_DdPNSO9Gw8dfI40fR9rrOLmQGY,95387
23
+ decaylanguage/modeling/__init__.py,sha256=zNe-37vLf2KDB8Id2hU0XxARaNJ3J3qrOfLyhu8Lhug,119
24
+ decaylanguage/modeling/ampgen2goofit.py,sha256=QeA_RWFw56T0jpiFYBrztZKNFMy4l-mEJJxrJqqI8n8,2588
25
+ decaylanguage/modeling/ampgentransform.py,sha256=N5OYfkcw8N2wlI-vnoPq8jYwI9_mtzOw-mMfj0JuXYY,2007
26
+ decaylanguage/modeling/amplitudechain.py,sha256=YDwn3mjv72Xd74F1B39HRB1EG8Mc-IQp6DYWRH3C_eE,9249
27
+ decaylanguage/modeling/decay.py,sha256=YmEZ13hzyxS_zNBAivdY9IaDf_RGaNhqQxxKEO5t8C4,3364
28
+ decaylanguage/modeling/goofit.py,sha256=FT5LjGIaoXBCx2NP-kfS0HpxmjoxcZA8dMRUwmt45EI,14409
29
+ decaylanguage/utils/__init__.py,sha256=fBB_EO3S9kw4g9DMnX4FCEQuwY80jwdWzZbeGGC1x90,290
30
+ decaylanguage/utils/errors.py,sha256=fGh691RiECMyuevn7YBCTOBTWWj0JOZR1An9bMcxF5g,327
31
+ decaylanguage/utils/particleutils.py,sha256=g3ve_kbD85Uk4dR2KgHDhqwCKKNWPW0WVqkEmLplax8,2073
32
+ decaylanguage/utils/utilities.py,sha256=EuHHkcjV6qOUh1zAFgptIHe0E8c6dgmJ81EGeJYj3UE,1332
33
+ DecayLanguage-0.13.0.dist-info/LICENSE,sha256=wG2bR7fBVvAMPl8eOdbRHhqEOfK5ZEBW3s4OdD5Zps4,1537
34
+ DecayLanguage-0.13.0.dist-info/METADATA,sha256=XujEY-8hOKhQiWuuSYYPDRFPVAl3wX5f-3lw78eUUfA,12062
35
+ DecayLanguage-0.13.0.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92
36
+ DecayLanguage-0.13.0.dist-info/top_level.txt,sha256=Fq3n0TJQ7UcfVnSNXtu9F0cGIJJZOBsZ2lyQMOgJfOU,14
37
+ DecayLanguage-0.13.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: bdist_wheel (0.37.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1 @@
1
+ decaylanguage
@@ -0,0 +1,27 @@
1
+ # Copyright (c) 2018-2021, Eduardo Rodrigues and Henry Schreiner.
2
+ #
3
+ # Distributed under the 3-clause BSD license, see accompanying file LICENSE
4
+ # or https://github.com/scikit-hep/decaylanguage for details.
5
+
6
+
7
+ # Convenient access to the version number
8
+ from ._version import version as __version__
9
+
10
+ # Direct access to decay file parsing tools
11
+ from .dec import DecFileParser
12
+
13
+ # Direct access to decay chain representation classes and visualization tools
14
+ from .decay import DaughtersDict, DecayChain, DecayChainViewer, DecayMode
15
+
16
+ __all__ = (
17
+ "__version__",
18
+ "DecFileParser",
19
+ "DecayChainViewer",
20
+ "DaughtersDict",
21
+ "DecayMode",
22
+ "DecayChain",
23
+ )
24
+
25
+
26
+ def __dir__():
27
+ return __all__
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env python
2
+ # Copyright (c) 2018-2021, Eduardo Rodrigues and Henry Schreiner.
3
+ #
4
+ # Distributed under the 3-clause BSD license, see accompanying file LICENSE
5
+ # or https://github.com/scikit-hep/decaylanguage for details.
6
+
7
+
8
+ from plumbum import cli
9
+
10
+ from decaylanguage.modeling.ampgen2goofit import ampgen2goofit
11
+
12
+
13
+ class DecayLanguageDecay(cli.Application):
14
+ generator = cli.SwitchAttr(["-G", "--generator"], cli.Set("goofit"), mandatory=True)
15
+
16
+ def main(self, filename):
17
+ if self.generator == "goofit":
18
+ ampgen2goofit(filename)
19
+
20
+
21
+ def main():
22
+ DecayLanguageDecay.run()
23
+
24
+
25
+ if __name__ == "__main__":
26
+ main()
@@ -0,0 +1,5 @@
1
+ # coding: utf-8
2
+ # file generated by setuptools_scm
3
+ # don't change, don't track in version control
4
+ version = '0.13.0'
5
+ version_tuple = (0, 13, 0)