make PRgeHandler to a shared libs. Adopted Nonlocal and PMagProximity accordingly.
This commit is contained in:
parent
113996aa4e
commit
72c085a0a8
@ -1,4 +1,4 @@
|
|||||||
#--- build the PMusr and PUserFcnBase libs ------------------------------------
|
#--- build the PMusr, PUserFcnBase, and PRgeHandler libs ----------------------
|
||||||
|
|
||||||
#--- generate necessary dictionaries ------------------------------------------
|
#--- generate necessary dictionaries ------------------------------------------
|
||||||
set(MUSRFIT_INC ${CMAKE_SOURCE_DIR}/src/include)
|
set(MUSRFIT_INC ${CMAKE_SOURCE_DIR}/src/include)
|
||||||
@ -53,6 +53,18 @@ root_generate_dictionary(
|
|||||||
-I${FFTW3_INCLUDE_DIR} -I${MUSRFIT_INC}
|
-I${FFTW3_INCLUDE_DIR} -I${MUSRFIT_INC}
|
||||||
MODULE PUserFcnBase
|
MODULE PUserFcnBase
|
||||||
)
|
)
|
||||||
|
root_generate_dictionary(
|
||||||
|
PRgeHandlerDict
|
||||||
|
PRgeHandler.h
|
||||||
|
OPTIONS
|
||||||
|
-I${NONLOCAL_INC}
|
||||||
|
-I${MUSRFIT_INC}
|
||||||
|
-I${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
-inlineInputHeader
|
||||||
|
LINKDEF ${MUSRFIT_INC}/PRgeHandlerLinkDef.h
|
||||||
|
MODULE PRgeHandler
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
#--- create pkg-config info ---------------------------------------------------
|
#--- create pkg-config info ---------------------------------------------------
|
||||||
set(prefix "${CMAKE_INSTALL_PREFIX}")
|
set(prefix "${CMAKE_INSTALL_PREFIX}")
|
||||||
@ -64,6 +76,8 @@ set(MUSR_LIBRARY_NAME "PMusr")
|
|||||||
configure_file("PMusr.pc.in" "PMusr.pc" @ONLY)
|
configure_file("PMusr.pc.in" "PMusr.pc" @ONLY)
|
||||||
set(USERFCN_LIBRARY_NAME "PUserFcnBase")
|
set(USERFCN_LIBRARY_NAME "PUserFcnBase")
|
||||||
configure_file("PUserFcnBase.pc.in" "PUserFcnBase.pc" @ONLY)
|
configure_file("PUserFcnBase.pc.in" "PUserFcnBase.pc" @ONLY)
|
||||||
|
set(PRGEHANDLER_LIBRARY_NAME "PRgeHandler")
|
||||||
|
configure_file("PRgeHandler.pc.in" "PRgeHandler.pc" @ONLY)
|
||||||
|
|
||||||
#--- lib creation -------------------------------------------------------------
|
#--- lib creation -------------------------------------------------------------
|
||||||
add_library(PMusr SHARED
|
add_library(PMusr SHARED
|
||||||
@ -117,6 +131,11 @@ add_library(PUserFcnBase SHARED
|
|||||||
PUserFcnBaseDict.cxx
|
PUserFcnBaseDict.cxx
|
||||||
)
|
)
|
||||||
|
|
||||||
|
add_library(PRgeHandler SHARED
|
||||||
|
PRgeHandler.cpp
|
||||||
|
PRgeHandlerDict.cxx
|
||||||
|
)
|
||||||
|
|
||||||
#--- set target properties, e.g. version --------------------------------------
|
#--- set target properties, e.g. version --------------------------------------
|
||||||
set_target_properties(PMusr
|
set_target_properties(PMusr
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
@ -126,11 +145,20 @@ set_target_properties(PUserFcnBase
|
|||||||
PROPERTIES
|
PROPERTIES
|
||||||
VERSION ${MUSR_VERSION}
|
VERSION ${MUSR_VERSION}
|
||||||
)
|
)
|
||||||
|
set_target_properties(PRgeHandler
|
||||||
|
PROPERTIES
|
||||||
|
VERSION ${MUSR_VERSION}
|
||||||
|
)
|
||||||
|
|
||||||
#--- make sure that the include directory is found ----------------------------
|
#--- make sure that the include directory is found ----------------------------
|
||||||
target_include_directories(
|
target_include_directories(
|
||||||
PUserFcnBase BEFORE PRIVATE $<BUILD_INTERFACE:${MUSRFIT_INC}>
|
PUserFcnBase BEFORE PRIVATE $<BUILD_INTERFACE:${MUSRFIT_INC}>
|
||||||
)
|
)
|
||||||
|
|
||||||
|
target_include_directories(
|
||||||
|
PRgeHandler BEFORE PRIVATE $<BUILD_INTERFACE:${MUSRFIT_INC}>
|
||||||
|
)
|
||||||
|
|
||||||
#--- add OpenMP compile options if needed -------------------------------------
|
#--- add OpenMP compile options if needed -------------------------------------
|
||||||
if (OpenMP_FOUND)
|
if (OpenMP_FOUND)
|
||||||
target_compile_options(PMusr PUBLIC ${OpenMP_CXX_FLAGS})
|
target_compile_options(PMusr PUBLIC ${OpenMP_CXX_FLAGS})
|
||||||
@ -157,11 +185,15 @@ if (OpenMP_FOUND)
|
|||||||
endif (OpenMP_FOUND)
|
endif (OpenMP_FOUND)
|
||||||
|
|
||||||
target_link_libraries(PUserFcnBase ${ROOT_LIBRARIES})
|
target_link_libraries(PUserFcnBase ${ROOT_LIBRARIES})
|
||||||
|
target_link_libraries(PRgeHandler ${ROOT_LIBRARIES})
|
||||||
target_link_libraries(PMusr ${DependOnLibs})
|
target_link_libraries(PMusr ${DependOnLibs})
|
||||||
|
|
||||||
#--- install PUserFcnBase solib -----------------------------------------------
|
#--- install PUserFcnBase solib -----------------------------------------------
|
||||||
install(TARGETS PUserFcnBase DESTINATION lib)
|
install(TARGETS PUserFcnBase DESTINATION lib)
|
||||||
|
|
||||||
|
#--- install PRgeHandler solib -----------------------------------------------
|
||||||
|
install(TARGETS PRgeHandler DESTINATION lib)
|
||||||
|
|
||||||
#--- install PMusr solib ------------------------------------------------------
|
#--- install PMusr solib ------------------------------------------------------
|
||||||
install(TARGETS PMusr DESTINATION lib)
|
install(TARGETS PMusr DESTINATION lib)
|
||||||
|
|
||||||
@ -173,6 +205,8 @@ install(
|
|||||||
${CMAKE_CURRENT_BINARY_DIR}/libPMusrCanvas.rootmap
|
${CMAKE_CURRENT_BINARY_DIR}/libPMusrCanvas.rootmap
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/libPMusrT0_rdict.pcm
|
${CMAKE_CURRENT_BINARY_DIR}/libPMusrT0_rdict.pcm
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/libPMusrT0.rootmap
|
${CMAKE_CURRENT_BINARY_DIR}/libPMusrT0.rootmap
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/libPRgeHandler_rdict.pcm
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/libPRgeHandler.rootmap
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/libPStartupHandler_rdict.pcm
|
${CMAKE_CURRENT_BINARY_DIR}/libPStartupHandler_rdict.pcm
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/libPStartupHandler.rootmap
|
${CMAKE_CURRENT_BINARY_DIR}/libPStartupHandler.rootmap
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/libPUserFcnBase_rdict.pcm
|
${CMAKE_CURRENT_BINARY_DIR}/libPUserFcnBase_rdict.pcm
|
||||||
@ -195,6 +229,7 @@ install(
|
|||||||
${MUSRFIT_INC}/PMusr.h
|
${MUSRFIT_INC}/PMusr.h
|
||||||
${MUSRFIT_INC}/PMusrT0.h
|
${MUSRFIT_INC}/PMusrT0.h
|
||||||
${MUSRFIT_INC}/PPrepFourier.h
|
${MUSRFIT_INC}/PPrepFourier.h
|
||||||
|
${MUSRFIT_INC}/PRgeHandler.h
|
||||||
${MUSRFIT_INC}/PRunAsymmetry.h
|
${MUSRFIT_INC}/PRunAsymmetry.h
|
||||||
${MUSRFIT_INC}/PRunAsymmetryBNMR.h
|
${MUSRFIT_INC}/PRunAsymmetryBNMR.h
|
||||||
${MUSRFIT_INC}/PRunAsymmetryRRF.h
|
${MUSRFIT_INC}/PRunAsymmetryRRF.h
|
||||||
@ -214,6 +249,7 @@ install(
|
|||||||
#--- install pkg-config info --------------------------------------------------
|
#--- install pkg-config info --------------------------------------------------
|
||||||
install(
|
install(
|
||||||
FILES ${CMAKE_CURRENT_BINARY_DIR}/PUserFcnBase.pc
|
FILES ${CMAKE_CURRENT_BINARY_DIR}/PUserFcnBase.pc
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/PRgeHandler.pc
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/PMusr.pc
|
${CMAKE_CURRENT_BINARY_DIR}/PMusr.pc
|
||||||
DESTINATION lib/pkgconfig
|
DESTINATION lib/pkgconfig
|
||||||
)
|
)
|
||||||
|
10
src/classes/PRgeHandler.pc.in
Normal file
10
src/classes/PRgeHandler.pc.in
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
prefix=@prefix@
|
||||||
|
exec_prefix=@exec_prefix@
|
||||||
|
libdir=@libdir@
|
||||||
|
includedir=@includedir@
|
||||||
|
|
||||||
|
Name: PRgeHandler
|
||||||
|
Description: C++ shared library providing the support for handling of TrimSP rge-files
|
||||||
|
Version: @MUSR_VERSION@
|
||||||
|
Libs: -L${libdir} -l@PRGEHANDLER_LIBRARY_NAME@
|
||||||
|
Cflags: -I${includedir}
|
4
src/external/MagProximity/CMakeLists.txt
vendored
4
src/external/MagProximity/CMakeLists.txt
vendored
@ -38,7 +38,6 @@ configure_file("PMagProximityFitter.pc.in" "PMagProximityFitter.pc" @ONLY)
|
|||||||
add_library(PMagProximityFitter SHARED
|
add_library(PMagProximityFitter SHARED
|
||||||
PMagProximityFitter.cpp
|
PMagProximityFitter.cpp
|
||||||
PMagProximityFitterDict.cxx
|
PMagProximityFitterDict.cxx
|
||||||
PMPRgeHandler.cpp
|
|
||||||
PMPStartupHandler.cpp
|
PMPStartupHandler.cpp
|
||||||
PMPStartupHandlerDict.cxx
|
PMPStartupHandlerDict.cxx
|
||||||
)
|
)
|
||||||
@ -57,7 +56,7 @@ set_target_properties(PMagProximityFitter
|
|||||||
)
|
)
|
||||||
|
|
||||||
#--- add library dependencies -------------------------------------------------
|
#--- add library dependencies -------------------------------------------------
|
||||||
target_link_libraries(PMagProximityFitter ${FFTW3_LIBRARY} ${ROOT_LIBRARIES} PUserFcnBase)
|
target_link_libraries(PMagProximityFitter ${FFTW3_LIBRARY} ${ROOT_LIBRARIES} PRgeHandler PUserFcnBase)
|
||||||
|
|
||||||
#--- install PMagProximityFitter solib ----------------------------------------
|
#--- install PMagProximityFitter solib ----------------------------------------
|
||||||
install(TARGETS PMagProximityFitter DESTINATION lib)
|
install(TARGETS PMagProximityFitter DESTINATION lib)
|
||||||
@ -76,7 +75,6 @@ install(
|
|||||||
FILES
|
FILES
|
||||||
PMagProximity.h
|
PMagProximity.h
|
||||||
PMagProximityFitter.h
|
PMagProximityFitter.h
|
||||||
PMPRgeHandler.h
|
|
||||||
PMPStartupHandler.h
|
PMPStartupHandler.h
|
||||||
DESTINATION
|
DESTINATION
|
||||||
include
|
include
|
||||||
|
212
src/external/MagProximity/PMPRgeHandler.cpp
vendored
212
src/external/MagProximity/PMPRgeHandler.cpp
vendored
@ -1,212 +0,0 @@
|
|||||||
/***************************************************************************
|
|
||||||
|
|
||||||
PMPRgeHandler.cpp
|
|
||||||
|
|
||||||
Author: Andreas Suter
|
|
||||||
e-mail: andreas.suter@psi.ch
|
|
||||||
|
|
||||||
***************************************************************************/
|
|
||||||
|
|
||||||
/***************************************************************************
|
|
||||||
* Copyright (C) 2011-2021 by Andreas Suter *
|
|
||||||
* andreas.suter@psi.ch *
|
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or modify *
|
|
||||||
* it under the terms of the GNU General Public License as published by *
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or *
|
|
||||||
* (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program; if not, write to the *
|
|
||||||
* Free Software Foundation, Inc., *
|
|
||||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
|
||||||
***************************************************************************/
|
|
||||||
|
|
||||||
#include <cassert>
|
|
||||||
|
|
||||||
#include <iostream>
|
|
||||||
#include <fstream>
|
|
||||||
|
|
||||||
#include "PMPRgeHandler.h"
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
|
||||||
// Constructor
|
|
||||||
//--------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
PMPRgeHandler::PMPRgeHandler(const PStringVector &rgeDataPathList, const PDoubleVector &rgeDataEnergyList)
|
|
||||||
{
|
|
||||||
fIsValid = false;
|
|
||||||
|
|
||||||
fIsValid = LoadRgeData(rgeDataPathList, rgeDataEnergyList);
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
|
||||||
// Destructor
|
|
||||||
//--------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
PMPRgeHandler::~PMPRgeHandler()
|
|
||||||
{
|
|
||||||
fRgeDataList.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
|
||||||
// GetRgeEnergyIndex
|
|
||||||
//--------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* \param energy in (keV)
|
|
||||||
*/
|
|
||||||
Int_t PMPRgeHandler::GetRgeEnergyIndex(const Double_t energy)
|
|
||||||
{
|
|
||||||
Int_t idx = -1;
|
|
||||||
|
|
||||||
for (UInt_t i=0; i<fRgeDataList.size(); i++) {
|
|
||||||
if (energy == fRgeDataList[i].energy) {
|
|
||||||
idx = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return idx;
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
|
||||||
// GetRgeValue
|
|
||||||
//--------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* \param energy in (keV)
|
|
||||||
* \param dist in (nm)
|
|
||||||
*/
|
|
||||||
Double_t PMPRgeHandler::GetRgeValue(const Int_t index, const Double_t dist)
|
|
||||||
{
|
|
||||||
Double_t rgeVal = 0.0;
|
|
||||||
|
|
||||||
UInt_t distIdx = static_cast<UInt_t>(dist/(fRgeDataList[index].stoppingDistance[1]-fRgeDataList[index].stoppingDistance[0]));
|
|
||||||
|
|
||||||
if (distIdx >= fRgeDataList[index].stoppingDistance.size()) {
|
|
||||||
rgeVal = 0.0;
|
|
||||||
} else {
|
|
||||||
rgeVal = fRgeDataList[index].stoppingAmplitude[distIdx] +
|
|
||||||
(fRgeDataList[index].stoppingAmplitude[distIdx+1] - fRgeDataList[index].stoppingAmplitude[distIdx]) *
|
|
||||||
(dist-fRgeDataList[index].stoppingDistance[distIdx])/(fRgeDataList[index].stoppingDistance[distIdx+1]-fRgeDataList[index].stoppingDistance[distIdx]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return rgeVal;
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
|
||||||
// GetRgeValue
|
|
||||||
//--------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* \param energy in (keV)
|
|
||||||
* \param dist in (nm)
|
|
||||||
*/
|
|
||||||
Double_t PMPRgeHandler::GetRgeValue(const Double_t energy, const Double_t dist)
|
|
||||||
{
|
|
||||||
// check if energy is present in rge data list
|
|
||||||
Int_t idx = -1;
|
|
||||||
|
|
||||||
for (UInt_t i=0; i<fRgeDataList.size(); i++) {
|
|
||||||
if (energy == fRgeDataList[i].energy) {
|
|
||||||
idx = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// energy not found
|
|
||||||
if (idx == -1)
|
|
||||||
return -1.0;
|
|
||||||
|
|
||||||
return GetRgeValue(idx, dist);
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
|
||||||
// LoadRgeData
|
|
||||||
//--------------------------------------------------------------------------
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
Bool_t PMPRgeHandler::LoadRgeData(const PStringVector &rgeDataPathList, const PDoubleVector &rgeDataEnergyList)
|
|
||||||
{
|
|
||||||
std::ifstream fin;
|
|
||||||
PMPRgeData data;
|
|
||||||
Int_t idx=0;
|
|
||||||
TString dataName, tstr;
|
|
||||||
char line[512];
|
|
||||||
int result;
|
|
||||||
double dist, val;
|
|
||||||
|
|
||||||
for (UInt_t i=0; i<rgeDataPathList.size(); i++) {
|
|
||||||
// open rge-file for reading
|
|
||||||
fin.open(rgeDataPathList[i].Data(), std::iostream::in);
|
|
||||||
if (!fin.is_open()) {
|
|
||||||
std::cout << std::endl << "PMPRgeHandler::LoadRgeData **ERROR**";
|
|
||||||
std::cout << std::endl << " Could not open file " << rgeDataPathList[i].Data();
|
|
||||||
std::cout << std::endl;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// keep energy (in keV)
|
|
||||||
data.energy = rgeDataEnergyList[i]/1000.0;
|
|
||||||
|
|
||||||
// read msr-file
|
|
||||||
idx = 0;
|
|
||||||
while (!fin.eof()) {
|
|
||||||
// read a line
|
|
||||||
fin.getline(line, sizeof(line));
|
|
||||||
idx++;
|
|
||||||
|
|
||||||
// ignore first line
|
|
||||||
if (idx <= 1)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
// ignore empty lines
|
|
||||||
tstr = line;
|
|
||||||
if (tstr.IsWhitespace())
|
|
||||||
continue;
|
|
||||||
|
|
||||||
|
|
||||||
// get values
|
|
||||||
result = sscanf(line, "%lf %lf", &dist, &val);
|
|
||||||
// check if data are valid
|
|
||||||
if (result != 2) {
|
|
||||||
fin.close();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// feed fRgeDataList
|
|
||||||
data.stoppingDistance.push_back(dist/10.0); // keep distancies in (nm)
|
|
||||||
data.stoppingAmplitude.push_back(val);
|
|
||||||
}
|
|
||||||
|
|
||||||
// normalize stopping distribution
|
|
||||||
Double_t norm = 0.0;
|
|
||||||
for (UInt_t j=0; j<data.stoppingAmplitude.size(); j++)
|
|
||||||
norm += data.stoppingAmplitude[j];
|
|
||||||
norm *= (data.stoppingDistance[1] - data.stoppingDistance[0]);
|
|
||||||
for (UInt_t j=0; j<data.stoppingAmplitude.size(); j++)
|
|
||||||
data.stoppingAmplitude[j] /= norm;
|
|
||||||
|
|
||||||
// keep data
|
|
||||||
fRgeDataList.push_back(data);
|
|
||||||
|
|
||||||
// clean up
|
|
||||||
data.stoppingAmplitude.clear();
|
|
||||||
data.stoppingDistance.clear();
|
|
||||||
|
|
||||||
fin.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
53
src/external/MagProximity/PMPRgeHandler.h
vendored
53
src/external/MagProximity/PMPRgeHandler.h
vendored
@ -1,53 +0,0 @@
|
|||||||
/***************************************************************************
|
|
||||||
|
|
||||||
PMPRgeHandler.h
|
|
||||||
|
|
||||||
Author: Andreas Suter
|
|
||||||
e-mail: andreas.suter@psi.ch
|
|
||||||
|
|
||||||
***************************************************************************/
|
|
||||||
|
|
||||||
/***************************************************************************
|
|
||||||
* Copyright (C) 2011-2021 by Andreas Suter *
|
|
||||||
* andreas.suter@psi.ch *
|
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or modify *
|
|
||||||
* it under the terms of the GNU General Public License as published by *
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or *
|
|
||||||
* (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program; if not, write to the *
|
|
||||||
* Free Software Foundation, Inc., *
|
|
||||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
|
||||||
***************************************************************************/
|
|
||||||
|
|
||||||
#ifndef _PMPRGEHANDLER_H_
|
|
||||||
#define _PMPRGEHANDLER_H_
|
|
||||||
|
|
||||||
#include "PMagProximity.h"
|
|
||||||
|
|
||||||
class PMPRgeHandler
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
PMPRgeHandler(const PStringVector &rgeDataPathList, const PDoubleVector &rgeDataEnergyList);
|
|
||||||
virtual ~PMPRgeHandler();
|
|
||||||
|
|
||||||
virtual Bool_t IsValid() { return fIsValid; }
|
|
||||||
virtual Int_t GetRgeEnergyIndex(const Double_t energy);
|
|
||||||
virtual Double_t GetRgeValue(const Double_t energy, const Double_t dist);
|
|
||||||
virtual Double_t GetRgeValue(const Int_t index, const Double_t dist);
|
|
||||||
|
|
||||||
private:
|
|
||||||
Bool_t fIsValid;
|
|
||||||
PMPRgeDataList fRgeDataList;
|
|
||||||
|
|
||||||
virtual Bool_t LoadRgeData(const PStringVector &rgeDataPathList, const PDoubleVector &rgeDataEnergyList);
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // _PMPRGEHANDLER_H_
|
|
@ -89,7 +89,7 @@ PMagProximityFitterGlobal::PMagProximityFitterGlobal()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// load all the TRIM.SP rge-files
|
// load all the TRIM.SP rge-files
|
||||||
fRgeHandler = new PMPRgeHandler(fStartupHandler->GetTrimSpDataPathList(), fStartupHandler->GetTrimSpDataVectorList());
|
fRgeHandler = new PRgeHandler();
|
||||||
if (!fRgeHandler->IsValid()) {
|
if (!fRgeHandler->IsValid()) {
|
||||||
std::cout << std::endl << ">> PMagProximityFitterGlobal::PMagProximityFitterGlobal **PANIC ERROR**";
|
std::cout << std::endl << ">> PMagProximityFitterGlobal::PMagProximityFitterGlobal **PANIC ERROR**";
|
||||||
std::cout << std::endl << ">> rge data handler too unhappy. Will terminate unfriendly, sorry.";
|
std::cout << std::endl << ">> rge data handler too unhappy. Will terminate unfriendly, sorry.";
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
|
|
||||||
#include "PUserFcnBase.h"
|
#include "PUserFcnBase.h"
|
||||||
#include "PMPStartupHandler.h"
|
#include "PMPStartupHandler.h"
|
||||||
#include "PMPRgeHandler.h"
|
#include "PRgeHandler.h"
|
||||||
|
|
||||||
class PMagProximityFitterGlobal
|
class PMagProximityFitterGlobal
|
||||||
{
|
{
|
||||||
@ -42,15 +42,15 @@ class PMagProximityFitterGlobal
|
|||||||
|
|
||||||
Bool_t IsValid() { return fValid; }
|
Bool_t IsValid() { return fValid; }
|
||||||
virtual void CalculateField(const std::vector<Double_t> ¶m) const;
|
virtual void CalculateField(const std::vector<Double_t> ¶m) const;
|
||||||
virtual Int_t GetEnergyIndex(const Double_t energy) { return fRgeHandler->GetRgeEnergyIndex(energy); }
|
virtual Int_t GetEnergyIndex(const Double_t energy) { return fRgeHandler->GetEnergyIndex(energy); }
|
||||||
virtual Double_t GetMuonStoppingDensity(const Int_t energyIndex, const Double_t z) const { return fRgeHandler->GetRgeValue(energyIndex, z); }
|
virtual Double_t GetMuonStoppingDensity(const Int_t energyIndex, const Double_t z) const { return fRgeHandler->Get_n(energyIndex, z); }
|
||||||
virtual Double_t GetMagneticField(const Double_t z) const;
|
virtual Double_t GetMagneticField(const Double_t z) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Bool_t fValid;
|
Bool_t fValid;
|
||||||
|
|
||||||
PMPStartupHandler *fStartupHandler;
|
PMPStartupHandler *fStartupHandler;
|
||||||
PMPRgeHandler *fRgeHandler;
|
PRgeHandler *fRgeHandler;
|
||||||
|
|
||||||
mutable std::vector<Double_t> fPreviousParam;
|
mutable std::vector<Double_t> fPreviousParam;
|
||||||
|
|
||||||
|
@ -3,13 +3,14 @@
|
|||||||
<comment>
|
<comment>
|
||||||
contains meta file infromation of the needed trim.sp files.
|
contains meta file infromation of the needed trim.sp files.
|
||||||
</comment>
|
</comment>
|
||||||
<trim_sp_part>
|
<trim_sp>
|
||||||
<data_path>/mnt/home/nemu/analysis/2010/EuS-Co/trimsp2/EuS-Co_E</data_path>
|
<data_path>/afs/psi.ch/project/nemu/analysis/2010/EuS-Co/trimsp2</data_path>
|
||||||
|
<rge_fln_pre>EuS-Co_E</rge_fln_pre>
|
||||||
<energy_list>
|
<energy_list>
|
||||||
<energy>5030</energy>
|
<energy>5030</energy>
|
||||||
<energy>6330</energy>
|
<energy>6330</energy>
|
||||||
<energy>7530</energy>
|
<energy>7530</energy>
|
||||||
<energy>8730</energy>
|
<energy>8730</energy>
|
||||||
</energy_list>
|
</energy_list>
|
||||||
</trim_sp_part>
|
</trim_sp>
|
||||||
</mag_proximity>
|
</mag_proximity>
|
||||||
|
18
src/external/Nonlocal/CMakeLists.txt
vendored
18
src/external/Nonlocal/CMakeLists.txt
vendored
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
#--- generate necessary dictionaries ------------------------------------------
|
#--- generate necessary dictionaries ------------------------------------------
|
||||||
set(MUSRFIT_INC ${CMAKE_SOURCE_DIR}/src/include)
|
set(MUSRFIT_INC ${CMAKE_SOURCE_DIR}/src/include)
|
||||||
set(MUSRFIT_CLASSES ${CMAKE_SOURCE_DIR}/src/classes)
|
|
||||||
set(NONLOCAL_INC ${CMAKE_SOURCE_DIR}/src/external/Nonlocal)
|
set(NONLOCAL_INC ${CMAKE_SOURCE_DIR}/src/external/Nonlocal)
|
||||||
# ROOT requires that the dictonary header files are found at configuration time.
|
# ROOT requires that the dictonary header files are found at configuration time.
|
||||||
# Hence, target_include_directories cannot be used here because, targets are
|
# Hence, target_include_directories cannot be used here because, targets are
|
||||||
@ -31,17 +30,6 @@ root_generate_dictionary(
|
|||||||
LINKDEF PNL_StartupHandlerLinkDef.h
|
LINKDEF PNL_StartupHandlerLinkDef.h
|
||||||
MODULE PNL_StartupHandler
|
MODULE PNL_StartupHandler
|
||||||
)
|
)
|
||||||
root_generate_dictionary(
|
|
||||||
PRgeHandlerDict
|
|
||||||
PRgeHandler.h
|
|
||||||
OPTIONS
|
|
||||||
-I${NONLOCAL_INC}
|
|
||||||
-I${MUSRFIT_INC}
|
|
||||||
-I${CMAKE_CURRENT_SOURCE_DIR}
|
|
||||||
-inlineInputHeader
|
|
||||||
LINKDEF ${MUSRFIT_INC}/PRgeHandlerLinkDef.h
|
|
||||||
MODULE PRgeHandler
|
|
||||||
)
|
|
||||||
|
|
||||||
#--- create pkg-config info ---------------------------------------------------
|
#--- create pkg-config info ---------------------------------------------------
|
||||||
set(prefix "${CMAKE_INSTALL_PREFIX}")
|
set(prefix "${CMAKE_INSTALL_PREFIX}")
|
||||||
@ -56,8 +44,6 @@ configure_file("PNL_PippardFitter.pc.in" "PNL_PippardFitter.pc" @ONLY)
|
|||||||
add_library(PNL_PippardFitter SHARED
|
add_library(PNL_PippardFitter SHARED
|
||||||
PNL_PippardFitter.cpp
|
PNL_PippardFitter.cpp
|
||||||
PNL_PippardFitterDict.cxx
|
PNL_PippardFitterDict.cxx
|
||||||
${MUSRFIT_CLASSES}/PRgeHandler.cpp
|
|
||||||
PRgeHandlerDict.cxx
|
|
||||||
PNL_StartupHandler.cpp
|
PNL_StartupHandler.cpp
|
||||||
PNL_StartupHandlerDict.cxx
|
PNL_StartupHandlerDict.cxx
|
||||||
)
|
)
|
||||||
@ -76,7 +62,7 @@ set_target_properties(PNL_PippardFitter
|
|||||||
)
|
)
|
||||||
|
|
||||||
#--- add library dependencies -------------------------------------------------
|
#--- add library dependencies -------------------------------------------------
|
||||||
target_link_libraries(PNL_PippardFitter ${Boost_LIBRARIES} ${FFTW3_LIBRARY} ${ROOT_LIBRARIES} PUserFcnBase)
|
target_link_libraries(PNL_PippardFitter ${Boost_LIBRARIES} ${FFTW3_LIBRARY} ${ROOT_LIBRARIES} PRgeHandler PUserFcnBase)
|
||||||
|
|
||||||
#--- install PNL_PippardFitter solib ------------------------------------------
|
#--- install PNL_PippardFitter solib ------------------------------------------
|
||||||
install(TARGETS PNL_PippardFitter DESTINATION lib)
|
install(TARGETS PNL_PippardFitter DESTINATION lib)
|
||||||
@ -86,8 +72,6 @@ install(
|
|||||||
FILES ${CMAKE_CURRENT_BINARY_DIR}/libPNL_PippardFitter_rdict.pcm
|
FILES ${CMAKE_CURRENT_BINARY_DIR}/libPNL_PippardFitter_rdict.pcm
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/libPNL_PippardFitter.rootmap
|
${CMAKE_CURRENT_BINARY_DIR}/libPNL_PippardFitter.rootmap
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/libPNL_StartupHandler_rdict.pcm
|
${CMAKE_CURRENT_BINARY_DIR}/libPNL_StartupHandler_rdict.pcm
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/libPRgeHandler.rootmap
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/libPRgeHandler_rdict.pcm
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/libPNL_StartupHandler.rootmap
|
${CMAKE_CURRENT_BINARY_DIR}/libPNL_StartupHandler.rootmap
|
||||||
DESTINATION lib
|
DESTINATION lib
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user