ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtPatternLine.h
Go to the documentation of this file.
1 #ifndef ATPATTERNLINE_H
2 #define ATPATTERNLINE_H
3 
4 #include "AtPattern.h"
5 
6 #include <Math/Point3D.h>
7 #include <Math/Point3Dfwd.h> // for XYZPoint
8 #include <Math/Vector3D.h> // for DisplacementVector3D
9 #include <Math/Vector3Dfwd.h> // for XYZVector
10 #include <Rtypes.h> // for THashConsistencyHolder, ClassDefOverride
11 
12 #include <memory> // for make_unique, unique_ptr
13 #include <vector> // for vector
14 
15 class TBuffer;
16 class TClass;
17 class TMemberInspector;
18 class TEveElement;
19 class TEveLine;
20 
21 namespace AtPatterns {
22 
28 class AtPatternLine : public AtPattern {
29 public:
32  AtPatternLine();
33 
34  XYZPoint GetPoint() const { return {fPatternPar[0], fPatternPar[1], fPatternPar[2]}; }
35  XYZVector GetDirection() const { return {fPatternPar[3], fPatternPar[4], fPatternPar[5]}; }
36 
37  virtual void DefinePattern(const std::vector<XYZPoint> &points) override;
38  virtual Double_t DistanceToPattern(const XYZPoint &point) const override;
39  virtual XYZPoint ClosestPointOnPattern(const XYZPoint &point) const override;
40  virtual XYZPoint GetPointAt(double z) const override;
41  virtual TEveElement *GetEveElement() const override;
42  virtual std::unique_ptr<AtPattern> Clone() const override { return std::make_unique<AtPatternLine>(*this); }
43 
44  TEveLine *GetEveLine(Double_t rMax = 250) const;
45 
46 protected:
47  std::vector<Double_t> lineIntersecR(Double_t rMax, Double_t tMin, Double_t tMax) const;
48 
49  virtual void FitPattern(const std::vector<XYZPoint> &points, const std::vector<double> &charge) override;
50  double parameterAtPoint(const XYZPoint &point) const;
51  ClassDefOverride(AtPatternLine, 1)
52 };
53 } // namespace AtPatterns
54 #endif //#ifndef ATPATTERNLINE_H
AtPatterns::AtPatternLine::DistanceToPattern
virtual Double_t DistanceToPattern(const XYZPoint &point) const override
Closest distance to pattern.
Definition: AtPatternLine.cxx:43
AtPatterns::AtPatternLine::AtPatternLine
AtPatternLine()
Definition: AtPatternLine.cxx:18
AtPatterns::AtPatternLine::GetPoint
XYZPoint GetPoint() const
Definition: AtPatternLine.h:34
XYZVector
ROOT::Math::XYZVector XYZVector
Definition: AtFindVertex.h:20
AtPattern.h
AtPatterns::AtPatternLine
Describes a linear track.
Definition: AtPatternLine.h:28
AtPatterns::AtPatternLine::ClosestPointOnPattern
virtual XYZPoint ClosestPointOnPattern(const XYZPoint &point) const override
Closest point on pattern.
Definition: AtPatternLine.cxx:37
AtPatterns::AtPatternLine::FitPattern
virtual void FitPattern(const std::vector< XYZPoint > &points, const std::vector< double > &charge) override
Definition: AtPatternLine.cxx:79
AtPatterns::AtPatternLine::parameterAtPoint
double parameterAtPoint(const XYZPoint &point) const
Get the parameter closes to compPoint.
Definition: AtPatternLine.cxx:32
XYZPoint
ROOT::Math::XYZPoint XYZPoint
Definition: AtPatternCircle2D.h:18
AtPatterns::AtPattern
Describes a shape in 3D space.
Definition: AtPattern.h:40
AtPatterns::AtPatternLine::XYZVector
ROOT::Math::XYZVector XYZVector
Definition: AtPatternLine.h:31
AtPatterns::AtPatternLine::GetEveLine
TEveLine * GetEveLine(Double_t rMax=250) const
Definition: AtPatternLine.cxx:175
AtPatterns::AtPatternLine::GetPointAt
virtual XYZPoint GetPointAt(double z) const override
Get point on line at z.
Definition: AtPatternLine.cxx:74
AtPatterns::AtPatternLine::GetEveElement
virtual TEveElement * GetEveElement() const override
Get visual representation of pattern.
Definition: AtPatternLine.cxx:20
AtPatterns::AtPatternLine::Clone
virtual std::unique_ptr< AtPattern > Clone() const override
Definition: AtPatternLine.h:42
AtPatterns
Definition: AtFissionEvent.h:21
AtPatterns::AtPattern::fPatternPar
std::vector< Double_t > fPatternPar
Definition: AtPattern.h:45
AtPatterns::AtPatternLine::lineIntersecR
std::vector< Double_t > lineIntersecR(Double_t rMax, Double_t tMin, Double_t tMax) const
Definition: AtPatternLine.cxx:198
AtPatterns::AtPatternLine::GetDirection
XYZVector GetDirection() const
Definition: AtPatternLine.h:35
AtPatterns::AtPatternLine::DefinePattern
virtual void DefinePattern(const std::vector< XYZPoint > &points) override
Define based on points.
Definition: AtPatternLine.cxx:53
AtPatterns::AtPattern::XYZPoint
ROOT::Math::XYZPoint XYZPoint
Definition: AtPattern.h:42