Belle II Software development
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
16namespace 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
AutomatonCell * operator->() const
Indirection to the automaton cell for easier access to the flags.
Definition: CDCSegment3D.h:46
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
CDCTrajectory3D & getTrajectory3D() const
Getter for the two dimensional trajectory fitted to the segment.
Definition: CDCSegment3D.h:71
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
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.