Skip to content

Allow control of the specific plugin library paths

Andy Buckley requested to merge analysis-loader-nosearch into release-3-1-x

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

Merge request reports