diff --git a/evtgen/013-electrongun/README.md b/evtgen/013-electrongun/README.md
new file mode 100644
index 0000000..dcdd2eb
--- /dev/null
+++ b/evtgen/013-electrongun/README.md
@@ -0,0 +1,5 @@
+Electron gun:
+
+- pT: uniform between 1-1500 GeV;
+- theta: uniform between 10-170 deg;
+- phi: uniform between 0-360 deg.
diff --git a/evtgen/013-electrongun/gen_electron_gun.py b/evtgen/013-electrongun/gen_electron_gun.py
new file mode 100644
index 0000000..2a2db57
--- /dev/null
+++ b/evtgen/013-electrongun/gen_electron_gun.py
@@ -0,0 +1,140 @@
+#####################################
+#
+# simple script to create lcio files with single particle
+# events - modify as needed
+# @author F.Gaede, DESY
+# @date 1/07/2014
+#
+# initialize environment:
+# export PYTHONPATH=${LCIO}/src/python:${ROOTSYS}/lib
+#
+#####################################
+import math
+import random
+from array import array
+
+# --- LCIO dependencies ---
+from pyLCIO import UTIL, EVENT, IMPL, IO, IOIMPL
+
+#---- number of events ----------------------
+nevt = 100000
+
+outfile = "electronGun_gen.slcio"
+
+#--------------------------------------------
+
+
+wrt = IOIMPL.LCFactory.getInstance().createLCWriter( )
+
+wrt.open( outfile , EVENT.LCIO.WRITE_NEW )
+
+random.seed()
+
+
+#========== particle properties ===================
+
+# particles per event
+npart = 1
+
+pdg = 11
+
+mass = 0.00051099895
+charge = -1.
+
+decayLen = 1.e32
+
+genstat = 1
+
+pt_min = 1.
+pt_max = 1500.
+
+theta_min = 10./180.*math.pi
+theta_max = 170./180.*math.pi
+
+
+#=================================================
+
+
+for j in range( 0, nevt ):
+
+ col = IMPL.LCCollectionVec( EVENT.LCIO.MCPARTICLE )
+ evt = IMPL.LCEventImpl()
+
+ evt.setEventNumber( j )
+
+ evt.addCollection( col , "MCParticle" )
+
+ print (j, "-----------------------------")
+
+ for ipart in range( 0, npart ):
+
+ pt = random.uniform(pt_min, pt_max)
+ theta = random.uniform(theta_min, theta_max)
+ phi = random.random() * math.pi * 2.
+
+ p = pt/math.sin( theta )
+ energy = math.sqrt( mass*mass + p * p )
+
+ px = pt * math.cos( phi )
+ py = pt * math.sin( phi )
+ pz = p * math.cos( theta )
+
+ momentum = array('f',[ px, py, pz ] )
+
+
+ # --- endpoint
+
+ epx = decayLen * math.cos( phi ) * math.sin( theta )
+ epy = decayLen * math.sin( phi ) * math.sin( theta )
+ epz = decayLen * math.cos( theta )
+
+ endpoint = array('d',[ epx, epy, epz ] )
+
+
+ # --- production vertex
+
+ vpx = 0.
+ vpy = 0.
+ vpz = 0.
+
+ vertex = array('d',[ vpx, vpy, vpz ] )
+
+ time = 0.
+
+
+ # --- particle charge
+
+ if j % 2 == 1:
+ pdg = -pdg
+ charge = -charge
+
+
+
+#--------------- create MCParticle -------------------
+
+ mcp = IMPL.MCParticleImpl()
+
+ mcp.setGeneratorStatus( genstat )
+ mcp.setMass( mass )
+ mcp.setPDG( pdg )
+ mcp.setMomentum( momentum )
+ mcp.setCharge( charge )
+ mcp.setVertex( vertex )
+ mcp.setTime( time )
+
+ if( decayLen < 1.e9 ) : # arbitrary ...
+ mcp.setEndpoint( endpoint )
+
+ print (" ", ipart, pdg, charge, pt, phi, theta)
+
+
+#-------------------------------------------------------
+
+
+ col.addElement( mcp )
+
+
+ wrt.writeEvent( evt )
+
+
+wrt.close()
diff --git a/reconstruction/013-electrongun/README.md b/reconstruction/013-electrongun/README.md
new file mode 100644
index 0000000..fe9eaf3
--- /dev/null
+++ b/reconstruction/013-electrongun/README.md
@@ -0,0 +1 @@
+Electro gun.
\ No newline at end of file
diff --git a/reconstruction/013-electrongun/ntuplizer_all.xml b/reconstruction/013-electrongun/ntuplizer_all.xml
new file mode 100644
index 0000000..2021759
--- /dev/null
+++ b/reconstruction/013-electrongun/ntuplizer_all.xml
@@ -0,0 +1,199 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ input_file.slcio
+
+
+
+
+ MESSAGE0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ JetOut
+
+
+
+
+
+
+
+
+ RecoMCTruthLink
+
+
+
+
+ r2
+
+
+
+
+
+
+
+ MCParticle
+
+
+
+
+
+
+ MergedRecoParticles
+
+
+
+
+
+
+
+ SiTracks_Refitted
+
+
+
+
+
+
+
+
+ PrimaryVertices
+
+ false
+
+ false
+
+ false
+
+ false
+
+ false
+
+ false
+
+ false
+
+ false
+
+ false
+
+ false
+
+ false
+
+
+
+
+ kt_algorithm 0.5
+ Inclusive 5
+ JetOut
+ PandoraPFOs
+
+ E_scheme
+
+
+
+ outputfile.slcio
+ WRITE_NEW
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+ VBTrackerHits
+ VETrackerHits
+ IBTrackerHits
+ IETrackerHits
+ OBTrackerHits
+ OETrackerHits
+
+ MergedTrackerHits
+
+
+
+ 0
+
+
+ VertexBarrelCollection
+ VertexEndcapCollection
+ InnerTrackerBarrelCollection
+ InnerTrackerEndcapCollection
+ OuterTrackerBarrelCollection
+ OuterTrackerEndcapCollection
+
+ MergedTrackerSimHits
+
+
+
+ 0
+
+
+ VBTrackerHitRelations
+ VETrackerHitRelations
+ IBTrackerHitsRelations
+ IETrackerHitsRelations
+ OBTrackerHitsRelations
+ OETrackerHitsRelations
+
+ MergedTrackerHitsRelations
+
+
+
+
+
+
+
+
+
diff --git a/reconstruction/013-electrongun/reco_steer_all.xml b/reconstruction/013-electrongun/reco_steer_all.xml
new file mode 100644
index 0000000..cc8df97
--- /dev/null
+++ b/reconstruction/013-electrongun/reco_steer_all.xml
@@ -0,0 +1,1629 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEBUG7
+
+ False
+
+ False BIB
+
+ Conformal
+
+ Truth Conformal
+
+ OFF
+
+ ON OFF
+
+ MESSAGE0
+
+
+
+ 1
+ MESSAGE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ input_file.slcio
+
+
+
+
+
+ WARNING
+
+
+
+
+
+
+
+
+
+
+
+
+ output_file.slcio
+ EfficientMCParticles InefficientMCParticles
+
+
+ WARNING
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /opt/ilcsoft/muonc/detector-simulation/geometries/MuColl_v1/MuColl_v1.xml
+
+
+
+ GlobalTrackerReadoutID
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MCParticle
+
+ MCPhysicsParticles
+
+
+
+
+
+
+
+
+
+
+ VertexBarrelCollection -0.18 0.24
+ VertexEndcapCollection -0.18 0.24
+
+ InnerTrackerBarrelCollection -0.36 0.48
+ InnerTrackerEndcapCollection -0.36 0.48
+
+ OuterTrackerBarrelCollection -0.36 0.48
+ OuterTrackerEndcapCollection -0.36 0.48
+
+ ECalBarrelCollection 10.
+ ECalEndcapCollection 10.
+
+ HCalBarrelCollection 10.
+ HCalEndcapCollection 10.
+
+ YokeBarrelCollection 10.
+ YokeEndcapCollection 10.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /dev/null
+
+
+
+
+
+
+ /data/BIB/sim_mupl-1e3x500-26m-lowth-excl_j8.slcio
+
+
+
+ WARNING
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Vertex
+
+
+ false
+
+ 0.005
+
+ 0.005
+
+ VertexBarrelCollection
+
+ VBTrackerHitsRelations
+
+ VBTrackerHits
+
+ 0.03
+
+ true
+
+
+
+ -0.09
+
+ 0.15
+
+ WARNING
+
+
+
+ Vertex
+
+
+ false
+
+ 0.005
+
+ 0.005
+
+ VertexEndcapCollection
+
+ VETrackerHitsRelations
+
+ VETrackerHits
+
+ 0.03
+
+ true
+
+
+
+ -0.09
+
+ 0.15
+
+ WARNING
+
+
+
+
+ InnerTrackers
+
+ false
+
+ 0.007
+
+ 0.090
+
+ InnerTrackerBarrelCollection
+
+ IBTrackerHitsRelations
+
+ IBTrackerHits
+
+ 0.06
+
+ true
+
+
+
+ -0.18
+
+ 0.3
+
+ WARNING
+
+
+
+
+ InnerTrackers
+
+ false
+
+ 0.007
+
+ 0.090
+
+ InnerTrackerEndcapCollection
+
+ IETrackerHitsRelations
+
+ IETrackerHits
+
+ 0.06
+
+ true
+
+
+
+ -0.18
+
+ 0.3
+
+ WARNING
+
+
+
+
+ OuterTrackers
+
+ false
+
+ 0.007
+
+ 0.090
+
+ OuterTrackerBarrelCollection
+
+ OBTrackerHitsRelations
+
+ OBTrackerHits
+
+ 0.06
+
+ true
+
+
+
+ -0.18
+
+ 0.3
+
+ WARNING
+
+
+
+
+ OuterTrackers
+
+ false
+
+ 0.007
+
+ 0.090
+
+ OuterTrackerEndcapCollection
+
+ OETrackerHitsRelations
+
+ OETrackerHits
+
+ 0.06
+
+ true
+
+
+
+ -0.18
+
+ 0.3
+
+ WARNING
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VBTrackerHits
+ VETrackerHits
+ IBTrackerHits
+ IETrackerHits
+ OBTrackerHits
+ OETrackerHits
+
+
+ MCParticle
+
+
+ VBTrackerHitsRelations
+ VETrackerHitsRelations
+ IBTrackerHitsRelations
+ IETrackerHitsRelations
+ OBTrackerHitsRelations
+ OETrackerHitsRelations
+
+
+ SiTracksCT
+
+ DebugHits
+
+ 4
+
+ 4
+
+ false
+
+ false
+
+ false
+ 10000
+
+ true
+
+
+ [VXDBarrel]
+ @Collections : VBTrackerHits
+ @Parameters : MaxCellAngle : 0.005; MaxCellAngleRZ : 0.005; Chi2Cut : 100; MinClustersOnTrack : 4; MaxDistance : 0.02; SlopeZRange: 10.0; HighPTCut: 10.0;
+ @Flags : HighPTFit, VertexToTracker
+ @Functions : CombineCollections, BuildNewTracks
+ [VXDEncap]
+ @Collections : VETrackerHits
+ @Parameters : MaxCellAngle : 0.005; MaxCellAngleRZ : 0.005; Chi2Cut : 100; MinClustersOnTrack : 4; MaxDistance : 0.02; SlopeZRange: 10.0; HighPTCut: 0.0;
+ @Flags : HighPTFit, VertexToTracker
+ @Functions : CombineCollections, ExtendTracks
+ [LowerCellAngle1]
+ @Collections : VBTrackerHits, VETrackerHits
+ @Parameters : MaxCellAngle : 0.025; MaxCellAngleRZ : 0.025; Chi2Cut : 100; MinClustersOnTrack : 4; MaxDistance : 0.02; SlopeZRange: 10.0; HighPTCut: 10.0;
+ @Flags : HighPTFit, VertexToTracker, RadialSearch
+ @Functions : CombineCollections, BuildNewTracks
+ [LowerCellAngle2]
+ @Collections :
+ @Parameters : MaxCellAngle : 0.05; MaxCellAngleRZ : 0.05; Chi2Cut : 2000; MinClustersOnTrack : 4; MaxDistance : 0.02; SlopeZRange: 10.0; HighPTCut: 10.0;
+ @Flags : HighPTFit, VertexToTracker, RadialSearch
+ @Functions : BuildNewTracks, SortTracks
+ [Tracker]
+ @Collections : IBTrackerHits, OBTrackerHits, IETrackerHits, OETrackerHits
+ @Parameters : MaxCellAngle : 0.05; MaxCellAngleRZ : 0.05; Chi2Cut : 2000; MinClustersOnTrack : 4; MaxDistance : 0.02; SlopeZRange: 10.0; HighPTCut: 0.0;
+ @Flags : HighPTFit, VertexToTracker, RadialSearch
+ @Functions : CombineCollections, ExtendTracks
+ [Displaced]
+ @Collections : VBTrackerHits, VETrackerHits, IBTrackerHits, OBTrackerHits, IETrackerHits, OETrackerHits
+ @Parameters : MaxCellAngle : 0.05; MaxCellAngleRZ : 0.05; Chi2Cut : 1000; MinClustersOnTrack : 5; MaxDistance : 0.015; SlopeZRange: 10.0; HighPTCut: 10.0;
+ @Flags : OnlyZSchi2cut, RadialSearch
+ @Functions : CombineCollections, BuildNewTracks
+
+
+ 0.7
+ 0.05
+
+ DEBUG7
+
+
+
+
+
+ true
+
+
+ VBTrackerHits
+ VETrackerHits
+ IBTrackerHits
+ IETrackerHits
+ OBTrackerHits
+ OETrackerHits
+
+
+ VBTrackerHitsRelations
+ VETrackerHitsRelations
+ IBTrackerHitsRelations
+ IETrackerHitsRelations
+ OBTrackerHitsRelations
+ OETrackerHitsRelations
+
+
+ MCParticle
+
+ SiTracks
+
+ SiTrackRelations
+
+ false
+ SILENT
+
+
+
+ SiTracksCT
+ SiTracks
+ true
+ true
+ false
+ true
+ 0.59
+ 0.99
+ 0.69
+ false
+
+
+
+
+
+ true
+
+ SiTrackRelations
+
+ SiTracks
+
+ 1.79769e+30
+
+ true
+
+
+ SiTracks_Refitted_Relation
+
+
+
+ SiTracks_Refitted
+
+
+ -1
+
+ false
+
+
+
+ true
+
+ 3
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+ Digi_SiW.root
+
+ RelationCaloHit
+
+ 3.6
+
+
+
+
+
+
+ ECalBarrelCollection ECalEndcapCollection ECalPlugCollection
+
+ ECALBarrel
+
+ ECALEndcap
+
+ ECALOther
+
+ 0
+
+ 41 100
+
+ 000000000000000
+
+ 9
+
+
+ 0.0001
+
+ 35.8411424188 35.8411424188
+
+ 5e-05
+
+ GeV
+
+ 1.0672142727
+
+ 1
+
+ 1
+
+ 0.0
+
+ 0
+
+
+ 10000
+
+ 0.05
+
+ 7
+
+ 0
+
+ 0
+
+ false
+
+ 0
+
+ 2500
+
+ 0
+
+ 0
+
+ false
+
+ 0.05
+
+ 1e+06
+
+
+ 1
+
+ 1
+
+ -1
+
+ 10
+
+ 10
+
+ true
+
+ 10
+
+ 10
+
+
+
+
+ HCalBarrelCollection HCalEndcapCollection HCalRingCollection
+
+ HCALBarrel
+
+ HCALEndcap
+
+ HCALOther
+
+ 0
+
+ 100
+
+
+ 0.0001
+
+ 49.2031079063
+
+
+ 53.6263377733
+
+ 62.2125698179
+
+ 0.00025
+
+ GeV
+
+ 1.000
+
+ 1
+
+ 0.5
+
+
+ 400
+
+ 0.05
+
+ 10
+
+ 0
+
+ 0
+
+ false
+
+ 0
+
+ 200
+
+ 0
+
+ 0
+
+ false
+
+ 0
+
+
+ 1
+
+ 1
+
+ -1
+
+ 10
+
+ 10
+
+ true
+
+ 10
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+ config/PandoraSettings/PandoraSettingsDefault.xml
+
+ 1.61741 -0.00444385 2.29683e-05 -0.0731236 -0.00157099 -7.09546e-07 0.868443 1.0561 -0.0238574
+ 0 2. 5. 7.5 9.5 13. 16. 20. 23.5 28. 33. 40. 50. 75. 100.
+ 110.
+ 2000.
+
+ SiTracks_Refitted
+ ECALBarrel ECALEndcap ECALOther
+ HCALBarrel HCALEndcap HCALOther
+ MUON
+ MCParticle
+ RelationCaloHit RelationMuonHit
+ SiTracks_Refitted_Relation
+ KinkVertices
+ ProngVertices
+ SplitVertices
+ V0Vertices
+ PandoraClusters
+ PandoraPFOs
+
+ 181.818
+ 40.8163
+ 0.5
+ 0.3
+ 1.02373335516
+ 1.02373335516
+ 1.24223718397
+ 1.24223718397
+ 1.01799349172
+ 19607.8
+ 0
+ 1000000
+
+ 0
+ 0
+ WARNING
+
+
+
+
+
+ false
+
+
+
+ 0
+
+ 0
+
+ 0
+
+ 0
+
+ 0
+
+ 0
+
+ 0
+
+
+
+ -100
+
+ -50
+
+ 1
+
+ 0
+
+ 0
+
+ 0
+
+ 5
+
+ 1
+
+ 0
+
+ 0
+
+ 1
+
+ 200
+
+ 5
+
+ 250
+
+ 5000
+
+ 0.15
+
+ 0.00015
+
+ 200
+
+ 5
+
+
+ PandoraPFANew
+
+ PandoraStartVertices
+
+
+ 0 0 1
+
+ 0 0 1
+
+ 0 0 1
+
+ -1.5
+
+ 0.01
+
+
+ 0.01
+
+ 0.17
+
+ 0.03
+
+ 0.6
+
+
+
+
+
+ 250
+
+ 3
+
+ 0
+
+
+ 200
+
+
+ 0.1
+
+ 0.5
+
+ 0.01
+
+
+ 0.5
+
+
+ 1
+
+
+ DDTrackCreatorCLIC
+
+ DDKalTest
+
+
+
+
+
+ 0
+
+ 0
+
+ 1
+
+ 1
+
+ 1
+
+ 1
+
+ 0
+
+ 1
+
+ 1
+
+ 1
+
+ 1
+
+ 0
+
+
+
+
+
+
+ 0
+
+ PandoraPFOs
+ MergedRecoParticles
+
+
+
+ 0
+
+ PandoraClusters
+ MergedClusters
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 70.1
+
+ 2.0
+
+
+ YokeBarrelCollection YokeEndcapCollection
+
+ MUON
+
+ 1e-06
+
+ RelationMuonHit
+
+
+
+
+
+
+
+
+
+
+
+
+ trktree
+
+ puritytree
+
+ mctree
+
+ SiTracks_Refitted
+
+
+ VBTrackerHits
+ VETrackerHits
+ IBTrackerHits
+ IETrackerHits
+ OBTrackerHits
+ OETrackerHits
+
+
+
+ VBTrackerHitsRelations
+ VETrackerHitsRelations
+ IBTrackerHitsRelations
+ IETrackerHitsRelations
+ OBTrackerHitsRelations
+ OETrackerHitsRelations
+
+
+ MCParticle
+
+ MCPhysicsParticles
+
+ MCParticleNotReco
+ EfficientMCParticles
+ InefficientMCParticles
+
+
+ true
+
+ ILDLike
+
+ 1
+
+
+
+
+
+
+
+ MCParticle
+
+ SiTracks_Refitted
+
+ SiTracksMCTruthLink
+
+ checktree
+
+ true
+
+
+
+
+
+
+
+ 1
+
+ CalohitMCTruthLink
+
+ MergedClusters
+
+ ClusterMCTruthLink
+
+ false
+
+ false
+
+
+ 22 111 310 13 211 321 3120
+
+ MCPhysicsParticles
+
+ MCParticlesSkimmed
+
+
+
+
+
+
+
+
+ RecoMCTruthLink
+
+ MergedRecoParticles
+
+ false
+
+
+ ECalBarrelCollection
+ ECalEndcapCollection
+ ECalPlugCollection
+ HCalBarrelCollection
+ HCalEndcapCollection
+ HCalRingCollection
+ YokeBarrelCollection
+ YokeEndcapCollection
+
+
+
+ RelationCaloHit RelationMuonHit
+
+
+
+ VertexBarrelCollection
+ VertexEndcapCollection
+ InnerTrackerBarrelCollection
+ OuterTrackerBarrelCollection
+ InnerTrackerEndcapCollection
+ OuterTrackerEndcapCollection
+
+
+ SiTracks_Refitted
+
+ SiTracksMCTruthLink
+
+
+ VBTrackerHitsRelations
+ VETrackerHitsRelations
+ IBTrackerHitsRelations
+ OBTrackerHitsRelations
+ IETrackerHitsRelations
+ OETrackerHitsRelations
+
+
+ true
+
+ false
+
+ MESSAGE
+
+ 10
+
+
+
+
+
+
+ true
+
+ 1000
+
+ true
+
+ false
+
+ SiTracks_Refitted
+
+ residuals.root
+
+ restree
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3
+
+ -1
+
+ -0.5
+
+ 0
+
+ 4
+
+ 1.5
+
+ 0
+
+ 0
+
+ 10
+
+ 0
+
+ 1
+
+ 1
+
+ 0.975
+
+ 0.95
+
+ 10
+
+ 20
+
+ 10
+
+ 1
+
+ PandoraPFOs
+
+ 1
+
+ 2
+
+ 5
+
+ 5
+
+ 0.5
+
+ 0.5
+
+ 1
+
+ 0
+
+ 1
+
+ 2
+
+ 1
+
+ 3.5
+
+ 2.5
+
+ 0
+
+ 8
+
+ 1.5
+
+ 2
+
+ 1
+
+ 2
+
+ 0
+
+ 4
+
+ 1
+
+ 0.75
+
+ SelectedPandoraPFOs
+
+ 1
+
+ 0
+
+ MESSAGE
+
+
+ SelectedPandoraPFOs
+
+
+
+
+
+ -2.0
+
+ -2.0
+
+ 1000.
+
+ 0.0
+
+ 0.25
+
+
+ 2.5
+
+ 1.5
+
+ 2.
+
+ 2.
+
+ LooseSelectedPandoraPFOs
+ 0
+
+
+
+
+
+ 2.0
+
+ -0.5
+
+ -0.25
+
+ 1.0
+
+ 0.95
+
+ 1.5
+
+ 1.0
+
+ 1.5
+
+ 0.5
+
+ 0.2
+
+ 1.0
+
+ TightSelectedPandoraPFOs
+
+ 0
+ 0
+
+
+
+
+
+
+ LE_SelectedPandoraPFOs
+
+
+
+
+ 0.0
+ 2.0
+ 5.0
+ 2.5
+ 0.0
+ 2.0
+ 5.0
+ 1.0
+ 0.0
+ 4.0
+ 10.0
+ 3.0
+ -5.0
+ -2.0
+ 10.
+ 0.0
+ 5.0
+ 0.0
+ 4.0
+ 2.0
+ 5
+ 2.5
+
+
+
+
+
+
+ LE_LooseSelectedPandoraPFOs
+
+ 0.0
+
+
+
+ 2.0
+ 10.0
+ 5.0
+ 0.0
+ 2.0
+ 10.0
+ 2.5
+ 0.0
+ 4.0
+ 10.0
+ 5.0
+ -20.0
+ -20.0
+ 50.
+ 0.0
+ 5.0
+ 0.0
+ 10.0
+ 5.0
+ 10
+ 5
+
+
+
+
+
+
+ LE_TightSelectedPandoraPFOs
+
+ 0.0
+
+
+
+ 3.0
+ 4.0
+ 2.0
+ 0.0
+ 2.0
+ 1.0
+ 1.0
+ 0.0
+ 3.0
+ 4.0
+ 2.0
+ -2.0
+ -1.0
+ 10.
+ 0.0
+ 5.0
+ 0.75
+ 2.0
+ 2.0
+ 4
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+ PandoraPFOs
+ PFOsFromJets
+
+
+
+
+ ValenciaPlugin 1.2 1.0 0.7
+ ExclusiveNJets 2
+ E_scheme
+ TightSelectedPandoraPFOs
+ JetsAfterGamGamRemoval
+ true
+ PFOsFromJets
+
+
+
+
+
+
+
+
+
+
+
+ PrimaryVertexFinder BuildUpVertex
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+ JetClustering JetVertexRefiner
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/simulation/013-electrongun/README.md b/simulation/013-electrongun/README.md
new file mode 100644
index 0000000..ed3475d
--- /dev/null
+++ b/simulation/013-electrongun/README.md
@@ -0,0 +1,4 @@
+Electron gun:
+
+- MuonColliderSoft version: v02-05-MC
+- geometry: MuCollv1
diff --git a/simulation/013-electrongun/sim_steer.py b/simulation/013-electrongun/sim_steer.py
new file mode 100644
index 0000000..f12a04a
--- /dev/null
+++ b/simulation/013-electrongun/sim_steer.py
@@ -0,0 +1,244 @@
+import os
+
+from DDSim.DD4hepSimulation import DD4hepSimulation
+from g4units import mm, GeV, MeV, m, deg
+SIM = DD4hepSimulation()
+
+## The compact XML file
+SIM.compactFile = "/opt/ilcsoft/muonc/detector-simulation/geometries/MuColl_v1/MuColl_v1.xml"
+## Lorentz boost for the crossing angle, in radian!
+SIM.crossingAngleBoost = 0.
+SIM.enableDetailedShowerMode = True
+SIM.enableG4GPS = False
+SIM.enableG4Gun = False
+SIM.enableGun = False
+## InputFiles for simulation .stdhep, .slcio, .HEPEvt, .hepevt, .hepmc files are supported
+SIM.inputFiles = ["input_file.hepmc"]
+## HepMC reader v3 is not supported
+SIM.hepmc3.useHepMC3 = True
+## Macro file to execute for runType 'run' or 'vis'
+SIM.macroFile = []
+## number of events to simulate, used in batch mode
+SIM.numberOfEvents = -1
+## Outputfile from the simulation,only lcio output is supported
+# SIM.outputFile = "out/digi/sim_mod1_mumu2H2bb750.slcio"
+SIM.outputFile = "output_file.slcio"
+# SIM.outputFile = "out/sim_mod1_mcparticles.slcio"
+## Verbosity use integers from 1(most) to 7(least) verbose
+## or strings: VERBOSE, DEBUG, INFO, WARNING, ERROR, FATAL, ALWAYS
+SIM.printLevel = 3
+## The type of action to do in this invocation
+## batch: just simulate some events, needs numberOfEvents, and input file or gun
+## vis: enable visualisation, run the macroFile if it is set
+## run: run the macroFile and exit
+## shell: enable interactive session
+SIM.runType = "batch"
+## Skip first N events when reading a file
+SIM.skipNEvents = 0
+## Steering file to change default behaviour
+SIM.steeringFile = None
+## FourVector of translation for the Smearing of the Vertex position: x y z t
+SIM.vertexOffset = [0.0, 0.0, 0.0, 0.0]
+## FourVector of the Sigma for the Smearing of the Vertex position: x y z t
+SIM.vertexSigma = [0.0, 0.0, 0.0, 0.0]
+
+
+################################################################################
+## Action holding sensitive detector actions
+## The default tracker and calorimeter actions can be set with
+##
+## >>> SIM = DD4hepSimulation()
+## >>> SIM.action.tracker = "Geant4TrackerAction"
+## >>> SIM.action.calo = "Geant4CalorimeterAction"
+##
+## for specific subdetectors specific sensitive detectors can be set based on pattern matching
+##
+## >>> SIM = DD4hepSimulation()
+## >>> SIM.action.mapActions['tpc'] = "TPCSDAction"
+##
+## and additional parameters for the sensitive detectors can be set when the map is given a tuple
+##
+## >>> SIM = DD4hepSimulation()
+## >>> SIM.action.mapActions['ecal'] =( "CaloPreShowerSDAction", {"FirstLayerNumber": 1} )
+##
+##
+################################################################################
+
+## set the default tracker action
+SIM.action.tracker = "Geant4TrackerWeightedAction"
+
+## set the default calorimeter action
+SIM.action.calo = "Geant4ScintillatorCalorimeterAction"
+
+## create a map of patterns and actions to be applied to sensitive detectors
+## example: SIM.action.mapActions['tpc'] = "TPCSDAction"
+SIM.action.mapActions = {}
+
+
+################################################################################
+## Configuration for the magnetic field (stepper)
+################################################################################
+SIM.field.delta_chord = 0.25*mm
+SIM.field.delta_intersection = 0.001*mm
+SIM.field.delta_one_step = 0.01*mm
+SIM.field.eps_max = 0.001*mm
+SIM.field.eps_min = 5e-05*mm
+SIM.field.equation = "Mag_UsualEqRhs"
+SIM.field.largest_step = 10.0*m
+SIM.field.min_chord_step = 0.01*mm
+SIM.field.stepper = "ClassicalRK4"
+
+
+################################################################################
+## Configuration for sensitive detector filters
+##
+## Set the default filter for tracker or caliromter
+## >>> SIM.filter.tracker = "edep1kev"
+## >>> SIM.filter.calo = ""
+##
+## Assign a filter to a sensitive detector via pattern matching
+## >>> SIM.filter.mapDetFilter['FTD'] = "edep1kev"
+##
+## Or more than one filter:
+## >>> SIM.filter.mapDetFilter['FTD'] = ["edep1kev", "geantino"]
+##
+## Don't use the default filter or anything else:
+## >>> SIM.filter.mapDetFilter['TPC'] = None ## or "" or []
+##
+## Create a custom filter. The dictionary is used to instantiate the filter later on
+## >>> SIM.filter.filters['edep3kev'] = dict(name="EnergyDepositMinimumCut/3keV", parameter={"Cut": 3.0*keV} )
+##
+##
+################################################################################
+
+## default filter for calorimeter sensitive detectors; this is applied if no other filter is used for a calorimeter
+SIM.filter.calo = "edep0"
+
+## list of filter objects: map between name and parameter dictionary
+SIM.filter.filters = {'edep0': {'parameter': {'Cut': 0.0}, 'name': 'EnergyDepositMinimumCut/Cut0'}, 'geantino': {'parameter': {}, 'name': 'GeantinoRejectFilter/GeantinoRejector'}, 'edep1kev': {'parameter': {'Cut': 0.001}, 'name': 'EnergyDepositMinimumCut'}}
+
+## a map between patterns and filter objects, using patterns to attach filters to sensitive detector
+SIM.filter.mapDetFilter = {}
+
+## default filter for tracking sensitive detectors; this is applied if no other filter is used for a tracker
+SIM.filter.tracker = "edep1kev"
+
+
+################################################################################
+## Configuration for the DDG4 ParticleGun
+################################################################################
+
+## direction of the particle gun, 3 vector
+# SIM.gun.direction = (0, 0, 1)
+
+## choose the distribution of the random direction for theta
+##
+## Options for random distributions:
+##
+## 'uniform' is the default distribution, flat in theta
+## 'cos(theta)' is flat in cos(theta)
+## 'eta', or 'pseudorapidity' is flat in pseudorapity
+## 'ffbar' is distributed according to 1+cos^2(theta)
+##
+## Setting a distribution will set isotrop = True
+##
+SIM.gun.distribution = "uniform"
+SIM.gun.energy = 10.0*GeV
+
+## isotropic distribution for the particle gun
+##
+## use the options phiMin, phiMax, thetaMin, and thetaMax to limit the range of randomly distributed directions
+## if one of these options is not None the random distribution will be set to True and cannot be turned off!
+##
+SIM.gun.isotrop = True
+SIM.gun.multiplicity = 10
+SIM.gun.particle = "mu-"
+SIM.gun.phiMax = None
+
+## Minimal azimuthal angle for random distribution
+SIM.gun.phiMin = None
+
+## position of the particle gun, 3 vector
+SIM.gun.position = (0.0, 0.0, 0.0)
+SIM.gun.thetaMax = 172*deg
+SIM.gun.thetaMin = 8*deg
+
+
+################################################################################
+## Configuration for the output levels of DDG4 components
+################################################################################
+
+## Output level for input sources
+SIM.output.inputStage = 3
+
+## Output level for Geant4 kernel
+SIM.output.kernel = 3
+
+## Output level for ParticleHandler
+SIM.output.part = 3
+
+## Output level for Random Number Generator setup
+SIM.output.random = 6
+
+
+################################################################################
+## Configuration for the Particle Handler/ MCTruth treatment
+################################################################################
+
+## Keep all created particles
+SIM.part.keepAllParticles = False
+
+## Minimal distance between particle vertex and endpoint of parent after
+## which the vertexIsNotEndpointOfParent flag is set
+##
+SIM.part.minDistToParentVertex = 2.2e-14
+
+## MinimalKineticEnergy to store particles created in the tracking region
+SIM.part.minimalKineticEnergy = 1.0*MeV
+
+## Printout at End of Tracking
+SIM.part.printEndTracking = True
+
+## Printout at Start of Tracking
+SIM.part.printStartTracking = True
+
+## List of processes to save, on command line give as whitespace separated string in quotation marks
+SIM.part.saveProcesses = ['Decay']
+
+
+################################################################################
+## Configuration for the PhysicsList
+################################################################################
+SIM.physics.decays = False
+SIM.physics.list = "QGSP_BERT"
+
+## location of particle.tbl file containing extra particles and their lifetime information
+##
+SIM.physics.pdgfile = os.path.join( os.environ.get("DD4HEP"), "DDG4/examples/particle.tbl" )
+
+## The global geant4 rangecut for secondary production
+##
+## Default is 0.7 mm as is the case in geant4 10
+##
+## To disable this plugin and be absolutely sure to use the Geant4 default range cut use "None"
+##
+## Set printlevel to DEBUG to see a printout of all range cuts,
+## but this only works if range cut is not "None"
+##
+SIM.physics.rangecut = 0.7*mm
+
+SIM.physics.rejectPDGs = {1,2,3,4,5,6,21,23,24,25}
+
+################################################################################
+## Properties for the random number generator
+################################################################################
+
+## If True, calculate random seed for each event based on eventID and runID
+## allows reproducibility even when SkippingEvents
+SIM.random.enableEventSeed = True
+SIM.random.file = None
+SIM.random.luxury = 1
+SIM.random.replace_gRandom = True
+SIM.random.seed = None
+SIM.random.type = None
+