9 for (
int i = 0;
i < 3;
i++) {
19 vtxFieldRegion.Set(B[0], z[0], B[1], z[1], B[2], z[2]);
40 double f_phi = geo[ind++];
41 double f_sigma = geo[ind++];
43 double b_phi = geo[ind++];
44 double b_sigma = geo[ind++];
46 double c_f =
cos(f_phi);
47 double s_f =
sin(f_phi);
48 double c_b =
cos(b_phi);
49 double s_b =
sin(b_phi);
60 if (
fabs(b_phi - f_phi) < .1) {
61 double th = b_phi - f_phi;
64 st.
XYInfo.
C00 = (s_b * s_b * f_sigma * f_sigma + s_f * s_f * b_sigma * b_sigma) / det;
65 st.
XYInfo.
C10 = -(s_b * c_b * f_sigma * f_sigma + s_f * c_f * b_sigma * b_sigma) / det;
66 st.
XYInfo.
C11 = (c_b * c_b * f_sigma * f_sigma + c_f * c_f * b_sigma * b_sigma) / det;
70 double det = c_f * s_b - s_f * c_b;
72 st.
XYInfo.
C00 = (s_b * s_b * f_sigma * f_sigma + s_f * s_f * b_sigma * b_sigma) / det;
73 st.
XYInfo.
C10 = -(s_b * c_b * f_sigma * f_sigma + s_f * c_f * b_sigma * b_sigma) / det;
74 st.
XYInfo.
C11 = (c_b * c_b * f_sigma * f_sigma + c_f * c_f * b_sigma * b_sigma) / det;
99 int N =
static_cast<int>(geo[ind++]);
100 for (
int iC = 0; iC < N; iC++)
102 for (
int iC = 0; iC < N; iC++)
104 for (
int iC = 0; iC < N; iC++)
120 fvec sy = 0., Sy = 0.;
124 fvec By = vStations[
i].fieldSlice.cy[0];
125 Sy += dz * sy + dz * dz * By / 2.;
137void L1Algo::SetData(
const vector<L1StsHit>& StsHits_,
138 const vector<L1Strip>& StsStrips_,
139 const vector<L1Strip>& StsStripsB_,
140 const vector<fscal>& StsZPos_,
141 const vector<unsigned char>& SFlag_,
142 const vector<unsigned char>& SFlagB_,
143 const THitI* StsHitsStartIndex_,
144 const THitI* StsHitsStopIndex_)
150 vSFlag.resize(SFlag_.size());
151 vSFlagB.resize(SFlagB_.size());
153 for (
unsigned int i = 0;
i < StsHits_.size(); ++
i)
155 for (
unsigned int i = 0;
i < StsStrips_.size(); ++
i)
157 for (
unsigned int i = 0;
i < StsStripsB_.size(); ++
i)
159 for (
unsigned int i = 0;
i < StsZPos_.size(); ++
i)
161 for (
unsigned int i = 0;
i < SFlag_.size(); ++
i)
163 for (
unsigned int i = 0;
i < SFlagB_.size(); ++
i)
200 x = sta.xInfo.sin_phi * u + sta.xInfo.cos_phi *
v;
201 y = sta.yInfo.cos_phi * u + sta.yInfo.sin_phi *
v;
friend F32vec4 fabs(const F32vec4 &a)
void StripsToCoor(const fscal &u, const fscal &v, fscal &x, fscal &y, const L1Station &sta) const
convert strip positions to coordinates
vector< L1StsHit > vStsHits
L1HitPoint CreateHitPoint(const L1StsHit &hit, char ista)
full the hit point by hit information.
THitI StsHitsStopIndex[MaxNStations+1]
vector< L1Strip > vStsStripsB
vector< unsigned char > vSFlagB
vector< unsigned char > vSFlag
THitI StsHitsStartIndex[MaxNStations+1]
vector< L1Strip > vStsStrips
void GetHitCoor(const L1StsHit &_h, fscal &_x, fscal &_y, fscal &_z, const L1Station &sta)
--— Hit-point-strips conversion routines ---—
void Init(const fscal geo[])
L1XYMeasurementInfo XYInfo
L1UMeasurementInfo backInfo
L1MaterialInfo materialInfo
L1UMeasurementInfo frontInfo
RVec< PromoteType< T > > cos(const RVec< T > &v)
RVec< PromoteType< T > > log(const RVec< T > &v)
RVec< PromoteType< T > > sin(const RVec< T > &v)
contain strips positions and coordinates of hit