ROOT logo
#ifndef HTRBNETADDRESSMAPPING_H

#define HTRBNETADDRESSMAPPING_H


#include "TObject.h"

#include "TObjArray.h"

#include "hparset.h"
#include "htrb2correction.h"
#include "htrbnetdef.h"
#include <fstream>


using namespace Trbnet;
using namespace std;

class HTrbnetAddressMapping : public HParSet {
protected:
  TObjArray* array;  // array of pointers of type HTrb2Correction

  Int_t arrayOffset; // offset to calculate the index

public:
  HTrbnetAddressMapping(const Char_t* name="TrbnetAddressMapping",
             const Char_t* title="Mapping of trbnet addresses to boards",
             const Char_t* context="Trb2Production",
             Int_t minTrbnetAddress=Trbnet::kTrb2MinTrbnetAddress,
	     Int_t maxTrbnetAddress=Trbnet::kTrb2MaxTrbnetAddress);
  ~HTrbnetAddressMapping();
  HTrb2Correction* getBoard(Int_t trbnetAddress) {
    return (HTrb2Correction*)(array->At(trbnetAddress-arrayOffset));
  }
  HTrb2Correction* getBoard(const Char_t* temperaturSensor) {
    return (HTrb2Correction*)(array->FindObject(temperaturSensor));
  }
  HTrb2Correction* operator[](Int_t i) {
    return static_cast<HTrb2Correction*>((*array)[i]);
  }
  Int_t getSize() { return array->GetSize(); }
  Int_t getArrayOffset() { return arrayOffset; }
  Bool_t init(HParIo* input,Int_t* set);
  Int_t write(HParIo* output);
  void clear();
  void printParam();
  HTrb2Correction* addBoard(Int_t,const Char_t*,const Char_t*,Int_t,Int_t);
  Bool_t readline(const Char_t*);
  void putAsciiHeader(TString&);
  void write(fstream&);
  ClassDef(HTrbnetAddressMapping,1) // Mapping of trbnet addresses to boards

};

#endif  /*!HTRBNETADDRESSMAPPING_H*/

 htrbnetaddressmapping.h:1
 htrbnetaddressmapping.h:2
 htrbnetaddressmapping.h:3
 htrbnetaddressmapping.h:4
 htrbnetaddressmapping.h:5
 htrbnetaddressmapping.h:6
 htrbnetaddressmapping.h:7
 htrbnetaddressmapping.h:8
 htrbnetaddressmapping.h:9
 htrbnetaddressmapping.h:10
 htrbnetaddressmapping.h:11
 htrbnetaddressmapping.h:12
 htrbnetaddressmapping.h:13
 htrbnetaddressmapping.h:14
 htrbnetaddressmapping.h:15
 htrbnetaddressmapping.h:16
 htrbnetaddressmapping.h:17
 htrbnetaddressmapping.h:18
 htrbnetaddressmapping.h:19
 htrbnetaddressmapping.h:20
 htrbnetaddressmapping.h:21
 htrbnetaddressmapping.h:22
 htrbnetaddressmapping.h:23
 htrbnetaddressmapping.h:24
 htrbnetaddressmapping.h:25
 htrbnetaddressmapping.h:26
 htrbnetaddressmapping.h:27
 htrbnetaddressmapping.h:28
 htrbnetaddressmapping.h:29
 htrbnetaddressmapping.h:30
 htrbnetaddressmapping.h:31
 htrbnetaddressmapping.h:32
 htrbnetaddressmapping.h:33
 htrbnetaddressmapping.h:34
 htrbnetaddressmapping.h:35
 htrbnetaddressmapping.h:36
 htrbnetaddressmapping.h:37
 htrbnetaddressmapping.h:38
 htrbnetaddressmapping.h:39
 htrbnetaddressmapping.h:40
 htrbnetaddressmapping.h:41
 htrbnetaddressmapping.h:42
 htrbnetaddressmapping.h:43
 htrbnetaddressmapping.h:44
 htrbnetaddressmapping.h:45
 htrbnetaddressmapping.h:46
 htrbnetaddressmapping.h:47