Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

4.2 Using Guinea-Pig to generate interaction region backgrounds

Guinea-Pig is included in releases of the FCC software and is developed at this repository:

https://gitlab.cern.ch/clic-software/guinea-pig

Issues and Pull Requests can be submitted there.

Generating e+e−e^{+} e^{-} pairs with Guinea-Pig

In order to run Guinea-Pig (hereafter GP) and generate e- e+ pair background, one should provide the relevant accelerator (beam) parameters, plus some steering parameters to run the software. Those parameters are set in the file acc.dat. Currently, one can find the four following accelerators, where the beam parameters correspond to the values considered for FCC CDR (2019).

and the following 2 sets of configuration parameters:

It is recommended to run the FCCee Z accelerator together with the FCCee_Z parameters, while the other 3 accelerators can be run with the FCCee_Top parameters.

To run GP you should type the following:

guinea $ACC #PAR output

e.g.

guinea FCCee_Z FCCee_Z output

output it is the produced log file, and it can be given any name. Below we will try to explain the main GP configuration parameters. Each GP run corresponds to 1 bunch crossing.

Generating large amounts of data with Guinea-Pig

One can use the script at:

eepairs/sub_gp_pairs.sh

that sends a user defined number of bunch crossings to be generated in parallel in Condor. You should modify accordingly the following parts of the script:

nruns=100

defines the number of bunch crossings to be generated

ROOTDIR=/afs/cern.ch/user/v/voutsina/Work/FCCeeBKG_WrapUp/eepairs

This variable defines the directory where the results will be stored. The script will generate there a new directory, data${i} for the ith generated bunch crossing.

Command

sed -i -e 's/rndm_seed=1/rndm_seed='${nn}'/g' acc.dat

Changes the random seed for the ith bunch crossing according to the pattern

    nn=${i}*100000

Feel free to modify the pattern, but have in mind that if you run N BXs with the same seed, you will generate N times the same data.

In the following line

/afs/cern.ch/user/v/voutsina/Work/testarea/CodeTest/GP++/guinea-pig.r3238/src/guinea FCCee_Top FCCee_Top output

you should replace the path where your guinea executable is located, the desired accelerator and configuration-parameters names and the desired output file name.

The queueing in Condor is defined by the following line

+JobFlavour = "tomorrow"

For the set of parameters FCCee_Z, featuring an estimating running time of few hours, a job flavour “workday” is recommended. For the set of parameters FCCee_Top, job flavour “longlunch” should be enough.

Analysing the data (only for ILCSOFT users)

Marlin processors can be used to analyse the simulated data. They were used for CDR results. In order to compile them: please initialise ILCSoft environment first.

mkdir build; cd build
cmake -C $ILCSOFT/ILCSoft.cmake ..
make install

Tracking the pairs in the detector using Key4HEP

The incoherent e+e- pairs produced by GP for a bunch crossing are stored in the file pairs.dat, which can be directly read as input for full simulation in Key4HEP using the MDIReader tool. This is used to boost the particles in the detector frame and shoot them in the detector using the particle gun. An example on how to call this in the Key4HEP steering file is the following:

... 

from Configurables import MDIReader
mdi_converter = MDIReader("Reader",MDIFilename="pairs.dat")
mdi_converter.GenParticles.Path = "allGenParticles"
mdi_converter.CrossingAngle = 0.015                     #crossing angle [rad]
mdi_converter.LongitudinalCut = 0
mdi_converter.InputType = "guineapig"                   #flag to read GP files
mdi_converter.BeamEnergy = 182.5                        #beam energy [GeV]

...

particle_converter = SimG4PrimariesFromEdmTool("EdmConverter")
particle_converter.GenParticles.Path = "allGenParticles"

...

geantsim = SimG4Alg("SimG4Alg",
                    outputs = [
		    #your_list_of_outputs
		    ],
                    eventProvider=particle_converter)
                    
...

from Configurables import ApplicationMgr
ApplicationMgr( TopAlg = [mdi_converter, geantsim, out],
                EvtSel = 'NONE',
                EvtMax   = 1,
                ExtSvc = [podioevent, geoservice, geantservice],
                OutputLevel=INFO
               )

GP production of γγ\gamma\gamma hadrons

In order to produce γγ\gamma\gamma to hadrons with GP, we need to add the following commands inside the configuration file acc.dat

hadron_ratio=100000;
do_hadrons=3;
store_hadrons=1;

while switching off pair production:

do_pairs= 0;

do_hadrons = 3; will make GP to produce a hadron.dat file, which contains the produced partons, with the same cross-section parametrisation as Pythia does. “hadron_ratio=100000;” is the weight factor with which the cross section of the hadronic interaction is scaled. As a second step, we invoke Pythia to do the fragmentation. To do so, we use the “hades” library from Daniel Schulte, which allows to feed the GuineaPig’s output to Pythia. Finally we translate the Pythia’s output to .HEPEvt style events. To perform the last 2 steps, we can use the tar file at

ggToHadrons/hadron.tar.gz

This file was made by Dominik Arominski, and contains the HADES library. Please unpack it and follow the instructions given in the README file.