Belle II Software  release-05-01-25
DisplayRphi.cc
1 //-----------------------------------------------------------------------------
2 // $Id$
3 //-----------------------------------------------------------------------------
4 // Filename : DisplayRphi.cc
5 // Section : TRG CDC
6 // Owner : Yoshihito Iwasaki
7 // Email : yoshihito.iwasaki@kek.jp
8 //-----------------------------------------------------------------------------
9 // Description : A class to display CDC trigger information.
10 //-----------------------------------------------------------------------------
11 // $Log$
12 //-----------------------------------------------------------------------------
13 
14 #ifdef TRGCDC_DISPLAY
15 
16 #include <iostream>
17 #include "trg/cdc/DisplayRphi.h"
18 
19 using namespace std;
20 
21 namespace Belle2 {
27 // Gtk::Main * GtkMain = 0;
28 // bool TRGCDCDisplayRphi::_skipEvent = false;
29 // bool TRGCDCDisplayRphi::_endOfEvent = false;
30 // bool TRGCDCDisplayRphi::_endOfEventFlag = false;
31 
32  TRGCDCDisplayRphi::TRGCDCDisplayRphi(const string& name,
33  double innerR,
34  double outerR,
35  int size)
36  : TRGCDCDisplay(name, size, int(outerR)),
37  _axial(true),
38  _stereo(false),
39  _w(* this, size, innerR, outerR),
40  _adjustment(double(size) / outerR / 2,
41  double(size) / outerR / 2,
42  10.0,
43  0.1),
44  _scaler(_adjustment),
45  _buttonAxial("Axial"),
46  _buttonStereo("Stereo"),
47  _buttonBelleCDC("Belle CDC")
48  {
49 
50  _w.set_size_request(size, size);
51 
52  _buttonAxial.set_active();
53  _axial = _buttonAxial.get_active();
54  _buttonStereo.set_active(false);
55  _stereo = _buttonStereo.get_active();
56  _buttonBelleCDC.set_active(false);
57 
58  _buttonAxial
59  .signal_clicked()
60  .connect(sigc::mem_fun(* this, & TRGCDCDisplayRphi::on_axial));
61  _buttonStereo
62  .signal_clicked()
63  .connect(sigc::mem_fun(* this, & TRGCDCDisplayRphi::on_stereo));
64  _buttonBelleCDC
65  .signal_clicked()
66  .connect(sigc::mem_fun(* this, & TRGCDCDisplayRphi::on_BelleCDC));
67 
68  _scaler.set_update_policy(Gtk::UPDATE_CONTINUOUS);
69  _scaler.set_digits(3);
70  _scaler.set_value_pos(Gtk::POS_LEFT);
71  _scaler.set_draw_value();
72  _scaler.set_size_request(200, 30);
73  _scaler
74  .signal_value_changed()
75  .connect(sigc::mem_fun(* this,
76  & TRGCDCDisplayRphi::on_scale_value_changed));
77 
78  _bottom.pack_start(_scaler, Gtk::PACK_SHRINK, 5);
79  _bottom.pack_start(_buttonPositionReset, Gtk::PACK_EXPAND_WIDGET, 2);
80  _bottom.pack_start(_buttonAxial, Gtk::PACK_SHRINK, 2);
81  _bottom.pack_start(_buttonStereo, Gtk::PACK_SHRINK, 2);
82  _bottom.pack_start(_buttonWireName, Gtk::PACK_SHRINK, 2);
83  _bottom.pack_start(_buttonBelleCDC, Gtk::PACK_SHRINK, 2);
84 
85  _box0.pack_start(_menuButtons, Gtk::PACK_SHRINK, 5);
86  _box0.pack_start(_label, Gtk::PACK_EXPAND_WIDGET, 5);
87  _box0.pack_start(_w, Gtk::PACK_EXPAND_WIDGET, 5);
88  _box0.pack_start(_bottom, Gtk::PACK_SHRINK, 5);
89 
90  set_border_width(5);
91  add(_box0);
92  show_all();
93  }
94 
95  TRGCDCDisplayRphi::~TRGCDCDisplayRphi()
96  {
97  }
98 
99  void
100  TRGCDCDisplayRphi::on_scale_value_changed(void)
101  {
102  const double val = scale();
103  _w.scale(val);
104 // cout << "TRGCDCDisplayRphi ... scale value=" << val << endl;
105  _w.on_expose_event((GdkEventExpose*) NULL);
106  }
107 
108  void
109  TRGCDCDisplayRphi::on_axial(void)
110  {
111  _axial = _buttonAxial.get_active();
112  _w.axial(_axial);
113  _w.on_expose_event((GdkEventExpose*) NULL);
114  }
115 
116  void
117  TRGCDCDisplayRphi::on_stereo(void)
118  {
119  _stereo = _buttonStereo.get_active();
120  _w.stereo(_stereo);
121  _w.on_expose_event((GdkEventExpose*) NULL);
122  }
123 
124  void
125  TRGCDCDisplayRphi::on_wireName(void)
126  {
127  _wireName = _buttonWireName.get_active();
128  _w.wireName(_wireName);
129  _w.on_expose_event((GdkEventExpose*) NULL);
130  }
131 
132  void
133  TRGCDCDisplayRphi::on_BelleCDC(void)
134  {
135  _oldCDC = _buttonBelleCDC.get_active();
136  _w.oldCDC(_oldCDC);
137  _w.on_expose_event((GdkEventExpose*) NULL);
138  }
139 
140  void
141  TRGCDCDisplayRphi::on_positionReset(void)
142  {
143  _w.resetPosition();
144  const double val = _w.scale();
145  scale(val);
146  _w.on_expose_event((GdkEventExpose*) NULL);
147  }
148 
150 } // namespace Belle2
151 
152 #endif
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19