Skip to content

Commit

Permalink
move constructors to hpp
Browse files Browse the repository at this point in the history
  • Loading branch information
cvarni committed Sep 30, 2024
1 parent 7150919 commit cce8f6d
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 23 deletions.
18 changes: 11 additions & 7 deletions Core/include/Acts/Clusterization/TimedClusterization.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,26 @@

namespace Acts::Ccl {

template <typename Cell, std::size_t GridDim>
template <typename Cell>
concept HasRetrievableTimeInfo = requires(Cell cell) {
{ getCellTime(cell) } -> std::same_as<Acts::ActsScalar>;
};

template <HasRetrievableTimeInfo Cell, std::size_t GridDim>
struct TimedConnect : public Acts::Ccl::DefaultConnect<Cell, GridDim> {
Acts::ActsScalar timeTollerance{std::numeric_limits<Acts::ActsScalar>::max()};

TimedConnect() = delete;
// 1D case
explicit TimedConnect(Acts::ActsScalar time)
requires(GridDim == 1);
requires(GridDim == 1)
: timeTollerance(time) {}
// 2D case
explicit TimedConnect(Acts::ActsScalar time, bool conn = true)
requires(GridDim == 2);
requires(GridDim == 2)
: Acts::Ccl::DefaultConnect<Cell, GridDim>(conn), timeTollerance(time) {}

ConnectResult operator()(const Cell& ref, const Cell& iter) const
requires requires(Cell cell) {
{ getCellTime(cell) } -> std::same_as<Acts::ActsScalar>;
};
ConnectResult operator()(const Cell& ref, const Cell& iter) const;
};

} // namespace Acts::Ccl
Expand Down
18 changes: 2 additions & 16 deletions Core/include/Acts/Clusterization/TimedClusterization.ipp
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,9 @@

namespace Acts::Ccl {

template <typename Cell, std::size_t GridDim>
TimedConnect<Cell, GridDim>::TimedConnect(Acts::ActsScalar time)
requires(GridDim == 1)
: timeTollerance(time) {}

template <typename Cell, std::size_t GridDim>
TimedConnect<Cell, GridDim>::TimedConnect(Acts::ActsScalar time, bool conn)
requires(GridDim == 2)
: Acts::Ccl::DefaultConnect<Cell, GridDim>(conn), timeTollerance(time) {}

template <typename Cell, std::size_t GridDim>
template <HasRetrievableTimeInfo Cell, std::size_t GridDim>
ConnectResult TimedConnect<Cell, GridDim>::operator()(const Cell& ref,
const Cell& iter) const
requires requires(Cell cell) {
{ getCellTime(cell) } -> std::same_as<Acts::ActsScalar>;
}
{
const Cell& iter) const {
Acts::Ccl::ConnectResult conRes =
Acts::Ccl::DefaultConnect<Cell, GridDim>::operator()(ref, iter);
if (conRes != Acts::Ccl::ConnectResult::eConn) {
Expand Down

0 comments on commit cce8f6d

Please sign in to comment.