diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..cd376566333469f4995c145f78ec30ccfd60985a --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,47 @@ +# Reference: +# - https://github.com/eic/EDM4eic/blob/main/CMakeLists.txt + +cmake_minimum_required(VERSION 3.23) + +############################################################################## +# Project metadata +############################################################################## +project(EDM4cepc) + +SET( ${PROJECT_NAME}_VERSION_MAJOR 0 ) +SET( ${PROJECT_NAME}_VERSION_MINOR 1 ) +SET( ${PROJECT_NAME}_VERSION_PATCH 0 ) +SET( ${PROJECT_NAME}_VERSION "${${PROJECT_NAME}_VERSION_MAJOR}.${${PROJECT_NAME}_VERSION_MINOR}.${${PROJECT_NAME}_VERSION_PATCH}" ) + +# C++ standard +set(CMAKE_CXX_STANDARD 17 CACHE STRING "Set the C++ standard to be used") +if(NOT CMAKE_CXX_STANDARD MATCHES "17|20") + message(FATAL_ERROR "Unsupported C++ standard: ${CMAKE_CXX_STANDARD}") +endif() +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +include(GNUInstallDirs) + + +############################################################################## +# Dependencies +############################################################################## + +find_package(podio REQUIRED) +include_directories(${podio_INCLUDE_DIR}) + +find_package(EDM4HEP REQUIRED) + +find_package(ROOT 6 REQUIRED COMPONENTS Core RIO Tree) +include(${ROOT_USE_FILE}) + +############################################################################## +# Generate code +############################################################################## + +PODIO_GENERATE_DATAMODEL( + edm4cepc edm4cepc.yaml headers sources + UPSTREAM_EDM edm4hep:${EDM4HEP_DATA_DIR}/edm4hep.yaml + IO_BACKEND_HANDLERS ${PODIO_IO_HANDLERS} +) diff --git a/edm4cepc.yaml b/edm4cepc.yaml new file mode 100644 index 0000000000000000000000000000000000000000..050a2ac4f3e153a72f6ec0a1040d07ea28e0bb33 --- /dev/null +++ b/edm4cepc.yaml @@ -0,0 +1,22 @@ +--- +schema_version: 1 + +options: + getSyntax: True + exposePODMembers: False + includeSubfolder: True + +datatypes: + + #------------- RecTof + edm4hep::RecTof: + Description: "Reconstructed TOF (time of flight) info." + Author: "EDM4hep authors" + Members: + - float time [ns] // time measurement + - std::array<float, 5> timeExp [ns] // expected time for e(0),mu(1),pi(2),K(3),p(4) + - float sigma // time resolution + - std::array<float, 5> pathLength [mm] // length of flight for e(0),mu(1),pi(2),K(3),p(4) + - edm4hep::Vector3d position [mm] // extrapolated hit position + OneToOneRelations: + - edm4hep::Track track // the corresponding track