// @(#)root/eve:$Id$
// Author: Matevz Tadel 2007

/*************************************************************************
 * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#include "TEveCaloLegoEditor.h"
#include "TEveCalo.h"
#include "TEveGValuators.h"
#include "TGComboBox.h"

#include "TColor.h"
#include "TGColorSelect.h"
#include "TGLabel.h"
#include "TG3DLine.h"

//______________________________________________________________________________
// GUI editor for TEveCaloLego.
//

ClassImp(TEveCaloLegoEditor);

//______________________________________________________________________________
TEveCaloLegoEditor::TEveCaloLegoEditor(const TGWindow *p, Int_t width, Int_t height,
                                       UInt_t options, Pixel_t back) :
   TGedFrame(p, width, height, options | kVerticalFrame, back),
   fM(0),
   fGridColor(0),
   fFontColor(0),
   fPlaneColor(0),
   fTransparency(0),

   fProjection(0),
   f2DMode(0),
   fBoxMode(0),

   fCell2DTextMin(0),

   fRebinFrame(0),
   fAutoRebin(0),
   fPixelsPerBin(0),
   fNormalizeRebin(0)

{
   // Constructor.

   MakeTitle("TEveCaloLego");

   {  // grid color
      TGHorizontalFrame* f = new TGHorizontalFrame(this);
      TGLabel* lab = new TGLabel(f, "GridColor:");
      f->AddFrame(lab, new TGLayoutHints(kLHintsLeft|kLHintsBottom, 1, 10, 1, 1));

      fGridColor = new TGColorSelect(f, 0, -1);
      f->AddFrame(fGridColor, new TGLayoutHints(kLHintsLeft|kLHintsTop, 3, 1, 0, 1));
      fGridColor->Connect("ColorSelected(Pixel_t)", "TEveCaloLegoEditor", this, "DoGridColor(Pixel_t)");

      AddFrame(f, new TGLayoutHints(kLHintsTop, 1, 1, 1, 0));
   }
   // axis
   {
      // font color
      TGHorizontalFrame* f = new TGHorizontalFrame(this);
      TGLabel* lab = new TGLabel(f, "FontColor:");
      f->AddFrame(lab, new TGLayoutHints(kLHintsLeft|kLHintsBottom, 1, 8, 1, 1));

      fFontColor = new TGColorSelect(f, 0, -1);
      f->AddFrame(fFontColor, new TGLayoutHints(kLHintsLeft|kLHintsTop, 3, 1, 0, 1));
      fFontColor->Connect("ColorSelected(Pixel_t)", "TEveCaloLegoEditor", this, "DoFontColor(Pixel_t)");

      AddFrame(f, new TGLayoutHints(kLHintsTop, 1, 1, 1, 0));
   }
   {
      // plane color
      TGHorizontalFrame* f = new TGHorizontalFrame(this);
      TGLabel* lab = new TGLabel(f, "PlaneColor:");
      f->AddFrame(lab, new TGLayoutHints(kLHintsLeft|kLHintsBottom, 1, 1, 1, 1));

      fPlaneColor = new TGColorSelect(f, 0, -1);
      f->AddFrame(fPlaneColor, new TGLayoutHints(kLHintsLeft|kLHintsTop, 3, 1, 0, 1));
      fPlaneColor->Connect("ColorSelected(Pixel_t)", "TEveCaloLegoEditor", this, "DoPlaneColor(Pixel_t)");

      fTransparency = new TGNumberEntry(f, 0., 2, -1,
                                        TGNumberFormat::kNESInteger, TGNumberFormat::kNEANonNegative,
                                        TGNumberFormat::kNELLimitMinMax, 0, 100);
      fTransparency->SetHeight(18);
      fTransparency->GetNumberEntry()->SetToolTipText("Transparency: 0 is opaque, 100 fully transparent.");
      f->AddFrame(fTransparency, new TGLayoutHints(kLHintsLeft, 0, 0, 0, 0));
      fTransparency->Connect("ValueSet(Long_t)","TEveCaloLegoEditor", this, "DoTransparency()");

      AddFrame(f, new TGLayoutHints(kLHintsTop, 1, 1, 1, 0));
   }

   Int_t lw = 80;

   fProjection = MakeLabeledCombo("Project:", 1);
   fProjection->AddEntry("Auto", TEveCaloLego::kAuto);
   fProjection->AddEntry("3D", TEveCaloLego::k3D);
   fProjection->AddEntry("2D", TEveCaloLego::k2D);
   fProjection->Connect("Selected(Int_t)", "TEveCaloLegoEditor", this, "DoProjection()");

   f2DMode = MakeLabeledCombo("2DMode:", 4);
   f2DMode->AddEntry("ValColor", TEveCaloLego::kValColor);
   f2DMode->AddEntry("ValSize",  TEveCaloLego::kValSize);
   f2DMode->AddEntry("ValSizeOutline",  TEveCaloLego::kValSizeOutline);
   f2DMode->Connect("Selected(Int_t)", "TEveCaloLegoEditor", this, "Do2DMode()");

   fBoxMode = MakeLabeledCombo("Box:", 4);
   fBoxMode->AddEntry("None", TEveCaloLego::kNone);
   fBoxMode->AddEntry("Back",  TEveCaloLego::kBack);
   fBoxMode->AddEntry("FrontBack",  TEveCaloLego::kFrontBack);
   fBoxMode->Connect("Selected(Int_t)", "TEveCaloLegoEditor", this, "DoBoxMode()");

   fCell2DTextMin = new TEveGValuator(this, "Cell2DTexMin:", 90, 0);
   fCell2DTextMin->SetLabelWidth(lw);
   fCell2DTextMin->SetNELength(5);
   fCell2DTextMin->SetShowSlider(kFALSE);
   fCell2DTextMin->Build();
   fCell2DTextMin->SetLimits(1, 1000);
   fCell2DTextMin->SetToolTip("Draw cell values above N pixels.");
   fCell2DTextMin->Connect("ValueSet(Double_t)", "TEveCaloLegoEditor", this, "DoCell2DTextMin()");
   AddFrame(fCell2DTextMin, new TGLayoutHints(kLHintsTop, 1, 2, 1, 2));

   MakeRebinFrame();
}

//______________________________________________________________________________
void  TEveCaloLegoEditor::MakeRebinFrame()
{
   fRebinFrame = CreateEditorTabSubFrame("Rebin");

   fAutoRebin  = new TGCheckButton(fRebinFrame, "AutoRebin");
   fRebinFrame->AddFrame(fAutoRebin, new TGLayoutHints(kLHintsLeft, 3, 5, 3, 0));
   fAutoRebin->Connect("Toggled(Bool_t)", "TEveCaloLegoEditor", this, "DoAutoRebin()");

   fNormalizeRebin  = new TGCheckButton(fRebinFrame, "NormalizeRebin");
   fRebinFrame->AddFrame(fNormalizeRebin, new TGLayoutHints(kLHintsLeft, 3, 5, 3, 0));
   fNormalizeRebin->Connect("Toggled(Bool_t)", "TEveCaloLegoEditor", this, "DoNormalize()");

   fPixelsPerBin = new TEveGValuator(fRebinFrame, "PixelsPerBin:", 90, 0);
   fPixelsPerBin->SetLabelWidth(80);
   fPixelsPerBin->SetNELength(5);
   fPixelsPerBin->SetShowSlider(kFALSE);
   fPixelsPerBin->Build();
   fPixelsPerBin->SetLimits(1, 50);
   fPixelsPerBin->SetToolTip("Number of labels along the Z axis.");
   fPixelsPerBin->Connect("ValueSet(Double_t)", "TEveCaloLegoEditor", this, "DoPixelsPerBin()");
   fRebinFrame->AddFrame(fPixelsPerBin, new TGLayoutHints(kLHintsTop, 4, 2, 1, 2));
}

//______________________________________________________________________________
TGComboBox* TEveCaloLegoEditor::MakeLabeledCombo(const char* name, Int_t off)
{
   // Helper function. Creates TGComboBox with fixed size TGLabel.

   UInt_t labelW = 60;
   UInt_t labelH = 20;
   TGHorizontalFrame* hf = new TGHorizontalFrame(this);
   // label
   TGCompositeFrame *labfr = new TGHorizontalFrame(hf, labelW, labelH, kFixedSize);
   TGLabel* label = new TGLabel(labfr, name);
   labfr->AddFrame(label, new TGLayoutHints(kLHintsLeft  | kLHintsBottom));
   hf->AddFrame(labfr, new TGLayoutHints(kLHintsLeft));
   // combo
   TGLayoutHints*  clh =  new TGLayoutHints(kLHintsLeft, 0,0,0,0);
   TGComboBox* combo = new TGComboBox(hf);
   combo->Resize(90, 20);
   hf->AddFrame(combo, clh);

   AddFrame(hf, new TGLayoutHints(kLHintsTop, 1, 1, 1, off));
   return combo;
}

//______________________________________________________________________________
void TEveCaloLegoEditor::SetModel(TObject* obj)
{
   // Set model object.

   fM = dynamic_cast<TEveCaloLego*>(obj);

   fGridColor->SetColor(TColor::Number2Pixel(fM->GetGridColor() < 0 ? 0 : fM->GetGridColor()), kFALSE);
   fFontColor->SetColor(TColor::Number2Pixel(fM->GetFontColor() < 0 ? 0 : fM->GetFontColor()), kFALSE);

   fPlaneColor->SetColor(TColor::Number2Pixel(fM->GetPlaneColor()), kFALSE);
   fTransparency->SetNumber(fM->GetPlaneTransparency());

   fCell2DTextMin->SetValue(fM->GetDrawNumberCellPixels());

   fProjection->Select(fM->GetProjection(), kFALSE);
   f2DMode->Select(fM->Get2DMode(), kFALSE);
   fBoxMode->Select(fM->GetBoxMode(), kFALSE);

   fPixelsPerBin->SetValue(fM->GetPixelsPerBin());
   fAutoRebin->SetState(fM->GetAutoRebin() ? kButtonDown : kButtonUp);
   fNormalizeRebin->SetState(fM->GetNormalizeRebin() ? kButtonDown : kButtonUp);
}

//______________________________________________________________________________
void TEveCaloLegoEditor::DoGridColor(Pixel_t pixel)
{
   // Slot for GridColor.

   fM->SetGridColor(Color_t(TColor::GetColor(pixel)));
   Update();
}

//______________________________________________________________________________
void TEveCaloLegoEditor::DoFontColor(Pixel_t pixel)
{
   // Slot for FontColor.

   fM->SetFontColor(Color_t(TColor::GetColor(pixel)));
   Update();
}

//______________________________________________________________________________
void TEveCaloLegoEditor::DoPlaneColor(Pixel_t pixel)
{
   // Slot for PlaneColor.

   fM->SetPlaneColor(Color_t(TColor::GetColor(pixel)));
   Update();
}

//______________________________________________________________________________
void TEveCaloLegoEditor::DoCell2DTextMin()
{
   // Slot for setting limit in pixels in which cell value is rendered.

   fM->SetDrawNumberCellPixels((Int_t)fCell2DTextMin->GetValue());
   Update();
}


//______________________________________________________________________________
void TEveCaloLegoEditor::DoProjection()
{
   // Slot for projection.

   fM->SetProjection((TEveCaloLego::EProjection_e)fProjection->GetSelected());
   Update();
}

//______________________________________________________________________________
void TEveCaloLegoEditor::Do2DMode()
{
   // Slot for projection.

   fM->Set2DMode((TEveCaloLego::E2DMode_e)f2DMode->GetSelected());
   Update();
}

//______________________________________________________________________________
void TEveCaloLegoEditor::DoBoxMode()
{
   // Slot for projection.

   fM->SetBoxMode((TEveCaloLego::EBoxMode_e)fBoxMode->GetSelected());
   Update();
}

//______________________________________________________________________________
void TEveCaloLegoEditor::DoTransparency()
{
   // Slot for Transparency.

   fM->SetPlaneTransparency((Char_t)(fTransparency->GetNumber()));
   Update();
}

//______________________________________________________________________________
void TEveCaloLegoEditor::DoPixelsPerBin()
{
   // Slot for PixelsPerBin.

   fM->SetPixelsPerBin((Int_t)fPixelsPerBin->GetValue());
   Update();
}

//______________________________________________________________________________
void TEveCaloLegoEditor::DoAutoRebin()
{
   fM->SetAutoRebin(fAutoRebin->IsOn());
   Update();
}

//______________________________________________________________________________
void TEveCaloLegoEditor::DoNormalize()
{
   fM->SetNormalizeRebin(fNormalizeRebin->IsOn());
   Update();
}
 TEveCaloLegoEditor.cxx:1
 TEveCaloLegoEditor.cxx:2
 TEveCaloLegoEditor.cxx:3
 TEveCaloLegoEditor.cxx:4
 TEveCaloLegoEditor.cxx:5
 TEveCaloLegoEditor.cxx:6
 TEveCaloLegoEditor.cxx:7
 TEveCaloLegoEditor.cxx:8
 TEveCaloLegoEditor.cxx:9
 TEveCaloLegoEditor.cxx:10
 TEveCaloLegoEditor.cxx:11
 TEveCaloLegoEditor.cxx:12
 TEveCaloLegoEditor.cxx:13
 TEveCaloLegoEditor.cxx:14
 TEveCaloLegoEditor.cxx:15
 TEveCaloLegoEditor.cxx:16
 TEveCaloLegoEditor.cxx:17
 TEveCaloLegoEditor.cxx:18
 TEveCaloLegoEditor.cxx:19
 TEveCaloLegoEditor.cxx:20
 TEveCaloLegoEditor.cxx:21
 TEveCaloLegoEditor.cxx:22
 TEveCaloLegoEditor.cxx:23
 TEveCaloLegoEditor.cxx:24
 TEveCaloLegoEditor.cxx:25
 TEveCaloLegoEditor.cxx:26
 TEveCaloLegoEditor.cxx:27
 TEveCaloLegoEditor.cxx:28
 TEveCaloLegoEditor.cxx:29
 TEveCaloLegoEditor.cxx:30
 TEveCaloLegoEditor.cxx:31
 TEveCaloLegoEditor.cxx:32
 TEveCaloLegoEditor.cxx:33
 TEveCaloLegoEditor.cxx:34
 TEveCaloLegoEditor.cxx:35
 TEveCaloLegoEditor.cxx:36
 TEveCaloLegoEditor.cxx:37
 TEveCaloLegoEditor.cxx:38
 TEveCaloLegoEditor.cxx:39
 TEveCaloLegoEditor.cxx:40
 TEveCaloLegoEditor.cxx:41
 TEveCaloLegoEditor.cxx:42
 TEveCaloLegoEditor.cxx:43
 TEveCaloLegoEditor.cxx:44
 TEveCaloLegoEditor.cxx:45
 TEveCaloLegoEditor.cxx:46
 TEveCaloLegoEditor.cxx:47
 TEveCaloLegoEditor.cxx:48
 TEveCaloLegoEditor.cxx:49
 TEveCaloLegoEditor.cxx:50
 TEveCaloLegoEditor.cxx:51
 TEveCaloLegoEditor.cxx:52
 TEveCaloLegoEditor.cxx:53
 TEveCaloLegoEditor.cxx:54
 TEveCaloLegoEditor.cxx:55
 TEveCaloLegoEditor.cxx:56
 TEveCaloLegoEditor.cxx:57
 TEveCaloLegoEditor.cxx:58
 TEveCaloLegoEditor.cxx:59
 TEveCaloLegoEditor.cxx:60
 TEveCaloLegoEditor.cxx:61
 TEveCaloLegoEditor.cxx:62
 TEveCaloLegoEditor.cxx:63
 TEveCaloLegoEditor.cxx:64
 TEveCaloLegoEditor.cxx:65
 TEveCaloLegoEditor.cxx:66
 TEveCaloLegoEditor.cxx:67
 TEveCaloLegoEditor.cxx:68
 TEveCaloLegoEditor.cxx:69
 TEveCaloLegoEditor.cxx:70
 TEveCaloLegoEditor.cxx:71
 TEveCaloLegoEditor.cxx:72
 TEveCaloLegoEditor.cxx:73
 TEveCaloLegoEditor.cxx:74
 TEveCaloLegoEditor.cxx:75
 TEveCaloLegoEditor.cxx:76
 TEveCaloLegoEditor.cxx:77
 TEveCaloLegoEditor.cxx:78
 TEveCaloLegoEditor.cxx:79
 TEveCaloLegoEditor.cxx:80
 TEveCaloLegoEditor.cxx:81
 TEveCaloLegoEditor.cxx:82
 TEveCaloLegoEditor.cxx:83
 TEveCaloLegoEditor.cxx:84
 TEveCaloLegoEditor.cxx:85
 TEveCaloLegoEditor.cxx:86
 TEveCaloLegoEditor.cxx:87
 TEveCaloLegoEditor.cxx:88
 TEveCaloLegoEditor.cxx:89
 TEveCaloLegoEditor.cxx:90
 TEveCaloLegoEditor.cxx:91
 TEveCaloLegoEditor.cxx:92
 TEveCaloLegoEditor.cxx:93
 TEveCaloLegoEditor.cxx:94
 TEveCaloLegoEditor.cxx:95
 TEveCaloLegoEditor.cxx:96
 TEveCaloLegoEditor.cxx:97
 TEveCaloLegoEditor.cxx:98
 TEveCaloLegoEditor.cxx:99
 TEveCaloLegoEditor.cxx:100
 TEveCaloLegoEditor.cxx:101
 TEveCaloLegoEditor.cxx:102
 TEveCaloLegoEditor.cxx:103
 TEveCaloLegoEditor.cxx:104
 TEveCaloLegoEditor.cxx:105
 TEveCaloLegoEditor.cxx:106
 TEveCaloLegoEditor.cxx:107
 TEveCaloLegoEditor.cxx:108
 TEveCaloLegoEditor.cxx:109
 TEveCaloLegoEditor.cxx:110
 TEveCaloLegoEditor.cxx:111
 TEveCaloLegoEditor.cxx:112
 TEveCaloLegoEditor.cxx:113
 TEveCaloLegoEditor.cxx:114
 TEveCaloLegoEditor.cxx:115
 TEveCaloLegoEditor.cxx:116
 TEveCaloLegoEditor.cxx:117
 TEveCaloLegoEditor.cxx:118
 TEveCaloLegoEditor.cxx:119
 TEveCaloLegoEditor.cxx:120
 TEveCaloLegoEditor.cxx:121
 TEveCaloLegoEditor.cxx:122
 TEveCaloLegoEditor.cxx:123
 TEveCaloLegoEditor.cxx:124
 TEveCaloLegoEditor.cxx:125
 TEveCaloLegoEditor.cxx:126
 TEveCaloLegoEditor.cxx:127
 TEveCaloLegoEditor.cxx:128
 TEveCaloLegoEditor.cxx:129
 TEveCaloLegoEditor.cxx:130
 TEveCaloLegoEditor.cxx:131
 TEveCaloLegoEditor.cxx:132
 TEveCaloLegoEditor.cxx:133
 TEveCaloLegoEditor.cxx:134
 TEveCaloLegoEditor.cxx:135
 TEveCaloLegoEditor.cxx:136
 TEveCaloLegoEditor.cxx:137
 TEveCaloLegoEditor.cxx:138
 TEveCaloLegoEditor.cxx:139
 TEveCaloLegoEditor.cxx:140
 TEveCaloLegoEditor.cxx:141
 TEveCaloLegoEditor.cxx:142
 TEveCaloLegoEditor.cxx:143
 TEveCaloLegoEditor.cxx:144
 TEveCaloLegoEditor.cxx:145
 TEveCaloLegoEditor.cxx:146
 TEveCaloLegoEditor.cxx:147
 TEveCaloLegoEditor.cxx:148
 TEveCaloLegoEditor.cxx:149
 TEveCaloLegoEditor.cxx:150
 TEveCaloLegoEditor.cxx:151
 TEveCaloLegoEditor.cxx:152
 TEveCaloLegoEditor.cxx:153
 TEveCaloLegoEditor.cxx:154
 TEveCaloLegoEditor.cxx:155
 TEveCaloLegoEditor.cxx:156
 TEveCaloLegoEditor.cxx:157
 TEveCaloLegoEditor.cxx:158
 TEveCaloLegoEditor.cxx:159
 TEveCaloLegoEditor.cxx:160
 TEveCaloLegoEditor.cxx:161
 TEveCaloLegoEditor.cxx:162
 TEveCaloLegoEditor.cxx:163
 TEveCaloLegoEditor.cxx:164
 TEveCaloLegoEditor.cxx:165
 TEveCaloLegoEditor.cxx:166
 TEveCaloLegoEditor.cxx:167
 TEveCaloLegoEditor.cxx:168
 TEveCaloLegoEditor.cxx:169
 TEveCaloLegoEditor.cxx:170
 TEveCaloLegoEditor.cxx:171
 TEveCaloLegoEditor.cxx:172
 TEveCaloLegoEditor.cxx:173
 TEveCaloLegoEditor.cxx:174
 TEveCaloLegoEditor.cxx:175
 TEveCaloLegoEditor.cxx:176
 TEveCaloLegoEditor.cxx:177
 TEveCaloLegoEditor.cxx:178
 TEveCaloLegoEditor.cxx:179
 TEveCaloLegoEditor.cxx:180
 TEveCaloLegoEditor.cxx:181
 TEveCaloLegoEditor.cxx:182
 TEveCaloLegoEditor.cxx:183
 TEveCaloLegoEditor.cxx:184
 TEveCaloLegoEditor.cxx:185
 TEveCaloLegoEditor.cxx:186
 TEveCaloLegoEditor.cxx:187
 TEveCaloLegoEditor.cxx:188
 TEveCaloLegoEditor.cxx:189
 TEveCaloLegoEditor.cxx:190
 TEveCaloLegoEditor.cxx:191
 TEveCaloLegoEditor.cxx:192
 TEveCaloLegoEditor.cxx:193
 TEveCaloLegoEditor.cxx:194
 TEveCaloLegoEditor.cxx:195
 TEveCaloLegoEditor.cxx:196
 TEveCaloLegoEditor.cxx:197
 TEveCaloLegoEditor.cxx:198
 TEveCaloLegoEditor.cxx:199
 TEveCaloLegoEditor.cxx:200
 TEveCaloLegoEditor.cxx:201
 TEveCaloLegoEditor.cxx:202
 TEveCaloLegoEditor.cxx:203
 TEveCaloLegoEditor.cxx:204
 TEveCaloLegoEditor.cxx:205
 TEveCaloLegoEditor.cxx:206
 TEveCaloLegoEditor.cxx:207
 TEveCaloLegoEditor.cxx:208
 TEveCaloLegoEditor.cxx:209
 TEveCaloLegoEditor.cxx:210
 TEveCaloLegoEditor.cxx:211
 TEveCaloLegoEditor.cxx:212
 TEveCaloLegoEditor.cxx:213
 TEveCaloLegoEditor.cxx:214
 TEveCaloLegoEditor.cxx:215
 TEveCaloLegoEditor.cxx:216
 TEveCaloLegoEditor.cxx:217
 TEveCaloLegoEditor.cxx:218
 TEveCaloLegoEditor.cxx:219
 TEveCaloLegoEditor.cxx:220
 TEveCaloLegoEditor.cxx:221
 TEveCaloLegoEditor.cxx:222
 TEveCaloLegoEditor.cxx:223
 TEveCaloLegoEditor.cxx:224
 TEveCaloLegoEditor.cxx:225
 TEveCaloLegoEditor.cxx:226
 TEveCaloLegoEditor.cxx:227
 TEveCaloLegoEditor.cxx:228
 TEveCaloLegoEditor.cxx:229
 TEveCaloLegoEditor.cxx:230
 TEveCaloLegoEditor.cxx:231
 TEveCaloLegoEditor.cxx:232
 TEveCaloLegoEditor.cxx:233
 TEveCaloLegoEditor.cxx:234
 TEveCaloLegoEditor.cxx:235
 TEveCaloLegoEditor.cxx:236
 TEveCaloLegoEditor.cxx:237
 TEveCaloLegoEditor.cxx:238
 TEveCaloLegoEditor.cxx:239
 TEveCaloLegoEditor.cxx:240
 TEveCaloLegoEditor.cxx:241
 TEveCaloLegoEditor.cxx:242
 TEveCaloLegoEditor.cxx:243
 TEveCaloLegoEditor.cxx:244
 TEveCaloLegoEditor.cxx:245
 TEveCaloLegoEditor.cxx:246
 TEveCaloLegoEditor.cxx:247
 TEveCaloLegoEditor.cxx:248
 TEveCaloLegoEditor.cxx:249
 TEveCaloLegoEditor.cxx:250
 TEveCaloLegoEditor.cxx:251
 TEveCaloLegoEditor.cxx:252
 TEveCaloLegoEditor.cxx:253
 TEveCaloLegoEditor.cxx:254
 TEveCaloLegoEditor.cxx:255
 TEveCaloLegoEditor.cxx:256
 TEveCaloLegoEditor.cxx:257
 TEveCaloLegoEditor.cxx:258
 TEveCaloLegoEditor.cxx:259
 TEveCaloLegoEditor.cxx:260
 TEveCaloLegoEditor.cxx:261
 TEveCaloLegoEditor.cxx:262
 TEveCaloLegoEditor.cxx:263
 TEveCaloLegoEditor.cxx:264
 TEveCaloLegoEditor.cxx:265
 TEveCaloLegoEditor.cxx:266
 TEveCaloLegoEditor.cxx:267
 TEveCaloLegoEditor.cxx:268
 TEveCaloLegoEditor.cxx:269
 TEveCaloLegoEditor.cxx:270
 TEveCaloLegoEditor.cxx:271
 TEveCaloLegoEditor.cxx:272
 TEveCaloLegoEditor.cxx:273
 TEveCaloLegoEditor.cxx:274
 TEveCaloLegoEditor.cxx:275
 TEveCaloLegoEditor.cxx:276
 TEveCaloLegoEditor.cxx:277
 TEveCaloLegoEditor.cxx:278
 TEveCaloLegoEditor.cxx:279
 TEveCaloLegoEditor.cxx:280
 TEveCaloLegoEditor.cxx:281
 TEveCaloLegoEditor.cxx:282
 TEveCaloLegoEditor.cxx:283
 TEveCaloLegoEditor.cxx:284
 TEveCaloLegoEditor.cxx:285
 TEveCaloLegoEditor.cxx:286
 TEveCaloLegoEditor.cxx:287
 TEveCaloLegoEditor.cxx:288
 TEveCaloLegoEditor.cxx:289
 TEveCaloLegoEditor.cxx:290
 TEveCaloLegoEditor.cxx:291
 TEveCaloLegoEditor.cxx:292
 TEveCaloLegoEditor.cxx:293
 TEveCaloLegoEditor.cxx:294
 TEveCaloLegoEditor.cxx:295
 TEveCaloLegoEditor.cxx:296
 TEveCaloLegoEditor.cxx:297