ROOT logo
// $Id$
// Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007

/**************************************************************************
 * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
 * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
 * full copyright notice.                                                 *
 **************************************************************************/

#include "AliEvePMDModuleEditor.h"
#include <EveDet/AliEvePMDModule.h>

#include <TVirtualPad.h>
#include <TH1F.h>

#include <TGLabel.h>
#include <TG3DLine.h>
#include <TGButton.h>

//==============================================================================
//==============================================================================
// AliEvePMDModuleEditor
//==============================================================================

//______________________________________________________________________________
//
// GUI editor for AliEvePMDModule.

ClassImp(AliEvePMDModuleEditor)

AliEvePMDModuleEditor::AliEvePMDModuleEditor(const TGWindow *p, Int_t width, Int_t height,
                                             UInt_t options, Pixel_t back) :
  TGedFrame(p, width, height, options | kVerticalFrame, back),
  fM(0),
  fInfoFrame(0),
  fInfoLabel0(0),
  fInfoLabel1(0),
  fInfoLabel2(0),
  fInfoLabel3(0),
  fInfoLabel4(0),
  fInfoLabel5(0)
{
  // Constructor.

  MakeTitle("AliEvePMDModule");

  CreateInfoFrame();
}

void AliEvePMDModuleEditor::CreateInfoFrame()
{
  // Create frame holding information.

  fInfoFrame = CreateEditorTabSubFrame("Info");

  TGCompositeFrame *title1 = new TGCompositeFrame(fInfoFrame, 145, 10,
						  kHorizontalFrame |
						  kLHintsExpandX   |
						  kFixedWidth      |
						  kOwnBackground);

  title1->AddFrame(new TGLabel(title1, "AliEvePMDModule Info"),
		   new TGLayoutHints(kLHintsLeft, 1, 1, 0, 0));
  title1->AddFrame(new TGHorizontal3DLine(title1),
		   new TGLayoutHints(kLHintsExpandX, 5, 5, 7, 7));
  fInfoFrame->AddFrame(title1, new TGLayoutHints(kLHintsTop, 0, 0, 2, 0));

  Int_t labelW = 67;

  fInfoLabel0 = new TGLabel(fInfoFrame);
  fInfoLabel0->SetTextJustify(kTextLeft);
  fInfoFrame->AddFrame(fInfoLabel0, new TGLayoutHints(kLHintsLeft|kLHintsExpandX,
					 8, 0, 2, 0));

  fInfoLabel1 = new TGLabel(fInfoFrame);
  fInfoLabel1->SetTextJustify(kTextLeft);
  fInfoFrame->AddFrame(fInfoLabel1, new TGLayoutHints(kLHintsLeft|kLHintsExpandX,
					 8, 0, 2, 0));

  fInfoLabel2 = new TGLabel(fInfoFrame);
  fInfoLabel2->SetTextJustify(kTextLeft);
  fInfoFrame->AddFrame(fInfoLabel2, new TGLayoutHints(kLHintsLeft|kLHintsExpandX,
					 8, 0, 2, 0));

  fInfoLabel3 = new TGLabel(fInfoFrame);
  fInfoLabel3->SetTextJustify(kTextLeft);
  fInfoFrame->AddFrame(fInfoLabel3, new TGLayoutHints(kLHintsLeft|kLHintsExpandX,
					 8, 0, 2, 0));

  fInfoLabel4 = new TGLabel(fInfoFrame);
  fInfoLabel4->SetTextJustify(kTextLeft);
  fInfoFrame->AddFrame(fInfoLabel4, new TGLayoutHints(kLHintsLeft|kLHintsExpandX,
					 8, 0, 2, 0));

  fInfoLabel5 = new TGLabel(fInfoFrame);
  fInfoLabel5->SetTextJustify(kTextLeft);
  fInfoFrame->AddFrame(fInfoLabel5, new TGLayoutHints(kLHintsLeft|kLHintsExpandX,
					 8, 0, 2, 0));


  {
    TGHorizontalFrame* f = new TGHorizontalFrame(fInfoFrame, 210, 20, kFixedWidth);

    TGHorizontalFrame* g = new TGHorizontalFrame(f, labelW, 0, kFixedWidth);
    TGLabel* l = new TGLabel(g, "Histos:");
    g->AddFrame(l, new TGLayoutHints(kLHintsLeft, 0,0,4,0));
    f->AddFrame(g);

    TGTextButton* b;

    b = new TGTextButton(f, "Show");
    f->AddFrame(b, new TGLayoutHints(kLHintsLeft|kLHintsExpandX, 1, 1, 0, 0));
    b->Connect("Clicked()", "AliEvePMDModuleEditor", this, "DisplayHistos()");

    fInfoFrame->AddFrame(f, new TGLayoutHints(kLHintsLeft, 0, 0, 0, 0));
  }
}

/******************************************************************************/

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

  fM = static_cast<AliEvePMDModule*>(obj);

  fInfoLabel0->SetText(Form("Cells hit per Module : %d", fM->GetNPads()));
  fInfoLabel1->SetText(Form("ADC       per Module : %d", fM->GetAdc()));
  fInfoLabel2->SetText(Form("Tot Cells for PRE    : %d", fM->GetPRETotPads()));
  fInfoLabel3->SetText(Form("Tot ADC   for PRE    : %d", fM->GetPRETotAdc()));
  fInfoLabel4->SetText(Form("Tot Cells for CPV    : %d", fM->GetCPVTotPads()));
  fInfoLabel5->SetText(Form("Tot ADC   for CPV    : %d", fM->GetCPVTotAdc()));
}

void AliEvePMDModuleEditor::DisplayHistos()
{
  // Slot for displaying histograms with module data.

  fM->GetHisto()->Draw();
  gPad->Modified();
  gPad->Update();
}
 AliEvePMDModuleEditor.cxx:1
 AliEvePMDModuleEditor.cxx:2
 AliEvePMDModuleEditor.cxx:3
 AliEvePMDModuleEditor.cxx:4
 AliEvePMDModuleEditor.cxx:5
 AliEvePMDModuleEditor.cxx:6
 AliEvePMDModuleEditor.cxx:7
 AliEvePMDModuleEditor.cxx:8
 AliEvePMDModuleEditor.cxx:9
 AliEvePMDModuleEditor.cxx:10
 AliEvePMDModuleEditor.cxx:11
 AliEvePMDModuleEditor.cxx:12
 AliEvePMDModuleEditor.cxx:13
 AliEvePMDModuleEditor.cxx:14
 AliEvePMDModuleEditor.cxx:15
 AliEvePMDModuleEditor.cxx:16
 AliEvePMDModuleEditor.cxx:17
 AliEvePMDModuleEditor.cxx:18
 AliEvePMDModuleEditor.cxx:19
 AliEvePMDModuleEditor.cxx:20
 AliEvePMDModuleEditor.cxx:21
 AliEvePMDModuleEditor.cxx:22
 AliEvePMDModuleEditor.cxx:23
 AliEvePMDModuleEditor.cxx:24
 AliEvePMDModuleEditor.cxx:25
 AliEvePMDModuleEditor.cxx:26
 AliEvePMDModuleEditor.cxx:27
 AliEvePMDModuleEditor.cxx:28
 AliEvePMDModuleEditor.cxx:29
 AliEvePMDModuleEditor.cxx:30
 AliEvePMDModuleEditor.cxx:31
 AliEvePMDModuleEditor.cxx:32
 AliEvePMDModuleEditor.cxx:33
 AliEvePMDModuleEditor.cxx:34
 AliEvePMDModuleEditor.cxx:35
 AliEvePMDModuleEditor.cxx:36
 AliEvePMDModuleEditor.cxx:37
 AliEvePMDModuleEditor.cxx:38
 AliEvePMDModuleEditor.cxx:39
 AliEvePMDModuleEditor.cxx:40
 AliEvePMDModuleEditor.cxx:41
 AliEvePMDModuleEditor.cxx:42
 AliEvePMDModuleEditor.cxx:43
 AliEvePMDModuleEditor.cxx:44
 AliEvePMDModuleEditor.cxx:45
 AliEvePMDModuleEditor.cxx:46
 AliEvePMDModuleEditor.cxx:47
 AliEvePMDModuleEditor.cxx:48
 AliEvePMDModuleEditor.cxx:49
 AliEvePMDModuleEditor.cxx:50
 AliEvePMDModuleEditor.cxx:51
 AliEvePMDModuleEditor.cxx:52
 AliEvePMDModuleEditor.cxx:53
 AliEvePMDModuleEditor.cxx:54
 AliEvePMDModuleEditor.cxx:55
 AliEvePMDModuleEditor.cxx:56
 AliEvePMDModuleEditor.cxx:57
 AliEvePMDModuleEditor.cxx:58
 AliEvePMDModuleEditor.cxx:59
 AliEvePMDModuleEditor.cxx:60
 AliEvePMDModuleEditor.cxx:61
 AliEvePMDModuleEditor.cxx:62
 AliEvePMDModuleEditor.cxx:63
 AliEvePMDModuleEditor.cxx:64
 AliEvePMDModuleEditor.cxx:65
 AliEvePMDModuleEditor.cxx:66
 AliEvePMDModuleEditor.cxx:67
 AliEvePMDModuleEditor.cxx:68
 AliEvePMDModuleEditor.cxx:69
 AliEvePMDModuleEditor.cxx:70
 AliEvePMDModuleEditor.cxx:71
 AliEvePMDModuleEditor.cxx:72
 AliEvePMDModuleEditor.cxx:73
 AliEvePMDModuleEditor.cxx:74
 AliEvePMDModuleEditor.cxx:75
 AliEvePMDModuleEditor.cxx:76
 AliEvePMDModuleEditor.cxx:77
 AliEvePMDModuleEditor.cxx:78
 AliEvePMDModuleEditor.cxx:79
 AliEvePMDModuleEditor.cxx:80
 AliEvePMDModuleEditor.cxx:81
 AliEvePMDModuleEditor.cxx:82
 AliEvePMDModuleEditor.cxx:83
 AliEvePMDModuleEditor.cxx:84
 AliEvePMDModuleEditor.cxx:85
 AliEvePMDModuleEditor.cxx:86
 AliEvePMDModuleEditor.cxx:87
 AliEvePMDModuleEditor.cxx:88
 AliEvePMDModuleEditor.cxx:89
 AliEvePMDModuleEditor.cxx:90
 AliEvePMDModuleEditor.cxx:91
 AliEvePMDModuleEditor.cxx:92
 AliEvePMDModuleEditor.cxx:93
 AliEvePMDModuleEditor.cxx:94
 AliEvePMDModuleEditor.cxx:95
 AliEvePMDModuleEditor.cxx:96
 AliEvePMDModuleEditor.cxx:97
 AliEvePMDModuleEditor.cxx:98
 AliEvePMDModuleEditor.cxx:99
 AliEvePMDModuleEditor.cxx:100
 AliEvePMDModuleEditor.cxx:101
 AliEvePMDModuleEditor.cxx:102
 AliEvePMDModuleEditor.cxx:103
 AliEvePMDModuleEditor.cxx:104
 AliEvePMDModuleEditor.cxx:105
 AliEvePMDModuleEditor.cxx:106
 AliEvePMDModuleEditor.cxx:107
 AliEvePMDModuleEditor.cxx:108
 AliEvePMDModuleEditor.cxx:109
 AliEvePMDModuleEditor.cxx:110
 AliEvePMDModuleEditor.cxx:111
 AliEvePMDModuleEditor.cxx:112
 AliEvePMDModuleEditor.cxx:113
 AliEvePMDModuleEditor.cxx:114
 AliEvePMDModuleEditor.cxx:115
 AliEvePMDModuleEditor.cxx:116
 AliEvePMDModuleEditor.cxx:117
 AliEvePMDModuleEditor.cxx:118
 AliEvePMDModuleEditor.cxx:119
 AliEvePMDModuleEditor.cxx:120
 AliEvePMDModuleEditor.cxx:121
 AliEvePMDModuleEditor.cxx:122
 AliEvePMDModuleEditor.cxx:123
 AliEvePMDModuleEditor.cxx:124
 AliEvePMDModuleEditor.cxx:125
 AliEvePMDModuleEditor.cxx:126
 AliEvePMDModuleEditor.cxx:127
 AliEvePMDModuleEditor.cxx:128
 AliEvePMDModuleEditor.cxx:129
 AliEvePMDModuleEditor.cxx:130
 AliEvePMDModuleEditor.cxx:131
 AliEvePMDModuleEditor.cxx:132
 AliEvePMDModuleEditor.cxx:133
 AliEvePMDModuleEditor.cxx:134
 AliEvePMDModuleEditor.cxx:135
 AliEvePMDModuleEditor.cxx:136
 AliEvePMDModuleEditor.cxx:137
 AliEvePMDModuleEditor.cxx:138
 AliEvePMDModuleEditor.cxx:139
 AliEvePMDModuleEditor.cxx:140
 AliEvePMDModuleEditor.cxx:141
 AliEvePMDModuleEditor.cxx:142