Skip to content

Commit d1cbc56

Browse files
authored
Add deep Ecal gun as CI (#1833)
1 parent 0c0e681 commit d1cbc56

File tree

1 file changed

+129
-0
lines changed
  • .github/validation_samples/deep_ecal_gun

1 file changed

+129
-0
lines changed
Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
from LDMX.Framework import ldmxcfg
2+
p = ldmxcfg.Process('test')
3+
4+
p.maxTriesPerEvent = 10000
5+
6+
from LDMX.Biasing import ecal
7+
from LDMX.SimCore import generators as gen
8+
from LDMX.SimCore import simulator as sim
9+
det = 'ldmx-det-v15-8gev'
10+
mySim = sim.simulator( "mySim" )
11+
mySim.setDetector(det, True )
12+
mySim.description = 'Deep ECal Gun Simulation'
13+
14+
ene_ang_pos_cmds_ele = [
15+
'/gps/ene/type Lin',
16+
'/gps/ene/min 1 GeV',
17+
'/gps/ene/max 3 GeV',
18+
'/gps/ene/gradient 0.',
19+
'/gps/ene/intercept 1.',
20+
'/gps/ang/type cos',
21+
'/gps/pos/type Plane',
22+
'/gps/pos/shape Square',
23+
'/gps/pos/centre 0 0 600 mm',
24+
'/gps/pos/halfx 100 mm',
25+
'/gps/pos/halfy 100 mm'
26+
]
27+
28+
ene_ang_pos_cmds_gamma = [
29+
'/gps/ene/type Lin',
30+
'/gps/ene/min 3 GeV',
31+
'/gps/ene/max 5 GeV',
32+
'/gps/ene/gradient 0.',
33+
'/gps/ene/intercept 1.',
34+
'/gps/ang/type cos',
35+
'/gps/pos/type Plane',
36+
'/gps/pos/shape Square',
37+
'/gps/pos/centre 0 0 600 mm',
38+
'/gps/pos/halfx 100 mm',
39+
'/gps/pos/halfy 100 mm'
40+
]
41+
42+
# One electron and one photon both with the above initial kinematics
43+
gps_cmds = (['/gps/particle e-'] +
44+
ene_ang_pos_cmds_ele +
45+
['/gps/source/add 1', '/gps/particle gamma'] +
46+
ene_ang_pos_cmds_gamma +
47+
['/gps/source/multiplevertex True'])
48+
49+
mySim.generators = [gen.gps('electron_photon', gps_cmds)]
50+
51+
p.sequence = [ mySim ]
52+
53+
##################################################################
54+
# Below should be the same for all sim scenarios
55+
56+
import os
57+
import sys
58+
59+
p.maxEvents = int(os.environ['LDMX_NUM_EVENTS'])
60+
p.run = int(os.environ['LDMX_RUN_NUMBER'])
61+
62+
p.histogramFile = f'hist.root'
63+
p.outputFiles = [f'events.root']
64+
65+
# Load the full tracking sequance
66+
from LDMX.Tracking import full_tracking_sequence
67+
68+
# Load the ECAL modules
69+
import LDMX.Ecal.EcalGeometry
70+
import LDMX.Ecal.ecal_hardcoded_conditions
71+
import LDMX.Ecal.digi as ecal_digi
72+
import LDMX.Ecal.vetos as ecal_vetos
73+
import LDMX.Ecal.ecalClusters as ecal_cluster
74+
75+
# Load the HCAL modules
76+
import LDMX.Hcal.HcalGeometry
77+
import LDMX.Hcal.hcal_hardcoded_conditions
78+
import LDMX.Hcal.digi as hcal_digi
79+
hcal_digi_reco = hcal_digi.HcalSimpleDigiAndRecProducer()
80+
81+
82+
# Load electron counting and trigger
83+
from LDMX.Recon.electronCounter import ElectronCounter
84+
from LDMX.Recon.simpleTrigger import TriggerProcessor
85+
86+
count = ElectronCounter(1,'ElectronCounter')
87+
count.input_pass_name = ''
88+
89+
trigger = TriggerProcessor('trigger', 8000.)
90+
91+
# Load the DQM modules
92+
from LDMX.DQM import dqm
93+
94+
# Define ecal veto and use tracking in it
95+
ecal_veto = ecal_vetos.EcalVetoProcessor()
96+
ecal_veto.recoil_from_tracking = False
97+
98+
ecal_mip = ecal_vetos.EcalMipProcessor()
99+
100+
ecal_veto_pnet = ecal_vetos.EcalPnetVetoProcessor()
101+
ecal_veto_pnet.recoil_from_tracking = False
102+
103+
# Load hcal veto
104+
import LDMX.Hcal.hcal as hcal
105+
hcal_veto = hcal.HcalVetoProcessor()
106+
107+
p.logger.termLevel = 1
108+
# Example to show trace level logging for trigger (only)
109+
p.logger.custom(trigger, level = -1)
110+
111+
p.sequence.extend([
112+
ecal_digi.EcalDigiProducer(),
113+
ecal_digi.EcalRecProducer(),
114+
ecal_cluster.EcalClusterProducer(),
115+
ecal_veto,
116+
ecal_mip,
117+
ecal_veto_pnet,
118+
hcal_digi_reco,
119+
hcal_veto,
120+
trigger,
121+
dqm.EcalClusterAnalyzer()
122+
])
123+
124+
p.skimDefaultIsDrop()
125+
p.skimConsider(trigger.instanceName)
126+
127+
almost_all_dqm = [dqm.sample_validation_dqm + dqm.ecal_dqm + dqm.hcal_dqm + dqm.trigger_dqm]
128+
129+
p.sequence.extend(*almost_all_dqm)

0 commit comments

Comments
 (0)