Trigsim : a trigger simulation software

Software repository

To start trigger simulation you need three components :

  1. ROOT. In .bashrc (or .cshrc), ROOTSYS has to be defined as the path to the ROOT repository.
  2. hessioxxx : it can be downloaded from this webpage. It also can be found the local repository in pion:
  3. trigsim : the latest version can be got from a cvs repository with the line command: cvs -d co trigsim. To do so, an account in Humbolt university can be asked to Ulli Schwanke. If you don't need the latest one, two version can be found is the repository /pion3/data/duboisf/.: trigsim_22-12-2011.tar (last version from cvs) and trigsimNew.tar (not yet available) which contain modifications like output file (for histogram), multi-clipping/multplicity value analysis, broken pixels simulations,... 


Before starting, you have to define global variables in your .bashrc (or .cshrc) in your home directory. The two first ones are required in the Makefiles.

    • bash: > export CTAROOT=Path_of_the_directory_where_software_will_be_installed
    • csh:   > setenv CTAROOT  Path_of_the_directory_where_software_will_be_installed
  • ROOTSYS (if not already defined)
  • PATH: > export PATH=$CTAROOT/trigsim/bin/:$PATH

Go in hessioxxx repository. Compile software simply by enter line command "make".
Go in trigsim repository. Enter commands "make links", than "make".
WARNING: If the library is not installed within the root version, you will not be able to install the entire version of trigsim. It is necessary to compile the file ReadOutSpecs.C.
Fortunately, this part of the software is independent on the rest of the software, and particulary on the complete trigger simulation part. To solve the problem (without installing the MathMore library), the line "ReadOutSpecs.hh  \" and "ReadOutSpecs.C \" can be removed from the trigsim/Makefile.

Now you can start !!!!
NB: the software can also be installed on MacOS X.

How to start
1. Initiate analysis
After compilation, an executable called trigsim can be found in the subdirectory: trigsim/bin/.
All trigger analysis have to be iniciated with the command "trigsim -u[analysistype] [option] inputdata".
2. The simulation files.
Many files were created for trigger simulation. They can be download from there. They included fixed energy proton, fixed energy/spectrum pointlike source/diffuse gamma simulation. They contain the arrival time of every photon in each photomultiplier. Some of them had been already downloaded and can be found in pion: /pion3/data/duboisf/. or muon: /muon2/data/duboisf/.
WARNING: The very high energy simulations (300TeV proton and 100TeV)
were produced with a bug in the software. For some events, no photon has
been registered in the simulation file. It is better not use them.

The configuration of the telescopes are the following:

  • 10 LST (1-10): D=23m, FoV=5°, FoV/pix=0.09°
  • 125 MST (11-135): D=12m, FoV=8°, FoV/pix=0.18°
  • 96 SST (136-231): D=6.7m, FoV=10°, FoV/pix=0.25°
  • 40 alternative MST (232-271): D=12m, FoV=10°, FoV/pix=0.25°
  • 4 alternative MST (271-275): D=10m, FoV=10.5°, FoV/pix=30°

The different sets of telescopes can be found there.


  1. General options
    1. -v : verbose. Enable print out information
    2. --dst-level [int] : Level of data reduction when writing DST-type output
    3. --dst-file [char *] : Name of output file for DST-type output
    4. --max-events [int] : Maximum number of analysed events.
    5. -f [char **] : List of input file names.
    6. -w : ¿?¿?
    7. -m : multiple trigger algorithms ¿?¿?¿?
  2. TriggerBase options
    1. -u[int] (no space): Call user-defined analysis function
      1. -u1 : Sum trigger function
      2. -u2 : Time analysis trigger
      3. -u6 : Majority trigger function
      4. -u7 : Multi-trigger analysis (from Humbolt university)
    2. -tSpheFWHM [float] : time width of the photoelectron pulse. The default value is 2.3 ns.
    3. -tAPFlag [int] : If !=0, include afterpulse in camera simulated response.
    4. -tAPFWHM [float] : time width of the AP pulse. By default, the value is the same as PhE pulse.
    5. -tSimTime [float] : simulated time window in nanosecondes. The default value is 10 ns.
    6. -tSimSampling[float] : simulated time sampling. The default value is 0.1 ns. As a consequence default time window contains 100 bins.
    7. -tNSB [float]: Night sky background rate. The unity is ph.m^-2.ns^^-1. The value 0.0433 is equivalent to a 125MHz NSB rate in LST pixels.
    8. -tnsb [chain *]: Same as precedent but the unity is GHz.px^-1. The format of the chain is the following "$1 $2 $3 $4 $5" (do not forget the quotes) where $1, $2, $3, $4, $5 is trigger rate respectively for telecope types 1, 2, 3, 4, 5. Standard values used in CTA is 0.125, 0.122, 0.088,0.239 and 0.243. 
    9. -tNSBOnly [int]: if !0, do no take account photon from the shower. This option is usefull to test NSB accidental trigger rate. If the associated value n is negative, the test is done over a camera of -n pixels. Indeed, if the triggering regions are independent (they do not recover each other), this can be make simulation a lot faster. In the last case, the NSB rate will common for every telescope.
    10. -tNSBAll [int]: if !=0, test for every event on every telescope the threshold level. By default, only telescopes where Cherenkov photons are detected are tested.
    11. -tjobname [char *]: Name of the output file.
    12. -tDT [char *]: Threshold values. The chain format is "$1 $2 $3 $4 $5" (see -tnsb).
    13. -tHigherTrig [int]:  find the higher trigger value which enable the camera to trig. For the sum trigger function, the value has to be equal to 1. For the majority function, the value has to be equal to 2. If this option is not used, signal in the camera will be compare to a fixed threshold value. If the option is activated, -tDT becomes useless.
    14. -tDTPix [float]: Dead time pixel after threshold (in nanosecond). This parameter does not seem to be used anymore.
    15. -tDTCam [float]: Dead time of the whole camera after threshold. Neither this parameter seems to be used anymore.
  3. Majority trigger function:
    1. -tTop [int]: Topology of the pixels in coincidence. If =0, no constraint. If >1, pixels have to be close neighbours.
    2. -tMult [float]: Requested pixel number over the threshold in coincidence in the same trigger region, to send a trigger signal. A value of 3 gives generally best results.
    3. -tminOT [float]: Minimal overlapping time (in nanosecond). Pixels over the threshold have to be in coincidence during at least the given value.
    4. -tminToT [float]: Minimum time over threshold (in nanosecond). Pixel has to be over threshold during the given value to be declared "over the threshold".
    5. -tGW [chain *]: If <=0, the pixel is declared "over the threshold" as long as the signal amplitude is over the threshold. Else a fixed window is defined as soon the signal amplitude reach the threshold. The format of the chain is "$1 $2 $3 $4 $4" (as for -tnsb option)
  4. Sum trigger function:
    1. -tClip [float]:Clipping value. If the signal in a pixel is higher this value, it is replace by the clipping value. This enables to reduce accidental trigger rate due to afterpulses. A value around 7 produce good results.
    2. -tClipL [float]: If the signal is lower this value, it is replaced by the low clipping. By default value is put at 0.