Git Product home page Git Product logo

pylhc's Introduction

PyLHC Tools

Cron Testing Code Climate coverage Code Climate maintainability (percentage) GitHub last commit GitHub release DOI

This package provides tools for particle accelerator physics complementing the optics measurement analysis tools of the omc3 package. It is a collection of useful scripts for the Optics Measurements and Corrections team (OMC) at CERN, with functionality for data analysis, corrections calculation, simulations management and machine information extraction.

Documentation

Installing

This package is Python 3.7+ compatible, and can be installed through pip:

python -m pip install pylhc

After installing, scripts can be run with either python -m pylhc.SCRIPT --FLAG ARGUMENT or by calling the Python files directly.

For development purposes, we recommend creating a new virtual environment and installing from VCS in editable mode with all extra dependencies:

git clone https://github.com/pylhc/pylhc
python -m pip install --editable "pylhc[all]"

Note: Some scripts access functionality only available on the CERN Technical Network. To use those, you should make sure to install the relevant extra dependencies with python -m pip install "pylhc[cern]".

Functionality

  • Forced DA Analysis - Script to analyze forced DA. (forced_da_analysis.py)
  • Machine Settings Info - Prints an overview over the machine settings at a given time. (machine_settings_info.py)
  • KickGroup Information - Get information about KickGroups. (kickgroups.py)
  • BSRT Logger and BSRT Analysis - Saves data coming straight from LHC BSRT FESA class and allows subsequent analysis. (bsrt_logger.py & bsrt_analysis.py )
  • BPM Calibration Factors - Compute the BPM calibration factors using ballistic optics. Two methods are available: using the beta function and using the dispersion. (bpm_calibration.py)

License

This project is licensed under the MIT License - see the LICENSE file for details.

pylhc's People

Contributors

eothred avatar fsoubelet avatar joschd avatar mael-le-garrec avatar mihofer avatar pylhctokens avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pylhc's Issues

Update README

Autosix and bsrt renaming.
Why do people always forget that?

Rewrite Forced_DA to da_analysis

Allow input of measurements from blown-up beams, (single) kicked beams and excited beams (forced da) via switches.

  • add missing formulas
  • input to be checked for heated (no kick)
  • input also nominal emittance (HL-LHC)

Add htcondor wrapper and madx job creator

Add python routines to create from a madx mask htcondor jobs
abstract implementation best so other scenarios can also be covered (e.g. SAD jobs, optics analysis, ...)

Machine Settings Info: Get info as output and files

In case machine settings infos are used elsewhere, they should be returned and output.
A good format is tfs, where the beamprocess details are in the header and the knob-values are
written in the columns.

Import ABCs from the proper modules

Current job_submitter raises the following:

DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3,and in 3.9 it will stop working
  from collections import OrderedDict, Iterable

Should be a very quick change to become compliant (the warning is for Iterable only though).

Append jobs broken in madx_submitter

Bug in append jobs which would only create new jobs if all value entries for one job could not be found in the previous values grid
Problem is in the mask creation with 'not in' and numpy array

BPM calibration

BPM calibration tests are broken after some update of the dependencies

  • Which dependency
  • Why is it less accurate
  • Fix Tests

update README

requirements.txt replaced by setup.py
mad-x submitter renamed to job submitter etc.

SDDS update for llong

Hi,

The new format for sdds files often uses llong format. I was able to use your code with the following modifications :
classes.py, line 17-19 : add llong format (>i8, 8, int)
reader.py line 139 : convert num_dims to int -> int(num_dims)

Thank you for the good work! Is there any plan to add ascii compatibility?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.