10 #ifndef PNDFTSCAGBHIT_H 11 #define PNDFTSCAGBHIT_H 33 #if defined(DRIFT_TUBES)
35 fR(0), fErr2R(0), fIsLeft(false), fIsPileuped(false), fXW(0), fYW(0), fZW(0), fTubeR(0), fHalfLength(0), fEX(0), fEY(0), fEZ(0)
40 float X()
const {
return fX; }
41 float Y()
const {
return fY; }
42 float Z()
const {
return fZ; }
58 #if defined(DRIFT_TUBES) 59 float R()
const {
return fR; }
60 float Err2R()
const {
return fErr2R; }
61 float Err2A()
const {
return (fHalfLength / 1.5) * (fHalfLength / 1.5); }
63 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)
111 for (
int i = 0;
i < 3;
i++)
112 for (
int j = 0; j < 3; j++)
115 #if defined(DRIFT_TUBES) 116 void SetTubeR(
float v) { fTubeR =
v; }
117 void SetTubeHalfLength(
float v) { fHalfLength =
v; }
119 void SetR(
float v) { fR =
v; }
120 void SetErr2R(
float v) { fErr2R =
v; }
121 void SetIsLeft(
bool v) { fIsLeft =
v; }
122 void SetIsPileuped(
bool b) { fIsPileuped = b; }
124 void SetXW(
float v) { fXW =
v; }
125 void SetYW(
float v) { fYW =
v; }
126 void SetZW(
float v) { fZW =
v; }
128 void SetEX(
float v) { fEX =
v; }
129 void SetEY(
float v) { fEY =
v; }
130 void SetEZ(
float v) { fEZ =
v; }
132 void SetC(
float v,
int i1,
int i2) {
fC[i1][i2] =
v; }
188 #if defined(DRIFT_TUBES) 196 double fTubeR, fHalfLength;
197 double fEX, fEY, fEZ;
214 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)