10 #ifndef PNDFTSCAGBHIT_H
11 #define PNDFTSCAGBHIT_H
35 #
if defined(DRIFT_TUBES)
36 , fR( 0 ), fErr2R( 0 ), fIsLeft( false ), fIsPileuped( false ), fXW(0), fYW(0), fZW(0),
37 fTubeR( 0 ), fHalfLength( 0 ), fEX( 0 ), fEY( 0 ), fEZ( 0 )
41 float X()
const {
return fX; }
42 float Y()
const {
return fY; }
43 float Z()
const {
return fZ; }
59 #if defined(DRIFT_TUBES)
60 float R()
const {
return fR; }
61 float Err2R()
const {
return fErr2R; }
62 float Err2A()
const {
return (fHalfLength/1.5)*(fHalfLength/1.5); }
64 float DistanceFromWireToPoint(
float x,
float y,
float z )
const {
66 const float dx = x - fXW;
67 const float dy = y - fYW;
68 const float dz = z - fZW;
69 const float productX = dy*fEZ - dz*fEY;
70 const float productY = dz*fEX - dx*fEZ;
71 const float productZ = dx*fEY - dy*fEX;
72 return sqrt( productX*productX + productY*productY + productZ*productZ ) /
sqrt( fEX*fEX + fEY*fEY + fEZ*fEZ );
75 bool IsLeft()
const {
return fIsLeft; }
76 bool IsPileduped()
const {
return fIsPileuped; }
78 float XW()
const {
return fXW; }
79 float YW()
const {
return fYW; }
80 float ZW()
const {
return fZW; }
82 float C(
int i1,
int i2)
const {
return fC[i1][i2]; }
109 void SetC(
const TMatrixT<Double_t>
c ) {
110 for(
int i=0;
i<3;
i++ )
111 for(
int j=0; j<3; j++)
fC[
i][j] = c[
i][j];
113 #if defined(DRIFT_TUBES)
114 void SetTubeR(
float v ){ fTubeR =
v; }
115 void SetTubeHalfLength(
float v ){ fHalfLength =
v; }
117 void SetR(
float v) { fR =
v; }
118 void SetErr2R(
float v) { fErr2R =
v; }
119 void SetIsLeft(
bool v) { fIsLeft =
v; }
120 void SetIsPileuped(
bool b) { fIsPileuped =
b; }
122 void SetXW(
float v ) { fXW =
v; }
123 void SetYW(
float v ) { fYW =
v; }
124 void SetZW(
float v ) { fZW =
v; }
126 void SetEX(
float v ) { fEX =
v; }
127 void SetEY(
float v ) { fEY =
v; }
128 void SetEZ(
float v ) { fEZ =
v; }
130 void SetC(
float v,
int i1,
int i2 ) {
fC[i1][i2] =
v; }
184 #if defined(DRIFT_TUBES)
192 double fTubeR, fHalfLength;
193 double fEX, fEY, fEZ;
210 return ( a.
fZ < b.
fZ );
void SetC(const TMatrixT< Double_t > c)
static bool CompareRowDown(const PndFTSCAGBHit &a, const PndFTSCAGBHit &b)
Hits reordering in accordance with the geometry and the track-finder needs: Hits are sorted by sector...
static bool Compare(const PndFTSCAGBHit &a, const PndFTSCAGBHit &b)
Hits reordering in accordance with the geometry and the track-finder needs: Hits are sorted by sector...
friend F32vec4 sqrt(const F32vec4 &a)
void SetFStripP(FTSCAStrip *s)
FTSCAStrip * FStripP() const
basic_ostream< char, char_traits< char > > ostream
friend istream & operator>>(istream &in, PndFTSCAGBHit &a)
void SetBStripP(FTSCAStrip *s)
basic_istream< char, char_traits< char > > istream
void GetLocalX0X1X2(float &x0, float &x1, float &x2) const
static bool ComparePRowDown(const PndFTSCAGBHit *a, const PndFTSCAGBHit *b)
FTSCAStrip * BStripP() const
friend ostream & operator<<(ostream &out, const PndFTSCAGBHit &a)