LCOV - code coverage report
Current view: top level - TPC/TPCbase - AliTPCCalibViewerGUItime.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 2 13 15.4 %
Date: 2016-06-14 17:26:59 Functions: 2 24 8.3 %

          Line data    Source code
       1             : #ifndef AliTPCCalibViewerGUItime_H
       2             : #define AliTPCCalibViewerGUItime_H
       3             : 
       4             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       5             :  * See cxx source for full Copyright notice                               */
       6             : 
       7             : /// \class AliTPCCalibViewerGUItime
       8             : ///
       9             : /// \brief GUI for displaying calibration entires over time
      10             : ///  Calibration Trees are created using the macro TPC/CalibMacros/CalibEnv.C
      11             : ///  used for the calibration monitor
      12             : 
      13             : 
      14             : #ifndef ROOT_TGButton
      15             : #include "TGWidget.h"
      16             : #endif
      17             : #ifndef ROOT_TGFrame
      18             : #include "TGFrame.h"
      19             : #endif
      20             : 
      21             : #include <TGComboBox.h>
      22             : #include <TString.h>
      23             : #include <TVectorT.h>
      24             : 
      25             : class TGCompositeFrame;
      26             : class TRootEmbeddedCanvas;
      27             : class TGTextButton;
      28             : class TGListBox;
      29             : class TGRadioButton;
      30             : class TGGroupFrame;
      31             : class TGLabel;
      32             : class TGTabElement;
      33             : class TGTextEntry;
      34             : 
      35             : class TFile;
      36             : class TTree;
      37             : class TChain;
      38             : class TGraph;
      39             : class TObjArray;
      40             : 
      41             : class TMap;
      42             : 
      43             : class AliTPCCalibViewerGUI;
      44             : class AliTPCConfigParser;
      45             : 
      46             : 
      47             : 
      48             : class AliTPCCalibViewerGUItime : public TGCompositeFrame {
      49             : public:
      50             :   AliTPCCalibViewerGUItime(const TGWindow *p, UInt_t w, UInt_t h);
      51             :   virtual ~AliTPCCalibViewerGUItime();
      52             :   
      53             :   static TObjArray* ShowGUI(const char* fileName = 0, const char* treeName="dcs");             // initialize and show GUI standalone
      54             :   static TObjArray* ShowGUI(TChain* chain);                                         // initialize and show GUI standalone
      55             :   
      56             :   void DrawGUI(const TGWindow */*p*/, UInt_t w, UInt_t h);
      57             :   
      58             :   void UseFile(const char* fileName, const char* treeName);
      59             :   void UseChain(TChain *const chain);
      60             :   void UseConfigFile(const char* file="");
      61             :   void Reload(Int_t first=1);
      62             :   void AddReferenceTree(const char* treeFileName, const char* refName="R");
      63             : 
      64             :   
      65           0 :   void SetCalibViewerGUI(AliTPCCalibViewerGUI *const gui) {fCalibViewerGUI=gui;}
      66           0 :   void SetCalibViewerGUItab(TGTabElement *const tab) {fCalibViewerGUItab=tab;}
      67           0 :   void SetCacheDir(const char* cachedir) {fOutputCacheDir=cachedir;}
      68           0 :   void SetConfigFileName(const char* file) {fConfigFile=file;}
      69             :   
      70             :   const TString GetDrawString();
      71             :   const TString GetDrawOptionString();
      72           0 :   const char* GetCustomDrawString() const {return fComboCustomDraw->GetTextEntry()?fComboCustomDraw->GetTextEntry()->GetText():"";}
      73             :   void GetCutString(TString &cutStr);
      74           0 :   TChain* GetChain() const {return fTree;}
      75             :   //
      76           0 :   TGTextEntry* GetDrawEntry() {return fComboCustomDraw->GetTextEntry();}
      77           0 :   TGTextEntry* GetCutsEntry() {return fComboCustomCuts->GetTextEntry();}
      78           0 :   TGTextEntry* GetDrawOptEntry() {return fComboAddDrawOpt->GetTextEntry();}
      79             :   //Slots
      80             :   void DoDraw();
      81             :   void DoDumpRuns();
      82             :   void DoCustomDraw();
      83             :   void DoCustomCutsDraw();
      84             :   void DoParLimitChange();
      85             :   void DoNewSelection();                    // decides whether to redraw if user makes another selection
      86           0 :   void DoChangeSelectionList() {Reload(0);}
      87             :   void HandleButtonsDrawSel(Int_t id = -1);              
      88             :   void MouseMove(Int_t event, Int_t x, Int_t y, TObject */*selected*/);
      89             :   void DoNewSelectionAliases();
      90             :   void DoAddAlias();
      91             :   void DoDelAlias();
      92             :   void UpdateAliasList();
      93           0 :   TCanvas * GetCanvas(){ return fCanvMain->GetCanvas();}
      94             :  private:
      95             :   TFile*  fFile;                          ///< file that keeps the tree
      96             :   TChain*  fTree;                         ///< internal tree
      97             :   AliTPCCalibViewerGUI *fCalibViewerGUI;  ///< calib viewer gui used to display verbose information for one run
      98             :   TGTabElement *fCalibViewerGUItab;       ///< tab the calib view gui redies in
      99             :   TH1*    fCurrentHist;                   ///< histogram currently drawn in main canvas
     100             :   TGraph* fCurrentGraph;                  ///< current graph
     101             :   Int_t   fCurrentRunDetails;             ///< run number for wich details are currently shown
     102             :   TString fOutputCacheDir;                ///< output cache diretory for AliTPCCalibViewerGUI trees, created on the fly
     103             :   TString fDrawString;                    ///< current draw string
     104             :   TString fConfigFile;                    ///< configuration file keeping active branches and branch descriptions
     105             :   AliTPCConfigParser *fConfigParser;      ///< configuration parser
     106             :   Bool_t  fIsCustomDraw;                  ///< if custom draw string is selected
     107             :   TVectorD fRunNumbers;                   ///< run numbers of current selection
     108             :   TVectorD fTimeStamps;                   ///< timr stamps of current selection
     109             :   TVectorD fValuesX;                      ///< values of current selection
     110             :   TVectorD fValuesY;                      ///< values of current selection
     111             :   //
     112             :   Bool_t  fNoGraph;                       ///< Whether to create a graph
     113             :   Long64_t fGraphLimitEntries;            ///< limit in number of entries in the chain for producing a graph
     114             :   //
     115             :   TMap *fMapRefTrees;                      ///< map of reference trees for the CalibViewer
     116             :   //GUI elements
     117             :   //main canvas Top part, bottom part
     118             :   TGCompositeFrame    *fContTopBottom;      ///< container for all GUI elements, vertical divided
     119             :   //top left, centre, right
     120             :   TGCompositeFrame    *fContLCR;            ///< container for all GUI elements, horizontal divided
     121             :   //content left
     122             :   TGCompositeFrame    *fContLeft;           ///< container for GUI elements on left side
     123             :   TGGroupFrame        *fContDrawOpt;        ///< Subgroup for draw selection
     124             :   TGCheckButton       *fChkDrawOptSame;     ///< draw option 'same'
     125             :   TGCheckButton       *fChkDrawOptSparse;   ///< draw option 'sparse'
     126             :   TGComboBox          *fComboAddDrawOpt;    ///< additional draw options combo box
     127             :   TGGroupFrame        *fContDrawSel;        ///< Subgroup for draw selection
     128             :   TGCompositeFrame    *fContDrawSelSubRunTime; ///< Radio button subframe
     129             :   TGRadioButton       *fRadioXhist;         ///< Radio button x-variable: show only 1D distribution
     130             :   TGRadioButton       *fRadioXrun;          ///< Radio button x-variable: run
     131             :   TGRadioButton       *fRadioXtime;         ///< Radio button x-variable: time
     132             :   TGListBox           *fListVariables;      ///< listbox with possible variables
     133             :   TGComboBox          *fComboRunType;       ///< run type selection box
     134             :   TGLabel             *fLblRunType;         ///< run type label
     135             :   TGNumberEntry       *fNmbPar;             ///< parameter number
     136             :   TGLabel             *fLblPar;             ///< parameter name
     137             :   TGListBox           *fListCalibType;      ///< calibration type selection box
     138             :   TGGroupFrame        *fContCalibType;      ///< calibration type label
     139             :   //content centre
     140             :   TGCompositeFrame    *fContCenter;         ///< container for GUI elements at the center
     141             :   TRootEmbeddedCanvas *fCanvMain;           ///< main drawing canvas
     142             :   //content right 
     143             :   TGCompositeFrame    *fContRight;          ///< container for GUI elements on right side
     144             :   TGGroupFrame        *fContValues;         ///< container to keep data point information
     145             :   TGLabel             *fLblRunNumber;       ///< run number label
     146             :   TGLabel             *fLblRunTime;         ///< time stamp label
     147             :   TGLabel             *fLblValueX;          ///< value label
     148             :   TGLabel             *fLblValueY;          ///< value label
     149             :   TGLabel             *fLblRunNumberVal;    ///< run number of the data point hoovered
     150             :   TGLabel             *fLblRunTimeVal;      ///< time stamp of the data point hoovered
     151             :   TGLabel             *fLblValueXVal;       ///< value of the data point hoovered
     152             :   TGLabel             *fLblValueYVal;       ///< value of the data point hoovered
     153             :   TGTextButton        *fBtnDumpRuns;        ///< draw button
     154             :   TGGroupFrame        *fContAliases;         ///< container to keep data point information
     155             :   TGListBox           *fListAliases;        ///< list of aliases
     156             :   //content bottom
     157             :   TGCompositeFrame    *fContCustom;         ///< container for custom draw command GUI elements
     158             :   TGCompositeFrame    *fContCustomCuts;     ///< container for custom cut options GUI elements
     159             :   TGLabel             *fLblCustomDraw;      ///< label for custom draw string
     160             :   TGLabel             *fLblCustomCuts;      ///< label for custom cuts string
     161             :   TGComboBox          *fComboCustomDraw;    ///< combo box custom draw string
     162             :   TGComboBox          *fComboCustomCuts;    ///< combo box custom cuts string
     163             :   //
     164             :   TObjArray *fTrashBox;                   ///< graphics objects to be deleted (histograms, graphs,...)
     165             :   
     166             :   enum { kRadioXhist=10, kRadioXrun=11, kRadioXtime=12 };
     167             :   enum { kBranchOnOff=0, kBranchTitle=1, kCalibType=2, kParamNames=3 };
     168             :   
     169             :   void UpdateParLimits();
     170             :   void UpdateParName();
     171             :   void SetGuiTree(Int_t run);
     172             :   void FillRunTypes();
     173             :   void FillCalibTypes();
     174             :   void SetInitialValues();
     175             :   void CheckDrawGraph();
     176             :   Bool_t CheckChain();
     177             :   void UpdateValueArrays(Bool_t withGraph, const Double_t *xArr);
     178             :   void SubstituteUnderscores(TString &s);
     179             :   void GetHistogramTitle(TString &title);
     180             :   void AdjustYRange();
     181             : private:
     182             :   AliTPCCalibViewerGUItime(const AliTPCCalibViewerGUItime &v);
     183             :   AliTPCCalibViewerGUItime &operator = (const AliTPCCalibViewerGUItime &v);         // assignment operator
     184             :   
     185          24 :   ClassDef(AliTPCCalibViewerGUItime, 0)
     186             :     
     187             : };
     188             : 
     189             : ////////////////////////////////////////////////////////////////////////
     190             : //
     191             : //   GUI Alias frame
     192             : //
     193             : ////////////////////////////////////////////////////////////////////////
     194             : 
     195             : class AliTPCCalibViewerGUItimeAddAliasFrame : public TObject {
     196             : public:
     197             :   AliTPCCalibViewerGUItimeAddAliasFrame(const TGWindow *p, const TGWindow *main, UInt_t w, UInt_t h,
     198             :              UInt_t options, AliTPCCalibViewerGUItime *gui, TString strAlias="");
     199             :   virtual ~AliTPCCalibViewerGUItimeAddAliasFrame();
     200             :   
     201             :    // slots
     202             :   void DoOK();
     203             :   void DoCancel();
     204             :   
     205             : 
     206             : private:
     207             :   TGTransientFrame    *fMain;           ///< Main frame
     208             :   TGTextEntry         *fTxt1, *fTxt2;   ///< text input
     209             : 
     210             :   AliTPCCalibViewerGUItime *fGUI;       ///< pointer to mother process
     211             : 
     212             :   AliTPCCalibViewerGUItimeAddAliasFrame(const AliTPCCalibViewerGUItimeAddAliasFrame &r);
     213             :   AliTPCCalibViewerGUItimeAddAliasFrame &operator = (const AliTPCCalibViewerGUItimeAddAliasFrame &r);
     214             : 
     215             :   /// \cond CLASSIMP
     216          24 :   ClassDef(AliTPCCalibViewerGUItimeAddAliasFrame,0)
     217             :   /// \endcond
     218             : };
     219             : 
     220             : #endif

Generated by: LCOV version 1.11