Commit 6505777b authored by Jens Kroeger's avatar Jens Kroeger
Browse files

AnalysisTimingATLASpix: resolve merge conflict

parents a44174df 1ac15938
......@@ -2,7 +2,7 @@
#Get the line for the CVMFS status and chech if server is transaction
clicdp_status=`cvmfs_server list | grep clicdp`
if [[ $clicdp_status == *"(stratum0 / local)"* ]]; then
if [[ $clicdp_status == *"(stratum0 / S3)"* ]]; then
echo "No ongoing CVMFS transaction detected, initializing new transaction."
# Start transaction
cvmfs_server transaction clicdp.cern.ch
......
#!/bin/bash
if [ "$(uname)" == "Darwin" ]; then
if [ $(sw_vers -productVersion | awk -F '.' '{print $1 "." $2}') == "10.14" ]; then
OS=mac1014
COMPILER_TYPE=clang
COMPILER_VERSION=clang100
else
echo "Bootstrap only works on macOS Mojave (10.14)"
exit 1
fi
else
echo "This script is only meant for Mac"
exit 1
fi
# Determine is you have CVMFS installed
if [ ! -d "/cvmfs" ]; then
echo "No CVMFS detected, please install it."
exit 1
fi
if [ ! -d "/cvmfs/clicdp.cern.ch" ]; then
echo "No clicdp CVMFS repository detected, please add it."
exit 1
fi
# Choose build type
if [ -z ${BUILD_TYPE} ]; then
BUILD_TYPE=opt
fi
# General variables
CLICREPO=/cvmfs/clicdp.cern.ch
BUILD_FLAVOUR=x86_64-${OS}-${COMPILER_VERSION}-${BUILD_TYPE}
#--------------------------------------------------------------------------------
# CMake
#--------------------------------------------------------------------------------
export CMAKE_HOME=${CLICREPO}/software/CMake/3.14.3/${BUILD_FLAVOUR}
export PATH=${CMAKE_HOME}/bin:$PATH
#--------------------------------------------------------------------------------
# ROOT
#--------------------------------------------------------------------------------
export ROOTSYS=${CLICREPO}/software/ROOT/6.18.00/${BUILD_FLAVOUR}
export PYTHONPATH="$ROOTSYS/lib:$PYTHONPATH"
export PATH="$ROOTSYS/bin:$PATH"
export DYLD_LIBRARY_PATH="$ROOTSYS/lib:$DYLD_LIBRARY_PATH"
#--------------------------------------------------------------------------------
# Ninja
#--------------------------------------------------------------------------------
export Ninja_HOME=${CLICREPO}/software/Ninja/1.9.0/${BUILD_FLAVOUR}
export PATH="$Ninja_HOME:$PATH"
#--------------------------------------------------------------------------------
# Eigen
#--------------------------------------------------------------------------------
export Eigen_HOME=${CLICREPO}/software/Eigen/3.3.7/${BUILD_FLAVOUR}
export Eigen3_DIR=${Eigen_HOME}/share/eigen3/cmake/
......@@ -7,8 +7,15 @@ if [ "$(uname)" == "Linux" ]; then
elif [ "$( cat /etc/*-release | grep CentOS )" ]; then
OS=centos7
else
echo "Cannot detect OS, falling back to SLC6"
OS=slc6
echo "Cannot detect OS, falling back to CentOS7"
OS=centos7
fi
elif [ "$(uname)" == "Darwin" ]; then
if [ $(sw_vers -productVersion | awk -F '.' '{print $1 "." $2}') == "10.15" ]; then
OS=mac1015
else
echo "Bootstrap only works on macOS Catalina (10.15)"
exit 1
fi
else
echo "Unknown OS"
......@@ -32,23 +39,38 @@ fi
# Determine which LCG version to use
if [ "$(uname)" == "Darwin" ]; then
DEFAULT_LCG="LCG_97python3"
else
DEFAULT_LCG="LCG_96b"
fi
if [ -z ${LCG_VERSION} ]; then
echo "No explicit LCG version set, using LCG_96b."
LCG_VERSION="LCG_96b"
echo "No explicit LCG version set, using ${DEFAULT_LCG}."
LCG_VERSION=${DEFAULT_LCG}
fi
# Determine which compiler to use
if [ -z ${COMPILER_TYPE} ]; then
echo "No compiler type set, falling back to GCC."
COMPILER_TYPE="gcc"
if [ "$(uname)" == "Darwin" ]; then
COMPILER_TYPE="llvm"
echo "No compiler type set, falling back to AppleClang."
else
echo "No compiler type set, falling back to GCC."
COMPILER_TYPE="gcc"
fi
fi
if [ ${COMPILER_TYPE} == "gcc" ]; then
echo "Compiler type set to GCC."
COMPILER_VERSION="gcc8"
echo "Compiler type set to GCC, version ${COMPILER_VERSION}."
fi
if [ ${COMPILER_TYPE} == "llvm" ]; then
echo "Compiler type set to LLVM."
COMPILER_VERSION="clang8"
if [ "$(uname)" == "Darwin" ]; then
COMPILER_VERSION="clang110"
else
COMPILER_VERSION="clang8"
fi
echo "Compiler type set to LLVM, version ${COMPILER_VERSION}."
fi
# Choose build type
......@@ -64,7 +86,8 @@ export BUILD_FLAVOUR=x86_64-${OS}-${COMPILER_VERSION}-${BUILD_TYPE}
# Source full LCG view
#--------------------------------------------------------------------------------
source ${SFTREPO}/lcg/views/${LCG_VERSION}/${BUILD_FLAVOUR}/setup.sh
export LCG_VIEW=${SFTREPO}/lcg/views/${LCG_VERSION}/${BUILD_FLAVOUR}/setup.sh
source ${LCG_VIEW} || echo "yes"
# Fix LCIO path for LCG_96, cmake configs are not properly placed:
export LCIO_DIR=$(dirname $(dirname $(readlink $(which lcio_event_counter))))
......@@ -98,12 +98,12 @@ cmp:cc7-llvm:
- lib
expire_in: 3 hour
cmp:mac1014-clang:
cmp:mac1015-clang:
stage: compilation
tags:
- mac
script:
- source .gitlab-ci.d/init_mac.sh
- source .gitlab-ci.d/init_x86_64.sh
- source .gitlab-ci.d/load_deps.sh
- mkdir build
- cd build
......
......@@ -65,7 +65,9 @@ ENDIF()
# Set up the RPATH so executables find the libraries even when installed in non-default location
SET(CMAKE_MACOSX_RPATH TRUE)
SET(CMAKE_SKIP_BUILD_RPATH FALSE)
SET(CMAKE_SKIP_INSTALL_RPATH FALSE)
SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
SET(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR})
# Add the automatically determined parts of the RPATH which point to directories outside the build tree to the install RPATH
SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
......@@ -76,6 +78,11 @@ IF("${IsSystemDir}" STREQUAL "-1")
SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
ENDIF("${IsSystemDir}" STREQUAL "-1")
IF(APPLE)
SET(CMAKE_INSTALL_NAME_DIR "@rpath")
SET(CMAKE_INSTALL_RPATH "@loader_path/../lib") # self relative LIBDIR
ENDIF()
# Include corry cmake functions
INCLUDE("cmake/corryvreckan.cmake")
......@@ -122,11 +129,11 @@ IF(NOT ROOT_FOUND)
ENDIF()
# Downgrade to C++14 if ROOT is not build with C++17 support
IF(ROOT_CXX_FLAGS MATCHES ".*std=c\\+\\+17.*")
IF(ROOT_CXX_FLAGS MATCHES ".*std=c\\+\\+1[7z].*")
IF(NOT SUPPORT_STD_CXX17)
MESSAGE(FATAL_ERROR "ROOT was built with C++17 support but current compiler doesn't support it")
ENDIF()
ELSEIF(ROOT_CXX_FLAGS MATCHES ".*std=c\\+\\+1[14].*")
ELSEIF(ROOT_CXX_FLAGS MATCHES ".*std=c\\+\\+1[14y].*")
SET(CMAKE_CXX_STANDARD 14)
ELSEIF(ROOT_CXX_FLAGS MATCHES ".*std=c\\+\\+.*")
MESSAGE(FATAL_ERROR "ROOT was built with an unsupported C++ version: ${ROOT_CXX_FLAGS}")
......@@ -152,6 +159,11 @@ ADD_SUBDIRECTORY(3rdparty/GeneralBrokenLines)
SET(CORRYVRECKAN_DEPS_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS})
SET(CORRYVRECKAN_DEPS_LIBRARIES Eigen3::Eigen ROOT::Core ROOT::GenVector ROOT::Geom ROOT::RIO ROOT::Hist ROOT::Minuit ROOT::Minuit2 GBL)
# Add the LCG view as dependency if set:
IF(DEFINED ENV{LCG_VIEW})
ADD_RUNTIME_DEP($ENV{LCG_VIEW})
ENDIF()
# Add "thisroot.sh" as runtime dependency for setup.sh file:
ADD_RUNTIME_DEP(thisroot.sh)
......
MIT License
Copyright (c) 2017 CERN and the Corryvreckan authors
Copyright (c) 2017-2020 CERN and the Corryvreckan authors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
......
......@@ -53,6 +53,7 @@ The following authors, in alphabetical order, have contributed to Corryvreckan:
* Matthew Daniel Buckland, University of Liverpool, @mbucklan
* Dominik Dannheim, CERN, @dannheim
* Katharina Dort, University of Giessen/CERN, @kdort
* Alexander Ferk, CERN, @aferk
* Adrian Fiergolski, CERN, @afiergol
* Lennart Huth, DESY, @lhuth
* Magnus Mager, CERN, @mmager
......
......@@ -281,12 +281,15 @@ which describes a rotation of \SI{45}{\degree} around the $Z$ axis, followed by
All supported rotations are extrinsic active rotations, i.e. the vector itself is rotated, not the coordinate system. All angles in configuration files should be specified in the order they will be applied.
\end{warning}
\item The \parameter{coordinates} parameter represents the local coordinate of detectors, the coordinates can be \textbf{cartesian}, \textbf{polar}, etc. The default \parameter{coordinates} is \textbf{cartesian}.
\item The \parameter{number_of_pixels} parameter represents a two-dimensional vector with the number of pixels in the active matrix in the column and row directions respectively.
\item The \parameter{pixel_pitch} is a two-dimensional vector defining the size of a single pixel in the column and row directions respectively.
\item The intrinsic resolution of the detector has to be specified using the \parameter{spatial_resolution} parameter, a two-dimensional vector holding the position resolution for the column and row directions. This value is used to assign the uncertainty of cluster positions. This parameter defaults to the pitch$/\sqrt{12}$ of the respective detector if not specified.
\item The intrinsic time resolution of the detector should be specified using the \parameter{time_resolution} parameter with units of time. This can be used to apply detector specific time cuts in modules. This parameter is only required when using relative time cuts in the analysis.
\item The \parameter{time_offset} can be used to shift the reference time frame of an individual detector to e.g.\ account for time of flight effects between different detector planes by adding a fixed offset.
\item The \parameter{material_budget} defines the material budget of the sensor layer in fractions of the radiation length, including support. If no value is defined a default of zero is assumed. A given value has to be larger than zero.
\item The \parameter{calibration_file} parameter can be used to supply an additional file with data relevant for the detector calibration. Since this data and its interpretation is detector-specific, the framework does not open or parse the file but simply provide its path to modules implementing calibration of this specific detector data.
\item Pixels to be masked in the offline analysis can be placed in a separate file specified by the \parameter{mask_file} parameter, which is explained in detail in Section~\ref{sec:masking}.
\item A region of interest in the given detector can be defined using the \parameter{roi} parameter. More details on this functionality can be found in Section~\ref{sec:roi}.
\end{itemize}
......
......@@ -238,6 +238,6 @@ The global coordinate system is chosen as a right-handed Cartesian system, and t
Here, the beam direction defines the positive z-axis at the origin of the x-y-plane.
The origin along the z-axis is fixed by the placement of the detectors in the geometry of the setup.
Local coordinate systems for the detectors are also right-handed Cartesian systems, with the x- and y-axes defining the sensor plane.
The origin of this coordinate system is the center of the lower left pixel in the grid, i.e.\ the pixel with indices (0,0).
This simplifies calculations in the local coordinate system as all positions can either be stated in absolute numbers or in fractions of the pixel pitch.
There are several kinds of detectors with different local coordinate system, e.g., Cartesian coordinate for pixel detector and polar coordinate for some specific strip detectors. For this reason, the \textsl{Detector} class is designed as an interface, the detector with a specific coordinate system will be generated according to the parameter in the detector configuration file. In the current version, the Cartesian coordinate is the only available one.
For the local Cartesian coordinate system, it is right-handed with the x- and y-axes defining the sensor plane. The origin of this coordinate system is the center of the lower left pixel in the grid, i.e.\ the pixel with indices (0,0). This simplifies calculations in the local coordinate system as all positions can either be stated in absolute numbers or in fractions of the pixel pitch.
FROM gitlab-registry.cern.ch/corryvreckan/corryvreckan/corryvreckan-base:latest
MAINTAINER Simon Spannagel <simon.spannagel@cern.ch>
ENV ROOT6_VERSION 6.10.08
ENV ROOT6_VERSION 6.20.04
# Add layer for ROOT6
ENV ROOTSYS="/opt/root6"
......@@ -33,7 +33,7 @@ RUN source scl_source enable devtoolset-7 && \
rm -rf ${ROOTSYS}/{src,build}
ENV PEARY_VERSION v0.9.12
ENV PEARY_VERSION v0.9.13
# Add layer for Caribou Peary
ENV PEARYPATH="/opt/peary"
......
......@@ -5,6 +5,7 @@ INCLUDE_DIRECTORIES(SYSTEM ${CORRYVRECKAN_DEPS_INCLUDE_DIRS})
ADD_LIBRARY(CorryvreckanCore SHARED
Corryvreckan.cpp
detector/Detector.cpp
detector/PixelDetector.cpp
detector/exceptions.cpp
utils/log.cpp
utils/unit.cpp
......
/** @file
* @brief Implementation of interface to the core framework
* @copyright Copyright (c) 2017 CERN and the Corryvreckan authors.
* @copyright Copyright (c) 2017-2020 CERN and the Corryvreckan authors.
* This software is distributed under the terms of the MIT License, copied verbatim in the file "LICENSE.md".
* In applying this license, CERN does not waive the privileges and immunities granted to it by virtue of its status as an
* Intergovernmental Organization or submit itself to any jurisdiction.
......
/** @file
* @brief Interface to the core framework
* @copyright Copyright (c) 2017 CERN and the Corryvreckan authors.
* @copyright Copyright (c) 2017-2020 CERN and the Corryvreckan authors.
* This software is distributed under the terms of the MIT License, copied verbatim in the file "LICENSE.md".
* In applying this license, CERN does not waive the privileges and immunities granted to it by virtue of its status as an
* Intergovernmental Organization or submit itself to any jurisdiction.
......
/**
* @file
* @brief Implementation of clipboard storage
*
* @copyright Copyright (c) 2017-2020 CERN and the Corryvreckan authors.
* This software is distributed under the terms of the MIT License, copied verbatim in the file "LICENSE.md".
* In applying this license, CERN does not waive the privileges and immunities granted to it by virtue of its status as an
* Intergovernmental Organization or submit itself to any jurisdiction.
*/
#include "Clipboard.hpp"
#include "exceptions.h"
#include "objects/Object.hpp"
......
/**
* @file
* @brief Store objects for exachange between modules on the clipboard
* @copyright Copyright (c) 2017 CERN and the Corryvreckan authors.
*
* @copyright Copyright (c) 2017-2020 CERN and the Corryvreckan authors.
* This software is distributed under the terms of the MIT License, copied verbatim in the file "LICENSE.md".
* In applying this license, CERN does not waive the privileges and immunities granted to it by virtue of its status as an
* Intergovernmental Organization or submit itself to any jurisdiction.
......
/**
* @file
* @brief Template implementation of clipboard
*
* @copyright Copyright (c) 2017-2020 CERN and the Corryvreckan authors.
* This software is distributed under the terms of the MIT License, copied verbatim in the file "LICENSE.md".
* In applying this license, CERN does not waive the privileges and immunities granted to it by virtue of its status as an
* Intergovernmental Organization or submit itself to any jurisdiction.
*/
namespace corryvreckan {
......
......@@ -2,7 +2,7 @@
* @file
* @brief Collection of all configuration exceptions
*
* @copyright Copyright (c) 2017 CERN and the Corryvreckan authors.
* @copyright Copyright (c) 2017-2020 CERN and the Corryvreckan authors.
* This software is distributed under the terms of the MIT License, copied verbatim in the file "LICENSE.md".
* In applying this license, CERN does not waive the privileges and immunities granted to it by virtue of its status as an
* Intergovernmental Organization or submit itself to any jurisdiction.
......
/**
* @file
* @brief Implementation of config manager
* @copyright Copyright (c) 2017 CERN and the Corryvreckan authors.
*
* @copyright Copyright (c) 2017-2020 CERN and the Corryvreckan authors.
* This software is distributed under the terms of the MIT License, copied verbatim in the file "LICENSE.md".
* In applying this license, CERN does not waive the privileges and immunities granted to it by virtue of its status as an
* Intergovernmental Organization or submit itself to any jurisdiction.
......
/**
* @file
* @brief Interface to the main configuration and its normal and special sections
* @copyright Copyright (c) 2017 CERN and the Corryvreckan authors.
*
* @copyright Copyright (c) 2017-2020 CERN and the Corryvreckan authors.
* This software is distributed under the terms of the MIT License, copied verbatim in the file "LICENSE.md".
* In applying this license, CERN does not waive the privileges and immunities granted to it by virtue of its status as an
* Intergovernmental Organization or submit itself to any jurisdiction.
......
/**
* @file
* @brief Implementation of config reader
* @copyright Copyright (c) 2017 CERN and the Corryvreckan authors.
* @copyright Copyright (c) 2017-2020 CERN and the Corryvreckan authors.
* This software is distributed under the terms of the MIT License, copied verbatim in the file "LICENSE.md".
* In applying this license, CERN does not waive the privileges and immunities granted to it by virtue of its status as an
* Intergovernmental Organization or submit itself to any jurisdiction.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment