00001
00002
00003 #include "geometry/DiracBoard.hh"
00004 #include "geometry/DiracChip.hh"
00005
00006 #include <iostream>
00007 #include "tools/Log.hh"
00008
00009 using namespace std;
00010
00011
00012
00013 static int HRChipMap(const int chNum) {
00014 int div = chNum / 6, mod = chNum % 6;
00015 return ( (((div & 1) == 0) ? mod : (6 - mod)) + (div * 6) + 1);
00016 }
00017
00018
00019 DiracBoard::DiracBoard(const Chamber& aChamber, const i32 aCol, const i32 aRow, const ui32 nbColumns, const ui32 nbRows,const i32 aId)
00020 : Board(aChamber, aCol, aRow, nbColumns, nbRows, aId)
00021 {
00022
00023
00024
00025 }
00026
00027
00028
00029 DiracBoard::~DiracBoard()
00030 {
00031
00032 }
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060 void DiracBoard::init()
00061 {
00062
00063 for (int lrow = 0; lrow < nbRows; ++lrow) {
00064 for (int lcol = 0; lcol < nbColumns; ++lcol) {
00065 i32 chipNum = lcol + nbColumns * lrow;
00066 int mapCol = ((lrow & 1) == 0) ? lcol : (nbColumns - 1 - lcol);
00067 Chip *chip = new DiracChip(*this, mapCol, lrow, 8, 8, chipNum, 0);
00068 chips.insert(make_pair(chipNum, chip));
00069 }
00070 }
00071 }