ROOT logo
//*-- AUTHOR : J.Wuestenfeld
//*-- Modified : 02/18/2005 by J. Wuestenfeld

////////////////////////////////////////////////////////////////////////////
// HMdcTdcChannel
//
// Container class for the TDC channle masks of the MDC
//
////////////////////////////////////////////////////////////////////////////
#ifndef HMDCTDCCHANNEL__H
#define HMDCTDCCHANNEL__H

#include "TObject.h"
#include "TObjArray.h"
#include "TString.h"
#include "hparset.h"

class HMdcRawStruct;
class HMdcLookupGeom;

class HMdcTdcChannelTdc : public TObject {
protected:
    Int_t channelMask[2];   // TDC channel mask (index 1: channel mask, 0: callibration mask)
public:
    HMdcTdcChannelTdc(){channelMask[0] = 0x0;channelMask[1] = 0x0;}
    ~HMdcTdcChannelTdc() {;}
    Int_t getChannelMask(Int_t type)  {return channelMask[type];}
    void fill(Int_t mask,Int_t type){
      // fill mask for given type
      channelMask[type]=mask;
    }
    void fill(HMdcTdcChannelTdc&);
    void setChannelMask(Int_t mask,Int_t type)  {channelMask[type]=mask;}
    void clear() {
      // resets contents
      channelMask[0] = -1;
      channelMask[1] = -1;
    }
    ClassDef(HMdcTdcChannelTdc,1) // Tdc level of the MDC TDC channel mask
};


class HMdcTdcChannelMbo : public TNamed {
protected:
    TObjArray *array; // array of pointers of type HMdcTdcChannelTdc
public:
    HMdcTdcChannelMbo(Int_t tdc = 12, const Text_t* name="");
    ~HMdcTdcChannelMbo();
    HMdcTdcChannelTdc& operator[](Int_t i) {
			// access to array
      return *static_cast<HMdcTdcChannelTdc*>((*array)[i]);
    }
    Int_t getSize() {return array->GetEntries();}
    ClassDef(HMdcTdcChannelMbo,1) // Mbo level of the MDC TDC channel mask
};

class HMdcTdcChannelMod : public TObject {
protected:
    TObjArray *array;   // array of pointers of type HMdcTdcChanneldMbo
public:
    HMdcTdcChannelMod(Int_t mbo = 16);
    ~HMdcTdcChannelMod();
    HMdcTdcChannelMbo& operator[](Int_t i) {
			//access to array
      return *static_cast<HMdcTdcChannelMbo*>((*array)[i]);
    }
    Int_t getSize() {return array->GetEntries();}
    void createMbo(Int_t, Int_t, const Char_t*);
    ClassDef(HMdcTdcChannelMod,1) // Module level of the MDC TDC channel mask
};

class HMdcTdcChannelSec : public TObject {
protected:
    TObjArray* array;   // array of pointers of type HMdcTdcChannel Mod

public:
    HMdcTdcChannelSec(Int_t mod = 4);
    ~HMdcTdcChannelSec();
    HMdcTdcChannelMod& operator[](Int_t i) {
			// access to array
      return *static_cast<HMdcTdcChannelMod*>((*array)[i]);
    }
    Int_t getSize() {return array->GetEntries();}
    ClassDef(HMdcTdcChannelSec,1) // Sector level of the MDC TDC channel mask
};

class HMdcTdcChannel : public HParSet {
protected:
   TObjArray* array;                // array of pointers of type HMdcTdcChannelSec
   Int_t oraVersion;                // parameter version in Oracle
   Int_t status;                    // status of the parameters
   HMdcRawStruct* pRawStruct;       //! Internaly needed to setup the container structure
   HMdcLookupGeom* pLookupGeom;     //! Internally needed to map out not connected channels
   Bool_t mapNotConnectedChannels;  // Map out channels that have no wire connected

public:
   HMdcTdcChannel(const Char_t* name="MdcTdcChannel",
                  const Char_t* title="channel masks for Mdc TDC",
                  const Char_t* context="MdcTdcChannelProduction",
                  Int_t n=6);
   ~HMdcTdcChannel();
   HMdcTdcChannelSec& operator[](Int_t i) {
      return *static_cast<HMdcTdcChannelSec*>((*array)[i]);
   }
   void fill(Int_t sector, Int_t module, Int_t mbo, Int_t dbo,Int_t th) {
      // fills mask into specified HMdcTdcChannelTdc object
      ((HMdcTdcChannelSec *)((*array)[0]))[sector][module][mbo][dbo].fill(th,0);
   }
   Int_t getSize() {return array->GetEntries();}
   Int_t getOraVersion() { return oraVersion; }
   Int_t getStatus(void){return status;};
   Bool_t getMapNotConnetedChannels(void) {return mapNotConnectedChannels;};
   void setOraVersion(Int_t v) { oraVersion=v;}
   void setStatus(Int_t v){status = v;};
   void setMapNotConnectedChannels(Bool_t s=kFALSE) {mapNotConnectedChannels=s;};
   void clear();
   Bool_t init(HParIo*, Int_t*);
   void putAsciiHeader(TString&);
   void readline(const Char_t*, Int_t*);
   void readLineFromFile(const Char_t*);
   Int_t write(HParIo*);
   Bool_t writeline(Char_t*, Int_t, Int_t, Int_t, Int_t);
   void mapOutUnusedChannels(void);
   void printParam();
   ClassDef(HMdcTdcChannel,2) // Container for the MDC TDC channel masks
};

#endif  /*!HMDCTDCCHANNEL__H*/

 hmdctdcchannel.h:1
 hmdctdcchannel.h:2
 hmdctdcchannel.h:3
 hmdctdcchannel.h:4
 hmdctdcchannel.h:5
 hmdctdcchannel.h:6
 hmdctdcchannel.h:7
 hmdctdcchannel.h:8
 hmdctdcchannel.h:9
 hmdctdcchannel.h:10
 hmdctdcchannel.h:11
 hmdctdcchannel.h:12
 hmdctdcchannel.h:13
 hmdctdcchannel.h:14
 hmdctdcchannel.h:15
 hmdctdcchannel.h:16
 hmdctdcchannel.h:17
 hmdctdcchannel.h:18
 hmdctdcchannel.h:19
 hmdctdcchannel.h:20
 hmdctdcchannel.h:21
 hmdctdcchannel.h:22
 hmdctdcchannel.h:23
 hmdctdcchannel.h:24
 hmdctdcchannel.h:25
 hmdctdcchannel.h:26
 hmdctdcchannel.h:27
 hmdctdcchannel.h:28
 hmdctdcchannel.h:29
 hmdctdcchannel.h:30
 hmdctdcchannel.h:31
 hmdctdcchannel.h:32
 hmdctdcchannel.h:33
 hmdctdcchannel.h:34
 hmdctdcchannel.h:35
 hmdctdcchannel.h:36
 hmdctdcchannel.h:37
 hmdctdcchannel.h:38
 hmdctdcchannel.h:39
 hmdctdcchannel.h:40
 hmdctdcchannel.h:41
 hmdctdcchannel.h:42
 hmdctdcchannel.h:43
 hmdctdcchannel.h:44
 hmdctdcchannel.h:45
 hmdctdcchannel.h:46
 hmdctdcchannel.h:47
 hmdctdcchannel.h:48
 hmdctdcchannel.h:49
 hmdctdcchannel.h:50
 hmdctdcchannel.h:51
 hmdctdcchannel.h:52
 hmdctdcchannel.h:53
 hmdctdcchannel.h:54
 hmdctdcchannel.h:55
 hmdctdcchannel.h:56
 hmdctdcchannel.h:57
 hmdctdcchannel.h:58
 hmdctdcchannel.h:59
 hmdctdcchannel.h:60
 hmdctdcchannel.h:61
 hmdctdcchannel.h:62
 hmdctdcchannel.h:63
 hmdctdcchannel.h:64
 hmdctdcchannel.h:65
 hmdctdcchannel.h:66
 hmdctdcchannel.h:67
 hmdctdcchannel.h:68
 hmdctdcchannel.h:69
 hmdctdcchannel.h:70
 hmdctdcchannel.h:71
 hmdctdcchannel.h:72
 hmdctdcchannel.h:73
 hmdctdcchannel.h:74
 hmdctdcchannel.h:75
 hmdctdcchannel.h:76
 hmdctdcchannel.h:77
 hmdctdcchannel.h:78
 hmdctdcchannel.h:79
 hmdctdcchannel.h:80
 hmdctdcchannel.h:81
 hmdctdcchannel.h:82
 hmdctdcchannel.h:83
 hmdctdcchannel.h:84
 hmdctdcchannel.h:85
 hmdctdcchannel.h:86
 hmdctdcchannel.h:87
 hmdctdcchannel.h:88
 hmdctdcchannel.h:89
 hmdctdcchannel.h:90
 hmdctdcchannel.h:91
 hmdctdcchannel.h:92
 hmdctdcchannel.h:93
 hmdctdcchannel.h:94
 hmdctdcchannel.h:95
 hmdctdcchannel.h:96
 hmdctdcchannel.h:97
 hmdctdcchannel.h:98
 hmdctdcchannel.h:99
 hmdctdcchannel.h:100
 hmdctdcchannel.h:101
 hmdctdcchannel.h:102
 hmdctdcchannel.h:103
 hmdctdcchannel.h:104
 hmdctdcchannel.h:105
 hmdctdcchannel.h:106
 hmdctdcchannel.h:107
 hmdctdcchannel.h:108
 hmdctdcchannel.h:109
 hmdctdcchannel.h:110
 hmdctdcchannel.h:111
 hmdctdcchannel.h:112
 hmdctdcchannel.h:113
 hmdctdcchannel.h:114
 hmdctdcchannel.h:115
 hmdctdcchannel.h:116
 hmdctdcchannel.h:117
 hmdctdcchannel.h:118
 hmdctdcchannel.h:119
 hmdctdcchannel.h:120
 hmdctdcchannel.h:121
 hmdctdcchannel.h:122
 hmdctdcchannel.h:123
 hmdctdcchannel.h:124
 hmdctdcchannel.h:125
 hmdctdcchannel.h:126
 hmdctdcchannel.h:127
 hmdctdcchannel.h:128
 hmdctdcchannel.h:129