1680 std::cout <<
"*TEcnaGui> WRONG MANAGEMENT OF ALLOCATIONS: fCnew = " <<
fCnew <<
", fCdelete = " <<
fCdelete
1692 std::cout <<
"*TEcnaGui> WRONG MANAGEMENT OF ROOT ALLOCATIONS: fCnewRoot = " <<
fCnewRoot
1695 std::cout <<
"*TEcnaGui> BRAVO! GOOD MANAGEMENT OF ROOT ALLOCATIONS:"
1716 : TGMainFrame(
p,
w,
h) {
1725 Long_t i_this = (Long_t)
this;
1735 if (iCnaParCout == 0) {
1749 Long_t iCnaParPaths = pObjectManager->
GetPointerValue(
"TEcnaParPaths");
1750 if (iCnaParPaths == 0) {
1762 if (iParEcal == 0) {
1770 Long_t iEcalNumbering = pObjectManager->
GetPointerValue(
"TEcnaNumbering");
1771 if (iEcalNumbering == 0) {
1779 Long_t iCnaParHistos = pObjectManager->
GetPointerValue(
"TEcnaParHistos");
1780 if (iCnaParHistos == 0) {
1789 if (iCnaWrite == 0) {
2604 Pixel_t SubDetColor = GetBackground();
2607 SubDetColor = GetBackground();
2610 SubDetColor = GetBackground();
2635 fLayoutGeneral =
new TGLayoutHints(kLHintsCenterX | kLHintsCenterY);
2652 fVoidFrame =
new TGCompositeFrame(
this, 60, 20, kVerticalFrame, kSunkenFrame);
2670 fAnaNorsRunFrame =
new TGCompositeFrame(
this, 60, 20, kHorizontalFrame, GetDefaultFrameBackground());
2674 TString xAnaButText =
" Analysis ";
2675 Int_t typ_of_ana_buf_lenght = 80;
2681 fAnaBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonAna()");
2683 fAnaBut->SetToolTipText(
"Click here to register the analysis name written on the right");
2684 fAnaBut->SetBackgroundColor(SubDetColor);
2686 fLayoutAnaBut =
new TGLayoutHints(kLHintsLeft | kLHintsTop, xB1, xB1, xB1, xB1);
2694 fAnaText->SetToolTipText(
"Click and enter the analysis name (code for type of analysis)");
2697 fAnaText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonAna()");
2698 fLayoutAnaField =
new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);
2703 TString xFirstReqEvtNumberButText =
" 1st event# ";
2704 Int_t first_evt_buf_lenght = 65;
2710 fFevBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonFev()");
2711 fFevBut->SetToolTipText(
"Click here to register the number of the first requested event number");
2712 fFevBut->SetBackgroundColor(SubDetColor);
2713 fLayoutFevBut =
new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);
2721 fFevText->SetToolTipText(
"Click and enter the first requested event number");
2724 fFevText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonFev()");
2730 TString xRunButText =
" Run ";
2731 Int_t run_buf_lenght = 65;
2736 fRunBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonRun()");
2737 fRunBut->SetToolTipText(
"Click here to register the run number");
2738 fRunBut->SetBackgroundColor(SubDetColor);
2740 fLayoutRunBut =
new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);
2747 fRunText->SetToolTipText(
"Click and enter the run number");
2750 fRunText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonRun()");
2751 fLayoutRunField =
new TGLayoutHints(kLHintsTop | kLHintsRight, xB1, xB1, xB1, xB1);
2769 fFevLevStexFrame =
new TGCompositeFrame(
this, 60, 20, kHorizontalFrame, GetDefaultFrameBackground());
2773 TString xNorsButText =
"Nb Samp in File";
2774 Int_t nors_buf_lenght = 45;
2780 fNorsBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonNors()");
2782 fNorsBut->SetToolTipText(
"Click here to register the value written on the right");
2783 fNorsBut->SetBackgroundColor(SubDetColor);
2785 fLayoutNorsBut =
new TGLayoutHints(kLHintsLeft | kLHintsTop, xB1, xB1, xB1, xB1);
2793 fNorsText->SetToolTipText(
"Click and enter the number of required samples");
2796 fNorsText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonNors()");
2797 fLayoutNorsField =
new TGLayoutHints(kLHintsTop | kLHintsCenterX, xB1, xB1, xB1, xB1);
2802 TString xLastReqEvtButText =
" Last event# ";
2803 Int_t last_evt_buf_lenght = 65;
2809 fLevBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonLev()");
2810 fLevBut->SetToolTipText(
"Click here to register the last requested event number");
2811 fLevBut->SetBackgroundColor(SubDetColor);
2812 fLayoutLevBut =
new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);
2820 fLevText->SetToolTipText(
"Click and enter the last requested event number");
2823 fLevText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonLev()");
2824 fLayoutLevFieldText =
new TGLayoutHints(kLHintsBottom | kLHintsRight, xB1, xB1, xB1, xB1);
2829 TString xMenuBarClean =
"Clean ";
2831 fMenuClean =
new TGPopupMenu(gClient->GetRoot());
2838 fMenuClean->Connect(
"Activated(Int_t)",
"TEcnaGui",
this,
"HandleMenu(Int_t)");
2844 TString xMenuBarSubmit =
" Submit ";
2845 fMenuSubmit =
new TGPopupMenu(gClient->GetRoot());
2854 fMenuSubmit->Connect(
"Activated(Int_t)",
"TEcnaGui",
this,
"HandleMenu(Int_t)");
2875 fCompStRqFrame =
new TGCompositeFrame(
this, 60, 20, kHorizontalFrame, GetDefaultFrameBackground());
2879 TString xSumoButText;
2881 xSumoButText =
" SM# (0=EB) ";
2884 xSumoButText =
" Dee# (0=EE) ";
2887 Int_t stex_number_buf_lenght = 36;
2893 fStexBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonStex()");
2894 fStexBut->SetToolTipText(
"Click here to register the number written on the right");
2895 fStexBut->SetBackgroundColor(SubDetColor);
2897 fLayoutStexBut =
new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);
2906 TString xStexNumber;
2908 xStexNumber =
"Click and enter the SM number";
2911 xStexNumber =
"Click and enter the Dee number";
2916 fStexText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonStex()");
2923 TString xNbOfReqEvtButText =
" Nb of events ";
2924 Int_t nbof_evt_buf_lenght = 65;
2930 fRevBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonRev()");
2931 fRevBut->SetToolTipText(
"Click here to register the requested number of events");
2932 fRevBut->SetBackgroundColor(SubDetColor);
2933 fLayoutRevBut =
new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);
2941 fRevText->SetToolTipText(
"Click and enter the requested number of events");
2944 fRevText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonRev()");
2945 fLayoutRevFieldText =
new TGLayoutHints(kLHintsBottom | kLHintsRight, xB1, xB1, xB1, xB1);
2963 fCompStnbFrame =
new TGCompositeFrame(
this, 60, 20, kHorizontalFrame, GetDefaultFrameBackground());
2968 TString xStexNbButText;
2970 xStexNbButText =
"SM Tower Numbering";
2973 xStexNbButText =
"Dee SC Numbering";
2977 fButStexNb->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonStexNb()");
2981 TString xNbSampForCalcButText =
"Nb Samp Calc";
2982 Int_t nb_of_samp_calc_buf_lenght = 28;
2988 fNbSampForCalcBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonNbSampForCalc()");
2989 fNbSampForCalcBut->SetToolTipText(
"Click here to register the number written on the right");
3001 TString xNbSampForCalcNumber =
"Click and enter the nb of samples for calculations";
3005 fNbSampForCalcText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonNbSampForCalc()");
3012 TString xMenuBarComput =
"Calculations ";
3013 fMenuComput =
new TGPopupMenu(gClient->GetRoot());
3019 fMenuComput->Connect(
"Activated(Int_t)",
"TEcnaGui",
this,
"HandleMenu(Int_t)");
3039 Int_t minmax_buf_lenght = 45;
3041 fStexUpFrame =
new TGCompositeFrame(
this, 60, 20, kVerticalFrame, GetDefaultFrameBackground());
3043 TString xYminButText =
" Ymin ";
3044 TString xYmaxButText =
" Ymax ";
3056 fVmaxD_NOE_ChNbBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonVmaxD_NOE_ChNb()");
3057 fVmaxD_NOE_ChNbBut->SetToolTipText(
"Click here to register ymax for the display of the quantity");
3069 fVmaxD_NOE_ChNbText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonVmaxD_NOE_ChNb()");
3084 fVminD_NOE_ChNbBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonVminD_NOE_ChNb()");
3085 fVminD_NOE_ChNbBut->SetToolTipText(
"Click here to register ymin for the display of the quantity");
3097 fVminD_NOE_ChNbText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonVminD_NOE_ChNb()");
3106 TString xHistoChannels =
"1D Histo";
3107 TString xHistoChannelsSame =
"1D Histo SAME";
3108 TString xHistoChannelsSameP =
"1D Histo SAME n";
3109 TString xHistoProjection =
"1D Histo Projection";
3110 TString xHistoProjectionSame =
"1D Histo Projection SAME";
3111 TString xHistoProjectionSameP =
"1D Histo Projection SAME n";
3112 TString xHocoVecoViewSorS =
"2D, Histo";
3114 xHocoVecoViewSorS =
"2D, Histo (eta,phi)";
3117 xHocoVecoViewSorS =
"2D, Histo (IX,IY)";
3119 TString xAsciiFileStex =
"1D Histo, write in ASCII file";
3122 TString xMenuD_NOE_ChNb =
"Numbers of events ";
3131 fMenuD_NOE_ChNb->Connect(
"Activated(Int_t)",
"TEcnaGui",
this,
"HandleMenu(Int_t)");
3161 fVmaxD_Ped_ChNbBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonVmaxD_Ped_ChNb()");
3162 fVmaxD_Ped_ChNbBut->SetToolTipText(
"Click here to register ymax for the display of the quantity");
3174 fVmaxD_Ped_ChNbText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonVmaxD_Ped_ChNb()");
3188 fVminD_Ped_ChNbBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonVminD_Ped_ChNb()");
3189 fVminD_Ped_ChNbBut->SetToolTipText(
"Click here to register ymin for the display of the quantity");
3202 fVminD_Ped_ChNbText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonVminD_Ped_ChNb()");
3211 TString xMenuD_Ped_ChNb =
" Pedestals ";
3220 fMenuD_Ped_ChNb->Connect(
"Activated(Int_t)",
"TEcnaGui",
this,
"HandleMenu(Int_t)");
3243 fVmaxD_TNo_ChNbBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonVmaxD_TNo_ChNb()");
3244 fVmaxD_TNo_ChNbBut->SetToolTipText(
"Click here to register ymax for the display of the quantity");
3256 fVmaxD_TNo_ChNbText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonVmaxD_TNo_ChNb()");
3270 fVminD_TNo_ChNbBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonVminD_TNo_ChNb()");
3271 fVminD_TNo_ChNbBut->SetToolTipText(
"Click here to register ymin for the display of the quantity");
3284 fVminD_TNo_ChNbText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonVminD_TNo_ChNb()");
3293 TString xMenuD_TNo_ChNb =
" Total Noise ";
3303 fMenuD_TNo_ChNb->Connect(
"Activated(Int_t)",
"TEcnaGui",
this,
"HandleMenu(Int_t)");
3326 fVmaxD_LFN_ChNbBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonVmaxD_LFN_ChNb()");
3327 fVmaxD_LFN_ChNbBut->SetToolTipText(
"Click here to register ymax for the display of the quantity");
3339 fVmaxD_LFN_ChNbText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonVmaxD_LFN_ChNb()");
3353 fVminD_LFN_ChNbBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonVminD_LFN_ChNb()");
3354 fVminD_LFN_ChNbBut->SetToolTipText(
"Click here to register ymin for the display of the quantity");
3366 fVminD_LFN_ChNbText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonVminD_LFN_ChNb()");
3375 TString xMenuD_LFN_ChNb =
" Low Frequency Noise ";
3385 fMenuD_LFN_ChNb->Connect(
"Activated(Int_t)",
"TEcnaGui",
this,
"HandleMenu(Int_t)");
3407 fVmaxD_HFN_ChNbBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonVmaxD_HFN_ChNb()");
3408 fVmaxD_HFN_ChNbBut->SetToolTipText(
"Click here to register ymax for the display of the quantity");
3420 fVmaxD_HFN_ChNbText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonVmaxD_HFN_ChNb()");
3434 fVminD_HFN_ChNbBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonVminD_HFN_ChNb()");
3435 fVminD_HFN_ChNbBut->SetToolTipText(
"Click here to register ymin for the display of the quantity");
3447 fVminD_HFN_ChNbText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonVminD_HFN_ChNb()");
3456 TString xMenuD_HFN_ChNb =
" High Frequency Noise ";
3466 fMenuD_HFN_ChNb->Connect(
"Activated(Int_t)",
"TEcnaGui",
this,
"HandleMenu(Int_t)");
3490 fVmaxD_MCs_ChNbBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonVmaxD_MCs_ChNb()");
3491 fVmaxD_MCs_ChNbBut->SetToolTipText(
"Click here to register ymax for the display of the quantity");
3503 fVmaxD_MCs_ChNbText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonVmaxD_MCs_ChNb()");
3517 fVminD_MCs_ChNbBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonVminD_MCs_ChNb()");
3518 fVminD_MCs_ChNbBut->SetToolTipText(
"Click here to register ymin for the display of the quantity");
3530 fVminD_MCs_ChNbText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonVminD_MCs_ChNb()");
3539 TString xMenuD_MCs_ChNb =
" Mean cor(s,s') ";
3549 fMenuD_MCs_ChNb->Connect(
"Activated(Int_t)",
"TEcnaGui",
this,
"HandleMenu(Int_t)");
3572 fVmaxD_SCs_ChNbBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonVmaxD_SCs_ChNb()");
3573 fVmaxD_SCs_ChNbBut->SetToolTipText(
"Click here to register ymax for the display of the quantity");
3585 fVmaxD_SCs_ChNbText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonVmaxD_SCs_ChNb()");
3599 fVminD_SCs_ChNbBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonVminD_SCs_ChNb()");
3600 fVminD_SCs_ChNbBut->SetToolTipText(
"Click here to register ymin for the display of the quantity");
3612 fVminD_SCs_ChNbText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonVminD_SCs_ChNb()");
3621 TString xMenuD_SCs_ChNb =
" Sigma of cor(s,s') ";
3631 fMenuD_SCs_ChNb->Connect(
"Activated(Int_t)",
"TEcnaGui",
this,
"HandleMenu(Int_t)");
3662 fVmaxLHFccBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonVmaxLHFcc()");
3663 fVmaxLHFccBut->SetToolTipText(
"Click here to register ymax for the display of the quantity");
3675 fVmaxLHFccText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonVmaxLHFcc()");
3690 fVminLHFccBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonVminLHFcc()");
3691 fVminLHFccBut->SetToolTipText(
"Click here to register ymin for the display of the quantity");
3703 fVminLHFccText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonVminLHFcc()");
3712 TString xMenuLHFcc =
"GeoView LF,HF Cor(c,c') (expert)";
3713 TString xLFccViewSorS;
3715 xLFccViewSorS =
"Low Frequency Cor(c,c'), tower place -> Cor matrix";
3718 xLFccViewSorS =
"Low Frequency Cor(c,c'), SC place -> Cor matrix";
3720 TString xHFccViewSorS;
3722 xHFccViewSorS =
"High Frequency Cor(c,c'), tower place -> Cor matrix";
3725 xHFccViewSorS =
"High Frequency Cor(c,c'), SC place -> Cor matrix";
3728 fMenuLHFcc =
new TGPopupMenu(gClient->GetRoot());
3732 fMenuLHFcc->Connect(
"Activated(Int_t)",
"TEcnaGui",
this,
"HandleMenu(Int_t)");
3754 fVmaxLFccMosBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonVmaxLFccMos()");
3755 fVmaxLFccMosBut->SetToolTipText(
"Click here to register ymax for the display of the quantity");
3767 fVmaxLFccMosText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonVmaxLFccMos()");
3782 fVminLFccMosBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonVminLFccMos()");
3783 fVminLFccMosBut->SetToolTipText(
"Click here to register ymin for the display of the quantity");
3795 fVminLFccMosText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonVminLFccMos()");
3804 TString xMenuLFccMos;
3806 xMenuLFccMos =
"Mean LF |Cor(c,c')| in (tow,tow')";
3809 xMenuLFccMos =
"Mean LF |Cor(c,c')| in (SC,SC')";
3816 fMenuLFccMos->Connect(
"Activated(Int_t)",
"TEcnaGui",
this,
"HandleMenu(Int_t)");
3838 fVmaxHFccMosBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonVmaxHFccMos()");
3839 fVmaxHFccMosBut->SetToolTipText(
"Click here to register ymax for the display of the quantity");
3851 fVmaxHFccMosText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonVmaxHFccMos()");
3866 fVminHFccMosBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonVminHFccMos()");
3867 fVminHFccMosBut->SetToolTipText(
"Click here to register ymin for the display of the quantity");
3879 fVminHFccMosText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonVminHFccMos()");
3888 TString xMenuHFccMos;
3890 xMenuHFccMos =
"Mean HF |Cor(c,c')| in (tow,tow')";
3893 xMenuHFccMos =
"Mean HF |Cor(c,c')| in (SC,SC')";
3900 fMenuHFccMos->Connect(
"Activated(Int_t)",
"TEcnaGui",
this,
"HandleMenu(Int_t)");
3912 fLayoutStexUpFrame =
new TGLayoutHints(kLHintsTop | kLHintsCenterX, xB1, xB1, xB1, xB1);
3925 fStinSpFrame =
new TGCompositeFrame(
this, 60, 20, kHorizontalFrame, GetDefaultFrameBackground());
3928 TString xStinAButText =
"?";
3929 TString xStinBButText =
"?";
3930 Int_t Stin_buf_lenght = 10;
3933 xStinAButText =
" Tower# [1,68] ";
3934 xStinBButText =
" Tower'# [1,68] ";
3935 Stin_buf_lenght = 50;
3938 xStinAButText =
"SC# for const. [150,298] ";
3939 xStinBButText =
"SC'# for const. [150,298] ";
3940 Stin_buf_lenght = 50;
3943 xStinAButText =
"SC# for const. [ 1,149] ";
3944 xStinBButText =
"SC'# for const. [ 1,149] ";
3945 Stin_buf_lenght = 50;
3949 TString xStinNumberText;
3951 xStinNumberText =
"Click here to register the tower number written on the right";
3954 xStinNumberText =
"Click here to register the SC number written on the right";
3957 TString xStinNumberValue;
3959 xStinNumberValue =
"Click and enter the tower number";
3962 xStinNumberValue =
"Click and enter the SC number";
3973 fStinABut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonStinA()");
3974 fStinABut->SetToolTipText(xStinNumberText);
3976 fStinABut->SetBackgroundColor(SubDetColor);
3977 fLayoutStinABut =
new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);
3985 fStinAText->SetToolTipText(xStinNumberValue);
3988 Int_t StinAValue = 0;
3997 fStinAText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonStinA()");
3998 fLayoutStinAField =
new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);
4004 TString xChNbButText;
4006 xChNbButText =
"Tower Xtal Numbering ";
4009 xChNbButText =
" SC Xtal Numbering ";
4014 fButChNb->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonChNb()");
4015 fButChNb->SetBackgroundColor(SubDetColor);
4016 fLayoutChNbBut =
new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);
4023 TString xMenuBarCorGlob;
4025 xMenuBarCorGlob =
" GeoView Cor(s,s') (expert)";
4028 xMenuBarCorGlob =
" GeoView Cor(s,s') (expert)";
4031 TString xMenuBarCovGlob;
4033 xMenuBarCovGlob =
" GeoView Cov(s,s') (expert)";
4036 xMenuBarCovGlob =
" GeoView Cov(s,s') (expert)";
4044 fMenuCorssAll->Connect(
"Activated(Int_t)",
"TEcnaGui",
this,
"HandleMenu(Int_t)");
4059 fLayoutTxSubFrame =
new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);
4072 fStinBBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonStinB()");
4073 fStinBBut->SetToolTipText(xStinNumberText);
4075 fStinBBut->SetBackgroundColor(SubDetColor);
4084 fStinBText->SetToolTipText(xStinNumberValue);
4087 Int_t StinBValue = 0;
4096 fStinBText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonStinB()");
4097 fLayoutStinBField =
new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);
4107 fLayoutTySubFrame =
new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);
4113 fLayoutStinSpFrame =
new TGLayoutHints(kLHintsTop | kLHintsCenterX, xB1, xB1, xB1, xB1);
4118 TString xMenuBarLFCorcc;
4120 xMenuBarLFCorcc =
" Low Frequency Cor(Xtal tower, Xtal tower')";
4123 xMenuBarLFCorcc =
" Low Frequency Cor(Xtal SC, Xtal SC')";
4126 TString xMenuBarHFCorcc;
4128 xMenuBarHFCorcc =
" High Frequency Cor(Xtal tower, Xtal tower')";
4131 xMenuBarHFCorcc =
" High Frequency Cor(Xtal SC, Xtal SC')";
4140 fMenuLFCorcc->Connect(
"Activated(Int_t)",
"TEcnaGui",
this,
"HandleMenu(Int_t)");
4152 fMenuHFCorcc->Connect(
"Activated(Int_t)",
"TEcnaGui",
this,
"HandleMenu(Int_t)");
4164 fChSpFrame =
new TGCompositeFrame(
this, 60, 20, kHorizontalFrame, GetDefaultFrameBackground());
4167 TString xChanButText;
4169 xChanButText =
" Channel# in tower [0,24] ";
4172 xChanButText =
" Crystal# in SC [1,25] ";
4175 TString xSampButText =
" Sample# [1,10] ";
4177 Int_t chan_buf_lenght = 50;
4178 Int_t samp_buf_lenght = 50;
4180 TString xMenuBarCorss =
" Correlations between samples";
4181 TString xMenuBarCovss =
" Covariances between samples";
4182 TString xMenuBarEvs =
" Sample means";
4183 TString xMenuBarSigs =
" Sample sigmas";
4186 fChSubFrame =
new TGCompositeFrame(
fChSpFrame, 60, 20, kVerticalFrame, GetDefaultFrameBackground());
4194 fChanBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonChan()");
4195 fChanBut->SetToolTipText(
"Click here to register the channel number written to the right");
4197 fChanBut->SetBackgroundColor(SubDetColor);
4198 fLayoutChanBut =
new TGLayoutHints(kLHintsLeft, xB1, xB1, xB1, xB1);
4206 fChanText->SetToolTipText(
"Click and enter the channel number");
4209 Int_t xReadChanNumber = 0;
4211 xReadChanNumber = 0;
4214 xReadChanNumber = 1;
4218 fChanText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonChan()");
4219 fLayoutChanField =
new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);
4227 fMenuCorss =
new TGPopupMenu(gClient->GetRoot());
4241 fMenuCorss->Connect(
"Activated(Int_t)",
"TEcnaGui",
this,
"HandleMenu(Int_t)");
4249 fMenuCovss =
new TGPopupMenu(gClient->GetRoot());
4263 fMenuCovss->Connect(
"Activated(Int_t)",
"TEcnaGui",
this,
"HandleMenu(Int_t)");
4276 fMenuD_MSp_SpNb->Connect(
"Activated(Int_t)",
"TEcnaGui",
this,
"HandleMenu(Int_t)");
4289 fMenuD_SSp_SpNb->Connect(
"Activated(Int_t)",
"TEcnaGui",
this,
"HandleMenu(Int_t)");
4296 fLayoutChSubFrame =
new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);
4301 fSpSubFrame =
new TGCompositeFrame(
fChSpFrame, 60, 20, kVerticalFrame, GetDefaultFrameBackground());
4309 fSampBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonSamp()");
4310 fSampBut->SetToolTipText(
"Click here to register the sample number written to the right");
4312 fSampBut->SetBackgroundColor(SubDetColor);
4313 fLayoutSampBut =
new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);
4321 fSampText->SetToolTipText(
"Click and enter the sample number");
4325 fSampText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonSamp()");
4326 fLayoutSampField =
new TGLayoutHints(kLHintsTop | kLHintsRight, xB1, xB1, xB1, xB1);
4332 fLayoutSpSubFrame =
new TGLayoutHints(kLHintsTop | kLHintsRight, xB1, xB1, xB1, xB1);
4337 fLayoutChSpFrame =
new TGLayoutHints(kLHintsTop | kLHintsCenterX, xB1, xB1, xB1, xB1);
4347 fMenuAdcProj->Connect(
"Activated(Int_t)",
"TEcnaGui",
this,
"HandleMenu(Int_t)");
4352 TString xEvtDistrib;
4353 xEvtDistrib =
"ADC sample values for (Xtal, Sample)";
4368 TString xRunListButText =
" List of run file name for history plots ";
4369 Int_t run_list_buf_lenght = 170;
4371 fRulFrame =
new TGCompositeFrame(
this, 60, 20, kHorizontalFrame, kSunkenFrame);
4376 fRulBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonRul()");
4378 "Click here to register the name of the file \n containing the run list (written on the right)");
4379 fRulBut->SetBackgroundColor(SubDetColor);
4380 fLayoutRulBut =
new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);
4388 fRulText->SetToolTipText(
"Click and enter the name of the file \n containing the run list");
4390 fRulText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonRul()");
4400 TString xMenuBarHistory =
" Menu for history plots";
4426 fMenuHistory->Connect(
"Activated(Int_t)",
"TEcnaGui",
this,
"HandleMenu(Int_t)");
4445 fLinLogFrame =
new TGCompositeFrame(
this, 60, 20, kHorizontalFrame, kSunkenFrame);
4449 TString xLogxButText =
" LOG X ";
4452 fButLogx->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonLogx()");
4453 fButLogx->SetBackgroundColor(SubDetColor);
4454 fLayoutLogxBut =
new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);
4459 TString xLogyButText =
" LOG Y ";
4462 fButLogy->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonLogy()");
4463 fButLogy->SetBackgroundColor(SubDetColor);
4464 fLayoutLogyBut =
new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);
4469 TString xProjyButText =
" Y projection ";
4472 fButProjy->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonProjy()");
4473 fButProjy->SetBackgroundColor(SubDetColor);
4474 fLayoutProjyBut =
new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);
4482 TString xGenTitleButText =
" General title for plots ";
4483 Int_t gen_title_buf_lenght = 220;
4485 fGentFrame =
new TGCompositeFrame(
this, 60, 20, kHorizontalFrame, kSunkenFrame);
4490 fGentBut->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonGent()");
4491 fGentBut->SetToolTipText(
"Click here to register the general title (written on the right)");
4492 fGentBut->SetBackgroundColor(SubDetColor);
4493 fLayoutGentBut =
new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);
4501 fGentText->SetToolTipText(
"Click and enter the general title");
4504 fGentText->Connect(
"ReturnPressed()",
"TEcnaGui",
this,
"DoButtonGent()");
4515 fColorExitFrame =
new TGCompositeFrame(
this, 60, 20, kHorizontalFrame, GetDefaultFrameBackground());
4519 TString xColPalButText =
" Colors ";
4522 fButColPal->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonColPal()");
4524 fLayoutColPalBut =
new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);
4529 TString xExitButText =
" Exit ";
4532 fButExit->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonExit()");
4533 fButExit->SetBackgroundColor(SubDetColor);
4534 fLayoutExitBut =
new TGLayoutHints(kLHintsTop | kLHintsRight, xB1, xB1, xB1, xB1);
4546 fLastFrame =
new TGCompositeFrame(
this, 60, 20, kHorizontalFrame, kSunkenFrame);
4550 TString xCloneButText =
" Clone Last Canvas ";
4553 fButClone->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonClone()");
4554 fButClone->SetBackgroundColor(SubDetColor);
4555 fLayoutCloneBut =
new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);
4560 TString xRootButText =
" ROOT Version ";
4563 fButRoot->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonRoot()");
4564 fButRoot->SetBackgroundColor(SubDetColor);
4565 fLayoutRootBut =
new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);
4570 TString xHelpButText =
" Help ";
4573 fButHelp->Connect(
"Clicked()",
"TEcnaGui",
this,
"DoButtonHelp()");
4574 fButHelp->SetBackgroundColor(SubDetColor);
4575 fLayoutHelpBut =
new TGLayoutHints(kLHintsTop | kLHintsLeft, xB1, xB1, xB1, xB1);
4587 SetWindowName(
"CMS Ecal Correlated Noise Analysis <EB>");
4590 SetWindowName(
"CMS Ecal Correlated Noise Analysis <EE>");
4593 SetBackgroundColor(SubDetColor);
4631 const char* bufferchain =
fAnaText->GetBuffer()->GetString();
4643 const char* bufferchain =
fNorsText->GetBuffer()->GetString();
4647 if (!(
fKeyNbOfSamples >= 1 && fKeyNbOfSamples <= fEcal->MaxSampADC())) {
4650 <<
" Number of required samples for reading ROOT file = " <<
fKeyNbOfSamples <<
": OUT OF RANGE, "
4659 TString xSampButText =
" Sample [?,?] ";
4662 xSampButText =
" Sample [1,1] ";
4665 xSampButText =
" Sample [1,2] ";
4668 xSampButText =
" Sample [1,3] ";
4671 xSampButText =
" Sample [1,4] ";
4674 xSampButText =
" Sample [1,5] ";
4677 xSampButText =
" Sample [1,6] ";
4680 xSampButText =
" Sample [1,7] ";
4683 xSampButText =
" Sample [1,8] ";
4686 xSampButText =
" Sample [1,9] ";
4689 xSampButText =
" Sample [1,10] ";
4695 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Registration of number of samples in ROOT file -> "
4709 <<
" Number of required samples for calculations = " <<
fKeyNbOfSampForCalc <<
": OUT OF RANGE, "
4717 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Registration of number of samples for calculations -> "
4726 const char* bufferchain =
fRunText->GetBuffer()->GetString();
4737 const char* bufferchain =
fFevText->GetBuffer()->GetString();
4749 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Registration of first requested event number -> "
4756 const char* bufferchain =
fLevText->GetBuffer()->GetString();
4768 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Registration of last requested event number -> "
4775 const char* bufferchain =
fRevText->GetBuffer()->GetString();
4804 const char* bufferchain =
fStexText->GetBuffer()->GetString();
4821 <<
" EB / SM number = " <<
fKeyStexNumber <<
": out of range. Range = 0 (EB) or [ 1 ,"
4830 TString xStinAButText =
"?";
4831 TString xStinBButText =
"?";
4833 xStinAButText =
"SC for const. [150,298] ";
4834 xStinBButText =
"SC' for const. [150,298] ";
4839 xStinAButText =
"SC for const. [ 1,149] ";
4840 xStinBButText =
"SC' for const. [ 1,149] ";
4846 xStinAButText =
"SC for const. ";
4847 xStinBButText =
"SC' for const. ";
4872 <<
" EE / Dee number = " <<
fKeyStexNumber <<
": out of range. Range = 0 (EE) or [ 1 ,"
4887 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Registration of Ymin for plot 'number of events' -> "
4900 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Registration of Ymax for plot 'number of events' -> "
4913 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Registration of Ymin for plot 'pedestal' -> "
4926 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Registration of Ymax for plot 'pedestal' -> "
4939 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Registration of Ymin for plot 'total noise' -> "
4952 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Registration of Ymax for plot 'total noise' -> "
4965 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Registration of Ymin for plot 'mean cor(s,s')' -> "
4978 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Registration of Ymax for plot 'mean cor(s,s')' -> "
4991 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Registration of Ymin for plot 'low frequency noise' -> "
5004 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Registration of Ymax for plot 'low frequency noise' -> "
5017 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Registration of Ymin for plot 'high frequency noise' -> "
5030 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Registration of Ymax for plot 'high frequency noise' -> "
5043 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Registration of Ymin for plot 'sigma of cor(s,s')' -> "
5056 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Registration of Ymax for plot 'sigma of cor(s,s')' -> "
5069 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Registration of Ymin for plot 'mean LF |cor(c,c')|' -> "
5082 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Registration of Ymax for plot 'mean LF |cor(c,c')|' -> "
5095 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Registration of Ymin for plot 'mean HF |cor(c,c')|' -> "
5108 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Registration of Ymax for plot 'mean HF |cor(c,c')|' -> "
5117 const char* bufferchain =
fVminLHFccText->GetBuffer()->GetString();
5130 const char* bufferchain =
fVmaxLHFccText->GetBuffer()->GetString();
5148 const char* bufferchain =
fStinAText->GetBuffer()->GetString();
5150 Int_t xReadStinANumberForCons = atoi(bufferchain);
5162 << xReadStinANumberForCons << std::endl;
5168 <<
" ] ) " <<
fTTBELL << std::endl;
5175 <<
" number for construction -> " << xReadStinANumberForCons << std::endl;
5177 if (
fKeyStexNumber > 0 && fKeyStexNumber <= fEcal->MaxDeeInEE()) {
5178 Int_t off_set_cons = 0;
5183 if (xReadStinANumberForCons <= off_set_cons ||
5187 <<
") *** ERROR *** ===> SC nb for construction = " << xReadStinANumberForCons
5188 <<
". Out of range ( range = [ " << off_set_cons + 1 <<
","
5203 const char* bufferchain =
fStinBText->GetBuffer()->GetString();
5205 Int_t xReadStinBNumberForCons = atoi(bufferchain);
5216 << xReadStinBNumberForCons << std::endl;
5223 <<
" ] ) " <<
fTTBELL << std::endl;
5228 if (
fKeyStexNumber > 0 && fKeyStexNumber <= fEcal->MaxDeeInEE()) {
5229 Int_t off_set_cons = 0;
5234 if (xReadStinBNumberForCons < off_set_cons ||
5238 <<
") *** ERROR *** ===> SC nb for construction = " << xReadStinBNumberForCons
5239 <<
". Out of range ( range = [ " << off_set_cons + 1 <<
","
5259 const char* bufferchain =
fChanText->GetBuffer()->GetString();
5260 Int_t xReadNumber = atoi(bufferchain);
5262 Int_t Choffset = -1;
5263 TString ChString =
"?";
5267 ChString =
"channel";
5271 ChString =
"crystal";
5276 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Registration of " << ChString.Data() <<
" number -> "
5277 << xReadNumber << std::endl;
5281 std::cout <<
" !TEcnaGui (" <<
fCnaError <<
") *** ERROR *** ===> " << ChString.Data() <<
" number in "
5282 <<
fStinName.Data() <<
" = " << xReadNumber <<
": out of range ( range = [" << Choffset <<
","
5290 const char* bufferchain =
fSampText->GetBuffer()->GetString();
5291 Int_t xKeySampNumber = atoi(bufferchain);
5294 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Registration of sample number -> " << xKeySampNumber << std::endl;
5299 <<
" Sample number = " << xKeySampNumber <<
": out of range ( range = [ 1 ," <<
fKeyNbOfSamples <<
" ] )"
5311 const char* listchain =
fRulText->GetBuffer()->GetString();
5312 if (listchain[0] ==
'\0') {
5315 <<
" Empty file name in entry for TIME EVOLUTION plots." <<
fTTBELL << std::endl;
5318 char tchiffr[10] = {
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9'};
5321 if (listchain[0] == tchiffr[0] || listchain[0] == tchiffr[1] || listchain[0] == tchiffr[2] ||
5322 listchain[0] == tchiffr[3] || listchain[0] == tchiffr[4] || listchain[0] == tchiffr[5] ||
5323 listchain[0] == tchiffr[6] || listchain[0] == tchiffr[7] || listchain[0] == tchiffr[8] ||
5324 listchain[0] == tchiffr[9]) {
5327 <<
" Please, enter a file name beginning with an alphabetic letter." <<
fTTBELL << std::endl;
5332 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Registration of run list file name for history plots -> "
5342 const char* listchain =
fGentText->GetBuffer()->GetString();
5405 TString sColPalComment =
"?";
5407 sColPalComment =
"ECNAColor option: black-red-blue-green-brown-purple (default)";
5410 sColPalComment =
"Rainbow option: red-orange-yellow-green-blue-indigo-purple";
5414 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Color palette -> " << sColPalComment << std::endl;
5439 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> This is ROOT version " << gROOT->GetVersion() << std::endl;
5444 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> HELP: for documentation, see the ECNA web page: " << std::endl
5445 <<
" http://cms-fabbro.web.cern.ch/cms-fabbro/cna_new/Correlated_Noise_Analysis/ECNA_main_page.htm"
5889 <<
" EMPTY STRING for list of run file name (TIME EVOLUTION plots)." <<
fTTBELL << std::endl;
6092 TString CnaPythonCommand = ModulesdataPath;
6095 TString PythonScriptName =
"EcnaSystemScriptPython";
6096 const Text_t* t_PythonScriptName = (
const Text_t*)PythonScriptName.Data();
6097 CnaPythonCommand.Append(t_PythonScriptName);
6104 CnaPythonCommand.Append(
' ');
6109 CnaPythonCommand.Append(
' ');
6110 CnaPythonCommand.Append(
'\\');
6111 CnaPythonCommand.Append(
'\"');
6112 const Text_t* t_StringAnaType = (
const Text_t*)
fKeyAnaType.Data();
6113 CnaPythonCommand.Append(t_StringAnaType);
6114 CnaPythonCommand.Append(
'\\');
6115 CnaPythonCommand.Append(
'\"');
6118 CnaPythonCommand.Append(
' ');
6119 CnaPythonCommand.Append(
'\\');
6120 CnaPythonCommand.Append(
'\"');
6122 CnaPythonCommand.Append(t_NbOfSamplesString);
6123 CnaPythonCommand.Append(
'\\');
6124 CnaPythonCommand.Append(
'\"');
6127 CnaPythonCommand.Append(
' ');
6128 CnaPythonCommand.Append(
'\\');
6129 CnaPythonCommand.Append(
'\"');
6131 CnaPythonCommand.Append(t_FirstReqEvtNumberString);
6132 CnaPythonCommand.Append(
'\\');
6133 CnaPythonCommand.Append(
'\"');
6136 CnaPythonCommand.Append(
' ');
6137 CnaPythonCommand.Append(
'\\');
6138 CnaPythonCommand.Append(
'\"');
6140 CnaPythonCommand.Append(t_LastReqEvtNumberString);
6141 CnaPythonCommand.Append(
'\\');
6142 CnaPythonCommand.Append(
'\"');
6145 CnaPythonCommand.Append(
' ');
6146 CnaPythonCommand.Append(
'\\');
6147 CnaPythonCommand.Append(
'\"');
6149 CnaPythonCommand.Append(t_ReqNbOfEvtsString);
6150 CnaPythonCommand.Append(
'\\');
6151 CnaPythonCommand.Append(
'\"');
6154 CnaPythonCommand.Append(
' ');
6155 CnaPythonCommand.Append(
'\\');
6156 CnaPythonCommand.Append(
'\"');
6157 const Text_t* t_fStexName = (
const Text_t*)
fStexName.Data();
6158 CnaPythonCommand.Append(t_fStexName);
6159 CnaPythonCommand.Append(
'\\');
6160 CnaPythonCommand.Append(
'\"');
6163 CnaPythonCommand.Append(
' ');
6164 CnaPythonCommand.Append(
'\\');
6165 CnaPythonCommand.Append(
'\"');
6167 CnaPythonCommand.Append(t_StexNumberString);
6168 CnaPythonCommand.Append(
'\\');
6169 CnaPythonCommand.Append(
'\"');
6204 CnaPythonCommand.Append(
' ');
6205 const Text_t* t_fPythonFileName = (
const Text_t*)
fPythonFileName.Data();
6206 CnaPythonCommand.Append(t_fPythonFileName);
6210 CnaPythonCommand.Append(
' ');
6211 const Text_t* t_modules_data_path = (
const Text_t*)ModulesdataPath.Data();
6212 CnaPythonCommand.Append(t_modules_data_path);
6226 const Text_t* t_cnapythoncommand = (
const Text_t*)CnaPythonCommand.Data();
6227 TString CnaExecPythonCommand =
"csh ";
6228 CnaExecPythonCommand.Append(t_cnapythoncommand);
6230 Int_t i_exec_python = gSystem->Exec(CnaExecPythonCommand.Data());
6232 if (i_exec_python != 0) {
6233 std::cout <<
"*TEcnaGui> Script for python file building was executed with error code = " << i_exec_python <<
"."
6236 <<
" Command: " << CnaExecPythonCommand.Data() << std::endl
6239 std::cout <<
"*TEcnaGui> Script for python file building was successfully executed." << std::endl
6241 <<
" (Command: " << CnaExecPythonCommand.Data() <<
")" << std::endl;
6244 TString CnaSubmitCommand = ModulesdataPath;
6247 TString SubmitScriptName =
"EcnaSystemScriptSubmit";
6248 const Text_t* t_SubmitScriptName = (
const Text_t*)SubmitScriptName.Data();
6249 CnaSubmitCommand.Append(t_SubmitScriptName);
6250 CnaSubmitCommand.Append(
' ');
6254 CnaSubmitCommand.Append(t_cmssw_base);
6255 CnaSubmitCommand.Append(
' ');
6258 CnaSubmitCommand.Append(t_cmssw_subsystem);
6259 CnaSubmitCommand.Append(
' ');
6262 CnaSubmitCommand.Append(t_cfgp_file);
6263 CnaSubmitCommand.Append(
' ');
6265 const Text_t* t_QueueCode = (
const Text_t*)QueueCode.Data();
6266 CnaSubmitCommand.Append(t_QueueCode);
6269 const Text_t* t_cnasubmitcommand = (
const Text_t*)CnaSubmitCommand.Data();
6270 TString CnaExecSubmitCommand =
"csh ";
6271 CnaExecSubmitCommand.Append(t_cnasubmitcommand);
6273 Int_t i_exec_submit = gSystem->Exec(CnaExecSubmitCommand.Data());
6275 if (i_exec_submit != 0) {
6276 std::cout <<
"*TEcnaGui> Script for job submission was executed with error code = " << i_exec_submit <<
"."
6278 <<
" Command: " << CnaExecSubmitCommand.Data() << std::endl
6282 <<
" was successfully submitted." << std::endl
6283 <<
" (Command: " << CnaExecSubmitCommand.Data() <<
")" << std::endl;
6293 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Request for submitting job in batch mode for run "
6302 <<
" Analysis name = " <<
fKeyAnaType <<
": should begin with 'Adc'."
6303 <<
" Please, change the analysis name." <<
fTTBELL << std::endl;
6322 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Clean requested with code: " << clean_code << std::endl;
6325 if (clean_code ==
"Sub" || clean_code ==
"All") {
6332 TString CnaCleanSubmissionCommand = ModulesdataPath;
6333 TString CleanSubmissionScriptName =
"EcnaSystemScriptCleanSubmissionScripts";
6334 const Text_t* t_CleanSubmissionScriptName = (
const Text_t*)CleanSubmissionScriptName.Data();
6335 CnaCleanSubmissionCommand.Append(t_CleanSubmissionScriptName);
6341 CnaCleanSubmissionCommand.Append(
' ');
6342 const Text_t* t_modules_data_path = (
const Text_t*)TestslcPath.Data();
6343 CnaCleanSubmissionCommand.Append(t_modules_data_path);
6346 const Text_t* t_cnacleansubmissioncommand = (
const Text_t*)CnaCleanSubmissionCommand.Data();
6347 TString CnaExecCleanSubmissionCommand =
"csh ";
6348 CnaExecCleanSubmissionCommand.Append(t_cnacleansubmissioncommand);
6350 Int_t i_exec_cleansubmission = gSystem->Exec(CnaExecCleanSubmissionCommand.Data());
6352 if (i_exec_cleansubmission != 0) {
6353 std::cout <<
"*TEcnaGui> Script for submission script clean was executed with error code = "
6354 << i_exec_cleansubmission <<
"." << std::endl
6355 <<
" Command: " << CnaExecCleanSubmissionCommand.Data() << std::endl
6358 std::cout <<
"*TEcnaGui> Script for submission script clean"
6359 <<
" was successfully executed." << std::endl
6360 <<
" (Command: " << CnaExecCleanSubmissionCommand.Data() <<
")" << std::endl;
6365 if (clean_code ==
"Job" || clean_code ==
"All") {
6372 TString CnaCleanJobreportCommand = ModulesdataPath;
6373 TString CleanJobreportScriptName =
"EcnaSystemScriptCleanLSFJOBReports";
6374 const Text_t* t_CleanJobreportScriptName = (
const Text_t*)CleanJobreportScriptName.Data();
6375 CnaCleanJobreportCommand.Append(t_CleanJobreportScriptName);
6381 CnaCleanJobreportCommand.Append(
' ');
6382 const Text_t* t_modules_data_path = (
const Text_t*)TestslcPath.Data();
6383 CnaCleanJobreportCommand.Append(t_modules_data_path);
6386 const Text_t* t_cnacleanjobreportcommand = (
const Text_t*)CnaCleanJobreportCommand.Data();
6387 TString CnaExecCleanJobreportCommand =
"csh ";
6388 CnaExecCleanJobreportCommand.Append(t_cnacleanjobreportcommand);
6390 Int_t i_exec_cleanjobreport = gSystem->Exec(CnaExecCleanJobreportCommand.Data());
6392 if (i_exec_cleanjobreport != 0) {
6393 std::cout <<
"*TEcnaGui> Script for LSFJOB report clean was executed with error code = " << i_exec_cleanjobreport
6395 <<
" Command: " << CnaExecCleanJobreportCommand.Data() << std::endl
6398 std::cout <<
"*TEcnaGui> Script for LSFJOB report clean"
6399 <<
" was successfully executed." << std::endl
6400 <<
" (Command: " << CnaExecCleanJobreportCommand.Data() <<
")" << std::endl;
6405 if (clean_code ==
"Pyth" || clean_code ==
"All") {
6412 TString CnaCleanPythonCommand = ModulesdataPath;
6413 TString CleanPythonScriptName =
"EcnaSystemScriptCleanPythonFiles";
6414 const Text_t* t_CleanPythonScriptName = (
const Text_t*)CleanPythonScriptName.Data();
6415 CnaCleanPythonCommand.Append(t_CleanPythonScriptName);
6418 CnaCleanPythonCommand.Append(
' ');
6419 const Text_t* t_modules_data_path = (
const Text_t*)ModulesdataPath.Data();
6420 CnaCleanPythonCommand.Append(t_modules_data_path);
6423 const Text_t* t_cnacleanpythoncommand = (
const Text_t*)CnaCleanPythonCommand.Data();
6424 TString CnaExecCleanPythonCommand =
"csh ";
6425 CnaExecCleanPythonCommand.Append(t_cnacleanpythoncommand);
6427 Int_t i_exec_cleanpython = gSystem->Exec(CnaExecCleanPythonCommand.Data());
6429 if (i_exec_cleanpython != 0) {
6430 std::cout <<
"*TEcnaGui> Script for python file clean was executed with error code = " << i_exec_cleanpython
6432 <<
" Command: " << CnaExecCleanPythonCommand.Data() << std::endl
6435 std::cout <<
"*TEcnaGui> Script for python file clean"
6436 <<
" was successfully executed." << std::endl
6437 <<
" (Command: " << CnaExecCleanPythonCommand.Data() <<
")" << std::endl;
6452 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Calculations requested with code: " << calc_code << std::endl;
6460 if (calc_code ==
"Std" || ((calc_code ==
"Scc" || calc_code ==
"Stt") &&
fConfirmCalcScc == 1)) {
6469 for (Int_t nStex = nStexMin; nStex <= nStexMax; nStex++) {
6474 if (MyRun ==
nullptr) {
6484 <<
" found. Starting calculations." << std::endl;
6489 if (calc_code ==
"Std" || ((calc_code ==
"Scc" || calc_code ==
"Stt") &&
fConfirmCalcScc == 1)) {
6493 if ((calc_code ==
"Scc" || calc_code ==
"Stt") &&
fConfirmCalcScc == 1) {
6494 if (calc_code ==
"Scc") {
6497 std::cout <<
"*TEcnaGui::Calculations> Please, wait." << std::endl;
6508 if (calc_code ==
"Stt") {
6511 std::cout <<
"*TEcnaGui::Calculations> Please, wait." << std::endl;
6522 TString calc_file_name =
"?";
6523 if (calc_code ==
"Std") {
6525 calc_file_name =
"StdPed1";
6528 calc_file_name =
"StdPed6";
6531 calc_file_name =
"StdPed12";
6534 calc_file_name =
"StdPeg12";
6537 calc_file_name =
"StdLaser";
6540 calc_file_name =
"StdPes12";
6544 calc_file_name =
"StdSPed1";
6547 calc_file_name =
"StdSPed6";
6550 calc_file_name =
"StdSPed12";
6553 calc_file_name =
"StdSPeg12";
6556 calc_file_name =
"StdSLaser";
6559 calc_file_name =
"StdSPes12";
6563 calc_file_name =
"StdPhys";
6566 calc_file_name =
"StdAny";
6569 if (calc_code ==
"Scc") {
6571 calc_file_name =
"SccPed1";
6574 calc_file_name =
"SccPed6";
6577 calc_file_name =
"SccPed12";
6580 calc_file_name =
"SccPeg12";
6583 calc_file_name =
"SccLaser";
6586 calc_file_name =
"SccPes12";
6590 calc_file_name =
"SccSPed1";
6593 calc_file_name =
"SccSPed6";
6596 calc_file_name =
"SccSPed12";
6599 calc_file_name =
"SccSPeg12";
6602 calc_file_name =
"SccSLaser";
6605 calc_file_name =
"SccSPes12";
6609 calc_file_name =
"SccPhys";
6612 calc_file_name =
"SccAny";
6616 if (calc_code ==
"Stt") {
6618 calc_file_name =
"SttPed1";
6621 calc_file_name =
"SttPed6";
6624 calc_file_name =
"SttPed12";
6627 calc_file_name =
"SttPeg12";
6630 calc_file_name =
"SttLaser";
6633 calc_file_name =
"SttPes12";
6637 calc_file_name =
"SttSPed1";
6640 calc_file_name =
"SttSPed6";
6643 calc_file_name =
"SttSPed12";
6646 calc_file_name =
"SttSPeg12";
6649 calc_file_name =
"SttSLaser";
6652 calc_file_name =
"SttSPes12";
6656 calc_file_name =
"SttPhys";
6659 calc_file_name =
"SttAny";
6665 <<
" OK" << std::endl
6668 std::cout <<
"!TEcnaGui::Calculations> Writing ROOT file failure for file "
6686 <<
") less than number of samples for calculations (= " <<
fKeyNbOfSampForCalc <<
"). " << std::endl;
6690 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Calculation requested with option " << calc_code
6691 <<
". This can last more than 5 minutes. Please, click again to confirm." <<
fTTBELL << std::endl;
6695 std::cout <<
"!TEcnaGui::Calculations> fKeyAnaType = " <<
fKeyAnaType <<
" : wrong code in analysis name."
6697 <<
" List of available standard analysis names for calculations: " << std::endl
6698 <<
" AdcPed1, AdcPed6, AdcPed12, AdcPeg12, AdcLaser, AdcPes12," << std::endl
6699 <<
" AdcSPed1, AdcSPed6, AdcSPed12, AdcSPeg12, AdcSLaser, AdcSPes12," << std::endl
6700 <<
" AdcPhys, AdcAny (all names must begin with 'Adc')." <<
fTTBELL << std::endl;
6717 if (first_same_plot ==
"ASCII") {
6726 if (first_same_plot ==
"ASCII") {
6730 if (xAsciiFileName !=
"?") {
6731 std::cout <<
" Histo written in ASCII file: " << xAsciiFileName.Data();
6764 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Low Frequency Mean Cor(c,c') for each pair of "
6765 <<
fStinName.Data() <<
"s. Option: " << option_plot;
6791 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> High Frequency Mean Cor(c,c') for each pair of "
6792 <<
fStinName.Data() <<
"s. Option: " << option_plot;
6804 const Int_t& cStexStin_B,
6805 const TString& option_plot) {
6821 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Low Frequency Correlation matrix between channels. "
6822 <<
fStinName.Data() <<
" A: " << cStexStin_A <<
", " <<
fStinName.Data() <<
" B: " << cStexStin_B
6823 <<
", option: " << option_plot;
6834 const Int_t& cStexStin_B,
6835 const TString& option_plot) {
6851 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> High Frequency Correlation matrix between channels. "
6852 <<
fStinName.Data() <<
" A: " << cStexStin_A <<
", " <<
fStinName.Data() <<
" B: " << cStexStin_B
6853 <<
", option: " << option_plot;
6922 const Int_t& i0StinEcha,
6923 const TString& option_plot) {
6945 << cStexStin_A <<
", channel " << i0StinEcha + ChOffset <<
", option: " << option_plot;
6957 const Int_t& i0StinEcha,
6958 const TString& option_plot) {
6980 << cStexStin_A <<
", channel " << i0StinEcha + ChOffset <<
", option: " << option_plot;
7014 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Correlation matrices between samples for each channel of "
7015 <<
fStinName.Data() <<
" " << cStexStin;
7042 std::cout <<
" *TEcnaGui [" <<
fCnaCommand <<
"]> Covariance matrices between samples for each channel of "
7043 <<
fStinName.Data() <<
" " << cStexStin;
7065 if (
fKeyStexNumber > 0 && fKeyStexNumber <= fEcal->MaxStexInStas()) {
7089 if (
fKeyStexNumber > 0 && fKeyStexNumber <= fEcal->MaxStexInStas()) {
7105 if (
fKeyStexNumber > 0 && fKeyStexNumber <= fEcal->MaxStexInStas()) {
7129 if (
fKeyStexNumber > 0 && fKeyStexNumber <= fEcal->MaxStexInStas()) {
7145 if (
fKeyStexNumber > 0 && fKeyStexNumber <= fEcal->MaxStexInStas()) {
7168 if (
fKeyStexNumber > 0 && fKeyStexNumber <= fEcal->MaxStexInStas()) {
7184 if (
fKeyStexNumber > 0 && fKeyStexNumber <= fEcal->MaxStexInStas()) {
7207 if (
fKeyStexNumber > 0 && fKeyStexNumber <= fEcal->MaxStexInStas()) {
7223 if (
fKeyStexNumber > 0 && fKeyStexNumber <= fEcal->MaxStexInStas()) {
7246 if (
fKeyStexNumber > 0 && fKeyStexNumber <= fEcal->MaxStexInStas()) {
7262 if (
fKeyStexNumber > 0 && fKeyStexNumber <= fEcal->MaxStexInStas()) {
7285 if (
fKeyStexNumber > 0 && fKeyStexNumber <= fEcal->MaxStexInStas()) {
7301 if (
fKeyStexNumber > 0 && fKeyStexNumber <= fEcal->MaxStexInStas()) {
7324 if (
fKeyStexNumber > 0 && fKeyStexNumber <= fEcal->MaxStexInStas()) {
7342 Int_t StinNumber = -1;
7344 StinNumber = StexStinEcna;
7420 "Xtal",
"NOE",
"SM", first_same_plot);
7822 const Int_t& crystal,
7823 const TString& first_same_plot) {
7843 <<
", option: " << first_same_plot << std::endl;
7851 fHistos->
Plot1DHisto(
"Sample#",
"SampleMean", cStexStin_A, crystal, first_same_plot);
7856 const Int_t& crystal,
7857 const TString& first_same_plot) {
7877 <<
", option: " << first_same_plot << std::endl;
7885 fHistos->
Plot1DHisto(
"SampleMean",
"NbOfSamples", cStexStin_A, crystal, first_same_plot);
7889 const Int_t& crystal,
7890 const TString& first_same_plot) {
7910 <<
", crystal:" << crystal <<
", option: " << first_same_plot << std::endl;
7918 fHistos->
Plot1DHisto(
"Sample#",
"SampleSigma", cStexStin_A, crystal, first_same_plot);
7922 const Int_t& crystal,
7923 const TString& first_same_plot) {
7943 <<
", crystal:" << crystal <<
", option: " << first_same_plot << std::endl;
7951 fHistos->
Plot1DHisto(
"SampleSigma",
"NbOfSamples", cStexStin_A, crystal, first_same_plot);
7956 const Int_t& crystal,
7958 const TString& first_same_plot) {
7961 Int_t n1Sample =
sample + 1;
7979 <<
", crystal: " << crystal <<
", sample: " << n1Sample <<
", option: " << first_same_plot << std::endl;
7987 fHistos->
Plot1DHisto(
"Event#",
"AdcValue", cStexStin_A, crystal, n1Sample, first_same_plot);
7991 const Int_t& crystal,
7993 const TString& first_same_plot) {
7996 Int_t n1Sample =
sample + 1;
8014 <<
", crystal: " << crystal <<
", sample " << n1Sample <<
", option: " << first_same_plot << std::endl;
8022 fHistos->
Plot1DHisto(
"AdcValue",
"NbOfEvts", cStexStin_A, crystal, n1Sample, first_same_plot);
8027 const Int_t& cStexStin_A,
8028 const Int_t& i0StinEcha,
8029 const TString& first_same_plot) {
8039 <<
". Run parameters file name: " << run_par_file_name <<
", " <<
fStinName.Data() <<
": " << cStexStin_A
8040 <<
", channel: " << i0StinEcha <<
", option: " << first_same_plot << std::endl;
8050 fHistos->
PlotHistory(
"Time",
"Ped", run_par_file_name, cStexStin_A, i0StinEcha, first_same_plot);
8054 const Int_t& cStexStin_A,
8055 const Int_t& i0StinEcha,
8056 const TString& first_same_plot) {
8066 <<
". Run parameters file name: " << run_par_file_name <<
", " <<
fStinName.Data() <<
": " << cStexStin_A
8067 <<
", channel: " << i0StinEcha <<
", option: " << first_same_plot << std::endl;
8077 fHistos->
PlotHistory(
"Ped",
"NOR", run_par_file_name, cStexStin_A, i0StinEcha, first_same_plot);
8082 const Int_t& cStexStin_A,
8083 const Int_t& i0StinEcha,
8084 const TString& first_same_plot) {
8094 <<
". Run parameters file name: " << run_par_file_name <<
", " <<
fStinName.Data() <<
": " << cStexStin_A
8095 <<
", channel: " << i0StinEcha <<
", option: " << first_same_plot << std::endl;
8105 fHistos->
PlotHistory(
"Time",
"TNo", run_par_file_name, cStexStin_A, i0StinEcha, first_same_plot);
8109 const Int_t& cStexStin_A,
8110 const Int_t& i0StinEcha,
8111 const TString& first_same_plot) {
8121 <<
". Run parameters file name: " << run_par_file_name <<
", " <<
fStinName.Data() <<
": " << cStexStin_A
8122 <<
", channel: " << i0StinEcha <<
", option: " << first_same_plot << std::endl;
8132 fHistos->
PlotHistory(
"TNo",
"NOR", run_par_file_name, cStexStin_A, i0StinEcha, first_same_plot);
8136 const Int_t& cStexStin_A,
8137 const Int_t& i0StinEcha,
8138 const TString& first_same_plot) {
8148 <<
". Run parameters file name: " << run_par_file_name <<
", " <<
fStinName.Data() <<
": " << cStexStin_A
8149 <<
", channel: " << i0StinEcha <<
", option: " << first_same_plot << std::endl;
8159 fHistos->
PlotHistory(
"Time",
"LFN", run_par_file_name, cStexStin_A, i0StinEcha, first_same_plot);
8163 const Int_t& cStexStin_A,
8164 const Int_t& i0StinEcha,
8165 const TString& first_same_plot) {
8175 <<
". Run parameters file name: " << run_par_file_name <<
", " <<
fStinName.Data() <<
": " << cStexStin_A
8176 <<
", channel: " << i0StinEcha <<
", option: " << first_same_plot << std::endl;
8186 fHistos->
PlotHistory(
"LFN",
"NOR", run_par_file_name, cStexStin_A, i0StinEcha, first_same_plot);
8190 const Int_t& cStexStin_A,
8191 const Int_t& i0StinEcha,
8192 const TString& first_same_plot) {
8202 <<
". Run parameters file name: " << run_par_file_name <<
", " <<
fStinName.Data() <<
": " << cStexStin_A
8203 <<
", channel: " << i0StinEcha <<
", option: " << first_same_plot << std::endl;
8213 fHistos->
PlotHistory(
"Time",
"HFN", run_par_file_name, cStexStin_A, i0StinEcha, first_same_plot);
8217 const Int_t& cStexStin_A,
8218 const Int_t& i0StinEcha,
8219 const TString& first_same_plot) {
8229 <<
". Run parameters file name: " << run_par_file_name <<
", " <<
fStinName.Data() <<
": " << cStexStin_A
8230 <<
", channel: " << i0StinEcha <<
", option: " << first_same_plot << std::endl;
8240 fHistos->
PlotHistory(
"HFN",
"NOR", run_par_file_name, cStexStin_A, i0StinEcha, first_same_plot);
8244 const Int_t& cStexStin_A,
8245 const Int_t& i0StinEcha,
8246 const TString& first_same_plot) {
8256 <<
". Run parameters file name: " << run_par_file_name <<
", " <<
fStinName.Data() <<
": " << cStexStin_A
8257 <<
", channel: " << i0StinEcha <<
", option: " << first_same_plot << std::endl;
8267 fHistos->
PlotHistory(
"Time",
"MCs", run_par_file_name, cStexStin_A, i0StinEcha, first_same_plot);
8271 const Int_t& cStexStin_A,
8272 const Int_t& i0StinEcha,
8273 const TString& first_same_plot) {
8283 <<
". Run parameters file name: " << run_par_file_name <<
", " <<
fStinName.Data() <<
": " << cStexStin_A
8284 <<
", channel: " << i0StinEcha <<
", option: " << first_same_plot << std::endl;
8294 fHistos->
PlotHistory(
"MCs",
"NOR", run_par_file_name, cStexStin_A, i0StinEcha, first_same_plot);
8298 const Int_t& cStexStin_A,
8299 const Int_t& i0StinEcha,
8300 const TString& first_same_plot) {
8310 <<
". Run parameters file name: " << run_par_file_name <<
", " <<
fStinName.Data() <<
": " << cStexStin_A
8311 <<
", channel: " << i0StinEcha <<
", option: " << first_same_plot << std::endl;
8321 fHistos->
PlotHistory(
"Time",
"SCs", run_par_file_name, cStexStin_A, i0StinEcha, first_same_plot);
8325 const Int_t& cStexStin_A,
8326 const Int_t& i0StinEcha,
8327 const TString& first_same_plot) {
8337 <<
". Run parameters file name: " << run_par_file_name <<
", " <<
fStinName.Data() <<
": " << cStexStin_A
8338 <<
", channel: " << i0StinEcha <<
", option: " << first_same_plot << std::endl;
8348 fHistos->
PlotHistory(
"SCs",
"NOR", run_par_file_name, cStexStin_A, i0StinEcha, first_same_plot);
8445 char* f_in =
new char[20];
8447 sprintf(f_in,
"%d",
value);
8448 StringOfField->SetText(f_in);
8454 char* f_in =
new char[20];
8456 sprintf(f_in,
"%g",
value);
8457 StringOfField->SetText(f_in);
8463 StringOfField->SetText(
value);