FairRoot/PandaRoot
Public Member Functions | Private Member Functions | Private Attributes | List of all members
FTSCAHitV Class Reference

#include <FTSCAHitsV.h>

Public Member Functions

 FTSCAHitV ()
 
 FTSCAHitV (const PndFTSCAGBHit **hits, const uint_v &ids, const float_m &valid)
 
 FTSCAHitV (const FTSCAHit *hits, const float_m &valid)
 
 FTSCAHitV (const FTSCAHit *hits, const float_m &valid, bool OneHit)
 
float_m IsValid () const
 
char IStation () const
 
int_v IStations () const
 
uint_v Id () const
 
float_v X0 () const
 
float_v X1 () const
 
float_v X2 () const
 
float_v FStrip () const
 
float_v BStrip () const
 
float_v Err2X1 () const
 
float_v ErrX12 () const
 
float_v Err2X2 () const
 
float_v Angle () const
 
void GetGlobalCoor (int iV, float &x, float &y, float &z) const
 
void InitValuesByZeros ()
 

Private Member Functions

float_v GetStripsValue (FTSCAStrip *const strip[float_v::Size]) const
 

Private Attributes

FTSCAStripfFStripP [float_v::Size]
 
FTSCAStripfBStripP [float_v::Size]
 
int_v fIStation
 
uint_v fId
 
float_v fX0
 
float_v fX1
 
float_v fX2
 
float_v fErr2X1
 
float_v fErrX12
 
float_v fErr2X2
 
float_v fAngle
 

Detailed Description

Definition at line 22 of file FTSCAHitsV.h.

Constructor & Destructor Documentation

FTSCAHitV::FTSCAHitV ( )
inline

Definition at line 24 of file FTSCAHitsV.h.

24  : fIStation(-1), fId(Vc::Zero),
27 #ifdef DRIFT_TUBES
28  fR(Vc::Zero), fErr2R(Vc::Zero), fErr2A(Vc::Zero), fBeta(Vc::Zero), fIsLeft(true),
29 #endif
30  fAngle(Vc::Zero){}
float_v fErr2X1
Definition: FTSCAHitsV.h:97
float_v fX2
Definition: FTSCAHitsV.h:96
float_v fX1
Definition: FTSCAHitsV.h:96
static const fvec Zero
float_v fX0
Definition: FTSCAHitsV.h:96
float_v fAngle
Definition: FTSCAHitsV.h:107
uint_v fId
Definition: FTSCAHitsV.h:94
int_v fIStation
Definition: FTSCAHitsV.h:93
float_v fErr2X2
Definition: FTSCAHitsV.h:97
float_v fErrX12
Definition: FTSCAHitsV.h:97
FTSCAHitV::FTSCAHitV ( const PndFTSCAGBHit **  hits,
const uint_v &  ids,
const float_m &  valid 
)
inline

Definition at line 160 of file FTSCAHitsV.h.

References PndFTSCAGBHit::Angle(), PndFTSCAGBHit::BStripP(), PndFTSCAGBHit::Err2X1(), PndFTSCAGBHit::Err2X2(), PndFTSCAGBHit::ErrX12(), fAngle, fBStripP, fErr2X1, fErr2X2, fErrX12, fFStripP, fIStation, PndFTSCAGBHit::FStripP(), fX0, fX1, fX2, PndFTSCAGBHit::GetLocalX0X1X2(), h, and PndFTSCAGBHit::IRow().

161  :fId(ids)
162 {
163  int_v::Memory mIStation;
164  mIStation = int_v( -1 );
165 
166  float_v::Memory mX1, mX2, mX0;
167  float_v::Memory mErr2X1, mErrX12, mErr2X2;
168 
169 #ifdef DRIFT_TUBES
170  float_v::Memory mR, mErr2R, mErr2A, mBeta, mIsLeft;
171 #endif
172  float_v::Memory mAlpha;
173 
174  foreach_bit(unsigned short iV, valid) {
175  const PndFTSCAGBHit& h = *(hits[iV]);
176 
177  mIStation[iV] = h.IRow();
178  h.GetLocalX0X1X2( mX0[iV], mX1[iV], mX2[iV] );
179 
180  mErr2X1[iV] = h.Err2X1();
181  mErrX12[iV] = h.ErrX12();
182  mErr2X2[iV] = h.Err2X2();
183 #ifdef DRIFT_TUBES
184  mR[iV] = h.R();
185  mErr2R[iV] = h.Err2R();
186  mErr2A[iV] = h.Err2A();
187  mBeta[iV] = h.Beta();
188  mIsLeft[iV] = h.IsLeft() ? 1.f : 0.f;
189 #endif
190  mAlpha[iV] = h.Angle();
191  fFStripP[iV] = h.FStripP();
192  fBStripP[iV] = h.BStripP();
193  }
194 
195  fIStation = int_v(mIStation);
196  fX1 = float_v(mX1); fX2 = float_v(mX2); fX0 = float_v(mX0);
197  fErr2X1 = float_v(mErr2X1); fErrX12 = float_v(mErrX12); fErr2X2 = float_v(mErr2X2);
198 #ifdef DRIFT_TUBES
199  fR = float_v(mR); fErr2R = float_v(mErr2R); fErr2A = float_v(mErr2A); fBeta = float_v(mBeta); fIsLeft = ( float_v(mIsLeft) == 1.f );
200 #endif
201  fAngle = float_v(mAlpha);
202 }
FTSCAStrip * fFStripP[float_v::Size]
Definition: FTSCAHitsV.h:88
float_v fErr2X1
Definition: FTSCAHitsV.h:97
float_v fX2
Definition: FTSCAHitsV.h:96
int IRow() const
Definition: PndFTSCAGBHit.h:56
float_v fX1
Definition: FTSCAHitsV.h:96
float_v fX0
Definition: FTSCAHitsV.h:96
float_v fAngle
Definition: FTSCAHitsV.h:107
float ErrX12() const
Definition: PndFTSCAGBHit.h:53
uint_v fId
Definition: FTSCAHitsV.h:94
FTSCAStrip * FStripP() const
Definition: PndFTSCAGBHit.h:86
int_v fIStation
Definition: FTSCAHitsV.h:93
float Angle() const
FTSCAStrip * fBStripP[float_v::Size]
Definition: FTSCAHitsV.h:91
float_v fErr2X2
Definition: FTSCAHitsV.h:97
void GetLocalX0X1X2(float &x0, float &x1, float &x2) const
FTSCAStrip * BStripP() const
Definition: PndFTSCAGBHit.h:85
float Err2X1() const
Definition: PndFTSCAGBHit.h:52
float_v fErrX12
Definition: FTSCAHitsV.h:97
float Err2X2() const
Definition: PndFTSCAGBHit.h:54
FTSCAHitV::FTSCAHitV ( const FTSCAHit hits,
const float_m &  valid 
)
inline

Definition at line 237 of file FTSCAHitsV.h.

References FTSCAHit::Angle(), FTSCAHit::BStripP(), FTSCAHit::Err2X1(), FTSCAHit::Err2X2(), FTSCAHit::ErrX12(), fAngle, fBStripP, fErr2X1, fErr2X2, fErrX12, fFStripP, fId, fIStation, FTSCAHit::FStripP(), fX0, fX1, fX2, h, FTSCAHit::Id(), InitValuesByZeros(), FTSCAHit::IStation(), FTSCAHit::X0(), FTSCAHit::X1(), and FTSCAHit::X2().

238 {
240 
241  float_v::Memory mIsLeft;
242  foreach_bit(unsigned short iV, valid) {
243  const FTSCAHit& h = hits[iV];
244 
245  fId[iV] = h.Id();
246  fIStation[iV] = h.IStation();
247  fX1[iV] = h.X1();
248  fX2[iV] = h.X2();
249  fX0[iV] = h.X0();
250 
251  fErr2X1[iV] = h.Err2X1();
252  fErrX12[iV] = h.ErrX12();
253  fErr2X2[iV] = h.Err2X2();
254 
255  fR[iV] = h.R();
256  fErr2R[iV] = h.Err2R();
257  fErr2A[iV] = h.Err2A();
258  fBeta[iV] = h.Beta();
259  mIsLeft[iV] = h.IsLeft() ? 1.f : 0.f;
260 
261  fAngle[iV] = h.Angle();
262  fFStripP[iV] = h.FStripP();
263  fBStripP[iV] = h.BStripP();
264  //mIsUsed[iV] = h.IsUsed() ? 1.f : 0.f;
265  }
266  fIsLeft = ( float_v(mIsLeft) == 1.f );
267 
268  /*int_v::Memory mIStation;
269  mIStation = int_v( -1 );
270 
271  uint_v::Memory mId;
272  float_v::Memory mX1, mX2, mX0;
273  float_v::Memory mErr2X1, mErrX12, mErr2X2;
274 #ifdef DRIFT_TUBES
275  float_v::Memory mR, mErr2R, mErr2A, mBeta, mIsLeft;
276 #endif
277  float_v::Memory mAlpha;
278  //float_v::Memory mIsUsed;
279 
280  foreach_bit(unsigned short iV, valid) {
281  const FTSCAHit& h = hits[iV];
282 
283  mId[iV] = h.Id();
284  mIStation[iV] = h.IStation();
285  mX1[iV] = h.X1();
286  mX2[iV] = h.X2();
287  mX0[iV] = h.X0();
288 
289  mErr2X1[iV] = h.Err2X1();
290  mErrX12[iV] = h.ErrX12();
291  mErr2X2[iV] = h.Err2X2();
292 #ifdef DRIFT_TUBES
293  mR[iV] = h.R();
294  mErr2R[iV] = h.Err2R();
295  mErr2A[iV] = h.Err2A();
296  mBeta[iV] = h.Beta();
297  mIsLeft[iV] = h.IsLeft() ? 1.f : 0.f;
298 #endif
299  mAlpha[iV] = h.Angle();
300  fFStripP[iV] = h.FStripP();
301  fBStripP[iV] = h.BStripP();
302  //mIsUsed[iV] = h.IsUsed() ? 1.f : 0.f;
303  }
304  fId = uint_v(mId);
305  fIStation = int_v(mIStation);
306  fX1 = float_v(mX1); fX2 = float_v(mX2); fX0 = float_v(mX0);
307  fErr2X1 = float_v(mErr2X1); fErrX12 = float_v(mErrX12); fErr2X2 = float_v(mErr2X2);
308 #ifdef DRIFT_TUBES
309  fR = float_v(mR); fErr2R = float_v(mErr2R); fErr2A = float_v(mErr2A); fBeta = float_v(mBeta); fIsLeft = ( float_v(mIsLeft) == 1.f );
310 #endif
311  fAngle = float_v(mAlpha);
312  */
313  //fIsUsed = ( float_v(mIsUsed) == 1.f ); // CHECKME what to do with isUsed?
314 }
float X2() const
Definition: FTSCAHits.h:43
FTSCAStrip * fFStripP[float_v::Size]
Definition: FTSCAHitsV.h:88
char IStation() const
Definition: FTSCAHits.h:33
float_v fErr2X1
Definition: FTSCAHitsV.h:97
float_v fX2
Definition: FTSCAHitsV.h:96
float Angle() const
Definition: FTSCAHits.h:71
float_v fX1
Definition: FTSCAHitsV.h:96
float_v fX0
Definition: FTSCAHitsV.h:96
float X0() const
Definition: FTSCAHits.h:41
float X1() const
Definition: FTSCAHits.h:42
float_v fAngle
Definition: FTSCAHitsV.h:107
uint_v fId
Definition: FTSCAHitsV.h:94
float Err2X2() const
Definition: FTSCAHits.h:52
int_v fIStation
Definition: FTSCAHitsV.h:93
FTSCAStrip * fBStripP[float_v::Size]
Definition: FTSCAHitsV.h:91
float_v fErr2X2
Definition: FTSCAHitsV.h:97
FTSCAStrip * FStripP() const
Definition: FTSCAHits.h:47
FTSCAStrip * BStripP() const
Definition: FTSCAHits.h:48
int Id() const
Definition: FTSCAHits.h:35
float_v fErrX12
Definition: FTSCAHitsV.h:97
float Err2X1() const
Definition: FTSCAHits.h:50
void InitValuesByZeros()
Definition: FTSCAHitsV.h:316
float ErrX12() const
Definition: FTSCAHits.h:51
FTSCAHitV::FTSCAHitV ( const FTSCAHit hits,
const float_m &  valid,
bool  OneHit 
)
inline

Definition at line 204 of file FTSCAHitsV.h.

References FTSCAHit::Angle(), FTSCAHit::BStripP(), FTSCAHit::Err2X1(), FTSCAHit::Err2X2(), FTSCAHit::ErrX12(), fAngle, fBStripP, fErr2X1, fErr2X2, fErrX12, fFStripP, fId, fIStation, FTSCAHit::FStripP(), fX0, fX1, fX2, h, FTSCAHit::Id(), InitValuesByZeros(), FTSCAHit::IStation(), FTSCAHit::X0(), FTSCAHit::X1(), and FTSCAHit::X2().

205 {
207  float_v::Memory mIsLeft;
208  foreach_bit(unsigned short iV, valid) {
209  const FTSCAHit& h = hits[0];
210 
211  fId[iV] = h.Id();
212  fIStation[iV] = h.IStation();
213  fX1[iV] = h.X1();
214  fX2[iV] = h.X2();
215  fX0[iV] = h.X0();
216 
217  fErr2X1[iV] = h.Err2X1();
218  fErrX12[iV] = h.ErrX12();
219  fErr2X2[iV] = h.Err2X2();
220 
221  fR[iV] = h.R();
222  fErr2R[iV] = h.Err2R();
223  fErr2A[iV] = h.Err2A();
224  fBeta[iV] = h.Beta();
225  mIsLeft[iV] = h.IsLeft() ? 1.f : 0.f;
226 
227  fAngle[iV] = h.Angle();
228  fFStripP[iV] = h.FStripP();
229  fBStripP[iV] = h.BStripP();
230  //mIsUsed[iV] = h.IsUsed() ? 1.f : 0.f;
231  }
232  fIsLeft = ( float_v(mIsLeft) == 1.f );
233  //cout<<"FTSCAHitV constructor\n";
234  //cout<<"fX0 "<<fX0<<" fX1 "<<fX1<<endl;
235 }
float X2() const
Definition: FTSCAHits.h:43
FTSCAStrip * fFStripP[float_v::Size]
Definition: FTSCAHitsV.h:88
char IStation() const
Definition: FTSCAHits.h:33
float_v fErr2X1
Definition: FTSCAHitsV.h:97
float_v fX2
Definition: FTSCAHitsV.h:96
float Angle() const
Definition: FTSCAHits.h:71
float_v fX1
Definition: FTSCAHitsV.h:96
float_v fX0
Definition: FTSCAHitsV.h:96
float X0() const
Definition: FTSCAHits.h:41
float X1() const
Definition: FTSCAHits.h:42
float_v fAngle
Definition: FTSCAHitsV.h:107
uint_v fId
Definition: FTSCAHitsV.h:94
float Err2X2() const
Definition: FTSCAHits.h:52
int_v fIStation
Definition: FTSCAHitsV.h:93
FTSCAStrip * fBStripP[float_v::Size]
Definition: FTSCAHitsV.h:91
float_v fErr2X2
Definition: FTSCAHitsV.h:97
FTSCAStrip * FStripP() const
Definition: FTSCAHits.h:47
FTSCAStrip * BStripP() const
Definition: FTSCAHits.h:48
int Id() const
Definition: FTSCAHits.h:35
float_v fErrX12
Definition: FTSCAHitsV.h:97
float Err2X1() const
Definition: FTSCAHits.h:50
void InitValuesByZeros()
Definition: FTSCAHitsV.h:316
float ErrX12() const
Definition: FTSCAHits.h:51

Member Function Documentation

float_v FTSCAHitV::Angle ( ) const
inline
float_v FTSCAHitV::BStrip ( ) const
inline

Definition at line 54 of file FTSCAHitsV.h.

References fBStripP, and GetStripsValue().

54 { return GetStripsValue( fBStripP ); };
FTSCAStrip * fBStripP[float_v::Size]
Definition: FTSCAHitsV.h:91
float_v GetStripsValue(FTSCAStrip *const strip[float_v::Size]) const
Definition: FTSCAHitsV.h:82
float_v FTSCAHitV::Err2X1 ( ) const
inline

Definition at line 56 of file FTSCAHitsV.h.

References fErr2X1.

Referenced by PndFTSCATrackParamVector::Filter(), PndFTSCAGBTracker::FitTrackCA(), and PndFTSCATrackParamVector::InitByHit().

56 { return fErr2X1; }
float_v fErr2X1
Definition: FTSCAHitsV.h:97
float_v FTSCAHitV::Err2X2 ( ) const
inline

Definition at line 58 of file FTSCAHitsV.h.

References fErr2X2.

Referenced by PndFTSCATrackParamVector::Filter(), PndFTSCAGBTracker::FitTrackCA(), and PndFTSCATrackParamVector::InitByHit().

58 { return fErr2X2; }
float_v fErr2X2
Definition: FTSCAHitsV.h:97
float_v FTSCAHitV::ErrX12 ( ) const
inline

Definition at line 57 of file FTSCAHitsV.h.

References fErrX12.

Referenced by PndFTSCATrackParamVector::Filter(), and PndFTSCAGBTracker::FitTrackCA().

57 { return fErrX12; }
float_v fErrX12
Definition: FTSCAHitsV.h:97
float_v FTSCAHitV::FStrip ( ) const
inline

Definition at line 53 of file FTSCAHitsV.h.

References fFStripP, and GetStripsValue().

53 { return GetStripsValue( fFStripP ); };
FTSCAStrip * fFStripP[float_v::Size]
Definition: FTSCAHitsV.h:88
float_v GetStripsValue(FTSCAStrip *const strip[float_v::Size]) const
Definition: FTSCAHitsV.h:82
void FTSCAHitV::GetGlobalCoor ( int  iV,
float &  x,
float &  y,
float &  z 
) const
inline

Definition at line 75 of file FTSCAHitsV.h.

References Angle(), PndFTSCAParameters::CALocalToGlobal(), X0(), X1(), and X2().

Referenced by PndFTSCAGBTracker::EstimatePV(), and PndFTSCAGBTracker::FitTrackCA().

75  {
76  PndFTSCAParameters::CALocalToGlobal(float(X0()[iV]), float(X1()[iV]), float(X2()[iV]), float(Angle()[iV]), x, y, z);
77  }
float_v X2() const
Definition: FTSCAHitsV.h:51
float_v X1() const
Definition: FTSCAHitsV.h:50
float_v Angle() const
Definition: FTSCAHitsV.h:73
Double_t z
Double_t x
static void CALocalToGlobal(T x0, T x1, T angle, T &x, T &y)
float_v X0() const
Definition: FTSCAHitsV.h:49
Double_t y
float_v FTSCAHitV::GetStripsValue ( FTSCAStrip *const  strip[float_v::Size]) const
inlineprivate

Definition at line 82 of file FTSCAHitsV.h.

References IsValid(), r, and strip.

Referenced by BStrip(), and FStrip().

82  {
83  float_v::Memory r;
84  foreach_bit(unsigned short iV, IsValid()) {
85  r[iV] = *(strip[iV]);
86  }
87  return float_v(r);
88  };
double r
Definition: RiemannTest.C:14
float_m IsValid() const
Definition: FTSCAHitsV.h:38
uint_v FTSCAHitV::Id ( ) const
inline

Definition at line 47 of file FTSCAHitsV.h.

References fId.

Referenced by PndFTSCADisplay::DrawGBHits().

47 { return fId; };
uint_v fId
Definition: FTSCAHitsV.h:94
void FTSCAHitV::InitValuesByZeros ( )
inline

Definition at line 316 of file FTSCAHitsV.h.

References fAngle, fErr2X1, fErr2X2, fErrX12, fId, fIStation, fX0, fX1, fX2, and Zero.

Referenced by FTSCAHitV().

317 {
318  fIStation = -1;
319  fId = Vc::Zero;
322  fR = Vc::Zero; fErr2R = Vc::Zero; fErr2A = Vc::Zero; fBeta = Vc::Zero;
323  fIsLeft = static_cast <float_m> (true);
324  fAngle = Vc::Zero;
325 }
float_v fErr2X1
Definition: FTSCAHitsV.h:97
float_v fX2
Definition: FTSCAHitsV.h:96
float_v fX1
Definition: FTSCAHitsV.h:96
static const fvec Zero
float_v fX0
Definition: FTSCAHitsV.h:96
float_v fAngle
Definition: FTSCAHitsV.h:107
uint_v fId
Definition: FTSCAHitsV.h:94
int_v fIStation
Definition: FTSCAHitsV.h:93
float_v fErr2X2
Definition: FTSCAHitsV.h:97
float_v fErrX12
Definition: FTSCAHitsV.h:97
char FTSCAHitV::IStation ( ) const
inline

Definition at line 40 of file FTSCAHitsV.h.

References fIStation, IsValid(), and v.

Referenced by FTSCAHitsV::Add(), and PndFTSCAGBTracker::Create1Plets().

40  {
41  const float_m v = IsValid();
42  assert(!v.isEmpty());
43  return fIStation[v.firstOne()];
44  }
float_m IsValid() const
Definition: FTSCAHitsV.h:38
__m128 v
Definition: P4_F32vec4.h:4
int_v fIStation
Definition: FTSCAHitsV.h:93
int_v FTSCAHitV::IStations ( ) const
inline

Definition at line 45 of file FTSCAHitsV.h.

References fIStation.

Referenced by PndFTSCATrackParamVector::Filter(), PndFTSCAGBTracker::FitTrackCA(), and PndFTSCATrackParamVector::Transport().

45 { return fIStation; } // is not needed by tracker
int_v fIStation
Definition: FTSCAHitsV.h:93
float_m FTSCAHitV::IsValid ( ) const
inline
float_v FTSCAHitV::X0 ( ) const
inline
float_v FTSCAHitV::X1 ( ) const
inline
float_v FTSCAHitV::X2 ( ) const
inline

Member Data Documentation

float_v FTSCAHitV::fAngle
private

Definition at line 107 of file FTSCAHitsV.h.

Referenced by Angle(), FTSCAHitV(), and InitValuesByZeros().

FTSCAStrip* FTSCAHitV::fBStripP[float_v::Size]
private

Definition at line 91 of file FTSCAHitsV.h.

Referenced by BStrip(), and FTSCAHitV().

float_v FTSCAHitV::fErr2X1
private

Definition at line 97 of file FTSCAHitsV.h.

Referenced by Err2X1(), FTSCAHitV(), and InitValuesByZeros().

float_v FTSCAHitV::fErr2X2
private

Definition at line 97 of file FTSCAHitsV.h.

Referenced by Err2X2(), FTSCAHitV(), and InitValuesByZeros().

float_v FTSCAHitV::fErrX12
private

Definition at line 97 of file FTSCAHitsV.h.

Referenced by ErrX12(), FTSCAHitV(), and InitValuesByZeros().

FTSCAStrip* FTSCAHitV::fFStripP[float_v::Size]
private

Definition at line 88 of file FTSCAHitsV.h.

Referenced by FStrip(), and FTSCAHitV().

uint_v FTSCAHitV::fId
private

Definition at line 94 of file FTSCAHitsV.h.

Referenced by FTSCAHitV(), Id(), and InitValuesByZeros().

int_v FTSCAHitV::fIStation
private

Definition at line 93 of file FTSCAHitsV.h.

Referenced by FTSCAHitV(), InitValuesByZeros(), IStation(), IStations(), and IsValid().

float_v FTSCAHitV::fX0
private

Definition at line 96 of file FTSCAHitsV.h.

Referenced by FTSCAHitV(), InitValuesByZeros(), and X0().

float_v FTSCAHitV::fX1
private

Definition at line 96 of file FTSCAHitsV.h.

Referenced by FTSCAHitV(), InitValuesByZeros(), and X1().

float_v FTSCAHitV::fX2
private

Definition at line 96 of file FTSCAHitsV.h.

Referenced by FTSCAHitV(), InitValuesByZeros(), and X2().


The documentation for this class was generated from the following file: