|
| 1 | +# |
| 2 | +# File: genie_beam_settings.fcl |
| 3 | +# Purpose: GENIE event generator settings for BNB neutrino interactions |
| 4 | +# Author: Gianluca Petrillo (petrillo@slac.stanford.edu) |
| 5 | +# Date: December 4, 2024 |
| 6 | +# Version: 1.0 |
| 7 | +# |
| 8 | +# This file includes configurations for the beam time structure (in GenieHelper |
| 9 | +# format) and for the `GENIEGen` LArSoft module interface to GENIE generator. |
| 10 | +# |
| 11 | +# A "default" configuration is provided which is supposed to be the current one, |
| 12 | +# and others can be added for variations or as legacy or period-specific |
| 13 | +# configurations. |
| 14 | +# |
| 15 | +# A template for an actual GENIEGen configuration is: |
| 16 | +# |
| 17 | +# physics.producers.generator: { |
| 18 | +# @table::sbn_genie_BNB_base # from genie_beam_settings.fcl |
| 19 | +# |
| 20 | +# # flux configuration |
| 21 | +# [...] |
| 22 | +# |
| 23 | +# TopVolume: [...] |
| 24 | +# |
| 25 | +# } |
| 26 | +# |
| 27 | +# |
| 28 | +# Changes |
| 29 | +# -------- |
| 30 | +# |
| 31 | +# 20241204 (petrillo@slac.stanford.edu) [v1.0] |
| 32 | +# original version, inspired by SBND `genie_sbnd.fcl` v09_93_01 |
| 33 | +# |
| 34 | + |
| 35 | + |
| 36 | +BEGIN_PROLOG |
| 37 | + |
| 38 | +################################################################################ |
| 39 | +### beam time structure |
| 40 | +### |
| 41 | +# |
| 42 | +# Explanation of the SpillTimeConfig configuration parameter |
| 43 | +# ----------------------------------------------------------- |
| 44 | +# |
| 45 | +# This documentation reflects the configuration string of |
| 46 | +# `evgb::EvtTimeFNALBeam` class in `nugen` `v1_00_01` (`nutools` `v3_02_00`). |
| 47 | +# It is parsed by `evgb::EvtTimeFNALBeam::Config()` (the first word, |
| 48 | +# representing the name of the algorithm, is stripped by the caller, |
| 49 | +# `evgb::GENIEHelper`). |
| 50 | +# The configuration string is, well, a single string, sequence of |
| 51 | +# case-insensitive words separated by blanks (space, tabulation or new line) |
| 52 | +# or selected punctuation (comma, equal sign and more). |
| 53 | +# Parameters are parsed in sequence and the latter overrides the previous. |
| 54 | +# Parameters may appear in any order, except for the algorithm name which must |
| 55 | +# be the first. |
| 56 | +# |
| 57 | +# * `evgb::EvtTimeFNALBeam`: the algorithm name; `evgb::EvtTimeFNALBeam` |
| 58 | +# describes a beam spill structured in a contiguous sequence of "batches", |
| 59 | +# each one with a substructure of "buckets". Some batches can be "disabled", |
| 60 | +# and some of the buckets at the end of each batch may be empty. |
| 61 | +# Each bucket has a Gaussian time distribution. See the content of |
| 62 | +# `nugen/EventGeneratorBase/GENIE/EvtTime*.h` for other possible algorithms. |
| 63 | +# * `intentsity <INT 1> <INT 2> ... <INT M>` describes the relative intensity |
| 64 | +# of the batches in the spill, and at the same time it defines the number |
| 65 | +# _M_ of batches in the spill. A standard setting is to have all the batches |
| 66 | +# (6 for NuMI, just 1 for BnB) set to `1.0`; `GENIEHelper` will take care of |
| 67 | +# normalizing the numbers to a sum of 1. |
| 68 | +# * `sigma` or `FWHM` [ns]: the RMS or full width at half maximum peak of the |
| 69 | +# time structure of a single bucket. The time distribution is always |
| 70 | +# Gaussian (if specified as FWHM, it is converted to RMS for a Gaussian |
| 71 | +# distribution). |
| 72 | +# * `dtbucket` [ns]: the time between the peak of two consecutive buckets. |
| 73 | +# The default value (18.83 ns) assumes an extraction rate of 53.103 MHz, |
| 74 | +# which is NuMI; BNB is 52.8 MHz. |
| 75 | +# * `nperbatch`, `nfilled`: the number of buckets in each spill, and the number |
| 76 | +# of those which have actual protons in them. The default values include |
| 77 | +# 84 buckets, of which 81 are filled and the remaining 3, always at the end |
| 78 | +# of the spill ("notch") are empty. |
| 79 | +# * `global` [ns]: offset of the start of the spill (i.e. the time of the peak |
| 80 | +# of the first bucket of the first batch) with respect to the start |
| 81 | +# of the generator time scale (see `detinfo::DetectorClocks`). |
| 82 | +# * `Booster`, `NuMI`: presets including all the above in hard-coded fashion; |
| 83 | +# avoid using these to have better control and awareness of the settings. |
| 84 | +# |
| 85 | + |
| 86 | +### = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = |
| 87 | +### BNB beam time structure |
| 88 | +### |
| 89 | +# |
| 90 | +# Parameters for BNB Fiscal Year 2024 runs: |
| 91 | +# - 84 buckets, the first 81 of which filled |
| 92 | +# - bucket step: 18.936 ns (measured by MicroBooNE and ICARUS, SBN DocDB 34793) |
| 93 | +# - width: Gaussian with sigma 1.308 ns (?) |
| 94 | +# - no global time offset |
| 95 | +# |
| 96 | +beam_structure_BNB_2024: { |
| 97 | + |
| 98 | + # enable bunched structure |
| 99 | + AddGenieVtxTime: true |
| 100 | + |
| 101 | + # structure parameters |
| 102 | + SpillTimeConfig: " |
| 103 | + evgb::EvtTimeFNALBeam booster |
| 104 | + nperbatch 84 |
| 105 | + nfilled 81 |
| 106 | + intensity 1.0 |
| 107 | + dtbucket 18.936 |
| 108 | + sigma 1.308 |
| 109 | + global 0.0 |
| 110 | + " |
| 111 | + |
| 112 | + GlobalTimeOffset: 0 # presumably [ns] |
| 113 | + |
| 114 | +} # beam_structure_BNB_2024 |
| 115 | + |
| 116 | + |
| 117 | +# |
| 118 | +# "default" |
| 119 | +# |
| 120 | +beam_structure_BNB: @local::beam_structure_BNB_2024 |
| 121 | + |
| 122 | + |
| 123 | + |
| 124 | +### - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
| 125 | +### beam parameters: BNB |
| 126 | +### |
| 127 | +# |
| 128 | +# Parameters for BNB Fiscal Year 2024 runs. |
| 129 | +# |
| 130 | +beam_parameters_BNB_2024: { |
| 131 | + |
| 132 | + # beam structure |
| 133 | + @table::beam_structure_BNB_2024 |
| 134 | + |
| 135 | + BeamName: "booster" |
| 136 | + |
| 137 | +} # beam_parameters_BNB_2024 |
| 138 | + |
| 139 | + |
| 140 | +# |
| 141 | +# "default" |
| 142 | +# |
| 143 | +beam_parameters_BNB: @local::beam_parameters_BNB_2024 |
| 144 | + |
| 145 | + |
| 146 | + |
| 147 | +### = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = |
| 148 | +### NuMI beam time structure |
| 149 | +### |
| 150 | +# |
| 151 | +# Parameters for NuMI Fiscal Year 2024 runs: |
| 152 | +# - 84 buckets, the first 81 of which filled, for six equally intense batches |
| 153 | +# - bucket step: 18.831 ns (measured by ICARUS, SBN DocDB 34988) |
| 154 | +# - width: Gaussian with sigma 0.75 ns (?) |
| 155 | +# - no global time offset |
| 156 | +# |
| 157 | +beam_structure_NuMI_2024: { |
| 158 | + |
| 159 | + # enable bunched structure |
| 160 | + AddGenieVtxTime: true |
| 161 | + |
| 162 | + # structure parameters |
| 163 | + SpillTimeConfig: " |
| 164 | + evgb::EvtTimeFNALBeam numi |
| 165 | + nperbatch 84 |
| 166 | + nfilled 81 |
| 167 | + intensity 1.0 1.0 1.0 1.0 1.0 1.0 |
| 168 | + dtbucket 18.8313277969 |
| 169 | + sigma 0.75 |
| 170 | + global 0.0 |
| 171 | + " |
| 172 | + |
| 173 | + GlobalTimeOffset: 0 # presumably [ns] |
| 174 | + |
| 175 | +} # beam_structure_NuMI_2024 |
| 176 | + |
| 177 | + |
| 178 | +# |
| 179 | +# "default" |
| 180 | +# |
| 181 | +beam_structure_NuMI: @local::beam_structure_NuMI_2024 |
| 182 | + |
| 183 | + |
| 184 | + |
| 185 | +### - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
| 186 | +### beam parameters: NuMI |
| 187 | +### |
| 188 | +# |
| 189 | +# Parameters for NuMI Fiscal Year 2024 runs. |
| 190 | +# |
| 191 | +beam_parameters_NuMI_2024: { |
| 192 | + |
| 193 | + # beam structure |
| 194 | + @table::beam_structure_NuMI_2024 |
| 195 | + |
| 196 | + BeamName: "booster" |
| 197 | + |
| 198 | +} # beam_parameters_NuMI_2024 |
| 199 | + |
| 200 | + |
| 201 | +# |
| 202 | +# "default" |
| 203 | +# |
| 204 | +beam_parameters_NuMI: @local::beam_parameters_NuMI_2024 |
| 205 | + |
| 206 | + |
| 207 | + |
| 208 | +################################################################################ |
| 209 | +### |
| 210 | +### Base configuration for SBN GENIE generations |
| 211 | +### |
| 212 | +# |
| 213 | +# This configuration includes: |
| 214 | +# * default GENIE generator and tunes from environment variable |
| 215 | +# * BNB beam with 5x10^12 PoT/spill, allowing multiple interactions per spill |
| 216 | +# and skipping events which would have zero interactions |
| 217 | +# * the default BNB time structure (bunched) |
| 218 | +# * all neutrino flavours as from the input flux, with no mixing |
| 219 | +# * the reduced ("small") set of neutrino-nucleus cross section splines |
| 220 | +# * large generation geometry (volDetEnclosure) |
| 221 | +# |
| 222 | +# Users must specify/override: |
| 223 | +# * the neutrino flux configuration |
| 224 | +# * the simulation volume (`TopVolume` parameter) |
| 225 | +# |
| 226 | +sbn_genie_BNB_base: { |
| 227 | + |
| 228 | + module_type: "GENIEGen" |
| 229 | + |
| 230 | + ### |
| 231 | + ### beam parameters |
| 232 | + ### |
| 233 | + |
| 234 | + @table::beam_parameters_BNB |
| 235 | + |
| 236 | + |
| 237 | + ### |
| 238 | + ### neutrino flux parameters |
| 239 | + ### |
| 240 | + |
| 241 | + DetectorLocation: "MINOS-NearDet" # location name for flux window |
| 242 | + |
| 243 | + # |
| 244 | + # no flavour mixing by default |
| 245 | + # |
| 246 | + GenFlavors: [ 12, 14, -12, -14 ] |
| 247 | + MixerBaseline: 0 |
| 248 | + MixerConfig: "none" |
| 249 | + |
| 250 | + |
| 251 | + ### |
| 252 | + ### interaction configuration |
| 253 | + ### |
| 254 | + # |
| 255 | + # GENIE event generator list and tune (the latter is left to the default, |
| 256 | + # which is to take it from GENIE_XSEC_TUNE environment variable) |
| 257 | + EventGeneratorList: "Default" |
| 258 | + |
| 259 | + XSecTable: "gxspl-FNALsmall.xml" |
| 260 | + |
| 261 | + # |
| 262 | + # Generation volume:# |
| 263 | + # no user-defined fiducial cut at GENIE level |
| 264 | + # (see e.g. https://code-doc.larsoft.org/docs/latest/html/classevgb_1_1GENIEHelper.html#a1c11b9039f4d0db1bc673b2ac390392e) |
| 265 | + # |
| 266 | + FiducialCut: "none" |
| 267 | + |
| 268 | + # generate neutrino interactions over the whole `volDetEnclosure` volume |
| 269 | + TopVolume: "volDetEnclosure" |
| 270 | + |
| 271 | + # |
| 272 | + # GenieHelper can either generate a fixed number of interactions per event |
| 273 | + # (misnamed `EventsPerSpill`) or stochastically extract how many interactions |
| 274 | + # per event using the number of protons on target per event (POTPerSpill); |
| 275 | + # one and only one of them can be non-zero. |
| 276 | + # |
| 277 | + # Here we choose 5 x 10^12 protons on target per spill, which is the nominal |
| 278 | + # intensity used in the SBN proposal paper but has never been really met |
| 279 | + # in reality, especially when running in parallel with NuMI |
| 280 | + # (average being closer to 3.5 or 4 x 10^12). |
| 281 | + # |
| 282 | + # We can also keep events that happen to have no neutrino interaction at all; |
| 283 | + # this may be useful when generating overlaid neutrino + cosmic background |
| 284 | + # data-like samples, but for the far detector this is a very inefficient |
| 285 | + # generation; here we disable it. |
| 286 | + # |
| 287 | + EventsPerSpill: @erase |
| 288 | + POTPerSpill: 5e12 |
| 289 | + PassEmptySpills: false # required |
| 290 | + |
| 291 | + |
| 292 | + ### |
| 293 | + ### module behaviour |
| 294 | + ### |
| 295 | + # |
| 296 | + # verbosity controls |
| 297 | + # |
| 298 | + ProductionMode: "yes" |
| 299 | + DebugFlags: 0 |
| 300 | + GHepPrintLevel: -1 # -1 = no print, ... 13 = plenty |
| 301 | + |
| 302 | + # |
| 303 | + # mandatory, unused parameters |
| 304 | + # |
| 305 | + # this would customise the vertex position plot range |
| 306 | + DefinedVtxHistRange: false |
| 307 | + VtxPosHistRange: [] |
| 308 | + # this is deprecated but still mandatory |
| 309 | + Environment: [] |
| 310 | + # these would be used if we had a histogram-based flux |
| 311 | + BeamCenter: [ 0, 0, 0 ] |
| 312 | + BeamDirection: [ 0, 0, 1 ] |
| 313 | + |
| 314 | +} # sbn_genie_BNB_base |
| 315 | + |
| 316 | + |
| 317 | +################################################################################ |
| 318 | +### |
| 319 | +### Base configuration for NuMI GENIE generations |
| 320 | +### |
| 321 | +# |
| 322 | +# This configuration includes: |
| 323 | +# * same settings as for BNB |
| 324 | +# * NuMI beam with 4x10^13 PoT/spill |
| 325 | +# * the default NuMI time structure (bunched) |
| 326 | +# |
| 327 | +# Users must specify/override: |
| 328 | +# * the neutrino flux configuration |
| 329 | +# * possibly the simulation volume (`TopVolume` parameter) |
| 330 | +# |
| 331 | +sbn_genie_NuMI_base: { |
| 332 | + @table::sbn_genie_BNB_base |
| 333 | + |
| 334 | + ### |
| 335 | + ### beam parameters |
| 336 | + ### |
| 337 | + |
| 338 | + @table::beam_parameters_NuMI |
| 339 | + |
| 340 | + # |
| 341 | + # Beam intensity: we choose 6 x 10^13 protons on target per spill, which was |
| 342 | + # the nominal intensity used when the SBN proposal paper was redacted, |
| 343 | + # but in reality we observed the typical intensity to be closer to 4 x 10^13. |
| 344 | + # |
| 345 | + POTPerSpill: 6e13 |
| 346 | + |
| 347 | +} # sbn_genie_NuMI_base |
| 348 | + |
| 349 | + |
| 350 | +################################################################################ |
| 351 | + |
| 352 | + |
| 353 | +END_PROLOG |
0 commit comments