View on GitHub

FCCeePhysicsPerformance

General information

Table of Contents

  1. Common event samples
  2. Example analyses and how-to’s
    1. Basics
    2. How to associate RecoParticles with Monte-Carlo Particles
    3. How to navigate through the history of the Monte-Carlo particles
    4. How to compute event variables (thrust, sphericity, etc)
    5. How to fit tracks to a common vertex
    6. How to run jet algorithms
    7. How to run kinematic fits
  3. Code development
  4. To produce your own Delphes samples
    1. Quick instructions for producing samples
    2. Make simple changes to the tracker or beam-pipe description in Delphes
    3. Change the Jet algorithms
  5. The five-parameter tracks produced by the Delphes interface
  6. Vertexing and flavour tagging
    1. Vertex-fitter code from Franco Bedeschi
    2. Vertexing with the ACTS suite
    3. The LCFI+ algorithm
    4. The DecayTreeFitter (DTF) algorithm
    5. Flavour tagging using machine learning
  7. Making particle combinations with awkward arrays
  8. Generating events under realistic FCC-ee environment conditions
    1. Beam energy spread
    2. Vertex distribution
    3. Transverse boost to account for the crossing angle
  9. Monte-Carlo programs
  10. Bibliography

Common event samples

(Oldish) The “spring2021” Monte-Carlo samples (May 2021)

Known caveats in the “spring2021” samples:

The “winter2023” Monte-Carlo samples (January 2023)

Example analyses and how-to’s

Example analyses can be found in the FCCAnalyses repository. Checkout the master branch if you want to analyze EDM4HEP samples (the fccedm branch contains examples for the FCCSW-FCCEDM samples). And follow the instructions in the README of FCCAnalyses repository.

Basics

How to associate RecoParticles with Monte-Carlo Particles

How to navigate through the history of the Monte-Carlo particles

How to compute event variables (thrust, sphericity, etc)

How to fit tracks to a common vertex

How to run jet algorithms

How to run kinematic fits

Code development

Generalities:

How to add a new functionnality in FCCAnalysis:

To produce your own Delphes samples

Quick instructions for producing samples

(For FCCSW samples (old), see this part of the tutorial.)

For EDM4HEP samples, first define the environment :

source /cvmfs/fcc.cern.ch/sw/latest/setup.sh

and take the output configuration file, edm4hep_output_config.tcl from key4hep/k4SimDelphes/examples.

Make simple changes to the tracker or beam-pipe description in Delphes

The geometry of the (central) beam-pipe and of the tracker is described in $DELPHES_DIR/cards/delphes_card_IDEAtrkCov.tcl for the IDEA tracker. (a version of this file, in which the IDEA drift chamber is replaced by the full-Si tracker of CLD, can be found in lxplus in /afs/cern.ch/user/s/selvaggi/public/4Emilia/delphes_card_CLDtrkCov_Tagging.tcl). To see the geometry description, look for the module TrackCovariance, and for the lines that are under set DetectorGeometry. The convention is as follows:

	// Layer type 1 = R (barrel) or 2 = z (forward/backward)
	// Layer label
	// Minimum dimension z for barrel  or R for forward  (m)
	// Maximum dimension z for barrel  or R for forward  (m)
	// R/z location of layera  (m)
	// Thickness (meters)
	// Radiation length of the material (in meters)
	// Number of measurements in layers (1D or 2D)
	// Stereo angle (rad) - 0(pi/2) = axial(z) layer - Upper side
	// Stereo angle (rad) - 0(pi/2) = axial(z) layer - Lower side
	// Resolution Upper side (meters) - 0 = no measurement
	// Resolution Lower side (meters) - 0 = no measurement
	// measurement flag = T, scattering only = F

For example, in the default description, the first line:

      1 PIPE -100 100 0.015 0.0012 0.35276 0 0 0 0 0 0

tells that the beam-pipe is at R = 1.5 cm (inner radius), has a thickness of 1.2 mm, and that the radiation length of the corresponding material is 0.35276 m (the X0 of Berrylium). In the next lines, corresponding to the vertex detector (barrel),

      1 VTXLOW -0.12 0.12 0.017 0.00028 0.0937 2 0 1.5708 3e-006 3e-006 1
      1 VTXLOW -0.16 0.16 0.023 0.00028 0.0937 2 0 1.5708 3e-006 3e-006 1
      1 VTXLOW -0.16 0.16 0.031 0.00028 0.0937 2 0 1.5708 3e-006 3e-006 1

you see that the single hit resolution if each layer is 3 mum. At the end of this module, you see the value of the magnetic field that is used (set Bz 2.0), which also needs to be set in the ParticlePropagator module.

One can play with these values, to see e.g. how the performance changes when one sets the (beam-pipe and) innermost layer of the vertex detector closer to the beam-line, etc.

Change the Jet algorithm in the Delphes interface

module FastJetFinder GenJetFinder {
  set InputArray NeutrinoFilter/filteredParticles

  set OutputArray jets

  # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt
  set JetAlgorithm 6
  set ParameterR 0.4
  set JetPTMin 1.0
}
module FastJetFinder GenJetFinder {
   set ExclusiveClustering  True
   set NJets  2
.....
}

The five-parameter tracks produced by the Delphes interface

Vertexing and flavour tagging

Topical meeting on vertexing, Feb 10, 2021

Link to the topical meeting on vertexing, Feb 10, 2021 organised jointly by Physics Performance and Software and Computing. And the meeting summary (plus progress) presented by Clement Helsens at the FCC-ee general meeting of February 22, 2021.

Informal e-group

An informal e-group was created after the topical meeting: vertexing-FCCee-informal

Vertex-fitter code from Franco Bedeschi

A stand-alone vertex-fitter from Franco Bedeschi has been implemented in FCCAnalyses.

Vertexing with the ACTS suite

The LCFIPlus algorithm

The LCFIPlus algorithm, developed for ILC and CLIC and used in the CLD performance paper.

The DecayTreeFitter (DTF) algorithm

The DecayTreeFitter algorithm was developed at BaBar and is used at BaBar, LHCb and Belle-2.

Flavour tagging using machine learning

Making particle combinations with awkward arrays

Combinatoric functions provided by the python awkward array pckage are very helpful to make particle combinations - e.g. loop over all Kaons and pions to find D candidates. To use them, the files should be analyzed with uproot. Very nice examples of how to use uproot and awkward arrays have been prepared by Donal Hill, see this repository.

Generating events under realistic FCC-ee environment conditions

Beam energy spread

At FCC, the energy of the beams is distributed according to a Gaussian function. The corresponding beam energy spread is given in Table S.1 of the CDR, see the highlighted line here - these parameters were used for the spring2021 samples - or in the December 2022 parameters table, used for the winter2023 samples. One should use the second number, the one that corresponds to “BS” (with beamstrahlung). For example, at the Z peak, the beam energy spread amounts to 0.132%. Note that this is the spread of the energy of the beam; to get the relative spread of the centre-of-mass energy √s, these numbers have to be divided by √2.

It is important to take into account the beam energy spread when generating events. Some Monte-Carlo programs (e.g. Whizard) offer a built-in possibility to convolute the matrix elements with a Gaussian beam energy distribution.

For example, with Whizard, at √s = 240 GeV where the beam energy spread amounts to 0.185% (Dec 2022 parameters), the steering card should contain:

beams = e1, E1 => gaussian => isr
gaussian_spread1 = 0.185%
gaussian_spread2 = 0.185%

Vertex distribution

Summary table, CDR parameters :

Ebeam (GeV) 45.6 80 120 175 182.5
σx (µm) 6.4 13.0 13.7 36.6 38.2
σy (nm) 28.3 41.2 36.1 65.7 68.1
σz (mm) 12.1 6.0 5.3 2.62 2.54
Vertex σx (µm) 4.5 9.2 9.7 25.9 27.0
Vertex σy (nm) 20 29.2 25.5 46.5 48.2
Vertex σz (mm) 0.30 0.60 0.64 1.26 1.27
Vertex σt (ps) 28.6 14.1 12.5 6.2 6.0

Summary table, December 2022 parameters:

Ebeam (GeV) 45.6 80 120 182.5
σx (µm) 8.4 20.8 13.9 38.6
σy (nm) 33.7 65.7 35.9 69.1
σz (mm) 15.4 8.0 6.0 2.74
Vertex σx (µm) 5.96 14.7 9.8 27.3
Vertex σy (nm) 23.8 46.5 25.4 48.8
Vertex σz (mm) 0.397 0.97 0.65 1.33
Vertex σt (ps) 36.3 18.9 14.1 6.5

Transverse boost to account for the crossing angle

Monte-Carlo programs generate events in a frame where the incoming particles collide head-on. The crossing angle in the (x, z) plane results in a transverse boost along the x direction. The parameter of the Lorentz transformation is given by : γ = √ ( 1 + tan2 α ), where α denotes the half-crossing angle, α = 15 mrad. Hence, prior to be sent to the detector simulation, the 4-vectors of the particles in the final state have to be boosted according to :

drawing

where the “star” quantities denote the kinematics in the head-on frame, and the quantities on the leftside of the formulae correspond to the kinematics in the detector frame.

The convention used here is that the incoming bunches have a positive velocity along the x axis. It is this convention that is used in the DD4HEP files that model the interaction region (i.e. the center of the LumiCals is at x > 0).

Monte-Carlo programs

Bibliography