prodsingle_buildopticallibrary.fcl
Go to the documentation of this file.
1 #include "services_microboone.fcl"
2 #include "backtrackerservice.fcl"
3 #include "particleinventoryservice.fcl"
4 #include "singles.fcl"
5 #include "largeantmodules.fcl"
6 #include "detsimmodules.fcl"
7 #include "opticaldetectormodules.fcl"
8 #include "photpropservices.fcl"
9 #include "lightsource.fcl"
10 
11 
12 process_name: LibraryBuild
13 
14 
15 
16 
17 
18 services:
19 {
20  # Load the service that manages root files for histograms.
21  TFileService: { fileName: "PhotonLibraryFile.root" }
22  TimeTracker: {}
23  RandomNumberGenerator: {} #ART native random number generator
24  @table::microboone_simulation_services
25  BackTrackerService: @local::microboone_backtrackerservice # defined in backtrackerservice.fcl
26  ParticleInventoryService: @local::standard_particleinventoryservice # defined in backtrackerservice.fcl
27 }
28 
29 
30 services.PhotonVisibilityService: @local::standard_photonvisibilityservice_buildlib
31 services.LArFFT: ""
32 services.SignalShapingServiceMicroBooNE: ""
33 
34 #Start each new event with an empty event.
35 source:
36 {
37  module_type: EmptyEvent
38  timestampPlugin: { plugin_type: "GeneratedEventTimestamp" }
39  maxEvents: 2 # Number of events to create
40  firstRun: 1 # Run number to use for this file
41  firstEvent: 1 # number of first event in the file
42 }
43 
44 # Define and configure some modules to do work on each event.
45 # First modules are defined; they are scheduled later.
46 # Modules are grouped by type.
47 physics:
48 {
49 
50  producers:
51  {
52  generator: @local::microboone_lightsource
53  largeant: @local::microboone_largeant
54  }
55 
56  analyzers:
57  {
58  pmtresponse: @local::microboone_simphotoncounter
59  }
60 
61  #define the producer and filter modules for this path, order matters,
62  #filters reject all following items. see lines starting physics.producers below
63  simulate: [ generator, largeant ]
64  analyzeIt: [ pmtresponse ]
65  #define the output stream, there could be more than one if using filters
66  stream1: [ ]
67 
68  #trigger_paths is a keyword and contains the paths that modify the art::event,
69  #ie filters and producers
70  trigger_paths: [simulate]
71 
72  #end_paths is a keyword and contains the paths that do not modify the art::Event,
73  #ie analyzers and output streams. these all run simultaneously
74  end_paths: [analyzeIt, stream1]
75 }
76 
77 #block to define where the output goes. if you defined a filter in the physics
78 #block and put it in the trigger_paths then you need to put a SelectEvents: {SelectEvents: [XXX]}
79 #entry in the output stream you want those to go to, where XXX is the label of the filter module(s)
80 outputs:
81 {
82  out1:
83  {
84  module_type: RootOutput
85  fileName: "single_gen_uboone.root" #default file name, can override from command line with -o or --output
86  }
87 }
88 
89 # Begin optical specific parts:
90 
91 # set quantum efficiency supressed scint yield to 0.03 * 24000
92 services.DetectorPropertiesService.ScintYield: 72
93 
94 # enable optical physics in LArG4
95 services.LArG4Parameters.EnabledPhysics: [ "Em",
96  "Optical",
97  "SynchrotronAndGN",
98  "Ion",
99  "Hadron",
100  "Decay",
101  "HadronElastic",
102  "Stopping",
103  "NeutronTrackingCut" ]
104 
105 # enable this custom physics list
106 services.LArG4Parameters.UseCustomPhysics: true
107 
108 # do not allow lightsource to write output into root file
109 physics.producers.generator.FillTree: false
110 
111 
112 physics.analyzers.pmtresponse.MakeAllPhotonsTree: false
113 physics.analyzers.pmtresponse.MakeDetectedPhotonsTree: false
114 physics.analyzers.pmtresponse.MakeSimPhotonssTree: false
115 physics.analyzers.pmtresponse.MakeEventsTree: false