CORSIKA
CORSIKA (COsmic Ray SImulations for KAscade) is a program for the simulation of extensive air showers initiated by high energy cosmic ray particles. It has many options and can produce very detailed results. Here we will list just the most important ones, compared to other cosmic-ray generators used in Mu2e:
- Elevation can be set at the Fermilab one (226 m) and the particles flux is automatically adjusted accordingly.
- Different models for cosmic shower evolutions can be tested (e.g. FLUKA, GHEISHA).
- No binning effects in the energy spectra of the particles.
- Magnetic field can be set to the value measured at Fermilab (Bx = 19.066 μT, Bz = 50.628 μT).
- Different particles can be used as primaries (protons, helium, heavy nuclei).
The MicroBooNE collaboration has performed a detailed comparison of the CORSIKA and CRY expected fluxes at Fermilab elevation. In particular, the flux of neutrons (protons) with CORSIKA+FLUKA is 3.35x (2.50x) higher than CRY.
CORSIKA installation
The CORSIKA source code is available, previous registration, on the CORSIKA website.
In order to work together with FLUKA, it requires gfortran v8_2_0. Moreover, the FLUFOR
environment variable must be set to gfortran
and the FLUPRO
environment variable must point to the installed FLUKA directory.
The compilation is run by an interactive script called coconut
, which produces the CORSIKA executable in the run
folder. As additional CORSIKA program options you might want to select the option g
(COMPACT particle output file), which produces output files 40x smaller than the default. If you choose the QGSJET as high-energy hadronic model and FLUKA as low-energy hadronic model, the executable will be called corsika77100Linux_QGSJET_fluka
. Thus, the CORSIKA output is created by launching the command:
./corsika77100Linux_QGSJET_fluka < corsika_configuration
The corsika_configuration
file is a text file containing the setup of the cosmic rays we want to simulate. We report here an example:
RUNNR 110001 run number EVTNR 1 number of first shower event NSHOW 2000000 number of showers to generate PRMPAR 14 particle type of prim. particle (14=p) ESLOPE -2.7 slope of primary energy spectrum ERANGE 1.3 100000 energy range of primary (GeV) THETAP 0. 90. range of zenith angle (degree) PHIP -180. 180. range of azimuth angle (degree) SEED 110001 0 0 seed for 1. random number sequence SEED 100110001 0 0 seed for 2. random number sequence QGSJET T 0 QGSJET for high energy & debug level QGSSIG T QGSJET cross-sections enable OBSLEV 228E2 observation level (in cm) MAGNET 19.066 50.628 Earth's mag. field at detector- Bx & Bz (22/09/2014) HADFLG 0 0 0 0 0 2 flags hadr.interact.&fragmentation ECUTS 0.05 0.05 0.05 0.05 energy cuts for particles MUADDI F additional info for muons MUMULT T muon multiple scattering angle ELMFLG F T em. interaction flags (NKG,EGS) STEPFC 1.0 mult. scattering step length fact. RADNKG 200.E2 outer radius for NKG lat.dens.distr. ARRANG 0 rotation of array to north ATMOD 1 U.S. standard atmosphere (1-Linsley; 22-Keilhauer) LONGI F 20. F F longit.distr. & step size & fit & out ECTMAP 1.E2 cut on gamma factor for printout MAXPRT 0 max. number of printed events DIRECT ./ output directory DATBAS F write .dbase file USER srsoleti user DEBUG F 6 F 1000000 debug flag and log.unit for out EXIT terminates input
The output file will be called DAT110001 (where 110001 is the run number RUNNR). The size of the output file is around 100MB for 2000000 primary nucleons, which in turn produce around 6000 showers with at least one particle at Fermilab elevation.
Using CORSIKA in the Mu2e Offline
The Mu2e Offline contains a Source module Sources/src/FromCorsikaBinary_source.cc
which takes as input a CORSIKA output file. The output file can be both in the compact and in the full format. The Source module will produce art events with a single GenParticleCollection
data product.
The particles are generated just above a target box, whose size is specified in the FCL parameters. The same random spatial offset is applied to the particles coming from a single primary nucleon, in order to span the box target area with the same probability. The particles will belong to a single art event (thus to the same GenParticleCollection
) if they are within the target top area, plus a showerAreaExtension
padding (specified as well in the FCL file and allows to store the cosmic rays impinging on the target box at a low angle). If there are particles outside this area, they will belong to a different art event, as shown in the diagram on the right.
The Producer module EventGenerator/src/CORSIKAEventGenerator_module.cc
can run after the Source module in the same chain. This module will backtrack the particles in the GenParticleCollection
to the Mu2e world borders and it will calculate the corresponding live-time of the simulated events.
A FCL example is available at EventGenerator/test/corsikaTest.fcl
.