From ebf168b0334adff518d19124707e2a2a1966e7aa Mon Sep 17 00:00:00 2001
From: Lottie Cavanagh <ccavanagh@hep.ph.liv.ac.uk>
Date: Mon, 31 Jan 2022 11:40:00 +0000
Subject: [PATCH] FaserParticleGun modified to include radial position sampler

---
 .../python/FaserParticleGunConfig.py          | 32 ++++++++++++++++++-
 1 file changed, 31 insertions(+), 1 deletion(-)

diff --git a/Generators/FaserParticleGun/python/FaserParticleGunConfig.py b/Generators/FaserParticleGun/python/FaserParticleGunConfig.py
index f5ba68bc..c303469f 100644
--- a/Generators/FaserParticleGun/python/FaserParticleGunConfig.py
+++ b/Generators/FaserParticleGun/python/FaserParticleGunConfig.py
@@ -12,6 +12,10 @@ from AthenaConfiguration.ComponentFactory import CompFactory
 from AthenaCommon.SystemOfUnits import TeV
 from AthenaCommon.PhysicalConstants import pi
 
+### add radial pos sampler ### with gaussian beam implemented
+from FaserParticleGun.RadialPosSampler import RadialPosSampler
+
+
 
 def FaserParticleGunCommonCfg(ConfigFlags, **kwargs) :
     cfg = ComponentAccumulator(AthSequencer("AthBeginSeq", Sequential = True))
@@ -46,6 +50,32 @@ def FaserParticleGunSingleParticleCfg(ConfigFlags, **kwargs) :
 
     return cfg
 
+def FaserParticleGunSingleEcalParticleCfg(ConfigFlags, **kwargs) :
+    cfg = FaserParticleGunCommonCfg(ConfigFlags, **kwargs)
+
+    pg = cfg.getPrimary()
+
+    pg.sampler.pid = kwargs.setdefault("pid", 13)
+    pg.sampler.mom = PG.EThetaMPhiSampler(energy = kwargs.setdefault("energy", 1*TeV),
+                                          theta = kwargs.setdefault("theta", 0.0), 
+                                          phi = kwargs.setdefault("phi", 0.0), 
+                                          mass = kwargs.setdefault("mass", 105.7) )    
+
+    if "radius" in kwargs:
+        pg.sampler.pos =  RadialPosSampler(x = kwargs.setdefault("x", 0.0), 
+                                   y = kwargs.setdefault("y", 0.0), 
+                                   z = kwargs.setdefault("z", 0.0),
+                                   r = kwargs.setdefault("radius", 1.0),
+                                   t = kwargs.setdefault("t", 0.0) )
+    else:
+        pg.sampler.pos = PG.PosSampler(x = kwargs.setdefault("x", 0.0), 
+                                   y = kwargs.setdefault("y", 0.0), 
+                                   z = kwargs.setdefault("z", 0.0),
+                                   t = kwargs.setdefault("t", 0.0) )
+
+    return cfg
+
+'''
 def FaserParticleGunSingleEcalParticleCfg(ConfigFlags, **kwargs) :
     cfg = FaserParticleGunCommonCfg(ConfigFlags, **kwargs)
 
@@ -62,7 +92,7 @@ def FaserParticleGunSingleEcalParticleCfg(ConfigFlags, **kwargs) :
                                    t = kwargs.setdefault("t", 0.0) )
 
     return cfg
-
+'''
 def FaserParticleGunCosmicsCfg(ConfigFlags, **kwargs) :
     # Supported keyword arguments:
     #
-- 
GitLab