Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • rrabadan/LHCb
  • talin/LHCb
  • imjelde/LHCb
  • mstahl/LHCb
  • padeken/LHCb
  • mimazure/LHCb
  • roiser/LHCb
  • conrad/LHCb
  • kklimasz/LHCb
  • rcurrie/LHCb
  • wkrzemie/LHCb
  • fkeizer/LHCb
  • valassi/LHCb
  • hschrein/LHCb
  • anstahll/LHCb
  • jonrob/LHCb
  • graven/LHCb
  • clemenci/LHCb
  • chaen/LHCb
  • sstahl/LHCb
  • lhcb/LHCb
21 results
Show changes
Commits on Source (13)
......@@ -197,7 +197,7 @@ class CondDB(ConfigurableUser):
if self.getProp("Tags"):
self.Tags = {}
self._useLatestTags(datatype)
log.warning(
log.info(
"Default global tags will be overridden with the latest ones"
" available for '%s' data type: %s" % (datatype,
self.getProp("Tags")))
......
......@@ -121,12 +121,15 @@ namespace LHCb::Pr::Fitted::Forward {
template <typename I, typename M>
I nHits( int t, const M mask ) const {
auto const* forward = getForwardAncestors();
const auto forward_track_index = trackFT<I>( t );
auto const n_fthits = forward->maskgather_nFTHits<I>( forward_track_index, mask, 0 );
auto const n_uthits = forward->maskgather_nUTHits<I>( forward_track_index, mask, 0 );
auto const n_vphits = forward->maskgather_nVPHits<I>( forward_track_index, mask, 0 );
auto const* forward = getForwardAncestors();
if ( UNLIKELY( !forward ) ) {
throw GaudiException{"No long track ancestors!", "LHCb::Pr::Fitted::Forward::Tracks::nHits",
StatusCode::FAILURE};
}
const auto forward_track_index = trackFT<I>( t );
auto const n_fthits = forward->maskgather_nFTHits<I>( forward_track_index, mask, 0 );
auto const n_uthits = forward->maskgather_nUTHits<I>( forward_track_index, mask, 0 );
auto const n_vphits = forward->maskgather_nVPHits<I>( forward_track_index, mask, 0 );
return ( n_fthits + n_uthits + n_vphits );
}
......
......@@ -295,7 +295,6 @@ namespace LHCb::Pr::detail {
: public Proxy<ContainerTypes>::template type<proxy_type<simd_, unwrap_, Behaviour, ContainerTypes...>, simd_,
Behaviour, unwrap_>... {
static constexpr auto simd = simd_;
static constexpr bool is_proxy = true;
static constexpr auto behaviour_tag = Behaviour;
using simd_t = SIMDWrapper::type_map_t<simd_>;
using offset_type = offset_t<Behaviour, simd_>;
......@@ -890,10 +889,14 @@ namespace LHCb::Pr {
template <SIMDWrapper::InstructionSet def_simd, bool def_unwrap, typename... Args>
struct is_zip<Zip<def_simd, def_unwrap, Args...>> : std::true_type {};
template <typename T, typename = bool>
struct is_proxy : std::false_type {};
template <typename T>
struct is_proxy<T, decltype( T::is_proxy == true )> : std::true_type {};
inline constexpr bool is_zip_v = is_zip<T>::value;
template <typename T>
struct is_proxy : std::false_type {};
template <SIMDWrapper::InstructionSet simd, bool unwrap, ProxyBehaviour Behaviour, typename... Ts>
struct is_proxy<detail::proxy_type<simd, unwrap, Behaviour, Ts...>> : std::true_type {};
template <typename T>
inline constexpr bool is_proxy_v = is_proxy<T>::value;
......
......@@ -78,6 +78,7 @@ preprocessor = (
r"HLTControlFlowMgr\s*INFO Timing table:",
r"HLTControlFlowMgr\s*INFO Average ticks per millisecond:",
r"DEBUG Property \['Name': Value\] = '(Timeline|(Extra|Data)(In|Out)puts)'",
r"JobOptionsSvc\s*INFO Properties are dumped into",
]) +
# Functional framework related
BlockSkipper(
......
from __future__ import division
###############################################################################
# (c) Copyright 2000-2018 CERN for the benefit of the LHCb Collaboration #
# #
......@@ -9,6 +10,10 @@
# or submit itself to any jurisdiction. #
###############################################################################
from builtins import next
from builtins import zip
from builtins import map
from builtins import range
import itertools
import os
import re
......@@ -71,7 +76,7 @@ class GroupMessages(FilePreprocessor):
if not indices:
return []
# everything until the first message is one message per line
indices = range(indices[0]) + indices
indices = list(range(indices[0])) + indices
if sep is None:
# try to automatically deduce how lines should be joined
sep = '' if all(l.endswith('\n') for l in lines) else '\n'
......@@ -177,8 +182,7 @@ def _extract_counter_blocks(s, header_pattern, preproc=None):
header_re = re.compile(header_pattern)
# find counter block headers
headers = filter(lambda x: bool(x[1]),
enumerate(map(header_re.match, lines)))
headers = [x for x in enumerate(map(header_re.match, lines)) if bool(x[1])]
for i, m in headers:
component = m.group('component')
......@@ -250,7 +254,25 @@ class LHCbTest(GaudiTesting.QMTTest.QMTTest):
else:
return abs(ref - val) / max(abs(ref), abs(val)) > sensitivity
def job_opts_dump_fn(self):
return self.name + '.joboptsdump'
def run(self):
if self.environment is None:
self.environment = {}
self.environment['JOBOPTSDUMPFILE'] = self.job_opts_dump_fn()
try:
os.remove(self.job_opts_dump_fn())
except OSError:
pass
return super(LHCbTest, self).run()
def ValidateOutput(self, stdout, stderr, result):
try:
with open(self.job_opts_dump_fn()) as f:
result['job_opts_dump'] = result.Quote(f.read())
except IOError:
pass
try:
return super(LHCbTest, self).ValidateOutput(stdout, stderr, result)
except:
......
/*****************************************************************************\
* (c) Copyright 2019 CERN for the benefit of the LHCb Collaboration *
* (c) Copyright 2019-20 CERN for the benefit of the LHCb Collaboration *
* *
* This software is distributed under the terms of the GNU General Public *
* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". *
......@@ -9,6 +9,7 @@
* or submit itself to any jurisdiction. *
\*****************************************************************************/
#pragma once
#include <any>
#include <array>
#include <string_view>
#include <tuple>
......@@ -93,6 +94,7 @@ namespace LHCb {
/** Provide some generic definitions for STL types. Generally these definitions
* can live in the relevant headers.
*/
REGISTER_HEADER( std::any, "<any>" );
template <typename T, typename A>
struct LHCb::header_map<std::vector<T, A>> {
constexpr static auto value = LHCb::header_map_v<T> + "<vector>";
......
......@@ -438,7 +438,8 @@ namespace SIMDWrapper {
return *this;
}
void store( float* ptr ) const { _mm_storeu_ps( ptr, data ); } // Non-standard
constexpr static std::size_t size() { return 4; }
void store( float* ptr ) const { _mm_storeu_ps( ptr, data ); } // Non-standard
operator __m128() const { return data; }
operator int_v() const;
......
......@@ -107,8 +107,8 @@ function(loki_functors_cache name)
set(inputs ${inputs} ${input})
endforeach()
# make sure GaudiConfig2 database has been correctly completed
if(TARGET MergeConfDB2)
list(APPEND inputs MergeConfDB2)
if(TARGET MergedConfDB2)
list(APPEND inputs MergedConfDB2)
endif()
set(tmp_ext pkl)
......