Studying Physics Sensitivity of Different Beam Options¶
People using the beam simulation frequently want to study physics sensitivities of various beam options. Below is some documentation on how to do this.
Using the MGT setup developed by the LBLPWG¶
Jeremy Hewes created code for running the CDR MGT/GLoBES setup given input neutrino and antineutrino GLoBES files (which are made automatically assuming you use the scripts in ProductionScripts folder of g4lbnf to generate fluxes). His work is documented in this talk: https://indico.fnal.gov/conferenceOtherViews.py?view=standard&confId=11392. Below are instructions for using a version of the code that was installed by Laura Fields and modified to accomodate beam designs with varying proton momentum (and thus varying expected POT per year) and to deal with the /lbne/ -> /dune/ naming transition. Futher documention of mgt (including syntax for input parameters) is available here: https://cdcvs.fnal.gov/redmine/projects/lbne-lblpwgtools/wiki/MGT_Documentation.
In Nov 2020, this setup was updated to reflect a GLoBES setup that approximates physics sensitivities reported in the DUNE TDR physics volume. The TDR sensitivies used a complex, non-GLoBES analysis, but this configuration uses similar efficiencies, smearing, cross sections, etc, and yields similar sensitivity curves.
Running MGT on the beam configurations you want to consider¶
- Generate fluxes for neutrino mode and antineutrino mode configurations for all of the beams you want study using the instructions in the "Generating and using large flux samples at Fermilab" section of the g4lbnf readme
- Make sure you know the proton momentum used to generate each beam you want to study. This can be found in the g4lbnf macro you used to generate the flux, in the line that begins "/LBNE/primary/protonMomentum". If there is no such line, the proton momentum was 120 GeV
- Check out the HEAD of g4lbnf and/or do a 'git pull' from an already checked out copy of g4lbnf. You should see a BeamSimStudies/Sensitivities folder.
- Setup dependencies needed for mgt:
- Run "RunRunSensitivityTDR.py" for each of the beams you want to consider, passing in the name of the macro, the g4lbnf version that was used to generate the flux, the proton momentum, the userid of the person who generated the flux, and the physics study you want to do. Here is an example of how to run CP sensitivity versus delta_CP for a variety of proton beam momenta:
python RunRunSensitivityTDR.py Jan2020_OptEngNov2017_150cmTargetCone v3r5p7 120 ljf26 1 python RunRunSensitivityTDR.py Jan2020_OptEngNov2017_150cmTargetCone_110 v3r5p7 110 ljf26 1 python RunRunSensitivityTDR.py Jan2020_OptEngNov2017_150cmTargetCone_100 v3r5p7 100 ljf26 1 python RunRunSensitivityTDR.py Jan2020_OptEngNov2017_150cmTargetCone_90 v3r5p7 90 ljf26 1 python RunRunSensitivityTDR.py Jan2020_OptEngNov2017_150cmTargetCone_80 v3r5p7 80 ljf26 1 python RunRunSensitivityTDR.py Jan2020_OptEngNov2017_150cmTargetCone_70 v3r5p7 70 ljf26 1 python RunRunSensitivityTDR.py Jan2020_OptEngNov2017_150cmTargetCone_60 v3r5p7 60 ljf26 1 python RunRunSensitivityTDR.py Jan2020_OptEngNov2017_150cmTargetCone_50 v3r5p7 50 ljf26 1 python RunRunSensitivityTDR.py Jan2020_OptEngNov2017_150cmTargetCone_40 v3r5p7 40 ljf26 1 python RunRunSensitivityTDR.py Jan2020_OptEngNov2017_150cmTargetCone_30 v3r5p7 30 ljf26 1 python RunRunSensitivityTDR.py Jan2020_OptEngNov2017_150cmTargetCone_20 v3r5p7 20 ljf26 1
The physics study options are:
- 1 = CP violation sensitivity vs delta-cp for a 7 year exposure
- 2 = Mass hierarchy sensitivity vs delta-cp for a 7 year exposure
- 3 = delta-cp resolution vs delta-cp
- 4 = CP violation sensitivity vs exposure
- 5 = Mass hierarchy sensitivity vs exposure
- 6 = Theta_23 resolution vs exposure
- 7 = DeltaM_31 resolution vs exposure
- 8 = Theta_13 resolution vs exposure
- 9 = CP resolution versus exposure
If you aren't sure which physics study to run, #1 - CP sensitivity vs delta-cp is a good starting point, as it is quick (~1 min/ beam config) and an important DUNE physics plot.
Note that RunRunSensitivityTDR.py is a very short python script that composes the file paths created by ProductionsScripts, and then passes them to Jeremy's RunSenstivityTDR.sh. If you didn't use ProductionScripts, you can pass your flux files directly to RunSensitivity.sh (see RunRunSensitivityTDR.py for an example of how to do this).
- The above should create text files in your /dune/data/users/<you>/SensitivitiesTDR directory containing the output of the sensitivity calculation.
See plotSensitivity.py for an example of how to plot results. It requires that study option 2 has been run on the configurations above, and produces 7-year CP sensitivity versus delta_CP plots:
And also a 1 D plot of the maximum of that distribution for each configuration:
And the 75th percentile of those distributions: