ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtPatternY.h
Go to the documentation of this file.
1 #ifndef ATPATTERNY_H
2 #define ATPATTERNY_H
3 
4 #include "AtPattern.h"
5 #include "AtPatternRay.h"
6 
7 #include <Math/Point3D.h>
8 #include <Math/Point3Dfwd.h> // for XYZPoint
9 #include <Math/Vector3D.h> // for DisplacementVector3D
10 #include <Math/Vector3Dfwd.h> // for XYZVector
11 #include <Rtypes.h> // for THashConsistencyHolder, ClassDefOverride
12 
13 #include <array>
14 #include <memory> // for make_unique, unique_ptr
15 #include <vector> // for vector
16 class TEveElement;
17 
18 class TBuffer;
19 class TClass;
20 class TMemberInspector;
21 
22 namespace AtPatterns {
23 
29 class AtPatternY : public AtPattern {
30 protected:
32  std::array<AtPatternRay, 2> fFragments;
33 
34 public:
37  AtPatternY();
38 
42  XYZPoint GetVertex() const { return fBeam.GetPoint(); }
43 
49 
55  XYZVector GetFragmentDirection(int frag) const { return fFragments.at(frag).GetDirection(); }
56 
61  int GetPointAssignment(const XYZPoint &point) const;
62 
63  virtual void DefinePattern(const std::vector<XYZPoint> &points) override;
64  virtual void DefinePattern(std::vector<double> par) override;
65  virtual Double_t DistanceToPattern(const XYZPoint &point) const override;
66  virtual XYZPoint ClosestPointOnPattern(const XYZPoint &point) const override;
67  virtual XYZPoint GetPointAt(double z) const override;
68  virtual TEveElement *GetEveElement() const override;
69  virtual std::unique_ptr<AtPattern> Clone() const override { return std::make_unique<AtPatternY>(*this); }
70  virtual std::vector<double> GetPatternPar() const override;
71 
72 protected:
73  virtual void FitPattern(const std::vector<XYZPoint> &points, const std::vector<double> &charge) override;
74 
75  void DefinePattern(const XYZPoint &vertex, const XYZVector &beamDir, const std::array<XYZVector, 2> &fragDir);
76 
77  ClassDefOverride(AtPatternY, 1)
78 };
79 } // namespace AtPatterns
80 
81 #endif //#ifndef ATPATTERNY_H
AtPatterns::AtPatternLine::GetPoint
XYZPoint GetPoint() const
Definition: AtPatternLine.h:34
AtPatterns::AtPatternY::GetPatternPar
virtual std::vector< double > GetPatternPar() const override
Get list or parameters that describe the pattern.
Definition: AtPatternY.cxx:102
AtPatterns::AtPatternY::AtPatternY
AtPatternY()
Definition: AtPatternY.cxx:29
XYZVector
ROOT::Math::XYZVector XYZVector
Definition: AtFindVertex.h:20
AtPatterns::AtPatternY::GetEveElement
virtual TEveElement * GetEveElement() const override
Get visual representation of pattern.
Definition: AtPatternY.cxx:31
AtPattern.h
AtPatterns::AtPatternY::GetPointAssignment
int GetPointAssignment(const XYZPoint &point) const
Definition: AtPatternY.cxx:90
AtPatterns::AtPatternY::ClosestPointOnPattern
virtual XYZPoint ClosestPointOnPattern(const XYZPoint &point) const override
Closest point on pattern.
Definition: AtPatternY.cxx:65
XYZPoint
ROOT::Math::XYZPoint XYZPoint
Definition: AtPatternCircle2D.h:18
AtPatterns::AtPattern
Describes a shape in 3D space.
Definition: AtPattern.h:40
AtPatterns::AtPatternY::GetFragmentDirection
XYZVector GetFragmentDirection(int frag) const
Get the direction of the fragment rays.
Definition: AtPatternY.h:55
AtPatterns::AtPatternY::fBeam
AtPatternRay fBeam
Definition: AtPatternY.h:31
AtPatterns::AtPatternY::Clone
virtual std::unique_ptr< AtPattern > Clone() const override
Definition: AtPatternY.h:69
AtPatternRay.h
AtPatterns::AtPatternY::GetPointAt
virtual XYZPoint GetPointAt(double z) const override
Get point along the beam axis at z.
Definition: AtPatternY.cxx:180
AtPatterns::AtPatternY::DefinePattern
virtual void DefinePattern(const std::vector< XYZPoint > &points) override
Define based on points.
Definition: AtPatternY.cxx:150
AtPatterns::AtPatternY::XYZVector
ROOT::Math::XYZVector XYZVector
Definition: AtPatternY.h:36
AtPatterns
Definition: AtFissionEvent.h:21
AtPatterns::AtPatternY::fFragments
std::array< AtPatternRay, 2 > fFragments
Definition: AtPatternY.h:32
AtPatterns::AtPatternY::DistanceToPattern
virtual Double_t DistanceToPattern(const XYZPoint &point) const override
Closest distance to pattern.
Definition: AtPatternY.cxx:81
AtPatterns::AtPatternY::FitPattern
virtual void FitPattern(const std::vector< XYZPoint > &points, const std::vector< double > &charge) override
Definition: AtPatternY.cxx:186
AtPatterns::AtPatternRay
Describes a linear track with an end point.
Definition: AtPatternRay.h:27
AtPatterns::AtPatternY::GetBeamDirection
XYZVector GetBeamDirection() const
Get the direction of the beam ray.
Definition: AtPatternY.h:48
AtPatterns::AtPatternLine::GetDirection
XYZVector GetDirection() const
Definition: AtPatternLine.h:35
AtPatterns::AtPatternY
Describes a Y track.
Definition: AtPatternY.h:29
AtPatterns::AtPatternY::GetVertex
XYZPoint GetVertex() const
Get the vertex of the Y shape.
Definition: AtPatternY.h:42
AtPatterns::AtPattern::XYZPoint
ROOT::Math::XYZPoint XYZPoint
Definition: AtPattern.h:42