Allow control of the specific plugin library paths
Add ability to control the specific plugin library paths for analyses to be loaded from, via new programmatic set and get methods on AnalysisLoader and a new RIVET_ANALYSIS_PLUGINS environment variable. Mainly intended for use on big HPC MPI systems where duplicated filesystem walking is a really bad idea.
Appears to work as intended:
$ rivet --list-analyses -l AnalysisLoader=DEBUG
Rivet.AnalysisLoader: DEBUG Using plugin libraries from analysis-path search = [./RivetAnalysis.so, /home/andy/envs/mcenv-rivet31/lib/Rivet/RivetTristanAnalyses.so, /home/andy/envs/mcenv-rivet31/lib/Rivet/RivetBABARAnalyses.so, /home/andy/envs/mcenv-rivet31/lib/Rivet/RivetCESRAnalyses.so, /home/andy/envs/mcenv-rivet31/lib/Rivet/RivetBESAnalyses.so, /home/andy/envs/mcenv-rivet31/lib/Rivet/RivetCDFAnalyses.so, /home/andy/envs/mcenv-rivet31/lib/Rivet/RivetTOTEMAnalyses.so, /home/andy/envs/mcenv-rivet31/lib/Rivet/RivetSPSAnalyses.so, /home/andy/envs/mcenv-rivet31/lib/Rivet/RivetFrascatiAnalyses.so, /home/andy/envs/mcenv-rivet31/lib/Rivet/RivetDORISAnalyses.so, /home/andy/envs/mcenv-rivet31/lib/Rivet/RivetMiscAnalyses.so, /home/andy/envs/mcenv-rivet31/lib/Rivet/RivetHERAAnalyses.so, /home/andy/envs/mcenv-rivet31/lib/Rivet/RivetLHCfAnalyses.so, /home/andy/envs/mcenv-rivet31/lib/Rivet/RivetCMSAnalyses.so, /home/andy/envs/mcenv-rivet31/lib/Rivet/RivetOrsayAnalyses.so, /home/andy/envs/mcenv-rivet31/lib/Rivet/RivetLHCbAnalyses.so, /home/andy/envs/mcenv-rivet31/lib/Rivet/RivetMCAnalyses.so, /home/andy/envs/mcenv-rivet31/lib/Rivet/RivetRHICAnalyses.so, /home/andy/envs/mcenv-rivet31/lib/Rivet/RivetLEPAnalyses.so, /home/andy/envs/mcenv-rivet31/lib/Rivet/RivetATLASAnalyses.so, /home/andy/envs/mcenv-rivet31/lib/Rivet/RivetNovosibirskAnalyses.so, /home/andy/envs/mcenv-rivet31/lib/Rivet/RivetD0Analyses.so, /home/andy/envs/mcenv-rivet31/lib/Rivet/RivetBELLEAnalyses.so, /home/andy/envs/mcenv-rivet31/lib/Rivet/RivetSLACAnalyses.so, /home/andy/envs/mcenv-rivet31/lib/Rivet/RivetPetraAnalyses.so, /home/andy/envs/mcenv-rivet31/lib/Rivet/RivetALICEAnalyses.so]
A2_2014_I1297221 Kinematic distributions in the decay η − > π⁰γγ
A2_2017_I1486671 Form factors for the decays ω − > π⁰e⁺e⁻ and η − > γe⁺e⁻
... usual huge list
Then set the variable and (much faster):
$ export RIVET_ANALYSIS_PLUGINS=`ls $HOME/Envs/mcenv-rivet31/lib/Rivet/RivetS*Analyses.so`
$ rivet --list-analyses -l AnalysisLoader=DEBUG
Rivet.AnalysisLoader: DEBUG Using plugin libraries from $RIVET_ANALYSIS_PLUGINS = [/home/andy/Envs/mcenv-rivet31/lib/Rivet/RivetSLACAnalyses.so, /home/andy/Envs/mcenv-rivet31/lib/Rivet/RivetSPSAnalyses.so]
CRYSTAL_BALL_1986_I238081 Measurement of R and D^(*) production for energies between 3.67 and 4.5 GeV.
CRYSTAL_BALL_1990_I294419 Measurement of R for energies between 5 and 7.4 GeV
... etc., only listing plugins in the SLAC and SPS plugins
Edited by Andy Buckley