BOSS 7.0.1
BESIII Offline Software System
Loading...
Searching...
No Matches
InstallArea/include/MdcCalibFunSvc/MdcCalibFunSvc/IMdcCalibFunSvc.h
Go to the documentation of this file.
1#ifndef IMDCCALIBFUNSVC_H_
2#define IMDCCALIBFUNSVC_H_
3
4#include "GaudiKernel/IInterface.h"
5#include "GaudiKernel/Kernel.h"
6
7#include "MdcGeomSvc/IMdcGeomSvc.h"
8#include "MdcGeomSvc/MdcGeomSvc.h"
9#include "MdcGeomSvc/MdcGeoWire.h"
10#include "MdcGeomSvc/MdcGeoLayer.h"
11
12#include "TTree.h"
13
14/* Declaration of the interface ID */
15static const InterfaceID IID_IMdcCalibFunSvc("IMdcCalibFunSvc",1,0);
16
17class IMdcCalibFunSvc: virtual public IInterface{
18public:
19 static const InterfaceID& interfaceID() { return IID_IMdcCalibFunSvc; }
20
21 /* propagation velocity of the signal in the wire. unit: mm/ns */
22 virtual double getVprop(int lay) const = 0;
23
24 /* get propagation time. the unit of z is mm */
25 virtual double getTprop(int lay, double z) const = 0;
26
27 /* DriftTime is real drift time, that is
28 DriftTime = Tdc - TOF - T0 - TimeWalk */
29 virtual double driftTimeToDist(double drifttime, int layid, int cellid,
30 int lr, double entrance = 0.0) const = 0;
31 virtual double distToDriftTime(double dist, int layid, int cellid, int lr,
32 double entrance = 0.0) const = 0;
33
34 /* Sigma1 and Sigma2 are the smaller and the bigger sigma of
35 the two gaussian distribution, respectively.
36 Sigma = sqrt( F*Sigma1^2 + (1-F)*Sigma2^2 ) */
37 virtual double getSigma(int layid, int lr, double dist,
38 double entrance = 0.0, double tanlam = 0.0,
39 double z = 0.0, double Q = 1000.0) const = 0;
40 virtual double getSigmaLR(int layid, int lr, double dist,
41 double entrance = 0.0, double tanlam = 0.0,
42 double z = 0.0, double Q = 1000.0) const = 0;
43 virtual double getSigma1(int layid, int lr, double dist,
44 double entrance = 0.0, double tanlam = 0.0,
45 double z = 0.0, double Q = 1000.0) const = 0;
46 virtual double getSigma2(int layid, int lr, double dist,
47 double entrance = 0.0, double tanlam = 0.0,
48 double z = 0.0, double Q = 1000.0) const = 0;
49 virtual double getF(int layid, int lr, double dist,
50 double entrance = 0.0, double tanlam = 0.0,
51 double z = 0.0, double Q = 1000.0) const = 0;
52
53 virtual double getSigmaToT(int layid, int lr, double tdr,
54 double entrance = 0.0, double tanlam = 0.0,
55 double z = 0.0, double Q = 1000.0) const = 0;
56 virtual double getSigmaToTLR(int layid, int lr, double tdr,
57 double entrance = 0.0, double tanlam = 0.0,
58 double z = 0.0, double Q = 1000.0) const = 0;
59
60 virtual void setXtBegin() = 0;
61 virtual int getNextXtpar(int& key, double& par) = 0;
62 virtual void getXtpar(int layid, int entr, int lr, double par[]) const = 0;
63 virtual bool getNewXtpar() = 0;
64 virtual TTree* getNewXtparTree(int layid, int entr, int lr) const = 0;
65
66 virtual double getT0(int layid, int cellid) const = 0;
67 virtual double getT0(int wireid) const = 0;
68 virtual double getDelT0(int wireid) const = 0;
69
70 virtual double getTimeWalk(int layid, double Q) const = 0;
71 virtual double getQtpar(int layid, int ord) const = 0;
72
73 virtual double getWireEff(int layid, int cellid) const = 0;
74 virtual double getWireEff(int wireid) const = 0;
75
76 virtual void setSdBegin() = 0;
77 virtual int getNextSdpar(int& key, double& par) = 0;
78 virtual void getSdpar(int layid, int entr, int lr, double par[]) const = 0;
79 virtual bool getR2tpar() = 0;
80 virtual TTree* getR2tTree(int layid) const = 0;
81
82 virtual int getXtEntrIndex(double entrance) const = 0;
83 virtual int getSdEntrIndex(double entrance) const = 0;
84
85/* virtual std::string getCalibDataFile() = 0; */
86
87 //add for ganga
88 virtual bool initCalibConst()=0;
89};
90
91#endif /* IMDCCALIBFUNSVC_H_ */
*************DOUBLE PRECISION m_pi *DOUBLE PRECISION m_HvecTau2 DOUBLE PRECISION m_HvClone2 DOUBLE PRECISION m_gamma1 DOUBLE PRECISION m_gamma2 DOUBLE PRECISION m_thet1 DOUBLE PRECISION m_thet2 INTEGER m_IFPHOT *COMMON c_Taupair $ !Spin Polarimeter vector first Tau $ !Spin Polarimeter vector second Tau $ !Clone Spin Polarimeter vector first Tau $ !Clone Spin Polarimeter vector second Tau $ !Random Euler angle for cloning st tau $ !Random Euler angle for cloning st tau $ !Random Euler angle for cloning st tau $ !Random Euler angle for cloning nd tau $ !Random Euler angle for cloning nd tau $ !Random Euler angle for cloning nd tau $ !phi of HvecTau1 $ !theta of HvecTau1 $ !phi of HvecTau2 $ !theta of HvecTau2 $ !super key
Definition: Taupair.h:42
virtual void setXtBegin()=0
virtual void getSdpar(int layid, int entr, int lr, double par[]) const =0
virtual double getDelT0(int wireid) const =0
virtual int getNextXtpar(int &key, double &par)=0
virtual double driftTimeToDist(double drifttime, int layid, int cellid, int lr, double entrance=0.0) const =0
virtual double getSigmaToTLR(int layid, int lr, double tdr, double entrance=0.0, double tanlam=0.0, double z=0.0, double Q=1000.0) const =0
virtual double getWireEff(int layid, int cellid) const =0
virtual double getF(int layid, int lr, double dist, double entrance=0.0, double tanlam=0.0, double z=0.0, double Q=1000.0) const =0
virtual double getVprop(int lay) const =0
virtual double getSigmaToT(int layid, int lr, double tdr, double entrance=0.0, double tanlam=0.0, double z=0.0, double Q=1000.0) const =0
virtual int getNextSdpar(int &key, double &par)=0
virtual TTree * getR2tTree(int layid) const =0
virtual bool getR2tpar()=0
virtual void getXtpar(int layid, int entr, int lr, double par[]) const =0
virtual bool getNewXtpar()=0
virtual double getSigma(int layid, int lr, double dist, double entrance=0.0, double tanlam=0.0, double z=0.0, double Q=1000.0) const =0
virtual double getSigma2(int layid, int lr, double dist, double entrance=0.0, double tanlam=0.0, double z=0.0, double Q=1000.0) const =0
virtual double getTprop(int lay, double z) const =0
virtual double getSigmaLR(int layid, int lr, double dist, double entrance=0.0, double tanlam=0.0, double z=0.0, double Q=1000.0) const =0
virtual int getXtEntrIndex(double entrance) const =0
virtual double distToDriftTime(double dist, int layid, int cellid, int lr, double entrance=0.0) const =0
virtual double getSigma1(int layid, int lr, double dist, double entrance=0.0, double tanlam=0.0, double z=0.0, double Q=1000.0) const =0
virtual double getWireEff(int wireid) const =0
virtual bool initCalibConst()=0
virtual double getQtpar(int layid, int ord) const =0
virtual void setSdBegin()=0
virtual double getT0(int wireid) const =0
virtual double getT0(int layid, int cellid) const =0
virtual double getTimeWalk(int layid, double Q) const =0
virtual TTree * getNewXtparTree(int layid, int entr, int lr) const =0
virtual int getSdEntrIndex(double entrance) const =0