ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtPatternCircle2D.h
Go to the documentation of this file.
1 #ifndef ATPATTERNCIRCLE2D_H
2 #define ATPATTERNCIRCLE2D_H
3 
4 #include "AtPattern.h"
5 
6 #include <Math/Point3D.h>
7 #include <Math/Point3Dfwd.h> // for XYZPoint
8 #include <Rtypes.h> // for THashConsistencyHolder, ClassDefOverride
9 
10 #include <memory> // for make_unique, unique_ptr
11 #include <vector> // for vector
12 
13 class TEveElement;
14 class TBuffer;
15 class TClass;
16 class TMemberInspector;
17 
19 
20 namespace AtPatterns {
26 class AtPatternCircle2D : public AtPattern {
27 public:
29 
30  XYZPoint GetCenter() const { return {fPatternPar[0], fPatternPar[1], 0}; }
31  double GetRadius() const { return fPatternPar[2]; }
32 
33  virtual void DefinePattern(const std::vector<XYZPoint> &points) override;
34  virtual Double_t DistanceToPattern(const XYZPoint &point) const override;
35  virtual XYZPoint ClosestPointOnPattern(const XYZPoint &point) const override;
36  virtual XYZPoint GetPointAt(double theta) const override;
37  virtual TEveElement *GetEveElement() const override;
38  virtual std::unique_ptr<AtPattern> Clone() const override { return std::make_unique<AtPatternCircle2D>(*this); }
39 
40 protected:
41  virtual void FitPattern(const std::vector<XYZPoint> &points, const std::vector<double> &charge) override;
42 
43  ClassDefOverride(AtPatternCircle2D, 1)
44 };
45 } // namespace AtPatterns
46 #endif //#ifndef ATPATTERNCIRCLE2D_H
AtPattern.h
AtPatterns::AtPatternCircle2D::DistanceToPattern
virtual Double_t DistanceToPattern(const XYZPoint &point) const override
Closest distance to pattern.
Definition: AtPatternCircle2D.cxx:47
AtPatterns::AtPatternCircle2D::FitPattern
virtual void FitPattern(const std::vector< XYZPoint > &points, const std::vector< double > &charge) override
Definition: AtPatternCircle2D.cxx:64
XYZPoint
ROOT::Math::XYZPoint XYZPoint
Definition: AtPatternCircle2D.h:18
AtPatterns::AtPattern
Describes a shape in 3D space.
Definition: AtPattern.h:40
AtPatterns::AtPatternCircle2D::GetRadius
double GetRadius() const
Definition: AtPatternCircle2D.h:31
AtPatterns::AtPatternCircle2D::AtPatternCircle2D
AtPatternCircle2D()
Definition: AtPatternCircle2D.cxx:19
AtPatterns::AtPatternCircle2D::ClosestPointOnPattern
virtual XYZPoint ClosestPointOnPattern(const XYZPoint &point) const override
Closest point on pattern.
Definition: AtPatternCircle2D.cxx:53
AtPatterns::AtPatternCircle2D::Clone
virtual std::unique_ptr< AtPattern > Clone() const override
Definition: AtPatternCircle2D.h:38
AtPatterns::AtPatternCircle2D::GetCenter
XYZPoint GetCenter() const
Definition: AtPatternCircle2D.h:30
AtPatterns
Definition: AtFissionEvent.h:21
AtPatterns::AtPatternCircle2D::GetEveElement
virtual TEveElement * GetEveElement() const override
Get visual representation of pattern.
Definition: AtPatternCircle2D.cxx:20
AtPatterns::AtPattern::fPatternPar
std::vector< Double_t > fPatternPar
Definition: AtPattern.h:45
AtPatterns::AtPatternCircle2D::GetPointAt
virtual XYZPoint GetPointAt(double theta) const override
Point on pattern at t.
Definition: AtPatternCircle2D.cxx:59
AtPatterns::AtPattern::XYZPoint
ROOT::Math::XYZPoint XYZPoint
Definition: AtPattern.h:42
AtPatterns::AtPatternCircle2D
Describes a circle track projected to the XY plane.
Definition: AtPatternCircle2D.h:26
AtPatterns::AtPatternCircle2D::DefinePattern
virtual void DefinePattern(const std::vector< XYZPoint > &points) override
Define based on points.
Definition: AtPatternCircle2D.cxx:25