00001 #ifndef IMDCCALIBFUNSVC_H_
00002 #define IMDCCALIBFUNSVC_H_
00003
00004 #include "GaudiKernel/IInterface.h"
00005 #include "GaudiKernel/Kernel.h"
00006
00007 #include "MdcGeomSvc/IMdcGeomSvc.h"
00008 #include "MdcGeomSvc/MdcGeomSvc.h"
00009 #include "MdcGeomSvc/MdcGeoWire.h"
00010 #include "MdcGeomSvc/MdcGeoLayer.h"
00011
00012 #include "TTree.h"
00013
00014
00015 static const InterfaceID IID_IMdcCalibFunSvc("IMdcCalibFunSvc",1,0);
00016
00017 class IMdcCalibFunSvc: virtual public IInterface{
00018 public:
00019 static const InterfaceID& interfaceID() { return IID_IMdcCalibFunSvc; }
00020
00021
00022 virtual double getVprop(int lay) const = 0;
00023
00024
00025 virtual double getTprop(int lay, double z) const = 0;
00026
00027
00028
00029 virtual double driftTimeToDist(double drifttime, int layid, int cellid,
00030 int lr, double entrance = 0.0) const = 0;
00031 virtual double distToDriftTime(double dist, int layid, int cellid, int lr,
00032 double entrance = 0.0) const = 0;
00033
00034
00035
00036
00037 virtual double getSigma(int layid, int lr, double dist,
00038 double entrance = 0.0, double tanlam = 0.0,
00039 double z = 0.0, double Q = 1000.0) const = 0;
00040 virtual double getSigmaLR(int layid, int lr, double dist,
00041 double entrance = 0.0, double tanlam = 0.0,
00042 double z = 0.0, double Q = 1000.0) const = 0;
00043 virtual double getSigma1(int layid, int lr, double dist,
00044 double entrance = 0.0, double tanlam = 0.0,
00045 double z = 0.0, double Q = 1000.0) const = 0;
00046 virtual double getSigma2(int layid, int lr, double dist,
00047 double entrance = 0.0, double tanlam = 0.0,
00048 double z = 0.0, double Q = 1000.0) const = 0;
00049 virtual double getF(int layid, int lr, double dist,
00050 double entrance = 0.0, double tanlam = 0.0,
00051 double z = 0.0, double Q = 1000.0) const = 0;
00052
00053 virtual double getSigmaToT(int layid, int lr, double tdr,
00054 double entrance = 0.0, double tanlam = 0.0,
00055 double z = 0.0, double Q = 1000.0) const = 0;
00056 virtual double getSigmaToTLR(int layid, int lr, double tdr,
00057 double entrance = 0.0, double tanlam = 0.0,
00058 double z = 0.0, double Q = 1000.0) const = 0;
00059
00060 virtual void setXtBegin() = 0;
00061 virtual int getNextXtpar(int& key, double& par) = 0;
00062 virtual void getXtpar(int layid, int entr, int lr, double par[]) const = 0;
00063 virtual bool getNewXtpar() = 0;
00064 virtual TTree* getNewXtparTree(int layid, int entr, int lr) const = 0;
00065
00066 virtual double getT0(int layid, int cellid) const = 0;
00067 virtual double getT0(int wireid) const = 0;
00068 virtual double getDelT0(int wireid) const = 0;
00069
00070 virtual double getTimeWalk(int layid, double Q) const = 0;
00071 virtual double getQtpar(int layid, int ord) const = 0;
00072
00073 virtual double getWireEff(int layid, int cellid) const = 0;
00074 virtual double getWireEff(int wireid) const = 0;
00075
00076 virtual void setSdBegin() = 0;
00077 virtual int getNextSdpar(int& key, double& par) = 0;
00078 virtual void getSdpar(int layid, int entr, int lr, double par[]) const = 0;
00079 virtual bool getR2tpar() = 0;
00080 virtual TTree* getR2tTree(int layid) const = 0;
00081
00082 virtual int getXtEntrIndex(double entrance) const = 0;
00083 virtual int getSdEntrIndex(double entrance) const = 0;
00084
00085
00086
00087
00088 virtual bool initCalibConst()=0;
00089 };
00090
00091 #endif