ROOT logo
#ifndef HSHOWERPAD_H
#define HSHOWERPAD_H

#include "TObject.h"
#include "TObjArray.h"
#include "hshowerframe.h"
#include "hshowergeantwire.h"

class HParamList;

class HShowerPad  : public TObject{
private:
   friend class HShowerPadTab;
   Int_t nPadNr;   //pad identification
   Int_t nPadFlag; // 0-total outside, 1-inside, 2-partial inside
   Int_t nPadsX;   //number of pads in one raw

   //coordinates of corners of pad
   Float_t fXld,fYld,fXlu,fYlu; // d - down, u - up
   Float_t fXrd,fYrd,fXru,fYru; // l - left, r - right
public:
   HShowerPad();
   virtual ~HShowerPad() {}
   HShowerPad(const HShowerPad& srcPad);

   void reset();

   Int_t isOut(HShowerGeantWire *qhit);
   Int_t isOut(Float_t x, Float_t y);
   Int_t isOutX(Float_t x, Float_t y);
   Int_t isOutY(Float_t x, Float_t y);

   void getPadCenter(Float_t *pfX, Float_t *pfY);

   Int_t getPadNr(){return nPadNr;}
   void getPadPos(Int_t *pRow, Int_t *pCol);
   Int_t getPadFlag(){return nPadFlag;}
   void setPadFlag(Int_t nFlag){nPadFlag = nFlag;}
   void setPadNr(Int_t nPad){nPadNr = nPad;}

   Float_t getXld(void) const { return fXld; }
   Float_t getYld(void) const { return fYld; }
   Float_t getXlu(void) const { return fXlu; }
   Float_t getYlu(void) const { return fYlu; }
   Float_t getXrd(void) const { return fXrd; }
   Float_t getYrd(void) const { return fYrd; }
   Float_t getXru(void) const { return fXru; }
   Float_t getYru(void) const { return fYru; }

   Float_t getXld_mm(void) const { return 10.0f * fXld; }
   Float_t getYld_mm(void) const { return 10.0f * fYld; }
   Float_t getXlu_mm(void) const { return 10.0f * fXlu; }
   Float_t getYlu_mm(void) const { return 10.0f * fYlu; }
   Float_t getXrd_mm(void) const { return 10.0f * fXrd; }
   Float_t getYrd_mm(void) const { return 10.0f * fYrd; }
   Float_t getXru_mm(void) const { return 10.0f * fXru; }
   Float_t getYru_mm(void) const { return 10.0f * fYru; }

   HShowerPad& operator=(const HShowerPad&); 

   ClassDef(HShowerPad, 2)
};

class HShowerPadTab  : public TObject {
private:

   Int_t nPads;            //total number of pads
   Int_t nPadsX;           //number of rows
   Int_t nPadsY;           //number of columns
   Int_t m_nModuleID;      //module identification
   TObjArray* m_pPadArr;   //table of pads
   HShowerFrame* m_pFrame; //reference to frame for this module

public:
   HShowerPadTab();
   ~HShowerPadTab();

   void reset();
   void   putParams(HParamList*);
   Bool_t getParams(HParamList*);

   void setPad(HShowerPad* pPad, Int_t nRow, Int_t nCol);
   void setPad(HShowerPad* pPad, Int_t nPadNr);

   HShowerPad* getPad(Int_t nPadNr);
   HShowerPad* getPad(Int_t nRow, Int_t nCol);
   HShowerPad* getPad(Float_t fXpos, Float_t fYpos);

   Int_t getNPad() {return nPads;}
   Int_t getNPadX() {return nPadsX;}
   Int_t getNPadY() {return nPadsY;}

   Bool_t isOut(Int_t nX, Int_t nY);

   void setFrame(HShowerFrame *pFrame) {m_pFrame = pFrame;}
   HShowerFrame* getFrame() {return m_pFrame;}
   void setModuleID(Int_t id) {m_nModuleID = id;}
   Int_t getModuleID() {return m_nModuleID;}

private:
   Int_t calcAddr(Int_t nRow, Int_t nCol) {return nCol + nPadsX * nRow;}
  
   ClassDef(HShowerPadTab, 2)
};
#endif /* !HSHOWERPAD_H */
 hshowerpad.h:1
 hshowerpad.h:2
 hshowerpad.h:3
 hshowerpad.h:4
 hshowerpad.h:5
 hshowerpad.h:6
 hshowerpad.h:7
 hshowerpad.h:8
 hshowerpad.h:9
 hshowerpad.h:10
 hshowerpad.h:11
 hshowerpad.h:12
 hshowerpad.h:13
 hshowerpad.h:14
 hshowerpad.h:15
 hshowerpad.h:16
 hshowerpad.h:17
 hshowerpad.h:18
 hshowerpad.h:19
 hshowerpad.h:20
 hshowerpad.h:21
 hshowerpad.h:22
 hshowerpad.h:23
 hshowerpad.h:24
 hshowerpad.h:25
 hshowerpad.h:26
 hshowerpad.h:27
 hshowerpad.h:28
 hshowerpad.h:29
 hshowerpad.h:30
 hshowerpad.h:31
 hshowerpad.h:32
 hshowerpad.h:33
 hshowerpad.h:34
 hshowerpad.h:35
 hshowerpad.h:36
 hshowerpad.h:37
 hshowerpad.h:38
 hshowerpad.h:39
 hshowerpad.h:40
 hshowerpad.h:41
 hshowerpad.h:42
 hshowerpad.h:43
 hshowerpad.h:44
 hshowerpad.h:45
 hshowerpad.h:46
 hshowerpad.h:47
 hshowerpad.h:48
 hshowerpad.h:49
 hshowerpad.h:50
 hshowerpad.h:51
 hshowerpad.h:52
 hshowerpad.h:53
 hshowerpad.h:54
 hshowerpad.h:55
 hshowerpad.h:56
 hshowerpad.h:57
 hshowerpad.h:58
 hshowerpad.h:59
 hshowerpad.h:60
 hshowerpad.h:61
 hshowerpad.h:62
 hshowerpad.h:63
 hshowerpad.h:64
 hshowerpad.h:65
 hshowerpad.h:66
 hshowerpad.h:67
 hshowerpad.h:68
 hshowerpad.h:69
 hshowerpad.h:70
 hshowerpad.h:71
 hshowerpad.h:72
 hshowerpad.h:73
 hshowerpad.h:74
 hshowerpad.h:75
 hshowerpad.h:76
 hshowerpad.h:77
 hshowerpad.h:78
 hshowerpad.h:79
 hshowerpad.h:80
 hshowerpad.h:81
 hshowerpad.h:82
 hshowerpad.h:83
 hshowerpad.h:84
 hshowerpad.h:85
 hshowerpad.h:86
 hshowerpad.h:87
 hshowerpad.h:88
 hshowerpad.h:89
 hshowerpad.h:90
 hshowerpad.h:91
 hshowerpad.h:92
 hshowerpad.h:93
 hshowerpad.h:94
 hshowerpad.h:95
 hshowerpad.h:96
 hshowerpad.h:97
 hshowerpad.h:98
 hshowerpad.h:99
 hshowerpad.h:100
 hshowerpad.h:101
 hshowerpad.h:102
 hshowerpad.h:103
 hshowerpad.h:104
 hshowerpad.h:105