From aec528e1c191eab36a8bb380d62931cab0255f3b Mon Sep 17 00:00:00 2001 From: lintao <lintao51@gmail.com> Date: Fri, 14 Jun 2024 10:46:54 +0800 Subject: [PATCH] prepare. --- CMakeLists.txt | 47 +++++++++++++++++++++++++++++++++++++++++++++++ edm4cepc.yaml | 22 ++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 edm4cepc.yaml diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..cd37656 --- /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 0000000..050a2ac --- /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 -- GitLab