Changeset View
Changeset View
Standalone View
Standalone View
README.md
- This file was moved from doc/README.
///////////////////////////////////////////////////////// | # Laura++ README | ||||
/// /// | |||||
/// README of the Laura++ package /// | |||||
/// /// | |||||
/// Contact: Tom Latham (laura@projects.hepforge.org) /// | |||||
/// /// | |||||
///////////////////////////////////////////////////////// | |||||
Introduction | |||||
------------ | |||||
## Introduction | |||||
This package is a C++ development of LAURA, the FORTRAN "Likelihood Analysis | This package is a C++ development of LAURA, the FORTRAN "Likelihood Analysis | ||||
Unofficial RooFitDalitz Alternative" code written by Paul Harrison for | Unofficial RooFitDalitz Alternative" code written by Paul Harrison for | ||||
performing Dalitz plot analyses of 3-body decays of B mesons at BaBar. | performing Dalitz plot analyses of 3-body decays of B mesons at BaBar. | ||||
This C++ version was originally developed by John Back and is now mainly | This C++ version was originally developed by John Back and is now mainly | ||||
developed by Tom Latham with continuting contributions from John Back and | developed by Tom Latham with continuting contributions from John Back and | ||||
others. | others. | ||||
Structure of the Package | ## Structure of the Package | ||||
------------------------ | |||||
The package consists of the following directories and files: | The package consists of the following directories and files: | ||||
. | ``` | ||||
├── Doxyfile - configuration file for building Doxygen documentation | laura.git | ||||
├── Makefile - GNU make configuration file for building the Laura++ (shared) library | ├── CMakeLists.txt - the top-level CMake configuration file | ||||
├── doc - directory containing documentation-related files | ├── LICENSE-2.0 - the Apache License, Version 2.0 | ||||
│!! ├── LICENSE-2.0 - the Apache License, Version 2.0 | ├── README.md - this README file | ||||
│!! ├── README - this README file | ├── cmake - directory containing custom CMake modules and templates | ||||
│!! ├── mainpage.dox - front page of the Doxygen documents | │!! ├── Modules | ||||
│!! └── release.notes - history of commits to the package | │!! │!! ├── LauraCompilerFlags.cmake | ||||
│!! │!! └── LauraExternalDependencies.cmake | |||||
│!! └── Templates | |||||
│!! └── LauraConfig.cmake.in | |||||
├── doc - directory related to building Doxygen documentation | |||||
│!! ├── CMakeLists.txt - CMake configuration file | |||||
│!! ├── Doxyfile.in - Doxygen configuration file | |||||
│!! ├── mainpage.dox.in - front page of the Doxygen documents | |||||
│!! └── ReleaseNotes.md - history of commits to the package | |||||
├── examples - directory containing code examples and their associated data files and job scripts | ├── examples - directory containing code examples and their associated data files and job scripts | ||||
│!! ├── B3piKMNoAdler.dat | │!! ├── B3piKMNoAdler.dat | ||||
│!! ├── B3piKMPoles.dat | │!! ├── B3piKMPoles.dat | ||||
│!! ├── B3piKMSVPs.dat | │!! ├── B3piKMSVPs.dat | ||||
│!! ├── B3piKMatrixCoeff.dat | │!! ├── B3piKMatrixCoeff.dat | ||||
│!! ├── B3piKMatrixMassProj.cc | │!! ├── B3piKMatrixMassProj.cc | ||||
│!! ├── B3piKMatrixPlots.cc | │!! ├── B3piKMatrixPlots.cc | ||||
│!! ├── CMakeLists.txt | |||||
│!! ├── CalcChiSq.cc | │!! ├── CalcChiSq.cc | ||||
│!! ├── CalcChiSq.hh | |||||
│!! ├── CalcChiSqMain.cc | |||||
│!! ├── DToKspipiKMatrixCoeff.dat | │!! ├── DToKspipiKMatrixCoeff.dat | ||||
│!! ├── FOCUSD3pi.dat | │!! ├── FOCUSD3pi.dat | ||||
│!! ├── GenFit3K.cc | │!! ├── GenFit3K.cc | ||||
│!! ├── GenFit3KS.cc | │!! ├── GenFit3KS.cc | ||||
│!! ├── GenFit3pi.cc | │!! ├── GenFit3pi.cc | ||||
│!! ├── GenFit3pi.py | │!! ├── GenFit3pi.py | ||||
│!! ├── GenFitBelleCPKpipi.cc | │!! ├── GenFitBelleCPKpipi.cc | ||||
│!! ├── GenFitDs2KKpi.cc | │!! ├── GenFitDs2KKpi.cc | ||||
│!! ├── GenFitEFKLLM.cc | │!! ├── GenFitEFKLLM.cc | ||||
│!! ├── GenFitKpipi.cc | │!! ├── GenFitKpipi.cc | ||||
│!! ├── GenFitNoDP.cc | │!! ├── GenFitNoDP.cc | ||||
│!! ├── GenFitNoDPMultiDim.cc | │!! ├── GenFitNoDPMultiDim.cc | ||||
│!! ├── KMatrixDto3pi.cc | │!! ├── KMatrixDto3pi.cc | ||||
│!! ├── KMatrixExample.cc | │!! ├── KMatrixExample.cc | ||||
│!! ├── LauKMatrixCoeff.dat | │!! ├── LauKMatrixCoeff.dat | ||||
│!! ├── LauKMatrixCoeff2.dat | │!! ├── LauKMatrixCoeff2.dat | ||||
│!! ├── Makefile - GNU make configuration file for building the code examples | |||||
│!! ├── Master.cc | |||||
│!! ├── MergeDataFiles.cc | │!! ├── MergeDataFiles.cc | ||||
│!! ├── MergeDataFiles.hh | |||||
│!! ├── MergeDataFilesMain.cc | |||||
│!! ├── PlotKMatrixTAmp.cc | │!! ├── PlotKMatrixTAmp.cc | ||||
│!! ├── PlotResults.cc | │!! ├── PlotResults.cc | ||||
│!! ├── ResultsExtractor.cc | │!! ├── ResultsExtractor.cc | ||||
│!! ├── ResultsExtractor.hh | │!! ├── SimFitCoordinator.cc | ||||
│!! ├── ResultsExtractorMain.cc | │!! ├── SimFitTask.cc | ||||
│!! ├── Slave.cc | │!! ├── SimFitTaskRooFit.cc | ||||
│!! ├── SlaveRooFit.cc | |||||
│!! ├── chiSqInput.txt | │!! ├── chiSqInput.txt | ||||
│!! ├── mixedSampleTest.cc | │!! ├── mixedSampleTest.cc | ||||
│!! ├── point2PointTestSample.cc | │!! ├── point2PointTestSample.cc | ||||
│!! ├── runMasterRooFitSlave.sh | │!! ├── runCoordinatorRooFitTask.sh | ||||
│!! ├── runMasterSlave.sh | │!! ├── runCoordinatorTask.sh | ||||
│!! ├── runPoint2PointTest.sh | │!! ├── runPoint2PointTest.sh | ||||
│!! └── usfactor.dat | │!! └── usfactor.dat | ||||
├── inc - directory containing the header files for the Laura++ library | ├── inc - directory containing the header files for the Laura++ library | ||||
│!! ├── CMakeLists.txt | |||||
│!! ├── Lau1DCubicSpline.hh | │!! ├── Lau1DCubicSpline.hh | ||||
│!! ├── Lau1DHistPdf.hh | │!! ├── Lau1DHistPdf.hh | ||||
│!! ├── Lau2DAbsDP.hh | │!! ├── Lau2DAbsDP.hh | ||||
│!! ├── Lau2DAbsDPPdf.hh | │!! ├── Lau2DAbsDPPdf.hh | ||||
│!! ├── Lau2DAbsHistDP.hh | │!! ├── Lau2DAbsHistDP.hh | ||||
│!! ├── Lau2DAbsHistDPPdf.hh | │!! ├── Lau2DAbsHistDPPdf.hh | ||||
│!! ├── Lau2DCubicSpline.hh | │!! ├── Lau2DCubicSpline.hh | ||||
│!! ├── Lau2DHistDP.hh | │!! ├── Lau2DHistDP.hh | ||||
Show All 18 Lines | |||||
│!! ├── LauBelleSymNR.hh | │!! ├── LauBelleSymNR.hh | ||||
│!! ├── LauBifurcatedGaussPdf.hh | │!! ├── LauBifurcatedGaussPdf.hh | ||||
│!! ├── LauBkgndDPModel.hh | │!! ├── LauBkgndDPModel.hh | ||||
│!! ├── LauBlattWeisskopfFactor.hh | │!! ├── LauBlattWeisskopfFactor.hh | ||||
│!! ├── LauBlind.hh | │!! ├── LauBlind.hh | ||||
│!! ├── LauBreitWignerRes.hh | │!! ├── LauBreitWignerRes.hh | ||||
│!! ├── LauCPFitModel.hh | │!! ├── LauCPFitModel.hh | ||||
│!! ├── LauCacheData.hh | │!! ├── LauCacheData.hh | ||||
│!! ├── LauCalcChiSq.hh | |||||
│!! ├── LauCartesianCPCoeffSet.hh | │!! ├── LauCartesianCPCoeffSet.hh | ||||
│!! ├── LauCartesianGammaCPCoeffSet.hh | │!! ├── LauCartesianGammaCPCoeffSet.hh | ||||
│!! ├── LauChebychevPdf.hh | │!! ├── LauChebychevPdf.hh | ||||
│!! ├── LauCleoCPCoeffSet.hh | │!! ├── LauCleoCPCoeffSet.hh | ||||
│!! ├── LauComplex.hh | │!! ├── LauComplex.hh | ||||
│!! ├── LauConstants.hh | │!! ├── LauConstants.hh | ||||
│!! ├── LauCruijffPdf.hh | │!! ├── LauCruijffPdf.hh | ||||
│!! ├── LauCrystalBallPdf.hh | │!! ├── LauCrystalBallPdf.hh | ||||
Show All 30 Lines | |||||
│!! ├── LauKappaRes.hh | │!! ├── LauKappaRes.hh | ||||
│!! ├── LauKinematics.hh | │!! ├── LauKinematics.hh | ||||
│!! ├── LauLASSBWRes.hh | │!! ├── LauLASSBWRes.hh | ||||
│!! ├── LauLASSNRRes.hh | │!! ├── LauLASSNRRes.hh | ||||
│!! ├── LauLASSRes.hh | │!! ├── LauLASSRes.hh | ||||
│!! ├── LauLinearPdf.hh | │!! ├── LauLinearPdf.hh | ||||
│!! ├── LauMagPhaseCPCoeffSet.hh | │!! ├── LauMagPhaseCPCoeffSet.hh | ||||
│!! ├── LauMagPhaseCoeffSet.hh | │!! ├── LauMagPhaseCoeffSet.hh | ||||
│!! ├── LauMergeDataFiles.hh | |||||
│!! ├── LauMinuit.hh | │!! ├── LauMinuit.hh | ||||
│!! ├── LauModIndPartWaveMagPhase.hh | │!! ├── LauModIndPartWaveMagPhase.hh | ||||
│!! ├── LauModIndPartWaveRealImag.hh | │!! ├── LauModIndPartWaveRealImag.hh | ||||
│!! ├── LauNRAmplitude.hh | │!! ├── LauNRAmplitude.hh | ||||
│!! ├── LauNovosibirskPdf.hh | │!! ├── LauNovosibirskPdf.hh | ||||
│!! ├── LauParamFixed.hh | │!! ├── LauParamFixed.hh | ||||
│!! ├── LauParameter.hh | │!! ├── LauParameter.hh | ||||
│!! ├── LauParametricStepFuncPdf.hh | │!! ├── LauParametricStepFuncPdf.hh | ||||
│!! ├── LauParticlePDG.hh | │!! ├── LauParticlePDG.hh | ||||
│!! ├── LauPolNR.hh | │!! ├── LauPolNR.hh | ||||
│!! ├── LauPolarFormFactorNR.hh | |||||
│!! ├── LauPolarFormFactorSymNR.hh | |||||
│!! ├── LauPolarGammaCPCoeffSet.hh | │!! ├── LauPolarGammaCPCoeffSet.hh | ||||
│!! ├── LauPoleRes.hh | |||||
│!! ├── LauPrint.hh | │!! ├── LauPrint.hh | ||||
│!! ├── LauRandom.hh | │!! ├── LauRandom.hh | ||||
│!! ├── LauRealImagCPCoeffSet.hh | │!! ├── LauRealImagCPCoeffSet.hh | ||||
│!! ├── LauRealImagCoeffSet.hh | │!! ├── LauRealImagCoeffSet.hh | ||||
│!! ├── LauRealImagGammaCPCoeffSet.hh | │!! ├── LauRealImagGammaCPCoeffSet.hh | ||||
│!! ├── LauRelBreitWignerRes.hh | │!! ├── LauRelBreitWignerRes.hh | ||||
│!! ├── LauRescattering2Res.hh | |||||
│!! ├── LauRescatteringRes.hh | |||||
│!! ├── LauResonanceInfo.hh | │!! ├── LauResonanceInfo.hh | ||||
│!! ├── LauResonanceMaker.hh | │!! ├── LauResonanceMaker.hh | ||||
│!! ├── LauResultsExtractor.hh | |||||
│!! ├── LauRhoOmegaMix.hh | │!! ├── LauRhoOmegaMix.hh | ||||
│!! ├── LauRooFitSlave.hh | │!! ├── LauRooFitTask.hh | ||||
│!! ├── LauSPlot.hh | │!! ├── LauSPlot.hh | ||||
│!! ├── LauScfMap.hh | │!! ├── LauScfMap.hh | ||||
│!! ├── LauSigmaRes.hh | │!! ├── LauSigmaRes.hh | ||||
│!! ├── LauSigmoidPdf.hh | │!! ├── LauSigmoidPdf.hh | ||||
│!! ├── LauSimFitMaster.hh | │!! ├── LauSimFitCoordinator.hh | ||||
│!! ├── LauSimFitSlave.hh | │!! ├── LauSimFitTask.hh | ||||
│!! ├── LauSimpleFitModel.hh | │!! ├── LauSimpleFitModel.hh | ||||
│!! ├── LauString.hh | │!! ├── LauString.hh | ||||
│!! ├── LauSumPdf.hh | │!! ├── LauSumPdf.hh | ||||
│!! ├── LauTextFileParser.hh | │!! ├── LauTextFileParser.hh | ||||
│!! ├── LauVetoes.hh | │!! ├── LauVetoes.hh | ||||
│!! ├── LauWeightedSumEffModel.hh | │!! ├── LauWeightedSumEffModel.hh | ||||
│!! └── Laura++_LinkDef.h | │!! └── Laura++_LinkDef.h | ||||
├── macros - directory containing some ROOT macro files for plotting results, etc. | ├── macros - directory containing some ROOT macro files for plotting results, etc. | ||||
│!! ├── makeFitFile.C | │!! ├── makeFitFile.C | ||||
│!! ├── plotComplexVars.C | │!! ├── plotComplexVars.C | ||||
│!! ├── plotCorrs.C | │!! ├── plotCorrs.C | ||||
│!! ├── plotCorrsFromToy.C | │!! ├── plotCorrsFromToy.C | ||||
│!! └── plotDataIsobars.C | │!! └── plotDataIsobars.C | ||||
├── src - directory containing the source files for the Laura++ library | ├── src - directory containing the source files for the Laura++ library | ||||
│!! ├── CMakeLists.txt | |||||
│!! ├── Lau1DCubicSpline.cc | │!! ├── Lau1DCubicSpline.cc | ||||
│!! ├── Lau1DHistPdf.cc | │!! ├── Lau1DHistPdf.cc | ||||
│!! ├── Lau2DAbsHistDP.cc | │!! ├── Lau2DAbsHistDP.cc | ||||
│!! ├── Lau2DAbsHistDPPdf.cc | │!! ├── Lau2DAbsHistDPPdf.cc | ||||
│!! ├── Lau2DCubicSpline.cc | │!! ├── Lau2DCubicSpline.cc | ||||
│!! ├── Lau2DHistDP.cc | │!! ├── Lau2DHistDP.cc | ||||
│!! ├── Lau2DHistDPPdf.cc | │!! ├── Lau2DHistDPPdf.cc | ||||
│!! ├── Lau2DHistPdf.cc | │!! ├── Lau2DHistPdf.cc | ||||
Show All 13 Lines | |||||
│!! ├── LauBelleSymNR.cc | │!! ├── LauBelleSymNR.cc | ||||
│!! ├── LauBifurcatedGaussPdf.cc | │!! ├── LauBifurcatedGaussPdf.cc | ||||
│!! ├── LauBkgndDPModel.cc | │!! ├── LauBkgndDPModel.cc | ||||
│!! ├── LauBlattWeisskopfFactor.cc | │!! ├── LauBlattWeisskopfFactor.cc | ||||
│!! ├── LauBlind.cc | │!! ├── LauBlind.cc | ||||
│!! ├── LauBreitWignerRes.cc | │!! ├── LauBreitWignerRes.cc | ||||
│!! ├── LauCPFitModel.cc | │!! ├── LauCPFitModel.cc | ||||
│!! ├── LauCacheData.cc | │!! ├── LauCacheData.cc | ||||
│!! ├── LauCalcChiSq.cc | |||||
│!! ├── LauCartesianCPCoeffSet.cc | │!! ├── LauCartesianCPCoeffSet.cc | ||||
│!! ├── LauCartesianGammaCPCoeffSet.cc | │!! ├── LauCartesianGammaCPCoeffSet.cc | ||||
│!! ├── LauChebychevPdf.cc | │!! ├── LauChebychevPdf.cc | ||||
│!! ├── LauCleoCPCoeffSet.cc | │!! ├── LauCleoCPCoeffSet.cc | ||||
│!! ├── LauComplex.cc | │!! ├── LauComplex.cc | ||||
│!! ├── LauCruijffPdf.cc | │!! ├── LauCruijffPdf.cc | ||||
│!! ├── LauCrystalBallPdf.cc | │!! ├── LauCrystalBallPdf.cc | ||||
│!! ├── LauDPDepBifurGaussPdf.cc | │!! ├── LauDPDepBifurGaussPdf.cc | ||||
Show All 29 Lines | |||||
│!! ├── LauKappaRes.cc | │!! ├── LauKappaRes.cc | ||||
│!! ├── LauKinematics.cc | │!! ├── LauKinematics.cc | ||||
│!! ├── LauLASSBWRes.cc | │!! ├── LauLASSBWRes.cc | ||||
│!! ├── LauLASSNRRes.cc | │!! ├── LauLASSNRRes.cc | ||||
│!! ├── LauLASSRes.cc | │!! ├── LauLASSRes.cc | ||||
│!! ├── LauLinearPdf.cc | │!! ├── LauLinearPdf.cc | ||||
│!! ├── LauMagPhaseCPCoeffSet.cc | │!! ├── LauMagPhaseCPCoeffSet.cc | ||||
│!! ├── LauMagPhaseCoeffSet.cc | │!! ├── LauMagPhaseCoeffSet.cc | ||||
│!! ├── LauMergeDataFiles.cc | |||||
│!! ├── LauMinuit.cc | │!! ├── LauMinuit.cc | ||||
│!! ├── LauModIndPartWaveMagPhase.cc | │!! ├── LauModIndPartWaveMagPhase.cc | ||||
│!! ├── LauModIndPartWaveRealImag.cc | │!! ├── LauModIndPartWaveRealImag.cc | ||||
│!! ├── LauNRAmplitude.cc | │!! ├── LauNRAmplitude.cc | ||||
│!! ├── LauNovosibirskPdf.cc | │!! ├── LauNovosibirskPdf.cc | ||||
│!! ├── LauParameter.cc | │!! ├── LauParameter.cc | ||||
│!! ├── LauParametricStepFuncPdf.cc | │!! ├── LauParametricStepFuncPdf.cc | ||||
│!! ├── LauParticlePDG.cc | │!! ├── LauParticlePDG.cc | ||||
│!! ├── LauPolNR.cc | │!! ├── LauPolNR.cc | ||||
│!! ├── LauPolarFormFactorNR.cc | |||||
│!! ├── LauPolarFormFactorSymNR.cc | |||||
│!! ├── LauPolarGammaCPCoeffSet.cc | │!! ├── LauPolarGammaCPCoeffSet.cc | ||||
│!! ├── LauPoleRes.cc | |||||
│!! ├── LauPrint.cc | │!! ├── LauPrint.cc | ||||
│!! ├── LauRandom.cc | │!! ├── LauRandom.cc | ||||
│!! ├── LauRealImagCPCoeffSet.cc | │!! ├── LauRealImagCPCoeffSet.cc | ||||
│!! ├── LauRealImagCoeffSet.cc | │!! ├── LauRealImagCoeffSet.cc | ||||
│!! ├── LauRealImagGammaCPCoeffSet.cc | │!! ├── LauRealImagGammaCPCoeffSet.cc | ||||
│!! ├── LauRelBreitWignerRes.cc | │!! ├── LauRelBreitWignerRes.cc | ||||
│!! ├── LauRescattering2Res.cc | |||||
│!! ├── LauRescatteringRes.cc | |||||
│!! ├── LauResonanceInfo.cc | │!! ├── LauResonanceInfo.cc | ||||
│!! ├── LauResonanceMaker.cc | │!! ├── LauResonanceMaker.cc | ||||
│!! ├── LauResultsExtractor.cc | |||||
│!! ├── LauRhoOmegaMix.cc | │!! ├── LauRhoOmegaMix.cc | ||||
│!! ├── LauRooFitSlave.cc | │!! ├── LauRooFitTask.cc | ||||
│!! ├── LauSPlot.cc | │!! ├── LauSPlot.cc | ||||
│!! ├── LauScfMap.cc | │!! ├── LauScfMap.cc | ||||
│!! ├── LauSigmaRes.cc | │!! ├── LauSigmaRes.cc | ||||
│!! ├── LauSigmoidPdf.cc | │!! ├── LauSigmoidPdf.cc | ||||
│!! ├── LauSimFitMaster.cc | │!! ├── LauSimFitCoordinator.cc | ||||
│!! ├── LauSimFitSlave.cc | │!! ├── LauSimFitTask.cc | ||||
│!! ├── LauSimpleFitModel.cc | │!! ├── LauSimpleFitModel.cc | ||||
│!! ├── LauString.cc | │!! ├── LauString.cc | ||||
│!! ├── LauSumPdf.cc | │!! ├── LauSumPdf.cc | ||||
│!! ├── LauTextFileParser.cc | │!! ├── LauTextFileParser.cc | ||||
│!! ├── LauVetoes.cc | │!! ├── LauVetoes.cc | ||||
│!! └── LauWeightedSumEffModel.cc | │!! └── LauWeightedSumEffModel.cc | ||||
└── test - directory containing code for some test executables | └── test - directory containing code for some test executables | ||||
├── Makefile - GNU make configuration file for building the test executables | ├── CMakeLists.txt | ||||
├── TestCovariant.cc | ├── TestCovariant.cc | ||||
├── TestCovariant2.cc | ├── TestCovariant2.cc | ||||
└── TestNewKinematicsMethods.cc | └── TestNewKinematicsMethods.cc | ||||
``` | |||||
6 directories, 282 files | ## Building the library | ||||
Building the Code | |||||
----------------- | |||||
The package depends only on ROOT. Before building the code, it is necessary | |||||
that either the ROOTSYS environment variable be set or that the root-config | |||||
program be in the PATH. | |||||
To build the shared library: | ### Prerequisites | ||||
Compilation of Laura++ on a UNIX operating system requires: | |||||
* the [CMake](https://www.cmake.org) build tool | |||||
* a C++14 compatible compiler ([GCC](https://gcc.gnu.org) 8 or better, [Clang](https://clang.llvm.org) 8 or better are recommended) | |||||
* [GNU Make](https://www.gnu.org/software/make/) or [Ninja](https://ninja-build.org) (not currently tested) | |||||
The package depends only on [ROOT](https://root.cern.ch). | |||||
Before building the code, it is necessary that the ROOT package be findable by CMake, which can be achieved by doing one of the following: | |||||
- the `ROOTSYS` environment variable is set to the directory of the ROOT package | |||||
- the directory containing the `root-config` program is in the `PATH` environment variable | |||||
- the ROOT cmake directory is in the `CMAKE_PREFIX_PATH` environment variable | |||||
In order to setup an environment that satifies all of the above requirements we highly recommend use of the [LCG views](https://lcginfo.cern.ch). | |||||
For example, on a machine with the [CVMFS client](https://cvmfs.readthedocs.io/en/stable/) installed, one can do: | |||||
``` | |||||
source /cvmfs/sft.cern.ch/lcg/views/setupViews.(c)sh <LCG release> <arch-os-compiler> | |||||
``` | |||||
for example: | |||||
``` | |||||
source /cvmfs/sft.cern.ch/lcg/views/setupViews.sh LCG_96b x86_64-centos7-gcc9-opt | |||||
``` | |||||
### Build procedure | |||||
To build from a clone of this repository, open a terminal window | |||||
and change directory into that holding this README file. | |||||
Create a build directory in which to run `cmake` and the build, and change into | |||||
it by doing the following: | |||||
``` | |||||
$ mkdir ../laura.build | |||||
$ cd ../laura.build | |||||
``` | |||||
It is best to install the package after building. | |||||
You can either install into an existing location or you can create an install | |||||
directory specifically for Laura++ (we assume the latter in the following | |||||
instructions): | |||||
``` | |||||
$ mkdir ../laura.install | |||||
``` | |||||
Run `cmake` in this directory, pointing it to the directory holding this | |||||
README, and consequently the top level CMake script for the project: | |||||
``` | |||||
$ cmake ../<this dir> -DCMAKE_INSTALL_PREFIX=../laura.install | |||||
... system specific output ... | |||||
-- Configuring done | |||||
-- Generating done | |||||
-- Build files have been written to: ... your build dir path ... | |||||
$ | |||||
``` | |||||
The exact output will depend on your system, compiler and build directory | |||||
location, but you should not see any errors. | |||||
CMake will generate Makefiles by default on UNIX platforms, so to build, simply | |||||
run `make` in the build directory: | |||||
``` | |||||
$ make | |||||
... verbose output ... | |||||
[100%] Built target Laura++ | |||||
... | |||||
$ make install | |||||
Install the project... | |||||
... verbose output ... | |||||
$ | |||||
``` | |||||
cd Laura++ | Again, the exact output will be system specific, but you should see the | ||||
make | `Laura++` target built without error and that the installation was successful. | ||||
A shared library will be created in the lib sub-directory: | If compiling with gcc 5, see [the corresponding note](#notes). | ||||
lib/libLaura++.so | |||||
(It has been reported that when compiling on Ubuntu 16.04 LTS with gcc 5.4.0 | ## Examples and documentation | ||||
the build will fail due to, apparently spurious, "variable defined but not | |||||
used" errors related to the constants defined in the LauConstants.hh header | |||||
file. The workaround is to add the option -Wno-error=unused-variable to the | |||||
CXXFLAGS variable in the Makefile.) | |||||
Examples and Documentation | |||||
-------------------------- | |||||
Example code is included in the examples directory. | Example code is included in the examples directory. | ||||
To build the example code: | To enable the building and installation of the example executables you need to | ||||
cd examples | supply the following option when running `cmake`: | ||||
make | ``` | ||||
-DLAURA_BUILD_EXAMPLES=ON | |||||
(On MacOSX it is currently necessary to also do: | ``` | ||||
ln -s ../lib . | After building and installing, the example executables will be in the `bin` | ||||
in order to successfully run the examples. | directory in the install location. | ||||
We hope to have a solution to avoid this step soon.) | |||||
To build the Doxygen documentation you need to supply the following option when | |||||
To build the online doxygen documentation just run doxygen in the top level | running `cmake`: | ||||
Laura++ directory and then load the index.html file found in doxygen/html. | ``` | ||||
-DLAURA_BUILD_DOCS=ON | |||||
``` | |||||
After building and installing, you can load the | |||||
`share/doc/Laura++/html/index.html` file (found in the install location) into | |||||
your web browser. | |||||
## Building your own code | |||||
If you wish to build your own code that uses the Laura++ library you should add the Laura++ installation area to the `CMAKE_PREFIX_PATH` environment variable. | |||||
You can then add lines like the following to your own `CMakeLists.txt` file: | |||||
```cmake | |||||
# Find ROOT and Laura++ | |||||
find_package(Laura REQUIRED) | |||||
find_package(ROOT REQUIRED) | |||||
# Now build the executable | |||||
add_executable(MyExe MyExe.cc) | |||||
target_link_libraries(MyExe PRIVATE Laura::Laura++) | |||||
``` | |||||
A quick-start guide and further documentation are being worked on. | |||||
Please contact Tom Latham (laura@projects.hepforge.org) with any questions. | ## Authors and contributors | ||||
Authors and Contributors | |||||
------------------------ | |||||
As mentioned in the Introduction above, the authors of the package are: | As mentioned in the Introduction above, the authors of the package are: | ||||
Thomas Latham | Thomas Latham | ||||
John Back | John Back | ||||
Paul Harrison | Paul Harrison | ||||
The authors would also like to thank the following people for their invaluable | The authors would also like to thank the following people for their invaluable | ||||
contributions: | contributions: | ||||
Sian Morgan | Sian Morgan | ||||
Tim Gershon | Tim Gershon | ||||
Pablo del Amo Sanchez | Pablo del Amo Sanchez | ||||
Jelena Ilic | Jelena Ilic | ||||
Eugenia Puccio | Eugenia Puccio | ||||
Mark Whitehead | Mark Whitehead | ||||
Daniel Craik | Daniel Craik | ||||
Rafael Coutinho | Rafael Coutinho | ||||
Charlotte Wallace | Charlotte Wallace | ||||
Juan Otalora | Juan Otalora | ||||
Wenbin Qian | Wenbin Qian | ||||
Daniel O'Hanlon | Daniel O'Hanlon | ||||
Many thanks also go to numerous members of the BaBar, Belle and LHCb | Many thanks also go to numerous members of the BaBar, Belle, and LHCb | ||||
collaborations for their helpful input. | collaborations for their helpful input. | ||||
Contact: Tom Latham (laura@projects.hepforge.org) | |||||
## Notes {#notes} | |||||
* [It has been reported](https://laura.hepforge.org/trac/ticket/67) that when | |||||
compiling on Ubuntu 16.04 LTS with gcc 5.4.0 the build will fail due to, | |||||
apparently spurious, "variable defined but not used" errors related to the | |||||
constants defined in the `LauConstants.hh` header file. | |||||
The workaround is to add the option `-Wno-error=unused-variable` to the | |||||
`CMAKE_CXX_FLAGS` variable in the file: | |||||
cmake/Modules/LauraCompilerFlags.cmake | |||||