22 #ifndef PNDFTSCAGBHIT_H 23 #define PNDFTSCAGBHIT_H 45 #if defined(DRIFT_TUBES)
47 fR(0), fErr2R(0), fIsLeft(false), fIsPileuped(false), fXW(0), fYW(0), fZW(0), fTubeR(0), fHalfLength(0), fEX(0), fEY(0), fEZ(0)
52 float X()
const {
return fX; }
53 float Y()
const {
return fY; }
54 float Z()
const {
return fZ; }
70 #if defined(DRIFT_TUBES) 71 float R()
const {
return fR; }
72 float Err2R()
const {
return fErr2R; }
73 float Err2A()
const {
return (fHalfLength / 1.5) * (fHalfLength / 1.5); }
75 float DistanceFromWireToPoint(
float x,
float y,
float z)
const 78 const float dx = x - fXW;
79 const float dy = y - fYW;
80 const float dz = z - fZW;
81 const float productX = dy * fEZ - dz * fEY;
82 const float productY = dz * fEX - dx * fEZ;
83 const float productZ = dx * fEY - dy * fEX;
84 return sqrt(productX * productX + productY * productY + productZ * productZ) /
sqrt(fEX * fEX + fEY * fEY + fEZ * fEZ);
87 bool IsLeft()
const {
return fIsLeft; }
88 bool IsPileduped()
const {
return fIsPileuped; }
90 float XW()
const {
return fXW; }
91 float YW()
const {
return fYW; }
92 float ZW()
const {
return fZW; }
94 float C(
int i1,
int i2)
const {
return fC[i1][i2]; }
121 void SetC(
const TMatrixT<Double_t> c)
123 for (
int i = 0;
i < 3;
i++)
124 for (
int j = 0; j < 3; j++)
127 #if defined(DRIFT_TUBES) 128 void SetTubeR(
float v) { fTubeR =
v; }
129 void SetTubeHalfLength(
float v) { fHalfLength =
v; }
131 void SetR(
float v) { fR =
v; }
132 void SetErr2R(
float v) { fErr2R =
v; }
133 void SetIsLeft(
bool v) { fIsLeft =
v; }
134 void SetIsPileuped(
bool b) { fIsPileuped = b; }
136 void SetXW(
float v) { fXW =
v; }
137 void SetYW(
float v) { fYW =
v; }
138 void SetZW(
float v) { fZW =
v; }
140 void SetEX(
float v) { fEX =
v; }
141 void SetEY(
float v) { fEY =
v; }
142 void SetEZ(
float v) { fEZ =
v; }
144 void SetC(
float v,
int i1,
int i2) {
fC[i1][i2] =
v; }
200 #if defined(DRIFT_TUBES) 208 double fTubeR, fHalfLength;
209 double fEX, fEY, fEZ;
226 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...
basic_istream< char, char_traits< char > > istream
friend F32vec4 sqrt(const F32vec4 &a)
void SetFStripP(FTSCAStrip *s)
FTSCAStrip * FStripP() const
void GetLocalX0X1X2(float &x0, float &x1, float &x2) const
friend istream & operator>>(istream &in, PndFTSCAGBHit &a)
void SetBStripP(FTSCAStrip *s)
static bool ComparePRowDown(const PndFTSCAGBHit *a, const PndFTSCAGBHit *b)
basic_ostream< char, char_traits< char > > ostream
FTSCAStrip * BStripP() const
friend ostream & operator<<(ostream &out, const PndFTSCAGBHit &a)