Skip to content
Riccardo De Maria edited this page Jun 6, 2015 · 22 revisions

Introduction

SixTrackLib contains parametric maps that track particle coordinates.

The maps are organized in groups sharing the same coordinate conventions and are listed here:

  • Generic Maps Generic maps like: elem loop, parameters expression, counters
  • Sixtrack Maps Maps implementing SixTrack tracking engine
  • Nd Maps Abstract 2D, 4D, 6D maps

##Input Data Structure

Map parameters are organized in elements. From an element All data is organized in 4 arrays

name type Description
elemi integer array Element integer data
elemf floating point array Element floating point data
parti integer array Particle integer data
partf floating point array Particle floating point data

Each element is identified by an index elemid such that

  • mapid=elemi[elemid] where mapid identify the associated map
  • mapst=elemi[elemid+1] and elemf[mapst+<n>] is the (n+1)-th floating point map parameter if any
  • elemi[elemid+2+<n>] if the n-th+1 integer map parameter if any

Similarly a particle is associated with a partid such that:

  • partn=parti[0] is the total number of particles
  • ndf=parti[1] is the number of floating point coordinates per particle
  • ndi=parti[2] is the number of integer coordinates per particle
  • stf=parti[3] is the shift for partf
  • sti=parti[4] is the shift for parti
  • partf[stf+partid*ndf+<n>] is the (n+1)-th floating point coordinate of the particles
  • parti[sti+partid*ndi+<n>] is the (n+1)-th integer coordinate of the particles

Each element has the following associated methods:

  • <name>_init(elemi, elemf, elemid): to be called any time the parameters are updated to ensure consistency between derived inter-dependent parameters.
  • <name>_map(elemi, elemf, elemid, parti, partf, partid, partn): maps that track a set of particles and substitute final coordinate into initial coordinates in parti, partf.

See C coding conventions for further details.

Clone this wiki locally