45 #ifndef ST_TPC_GEOMETRY_HH
46 #define ST_TPC_GEOMETRY_HH
48 #include "StGlobals.hh"
49 #include "StThreeVector.hh"
58 virtual int numberOfRows()
const = 0;
59 virtual int numberOfInnerRows()
const = 0;
60 virtual int numberOfInnerRows48()
const = 0;
61 virtual int numberOfInnerRows52()
const = 0;
62 virtual int numberOfOuterRows()
const = 0;
63 virtual double innerSectorRowPitch1()
const = 0;
64 virtual double innerSectorRowPitch2()
const = 0;
65 virtual double outerSectorRowPitch()
const = 0;
67 virtual int numberOfPadsAtRow(
int)
const = 0;
68 virtual double radialDistanceAtRow(
int)
const = 0;
70 virtual int numberOfSectors()
const = 0;
72 virtual int numberOfTimeBuckets()
const = 0;
75 virtual double innerSectorPadWidth()
const = 0;
76 virtual double outerSectorPadWidth()
const = 0;
77 virtual double innerSectorPadLength()
const = 0;
78 virtual double outerSectorPadLength()
const = 0;
79 virtual double innerSectorPadPitch()
const = 0;
80 virtual double outerSectorPadPitch()
const = 0;
83 virtual double innerSectorEdge()
const = 0;
84 virtual double outerSectorEdge()
const = 0;
85 virtual double ioSectorSpacing()
const = 0;
88 virtual double anodeWireRadius()
const = 0;
89 virtual double frischGridWireRadius()
const = 0;
90 virtual double gateWireRadius()
const = 0;
92 virtual double anodeWirePitch()
const = 0;
93 virtual double frischGridPitch()
const = 0;
94 virtual double gatePitch()
const = 0;
96 virtual double innerSectorAnodeWirePadPlaneSeparation()
const = 0;
97 virtual double innerSectorFrischGridPadPlaneSeparation()
const = 0;
98 virtual double innerSectorGatingGridPadPlaneSeparation()
const = 0;
100 virtual double outerSectorAnodeWirePadPlaneSeparation()
const = 0;
101 virtual double outerSectorFrischGridPadPlaneSeparation()
const = 0;
102 virtual double outerSectorGatingGridPadPlaneSeparation()
const = 0;
104 virtual int numberOfInnerSectorAnodeWires()
const = 0;
105 virtual double firstInnerSectorAnodeWire()
const = 0;
106 virtual double lastInnerSectorAnodeWire()
const = 0;
107 virtual double innerSectorAnodeWire(
int)
const = 0;
109 virtual int numberOfOuterSectorAnodeWires()
const = 0;
110 virtual double firstOuterSectorAnodeWire()
const = 0;
111 virtual double lastOuterSectorAnodeWire()
const = 0;
112 virtual double outerSectorAnodeWire(
int)
const = 0;
115 virtual double frischGrid()
const = 0;
116 virtual double driftDistance()
const = 0;
117 virtual double ifcRadius()
const = 0;
118 virtual double ofcRadius()
const = 0;
119 virtual double endCapZ()
const = 0;
120 virtual double innerSectorzOffSet()
const = 0;
121 virtual double outerSectorzOffSet()
const = 0;
127 virtual void print(ostream& os = cout)
const = 0;