1 #include "services_dune.fcl"
2 #include "singles_dune.fcl"
3 #include "largeantmodules_dune.fcl"
4 #include "detsimmodules_dune.fcl"
5 #include "mccheatermodules.fcl"
6 #include "photpropservices_dune.fcl"
7 #include "opticaldetectormodules_dune.fcl"
11 process_name: SinglesGen
15 # Load the service that manages root files for histograms.
16 TFileService: { fileName: "dune1x2x6_optical_tutorial_sim_hist.root" }
18 RandomNumberGenerator: {} #ART native random number generator
19 message: @local::standard_info
20 @table::dunefd_simulation_services
23 # DUNE FD 1x2x6 workspace geometry
24 services.Geometry: @local::dune10kt_1x2x6_geo
26 # Enable photon simulation for the 1x2x6 geometry.
27 # This is turned off by default in dunefd_simulation_services
28 # since the full FD cannot be simulated for photon signals.
30 services.PhotonVisibilityService: @local::dune10kt_1x2x6_photonvisibilityservice
31 services.LArG4Parameters.UseCustomPhysics: true
32 services.LArG4Parameters.EnabledPhysics: [ "Em",
40 "NeutronTrackingCut" ]
43 #Start each new event with an empty event.
46 module_type: EmptyEvent
47 timestampPlugin: { plugin_type: "GeneratedEventTimestamp" }
48 maxEvents: 1 # Number of events to create
49 firstRun: 1 # Run number to use for this file
50 firstEvent: 1 # number of first event in the file
53 # Define and configure some modules to do work on each event.
54 # First modules are defined; they are scheduled later.
55 # Modules are grouped by type.
61 generator: @local::dunefd_singlep
62 largeant: @local::dunefd_largeant
63 rns: { module_type: "RandomNumberSaver" }
68 pmtresponse: @local::dunefd_simphotoncounter
71 # This name defines a job step below, and will appear as a directory
72 # in the output histogram file.
75 # The "module_type" tells us which module to run. The name here
76 # matches the name supplied to DEFINE_ART_MODULE near the end of
77 # AnalysisExample_module.cc.
79 module_type: "AnalysisExample"
81 # The input parameters for our AnalysisExample module. Compare
82 # the names you see here with the reconfigure method in
83 # AnalysisExample.cxx. You will want to add/remove/rename the
84 # example parameters below to suit your task.
86 # If you are reading any objects created by the simulation, then
87 # don't change the value of this parameter. This is the name of
88 # the 'producer' that ran the simulation module in a previous
89 # job. An example of a job file that runs the simulation is
90 # ${LARSIM_DIR}/job/prodsingle.fcl; look for "largeant:". It's
91 # unlikely that anyone would change the name of this producer.
93 SimulationLabel: "largeant"
95 # Hits can be created by more than one module in
96 # ${LARRECO_DIR}/source/HitFinder. For this example, I picked
97 # the one that's usually run first.
101 # The same for clusters:
103 ClusterLabel: "fuzzycluster"
105 # In this example, which primary particle(s) we'll focus on in an event.
109 # dx used for the dE/dx calculation; units are cm.
115 #define the producer and filter modules for this path, order matters,
116 #filters reject all following items. see lines starting physics.producers below
117 # simulate: [ generator, largeant, daq, rns ]
118 simulate: [ generator, largeant, rns ]
119 analyzeIt: [ AnalysisExample, pmtresponse]
121 #define the output stream, there could be more than one if using filters
124 #trigger_paths is a keyword and contains the paths that modify the art::event,
125 #ie filters and producers
126 trigger_paths: [simulate]
128 #end_paths is a keyword and contains the paths that do not modify the art::Event,
129 #ie analyzers and output streams. these all run simultaneously
130 end_paths: [analyzeIt, stream1]
133 #block to define where the output goes. if you defined a filter in the physics
134 #block and put it in the trigger_paths then you need to put a SelectEvents: {SelectEvents: [XXX]}
135 #entry in the output stream you want those to go to, where XXX is the label of the filter module(s)
140 module_type: RootOutput
141 fileName: "dune1x2x6_optical_tutorial_sim_gen.root" #default file name, can override from command line with -o or --output
147 # Change the properties of the generated singles
150 physics.producers.generator.Theta0XZ: [ 0 ]
151 physics.producers.generator.Theta0YZ: [ 0 ]
152 #physics.producers.generator.SigmaThetaXZ: [ 0 ]
153 #physics.producers.generator.SigmaThetaYZ: [ 0 ]
155 physics.producers.generator.X0: [ 120.0 ] # 120 cm from wire plan
156 #physics.producers.generator.SigmaX: [ 1.0 ] # fraction with uniform
157 physics.producers.generator.Y0: [ 50.0 ] # slightly above center in y
158 #physics.producers.generator.SigmaY: [ 50.0 ] # fraction with uniform
159 physics.producers.generator.Z0: [ 0.0 ] # 1 m into the cryostat
160 #physics.producers.generator.SigmaZ: [ 0.0 ]
161 #physics.producers.generator.PDist: 0 # uniform
162 #physics.producers.generator.PosDist: 0 # uniform
163 #physics.producers.generator.ThetaDist: 0 # uniform