CMS 3D CMS Logo

List of all members | Public Member Functions | Public Attributes | Private Member Functions | Private Attributes
TEcnaWrite Class Reference

#include <TEcnaWrite.h>

Inheritance diagram for TEcnaWrite:

Public Member Functions

void fMakeResultsFileName ()
 
void fMakeResultsFileName (const Int_t &)
 
TString GetAnalysisName ()
 
TString GetAsciiFileName ()
 
Int_t GetFirstReqEvtNumber ()
 
Int_t GetNbOfSamples ()
 
Int_t GetReqNbOfEvts ()
 
TString GetRootFileName ()
 
TString GetRootFileNameShort ()
 
Int_t GetRunNumber ()
 
Int_t GetStexNumber ()
 
void Init ()
 
Int_t NumberOfEventsAnalysis (Int_t **, const Int_t &, const Int_t &, const Int_t &)
 
Int_t NumberOfEventsAnalysis (Int_t *, const Int_t &, const Int_t &, const Int_t &)
 
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)
 
void RegisterFileParameters (const TString &, const Int_t &, const Int_t &, const Int_t &, const Int_t &, const Int_t &, const Int_t &)
 
void SetEcalSubDetector (const TString &)
 
void SetEcalSubDetector (const TString &, const TEcnaParEcal *, const TEcnaNumbering *)
 
 TEcnaWrite ()
 
 TEcnaWrite (TEcnaObject *, const TString &)
 
 TEcnaWrite (const TString &, const TEcnaParPaths *, const TEcnaParCout *, const TEcnaParEcal *, const TEcnaNumbering *)
 
void WriteAsciiCorrelationsBetweenSamples (const Int_t &, const Int_t &, const Int_t &, const TMatrixD &)
 
void WriteAsciiCovariancesBetweenSamples (const Int_t &, const Int_t &, const Int_t &, const TMatrixD &)
 
void WriteAsciiHisto (const TString &, const Int_t &, const TVectorD &)
 
 ~TEcnaWrite () override
 

Public Attributes

TString fAnaType
 
TString fAsciiFileName
 
TString fAsciiFileNameShort
 
Int_t fFirstReqEvtNumber
 
Int_t fLastReqEvtNumber
 
Int_t fNbOfSamples
 
TString fPathForAsciiFiles
 
Int_t fReqNbOfEvts
 
TString fRootFileName
 
TString fRootFileNameShort
 
Int_t fRunNumber
 
TString fStartDate
 
time_t fStartTime
 
TString fStexName
 
Int_t fStexNumber
 
TString fStinName
 
TString fStopDate
 
time_t fStopTime
 

Private Member Functions

void fAsciiFileWriteHeader (const Int_t &)
 
void fT2dWriteAscii (const Int_t &, const Int_t &, const Int_t &, const Int_t &, const TMatrixD &)
 

Private Attributes

Int_t fCdelete
 
Int_t fCdeleteRoot
 
Int_t fCnaCommand
 
Int_t fCnaError
 
TEcnaParCoutfCnaParCout
 
TEcnaParPathsfCnaParPaths
 
Int_t fCnew
 
Int_t fCnewRoot
 
Int_t fCodeAdcEvt
 
Int_t fCodeAvMeanCorss
 
Int_t fCodeAvPed
 
Int_t fCodeAvSigCorss
 
Int_t fCodeAvTno
 
Int_t fCodeCorCss
 
Int_t fCodeCovCss
 
Int_t fCodeHeaderAscii
 
Int_t fCodeHFccMoStins
 
Int_t fCodeHfCor
 
Int_t fCodeHfCov
 
Int_t fCodeHfn
 
Int_t fCodeLFccMoStins
 
Int_t fCodeLfCor
 
Int_t fCodeLfCov
 
Int_t fCodeLfn
 
Int_t fCodeMeanCorss
 
Int_t fCodeMSp
 
Int_t fCodeNbOfEvts
 
Int_t fCodePed
 
Int_t fCodePrintAllComments
 
Int_t fCodePrintComments
 
Int_t fCodePrintNoComment
 
Int_t fCodePrintWarnings
 
Int_t fCodeRoot
 
Int_t fCodeSigCorss
 
Int_t fCodeSSp
 
Int_t fCodeTno
 
TEcnaParEcalfEcal
 
TEcnaNumberingfEcalNumbering
 
std::ofstream fFcout_f
 
Int_t fFlagPrint
 
TString fFlagSubDet
 
Int_t fgMaxCar
 
Double_t * fjustap_1d_cc
 
Double_t * fjustap_1d_ev
 
Double_t * fjustap_1d_ss
 
Double_t * fjustap_1d_var
 
Double_t ** fjustap_2d_cc
 
Double_t ** fjustap_2d_ev
 
Double_t ** fjustap_2d_ss
 
Double_t ** fjustap_2d_var
 
Int_t fNbChanByLine
 
Int_t fNbSampByLine
 
Int_t fSectChanSizeX
 
Int_t fSectChanSizeY
 
Int_t fSectSampSizeX
 
Int_t fSectSampSizeY
 
Int_t fStexStinUser
 
Int_t fStinEchaUser
 
TString fTTBELL
 
Int_t fUserSamp
 

Detailed Description


TEcnaWrite.h Update: 05/10/2012 Authors: B.Fabbro (berna.nosp@m.rd.f.nosp@m.abbro.nosp@m.@cea.nosp@m..fr), FX Gentit DSM/IRFU/SPP CEA-Saclay Copyright: Those valid for CEA sofware

ECNA web page: http://cms-fabbro.web.cern.ch/cms-fabbro/

cna_new/Correlated_Noise_Analysis/ECNA_main_page.htm

Definition at line 34 of file TEcnaWrite.h.

Constructor & Destructor Documentation

◆ TEcnaWrite() [1/3]

TEcnaWrite::TEcnaWrite ( )

Definition at line 33 of file TEcnaWrite.cc.

References Init().

33  {
34  // std::cout << "[Info Management] CLASS: TEcnaWrite. CREATE OBJECT: this = " << this << std::endl;
35 
36  Init();
37 }
void Init()
Definition: TEcnaWrite.cc:143

◆ TEcnaWrite() [2/3]

TEcnaWrite::TEcnaWrite ( TEcnaObject pObjectManager,
const TString &  SubDet 
)

Definition at line 39 of file TEcnaWrite.cc.

References fCnaParCout, fCnaParPaths, fCodePrintAllComments, fEcal, fEcalNumbering, TEcnaParCout::GetCodePrint(), TEcnaParPaths::GetPathForResultsAsciiFiles(), TEcnaParPaths::GetPathForResultsRootFiles(), TEcnaObject::GetPointerValue(), Init(), TEcnaObject::RegisterPointer(), SetEcalSubDetector(), and ntupleEnum::SubDet.

39  {
40  // std::cout << "[Info Management] CLASS: TEcnaWrite. CREATE OBJECT: this = " << this << std::endl;
41 
42  Init();
43  Long_t i_this = (Long_t)this;
44  pObjectManager->RegisterPointer("TEcnaWrite", i_this);
45 
46  //............................ fCnaParCout
47  fCnaParCout = nullptr;
48  Long_t iCnaParCout = pObjectManager->GetPointerValue("TEcnaParCout");
49  if (iCnaParCout == 0) {
50  fCnaParCout = new TEcnaParCout(pObjectManager); /*fCnew++*/
51  } else {
52  fCnaParCout = (TEcnaParCout*)iCnaParCout;
53  }
55 
56  //............................ fCnaParPaths
57  fCnaParPaths = nullptr;
58  Long_t iCnaParPaths = pObjectManager->GetPointerValue("TEcnaParPaths");
59  if (iCnaParPaths == 0) {
60  fCnaParPaths = new TEcnaParPaths(pObjectManager); /*fCnew++*/
61  } else {
62  fCnaParPaths = (TEcnaParPaths*)iCnaParPaths;
63  }
64 
65  //fCfgResultsRootFilePath = fCnaParPaths->ResultsRootFilePath();
66  //fCfgHistoryRunListFilePath = fCnaParPaths->HistoryRunListFilePath();
67 
70 
71  //............................ fEcal => should be changed in fParEcal
72  fEcal = nullptr;
73  Long_t iParEcal = pObjectManager->GetPointerValue("TEcnaParEcal");
74  if (iParEcal == 0) {
75  fEcal = new TEcnaParEcal(pObjectManager, SubDet.Data()); /*fCnew++*/
76  } else {
77  fEcal = (TEcnaParEcal*)iParEcal;
78  }
79 
80  //............................ fEcalNumbering
81  fEcalNumbering = nullptr;
82  Long_t iEcalNumbering = pObjectManager->GetPointerValue("TEcnaNumbering");
83  if (iEcalNumbering == 0) {
84  fEcalNumbering = new TEcnaNumbering(pObjectManager, SubDet.Data()); /*fCnew++*/
85  } else {
86  fEcalNumbering = (TEcnaNumbering*)iEcalNumbering;
87  }
88 
89  SetEcalSubDetector(SubDet.Data());
90 }
void Init()
Definition: TEcnaWrite.cc:143
TEcnaParPaths * fCnaParPaths
Definition: TEcnaWrite.h:56
TEcnaParEcal * fEcal
Definition: TEcnaWrite.h:52
Bool_t RegisterPointer(const TString &, const Long_t &)
Definition: TEcnaObject.cc:100
Int_t fCodePrintAllComments
Definition: TEcnaWrite.h:50
Bool_t GetPathForResultsRootFiles()
void SetEcalSubDetector(const TString &)
Definition: TEcnaWrite.cc:208
Int_t GetCodePrint(const TString &)
Definition: TEcnaParCout.cc:66
TEcnaParCout * fCnaParCout
Definition: TEcnaWrite.h:57
Bool_t GetPathForResultsAsciiFiles()
Long_t GetPointerValue(const TString &)
Definition: TEcnaObject.cc:209
TEcnaNumbering * fEcalNumbering
Definition: TEcnaWrite.h:55

◆ TEcnaWrite() [3/3]

TEcnaWrite::TEcnaWrite ( const TString &  SubDet,
const TEcnaParPaths pCnaParPaths,
const TEcnaParCout pCnaParCout,
const TEcnaParEcal pEcal,
const TEcnaNumbering pEcalNumbering 
)

Definition at line 92 of file TEcnaWrite.cc.

References fCnaParCout, fCnaParPaths, fCodePrintAllComments, fEcal, fEcalNumbering, TEcnaParCout::GetCodePrint(), TEcnaParPaths::GetPathForResultsAsciiFiles(), TEcnaParPaths::GetPathForResultsRootFiles(), Init(), SetEcalSubDetector(), and ntupleEnum::SubDet.

96  {
97  // std::cout << "[Info Management] CLASS: TEcnaWrite. CREATE OBJECT: this = " << this << std::endl;
98 
99  Init();
100 
101  //----------------------------- Object management
102  fCnaParPaths = nullptr;
103  if (pCnaParPaths == nullptr) {
104  fCnaParPaths = new TEcnaParPaths(); /*fCnew++*/
105  ;
106  } else {
107  fCnaParPaths = (TEcnaParPaths*)pCnaParPaths;
108  }
109 
110  //................. Get paths from ECNA directory
111 
114 
115  fCnaParCout = nullptr;
116  if (pCnaParCout == nullptr) {
117  fCnaParCout = new TEcnaParCout(); /*fCnew++*/
118  ;
119  } else {
120  fCnaParCout = (TEcnaParCout*)pCnaParCout;
121  }
123 
124  fEcal = nullptr;
125  if (pEcal == nullptr) {
126  fEcal = new TEcnaParEcal(SubDet.Data()); /*fCnew++*/
127  ;
128  } else {
129  fEcal = (TEcnaParEcal*)pEcal;
130  }
131 
132  fEcalNumbering = nullptr;
133  if (pEcalNumbering == nullptr) {
134  fEcalNumbering = new TEcnaNumbering(SubDet.Data(), fEcal); /*fCnew++*/
135  ;
136  } else {
137  fEcalNumbering = (TEcnaNumbering*)pEcalNumbering;
138  }
139 
141 }
void Init()
Definition: TEcnaWrite.cc:143
TEcnaParPaths * fCnaParPaths
Definition: TEcnaWrite.h:56
TEcnaParEcal * fEcal
Definition: TEcnaWrite.h:52
Int_t fCodePrintAllComments
Definition: TEcnaWrite.h:50
Bool_t GetPathForResultsRootFiles()
void SetEcalSubDetector(const TString &)
Definition: TEcnaWrite.cc:208
Int_t GetCodePrint(const TString &)
Definition: TEcnaParCout.cc:66
TEcnaParCout * fCnaParCout
Definition: TEcnaWrite.h:57
Bool_t GetPathForResultsAsciiFiles()
TEcnaNumbering * fEcalNumbering
Definition: TEcnaWrite.h:55

◆ ~TEcnaWrite()

TEcnaWrite::~TEcnaWrite ( )
override

Definition at line 17 of file TEcnaWrite.cc.

17  {
18  //destructor
19 
20  //if (fEcal != 0){delete fEcal; fCdelete++;}
21  //if (fEcalNumbering != 0){delete fEcalNumbering; fCdelete++;}
22  //if (fCnaParPaths != 0){delete fCnaParPaths; fCdelete++;}
23  //if (fCnaParCout != 0){delete fCnaParCout; fCdelete++;}
24 
25  // std::cout << "[Info Management] CLASS: TEcnaWrite. DESTROY OBJECT: this = " << this << std::endl;
26 }

Member Function Documentation

◆ fAsciiFileWriteHeader()

void TEcnaWrite::fAsciiFileWriteHeader ( const Int_t &  i_code)
private

Definition at line 1347 of file TEcnaWrite.cc.

References fAnaType, fAsciiFileName, fCodeHeaderAscii, fFcout_f, fFirstReqEvtNumber, fFlagSubDet, fLastReqEvtNumber, fNbOfSamples, fReqNbOfEvts, fRunNumber, fStartDate, fStexNumber, and fStopDate.

Referenced by WriteAsciiCorrelationsBetweenSamples(), WriteAsciiCovariancesBetweenSamples(), and WriteAsciiHisto().

1347  {
1348  //Ascii results file header writing (private). Called by the WriteAscii...() methods
1349 
1350  //-----------------------------------------------
1351  //
1352  // opening of the ASCII results file
1353  // and writing of its header
1354  //
1355  //-----------------------------------------------
1356 
1357  if (fAsciiFileName.BeginsWith("$HOME")) {
1358  fAsciiFileName.Remove(0, 5);
1359  TString EndOfAsciiFileName = fAsciiFileName;
1360  const Text_t* t_file_nohome = (const Text_t*)EndOfAsciiFileName.Data(); // const Text_t* -> EndOfAsciiFileName
1361  // ( /scratch0/cna/... )
1362  TString home_path = gSystem->Getenv("HOME");
1363  fAsciiFileName = home_path; // fAsciiFileName = absolute HOME path ( /afs/cern.ch/u/USER )
1364  fAsciiFileName.Append(t_file_nohome); // Append (const Text_t* -> EndOfAsciiFileName) to fAsciiFileName
1365  // ( /afs/cern.ch/u/USER/scratch0/cna/... )
1366  }
1367 
1368  fFcout_f.open(fAsciiFileName.Data());
1369 
1370  fFcout_f << "*** File: " << fAsciiFileName << " *** " << std::endl << std::endl;
1371  fFcout_f << "*Analysis name : " << fAnaType << std::endl;
1372  fFcout_f << "*First-Last samples : 1 - " << fNbOfSamples << std::endl;
1373  fFcout_f << "*Run number : " << fRunNumber << std::endl;
1374  fFcout_f << "*First requested event number : " << fFirstReqEvtNumber << std::endl;
1375  fFcout_f << "*Last requested event number : " << fLastReqEvtNumber << std::endl;
1376  fFcout_f << "*Requested number of events : " << fReqNbOfEvts << std::endl;
1377  if (fFlagSubDet == "EB") {
1378  fFcout_f << "*SuperModule number : " << fStexNumber << std::endl;
1379  }
1380  if (fFlagSubDet == "EE") {
1381  fFcout_f << "*Dee number : " << fStexNumber << std::endl;
1382  }
1383  fFcout_f << "*Date first requested event : " << fStartDate;
1384  fFcout_f << "*Date last requested event : " << fStopDate << std::endl;
1385  fFcout_f << std::endl;
1386 
1387  //=========================================================================
1388  // closing of the results file if i_code = fCodeHeaderAscii only.
1389  // closing is done in the fT1dWriteAscii() and fT2dWriteAscii() methods
1390  // except for i_code = fCodeHeaderAscii
1391  //=========================================================================
1392  if (i_code == fCodeHeaderAscii) {
1393  fFcout_f.close();
1394  }
1395 }
TString fFlagSubDet
Definition: TEcnaWrite.h:53
TString fAnaType
Definition: TEcnaWrite.h:124
Int_t fStexNumber
Definition: TEcnaWrite.h:130
Int_t fRunNumber
Definition: TEcnaWrite.h:126
Int_t fNbOfSamples
Definition: TEcnaWrite.h:125
TString fStopDate
Definition: TEcnaWrite.h:135
Int_t fCodeHeaderAscii
Definition: TEcnaWrite.h:62
Int_t fFirstReqEvtNumber
Definition: TEcnaWrite.h:127
std::ofstream fFcout_f
Definition: TEcnaWrite.h:59
TString fAsciiFileName
Definition: TEcnaWrite.h:141
Int_t fLastReqEvtNumber
Definition: TEcnaWrite.h:128
TString fStartDate
Definition: TEcnaWrite.h:135
Int_t fReqNbOfEvts
Definition: TEcnaWrite.h:129

◆ fMakeResultsFileName() [1/2]

void TEcnaWrite::fMakeResultsFileName ( )

◆ fMakeResultsFileName() [2/2]

void TEcnaWrite::fMakeResultsFileName ( const Int_t &  i_code)

Definition at line 632 of file TEcnaWrite.cc.

References TEcnaParPaths::AppendResultsAsciiFilePath(), TEcnaParPaths::AppendResultsRootFilePath(), TEcnaParPaths::BeginningOfResultsAsciiFilePath(), TEcnaParPaths::BeginningOfResultsRootFilePath(), gather_cfg::cout, fAnaType, fAsciiFileName, fAsciiFileNameShort, fCdelete, fCnaParPaths, fCnew, fCodeAvMeanCorss, fCodeAvPed, fCodeAvSigCorss, fCodeAvTno, fCodeCorCss, fCodeCovCss, fCodeHeaderAscii, fCodeHfn, fCodeLfCor, fCodeLfCov, fCodeLfn, fCodeMeanCorss, fCodeMSp, fCodeNbOfEvts, fCodePed, fCodeRoot, fCodeSigCorss, fCodeSSp, fCodeTno, fFirstReqEvtNumber, fFlagSubDet, fgMaxCar, fLastReqEvtNumber, fNbOfSamples, fReqNbOfEvts, fRootFileName, fRootFileNameShort, fRunNumber, fStexName, fStexNumber, fStexStinUser, fStinEchaUser, fStinName, fTTBELL, mps_fire::i, cuy::ii, TEcnaParPaths::ResultsAsciiFilePath(), TEcnaParPaths::ResultsRootFilePath(), TEcnaParPaths::SetResultsAsciiFilePath(), TEcnaParPaths::SetResultsRootFilePath(), TEcnaParPaths::TruncateResultsAsciiFilePath(), and TEcnaParPaths::TruncateResultsRootFilePath().

632  {
633  //Results filename making (private)
634 
635  //----------------------------------------------------------------------
636  //
637  // Making of the name of the result file from the parameters set
638  // by call to RegisterFileParameters(...)
639  //
640  // Put the names in the following class attributes:
641  //
642  // fRootFileName, fRootFileNameShort,
643  // fAsciiFileName, fAsciiFileNameShort
644  //
645  // (Short means: without the directory path)
646  //
647  // set indications (run number, type of quantity, ...)
648  // and add the extension ".ascii" or ".root"
649  //
650  // ROOT: only one ROOT file: i_code = fCodeRoot.
651  // All the types of quantities
652  //
653  // ASCII: several ASCII files: i_code = code for one type of quantity
654  // each i_code which is not equal to fCodeRoot is also implicitly
655  // a code "fCodeAscii" (this last attribute is not in the class)
656  //
657  //----------------------------------------------------------------------
658 
659  char* f_in = new char[fgMaxCar];
660  fCnew++;
661  char* f_in_short = new char[fgMaxCar];
662  fCnew++;
663 
664  Int_t MaxCar = fgMaxCar;
665  fStexName.Resize(MaxCar);
666  fStexName = "SM or Dee?";
667 
668  MaxCar = fgMaxCar;
669  fStinName.Resize(MaxCar);
670  fStinName = "tower or SC?";
671 
672  if (fFlagSubDet == "EB") {
673  fStexName = "SM";
674  fStinName = "tower";
675  }
676  if (fFlagSubDet == "EE") {
677  fStexName = "Dee";
678  fStinName = "SC";
679  }
680 
681  // switch (i_code){
682 
683  //=================================== R O O T ========================= (fMakeResultsFileName)
684  TString sPointInterrog = "?";
685  TString sDollarHome = "$HOME";
686 
687  if (i_code == fCodeRoot) {
688  if (fCnaParPaths->ResultsRootFilePath().Data() == sPointInterrog.Data()) {
689  std::cout << "!TEcnaWrite::fMakeResultsFileName> * * * W A R N I N G * * * " << std::endl
690  << std::endl
691  << " Path for results .root file not defined. Default option will be used here:" << std::endl
692  << " your results files will be written in your HOME directory." << std::endl
693  << std::endl
694  << " In order to write the .root results file in a specific directory," << std::endl
695  << " you have to create a file named path_results_root in a subdirectory named ECNA" << std::endl
696  << " previously created in your home directory." << std::endl
697  << " This file must have only one line containing the path of the directory" << std::endl
698  << " where must be the .root result files." << std::endl
699  << std::endl;
700 
701  TString home_path = gSystem->Getenv("HOME");
702  fCnaParPaths->SetResultsRootFilePath(home_path.Data());
703  }
704 
705  if (fCnaParPaths->BeginningOfResultsRootFilePath().Data() == sDollarHome.Data()) {
707  const Text_t* t_file_nohome = (const Text_t*)fCnaParPaths->ResultsRootFilePath().Data(); // /scratch0/cna/...
708 
709  TString home_path = gSystem->Getenv("HOME");
710  fCnaParPaths->SetResultsRootFilePath(home_path.Data()); // /afs/cern.ch/u/USER
711  fCnaParPaths->AppendResultsRootFilePath(t_file_nohome); // /afs/cern.ch/u/USER/scratch0/cna/...
712  }
713 
714  sprintf(f_in,
715  "%s/%s_S1_%d_R%d_%d_%d_%d_%s%d",
717  fAnaType.Data(),
718  fNbOfSamples,
719  fRunNumber,
722  fReqNbOfEvts,
723  fStexName.Data(),
724  fStexNumber);
725  sprintf(f_in_short,
726  "%s_S1_%d_R%d_%d_%d_%d_%s%d",
727  fAnaType.Data(),
728  fNbOfSamples,
729  fRunNumber,
732  fReqNbOfEvts,
733  fStexName.Data(),
734  fStexNumber);
735  }
736 
737  //=================================== A S C I I ==================== (fMakeResultsFileName)
738  //fCnaParPaths->GetPathForResultsAsciiFiles();
739  if (i_code != fCodeRoot) {
740  if (i_code == fCodeHeaderAscii) {
741  if (fCnaParPaths->ResultsAsciiFilePath().Data() == sPointInterrog.Data()) {
742  std::cout << "!TEcnaWrite::fMakeResultsFileName> * * * W A R N I N G * * * " << std::endl
743  << std::endl
744  << " Path for results .ascii file not defined. Default option will be used here:" << std::endl
745  << " your results files will be written in your HOME directory." << std::endl
746  << std::endl
747  << " In order to write the .ascii results file in a specific directory," << std::endl
748  << " you have to create a file named path_results_ascii in a subdirectory named ECNA" << std::endl
749  << " previously created in your home directory." << std::endl
750  << " This file must have only one line containing the path of the directory" << std::endl
751  << " where must be the .ascii result files." << std::endl
752  << std::endl;
753 
754  TString home_path = gSystem->Getenv("HOME");
755  fCnaParPaths->SetResultsAsciiFilePath(home_path.Data());
756  }
757 
758  if (fCnaParPaths->BeginningOfResultsAsciiFilePath().Data() == sDollarHome.Data()) {
760  const Text_t* t_file_nohome = (const Text_t*)fCnaParPaths->ResultsAsciiFilePath().Data(); // /scratch0/cna/...
761 
762  TString home_path = gSystem->Getenv("HOME");
763  fCnaParPaths->SetResultsAsciiFilePath(home_path.Data()); // /afs/cern.ch/u/USER
764  fCnaParPaths->AppendResultsAsciiFilePath(t_file_nohome); // /afs/cern.ch/u/USER/scratch0/cna/...
765  }
766  }
767 
768  sprintf(f_in,
769  "%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_header",
771  fAnaType.Data(),
772  fNbOfSamples,
773  fRunNumber,
776  fReqNbOfEvts,
777  fStexName.Data(),
778  fStexNumber);
779  sprintf(f_in_short,
780  "%s_S1_%d_R%d_%d_%d_%d_%s%d_header",
781  fAnaType.Data(),
782  fNbOfSamples,
783  fRunNumber,
786  fReqNbOfEvts,
787  fStexName.Data(),
788  fStexNumber);
789  }
790 
791  //-------------------------------------------------------------- (fMakeResultsFileName)
792  if (i_code == fCodeNbOfEvts) {
793  sprintf(f_in,
794  "%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_NbOfEvents",
796  fAnaType.Data(),
797  fNbOfSamples,
798  fRunNumber,
801  fReqNbOfEvts,
802  fStexName.Data(),
803  fStexNumber);
804  sprintf(f_in_short,
805  "%s_S1_%d_R%d_%d_%d_%d_%s%d_NbOfEvents",
806  fAnaType.Data(),
807  fNbOfSamples,
808  fRunNumber,
811  fReqNbOfEvts,
812  fStexName.Data(),
813  fStexNumber);
814  }
815 
816  if (i_code == fCodePed) {
817  sprintf(f_in,
818  "%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_Pedestals",
820  fAnaType.Data(),
821  fNbOfSamples,
822  fRunNumber,
825  fReqNbOfEvts,
826  fStexName.Data(),
827  fStexNumber);
828  sprintf(f_in_short,
829  "%s_S1_%d_R%d_%d_%d_%d_%s%d_Pedestals",
830  fAnaType.Data(),
831  fNbOfSamples,
832  fRunNumber,
835  fReqNbOfEvts,
836  fStexName.Data(),
837  fStexNumber);
838  }
839 
840  if (i_code == fCodeTno) {
841  sprintf(f_in,
842  "%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_TotalNoise",
844  fAnaType.Data(),
845  fNbOfSamples,
846  fRunNumber,
849  fReqNbOfEvts,
850  fStexName.Data(),
851  fStexNumber);
852  sprintf(f_in_short,
853  "%s_S1_%d_R%d_%d_%d_%d_%s%d_TotalNoise",
854  fAnaType.Data(),
855  fNbOfSamples,
856  fRunNumber,
859  fReqNbOfEvts,
860  fStexName.Data(),
861  fStexNumber);
862  }
863 
864  if (i_code == fCodeLfn) {
865  sprintf(f_in,
866  "%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_LFNoise",
868  fAnaType.Data(),
869  fNbOfSamples,
870  fRunNumber,
873  fReqNbOfEvts,
874  fStexName.Data(),
875  fStexNumber);
876  sprintf(f_in_short,
877  "%s_S1_%d_R%d_%d_%d_%d_%s%d_LFNoise",
878  fAnaType.Data(),
879  fNbOfSamples,
880  fRunNumber,
883  fReqNbOfEvts,
884  fStexName.Data(),
885  fStexNumber);
886  }
887 
888  if (i_code == fCodeHfn) {
889  sprintf(f_in,
890  "%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_HFNoise",
892  fAnaType.Data(),
893  fNbOfSamples,
894  fRunNumber,
897  fReqNbOfEvts,
898  fStexName.Data(),
899  fStexNumber);
900  sprintf(f_in_short,
901  "%s_S1_%d_R%d_%d_%d_%d_%s%d_HFNoise",
902  fAnaType.Data(),
903  fNbOfSamples,
904  fRunNumber,
907  fReqNbOfEvts,
908  fStexName.Data(),
909  fStexNumber);
910  }
911 
912  if (i_code == fCodeMeanCorss) {
913  sprintf(f_in,
914  "%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_MeanCorss",
916  fAnaType.Data(),
917  fNbOfSamples,
918  fRunNumber,
921  fReqNbOfEvts,
922  fStexName.Data(),
923  fStexNumber);
924  sprintf(f_in_short,
925  "%s_S1_%d_R%d_%d_%d_%d_%s%d_MeanCorss",
926  fAnaType.Data(),
927  fNbOfSamples,
928  fRunNumber,
931  fReqNbOfEvts,
932  fStexName.Data(),
933  fStexNumber);
934  }
935 
936  if (i_code == fCodeSigCorss) {
937  sprintf(f_in,
938  "%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_SigmaCorss",
940  fAnaType.Data(),
941  fNbOfSamples,
942  fRunNumber,
945  fReqNbOfEvts,
946  fStexName.Data(),
947  fStexNumber);
948  sprintf(f_in_short,
949  "%s_S1_%d_R%d_%d_%d_%d_%s%d_SigmaCorss",
950  fAnaType.Data(),
951  fNbOfSamples,
952  fRunNumber,
955  fReqNbOfEvts,
956  fStexName.Data(),
957  fStexNumber);
958  }
959 
960  if (i_code == fCodeCovCss) {
961  sprintf(f_in,
962  "%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_Covss_%s%d_Channel_%d",
964  fAnaType.Data(),
965  fNbOfSamples,
966  fRunNumber,
969  fReqNbOfEvts,
970  fStexName.Data(),
971  fStexNumber,
972  fStinName.Data(),
974  fStinEchaUser);
975  sprintf(f_in_short,
976  "%s_S1_%d_R%d_%d_%d_%d_%s%d_Covss_%s%d_Channel_%d",
977  fAnaType.Data(),
978  fNbOfSamples,
979  fRunNumber,
982  fReqNbOfEvts,
983  fStexName.Data(),
984  fStexNumber,
985  fStinName.Data(),
987  fStinEchaUser);
988  }
989 
990  if (i_code == fCodeCorCss) {
991  sprintf(f_in,
992  "%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_Corss_%s%d_Channel_%d",
994  fAnaType.Data(),
995  fNbOfSamples,
996  fRunNumber,
999  fReqNbOfEvts,
1000  fStexName.Data(),
1001  fStexNumber,
1002  fStinName.Data(),
1003  fStexStinUser,
1004  fStinEchaUser);
1005  sprintf(f_in_short,
1006  "%s_S1_%d_R%d_%d_%d_%d_%s%d_Corss_%s%d_Channel_%d",
1007  fAnaType.Data(),
1008  fNbOfSamples,
1009  fRunNumber,
1012  fReqNbOfEvts,
1013  fStexName.Data(),
1014  fStexNumber,
1015  fStinName.Data(),
1016  fStexStinUser,
1017  fStinEchaUser);
1018  }
1019 
1020  //------- (not used yet)
1021 #define OCOD
1022 #ifndef OCOD
1023  if (i_code == fCodeMSp) {
1024  sprintf(f_in,
1025  "%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_SampleMeans",
1027  fAnaType.Data(),
1028  fNbOfSamples,
1029  fRunNumber,
1032  fReqNbOfEvts,
1033  fStexName.Data(),
1034  fStexNumber);
1035  sprintf(f_in_short,
1036  "%s_S1_%d_R%d_%d_%d_%d_%s%d_SampleMeans",
1037  fAnaType.Data(),
1038  fNbOfSamples,
1039  fRunNumber,
1042  fReqNbOfEvts,
1043  fStexName.Data(),
1044  fStexNumber);
1045  }
1046 
1047  if (i_code == fCodeSSp) {
1048  sprintf(f_in,
1049  "%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_SampleSigmas",
1051  fAnaType.Data(),
1052  fNbOfSamples,
1053  fRunNumber,
1056  fReqNbOfEvts,
1057  fStexName.Data(),
1058  fStexNumber);
1059  sprintf(f_in_short,
1060  "%s_S1_%d_R%d_%d_%d_%d_%s%d_SampleSigmas",
1061  fAnaType.Data(),
1062  fNbOfSamples,
1063  fRunNumber,
1066  fReqNbOfEvts,
1067  fStexName.Data(),
1068  fStexNumber);
1069  }
1070 
1071  if (i_code == fCodeAvTno) {
1072  sprintf(f_in,
1073  "%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_AverageTotalNoise_c%d",
1075  fAnaType.Data(),
1076  fNbOfSamples,
1077  fRunNumber,
1080  fReqNbOfEvts,
1081  fStexName.Data(),
1082  fStexNumber,
1083  fStinEchaUser);
1084  sprintf(f_in_short,
1085  "%s_S1_%d_R%d_%d_%d_%d_%s%d_AverageTotalNoise_c%d",
1086  fAnaType.Data(),
1087  fNbOfSamples,
1088  fRunNumber,
1091  fReqNbOfEvts,
1092  fStexName.Data(),
1093  fStexNumber,
1094  fStinEchaUser);
1095  }
1096 
1097  if (i_code == fCodeLfCov) {
1098  sprintf(f_in,
1099  "%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_LF_cov",
1101  fAnaType.Data(),
1102  fNbOfSamples,
1103  fRunNumber,
1106  fReqNbOfEvts,
1107  fStexName.Data(),
1108  fStexNumber);
1109  sprintf(f_in_short,
1110  "%s_S1_%d_R%d_%d_%d_%d_%s%d_LF_cov",
1111  fAnaType.Data(),
1112  fNbOfSamples,
1113  fRunNumber,
1116  fReqNbOfEvts,
1117  fStexName.Data(),
1118  fStexNumber);
1119  }
1120 
1121  if (i_code == fCodeLfCor) {
1122  sprintf(f_in,
1123  "%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_LF_cor",
1125  fAnaType.Data(),
1126  fNbOfSamples,
1127  fRunNumber,
1130  fReqNbOfEvts,
1131  fStexName.Data(),
1132  fStexNumber);
1133  sprintf(f_in_short,
1134  "%s_S1_%d_R%d_%d_%d_%d_%s%d_LF_cor",
1135  fAnaType.Data(),
1136  fNbOfSamples,
1137  fRunNumber,
1140  fReqNbOfEvts,
1141  fStexName.Data(),
1142  fStexNumber);
1143  }
1144 
1145  if (i_code == fCodeAvPed) {
1146  sprintf(f_in,
1147  "%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_AveragePedestals",
1149  fAnaType.Data(),
1150  fNbOfSamples,
1151  fRunNumber,
1154  fReqNbOfEvts,
1155  fStexName.Data(),
1156  fStexNumber);
1157  sprintf(f_in_short,
1158  "%s_S1_%d_R%d_%d_%d_%d_%s%d_AveragePedestals",
1159  fAnaType.Data(),
1160  fNbOfSamples,
1161  fRunNumber,
1164  fReqNbOfEvts,
1165  fStexName.Data(),
1166  fStexNumber);
1167  }
1168 
1169  if (i_code == fCodeAvMeanCorss) {
1170  sprintf(f_in,
1171  "%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_AverageMeanCorss%d",
1173  fAnaType.Data(),
1174  fNbOfSamples,
1175  fRunNumber,
1178  fReqNbOfEvts,
1179  fStexName.Data(),
1180  fStexNumber,
1181  fStinEchaUser);
1182  sprintf(f_in_short,
1183  "%s_S1_%d_R%d_%d_%d_%d_%s%d_AverageMeanCorss%d",
1184  fAnaType.Data(),
1185  fNbOfSamples,
1186  fRunNumber,
1189  fReqNbOfEvts,
1190  fStexName.Data(),
1191  fStexNumber,
1192  fStinEchaUser);
1193  }
1194 
1195  if (i_code == fCodeAvSigCorss) {
1196  sprintf(f_in,
1197  "%s/%s_S1_%d_R%d_%d_%d_%d_%s%d_AverageSigmaCorss%d",
1199  fAnaType.Data(),
1200  fNbOfSamples,
1201  fRunNumber,
1204  fReqNbOfEvts,
1205  fStexName.Data(),
1206  fStexNumber,
1207  fStinEchaUser);
1208  sprintf(f_in_short,
1209  "%s_S1_%d_R%d_%d_%d_%d_%s%d_AverageSigmaCorss%d",
1210  fAnaType.Data(),
1211  fNbOfSamples,
1212  fRunNumber,
1215  fReqNbOfEvts,
1216  fStexName.Data(),
1217  fStexNumber,
1218  fStinEchaUser);
1219  }
1220 #endif // OCOD
1221 
1222  //----------------------------------------------------------- (fMakeResultsFileName)
1223 
1224  // default:
1225  // std::cout << "*TEcnaWrite::fMakeResultsFileName(const Int_t& i_code)> "
1226  // << "wrong header code , i_code = " << i_code << std::endl;
1227  // }
1228 
1229  //======================================= f_name
1230 
1231  char* f_name = new char[fgMaxCar];
1232  fCnew++;
1233 
1234  for (Int_t i = 0; i < fgMaxCar; i++) {
1235  f_name[i] = '\0';
1236  }
1237 
1238  Int_t ii = 0;
1239  for (Int_t i = 0; i < fgMaxCar; i++) {
1240  if (f_in[i] != '\0') {
1241  f_name[i] = f_in[i];
1242  ii++;
1243  } else {
1244  break;
1245  } // va directement a if ( ii+5 < fgMaxCar ) puis... f_name[ii] = '.';
1246  }
1247 
1248  if (ii + 5 < fgMaxCar) {
1249  //.......... writing of the file extension (.root or .ascii) (fMakeResultsFileName)
1250 
1251  //------------------------------------------- extension .ascii
1252  if (i_code != fCodeRoot || i_code == fCodeNbOfEvts) {
1253  f_name[ii] = '.';
1254  f_name[ii + 1] = 'a';
1255  f_name[ii + 2] = 's';
1256  f_name[ii + 3] = 'c';
1257  f_name[ii + 4] = 'i';
1258  f_name[ii + 5] = 'i';
1259 
1260  fAsciiFileName = f_name;
1261  }
1262  //------------------------------------------- extension .root
1263  if (i_code == fCodeRoot) {
1264  f_name[ii] = '.';
1265  f_name[ii + 1] = 'r';
1266  f_name[ii + 2] = 'o';
1267  f_name[ii + 3] = 'o';
1268  f_name[ii + 4] = 't';
1269 
1270  fRootFileName = f_name;
1271  }
1272  } else {
1273  std::cout << "*TEcnaWrite::fMakeResultsFileName(...)> Name too long (for f_name)."
1274  << " No room enough for the extension. (ii = " << ii << ")" << fTTBELL << std::endl;
1275  }
1276 
1277  //====================================== f_name_short (fMakeResultsFileName)
1278 
1279  char* f_name_short = new char[fgMaxCar];
1280  fCnew++;
1281 
1282  for (Int_t i = 0; i < fgMaxCar; i++) {
1283  f_name_short[i] = '\0';
1284  }
1285 
1286  ii = 0;
1287  for (Int_t i = 0; i < fgMaxCar; i++) {
1288  if (f_in_short[i] != '\0') {
1289  f_name_short[i] = f_in_short[i];
1290  ii++;
1291  } else {
1292  break;
1293  } // va directement a f_name_short[ii] = '.';
1294  }
1295 
1296  if (ii + 5 < fgMaxCar) {
1297  //.......... writing of the file extension (.root or .ascii)
1298 
1299  //-------------------------------------------extension .ascii
1300  if (i_code != fCodeRoot || i_code == fCodeNbOfEvts) {
1301  f_name_short[ii] = '.';
1302  f_name_short[ii + 1] = 'a';
1303  f_name_short[ii + 2] = 's';
1304  f_name_short[ii + 3] = 'c';
1305  f_name_short[ii + 4] = 'i';
1306  f_name_short[ii + 5] = 'i';
1307 
1308  fAsciiFileNameShort = f_name_short;
1309  }
1310 
1311  //-------------------------------------------- extension .root
1312  if (i_code == fCodeRoot) {
1313  f_name_short[ii] = '.';
1314  f_name_short[ii + 1] = 'r';
1315  f_name_short[ii + 2] = 'o';
1316  f_name_short[ii + 3] = 'o';
1317  f_name_short[ii + 4] = 't';
1318 
1319  fRootFileNameShort = f_name_short;
1320  }
1321  } else {
1322  std::cout << "*TEcnaWrite::fMakeResultsFileName(...)> Name too long (for f_name_short)."
1323  << " No room enough for the extension. (ii = " << ii << ")" << fTTBELL << std::endl;
1324  }
1325  delete[] f_name;
1326  f_name = nullptr;
1327  fCdelete++;
1328  delete[] f_name_short;
1329  f_name_short = nullptr;
1330  fCdelete++;
1331 
1332  delete[] f_in;
1333  f_in = nullptr;
1334  fCdelete++;
1335  delete[] f_in_short;
1336  f_in_short = nullptr;
1337  fCdelete++;
1338 
1339 } // end of fMakeResultsFileName
Int_t fCodeHfn
Definition: TEcnaWrite.h:69
Int_t fCodeAvPed
Definition: TEcnaWrite.h:80
Int_t fStinEchaUser
Definition: TEcnaWrite.h:101
Int_t fgMaxCar
Definition: TEcnaWrite.h:41
TString fFlagSubDet
Definition: TEcnaWrite.h:53
TString fStexName
Definition: TEcnaWrite.h:131
TString BeginningOfResultsRootFilePath()
TEcnaParPaths * fCnaParPaths
Definition: TEcnaWrite.h:56
TString fAnaType
Definition: TEcnaWrite.h:124
Int_t fStexNumber
Definition: TEcnaWrite.h:130
void AppendResultsAsciiFilePath(const Text_t *)
TString fAsciiFileNameShort
Definition: TEcnaWrite.h:142
Int_t fStexStinUser
Definition: TEcnaWrite.h:100
Int_t fRunNumber
Definition: TEcnaWrite.h:126
TString fRootFileNameShort
Definition: TEcnaWrite.h:138
Int_t fCdelete
Definition: TEcnaWrite.h:38
Int_t fCnew
Definition: TEcnaWrite.h:38
Int_t fCodePed
Definition: TEcnaWrite.h:66
Int_t fCodeAvTno
Definition: TEcnaWrite.h:81
TString fRootFileName
Definition: TEcnaWrite.h:139
Int_t fCodeAvMeanCorss
Definition: TEcnaWrite.h:82
TString fTTBELL
Definition: TEcnaWrite.h:43
void SetResultsRootFilePath(const TString &)
TString BeginningOfResultsAsciiFilePath()
Int_t fCodeSigCorss
Definition: TEcnaWrite.h:71
Int_t fCodeRoot
Definition: TEcnaWrite.h:63
Int_t fCodeMSp
Definition: TEcnaWrite.h:77
Int_t fNbOfSamples
Definition: TEcnaWrite.h:125
ii
Definition: cuy.py:589
Int_t fCodeHeaderAscii
Definition: TEcnaWrite.h:62
Int_t fFirstReqEvtNumber
Definition: TEcnaWrite.h:127
Int_t fCodeMeanCorss
Definition: TEcnaWrite.h:70
TString fStinName
Definition: TEcnaWrite.h:132
void TruncateResultsRootFilePath(const Int_t &, const Int_t &)
Int_t fCodeLfCov
Definition: TEcnaWrite.h:85
Int_t fCodeTno
Definition: TEcnaWrite.h:67
TString ResultsRootFilePath()
Int_t fCodeLfn
Definition: TEcnaWrite.h:68
Int_t fCodeAvSigCorss
Definition: TEcnaWrite.h:83
TString fAsciiFileName
Definition: TEcnaWrite.h:141
Int_t fCodeCovCss
Definition: TEcnaWrite.h:73
Int_t fCodeNbOfEvts
Definition: TEcnaWrite.h:65
Int_t fCodeCorCss
Definition: TEcnaWrite.h:74
Int_t fLastReqEvtNumber
Definition: TEcnaWrite.h:128
Int_t fCodeLfCor
Definition: TEcnaWrite.h:86
void TruncateResultsAsciiFilePath(const Int_t &, const Int_t &)
void AppendResultsRootFilePath(const Text_t *)
Int_t fReqNbOfEvts
Definition: TEcnaWrite.h:129
Int_t fCodeSSp
Definition: TEcnaWrite.h:78
TString ResultsAsciiFilePath()
void SetResultsAsciiFilePath(const TString &)

◆ fT2dWriteAscii()

void TEcnaWrite::fT2dWriteAscii ( const Int_t &  i_code,
const Int_t &  i_pasx_arg,
const Int_t &  i_pasy_arg,
const Int_t &  MatSize,
const TMatrixD &  read_matrix 
)
private

Definition at line 1798 of file TEcnaWrite.cc.

References gather_cfg::cout, TauDecayModes::dec, fAsciiFileName, fCnew, fCodeAvMeanCorss, fCodeAvSigCorss, fCodeCorCss, fCodeCovCss, fCodeHfCor, fCodeHfCov, fCodeLfCor, fCodeLfCov, fCodePrintNoComment, fEcal, fEcalNumbering, fFcout_f, fFlagPrint, fFlagSubDet, alignBH_cfg::fixed, fjustap_1d_cc, fjustap_1d_ss, fjustap_2d_cc, fjustap_2d_ss, fSectChanSizeX, fSectSampSizeX, fStexNumber, fStexStinUser, fStinEchaUser, fStinName, fUserSamp, TEcnaNumbering::Get0TowEchaFrom0SMEcha(), TEcnaNumbering::Get1SCEchaFrom0DeeEcha(), TEcnaNumbering::GetDeeDirViewedFromIP(), mps_fire::i, dqmiolumiharvest::j, TEcnaParEcal::MaxCrysEcnaInStex(), and TEcnaParEcal::MaxSampADC().

Referenced by WriteAsciiCorrelationsBetweenSamples(), and WriteAsciiCovariancesBetweenSamples().

1802  {
1803  //Writing of a matrix by sectors (private)
1804 
1805  Int_t i_pasx = i_pasx_arg; // taille secteur en x
1806  Int_t i_pasy = i_pasy_arg; // taille secteur en y
1807 
1808  //------------ formatage des nombres en faisant appel a la classe ios
1809 
1810  fFcout_f << std::setiosflags(std::ios::showpoint | std::ios::uppercase);
1811  fFcout_f.setf(std::ios::dec, std::ios::basefield);
1812  fFcout_f.setf(std::ios::fixed, std::ios::floatfield);
1813  fFcout_f.setf(std::ios::left, std::ios::adjustfield);
1814  fFcout_f.setf(std::ios::right, std::ios::adjustfield);
1815  fFcout_f << std::setprecision(3) << std::setw(6);
1816 
1817  std::cout << std::setiosflags(std::ios::showpoint | std::ios::uppercase);
1818  std::cout.setf(std::ios::dec, std::ios::basefield);
1819  std::cout.setf(std::ios::fixed, std::ios::floatfield);
1820  std::cout.setf(std::ios::left, std::ios::adjustfield);
1821  std::cout.setf(std::ios::right, std::ios::adjustfield);
1822  std::cout << std::setprecision(3) << std::setw(6);
1823 
1824  //--------------------- fin du formatage standard C++ -------------------
1825 
1826  //-----------------------------------------------------------------------
1827  // Reservation dynamique d'un array Double_t** de dimensions
1828  // les multiples de 5 juste au-dessus des dimensions de l'array 2D
1829  // a ecrire ( array de dimensions
1830  // (fEcal->MaxSampADC(),fEcal->MaxSampADC())
1831  // (fEcal->MaxCrysEcnaInStex(),fEcal->MaxCrysEcnaInStex()) )
1832  //-----------------------------------------------------------------------
1833  // Determination des tailles multiples de fSectChanSizeX ou fSectSampSizeX
1834 
1835 #define NOUC
1836 #ifndef NOUC
1837 
1838  //*************** channels *************
1839  Int_t justap_chan = 0;
1840 
1841  if (fEcal->MaxCrysEcnaInStex() % fSectChanSizeX == 0) {
1842  justap_chan = fEcal->MaxCrysEcnaInStex();
1843  } else {
1844  justap_chan = ((fEcal->MaxCrysEcnaInStex() / fSectChanSizeX) + 1) * fSectChanSizeX;
1845  }
1846 
1847  //....................... Allocation fjustap_2d_cc
1848 
1849  if (i_code == fCodeHfCov || i_code == fCodeHfCor || i_code == fCodeLfCov || i_code == fCodeLfCor) {
1850  if (fjustap_2d_cc == 0) {
1851  //................... Allocation
1852  fjustap_2d_cc = new Double_t*[justap_chan];
1853  fCnew++;
1854  fjustap_1d_cc = new Double_t[justap_chan * justap_chan];
1855  fCnew++;
1856  for (Int_t i = 0; i < justap_chan; i++) {
1857  fjustap_2d_cc[i] = &fjustap_1d_cc[0] + i * justap_chan;
1858  }
1859  }
1860 
1861  //............................... Transfert des valeurs dans fjustap_2d_cc (=init)
1862  for (Int_t i = 0; i < fEcal->MaxCrysEcnaInStex(); i++) {
1863  for (Int_t j = 0; j < fEcal->MaxCrysEcnaInStex(); j++) {
1864  if (i_code == fCodeHfCov) {
1865  fjustap_2d_cc[i][j] = read_matrix(i, j);
1866  }
1867  if (i_code == fCodeHfCor) {
1868  fjustap_2d_cc[i][j] = read_matrix(i, j);
1869  }
1870  if (i_code == fCodeLfCov) {
1871  fjustap_2d_cc[i][j] = read_matrix(i, j);
1872  }
1873  if (i_code == fCodeLfCor) {
1874  fjustap_2d_cc[i][j] = read_matrix(i, j);
1875  }
1876  }
1877  }
1878 
1879  //.......................... mise a zero du reste de la matrice (=init)
1880  for (Int_t i = fEcal->MaxCrysEcnaInStex(); i < justap_chan; i++) {
1881  for (Int_t j = fEcal->MaxCrysEcnaInStex(); j < justap_chan; j++) {
1882  fjustap_2d_cc[i][j] = (Double_t)0.;
1883  }
1884  }
1885  }
1886 
1887 #endif //NOUC
1888 
1889  //************************************ Samples ***************************
1890  Int_t justap_samp = 0;
1891 
1892  if (fEcal->MaxSampADC() % fSectSampSizeX == 0) {
1893  justap_samp = fEcal->MaxSampADC();
1894  } else {
1895  justap_samp = ((fEcal->MaxSampADC() / fSectSampSizeX) + 1) * fSectSampSizeX;
1896  }
1897 
1898  //....................... allocation fjustap_2d_ss
1899 
1900  if (i_code == fCodeCovCss || i_code == fCodeCorCss || i_code == fCodeAvMeanCorss || i_code == fCodeAvSigCorss) {
1901  if (fjustap_2d_ss == nullptr) {
1902  //................... Allocation
1903  fjustap_2d_ss = new Double_t*[justap_samp];
1904  fCnew++;
1905  fjustap_1d_ss = new Double_t[justap_samp * justap_samp];
1906  fCnew++;
1907  for (Int_t i = 0; i < justap_samp; i++) {
1908  fjustap_2d_ss[i] = &fjustap_1d_ss[0] + i * justap_samp;
1909  }
1910  }
1911 
1912  //.............................. Transfert des valeurs dans fjustap_2d_ss (=init)
1913  for (Int_t i = 0; i < fEcal->MaxSampADC(); i++) {
1914  for (Int_t j = 0; j < fEcal->MaxSampADC(); j++) {
1915  if (i_code == fCodeCovCss) {
1916  fjustap_2d_ss[i][j] = read_matrix(i, j);
1917  }
1918  if (i_code == fCodeCorCss) {
1919  fjustap_2d_ss[i][j] = read_matrix(i, j);
1920  }
1921  if (i_code == fCodeAvMeanCorss) {
1922  fjustap_2d_ss[i][j] = read_matrix(i, j);
1923  }
1924  if (i_code == fCodeAvSigCorss) {
1925  fjustap_2d_ss[i][j] = read_matrix(i, j);
1926  }
1927  }
1928  }
1929 
1930  //.......................... mise a zero du reste de la matrice (=init)
1931  for (Int_t i = fEcal->MaxSampADC(); i < justap_samp; i++) {
1932  for (Int_t j = fEcal->MaxSampADC(); j < justap_samp; j++) {
1933  fjustap_2d_ss[i][j] = (Double_t)0.;
1934  }
1935  }
1936  }
1937 
1938  //..................... impressions + initialisations selon i_code
1939 
1940  Int_t isx_max = 0;
1941  Int_t isy_max = 0;
1942 
1943 #define COCC
1944 #ifndef COCC
1945  if (i_code == fCodeHfCov) {
1946  fFcout_f << "Covariance matrix between channels "
1947  << "for sample number " << fUserSamp;
1948  isx_max = justap_chan;
1949  isy_max = justap_chan;
1950  }
1951  if (i_code == fCodeHfCor) {
1952  fFcout_f << "*Correlation matrix between channels "
1953  << "for sample number " << fUserSamp;
1954  isx_max = justap_chan;
1955  isy_max = justap_chan;
1956  }
1957 
1958  if (i_code == fCodeLfCov) {
1959  fFcout_f << "Covariance matrix between channels "
1960  << "averaged on the samples ";
1961  isx_max = justap_chan;
1962  isy_max = justap_chan;
1963  }
1964  if (i_code == fCodeLfCor) {
1965  fFcout_f << "Correlation matrix between channels "
1966  << "averaged on the samples ";
1967  isx_max = justap_chan;
1968  isy_max = justap_chan;
1969  }
1970 #endif // COCC
1971 
1972  Int_t n1StexStin = 0;
1973  Int_t i0StinEcha = 0;
1974  Int_t n1StinEcha = 0;
1975 
1976  if (fFlagSubDet == "EB") {
1977  n1StexStin = fStexStinUser;
1979  }
1980  if (fFlagSubDet == "EE") {
1981  n1StexStin = fStexStinUser;
1982  Int_t fStinEchaUser_m = fStinEchaUser - 1;
1983  n1StinEcha = fEcalNumbering->Get1SCEchaFrom0DeeEcha(fStinEchaUser_m);
1984 
1985  TString sDeeDir = fEcalNumbering->GetDeeDirViewedFromIP(fStexNumber);
1986  }
1987 
1988  if (i_code == fCodeCovCss) {
1989  if (fFlagSubDet == "EB") {
1990  fFcout_f << "Covariance matrix between samples "
1991  << "for channel number " << fStinEchaUser << " (" << fStinName << ": " << n1StexStin << " , channel in "
1992  << fStinName << ": " << i0StinEcha << ")";
1993  }
1994  if (fFlagSubDet == "EE") {
1995  fFcout_f << "Covariance matrix between samples "
1996  << "for channel number " << fStinEchaUser << " (" << fStinName << ": " << n1StexStin << " , channel in "
1997  << fStinName << ": " << n1StinEcha << ")";
1998  }
1999  isx_max = justap_samp;
2000  isy_max = justap_samp;
2001  }
2002  if (i_code == fCodeCorCss) {
2003  if (fFlagSubDet == "EB") {
2004  fFcout_f << "Correlation matrix between samples "
2005  << "for channel number " << fStinEchaUser << " (" << fStinName << ": " << n1StexStin << " , channel in "
2006  << fStinName << ": " << i0StinEcha << ")";
2007  }
2008  if (fFlagSubDet == "EE") {
2009  fFcout_f << "Correlation matrix between samples "
2010  << "for channel number " << fStinEchaUser << " (" << fStinName << ": " << n1StexStin << " , channel in "
2011  << fStinName << ": " << n1StinEcha << ")";
2012  }
2013  isx_max = justap_samp;
2014  isy_max = justap_samp;
2015  }
2016 
2017  if (i_code == fCodeAvMeanCorss) {
2018  if (fFlagSubDet == "EB") {
2019  fFcout_f << "Correction factors to the covariances "
2020  << "between samples for channel number " << fStinEchaUser << " (" << fStinName << ": " << n1StexStin
2021  << " , channel in " << fStinName << ": " << i0StinEcha << ")";
2022  }
2023  if (fFlagSubDet == "EE") {
2024  fFcout_f << "Correction factors to the covariances "
2025  << "between samples for channel number " << fStinEchaUser << " (" << fStinName << ": " << n1StexStin
2026  << " , channel in " << fStinName << ": " << n1StinEcha << ")";
2027  }
2028  isx_max = justap_samp;
2029  isy_max = justap_samp;
2030  }
2031 
2032  if (i_code == fCodeAvSigCorss) {
2033  if (fFlagSubDet == "EB") {
2034  fFcout_f << "Correction factors to the correlations "
2035  << "between samples for channel number " << fStinEchaUser << " ( " << fStinName << ": " << n1StexStin
2036  << " , channel in " << fStinName << ": " << i0StinEcha << ")";
2037  }
2038  if (fFlagSubDet == "EE") {
2039  fFcout_f << "Correction factors to the correlations "
2040  << "between samples for channel number " << fStinEchaUser << " ( " << fStinName << ": " << n1StexStin
2041  << " , channel in " << fStinName << ": " << n1StinEcha << ")";
2042  }
2043  isx_max = justap_samp;
2044  isy_max = justap_samp;
2045  }
2046 
2047  fFcout_f << std::endl;
2048 
2049  //............... Calcul des nombres de secteurs selon x
2050  // i_pasx = taille secteur en x
2051  // isx_max = taille de la matrice en x
2052  // n_sctx = nombre de secteurs en x
2053  //
2054  if (i_pasx > isx_max) {
2055  i_pasx = isx_max;
2056  }
2057  Int_t n_sctx;
2058  Int_t max_verix;
2059  n_sctx = isx_max / i_pasx;
2060  max_verix = n_sctx * i_pasx;
2061  if (max_verix < isx_max) {
2062  n_sctx++;
2063  }
2064 
2065  //............... Calcul des nombres de secteurs selon y
2066  // i_pasy = taille secteur en y
2067  // isy_max = taille de la matrice en y
2068  // n_scty = nombre de secteurs en x
2069  //
2070  if (i_pasy > isy_max) {
2071  i_pasy = isy_max;
2072  }
2073  Int_t n_scty;
2074  Int_t max_veriy;
2075  n_scty = isy_max / i_pasy;
2076  max_veriy = n_scty * i_pasy;
2077  if (max_veriy < isy_max) {
2078  n_scty++;
2079  }
2080 
2081 #define NBSC
2082 #ifndef NBSC
2083  //................ Ecriture de la taille et du nombre des secteurs
2084  if (i_code == fCodeCovCss || i_code == fCodeCorCss || i_code == fCodeAvMeanCorss || i_code == fCodeAvSigCorss) {
2085  fFcout_f << "sector size = " << fSectSampSizeX << " , number of sectors = " << n_sctx << " x " << n_scty << endl;
2086  }
2087  if (i_code == fCodeHfCov || i_code == fCodeHfCor || i_code == fCodeLfCov || i_code == fCodeLfCor) {
2088  fFcout_f << "sector size = " << fSectChanSizeX << " , number of sectors = " << n_sctx << " x " << n_scty
2089  << std::endl;
2090  }
2091 #endif // NBSC
2092 
2093  fFcout_f << std::endl;
2094 
2095  //............... impression matrice par secteurs i_pas x i_pas
2096  //........................... boucles pour display des secteurs
2097  Int_t ix_inf = -i_pasx;
2098 
2099  for (Int_t nsx = 0; nsx < n_sctx; nsx++) {
2100  //......................... calcul limites secteur
2101  ix_inf = ix_inf + i_pasx;
2102  Int_t ix_sup = ix_inf + i_pasx;
2103 
2104  Int_t iy_inf = -i_pasy;
2105 
2106  for (Int_t nsy = 0; nsy < n_scty; nsy++) {
2107  iy_inf = iy_inf + i_pasy;
2108  Int_t iy_sup = iy_inf + i_pasy;
2109 
2110  //......................... display du secteur (nsx,nsy)
2111 
2112  if (i_code == fCodeHfCov || i_code == fCodeCovCss || i_code == fCodeAvMeanCorss || i_code == fCodeAvSigCorss) {
2113  fFcout_f << " ";
2114  }
2115  if (i_code == fCodeHfCor || i_code == fCodeCorCss) {
2116  fFcout_f << " ";
2117  }
2118 
2119  for (Int_t iy_c = iy_inf; iy_c < iy_sup; iy_c++) {
2120  if (i_code == fCodeHfCov || i_code == fCodeLfCov || i_code == fCodeCovCss || i_code == fCodeAvMeanCorss ||
2121  i_code == fCodeAvSigCorss) {
2122  fFcout_f.width(8);
2123  }
2124  if (i_code == fCodeHfCor || i_code == fCodeLfCor || i_code == fCodeCorCss) {
2125  fFcout_f.width(6);
2126  }
2127  fFcout_f << iy_c << " ";
2128  }
2129  fFcout_f << std::endl << std::endl;
2130 
2131  for (Int_t ix_c = ix_inf; ix_c < ix_sup; ix_c++) {
2132  if (i_code == fCodeHfCov || i_code == fCodeLfCov || i_code == fCodeCovCss || i_code == fCodeAvMeanCorss ||
2133  i_code == fCodeAvSigCorss) {
2134  fFcout_f.width(8);
2135  }
2136  if (i_code == fCodeHfCor || i_code == fCodeLfCor || i_code == fCodeCorCss) {
2137  fFcout_f.width(6);
2138  }
2139  fFcout_f << ix_c << " ";
2140 
2141  for (Int_t iy_c = iy_inf; iy_c < iy_sup; iy_c++) {
2142  if (i_code == fCodeHfCov || i_code == fCodeLfCov || i_code == fCodeCovCss || i_code == fCodeAvMeanCorss ||
2143  i_code == fCodeAvSigCorss) {
2144  fFcout_f.width(8);
2145  }
2146 
2147  if (i_code == fCodeHfCor || i_code == fCodeLfCor || i_code == fCodeCorCss) {
2148  fFcout_f.width(6);
2149  }
2150 
2151  if (i_code == fCodeHfCov || i_code == fCodeLfCov || i_code == fCodeHfCor) {
2152  fFcout_f << fjustap_2d_cc[ix_c][iy_c] << " ";
2153  }
2154 
2155  if (i_code == fCodeCovCss || i_code == fCodeCorCss || i_code == fCodeAvMeanCorss ||
2156  i_code == fCodeAvSigCorss) {
2157  fFcout_f << fjustap_2d_ss[ix_c][iy_c] << " ";
2158  }
2159  }
2160  fFcout_f << std::endl;
2161  }
2162  fFcout_f << std::endl;
2163  }
2164  }
2165 
2166  //........... closing of the results file
2167 
2168  fFcout_f.close();
2169 
2171  std::cout << "*TEcnaWrite::fT2dWriteAscii(....)> INFO: "
2172  << "matrix has been written in file: " << std::endl
2173  << " " << fAsciiFileName.Data() << std::endl;
2174  }
2175 
2176 } // end of TEcnaWrite::fT2dWriteAscii
Double_t ** fjustap_2d_cc
Definition: TEcnaWrite.h:110
Int_t fStinEchaUser
Definition: TEcnaWrite.h:101
TString GetDeeDirViewedFromIP(const Int_t &)
Int_t fCodePrintNoComment
Definition: TEcnaWrite.h:50
TString fFlagSubDet
Definition: TEcnaWrite.h:53
Int_t fCodeHfCov
Definition: TEcnaWrite.h:87
Int_t Get1SCEchaFrom0DeeEcha(const Int_t &)
Double_t ** fjustap_2d_ss
Definition: TEcnaWrite.h:113
Int_t fStexNumber
Definition: TEcnaWrite.h:130
Int_t fStexStinUser
Definition: TEcnaWrite.h:100
TEcnaParEcal * fEcal
Definition: TEcnaWrite.h:52
Int_t Get0TowEchaFrom0SMEcha(const Int_t &)
Int_t fCnew
Definition: TEcnaWrite.h:38
Int_t fUserSamp
Definition: TEcnaWrite.h:99
Int_t fCodeAvMeanCorss
Definition: TEcnaWrite.h:82
Int_t fFlagPrint
Definition: TEcnaWrite.h:49
Double_t * fjustap_1d_cc
Definition: TEcnaWrite.h:111
Double_t * fjustap_1d_ss
Definition: TEcnaWrite.h:114
Int_t fSectChanSizeX
Definition: TEcnaWrite.h:94
std::ofstream fFcout_f
Definition: TEcnaWrite.h:59
TString fStinName
Definition: TEcnaWrite.h:132
Int_t fCodeLfCov
Definition: TEcnaWrite.h:85
Int_t MaxCrysEcnaInStex()
Int_t fCodeAvSigCorss
Definition: TEcnaWrite.h:83
Int_t MaxSampADC()
TString fAsciiFileName
Definition: TEcnaWrite.h:141
Int_t fCodeCovCss
Definition: TEcnaWrite.h:73
Int_t fCodeCorCss
Definition: TEcnaWrite.h:74
Int_t fSectSampSizeX
Definition: TEcnaWrite.h:95
Int_t fCodeLfCor
Definition: TEcnaWrite.h:86
Int_t fCodeHfCor
Definition: TEcnaWrite.h:88
TEcnaNumbering * fEcalNumbering
Definition: TEcnaWrite.h:55

◆ GetAnalysisName()

TString TEcnaWrite::GetAnalysisName ( )

Definition at line 390 of file TEcnaWrite.cc.

References fAnaType.

390 { return fAnaType; }
TString fAnaType
Definition: TEcnaWrite.h:124

◆ GetAsciiFileName()

TString TEcnaWrite::GetAsciiFileName ( )

Definition at line 387 of file TEcnaWrite.cc.

References fAsciiFileName.

Referenced by TEcnaHistos::WriteHistoAscii(), and TEcnaHistos::WriteMatrixAscii().

387 { return fAsciiFileName; }
TString fAsciiFileName
Definition: TEcnaWrite.h:141

◆ GetFirstReqEvtNumber()

Int_t TEcnaWrite::GetFirstReqEvtNumber ( )

Definition at line 393 of file TEcnaWrite.cc.

References fFirstReqEvtNumber.

393 { return fFirstReqEvtNumber; }
Int_t fFirstReqEvtNumber
Definition: TEcnaWrite.h:127

◆ GetNbOfSamples()

Int_t TEcnaWrite::GetNbOfSamples ( )

Definition at line 391 of file TEcnaWrite.cc.

References fNbOfSamples.

391 { return fNbOfSamples; }
Int_t fNbOfSamples
Definition: TEcnaWrite.h:125

◆ GetReqNbOfEvts()

Int_t TEcnaWrite::GetReqNbOfEvts ( )

Definition at line 394 of file TEcnaWrite.cc.

References fReqNbOfEvts.

394 { return fReqNbOfEvts; }
Int_t fReqNbOfEvts
Definition: TEcnaWrite.h:129

◆ GetRootFileName()

TString TEcnaWrite::GetRootFileName ( )

◆ GetRootFileNameShort()

TString TEcnaWrite::GetRootFileNameShort ( )

Definition at line 389 of file TEcnaWrite.cc.

References fRootFileNameShort.

Referenced by TEcnaRead::GetRootFileNameShort(), TEcnaRun::WriteNewRootFile(), and TEcnaRun::WriteRootFile().

389 { return fRootFileNameShort; }
TString fRootFileNameShort
Definition: TEcnaWrite.h:138

◆ GetRunNumber()

Int_t TEcnaWrite::GetRunNumber ( )

Definition at line 392 of file TEcnaWrite.cc.

References fRunNumber.

392 { return fRunNumber; }
Int_t fRunNumber
Definition: TEcnaWrite.h:126

◆ GetStexNumber()

Int_t TEcnaWrite::GetStexNumber ( )

Definition at line 395 of file TEcnaWrite.cc.

References fStexNumber.

395 { return fStexNumber; }
Int_t fStexNumber
Definition: TEcnaWrite.h:130

◆ Init()

void TEcnaWrite::Init ( void  )

Definition at line 143 of file TEcnaWrite.cc.

References fCodeCorCss, fCodeCovCss, fCodeHeaderAscii, fCodeHfn, fCodeLfn, fCodeMeanCorss, fCodeNbOfEvts, fCodePed, fCodeRoot, fCodeSigCorss, fCodeTno, fgMaxCar, fjustap_1d_cc, fjustap_1d_ev, fjustap_1d_ss, fjustap_1d_var, fjustap_2d_cc, fjustap_2d_ev, fjustap_2d_ss, fjustap_2d_var, fStexStinUser, fStinEchaUser, fTTBELL, and fUserSamp.

Referenced by TEcnaWrite().

143  {
144  //----------------------------- Parameters values
145  fTTBELL = '\007';
146 
147  fgMaxCar = (Int_t)512; // max number of characters in TStrings
148  fCodeHeaderAscii = 0;
149  fCodeRoot = 1;
150 
151  //------------------------------------------- Codes
152  //................. presently used codes
153  fCodeNbOfEvts = 101;
154  fCodePed = 102;
155  fCodeTno = 103;
156  fCodeLfn = 104;
157  fCodeHfn = 105;
158  fCodeMeanCorss = 106;
159  fCodeSigCorss = 107;
160 
161  fCodeCovCss = 201;
162  fCodeCorCss = 202;
163 
164  //................. not yet used codes
165  //fCodeAdcEvt = 3;
166  //fCodeMSp = 4;
167  //fCodeSSp = 5;
168 
169  //fCodeAvPed = 17;
170  //fCodeAvTno = 6;
171  //fCodeAvMeanCorss = 18;
172  //fCodeAvSigCorss = 19;
173 
174  //fCodeLfCov = 11;
175  //fCodeLfCor = 12;
176  //fCodeHfCov = 9;
177  //fCodeHfCor = 10;
178 
179  //fCodeLFccMoStins = 13;
180  //fCodeHFccMoStins = 14;
181 
182  //----------------------------------------
183 
184  fUserSamp = 0;
185  fStexStinUser = 0;
186  fStinEchaUser = 0;
187 
188  fjustap_2d_ev = nullptr;
189  fjustap_1d_ev = nullptr;
190 
191  fjustap_2d_var = nullptr;
192  fjustap_1d_var = nullptr;
193 
194  fjustap_2d_cc = nullptr;
195  fjustap_1d_cc = nullptr;
196 
197  fjustap_2d_ss = nullptr;
198  fjustap_1d_ss = nullptr;
199 }
Int_t fCodeHfn
Definition: TEcnaWrite.h:69
Double_t ** fjustap_2d_cc
Definition: TEcnaWrite.h:110
Int_t fStinEchaUser
Definition: TEcnaWrite.h:101
Int_t fgMaxCar
Definition: TEcnaWrite.h:41
Double_t * fjustap_1d_ev
Definition: TEcnaWrite.h:105
Double_t ** fjustap_2d_ev
Definition: TEcnaWrite.h:104
Double_t ** fjustap_2d_var
Definition: TEcnaWrite.h:107
Double_t ** fjustap_2d_ss
Definition: TEcnaWrite.h:113
Int_t fStexStinUser
Definition: TEcnaWrite.h:100
Int_t fUserSamp
Definition: TEcnaWrite.h:99
Int_t fCodePed
Definition: TEcnaWrite.h:66
TString fTTBELL
Definition: TEcnaWrite.h:43
Int_t fCodeSigCorss
Definition: TEcnaWrite.h:71
Double_t * fjustap_1d_cc
Definition: TEcnaWrite.h:111
Int_t fCodeRoot
Definition: TEcnaWrite.h:63
Double_t * fjustap_1d_ss
Definition: TEcnaWrite.h:114
Int_t fCodeHeaderAscii
Definition: TEcnaWrite.h:62
Int_t fCodeMeanCorss
Definition: TEcnaWrite.h:70
Int_t fCodeTno
Definition: TEcnaWrite.h:67
Double_t * fjustap_1d_var
Definition: TEcnaWrite.h:108
Int_t fCodeLfn
Definition: TEcnaWrite.h:68
Int_t fCodeCovCss
Definition: TEcnaWrite.h:73
Int_t fCodeNbOfEvts
Definition: TEcnaWrite.h:65
Int_t fCodeCorCss
Definition: TEcnaWrite.h:74

◆ NumberOfEventsAnalysis() [1/2]

Int_t TEcnaWrite::NumberOfEventsAnalysis ( Int_t **  T2d_NbOfEvts,
const Int_t &  MaxCrysEcnaInStex,
const Int_t &  MaxNbOfSamples,
const Int_t &  NbOfReqEvts 
)

Definition at line 514 of file TEcnaWrite.cc.

References gather_cfg::cout, fCodePrintAllComments, fFlagPrint, and fRootFileName.

Referenced by TEcnaRead::GetNumberOfEvents(), and TEcnaRun::GetReadyToCompute().

517  {
518  // CHECK OF THE NUMBER OF FOUND EVENTS, return rNumberOfEvents (NumberOfEvents())
519  // (number used to compute the average values over the events)
520  //
521  // 2D array: called by TEcnaRun object
522 
523  Int_t rNumberOfEvents = 0;
524  Int_t PresentNumber = 0;
525  Int_t DifferentMinusValue = 0;
526  Int_t DifferentPlusValue = 0;
527 
528  for (Int_t i0StexEcha = 0; i0StexEcha < MaxCrysEcnaInStex; i0StexEcha++) {
529  for (Int_t i_samp = 0; i_samp < MaxNbOfSamples; i_samp++) {
530  Int_t NbOfEvts = T2d_NbOfEvts[i0StexEcha][i_samp];
531 
532  if (NbOfEvts > 0) {
533  if (PresentNumber == 0) {
534  PresentNumber = NbOfEvts;
535  } else {
536  if (NbOfEvts > PresentNumber) {
537  PresentNumber = NbOfEvts;
538  DifferentPlusValue++;
539  }
540  if (NbOfEvts < PresentNumber) {
541  DifferentMinusValue++;
542  }
543  }
544  }
545  }
546  }
547  //............................................................. (NumberOfEvents())
548  rNumberOfEvents = PresentNumber;
549 
550  if (DifferentMinusValue > 0 || DifferentPlusValue > 0) {
551  std::cout
552  << "!TEcnaWrite::NumberOfEventsAnalysis()> " << std::endl
553  << "****************** W A R N I N G : NUMBER OF EVENTS NOT CONSTANT ! *********************************"
554  << std::endl
555  << " Result ROOT file: " << fRootFileName << std::endl
556  << " The number of events is not the same for all the non-empty channels" << std::endl
557  << " The maximum number (" << rNumberOfEvents << ") is considered as the number of events " << std::endl
558  << " for calculations of pedestals, noises and correlations." << std::endl
559  << " Number of channels with 0 < nb of evts < " << rNumberOfEvents << " : " << DifferentMinusValue
560  << std::endl
561  // << " Number of channels with nb of evts > " << rNumberOfEvents << " : " << DifferentPlusValue << std::endl
562  // << " Number of empty channels : " << EmptyChannel << std::endl
563  << " Some values of pedestals, noises and correlations may be wrong for channels" << std::endl
564  << " with number of events different from " << rNumberOfEvents << "." << std::endl
565  << " Please, check the histogram 'Numbers of events'." << std::endl
566  << "*******************************************************************************************************"
567  << std::endl;
568  } else {
570  if (rNumberOfEvents < NbOfReqEvts) {
571  std::cout << "*TEcnaWrite::NumberOfEventsAnalysis()> *** INFO *** Number of events found in data = "
572  << rNumberOfEvents << ": less than number of requested events ( = " << NbOfReqEvts << ")"
573  << std::endl;
574  }
575  }
576  }
577  return rNumberOfEvents;
578 
579 } //----- ( end of NumberOfEvents(...) ) ----------------
TString fRootFileName
Definition: TEcnaWrite.h:139
Int_t fCodePrintAllComments
Definition: TEcnaWrite.h:50
Int_t fFlagPrint
Definition: TEcnaWrite.h:49

◆ NumberOfEventsAnalysis() [2/2]

Int_t TEcnaWrite::NumberOfEventsAnalysis ( Int_t *  ArrayNbOfEvts,
const Int_t &  MaxArray,
const Int_t &  NbOfReqEvts,
const Int_t &  StexNumber 
)

Definition at line 411 of file TEcnaWrite.cc.

References gather_cfg::cout, TEcnaParEcal::EmptyChannelsInDeeMatrixIncompleteSCIncluded(), fCodePrintAllComments, fEcal, fEcalNumbering, fFlagPrint, fRootFileName, TEcnaParEcal::MaxCrysEcnaInDee(), TEcnaParEcal::MaxCrysInSM(), and TEcnaNumbering::PlusMinusSMNumber().

414  {
415  // CHECK THE NUMBER OF FOUND EVENTS, return rNumberOfEvents (NumberOfEvents())
416  // (number used to compute the average values over the events)
417  //
418  // 1D array: called by TEcnaRead object
419 
420  Int_t rNumberOfEvents = 0;
421  Int_t PresentNumber = 0;
422  Int_t EmptyChannel = 0;
423  Int_t DifferentMinusValue = 0;
424  Int_t DifferentPlusValue = 0;
425 
426  //........................................................ i_SSoSE = StexStin or StinEcha
427  for (Int_t i_SSoSE = 0; i_SSoSE < MaxArray; i_SSoSE++) {
428  Int_t NbOfEvts = ArrayNbOfEvts[i_SSoSE];
429 
430  if (NbOfEvts > 0) {
431  if (PresentNumber == 0) // first channel
432  {
433  PresentNumber = NbOfEvts;
434  } else // current channel
435  {
436  if (NbOfEvts > PresentNumber) // warning
437  {
438  PresentNumber = NbOfEvts;
439  DifferentPlusValue++;
440  }
441  if (NbOfEvts < PresentNumber) // warning
442  {
443  DifferentMinusValue++;
444  }
445  }
446  } else {
447  EmptyChannel++;
448  }
449  }
450 
451  rNumberOfEvents = PresentNumber;
452 
453  if (EmptyChannel > 0) {
454  if (MaxArray == fEcal->MaxCrysInSM()) // (EB)
455  {
456  std::cout << "!TEcnaWrite::NumberOfEventsAnalysis()> *** WARNING *** " << EmptyChannel
457  << " empty channels detected in SM " << StexNumber << " (EB "
458  << fEcalNumbering->PlusMinusSMNumber(StexNumber) << ")" << std::endl;
459  }
460  if (MaxArray == fEcal->MaxCrysEcnaInDee()) // (EE)
461  {
463  if (EmptyChannel > 0) {
464  std::cout << "!TEcnaWrite::NumberOfEventsAnalysis()> *** WARNING *** " << EmptyChannel
465  << " empty channels detected in Dee " << StexNumber << std::endl;
466  }
467  }
468  }
469 
470  if (DifferentMinusValue > 0 || DifferentPlusValue > 0) {
471  std::cout << "!TEcnaWrite::NumberOfEventsAnalysis()> " << std::endl;
472 
473  if (MaxArray == fEcal->MaxCrysInSM()) // (EB)
474  {
475  std::cout << "************** W A R N I N G : NUMBER OF EVENTS NOT CONSTANT FOR SM " << StexNumber << " (EB "
476  << fEcalNumbering->PlusMinusSMNumber(StexNumber) << ") *********************";
477  }
478 
479  if (MaxArray == fEcal->MaxCrysEcnaInDee()) // (EE)
480  {
481  std::cout << "****************** W A R N I N G : NUMBER OF EVENTS NOT CONSTANT FOR Dee " << StexNumber
482  << " **************************";
483  }
484 
485  std::cout
486  << std::endl
487  << " Result ROOT file: " << fRootFileName << std::endl
488  << " The number of events is not the same for all the non-empty channels." << std::endl
489  << " The maximum number (" << rNumberOfEvents << ") is considered as the number of events for calculations "
490  << std::endl
491  << " of pedestals, noises and correlations." << std::endl
492  << " Number of channels with 0 < nb of evts < " << rNumberOfEvents << " : " << DifferentMinusValue
493  << std::endl
494  // << " Number of channels with nb of evts > " << rNumberOfEvents << " = " << DifferentPlusValue << std::endl
495  << " Number of empty channels : " << EmptyChannel << std::endl
496  << " Some values of pedestals, noises and correlations may be wrong for channels" << std::endl
497  << " with number of events different from " << rNumberOfEvents << "." << std::endl
498  << " Please, check the histogram 'Numbers of events'." << std::endl
499  << "*******************************************************************************************************"
500  << std::endl;
501  } else {
503  if (rNumberOfEvents < NbOfReqEvts) {
504  std::cout << "*TEcnaWrite::NumberOfEventsAnalysis()> *** INFO *** Number of events found in data = "
505  << rNumberOfEvents << ": less than number of requested events ( = " << NbOfReqEvts << ")"
506  << std::endl;
507  }
508  }
509  }
510  return rNumberOfEvents;
511 }
Int_t MaxCrysInSM()
Int_t MaxCrysEcnaInDee()
TEcnaParEcal * fEcal
Definition: TEcnaWrite.h:52
TString fRootFileName
Definition: TEcnaWrite.h:139
Int_t fCodePrintAllComments
Definition: TEcnaWrite.h:50
Int_t fFlagPrint
Definition: TEcnaWrite.h:49
Int_t PlusMinusSMNumber(const Int_t &)
TEcnaNumbering * fEcalNumbering
Definition: TEcnaWrite.h:55
Int_t EmptyChannelsInDeeMatrixIncompleteSCIncluded()

◆ RegisterFileParameters() [1/2]

void TEcnaWrite::RegisterFileParameters ( const TString &  ArgAnaType,
const Int_t &  ArgNbOfSamples,
const Int_t &  ArgRunNumber,
const Int_t &  ArgFirstReqEvtNumber,
const Int_t &  ArgLastReqEvtNumber,
const Int_t &  ArgReqNbOfEvts,
const Int_t &  ArgStexNumber,
const TString &  ArgStartDate,
const TString &  ArgStopDate,
const time_t  ArgStartTime,
const time_t  ArgStopTime 
)

Definition at line 597 of file TEcnaWrite.cc.

References fAnaType, fFirstReqEvtNumber, fLastReqEvtNumber, fNbOfSamples, fReqNbOfEvts, fRunNumber, fStartDate, fStartTime, fStexNumber, fStopDate, and fStopTime.

Referenced by TEcnaRead::FileParameters(), TEcnaRun::GetReadyToCompute(), TEcnaHistos::WriteHistoAscii(), TEcnaHistos::WriteMatrixAscii(), and TEcnaRun::WriteNewRootFile().

607  {
608  fAnaType = ArgAnaType;
609  fNbOfSamples = ArgNbOfSamples;
610  fRunNumber = ArgRunNumber;
611  fFirstReqEvtNumber = ArgFirstReqEvtNumber;
612  fLastReqEvtNumber = ArgLastReqEvtNumber;
613  fReqNbOfEvts = ArgReqNbOfEvts;
614  fStexNumber = ArgStexNumber;
615  fStartDate = ArgStartDate;
616 
617  fStopDate = ArgStopDate;
618  fStartTime = ArgStartTime;
619  fStopTime = ArgStopTime;
620 }
TString fAnaType
Definition: TEcnaWrite.h:124
Int_t fStexNumber
Definition: TEcnaWrite.h:130
Int_t fRunNumber
Definition: TEcnaWrite.h:126
Int_t fNbOfSamples
Definition: TEcnaWrite.h:125
TString fStopDate
Definition: TEcnaWrite.h:135
Int_t fFirstReqEvtNumber
Definition: TEcnaWrite.h:127
time_t fStopTime
Definition: TEcnaWrite.h:136
Int_t fLastReqEvtNumber
Definition: TEcnaWrite.h:128
TString fStartDate
Definition: TEcnaWrite.h:135
Int_t fReqNbOfEvts
Definition: TEcnaWrite.h:129
time_t fStartTime
Definition: TEcnaWrite.h:136

◆ RegisterFileParameters() [2/2]

void TEcnaWrite::RegisterFileParameters ( const TString &  ArgAnaType,
const Int_t &  ArgNbOfSamples,
const Int_t &  ArgRunNumber,
const Int_t &  ArgFirstReqEvtNumber,
const Int_t &  ArgLastReqEvtNumber,
const Int_t &  ArgReqNbOfEvts,
const Int_t &  ArgStexNumber 
)

Definition at line 581 of file TEcnaWrite.cc.

References fAnaType, fFirstReqEvtNumber, fLastReqEvtNumber, fNbOfSamples, fReqNbOfEvts, fRunNumber, and fStexNumber.

587  {
588  fAnaType = ArgAnaType;
589  fNbOfSamples = ArgNbOfSamples;
590  fRunNumber = ArgRunNumber;
591  fFirstReqEvtNumber = ArgFirstReqEvtNumber;
592  fLastReqEvtNumber = ArgLastReqEvtNumber;
593  fReqNbOfEvts = ArgReqNbOfEvts;
594  fStexNumber = ArgStexNumber;
595 }
TString fAnaType
Definition: TEcnaWrite.h:124
Int_t fStexNumber
Definition: TEcnaWrite.h:130
Int_t fRunNumber
Definition: TEcnaWrite.h:126
Int_t fNbOfSamples
Definition: TEcnaWrite.h:125
Int_t fFirstReqEvtNumber
Definition: TEcnaWrite.h:127
Int_t fLastReqEvtNumber
Definition: TEcnaWrite.h:128
Int_t fReqNbOfEvts
Definition: TEcnaWrite.h:129

◆ SetEcalSubDetector() [1/2]

void TEcnaWrite::SetEcalSubDetector ( const TString &  SubDet)

Definition at line 208 of file TEcnaWrite.cc.

References fEcal, fFlagSubDet, fgMaxCar, fNbChanByLine, fNbSampByLine, fSectChanSizeX, fSectChanSizeY, fSectSampSizeX, fSectSampSizeY, TEcnaParEcal::GetEcalSubDetector(), TEcnaParEcal::MaxCrysHocoInStin(), TEcnaParEcal::MaxCrysVecoInStin(), and TEcnaParEcal::MaxSampADC().

Referenced by TEcnaWrite().

208  {
209  // Set Subdetector (EB or EE)
210 
211  Int_t MaxCar = fgMaxCar;
212  fFlagSubDet.Resize(MaxCar);
214 
215  //........................................................................
216  //
217  // (for ASCII files writing methods only) ...
218  //
219  // DEFINITION OF THE SECTOR SIZES
220  // FOR THE CORRELATION AND COVARIANCE MATRICES DISPLAY
221  //
222  // MUST BE A DIVISOR OF THE TOTAL NUMBER.
223  // ======================================
224  //
225  // Examples:
226  //
227  // (1) 25 channels => size = 25 or 5 (divisors of 25)
228  //
229  // 25 => matrix = 1 x 1 sector of size (25 x 25)
230  // = (1 x 1) x (25 x 25) = 1 x 625 = 625
231  // 5 => matrix = 5 x 5 sectors of size (5 x 5)
232  // = (5 x 5) x ( 5 x 5) = 25 x 25 = 625
233  //
234  // (2) 10 samples => size = 10, 5 or 2 (divisors of 10)
235  //
236  // 10 => matrix = 1 X 1 sectors of size (10 x 10)
237  // = (1 x 1) x (10 x 10) = 1 x 100 = 100
238  // 5 => matrix = 2 x 2 sectors of size (5 x 5)
239  // = (2 x 2) x ( 5 x 5) = 4 x 25 = 100
240  // 2 => matrix = 5 x 5 sectors of size (2 x 2)
241  // = (5 x 5) x ( 2 x 2) = 25 x 4 = 100
242  //
243  //........................................................................
248 
249  //........................................................................
250  //
251  // DEFINITION OF THE NUMBER OF VALUES BY LINE
252  // for the Expectation Values, Variances and.
253  // Event distributions by (channel,sample)
254  //
255  // MUST BE A DIVISOR OF THE TOTAL NUMBER.
256  // ======================================
257  //
258  // Examples:
259  // 1) For expectation values and variances:
260  //
261  // 25 channels => size = 5
262  // => sample sector = 5 lines of 5 values
263  // = 5 x 5 = 25 values
264  //
265  // 10 samples => size = 10
266  // => channel sector = 1 lines of 10 values
267  // = 1 x 10 = 10 values
268  //
269  // 2) For event distributions:
270  //
271  // 100 bins => size = 10
272  // => sample sector = 10 lines of 10 values
273  // = 10 x 10 = 100 values
274  //
275  //........................................................................
278 } //---------- (end of SetEcalSubDetector) ------------------
Int_t fSectSampSizeY
Definition: TEcnaWrite.h:95
Int_t fgMaxCar
Definition: TEcnaWrite.h:41
Int_t MaxCrysVecoInStin()
Int_t fNbSampByLine
Definition: TEcnaWrite.h:98
TString fFlagSubDet
Definition: TEcnaWrite.h:53
Int_t fNbChanByLine
Definition: TEcnaWrite.h:97
TEcnaParEcal * fEcal
Definition: TEcnaWrite.h:52
Int_t fSectChanSizeX
Definition: TEcnaWrite.h:94
Int_t MaxCrysHocoInStin()
Int_t MaxSampADC()
Int_t fSectChanSizeY
Definition: TEcnaWrite.h:94
Int_t fSectSampSizeX
Definition: TEcnaWrite.h:95
TString GetEcalSubDetector()

◆ SetEcalSubDetector() [2/2]

void TEcnaWrite::SetEcalSubDetector ( const TString &  SubDet,
const TEcnaParEcal pEcal,
const TEcnaNumbering pEcalNumbering 
)

Definition at line 280 of file TEcnaWrite.cc.

References fCnew, fEcal, fEcalNumbering, fFlagSubDet, fgMaxCar, fNbChanByLine, fNbSampByLine, fSectChanSizeX, fSectChanSizeY, fSectSampSizeX, fSectSampSizeY, TEcnaParEcal::GetEcalSubDetector(), TEcnaParEcal::MaxCrysHocoInStin(), TEcnaParEcal::MaxCrysVecoInStin(), TEcnaParEcal::MaxSampADC(), and ntupleEnum::SubDet.

282  {
283  // Set Subdetector (EB or EE)
284 
285  fEcal = nullptr;
286  if (pEcal == nullptr) {
287  fEcal = new TEcnaParEcal(SubDet.Data());
288  fCnew++;
289  } else {
290  fEcal = (TEcnaParEcal*)pEcal;
291  }
292 
293  Int_t MaxCar = fgMaxCar;
294  fFlagSubDet.Resize(MaxCar);
296 
297  fEcalNumbering = nullptr;
298  if (pEcalNumbering == nullptr) {
299  fEcalNumbering = new TEcnaNumbering(SubDet.Data(), fEcal);
300  fCnew++;
301  } else {
302  fEcalNumbering = (TEcnaNumbering*)pEcalNumbering;
303  }
304 
305  //........................................................................
306  //
307  // (for ASCII files writing methods only) ...
308  //
309  // DEFINITION OF THE SECTOR SIZES
310  // FOR THE CORRELATION AND COVARIANCE MATRICES DISPLAY
311  //
312  // MUST BE A DIVISOR OF THE TOTAL NUMBER.
313  // ======================================
314  //
315  // Examples:
316  //
317  // (1) 25 channels => size = 25 or 5 (divisors of 25)
318  //
319  // 25 => matrix = 1 x 1 sector of size (25 x 25)
320  // = (1 x 1) x (25 x 25) = 1 x 625 = 625
321  // 5 => matrix = 5 x 5 sectors of size (5 x 5)
322  // = (5 x 5) x ( 5 x 5) = 25 x 25 = 625
323  //
324  // (2) 10 samples => size = 10, 5 or 2 (divisors of 10)
325  //
326  // 10 => matrix = 1 X 1 sectors of size (10 x 10)
327  // = (1 x 1) x (10 x 10) = 1 x 100 = 100
328  // 5 => matrix = 2 x 2 sectors of size (5 x 5)
329  // = (2 x 2) x ( 5 x 5) = 4 x 25 = 100
330  // 2 => matrix = 5 x 5 sectors of size (2 x 2)
331  // = (5 x 5) x ( 2 x 2) = 25 x 4 = 100
332  //
333  //........................................................................
338 
339  //........................................................................
340  //
341  // DEFINITION OF THE NUMBER OF VALUES BY LINE
342  // for the Expectation Values, Variances and.
343  // Event distributions by (channel,sample)
344  //
345  // MUST BE A DIVISOR OF THE TOTAL NUMBER.
346  // ======================================
347  //
348  // Examples:
349  // 1) For expectation values and variances:
350  //
351  // 25 channels => size = 5
352  // => sample sector = 5 lines of 5 values
353  // = 5 x 5 = 25 values
354  //
355  // 10 samples => size = 10
356  // => channel sector = 1 lines of 10 values
357  // = 1 x 10 = 10 values
358  //
359  // 2) For event distributions:
360  //
361  // 100 bins => size = 10
362  // => sample sector = 10 lines of 10 values
363  // = 10 x 10 = 100 values
364  //
365  //........................................................................
368 } //---------- (end of SetEcalSubDetector) ------------------
Int_t fSectSampSizeY
Definition: TEcnaWrite.h:95
Int_t fgMaxCar
Definition: TEcnaWrite.h:41
Int_t MaxCrysVecoInStin()
Int_t fNbSampByLine
Definition: TEcnaWrite.h:98
TString fFlagSubDet
Definition: TEcnaWrite.h:53
Int_t fNbChanByLine
Definition: TEcnaWrite.h:97
TEcnaParEcal * fEcal
Definition: TEcnaWrite.h:52
Int_t fCnew
Definition: TEcnaWrite.h:38
Int_t fSectChanSizeX
Definition: TEcnaWrite.h:94
Int_t MaxCrysHocoInStin()
Int_t MaxSampADC()
Int_t fSectChanSizeY
Definition: TEcnaWrite.h:94
Int_t fSectSampSizeX
Definition: TEcnaWrite.h:95
TString GetEcalSubDetector()
TEcnaNumbering * fEcalNumbering
Definition: TEcnaWrite.h:55

◆ WriteAsciiCorrelationsBetweenSamples()

void TEcnaWrite::WriteAsciiCorrelationsBetweenSamples ( const Int_t &  user_StexStin,
const Int_t &  user_StinEcha,
const Int_t &  MatSize,
const TMatrixD &  read_matrix 
)

Definition at line 1759 of file TEcnaWrite.cc.

References fAsciiFileWriteHeader(), fCodeCorCss, fEcalNumbering, fFlagSubDet, fMakeResultsFileName(), fSectSampSizeX, fSectSampSizeY, fStexNumber, fStexStinUser, fStinEchaUser, fT2dWriteAscii(), and TEcnaNumbering::GetDeeSCConsFrom1DeeSCEcna().

Referenced by TEcnaHistos::WriteMatrixAscii().

1762  {
1763  //Writing of the correlations between samples for a given StexEcha in an ASCII file
1764 
1765  if (fFlagSubDet == "EB") {
1766  fStexStinUser = user_StexStin;
1767  }
1768  if (fFlagSubDet == "EE") {
1770  }
1771 
1772  if (fFlagSubDet == "EB") {
1773  fStinEchaUser = user_StinEcha;
1774  }
1775  if (fFlagSubDet == "EE") {
1776  fStinEchaUser = user_StinEcha + 1;
1777  }
1778 
1779  Int_t i_code = fCodeCorCss; // code for correlations between samples
1780  fMakeResultsFileName(i_code);
1781  fAsciiFileWriteHeader(i_code);
1782 
1783  Int_t i_pasx = fSectSampSizeX;
1784  Int_t i_pasy = fSectSampSizeY;
1785 
1786  fT2dWriteAscii(i_code, i_pasx, i_pasy, MatSize, read_matrix);
1787 }
void fAsciiFileWriteHeader(const Int_t &)
Definition: TEcnaWrite.cc:1347
Int_t fSectSampSizeY
Definition: TEcnaWrite.h:95
Int_t fStinEchaUser
Definition: TEcnaWrite.h:101
TString fFlagSubDet
Definition: TEcnaWrite.h:53
Int_t fStexNumber
Definition: TEcnaWrite.h:130
Int_t fStexStinUser
Definition: TEcnaWrite.h:100
void fT2dWriteAscii(const Int_t &, const Int_t &, const Int_t &, const Int_t &, const TMatrixD &)
Definition: TEcnaWrite.cc:1798
Int_t GetDeeSCConsFrom1DeeSCEcna(const Int_t &, const Int_t &)
Int_t fCodeCorCss
Definition: TEcnaWrite.h:74
Int_t fSectSampSizeX
Definition: TEcnaWrite.h:95
void fMakeResultsFileName()
Definition: TEcnaWrite.cc:631
TEcnaNumbering * fEcalNumbering
Definition: TEcnaWrite.h:55

◆ WriteAsciiCovariancesBetweenSamples()

void TEcnaWrite::WriteAsciiCovariancesBetweenSamples ( const Int_t &  user_StexStin,
const Int_t &  user_StinEcha,
const Int_t &  MatSize,
const TMatrixD &  read_matrix 
)

Definition at line 1723 of file TEcnaWrite.cc.

References fAsciiFileWriteHeader(), fCodeCovCss, fEcalNumbering, fFlagSubDet, fMakeResultsFileName(), fSectSampSizeX, fSectSampSizeY, fStexNumber, fStexStinUser, fStinEchaUser, fT2dWriteAscii(), and TEcnaNumbering::GetDeeSCConsFrom1DeeSCEcna().

Referenced by TEcnaHistos::WriteMatrixAscii().

1726  {
1727  //Writing of the covariances between samples for a given StexEcha in an ASCII file
1728 
1729  if (fFlagSubDet == "EB") {
1730  fStexStinUser = user_StexStin;
1731  }
1732  if (fFlagSubDet == "EE") {
1734  }
1735 
1736  if (fFlagSubDet == "EB") {
1737  fStinEchaUser = user_StinEcha;
1738  }
1739  if (fFlagSubDet == "EE") {
1740  fStinEchaUser = user_StinEcha + 1;
1741  }
1742 
1743  Int_t i_code = fCodeCovCss; // code for covariances between samples
1744  fMakeResultsFileName(i_code);
1745  fAsciiFileWriteHeader(i_code);
1746 
1747  Int_t i_pasx = fSectSampSizeX;
1748  Int_t i_pasy = fSectSampSizeY;
1749 
1750  fT2dWriteAscii(i_code, i_pasx, i_pasy, MatSize, read_matrix);
1751 }
void fAsciiFileWriteHeader(const Int_t &)
Definition: TEcnaWrite.cc:1347
Int_t fSectSampSizeY
Definition: TEcnaWrite.h:95
Int_t fStinEchaUser
Definition: TEcnaWrite.h:101
TString fFlagSubDet
Definition: TEcnaWrite.h:53
Int_t fStexNumber
Definition: TEcnaWrite.h:130
Int_t fStexStinUser
Definition: TEcnaWrite.h:100
void fT2dWriteAscii(const Int_t &, const Int_t &, const Int_t &, const Int_t &, const TMatrixD &)
Definition: TEcnaWrite.cc:1798
Int_t GetDeeSCConsFrom1DeeSCEcna(const Int_t &, const Int_t &)
Int_t fCodeCovCss
Definition: TEcnaWrite.h:73
Int_t fSectSampSizeX
Definition: TEcnaWrite.h:95
void fMakeResultsFileName()
Definition: TEcnaWrite.cc:631
TEcnaNumbering * fEcalNumbering
Definition: TEcnaWrite.h:55

◆ WriteAsciiHisto()

void TEcnaWrite::WriteAsciiHisto ( const TString &  HistoCode,
const Int_t &  HisSize,
const TVectorD &  read_histo 
)

Definition at line 1485 of file TEcnaWrite.cc.

References gather_cfg::cout, TauDecayModes::dec, fAsciiFileName, fAsciiFileWriteHeader(), fCodeHfn, fCodeLfn, fCodeMeanCorss, fCodeNbOfEvts, fCodePed, fCodeSigCorss, fCodeTno, fEcalNumbering, fFcout_f, fFlagSubDet, fgMaxCar, alignBH_cfg::fixed, fMakeResultsFileName(), fReqNbOfEvts, fStexNumber, TEcnaNumbering::Get0TowEchaFrom0SMEcha(), TEcnaNumbering::Get1DeeSCEcnaFrom0DeeEcha(), TEcnaNumbering::Get1SCEchaFrom0DeeEcha(), TEcnaNumbering::Get1SMCrysFrom1SMTowAnd0TowEcha(), TEcnaNumbering::Get1SMTowFrom0SMEcha(), TEcnaNumbering::GetDeeSCConsFrom1DeeSCEcna(), TEcnaNumbering::GetDSFrom1DeeSCEcna(), TEcnaNumbering::GetDSSCFrom1DeeSCEcna(), TEcnaNumbering::GetEta(), TEcnaNumbering::GetIXCrysInDee(), TEcnaNumbering::GetJYCrysInDee(), TEcnaNumbering::GetPhiInSM(), testProducerWithPsetDescEmpty_cfi::ivalue, and relativeConstraints::value.

Referenced by TEcnaHistos::WriteHistoAscii().

1485  {
1486  //Write histo with correspondance CNA-channel <-> xtal number in SM or Dee
1487 
1488  // BuildCrysTable() is called in the method Init() which is called by the constructor
1489 
1490  Int_t i_code = fCodeNbOfEvts;
1491 
1492  //--------------------------------------------------------------------------------
1493  if (HistoCode == "D_NOE_ChNb") {
1494  i_code = fCodeNbOfEvts;
1495  }
1496  if (HistoCode == "D_Ped_ChNb") {
1497  i_code = fCodePed;
1498  }
1499  if (HistoCode == "D_TNo_ChNb") {
1500  i_code = fCodeTno;
1501  }
1502  if (HistoCode == "D_LFN_ChNb") {
1503  i_code = fCodeLfn;
1504  }
1505  if (HistoCode == "D_HFN_ChNb") {
1506  i_code = fCodeHfn;
1507  }
1508  if (HistoCode == "D_MCs_ChNb") {
1509  i_code = fCodeMeanCorss;
1510  }
1511  if (HistoCode == "D_SCs_ChNb") {
1512  i_code = fCodeSigCorss;
1513  }
1514 
1515  fMakeResultsFileName(i_code); // => Making of the results .ascii file name
1516  fAsciiFileWriteHeader(i_code); // => Open of the file associated with stream fFcout_f
1517 
1518  //..................................... format numerical values
1519  fFcout_f << std::setiosflags(std::ios::showpoint | std::ios::uppercase);
1520  fFcout_f << std::setprecision(3) << std::setw(6);
1521  fFcout_f.setf(std::ios::dec, std::ios::basefield);
1522  fFcout_f.setf(std::ios::fixed, std::ios::floatfield);
1523  fFcout_f.setf(std::ios::left, std::ios::adjustfield);
1524  fFcout_f.setf(std::ios::right, std::ios::adjustfield);
1525 
1526  std::cout << std::setiosflags(std::ios::showpoint | std::ios::uppercase);
1527  std::cout << std::setprecision(3) << std::setw(6);
1528  std::cout.setf(std::ios::dec, std::ios::basefield);
1529  std::cout.setf(std::ios::fixed, std::ios::floatfield);
1530  std::cout.setf(std::ios::left, std::ios::adjustfield);
1531  std::cout.setf(std::ios::right, std::ios::adjustfield);
1532 
1533  //........................................................ WriteAsciiHisto
1534  TString aStexName;
1535  Int_t MaxCar = fgMaxCar;
1536  aStexName.Resize(MaxCar);
1537  aStexName = "SM or Dee?";
1538 
1539  TString aStinName;
1540  MaxCar = fgMaxCar;
1541  aStinName.Resize(MaxCar);
1542  aStinName = "Tower or SC?";
1543 
1544  TString aHoco;
1545  MaxCar = fgMaxCar;
1546  aHoco.Resize(MaxCar);
1547  aHoco = "Eta or IX?";
1548 
1549  TString aVeco;
1550  MaxCar = fgMaxCar;
1551  aVeco.Resize(MaxCar);
1552  aVeco = "Phi or IY?";
1553 
1554  TString aSpecifa;
1555  MaxCar = fgMaxCar;
1556  aSpecifa.Resize(MaxCar);
1557  aSpecifa = " ";
1558 
1559  TString aSpecifc;
1560  MaxCar = fgMaxCar;
1561  aSpecifc.Resize(MaxCar);
1562  aSpecifc = " ";
1563 
1564  TString aSpecifd;
1565  MaxCar = fgMaxCar;
1566  aSpecifd.Resize(MaxCar);
1567  aSpecifd = " ";
1568 
1569  TString aSpecife;
1570  MaxCar = fgMaxCar;
1571  aSpecife.Resize(MaxCar);
1572  aSpecife = " ";
1573 
1574  TString aSpecif1;
1575  MaxCar = fgMaxCar;
1576  aSpecif1.Resize(MaxCar);
1577  aSpecif1 = " ";
1578 
1579  TString aSpecif2;
1580  MaxCar = fgMaxCar;
1581  aSpecif2.Resize(MaxCar);
1582  aSpecif2 = " ";
1583 
1584  if (fFlagSubDet == "EB") {
1585  aStexName = "SM ";
1586  aStinName = "tower";
1587  aSpecifa = " channel# ";
1588  aHoco = " Eta ";
1589  aVeco = " Phi ";
1590  aSpecifc = " channel# ";
1591  aSpecifd = " crystal# ";
1592  aSpecife = "SM ";
1593  }
1594  if (fFlagSubDet == "EE") {
1595  aStexName = "Dee ";
1596  aStinName = " SC ";
1597  aSpecifa = " Sector# ";
1598  aHoco = " IX ";
1599  aVeco = " IY ";
1600  aSpecifc = " crystal# ";
1601  aSpecifd = " SC # ";
1602  aSpecife = "Sector";
1603  }
1604 
1605  //.............................................................. WriteAsciiHisto
1606  for (Int_t i0StexEcha = 0; i0StexEcha < HisSize; i0StexEcha++) {
1607  Int_t n1StexStin = 0;
1608  Int_t StexStinEcna = 0;
1609  Int_t i0StinEcha = 0;
1610  Int_t n1StinEcha = 0;
1611  Int_t n1StexCrys = 0;
1612  Int_t n1DataSector = 0;
1613  Int_t n1SCinDS = 0;
1614 
1615  if (fFlagSubDet == "EB") {
1616  n1StexStin = fEcalNumbering->Get1SMTowFrom0SMEcha(i0StexEcha);
1617  StexStinEcna = n1StexStin;
1618  i0StinEcha = fEcalNumbering->Get0TowEchaFrom0SMEcha(i0StexEcha);
1619  n1StexCrys = fEcalNumbering->Get1SMCrysFrom1SMTowAnd0TowEcha(n1StexStin, i0StinEcha);
1620  }
1621  if (fFlagSubDet == "EE") {
1622  StexStinEcna = fEcalNumbering->Get1DeeSCEcnaFrom0DeeEcha(i0StexEcha);
1623  n1DataSector = fEcalNumbering->GetDSFrom1DeeSCEcna(fStexNumber, StexStinEcna);
1624  n1SCinDS = fEcalNumbering->GetDSSCFrom1DeeSCEcna(fStexNumber, StexStinEcna);
1625  n1StexStin = fEcalNumbering->GetDeeSCConsFrom1DeeSCEcna(fStexNumber, StexStinEcna);
1626  n1StinEcha = fEcalNumbering->Get1SCEchaFrom0DeeEcha(i0StexEcha);
1627  }
1628 
1629  if (n1StexStin > 0) {
1630  if ((fFlagSubDet == "EB" && i0StinEcha == 0) || (fFlagSubDet == "EE" && n1StinEcha == 1)) {
1631  if (HistoCode == "D_NOE_ChNb") {
1632  aSpecif1 = "Number of";
1633  aSpecif2 = " events (requested)";
1634  }
1635  if (HistoCode == "D_Ped_ChNb") {
1636  aSpecif1 = "Pedestals";
1637  aSpecif2 = " ";
1638  }
1639  if (HistoCode == "D_TNo_ChNb") {
1640  aSpecif1 = " Total ";
1641  aSpecif2 = " noise ";
1642  }
1643  if (HistoCode == "D_MCs_ChNb") {
1644  aSpecif1 = " Mean ";
1645  aSpecif2 = " cor(s,s) ";
1646  }
1647  if (HistoCode == "D_LFN_ChNb") {
1648  aSpecif1 = " Low Fq";
1649  aSpecif2 = " noise ";
1650  }
1651  if (HistoCode == "D_HFN_ChNb") {
1652  aSpecif1 = " High Fq";
1653  aSpecif2 = " noise ";
1654  }
1655  if (HistoCode == "D_SCs_ChNb") {
1656  aSpecif1 = " Sigma of";
1657  aSpecif2 = " cor(s,s) ";
1658  }
1659 
1660  fFcout_f << std::endl;
1661 
1662  fFcout_f << aSpecifa.Data() << " " << aStinName.Data() << "# " << aSpecifc.Data() << aSpecifd.Data()
1663  << aHoco.Data() << aVeco.Data() << aSpecif1.Data() << std::endl;
1664 
1665  fFcout_f << " in " << aStexName.Data() << " in " << aStexName.Data() << " in " << aStinName.Data() << " in "
1666  << aSpecife.Data() << " in " << aStexName.Data() << " in " << aStexName.Data() << aSpecif2.Data()
1667  << std::endl
1668  << std::endl;
1669  }
1670 
1671  Double_t value = read_histo(i0StexEcha);
1672 
1673  if (fFlagSubDet == "EB") {
1674  fFcout_f << std::setw(7) << i0StexEcha << std::setw(8) << n1StexStin << std::setw(11)
1675  << i0StinEcha // (Electronic channel number in tower)
1676  << std::setw(10) << n1StexCrys << std::setw(10)
1677  << (Int_t)fEcalNumbering->GetEta(fStexNumber, StexStinEcna, i0StinEcha) << std::setw(10)
1678  << (Int_t)fEcalNumbering->GetPhiInSM(fStexNumber, StexStinEcna, i0StinEcha);
1679  }
1680  if (fFlagSubDet == "EE") {
1681  Int_t n1StinEcha_m = n1StinEcha - 1;
1682  fFcout_f << std::setw(7) << n1DataSector << std::setw(8) << n1StexStin << std::setw(11)
1683  << n1StinEcha // (Xtal number for construction in SC)
1684  << std::setw(10) << n1SCinDS << std::setw(10)
1685  << fEcalNumbering->GetIXCrysInDee(fStexNumber, StexStinEcna, n1StinEcha_m) << std::setw(10)
1686  << fEcalNumbering->GetJYCrysInDee(fStexNumber, StexStinEcna, n1StinEcha_m);
1687  }
1688 
1689  if (HistoCode == "D_NOE_ChNb") {
1690  Int_t ivalue = (Int_t)value;
1691  fFcout_f << std::setw(13) << ivalue;
1692  fFcout_f << std::setw(4) << "(" << std::setw(6) << fReqNbOfEvts << ")";
1693  } else {
1694  fFcout_f << std::setw(13) << value;
1695  }
1696 
1697  fFcout_f << std::endl;
1698  }
1699  } // end of loop: for (Int_t i0StexEcha=0; i0StexEcha<HisSize; i0StexEcha++)
1700 
1701  fFcout_f.close();
1702 
1703  // if(fFlagPrint != fCodePrintNoComment)
1704  // {
1705  std::cout << "*TEcnaWrite::WriteAsciiHisto(...)> INFO: "
1706  << "histo has been written in file: " << std::endl
1707  << " " << fAsciiFileName.Data() << std::endl;
1708  // }
1709 } // end of TEcnaWrite::WriteAsciiHisto
void fAsciiFileWriteHeader(const Int_t &)
Definition: TEcnaWrite.cc:1347
Int_t fCodeHfn
Definition: TEcnaWrite.h:69
Int_t fgMaxCar
Definition: TEcnaWrite.h:41
Int_t Get1DeeSCEcnaFrom0DeeEcha(const Int_t &)
TString fFlagSubDet
Definition: TEcnaWrite.h:53
Int_t Get1SCEchaFrom0DeeEcha(const Int_t &)
Int_t fStexNumber
Definition: TEcnaWrite.h:130
Int_t Get0TowEchaFrom0SMEcha(const Int_t &)
Int_t GetJYCrysInDee(const Int_t &, const Int_t &, const Int_t &)
Int_t fCodePed
Definition: TEcnaWrite.h:66
Int_t fCodeSigCorss
Definition: TEcnaWrite.h:71
Int_t Get1SMTowFrom0SMEcha(const Int_t &)
Int_t GetDSSCFrom1DeeSCEcna(const Int_t &, const Int_t &, const Int_t &)
Definition: value.py:1
Int_t GetDSFrom1DeeSCEcna(const Int_t &, const Int_t &)
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 &)
std::ofstream fFcout_f
Definition: TEcnaWrite.h:59
Int_t fCodeMeanCorss
Definition: TEcnaWrite.h:70
Double_t GetPhiInSM(const Int_t &, const Int_t &, const Int_t &)
Int_t fCodeTno
Definition: TEcnaWrite.h:67
Int_t fCodeLfn
Definition: TEcnaWrite.h:68
Int_t GetIXCrysInDee(const Int_t &, const Int_t &, const Int_t &)
TString fAsciiFileName
Definition: TEcnaWrite.h:141
Int_t fCodeNbOfEvts
Definition: TEcnaWrite.h:65
void fMakeResultsFileName()
Definition: TEcnaWrite.cc:631
Int_t fReqNbOfEvts
Definition: TEcnaWrite.h:129
TEcnaNumbering * fEcalNumbering
Definition: TEcnaWrite.h:55

Member Data Documentation

◆ fAnaType

TString TEcnaWrite::fAnaType

◆ fAsciiFileName

TString TEcnaWrite::fAsciiFileName

◆ fAsciiFileNameShort

TString TEcnaWrite::fAsciiFileNameShort

Definition at line 142 of file TEcnaWrite.h.

Referenced by fMakeResultsFileName().

◆ fCdelete

Int_t TEcnaWrite::fCdelete
private

Definition at line 38 of file TEcnaWrite.h.

Referenced by fMakeResultsFileName().

◆ fCdeleteRoot

Int_t TEcnaWrite::fCdeleteRoot
private

Definition at line 39 of file TEcnaWrite.h.

◆ fCnaCommand

Int_t TEcnaWrite::fCnaCommand
private

Definition at line 45 of file TEcnaWrite.h.

◆ fCnaError

Int_t TEcnaWrite::fCnaError
private

Definition at line 45 of file TEcnaWrite.h.

◆ fCnaParCout

TEcnaParCout* TEcnaWrite::fCnaParCout
private

Definition at line 57 of file TEcnaWrite.h.

Referenced by TEcnaWrite().

◆ fCnaParPaths

TEcnaParPaths* TEcnaWrite::fCnaParPaths
private

Definition at line 56 of file TEcnaWrite.h.

Referenced by fMakeResultsFileName(), and TEcnaWrite().

◆ fCnew

Int_t TEcnaWrite::fCnew
private

Definition at line 38 of file TEcnaWrite.h.

Referenced by fMakeResultsFileName(), fT2dWriteAscii(), and SetEcalSubDetector().

◆ fCnewRoot

Int_t TEcnaWrite::fCnewRoot
private

Definition at line 39 of file TEcnaWrite.h.

◆ fCodeAdcEvt

Int_t TEcnaWrite::fCodeAdcEvt
private

Definition at line 76 of file TEcnaWrite.h.

◆ fCodeAvMeanCorss

Int_t TEcnaWrite::fCodeAvMeanCorss
private

Definition at line 82 of file TEcnaWrite.h.

Referenced by fMakeResultsFileName(), and fT2dWriteAscii().

◆ fCodeAvPed

Int_t TEcnaWrite::fCodeAvPed
private

Definition at line 80 of file TEcnaWrite.h.

Referenced by fMakeResultsFileName().

◆ fCodeAvSigCorss

Int_t TEcnaWrite::fCodeAvSigCorss
private

Definition at line 83 of file TEcnaWrite.h.

Referenced by fMakeResultsFileName(), and fT2dWriteAscii().

◆ fCodeAvTno

Int_t TEcnaWrite::fCodeAvTno
private

Definition at line 81 of file TEcnaWrite.h.

Referenced by fMakeResultsFileName().

◆ fCodeCorCss

Int_t TEcnaWrite::fCodeCorCss
private

◆ fCodeCovCss

Int_t TEcnaWrite::fCodeCovCss
private

◆ fCodeHeaderAscii

Int_t TEcnaWrite::fCodeHeaderAscii
private

Definition at line 62 of file TEcnaWrite.h.

Referenced by fAsciiFileWriteHeader(), fMakeResultsFileName(), and Init().

◆ fCodeHFccMoStins

Int_t TEcnaWrite::fCodeHFccMoStins
private

Definition at line 91 of file TEcnaWrite.h.

◆ fCodeHfCor

Int_t TEcnaWrite::fCodeHfCor
private

Definition at line 88 of file TEcnaWrite.h.

Referenced by fT2dWriteAscii().

◆ fCodeHfCov

Int_t TEcnaWrite::fCodeHfCov
private

Definition at line 87 of file TEcnaWrite.h.

Referenced by fT2dWriteAscii().

◆ fCodeHfn

Int_t TEcnaWrite::fCodeHfn
private

Definition at line 69 of file TEcnaWrite.h.

Referenced by fMakeResultsFileName(), Init(), and WriteAsciiHisto().

◆ fCodeLFccMoStins

Int_t TEcnaWrite::fCodeLFccMoStins
private

Definition at line 90 of file TEcnaWrite.h.

◆ fCodeLfCor

Int_t TEcnaWrite::fCodeLfCor
private

Definition at line 86 of file TEcnaWrite.h.

Referenced by fMakeResultsFileName(), and fT2dWriteAscii().

◆ fCodeLfCov

Int_t TEcnaWrite::fCodeLfCov
private

Definition at line 85 of file TEcnaWrite.h.

Referenced by fMakeResultsFileName(), and fT2dWriteAscii().

◆ fCodeLfn

Int_t TEcnaWrite::fCodeLfn
private

Definition at line 68 of file TEcnaWrite.h.

Referenced by fMakeResultsFileName(), Init(), and WriteAsciiHisto().

◆ fCodeMeanCorss

Int_t TEcnaWrite::fCodeMeanCorss
private

Definition at line 70 of file TEcnaWrite.h.

Referenced by fMakeResultsFileName(), Init(), and WriteAsciiHisto().

◆ fCodeMSp

Int_t TEcnaWrite::fCodeMSp
private

Definition at line 77 of file TEcnaWrite.h.

Referenced by fMakeResultsFileName().

◆ fCodeNbOfEvts

Int_t TEcnaWrite::fCodeNbOfEvts
private

Definition at line 65 of file TEcnaWrite.h.

Referenced by fMakeResultsFileName(), Init(), and WriteAsciiHisto().

◆ fCodePed

Int_t TEcnaWrite::fCodePed
private

Definition at line 66 of file TEcnaWrite.h.

Referenced by fMakeResultsFileName(), Init(), and WriteAsciiHisto().

◆ fCodePrintAllComments

Int_t TEcnaWrite::fCodePrintAllComments
private

Definition at line 50 of file TEcnaWrite.h.

Referenced by NumberOfEventsAnalysis(), and TEcnaWrite().

◆ fCodePrintComments

Int_t TEcnaWrite::fCodePrintComments
private

Definition at line 50 of file TEcnaWrite.h.

◆ fCodePrintNoComment

Int_t TEcnaWrite::fCodePrintNoComment
private

Definition at line 50 of file TEcnaWrite.h.

Referenced by fT2dWriteAscii().

◆ fCodePrintWarnings

Int_t TEcnaWrite::fCodePrintWarnings
private

Definition at line 50 of file TEcnaWrite.h.

◆ fCodeRoot

Int_t TEcnaWrite::fCodeRoot
private

Definition at line 63 of file TEcnaWrite.h.

Referenced by fMakeResultsFileName(), and Init().

◆ fCodeSigCorss

Int_t TEcnaWrite::fCodeSigCorss
private

Definition at line 71 of file TEcnaWrite.h.

Referenced by fMakeResultsFileName(), Init(), and WriteAsciiHisto().

◆ fCodeSSp

Int_t TEcnaWrite::fCodeSSp
private

Definition at line 78 of file TEcnaWrite.h.

Referenced by fMakeResultsFileName().

◆ fCodeTno

Int_t TEcnaWrite::fCodeTno
private

Definition at line 67 of file TEcnaWrite.h.

Referenced by fMakeResultsFileName(), Init(), and WriteAsciiHisto().

◆ fEcal

TEcnaParEcal* TEcnaWrite::fEcal
private

◆ fEcalNumbering

TEcnaNumbering* TEcnaWrite::fEcalNumbering
private

◆ fFcout_f

std::ofstream TEcnaWrite::fFcout_f
private

Definition at line 59 of file TEcnaWrite.h.

Referenced by fAsciiFileWriteHeader(), fT2dWriteAscii(), and WriteAsciiHisto().

◆ fFirstReqEvtNumber

Int_t TEcnaWrite::fFirstReqEvtNumber

◆ fFlagPrint

Int_t TEcnaWrite::fFlagPrint
private

Definition at line 49 of file TEcnaWrite.h.

Referenced by fT2dWriteAscii(), and NumberOfEventsAnalysis().

◆ fFlagSubDet

TString TEcnaWrite::fFlagSubDet
private

◆ fgMaxCar

Int_t TEcnaWrite::fgMaxCar
private

Definition at line 41 of file TEcnaWrite.h.

Referenced by fMakeResultsFileName(), Init(), SetEcalSubDetector(), and WriteAsciiHisto().

◆ fjustap_1d_cc

Double_t* TEcnaWrite::fjustap_1d_cc
private

Definition at line 111 of file TEcnaWrite.h.

Referenced by fT2dWriteAscii(), and Init().

◆ fjustap_1d_ev

Double_t* TEcnaWrite::fjustap_1d_ev
private

Definition at line 105 of file TEcnaWrite.h.

Referenced by Init().

◆ fjustap_1d_ss

Double_t* TEcnaWrite::fjustap_1d_ss
private

Definition at line 114 of file TEcnaWrite.h.

Referenced by fT2dWriteAscii(), and Init().

◆ fjustap_1d_var

Double_t* TEcnaWrite::fjustap_1d_var
private

Definition at line 108 of file TEcnaWrite.h.

Referenced by Init().

◆ fjustap_2d_cc

Double_t** TEcnaWrite::fjustap_2d_cc
private

Definition at line 110 of file TEcnaWrite.h.

Referenced by fT2dWriteAscii(), and Init().

◆ fjustap_2d_ev

Double_t** TEcnaWrite::fjustap_2d_ev
private

Definition at line 104 of file TEcnaWrite.h.

Referenced by Init().

◆ fjustap_2d_ss

Double_t** TEcnaWrite::fjustap_2d_ss
private

Definition at line 113 of file TEcnaWrite.h.

Referenced by fT2dWriteAscii(), and Init().

◆ fjustap_2d_var

Double_t** TEcnaWrite::fjustap_2d_var
private

Definition at line 107 of file TEcnaWrite.h.

Referenced by Init().

◆ fLastReqEvtNumber

Int_t TEcnaWrite::fLastReqEvtNumber

◆ fNbChanByLine

Int_t TEcnaWrite::fNbChanByLine
private

Definition at line 97 of file TEcnaWrite.h.

Referenced by SetEcalSubDetector().

◆ fNbOfSamples

Int_t TEcnaWrite::fNbOfSamples

◆ fNbSampByLine

Int_t TEcnaWrite::fNbSampByLine
private

Definition at line 98 of file TEcnaWrite.h.

Referenced by SetEcalSubDetector().

◆ fPathForAsciiFiles

TString TEcnaWrite::fPathForAsciiFiles

Definition at line 134 of file TEcnaWrite.h.

◆ fReqNbOfEvts

Int_t TEcnaWrite::fReqNbOfEvts

◆ fRootFileName

TString TEcnaWrite::fRootFileName

Definition at line 139 of file TEcnaWrite.h.

Referenced by fMakeResultsFileName(), GetRootFileName(), and NumberOfEventsAnalysis().

◆ fRootFileNameShort

TString TEcnaWrite::fRootFileNameShort

◆ fRunNumber

Int_t TEcnaWrite::fRunNumber

◆ fSectChanSizeX

Int_t TEcnaWrite::fSectChanSizeX
private

Definition at line 94 of file TEcnaWrite.h.

Referenced by fT2dWriteAscii(), and SetEcalSubDetector().

◆ fSectChanSizeY

Int_t TEcnaWrite::fSectChanSizeY
private

Definition at line 94 of file TEcnaWrite.h.

Referenced by SetEcalSubDetector().

◆ fSectSampSizeX

Int_t TEcnaWrite::fSectSampSizeX
private

◆ fSectSampSizeY

Int_t TEcnaWrite::fSectSampSizeY
private

◆ fStartDate

TString TEcnaWrite::fStartDate

Definition at line 135 of file TEcnaWrite.h.

Referenced by fAsciiFileWriteHeader(), and RegisterFileParameters().

◆ fStartTime

time_t TEcnaWrite::fStartTime

Definition at line 136 of file TEcnaWrite.h.

Referenced by RegisterFileParameters().

◆ fStexName

TString TEcnaWrite::fStexName

Definition at line 131 of file TEcnaWrite.h.

Referenced by fMakeResultsFileName().

◆ fStexNumber

Int_t TEcnaWrite::fStexNumber

◆ fStexStinUser

Int_t TEcnaWrite::fStexStinUser
private

◆ fStinEchaUser

Int_t TEcnaWrite::fStinEchaUser
private

◆ fStinName

TString TEcnaWrite::fStinName

Definition at line 132 of file TEcnaWrite.h.

Referenced by fMakeResultsFileName(), and fT2dWriteAscii().

◆ fStopDate

TString TEcnaWrite::fStopDate

Definition at line 135 of file TEcnaWrite.h.

Referenced by fAsciiFileWriteHeader(), and RegisterFileParameters().

◆ fStopTime

time_t TEcnaWrite::fStopTime

Definition at line 136 of file TEcnaWrite.h.

Referenced by RegisterFileParameters().

◆ fTTBELL

TString TEcnaWrite::fTTBELL
private

Definition at line 43 of file TEcnaWrite.h.

Referenced by fMakeResultsFileName(), and Init().

◆ fUserSamp

Int_t TEcnaWrite::fUserSamp
private

Definition at line 99 of file TEcnaWrite.h.

Referenced by fT2dWriteAscii(), and Init().