00001 #ifndef __ITKRGEOMETRYSVC_H
00002 #define __ITKRGEOMETRYSVC_H 1
00003
00004 #include "GaudiKernel/IInterface.h"
00005 #include "TkrRecon/TkrAxis.h"
00006 #include "src/TkrDetGeo.h"
00007
00008
00009 #include <string>
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 static const InterfaceID IID_ITkrGeometrySvc(905, 1 , 0);
00022
00023
00024 class ITkrGeometrySvc : public TkrAxis, public virtual IInterface
00025
00026 {
00027 public:
00028
00030
00031
00032 static const InterfaceID& interfaceID() { return IID_ITkrGeometrySvc; }
00033
00034
00035 virtual int geomType()=0;
00036
00037 virtual int numXTowers()=0;
00038 virtual int numYTowers()=0;
00039 virtual int numViews()=0;
00040 virtual int numLayers()=0;
00041
00042
00043
00044 virtual int indMixed()=0;
00045 virtual int viewMixed()=0;
00046 virtual int ladderMixed()=0;
00047 virtual int isizeMixed()=0;
00048 virtual int numPlanes()=0;
00049
00050 virtual double Z0()=0;
00051 virtual double towerPitch()=0;
00052 virtual double trayWidth()=0;
00053 virtual double trayHeight()=0;
00054 virtual double footHeight()=0;
00055
00056 virtual double ladderWidth()=0;
00057 virtual double ladderLength()=0;
00058 virtual double ladderGap()=0;
00059 virtual double ladderInnerGap()=0;
00060 virtual int ladderNStrips()=0;
00061
00062 virtual double siStripPitch()=0;
00063 virtual double siResolution()=0;
00064 virtual double siThickness()=0;
00065 virtual double siDeadDistance()=0;
00066
00067 virtual double thinConvHeight()=0;
00068 virtual double thickConvHeight()=0;
00069
00070 virtual double siX0()=0;
00071 virtual double pbX0()=0;
00072
00073
00074 virtual int ilayer(int iplane)=0;
00075
00076 virtual tkrDetGeo getSiLayer(int ilayer, axis a, int tower = 0)=0;
00077
00078 virtual tkrDetGeo getSiLadder(int ilayer, axis a, int iladder, int tower = 0)=0;
00079 virtual tkrDetGeo getSiDice(int ilayer, axis a, int iladder, int idice, int tower = 0)=0;
00080
00081
00082 virtual double pbRadLen(int ilayer)=0;
00083 virtual double layerGap(int ilayer)=0;
00084 virtual int nLadders(int ilayer, axis a)=0;
00085 virtual double diceSize(int ilayer, axis a, int iladder)=0;
00086 virtual int nDices(int ilayer, axis a, int iladder)=0;
00087 };
00088
00089 #endif