Extend generators to support MEC and implement MadGraph support
In order to support MEC generators new interfaces need to be setup with a cleanup of the earlier one. The older one are kept as to keep a running generation for Pythia8 but the implementation will progressively replace what existing with the new cleaner version.
The new code will be incapsulated in the Gsino
namespace that is a shorter version for Gaussino
.
In addition many method may be replaced by configuration of the actual generator depending on which 'sampling mathod' is used and properties introduced in the actual implementation, for example of Pythia, to control it. This will result in moving some of the knoledge into python rates than a call in C++. If things need to be addressed at the event level with specific calls they may be put in base classes or implemented in additional interfaced implemented only by the generator that supports them.
@rpozzi:
FromGauss Generation Tools, Base Classes and Interfaces
- Old UML Diagram of Gauss Generation
- New UML Diagram
- Schematic of suggested generation interfaces by Phil
Related merge requests
In Gaussino:
- !151: Restructuring production interfaces
- !138: Updating Pythia8Production with new generator interfaces
- !136: New Sampling tool interface, sampling generator components, and PileupTool for rare processes
- !133: Implementing Madgraph in Gaussino
- !147: Updating generation Configurables
In Gauss-on-Gaussino:
How to test:
- Need to integrate all of the MRs above (both in Gaussino and Gauss) and run Gauss (for example from a stack setup) with an option file to test, e.g., the generation of events of type 42912009
Gauss/run gaudirun.py test-options.py
# test-options.py
from Configurables import Gauss, GaussGeneration
from Gaudi.Configuration import importOptions
from Gauss.Configuration import *
genAlgName="Generation"
Gauss().FirstEventNumber = 1
Gauss().RunNumber = 1082
Gauss().EvtMax = 5
from Configurables import Generation
Gauss().Phases = ["Generator", "GenToMCTree"]
Gauss().OutputType = "RGEN"
Generation(genAlgName).EventType = 42912009
GaussGeneration().SampleGenerationTool = "Special"
GaussGeneration().SeedingToolName = "SeedingTool"
GaussGeneration().ProductionTool = "ProductionWithHardME"
GaussGeneration().ProductionToolOpts = {"HardProdTool": "MadgraphProduction", "ShowerTool": "Pythia8Production"}
GaussGeneration().PileUpTool = "FixedLuminosityForRareProcessWithSvc"
GaussGeneration().Commands = ["generate p p > mu+ mu- b b~ [QCD]", " set mll_sf 40"]
importOptions("$GAUSSOPTS/General/2018.py")
importOptions("$GAUSSOPTS/General/Debug.py")
More information in this CodiMD
cc: @amorris, @fredi, @clemenci, @kreps, @mimazure, @philten, @thadaviz