LCOV - code coverage report
Current view: top level - MUON/MUONevaluation - AliMUONTriggerGUIdimap.cxx (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 276 0.4 %
Date: 2016-06-14 17:26:59 Functions: 1 16 6.2 %

          Line data    Source code
       1             : /**************************************************************************
       2             :  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       3             :  *                                                                        *
       4             :  * Author: The ALICE Off-line Project.                                    *
       5             :  * Contributors are mentioned in the code where appropriate.              *
       6             :  *                                                                        *
       7             :  * Permission to use, copy, modify and distribute this software and its   *
       8             :  * documentation strictly for non-commercial purposes is hereby granted   *
       9             :  * without fee, provided that the above copyright notice appears in all   *
      10             :  * copies and that both the copyright notice and this permission notice   *
      11             :  * appear in the supporting documentation. The authors make no claims     *
      12             :  * about the suitability of this software for any purpose. It is          *
      13             :  * provided "as is" without express or implied warranty.                  *
      14             :  **************************************************************************/
      15             : 
      16             : // $Id$
      17             : 
      18             : //-----------------------------------------------------------------------------
      19             : /// \class AliMUONTriggerGUIdimap
      20             : ///
      21             : /// The digit maps of the four trigger chambers, all boards
      22             : ///
      23             : /// \author Bogdan Vulpescu, LPC Clermont-Ferrand
      24             : //-----------------------------------------------------------------------------
      25             : 
      26             : #include <TCanvas.h>
      27             : #include <TGButton.h>
      28             : #include <TGTab.h>
      29             : #include <TRootEmbeddedCanvas.h>
      30             : #include <TBox.h>
      31             : #include <TPave.h>
      32             : #include <TPaveText.h>
      33             : #include <TStyle.h>
      34             : #include <TObjArray.h>
      35             : 
      36             : #include "AliLoader.h"
      37             : #include "AliRunLoader.h"
      38             : 
      39             : #include "AliMUONVDigit.h"
      40             : #include "AliMpSegmentation.h"
      41             : #include "AliMpVSegmentation.h"
      42             : #include "AliMUONGeometryTransformer.h"
      43             : #include "AliMUONMCDataInterface.h"
      44             : 
      45             : #include "AliMUONTriggerGUIboard.h"
      46             : #include "AliMUONTriggerGUIdimap.h"
      47             : 
      48             : #include "AliMUONDigitStoreV1.h"
      49             : 
      50             : #include <cstdio>
      51             : 
      52             : /// \cond CLASSIMP
      53          16 : ClassImp(AliMUONTriggerGUIdimap)
      54             : /// \endcond
      55             : 
      56             : //__________________________________________________________________________
      57             : AliMUONTriggerGUIdimap::AliMUONTriggerGUIdimap(TObjArray *boards, const TGWindow *p, const TGWindow *main, UInt_t w, UInt_t h)
      58           0 :   : TGFrame(0),
      59           0 :     fMain(0),
      60           0 :     fLoader(0),
      61           0 :     fMCDataInterface(0),
      62           0 :     fRawDigitStore(0),
      63           0 :     fBoards(0),
      64           0 :     fIsOn(0)
      65           0 : {
      66             :   /// frame constructor
      67             : 
      68           0 :   fIsOn   = kTRUE;
      69           0 :   fBoards = boards;
      70             : 
      71           0 :   gStyle->SetPadLeftMargin(0.05);
      72           0 :   gStyle->SetPadRightMargin(0.05);
      73           0 :   gStyle->SetPadTopMargin(0.05);
      74           0 :   gStyle->SetPadBottomMargin(0.05);
      75             : 
      76           0 :   gStyle->SetOptDate(0);
      77           0 :   gStyle->SetOptTitle(0);
      78           0 :   gStyle->SetOptStat(0);
      79             : 
      80           0 :   fMain = new TGTransientFrame(p, main, w, h, kVerticalFrame);
      81           0 :   fMain->Connect("CloseWindow()", "AliMUONTriggerGUIdimap", this, "DoClose()");
      82           0 :   fMain->DontCallClose(); // to avoid double deletions.
      83             :   
      84             :   // use hierarchical cleaning
      85           0 :   fMain->SetCleanup(kDeepCleanup);
      86             : 
      87           0 :   TGHorizontalFrame *hframe = new TGHorizontalFrame(fMain, 60, 20, kFixedWidth);
      88             : 
      89           0 :   TGTextButton *closeButton = new TGTextButton(hframe, "Close", 1);
      90           0 :   closeButton->Connect("Clicked()", "AliMUONTriggerGUIdimap", this, "DoClose()");
      91             : 
      92           0 :   hframe->AddFrame(closeButton, 
      93           0 :                    new TGLayoutHints(kLHintsTop | 
      94             :                                      kLHintsLeft,
      95             :                                      2, 2, 2, 2)
      96             :                    );
      97             : 
      98           0 :   hframe->Resize(150, closeButton->GetDefaultHeight());
      99             : 
     100           0 :   TGTextButton *updateButton = new TGTextButton(hframe, "Update", 2);
     101           0 :   updateButton->Connect("Clicked()", "AliMUONTriggerGUIdimap", this, "DoUpdate()");
     102           0 :   updateButton->SetToolTipText("Read the digits for the current event");
     103             : 
     104           0 :   hframe->AddFrame(updateButton, 
     105           0 :                    new TGLayoutHints(kLHintsTop | 
     106             :                                      kLHintsLeft,
     107             :                                      2, 2, 2, 2)
     108             :                    );
     109             : 
     110           0 :   hframe->Resize(150, updateButton->GetDefaultHeight());
     111             :   /*
     112             :   TGTextButton *resetButton = new TGTextButton(hframe, "Reset", 3);
     113             :   resetButton->Connect("Clicked()", "AliMUONTriggerGUIdimap", this, "DoReset()");
     114             :   resetButton->SetToolTipText("Redraw unselected boards");
     115             : 
     116             :   hframe->AddFrame(resetButton, 
     117             :                    new TGLayoutHints(kLHintsTop | 
     118             :                                      kLHintsLeft,
     119             :                                      2, 2, 2, 2)
     120             :                    );
     121             : 
     122             :   hframe->Resize(150, resetButton->GetDefaultHeight());
     123             :   */
     124           0 :   fMain->AddFrame(hframe, 
     125           0 :                   new TGLayoutHints(kLHintsBottom | 
     126             :                                     kLHintsLeft, 
     127             :                                     2, 2, 2, 2)
     128             :                   );
     129             :   
     130           0 :   TGTab *tab = new TGTab(fMain, 300, 300);
     131             :   //tab->Connect("Selected(Int_t)", "AliMUONTriggerGUIdimap", this, "DoTab(Int_t)");
     132             : 
     133             :   // Tabs for MT11, MT12, MT21, MT22
     134           0 :   TGLayoutHints *lot = new TGLayoutHints(kLHintsTop | 
     135             :                                          kLHintsLeft | 
     136             :                                          kLHintsExpandX |
     137             :                                          kLHintsExpandY, 
     138             :                                          5, 5, 5, 5);
     139             :   
     140             :   TGCompositeFrame *tf = 0;
     141             : 
     142             :   // Tab for MT11
     143           0 :   tf = tab->AddTab("MT11");
     144             : 
     145           0 :   TGCompositeFrame *cf1 = new TGCompositeFrame(tf, 60, 60, kHorizontalFrame);
     146           0 :   fEc[0] = new TRootEmbeddedCanvas("ec1", cf1, 500, 500);
     147           0 :   cf1->AddFrame(fEc[0], lot);
     148             : 
     149           0 :   tf->AddFrame(cf1, lot);
     150           0 :   fEc[0]->GetCanvas()->SetBorderMode(0);
     151           0 :   fEc[0]->GetCanvas()->SetBit(kNoContextMenu);
     152             :   
     153             :   // Tab for MT12
     154           0 :   tf = tab->AddTab("MT12");
     155             : 
     156           0 :   TGCompositeFrame *cf2 = new TGCompositeFrame(tf, 60, 60, kHorizontalFrame);
     157           0 :   fEc[1] = new TRootEmbeddedCanvas("ec2", cf2, 500, 500);
     158           0 :   cf2->AddFrame(fEc[1], lot);
     159             : 
     160           0 :   tf->AddFrame(cf2, lot);
     161           0 :   fEc[1]->GetCanvas()->SetBorderMode(0);
     162           0 :   fEc[1]->GetCanvas()->SetBit(kNoContextMenu);
     163             :   
     164             :   // Tab for MT21
     165           0 :   tf = tab->AddTab("MT21");
     166             : 
     167           0 :   TGCompositeFrame *cf3 = new TGCompositeFrame(tf, 60, 60, kHorizontalFrame);
     168           0 :   fEc[2] = new TRootEmbeddedCanvas("ec3", cf3, 500, 500);
     169           0 :   cf3->AddFrame(fEc[2], lot);
     170             : 
     171           0 :   tf->AddFrame(cf3, lot);
     172           0 :   fEc[2]->GetCanvas()->SetBorderMode(0);
     173           0 :   fEc[2]->GetCanvas()->SetBit(kNoContextMenu);
     174             :   
     175             :   // Tab for MT22
     176           0 :   tf = tab->AddTab("MT22");
     177             : 
     178           0 :   TGCompositeFrame *cf4 = new TGCompositeFrame(tf, 60, 60, kHorizontalFrame);
     179           0 :   fEc[3] = new TRootEmbeddedCanvas("ec4", cf4, 500, 500);
     180           0 :   cf4->AddFrame(fEc[3], lot);
     181             : 
     182           0 :   tf->AddFrame(cf4, lot);
     183           0 :   fEc[3]->GetCanvas()->SetBorderMode(0);
     184           0 :   fEc[3]->GetCanvas()->SetBit(kNoContextMenu);
     185             :   
     186           0 :   fMain->AddFrame(tab, 
     187           0 :                   new TGLayoutHints(kLHintsBottom | 
     188             :                                     kLHintsExpandX |
     189             :                                     kLHintsExpandY, 
     190             :                                     2, 2, 2, 2)
     191             :                   );
     192             :   
     193           0 :   fMain->MapSubwindows();
     194           0 :   fMain->Resize();
     195             :   
     196           0 :   fMain->CenterOnParent();
     197             :   
     198           0 :   fMain->SetWindowName("Chambers digit maps");
     199             :   
     200           0 :   fMain->MapWindow();
     201             : 
     202           0 : }
     203             : 
     204             : //__________________________________________________________________________
     205           0 : AliMUONTriggerGUIdimap::~AliMUONTriggerGUIdimap()
     206           0 : {
     207             :   /// destructor
     208             : 
     209           0 :   for (Int_t it = 0; it < kNMT; it++) {
     210           0 :     for (Int_t ib = 0; ib < kNBoards; ib++) {
     211           0 :       delete fPaveBoard[it][ib];
     212             :     }
     213             :   }
     214             : 
     215           0 :   fMain->DeleteWindow();
     216             : 
     217           0 : }
     218             : 
     219             : //__________________________________________________________________________
     220             : void AliMUONTriggerGUIdimap::DrawAllMaps()
     221             : {
     222             :   /// draw maps 
     223             : 
     224           0 :   if (fLoader == 0x0) {
     225             :     //return;
     226             :   }
     227           0 :   if (fMCDataInterface == 0x0) {
     228             :     //return;
     229             :   }
     230             : 
     231           0 :   DrawMaps(11);
     232           0 :   DrawMaps(12);
     233           0 :   DrawMaps(13);
     234           0 :   DrawMaps(14);
     235             : 
     236           0 : }
     237             : 
     238             : //__________________________________________________________________________
     239             : void AliMUONTriggerGUIdimap::DrawMaps(Int_t chamber)
     240             : {
     241             :   /// draw the digits map for chamber-
     242             : 
     243             :   Bool_t drawDigits = kTRUE;
     244             :   Bool_t drawDigitsRaw = kTRUE;
     245           0 :   if (fLoader == 0x0) {
     246             :     drawDigits = kFALSE;
     247           0 :   }
     248           0 :   if (fRawDigitStore == 0x0) {
     249             :     drawDigitsRaw = kFALSE;
     250           0 :   }
     251             :   
     252             :   AliMUONTriggerGUIboard *board;
     253             : 
     254           0 :   TCanvas *canvas = fEc[chamber-11]->GetCanvas();
     255           0 :   canvas->cd();
     256           0 :   canvas->Clear();
     257             : 
     258             :   TPaveText *label;
     259             :   TBox *boxd;
     260             : 
     261           0 :   Char_t cln[4]; // must be 4 long - room for terminating '\0'
     262             :   Int_t detElemId, cathode, ix, iy, charge, color;
     263             :   Int_t holdS, holdL, holdC;
     264             :   Float_t xCenter, yCenter, xWidth, yWidth, holdXC, holdYC;
     265             :   Float_t xMin, xMax, yMin, yMax;
     266             :   Float_t ptx1, ptx2, pty1, pty2;
     267             :   Float_t xpmin, xpmax, ypmin, ypmax;
     268           0 :   Float_t xg1, xg2, yg1, yg2, zg1;
     269             :     
     270             :   Float_t frameXmax = 0., frameYmax = 0.;
     271             : 
     272           0 :   switch(chamber) {
     273             :   case 11:
     274             :     frameXmax = 257.0;
     275             :     frameYmax = 306.6;
     276           0 :     break;
     277             :   case 12:
     278             :     frameXmax = 259.7;
     279             :     frameYmax = 309.9;
     280           0 :     break;
     281             :   case 13:
     282             :     frameXmax = 273.0;
     283             :     frameYmax = 325.7;
     284           0 :     break;
     285             :   case 14:
     286             :     frameXmax = 275.7;
     287             :     frameYmax = 329.0;
     288           0 :     break;
     289             :   }
     290             : 
     291           0 :   canvas->Range(
     292           0 :                 -(1.15*frameXmax),
     293           0 :                 -(1.15*frameYmax),
     294             :                 +(1.15*frameXmax),
     295             :                 +(1.15*frameYmax)
     296             :                 );
     297             : 
     298             :   // draw the boards
     299             :   
     300           0 :   for (Int_t ib = 0; ib < kNBoards; ib++) {
     301             :     
     302           0 :     board = (AliMUONTriggerGUIboard*)fBoards->At(ib);
     303             : 
     304           0 :     holdS = board->GetSide();
     305           0 :     holdC = board->GetCol();
     306           0 :     holdL = board->GetLine();
     307             : 
     308           0 :     xCenter = board->GetXCenter(chamber-11);
     309           0 :     yCenter = board->GetYCenter(chamber-11);
     310           0 :     xWidth  = board->GetXWidth(chamber-11);
     311           0 :     yWidth  = board->GetYWidth(chamber-11);
     312             : 
     313             :     holdXC = xCenter;
     314             :     holdYC = yCenter;
     315             : 
     316           0 :     xMin = xCenter - xWidth/2;
     317           0 :     xMax = xCenter + xWidth/2;
     318           0 :     yMin = yCenter - yWidth/2;
     319           0 :     yMax = yCenter + yWidth/2;
     320             :     
     321           0 :     fPaveBoard[chamber-11][ib] = new TPave(xMin,yMin,xMax,yMax,1);
     322           0 :     fPaveBoard[chamber-11][ib]->SetBit(kCannotPick);
     323           0 :     fPaveBoard[chamber-11][ib]->SetFillStyle(0);
     324           0 :     fPaveBoard[chamber-11][ib]->Draw();
     325             : 
     326             :     Float_t lWidth = 12.0;
     327             : 
     328           0 :     if (holdL == 9) {
     329             : 
     330           0 :       snprintf(cln,4,"C%1d",holdC);
     331             : 
     332           0 :       ptx1 = holdXC - lWidth;
     333           0 :       ptx2 = holdXC + lWidth;
     334           0 :       pty1 = +1.065*frameYmax - lWidth;
     335           0 :       pty2 = +1.065*frameYmax + lWidth;
     336             : 
     337           0 :       label = new TPaveText(ptx1,pty1,ptx2,pty2,cln);
     338           0 :       label->AddText(cln);
     339           0 :       label->SetBorderSize(0);
     340           0 :       label->SetBit(kCannotPick);
     341           0 :       label->Draw();
     342           0 :     }
     343           0 :     if (holdL == 1) {
     344             : 
     345           0 :       snprintf(cln,4,"C%1d",holdC);
     346             : 
     347           0 :       ptx1 = holdXC - lWidth;
     348           0 :       ptx2 = holdXC + lWidth;
     349           0 :       pty1 = -1.065*frameYmax - lWidth;
     350           0 :       pty2 = -1.065*frameYmax + lWidth;
     351             : 
     352           0 :       label = new TPaveText(ptx1,pty1,ptx2,pty2,cln);
     353           0 :       label->AddText(cln);
     354           0 :       label->SetBorderSize(0);
     355           0 :       label->SetBit(kCannotPick);
     356           0 :       label->Draw();
     357           0 :     }
     358           0 :     if (holdS == 0 && holdC == 7) {
     359             : 
     360           0 :       snprintf(cln,4,"L%1d",holdL);
     361             : 
     362           0 :       ptx1 = -1.07*frameXmax - lWidth;
     363           0 :       ptx2 = -1.07*frameXmax + lWidth;
     364           0 :       pty1 = holdYC - lWidth;
     365           0 :       pty2 = holdYC + lWidth;
     366             : 
     367           0 :       label = new TPaveText(ptx1,pty1,ptx2,pty2,cln);
     368           0 :       label->AddText(cln);
     369           0 :       label->SetBorderSize(0);
     370           0 :       label->SetBit(kCannotPick);
     371           0 :       label->Draw();
     372           0 :     }
     373           0 :     if (holdS == 1 && holdC == 7) {
     374             : 
     375           0 :       snprintf(cln,4,"L%1d",holdL);
     376             : 
     377           0 :       ptx1 = +1.07*frameXmax - lWidth;
     378           0 :       ptx2 = +1.07*frameXmax + lWidth;
     379           0 :       pty1 = holdYC - lWidth;
     380           0 :       pty2 = holdYC + lWidth;
     381             : 
     382           0 :       label = new TPaveText(ptx1,pty1,ptx2,pty2,cln);
     383           0 :       label->AddText(cln);
     384           0 :       label->SetBorderSize(0);
     385           0 :       label->SetBit(kCannotPick);
     386           0 :       label->Draw();
     387           0 :    }
     388             :     
     389             :   }
     390             : 
     391             :   // draw digits set from the board GUI
     392             : 
     393             :   Int_t imt = chamber -11;
     394             :   Int_t nStripX, nStripY;
     395             :   TBox *box;
     396           0 :   for (Int_t ib = 0; ib < kNBoards; ib++) {
     397             : 
     398           0 :     board = (AliMUONTriggerGUIboard*)fBoards->At(ib);
     399             : 
     400           0 :     xCenter = board->GetXCenter(imt);
     401           0 :     yCenter = board->GetYCenter(imt);
     402             : 
     403           0 :     nStripX = board->GetXSiy2() - board->GetXSiy1() + 1;
     404           0 :     nStripY = board->GetYSix2() - board->GetYSix1() + 1 ;
     405             : 
     406           0 :     for (Int_t is = 0; is < nStripX; is++) {
     407             : 
     408           0 :       if (board->GetXDig(imt,is) == 0) continue;
     409             : 
     410           0 :       box = board->GetXDigBox(imt,is);
     411             : 
     412           0 :       xpmin = box->GetX1();
     413           0 :       xpmax = box->GetX2();
     414           0 :       ypmin = box->GetY1();
     415           0 :       ypmax = box->GetY2();
     416             : 
     417           0 :       xpmin += xCenter;
     418           0 :       xpmax += xCenter;
     419           0 :       ypmin += yCenter;
     420           0 :       ypmax += yCenter;
     421             : 
     422           0 :       box->DrawBox(xpmin,ypmin,xpmax,ypmax);
     423             : 
     424           0 :     }
     425             : 
     426           0 :     for (Int_t is = 0; is < nStripY; is++) {
     427             : 
     428           0 :       if (board->GetYDig(imt,is) == 0) continue;
     429             : 
     430           0 :       box = board->GetYDigBox(imt,is);
     431             : 
     432           0 :       xpmin = box->GetX1();
     433           0 :       xpmax = box->GetX2();
     434           0 :       ypmin = box->GetY1();
     435           0 :       ypmax = box->GetY2();
     436             : 
     437           0 :       xpmin += xCenter;
     438           0 :       xpmax += xCenter;
     439           0 :       ypmin += yCenter;
     440           0 :       ypmax += yCenter;
     441             : 
     442           0 :       box->DrawBox(xpmin,ypmin,xpmax,ypmax);
     443             : 
     444           0 :     }
     445             : 
     446             :   }
     447             :   
     448             :   // draw the digits from galice
     449             : 
     450           0 :   if (drawDigits || drawDigitsRaw) {
     451             : 
     452           0 :     AliMUONGeometryTransformer transformer;
     453           0 :     transformer.LoadGeometryData("transform.dat");
     454             :     
     455             :     AliMUONVDigitStore *digitStore = 0x0;
     456             :     
     457           0 :     if (drawDigits) {
     458           0 :       AliRunLoader *runLoader = fLoader->GetRunLoader();
     459           0 :       digitStore = fMCDataInterface->DigitStore(runLoader->GetEventNumber());
     460           0 :     }
     461           0 :     if (drawDigitsRaw) {
     462           0 :       digitStore = fRawDigitStore;
     463           0 :     }
     464             :     
     465           0 :     TIter next(digitStore->CreateIterator());
     466             :     AliMUONVDigit* mdig;
     467             :     
     468           0 :     while ( ( mdig = static_cast<AliMUONVDigit*>(next()) ) ) {
     469             : 
     470           0 :       cathode = mdig->Cathode()+1;
     471             :       
     472           0 :       ix=mdig->PadX();
     473           0 :       iy=mdig->PadY();
     474           0 :       detElemId=mdig->DetElemId();      
     475           0 :       charge = (Int_t)mdig->Charge();
     476           0 :       color  = 261+5*(charge-1);
     477           0 :       if (color > 282) color = 282;
     478             :       
     479           0 :       if (detElemId/100 != chamber) continue;
     480             :       
     481           0 :       const AliMpVSegmentation* seg2 = AliMpSegmentation::Instance()->GetMpSegmentation(detElemId,AliMp::GetCathodType(cathode-1));
     482             :       
     483           0 :       AliMpPad mpad = seg2->PadByIndices(ix,iy,kTRUE);
     484             :       
     485             :       // get the pad position and dimensions
     486           0 :       Float_t xlocal1 = mpad.GetPositionX();
     487           0 :       Float_t ylocal1 = mpad.GetPositionY();
     488           0 :       Float_t xlocal2 = mpad.GetDimensionX();
     489           0 :       Float_t ylocal2 = mpad.GetDimensionY();
     490             :       
     491           0 :       transformer.Local2Global(detElemId, xlocal1, ylocal1, 0, xg1, yg1, zg1);
     492             :       // (no transformation for pad dimensions)
     493             :       xg2 = xlocal2;
     494             :       yg2 = ylocal2;
     495             :       
     496             :       // transform in the monitor coordinate system
     497             :       // ALICE SC
     498           0 :       xpmin = +(xg1-xg2);
     499           0 :       xpmax = +(xg1+xg2);
     500           0 :       ypmin = -(yg2-yg1);
     501           0 :       ypmax = +(yg2+yg1);
     502             :       
     503           0 :       boxd = new TBox(xpmin,ypmin,xpmax,ypmax);
     504           0 :       boxd->SetBit(kCannotPick);
     505           0 :       boxd->SetFillStyle(1001);
     506           0 :       boxd->SetFillColor(2);
     507           0 :       boxd->Draw();
     508             :       
     509           0 :     }  // end digits loop
     510             :     
     511           0 :   }  // end draw digits
     512             :   
     513           0 :   canvas->Modified();
     514           0 :   canvas->Update();
     515             : 
     516           0 : }
     517             : 
     518             : //__________________________________________________________________________
     519             : void AliMUONTriggerGUIdimap::DoTab(Int_t id) const
     520             : {
     521             :   /// some action when chamber tab is selected...
     522             : 
     523             :   switch (id) {
     524             :   case 0:
     525             :     break;
     526             :   case 1:
     527             :     break;
     528             :   case 2:
     529             :     break;
     530             :   case 3:
     531             :     break;
     532             :   default:
     533             :     break;
     534             :   }
     535             : 
     536           0 : }
     537             : 
     538             : //__________________________________________________________________________
     539             : void AliMUONTriggerGUIdimap::DoClose()
     540             : {
     541             :   /// close the main frame
     542             : 
     543           0 :   fIsOn = kFALSE;
     544           0 :   CloseWindow();
     545             : 
     546           0 : }
     547             : 
     548             : //__________________________________________________________________________
     549             : void AliMUONTriggerGUIdimap::DoUpdate()
     550             : {
     551             :   /// update maps for another run/event
     552             : 
     553           0 :   for (Int_t it = 0; it < kNMT; it++) {
     554           0 :     for (Int_t ib = 0; ib < kNBoards; ib++) {
     555           0 :       delete fPaveBoard[it][ib];
     556             :     }
     557             :   }
     558             : 
     559           0 :   DrawMaps(11);
     560           0 :   DrawMaps(12);
     561           0 :   DrawMaps(13);
     562           0 :   DrawMaps(14);
     563             : 
     564             :   AliMUONTriggerGUIboard *board;
     565           0 :   for (Int_t ib = 0; ib < kNBoards; ib++) {
     566           0 :     board = (AliMUONTriggerGUIboard*)fBoards->At(ib);
     567           0 :     if (board->IsOpen()) SelectBoard(ib);
     568             :   }
     569             : 
     570           0 : }
     571             : 
     572             : //__________________________________________________________________________
     573             : void AliMUONTriggerGUIdimap::DoReset()
     574             : {
     575             :   /// draw unselected boards
     576             : 
     577           0 :   for (Int_t it = 0; it < kNMT; it++) {
     578             : 
     579           0 :     TCanvas *canvas = fEc[it]->GetCanvas();
     580           0 :     canvas->cd();
     581             :     
     582           0 :     for (Int_t ib = 0; ib < kNBoards; ib++) { 
     583           0 :       fPaveBoard[it][ib]->SetFillStyle(0);
     584             :     }
     585             : 
     586           0 :     canvas->Modified();
     587           0 :     canvas->Update();
     588             : 
     589             :   }
     590             : 
     591           0 : }
     592             : 
     593             : //__________________________________________________________________________
     594             : void AliMUONTriggerGUIdimap::SelectBoard(Int_t id)
     595             : {
     596             :   /// highlight on the map the open board
     597             : 
     598           0 :   for (Int_t it = 0; it < kNMT; it++) {
     599             : 
     600           0 :     TCanvas *canvas = fEc[it]->GetCanvas();
     601           0 :     canvas->cd();
     602             :     
     603           0 :     fPaveBoard[it][id]->SetFillStyle(4020);
     604           0 :     fPaveBoard[it][id]->SetFillColor(7);
     605             : 
     606           0 :     canvas->Modified();
     607           0 :     canvas->Update();
     608             : 
     609             :   }
     610             : 
     611           0 : }
     612             : 
     613             : //__________________________________________________________________________
     614             : void AliMUONTriggerGUIdimap::CloseWindow()
     615             : {
     616             :   /// called when window is closed via the window manager.
     617             : 
     618           0 :   fMain->CloseWindow();
     619             : 
     620           0 : }
     621             : 
     622             : 

Generated by: LCOV version 1.11