protodune_optical_tutorial_zscan.fcl
Go to the documentation of this file.
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"
8 
9 
10 BEGIN_PROLOG
11 
12 standard_textfilegen:
13 {
14  module_type: "TextFileGen"
15  InputFileName: "vectors/zscan.vec" # name of file containing events in hepevt format to
16  # put into simb::MCTruth objects for use in LArSoft
17 }
18 
19 END_PROLOG
20 
21 
22 process_name: TextGen
23 
24 services:
25 {
26  # Load the service that manages root files for histograms.
27  TFileService: { fileName: "protodune_optical_example_zscan_hist.root" }
28  TimeTracker: {}
29  RandomNumberGenerator: {} #ART native random number generator
30  message: @local::standard_info
31  @table::protodune_simulation_services
32 }
33 
34 
35 #Start each new event with an empty event.
36 source:
37 {
38  module_type: EmptyEvent
39  timestampPlugin: { plugin_type: "GeneratedEventTimestamp" }
40  maxEvents: 20 # Number of events to create
41  firstRun: 1 # Run number to use for this file
42  firstEvent: 1 # number of first event in the file
43 }
44 
45 # Define and configure some modules to do work on each event.
46 # First modules are defined; they are scheduled later.
47 # Modules are grouped by type.
48 physics:
49 {
50 
51  producers:
52  {
53  generator: @local::standard_textfilegen
54  largeant: @local::dunefd_largeant
55  rns: { module_type: "RandomNumberSaver" }
56  }
57 
58  analyzers:
59  {
60  pmtresponse: @local::dunefd_simphotoncounter
61 
62 
63  # This name defines a job step below, and will appear as a directory
64  # in the output histogram file.
65  AnalysisExample:
66  {
67  # The "module_type" tells us which module to run. The name here
68  # matches the name supplied to DEFINE_ART_MODULE near the end of
69  # AnalysisExample_module.cc.
70 
71  module_type: "AnalysisExample"
72 
73  # The input parameters for our AnalysisExample module. Compare
74  # the names you see here with the reconfigure method in
75  # AnalysisExample.cxx. You will want to add/remove/rename the
76  # example parameters below to suit your task.
77 
78  # If you are reading any objects created by the simulation, then
79  # don't change the value of this parameter. This is the name of
80  # the 'producer' that ran the simulation module in a previous
81  # job. An example of a job file that runs the simulation is
82  # ${LARSIM_DIR}/job/prodsingle.fcl; look for "largeant:". It's
83  # unlikely that anyone would change the name of this producer.
84 
85  SimulationLabel: "largeant"
86 
87  # Hits can be created by more than one module in
88  # ${LARRECO_DIR}/source/HitFinder. For this example, I picked
89  # the one that's usually run first.
90 
91  HitLabel: "gaushit"
92 
93  # The same for clusters:
94 
95  ClusterLabel: "fuzzycluster"
96 
97  # In this example, which primary particle(s) we'll focus on in an event.
98  # PDG code 13 = mu-.
99  PDGcode: 13
100 
101  # dx used for the dE/dx calculation; units are cm.
102  BinSize: 0.3
103  }
104  }
105 
106 
107  #define the producer and filter modules for this path, order matters,
108  #filters reject all following items. see lines starting physics.producers below
109  # simulate: [ generator, largeant, daq, rns ]
110  simulate: [ generator, largeant, rns ]
111  analyzeIt: [ AnalysisExample, pmtresponse]
112 
113  #define the output stream, there could be more than one if using filters
114  stream1: [ out1 ]
115 
116  #trigger_paths is a keyword and contains the paths that modify the art::event,
117  #ie filters and producers
118  trigger_paths: [simulate]
119 
120  #end_paths is a keyword and contains the paths that do not modify the art::Event,
121  #ie analyzers and output streams. these all run simultaneously
122  end_paths: [analyzeIt, stream1]
123 }
124 
125 #block to define where the output goes. if you defined a filter in the physics
126 #block and put it in the trigger_paths then you need to put a SelectEvents: {SelectEvents: [XXX]}
127 #entry in the output stream you want those to go to, where XXX is the label of the filter module(s)
128 outputs:
129 {
130  out1:
131  {
132  module_type: RootOutput
133  fileName: "protodune_optical_example_zscan_gen.root" #default file name, can override from command line with -o or --output
134  }
135 }
136