Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Write example that finds J^PC numbers with CSPSolver directly #272

Open
4 of 5 tasks
Tracked by #219
redeboer opened this issue Jun 26, 2024 · 1 comment · May be fixed by #278
Open
4 of 5 tasks
Tracked by #219

Write example that finds J^PC numbers with CSPSolver directly #272

redeboer opened this issue Jun 26, 2024 · 1 comment · May be fixed by #278
Assignees
Labels
📝 Docs Improvements or additions to documentation Epic Collection of issues
Milestone

Comments

@redeboer
Copy link
Member

redeboer commented Jun 26, 2024

As a step towards #219 and #20 (and an alternative to #266), it would be a good exercise to generate all allowed $J^{PC}$ numbers (spin, parity, $C$ parity) in a three-body decay using the CSPSolver directly (or if needed, using python-constraints directly). It's essentially reproducing the steps from the STM for a limited number of quantum numbers, without using a particle database.

Sub-tasks

An example from the visualization tutorial, $\psi^\prime \to \gamma \eta \eta$, i.e. $1^{--} \to 1^{--},0^{+-},0^{+-}$:

jpc

Particle transitions

particles

@redeboer redeboer added the 📝 Docs Improvements or additions to documentation label Jun 26, 2024
@redeboer redeboer changed the title Write example that finds allowed J^PC numbers with CSPSolver directly Write example that finds J^PC numbers with CSPSolver directly Jun 26, 2024
@redeboer
Copy link
Member Author

Looking through the code for the STM, I found that the only place where CSPSolver is called is in the _solve() method of the STM:

def _solve(self, qn_problem_set: QNProblemSet) -> tuple[QNProblemSet, QNResult]:
solver = CSPSolver(self.__allowed_intermediate_states)
solutions = solver.find_solutions(qn_problem_set)
return qn_problem_set, solutions

In the documentation, the closest thing to _solve() is find_quantum_number_transitions(), which is described here:
https://qrules.readthedocs.io/0.10.x/usage/visualize.html#quantum-number-solutions

It seems to me you have to formulate a limited form of a ProblemSet (only spin, parity and c_parity plus the relevant conversation rules. Maybe that tutorial shines some light on it 😬

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
📝 Docs Improvements or additions to documentation Epic Collection of issues
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants