CbmRoot
L1Algo.cxx
Go to the documentation of this file.
1 #include "L1Algo.h"
2 #include "L1Grid.h"
3 #include "L1HitPoint.h"
4 
5 void L1Algo::Init(const vector<fscal>& geo,
6  const bool UseHitErrors,
7  const bool mCBMmode) {
8 
9  for (int iProc = 0; iProc < 4; iProc++) {
10  for (int i = 0; i < 8; i++) {
11  threadNumberToCpuMap[2 * i + 0 + iProc * 20] = 4 * i + iProc;
12  threadNumberToCpuMap[2 * i + 1 + iProc * 20] = 4 * i + 32 + iProc;
13  }
14  for (int i = 0; i < 2; i++) {
15  threadNumberToCpuMap[2 * i + 0 + 16 + iProc * 20] = 4 * i + iProc + 64;
16  threadNumberToCpuMap[2 * i + 1 + 16 + iProc * 20] =
17  4 * i + 8 + iProc + 64;
18  }
19  }
20 
21  fUseHitErrors = UseHitErrors;
22  fmCBMmode = mCBMmode;
23 
24  //lxir039
25  // for (int i=0; i<8; i++){
26  // threadNumberToCpuMap[2*i+0] = 15-i;
27  // threadNumberToCpuMap[2*i+1] = 15-(i+8);
28  // }
29 
30 
31  int ind = 0;
32  {
33  L1FieldValue B[3];
34  fvec z[3];
35  for (int i = 0; i < 3; i++) {
36  z[i] = geo[ind++];
37  B[i].x = geo[ind++];
38  B[i].y = geo[ind++];
39  B[i].z = geo[ind++];
40 #ifndef TBB2
41  std::cout << "L1Algo Input Magnetic field:" << z[i][0] << " " << B[i].x[0]
42  << " " << B[i].y[0] << " " << B[i].z[0] << std::endl;
43 #endif // TBB2
44  }
45  vtxFieldRegion.Set(B[0], z[0], B[1], z[1], B[2], z[2]);
46  vtxFieldValue = B[0];
47  }
48  //vStations.clear();
49  NStations = static_cast<int>(geo[ind++]);
50  NMvdStations = static_cast<int>(geo[ind++]);
51  NStsStations = static_cast<int>(geo[ind++]);
52 
54 
55  if (fmCBMmode) { NFStations = -1; }
56 
57 
58  // cout << "N MVD & STS stations: " << NMvdStations << " " << NStations-NMvdStations << endl;
59 #ifndef TBB2
60  std::cout << "L1Algo Input " << NStations << " Stations:" << std::endl;
61 #endif // TBB2
62  for (int i = 0; i < NStations; i++) {
63  L1Station& st = vStations[i];
64  st.type = geo[ind++];
65  st.z = geo[ind++];
66  st.materialInfo.thick = geo[ind++];
67  st.Rmin = geo[ind++];
68  st.Rmax = geo[ind++];
69  st.materialInfo.RL = geo[ind++];
72 
73  double f_phi = geo[ind++];
74  double f_sigma = geo[ind++];
75  double b_phi = geo[ind++];
76  double b_sigma = geo[ind++];
77  double c_f = cos(f_phi);
78  double s_f = sin(f_phi);
79  double c_b = cos(b_phi);
80  double s_b = sin(b_phi);
81 
82  st.frontInfo.cos_phi = c_f;
83  st.frontInfo.sin_phi = s_f;
84  st.frontInfo.sigma2 = f_sigma * f_sigma;
85 
86  st.backInfo.cos_phi = c_b;
87  st.backInfo.sin_phi = s_b;
88  st.backInfo.sigma2 = b_sigma * b_sigma;
89 
90  if (fabs(b_phi - f_phi) < .1) {
91  double th = b_phi - f_phi;
92  double det = cos(th);
93  det *= det;
94  st.XYInfo.C00 =
95  (s_b * s_b * f_sigma * f_sigma + s_f * s_f * b_sigma * b_sigma) / det;
96  st.XYInfo.C10 =
97  -(s_b * c_b * f_sigma * f_sigma + s_f * c_f * b_sigma * b_sigma) / det;
98  st.XYInfo.C11 =
99  (c_b * c_b * f_sigma * f_sigma + c_f * c_f * b_sigma * b_sigma) / det;
100  //std::cout << "!!! det "<< det<<std::endl;
101  } else {
102  double det = c_f * s_b - s_f * c_b;
103  det *= det;
104  st.XYInfo.C00 =
105  (s_b * s_b * f_sigma * f_sigma + s_f * s_f * b_sigma * b_sigma) / det;
106  st.XYInfo.C10 =
107  -(s_b * c_b * f_sigma * f_sigma + s_f * c_f * b_sigma * b_sigma) / det;
108  st.XYInfo.C11 =
109  (c_b * c_b * f_sigma * f_sigma + c_f * c_f * b_sigma * b_sigma) / det;
110  //std::cout << "!!! det "<< det<<std::endl;
111  }
112  //std::cout.precision(10);
113  //std::cout << "Station "<<i<<" " << st.XYInfo.C00[0]<<" "<<st.XYInfo.C11[0]<<" "<<st.XYInfo.C10[0]<<std::endl;
114  //std::cout << " "<< i<<" fsigma " << f_sigma<<" bsigma "<<b_sigma<<std::endl;
115 
116  // st.xInfo.cos_phi = c_f/(c_f*s_b - c_b*s_f);
117  // st.xInfo.sin_phi =-c_b/(c_f*s_b - c_b*s_f);
118  st.xInfo.cos_phi = -s_f / (c_f * s_b - c_b * s_f);
119  st.xInfo.sin_phi = s_b / (c_f * s_b - c_b * s_f);
120  st.xInfo.sigma2 = st.XYInfo.C00;
121 
122  st.yInfo.cos_phi = c_b / (c_b * s_f - c_f * s_b);
123  st.yInfo.sin_phi = -c_f / (c_b * s_f - c_f * s_b);
124  st.yInfo.sigma2 = st.XYInfo.C11;
125  //std::cout << "st.xInfo.cos_phi "<<st.xInfo.cos_phi<< " st.yInfo.cos_phi " << st.yInfo.cos_phi << std::endl;
126  //std::cout << "st.xInfo.sin_phi "<<st.xInfo.sin_phi<< " st.yInfo.sin_phi " << st.yInfo.sin_phi << std::endl;
127 
128  //std::cout << "cos_b "<<c_b<< " sin_b " << s_b << std::endl;
129  //std::cout << "cos_f "<<c_f<< " sin_f " << s_f << std::endl;
130 
131 
132  int N = static_cast<int>(geo[ind++]);
133  for (int iC = 0; iC < N; iC++)
134  st.fieldSlice.cx[iC] = geo[ind++];
135  for (int iC = 0; iC < N; iC++)
136  st.fieldSlice.cy[iC] = geo[ind++];
137  for (int iC = 0; iC < N; iC++)
138  st.fieldSlice.cz[iC] = geo[ind++];
139 #ifndef TBB2
140  std::cout << " " << st.z[0] << " " << st.materialInfo.thick[0] << " "
141  << st.materialInfo.RL[0] << ", " << N << " field coeff."
142  << std::endl;
143  std::cout << " " << f_phi << " " << f_sigma << " " << b_phi << " "
144  << b_sigma << std::endl;
145 #endif // TBB2
146  }
147 
148  fTrackingLevel = static_cast<int>(geo[ind++]);
149  fMomentumCutOff = geo[ind++];
150  fGhostSuppression = static_cast<int>(geo[ind++]);
151 
152  {
153  // fvec By0 = vStations[NStations-1].fieldSlice.cy[0];
154  fvec z0 = vStations[NStations - 1].z;
155  fvec sy = 0., Sy = 0.;
156  for (int i = NStations - 1; i >= 0; i--) {
157  L1Station& st = vStations[i];
158  fvec dz = st.z - z0;
159  fvec By = vStations[i].fieldSlice.cy[0];
160  Sy += dz * sy + dz * dz * By / 2.;
161  sy += dz * By;
162  st.Sy = Sy;
163  z0 = st.z;
164  }
165  }
166  // for( int iS = 0; iS < NStations; ++iS ) { /// Grid is created for each station with the same step: xStep,yStep
167  // L1Grid &grid = vGrid[iS];
168  //
169  // // grid.Create(-1,1,-0.6,0.6,xStep,yStep);
170  // grid.Create(-1,1,-0.6,0.6,0.00317899,0.00105966);
171  // }
172 
173 #ifndef TBB2
174  std::cout << "L1Algo initialized" << std::endl;
175 #endif // TBB2
176 }
177 
178 
179 void L1Algo::SetData(const vector<L1StsHit>& StsHits_,
180  const vector<L1Strip>& StsStrips_,
181  const vector<L1Strip>& StsStripsB_,
182  const vector<fscal>& StsZPos_,
183  const vector<unsigned char>& SFlag_,
184  const vector<unsigned char>& SFlagB_,
185  const THitI* StsHitsStartIndex_,
186  const THitI* StsHitsStopIndex_) {
187 
188  vStsHits = &StsHits_;
189  vStsStrips = &StsStrips_;
190  vStsStripsB = &StsStripsB_;
191  vStsZPos = &StsZPos_;
192  vSFlag = &SFlag_;
193  vSFlagB = &SFlagB_;
194 
195 
196  StsHitsStartIndex = StsHitsStartIndex_;
197  StsHitsStopIndex = StsHitsStopIndex_;
198 
199 
200  /*
201 
202 
203  vStsHits.resize(StsHits_.size());
204  vStsStrips.resize(StsStrips_.size());
205  vStsStripsB.resize(StsStripsB_.size());
206  vStsZPos.resize(StsZPos_.size());
207  vSFlag.resize(SFlag_.size());
208  vSFlagB.resize(SFlagB_.size());
209 
210  for(Tindex i=0; i< static_cast<Tindex>(StsHits_.size()); ++i ) vStsHits[i] = StsHits_[i];
211  for(Tindex i=0; i< static_cast<Tindex>(StsStrips_.size()); ++i ) vStsStrips[i] = StsStrips_[i];
212  for(Tindex i=0; i< static_cast<Tindex>(StsStripsB_.size()); ++i ) vStsStripsB[i] = StsStripsB_[i];
213  for(Tindex i=0; i< static_cast<Tindex>(StsZPos_.size()); ++i ) vStsZPos[i] = StsZPos_[i];
214  for(Tindex i=0; i< static_cast<Tindex>(SFlag_.size()); ++i ) vSFlag[i] = SFlag_[i];
215  for(Tindex i=0; i< static_cast<Tindex>(SFlagB_.size()); ++i ) vSFlagB[i] = SFlagB_[i];
216 
217  for(Tindex i=0; i<MaxNStations+1; ++i) StsHitsStartIndex[i] = StsHitsStartIndex_[i];
218  for(Tindex i=0; i<MaxNStations+1; ++i) StsHitsStopIndex[i] = StsHitsStopIndex_[i];*/
219 }
220 
221 
222 void L1Algo::GetHitCoor(const L1StsHit& _h, fscal& _x, fscal& _y, char iS) {
223  L1Station& sta = vStations[int(iS)];
224  const L1Strip& u = (*vStsStrips)[_h.f];
225  const L1Strip& v = (*vStsStripsB)[_h.b];
226 
227  // const fscal &z = (*vStsZPos)[_h.iz];
228  // fscal x, y;
229  _x =
230  (sta.xInfo.sin_phi[0] * u + sta.xInfo.cos_phi[0] * v) / (*vStsZPos)[_h.iz];
231  _y =
232  (sta.yInfo.cos_phi[0] * u + sta.yInfo.sin_phi[0] * v) / (*vStsZPos)[_h.iz];
233 }
234 
236  fscal& _x,
237  fscal& _y,
238  fscal& _z,
239  const L1Station& sta) {
240  fscal u = (*vStsStrips)[_h.f];
241  fscal v = (*vStsStripsB)[_h.b];
242  fscal x, y;
243  StripsToCoor(u, v, x, y, sta);
244  _x = x;
245  _y = y;
246  _z = (*vStsZPos)[_h.iz];
247 }
248 
250  const fscal& v,
251  fscal& _x,
252  fscal& _y,
253  const L1Station& sta)
254  const // TODO: Actually sta.yInfo.sin_phi is same for all stations, so ...
255 {
256  // fvec x,y;
257  // StripsToCoor(u,v,x,y,sta);
258  // _x = x[0];
259  // _y = y[0];
260  _x = sta.xInfo.sin_phi[0] * u + sta.xInfo.cos_phi[0] * v;
261  _y = sta.yInfo.cos_phi[0] * u + sta.yInfo.sin_phi[0] * v;
262 }
265  const fscal& v,
266  fvec& _x,
267  fvec& _y,
268  const L1Station& sta)
269  const // TODO: Actually sta.yInfo.sin_phi is same for all stations, so ...
270 {
271  // fvec x,y;
272  // StripsToCoor(u,v,x,y,sta);
273  // _x = x[0];
274  // _y = y[0];
275  _x = sta.xInfo.sin_phi * u + sta.xInfo.cos_phi * v;
276  _y = sta.yInfo.cos_phi * u + sta.yInfo.sin_phi * v;
277 }
278 
279 void L1Algo::dUdV_to_dY(const fvec& u,
280  const fvec& v,
281  fvec& _y,
282  const L1Station& sta) {
283  _y = sqrt((sta.yInfo.cos_phi * u) * (sta.yInfo.cos_phi * u)
284  + (sta.yInfo.sin_phi * v) * (sta.yInfo.sin_phi * v));
285 }
286 
287 void L1Algo::dUdV_to_dX(const fvec& u,
288  const fvec& v,
289  fvec& _x,
290  const L1Station& sta) {
291  _x = sqrt((sta.xInfo.sin_phi * u) * (sta.xInfo.sin_phi * u)
292  + (sta.xInfo.cos_phi * v) * (sta.xInfo.cos_phi * v));
293 }
294 
296  const fvec& v,
297  fvec& _xy,
298  const L1Station& sta) {
299  _xy = ((sta.xInfo.sin_phi * u) * (sta.yInfo.cos_phi * u)
300  + (sta.xInfo.cos_phi * v) * (sta.yInfo.sin_phi * v));
301 }
302 
304  const fvec& v,
305  fvec& x,
306  fvec& y,
307  const L1Station& sta)
308  const // TODO: Actually sta.yInfo.sin_phi is same for all stations, so ...
309 {
310  // only for same-z
311  // x = u;
312  // y = (sta.yInfo.cos_phi*u + sta.yInfo.sin_phi*v);
313  x = sta.xInfo.sin_phi * u + sta.xInfo.cos_phi * v;
314  y = sta.yInfo.cos_phi * u + sta.yInfo.sin_phi * v;
315 }
316 
320 {
321  // L1Station& sta = vStations[int(ista)];
322  const L1Strip& u = (*vStsStrips)[hit.f];
323  const L1Strip& v = (*vStsStripsB)[hit.b];
324  const float& z = (*vStsZPos)[hit.iz];
325  const float& time = hit.t_reco;
326  return L1HitPoint(z, u, v, hit.du, hit.dv, time, hit.t_er);
327 }
328 
329 void L1Algo::CreateHitPoint(const L1StsHit& hit, char ista, L1HitPoint& point)
331 {
332  // L1Station& sta = vStations[int(ista)];
333  const L1Strip& u = (*vStsStrips)[hit.f];
334  const L1Strip& v = (*vStsStripsB)[hit.b];
335  const float& z = (*vStsZPos)[hit.iz];
336  const float& time = hit.t_reco;
337  const float& du_ = hit.du;
338  const float& dv_ = hit.dv;
339 
340  point.Set(z, u.f, v.f, du_, dv_, time, hit.t_er);
341  // point.Set(x,y,z,v.f,u.f, time, n1, hit.time1, 2.9 ); // TODO put correct time error from the hit
342 }
343 
344 // bool L1Algo::SortTrip(TripSort const& a, TripSort const& b) {
345 // return ( a.trip.GetLevel() > b.trip.GetLevel() );
346 // }
347 //
348 // bool L1Algo::SortCand(CandSort const& a, CandSort const& b) {
349 // if (a.cand.Lengtha != b.cand.Lengtha) return (a.cand.Lengtha > b.cand.Lengtha);
350 //
351 // if (a.cand.ista != b.cand.ista ) return (a.cand.ista < b.cand.ista );
352 //
353 // if (a.cand.chi2 != b.cand.chi2 )return (a.cand.chi2 < b.cand.chi2 );
354 // //return (a->chi2 < b->chi2 );
355 // // return (a->CandIndex < b->CandIndex );
356 // // return (a.cand.CandIndex > b.cand.CandIndex );
357 // }
358 
359 // inline int L1Algo::PackIndex(const int& a, const int& b, const int& c) {
360 // return (a) + ((b)*10000) + (c*100000000);
361 // }
362 //
363 // inline int L1Algo::UnPackIndex(const int& i, int& a, int& b, int& c) {
364 // return (a) + ((b)*10000) + (c*100000000);
365 // }
L1Algo::vStsZPos
const vector< fscal > * vStsZPos
Definition: L1Algo.h:342
L1Algo::fGhostSuppression
int fGhostSuppression
Definition: L1Algo.h:943
L1Algo::vStsHits
const vector< L1StsHit > * vStsHits
Definition: L1Algo.h:344
L1MaterialInfo::RadThick
fvec RadThick
Definition: L1MaterialInfo.h:11
fscal
float fscal
Definition: L1/vectors/P4_F32vec4.h:250
sin
friend F32vec4 sin(const F32vec4 &a)
Definition: L1/vectors/P4_F32vec4.h:136
L1Algo::fmCBMmode
bool fmCBMmode
Definition: L1Algo.h:391
L1HitPoint
contain strips positions and coordinates of hit
Definition: L1HitPoint.h:6
L1Algo::NStsStations
int NStsStations
Definition: L1Algo.h:335
L1Station::Rmin
fvec Rmin
Definition: L1Station.h:28
L1Algo.h
L1Algo::dUdV_to_dY
void dUdV_to_dY(const fvec &u, const fvec &v, fvec &_y, const L1Station &sta)
Definition: L1Algo.cxx:279
F32vec4
Definition: L1/vectors/P4_F32vec4.h:47
L1Station::materialInfo
L1MaterialInfo materialInfo
Definition: L1Station.h:29
L1XYMeasurementInfo::C11
fvec C11
Definition: L1XYMeasurementInfo.h:11
L1XYMeasurementInfo::C10
fvec C10
Definition: L1XYMeasurementInfo.h:11
L1Algo::StripsToCoor
void StripsToCoor(const fscal &u, const fscal &v, fscal &x, fscal &y, const L1Station &sta) const
Definition: L1Algo.cxx:249
L1Station
Definition: L1Station.h:9
L1Station::fieldSlice
L1FieldSlice fieldSlice
Definition: L1Station.h:30
sqrt
friend F32vec4 sqrt(const F32vec4 &a)
Definition: L1/vectors/P4_F32vec4.h:41
L1FieldValue::z
fvec z
Definition: L1Field.h:17
L1Algo::StsHitsStartIndex
const THitI * StsHitsStartIndex
Definition: L1Algo.h:358
L1Algo::dUdV_to_dX
void dUdV_to_dX(const fvec &u, const fvec &v, fvec &_x, const L1Station &sta)
Definition: L1Algo.cxx:287
i
int i
Definition: L1/vectors/P4_F32vec4.h:25
L1Algo::vStsStrips
const vector< L1Strip > * vStsStrips
Definition: L1Algo.h:340
L1Station::backInfo
L1UMeasurementInfo backInfo
Definition: L1Station.h:31
L1Algo::StsHitsStopIndex
const THitI * StsHitsStopIndex
Definition: L1Algo.h:359
L1UMeasurementInfo::sigma2
fvec sigma2
Definition: L1UMeasurementInfo.h:12
L1StsHit
Definition: L1StsHit.h:12
L1FieldSlice::cz
fvec cz[21]
Definition: L1Field.h:34
L1StsHit::t_er
float t_er
Definition: L1StsHit.h:18
L1MaterialInfo::logRadThick
fvec logRadThick
Definition: L1MaterialInfo.h:11
L1UMeasurementInfo::sin_phi
fvec sin_phi
Definition: L1UMeasurementInfo.h:12
L1FieldSlice::cy
fvec cy[21]
Definition: L1Field.h:34
L1Algo::vStsStripsB
const vector< L1Strip > * vStsStripsB
Definition: L1Algo.h:341
L1Algo::fUseHitErrors
bool fUseHitErrors
Definition: L1Algo.h:390
L1Algo::NFStations
int NFStations
Definition: L1Algo.h:335
L1Station::yInfo
L1UMeasurementInfo yInfo
Definition: L1Station.h:31
L1StsHit::b
TStripI b
Definition: L1StsHit.h:15
L1Algo::fMomentumCutOff
float fMomentumCutOff
Definition: L1Algo.h:944
L1Strip
Definition: L1Strip.h:12
L1StsHit::du
float du
Definition: L1StsHit.h:16
THitI
unsigned int THitI
Definition: L1StsHit.h:8
L1FieldValue::y
fvec y
Definition: L1Field.h:17
L1FieldSlice::cx
fvec cx[21]
Definition: L1Field.h:34
L1Algo::vSFlagB
const vector< unsigned char > * vSFlagB
Definition: L1Algo.h:351
L1Algo::NStations
int NStations
Definition: L1Algo.h:333
L1Station::Sy
fvec Sy
Definition: L1Station.h:28
L1Station::z
fvec z
Definition: L1Station.h:28
L1StsHit::dv
float dv
Definition: L1StsHit.h:16
L1Station::type
int type
Definition: L1Station.h:27
L1Strip::f
fscal f
Definition: L1Strip.h:23
L1MaterialInfo::RL
fvec RL
Definition: L1MaterialInfo.h:11
log
friend F32vec4 log(const F32vec4 &a)
Definition: L1/vectors/P4_F32vec4.h:135
L1HitPoint.h
L1HitPoint::Set
void Set(const float &z1, const fscal &u1, const fscal &v1, const fscal &du1, const fscal &dv1, const float &time1, float timeEr1)
Definition: L1HitPoint.h:69
L1Algo::vSFlag
const vector< unsigned char > * vSFlag
Definition: L1Algo.h:350
L1StsHit::t_reco
float t_reco
Definition: L1StsHit.h:17
L1Algo::Init
void Init(const vector< fscal > &geo, const bool UseHitErrors, const bool mCBMmode)
Definition: L1Algo.cxx:5
L1Algo::threadNumberToCpuMap
map< int, int > threadNumberToCpuMap
Definition: L1Algo.h:908
L1Algo::NMvdStations
int NMvdStations
Definition: L1Algo.h:334
v
__m128 v
Definition: L1/vectors/P4_F32vec4.h:1
x
Double_t x
Definition: CbmMvdSensorDigiToHitTask.cxx:68
fabs
friend F32vec4 fabs(const F32vec4 &a)
Definition: L1/vectors/P4_F32vec4.h:60
L1MaterialInfo::thick
fvec thick
Definition: L1MaterialInfo.h:9
y
Double_t y
Definition: CbmMvdSensorDigiToHitTask.cxx:68
cos
friend F32vec4 cos(const F32vec4 &a)
Definition: L1/vectors/P4_F32vec4.h:137
L1Algo::dUdV_to_dXdY
void dUdV_to_dXdY(const fvec &u, const fvec &v, fvec &_xy, const L1Station &sta)
Definition: L1Algo.cxx:295
L1Station::xInfo
L1UMeasurementInfo xInfo
Definition: L1Station.h:31
L1UMeasurementInfo::cos_phi
fvec cos_phi
Definition: L1UMeasurementInfo.h:12
L1Station::Rmax
fvec Rmax
Definition: L1Station.h:28
L1Algo::GetHitCoor
void GetHitCoor(const L1StsHit &_h, fscal &_x, fscal &_y, fscal &_z, const L1Station &sta)
--— Hit-point-strips conversion routines ---—
Definition: L1Algo.cxx:235
L1FieldValue
Definition: L1Field.h:11
L1XYMeasurementInfo::C00
fvec C00
Definition: L1XYMeasurementInfo.h:11
L1StsHit::f
TStripI f
Definition: L1StsHit.h:15
L1StsHit::iz
TZPosI iz
Definition: L1StsHit.h:24
L1Algo::CreateHitPoint
L1HitPoint CreateHitPoint(const L1StsHit &hit, char ista)
full the hit point by hit information: takes hit as input (2 strips) and creates hit_point with all c...
Definition: L1Algo.cxx:318
L1Algo::fTrackingLevel
int fTrackingLevel
Definition: L1Algo.h:943
L1Algo::SetData
void SetData(const vector< L1StsHit > &StsHits_, const vector< L1Strip > &StsStrips_, const vector< L1Strip > &StsStripsB_, const vector< fscal > &StsZPos_, const vector< unsigned char > &SFlag_, const vector< unsigned char > &SFlagB_, const THitI *StsHitsStartIndex_, const THitI *StsHitsStopIndex_)
Definition: L1Algo.cxx:179
L1Station::frontInfo
L1UMeasurementInfo frontInfo
Definition: L1Station.h:31
L1FieldValue::x
fvec x
Definition: L1Field.h:15
L1Grid.h
L1Station::XYInfo
L1XYMeasurementInfo XYInfo
Definition: L1Station.h:32