34 for(
int i=0; i!=3; i++)
45 Seed::Seed(
double* Pt,
double* Dir,
double* PtErr,
double* DirErr)
47 for(
int i=0; i!=3; i++)
61 std::cout<<
"Printing seed contents : " 84 for(
size_t n=0;
n!=3; ++
n)
104 for(
int i=0; i!=3; i++)
114 for(
int i=0; i!=3; i++)
125 double Empty[3]={0,0,0};
132 double Empty[3]={0,0,0};
139 for(
int i=0; i!=3; i++)
150 for(
int i=0; i!=3; i++)
171 double OtherPtErr[3];
173 AnotherSeed.
GetPoint( OtherPt, OtherPtErr );
175 TVector3 OtherPtV( OtherPt[0], OtherPt[1], OtherPt[2] );
179 return (OtherPtV-ThisPtV).Angle(ThisDirV.Unit());
185 double xyzother[3], err[3];
189 xyz[1] = xyzother[1]-fSeedPoint[1];
190 xyz[2] = xyzother[2]-fSeedPoint[2];
199 double OtherDirErr[3];
202 double OtherMag = AnotherSeed.
GetLength();
217 double eta = 0.00001;
229 double OtherPtErr[3];
231 AnotherSeed.
GetPoint( OtherPt, OtherPtErr );
233 TVector3 OtherPtV( OtherPt[0], OtherPt[1], OtherPt[2] );
238 return ((OtherPtV-ThisPtV) - ThisDirV.Unit()*(ThisDirV.Unit().Dot(OtherPtV-ThisPtV))).Mag();
246 double OtherPtErr[3];
248 AnotherSeed.
GetPoint( OtherPt, OtherPtErr );
260 SPxyz[0]=SomePoint.
XYZ()[0];
261 SPxyz[1]=SomePoint.
XYZ()[1];
262 SPxyz[2]=SomePoint.
XYZ()[2];
266 double ThisSeedLength =
272 double SPProjOnSeed =
281 if(SPProjOnSeed > (ThisSeedLength))
289 else if(SPProjOnSeed<(0-ThisSeedLength))
308 crossprod[0], crossprod[1], crossprod[2]);
311 pow( pow(crossprod[0],2) +
312 pow(crossprod[1],2) +
313 pow(crossprod[2],2), 0.5) /
324 double OtherPos[3], OtherErr[3];
325 AnotherSeed.
GetPoint(OtherPos,OtherErr);
330 return ((DotProd>0)-(DotProd<0));
336 double y1,
double y2,
double y3,
337 double& out1,
double& out2,
double& out3)
339 out1 = (x2*y3-x3*
y2);
340 out2 = (x3*y1-x1*y3);
341 out3 = (x1*y2-x2*
y1);
347 o <<
"Printing seed contents : "
friend std::ostream & operator<<(std::ostream &stream, Seed const &a)
double GetDistanceFrom(SpacePoint const &SomePoint) const
Reconstruction base classes.
Float_t y1[n_points_granero]
double GetProjAngleDiscrepancy(Seed const &AnotherSeed) const
Float_t x1[n_points_granero]
double GetAngle(Seed const &AnotherSeed) const
void GetPoint(double *Pt, double *Err) const
Float_t y2[n_points_geant4]
double GetProjDiscrepancy(Seed const &AnotherSeed) const
friend bool operator<(const Seed &a, const Seed &b)
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]
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
const double * XYZ() const
Float_t x2[n_points_geant4]
void SetValidity(bool Validity)
void GetDirection(double *Dir, double *Err) const
double fSeedPointError[3]
void SetDirection(double *Dir, double *Err)