ROOT logo
//*-- AUTHOR   : Ilse Koenig
//*-- Created  : 13/08/2004 by Ilse Koenig
//*-- Modified : 13/04/2005 by Ilse Koenig

//_HADES_CLASS_DESCRIPTION 
//////////////////////////////////////////////////////////////////////////////
//
// HOraSlowChanRunSum
//
// Class for the run based summary data of a slowcontrol channel
//
//////////////////////////////////////////////////////////////////////////////

#include "horaslowchanrunsum.h"
#include "horaslowperiod.h"

ClassImp(HOraSlowChanRunSum)

HOraSlowChanRunSum::HOraSlowChanRunSum() {
  // Default constructor
  period=0;
  periodIndex=-1;
  nData=0;
  nMonData=-1;
  nMonSmplPer=1;
  status=0;
  mean=sigma=minVal=maxVal=0.;
}

void HOraSlowChanRunSum::fill(Int_t pInd,Double_t mea,Double_t sig,
                 Double_t min,Double_t max,Int_t nD,Int_t st,
                 Int_t nMon,Int_t nMonSP) {
  // Fills the data elements
  periodIndex=pInd;
  mean=mea;
  sigma=sig;
  minVal=min;
  maxVal=max;
  nData=nD;
  status=st;
  nMonData=nMon;
  nMonSmplPer=nMonSP;
}

void HOraSlowChanRunSum::print(Int_t valPrec) {
  // Prints the data to stdout
  // Takes as arguments the precision of the data
  Int_t n=valPrec+10;
  cout.setf(ios::fixed,ios::floatfield);
  cout.setf(ios::showpoint);
  cout<<setprecision(valPrec)<<setw(n)<<mean
      <<setw(n)<<sigma<<setw(n)<<minVal<<setw(n)<<maxVal<<setw(8)<<nData
      <<setw(3)<<status<<setw(5)<<getMonRate()<<setprecision(6);
  if (period!=0&&period->getRunId()>0) {
    cout<<setw(12)<<period->getRunId()<<" "<<period->getFilename();
  }
  cout<<'\n';
}

void HOraSlowChanRunSum::write(fstream& fout,Int_t valPrec) {
  // Streams the data
  // Takes as arguments the precision of the data
  Int_t n=valPrec+10;
  fout.setf(ios::fixed,ios::floatfield);
  fout.setf(ios::showpoint);
  fout<<setprecision(valPrec)<<setw(n)<<mean
      <<setw(n)<<sigma<<setw(n)<<minVal<<setw(n)<<maxVal<<setw(8)<<nData
      <<setw(3)<<status<<setw(5)<<getMonRate()<<setprecision(6);
  if (period!=0&&period->getRunId()>0) {
    fout<<setw(12)<<period->getRunId()<<"  "<<period->getFilename();
  }
  fout<<'\n';
}


Int_t HOraSlowChanRunSum::getMonRate() {
  // Returns the rate (number of entries/minute * sampling period) of the
  // corresponding monitor channel.
  // The rate should be about 60.
  // A much lower rate indicated, that the archiver was not running for
  // the whole period.
  Int_t rate=nMonData;
  if (period!=0&&nMonData!=-1) {
    Int_t dt=period->getDuration();
    if (dt>0) {
      rate=(Int_t)(nMonData*nMonSmplPer*60./dt+0.5);
    }
  }
  return rate;
}

 horaslowchanrunsum.cc:1
 horaslowchanrunsum.cc:2
 horaslowchanrunsum.cc:3
 horaslowchanrunsum.cc:4
 horaslowchanrunsum.cc:5
 horaslowchanrunsum.cc:6
 horaslowchanrunsum.cc:7
 horaslowchanrunsum.cc:8
 horaslowchanrunsum.cc:9
 horaslowchanrunsum.cc:10
 horaslowchanrunsum.cc:11
 horaslowchanrunsum.cc:12
 horaslowchanrunsum.cc:13
 horaslowchanrunsum.cc:14
 horaslowchanrunsum.cc:15
 horaslowchanrunsum.cc:16
 horaslowchanrunsum.cc:17
 horaslowchanrunsum.cc:18
 horaslowchanrunsum.cc:19
 horaslowchanrunsum.cc:20
 horaslowchanrunsum.cc:21
 horaslowchanrunsum.cc:22
 horaslowchanrunsum.cc:23
 horaslowchanrunsum.cc:24
 horaslowchanrunsum.cc:25
 horaslowchanrunsum.cc:26
 horaslowchanrunsum.cc:27
 horaslowchanrunsum.cc:28
 horaslowchanrunsum.cc:29
 horaslowchanrunsum.cc:30
 horaslowchanrunsum.cc:31
 horaslowchanrunsum.cc:32
 horaslowchanrunsum.cc:33
 horaslowchanrunsum.cc:34
 horaslowchanrunsum.cc:35
 horaslowchanrunsum.cc:36
 horaslowchanrunsum.cc:37
 horaslowchanrunsum.cc:38
 horaslowchanrunsum.cc:39
 horaslowchanrunsum.cc:40
 horaslowchanrunsum.cc:41
 horaslowchanrunsum.cc:42
 horaslowchanrunsum.cc:43
 horaslowchanrunsum.cc:44
 horaslowchanrunsum.cc:45
 horaslowchanrunsum.cc:46
 horaslowchanrunsum.cc:47
 horaslowchanrunsum.cc:48
 horaslowchanrunsum.cc:49
 horaslowchanrunsum.cc:50
 horaslowchanrunsum.cc:51
 horaslowchanrunsum.cc:52
 horaslowchanrunsum.cc:53
 horaslowchanrunsum.cc:54
 horaslowchanrunsum.cc:55
 horaslowchanrunsum.cc:56
 horaslowchanrunsum.cc:57
 horaslowchanrunsum.cc:58
 horaslowchanrunsum.cc:59
 horaslowchanrunsum.cc:60
 horaslowchanrunsum.cc:61
 horaslowchanrunsum.cc:62
 horaslowchanrunsum.cc:63
 horaslowchanrunsum.cc:64
 horaslowchanrunsum.cc:65
 horaslowchanrunsum.cc:66
 horaslowchanrunsum.cc:67
 horaslowchanrunsum.cc:68
 horaslowchanrunsum.cc:69
 horaslowchanrunsum.cc:70
 horaslowchanrunsum.cc:71
 horaslowchanrunsum.cc:72
 horaslowchanrunsum.cc:73
 horaslowchanrunsum.cc:74
 horaslowchanrunsum.cc:75
 horaslowchanrunsum.cc:76
 horaslowchanrunsum.cc:77
 horaslowchanrunsum.cc:78
 horaslowchanrunsum.cc:79
 horaslowchanrunsum.cc:80
 horaslowchanrunsum.cc:81
 horaslowchanrunsum.cc:82
 horaslowchanrunsum.cc:83
 horaslowchanrunsum.cc:84
 horaslowchanrunsum.cc:85
 horaslowchanrunsum.cc:86
 horaslowchanrunsum.cc:87
 horaslowchanrunsum.cc:88
 horaslowchanrunsum.cc:89
 horaslowchanrunsum.cc:90
 horaslowchanrunsum.cc:91