Belle II Software  release-08-01-10
CDCSegment3D.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 #pragma once
9 
10 #include <tracking/trackFindingCDC/eventdata/segments/CDCSegment.h>
11 #include <tracking/trackFindingCDC/eventdata/hits/CDCRecoHit3D.h>
12 #include <tracking/trackFindingCDC/eventdata/trajectories/CDCTrajectory3D.h>
13 
14 #include <tracking/trackFindingCDC/ca/AutomatonCell.h>
15 
16 namespace Belle2 {
21  namespace TrackFindingCDC {
22  class CDCSegment2D;
23  class CDCTrajectory2D;
24 
26  class CDCSegment3D : public CDCSegment<CDCRecoHit3D> {
27 
28  public:
30  static CDCSegment3D reconstruct(const CDCSegment2D& segment2D,
31  const CDCTrajectory2D& trajectory2D);
32 
38 
41  {
42  return m_automatonCell;
43  }
44 
47  {
48  return &m_automatonCell;
49  }
50 
55  void unsetAndForwardMaskedFlag(bool toHits = true) const;
56 
61  void setAndForwardMaskedFlag(bool toHits = true) const;
62 
68  void receiveMaskedFlag(bool fromHits = true) const;
69 
72  {
73  return m_trajectory3D;
74  }
75 
77  void setTrajectory3D(const CDCTrajectory3D& trajectory3D) const
78  {
79  m_trajectory3D = trajectory3D;
80  }
81 
82  private:
89 
92  };
93  }
95 }
Cell used by the cellular automata.
Definition: AutomatonCell.h:29
A reconstructed sequence of two dimensional hits in one super layer.
Definition: CDCSegment2D.h:39
A segment consisting of three dimensional reconstructed hits.
Definition: CDCSegment3D.h:26
CDCTrajectory3D m_trajectory3D
Memory for the three dimensional trajectory fitted to this segment.
Definition: CDCSegment3D.h:91
static CDCSegment3D reconstruct(const CDCSegment2D &segment2D, const CDCTrajectory2D &trajectory2D)
Reconstructs a two dimensional stereo segment by shifting each hit onto the given two dimensional tra...
Definition: CDCSegment3D.cc:20
CDCSegment2D stereoProjectToRef() const
Constructs a two dimensional segment by carrying out the stereo ! projection to the wire reference po...
Definition: CDCSegment3D.cc:32
CDCTrajectory3D & getTrajectory3D() const
Getter for the two dimensional trajectory fitted to the segment.
Definition: CDCSegment3D.h:71
void setTrajectory3D(const CDCTrajectory3D &trajectory3D) const
Setter for the two dimensional trajectory fitted to the segment.
Definition: CDCSegment3D.h:77
AutomatonCell & getAutomatonCell() const
Mutable getter for the automaton cell.
Definition: CDCSegment3D.h:40
void receiveMaskedFlag(bool fromHits=true) const
Check all contained wire hits if one has the masked flag.
Definition: CDCSegment3D.cc:62
void setAndForwardMaskedFlag(bool toHits=true) const
Set the masked flag of the automaton cell of this segment and forward the masked flag to all containe...
Definition: CDCSegment3D.cc:52
AutomatonCell m_automatonCell
Memory for the automaton cell.
Definition: CDCSegment3D.h:88
void unsetAndForwardMaskedFlag(bool toHits=true) const
Unset the masked flag of the automaton cell of this segment and of all contained wire hits.
Definition: CDCSegment3D.cc:42
AutomatonCell * operator->() const
Indirection to the automaton cell for easier access to the flags.
Definition: CDCSegment3D.h:46
A sequence of hits limited to one superlayer.
Definition: CDCSegment.h:26
Particle trajectory as it is seen in xy projection represented as a circle.
Particle full three dimensional trajectory.
Abstract base class for different kinds of events.