30 for(
int i=0; i!=3; i++)
41 Seed::Seed(
double* Pt,
double* Dir,
double* PtErr,
double* DirErr)
43 for(
int i=0; i!=3; i++)
80 for(
size_t n=0;
n!=3; ++
n)
100 for(
int i=0; i!=3; i++)
110 for(
int i=0; i!=3; i++)
121 double Empty[3]={0,0,0};
128 double Empty[3]={0,0,0};
135 for(
int i=0; i!=3; i++)
146 for(
int i=0; i!=3; i++)
167 double OtherPtErr[3];
169 AnotherSeed.
GetPoint( OtherPt, OtherPtErr );
171 TVector3 OtherPtV( OtherPt[0], OtherPt[1], OtherPt[2] );
175 return (OtherPtV-ThisPtV).Angle(ThisDirV.Unit());
181 double xyzother[3],
err[3];
185 xyz[1] = xyzother[1]-fSeedPoint[1];
186 xyz[2] = xyzother[2]-fSeedPoint[2];
195 double OtherDirErr[3];
198 double OtherMag = AnotherSeed.
GetLength();
213 double eta = 0.00001;
225 double OtherPtErr[3];
227 AnotherSeed.
GetPoint( OtherPt, OtherPtErr );
229 TVector3 OtherPtV( OtherPt[0], OtherPt[1], OtherPt[2] );
234 return ((OtherPtV-ThisPtV) - ThisDirV.Unit()*(ThisDirV.Unit().Dot(OtherPtV-ThisPtV))).Mag();
242 double OtherPtErr[3];
244 AnotherSeed.
GetPoint( OtherPt, OtherPtErr );
256 SPxyz[0]=SomePoint.
XYZ()[0];
257 SPxyz[1]=SomePoint.
XYZ()[1];
258 SPxyz[2]=SomePoint.
XYZ()[2];
262 double ThisSeedLength =
268 double SPProjOnSeed =
277 if(SPProjOnSeed > (ThisSeedLength))
285 else if(SPProjOnSeed<(0-ThisSeedLength))
304 crossprod[0], crossprod[1], crossprod[2]);
307 pow( pow(crossprod[0],2) +
308 pow(crossprod[1],2) +
309 pow(crossprod[2],2), 0.5) /
320 double OtherPos[3], OtherErr[3];
321 AnotherSeed.
GetPoint(OtherPos,OtherErr);
326 return ((DotProd>0)-(DotProd<0));
332 double y1,
double y2,
double y3,
333 double& out1,
double& out2,
double& out3)
335 out1 = (x2*y3-x3*y2);
336 out2 = (x3*y1-x1*y3);
337 out3 = (x1*y2-x2*y1);
343 o <<
"Printing seed contents : "
double GetDistanceFrom(SpacePoint const &SomePoint) const
bool operator<(Cluster const &a, Cluster const &b)
double GetProjAngleDiscrepancy(Seed const &AnotherSeed) const
double GetAngle(Seed const &AnotherSeed) const
EResult err(const char *call)
void GetPoint(double *Pt, double *Err) const
double GetProjDiscrepancy(Seed const &AnotherSeed) const
void CrossProd(double x1, double x2, double x3, double y1, double y2, double y3, double &out1, double &out2, double &out3)
void SetPoint(double *Pt, double *Err)
double fSeedDirectionError[3]
const Double32_t * XYZ() const
double GetDistance(Seed const &AnotherSeed) const
int GetPointingSign(Seed const &AnotherSeed) const
double DotProd(const Vector3_t &v1, const Vector3_t &v2)
void GetVectorBetween(Seed const &AnotherSeed, double *xyz) const
void SetValidity(bool Validity)
void GetDirection(double *Dir, double *Err) const
BEGIN_PROLOG could also be cout
double fSeedPointError[3]
std::ostream & operator<<(std::ostream &o, Cluster const &c)
void SetDirection(double *Dir, double *Err)