CMS 3D CMS Logo

Classes | Functions

/data/refman/pasoursint/CMSSW_5_2_9/src/DataFormats/Luminosity/interface/LumiDetails.h File Reference

#include <utility>
#include <vector>
#include <string>
#include <iosfwd>

Go to the source code of this file.

Classes

class  LumiDetails

Functions

std::ostream & operator<< (std::ostream &s, LumiDetails const &lumiDetails)

Function Documentation

std::ostream& operator<< ( std::ostream &  s,
LumiDetails const &  lumiDetails 
)

Definition at line 193 of file LumiDetails.cc.

References LumiDetails::algoNames(), LumiDetails::dipalgoNames(), error, i, LumiDetails::lumiBeam1Intensities(), LumiDetails::lumiBeam2Intensities(), LumiDetails::lumiErrorsForAlgo(), LumiDetails::lumiQualitiesForAlgo(), LumiDetails::lumiValuesForAlgo(), LumiDetails::lumiVersion(), alignCSCRings::s, and relativeConstraints::value.

                                                                      {
  
  s << "\nDumping LumiDetails\n";
  s << std::setw(12) << "lumi version " << lumiDetails.lumiVersion() << "\n";
  std::vector<std::string>::const_iterator algo;
  std::vector<std::string>::const_iterator algoEnd;
  if(lumiDetails.lumiVersion()!=std::string("DIP")){
    algo = lumiDetails.algoNames().begin();
    algoEnd = lumiDetails.algoNames().end();
  }else{
    algo = lumiDetails.dipalgoNames().begin();
    algoEnd = lumiDetails.dipalgoNames().end();
  }
  LumiDetails::AlgoType i = 0;

  for( ; algo != algoEnd; ++algo, ++i) {

    std::vector<float>::const_iterator value = lumiDetails.lumiValuesForAlgo(i).first;
    std::vector<float>::const_iterator valueEnd = lumiDetails.lumiValuesForAlgo(i).second;
    std::vector<float>::const_iterator error = lumiDetails.lumiErrorsForAlgo(i).first;
    std::vector<short>::const_iterator quality = lumiDetails.lumiQualitiesForAlgo(i).first;

    s << "algorithm: " << *algo << "\n";
    s << std::setw(12) << "value"
      << std::setw(12) << "error"
      << std::setw(12) << "quality" << "\n";

    for( ; value != valueEnd; ++value, ++error, ++quality){
      s << std::setw(12) << *value
        << std::setw(12) << *error
        << std::setw(12) << *quality << "\n";
    }
    s << "\n";
  }
  s << "beam 1 intensities:\n";
  std::vector<float> const& beam1Intensities = lumiDetails.lumiBeam1Intensities();
  for (std::vector<float>::const_iterator intensity = beam1Intensities.begin(),
                                               iEnd = beam1Intensities.end();
       intensity != iEnd; ++intensity) {
    s << *intensity << "\n";
  }
  s << "\nbeam 2 intensities:\n";
  std::vector<float> const& beam2Intensities = lumiDetails.lumiBeam2Intensities();
  for (std::vector<float>::const_iterator intensity = beam2Intensities.begin(),
                                               iEnd = beam2Intensities.end();
       intensity != iEnd; ++intensity) {
    s << *intensity << "\n";
  }
  s << "\n";
  return s;
}