CMS 3D CMS Logo

TCnaDialogEB.cc

Go to the documentation of this file.
00001 //----------Author's Name: B.Fabbro DSM/DAPNIA/SPP CEA-Saclay
00002 //----------Copyright: Those valid for CEA sofware
00003 //----------Modified: 11/07/2007
00004 
00005 
00006 #include "CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/interface/TEBParameters.h"
00007 
00008 #include "CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/interface/TCnaDialogEB.h"
00009 
00010 
00011 ClassImp(TCnaDialogEB)
00012 //______________________________________________________________________________
00013 //
00014 // TCnaDialogEB.
00015 //
00016 // This class provides a dialog box for CNA (Correlated Noise Analysis)
00017 // of the Ecal Barrel (EB) in the framework of ROOT and GUI (Graphical User Interface)
00018 //
00019 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00020 //
00021 //          *--------------------------------*
00022 //          |                                |
00023 //          |    |  I M P O R T A N T  |     |
00024 //          |    |                     |     |
00025 //          |    v                     v     |
00026 //          |                                |
00027 //          *--------------------------------*
00028 //
00029 //  A "cna-configuration" file named "cna_results_root.cfg"
00030 //  must be present in your HOME directory.
00031 //
00032 //  This file must have one line which must contain the path of the directory 
00033 //  (without slash at the end) where are the .root result files
00034 //
00035 //  EXAMPLE:
00036 //
00037 //  $HOME/scratch0/cna/results_root
00038 //
00039 //
00040 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00041 //
00042 // ***************** PRESENTATION OF THE DIALOG BOX ********************
00043 // 
00044 //      * GENERAL BUTTONS:
00045 //
00046 //          Analysis name          (button + input widget)
00047 //          Run number             (button + input widget)
00048 //          First taken event      (button + input widget)
00049 //          Number of taken events (button + input widget)
00050 //          Super-Module number    (button + input widget)
00051 //          Super-Module numbering (button)
00052 //
00053 //........................................................................
00054 //
00055 //      * UNDER THE SUPER-MODULE NUMBER BUTTON: plots concerning the super-module
00056 //
00057 //        Number of events found in the data (menu: 4 options)
00058 //
00059 //        Mean of samle means (mean pedestals)   (menu: 4 options) 
00060 //        Mean of sample sigmas                  (menu: 4 options) 
00061 //        Mean of (sample,sample) correlations   (menu: 4 options)
00062 //
00063 //        Sigma of sample means                  (menu: 4 options)
00064 //        Sigma of sample sigmas                 (menu: 4 options)
00065 //        Sigma of (sample,sample) correlations  (menu: 4 options)
00066 //
00067 //    * explanation> "Mean of" and "Sigma of" = mean and sigma over the samples
00068 //                   "sample means" and "sample sigmas" = means and sigmas over the events 
00069 //
00070 //        Correlations and covariances between towers (averaged over crystals and samples)
00071 //
00072 //........................................................................
00073 //
00074 //      * TOWER X and TOWER Y BUTTONS (button + input widget)
00075 //
00076 //
00077 //      * UNDER THE TOWER X BUTTON: plots concerning the Tower X:
00078 //
00079 //         Channel Numbering                                       (button)
00080 //         Global view of the correlation matrices between samples (menu: 1 option)
00081 //         Global view of the covariance  matrices between samples (menu: 1 option)
00082 //
00083 //      * UNDER BOTH TOWER X AND TOWER Y BUTTONS:
00084 //         Covariances and correlations between crystals (averaged over samples)
00085 //         (menu: 2 options)
00086 //
00087 //...........................................................................
00088 //
00089 //      * TOWER X CRYSTAL NUMBER BUTTON (button + input widget)
00090 //
00091 //      * UNDER THE TOWER X CRYSTAL NUMBER BUTTON: 
00092 //        Quantities relative to the crystal:
00093 //
00094 //        (sample,sample) correlation matrix      (menu: 4 options)
00095 //        (sample,sample) covariance  matrix      (menu: 4 options)
00096 //        Expectation values of the samples       (menu: 2 options)
00097 //        Sigmas of the samples                   (menu: 2 options)
00098 //
00099 //..........................................................................
00100 //
00101 //      * SAMPLE NUMBER BUTTON (button + input widget)
00102 //      
00103 //...........................................................................
00104 //
00105 //      * UNDER THE TOWER X CRYSTAL NUMBER BUTTON AND THE SAMPLE NUMBER BUTTON:
00106 //
00107 //        Event distribution:
00108 //             histogram of the ADC event distribution (menu: 2 options)
00109 //
00110 //............................................................................
00111 //
00112 //      * TIME EVOLUTION
00113 //
00114 //         File name for time evolution plots     (button + input widget)
00115 //
00116 //         time evolution menu                    (menu: 8 options)         
00117 //............................................................................
00118 //
00119 //      * SCALE 
00120 //
00121 //        LOG X                  (check button: ON = LOG scale, OFF = LIN scale) 
00122 //        LOG Y                  (check button: ON = LOG scale, OFF = LIN scale) 
00123 //
00124 //............................................................................
00125 //
00126 //      * EXIT                   (button)
00127 //
00128 //      * ROOT version           (button)
00129 //      * Help                   (button)
00130 //
00131 //............................................................................
00132 //
00133 // Example of main program using the class TCnaDialogEB:
00134 // 
00135 //%~%~%~%~%~%~%~%~%~%~%~%~%~~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~
00136 // #include "Riostream.h"
00137 // #include "TObject.h"
00138 // #include "TROOT.h"
00139 // #include "TGApplication.h"
00140 // #include "TGClient.h"
00141 // #include "TRint.h"
00142 // #include "TGWindow.h"
00143 // 
00144 // // CMSSW include files
00145 // 
00146 // #include "CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/interface/TCnaDialogEB.h"
00147 // 
00148 // extern void InitGui();
00149 // VoidFuncPtr_t initfuncs[] = { InitGui, 0 };
00150 // TROOT root("GUI","GUI test environnement", initfuncs);
00151 // 
00152 // int main(int argc, char **argv)
00153 // {
00154 //   cout << "*EcalCorrelatedNoiseInteractiveAnalysis> Starting ROOT session" << endl;
00155 //   TRint theApp("App", &argc, argv);
00156 //   cout << "*EcalCorrelatedNoiseInteractiveAnalysis> Starting new CNA session" << endl;
00157 //   TCnaDialogEB* mainWin = new TCnaDialogEB(gClient->GetRoot(), 420, 800);
00158 //   cout << "*EcalCorrelatedNoiseInteractiveAnalysis> CNA session: preparing to run application." << endl;
00159 //   theApp.Run(kTRUE);
00160 //   cout << "*EcalCorrelatedNoiseInteractiveAnalysis> End of CNA session: preparing to delete." << endl;
00161 //   delete mainWin;
00162 //   cout << "*EcalCorrelatedNoiseInteractiveAnalysis> delete done." << endl;  
00163 //   exit(0);
00164 // }
00165 //%~%~%~%~%~%~%~%~%~%~%~%~%~~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~
00166 //
00167 //...........................................................................
00168 //
00169 //   For more details on the classes of the CNA package:
00170 //
00171 //              https://www.cern.ch/cms-fabbro/cna
00172 //
00173 
00174 //---------------------------- TCnaDialogEB.cxx -------------------------
00175 //
00176 //   Dialog box + methods for CNA (Correlated Noise Analysis)
00177 //
00178 //   For questions or comments, please send e-mail to Bernard Fabbro:
00179 //             
00180 //   fabbro@hep.saclay.cea.fr 
00181 //
00182 //----------------------------------------------------------------------
00183 
00184   TCnaDialogEB::~TCnaDialogEB()
00185 {
00186 //destructor
00187 
00188   // cout << "TCnaDialogEB> Entering destructor" << endl;
00189   // cout << "            fCnew = " << fCnew << ", fCdelete = " << fCdelete << endl;
00190  
00191   //.... general variables
00192 
00193   if ( fParameters         != 0 ) {delete fParameters;         fCdelete++;}     // 001
00194   if ( fView               != 0 ) {delete fView;               fCdelete++;}
00195 
00196   //.... general frames
00197 
00198   if ( fLayoutGeneral      != 0 ) {delete fLayoutGeneral;      fCdelete++;}
00199   if ( fLayoutBottLeft     != 0 ) {delete fLayoutBottLeft;     fCdelete++;}
00200   if ( fLayoutBottRight    != 0 ) {delete fLayoutBottRight;    fCdelete++;}
00201   if ( fLayoutTopLeft      != 0 ) {delete fLayoutTopLeft;      fCdelete++;}
00202   if ( fLayoutTopRight     != 0 ) {delete fLayoutTopRight;     fCdelete++;}
00203   if ( fLayoutCenterYLeft  != 0 ) {delete fLayoutCenterYLeft;  fCdelete++;}
00204   if ( fLayoutCenterYRight != 0 ) {delete fLayoutCenterYRight; fCdelete++;}
00205 
00206   if ( fVoidFrame          != 0 ) {delete fVoidFrame;          fCdelete++;}     // 010
00207 
00208   //..... specific frames + buttons + menus
00209 
00210   //++++++++++++++++++++++++++++++++++++++++++ Horizontal frame Ana + Run 
00211   if ( fAnaRunFrame        != 0 ) {delete fAnaRunFrame;        fCdelete++;}
00212 
00213   //--------------------------------- Sub-Frame Analysis Name (Button+Entry Field)
00214   if ( fAnaFrame           != 0 ) {delete fAnaFrame;           fCdelete++;}
00215   if ( fAnaBut             != 0 ) {delete fAnaBut;             fCdelete++;}
00216   if ( fLayoutAnaBut       != 0 ) {delete fLayoutAnaBut;       fCdelete++;}
00217   if ( fEntryAnaNumber     != 0 ) {delete fEntryAnaNumber;     fCdelete++;}
00218   if ( fAnaText            != 0 ) {fAnaText->Delete();         fCdelete++;}  
00219   if ( fLayoutAnaField     != 0 ) {delete fLayoutAnaField;     fCdelete++;}
00220 
00221   //-------------------------------- Sub-Frame Run number (Button+Entry Field)  
00222   if ( fRunFrame           != 0 ) {delete fRunFrame;           fCdelete++;}
00223   if ( fRunBut             != 0 ) {delete fRunBut;             fCdelete++;}
00224   if ( fLayoutRunBut       != 0 ) {delete fLayoutRunBut;       fCdelete++;}
00225   if ( fEntryRunNumber     != 0 ) {delete fEntryRunNumber;     fCdelete++;}
00226   if ( fRunText            != 0 ) {fRunText->Delete();         fCdelete++;}
00227   if ( fLayoutRunField     != 0 ) {delete fLayoutRunField;     fCdelete++;}
00228 
00229   if ( fLayoutAnaRunFrame  != 0 ) {delete fLayoutAnaRunFrame;  fCdelete++;}
00230 
00231   //+++++++++++++++++++++++++++++++++++++++++++ Frames: first taken evt + nb of events + super-module
00232   if ( fFevFrame            != 0 ) {delete fFevFrame;            fCdelete++;}
00233   if ( fFevBut              != 0 ) {delete fFevBut;              fCdelete++;}
00234   if ( fLayoutFevBut        != 0 ) {delete fLayoutFevBut;        fCdelete++;}
00235   if ( fEntryFevNumber      != 0 ) {delete fEntryFevNumber;      fCdelete++;}
00236   if ( fFevText             != 0 ) {fFevText->Delete();          fCdelete++;}  
00237   if ( fLayoutFevFieldText  != 0 ) {delete fLayoutFevFieldText;  fCdelete++;}     // 030
00238   if ( fLayoutFevFieldFrame != 0 ) {delete fLayoutFevFieldFrame; fCdelete++;}
00239 
00240   if ( fNoeFrame            != 0 ) {delete fNoeFrame;            fCdelete++;}
00241   if ( fNoeBut              != 0 ) {delete fNoeBut;              fCdelete++;}
00242   if ( fLayoutNoeBut        != 0 ) {delete fLayoutNoeBut;        fCdelete++;}
00243   if ( fEntryNoeNumber      != 0 ) {delete fEntryNoeNumber;      fCdelete++;}
00244   if ( fNoeText             != 0 ) {fNoeText->Delete();          fCdelete++;}
00245   if ( fLayoutNoeFieldText  != 0 ) {delete fLayoutNoeFieldText;  fCdelete++;}
00246   if ( fLayoutNoeFieldFrame != 0 ) {delete fLayoutNoeFieldFrame; fCdelete++;}
00247 
00248   if ( fSuMoFrame            != 0 ) {delete fSuMoFrame;            fCdelete++;}
00249   if ( fSuMoBut              != 0 ) {delete fSuMoBut;              fCdelete++;}
00250   if ( fLayoutSuMoBut        != 0 ) {delete fLayoutSuMoBut;        fCdelete++;}
00251   if ( fEntrySuMoNumber      != 0 ) {delete fEntrySuMoNumber;      fCdelete++;}
00252   if ( fSuMoText             != 0 ) {fSuMoText->Delete();          fCdelete++;}  
00253   if ( fLayoutSuMoFieldText  != 0 ) {delete fLayoutSuMoFieldText;  fCdelete++;}
00254   if ( fLayoutSuMoFieldFrame != 0 ) {delete fLayoutSuMoFieldFrame; fCdelete++;}
00255 
00256   //............................ SuperModule Tower Numbering view (Button)
00257   if ( fButSMNb              != 0 ) {delete fButSMNb;              fCdelete++;}
00258   if ( fLayoutSMNbBut        != 0 ) {delete fLayoutSMNbBut;        fCdelete++;}
00259 
00260   //+++++++++++++++++++++++++++++++++++++++++++ Frame for quantities relative to the Super-Module 
00261   if ( fSuMoUpFrame          != 0 ) {delete fSuMoUpFrame;          fCdelete++;}
00262 
00263   //................................ Menus+Ymin+Ymax for the Super-Module ............................
00264 
00265   //...................................... Found evts in the data
00266 
00267   if ( fVmmFoundEvtsFrame            != 0 ) {delete fVmmFoundEvtsFrame;            fCdelete++;}
00268 
00269   if ( fVmaxFoundEvtsFrame           != 0 ) {delete fVmaxFoundEvtsFrame;           fCdelete++;}     // 050
00270   if ( fVmaxFoundEvtsBut             != 0 ) {delete fVmaxFoundEvtsBut;             fCdelete++;}
00271   if ( fLayoutVmaxFoundEvtsBut       != 0 ) {delete fLayoutVmaxFoundEvtsBut;       fCdelete++;}
00272   if ( fEntryVmaxFoundEvtsNumber     != 0 ) {delete fEntryVmaxFoundEvtsNumber;     fCdelete++;}
00273   if ( fVmaxFoundEvtsText            != 0 ) {fVmaxFoundEvtsText->Delete();         fCdelete++;}
00274   if ( fLayoutVmaxFoundEvtsFieldText != 0 ) {delete fLayoutVmaxFoundEvtsFieldText; fCdelete++;}
00275   if ( fLayoutVmaxFoundEvtsFrame     != 0 ) {delete fLayoutVmaxFoundEvtsFrame;     fCdelete++;}
00276 
00277   if ( fVminFoundEvtsFrame           != 0 ) {delete fVminFoundEvtsFrame;           fCdelete++;}
00278   if ( fVminFoundEvtsBut             != 0 ) {delete fVminFoundEvtsBut;             fCdelete++;}
00279   if ( fLayoutVminFoundEvtsBut       != 0 ) {delete fLayoutVminFoundEvtsBut;       fCdelete++;}
00280   if ( fEntryVminFoundEvtsNumber     != 0 ) {delete fEntryVminFoundEvtsNumber;     fCdelete++;}     // 060
00281   if ( fVminFoundEvtsText            != 0 ) {fVminFoundEvtsText->Delete();         fCdelete++;}
00282   if ( fLayoutVminFoundEvtsFieldText != 0 ) {delete fLayoutVminFoundEvtsFieldText; fCdelete++;}
00283   if ( fLayoutVminFoundEvtsFrame     != 0 ) {delete fLayoutVminFoundEvtsFrame;     fCdelete++;}
00284 
00285   if ( fMenuFoundEvts                != 0 ) {delete fMenuFoundEvts;                fCdelete++;}
00286   if ( fMenuBarFoundEvts             != 0 ) {fMenuBarFoundEvts->Delete();          fCdelete++;}
00287   if ( fVminFoundEvtsText            != 0 ) {fVminFoundEvtsText->Delete();         fCdelete++;}
00288 
00289   if ( fLayoutVmmFoundEvtsFrame      != 0 ) {delete fLayoutVmmFoundEvtsFrame;      fCdelete++;}
00290 
00291   //................................... Horizontal frame ev + sig
00292   if ( fSuMoHozFrame                 != 0 ) {delete fSuMoHozFrame;                 fCdelete++;}
00293 
00294   //............................................... Frame Ev + Menus Ev
00295   if ( fSuMoHozSubEvFrame            != 0 ) {delete fSuMoHozSubEvFrame;            fCdelete++;}
00296 
00297   //---------------------------------------------------
00298   if ( fVmmEvEvFrame            != 0 ) {delete fVmmEvEvFrame;            fCdelete++;}    // 070
00299 
00300   if ( fVmaxEvEvFrame           != 0 ) {delete fVmaxEvEvFrame;           fCdelete++;}
00301   if ( fVmaxEvEvBut             != 0 ) {delete fVmaxEvEvBut;             fCdelete++;}
00302   if ( fLayoutVmaxEvEvBut       != 0 ) {delete fLayoutVmaxEvEvBut;       fCdelete++;}
00303   if ( fVmaxEvEvText            != 0 ) {fVmaxEvEvText->Delete();         fCdelete++;}
00304   if ( fEntryVmaxEvEvNumber     != 0 ) {delete fEntryVmaxEvEvNumber;     fCdelete++;}
00305   if ( fLayoutVmaxEvEvFieldText != 0 ) {delete fLayoutVmaxEvEvFieldText; fCdelete++;}
00306   if ( fLayoutVmaxEvEvFrame     != 0 ) {delete fLayoutVmaxEvEvFrame;     fCdelete++;}
00307 
00308   if ( fVminEvEvFrame           != 0 ) {delete fVminEvEvFrame;           fCdelete++;}
00309   if ( fVminEvEvBut             != 0 ) {delete fVminEvEvBut;             fCdelete++;}
00310   if ( fLayoutVminEvEvBut       != 0 ) {delete fLayoutVminEvEvBut;       fCdelete++;}
00311   if ( fVminEvEvText            != 0 ) {fVminEvEvText->Delete();         fCdelete++;}
00312   if ( fEntryVminEvEvNumber     != 0 ) {delete fEntryVminEvEvNumber;     fCdelete++;}
00313   if ( fLayoutVminEvEvFieldText != 0 ) {delete fLayoutVminEvEvFieldText; fCdelete++;}
00314   if ( fLayoutVminEvEvFrame     != 0 ) {delete fLayoutVminEvEvFrame;     fCdelete++;}
00315 
00316   if ( fMenuEvEv                != 0 ) {delete fMenuEvEv;                fCdelete++;}
00317   if ( fMenuBarEvEv             != 0 ) {fMenuBarEvEv->Delete();          fCdelete++;}
00318   if ( fLayoutMenuBarEvEv       != 0 ) {delete fLayoutMenuBarEvEv;       fCdelete++;}
00319 
00320   if ( fLayoutVmmEvEvFrame      != 0 ) {delete fLayoutVmmEvEvFrame;      fCdelete++;}
00321 
00322   //----------------------------------------------------
00323   if ( fVmmEvSigFrame            != 0 ) {delete fVmmEvSigFrame;            fCdelete++;}
00324 
00325   if ( fVmaxEvSigFrame           != 0 ) {delete fVmaxEvSigFrame;           fCdelete++;}   // 090
00326   if ( fVmaxEvSigBut             != 0 ) {delete fVmaxEvSigBut;             fCdelete++;}
00327   if ( fLayoutVmaxEvSigBut       != 0 ) {delete fLayoutVmaxEvSigBut;       fCdelete++;}
00328   if ( fVmaxEvSigText            != 0 ) {fVmaxEvSigText->Delete();         fCdelete++;}
00329   if ( fEntryVmaxEvSigNumber     != 0 ) {delete fEntryVmaxEvSigNumber;     fCdelete++;}
00330   if ( fLayoutVmaxEvSigFieldText != 0 ) {delete fLayoutVmaxEvSigFieldText; fCdelete++;}
00331   if ( fLayoutVmaxEvSigFrame     != 0 ) {delete fLayoutVmaxEvSigFrame;     fCdelete++;}
00332  
00333   if ( fVminEvSigFrame           != 0 ) {delete fVminEvSigFrame;           fCdelete++;}
00334   if ( fVminEvSigBut             != 0 ) {delete fVminEvSigBut;             fCdelete++;}
00335   if ( fLayoutVminEvSigBut       != 0 ) {delete fLayoutVminEvSigBut;       fCdelete++;}
00336   if ( fVminEvSigText            != 0 ) {fVminEvSigText->Delete();         fCdelete++;}    // 100
00337   if ( fEntryVminEvSigNumber     != 0 ) {delete fEntryVminEvSigNumber;     fCdelete++;}
00338   if ( fLayoutVminEvSigFieldText != 0 ) {delete fLayoutVminEvSigFieldText; fCdelete++;}
00339   if ( fLayoutVminEvSigFrame     != 0 ) {delete fLayoutVminEvSigFrame;     fCdelete++;}
00340  
00341   if ( fMenuEvSig                != 0 ) {delete fMenuEvSig;                fCdelete++;}
00342   if ( fMenuBarEvSig             != 0 ) {fMenuBarEvSig->Delete();          fCdelete++;}
00343   if ( fLayoutMenuBarEvSig       != 0 ) {delete fLayoutMenuBarEvSig;       fCdelete++;}
00344 
00345   if ( fLayoutVmmEvSigFrame      != 0 ) {delete fLayoutVmmEvSigFrame;      fCdelete++;}
00346 
00347   //-----------------------------------------------------------
00348   if ( fVmmEvCorssFrame            != 0 ) {delete fVmmEvCorssFrame;            fCdelete++;}
00349 
00350   if ( fVmaxEvCorssFrame           != 0 ) {delete fVmaxEvCorssFrame;           fCdelete++;}
00351   if ( fVmaxEvCorssBut             != 0 ) {delete fVmaxEvCorssBut;             fCdelete++;}   // 110
00352   if ( fLayoutVmaxEvCorssBut       != 0 ) {delete fLayoutVmaxEvCorssBut;       fCdelete++;}
00353   if ( fVmaxEvCorssText            != 0 ) {fVmaxEvCorssText->Delete();         fCdelete++;}
00354   if ( fEntryVmaxEvCorssNumber     != 0 ) {delete fEntryVmaxEvCorssNumber;     fCdelete++;}
00355   if ( fLayoutVmaxEvCorssFieldText != 0 ) {delete fLayoutVmaxEvCorssFieldText; fCdelete++;}
00356   if ( fLayoutVmaxEvCorssFrame     != 0 ) {delete fLayoutVmaxEvCorssFrame;     fCdelete++;}
00357 
00358   if ( fVminEvCorssFrame           != 0 ) {delete fVminEvCorssFrame;           fCdelete++;}
00359   if ( fVminEvCorssBut             != 0 ) {delete fVminEvCorssBut;             fCdelete++;}
00360   if ( fLayoutVminEvCorssBut       != 0 ) {delete fLayoutVminEvCorssBut;       fCdelete++;}
00361   if ( fVminEvCorssText            != 0 ) {fVminEvCorssText->Delete();         fCdelete++;}
00362   if ( fEntryVminEvCorssNumber     != 0 ) {delete fEntryVminEvCorssNumber;     fCdelete++;}   // 120
00363   if ( fLayoutVminEvCorssFieldText != 0 ) {delete fLayoutVminEvCorssFieldText; fCdelete++;}
00364   if ( fLayoutVminEvCorssFrame     != 0 ) {delete fLayoutVminEvCorssFrame;     fCdelete++;}
00365 
00366   if ( fMenuEvCorss                != 0 ) {delete fMenuEvCorss;                fCdelete++;}
00367   if ( fMenuBarEvCorss             != 0 ) {fMenuBarEvCorss->Delete();          fCdelete++;}
00368   if ( fLayoutMenuBarEvCorss       != 0 ) {delete fLayoutMenuBarEvCorss;       fCdelete++;}
00369 
00370   if ( fLayoutVmmEvCorssFrame      != 0 ) {delete fLayoutVmmEvCorssFrame;      fCdelete++;}
00371   
00372   if ( fLayoutSuMoHozSubEvFrame    != 0 ) {delete fLayoutSuMoHozSubEvFrame;    fCdelete++;}
00373 
00374   //............................................... Frame Sig + Menus Sig
00375   if ( fSuMoHozSubSigFrame         != 0 ) {delete fSuMoHozSubSigFrame;         fCdelete++;}
00376 
00377   //------------------------------------------------------------- 
00378   if ( fVmmSigEvFrame            != 0 ) {delete fVmmSigEvFrame;            fCdelete++;}
00379 
00380   if ( fVmaxSigEvFrame           != 0 ) {delete fVmaxSigEvFrame;           fCdelete++;}   // 130
00381   if ( fVmaxSigEvBut             != 0 ) {delete fVmaxSigEvBut;             fCdelete++;}
00382   if ( fLayoutVmaxSigEvBut       != 0 ) {delete fLayoutVmaxSigEvBut;       fCdelete++;}
00383   if ( fVmaxSigEvText            != 0 ) {fVmaxSigEvText->Delete();         fCdelete++;}
00384   if ( fEntryVmaxSigEvNumber     != 0 ) {delete fEntryVmaxSigEvNumber;     fCdelete++;}
00385   if ( fLayoutVmaxSigEvFieldText != 0 ) {delete fLayoutVmaxSigEvFieldText; fCdelete++;}
00386   if ( fLayoutVmaxSigEvFrame     != 0 ) {delete fLayoutVmaxSigEvFrame;     fCdelete++;}
00387 
00388   if ( fVminSigEvFrame           != 0 ) {delete fVminSigEvFrame;           fCdelete++;}
00389   if ( fVminSigEvBut             != 0 ) {delete fVminSigEvBut;             fCdelete++;}
00390   if ( fLayoutVminSigEvBut       != 0 ) {delete fLayoutVminSigEvBut;       fCdelete++;}
00391   if ( fVminSigEvText            != 0 ) {fVminSigEvText->Delete();         fCdelete++;}
00392   if ( fEntryVminSigEvNumber     != 0 ) {delete fEntryVminSigEvNumber;     fCdelete++;}
00393   if ( fLayoutVminSigEvFieldText != 0 ) {delete fLayoutVminSigEvFieldText; fCdelete++;}
00394   if ( fLayoutVminSigEvFrame     != 0 ) {delete fLayoutVminSigEvFrame;     fCdelete++;}
00395 
00396   if ( fMenuSigEv                != 0 ) {delete fMenuSigEv;                fCdelete++;}
00397   if ( fMenuBarSigEv             != 0 ) {fMenuBarSigEv->Delete();          fCdelete++;}
00398   if ( fLayoutMenuBarSigEv       != 0 ) {delete fLayoutMenuBarSigEv;       fCdelete++;}
00399 
00400   if ( fLayoutVmmSigEvFrame      != 0 ) {delete fLayoutVmmSigEvFrame;      fCdelete++;}
00401 
00402   //-------------------------------------------------------------
00403   if ( fVmmSigSigFrame            != 0 ) {delete fVmmSigSigFrame;            fCdelete++;}
00404 
00405   if ( fVmaxSigSigFrame           != 0 ) {delete fVmaxSigSigFrame;           fCdelete++;}
00406   if ( fVmaxSigSigBut             != 0 ) {delete fVmaxSigSigBut;             fCdelete++;}   // 150
00407   if ( fLayoutVmaxSigSigBut       != 0 ) {delete fLayoutVmaxSigSigBut;       fCdelete++;}
00408   if ( fVmaxSigSigText            != 0 ) {fVmaxSigSigText->Delete();         fCdelete++;}
00409   if ( fEntryVmaxSigSigNumber     != 0 ) {delete fEntryVmaxSigSigNumber;     fCdelete++;}
00410   if ( fLayoutVmaxSigSigFieldText != 0 ) {delete fLayoutVmaxSigSigFieldText; fCdelete++;}
00411   if ( fLayoutVmaxSigSigFrame     != 0 ) {delete fLayoutVmaxSigSigFrame;     fCdelete++;}
00412 
00413   if ( fVminSigSigFrame           != 0 ) {delete fVminSigSigFrame;           fCdelete++;}
00414   if ( fVminSigSigBut             != 0 ) {delete fVminSigSigBut;             fCdelete++;}
00415   if ( fLayoutVminSigSigBut       != 0 ) {delete fLayoutVminSigSigBut;       fCdelete++;}
00416   if ( fVminSigSigText            != 0 ) {fVminSigSigText->Delete();         fCdelete++;}
00417   if ( fEntryVminSigSigNumber     != 0 ) {delete fEntryVminSigSigNumber;     fCdelete++;}
00418   if ( fLayoutVminSigSigFieldText != 0 ) {delete fLayoutVminSigSigFieldText; fCdelete++;}
00419   if ( fLayoutVminSigSigFrame     != 0 ) {delete fLayoutVminSigSigFrame;     fCdelete++;}
00420 
00421   if ( fMenuSigSig                != 0 ) {delete fMenuSigSig;                fCdelete++;}
00422   if ( fMenuBarSigSig             != 0 ) {fMenuBarSigSig->Delete();          fCdelete++;}
00423   if ( fLayoutMenuBarSigSig       != 0 ) {delete fLayoutMenuBarSigSig;       fCdelete++;}
00424 
00425   if ( fLayoutVmmSigSigFrame      != 0 ) {delete fLayoutVmmSigSigFrame;      fCdelete++;}
00426 
00427   //-------------------------------------------------------------
00428   if ( fVmmSigCorssFrame            != 0 ) {delete fVmmSigCorssFrame;            fCdelete++;}
00429 
00430   if ( fVmaxSigCorssFrame           != 0 ) {delete fVmaxSigCorssFrame;           fCdelete++;}
00431   if ( fVmaxSigCorssBut             != 0 ) {delete fVmaxSigCorssBut;             fCdelete++;}
00432   if ( fLayoutVmaxSigCorssBut       != 0 ) {delete fLayoutVmaxSigCorssBut;       fCdelete++;}    // 170
00433   if ( fVmaxSigCorssText            != 0 ) {fVmaxSigCorssText->Delete();         fCdelete++;}
00434   if ( fEntryVmaxSigCorssNumber     != 0 ) {delete fEntryVmaxSigCorssNumber;     fCdelete++;}
00435   if ( fLayoutVmaxSigCorssFieldText != 0 ) {delete fLayoutVmaxSigCorssFieldText; fCdelete++;}
00436   if ( fLayoutVmaxSigCorssFrame     != 0 ) {delete fLayoutVmaxSigCorssFrame;     fCdelete++;}
00437 
00438   if ( fVminSigCorssFrame           != 0 ) {delete fVminSigCorssFrame;           fCdelete++;}
00439   if ( fVminSigCorssBut             != 0 ) {delete fVminSigCorssBut;             fCdelete++;}
00440   if ( fLayoutVminSigCorssBut       != 0 ) {delete fLayoutVminSigCorssBut;       fCdelete++;}
00441   if ( fVminSigCorssText            != 0 ) {fVminSigCorssText->Delete();         fCdelete++;}
00442   if ( fEntryVminSigCorssNumber     != 0 ) {delete fEntryVminSigCorssNumber;     fCdelete++;}
00443   if ( fLayoutVminSigCorssFieldText != 0 ) {delete fLayoutVminSigCorssFieldText; fCdelete++;}
00444   if ( fLayoutVminSigCorssFrame     != 0 ) {delete fLayoutVminSigCorssFrame;     fCdelete++;}
00445 
00446   if ( fMenuSigCorss                != 0 ) {delete fMenuSigCorss;                fCdelete++;}
00447   if ( fMenuBarSigCorss             != 0 ) {fMenuBarSigCorss->Delete();          fCdelete++;}
00448   if ( fLayoutMenuBarSigCorss       != 0 ) {delete fLayoutMenuBarSigCorss;       fCdelete++;}
00449 
00450   if ( fLayoutVmmSigCorssFrame      != 0 ) {delete fLayoutVmmSigCorssFrame;      fCdelete++;}   // 185
00451   //-------------------------------------------------------------
00452 
00453   if ( fLayoutSuMoHozSubSigFrame    != 0 ) {delete fLayoutSuMoHozSubSigFrame;    fCdelete++;}
00454 
00455   if ( fLayoutSuMoHozFrame          != 0 ) {delete fLayoutSuMoHozFrame;          fCdelete++;}
00456 
00457   //----------------------------------------------------------------------------------------------
00458 
00459   //...................................... Covariances between towers
00460   if ( fVmmEvCovttFrame            != 0 ) {delete fVmmEvCovttFrame;            fCdelete++;}
00461 
00462   if ( fVmaxEvCovttFrame           != 0 ) {delete fVmaxEvCovttFrame;           fCdelete++;}
00463   if ( fVmaxEvCovttBut             != 0 ) {delete fVmaxEvCovttBut;             fCdelete++;}
00464   if ( fLayoutVmaxEvCovttBut       != 0 ) {delete fLayoutVmaxEvCovttBut;       fCdelete++;}
00465   if ( fVmaxEvCovttText            != 0 ) {fVmaxEvCovttText->Delete();         fCdelete++;}
00466   if ( fEntryVmaxEvCovttNumber     != 0 ) {delete fEntryVmaxEvCovttNumber;     fCdelete++;}
00467   if ( fLayoutVmaxEvCovttFieldText != 0 ) {delete fLayoutVmaxEvCovttFieldText; fCdelete++;}
00468   if ( fLayoutVmaxEvCovttFrame     != 0 ) {delete fLayoutVmaxEvCovttFrame;     fCdelete++;}
00469 
00470   if ( fVminEvCovttFrame           != 0 ) {delete fVminEvCovttFrame;           fCdelete++;}
00471   if ( fVminEvCovttBut             != 0 ) {delete fVminEvCovttBut;             fCdelete++;}
00472   if ( fLayoutVminEvCovttBut       != 0 ) {delete fLayoutVminEvCovttBut;       fCdelete++;}
00473   if ( fVminEvCovttText            != 0 ) {fVminEvCovttText->Delete();         fCdelete++;}
00474   if ( fEntryVminEvCovttNumber     != 0 ) {delete fEntryVminEvCovttNumber;     fCdelete++;}  // 200
00475   if ( fLayoutVminEvCovttFieldText != 0 ) {delete fLayoutVminEvCovttFieldText; fCdelete++;}
00476   if ( fLayoutVminEvCovttFrame     != 0 ) {delete fLayoutVminEvCovttFrame;     fCdelete++;}
00477 
00478   if ( fMenuCovtt                  != 0 ) {delete fMenuCovtt;                  fCdelete++;}
00479   if ( fMenuBarCovtt               != 0 ) {fMenuBarCovtt->Delete();            fCdelete++;}
00480   if ( fLayoutMenuBarCovtt         != 0 ) {delete fLayoutMenuBarCovtt;         fCdelete++;}
00481 
00482   if ( fLayoutVmmEvCovttFrame      != 0 ) {delete fLayoutVmmEvCovttFrame;      fCdelete++;}
00483 
00484   //...................................... Correlations between towers  
00485   if ( fVmmEvCorttFrame            != 0 ) {delete fVmmEvCorttFrame;            fCdelete++;}
00486 
00487   if ( fVmaxEvCorttFrame           != 0 ) {delete fVmaxEvCorttFrame;           fCdelete++;}
00488   if ( fVmaxEvCorttBut             != 0 ) {delete fVmaxEvCorttBut;             fCdelete++;}
00489   if ( fLayoutVmaxEvCorttBut       != 0 ) {delete fLayoutVmaxEvCorttBut;       fCdelete++;}   // 210
00490   if ( fVmaxEvCorttText            != 0 ) {fVmaxEvCorttText->Delete();         fCdelete++;}
00491   if ( fEntryVmaxEvCorttNumber     != 0 ) {delete fEntryVmaxEvCorttNumber;     fCdelete++;}
00492   if ( fLayoutVmaxEvCorttFieldText != 0 ) {delete fLayoutVmaxEvCorttFieldText; fCdelete++;}
00493   if ( fLayoutVmaxEvCorttFrame     != 0 ) {delete fLayoutVmaxEvCorttFrame;     fCdelete++;}
00494 
00495   if ( fVminEvCorttFrame           != 0 ) {delete fVminEvCorttFrame;           fCdelete++;}
00496   if ( fVminEvCorttBut             != 0 ) {delete fVminEvCorttBut;             fCdelete++;}
00497   if ( fLayoutVminEvCorttBut       != 0 ) {delete fLayoutVminEvCorttBut;       fCdelete++;}
00498   if ( fVminEvCorttText            != 0 ) {fVminEvCorttText->Delete();         fCdelete++;}
00499   if ( fEntryVminEvCorttNumber     != 0 ) {delete fEntryVminEvCorttNumber;     fCdelete++;}
00500   if ( fLayoutVminEvCorttFieldText != 0 ) {delete fLayoutVminEvCorttFieldText; fCdelete++;}
00501   if ( fLayoutVminEvCorttFrame     != 0 ) {delete fLayoutVminEvCorttFrame;     fCdelete++;}
00502 
00503   if ( fMenuCortt                  != 0 ) {delete fMenuCortt;                  fCdelete++;}
00504   if ( fMenuBarCortt               != 0 ) {fMenuBarCortt->Delete();            fCdelete++;}
00505   if ( fLayoutMenuBarCortt         != 0 ) {delete fLayoutMenuBarCortt;         fCdelete++;}
00506 
00507   if ( fLayoutVmmEvCorttFrame      != 0 ) {delete fLayoutVmmEvCorttFrame;      fCdelete++;}
00508 
00509   if ( fLayoutSuMoUpFrame          != 0 ) {delete fLayoutSuMoUpFrame;          fCdelete++;}
00510 
00511   //+++++++++++++++++++++++++++++++++++++++++ Horizontal frame Tower_X + Tower_Y
00512   if ( fTowSpFrame       != 0 ) {delete fTowSpFrame;         fCdelete++;}
00513   
00514   //----------------------------------- SubFrame Tower_X (Button + EntryField)
00515   if ( fTxSubFrame       != 0 ) {delete fTxSubFrame;         fCdelete++;}
00516 
00517   if ( fTowXFrame        != 0 ) {delete fTowXFrame;          fCdelete++;}
00518   if ( fTowXBut          != 0 ) {delete fTowXBut;            fCdelete++;}      // 230
00519   if ( fLayoutTowXBut    != 0 ) {delete fLayoutTowXBut;      fCdelete++;} 
00520   if ( fEntryTowXNumber  != 0 ) {delete fEntryTowXNumber;    fCdelete++;}
00521   if ( fTowXText         != 0 ) {fTowXText->Delete();        fCdelete++;} 
00522   if ( fLayoutTowXField  != 0 ) {delete fLayoutTowXField;    fCdelete++;} 
00523 
00524   //............................ Tower Crystal Numbering view (Button)
00525   if ( fButChNb          != 0 ) {delete fButChNb;            fCdelete++;}
00526   if ( fLayoutChNbBut    != 0 ) {delete fLayoutChNbBut;      fCdelete++;} 
00527 
00528   //............................ Menus Tower_X
00529   if ( fMenuCorssAll     != 0 ) {delete fMenuCorssAll;       fCdelete++;}
00530   if ( fMenuBarCorssAll  != 0 ) {fMenuBarCorssAll->Delete(); fCdelete++;}
00531 
00532   if ( fMenuCovssAll     != 0 ) {delete fMenuCovssAll;       fCdelete++;}
00533   if ( fMenuBarCovssAll  != 0 ) {fMenuBarCovssAll->Delete(); fCdelete++;}      // 240
00534 
00535   if ( fLayoutTxSubFrame != 0 ) {delete fLayoutTxSubFrame;   fCdelete++;}
00536 
00537   //----------------------------------- SubFrame Tower_Y (Button + EntryField)
00538 
00539   if ( fTySubFrame       != 0 ) {delete fTySubFrame;        fCdelete++;}
00540 
00541   if ( fTowYFrame        != 0 ) {delete fTowYFrame;         fCdelete++;}
00542   if ( fTowYBut          != 0 ) {delete fTowYBut;           fCdelete++;}
00543   if ( fLayoutTowYBut    != 0 ) {delete fLayoutTowYBut;     fCdelete++;}
00544   if ( fEntryTowYNumber  != 0 ) {delete fEntryTowYNumber;   fCdelete++;}
00545   if ( fTowYText         != 0 ) {fTowYText->Delete();       fCdelete++;}
00546   if ( fLayoutTowYField  != 0 ) {delete fLayoutTowYField;   fCdelete++;}
00547 
00548   if ( fLayoutTySubFrame != 0 ) {delete fLayoutTySubFrame;  fCdelete++;}
00549 
00550   if ( fLayoutTowSpFrame != 0 ) {delete fLayoutTowSpFrame;  fCdelete++;}
00551 
00552   //.................................. Menus for Horizontal frame (Tower_X + Tower_Y)
00553 
00554   if ( fMenuCorcc        != 0 ) {delete fMenuCorcc;         fCdelete++;}
00555   if ( fMenuBarCorcc     != 0 ) {fMenuBarCorcc->Delete();   fCdelete++;}
00556 
00557   if ( fMenuCovcc        != 0 ) {delete fMenuCovcc;         fCdelete++;}
00558   if ( fMenuBarCovcc     != 0 ) {fMenuBarCovcc->Delete();   fCdelete++;}
00559 
00560   //++++++++++++++++++++++++ Horizontal frame channel number (tower_X crystal number) + sample number
00561   if ( fChSpFrame        != 0 ) {delete fChSpFrame;         fCdelete++;}
00562 
00563   //------------------------------------- SubFrame Channel (Button + EntryField)
00564 
00565   if ( fChSubFrame       != 0 ) {delete fChSubFrame;        fCdelete++;}
00566 
00567   if ( fChanFrame        != 0 ) {delete fChanFrame;         fCdelete++;}
00568   if ( fChanBut          != 0 ) {delete fChanBut;           fCdelete++;}
00569   if ( fLayoutChanBut    != 0 ) {delete fLayoutChanBut;     fCdelete++;}
00570   if ( fEntryChanNumber  != 0 ) {delete fEntryChanNumber;   fCdelete++;}    // 260
00571   if ( fChanText         != 0 ) {fChanText->Delete();       fCdelete++;}
00572   if ( fLayoutChanField  != 0 ) {delete fLayoutChanField;   fCdelete++;}
00573 
00574   //................................ Menus Tower_X crystal number
00575   if ( fMenuCorss        != 0 ) {delete fMenuCorss;         fCdelete++;}
00576   if ( fMenuBarCorss     != 0 ) {fMenuBarCorss->Delete();   fCdelete++;}
00577 
00578   if ( fMenuCovss        != 0 ) {delete fMenuCovss;         fCdelete++;}
00579   if ( fMenuBarCovss     != 0 ) {fMenuBarCovss->Delete();   fCdelete++;}
00580 
00581   if ( fMenuEv           != 0 ) {delete fMenuEv;            fCdelete++;}
00582   if ( fMenuBarEv        != 0 ) {fMenuBarEv->Delete();      fCdelete++;}
00583 
00584   if ( fMenuVar          != 0 ) {delete fMenuVar;           fCdelete++;}
00585   if ( fMenuBarVar       != 0 ) {fMenuBarVar->Delete();     fCdelete++;}    // 270
00586 
00587   if ( fLayoutChSubFrame != 0 ) {delete fLayoutChSubFrame;  fCdelete++;}
00588 
00589   //------------------------------------ SubFrame Sample (Button + EntryField)
00590   if ( fSpSubFrame       != 0 ) {delete fSpSubFrame;        fCdelete++;}
00591   if ( fSampFrame        != 0 ) {delete fSampFrame;         fCdelete++;}
00592   if ( fSampBut          != 0 ) {delete fSampBut;           fCdelete++;}
00593   if ( fLayoutSampBut    != 0 ) {delete fLayoutSampBut;     fCdelete++;}
00594   if ( fEntrySampNumber  != 0 ) {delete fEntrySampNumber;   fCdelete++;}
00595   if ( fSampText         != 0 ) {fSampText->Delete();       fCdelete++;}
00596   if ( fLayoutSampField  != 0 ) {delete fLayoutSampField;   fCdelete++;}
00597   if ( fLayoutSpSubFrame != 0 ) {delete fLayoutSpSubFrame;  fCdelete++;}
00598 
00599   //................................ Menus Sample number
00600 
00601   //     (no menu in this SubFrame)
00602 
00603   if ( fLayoutChSpFrame  != 0 ) {delete fLayoutChSpFrame;   fCdelete++;}    // 280
00604 
00605 
00606   //++++++++++++++++++++++++++++++++++++ Menu Event Distribution
00607   if ( fMenuEvts            != 0 ) {delete fMenuEvts;            fCdelete++;}
00608   if ( fMenuBarEvts         != 0 ) {fMenuBarEvts->Delete();      fCdelete++;}
00609   if ( fLayoutMenuBarEvts   != 0 ) {delete fLayoutMenuBarEvts;   fCdelete++;}
00610 
00611   //++++++++++++++++++++++++++++++++++++ Frame: Run List (Rul) (Button + EntryField)
00612 
00613   if ( fRulFrame            != 0 ) {delete fRulFrame;            fCdelete++;}
00614   if ( fRulBut              != 0 ) {delete fRulBut;              fCdelete++;}
00615   if ( fLayoutRulBut        != 0 ) {delete fLayoutRulBut;        fCdelete++;}
00616   if ( fEntryRulNumber      != 0 ) {delete fEntryRulNumber;      fCdelete++;}
00617   if ( fRulText             != 0 ) {fRulText->Delete();          fCdelete++;}
00618   if ( fLayoutRulFieldText  != 0 ) {delete fLayoutRulFieldText;  fCdelete++;}
00619   if ( fLayoutRulFieldFrame != 0 ) {delete fLayoutRulFieldFrame; fCdelete++;}     // 290
00620 
00621   //................................ Menus for time evolution
00622   if ( fMenuEvol            != 0 ) {delete fMenuEvol;            fCdelete++;}
00623   if ( fMenuBarEvol         != 0 ) {fMenuBarEvol->Delete();      fCdelete++;}
00624 
00625 
00626   //++++++++++++++++++++++++++++++++++++ LinLog Frame
00627   if ( fLinLogFrame   != 0 ) {delete fLinLogFrame;   fCdelete++;}
00628 
00629   //---------------------------------- Lin/Log X
00630   if ( fButLogx       != 0 ) {delete fButLogx;       fCdelete++;}
00631   if ( fLayoutLogxBut != 0 ) {delete fLayoutLogxBut; fCdelete++;}
00632   //---------------------------------- Lin/Log Y
00633   if ( fButLogy       != 0 ) {delete fButLogy;       fCdelete++;}
00634   if ( fLayoutLogyBut != 0 ) {delete fLayoutLogyBut; fCdelete++;} 
00635 
00636   //++++++++++++++++++++++++++++++++++++ EXIT BUTTON
00637   if ( fButExit       != 0 ) {delete fButExit;       fCdelete++;}
00638   if ( fLayoutExitBut != 0 ) {delete fLayoutExitBut; fCdelete++;}
00639  
00640   //++++++++++++++++++++++++++++++++++++ Last Frame
00641   if ( fLastFrame     != 0 ) {delete fLastFrame;     fCdelete++;}     // 300
00642 
00643   //--------------------------------- Root version (Button)
00644   if ( fButRoot       != 0 ) {delete fButRoot;       fCdelete++;}
00645   if ( fLayoutRootBut != 0 ) {delete fLayoutRootBut; fCdelete++;}
00646 
00647   //--------------------------------- Help (Button)
00648   if ( fButHelp       != 0 ) {delete fButHelp;       fCdelete++;}
00649   if ( fLayoutHelpBut != 0 ) {delete fLayoutHelpBut; fCdelete++;}     // 304 
00650 
00651   //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00652 
00653 #define MMOA
00654 #ifndef MMOA
00655   if ( fCnew != fCdelete )
00656     {
00657       cout << "*TCnaDialogEB> WRONG MANAGEMENT OF ALLOCATIONS: fCnew = "
00658            << fCnew << ", fCdelete = " << fCdelete << endl;
00659     }
00660   else
00661     {
00662       cout << "*TCnaDialogEB> BRAVO! GOOD MANAGEMENT OF ALLOCATIONS: fCnew = "
00663            << fCnew << ", fCdelete = " << fCdelete << endl;
00664     }
00665 
00666 
00667   if ( fCnewRoot != fCdeleteRoot )
00668     {
00669       cout << "*TCnaDialogEB> WRONG MANAGEMENT OF ROOT ALLOCATIONS: fCnewRoot = "
00670            << fCnewRoot << ", fCdeleteRoot = " << fCdeleteRoot << endl;
00671     }
00672   else
00673     {
00674       cout << "*TCnaDialogEB> BRAVO! GOOD MANAGEMENT OF ROOT ALLOCATIONS:"
00675            << " fCnewRoot = " << fCnewRoot <<", fCdeleteRoot = "
00676            << fCdeleteRoot << endl;
00677     }
00678 #endif // MMOA
00679 
00680   // cout << "TCnaDialogEB> Leaving destructor" << endl;
00681   // cout << "            fCnew = " << fCnew << ", fCdelete = " << fCdelete << endl;
00682 
00683 }
00684 //   end of destructor
00685 
00686 //===================================================================
00687 //
00688 //                   Constructor with arguments
00689 //
00690 //===================================================================
00691 TCnaDialogEB::TCnaDialogEB(const TGWindow *p, UInt_t w, UInt_t h):
00692   TGMainFrame(p, w, h) 
00693 {
00694 //Constructor with arguments. Dialog box making
00695 
00696   // cout << "TCnaDialogEB> Entering constructor with arguments" << endl;
00697   // cout << "            fCnew = " << fCnew << ", fCdelete = " << fCdelete << endl;
00698 
00699 //========================= GENERAL INITIALISATION 
00700 
00701   fCnew        = 0;
00702   fCdelete     = 0;
00703   fCnewRoot    = 0;
00704   fCdeleteRoot = 0;
00705 
00706   fCnaP = (TGWindow *)p;
00707   fCnaW = w;
00708   fCnaH = h;
00709 
00710   fgMaxCar = (Int_t)512;
00711 
00712   //------------------------------ initialisations ----------------------
00713 
00714   fTTBELL = '\007';
00715 
00716   //........................ init CNA parameters
00717 
00718   fParameters = new TCnaParameters();  fCnew++;
00719   fParameters->SetPeriodTitles();               // define the titles of the different periods of run
00720 
00721   fView = new TCnaViewEB();              fCnew++;
00722 
00723   //................ Init CNA Command and error numbering
00724   
00725   fCnaCommand = 0;
00726   fCnaError   = 0;
00727 
00728   //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Init GUI DIALOG BOX pointers %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
00729 
00730   fLayoutGeneral      = 0;
00731   fLayoutBottLeft     = 0;
00732   fLayoutBottRight    = 0;
00733   fLayoutTopLeft      = 0;
00734   fLayoutTopRight     = 0;  
00735   fLayoutCenterYLeft  = 0;
00736   fLayoutCenterYRight = 0; 
00737 
00738   fVoidFrame = 0;
00739   
00740   //++++++++++++++++++++++++++++++++++++++++++ Horizontal frame Ana + Run 
00741   fAnaRunFrame       = 0;
00742   fLayoutAnaRunFrame = 0;
00743 
00744   //--------------------------------- Sub-Frame Analysis Name (Button+Entry Field)
00745   fAnaFrame       = 0;
00746   fAnaBut         = 0;
00747   fLayoutAnaBut   = 0;
00748   fAnaText        = 0;
00749   fEntryAnaNumber = 0;
00750   fLayoutAnaField = 0;
00751 
00752   //-------------------------------- Sub-Frame Run number (Button+Entry Field)  
00753   fRunFrame       = 0;  
00754   fRunBut         = 0;
00755   fLayoutRunBut   = 0;
00756   fRunText        = 0;
00757   fEntryRunNumber = 0;
00758   fLayoutRunField = 0;
00759 
00760   //+++++++++++++++++++++++++++++++++++++++++++ Frames: first taken evt + nb of events + super-module
00761   fFevFrame            = 0;
00762   fFevBut              = 0;
00763   fLayoutFevBut        = 0;
00764   fFevText             = 0;
00765   fEntryFevNumber      = 0;
00766   fLayoutFevFieldText  = 0;
00767   fLayoutFevFieldFrame = 0;
00768 
00769   fNoeFrame            = 0;
00770   fNoeBut              = 0;
00771   fLayoutNoeBut        = 0;
00772   fNoeText             = 0;
00773   fEntryNoeNumber      = 0;
00774   fLayoutNoeFieldText  = 0;
00775   fLayoutNoeFieldFrame = 0;
00776  
00777   fSuMoFrame            = 0;
00778   fSuMoBut              = 0;
00779   fLayoutSuMoBut        = 0;
00780   fSuMoText             = 0;
00781   fEntrySuMoNumber      = 0;
00782   fLayoutSuMoFieldText  = 0;
00783   fLayoutSuMoFieldFrame = 0;
00784 
00785   //............................ SuperModule Tower Numbering view (Button)
00786   fButSMNb       = 0;
00787   fLayoutSMNbBut = 0;
00788 
00789   //+++++++++++++++++++++++++++++++++++++++++++ Frame for quantities relative to the Super-Module
00790   fSuMoUpFrame       = 0; 
00791 
00792   //................................ Menus+Ymin+Ymax for the Super-Module ............................
00793 
00794   //...................................... Found evts in the data
00795 
00796   fVmmFoundEvtsFrame       = 0;
00797 
00798   fVmaxFoundEvtsFrame           = 0;
00799   fVmaxFoundEvtsBut             = 0;
00800   fLayoutVmaxFoundEvtsBut       = 0;
00801   fVmaxFoundEvtsText            = 0;
00802   fEntryVmaxFoundEvtsNumber     = 0;
00803   fLayoutVmaxFoundEvtsFieldText = 0;
00804   fLayoutVmaxFoundEvtsFrame     = 0;
00805 
00806   fVminFoundEvtsFrame           = 0;
00807   fVminFoundEvtsBut             = 0;
00808   fLayoutVminFoundEvtsBut       = 0;
00809   fVminFoundEvtsText            = 0;
00810   fEntryVminFoundEvtsNumber     = 0;
00811   fLayoutVminFoundEvtsFieldText = 0;
00812   fLayoutVminFoundEvtsFrame     = 0;
00813 
00814   fMenuFoundEvts           = 0;
00815   fMenuBarFoundEvts        = 0;
00816   fLayoutMenuBarFoundEvts  = 0;
00817 
00818   fLayoutVmmFoundEvtsFrame = 0;
00819 
00820   //................................... Horizontal frame ev + sig
00821   fSuMoHozFrame       = 0; 
00822   fLayoutSuMoHozFrame = 0;
00823 
00824   //............................................... Frame Ev + Menus Ev
00825   fSuMoHozSubEvFrame       = 0; 
00826   fLayoutSuMoHozSubEvFrame = 0;
00827 
00828   //-------------------------------------------------------------
00829   fVmmEvEvFrame       = 0;
00830 
00831   fVmaxEvEvFrame           = 0;
00832   fVmaxEvEvBut             = 0;
00833   fLayoutVmaxEvEvBut       = 0;
00834   fVmaxEvEvText            = 0;
00835   fEntryVmaxEvEvNumber     = 0;
00836   fLayoutVmaxEvEvFieldText = 0;
00837   fLayoutVmaxEvEvFrame     = 0;
00838 
00839   fVminEvEvFrame           = 0;
00840   fVminEvEvBut             = 0;
00841   fLayoutVminEvEvBut       = 0;
00842   fVminEvEvText            = 0;
00843   fEntryVminEvEvNumber     = 0;
00844   fLayoutVminEvEvFieldText = 0;
00845   fLayoutVminEvEvFrame     = 0;
00846 
00847   fMenuEvEv          = 0;
00848   fMenuBarEvEv       = 0;
00849   fLayoutMenuBarEvEv = 0;
00850 
00851   fLayoutVmmEvEvFrame = 0;
00852 
00853   //-------------------------------------------------------------
00854   fVmmEvSigFrame       = 0;
00855 
00856   fVmaxEvSigFrame           = 0;
00857   fVmaxEvSigBut             = 0;
00858   fLayoutVmaxEvSigBut       = 0;
00859   fVmaxEvSigText            = 0;
00860   fEntryVmaxEvSigNumber     = 0;
00861   fLayoutVmaxEvSigFieldText = 0;
00862 
00863   fVminEvSigFrame           = 0;
00864   fVminEvSigBut             = 0;
00865   fLayoutVminEvSigBut       = 0;
00866   fVminEvSigText            = 0;
00867   fEntryVminEvSigNumber     = 0;
00868   fLayoutVminEvSigFieldText = 0;
00869   fLayoutVminEvSigFrame     = 0;
00870 
00871   fMenuEvSig          = 0;
00872   fMenuBarEvSig       = 0;
00873   fLayoutMenuBarEvSig = 0;
00874   fLayoutVmaxEvSigFrame     = 0;
00875 
00876   fLayoutVmmEvSigFrame = 0;
00877 
00878   //-------------------------------------------------------------
00879   fVmmEvCorssFrame       = 0;
00880 
00881   fVmaxEvCorssFrame           = 0;
00882   fVmaxEvCorssBut             = 0;
00883   fLayoutVmaxEvCorssBut       = 0;
00884   fVmaxEvCorssText            = 0;
00885   fEntryVmaxEvCorssNumber     = 0;
00886   fLayoutVmaxEvCorssFieldText = 0;
00887   fLayoutVmaxEvCorssFrame     = 0;
00888 
00889   fVminEvCorssFrame           = 0;
00890   fVminEvCorssBut             = 0;
00891   fLayoutVminEvCorssBut       = 0;
00892   fVminEvCorssText            = 0;
00893   fEntryVminEvCorssNumber     = 0;
00894   fLayoutVminEvCorssFieldText = 0;
00895   fLayoutVminEvCorssFrame     = 0;
00896 
00897   fMenuEvCorss          = 0;
00898   fMenuBarEvCorss       = 0;
00899   fLayoutMenuBarEvCorss = 0;
00900   fLayoutVmmEvCorssFrame = 0;
00901 
00902   //............................................... Frame Sig + Menus Sig
00903   fSuMoHozSubSigFrame       = 0; 
00904 
00905   //-------------------------------------------------------------
00906   fVmmSigEvFrame       = 0;
00907 
00908   fVmaxSigEvFrame           = 0;
00909   fVmaxSigEvBut             = 0;
00910   fLayoutVmaxSigEvBut       = 0;
00911   fVmaxSigEvText            = 0;
00912   fEntryVmaxSigEvNumber     = 0;
00913   fLayoutVmaxSigEvFieldText = 0;
00914   fLayoutVmaxSigEvFrame     = 0;
00915 
00916   fVminSigEvFrame           = 0;
00917   fVminSigEvBut             = 0;
00918   fLayoutVminSigEvBut       = 0;
00919   fVminSigEvText            = 0;
00920   fEntryVminSigEvNumber     = 0;
00921   fLayoutVminSigEvFieldText = 0;
00922   fLayoutVminSigEvFrame     = 0;
00923 
00924   fMenuSigEv          = 0;
00925   fMenuBarSigEv       = 0;
00926   fLayoutMenuBarSigEv = 0;
00927 
00928   fLayoutVmmSigEvFrame = 0;
00929 
00930   //-------------------------------------------------------------
00931   fVmmSigSigFrame       = 0;
00932 
00933   fVmaxSigSigFrame           = 0;
00934   fVmaxSigSigBut             = 0;
00935   fLayoutVmaxSigSigBut       = 0;
00936   fVmaxSigSigText            = 0;
00937   fEntryVmaxSigSigNumber     = 0;
00938   fLayoutVmaxSigSigFieldText = 0;
00939   fLayoutVmaxSigSigFrame     = 0;
00940 
00941   fVminSigSigFrame           = 0;
00942   fVminSigSigBut             = 0;
00943   fLayoutVminSigSigBut       = 0;
00944   fVminSigSigText            = 0;
00945   fEntryVminSigSigNumber     = 0;
00946   fLayoutVminSigSigFieldText = 0;
00947   fLayoutVminSigSigFrame     = 0;
00948 
00949   fMenuSigSig          = 0; 
00950   fMenuBarSigSig       = 0;
00951   fLayoutMenuBarSigSig = 0;
00952 
00953   fLayoutVmmSigSigFrame = 0;
00954 
00955   //-------------------------------------------------------------
00956   fVmmSigCorssFrame       = 0;
00957 
00958   fVmaxSigCorssFrame           = 0;
00959   fVmaxSigCorssBut             = 0;
00960   fLayoutVmaxSigCorssBut       = 0;
00961   fVmaxSigCorssText            = 0;
00962   fEntryVmaxSigCorssNumber     = 0;
00963   fLayoutVmaxSigCorssFieldText = 0;
00964   fLayoutVmaxSigCorssFrame     = 0;
00965 
00966   fVminSigCorssFrame           = 0;
00967   fVminSigCorssBut             = 0;
00968   fLayoutVminSigCorssBut       = 0;
00969   fVminSigCorssText            = 0;
00970   fEntryVminSigCorssNumber     = 0;
00971   fLayoutVminSigCorssFieldText = 0;
00972   fLayoutVminSigCorssFrame     = 0;
00973 
00974   fMenuSigCorss          = 0;
00975   fMenuBarSigCorss       = 0;
00976   fLayoutMenuBarSigCorss = 0;
00977 
00978   fLayoutVmmSigCorssFrame = 0;
00979 
00980   //----------------------------------------------------------------------------------
00981 
00982   //...................................... Correlations between towers
00983   fVmmEvCorttFrame       = 0;
00984 
00985   fVmaxEvCorttFrame           = 0;
00986   fVmaxEvCorttBut             = 0;
00987   fLayoutVmaxEvCorttBut       = 0;
00988   fVmaxEvCorttText            = 0;
00989   fEntryVmaxEvCorttNumber     = 0;
00990   fLayoutVmaxEvCorttFieldText = 0;
00991   fLayoutVmaxEvCorttFrame     = 0;
00992 
00993   fVminEvCorttFrame           = 0;
00994   fVminEvCorttBut             = 0;
00995   fLayoutVminEvCorttBut       = 0;
00996   fVminEvCorttText            = 0;
00997   fEntryVminEvCorttNumber     = 0;
00998   fLayoutVminEvCorttFieldText = 0;
00999   fLayoutVminEvCorttFrame     = 0;
01000 
01001   fMenuCortt          = 0;
01002   fMenuBarCortt       = 0;
01003   fLayoutMenuBarCortt = 0;
01004 
01005   fLayoutVmmEvCorttFrame = 0;
01006 
01007   //...................................... Covariances between towers
01008   fVmmEvCovttFrame       = 0;
01009 
01010   fVmaxEvCovttFrame           = 0;
01011   fVmaxEvCovttBut             = 0;
01012   fLayoutVmaxEvCovttBut       = 0;
01013   fVmaxEvCovttText            = 0;
01014   fEntryVmaxEvCovttNumber     = 0;
01015   fLayoutVmaxEvCovttFieldText = 0;
01016   fLayoutVmaxEvCovttFrame     = 0;
01017 
01018   fVminEvCovttFrame           = 0;
01019   fVminEvCovttBut             = 0;
01020   fLayoutVminEvCovttBut       = 0;
01021   fVminEvCovttText            = 0;
01022   fEntryVminEvCovttNumber     = 0;
01023   fLayoutVminEvCovttFieldText = 0;
01024   fLayoutVminEvCovttFrame     = 0;
01025 
01026   fMenuCovtt          = 0;
01027   fMenuBarCovtt       = 0;
01028   fLayoutMenuBarCovtt = 0;
01029 
01030   fLayoutVmmEvCovttFrame = 0;
01031 
01032   fLayoutSuMoHozSubSigFrame = 0;
01033 
01034   fLayoutSuMoUpFrame = 0;
01035 
01036   //+++++++++++++++++++++++++++++++++++++++++ Horizontal frame Tower_X + Tower_Y
01037   fTowSpFrame      = 0;
01038   fLayoutTowSpFrame = 0;
01039   
01040   //----------------------------------- SubFrame Tower_X (Button + EntryField)
01041 
01042   fTxSubFrame       = 0; 
01043   fLayoutTxSubFrame = 0;
01044 
01045   fTowXFrame     = 0;
01046   fTowXBut       = 0;
01047   fLayoutTowXBut = 0; 
01048 
01049   fTowXText        = 0;
01050   fEntryTowXNumber = 0; 
01051   fLayoutTowXField = 0;
01052   
01053   //............................ Tower Crystal Numbering view (Button)
01054   fButChNb       = 0;
01055   fLayoutChNbBut = 0;
01056 
01057   //............................ Menus Tower_X
01058   fMenuCorssAll    = 0;
01059   fMenuBarCorssAll = 0;
01060 
01061   fMenuCovssAll    = 0;
01062   fMenuBarCovssAll = 0;
01063 
01064   //----------------------------------- SubFrame Tower_Y (Button + EntryField)
01065   fTySubFrame       = 0;
01066   fLayoutTySubFrame = 0;
01067 
01068   fTowYFrame     = 0;
01069   fTowYBut       = 0;
01070   fLayoutTowYBut = 0;
01071 
01072   fTowYText        = 0;  
01073   fEntryTowYNumber = 0;
01074   fLayoutTowYField = 0;
01075 
01076   //.................................. Menus for Horizontal frame (Tower_X + Tower_Y)
01077   fMenuBarCorcc = 0;
01078   fMenuCorcc    = 0; 
01079 
01080   fMenuBarCovcc = 0;  
01081   fMenuCovcc    = 0;
01082 
01083   //++++++++++++++++++++++++ Horizontal frame channel number (tower_X crystal number) + sample number
01084   fChSpFrame       = 0;
01085   fLayoutChSpFrame = 0;
01086 
01087   //------------------------------------- SubFrame Channel (Button + EntryField)
01088   fChanFrame       = 0;
01089   fChanBut         = 0;
01090   fChanText        = 0;
01091   fEntryChanNumber = 0;
01092   fLayoutChanBut   = 0;
01093   fLayoutChanField = 0;
01094 
01095   fChSubFrame       = 0;
01096   fLayoutChSubFrame = 0;
01097 
01098   //................................ Menus Tower_X crystal number
01099   fMenuCorss    = 0;
01100   fMenuBarCorss = 0;
01101 
01102   fMenuCovss    = 0; 
01103   fMenuBarCovss = 0;
01104 
01105   fMenuEv    = 0;
01106   fMenuBarEv = 0;
01107 
01108   fMenuVar    = 0;
01109   fMenuBarVar = 0;
01110 
01111   //------------------------------------ SubFrame Sample (Button + EntryField)
01112   fSampFrame = 0;
01113   fSampBut   = 0;
01114 
01115   fSampText        = 0;  
01116   fEntrySampNumber = 0;
01117   fLayoutSampBut   = 0;
01118   fLayoutSampField = 0;
01119 
01120   fSpSubFrame       = 0;
01121   fLayoutSpSubFrame = 0;
01122 
01123   //................................ Menus Sample number
01124 
01125   //     (no menu in this SubFrame)
01126 
01127   //++++++++++++++++++++++++++++++++++++ Frame: Run List (Rul) (Button + EntryField)
01128 
01129   fRulFrame            = 0;
01130   fRulBut              = 0;
01131   fLayoutRulBut        = 0;
01132   fRulText             = 0;
01133   fEntryRulNumber      = 0;
01134   fLayoutRulFieldText  = 0;
01135   fLayoutRulFieldFrame = 0;
01136 
01137   //................................ Menus for time evolution
01138   fMenuEvol    = 0;
01139   fMenuBarEvol = 0;
01140 
01141   //++++++++++++++++++++++++++++++++++++ Menu Event Distribution
01142   fMenuEvts          = 0;
01143   fMenuBarEvts       = 0;
01144   fLayoutMenuBarEvts = 0;
01145 
01146   //++++++++++++++++++++++++++++++++++++ LinLog Frame
01147   fLinLogFrame = 0;  
01148 
01149   //---------------------------------- Lin/Log X
01150   fButLogx       = 0;
01151   fLayoutLogxBut = 0;
01152   //---------------------------------- Lin/Log Y
01153   fButLogy       = 0;
01154   fLayoutLogyBut = 0;
01155 
01156   //++++++++++++++++++++++++++++++++++++ EXIT BUTTON
01157   fButExit       = 0;   
01158   fLayoutExitBut = 0;
01159 
01160   //++++++++++++++++++++++++++++++++++++ Last Frame
01161   fLastFrame = 0;   
01162 
01163   //--------------------------------- Root version (Button)
01164   fButRoot       = 0;
01165   fLayoutRootBut = 0;
01166 
01167   //--------------------------------- Help (Button)
01168   fButHelp       = 0;
01169   fLayoutHelpBut = 0;
01170 
01171   //%%%%%%%%%%%%%%%%%%%%%%%%%%%%% end of init GUI DIALOG BOX pointers %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
01172 
01173   //........ Init Buttons codes with input widgets:
01174   //         run, channel, sample
01175 
01176   fAnaButC  = 1;
01177   fRunButC  = 2;
01178 
01179    //.................. Init codes Menu bars
01180 
01181   fMenuFoundEvtsGlobalFullC = 600101;
01182   fMenuFoundEvtsGlobalSameC = 600102;
01183 
01184   fMenuFoundEvtsProjFullC   = 600111;
01185   fMenuFoundEvtsProjSameC   = 600112;
01186 
01187   fMenuEvEvGlobalFullC      = 123051;
01188   fMenuEvEvGlobalSameC      = 123052;
01189 
01190   fMenuEvSigGlobalFullC     = 123061;
01191   fMenuEvSigGlobalSameC     = 123062;
01192 
01193   fMenuEvCorssGlobalFullC   = 123071;
01194   fMenuEvCorssGlobalSameC   = 123072;
01195 
01196   fMenuEvEvProjFullC        = 124051;
01197   fMenuEvEvProjSameC        = 124052;
01198 
01199   fMenuEvSigProjFullC       = 124061;
01200   fMenuEvSigProjSameC       = 124062;
01201 
01202   fMenuEvCorssProjFullC     = 124071;
01203   fMenuEvCorssProjSameC     = 124072;
01204 
01205   fMenuSigEvGlobalFullC     = 800051;
01206   fMenuSigEvGlobalSameC     = 800052;
01207 
01208   fMenuSigSigGlobalFullC    = 800061;
01209   fMenuSigSigGlobalSameC    = 800062;
01210 
01211   fMenuSigCorssGlobalFullC  = 800071;
01212   fMenuSigCorssGlobalSameC  = 800072;
01213 
01214   fMenuSigEvProjFullC       = 810051;
01215   fMenuSigEvProjSameC       = 810052;
01216 
01217   fMenuSigSigProjFullC      = 810061;
01218   fMenuSigSigProjSameC      = 810062;
01219 
01220   fMenuSigCorssProjFullC    = 810071;
01221   fMenuSigCorssProjSameC    = 810072;
01222 
01223   fMenuCovttColzC           = 70010;
01224   fMenuCovttLegoC           = 70011;
01225 
01226   fMenuCorttColzC           = 70110;
01227   fMenuCorttLegoC           = 70111;
01228 
01229   fMenuFoundEvtsEtaPhiC     = 524051;
01230   fMenuEvEvEtaPhiC          = 524052;
01231   fMenuEvSigEtaPhiC         = 524053;
01232   fMenuEvCorssEtaPhiC       = 524054;
01233   fMenuSigEvEtaPhiC         = 524055;
01234   fMenuSigSigEtaPhiC        = 524056;
01235   fMenuSigCorssEtaPhiC      = 524057;
01236 
01237   fTowXButC = 90009; 
01238   fTowYButC = 90010;
01239 
01240   fChanButC = 6;
01241   fSampButC = 7;
01242 
01243   fMenuCorssAllColzC = 10;
01244   fMenuCovssAllColzC = 11;
01245  
01246   fMenuCorssColzC    = 21;
01247   fMenuCorssLegoC    = 22;
01248   fMenuCorssSurf1C   = 23;
01249   fMenuCorssSurf4C   = 24;
01250   
01251   fMenuCovssColzC    = 31;
01252   fMenuCovssLegoC    = 32;
01253   fMenuCovssSurf1C   = 33;
01254   fMenuCovssSurf4C   = 34;
01255   
01256   fMenuEvLineFullC   = 411;
01257   fMenuEvLineSameC   = 412;
01258 
01259   fMenuVarLineFullC  = 421;
01260   fMenuVarLineSameC  = 422;
01261   
01262   fMenuCorccColzC    = 51;
01263   fMenuCorccLegoC    = 52;
01264 
01265   fMenuCovccColzC    = 61;
01266   fMenuCovccLegoC    = 62;
01267   
01268   fMenuEvtsLineLinyFullC = 711;
01269   fMenuEvtsLineLinySameC = 712;
01270 
01271   fMenuEvolEvEvPolmFullC    = 811;
01272   fMenuEvolEvEvPolmSameC    = 812;
01273   fMenuEvolEvSigPolmFullC   = 821;
01274   fMenuEvolEvSigPolmSameC   = 822;
01275   fMenuEvolEvCorssPolmFullC = 831;
01276   fMenuEvolEvCorssPolmSameC = 832;
01277   fMenuEvolSampLineFullC    = 841;
01278   fMenuEvolSampLineSameC    = 842;
01279 
01280  //...................... Init Button codes: Root version, Help, Exit
01281 
01282   fButSMNbC     = 90;
01283   fButChNbC     = 91;
01284   fButRootC     = 92;
01285   fButHelpC     = 93;
01286   fButExitC     = 94;
01287   
01288   //................. Init Keys
01289 
01290   InitKeys();
01291 
01292   GetPathForResultsRootFiles();
01293   GetPathForListOfRunFiles();
01294 
01295   //=================================== LIN/LOG flags
01296   Int_t MaxCar = fgMaxCar;
01297   fMemoScaleX.Resize(MaxCar);   
01298   fMemoScaleX = "LIN";
01299   MaxCar = fgMaxCar;
01300   fMemoScaleY.Resize(MaxCar); 
01301   fMemoScaleY = "LIN";
01302 
01303   //=================================== Init option codes =================================
01304 
01305   MaxCar = fgMaxCar;
01306   fOptPlotFull.Resize(MaxCar);
01307   fOptPlotFull = "ONLYONE";
01308 
01309   MaxCar = fgMaxCar;
01310   fOptPlotSame.Resize(MaxCar);
01311   fOptPlotSame = "SEVERAL";
01312 
01313   //================================================================================================
01314 
01315   //-------------------------------------------------------------------------
01316   //
01317   //
01318   //                      B O X     M A K I N G
01319   //
01320   //
01321   //-------------------------------------------------------------------------
01322 
01323   // enum ELayoutHints {
01324   //   kLHintsNoHints = 0,
01325   //   kLHintsLeft    = BIT(0),
01326   //   kLHintsCenterX = BIT(1),
01327   //   kLHintsRight   = BIT(2),
01328   //   kLHintsTop     = BIT(3),
01329   //   kLHintsCenterY = BIT(4),
01330   //   kLHintsBottom  = BIT(5),
01331   //   kLHintsExpandX = BIT(6),
01332   //   kLHintsExpandY = BIT(7),
01333   //   kLHintsNormal  = (kLHintsLeft | kLHintsTop)
01334   //   bits 8-11 used by ETableLayoutHints
01335   // };
01336 
01337   fLayoutGeneral      = new TGLayoutHints (kLHintsCenterX | kLHintsCenterY);   fCnew++;  // 003
01338                                                                                          // (after fParameters
01339                                                                                          //  and fCView)
01340   fLayoutBottLeft     = new TGLayoutHints (kLHintsLeft    | kLHintsBottom);    fCnew++;
01341   fLayoutTopLeft      = new TGLayoutHints (kLHintsLeft    | kLHintsTop);       fCnew++;
01342   fLayoutBottRight    = new TGLayoutHints (kLHintsRight   | kLHintsBottom);    fCnew++;
01343   fLayoutTopRight     = new TGLayoutHints (kLHintsRight   | kLHintsTop);       fCnew++;
01344   fLayoutCenterYLeft  = new TGLayoutHints (kLHintsLeft    | kLHintsCenterY);   fCnew++;  
01345   fLayoutCenterYRight = new TGLayoutHints (kLHintsRight   | kLHintsCenterY);   fCnew++;  
01346 
01347   fVoidFrame = new TGCompositeFrame(this,60,20, kVerticalFrame, kSunkenFrame);  fCnew++;   // 010
01348   AddFrame(fVoidFrame, fLayoutGeneral);
01349 
01350   //......................... Pads border width
01351 
01352   Int_t xB1 = 1;
01353 
01354   //=============================================== Button Texts
01355   TString xAnaButText      = " Analysis name-> ";
01356   TString xRunButText      = "   Run number ->   ";
01357 
01358   //  TString xPathButText     = " Path (optional) ";
01359 
01360   //...................................... lenghts of the input widgets
01361   Int_t run_buf_lenght        = 55;
01362   Int_t first_evt_buf_lenght  = 60;
01363   Int_t nb_of_evts_buf_lenght = 60;
01364   Int_t typ_of_ana_buf_lenght = 120;
01365 
01366   //==================== Ana + Run FRAME ====================================
01367 
01368   fAnaRunFrame = new TGCompositeFrame(this,60,20,kHorizontalFrame,
01369                                       GetDefaultFrameBackground());   fCnew++;
01370 
01371  //=================================== ANALYSIS NAME (type of analysis)
01372   
01373   fAnaFrame =  new TGCompositeFrame(fAnaRunFrame,60,20, kHorizontalFrame,
01374                                     kSunkenFrame);                    fCnew++;
01375   
01376   //..................... Button  
01377   fAnaBut = new TGTextButton(fAnaFrame, xAnaButText, fAnaButC);       fCnew++;
01378   fAnaBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonAna()");
01379   fAnaBut->Resize(typ_of_ana_buf_lenght, fAnaBut->GetDefaultHeight());
01380   fAnaBut->SetToolTipText("Click here to register the analysis name written on the right");
01381   fLayoutAnaBut =
01382     new TGLayoutHints(kLHintsLeft | kLHintsTop, xB1,xB1,xB1,xB1);     fCnew++;
01383   fAnaFrame->AddFrame(fAnaBut,  fLayoutAnaBut);
01384 
01385   //...................... Entry field
01386   fEntryAnaNumber = new TGTextBuffer();                               fCnew++;
01387   fAnaText = new TGTextEntry(fAnaFrame, fEntryAnaNumber);             fCnew++;
01388   fAnaText->SetToolTipText
01389     ("Click and enter the analysis name (code for type of analysis)");
01390   fAnaText->Resize(typ_of_ana_buf_lenght, fAnaText->GetDefaultHeight());
01391 
01392   DisplayInEntryField(fAnaText,fKeyAnaType);
01393 
01394   fAnaText->Connect("ReturnPressed()", "TCnaDialogEB", this, "DoButtonAna()");
01395   fLayoutAnaField =
01396     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1);     fCnew++;
01397   fAnaFrame->AddFrame(fAnaText, fLayoutAnaField);
01398 
01399  //=================================== RUN
01400 
01401   fRunFrame = new TGCompositeFrame(fAnaRunFrame,0,0,
01402                                    kHorizontalFrame, kSunkenFrame);   fCnew++;
01403   fRunBut = new TGTextButton(fRunFrame, xRunButText, fRunButC);       fCnew++;
01404   fRunBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonRun()");
01405   fRunBut->SetToolTipText("Click here to register the run number");
01406   fLayoutRunBut =
01407     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);  fCnew++;   //  020
01408   fRunFrame->AddFrame(fRunBut,  fLayoutRunBut);
01409   fEntryRunNumber = new TGTextBuffer();                               fCnew++;
01410   fRunText = new TGTextEntry(fRunFrame, fEntryRunNumber);             fCnew++;
01411   fRunText->SetToolTipText
01412     ("Click and enter the run number of the name of the file containing the run list");
01413   fRunText->Resize(run_buf_lenght, fRunText->GetDefaultHeight());
01414 
01415   DisplayInEntryField(fRunText,fKeyRunNumber);
01416 
01417   fRunText->Connect("ReturnPressed()", "TCnaDialogEB", this, "DoButtonRun()");
01418   fLayoutRunField =
01419     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);    fCnew++;
01420   fRunFrame->AddFrame(fRunText, fLayoutRunField);
01421 
01422   //-------------------------- display frame Ana + Run 
01423   fAnaRunFrame->AddFrame(fAnaFrame, fLayoutTopLeft);
01424   fAnaRunFrame->AddFrame(fRunFrame, fLayoutTopRight);
01425  
01426   fLayoutAnaRunFrame =  new TGLayoutHints(kLHintsTop | kLHintsExpandX,
01427                                           xB1, xB1, xB1, xB1);        fCnew++;
01428 
01429   AddFrame(fAnaRunFrame, fLayoutAnaRunFrame);
01430   AddFrame(fVoidFrame, fLayoutGeneral);
01431 
01432   //=============================================== Button Texts
01433   TString xFirstEvtButText = "      First taken event    ( < 0 = 0 )      ";
01434   TString xNbOfEvtsButText = " Number of taken events ( <= 0 = all ) ";
01435   TString xSumoButText     = "           Super-Module number->       ";
01436 
01437   //=================================== FIRST EVENT NUMBER
01438 
01439   fFevFrame = new TGCompositeFrame(this,60,20, kHorizontalFrame, kSunkenFrame); fCnew++;
01440   
01441   fFevBut= new TGTextButton(fFevFrame, xFirstEvtButText);                       fCnew++;
01442   fFevBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonFev()");
01443   fFevBut->SetToolTipText
01444     ("Click here to register the number of the first event to be analyzed (written on the right)");
01445   fLayoutFevBut =
01446     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1);     fCnew++;
01447   fFevFrame->AddFrame(fFevBut,  fLayoutFevBut);
01448 
01449   fEntryFevNumber = new TGTextBuffer();                               fCnew++;
01450   fFevText = new TGTextEntry(fFevFrame, fEntryFevNumber);             fCnew++;
01451   fFevText->SetToolTipText("Click and enter the first event number");
01452   fFevText->Resize(first_evt_buf_lenght, fFevText->GetDefaultHeight());
01453   DisplayInEntryField(fFevText,fKeyFirstEvt);
01454   fFevText->Connect("ReturnPressed()", "TCnaDialogEB", this, "DoButtonFev()");
01455   fLayoutFevFieldText =
01456     new TGLayoutHints(kLHintsBottom | kLHintsLeft, xB1,xB1,xB1,xB1);  fCnew++;     // 030
01457   fFevFrame->AddFrame(fFevText, fLayoutFevFieldText);
01458 
01459   fLayoutFevFieldFrame =
01460     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1);     fCnew++;
01461   AddFrame(fFevFrame, fLayoutFevFieldFrame);
01462 
01463   //=================================== NUMBER OF EVENTS
01464   fNoeFrame = new TGCompositeFrame(this,60,20, kHorizontalFrame, kSunkenFrame); fCnew++;
01465   
01466   fNoeBut = new TGTextButton(fNoeFrame, xNbOfEvtsButText);                      fCnew++;
01467   fNoeBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonNoe()");
01468   fNoeBut->SetToolTipText("Click here to register the number of events written on the right");
01469   fLayoutNoeBut =
01470     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1);               fCnew++;
01471   fNoeFrame->AddFrame(fNoeBut,  fLayoutNoeBut);
01472 
01473   fEntryNoeNumber = new TGTextBuffer();                                         fCnew++;
01474   fNoeText = new TGTextEntry(fNoeFrame, fEntryNoeNumber);                       fCnew++;
01475   fNoeText->SetToolTipText("Click and enter the number of events");
01476   fNoeText->Resize(nb_of_evts_buf_lenght, fNoeText->GetDefaultHeight());
01477   DisplayInEntryField(fNoeText,fKeyNbOfEvts);
01478   fNoeText->Connect("ReturnPressed()", "TCnaDialogEB", this, "DoButtonNoe()");
01479   fLayoutNoeFieldText =
01480     new TGLayoutHints(kLHintsBottom | kLHintsRight, xB1,xB1,xB1,xB1);           fCnew++;
01481   fNoeFrame->AddFrame(fNoeText, fLayoutNoeFieldText);
01482 
01483   fLayoutNoeFieldFrame =
01484     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1);               fCnew++;
01485   AddFrame(fNoeFrame, fLayoutNoeFieldFrame);
01486 
01487   //=================================== SUPER-MODULE
01488 
01489   fSuMoFrame = new TGCompositeFrame(this,60,20, kHorizontalFrame, kSunkenFrame); fCnew++;
01490 
01491   fSuMoBut = new TGTextButton(fSuMoFrame, xSumoButText);                         fCnew++;   // 040
01492   fSuMoBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonSuMo()");
01493   fSuMoBut->SetToolTipText("Click here to register the Super-Module number written on the right");
01494   fLayoutSuMoBut = new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1); fCnew++;
01495   fSuMoFrame->AddFrame(fSuMoBut,  fLayoutSuMoBut);
01496 
01497   fEntrySuMoNumber = new TGTextBuffer();                                     fCnew++;
01498   fSuMoText = new TGTextEntry(fSuMoFrame, fEntrySuMoNumber);                 fCnew++;
01499   fSuMoText->SetToolTipText("Click and enter the Super-Module number");
01500   fSuMoText->Resize(nb_of_evts_buf_lenght, fSuMoText->GetDefaultHeight());
01501   DisplayInEntryField(fSuMoText, fKeySuMoNumber);
01502   fSuMoText->Connect("ReturnPressed()", "TCnaDialogEB", this, "DoButtonSuMo()");
01503 
01504   fLayoutSuMoFieldText =
01505     new TGLayoutHints(kLHintsBottom | kLHintsRight, xB1,xB1,xB1,xB1);        fCnew++;
01506   fSuMoFrame->AddFrame(fSuMoText, fLayoutSuMoFieldText);
01507 
01508   fLayoutSuMoFieldFrame =
01509     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1);            fCnew++;
01510   AddFrame(fSuMoFrame, fLayoutSuMoFieldFrame);
01511   //========================== SUPER-MODULE TOWER NUMBERING VIEW BUTTON
01512   TString xSMNbButText     = "  Super-Module Tower Numbering  ";
01513   fButSMNb = new TGTextButton(this, xSMNbButText, fButSMNbC);                fCnew++;
01514   fButSMNb->Connect("Clicked()","TCnaDialogEB", this, "DoButtonSMNb()");
01515   fLayoutSMNbBut =
01516     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1); 
01517   AddFrame(fButSMNb, fLayoutSMNbBut);                                        fCnew++;
01518 
01519   AddFrame(fVoidFrame, fLayoutGeneral);
01520 
01521   //=================================== QUANTITIES RELATIVES TO THE SUPER-MODULE
01522   fSuMoUpFrame = new TGCompositeFrame
01523     (this,60,20,kVerticalFrame, GetDefaultFrameBackground());                fCnew++;
01524 
01525   TString xYminButText = " Ymin ";
01526   TString xYmaxButText = " Ymax ";
01527   //########################################### Composite frame number of events found in the data
01528   fVmmFoundEvtsFrame = new TGCompositeFrame
01529     (fSuMoUpFrame,60,20, kHorizontalFrame, kSunkenFrame);                      fCnew++;
01530 
01531   //...................................... Menu number of events found in the data
01532 
01533   //...................................... Frame for Ymax
01534   fVmaxFoundEvtsFrame = new TGCompositeFrame
01535     (fVmmFoundEvtsFrame,60,20, kHorizontalFrame, kSunkenFrame);                fCnew++;    // 050
01536   //...................................... Button Max + Entry field 
01537   fVmaxFoundEvtsBut = new TGTextButton(fVmaxFoundEvtsFrame, xYmaxButText);     fCnew++;
01538   fVmaxFoundEvtsBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonVmaxFoundEvts()");
01539   fVmaxFoundEvtsBut->SetToolTipText("Click here to register ymax for the display of the quantity");
01540   fLayoutVmaxFoundEvtsBut =
01541     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1);              fCnew++;
01542   fVmaxFoundEvtsFrame->AddFrame(fVmaxFoundEvtsBut,  fLayoutVmaxFoundEvtsBut);
01543   fEntryVmaxFoundEvtsNumber = new TGTextBuffer();                              fCnew++;
01544   fVmaxFoundEvtsText =
01545     new TGTextEntry(fVmaxFoundEvtsFrame, fEntryVmaxFoundEvtsNumber);           fCnew++;
01546   fVmaxFoundEvtsText->SetToolTipText("Click and enter ymax");
01547   fVmaxFoundEvtsText->Resize(nb_of_evts_buf_lenght, fVmaxFoundEvtsText->GetDefaultHeight());
01548   DisplayInEntryField(fVmaxFoundEvtsText, fKeyVmaxFoundEvts);
01549   fVmaxFoundEvtsText->Connect("ReturnPressed()", "TCnaDialogEB", this, "DoButtonVmaxFoundEvts()");
01550 
01551   fLayoutVmaxFoundEvtsFieldText =
01552     new TGLayoutHints(kLHintsBottom | kLHintsRight, xB1,xB1,xB1,xB1);          fCnew++;
01553   fVmaxFoundEvtsFrame->AddFrame(fVmaxFoundEvtsText, fLayoutVmaxFoundEvtsFieldText);
01554   fLayoutVmaxFoundEvtsFrame =
01555     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);             fCnew++;
01556   fVmmFoundEvtsFrame->AddFrame(fVmaxFoundEvtsFrame, fLayoutVmaxFoundEvtsFrame);
01557 
01558   //...................................... Frame for Ymin
01559   fVminFoundEvtsFrame = new TGCompositeFrame       
01560     (fVmmFoundEvtsFrame,60,20, kHorizontalFrame, kSunkenFrame);                fCnew++;
01561   //...................................... Button Min + Entry field 
01562   fVminFoundEvtsBut = new TGTextButton(fVminFoundEvtsFrame, xYminButText);     fCnew++;
01563   fVminFoundEvtsBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonVminFoundEvts()");
01564   fVminFoundEvtsBut->SetToolTipText("Click here to register ymin for the display of the quantity");
01565   fLayoutVminFoundEvtsBut =
01566     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1);              fCnew++;
01567   fVminFoundEvtsFrame->AddFrame(fVminFoundEvtsBut,  fLayoutVminFoundEvtsBut);
01568   fEntryVminFoundEvtsNumber = new TGTextBuffer();                              fCnew++;    // 060
01569   fVminFoundEvtsText =
01570     new TGTextEntry(fVminFoundEvtsFrame, fEntryVminFoundEvtsNumber);           fCnew++;
01571   fVminFoundEvtsText->SetToolTipText("Click and enter ymin");
01572   fVminFoundEvtsText->Resize(nb_of_evts_buf_lenght, fVminFoundEvtsText->GetDefaultHeight());
01573   DisplayInEntryField(fVminFoundEvtsText,fKeyVminFoundEvts);
01574   fVminFoundEvtsText->Connect("ReturnPressed()", "TCnaDialogEB", this, "DoButtonVminFoundEvts()");
01575   fLayoutVminFoundEvtsFieldText =
01576     new TGLayoutHints(kLHintsBottom | kLHintsRight, xB1,xB1,xB1,xB1);          fCnew++;
01577   fVminFoundEvtsFrame->AddFrame(fVminFoundEvtsText, fLayoutVminFoundEvtsFieldText);
01578   fLayoutVminFoundEvtsFrame =
01579     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);             fCnew++;
01580   fVmmFoundEvtsFrame->AddFrame(fVminFoundEvtsFrame, fLayoutVminFoundEvtsFrame);
01581 
01582   //...................................... Frame for text
01583   TString xMenuFoundEvts = " Numbers of events  ";
01584   fMenuFoundEvts = new TGPopupMenu(gClient->GetRoot());                                    fCnew++;
01585   fMenuFoundEvts->AddEntry("1D, Histo SM channels",fMenuFoundEvtsGlobalFullC);
01586   fMenuFoundEvts->AddEntry("1D, Histo SM channels SAME",fMenuFoundEvtsGlobalSameC);
01587   fMenuFoundEvts->AddSeparator();
01588   fMenuFoundEvts->AddEntry("1D, Histo Projection" ,fMenuFoundEvtsProjFullC);
01589   fMenuFoundEvts->AddEntry("1D, Histo Projection  SAME",fMenuFoundEvtsProjSameC);
01590   fMenuFoundEvts->AddSeparator();
01591   fMenuFoundEvts->AddEntry("2D, (eta,phi) view SM ",fMenuFoundEvtsEtaPhiC);
01592   fMenuFoundEvts->Connect("Activated(Int_t)", "TCnaDialogEB", this, "HandleMenu(Int_t)");
01593   fMenuBarFoundEvts = new TGMenuBar(fVmmFoundEvtsFrame, 1, 1, kHorizontalFrame);           fCnew++;
01594   fMenuBarFoundEvts->AddPopup(xMenuFoundEvts, fMenuFoundEvts, fLayoutGeneral);
01595   fLayoutMenuBarFoundEvts = new TGLayoutHints(kLHintsRight, xB1,xB1,xB1,xB1);              fCnew++;
01596   fVmmFoundEvtsFrame->AddFrame(fMenuBarFoundEvts, fLayoutMenuBarFoundEvts);
01597   fLayoutVmmFoundEvtsFrame =
01598     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);                         fCnew++;
01599   fSuMoUpFrame->AddFrame(fVmmFoundEvtsFrame, fLayoutVmmFoundEvtsFrame);
01600 
01601   //............................. Ev + Sig Vertical frame
01602   fSuMoHozFrame =
01603     new TGCompositeFrame(fSuMoUpFrame,60,20,kVerticalFrame,
01604                          GetDefaultFrameBackground());                   fCnew++;
01605 
01606   //............................... Ev Vertical subframe
01607   fSuMoHozSubEvFrame = new TGCompositeFrame
01608     (fSuMoHozFrame,60,20,kVerticalFrame, GetDefaultFrameBackground());   fCnew++;
01609 
01610   //########################################### Composite frame ev of ev (mean pedestals)
01611   fVmmEvEvFrame = new TGCompositeFrame
01612     (fSuMoHozSubEvFrame,60,20, kHorizontalFrame, kSunkenFrame);          fCnew++;        // 070
01613 
01614   //...................................... Menu ev of ev
01615 
01616   //...................................... Frame for Ymax
01617   fVmaxEvEvFrame = new TGCompositeFrame
01618     (fVmmEvEvFrame,60,20, kHorizontalFrame, kSunkenFrame);                           fCnew++;
01619   //...................................... Button Max + Entry field 
01620   fVmaxEvEvBut = new TGTextButton(fVmaxEvEvFrame, xYmaxButText);                     fCnew++;
01621   fVmaxEvEvBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonVmaxEvEv()");
01622   fVmaxEvEvBut->SetToolTipText("Click here to register ymax for the display of the quantity");
01623   fLayoutVmaxEvEvBut = new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1); fCnew++;
01624   fVmaxEvEvFrame->AddFrame(fVmaxEvEvBut,  fLayoutVmaxEvEvBut);
01625   fEntryVmaxEvEvNumber = new TGTextBuffer();                                         fCnew++;
01626   fVmaxEvEvText = new TGTextEntry(fVmaxEvEvFrame, fEntryVmaxEvEvNumber);             fCnew++;
01627   fVmaxEvEvText->SetToolTipText("Click and enter ymax");
01628   fVmaxEvEvText->Resize(nb_of_evts_buf_lenght, fVmaxEvEvText->GetDefaultHeight());
01629   DisplayInEntryField(fVmaxEvEvText,fKeyVmaxEvEv);
01630   fVmaxEvEvText->Connect("ReturnPressed()", "TCnaDialogEB", this, "DoButtonVmaxEvEv()");
01631   fLayoutVmaxEvEvFieldText =
01632     new TGLayoutHints(kLHintsBottom | kLHintsRight, xB1,xB1,xB1,xB1);                fCnew++;
01633   fVmaxEvEvFrame->AddFrame(fVmaxEvEvText, fLayoutVmaxEvEvFieldText);
01634   fLayoutVmaxEvEvFrame =
01635     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);                   fCnew++;
01636   fVmmEvEvFrame->AddFrame(fVmaxEvEvFrame, fLayoutVmaxEvEvFrame);
01637 
01638   //...................................... Frame for Ymin
01639   fVminEvEvFrame = new TGCompositeFrame
01640     (fVmmEvEvFrame,60,20, kHorizontalFrame, kSunkenFrame);                           fCnew++;
01641   //...................................... Button Min + Entry field 
01642   fVminEvEvBut = new TGTextButton(fVminEvEvFrame, xYminButText);                     fCnew++;
01643   fVminEvEvBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonVminEvEv()");
01644   fVminEvEvBut->SetToolTipText("Click here to register ymin for the display of the quantity");
01645   fLayoutVminEvEvBut =
01646     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1);                    fCnew++;  // 080
01647   fVminEvEvFrame->AddFrame(fVminEvEvBut,  fLayoutVminEvEvBut);
01648 
01649   fEntryVminEvEvNumber = new TGTextBuffer();                                         fCnew++;
01650   fVminEvEvText = new TGTextEntry(fVminEvEvFrame, fEntryVminEvEvNumber);             fCnew++;
01651   fVminEvEvText->SetToolTipText("Click and enter ymin");
01652   fVminEvEvText->Resize(nb_of_evts_buf_lenght, fVminEvEvText->GetDefaultHeight());
01653   DisplayInEntryField(fVminEvEvText,fKeyVminEvEv);
01654   fVminEvEvText->Connect("ReturnPressed()", "TCnaDialogEB", this, "DoButtonVminEvEv()");
01655   fLayoutVminEvEvFieldText =
01656     new TGLayoutHints(kLHintsBottom | kLHintsRight, xB1,xB1,xB1,xB1);                fCnew++;
01657   fVminEvEvFrame->AddFrame(fVminEvEvText, fLayoutVminEvEvFieldText);
01658   fLayoutVminEvEvFrame =
01659     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);                   fCnew++;
01660   fVmmEvEvFrame->AddFrame(fVminEvEvFrame, fLayoutVminEvEvFrame);
01661 
01662   //...................................... Frame for text
01663   TString xMenuEvEv =      "      Mean pedestals    ";
01664   fMenuEvEv = new TGPopupMenu(gClient->GetRoot());                                   fCnew++;
01665   fMenuEvEv->AddEntry("1D, Histo SM channels",fMenuEvEvGlobalFullC);
01666   fMenuEvEv->AddEntry("1D, Histo SM channels SAME",fMenuEvEvGlobalSameC);
01667   fMenuEvEv->AddSeparator();
01668   fMenuEvEv->AddEntry("1D, Histo Projection" ,fMenuEvEvProjFullC);
01669   fMenuEvEv->AddEntry("1D, Histo Projection  SAME",fMenuEvEvProjSameC);
01670   fMenuEvEv->AddSeparator();
01671   fMenuEvEv->AddEntry("2D, (eta,phi) view SM ",fMenuEvEvEtaPhiC);
01672   fMenuEvEv->Connect("Activated(Int_t)", "TCnaDialogEB", this, "HandleMenu(Int_t)");
01673   fMenuBarEvEv = new TGMenuBar(fVmmEvEvFrame, 1, 1, kHorizontalFrame);               fCnew++;
01674   fMenuBarEvEv->AddPopup(xMenuEvEv, fMenuEvEv, fLayoutGeneral);
01675   fLayoutMenuBarEvEv = new TGLayoutHints(kLHintsRight, xB1,xB1,xB1,xB1);             fCnew++;
01676   fVmmEvEvFrame->AddFrame(fMenuBarEvEv, fLayoutMenuBarEvEv);  
01677 
01678   fLayoutVmmEvEvFrame =
01679     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);                   fCnew++;
01680   fSuMoHozSubEvFrame->AddFrame(fVmmEvEvFrame, fLayoutVmmEvEvFrame);
01681 
01682   //########################################### Composite frame ev of sig (noise)
01683   fVmmEvSigFrame = new TGCompositeFrame
01684     (fSuMoHozSubEvFrame,60,20, kHorizontalFrame, kSunkenFrame);                      fCnew++;
01685 
01686   //...................................... Menu ev of sig 
01687   //...................................... Frame for Ymax
01688   fVmaxEvSigFrame = new TGCompositeFrame
01689     (fVmmEvSigFrame,60,20, kHorizontalFrame, kSunkenFrame);                          fCnew++;   // 090
01690   //...................................... Button Max + Entry field 
01691   fVmaxEvSigBut = new TGTextButton(fVmaxEvSigFrame, xYmaxButText);                   fCnew++;
01692   fVmaxEvSigBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonVmaxEvSig()");
01693   fVmaxEvSigBut->SetToolTipText("Click here to register ymax for the display of the quantity");
01694   fLayoutVmaxEvSigBut =
01695     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1);                    fCnew++;
01696   fVmaxEvSigFrame->AddFrame(fVmaxEvSigBut,  fLayoutVmaxEvSigBut);
01697   fEntryVmaxEvSigNumber = new TGTextBuffer();                                        fCnew++;
01698   fVmaxEvSigText = new TGTextEntry(fVmaxEvSigFrame, fEntryVmaxEvSigNumber);          fCnew++;
01699   fVmaxEvSigText->SetToolTipText("Click and enter ymax");
01700   fVmaxEvSigText->Resize(nb_of_evts_buf_lenght, fVmaxEvSigText->GetDefaultHeight());
01701   DisplayInEntryField(fVmaxEvSigText,fKeyVmaxEvSig);
01702   fVmaxEvSigText->Connect("ReturnPressed()", "TCnaDialogEB", this, "DoButtonVmaxEvSig()");
01703   fLayoutVmaxEvSigFieldText =
01704     new TGLayoutHints(kLHintsBottom | kLHintsRight, xB1,xB1,xB1,xB1);                fCnew++;
01705   fVmaxEvSigFrame->AddFrame(fVmaxEvSigText, fLayoutVmaxEvSigFieldText);
01706   fLayoutVmaxEvSigFrame =
01707     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);                   fCnew++;
01708   fVmmEvSigFrame->AddFrame(fVmaxEvSigFrame, fLayoutVmaxEvSigFrame);
01709 
01710   //...................................... Frame for Ymin
01711   fVminEvSigFrame = new TGCompositeFrame
01712     (fVmmEvSigFrame,60,20, kHorizontalFrame, kSunkenFrame);                          fCnew++;
01713   //...................................... Button Min + Entry field 
01714   fVminEvSigBut = new TGTextButton(fVminEvSigFrame, xYminButText);                   fCnew++;
01715   fVminEvSigBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonVminEvSig()");
01716   fVminEvSigBut->SetToolTipText("Click here to register ymin for the display of the quantity");
01717   fLayoutVminEvSigBut =
01718     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1);                    fCnew++;
01719   fVminEvSigFrame->AddFrame(fVminEvSigBut,  fLayoutVminEvSigBut);
01720 
01721   fEntryVminEvSigNumber = new TGTextBuffer();                                        fCnew++;   // 100
01722   fVminEvSigText = new TGTextEntry(fVminEvSigFrame, fEntryVminEvSigNumber);          fCnew++;
01723   fVminEvSigText->SetToolTipText("Click and enter ymin");
01724   fVminEvSigText->Resize(nb_of_evts_buf_lenght, fVminEvSigText->GetDefaultHeight());
01725   DisplayInEntryField(fVminEvSigText,fKeyVminEvSig);
01726   fVminEvSigText->Connect("ReturnPressed()", "TCnaDialogEB", this, "DoButtonVminEvSig()");
01727   fLayoutVminEvSigFieldText =
01728     new TGLayoutHints(kLHintsBottom | kLHintsRight, xB1,xB1,xB1,xB1);                fCnew++;
01729   fVminEvSigFrame->AddFrame(fVminEvSigText, fLayoutVminEvSigFieldText);
01730   fLayoutVminEvSigFrame =
01731     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);                   fCnew++;
01732   fVmmEvSigFrame->AddFrame(fVminEvSigFrame, fLayoutVminEvSigFrame);
01733 
01734   //...................................... Frame for text
01735   TString xMenuEvSig =  "Mean of sample sigmas";
01736   fMenuEvSig = new TGPopupMenu(gClient->GetRoot());                                  fCnew++;
01737   fMenuEvSig->AddEntry("1D, Histo SM channels",fMenuEvSigGlobalFullC);
01738   fMenuEvSig->AddEntry("1D, Histo SM channels SAME",fMenuEvSigGlobalSameC);
01739   fMenuEvSig->AddSeparator();
01740   fMenuEvSig->AddEntry("1D, Histo Projection" ,fMenuEvSigProjFullC);
01741   fMenuEvSig->AddEntry("1D, Histo Projection  SAME",fMenuEvSigProjSameC);
01742   fMenuEvSig->AddSeparator();
01743   fMenuEvSig->AddEntry("2D, (eta,phi) view SM ",fMenuEvSigEtaPhiC);
01744   fMenuEvSig->Connect("Activated(Int_t)", "TCnaDialogEB", this, "HandleMenu(Int_t)");
01745   fMenuBarEvSig = new TGMenuBar(fVmmEvSigFrame, 1, 1, kHorizontalFrame);             fCnew++;
01746   fMenuBarEvSig->AddPopup(xMenuEvSig, fMenuEvSig, fLayoutGeneral);
01747   fLayoutMenuBarEvSig = new TGLayoutHints(kLHintsRight, xB1,xB1,xB1,xB1);            fCnew++;
01748   fVmmEvSigFrame->AddFrame(fMenuBarEvSig, fLayoutMenuBarEvSig);
01749 
01750   fLayoutVmmEvSigFrame =
01751     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);                   fCnew++;
01752   fSuMoHozSubEvFrame->AddFrame(fVmmEvSigFrame, fLayoutVmmEvSigFrame);
01753 
01754   //########################################### Composite frame ev of corss
01755   fVmmEvCorssFrame = new TGCompositeFrame
01756     (fSuMoHozSubEvFrame,60,20, kHorizontalFrame, kSunkenFrame);                      fCnew++;
01757 
01758   //...................................... Menu ev of Corss
01759 
01760   //...................................... Frame for Ymax
01761   fVmaxEvCorssFrame = new TGCompositeFrame
01762     (fVmmEvCorssFrame,60,20, kHorizontalFrame, kSunkenFrame);                        fCnew++;
01763   //...................................... Button Max + Entry field 
01764   fVmaxEvCorssBut = new TGTextButton(fVmaxEvCorssFrame, xYmaxButText);               fCnew++;    // 110
01765   fVmaxEvCorssBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonVmaxEvCorss()");
01766   fVmaxEvCorssBut->SetToolTipText("Click here to register ymax for the display of the quantity");
01767   fLayoutVmaxEvCorssBut =
01768     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1);                    fCnew++;
01769   fVmaxEvCorssFrame->AddFrame(fVmaxEvCorssBut,  fLayoutVmaxEvCorssBut);
01770   fEntryVmaxEvCorssNumber = new TGTextBuffer();                                      fCnew++;
01771   fVmaxEvCorssText = new TGTextEntry(fVmaxEvCorssFrame, fEntryVmaxEvCorssNumber);    fCnew++;
01772   fVmaxEvCorssText->SetToolTipText("Click and enter ymax");
01773   fVmaxEvCorssText->Resize(nb_of_evts_buf_lenght, fVmaxEvCorssText->GetDefaultHeight());
01774   DisplayInEntryField(fVmaxEvCorssText, fKeyVmaxEvCorss);
01775   fVmaxEvCorssText->Connect("ReturnPressed()", "TCnaDialogEB", this, "DoButtonVmaxEvCorss()");
01776   fLayoutVmaxEvCorssFieldText =
01777     new TGLayoutHints(kLHintsBottom | kLHintsRight, xB1,xB1,xB1,xB1);                fCnew++;
01778   fVmaxEvCorssFrame->AddFrame(fVmaxEvCorssText, fLayoutVmaxEvCorssFieldText);
01779   fLayoutVmaxEvCorssFrame =
01780     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);                   fCnew++;
01781   fVmmEvCorssFrame->AddFrame(fVmaxEvCorssFrame, fLayoutVmaxEvCorssFrame);
01782 
01783   //...................................... Frame for Ymin
01784   fVminEvCorssFrame = new TGCompositeFrame
01785     (fVmmEvCorssFrame,60,20, kHorizontalFrame, kSunkenFrame);                        fCnew++;
01786   //...................................... Button Min + Entry field 
01787   fVminEvCorssBut = new TGTextButton(fVminEvCorssFrame, xYminButText);               fCnew++;
01788   fVminEvCorssBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonVminEvCorss()");
01789   fVminEvCorssBut->SetToolTipText("Click here to register ymin for the display of the quantity");
01790   fLayoutVminEvCorssBut =
01791     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1);                    fCnew++;
01792   fVminEvCorssFrame->AddFrame(fVminEvCorssBut,  fLayoutVminEvCorssBut);
01793   fEntryVminEvCorssNumber = new TGTextBuffer();                                      fCnew++;
01794   fVminEvCorssText = new TGTextEntry(fVminEvCorssFrame, fEntryVminEvCorssNumber);    fCnew++;   // 120
01795   fVminEvCorssText->SetToolTipText("Click and enter ymin");
01796   fVminEvCorssText->Resize(nb_of_evts_buf_lenght, fVminEvCorssText->GetDefaultHeight());
01797   DisplayInEntryField(fVminEvCorssText,fKeyVminEvCorss);
01798   fVminEvCorssText->Connect("ReturnPressed()", "TCnaDialogEB", this, "DoButtonVminEvCorss()");
01799   fLayoutVminEvCorssFieldText =
01800     new TGLayoutHints(kLHintsBottom | kLHintsRight, xB1,xB1,xB1,xB1);                fCnew++;
01801   fVminEvCorssFrame->AddFrame(fVminEvCorssText, fLayoutVminEvCorssFieldText);
01802   fLayoutVminEvCorssFrame =
01803     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);                   fCnew++;
01804   fVmmEvCorssFrame->AddFrame(fVminEvCorssFrame, fLayoutVminEvCorssFrame);
01805 
01806   //...................................... Frame for text
01807   TString xMenuEvCorss = "     Mean of cor(s,s)    ";
01808   fMenuEvCorss = new TGPopupMenu(gClient->GetRoot());                                fCnew++;
01809   fMenuEvCorss->AddEntry("1D, Histo SM channels",fMenuEvCorssGlobalFullC);
01810   fMenuEvCorss->AddEntry("1D, Histo SM channels SAME",fMenuEvCorssGlobalSameC);
01811   fMenuEvCorss->AddSeparator();
01812   fMenuEvCorss->AddEntry("1D, Histo Projection" ,fMenuEvCorssProjFullC);
01813   fMenuEvCorss->AddEntry("1D, Histo Projection  SAME",fMenuEvCorssProjSameC);
01814   fMenuEvCorss->AddSeparator();
01815   fMenuEvCorss->AddEntry("2D, (eta,phi) view SM ",fMenuEvCorssEtaPhiC);
01816   fMenuEvCorss->Connect("Activated(Int_t)", "TCnaDialogEB", this, "HandleMenu(Int_t)");
01817   fMenuBarEvCorss = new TGMenuBar(fVmmEvCorssFrame, 1, 1, kHorizontalFrame);         fCnew++;
01818   fMenuBarEvCorss->AddPopup(xMenuEvCorss, fMenuEvCorss, fLayoutGeneral);
01819   fLayoutMenuBarEvCorss = new TGLayoutHints(kLHintsRight, xB1,xB1,xB1,xB1);          fCnew++;
01820   fVmmEvCorssFrame->AddFrame(fMenuBarEvCorss, fLayoutMenuBarEvCorss);
01821 
01822   fLayoutVmmEvCorssFrame =
01823     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);                   fCnew++;
01824   fSuMoHozSubEvFrame->AddFrame(fVmmEvCorssFrame, fLayoutVmmEvCorssFrame);
01825 
01826   //------------------------------------------------------------------------------------------
01827 
01828   fLayoutSuMoHozSubEvFrame =
01829     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1, xB1, xB1, xB1);                fCnew++;
01830   fSuMoHozFrame->AddFrame(fSuMoHozSubEvFrame, fLayoutSuMoHozSubEvFrame);
01831 
01832   //............................... Sig Vertical subframe
01833   fSuMoHozSubSigFrame = new TGCompositeFrame
01834     (fSuMoHozFrame,60,20,kVerticalFrame, GetDefaultFrameBackground());               fCnew++;
01835 
01836   //########################################### Composite frame sig of ev
01837   fVmmSigEvFrame = new TGCompositeFrame
01838     (fSuMoHozSubSigFrame,60,20, kHorizontalFrame, kSunkenFrame);                     fCnew++;
01839 
01840   //...................................... Menu sig of ev
01841   //...................................... Frame for Ymax
01842   fVmaxSigEvFrame = new TGCompositeFrame
01843     (fVmmSigEvFrame,60,20, kHorizontalFrame, kSunkenFrame);                          fCnew++;   // 130
01844   //...................................... Button Max + Entry field 
01845   fVmaxSigEvBut = new TGTextButton(fVmaxSigEvFrame, xYmaxButText);                   fCnew++;
01846   fVmaxSigEvBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonVmaxSigEv()");
01847   fVmaxSigEvBut->SetToolTipText("Click here to register ymax for the display of the quantity");
01848   fLayoutVmaxSigEvBut =
01849     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1);                    fCnew++;
01850   fVmaxSigEvFrame->AddFrame(fVmaxSigEvBut,  fLayoutVmaxSigEvBut);
01851   fEntryVmaxSigEvNumber = new TGTextBuffer();                                        fCnew++;
01852   fVmaxSigEvText = new TGTextEntry(fVmaxSigEvFrame, fEntryVmaxSigEvNumber);          fCnew++;
01853   fVmaxSigEvText->SetToolTipText("Click and enter ymax");
01854   fVmaxSigEvText->Resize(nb_of_evts_buf_lenght, fVmaxSigEvText->GetDefaultHeight());
01855   DisplayInEntryField(fVmaxSigEvText,fKeyVmaxSigEv);
01856   fVmaxSigEvText->Connect("ReturnPressed()", "TCnaDialogEB", this, "DoButtonVmaxSigEv()");
01857   fLayoutVmaxSigEvFieldText =
01858     new TGLayoutHints(kLHintsBottom | kLHintsRight, xB1,xB1,xB1,xB1);                fCnew++;
01859   fVmaxSigEvFrame->AddFrame(fVmaxSigEvText, fLayoutVmaxSigEvFieldText);
01860   fLayoutVmaxSigEvFrame =
01861     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);                   fCnew++;
01862   fVmmSigEvFrame->AddFrame(fVmaxSigEvFrame, fLayoutVmaxSigEvFrame);
01863 
01864   //...................................... Frame for Ymin
01865   fVminSigEvFrame = new TGCompositeFrame
01866     (fVmmSigEvFrame,60,20, kHorizontalFrame, kSunkenFrame);                          fCnew++;
01867   //...................................... Button Min + Entry field 
01868   fVminSigEvBut = new TGTextButton(fVminSigEvFrame, xYminButText);                   fCnew++;
01869   fVminSigEvBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonVminSigEv()");
01870   fVminSigEvBut->SetToolTipText("Click here to register ymin for the display of the quantity");
01871   fLayoutVminSigEvBut =
01872     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1);                    fCnew++;
01873   fVminSigEvFrame->AddFrame(fVminSigEvBut,  fLayoutVminSigEvBut);
01874   fEntryVminSigEvNumber = new TGTextBuffer();                                        fCnew++;      // 140
01875   fVminSigEvText = new TGTextEntry(fVminSigEvFrame, fEntryVminSigEvNumber);          fCnew++;
01876   fVminSigEvText->SetToolTipText("Click and enter ymin");
01877   fVminSigEvText->Resize(nb_of_evts_buf_lenght, fVminSigEvText->GetDefaultHeight());
01878   DisplayInEntryField(fVminSigEvText,fKeyVminSigEv);
01879   fVminSigEvText->Connect("ReturnPressed()", "TCnaDialogEB", this, "DoButtonVminSigEv()");
01880   fLayoutVminSigEvFieldText =
01881     new TGLayoutHints(kLHintsBottom | kLHintsRight, xB1,xB1,xB1,xB1);                fCnew++;
01882   fVminSigEvFrame->AddFrame(fVminSigEvText, fLayoutVminSigEvFieldText);
01883   fLayoutVminSigEvFrame =
01884     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);                   fCnew++;
01885   fVmmSigEvFrame->AddFrame(fVminSigEvFrame, fLayoutVminSigEvFrame);
01886 
01887   //...................................... Frame for text
01888   TString xMenuSigEv =      " Sigma of sample means ";
01889   fMenuSigEv = new TGPopupMenu(gClient->GetRoot());                                  fCnew++;
01890   fMenuSigEv->AddEntry("1D, Histo SM channels",fMenuSigEvGlobalFullC);
01891   fMenuSigEv->AddEntry("1D, Histo SM channels SAME",fMenuSigEvGlobalSameC);
01892   fMenuSigEv->AddSeparator();
01893   fMenuSigEv->AddEntry("1D, Histo Projection" ,fMenuSigEvProjFullC);
01894   fMenuSigEv->AddEntry("1D, Histo Projection  SAME",fMenuSigEvProjSameC);
01895   fMenuSigEv->AddSeparator();
01896   fMenuSigEv->AddEntry("2D, (eta,phi) view SM ",fMenuSigEvEtaPhiC);
01897   fMenuSigEv->Connect("Activated(Int_t)", "TCnaDialogEB", this, "HandleMenu(Int_t)");
01898   fMenuBarSigEv = new TGMenuBar(fVmmSigEvFrame, 1, 1, kHorizontalFrame);             fCnew++;
01899   fMenuBarSigEv->AddPopup(xMenuSigEv, fMenuSigEv, fLayoutGeneral);
01900   fLayoutMenuBarSigEv = new TGLayoutHints(kLHintsRight, xB1,xB1,xB1,xB1);            fCnew++;
01901   fVmmSigEvFrame->AddFrame(fMenuBarSigEv, fLayoutMenuBarSigEv);
01902   fLayoutVmmSigEvFrame =
01903     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);                   fCnew++;
01904   fSuMoHozSubSigFrame->AddFrame(fVmmSigEvFrame, fLayoutVmmSigEvFrame);
01905 
01906   //########################################### Composite frame sig of sig
01907   fVmmSigSigFrame = new TGCompositeFrame
01908     (fSuMoHozSubSigFrame,60,20, kHorizontalFrame, kSunkenFrame);                     fCnew++;
01909 
01910   //...................................... Menu sig of sig 
01911   //...................................... Frame for Ymax
01912   fVmaxSigSigFrame = new TGCompositeFrame
01913     (fVmmSigSigFrame,60,20, kHorizontalFrame, kSunkenFrame);                         fCnew++;
01914   //...................................... Button Max + Entry field 
01915   fVmaxSigSigBut = new TGTextButton(fVmaxSigSigFrame, xYmaxButText);                 fCnew++;      // 150
01916   fVmaxSigSigBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonVmaxSigSig()");
01917   fVmaxSigSigBut->SetToolTipText("Click here to register ymax for the display of the quantity");
01918   fLayoutVmaxSigSigBut =
01919     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1);                    fCnew++;
01920   fVmaxSigSigFrame->AddFrame(fVmaxSigSigBut,  fLayoutVmaxSigSigBut);
01921   fEntryVmaxSigSigNumber = new TGTextBuffer();                                       fCnew++;
01922   fVmaxSigSigText = new TGTextEntry(fVmaxSigSigFrame, fEntryVmaxSigSigNumber);       fCnew++;
01923   fVmaxSigSigText->SetToolTipText("Click and enter ymax");
01924   fVmaxSigSigText->Resize(nb_of_evts_buf_lenght, fVmaxSigSigText->GetDefaultHeight());
01925   DisplayInEntryField(fVmaxSigSigText,fKeyVmaxSigSig);
01926   fVmaxSigSigText->Connect("ReturnPressed()", "TCnaDialogEB", this, "DoButtonVmaxSigSig()");
01927   fLayoutVmaxSigSigFieldText =
01928     new TGLayoutHints(kLHintsBottom | kLHintsRight, xB1,xB1,xB1,xB1);                fCnew++;
01929   fVmaxSigSigFrame->AddFrame(fVmaxSigSigText, fLayoutVmaxSigSigFieldText);
01930   fLayoutVmaxSigSigFrame =
01931     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);                   fCnew++;
01932   fVmmSigSigFrame->AddFrame(fVmaxSigSigFrame, fLayoutVmaxSigSigFrame);
01933 
01934   //...................................... Frame for Ymin
01935   fVminSigSigFrame = new TGCompositeFrame
01936     (fVmmSigSigFrame,60,20, kHorizontalFrame, kSunkenFrame);                         fCnew++;
01937   //...................................... Button Min + Entry field 
01938   fVminSigSigBut = new TGTextButton(fVminSigSigFrame, xYminButText);                 fCnew++;
01939   fVminSigSigBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonVminSigSig()");
01940   fVminSigSigBut->SetToolTipText("Click here to register ymin for the display of the quantity");
01941   fLayoutVminSigSigBut =
01942     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1);                    fCnew++;
01943   fVminSigSigFrame->AddFrame(fVminSigSigBut,  fLayoutVminSigSigBut);
01944   fEntryVminSigSigNumber = new TGTextBuffer();                                       fCnew++;
01945   fVminSigSigText = new TGTextEntry(fVminSigSigFrame, fEntryVminSigSigNumber);       fCnew++;   // 160
01946   fVminSigSigText->SetToolTipText("Click and enter ymin");
01947   fVminSigSigText->Resize(nb_of_evts_buf_lenght, fVminSigSigText->GetDefaultHeight());
01948   DisplayInEntryField(fVminSigSigText,fKeyVminSigSig);
01949   fVminSigSigText->Connect("ReturnPressed()", "TCnaDialogEB", this, "DoButtonVminSigSig()");
01950   fLayoutVminSigSigFieldText =
01951     new TGLayoutHints(kLHintsBottom | kLHintsRight, xB1,xB1,xB1,xB1);                fCnew++;
01952   fVminSigSigFrame->AddFrame(fVminSigSigText, fLayoutVminSigSigFieldText);
01953   fLayoutVminSigSigFrame =
01954     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);                   fCnew++;
01955   fVmmSigSigFrame->AddFrame(fVminSigSigFrame, fLayoutVminSigSigFrame);
01956 
01957   //...................................... Frame for text
01958   TString xMenuSigSig =  " Sigma of sample sigmas ";
01959   fMenuSigSig = new TGPopupMenu(gClient->GetRoot());                                 fCnew++;
01960   fMenuSigSig->AddEntry("1D, Histo SM channels",fMenuSigSigGlobalFullC);
01961   fMenuSigSig->AddEntry("1D, Histo SM channels SAME",fMenuSigSigGlobalSameC);
01962   fMenuSigSig->AddSeparator();
01963   fMenuSigSig->AddEntry("1D, Histo Projection" ,fMenuSigSigProjFullC);
01964   fMenuSigSig->AddEntry("1D, Histo Projection  SAME",fMenuSigSigProjSameC);
01965   fMenuSigSig->AddSeparator();
01966   fMenuSigSig->AddEntry("2D, (eta,phi) view SM ",fMenuSigSigEtaPhiC);
01967   fMenuSigSig->Connect("Activated(Int_t)", "TCnaDialogEB", this, "HandleMenu(Int_t)");
01968   fMenuBarSigSig = new TGMenuBar(fVmmSigSigFrame, 1, 1, kHorizontalFrame);           fCnew++;
01969   fMenuBarSigSig->AddPopup(xMenuSigSig, fMenuSigSig, fLayoutGeneral);
01970   fLayoutMenuBarSigSig = new TGLayoutHints(kLHintsRight, xB1,xB1,xB1,xB1);           fCnew++;
01971   fVmmSigSigFrame->AddFrame(fMenuBarSigSig, fLayoutMenuBarSigSig);
01972 
01973   fLayoutVmmSigSigFrame =
01974     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);                   fCnew++;
01975   fSuMoHozSubSigFrame->AddFrame(fVmmSigSigFrame, fLayoutVmmSigSigFrame);
01976 
01977 
01978   //########################################### Composite frame sig of corss
01979   fVmmSigCorssFrame = new TGCompositeFrame
01980     (fSuMoHozSubSigFrame,60,20, kHorizontalFrame, kSunkenFrame);                     fCnew++;
01981 
01982   //...................................... Menu sig of Corss
01983   //...................................... Frame for Ymax
01984   fVmaxSigCorssFrame = new TGCompositeFrame
01985     (fVmmSigCorssFrame,60,20, kHorizontalFrame, kSunkenFrame);                       fCnew++;
01986   //...................................... Button Max + Entry field 
01987   fVmaxSigCorssBut = new TGTextButton(fVmaxSigCorssFrame, xYmaxButText);             fCnew++;
01988   fVmaxSigCorssBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonVmaxSigCorss()");
01989   fVmaxSigCorssBut->SetToolTipText("Click here to register ymax for the display of the quantity");
01990   fLayoutVmaxSigCorssBut =
01991     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1);                    fCnew++;    // 170
01992   fVmaxSigCorssFrame->AddFrame(fVmaxSigCorssBut,  fLayoutVmaxSigCorssBut);
01993   fEntryVmaxSigCorssNumber = new TGTextBuffer();                                     fCnew++;
01994   fVmaxSigCorssText = new TGTextEntry(fVmaxSigCorssFrame, fEntryVmaxSigCorssNumber); fCnew++;
01995   fVmaxSigCorssText->SetToolTipText("Click and enter ymax");
01996   fVmaxSigCorssText->Resize(nb_of_evts_buf_lenght, fVmaxSigCorssText->GetDefaultHeight());
01997   DisplayInEntryField(fVmaxSigCorssText,fKeyVmaxSigCorss);
01998   fVmaxSigCorssText->Connect("ReturnPressed()", "TCnaDialogEB", this, "DoButtonVmaxSigCorss()");
01999   fLayoutVmaxSigCorssFieldText =
02000     new TGLayoutHints(kLHintsBottom | kLHintsRight, xB1,xB1,xB1,xB1);                fCnew++;
02001   fVmaxSigCorssFrame->AddFrame(fVmaxSigCorssText, fLayoutVmaxSigCorssFieldText);
02002   fLayoutVmaxSigCorssFrame =
02003     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);                   fCnew++;
02004   fVmmSigCorssFrame->AddFrame(fVmaxSigCorssFrame, fLayoutVmaxSigCorssFrame);
02005 
02006   //...................................... Frame for Ymin
02007   fVminSigCorssFrame = new TGCompositeFrame
02008     (fVmmSigCorssFrame,60,20, kHorizontalFrame, kSunkenFrame);                       fCnew++;
02009   //...................................... Button Min + Entry field 
02010   fVminSigCorssBut = new TGTextButton(fVminSigCorssFrame, xYminButText);             fCnew++;
02011   fVminSigCorssBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonVminSigCorss()");
02012   fVminSigCorssBut->SetToolTipText("Click here to register ymin for the display of the quantity");
02013   fLayoutVminSigCorssBut =
02014     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1);                    fCnew++;
02015   fVminSigCorssFrame->AddFrame(fVminSigCorssBut,  fLayoutVminSigCorssBut);
02016   fEntryVminSigCorssNumber = new TGTextBuffer();                                     fCnew++;
02017   fVminSigCorssText = new TGTextEntry(fVminSigCorssFrame, fEntryVminSigCorssNumber); fCnew++;
02018   fVminSigCorssText->SetToolTipText("Click and enter ymin");
02019   fVminSigCorssText->Resize(nb_of_evts_buf_lenght, fVminSigCorssText->GetDefaultHeight());
02020   DisplayInEntryField(fVminSigCorssText,fKeyVminSigCorss);
02021   fVminSigCorssText->Connect("ReturnPressed()", "TCnaDialogEB", this, "DoButtonVminSigCorss()");
02022   fLayoutVminSigCorssFieldText =
02023     new TGLayoutHints(kLHintsBottom | kLHintsRight, xB1,xB1,xB1,xB1);                fCnew++;
02024   fVminSigCorssFrame->AddFrame(fVminSigCorssText, fLayoutVminSigCorssFieldText);
02025   fLayoutVminSigCorssFrame =
02026     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);                   fCnew++;
02027   fVmmSigCorssFrame->AddFrame(fVminSigCorssFrame, fLayoutVminSigCorssFrame);
02028 
02029   //...................................... Frame for text
02030   TString xMenuSigCorss = "   Sigma of cor(s,s)    ";
02031   fMenuSigCorss = new TGPopupMenu(gClient->GetRoot());                               fCnew++;
02032   fMenuSigCorss->AddEntry("1D, Histo SM channels",fMenuSigCorssGlobalFullC);
02033   fMenuSigCorss->AddEntry("1D, Histo SM channels SAME",fMenuSigCorssGlobalSameC);
02034   fMenuSigCorss->AddSeparator();
02035   fMenuSigCorss->AddEntry("1D, Histo Projection" ,fMenuSigCorssProjFullC);
02036   fMenuSigCorss->AddEntry("1D, Histo Projection  SAME",fMenuSigCorssProjSameC);
02037   fMenuSigCorss->AddSeparator();
02038   fMenuSigCorss->AddEntry("2D, (eta,phi) view SM ",fMenuSigCorssEtaPhiC);
02039   fMenuSigCorss->Connect("Activated(Int_t)", "TCnaDialogEB", this, "HandleMenu(Int_t)");
02040   fMenuBarSigCorss = new TGMenuBar(fVmmSigCorssFrame, 1, 1, kHorizontalFrame);       fCnew++;
02041   fMenuBarSigCorss->AddPopup(xMenuSigCorss, fMenuSigCorss, fLayoutGeneral);
02042   fLayoutMenuBarSigCorss = new TGLayoutHints(kLHintsRight, xB1,xB1,xB1,xB1);         fCnew++;
02043   fVmmSigCorssFrame->AddFrame(fMenuBarSigCorss, fLayoutMenuBarSigCorss);
02044 
02045   fLayoutVmmSigCorssFrame =
02046     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);                   fCnew++;    // 185
02047   fSuMoHozSubSigFrame->AddFrame(fVmmSigCorssFrame, fLayoutVmmSigCorssFrame);
02048 
02049   //------------------------------------------------------------------------------------------
02050   
02051   fLayoutSuMoHozSubSigFrame =
02052     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1, xB1, xB1, xB1);                fCnew++;
02053   fSuMoHozFrame->AddFrame(fSuMoHozSubSigFrame, fLayoutSuMoHozSubSigFrame);
02054   
02055   //######################################################################################################"
02056 
02057   //------------------------------------------- subframe
02058   fLayoutSuMoHozFrame =
02059     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1, xB1, xB1, xB1);                fCnew++;
02060   fSuMoUpFrame->AddFrame(fSuMoHozFrame, fLayoutSuMoHozFrame);
02061 
02062   AddFrame(fVoidFrame, fLayoutGeneral);
02063 
02064   //########################################### Composite frame corcc in towers
02065   fVmmEvCovttFrame = new TGCompositeFrame
02066     (fSuMoUpFrame,60,20, kHorizontalFrame, kSunkenFrame);                            fCnew++;
02067  
02068   //...................................... Menu covariances between towers 
02069 
02070   //...................................... Frame for Ymax
02071   fVmaxEvCovttFrame = new TGCompositeFrame
02072     (fVmmEvCovttFrame,60,20, kHorizontalFrame, kSunkenFrame);                        fCnew++;
02073   //...................................... Button Max + Entry field 
02074   fVmaxEvCovttBut = new TGTextButton(fVmaxEvCovttFrame, xYmaxButText);               fCnew++;
02075   fVmaxEvCovttBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonVmaxEvCovtt()");
02076   fVmaxEvCovttBut->SetToolTipText("Click here to register ymax for the display of the quantity");
02077   fLayoutVmaxEvCovttBut =
02078     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1);                    fCnew++;
02079   fVmaxEvCovttFrame->AddFrame(fVmaxEvCovttBut,  fLayoutVmaxEvCovttBut);
02080   fEntryVmaxEvCovttNumber = new TGTextBuffer();                                      fCnew++;
02081   fVmaxEvCovttText = new TGTextEntry(fVmaxEvCovttFrame, fEntryVmaxEvCovttNumber);    fCnew++;
02082   fVmaxEvCovttText->SetToolTipText("Click and enter ymax");
02083   fVmaxEvCovttText->Resize(nb_of_evts_buf_lenght, fVmaxEvCovttText->GetDefaultHeight());
02084   DisplayInEntryField(fVmaxEvCovttText, fKeyVmaxEvCovtt);
02085   fVmaxEvCovttText->Connect("ReturnPressed()", "TCnaDialogEB", this, "DoButtonVmaxEvCovtt()");
02086 
02087   fLayoutVmaxEvCovttFieldText =
02088     new TGLayoutHints(kLHintsBottom | kLHintsRight, xB1,xB1,xB1,xB1);                fCnew++;
02089   fVmaxEvCovttFrame->AddFrame(fVmaxEvCovttText, fLayoutVmaxEvCovttFieldText);
02090   fLayoutVmaxEvCovttFrame =
02091     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);                   fCnew++;
02092   fVmmEvCovttFrame->AddFrame(fVmaxEvCovttFrame, fLayoutVmaxEvCovttFrame);
02093 
02094   //...................................... Frame for Ymin
02095   fVminEvCovttFrame = new TGCompositeFrame
02096     (fVmmEvCovttFrame,60,20, kHorizontalFrame, kSunkenFrame);                        fCnew++;
02097   //...................................... Button Min + Entry field
02098   fVminEvCovttBut = new TGTextButton(fVminEvCovttFrame, xYminButText);               fCnew++;
02099   fVminEvCovttBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonVminEvCovtt()");
02100   fVminEvCovttBut->SetToolTipText("Click here to register ymin for the display of the quantity");
02101   fLayoutVminEvCovttBut =
02102     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1);                    fCnew++;
02103   fVminEvCovttFrame->AddFrame(fVminEvCovttBut,  fLayoutVminEvCovttBut);
02104   fEntryVminEvCovttNumber = new TGTextBuffer();                                      fCnew++;
02105   fVminEvCovttText = new TGTextEntry(fVminEvCovttFrame, fEntryVminEvCovttNumber);    fCnew++;    // 200
02106   fVminEvCovttText->SetToolTipText("Click and enter ymin");
02107   fVminEvCovttText->Resize(nb_of_evts_buf_lenght, fVminEvCovttText->GetDefaultHeight());
02108   DisplayInEntryField(fVminEvCovttText,fKeyVminEvCovtt);
02109   fVminEvCovttText->Connect("ReturnPressed()", "TCnaDialogEB", this, "DoButtonVminEvCovtt()");
02110   fLayoutVminEvCovttFieldText =
02111     new TGLayoutHints(kLHintsBottom | kLHintsRight, xB1,xB1,xB1,xB1);                fCnew++;
02112   fVminEvCovttFrame->AddFrame(fVminEvCovttText, fLayoutVminEvCovttFieldText);
02113   fLayoutVminEvCovttFrame =
02114     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);                   fCnew++;
02115   fVmmEvCovttFrame->AddFrame(fVminEvCovttFrame, fLayoutVminEvCovttFrame);
02116 
02117   //........................................... Frame for text 
02118   TString xMenuCovtt = "Cor(c,c) in towers (SM view)";
02119   fMenuCovtt = new TGPopupMenu(gClient->GetRoot());                                  fCnew++;
02120   fMenuCovtt->AddEntry("2D, (eta,phi) view SM ",fMenuCovttColzC);
02121   fMenuCovtt->Connect("Activated(Int_t)", "TCnaDialogEB", this, "HandleMenu(Int_t)");
02122   fMenuBarCovtt = new TGMenuBar(fVmmEvCovttFrame, 1, 1, kHorizontalFrame);           fCnew++;
02123   fMenuBarCovtt->AddPopup(xMenuCovtt, fMenuCovtt, fLayoutGeneral);
02124   fLayoutMenuBarCovtt = new TGLayoutHints(kLHintsRight, xB1,xB1,xB1,xB1);            fCnew++;
02125   fVmmEvCovttFrame->AddFrame(fMenuBarCovtt, fLayoutMenuBarCovtt);
02126    fLayoutVmmEvCovttFrame =
02127     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);                   fCnew++;
02128   fSuMoUpFrame->AddFrame(fVmmEvCovttFrame, fLayoutVmmEvCovttFrame);
02129 
02130   //########################################### Composite frame ev of cortt
02131   fVmmEvCorttFrame = new TGCompositeFrame
02132     (fSuMoUpFrame,60,20, kHorizontalFrame, kSunkenFrame);                            fCnew++;
02133  
02134   //...................................... Menu correlations between towers 
02135   //...................................... Frame for Ymax
02136   fVmaxEvCorttFrame = new TGCompositeFrame
02137     (fVmmEvCorttFrame,60,20, kHorizontalFrame, kSunkenFrame);                        fCnew++;
02138   //...................................... Button Max + Entry field 
02139   fVmaxEvCorttBut = new TGTextButton(fVmaxEvCorttFrame, xYmaxButText);               fCnew++;
02140   fVmaxEvCorttBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonVmaxEvCortt()");
02141   fVmaxEvCorttBut->SetToolTipText("Click here to register ymax for the display of the quantity");
02142   fLayoutVmaxEvCorttBut =
02143     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1);                    fCnew++;    // 210
02144   fVmaxEvCorttFrame->AddFrame(fVmaxEvCorttBut,  fLayoutVmaxEvCorttBut);
02145   fEntryVmaxEvCorttNumber = new TGTextBuffer();                                      fCnew++;
02146   fVmaxEvCorttText = new TGTextEntry(fVmaxEvCorttFrame, fEntryVmaxEvCorttNumber);    fCnew++;
02147   fVmaxEvCorttText->SetToolTipText("Click and enter ymax");
02148   fVmaxEvCorttText->Resize(nb_of_evts_buf_lenght, fVmaxEvCorttText->GetDefaultHeight());
02149   DisplayInEntryField(fVmaxEvCorttText, fKeyVmaxEvCortt);
02150   fVmaxEvCorttText->Connect("ReturnPressed()", "TCnaDialogEB", this, "DoButtonVmaxEvCortt()");
02151 
02152   fLayoutVmaxEvCorttFieldText =
02153     new TGLayoutHints(kLHintsBottom | kLHintsRight, xB1,xB1,xB1,xB1);                fCnew++;
02154   fVmaxEvCorttFrame->AddFrame(fVmaxEvCorttText, fLayoutVmaxEvCorttFieldText);
02155   fLayoutVmaxEvCorttFrame =
02156     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);                   fCnew++;
02157   fVmmEvCorttFrame->AddFrame(fVmaxEvCorttFrame, fLayoutVmaxEvCorttFrame);
02158 
02159   //...................................... Frame for Ymin
02160   fVminEvCorttFrame = new TGCompositeFrame
02161     (fVmmEvCorttFrame,60,20, kHorizontalFrame, kSunkenFrame);                        fCnew++;
02162   //...................................... Button Min + Entry field 
02163   fVminEvCorttBut = new TGTextButton(fVminEvCorttFrame, xYminButText);               fCnew++;
02164   fVminEvCorttBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonVminEvCortt()");
02165   fVminEvCorttBut->SetToolTipText("Click here to register ymin for the display of the quantity");
02166   fLayoutVminEvCorttBut =
02167     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1);                    fCnew++;
02168   fVminEvCorttFrame->AddFrame(fVminEvCorttBut,  fLayoutVminEvCorttBut);
02169   fEntryVminEvCorttNumber = new TGTextBuffer();                                      fCnew++;
02170   fVminEvCorttText = new TGTextEntry(fVminEvCorttFrame, fEntryVminEvCorttNumber);    fCnew++;
02171   fVminEvCorttText->SetToolTipText("Click and enter ymin");
02172   fVminEvCorttText->Resize(nb_of_evts_buf_lenght, fVminEvCorttText->GetDefaultHeight());
02173   DisplayInEntryField(fVminEvCorttText,fKeyVminEvCortt);
02174   fVminEvCorttText->Connect("ReturnPressed()", "TCnaDialogEB", this, "DoButtonVminEvCortt()");
02175   fLayoutVminEvCorttFieldText =
02176     new TGLayoutHints(kLHintsBottom | kLHintsRight, xB1,xB1,xB1,xB1);                fCnew++;    // 220
02177   fVminEvCorttFrame->AddFrame(fVminEvCorttText, fLayoutVminEvCorttFieldText);
02178   fLayoutVminEvCorttFrame =
02179     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);                   fCnew++;
02180   fVmmEvCorttFrame->AddFrame(fVminEvCorttFrame, fLayoutVminEvCorttFrame);
02181 
02182   //...................................... Frame for text 
02183   TString xMenuCortt = " Correlations between towers";
02184   fMenuCortt = new TGPopupMenu(gClient->GetRoot());                                  fCnew++;
02185   fMenuCortt->AddEntry("2D, COLZ ",fMenuCorttColzC);
02186   fMenuCortt->AddEntry("3D, LEGO2Z" ,fMenuCorttLegoC);
02187   fMenuCortt->Connect("Activated(Int_t)", "TCnaDialogEB", this, "HandleMenu(Int_t)");
02188   fMenuBarCortt = new TGMenuBar(fVmmEvCorttFrame, 1, 1, kHorizontalFrame);           fCnew++;
02189   fMenuBarCortt->AddPopup(xMenuCortt, fMenuCortt, fLayoutGeneral);
02190   fLayoutMenuBarCortt = new TGLayoutHints(kLHintsRight, xB1,xB1,xB1,xB1);            fCnew++;
02191   fVmmEvCorttFrame->AddFrame(fMenuBarCortt, fLayoutMenuBarCortt);
02192   fLayoutVmmEvCorttFrame =
02193     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1);                   fCnew++;
02194   fSuMoUpFrame->AddFrame(fVmmEvCorttFrame, fLayoutVmmEvCorttFrame);
02195 
02196  
02197   //=============================================== "SuMo" frame ===============================================
02198   fLayoutSuMoUpFrame =
02199     new TGLayoutHints(kLHintsTop | kLHintsCenterX, xB1, xB1, xB1, xB1);              fCnew++;
02200   AddFrame(fSuMoUpFrame, fLayoutSuMoUpFrame);
02201 
02202   AddFrame(fVoidFrame, fLayoutGeneral);
02203 
02204   //======================================= Tower X & Tower Y FRAME ========================= 
02205   fTowSpFrame =
02206     new TGCompositeFrame(this,60,20,kHorizontalFrame,
02207                          GetDefaultFrameBackground());                               fCnew++;
02208 
02209   TString xTowXButText  = "  Tower X number-> ";
02210   TString xTowYButText  = "  Tower Y number-> ";
02211 
02212   Int_t tower_buf_lenght =  65;
02213  
02214   //============================= TOWER X =====================================
02215   fTxSubFrame = new TGCompositeFrame
02216     (fTowSpFrame,60,20,kVerticalFrame, GetDefaultFrameBackground());     fCnew++;
02217 
02218   fTowXFrame = new TGCompositeFrame
02219     (fTxSubFrame,60,20,kHorizontalFrame,kSunkenFrame);                    fCnew++;
02220 
02221   fTowXBut = new TGTextButton(fTowXFrame, xTowXButText, fTowXButC);       fCnew++;         // 230
02222   fTowXBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonTowX()");
02223   fTowXBut->SetToolTipText("Click here to register the tower X number written on the right");
02224   fTowXBut->Resize(tower_buf_lenght, fTowXBut->GetDefaultHeight());
02225   fLayoutTowXBut = new TGLayoutHints(kLHintsLeft, xB1,xB1,xB1,xB1);       fCnew++;
02226   fTowXFrame->AddFrame(fTowXBut,  fLayoutTowXBut);
02227 
02228   fEntryTowXNumber = new TGTextBuffer();                                  fCnew++;
02229   fTowXText = new TGTextEntry(fTowXFrame, fEntryTowXNumber);              fCnew++;
02230   fTowXText->SetToolTipText("Click and enter the Tower number");
02231   fTowXText->Resize(tower_buf_lenght, fTowXText->GetDefaultHeight());
02232   DisplayInEntryField(fTowXText,fKeyTowXNumber);
02233   fTowXText->Connect("ReturnPressed()", "TCnaDialogEB",this, "DoButtonTowX()");
02234   fLayoutTowXField =
02235     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1 );        fCnew++;
02236   fTowXFrame->AddFrame(fTowXText, fLayoutTowXField);
02237 
02238   fTxSubFrame->AddFrame(fTowXFrame, fLayoutGeneral);
02239 
02240   //========================== TOWER X CRYSTAL NUMBERING VIEW
02241   TString xChNbButText     = "  Tower X Crystal Numbering  ";
02242   fButChNb = new TGTextButton(fTxSubFrame, xChNbButText, fButChNbC);      fCnew++;
02243   fButChNb->Connect("Clicked()","TCnaDialogEB", this, "DoButtonChNb()");
02244   fLayoutChNbBut =
02245     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);      fCnew++;
02246   fTxSubFrame->AddFrame(fButChNb, fLayoutChNbBut); 
02247 
02248   //---------------- menus relative to the Tower X subframe 
02249 
02250   //===================== Menus relative to the tower X ======================
02251 
02252   TString xMenuBarCorGlob = " Cor(s,s) in crystals (Tower X view)";
02253   TString xMenuBarCovGlob = " Cov(s,s) in crystals (Tower X view)";
02254 
02255   //................. Menu correlations between samples for all the channels. Global view
02256   
02257   fMenuCorssAll = new TGPopupMenu(gClient->GetRoot());                      fCnew++;
02258   fMenuCorssAll->AddEntry("2D, COLZ",fMenuCorssAllColzC);
02259   fMenuCorssAll->Connect("Activated(Int_t)", "TCnaDialogEB", this, "HandleMenu(Int_t)");
02260   fMenuBarCorssAll =  new TGMenuBar(fTxSubFrame, 1, 1, kHorizontalFrame);   fCnew++;
02261   fMenuBarCorssAll->AddPopup(xMenuBarCorGlob, fMenuCorssAll, fLayoutGeneral);
02262   fTxSubFrame->AddFrame(fMenuBarCorssAll, fLayoutTopLeft);
02263 
02264   //................. Menu covariances between samples for all the channels. Global view
02265 
02266   fMenuCovssAll = new TGPopupMenu(gClient->GetRoot());                      fCnew++;
02267   fMenuCovssAll->AddEntry("2D, COLZ",fMenuCovssAllColzC);
02268   fMenuCovssAll->Connect("Activated(Int_t)", "TCnaDialogEB", this, "HandleMenu(Int_t)");
02269   fMenuBarCovssAll =  new TGMenuBar(fTxSubFrame, 1, 1, kHorizontalFrame);   fCnew++;         // 240
02270   fMenuBarCovssAll->AddPopup(xMenuBarCovGlob, fMenuCovssAll, fLayoutGeneral);
02271   fTxSubFrame->AddFrame(fMenuBarCovssAll, fLayoutTopLeft);
02272 
02273   //------------------ Add Tower X frame to the surframe 
02274   fLayoutTxSubFrame = 
02275     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);        fCnew++;
02276   fTowSpFrame->AddFrame(fTxSubFrame, fLayoutTxSubFrame);
02277 
02278   //============================= TOWER Y =====================================
02279 
02280   fTySubFrame = new TGCompositeFrame
02281     (fTowSpFrame,60,20,kVerticalFrame, GetDefaultFrameBackground());  fCnew++;
02282 
02283   fTowYFrame = new TGCompositeFrame
02284     (fTySubFrame,60,20,kHorizontalFrame,kSunkenFrame);                fCnew++;
02285 
02286   fTowYBut =
02287     new TGTextButton(fTowYFrame, xTowYButText, fTowYButC);            fCnew++;
02288   fTowYBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonTowY()");
02289   fTowYBut->SetToolTipText("Click here to register the tower Y number written on the right");
02290   fTowYBut->Resize(tower_buf_lenght, fTowYBut->GetDefaultHeight());
02291   fLayoutTowYBut = new TGLayoutHints(kLHintsLeft, xB1,xB1,xB1,xB1);   fCnew++;
02292   fTowYFrame->AddFrame(fTowYBut,  fLayoutTowYBut);
02293 
02294   fEntryTowYNumber = new TGTextBuffer();                              fCnew++;
02295   fTowYText = new TGTextEntry(fTowYFrame, fEntryTowYNumber);          fCnew++;
02296   fTowYText->SetToolTipText("Click and enter the Tower number");
02297   fTowYText->Resize(tower_buf_lenght, fTowYText->GetDefaultHeight());
02298   DisplayInEntryField(fTowYText,fKeyTowYNumber);
02299   fTowYText->Connect("ReturnPressed()", "TCnaDialogEB",this, "DoButtonTowY()");
02300   fLayoutTowYField =
02301     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1 );    fCnew++;
02302   fTowYFrame->AddFrame(fTowYText, fLayoutTowYField);
02303 
02304   fTySubFrame->AddFrame(fTowYFrame, fLayoutGeneral);
02305 
02306   //---------------- menus relative to the Tower Y subframe 
02307 
02308   //                    (no such menus )
02309 
02310   //------------------ Add Tower Y subframe to the frame 
02311   fLayoutTySubFrame =  new TGLayoutHints
02312     (kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);                   fCnew++;
02313 
02314   fTowSpFrame->AddFrame(fTySubFrame, fLayoutTySubFrame);
02315 
02316   //---------------------- composite frame (tower X, tower Y)
02317   fLayoutTowSpFrame =  new TGLayoutHints
02318     (kLHintsTop | kLHintsCenterX, xB1, xB1, xB1, xB1);                fCnew++;   // 250
02319 
02320   AddFrame(fTowSpFrame, fLayoutTowSpFrame);
02321 
02322   //------------------ menus relatives to the Horizontal frame (Tower_X + Tower_Y)
02323 
02324   TString xMenuBarCorcc = " Cor(Crystal Tower X, Crystal Tower Y). Mean over samples";
02325   TString xMenuBarCovcc = " Cov(Crystal Tower X, Crystal Tower Y). Mean over samples";
02326 
02327   //...................... Menu correlations between channels
02328 
02329   fMenuCorcc = new TGPopupMenu(gClient->GetRoot());                   fCnew++;
02330   fMenuCorcc->AddEntry("2D, COLZ",fMenuCorccColzC);
02331   fMenuCorcc->AddSeparator();
02332   fMenuCorcc->AddEntry("3D, LEGO2Z",fMenuCorccLegoC);
02333   fMenuCorcc->Connect("Activated(Int_t)", "TCnaDialogEB", this, "HandleMenu(Int_t)");
02334   fMenuBarCorcc = new TGMenuBar(this, 1, 1, kHorizontalFrame);        fCnew++;
02335   fMenuBarCorcc->AddPopup(xMenuBarCorcc, fMenuCorcc, fLayoutTopRight);
02336   AddFrame(fMenuBarCorcc, fLayoutGeneral);
02337 
02338   //...................... Menu covariances between channels
02339 
02340   fMenuCovcc = new TGPopupMenu(gClient->GetRoot());                   fCnew++;
02341   fMenuCovcc->AddEntry("2D, COLZ",fMenuCovccColzC);
02342   fMenuCovcc->AddSeparator();
02343   fMenuCovcc->AddEntry("3D, LEGO2Z",fMenuCovccLegoC);
02344   fMenuCovcc->Connect("Activated(Int_t)", "TCnaDialogEB", this,"HandleMenu(Int_t)");
02345   fMenuBarCovcc = new TGMenuBar(this, 1, 1, kHorizontalFrame);        fCnew++;
02346   fMenuBarCovcc->AddPopup(xMenuBarCovcc, fMenuCovcc, fLayoutTopRight);
02347   AddFrame(fMenuBarCovcc, fLayoutGeneral);
02348 
02349   //=================================== CHANNEL & SAMPLE FRAME ==============
02350 
02351   fChSpFrame =
02352     new TGCompositeFrame(this,60,20,kHorizontalFrame,
02353                          GetDefaultFrameBackground());                fCnew++;
02354 
02355   TString xChanButText  = "  Tower X Channel number-> ";
02356   TString xSampButText  = "  Sample number->   ";
02357 
02358   Int_t chan_buf_lenght =  50;
02359   Int_t samp_buf_lenght =  50;
02360 
02361   TString xMenuBarCorss    = " Correlations between samples";
02362   TString xMenuBarCovss    = " Covariances between samples";
02363   TString xMenuBarEvs      = " Expectation values of the samples";
02364   TString xMenuBarSigs     = " Sigmas of the samples";
02365 
02366   //=================================== CHANNEL (CRYSTAL)
02367   fChSubFrame = new TGCompositeFrame
02368     (fChSpFrame,60,20,kVerticalFrame, GetDefaultFrameBackground());   fCnew++;
02369 
02370   fChanFrame = new TGCompositeFrame
02371     (fChSubFrame,60,20,kHorizontalFrame,kSunkenFrame);                fCnew++;
02372 
02373   fChanBut =
02374     new TGTextButton(fChanFrame, xChanButText, fChanButC);            fCnew++;
02375   fChanBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonChan()");
02376   fChanBut->SetToolTipText("Click here to register the crystal number written to the right");
02377   fChanBut->Resize(chan_buf_lenght, fChanBut->GetDefaultHeight());
02378   fLayoutChanBut = new TGLayoutHints(kLHintsLeft, xB1,xB1,xB1,xB1);   fCnew++;
02379   fChanFrame->AddFrame(fChanBut,  fLayoutChanBut);
02380 
02381   fEntryChanNumber = new TGTextBuffer();                              fCnew++;       // 260
02382   fChanText = new TGTextEntry(fChanFrame, fEntryChanNumber);          fCnew++;
02383   fChanText->SetToolTipText("Click and enter the crystal number");
02384   fChanText->Resize(chan_buf_lenght, fChanText->GetDefaultHeight());
02385   DisplayInEntryField(fChanText,fKeyChanNumber);
02386   fChanText->Connect("ReturnPressed()", "TCnaDialogEB",this, "DoButtonChan()");
02387   fLayoutChanField =
02388     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1 );    fCnew++;
02389   fChanFrame->AddFrame(fChanText, fLayoutChanField);
02390 
02391   fChSubFrame->AddFrame(fChanFrame, fLayoutGeneral);
02392 
02393   //--------------------- Menus relative to the channel SubFrame -------------
02394   //...................... Menu correlations between samples
02395 
02396   fMenuCorss = new TGPopupMenu(gClient->GetRoot());                   fCnew++;
02397   fMenuCorss->AddEntry("2D, COLZ",fMenuCorssColzC);
02398   fMenuCorss->AddSeparator();
02399   fMenuCorss->AddEntry("3D, LEGO2Z",fMenuCorssLegoC);
02400   fMenuCorss->AddEntry("3D, SURF1Z",fMenuCorssSurf1C);
02401   fMenuCorss->AddEntry("3D, SURF4",fMenuCorssSurf4C);
02402   fMenuCorss->Connect("Activated(Int_t)", "TCnaDialogEB", this, "HandleMenu(Int_t)");
02403   fMenuBarCorss = new TGMenuBar(fChSubFrame, 1, 1, kHorizontalFrame); fCnew++;
02404   fMenuBarCorss->AddPopup(xMenuBarCorss, fMenuCorss, fLayoutTopLeft);
02405   fChSubFrame->AddFrame(fMenuBarCorss, fLayoutTopLeft);
02406 
02407   //...................... Menu covariances between samples
02408 
02409   fMenuCovss = new TGPopupMenu(gClient->GetRoot());                   fCnew++;
02410   fMenuCovss->AddEntry("2D, COLZ",fMenuCovssColzC);
02411   fMenuCovss->AddSeparator();
02412   fMenuCovss->AddEntry("3D, LEGO2Z",fMenuCovssLegoC);
02413   fMenuCovss->AddEntry("3D, SURF1Z",fMenuCovssSurf1C);
02414   fMenuCovss->AddEntry("3D, SURF4",fMenuCovssSurf4C);
02415   fMenuCovss->Connect("Activated(Int_t)", "TCnaDialogEB", this, "HandleMenu(Int_t)");
02416   fMenuBarCovss = new TGMenuBar(fChSubFrame, 1, 1, kHorizontalFrame); fCnew++;
02417   fMenuBarCovss->AddPopup(xMenuBarCovss, fMenuCovss, fLayoutTopLeft);
02418   fChSubFrame->AddFrame(fMenuBarCovss, fLayoutTopLeft);
02419 
02420   //...................... Menu expectation values of the samples
02421 
02422   fMenuEv = new TGPopupMenu(gClient->GetRoot());                      fCnew++;
02423   fMenuEv->AddEntry("1D, HISTO ",fMenuEvLineFullC);
02424   fMenuEv->AddEntry("1D, HISTO SAME",fMenuEvLineSameC);
02425   fMenuEv->Connect("Activated(Int_t)", "TCnaDialogEB", this, "HandleMenu(Int_t)");
02426   fMenuBarEv = new TGMenuBar(fChSubFrame, 1, 1, kHorizontalFrame);    fCnew++;
02427   fMenuBarEv->AddPopup(xMenuBarEvs, fMenuEv, fLayoutTopLeft);
02428   fChSubFrame->AddFrame(fMenuBarEv, fLayoutTopLeft);
02429 
02430   //...................... Menu sigmas/variances of the samples
02431 
02432   fMenuVar = new TGPopupMenu(gClient->GetRoot());                     fCnew++;
02433   fMenuVar->AddEntry("1D, HISTO ",fMenuVarLineFullC);
02434   fMenuVar->AddEntry("1D, HISTO SAME",fMenuVarLineSameC);
02435   fMenuVar->Connect("Activated(Int_t)", "TCnaDialogEB", this, "HandleMenu(Int_t)");
02436   fMenuBarVar = new TGMenuBar(fChSubFrame, 1, 1, kHorizontalFrame);   fCnew++;         // 270
02437   fMenuBarVar->AddPopup(xMenuBarSigs, fMenuVar, fLayoutTopLeft);
02438   fChSubFrame->AddFrame(fMenuBarVar, fLayoutTopLeft);
02439 
02440   //------------------ Add Channel subframe to the frame 
02441   fLayoutChSubFrame =  new TGLayoutHints
02442     (kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);                   fCnew++;
02443   fChSpFrame->AddFrame(fChSubFrame, fLayoutChSubFrame);
02444 
02445   //=================================== SAMPLE
02446   fSpSubFrame = new TGCompositeFrame
02447     (fChSpFrame,60,20,kVerticalFrame, GetDefaultFrameBackground());   fCnew++;
02448 
02449   fSampFrame = new TGCompositeFrame
02450     (fSpSubFrame,60,20,kHorizontalFrame, kSunkenFrame);               fCnew++;
02451 
02452   fSampBut = new TGTextButton(fSampFrame, xSampButText, fSampButC);   fCnew++;
02453   fSampBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonSamp()");
02454   fSampBut->SetToolTipText("Click here to register the sample number written to the right");
02455   fSampBut->Resize(samp_buf_lenght, fSampBut->GetDefaultHeight());
02456   fLayoutSampBut =
02457     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1);     fCnew++;
02458   fSampFrame->AddFrame(fSampBut, fLayoutSampBut);
02459 
02460   fEntrySampNumber = new TGTextBuffer();                              fCnew++;
02461   fSampText = new TGTextEntry(fSampFrame, fEntrySampNumber);          fCnew++;
02462   fSampText->SetToolTipText("Click and enter the sample number");
02463   fSampText->Resize(samp_buf_lenght, fSampText->GetDefaultHeight());
02464   DisplayInEntryField(fSampText,fKeySampNumber);
02465   fSampText->Connect("ReturnPressed()", "TCnaDialogEB",this, "DoButtonSamp()");
02466   fLayoutSampField =
02467     new TGLayoutHints(kLHintsTop | kLHintsRight, xB1,xB1,xB1,xB1 );   fCnew++;
02468   fSampFrame->AddFrame(fSampText, fLayoutSampField);
02469 
02470   fSpSubFrame->AddFrame(fSampFrame,fLayoutGeneral);
02471 
02472   fLayoutSpSubFrame =  new TGLayoutHints
02473     (kLHintsTop | kLHintsRight, xB1, xB1, xB1, xB1);                  fCnew++;
02474   fChSpFrame->AddFrame(fSpSubFrame, fLayoutSpSubFrame);
02475 
02476   //---------------------- composite frame (channel/sample+menus)
02477 
02478   fLayoutChSpFrame =  new TGLayoutHints
02479     (kLHintsTop | kLHintsCenterX, xB1, xB1, xB1, xB1);                fCnew++;      // 280
02480   AddFrame(fChSpFrame, fLayoutChSpFrame);
02481 
02482 
02483  //====================== Menu histogram of the distribution
02484  //                       for a given (channel, sample)
02485 
02486   fMenuEvts = new TGPopupMenu(gClient->GetRoot());                    fCnew++;
02487   fMenuEvts->AddEntry("1D, HISTO",fMenuEvtsLineLinyFullC);
02488   fMenuEvts->AddEntry("1D, HISTO SAME",fMenuEvtsLineLinySameC);
02489   fMenuEvts->Connect("Activated(Int_t)", "TCnaDialogEB", this,
02490                      "HandleMenu(Int_t)");
02491 
02492   fMenuBarEvts = new TGMenuBar(this, 1, 1, kHorizontalFrame);         fCnew++;
02493   fMenuBarEvts->AddPopup("Event distribution for (Tower X Crystal, Sample)",
02494                      fMenuEvts, fLayoutGeneral);
02495 
02496   fLayoutMenuBarEvts =
02497     new TGLayoutHints(kLHintsCenterX, xB1,xB1,xB1,xB1);               fCnew++;
02498   AddFrame(fMenuBarEvts, fLayoutMenuBarEvts);
02499 
02500   AddFrame(fVoidFrame, fLayoutGeneral);
02501 
02502   //======================================== RUN LIST FOR HISTORY EVOLUTION
02503   TString xRunListButText  = " File name for TIME EVOLUTION plots ->  ";
02504   TString xMenuBarEvol     = " TIME EVOLUTION menu";
02505   Int_t run_list_buf_lenght  = 160;
02506 
02507   fRulFrame = new TGCompositeFrame(this,60,20, kHorizontalFrame, kSunkenFrame); fCnew++;
02508   
02509   fRulBut= new TGTextButton(fRulFrame, xRunListButText);                        fCnew++;
02510   fRulBut->Connect("Clicked()","TCnaDialogEB", this, "DoButtonRul()");
02511   fRulBut->SetToolTipText
02512     ("Click here to register the name of the file containing the run list (written on the right)");
02513   fLayoutRulBut =
02514     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1);     fCnew++;
02515   fRulFrame->AddFrame(fRulBut,  fLayoutRulBut);
02516 
02517   fEntryRulNumber = new TGTextBuffer();                               fCnew++;
02518   fRulText = new TGTextEntry(fRulFrame, fEntryRulNumber);             fCnew++;
02519   fRulText->SetToolTipText("Click and enter the name of the file containing the run list");
02520   fRulText->Resize(run_list_buf_lenght, fRulText->GetDefaultHeight());
02521   fRulText->Connect("ReturnPressed()", "TCnaDialogEB", this, "DoButtonRul()");
02522   fLayoutRulFieldText =
02523     new TGLayoutHints(kLHintsBottom | kLHintsLeft, xB1,xB1,xB1,xB1);  fCnew++;
02524   fRulFrame->AddFrame(fRulText, fLayoutRulFieldText);
02525 
02526   fLayoutRulFieldFrame =
02527     new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1,xB1,xB1,xB1);     fCnew++;        // 290
02528   AddFrame(fRulFrame, fLayoutRulFieldFrame);
02529 
02530   //...................... Menu evolution in time
02531 
02532   fMenuEvol = new TGPopupMenu(gClient->GetRoot());                    fCnew++;
02533   fMenuEvol->AddSeparator();
02534   fMenuEvol->AddEntry("1D, Mean Pedestals ",fMenuEvolEvEvPolmFullC);
02535   fMenuEvol->AddEntry("1D, Mean Pedestals SAME",fMenuEvolEvEvPolmSameC);
02536   fMenuEvol->AddSeparator();
02537   fMenuEvol->AddEntry("1D, Mean of Sigmas ",fMenuEvolEvSigPolmFullC);
02538   fMenuEvol->AddEntry("1D, Mean of Sigmas SAME",fMenuEvolEvSigPolmSameC);
02539   fMenuEvol->AddSeparator();
02540   fMenuEvol->AddEntry("1D, Mean of cor(s,s) ",fMenuEvolEvCorssPolmFullC);
02541   fMenuEvol->AddEntry("1D, Mean of cor(s,s) SAME",fMenuEvolEvCorssPolmSameC);
02542   fMenuEvol->AddSeparator();
02543   fMenuEvol->AddEntry("1D, Pedestal a.f.o. evt number ",fMenuEvolSampLineFullC);
02544   fMenuEvol->AddEntry("1D, Pedestal a.f.o. evt number SAME",fMenuEvolSampLineSameC);
02545 
02546   fMenuEvol->Connect("Activated(Int_t)", "TCnaDialogEB", this, "HandleMenu(Int_t)");
02547   fMenuBarEvol = new TGMenuBar(this , 1, 1, kHorizontalFrame);        fCnew++;
02548   fMenuBarEvol->AddPopup(xMenuBarEvol, fMenuEvol, fLayoutTopLeft);
02549   AddFrame(fMenuBarEvol, fLayoutTopLeft);
02550 
02551   AddFrame(fVoidFrame, fLayoutGeneral);
02552 
02553   //======================== Last Buttons ==================================
02554 
02555   //========================== LinLog frame: buttons: LinX, LinY, LogX, LogY
02556 
02557   fLinLogFrame = new TGCompositeFrame(this,60,20, kHorizontalFrame, kSunkenFrame);    fCnew++;
02558 
02559   //-------------------------- Lin X <-> Log X
02560   TString xLogxButText     = " LOG X ";
02561   fButLogx = new TGCheckButton(fLinLogFrame, xLogxButText, fButLogxC);                fCnew++;
02562   fButLogx->Connect("Clicked()","TCnaDialogEB", this, "DoButtonLogx()");
02563   fLayoutLogxBut = new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);   fCnew++;
02564   fLinLogFrame->AddFrame(fButLogx, fLayoutLogxBut);
02565   //-------------------------- Lin Y <-> Log Y
02566   TString xLogyButText     = " LOG Y ";
02567   fButLogy = new TGCheckButton(fLinLogFrame, xLogyButText, fButLogyC);                fCnew++;
02568   fButLogy->Connect("Clicked()","TCnaDialogEB", this, "DoButtonLogy()");
02569   fLayoutLogyBut = new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);   fCnew++;
02570   fLinLogFrame->AddFrame(fButLogy, fLayoutLogyBut);
02571 
02572   AddFrame(fVoidFrame, fLayoutBottRight);
02573   AddFrame(fLinLogFrame, fLayoutGeneral);
02574 
02575   //========================== EXIT
02576   TString xExitButText     = " Exit ";
02577   fButExit = new TGTextButton(this, xExitButText, fButExitC);                         fCnew++;
02578   fButExit->Connect("Clicked()","TCnaDialogEB", this, "DoButtonExit()");
02579   //fButExit->SetCommand(".q");
02580   fLayoutExitBut = new TGLayoutHints(kLHintsTop | kLHintsRight, xB1, xB1, xB1, xB1);  fCnew++;
02581   AddFrame(fButExit, fLayoutExitBut);
02582 
02583   //========================== Last frame: buttons: ROOT version, Help
02584 
02585   fLastFrame = new TGCompositeFrame(this,60,20, kHorizontalFrame, kSunkenFrame);      fCnew++;   // 300
02586 
02587   //-------------------------- ROOT version
02588   TString xRootButText     = " ROOT Version ";
02589   fButRoot = new TGTextButton(fLastFrame, xRootButText, fButRootC);                   fCnew++;
02590   fButRoot->Connect("Clicked()","TCnaDialogEB", this, "DoButtonRoot()");
02591   fLayoutRootBut = new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);   fCnew++;
02592   fLastFrame->AddFrame(fButRoot, fLayoutRootBut);
02593 
02594   //-------------------------- HELP
02595   TString xHelpButText     = " Help ";
02596   fButHelp = new TGTextButton(fLastFrame, xHelpButText, fButHelpC);                   fCnew++;
02597   fButHelp->Connect("Clicked()","TCnaDialogEB", this, "DoButtonHelp()");
02598   fLayoutHelpBut = new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);   fCnew++;   // 304
02599   fLastFrame->AddFrame(fButHelp, fLayoutHelpBut);
02600 
02601   AddFrame(fVoidFrame, fLayoutBottRight);
02602   AddFrame(fLastFrame, fLayoutGeneral);
02603 
02604   //................................. Window
02605 
02606   MapSubwindows();
02607   Layout();
02608 
02609   SetWindowName("Correlated Noises Analysis (CNA) , ECAL Barrel");
02610   SetIconName("CNA");
02611   MapWindow();
02612 
02613   // cout << "TCnaDialogEB> Leaving constructor with arguments:" << endl;
02614   // cout << "            fCnew = " << fCnew << ", fCdelete = " << fCdelete << endl;
02615 
02616 }
02617 //   end of constructor with arguments
02618 
02619 //###################################################################
02620 //
02621 //                        M E T H O D S
02622 //
02623 //###################################################################
02624 
02625 //===============================================================
02626 //
02627 //                          Buttons
02628 //
02629 //===============================================================
02630 void TCnaDialogEB::DoButtonAna()
02631 {
02632 //Registration of the type of the analysis
02633 
02634   char* bufferchain;
02635   bufferchain = (char*)fAnaText->GetBuffer()->GetString();
02636 
02637   fKeyAnaType = bufferchain;
02638   
02639   fCnaCommand++;
02640   cout << "   *CNA [" << fCnaCommand
02641        << "]> Registration of analysis name ---> "
02642        << fKeyAnaType << endl;
02643 }
02644 
02645 //----------------------------------------------------------------------
02646 void TCnaDialogEB::DoButtonRun()
02647 {
02648 //Register run number or name of the file containing the list of run parameters
02649 
02650   //........................... get info from the entry field
02651   char* runchain = (char*)fRunText->GetBuffer()->GetString();
02652   char  tchiffr[10] = {'0', '1', '2',  '3',  '4',  '5',  '6',  '7',  '8',  '9' };
02653 
02654   //............. test of the first character (figure => run number, letter => file name)
02655   if( runchain[0] == tchiffr [0] || runchain[0] == tchiffr [1] ||
02656       runchain[0] == tchiffr [2] || runchain[0] == tchiffr [3] ||
02657       runchain[0] == tchiffr [4] || runchain[0] == tchiffr [5] ||
02658       runchain[0] == tchiffr [6] || runchain[0] == tchiffr [7] ||
02659       runchain[0] == tchiffr [8] || runchain[0] == tchiffr [9] )
02660     {
02661       fKeyRunNumberTString = (TString)runchain;  
02662       fKeyRunNumber = atoi(runchain);
02663       fCnaCommand++;
02664       cout << "   *CNA [" << fCnaCommand
02665            << "]> Registration of run number -------> "
02666            << fKeyRunNumber << endl;
02667     }
02668   else
02669     {
02670       fCnaError++;
02671       cout << "   !CNA (" << fCnaError << ") *ERROR* ===> "
02672            << " Please, enter a number."
02673            << fTTBELL << endl;
02674     }
02675 }
02676 
02677 //-------------------------------------------------------------------
02678 void TCnaDialogEB::DoButtonFev()
02679 {
02680 //Registration of the first event number
02681 
02682   char* bufferchain;
02683   bufferchain = (char*)fFevText->GetBuffer()->GetString();
02684   fKeyFirstEvt = atoi(bufferchain);
02685 
02686   if ( fKeyFirstEvt < 0)
02687     {
02688       fCnaError++;
02689       cout << "   !CNA (" << fCnaError << ") *WARNING* ===> "
02690            << " First event number = " << fKeyFirstEvt
02691            << ": negative. " << endl 
02692            << "                                 Will be forced to zero."
02693            << fTTBELL << endl;
02694     }
02695 
02696   fCnaCommand++;
02697   cout << "   *CNA [" << fCnaCommand
02698        << "]> Registration of first taken event number -> "
02699        << fKeyFirstEvt << endl;
02700 }
02701 //-------------------------------------------------------------------
02702 void TCnaDialogEB::DoButtonNoe()
02703 {
02704 //Registration of the number of events
02705 
02706   char* bufferchain;
02707   bufferchain = (char*)fNoeText->GetBuffer()->GetString();
02708   fKeyNbOfEvts = atoi(bufferchain);
02709 
02710   if ( fKeyNbOfEvts <= 0)
02711     {
02712       fCnaError++;
02713       cout << "   !CNA (" << fCnaError << ") *WARNING* ===> "
02714            << " Number of events = " << fKeyNbOfEvts
02715            << ": null or negative." << endl
02716            << "                 Will be forced to the number of entries "
02717            << fTTBELL << endl;
02718     }
02719 
02720   fCnaCommand++;
02721   cout << "   *CNA [" << fCnaCommand
02722        << "]> Registration of number of taken events -> "
02723        << fKeyNbOfEvts << endl;
02724 }
02725 
02726 //-------------------------------------------------------------------
02727 void TCnaDialogEB::DoButtonSuMo()
02728 {
02729 //Registration of the Super-Module number
02730 
02731   char* bufferchain;
02732   bufferchain = (char*)fSuMoText->GetBuffer()->GetString();
02733   fKeySuMoNumberTString = (TString)bufferchain;
02734   fKeySuMoNumber = atoi(bufferchain);
02735   
02736   fCnaCommand++;
02737   cout << "   *CNA [" << fCnaCommand
02738        << "]> Registration of Super-Module number -> "
02739        << fKeySuMoNumber << endl;
02740 
02741   TEBParameters* MyEcalParameters = new TEBParameters();    fCnew++;
02742 
02743   if ( (fKeySuMoNumber < 1) || (fKeySuMoNumber > MyEcalParameters->MaxSMInBarrel() )  )
02744     {
02745       fCnaError++;
02746       cout << "   !CNA (" << fCnaError << ") *** ERROR *** ===> "
02747            << " SuperModule number = " << fKeySuMoNumber
02748            << ": out of range ( range = [ 1 ," << MyEcalParameters->MaxSMInBarrel() << " ] )"
02749            << fTTBELL << endl;
02750     }
02751 
02752   delete MyEcalParameters;                                      fCdelete++;
02753 }
02754 //-------------------------------------------------------------------
02755 
02756 void TCnaDialogEB::DoButtonVminFoundEvts()
02757 {
02758 //Registration of Ymin for number of found events
02759 
02760   char* bufferchain;
02761   bufferchain = (char*)fVminFoundEvtsText->GetBuffer()->GetString();
02762 
02763   fKeyVminFoundEvts = (Double_t)atof(bufferchain);
02764 
02765   fCnaCommand++;
02766   cout << "   *CNA [" << fCnaCommand
02767        << "]> Registration of Ymin for plot of number of found events -> "
02768        << fKeyVminFoundEvts << endl;
02769 }
02770 //-------------------------------------------------------------------
02771 
02772 void TCnaDialogEB::DoButtonVmaxFoundEvts()
02773 {
02774 //Registration of Ymax for number of found events
02775 
02776   char* bufferchain;
02777   bufferchain = (char*)fVmaxFoundEvtsText->GetBuffer()->GetString();
02778 
02779   fKeyVmaxFoundEvts = (Double_t)atof(bufferchain);
02780 
02781   fCnaCommand++;
02782   cout << "   *CNA [" << fCnaCommand
02783        << "]> Registration of Ymax for plot of number of found events -> "
02784        << fKeyVmaxFoundEvts << endl;
02785 }
02786 //-------------------------------------------------------------------
02787 
02788 void TCnaDialogEB::DoButtonVminEvEv()
02789 {
02790 //Registration of Ymin for mean pedestals
02791 
02792   char* bufferchain;
02793   bufferchain = (char*)fVminEvEvText->GetBuffer()->GetString();
02794 
02795   fKeyVminEvEv = (Double_t)atof(bufferchain);
02796 
02797   fCnaCommand++;
02798   cout << "   *CNA [" << fCnaCommand
02799        << "]> Registration of Ymin for plot of mean pedestals -> "
02800        << fKeyVminEvEv << endl;
02801 }
02802 //-------------------------------------------------------------------
02803 
02804 void TCnaDialogEB::DoButtonVmaxEvEv()
02805 {
02806 //Registration of Ymax for mean pedestals
02807 
02808   char* bufferchain;
02809   bufferchain = (char*)fVmaxEvEvText->GetBuffer()->GetString();
02810 
02811   fKeyVmaxEvEv = (Double_t)atof(bufferchain);
02812 
02813   fCnaCommand++;
02814   cout << "   *CNA [" << fCnaCommand
02815        << "]> Registration of Ymax for plot of mean pedestals -> "
02816        << fKeyVmaxEvEv << endl;
02817 }
02818 //-------------------------------------------------------------------
02819 
02820 void TCnaDialogEB::DoButtonVminEvSig()
02821 {
02822 //Registration of Ymin for mean of sample sigmas (noise)
02823 
02824   char* bufferchain;
02825   bufferchain = (char*)fVminEvSigText->GetBuffer()->GetString();
02826 
02827   fKeyVminEvSig = (Double_t)atof(bufferchain);
02828 
02829   fCnaCommand++;
02830   cout << "   *CNA [" << fCnaCommand
02831        << "]> Registration of Ymin for plot of mean of sample sigmas (noise) -> "
02832        << fKeyVminEvSig << endl;
02833 }
02834 //-------------------------------------------------------------------
02835 
02836 void TCnaDialogEB::DoButtonVmaxEvSig()
02837 {
02838 //Registration of Ymax for mean of sample sigmas (noise)
02839 
02840   char* bufferchain;
02841   bufferchain = (char*)fVmaxEvSigText->GetBuffer()->GetString();
02842 
02843   fKeyVmaxEvSig = (Double_t)atof(bufferchain);
02844 
02845   fCnaCommand++;
02846   cout << "   *CNA [" << fCnaCommand
02847        << "]> Registration of Ymax for plot of mean of sample sigmas (noise) -> "
02848        << fKeyVmaxEvSig << endl;
02849 }
02850 //-------------------------------------------------------------------
02851 
02852 void TCnaDialogEB::DoButtonVminEvCorss()
02853 {
02854 //Registration of Ymin for mean of cor(s,s)
02855 
02856   char* bufferchain;
02857   bufferchain = (char*)fVminEvCorssText->GetBuffer()->GetString();
02858 
02859   fKeyVminEvCorss = (Double_t)atof(bufferchain);
02860 
02861   fCnaCommand++;
02862   cout << "   *CNA [" << fCnaCommand
02863        << "]> Registration of Ymin for plot of mean of cor(s,s) -> "
02864        << fKeyVminEvCorss << endl;
02865 }
02866 //-------------------------------------------------------------------
02867 
02868 void TCnaDialogEB::DoButtonVmaxEvCorss()
02869 {
02870 //Registration of Ymax for mean of cor(s,s)
02871 
02872   char* bufferchain;
02873   bufferchain = (char*)fVmaxEvCorssText->GetBuffer()->GetString();
02874 
02875   fKeyVmaxEvCorss = (Double_t)atof(bufferchain);
02876 
02877   fCnaCommand++;
02878   cout << "   *CNA [" << fCnaCommand
02879        << "]> Registration of Ymax for plot of mean of cor(s,s) -> "
02880        << fKeyVmaxEvCorss << endl;
02881 }
02882 //-------------------------------------------------------------------
02883 
02884 
02885 void TCnaDialogEB::DoButtonVminSigEv()
02886 {
02887 //Registration of Ymin for sigmas of sample means
02888 
02889   char* bufferchain;
02890   bufferchain = (char*)fVminSigEvText->GetBuffer()->GetString();
02891 
02892   fKeyVminSigEv = (Double_t)atof(bufferchain);
02893 
02894   fCnaCommand++;
02895   cout << "   *CNA [" << fCnaCommand
02896        << "]> Registration of Ymin for plot of sigmas of sample means -> "
02897        << fKeyVminSigEv << endl;
02898 }
02899 //-------------------------------------------------------------------
02900 
02901 void TCnaDialogEB::DoButtonVmaxSigEv()
02902 {
02903 //Registration of Ymax for sigmas of sample means 
02904 
02905   char* bufferchain;
02906   bufferchain = (char*)fVmaxSigEvText->GetBuffer()->GetString();
02907 
02908   fKeyVmaxSigEv = (Double_t)atof(bufferchain);
02909 
02910   fCnaCommand++;
02911   cout << "   *CNA [" << fCnaCommand
02912        << "]> Registration of Ymax for plot of sigmas of sample means -> "
02913        << fKeyVmaxSigEv << endl;
02914 }
02915 //-------------------------------------------------------------------
02916 
02917 void TCnaDialogEB::DoButtonVminSigSig()
02918 {
02919 //Registration of Ymin for sigmas of sample sigmas
02920 
02921   char* bufferchain;
02922   bufferchain = (char*)fVminSigSigText->GetBuffer()->GetString();
02923 
02924   fKeyVminSigSig = (Double_t)atof(bufferchain);
02925 
02926   fCnaCommand++;
02927   cout << "   *CNA [" << fCnaCommand
02928        << "]> Registration of Ymin for plot of sigmas of sample sigmas -> "
02929        << fKeyVminSigSig << endl;
02930 }
02931 //-------------------------------------------------------------------
02932 
02933 void TCnaDialogEB::DoButtonVmaxSigSig()
02934 {
02935 //Registration of Ymax for sigmas of sample sigmas
02936 
02937   char* bufferchain;
02938   bufferchain = (char*)fVmaxSigSigText->GetBuffer()->GetString();
02939 
02940   fKeyVmaxSigSig = (Double_t)atof(bufferchain);
02941 
02942   fCnaCommand++;
02943   cout << "   *CNA [" << fCnaCommand
02944        << "]> Registration of Ymax for plot of sigmas of sample sigmas -> "
02945        << fKeyVmaxSigSig << endl;
02946 }
02947 //-------------------------------------------------------------------
02948 
02949 void TCnaDialogEB::DoButtonVminSigCorss()
02950 {
02951 //Registration of Ymin for sigmas of cor(s,s)
02952 
02953   char* bufferchain;
02954   bufferchain = (char*)fVminSigCorssText->GetBuffer()->GetString();
02955 
02956   fKeyVminSigCorss = (Double_t)atof(bufferchain);
02957 
02958   fCnaCommand++;
02959   cout << "   *CNA [" << fCnaCommand
02960        << "]> Registration of Ymin for plot of sigmas of cor(s,s) -> "
02961        << fKeyVminSigCorss << endl;
02962 }
02963 //-------------------------------------------------------------------
02964 
02965 void TCnaDialogEB::DoButtonVmaxSigCorss()
02966 {
02967 //Registration of Ymax for sigmas of cor(s,s)
02968 
02969   char* bufferchain;
02970   bufferchain = (char*)fVmaxSigCorssText->GetBuffer()->GetString();
02971 
02972   fKeyVmaxSigCorss = (Double_t)atof(bufferchain);
02973 
02974   fCnaCommand++;
02975   cout << "   *CNA [" << fCnaCommand
02976        << "]> Registration of Ymax for plot of sigmas of cor(s,s) -> "
02977        << fKeyVmaxSigCorss << endl;
02978 }
02979 //-------------------------------------------------------------------
02980 
02981 void TCnaDialogEB::DoButtonVminEvCortt()
02982 {
02983 //Registration of Ymin for cor(t,t)
02984 
02985   char* bufferchain;
02986   bufferchain = (char*)fVminEvCorttText->GetBuffer()->GetString();
02987 
02988   fKeyVminEvCortt = (Double_t)atof(bufferchain);
02989 
02990   fCnaCommand++;
02991   cout << "   *CNA [" << fCnaCommand
02992        << "]> Registration of Ymin for plot of cor(t,t) -> "
02993        << fKeyVminEvCortt << endl;
02994 }
02995 //-------------------------------------------------------------------
02996 
02997 void TCnaDialogEB::DoButtonVmaxEvCortt()
02998 {
02999 //Registration of Ymax for cor(t,t)
03000 
03001   char* bufferchain;
03002   bufferchain = (char*)fVmaxEvCorttText->GetBuffer()->GetString();
03003 
03004   fKeyVmaxEvCortt = (Double_t)atof(bufferchain);
03005 
03006   fCnaCommand++;
03007   cout << "   *CNA [" << fCnaCommand
03008        << "]> Registration of Ymax for plot of cor(t,t) -> "
03009        << fKeyVmaxEvCortt << endl;
03010 }
03011 
03012 //-------------------------------------------------------------------
03013 
03014 void TCnaDialogEB::DoButtonVminEvCovtt()
03015 {
03016 //Registration of Ymin for cor(c,c) in towers
03017 
03018   char* bufferchain;
03019   bufferchain = (char*)fVminEvCovttText->GetBuffer()->GetString();
03020 
03021   fKeyVminEvCovtt = (Double_t)atof(bufferchain);
03022 
03023   fCnaCommand++;
03024   cout << "   *CNA [" << fCnaCommand
03025        << "]> Registration of Ymin for plot of cor(c,c) in towers -> "
03026        << fKeyVminEvCovtt << endl;
03027 }
03028 //-------------------------------------------------------------------
03029 
03030 void TCnaDialogEB::DoButtonVmaxEvCovtt()
03031 {
03032 //Registration of Ymax for cor(c,c) in towers
03033 
03034   char* bufferchain;
03035   bufferchain = (char*)fVmaxEvCovttText->GetBuffer()->GetString();
03036 
03037   fKeyVmaxEvCovtt = (Double_t)atof(bufferchain);
03038 
03039   fCnaCommand++;
03040   cout << "   *CNA [" << fCnaCommand
03041        << "]> Registration of Ymax for plot of cor(c,c) in towers -> "
03042        << fKeyVmaxEvCovtt << endl;
03043 }
03044 
03045 //-------------------------------------------------------------------
03046 
03047 void TCnaDialogEB::DoButtonSMNb()
03048 {
03049   //  fCnaCommand++;
03050   //  cout << "   *CNA [" << fCnaCommand
03051   //       << "]> Tower numbering global view for SuperModule number "
03052   //       << fKeySuMoNumber << endl;
03053 
03054   ViewSMTowerNumbering();
03055 }
03056 
03057 //-------------------------------------------------------------------
03058 void TCnaDialogEB::DoButtonChan()
03059 {
03060 //Registration of the channel number
03061 
03062   char* bufferchain;
03063   bufferchain = (char*)fChanText->GetBuffer()->GetString();
03064   fKeyChanNumber = atoi(bufferchain);
03065 
03066   fCnaCommand++;
03067   cout << "   *CNA [" << fCnaCommand
03068        << "]> Registration of channel number ---> "
03069        << fKeyChanNumber << endl;
03070 
03071   TEBParameters* MyEcalParameters = new TEBParameters();    fCnew++;
03072 
03073   if ( (fKeyChanNumber < 0) || (fKeyChanNumber > MyEcalParameters->MaxCrysInTow()-1 )  )
03074     {
03075       fCnaError++;
03076       cout << "   !CNA (" << fCnaError << ") *** ERROR *** ===> "
03077            << " Channel number in tower = " << fKeyChanNumber
03078            << ": out of range ( range = [ 0 ," << MyEcalParameters->MaxCrysInTow()-1 << " ] )"
03079            << fTTBELL << endl;
03080     }
03081   delete MyEcalParameters;                                      fCdelete++;
03082 }
03083 //-------------------------------------------------------------------
03084 void TCnaDialogEB::DoButtonSamp()
03085 {
03086 //Registration of the sample number
03087 
03088   char* bufferchain;
03089   bufferchain = (char*)fSampText->GetBuffer()->GetString();
03090   fKeySampNumber = atoi(bufferchain);
03091 
03092   fCnaCommand++;
03093   cout << "   *CNA [" << fCnaCommand
03094        << "]> Registration of sample number ----> "
03095        << fKeySampNumber << endl;
03096 
03097   TEBParameters* MyEcalParameters = new TEBParameters();    fCnew++;
03098 
03099   if ( (fKeySampNumber < 0) || (fKeySampNumber > MyEcalParameters->MaxSampADC()-1 )  )
03100     {
03101       fCnaError++;
03102       cout << "   !CNA (" << fCnaError << ") *** ERROR *** ===> "
03103            << " Sample number = " << fKeySampNumber
03104            << ": out of range ( range = [ 0 ," << MyEcalParameters->MaxSampADC()-1 << " ] )"
03105            << fTTBELL << endl;
03106     }
03107   
03108   delete MyEcalParameters;                                      fCdelete++;
03109 }
03110 //-------------------------------------------------------------------
03111 void TCnaDialogEB::DoButtonTowX()
03112 {
03113 //Registration of the tower X number
03114 
03115   char* bufferchain;
03116   bufferchain = (char*)fTowXText->GetBuffer()->GetString();
03117   fKeyTowXNumber = atoi(bufferchain);
03118   fCnaCommand++;
03119   cout << "   *CNA [" << fCnaCommand
03120        << "]> Registration of tower X number ---> "
03121        << fKeyTowXNumber << endl;
03122 
03123   TEBParameters* MyEcalParameters = new TEBParameters();    fCnew++;
03124 
03125   if ( (fKeyTowXNumber < 1) || (fKeyTowXNumber > MyEcalParameters->MaxTowInSM() )  )
03126     {
03127       fCnaError++;
03128       cout << "   !CNA (" << fCnaError << ") *** ERROR *** ===> "
03129            << " Tower number = " << fKeyTowXNumber
03130            << ": out of range ( range = [ 1 ," << MyEcalParameters->MaxTowInSM() << " ] ) "
03131            << fTTBELL << endl;
03132     }
03133   
03134   delete MyEcalParameters;                                      fCdelete++;
03135 }
03136 
03137 //-------------------------------------------------------------------
03138 void TCnaDialogEB::DoButtonChNb()
03139 {
03140   //  fCnaCommand++;
03141   //  cout << "   *CNA [" << fCnaCommand
03142   //       << "]> Channel numbering global view for tower number "
03143   //       << fKeyTowXNumber << endl;
03144 
03145   ViewTowerCrystalNumbering(fKeyTowXNumber);
03146 }
03147 
03148 //-------------------------------------------------------------------
03149 void TCnaDialogEB::DoButtonTowY()
03150 {
03151 //Registration of the tower Y number
03152 
03153   char* bufferchain;
03154   bufferchain = (char*)fTowYText->GetBuffer()->GetString();
03155   fKeyTowYNumber = atoi(bufferchain);
03156   fCnaCommand++;
03157   cout << "   *CNA [" << fCnaCommand
03158        << "]> Registration of tower Y number ---> "
03159        << fKeyTowYNumber << endl;
03160 
03161   TEBParameters* MyEcalParameters = new TEBParameters();    fCnew++;
03162 
03163   if ( (fKeyTowYNumber < 1) || (fKeyTowYNumber > MyEcalParameters->MaxTowInSM() )  )
03164     {
03165       fCnaError++;
03166       cout << "   !CNA (" << fCnaError << ") *** ERROR *** ===> "
03167            << " Tower number = " << fKeyTowYNumber
03168            << ": out of range ( range = [ 1 ," << MyEcalParameters->MaxTowInSM() << " ] )"
03169            << fTTBELL << endl;
03170     }
03171   
03172   delete MyEcalParameters;                                      fCdelete++;
03173 }
03174 
03175 //----------------------------------------------------------------------
03176 void TCnaDialogEB::DoButtonRul()
03177 {
03178 //Register the name of the file containing the list of run parameters
03179 
03180   //........................... get info from the entry field
03181   char* listchain = (char*)fRulText->GetBuffer()->GetString();
03182   char tchiffr[10] = {'0', '1', '2',  '3',  '4',  '5',  '6',  '7',  '8',  '9' };
03183 
03184   //............. test of the first character (figure => run number, letter => file name)
03185   if( listchain[0] == tchiffr [0] || listchain[0] == tchiffr [1] ||
03186       listchain[0] == tchiffr [2] || listchain[0] == tchiffr [3] ||
03187       listchain[0] == tchiffr [4] || listchain[0] == tchiffr [5] ||
03188       listchain[0] == tchiffr [6] || listchain[0] == tchiffr [7] ||
03189       listchain[0] == tchiffr [8] || listchain[0] == tchiffr [9] )
03190     {
03191       fCnaError++;
03192       cout << "   !CNA (" << fCnaError << ") *ERROR* ===> "
03193            << " Please, enter a file name."
03194            << fTTBELL << endl;
03195     }
03196   else
03197     {
03198       fKeyFileNameRunList = listchain;
03199 
03200       fCnaCommand++;
03201       cout << "   *CNA [" << fCnaCommand
03202            << "]> Registration of file name for list of run parameters -------> "
03203            << fKeyFileNameRunList.Data() << endl;
03204     }
03205 }
03206 
03207 //===================================================================
03208 //
03209 //                       HandleMenu
03210 //
03211 //===================================================================
03212 void TCnaDialogEB::HandleMenu(Int_t id)
03213 {
03214   //HandleMenu
03215   
03216   //.................... Found events in the Super-Module
03217   if( id == fMenuFoundEvtsGlobalFullC ){ViewHistoSuperModuleFoundEventsOfCrystals(fOptPlotFull);}
03218   if( id == fMenuFoundEvtsGlobalSameC ){ViewHistoSuperModuleFoundEventsOfCrystals(fOptPlotSame);}
03219   if( id == fMenuFoundEvtsProjFullC   ){ViewHistoSuperModuleFoundEventsDistribution(fOptPlotFull);}
03220   if( id == fMenuFoundEvtsProjSameC   ){ViewHistoSuperModuleFoundEventsDistribution(fOptPlotSame);}
03221 
03222   //.................... Ev of Ev in the Super-Module
03223   if( id == fMenuEvEvGlobalFullC ){ViewHistoSuperModuleMeanPedestalsOfCrystals(fOptPlotFull);}
03224   if( id == fMenuEvEvGlobalSameC ){ViewHistoSuperModuleMeanPedestalsOfCrystals(fOptPlotSame);}
03225   if( id == fMenuEvEvProjFullC   ){ViewHistoSuperModuleMeanPedestalsDistribution(fOptPlotFull);}
03226   if( id == fMenuEvEvProjSameC   ){ViewHistoSuperModuleMeanPedestalsDistribution(fOptPlotSame);}
03227 
03228   //.................... Ev of Sig in the Super-Module
03229   if( id == fMenuEvSigGlobalFullC ){ViewHistoSuperModuleMeanOfSampleSigmasOfCrystals(fOptPlotFull);}
03230   if( id == fMenuEvSigGlobalSameC ){ViewHistoSuperModuleMeanOfSampleSigmasOfCrystals(fOptPlotSame);}
03231   if( id == fMenuEvSigProjFullC   ){ViewHistoSuperModuleMeanOfSampleSigmasDistribution(fOptPlotFull);}
03232   if( id == fMenuEvSigProjSameC   ){ViewHistoSuperModuleMeanOfSampleSigmasDistribution(fOptPlotSame);}
03233 
03234   //.................... Ev of Corss in the Super-Module
03235   if( id == fMenuEvCorssGlobalFullC ){ViewHistoSuperModuleMeanOfCorssOfCrystals(fOptPlotFull);}
03236   if( id == fMenuEvCorssGlobalSameC ){ViewHistoSuperModuleMeanOfCorssOfCrystals(fOptPlotSame);}
03237   if( id == fMenuEvCorssProjFullC   ){ViewHistoSuperModuleMeanOfCorssDistribution(fOptPlotFull);}
03238   if( id == fMenuEvCorssProjSameC   ){ViewHistoSuperModuleMeanOfCorssDistribution(fOptPlotSame);}
03239 
03240   //.................... Sig of Ev in the Super-Module
03241   if( id == fMenuSigEvGlobalFullC ){ViewHistoSuperModuleSigmaPedestalsOfCrystals(fOptPlotFull);}
03242   if( id == fMenuSigEvGlobalSameC ){ViewHistoSuperModuleSigmaPedestalsOfCrystals(fOptPlotSame);}
03243   if( id == fMenuSigEvProjFullC   ){ViewHistoSuperModuleSigmaPedestalsDistribution(fOptPlotFull);}
03244   if( id == fMenuSigEvProjSameC   ){ViewHistoSuperModuleSigmaPedestalsDistribution(fOptPlotSame);}
03245 
03246   //.................... Sig of Sig in the Super-Module
03247   if( id == fMenuSigSigGlobalFullC ){ViewHistoSuperModuleSigmaOfSampleSigmasOfCrystals(fOptPlotFull);}
03248   if( id == fMenuSigSigGlobalSameC ){ViewHistoSuperModuleSigmaOfSampleSigmasOfCrystals(fOptPlotSame);}
03249   if( id == fMenuSigSigProjFullC   ){ViewHistoSuperModuleSigmaOfSampleSigmasDistribution(fOptPlotFull);}
03250   if( id == fMenuSigSigProjSameC   ){ViewHistoSuperModuleSigmaOfSampleSigmasDistribution(fOptPlotSame);}
03251 
03252   //.................... Sig of Corss in the Super-Module
03253   if( id == fMenuSigCorssGlobalFullC ){ViewHistoSuperModuleSigmaOfCorssOfCrystals(fOptPlotFull);}
03254   if( id == fMenuSigCorssGlobalSameC ){ViewHistoSuperModuleSigmaOfCorssOfCrystals(fOptPlotSame);}
03255   if( id == fMenuSigCorssProjFullC   ){ViewHistoSuperModuleSigmaOfCorssDistribution(fOptPlotFull);}
03256   if( id == fMenuSigCorssProjSameC   ){ViewHistoSuperModuleSigmaOfCorssDistribution(fOptPlotSame);}
03257 
03258   //....................... (eta,phi) super-module viewing
03259   if( id ==  fMenuFoundEvtsEtaPhiC){ViewSuperModuleFoundEvents();}
03260   if( id ==  fMenuEvEvEtaPhiC     ){ViewSuperModuleMeanPedestals();}
03261   if( id ==  fMenuEvSigEtaPhiC    ){ViewSuperModuleMeanOfSampleSigmas();}
03262   if( id ==  fMenuEvCorssEtaPhiC  ){ViewSuperModuleMeanOfCorss();}
03263   if( id ==  fMenuSigEvEtaPhiC    ){ViewSuperModuleSigmaPedestals();}
03264   if( id ==  fMenuSigSigEtaPhiC   ){ViewSuperModuleSigmaOfSampleSigmas();}
03265   if( id ==  fMenuSigCorssEtaPhiC ){ViewSuperModuleSigmaOfCorss();}
03266 
03267   //............................... Correlations and covariances between towers
03268   if( id == fMenuCorttColzC ){ViewMatrixCorrelationTowers("COLZ");}
03269   if( id == fMenuCorttLegoC ){ViewMatrixCorrelationTowers("LEGO2Z");}
03270 
03271   if( id == fMenuCovttColzC ){ViewSuperModuleCorccMeanOverSamples();}  // noms a reprendre Covtt-> Corcc ?
03272   //if( id == fMenuCovttColzC ){ViewMatrixCovarianceTowers("COLZ");}
03273   //if( id == fMenuCovttLegoC ){ViewMatrixCovarianceTowers("LEGO2Z");}
03274 
03275   //............................... Correlations and covariances between channels
03276   if( id == fMenuCorccColzC ){ViewMatrixCorrelationCrystals(fKeyTowXNumber, fKeyTowYNumber, "COLZ");}
03277   if( id == fMenuCorccLegoC ){ViewMatrixCorrelationCrystals(fKeyTowXNumber, fKeyTowYNumber, "LEGO2Z");}
03278 
03279   if( id == fMenuCovccColzC ){ViewMatrixCovarianceCrystals(fKeyTowXNumber, fKeyTowYNumber, "COLZ");}
03280   if( id == fMenuCovccLegoC ){ViewMatrixCovarianceCrystals(fKeyTowXNumber, fKeyTowYNumber, "LEGO2Z");}
03281 
03282   //.................................... Correlations and covariances between samples
03283 
03284   if( id == fMenuCorssColzC  ){ViewMatrixCorrelationSamples(fKeyTowXNumber, fKeyChanNumber, "COLZ");}
03285   if( id == fMenuCorssLegoC  ){ViewMatrixCorrelationSamples(fKeyTowXNumber, fKeyChanNumber, "LEGO2Z");}
03286   if( id == fMenuCorssSurf1C ){ViewMatrixCorrelationSamples(fKeyTowXNumber, fKeyChanNumber, "SURF1Z");}
03287   if( id == fMenuCorssSurf4C ){ViewMatrixCorrelationSamples(fKeyTowXNumber, fKeyChanNumber, "SURF4");}
03288 
03289   if( id == fMenuCovssColzC  ){ViewMatrixCovarianceSamples(fKeyTowXNumber, fKeyChanNumber, "COLZ");}
03290   if( id == fMenuCovssLegoC  ){ViewMatrixCovarianceSamples(fKeyTowXNumber, fKeyChanNumber, "LEGO2Z");}
03291   if( id == fMenuCovssSurf1C ){ViewMatrixCovarianceSamples(fKeyTowXNumber, fKeyChanNumber, "SURF1Z");}
03292   if( id == fMenuCovssSurf4C ){ViewMatrixCovarianceSamples(fKeyTowXNumber, fKeyChanNumber, "SURF4");}
03293 
03294   //.................... Correlations and covariances between samples for all channels of a tower
03295   if( id == fMenuCorssAllColzC ){ViewTowerCorrelationSamples(fKeyTowXNumber);}
03296   if( id == fMenuCovssAllColzC ){ViewTowerCovarianceSamples(fKeyTowXNumber);}
03297      
03298   //..................................... Expectation values of the samples (mean pedestals)
03299   if( id == fMenuEvLineFullC )
03300     {ViewHistoCrystalExpectationValuesOfSamples(fKeyTowXNumber, fKeyChanNumber, fOptPlotFull);}
03301   if( id == fMenuEvLineSameC )
03302     {ViewHistoCrystalExpectationValuesOfSamples(fKeyTowXNumber, fKeyChanNumber, fOptPlotSame);}
03303   
03304   //..................................... Sigmas of the samples
03305   if( id == fMenuVarLineFullC )
03306     {ViewHistoCrystalSigmasOfSamples(fKeyTowXNumber, fKeyChanNumber, fOptPlotFull);}
03307   if( id == fMenuVarLineSameC )
03308     {ViewHistoCrystalSigmasOfSamples(fKeyTowXNumber, fKeyChanNumber, fOptPlotSame);}
03309 
03310   //..................................... Evolution in time (ViewHistime, except EvolSamp -> Viewhisto)
03311 
03312   if( id == fMenuEvolEvEvPolmFullC )
03313     {TString run_par_file_name = fKeyFileNameRunList.Data();
03314     ViewHistimeCrystalMeanPedestals(run_par_file_name, fKeyTowXNumber, fKeyChanNumber, fOptPlotFull);}
03315   if( id == fMenuEvolEvEvPolmSameC )
03316     {TString run_par_file_name = fKeyFileNameRunList.Data();
03317     ViewHistimeCrystalMeanPedestals(run_par_file_name, fKeyTowXNumber, fKeyChanNumber, fOptPlotSame);}
03318 
03319   if( id == fMenuEvolEvSigPolmFullC )
03320     {TString run_par_file_name = fKeyFileNameRunList.Data();
03321     ViewHistimeCrystalMeanSigmas(run_par_file_name, fKeyTowXNumber, fKeyChanNumber, fOptPlotFull);}
03322   if( id == fMenuEvolEvSigPolmSameC )
03323     {TString run_par_file_name = fKeyFileNameRunList.Data();
03324     ViewHistimeCrystalMeanSigmas(run_par_file_name, fKeyTowXNumber, fKeyChanNumber, fOptPlotSame);}
03325   
03326   if( id == fMenuEvolEvCorssPolmFullC )
03327     {TString run_par_file_name = fKeyFileNameRunList.Data();
03328     ViewHistimeCrystalMeanCorss(run_par_file_name, fKeyTowXNumber, fKeyChanNumber, fOptPlotFull);}
03329   if( id == fMenuEvolEvCorssPolmSameC )
03330     {TString run_par_file_name = fKeyFileNameRunList.Data();
03331     ViewHistimeCrystalMeanCorss(run_par_file_name, fKeyTowXNumber, fKeyChanNumber, fOptPlotSame);}
03332   
03333   if( id == fMenuEvolSampLineFullC )
03334     {ViewHistoCrystalPedestalEventNumber(fKeyTowXNumber, fKeyChanNumber, fOptPlotFull);}
03335   if( id == fMenuEvolSampLineSameC )
03336     {ViewHistoCrystalPedestalEventNumber(fKeyTowXNumber, fKeyChanNumber, fOptPlotSame);}
03337 
03338   //..................................... Event distribution
03339   if( id == fMenuEvtsLineLinyFullC )
03340     {ViewHistoSampleEventDistribution(fKeyTowXNumber, fKeyChanNumber, fKeySampNumber, fOptPlotFull);}
03341   if( id == fMenuEvtsLineLinySameC )
03342     {ViewHistoSampleEventDistribution(fKeyTowXNumber, fKeyChanNumber, fKeySampNumber, fOptPlotSame);}
03343 }
03344 
03345 //-------------------------------------------------------------------
03346 //
03347 //                        Last buttons methods
03348 //
03349 //-------------------------------------------------------------------
03350 //======================= LIN-LOG FRAME
03351 
03352 void TCnaDialogEB::DoButtonLogx()
03353 {
03354   if( fMemoScaleX == "LOG") {fKeyScaleX = "LIN";}
03355   if( fMemoScaleX == "LIN") {fKeyScaleX = "LOG";}
03356   fMemoScaleX = fKeyScaleX;
03357 
03358   fCnaCommand++;
03359   cout << "   *CNA [" << fCnaCommand
03360        << "]> Set X axis on " << fKeyScaleX << " scale " << endl;
03361 }
03362 void TCnaDialogEB::DoButtonLogy()
03363 {
03364   if( fMemoScaleY == "LOG" ) {fKeyScaleY = "LIN";}
03365   if( fMemoScaleY == "LIN" ) {fKeyScaleY = "LOG";}
03366   fMemoScaleY = fKeyScaleY;
03367 
03368   fCnaCommand++;
03369   cout << "   *CNA [" << fCnaCommand
03370        << "]> Set Y axis on " << fKeyScaleY << " scale " << endl;
03371 }
03372 
03373 //======================= LAST FRAME
03374 
03375 //-------------------------------------------------------------------
03376 void TCnaDialogEB::DoButtonRoot()
03377 {
03378   fCnaCommand++;
03379   cout << "   *CNA [" << fCnaCommand
03380        << "]> This is ROOT version " << gROOT->GetVersion()
03381        << endl;
03382 
03383 #define JBAT
03384 #ifndef JBAT
03385 
03386   //====================== prepa commande de soumission de job en batch
03387   //...... fabrication du script
03388   
03389   TString submit_script_name = "b";
03390   Text_t *t_run_number = (Text_t *)fKeyRunNumberTString.Data();
03391   submit_script_name.Append(t_run_number);
03392   submit_script_name.Append('_');
03393   Text_t *t_SM_number = (Text_t *)fKeySuMoNumberTString.Data();
03394   submit_script_name.Append(t_SM_number);
03395 
03396   cout << "TCnaDialogEB> CONTROLE 1. Open file " << submit_script_name.Data() << endl;
03397 
03398   TString s_path_name = gSystem->Getenv("HOME");
03399   TString s_cmssw_version = "/cmssw/ECALTBH4_0_4_0_pre1"; 
03400 
03401   fFcout_f.open(submit_script_name); 
03402   fFcout_f << "cd " << s_path_name.Data() << s_cmssw_version.Data() << endl
03403            << "eval `scramv1 runtime -sh`" << endl
03404            << "cd " << fCfgResultsRootFilePath.Data() << endl
03405            << "cmsRun " << s_path_name.Data() << s_cmssw_version.Data() << "/src/CalibCalorimetry/EcalCorrelatedNoiseAnalysisModules/data/EcalPedestalRun"<< fKeyRunNumberTString << ".cfg" << endl;
03406 
03407   //...... envoi de la commande
03408   fCnaCommand++;
03409   cout << "   *CNA [" << fCnaCommand
03410        << "]> Submit job from script cna001 "
03411        << endl;
03412 
03413   //system("qsub -q 1nh bsubmit");
03414   //Int_t i_exec = gSystem->Exec("qsub -q 1nh cna001");
03415   //cout << "TCnaDialogEB> CONTROLE 1. i_exec = " << i_exec << endl;
03416 
03417   fFcout_f.close();
03418   cout << "TCnaDialogEB> CONTROLE 2. Close file " <<  submit_script_name.Data() << endl;
03419 
03420 #endif // JBAT
03421 
03422 }
03423 
03424 //-------------------------------------------------------------------
03425 void TCnaDialogEB::DoButtonHelp()
03426 {
03427   fCnaCommand++;
03428   cout << "   *CNA [" << fCnaCommand
03429        << "]> YOU NEED HELP. Please, have a look at the web page -> "
03430        << "https://www.cern.ch/cms-fabbro/cna"
03431        << endl;
03432 }
03433 //-------------------------------------------------------------------
03434 void TCnaDialogEB::DoButtonExit()
03435 {
03436   fCnaCommand++;
03437   cout << "   *CNA [" << fCnaCommand
03438        << "]> Exit CNA session."
03439        << endl;
03440   //............................ Quit the ROOT session
03441   fButExit->SetCommand(".q");
03442 }
03443 
03444 //==========================================================================
03445 //
03446 //                  View  Matrix
03447 //
03448 //==========================================================================
03449 void TCnaDialogEB::ViewMatrixCorrelationTowers(const TString option_plot)
03450 {
03451 // Plot of correlation matrix between towers (mean over crystals and samples)
03452 
03453   TCnaViewEB* MyView = new TCnaViewEB();    fCnew++;
03454   MyView->GetPathForResultsRootFiles();
03455   MyView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber);
03456 
03457   fCnaCommand++;
03458   cout << "   *CNA [" << fCnaCommand
03459        << "]> Plot of correlation matrix between towers (mean over crystals and samples). Option: "
03460        << option_plot << endl;
03461 
03462   MyView->PutYmin("SMEvCorttMatrix",fKeyVminEvCortt);
03463   MyView->PutYmax("SMEvCorttMatrix",fKeyVmaxEvCortt);     
03464   MyView->CorrelationsBetweenTowers(option_plot);
03465   
03466   delete MyView;                       fCdelete++;
03467 }
03468 
03469 void TCnaDialogEB::ViewMatrixCovarianceTowers(const TString option_plot)
03470 {
03471 // Plot of covariance matrix between towers (mean over crystals and samples)
03472 
03473   TCnaViewEB* MyView = new TCnaViewEB();    fCnew++;
03474   MyView->GetPathForResultsRootFiles();
03475   MyView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber);
03476   
03477   fCnaCommand++;
03478   cout << "   *CNA [" << fCnaCommand
03479        << "]> Plot of covariance matrix between towers (mean over crystals and samples). Option: "
03480        << option_plot << endl;
03481 
03482   MyView->PutYmin("SMEvCovttMatrix",fKeyVminEvCovtt);
03483   MyView->PutYmax("SMEvCovttMatrix",fKeyVmaxEvCovtt);   
03484   MyView->CovariancesBetweenTowers(option_plot);
03485   
03486   delete MyView;                       fCdelete++;
03487 }
03488 
03489 void TCnaDialogEB::ViewMatrixCorrelationCrystals(const Int_t&  SMtower_X, const Int_t& SMtower_Y,
03490                                                const TString option_plot)
03491 {
03492 // Plot of correlation matrix (crystal of tower X, crystal of tower Y) (mean over samples)
03493 
03494   TCnaViewEB* MyView = new TCnaViewEB();    fCnew++;
03495   MyView->GetPathForResultsRootFiles();
03496   MyView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber);
03497   
03498   fCnaCommand++;
03499   cout << "   *CNA [" << fCnaCommand
03500        << "]> Plot of correlation matrix between crystals (mean over samples). Tower X: "
03501        << SMtower_X  << ", Tower Y: " << SMtower_Y << ", option: " << option_plot << endl;
03502 
03503   MyView->PutYmin("SMEvCorttMatrix",fKeyVminEvCortt);
03504   MyView->PutYmax("SMEvCorttMatrix",fKeyVmaxEvCortt);   
03505   MyView->CorrelationsBetweenCrystals( SMtower_X, SMtower_Y, option_plot);
03506   
03507   delete MyView;                       fCdelete++;
03508 }
03509 
03510 void TCnaDialogEB::ViewMatrixCovarianceCrystals(const Int_t&  SMtower_X, const Int_t& SMtower_Y,
03511                                               const TString option_plot)
03512 {
03513 // Plot of covariance matrix (crystal of tower X, crystal of tower Y) (mean over samples)
03514 
03515   TCnaViewEB* MyView = new TCnaViewEB();    fCnew++;
03516   MyView->GetPathForResultsRootFiles();
03517   MyView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber);
03518   
03519   fCnaCommand++;
03520   cout << "   *CNA [" << fCnaCommand
03521        << "]> Plot of covariance matrix between crystals (mean over samples). Tower X: "
03522        << SMtower_X  << ", Tower Y: " << SMtower_Y << ", option: " << option_plot << endl;
03523 
03524   MyView->PutYmin("SMEvCovttMatrix",fKeyVminEvCovtt);
03525   MyView->PutYmax("SMEvCovttMatrix",fKeyVmaxEvCovtt);    
03526   MyView->CovariancesBetweenCrystals( SMtower_X, SMtower_Y, option_plot);
03527   
03528   delete MyView;                       fCdelete++;
03529 }
03530 
03531 void TCnaDialogEB::ViewMatrixCorrelationSamples(const Int_t&  SMtower_X, const Int_t& crystal,
03532                                               const TString option_plot)
03533 {
03534 // Plot of correlation matrix between samples for a given crystal
03535 
03536   TCnaViewEB* MyView = new TCnaViewEB();    fCnew++;
03537   MyView->GetPathForResultsRootFiles();
03538   MyView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber);
03539   
03540   fCnaCommand++;
03541   cout << "   *CNA [" << fCnaCommand
03542        << "]> Plot of correlation matrix between samples. Tower "
03543        << SMtower_X  << ", crystal " << crystal << ", option: " << option_plot << endl;
03544  
03545   MyView->PutYmin("SMEvCorssGlobal",fKeyVminEvCorss);
03546   MyView->PutYmax("SMEvCorssGlobal",fKeyVmaxEvCorss); 
03547   MyView->CorrelationsBetweenSamples(SMtower_X, crystal, option_plot);
03548   
03549   delete MyView;                       fCdelete++;
03550 }
03551 
03552 void TCnaDialogEB::ViewMatrixCovarianceSamples(const Int_t&  SMtower_X, const Int_t& crystal,
03553                                              const TString option_plot)
03554 {
03555 // Plot of covariance matrix between samples for a given crystal
03556 
03557   TCnaViewEB* MyView = new TCnaViewEB();    fCnew++;
03558   MyView->GetPathForResultsRootFiles();
03559   MyView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber);
03560   
03561   fCnaCommand++;
03562   cout << "   *CNA [" << fCnaCommand
03563        << "]> Plot of covariance matrix between samples. Tower "
03564        << SMtower_X  << ", crystal " << crystal << ", option: " << option_plot << endl;
03565 
03566   MyView->PutYmin("SMEvSigGlobal",fKeyVminEvSig);  // same as mean of sample sigmas
03567   MyView->PutYmax("SMEvSigGlobal",fKeyVmaxEvSig);      
03568   MyView->CovariancesBetweenSamples( SMtower_X, crystal, option_plot);
03569   
03570   delete MyView;                       fCdelete++;
03571 }
03572 
03573 //==========================================================================
03574 //
03575 //                         ViewTower      
03576 //
03577 //     SMtower ==> (sample,sample) matrices for all the crystal of SMtower              
03578 //
03579 //==========================================================================
03580 void TCnaDialogEB::ViewTowerCorrelationSamples(const Int_t& SMtower)
03581 {
03582   // Plot of (sample,sample) correlation matrices for all the crystal of a given tower  
03583   TCnaViewEB* MyView = new TCnaViewEB();    fCnew++;
03584   MyView->GetPathForResultsRootFiles();
03585   MyView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber);
03586   
03587   fCnaCommand++;
03588   cout << "   *CNA [" << fCnaCommand
03589        << "]> Plot of correlation matrices between samples for each crystal of tower " << SMtower << endl;
03590   
03591   MyView->PutYmin("SMEvCorssGlobal",fKeyVminEvCorss);
03592   MyView->PutYmax("SMEvCorssGlobal",fKeyVmaxEvCorss); 
03593   MyView->CorrelationsBetweenSamples(SMtower);
03594   
03595   delete MyView;                       fCdelete++;
03596 }
03597 
03598 void TCnaDialogEB::ViewTowerCovarianceSamples(const Int_t& SMtower)
03599 {
03600   // Plot of (sample,sample) covariance matrices for all the crystal of a given tower  
03601   TCnaViewEB* MyView = new TCnaViewEB();    fCnew++;
03602   MyView->GetPathForResultsRootFiles();
03603   MyView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber);
03604   
03605   fCnaCommand++;
03606   cout << "   *CNA [" << fCnaCommand
03607        << "]> Plot of covariance matrices between samples for each crystal of tower "
03608        << SMtower << endl;
03609 
03610   MyView->PutYmin("SMEvSigGlobal",fKeyVminEvSig);   // same as mean of sample sigmas
03611   MyView->PutYmax("SMEvSigGlobal",fKeyVmaxEvSig);   
03612   MyView->CovariancesBetweenSamples(SMtower);
03613 
03614   delete MyView;                       fCdelete++;
03615 }
03616 //==========================================================================
03617 //
03618 //                         ViewSuperModule (eta,phi)
03619 //
03620 //==========================================================================
03621 
03622 void TCnaDialogEB::ViewSuperModuleFoundEvents()
03623 {
03624   TCnaViewEB* MyView = new TCnaViewEB();    fCnew++;
03625   MyView->GetPathForResultsRootFiles();
03626   MyView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber);
03627 
03628   fCnaCommand++;
03629   cout << "   *CNA [" << fCnaCommand
03630        << "]> 2D plot of Found Events. Supermodule: " << fKeySuMoNumber << endl;
03631   
03632   MyView->PutYmin("SMFoundEvtsGlobal",fKeyVminFoundEvts);
03633   MyView->PutYmax("SMFoundEvtsGlobal",fKeyVmaxFoundEvts);   
03634   MyView->EtaPhiSuperModuleFoundEvents();
03635   
03636   delete MyView;                       fCdelete++;
03637 }
03638 
03639 void TCnaDialogEB::ViewSuperModuleMeanPedestals()
03640 {
03641   TCnaViewEB* MyView = new TCnaViewEB();    fCnew++;
03642   MyView->GetPathForResultsRootFiles();
03643   MyView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber);
03644 
03645   fCnaCommand++;
03646   cout << "   *CNA [" << fCnaCommand
03647        << "]> 2D plot of Mean Pedestals. Supermodule: " << fKeySuMoNumber << endl;
03648 
03649   MyView->PutYmin("SMEvEvGlobal",fKeyVminEvEv);
03650   MyView->PutYmax("SMEvEvGlobal",fKeyVmaxEvEv);     
03651   MyView->EtaPhiSuperModuleMeanPedestals();
03652   
03653   delete MyView;                       fCdelete++;
03654 }
03655 
03656 void TCnaDialogEB::ViewSuperModuleMeanOfSampleSigmas()
03657 {
03658   TCnaViewEB* MyView = new TCnaViewEB();    fCnew++;
03659   MyView->GetPathForResultsRootFiles();
03660   MyView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber);
03661 
03662   fCnaCommand++;
03663   cout << "   *CNA [" << fCnaCommand
03664        << "]> 2D plot of Mean of Sample Sigmas. Supermodule: " << fKeySuMoNumber << endl;
03665 
03666   MyView->PutYmin("SMEvSigGlobal",fKeyVminEvSig);
03667   MyView->PutYmax("SMEvSigGlobal",fKeyVmaxEvSig);     
03668   MyView->EtaPhiSuperModuleMeanOfSampleSigmas();
03669   
03670   delete MyView;                      fCdelete++;
03671 }
03672 
03673 void TCnaDialogEB::ViewSuperModuleMeanOfCorss()
03674 {
03675   TCnaViewEB* MyView = new TCnaViewEB();    fCnew++;
03676   MyView->GetPathForResultsRootFiles();
03677   MyView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber);
03678 
03679   fCnaCommand++;
03680   cout << "   *CNA [" << fCnaCommand
03681        << "]> 2D plot of Mean of Corss. Supermodule: " << fKeySuMoNumber << endl;
03682 
03683   MyView->PutYmin("SMEvCorssGlobal",fKeyVminEvCorss);
03684   MyView->PutYmax("SMEvCorssGlobal",fKeyVmaxEvCorss);   
03685   MyView->EtaPhiSuperModuleMeanOfCorss();
03686   
03687   delete MyView;                      fCdelete++;
03688 }
03689 
03690 void TCnaDialogEB::ViewSuperModuleSigmaPedestals()
03691 {
03692   TCnaViewEB* MyView = new TCnaViewEB();    fCnew++;
03693   MyView->GetPathForResultsRootFiles();
03694   MyView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber);
03695 
03696   fCnaCommand++;
03697   cout << "   *CNA [" << fCnaCommand
03698        << "]> 2D plot of Sigma Pedestals. Supermodule: " << fKeySuMoNumber << endl;
03699 
03700   MyView->PutYmin("SMSigEvGlobal",fKeyVminSigEv);
03701   MyView->PutYmax("SMSigEvGlobal",fKeyVmaxSigEv);     
03702   MyView->EtaPhiSuperModuleSigmaPedestals();
03703   
03704   delete MyView;                      fCdelete++;
03705 }
03706 
03707 void TCnaDialogEB::ViewSuperModuleSigmaOfSampleSigmas()
03708 {
03709   TCnaViewEB* MyView = new TCnaViewEB();    fCnew++;
03710   MyView->GetPathForResultsRootFiles();
03711   MyView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber);
03712 
03713   fCnaCommand++;
03714   cout << "   *CNA [" << fCnaCommand
03715        << "]> 2D plot of Sigma of Sample Sigmas. Supermodule: " << fKeySuMoNumber << endl;
03716 
03717   MyView->PutYmin("SMSigSigGlobal",fKeyVminSigSig);
03718   MyView->PutYmax("SMSigSigGlobal",fKeyVmaxSigSig);       
03719   MyView->EtaPhiSuperModuleSigmaOfSampleSigmas();
03720   
03721   delete MyView;                      fCdelete++;
03722 }
03723 
03724 void TCnaDialogEB::ViewSuperModuleSigmaOfCorss()
03725 {
03726   TCnaViewEB* MyView = new TCnaViewEB();    fCnew++;
03727   MyView->GetPathForResultsRootFiles();
03728   MyView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber);
03729 
03730   fCnaCommand++;
03731   cout << "   *CNA [" << fCnaCommand
03732        << "]> 2D plot of Sigma of Corss. Supermodule: " << fKeySuMoNumber << endl;
03733   
03734   MyView->PutYmin("SMSigCorssGlobal",fKeyVminSigCorss);
03735   MyView->PutYmax("SMSigCorssGlobal",fKeyVmaxSigCorss);
03736  
03737   MyView->EtaPhiSuperModuleSigmaOfCorss();  
03738 
03739   delete MyView;                      fCdelete++;
03740 }
03741 
03742 void TCnaDialogEB::ViewSuperModuleCorccMeanOverSamples()
03743 {
03744   TCnaViewEB* MyView = new TCnaViewEB();    fCnew++;
03745   MyView->GetPathForResultsRootFiles();
03746   MyView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber);
03747 
03748   fCnaCommand++;
03749   cout << "   *CNA [" << fCnaCommand
03750        << "]> 2D plot of cor(c,c), mean over samples. Supermodule: " << fKeySuMoNumber << endl;
03751   
03752   MyView->PutYmin("SMCorccInTowers",fKeyVminEvCovtt);
03753   MyView->PutYmax("SMCorccInTowers",fKeyVmaxEvCovtt);
03754 
03755   MyView->EtaPhiSuperModuleCorccMeanOverSamples();
03756 
03757   delete MyView;                      fCdelete++;
03758 }
03759 
03760 
03761 //=======================================================================================
03762 //
03763 //                        ViewTowerCrystalNumbering
03764 //
03765 //=======================================================================================  
03766 
03767 void TCnaDialogEB::ViewTowerCrystalNumbering(const Int_t& SMtower)
03768 {
03769   // Plot the crystal numbering of one tower
03770 
03771   fCnaCommand++;
03772   cout << "   *CNA [" << fCnaCommand
03773        << "]> Plot of 2D matrix. ViewTowerCrystalNumbering. SuperModule "
03774        << fKeySuMoNumber << ", tower " << SMtower << endl;
03775 
03776   TCnaViewEB* MyView = new TCnaViewEB();    fCnew++;
03777   MyView->GetPathForResultsRootFiles();
03778   MyView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber);
03779 
03780   MyView->TowerCrystalNumbering(fKeySuMoNumber, SMtower);
03781   delete MyView;                      fCdelete++;
03782 }
03783 //---------------->  end of ViewTowerCrystalNumbering()
03784 
03785 //===========================================================================
03786 //
03787 //                        ViewSMTowerNumbering
03788 //
03789 //===========================================================================  
03790 
03791 void TCnaDialogEB::ViewSMTowerNumbering()
03792 {
03793   // Plot the tower numbering of one supermodule.
03794   // No argument here since the SM number is a part of the ROOT file name
03795   // and is in the entry field of the SuperModule button (fKeySuMoNumber)
03796 
03797   fCnaCommand++;
03798   cout << "   *CNA [" << fCnaCommand
03799        << "]> Plot of 2D matrix. ViewSMTowerNumbering. SuperModule "
03800        << fKeySuMoNumber << endl;
03801 
03802   TCnaViewEB* MyView = new TCnaViewEB();    fCnew++;
03803   MyView->GetPathForResultsRootFiles();
03804   MyView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber);
03805 
03806   MyView->SuperModuleTowerNumbering(fKeySuMoNumber);
03807   delete MyView;                      fCdelete++;
03808 }
03809 //---------------->  end of ViewSMTowerNumbering()
03810 
03811 //===============================================================================
03812 //
03813 //                         ViewHisto...
03814 //
03815 //===============================================================================
03816 //......................... Found evts
03817 
03818 void TCnaDialogEB::ViewHistoSuperModuleFoundEventsOfCrystals(const TString first_same_plot)
03819 {
03820 // Plot the 1D histogram of the found events as a function of crystals (grouped by towers)
03821 
03822   if ( fView == 0 ){fView = new TCnaViewEB();       fCnew++;}
03823   fView->GetPathForResultsRootFiles();
03824   fView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber);
03825 
03826   fCnaCommand++;
03827   cout << "   *CNA [" << fCnaCommand
03828        << "]> Found Events for crystals"
03829        << ". Analysis: " << fKeyAnaType << ", Run: " << fKeyRunNumber
03830        << ", 1st evt: " << fKeyFirstEvt << ", Nb of evts: " << fKeyNbOfEvts
03831        << ", SM: " << fKeySuMoNumber << ", option: " << first_same_plot << endl;
03832 
03833   fView->PutYmin("SMFoundEvtsGlobal",fKeyVminFoundEvts);
03834   fView->PutYmax("SMFoundEvtsGlobal",fKeyVmaxFoundEvts);
03835   fView->SetHistoScaleY(fKeyScaleY);
03836   fView->HistoSuperModuleFoundEventsOfCrystals(first_same_plot);
03837 }
03838 
03839 void TCnaDialogEB::ViewHistoSuperModuleFoundEventsDistribution(const TString first_same_plot)
03840 {
03841 // Plot the 1D histogram of the found events distribution for a supermodule
03842 
03843   if ( fView == 0 ){fView = new TCnaViewEB();       fCnew++;}
03844   fView->GetPathForResultsRootFiles();
03845   fView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber);
03846 
03847   fCnaCommand++;
03848   cout << "   *CNA [" << fCnaCommand
03849        << "]> Found Events distribution"
03850        << ". Analysis: " << fKeyAnaType << ", Run: " << fKeyRunNumber
03851        << ", 1st evt: " << fKeyFirstEvt << ", Nb of evts: " << fKeyNbOfEvts
03852        << ", SM: " << fKeySuMoNumber << ", option: " << first_same_plot << endl;
03853 
03854   fView->PutYmin("SMFoundEvtsGlobal",fKeyVminFoundEvts);
03855   fView->PutYmax("SMFoundEvtsGlobal",fKeyVmaxFoundEvts);  
03856   fView->SetHistoScaleY(fKeyScaleY);
03857   fView->HistoSuperModuleFoundEventsDistribution(first_same_plot);
03858 }
03859 
03860 //........................... Ev
03861 
03862 void TCnaDialogEB::ViewHistoSuperModuleMeanPedestalsOfCrystals(const TString first_same_plot)
03863 {
03864 // Plot the 1D histogram of the mean pedestals as a function of crystals (grouped by towers)
03865 
03866   if ( fView == 0 ){fView = new TCnaViewEB();       fCnew++;}
03867   fView->GetPathForResultsRootFiles();
03868   fView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber);
03869 
03870   fCnaCommand++;
03871   cout << "   *CNA [" << fCnaCommand
03872        << "]> Mean pedestals for crystals"
03873        << ". Analysis: " << fKeyAnaType << ", Run: " << fKeyRunNumber
03874        << ", 1st evt: " << fKeyFirstEvt << ", Nb of evts: " << fKeyNbOfEvts
03875        << ", SM: " << fKeySuMoNumber << ", option: " << first_same_plot << endl;
03876 
03877   fView->PutYmin("SMEvEvGlobal",fKeyVminEvEv);
03878   fView->PutYmax("SMEvEvGlobal",fKeyVmaxEvEv);
03879   fView->SetHistoScaleY(fKeyScaleY);  
03880   fView->HistoSuperModuleMeanPedestalsOfCrystals(first_same_plot);
03881 }
03882 
03883 void TCnaDialogEB::ViewHistoSuperModuleMeanPedestalsDistribution(const TString first_same_plot)
03884 {
03885 // Plot the 1D histogram of the mean pedestals distribution for a supermodule
03886 
03887   if ( fView == 0 ){fView = new TCnaViewEB();       fCnew++;}
03888   fView->GetPathForResultsRootFiles();
03889   fView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber);
03890 
03891   fCnaCommand++;
03892   cout << "   *CNA [" << fCnaCommand
03893        << "]> Mean pedestals distribution"
03894        << ". Analysis: " << fKeyAnaType << ", Run: " << fKeyRunNumber
03895        << ", 1st evt: " << fKeyFirstEvt << ", Nb of evts: " << fKeyNbOfEvts
03896        << ", SM: " << fKeySuMoNumber << ", option: " << first_same_plot << endl;
03897 
03898   fView->PutYmin("SMEvEvGlobal",fKeyVminEvEv);
03899   fView->PutYmax("SMEvEvGlobal",fKeyVmaxEvEv);
03900   fView->SetHistoScaleY(fKeyScaleY);  
03901   fView->HistoSuperModuleMeanPedestalsDistribution(first_same_plot);
03902 }
03903 
03904 void TCnaDialogEB::ViewHistoSuperModuleMeanOfSampleSigmasOfCrystals(const TString first_same_plot)
03905 {
03906 // Plot the 1D histogram of the mean of sample sigmas as a function of crystals (grouped by towers)
03907 
03908   if ( fView == 0 ){fView = new TCnaViewEB();       fCnew++;}
03909   fView->GetPathForResultsRootFiles();
03910   fView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber);
03911 
03912   fCnaCommand++;
03913   cout << "   *CNA [" << fCnaCommand
03914        << "]> Mean of sample sigmas for crystals"
03915        << ". Analysis: " << fKeyAnaType << ", Run: " << fKeyRunNumber
03916        << ", 1st evt: " << fKeyFirstEvt << ", Nb of evts: " << fKeyNbOfEvts
03917        << ", SM: " << fKeySuMoNumber << ", option: " << first_same_plot << endl;
03918 
03919   fView->PutYmin("SMEvSigGlobal",fKeyVminEvSig);
03920   fView->PutYmax("SMEvSigGlobal",fKeyVmaxEvSig);
03921   fView->SetHistoScaleY(fKeyScaleY);  
03922   fView->HistoSuperModuleMeanOfSampleSigmasOfCrystals(first_same_plot);
03923 }
03924 
03925 void TCnaDialogEB::ViewHistoSuperModuleMeanOfSampleSigmasDistribution(const TString first_same_plot)
03926 {
03927 // Plot the 1D histogram of the mean of sample sigmas distribution for a supermodule
03928 
03929   if ( fView == 0 ){fView = new TCnaViewEB();       fCnew++;}
03930   fView->GetPathForResultsRootFiles();
03931   fView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber);  
03932 
03933   fCnaCommand++;
03934   cout << "   *CNA [" << fCnaCommand
03935        << "]> Mean of sample sigmas distribution"
03936        << ". Analysis: " << fKeyAnaType << ", Run: " << fKeyRunNumber
03937        << ", 1st evt: " << fKeyFirstEvt << ", Nb of evts: " << fKeyNbOfEvts
03938        << ", SM: " << fKeySuMoNumber << ", option: " << first_same_plot << endl;
03939 
03940   fView->PutYmin("SMEvSigGlobal",fKeyVminEvSig);
03941   fView->PutYmax("SMEvSigGlobal",fKeyVmaxEvSig);  
03942   fView->SetHistoScaleY(fKeyScaleY);  
03943   fView->HistoSuperModuleMeanOfSampleSigmasDistribution(first_same_plot);
03944 }
03945 
03946 void TCnaDialogEB::ViewHistoSuperModuleMeanOfCorssOfCrystals(const TString first_same_plot)
03947 {
03948 // Plot the 1D histogram of the mean of cor(s,s) as a function of crystals (grouped by towers)
03949 
03950   if ( fView == 0 ){fView = new TCnaViewEB();       fCnew++;}
03951   fView->GetPathForResultsRootFiles();
03952   fView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber); 
03953 
03954   fCnaCommand++;
03955   cout << "   *CNA [" << fCnaCommand
03956        << "]> Mean of cor(s,s) of crystals"
03957        << ". Analysis: " << fKeyAnaType << ", Run: " << fKeyRunNumber
03958        << ", 1st evt: " << fKeyFirstEvt << ", Nb of evts: " << fKeyNbOfEvts
03959        << ", SM: " << fKeySuMoNumber << ", option: " << first_same_plot << endl;
03960 
03961   fView->PutYmin("SMEvCorssGlobal",fKeyVminEvCorss);
03962   fView->PutYmax("SMEvCorssGlobal",fKeyVmaxEvCorss);
03963   fView->SetHistoScaleY(fKeyScaleY);
03964   fView->HistoSuperModuleMeanOfCorssOfCrystals(first_same_plot);
03965 }
03966 
03967 void TCnaDialogEB::ViewHistoSuperModuleMeanOfCorssDistribution(const TString first_same_plot)
03968 {
03969 // Plot the 1D histogram of the mean of cor(s,s) sigmas distribution for a supermodule
03970 
03971   if ( fView == 0 ){fView = new TCnaViewEB();       fCnew++;}
03972   fView->GetPathForResultsRootFiles();
03973   fView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber); 
03974 
03975   fCnaCommand++;
03976   cout << "   *CNA [" << fCnaCommand
03977        << "]> Mean of cor(s,s) distribution"
03978        << ". Analysis: " << fKeyAnaType << ", Run: " << fKeyRunNumber
03979        << ", 1st evt: " << fKeyFirstEvt << ", Nb of evts: " << fKeyNbOfEvts
03980        << ", SM: " << fKeySuMoNumber << ", option: " << first_same_plot << endl;
03981 
03982   fView->PutYmin("SMEvCorssGlobal",fKeyVminEvCorss);
03983   fView->PutYmax("SMEvCorssGlobal",fKeyVmaxEvCorss);
03984   fView->SetHistoScaleY(fKeyScaleY);  
03985   fView->HistoSuperModuleMeanOfCorssDistribution(first_same_plot);
03986 }
03987 
03988 //............................ Sig
03989 
03990 void TCnaDialogEB::ViewHistoSuperModuleSigmaPedestalsOfCrystals(const TString first_same_plot)
03991 {
03992 // Plot the 1D histogram of the mean pedestals as a function of crystals (grouped by towers)
03993 
03994   if ( fView == 0 ){fView = new TCnaViewEB();       fCnew++;}
03995   fView->GetPathForResultsRootFiles();
03996   fView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber); 
03997 
03998   fCnaCommand++;
03999   cout << "   *CNA [" << fCnaCommand
04000        << "]> Sigma pedestals of crystals"
04001        << ". Analysis: " << fKeyAnaType << ", Run: " << fKeyRunNumber
04002        << ", 1st evt: " << fKeyFirstEvt << ", Nb of evts: " << fKeyNbOfEvts
04003        << ", SM: " << fKeySuMoNumber << ", option: " << first_same_plot << endl;
04004 
04005   fView->PutYmin("SMSigEvGlobal",fKeyVminSigEv);
04006   fView->PutYmax("SMSigEvGlobal",fKeyVmaxSigEv);
04007   fView->SetHistoScaleY(fKeyScaleY);  
04008   fView->HistoSuperModuleSigmaPedestalsOfCrystals(first_same_plot);
04009 }
04010 
04011 void TCnaDialogEB::ViewHistoSuperModuleSigmaPedestalsDistribution(const TString first_same_plot)
04012 {
04013 // Plot the 1D histogram of the mean pedestals distribution for a supermodule
04014 
04015   if ( fView == 0 ){fView = new TCnaViewEB();       fCnew++;}
04016   fView->GetPathForResultsRootFiles();
04017   fView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber); 
04018 
04019   fCnaCommand++;
04020   cout << "   *CNA [" << fCnaCommand
04021        << "]> Sigma pedestals distribution"
04022        << ". Analysis: " << fKeyAnaType << ", Run: " << fKeyRunNumber
04023        << ", 1st evt: " << fKeyFirstEvt << ", Nb of evts: " << fKeyNbOfEvts
04024        << ", SM: " << fKeySuMoNumber << ", option: " << first_same_plot << endl;
04025 
04026   fView->PutYmin("SMSigEvGlobal",fKeyVminSigEv);
04027   fView->PutYmax("SMSigEvGlobal",fKeyVmaxSigEv);
04028   fView->SetHistoScaleY(fKeyScaleY);  
04029   fView->HistoSuperModuleSigmaPedestalsDistribution(first_same_plot);
04030 }
04031 
04032 void TCnaDialogEB::ViewHistoSuperModuleSigmaOfSampleSigmasOfCrystals(const TString first_same_plot)
04033 {
04034 // Plot the 1D histogram of the mean of sample sigmas as a function of crystals (grouped by towers)
04035 
04036   if ( fView == 0 ){fView = new TCnaViewEB();       fCnew++;}
04037   fView->GetPathForResultsRootFiles();
04038   fView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber); 
04039 
04040   fCnaCommand++;
04041   cout << "   *CNA [" << fCnaCommand
04042        << "]> Sigma of sample sigmas for crystals"
04043        << ". Analysis: " << fKeyAnaType << ", Run: " << fKeyRunNumber
04044        << ", 1st evt: " << fKeyFirstEvt << ", Nb of evts: " << fKeyNbOfEvts
04045        << ", SM: " << fKeySuMoNumber << ", option: " << first_same_plot << endl;
04046 
04047   fView->PutYmin("SMSigSigGlobal",fKeyVminSigSig);
04048   fView->PutYmax("SMSigSigGlobal",fKeyVmaxSigSig);
04049   fView->SetHistoScaleY(fKeyScaleY);  
04050   fView->HistoSuperModuleSigmaOfSampleSigmasOfCrystals(first_same_plot);
04051 }
04052 
04053 void TCnaDialogEB::ViewHistoSuperModuleSigmaOfSampleSigmasDistribution(const TString first_same_plot)
04054 {
04055 // Plot the 1D histogram of the mean of sample sigmas distribution for a supermodule
04056 
04057   if ( fView == 0 ){fView = new TCnaViewEB();       fCnew++;}
04058   fView->GetPathForResultsRootFiles();
04059   fView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber); 
04060 
04061   fCnaCommand++;
04062   cout << "   *CNA [" << fCnaCommand
04063        << "]> Sigma of sample sigmas distribution"
04064        << ". Analysis: " << fKeyAnaType << ", Run: " << fKeyRunNumber
04065        << ", 1st evt: " << fKeyFirstEvt << ", Nb of evts: " << fKeyNbOfEvts
04066        << ", SM: " << fKeySuMoNumber << ", option: " << first_same_plot << endl;
04067 
04068   fView->PutYmin("SMSigSigGlobal",fKeyVminSigSig);
04069   fView->PutYmax("SMSigSigGlobal",fKeyVmaxSigSig);  
04070   fView->SetHistoScaleY(fKeyScaleY);
04071   fView->HistoSuperModuleSigmaOfSampleSigmasDistribution(first_same_plot);
04072 }
04073 
04074 void TCnaDialogEB::ViewHistoSuperModuleSigmaOfCorssOfCrystals(const TString first_same_plot)
04075 {
04076 // Plot the 1D histogram of the mean of cor(s,s) as a function of crystals (grouped by towers)
04077 
04078   if ( fView == 0 ){fView = new TCnaViewEB();       fCnew++;}
04079   fView->GetPathForResultsRootFiles();
04080   fView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber); 
04081 
04082   fCnaCommand++;
04083   cout << "   *CNA [" << fCnaCommand
04084        << "]> Sigma of cor(s,s) for crystals"
04085        << ". Analysis: " << fKeyAnaType << ", Run: " << fKeyRunNumber
04086        << ", 1st evt: " << fKeyFirstEvt << ", Nb of evts: " << fKeyNbOfEvts
04087        << ", SM: " << fKeySuMoNumber << ", option: " << first_same_plot << endl;
04088 
04089   fView->PutYmin("SMSigCorssGlobal",fKeyVminSigCorss);
04090   fView->PutYmax("SMSigCorssGlobal",fKeyVmaxSigCorss);
04091   fView->SetHistoScaleY(fKeyScaleY);  
04092   fView->HistoSuperModuleSigmaOfCorssOfCrystals(first_same_plot);
04093 }
04094 
04095 void TCnaDialogEB::ViewHistoSuperModuleSigmaOfCorssDistribution(const TString first_same_plot)
04096 {
04097 // Plot the 1D histogram of the mean of cor(s,s) sigmas distribution for a supermodule
04098 
04099   if ( fView == 0 ){fView = new TCnaViewEB();       fCnew++;}
04100   fView->GetPathForResultsRootFiles();
04101   fView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber); 
04102 
04103   fCnaCommand++;
04104   cout << "   *CNA [" << fCnaCommand
04105        << "]> Sigma of cor(s,s) distribution"
04106        << ". Analysis: " << fKeyAnaType << ", Run: " << fKeyRunNumber
04107        << ", 1st evt: " << fKeyFirstEvt << ", Nb of evts: " << fKeyNbOfEvts
04108        << ", SM: " << fKeySuMoNumber << ", option: " << first_same_plot << endl;
04109 
04110   fView->PutYmin("SMSigCorssGlobal",fKeyVminSigCorss);
04111   fView->PutYmax("SMSigCorssGlobal",fKeyVmaxSigCorss);
04112   fView->SetHistoScaleY(fKeyScaleY);  
04113   fView->HistoSuperModuleSigmaOfCorssDistribution(first_same_plot);
04114 }
04115 
04116 
04117 void TCnaDialogEB::ViewHistoCrystalExpectationValuesOfSamples(const Int_t& SMtower_X, const Int_t& crystal,
04118                                                               const TString first_same_plot)
04119 {
04120 // Plot the 1D histogram of the mean of the sample ADC for a crystal
04121 
04122   if ( fView == 0 ){fView = new TCnaViewEB();       fCnew++;}
04123   fView->GetPathForResultsRootFiles();
04124   fView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber); 
04125 
04126   fCnaCommand++;
04127   cout << "   *CNA [" << fCnaCommand
04128        << "]> Expectation values of the samples"
04129        << ". Analysis: " << fKeyAnaType << ", Run: " << fKeyRunNumber
04130        << ", 1st evt: " << fKeyFirstEvt << ", Nb of evts: " << fKeyNbOfEvts
04131        << ", SM: " << fKeySuMoNumber << ", Tower: " << SMtower_X << ", crystal" << crystal
04132        << ", option: " << first_same_plot << endl;
04133 
04134   fView->PutYmin("SMEvEvGlobal",fKeyVminEvEv);
04135   fView->PutYmax("SMEvEvGlobal",fKeyVmaxEvEv); 
04136   fView->SetHistoScaleY(fKeyScaleY);  
04137   fView->HistoCrystalExpectationValuesOfSamples(SMtower_X, crystal, first_same_plot);
04138 }
04139 
04140 void TCnaDialogEB::ViewHistoCrystalSigmasOfSamples(const Int_t& SMtower_X, const Int_t& crystal,
04141                                                    const TString first_same_plot)
04142 {
04143 // Plot the 1D histogram of the sigmas of the sample ADC for a crystal
04144 
04145   if ( fView == 0 ){fView = new TCnaViewEB();       fCnew++;}
04146   fView->GetPathForResultsRootFiles();
04147   fView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber); 
04148 
04149   fCnaCommand++;
04150   cout << "   *CNA [" << fCnaCommand
04151        << "]> Sigmas of the samples"
04152        << ". Analysis: " << fKeyAnaType << ", Run: " << fKeyRunNumber
04153        << ", 1st evt: " << fKeyFirstEvt << ", Nb of evts: " << fKeyNbOfEvts
04154        << ", SM: " << fKeySuMoNumber << ", Tower: " << SMtower_X << ", crystal" << crystal
04155        << ", option: " << first_same_plot << endl;
04156 
04157   fView->PutYmin("SMEvSigGlobal",fKeyVminEvSig);
04158   fView->PutYmax("SMEvSigGlobal",fKeyVmaxEvSig); 
04159   fView->SetHistoScaleY(fKeyScaleY);  
04160   fView->HistoCrystalSigmasOfSamples(SMtower_X, crystal, first_same_plot);
04161 }
04162 
04163 void TCnaDialogEB::ViewHistoSampleEventDistribution(const Int_t& SMtower_X, const Int_t& crystal,
04164                                                     const Int_t& sample,    const TString first_same_plot)
04165 {
04166 // Plot the 1D histogram of the ADC event distribution for a sample
04167 
04168   if ( fView == 0 ){fView = new TCnaViewEB();       fCnew++;}
04169   fView->GetPathForResultsRootFiles();
04170   fView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber); 
04171 
04172   fCnaCommand++;
04173   cout << "   *CNA [" << fCnaCommand
04174        << "]> ADC event distribution"
04175        << ". Analysis: " << fKeyAnaType << ", Run: " << fKeyRunNumber
04176        << ", 1st evt: " << fKeyFirstEvt << ", Nb of evts: " << fKeyNbOfEvts
04177        << ", SM: " << fKeySuMoNumber << ", Tower: " << SMtower_X << ", crystal: " << crystal
04178        << " Sample " << sample << ", option: " << first_same_plot << endl;
04179  
04180   fView->SetHistoScaleY(fKeyScaleY);  
04181   fView->HistoSampleEventDistribution(SMtower_X, crystal, sample, first_same_plot);
04182 }
04183 
04184 //............................ Evolution in time (as a function of event number). EvolSamp
04185 
04186 void TCnaDialogEB::ViewHistoCrystalPedestalEventNumber(const Int_t& SMtower_X, const Int_t& crystal,
04187                                                        const TString first_same_plot)
04188 {
04189 // Plot the 1D histogram of the pedestals as a function of the event number for a crystal
04190 
04191   if ( fView == 0 ){fView = new TCnaViewEB();       fCnew++;}
04192   fView->GetPathForResultsRootFiles();
04193   fView->SetFile(fKeyAnaType, fKeyRunNumber, fKeyFirstEvt, fKeyNbOfEvts, fKeySuMoNumber); 
04194 
04195   fCnaCommand++;
04196   cout << "   *CNA [" << fCnaCommand
04197        << "]> Pedestals as a function of the event number"
04198        << ". Analysis: " << fKeyAnaType << ", Run: " << fKeyRunNumber
04199        << ", 1st evt: " << fKeyFirstEvt << ", Nb of evts: " << fKeyNbOfEvts
04200        << ", SM: " << fKeySuMoNumber << ", Tower: " << SMtower_X << ", crystal" << crystal
04201        << ", option: " << first_same_plot << endl;
04202 
04203   fView->PutYmin("SMEvEvGlobal",fKeyVminEvEv);
04204   fView->PutYmax("SMEvEvGlobal",fKeyVmaxEvEv); 
04205   fView->SetHistoScaleY(fKeyScaleY);  
04206   fView->HistoCrystalPedestalEventNumber(SMtower_X, crystal, first_same_plot);
04207 }
04208 
04209 //.................. Evolution in time (as a function of run date)
04210 
04211 void TCnaDialogEB::ViewHistimeCrystalMeanPedestals(const TString  run_par_file_name,
04212                                                    const Int_t&   SMtower_X,    const Int_t&   towEcha,
04213                                                    const TString  first_same_plot)
04214 {
04215 // Plot the 2D (1D-like) histogram of Mean Pedestals evolution for a given towEcha
04216 
04217   if ( fView == 0 ){fView = new TCnaViewEB();       fCnew++;}
04218 
04219   fCnaCommand++;
04220   cout << "   *CNA [" << fCnaCommand
04221        << "]> Mean pedestals evolution"
04222        << ". Run parameters file name: " << run_par_file_name
04223        << ", tower: " << SMtower_X << ", towEcha: " << towEcha
04224        << ", option: " << first_same_plot << endl;
04225 
04226   fView->PutYmin("SMEvEvGlobal",fKeyVminEvEv);
04227   fView->PutYmax("SMEvEvGlobal",fKeyVmaxEvEv); 
04228   fView->SetHistoScaleY(fKeyScaleY);
04229   fView->HistimeCrystalMeanPedestals(run_par_file_name, SMtower_X, towEcha, first_same_plot);
04230 }
04231 
04232 void TCnaDialogEB::ViewHistimeCrystalMeanSigmas(const TString  run_par_file_name,
04233                                                 const Int_t&   SMtower_X,    const Int_t&  towEcha,
04234                                                 const TString  first_same_plot)
04235 {
04236 // Plot the 2D (1D-like) histogram of Mean Sigmas evolution for a given towEcha
04237 
04238   if ( fView == 0 ){fView = new TCnaViewEB();       fCnew++;}
04239 
04240   fCnaCommand++;
04241   cout << "   *CNA [" << fCnaCommand
04242        << "]> Mean sigmas evolution"
04243        << ". Run parameters file name: " << run_par_file_name
04244        << ", tower: " << SMtower_X << ", towEcha: " << towEcha
04245        << ", option: " << first_same_plot << endl;
04246 
04247   fView->PutYmin("SMEvSigGlobal",fKeyVminEvSig);
04248   fView->PutYmax("SMEvSigGlobal",fKeyVmaxEvSig); 
04249   fView->SetHistoScaleY(fKeyScaleY);
04250   fView->HistimeCrystalMeanSigmas(run_par_file_name, SMtower_X, towEcha, first_same_plot);
04251 }
04252 
04253 void TCnaDialogEB::ViewHistimeCrystalMeanCorss(const TString  run_par_file_name,
04254                                                const Int_t&   SMtower_X,    const Int_t&   towEcha,
04255                                                const TString  first_same_plot)
04256 {
04257 // Plot the 2D (1D-like) histogram of Mean Corss evolution for a given towEcha
04258 
04259   if ( fView == 0 ){fView = new TCnaViewEB();       fCnew++;}
04260 
04261   fCnaCommand++;
04262   cout << "   *CNA [" << fCnaCommand
04263        << "]> Mean corss evolution"
04264        << ". Run parameters file name: " << run_par_file_name
04265        << ", tower: " << SMtower_X << ", towEcha: " << towEcha
04266        << ", option: " << first_same_plot << endl;
04267 
04268   fView->PutYmin("SMEvCorssGlobal",fKeyVminEvCorss);
04269   fView->PutYmax("SMEvCorssGlobal",fKeyVmaxEvCorss); 
04270   fView->SetHistoScaleY(fKeyScaleY);
04271   fView->HistimeCrystalMeanCorss(run_par_file_name, SMtower_X, towEcha, first_same_plot);
04272 }
04273 
04274 //=======================================================================================================
04275 //
04276 //            
04277 //
04278 //=======================================================================================================
04279 
04280 void TCnaDialogEB::InitKeys()
04281 {
04282   //.....Input widgets for: run, channel, sample,
04283   //                        number of events, first event number
04284   
04285   fKeyAnaType = "CnP";
04286   Int_t MaxCar = fgMaxCar;
04287   fKeyFileNameRunList.Resize(MaxCar);
04288   fKeyFileNameRunList = "(no file name run list info)";
04289   fKeyRunNumber  = 0;
04290 
04291   fKeyNbOfEvts   = 150;
04292 
04293   fKeyFirstEvt   = 0;
04294   fKeySuMoNumber = 1;
04295 
04296   fKeyChanNumber = 0;
04297   fKeySampNumber = 0;
04298   fKeyTowXNumber = 1;
04299   fKeyTowYNumber = 1;
04300 
04301   MaxCar = fgMaxCar;
04302   fKeyScaleX.Resize(MaxCar); 
04303   fKeyScaleX = "LIN";
04304   MaxCar = fgMaxCar;
04305   fKeyScaleY.Resize(MaxCar); 
04306   fKeyScaleY = "LIN";
04307 
04308   //.... ymin and ymax values => values which are displayed on the dialog box
04309 
04310   fKeyVminFoundEvts = (Double_t)0.; 
04311   fKeyVmaxFoundEvts = (Double_t)250.;
04312  
04313   fKeyVminEvEv = (Double_t)150.; 
04314   fKeyVmaxEvEv = (Double_t)250.; 
04315 
04316   fKeyVminEvSig = (Double_t)0.; 
04317   fKeyVmaxEvSig = (Double_t)1.5; 
04318 
04319   fKeyVminEvCorss = (Double_t)(-1.); 
04320   fKeyVmaxEvCorss = (Double_t)1.;
04321 
04322   fKeyVminSigEv = (Double_t)0.; 
04323   fKeyVmaxSigEv = (Double_t)0.5; 
04324 
04325   fKeyVminSigSig = (Double_t)0.; 
04326   fKeyVmaxSigSig = (Double_t)0.1; 
04327 
04328   fKeyVminSigCorss = (Double_t)0.; 
04329   fKeyVmaxSigCorss = (Double_t)0.2; 
04330 
04331   fKeyVminEvCortt = (Double_t)(-1.); 
04332   fKeyVmaxEvCortt = (Double_t)1.;
04333 
04334   fKeyVminEvCovtt = (Double_t)(-1.); 
04335   fKeyVmaxEvCovtt = (Double_t)1.;
04336 }
04337 
04338 void  TCnaDialogEB::DisplayInEntryField(TGTextEntry* StringOfField, Int_t& value)
04339 {
04340   char* f_in = new char[20];          fCnew++;
04341   sprintf( f_in, "%d", value );
04342   StringOfField->Insert(f_in);
04343   delete [] f_in;                     fCdelete++;
04344 }
04345 
04346 void  TCnaDialogEB::DisplayInEntryField(TGTextEntry* StringOfField, Double_t& value)
04347 {
04348   char* f_in = new char[20];          fCnew++;
04349   sprintf( f_in, "%g", value );
04350   StringOfField->Insert(f_in);
04351   delete [] f_in;                     fCdelete++;
04352 }
04353 void  TCnaDialogEB::DisplayInEntryField(TGTextEntry* StringOfField, const TString value)
04354 {
04355   StringOfField->Insert(value);
04356 }
04357 
04358 //====================================================================================================
04359 
04360 void TCnaDialogEB::GetPathForResultsRootFiles()
04361 {
04362   GetPathForResultsRootFiles("");
04363 }
04364 
04365 void TCnaDialogEB::GetPathForListOfRunFiles()
04366 {
04367   GetPathForListOfRunFiles("");
04368 }
04369 
04370 void TCnaDialogEB::GetPathForResultsRootFiles(const TString argFileName)
04371 {
04372   // Init fCfgResultsRootFilePath and get it from the file named argFileName
04373   // argFileName = complete name of the file (/afs/cern.ch/...)
04374   // if string is empty, file name = "cna_results_root.cfg" and file located in $HOME user's directory (default)
04375 
04376 
04377   Int_t MaxCar = fgMaxCar;
04378   fCfgResultsRootFilePath.Resize(MaxCar);
04379   fCfgResultsRootFilePath            = "?";
04380 
04381   //..... put the name of the ascii file (containing the paths for CNA treatements)
04382   //      in the string cFileNameForCnaPaths and in class attribute fFileForResultsRootFilePath
04383 
04384   if ( argFileName == "" )
04385     {
04386       string cFileNameForCnaPaths = "cna_results_root.cfg";     // config file name
04387       TString s_file_name = cFileNameForCnaPaths.c_str();
04388       Text_t *t_file_name = (Text_t *)s_file_name.Data();
04389       
04390       TString s_path_name = gSystem->Getenv("HOME");       // get user's home directory path
04391       
04392       fFileForResultsRootFilePath = s_path_name;
04393       fFileForResultsRootFilePath.Append('/');
04394       fFileForResultsRootFilePath.Append(t_file_name);
04395     }
04396   else
04397     {
04398       fFileForResultsRootFilePath = argFileName.Data();
04399     }
04400 
04401   //........ Reading of the paths in the file named fFileForResultsRootFilePath.Data()
04402   //
04403 
04404   fFcin_rr.open(fFileForResultsRootFilePath.Data());
04405   if(fFcin_rr.fail() == kFALSE)
04406     {
04407       fFcin_rr.clear();
04408       string xResultsFileP;
04409       fFcin_rr >> xResultsFileP;
04410       fCfgResultsRootFilePath = xResultsFileP.c_str();
04411 
04412       //fCnaCommand++;
04413       //cout << "   *CNA [" << fCnaCommand
04414       //   << "]> Automatic registration of cna paths -> " << endl
04415       //   << "                      Results files :     " << fCfgResultsRootFilePath.Data() << endl;
04416       fFcin_rr.close();
04417     }
04418   else
04419     {
04420       fFcin_rr.clear();
04421       fCnaError++;
04422       cout << fTTBELL << endl
04423            << " ***************************************************************************** " << endl;
04424       cout << "   !CNA(TCnaDialogEB) (" << fCnaError << ") *** ERROR *** " << endl << endl
04425            << "    "
04426            << fFileForResultsRootFilePath.Data() << ": file not found. " << endl
04427            << "    "
04428            << endl << endl
04429            << "    "
04430            << " The file " << fFileForResultsRootFilePath.Data()
04431            << " is a configuration file for the CNA and"
04432            << " must contain one line with the following syntax:" << endl << endl
04433            << "    "
04434            << "   path of the results .root files ($HOME/etc...) " << endl
04435            << "    "
04436            << "          (without slash at the end of line)" << endl
04437            << endl << endl
04438            << "    "
04439            << " EXAMPLE:" << endl << endl
04440            << "    "
04441            << "  $HOME/scratch0/cna/results_files" << endl << endl
04442            << " ***************************************************************************** "
04443            << fTTBELL << endl;
04444 
04445       fFcin_rr.close();
04446     }
04447 }
04448 
04449 void TCnaDialogEB::GetPathForListOfRunFiles(const TString argFileName)
04450 {
04451   // Init fCfgListOfRunsFilePath and get it from the file named argFileName
04452   // argFileName = complete name of the file (/afs/cern.ch/...)
04453   // if string is empty, file name = "cna_results_root.cfg" and file located in $HOME user's directory (default)
04454 
04455   Int_t MaxCar = fgMaxCar;
04456   fCfgListOfRunsFilePath.Resize(MaxCar);
04457   fCfgListOfRunsFilePath          = "?";
04458 
04459   //..... put the name of the ascii file (containing the paths for CNA treatements)
04460   //      in the string cFileNameForCnaPaths and in class attribute fFileForListOfRunFilePath
04461 
04462   if ( argFileName == "" )
04463     {
04464       string cFileNameForCnaPaths = "cna_stability.cfg";     // config file name
04465       TString s_file_name = cFileNameForCnaPaths.c_str();
04466       Text_t *t_file_name = (Text_t *)s_file_name.Data();
04467       
04468       TString s_path_name = gSystem->Getenv("HOME");       // get user's home directory path
04469       
04470       fFileForListOfRunFilePath = s_path_name;
04471       fFileForListOfRunFilePath.Append('/');
04472       fFileForListOfRunFilePath.Append(t_file_name);
04473     }
04474   else
04475     {
04476       fFileForListOfRunFilePath = argFileName.Data();
04477     }
04478 
04479   //........ Reading of the paths in the file named fFileForListOfRunFilePath.Data()
04480   //
04481 
04482   fFcin_lor.open(fFileForListOfRunFilePath.Data());
04483   if(fFcin_lor.fail() == kFALSE)
04484     {
04485       fFcin_lor.clear();
04486       string xListOfRunsP;
04487       fFcin_lor >> xListOfRunsP;
04488       fCfgListOfRunsFilePath  = xListOfRunsP.c_str();
04489 
04490       //fCnaCommand++;
04491       //cout << "   *CNA [" << fCnaCommand
04492       //   << "]> Automatic registration of cna paths -> " << endl
04493       //   << "                  List-of-runs files:     " << fCfgListOfRunsFilePath.Data() << endl;
04494       fFcin_lor.close();
04495     }
04496   else
04497     {
04498       fFcin_lor.clear();
04499       fCnaError++;
04500       cout << fTTBELL << endl
04501            << " ***************************************************************************** " << endl;
04502       cout << "   !CNA(TCnaViewEB) (" << fCnaError << ") *** ERROR *** " << endl << endl
04503            << "    "
04504            << fFileForListOfRunFilePath.Data() << " : file not found. " << endl
04505            << "    "
04506            << " Please create this file in your HOME directory and then restart."
04507            << endl << endl
04508            << "    "
04509            << " The file " << fFileForListOfRunFilePath.Data()
04510            << " is a configuration file for the CNA and"
04511            << " must contain one line with the following syntax:" << endl << endl
04512            << "    "
04513            << "   path of the list-of-runs files for time evolution plots ($HOME/etc...) " << endl
04514            << "    "
04515            << "          (without slash at the end of line)" << endl
04516            << endl << endl
04517            << "    "
04518            << " EXAMPLE:" << endl << endl
04519            << "    "
04520            << "  $HOME/scratch0/cna/list_runs_time_evol" << endl << endl
04521            << " ***************************************************************************** "
04522            << fTTBELL << endl;
04523 
04524       fFcin_lor.close();
04525     }
04526 }
04527 

Generated on Tue Jun 9 17:25:16 2009 for CMSSW by  doxygen 1.5.4