ATLAS Offline Software
EvgenConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 
3 from PyJobTransformsCore.TransformConfig import TransformConfig, String, ListOfStrings, Boolean, Integer, AllowedExpression, TransformConfigError
4 from GeneratorConfig.GenConfigHelpers import KnownGenerators
5 
6 class EvgenConfig(TransformConfig):
7  __slots__ = ()
8  generators = ListOfStrings("List of used generators", allowedValues=KnownGenerators)
9  description = String("Human readable description of the dataset content")
10  process = String("Specific information about the physics process being generated")
11  notes = String("Extra information about this process e.g. known current problems")
12  contact = ListOfStrings("Contact person for this dataset. Leave empty for 'MC group'")
13  keywords = ListOfStrings("Search keywords for this dataset, e.g. 'QCD', 'EW', 'minbias', ...")
14  categories = ListOfStrings("Category keywords for this dataset, e.g. 'L1:Top', 'L2:RareTop'")
15  inputfilecheck = String("A regex to check that the input file needed for some generators has a valid name")
16  inputconfcheck = String("A regex to check that the config file needed for some generators has a valid name")
17  specialConfig = String("Special configuration for subsequent prod steps")
18  tune = String("Generator shower/hadronisation/MPI tune name")
19  saveJets = Boolean("Save truth jet collections in the output file if they are available", False)
20  savePileupTruthParticles = Boolean("Save truth particle collections, if available, for pileup-overlay output", False)
21  findJets = Boolean("Schedule jet finding algorithms for each defined jet container", False)
22  doNotSaveItems = ListOfStrings("List of StreamEVGEN items to NOT save in output file - note occurs BEFORE extraSaveItems are added")
23  extraSaveItems = ListOfStrings("List of extra StreamEVGEN items to save in output file - note occurs AFTER doNotSaveItems are removed")
24  inputFilesPerJob = Integer("number of input files per job",0, AllowedExpression("value >= 0"))
25  nEventsPerJob = Integer("number of input events per job",0, AllowedExpression("value >= 0"))
26  obsolete = Boolean("Are JOs/common fragment obsolete", False)
27  PDGparams = Boolean("Do we use the standard PDG values for masses, widths etc. ", False)
28 
29  def __init__(self, name="evgenConfig"):
30  TransformConfig.__init__(self, name)
31  self.contact = ["MC group"]
32  self.auxfiles = ["PDGTABLE.MeV", "pdt.table", "DECAY.DEC", "Bdecays0.dat", "Bs2Jpsiphi.DEC","G4particle_acceptlist.txt","susyParticlePdgid.txt"]
33  self.nEventsPerJob = 10000
34  self.maxeventsstrategy = "ABORT"
35  self.specialConfig = "NONE"
36 # for the sake of Generate_tf leave minevents for a while
37  self.minevents = 0
38 
39 
40  def __setattr__(self, name, value):
41  if name in ["efficiency", "inputfilebase", "inputconfbase", "weighting"]:
42  msg = "evgenConfig.%s is not used in MC14 production. " % name + \
43  "Please update your JO file, having read the docs at " + \
44  "https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/AtlasMcProductionMC14"
45  raise TransformConfigError(msg)
46  object.__setattr__(self, name, value)
47 
48 
49 evgenConfig = EvgenConfig()
python.EvgenConfig.EvgenConfig.contact
contact
Definition: EvgenConfig.py:12
python.EvgenConfig.EvgenConfig.maxeventsstrategy
maxeventsstrategy
Definition: EvgenConfig.py:34
python.EvgenConfig.EvgenConfig.specialConfig
specialConfig
Definition: EvgenConfig.py:17
python.EvgenConfig.EvgenConfig
Definition: EvgenConfig.py:6
python.EvgenConfig.EvgenConfig.minevents
minevents
Definition: EvgenConfig.py:37
python.EvgenConfig.EvgenConfig.auxfiles
auxfiles
Definition: EvgenConfig.py:32
python.EvgenConfig.EvgenConfig.__init__
def __init__(self, name="evgenConfig")
Definition: EvgenConfig.py:29
python.EvgenConfig.EvgenConfig.__setattr__
def __setattr__(self, name, value)
Explicitly block MC11/12 settings of efficiency, input*base, or weighting attrs.
Definition: EvgenConfig.py:40
python.EvgenConfig.EvgenConfig.nEventsPerJob
nEventsPerJob
Definition: EvgenConfig.py:25