Back to index

PdbRichADC.cc

 
//----------------------------------------------------------------------------- 
//  $header$ 
// 
//  The pdbcal package 
//  Copyright (C) PHENIX collaboration, 1999 
// 
//  Implementation of class PdbRichADC 
// 
//  Author: akiba 
//----------------------------------------------------------------------------- 
#include <iostream> 
#include <string> 
 
#include "PdbRichADC.hh" 
 
PdbRichADC::PdbRichADC():d_status(STAT_BAD) {} 
 
PdbRichADC::PdbRichADC(int PMTid, 
		       float ped, float pedw, float PE, float PEw, 
		       float Nped, float N1, float N2, float N3, 
		       float chisqr): 
  d_PMTid(PMTid),d_status(STAT_OK), 
  d_pedestal(ped),d_ped_width(pedw),d_PE_pos(PE),d_PE_width(PEw), 
  d_Nped(Nped),d_N1PE(N1),d_N2PE(N2),d_N3PE(N3), 
  d_chisqr(chisqr) {} 
 
 
PdbRichADC::~PdbRichADC() {} 
 
void PdbRichADC::print() const 
{ 
  write(cout); 
} 
 
void PdbRichADC::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 if(d_status == STAT_SM) status = "SM "; 
  else if(d_status == STAT_EM) status = "EM "; 
  else if(d_status == STAT_NH) status = "NH "; 
  else status = "BAD "; 
 
  os << status; 
  if(d_status != STAT_BAD) { 
    os << d_PMTid << " "; 
    os << d_pedestal << " "; 
    os << d_ped_width << " ";  
    os << d_PE_pos << " "; 
    os << d_PE_width <<" "; 
    os << d_Nped << " "; 
    os << d_N1PE << " "; 
    os << d_N2PE << " "; 
    os << d_N3PE << " "; 
    os << d_chisqr << " "; 
    if(d_status == STAT_PREV) os << d_cal_time; 
    os << endl; 
  } 
} 
 
bool PdbRichADC::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 if(status == "SM")   d_status = STAT_SM;  //small yield histogram 
  else if(status == "EM")   d_status = STAT_EM;  //empty histogram 
  else if(status == "NH")   d_status = STAT_NH;  //no histogram 
  else { 
    cout << "error. Unknown status: " << status << endl; 
    d_status = STAT_BAD; 
  } 
 
  if(d_status != STAT_BAD) { 
    is >> d_PMTid 
       >> d_pedestal 
       >> d_ped_width 
       >> d_PE_pos 
       >> d_PE_width 
       >> d_Nped 
       >> d_N1PE 
       >> d_N2PE 
       >> d_N3PE 
       >> d_chisqr; 
    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 PdbRichADC::setValues(int PMTid, 
			   float ped, float pedw, float PE, float PEw, 
			   float Nped, float N1, float N2, float N3, 
			   float chisqr) { 
  d_PMTid     = PMTid; 
  d_pedestal  = ped; 
  d_ped_width = pedw; 
  d_PE_pos    = PE; 
  d_PE_width  = PEw; 
  d_Nped      = Nped; 
  d_N1PE      = N1; 
  d_N2PE      = N2; 
  d_N3PE      = N3; 
  d_chisqr    = chisqr; 
} 
 
void 
PdbRichADC::getValues(int &PMTid, 
		      float &ped, float &pedw, float &PE, float &PEw, 
		      float &Nped, float &N1, float &N2, float &N3, 
		      float &chisqr) 
{ 
  PMTid = d_PMTid;  
  ped   = d_pedestal; 
  pedw  = d_ped_width; 
  PE    = d_PE_pos; 
  PEw   = d_PE_width; 
  Nped  = d_Nped; 
  N1    = d_N1PE; 
  N2    = d_N2PE; 
  N3    = d_N3PE; 
  chisqr = d_chisqr; 
} 
 
 

Back to index