23 m_algoToFirstIndex(kMaxNumAlgos + 1, 0),
33 m_lumiVersion(lumiVersion),
34 m_algoToFirstIndex(kMaxNumAlgos + 1, 0),
63 std::vector<float>
const&
values,
64 std::vector<float>
const&
errors,
65 std::vector<short>
const& qualities) {
67 if (values.size() != errors.size() ||
68 values.size() != qualities.size() ||
71 <<
"Illegal input values passed to LumiDetails::fill.\n"
72 <<
"The current implementation of LumiDetails only allows filling\n"
73 <<
"vectors for each algorithm once and the input vectors must\n"
74 <<
"all be the same size.\n";
86 std::vector<float>
const& beam2Intensities) {
140 std::vector<float>
const&
145 std::vector<float>
const&
150 std::vector<std::string>
const&
156 std::vector<std::string>
const&
179 <<
"Algorithm type argument out of range in a call to a function in LumiDetails\n";
188 <<
"Branch crossing argument out of range in call to a function in LumiDetails\n";
194 s <<
"\nDumping LumiDetails\n";
195 s << std::setw(12) <<
"lumi version " << lumiDetails.
lumiVersion() <<
"\n";
196 std::vector<std::string>::const_iterator
algo;
197 std::vector<std::string>::const_iterator algoEnd;
207 for( ; algo != algoEnd; ++
algo, ++
i) {
210 std::vector<float>::const_iterator valueEnd = lumiDetails.
lumiValuesForAlgo(i).second;
214 s <<
"algorithm: " << *algo <<
"\n";
215 s << std::setw(12) <<
"value"
216 << std::setw(12) <<
"error"
217 << std::setw(12) <<
"quality" <<
"\n";
220 s << std::setw(12) << *value
221 << std::setw(12) << *error
222 << std::setw(12) << *quality <<
"\n";
226 s <<
"beam 1 intensities:\n";
228 for (std::vector<float>::const_iterator intensity = beam1Intensities.begin(),
229 iEnd = beam1Intensities.end();
230 intensity != iEnd; ++intensity) {
231 s << *intensity <<
"\n";
233 s <<
"\nbeam 2 intensities:\n";
235 for (std::vector<float>::const_iterator intensity = beam2Intensities.begin(),
236 iEnd = beam2Intensities.end();
237 intensity != iEnd; ++intensity) {
238 s << *intensity <<
"\n";
float lumiBeam2Intensity(unsigned int bx) const
std::vector< float > const & lumiBeam2Intensities() const
std::pair< std::vector< float >::const_iterator, std::vector< float >::const_iterator > ValueRange
ValueRange lumiValuesForAlgo(AlgoType algo) const
void checkAlgoAndBX(AlgoType algo, unsigned int bx) const
std::vector< float > m_allErrors
std::pair< std::vector< float >::const_iterator, std::vector< float >::const_iterator > ErrorRange
std::vector< float > const & lumiBeam1Intensities() const
std::ostream & operator<<(std::ostream &out, const ALILine &li)
float lumiValue(AlgoType algo, unsigned int bx) const
std::vector< float > m_beam2Intensities
float lumiBeam1Intensity(unsigned int bx) const
static std::vector< std::string > const m_algoNames
short lumiQuality(AlgoType algo, unsigned int bx) const
void setLumiVersion(std::string const &lumiVersion)
std::string m_lumiVersion
std::pair< std::vector< short >::const_iterator, std::vector< short >::const_iterator > QualityRange
ErrorRange lumiErrorsForAlgo(AlgoType algo) const
void fill(AlgoType algo, std::vector< float > const &values, std::vector< float > const &errors, std::vector< short > const &qualities)
static std::vector< std::string > const s_dipalgoNames
static std::vector< std::string > const & dipalgoNames()
std::vector< float > m_allValues
static std::vector< std::string > const & algoNames()
void checkAlgo(AlgoType algo) const
std::vector< unsigned int > m_algoToFirstIndex
QualityRange lumiQualitiesForAlgo(AlgoType algo) const
float lumiError(AlgoType algo, unsigned int bx) const
std::vector< short > m_allQualities
void fillBeamIntensities(std::vector< float > const &beam1Intensities, std::vector< float > const &beam2Intensities)
std::string const & lumiVersion() const
bool isProductEqual(LumiDetails const &lumiDetails) const
std::vector< float > m_beam1Intensities