9 for(
int i=0;
i<3;
i++){
10 z[
i] = geo[ind++]; B[
i].
x = geo[ind++]; B[
i].
y = geo[ind++]; B[
i].
z = geo[ind++];
15 vtxFieldRegion.Set(B[0], z[0], B[1], z[1], B[2], z[2] );
36 double f_phi = geo[ind++];
37 double f_sigma = geo[ind++];
39 double b_phi = geo[ind++];
40 double b_sigma = geo[ind++];
42 double c_f =
cos(f_phi);
43 double s_f =
sin(f_phi);
44 double c_b =
cos(b_phi);
45 double s_b =
sin(b_phi);
56 if(
fabs(b_phi-f_phi)<.1 ){
57 double th = b_phi-f_phi;
60 st.
XYInfo.
C00 = ( s_b*s_b*f_sigma*f_sigma + s_f*s_f*b_sigma*b_sigma )/det;
61 st.
XYInfo.
C10 =-( s_b*c_b*f_sigma*f_sigma + s_f*c_f*b_sigma*b_sigma )/det;
62 st.
XYInfo.
C11 = ( c_b*c_b*f_sigma*f_sigma + c_f*c_f*b_sigma*b_sigma )/det;
67 double det = c_f*s_b - s_f*c_b;
69 st.
XYInfo.
C00 = ( s_b*s_b*f_sigma*f_sigma + s_f*s_f*b_sigma*b_sigma )/det;
70 st.
XYInfo.
C10 =-( s_b*c_b*f_sigma*f_sigma + s_f*c_f*b_sigma*b_sigma )/det;
71 st.
XYInfo.
C11 = ( c_b*c_b*f_sigma*f_sigma + c_f*c_f*b_sigma*b_sigma )/det;
96 int N=
static_cast<int>( geo[ind++] );
97 for(
int iC=0; iC<N; iC++ ) st.
fieldSlice.
cx[iC] = geo[ind++];
98 for(
int iC=0; iC<N; iC++ ) st.
fieldSlice.
cy[iC] = geo[ind++];
99 for(
int iC=0; iC<N; iC++ ) st.
fieldSlice.
cz[iC] = geo[ind++];
107 fTrackingLevel =
static_cast<int>( geo[ind++] );
108 fMomentumCutOff = geo[ind++];
109 fGhostSuppression =
static_cast<int>( geo[ind++] );
114 fvec sy = 0., Sy = 0.;
118 fvec By = vStations[
i].fieldSlice.cy[0];
119 Sy += dz*sy + dz*dz*By/2.;
131void L1Algo::SetData(
const vector< L1StsHit > & StsHits_,
132 const vector< L1Strip > & StsStrips_,
133 const vector< L1Strip > & StsStripsB_,
134 const vector< fscal > & StsZPos_,
135 const vector< unsigned char > & SFlag_,
136 const vector< unsigned char > & SFlagB_,
137 const THitI* StsHitsStartIndex_,
138 const THitI* StsHitsStopIndex_ )
144 vSFlag.resize(SFlag_.size());
145 vSFlagB.resize(SFlagB_.size());
147 for(
unsigned int i=0;
i<StsHits_.size(); ++
i )
vStsHits[
i] = StsHits_[
i];
148 for(
unsigned int i=0;
i<StsStrips_.size(); ++
i )
vStsStrips[
i] = StsStrips_[
i];
149 for(
unsigned int i=0;
i<StsStripsB_.size(); ++
i )
vStsStripsB[
i] = StsStripsB_[
i];
150 for(
unsigned int i=0;
i<StsZPos_.size(); ++
i )
vStsZPos[
i] = StsZPos_[
i];
151 for(
unsigned int i=0;
i<SFlag_.size(); ++
i )
vSFlag[
i] = SFlag_[
i];
152 for(
unsigned int i=0;
i<SFlagB_.size(); ++
i )
vSFlagB[
i] = SFlagB_[
i];
164 StripsToCoor(u,
v,x,y,sta);
174 StripsToCoor(u,
v,x,y,sta);
184 x = sta.xInfo.sin_phi*u + sta.xInfo.cos_phi*
v;
185 y = sta.yInfo.cos_phi*u + sta.yInfo.sin_phi*
v;
199 StripsToCoor( u,
v, x, y, sta);
friend F32vec4 sin(const F32vec4 &a)
friend F32vec4 fabs(const F32vec4 &a)
friend F32vec4 cos(const F32vec4 &a)
friend F32vec4 log(const F32vec4 &a)
vector< unsigned char > vSFlag
THitI StsHitsStopIndex[MaxNStations+1]
vector< L1Strip > vStsStrips
vector< unsigned char > vSFlagB
THitI StsHitsStartIndex[MaxNStations+1]
vector< L1StsHit > vStsHits
vector< L1Strip > vStsStripsB
void Init(const fscal geo[])
L1XYMeasurementInfo XYInfo
L1UMeasurementInfo backInfo
L1MaterialInfo materialInfo
L1UMeasurementInfo frontInfo
contain strips positions and coordinates of hit