Metadata-Version: 2.4
Name: felarc
Version: 0.2.0
Summary: Add your description here
Requires-Python: >=3.12
Requires-Dist: latdraw>=0.1.1a3
Requires-Dist: matplotlib>=3.10.3
Requires-Dist: ocelot-desy>=25.6.0
Requires-Dist: sympy>=1.14.0
Requires-Dist: tabulate>=0.9.0
Description-Content-Type: text/markdown

# Installation

## Development

I use [uv](https://docs.astral.sh/uv/) with
[direnv](https://direnv.net) and the Python+uv direnv
[layout](https://github.com/direnv/direnv/wiki/Python#uv).

```console
$ git clone https://github.com/st-walker/felarc
$ uv sync --group dev
$ uv run jupyter/pytest/whatever
$ # OR:
$ # OR: just jupyter with the .envrc:
$ direnv allow
$ # OR:
$ source .venv/bin/activate
```

# TODO

## Simple TBA

Source: [High Energy Beam Optics](https://bib-pubdb1.desy.de/record/352895)

  * [ ] Refactor notebook functions to package.
  * [ ] Introduce linear maps for solving equations to find best parameters.
  * [ ] Get reasonable Twiss parameters in the TBA based on similar value from the T20 design.
  * [ ] Track using STN beam with CSR and check result.

## New Family

Source: [A New Family of Isochronous Arcs](https://accelconf.web.cern.ch/p95/ARTICLES/RPC/RPC12.PDF)

  * [x] Implement the basic version with optionally different inner dipole strength.
  * [ ] Do the full parametristation.
  * [ ] Come up with some reasonable implementation.
  * [ ] Track with CSR.


## Simple DBA

  * [ ] Make a DBA.
  * [ ] Track and show impact of CSR
  * [ ] Make DBA

## Combined CSR Mitigation with Isochronicity

Source: [Quasi-isochronous triple-bend achromat with periodic stable optics and negligible coherent-synchrotron-radiation effects](https://journals.aps.org/prab/pdf/10.1103/PhysRevAccelBeams.24.060701)

  * [ ] Fill this out


## Miscellaneous

   * [ ] Add plot for D / rho for the dipoles
   * [ ] Add STN10 beam file for 100pC and 250pC with utilities for loading and artificial matching.
   * [ ] TBA plot showing the depenence of the dipole angles on the required dispersions at the inner dipole.
   * [ ] Derive the isochronicity condition.

