CMS 3D CMS Logo

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

#include <TEcnaRun.h>

Inheritance diagram for TEcnaRun:

Public Member Functions

void AverageHighFrequencyNoise ()
 
void AverageLowFrequencyNoise ()
 
void AverageMeanCorrelationsBetweenSamples ()
 
void AveragePedestals ()
 
void AverageSigmaOfCorrelationsBetweenSamples ()
 
void AverageTotalNoise ()
 
Bool_t CloseRootFile (const Text_t *)
 
void CorrelationsBetweenSamples ()
 
void CovariancesBetweenSamples ()
 
void Expert1Calculations ()
 
void Expert2Calculations ()
 
TString GetNewRootFileName ()
 
TString GetNewRootFileNameShort ()
 
Bool_t GetPathForResults ()
 
void GetReadyToCompute ()
 
void GetReadyToReadData (const TString &, const Int_t &, const Int_t &, const Int_t &, const Int_t &, const Int_t &)
 
void GetReadyToReadData (const TString &, const Int_t &, const Int_t &, const Int_t &, const Int_t &, const Int_t &, const Int_t &)
 
TString GetRootFileName ()
 
TString GetRootFileNameShort ()
 
Bool_t GetSampleAdcValues (const Int_t &, const Int_t &, const Int_t &, const Int_t &, const Double_t &)
 
void HighFrequencyCorrelationsBetweenChannels ()
 
void HighFrequencyCovariancesBetweenChannels ()
 
void HighFrequencyMeanCorrelationsBetweenSCs ()
 
void HighFrequencyMeanCorrelationsBetweenStins ()
 
void HighFrequencyMeanCorrelationsBetweenTowers ()
 
void HighFrequencyNoise ()
 
void Init ()
 
void LowFrequencyCorrelationsBetweenChannels ()
 
void LowFrequencyCovariancesBetweenChannels ()
 
void LowFrequencyMeanCorrelationsBetweenSCs ()
 
void LowFrequencyMeanCorrelationsBetweenStins ()
 
void LowFrequencyMeanCorrelationsBetweenTowers ()
 
void LowFrequencyNoise ()
 
void MeanCorrelationsBetweenSamples ()
 
Bool_t OpenRootFile (const Text_t *, const TString &)
 
void Pedestals ()
 
void PrintAllComments ()
 
void PrintComments ()
 
void PrintNoComment ()
 
void PrintWarnings ()
 
Bool_t ReadSampleAdcValues ()
 
Bool_t ReadSampleAdcValues (const Int_t &)
 
void SampleMeans ()
 
void SampleSigmas ()
 
void SampleValues ()
 
void SetEcalSubDetector (const TString &)
 
void SigmaOfCorrelationsBetweenSamples ()
 
void StandardCalculations ()
 
void StartStopDate (const TString &, const TString &)
 
void StartStopTime (time_t, time_t)
 
 TEcnaRun ()
 
 TEcnaRun (const TEcnaRun &)
 
 TEcnaRun (TEcnaObject *, const TString &)
 
 TEcnaRun (TEcnaObject *, const TString &, const Int_t &)
 
void TotalNoise ()
 
void TRootAdcEvt (const Int_t &, const Int_t &)
 
void TRootAvEvCorss ()
 
void TRootAvHfn ()
 
void TRootAvLfn ()
 
void TRootAvPed ()
 
void TRootAvSigCorss ()
 
void TRootAvTno ()
 
void TRootCorCss (const Int_t &, const Int_t &)
 
void TRootCovCss (const Int_t &, const Int_t &)
 
void TRootHFccMoStins ()
 
void TRootHfCor ()
 
void TRootHfCov ()
 
void TRootHfn ()
 
void TRootLFccMoStins ()
 
void TRootLfCor ()
 
void TRootLfCov ()
 
void TRootLfn ()
 
void TRootMeanCorss ()
 
void TRootMSp (const Int_t &)
 
void TRootNbOfEvts (const Int_t &)
 
void TRootPed ()
 
void TRootSigCorss ()
 
void TRootSSp (const Int_t &)
 
void TRootStinNumbers ()
 
void TRootTno ()
 
Bool_t WriteNewRootFile (const TString &)
 
Bool_t WriteRootFile ()
 
Bool_t WriteRootFile (const Text_t *, Int_t &)
 
 ~TEcnaRun () override
 

Private Attributes

Int_t fBuildEvtNotSkipped
 
Int_t fCdelete
 
Int_t fCnaCommand
 
Int_t fCnaError
 
TEcnaParCoutfCnaParCout
 
TEcnaParPathsfCnaParPaths
 
TEcnaWritefCnaWrite
 
Int_t fCnew
 
Int_t fCodePrintAllComments
 
Int_t fCodePrintComments
 
Int_t fCodePrintNoComment
 
Int_t fCodePrintWarnings
 
TEcnaParEcalfEcal
 
TEcnaNumberingfEcalNumbering
 
std::ofstream fFcout_f
 
TEcnaHeaderfFileHeader
 
Int_t fFlagPrint
 
TString fFlagSubDet
 
Int_t fgMaxCar
 
Int_t fMaxMsgIndexForMiscDiag
 
Int_t fMemoReadNumberOfEventsforSamples
 
Int_t * fMiscDiag
 
Int_t fNbOfMiscDiagCounters
 
Int_t fNbSampForCalc
 
Int_t fNbSampForFic
 
TString fNewRootFileName
 
TString fNewRootFileNameShort
 
Int_t fNumberOfEvents
 
TEcnaObjectfObjectManager
 
Bool_t fOpenRootFile
 
Int_t fReadyToReadData
 
TString fRootFileName
 
TString fRootFileNameShort
 
Int_t fSpecialStexStinNotIndexed
 
TString fStexName
 
Int_t fStinIndexBuilt
 
TString fStinName
 
Double_t * fT1d_av_ev_corss
 
Double_t * fT1d_av_hifn
 
Double_t * fT1d_av_lofn
 
Double_t * fT1d_av_mped
 
Double_t * fT1d_av_sig_corss
 
Double_t * fT1d_av_totn
 
Double_t * fT1d_ev
 
Double_t * fT1d_ev_cor_ss
 
Double_t * fT1d_ev_ev
 
Double_t * fT1d_evevt_of_sigsamp
 
Double_t * fT1d_evsamp_of_sigevt
 
Int_t * fT1d_NbOfEvts
 
Double_t * fT1d_sig
 
Double_t * fT1d_sig_cor_ss
 
Double_t * fT1d_sigevt_of_evsamp
 
Int_t * fT1d_StexStinFromIndex
 
Int_t * fT1dCrysNumbersTable
 
Double_t * fT2d1_hf_cor
 
Double_t * fT2d1_hf_cov
 
Double_t * fT2d1_hfcc_mostins
 
Double_t * fT2d1_lf_cor
 
Double_t * fT2d1_lf_cov
 
Double_t * fT2d1_lfcc_mostins
 
Double_t ** fT2d_ev
 
Double_t ** fT2d_hf_cor
 
Double_t ** fT2d_hf_cov
 
Double_t ** fT2d_hfcc_mostins
 
Double_t ** fT2d_lf_cor
 
Double_t ** fT2d_lf_cov
 
Double_t ** fT2d_lfcc_mostins
 
Int_t ** fT2d_NbOfEvts
 
Double_t ** fT2d_sig
 
Int_t ** fT2dCrysNumbersTable
 
Double_t * fT3d1_AdcValues
 
Double_t * fT3d1_cor_ss
 
Double_t * fT3d1_cov_ss
 
Double_t ** fT3d2_AdcValues
 
Double_t ** fT3d2_cor_ss
 
Double_t ** fT3d2_cov_ss
 
Double_t *** fT3d_AdcValues
 
Double_t *** fT3d_cor_ss
 
Double_t *** fT3d_cov_ss
 
Int_t * fTagAdcEvt
 
Int_t * fTagAvHfn
 
Int_t * fTagAvLfn
 
Int_t * fTagAvMeanCorss
 
Int_t * fTagAvPed
 
Int_t * fTagAvSigCorss
 
Int_t * fTagAvTno
 
Int_t * fTagCorCss
 
Int_t * fTagCovCss
 
Int_t * fTagHFccMoStins
 
Int_t * fTagHfCor
 
Int_t * fTagHfCov
 
Int_t * fTagHfn
 
Int_t * fTagLFccMoStins
 
Int_t * fTagLfCor
 
Int_t * fTagLfCov
 
Int_t * fTagLfn
 
Int_t * fTagMeanCorss
 
Int_t * fTagMSp
 
Int_t * fTagNbOfEvts
 
Int_t * fTagPed
 
Int_t * fTagSigCorss
 
Int_t * fTagSSp
 
Int_t * fTagStinNumbers
 
Int_t * fTagTno
 
TString fTTBELL
 

Detailed Description


TEcnaRun.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

TEcnaRun + ECNA (Ecal Correlated Noise Analysis) instructions for use in the framework of CMSSW.

==============> INTRODUCTION

The present documentation contains:

[1] a brief description of the ECNA package with instructions for use
    in the framework of the CMS Software

[2] the documentation for the class TEcnaRun

==[1]=====================================================================================

     DOCUMENTATION FOR THE INTERFACE: ECNA package / CMSSW / SCRAM

==========================================================================================

ECNA consists in 2 packages named: EcalCorrelatedNoiseAnalysisModules and EcalCorrelatedNoiseAnalysisAlgos.

The directory tree is the following:

<local path>/CMSSW_a_b_c/src/----CalibCalorimetry/---EcalCorrelatedNoiseAnalysisModules/BuildFile
                        |   |                    |                                     |---interface/
                        |   |                    |                                     |---src/
                            |                    |                                     |---data/
                            |                    |
                            |                    |---EcalCorrelatedNoiseAnalysisAlgos/BuildFile
                            |                    |                                   |---interface/
                            |                    |                                   |---src/
                            |                    |                                   |---test/
                            |                    |
                            |                    |
                            |                    \--- <other packages of CalibCalorimetry>
                            |
                            \----<other subsystems...>

The package EcalCorrelatedNoiseAnalysisModules contains one standard analyzer (EcnaAnalyzer). The user can edit its own analyzer. A detailed description is given here after in the class TEcnaRun documentation. The package EcalCorrelatedNoiseAnalysisAlgos contains the basic ECNA classes (in src and interface) and standalone executables (in directory test).

==[2]======================================================================================

                     CLASS TEcnaRun DOCUMENTATION

=========================================================================================== TEcnaRun.

Brief and general description

This class allows the user to calculate pedestals, noises, correlations and other quantities of interest for correlated noise studies on the CMS/ECAL (EB and EE).

Three main operations are performed by the class TEcnaRun. Each of them is associated with a specific method of the analyzer EcnaAnalyzer:

(1) Initialization and calls to "preparation methods". This task is done in the constructor of the analyzer: EcnaAnalyzer::EcnaAnalyzer(const edm::ParameterSet& pSet)

(2) Building of the event distributions (distributions of the sample ADC values for each sample, each channel, etc...) This task is done in the method "analyze" of the analyzer: EcnaAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup)

(3) Calculation of the different quantities (correlations, pedestals, noises, etc...) from the distributions obtained in (2) and writing of these quantities in results ROOT files and also in ASCII files. This task is done in the destructor of the analyzer: EcnaAnalyzer::~EcnaAnalyzer()

Use of the class TEcnaRun by the analyzer EcnaAnalyzer

      see files EcnaAnalyzer.h and EcnaAnalyzer.cc
      in package EcalCorrelatedNoiseAnalysisModules

More detailled description of the class TEcnaRun

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

                 Declaration and Print Methods

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

 Just after the declaration with the constructor,
 you can set a "Print Flag" by means of the following "Print Methods":

 TEcnaRun* MyCnaRun = new TEcnaRun(...); // declaration of the object MyCnaRun

// Print Methods:

MyCnaRun->PrintNoComment(); // Set flag to forbid printing of all the comments // except ERRORS.

MyCnaRun->PrintWarnings(); // (DEFAULT) // Set flag to authorize printing of some warnings. // WARNING/INFO: information on something unusual // in the data. // WARNING/CORRECTION: something wrong (but not too serious) // in the value of some argument. // Automatically modified to a correct value.

MyCnaRun->PrintComments(); // Set flag to authorize printing of infos // and some comments concerning initialisations

MyCnaRun->PrintAllComments(); // Set flag to authorize printing of all the comments

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

       Method GetReadyToReadData(...) and associated methods

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

  MyCnaRun->GetReadyToReadData(AnalysisName,      NbOfSamples,       RunNumber,
                          FirstReqEvtNumber, LastReqEvtNumber,  ReqNbOfEvts,
                               StexNumber,        [RunType]);

Explanations for the arguments (all of them are input arguments):

TString AnalysisName: code for the analysis. According to this code, the analyzer EcnaAnalyser selects the event type (PEDESTAL_STD, PEDESTAL_GAP, LASER_STD, etc...) and some other event characteristics (example: the gain in pedestal runs: AnalysisName = "Ped1" or "Ped6" or "Ped12") See EcnaAnalyser.h for a list of available codes. The string AnalysisName is automatically included in the name of the results files (see below: results files paragraph).

Int_t NbOfSamples number of samples (=10 maximum) Int_t RunNumber: run number Int_t FirstReqEvtNumber: first requested event number (numbering starting from 1) Int_t LastReqEvtNumber: last requested event number Int_t ReqNbOfEvts: requested number of events Int_t StexNumber: Stex number (Stex = SM if EB, Dee if EE)

The different quantities (correlations, etc...) will be calculated for ReqNbOfEvts events between event# FirstReqEvtNumber and event# LastReqEvtNumber. If LastReqEvtNumber = 0, the calculations will be performed from event# FirstReqEvtNumber until EOF if necessary (i.e. if the number of treated events is < ReqNbOfEvts)

Int_t RunType [optional]: run type

                PEDESTAL_STD =  9
                LASER_STD    =  4
                PEDESTAL_GAP = 18, etc...

(see CMSSSW/DataFormats/EcalRawData/interface/EcalDCCHeaderBlock.h)

if RunType is specified, the run type will be displayed on the plots

==============> Method to set the start and stop times of the analysis (optional)

A method can be used to set the fStartDate and fStopDate attributes of the class TEcnaHeader from start and stop time given by the user provided these values have been recovered from the event reading:

void  MyCnaRun->StartStopDate(const TString& StartDate, const TString& StopDate);

// TString StartDate, StopDate: start and stop time of the run // in "date" format. Example: // Wed Oct 8 04:14:23 2003

If the method is not called, the values of the attributes fStartDate and fStopDate are set to: "!Start date> no info" and "!Stop date> no info" at the level of Init() method of the class TEcnaHeader. The values of StartDate and StopDate are written in the header of the .root result file.

PS: another similar method exists, with time_t type arguments:

void MyCnaRun->StartStopTime(time_t StartTime, time_t StopTime);

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

                   Calculation methods

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

The "calculation methods" are methods which compute the different
quantities of interest. They use the ADC sample values which can be
recovered by the method void SampleValues():

void SampleValues(); // 3D histo of the sample ADC value // for each triple (channel,sample,event)

List of the calculation methods with associated formulae:

.......... Calculation methods ( need previous call to GetReadyToReadData(...) )

// A(t,c,s,e) : ADC value for Stin t channel c, sample s, event e (Stin = tower if EB, SC if EE)

// E_e , Cov_e : average, covariance over the events // E_s , Cov_s : average, covariance over the samples // E_s,s' : average over couples of samples (half correlation matrix)

// e* : random variable associated to events // s* : random variable associated to samples

void SampleMeans(); // Expectation values for each couple (channel,sample) // SMean(t,c,s) = E_e[A(t,c,s,e*)]

void SampleSigmas(); // Sigmas for each couple (channel,sample) // SSigma(t,c,s) = sqrt{ Cov_e[A(t,c,s,e*),A(t,c,s,e*)] }

//........................................... void CovariancesBetweenSamples(); // (s,s') covariances for each channel // Cov(t,c;s,s') = Cov_e[ A(t,c,s,e*) , A(t,c,s',e*) ] // = E_e[ ( A(t,c,s,e*) - E_e[A(t,c,s,e*)] )*( A(t,c,s',e*) - E_e[A(t,c,s',e*)] ) ]

void CorrelationsBetweenSamples(); // (s,s') correlations for each channel // Cor(t,c;s,s') = Cov(t,c;s,s')/sqrt{ Cov(t,c;s,s)*Cov(t,c;s',s') }

//.............................................. *==> Stin = tower if EB, SuperCrystal if EE void LowFrequencyCovariancesBetweenChannels(); // LF (t;c,c') covariances for each Stin void HighFrequencyCovariancesBetweenChannels(); // HF (t;c,c') covariances for each Stin void LowFrequencyCorrelationsBetweenChannels(); // LF (t;c,c') correlations for each Stin void HighFrequencyCorrelationsBetweenChannels(); // HF (t;c,c') correlations for each Stin

// LFCov(t;c,c') = Cov_e[ E_s[A(t,c,s*,e*)] , E_s[A(t,c',s*,e*) ] // // = E_e[ ( E_s[A(t,c ,s*,e*)] - E_e[ E_s[A(t,c ,s*,e*)] ] )* // ( E_s[A(t,c',s*,e*)] - E_e[ E_s[A(t,c',s*,e*)] ] ) ] // // HFCov(t;c,c') = E_e[ Cov_s[ A(t,c,s*,e*) , A(t,c',s*,e*) ] ] // // = E_e[ E_s[ ( A(t,c ,s*,e*) - E_s[A(t,c ,s*,e*)] )* // ( A(t,c',s*,e*) - E_s[A(t,c',s*,e*)] ) ] ] // // LFCor(t;c,c') = LFCov(t;c,c')/sqrt{ LFCov(t;c,c)*LFCov(t;c',c') } // // HFCor(t;c,c') = HFCov(t;c,c')/sqrt{ HFCov(t;c,c)*HFCov(t;c',c') }

//.............................................. . *==> Stex = SM if EB, Dee if EE void LowFrequencyMeanCorrelationsBetweenTowers(); // LF (tow,tow') correlations for each SM void HighFrequencyMeanCorrelationsBetweenTowers(); // HF (tow,tow') correlations for each SM

void LowFrequencyMeanCorrelationsBetweenSCs(); // LF (sc,sc') correlations for each Dee void HighFrequencyMeanCorrelationsBetweenSCs(); // HF (sc,sc') correlations for each Dee

//.................................................... Quantities as a function of Xtal# void Pedestals(); void TotalNoise(); void LowFrequencyNoise(); void HighFrequencyNoise(); void MeanCorrelationsBetweenSamples(); void SigmaOfCorrelationsBetweenSamples();

// Pedestal(t,c) = E_e[ E_s[A(t,c,s*,e*)] ] // TotalNoise(t,c) = E_s[ sqrt{ E_e[ ( A(t,c,s*,e*) - E_e[A(t,c,s*,e*)] )^2 ] } ] // LowFqNoise(t,c) = sqrt{ E_e[ ( E_s[A(t,c,s*,e*)] - E_e[ E_s[A(t,c,s*,e*)] ] )^2 ] } // HighFqNoise(t,c) = E_e[ sqrt{ E_s[ (A(t,c,s*,e*) - E_s[A(t,c,s*,e*)] )^2 ] } ] // MeanCorss(t,c) = E_s,s'[ Cor(t,c;s,s') ] // SigmaCorss(t,c) = E_s,s'[ Cor(t,c;s,s') - E_s,s'[ Cor(t,c;s,s') ] ]

//............ Quantities as a function of tower# (EB) or SC# (EE), average over the Xtals void AveragePedestals(); void AverageTotalNoise(); void AverageLowFrequencyNoise(); void AverageHighFrequencyNoise(); void AverageMeanCorrelationsBetweenSamples(); void AverageSigmaOfCorrelationsBetweenSamples();

// t = tower if EB , SC if EE , c = channel (Xtal) // AveragePedestal(t) = E_c[Pedestal(t,c*)] // TotalNoise(t) = E_c[TotalNoise(t,c*)] // LowFqNoise(t) = E_c[LowFqNoise(t,c*)] // HighFqNoise(t) = E_c[HighFqNoise(t,c*)] // MeanCorss(t) = E_c[MeanCorss(t,c*)] // SigmaCorss(t) = E_c[SigmaCorss(t,c*)]

==============> RESULTS FILES

The calculation methods above provide results which can be used directly in the user's code. However, these results can also be written in results files by appropriate methods. The names of the results files are automaticaly generated.

It is also possible to write results in ASCII files => See TEcnaWrite and TEcnaGui It is also possible to plot results in ROOT canvases => See TEcnaHistos and TEcnaGui

*--------—> Codification for the name of the ROOT file:

The name of the ROOT file is the following:

 aaa_S1_sss_Rrrr_fff_lll_SMnnn.root     for EB
 aaa_S1_sss_Rrrr_fff_lll_Deennn.root    for EE

with: aaa = Analysis name sss = number of samples rrr = Run number fff = First requested event number lll = Last requested events mmm = Requested number of events nnn = SM number or Dee number

This name is automatically generated from the values of the arguments of the method "GetReadyToReadData".

*--------—> Method which writes the results in the ROOT file:

  Bool_t  MyCnaRun->WriteRootFile();

===================================================================================================

Definition at line 363 of file TEcnaRun.h.

Constructor & Destructor Documentation

◆ TEcnaRun() [1/4]

TEcnaRun::TEcnaRun ( )

Definition at line 19 of file TEcnaRun.cc.

19  {
20  //Constructor without argument: nothing special done
21 
22  // std::cout << "[Info Management] CLASS: TEcnaRun. CREATE OBJECT: this = " << this << std::endl;
23 }

◆ TEcnaRun() [2/4]

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

Definition at line 25 of file TEcnaRun.cc.

25  {
26  //Constructor with argument: call to Init() and declare fEcal according to SubDet value ("EB" or "EE")
27 
28  // std::cout << "[Info Management] CLASS: TEcnaRun. CREATE OBJECT: this = " << this << std::endl;
29 
30  Init();
31  fObjectManager = (TEcnaObject*)pObjectManager;
32  Long_t i_this = (Long_t)this;
33  pObjectManager->RegisterPointer("TEcnaRun", i_this);
34 
35  //............................ fCnaParCout
36  fCnaParCout = nullptr;
37  Long_t iCnaParCout = pObjectManager->GetPointerValue("TEcnaParCout");
38  if (iCnaParCout == 0) {
39  fCnaParCout = new TEcnaParCout(pObjectManager); /*fCnew++*/
40  } else {
41  fCnaParCout = (TEcnaParCout*)iCnaParCout;
42  }
43 
44  //............................ fCnaParPaths
45  fCnaParPaths = nullptr;
46  Long_t iCnaParPaths = pObjectManager->GetPointerValue("TEcnaParPaths");
47  if (iCnaParPaths == 0) {
48  fCnaParPaths = new TEcnaParPaths(pObjectManager); /*fCnew++*/
49  } else {
50  fCnaParPaths = (TEcnaParPaths*)iCnaParPaths;
51  }
52 
53  //fCfgResultsRootFilePath = fCnaParPaths->ResultsRootFilePath();
54  //fCfgHistoryRunListFilePath = fCnaParPaths->HistoryRunListFilePath();
55 
56  //ffFileHeader = 0;
57  //fconst Text_t *h_name = "CnaHeader"; //==> voir cette question avec FXG
58  //fconst Text_t *h_title = "CnaHeader"; //==> voir cette question avec FXG
59  //ffFileHeader = new TEcnaHeader(h_name, h_title); //fCnew++;
60 
61  //............................ fFileHeader
62  const Text_t* h_name = "CnaHeader"; //==> voir cette question avec FXG
63  const Text_t* h_title = "CnaHeader"; //==> voir cette question avec FXG
64 
65  fFileHeader = nullptr;
66  //Int_t iFileHeader = pObjectManager->GetPointerValue("TEcnaHeader");
67  Long_t iFileHeader = 0; // one TEcnaHeader object for each file since they can be open simultaneously
68  if (iFileHeader == 0) {
69  fFileHeader = new TEcnaHeader(pObjectManager, h_name, h_title); /*fCnew++*/
70  } else {
71  fFileHeader = (TEcnaHeader*)iFileHeader;
72  }
73 
74  SetEcalSubDetector(SubDet.Data());
75  fNbSampForFic = fEcal->MaxSampADC(); // DEFAULT Number of samples for ROOT file
76 }

References fCnaParCout, fCnaParPaths, fEcal, fFileHeader, fNbSampForFic, fObjectManager, TEcnaObject::GetPointerValue(), Init(), TEcnaParEcal::MaxSampADC(), TEcnaObject::RegisterPointer(), SetEcalSubDetector(), and ntupleEnum::SubDet.

◆ TEcnaRun() [3/4]

TEcnaRun::TEcnaRun ( TEcnaObject pObjectManager,
const TString &  SubDet,
const Int_t &  NbOfSamples 
)

Definition at line 78 of file TEcnaRun.cc.

78  {
79  //fCnaParPaths = 0; fCnaParPaths = new TEcnaParPaths(); //fCnew++;
80  //fCnaParCout = 0; fCnaParCout = new TEcnaParCout(); //fCnew++;
81 
82  Init();
83  fObjectManager = (TEcnaObject*)pObjectManager;
84  Long_t i_this = (Long_t)this;
85  pObjectManager->RegisterPointer("TEcnaRun", i_this);
86 
87  //............................ fCnaParCout
88  fCnaParCout = nullptr;
89  Long_t iCnaParCout = pObjectManager->GetPointerValue("TEcnaParCout");
90  if (iCnaParCout == 0) {
91  fCnaParCout = new TEcnaParCout(pObjectManager); /*fCnew++*/
92  } else {
93  fCnaParCout = (TEcnaParCout*)iCnaParCout;
94  }
95 
96  //............................ fCnaParPaths
97  fCnaParPaths = nullptr;
98  Long_t iCnaParPaths = pObjectManager->GetPointerValue("TEcnaParPaths");
99  if (iCnaParPaths == 0) {
100  fCnaParPaths = new TEcnaParPaths(pObjectManager); /*fCnew++*/
101  } else {
102  fCnaParPaths = (TEcnaParPaths*)iCnaParPaths;
103  }
104 
105  //fCfgResultsRootFilePath = fCnaParPaths->ResultsRootFilePath();
106  //fCfgHistoryRunListFilePath = fCnaParPaths->HistoryRunListFilePath();
107 
108  //............................ fFileHeader
109  const Text_t* h_name = "CnaHeader"; //==> voir cette question avec FXG
110  const Text_t* h_title = "CnaHeader"; //==> voir cette question avec FXG
111 
112  fFileHeader = nullptr;
113  //Long_t iFileHeader = pObjectManager->GetPointerValue("TEcnaHeader");
114  Long_t iFileHeader = 0; // one TEcnaHeader object for each file since they can be open simultaneously
115  if (iFileHeader == 0) {
116  fFileHeader = new TEcnaHeader(pObjectManager, h_name, h_title); /*fCnew++*/
117  } else {
118  fFileHeader = (TEcnaHeader*)iFileHeader;
119  }
120 
121  SetEcalSubDetector(SubDet.Data());
122  if (NbOfSamples > 0 && NbOfSamples <= fEcal->MaxSampADC()) {
123  fNbSampForFic = NbOfSamples;
124  } else {
125  std::cout << "TEcnaRun/CONSTRUCTOR> Number of required samples = " << NbOfSamples
126  << ": OUT OF RANGE. Set to the default value (= " << fEcal->MaxSampADC() << ")." << fTTBELL << std::endl;
127  fNbSampForFic = fEcal->MaxSampADC(); // DEFAULT Number of samples for file reading
128  }
129 }

References gather_cfg::cout, fCnaParCout, fCnaParPaths, fEcal, fFileHeader, fNbSampForFic, fObjectManager, fTTBELL, TEcnaObject::GetPointerValue(), Init(), TEcnaParEcal::MaxSampADC(), TEcnaObject::RegisterPointer(), SetEcalSubDetector(), and ntupleEnum::SubDet.

◆ TEcnaRun() [4/4]

TEcnaRun::TEcnaRun ( const TEcnaRun dcop)

Definition at line 302 of file TEcnaRun.cc.

302  : TObject::TObject(dcop) {
303  std::cout << "*TEcnaRun::TEcnaRun(const TEcnaRun& dcop)> "
304  << " Now is the time to write a copy constructor" << std::endl;
305 
306  //{ Int_t cintoto; cin >> cintoto; }
307 }

References gather_cfg::cout.

◆ ~TEcnaRun()

TEcnaRun::~TEcnaRun ( )
override

Definition at line 328 of file TEcnaRun.cc.

328  {
329  //Destructor
330 
332  std::cout << "*TEcnaRun::~TEcnaRun()> Entering destructor." << std::endl;
333  }
334 
336  if (fBuildEvtNotSkipped > 0) {
337  std::cout << "************************************************************************************* "
338  << std::endl;
339  std::cout << "*TEcnaRun::~TEcnaRun()> Nb of calls to GetSampleAdcValues by cmsRun: " << fBuildEvtNotSkipped
340  << std::endl;
341  std::cout << "************************************************************************************* "
342  << std::endl;
343  }
344  }
345 
347  Int_t misc_czero = 0;
348  for (Int_t i = 0; i < fNbOfMiscDiagCounters; i++) {
349  if (fMiscDiag[i] != 0) {
350  std::cout << " fMiscDiag Counter " << std::setw(3) << i << " = " << std::setw(9)
351  << fMiscDiag[i] << " (INFO: alloc on non zero freed zone) " << std::endl;
352  } else {
353  misc_czero++;
354  }
355  }
356  std::cout << " Nb of fMiscDiag counters at zero: " << misc_czero
357  << " (total nb of counters: " << fNbOfMiscDiagCounters << ")" << std::endl;
358  }
359 
360  if (fMiscDiag != nullptr) {
361  delete[] fMiscDiag;
362  fCdelete++;
363  }
364 
365  //if (fFileHeader != 0){delete fFileHeader; fCdelete++;}
366  //if (fEcal != 0){delete fEcal; fCdelete++;}
367  //if (fEcalNumbering != 0){delete fEcalNumbering; fCdelete++;}
368  //if (fCnaParCout != 0){delete fCnaParCout; fCdelete++;}
369  //if (fCnaParPaths != 0){delete fCnaParPaths; fCdelete++;}
370  //if (fCnaWrite != 0){delete fCnaWrite; fCdelete++;}
371 
372  if (fT1d_StexStinFromIndex != nullptr) {
373  delete[] fT1d_StexStinFromIndex;
374  fCdelete++;
375  }
376 
377  if (fT2d_NbOfEvts != nullptr) {
378  delete[] fT2d_NbOfEvts;
379  fCdelete++;
380  }
381  if (fT1d_NbOfEvts != nullptr) {
382  delete[] fT1d_NbOfEvts;
383  fCdelete++;
384  }
385 
386  if (fT3d_AdcValues != nullptr) {
387  delete[] fT3d_AdcValues;
388  fCdelete++;
389  }
390  if (fT3d2_AdcValues != nullptr) {
391  delete[] fT3d2_AdcValues;
392  fCdelete++;
393  }
394  if (fT3d1_AdcValues != nullptr) {
395  delete[] fT3d1_AdcValues;
396  fCdelete++;
397  }
398 
399  if (fT2d_ev != nullptr) {
400  delete[] fT2d_ev;
401  fCdelete++;
402  }
403  if (fT1d_ev != nullptr) {
404  delete[] fT1d_ev;
405  fCdelete++;
406  }
407 
408  if (fT2d_sig != nullptr) {
409  delete[] fT2d_sig;
410  fCdelete++;
411  }
412  if (fT1d_sig != nullptr) {
413  delete[] fT1d_sig;
414  fCdelete++;
415  }
416 
417  if (fT3d_cov_ss != nullptr) {
418  delete[] fT3d_cov_ss;
419  fCdelete++;
420  }
421  if (fT3d2_cov_ss != nullptr) {
422  delete[] fT3d2_cov_ss;
423  fCdelete++;
424  }
425  if (fT3d1_cov_ss != nullptr) {
426  delete[] fT3d1_cov_ss;
427  fCdelete++;
428  }
429 
430  if (fT3d_cor_ss != nullptr) {
431  delete[] fT3d_cor_ss;
432  fCdelete++;
433  }
434  if (fT3d2_cor_ss != nullptr) {
435  delete[] fT3d2_cor_ss;
436  fCdelete++;
437  }
438  if (fT3d1_cor_ss != nullptr) {
439  delete[] fT3d1_cor_ss;
440  fCdelete++;
441  }
442 
443  if (fT2d_lf_cov != nullptr) {
444  delete[] fT2d_lf_cov;
445  fCdelete++;
446  }
447  if (fT2d1_lf_cov != nullptr) {
448  delete[] fT2d1_lf_cov;
449  fCdelete++;
450  }
451 
452  if (fT2d_lf_cor != nullptr) {
453  delete[] fT2d_lf_cor;
454  fCdelete++;
455  }
456  if (fT2d1_lf_cor != nullptr) {
457  delete[] fT2d1_lf_cor;
458  fCdelete++;
459  }
460 
461  if (fT2d_hf_cov != nullptr) {
462  delete[] fT2d_hf_cov;
463  fCdelete++;
464  }
465  if (fT2d1_hf_cov != nullptr) {
466  delete[] fT2d1_hf_cov;
467  fCdelete++;
468  }
469 
470  if (fT2d_hf_cor != nullptr) {
471  delete[] fT2d_hf_cor;
472  fCdelete++;
473  }
474  if (fT2d1_hf_cor != nullptr) {
475  delete[] fT2d1_hf_cor;
476  fCdelete++;
477  }
478 
479  if (fT2d_lfcc_mostins != nullptr) {
480  delete[] fT2d_lfcc_mostins;
481  fCdelete++;
482  }
483  if (fT2d1_lfcc_mostins != nullptr) {
484  delete[] fT2d1_lfcc_mostins;
485  fCdelete++;
486  }
487 
488  if (fT2d_hfcc_mostins != nullptr) {
489  delete[] fT2d_hfcc_mostins;
490  fCdelete++;
491  }
492  if (fT2d1_hfcc_mostins != nullptr) {
493  delete[] fT2d1_hfcc_mostins;
494  fCdelete++;
495  }
496 
497  if (fT1d_ev_ev != nullptr) {
498  delete[] fT1d_ev_ev;
499  fCdelete++;
500  }
501  if (fT1d_evsamp_of_sigevt != nullptr) {
502  delete[] fT1d_evsamp_of_sigevt;
503  fCdelete++;
504  }
505  if (fT1d_ev_cor_ss != nullptr) {
506  delete[] fT1d_ev_cor_ss;
507  fCdelete++;
508  }
509  if (fT1d_av_mped != nullptr) {
510  delete[] fT1d_av_mped;
511  fCdelete++;
512  }
513  if (fT1d_av_totn != nullptr) {
514  delete[] fT1d_av_totn;
515  fCdelete++;
516  }
517  if (fT1d_av_lofn != nullptr) {
518  delete[] fT1d_av_lofn;
519  fCdelete++;
520  }
521  if (fT1d_av_hifn != nullptr) {
522  delete[] fT1d_av_hifn;
523  fCdelete++;
524  }
525  if (fT1d_av_ev_corss != nullptr) {
526  delete[] fT1d_av_ev_corss;
527  fCdelete++;
528  }
529  if (fT1d_av_sig_corss != nullptr) {
530  delete[] fT1d_av_sig_corss;
531  fCdelete++;
532  }
533 
534  if (fT1d_sigevt_of_evsamp != nullptr) {
535  delete[] fT1d_sigevt_of_evsamp;
536  fCdelete++;
537  }
538  if (fT1d_evevt_of_sigsamp != nullptr) {
539  delete[] fT1d_evevt_of_sigsamp;
540  fCdelete++;
541  }
542  if (fT1d_sig_cor_ss != nullptr) {
543  delete[] fT1d_sig_cor_ss;
544  fCdelete++;
545  }
546 
547  if (fT2dCrysNumbersTable != nullptr) {
548  delete[] fT2dCrysNumbersTable;
549  fCdelete++;
550  }
551  if (fT1dCrysNumbersTable != nullptr) {
552  delete[] fT1dCrysNumbersTable;
553  fCdelete++;
554  }
555 
556  if (fTagStinNumbers != nullptr) {
557  delete[] fTagStinNumbers;
558  fCdelete++;
559  }
560  if (fTagNbOfEvts != nullptr) {
561  delete[] fTagNbOfEvts;
562  fCdelete++;
563  }
564  if (fTagAdcEvt != nullptr) {
565  delete[] fTagAdcEvt;
566  fCdelete++;
567  }
568  if (fTagMSp != nullptr) {
569  delete[] fTagMSp;
570  fCdelete++;
571  }
572  if (fTagSSp != nullptr) {
573  delete[] fTagSSp;
574  fCdelete++;
575  }
576 
577  if (fTagCovCss != nullptr) {
578  delete[] fTagCovCss;
579  fCdelete++;
580  }
581  if (fTagCorCss != nullptr) {
582  delete[] fTagCorCss;
583  fCdelete++;
584  }
585 
586  if (fTagHfCov != nullptr) {
587  delete[] fTagHfCov;
588  fCdelete++;
589  }
590  if (fTagHfCor != nullptr) {
591  delete[] fTagHfCor;
592  fCdelete++;
593  }
594  if (fTagLfCov != nullptr) {
595  delete[] fTagLfCov;
596  fCdelete++;
597  }
598  if (fTagLfCor != nullptr) {
599  delete[] fTagLfCor;
600  fCdelete++;
601  }
602 
603  if (fTagLFccMoStins != nullptr) {
604  delete[] fTagLFccMoStins;
605  fCdelete++;
606  }
607  if (fTagHFccMoStins != nullptr) {
608  delete[] fTagHFccMoStins;
609  fCdelete++;
610  }
611 
612  if (fTagPed != nullptr) {
613  delete[] fTagPed;
614  fCdelete++;
615  }
616  if (fTagTno != nullptr) {
617  delete[] fTagTno;
618  fCdelete++;
619  }
620  if (fTagMeanCorss != nullptr) {
621  delete[] fTagMeanCorss;
622  fCdelete++;
623  }
624 
625  if (fTagLfn != nullptr) {
626  delete[] fTagLfn;
627  fCdelete++;
628  }
629  if (fTagHfn != nullptr) {
630  delete[] fTagHfn;
631  fCdelete++;
632  }
633  if (fTagSigCorss != nullptr) {
634  delete[] fTagSigCorss;
635  fCdelete++;
636  }
637 
638  if (fTagAvPed != nullptr) {
639  delete[] fTagAvPed;
640  fCdelete++;
641  }
642  if (fTagAvTno != nullptr) {
643  delete[] fTagAvTno;
644  fCdelete++;
645  }
646  if (fTagAvLfn != nullptr) {
647  delete[] fTagAvLfn;
648  fCdelete++;
649  }
650  if (fTagAvHfn != nullptr) {
651  delete[] fTagAvHfn;
652  fCdelete++;
653  }
654  if (fTagAvMeanCorss != nullptr) {
655  delete[] fTagAvMeanCorss;
656  fCdelete++;
657  }
658  if (fTagAvSigCorss != nullptr) {
659  delete[] fTagAvSigCorss;
660  fCdelete++;
661  }
662 
663  if (fCnew != fCdelete) {
664  std::cout << "!TEcnaRun::~TEcnaRun()> WRONG MANAGEMENT OF MEMORY ALLOCATIONS: fCnew = " << fCnew
665  << ", fCdelete = " << fCdelete << fTTBELL << std::endl;
666  } else {
667  // std::cout << "*TEcnaRun::~TEcnaRun()> Management of memory allocations: OK. fCnew = "
668  // << fCnew << ", fCdelete = " << fCdelete << std::endl;
669  }
670 
672  std::cout << "*TEcnaRun::~TEcnaRun()> Exiting destructor (this = " << this << ")." << std::endl
673  << "~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#"
674  << std::endl;
675  }
676 
677  // std::cout << "[Info Management] CLASS: TEcnaRun. DESTROY OBJECT: this = " << this << std::endl;
678 }

References gather_cfg::cout, fBuildEvtNotSkipped, fCdelete, fCnew, fCodePrintAllComments, fCodePrintNoComment, fCodePrintWarnings, fFlagPrint, fMiscDiag, fNbOfMiscDiagCounters, fT1d_av_ev_corss, fT1d_av_hifn, fT1d_av_lofn, fT1d_av_mped, fT1d_av_sig_corss, fT1d_av_totn, fT1d_ev, fT1d_ev_cor_ss, fT1d_ev_ev, fT1d_evevt_of_sigsamp, fT1d_evsamp_of_sigevt, fT1d_NbOfEvts, fT1d_sig, fT1d_sig_cor_ss, fT1d_sigevt_of_evsamp, fT1d_StexStinFromIndex, fT1dCrysNumbersTable, fT2d1_hf_cor, fT2d1_hf_cov, fT2d1_hfcc_mostins, fT2d1_lf_cor, fT2d1_lf_cov, fT2d1_lfcc_mostins, fT2d_ev, fT2d_hf_cor, fT2d_hf_cov, fT2d_hfcc_mostins, fT2d_lf_cor, fT2d_lf_cov, fT2d_lfcc_mostins, fT2d_NbOfEvts, fT2d_sig, fT2dCrysNumbersTable, fT3d1_AdcValues, fT3d1_cor_ss, fT3d1_cov_ss, fT3d2_AdcValues, fT3d2_cor_ss, fT3d2_cov_ss, fT3d_AdcValues, fT3d_cor_ss, fT3d_cov_ss, fTagAdcEvt, fTagAvHfn, fTagAvLfn, fTagAvMeanCorss, fTagAvPed, fTagAvSigCorss, fTagAvTno, fTagCorCss, fTagCovCss, fTagHFccMoStins, fTagHfCor, fTagHfCov, fTagHfn, fTagLFccMoStins, fTagLfCor, fTagLfCov, fTagLfn, fTagMeanCorss, fTagMSp, fTagNbOfEvts, fTagPed, fTagSigCorss, fTagSSp, fTagStinNumbers, fTagTno, fTTBELL, and mps_fire::i.

Member Function Documentation

◆ AverageHighFrequencyNoise()

void TEcnaRun::AverageHighFrequencyNoise ( )

Definition at line 2411 of file TEcnaRun.cc.

2411  {
2412  // Calculation of the average
2413  // (over the Stin's 0 to fEcal->MaxStinInStex()) of the High Frequency Noise
2414 
2415  //... preliminary calculation of the High Frequency Noise if not done yet
2416  if (fTagHfn[0] != 1) {
2418  fTagHfn[0] = 0;
2419  }
2420  //................... Allocation av_hifn + init to zero (mandatory)
2421  if (fT1d_av_hifn == nullptr) {
2422  fT1d_av_hifn = new Double_t[fEcal->MaxStinEcnaInStex()];
2423  fCnew++;
2424  }
2425  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
2426  if (fT1d_av_hifn[i0StexStinEcna] != (Double_t)0) {
2427  fMiscDiag[44]++;
2428  fT1d_av_hifn[i0StexStinEcna] = (Double_t)0;
2429  }
2430  }
2431 
2433  std::cout << "*TEcnaRun::AverageHighFrequencyNoise()" << std::endl;
2434  }
2436  std::cout << " Calculation, for all the " << fStinName.Data() << "s, of the average High Frequency Noise"
2437  << std::endl;
2438  }
2439 
2440  //................... Calculation
2441  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
2442  Int_t n1StexStinEcna = i0StexStinEcna + 1;
2443  fT1d_av_hifn[i0StexStinEcna] = (Double_t)0;
2444  for (Int_t i0StinEcha = 0; i0StinEcha < fEcal->MaxCrysInStin(); i0StinEcha++) {
2445  Int_t i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(n1StexStinEcna, i0StinEcha);
2446 
2447  if (fStexName == "SM ") {
2448  fT1d_av_hifn[i0StexStinEcna] += fT1d_evevt_of_sigsamp[i0StexEcha];
2449  }
2450 
2451  if (fStexName == "Dee") {
2452  //---------------- Special translation for mixed SCEcna (29 and 32)
2453  // Xtal 11 of SCEcna 29 -> Xtal 11 of SCEcna 10
2454  // Xtal 11 of SCEcna 32 -> Xtal 11 of SCEcna 11
2455  Int_t n1StinEcha = i0StinEcha + 1;
2456  if (n1StexStinEcna == 10 && n1StinEcha == 11) {
2457  i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(29, i0StinEcha);
2458  }
2459  if (n1StexStinEcna == 11 && n1StinEcha == 11) {
2460  i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(32, i0StinEcha);
2461  }
2462  if (!((n1StexStinEcna == 29 || n1StexStinEcna == 32) && n1StinEcha == 11)) {
2463  fT1d_av_hifn[i0StexStinEcna] += fT1d_evevt_of_sigsamp[i0StexEcha];
2464  }
2465  }
2466  }
2467  Double_t xdivis = (Double_t)0.;
2468  if (fStexName == "SM ") {
2469  xdivis = (Double_t)fEcal->MaxCrysInStin();
2470  }
2471  if (fStexName == "Dee") {
2472  xdivis = (Double_t)fEcalNumbering->MaxCrysInStinEcna(fFileHeader->fStex, n1StexStinEcna, "TEcnaRun");
2473  }
2474 
2475  fT1d_av_hifn[i0StexStinEcna] = fT1d_av_hifn[i0StexStinEcna] / xdivis;
2476  }
2477  fTagAvHfn[0] = 1;
2479 }

References gather_cfg::cout, TEcnaHeader::fAvHfnCalc, fCnew, fCodePrintAllComments, fCodePrintNoComment, fEcal, fEcalNumbering, fFileHeader, fFlagPrint, fMiscDiag, TEcnaHeader::fStex, fStexName, fStinName, fT1d_av_hifn, fT1d_evevt_of_sigsamp, fTagAvHfn, fTagHfn, TEcnaNumbering::Get0StexEchaFrom1StexStinAnd0StinEcha(), HighFrequencyNoise(), TEcnaParEcal::MaxCrysInStin(), TEcnaNumbering::MaxCrysInStinEcna(), and TEcnaParEcal::MaxStinEcnaInStex().

Referenced by StandardCalculations().

◆ AverageLowFrequencyNoise()

void TEcnaRun::AverageLowFrequencyNoise ( )

Definition at line 2336 of file TEcnaRun.cc.

2336  {
2337  // Calculation of the average
2338  // (over the Stin's 0 to fEcal->MaxStinInStex()) of the Low Frequency Noise
2339 
2340  //... preliminary calculation of the Low Frequency Noise if not done yet
2341  if (fTagLfn[0] != 1) {
2343  fTagLfn[0] = 0;
2344  }
2345  //................... Allocation av_lofn + init to zero (mandatory)
2346  if (fT1d_av_lofn == nullptr) {
2347  fT1d_av_lofn = new Double_t[fEcal->MaxStinEcnaInStex()];
2348  fCnew++;
2349  }
2350  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
2351  if (fT1d_av_lofn[i0StexStinEcna] != (Double_t)0) {
2352  fMiscDiag[43]++;
2353  fT1d_av_lofn[i0StexStinEcna] = (Double_t)0;
2354  }
2355  }
2356 
2358  std::cout << "*TEcnaRun::AverageLowFrequencyNoise()" << std::endl;
2359  }
2361  std::cout << " Calculation, for all the " << fStinName.Data() << "s, of the average Low Frequency Noise"
2362  << std::endl;
2363  }
2364 
2365  //................... Calculation
2366  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
2367  Int_t n1StexStinEcna = i0StexStinEcna + 1;
2368  fT1d_av_lofn[i0StexStinEcna] = (Double_t)0;
2369  for (Int_t i0StinEcha = 0; i0StinEcha < fEcal->MaxCrysInStin(); i0StinEcha++) {
2370  Int_t i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(n1StexStinEcna, i0StinEcha);
2371 
2372  if (fStexName == "SM ") {
2373  fT1d_av_lofn[i0StexStinEcna] += fT1d_sigevt_of_evsamp[i0StexEcha];
2374  }
2375 
2376  if (fStexName == "Dee") {
2377  //---------------- Special translation for mixed SCEcna (29 and 32)
2378  // Xtal 11 of SCEcna 29 -> Xtal 11 of SCEcna 10
2379  // Xtal 11 of SCEcna 32 -> Xtal 11 of SCEcna 11
2380  Int_t n1StinEcha = i0StinEcha + 1;
2381  if (n1StexStinEcna == 10 && n1StinEcha == 11) {
2382  i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(29, i0StinEcha);
2383  }
2384  if (n1StexStinEcna == 11 && n1StinEcha == 11) {
2385  i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(32, i0StinEcha);
2386  }
2387  if (!((n1StexStinEcna == 29 || n1StexStinEcna == 32) && n1StinEcha == 11)) {
2388  fT1d_av_lofn[i0StexStinEcna] += fT1d_sigevt_of_evsamp[i0StexEcha];
2389  }
2390  }
2391  }
2392  Double_t xdivis = (Double_t)0.;
2393  if (fStexName == "SM ") {
2394  xdivis = (Double_t)fEcal->MaxCrysInStin();
2395  }
2396  if (fStexName == "Dee") {
2397  xdivis = (Double_t)fEcalNumbering->MaxCrysInStinEcna(fFileHeader->fStex, n1StexStinEcna, "TEcnaRun");
2398  }
2399 
2400  fT1d_av_lofn[i0StexStinEcna] = fT1d_av_lofn[i0StexStinEcna] / xdivis;
2401  }
2402  fTagAvLfn[0] = 1;
2404 }

References gather_cfg::cout, TEcnaHeader::fAvLfnCalc, fCnew, fCodePrintAllComments, fCodePrintNoComment, fEcal, fEcalNumbering, fFileHeader, fFlagPrint, fMiscDiag, TEcnaHeader::fStex, fStexName, fStinName, fT1d_av_lofn, fT1d_sigevt_of_evsamp, fTagAvLfn, fTagLfn, TEcnaNumbering::Get0StexEchaFrom1StexStinAnd0StinEcha(), LowFrequencyNoise(), TEcnaParEcal::MaxCrysInStin(), TEcnaNumbering::MaxCrysInStinEcna(), and TEcnaParEcal::MaxStinEcnaInStex().

Referenced by StandardCalculations().

◆ AverageMeanCorrelationsBetweenSamples()

void TEcnaRun::AverageMeanCorrelationsBetweenSamples ( )

Definition at line 2486 of file TEcnaRun.cc.

2486  {
2487  // Calculation of the average
2488  // (over the Stin's 0 to fEcal->MaxStinInStex()) of the mean cor(s,s)
2489 
2490  //... preliminary calculation of the mean cor(s,s) if not done yet
2491  if (fTagMeanCorss[0] != 1) {
2493  fTagMeanCorss[0] = 0;
2494  }
2495  //................... Allocation av_ev_corss + init to zero (mandatory)
2496  if (fT1d_av_ev_corss == nullptr) {
2497  fT1d_av_ev_corss = new Double_t[fEcal->MaxStinEcnaInStex()];
2498  fCnew++;
2499  }
2500  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
2501  if (fT1d_av_ev_corss[i0StexStinEcna] != (Double_t)0) {
2502  fMiscDiag[45]++;
2503  fT1d_av_ev_corss[i0StexStinEcna] = (Double_t)0;
2504  }
2505  }
2506 
2508  std::cout << "*TEcnaRun::AverageMeanCorrelationsBetweenSamples()" << std::endl;
2509  }
2511  std::cout << " Calculation, for all the " << fStinName.Data() << "s, of the average mean cor(s,s)"
2512  << std::endl;
2513  }
2514 
2515  //................... Calculation
2516  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
2517  Int_t n1StexStinEcna = i0StexStinEcna + 1;
2518  fT1d_av_ev_corss[i0StexStinEcna] = (Double_t)0;
2519  for (Int_t i0StinEcha = 0; i0StinEcha < fEcal->MaxCrysInStin(); i0StinEcha++) {
2520  Int_t i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(n1StexStinEcna, i0StinEcha);
2521 
2522  if (fStexName == "SM ") {
2523  fT1d_av_ev_corss[i0StexStinEcna] += fT1d_ev_cor_ss[i0StexEcha];
2524  }
2525 
2526  if (fStexName == "Dee") {
2527  //---------------- Special translation for mixed SCEcna (29 and 32)
2528  // Xtal 11 of SCEcna 29 -> Xtal 11 of SCEcna 10
2529  // Xtal 11 of SCEcna 32 -> Xtal 11 of SCEcna 11
2530  Int_t n1StinEcha = i0StinEcha + 1;
2531  if (n1StexStinEcna == 10 && n1StinEcha == 11) {
2532  i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(29, i0StinEcha);
2533  }
2534  if (n1StexStinEcna == 11 && n1StinEcha == 11) {
2535  i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(32, i0StinEcha);
2536  }
2537  if (!((n1StexStinEcna == 29 || n1StexStinEcna == 32) && n1StinEcha == 11)) {
2538  fT1d_av_ev_corss[i0StexStinEcna] += fT1d_ev_cor_ss[i0StexEcha];
2539  }
2540  }
2541  }
2542  Double_t xdivis = (Double_t)0.;
2543  if (fStexName == "SM ") {
2544  xdivis = (Double_t)fEcal->MaxCrysInStin();
2545  }
2546  if (fStexName == "Dee") {
2547  xdivis = (Double_t)fEcalNumbering->MaxCrysInStinEcna(fFileHeader->fStex, n1StexStinEcna, "TEcnaRun");
2548  }
2549 
2550  fT1d_av_ev_corss[i0StexStinEcna] = fT1d_av_ev_corss[i0StexStinEcna] / xdivis;
2551  }
2552  fTagAvMeanCorss[0] = 1;
2554 }

References gather_cfg::cout, TEcnaHeader::fAvMeanCorssCalc, fCnew, fCodePrintAllComments, fCodePrintNoComment, fEcal, fEcalNumbering, fFileHeader, fFlagPrint, fMiscDiag, TEcnaHeader::fStex, fStexName, fStinName, fT1d_av_ev_corss, fT1d_ev_cor_ss, fTagAvMeanCorss, fTagMeanCorss, TEcnaNumbering::Get0StexEchaFrom1StexStinAnd0StinEcha(), TEcnaParEcal::MaxCrysInStin(), TEcnaNumbering::MaxCrysInStinEcna(), TEcnaParEcal::MaxStinEcnaInStex(), and MeanCorrelationsBetweenSamples().

Referenced by StandardCalculations().

◆ AveragePedestals()

void TEcnaRun::AveragePedestals ( )

Definition at line 2185 of file TEcnaRun.cc.

2185  {
2186  // Calculation of the average
2187  // (over the Stin's 0 to fEcal->MaxStinInStex()) of the Pedestals
2188 
2189  //... preliminary calculation of the Pedestals if not done yet
2190  if (fTagPed[0] != 1) {
2191  Pedestals();
2192  fTagPed[0] = 0;
2193  }
2194  //................... Allocation av_mped + init to zero (mandatory)
2195  if (fT1d_av_mped == nullptr) {
2196  fT1d_av_mped = new Double_t[fEcal->MaxStinEcnaInStex()];
2197  fCnew++;
2198  }
2199  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
2200  if (fT1d_av_mped[i0StexStinEcna] != (Double_t)0) {
2201  fMiscDiag[41]++;
2202  fT1d_av_mped[i0StexStinEcna] = (Double_t)0;
2203  }
2204  }
2205 
2207  std::cout << "*TEcnaRun::AveragePedestals()" << std::endl;
2208  }
2210  std::cout << " Calculation, for all the " << fStinName.Data() << "s, of the average Pedestals"
2211  << std::endl;
2212  }
2213 
2214  //................... Calculation
2215  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
2216  Int_t n1StexStinEcna = i0StexStinEcna + 1;
2217  fT1d_av_mped[i0StexStinEcna] = (Double_t)0;
2218  for (Int_t i0StinEcha = 0; i0StinEcha < fEcal->MaxCrysInStin(); i0StinEcha++) {
2219  Int_t i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(n1StexStinEcna, i0StinEcha);
2220 
2221  if (fStexName == "SM ") {
2222  fT1d_av_mped[i0StexStinEcna] += fT1d_ev_ev[i0StexEcha];
2223  }
2224 
2225  if (fStexName == "Dee") {
2226  //---------------- Special translation for mixed SCEcna (29 and 32)
2227  // Xtal 11 of SCEcna 29 -> Xtal 11 of SCEcna 10
2228  // Xtal 11 of SCEcna 32 -> Xtal 11 of SCEcna 11
2229  Int_t n1StinEcha = i0StinEcha + 1;
2230  if (n1StexStinEcna == 10 && n1StinEcha == 11) {
2231  i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(29, i0StinEcha);
2232  }
2233  if (n1StexStinEcna == 11 && n1StinEcha == 11) {
2234  i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(32, i0StinEcha);
2235  }
2236  if (!((n1StexStinEcna == 29 || n1StexStinEcna == 32) && n1StinEcha == 11)) {
2237  fT1d_av_mped[i0StexStinEcna] += fT1d_ev_ev[i0StexEcha];
2238  }
2239  }
2240  }
2241  Double_t xdivis = (Double_t)0.;
2242  if (fStexName == "SM ") {
2243  xdivis = (Double_t)fEcal->MaxCrysInStin();
2244  }
2245  if (fStexName == "Dee") {
2246  xdivis = (Double_t)fEcalNumbering->MaxCrysInStinEcna(fFileHeader->fStex, n1StexStinEcna, "TEcnaRun");
2247  }
2248 
2249  fT1d_av_mped[i0StexStinEcna] = fT1d_av_mped[i0StexStinEcna] / xdivis;
2250  }
2251 
2252  fTagAvPed[0] = 1;
2254 }

References gather_cfg::cout, TEcnaHeader::fAvPedCalc, fCnew, fCodePrintAllComments, fCodePrintNoComment, fEcal, fEcalNumbering, fFileHeader, fFlagPrint, fMiscDiag, TEcnaHeader::fStex, fStexName, fStinName, fT1d_av_mped, fT1d_ev_ev, fTagAvPed, fTagPed, TEcnaNumbering::Get0StexEchaFrom1StexStinAnd0StinEcha(), TEcnaParEcal::MaxCrysInStin(), TEcnaNumbering::MaxCrysInStinEcna(), TEcnaParEcal::MaxStinEcnaInStex(), and Pedestals().

Referenced by StandardCalculations().

◆ AverageSigmaOfCorrelationsBetweenSamples()

void TEcnaRun::AverageSigmaOfCorrelationsBetweenSamples ( )

Definition at line 2561 of file TEcnaRun.cc.

2561  {
2562  // Calculation of the average
2563  // (over the Stin's 0 to fEcal->MaxStinInStex()) of the sigma of cor(s,s)
2564 
2565  //... preliminary calculation of the sigma of cor(s,s) if not done yet
2566  if (fTagSigCorss[0] != 1) {
2568  fTagSigCorss[0] = 0;
2569  }
2570  //................... Allocation av_sig_corss + init to zero (mandatory)
2571  if (fT1d_av_sig_corss == nullptr) {
2572  fT1d_av_sig_corss = new Double_t[fEcal->MaxStinEcnaInStex()];
2573  fCnew++;
2574  }
2575  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
2576  if (fT1d_av_sig_corss[i0StexStinEcna] != (Double_t)0) {
2577  fMiscDiag[46]++;
2578  fT1d_av_sig_corss[i0StexStinEcna] = (Double_t)0;
2579  }
2580  }
2581 
2583  std::cout << "*TEcnaRun::AverageSigmaOfCorrelationsBetweenSamples()" << std::endl;
2584  }
2586  std::cout << " Calculation, for all the " << fStinName.Data() << "s, of the average sigma of cor(s,s)"
2587  << std::endl;
2588  }
2589 
2590  //................... Calculation
2591  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
2592  Int_t n1StexStinEcna = i0StexStinEcna + 1;
2593  fT1d_av_sig_corss[i0StexStinEcna] = (Double_t)0;
2594  for (Int_t i0StinEcha = 0; i0StinEcha < fEcal->MaxCrysInStin(); i0StinEcha++) {
2595  Int_t i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(n1StexStinEcna, i0StinEcha);
2596 
2597  if (fStexName == "SM ") {
2598  fT1d_av_sig_corss[i0StexStinEcna] += fT1d_sig_cor_ss[i0StexEcha];
2599  }
2600 
2601  if (fStexName == "Dee") {
2602  //---------------- Special translation for mixed SCEcna (29 and 32)
2603  // Xtal 11 of SCEcna 29 -> Xtal 11 of SCEcna 10
2604  // Xtal 11 of SCEcna 32 -> Xtal 11 of SCEcna 11
2605  Int_t n1StinEcha = i0StinEcha + 1;
2606  if (n1StexStinEcna == 10 && n1StinEcha == 11) {
2607  i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(29, i0StinEcha);
2608  }
2609  if (n1StexStinEcna == 11 && n1StinEcha == 11) {
2610  i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(32, i0StinEcha);
2611  }
2612  if (!((n1StexStinEcna == 29 || n1StexStinEcna == 32) && n1StinEcha == 11)) {
2613  fT1d_av_sig_corss[i0StexStinEcna] += fT1d_sig_cor_ss[i0StexEcha];
2614  }
2615  }
2616  }
2617  Double_t xdivis = (Double_t)0.;
2618  if (fStexName == "SM ") {
2619  xdivis = (Double_t)fEcal->MaxCrysInStin();
2620  }
2621  if (fStexName == "Dee") {
2622  xdivis = (Double_t)fEcalNumbering->MaxCrysInStinEcna(fFileHeader->fStex, n1StexStinEcna, "TEcnaRun");
2623  }
2624 
2625  fT1d_av_sig_corss[i0StexStinEcna] = fT1d_av_sig_corss[i0StexStinEcna] / xdivis;
2626  }
2627  fTagAvSigCorss[0] = 1;
2629 }

References gather_cfg::cout, TEcnaHeader::fAvSigCorssCalc, fCnew, fCodePrintAllComments, fCodePrintNoComment, fEcal, fEcalNumbering, fFileHeader, fFlagPrint, fMiscDiag, TEcnaHeader::fStex, fStexName, fStinName, fT1d_av_sig_corss, fT1d_sig_cor_ss, fTagAvSigCorss, fTagSigCorss, TEcnaNumbering::Get0StexEchaFrom1StexStinAnd0StinEcha(), TEcnaParEcal::MaxCrysInStin(), TEcnaNumbering::MaxCrysInStinEcna(), TEcnaParEcal::MaxStinEcnaInStex(), and SigmaOfCorrelationsBetweenSamples().

Referenced by StandardCalculations().

◆ AverageTotalNoise()

void TEcnaRun::AverageTotalNoise ( )

Definition at line 2261 of file TEcnaRun.cc.

2261  {
2262  // Calculation of the average
2263  // (over the Stin's 0 to fEcal->MaxStinInStex()) of the Total Noise
2264 
2265  //... preliminary calculation of the averaged Total Noise if not done yet
2266  if (fTagTno[0] != 1) {
2267  TotalNoise();
2268  fTagTno[0] = 0;
2269  }
2270  //................... Allocation av_totn + init to zero (mandatory)
2271  if (fT1d_av_totn == nullptr) {
2272  fT1d_av_totn = new Double_t[fEcal->MaxStinEcnaInStex()];
2273  fCnew++;
2274  }
2275  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
2276  if (fT1d_av_totn[i0StexStinEcna] != (Double_t)0) {
2277  fMiscDiag[42]++;
2278  fT1d_av_totn[i0StexStinEcna] = (Double_t)0;
2279  }
2280  }
2281 
2283  std::cout << "*TEcnaRun::AverageTotalNoise()" << std::endl;
2284  }
2286  std::cout << " Calculation, for all the " << fStinName.Data() << "s, of the average total Noise"
2287  << std::endl;
2288  }
2289 
2290  //................... Calculation
2291  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
2292  Int_t n1StexStinEcna = i0StexStinEcna + 1;
2293  fT1d_av_totn[i0StexStinEcna] = (Double_t)0;
2294  for (Int_t i0StinEcha = 0; i0StinEcha < fEcal->MaxCrysInStin(); i0StinEcha++) {
2295  Int_t i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(n1StexStinEcna, i0StinEcha);
2296 
2297  if (fStexName == "SM ") {
2298  fT1d_av_totn[i0StexStinEcna] += fT1d_evsamp_of_sigevt[i0StexEcha];
2299  }
2300 
2301  if (fStexName == "Dee") {
2302  //---------------- Special translation for mixed SCEcna (29 and 32)
2303  // Xtal 11 of SCEcna 29 -> Xtal 11 of SCEcna 10
2304  // Xtal 11 of SCEcna 32 -> Xtal 11 of SCEcna 11
2305  Int_t n1StinEcha = i0StinEcha + 1;
2306  if (n1StexStinEcna == 10 && n1StinEcha == 11) {
2307  i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(29, i0StinEcha);
2308  }
2309  if (n1StexStinEcna == 11 && n1StinEcha == 11) {
2310  i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(32, i0StinEcha);
2311  }
2312  if (!((n1StexStinEcna == 29 || n1StexStinEcna == 32) && n1StinEcha == 11)) {
2313  fT1d_av_totn[i0StexStinEcna] += fT1d_evsamp_of_sigevt[i0StexEcha];
2314  }
2315  }
2316  }
2317  Double_t xdivis = (Double_t)0.;
2318  if (fStexName == "SM ") {
2319  xdivis = (Double_t)fEcal->MaxCrysInStin();
2320  }
2321  if (fStexName == "Dee") {
2322  xdivis = (Double_t)fEcalNumbering->MaxCrysInStinEcna(fFileHeader->fStex, n1StexStinEcna, "TEcnaRun");
2323  }
2324 
2325  fT1d_av_totn[i0StexStinEcna] = fT1d_av_totn[i0StexStinEcna] / xdivis;
2326  }
2327  fTagAvTno[0] = 1;
2329 }

References gather_cfg::cout, TEcnaHeader::fAvTnoCalc, fCnew, fCodePrintAllComments, fCodePrintNoComment, fEcal, fEcalNumbering, fFileHeader, fFlagPrint, fMiscDiag, TEcnaHeader::fStex, fStexName, fStinName, fT1d_av_totn, fT1d_evsamp_of_sigevt, fTagAvTno, fTagTno, TEcnaNumbering::Get0StexEchaFrom1StexStinAnd0StinEcha(), TEcnaParEcal::MaxCrysInStin(), TEcnaNumbering::MaxCrysInStinEcna(), TEcnaParEcal::MaxStinEcnaInStex(), and TotalNoise().

Referenced by StandardCalculations().

◆ CloseRootFile()

Bool_t TEcnaRun::CloseRootFile ( const Text_t *  name)

Definition at line 3322 of file TEcnaRun.cc.

3322  {
3323  //Close the Root file
3324 
3325  TString s_name;
3326  s_name = fCnaParPaths->ResultsRootFilePath();
3327  s_name.Append('/');
3328  s_name.Append(name);
3329 
3330  Bool_t ok_close = kFALSE;
3331 
3332  if (fOpenRootFile == kTRUE) {
3334 
3336  std::cout << "*TEcnaRun::CloseRootFile> ROOT file " << s_name.Data() << " closed." << std::endl;
3337  }
3338 
3339  // delete gCnaRootFile; gCnaRootFile = 0; fCdelete++;
3340 
3341  fOpenRootFile = kFALSE;
3342  ok_close = kTRUE;
3343  } else {
3344  std::cout << "*TEcnaRun::CloseRootFile(...)> No close since no file is open." << fTTBELL << std::endl;
3345  }
3346  return ok_close;
3347 }

References TEcnaRootFile::CloseFile(), gather_cfg::cout, fCnaParPaths, fCodePrintAllComments, fFlagPrint, fOpenRootFile, fTTBELL, gCnaRootFile, Skims_PA_cff::name, and TEcnaParPaths::ResultsRootFilePath().

Referenced by WriteRootFile().

◆ CorrelationsBetweenSamples()

void TEcnaRun::CorrelationsBetweenSamples ( )

Definition at line 1691 of file TEcnaRun.cc.

1691  {
1692  //Calculation of the correlations between samples for all the StexEchas
1693 
1694  //... preliminary calculation of the covariances if not done yet.
1695  // Test only the first tag since the cov are computed globaly
1696  // but set all the tags to 0 because we don't want to write
1697  // the covariances in the result ROOT file
1698  if (fTagCovCss[0] != 1) {
1700  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
1701  fTagCovCss[j0StexEcha] = 0;
1702  }
1703  }
1704 
1706  std::cout << "*TEcnaRun::CorrelationsBetweenSamples()" << std::endl;
1707  }
1709  std::cout << " Calculation: correlations between samples"
1710  << " for each channel." << std::endl;
1711  }
1712 
1713  //................... Allocations cor_ss
1714  if (fT3d_cor_ss == nullptr) {
1715  const Int_t n_samp = fNbSampForCalc;
1716  const Int_t n_StexEcha = fEcal->MaxCrysEcnaInStex();
1717  fT3d_cor_ss = new Double_t**[n_StexEcha];
1718  fCnew++;
1719  fT3d2_cor_ss = new Double_t*[n_StexEcha * n_samp];
1720  fCnew++;
1721  fT3d1_cor_ss = new Double_t[n_StexEcha * n_samp * n_samp];
1722  fCnew++;
1723  for (Int_t i = 0; i < n_StexEcha; i++) {
1724  fT3d_cor_ss[i] = &fT3d2_cor_ss[0] + i * n_samp;
1725  for (Int_t j = 0; j < n_samp; j++) {
1726  fT3d2_cor_ss[n_samp * i + j] = &fT3d1_cor_ss[0] + n_samp * (n_samp * i + j);
1727  }
1728  }
1729  }
1730 
1731  //..................... calculation of the correlations (=init)
1732  //......................computation of half of the matrix, diagonal included (verif = 1)
1733 
1734  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
1735  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
1736  for (Int_t j0Sample = 0; j0Sample <= i0Sample; j0Sample++) {
1737  if ((fT3d_cov_ss[j0StexEcha][i0Sample][i0Sample] > 0) && (fT3d_cov_ss[j0StexEcha][j0Sample][j0Sample] > 0)) {
1738  fT3d_cor_ss[j0StexEcha][i0Sample][j0Sample] =
1739  fT3d_cov_ss[j0StexEcha][i0Sample][j0Sample] /
1740  (sqrt(fT3d_cov_ss[j0StexEcha][i0Sample][i0Sample]) * sqrt(fT3d_cov_ss[j0StexEcha][j0Sample][j0Sample]));
1741  } else {
1742  (fT3d_cor_ss)[j0StexEcha][i0Sample][j0Sample] = (Double_t)0; // prevoir compteur + fTTBELL
1743  }
1744  fT3d_cor_ss[j0StexEcha][j0Sample][i0Sample] = fT3d_cor_ss[j0StexEcha][i0Sample][j0Sample];
1745  }
1746  }
1747  fTagCorCss[j0StexEcha] = 1;
1749  }
1750 }

References gather_cfg::cout, CovariancesBetweenSamples(), fCnew, fCodePrintAllComments, fCodePrintNoComment, TEcnaHeader::fCorCssCalc, fEcal, fFileHeader, fFlagPrint, fNbSampForCalc, fT3d1_cor_ss, fT3d2_cor_ss, fT3d_cor_ss, fT3d_cov_ss, fTagCorCss, fTagCovCss, mps_fire::i, dqmiolumiharvest::j, TEcnaParEcal::MaxCrysEcnaInStex(), and mathSSE::sqrt().

Referenced by MeanCorrelationsBetweenSamples(), and StandardCalculations().

◆ CovariancesBetweenSamples()

void TEcnaRun::CovariancesBetweenSamples ( )

Definition at line 1625 of file TEcnaRun.cc.

1625  {
1626  //Calculation of the covariances between samples for all the StexEchas
1627 
1629  std::cout << "*TEcnaRun::CovariancesBetweenSamples()" << std::endl;
1630  }
1632  std::cout << " Calculation: covariances between samples"
1633  << " for each channel." << std::endl;
1634  }
1635 
1636  //................... Allocations cov_ss
1637  if (fT3d_cov_ss == nullptr) {
1638  const Int_t n_samp = fNbSampForCalc;
1639  const Int_t n_StexEcha = fEcal->MaxCrysEcnaInStex();
1640  fT3d_cov_ss = new Double_t**[n_StexEcha];
1641  fCnew++;
1642  fT3d2_cov_ss = new Double_t*[n_StexEcha * n_samp];
1643  fCnew++;
1644  fT3d1_cov_ss = new Double_t[n_StexEcha * n_samp * n_samp];
1645  fCnew++;
1646  for (Int_t i = 0; i < n_StexEcha; i++) {
1647  fT3d_cov_ss[i] = &fT3d2_cov_ss[0] + i * n_samp;
1648  for (Int_t j = 0; j < n_samp; j++) {
1649  fT3d2_cov_ss[n_samp * i + j] = &fT3d1_cov_ss[0] + n_samp * (n_samp * i + j);
1650  }
1651  }
1652  }
1653 
1654  //.................. Calculation (= init)
1655  //.................. computation of half of the matrix, diagonal included)
1656 
1657  //... preliminary calculation of the expectation values if not done yet.
1658  // The tag is set to 1 after call to the method. It is reset to 0
1659  // because the expectation values must not be written in the result ROOT file
1660  // (since the tag was equal to 0)
1661  // Results in array fT2d_ev[j0StexEcha][i0Sample]
1662  if (fTagMSp[0] != 1) {
1663  SampleMeans();
1664  fTagMSp[0] = 0;
1665  }
1666 
1667  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
1668  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
1669  for (Int_t j0Sample = 0; j0Sample <= i0Sample; j0Sample++) {
1670  fT3d_cov_ss[j0StexEcha][i0Sample][j0Sample] = (Double_t)0;
1671  for (Int_t i_event = 0; i_event < fNumberOfEvents; i_event++) {
1672  fT3d_cov_ss[j0StexEcha][i0Sample][j0Sample] +=
1673  (fT3d_AdcValues[j0StexEcha][i0Sample][i_event] - fT2d_ev[j0StexEcha][i0Sample]) *
1674  (fT3d_AdcValues[j0StexEcha][j0Sample][i_event] - fT2d_ev[j0StexEcha][j0Sample]);
1675  }
1676  fT3d_cov_ss[j0StexEcha][i0Sample][j0Sample] /= (Double_t)fNumberOfEvents;
1677  fT3d_cov_ss[j0StexEcha][j0Sample][i0Sample] = fT3d_cov_ss[j0StexEcha][i0Sample][j0Sample];
1678  }
1679  }
1680  fTagCovCss[j0StexEcha] = 1;
1682  }
1683 }

References gather_cfg::cout, fCnew, fCodePrintAllComments, fCodePrintNoComment, TEcnaHeader::fCovCssCalc, fEcal, fFileHeader, fFlagPrint, fNbSampForCalc, fNumberOfEvents, fT2d_ev, fT3d1_cov_ss, fT3d2_cov_ss, fT3d_AdcValues, fT3d_cov_ss, fTagCovCss, fTagMSp, mps_fire::i, dqmiolumiharvest::j, TEcnaParEcal::MaxCrysEcnaInStex(), and SampleMeans().

Referenced by CorrelationsBetweenSamples().

◆ Expert1Calculations()

void TEcnaRun::Expert1Calculations ( )

Definition at line 1468 of file TEcnaRun.cc.

1468  {
1469  // long time, big file
1470 
1473 }

References HighFrequencyCorrelationsBetweenChannels(), and LowFrequencyCorrelationsBetweenChannels().

Referenced by TEcnaGui::Calculations().

◆ Expert2Calculations()

void TEcnaRun::Expert2Calculations ( )

Definition at line 1475 of file TEcnaRun.cc.

1475  {
1476  // long time, no big file
1477  // expert 1 is called (if not called before) without writing in file.
1478  // Results are used only in memory to compute expert2 calculations
1479 
1482 }

References HighFrequencyMeanCorrelationsBetweenStins(), and LowFrequencyMeanCorrelationsBetweenStins().

Referenced by TEcnaGui::Calculations().

◆ GetNewRootFileName()

TString TEcnaRun::GetNewRootFileName ( )

Definition at line 3455 of file TEcnaRun.cc.

3455 { return fNewRootFileName; }

References fNewRootFileName.

◆ GetNewRootFileNameShort()

TString TEcnaRun::GetNewRootFileNameShort ( )

Definition at line 3456 of file TEcnaRun.cc.

3456 { return fNewRootFileNameShort; }

References fNewRootFileNameShort.

Referenced by TEcnaGui::Calculations().

◆ GetPathForResults()

Bool_t TEcnaRun::GetPathForResults ( )

Definition at line 132 of file TEcnaRun.cc.

References fCnaParPaths, and TEcnaParPaths::GetPathForResultsRootFiles().

◆ GetReadyToCompute()

void TEcnaRun::GetReadyToCompute ( )

Definition at line 1387 of file TEcnaRun.cc.

1387  {
1388  //
1389  // MAKE THE RESULTS FILE NAME and
1390  // CHECK OF THE NUMBER OF FOUND EVENTS AND init fNumberOfEvents
1391  // (number used to compute the average values over the events)
1392  // The number of events fNumberOfEvents is extracted from the array fT2d_NbOfEvts[]
1393  // which has been filled by the GetSampleAdcValues(...) method
1394 
1395  //..................... Making of the Root File name that will be written
1402  fFileHeader->fStex);
1403 
1404  fCnaWrite->fMakeResultsFileName(); // set fRootFileName, fRootFileNameShort
1405 
1406  //..................... Checking numbers of found events channel by channel
1407  if (fT2d_NbOfEvts != nullptr) {
1410  } else {
1411  std::cout << "*TEcnaRun::GetReadyToCompute()> no data? fT2d_NbOfEvts = " << fT2d_NbOfEvts << std::endl;
1412  }
1413 }

References gather_cfg::cout, fCnaWrite, fEcal, fFileHeader, TEcnaHeader::fFirstReqEvtNumber, TEcnaHeader::fLastReqEvtNumber, TEcnaWrite::fMakeResultsFileName(), TEcnaHeader::fNbOfSamples, fNbSampForFic, fNumberOfEvents, TEcnaHeader::fReqNbOfEvts, TEcnaHeader::fRunNumber, TEcnaHeader::fStex, fT2d_NbOfEvts, TEcnaHeader::fTypAna, TEcnaParEcal::MaxCrysEcnaInStex(), TEcnaWrite::NumberOfEventsAnalysis(), and TEcnaWrite::RegisterFileParameters().

Referenced by EcnaAnalyzer::analyze(), TEcnaGui::Calculations(), and EcnaAnalyzer::~EcnaAnalyzer().

◆ GetReadyToReadData() [1/2]

void TEcnaRun::GetReadyToReadData ( const TString &  typ_ana,
const Int_t &  run_number,
const Int_t &  nfirst,
const Int_t &  nlast,
const Int_t &  nbevts,
const Int_t &  Stex 
)

Definition at line 695 of file TEcnaRun.cc.

700  {
701  //Preparation of the data reading. Set part of the header. No RunType as argument.
702  //Use default value = 99999999 and call method with all the arguments (see below)
703 
704  Int_t RunType = 99999999;
705  GetReadyToReadData(typ_ana, run_number, nfirst, nlast, nbevts, Stex, RunType);
706 }

References nlast, and contentValuesCheck::run_number.

Referenced by EcnaAnalyzer::analyze(), and TEcnaGui::Calculations().

◆ GetReadyToReadData() [2/2]

void TEcnaRun::GetReadyToReadData ( const TString &  typ_ana,
const Int_t &  run_number,
const Int_t &  nfirst,
const Int_t &  nlast,
const Int_t &  nbevts,
const Int_t &  Stex,
const Int_t &  run_type 
)

Definition at line 708 of file TEcnaRun.cc.

714  {
715  //Preparation of the data reading. Set part of the header
716  //
717  // [nfirst, nlast] = [1,50] (50 events) or [151,300] (150 events) or etc...
718 
719  Int_t nrangeevts = nlast - nfirst + 1; // number of events in range
720 
721  if (nrangeevts < nbevts) {
722  if (nlast >= nfirst) {
723  std::cout << "*TEcnaRun::GetReadyToReadData(...)> --- WARNING ---> number of events = " << nbevts
724  << ", out of range (range = " << nfirst << "," << nlast << ")" << std::endl
725  << " The number of found events will be less " << std::endl
726  << " than the number of requested events." << std::endl;
727  }
728  if (nlast < nfirst) {
729  std::cout << "*TEcnaRun::GetReadyToReadData(...)> --- INFO ---> last requested event number = " << nlast
730  << ", less than first requested event number (= " << nfirst << ")" << std::endl
731  << " File will be read until EOF if the number of found events"
732  << std::endl
733  << " remains less than the number of requested events." << std::endl;
734  }
735  }
736 
737  //............. allocation for counters
738  fMiscDiag = new Int_t[fNbOfMiscDiagCounters];
739  fCnew++;
740  for (Int_t iz = 0; iz < fNbOfMiscDiagCounters; iz++) {
741  fMiscDiag[iz] = (Int_t)0;
742  }
743 
744  //************** CHECK OF ARGUMENTS: nfirst_arg and nbevts_arg
745  Int_t nentries = 99999999; // => to be reintroduced as argument (like run_type) (?)
746  if (nfirst <= nentries) {
747  //--------------------- test positivity of nfirst_arg (GetReadyToReadData)
748  if (nfirst > 0) {
749  //-------- test compatibility between the last requested event number
750  // and the number of entries
751  if (nlast <= nentries) {
752  const Text_t* h_name = "CnaHeader"; //==> voir cette question avec FXG
753  const Text_t* h_title = "CnaHeader"; //==> voir cette question avec FXG
754  //fFileHeader->HeaderParameters(h_name, h_title ,
755  // typ_ana, fNbSampForFic,
756  // run_number, nfirst, nlast, nbevts,
757  // Stex, nentries); fCnew++;
758 
759  if (fEcal->MaxStinEcnaInStex() > 0 && fEcal->MaxCrysInStin() > 0 && fNbSampForFic > 0) {
760  if (fFileHeader == nullptr) {
761  fFileHeader = new TEcnaHeader(fObjectManager, h_name, h_title);
762  } // fCnew++;
763 
764  fFileHeader->HeaderParameters(typ_ana, fNbSampForFic, run_number, nfirst, nlast, nbevts, Stex, run_type);
765 
766  // After this call to TEcnaHeader, we have: (GetReadyToReadData)
767  // fFileHeader->fTypAna = typ_ana
768  // fFileHeader->fNbOfSamples = fNbSampForFic
769  // fFileHeader->fRunNumber = run_number
770  // fFileHeader->fFirstReqEvtNumber = nfirst
771  // fFileHeader->fLastReqEvtNumber = nlast
772  // fFileHeader->fReqNbOfEvts = nbevts
773  // fFileHeader->fStex = Stex number
774  // fFileHeader->fRunType = run_type
775 
776  // fFileHeader->Print();
777 
778  // {Int_t cintoto; std::cout << "taper 0 pour continuer" << std::endl; cin >> cintoto;}
779 
780  // fFileHeader->SetName("CnaHeader"); *======> voir FXG
781  // fFileHeader->SetTitle("CnaHeader");
782 
783  //......................................... allocation tags + init of them (GetReadyToReadData)
784 
785  fTagStinNumbers = new Int_t[1];
786  fCnew++;
787  fTagStinNumbers[0] = (Int_t)0;
788  fTagNbOfEvts = new Int_t[1];
789  fCnew++;
790  fTagNbOfEvts[0] = (Int_t)0;
791 
792  fTagAdcEvt = new Int_t[fEcal->MaxCrysEcnaInStex()];
793  fCnew++;
794  for (Int_t iz = 0; iz < fEcal->MaxCrysEcnaInStex(); iz++) {
795  fTagAdcEvt[iz] = (Int_t)0;
796  }
797 
798  fTagMSp = new Int_t[1];
799  fCnew++;
800  fTagMSp[0] = (Int_t)0;
801  fTagSSp = new Int_t[1];
802  fCnew++;
803  fTagSSp[0] = (Int_t)0;
804 
805  fTagCovCss = new Int_t[fEcal->MaxCrysEcnaInStex()];
806  fCnew++;
807  for (Int_t iz = 0; iz < fEcal->MaxCrysEcnaInStex(); iz++) {
808  fTagCovCss[iz] = (Int_t)0;
809  }
810 
811  fTagCorCss = new Int_t[fEcal->MaxCrysEcnaInStex()];
812  fCnew++;
813  for (Int_t iz = 0; iz < fEcal->MaxCrysEcnaInStex(); iz++) {
814  fTagCorCss[iz] = (Int_t)0;
815  }
816 
817  fTagLfCov = new Int_t[1];
818  fCnew++;
819  fTagLfCov[0] = (Int_t)0;
820  fTagLfCor = new Int_t[1];
821  fCnew++;
822  fTagLfCor[0] = (Int_t)0;
823 
824  fTagHfCov = new Int_t[1];
825  fCnew++;
826  fTagHfCov[0] = (Int_t)0;
827  fTagHfCor = new Int_t[1];
828  fCnew++;
829  fTagHfCor[0] = (Int_t)0;
830 
831  fTagLFccMoStins = new Int_t[1];
832  fCnew++;
833  fTagLFccMoStins[0] = (Int_t)0;
834  fTagHFccMoStins = new Int_t[1];
835  fCnew++;
836  fTagHFccMoStins[0] = (Int_t)0;
837 
838  fTagPed = new Int_t[1];
839  fCnew++;
840  fTagPed[0] = (Int_t)0;
841  fTagTno = new Int_t[1];
842  fCnew++;
843  fTagTno[0] = (Int_t)0;
844  fTagMeanCorss = new Int_t[1];
845  fCnew++;
846  fTagMeanCorss[0] = (Int_t)0;
847 
848  fTagLfn = new Int_t[1];
849  fCnew++;
850  fTagLfn[0] = (Int_t)0;
851  fTagHfn = new Int_t[1];
852  fCnew++;
853  fTagHfn[0] = (Int_t)0;
854  fTagSigCorss = new Int_t[1];
855  fCnew++;
856  fTagSigCorss[0] = (Int_t)0;
857 
858  fTagAvPed = new Int_t[1];
859  fCnew++;
860  fTagAvPed[0] = (Int_t)0;
861  fTagAvTno = new Int_t[1];
862  fCnew++;
863  fTagAvTno[0] = (Int_t)0;
864  fTagAvLfn = new Int_t[1];
865  fCnew++;
866  fTagAvLfn[0] = (Int_t)0;
867  fTagAvHfn = new Int_t[1];
868  fCnew++;
869  fTagAvHfn[0] = (Int_t)0;
870  fTagAvMeanCorss = new Int_t[1];
871  fCnew++;
872  fTagAvMeanCorss[0] = (Int_t)0;
873  fTagAvSigCorss = new Int_t[1];
874  fCnew++;
875  fTagAvSigCorss[0] = (Int_t)0;
876 
877  //====================================================================================
878  //
879  // allocation for fT1d_StexStinFromIndex[] and init to fSpecialStexStinNotIndexed
880  //
881  //====================================================================================
882 
883  if (fT1d_StexStinFromIndex == nullptr) {
885  fCnew++;
886  }
887  for (Int_t i0_Stin = 0; i0_Stin < fEcal->MaxStinEcnaInStex(); i0_Stin++) {
889  }
890 
891  //------------------------------------------------------------- (GetReadyToReadData)
892 
893  //====================================================================================
894  //
895  // allocation of the 3D array fT3d_AdcValues[channel][sample][events] (ADC values)
896  //
897  // This array is filled in the GetSampleAdcValues(...) method
898  //
899  //====================================================================================
900 
901  if (fT3d_AdcValues == nullptr) {
902  //............ Allocation for the 3d array
903  std::cout << "*TEcnaRun::GetReadyToReadData(...)> Allocation of 3D array for ADC distributions."
904  << " Nb of requested evts = " << fFileHeader->fReqNbOfEvts << std::endl
905  << " This number must not be too large"
906  << " (no failure after this message means alloc OK)." << std::endl;
907 
908  fT3d_AdcValues = new Double_t**[fEcal->MaxCrysEcnaInStex()];
909  fCnew++;
910 
912  fCnew++;
913 
915  fCnew++;
916 
917  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
918  fT3d_AdcValues[i0StexEcha] = &fT3d2_AdcValues[0] + i0StexEcha * fNbSampForFic;
919  for (Int_t j0Sample = 0; j0Sample < fNbSampForFic; j0Sample++) {
920  fT3d2_AdcValues[fNbSampForFic * i0StexEcha + j0Sample] =
921  &fT3d1_AdcValues[0] + fFileHeader->fReqNbOfEvts * (fNbSampForFic * i0StexEcha + j0Sample);
922  }
923  }
924  }
925  //................................. Init to zero
926  for (Int_t iza = 0; iza < fEcal->MaxCrysEcnaInStex(); iza++) {
927  for (Int_t izb = 0; izb < fNbSampForFic; izb++) {
928  for (Int_t izc = 0; izc < fFileHeader->fReqNbOfEvts; izc++) {
929  if (fT3d_AdcValues[iza][izb][izc] != (Double_t)0) {
930  fMiscDiag[0]++;
931  fT3d_AdcValues[iza][izb][izc] = (Double_t)0;
932  }
933  }
934  }
935  }
936 
937  //--------------------------------------------------------- (GetReadyToReadData)
938  //====================================================================================
939  //
940  // allocation of the 2D array fT2d_NbOfEvts[channel][sample] (Max nb of evts)
941  //
942  //====================================================================================
943 
944  if (fT2d_NbOfEvts == nullptr) {
945  fT2d_NbOfEvts = new Int_t*[fEcal->MaxCrysEcnaInStex()];
946  fCnew++;
948  fCnew++;
949 
950  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
951  fT2d_NbOfEvts[i0StexEcha] = &fT1d_NbOfEvts[0] + i0StexEcha * fNbSampForFic;
952  }
953 
954  //................ Init the array to 0
955  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
956  for (Int_t i0Sample = 0; i0Sample < fNbSampForFic; i0Sample++) {
957  fT2d_NbOfEvts[i0StexEcha][i0Sample] = 0;
958  }
959  }
960  } else {
961  std::cerr << "!TEcnaRun::GetReadyToReadData(...)> *** ERROR *** No allocation for fT2d_NbOfEvts!"
962  << " Pointer already not NULL " << fTTBELL << std::endl;
963  // {Int_t cintoto; std::cout << "Enter: 0 and RETURN to continue or: CTRL C to exit"
964  // << std::endl; std::cin >> cintoto;}
965  }
966  } else {
967  std::cerr << std::endl
968  << "!TEcnaRun::GetReadyToReadData(...)> "
969  << " *** ERROR *** " << std::endl
970  << " --------------------------------------------------" << std::endl
971  << " NULL or NEGATIVE values for arguments" << std::endl
972  << " with expected positive values:" << std::endl
973  << " Number of Stins in Stex = " << fEcal->MaxStinEcnaInStex() << std::endl
974  << " Number of crystals in Stin = " << fEcal->MaxCrysInStin() << std::endl
975  << " Number of samples by channel = " << fNbSampForFic << std::endl
976  << std::endl
977  << std::endl
978  << " hence, no memory allocation for array member has been performed." << std::endl;
979 
980  std::cout << "Enter: 0 and RETURN to continue or: CTRL C to exit";
981  Int_t toto;
982  std::cin >> toto;
983  }
984  //----------------------------------------------------------- (GetReadyToReadData)
986  std::cout << std::endl;
987  std::cout << "*TEcnaRun::GetReadyToReadData(...)>" << std::endl
988  << " The method has been called with the following argument values:" << std::endl
989  << " Analysis name = " << fFileHeader->fTypAna << std::endl
990  << " Run number = " << fFileHeader->fRunNumber << std::endl
991  << " Run type = " << fFileHeader->fRunType << std::endl
992  << " First requested event number = " << fFileHeader->fFirstReqEvtNumber << std::endl
993  << " Last requested event number = " << fFileHeader->fLastReqEvtNumber << std::endl
994  << " " << fStexName.Data() << " number = " << fFileHeader->fStex
995  << std::endl
996  << " Number of " << fStinName.Data() << " in " << fStexName.Data() << " = "
997  << fEcal->MaxStinEcnaInStex() << std::endl
998  << " Number of crystals in " << fStinName.Data() << " = " << fEcal->MaxCrysInStin()
999  << std::endl
1000  << " Number of samples by channel = " << fNbSampForFic << std::endl
1001  << std::endl;
1002  }
1003 
1004  fReadyToReadData = 1; // set flag
1005  } else {
1007  std::cout << "!TEcnaRun::GetReadyToReadData(...) > WARNING/CORRECTION:" << std::endl
1008  << "! The fisrt requested event number is not positive (nfirst = " << nfirst << ") " << fTTBELL
1009  << std::endl;
1010  }
1011  }
1012  } else {
1014  std::cout << std::endl
1015  << "!TEcnaRun::GetReadyToReadData(...)> WARNING/CORRECTION:" << std::endl
1016  << "! The number of requested events (nbevts = " << nbevts << ") is too large." << std::endl
1017  << "! Last event number = " << nlast << " > number of entries = " << nentries << ". " << fTTBELL
1018  << std::endl
1019  << std::endl;
1020  }
1021  }
1022  } else {
1023  std::cout << "!TEcnaRun::GetReadyToReadData(...) *** ERROR ***> "
1024  << " The first requested event number is greater than the number of entries." << fTTBELL << std::endl;
1025  }
1027  std::cout << "*TEcnaRun::GetReadyToReadData(...)> Leaving the method. fReadyToReadData = " << fReadyToReadData
1028  << std::endl;
1029  }
1030 
1031 } // end of GetReadyToReadData

References EcnaPython_AdcPeg12_S1_10_R170298_1_0_150_Dee0::cerr, gather_cfg::cout, fCnew, fCodePrintAllComments, fCodePrintNoComment, fEcal, fFileHeader, TEcnaHeader::fFirstReqEvtNumber, fFlagPrint, TEcnaHeader::fLastReqEvtNumber, fMiscDiag, fNbOfMiscDiagCounters, fNbSampForFic, fObjectManager, fReadyToReadData, TEcnaHeader::fReqNbOfEvts, TEcnaHeader::fRunNumber, TEcnaHeader::fRunType, fSpecialStexStinNotIndexed, TEcnaHeader::fStex, fStexName, fStinName, fT1d_NbOfEvts, fT1d_StexStinFromIndex, fT2d_NbOfEvts, fT3d1_AdcValues, fT3d2_AdcValues, fT3d_AdcValues, fTagAdcEvt, fTagAvHfn, fTagAvLfn, fTagAvMeanCorss, fTagAvPed, fTagAvSigCorss, fTagAvTno, fTagCorCss, fTagCovCss, fTagHFccMoStins, fTagHfCor, fTagHfCov, fTagHfn, fTagLFccMoStins, fTagLfCor, fTagLfCov, fTagLfn, fTagMeanCorss, fTagMSp, fTagNbOfEvts, fTagPed, fTagSigCorss, fTagSSp, fTagStinNumbers, fTagTno, fTTBELL, TEcnaHeader::fTypAna, TEcnaHeader::HeaderParameters(), TEcnaParEcal::MaxCrysEcnaInStex(), TEcnaParEcal::MaxCrysInStin(), TEcnaParEcal::MaxStinEcnaInStex(), nlast, and contentValuesCheck::run_number.

◆ GetRootFileName()

TString TEcnaRun::GetRootFileName ( )

Definition at line 1355 of file TEcnaRun.cc.

1355 { return fRootFileName; }

References fRootFileName.

◆ GetRootFileNameShort()

TString TEcnaRun::GetRootFileNameShort ( )

Definition at line 1356 of file TEcnaRun.cc.

1356 { return fRootFileNameShort; }

References fRootFileNameShort.

Referenced by TEcnaGui::Calculations().

◆ GetSampleAdcValues()

Bool_t TEcnaRun::GetSampleAdcValues ( const Int_t &  n1EventNumber,
const Int_t &  n1StexStin,
const Int_t &  i0StinEcha,
const Int_t &  i0Sample,
const Double_t &  adcvalue 
)

Definition at line 1057 of file TEcnaRun.cc.

1061  {
1062  //Building of the arrays fT1d_StexStinFromIndex[] and fT3d_AdcValues[][][]
1063 
1064  fBuildEvtNotSkipped++; // event not skipped by cmsRun
1065 
1066  Bool_t ret_code = kFALSE;
1067 
1068  Int_t i0EventIndex = n1EventNumber - 1; // INDEX FOR Event number
1069  Int_t i0StexStinEcna = n1StexStin - 1; // INDEX FOR StexStin = Number_of_the_Stin_in_Stex - 1
1070 
1071  Int_t i_trouve = 0;
1072  //.................................................................. (GetSampleAdcValues)
1073  if (fReadyToReadData == 1) {
1074  if (n1StexStin >= 1 && n1StexStin <= fEcal->MaxStinEcnaInStex()) {
1075  if (i0StinEcha >= 0 && i0StinEcha < fEcal->MaxCrysInStin()) {
1076  if (i0Sample >= 0 && i0Sample < fEcal->MaxSampADC()) {
1077  //..... Put the StexStin number in 1D array fT1d_StexStinFromIndex[] = Stin index + 1
1078  if (fT1d_StexStinFromIndex != nullptr) // table fT1d_StexStinFromIndex[index] already allocated
1079  {
1080  ret_code = kTRUE;
1081 
1082  // StexStin already indexed
1083  if (n1StexStin == fT1d_StexStinFromIndex[i0StexStinEcna]) {
1084  i_trouve = 1;
1085  }
1086 
1087  // StexStin index not found: set index for new StexStin
1088  if (i_trouve != 1) {
1089  if (fT1d_StexStinFromIndex[i0StexStinEcna] == fSpecialStexStinNotIndexed) {
1090  fT1d_StexStinFromIndex[i0StexStinEcna] = n1StexStin;
1092  fTagStinNumbers[0] = 1;
1093  fStinIndexBuilt++; // number of found Stins
1094 
1096  if (fStinIndexBuilt == 1) {
1097  std::cout << std::endl
1098  << "*TEcnaRun::GetSampleAdcValues(...)> event " << n1EventNumber << " : first event for "
1099  << fStexName.Data() << " " << fFileHeader->fStex << "; " << fStinName.Data() << "s : ";
1100  }
1101  if (fFlagSubDet == "EB") {
1102  std::cout << fT1d_StexStinFromIndex[i0StexStinEcna] << ", ";
1103  }
1104  if (fFlagSubDet == "EE") {
1106  fT1d_StexStinFromIndex[i0StexStinEcna])
1107  << ", ";
1108  }
1109  }
1110  //.................................................... (GetSampleAdcValues)
1112  std::cout << " (" << fStinIndexBuilt << " " << fStinName.Data() << " found), channel " << i0StinEcha
1113  << ", i0Sample " << i0Sample << std::endl;
1114  }
1115  ret_code = kTRUE;
1116  } // if ( fT1d_StexStinFromIndex[i0StexStinEcna] == fSpecialStexStinNotIndexed )
1117  else {
1118  std::cout << "!TEcnaRun::GetSampleAdcValues(...)> *** ERROR ***> NOT ALLOWED if RESULT. "
1119  << " n1StexStin = " << n1StexStin << ", fT1d_StexStinFromIndex[" << i0StexStinEcna
1120  << "] = " << fT1d_StexStinFromIndex[i0StexStinEcna]
1121  << ", fStinIndexBuilt = " << fStinIndexBuilt << fTTBELL << std::endl;
1122  ret_code = kFALSE;
1123  }
1124  } // if (i_trouve != 1 )
1125 
1126  } // if( fT1d_StexStinFromIndex != 0 )
1127  else {
1128  std::cout << "!TEcnaRun, GetSampleAdcValues *** ERROR ***> "
1129  << " fT1d_StexStinFromIndex = " << fT1d_StexStinFromIndex
1130  << " fT1d_StexStinFromIndex[] ALLOCATION NOT DONE" << fTTBELL << std::endl;
1131  ret_code = kFALSE;
1132  } //.................................................................. (GetSampleAdcValues)
1133  } // end of if( i0Sample >= 0 && i0Sample < fNbSampForFic )
1134  else {
1135  //.......Reading data => Message and error only if sample >= fEcal->MaxSampADC()
1136  // (not fNbSampForFic, the later is used only for calculations)
1137  if (i0Sample >= fEcal->MaxSampADC()) {
1138  std::cout << "!TEcnaRun::GetSampleAdcValues(...) *** ERROR ***> "
1139  << " sample number = " << i0Sample << ". OUT OF BOUNDS"
1140  << " (max = " << fNbSampForFic << ")" << fTTBELL << std::endl;
1141  ret_code = kFALSE;
1142  } else {
1143  ret_code = kTRUE;
1144  }
1145  } // else of if( i0Sample >= 0 && i0Sample < fNbSampForFic )
1146  } // end of if( i0StinEcha >= 0 && i0StinEcha < fEcal->MaxCrysInStin() )
1147  else {
1148  std::cout << "!TEcnaRun::GetSampleAdcValues(...) *** ERROR ***> "
1149  << " channel number in " << fStinName.Data() << " = " << i0StinEcha << ". OUT OF BOUNDS"
1150  << " (max = " << fEcal->MaxCrysInStin() << ")" << fTTBELL << std::endl;
1151  ret_code = kFALSE;
1152  } // else of if( i0StinEcha >= 0 && i0StinEcha < fEcal->MaxCrysInStin() )
1153  } else {
1154  std::cout << "!TEcnaRun::GetSampleAdcValues(...) *** ERROR ***> " << fStinName.Data() << " number in "
1155  << fStexName.Data() << " = " << n1StexStin << ". OUT OF BOUNDS"
1156  << " (max = " << fEcal->MaxStinEcnaInStex() << ")" << fTTBELL << std::endl;
1157  ret_code = kFALSE;
1158  }
1159 
1160  //.................................................................. (GetSampleAdcValues)
1161  //........ Filling of the 2D array of the event numbers in the data reading loop and
1162  // filling of the 3D array of the ADC sample values
1163  //
1164  // ONLY if ret_code == kTRUE
1165 
1166  if (ret_code == kTRUE) {
1167  //............ 1) Conversion (Stin,i0StinEcha) -> i0StexEcha (same numbering for EB and EE)
1168  //==========================================================================================
1169  // n1StexStin (Tower or SC): 1 2 3
1170  // iStexStin 0 1 2
1171  //
1172  // i0StinEcha: 0......24 0......24 0......24
1173  //
1174  // i0StexEcha : 0......24 25......49 50......74 grouped by StexStin's
1175  // i0StexEcha+1 (Xtal): 1......25 26......50 51......75
1176  //
1177  //==========================================================================================
1178 
1179  Int_t i0StexEcha = i0StexStinEcna * fEcal->MaxCrysInStin() + i0StinEcha;
1180 
1181  //--------------------------------------------------------- (GetSampleAdcValues)
1182  if (i0StexEcha >= 0 && i0StexEcha < fEcal->MaxCrysEcnaInStex()) {
1183  //............ 2) Increase of the nb of evts for (StexEcha,sample) (events found in the data)
1184  (fT2d_NbOfEvts[i0StexEcha][i0Sample])++; // value after first incrementation = 1
1185  fTagNbOfEvts[0] = 1;
1187 
1188  //............ 3) Filling of the 3D array of the ADC values
1189  if (i0EventIndex >= 0 && i0EventIndex < fFileHeader->fReqNbOfEvts) {
1190  if (i0Sample >= 0 && i0Sample < fNbSampForFic) {
1191  fT3d_AdcValues[i0StexEcha][i0Sample][i0EventIndex] = adcvalue;
1192  } else {
1193  std::cout << "!TEcnaRun::GetSampleAdcValues(...) *** ERROR ***> "
1194  << " sample index = " << i0Sample << ". OUT OF BOUNDS"
1195  << " (max = " << fNbSampForFic << ")" << fTTBELL << std::endl;
1196  }
1197  } else {
1198  std::cout << "!TEcnaRun::GetSampleAdcValues(...) *** ERROR ***> "
1199  << " event number = " << n1EventNumber << ". OUT OF BOUNDS"
1200  << " (max = " << fFileHeader->fReqNbOfEvts << ")" << fTTBELL << std::endl;
1201  ret_code = kFALSE;
1202  }
1203  } else {
1204  std::cout << "!TEcnaRun::GetSampleAdcValues(...) *** ERROR ***> "
1205  << " CHANNEL NUMBER OUT OF BOUNDS" << std::endl
1206  << " i0StexEcha number = " << i0StexEcha << " , n1StexStin = " << n1StexStin
1207  << " , i0StinEcha = " << i0StinEcha
1208  << " , fEcal->MaxCrysEcnaInStex() = " << fEcal->MaxCrysEcnaInStex() << fTTBELL << std::endl;
1209  ret_code = kFALSE;
1210  // {Int_t cintoto; std::cout << "TAPER 0 POUR CONTINUER" << std::endl; cin >> cintoto;}
1211  }
1212  } // end of if( ret_code == kTRUE )
1213  else {
1214  std::cout << "!TEcnaRun::GetSampleAdcValues(...) *** ERROR ***> ret_code = kFALSE " << fTTBELL << std::endl;
1215  }
1216  } // end of if(fReadyToReadData == 1)
1217  else {
1218  std::cout << "!TEcnaRun::GetSampleAdcValues(...) *** ERROR ***> GetReadyToReadData(...) not called." << fTTBELL
1219  << std::endl;
1220  ret_code = kFALSE;
1221  }
1222  //.................................................................. (GetSampleAdcValues)
1223  if (ret_code == kFALSE) {
1224  std::cout << "!TEcnaRun::GetSampleAdcValues(...)> *** ERROR ***> ret_code = " << ret_code
1225  << " (FALSE). Event: " << n1EventNumber << ", " << fStexName.Data() << ": " << fFileHeader->fStex << ", "
1226  << fStinName.Data() << ": " << n1StexStin << ", channel: " << i0StinEcha << ", Sample: " << i0Sample
1227  << ", ADC value: " << adcvalue << std::endl;
1228  }
1229  return ret_code;
1230 }

References gather_cfg::cout, fBuildEvtNotSkipped, fCodePrintAllComments, fEcal, fEcalNumbering, fFileHeader, fFlagPrint, fFlagSubDet, TEcnaHeader::fNbOfEvtsCalc, fNbSampForFic, fReadyToReadData, TEcnaHeader::fReqNbOfEvts, fSpecialStexStinNotIndexed, TEcnaHeader::fStex, fStexName, fStinIndexBuilt, fStinName, TEcnaHeader::fStinNumbersCalc, fT1d_StexStinFromIndex, fT2d_NbOfEvts, fT3d_AdcValues, fTagNbOfEvts, fTagStinNumbers, fTTBELL, TEcnaNumbering::GetDeeSCConsFrom1DeeSCEcna(), TEcnaParEcal::MaxCrysEcnaInStex(), TEcnaParEcal::MaxCrysInStin(), TEcnaParEcal::MaxSampADC(), and TEcnaParEcal::MaxStinEcnaInStex().

◆ HighFrequencyCorrelationsBetweenChannels()

void TEcnaRun::HighFrequencyCorrelationsBetweenChannels ( )

Definition at line 2970 of file TEcnaRun.cc.

2970  {
2971  //Calculation of the High Frequency Correlations between channels
2972 
2973  //... preliminary calculation of the covariances if not done yet.
2974  if (fTagHfCov[0] != 1) {
2976  fTagHfCov[0] = 0;
2977  }
2978 
2980  std::cout << "*TEcnaRun::HighFrequencyCorrelationsBetweenChannels()" << std::endl;
2981  }
2983  std::cout << " Calculation of the High Frequency Correlations between channels" << std::endl
2984  << " Starting allocation. " << std::endl;
2985  }
2986 
2987  //................. allocation fT2d_hf_cor + init to zero (mandatory)
2988  if (fT2d_hf_cor == nullptr) {
2989  const Int_t n_StexEcha = fEcal->MaxCrysEcnaInStex();
2990  fT2d_hf_cor = new Double_t*[n_StexEcha];
2991  fCnew++;
2992  fT2d1_hf_cor = new Double_t[n_StexEcha * n_StexEcha];
2993  fCnew++;
2994  for (Int_t i0StexEcha = 0; i0StexEcha < n_StexEcha; i0StexEcha++) {
2995  fT2d_hf_cor[i0StexEcha] = &fT2d1_hf_cor[0] + i0StexEcha * n_StexEcha;
2996  }
2997  }
2998 
2999  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
3000  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
3001  if (fT2d_hf_cor[i0StexEcha][j0StexEcha] != (Double_t)0) {
3002  fMiscDiag[24]++;
3003  fT2d_hf_cor[i0StexEcha][j0StexEcha] = (Double_t)0;
3004  }
3005  }
3006  }
3007 
3008  //................. calculation
3009  //........................... computation of half of the matrix, diagonal included
3010 
3011  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
3012  if ((fFlagSubDet == "EE" && fEcalNumbering->StexEchaForCons(fFileHeader->fStex, i0StexEcha) > 0) ||
3013  (fFlagSubDet == "EB")) {
3014  for (Int_t j0StexEcha = 0; j0StexEcha <= i0StexEcha; j0StexEcha++) {
3015  if ((fFlagSubDet == "EE" && fEcalNumbering->StexEchaForCons(fFileHeader->fStex, j0StexEcha) > 0) ||
3016  (fFlagSubDet == "EB")) {
3017  if (fT2d_hf_cov[i0StexEcha][i0StexEcha] > 0 && fT2d_hf_cov[j0StexEcha][j0StexEcha] > 0) {
3018  fT2d_hf_cor[i0StexEcha][j0StexEcha] =
3019  fT2d_hf_cov[i0StexEcha][j0StexEcha] / ((Double_t)sqrt(fT2d_hf_cov[i0StexEcha][i0StexEcha]) *
3020  (Double_t)sqrt(fT2d_hf_cov[j0StexEcha][j0StexEcha]));
3021  } else {
3022  fT2d_hf_cor[i0StexEcha][j0StexEcha] = (Double_t)0.;
3023  }
3024 
3025  fT2d_hf_cor[j0StexEcha][i0StexEcha] = fT2d_hf_cor[i0StexEcha][j0StexEcha];
3026  }
3027  }
3028  }
3029  if (i0StexEcha % 100 == 0) {
3030  std::cout << i0StexEcha << "[HFN Cor], ";
3031  }
3032  }
3033  std::cout << std::endl;
3034 
3035  fTagHfCor[0] = 1;
3037 }

References gather_cfg::cout, fCnew, fCodePrintAllComments, fCodePrintNoComment, fEcal, fEcalNumbering, fFileHeader, fFlagPrint, fFlagSubDet, TEcnaHeader::fHfCorCalc, fMiscDiag, TEcnaHeader::fStex, fT2d1_hf_cor, fT2d_hf_cor, fT2d_hf_cov, fTagHfCor, fTagHfCov, HighFrequencyCovariancesBetweenChannels(), TEcnaParEcal::MaxCrysEcnaInStex(), mathSSE::sqrt(), and TEcnaNumbering::StexEchaForCons().

Referenced by Expert1Calculations(), and HighFrequencyMeanCorrelationsBetweenStins().

◆ HighFrequencyCovariancesBetweenChannels()

void TEcnaRun::HighFrequencyCovariancesBetweenChannels ( )

Definition at line 2848 of file TEcnaRun.cc.

2848  {
2849  //Calculation of the High Frequency Covariances between channels
2850 
2852  std::cout << "*TEcnaRun::HighFrequencyCovariancesBetweenChannels()" << std::endl;
2853  }
2855  std::cout << " Calculation of the High Frequency Covariances between channels" << std::endl;
2856  }
2857 
2858  //................. allocation fT2d_hf_cov + init to zero (mandatory)
2859  if (fT2d_hf_cov == nullptr) {
2860  const Int_t n_StexEcha = fEcal->MaxCrysEcnaInStex();
2861  fT2d_hf_cov = new Double_t*[n_StexEcha];
2862  fCnew++;
2863  fT2d1_hf_cov = new Double_t[n_StexEcha * n_StexEcha];
2864  fCnew++;
2865  for (Int_t i0StexEcha = 0; i0StexEcha < n_StexEcha; i0StexEcha++) {
2866  fT2d_hf_cov[i0StexEcha] = &fT2d1_hf_cov[0] + i0StexEcha * n_StexEcha;
2867  }
2868  }
2869 
2870  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2871  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
2872  if (fT2d_hf_cov[i0StexEcha][j0StexEcha] != (Double_t)0) {
2873  fMiscDiag[23]++;
2874  fT2d_hf_cov[i0StexEcha][j0StexEcha] = (Double_t)0;
2875  }
2876  }
2877  }
2878 
2879  //................... Allocation mean_over_samples(i0StexEcha, n_event)
2880  TMatrixD mean_over_samples(fEcal->MaxCrysEcnaInStex(), fNumberOfEvents);
2881  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2882  for (Int_t n_event = 0; n_event < fNumberOfEvents; n_event++) {
2883  mean_over_samples(i0StexEcha, n_event) = (Double_t)0.;
2884  }
2885  }
2886  //................... Allocation cov_over_samp(i0StexEcha,j0StexEcha)
2887  TMatrixD cov_over_samp(fEcal->MaxCrysEcnaInStex(), fEcal->MaxCrysEcnaInStex());
2888  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2889  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
2890  cov_over_samp(i0StexEcha, j0StexEcha) = (Double_t)0.;
2891  }
2892  }
2893 
2894  //........................................... Calculation (HighFrequencyCovariancesBetweenChannels)
2896  std::cout << " Calculation of the mean (over the events)" << std::endl
2897  << " of the covariances between the channels (over the samples 1 to " << fNbSampForCalc << ")."
2898  << std::endl;
2899  }
2900 
2901  std::cout << " Please, wait (end at i= " << fEcal->MaxCrysEcnaInStex() << "): " << std::endl;
2902 
2903  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2904  if ((fFlagSubDet == "EE" && fEcalNumbering->StexEchaForCons(fFileHeader->fStex, i0StexEcha) > 0) ||
2905  (fFlagSubDet == "EB")) {
2906  for (Int_t n_event = 0; n_event < fNumberOfEvents; n_event++) {
2907  // Calculation, for each event, of the mean over the samples ( = E_s[A(c_i,s*,e_n] )
2908  mean_over_samples(i0StexEcha, n_event) = (Double_t)0.;
2909  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
2910  mean_over_samples(i0StexEcha, n_event) += fT3d_AdcValues[i0StexEcha][i0Sample][n_event];
2911  }
2912  mean_over_samples(i0StexEcha, n_event) /= (Double_t)fNbSampForCalc;
2913  }
2914  }
2915  if (i0StexEcha % 100 == 0) {
2916  std::cout << i0StexEcha << "[HFNa Cov], ";
2917  }
2918  }
2919  std::cout << std::endl;
2920 
2921  std::cout << " Please, wait (end at i= " << fEcal->MaxCrysEcnaInStex() << "): " << std::endl;
2922 
2923  //... Calculation of half of the matrix, diagonal included (HighFrequencyCovariancesBetweenChannels)
2924  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2925  if ((fFlagSubDet == "EE" && fEcalNumbering->StexEchaForCons(fFileHeader->fStex, i0StexEcha) > 0) ||
2926  (fFlagSubDet == "EB")) {
2927  for (Int_t j0StexEcha = 0; j0StexEcha <= i0StexEcha; j0StexEcha++) {
2928  if ((fFlagSubDet == "EE" && fEcalNumbering->StexEchaForCons(fFileHeader->fStex, j0StexEcha) > 0) ||
2929  (fFlagSubDet == "EB")) {
2930  for (Int_t n_event = 0; n_event < fNumberOfEvents; n_event++) {
2931  // Calculation, for each event, of the covariance over the samples
2932  cov_over_samp(i0StexEcha, j0StexEcha) = (Double_t)0;
2933  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
2934  cov_over_samp(i0StexEcha, j0StexEcha) +=
2935  (fT3d_AdcValues[i0StexEcha][i0Sample][n_event] - mean_over_samples(i0StexEcha, n_event)) *
2936  (fT3d_AdcValues[j0StexEcha][i0Sample][n_event] - mean_over_samples(j0StexEcha, n_event));
2937  }
2938  cov_over_samp(i0StexEcha, j0StexEcha) /= (Double_t)fNbSampForCalc;
2939  }
2940  //....... Calculation of the mean over the events of Cov_s[A(c_i,s*,e*),A(c_j,s*,e*)]
2941  //......... Calculation of half of the matrix, diagonal included
2942  fT2d_hf_cov[i0StexEcha][j0StexEcha] = (Double_t)0;
2943  for (Int_t n_event = 0; n_event < fNumberOfEvents; n_event++) {
2944  fT2d_hf_cov[i0StexEcha][j0StexEcha] += cov_over_samp(i0StexEcha, j0StexEcha);
2945  }
2946  fT2d_hf_cov[i0StexEcha][j0StexEcha] /= (Double_t)fNumberOfEvents;
2947 
2948  fT2d_hf_cov[j0StexEcha][i0StexEcha] = fT2d_hf_cov[i0StexEcha][j0StexEcha];
2949  }
2950  }
2951  }
2952  if (i0StexEcha % 100 == 0) {
2953  std::cout << i0StexEcha << "[HFNb Cov], ";
2954  }
2955  }
2956  std::cout << std::endl;
2957 
2958  fTagHfCov[0] = 1;
2960 }

References gather_cfg::cout, fCnew, fCodePrintAllComments, fCodePrintNoComment, fEcal, fEcalNumbering, fFileHeader, fFlagPrint, fFlagSubDet, TEcnaHeader::fHfCovCalc, fMiscDiag, fNbSampForCalc, fNumberOfEvents, TEcnaHeader::fStex, fT2d1_hf_cov, fT2d_hf_cov, fT3d_AdcValues, fTagHfCov, TEcnaParEcal::MaxCrysEcnaInStex(), and TEcnaNumbering::StexEchaForCons().

Referenced by HighFrequencyCorrelationsBetweenChannels().

◆ HighFrequencyMeanCorrelationsBetweenSCs()

void TEcnaRun::HighFrequencyMeanCorrelationsBetweenSCs ( )

◆ HighFrequencyMeanCorrelationsBetweenStins()

void TEcnaRun::HighFrequencyMeanCorrelationsBetweenStins ( )

Definition at line 3162 of file TEcnaRun.cc.

3162  {
3163  //Calculation of the mean High Frequency Correlations
3164  //between channels for each Stin
3165 
3166  //... preliminary calculation of the High Frequency Cor(c,c) if not done yet
3167  // Only one tag (dim=1) to set to 0 (no write in the result ROOT file)
3168  if (fTagHfCor[0] != 1) {
3170  fTagHfCor[0] = 0;
3171  }
3172 
3173  //..... mean fT2d_hfcc_mostins for each pair (Stin_X,Stin_Y)
3175  std::cout << "*TEcnaRun::HighFrequencyMeanCorrelationsBetweenStins()" << std::endl;
3176  }
3178  std::cout << " Calculation of the mean, for each " << fFlagSubDet.Data() << ", of the" << std::endl
3179  << " High Frequency Correlations between channels." << std::endl;
3180  }
3181 
3182  //................. allocation fT2d_hfcc_mostins + init to zero (mandatory)
3183  if (fT2d_hfcc_mostins == nullptr) {
3184  const Int_t n_Stin = fEcal->MaxStinEcnaInStex();
3185  fT2d_hfcc_mostins = new Double_t*[n_Stin];
3186  fCnew++;
3187  fT2d1_hfcc_mostins = new Double_t[n_Stin * n_Stin];
3188  fCnew++;
3189  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < n_Stin; i0StexStinEcna++) {
3190  fT2d_hfcc_mostins[i0StexStinEcna] = &fT2d1_hfcc_mostins[0] + i0StexStinEcna * n_Stin;
3191  }
3192  }
3193 
3194  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
3195  for (Int_t j0StexStinEcna = 0; j0StexStinEcna < fEcal->MaxStinEcnaInStex(); j0StexStinEcna++) {
3196  if (fT2d_hfcc_mostins[i0StexStinEcna][j0StexStinEcna] != (Double_t)0) {
3197  fMiscDiag[32]++;
3198  fT2d_hfcc_mostins[i0StexStinEcna][j0StexStinEcna] = (Double_t)0;
3199  }
3200  }
3201  }
3202 
3203  //..... Calculation of the mean HF Cor(c,c) for each pair (Stin_X,Stin_Y)
3204  //
3205  // ! => Warning: this matrix is NOT symmetric => take N*N elements
3206  // Only (Stin,Stin) matrix is symmetric.
3207  // (StinEcha,StinEcha) matrix inside a (Stin,Stin) element is NOT symmetric
3208  // (except for the (Stin,Stin) DIAGONAL elements)
3209  // Then:
3210  // 1D array half_LFccMos[N*N] to put the (channel,channel) correlations
3211 
3212  Int_t ndim = (Int_t)(fEcal->MaxCrysInStin() * fEcal->MaxCrysInStin());
3213 
3214  TVectorD half_HFccMos(ndim);
3215  for (Int_t i = 0; i < ndim; i++) {
3216  half_HFccMos(i) = (Double_t)0.;
3217  }
3218 
3220  std::cout << "*TEcnaRun::HighFrequencyMeanCorrelationsBetweenStins()" << std::endl;
3221  }
3223  std::cout << " Calculation, for each " << fFlagSubDet.Data() << ", of the mean " << std::endl
3224  << " High Frequency cor(c,c)." << std::endl;
3225  }
3226 
3227  //..................... Calculation
3228  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
3229  for (Int_t j0StexStinEcna = 0; j0StexStinEcna < fEcal->MaxStinEcnaInStex(); j0StexStinEcna++) {
3230  //.................... Copy the relevant Mean Correlations(c,c') in 1D vector half_HFccMos()
3231  Int_t i_count = 0;
3232  for (Int_t i0StinCrys = 0; i0StinCrys < fEcal->MaxCrysInStin(); i0StinCrys++) {
3233  Int_t i0StexEcha = i0StexStinEcna * fEcal->MaxCrysInStin() + i0StinCrys;
3234  for (Int_t j0StinCrys = 0; j0StinCrys < fEcal->MaxCrysInStin(); j0StinCrys++) {
3235  Int_t j0StexEcha = j0StexStinEcna * fEcal->MaxCrysInStin() + j0StinCrys;
3236  if ((i0StexEcha >= 0 && i0StexEcha < fEcal->MaxCrysEcnaInStex()) &&
3237  (j0StexEcha >= 0 && j0StexEcha < fEcal->MaxCrysEcnaInStex())) {
3238  half_HFccMos(i_count) = fT2d_hf_cor[i0StexEcha][j0StexEcha];
3239  i_count++;
3240  } else {
3241  std::cout << "!TEcnaRun::HighFrequencyMeanCorrelationsBetweenStins()> Channel number out of range."
3242  << "i0StexEcha = " << i0StexEcha << ", j0StexEcha = " << j0StexEcha << fTTBELL << std::endl;
3243  }
3244  }
3245  }
3246  //..... Calculation of the mean absolute values of the HF mean Correlations(c,c')
3247  fT2d_hfcc_mostins[i0StexStinEcna][j0StexStinEcna] = (Double_t)0;
3248  for (Int_t i_rcor = 0; i_rcor < ndim; i_rcor++) {
3249  fT2d_hfcc_mostins[i0StexStinEcna][j0StexStinEcna] += fabs(half_HFccMos(i_rcor));
3250  }
3251  fT2d_hfcc_mostins[i0StexStinEcna][j0StexStinEcna] /= (Double_t)ndim;
3252  }
3253  if (i0StexStinEcna % 10 == 0) {
3254  std::cout << i0StexStinEcna << "[HFN MCtt], ";
3255  }
3256  }
3257  std::cout << std::endl;
3258 
3259  fTagHFccMoStins[0] = 1;
3261 } // ------- end of HighFrequencyMeanCorrelationsBetweenStins() -------

References gather_cfg::cout, fCnew, fCodePrintAllComments, fCodePrintNoComment, fEcal, fFileHeader, fFlagPrint, fFlagSubDet, TEcnaHeader::fHFccMoStinsCalc, fMiscDiag, fT2d1_hfcc_mostins, fT2d_hf_cor, fT2d_hfcc_mostins, fTagHFccMoStins, fTagHfCor, fTTBELL, HighFrequencyCorrelationsBetweenChannels(), mps_fire::i, TEcnaParEcal::MaxCrysInStin(), and TEcnaParEcal::MaxStinEcnaInStex().

Referenced by Expert2Calculations(), HighFrequencyMeanCorrelationsBetweenSCs(), and HighFrequencyMeanCorrelationsBetweenTowers().

◆ HighFrequencyMeanCorrelationsBetweenTowers()

void TEcnaRun::HighFrequencyMeanCorrelationsBetweenTowers ( )

◆ HighFrequencyNoise()

void TEcnaRun::HighFrequencyNoise ( )

Definition at line 1957 of file TEcnaRun.cc.

1957  {
1958  // Calculation, for each channel, of the mean (over the events)
1959  // of the ADC sigmas (over the samples 0 to fNbSampForCalc-1)
1960 
1961  //................... Allocation fT1d_evevt_of_sigsamp + init to zero (mandatory)
1962  if (fT1d_evevt_of_sigsamp == nullptr) {
1963  fT1d_evevt_of_sigsamp = new Double_t[fEcal->MaxCrysEcnaInStex()];
1964  fCnew++;
1965  }
1966  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1967  if (fT1d_evevt_of_sigsamp[i0StexEcha] != (Double_t)0) {
1968  fMiscDiag[14]++;
1969  fT1d_evevt_of_sigsamp[i0StexEcha] = (Double_t)0;
1970  }
1971  }
1972 
1973  //................... Allocations mean_over_samples, sigma_over_sample
1974  TVectorD mean_over_samples(fNumberOfEvents);
1975  for (Int_t i = 0; i < fNumberOfEvents; i++) {
1976  mean_over_samples(i) = (Double_t)0.;
1977  }
1978  TVectorD sigma_over_samples(fNumberOfEvents);
1979  for (Int_t i = 0; i < fNumberOfEvents; i++) {
1980  sigma_over_samples(i) = (Double_t)0.;
1981  }
1982 
1983  //..................... Calculation
1985  std::cout << "*TEcnaRun::HighFrequencyNoise()" << std::endl;
1986  }
1988  std::cout << " Calculation, for each channel, of the sigma (over the events)" << std::endl
1989  << " of the ADC expectation values (over the samples 1 to " << fNbSampForCalc << ")."
1990  << std::endl;
1991  }
1992 
1993  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1994  //..................... Calculation of the sigma over samples
1995  for (Int_t n_event = 0; n_event < fNumberOfEvents; n_event++) {
1996  // Calculation, for each event, of the mean over the samples
1997  mean_over_samples(n_event) = (Double_t)0.;
1998  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
1999  mean_over_samples(n_event) += fT3d_AdcValues[i0StexEcha][i0Sample][n_event];
2000  }
2001  mean_over_samples(n_event) /= (Double_t)fNbSampForCalc;
2002 
2003  // Calculation, for each event, of the sigma over the samples
2004  Double_t var_over_samples = (Double_t)0;
2005  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
2006  Double_t deviation = fT3d_AdcValues[i0StexEcha][i0Sample][n_event] - mean_over_samples(n_event);
2007  var_over_samples += deviation * deviation;
2008  }
2009  var_over_samples /= (Double_t)fNbSampForCalc;
2010 
2011  if (var_over_samples < 0) {
2012  std::cout << "!TEcnaRun::HighFrequencyNoise() *** ERROR ***> Negative variance! " << fTTBELL << std::endl;
2013  } else {
2014  sigma_over_samples(n_event) = sqrt(var_over_samples);
2015  }
2016  }
2017 
2018  //....... Calculation of the mean over the events of the sigma over samples
2019  for (Int_t n_event = 0; n_event < fNumberOfEvents; n_event++) {
2020  fT1d_evevt_of_sigsamp[i0StexEcha] += sigma_over_samples(n_event);
2021  }
2022 
2023  fT1d_evevt_of_sigsamp[i0StexEcha] /= (Double_t)fNumberOfEvents;
2024  }
2025  fTagHfn[0] = 1;
2026  fFileHeader->fHfnCalc++;
2027 }

References gather_cfg::cout, fCnew, fCodePrintAllComments, fCodePrintNoComment, fEcal, fFileHeader, fFlagPrint, TEcnaHeader::fHfnCalc, fMiscDiag, fNbSampForCalc, fNumberOfEvents, fT1d_evevt_of_sigsamp, fT3d_AdcValues, fTagHfn, fTTBELL, mps_fire::i, TEcnaParEcal::MaxCrysEcnaInStex(), and mathSSE::sqrt().

Referenced by AverageHighFrequencyNoise(), and StandardCalculations().

◆ Init()

void TEcnaRun::Init ( void  )

Definition at line 134 of file TEcnaRun.cc.

134  {
135  //Initialisation
136 
137  fCnew = 0;
138  fCdelete = 0;
139  fCnaCommand = 0;
140  fCnaError = 0;
141 
142  fTTBELL = '\007';
143 
144  //........................... TString file names init
145  fgMaxCar = (Int_t)512;
146 
147  //................ MiscDiag counters .................
148  fMaxMsgIndexForMiscDiag = (Int_t)10;
149  fNbOfMiscDiagCounters = (Int_t)50;
150  fMiscDiag = nullptr;
151 
152  fNumberOfEvents = 0;
153  //............................. init pointers ( Init() )
154  fT3d_AdcValues = nullptr;
155  fT3d2_AdcValues = nullptr;
156  fT3d1_AdcValues = nullptr;
157 
158  fT1d_StexStinFromIndex = nullptr;
159 
160  fT2d_NbOfEvts = nullptr;
161  fT1d_NbOfEvts = nullptr;
162 
163  fT2d_ev = nullptr;
164  fT1d_ev = nullptr;
165  fT2d_sig = nullptr;
166  fT1d_sig = nullptr;
167 
168  fT3d_cov_ss = nullptr;
169  fT3d2_cov_ss = nullptr;
170  fT3d1_cov_ss = nullptr;
171 
172  fT3d_cor_ss = nullptr;
173  fT3d2_cor_ss = nullptr;
174  fT3d1_cor_ss = nullptr;
175 
176  fT2d_lf_cov = nullptr;
177  fT2d1_lf_cov = nullptr;
178 
179  fT2d_lf_cor = nullptr;
180  fT2d1_lf_cor = nullptr;
181 
182  fT2d_hf_cov = nullptr;
183  fT2d1_hf_cov = nullptr;
184 
185  fT2d_hf_cor = nullptr;
186  fT2d1_hf_cor = nullptr;
187 
188  fT2d_lfcc_mostins = nullptr;
189  fT2d1_lfcc_mostins = nullptr;
190 
191  fT2d_hfcc_mostins = nullptr;
192  fT2d1_hfcc_mostins = nullptr;
193 
194  fT1d_ev_ev = nullptr;
195  fT1d_evsamp_of_sigevt = nullptr;
196  fT1d_ev_cor_ss = nullptr;
197  fT1d_av_mped = nullptr;
198  fT1d_av_totn = nullptr;
199  fT1d_av_lofn = nullptr;
200  fT1d_av_hifn = nullptr;
201  fT1d_av_ev_corss = nullptr;
202  fT1d_av_sig_corss = nullptr;
203 
204  fT1d_sigevt_of_evsamp = nullptr;
205  fT1d_evevt_of_sigsamp = nullptr;
206  fT1d_sig_cor_ss = nullptr;
207 
208  fT2dCrysNumbersTable = nullptr;
209  fT1dCrysNumbersTable = nullptr;
210 
211  //................................ tags ( Init() )
212  fTagStinNumbers = nullptr;
213 
214  fTagNbOfEvts = nullptr;
215 
216  fTagAdcEvt = nullptr;
217 
218  fTagMSp = nullptr;
219  fTagSSp = nullptr;
220 
221  fTagCovCss = nullptr;
222  fTagCorCss = nullptr;
223 
224  fTagHfCov = nullptr;
225  fTagHfCor = nullptr;
226  fTagLfCov = nullptr;
227  fTagLfCor = nullptr;
228 
229  fTagLFccMoStins = nullptr;
230  fTagHFccMoStins = nullptr;
231 
232  fTagPed = nullptr;
233  fTagTno = nullptr;
234  fTagMeanCorss = nullptr;
235 
236  fTagLfn = nullptr;
237  fTagHfn = nullptr;
238  fTagSigCorss = nullptr;
239 
240  fTagAvPed = nullptr;
241  fTagAvTno = nullptr;
242  fTagAvLfn = nullptr;
243  fTagAvHfn = nullptr;
244 
245  fTagAvMeanCorss = nullptr;
246  fTagAvSigCorss = nullptr;
247 
248  //................................................... Code Print ( Init() )
250  fCodePrintWarnings = fCnaParCout->GetCodePrint("Warnings "); // => default value
253 
255 
256  //...................................................
257  gCnaRootFile = nullptr;
258  fOpenRootFile = kFALSE;
259  fReadyToReadData = 0;
260 
261  //.............................................. Miscellaneous
263 
264  fStinIndexBuilt = 0;
266 
268 
269 } // end of Init()

References fBuildEvtNotSkipped, fCdelete, fCnaCommand, fCnaError, fCnaParCout, fCnew, fCodePrintAllComments, fCodePrintComments, fCodePrintNoComment, fCodePrintWarnings, fFlagPrint, fgMaxCar, fMaxMsgIndexForMiscDiag, fMemoReadNumberOfEventsforSamples, fMiscDiag, fNbOfMiscDiagCounters, fNumberOfEvents, fOpenRootFile, fReadyToReadData, fSpecialStexStinNotIndexed, fStinIndexBuilt, fT1d_av_ev_corss, fT1d_av_hifn, fT1d_av_lofn, fT1d_av_mped, fT1d_av_sig_corss, fT1d_av_totn, fT1d_ev, fT1d_ev_cor_ss, fT1d_ev_ev, fT1d_evevt_of_sigsamp, fT1d_evsamp_of_sigevt, fT1d_NbOfEvts, fT1d_sig, fT1d_sig_cor_ss, fT1d_sigevt_of_evsamp, fT1d_StexStinFromIndex, fT1dCrysNumbersTable, fT2d1_hf_cor, fT2d1_hf_cov, fT2d1_hfcc_mostins, fT2d1_lf_cor, fT2d1_lf_cov, fT2d1_lfcc_mostins, fT2d_ev, fT2d_hf_cor, fT2d_hf_cov, fT2d_hfcc_mostins, fT2d_lf_cor, fT2d_lf_cov, fT2d_lfcc_mostins, fT2d_NbOfEvts, fT2d_sig, fT2dCrysNumbersTable, fT3d1_AdcValues, fT3d1_cor_ss, fT3d1_cov_ss, fT3d2_AdcValues, fT3d2_cor_ss, fT3d2_cov_ss, fT3d_AdcValues, fT3d_cor_ss, fT3d_cov_ss, fTagAdcEvt, fTagAvHfn, fTagAvLfn, fTagAvMeanCorss, fTagAvPed, fTagAvSigCorss, fTagAvTno, fTagCorCss, fTagCovCss, fTagHFccMoStins, fTagHfCor, fTagHfCov, fTagHfn, fTagLFccMoStins, fTagLfCor, fTagLfCov, fTagLfn, fTagMeanCorss, fTagMSp, fTagNbOfEvts, fTagPed, fTagSigCorss, fTagSSp, fTagStinNumbers, fTagTno, fTTBELL, gCnaRootFile, and TEcnaParCout::GetCodePrint().

Referenced by TEcnaRun().

◆ LowFrequencyCorrelationsBetweenChannels()

void TEcnaRun::LowFrequencyCorrelationsBetweenChannels ( )

Definition at line 2765 of file TEcnaRun.cc.

2765  {
2766  //Calculation of the Low Frequency Correlations between channels
2767 
2768  //... preliminary calculation of the covariances if not done yet.
2769  if (fTagLfCov[0] != 1) {
2771  fTagLfCov[0] = 0;
2772  }
2773 
2775  std::cout << "*TEcnaRun::LowFrequencyCorrelationsBetweenChannels()" << std::endl;
2776  }
2778  std::cout << " Calculation of the Low Frequency Correlations between channels" << std::endl
2779  << " Starting allocation. " << std::endl;
2780  }
2781 
2782  //................. allocation fT2d_lf_cor + init to zero (mandatory)
2783  if (fT2d_lf_cor == nullptr) {
2784  const Int_t n_StexEcha = fEcal->MaxCrysEcnaInStex();
2785  fT2d_lf_cor = new Double_t*[n_StexEcha];
2786  fCnew++;
2787  fT2d1_lf_cor = new Double_t[n_StexEcha * n_StexEcha];
2788  fCnew++;
2789  for (Int_t i0StexEcha = 0; i0StexEcha < n_StexEcha; i0StexEcha++) {
2790  fT2d_lf_cor[i0StexEcha] = &fT2d1_lf_cor[0] + i0StexEcha * n_StexEcha;
2791  }
2792  }
2793 
2794  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2795  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
2796  if (fT2d_lf_cor[i0StexEcha][j0StexEcha] != (Double_t)0) {
2797  fMiscDiag[22]++;
2798  fT2d_lf_cor[i0StexEcha][j0StexEcha] = (Double_t)0;
2799  }
2800  }
2801  }
2802 
2803  //................. calculation
2804  //........................... computation of half of the matrix, diagonal included
2805  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2806  if ((fFlagSubDet == "EE" && fEcalNumbering->StexEchaForCons(fFileHeader->fStex, i0StexEcha) > 0) ||
2807  (fFlagSubDet == "EB")) {
2808  for (Int_t j0StexEcha = 0; j0StexEcha <= i0StexEcha; j0StexEcha++) {
2809  if ((fFlagSubDet == "EE" && fEcalNumbering->StexEchaForCons(fFileHeader->fStex, j0StexEcha) > 0) ||
2810  (fFlagSubDet == "EB")) {
2811  if (fT2d_lf_cov[i0StexEcha][i0StexEcha] > 0 && fT2d_lf_cov[j0StexEcha][j0StexEcha] > 0) {
2812  fT2d_lf_cor[i0StexEcha][j0StexEcha] =
2813  fT2d_lf_cov[i0StexEcha][j0StexEcha] /
2814  ((Double_t)sqrt(fT2d_lf_cov[i0StexEcha][i0StexEcha] * fT2d_lf_cov[j0StexEcha][j0StexEcha]));
2815  } else {
2816  fT2d_lf_cor[i0StexEcha][j0StexEcha] = (Double_t)0.;
2817  }
2818  fT2d_lf_cor[j0StexEcha][i0StexEcha] = fT2d_lf_cor[i0StexEcha][j0StexEcha];
2819  }
2820  }
2821  }
2822  if (i0StexEcha % 100 == 0) {
2823  std::cout << i0StexEcha << "[LFN Cor], ";
2824  }
2825  }
2826  std::cout << std::endl;
2827 
2828  fTagLfCor[0] = 1;
2830 }

References gather_cfg::cout, fCnew, fCodePrintAllComments, fCodePrintNoComment, fEcal, fEcalNumbering, fFileHeader, fFlagPrint, fFlagSubDet, TEcnaHeader::fLfCorCalc, fMiscDiag, TEcnaHeader::fStex, fT2d1_lf_cor, fT2d_lf_cor, fT2d_lf_cov, fTagLfCor, fTagLfCov, LowFrequencyCovariancesBetweenChannels(), TEcnaParEcal::MaxCrysEcnaInStex(), mathSSE::sqrt(), and TEcnaNumbering::StexEchaForCons().

Referenced by Expert1Calculations(), and LowFrequencyMeanCorrelationsBetweenStins().

◆ LowFrequencyCovariancesBetweenChannels()

void TEcnaRun::LowFrequencyCovariancesBetweenChannels ( )

Definition at line 2656 of file TEcnaRun.cc.

2656  {
2657  //Calculation of the Low Frequency Covariances between channels
2658 
2660  std::cout << "*TEcnaRun::LowFrequencyCovariancesBetweenChannels()" << std::endl;
2661  }
2663  std::cout << " Calculation of the Low Frequency Covariances between channels" << std::endl;
2664  }
2665 
2666  //................. allocation fT2d_lf_cov + init to zero (mandatory)
2667  if (fT2d_lf_cov == nullptr) {
2668  const Int_t n_StexEcha = fEcal->MaxCrysEcnaInStex();
2669  fT2d_lf_cov = new Double_t*[n_StexEcha];
2670  fCnew++;
2671  fT2d1_lf_cov = new Double_t[n_StexEcha * n_StexEcha];
2672  fCnew++;
2673  for (Int_t i0StexEcha = 0; i0StexEcha < n_StexEcha; i0StexEcha++) {
2674  fT2d_lf_cov[i0StexEcha] = &fT2d1_lf_cov[0] + i0StexEcha * n_StexEcha;
2675  }
2676  }
2677 
2678  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2679  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
2680  if (fT2d_lf_cov[i0StexEcha][j0StexEcha] != (Double_t)0) {
2681  fMiscDiag[21]++;
2682  fT2d_lf_cov[i0StexEcha][j0StexEcha] = (Double_t)0;
2683  }
2684  }
2685  }
2686  //........................................... Calculation (LowFrequencyCovariancesBetweenChannels)
2687  //................... Allocation mean_over_samples(i0StexEcha, n_event)
2688  TMatrixD mean_over_samples(fEcal->MaxCrysEcnaInStex(), fNumberOfEvents);
2689  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2690  for (Int_t n_event = 0; n_event < fNumberOfEvents; n_event++) {
2691  mean_over_samples(i0StexEcha, n_event) = (Double_t)0.;
2692  }
2693  }
2694  //................... Allocation MoeOfMos(i0StexEcha)
2695  TVectorD MoeOfMos(fEcal->MaxCrysEcnaInStex());
2696  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2697  MoeOfMos(i0StexEcha) = (Double_t)0.;
2698  }
2699 
2700  //................... Calculation
2702  std::cout << " Calculation, for each pair of channels, of the covariance (over the events)" << std::endl
2703  << " between the ADC expectation values (over the samples 1 to " << fNbSampForCalc << ")."
2704  << std::endl;
2705  }
2706 
2707  std::cout << " Please, wait (end at i= " << fEcal->MaxCrysEcnaInStex() << "): " << std::endl;
2708 
2709  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2710  MoeOfMos(i0StexEcha) = (Double_t)0;
2711 
2712  if ((fFlagSubDet == "EE" && fEcalNumbering->StexEchaForCons(fFileHeader->fStex, i0StexEcha) > 0) ||
2713  (fFlagSubDet == "EB")) {
2714  for (Int_t n_event = 0; n_event < fNumberOfEvents; n_event++) {
2715  // Calculation, for each event, of the mean over the samples ( = E_s[A(c_i,s*,e_n] )
2716  mean_over_samples(i0StexEcha, n_event) = (Double_t)0.;
2717  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
2718  mean_over_samples(i0StexEcha, n_event) += fT3d_AdcValues[i0StexEcha][i0Sample][n_event];
2719  }
2720  mean_over_samples(i0StexEcha, n_event) /= (Double_t)fNbSampForCalc;
2721  }
2722  //Calculation of the mean over the events of E_s[A(c_i,s*,e_n] ( = E_e[E_s[A(c_i,s*,e*]] )
2723  for (Int_t n_event = 0; n_event < fNumberOfEvents; n_event++) {
2724  MoeOfMos(i0StexEcha) += mean_over_samples(i0StexEcha, n_event);
2725  }
2726  MoeOfMos(i0StexEcha) /= (Double_t)fNumberOfEvents;
2727  }
2728  }
2729 
2730  //... Calculation of half of the matrix, diagonal included (LowFrequencyCovariancesBetweenChannels)
2731  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2732  if ((fFlagSubDet == "EE" && fEcalNumbering->StexEchaForCons(fFileHeader->fStex, i0StexEcha) > 0) ||
2733  (fFlagSubDet == "EB")) {
2734  for (Int_t j0StexEcha = 0; j0StexEcha <= i0StexEcha; j0StexEcha++) {
2735  if ((fFlagSubDet == "EE" && fEcalNumbering->StexEchaForCons(fFileHeader->fStex, j0StexEcha) > 0) ||
2736  (fFlagSubDet == "EB")) {
2737  fT2d_lf_cov[i0StexEcha][j0StexEcha] = (Double_t)0;
2738  for (Int_t n_event = 0; n_event < fNumberOfEvents; n_event++) {
2739  fT2d_lf_cov[i0StexEcha][j0StexEcha] += (mean_over_samples(i0StexEcha, n_event) - MoeOfMos(i0StexEcha)) *
2740  (mean_over_samples(j0StexEcha, n_event) - MoeOfMos(j0StexEcha));
2741  }
2742  fT2d_lf_cov[i0StexEcha][j0StexEcha] /= (Double_t)fNumberOfEvents;
2743 
2744  fT2d_lf_cov[j0StexEcha][i0StexEcha] = fT2d_lf_cov[i0StexEcha][j0StexEcha];
2745  }
2746  }
2747  if (i0StexEcha % 100 == 0) {
2748  std::cout << i0StexEcha << "[LFN Cov], ";
2749  }
2750  }
2751  }
2752  std::cout << std::endl;
2753  fTagLfCov[0] = 1;
2755 }

References gather_cfg::cout, fCnew, fCodePrintAllComments, fCodePrintNoComment, fEcal, fEcalNumbering, fFileHeader, fFlagPrint, fFlagSubDet, TEcnaHeader::fLfCovCalc, fMiscDiag, fNbSampForCalc, fNumberOfEvents, TEcnaHeader::fStex, fT2d1_lf_cov, fT2d_lf_cov, fT3d_AdcValues, fTagLfCov, TEcnaParEcal::MaxCrysEcnaInStex(), and TEcnaNumbering::StexEchaForCons().

Referenced by LowFrequencyCorrelationsBetweenChannels().

◆ LowFrequencyMeanCorrelationsBetweenSCs()

void TEcnaRun::LowFrequencyMeanCorrelationsBetweenSCs ( )

◆ LowFrequencyMeanCorrelationsBetweenStins()

void TEcnaRun::LowFrequencyMeanCorrelationsBetweenStins ( )

Definition at line 3054 of file TEcnaRun.cc.

3054  {
3055  //Calculation of the mean Low Frequency Correlations
3056  //between channels for each Stin
3057 
3058  //... preliminary calculation of the Low Frequency Cor(c,c) if not done yet
3059  // Only one tag (dim=1) to set to 0 (no write in the result ROOT file)
3060  if (fTagLfCor[0] != 1) {
3062  fTagLfCor[0] = 0;
3063  }
3064 
3065  //..... mean fT2d_lfcc_mostins for each pair (Stin_X,Stin_Y)
3067  std::cout << "*TEcnaRun::LowFrequencyMeanCorrelationsBetweenStins()" << std::endl;
3068  }
3070  std::cout << " Calculation of the mean, for each " << fStinName.Data() << ", of the" << std::endl
3071  << " Low Frequency Correlations between channels." << std::endl;
3072  }
3073 
3074  //................. allocation fT2d_lfcc_mostins + init to zero (mandatory)
3075  if (fT2d_lfcc_mostins == nullptr) {
3076  const Int_t n_Stin = fEcal->MaxStinEcnaInStex();
3077  fT2d_lfcc_mostins = new Double_t*[n_Stin];
3078  fCnew++;
3079  fT2d1_lfcc_mostins = new Double_t[n_Stin * n_Stin];
3080  fCnew++;
3081  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < n_Stin; i0StexStinEcna++) {
3082  fT2d_lfcc_mostins[i0StexStinEcna] = &fT2d1_lfcc_mostins[0] + i0StexStinEcna * n_Stin;
3083  }
3084  }
3085 
3086  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
3087  for (Int_t j0StexStinEcna = 0; j0StexStinEcna < fEcal->MaxStinEcnaInStex(); j0StexStinEcna++) {
3088  if (fT2d_lfcc_mostins[i0StexStinEcna][j0StexStinEcna] != (Double_t)0) {
3089  fMiscDiag[31]++;
3090  fT2d_lfcc_mostins[i0StexStinEcna][j0StexStinEcna] = (Double_t)0;
3091  }
3092  }
3093  }
3094 
3095  //..... Calculation of the mean LF Cor(c,c) for each pair (Stin_X,Stin_Y)
3096  //
3097  // ! => Warning: this matrix is NOT symmetric => take N*N elements
3098  // Only (Stin,Stin) matrix is symmetric.
3099  // (StinEcha,StinEcha) matrix inside a (Stin,Stin) element is NOT symmetric
3100  // (except for the (Stin,Stin) DIAGONAL elements)
3101  // Then:
3102  // 1D array half_LFccMos[N*N] to put the (channel,channel) correlations
3103 
3104  Int_t ndim = (Int_t)(fEcal->MaxCrysInStin() * fEcal->MaxCrysInStin());
3105 
3106  TVectorD half_LFccMos(ndim);
3107  for (Int_t i = 0; i < ndim; i++) {
3108  half_LFccMos(i) = (Double_t)0.;
3109  }
3110 
3111  //..................... Calculation
3113  std::cout << "*TEcnaRun::LowFrequencyMeanCorrelationsBetweenStins()" << std::endl;
3114  }
3116  std::cout << " Calculation, for each " << fStinName.Data() << ", of the mean " << std::endl
3117  << " Low Frequency cor(c,c)." << std::endl;
3118  }
3119 
3120  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
3121  for (Int_t j0StexStinEcna = 0; j0StexStinEcna < fEcal->MaxStinEcnaInStex(); j0StexStinEcna++) {
3122  //................... .Copy the Mean Correlations(c,c') in 1D vector half_LFccMos()
3123  Int_t i_count = 0;
3124  for (Int_t i0StinCrys = 0; i0StinCrys < fEcal->MaxCrysInStin(); i0StinCrys++) {
3125  Int_t i0StexEcha = i0StexStinEcna * fEcal->MaxCrysInStin() + i0StinCrys;
3126  for (Int_t j0StinCrys = 0; j0StinCrys < fEcal->MaxCrysInStin(); j0StinCrys++) {
3127  Int_t j0StexEcha = j0StexStinEcna * fEcal->MaxCrysInStin() + j0StinCrys;
3128  if ((i0StexEcha >= 0 && i0StexEcha < fEcal->MaxCrysEcnaInStex()) &&
3129  (j0StexEcha >= 0 && j0StexEcha < fEcal->MaxCrysEcnaInStex())) {
3130  half_LFccMos(i_count) = fT2d_lf_cor[i0StexEcha][j0StexEcha];
3131  i_count++;
3132  } else {
3133  std::cout << "!TEcnaRun::LowFrequencyMeanCorrelationsBetweenStins()> Channel number out of range."
3134  << "i0StexEcha = " << i0StexEcha << ", j0StexEcha = " << j0StexEcha << fTTBELL << std::endl;
3135  }
3136  }
3137  }
3138  //...... Calculation of the mean absolute values of the LF mean Correlations(c,c')
3139  fT2d_lfcc_mostins[i0StexStinEcna][j0StexStinEcna] = (Double_t)0;
3140  for (Int_t i_rcor = 0; i_rcor < ndim; i_rcor++) {
3141  fT2d_lfcc_mostins[i0StexStinEcna][j0StexStinEcna] += fabs(half_LFccMos(i_rcor));
3142  }
3143  fT2d_lfcc_mostins[i0StexStinEcna][j0StexStinEcna] /= (Double_t)ndim;
3144  }
3145  if (i0StexStinEcna % 10 == 0) {
3146  std::cout << i0StexStinEcna << "[LFN MCtt], ";
3147  }
3148  }
3149  std::cout << std::endl;
3150 
3151  fTagLFccMoStins[0] = 1;
3153 } // ------- end of LowFrequencyMeanCorrelationsBetweenStins() -------

References gather_cfg::cout, fCnew, fCodePrintAllComments, fCodePrintNoComment, fEcal, fFileHeader, fFlagPrint, TEcnaHeader::fLFccMoStinsCalc, fMiscDiag, fStinName, fT2d1_lfcc_mostins, fT2d_lf_cor, fT2d_lfcc_mostins, fTagLFccMoStins, fTagLfCor, fTTBELL, mps_fire::i, LowFrequencyCorrelationsBetweenChannels(), TEcnaParEcal::MaxCrysInStin(), and TEcnaParEcal::MaxStinEcnaInStex().

Referenced by Expert2Calculations(), LowFrequencyMeanCorrelationsBetweenSCs(), and LowFrequencyMeanCorrelationsBetweenTowers().

◆ LowFrequencyMeanCorrelationsBetweenTowers()

void TEcnaRun::LowFrequencyMeanCorrelationsBetweenTowers ( )

◆ LowFrequencyNoise()

void TEcnaRun::LowFrequencyNoise ( )

Definition at line 1884 of file TEcnaRun.cc.

1884  {
1885  // Calculation, for each channel, of the sigma (over the events)
1886  // of the ADC expectation values (over the samples 0 to fNbSampForCalc-1)
1887 
1888  //................... Allocation fT1d_sigevt_of_evsamp + init to zero (mandatory)
1889  if (fT1d_sigevt_of_evsamp == nullptr) {
1890  fT1d_sigevt_of_evsamp = new Double_t[fEcal->MaxCrysEcnaInStex()];
1891  fCnew++;
1892  }
1893  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1894  if (fT1d_sigevt_of_evsamp[i0StexEcha] != (Double_t)0) {
1895  fMiscDiag[13]++;
1896  fT1d_sigevt_of_evsamp[i0StexEcha] = (Double_t)0;
1897  }
1898  }
1899 
1900  //................... Allocation mean_over_samples
1901  TVectorD mean_over_samples(fNumberOfEvents);
1902  for (Int_t i = 0; i < fNumberOfEvents; i++) {
1903  mean_over_samples(i) = (Double_t)0.;
1904  }
1905 
1906  //..................... Calculation
1908  std::cout << "*TEcnaRun::LowFrequencyNoise()" << std::endl;
1909  }
1911  std::cout << " Calculation, for each channel, of the sigma (over the events)" << std::endl
1912  << " of the ADC expectation values (over the samples 1 to " << fNbSampForCalc << ")."
1913  << std::endl;
1914  }
1915 
1916  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1917  // Calculation of the mean over the events of the mean over the samples
1918  Double_t mean_over_events = (Double_t)0;
1919  for (Int_t n_event = 0; n_event < fNumberOfEvents; n_event++) {
1920  // Calculation, for each event, of the mean over the samples
1921  mean_over_samples(n_event) = (Double_t)0.;
1922  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
1923  mean_over_samples(n_event) += fT3d_AdcValues[i0StexEcha][i0Sample][n_event];
1924  }
1925  mean_over_samples(n_event) /= (Double_t)fNbSampForCalc;
1926 
1927  mean_over_events += mean_over_samples(n_event);
1928  }
1929  mean_over_events /= (Double_t)fNumberOfEvents;
1930 
1931  // Calculation of the sigma over the events of the mean over the samples
1932  Double_t var = (Double_t)0;
1933  for (Int_t n_event = 0; n_event < fNumberOfEvents; n_event++) {
1934  Double_t ecart = mean_over_samples(n_event) - mean_over_events;
1935  var += ecart * ecart;
1936  }
1937  var /= (Double_t)fNumberOfEvents;
1938 
1939  fT1d_sigevt_of_evsamp[i0StexEcha] = sqrt(var);
1940  }
1941  fTagLfn[0] = 1;
1942  fFileHeader->fLfnCalc++;
1943 }

References gather_cfg::cout, fCnew, fCodePrintAllComments, fCodePrintNoComment, fEcal, fFileHeader, fFlagPrint, TEcnaHeader::fLfnCalc, fMiscDiag, fNbSampForCalc, fNumberOfEvents, fT1d_sigevt_of_evsamp, fT3d_AdcValues, fTagLfn, mps_fire::i, TEcnaParEcal::MaxCrysEcnaInStex(), mathSSE::sqrt(), and trigObjTnPSource_cfi::var.

Referenced by AverageLowFrequencyNoise(), and StandardCalculations().

◆ MeanCorrelationsBetweenSamples()

void TEcnaRun::MeanCorrelationsBetweenSamples ( )

Definition at line 2040 of file TEcnaRun.cc.

2040  {
2041  // Calculation, for all the channels, of the expectation values
2042  // of the correlations between the first fNbSampForCalc samples
2043 
2044  //... preliminary calculation of the correlations if not done yet
2045  // (test only the first element since the cor are computed globaly)
2046  if (fTagCorCss[0] != 1) {
2048  fTagCorCss[0] = 0;
2049  }
2050 
2051  //................... Allocations ev_cor_ss + init to zero (mandatory)
2052  if (fT1d_ev_cor_ss == nullptr) {
2053  Int_t n_StexEcha = fEcal->MaxCrysEcnaInStex();
2054  fT1d_ev_cor_ss = new Double_t[n_StexEcha];
2055  fCnew++;
2056  }
2057  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2058  if (fT1d_ev_cor_ss[i0StexEcha] != (Double_t)0) {
2059  fMiscDiag[15]++;
2060  fT1d_ev_cor_ss[i0StexEcha] = (Double_t)0;
2061  }
2062  }
2063 
2064  //.......... 1D array half_cor_ss[N(N-1)/2] to put the N (sample,sample) correlations
2065  // ( half of (them minus the diagonal) )
2066  Int_t ndim = (Int_t)(fNbSampForCalc * (fNbSampForCalc - 1) / 2);
2067 
2068  TVectorD half_cor_ss(ndim);
2069  for (Int_t i = 0; i < ndim; i++) {
2070  half_cor_ss(i) = (Double_t)0.;
2071  }
2072 
2073  //..................... Calculation
2075  std::cout << "*TEcnaRun::MeanCorrelationsBetweenSamples()" << std::endl;
2076  }
2078  std::cout << " Calculation, for all the channels, of the expectation values of the" << std::endl
2079  << " correlations between the first " << fNbSampForCalc << " samples." << std::endl;
2080  }
2081 
2082  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2083  //..................... half_cor_ss() array filling
2084  Int_t i_count = 0;
2085  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
2086  for (Int_t j0Sample = 0; j0Sample < i0Sample; j0Sample++) {
2087  half_cor_ss(i_count) = fT3d_cor_ss[i0StexEcha][i0Sample][j0Sample];
2088  i_count++;
2089  }
2090  }
2091  //...................... mean cor(s,s') calculation
2092  fT1d_ev_cor_ss[i0StexEcha] = (Double_t)0;
2093  for (Int_t i_rcor = 0; i_rcor < ndim; i_rcor++) {
2094  fT1d_ev_cor_ss[i0StexEcha] += half_cor_ss(i_rcor);
2095  }
2096  fT1d_ev_cor_ss[i0StexEcha] /= (Double_t)ndim;
2097  }
2098  fTagMeanCorss[0] = 1;
2100 }

References CorrelationsBetweenSamples(), gather_cfg::cout, fCnew, fCodePrintAllComments, fCodePrintNoComment, fEcal, fFileHeader, fFlagPrint, TEcnaHeader::fMeanCorssCalc, fMiscDiag, fNbSampForCalc, fT1d_ev_cor_ss, fT3d_cor_ss, fTagCorCss, fTagMeanCorss, mps_fire::i, and TEcnaParEcal::MaxCrysEcnaInStex().

Referenced by AverageMeanCorrelationsBetweenSamples(), SigmaOfCorrelationsBetweenSamples(), and StandardCalculations().

◆ OpenRootFile()

Bool_t TEcnaRun::OpenRootFile ( const Text_t *  name,
const TString &  status 
)

Definition at line 3279 of file TEcnaRun.cc.

3279  {
3280  //Open the Root file
3281 
3282  Bool_t ok_open = kFALSE;
3283 
3284  TString s_name;
3285  s_name = fCnaParPaths->ResultsRootFilePath();
3286  s_name.Append('/');
3287  s_name.Append(name);
3288 
3289  //gCnaRootFile = new TEcnaRootFile(fObjectManager, s_name.Data(), status); fCnew++;
3290 
3291  Long_t iCnaRootFile = fObjectManager->GetPointerValue("TEcnaRootFile");
3292  if (iCnaRootFile == 0) {
3293  gCnaRootFile = new TEcnaRootFile(fObjectManager, s_name.Data(), status); /* Anew("gCnaRootFile");*/
3294  } else {
3295  gCnaRootFile = (TEcnaRootFile*)iCnaRootFile;
3296  gCnaRootFile->ReStart(s_name.Data(), status);
3297  }
3298 
3299  if (gCnaRootFile->fRootFileStatus == "RECREATE") {
3300  ok_open = gCnaRootFile->OpenW();
3301  }
3302  if (gCnaRootFile->fRootFileStatus == "READ") {
3303  ok_open = gCnaRootFile->OpenR();
3304  }
3305 
3306  if (!ok_open) // unable to open file
3307  {
3308  std::cout << "TEcnaRun::OpenRootFile> Cannot open file " << s_name.Data() << std::endl;
3309  } else {
3311  std::cout << "*TEcnaRun::OpenRootFile> Open ROOT file OK for file " << s_name.Data() << std::endl;
3312  }
3313  fOpenRootFile = kTRUE;
3314  }
3315  return ok_open;
3316 }

References gather_cfg::cout, fCnaParPaths, fCodePrintAllComments, fFlagPrint, fObjectManager, fOpenRootFile, TEcnaRootFile::fRootFileStatus, gCnaRootFile, TEcnaObject::GetPointerValue(), Skims_PA_cff::name, TEcnaRootFile::OpenR(), TEcnaRootFile::OpenW(), TEcnaRootFile::ReStart(), TEcnaParPaths::ResultsRootFilePath(), and mps_update::status.

Referenced by WriteRootFile().

◆ Pedestals()

void TEcnaRun::Pedestals ( )

Definition at line 1770 of file TEcnaRun.cc.

1770  {
1771  // Calculation, for each channel, of the expectation values
1772  // (over the samples 0 to fNbSampForCalc-1) of the ADC expectation values
1773  // (over the events)
1774 
1775  //... preliminary calculation of the expectation values if not done yet
1776  if (fTagMSp[0] != 1) {
1777  SampleMeans();
1778  fTagMSp[0] = 0;
1779  }
1780 
1781  //................... Allocation ev_ev + init to zero (mandatory)
1782  if (fT1d_ev_ev == nullptr) {
1783  fT1d_ev_ev = new Double_t[fEcal->MaxCrysEcnaInStex()];
1784  fCnew++;
1785  }
1786  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1787  if (fT1d_ev_ev[i0StexEcha] != (Double_t)0) {
1788  fMiscDiag[11]++;
1789  fT1d_ev_ev[i0StexEcha] = (Double_t)0;
1790  }
1791  }
1792 
1793  //..................... Calculation
1795  std::cout << "*TEcnaRun::Pedestals()" << std::endl;
1796  }
1798  std::cout << " Calculation, for all the channels, of the expectation values (over the samples 1 to "
1799  << fNbSampForCalc << ")" << std::endl
1800  << " of the ADC expectation values (over the events)." << std::endl;
1801  }
1802 
1803  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1804  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
1805  fT1d_ev_ev[i0StexEcha] += fT2d_ev[i0StexEcha][i0Sample];
1806  }
1807  fT1d_ev_ev[i0StexEcha] /= fNbSampForCalc;
1808  }
1809  fTagPed[0] = 1;
1810  fFileHeader->fPedCalc++;
1811 }

References gather_cfg::cout, fCnew, fCodePrintAllComments, fCodePrintNoComment, fEcal, fFileHeader, fFlagPrint, fMiscDiag, fNbSampForCalc, TEcnaHeader::fPedCalc, fT1d_ev_ev, fT2d_ev, fTagMSp, fTagPed, TEcnaParEcal::MaxCrysEcnaInStex(), and SampleMeans().

Referenced by AveragePedestals(), and StandardCalculations().

◆ PrintAllComments()

void TEcnaRun::PrintAllComments ( )

Definition at line 4876 of file TEcnaRun.cc.

4876  {
4877  // Set flags to authorize printing of the comments of all the methods
4878 
4880  std::cout << "*TEcnaRun::PrintAllComments()> All the comments will be printed" << std::endl;
4881 }

References gather_cfg::cout, fCodePrintAllComments, and fFlagPrint.

◆ PrintComments()

void TEcnaRun::PrintComments ( )

Definition at line 4862 of file TEcnaRun.cc.

4862  {
4863  // Set flags to authorize printing of some comments concerning initialisations (default)
4864 
4866  std::cout << "*TEcnaRun::PrintComments()> Warnings and some comments on init will be printed" << std::endl;
4867 }

References gather_cfg::cout, fCodePrintComments, and fFlagPrint.

◆ PrintNoComment()

void TEcnaRun::PrintNoComment ( )

Definition at line 4883 of file TEcnaRun.cc.

4883  {
4884  // Set flags to forbid the printing of all the comments
4885 
4887 }

References fCodePrintNoComment, and fFlagPrint.

◆ PrintWarnings()

void TEcnaRun::PrintWarnings ( )

Definition at line 4869 of file TEcnaRun.cc.

4869  {
4870  // Set flags to authorize printing of warnings
4871 
4873  std::cout << "*TEcnaRun::PrintWarnings()> Warnings will be printed" << std::endl;
4874 }

References gather_cfg::cout, fCodePrintWarnings, and fFlagPrint.

◆ ReadSampleAdcValues() [1/2]

Bool_t TEcnaRun::ReadSampleAdcValues ( )

Definition at line 1237 of file TEcnaRun.cc.

1237 { return ReadSampleAdcValues(fEcal->MaxSampADC()); }

References fEcal, and TEcnaParEcal::MaxSampADC().

Referenced by TEcnaGui::Calculations().

◆ ReadSampleAdcValues() [2/2]

Bool_t TEcnaRun::ReadSampleAdcValues ( const Int_t &  nb_samp_for_calc)

Definition at line 1239 of file TEcnaRun.cc.

1239  {
1240  // read the Sample ADC values from "ADC" result root files (ReadSampleAdcValues)
1241 
1242  // put the number of sample for calculations in attribute fNbSampForCalc
1243  // and call the method without arguments
1244  // We must have: nb_samp_for_calc <= fFileHeader->fNbOfSamples (= nb of samples in ROOT file)
1245 
1246  fNbSampForCalc = nb_samp_for_calc;
1247 
1248  // TEcnaRead* MyRootFile = new TEcnaRead(fFlagSubDet.Data(), fCnaParPaths, fCnaParCout,
1249  // fFileHeader, fEcalNumbering, fCnaWrite); // fCnew++;
1250 
1251  TEcnaRead* MyRootFile = new TEcnaRead(fObjectManager, fFlagSubDet.Data()); // fCnew++;
1252 
1253  MyRootFile->PrintNoComment();
1254 
1255  MyRootFile->FileParameters(fFileHeader->fTypAna,
1261  fFileHeader->fStex,
1262  fCnaParPaths->ResultsRootFilePath().Data());
1263 
1264  Bool_t ok_read = MyRootFile->LookAtRootFile();
1265 
1266  fFileHeader->fStartTime = MyRootFile->GetStartTime();
1267  fFileHeader->fStopTime = MyRootFile->GetStopTime();
1268  fFileHeader->fStartDate = MyRootFile->GetStartDate();
1269  fFileHeader->fStopDate = MyRootFile->GetStopDate();
1270 
1271  if (ok_read == kTRUE) {
1272  fRootFileName = MyRootFile->GetRootFileName();
1273  fRootFileNameShort = MyRootFile->GetRootFileNameShort();
1274  std::cout << "*TEcnaRun::ReadSampleAdcValues> Reading sample ADC values from file: " << std::endl
1275  << " " << fRootFileName << std::endl;
1276 
1277  size_t i_no_data = 0;
1278 
1279  //.......... Read the StinNumbers in the old file (ReadSampleAdcValues)
1280  TVectorD vec(fEcal->MaxStinEcnaInStex());
1281  for (Int_t i = 0; i < fEcal->MaxStinEcnaInStex(); i++) {
1282  vec(i) = (Double_t)0.;
1283  }
1284  vec = MyRootFile->ReadStinNumbers(fEcal->MaxStinEcnaInStex());
1285  if (MyRootFile->DataExist() == kTRUE) {
1286  fTagStinNumbers[0] = 1;
1288  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
1289  fT1d_StexStinFromIndex[i0StexStinEcna] = (Int_t)vec(i0StexStinEcna);
1290  }
1291  } else {
1292  i_no_data++;
1293  }
1294  //.......... Read the Numbers of Events in the old file (ReadSampleAdcValues)
1295  TMatrixD partial_matrix(fEcal->MaxCrysInStin(), fFileHeader->fNbOfSamples);
1296  for (Int_t i = 0; i < fEcal->MaxCrysInStin(); i++) {
1297  for (Int_t j = 0; j < fFileHeader->fNbOfSamples; j++) {
1298  partial_matrix(i, j) = (Double_t)0.;
1299  }
1300  }
1301 
1302  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
1303  Int_t n1StexStin = MyRootFile->GetStexStinFromIndex(i0StexStinEcna);
1304  if (n1StexStin != -1) {
1305  partial_matrix =
1307 
1308  if (MyRootFile->DataExist() == kTRUE) {
1309  fTagNbOfEvts[0] = 1;
1311  for (Int_t i0StinCrys = 0; i0StinCrys < fEcal->MaxCrysInStin(); i0StinCrys++) {
1312  Int_t i0StexEcha = (n1StexStin - 1) * fEcal->MaxCrysInStin() + i0StinCrys;
1313  for (Int_t i0Sample = 0; i0Sample < fFileHeader->fNbOfSamples; i0Sample++) {
1314  fT2d_NbOfEvts[i0StexEcha][i0Sample] = (Int_t)partial_matrix(i0StinCrys, i0Sample);
1315  }
1316  }
1317  } else {
1318  i_no_data++;
1319  }
1320  }
1321  }
1322 
1323  //.......... Read the Sample ADC values in the old file (ReadSampleAdcValues)
1324  Double_t*** fT3d_read_AdcValues = MyRootFile->ReadSampleAdcValuesSameFile(
1326 
1327  if (MyRootFile->DataExist() == kTRUE) {
1328  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1329  for (Int_t i0Sample = 0; i0Sample < fFileHeader->fNbOfSamples; i0Sample++) {
1330  for (Int_t i_event = 0; i_event < fFileHeader->fReqNbOfEvts; i_event++) {
1331  fT3d_AdcValues[i0StexEcha][i0Sample][i_event] = fT3d_read_AdcValues[i0StexEcha][i0Sample][i_event];
1332  }
1333  }
1334  }
1335  } else {
1336  i_no_data++;
1337  }
1338  if (i_no_data) {
1339  std::cout << "!TEcnaRun::ReadSampleAdcValues(...)> *ERROR* =====> "
1340  << " Read failure. i_no_data = " << i_no_data << fTTBELL << std::endl;
1341  }
1342  } else {
1343  std::cout << "!TEcnaRun::ReadSampleAdcValues(...)> *ERROR* =====> "
1344  << " ROOT file not found" << fTTBELL << std::endl;
1345  }
1346  delete MyRootFile; // fCdelete++;
1347  return ok_read;
1348 }

References gather_cfg::cout, TEcnaRead::DataExist(), fCnaParPaths, fEcal, fFileHeader, TEcnaHeader::fFirstReqEvtNumber, fFlagSubDet, TEcnaRead::FileParameters(), TEcnaHeader::fLastReqEvtNumber, TEcnaHeader::fNbOfEvtsCalc, TEcnaHeader::fNbOfSamples, fNbSampForCalc, fObjectManager, TEcnaHeader::fReqNbOfEvts, fRootFileName, fRootFileNameShort, TEcnaHeader::fRunNumber, TEcnaHeader::fStartDate, TEcnaHeader::fStartTime, TEcnaHeader::fStex, TEcnaHeader::fStinNumbersCalc, TEcnaHeader::fStopDate, TEcnaHeader::fStopTime, fT1d_StexStinFromIndex, fT2d_NbOfEvts, fT3d_AdcValues, fTagNbOfEvts, fTagStinNumbers, fTTBELL, TEcnaHeader::fTypAna, TEcnaRead::GetRootFileName(), TEcnaRead::GetRootFileNameShort(), TEcnaRead::GetStartDate(), TEcnaRead::GetStartTime(), TEcnaRead::GetStexStinFromIndex(), TEcnaRead::GetStopDate(), TEcnaRead::GetStopTime(), mps_fire::i, dqmiolumiharvest::j, TEcnaRead::LookAtRootFile(), TEcnaParEcal::MaxCrysEcnaInStex(), TEcnaParEcal::MaxCrysInStin(), TEcnaParEcal::MaxStinEcnaInStex(), TEcnaRead::PrintNoComment(), TEcnaRead::ReadNumberOfEventsForSamples(), TEcnaRead::ReadSampleAdcValuesSameFile(), TEcnaRead::ReadStinNumbers(), and TEcnaParPaths::ResultsRootFilePath().

◆ SampleMeans()

void TEcnaRun::SampleMeans ( )

Definition at line 1496 of file TEcnaRun.cc.

1496  {
1497  // Calculation of the expectation values over events
1498  // for the samples 0 to fNbSampForCalc and for all the StexEchas
1499 
1501  std::cout << "*TEcnaRun::SampleMeans() " << std::endl;
1502  }
1504  std::cout << " Calculation: sample expectation values over the events"
1505  << " for each channel." << std::endl;
1506  }
1507 
1508  //................... Allocation fT2d_ev
1509  if (fT2d_ev == nullptr) {
1510  Int_t n_samp = fNbSampForCalc;
1511  Int_t n_StexEcha = fEcal->MaxCrysEcnaInStex();
1512  fT2d_ev = new Double_t*[n_StexEcha];
1513  fCnew++;
1514  fT1d_ev = new Double_t[n_StexEcha * n_samp];
1515  fCnew++;
1516  for (Int_t i = 0; i < n_StexEcha; i++) {
1517  fT2d_ev[i] = &fT1d_ev[0] + i * n_samp;
1518  }
1519  }
1520  //................... init fT2d_ev to zero
1521  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1522  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
1523  if (fT2d_ev[i0StexEcha][i0Sample] != (Double_t)0) {
1524  fMiscDiag[1]++;
1525  fT2d_ev[i0StexEcha][i0Sample] = (Double_t)0;
1526  }
1527  }
1528  }
1529 
1530  //................... Calculation
1531  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1532  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
1533  for (Int_t i_event = 0; i_event < fNumberOfEvents; i_event++) {
1534  fT2d_ev[i0StexEcha][i0Sample] += fT3d_AdcValues[i0StexEcha][i0Sample][i_event];
1535  }
1536  fT2d_ev[i0StexEcha][i0Sample] /= fNumberOfEvents;
1537  }
1538  }
1539  fTagMSp[0] = 1;
1540  fFileHeader->fMSpCalc++;
1541 }

References gather_cfg::cout, fCnew, fCodePrintAllComments, fCodePrintNoComment, fEcal, fFileHeader, fFlagPrint, fMiscDiag, TEcnaHeader::fMSpCalc, fNbSampForCalc, fNumberOfEvents, fT1d_ev, fT2d_ev, fT3d_AdcValues, fTagMSp, mps_fire::i, and TEcnaParEcal::MaxCrysEcnaInStex().

Referenced by CovariancesBetweenSamples(), Pedestals(), SampleSigmas(), and StandardCalculations().

◆ SampleSigmas()

void TEcnaRun::SampleSigmas ( )

Definition at line 1551 of file TEcnaRun.cc.

1551  {
1552  //Calculation of the sigmas of the samples for all the StexEchas
1553 
1555  std::cout << "*TEcnaRun::SampleSigmas()" << std::endl;
1556  }
1558  std::cout << " Calculation: sample ADC sigmas over the events "
1559  << " for each channel." << std::endl;
1560  }
1561 
1562  //... preliminary calculation of the expectation values if not done yet.
1563  // The tag is set to 1 after call to the method. It is reset to 0
1564  // because the expectation values must not be written in the result ROOT file
1565  // (since the tag was equal to 0)
1566  if (fTagMSp[0] != 1) {
1567  SampleMeans();
1568  fTagMSp[0] = 0;
1569  }
1570 
1571  //................... Allocation fT2d_sig
1572  if (fT2d_sig == nullptr) {
1573  Int_t n_StexEcha = fEcal->MaxCrysEcnaInStex();
1574  Int_t n_samp = fNbSampForCalc;
1575  fT2d_sig = new Double_t*[n_StexEcha];
1576  fCnew++;
1577  fT1d_sig = new Double_t[n_StexEcha * n_samp];
1578  fCnew++;
1579  for (Int_t i0StexEcha = 0; i0StexEcha < n_StexEcha; i0StexEcha++) {
1580  fT2d_sig[i0StexEcha] = &fT1d_sig[0] + i0StexEcha * n_samp;
1581  }
1582  }
1583  // ................... init fT2d_sig to zero
1584  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1585  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
1586  if (fT2d_sig[i0StexEcha][i0Sample] != (Double_t)0) {
1587  fMiscDiag[2]++;
1588  fT2d_sig[i0StexEcha][i0Sample] = (Double_t)0;
1589  }
1590  }
1591  }
1592 
1593  //................... Calculation
1594  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1595  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
1596  Double_t variance = (Double_t)0.;
1597  for (Int_t i_event = 0; i_event < fNumberOfEvents; i_event++) {
1598  Double_t ecart = fT3d_AdcValues[i0StexEcha][i0Sample][i_event] - fT2d_ev[i0StexEcha][i0Sample];
1599  variance += ecart * ecart;
1600  }
1601  variance /= fNumberOfEvents;
1602  fT2d_sig[i0StexEcha][i0Sample] = sqrt(variance);
1603  }
1604  }
1605  fTagSSp[0] = 1;
1606  fFileHeader->fSSpCalc++;
1607 }

References gather_cfg::cout, fCnew, fCodePrintAllComments, fCodePrintNoComment, fEcal, fFileHeader, fFlagPrint, fMiscDiag, fNbSampForCalc, fNumberOfEvents, TEcnaHeader::fSSpCalc, fT1d_sig, fT2d_ev, fT2d_sig, fT3d_AdcValues, fTagMSp, fTagSSp, TEcnaParEcal::MaxCrysEcnaInStex(), SampleMeans(), and mathSSE::sqrt().

Referenced by StandardCalculations(), and TotalNoise().

◆ SampleValues()

void TEcnaRun::SampleValues ( )

Definition at line 1424 of file TEcnaRun.cc.

1424  {
1425  //3D histo of the sample ADC values for all the triples (StexEcha, sample, event)
1426 
1427  // The histo is already in fT3d_AdcValues[][][]
1428  // this method sets the "Tag", increment the "f...Calc" (and must be kept for that)
1429  // f...Calc > 0 => allow writing on file.
1430 
1431  if (fFileHeader->fAdcEvtCalc > 0) {
1432  fFileHeader->fAdcEvtCalc = 0;
1433  }
1434  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1435  fTagAdcEvt[i0StexEcha] = 1;
1437  }
1438 }

References TEcnaHeader::fAdcEvtCalc, fEcal, fFileHeader, fTagAdcEvt, and TEcnaParEcal::MaxCrysEcnaInStex().

Referenced by EcnaAnalyzer::analyze(), and EcnaAnalyzer::~EcnaAnalyzer().

◆ SetEcalSubDetector()

void TEcnaRun::SetEcalSubDetector ( const TString &  SubDet)

Definition at line 272 of file TEcnaRun.cc.

272  {
273  // Set Subdetector (EB or EE)
274 
275  Int_t MaxCar = fgMaxCar;
276  fFlagSubDet.Resize(MaxCar);
277  fFlagSubDet = SubDet.Data();
278 
279  fEcal = nullptr;
280  fEcal = new TEcnaParEcal(fFlagSubDet.Data()); //fCnew++;
281  fEcalNumbering = nullptr;
282  fEcalNumbering = new TEcnaNumbering(fFlagSubDet.Data(), fEcal); //fCnew++;
283  fCnaWrite = nullptr;
284 
286 
287  if (fFlagSubDet == "EB") {
288  fStexName = "SM ";
289  fStinName = "tower";
290  }
291  if (fFlagSubDet == "EE") {
292  fStexName = "Dee";
293  fStinName = " SC ";
294  }
295 }

References fCnaParCout, fCnaParPaths, fCnaWrite, fEcal, fEcalNumbering, fFlagSubDet, fgMaxCar, fStexName, fStinName, and ntupleEnum::SubDet.

Referenced by TEcnaRun().

◆ SigmaOfCorrelationsBetweenSamples()

void TEcnaRun::SigmaOfCorrelationsBetweenSamples ( )

Definition at line 2113 of file TEcnaRun.cc.

2113  {
2114  //Calculation of the sigmas of the (sample,sample) correlations for all the StexEchas
2115 
2116  //... preliminary calculation of the mean cor(s,s') if not done yet
2117  // (test only the first element since the cor are computed globaly)
2118  // Results available in array fT1d_ev_cor_ss[i0StexEcha]
2119  if (fTagMeanCorss[0] != 1) {
2121  fTagMeanCorss[0] = 0;
2122  }
2123 
2124  //................... Allocations sig_cor_ss + init to zero
2125  if (fT1d_sig_cor_ss == nullptr) {
2126  Int_t n_StexEcha = fEcal->MaxCrysEcnaInStex();
2127  fT1d_sig_cor_ss = new Double_t[n_StexEcha];
2128  fCnew++;
2129  }
2130  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2131  if (fT1d_sig_cor_ss[i0StexEcha] != (Double_t)0) {
2132  fMiscDiag[16]++;
2133  fT1d_sig_cor_ss[i0StexEcha] = (Double_t)0;
2134  }
2135  }
2136 
2138  std::cout << "*TEcnaRun::SigmasOfCorrelationsBetweenSamples()" << std::endl;
2139  }
2141  std::cout << " Calculation of the sigmas of the (sample,sample)" << std::endl
2142  << " correlations for all the channels." << std::endl;
2143  }
2144 
2145  //.......... 1D array half_cor_ss[N(N-1)/2] to put the N (sample,sample) correlations
2146  // (half of them minus the diagonal)
2147  Int_t ndim = (Int_t)(fNbSampForCalc * (fNbSampForCalc - 1) / 2);
2148 
2149  TVectorD half_cor_ss(ndim);
2150  for (Int_t i = 0; i < ndim; i++) {
2151  half_cor_ss(i) = (Double_t)0.;
2152  }
2153 
2154  //.................. Calculation
2155  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2156  //..................... half_cor_ss() array filling
2157  Int_t i_count = 0;
2158  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
2159  for (Int_t j0Sample = 0; j0Sample < i0Sample; j0Sample++) {
2160  half_cor_ss(i_count) = fT3d_cor_ss[i0StexEcha][i0Sample][j0Sample];
2161  i_count++;
2162  }
2163  }
2164 
2165  //...................... sigma of cor(s,s') calculation
2166  Double_t var = (Double_t)0;
2167  for (Int_t i_rcor = 0; i_rcor < ndim; i_rcor++) {
2168  Double_t ecart = half_cor_ss(i_rcor) - fT1d_ev_cor_ss[i0StexEcha];
2169  var += ecart * ecart;
2170  }
2171  var /= (Double_t)ndim;
2172  fT1d_sig_cor_ss[i0StexEcha] = sqrt(var);
2173  }
2174  fTagSigCorss[0] = 1;
2176 }

References gather_cfg::cout, fCnew, fCodePrintAllComments, fCodePrintNoComment, fEcal, fFileHeader, fFlagPrint, fMiscDiag, fNbSampForCalc, TEcnaHeader::fSigCorssCalc, fT1d_ev_cor_ss, fT1d_sig_cor_ss, fT3d_cor_ss, fTagMeanCorss, fTagSigCorss, mps_fire::i, TEcnaParEcal::MaxCrysEcnaInStex(), MeanCorrelationsBetweenSamples(), mathSSE::sqrt(), and trigObjTnPSource_cfi::var.

Referenced by AverageSigmaOfCorrelationsBetweenSamples(), and StandardCalculations().

◆ StandardCalculations()

void TEcnaRun::StandardCalculations ( )

◆ StartStopDate()

void TEcnaRun::StartStopDate ( const TString &  c_startdate,
const TString &  c_stopdate 
)

Definition at line 1375 of file TEcnaRun.cc.

1375  {
1376  // Put the start an stop date (if they exist) in fFileHeader class attributes.
1377 
1378  fFileHeader->fStartDate = c_startdate;
1379  fFileHeader->fStopDate = c_stopdate;
1380 }

References fFileHeader, TEcnaHeader::fStartDate, and TEcnaHeader::fStopDate.

Referenced by EcnaAnalyzer::analyze(), and EcnaAnalyzer::~EcnaAnalyzer().

◆ StartStopTime()

void TEcnaRun::StartStopTime ( time_t  t_startime,
time_t  t_stoptime 
)

Definition at line 1368 of file TEcnaRun.cc.

1368  {
1369  // Put the start an stop time (if they exist) in fFileHeader class attributes.
1370 
1371  fFileHeader->fStartTime = t_startime;
1372  fFileHeader->fStopTime = t_stoptime;
1373 }

References fFileHeader, TEcnaHeader::fStartTime, and TEcnaHeader::fStopTime.

Referenced by EcnaAnalyzer::analyze(), and EcnaAnalyzer::~EcnaAnalyzer().

◆ TotalNoise()

void TEcnaRun::TotalNoise ( )

Definition at line 1825 of file TEcnaRun.cc.

1825  {
1826  // Calculation, for each channel, of the expectation values
1827  // (over the samples 0 to fNbSampForCalc-1) of the sigmas
1828  // (over the events)
1829 
1830  //... preliminary calculation of the sigmas if not done yet
1831  if (fTagSSp[0] != 1) {
1832  SampleSigmas();
1833  fTagSSp[0] = 0;
1834  }
1835 
1836  //................... Allocation ev_ev + init to zero (mandatory)
1837  if (fT1d_evsamp_of_sigevt == nullptr) {
1838  fT1d_evsamp_of_sigevt = new Double_t[fEcal->MaxCrysEcnaInStex()];
1839  fCnew++;
1840  }
1841  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1842  if (fT1d_evsamp_of_sigevt[i0StexEcha] != (Double_t)0) {
1843  fMiscDiag[12]++;
1844  fT1d_evsamp_of_sigevt[i0StexEcha] = (Double_t)0;
1845  }
1846  }
1847 
1848  //..................... Calculation
1850  std::cout << "*TEcnaRun::TotalNoise()" << std::endl;
1851  }
1853  std::cout << " Calculation, for all the channels, of the expectation values (over the samples 1 to "
1854  << fNbSampForCalc << ")" << std::endl
1855  << " of the ADC expectation values (over the events)." << std::endl;
1856  }
1857 
1858  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1859  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
1860  if (fT2d_sig[i0StexEcha][i0Sample] < 0) {
1861  std::cout << "!TEcnaRun::TotalNoise() *** ERROR ***> Negative sigma!" << fTTBELL << std::endl;
1862  } else {
1863  fT1d_evsamp_of_sigevt[i0StexEcha] += fT2d_sig[i0StexEcha][i0Sample];
1864  }
1865  }
1866  fT1d_evsamp_of_sigevt[i0StexEcha] /= fNbSampForCalc;
1867  }
1868  fTagTno[0] = 1;
1869  fFileHeader->fTnoCalc++;
1870 }

References gather_cfg::cout, fCnew, fCodePrintAllComments, fCodePrintNoComment, fEcal, fFileHeader, fFlagPrint, fMiscDiag, fNbSampForCalc, fT1d_evsamp_of_sigevt, fT2d_sig, fTagSSp, fTagTno, TEcnaHeader::fTnoCalc, fTTBELL, TEcnaParEcal::MaxCrysEcnaInStex(), and SampleSigmas().

Referenced by AverageTotalNoise(), and StandardCalculations().

◆ TRootAdcEvt()

void TEcnaRun::TRootAdcEvt ( const Int_t &  user_StexEcha,
const Int_t &  argNbSampWrite 
)

Definition at line 4500 of file TEcnaRun.cc.

4500  {
4501  if (fTagAdcEvt[user_StexEcha] == 1) {
4502  for (Int_t i0Sample = 0; i0Sample < argNbSampWrite; i0Sample++) {
4503  //...................... all the bins set to zero
4504  for (Int_t j_bin = 0; j_bin < fFileHeader->fReqNbOfEvts; j_bin++) {
4505  gCnaRootFile->fCnaIndivResult->fMatHis(i0Sample, j_bin) = (Double_t)0.;
4506  }
4507  //...................... fill the non-zero bins
4508  for (Int_t j_bin = 0; j_bin < fFileHeader->fReqNbOfEvts; j_bin++) {
4509  gCnaRootFile->fCnaIndivResult->fMatHis(i0Sample, j_bin) = fT3d_AdcValues[user_StexEcha][i0Sample][j_bin];
4510  }
4511  }
4512  }
4513 }

References TEcnaRootFile::fCnaIndivResult, fFileHeader, TEcnaResultType::fMatHis, TEcnaHeader::fReqNbOfEvts, fT3d_AdcValues, fTagAdcEvt, and gCnaRootFile.

Referenced by WriteRootFile().

◆ TRootAvEvCorss()

void TEcnaRun::TRootAvEvCorss ( )

Definition at line 4831 of file TEcnaRun.cc.

4831  {
4832  if (fTagAvMeanCorss[0] == 1) // test 1st elt only since global calc
4833  {
4834  for (Int_t j0StexStinEcna = 0; j0StexStinEcna < fEcal->MaxStinEcnaInStex(); j0StexStinEcna++) {
4835  gCnaRootFile->fCnaIndivResult->fMatHis(0, j0StexStinEcna) = fT1d_av_ev_corss[j0StexStinEcna];
4836  }
4837  }
4838 }

References TEcnaRootFile::fCnaIndivResult, fEcal, TEcnaResultType::fMatHis, fT1d_av_ev_corss, fTagAvMeanCorss, gCnaRootFile, and TEcnaParEcal::MaxStinEcnaInStex().

Referenced by WriteRootFile().

◆ TRootAvHfn()

void TEcnaRun::TRootAvHfn ( )

Definition at line 4616 of file TEcnaRun.cc.

4616  {
4617  if (fTagAvHfn[0] == 1) {
4618  for (Int_t j0StexStinEcna = 0; j0StexStinEcna < fEcal->MaxStinEcnaInStex(); j0StexStinEcna++) {
4619  gCnaRootFile->fCnaIndivResult->fMatHis(0, j0StexStinEcna) = fT1d_av_hifn[j0StexStinEcna];
4620  }
4621  }
4622 }

References TEcnaRootFile::fCnaIndivResult, fEcal, TEcnaResultType::fMatHis, fT1d_av_hifn, fTagAvHfn, gCnaRootFile, and TEcnaParEcal::MaxStinEcnaInStex().

Referenced by WriteRootFile().

◆ TRootAvLfn()

void TEcnaRun::TRootAvLfn ( )

Definition at line 4602 of file TEcnaRun.cc.

4602  {
4603  if (fTagAvLfn[0] == 1) {
4604  for (Int_t j0StexStinEcna = 0; j0StexStinEcna < fEcal->MaxStinEcnaInStex(); j0StexStinEcna++) {
4605  gCnaRootFile->fCnaIndivResult->fMatHis(0, j0StexStinEcna) = fT1d_av_lofn[j0StexStinEcna];
4606  }
4607  }
4608 }

References TEcnaRootFile::fCnaIndivResult, fEcal, TEcnaResultType::fMatHis, fT1d_av_lofn, fTagAvLfn, gCnaRootFile, and TEcnaParEcal::MaxStinEcnaInStex().

Referenced by WriteRootFile().

◆ TRootAvPed()

void TEcnaRun::TRootAvPed ( )

Definition at line 4816 of file TEcnaRun.cc.

4816  {
4817  if (fTagAvPed[0] == 1) {
4818  for (Int_t j0StexStinEcna = 0; j0StexStinEcna < fEcal->MaxStinEcnaInStex(); j0StexStinEcna++) {
4819  gCnaRootFile->fCnaIndivResult->fMatHis(0, j0StexStinEcna) = fT1d_av_mped[j0StexStinEcna];
4820  }
4821  }
4822 }

References TEcnaRootFile::fCnaIndivResult, fEcal, TEcnaResultType::fMatHis, fT1d_av_mped, fTagAvPed, gCnaRootFile, and TEcnaParEcal::MaxStinEcnaInStex().

Referenced by WriteRootFile().

◆ TRootAvSigCorss()

void TEcnaRun::TRootAvSigCorss ( )

Definition at line 4847 of file TEcnaRun.cc.

4847  {
4848  if (fTagAvSigCorss[0] == 1) // test 1st elt only since global calc
4849  {
4850  for (Int_t j0StexStinEcna = 0; j0StexStinEcna < fEcal->MaxStinEcnaInStex(); j0StexStinEcna++) {
4851  gCnaRootFile->fCnaIndivResult->fMatHis(0, j0StexStinEcna) = fT1d_av_sig_corss[j0StexStinEcna];
4852  }
4853  }
4854 }

References TEcnaRootFile::fCnaIndivResult, fEcal, TEcnaResultType::fMatHis, fT1d_av_sig_corss, fTagAvSigCorss, gCnaRootFile, and TEcnaParEcal::MaxStinEcnaInStex().

Referenced by WriteRootFile().

◆ TRootAvTno()

void TEcnaRun::TRootAvTno ( )

Definition at line 4589 of file TEcnaRun.cc.

4589  {
4590  if (fTagAvTno[0] == 1) {
4591  for (Int_t j0StexStinEcna = 0; j0StexStinEcna < fEcal->MaxStinEcnaInStex(); j0StexStinEcna++) {
4592  gCnaRootFile->fCnaIndivResult->fMatHis(0, j0StexStinEcna) = fT1d_av_totn[j0StexStinEcna];
4593  }
4594  }
4595 }

References TEcnaRootFile::fCnaIndivResult, fEcal, TEcnaResultType::fMatHis, fT1d_av_totn, fTagAvTno, gCnaRootFile, and TEcnaParEcal::MaxStinEcnaInStex().

Referenced by WriteRootFile().

◆ TRootCorCss()

void TEcnaRun::TRootCorCss ( const Int_t &  user_StexEcha,
const Int_t &  argNbSampWrite 
)

Definition at line 4710 of file TEcnaRun.cc.

4710  {
4711  if (fTagCorCss[user_StexEcha] == 1) {
4712  for (Int_t i0Sample = 0; i0Sample < argNbSampWrite; i0Sample++) {
4713  for (Int_t j0Sample = 0; j0Sample < argNbSampWrite; j0Sample++) {
4714  gCnaRootFile->fCnaIndivResult->fMatMat(i0Sample, j0Sample) = fT3d_cor_ss[user_StexEcha][i0Sample][j0Sample];
4715  }
4716  }
4717  }
4718 }

References TEcnaRootFile::fCnaIndivResult, TEcnaResultType::fMatMat, fT3d_cor_ss, fTagCorCss, and gCnaRootFile.

Referenced by WriteRootFile().

◆ TRootCovCss()

void TEcnaRun::TRootCovCss ( const Int_t &  user_StexEcha,
const Int_t &  argNbSampWrite 
)

Definition at line 4694 of file TEcnaRun.cc.

4694  {
4695  if (fTagCovCss[user_StexEcha] == 1) {
4696  for (Int_t i0Sample = 0; i0Sample < argNbSampWrite; i0Sample++) {
4697  for (Int_t j0Sample = 0; j0Sample < argNbSampWrite; j0Sample++) {
4698  gCnaRootFile->fCnaIndivResult->fMatMat(i0Sample, j0Sample) = fT3d_cov_ss[user_StexEcha][i0Sample][j0Sample];
4699  }
4700  }
4701  }
4702 }

References TEcnaRootFile::fCnaIndivResult, TEcnaResultType::fMatMat, fT3d_cov_ss, fTagCovCss, and gCnaRootFile.

Referenced by WriteRootFile().

◆ TRootHFccMoStins()

void TEcnaRun::TRootHFccMoStins ( )

Definition at line 4572 of file TEcnaRun.cc.

4572  {
4573  if (fTagHFccMoStins[0] == 1) {
4574  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
4575  for (Int_t j0StexStinEcna = 0; j0StexStinEcna < fEcal->MaxStinEcnaInStex(); j0StexStinEcna++) {
4576  gCnaRootFile->fCnaIndivResult->fMatMat(i0StexStinEcna, j0StexStinEcna) =
4577  fT2d_hfcc_mostins[i0StexStinEcna][j0StexStinEcna];
4578  }
4579  }
4580  }
4581 }

References TEcnaRootFile::fCnaIndivResult, fEcal, TEcnaResultType::fMatMat, fT2d_hfcc_mostins, fTagHFccMoStins, gCnaRootFile, and TEcnaParEcal::MaxStinEcnaInStex().

Referenced by WriteRootFile().

◆ TRootHfCor()

void TEcnaRun::TRootHfCor ( )

Definition at line 4678 of file TEcnaRun.cc.

4678  {
4679  if (fTagHfCor[0] == 1) {
4680  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
4681  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
4682  gCnaRootFile->fCnaIndivResult->fMatMat(i0StexEcha, j0StexEcha) = fT2d_hf_cor[i0StexEcha][j0StexEcha];
4683  }
4684  }
4685  }
4686 }

References TEcnaRootFile::fCnaIndivResult, fEcal, TEcnaResultType::fMatMat, fT2d_hf_cor, fTagHfCor, gCnaRootFile, and TEcnaParEcal::MaxCrysEcnaInStex().

Referenced by WriteRootFile().

◆ TRootHfCov()

void TEcnaRun::TRootHfCov ( )

Definition at line 4662 of file TEcnaRun.cc.

4662  {
4663  if (fTagHfCov[0] == 1) {
4664  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
4665  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
4666  gCnaRootFile->fCnaIndivResult->fMatMat(i0StexEcha, j0StexEcha) = fT2d_hf_cov[i0StexEcha][j0StexEcha];
4667  }
4668  }
4669  }
4670 }

References TEcnaRootFile::fCnaIndivResult, fEcal, TEcnaResultType::fMatMat, fT2d_hf_cov, fTagHfCov, gCnaRootFile, and TEcnaParEcal::MaxCrysEcnaInStex().

Referenced by WriteRootFile().

◆ TRootHfn()

void TEcnaRun::TRootHfn ( )

Definition at line 4786 of file TEcnaRun.cc.

4786  {
4787  if (fTagHfn[0] == 1) {
4788  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
4789  gCnaRootFile->fCnaIndivResult->fMatHis(0, j0StexEcha) = fT1d_evevt_of_sigsamp[j0StexEcha];
4790  }
4791  }
4792 }

References TEcnaRootFile::fCnaIndivResult, fEcal, TEcnaResultType::fMatHis, fT1d_evevt_of_sigsamp, fTagHfn, gCnaRootFile, and TEcnaParEcal::MaxCrysEcnaInStex().

Referenced by WriteRootFile().

◆ TRootLFccMoStins()

void TEcnaRun::TRootLFccMoStins ( )

Definition at line 4554 of file TEcnaRun.cc.

4554  {
4555  if (fTagLFccMoStins[0] == 1) {
4556  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
4557  for (Int_t j0StexStinEcna = 0; j0StexStinEcna < fEcal->MaxStinEcnaInStex(); j0StexStinEcna++) {
4558  gCnaRootFile->fCnaIndivResult->fMatMat(i0StexStinEcna, j0StexStinEcna) =
4559  fT2d_lfcc_mostins[i0StexStinEcna][j0StexStinEcna];
4560  }
4561  }
4562  }
4563 }

References TEcnaRootFile::fCnaIndivResult, fEcal, TEcnaResultType::fMatMat, fT2d_lfcc_mostins, fTagLFccMoStins, gCnaRootFile, and TEcnaParEcal::MaxStinEcnaInStex().

Referenced by WriteRootFile().

◆ TRootLfCor()

void TEcnaRun::TRootLfCor ( )

Definition at line 4646 of file TEcnaRun.cc.

4646  {
4647  if (fTagLfCor[0] == 1) {
4648  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
4649  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
4650  gCnaRootFile->fCnaIndivResult->fMatMat(i0StexEcha, j0StexEcha) = fT2d_lf_cor[i0StexEcha][j0StexEcha];
4651  }
4652  }
4653  }
4654 }

References TEcnaRootFile::fCnaIndivResult, fEcal, TEcnaResultType::fMatMat, fT2d_lf_cor, fTagLfCor, gCnaRootFile, and TEcnaParEcal::MaxCrysEcnaInStex().

Referenced by WriteRootFile().

◆ TRootLfCov()

void TEcnaRun::TRootLfCov ( )

Definition at line 4630 of file TEcnaRun.cc.

4630  {
4631  if (fTagLfCov[0] == 1) {
4632  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
4633  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
4634  gCnaRootFile->fCnaIndivResult->fMatMat(i0StexEcha, j0StexEcha) = fT2d_lf_cov[i0StexEcha][j0StexEcha];
4635  }
4636  }
4637  }
4638 }

References TEcnaRootFile::fCnaIndivResult, fEcal, TEcnaResultType::fMatMat, fT2d_lf_cov, fTagLfCov, gCnaRootFile, and TEcnaParEcal::MaxCrysEcnaInStex().

Referenced by WriteRootFile().

◆ TRootLfn()

void TEcnaRun::TRootLfn ( )

Definition at line 4771 of file TEcnaRun.cc.

4771  {
4772  if (fTagLfn[0] == 1) {
4773  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
4774  gCnaRootFile->fCnaIndivResult->fMatHis(0, j0StexEcha) = fT1d_sigevt_of_evsamp[j0StexEcha];
4775  }
4776  }
4777 }

References TEcnaRootFile::fCnaIndivResult, fEcal, TEcnaResultType::fMatHis, fT1d_sigevt_of_evsamp, fTagLfn, gCnaRootFile, and TEcnaParEcal::MaxCrysEcnaInStex().

Referenced by WriteRootFile().

◆ TRootMeanCorss()

void TEcnaRun::TRootMeanCorss ( )

Definition at line 4756 of file TEcnaRun.cc.

4756  {
4757  if (fTagMeanCorss[0] == 1) {
4758  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
4759  gCnaRootFile->fCnaIndivResult->fMatHis(0, j0StexEcha) = fT1d_ev_cor_ss[j0StexEcha];
4760  }
4761  }
4762 }

References TEcnaRootFile::fCnaIndivResult, fEcal, TEcnaResultType::fMatHis, fT1d_ev_cor_ss, fTagMeanCorss, gCnaRootFile, and TEcnaParEcal::MaxCrysEcnaInStex().

Referenced by WriteRootFile().

◆ TRootMSp()

void TEcnaRun::TRootMSp ( const Int_t &  argNbSampWrite)

Definition at line 4521 of file TEcnaRun.cc.

4521  {
4522  if (fTagMSp[0] == 1) {
4523  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
4524  for (Int_t i0Sample = 0; i0Sample < argNbSampWrite; i0Sample++) {
4525  gCnaRootFile->fCnaIndivResult->fMatHis(j0StexEcha, i0Sample) = fT2d_ev[j0StexEcha][i0Sample];
4526  }
4527  }
4528  }
4529 }

References TEcnaRootFile::fCnaIndivResult, fEcal, TEcnaResultType::fMatHis, fT2d_ev, fTagMSp, gCnaRootFile, and TEcnaParEcal::MaxCrysEcnaInStex().

Referenced by WriteRootFile().

◆ TRootNbOfEvts()

void TEcnaRun::TRootNbOfEvts ( const Int_t &  argNbSampWrite)

Definition at line 4484 of file TEcnaRun.cc.

4484  {
4485  if (fTagNbOfEvts[0] == 1) {
4486  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
4487  for (Int_t i0Sample = 0; i0Sample < argNbSampWrite; i0Sample++) {
4488  gCnaRootFile->fCnaIndivResult->fMatHis(j0StexEcha, i0Sample) = fT2d_NbOfEvts[j0StexEcha][i0Sample];
4489  }
4490  }
4491  }
4492 }

References TEcnaRootFile::fCnaIndivResult, fEcal, TEcnaResultType::fMatHis, fT2d_NbOfEvts, fTagNbOfEvts, gCnaRootFile, and TEcnaParEcal::MaxCrysEcnaInStex().

Referenced by WriteRootFile().

◆ TRootPed()

void TEcnaRun::TRootPed ( )

Definition at line 4727 of file TEcnaRun.cc.

4727  {
4728  if (fTagPed[0] == 1) {
4729  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
4730  gCnaRootFile->fCnaIndivResult->fMatHis(0, j0StexEcha) = fT1d_ev_ev[j0StexEcha];
4731  }
4732  }
4733 }

References TEcnaRootFile::fCnaIndivResult, fEcal, TEcnaResultType::fMatHis, fT1d_ev_ev, fTagPed, gCnaRootFile, and TEcnaParEcal::MaxCrysEcnaInStex().

Referenced by WriteRootFile().

◆ TRootSigCorss()

void TEcnaRun::TRootSigCorss ( )

Definition at line 4801 of file TEcnaRun.cc.

4801  {
4802  if (fTagSigCorss[0] == 1) {
4803  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
4804  gCnaRootFile->fCnaIndivResult->fMatHis(0, j0StexEcha) = fT1d_sig_cor_ss[j0StexEcha];
4805  }
4806  }
4807 }

References TEcnaRootFile::fCnaIndivResult, fEcal, TEcnaResultType::fMatHis, fT1d_sig_cor_ss, fTagSigCorss, gCnaRootFile, and TEcnaParEcal::MaxCrysEcnaInStex().

Referenced by WriteRootFile().

◆ TRootSSp()

void TEcnaRun::TRootSSp ( const Int_t &  argNbSampWrite)

Definition at line 4537 of file TEcnaRun.cc.

4537  {
4538  if (fTagSSp[0] == 1) {
4539  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
4540  for (Int_t i0Sample = 0; i0Sample < argNbSampWrite; i0Sample++) {
4541  gCnaRootFile->fCnaIndivResult->fMatHis(j0StexEcha, i0Sample) = fT2d_sig[j0StexEcha][i0Sample];
4542  }
4543  }
4544  }
4545 }

References TEcnaRootFile::fCnaIndivResult, fEcal, TEcnaResultType::fMatHis, fT2d_sig, fTagSSp, gCnaRootFile, and TEcnaParEcal::MaxCrysEcnaInStex().

Referenced by WriteRootFile().

◆ TRootStinNumbers()

void TEcnaRun::TRootStinNumbers ( )

Definition at line 4470 of file TEcnaRun.cc.

4470  {
4471  if (fTagStinNumbers[0] == 1) {
4472  for (Int_t j0StexStinEcna = 0; j0StexStinEcna < fEcal->MaxStinEcnaInStex(); j0StexStinEcna++) {
4473  gCnaRootFile->fCnaIndivResult->fMatHis(0, j0StexStinEcna) = fT1d_StexStinFromIndex[j0StexStinEcna];
4474  }
4475  }
4476 }

References TEcnaRootFile::fCnaIndivResult, fEcal, TEcnaResultType::fMatHis, fT1d_StexStinFromIndex, fTagStinNumbers, gCnaRootFile, and TEcnaParEcal::MaxStinEcnaInStex().

Referenced by WriteRootFile().

◆ TRootTno()

void TEcnaRun::TRootTno ( )

Definition at line 4741 of file TEcnaRun.cc.

4741  {
4742  if (fTagTno[0] == 1) {
4743  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
4744  gCnaRootFile->fCnaIndivResult->fMatHis(0, j0StexEcha) = fT1d_evsamp_of_sigevt[j0StexEcha];
4745  }
4746  }
4747 }

References TEcnaRootFile::fCnaIndivResult, fEcal, TEcnaResultType::fMatHis, fT1d_evsamp_of_sigevt, fTagTno, gCnaRootFile, and TEcnaParEcal::MaxCrysEcnaInStex().

Referenced by WriteRootFile().

◆ WriteNewRootFile()

Bool_t TEcnaRun::WriteNewRootFile ( const TString &  TypAna)

Definition at line 3415 of file TEcnaRun.cc.

3415  {
3416  //Write a new Root file. File name automatically generated by fCnaWrite->fMakeResultsFileName()
3417  //called here.
3418 
3419  Bool_t ok_write = kFALSE;
3420 
3421  fCnaWrite->RegisterFileParameters(TypAna.Data(),
3427  fFileHeader->fStex,
3432 
3433  fCnaWrite->fMakeResultsFileName(); // set fRootFileName, fRootFileNameShort
3436 
3437  const Text_t* FileShortName = (const Text_t*)fNewRootFileNameShort.Data();
3438 
3440  std::cout << "*TEcnaRun::WriteNewRootFile()> Results are going to be written in the ROOT file: " << std::endl
3441  << " " << fNewRootFileNameShort.Data() << std::endl;
3442  }
3443 
3444  ok_write = WriteRootFile(FileShortName, fNbSampForCalc);
3445 
3446  return ok_write;
3447 }

References gather_cfg::cout, fCnaWrite, fCodePrintAllComments, fFileHeader, TEcnaHeader::fFirstReqEvtNumber, fFlagPrint, TEcnaHeader::fLastReqEvtNumber, TEcnaWrite::fMakeResultsFileName(), fNbSampForCalc, fNewRootFileName, fNewRootFileNameShort, TEcnaHeader::fReqNbOfEvts, TEcnaHeader::fRunNumber, TEcnaHeader::fStartDate, TEcnaHeader::fStartTime, TEcnaHeader::fStex, TEcnaHeader::fStopDate, TEcnaHeader::fStopTime, TEcnaWrite::GetRootFileName(), TEcnaWrite::GetRootFileNameShort(), TEcnaWrite::RegisterFileParameters(), and WriteRootFile().

Referenced by TEcnaGui::Calculations().

◆ WriteRootFile() [1/2]

Bool_t TEcnaRun::WriteRootFile ( )

Definition at line 3365 of file TEcnaRun.cc.

3365  {
3366  //Write the Root file.
3367  //File name automatically generated by fCnaWrite->fMakeResultsFileName()
3368  //previously called in GetReadyToCompute().
3369 
3370  Bool_t ok_write = kFALSE;
3371 
3372  //============================= check number of found events
3373  Int_t nCountEvts = 0;
3374 
3375  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
3376  for (Int_t i0Sample = 0; i0Sample < fFileHeader->fNbOfSamples; i0Sample++) {
3377  nCountEvts += fT2d_NbOfEvts[i0StexEcha][i0Sample];
3378  }
3379  }
3380 
3381  if (nCountEvts <= 0) {
3382  //============== no write if no event found
3383  std::cout << "!TEcnaRun::WriteRootFile()> No event found for file " << fCnaWrite->GetRootFileNameShort().Data()
3384  << ". File will not be written." << std::endl;
3385  ok_write = kTRUE;
3386  } else {
3388  std::cout << "*TEcnaRun::WriteRootFile()> Results are going to be written in the ROOT file: " << std::endl
3389  << " " << fCnaWrite->GetRootFileName().Data() << std::endl;
3390  }
3391 
3392  const Text_t* FileShortName = (const Text_t*)fCnaWrite->GetRootFileNameShort().Data();
3393  ok_write = WriteRootFile(FileShortName, fFileHeader->fNbOfSamples);
3394 
3395  if (ok_write == kTRUE) {
3397  std::cout << "*TEcnaRun::WriteRootFile()> Writing OK for file " << fCnaWrite->GetRootFileName().Data()
3398  << std::endl;
3399  }
3400  } else {
3401  std::cout << "!TEcnaRun::WriteRootFile()> Writing FAILLED for file " << fCnaWrite->GetRootFileName().Data()
3402  << fTTBELL << std::endl;
3403  }
3404  }
3405  return ok_write;
3406 } // end of WriteRootFile()

References gather_cfg::cout, fCnaWrite, fCodePrintAllComments, fCodePrintNoComment, fEcal, fFileHeader, fFlagPrint, TEcnaHeader::fNbOfSamples, fT2d_NbOfEvts, fTTBELL, TEcnaWrite::GetRootFileName(), TEcnaWrite::GetRootFileNameShort(), and TEcnaParEcal::MaxCrysEcnaInStex().

Referenced by WriteNewRootFile().

◆ WriteRootFile() [2/2]

Bool_t TEcnaRun::WriteRootFile ( const Text_t *  name,
Int_t &  argNbSampWrite 
)

Definition at line 3463 of file TEcnaRun.cc.

3463  {
3464  //Write the Root file
3465 
3466  const Text_t* file_name = name;
3467 
3468  Bool_t ok_write = kFALSE;
3469 
3470  if (fOpenRootFile) {
3471  std::cout << "!TEcnaRun::WriteRootFile(...) *** ERROR ***> Writing on file already open." << fTTBELL << std::endl;
3472  } else {
3473  // List of the different element types and associated parameters as ordered in the ROOT file (smaller -> larger)
3474  // ==========
3475  //
3476  // WARNING *** HERE SIZES ARE THESE FOR THE BARREL (1700 Xtals) and for 10 samples ***
3477  //
3478  // Nb of Type of element Type Type Size Comment
3479  // elements Number Name
3480  //
3481  // 1 fMatHis(1,StexStin) ( 0) cTypNumbers 1*( 1, 68) = 68
3482 
3483  // 1 fMatHis(1,StexStin) (12) cTypAvPed 1*( 1, 68) = 68
3484  // 1 fMatHis(1,StexStin) ( 3) cTypAvTno 1*( 1, 68) = 68
3485  // 1 fMatHis(1,StexStin) ( 4) cTypAvLfn 1*( 1, 68) = 68
3486  // 1 fMatHis(1,StexStin) ( 5) cTypAvHfn 1*( 1, 68) = 68
3487  // 1 fMatHis(1,StexStin) (13) cTypAvMeanCorss 1*( 1, 68) = 68
3488  // 1 fMatHis(1,StexStin) (14) cTypAvSigCorss 1*( 1, 68) = 68
3489 
3490  // 1 fMatHis(1,StexEcha) (16) cTypPed 1*( 1,1700) = 1 700
3491  // 1 fMatHis(1,StexEcha) (17) cTypTno 1*( 1,1700) = 1 700
3492  // 1 fMatHis(1,StexEcha) (10) cTypMeanCorss 1*( 1,1700) = 1 700
3493  // 1 fMatHis(1,StexEcha) (18) cTypLfn 1*( 1,1700) = 1 700
3494  // 1 fMatHis(1,StexEcha) (19) cTypHfn 1*( 1,1700) = 1 700
3495  // 1 fMatHis(1,StexEcha) (11) cTypSigCorss 1*( 1,1700) = 1 700
3496 
3497  // 1 fMatMat(Stin,Stin) (23) cTypLFccMoStins 1*( 68, 68) = 4 624
3498  // 1 fMatMat(Stin,Stin) (24) cTypHFccMoStins 1*( 68, 68) = 4 624
3499 
3500  // 1 fMatHis(StexEcha, sample) (15) cTypNbOfEvts 1*(1700, 10) = 17 000
3501  // 1 fMatHis(StexEcha, sample) ( 1) cTypMSp 1*(1700, 10) = 17 000
3502  // 1 fMatHis(StexEcha, sample) ( 2) cTypSSp 1*(1700, 10) = 17 000
3503 
3504  // StexEcha fMatMat(sample, sample) ( 8) cTypCovCss 1700*( 10, 10) = 170 000
3505  // StexEcha fMatMat(sample, sample ( 9) cTypCorCss 1700*( 10, 10) = 170 000
3506 
3507  // StexEcha fMatHis(sample, bin_evt) (20) cTypAdcEvt, 1700*( 10, 150) = 2 550 000
3508 
3509  // 1 fMatMat(StexEcha, StexEcha) (21) cTypLfCov 1*(1700,1700) = 2 890 000
3510  // 1 fMatMat(StexEcha, StexEcha) (22) cTypLfCor 1*(1700,1700) = 2 890 000
3511 
3512  // 1 fMatMat(StexEcha, StexEcha) ( 6) cTypHfCov 1*(1700,1700) = 2 890 000 // (06/05/08)
3513  // 1 fMatMat(StexEcha, StexEcha) ( 7) cTypHfCor 1*(1700,1700) = 2 890 000 // (06/05/08)
3514 
3515  //......................................................................................................
3516 
3517  OpenRootFile(file_name, "RECREATE");
3518 
3519  TString typ_name = "?";
3520  Int_t v_nb_times = 0;
3521  Int_t v_dim_one = 0;
3522  Int_t v_dim_two = 0;
3523  Int_t v_size = 0;
3524  Int_t v_tot = 0;
3525  Int_t v_tot_writ = 0;
3526 
3527  //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3528  //
3529  // ===> no general method and no translation to TEcnaWrite
3530  // because the fT1d.. and fT2d... arrays
3531  // are attributes of TEcnaRun (calls to the "TRootXXXX" methods)
3532  //
3533  //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3534 
3535  //-------------------------- Stin numbers
3536  // 1 fMatHis(1,Stin) ( 0) cTypNumbers 1*( 1, 68) = 68
3537 
3538  Int_t MaxCar = fgMaxCar;
3539  typ_name.Resize(MaxCar);
3540  typ_name = "StinNumbers";
3541  v_nb_times = fFileHeader->fStinNumbersCalc;
3542  v_dim_one = 1;
3543  v_dim_two = fEcal->MaxStinEcnaInStex();
3544  v_size = v_nb_times * v_dim_one * v_dim_two;
3545  v_tot += v_size;
3546 
3548  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3549  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3550  << v_size;
3551  }
3552 
3553  for (Int_t i = 0; i < v_nb_times; i++) {
3554  if (fTagStinNumbers[0] == 1) {
3557  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
3559  TRootStinNumbers();
3560  gCnaRootFile->fCnaResultsTree->Fill();
3561  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
3562  std::cout << " => WRITTEN ON FILE ";
3563  v_tot_writ += v_size;
3564  }
3565  }
3566  }
3568  std::cout << std::endl;
3569  }
3570 
3571  //-------------------------- Average Pedestals (1 value per Stin)
3572  // 1 fMatHis(1, StexStin) (12) cTypAvPed 1*(1, 68) = 68
3573 
3574  MaxCar = fgMaxCar;
3575  typ_name.Resize(MaxCar);
3576  typ_name = "AvPed";
3577  v_nb_times = fFileHeader->fAvPedCalc;
3578  v_dim_one = 1;
3579  v_dim_two = fEcal->MaxStinEcnaInStex();
3580  v_size = v_nb_times * v_dim_one * v_dim_two;
3581  v_tot += v_size;
3582 
3584  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3585  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3586  << v_size;
3587  }
3588 
3589  for (Int_t i = 0; i < v_nb_times; i++) {
3590  if (fTagAvPed[0] == 1) {
3593  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
3595  TRootAvPed();
3596  gCnaRootFile->fCnaResultsTree->Fill();
3597  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
3598  std::cout << " => WRITTEN ON FILE ";
3599  v_tot_writ += v_size;
3600  }
3601  }
3602  }
3604  std::cout << std::endl;
3605  }
3606 
3607  //-------------------------- Average Total noise
3608  // StexEcha fMatHis(1, StexStin) ( 3) cTypAvTno 1*(1, 68) = 68
3609 
3610  MaxCar = fgMaxCar;
3611  typ_name.Resize(MaxCar);
3612  typ_name = "AvTno";
3613  v_nb_times = fFileHeader->fAvTnoCalc;
3614  v_dim_one = 1;
3615  v_dim_two = fEcal->MaxStinEcnaInStex();
3616  v_size = v_nb_times * v_dim_one * v_dim_two;
3617  v_tot += v_size;
3618 
3620  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3621  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3622  << v_size;
3623  }
3624 
3625  for (Int_t i = 0; i < v_nb_times; i++) {
3626  if (fTagAvTno[0] == 1) {
3629  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
3631  TRootAvTno();
3632  gCnaRootFile->fCnaResultsTree->Fill();
3633  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
3634  std::cout << " => WRITTEN ON FILE ";
3635  v_tot_writ += v_size;
3636  }
3637  }
3638  }
3640  std::cout << std::endl;
3641  }
3642 
3643  //-------------------------- Average Low frequency noise
3644  // 1 fMatHis(1, StexStin) ( 4) cTypAvLfn 1*(1, 68) = 68
3645 
3646  MaxCar = fgMaxCar;
3647  typ_name.Resize(MaxCar);
3648  typ_name = "AvLfn";
3649  v_nb_times = fFileHeader->fAvLfnCalc;
3650  v_dim_one = 1;
3651  v_dim_two = fEcal->MaxStinEcnaInStex();
3652  v_size = v_nb_times * v_dim_one * v_dim_two;
3653  v_tot += v_size;
3654 
3656  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3657  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3658  << v_size;
3659  }
3660 
3661  for (Int_t i = 0; i < v_nb_times; i++) {
3662  if (fTagAvLfn[0] == 1) {
3665  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
3667  TRootAvLfn();
3668  gCnaRootFile->fCnaResultsTree->Fill();
3669  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
3670  std::cout << " => WRITTEN ON FILE ";
3671  v_tot_writ += v_size;
3672  }
3673  }
3674  }
3676  std::cout << std::endl;
3677  }
3678 
3679  //-------------------------- Average High frequency noise
3680  // 1 fMatHis(1, StexStin) ( 5) cTypAvHfn 1*(1, 68) = 68
3681 
3682  MaxCar = fgMaxCar;
3683  typ_name.Resize(MaxCar);
3684  typ_name = "AvHfn";
3685  v_nb_times = fFileHeader->fAvHfnCalc;
3686  v_dim_one = 1;
3687  v_dim_two = fEcal->MaxStinEcnaInStex();
3688  v_size = v_nb_times * v_dim_one * v_dim_two;
3689  v_tot += v_size;
3690 
3692  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3693  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3694  << v_size;
3695  }
3696 
3697  for (Int_t i = 0; i < v_nb_times; i++) {
3698  if (fTagAvHfn[0] == 1) {
3701  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
3703  TRootAvHfn();
3704  gCnaRootFile->fCnaResultsTree->Fill();
3705  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
3706  std::cout << " => WRITTEN ON FILE ";
3707  v_tot_writ += v_size;
3708  }
3709  }
3710  }
3712  std::cout << std::endl;
3713  }
3714 
3715  //-------------------------- Average mean cor(s,s)
3716  // 1 fMatHis(1, StexStin) (13) cTypAvMeanCorss 1*(1, 68) = 68
3717 
3718  MaxCar = fgMaxCar;
3719  typ_name.Resize(MaxCar);
3720  typ_name = "AvMeanCorss";
3721  v_nb_times = fFileHeader->fAvMeanCorssCalc;
3722  v_dim_one = 1;
3723  v_dim_two = fEcal->MaxStinEcnaInStex();
3724  v_size = v_nb_times * v_dim_one * v_dim_two;
3725  v_tot += v_size;
3726 
3728  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3729  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3730  << v_size;
3731  }
3732 
3733  for (Int_t i = 0; i < v_nb_times; i++) {
3734  if (fTagAvMeanCorss[0] == 1) {
3737  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
3739  TRootAvEvCorss();
3740  gCnaRootFile->fCnaResultsTree->Fill();
3741  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
3742  std::cout << " => WRITTEN ON FILE ";
3743  v_tot_writ += v_size;
3744  }
3745  }
3746  }
3748  std::cout << std::endl;
3749  }
3750 
3751  //-------------------------- Average sigma of cor(s,s)
3752  // 1 fMatHis(1, StexStin) (14) cTypAvSigCorss 1*(1, 68) = 68
3753 
3754  MaxCar = fgMaxCar;
3755  typ_name.Resize(MaxCar);
3756  typ_name = "AvSigCorss";
3757  v_nb_times = fFileHeader->fAvSigCorssCalc;
3758  v_dim_one = 1;
3759  v_dim_two = fEcal->MaxStinEcnaInStex();
3760  v_size = v_nb_times * v_dim_one * v_dim_two;
3761  v_tot += v_size;
3762 
3764  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3765  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3766  << v_size;
3767  }
3768 
3769  for (Int_t i = 0; i < v_nb_times; i++) {
3770  if (fTagAvSigCorss[0] == 1) {
3773  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
3775  TRootAvSigCorss();
3776  gCnaRootFile->fCnaResultsTree->Fill();
3777  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
3778  std::cout << " => WRITTEN ON FILE ";
3779  v_tot_writ += v_size;
3780  }
3781  }
3782  }
3784  std::cout << std::endl;
3785  }
3786 
3787  //-------------------------- Expectation values of the expectation values of the samples (pedestals)
3788  // 1 fMatHis(1,StexEcha) (16) cTypPed 1*( 1,1700) = 1 700
3789 
3790  MaxCar = fgMaxCar;
3791  typ_name.Resize(MaxCar);
3792  typ_name = "Ped";
3793  v_nb_times = fFileHeader->fPedCalc;
3794  v_dim_one = 1;
3795  v_dim_two = fEcal->MaxCrysEcnaInStex();
3796  v_size = v_nb_times * v_dim_one * v_dim_two;
3797  v_tot += v_size;
3798 
3800  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3801  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3802  << v_size;
3803  }
3804 
3805  for (Int_t i = 0; i < v_nb_times; i++) {
3806  if (fTagPed[0] == 1) {
3809  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
3811  TRootPed();
3812  gCnaRootFile->fCnaResultsTree->Fill();
3813  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
3814  std::cout << " => WRITTEN ON FILE ";
3815  v_tot_writ += v_size;
3816  }
3817  }
3818  }
3820  std::cout << std::endl;
3821  }
3822 
3823  //-------------------------- Expectation values of the sigmas the samples
3824  // 1 fMatHis(1,StexEcha) (17) cTypTno 1*( 1,1700) = 1 700
3825 
3826  MaxCar = fgMaxCar;
3827  typ_name.Resize(MaxCar);
3828  typ_name = "Tno";
3829  v_nb_times = fFileHeader->fTnoCalc;
3830  v_dim_one = 1;
3831  v_dim_two = fEcal->MaxCrysEcnaInStex();
3832  v_size = v_nb_times * v_dim_one * v_dim_two;
3833  v_tot += v_size;
3834 
3836  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3837  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3838  << v_size;
3839  }
3840 
3841  for (Int_t i = 0; i < v_nb_times; i++) {
3842  if (fTagTno[0] == 1) {
3845  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
3847  TRootTno();
3848  gCnaRootFile->fCnaResultsTree->Fill();
3849  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
3850  std::cout << " => WRITTEN ON FILE ";
3851  v_tot_writ += v_size;
3852  }
3853  }
3854  }
3856  std::cout << std::endl;
3857  }
3858 
3859  //-------------------------- Expectation values of the correlations between the samples
3860  // 1 fMatHis(1,StexEcha) (10) cTypMeanCorss 1*( 1,1700) = 1 700
3861 
3862  MaxCar = fgMaxCar;
3863  typ_name.Resize(MaxCar);
3864  typ_name = "MeanCorss";
3865  v_nb_times = fFileHeader->fMeanCorssCalc;
3866  v_dim_one = 1;
3867  v_dim_two = fEcal->MaxCrysEcnaInStex();
3868  v_size = v_nb_times * v_dim_one * v_dim_two;
3869  v_tot += v_size;
3870 
3872  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3873  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3874  << v_size;
3875  }
3876 
3877  for (Int_t i = 0; i < v_nb_times; i++) {
3878  if (fTagMeanCorss[0] == 1) {
3881  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
3883  TRootMeanCorss();
3884  gCnaRootFile->fCnaResultsTree->Fill();
3885  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
3886  std::cout << " => WRITTEN ON FILE ";
3887  v_tot_writ += v_size;
3888  }
3889  }
3890  }
3892  std::cout << std::endl;
3893  }
3894 
3895  //-------------------------- Sigmas of the expectation values of the samples
3896  // 1 fMatHis(1,StexEcha) (18) cTypLfn 1*( 1,1700) = 1 700
3897 
3898  MaxCar = fgMaxCar;
3899  typ_name.Resize(MaxCar);
3900  typ_name = "Lfn";
3901  v_nb_times = fFileHeader->fLfnCalc;
3902  v_dim_one = 1;
3903  v_dim_two = fEcal->MaxCrysEcnaInStex();
3904  v_size = v_nb_times * v_dim_one * v_dim_two;
3905  v_tot += v_size;
3906 
3908  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3909  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3910  << v_size;
3911  }
3912 
3913  for (Int_t i = 0; i < v_nb_times; i++) {
3914  if (fTagLfn[0] == 1) {
3917  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
3919  TRootLfn();
3920  gCnaRootFile->fCnaResultsTree->Fill();
3921  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
3922  std::cout << " => WRITTEN ON FILE ";
3923  v_tot_writ += v_size;
3924  }
3925  }
3926  }
3928  std::cout << std::endl;
3929  }
3930 
3931  //-------------------------- Sigmas of the sigmas of the samples
3932  // 1 fMatHis(1,StexEcha) (19) cTypHfn 1*( 1,1700) = 1 700
3933 
3934  MaxCar = fgMaxCar;
3935  typ_name.Resize(MaxCar);
3936  typ_name = "Hfn";
3937  v_nb_times = fFileHeader->fHfnCalc;
3938  v_dim_one = 1;
3939  v_dim_two = fEcal->MaxCrysEcnaInStex();
3940  v_size = v_nb_times * v_dim_one * v_dim_two;
3941  v_tot += v_size;
3942 
3944  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3945  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3946  << v_size;
3947  }
3948 
3949  for (Int_t i = 0; i < v_nb_times; i++) {
3950  if (fTagHfn[0] == 1) {
3953  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
3955  TRootHfn();
3956  gCnaRootFile->fCnaResultsTree->Fill();
3957  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
3958  std::cout << " => WRITTEN ON FILE ";
3959  v_tot_writ += v_size;
3960  }
3961  }
3962  }
3964  std::cout << std::endl;
3965  }
3966 
3967  //-------------------------- Sigmas of the correlations between the samples
3968  // 1 fMatHis(1,StexEcha) (11) cTypSigCorss 1*( 1,1700) = 1 700
3969 
3970  MaxCar = fgMaxCar;
3971  typ_name.Resize(MaxCar);
3972  typ_name = "SigCorss";
3973  v_nb_times = fFileHeader->fSigCorssCalc;
3974  v_dim_one = 1;
3975  v_dim_two = fEcal->MaxCrysEcnaInStex();
3976  v_size = v_nb_times * v_dim_one * v_dim_two;
3977  v_tot += v_size;
3978 
3980  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3981  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3982  << v_size;
3983  }
3984 
3985  for (Int_t i = 0; i < v_nb_times; i++) {
3986  if (fTagSigCorss[0] == 1) {
3989  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
3991  TRootSigCorss();
3992  gCnaRootFile->fCnaResultsTree->Fill();
3993  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
3994  std::cout << " => WRITTEN ON FILE ";
3995  v_tot_writ += v_size;
3996  }
3997  }
3998  }
4000  std::cout << std::endl;
4001  }
4002 
4003  //----- Mean Covariances between StexEchas (averaged over samples) for all (Stin_X,Stin_Y)
4004  // 1 fMatMat(Stin,Stin) (23) cTypLFccMoStins 1*( 68, 68) = 4 624
4005 
4006  MaxCar = fgMaxCar;
4007  typ_name.Resize(MaxCar);
4008  typ_name = "LFccMoStins";
4009  v_nb_times = fFileHeader->fLFccMoStinsCalc;
4010  v_dim_one = fEcal->MaxStinEcnaInStex();
4011  v_dim_two = fEcal->MaxStinEcnaInStex();
4012  v_size = v_nb_times * v_dim_one * v_dim_two;
4013  v_tot += v_size;
4014 
4016  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
4017  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
4018  << v_size;
4019  }
4020 
4021  for (Int_t i = 0; i < v_nb_times; i++) {
4022  if (fTagLFccMoStins[0] == 1) {
4025  gCnaRootFile->fCnaIndivResult->SetSizeMat(v_dim_one, v_dim_two);
4027  TRootLFccMoStins();
4028  gCnaRootFile->fCnaResultsTree->Fill();
4029  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
4030  std::cout << " => WRITTEN ON FILE ";
4031  v_tot_writ += v_size;
4032  }
4033  }
4034  }
4036  std::cout << std::endl;
4037  }
4038 
4039  //----- Mean Correlations between StexEchas (averaged over samples) for all (Stin_X,Stin_Y)
4040  // 1 fMatMat(Stin,Stin) (24) cTypHFccMoStins 1*( 68, 68) = 4 624
4041 
4042  MaxCar = fgMaxCar;
4043  typ_name.Resize(MaxCar);
4044  typ_name = "HFccMoStins";
4045  v_nb_times = fFileHeader->fHFccMoStinsCalc;
4046  v_dim_one = fEcal->MaxStinEcnaInStex();
4047  v_dim_two = fEcal->MaxStinEcnaInStex();
4048  v_size = v_nb_times * v_dim_one * v_dim_two;
4049  v_tot += v_size;
4050 
4052  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
4053  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
4054  << v_size;
4055  }
4056 
4057  for (Int_t i = 0; i < v_nb_times; i++) {
4058  if (fTagHFccMoStins[0] == 1) {
4061  gCnaRootFile->fCnaIndivResult->SetSizeMat(v_dim_one, v_dim_two);
4063  TRootHFccMoStins();
4064  gCnaRootFile->fCnaResultsTree->Fill();
4065  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
4066  std::cout << " => WRITTEN ON FILE ";
4067  v_tot_writ += v_size;
4068  }
4069  }
4070  }
4072  std::cout << std::endl;
4073  }
4074 
4075  //-------------------------- Numbers of found events (NbOfEvts)
4076  // 1 fMatHis(StexEcha, sample) (15) cTypNbOfEvts 1*(1700, 10) = 17 000
4077 
4078  MaxCar = fgMaxCar;
4079  typ_name.Resize(MaxCar);
4080  typ_name = "NbOfEvts";
4081  v_nb_times = fFileHeader->fNbOfEvtsCalc;
4082  v_dim_one = fEcal->MaxCrysEcnaInStex();
4083  v_dim_two = argNbSampWrite;
4084  v_size = v_nb_times * v_dim_one * v_dim_two;
4085  v_tot += v_size;
4086 
4088  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
4089  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
4090  << v_size;
4091  }
4092 
4093  for (Int_t i = 0; i < v_nb_times; i++) {
4094  if (fTagNbOfEvts[0] == 1) {
4097  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
4099  TRootNbOfEvts(argNbSampWrite);
4100  gCnaRootFile->fCnaResultsTree->Fill();
4101  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
4102  std::cout << " => WRITTEN ON FILE ";
4103  v_tot_writ += v_size;
4104  }
4105  }
4106  }
4108  std::cout << std::endl;
4109  }
4110 
4111  //-------------------------- Expectation values of the samples
4112  // 1 fMatHis(StexEcha, sample) ( 1) cTypMSp 1*(1700, 10) = 17 000
4113 
4114  MaxCar = fgMaxCar;
4115  typ_name.Resize(MaxCar);
4116  typ_name = "MSp";
4117  v_nb_times = fFileHeader->fMSpCalc;
4118  v_dim_one = fEcal->MaxCrysEcnaInStex();
4119  v_dim_two = argNbSampWrite;
4120  v_size = v_nb_times * v_dim_one * v_dim_two;
4121  v_tot += v_size;
4122 
4124  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
4125  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
4126  << v_size;
4127  }
4128 
4129  for (Int_t i = 0; i < v_nb_times; i++) {
4130  if (fTagMSp[0] == 1) {
4133  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
4135  TRootMSp(argNbSampWrite);
4136  gCnaRootFile->fCnaResultsTree->Fill();
4137  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
4138  std::cout << " => WRITTEN ON FILE ";
4139  v_tot_writ += v_size;
4140  }
4141  }
4142  }
4144  std::cout << std::endl;
4145  }
4146 
4147  //-------------------------- Sigmas of the samples
4148  // 1 fMatHis(StexEcha, sample) ( 2) cTypSSp 1*(1700, 10) = 17 000
4149 
4150  MaxCar = fgMaxCar;
4151  typ_name.Resize(MaxCar);
4152  typ_name = "SSp";
4153  v_nb_times = fFileHeader->fSSpCalc;
4154  v_dim_one = fEcal->MaxCrysEcnaInStex();
4155  v_dim_two = argNbSampWrite;
4156  v_size = v_nb_times * v_dim_one * v_dim_two;
4157  v_tot += v_size;
4158 
4160  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
4161  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
4162  << v_size;
4163  }
4164 
4165  for (Int_t i = 0; i < v_nb_times; i++) {
4166  if (fTagSSp[0] == 1) {
4169  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
4171  TRootSSp(argNbSampWrite);
4172  gCnaRootFile->fCnaResultsTree->Fill();
4173  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
4174  std::cout << " => WRITTEN ON FILE ";
4175  v_tot_writ += v_size;
4176  }
4177  }
4178  }
4180  std::cout << std::endl;
4181  }
4182 
4183  //-------------------------- Covariances between samples
4184 
4185  // StexEcha fMatMat(sample, sample) ( 8) cTypCovCss 1700*( 10, 10) = 170 000
4186 
4187  MaxCar = fgMaxCar;
4188  typ_name.Resize(MaxCar);
4189  typ_name = "CovCss";
4190  v_nb_times = fFileHeader->fCovCssCalc;
4191  v_dim_one = argNbSampWrite;
4192  v_dim_two = argNbSampWrite;
4193  v_size = v_nb_times * v_dim_one * v_dim_two;
4194  v_tot += v_size;
4195 
4197  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
4198  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
4199  << v_size;
4200  }
4201 
4202  for (Int_t i0StexEcha = 0; i0StexEcha < v_nb_times; i0StexEcha++) {
4203  if (fTagCovCss[i0StexEcha] == 1) {
4205  gCnaRootFile->fCnaIndivResult->fIthElement = i0StexEcha;
4206  gCnaRootFile->fCnaIndivResult->SetSizeMat(v_dim_one, v_dim_two);
4208  TRootCovCss(i0StexEcha, argNbSampWrite);
4209  gCnaRootFile->fCnaResultsTree->Fill();
4210  if (i0StexEcha == 0 && fFlagPrint == fCodePrintAllComments) {
4211  std::cout << " => WRITTEN ON FILE ";
4212  v_tot_writ += v_size;
4213  }
4214  }
4215  }
4217  std::cout << std::endl;
4218  }
4219 
4220  //-------------------------- Correlations between samples
4221  // StexEcha fMatMat(sample, sample) ( 9) cTypCorCss 1700*( 10, 10) = 170 000
4222 
4223  MaxCar = fgMaxCar;
4224  typ_name.Resize(MaxCar);
4225  typ_name = "CorCss";
4226  v_nb_times = fFileHeader->fCorCssCalc;
4227  v_dim_one = argNbSampWrite;
4228  v_dim_two = argNbSampWrite;
4229  v_size = v_nb_times * v_dim_one * v_dim_two;
4230  v_tot += v_size;
4231 
4233  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
4234  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
4235  << v_size;
4236  }
4237 
4238  for (Int_t i0StexEcha = 0; i0StexEcha < v_nb_times; i0StexEcha++) {
4239  if (fTagCorCss[i0StexEcha] == 1) {
4241  gCnaRootFile->fCnaIndivResult->fIthElement = i0StexEcha;
4242  gCnaRootFile->fCnaIndivResult->SetSizeMat(v_dim_one, v_dim_two);
4244  TRootCorCss(i0StexEcha, argNbSampWrite);
4245  gCnaRootFile->fCnaResultsTree->Fill();
4246  if (i0StexEcha == 0 && fFlagPrint == fCodePrintAllComments) {
4247  std::cout << " => WRITTEN ON FILE ";
4248  v_tot_writ += v_size;
4249  }
4250  }
4251  }
4253  std::cout << std::endl;
4254  }
4255 
4256  //-------------------------- Samples as a function of event = events distributions
4257  // StexEcha fMatHis(sample, bins) (20) cTypAdcEvt, 1700*( 10, 150) = 2 550 000
4258 
4259  MaxCar = fgMaxCar;
4260  typ_name.Resize(MaxCar);
4261  typ_name = "AdcEvt";
4262  v_nb_times = fFileHeader->fAdcEvtCalc;
4263  v_dim_one = argNbSampWrite;
4264  v_dim_two = fFileHeader->fReqNbOfEvts;
4265  v_size = v_nb_times * v_dim_one * v_dim_two;
4266  v_tot += v_size;
4267 
4269  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
4270  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
4271  << v_size;
4272  }
4273 
4274  for (Int_t i0StexEcha = 0; i0StexEcha < v_nb_times; i0StexEcha++) {
4275  if (fTagAdcEvt[i0StexEcha] == 1) {
4277  gCnaRootFile->fCnaIndivResult->fIthElement = i0StexEcha;
4278  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
4280  TRootAdcEvt(i0StexEcha, argNbSampWrite);
4281  gCnaRootFile->fCnaResultsTree->Fill();
4282  if (i0StexEcha == 0 && fFlagPrint == fCodePrintAllComments) {
4283  std::cout << " => WRITTEN ON FILE ";
4284  v_tot_writ += v_size;
4285  }
4286  }
4287  }
4289  std::cout << std::endl;
4290  }
4291 
4292  //-------------------------- Low Frequency Covariances between StexEchas
4293  // sample fMatMat(StexEcha, StexEcha) (21) cTypLfCov 1*(1700,1700) = 2 890 000
4294 
4295  MaxCar = fgMaxCar;
4296  typ_name.Resize(MaxCar);
4297  typ_name = "LfCov";
4298  v_nb_times = fFileHeader->fLfCovCalc;
4299  v_dim_one = fEcal->MaxCrysEcnaInStex();
4300  v_dim_two = fEcal->MaxCrysEcnaInStex();
4301  v_size = v_nb_times * v_dim_one * v_dim_two;
4302  v_tot += v_size;
4303 
4305  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
4306  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
4307  << v_size;
4308  }
4309 
4310  for (Int_t i = 0; i < v_nb_times; i++) { //=================================== Record type EB
4311  if (fTagLfCov[0] == 1) {
4314  gCnaRootFile->fCnaIndivResult->SetSizeMat(v_dim_one, v_dim_two);
4316  TRootLfCov();
4317  gCnaRootFile->fCnaResultsTree->Fill();
4318  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
4319  std::cout << " => WRITTEN ON FILE ";
4320  v_tot_writ += v_size;
4321  }
4322  }
4323  }
4325  std::cout << std::endl;
4326  }
4327 
4328  //-------------------------- Low Frequency Correlations between StexEchas
4329  // sample fMatMat(StexEcha, StexEcha) (22) cTypLfCor 1*(1700,1700) = 2 890 000
4330 
4331  MaxCar = fgMaxCar;
4332  typ_name.Resize(MaxCar);
4333  typ_name = "LfCor";
4334  v_nb_times = fFileHeader->fLfCorCalc;
4335  v_dim_one = fEcal->MaxCrysEcnaInStex();
4336  v_dim_two = fEcal->MaxCrysEcnaInStex();
4337  v_size = v_nb_times * v_dim_one * v_dim_two;
4338  v_tot += v_size;
4339 
4341  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
4342  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
4343  << v_size;
4344  }
4345 
4346  for (Int_t i = 0; i < v_nb_times; i++) {
4347  if (fTagLfCor[0] == 1) {
4350  gCnaRootFile->fCnaIndivResult->SetSizeMat(v_dim_one, v_dim_two);
4352  TRootLfCor();
4353  gCnaRootFile->fCnaResultsTree->Fill();
4354  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
4355  std::cout << " => WRITTEN ON FILE ";
4356  v_tot_writ += v_size;
4357  }
4358  }
4359  }
4361  std::cout << std::endl;
4362  }
4363 
4364  //-------------------------- High Frequency Covariances between StexEchas
4365  // sample fMatMat(StexEcha, StexEcha) (6) cTypHfCov 1*(1700,1700) = 2 890 000
4366 
4367  MaxCar = fgMaxCar;
4368  typ_name.Resize(MaxCar);
4369  typ_name = "HfCov";
4370  v_nb_times = fFileHeader->fHfCovCalc;
4371  v_dim_one = fEcal->MaxCrysEcnaInStex();
4372  v_dim_two = fEcal->MaxCrysEcnaInStex();
4373  v_size = v_nb_times * v_dim_one * v_dim_two;
4374  v_tot += v_size;
4375 
4377  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
4378  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
4379  << v_size;
4380  }
4381 
4382  for (Int_t i = 0; i < v_nb_times; i++) {
4383  if (fTagHfCov[0] == 1) {
4386  gCnaRootFile->fCnaIndivResult->SetSizeMat(v_dim_one, v_dim_two);
4388  TRootHfCov();
4389  gCnaRootFile->fCnaResultsTree->Fill();
4390  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
4391  std::cout << " => WRITTEN ON FILE ";
4392  v_tot_writ += v_size;
4393  }
4394  }
4395  }
4397  std::cout << std::endl;
4398  }
4399 
4400  //-------------------------- High Frequency Correlations between StexEchas
4401  // sample fMatMat(StexEcha, StexEcha) (7) cTypHfCor 1*(1700,1700) = 2 890 000
4402 
4403  MaxCar = fgMaxCar;
4404  typ_name.Resize(MaxCar);
4405  typ_name = "HfCor";
4406  v_nb_times = fFileHeader->fHfCorCalc;
4407  v_dim_one = fEcal->MaxCrysEcnaInStex();
4408  v_dim_two = fEcal->MaxCrysEcnaInStex();
4409  v_size = v_nb_times * v_dim_one * v_dim_two;
4410  v_tot += v_size;
4411 
4413  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
4414  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
4415  << v_size;
4416  }
4417 
4418  for (Int_t i = 0; i < v_nb_times; i++) {
4419  if (fTagHfCor[0] == 1) {
4422  gCnaRootFile->fCnaIndivResult->SetSizeMat(v_dim_one, v_dim_two);
4424  TRootHfCor();
4425  gCnaRootFile->fCnaResultsTree->Fill();
4426  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
4427  std::cout << " => WRITTEN ON FILE ";
4428  v_tot_writ += v_size;
4429  }
4430  }
4431  }
4433  std::cout << std::endl;
4434  }
4435 
4436  //---------------------------------------------- WRITING
4437  //...................................... file
4438  gCnaRootFile->fRootFile->Write();
4439  //...................................... header
4440  fFileHeader->Write();
4441 
4442  //...................................... status message
4444  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(20) << "TOTAL: " << std::setw(21)
4445  << "CALCULATED = " << std::setw(9) << v_tot << " => WRITTEN ON FILE = " << std::setw(9) << v_tot_writ
4446  << std::endl;
4447  }
4448 
4450  std::cout << "*TEcnaRun::WriteRootFile(...)> Write OK in file " << file_name << " in directory:" << std::endl
4451  << " " << fCnaParPaths->ResultsRootFilePath().Data() << std::endl;
4452  }
4453 
4454  ok_write = kTRUE;
4455 
4456  //...................................... close
4458  }
4459  return ok_write;
4460 } //-------------- End of WriteRootFile(...) -----------------------

References CloseRootFile(), gather_cfg::cout, cTypAdcEvt, cTypAvHfn, cTypAvLfn, cTypAvMeanCorss, cTypAvPed, cTypAvSigCorss, cTypAvTno, cTypCorCss, cTypCovCss, cTypHFccMoStins, cTypHfCor, cTypHfCov, cTypHfn, cTypLFccMoStins, cTypLfCor, cTypLfCov, cTypLfn, cTypMeanCorss, cTypMSp, cTypNbOfEvts, cTypNumbers, cTypPed, cTypSigCorss, cTypSSp, cTypTno, TEcnaHeader::fAdcEvtCalc, TEcnaHeader::fAvHfnCalc, TEcnaHeader::fAvLfnCalc, TEcnaHeader::fAvMeanCorssCalc, TEcnaHeader::fAvPedCalc, TEcnaHeader::fAvSigCorssCalc, TEcnaHeader::fAvTnoCalc, TEcnaRootFile::fCnaIndivResult, fCnaParPaths, TEcnaRootFile::fCnaResultsTree, fCodePrintAllComments, TEcnaHeader::fCorCssCalc, TEcnaHeader::fCovCssCalc, fEcal, fFileHeader, fFlagPrint, fgMaxCar, TEcnaHeader::fHFccMoStinsCalc, TEcnaHeader::fHfCorCalc, TEcnaHeader::fHfCovCalc, TEcnaHeader::fHfnCalc, contentValuesCheck::file_name, TEcnaResultType::fIthElement, TEcnaHeader::fLFccMoStinsCalc, TEcnaHeader::fLfCorCalc, TEcnaHeader::fLfCovCalc, TEcnaHeader::fLfnCalc, TEcnaResultType::fMatHis, TEcnaResultType::fMatMat, TEcnaHeader::fMeanCorssCalc, TEcnaHeader::fMSpCalc, TEcnaHeader::fNbOfEvtsCalc, fOpenRootFile, TEcnaHeader::fPedCalc, TEcnaHeader::fReqNbOfEvts, TEcnaRootFile::fRootFile, TEcnaHeader::fSigCorssCalc, TEcnaHeader::fSSpCalc, TEcnaHeader::fStinNumbersCalc, fTagAdcEvt, fTagAvHfn, fTagAvLfn, fTagAvMeanCorss, fTagAvPed, fTagAvSigCorss, fTagAvTno, fTagCorCss, fTagCovCss, fTagHFccMoStins, fTagHfCor, fTagHfCov, fTagHfn, fTagLFccMoStins, fTagLfCor, fTagLfCov, fTagLfn, fTagMeanCorss, fTagMSp, fTagNbOfEvts, fTagPed, fTagSigCorss, fTagSSp, fTagStinNumbers, fTagTno, TEcnaHeader::fTnoCalc, fTTBELL, TEcnaResultType::fTypOfCnaResult, gCnaRootFile, mps_fire::i, TEcnaParEcal::MaxCrysEcnaInStex(), TEcnaParEcal::MaxStinEcnaInStex(), Skims_PA_cff::name, OpenRootFile(), TEcnaNArrayD::ReSet(), TEcnaParPaths::ResultsRootFilePath(), TEcnaResultType::SetSizeHis(), TEcnaResultType::SetSizeMat(), TRootAdcEvt(), TRootAvEvCorss(), TRootAvHfn(), TRootAvLfn(), TRootAvPed(), TRootAvSigCorss(), TRootAvTno(), TRootCorCss(), TRootCovCss(), TRootHFccMoStins(), TRootHfCor(), TRootHfCov(), TRootHfn(), TRootLFccMoStins(), TRootLfCor(), TRootLfCov(), TRootLfn(), TRootMeanCorss(), TRootMSp(), TRootNbOfEvts(), TRootPed(), TRootSigCorss(), TRootSSp(), TRootStinNumbers(), and TRootTno().

Member Data Documentation

◆ fBuildEvtNotSkipped

Int_t TEcnaRun::fBuildEvtNotSkipped
private

Definition at line 403 of file TEcnaRun.h.

Referenced by GetSampleAdcValues(), Init(), and ~TEcnaRun().

◆ fCdelete

Int_t TEcnaRun::fCdelete
private

Definition at line 372 of file TEcnaRun.h.

Referenced by Init(), and ~TEcnaRun().

◆ fCnaCommand

Int_t TEcnaRun::fCnaCommand
private

Definition at line 369 of file TEcnaRun.h.

Referenced by Init().

◆ fCnaError

Int_t TEcnaRun::fCnaError
private

Definition at line 369 of file TEcnaRun.h.

Referenced by Init().

◆ fCnaParCout

TEcnaParCout* TEcnaRun::fCnaParCout
private

Definition at line 384 of file TEcnaRun.h.

Referenced by Init(), SetEcalSubDetector(), and TEcnaRun().

◆ fCnaParPaths

TEcnaParPaths* TEcnaRun::fCnaParPaths
private

◆ fCnaWrite

TEcnaWrite* TEcnaRun::fCnaWrite
private

Definition at line 386 of file TEcnaRun.h.

Referenced by GetReadyToCompute(), SetEcalSubDetector(), WriteNewRootFile(), and WriteRootFile().

◆ fCnew

Int_t TEcnaRun::fCnew
private

◆ fCodePrintAllComments

Int_t TEcnaRun::fCodePrintAllComments
private

◆ fCodePrintComments

Int_t TEcnaRun::fCodePrintComments
private

Definition at line 508 of file TEcnaRun.h.

Referenced by Init(), and PrintComments().

◆ fCodePrintNoComment

Int_t TEcnaRun::fCodePrintNoComment
private

◆ fCodePrintWarnings

Int_t TEcnaRun::fCodePrintWarnings
private

Definition at line 508 of file TEcnaRun.h.

Referenced by Init(), PrintWarnings(), and ~TEcnaRun().

◆ fEcal

TEcnaParEcal* TEcnaRun::fEcal
private

◆ fEcalNumbering

TEcnaNumbering* TEcnaRun::fEcalNumbering
private

◆ fFcout_f

std::ofstream TEcnaRun::fFcout_f
private

Definition at line 505 of file TEcnaRun.h.

◆ fFileHeader

TEcnaHeader* TEcnaRun::fFileHeader
private

◆ fFlagPrint

Int_t TEcnaRun::fFlagPrint
private

◆ fFlagSubDet

TString TEcnaRun::fFlagSubDet
private

◆ fgMaxCar

Int_t TEcnaRun::fgMaxCar
private

Definition at line 367 of file TEcnaRun.h.

Referenced by Init(), SetEcalSubDetector(), and WriteRootFile().

◆ fMaxMsgIndexForMiscDiag

Int_t TEcnaRun::fMaxMsgIndexForMiscDiag
private

Definition at line 378 of file TEcnaRun.h.

Referenced by Init().

◆ fMemoReadNumberOfEventsforSamples

Int_t TEcnaRun::fMemoReadNumberOfEventsforSamples
private

Definition at line 410 of file TEcnaRun.h.

Referenced by Init().

◆ fMiscDiag

Int_t* TEcnaRun::fMiscDiag
private

◆ fNbOfMiscDiagCounters

Int_t TEcnaRun::fNbOfMiscDiagCounters
private

Definition at line 377 of file TEcnaRun.h.

Referenced by GetReadyToReadData(), Init(), and ~TEcnaRun().

◆ fNbSampForCalc

Int_t TEcnaRun::fNbSampForCalc
private

◆ fNbSampForFic

Int_t TEcnaRun::fNbSampForFic
private

Definition at line 405 of file TEcnaRun.h.

Referenced by GetReadyToCompute(), GetReadyToReadData(), GetSampleAdcValues(), and TEcnaRun().

◆ fNewRootFileName

TString TEcnaRun::fNewRootFileName
private

Definition at line 398 of file TEcnaRun.h.

Referenced by GetNewRootFileName(), and WriteNewRootFile().

◆ fNewRootFileNameShort

TString TEcnaRun::fNewRootFileNameShort
private

Definition at line 399 of file TEcnaRun.h.

Referenced by GetNewRootFileNameShort(), and WriteNewRootFile().

◆ fNumberOfEvents

Int_t TEcnaRun::fNumberOfEvents
private

◆ fObjectManager

TEcnaObject* TEcnaRun::fObjectManager
private

Definition at line 380 of file TEcnaRun.h.

Referenced by GetReadyToReadData(), OpenRootFile(), ReadSampleAdcValues(), and TEcnaRun().

◆ fOpenRootFile

Bool_t TEcnaRun::fOpenRootFile
private

Definition at line 393 of file TEcnaRun.h.

Referenced by CloseRootFile(), Init(), OpenRootFile(), and WriteRootFile().

◆ fReadyToReadData

Int_t TEcnaRun::fReadyToReadData
private

Definition at line 394 of file TEcnaRun.h.

Referenced by GetReadyToReadData(), GetSampleAdcValues(), and Init().

◆ fRootFileName

TString TEcnaRun::fRootFileName
private

Definition at line 396 of file TEcnaRun.h.

Referenced by GetRootFileName(), and ReadSampleAdcValues().

◆ fRootFileNameShort

TString TEcnaRun::fRootFileNameShort
private

Definition at line 397 of file TEcnaRun.h.

Referenced by GetRootFileNameShort(), and ReadSampleAdcValues().

◆ fSpecialStexStinNotIndexed

Int_t TEcnaRun::fSpecialStexStinNotIndexed
private

Definition at line 401 of file TEcnaRun.h.

Referenced by GetReadyToReadData(), GetSampleAdcValues(), and Init().

◆ fStexName

TString TEcnaRun::fStexName
private

◆ fStinIndexBuilt

Int_t TEcnaRun::fStinIndexBuilt
private

Definition at line 402 of file TEcnaRun.h.

Referenced by GetSampleAdcValues(), and Init().

◆ fStinName

TString TEcnaRun::fStinName
private

◆ fT1d_av_ev_corss

Double_t* TEcnaRun::fT1d_av_ev_corss
private

Definition at line 455 of file TEcnaRun.h.

Referenced by AverageMeanCorrelationsBetweenSamples(), Init(), TRootAvEvCorss(), and ~TEcnaRun().

◆ fT1d_av_hifn

Double_t* TEcnaRun::fT1d_av_hifn
private

Definition at line 465 of file TEcnaRun.h.

Referenced by AverageHighFrequencyNoise(), Init(), TRootAvHfn(), and ~TEcnaRun().

◆ fT1d_av_lofn

Double_t* TEcnaRun::fT1d_av_lofn
private

Definition at line 460 of file TEcnaRun.h.

Referenced by AverageLowFrequencyNoise(), Init(), TRootAvLfn(), and ~TEcnaRun().

◆ fT1d_av_mped

Double_t* TEcnaRun::fT1d_av_mped
private

Definition at line 445 of file TEcnaRun.h.

Referenced by AveragePedestals(), Init(), TRootAvPed(), and ~TEcnaRun().

◆ fT1d_av_sig_corss

Double_t* TEcnaRun::fT1d_av_sig_corss
private

◆ fT1d_av_totn

Double_t* TEcnaRun::fT1d_av_totn
private

Definition at line 450 of file TEcnaRun.h.

Referenced by AverageTotalNoise(), Init(), TRootAvTno(), and ~TEcnaRun().

◆ fT1d_ev

Double_t* TEcnaRun::fT1d_ev
private

Definition at line 425 of file TEcnaRun.h.

Referenced by Init(), SampleMeans(), and ~TEcnaRun().

◆ fT1d_ev_cor_ss

Double_t* TEcnaRun::fT1d_ev_cor_ss
private

◆ fT1d_ev_ev

Double_t* TEcnaRun::fT1d_ev_ev
private

Definition at line 443 of file TEcnaRun.h.

Referenced by AveragePedestals(), Init(), Pedestals(), TRootPed(), and ~TEcnaRun().

◆ fT1d_evevt_of_sigsamp

Double_t* TEcnaRun::fT1d_evevt_of_sigsamp
private

Definition at line 463 of file TEcnaRun.h.

Referenced by AverageHighFrequencyNoise(), HighFrequencyNoise(), Init(), TRootHfn(), and ~TEcnaRun().

◆ fT1d_evsamp_of_sigevt

Double_t* TEcnaRun::fT1d_evsamp_of_sigevt
private

Definition at line 448 of file TEcnaRun.h.

Referenced by AverageTotalNoise(), Init(), TotalNoise(), TRootTno(), and ~TEcnaRun().

◆ fT1d_NbOfEvts

Int_t* TEcnaRun::fT1d_NbOfEvts
private

Definition at line 418 of file TEcnaRun.h.

Referenced by GetReadyToReadData(), Init(), and ~TEcnaRun().

◆ fT1d_sig

Double_t* TEcnaRun::fT1d_sig
private

Definition at line 429 of file TEcnaRun.h.

Referenced by Init(), SampleSigmas(), and ~TEcnaRun().

◆ fT1d_sig_cor_ss

Double_t* TEcnaRun::fT1d_sig_cor_ss
private

◆ fT1d_sigevt_of_evsamp

Double_t* TEcnaRun::fT1d_sigevt_of_evsamp
private

Definition at line 458 of file TEcnaRun.h.

Referenced by AverageLowFrequencyNoise(), Init(), LowFrequencyNoise(), TRootLfn(), and ~TEcnaRun().

◆ fT1d_StexStinFromIndex

Int_t* TEcnaRun::fT1d_StexStinFromIndex
private

◆ fT1dCrysNumbersTable

Int_t* TEcnaRun::fT1dCrysNumbersTable
private

Definition at line 503 of file TEcnaRun.h.

Referenced by Init(), and ~TEcnaRun().

◆ fT2d1_hf_cor

Double_t* TEcnaRun::fT2d1_hf_cor
private

Definition at line 488 of file TEcnaRun.h.

Referenced by HighFrequencyCorrelationsBetweenChannels(), Init(), and ~TEcnaRun().

◆ fT2d1_hf_cov

Double_t* TEcnaRun::fT2d1_hf_cov
private

Definition at line 484 of file TEcnaRun.h.

Referenced by HighFrequencyCovariancesBetweenChannels(), Init(), and ~TEcnaRun().

◆ fT2d1_hfcc_mostins

Double_t* TEcnaRun::fT2d1_hfcc_mostins
private

Definition at line 497 of file TEcnaRun.h.

Referenced by HighFrequencyMeanCorrelationsBetweenStins(), Init(), and ~TEcnaRun().

◆ fT2d1_lf_cor

Double_t* TEcnaRun::fT2d1_lf_cor
private

Definition at line 479 of file TEcnaRun.h.

Referenced by Init(), LowFrequencyCorrelationsBetweenChannels(), and ~TEcnaRun().

◆ fT2d1_lf_cov

Double_t* TEcnaRun::fT2d1_lf_cov
private

Definition at line 475 of file TEcnaRun.h.

Referenced by Init(), LowFrequencyCovariancesBetweenChannels(), and ~TEcnaRun().

◆ fT2d1_lfcc_mostins

Double_t* TEcnaRun::fT2d1_lfcc_mostins
private

Definition at line 493 of file TEcnaRun.h.

Referenced by Init(), LowFrequencyMeanCorrelationsBetweenStins(), and ~TEcnaRun().

◆ fT2d_ev

Double_t** TEcnaRun::fT2d_ev
private

◆ fT2d_hf_cor

Double_t** TEcnaRun::fT2d_hf_cor
private

◆ fT2d_hf_cov

Double_t** TEcnaRun::fT2d_hf_cov
private

◆ fT2d_hfcc_mostins

Double_t** TEcnaRun::fT2d_hfcc_mostins
private

◆ fT2d_lf_cor

Double_t** TEcnaRun::fT2d_lf_cor
private

◆ fT2d_lf_cov

Double_t** TEcnaRun::fT2d_lf_cov
private

◆ fT2d_lfcc_mostins

Double_t** TEcnaRun::fT2d_lfcc_mostins
private

◆ fT2d_NbOfEvts

Int_t** TEcnaRun::fT2d_NbOfEvts
private

◆ fT2d_sig

Double_t** TEcnaRun::fT2d_sig
private

Definition at line 428 of file TEcnaRun.h.

Referenced by Init(), SampleSigmas(), TotalNoise(), TRootSSp(), and ~TEcnaRun().

◆ fT2dCrysNumbersTable

Int_t** TEcnaRun::fT2dCrysNumbersTable
private

Definition at line 502 of file TEcnaRun.h.

Referenced by Init(), and ~TEcnaRun().

◆ fT3d1_AdcValues

Double_t* TEcnaRun::fT3d1_AdcValues
private

Definition at line 414 of file TEcnaRun.h.

Referenced by GetReadyToReadData(), Init(), and ~TEcnaRun().

◆ fT3d1_cor_ss

Double_t* TEcnaRun::fT3d1_cor_ss
private

Definition at line 439 of file TEcnaRun.h.

Referenced by CorrelationsBetweenSamples(), Init(), and ~TEcnaRun().

◆ fT3d1_cov_ss

Double_t* TEcnaRun::fT3d1_cov_ss
private

Definition at line 434 of file TEcnaRun.h.

Referenced by CovariancesBetweenSamples(), Init(), and ~TEcnaRun().

◆ fT3d2_AdcValues

Double_t** TEcnaRun::fT3d2_AdcValues
private

Definition at line 413 of file TEcnaRun.h.

Referenced by GetReadyToReadData(), Init(), and ~TEcnaRun().

◆ fT3d2_cor_ss

Double_t** TEcnaRun::fT3d2_cor_ss
private

Definition at line 438 of file TEcnaRun.h.

Referenced by CorrelationsBetweenSamples(), Init(), and ~TEcnaRun().

◆ fT3d2_cov_ss

Double_t** TEcnaRun::fT3d2_cov_ss
private

Definition at line 433 of file TEcnaRun.h.

Referenced by CovariancesBetweenSamples(), Init(), and ~TEcnaRun().

◆ fT3d_AdcValues

Double_t*** TEcnaRun::fT3d_AdcValues
private

◆ fT3d_cor_ss

Double_t*** TEcnaRun::fT3d_cor_ss
private

◆ fT3d_cov_ss

Double_t*** TEcnaRun::fT3d_cov_ss
private

◆ fTagAdcEvt

Int_t* TEcnaRun::fTagAdcEvt
private

◆ fTagAvHfn

Int_t* TEcnaRun::fTagAvHfn
private

◆ fTagAvLfn

Int_t* TEcnaRun::fTagAvLfn
private

◆ fTagAvMeanCorss

Int_t* TEcnaRun::fTagAvMeanCorss
private

◆ fTagAvPed

Int_t* TEcnaRun::fTagAvPed
private

◆ fTagAvSigCorss

Int_t* TEcnaRun::fTagAvSigCorss
private

◆ fTagAvTno

Int_t* TEcnaRun::fTagAvTno
private

◆ fTagCorCss

Int_t* TEcnaRun::fTagCorCss
private

◆ fTagCovCss

Int_t* TEcnaRun::fTagCovCss
private

◆ fTagHFccMoStins

Int_t* TEcnaRun::fTagHFccMoStins
private

◆ fTagHfCor

Int_t* TEcnaRun::fTagHfCor
private

◆ fTagHfCov

Int_t* TEcnaRun::fTagHfCov
private

◆ fTagHfn

Int_t* TEcnaRun::fTagHfn
private

◆ fTagLFccMoStins

Int_t* TEcnaRun::fTagLFccMoStins
private

◆ fTagLfCor

Int_t* TEcnaRun::fTagLfCor
private

◆ fTagLfCov

Int_t* TEcnaRun::fTagLfCov
private

◆ fTagLfn

Int_t* TEcnaRun::fTagLfn
private

◆ fTagMeanCorss

Int_t* TEcnaRun::fTagMeanCorss
private

◆ fTagMSp

Int_t* TEcnaRun::fTagMSp
private

◆ fTagNbOfEvts

Int_t* TEcnaRun::fTagNbOfEvts
private

◆ fTagPed

Int_t* TEcnaRun::fTagPed
private

◆ fTagSigCorss

Int_t* TEcnaRun::fTagSigCorss
private

◆ fTagSSp

Int_t* TEcnaRun::fTagSSp
private

◆ fTagStinNumbers

Int_t* TEcnaRun::fTagStinNumbers
private

◆ fTagTno

Int_t* TEcnaRun::fTagTno
private

◆ fTTBELL

TString TEcnaRun::fTTBELL
private
TEcnaRun::fStexName
TString fStexName
Definition: TEcnaRun.h:391
TEcnaRun::fTagAvPed
Int_t * fTagAvPed
Definition: TEcnaRun.h:446
TEcnaHeader::fAvSigCorssCalc
Int_t fAvSigCorssCalc
Definition: TEcnaHeader.h:90
TEcnaRead::GetStopTime
time_t GetStopTime()
Definition: TEcnaRead.cc:834
TEcnaRun::SampleMeans
void SampleMeans()
Definition: TEcnaRun.cc:1496
TEcnaRead::FileParameters
void FileParameters(const TString &, const Int_t &, const Int_t &, const Int_t &, const Int_t &, const Int_t &, const Int_t &, const TString &)
Definition: TEcnaRead.cc:732
TEcnaRead::GetRootFileNameShort
TString GetRootFileNameShort()
Definition: TEcnaRead.cc:4247
TEcnaHeader::fAvLfnCalc
Int_t fAvLfnCalc
Definition: TEcnaHeader.h:70
TEcnaHeader::fAvMeanCorssCalc
Int_t fAvMeanCorssCalc
Definition: TEcnaHeader.h:89
TEcnaRun::fTagAvSigCorss
Int_t * fTagAvSigCorss
Definition: TEcnaRun.h:471
TEcnaRead::ReadSampleAdcValuesSameFile
Double_t *** ReadSampleAdcValuesSameFile(const Int_t &, const Int_t &, const Int_t &)
Definition: TEcnaRead.cc:4009
TEcnaRun::TRootCorCss
void TRootCorCss(const Int_t &, const Int_t &)
Definition: TEcnaRun.cc:4710
mps_fire.i
i
Definition: mps_fire.py:428
TEcnaRun::LowFrequencyCovariancesBetweenChannels
void LowFrequencyCovariancesBetweenChannels()
Definition: TEcnaRun.cc:2656
TEcnaRead::GetStopDate
TString GetStopDate()
Definition: TEcnaRead.cc:836
cTypAvHfn
Definition: TEcnaResultType.h:30
cTypMSp
Definition: TEcnaResultType.h:26
TEcnaRun::CovariancesBetweenSamples
void CovariancesBetweenSamples()
Definition: TEcnaRun.cc:1625
TEcnaHeader::fHfCorCalc
Int_t fHfCorCalc
Definition: TEcnaHeader.h:76
TEcnaRun::fT2d_hfcc_mostins
Double_t ** fT2d_hfcc_mostins
Definition: TEcnaRun.h:496
TEcnaParEcal::MaxSampADC
Int_t MaxSampADC()
Definition: TEcnaParEcal.cc:364
TEcnaRun::fTagAdcEvt
Int_t * fTagAdcEvt
Definition: TEcnaRun.h:415
TEcnaRun::fCodePrintWarnings
Int_t fCodePrintWarnings
Definition: TEcnaRun.h:508
TEcnaRun::fT3d1_cor_ss
Double_t * fT3d1_cor_ss
Definition: TEcnaRun.h:439
TEcnaRun::TRootSigCorss
void TRootSigCorss()
Definition: TEcnaRun.cc:4801
TEcnaRun::fTagMSp
Int_t * fTagMSp
Definition: TEcnaRun.h:426
TEcnaHeader::fReqNbOfEvts
Int_t fReqNbOfEvts
Definition: TEcnaHeader.h:52
TEcnaRun::fTagCorCss
Int_t * fTagCorCss
Definition: TEcnaRun.h:440
TEcnaRun::fNumberOfEvents
Int_t fNumberOfEvents
Definition: TEcnaRun.h:408
TEcnaHeader::fRunType
Int_t fRunType
Definition: TEcnaHeader.h:60
TEcnaRun::fT2d_hf_cov
Double_t ** fT2d_hf_cov
Definition: TEcnaRun.h:483
TEcnaHeader::fCovCssCalc
Int_t fCovCssCalc
Definition: TEcnaHeader.h:73
TEcnaRun::SigmaOfCorrelationsBetweenSamples
void SigmaOfCorrelationsBetweenSamples()
Definition: TEcnaRun.cc:2113
TEcnaRun::fT1d_sig_cor_ss
Double_t * fT1d_sig_cor_ss
Definition: TEcnaRun.h:468
TEcnaResultType::fTypOfCnaResult
CnaResultTyp fTypOfCnaResult
Definition: TEcnaResultType.h:56
mps_update.status
status
Definition: mps_update.py:68
TEcnaHeader::fHFccMoStinsCalc
Int_t fHFccMoStinsCalc
Definition: TEcnaHeader.h:80
TEcnaResultType::fMatMat
TEcnaNArrayD fMatMat
Definition: TEcnaResultType.h:59
TEcnaRun::HighFrequencyNoise
void HighFrequencyNoise()
Definition: TEcnaRun.cc:1957
cTypHfCov
Definition: TEcnaResultType.h:31
TEcnaHeader::fMSpCalc
Int_t fMSpCalc
Definition: TEcnaHeader.h:67
TEcnaRun::fT1d_ev_ev
Double_t * fT1d_ev_ev
Definition: TEcnaRun.h:443
TEcnaRun::LowFrequencyNoise
void LowFrequencyNoise()
Definition: TEcnaRun.cc:1884
TEcnaRun::AverageSigmaOfCorrelationsBetweenSamples
void AverageSigmaOfCorrelationsBetweenSamples()
Definition: TEcnaRun.cc:2561
TEcnaRun::fCodePrintComments
Int_t fCodePrintComments
Definition: TEcnaRun.h:508
TEcnaRun::fMemoReadNumberOfEventsforSamples
Int_t fMemoReadNumberOfEventsforSamples
Definition: TEcnaRun.h:410
TEcnaRun::fTTBELL
TString fTTBELL
Definition: TEcnaRun.h:374
TEcnaRead::LookAtRootFile
Bool_t LookAtRootFile()
Definition: TEcnaRead.cc:1043
TEcnaRun::LowFrequencyMeanCorrelationsBetweenStins
void LowFrequencyMeanCorrelationsBetweenStins()
Definition: TEcnaRun.cc:3054
TEcnaRun::fStinName
TString fStinName
Definition: TEcnaRun.h:391
TEcnaParEcal
Definition: TEcnaParEcal.h:24
gather_cfg.cout
cout
Definition: gather_cfg.py:144
TEcnaRun::fT1d_av_hifn
Double_t * fT1d_av_hifn
Definition: TEcnaRun.h:465
TEcnaRun::fT3d2_cov_ss
Double_t ** fT3d2_cov_ss
Definition: TEcnaRun.h:433
TEcnaRun::fSpecialStexStinNotIndexed
Int_t fSpecialStexStinNotIndexed
Definition: TEcnaRun.h:401
TEcnaRun::fT2d_lf_cov
Double_t ** fT2d_lf_cov
Definition: TEcnaRun.h:474
cTypHfn
Definition: TEcnaResultType.h:44
TEcnaRun::fT3d1_cov_ss
Double_t * fT3d1_cov_ss
Definition: TEcnaRun.h:434
TEcnaRun::fT1d_av_ev_corss
Double_t * fT1d_av_ev_corss
Definition: TEcnaRun.h:455
TEcnaParCout::GetCodePrint
Int_t GetCodePrint(const TString &)
Definition: TEcnaParCout.cc:66
TEcnaRun::LowFrequencyCorrelationsBetweenChannels
void LowFrequencyCorrelationsBetweenChannels()
Definition: TEcnaRun.cc:2765
TEcnaRun::SampleSigmas
void SampleSigmas()
Definition: TEcnaRun.cc:1551
TEcnaRootFile
Definition: TEcnaRootFile.h:25
TEcnaRun::fT2dCrysNumbersTable
Int_t ** fT2dCrysNumbersTable
Definition: TEcnaRun.h:502
cTypAvPed
Definition: TEcnaResultType.h:37
TEcnaHeader::fHfnCalc
Int_t fHfnCalc
Definition: TEcnaHeader.h:85
TEcnaRun::fT3d2_cor_ss
Double_t ** fT3d2_cor_ss
Definition: TEcnaRun.h:438
TEcnaRun::fTagHfn
Int_t * fTagHfn
Definition: TEcnaRun.h:464
TEcnaRun::TRootLfn
void TRootLfn()
Definition: TEcnaRun.cc:4771
TEcnaRun::TRootLfCov
void TRootLfCov()
Definition: TEcnaRun.cc:4630
TEcnaRun::fT2d1_hf_cor
Double_t * fT2d1_hf_cor
Definition: TEcnaRun.h:488
cTypCovCss
Definition: TEcnaResultType.h:33
TEcnaRun::fNewRootFileNameShort
TString fNewRootFileNameShort
Definition: TEcnaRun.h:399
contentValuesCheck.run_number
run_number
Definition: contentValuesCheck.py:38
TEcnaRun::fT1d_av_totn
Double_t * fT1d_av_totn
Definition: TEcnaRun.h:450
TEcnaRun::fT2d_NbOfEvts
Int_t ** fT2d_NbOfEvts
Definition: TEcnaRun.h:417
TEcnaRun::fT2d1_lf_cov
Double_t * fT2d1_lf_cov
Definition: TEcnaRun.h:475
TEcnaRun::TRootCovCss
void TRootCovCss(const Int_t &, const Int_t &)
Definition: TEcnaRun.cc:4694
TEcnaHeader::fNbOfSamples
Int_t fNbOfSamples
Definition: TEcnaHeader.h:48
sistrip::RunType
RunType
Definition: ConstantsForRunType.h:70
cTypAvLfn
Definition: TEcnaResultType.h:29
TEcnaRun::AverageTotalNoise
void AverageTotalNoise()
Definition: TEcnaRun.cc:2261
cTypLfn
Definition: TEcnaResultType.h:43
TEcnaRun::fMiscDiag
Int_t * fMiscDiag
Definition: TEcnaRun.h:376
TEcnaRun::fT1d_NbOfEvts
Int_t * fT1d_NbOfEvts
Definition: TEcnaRun.h:418
TEcnaRun::CorrelationsBetweenSamples
void CorrelationsBetweenSamples()
Definition: TEcnaRun.cc:1691
TEcnaWrite::GetRootFileName
TString GetRootFileName()
Definition: TEcnaWrite.cc:388
TEcnaRootFile::fRootFileStatus
TString fRootFileStatus
Definition: TEcnaRootFile.h:31
cTypHfCor
Definition: TEcnaResultType.h:32
TEcnaHeader::fStopDate
TString fStopDate
Definition: TEcnaHeader.h:58
cTypAvSigCorss
Definition: TEcnaResultType.h:39
TEcnaRun::fCnaCommand
Int_t fCnaCommand
Definition: TEcnaRun.h:369
TEcnaRun::AverageMeanCorrelationsBetweenSamples
void AverageMeanCorrelationsBetweenSamples()
Definition: TEcnaRun.cc:2486
TEcnaParCout
Definition: TEcnaParCout.h:25
TEcnaRun::CloseRootFile
Bool_t CloseRootFile(const Text_t *)
Definition: TEcnaRun.cc:3322
cTypNumbers
Definition: TEcnaResultType.h:25
contentValuesCheck.file_name
file_name
Definition: contentValuesCheck.py:38
TEcnaHeader::fCorCssCalc
Int_t fCorCssCalc
Definition: TEcnaHeader.h:74
TEcnaRun::fCnaError
Int_t fCnaError
Definition: TEcnaRun.h:369
TEcnaRead::GetRootFileName
TString GetRootFileName()
Definition: TEcnaRead.cc:4246
cTypPed
Definition: TEcnaResultType.h:41
TEcnaHeader::fHfCovCalc
Int_t fHfCovCalc
Definition: TEcnaHeader.h:75
TEcnaRootFile::ReStart
void ReStart(const Text_t *)
Definition: TEcnaRootFile.cc:100
trigObjTnPSource_cfi.var
var
Definition: trigObjTnPSource_cfi.py:21
TEcnaRun::TRootHfCov
void TRootHfCov()
Definition: TEcnaRun.cc:4662
TEcnaRun::TRootHFccMoStins
void TRootHFccMoStins()
Definition: TEcnaRun.cc:4572
TEcnaRun::TRootLfCor
void TRootLfCor()
Definition: TEcnaRun.cc:4646
TEcnaRun::TRootLFccMoStins
void TRootLFccMoStins()
Definition: TEcnaRun.cc:4554
TEcnaRun::MeanCorrelationsBetweenSamples
void MeanCorrelationsBetweenSamples()
Definition: TEcnaRun.cc:2040
TEcnaHeader::fNbOfEvtsCalc
Int_t fNbOfEvtsCalc
Definition: TEcnaHeader.h:64
TEcnaRun::fBuildEvtNotSkipped
Int_t fBuildEvtNotSkipped
Definition: TEcnaRun.h:403
TEcnaRun::TRootAvSigCorss
void TRootAvSigCorss()
Definition: TEcnaRun.cc:4847
gCnaRootFile
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRun.cc:13
TEcnaRun::fNbOfMiscDiagCounters
Int_t fNbOfMiscDiagCounters
Definition: TEcnaRun.h:377
TEcnaObject::RegisterPointer
Bool_t RegisterPointer(const TString &, const Long_t &)
Definition: TEcnaObject.cc:100
TEcnaRun::Pedestals
void Pedestals()
Definition: TEcnaRun.cc:1770
TEcnaRun::fgMaxCar
Int_t fgMaxCar
Definition: TEcnaRun.h:367
TEcnaWrite::RegisterFileParameters
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)
Definition: TEcnaWrite.cc:597
TEcnaRun::fEcalNumbering
TEcnaNumbering * fEcalNumbering
Definition: TEcnaRun.h:383
TEcnaRun::OpenRootFile
Bool_t OpenRootFile(const Text_t *, const TString &)
Definition: TEcnaRun.cc:3279
TEcnaRun::Init
void Init()
Definition: TEcnaRun.cc:134
ntupleEnum.SubDet
SubDet
Definition: ntupleEnum.py:14
TEcnaRun::fTagAvMeanCorss
Int_t * fTagAvMeanCorss
Definition: TEcnaRun.h:456
TEcnaRun::fT1dCrysNumbersTable
Int_t * fT1dCrysNumbersTable
Definition: TEcnaRun.h:503
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
cTypTno
Definition: TEcnaResultType.h:42
TEcnaRun::fT1d_sig
Double_t * fT1d_sig
Definition: TEcnaRun.h:429
TEcnaRun::TRootAvPed
void TRootAvPed()
Definition: TEcnaRun.cc:4816
cTypSigCorss
Definition: TEcnaResultType.h:36
TEcnaRun::HighFrequencyCovariancesBetweenChannels
void HighFrequencyCovariancesBetweenChannels()
Definition: TEcnaRun.cc:2848
TEcnaRun::AverageLowFrequencyNoise
void AverageLowFrequencyNoise()
Definition: TEcnaRun.cc:2336
TEcnaResultType::SetSizeMat
void SetSizeMat(Int_t, Int_t)
Definition: TEcnaResultType.cc:75
TEcnaRun::fOpenRootFile
Bool_t fOpenRootFile
Definition: TEcnaRun.h:393
TEcnaRun::fReadyToReadData
Int_t fReadyToReadData
Definition: TEcnaRun.h:394
TEcnaRead::GetStartTime
time_t GetStartTime()
Definition: TEcnaRead.cc:833
cTypAvTno
Definition: TEcnaResultType.h:28
TEcnaRun::fTagLfCor
Int_t * fTagLfCor
Definition: TEcnaRun.h:480
TEcnaRun::TRootAvLfn
void TRootAvLfn()
Definition: TEcnaRun.cc:4602
TEcnaRun::fFileHeader
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
TEcnaRun::fCnaParPaths
TEcnaParPaths * fCnaParPaths
Definition: TEcnaRun.h:385
TEcnaParPaths
Definition: TEcnaParPaths.h:24
cTypAvMeanCorss
Definition: TEcnaResultType.h:38
TEcnaRun::fT1d_av_sig_corss
Double_t * fT1d_av_sig_corss
Definition: TEcnaRun.h:470
TEcnaRun::fTagHFccMoStins
Int_t * fTagHFccMoStins
Definition: TEcnaRun.h:498
TEcnaRun::TRootAdcEvt
void TRootAdcEvt(const Int_t &, const Int_t &)
Definition: TEcnaRun.cc:4500
TEcnaRun::fTagMeanCorss
Int_t * fTagMeanCorss
Definition: TEcnaRun.h:454
TEcnaRun::TRootSSp
void TRootSSp(const Int_t &)
Definition: TEcnaRun.cc:4537
TEcnaHeader::fMeanCorssCalc
Int_t fMeanCorssCalc
Definition: TEcnaHeader.h:83
TEcnaRootFile::OpenR
Bool_t OpenR(const Text_t *="")
Definition: TEcnaRootFile.cc:128
TEcnaRead
Definition: TEcnaRead.h:352
TEcnaRun::fT3d_cor_ss
Double_t *** fT3d_cor_ss
Definition: TEcnaRun.h:437
TEcnaRun::fRootFileName
TString fRootFileName
Definition: TEcnaRun.h:396
TEcnaHeader::fStartDate
TString fStartDate
Definition: TEcnaHeader.h:57
TEcnaObject
Definition: TEcnaObject.h:25
cTypLfCov
Definition: TEcnaResultType.h:46
TEcnaRun::fTagSigCorss
Int_t * fTagSigCorss
Definition: TEcnaRun.h:469
TEcnaRun::fTagLfCov
Int_t * fTagLfCov
Definition: TEcnaRun.h:476
TEcnaRun::fTagAvHfn
Int_t * fTagAvHfn
Definition: TEcnaRun.h:466
TEcnaHeader::fPedCalc
Int_t fPedCalc
Definition: TEcnaHeader.h:81
TEcnaRun::fTagNbOfEvts
Int_t * fTagNbOfEvts
Definition: TEcnaRun.h:419
cTypLfCor
Definition: TEcnaResultType.h:47
TEcnaRun::fNewRootFileName
TString fNewRootFileName
Definition: TEcnaRun.h:398
TEcnaRead::GetStexStinFromIndex
Int_t GetStexStinFromIndex(const Int_t &)
Definition: TEcnaRead.cc:4255
TEcnaRun::TRootAvEvCorss
void TRootAvEvCorss()
Definition: TEcnaRun.cc:4831
TEcnaRun::fStinIndexBuilt
Int_t fStinIndexBuilt
Definition: TEcnaRun.h:402
TEcnaRun::fRootFileNameShort
TString fRootFileNameShort
Definition: TEcnaRun.h:397
TEcnaRun::TRootHfCor
void TRootHfCor()
Definition: TEcnaRun.cc:4678
TEcnaRun::fTagTno
Int_t * fTagTno
Definition: TEcnaRun.h:449
TEcnaRun::TRootNbOfEvts
void TRootNbOfEvts(const Int_t &)
Definition: TEcnaRun.cc:4484
TEcnaRun::fMaxMsgIndexForMiscDiag
Int_t fMaxMsgIndexForMiscDiag
Definition: TEcnaRun.h:378
TEcnaRun::fT1d_StexStinFromIndex
Int_t * fT1d_StexStinFromIndex
Definition: TEcnaRun.h:421
TEcnaRun::fT1d_evevt_of_sigsamp
Double_t * fT1d_evevt_of_sigsamp
Definition: TEcnaRun.h:463
cTypLFccMoStins
Definition: TEcnaResultType.h:48
TEcnaRun::AveragePedestals
void AveragePedestals()
Definition: TEcnaRun.cc:2185
TEcnaHeader::fAvHfnCalc
Int_t fAvHfnCalc
Definition: TEcnaHeader.h:71
TEcnaParEcal::MaxCrysInStin
Int_t MaxCrysInStin()
Definition: TEcnaParEcal.cc:387
cTypHFccMoStins
Definition: TEcnaResultType.h:49
TEcnaHeader::fLfCovCalc
Int_t fLfCovCalc
Definition: TEcnaHeader.h:77
TEcnaRun::fTagCovCss
Int_t * fTagCovCss
Definition: TEcnaRun.h:435
TEcnaRun::fT1d_ev_cor_ss
Double_t * fT1d_ev_cor_ss
Definition: TEcnaRun.h:453
TEcnaRun::HighFrequencyMeanCorrelationsBetweenStins
void HighFrequencyMeanCorrelationsBetweenStins()
Definition: TEcnaRun.cc:3162
TEcnaRootFile::fRootFile
TFile * fRootFile
Definition: TEcnaRootFile.h:33
TEcnaRun::fT1d_av_mped
Double_t * fT1d_av_mped
Definition: TEcnaRun.h:445
TEcnaHeader::fAvTnoCalc
Int_t fAvTnoCalc
Definition: TEcnaHeader.h:69
TEcnaHeader
Definition: TEcnaHeader.h:36
TEcnaRun::fEcal
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
TEcnaRun::fTagLfn
Int_t * fTagLfn
Definition: TEcnaRun.h:459
TEcnaRun::TRootAvTno
void TRootAvTno()
Definition: TEcnaRun.cc:4589
TEcnaRun::fTagStinNumbers
Int_t * fTagStinNumbers
Definition: TEcnaRun.h:422
TEcnaHeader::fFirstReqEvtNumber
Int_t fFirstReqEvtNumber
Definition: TEcnaHeader.h:50
TEcnaNumbering
Definition: TEcnaNumbering.h:23
TEcnaNumbering::GetDeeSCConsFrom1DeeSCEcna
Int_t GetDeeSCConsFrom1DeeSCEcna(const Int_t &, const Int_t &)
Definition: TEcnaNumbering.cc:2464
TEcnaRun::fT3d2_AdcValues
Double_t ** fT3d2_AdcValues
Definition: TEcnaRun.h:413
TEcnaParEcal::MaxStinEcnaInStex
Int_t MaxStinEcnaInStex()
Definition: TEcnaParEcal.cc:381
TEcnaRun::GetReadyToReadData
void GetReadyToReadData(const TString &, const Int_t &, const Int_t &, const Int_t &, const Int_t &, const Int_t &)
Definition: TEcnaRun.cc:695
TEcnaHeader::fRunNumber
Int_t fRunNumber
Definition: TEcnaHeader.h:49
TEcnaRun::TotalNoise
void TotalNoise()
Definition: TEcnaRun.cc:1825
TEcnaRun::fCnew
Int_t fCnew
Definition: TEcnaRun.h:371
TEcnaHeader::fAdcEvtCalc
Int_t fAdcEvtCalc
Definition: TEcnaHeader.h:66
nlast
int nlast
Definition: AMPTWrapper.h:57
TEcnaResultType::fIthElement
Int_t fIthElement
Definition: TEcnaResultType.h:57
TEcnaRun::AverageHighFrequencyNoise
void AverageHighFrequencyNoise()
Definition: TEcnaRun.cc:2411
cTypAdcEvt
Definition: TEcnaResultType.h:45
TEcnaRun::fTagAvLfn
Int_t * fTagAvLfn
Definition: TEcnaRun.h:461
TEcnaRun::fT1d_evsamp_of_sigevt
Double_t * fT1d_evsamp_of_sigevt
Definition: TEcnaRun.h:448
TEcnaRun::fObjectManager
TEcnaObject * fObjectManager
Definition: TEcnaRun.h:380
TEcnaHeader::fLastReqEvtNumber
Int_t fLastReqEvtNumber
Definition: TEcnaHeader.h:51
TEcnaRun::fTagLFccMoStins
Int_t * fTagLFccMoStins
Definition: TEcnaRun.h:494
TEcnaRun::WriteRootFile
Bool_t WriteRootFile()
Definition: TEcnaRun.cc:3365
TEcnaRootFile::fCnaIndivResult
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
TEcnaHeader::fAvPedCalc
Int_t fAvPedCalc
Definition: TEcnaHeader.h:88
TEcnaRun::fCdelete
Int_t fCdelete
Definition: TEcnaRun.h:372
TEcnaNumbering::StexEchaForCons
Int_t StexEchaForCons(const Int_t &, const Int_t &)
Definition: TEcnaNumbering.cc:2594
TEcnaWrite::NumberOfEventsAnalysis
Int_t NumberOfEventsAnalysis(Int_t **, const Int_t &, const Int_t &, const Int_t &)
Definition: TEcnaWrite.cc:514
TEcnaRun::fTagHfCov
Int_t * fTagHfCov
Definition: TEcnaRun.h:485
TEcnaRun::fT2d1_lfcc_mostins
Double_t * fT2d1_lfcc_mostins
Definition: TEcnaRun.h:493
TEcnaRun::TRootAvHfn
void TRootAvHfn()
Definition: TEcnaRun.cc:4616
cTypSSp
Definition: TEcnaResultType.h:27
TEcnaRun::fT2d_hf_cor
Double_t ** fT2d_hf_cor
Definition: TEcnaRun.h:487
TEcnaHeader::HeaderParameters
void HeaderParameters(const TString &, const Int_t &, const Int_t &, const Int_t &, const Int_t &, const Int_t &, const Int_t &)
Definition: TEcnaHeader.cc:126
TEcnaRun::TRootHfn
void TRootHfn()
Definition: TEcnaRun.cc:4786
TEcnaRun::TRootStinNumbers
void TRootStinNumbers()
Definition: TEcnaRun.cc:4470
TEcnaResultType::SetSizeHis
void SetSizeHis(Int_t, Int_t)
Definition: TEcnaResultType.cc:85
TEcnaRun::fTagAvTno
Int_t * fTagAvTno
Definition: TEcnaRun.h:451
TEcnaRun::fT2d_ev
Double_t ** fT2d_ev
Definition: TEcnaRun.h:424
TEcnaRun::fNbSampForCalc
Int_t fNbSampForCalc
Definition: TEcnaRun.h:406
TEcnaRun::fCnaParCout
TEcnaParCout * fCnaParCout
Definition: TEcnaRun.h:384
TEcnaRun::fT3d_AdcValues
Double_t *** fT3d_AdcValues
Definition: TEcnaRun.h:412
TEcnaHeader::fTnoCalc
Int_t fTnoCalc
Definition: TEcnaHeader.h:82
TEcnaHeader::fLfnCalc
Int_t fLfnCalc
Definition: TEcnaHeader.h:84
TEcnaHeader::fStartTime
time_t fStartTime
Definition: TEcnaHeader.h:55
TEcnaRun::fT1d_ev
Double_t * fT1d_ev
Definition: TEcnaRun.h:425
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
TEcnaRun::fFlagSubDet
TString fFlagSubDet
Definition: TEcnaRun.h:390
TEcnaRun::fT1d_av_lofn
Double_t * fT1d_av_lofn
Definition: TEcnaRun.h:460
TEcnaRun::fT2d_lfcc_mostins
Double_t ** fT2d_lfcc_mostins
Definition: TEcnaRun.h:492
TEcnaParPaths::ResultsRootFilePath
TString ResultsRootFilePath()
Definition: TEcnaParPaths.cc:352
TEcnaHeader::fLFccMoStinsCalc
Int_t fLFccMoStinsCalc
Definition: TEcnaHeader.h:79
TEcnaRead::DataExist
Bool_t DataExist()
Definition: TEcnaRead.cc:1100
TEcnaNumbering::MaxCrysInStinEcna
Int_t MaxCrysInStinEcna(const Int_t &, const Int_t &, const TString &)
Definition: TEcnaNumbering.cc:3118
TEcnaHeader::fTypAna
TString fTypAna
Definition: TEcnaHeader.h:47
TEcnaRun::fT2d1_lf_cor
Double_t * fT2d1_lf_cor
Definition: TEcnaRun.h:479
TEcnaRun::fCodePrintAllComments
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
TEcnaHeader::fStinNumbersCalc
Int_t fStinNumbersCalc
Definition: TEcnaHeader.h:63
TEcnaRead::ReadNumberOfEventsForSamples
TMatrixD ReadNumberOfEventsForSamples(const Int_t &, const Int_t &, const Int_t &)
Definition: TEcnaRead.cc:1765
TEcnaRun::fT2d_sig
Double_t ** fT2d_sig
Definition: TEcnaRun.h:428
TEcnaNArrayD::ReSet
void ReSet(Int_t)
Definition: TEcnaNArrayD.cc:258
TEcnaWrite::fMakeResultsFileName
void fMakeResultsFileName()
Definition: TEcnaWrite.cc:631
TEcnaParPaths::GetPathForResultsRootFiles
Bool_t GetPathForResultsRootFiles()
Definition: TEcnaParPaths.cc:83
TEcnaRootFile::fCnaResultsTree
TTree * fCnaResultsTree
Definition: TEcnaRootFile.h:37
TEcnaRead::PrintNoComment
void PrintNoComment()
Definition: TEcnaRead.cc:4353
TEcnaRun::fCnaWrite
TEcnaWrite * fCnaWrite
Definition: TEcnaRun.h:386
TEcnaResultType::fMatHis
TEcnaNArrayD fMatHis
Definition: TEcnaResultType.h:60
TEcnaRun::fCodePrintNoComment
Int_t fCodePrintNoComment
Definition: TEcnaRun.h:508
TEcnaRun::fT2d1_hf_cov
Double_t * fT2d1_hf_cov
Definition: TEcnaRun.h:484
cTypNbOfEvts
Definition: TEcnaResultType.h:40
TEcnaRun::fFlagPrint
Int_t fFlagPrint
Definition: TEcnaRun.h:507
TEcnaWrite::GetRootFileNameShort
TString GetRootFileNameShort()
Definition: TEcnaWrite.cc:389
cTypMeanCorss
Definition: TEcnaResultType.h:35
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
TEcnaRun::fT1d_sigevt_of_evsamp
Double_t * fT1d_sigevt_of_evsamp
Definition: TEcnaRun.h:458
TEcnaNumbering::Get0StexEchaFrom1StexStinAnd0StinEcha
Int_t Get0StexEchaFrom1StexStinAnd0StinEcha(const Int_t &, const Int_t &)
Definition: TEcnaNumbering.cc:2970
TEcnaHeader::fLfCorCalc
Int_t fLfCorCalc
Definition: TEcnaHeader.h:78
TEcnaHeader::fSigCorssCalc
Int_t fSigCorssCalc
Definition: TEcnaHeader.h:86
TEcnaHeader::fStex
Int_t fStex
Definition: TEcnaHeader.h:53
TEcnaRun::fT3d1_AdcValues
Double_t * fT3d1_AdcValues
Definition: TEcnaRun.h:414
TEcnaHeader::fStopTime
time_t fStopTime
Definition: TEcnaHeader.h:56
EcnaPython_AdcPeg12_S1_10_R170298_1_0_150_Dee0.cerr
cerr
Definition: EcnaPython_AdcPeg12_S1_10_R170298_1_0_150_Dee0.py:8
TEcnaRun::TRootPed
void TRootPed()
Definition: TEcnaRun.cc:4727
TEcnaRootFile::OpenW
Bool_t OpenW(const Text_t *="")
Definition: TEcnaRootFile.cc:156
TEcnaRun::HighFrequencyCorrelationsBetweenChannels
void HighFrequencyCorrelationsBetweenChannels()
Definition: TEcnaRun.cc:2970
TEcnaHeader::fSSpCalc
Int_t fSSpCalc
Definition: TEcnaHeader.h:68
TEcnaParEcal::MaxCrysEcnaInStex
Int_t MaxCrysEcnaInStex()
Definition: TEcnaParEcal.cc:391
TEcnaRootFile::CloseFile
void CloseFile()
Definition: TEcnaRootFile.cc:116
TEcnaWrite
Definition: TEcnaWrite.h:34
TEcnaRun::ReadSampleAdcValues
Bool_t ReadSampleAdcValues()
Definition: TEcnaRun.cc:1237
TEcnaRun::fTagPed
Int_t * fTagPed
Definition: TEcnaRun.h:444
TEcnaRun::fT2d_lf_cor
Double_t ** fT2d_lf_cor
Definition: TEcnaRun.h:478
TEcnaRun::fTagHfCor
Int_t * fTagHfCor
Definition: TEcnaRun.h:489
TEcnaRun::TRootMeanCorss
void TRootMeanCorss()
Definition: TEcnaRun.cc:4756
TEcnaRead::ReadStinNumbers
TVectorD ReadStinNumbers(const Int_t &)
Definition: TEcnaRead.cc:1243
TEcnaRun::fT3d_cov_ss
Double_t *** fT3d_cov_ss
Definition: TEcnaRun.h:432
cTypCorCss
Definition: TEcnaResultType.h:34
TEcnaRun::fT2d1_hfcc_mostins
Double_t * fT2d1_hfcc_mostins
Definition: TEcnaRun.h:497
TEcnaObject::GetPointerValue
Long_t GetPointerValue(const TString &)
Definition: TEcnaObject.cc:209
TEcnaRun::SetEcalSubDetector
void SetEcalSubDetector(const TString &)
Definition: TEcnaRun.cc:272
TEcnaRead::GetStartDate
TString GetStartDate()
Definition: TEcnaRead.cc:835
TEcnaRun::TRootMSp
void TRootMSp(const Int_t &)
Definition: TEcnaRun.cc:4521
TEcnaRun::fTagSSp
Int_t * fTagSSp
Definition: TEcnaRun.h:430
TEcnaRun::TRootTno
void TRootTno()
Definition: TEcnaRun.cc:4741
TEcnaRun::fNbSampForFic
Int_t fNbSampForFic
Definition: TEcnaRun.h:405