PdbRichPar.cc
//-----------------------------------------------------------------------------
// $header$
//
// The pdbcal package
// Copyright (C) PHENIX collaboration, 1999
//
// Implementation of class PdbRichPar
//
// Author: akiba
//-----------------------------------------------------------------------------
#include <iostream>
#include <string>
#include "PdbRichPar.hh"
PdbRichPar::PdbRichPar():d_status(STAT_BAD) {}
PdbRichPar::PdbRichPar(int PMTid, float param):
d_status(STAT_OK),d_PMTid(PMTid),d_param(param) {}
PdbRichPar::~PdbRichPar() {}
void PdbRichPar::print() const {
write(cout);
}
void PdbRichPar::write(ostream& os) const
{
char *status;
if(d_status == STAT_OK) status = "OK ";
else if(d_status == STAT_BAD) status = "BAD ";
else if(d_status == STAT_PREV) status = "PREV ";
else status = "BAD ";
os << status;
if(d_status != STAT_BAD) {
os << d_PMTid << " ";
os << d_param << " ";
if(d_status == STAT_PREV) os << d_cal_time;
os << endl;
}
}
bool PdbRichPar::read(istream &is) {
string status;
is >> status;
if(!is.good()) return false;
if(status == "OK") d_status = STAT_OK;
else if(status == "BAD") d_status = STAT_BAD;
else if(status == "PREV") d_status = STAT_PREV;
else {
cout << "error. Unknown status: " << status << endl;
d_status = STAT_BAD;
}
if(d_status == STAT_OK) {
is >> d_PMTid
>> d_param;
if(d_status == STAT_PREV) is >> d_cal_time;
}
is.ignore(10000,'\n'); // skip to the end of line.
if(is.good()) return true;
else return false;
}
void PdbRichPar::setValues(int PMTid, float param) {
d_PMTid = PMTid;
d_param = param;
}
void PdbRichPar::getValues(int &PMTid, float ¶m) {
PMTid = d_PMTid;
param = d_param;
}