LHC Collimation Project

Home of the Project for the LHC Collimation System

 
Top Project Team Notes Collimator List Sounds/Movies Meetings
Links Papers Talks (WG) Layout IR3/7 Collimator DB Pictures
MP Tests Sounds 2011        
 

Tracking Code for Collimation Studies
extended version of SixTrack for collimation
Last edited: 12/2006

(Update and Support: send an email by clicking here)


This page is dedicated to the tracking studies done for the LHC Collimation System thanks to a modified version of the well-know tracking code SixTrack. The objective was to create a state-of-the-art tracking code for our simulations; so the idea was to implement the K2 routines directly into the source code of SixTrack.

A major issue during this change was to make the tracking of an arbitrary large number of particles possible, the original code being limited to 64 particles. Once done, the code follows an element-by-element tracking method which uses newly implemented and dedicated subroutines every time the considered element of the lattice is recognized as a collimator.

These changes implied to modify/add some input files:

              -- the generic SixTrack parameter file fort.3 now has a new block for collimation parameters,

              -- a separate collimator database file is now mandatory if collimation studies are to be done,

this database including the name, length, orientation and material of every single collimator of the ring (1 file per Collimation System Phase though).

Apart from these two, the other required SixTrack files are produced via MAD-X and its conversion module.
 



MAD-X input

From the LHC lattice and optics files V6.5 (including the new layout and optics for the cleaning insertions in IR3 (momentum cleaning) and IR7 (betatron cleaning)), MAD-X can produce ready-to-use input files for SIXTRACK via the sixtrack command.

For "perfect" machines, the files produced are fc.2 (geometry file, to be copied as fort.2) and fc.34 (to be converted into fort.34).
Then one has to create the fort.3 file (parameter file) which corresponds to the required run.

Below are some sample package of input files for preliminary studies of a perfect LHC machine (perfect means that you only require fort.2, fort.3, fort.34 being optional) and for the full collimation system:

injection optics & energy

collisions at top energy with squeezed optics at IP1 & IP5

 


Collimator database

 


In each of the previous package, one can find 2 files called allelements[type]P1.data and allelemLTCP[type]P1.data, with [type] being either inj for injection case or lwb for collision case.
These files
contain the mechanical and optical information about the collimators that are planned for the Phase 1 LHC Collimation System.

If we have a look at a sample block of either one of these input files:

TCP.D6L7.B1                   <-- collimator name in capital letters
tcp.d6l7.b1   
                   <-- collimator name in minimal letters
5.7
                                 <-- collimator nominal opening (in number of sigmas)
C
                                   <-- collimator material (C = graphite, CU = copper, W=tungsten)
    0.2000000000000000         
<-- collimator length [m]
    1.5710000000000000         
<-- collimator angle [rad]
    0.0000000000000000         
<-- collimator offset [m]
  90.4467000000000070         
<-- design Beta x [m]
156.4360000000000070         
<-- design Beta y [m] 
#                                              
<-- line jump to next block  

The purpose to write in there the design values for the optic parameter β is to allow studies of error scenarios (orbit distortion, beta-beating) and/or to see the effect of misaligned collimators.

This structure is then to be repeated within the file for every collimator one wants to study.

The files allelements[type]P1.data and allelemLTCP[type]P1.data are only different regarding the length of the primary collimators: in the first one these elements are 20 cm long, and in the latter they are 60 cm long.

 


Source code of SixTrack

 


Here is a link to a ZIP file containing the source code files needed to compile SixTrack; these files are written in FORTRAN language and MUST be compiled using the Lahay Fortran Compiler LF95.

The main modifications from the original SixTrack source code can be found in the files called sixve.f, sixvefox.f and track.f.

Results obtained from this code can be found there.

 



New block in the fort.3 file

 

 

In order to keep SixTrack as close as possible to its original form (i.e. to avoid the need of multiples input files), it has been decided to include a new block in the parameter file for SixTrack (fort.3).

Here is a sample of what this block looks like:

          COLLIMATION----------------------------------------------------------------
  (1)    .TRUE.
  (2)    157    450000
  (3)    3  0.  0.  5.703  0.0015  "dummy"  1.129E-4 0.0000E+00
  (4)    .TRUE.  8.  9.3  9.3  10.  5.7  6.7  6.7  10.  900.  6.8  8.  7.  6.8
  (5)    900.  900.  900.  900.  900.  900.  900.  900.
  (6)    0 0. 0. 0. 0.
  (7)    0. 0. 0. 0. 0. 0.
  (8)    0. 0. 0. 0. 0. 0.
  (9)    7.82E-09  7.82E-09
 (10)   .FALSE. .FALSE. 0. .TRUE.  TCP.D6L7.B1 .FALSE. .TRUE. .TRUE. .TRUE.
 (11)   0.  0.  0.  0.
 (12)   0.  0.  0.  0.
 (13)   .FALSE.  6.003  0.0015
 (14)   0.  0.  .FALSE. .FALSE.
 (15)   0  0.0025
 (16)   "allelemLTCPinjP1.data"  1
 (17)   .TRUE.  .FALSE. DEoENomP1VertInj  10001  1 1.0
           NEXT-----------------------------------------------------------------------------

Description of the parameters:

(1)   DO_COLL : logical, switches on/off the collimation studies

(2)   NLOOP : number of packs of 64 particles to be tracked (breaks internal limitation)
       MYENOM : energy of the beam to be tracked

(3)   DO_THISDIS: integer, selects the type of distribution used (see below)
        MYNEX : size in sigma of the beam in the X direction, defines distribution to be tracked
        MDEX : smear in sigma of the beam in the X direction, defines distribution to be tracked
        MYNEY : size in sigma of the beam in the Y direction, defines distribution to be tracked
        MDEY : smear in sigma of the beam in the Y direction, defines distribution to be tracked
        FILENAME_DIS: name of the distribution file to be read if DO_THISDIS is set to 4
        ENERROR: energy spread of the tracked beam
        BUNCHLENGTH: bunch length of the tracked beam in millimeters

(4)  nsig_tcp3: opening of the primary collimator in IR3 (in sigmas)
       nsig_tcsg3: opening of the secondary graphite collimator in IR3 (in sigmas)
       nsig_tcsm3: opening of the secondary metallic collimator in IR3 (in sigmas)
       nsig_tcla3: opening of the active absorbers in IR3 (in sigmas)
       nsig_tcp7: opening of the primary collimators in IR7 (in sigmas)
       nsig_tcsg7: opening of the secondary graphite collimator in IR7 (in sigmas)
       nsig_tcsm7: opening of the secondary metallic collimator in IR7 (in sigmas)
       nsig_tcla7: opening of the active absorbers collimator in IR7 (in sigmas)
       nsig_tclp: opening of the physics debris collimator (in sigmas)
       nsig_tcli: opening of the absorbers for injection protection (in sigmas)
       NSIG_TCDQ: opening of the beam dump protection collimator (in sigmas)
       NSIG_TCSTCDQ: opening of secondary collimator dedicated to beam dump (in sigmas)
       NSIG_TDI: opening of the injection protection collimator (in sigmas)

(5)  nsig_tCTH1: opening of the horizontal tertiary collimator in IR1 (in sigmas)
       nsig_tCTH2: opening of the horizontal tertiary collimator in IR2 (in sigmas)
       nsig_tCTH5: opening of the horizontal tertiary collimator in IR5 (in sigmas)
       nsig_tCTH8: opening of the horizontal tertiary collimator in IR8 (in sigmas)
       nsig_tCTV1: opening of the vertical tertiary collimator in IR1 (in sigmas)
       nsig_tCTV2: opening of the vertical tertiary collimator in IR2 (in sigmas)
       nsig_tCTV5: opening of the vertical tertiary collimator in IR5 (in sigmas)
       nsig_tCTV8: opening of the vertical tertiary collimator in IR8 (in sigmas)

(6)  N_SLICES : surface model of the jaw - number of slices in which each jaw should be cut
      SMIN_SLICES : surface model of the jaw - s position for the start of the slicing
      SMAX_SLICES : surface model of the jaw - s position for the end of the slicing 
      RECENTER1 : surface model of the jaw - moving the 1st jaw to the new smallest opening
      RECENTER2 : surface model of the jaw - moving the 2nd jaw to the new smallest opening

(7)  FIT1_1 : surface model of the jaw - order 0 of the polynomial fit for the 1st jaw
      FIT1_2 : surface model of the jaw - order 1 of the polynomial fit for the 1st jaw
      FIT1_3 : surface model of the jaw - order 2 of the polynomial fit for the 1st jaw
      FIT1_4 : surface model of the jaw - order 3 of the polynomial fit for the 1st jaw
      FIT1_5 : surface model of the jaw - order 4 of the polynomial fit for the 1st jaw
      FIT1_6 : surface model of the jaw - order 5 of the polynomial fit for the 1st jaw
      SSF1 : surface model of the jaw - scaling factor of the polynomial fit for the 1st jaw

(8)  FIT2_1 : surface model of the jaw - order 0 of the polynomial fit for the 2nd jaw
      FIT2_2 : surface model of the jaw - order 1 of the polynomial fit for the 2nd jaw
      FIT2_3 : surface model of the jaw - order 2 of the polynomial fit for the 2nd jaw
      FIT2_4 : surface model of the jaw - order 3 of the polynomial fit for the 2nd jaw
      FIT2_5 : surface model of the jaw - order 4 of the polynomial fit for the 2nd jaw
      FIT2_6 : surface model of the jaw - order 5 of the polynomial fit for the 2nd jaw
      SSF2 : surface model of the jaw - scaling factor of the polynomial fit for the 2nd jaw

(9)  EMITX0 : geometric emittance in the horizontal plane
       EMITY0 : geometric emittance in the vertical plane

(10)  DO_SELECT : logical, does a dedicated study of selected collimator (see NAME_SEL)
        DO_NOMINAL : logical, switches on/off the use of design β values of collimators
        RND_SEED : seed studied; if set to 0, seed will be selected randomly for every run
        DOWRITE_DIST : logical, saves or not the initial distribution to be tracked
        NAME_SEL : name as in the fort.2 file of the collimator one wants a dedicated study
        DO_ONESIDE : logical, switches on/off the collimator being one-sided
        DOWRITE_IMPACT : logical, saves the impact parameters for each collimator
        DOWRITE_SECONDARY : logical, writes a 2ry halo file based on normalized amplitude
        DOWRITE_AMPLITUDE : logical, writes checking files for amplitude, closed orbit...

(11)  XBEAT : offset in X for the computation of collimator in case of beta-beating
        XBEATPHASE :  phase offset in X for the computation of collimator in case of beta-beating
        YBEAT : offset in Y for the computation of collimator in case of beta-beating
        YBEATPHASE : phase offset in X for the computation of collimator in case of beta-beating
 
(12)  C_RMSTILT_PRIM : rms value of tilt to apply to primary collimators
        C_RMSTILT_SEC : rms value of tilt to apply to secondary collimators
        C_SYSTILT_PRIM : systematic value of tilt to apply to primary collimators
        C_SYSTILT_SEC : systematic value of tilt to apply to secondary collimators

(13)  RADIAL : logical, switches on/off the radial distribution
         NR : size of the beam to be tracked in number of radial sigmas
         NDR : smear of the beam to be tracked in number of radial sigmas

(14)  DRIFTSX : to apply an emittance drift in x direction
        DRIFTSY : to apply an emittance drift in y direction
        CUT_INPUT : logical, formerly used to select particles to be tracked (set .FALSE.)
        SYSTILT_ANTISYM : logical, to deduce C_SYSTILT to C_RMSTILT instead of adding

(15)  IPENCIL : resets original distribution to pencil beam distribution on selected collimator
        PENCIL_OFFSET : size in number of sigmas of the desired impact parameter

(16)  COLL_DB : name of the collimator database; must be quoted
         IBEAM : "name" of the beam tracked (1 or 2) => TO BE UPGRADED

(17)  DOWRITETRACKS : logical, writes secondary/tertiary halo files
        CERN : logical, switches on/off to cut halo files in separate pieces, one per 64 particles
        CASTORDIR : name of the run; MUST BE EXACTLY 16 characters
        JOBNUMBER : 5 digit number, name of the complement to the name of the run (gives seed)
        SIGSECUT2 : cut in square sigmas x/y for saving particles (e.g. 64 for a cut at 8 σxy)
        SIGSECUT3 : cut in square sigmas radial for saving particles (e.g. 90.25 for a cut at 9.5 σr)

One should know that a large value for NLOOP combined with DOWRITE_TRACKS set to .TRUE. may create really huge output files, depending on the optics you run with.
For example, in our current simulations, a run with NLOOP = 50 (i.e. simulations over 3200 particles) for the LHC collision optics will produce a tracks2.dat file of 2.8 Go (!!), for just 1/1000th of the statistics we need.

Remark: the flag DO_THISDIS provides the user with 4 different options:

-- DO_THISIDS = 1 : distribution in the plane for which the parameters are specified ONLY

-- DO_THISIDS = 2 : distribution in the plane for which the parameters are specified + 1 sigma distribution in the other plane

-- DO_THISIDS = 3 : distribution in the plane for which the parameters are specified + 1 sigma distribution in the other plane + energy distribution and bunch length according to the values given with ENERROR and BUNCHLENGTH

-- DO_THISIDS = 4 : reads an external file that contains the beam distribution to be tracked.

 


Results

 


Below are some inefficiency curves obtained with the different optics input files provided some lines above; these plots were obtained using only the primary and secondary collimators of the IR7 LHC insertion region:

Click on the picture then "Save as.." to get a Powerpoint file with enlarged curves.


The main purpose of the code is to produce loss maps along the ring, in order to compare the level of local beam losses with the magnetic quench limit.
Below is an example of such loss maps for the injection optics case (450 GeV beam energy): the top plot is obtained if one only considers the IR7 insertion region collimators; the bottom plot is obtained if one considers the full collimation system, i.e. all collimators, all absorbers and all cleaning elements (TCLP + TCDQ):


Click on the picture then "Save as.." to get a Powerpoint file with enlarged curves.
 

It can be seen in both figures (full ring and zoom downstream of  IR7) that the complete collimation system (bottom plots of each figure) has a significantly better performance than the betatron cleaning system with primary and secondary collimators alone: there is a notable reduction of the loss spikes in the arc downstream of the IR7 insertion region, where the betatron cleaning is located. At the same time, additional losses are observed in IR2, where the TDI injection protection element is intercepting the secondary halo at its nominal setting.
 

Publications

 

A New Version of SIXTRACK with Collimation and Aperture Interface, G. Robert-Demolaize, R. Assmann, S. Redaelli, F. Schmidt, CERN, Geneva, Switzerland, PAC05

 

  GRD - SR - CB, Thursday, 05. April 2012 11:07 +0200