Contents
A small tutorial on how to study FCC-hh benchmark channels within the FCCSW framework with Pythia generator and Delphes simulation.
Input/Output:
-
The Pythia input is required through LHE (Les Houches Event) data file together with a special Pythia config file or just standard Pythia config file (for details see below).
-
The Pythia output is through transient memory data store using HepMC event data format.
-
The Delphes input is preferably from event data store, but can be in principal read-in from HepMC data file.
-
The Delphes output objects (collections, relations) are written out through standard FCC-EDM (FCC event-data model) library. Thus, can be then easily processed by other framework reconstruction/analysis modules or written out to ROOT tree format.
-
In addition, for backwards compatibility and/or testing purposes the Delphes output is also supported. The output is in Delphes ROOT tree format, using standard Delphes ROOT tree writer.
FCCSW command file (python script) to run Pythia & Delphes:
- PythiaDelphes_config.py : set all GAUDI parameters to run Pythia, Delphes & Output module, i.e. configure Pythia, Delphes and ROOT output branches (prepared in Sim/SimDelphesInterface/options directory)
Pythia configuration file(s), 2 use cases prepared in Generation/data directory:
- Pythia_LHEinput.cmd : read-in by Pythia-module the LHE file (generated by Madgraph, etc.), set Pythia configuration
- Pythia_standard.cmd : no input, set Pythia configuration
Delphes configuration card - use an official experiment card located in Sim/SimDelphesInterface/data directory:
- FCChh_DelphesCard_WithDipole_v00.tcl : FCC-hh detector desctription - option with dipole in the forward region
- FCChh_DelphesCard_WithoutDipole_v00.tcl : FCC-hh detector desctription - option without dipole in the forward region
Program workflow:
The analysis is run within a FCCSW framework , based on Gaudi . The framework is linked against Pythia, Delphes, FCC-EDM, PODIO, ... libraries. All the necessary compile tools (CMake, gcc, ...) and up-to-date libraries are properly installed on lxplus machines, in a FCC dedicated storage area. Thus, one only needs to install the FCCSW framework. For detailed instructions see FCCSW installation instructions .
To get familiar with the Delphes software , follow a quick tour on the Delphes official web page. Let us stress that the Delphes card needs to be compatible with the Delphes software version. Only in such case, the support for parametrization and physics object output of all Delphes modules can be guaranteed!
Login to lxplus machine and don't forget to source init.sh , anytime you log in!
cd FCCSW
source init.sh
First, start with the configuration files, adjust them accordingly:
-
PythiaDelphes_config.py : FCCSW run config file --> defines input/output, main algorithms running (i.e. Pythia & Delphes), Pythia starting configuration, Delphes detector/running sequence configuration ...
- Variables to be set-up:
nEvents
--> events to be simulatedmessageLevel
--> GAUDI messaging verbosity: ERROR, WARNING, INFO, DEBUG, ... --> use WARNING or INFOpythiaconfFile
--> Pythia configuration file (use either Pythia_LHEinput.cmd or Pythia_standard.cmd)delphesCard
--> Delphes configuration file (use official Delphes card)delphesHepMCInFile
--> Delphes input file (use "" to read HepMC directly from Pythia, i.e. from transient data store)delphesRootOutFile
--> Delphes output file (use "" to avoid extra output with Delphes objects to ROOT file, FCC-EDM objects automatically written out!)delphes???OutArray
--> Define Delphes output arrays to be processed as FCC-EDM ??? particles (muons, electrons, etc.) --> various Delphes modules provide the same type of particle with different level of processing. (For better understanding, watch the content of the Delphes card and search e.g. for muons to see how individual Delphes modules work out muon particles. Focus onOutputArray
variable.)
-
Pythia_LHEinput.cmd : An example of Pythia configuration to execute and work-out (process & hadronize) LHE event-data file (provided by e.g. Madgraph etc.)
- Variables to be set-up:
PartonLevel:MPI = on/off
--> Switch on/off Multi-Particle-InteractionPartonLevel:ISR = on/off
--> Switch on/off Initial-State-RadiationPartonLevel:FSR = on/off
--> Switch on/off Final-State-RadiationHadronLevel:all = on/off
--> Switch on/off HadronizationHadronLevel:Decay = on/off
--> Switch on/off DecaysBeams:LHEF = data/name.lhe
--> Define LHE event data file
-
Pythia_standard.cmd : An example of standard Pythia configuration to start generation.
- Variables to be set-up (different from those already described for Pythia_LHEinput.cmd):
Random:setSeed = on
--> Apply user-set seed everytime the Pythia::init is calledRandom:seed = 0
--> Set seed: -1=default seed, 0=seed based on time, >0 user seed number
-
FCChh_DelphesCard_*vXX.tcl : Official FCChh Delphes configuration card, defining sequence of Delphes modules to be executed and detector characterization.
Run FCCSW using the following command:
./run gaudirun.py Sim/SimDelphesInterface/options/PythiaDelphes_config.py
The following collections and relations will be saved in the output file. Each collection (relation) is handled in the FCCSW through a dedicated handle. For reference, the handle name (specified in a DelphesPythia_config.py file) is given in the brackets [] below:
-
Collections:\
fcc::MCParticleCollection
--> generated particles[genParticles]
fcc::GenVertexCollection
--> generated vertices[genVertices]
fcc::GenJetCollection
--> generated jets[genJets]
fcc::ParticleCollection
--> reconstructed muons[muons]
, electrons[electrons]
, charged particles[charged]
, neutral particles[neutral]
, photons[photons]
and jet constituents[jetParts]
fcc::JetCollection
--> reconstructed jets[jets]
fcc::METCollection
--> reconstructed missing Et[met]
fcc::IntTagCollection
--> flavour tag of generated[genJetsFlavor]
or reconstructed jets[jetsFlavor]
, i.e. PDG of leading constituentfcc::TagCollection
--> reconstructed tags - b-tags, c-tags and tau-tags for jets[bTags, cTags, tauTags]
fcc::TagCollection
--> reconstructed isolation tag info for electrons, muons and photons[muonITags, electronITags, photonITags]
-
Relations:
fcc::ParticleMCParticleAssociationCollection
--> relations of reconstructed object to MC particle for muons[muonsToMC]
, electrons[electronsToMC]
, charged particles[chargedToMC]
, neutral particles[neutralToMC]
and photons[photonsToMC]
fcc::ParticleTagAssociationCollection
--> relations of reconstructed particles: muons, electrons and photons to their isolation tag info[muonsToITags, electronsToITags, photonsToITags]
fcc::GenJetParticleAssociationCollection
--> relations of generated jet to MC particle[genJetsToMC]
fcc::GenJetIntTagAssociationCollection
--> relations of generated jets to the flavour (PDG of the leading constituent)[genJetsToFlavor]
fcc::JetParticleAssociationCollection
--> relations of jet to particle constituents[jetsToParts]
fcc::JetIntTagAssociationCollection
--> relations of jets to the flavour (PDG of the leading constituent)[jetsToFlavor]
fcc::JetTagAssociationCollection
--> relations of jets to reconstructed tags - b-tag, c-tag, tau-tag[jetsToBTags, jetsToCTags, jetsToTauTags]
For more details, you can have a look at:
- Talk (FCC-hh group) on Mar 3rd 2016
- Talk (FCC-hh group) on Sep 15th 2015
- Talk (FCC software group) on Jun 4th 2015
- Talk (FCC sofware group) on Feb 5th 2015
Maintainers: Zbynek Drasal
-- ZbynekDrasal - 2016-03-09