23 unsigned int n_parameters_total=0;
25 if (n_parameter_sets>0) {
29 return StatusCode::FAILURE;
33 n_parameters_total += n_parameters;
40 n_parameters_total = n_parameter_sets * n_parameters_per_set;
43 for (
unsigned int param_set_i=0; param_set_i<n_parameter_sets; ++param_set_i ) {
47 <<
" n_parameters_per_set=" << n_parameters_per_set );
50 ATH_MSG_FATAL(
"Number of parameters in ErorScalingParameters does not match expectation. Estimated " << n_parameters_total
53 return StatusCode::FAILURE;
65 return StatusCode::FAILURE;
68 return StatusCode::SUCCESS;
72 EventIDBase timestamp (
int t)
74 return {EventIDBase::UNDEFNUM,
75 EventIDBase::UNDEFEVT,
76 static_cast<EventIDBase::number_type
>(t)};
79 EventIDBase infiniteIOVEend() {
80 return timestamp(std::numeric_limits<int>::max() - 1);
84 std::ostream &
operator<<(std::ostream &out,
const std::vector<T> &
a) {
85 for (
const T &elm :
a) {
96 EventIDRange range(timestamp(0),infiniteIOVEend());
102 assert( set_i < error_scaling->params().size() );
103 error_scaling->params()[set_i].clear();
104 error_scaling->params()[set_i].reserve(n_params);
105 for(
unsigned int param_i=0; param_i<n_params; ++param_i, ++param_iter) {
107 error_scaling->params()[set_i].push_back( *param_iter );
113 if(
msgLvl(MSG::VERBOSE)) {
115 if (param_i>= error_scaling->params().size()) {
117 return StatusCode::FAILURE;
125 if (!error_scaling->postProcess()) {
126 ATH_MSG_ERROR(
"Conditions data for " << write_handle.
key() <<
" not valid.");
127 return StatusCode::FAILURE;
129 if (write_handle.
record(range, std::move(error_scaling)).isFailure()) {
130 ATH_MSG_FATAL(
"Could not record RIO_OnTrackErrorScaling " << write_handle.
key()
131 <<
" with EventRange " << range
132 <<
" into Conditions Store");
133 return StatusCode::FAILURE;
136 return StatusCode::SUCCESS;
141 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_VERBOSE(x)
std::ostream & operator<<(std::ostream &lhs, const TestGaudiProperty &rhs)
Define macros for attributes used to control the static checker.
bool msgLvl(const MSG::Level lvl) const
Base class for conditions algorithms.
static KitManager< RIO_OnTrackErrorScalingKit > & instance()
const T_KitInterface & kit(const std::string &name) const
ServiceHandle< ICondSvc > m_condSvc
SG::WriteCondHandleKey< RIO_OnTrackErrorScaling > m_writeKey
Gaudi::Property< std::vector< unsigned int > > m_nParameterPerSet
RIO_OnTrackErrorScalingDbOverrideCondAlg(const std::string &name, ISvcLocator *pSvcLocator)
StatusCode finalize() override
StatusCode initialize() override
const RIO_OnTrackErrorScalingKit * m_errorScalingDataKit
StatusCode execute(const EventContext &ctx) const override
Gaudi::Property< std::vector< float > > m_errorScalingParameters
std::vector< unsigned int > m_useNParametersPerSet
Gaudi::Property< std::string > m_errorScalingTypeName
const std::string & key() const
StatusCode record(const EventIDRange &range, T *t)
record handle, with explicit range DEPRECATED