ROOT logo
#ifndef HORASLOWCHANNEL_H
#define HORASLOWCHANNEL_H

using namespace std;
#include "TNamed.h"
#include "TObjArray.h"
#include <iostream>
#include <iomanip>
#include <fstream>

class HOraSlowPartition;
class TGraph;
class TGraphErrors;
class TGraphAsymmErrors;

class HOraSlowChannel : public TNamed {
private:
  Int_t              channelId;      // Id of the channel in Oracle
  TString            channelType;    // Type of the channel
  Int_t              maxPrecision;   // Maximum precision of the values in the actual timerange
  TObjArray*         pRunSumData;    // Array of summary data (object type HOraSlowChanRunSum)
  TObjArray*         pMetaData;      // Array of meta data (object type HOraSlowChanMata)
  TIterator*         runSumDataIter; // Iterator on the array of summary data 
  TGraph*            pGraph;         // Graph of the summary data 
  TGraph*            pRawGraph;      // Graph of the raw data  
  HOraSlowPartition* partition;      // Pointer to the actual partition
  TObjArray*         pRawData;       // Array of the raw data
  TString            rawStart;       // Start time of the raw data
  TString            rawEnd;         // End time of the raw data
  TIterator*         rawIter;        // Iterator on the array of raw data
public:
  HOraSlowChannel(const Char_t* name="");
  ~HOraSlowChannel();
  void setChannelId(Int_t n) {channelId=n;}
  void setChannelType(const Char_t* s) {channelType=s;}
  void setMaxPrecision(Int_t n) {maxPrecision=n;}
  void setPartition(HOraSlowPartition*);
  void setRunSumData(TObjArray*);
  void setRawData(TObjArray*,const Char_t*,const Char_t*);
  void setMetaData(TObjArray*);
  Int_t getChannelId() {return channelId;}
  const Char_t* getChannelType() {return channelType.Data();}
  Int_t getMaxPrecision() {return maxPrecision;}
  TObjArray* getRunSumData() {return pRunSumData;}
  TObjArray* getMetaData() {return pMetaData;}
  TObjArray* getRawData() {return pRawData;}
  Bool_t readRawData(Int_t);
  Bool_t readRawData(const Char_t*,const Char_t*);
  void printRunSumData(Int_t opt=0);  
  void printMetaData();  
  void printRawData();  
  void writeRunSumData(fstream&,Int_t opt=0);
  void writeMetaData(fstream&);  
  void writeRawData(fstream&);  
  TGraphErrors* getRunSumMeanSigmaGraph(Int_t opt=0,
					Int_t mStyle=7,Int_t mColor=4);
  TGraphAsymmErrors* getRunSumMeanMinMaxGraph(Int_t opt=0,
					      Int_t mStyle=7,Int_t mColor=2);
  TGraph* getRawDataGraph(Int_t mStyle=7,Int_t mColor=4);
private:
  void clearRunSumData();
  void clearRawData();
  void deleteGraph();
  void deleteRawGraph();
  ClassDef(HOraSlowChannel,0) // Slowcontrol channel
};

#endif  /* !HORASLOWCHANNEL */
 horaslowchannel.h:1
 horaslowchannel.h:2
 horaslowchannel.h:3
 horaslowchannel.h:4
 horaslowchannel.h:5
 horaslowchannel.h:6
 horaslowchannel.h:7
 horaslowchannel.h:8
 horaslowchannel.h:9
 horaslowchannel.h:10
 horaslowchannel.h:11
 horaslowchannel.h:12
 horaslowchannel.h:13
 horaslowchannel.h:14
 horaslowchannel.h:15
 horaslowchannel.h:16
 horaslowchannel.h:17
 horaslowchannel.h:18
 horaslowchannel.h:19
 horaslowchannel.h:20
 horaslowchannel.h:21
 horaslowchannel.h:22
 horaslowchannel.h:23
 horaslowchannel.h:24
 horaslowchannel.h:25
 horaslowchannel.h:26
 horaslowchannel.h:27
 horaslowchannel.h:28
 horaslowchannel.h:29
 horaslowchannel.h:30
 horaslowchannel.h:31
 horaslowchannel.h:32
 horaslowchannel.h:33
 horaslowchannel.h:34
 horaslowchannel.h:35
 horaslowchannel.h:36
 horaslowchannel.h:37
 horaslowchannel.h:38
 horaslowchannel.h:39
 horaslowchannel.h:40
 horaslowchannel.h:41
 horaslowchannel.h:42
 horaslowchannel.h:43
 horaslowchannel.h:44
 horaslowchannel.h:45
 horaslowchannel.h:46
 horaslowchannel.h:47
 horaslowchannel.h:48
 horaslowchannel.h:49
 horaslowchannel.h:50
 horaslowchannel.h:51
 horaslowchannel.h:52
 horaslowchannel.h:53
 horaslowchannel.h:54
 horaslowchannel.h:55
 horaslowchannel.h:56
 horaslowchannel.h:57
 horaslowchannel.h:58
 horaslowchannel.h:59
 horaslowchannel.h:60
 horaslowchannel.h:61
 horaslowchannel.h:62
 horaslowchannel.h:63
 horaslowchannel.h:64
 horaslowchannel.h:65
 horaslowchannel.h:66
 horaslowchannel.h:67
 horaslowchannel.h:68