This was originally a fork of Marco's original NuMIFlux repo for flugg files, combined with Krishan's modifications for dk2nu files. However, it turns out that as I progressively keep making severe changes (including overhauling the code structure), this is worth detaching and maintaining separately. All credit to them and other predecessors for the main meat of the code.
- Various simplifications mainly
- Plan to improve some more areas to ensure easy comparisons
- Currently,
FluggFlux.cc
looks at FLUGG ntuples andDk2NuFlux.cc
looks at Dk2Nu ntuples - Check
<flux_type>_example.py
inexamples/
directory for example usage
After setting up uboonecode
or optionally only the dependencies (see below)
source setup_numiana.sh
make all
If you just want to work with individual <flux_type>
s where <flux_type>
is either dk2nu
or flugg
, one can do
make base
make <flux_type>
To start afresh, as usual one can do
make clean
flugg
just needsroot
basicallydk2nu
pulls in additionallyppfx
,boost
,dk2nu
-
flugg
: originally available on bluearc- FHC :
/nusoft/data/flux/blackbird-numix/flugg_mn000z200i_rp11_lowth_pnut_f11f093bbird_target/root
- RHC :
/nusoft/data/flux/blackbird-numix/flugg_mn000z-200i_rp11_lowth_pnut_f11f093bbird_target/root
- Also copied to
/exp/uboone/data/users/bnayak/ppfx/flugg_studies/flugg_files
/pnfs/uboone/persistent/users/bnayak/flux_files/flugg_files
(dcache)
- See wiki for more information
- FHC :
-
dk2nu
:- old (bugged) :
/cvmfs/uboone.osgstorage.org/stash/uboonebeam/numi_dk2nu_zero_threshold
- new (various bugfixed) :
/pnfs/uboone/persistent/users/bnayak/flux_files
- old (bugged) :
- Usage for
jobsub/submit_grid.sh
. Arguments-p
: tar and ship local ppfx installation ($PPFX_DIR
must be set and pointing to local ppfx installation)-s
: set seed for PPFX universes, pulls PPFX config fromdk2nu/ppfx/inputs_ubnumi_multisim.xml
- multisim xml file runs 100 universes currently, modify to run your own set
-n
: number of jobs to run (max 999 jobs for grid script reasons injobsub/numiana_job.sh
)-f
: number of files per job to run (default 1)-i
: folder containing inputdk2nu
files. The submission takes the firstn*f
files and runsf
file(s) per job-o
: job output directory
- Runs
jobsub/numiana_job.sh
on the grid which in turn runs the python macrojobsub/run_ppfxunivs.py
Common output interface, currently its replicated across both<flux_type>
classes- Parallel Processing
Atleast for FLUGG, this should be easy- Check
examples/flugg_parallel.sh -h
- Check
Can do for Dk2Nu as well but PPFX has a bunch of static instances that is likely not thread safe- just submit jobs lol..
Parallelism for analyzing output TTrees from this code- Check
examples/analyzer_example.C
for analyzing the outputs - This uses some newer experimental ROOT features like
RDataFrame
andRVecOps
. - I tested this on
root 6.26
, your mileage may vary based on your version - With a good SSD and 15 cores, I'm now able to produce 100 flux universes from 50M neutrinos in about 90s
- Check