This directory contains files related to the code ICOOL, which is one of the tools that is being used by the Neutrino Factory and Muon Collider Collaboration to study ionization cooling of muon beams.

CAVEAT EMPTOR

ICOOL is under active development at the present time. It is being made available as a potential aid to members of the collaboration for studying ionization cooling problems. Although considerable effort has gone into making the code give accurate answers, it is ultimately the user's responsibility to check that the program gives reasonable answers to any specific problem.

This version


Version 3.17 includes a modification to the ACCEL(5) and (11) commands to allow SuperFish cavities in dipole regions. The APERTURE command was modified to allow off-center, rectangular cuts. The multipole expansion for orders 1-3 was changed in BSOL for constant curvature. The DIP, HDIP, QUAD, SQUA and SEX commands were modified so that model=1 consistently uses second order expansions. Some IFLD.FOR and IINT.FOR routines were modified to use double precision constants (S. Berg). Errors were fixed in HELIX(6) and in the initialization for decays.

Modification may be necessary in existing input decks that use the APERTURE, ACCEL(5), BSOL(2), DIP(1), or HDIP(1) commands.

A potential error in the ECALC9F utility has been corrected (C. Yoshikawa).

(20 January 2009)


Recent versions

Version 3.13 includes a new HELIX model 6 that takes into account the torsion parameter in a helix. The default straggling model was changed to restricted energy losses including delta ray production. Errors were fixed in BSOL(3), HELIX, and the SAMCS implementation in Icool. The &RAN command was removed. The only modification necessary in existing input decks should be for the &RAN command. The ENDOF9 utility has been updated. (15 July 2008)

Version 3.10 includes a new mechanism for creating tapered channels. The new command TAPER can be used with the new field model BLOCK(4) to make a solenoid channel with tapered current densities. It can also be used with the new field model BSOL(5) to create a channel with tapered geometry, RF frequencies, and multipole strengths. Sergei Striganov's model SAMCS for simulating correlated scattering and straggling has been embedded inside ICOOL. The name substitution logic was modified to allow namelist input with & ... / separators. Errors were fixed in SOL(1) and in using Lz in the internal diagnostics. No modifications should be necessary in existing input decks. The ENDOF9 and BUNCH9 utilities have been updated. Dave Neuffer has written a new version of ECALC9 (ECALCXY) that should be more suitable for calculating emittance in channels that contain dipoles and quadrupoles. The ICOOL User's Guide has been updated. (27 February 2008)

Version 3.05 includes a new field model SOL(10) for specifying a solenoid from the on-axis field. It also includes a new helix model HEL(5) for specifying helical multipoles from their Fourier coefficients. BSOL(3) was modified to allow calculations of off-axis fields up to 5th order, to allow specifying the a0 multipole, and to increase the execution speed. The space charge algorithm was changed by removing all particles more than 4-sigma from the mean in radius or axial position before calculating the bunch sigmas used for the space charge calculation. A normalization error was fixed in BROD. Errors were fixed in WIG(4). An error was fixed in the value of z0 for beam restarts. Users of previous versions should be aware that some of the parameters have been changed for BSOL(3) and WIG(4). The VIEW9 utility has been updated. (19 March 2007)

Version 3.01 includes a new field model (BROD) for bent axial current carrying rods. There is also a new static electric field model (EFLD) from Scott Berg. New phase models 5 and 6 allow quadratic variation of the reference particle energy with distance. The pillbox cavity model ACCEL(2) now has parameters to offset the transverse position of the cavity. The tracking logic was modified to allow starting particles at z locations greater than 0. The F9DP control variable has a new option (17) to write out 3 digit exponents. The grid interpolation logic was modified to give B=0 for any point outside a grid. The internal particle masses were updated to use the latest PDG values. The mean excitation potentials were updated. The maximum number of characters per line for name substitutions was increased. Bugs were fixed in the simulation of polarization, energy loss and muon decay. Users of previous versions should be aware that the meaning of PHASEMODEL 5 has changed. The beam restart logic was modified to require a reference particle. The BUNCH9, ECALC9F, ERRSUM2, EXTPAR9, EXTREG9, ENDOF9,and NOTEND9 utilities have been updated. BUNCH9 now includes helicity information. ECALC9F has a new parameter that produces a file containing the particle track numbers for tracks inside the acceptance cuts. ENDOF9 can now optionally read and process the list of accepted particles from ECALC9F. (18 September 2006)

Version 2.96 includes new scattering models due to Fano and Tollestrup. The default scattering model was changed from the Bethe to the Fano model. There is a new simple helical wiggler and a planar wiggler model. The number of particles kept in memory was increased to 300000. The SUB command was modified to only process up to first ENDS command. ELMS was modified to read the external file ELMSCOM.TXT for paths. The histogram HCPRN command was modified to write to a specified file. The curvature factor logic in BSOL was changed. Errors were fixed in the phasemodel 4 time and the Twiss beam correlations. Users of previous versions should be aware that the ELMSDIR and ELMSDB interaction variables are no longer used. The meaning of some parameters have been changed in all the BSOL and WIG commands. The ERRSUM2, EXTREG9, ENDOF9,and NOTEND9 utilities have been updated. (10 April 2006)


V3.17 FILES

The tables below describes the available files, including a Windows executable, manual, revision history, examples and source code. The code may be accessed using the link at the bottom of the page.

ICOOL Files
icool.for general monte carlo framework
ifld.for field routines
iint.for particle interaction routines
idiag.for built-in diagnostics
imath.for mathematical routines
imsoft.for Windows-specific code
icommon.inc common blocks include file
icool.exe Windows PC executable (binary)
icoolman.html ICOOL reference manual
icoolman.pdf ICOOL reference manual
ICguide.pdf ICOOL user's guide

Some files that are useful for running ICOOL on UNIX machines are given in the following table.

UNIX Utility Files
iunix*.* Scott Berg's UNIX replacements for file imsoft.for
Makefile Scott Berg's UNIX make file
Makefile2 Adam Lichtl's UNIX make file

A number of auxiliary files are available to enrich your ICOOL experience. These include further descriptions of the code, its revision history, and tutorials. A number of separate utility programs can examine ICOOL input and output files.

Auxiliary Files
icool99.pdf ICOOL description from PAC99
icool05.pdf ICOOL description from PAC05
changes.txt History of changes made to code
tutor.pdf Steve Bracker's tutorial on regions, cells, sections
wedges.pdf Steve Bracker's tutorial on wedges
view1.exe A Windows graphical preprocessor. This program extracts geometrical information from the ICOOL command file for001.dat. It displays the geometry information from for001.dat and from any other associated magnet data files. The executable works on Windows NT and XP, but not on ME.
view1man.pdf VIEW1 user's manual
errsum2.* Makes error message summary from ICOOL log file. This program reads the ICOOL log file for002.dat. It displays a short error summary on the terminal and writes a more detailed error analysis on a file.
ecalc9f.* Gregg Penn's postprocessor for calculating emittance with standard cuts. This version reads the ICOOL physics output file for009.dat and a second file containing the parameter values for the analysis.
emitcalc.* Gregg Penn's postprocessor for calculating emittance with standard cuts in all three phase space planes. The routine reads the ICOOL physics output file for009.dat and a second file containing the parameter values for the analysis.
ecalcxy.* Dave Neuffer's postprocessor for calculating emittance in channels that are not azimuthally symmetric. This is more suitable for channels containing dipoles and quadrupoles than ECALC9F. The routine reads the ICOOL physics output file for009.dat and a second file containing the parameter values for the analysis.
view9.exe A Windows graphical postprocessor. This program reads the ICOOL physics output file for009.dat. Scatter plots of user-selected variables are displayed for every region on the file.
view9man.pdf VIEW9 user's manual
endof9.* This program reads the ICOOL physics output file for009.dat. It writes a new file in for009.dat format that only contains information for particles that get to end of simulation.
notend9.* This program reads the ICOOL physics output file for009.dat. It writes a new file in for009.dat format that only contains information for particles that do NOT get to end of simulation.
extpar9.* This program reads the ICOOL physics output file for009.dat and a parameter file. It writes a new file that only contains information for user-selected particles.
extreg9.* This program reads the ICOOL physics output file for009.dat and a parameter file. It writes a new file that only contains information for user-selected regions.
bunch9.* This program reads the ICOOL physics output file for009.dat and a parameter file. It writes an analysis file containing bunching data along with several other auxilliary files.
elmsdb.zip Data files needed for running ICOOL with ELMS

A number of example files have also been included. The example file naming scheme begins with a four character tag to describe a general problem. The next (up to 4) characters define a specific example. The 3-character extension defines the type of file. For example, DRIF.F01 is the FOR001.DAT file for a DRIFt space example, which is a minimal-input running deck provided for beginning users. Some examples have additional data files that must also be renamed in order for the example to run, e.g. ASOL.F03 -> FOR003.DAT. These examples are only intended to illustrate the input command structure and to give the user a test output to check if the program is executing properly.

Example Files
adib.f## Adiabatic buncher example. This illustrates using two reference particles together with ACCEL model 10 and using &SUB name substitutions.
asol.f## Alternating solenoid example. This is an early transverse cooling lattice.
cool_mg.f## s-fofo 2.75 m cooling lattice from Feasibility Study 2. It uses a "moving grid" (SHEET model 4).
drif.f## Drift space example
horn.f## BNL E889 horn example. This example also illustrates multiple beam type generation and creation of a neutrino production data file.
ring.f## Balbekov ring example. This illustrates using the BEGS, multiple GRID, and EDGE commands.
*.f01 Command input
*.f02 Program output
*.f03 Beam input
*.f07 Region summary table
*.f20 Current sheet or other input 20, etc.

All the above files are contained in the following zip file.

ZIP File
icool.zip zip file containing all other files

You can download these files from the subdirectory V317 .

The previous release version can be found in V313 .