DelphesPythia8 to do hadronisation on top of MG5_aMC@NLO file?

Dear experts,

I am new to FCC software, and have been following the online tutorial available from github. I managed to produce some analysis trees/histograms for signal and background samples, so far so good.

My signal sample is produced using Madgraph5_aMC@NLO to generate the parton-level, and I would like then to have Pythia8 do the hadronisation, and finally run Delphes.

Following the tutorial, I ran simply DelphesPythia8 with the Pythia configuration to run on an external LHE file, but then it is not doing the hadronisation, and I believe it neither understands correctly my signal particles (new scalars from the iDM model) which should appear as invisible but are clustered into jets somehow.

May you have some pointers or available examples to do this hadronisation step within DelphesPythia8 ? And give to Pythia8 the knowledge on how to handle the new particles ?

Or should I be doing that hadronisation step directly in Madgraph interfaced with Pythia8? About this last point, it seems that the MG5_aMC@NLO version available within FCCSW is not compiled with Pythia8 so I guess it would mean I need to reinstall MG5 myself…

Many thanks in advance for your help,
Best regards,
Anne-Marie.

Hi @amagnan,

Welcome to the FCCSW forum :slight_smile:

Can you share one of the LHE files you generated?

Do you use LHE to EM4hep converter?
Example here.

The MG5_aMC@NLO package in FCCSW(Key4hep) stack is described here. And ATM there is no dependency on Pythia8.

Best,
Juraj

Hi !
Thanks for the quick reply ! You can find an example LHE file here:

/eos/user/a/amagnan/FCC/iDMprod/h2h2ll/LHEevents_e240_bp1.lhe.gz

Can you access this file?

The production is e e > l+ l- h2 h2 using the iDM UFO model (h2 is pid 36).

I did initially convert to EDM4HEP, but actually, realised that the DelphesPythia8 program takes LHE as input… I copy below [1] the p8 config file I use, and [2] the command I use. The resulting Delphes events are in the same eos directory, with just 10 events for testing purposes:

/eos/user/a//amagnan/FCC/iDMprod/h2h2ll/Delphes_EDM4HEPevents_e240_bp1.root

Looking at the Pythia log, it may be that hadronisation is indeed done (at least it does decay taus and produce gamma out of electrons for example)… I may have been fooled by expecting a lot more hadronic activity but after all these are ee collisions :wink:

Still, in the Delphes output I have systematically 2 jets which don’t make any sense at all to me !!

Many thanks for your help,
Best,
AM.

[1] File lhereader.cmd

!
! File: Pythia_LHEinput.cmd 
!
! This file contains commands to be read in for a Pythia8 run.
! Lines not beginning with a letter or digit are comments.
! Names are case-insensitive  -  but spellings-sensitive!
! Adjusted from Pythia example: main42.cmnd

! 1) Settings that will be used in a main program.
Random:setSeed = on
Main:numberOfEvents = 10          ! number of events to generate
Main:timesAllowErrors = 10        ! abort run after this many flawed events

! 2) Settings related to output in init(), next() and stat() functions.
Init:showChangedSettings = on      ! list changed settings
Init:showAllSettings = off         ! list all settings
Init:showChangedParticleData = on  ! list changed particle data
Init:showAllParticleData = off     ! list all particle data
Next:numberCount = 1000            ! print message every n events
Next:numberShowLHA = 2             ! print LHA information n times
Next:numberShowInfo = 2            ! print event information n times
Next:numberShowProcess = 2         ! print process record n times
Next:numberShowEvent = 2           ! print event record n times
Stat:showPartonLevel = off         ! additional statistics on MPI
Stat:showProcessLevel = off         ! additional statistics on MPI

! 4) Read-in Les Houches Event file - alternative beam and process selection.
Beams:frameType = 4                      ! read info from a LHEF
Beams:SetProductionScalesFromLHEF = off
Beams:LHEF = LHEevents.lhe ! the LHEF to read from

! Vertex smearing :
Beams:allowVertexSpread = on
Beams:sigmaVertexX = 9.70e-3   !  13.7 mum / sqrt2
Beams:sigmaVertexY = 25.5E-6   !  36.1 nm / sqrt2
Beams:sigmaVertexZ = 0.64      !  0.64 mm
 
ProcessLevel:all = off             ! To allow hadronisation only
PartonLevel:ISR = on               ! initial-state radiation
PartonLevel:FSR = on               ! final-state radiation

[2]

cp /eos/user/a/amagnan/FCC/iDMprod/h2h2ll/LHEevents_e240_bp1.lhe.gz LHEevents.lhe.gz
gunzip LHEevents.lhe.gz
DelphesPythia8_EDM4HEP card_IDEA.tcl edm4hep_IDEA.tcl lhereader.cmd Delphes_EDM4HEPevents.root | tee DelphesP8.log

(The IDEA config files are copied from the repository as indicated in the tutorial…)

Salut Anne-Marie,

Still, in the Delphes output I have systematically 2 jets which don’t make any sense at all to me !!

If Delphes is not told explicitly that your h2 should not deposit energy in the calorimeter, it will treat it as a default ‘unknown’ particle, for which all the energy is deposited in the Hcal. See here and the lines below:
https://github.com/HEP-FCC/FCC-config/blob/64ab4e4a25f555b793f8963a2cb64759108bf7fd/FCCee/Delphes/card_IDEA.tcl#L533-L534

You can adjust the Delphes card (your card_IDEA.tcl ) to specify what to do with your particle. For example, if it should not interact, you just need to add this line into the Calorimeter module:

add EnergyFraction {36} {0. 0.}

Cheers,
E.

Dear Emmanuel,

thank you so much for this clarification! Indeed I went through this card now, and I think I also need to add this new PDGID to the list of “neutrinos” to be ignored also for the making of genjets.

Trying also to understand how the jets are made, I see they are made from PF candidates (“EFlow”), but the jet algorithm parameters seem strange to me, as pasted below [1] : can you clarify what it means ? They look like super big jets but I am not sure what jet algorithm 10 means, it is not in the fastjet manual…
And actually, I notice now that I should probably use the card_IDEA.tcl file that was also used for the central production, right? I.e. if I am using backgrounds from

/eos/experiment/fcc/ee/generation/DelphesEvents/spring2021/IDEA

I should use this card:

/eos/experiment/fcc/ee/generation/FCC-config/spring2021/FCCee/Delphes/card_IDEA.tcl

where it is using antikT 0.4 jets !

Many thanks again for your help,
Cheers,
AM.

[1]

############
# Jet finder
############

module FastJetFinder FastJetFinder {
#  set InputArray Calorimeter/towers
  set InputArray EFlowMerger/eflow

  set OutputArray jets

  # algorithm: 1 CDFJetClu, 2 MidPoint, 3 SIScone, 4 kt, 5 Cambridge/Aachen, 6 antikt
  set JetAlgorithm 10
  set ParameterR 1.5
  set ParameterP -1.0
  set JetPTMin 1.0


}

Salut Anne-Marie,

And actually, I notice now that I should probably use the card_IDEA.tcl file that was also used for the central production, right? I.e. if I am using backgrounds from
/eos/experiment/fcc/ee/generation/DelphesEvents/spring2021/IDEA
I should use this card:
/eos/experiment/fcc/ee/generation/FCC-config/spring2021/FCCee/Delphes/card_IDEA.tcl

If you use the samples from the spring2021 campaign, yes, you should use the cards (card_IDEA.tcl and edm4hep_IDEA.tcl) from /eos/experiment/fcc/ee/generation/FCC-config/spring2021/FCCee/Delphes/.
Note however that using the more recent samples from winter2023 is recommended - in particular, there were several issues in the spring2021 samples, that have been fixed in winter2023. See here (section 1):
https://github.com/HEP-FCC/FCCeePhysicsPerformance/blob/master/General/README.md
In which case you should pick up the cards in the winter2023 EOS directory (or in the winter2023 branch of the FCC-config repository).

As for the jets: you can see how Delphes calls FastJet (e.g. meaning of also #10) by looking into this:
https://github.com/delphes/delphes/blob/master/modules/FastJetFinder.cc
That said, you can (and in general, you better) re-run the jet clustering downstream, at the analysis level. Anti-kT 0.4 is actually not the best choice in e+e- where you have no pile-up. See section 2 of the link above, for examples of re-running the jet clustering in FCCAnalyses, and for the link to the talk of Gavin et al about jets in e+e-.

Cheers,
E.