12 m_algoToFirstIndex(kMaxNumAlgos + 1, 0),
22 m_lumiVersion(lumiVersion),
23 m_algoToFirstIndex(kMaxNumAlgos + 1, 0),
52 std::vector<float>
const&
values,
53 std::vector<float>
const&
errors,
54 std::vector<short>
const& qualities) {
56 if (values.size() != errors.size() ||
57 values.size() != qualities.size() ||
60 <<
"Illegal input values passed to LumiDetails::fill.\n"
61 <<
"The current implementation of LumiDetails only allows filling\n"
62 <<
"vectors for each algorithm once and the input vectors must\n"
63 <<
"all be the same size.\n";
75 std::vector<float>
const& beam2Intensities) {
129 std::vector<float>
const&
134 std::vector<float>
const&
139 std::vector<std::string>
const&
156 std::vector<std::string>
const&
180 <<
"Algorithm type argument out of range in a call to a function in LumiDetails\n";
189 <<
"Branch crossing argument out of range in call to a function in LumiDetails\n";
195 s <<
"\nDumping LumiDetails\n";
196 s << std::setw(12) <<
"lumi version " << lumiDetails.
lumiVersion() <<
"\n";
197 std::vector<std::string>::const_iterator
algo;
198 std::vector<std::string>::const_iterator algoEnd;
208 for( ; algo != algoEnd; ++
algo, ++
i) {
211 std::vector<float>::const_iterator valueEnd = lumiDetails.
lumiValuesForAlgo(i).second;
215 s <<
"algorithm: " << *algo <<
"\n";
216 s << std::setw(12) <<
"value"
217 << std::setw(12) <<
"error"
218 << std::setw(12) <<
"quality" <<
"\n";
220 for( ; value != valueEnd; ++
value, ++
error, ++quality){
221 s << std::setw(12) << *value
222 << std::setw(12) << *error
223 << std::setw(12) << *quality <<
"\n";
227 s <<
"beam 1 intensities:\n";
229 for (std::vector<float>::const_iterator intensity = beam1Intensities.begin(),
230 iEnd = beam1Intensities.end();
231 intensity != iEnd; ++intensity) {
232 s << *intensity <<
"\n";
234 s <<
"\nbeam 2 intensities:\n";
236 for (std::vector<float>::const_iterator intensity = beam2Intensities.begin(),
237 iEnd = beam2Intensities.end();
238 intensity != iEnd; ++intensity) {
239 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
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
static std::vector< std::string > m_algoNames
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 & 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