8 #ifndef _DFCALGeometry_
9 #define _DFCALGeometry_
11 #include <JANA/JFactory.h>
12 #include <JANA/JObject.h>
42 enum { kBlocksWide = 59 };
43 enum { kBlocksTall = 59 };
44 enum { kMaxChannels = kBlocksWide * kBlocksTall };
45 enum { kMidBlock = ( kBlocksWide - 1 ) / 2 };
46 enum { kBeamHoleSize = 3 };
55 bool isBlockActive(
int row,
int column )
const;
60 DVector2 positionOnFace(
int channel )
const;
62 int channel(
int row,
int column )
const;
64 int row (
int channel )
const {
return m_row[channel]; }
65 int column(
int channel )
const {
return m_column[channel]; }
68 int row (
float y )
const;
71 void toStrings(vector<pair<string,string> > &items)
const {
72 AddString(items,
"kBlocksWide",
"%d", (
int)kBlocksWide);
73 AddString(items,
"kBlocksTall",
"%d", (
int)kBlocksTall);
74 AddString(items,
"kMaxChannels",
"%d", (
int)kMaxChannels);
75 AddString(items,
"kBeamHoleSize",
"%2.3f", (
int)kBeamHoleSize);
80 bool m_activeBlock[kBlocksTall][kBlocksWide];
81 DVector2 m_positionOnFace[kBlocksTall][kBlocksWide];
83 int m_channelNumber[kBlocksTall][kBlocksWide];
84 int m_row[kMaxChannels];
85 int m_column[kMaxChannels];
90 #endif // _DFCALGeometry_
static double blockLength()
void toStrings(vector< pair< string, string > > &items) const
static double blockSize()
int column(int channel) const
int row(int channel) const
int numActiveBlocks() const