ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtPatternRay.cxx
Go to the documentation of this file.
1 #include "AtPatternRay.h"
2 
3 #include "AtPattern.h" // for AtPattern, AtPatterns
4 
5 #include <Math/Point3D.h> // for operator+, operator-
6 #include <Math/Vector3D.h> // for DisplacementVector3D, operator*
7 #include <TEveLine.h>
8 
9 #include <cmath> // for cos, sin, pow, sqrt, acos, atan, fabs
10 
11 class TEveElement;
12 
13 using namespace AtPatterns;
14 
16 
18 
19 TEveElement *AtPatternRay::GetEveElement() const
20 {
21  return AtPattern::GetEveLine(0, 1000, 100);
22 }
23 
25 {
26  auto t = parameterAtPoint(point);
27  return GetPointAt(t);
28 }
29 
30 Double_t AtPatternRay::DistanceToPattern(const XYZPoint &point) const
31 {
32  auto vec = ClosestPointOnPattern(point) - point;
33  return vec.R();
34 }
35 
37 {
38  if (z > 0)
39  return GetPoint() + z * GetDirection();
40  else
41  return GetPoint();
42 }
44 {
45  if (fDirection.Z() != 0)
46  fDirection /= fabs(fDirection.Z());
47  fPatternPar = {fPoint.X(), fPoint.Y(), fPoint.Z(), fDirection.X(), fDirection.Y(), fDirection.Z()};
48 }
AtPatterns::AtPatternLine::GetPoint
XYZPoint GetPoint() const
Definition: AtPatternLine.h:34
AtPattern.h
AtPatterns::AtPatternLine
Describes a linear track.
Definition: AtPatternLine.h:28
AtPatterns::AtPatternRay::DistanceToPattern
virtual Double_t DistanceToPattern(const XYZPoint &point) const override
Closest distance to pattern.
Definition: AtPatternRay.cxx:30
AtPatterns::AtPatternLine::parameterAtPoint
double parameterAtPoint(const XYZPoint &point) const
Get the parameter closes to compPoint.
Definition: AtPatternLine.cxx:32
AtPatterns::AtPatternLine::XYZVector
ROOT::Math::XYZVector XYZVector
Definition: AtPatternLine.h:31
AtPatterns::AtPatternRay::GetEveElement
virtual TEveElement * GetEveElement() const override
Get visual representation of pattern.
Definition: AtPatternRay.cxx:19
AtPatterns::AtPattern::GetEveLine
TEveLine * GetEveLine(double tMin, double tMax, int n) const
Get visual representation of pattern.
Definition: AtPattern.cxx:63
AtPatterns::AtPatternRay::DefinePattern
void DefinePattern(XYZPoint point, XYZVector direction)
Definition: AtPatternRay.cxx:43
AtPatterns::AtPatternRay::AtPatternRay
AtPatternRay()
Definition: AtPatternRay.cxx:17
AtPatterns::AtPatternRay::GetPointAt
virtual XYZPoint GetPointAt(double z) const override
Get point on line at z.
Definition: AtPatternRay.cxx:36
AtPatternRay.h
AtPatterns
Definition: AtFissionEvent.h:21
AtPatterns::AtPattern::fPatternPar
std::vector< Double_t > fPatternPar
Definition: AtPattern.h:45
AtPatterns::AtPatternRay
Describes a linear track with an end point.
Definition: AtPatternRay.h:27
AtPatterns::AtPatternLine::GetDirection
XYZVector GetDirection() const
Definition: AtPatternLine.h:35
AtPatterns::AtPatternRay::ClosestPointOnPattern
virtual XYZPoint ClosestPointOnPattern(const XYZPoint &point) const override
Closest point on pattern.
Definition: AtPatternRay.cxx:24
ClassImp
ClassImp(AtPatternRay)
AtPatterns::AtPattern::XYZPoint
ROOT::Math::XYZPoint XYZPoint
Definition: AtPattern.h:42