ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Generators
Hijing_i
python
HijingConfig.py
Go to the documentation of this file.
1
# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
3
from
AthenaConfiguration.ComponentAccumulator
import
ComponentAccumulator
4
from
AthenaConfiguration.ComponentFactory
import
CompFactory
5
from
GeneratorConfig.GeneratorSettingsSemantics
import
(
6
GeneratorSettingsLayer,
7
GeneratorSettingsPrecedence
8
)
9
from
GeneratorConfig.Sequences
import
EvgenSequence, EvgenSequenceFactory
10
from
AthenaCommon.SystemOfUnits
import
GeV
11
12
# Get logger
13
from
AthenaCommon.Logging
import
logging
14
log = logging.getLogger(
"HijingConfig"
)
15
16
17
def
HijingInitializeCfg
(flags, source, values, precedence, name="Hijing"):
18
"""
19
Return a CA fragment that adds one initialize layer to Hijing.
20
"""
21
ca = ComponentAccumulator(EvgenSequenceFactory(EvgenSequence.Generator))
22
ca.addEventAlgo(
23
CompFactory.Hijing(name, Initialize=GeneratorSettingsLayer(
24
source=source,
25
values=tuple(values
or
()),
26
precedence=precedence,
27
report_context=
"Hijing.Initialize"
28
))
29
)
30
return
ca
31
32
33
def
HijingBaseCfg
(flags, name="Hijing", **kwargs):
34
"""
35
The main Hijing configuration fragment that sets up the Hijing algorithm
36
and returns a CA instance.
37
"""
38
39
# Basic initialize parameters
40
base_init = [f
"efrm {2*flags.Beam.Energy/GeV}"
,
41
"frame CMS"
,
42
"proj A"
,
"targ A"
,
43
"iap 208"
,
"iat 208"
,
44
"izp 82"
,
"izt 82"
,
45
]
46
47
# Get user initialize parameters
48
user_init = kwargs.pop(
"Initialize"
,
None
)
49
kwargs[
"Initialize"
] = GeneratorSettingsLayer(
50
source=
"base_initialize"
,
51
values=tuple(base_init),
52
precedence=GeneratorSettingsPrecedence.BASE,
53
report_context=
"Hijing.Initialize"
54
)
55
56
# Create CA object
57
ca = ComponentAccumulator(EvgenSequenceFactory(EvgenSequence.Generator))
58
ca.addEventAlgo(
59
CompFactory.Hijing(name, **kwargs)
60
)
61
62
# Add user initialize parameters
63
if
user_init:
64
ca.merge(
HijingInitializeCfg
(
65
flags,
66
source=
"user_initialize"
,
67
values=user_init,
68
precedence=GeneratorSettingsPrecedence.USER,
69
name=name
70
))
71
72
# Announce generator to service
73
from
GeneratorConfig.GeneratorInfoSvcConfig
import
GeneratorInfoSvcCfg
74
ca.merge(GeneratorInfoSvcCfg(flags, Generators=[
"Hijing"
]), sequenceName=EvgenSequence.Generator.value)
75
76
return
ca
77
78
79
HijingConfig.HijingInitializeCfg
HijingInitializeCfg(flags, source, values, precedence, name="Hijing")
Definition
HijingConfig.py:17
HijingConfig.HijingBaseCfg
HijingBaseCfg(flags, name="Hijing", **kwargs)
Definition
HijingConfig.py:33
Generated on
for ATLAS Offline Software by
1.17.0