Get the latest version of Corsika from here (right now this is at least 7.64): https://www.ikp.kit.edu/corsika/ Extract Corsika {{{ [0] tar xvf corsika-76400.tar.bz2 }}} Call coconut {{{ [1] cd corsika-76400 [2] ./coconut }}} You can use the defaults (just press return) for * Compile in 32 or 64bit mode? [64 bit] * Which high energy hadronic interaction model do you want to use? [QGSJET 01C] * Which low energy hadronic interaction model do you want to use? [GHEISHA 2002d] * Which detector geometry do you have? [horizontal flat] Now you should get a long list of possible options {{{ Which additional CORSIKA program options do you need? }}} Enter {{{ (multiple selections accepted, leading '-' removes option): 1a 1b 1c 1e 7c 9 }}} There options correspond to: CERENKOV, IACT, CEFFIC, TRAJECT, VIEWCONE and ATMEXT. Now you will get asked more question, answer them as follows * Cherenkov light vertical (longitudinal) distribution option? [only in step] * Do you want Cherenkov light emission angle wavelength dependence? [depending on wavelength] {This corresponds to the CERWLEN option} * IACTEXT external output file option? [not stored] {no eventio format} Now, coconut can create the input files, configure the make system and make. To proceed, select `*** Finish selection ***`. You should see {{{ Are you sure you want to continue with these current option selection: BERNLOHRDIR IACT TRAJECT CEFFIC CERENKOV CERWLEN IACTDIR VIEWCONE ATMEXT yes or no ? (default: yes) > }}} Which you acknowledge. Now, go ahead! = Options = CEFFIC: All three look-up-tables (QE, Atmabs, Mirror) are limited to 105 values between 180nm and 700nm -> This turns the extension to 2000nm in the IACT option off IACT: Redirects photons to eventio (telescope.dat) file (CER files exists, but only for one telescope and it is empty), extends wavelength range to 2000nm. IACTEXT: Write also particles to eventio file CEFFIC/CERWLEN: The 8-th number (production height) of each photon is replaced by the wavelength This is from the tracking of the electrons through the Earth's magnetic field {{{#!fortran C LIMITING FACTOR FOR STEP SIZE OF ELECTRON IN MAGNETIC FIELD #if __CERENKOV__ && __IACT__ C LIMIT IN DEFLECTION ANGLE IS 2.5 MILLIRADIAN = 0.143 DEG C WE USE A LIMIT OF ABOUT 0.05 DEG (APPROX. 1 MILLIRAD) BLIMIT = 0.001D0 / BNORM #else C WE USE A LIMIT OF ABOUT 11.4 DEG (0.2 RAD) BLIMIT = 0.2D0 / BNORM #endif }}} This is from the muon tracking (MUTRAC) {{{#!fortran #if __CERENKOV__ && __IACT__ C SCATTERING ANGLES OF MUONS SHOULD BE SMALLER THAN THE PIXEL SIZE. * AUX = MIN( 1.D0, 0.015D0*GAMMA ) C THE SAME SHOULD HOLD FOR DEFLECTION IN THE GEOMAGNETIC FIELD. C HERE USING A MAXIMUM RMS SCATTERING / DEFLECTION ANGLE OF 0.05 DEG C AND APPROXIMATE ALL BETA*GAMMA TERMS BY GAMMA. Cxx Write(*,*) 'mu step old-style step=',MIN( 1.D0,0.015D0*GAMMA ) C FOR A MEAN SCATTERING ANGLE THETA WE HAVE A STEP LENGTH OF ABOUT C (THETA / (13.6 MEV/(BETA*C*P))**2 RADIATION LENGTHS (PDG), C NOT TAKING INTO ACCOUNT THE NON-GAUSSIAN PART OF THE DISTIBUTION. C FOR THE MOMENT DON''T CARE ABOUT THE DIFFERENCE BETWEEN THE C 'COULOMB SCATTERING LENGTH' 37.7 G/CM**2 (=C(21)) AND THE C RADIATION LENGTH OF 36.66 OR 36.62 G/CM**2 IN AIR. C NOTE: PI/180/(13.6 MEV/(BETA*C*P)) APPROX 0.136*GAMMA FOR MUONS. AUX = MIN( 1.D0, ((0.05*0.136)*GAMMA)**2 ) IF ( BNORMC .GT. 0.D0 ) THEN C NOTE: PI/180*PAMA(5)*BETA*GAMMA APPROX 0.00185*GAMMA AUX = MIN( AUX, (0.05*0.00185)*GAMMA*RHOF(H)/(BNORMC*C(21)) ) ENDIF Cxx Write(*,*) 'mu step new-style step=',AUX #else AUX = MIN( 10.D0, 0.015D0*GAMMA ) #endif }}} For me this seems only relevant if someone wants to backtrack a single muon, i.e. determin its arrival direction. An interesting possibility of the IACT option is: > j) Starting with version 1.25, the package has been prepared for importance sampling ofcore position offsets. This would mean that actual core offsets can be generated in anon-uniform distribution and can extend to different distances, depending on primaryenergy, primary type, zenith angle and so on. This package, however, does not provide areal implementation of importance sampling (other than for testing that the later stagesof the processing properly get the weights for each event). If you do nothing about it,you will get uniformly distributed core offsets as before. If you plan to make use ofimportance sampling, you have to replace the file ’sampling.c’ with an implementationof your choice. A problem with the IACT option might be this: > m) Starting with version 1.38, the dynamic range in a telescope is basically unlimited dueto automatic thinning of bunches. When a detector sphere is hit by more than the givenmaximum number of bunches, the actual number of bunches is reduced by increasingpowers of two, by discarding every second bunch and increasing the bunch size of theremaining bunches by factors of two. Very large eventio buffers are now possible on64-bit machines. They were formerly limited to less than 1 GiB per telescope array andevent and now to 2 GiB on 32-bit machines but can be increased to 4 Terabytes on 64-bitmachines. == Conclusion == If we want to do any absorption in Corsika (CEFFIC), we have to patch Corsika to allow wavelength larger than 700nm or accept that we will miss photons above 700nm. Enabling IACT might make sense, due to the code snippets shown above, the automatic thinning (faster) and the work on improving runtime by faster interpolation algorithms. The disadvantage of the IACT option is that teh data of all telescopes end up in the same file and that *eventio* format has to be used. Although, the iACT options writes a temporary file for each individual telescope, they are sorted together into one file later. Using IACT means that we have to understand the automatic thinning and implement it and to make sure eventio works. I have the impression that eventio files are larger than the corsika output (which is a bit strange)... this has to be checked with long runs and high statistics!