ATLAS Offline Software
Loading...
Searching...
No Matches
ZDCWaveform.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
6
7
8ZDCWaveformBase::ZDCWaveformBase(std::string tag, double initialTauRise, double initialTauFall, const std::vector<std::string> &addtlShapeNames,
9 const std::vector<double> &addtlShapeValues) :
10 m_tag( std::move(tag) ),
11 m_initialTauRise(initialTauRise),
12 m_initialTauFall(initialTauFall),
13 m_numAddtlShapePars(addtlShapeNames.size()),
14 m_tauRise(initialTauRise),
15 m_tauFall(initialTauFall)
16{
17 setAddtlShapeParameters(addtlShapeNames, addtlShapeValues);
18}
19
31
32void ZDCWaveformBase::setAddtlShapeParameters(const std::vector<std::string> &addtlShapeNames,
33 const std::vector<double> &addtlShapeValues)
34{
35 // Enforce consistency in vector lengths
36 //
37 m_numAddtlShapePars = addtlShapeNames.size();
38 if (m_numAddtlShapePars != addtlShapeValues.size()) throw std::runtime_error("ZDCWaveformBase::setAddtlShapeParameters; Shape name and value size mismatch");
39
40 m_addtlShapeNames.clear();
41
42 // Insert names into map with index
43 //
44 for (unsigned int param = 0; param < addtlShapeNames.size(); param++) {
45 m_addtlShapeNames.insert({addtlShapeNames[param], param});
46 }
47
48 // Save shape values, first to "initial", then to the actual
49 //
50 m_addtlShapeInitialValues = addtlShapeValues;
52}
53
54void ZDCWaveformBase::setAddtlShapeValues(const double* values)
55{
56 unsigned int nvalues = m_addtlShapeValues.size();
57 std::copy_n(values, nvalues, m_addtlShapeValues.begin());
58}
59
66
std::map< std::string, double > instance
void setAddtlShapeValues(const double *values)
unsigned int m_numAddtlShapePars
Definition ZDCWaveform.h:37
std::vector< double > m_addtlShapeValues
Definition ZDCWaveform.h:45
double m_initialTauFall
Definition ZDCWaveform.h:36
std::map< std::string, unsigned int > m_addtlShapeNames
Definition ZDCWaveform.h:33
void setAddtlShapeParameters(const std::vector< std::string > &addtlShapeNames, const std::vector< double > &addtlShapeValues)
std::string m_tag
Definition ZDCWaveform.h:32
ZDCWaveformBase()=delete
std::vector< double > m_addtlShapeInitialValues
Definition ZDCWaveform.h:38
double m_initialTauRise
Definition ZDCWaveform.h:35
STL namespace.