genie_dune.fcl
Go to the documentation of this file.
1 #include "genie.fcl"
2 
3 BEGIN_PROLOG
4 
5 # beam neutrino configurations
6 
7 dunefd_genie: @local::standard_genie
8 dunefd_genie.BeamName: "lbnf"
9 dunefd_genie.EventsPerSpill: 1
10 dunefd_genie.POTPerSpill: 0
11 dunefd_genie.GlobalTimeOffset: 0
12 dunefd_genie.RandomTimeOffset: 0
13 dunefd_genie.EventGeneratorList: "Default"
14 
15 dunefd_genie_hist: @local::dunefd_genie
16 dunefd_genie_hist.FluxType: "histogram"
17 dunefd_genie_hist.FluxFiles: ["g4lbne_v3r2p4b_FHC_FD_RIK.root"]
18 dunefd_genie_hist.FluxCopyMethod: "DIRECT"
19 dunefd_genie_hist.FluxSearchPaths: "/cvmfs/dune.osgstorage.org/pnfs/fnal.gov/usr/dune/persistent/stash/TaskForce_Flux/GenieHistFluxFiles/"
20 dunefd_genie_hist.BeamCenter: [0., 0., -1.]
21 dunefd_genie_hist.BeamDirection: [0, 0.101, 0.995] # beam angle is 101mrad
22 dunefd_genie_hist.BeamRadius: 7. #sqrt(pow(3.6,2)+pow(6,2)
23 dunefd_genie_hist.TopVolume: "volCryostat"
24 
25 dunefddphase_genie_hist: @local::dunefd_genie_hist
26 dunefddphase_genie_hist.BeamCenter: [0., 0., -1.]
27 dunefddphase_genie_hist.BeamDirection: [0.101, 0, 0.995] # beam angle is 101mrad
28 dunefddphase_genie_hist.BeamRadius: 7.
29 dunefddphase_genie_hist.FiducialCut: "mbox:-610,-160,-10,610,160,610"
30 
31 dunefd_genie_simple_neutrino: @local::dunefd_genie
32 dunefd_genie_simple_neutrino.TopVolume: "volDetEnclosure"
33 
34 dune35t_genie_simple_neutrino: @local::dunefd_genie
35 dune35t_genie_simple_neutrino.TopVolume: "volCryostat"
36 
37 dune35t_genie_hist: @local::dunefd_genie
38 dune35t_genie_hist.BeamCenter: [100., 50., 0.]
39 dune35t_genie_hist.BeamDirection: [0., 0., 0.]
40 
41 dune_fd_genie_nu_simple_flux_workspace_window: @local::dunefd_genie
42 dune_fd_genie_nu_simple_flux_workspace_window.FluxType: "simple_flux"
43 dune_fd_genie_nu_simple_flux_workspace_window.FluxSearchPaths: "/cvmfs/dune.osgstorage.org/pnfs/fnal.gov/usr/dune/persistent/stash/TaskForce_Flux/ref_01/neutrino/gsimple/far/nominal/"
44 dune_fd_genie_nu_simple_flux_workspace_window.FluxFiles: ["gsimple_LBNE-FarDet_Workspace_g4lbne_v3r3p9_QGSP_BERT_Nominal_neutrino_*root"]
45 dune_fd_genie_nu_simple_flux_workspace_window.FluxCopyMethod: "DIRECT"
46 dune_fd_genie_nu_simple_flux_workspace_window.TopVolume: "volCryostat"
47 
48 dune_fd_genie_nu_simple_flux_workspace_window_rotated_tpc: @local::dune_fd_genie_nu_simple_flux_workspace_window
49 dune_fd_genie_nu_simple_flux_workspace_window_rotated_tpc.FluxSearchPaths: "/cvmfs/dune.osgstorage.org/pnfs/fnal.gov/usr/dune/persistent/stash/TaskForce_Flux/ref_01/neutrino/gsimple/far/windowRotated10DegreesAroundY/"
50 dune_fd_genie_nu_simple_flux_workspace_window_rotated_tpc.FluxFiles: ["gsimple_LBNE-FarDet_Workspace_Rotated_Window_g4lbne_v3r3p9_QGSP_BERT_Nominal_neutrino_*.root"]
51 
52 dune_fd_genie_anu_simple_flux_workspace_window: @local::dune_fd_genie_nu_simple_flux_workspace_window
53 dune_fd_genie_anu_simple_flux_workspace_window.FluxSearchPaths: "/cvmfs/dune.osgstorage.org/pnfs/fnal.gov/usr/dune/persistent/stash/TaskForce_Flux/ref_01/antineutrino/gsimple/far/nominal/"
54 dune_fd_genie_anu_simple_flux_workspace_window.FluxFiles: ["gsimple_LBNE-FarDet_Workspace_g4lbne_v3r3p9_QGSP_BERT_Nominal_antineutrino_*.root"]
55 
56 dune_fd_genie_anu_simple_flux_workspace_window_rotated_tpc: @local::dune_fd_genie_nu_simple_flux_workspace_window
57 dune_fd_genie_anu_simple_flux_workspace_window_rotated_tpc.FluxSearchPaths: "/cvmfs/dune.osgstorage.org/pnfs/fnal.gov/usr/dune/persistent/stash/TaskForce_Flux/ref_01/antineutrino/gsimple/far/windowRotated10DegreesAroundY/"
58 dune_fd_genie_anu_simple_flux_workspace_window_rotated_tpc.FluxFiles: ["gsimple_LBNE-FarDet_Workspace_Rotated_Window_g4lbne_v3r3p9_QGSP_BERT_Nominal_antineutrino_*.root"]
59 
60 #Configurations for 1x2x6 geometry
61 dune_fd_genie_nu_simple_flux_1x2x6_window: @local::dunefd_genie
62 dune_fd_genie_nu_simple_flux_1x2x6_window.FiducialCut: "mbox:-380,-620,-20,380,620,1420"
63 dune_fd_genie_nu_simple_flux_1x2x6_window.FluxType: "simple_flux"
64 dune_fd_genie_nu_simple_flux_1x2x6_window.FluxSearchPaths: "/cvmfs/dune.osgstorage.org/pnfs/fnal.gov/usr/dune/persistent/stash/Flux/g4lbne/v3r5p4/QGSP_BERT/OptimizedEngineeredNov2017/neutrino/dune10kt_horizdrift_1x2x6/"
65 dune_fd_genie_nu_simple_flux_1x2x6_window.FluxFiles: ["gsimple_dune10kt_v1_1x2x6_g4lbne_v3r5p4_QGSP_BERT_OptimizedEngineeredNov2017_neutrino_*root"]
66 dune_fd_genie_nu_simple_flux_1x2x6_window.FluxCopyMethod: "DIRECT"
67 dune_fd_genie_nu_simple_flux_1x2x6_window.TopVolume: "volCryostat"
68 
69 dune_fd_genie_nu_simple_flux_1x2x6_window_rotated_tpc: @local::dune_fd_genie_nu_simple_flux_1x2x6_window
70 dune_fd_genie_nu_simple_flux_1x2x6_window_rotated_tpc.FluxSearchPaths: "/cvmfs/dune.osgstorage.org/pnfs/fnal.gov/usr/dune/persistent/stash/TaskForce_Flux/opt_03/neutrino/gsimple/far/Rotate90Degrees/"
71 dune_fd_genie_nu_simple_flux_1x2x6_window_rotated_tpc.FluxFiles: ["gsimple_dune10kt_v1_1x2x6_Rotate90Degrees_g4lbne_v3r4p2_QGSP_BERT_CP_run15_12388_80GeV_neutrino_*root"]
72 
73 dune_fd_genie_anu_simple_flux_1x2x6_window: @local::dune_fd_genie_nu_simple_flux_1x2x6_window
74 dune_fd_genie_anu_simple_flux_1x2x6_window.FluxSearchPaths: "/cvmfs/dune.osgstorage.org/pnfs/fnal.gov/usr/dune/persistent/stash/Flux/g4lbne/v3r5p4/QGSP_BERT/OptimizedEngineeredNov2017/antineutrino/dune10kt_horizdrift_1x2x6/"
75 dune_fd_genie_anu_simple_flux_1x2x6_window.FluxFiles: ["gsimple_dune10kt_v1_1x2x6_g4lbne_v3r5p4_QGSP_BERT_OptimizedEngineeredNov2017_antineutrino*root"]
76 
77 dune_fd_genie_anu_simple_flux_1x2x6_window_rotated_tpc: @local::dune_fd_genie_nu_simple_flux_1x2x6_window
78 dune_fd_genie_anu_simple_flux_1x2x6_window_rotated_tpc.FluxSearchPaths: "/cvmfs/dune.osgstorage.org/pnfs/fnal.gov/usr/dune/persistent/stash/TaskForce_Flux/opt_03/antineutrino/gsimple/far/Rotate90Degrees/"
79 dune_fd_genie_anu_simple_flux_1x2x6_window_rotated_tpc.FluxFiles: ["gsimple_dune10kt_v1_1x2x6_Rotate90Degrees_g4lbne_v3r4p2_QGSP_BERT_CP_run15_12388_80GeV_antineutrino_*root"]
80 
81 dunefdvd_1x6x6_genie_lbnf_dk2nu: {
82  @table::dune_fd_genie_nu_simple_flux_1x2x6_window
83  FiducialCut: "mbox: -350, -530, -20, 350, 530, 920"
84  FluxType: "dk2nu"
85  DetectorLocation: "dunevd10kt_v1_1x6x6"
86  FluxSearchPaths: "/cvmfs/dune.osgstorage.org/pnfs/fnal.gov/usr/dune/persistent/stash/Flux/g4lbne/v3r5p4/QGSP_BERT/OptimizedEngineeredNov2017/neutrino/flux/"
87  FluxFiles: ["g4lbne_v3r5p4_QGSP_BERT_OptimizedEngineeredNov2017_neutrino*.dk2nu.root"]
88 }
89 
90 dunefdvd_1x8x14_genie_lbnf_dk2nu: {
91  @table::dunefdvd_1x6x6_genie_lbnf_dk2nu
92  FiducialCut: "mbox: -370, -750, -30, 370, 750, 2150"
93  DetectorLocation: "dunevd10kt_v1_1x8x14"
94 }
95 
96 dunefdvd_1x8x6_genie_lbnf_dk2nu: {
97  @table::dunefdvd_1x6x6_genie_lbnf_dk2nu
98  FiducialCut: "mbox: -370, -750, -30, 370, 750, 920"
99  DetectorLocation: "dunevd10kt_v1_1x8x6"
100 }
101 
102 dunefdvd_1x8x6_genie_anu_lbnf_dk2nu_fluxpaths: {
103  FluxSearchPaths: "/cvmfs/dune.osgstorage.org/pnfs/fnal.gov/usr/dune/persistent/stash/Flux/g4lbne/v3r5p4/QGSP_BERT/OptimizedEngineeredNov2017/antineutrino/flux/"
104  FluxFiles: ["g4lbne_v3r5p4_QGSP_BERT_OptimizedEngineeredNov2017_antineutrino*.dk2nu.root"]
105 }
106 
107 #atmospheric neutrino configurations
108 
109 # this configuration is tuned on the full geometry (10 kton) of the far detector:
110 dune_fd_genie_atmo: {
111  @table::standard_genie_atmo_flux # inherit from the standard configuration
112 
113  BeamName: "atm"
114  GlobalTimeOffset: 0
115  RandomTimeOffset: 0
116  EventGeneratorList: "Default"
117 
118  #
119  # now fix the flux window parameters; from GENIE manual:
120  #
121  # "For a given direction, determined by the zenith angle and the azimuth angle,
122  # the flux generation surface is a circular area, with radius RT,
123  # which is tangent to a sphere of radius RL centered at the coordinate system origin."
124  #
125  # NOTE: in `GENIEHelper` (nutools `v2_26_00`) `BeamCenter` is not used
126  # for the atmospheric neutrino flux (probably, because GENIE does not know
127  # whet to do with it).
128  #
129  # Rl is how far from the origin the circular flux window is;
130  # in GENIE style, this is meters; and it should be large enough to include
131  # all the active volume of the detector (in principle, even more).
132  # Now, this radius and center of the circle are pivoting around the origin
133  # of the coordinate system, which in DUNE FD is on one of the faces
134  # (the upstream face of the neutrino beam).
135  # Unfortunately there are like 60 more meters of detector on one side of
136  # that origin, which means we need a large radius Rl (more than 60 meters,
137  # and in fact closer to the size of the diagonal, 5 (+) 5 (+) 60 m),
138  # and the radius of the circle must be large enough that when the circle is
139  # facing down (and since the origin is on a side of the detector,
140  # half of the circle does not see any detector at all), that is 60 meters
141  # of radius. Now, art:
142  #
143  # _. _________________________________________________
144  # /| /! /|
145  # 15m / ! / |
146  # / / ! / |
147  # _L /________________________________________________/ | y
148  # ^ | ! | | ^
149  # | | * ! | | | z
150  # | | !............................................|...| .---->
151  # 14m | , | / /
152  # | | , | / L x
153  # v |, |/
154  # _ '________________________________________________/
155  #
156  # |<-- - - - - - - - - - 62 m - - - - - - - - - -->|
157  #
158  # <========= LBNF is there; beam neutrinos go: -------->
159  #
160  # The origin of the DUNE coordinate system, which is the pivot GENIE rotates
161  # the flux window around, is marked by (*).
162  #
163  Rl: 70 # meters
164  # Rt is the radius of the circular flux window; again, should be large enough
165  # that its "shadow" covers the detector
166  Rt: 70 # meters
167  # given that we picked a window specific to a volume, it makes sense to
168  # specify the volume here as well (the dimensions are in the cartoon above):
169  TopVolume: "volCryostat"
170 
171 
172  # now, about the orientation:
173  # the flux is defined and interpreted by GENIE in a geographical reference
174  # frame where z is orthogonal to earth surface pointing to the zenith,
175  # x points toward south and y toward east (right-handed coordinate system).
176  # DUNE geometry points z along the LBNF beam, and y in the plane containing z
177  # and the vertical (see the axis triad in the cartoon above).
178  # The flux needs to be rotated in that system, and GENIEHelper allows us to
179  # express a rotation as in: what are the coordinates of the new axes,
180  # expressed in the old reference frame.
181  # Here we are rotating the geographical local frame ("old") into DUNE frame
182  # ("new"). The rotation is complicate, and here we take heavy shortcuts:
183  # * DUNE y axis should be the direction of the vertical (which makes the
184  # beam come with an angle); so this is effectively the geographic z axis
185  # * DUNE z axis roughly points to Fermilab; since Fermilab is east-south-east
186  # of DUNE, the angle to Fermilab from the geographical x axis as defined
187  # above is positive and close to 90 degrees (in fact, roughly 81 degrees);
188  # but z verse is the opposite, from Fermilab (LBNF) to DUNE FD,
189  # effectively pointing WNW.
190  # * DUNE x axis will have enough good taste to adapt and make the frame
191  # right-handed; this would mean pointing SSW.
192  # My shortcuts so far: z becomes from ESE becomes just E, and# x axis goes
193  # south. Defining phi as the angle from south, measured toward west
194  # (counterclockwise), which is the geographical convention ("old"), this is
195  # equivalent to Fermilab being at phi = pi/2 (again, z points backward).
196  #
197  # To be tested: complete rotation is:
198  # [
199  # +sin(phi), -cos(phi), +0.000,
200  # +0.000, +0.000, +1.000, # new y is old z
201  # -cos(phi), -sin(phi), +0.000 # new z
202  # ]
203  #
204  # A rough estimation of the actual phi is +81 degrees, or +1.414 rad.
205  # Finally, note that the Bartol flux the most standard producton picks
206  # (from http://www-pnp.physics.ox.ac.uk/~barr/fluxfiles)
207  # have no azimut parametrization, so phi does not really matter yet.
208  # Honda flux, on the other hand, does have such parametrization.
209  #
210  FluxRotCfg: "newxyz"
211  FluxRotValues: [
212  +1.0, +0.0, +0.0, # new x axis in old coordinates: be nice and fix things (ends up the same)
213  +0.0, +0.0, +1.0, # new y axis in old coordinates: vertical
214  +0.0, -1.0, +0.0 # new z axis in old coordinates: westward
215  ]
216  #
217  # A more complete rotation is available as
218  # `dune_fd_atmo_flux_rotation_precise` below.
219  #
220  # NOTE: these rotations will need to be removed or fixed if feature request
221  # 21185 (https://cdcvs.fnal.gov/redmine/issues/21185) is implemented.
222  #
223 
224 } # dune_fd_genie_atmo
225 
226 
227 #
228 # the following snipper can be added to an existing configuration
229 # (including the ones with `dune_fd_genie_atmo` above) to test a
230 # more precise rotation which correctly aligns the detector to
231 # the geographic coordinates (see issue #20034).
232 # Usage: plug it at the end of the generator configuration:
233 #
234 # physics: {
235 # producers: {
236 # generator: {
237 # ...
238 # @table::dune_fd_atmo_flux_rotation_precise
239 # }
240 # }
241 # }
242 #
243 # or overwrite the existing configuration like in:
244 #
245 # physics.producers.generator: {
246 # @table::physics.producers.generator
247 # @table::dune_fd_atmo_flux_rotation_precise
248 # }
249 #
250 # WARNING: this configuration was, at the time it was added
251 # (October 29, 2018), UNTESTED.
252 #
253 dune_fd_atmo_flux_rotation_precise: {
254  # the details of this rotation are explained in `dune_fd_genie_atmo`;
255  # the imparted rotation is phi = 1.414 rad (81.016 degrees)
256  # from southward direction counterclockwise
257  # (and rounded to 4 significant digits).
258  FluxRotCfg: "newxyz"
259  FluxRotValues: [
260  +0.9877, -0.1564, +0.0000, # new x axis in old coordinates: be nice and fix things (ends up the same)
261  +0.0000, +0.0000, +1.0000, # new y axis in old coordinates: vertical
262  -0.1564, -0.9877, +0.0000 # new z axis in old coordinates: away from Batavia, IL
263  ]
264 
265 } # dune_fd_atmo_flux_rotation_precise
266 
267 
268 dune_fd_genie_atmo_min_flux: @local::dune_fd_genie_atmo
269 dune_fd_genie_atmo_min_flux.TopVolume: "volCryostat"
270 dune_fd_genie_atmo_min_flux.FluxType: "atmo_BARTOL"
271 dune_fd_genie_atmo_min_flux.FluxSearchPaths: "/cvmfs/dune.osgstorage.org/pnfs/fnal.gov/usr/dune/persistent/stash/TaskForce_Flux/atmos/Bartol/"
272 dune_fd_genie_atmo_min_flux.FluxFiles: ["fmin20_0401z.sou_nue","fmin20_0401z.sou_num","fmin20_0401z.sou_nbe","fmin20_0401z.sou_nbm"]
273 #dune_fd_genie_atmo_min_flux.FluxSearchPaths: "/cvmfs/dune.osgstorage.org/pnfs/fnal.gov/usr/dune/persistent/stash/TaskForce_Flux/atmos/Bartol/"
274 #dune_fd_genie_atmo_min_flux.FluxFiles: ["fmin10_0401z.sou_nue","fmin10_0401z.sou_num","fmin10_0401z.sou_nbe","fmin10_0401z.sou_nbm"]
275 dune_fd_genie_atmo_min_flux.FluxCopyMethod: "DIRECT"
276 
277 dune_fd_genie_atmo_max_flux: @local::dune_fd_genie_atmo
278 dune_fd_genie_atmo_max_flux.TopVolume: "volCryostat"
279 dune_fd_genie_atmo_max_flux.FluxType: "atmo_BARTOL"
280 dune_fd_genie_atmo_max_flux.FluxSearchPaths: "/cvmfs/dune.osgstorage.org/pnfs/fnal.gov/usr/dune/persistent/stash/TaskForce_Flux/atmos/Bartol/"
281 dune_fd_genie_atmo_max_flux.FluxFiles: ["fmax20_0401z.sou_nue","fmax20_0401z.sou_num","fmax20_0401z.sou_nbe","fmax20_0401z.sou_nbm"]
282 #dune_fd_genie_atmo_max_flux.FluxSearchPaths: "/cvmfs/dune.osgstorage.org/pnfs/fnal.gov/usr/dune/persistent/stash/TaskForce_Flux/atmos/Bartol/"
283 #dune_fd_genie_atmo_max_flux.FluxFiles: ["fmax10_0401z.sou_nue","fmax10_0401z.sou_num","fmax10_0401z.sou_nbe","fmax10_0401z.sou_nbm"]
284 dune_fd_genie_atmo_max_flux.FluxCopyMethod: "DIRECT"
285 
286 dune_fd_genie_atmo_max_hondaflux: @local::dune_fd_genie_atmo
287 dune_fd_genie_atmo_max_hondaflux.TopVolume: "volCryostat"
288 dune_fd_genie_atmo_max_hondaflux.FluxType: "atmo_HONDA"
289 dune_fd_genie_atmo_max_hondaflux.FluxSearchPaths: "/cvmfs/dune.osgstorage.org/pnfs/fnal.gov/usr/dune/persistent/stash/TaskForce_Flux/atmos/Honda/"
290 dune_fd_genie_atmo_max_hondaflux.FluxFiles: ["hms-ally-20-12-solmax.d","hms-ally-20-12-solmax.d","hms-ally-20-12-solmax.d","hms-ally-20-12-solmax.d"]
291 dune_fd_genie_atmo_max_hondaflux.FluxCopyMethod: "DIRECT"
292 
293 dune_fd_genie_atmo_min_hondaflux: @local::dune_fd_genie_atmo_max_hondaflux
294 dune_fd_genie_atmo_min_hondaflux.FluxFiles: ["hms-ally-20-12-solmin.d","hms-ally-20-12-solmin.d","hms-ally-20-12-solmin.d","hms-ally-20-12-solmin.d"]
295 
296 END_PROLOG