All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
services_icarus_simulation.fcl
Go to the documentation of this file.
1 #
2 # File: services_icarus_simulation.fcl
3 # Purpose: Configuration presets for simulation jobs in ICARUS.
4 #
5 #
6 # This file defines a set of service configurations for ICARUS simulation.
7 # Simulation consists of 3 steps:
8 #
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)
12 #
13 # Fhicl configurations for each simulation steps above are:
14 #
15 # (0) icarus_gen_services
16 # (1) icarus_g4_dark_services
17 # (2) icarus_detsim_dark_services
18 #
19 # (all) icarus_simulation_dark_services ... include all services in (0), (1), and (2).
20 #
21 # Above configurations do not include scintillation light or optical detector
22 # readout simulation. If you wish to include those, use followings:
23 #
24 # (1*) icarus_g4_services
25 # (2*) icarus_detsim_services
26 #
27 # (all*) icarus_simulation_services, icarus_legacy_services_v08_50_00
28 #
29 #
30 # Avaialble presets:
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
34 #
35 
42 
43 BEGIN_PROLOG
44 
45 #
46 # First define services w/o optical simulation
47 #
48 
49 # Define icarus_gen_services ... (0)
50 icarus_gen_services: {
51 
52  @table::icarus_common_services
53 
54 }
55 
56 
57 # this is mostly a helper
58 icarus_simulation_basic_services: {
59 
60  @table::icarus_common_services
61 
62  LArG4Parameters: @local::icarus_largeantparameters
63  LArVoxelCalculator: @local::icarus_larvoxelcalculator
64  SpaceChargeService: @local::icarus_spacecharge
65 
66 } # icarus_simulation_basic_services
67 
68 
69 # Define icarus_g4_dark_services ... (1)
70 icarus_g4_dark_services: {
71 
72  @table::icarus_simulation_basic_services
73 
74  MagneticField: @local::no_mag_larsoft
75 
76 } # icarus_g4_dark_services
77 
78 
79 # Define icarus_detsim_dark_services ... (2)
80 icarus_detsim_dark_services: {
81 
82  # (it turns out they are the same ones needed for the inverse operation...)
83  @table::icarus_wirecalibration_services
84 
85 } # icarus_detsim_dark_services
86 
87 
88 # Define icarus_simulation_dark ... (all) = (0) + (1) + (2)
89 icarus_simulation_dark_services: {
90 
91  @table::icarus_simulation_basic_services
92 
93  # SignalShapingServiceICARUS: @local::icarus_signalshapingservice
94  # DetPedestalService: @local::icarus_detpedestalservice
95  # ChannelStatusService: @local::icarus_channelstatus_service
96  # ElectronicsCalibService: @local::icarus_electronicscalib_service
97 
98 } # icarus_simulation_dark_services
99 
100 
101 #
102 # Define optical simulation included ones
103 #
104 
105 # Define icarus_g4_services ... (1*)
106 icarus_g4_services: {
107 
108  @table::icarus_g4_dark_services
109 
110  PhotonVisibilityService: @local::icarus_photonvisibilityservice
111 
112 } # icarus_g4_services
113 
114 
115 # Define icarus_detsim_services ... (2*)
116 icarus_detsim_services: {
117 
118  @table::icarus_detsim_dark_services
119 
120  # PmtGainService: @local::icarus_pmtgain_service
121 
122 } # icarus_detsim_services
123 
124 
125 # Define icarus_simulation_services ... (all*) = (1*) + (2) + (2*)
126 icarus_simulation_services: {
127 
128  @table::icarus_simulation_dark_services
129 
130  PhotonVisibilityService: @local::icarus_photonvisibilityservice
131  # PmtGainService: @local::icarus_pmtgain_service
132 
133 } # icarus_simulation_services
134 
135 
136 ################################################################################
137 
138 END_PROLOG
BEGIN_PROLOG icarus_largeantparameters