ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtFissionEvent.h
Go to the documentation of this file.
1 #ifndef ATFISIONEVENT_H
2 #define ATFISIONEVENT_H
3 
4 #include "AtBaseEvent.h" // for AtBaseEvent
5 #include "AtPatternEvent.h"
6 
7 #include <Math/Point3D.h> // for PositionVector3D
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> // for swap, array
14 #include <utility> // for move
15 #include <vector>
16 class AtHit;
17 class AtTrack;
18 class TBuffer;
19 class TClass;
20 class TMemberInspector;
21 namespace AtPatterns {
22 class AtPatternY;
23 }
24 
30 protected:
33 
34  HitVector fBeamHits; //< Beam hits without space charge correction
35  std::array<HitVector, 2> fFragHits; //< Fragment hits without space charge correction
36  Double_t fLambda{0}; //<Magnitude of the space charge correction used in this event
37 
38 public:
42  AtFissionEvent(const AtBaseEvent &event) : AtPatternEvent(event){};
44  virtual ~AtFissionEvent() = default;
45 
46  friend void swap(AtFissionEvent &first, AtFissionEvent &second)
47  {
48  using std::swap;
49  swap(dynamic_cast<AtPatternEvent &>(first), dynamic_cast<AtPatternEvent &>(second));
50  swap(first.fBeamHits, second.fBeamHits);
51  swap(first.fFragHits, second.fFragHits);
52  }
53 
54  const AtPatterns::AtPatternY *GetYPattern() const;
55  const AtTrack &GetYTrack() const;
56  double GetFoldingAngle();
57  XYZPoint GetVertex() const;
58  double GetLambda() const { return fLambda; }
59 
60  std::vector<AtHit *> GetBeamHits() const;
61  std::vector<AtHit *> GetFragHits() const;
62  std::vector<AtHit *> GetFragHits(int fragID) const;
63 
64  std::vector<AtHit *> GetBeamHitsCorr();
65  std::vector<AtHit *> GetFragHitsCorr();
66  std::vector<AtHit *> GetFragHitsCorr(int fragID);
67 
68  void SetBeamHits(HitVector vec) { fBeamHits = std::move(vec); }
69  void SetFragHits(int fragID, HitVector vec);
70  void SetLambda(double l) { fLambda = l; }
72 };
73 
74 #endif // ATFISIONEVENT_H
swap
void swap(AtPad &a, AtPad &b) noexcept
Definition: AtPad.cxx:22
AtFissionEvent::GetFoldingAngle
double GetFoldingAngle()
Definition: AtFissionEvent.cxx:56
AtFissionEvent::fBeamHits
HitVector fBeamHits
Definition: AtFissionEvent.h:34
AtBaseEvent.h
AtFissionEvent::GetYTrack
const AtTrack & GetYTrack() const
Definition: AtFissionEvent.cxx:46
AtPatternEvent
Definition: AtPatternEvent.h:19
AtFissionEvent::GetBeamHits
std::vector< AtHit * > GetBeamHits() const
Definition: AtFissionEvent.cxx:77
AtFissionEvent::GetFragHitsCorr
std::vector< AtHit * > GetFragHitsCorr()
Definition: AtFissionEvent.cxx:143
AtFissionEvent::GetVertex
XYZPoint GetVertex() const
Definition: AtFissionEvent.cxx:64
XYZVector
ROOT::Math::XYZVector XYZVector
Definition: AtFindVertex.h:20
AtFissionEvent::AtFissionEvent
AtFissionEvent(const AtBaseEvent &event)
Definition: AtFissionEvent.h:42
AtFissionEvent::GetBeamHitsCorr
std::vector< AtHit * > GetBeamHitsCorr()
Definition: AtFissionEvent.cxx:108
AtFissionEvent::SetFragHits
void SetFragHits(int fragID, HitVector vec)
Definition: AtFissionEvent.cxx:153
XYZPoint
ROOT::Math::XYZPoint XYZPoint
Definition: AtPatternCircle2D.h:18
AtFissionEvent::GetYPattern
const AtPatterns::AtPatternY * GetYPattern() const
Definition: AtFissionEvent.cxx:36
AtFissionEvent::SetBeamHits
void SetBeamHits(HitVector vec)
Definition: AtFissionEvent.h:68
AtTrack
Definition: AtTrack.h:25
AtFissionEvent::XYZPoint
ROOT::Math::XYZPoint XYZPoint
Definition: AtFissionEvent.h:31
AtBaseEvent
Base class for all event types in ATTPCROOT.
Definition: AtBaseEvent.h:20
AtFissionEvent::AtFissionEvent
AtFissionEvent()
Definition: AtFissionEvent.cxx:18
AtPatternEvent.h
AtFissionEvent::fFragHits
std::array< HitVector, 2 > fFragHits
Definition: AtFissionEvent.h:35
AtPatterns
Definition: AtFissionEvent.h:21
AtFissionEvent::~AtFissionEvent
virtual ~AtFissionEvent()=default
AtPatternEvent::HitVector
std::vector< HitPtr > HitVector
Definition: AtPatternEvent.h:22
AtFissionEvent::fLambda
Double_t fLambda
Definition: AtFissionEvent.h:36
AtFissionEvent
Definition: AtFissionEvent.h:29
AtFissionEvent::SetLambda
void SetLambda(double l)
Definition: AtFissionEvent.h:70
AtFissionEvent::ClassDefOverride
ClassDefOverride(AtFissionEvent, 1)
AtFissionEvent::operator=
AtFissionEvent & operator=(AtFissionEvent)
Definition: AtFissionEvent.cxx:30
AtPatterns::AtPatternY
Describes a Y track.
Definition: AtPatternY.h:29
AtFissionEvent::XYZVector
ROOT::Math::XYZVector XYZVector
Definition: AtFissionEvent.h:32
AtFissionEvent::swap
friend void swap(AtFissionEvent &first, AtFissionEvent &second)
Definition: AtFissionEvent.h:46
AtFissionEvent::GetFragHits
std::vector< AtHit * > GetFragHits() const
Definition: AtFissionEvent.cxx:86
AtFissionEvent::GetLambda
double GetLambda() const
Definition: AtFissionEvent.h:58
AtHit
Point in space with charge.
Definition: AtHit.h:27