37 ClassImp(TEveDigitSetEditor);
42 TEveDigitSetEditor::TEveDigitSetEditor(
const TGWindow *p, Int_t width, Int_t height,
43 UInt_t options, Pixel_t back) :
44 TGedFrame(p, width, height, options | kVerticalFrame, back),
51 MakeTitle(
"Palette controls");
53 fPalette =
new TEveRGBAPaletteSubEditor(
this);
54 AddFrame(fPalette,
new TGLayoutHints(kLHintsTop | kLHintsExpandX, 2, 0, 0, 0));
55 fPalette->Connect(
"Changed()",
"TEveDigitSetEditor",
this,
"Update()");
63 void TEveDigitSetEditor::CreateInfoTab()
65 fInfoFrame = CreateEditorTabSubFrame(
"Info");
67 TGCompositeFrame *title1 =
new TGCompositeFrame(fInfoFrame, 180, 10,
73 title1->AddFrame(
new TGLabel(title1,
"TEveDigitSet Info"),
74 new TGLayoutHints(kLHintsLeft, 1, 1, 0, 0));
75 title1->AddFrame(
new TGHorizontal3DLine(title1),
76 new TGLayoutHints(kLHintsExpandX, 5, 5, 7, 7));
77 fInfoFrame->AddFrame(title1,
new TGLayoutHints(kLHintsTop, 0, 0, 2, 0));
80 fHistoButtFrame =
new TGHorizontalFrame(fInfoFrame);
82 b =
new TGTextButton(fHistoButtFrame,
"Histo");
83 b->SetToolTipText(
"Show histogram over full range.");
84 fHistoButtFrame->AddFrame(b,
new TGLayoutHints(kLHintsLeft|kLHintsExpandX, 1, 1, 0, 0));
85 b->Connect(
"Clicked()",
"TEveDigitSetEditor",
this,
"DoHisto()");
87 b =
new TGTextButton(fHistoButtFrame,
"Range Histo");
88 b->SetToolTipText(
"Show histogram over selected range.");
89 fHistoButtFrame->AddFrame(b,
new TGLayoutHints(kLHintsLeft|kLHintsExpandX, 1, 1, 0, 0));
90 b->Connect(
"Clicked()",
"TEveDigitSetEditor",
this,
"DoRangeHisto()");
91 fInfoFrame->AddFrame(fHistoButtFrame,
new TGLayoutHints(kLHintsExpandX, 2, 0, 0, 0));
97 void TEveDigitSetEditor::SetModel(TObject* obj)
99 fM =
dynamic_cast<TEveDigitSet*
>(obj);
101 if (fM->fValueIsColor || fM->fPalette == 0) {
102 fPalette->UnmapWindow();
104 fPalette->SetModel(fM->fPalette);
105 fPalette->MapWindow();
108 if (fM->fHistoButtons)
109 fHistoButtFrame->MapWindow();
111 fHistoButtFrame->UnmapWindow();
117 void TEveDigitSetEditor::DoHisto()
121 min = fM->fPalette->GetLowLimit();
122 max = fM->fPalette->GetHighLimit();
124 fM->ScanMinMaxValues(min, max);
132 void TEveDigitSetEditor::DoRangeHisto()
136 min = fM->fPalette->GetMinVal();
137 max = fM->fPalette->GetMaxVal();
139 fM->ScanMinMaxValues(min, max);
147 void TEveDigitSetEditor::PlotHisto(Int_t min, Int_t max)
149 Int_t nbins = max-min+1;
153 TH1F* h =
new TH1F(fM->GetName(), fM->GetTitle(), nbins, min-0.5, max+0.5);
155 h->SetBit(kCanDelete);
156 TEveChunkManager::iterator qi(fM->fPlex);
158 h->Fill(((TEveDigitSet::DigitBase_t*)qi())->fValue);
160 gStyle->SetOptStat(1111111);