In order that package assembly works, the code needs to be relocatble
and any hints linking it to the original source need to be absent.
The changes here do exactely this. For rootcling the '-inlineInputHeader'
option is needed, otherwise the dictionary wants to load the header
file from the source destination which of course will fail when installing
the package on a machine without the source.
For the moment we keep to copies of it -- one for the use within the various
musrfit programs, one that can be used in user functions.
* musrt0 is now again activated in musrgui/musredit by default.
A workaround has been implemented where it is not tried any more to "directly
parse the file" but rather the file is read into a memory buffer which then
is parsed.
For further information, see MUSR-122.
* Fixed a linking problem when only shared libraries are built on Cygwin
(introduced with the split-off of libPUserFcnBase).
* musredit can now be built using Qt 4.5.3 of Cygwin 1.7---however, without online help
* FFTW3 threading in some user functions has been disabled
Obviously, there is a major problem when running musrgui/musredit with Cygwin on Windows7/64bit.
This has not been solved by this commit!
While doing that I realized that all LF functions within libLFRelaxation cannot be used at the moment
with a parallelized musrfit installation. Therefore, the built-in functions should be used for now.
One day this should be fixed ...
It should now be possible to build a static version of musrfit and shared libraries for the user functions.
This is needed on systems which do not support linking static libraries to shared ones (like Cygwin).
These changes still need to be tested on Cygwin, especially with user functions implementing the "global interface".
Therefore, a new library is built and the plugins link to that one.
This new library at the moment only contains the startup handler, however, finally it might serve as well for other routines
that are used by different plugins.
ROOT is anyway checking multiple extensions for dynamic libraries, therefore leaving them out yields platform-independent msr files.
- Minor changes in libTFitPofB
- Added a user function for Uemura's ZF/LF dynamical spin-glass relaxation function
see, e.g. Y.J. Uemura et al., Phys. Rev. B 31, 546-563 (1985)
or Y.J. Uemura, Hyperfine Interact. 8, 739 (1981)
This yields an overall Lorentzian field distribution with motional narrowing.
However, the present implementation is at best some design study:
The Lorentzian distribution of width "a" is modeled by Gaussian distributions of widths "sigma" from 0 to infinity.
Some "resonable cut-offs" would be: 0.1*a < sigma < 10000*a
Due to finite memory and computing power, in the present version these cut-offs are: 0.1*a < sigma < 40*a
This yields depolarization functions overall similar to those in Uemura's articles.
However, due to the low cut-off the first derivative of the depolarization function is zero in the limit t->0
(what should not be the case for a true Lorentzan).
Furthermore, the calculation is rather slow and the resulting functions should only be regarded as crude approximations.
Therefore, at the moment this is far from being of practical use in analyzing experimental data.
Until now the program terminated with a segmentation fault which was not very user friendly...
* Got rid of a strange construction in the TRIM.SP handler (vector<pair> -> map)
In order to enable building of the additional libraries supply the following options to the configure script:
--enable-BMWlibs (for libTFitPofB libLFRelaxation libGapIntegrals libCalcMeanFieldsLEM)
--enable-ASlibs (for libPNL_PippardFitter)
By default, both options are disabled.
At the moment I have tested it only in an SL5 32-bit environment.
Further tests are going to follow.
For a clean installation I suggest to remove any musrfit and plug-in installations before newly building musrfit.