ATLAS Offline Software
Loading...
Searching...
No Matches
python.ParticleGunConfig Namespace Reference

Functions

 ParticleGunBaseCfg (flags)
 ParticleGun_flatpt_2particleCfg (flags)
 ParticleGun_SingleMuonBasicCfg (flags)
 ParticleGun_SingleMuonCfg (flags)
 ParticleGun_SingleElectronCfg (flags)
 ParticleGun_SinglePionCfg (flags)
 ALFA_SingleParticlePreInclude (flags)
 ParticleGun_ALFA_SingleParticleCfg (flags)
 ZDC_SingleParticlePreInclude (flags)
 ParticleGun_ZDC_SingleParticleCfg (flags)
 ParticleGun_TestBeam_SingleParticleCfg (flags)
 _makeMomentumSampler (PG, samplerType="EEtaMPhi", **kwargs)
 ParticleGun_SteeredSingleParticleCfg (flags, *, pid, samplerType="EEtaMPhi", randomStream="SINGLE", randomSeed=None, **kwargs)

Function Documentation

◆ _makeMomentumSampler()

python.ParticleGunConfig._makeMomentumSampler ( PG,
samplerType = "EEtaMPhi",
** kwargs )
protected
Factory for the various PG momentum samplers.
kwargs are passed through to the corresponding sampler.

Definition at line 136 of file ParticleGunConfig.py.

136def _makeMomentumSampler(PG, samplerType="EEtaMPhi", **kwargs):
137 """
138 Factory for the various PG momentum samplers.
139 kwargs are passed through to the corresponding sampler.
140 """
141 from math import pi
142
143 if samplerType == "EEtaMPhi":
144 # energy: float or sequence, eta/phi can be scalar or range
145 return PG.EEtaMPhiSampler(
146 energy=kwargs["energy"],
147 eta=kwargs.get("eta"),
148 mass=kwargs.get("mass", 0),
149 phi=kwargs.get("phi", [0, 2*pi]),
150 )
151
152 if samplerType == "PtEtaMPhi":
153 # pt: float or [min,max], eta: float or [min,max]
154 return PG.PtEtaMPhiSampler(
155 pt=kwargs["pt"],
156 eta=kwargs.get("eta"),
157 mass=kwargs.get("mass", 0),
158 phi=kwargs.get("phi", [0, 2*pi]),
159 )
160
161 if samplerType == "EThetaMPhi":
162 # energy, theta: can be scalars or cyclic samplers
163 return PG.EThetaMPhiSampler(
164 energy=kwargs["energy"],
165 theta=kwargs["theta"],
166 mass=kwargs.get("mass", 0),
167 phi=kwargs.get("phi", [0, 2*pi]),
168 )
169
170 raise ValueError(f"Unknown samplerType '{samplerType}'")
171
172

◆ ALFA_SingleParticlePreInclude()

python.ParticleGunConfig.ALFA_SingleParticlePreInclude ( flags)

Definition at line 67 of file ParticleGunConfig.py.

67def ALFA_SingleParticlePreInclude(flags):
68 flags.BField.solenoidOn=False
69 flags.BField.barrelToroidOn=False
70 flags.BField.endcapToroidOn=False
71 from SimulationConfig.SimEnums import VertexSource
72 flags.Sim.VertexSource=VertexSource.AsGenerated
73 flags.Sim.GenerationConfiguration="ParticleGun.ParticleGunConfig.ParticleGun_ALFA_SingleParticleCfg"
74 from ForwardTransportSvc.ForwardTransportSvcConfig import ForwardTransportBeta90mPreInclude
75 ForwardTransportBeta90mPreInclude(flags)
76
77

◆ ParticleGun_ALFA_SingleParticleCfg()

python.ParticleGunConfig.ParticleGun_ALFA_SingleParticleCfg ( flags)

Definition at line 78 of file ParticleGunConfig.py.

78def ParticleGun_ALFA_SingleParticleCfg(flags):
79 result = ComponentAccumulator()
80 import ParticleGun as PG
81 pg = PG.ParticleGun(randomStream = "SINGLE", randomSeed = flags.Random.SeedOffset)
82 pg.sampler.pid = 2212
83 pg.sampler.mom = PG.EEtaMPhiSampler(energy=3500000, eta=10)
84 result.addEventAlgo(pg)
85 return result
86
87

◆ ParticleGun_flatpt_2particleCfg()

python.ParticleGunConfig.ParticleGun_flatpt_2particleCfg ( flags)

Definition at line 14 of file ParticleGunConfig.py.

14def ParticleGun_flatpt_2particleCfg(flags):
15 result = ComponentAccumulator()
16 import ParticleGun as PG
17 pg = PG.ParticleGun(randomStream = "SINGLE", randomSeed = flags.Random.SeedOffset)
18 pg.samplers.append(PG.ParticleSampler()) # add a second sampler
19 pg.samplers[0].pid = (-13, 13) # cycle mu+-
20 pg.samplers[0].mom = PG.PtEtaMPhiSampler(pt=[4000, 100000], eta=[1.0, 3.2]) # flat in pt and +ve eta
21 pg.samplers[1].pid = (13, -13) # cycle mu-+
22 pg.samplers[1].mom = PG.PtEtaMPhiSampler(pt=[4000, 100000], eta=[-3.2, -1.0]) # flat in pt and -ve eta
23 result.addEventAlgo(pg)
24 return result
25
26

◆ ParticleGun_SingleElectronCfg()

python.ParticleGunConfig.ParticleGun_SingleElectronCfg ( flags)

Definition at line 47 of file ParticleGunConfig.py.

47def ParticleGun_SingleElectronCfg(flags):
48 result = ComponentAccumulator()
49 import ParticleGun as PG
50 pg = PG.ParticleGun(randomStream = "SINGLE", randomSeed = flags.Random.SeedOffset)
51 pg.sampler.pid = PG.CyclicSeqSampler([-11,11])
52 pg.sampler.mom = PG.PtEtaMPhiSampler(pt=10000, eta=[-3,3])
53 result.addEventAlgo(pg)
54 return result
55
56

◆ ParticleGun_SingleMuonBasicCfg()

python.ParticleGunConfig.ParticleGun_SingleMuonBasicCfg ( flags)

Definition at line 27 of file ParticleGunConfig.py.

27def ParticleGun_SingleMuonBasicCfg(flags):
28 result = ComponentAccumulator()
29 import ParticleGun as PG
30 pg = PG.ParticleGun(randomStream = "SINGLE", randomSeed = flags.Random.SeedOffset)
31 pg.sampler.pid = 13
32 pg.sampler.mom = PG.EEtaMPhiSampler(energy=10000, eta=[-1,1])
33 result.addEventAlgo(pg)
34 return result
35
36

◆ ParticleGun_SingleMuonCfg()

python.ParticleGunConfig.ParticleGun_SingleMuonCfg ( flags)

Definition at line 37 of file ParticleGunConfig.py.

37def ParticleGun_SingleMuonCfg(flags):
38 result = ComponentAccumulator()
39 import ParticleGun as PG
40 pg = PG.ParticleGun(randomStream = "SINGLE", randomSeed = flags.Random.SeedOffset)
41 pg.sampler.pid = PG.CyclicSeqSampler([-13,13])
42 pg.sampler.mom = PG.PtEtaMPhiSampler(pt=50000, eta=[-4,4])
43 result.addEventAlgo(pg)
44 return result
45
46

◆ ParticleGun_SinglePionCfg()

python.ParticleGunConfig.ParticleGun_SinglePionCfg ( flags)

Definition at line 57 of file ParticleGunConfig.py.

57def ParticleGun_SinglePionCfg(flags):
58 result = ComponentAccumulator()
59 import ParticleGun as PG
60 pg = PG.ParticleGun(randomStream = "SINGLE", randomSeed = flags.Random.SeedOffset)
61 pg.sampler.pid = PG.CyclicSeqSampler([-211,211])
62 pg.sampler.mom = PG.PtEtaMPhiSampler(pt=50000, eta=[-4,4])
63 result.addEventAlgo(pg)
64 return result
65
66

◆ ParticleGun_SteeredSingleParticleCfg()

python.ParticleGunConfig.ParticleGun_SteeredSingleParticleCfg ( flags,
* ,
pid,
samplerType = "EEtaMPhi",
randomStream = "SINGLE",
randomSeed = None,
** kwargs )
Generic single-particle gun configuration steered via arguments.

Parameters
----------
pid : int or sequence
    PDG ID (or sampler) for the primary particle.
samplerType : str
    Which momentum sampler to use: "EEtaMPhi", "PtEtaMPhi", "EThetaMPhi".
randomStream : str
    Name of the random stream (defaults to "SINGLE").
randomSeed : int or None
    Random seed (defaults to flags.Random.SeedOffset if None).
momKwargs : dict
    Keyword arguments passed to the momentum sampler factory.
    E.g. for samplerType="EEtaMPhi":
        energy=50000, eta=0
    for samplerType="PtEtaMPhi":
        pt=[4000, 100000], eta=[-2.5, 2.5]

Definition at line 173 of file ParticleGunConfig.py.

181):
182 """
183 Generic single-particle gun configuration steered via arguments.
184
185 Parameters
186 ----------
187 pid : int or sequence
188 PDG ID (or sampler) for the primary particle.
189 samplerType : str
190 Which momentum sampler to use: "EEtaMPhi", "PtEtaMPhi", "EThetaMPhi".
191 randomStream : str
192 Name of the random stream (defaults to "SINGLE").
193 randomSeed : int or None
194 Random seed (defaults to flags.Random.SeedOffset if None).
195 momKwargs : dict
196 Keyword arguments passed to the momentum sampler factory.
197 E.g. for samplerType="EEtaMPhi":
198 energy=50000, eta=0
199 for samplerType="PtEtaMPhi":
200 pt=[4000, 100000], eta=[-2.5, 2.5]
201 """
202 import ParticleGun as PG
203 ca = ComponentAccumulator(EvgenSequenceFactory(EvgenSequence.Generator))
204
205 # Announce generator to service
206 from GeneratorConfig.GeneratorInfoSvcConfig import GeneratorInfoSvcCfg
207 ca.merge(GeneratorInfoSvcCfg(flags, Generators=["ParticleGun"]), sequenceName=EvgenSequence.Generator.value)
208
209 if randomSeed is None:
210 randomSeed = flags.Random.SeedOffset
211
212 pg = PG.ParticleGun(
213 randomStream=randomStream,
214 randomSeed=randomSeed,
215 )
216
217 # Select the particle type
218 pg.sampler.pid = pid
219
220 # Select the momentum sampler
221 pg.sampler.mom = _makeMomentumSampler(
222 PG,
223 samplerType=samplerType,
224 **kwargs,
225 )
226
227 ca.addEventAlgo(pg)
228
229 return ca

◆ ParticleGun_TestBeam_SingleParticleCfg()

python.ParticleGunConfig.ParticleGun_TestBeam_SingleParticleCfg ( flags)

Definition at line 108 of file ParticleGunConfig.py.

108def ParticleGun_TestBeam_SingleParticleCfg(flags):
109 result = ComponentAccumulator()
110 import ParticleGun as PG
111 pg = PG.ParticleGun(randomStream = "SINGLE", randomSeed = flags.Random.SeedOffset)
112 # 50 GeV pions
113 #pg.sampler.pid = 211
114 #pg.sampler.pos = PG.PosSampler(x=-27500, y=[-10,15], z=[-15,15], t=-27500)
115 #pg.sampler.mom = PG.EEtaMPhiSampler(energy=50000, eta=0, phi=0)
116
117 # 100 GeV electrons - use for sampling faction calculation
118 #pg.sampler.pid = 11
119 #pg.sampler.pos = PG.PosSampler(x=-27500, y=[-20,20], z=[-15,15], t=-27500)
120 #pg.sampler.mom = PG.EEtaMPhiSampler(energy=100000, eta=0, phi=0)
121
122 pg.sampler.pid = flags.TestBeam.BeamPID
123 pg.sampler.pos = PG.PosSampler(
124 x=flags.TestBeam.Xbeam,
125 y=flags.TestBeam.Ybeam,
126 z=flags.TestBeam.Zbeam,
127 t=flags.TestBeam.Tbeam)
128 pg.sampler.mom = PG.EEtaMPhiSampler(
129 energy=flags.TestBeam.BeamEnergy,
130 eta=0,
131 phi=0)
132 result.addEventAlgo(pg)
133 return result
134
135

◆ ParticleGun_ZDC_SingleParticleCfg()

python.ParticleGunConfig.ParticleGun_ZDC_SingleParticleCfg ( flags)

Definition at line 96 of file ParticleGunConfig.py.

96def ParticleGun_ZDC_SingleParticleCfg(flags):
97 result = ComponentAccumulator()
98 import ParticleGun as PG
99 pg = PG.ParticleGun(randomStream = "SINGLE", randomSeed = flags.Random.SeedOffset)
100 pg.sampler.pid = PG.CyclicSeqSampler([2112, 22, 2112, 22])
101 esampler = PG.CyclicSeqSampler([1360000, 500000, 1360000, 500000])
102 thsampler = PG.CyclicSeqSampler([0, 0, PG.PI, PG.PI])
103 pg.sampler.mom = PG.EThetaMPhiSampler(energy=esampler, theta=thsampler)
104 result.addEventAlgo(pg)
105 return result
106
107

◆ ParticleGunBaseCfg()

python.ParticleGunConfig.ParticleGunBaseCfg ( flags)

Definition at line 6 of file ParticleGunConfig.py.

6def ParticleGunBaseCfg(flags):
7 result = ComponentAccumulator()
8 import ParticleGun as PG
9 pg = PG.ParticleGun(randomStream = "SINGLE", randomSeed = flags.Random.SeedOffset)
10 result.addEventAlgo(pg)
11 return result
12
13

◆ ZDC_SingleParticlePreInclude()

python.ParticleGunConfig.ZDC_SingleParticlePreInclude ( flags)

Definition at line 88 of file ParticleGunConfig.py.

88def ZDC_SingleParticlePreInclude(flags):
89 from SimulationConfig.SimEnums import VertexSource
90 flags.Sim.VertexSource=VertexSource.AsGenerated
91 flags.Sim.GenerationConfiguration="ParticleGun.ParticleGunConfig.ParticleGun_ZDC_SingleParticleCfg"
92 from ForwardTransportSvc.ForwardTransportSvcConfig import ForwardTransportBeta055mPreInclude
93 ForwardTransportBeta055mPreInclude(flags)
94
95