All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
photonlibrary_builder_icarus.fcl
Go to the documentation of this file.
1 #
2 # File: photonlibrary_builder_icarus.fcl
3 # Purpose: main configuration file for simulation of scintillation visibility
4 # Author: Gianluca Petrillo (petrillo@slac.stanford.edu)
5 # Date: July 16, 2020
6 # Version: 1.0
7 #
8 # This configuration is base for the simulation of a few voxels of the
9 # photon visibility lookup table ("photon library") for ICARUS.
10 #
11 #
12 # This is the merge and optimization of `icarus_prodsingle_buildopticallibrary.fcl`
13 # from `icaruscode` `v08_57_00` plus `prova_source.fcl`.
14 #
15 #
16 
17 
18 # services
20 
21 # modules
24 #include "emptyevent_icarus.fcl"
26 
27 
28 process_name: LibraryBuild
29 
30 
31 ################################################################################
32 ### service configuration
33 ################################################################################
34 
35 services: {
36 
37  @table::icarus_g4_services
38 
39  # events are generated anew each time: default per-event policy is ineffective
40  NuRandomService: @local::random_NuRandomService
41 
42  OpDetResponse: @local::standard_opdetresponse
43 
44  SpaceChargeService: @erase
45 
46 } # services
47 
48 
49 services.TFileService.fileName: "Supplemental-photonlibrary_builder_icarus_%tc-%p.root"
50 
51 services.Geometry.DisableWiresInG4: false # we need to account for wire shadow
52 
53 services.LArG4Parameters: { # customization
54 
55  @table::services.LArG4Parameters
56 
57  # enable this custom LArG4 physics list
58  # with optical physics instead of fast scintillation
59  UseCustomPhysics: true
61  "Em",
62  "Optical", # <== this is the important one!
63  "SynchrotronAndGN",
64  "Ion",
65  "Hadron",
66  "Decay",
67  "HadronElastic",
68  "Stopping",
69  "NeutronTrackingCut"
70  ]
71 
72  # store only the count of photons per channel, not the single photons
73  UseLitePhotons: true
74 
75  # avoid unnecessary steps
76  DisableWireplanes: true
77  FillSimEnergyDeposits: false
78  NoElectronPropagation: false
79 
80 } # services.LArG4Parameters
81 
82 
83 services.PhotonVisibilityService: {
84  LibraryBuildJob: true
85  DoNotLoadLibrary: true
86 
87  #
88  # to avoid getting weird voxel size (for human readability),
89  # we hard-code the voxel grid;
90  # the library is generated only in the first cryostat
91  # (in the simulation the two cryostats are identical anyway);
92  # the volume of the cryostat C:0 according to icaruscode v08_57_00 was:
93  #
94  # (-420.43,-233.61,-1003.95) -- (-20,193.21,1003.95) cm
95  #
96  # This is roughly a (400 x 430 x 2010) = 345.72 m^3.
97  # Running a Monte Carlo "integration" (`photonlibrary_volumetest_icarus.fcl`)
98  # revealed that some 5-cm voxels at the borders where consistently not liquid
99  # argon and therefore we discount them here (3+3, 4+5 and 4+4).
100  # This turns out in going from 2765760 to 2245012 voxels (-20%!).
101  # The library generated on August 2018 covered a volume of 267.54 m^3.
102  #
103  UseCryoBoundary: false
104  XMin: -405.0 # cm (August 2018: -366.0 cm)
105  XMax: -35.0 # cm (August 2018: -66.0 cm)
106  YMin: -215.0 # cm (August 2018: -210.0 cm)
107  YMax: 170.0 # cm (August 2018: 180.0 cm)
108  ZMin: -985.0 # cm (August 2018: -995.0 cm)
109  ZMax: 985.0 # cm (August 2018: 965.0 cm)
110 
111  NX: 74 # 5 cm voxels filling 370 cm
112  NY: 77 # 5 cm voxels filling 385 cm
113  NZ: 394 # 5 cm voxels filling 1970 cm
114 
115 } # services.PhotonVisibilityService
116 
117 # for photon library generation we do not include prescale
118 # (is prescale included at all except in fast optical simulation?)
119 services.LArPropertiesService.ScintPreScale: 1.0
120 
121 
122 ################################################################################
123 ### workflow configuration
124 ################################################################################
125 source: { module_type: EmptyEvent }
126 
127 physics: {
128 
129  producers: {
130  # --------------------------------------------------------------------------
131  generator: {
132  module_type: "LightSource"
133 
134  # mode: scan a volume voxel by voxel;
135  # use the whole volume from PhotonVisibilityService,
136  # and the voxelization defined therein
137  SourceMode: 1 # kSCAN
138  N: 1000000
139  FirstVoxel: @nil # voxel range must be overridden
140  LastVoxel: @nil
141  UseCustomRegion: false # use volume from PhotonVisibilityService
142 
143  # emission point distribution: uniform in the whole selected volume,
144  # but only from where liquid argon is present
145  PosDist: 0 # kUNIF
146  SelectMaterials: [ "LAr" ]
147  NMaxFactor: 20 # never generate more that 20 times the required photons
148 
149  # photon energy distriibution: Gaussian around time distribution:
150  # fixed at 127.8 nm wavelength
151  PDist: 1 # kGAUS
152  P: 9.70 # average photon energy [eV]
153  SigmaP: 0.25 # photon energy spread (RMS) [eV]
154 
155  # time distribution: fixed at 0 (i.e. we don't use or care)
156  TDist: 0 # kUNIF
157  T0: 0.0
158  SigmaT: 0.0
159 
160  # other options
161  FillTree: false # no additional output please
162 
163  } # generator
164  # --------------------------------------------------------------------------
165 
166  largeant: @local::icarus_largeant
167 
168  # --------------------------------------------------------------------------
169 
170  } # physics
171 
172  analyzers: {
173  pmtresponse: {
174  module_type: SimPhotonCounter
175  GeneratorModule: "generator"
176  Verbosity: 0 # quiet!
177  MakeAllPhotonsTree: false
178  MakeDetectedPhotonsTree: false
179  MakeOpDetsTree: false
180  MakeOpDetEventsTree: false
181  MakeLightAnalysisTree: false
182  }
183  } # analyzers
184 
187 
188 } # physics
189 
190 
191 #
192 # Optical specific module configuration:
193 #
194 
195 # we do not save, nor create, MCParticle objects
196 physics.producers.largeant.MakeMCParticles: false
197 
BEGIN_PROLOG triggeremu_data_config_icarus settings PMTADCthresholds sequence::icarus_stage0_multiTPC_TPC physics sequence::icarus_stage0_EastHits_TPC physics sequence::icarus_stage0_WestHits_TPC physics producers purityana0 caloskimCalorimetryCryoE physics caloskimCalorimetryCryoW physics sequence::physics pathW services
process_name physics producers generator PDist
process_name can override from command line with o or output photon
Definition: runPID.fcl:28
process_name largeant analyzeIt
process_name opdaq physics producers generator PosDist
Definition: gen_protons.fcl:45
process_name drop raw::OpDetWaveforms_DataApr2016RecoStage1_saturation_ * physics
process_name opdaq physics producers generator physics producers generator physics producers generator physics producers generator physics producers generator physics producers generator physics producers generator physics producers generator physics producers generator physics producers generator SigmaP
Definition: gen_protons.fcl:45
do source
stream1 stream1 can override from command line with o or output services LArPropertiesService NeutronTrackingCut services LArG4Parameters UseCustomPhysics
#define the
process_name larg4outtime largeant
standard_singlep gaussian distribution ie ie ie gaussian TDist
Definition: multigen.fcl:18
process_name physics producers generator physics producers generator physics producers generator SigmaT
physics simulate
then echo Cowardly refusing to create a new FHiCL file with the same name as the original one('${SourceName}')." >&2 exit 1 fi echo "'$
BEGIN_PROLOG triggeremu_data_config_icarus settings PMTADCthresholds sequence::icarus_stage0_multiTPC_TPC physics sequence::icarus_stage0_EastHits_TPC physics sequence::icarus_stage0_WestHits_TPC physics producers purityana0 module_type
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG simSlidingORM6O6 effSlidingORW output
process_name largeant stream1 can override from command line with o or output physics producers generator N
process_name analyzers
process_name largeant stream1 can override from command line with o or output physics producers generator physics producers generator services LArG4Parameters EnabledPhysics
process_name rns pmtresponse
services LArG4Parameters UseLitePhotons
process_name opdaq physics producers generator physics producers generator physics producers generator physics producers generator physics producers generator physics producers generator physics producers generator physics producers generator T0
Definition: gen_protons.fcl:45
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG process_name