ROOT logo

#include <TGClient.h>
#include <TGSplitter.h>
#include <TGListTree.h>
#include <TGTextEntry.h>
#include <TGFrame.h>
#include <TGLabel.h>
#include <TRootEmbeddedCanvas.h>
#include <TCanvas.h>
#include <TPad.h>
#include <TVirtualPad.h>

#include "AliLog.h"
#include "AliTPCCalibQAChecker.h"
#include "AliTPCCalibViewerGUI.h"
#include "AliTPCCalibViewerGUItime.h"

#include "AliTPCCalibViewerGUIAlarms.h"


ClassImp(AliTPCCalibViewerGUIAlarms)

AliTPCCalibViewerGUIAlarms::AliTPCCalibViewerGUIAlarms(const TGWindow *p, UInt_t w, UInt_t h) :
  TGCompositeFrame(p,w,h),
  fCalibChecker(0x0),
  fAlarmTree(0x0),
  fMainCanvas(0x0),
  fTreeCanvas(0x0),
  fAlarmText(0x0),
  fCalibViewerGUI(0x0),
  fCalibViewerGUItime(0x0)
{
  //
  //
  //
  DrawGUI(p,w,h);
}
//______________________________________________________________________________
AliTPCCalibViewerGUIAlarms::~AliTPCCalibViewerGUIAlarms()
{
  //
  //
  //
//   gClient->FreePicture("interrupt.xpm");
}
//______________________________________________________________________________
void AliTPCCalibViewerGUIAlarms::DrawGUI(const TGWindow */*p*/, UInt_t w, UInt_t h)
{
  //
  // draw the GUI
  //

  //GUI elements
  SetCleanup(kDeepCleanup);
  
  // *****************************************************************************
  // ************************* content of this MainFrame *************************
  // *****************************************************************************
  // top level container with horizontal layout
  
  TGCompositeFrame *contLCR = new TGCompositeFrame(this, w, h, kHorizontalFrame | kFixedWidth | kFixedHeight);
  AddFrame(contLCR, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 0, 0, 0, 0));
  
  // ***********************************************************************
  // ************************* content of contLCR *************************
  // ***********************************************************************
  // left container
  TGCompositeFrame *contLeft = new TGCompositeFrame(contLCR, 200, 200, kVerticalFrame | kFixedWidth | kFitHeight);
  contLCR->AddFrame(contLeft, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandY, 5, 3, 3, 3));
  
   // left vertical splitter
  TGVSplitter *splitLeft = new TGVSplitter(contLCR);
  splitLeft->SetFrame(contLeft, kTRUE);
  contLCR->AddFrame(splitLeft, new TGLayoutHints(kLHintsLeft | kLHintsExpandY, 0, 0, 0, 0));
  
   // right container
  TGCompositeFrame *contRight = new TGCompositeFrame(contLCR, 150, 200, kVerticalFrame | kFixedWidth | kFitHeight);
  contLCR->AddFrame(contRight, new TGLayoutHints(kLHintsTop | kLHintsRight | kLHintsExpandY, 3, 5, 3, 3));
  
   // center container
  TGCompositeFrame *contCenter = new TGCompositeFrame(contLCR, 200, 200, kVerticalFrame | kFixedWidth | kFitHeight);
  contLCR->AddFrame(contCenter, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 0, 0, 0, 0));
  
   // right vertical splitter
  TGVSplitter *splitRight = new TGVSplitter(contLCR);
  splitRight->SetFrame(contRight, kFALSE);
  contLCR->AddFrame(splitRight, new TGLayoutHints(kLHintsLeft | kLHintsExpandY, 0, 0, 0, 0));

  // ***********************************************************************
  // *******************     left container         ************************
  // ***********************************************************************

  //Alarm list view
  TGCanvas *treeCanvas = new TGCanvas(contLeft, 200, 200);
  fAlarmTree = new TGListTree(treeCanvas, kHorizontalFrame);
  contLeft->AddFrame(treeCanvas,new TGLayoutHints(kLHintsExpandX | kLHintsExpandY | kLHintsTop));
  fAlarmTree->Connect("DoubleClicked(TGListTreeItem*,Int_t)","AliTPCCalibViewerGUIAlarms",this,
                     "OnDoubleClick(TGListTreeItem*,Int_t)");
  fAlarmTree->Connect("Clicked(TGListTreeItem*,Int_t)","AliTPCCalibViewerGUIAlarms",this,
                     "OnClick(TGListTreeItem*,Int_t)");
  fAlarmTree->SetColorMode(TGListTree::kColorBox);

  // ***********************************************************************
  // *******************       center container     ************************
  // ***********************************************************************

  // top container
  TGCompositeFrame *contCenterTop = new TGCompositeFrame(contCenter, 200, 200, kVerticalFrame | kFixedWidth | kFitHeight);
  contCenter->AddFrame(contCenterTop, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 0, 0, 0, 0));
  
  // bottom container
  TGCompositeFrame *contCenterBottom = new TGCompositeFrame(contCenter, 200, 100, kVerticalFrame | kFixedWidth | kFixedHeight);
  contCenter->AddFrame(contCenterBottom, new TGLayoutHints( kLHintsExpandX, 0, 0, 0, 0));
  
  //--------------
  // canvas on top
  TRootEmbeddedCanvas *cEmbed = new TRootEmbeddedCanvas("Alarm_Canvas", contCenterTop, 200, 200, kFitWidth | kFitHeight);
  contCenterTop->AddFrame(cEmbed, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 0, 0, 0, 0));
//   cEmbed->GetCanvas()->Connect("ProcessedEvent(Int_t, Int_t, Int_t, TObject*)", "AliTPCCalibViewerGUIAlarms", this, "MouseMove(Int_t, Int_t, Int_t, TObject*)");
  cEmbed->GetCanvas()->SetToolTipText("Alarm histograms are displayed in this region.");
  fMainCanvas=cEmbed->GetCanvas();
  //--------------
  // alarm text on bottom
  // canvas
  TGCanvas *textCanvas = new TGCanvas(contCenterBottom, 200, 200);
  fAlarmText = new TGLabel(textCanvas->GetViewPort(),"Alarm descriptions can be found here");
  textCanvas->SetContainer(fAlarmText);
  contCenterBottom->AddFrame(textCanvas,new TGLayoutHints(kLHintsExpandX | kLHintsExpandY | kLHintsTop));
  
//   textCanvas->AddFrame(fAlarmText,new TGLayoutHints(kLHintsNormal | kLHintsExpandX, 0, 0, 0, 0));
  
  
  // ***********************************************************************
  // *******************       right container      ************************
  // ***********************************************************************
  
  TGGroupFrame *grpInfo = new TGGroupFrame(contRight, "Alarm Info", kVerticalFrame | kFitWidth | kFitHeight);
  contRight->AddFrame(grpInfo, new TGLayoutHints(kLHintsExpandX, 0, 0, 0, 0));
  
  
  SetWindowName("AliTPCCalibViewer GUI - Alarms");
  MapSubwindows();
  Resize(GetDefaultSize());
  MapWindow();
  
}
//______________________________________________________________________________
void AliTPCCalibViewerGUIAlarms::AddSubItems(AliTPCCalibQAChecker *checker, TGListTreeItem *item)
{
  //
  //
  //
  TGListTreeItem *newitem=fAlarmTree->AddItem(item,checker->GetName(),(void*)checker);
  newitem->SetColor(checker->GetQualityColor());
  newitem->SetTipText(checker->GetTitle());
  if (checker->HasSubCheckers()) {
    AliTPCCalibQAChecker *ch=0x0;
    while ( (ch=checker->NextSubChecker()) ) AddSubItems(ch,newitem);
  } else {
    newitem->SetPictures(gClient->GetPicture("interrupt.xpm"),gClient->GetPicture("interrupt.xpm"));
  }
  
}
//______________________________________________________________________________
void AliTPCCalibViewerGUIAlarms::InitBrowser()
{
  //
  //
  //
  if (!fAlarmTree){
    AliError("Alarms not set!");
    return;
  }
  AddSubItems(fCalibChecker,0);
  fAlarmTree->ClearViewPort();
}
//______________________________________________________________________________
void AliTPCCalibViewerGUIAlarms::UpdateSubItem(TGListTreeItem *item)
{
  //
  //
  //

//   printf("name: %s\n", item->GetText());
  AliTPCCalibQAChecker *checker=dynamic_cast<AliTPCCalibQAChecker*>((TObject*)item->GetUserData());
  if (checker){
    item->SetColor(checker->GetQualityColor());
  } else {
    item->ClearColor();
  }
  TGListTreeItem *nextItem=0x0;
  if ( (nextItem=item->GetFirstChild())  ) UpdateSubItem(nextItem);
  if ( (nextItem=item->GetNextSibling()) ) UpdateSubItem(nextItem);
}
//______________________________________________________________________________
void AliTPCCalibViewerGUIAlarms::UpdateBrowser()
{
  //
  //
  //
  UpdateSubItem(fAlarmTree->GetFirstItem());
  fAlarmTree->ClearViewPort();
}
//______________________________________________________________________________
void AliTPCCalibViewerGUIAlarms::ResetBrowser()
{
  //
  //
  //
  if (!fAlarmTree->GetFirstItem()) return;
  fAlarmTree->DeleteChildren(fAlarmTree->GetFirstItem());
  fAlarmTree->DeleteItem(fAlarmTree->GetFirstItem());
  fAlarmTree->ClearViewPort();
}
//______________________________________________________________________________
void AliTPCCalibViewerGUIAlarms::OpenSubItems(TGListTreeItem *item)
{
  //
  //
  //
  fAlarmTree->OpenItem(item);
  TGListTreeItem *nextItem=0x0;
  if ( (nextItem=item->GetFirstChild())  ) OpenSubItems(nextItem);
  if ( (nextItem=item->GetNextSibling()) ) OpenSubItems(nextItem);
}
//______________________________________________________________________________
void AliTPCCalibViewerGUIAlarms::OpenAllItems()
{
  //
  //
  //
  if (!fAlarmTree->GetFirstItem()) return;
  OpenSubItems(fAlarmTree->GetFirstItem());
  fAlarmTree->ClearViewPort();
}
//______________________________________________________________________________
void AliTPCCalibViewerGUIAlarms::OnDoubleClick(TGListTreeItem* item, Int_t /*id*/)
{
  //
  //
  //
//   printf("DoubleClicked");
  if (!fCalibViewerGUI && !fCalibViewerGUItime) return;
  TGTextEntry *draw=0x0;
  TGTextEntry *cuts=0x0;
  TGTextEntry *opt=0x0;
  if (fCalibViewerGUI){
    draw=fCalibViewerGUI->GetDrawEntry();
    cuts=fCalibViewerGUI->GetCutsEntry();
    opt=fCalibViewerGUI->GetDrawOptEntry();
  } else if (fCalibViewerGUItime){
    draw=fCalibViewerGUItime->GetDrawEntry();
    cuts=fCalibViewerGUItime->GetCutsEntry();
    opt=fCalibViewerGUItime->GetDrawOptEntry();
  }
  draw->SetText(((AliTPCCalibQAChecker*)item->GetUserData())->GetDrawString());
  cuts->SetText(((AliTPCCalibQAChecker*)item->GetUserData())->GetCutsString());
  opt->SetText(((AliTPCCalibQAChecker*)item->GetUserData())->GetDrawOptString());
}
//______________________________________________________________________________
void AliTPCCalibViewerGUIAlarms::OnClick(TGListTreeItem* item, Int_t /*id*/)
{
  //
  //
  //
//   printf("Clicked");
  
  TVirtualPad *pad=gPad;
  fMainCanvas->cd();
  fMainCanvas->Clear();
  AliTPCCalibQAChecker *checker=(AliTPCCalibQAChecker*)item->GetUserData();
  checker->Draw("nobc");
  TString text(checker->GetQualityDescription());
  if (text.IsNull()) fAlarmText->SetText("No description available!");
  else fAlarmText->SetText(text.Data());
  gPad->Modified();
  gPad->Update();
  if (pad) pad->cd();
  
}
//______________________________________________________________________________
AliTPCCalibViewerGUIAlarms* AliTPCCalibViewerGUIAlarms::Show()
{
  //
  //
  //
  TGMainFrame* frmMain = new TGMainFrame(gClient->GetRoot(), 1000, 600);
  frmMain->SetWindowName("AliTPCCalibViewer GUI");
  frmMain->SetCleanup(kDeepCleanup);

  AliTPCCalibViewerGUIAlarms* calibViewer1 = new AliTPCCalibViewerGUIAlarms(frmMain, 1000, 600);
  frmMain->AddFrame(calibViewer1, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 0, 0, 0, 0));

  frmMain->MapSubwindows();
  frmMain->Resize();
  frmMain->MapWindow();

  return calibViewer1;
}
//______________________________________________________________________________

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