Skip to content
This repository has been archived by the owner on May 3, 2020. It is now read-only.

HEP-FCC/fcc-physics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fcc-physics

This package contains:

  • various standalone C++ physics tools that you can use in your analysis, both on lxplus and your laptop
    • pythiafcc: a pythia8 executable producing events in the FCC EDM format
    • JetClusterizer: a fastjet interface usable in C++ and python analysis scripts to recluster jets
  • example code showing how to read and process FCC EDM events in C++:

Installing required software

If you're working on lxplus, all the necessary software has been preinstalled for you and you can just proceed with installing the fcc-physics package.

The other supported operating systems are ubuntu 14, macos X, and slc6 (other than lxplus nodes).

You need to install:

  • The FCC packages needed to produce and read events in the FCC event data model (EDM):
    • podio: a package allowing to define event data models and to manipulate EDM events.
    • fcc-edm: definition of the FCC EDM, based on podio
  • External physics software:

Important: make sure that your environment is properly setup before proceeding to the next section:

  • HEPMC_PREFIX should point to the installation directory you have chosen for HEPMC.
  • PYTHIA8_DIR should point to the installation directory you have chosen for pythia8
  • FASTJET_ROOT_DIR should point to the installation directory you have chosen for fastjet

For example, assuming you have installed these three packages in $HOME/local, you should do:

export HEPMC_PREFIX=$HOME/local
export PYTHIA8_DIR=$HOME/local
export FASTJET_ROOT_DIR=$HOME/local

Installing the fcc-physics package

Before installing and everytime you want to use this software, set up your environment

source ./init.sh

Compile:

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=../install ..
make -j 4 install
cd ..

Test:

cd build
make test

Generating events with pythiafcc

Example pythia8 configuration cards are available in the [pythia8] (pythia8) directory.

To generate e+e to ZH with Z to mumu and H to b bbar at 240 GeV, do:

fcc-pythia8-generate pythia8/ee_ZH_Zmumu_Hbb.txt

The events are stored in the FCC EDM format in example.root

Open this file with root to see which collections of objects have been stored:

root ee_ZH_Zmumu_Hbb.root
events->Print()

You should get a printout like:

******************************************************************************
*Tree    :events    : Events tree                                            *
*Entries :    10000 : Total =        38573156 bytes  File  Size =   10281281 *
*        :          : Tree compression factor =   3.75                       *
******************************************************************************
*Br    0 :GenParticle : Int_t GenParticle_                                   *
*Entries :    10000 : Total  Size=     106318 bytes  File Size  =      26175 *
*Baskets :        4 : Basket Size=      32000 bytes  Compression=   3.07     *
*............................................................................*
*Br    1 :GenParticle.Core.Status : UInt_t Status[GenParticle_]              *
*Entries :    10000 : Total  Size=    2893248 bytes  File Size  =      56959 *
*Baskets :       92 : Basket Size=      32000 bytes  Compression=  50.76     *
*............................................................................*
*Br    2 :GenParticle.Core.Charge : Int_t Charge[GenParticle_]               *
*Entries :    10000 : Total  Size=    2893248 bytes  File Size  =      56959 *
*Baskets :       92 : Basket Size=      32000 bytes  Compression=  50.76     *
*............................................................................*

Now plot the charge of the stable generated particles:

events->Draw("GenParticle.Core.Charge", "GenParticle.Core.Status==1")

Writing your own C++ analysis code

No documentation yet, but you can already run the examples, and learn by looking at the code.

Read the file produced earlier with pythia8, using an analysis executable:

./install/bin/fcc-physics-read ee_ZH_Zmumu_Hbb.root 

Read this file with a python ROOT macro making use of an analysis class compiled in a shared library:

python -i example-lib/test_macro.py