2 # File: services_icarus_simulation.fcl
3 # Purpose: Configuration presets for simulation jobs in ICARUS.
6 # This file defines a set of service configurations for ICARUS simulation.
7 # Simulation consists of 3 steps:
9 # (0) event generator ... making a particle to inject into G4
10 # (1) Geant4 ............ G4 particle tracking simulation in the detector
11 # (2) readout ........... Readout electronics simulation (make waveforms)
13 # Fhicl configurations for each simulation steps above are:
15 # (0) icarus_gen_services
16 # (1) icarus_g4_dark_services
17 # (2) icarus_detsim_dark_services
19 # (all) icarus_simulation_dark_services ... include all services in (0), (1), and (2).
21 # Above configurations do not include scintillation light or optical detector
22 # readout simulation. If you wish to include those, use followings:
24 # (1*) icarus_g4_services
25 # (2*) icarus_detsim_services
27 # (all*) icarus_simulation_services, icarus_legacy_services_v08_50_00
31 # * `icarus_gen_service` (internally used): basic services plus magnetic field
32 # * `icarus_g4_dark_services`: G4 simulation services without optical system
33 # * `icarus_detsim_dark_services`: digitization services without optical system
46 # First define services w/o optical simulation
49 # Define icarus_gen_services ... (0)
50 icarus_gen_services: {
52 @table::icarus_common_services
57 # this is mostly a helper
58 icarus_simulation_basic_services: {
60 @table::icarus_common_services
63 LArVoxelCalculator: @local::icarus_larvoxelcalculator
64 SpaceChargeService: @local::icarus_spacecharge
66 } # icarus_simulation_basic_services
69 # Define icarus_g4_dark_services ... (1)
70 icarus_g4_dark_services: {
72 @table::icarus_simulation_basic_services
74 MagneticField: @local::no_mag_larsoft
76 } # icarus_g4_dark_services
79 # Define icarus_detsim_dark_services ... (2)
80 icarus_detsim_dark_services: {
82 # (it turns out they are the same ones needed for the inverse operation...)
83 @table::icarus_wirecalibration_services
85 } # icarus_detsim_dark_services
88 # Define icarus_simulation_dark ... (all) = (0) + (1) + (2)
89 icarus_simulation_dark_services: {
91 @table::icarus_simulation_basic_services
93 # SignalShapingServiceICARUS: @local::icarus_signalshapingservice
94 # DetPedestalService: @local::icarus_detpedestalservice
95 # ChannelStatusService: @local::icarus_channelstatus_service
96 # ElectronicsCalibService: @local::icarus_electronicscalib_service
98 } # icarus_simulation_dark_services
102 # Define optical simulation included ones
105 # Define icarus_g4_services ... (1*)
106 icarus_g4_services: {
108 @table::icarus_g4_dark_services
110 PhotonVisibilityService: @local::icarus_photonvisibilityservice
112 } # icarus_g4_services
115 # Define icarus_detsim_services ... (2*)
116 icarus_detsim_services: {
118 @table::icarus_detsim_dark_services
120 # PmtGainService: @local::icarus_pmtgain_service
122 } # icarus_detsim_services
125 # Define icarus_simulation_services ... (all*) = (1*) + (2) + (2*)
126 icarus_simulation_services: {
128 @table::icarus_simulation_dark_services
130 PhotonVisibilityService: @local::icarus_photonvisibilityservice
131 # PmtGainService: @local::icarus_pmtgain_service
133 } # icarus_simulation_services
136 ################################################################################
BEGIN_PROLOG icarus_largeantparameters