Speaker
Description
During long shutdown and maintenance periods at CERN, the surveying teams intensively use in-house data processing software, developed these last decades and mostly written in C++ language.
The accurate measurement of the deviations of hundreds of successive accelerator components with respect to their theoretical positions, in either vertical or radial direction, is part of the survey activities. The final smoothing operations consist of mechanically re-positioning some of those components to ensure smoothed transitions between elements and limit optical corrections of the particle beams orbits. “RABOT” is the survey software currently used to process the measured deviations and provide such smoothed data. Initially designed in Fortran language in the 90’s, it had been fully re-written in C++ ten years later. However, the unnecessary complexity of its code, as well as missing documentation and poor description of its algorithmic made it difficult to maintain. Based on reverse-engineering methods, we recently decided to re-write this essential software using Python language.
At first glance, using Python as a software development language is a questionable choice from a performance point of view. Indeed, the compiled nature of the C++ language makes it incomparably faster than equivalent algorithms coded in scripting languages such as Python. However, there are multiple benefits of choosing Python for such limited developments. Amongst them: an easier and comprehensive syntax that drastically reduces the development time and enhances the legibility for non-expert programmers. As a direct consequence, available resources and development efforts can be oriented towards algorithmic optimization and improvement, rather than towards pure code enhancement. Moreover, the development relies on robust and performant numerical libraries such as NumPy and Matplotlib that offer a wide variety of tunable methods.
This paper reviews some advantages and drawbacks of using Python for the development of new calculation software needed for future survey projects and activities.