9 Commits

Author SHA1 Message Date
Paolo Andreetto
b7c775ee35 Error handling 2023-02-22 11:20:56 +01:00
Paolo Andreetto
7bc4932d09 Missing component for VTK 2023-02-20 16:10:10 +01:00
Paolo Andreetto
8832f47e75 Fixed build for VTK on alma9 2023-02-20 16:08:30 +01:00
Paolo Andreetto
043a44150c New writer class for the skin detector 2023-02-17 14:35:31 +01:00
Paolo Andreetto
fce2a39393 Changed version 2023-01-17 10:36:34 +01:00
Paolo Andreetto
d223a3a308 Restored classes for Castor 2023-01-17 10:36:05 +01:00
Paolo Andreetto
843a2d69cf Removed structures for Castor and muBlast 2020-09-29 15:23:08 +02:00
Paolo Andreetto
a60a21bfe4 Massive reorganization of CMake files 2020-06-29 14:44:26 +02:00
Paolo Andreetto
9d899928b8 Bug fixed for MacOD: removed macro 2020-04-28 13:34:07 +02:00
20 changed files with 480 additions and 474 deletions

View File

@@ -1,116 +0,0 @@
Summary: Cosmic Muon Tomography core libraries
Name: cmt-ulib
Version: @PKGVERSION@
Release: @PKGRELEASE@%{?dist}
License: EUROPEAN UNION PUBLIC LICENCE v. 1.2
Vendor: INFN
URL: https://github.com/OpenCMT/uLib
Group: Development/Libraries
BuildArch: %{_arch}
%if %{?rhel}%{!?rhel:0} >= 8
BuildRequires: cmake
%else
BuildRequires: cmake3
%endif
BuildRequires: doxygen
BuildRequires: boost-devel
BuildRequires: eigen3-devel
BuildRequires: vtk-devel
BuildRequires: readline-devel
BuildRequires: pcl-devel
BuildRequires: root-geom
BuildRequires: root-genvector
BuildRequires: root-smatrix
BuildRequires: root-montecarlo-eg
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
AutoReqProv: yes
Source: %{name}-%{version}.tar.gz
%description
This package contains the base toolkit library for Cosmic Muon Tomography reconstruction,
analysis and imaging software Developed by University of Padova and INFN Sezione di Padova Italy
%global _ulibpkgname mutom
%global _ulibcmakedir %{_libdir}/cmake/%{_ulibpkgname}
%prep
%setup -c
rm -rf %{buildroot}
mkdir -p %{buildroot}
%build
mkdir %{_builddir}/%{name}-%{version}/build
cd %{_builddir}/%{name}-%{version}/build
%cmake -DCMAKE_INSTALL_PREFIX=%{buildroot}%{_prefix} \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DPACKAGE_NAME=%{_ulibpkgname} \
-DPACKAGE_INSTALL_LIB_DIR=%{buildroot}%{_libdir} \
-DPACKAGE_INSTALL_INC_DIR=%{buildroot}%{_includedir}/%{_ulibpkgname} \
-DPACKAGE_INSTALL_CMAKE_DIR=%{buildroot}%{_ulibcmakedir} \
-DNODOXYGEN=ON \
%{_builddir}/%{name}-%{version}
make %{?_smp_mflags}
%install
cd %{_builddir}/%{name}-%{version}/build
make install
sed -i 's|%{buildroot}/usr|%{_prefix}|g' %{buildroot}%{_ulibcmakedir}/uLibTargets.cmake
sed -i 's|%{buildroot}/usr|%{_prefix}|g' %{buildroot}%{_ulibcmakedir}/uLibTargets-relwithdebinfo.cmake
%clean
rm -rf %{buildroot}
%files
%defattr(-,root,root)
%{_libdir}/libmutom*.so.0.2
%{_libdir}/uLibRootDict_rdict.pcm
%package devel
Summary: Cosmic Muon Tomography core libraries, development files
Requires: %{name}
Requires: boost-devel
Requires: eigen3-devel
Requires: vtk-devel
Requires: readline-devel
Requires: pcl-devel
Requires: root-geom
Requires: root-genvector
Requires: root-smatrix
Requires: root-montecarlo-eg
%description devel
This package contains the base toolkit library for Cosmic Muon Tomography reconstruction,
analysis and imaging software Developed by University of Padova and INFN Sezione di Padova Italy
%files devel
%defattr(-,root,root)
%dir %{_ulibcmakedir}
/usr/bin/uLib_config
%{_libdir}/libmutom*.so
%{_ulibcmakedir}/*.cmake
%dir %{_includedir}/%{_ulibpkgname}
%dir %{_includedir}/%{_ulibpkgname}/Core
%dir %{_includedir}/%{_ulibpkgname}/Math
%dir %{_includedir}/%{_ulibpkgname}/Root
%dir %{_includedir}/%{_ulibpkgname}/Detectors
%dir %{_includedir}/%{_ulibpkgname}/Vtk
%{_includedir}/%{_ulibpkgname}/*.h
%{_includedir}/%{_ulibpkgname}/Core/*.h
%{_includedir}/%{_ulibpkgname}/Math/*.h
%{_includedir}/%{_ulibpkgname}/Math/*.hpp
%{_includedir}/%{_ulibpkgname}/Root/*.h
%{_includedir}/%{_ulibpkgname}/Detectors/*.h
%{_includedir}/%{_ulibpkgname}/Vtk/*.h
%changelog
* Tue Dec 04 2018 Paolo Andreetto <paolo.andreetto@pd.infn.it> - 0.2.1-1
- Repackaging for CentOS 7

View File

@@ -13,7 +13,7 @@ set(Boost_USE_STATIC_LIBS OFF)
set(Boost_USE_MULTITHREADED ON) set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF) set(Boost_USE_STATIC_RUNTIME OFF)
find_package(Boost 1.45.0 COMPONENTS serialization signals program_options REQUIRED) find_package(Boost 1.45.0 COMPONENTS program_options REQUIRED)
if(Boost_FOUND) if(Boost_FOUND)
set(HAVE_BOOST true) set(HAVE_BOOST true)
endif(Boost_FOUND) endif(Boost_FOUND)

View File

@@ -1,34 +0,0 @@
# Target for RPMs creation
set(PKGREL 1 CACHE STRING "Package build number")
set(ITEMS_FOR_SOURCE AUTHORS
CMakeConfig.in.h
CMakePkgConfig.pc.in
test.cpp
uLibConfig.cmake.in
uLib.creator
ulib.h
vtk_test.cpp
CMake
CMakeLists.txt
Jenkinsfile
src
uLib.config
uLibConfigVersion.cmake.in
uLib.files
uLib.includes)
add_custom_target(rpm
COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/rpmbuild/BUILD
${CMAKE_CURRENT_BINARY_DIR}/rpmbuild/RPMS
${CMAKE_CURRENT_BINARY_DIR}/rpmbuild/SOURCES
${CMAKE_CURRENT_BINARY_DIR}/rpmbuild/SPECS
${CMAKE_CURRENT_BINARY_DIR}/rpmbuild/SRPMS
COMMAND tar -zcf ${CMAKE_CURRENT_BINARY_DIR}/rpmbuild/SOURCES/cmt-ulib-${PACKAGE_VERSION}.tar.gz ${ITEMS_FOR_SOURCE}
COMMAND sed -e 's|@PKGVERSION@|${PACKAGE_VERSION}|g'
-e 's|@PKGRELEASE@|${PKGREL}|g'
CMake/cmt-ulib.spec.in > ${CMAKE_CURRENT_BINARY_DIR}/rpmbuild/SPECS/cmt-ulib.spec
COMMAND QA_SKIP_BUILD_ROOT=1 rpmbuild -ba --define '_topdir ${CMAKE_CURRENT_BINARY_DIR}/rpmbuild'
${CMAKE_CURRENT_BINARY_DIR}/rpmbuild/SPECS/cmt-ulib.spec
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})

View File

@@ -11,7 +11,7 @@ project(uLib)
# The version number. # The version number.
set(PROJECT_VERSION_MAJOR 0) set(PROJECT_VERSION_MAJOR 0)
set(PROJECT_VERSION_MINOR 2) set(PROJECT_VERSION_MINOR 5)
set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}") set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}")
set(PROJECT_SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}") set(PROJECT_SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}")
@@ -26,130 +26,186 @@ set(PACKAGE_AUTHOR "Andrea Rigoni Garola <andrea.rigoni@pd.infn.it>")
set(ULIB_CMAKE_DIR "${PROJECT_SOURCE_DIR}/CMake") set(ULIB_CMAKE_DIR "${PROJECT_SOURCE_DIR}/CMake")
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/CMake" ${CMAKE_MODULE_PATH}) set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/CMake" ${CMAKE_MODULE_PATH})
message(STATUS "Module path: ${CMAKE_MODULE_PATH}") message(STATUS "Project name = ${PROJECT_NAME}")
message(STATUS "Package name = ${PACKAGE_NAME}")
include(uLibMacros) message(STATUS "Package version = ${PACKAGE_VERSION}")
include(uLibDebugMacro) message(STATUS "Module path = ${CMAKE_MODULE_PATH}")
include(uLibTargetMacros)
#include(uLibGenerateRMake)
## GLOBALS ------------------------------------------------------------------ ## ## GLOBALS ------------------------------------------------------------------ ##
include(uLibCommon) set(PACKAGE_INSTALL_BIN_DIR ${CMAKE_INSTALL_PREFIX}/bin
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ") ## Add flags here ## CACHE PATH "Installation directory for executables")
set(PACKAGE_INSTALL_LIB_DIR ${CMAKE_INSTALL_PREFIX}/lib/
CACHE PATH "Installation directory for libraries")
set(PACKAGE_INSTALL_INC_DIR ${CMAKE_INSTALL_PREFIX}/include/${PACKAGE_NAME}
CACHE PATH "Installation directory for headers")
set(PACKAGE_INSTALL_DATA_DIR ${CMAKE_INSTALL_PREFIX}/share/${PACKAGE_NAME}
CACHE PATH "Installation directory for data files")
set(PACKAGE_INSTALL_CMAKE_DIR ${CMAKE_INSTALL_PREFIX}/lib/cmake/${PACKAGE_NAME}
CACHE PATH "Installation directory for CMake files")
enable_testing() set(SRC_DIR ${PROJECT_SOURCE_DIR}/src)
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
message(STATUS "Setting build type to 'Release' as none was specified.")
set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the type of build." FORCE)
set(CMAKE_EXE_LINKER_FLAGS "-Wl,--no-as-needed")
# Set the possible values of build type for cmake-gui
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY
STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
endif()
set(CMAKE_CXX_WARNING_OPTION ""
CACHE STRING "Warning level -WAll to verbose all warnings")
set(CMAKE_VERBOSE_MAKEFILE FALSE
CACHE STRING "Verbose compile output switch")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x ${CMAKE_CXX_WARNING_OPTION}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -UULIB_SERIALIZATION_ON")
#enable_testing()
## FIND PACKAGES ------------------------------------------------------------ ## ## FIND PACKAGES ------------------------------------------------------------ ##
include(uLibFindDependencies) set(Boost_USE_STATIC_LIBS OFF)
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)
find_package(Boost 1.45.0 COMPONENTS program_options REQUIRED)
include_directories(${Boost_INCLUDE_DIRS})
find_package(Eigen3 CONFIG REQUIRED)
include(${EIGEN3_USE_FILE})
find_package(ROOT CONFIG REQUIRED)
include(${ROOT_USE_FILE})
find_package(VTK REQUIRED
COMPONENTS CommonColor
CommonCore
FiltersCore
FiltersModeling
FiltersSources
IOLegacy
IOXML
IOXMLParser
ImagingCore
InteractionStyle
InteractionWidgets
RenderingAnnotation
RenderingContextOpenGL2
RenderingCore
RenderingFreeType
RenderingGL2PSOpenGL2
RenderingOpenGL2
RenderingVolumeOpenGL2)
set(CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_INCLUDES math.h)
set(CMAKE_REQUIRED_LIBRARIES CMAKE_REQUIRED_LIBRARIES m)
## CONFIG ------------------------------------------------------------------- ## ## CONFIG ------------------------------------------------------------------- ##
include(uLibConfigHeader) set(BOOST_PP_VARIADICS ON)
include(CheckIncludeFiles)
include(CheckFunctionExists)
include(CheckSymbolExists)
CHECK_INCLUDE_FILES(inittypes.h HAVE_INITTYPES_H)
CHECK_INCLUDE_FILES(stdbool.h HAVE_STDBOOL_H)
CHECK_INCLUDE_FILES(stdint.h HAVE_STDINT_H)
CHECK_INCLUDE_FILES(stdlib.h HAVE_STDLIB_H)
CHECK_INCLUDE_FILES(dlfcn.h HAVE_DLFCN_H)
CHECK_INCLUDE_FILES(malloc.h HAVE_MALLOC_H)
CHECK_FUNCTION_EXISTS(malloc HAVE_MALLOC)
CHECK_INCLUDE_FILES(memory.h HAVE_MEMORY_H)
CHECK_INCLUDE_FILES(math.h HAVE_MATH_H)
CHECK_FUNCTION_EXISTS(fsetround HAVE_FSETROUND)
CHECK_FUNCTION_EXISTS(floor HAVE_FLOOR)
CHECK_FUNCTION_EXISTS(pow HAVE_POW)
CHECK_FUNCTION_EXISTS(sqrt HAVE_SQRT)
CHECK_FUNCTION_EXISTS(strdup HAVE_STRDUP)
CHECK_FUNCTION_EXISTS(strstr HAVE_STRSTR)
CHECK_INCLUDE_FILES(strings.h HAVE_STRINGS_H)
CHECK_INCLUDE_FILES(string.h HAVE_STRING_H)
CHECK_INCLUDE_FILES(sys/stat.h HAVE_SYS_STAT_H)
CHECK_INCLUDE_FILES(sys/types.h HAVE_SYS_TYPES_H)
CHECK_INCLUDE_FILES(unistd.h HAVE_UNISTD_H)
CHECK_INCLUDE_FILES(assert.h HAVE_ASSERT_H)
configure_file("${PROJECT_SOURCE_DIR}/CMakeConfig.in.h"
"${PROJECT_BINARY_DIR}/config.h")
install(FILES "${PROJECT_BINARY_DIR}/config.h"
DESTINATION ${PACKAGE_INSTALL_INC_DIR})
## ADD LIBRARIES SUBDIRECTORIES --------------------------------------------- ## ## ADD LIBRARIES SUBDIRECTORIES --------------------------------------------- ##
## select modules ## include_directories(${PROJECT_BINARY_DIR})
set(ULIB_SELECTED_MODULES include_directories(${SRC_DIR})
Core
Math
Detectors
Root
)
## uLib_add_shared_library puts names there ## uLib_add_shared_library puts names there
set(ULIB_SHARED_LIBRARIES) set(ULIB_SHARED_LIBRARIES)
## select modules ##
set(ULIB_SELECTED_MODULES)
if(ULIB_USE_VTK) include_directories(${SRC_DIR}/Core)
LIST(APPEND ULIB_SELECTED_MODULES Vtk) add_subdirectory(${SRC_DIR}/Core)
endif(ULIB_USE_VTK)
include_directories(${SRC_DIR}/Math)
add_subdirectory(${SRC_DIR}/Math)
include_directories(${SRC_DIR}/Detectors)
add_subdirectory(${SRC_DIR}/Detectors)
include_directories(${SRC_DIR}/Root)
add_subdirectory(${SRC_DIR}/Root)
include_directories(${SRC_DIR}/Vtk)
add_subdirectory(${SRC_DIR}/Vtk)
#add_subdirectory("${SRC_DIR}/utils/make_recipe")
## Documentation and packages ## Documentation and packages
include(uLibGenerateRPMS) #include(uLibGenerateDoc)
include(uLibGenerateDoc)
## this gets ulib modules into a variable ##
function(uLib_modules result)
set(out)
foreach(module ${ULIB_SELECTED_MODULES})
list(APPEND out ${PACKAGE_LIBPREFIX}${module})
endforeach(module)
set(${result} "${out}" PARENT_SCOPE)
endfunction()
## ENTERING MODULES SUBDIRECTORIES ##
message("/////////// SELECTED MODULES //////////////")
foreach(module ${ULIB_SELECTED_MODULES})
message(STATUS "adding module: ${module}")
set( uLib-module ${module})
include_directories(${SRC_DIR}/${module})
add_subdirectory(${SRC_DIR}/${module})
endforeach(module)
## UTILITIES ## ## UTILITIES ##
add_subdirectory("${SRC_DIR}/utils/make_recipe") #add_subdirectory("${SRC_DIR}/utils/make_recipe")
## INSTALLS AND EXPORTS ----------------------------------------------------- ## ## INSTALLS AND EXPORTS ----------------------------------------------------- ##
#export(PACKAGE uLib) #export(PACKAGE ULIB)
export(PACKAGE ULIB) #export(TARGETS ${ULIB_SHARED_LIBRARIES} ${ULIB_EXPORTED_TARGETS}
export(TARGETS ${ULIB_SHARED_LIBRARIES} ${ULIB_EXPORTED_TARGETS} # FILE "${PROJECT_BINARY_DIR}/uLibTargets.cmake" )
FILE "${PROJECT_BINARY_DIR}/uLibTargets.cmake" )
#export(TARGETS ${ULIB_EXPORTED_TARGETS}
# FILE "${PROJECT_BINARY_DIR}/uLibExeTargets.cmake" )
# Create the FooBarConfig.cmake and FooBarConfigVersion files # Create the FooBarConfig.cmake and FooBarConfigVersion files
file(RELATIVE_PATH REL_INCLUDE_DIR "${PACKAGE_INSTALL_CMAKE_DIR}" file(RELATIVE_PATH REL_INCLUDE_DIR "${PACKAGE_INSTALL_CMAKE_DIR}"
"${PACKAGE_INSTALL_INC_DIR}") "${PACKAGE_INSTALL_INC_DIR}")
# ... for the build tree # ... for the build tree
set(CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/src" "${PROJECT_BINARY_DIR}") #set(CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/src" "${PROJECT_BINARY_DIR}")
configure_file(uLibConfig.cmake.in #configure_file(uLibConfig.cmake.in
"${PROJECT_BINARY_DIR}/uLibConfig.cmake" @ONLY) # "${PROJECT_BINARY_DIR}/uLibConfig.cmake" @ONLY)
# ... for the install tree # ... for the install tree
set(CONF_INCLUDE_DIRS "\${ULIB_CMAKE_DIR}/${REL_INCLUDE_DIR}") set(CONF_INCLUDE_DIRS "\${ULIB_CMAKE_DIR}/${REL_INCLUDE_DIR}")
configure_file(uLibConfig.cmake.in configure_file(uLibConfig.cmake.in
"${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/uLibConfig.cmake" @ONLY) "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/uLibConfig.cmake"
@ONLY)
# ... for both # ... for both
configure_file(uLibConfigVersion.cmake.in configure_file(uLibConfigVersion.cmake.in
"${PROJECT_BINARY_DIR}/uLibConfigVersion.cmake" @ONLY) "${PROJECT_BINARY_DIR}/uLibConfigVersion.cmake" @ONLY)
install(FILES "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/uLibConfig.cmake" install(FILES "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/uLibConfig.cmake"
"${PROJECT_BINARY_DIR}/uLibConfigVersion.cmake" "${PROJECT_BINARY_DIR}/uLibConfigVersion.cmake"
"${PROJECT_SOURCE_DIR}/CMake/FindReadLine.cmake"
"${PROJECT_SOURCE_DIR}/CMake/FindROOT.cmake"
"${PROJECT_SOURCE_DIR}/CMake/FindROOTv6.cmake"
"${PROJECT_SOURCE_DIR}/CMake/uLibCommon.cmake"
"${PROJECT_SOURCE_DIR}/CMake/uLibConfigHeader.cmake"
"${PROJECT_SOURCE_DIR}/CMake/uLibDebugMacro.cmake"
"${PROJECT_SOURCE_DIR}/CMake/uLibFindDependencies.cmake"
"${PROJECT_SOURCE_DIR}/CMake/uLibGenerateDoc.cmake"
"${PROJECT_SOURCE_DIR}/CMake/uLibGenerateRMake.cmake"
"${PROJECT_SOURCE_DIR}/CMake/uLibGenerateRPMS.cmake"
"${PROJECT_SOURCE_DIR}/CMake/uLibMacros.cmake"
"${PROJECT_SOURCE_DIR}/CMake/uLibTargetMacros.cmake"
DESTINATION "${PACKAGE_INSTALL_CMAKE_DIR}" DESTINATION "${PACKAGE_INSTALL_CMAKE_DIR}"
COMPONENT dev) COMPONENT dev)
# Install the export set for use with the install-tree # Install the export set for use with the install-tree
install(EXPORT "${PROJECT_NAME}Targets" DESTINATION install(EXPORT "${PROJECT_NAME}Targets"
"${PACKAGE_INSTALL_CMAKE_DIR}" COMPONENT dev) DESTINATION "${PACKAGE_INSTALL_CMAKE_DIR}"
COMPONENT dev)
install(FILES ${PROJECT_SOURCE_DIR}/ulib.h DESTINATION ${PACKAGE_INSTALL_INC_DIR})
# TODO clean also subdirectories
add_custom_target(clean-cmake-files
COMMAND ${CMAKE_COMMAND} -P ${ULIB_CMAKE_DIR}/clean-all.cmake
)

View File

@@ -1,41 +1,27 @@
set(HEADERS set(HEADERS Options.h
Archives.h StaticInterface.h)
Array.h
Debug.h set(SOURCES Options.cpp)
Export.h
Function.h set(LIBRARIES ${Boost_PROGRAM_OPTIONS_LIBRARY})
Macros.h
Mpl.h set(libname ${PACKAGE_LIBPREFIX}Core)
Object.h set(ULIB_SHARED_LIBRARIES ${ULIB_SHARED_LIBRARIES} ${libname} PARENT_SCOPE)
ObjectProps.h set(ULIB_SELECTED_MODULES ${ULIB_SELECTED_MODULES} Core PARENT_SCOPE)
Options.h
Serializable.h add_library(${libname} SHARED ${SOURCES})
Signal.h set_target_properties(${libname} PROPERTIES
Singleton.h VERSION ${PROJECT_VERSION}
SmartPointer.h SOVERSION ${PROJECT_SOVERSION})
StaticInterface.h target_link_libraries(${libname} ${LIBRARIES})
StringReader.h
Types.h install(TARGETS ${libname}
Uuid.h EXPORT "${PROJECT_NAME}Targets"
Timer.h RUNTIME DESTINATION ${PACKAGE_INSTALL_BIN_DIR} COMPONENT bin
) LIBRARY DESTINATION ${PACKAGE_INSTALL_LIB_DIR} COMPONENT lib)
install(FILES ${HEADERS} DESTINATION ${PACKAGE_INSTALL_INC_DIR}/Core)
SET(SOURCES
Archives.cpp
Object.cpp
Options.cpp
Serializable.cpp
Signal.cpp
Uuid.cpp
)
set(LIBRARIES
${Boost_SERIALIZATION_LIBRARY}
${Boost_SIGNALS_LIBRARY}
${Boost_PROGRAM_OPTIONS_LIBRARY}
${ROOT_LIBRARIES}
)
uLib_add_shared_library(${uLib-module})
add_subdirectory(testing)

View File

@@ -1,37 +1,6 @@
#set(HEADERS
# DetectorChamber.h
# ExperimentFitEvent.h
# GeantEvent.h
# HitMC.h
# MuonScatter.h
# MuonEvent.h
# MuonError.h
# ChamberHitEvent.h
# Hit.h
# LinearFit.h
# Solid.h
# Matter.h
# Scene.h
#)
#set(SOURCES
# Solid.cpp
# Scene.cpp
#)
#set(LIBRARIES
# ${Boost_SERIALIZATION_LIBRARY}
# ${Boost_SIGNALS_LIBRARY}
# ${Boost_PROGRAM_OPTIONS_LIBRARY}
# ${Eigen_LIBRARY}
# ${Geant4_LIBRARIES}
# ${ROOT_LIBRARIES}
# ${PACKAGE_LIBPREFIX}Core
# ${PACKAGE_LIBPREFIX}Math
#)
set(HEADERS MuonScatter.h MuonError.h MuonEvent.h) set(HEADERS MuonScatter.h MuonError.h MuonEvent.h)
uLib_add_shared_library(${uLib-module}) set(ULIB_SELECTED_MODULES ${ULIB_SELECTED_MODULES} Detectors PARENT_SCOPE)
add_subdirectory(testing)
install(FILES ${HEADERS}
DESTINATION ${PACKAGE_INSTALL_INC_DIR}/Detectors)

View File

@@ -1,53 +1,53 @@
set(HEADERS ContainerBox.h
Dense.h
Geometry.h
Transform.h
StructuredData.h
StructuredGrid.h
VoxImage.h
VoxRaytracer.h
Utils.h
VoxImageFilter.h
VoxImageFilter.hpp
VoxImageFilterLinear.hpp
VoxImageFilterMedian.hpp
VoxImageFilterABTrim.hpp
VoxImageFilterBilateral.hpp
VoxImageFilterThreshold.hpp
VoxImageFilter2ndStat.hpp
VoxImageFilterCustom.hpp
Accumulator.h
TriangleMesh.h
BitCode.h
Structured2DGrid.h
Structured4DGrid.h)
# HEADERS set(SOURCES VoxRaytracer.cpp
set(HEADERS StructuredData.cpp
ContainerBox.h StructuredGrid.cpp
Dense.h VoxImage.cpp
Geometry.h TriangleMesh.cpp
Transform.h Dense.cpp
StructuredData.h Structured2DGrid.cpp
StructuredGrid.h Structured4DGrid.cpp)
VoxImage.h
VoxRaytracer.h
Utils.h
VoxImageFilter.h
VoxImageFilter.hpp
VoxImageFilterLinear.hpp
VoxImageFilterMedian.hpp
VoxImageFilterABTrim.hpp
VoxImageFilterBilateral.hpp
VoxImageFilterThreshold.hpp
VoxImageFilter2ndStat.hpp
VoxImageFilterCustom.hpp
Accumulator.h
TriangleMesh.h
BitCode.h
Structured2DGrid.h
Structured4DGrid.h
)
set(LIBRARIES ${Eigen_LIBRARY}
${ROOT_LIBRARIES})
# SOURCES set(libname ${PACKAGE_LIBPREFIX}Math)
set(SOURCES set(ULIB_SHARED_LIBRARIES ${ULIB_SHARED_LIBRARIES} ${libname} PARENT_SCOPE)
VoxRaytracer.cpp set(ULIB_SELECTED_MODULES ${ULIB_SELECTED_MODULES} Math PARENT_SCOPE)
StructuredData.cpp
StructuredGrid.cpp
VoxImage.cpp
TriangleMesh.cpp
Dense.cpp
Structured2DGrid.cpp
Structured4DGrid.cpp
)
set(LIBRARIES add_library(${libname} SHARED ${SOURCES})
${Boost_SERIALIZATION_LIBRARY} set_target_properties(${libname} PROPERTIES
${Boost_SIGNALS_LIBRARY} VERSION ${PROJECT_VERSION}
${Boost_PROGRAM_OPTIONS_LIBRARY} SOVERSION ${PROJECT_SOVERSION})
${Eigen_LIBRARY} target_link_libraries(${libname} ${LIBRARIES})
${ROOT_LIBRARIES}
${PACKAGE_LIBPREFIX}Core
)
install(TARGETS ${libname}
EXPORT "${PROJECT_NAME}Targets"
RUNTIME DESTINATION ${PACKAGE_INSTALL_BIN_DIR} COMPONENT bin
LIBRARY DESTINATION ${PACKAGE_INSTALL_LIB_DIR} COMPONENT lib)
install(FILES ${HEADERS} DESTINATION ${PACKAGE_INSTALL_INC_DIR}/Math)
uLib_add_shared_library(${uLib-module})
add_subdirectory(testing)

View File

@@ -28,11 +28,12 @@
#ifndef VOXIMAGEFILTERCUSTOM_HPP #ifndef VOXIMAGEFILTERCUSTOM_HPP
#define VOXIMAGEFILTERCUSTOM_HPP #define VOXIMAGEFILTERCUSTOM_HPP
#include "Core/Macros.h"
#include <Math/Dense.h> #include <Math/Dense.h>
#include "Math/VoxImage.h" #include "Math/VoxImage.h"
#include "VoxImageFilter.h" #include "VoxImageFilter.h"
#define likely(expr) __builtin_expect(!!(expr), 1)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
///// VOXIMAGE FILTER CUSTOM ///////////////////////////////////////////////// ///// VOXIMAGE FILTER CUSTOM /////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////

View File

@@ -24,12 +24,12 @@
//////////////////////////////////////////////////////////////////////////////*/ //////////////////////////////////////////////////////////////////////////////*/
#include <iostream>
#include "VoxRaytracer.h" #include "VoxRaytracer.h"
#include "Utils.h" #include "Utils.h"
#include "Core/Macros.h" #define unlikely(expr) __builtin_expect(!!(expr), 0)
inline float fast_sign(float f) { return 1 - 2 * (f < 0); } inline float fast_sign(float f) { return 1 - 2 * (f < 0); }

View File

@@ -1,55 +1,58 @@
set(HEADERS set(HEADERS RootMathDense.h
TestTObject.h RootMuonScatter.h
RootMathDense.h RootHitRaw.h
RootMuonScatter.h muCastorMCTrack.h
RootHitRaw.h muCastorHit.h
muBlastHit.h muCastorInfo.h
muBlastMCTrack.h muCastorSkinHit.h
muCastorMCTrack.h SkinDetectorWriter.h)
muCastorHit.h
muCastorInfo.h
)
set(DICTIONARY_HEADERS set(SOURCES ${HEADERS} RootMuonScatter.cpp
TestTObject.h muCastorMCTrack.cpp
RootMathDense.h muCastorHit.cpp
RootMuonScatter.h muCastorInfo.cpp
RootHitRaw.h muCastorSkinHit.cpp
muBlastHit.h SkinDetectorWriter.cpp)
muBlastMCTrack.h
muCastorMCTrack.h
muCastorHit.h
muCastorInfo.h
)
SET(SOURCES set(DICTIONARY_HEADERS muCastorMCTrack.h
TestTObject.cpp muCastorHit.h
RootMuonScatter.cpp muCastorInfo.h
muBlastHit.cpp muCastorSkinHit.h
muBlastMCTrack.cpp SkinDetectorWriter.h)
muCastorMCTrack.cpp
muCastorHit.cpp
muCastorInfo.cpp
)
set(LIBRARIES set(LIBRARIES ${ROOT_LIBRARIES}
# ${Boost_SERIALIZATION_LIBRARY} ${PACKAGE_LIBPREFIX}Math)
# ${Boost_SIGNALS_LIBRARY}
# ${Boost_PROGRAM_OPTIONS_LIBRARY}
${ROOT_LIBRARIES}
${PACKAGE_LIBPREFIX}Core
${PACKAGE_LIBPREFIX}Math
)
include(FindROOTv6) set(rDictName ${PACKAGE_LIBPREFIX}RootDict)
root_generate_dictionary(uLibRootDict ${DICTIONARY_HEADERS} LINKDEF Linkdef.h) root_generate_dictionary(${rDictName} ${DICTIONARY_HEADERS}
set_source_files_properties(uLibRootDict.cxx PROPERTIES GENERATED TRUE) LINKDEF Linkdef.h)
set_source_files_properties(uLibRootDict.h PROPERTIES GENERATED TRUE) set_source_files_properties(${rDictName}.cxx
list(APPEND SOURCES uLibRootDict.cxx) PROPERTIES GENERATED TRUE)
set_source_files_properties(${rDictName}.h
PROPERTIES GENERATED TRUE)
list(APPEND SOURCES ${rDictName}.cxx)
# TODO use a custom target linked to root_generate_dictionary # TODO use a custom target linked to root_generate_dictionary
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/uLibRootDict_rdict.pcm set(R_ARTIFACTS ${CMAKE_CURRENT_BINARY_DIR}/lib${rDictName}_rdict.pcm
${CMAKE_CURRENT_BINARY_DIR}/lib${rDictName}.rootmap)
install(FILES ${R_ARTIFACTS}
DESTINATION ${PACKAGE_INSTALL_LIB_DIR}) DESTINATION ${PACKAGE_INSTALL_LIB_DIR})
uLib_add_shared_library(${uLib-module}) set(libname ${PACKAGE_LIBPREFIX}Root)
add_subdirectory(testing) set(ULIB_SHARED_LIBRARIES ${ULIB_SHARED_LIBRARIES} ${libname} PARENT_SCOPE)
set(ULIB_SELECTED_MODULES ${ULIB_SELECTED_MODULES} Root PARENT_SCOPE)
add_library(${libname} SHARED ${SOURCES})
set_target_properties(${libname} PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION ${PROJECT_SOVERSION})
target_link_libraries(${libname} ${LIBRARIES})
install(TARGETS ${libname}
EXPORT "${PROJECT_NAME}Targets"
RUNTIME DESTINATION ${PACKAGE_INSTALL_BIN_DIR} COMPONENT bin
LIBRARY DESTINATION ${PACKAGE_INSTALL_LIB_DIR} COMPONENT lib)
install(FILES ${HEADERS} DESTINATION ${PACKAGE_INSTALL_INC_DIR}/Root)

View File

@@ -79,6 +79,9 @@ using namespace ROOT::Mutom;
#pragma link C++ class muCastorMCTrack+; #pragma link C++ class muCastorMCTrack+;
#pragma link C++ class muCastorHit+; #pragma link C++ class muCastorHit+;
#pragma link C++ class muCastorInfo+; #pragma link C++ class muCastorInfo+;
#pragma link C++ class muCastorSkinHit+;
#pragma link C++ class SkinDetectorWriter+;
#endif // __CINT__ #endif // __CINT__

View File

@@ -0,0 +1,47 @@
#include "SkinDetectorWriter.h"
#include "muCastorSkinHit.h"
#include "TVector3.h"
SkinDetectorWriter::SkinDetectorWriter(string filename) :
t_file(nullptr),
t_tree(nullptr),
t_buffer(nullptr),
i_status(0)
{
t_file = new TFile(filename.c_str(), "RECREATE");
t_tree = new TTree("muCastorMC", "muCastorMC");
t_buffer = new TClonesArray("muCastorSkinHit");
t_tree->Branch("CastorSkinHits", "TClonesArray", t_buffer, 32000, 99);
if (t_file->IsZombie()) i_status = 1;
}
SkinDetectorWriter::~SkinDetectorWriter()
{}
void SkinDetectorWriter::add(int detID, float p_x, float p_y, float p_z,
float m_x, float m_y, float m_z)
{
TClonesArray& ref = *t_buffer;
int size = ref.GetEntriesFast();
muCastorSkinHit* new_hit = new(ref[size]) muCastorSkinHit();
new_hit->SetDetID(detID);
new_hit->SetPdgCode(13);
new_hit->SetMotherID(-1);
new_hit->SetPos (TVector3(p_x, p_y, p_z));
new_hit->SetMom (TVector3(m_x, m_y, m_z));
}
void SkinDetectorWriter::write()
{
if (t_tree->Fill() < 0) i_status = 2;
t_buffer->Delete(); // or t_buffer->Clear() ??
}
void SkinDetectorWriter::close()
{
if (t_tree->Write() == 0) i_status = 3;
t_file->Close();
}

View File

@@ -0,0 +1,32 @@
#ifndef SkinDetectorWriter_h
#define SkinDetectorWriter_h
#include <string>
#include "TFile.h"
#include "TTree.h"
#include "TClonesArray.h"
using std::string;
class SkinDetectorWriter
{
public:
SkinDetectorWriter(string filename);
virtual ~SkinDetectorWriter();
void add(int detID, float p_x, float p_y, float p_z, float m_x, float m_y, float m_z);
int status() { return i_status; }
void write();
void close();
private:
TFile* t_file;
TTree* t_tree;
TClonesArray* t_buffer;
int i_status;
};
#endif //SkinDetectorWriter_h

View File

@@ -9,6 +9,7 @@
// Martin Subieta martin.subieta@ing.unibs.it // Martin Subieta martin.subieta@ing.unibs.it
//######################################## //########################################
#include <iostream>
#include <vector> #include <vector>
#include "TObject.h" #include "TObject.h"
#include "TParticle.h" #include "TParticle.h"

View File

@@ -9,6 +9,7 @@
// Martin Subieta martin.subieta@ing.unibs.it // Martin Subieta martin.subieta@ing.unibs.it
//######################################## //########################################
#include <iostream>
#include "vector" #include "vector"
#include "TObject.h" #include "TObject.h"
#include "TParticle.h" #include "TParticle.h"

View File

@@ -0,0 +1,43 @@
//----------------------------------------------------------
// Class : CastorSkinHit
// Date: October 2020
// Author: Germano Bonomi germano.bonomi@unibs.it
//----------------------------------------------------------
#include <iostream>
#include "muCastorSkinHit.h"
/// \cond CLASSIMP
ClassImp(muCastorSkinHit)
/// \endcond
using namespace std;
//_____________________________________________________________________________
muCastorSkinHit::muCastorSkinHit() :
fDetID(-1),
fPdgCode(-1),
fMotherID(-1),
fMomX(0.),
fMomY(0.),
fMomZ(0.),
fPosX(0.),
fPosY(0.),
fPosZ(0.)
{}
//_____________________________________________________________________________
muCastorSkinHit::~muCastorSkinHit()
{}
//_____________________________________________________________________________
void muCastorSkinHit::Print(const Option_t* /*opt*/) const
{
cout << " detID: " << fDetID
<< " position (cm): ("
<< fPosX << ", " << fPosY << ", " << fPosZ << ")"
<< " momentum (MeV/c): ("
<< fMomX << ", " << fMomY << ", " << fMomZ << ")"
<< endl;
}

View File

@@ -0,0 +1,52 @@
//----------------------------------------------------------
// Class : CastorSkinHit
// Date: October 2020
// Author: Germano Bonomi germano.bonomi@unibs.it
//----------------------------------------------------------
#ifndef muCastor_SKINHIT_H
#define muCastor_SKINHIT_H
#include <TObject.h>
#include <TVector3.h>
class muCastorSkinHit : public TObject
{
public:
muCastorSkinHit();
virtual ~muCastorSkinHit();
// methods
virtual void Print(const Option_t* option = "") const;
// set methods
void SetDetID(Int_t id) { fDetID = id; };
void SetPdgCode(Int_t pdg) { fPdgCode = pdg; };
void SetMotherID(Int_t mid) { fMotherID = mid; };
void SetMom(TVector3 xyz) { fMomX = xyz.X(); fMomY = xyz.Y(); fMomZ = xyz.Z(); };
void SetPos(TVector3 xyz) { fPosX = xyz.X(); fPosY = xyz.Y(); fPosZ = xyz.Z(); };
Int_t GetDetID() { return fDetID; }
Int_t GetPdgCode() { return fPdgCode; }
Int_t GetMotherID() { return fMotherID; }
TVector3 GetMom() { return TVector3(fMomX, fMomY, fMomZ); }
TVector3 GetPos() { return TVector3(fPosX, fPosY, fPosZ); }
private:
Int_t fDetID; // Detector module ID
Int_t fPdgCode; // Particle PDG Code
Int_t fMotherID; // Particle mother ID (-1 = primary, 0 = secondary, etc..)
Double_t fMomX; // Track momentum when releasing the hit (X)
Double_t fMomY; // Track momentum when releasing the hit (Y)
Double_t fMomZ; // Track momentum when releasing the hit (Z)
Double_t fPosX; // Hit coordinates (at the entrance of the detector) (X)
Double_t fPosY; // Hit coordinates (at the entrance of the detector) (Y)
Double_t fPosZ; // Hit coordinates (at the entrance of the detector) (Z)
ClassDef(muCastorSkinHit,1) //muCastorSkinHit
};
#endif //muCastort_SKINHIT_H

View File

@@ -1,37 +1,38 @@
set(HEADERS set(HEADERS uLibVtkInterface.h
uLibVtkInterface.h uLibVtkViewer.h
uLibVtkViewer.h vtkContainerBox.h
vtkContainerBox.h vtkMuonScatter.h
vtkMuonScatter.h vtkStructuredGrid.h
vtkStructuredGrid.h vtkVoxRaytracerRepresentation.h
vtkVoxRaytracerRepresentation.h vtkVoxImage.h)
vtkVoxImage.h
# vtkHLineRepresentation.h
# vtkTriangleMesh.h
)
SET(SOURCES set(SOURCES uLibVtkInterface.cxx
uLibVtkInterface.cxx uLibVtkViewer.cpp
uLibVtkViewer.cpp vtkContainerBox.cpp
vtkContainerBox.cpp vtkMuonScatter.cxx
vtkMuonScatter.cxx vtkStructuredGrid.cpp
vtkStructuredGrid.cpp vtkVoxRaytracerRepresentation.cpp
vtkVoxRaytracerRepresentation.cpp vtkVoxImage.cpp)
vtkVoxImage.cpp
)
set(LIBRARIES set(LIBRARIES ${Eigen_LIBRARY}
${Boost_SERIALIZATION_LIBRARY} ${ROOT_LIBRARIES}
${Boost_SIGNALS_LIBRARY} ${VTK_LIBRARIES}
${Boost_PROGRAM_OPTIONS_LIBRARY} ${PACKAGE_LIBPREFIX}Math)
${Eigen_LIBRARY}
${ROOT_LIBRARIES}
${Geant4_LIBRARIES}
${VTK_LIBRARIES}
${PACKAGE_LIBPREFIX}Core
${PACKAGE_LIBPREFIX}Math
)
uLib_add_shared_library(${uLib-module}) set(libname ${PACKAGE_LIBPREFIX}Vtk)
set(ULIB_SHARED_LIBRARIES ${ULIB_SHARED_LIBRARIES} ${libname} PARENT_SCOPE)
set(ULIB_SELECTED_MODULES ${ULIB_SELECTED_MODULES} Vtk PARENT_SCOPE)
add_library(${libname} SHARED ${SOURCES})
set_target_properties(${libname} PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION ${PROJECT_SOVERSION})
target_link_libraries(${libname} ${LIBRARIES})
install(TARGETS ${libname}
EXPORT "${PROJECT_NAME}Targets"
RUNTIME DESTINATION ${PACKAGE_INSTALL_BIN_DIR} COMPONENT bin
LIBRARY DESTINATION ${PACKAGE_INSTALL_LIB_DIR} COMPONENT lib)
install(FILES ${HEADERS} DESTINATION ${PACKAGE_INSTALL_INC_DIR}/Vtk)
add_subdirectory(testing)

View File

@@ -1,35 +0,0 @@
/*//////////////////////////////////////////////////////////////////////////////
// CMT Cosmic Muon Tomography project //////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
Copyright (c) 2014, Universita' degli Studi di Padova, INFN sez. di Padova
All rights reserved
Authors: Andrea Rigoni Garola < andrea.rigoni@pd.infn.it >
------------------------------------------------------------------
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 3.0 of the License, or (at your option) any later version.
This library 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library.
//////////////////////////////////////////////////////////////////////////////*/
#include "Object.h"
int main()
{
return 0;
}

View File

@@ -9,11 +9,7 @@ get_filename_component(ULIB_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
set(ULIB_INCLUDE_DIRS "@CONF_INCLUDE_DIRS@") set(ULIB_INCLUDE_DIRS "@CONF_INCLUDE_DIRS@")
# Our library dependencies (contains definitions for IMPORTED targets) # Our library dependencies (contains definitions for IMPORTED targets)
# if(NOT TARGET foo AND NOT FooBar_BINARY_DIR) include("${ULIB_CMAKE_DIR}/uLibTargets.cmake")
include("${ULIB_CMAKE_DIR}/uLibTargets.cmake")
# endif()
# These are IMPORTED targets created by FooBarTargets.cmake # These are IMPORTED targets created by FooBarTargets.cmake
# set(FOOBAR_LIBRARIES foo)
# set(FOOBAR_EXECUTABLE bar)
set(ULIB_LIBRARIES @ULIB_SHARED_LIBRARIES@) set(ULIB_LIBRARIES @ULIB_SHARED_LIBRARIES@)