00001 #include "SimMuon/CSCDigitizer/src/CSCDriftSim.h"
00002 #include <cmath>
00003
00004
00005
00006
00007
00008 double CSCDriftSim::avgDrift() const{
00009
00010
00011 static const double coeff[6] = { -.08618265,-.0020471805,-7.7771331e-4,
00012 -.0058433565,-5.0241491e-4,.0010223353 };
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 const double x10 = 1.;
00040 const double x11 = bz / 40.;
00041 const double x12 = x11 * 2. * x11 - x10;
00042 const double x13 = x11 * 2. * x12 - x11;
00043 const double x14 = x11 * 2. * x13 - x12;
00044 const double x15 = x11 * 2. * x14 - x13;
00045 const double x16 = x11 * 2. * x15 - x14;
00046 const double x17 = x11 * 2. * x16 - x15;
00047 const double x18 = x11 * 2. * x17 - x16;
00048 const double x19 = x11 * 2. * x18 - x17;
00049 const double x20 = 1.;
00050 const double x21 = zcell;
00051 const double x22 = x21 * 2. * x21 - x20;
00052 const double x23 = x21 * 2. * x22 - x21;
00053 const double x24 = x21 * 2. * x23 - x22;
00054 const double x25 = x21 * 2. * x24 - x23;
00055 const double x26 = x21 * 2. * x25 - x24;
00056 const double x27 = x21 * 2. * x26 - x25;
00057
00058
00059
00060
00061
00062
00063
00064 return -1 * (coeff[0] * x11 * x21 + coeff[1] * x17 * x21 + coeff[2] * x21 +
00065 coeff[3] * x11 * x27 + coeff[4] * x22 + coeff[5] * x19);
00066 }
00067
00068
00069 double CSCDriftSim::driftSigma() const {
00070
00071
00072 static const double coeff[3] = { .01069525,.010364504,.0021662697 };
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096 const double x11 = bz / 40.;
00097 const double x20 = 1.;
00098 const double x21 = zcell;
00099 const double x22 = x21 * 2. * x21 - x20;
00100
00101 return coeff[0] + coeff[1] * x11 * x21 + coeff[2] * x22;
00102 }
00103
00104