Belle II Software  release-05-02-19
Tracker2D.h
1 //-----------------------------------------------------------------------------
2 // $Id$
3 //-----------------------------------------------------------------------------
4 // Filename : Tracker2D.h
5 // Section : TRG CDC
6 // Owner : Yoshihito Iwasaki
7 // Email : yoshihito.iwasaki@kek.jp
8 //-----------------------------------------------------------------------------
9 // Description : A class to represent a CDC front-end board
10 //-----------------------------------------------------------------------------
11 // $Log$
12 //-----------------------------------------------------------------------------
13 
14 #pragma once
15 
16 #include <float.h>
17 #include <string>
18 #include "trg/trg/Board.h"
19 #include "trg/trg/SignalVector.h"
20 #include "trg/trg/SignalBundle.h"
21 
22 #ifdef TRGCDC_SHORT_NAMES
23 #define TCTracker2D TRGCDCTracker2D
24 #endif
25 
26 namespace Belle2 {
32  class TRGState;
33  class TRGCDCTrackSegmentFinder;
34 
37  : public TRGBoard,
38  public std::vector<const TRGCDCTrackSegmentFinder*> {
39 
40  public:
42  TRGCDCTracker2D(const std::string& name,
43  const TRGClock& systemClock,
44  const TRGClock& dataClock,
45  const TRGClock& userClockInput,
46  const TRGClock& userClockOutput);
47 
49  virtual ~TRGCDCTracker2D();
50 
51  public:// Selectors.
52 
54  static std::string version(void);
55 
56  public:// Modifiers
57 
59  void simulate(void);
60 
61  public:// VHDL utilities
62 
64  static unsigned nTSF(void);
65 
67  static unsigned nTSF(unsigned i);
68 
70  static void unpacker(const TRGState& input, TRGState& output);
71 
73  static TRGState packer(const TRGState& input,
74  TRGState& registers,
75  bool& logicStillActive);
76 
78  static void HoughMappingPlus(void);
80  static void HoughMappingMinus(void);
81 
82  public:// Configuration
83 
86 
89  void dump(const std::string& message = "",
90  const std::string& pre = "") const;
91 
92  private:
93 
95  void setConstants(void);
96 
98  static void hitInformation(const TRGState& registers);
99 
100  private:
101 
103  static unsigned _nTSF;
104 
106  static std::vector<unsigned> _n;
107 
109  static TRGState _ts;
110  };
111 
112 //-----------------------------------------------------------------------------
113 
114  inline
115  unsigned
116  TCTracker2D::nTSF(void)
117  {
118  return 160 + 192 + 256 + 320 + 384;
119  }
120 
121  inline
122  unsigned
123  TCTracker2D::nTSF(unsigned i)
124  {
125  if (i == 0)
126  return 160;
127  else if (i == 1)
128  return 192;
129  else if (i == 2)
130  return 256;
131  else if (i == 3)
132  return 320;
133  else if (i == 4)
134  return 384;
135  else
136  return 0;
137  }
138 
140 } // namespace Belle2
141 
Belle2::TRGBoard
A class to represent a trigger board.
Definition: Board.h:30
Belle2::TRGCDCTracker2D::_n
static std::vector< unsigned > _n
# of TSFs in super layer i.
Definition: Tracker2D.h:106
Belle2::TRGCDCTracker2D::simulate
void simulate(void)
simulates firmware.
Definition: Tracker2D.cc:73
Belle2::TRGCDCTracker2D::hitInformation
static void hitInformation(const TRGState &registers)
Gets TSF hit information for one certin clock from the registers.
Belle2::TRGState
A class to represent a state of multi bits.
Definition: State.h:29
Belle2::TRGCDCTracker2D::unpacker
static void unpacker(const TRGState &input, TRGState &output)
Unpack TSF output.
Belle2::TRGCDCTracker2D
A class to represent a CDC 2D tracker board.
Definition: Tracker2D.h:36
Belle2::TRGBoard::name
const std::string & name(void) const
returns name.
Definition: Board.h:114
Belle2::TRGCDCTracker2D::HoughMappingPlus
static void HoughMappingPlus(void)
Do core logic simulation for positive charge.
Belle2::TRGCDCTracker2D::dump
void dump(const std::string &message="", const std::string &pre="") const
dumps contents.
Definition: Tracker2D.cc:67
Belle2::TRGCDCTracker2D::TRGCDCTracker2D
TRGCDCTracker2D(const std::string &name, const TRGClock &systemClock, const TRGClock &dataClock, const TRGClock &userClockInput, const TRGClock &userClockOutput)
Constructor.
Definition: Tracker2D.cc:41
Belle2::TRGCDCTracker2D::_ts
static TRGState _ts
Keeps TS hit info.
Definition: Tracker2D.h:109
Belle2::TRGCDCTracker2D::version
static std::string version(void)
returns version.
Definition: Tracker2D.cc:55
Belle2::TRGCDCTrackSegmentFinder
a class of TrackSegmentFinder in TRGCDC
Definition: TrackSegmentFinder.h:41
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TRGCDCTracker2D::HoughMappingMinus
static void HoughMappingMinus(void)
Do core logic simulation for negative charge.
Belle2::TRGCDCTracker2D::_nTSF
static unsigned _nTSF
# of TSFs.
Definition: Tracker2D.h:103
Belle2::TRGCDCTracker2D::nTSF
static unsigned nTSF(void)
returns # of TSF.
Belle2::TRGCDCTracker2D::push_back
void push_back(const TRGCDCTrackSegmentFinder *)
Appends a TSF board.
Definition: Tracker2D.cc:61
Belle2::TRGCDCTracker2D::~TRGCDCTracker2D
virtual ~TRGCDCTracker2D()
Destructor.
Definition: Tracker2D.cc:50
Belle2::TRGCDCTracker2D::packer
static TRGState packer(const TRGState &input, TRGState &registers, bool &logicStillActive)
Packer for 3D tracker.
Belle2::TRGClock
A class to represent a digitized signal. Unit is nano second.
Definition: Clock.h:43
Belle2::TRGCDCTracker2D::setConstants
void setConstants(void)
Sets constants.