68 if( pCnaParPaths == 0 )
74 if( pCnaParCout == 0 )
86 if( pEcalNumbering == 0 )
181 if( pEcalNumbering == 0 )
280 const Int_t& MaxArray,
const Int_t& NbOfReqEvts)
285 Int_t rNumberOfEvents = 0;
286 Int_t PresentNumber = 0;
287 Int_t DifferentValue = 0;
288 Int_t EmptyChannel = 0;
291 for(Int_t i_SSoSE=0 ; i_SSoSE<MaxArray ; i_SSoSE++)
293 Int_t NbOfEvts = ArrayNbOfEvts[i_SSoSE];
297 if( PresentNumber == 0 )
299 PresentNumber = NbOfEvts;
303 if( NbOfEvts > PresentNumber )
305 PresentNumber = NbOfEvts;
308 if( NbOfEvts < PresentNumber )
320 rNumberOfEvents = PresentNumber;
322 if( EmptyChannel > 0 )
326 cout <<
"*TEcnaWrite::NumberOfEvents()> *** WARNING *** " << EmptyChannel
327 <<
" empty channels found." << endl;
331 if( DifferentValue > 0 )
333 cout <<
"!TEcnaWrite::NumberOfEvents()> ******************************* W A R N I N G ***************************" << endl
334 <<
" NUMBER OF EVENTS NOT CONSTANT" << endl
335 <<
" The number of events is not the same for some channels and/or samples (empty channels not included)" << endl
336 <<
" Number of differences = " << DifferentValue << endl
338 <<
" The maximum number (" << rNumberOfEvents <<
") is considered as the number " << endl
339 <<
" of events for calculations of pedestals, noises and correlations." << endl
340 <<
" Some values of pedestals, noises and correlations may be wrong for channels" << endl
341 <<
" with number of events different from " << rNumberOfEvents <<
"." << endl
342 <<
" Please, check the histogram 'Numbers of events'." << endl
343 <<
"*******************************************************************************************************"
350 if( rNumberOfEvents < NbOfReqEvts )
352 cout <<
"*TEcnaWrite::NumberOfEvents()> *** INFO *** Number of events found in data = "
353 << rNumberOfEvents <<
": less than number of requested events ( = " << NbOfReqEvts <<
")" << endl;
357 return rNumberOfEvents;
362 const Int_t& MaxNbOfSamples,
const Int_t& NbOfReqEvts)
367 Int_t rNumberOfEvents = 0;
368 Int_t PresentNumber = 0;
369 Int_t DifferentValue = 0;
371 for(Int_t i0StexEcha = 0 ; i0StexEcha < MaxCrysEcnaInStex ; i0StexEcha++)
373 for(Int_t i_samp = 0 ; i_samp < MaxNbOfSamples ; i_samp++)
375 Int_t NbOfEvts = T2d_NbOfEvts[i0StexEcha][i_samp];
379 if( PresentNumber == 0 )
381 PresentNumber = NbOfEvts;
385 if( NbOfEvts > PresentNumber )
387 PresentNumber = NbOfEvts;
390 if( NbOfEvts < PresentNumber )
399 rNumberOfEvents = PresentNumber;
401 if( DifferentValue > 0 )
403 cout <<
"!TEcnaWrite::NumberOfEvents()> ******************************* W A R N I N G ***************************" << endl
404 <<
" NUMBER OF EVENTS NOT CONSTANT" << endl
405 <<
" The number of events is not the same for some channels and/or samples (empty channels not included)" << endl
406 <<
" Number of differences = " << DifferentValue << endl
408 <<
" The maximum number (" << rNumberOfEvents <<
") is considered as the number " << endl
409 <<
" of events for calculations of pedestals, noises and correlations."
410 <<
" Some values of pedestals, noises and correlations may be wrong for channels" << endl
411 <<
" with number of events different from " << rNumberOfEvents <<
"." << endl
412 <<
" Please, check the histogram 'Numbers of events'." << endl
413 <<
"*******************************************************************************************************"
420 if( rNumberOfEvents < NbOfReqEvts )
422 cout <<
"*TEcnaWrite::NumberOfEvents()> *** INFO *** Number of events found in data = "
423 << rNumberOfEvents <<
": less than number of requested events ( = " << NbOfReqEvts <<
")" << endl;
427 return rNumberOfEvents;
432 const Int_t& ArgNbOfSamples,
const Int_t& ArgRunNumber,
433 const Int_t& ArgFirstReqEvtNumber,
const Int_t& ArgLastReqEvtNumber,
434 const Int_t& ArgReqNbOfEvts,
const Int_t& ArgStexNumber)
447 const Int_t& ArgNbOfSamples,
const Int_t& ArgRunNumber,
448 const Int_t& ArgFirstReqEvtNumber,
const Int_t& ArgLastReqEvtNumber,
449 const Int_t& ArgReqNbOfEvts,
const Int_t& ArgStexNumber,
450 const TString ArgStartDate,
const TString ArgStopDate,
451 const time_t ArgStartTime,
const time_t ArgStopTime)
522 TString sPointInterrog =
"?";
523 TString sDollarHome =
"$HOME";
529 cout <<
"!TEcnaWrite::fMakeResultsFileName> * * * W A R N I N G * * * " << endl << endl
530 <<
" Path for results .root file not defined. Default option will be used here:" << endl
531 <<
" your results files will be written in your HOME directory." << endl << endl
532 <<
" In order to write the .root results file in a specific directory," << endl
533 <<
" you have to create a file named path_results_root in a subdirectory named ECNA" << endl
534 <<
" previously created in your home directory." << endl
535 <<
" This file must have only one line containing the path of the directory" << endl
536 <<
" where must be the .root result files." << endl
539 TString home_path = gSystem->Getenv(
"HOME");
548 TString home_path = gSystem->Getenv(
"HOME");
553 sprintf(f_in,
"%s/%s_S1_%d_R%d_%d_%d_%d_%s%d",
556 sprintf(f_in_short,
"%s_S1_%d_R%d_%d_%d_%d_%s%d",
569 cout <<
"!TEcnaWrite::fMakeResultsFileName> * * * W A R N I N G * * * " << endl << endl
570 <<
" Path for results .ascii file not defined. Default option will be used here:" << endl
571 <<
" your results files will be written in your HOME directory." << endl << endl
572 <<
" In order to write the .ascii results file in a specific directory," << endl
573 <<
" you have to create a file named path_results_ascii in a subdirectory named ECNA" << endl
574 <<
" previously created in your home directory." << endl
575 <<
" This file must have only one line containing the path of the directory" << endl
576 <<
" where must be the .ascii result files." << endl
579 TString home_path = gSystem->Getenv(
"HOME");
588 TString home_path = gSystem->Getenv(
"HOME");
594 sprintf(f_in,
"%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_header",
597 sprintf(f_in_short,
"%s_S1_%d_R%d_%d_%d_%d_%s%d_header",
605 sprintf(f_in,
"%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_NbOfEvents",
608 sprintf(f_in_short,
"%s_S1_%d_R%d_%d_%d_%d_%s%d_NbOfEvents",
615 sprintf(f_in,
"%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_Pedestals",
618 sprintf(f_in_short,
"%s_S1_%d_R%d_%d_%d_%d_%s%d_Pedestals",
625 sprintf(f_in,
"%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_TotalNoise",
628 sprintf(f_in_short,
"%s_S1_%d_R%d_%d_%d_%d_%s%d_TotalNoise",
635 sprintf(f_in,
"%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_LFNoise",
638 sprintf(f_in_short,
"%s_S1_%d_R%d_%d_%d_%d_%s%d_LFNoise",
645 sprintf(f_in,
"%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_HFNoise",
648 sprintf(f_in_short,
"%s_S1_%d_R%d_%d_%d_%d_%s%d_HFNoise",
655 sprintf(f_in,
"%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_MeanCorss",
658 sprintf(f_in_short,
"%s_S1_%d_R%d_%d_%d_%d_%s%d_MeanCorss",
665 sprintf(f_in,
"%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_SigmaCorss",
668 sprintf(f_in_short,
"%s_S1_%d_R%d_%d_%d_%d_%s%d_SigmaCorss",
675 sprintf(f_in,
"%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_Covss_%s%d_Channel_%d",
679 sprintf(f_in_short,
"%s_S1_%d_R%d_%d_%d_%d_%s%d_Covss_%s%d_Channel_%d",
687 sprintf(f_in,
"%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_Corss_%s%d_Channel_%d",
691 sprintf(f_in_short,
"%s_S1_%d_R%d_%d_%d_%d_%s%d_Corss_%s%d_Channel_%d",
702 sprintf(f_in,
"%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_SampleMeans",
705 sprintf(f_in_short,
"%s_S1_%d_R%d_%d_%d_%d_%s%d_SampleMeans",
712 sprintf(f_in,
"%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_SampleSigmas",
715 sprintf(f_in_short,
"%s_S1_%d_R%d_%d_%d_%d_%s%d_SampleSigmas",
722 sprintf(f_in,
"%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_AveragedTotalNoise_c%d",
725 sprintf(f_in_short,
"%s_S1_%d_R%d_%d_%d_%d_%s%d_AveragedTotalNoise_c%d",
732 sprintf(f_in,
"%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_LF_cov",
735 sprintf(f_in_short,
"%s_S1_%d_R%d_%d_%d_%d_%s%d_LF_cov",
742 sprintf(f_in,
"%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_LF_cor",
745 sprintf(f_in_short,
"%s_S1_%d_R%d_%d_%d_%d_%s%d_LF_cor",
752 sprintf(f_in,
"%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_AveragedPedestals",
755 sprintf(f_in_short,
"%s_S1_%d_R%d_%d_%d_%d_%s%d_AveragedPedestals",
762 sprintf(f_in,
"%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_AveragedMeanCorss%d",
765 sprintf(f_in_short,
"%s_S1_%d_R%d_%d_%d_%d_%s%d_AveragedMeanCorss%d",
772 sprintf(f_in,
"%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_AveragedSigmaCorss%d",
775 sprintf(f_in_short,
"%s_S1_%d_R%d_%d_%d_%d_%s%d_AveragedSigmaCorss%d",
792 for (Int_t
i = 0 ;
i <
fgMaxCar ;
i++){f_name[
i] =
'\0';}
797 if ( f_in[
i] !=
'\0' ){f_name[
i] = f_in[
i]; ii++;}
801 if ( ii+5 < fgMaxCar )
808 f_name[ii] =
'.'; f_name[ii+1] =
'a';
809 f_name[ii+2] =
's'; f_name[ii+3] =
'c';
810 f_name[ii+4] =
'i'; f_name[ii+5] =
'i';
817 f_name[ii] =
'.'; f_name[ii+1] =
'r';
818 f_name[ii+2] =
'o'; f_name[ii+3] =
'o'; f_name[ii+4] =
't';
825 cout <<
"*TEcnaWrite::fMakeResultsFileName(...)> Name too long (for f_name)."
826 <<
" No room enough for the extension. (ii = " << ii <<
")"
835 for (Int_t
i = 0 ;
i <
fgMaxCar ;
i++){f_name_short[
i] =
'\0';}
840 if ( f_in_short[
i] !=
'\0' ){f_name_short[
i] = f_in_short[
i]; ii++;}
844 if ( ii+5 < fgMaxCar )
851 f_name_short[ii] =
'.'; f_name_short[ii+1] =
'a';
852 f_name_short[ii+2] =
's'; f_name_short[ii+3] =
'c';
853 f_name_short[ii+4] =
'i'; f_name_short[ii+5] =
'i';
861 f_name_short[ii] =
'.'; f_name_short[ii+1] =
'r';
862 f_name_short[ii+2] =
'o'; f_name_short[ii+3] =
'o'; f_name_short[ii+4] =
't';
869 cout <<
"*TEcnaWrite::fMakeResultsFileName(...)> Name too long (for f_name_short)."
870 <<
" No room enough for the extension. (ii = " << ii <<
")"
873 delete [] f_name; f_name = 0;
fCdelete++;
874 delete [] f_name_short; f_name_short = 0;
fCdelete++;
876 delete [] f_in; f_in = 0;
fCdelete++;
877 delete [] f_in_short; f_in_short = 0;
fCdelete++;
902 const Text_t *t_file_nohome = (
const Text_t *)EndOfAsciiFileName.Data();
904 TString home_path = gSystem->Getenv(
"HOME");
913 <<
" *** " << endl << endl;
1025 const TVectorD& read_histo)
1035 if( HistoCode ==
"D_Ped_ChNb" ){i_code =
fCodePed;}
1036 if( HistoCode ==
"D_TNo_ChNb" ){i_code =
fCodeTno;}
1037 if( HistoCode ==
"D_LFN_ChNb" ){i_code =
fCodeLfn;}
1038 if( HistoCode ==
"D_HFN_ChNb" ){i_code =
fCodeHfn;}
1046 fFcout_f << setiosflags(ios::showpoint | ios::uppercase);
1047 fFcout_f << setprecision(3) << setw(6);
1048 fFcout_f.setf(ios::dec, ios::basefield);
1049 fFcout_f.setf(ios::fixed, ios::floatfield);
1050 fFcout_f.setf(ios::left, ios::adjustfield);
1051 fFcout_f.setf(ios::right, ios::adjustfield);
1053 cout << setiosflags(ios::showpoint | ios::uppercase);
1054 cout << setprecision(3) << setw(6);
1055 cout.setf(ios::dec, ios::basefield);
1056 cout.setf(ios::fixed, ios::floatfield);
1057 cout.setf(ios::left, ios::adjustfield);
1058 cout.setf(ios::right, ios::adjustfield);
1063 aStexName.Resize(MaxCar);
1064 aStexName =
"SM or Dee?";
1068 aStinName.Resize(MaxCar);
1069 aStinName =
"Tower or SC?";
1073 aHoco.Resize(MaxCar);
1074 aHoco =
"Eta or IX?";
1078 aVeco.Resize(MaxCar);
1079 aVeco =
"Phi or IY?";
1083 aSpecifa.Resize(MaxCar);
1088 aSpecifc.Resize(MaxCar);
1093 aSpecifd.Resize(MaxCar);
1098 aSpecife.Resize(MaxCar);
1103 aSpecif1.Resize(MaxCar);
1108 aSpecif2.Resize(MaxCar);
1113 aStexName =
"SM " ; aStinName =
"tower" ; aSpecifa =
" channel# ";
1114 aHoco =
" Eta "; aVeco =
" Phi "; aSpecifc =
" channel# ";
1115 aSpecifd =
" crystal# "; aSpecife =
"SM ";
1119 aStexName =
"Dee " ; aStinName =
" SC " ; aSpecifa =
" Sector# ";
1120 aHoco =
" IX "; aVeco =
" IY "; aSpecifc =
" crystal# ";
1121 aSpecifd =
" SC # "; aSpecife =
"Sector";
1126 for (Int_t i0StexEcha=0; i0StexEcha<HisSize; i0StexEcha++)
1128 Int_t n1StexStin = 0;
1129 Int_t StexStinEcna = 0;
1130 Int_t i0StinEcha = 0;
1131 Int_t n1StinEcha = 0;
1132 Int_t n1StexCrys = 0;
1133 Int_t n1DataSector = 0;
1139 StexStinEcna = n1StexStin;
1152 if( n1StexStin > 0 )
1156 if( HistoCode ==
"D_NOE_ChNb" ){aSpecif1 =
"Number of"; aSpecif2 =
" Events (requested)";}
1157 if( HistoCode ==
"D_Ped_ChNb" ){aSpecif1 =
"Pedestals"; aSpecif2 =
" ";}
1158 if( HistoCode ==
"D_TNo_ChNb" ){aSpecif1 =
" Total "; aSpecif2 =
" Noise ";}
1159 if( HistoCode ==
"D_MCs_ChNb" ){aSpecif1 =
" Mean of "; aSpecif2 =
" Cor(s,s) ";}
1160 if( HistoCode ==
"D_LFN_ChNb" ){aSpecif1 =
" Low Fq"; aSpecif2 =
" Noise ";}
1161 if( HistoCode ==
"D_HFN_ChNb" ){aSpecif1 =
" High Fq"; aSpecif2 =
" Noise ";}
1162 if( HistoCode ==
"D_SCs_ChNb" ){aSpecif1 =
" Sigma of"; aSpecif2 =
" Cor(s,s) ";}
1167 <<
" " << aStinName.Data() <<
"# "
1172 << aSpecif1.Data() << endl;
1174 fFcout_f <<
" in " << aStexName.Data()
1175 <<
" in " << aStexName.Data()
1176 <<
" in " << aStinName.Data()
1177 <<
" in " << aSpecife.Data()
1178 <<
" in " << aStexName.Data()
1179 <<
" in " << aStexName.Data()
1180 << aSpecif2.Data() << endl << endl;
1183 Double_t
value = read_histo(i0StexEcha);
1188 << setw(8) << n1StexStin
1189 << setw(11) << i0StinEcha
1190 << setw(10) << n1StexCrys
1196 fFcout_f << setw(7) << n1DataSector
1197 << setw(8) << n1StexStin
1198 << setw(11) << n1StinEcha
1199 << setw(10) << n1SCinDS
1204 if( HistoCode ==
"D_NOE_ChNb")
1206 Int_t ivalue = (Int_t)value;
1223 cout <<
"*TEcnaWrite::WriteAsciiHisto(...)> INFO: "
1224 <<
"histo has been written in file: " << endl
1242 const Int_t& user_StinEcha,
1243 const Int_t& MatSize,
1244 const TMatrixD& read_matrix)
1272 const Int_t& user_StinEcha,
1273 const Int_t& MatSize,
1274 const TMatrixD& read_matrix)
1306 const Int_t& i_pasx_arg,
1307 const Int_t& i_pasy_arg,
1308 const Int_t& MatSize,
1309 const TMatrixD& read_matrix)
1313 Int_t i_pasx = i_pasx_arg;
1314 Int_t i_pasy = i_pasy_arg;
1318 fFcout_f << setiosflags(ios::showpoint | ios::uppercase);
1319 fFcout_f.setf(ios::dec, ios::basefield);
1320 fFcout_f.setf(ios::fixed, ios::floatfield);
1321 fFcout_f.setf(ios::left, ios::adjustfield);
1322 fFcout_f.setf(ios::right, ios::adjustfield);
1323 fFcout_f << setprecision(3) << setw(6);
1325 cout << setiosflags(ios::showpoint | ios::uppercase);
1326 cout.setf(ios::dec, ios::basefield);
1327 cout.setf(ios::fixed, ios::floatfield);
1328 cout.setf(ios::left, ios::adjustfield);
1329 cout.setf(ios::right, ios::adjustfield);
1330 cout << setprecision(3) << setw(6);
1347 Int_t justap_chan = 0;
1363 for(Int_t
i = 0 ;
i < justap_chan ;
i++){
1390 Int_t justap_samp = 0;
1406 for(Int_t
i = 0 ;
i < justap_samp ;
i++){
1439 fFcout_f <<
"Covariance matrix between channels "
1441 isx_max = justap_chan;
1442 isy_max = justap_chan;
1446 fFcout_f <<
"*Correlation matrix between channels "
1448 isx_max = justap_chan;
1449 isy_max = justap_chan;
1454 fFcout_f <<
"Covariance matrix between channels "
1455 <<
"averaged on the samples ";
1456 isx_max = justap_chan;
1457 isy_max = justap_chan;
1461 fFcout_f <<
"Correlation matrix between channels "
1462 <<
"averaged on the samples ";
1463 isx_max = justap_chan;
1464 isy_max = justap_chan;
1468 Int_t n1StexStin = 0;
1469 Int_t i0StinEcha = 0;
1470 Int_t n1StinEcha = 0;
1489 fFcout_f <<
"Covariance matrix between samples "
1491 <<
" (" <<
fStinName <<
": " << n1StexStin
1492 <<
" , channel in " <<
fStinName <<
": " << i0StinEcha <<
")";
1496 fFcout_f <<
"Covariance matrix between samples "
1498 <<
" (" <<
fStinName <<
": " << n1StexStin
1499 <<
" , channel in " <<
fStinName <<
": " << n1StinEcha <<
")";
1501 isx_max = justap_samp;
1502 isy_max = justap_samp;
1508 fFcout_f <<
"Correlation matrix between samples "
1510 <<
" (" <<
fStinName <<
": " << n1StexStin
1511 <<
" , channel in " <<
fStinName <<
": " << i0StinEcha <<
")";
1515 fFcout_f <<
"Correlation matrix between samples "
1517 <<
" (" <<
fStinName <<
": " << n1StexStin
1518 <<
" , channel in " <<
fStinName <<
": " << n1StinEcha <<
")";
1520 isx_max = justap_samp;
1521 isy_max = justap_samp;
1528 fFcout_f <<
"Correction factors to the covariances "
1530 <<
" (" <<
fStinName <<
": " << n1StexStin
1531 <<
" , channel in " <<
fStinName <<
": " << i0StinEcha <<
")";
1535 fFcout_f <<
"Correction factors to the covariances "
1537 <<
" (" <<
fStinName <<
": " << n1StexStin
1538 <<
" , channel in " <<
fStinName <<
": " << n1StinEcha <<
")";
1540 isx_max = justap_samp;
1541 isy_max = justap_samp;
1548 fFcout_f <<
"Correction factors to the correlations "
1550 <<
" ( " <<
fStinName <<
": " << n1StexStin
1551 <<
" , channel in " <<
fStinName <<
": " << i0StinEcha <<
")";
1555 fFcout_f <<
"Correction factors to the correlations "
1557 <<
" ( " <<
fStinName <<
": " << n1StexStin
1558 <<
" , channel in " <<
fStinName <<
": " << n1StinEcha <<
")";
1560 isx_max = justap_samp;
1561 isy_max = justap_samp;
1571 if(i_pasx > isx_max){i_pasx = isx_max;}
1574 n_sctx = isx_max/i_pasx;
1575 max_verix = n_sctx*i_pasx;
1576 if(max_verix < isx_max){ n_sctx++;}
1583 if(i_pasy > isy_max){i_pasy = isy_max;}
1586 n_scty = isy_max/i_pasy;
1587 max_veriy = n_scty*i_pasy;
1588 if(max_veriy < isy_max){ n_scty++;}
1597 <<
" , number of sectors = " << n_sctx <<
" x " << n_scty
1604 <<
" , number of sectors = " << n_sctx <<
" x " << n_scty
1613 Int_t ix_inf = -i_pasx;
1615 for(Int_t nsx = 0 ; nsx < n_sctx ; nsx++)
1618 ix_inf = ix_inf + i_pasx;
1619 Int_t ix_sup = ix_inf + i_pasx;
1621 Int_t iy_inf = -i_pasy;
1623 for(Int_t nsy = 0 ; nsy < n_scty ; nsy++)
1625 iy_inf = iy_inf + i_pasy;
1626 Int_t iy_sup = iy_inf + i_pasy;
1636 for (Int_t iy_c = iy_inf ; iy_c < iy_sup ; iy_c++)
1648 for (Int_t ix_c = ix_inf ; ix_c < ix_sup ; ix_c++)
1658 for (Int_t iy_c = iy_inf ; iy_c < iy_sup ; iy_c++)
1693 cout <<
"*TEcnaWrite::fT2dWriteAscii(....)> INFO: "
1694 <<
"matrix has been written in file: " << endl
1714 void TEcnaWrite::WriteAsciiSampleMeans()
1725 fT1dWriteAscii(i_code, i_lic1, i_lic2);
1734 void TEcnaWrite::WriteAsciiSampleSigmas()
1738 Int_t i_code = fCodeVar;
1745 fT1dWriteAscii(i_code, i_lic1, i_lic2);
void fAsciiFileWriteHeader(const Int_t &)
Double_t ** fjustap_2d_cc
void SetEcalSubDetector(const TString, const TEcnaParEcal *, const TEcnaNumbering *)
void WriteAsciiCovariancesBetweenSamples(const Int_t &, const Int_t &, const Int_t &, const TMatrixD &)
Int_t MaxCrysVecoInStin()
TString GetDeeDirViewedFromIP(const Int_t &)
Int_t fCodePrintNoComment
Int_t Get1DeeSCEcnaFrom0DeeEcha(const Int_t &)
Int_t Get1SCEchaFrom0DeeEcha(const Int_t &)
Double_t ** fjustap_2d_ev
TString BeginningOfResultsRootFilePath()
Double_t ** fjustap_2d_var
Double_t ** fjustap_2d_ss
TEcnaParPaths * fCnaParPaths
void AppendResultsAsciiFilePath(const Text_t *)
TString fAsciiFileNameShort
TString fRootFileNameShort
void RegisterFileParameters(const TString, const Int_t &, const Int_t &, const Int_t &, const Int_t &, const Int_t &, const Int_t &, const TString, const TString, const time_t, const time_t)
Int_t NumberOfEvents(Int_t **, const Int_t &, const Int_t &, const Int_t &)
Int_t GetCodePrint(const TString)
TString GetAsciiFileName()
void SetResultsRootFilePath(const TString)
Int_t Get0TowEchaFrom0SMEcha(const Int_t &)
Int_t GetFirstReqEvtNumber()
Int_t GetJYCrysInDee(const Int_t &, const Int_t &, const Int_t &)
Int_t fCodePrintAllComments
TString BeginningOfResultsAsciiFilePath()
Int_t Get1SMTowFrom0SMEcha(const Int_t &)
Int_t GetDSSCFrom1DeeSCEcna(const Int_t &, const Int_t &, const Int_t &)
void fT2dWriteAscii(const Int_t &, const Int_t &, const Int_t &, const Int_t &, const TMatrixD &)
Int_t GetDSFrom1DeeSCEcna(const Int_t &, const Int_t &)
void SetResultsAsciiFilePath(const TString)
Int_t GetDeeSCConsFrom1DeeSCEcna(const Int_t &, const Int_t &)
Double_t GetEta(const Int_t &, const Int_t &, const Int_t &)
Int_t Get1SMCrysFrom1SMTowAnd0TowEcha(const Int_t &, const Int_t &)
Double_t GetPhiInSM(const Int_t &, const Int_t &, const Int_t &)
void TruncateResultsRootFilePath(const Int_t &, const Int_t &)
Double_t * fjustap_1d_var
TString ResultsRootFilePath()
Int_t MaxCrysEcnaInStex()
Int_t MaxCrysHocoInStin()
Int_t GetIXCrysInDee(const Int_t &, const Int_t &, const Int_t &)
TEcnaParCout * fCnaParCout
void WriteAsciiCorrelationsBetweenSamples(const Int_t &, const Int_t &, const Int_t &, const TMatrixD &)
void WriteAsciiHisto(const TString, const Int_t &, const TVectorD &)
TString GetRootFileNameShort()
TString GetEcalSubDetector()
void fMakeResultsFileName()
void TruncateResultsAsciiFilePath(const Int_t &, const Int_t &)
TString GetRootFileName()
void AppendResultsRootFilePath(const Text_t *)
TString GetAnalysisName()
TEcnaNumbering * fEcalNumbering
TString ResultsAsciiFilePath()