CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 (TEcnaObject *)
 
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 (TEcnaObject *, const TString &)
 
 TEcnaRun (TEcnaObject *, const TString &, const Int_t &)
 
 TEcnaRun (const TEcnaRun &)
 
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::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::TEcnaRun ( TEcnaObject pObjectManager,
const TString &  SubDet 
)

Definition at line 25 of file TEcnaRun.cc.

References fEcal, fFileHeader, fNbSampForFic, Init(), TEcnaParEcal::MaxSampADC(), and SetEcalSubDetector().

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(pObjectManager);
31 
32  //fCfgResultsRootFilePath = fCnaParPaths->ResultsRootFilePath();
33  //fCfgHistoryRunListFilePath = fCnaParPaths->HistoryRunListFilePath();
34 
35  //ffFileHeader = 0;
36  //fconst Text_t *h_name = "CnaHeader"; //==> voir cette question avec FXG
37  //fconst Text_t *h_title = "CnaHeader"; //==> voir cette question avec FXG
38  //ffFileHeader = new TEcnaHeader(h_name, h_title); //fCnew++;
39 
40  //............................ fFileHeader
41  const Text_t* h_name = "CnaHeader"; //==> voir cette question avec FXG
42  const Text_t* h_title = "CnaHeader"; //==> voir cette question avec FXG
43 
44  fFileHeader = nullptr;
45  //Int_t iFileHeader = pObjectManager->GetPointerValue("TEcnaHeader");
46  Long_t iFileHeader = 0; // one TEcnaHeader object for each file since they can be open simultaneously
47  if (iFileHeader == 0) {
48  fFileHeader = new TEcnaHeader(pObjectManager, h_name, h_title); /*fCnew++*/
49  } else {
50  fFileHeader = (TEcnaHeader*)iFileHeader;
51  }
52 
53  SetEcalSubDetector(SubDet.Data());
54  fNbSampForFic = fEcal->MaxSampADC(); // DEFAULT Number of samples for ROOT file
55 }
tuple SubDet
Definition: ntupleEnum.py:14
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
void Init(TEcnaObject *)
Definition: TEcnaRun.cc:89
Int_t fNbSampForFic
Definition: TEcnaRun.h:405
void SetEcalSubDetector(const TString &)
Definition: TEcnaRun.cc:246
Int_t MaxSampADC()
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
TEcnaRun::TEcnaRun ( TEcnaObject pObjectManager,
const TString &  SubDet,
const Int_t &  NbOfSamples 
)

Definition at line 57 of file TEcnaRun.cc.

References gather_cfg::cout, fEcal, fFileHeader, fNbSampForFic, fTTBELL, Init(), TEcnaParEcal::MaxSampADC(), and SetEcalSubDetector().

57  {
58  Init(pObjectManager);
59 
60  //fCfgResultsRootFilePath = fCnaParPaths->ResultsRootFilePath();
61  //fCfgHistoryRunListFilePath = fCnaParPaths->HistoryRunListFilePath();
62 
63  //............................ fFileHeader
64  const Text_t* h_name = "CnaHeader"; //==> voir cette question avec FXG
65  const Text_t* h_title = "CnaHeader"; //==> voir cette question avec FXG
66 
67  fFileHeader = nullptr;
68  //Long_t iFileHeader = pObjectManager->GetPointerValue("TEcnaHeader");
69  Long_t iFileHeader = 0; // one TEcnaHeader object for each file since they can be open simultaneously
70  if (iFileHeader == 0) {
71  fFileHeader = new TEcnaHeader(pObjectManager, h_name, h_title); /*fCnew++*/
72  } else {
73  fFileHeader = (TEcnaHeader*)iFileHeader;
74  }
75 
76  SetEcalSubDetector(SubDet.Data());
77  if (NbOfSamples > 0 && NbOfSamples <= fEcal->MaxSampADC()) {
78  fNbSampForFic = NbOfSamples;
79  } else {
80  std::cout << "TEcnaRun/CONSTRUCTOR> Number of required samples = " << NbOfSamples
81  << ": OUT OF RANGE. Set to the default value (= " << fEcal->MaxSampADC() << ")." << fTTBELL << std::endl;
82  fNbSampForFic = fEcal->MaxSampADC(); // DEFAULT Number of samples for file reading
83  }
84 }
tuple SubDet
Definition: ntupleEnum.py:14
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
void Init(TEcnaObject *)
Definition: TEcnaRun.cc:89
Int_t fNbSampForFic
Definition: TEcnaRun.h:405
void SetEcalSubDetector(const TString &)
Definition: TEcnaRun.cc:246
Int_t MaxSampADC()
tuple cout
Definition: gather_cfg.py:144
TString fTTBELL
Definition: TEcnaRun.h:374
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
TEcnaRun::TEcnaRun ( const TEcnaRun dcop)

Definition at line 276 of file TEcnaRun.cc.

References gather_cfg::cout.

276  : TObject::TObject(dcop) {
277  std::cout << "*TEcnaRun::TEcnaRun(const TEcnaRun& dcop)> "
278  << " Now is the time to write a copy constructor" << std::endl;
279 
280  //{ Int_t cintoto; cin >> cintoto; }
281 }
tuple cout
Definition: gather_cfg.py:144
TEcnaRun::~TEcnaRun ( )
override

Definition at line 302 of file TEcnaRun.cc.

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.

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

Member Function Documentation

void TEcnaRun::AverageHighFrequencyNoise ( )

Definition at line 2385 of file TEcnaRun.cc.

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().

2385  {
2386  // Calculation of the average
2387  // (over the Stin's 0 to fEcal->MaxStinInStex()) of the High Frequency Noise
2388 
2389  //... preliminary calculation of the High Frequency Noise if not done yet
2390  if (fTagHfn[0] != 1) {
2392  fTagHfn[0] = 0;
2393  }
2394  //................... Allocation av_hifn + init to zero (mandatory)
2395  if (fT1d_av_hifn == nullptr) {
2396  fT1d_av_hifn = new Double_t[fEcal->MaxStinEcnaInStex()];
2397  fCnew++;
2398  }
2399  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
2400  if (fT1d_av_hifn[i0StexStinEcna] != (Double_t)0) {
2401  fMiscDiag[44]++;
2402  fT1d_av_hifn[i0StexStinEcna] = (Double_t)0;
2403  }
2404  }
2405 
2407  std::cout << "*TEcnaRun::AverageHighFrequencyNoise()" << std::endl;
2408  }
2410  std::cout << " Calculation, for all the " << fStinName.Data() << "s, of the average High Frequency Noise"
2411  << std::endl;
2412  }
2413 
2414  //................... Calculation
2415  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
2416  Int_t n1StexStinEcna = i0StexStinEcna + 1;
2417  fT1d_av_hifn[i0StexStinEcna] = (Double_t)0;
2418  for (Int_t i0StinEcha = 0; i0StinEcha < fEcal->MaxCrysInStin(); i0StinEcha++) {
2419  Int_t i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(n1StexStinEcna, i0StinEcha);
2420 
2421  if (fStexName == "SM ") {
2422  fT1d_av_hifn[i0StexStinEcna] += fT1d_evevt_of_sigsamp[i0StexEcha];
2423  }
2424 
2425  if (fStexName == "Dee") {
2426  //---------------- Special translation for mixed SCEcna (29 and 32)
2427  // Xtal 11 of SCEcna 29 -> Xtal 11 of SCEcna 10
2428  // Xtal 11 of SCEcna 32 -> Xtal 11 of SCEcna 11
2429  Int_t n1StinEcha = i0StinEcha + 1;
2430  if (n1StexStinEcna == 10 && n1StinEcha == 11) {
2431  i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(29, i0StinEcha);
2432  }
2433  if (n1StexStinEcna == 11 && n1StinEcha == 11) {
2434  i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(32, i0StinEcha);
2435  }
2436  if (!((n1StexStinEcna == 29 || n1StexStinEcna == 32) && n1StinEcha == 11)) {
2437  fT1d_av_hifn[i0StexStinEcna] += fT1d_evevt_of_sigsamp[i0StexEcha];
2438  }
2439  }
2440  }
2441  Double_t xdivis = (Double_t)0.;
2442  if (fStexName == "SM ") {
2443  xdivis = (Double_t)fEcal->MaxCrysInStin();
2444  }
2445  if (fStexName == "Dee") {
2446  xdivis = (Double_t)fEcalNumbering->MaxCrysInStinEcna(fFileHeader->fStex, n1StexStinEcna, "TEcnaRun");
2447  }
2448 
2449  fT1d_av_hifn[i0StexStinEcna] = fT1d_av_hifn[i0StexStinEcna] / xdivis;
2450  }
2451  fTagAvHfn[0] = 1;
2453 }
Int_t fCodePrintNoComment
Definition: TEcnaRun.h:508
Int_t fStex
Definition: TEcnaHeader.h:53
Int_t * fMiscDiag
Definition: TEcnaRun.h:376
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
TString fStexName
Definition: TEcnaRun.h:391
Int_t * fTagHfn
Definition: TEcnaRun.h:464
Double_t * fT1d_av_hifn
Definition: TEcnaRun.h:465
Int_t fFlagPrint
Definition: TEcnaRun.h:507
Int_t fAvHfnCalc
Definition: TEcnaHeader.h:71
Int_t MaxCrysInStin()
Int_t fCnew
Definition: TEcnaRun.h:371
Int_t MaxCrysInStinEcna(const Int_t &, const Int_t &, const TString &)
Int_t * fTagAvHfn
Definition: TEcnaRun.h:466
void HighFrequencyNoise()
Definition: TEcnaRun.cc:1931
Int_t Get0StexEchaFrom1StexStinAnd0StinEcha(const Int_t &, const Int_t &)
tuple cout
Definition: gather_cfg.py:144
Int_t MaxStinEcnaInStex()
TString fStinName
Definition: TEcnaRun.h:391
Double_t * fT1d_evevt_of_sigsamp
Definition: TEcnaRun.h:463
TEcnaNumbering * fEcalNumbering
Definition: TEcnaRun.h:383
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::AverageLowFrequencyNoise ( )

Definition at line 2310 of file TEcnaRun.cc.

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().

2310  {
2311  // Calculation of the average
2312  // (over the Stin's 0 to fEcal->MaxStinInStex()) of the Low Frequency Noise
2313 
2314  //... preliminary calculation of the Low Frequency Noise if not done yet
2315  if (fTagLfn[0] != 1) {
2317  fTagLfn[0] = 0;
2318  }
2319  //................... Allocation av_lofn + init to zero (mandatory)
2320  if (fT1d_av_lofn == nullptr) {
2321  fT1d_av_lofn = new Double_t[fEcal->MaxStinEcnaInStex()];
2322  fCnew++;
2323  }
2324  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
2325  if (fT1d_av_lofn[i0StexStinEcna] != (Double_t)0) {
2326  fMiscDiag[43]++;
2327  fT1d_av_lofn[i0StexStinEcna] = (Double_t)0;
2328  }
2329  }
2330 
2332  std::cout << "*TEcnaRun::AverageLowFrequencyNoise()" << std::endl;
2333  }
2335  std::cout << " Calculation, for all the " << fStinName.Data() << "s, of the average Low Frequency Noise"
2336  << std::endl;
2337  }
2338 
2339  //................... Calculation
2340  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
2341  Int_t n1StexStinEcna = i0StexStinEcna + 1;
2342  fT1d_av_lofn[i0StexStinEcna] = (Double_t)0;
2343  for (Int_t i0StinEcha = 0; i0StinEcha < fEcal->MaxCrysInStin(); i0StinEcha++) {
2344  Int_t i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(n1StexStinEcna, i0StinEcha);
2345 
2346  if (fStexName == "SM ") {
2347  fT1d_av_lofn[i0StexStinEcna] += fT1d_sigevt_of_evsamp[i0StexEcha];
2348  }
2349 
2350  if (fStexName == "Dee") {
2351  //---------------- Special translation for mixed SCEcna (29 and 32)
2352  // Xtal 11 of SCEcna 29 -> Xtal 11 of SCEcna 10
2353  // Xtal 11 of SCEcna 32 -> Xtal 11 of SCEcna 11
2354  Int_t n1StinEcha = i0StinEcha + 1;
2355  if (n1StexStinEcna == 10 && n1StinEcha == 11) {
2356  i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(29, i0StinEcha);
2357  }
2358  if (n1StexStinEcna == 11 && n1StinEcha == 11) {
2359  i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(32, i0StinEcha);
2360  }
2361  if (!((n1StexStinEcna == 29 || n1StexStinEcna == 32) && n1StinEcha == 11)) {
2362  fT1d_av_lofn[i0StexStinEcna] += fT1d_sigevt_of_evsamp[i0StexEcha];
2363  }
2364  }
2365  }
2366  Double_t xdivis = (Double_t)0.;
2367  if (fStexName == "SM ") {
2368  xdivis = (Double_t)fEcal->MaxCrysInStin();
2369  }
2370  if (fStexName == "Dee") {
2371  xdivis = (Double_t)fEcalNumbering->MaxCrysInStinEcna(fFileHeader->fStex, n1StexStinEcna, "TEcnaRun");
2372  }
2373 
2374  fT1d_av_lofn[i0StexStinEcna] = fT1d_av_lofn[i0StexStinEcna] / xdivis;
2375  }
2376  fTagAvLfn[0] = 1;
2378 }
Int_t fCodePrintNoComment
Definition: TEcnaRun.h:508
Int_t fStex
Definition: TEcnaHeader.h:53
Int_t fAvLfnCalc
Definition: TEcnaHeader.h:70
Double_t * fT1d_sigevt_of_evsamp
Definition: TEcnaRun.h:458
Int_t * fMiscDiag
Definition: TEcnaRun.h:376
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
TString fStexName
Definition: TEcnaRun.h:391
Int_t * fTagAvLfn
Definition: TEcnaRun.h:461
Int_t * fTagLfn
Definition: TEcnaRun.h:459
Int_t fFlagPrint
Definition: TEcnaRun.h:507
void LowFrequencyNoise()
Definition: TEcnaRun.cc:1858
Int_t MaxCrysInStin()
Int_t fCnew
Definition: TEcnaRun.h:371
Int_t MaxCrysInStinEcna(const Int_t &, const Int_t &, const TString &)
Int_t Get0StexEchaFrom1StexStinAnd0StinEcha(const Int_t &, const Int_t &)
tuple cout
Definition: gather_cfg.py:144
Int_t MaxStinEcnaInStex()
Double_t * fT1d_av_lofn
Definition: TEcnaRun.h:460
TString fStinName
Definition: TEcnaRun.h:391
TEcnaNumbering * fEcalNumbering
Definition: TEcnaRun.h:383
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::AverageMeanCorrelationsBetweenSamples ( )

Definition at line 2460 of file TEcnaRun.cc.

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().

2460  {
2461  // Calculation of the average
2462  // (over the Stin's 0 to fEcal->MaxStinInStex()) of the mean cor(s,s)
2463 
2464  //... preliminary calculation of the mean cor(s,s) if not done yet
2465  if (fTagMeanCorss[0] != 1) {
2467  fTagMeanCorss[0] = 0;
2468  }
2469  //................... Allocation av_ev_corss + init to zero (mandatory)
2470  if (fT1d_av_ev_corss == nullptr) {
2471  fT1d_av_ev_corss = new Double_t[fEcal->MaxStinEcnaInStex()];
2472  fCnew++;
2473  }
2474  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
2475  if (fT1d_av_ev_corss[i0StexStinEcna] != (Double_t)0) {
2476  fMiscDiag[45]++;
2477  fT1d_av_ev_corss[i0StexStinEcna] = (Double_t)0;
2478  }
2479  }
2480 
2482  std::cout << "*TEcnaRun::AverageMeanCorrelationsBetweenSamples()" << std::endl;
2483  }
2485  std::cout << " Calculation, for all the " << fStinName.Data() << "s, of the average mean cor(s,s)"
2486  << std::endl;
2487  }
2488 
2489  //................... Calculation
2490  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
2491  Int_t n1StexStinEcna = i0StexStinEcna + 1;
2492  fT1d_av_ev_corss[i0StexStinEcna] = (Double_t)0;
2493  for (Int_t i0StinEcha = 0; i0StinEcha < fEcal->MaxCrysInStin(); i0StinEcha++) {
2494  Int_t i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(n1StexStinEcna, i0StinEcha);
2495 
2496  if (fStexName == "SM ") {
2497  fT1d_av_ev_corss[i0StexStinEcna] += fT1d_ev_cor_ss[i0StexEcha];
2498  }
2499 
2500  if (fStexName == "Dee") {
2501  //---------------- Special translation for mixed SCEcna (29 and 32)
2502  // Xtal 11 of SCEcna 29 -> Xtal 11 of SCEcna 10
2503  // Xtal 11 of SCEcna 32 -> Xtal 11 of SCEcna 11
2504  Int_t n1StinEcha = i0StinEcha + 1;
2505  if (n1StexStinEcna == 10 && n1StinEcha == 11) {
2506  i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(29, i0StinEcha);
2507  }
2508  if (n1StexStinEcna == 11 && n1StinEcha == 11) {
2509  i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(32, i0StinEcha);
2510  }
2511  if (!((n1StexStinEcna == 29 || n1StexStinEcna == 32) && n1StinEcha == 11)) {
2512  fT1d_av_ev_corss[i0StexStinEcna] += fT1d_ev_cor_ss[i0StexEcha];
2513  }
2514  }
2515  }
2516  Double_t xdivis = (Double_t)0.;
2517  if (fStexName == "SM ") {
2518  xdivis = (Double_t)fEcal->MaxCrysInStin();
2519  }
2520  if (fStexName == "Dee") {
2521  xdivis = (Double_t)fEcalNumbering->MaxCrysInStinEcna(fFileHeader->fStex, n1StexStinEcna, "TEcnaRun");
2522  }
2523 
2524  fT1d_av_ev_corss[i0StexStinEcna] = fT1d_av_ev_corss[i0StexStinEcna] / xdivis;
2525  }
2526  fTagAvMeanCorss[0] = 1;
2528 }
Int_t fCodePrintNoComment
Definition: TEcnaRun.h:508
Int_t fStex
Definition: TEcnaHeader.h:53
Int_t * fMiscDiag
Definition: TEcnaRun.h:376
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
TString fStexName
Definition: TEcnaRun.h:391
Int_t fAvMeanCorssCalc
Definition: TEcnaHeader.h:89
Double_t * fT1d_av_ev_corss
Definition: TEcnaRun.h:455
Int_t fFlagPrint
Definition: TEcnaRun.h:507
Int_t * fTagAvMeanCorss
Definition: TEcnaRun.h:456
Int_t MaxCrysInStin()
Int_t fCnew
Definition: TEcnaRun.h:371
Int_t MaxCrysInStinEcna(const Int_t &, const Int_t &, const TString &)
void MeanCorrelationsBetweenSamples()
Definition: TEcnaRun.cc:2014
Int_t Get0StexEchaFrom1StexStinAnd0StinEcha(const Int_t &, const Int_t &)
tuple cout
Definition: gather_cfg.py:144
Int_t MaxStinEcnaInStex()
TString fStinName
Definition: TEcnaRun.h:391
Int_t * fTagMeanCorss
Definition: TEcnaRun.h:454
TEcnaNumbering * fEcalNumbering
Definition: TEcnaRun.h:383
Double_t * fT1d_ev_cor_ss
Definition: TEcnaRun.h:453
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::AveragePedestals ( )

Definition at line 2159 of file TEcnaRun.cc.

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().

2159  {
2160  // Calculation of the average
2161  // (over the Stin's 0 to fEcal->MaxStinInStex()) of the Pedestals
2162 
2163  //... preliminary calculation of the Pedestals if not done yet
2164  if (fTagPed[0] != 1) {
2165  Pedestals();
2166  fTagPed[0] = 0;
2167  }
2168  //................... Allocation av_mped + init to zero (mandatory)
2169  if (fT1d_av_mped == nullptr) {
2170  fT1d_av_mped = new Double_t[fEcal->MaxStinEcnaInStex()];
2171  fCnew++;
2172  }
2173  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
2174  if (fT1d_av_mped[i0StexStinEcna] != (Double_t)0) {
2175  fMiscDiag[41]++;
2176  fT1d_av_mped[i0StexStinEcna] = (Double_t)0;
2177  }
2178  }
2179 
2181  std::cout << "*TEcnaRun::AveragePedestals()" << std::endl;
2182  }
2184  std::cout << " Calculation, for all the " << fStinName.Data() << "s, of the average Pedestals"
2185  << std::endl;
2186  }
2187 
2188  //................... Calculation
2189  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
2190  Int_t n1StexStinEcna = i0StexStinEcna + 1;
2191  fT1d_av_mped[i0StexStinEcna] = (Double_t)0;
2192  for (Int_t i0StinEcha = 0; i0StinEcha < fEcal->MaxCrysInStin(); i0StinEcha++) {
2193  Int_t i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(n1StexStinEcna, i0StinEcha);
2194 
2195  if (fStexName == "SM ") {
2196  fT1d_av_mped[i0StexStinEcna] += fT1d_ev_ev[i0StexEcha];
2197  }
2198 
2199  if (fStexName == "Dee") {
2200  //---------------- Special translation for mixed SCEcna (29 and 32)
2201  // Xtal 11 of SCEcna 29 -> Xtal 11 of SCEcna 10
2202  // Xtal 11 of SCEcna 32 -> Xtal 11 of SCEcna 11
2203  Int_t n1StinEcha = i0StinEcha + 1;
2204  if (n1StexStinEcna == 10 && n1StinEcha == 11) {
2205  i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(29, i0StinEcha);
2206  }
2207  if (n1StexStinEcna == 11 && n1StinEcha == 11) {
2208  i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(32, i0StinEcha);
2209  }
2210  if (!((n1StexStinEcna == 29 || n1StexStinEcna == 32) && n1StinEcha == 11)) {
2211  fT1d_av_mped[i0StexStinEcna] += fT1d_ev_ev[i0StexEcha];
2212  }
2213  }
2214  }
2215  Double_t xdivis = (Double_t)0.;
2216  if (fStexName == "SM ") {
2217  xdivis = (Double_t)fEcal->MaxCrysInStin();
2218  }
2219  if (fStexName == "Dee") {
2220  xdivis = (Double_t)fEcalNumbering->MaxCrysInStinEcna(fFileHeader->fStex, n1StexStinEcna, "TEcnaRun");
2221  }
2222 
2223  fT1d_av_mped[i0StexStinEcna] = fT1d_av_mped[i0StexStinEcna] / xdivis;
2224  }
2225 
2226  fTagAvPed[0] = 1;
2228 }
Double_t * fT1d_av_mped
Definition: TEcnaRun.h:445
Int_t fCodePrintNoComment
Definition: TEcnaRun.h:508
Int_t fStex
Definition: TEcnaHeader.h:53
Int_t * fMiscDiag
Definition: TEcnaRun.h:376
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
TString fStexName
Definition: TEcnaRun.h:391
Int_t * fTagPed
Definition: TEcnaRun.h:444
Double_t * fT1d_ev_ev
Definition: TEcnaRun.h:443
Int_t * fTagAvPed
Definition: TEcnaRun.h:446
Int_t fFlagPrint
Definition: TEcnaRun.h:507
Int_t MaxCrysInStin()
Int_t fCnew
Definition: TEcnaRun.h:371
Int_t MaxCrysInStinEcna(const Int_t &, const Int_t &, const TString &)
Int_t fAvPedCalc
Definition: TEcnaHeader.h:88
void Pedestals()
Definition: TEcnaRun.cc:1744
Int_t Get0StexEchaFrom1StexStinAnd0StinEcha(const Int_t &, const Int_t &)
tuple cout
Definition: gather_cfg.py:144
Int_t MaxStinEcnaInStex()
TString fStinName
Definition: TEcnaRun.h:391
TEcnaNumbering * fEcalNumbering
Definition: TEcnaRun.h:383
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::AverageSigmaOfCorrelationsBetweenSamples ( )

Definition at line 2535 of file TEcnaRun.cc.

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().

2535  {
2536  // Calculation of the average
2537  // (over the Stin's 0 to fEcal->MaxStinInStex()) of the sigma of cor(s,s)
2538 
2539  //... preliminary calculation of the sigma of cor(s,s) if not done yet
2540  if (fTagSigCorss[0] != 1) {
2542  fTagSigCorss[0] = 0;
2543  }
2544  //................... Allocation av_sig_corss + init to zero (mandatory)
2545  if (fT1d_av_sig_corss == nullptr) {
2546  fT1d_av_sig_corss = new Double_t[fEcal->MaxStinEcnaInStex()];
2547  fCnew++;
2548  }
2549  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
2550  if (fT1d_av_sig_corss[i0StexStinEcna] != (Double_t)0) {
2551  fMiscDiag[46]++;
2552  fT1d_av_sig_corss[i0StexStinEcna] = (Double_t)0;
2553  }
2554  }
2555 
2557  std::cout << "*TEcnaRun::AverageSigmaOfCorrelationsBetweenSamples()" << std::endl;
2558  }
2560  std::cout << " Calculation, for all the " << fStinName.Data() << "s, of the average sigma of cor(s,s)"
2561  << std::endl;
2562  }
2563 
2564  //................... Calculation
2565  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
2566  Int_t n1StexStinEcna = i0StexStinEcna + 1;
2567  fT1d_av_sig_corss[i0StexStinEcna] = (Double_t)0;
2568  for (Int_t i0StinEcha = 0; i0StinEcha < fEcal->MaxCrysInStin(); i0StinEcha++) {
2569  Int_t i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(n1StexStinEcna, i0StinEcha);
2570 
2571  if (fStexName == "SM ") {
2572  fT1d_av_sig_corss[i0StexStinEcna] += fT1d_sig_cor_ss[i0StexEcha];
2573  }
2574 
2575  if (fStexName == "Dee") {
2576  //---------------- Special translation for mixed SCEcna (29 and 32)
2577  // Xtal 11 of SCEcna 29 -> Xtal 11 of SCEcna 10
2578  // Xtal 11 of SCEcna 32 -> Xtal 11 of SCEcna 11
2579  Int_t n1StinEcha = i0StinEcha + 1;
2580  if (n1StexStinEcna == 10 && n1StinEcha == 11) {
2581  i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(29, i0StinEcha);
2582  }
2583  if (n1StexStinEcna == 11 && n1StinEcha == 11) {
2584  i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(32, i0StinEcha);
2585  }
2586  if (!((n1StexStinEcna == 29 || n1StexStinEcna == 32) && n1StinEcha == 11)) {
2587  fT1d_av_sig_corss[i0StexStinEcna] += fT1d_sig_cor_ss[i0StexEcha];
2588  }
2589  }
2590  }
2591  Double_t xdivis = (Double_t)0.;
2592  if (fStexName == "SM ") {
2593  xdivis = (Double_t)fEcal->MaxCrysInStin();
2594  }
2595  if (fStexName == "Dee") {
2596  xdivis = (Double_t)fEcalNumbering->MaxCrysInStinEcna(fFileHeader->fStex, n1StexStinEcna, "TEcnaRun");
2597  }
2598 
2599  fT1d_av_sig_corss[i0StexStinEcna] = fT1d_av_sig_corss[i0StexStinEcna] / xdivis;
2600  }
2601  fTagAvSigCorss[0] = 1;
2603 }
Double_t * fT1d_av_sig_corss
Definition: TEcnaRun.h:470
Int_t fCodePrintNoComment
Definition: TEcnaRun.h:508
Int_t fStex
Definition: TEcnaHeader.h:53
Int_t * fMiscDiag
Definition: TEcnaRun.h:376
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
Double_t * fT1d_sig_cor_ss
Definition: TEcnaRun.h:468
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
TString fStexName
Definition: TEcnaRun.h:391
void SigmaOfCorrelationsBetweenSamples()
Definition: TEcnaRun.cc:2087
Int_t * fTagAvSigCorss
Definition: TEcnaRun.h:471
Int_t fFlagPrint
Definition: TEcnaRun.h:507
Int_t MaxCrysInStin()
Int_t fCnew
Definition: TEcnaRun.h:371
Int_t MaxCrysInStinEcna(const Int_t &, const Int_t &, const TString &)
Int_t * fTagSigCorss
Definition: TEcnaRun.h:469
Int_t Get0StexEchaFrom1StexStinAnd0StinEcha(const Int_t &, const Int_t &)
tuple cout
Definition: gather_cfg.py:144
Int_t MaxStinEcnaInStex()
TString fStinName
Definition: TEcnaRun.h:391
Int_t fAvSigCorssCalc
Definition: TEcnaHeader.h:90
TEcnaNumbering * fEcalNumbering
Definition: TEcnaRun.h:383
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::AverageTotalNoise ( )

Definition at line 2235 of file TEcnaRun.cc.

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().

2235  {
2236  // Calculation of the average
2237  // (over the Stin's 0 to fEcal->MaxStinInStex()) of the Total Noise
2238 
2239  //... preliminary calculation of the averaged Total Noise if not done yet
2240  if (fTagTno[0] != 1) {
2241  TotalNoise();
2242  fTagTno[0] = 0;
2243  }
2244  //................... Allocation av_totn + init to zero (mandatory)
2245  if (fT1d_av_totn == nullptr) {
2246  fT1d_av_totn = new Double_t[fEcal->MaxStinEcnaInStex()];
2247  fCnew++;
2248  }
2249  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
2250  if (fT1d_av_totn[i0StexStinEcna] != (Double_t)0) {
2251  fMiscDiag[42]++;
2252  fT1d_av_totn[i0StexStinEcna] = (Double_t)0;
2253  }
2254  }
2255 
2257  std::cout << "*TEcnaRun::AverageTotalNoise()" << std::endl;
2258  }
2260  std::cout << " Calculation, for all the " << fStinName.Data() << "s, of the average total Noise"
2261  << std::endl;
2262  }
2263 
2264  //................... Calculation
2265  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
2266  Int_t n1StexStinEcna = i0StexStinEcna + 1;
2267  fT1d_av_totn[i0StexStinEcna] = (Double_t)0;
2268  for (Int_t i0StinEcha = 0; i0StinEcha < fEcal->MaxCrysInStin(); i0StinEcha++) {
2269  Int_t i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(n1StexStinEcna, i0StinEcha);
2270 
2271  if (fStexName == "SM ") {
2272  fT1d_av_totn[i0StexStinEcna] += fT1d_evsamp_of_sigevt[i0StexEcha];
2273  }
2274 
2275  if (fStexName == "Dee") {
2276  //---------------- Special translation for mixed SCEcna (29 and 32)
2277  // Xtal 11 of SCEcna 29 -> Xtal 11 of SCEcna 10
2278  // Xtal 11 of SCEcna 32 -> Xtal 11 of SCEcna 11
2279  Int_t n1StinEcha = i0StinEcha + 1;
2280  if (n1StexStinEcna == 10 && n1StinEcha == 11) {
2281  i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(29, i0StinEcha);
2282  }
2283  if (n1StexStinEcna == 11 && n1StinEcha == 11) {
2284  i0StexEcha = fEcalNumbering->Get0StexEchaFrom1StexStinAnd0StinEcha(32, i0StinEcha);
2285  }
2286  if (!((n1StexStinEcna == 29 || n1StexStinEcna == 32) && n1StinEcha == 11)) {
2287  fT1d_av_totn[i0StexStinEcna] += fT1d_evsamp_of_sigevt[i0StexEcha];
2288  }
2289  }
2290  }
2291  Double_t xdivis = (Double_t)0.;
2292  if (fStexName == "SM ") {
2293  xdivis = (Double_t)fEcal->MaxCrysInStin();
2294  }
2295  if (fStexName == "Dee") {
2296  xdivis = (Double_t)fEcalNumbering->MaxCrysInStinEcna(fFileHeader->fStex, n1StexStinEcna, "TEcnaRun");
2297  }
2298 
2299  fT1d_av_totn[i0StexStinEcna] = fT1d_av_totn[i0StexStinEcna] / xdivis;
2300  }
2301  fTagAvTno[0] = 1;
2303 }
Int_t fCodePrintNoComment
Definition: TEcnaRun.h:508
Int_t fStex
Definition: TEcnaHeader.h:53
Int_t * fMiscDiag
Definition: TEcnaRun.h:376
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
TString fStexName
Definition: TEcnaRun.h:391
Int_t * fTagAvTno
Definition: TEcnaRun.h:451
void TotalNoise()
Definition: TEcnaRun.cc:1799
Double_t * fT1d_av_totn
Definition: TEcnaRun.h:450
Int_t * fTagTno
Definition: TEcnaRun.h:449
Int_t fAvTnoCalc
Definition: TEcnaHeader.h:69
Int_t fFlagPrint
Definition: TEcnaRun.h:507
Int_t MaxCrysInStin()
Int_t fCnew
Definition: TEcnaRun.h:371
Int_t MaxCrysInStinEcna(const Int_t &, const Int_t &, const TString &)
Double_t * fT1d_evsamp_of_sigevt
Definition: TEcnaRun.h:448
Int_t Get0StexEchaFrom1StexStinAnd0StinEcha(const Int_t &, const Int_t &)
tuple cout
Definition: gather_cfg.py:144
Int_t MaxStinEcnaInStex()
TString fStinName
Definition: TEcnaRun.h:391
TEcnaNumbering * fEcalNumbering
Definition: TEcnaRun.h:383
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
Bool_t TEcnaRun::CloseRootFile ( const Text_t *  name)

Definition at line 3296 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

3296  {
3297  //Close the Root file
3298 
3299  TString s_name;
3300  s_name = fCnaParPaths->ResultsRootFilePath();
3301  s_name.Append('/');
3302  s_name.Append(name);
3303 
3304  Bool_t ok_close = kFALSE;
3305 
3306  if (fOpenRootFile == kTRUE) {
3308 
3310  std::cout << "*TEcnaRun::CloseRootFile> ROOT file " << s_name.Data() << " closed." << std::endl;
3311  }
3312 
3313  // delete gCnaRootFile; gCnaRootFile = 0; fCdelete++;
3314 
3315  fOpenRootFile = kFALSE;
3316  ok_close = kTRUE;
3317  } else {
3318  std::cout << "*TEcnaRun::CloseRootFile(...)> No close since no file is open." << fTTBELL << std::endl;
3319  }
3320  return ok_close;
3321 }
Bool_t fOpenRootFile
Definition: TEcnaRun.h:393
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
TEcnaParPaths * fCnaParPaths
Definition: TEcnaRun.h:385
Int_t fFlagPrint
Definition: TEcnaRun.h:507
TString ResultsRootFilePath()
tuple cout
Definition: gather_cfg.py:144
TString fTTBELL
Definition: TEcnaRun.h:374
void TEcnaRun::CorrelationsBetweenSamples ( )

Definition at line 1665 of file TEcnaRun.cc.

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().

1665  {
1666  //Calculation of the correlations between samples for all the StexEchas
1667 
1668  //... preliminary calculation of the covariances if not done yet.
1669  // Test only the first tag since the cov are computed globaly
1670  // but set all the tags to 0 because we don't want to write
1671  // the covariances in the result ROOT file
1672  if (fTagCovCss[0] != 1) {
1674  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
1675  fTagCovCss[j0StexEcha] = 0;
1676  }
1677  }
1678 
1680  std::cout << "*TEcnaRun::CorrelationsBetweenSamples()" << std::endl;
1681  }
1683  std::cout << " Calculation: correlations between samples"
1684  << " for each channel." << std::endl;
1685  }
1686 
1687  //................... Allocations cor_ss
1688  if (fT3d_cor_ss == nullptr) {
1689  const Int_t n_samp = fNbSampForCalc;
1690  const Int_t n_StexEcha = fEcal->MaxCrysEcnaInStex();
1691  fT3d_cor_ss = new Double_t**[n_StexEcha];
1692  fCnew++;
1693  fT3d2_cor_ss = new Double_t*[n_StexEcha * n_samp];
1694  fCnew++;
1695  fT3d1_cor_ss = new Double_t[n_StexEcha * n_samp * n_samp];
1696  fCnew++;
1697  for (Int_t i = 0; i < n_StexEcha; i++) {
1698  fT3d_cor_ss[i] = &fT3d2_cor_ss[0] + i * n_samp;
1699  for (Int_t j = 0; j < n_samp; j++) {
1700  fT3d2_cor_ss[n_samp * i + j] = &fT3d1_cor_ss[0] + n_samp * (n_samp * i + j);
1701  }
1702  }
1703  }
1704 
1705  //..................... calculation of the correlations (=init)
1706  //......................computation of half of the matrix, diagonal included (verif = 1)
1707 
1708  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
1709  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
1710  for (Int_t j0Sample = 0; j0Sample <= i0Sample; j0Sample++) {
1711  if ((fT3d_cov_ss[j0StexEcha][i0Sample][i0Sample] > 0) && (fT3d_cov_ss[j0StexEcha][j0Sample][j0Sample] > 0)) {
1712  fT3d_cor_ss[j0StexEcha][i0Sample][j0Sample] =
1713  fT3d_cov_ss[j0StexEcha][i0Sample][j0Sample] /
1714  (sqrt(fT3d_cov_ss[j0StexEcha][i0Sample][i0Sample]) * sqrt(fT3d_cov_ss[j0StexEcha][j0Sample][j0Sample]));
1715  } else {
1716  (fT3d_cor_ss)[j0StexEcha][i0Sample][j0Sample] = (Double_t)0; // prevoir compteur + fTTBELL
1717  }
1718  fT3d_cor_ss[j0StexEcha][j0Sample][i0Sample] = fT3d_cor_ss[j0StexEcha][i0Sample][j0Sample];
1719  }
1720  }
1721  fTagCorCss[j0StexEcha] = 1;
1723  }
1724 }
Double_t * fT3d1_cor_ss
Definition: TEcnaRun.h:439
Int_t * fTagCorCss
Definition: TEcnaRun.h:440
Int_t fCodePrintNoComment
Definition: TEcnaRun.h:508
void CovariancesBetweenSamples()
Definition: TEcnaRun.cc:1599
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
Int_t * fTagCovCss
Definition: TEcnaRun.h:435
Double_t *** fT3d_cor_ss
Definition: TEcnaRun.h:437
Double_t ** fT3d2_cor_ss
Definition: TEcnaRun.h:438
Int_t fCorCssCalc
Definition: TEcnaHeader.h:74
T sqrt(T t)
Definition: SSEVec.h:19
Double_t *** fT3d_cov_ss
Definition: TEcnaRun.h:432
Int_t fNbSampForCalc
Definition: TEcnaRun.h:406
Int_t fFlagPrint
Definition: TEcnaRun.h:507
Int_t fCnew
Definition: TEcnaRun.h:371
Int_t MaxCrysEcnaInStex()
tuple cout
Definition: gather_cfg.py:144
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::CovariancesBetweenSamples ( )

Definition at line 1599 of file TEcnaRun.cc.

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().

1599  {
1600  //Calculation of the covariances between samples for all the StexEchas
1601 
1603  std::cout << "*TEcnaRun::CovariancesBetweenSamples()" << std::endl;
1604  }
1606  std::cout << " Calculation: covariances between samples"
1607  << " for each channel." << std::endl;
1608  }
1609 
1610  //................... Allocations cov_ss
1611  if (fT3d_cov_ss == nullptr) {
1612  const Int_t n_samp = fNbSampForCalc;
1613  const Int_t n_StexEcha = fEcal->MaxCrysEcnaInStex();
1614  fT3d_cov_ss = new Double_t**[n_StexEcha];
1615  fCnew++;
1616  fT3d2_cov_ss = new Double_t*[n_StexEcha * n_samp];
1617  fCnew++;
1618  fT3d1_cov_ss = new Double_t[n_StexEcha * n_samp * n_samp];
1619  fCnew++;
1620  for (Int_t i = 0; i < n_StexEcha; i++) {
1621  fT3d_cov_ss[i] = &fT3d2_cov_ss[0] + i * n_samp;
1622  for (Int_t j = 0; j < n_samp; j++) {
1623  fT3d2_cov_ss[n_samp * i + j] = &fT3d1_cov_ss[0] + n_samp * (n_samp * i + j);
1624  }
1625  }
1626  }
1627 
1628  //.................. Calculation (= init)
1629  //.................. computation of half of the matrix, diagonal included)
1630 
1631  //... preliminary calculation of the expectation values if not done yet.
1632  // The tag is set to 1 after call to the method. It is reset to 0
1633  // because the expectation values must not be written in the result ROOT file
1634  // (since the tag was equal to 0)
1635  // Results in array fT2d_ev[j0StexEcha][i0Sample]
1636  if (fTagMSp[0] != 1) {
1637  SampleMeans();
1638  fTagMSp[0] = 0;
1639  }
1640 
1641  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
1642  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
1643  for (Int_t j0Sample = 0; j0Sample <= i0Sample; j0Sample++) {
1644  fT3d_cov_ss[j0StexEcha][i0Sample][j0Sample] = (Double_t)0;
1645  for (Int_t i_event = 0; i_event < fNumberOfEvents; i_event++) {
1646  fT3d_cov_ss[j0StexEcha][i0Sample][j0Sample] +=
1647  (fT3d_AdcValues[j0StexEcha][i0Sample][i_event] - fT2d_ev[j0StexEcha][i0Sample]) *
1648  (fT3d_AdcValues[j0StexEcha][j0Sample][i_event] - fT2d_ev[j0StexEcha][j0Sample]);
1649  }
1650  fT3d_cov_ss[j0StexEcha][i0Sample][j0Sample] /= (Double_t)fNumberOfEvents;
1651  fT3d_cov_ss[j0StexEcha][j0Sample][i0Sample] = fT3d_cov_ss[j0StexEcha][i0Sample][j0Sample];
1652  }
1653  }
1654  fTagCovCss[j0StexEcha] = 1;
1656  }
1657 }
Int_t fCodePrintNoComment
Definition: TEcnaRun.h:508
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
Int_t * fTagCovCss
Definition: TEcnaRun.h:435
Double_t ** fT2d_ev
Definition: TEcnaRun.h:424
Double_t ** fT3d2_cov_ss
Definition: TEcnaRun.h:433
Double_t * fT3d1_cov_ss
Definition: TEcnaRun.h:434
Double_t *** fT3d_AdcValues
Definition: TEcnaRun.h:412
Double_t *** fT3d_cov_ss
Definition: TEcnaRun.h:432
Int_t fNbSampForCalc
Definition: TEcnaRun.h:406
Int_t fFlagPrint
Definition: TEcnaRun.h:507
Int_t fNumberOfEvents
Definition: TEcnaRun.h:408
void SampleMeans()
Definition: TEcnaRun.cc:1470
Int_t fCnew
Definition: TEcnaRun.h:371
Int_t * fTagMSp
Definition: TEcnaRun.h:426
Int_t MaxCrysEcnaInStex()
tuple cout
Definition: gather_cfg.py:144
Int_t fCovCssCalc
Definition: TEcnaHeader.h:73
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::Expert1Calculations ( )

Definition at line 1442 of file TEcnaRun.cc.

References HighFrequencyCorrelationsBetweenChannels(), and LowFrequencyCorrelationsBetweenChannels().

Referenced by TEcnaGui::Calculations().

1442  {
1443  // long time, big file
1444 
1447 }
void HighFrequencyCorrelationsBetweenChannels()
Definition: TEcnaRun.cc:2944
void LowFrequencyCorrelationsBetweenChannels()
Definition: TEcnaRun.cc:2739
void TEcnaRun::Expert2Calculations ( )

Definition at line 1449 of file TEcnaRun.cc.

References HighFrequencyMeanCorrelationsBetweenStins(), and LowFrequencyMeanCorrelationsBetweenStins().

Referenced by TEcnaGui::Calculations().

1449  {
1450  // long time, no big file
1451  // expert 1 is called (if not called before) without writing in file.
1452  // Results are used only in memory to compute expert2 calculations
1453 
1456 }
void HighFrequencyMeanCorrelationsBetweenStins()
Definition: TEcnaRun.cc:3136
void LowFrequencyMeanCorrelationsBetweenStins()
Definition: TEcnaRun.cc:3028
TString TEcnaRun::GetNewRootFileName ( )

Definition at line 3429 of file TEcnaRun.cc.

References fNewRootFileName.

3429 { return fNewRootFileName; }
TString fNewRootFileName
Definition: TEcnaRun.h:398
TString TEcnaRun::GetNewRootFileNameShort ( )

Definition at line 3430 of file TEcnaRun.cc.

References fNewRootFileNameShort.

Referenced by TEcnaGui::Calculations().

3430 { return fNewRootFileNameShort; }
TString fNewRootFileNameShort
Definition: TEcnaRun.h:399
Bool_t TEcnaRun::GetPathForResults ( )

Definition at line 87 of file TEcnaRun.cc.

References fCnaParPaths, and TEcnaParPaths::GetPathForResultsRootFiles().

TEcnaParPaths * fCnaParPaths
Definition: TEcnaRun.h:385
Bool_t GetPathForResultsRootFiles()
void TEcnaRun::GetReadyToCompute ( )

Definition at line 1361 of file TEcnaRun.cc.

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().

1361  {
1362  //
1363  // MAKE THE RESULTS FILE NAME and
1364  // CHECK OF THE NUMBER OF FOUND EVENTS AND init fNumberOfEvents
1365  // (number used to compute the average values over the events)
1366  // The number of events fNumberOfEvents is extracted from the array fT2d_NbOfEvts[]
1367  // which has been filled by the GetSampleAdcValues(...) method
1368 
1369  //..................... Making of the Root File name that will be written
1376  fFileHeader->fStex);
1377 
1378  fCnaWrite->fMakeResultsFileName(); // set fRootFileName, fRootFileNameShort
1379 
1380  //..................... Checking numbers of found events channel by channel
1381  if (fT2d_NbOfEvts != nullptr) {
1384  } else {
1385  std::cout << "*TEcnaRun::GetReadyToCompute()> no data? fT2d_NbOfEvts = " << fT2d_NbOfEvts << std::endl;
1386  }
1387 }
Int_t NumberOfEventsAnalysis(Int_t **, const Int_t &, const Int_t &, const Int_t &)
Definition: TEcnaWrite.cc:514
Int_t fStex
Definition: TEcnaHeader.h:53
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
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
Int_t fReqNbOfEvts
Definition: TEcnaHeader.h:52
Int_t fNbOfSamples
Definition: TEcnaHeader.h:48
Int_t fNbSampForFic
Definition: TEcnaRun.h:405
Int_t fNumberOfEvents
Definition: TEcnaRun.h:408
TString fTypAna
Definition: TEcnaHeader.h:47
Int_t fFirstReqEvtNumber
Definition: TEcnaHeader.h:50
Int_t MaxCrysEcnaInStex()
Int_t fLastReqEvtNumber
Definition: TEcnaHeader.h:51
tuple cout
Definition: gather_cfg.py:144
Int_t fRunNumber
Definition: TEcnaHeader.h:49
void fMakeResultsFileName()
Definition: TEcnaWrite.cc:631
Int_t ** fT2d_NbOfEvts
Definition: TEcnaRun.h:417
TEcnaWrite * fCnaWrite
Definition: TEcnaRun.h:386
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
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 669 of file TEcnaRun.cc.

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

674  {
675  //Preparation of the data reading. Set part of the header. No RunType as argument.
676  //Use default value = 99999999 and call method with all the arguments (see below)
677 
678  Int_t RunType = 99999999;
679  GetReadyToReadData(typ_ana, run_number, nfirst, nlast, nbevts, Stex, RunType);
680 }
void GetReadyToReadData(const TString &, const Int_t &, const Int_t &, const Int_t &, const Int_t &, const Int_t &)
Definition: TEcnaRun.cc:669
int nlast
Definition: AMPTWrapper.h:57
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 682 of file TEcnaRun.cc.

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(), and TEcnaParEcal::MaxStinEcnaInStex().

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

Definition at line 1329 of file TEcnaRun.cc.

References fRootFileName.

1329 { return fRootFileName; }
TString fRootFileName
Definition: TEcnaRun.h:396
TString TEcnaRun::GetRootFileNameShort ( )

Definition at line 1330 of file TEcnaRun.cc.

References fRootFileNameShort.

Referenced by TEcnaGui::Calculations().

1330 { return fRootFileNameShort; }
TString fRootFileNameShort
Definition: TEcnaRun.h:397
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 1031 of file TEcnaRun.cc.

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().

1035  {
1036  //Building of the arrays fT1d_StexStinFromIndex[] and fT3d_AdcValues[][][]
1037 
1038  fBuildEvtNotSkipped++; // event not skipped by cmsRun
1039 
1040  Bool_t ret_code = kFALSE;
1041 
1042  Int_t i0EventIndex = n1EventNumber - 1; // INDEX FOR Event number
1043  Int_t i0StexStinEcna = n1StexStin - 1; // INDEX FOR StexStin = Number_of_the_Stin_in_Stex - 1
1044 
1045  Int_t i_trouve = 0;
1046  //.................................................................. (GetSampleAdcValues)
1047  if (fReadyToReadData == 1) {
1048  if (n1StexStin >= 1 && n1StexStin <= fEcal->MaxStinEcnaInStex()) {
1049  if (i0StinEcha >= 0 && i0StinEcha < fEcal->MaxCrysInStin()) {
1050  if (i0Sample >= 0 && i0Sample < fEcal->MaxSampADC()) {
1051  //..... Put the StexStin number in 1D array fT1d_StexStinFromIndex[] = Stin index + 1
1052  if (fT1d_StexStinFromIndex != nullptr) // table fT1d_StexStinFromIndex[index] already allocated
1053  {
1054  ret_code = kTRUE;
1055 
1056  // StexStin already indexed
1057  if (n1StexStin == fT1d_StexStinFromIndex[i0StexStinEcna]) {
1058  i_trouve = 1;
1059  }
1060 
1061  // StexStin index not found: set index for new StexStin
1062  if (i_trouve != 1) {
1063  if (fT1d_StexStinFromIndex[i0StexStinEcna] == fSpecialStexStinNotIndexed) {
1064  fT1d_StexStinFromIndex[i0StexStinEcna] = n1StexStin;
1066  fTagStinNumbers[0] = 1;
1067  fStinIndexBuilt++; // number of found Stins
1068 
1070  if (fStinIndexBuilt == 1) {
1071  std::cout << std::endl
1072  << "*TEcnaRun::GetSampleAdcValues(...)> event " << n1EventNumber << " : first event for "
1073  << fStexName.Data() << " " << fFileHeader->fStex << "; " << fStinName.Data() << "s : ";
1074  }
1075  if (fFlagSubDet == "EB") {
1076  std::cout << fT1d_StexStinFromIndex[i0StexStinEcna] << ", ";
1077  }
1078  if (fFlagSubDet == "EE") {
1080  fT1d_StexStinFromIndex[i0StexStinEcna])
1081  << ", ";
1082  }
1083  }
1084  //.................................................... (GetSampleAdcValues)
1086  std::cout << " (" << fStinIndexBuilt << " " << fStinName.Data() << " found), channel " << i0StinEcha
1087  << ", i0Sample " << i0Sample << std::endl;
1088  }
1089  ret_code = kTRUE;
1090  } // if ( fT1d_StexStinFromIndex[i0StexStinEcna] == fSpecialStexStinNotIndexed )
1091  else {
1092  std::cout << "!TEcnaRun::GetSampleAdcValues(...)> *** ERROR ***> NOT ALLOWED if RESULT. "
1093  << " n1StexStin = " << n1StexStin << ", fT1d_StexStinFromIndex[" << i0StexStinEcna
1094  << "] = " << fT1d_StexStinFromIndex[i0StexStinEcna]
1095  << ", fStinIndexBuilt = " << fStinIndexBuilt << fTTBELL << std::endl;
1096  ret_code = kFALSE;
1097  }
1098  } // if (i_trouve != 1 )
1099 
1100  } // if( fT1d_StexStinFromIndex != 0 )
1101  else {
1102  std::cout << "!TEcnaRun, GetSampleAdcValues *** ERROR ***> "
1103  << " fT1d_StexStinFromIndex = " << fT1d_StexStinFromIndex
1104  << " fT1d_StexStinFromIndex[] ALLOCATION NOT DONE" << fTTBELL << std::endl;
1105  ret_code = kFALSE;
1106  } //.................................................................. (GetSampleAdcValues)
1107  } // end of if( i0Sample >= 0 && i0Sample < fNbSampForFic )
1108  else {
1109  //.......Reading data => Message and error only if sample >= fEcal->MaxSampADC()
1110  // (not fNbSampForFic, the later is used only for calculations)
1111  if (i0Sample >= fEcal->MaxSampADC()) {
1112  std::cout << "!TEcnaRun::GetSampleAdcValues(...) *** ERROR ***> "
1113  << " sample number = " << i0Sample << ". OUT OF BOUNDS"
1114  << " (max = " << fNbSampForFic << ")" << fTTBELL << std::endl;
1115  ret_code = kFALSE;
1116  } else {
1117  ret_code = kTRUE;
1118  }
1119  } // else of if( i0Sample >= 0 && i0Sample < fNbSampForFic )
1120  } // end of if( i0StinEcha >= 0 && i0StinEcha < fEcal->MaxCrysInStin() )
1121  else {
1122  std::cout << "!TEcnaRun::GetSampleAdcValues(...) *** ERROR ***> "
1123  << " channel number in " << fStinName.Data() << " = " << i0StinEcha << ". OUT OF BOUNDS"
1124  << " (max = " << fEcal->MaxCrysInStin() << ")" << fTTBELL << std::endl;
1125  ret_code = kFALSE;
1126  } // else of if( i0StinEcha >= 0 && i0StinEcha < fEcal->MaxCrysInStin() )
1127  } else {
1128  std::cout << "!TEcnaRun::GetSampleAdcValues(...) *** ERROR ***> " << fStinName.Data() << " number in "
1129  << fStexName.Data() << " = " << n1StexStin << ". OUT OF BOUNDS"
1130  << " (max = " << fEcal->MaxStinEcnaInStex() << ")" << fTTBELL << std::endl;
1131  ret_code = kFALSE;
1132  }
1133 
1134  //.................................................................. (GetSampleAdcValues)
1135  //........ Filling of the 2D array of the event numbers in the data reading loop and
1136  // filling of the 3D array of the ADC sample values
1137  //
1138  // ONLY if ret_code == kTRUE
1139 
1140  if (ret_code == kTRUE) {
1141  //............ 1) Conversion (Stin,i0StinEcha) -> i0StexEcha (same numbering for EB and EE)
1142  //==========================================================================================
1143  // n1StexStin (Tower or SC): 1 2 3
1144  // iStexStin 0 1 2
1145  //
1146  // i0StinEcha: 0......24 0......24 0......24
1147  //
1148  // i0StexEcha : 0......24 25......49 50......74 grouped by StexStin's
1149  // i0StexEcha+1 (Xtal): 1......25 26......50 51......75
1150  //
1151  //==========================================================================================
1152 
1153  Int_t i0StexEcha = i0StexStinEcna * fEcal->MaxCrysInStin() + i0StinEcha;
1154 
1155  //--------------------------------------------------------- (GetSampleAdcValues)
1156  if (i0StexEcha >= 0 && i0StexEcha < fEcal->MaxCrysEcnaInStex()) {
1157  //............ 2) Increase of the nb of evts for (StexEcha,sample) (events found in the data)
1158  (fT2d_NbOfEvts[i0StexEcha][i0Sample])++; // value after first incrementation = 1
1159  fTagNbOfEvts[0] = 1;
1161 
1162  //............ 3) Filling of the 3D array of the ADC values
1163  if (i0EventIndex >= 0 && i0EventIndex < fFileHeader->fReqNbOfEvts) {
1164  if (i0Sample >= 0 && i0Sample < fNbSampForFic) {
1165  fT3d_AdcValues[i0StexEcha][i0Sample][i0EventIndex] = adcvalue;
1166  } else {
1167  std::cout << "!TEcnaRun::GetSampleAdcValues(...) *** ERROR ***> "
1168  << " sample index = " << i0Sample << ". OUT OF BOUNDS"
1169  << " (max = " << fNbSampForFic << ")" << fTTBELL << std::endl;
1170  }
1171  } else {
1172  std::cout << "!TEcnaRun::GetSampleAdcValues(...) *** ERROR ***> "
1173  << " event number = " << n1EventNumber << ". OUT OF BOUNDS"
1174  << " (max = " << fFileHeader->fReqNbOfEvts << ")" << fTTBELL << std::endl;
1175  ret_code = kFALSE;
1176  }
1177  } else {
1178  std::cout << "!TEcnaRun::GetSampleAdcValues(...) *** ERROR ***> "
1179  << " CHANNEL NUMBER OUT OF BOUNDS" << std::endl
1180  << " i0StexEcha number = " << i0StexEcha << " , n1StexStin = " << n1StexStin
1181  << " , i0StinEcha = " << i0StinEcha
1182  << " , fEcal->MaxCrysEcnaInStex() = " << fEcal->MaxCrysEcnaInStex() << fTTBELL << std::endl;
1183  ret_code = kFALSE;
1184  // {Int_t cintoto; std::cout << "TAPER 0 POUR CONTINUER" << std::endl; cin >> cintoto;}
1185  }
1186  } // end of if( ret_code == kTRUE )
1187  else {
1188  std::cout << "!TEcnaRun::GetSampleAdcValues(...) *** ERROR ***> ret_code = kFALSE " << fTTBELL << std::endl;
1189  }
1190  } // end of if(fReadyToReadData == 1)
1191  else {
1192  std::cout << "!TEcnaRun::GetSampleAdcValues(...) *** ERROR ***> GetReadyToReadData(...) not called." << fTTBELL
1193  << std::endl;
1194  ret_code = kFALSE;
1195  }
1196  //.................................................................. (GetSampleAdcValues)
1197  if (ret_code == kFALSE) {
1198  std::cout << "!TEcnaRun::GetSampleAdcValues(...)> *** ERROR ***> ret_code = " << ret_code
1199  << " (FALSE). Event: " << n1EventNumber << ", " << fStexName.Data() << ": " << fFileHeader->fStex << ", "
1200  << fStinName.Data() << ": " << n1StexStin << ", channel: " << i0StinEcha << ", Sample: " << i0Sample
1201  << ", ADC value: " << adcvalue << std::endl;
1202  }
1203  return ret_code;
1204 }
Int_t fStex
Definition: TEcnaHeader.h:53
Int_t fBuildEvtNotSkipped
Definition: TEcnaRun.h:403
Int_t * fTagStinNumbers
Definition: TEcnaRun.h:422
Int_t fReadyToReadData
Definition: TEcnaRun.h:394
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
TString fStexName
Definition: TEcnaRun.h:391
Int_t fReqNbOfEvts
Definition: TEcnaHeader.h:52
Int_t fNbOfEvtsCalc
Definition: TEcnaHeader.h:64
Int_t fNbSampForFic
Definition: TEcnaRun.h:405
TString fFlagSubDet
Definition: TEcnaRun.h:390
Int_t fStinIndexBuilt
Definition: TEcnaRun.h:402
Double_t *** fT3d_AdcValues
Definition: TEcnaRun.h:412
Int_t * fTagNbOfEvts
Definition: TEcnaRun.h:419
Int_t fFlagPrint
Definition: TEcnaRun.h:507
Int_t fSpecialStexStinNotIndexed
Definition: TEcnaRun.h:401
Int_t MaxCrysInStin()
Int_t GetDeeSCConsFrom1DeeSCEcna(const Int_t &, const Int_t &)
Int_t MaxCrysEcnaInStex()
Int_t MaxSampADC()
tuple cout
Definition: gather_cfg.py:144
Int_t MaxStinEcnaInStex()
Int_t ** fT2d_NbOfEvts
Definition: TEcnaRun.h:417
Int_t fStinNumbersCalc
Definition: TEcnaHeader.h:63
TString fStinName
Definition: TEcnaRun.h:391
Int_t * fT1d_StexStinFromIndex
Definition: TEcnaRun.h:421
TString fTTBELL
Definition: TEcnaRun.h:374
TEcnaNumbering * fEcalNumbering
Definition: TEcnaRun.h:383
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::HighFrequencyCorrelationsBetweenChannels ( )

Definition at line 2944 of file TEcnaRun.cc.

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().

2944  {
2945  //Calculation of the High Frequency Correlations between channels
2946 
2947  //... preliminary calculation of the covariances if not done yet.
2948  if (fTagHfCov[0] != 1) {
2950  fTagHfCov[0] = 0;
2951  }
2952 
2954  std::cout << "*TEcnaRun::HighFrequencyCorrelationsBetweenChannels()" << std::endl;
2955  }
2957  std::cout << " Calculation of the High Frequency Correlations between channels" << std::endl
2958  << " Starting allocation. " << std::endl;
2959  }
2960 
2961  //................. allocation fT2d_hf_cor + init to zero (mandatory)
2962  if (fT2d_hf_cor == nullptr) {
2963  const Int_t n_StexEcha = fEcal->MaxCrysEcnaInStex();
2964  fT2d_hf_cor = new Double_t*[n_StexEcha];
2965  fCnew++;
2966  fT2d1_hf_cor = new Double_t[n_StexEcha * n_StexEcha];
2967  fCnew++;
2968  for (Int_t i0StexEcha = 0; i0StexEcha < n_StexEcha; i0StexEcha++) {
2969  fT2d_hf_cor[i0StexEcha] = &fT2d1_hf_cor[0] + i0StexEcha * n_StexEcha;
2970  }
2971  }
2972 
2973  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2974  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
2975  if (fT2d_hf_cor[i0StexEcha][j0StexEcha] != (Double_t)0) {
2976  fMiscDiag[24]++;
2977  fT2d_hf_cor[i0StexEcha][j0StexEcha] = (Double_t)0;
2978  }
2979  }
2980  }
2981 
2982  //................. calculation
2983  //........................... computation of half of the matrix, diagonal included
2984 
2985  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2986  if ((fFlagSubDet == "EE" && fEcalNumbering->StexEchaForCons(fFileHeader->fStex, i0StexEcha) > 0) ||
2987  (fFlagSubDet == "EB")) {
2988  for (Int_t j0StexEcha = 0; j0StexEcha <= i0StexEcha; j0StexEcha++) {
2989  if ((fFlagSubDet == "EE" && fEcalNumbering->StexEchaForCons(fFileHeader->fStex, j0StexEcha) > 0) ||
2990  (fFlagSubDet == "EB")) {
2991  if (fT2d_hf_cov[i0StexEcha][i0StexEcha] > 0 && fT2d_hf_cov[j0StexEcha][j0StexEcha] > 0) {
2992  fT2d_hf_cor[i0StexEcha][j0StexEcha] =
2993  fT2d_hf_cov[i0StexEcha][j0StexEcha] / ((Double_t)sqrt(fT2d_hf_cov[i0StexEcha][i0StexEcha]) *
2994  (Double_t)sqrt(fT2d_hf_cov[j0StexEcha][j0StexEcha]));
2995  } else {
2996  fT2d_hf_cor[i0StexEcha][j0StexEcha] = (Double_t)0.;
2997  }
2998 
2999  fT2d_hf_cor[j0StexEcha][i0StexEcha] = fT2d_hf_cor[i0StexEcha][j0StexEcha];
3000  }
3001  }
3002  }
3003  if (i0StexEcha % 100 == 0) {
3004  std::cout << i0StexEcha << "[HFN Cor], ";
3005  }
3006  }
3007  std::cout << std::endl;
3008 
3009  fTagHfCor[0] = 1;
3011 }
Int_t fCodePrintNoComment
Definition: TEcnaRun.h:508
Int_t fStex
Definition: TEcnaHeader.h:53
Int_t * fMiscDiag
Definition: TEcnaRun.h:376
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
Int_t fHfCorCalc
Definition: TEcnaHeader.h:76
Double_t ** fT2d_hf_cor
Definition: TEcnaRun.h:487
TString fFlagSubDet
Definition: TEcnaRun.h:390
Double_t ** fT2d_hf_cov
Definition: TEcnaRun.h:483
T sqrt(T t)
Definition: SSEVec.h:19
Int_t * fTagHfCor
Definition: TEcnaRun.h:489
Int_t fFlagPrint
Definition: TEcnaRun.h:507
Int_t StexEchaForCons(const Int_t &, const Int_t &)
Int_t fCnew
Definition: TEcnaRun.h:371
Double_t * fT2d1_hf_cor
Definition: TEcnaRun.h:488
Int_t * fTagHfCov
Definition: TEcnaRun.h:485
void HighFrequencyCovariancesBetweenChannels()
Definition: TEcnaRun.cc:2822
Int_t MaxCrysEcnaInStex()
tuple cout
Definition: gather_cfg.py:144
TEcnaNumbering * fEcalNumbering
Definition: TEcnaRun.h:383
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::HighFrequencyCovariancesBetweenChannels ( )

Definition at line 2822 of file TEcnaRun.cc.

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().

2822  {
2823  //Calculation of the High Frequency Covariances between channels
2824 
2826  std::cout << "*TEcnaRun::HighFrequencyCovariancesBetweenChannels()" << std::endl;
2827  }
2829  std::cout << " Calculation of the High Frequency Covariances between channels" << std::endl;
2830  }
2831 
2832  //................. allocation fT2d_hf_cov + init to zero (mandatory)
2833  if (fT2d_hf_cov == nullptr) {
2834  const Int_t n_StexEcha = fEcal->MaxCrysEcnaInStex();
2835  fT2d_hf_cov = new Double_t*[n_StexEcha];
2836  fCnew++;
2837  fT2d1_hf_cov = new Double_t[n_StexEcha * n_StexEcha];
2838  fCnew++;
2839  for (Int_t i0StexEcha = 0; i0StexEcha < n_StexEcha; i0StexEcha++) {
2840  fT2d_hf_cov[i0StexEcha] = &fT2d1_hf_cov[0] + i0StexEcha * n_StexEcha;
2841  }
2842  }
2843 
2844  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2845  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
2846  if (fT2d_hf_cov[i0StexEcha][j0StexEcha] != (Double_t)0) {
2847  fMiscDiag[23]++;
2848  fT2d_hf_cov[i0StexEcha][j0StexEcha] = (Double_t)0;
2849  }
2850  }
2851  }
2852 
2853  //................... Allocation mean_over_samples(i0StexEcha, n_event)
2854  TMatrixD mean_over_samples(fEcal->MaxCrysEcnaInStex(), fNumberOfEvents);
2855  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2856  for (Int_t n_event = 0; n_event < fNumberOfEvents; n_event++) {
2857  mean_over_samples(i0StexEcha, n_event) = (Double_t)0.;
2858  }
2859  }
2860  //................... Allocation cov_over_samp(i0StexEcha,j0StexEcha)
2861  TMatrixD cov_over_samp(fEcal->MaxCrysEcnaInStex(), fEcal->MaxCrysEcnaInStex());
2862  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2863  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
2864  cov_over_samp(i0StexEcha, j0StexEcha) = (Double_t)0.;
2865  }
2866  }
2867 
2868  //........................................... Calculation (HighFrequencyCovariancesBetweenChannels)
2870  std::cout << " Calculation of the mean (over the events)" << std::endl
2871  << " of the covariances between the channels (over the samples 1 to " << fNbSampForCalc << ")."
2872  << std::endl;
2873  }
2874 
2875  std::cout << " Please, wait (end at i= " << fEcal->MaxCrysEcnaInStex() << "): " << std::endl;
2876 
2877  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2878  if ((fFlagSubDet == "EE" && fEcalNumbering->StexEchaForCons(fFileHeader->fStex, i0StexEcha) > 0) ||
2879  (fFlagSubDet == "EB")) {
2880  for (Int_t n_event = 0; n_event < fNumberOfEvents; n_event++) {
2881  // Calculation, for each event, of the mean over the samples ( = E_s[A(c_i,s*,e_n] )
2882  mean_over_samples(i0StexEcha, n_event) = (Double_t)0.;
2883  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
2884  mean_over_samples(i0StexEcha, n_event) += fT3d_AdcValues[i0StexEcha][i0Sample][n_event];
2885  }
2886  mean_over_samples(i0StexEcha, n_event) /= (Double_t)fNbSampForCalc;
2887  }
2888  }
2889  if (i0StexEcha % 100 == 0) {
2890  std::cout << i0StexEcha << "[HFNa Cov], ";
2891  }
2892  }
2893  std::cout << std::endl;
2894 
2895  std::cout << " Please, wait (end at i= " << fEcal->MaxCrysEcnaInStex() << "): " << std::endl;
2896 
2897  //... Calculation of half of the matrix, diagonal included (HighFrequencyCovariancesBetweenChannels)
2898  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2899  if ((fFlagSubDet == "EE" && fEcalNumbering->StexEchaForCons(fFileHeader->fStex, i0StexEcha) > 0) ||
2900  (fFlagSubDet == "EB")) {
2901  for (Int_t j0StexEcha = 0; j0StexEcha <= i0StexEcha; j0StexEcha++) {
2902  if ((fFlagSubDet == "EE" && fEcalNumbering->StexEchaForCons(fFileHeader->fStex, j0StexEcha) > 0) ||
2903  (fFlagSubDet == "EB")) {
2904  for (Int_t n_event = 0; n_event < fNumberOfEvents; n_event++) {
2905  // Calculation, for each event, of the covariance over the samples
2906  cov_over_samp(i0StexEcha, j0StexEcha) = (Double_t)0;
2907  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
2908  cov_over_samp(i0StexEcha, j0StexEcha) +=
2909  (fT3d_AdcValues[i0StexEcha][i0Sample][n_event] - mean_over_samples(i0StexEcha, n_event)) *
2910  (fT3d_AdcValues[j0StexEcha][i0Sample][n_event] - mean_over_samples(j0StexEcha, n_event));
2911  }
2912  cov_over_samp(i0StexEcha, j0StexEcha) /= (Double_t)fNbSampForCalc;
2913  }
2914  //....... Calculation of the mean over the events of Cov_s[A(c_i,s*,e*),A(c_j,s*,e*)]
2915  //......... Calculation of half of the matrix, diagonal included
2916  fT2d_hf_cov[i0StexEcha][j0StexEcha] = (Double_t)0;
2917  for (Int_t n_event = 0; n_event < fNumberOfEvents; n_event++) {
2918  fT2d_hf_cov[i0StexEcha][j0StexEcha] += cov_over_samp(i0StexEcha, j0StexEcha);
2919  }
2920  fT2d_hf_cov[i0StexEcha][j0StexEcha] /= (Double_t)fNumberOfEvents;
2921 
2922  fT2d_hf_cov[j0StexEcha][i0StexEcha] = fT2d_hf_cov[i0StexEcha][j0StexEcha];
2923  }
2924  }
2925  }
2926  if (i0StexEcha % 100 == 0) {
2927  std::cout << i0StexEcha << "[HFNb Cov], ";
2928  }
2929  }
2930  std::cout << std::endl;
2931 
2932  fTagHfCov[0] = 1;
2934 }
Int_t fCodePrintNoComment
Definition: TEcnaRun.h:508
Int_t fStex
Definition: TEcnaHeader.h:53
Int_t * fMiscDiag
Definition: TEcnaRun.h:376
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
Int_t fHfCovCalc
Definition: TEcnaHeader.h:75
TString fFlagSubDet
Definition: TEcnaRun.h:390
Double_t ** fT2d_hf_cov
Definition: TEcnaRun.h:483
Double_t * fT2d1_hf_cov
Definition: TEcnaRun.h:484
Double_t *** fT3d_AdcValues
Definition: TEcnaRun.h:412
Int_t fNbSampForCalc
Definition: TEcnaRun.h:406
Int_t fFlagPrint
Definition: TEcnaRun.h:507
Int_t fNumberOfEvents
Definition: TEcnaRun.h:408
Int_t StexEchaForCons(const Int_t &, const Int_t &)
Int_t fCnew
Definition: TEcnaRun.h:371
Int_t * fTagHfCov
Definition: TEcnaRun.h:485
Int_t MaxCrysEcnaInStex()
tuple cout
Definition: gather_cfg.py:144
TEcnaNumbering * fEcalNumbering
Definition: TEcnaRun.h:383
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::HighFrequencyMeanCorrelationsBetweenSCs ( )

Definition at line 3134 of file TEcnaRun.cc.

References HighFrequencyMeanCorrelationsBetweenStins().

void HighFrequencyMeanCorrelationsBetweenStins()
Definition: TEcnaRun.cc:3136
void TEcnaRun::HighFrequencyMeanCorrelationsBetweenStins ( )

Definition at line 3136 of file TEcnaRun.cc.

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().

3136  {
3137  //Calculation of the mean High Frequency Correlations
3138  //between channels for each Stin
3139 
3140  //... preliminary calculation of the High Frequency Cor(c,c) if not done yet
3141  // Only one tag (dim=1) to set to 0 (no write in the result ROOT file)
3142  if (fTagHfCor[0] != 1) {
3144  fTagHfCor[0] = 0;
3145  }
3146 
3147  //..... mean fT2d_hfcc_mostins for each pair (Stin_X,Stin_Y)
3149  std::cout << "*TEcnaRun::HighFrequencyMeanCorrelationsBetweenStins()" << std::endl;
3150  }
3152  std::cout << " Calculation of the mean, for each " << fFlagSubDet.Data() << ", of the" << std::endl
3153  << " High Frequency Correlations between channels." << std::endl;
3154  }
3155 
3156  //................. allocation fT2d_hfcc_mostins + init to zero (mandatory)
3157  if (fT2d_hfcc_mostins == nullptr) {
3158  const Int_t n_Stin = fEcal->MaxStinEcnaInStex();
3159  fT2d_hfcc_mostins = new Double_t*[n_Stin];
3160  fCnew++;
3161  fT2d1_hfcc_mostins = new Double_t[n_Stin * n_Stin];
3162  fCnew++;
3163  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < n_Stin; i0StexStinEcna++) {
3164  fT2d_hfcc_mostins[i0StexStinEcna] = &fT2d1_hfcc_mostins[0] + i0StexStinEcna * n_Stin;
3165  }
3166  }
3167 
3168  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
3169  for (Int_t j0StexStinEcna = 0; j0StexStinEcna < fEcal->MaxStinEcnaInStex(); j0StexStinEcna++) {
3170  if (fT2d_hfcc_mostins[i0StexStinEcna][j0StexStinEcna] != (Double_t)0) {
3171  fMiscDiag[32]++;
3172  fT2d_hfcc_mostins[i0StexStinEcna][j0StexStinEcna] = (Double_t)0;
3173  }
3174  }
3175  }
3176 
3177  //..... Calculation of the mean HF Cor(c,c) for each pair (Stin_X,Stin_Y)
3178  //
3179  // ! => Warning: this matrix is NOT symmetric => take N*N elements
3180  // Only (Stin,Stin) matrix is symmetric.
3181  // (StinEcha,StinEcha) matrix inside a (Stin,Stin) element is NOT symmetric
3182  // (except for the (Stin,Stin) DIAGONAL elements)
3183  // Then:
3184  // 1D array half_LFccMos[N*N] to put the (channel,channel) correlations
3185 
3186  Int_t ndim = (Int_t)(fEcal->MaxCrysInStin() * fEcal->MaxCrysInStin());
3187 
3188  TVectorD half_HFccMos(ndim);
3189  for (Int_t i = 0; i < ndim; i++) {
3190  half_HFccMos(i) = (Double_t)0.;
3191  }
3192 
3194  std::cout << "*TEcnaRun::HighFrequencyMeanCorrelationsBetweenStins()" << std::endl;
3195  }
3197  std::cout << " Calculation, for each " << fFlagSubDet.Data() << ", of the mean " << std::endl
3198  << " High Frequency cor(c,c)." << std::endl;
3199  }
3200 
3201  //..................... Calculation
3202  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
3203  for (Int_t j0StexStinEcna = 0; j0StexStinEcna < fEcal->MaxStinEcnaInStex(); j0StexStinEcna++) {
3204  //.................... Copy the relevant Mean Correlations(c,c') in 1D vector half_HFccMos()
3205  Int_t i_count = 0;
3206  for (Int_t i0StinCrys = 0; i0StinCrys < fEcal->MaxCrysInStin(); i0StinCrys++) {
3207  Int_t i0StexEcha = i0StexStinEcna * fEcal->MaxCrysInStin() + i0StinCrys;
3208  for (Int_t j0StinCrys = 0; j0StinCrys < fEcal->MaxCrysInStin(); j0StinCrys++) {
3209  Int_t j0StexEcha = j0StexStinEcna * fEcal->MaxCrysInStin() + j0StinCrys;
3210  if ((i0StexEcha >= 0 && i0StexEcha < fEcal->MaxCrysEcnaInStex()) &&
3211  (j0StexEcha >= 0 && j0StexEcha < fEcal->MaxCrysEcnaInStex())) {
3212  half_HFccMos(i_count) = fT2d_hf_cor[i0StexEcha][j0StexEcha];
3213  i_count++;
3214  } else {
3215  std::cout << "!TEcnaRun::HighFrequencyMeanCorrelationsBetweenStins()> Channel number out of range."
3216  << "i0StexEcha = " << i0StexEcha << ", j0StexEcha = " << j0StexEcha << fTTBELL << std::endl;
3217  }
3218  }
3219  }
3220  //..... Calculation of the mean absolute values of the HF mean Correlations(c,c')
3221  fT2d_hfcc_mostins[i0StexStinEcna][j0StexStinEcna] = (Double_t)0;
3222  for (Int_t i_rcor = 0; i_rcor < ndim; i_rcor++) {
3223  fT2d_hfcc_mostins[i0StexStinEcna][j0StexStinEcna] += fabs(half_HFccMos(i_rcor));
3224  }
3225  fT2d_hfcc_mostins[i0StexStinEcna][j0StexStinEcna] /= (Double_t)ndim;
3226  }
3227  if (i0StexStinEcna % 10 == 0) {
3228  std::cout << i0StexStinEcna << "[HFN MCtt], ";
3229  }
3230  }
3231  std::cout << std::endl;
3232 
3233  fTagHFccMoStins[0] = 1;
3235 } // ------- end of HighFrequencyMeanCorrelationsBetweenStins() -------
Int_t fCodePrintNoComment
Definition: TEcnaRun.h:508
Int_t fHFccMoStinsCalc
Definition: TEcnaHeader.h:80
Int_t * fMiscDiag
Definition: TEcnaRun.h:376
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
Double_t ** fT2d_hfcc_mostins
Definition: TEcnaRun.h:496
Double_t ** fT2d_hf_cor
Definition: TEcnaRun.h:487
TString fFlagSubDet
Definition: TEcnaRun.h:390
Int_t * fTagHfCor
Definition: TEcnaRun.h:489
Int_t fFlagPrint
Definition: TEcnaRun.h:507
Int_t * fTagHFccMoStins
Definition: TEcnaRun.h:498
Double_t * fT2d1_hfcc_mostins
Definition: TEcnaRun.h:497
void HighFrequencyCorrelationsBetweenChannels()
Definition: TEcnaRun.cc:2944
Int_t MaxCrysInStin()
Int_t fCnew
Definition: TEcnaRun.h:371
tuple cout
Definition: gather_cfg.py:144
Int_t MaxStinEcnaInStex()
TString fTTBELL
Definition: TEcnaRun.h:374
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::HighFrequencyMeanCorrelationsBetweenTowers ( )

Definition at line 3133 of file TEcnaRun.cc.

References HighFrequencyMeanCorrelationsBetweenStins().

void HighFrequencyMeanCorrelationsBetweenStins()
Definition: TEcnaRun.cc:3136
void TEcnaRun::HighFrequencyNoise ( )

Definition at line 1931 of file TEcnaRun.cc.

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().

1931  {
1932  // Calculation, for each channel, of the mean (over the events)
1933  // of the ADC sigmas (over the samples 0 to fNbSampForCalc-1)
1934 
1935  //................... Allocation fT1d_evevt_of_sigsamp + init to zero (mandatory)
1936  if (fT1d_evevt_of_sigsamp == nullptr) {
1937  fT1d_evevt_of_sigsamp = new Double_t[fEcal->MaxCrysEcnaInStex()];
1938  fCnew++;
1939  }
1940  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1941  if (fT1d_evevt_of_sigsamp[i0StexEcha] != (Double_t)0) {
1942  fMiscDiag[14]++;
1943  fT1d_evevt_of_sigsamp[i0StexEcha] = (Double_t)0;
1944  }
1945  }
1946 
1947  //................... Allocations mean_over_samples, sigma_over_sample
1948  TVectorD mean_over_samples(fNumberOfEvents);
1949  for (Int_t i = 0; i < fNumberOfEvents; i++) {
1950  mean_over_samples(i) = (Double_t)0.;
1951  }
1952  TVectorD sigma_over_samples(fNumberOfEvents);
1953  for (Int_t i = 0; i < fNumberOfEvents; i++) {
1954  sigma_over_samples(i) = (Double_t)0.;
1955  }
1956 
1957  //..................... Calculation
1959  std::cout << "*TEcnaRun::HighFrequencyNoise()" << std::endl;
1960  }
1962  std::cout << " Calculation, for each channel, of the sigma (over the events)" << std::endl
1963  << " of the ADC expectation values (over the samples 1 to " << fNbSampForCalc << ")."
1964  << std::endl;
1965  }
1966 
1967  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1968  //..................... Calculation of the sigma over samples
1969  for (Int_t n_event = 0; n_event < fNumberOfEvents; n_event++) {
1970  // Calculation, for each event, of the mean over the samples
1971  mean_over_samples(n_event) = (Double_t)0.;
1972  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
1973  mean_over_samples(n_event) += fT3d_AdcValues[i0StexEcha][i0Sample][n_event];
1974  }
1975  mean_over_samples(n_event) /= (Double_t)fNbSampForCalc;
1976 
1977  // Calculation, for each event, of the sigma over the samples
1978  Double_t var_over_samples = (Double_t)0;
1979  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
1980  Double_t deviation = fT3d_AdcValues[i0StexEcha][i0Sample][n_event] - mean_over_samples(n_event);
1981  var_over_samples += deviation * deviation;
1982  }
1983  var_over_samples /= (Double_t)fNbSampForCalc;
1984 
1985  if (var_over_samples < 0) {
1986  std::cout << "!TEcnaRun::HighFrequencyNoise() *** ERROR ***> Negative variance! " << fTTBELL << std::endl;
1987  } else {
1988  sigma_over_samples(n_event) = sqrt(var_over_samples);
1989  }
1990  }
1991 
1992  //....... Calculation of the mean over the events of the sigma over samples
1993  for (Int_t n_event = 0; n_event < fNumberOfEvents; n_event++) {
1994  fT1d_evevt_of_sigsamp[i0StexEcha] += sigma_over_samples(n_event);
1995  }
1996 
1997  fT1d_evevt_of_sigsamp[i0StexEcha] /= (Double_t)fNumberOfEvents;
1998  }
1999  fTagHfn[0] = 1;
2000  fFileHeader->fHfnCalc++;
2001 }
Int_t fCodePrintNoComment
Definition: TEcnaRun.h:508
Int_t * fMiscDiag
Definition: TEcnaRun.h:376
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
Int_t fHfnCalc
Definition: TEcnaHeader.h:85
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
Int_t * fTagHfn
Definition: TEcnaRun.h:464
Double_t *** fT3d_AdcValues
Definition: TEcnaRun.h:412
T sqrt(T t)
Definition: SSEVec.h:19
Int_t fNbSampForCalc
Definition: TEcnaRun.h:406
Int_t fFlagPrint
Definition: TEcnaRun.h:507
Int_t fNumberOfEvents
Definition: TEcnaRun.h:408
Int_t fCnew
Definition: TEcnaRun.h:371
Int_t MaxCrysEcnaInStex()
tuple cout
Definition: gather_cfg.py:144
TString fTTBELL
Definition: TEcnaRun.h:374
Double_t * fT1d_evevt_of_sigsamp
Definition: TEcnaRun.h:463
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::Init ( TEcnaObject pObjectManager)

Definition at line 89 of file TEcnaRun.cc.

References fBuildEvtNotSkipped, fCdelete, fCnaCommand, fCnaError, fCnaParCout, fCnaParPaths, fCnew, fCodePrintAllComments, fCodePrintComments, fCodePrintNoComment, fCodePrintWarnings, fFlagPrint, fgMaxCar, fMaxMsgIndexForMiscDiag, fMemoReadNumberOfEventsforSamples, fMiscDiag, fNbOfMiscDiagCounters, fNumberOfEvents, fObjectManager, 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, TEcnaParCout::GetCodePrint(), TEcnaObject::GetPointerValue(), and TEcnaObject::RegisterPointer().

Referenced by TEcnaRun().

89  {
90  //Initialisation
91 
92  fCnew = 0;
93  fCdelete = 0;
94  fCnaCommand = 0;
95  fCnaError = 0;
96 
97  fTTBELL = '\007';
98 
99  //........................... TString file names init
100  fgMaxCar = (Int_t)512;
101 
102  //................ MiscDiag counters .................
103  fMaxMsgIndexForMiscDiag = (Int_t)10;
104  fNbOfMiscDiagCounters = (Int_t)50;
105  fMiscDiag = nullptr;
106 
107  fNumberOfEvents = 0;
108  //............................. init pointers ( Init() )
109  fT3d_AdcValues = nullptr;
110  fT3d2_AdcValues = nullptr;
111  fT3d1_AdcValues = nullptr;
112 
113  fT1d_StexStinFromIndex = nullptr;
114 
115  fT2d_NbOfEvts = nullptr;
116  fT1d_NbOfEvts = nullptr;
117 
118  fT2d_ev = nullptr;
119  fT1d_ev = nullptr;
120  fT2d_sig = nullptr;
121  fT1d_sig = nullptr;
122 
123  fT3d_cov_ss = nullptr;
124  fT3d2_cov_ss = nullptr;
125  fT3d1_cov_ss = nullptr;
126 
127  fT3d_cor_ss = nullptr;
128  fT3d2_cor_ss = nullptr;
129  fT3d1_cor_ss = nullptr;
130 
131  fT2d_lf_cov = nullptr;
132  fT2d1_lf_cov = nullptr;
133 
134  fT2d_lf_cor = nullptr;
135  fT2d1_lf_cor = nullptr;
136 
137  fT2d_hf_cov = nullptr;
138  fT2d1_hf_cov = nullptr;
139 
140  fT2d_hf_cor = nullptr;
141  fT2d1_hf_cor = nullptr;
142 
143  fT2d_lfcc_mostins = nullptr;
144  fT2d1_lfcc_mostins = nullptr;
145 
146  fT2d_hfcc_mostins = nullptr;
147  fT2d1_hfcc_mostins = nullptr;
148 
149  fT1d_ev_ev = nullptr;
150  fT1d_evsamp_of_sigevt = nullptr;
151  fT1d_ev_cor_ss = nullptr;
152  fT1d_av_mped = nullptr;
153  fT1d_av_totn = nullptr;
154  fT1d_av_lofn = nullptr;
155  fT1d_av_hifn = nullptr;
156  fT1d_av_ev_corss = nullptr;
157  fT1d_av_sig_corss = nullptr;
158 
159  fT1d_sigevt_of_evsamp = nullptr;
160  fT1d_evevt_of_sigsamp = nullptr;
161  fT1d_sig_cor_ss = nullptr;
162 
163  fT2dCrysNumbersTable = nullptr;
164  fT1dCrysNumbersTable = nullptr;
165 
166  //................................ tags ( Init() )
167  fTagStinNumbers = nullptr;
168 
169  fTagNbOfEvts = nullptr;
170 
171  fTagAdcEvt = nullptr;
172 
173  fTagMSp = nullptr;
174  fTagSSp = nullptr;
175 
176  fTagCovCss = nullptr;
177  fTagCorCss = nullptr;
178 
179  fTagHfCov = nullptr;
180  fTagHfCor = nullptr;
181  fTagLfCov = nullptr;
182  fTagLfCor = nullptr;
183 
184  fTagLFccMoStins = nullptr;
185  fTagHFccMoStins = nullptr;
186 
187  fTagPed = nullptr;
188  fTagTno = nullptr;
189  fTagMeanCorss = nullptr;
190 
191  fTagLfn = nullptr;
192  fTagHfn = nullptr;
193  fTagSigCorss = nullptr;
194 
195  fTagAvPed = nullptr;
196  fTagAvTno = nullptr;
197  fTagAvLfn = nullptr;
198  fTagAvHfn = nullptr;
199 
200  fTagAvMeanCorss = nullptr;
201  fTagAvSigCorss = nullptr;
202 
203  fObjectManager = (TEcnaObject*)pObjectManager;
204  pObjectManager->RegisterPointer("TEcnaRun", (Long_t)this);
205 
206  //............................ fCnaParCout
207  Long_t iCnaParCout = pObjectManager->GetPointerValue("TEcnaParCout");
208  if (iCnaParCout == 0) {
209  fCnaParCout = new TEcnaParCout(pObjectManager); /*fCnew++*/
210  } else {
211  fCnaParCout = (TEcnaParCout*)iCnaParCout;
212  }
213 
214  //............................ fCnaParPaths
215  Long_t iCnaParPaths = pObjectManager->GetPointerValue("TEcnaParPaths");
216  if (iCnaParPaths == 0) {
217  fCnaParPaths = new TEcnaParPaths(pObjectManager); /*fCnew++*/
218  } else {
219  fCnaParPaths = (TEcnaParPaths*)iCnaParPaths;
220  }
221 
222  //................................................... Code Print ( Init() )
224  fCodePrintWarnings = fCnaParCout->GetCodePrint("Warnings "); // => default value
227 
229 
230  //...................................................
231  gCnaRootFile = nullptr;
232  fOpenRootFile = kFALSE;
233  fReadyToReadData = 0;
234 
235  //.............................................. Miscellaneous
237 
238  fStinIndexBuilt = 0;
240 
242 
243 } // end of Init()
Double_t * fT1d_av_sig_corss
Definition: TEcnaRun.h:470
Double_t * fT1d_av_mped
Definition: TEcnaRun.h:445
Double_t * fT3d1_cor_ss
Definition: TEcnaRun.h:439
Int_t * fTagCorCss
Definition: TEcnaRun.h:440
Int_t fCodePrintNoComment
Definition: TEcnaRun.h:508
Int_t * fTagLFccMoStins
Definition: TEcnaRun.h:494
Double_t * fT1d_sigevt_of_evsamp
Definition: TEcnaRun.h:458
Int_t * fMiscDiag
Definition: TEcnaRun.h:376
Int_t fBuildEvtNotSkipped
Definition: TEcnaRun.h:403
Bool_t fOpenRootFile
Definition: TEcnaRun.h:393
Int_t * fTagStinNumbers
Definition: TEcnaRun.h:422
Int_t fCdelete
Definition: TEcnaRun.h:372
Int_t * fTagLfCor
Definition: TEcnaRun.h:480
TEcnaObject * fObjectManager
Definition: TEcnaRun.h:380
Int_t fReadyToReadData
Definition: TEcnaRun.h:394
TEcnaParCout * fCnaParCout
Definition: TEcnaRun.h:384
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
Double_t * fT1d_sig_cor_ss
Definition: TEcnaRun.h:468
Int_t * fTagCovCss
Definition: TEcnaRun.h:435
Double_t * fT2d1_lf_cov
Definition: TEcnaRun.h:475
Int_t * fTagPed
Definition: TEcnaRun.h:444
Int_t * fT1dCrysNumbersTable
Definition: TEcnaRun.h:503
Double_t * fT1d_av_ev_corss
Definition: TEcnaRun.h:455
Double_t ** fT2d_hfcc_mostins
Definition: TEcnaRun.h:496
Int_t * fTagAvTno
Definition: TEcnaRun.h:451
Double_t * fT3d1_AdcValues
Definition: TEcnaRun.h:414
Int_t * fTagHfn
Definition: TEcnaRun.h:464
Double_t *** fT3d_cor_ss
Definition: TEcnaRun.h:437
Double_t * fT1d_av_totn
Definition: TEcnaRun.h:450
Double_t * fT2d1_lf_cor
Definition: TEcnaRun.h:479
Double_t ** fT2d_sig
Definition: TEcnaRun.h:428
Int_t * fTagSSp
Definition: TEcnaRun.h:430
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
Bool_t RegisterPointer(const TString &, const Long_t &)
Definition: TEcnaObject.cc:100
Double_t ** fT2d_ev
Definition: TEcnaRun.h:424
Double_t ** fT2d_hf_cor
Definition: TEcnaRun.h:487
Double_t * fT1d_ev_ev
Definition: TEcnaRun.h:443
Double_t ** fT3d2_cov_ss
Definition: TEcnaRun.h:433
Int_t fCnaError
Definition: TEcnaRun.h:369
Int_t * fTagTno
Definition: TEcnaRun.h:449
Double_t ** fT3d2_cor_ss
Definition: TEcnaRun.h:438
Double_t * fT1d_av_hifn
Definition: TEcnaRun.h:465
Double_t ** fT2d_hf_cov
Definition: TEcnaRun.h:483
Double_t * fT3d1_cov_ss
Definition: TEcnaRun.h:434
Int_t * fTagAvLfn
Definition: TEcnaRun.h:461
Int_t * fT1d_NbOfEvts
Definition: TEcnaRun.h:418
Int_t fStinIndexBuilt
Definition: TEcnaRun.h:402
Int_t * fTagLfn
Definition: TEcnaRun.h:459
Double_t * fT2d1_hf_cov
Definition: TEcnaRun.h:484
Double_t *** fT3d_AdcValues
Definition: TEcnaRun.h:412
Int_t fCodePrintComments
Definition: TEcnaRun.h:508
Double_t *** fT3d_cov_ss
Definition: TEcnaRun.h:432
TEcnaParPaths * fCnaParPaths
Definition: TEcnaRun.h:385
Int_t * fTagAvSigCorss
Definition: TEcnaRun.h:471
Int_t * fTagHfCor
Definition: TEcnaRun.h:489
Int_t * fTagNbOfEvts
Definition: TEcnaRun.h:419
Int_t * fTagAvPed
Definition: TEcnaRun.h:446
Int_t fMemoReadNumberOfEventsforSamples
Definition: TEcnaRun.h:410
Int_t fFlagPrint
Definition: TEcnaRun.h:507
Int_t fMaxMsgIndexForMiscDiag
Definition: TEcnaRun.h:378
Int_t * fTagHFccMoStins
Definition: TEcnaRun.h:498
Int_t fNumberOfEvents
Definition: TEcnaRun.h:408
Double_t * fT2d1_hfcc_mostins
Definition: TEcnaRun.h:497
Int_t fSpecialStexStinNotIndexed
Definition: TEcnaRun.h:401
Int_t * fTagAvMeanCorss
Definition: TEcnaRun.h:456
Double_t ** fT2d_lf_cor
Definition: TEcnaRun.h:478
Int_t * fTagLfCov
Definition: TEcnaRun.h:476
Int_t fCnew
Definition: TEcnaRun.h:371
Int_t fCodePrintWarnings
Definition: TEcnaRun.h:508
Double_t * fT2d1_hf_cor
Definition: TEcnaRun.h:488
Double_t * fT1d_evsamp_of_sigevt
Definition: TEcnaRun.h:448
Int_t * fTagHfCov
Definition: TEcnaRun.h:485
Int_t * fTagAvHfn
Definition: TEcnaRun.h:466
Int_t * fTagSigCorss
Definition: TEcnaRun.h:469
Double_t * fT2d1_lfcc_mostins
Definition: TEcnaRun.h:493
Int_t * fTagMSp
Definition: TEcnaRun.h:426
Int_t GetCodePrint(const TString &)
Definition: TEcnaParCout.cc:66
Double_t * fT1d_ev
Definition: TEcnaRun.h:425
Int_t * fTagAdcEvt
Definition: TEcnaRun.h:415
Int_t fgMaxCar
Definition: TEcnaRun.h:367
Double_t ** fT3d2_AdcValues
Definition: TEcnaRun.h:413
Double_t ** fT2d_lf_cov
Definition: TEcnaRun.h:474
Int_t ** fT2d_NbOfEvts
Definition: TEcnaRun.h:417
Double_t * fT1d_av_lofn
Definition: TEcnaRun.h:460
Int_t fCnaCommand
Definition: TEcnaRun.h:369
Int_t ** fT2dCrysNumbersTable
Definition: TEcnaRun.h:502
Int_t fNbOfMiscDiagCounters
Definition: TEcnaRun.h:377
Int_t * fT1d_StexStinFromIndex
Definition: TEcnaRun.h:421
Long_t GetPointerValue(const TString &)
Definition: TEcnaObject.cc:209
TString fTTBELL
Definition: TEcnaRun.h:374
Double_t * fT1d_evevt_of_sigsamp
Definition: TEcnaRun.h:463
Int_t * fTagMeanCorss
Definition: TEcnaRun.h:454
Double_t * fT1d_sig
Definition: TEcnaRun.h:429
Double_t * fT1d_ev_cor_ss
Definition: TEcnaRun.h:453
Double_t ** fT2d_lfcc_mostins
Definition: TEcnaRun.h:492
void TEcnaRun::LowFrequencyCorrelationsBetweenChannels ( )

Definition at line 2739 of file TEcnaRun.cc.

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().

2739  {
2740  //Calculation of the Low Frequency Correlations between channels
2741 
2742  //... preliminary calculation of the covariances if not done yet.
2743  if (fTagLfCov[0] != 1) {
2745  fTagLfCov[0] = 0;
2746  }
2747 
2749  std::cout << "*TEcnaRun::LowFrequencyCorrelationsBetweenChannels()" << std::endl;
2750  }
2752  std::cout << " Calculation of the Low Frequency Correlations between channels" << std::endl
2753  << " Starting allocation. " << std::endl;
2754  }
2755 
2756  //................. allocation fT2d_lf_cor + init to zero (mandatory)
2757  if (fT2d_lf_cor == nullptr) {
2758  const Int_t n_StexEcha = fEcal->MaxCrysEcnaInStex();
2759  fT2d_lf_cor = new Double_t*[n_StexEcha];
2760  fCnew++;
2761  fT2d1_lf_cor = new Double_t[n_StexEcha * n_StexEcha];
2762  fCnew++;
2763  for (Int_t i0StexEcha = 0; i0StexEcha < n_StexEcha; i0StexEcha++) {
2764  fT2d_lf_cor[i0StexEcha] = &fT2d1_lf_cor[0] + i0StexEcha * n_StexEcha;
2765  }
2766  }
2767 
2768  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2769  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
2770  if (fT2d_lf_cor[i0StexEcha][j0StexEcha] != (Double_t)0) {
2771  fMiscDiag[22]++;
2772  fT2d_lf_cor[i0StexEcha][j0StexEcha] = (Double_t)0;
2773  }
2774  }
2775  }
2776 
2777  //................. calculation
2778  //........................... computation of half of the matrix, diagonal included
2779  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2780  if ((fFlagSubDet == "EE" && fEcalNumbering->StexEchaForCons(fFileHeader->fStex, i0StexEcha) > 0) ||
2781  (fFlagSubDet == "EB")) {
2782  for (Int_t j0StexEcha = 0; j0StexEcha <= i0StexEcha; j0StexEcha++) {
2783  if ((fFlagSubDet == "EE" && fEcalNumbering->StexEchaForCons(fFileHeader->fStex, j0StexEcha) > 0) ||
2784  (fFlagSubDet == "EB")) {
2785  if (fT2d_lf_cov[i0StexEcha][i0StexEcha] > 0 && fT2d_lf_cov[j0StexEcha][j0StexEcha] > 0) {
2786  fT2d_lf_cor[i0StexEcha][j0StexEcha] =
2787  fT2d_lf_cov[i0StexEcha][j0StexEcha] /
2788  ((Double_t)sqrt(fT2d_lf_cov[i0StexEcha][i0StexEcha] * fT2d_lf_cov[j0StexEcha][j0StexEcha]));
2789  } else {
2790  fT2d_lf_cor[i0StexEcha][j0StexEcha] = (Double_t)0.;
2791  }
2792  fT2d_lf_cor[j0StexEcha][i0StexEcha] = fT2d_lf_cor[i0StexEcha][j0StexEcha];
2793  }
2794  }
2795  }
2796  if (i0StexEcha % 100 == 0) {
2797  std::cout << i0StexEcha << "[LFN Cor], ";
2798  }
2799  }
2800  std::cout << std::endl;
2801 
2802  fTagLfCor[0] = 1;
2804 }
Int_t fCodePrintNoComment
Definition: TEcnaRun.h:508
Int_t fStex
Definition: TEcnaHeader.h:53
Int_t * fMiscDiag
Definition: TEcnaRun.h:376
Int_t * fTagLfCor
Definition: TEcnaRun.h:480
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
Double_t * fT2d1_lf_cor
Definition: TEcnaRun.h:479
TString fFlagSubDet
Definition: TEcnaRun.h:390
T sqrt(T t)
Definition: SSEVec.h:19
Int_t fFlagPrint
Definition: TEcnaRun.h:507
Int_t StexEchaForCons(const Int_t &, const Int_t &)
Double_t ** fT2d_lf_cor
Definition: TEcnaRun.h:478
Int_t * fTagLfCov
Definition: TEcnaRun.h:476
Int_t fCnew
Definition: TEcnaRun.h:371
Int_t fLfCorCalc
Definition: TEcnaHeader.h:78
Int_t MaxCrysEcnaInStex()
void LowFrequencyCovariancesBetweenChannels()
Definition: TEcnaRun.cc:2630
tuple cout
Definition: gather_cfg.py:144
Double_t ** fT2d_lf_cov
Definition: TEcnaRun.h:474
TEcnaNumbering * fEcalNumbering
Definition: TEcnaRun.h:383
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::LowFrequencyCovariancesBetweenChannels ( )

Definition at line 2630 of file TEcnaRun.cc.

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().

2630  {
2631  //Calculation of the Low Frequency Covariances between channels
2632 
2634  std::cout << "*TEcnaRun::LowFrequencyCovariancesBetweenChannels()" << std::endl;
2635  }
2637  std::cout << " Calculation of the Low Frequency Covariances between channels" << std::endl;
2638  }
2639 
2640  //................. allocation fT2d_lf_cov + init to zero (mandatory)
2641  if (fT2d_lf_cov == nullptr) {
2642  const Int_t n_StexEcha = fEcal->MaxCrysEcnaInStex();
2643  fT2d_lf_cov = new Double_t*[n_StexEcha];
2644  fCnew++;
2645  fT2d1_lf_cov = new Double_t[n_StexEcha * n_StexEcha];
2646  fCnew++;
2647  for (Int_t i0StexEcha = 0; i0StexEcha < n_StexEcha; i0StexEcha++) {
2648  fT2d_lf_cov[i0StexEcha] = &fT2d1_lf_cov[0] + i0StexEcha * n_StexEcha;
2649  }
2650  }
2651 
2652  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2653  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
2654  if (fT2d_lf_cov[i0StexEcha][j0StexEcha] != (Double_t)0) {
2655  fMiscDiag[21]++;
2656  fT2d_lf_cov[i0StexEcha][j0StexEcha] = (Double_t)0;
2657  }
2658  }
2659  }
2660  //........................................... Calculation (LowFrequencyCovariancesBetweenChannels)
2661  //................... Allocation mean_over_samples(i0StexEcha, n_event)
2662  TMatrixD mean_over_samples(fEcal->MaxCrysEcnaInStex(), fNumberOfEvents);
2663  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2664  for (Int_t n_event = 0; n_event < fNumberOfEvents; n_event++) {
2665  mean_over_samples(i0StexEcha, n_event) = (Double_t)0.;
2666  }
2667  }
2668  //................... Allocation MoeOfMos(i0StexEcha)
2669  TVectorD MoeOfMos(fEcal->MaxCrysEcnaInStex());
2670  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2671  MoeOfMos(i0StexEcha) = (Double_t)0.;
2672  }
2673 
2674  //................... Calculation
2676  std::cout << " Calculation, for each pair of channels, of the covariance (over the events)" << std::endl
2677  << " between the ADC expectation values (over the samples 1 to " << fNbSampForCalc << ")."
2678  << std::endl;
2679  }
2680 
2681  std::cout << " Please, wait (end at i= " << fEcal->MaxCrysEcnaInStex() << "): " << std::endl;
2682 
2683  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2684  MoeOfMos(i0StexEcha) = (Double_t)0;
2685 
2686  if ((fFlagSubDet == "EE" && fEcalNumbering->StexEchaForCons(fFileHeader->fStex, i0StexEcha) > 0) ||
2687  (fFlagSubDet == "EB")) {
2688  for (Int_t n_event = 0; n_event < fNumberOfEvents; n_event++) {
2689  // Calculation, for each event, of the mean over the samples ( = E_s[A(c_i,s*,e_n] )
2690  mean_over_samples(i0StexEcha, n_event) = (Double_t)0.;
2691  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
2692  mean_over_samples(i0StexEcha, n_event) += fT3d_AdcValues[i0StexEcha][i0Sample][n_event];
2693  }
2694  mean_over_samples(i0StexEcha, n_event) /= (Double_t)fNbSampForCalc;
2695  }
2696  //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*]] )
2697  for (Int_t n_event = 0; n_event < fNumberOfEvents; n_event++) {
2698  MoeOfMos(i0StexEcha) += mean_over_samples(i0StexEcha, n_event);
2699  }
2700  MoeOfMos(i0StexEcha) /= (Double_t)fNumberOfEvents;
2701  }
2702  }
2703 
2704  //... Calculation of half of the matrix, diagonal included (LowFrequencyCovariancesBetweenChannels)
2705  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2706  if ((fFlagSubDet == "EE" && fEcalNumbering->StexEchaForCons(fFileHeader->fStex, i0StexEcha) > 0) ||
2707  (fFlagSubDet == "EB")) {
2708  for (Int_t j0StexEcha = 0; j0StexEcha <= i0StexEcha; j0StexEcha++) {
2709  if ((fFlagSubDet == "EE" && fEcalNumbering->StexEchaForCons(fFileHeader->fStex, j0StexEcha) > 0) ||
2710  (fFlagSubDet == "EB")) {
2711  fT2d_lf_cov[i0StexEcha][j0StexEcha] = (Double_t)0;
2712  for (Int_t n_event = 0; n_event < fNumberOfEvents; n_event++) {
2713  fT2d_lf_cov[i0StexEcha][j0StexEcha] += (mean_over_samples(i0StexEcha, n_event) - MoeOfMos(i0StexEcha)) *
2714  (mean_over_samples(j0StexEcha, n_event) - MoeOfMos(j0StexEcha));
2715  }
2716  fT2d_lf_cov[i0StexEcha][j0StexEcha] /= (Double_t)fNumberOfEvents;
2717 
2718  fT2d_lf_cov[j0StexEcha][i0StexEcha] = fT2d_lf_cov[i0StexEcha][j0StexEcha];
2719  }
2720  }
2721  if (i0StexEcha % 100 == 0) {
2722  std::cout << i0StexEcha << "[LFN Cov], ";
2723  }
2724  }
2725  }
2726  std::cout << std::endl;
2727  fTagLfCov[0] = 1;
2729 }
Int_t fCodePrintNoComment
Definition: TEcnaRun.h:508
Int_t fStex
Definition: TEcnaHeader.h:53
Int_t * fMiscDiag
Definition: TEcnaRun.h:376
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
Double_t * fT2d1_lf_cov
Definition: TEcnaRun.h:475
TString fFlagSubDet
Definition: TEcnaRun.h:390
Double_t *** fT3d_AdcValues
Definition: TEcnaRun.h:412
Int_t fNbSampForCalc
Definition: TEcnaRun.h:406
Int_t fFlagPrint
Definition: TEcnaRun.h:507
Int_t fNumberOfEvents
Definition: TEcnaRun.h:408
Int_t StexEchaForCons(const Int_t &, const Int_t &)
Int_t * fTagLfCov
Definition: TEcnaRun.h:476
Int_t fCnew
Definition: TEcnaRun.h:371
Int_t MaxCrysEcnaInStex()
Int_t fLfCovCalc
Definition: TEcnaHeader.h:77
tuple cout
Definition: gather_cfg.py:144
Double_t ** fT2d_lf_cov
Definition: TEcnaRun.h:474
TEcnaNumbering * fEcalNumbering
Definition: TEcnaRun.h:383
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::LowFrequencyMeanCorrelationsBetweenSCs ( )

Definition at line 3026 of file TEcnaRun.cc.

References LowFrequencyMeanCorrelationsBetweenStins().

void LowFrequencyMeanCorrelationsBetweenStins()
Definition: TEcnaRun.cc:3028
void TEcnaRun::LowFrequencyMeanCorrelationsBetweenStins ( )

Definition at line 3028 of file TEcnaRun.cc.

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().

3028  {
3029  //Calculation of the mean Low Frequency Correlations
3030  //between channels for each Stin
3031 
3032  //... preliminary calculation of the Low Frequency Cor(c,c) if not done yet
3033  // Only one tag (dim=1) to set to 0 (no write in the result ROOT file)
3034  if (fTagLfCor[0] != 1) {
3036  fTagLfCor[0] = 0;
3037  }
3038 
3039  //..... mean fT2d_lfcc_mostins for each pair (Stin_X,Stin_Y)
3041  std::cout << "*TEcnaRun::LowFrequencyMeanCorrelationsBetweenStins()" << std::endl;
3042  }
3044  std::cout << " Calculation of the mean, for each " << fStinName.Data() << ", of the" << std::endl
3045  << " Low Frequency Correlations between channels." << std::endl;
3046  }
3047 
3048  //................. allocation fT2d_lfcc_mostins + init to zero (mandatory)
3049  if (fT2d_lfcc_mostins == nullptr) {
3050  const Int_t n_Stin = fEcal->MaxStinEcnaInStex();
3051  fT2d_lfcc_mostins = new Double_t*[n_Stin];
3052  fCnew++;
3053  fT2d1_lfcc_mostins = new Double_t[n_Stin * n_Stin];
3054  fCnew++;
3055  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < n_Stin; i0StexStinEcna++) {
3056  fT2d_lfcc_mostins[i0StexStinEcna] = &fT2d1_lfcc_mostins[0] + i0StexStinEcna * n_Stin;
3057  }
3058  }
3059 
3060  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
3061  for (Int_t j0StexStinEcna = 0; j0StexStinEcna < fEcal->MaxStinEcnaInStex(); j0StexStinEcna++) {
3062  if (fT2d_lfcc_mostins[i0StexStinEcna][j0StexStinEcna] != (Double_t)0) {
3063  fMiscDiag[31]++;
3064  fT2d_lfcc_mostins[i0StexStinEcna][j0StexStinEcna] = (Double_t)0;
3065  }
3066  }
3067  }
3068 
3069  //..... Calculation of the mean LF Cor(c,c) for each pair (Stin_X,Stin_Y)
3070  //
3071  // ! => Warning: this matrix is NOT symmetric => take N*N elements
3072  // Only (Stin,Stin) matrix is symmetric.
3073  // (StinEcha,StinEcha) matrix inside a (Stin,Stin) element is NOT symmetric
3074  // (except for the (Stin,Stin) DIAGONAL elements)
3075  // Then:
3076  // 1D array half_LFccMos[N*N] to put the (channel,channel) correlations
3077 
3078  Int_t ndim = (Int_t)(fEcal->MaxCrysInStin() * fEcal->MaxCrysInStin());
3079 
3080  TVectorD half_LFccMos(ndim);
3081  for (Int_t i = 0; i < ndim; i++) {
3082  half_LFccMos(i) = (Double_t)0.;
3083  }
3084 
3085  //..................... Calculation
3087  std::cout << "*TEcnaRun::LowFrequencyMeanCorrelationsBetweenStins()" << std::endl;
3088  }
3090  std::cout << " Calculation, for each " << fStinName.Data() << ", of the mean " << std::endl
3091  << " Low Frequency cor(c,c)." << std::endl;
3092  }
3093 
3094  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
3095  for (Int_t j0StexStinEcna = 0; j0StexStinEcna < fEcal->MaxStinEcnaInStex(); j0StexStinEcna++) {
3096  //................... .Copy the Mean Correlations(c,c') in 1D vector half_LFccMos()
3097  Int_t i_count = 0;
3098  for (Int_t i0StinCrys = 0; i0StinCrys < fEcal->MaxCrysInStin(); i0StinCrys++) {
3099  Int_t i0StexEcha = i0StexStinEcna * fEcal->MaxCrysInStin() + i0StinCrys;
3100  for (Int_t j0StinCrys = 0; j0StinCrys < fEcal->MaxCrysInStin(); j0StinCrys++) {
3101  Int_t j0StexEcha = j0StexStinEcna * fEcal->MaxCrysInStin() + j0StinCrys;
3102  if ((i0StexEcha >= 0 && i0StexEcha < fEcal->MaxCrysEcnaInStex()) &&
3103  (j0StexEcha >= 0 && j0StexEcha < fEcal->MaxCrysEcnaInStex())) {
3104  half_LFccMos(i_count) = fT2d_lf_cor[i0StexEcha][j0StexEcha];
3105  i_count++;
3106  } else {
3107  std::cout << "!TEcnaRun::LowFrequencyMeanCorrelationsBetweenStins()> Channel number out of range."
3108  << "i0StexEcha = " << i0StexEcha << ", j0StexEcha = " << j0StexEcha << fTTBELL << std::endl;
3109  }
3110  }
3111  }
3112  //...... Calculation of the mean absolute values of the LF mean Correlations(c,c')
3113  fT2d_lfcc_mostins[i0StexStinEcna][j0StexStinEcna] = (Double_t)0;
3114  for (Int_t i_rcor = 0; i_rcor < ndim; i_rcor++) {
3115  fT2d_lfcc_mostins[i0StexStinEcna][j0StexStinEcna] += fabs(half_LFccMos(i_rcor));
3116  }
3117  fT2d_lfcc_mostins[i0StexStinEcna][j0StexStinEcna] /= (Double_t)ndim;
3118  }
3119  if (i0StexStinEcna % 10 == 0) {
3120  std::cout << i0StexStinEcna << "[LFN MCtt], ";
3121  }
3122  }
3123  std::cout << std::endl;
3124 
3125  fTagLFccMoStins[0] = 1;
3127 } // ------- end of LowFrequencyMeanCorrelationsBetweenStins() -------
Int_t fCodePrintNoComment
Definition: TEcnaRun.h:508
Int_t * fTagLFccMoStins
Definition: TEcnaRun.h:494
Int_t * fMiscDiag
Definition: TEcnaRun.h:376
Int_t * fTagLfCor
Definition: TEcnaRun.h:480
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
Int_t fFlagPrint
Definition: TEcnaRun.h:507
Int_t MaxCrysInStin()
Double_t ** fT2d_lf_cor
Definition: TEcnaRun.h:478
Int_t fCnew
Definition: TEcnaRun.h:371
Double_t * fT2d1_lfcc_mostins
Definition: TEcnaRun.h:493
Int_t fLFccMoStinsCalc
Definition: TEcnaHeader.h:79
void LowFrequencyCorrelationsBetweenChannels()
Definition: TEcnaRun.cc:2739
tuple cout
Definition: gather_cfg.py:144
Int_t MaxStinEcnaInStex()
TString fStinName
Definition: TEcnaRun.h:391
TString fTTBELL
Definition: TEcnaRun.h:374
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
Double_t ** fT2d_lfcc_mostins
Definition: TEcnaRun.h:492
void TEcnaRun::LowFrequencyMeanCorrelationsBetweenTowers ( )

Definition at line 3025 of file TEcnaRun.cc.

References LowFrequencyMeanCorrelationsBetweenStins().

void LowFrequencyMeanCorrelationsBetweenStins()
Definition: TEcnaRun.cc:3028
void TEcnaRun::LowFrequencyNoise ( )

Definition at line 1858 of file TEcnaRun.cc.

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 ALCARECOEcalPhiSym_cff::var.

Referenced by AverageLowFrequencyNoise(), and StandardCalculations().

1858  {
1859  // Calculation, for each channel, of the sigma (over the events)
1860  // of the ADC expectation values (over the samples 0 to fNbSampForCalc-1)
1861 
1862  //................... Allocation fT1d_sigevt_of_evsamp + init to zero (mandatory)
1863  if (fT1d_sigevt_of_evsamp == nullptr) {
1864  fT1d_sigevt_of_evsamp = new Double_t[fEcal->MaxCrysEcnaInStex()];
1865  fCnew++;
1866  }
1867  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1868  if (fT1d_sigevt_of_evsamp[i0StexEcha] != (Double_t)0) {
1869  fMiscDiag[13]++;
1870  fT1d_sigevt_of_evsamp[i0StexEcha] = (Double_t)0;
1871  }
1872  }
1873 
1874  //................... Allocation mean_over_samples
1875  TVectorD mean_over_samples(fNumberOfEvents);
1876  for (Int_t i = 0; i < fNumberOfEvents; i++) {
1877  mean_over_samples(i) = (Double_t)0.;
1878  }
1879 
1880  //..................... Calculation
1882  std::cout << "*TEcnaRun::LowFrequencyNoise()" << std::endl;
1883  }
1885  std::cout << " Calculation, for each channel, of the sigma (over the events)" << std::endl
1886  << " of the ADC expectation values (over the samples 1 to " << fNbSampForCalc << ")."
1887  << std::endl;
1888  }
1889 
1890  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1891  // Calculation of the mean over the events of the mean over the samples
1892  Double_t mean_over_events = (Double_t)0;
1893  for (Int_t n_event = 0; n_event < fNumberOfEvents; n_event++) {
1894  // Calculation, for each event, of the mean over the samples
1895  mean_over_samples(n_event) = (Double_t)0.;
1896  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
1897  mean_over_samples(n_event) += fT3d_AdcValues[i0StexEcha][i0Sample][n_event];
1898  }
1899  mean_over_samples(n_event) /= (Double_t)fNbSampForCalc;
1900 
1901  mean_over_events += mean_over_samples(n_event);
1902  }
1903  mean_over_events /= (Double_t)fNumberOfEvents;
1904 
1905  // Calculation of the sigma over the events of the mean over the samples
1906  Double_t var = (Double_t)0;
1907  for (Int_t n_event = 0; n_event < fNumberOfEvents; n_event++) {
1908  Double_t ecart = mean_over_samples(n_event) - mean_over_events;
1909  var += ecart * ecart;
1910  }
1911  var /= (Double_t)fNumberOfEvents;
1912 
1913  fT1d_sigevt_of_evsamp[i0StexEcha] = sqrt(var);
1914  }
1915  fTagLfn[0] = 1;
1916  fFileHeader->fLfnCalc++;
1917 }
Int_t fCodePrintNoComment
Definition: TEcnaRun.h:508
Double_t * fT1d_sigevt_of_evsamp
Definition: TEcnaRun.h:458
Int_t * fMiscDiag
Definition: TEcnaRun.h:376
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
Int_t * fTagLfn
Definition: TEcnaRun.h:459
Double_t *** fT3d_AdcValues
Definition: TEcnaRun.h:412
T sqrt(T t)
Definition: SSEVec.h:19
Int_t fNbSampForCalc
Definition: TEcnaRun.h:406
Int_t fFlagPrint
Definition: TEcnaRun.h:507
Int_t fNumberOfEvents
Definition: TEcnaRun.h:408
Int_t fCnew
Definition: TEcnaRun.h:371
Int_t MaxCrysEcnaInStex()
tuple cout
Definition: gather_cfg.py:144
Int_t fLfnCalc
Definition: TEcnaHeader.h:84
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::MeanCorrelationsBetweenSamples ( )

Definition at line 2014 of file TEcnaRun.cc.

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().

2014  {
2015  // Calculation, for all the channels, of the expectation values
2016  // of the correlations between the first fNbSampForCalc samples
2017 
2018  //... preliminary calculation of the correlations if not done yet
2019  // (test only the first element since the cor are computed globaly)
2020  if (fTagCorCss[0] != 1) {
2022  fTagCorCss[0] = 0;
2023  }
2024 
2025  //................... Allocations ev_cor_ss + init to zero (mandatory)
2026  if (fT1d_ev_cor_ss == nullptr) {
2027  Int_t n_StexEcha = fEcal->MaxCrysEcnaInStex();
2028  fT1d_ev_cor_ss = new Double_t[n_StexEcha];
2029  fCnew++;
2030  }
2031  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2032  if (fT1d_ev_cor_ss[i0StexEcha] != (Double_t)0) {
2033  fMiscDiag[15]++;
2034  fT1d_ev_cor_ss[i0StexEcha] = (Double_t)0;
2035  }
2036  }
2037 
2038  //.......... 1D array half_cor_ss[N(N-1)/2] to put the N (sample,sample) correlations
2039  // ( half of (them minus the diagonal) )
2040  Int_t ndim = (Int_t)(fNbSampForCalc * (fNbSampForCalc - 1) / 2);
2041 
2042  TVectorD half_cor_ss(ndim);
2043  for (Int_t i = 0; i < ndim; i++) {
2044  half_cor_ss(i) = (Double_t)0.;
2045  }
2046 
2047  //..................... Calculation
2049  std::cout << "*TEcnaRun::MeanCorrelationsBetweenSamples()" << std::endl;
2050  }
2052  std::cout << " Calculation, for all the channels, of the expectation values of the" << std::endl
2053  << " correlations between the first " << fNbSampForCalc << " samples." << std::endl;
2054  }
2055 
2056  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2057  //..................... half_cor_ss() array filling
2058  Int_t i_count = 0;
2059  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
2060  for (Int_t j0Sample = 0; j0Sample < i0Sample; j0Sample++) {
2061  half_cor_ss(i_count) = fT3d_cor_ss[i0StexEcha][i0Sample][j0Sample];
2062  i_count++;
2063  }
2064  }
2065  //...................... mean cor(s,s') calculation
2066  fT1d_ev_cor_ss[i0StexEcha] = (Double_t)0;
2067  for (Int_t i_rcor = 0; i_rcor < ndim; i_rcor++) {
2068  fT1d_ev_cor_ss[i0StexEcha] += half_cor_ss(i_rcor);
2069  }
2070  fT1d_ev_cor_ss[i0StexEcha] /= (Double_t)ndim;
2071  }
2072  fTagMeanCorss[0] = 1;
2074 }
Int_t * fTagCorCss
Definition: TEcnaRun.h:440
Int_t fCodePrintNoComment
Definition: TEcnaRun.h:508
Int_t * fMiscDiag
Definition: TEcnaRun.h:376
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
Double_t *** fT3d_cor_ss
Definition: TEcnaRun.h:437
Int_t fMeanCorssCalc
Definition: TEcnaHeader.h:83
Int_t fNbSampForCalc
Definition: TEcnaRun.h:406
Int_t fFlagPrint
Definition: TEcnaRun.h:507
Int_t fCnew
Definition: TEcnaRun.h:371
Int_t MaxCrysEcnaInStex()
tuple cout
Definition: gather_cfg.py:144
void CorrelationsBetweenSamples()
Definition: TEcnaRun.cc:1665
Int_t * fTagMeanCorss
Definition: TEcnaRun.h:454
Double_t * fT1d_ev_cor_ss
Definition: TEcnaRun.h:453
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
Bool_t TEcnaRun::OpenRootFile ( const Text_t *  name,
const TString &  status 
)

Definition at line 3253 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

3253  {
3254  //Open the Root file
3255 
3256  Bool_t ok_open = kFALSE;
3257 
3258  TString s_name;
3259  s_name = fCnaParPaths->ResultsRootFilePath();
3260  s_name.Append('/');
3261  s_name.Append(name);
3262 
3263  //gCnaRootFile = new TEcnaRootFile(fObjectManager, s_name.Data(), status); fCnew++;
3264 
3265  Long_t iCnaRootFile = fObjectManager->GetPointerValue("TEcnaRootFile");
3266  if (iCnaRootFile == 0) {
3267  gCnaRootFile = new TEcnaRootFile(fObjectManager, s_name.Data(), status); /* Anew("gCnaRootFile");*/
3268  } else {
3269  gCnaRootFile = (TEcnaRootFile*)iCnaRootFile;
3270  gCnaRootFile->ReStart(s_name.Data(), status);
3271  }
3272 
3273  if (gCnaRootFile->fRootFileStatus == "RECREATE") {
3274  ok_open = gCnaRootFile->OpenW();
3275  }
3276  if (gCnaRootFile->fRootFileStatus == "READ") {
3277  ok_open = gCnaRootFile->OpenR();
3278  }
3279 
3280  if (!ok_open) // unable to open file
3281  {
3282  std::cout << "TEcnaRun::OpenRootFile> Cannot open file " << s_name.Data() << std::endl;
3283  } else {
3285  std::cout << "*TEcnaRun::OpenRootFile> Open ROOT file OK for file " << s_name.Data() << std::endl;
3286  }
3287  fOpenRootFile = kTRUE;
3288  }
3289  return ok_open;
3290 }
Bool_t OpenR(const Text_t *="")
Bool_t fOpenRootFile
Definition: TEcnaRun.h:393
TEcnaObject * fObjectManager
Definition: TEcnaRun.h:380
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
list status
Definition: mps_update.py:107
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
TEcnaParPaths * fCnaParPaths
Definition: TEcnaRun.h:385
Int_t fFlagPrint
Definition: TEcnaRun.h:507
TString fRootFileStatus
Definition: TEcnaRootFile.h:31
TString ResultsRootFilePath()
void ReStart(const Text_t *)
tuple cout
Definition: gather_cfg.py:144
Bool_t OpenW(const Text_t *="")
Long_t GetPointerValue(const TString &)
Definition: TEcnaObject.cc:209
void TEcnaRun::Pedestals ( )

Definition at line 1744 of file TEcnaRun.cc.

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().

1744  {
1745  // Calculation, for each channel, of the expectation values
1746  // (over the samples 0 to fNbSampForCalc-1) of the ADC expectation values
1747  // (over the events)
1748 
1749  //... preliminary calculation of the expectation values if not done yet
1750  if (fTagMSp[0] != 1) {
1751  SampleMeans();
1752  fTagMSp[0] = 0;
1753  }
1754 
1755  //................... Allocation ev_ev + init to zero (mandatory)
1756  if (fT1d_ev_ev == nullptr) {
1757  fT1d_ev_ev = new Double_t[fEcal->MaxCrysEcnaInStex()];
1758  fCnew++;
1759  }
1760  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1761  if (fT1d_ev_ev[i0StexEcha] != (Double_t)0) {
1762  fMiscDiag[11]++;
1763  fT1d_ev_ev[i0StexEcha] = (Double_t)0;
1764  }
1765  }
1766 
1767  //..................... Calculation
1769  std::cout << "*TEcnaRun::Pedestals()" << std::endl;
1770  }
1772  std::cout << " Calculation, for all the channels, of the expectation values (over the samples 1 to "
1773  << fNbSampForCalc << ")" << std::endl
1774  << " of the ADC expectation values (over the events)." << std::endl;
1775  }
1776 
1777  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1778  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
1779  fT1d_ev_ev[i0StexEcha] += fT2d_ev[i0StexEcha][i0Sample];
1780  }
1781  fT1d_ev_ev[i0StexEcha] /= fNbSampForCalc;
1782  }
1783  fTagPed[0] = 1;
1784  fFileHeader->fPedCalc++;
1785 }
Int_t fCodePrintNoComment
Definition: TEcnaRun.h:508
Int_t * fMiscDiag
Definition: TEcnaRun.h:376
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
Int_t * fTagPed
Definition: TEcnaRun.h:444
Double_t ** fT2d_ev
Definition: TEcnaRun.h:424
Double_t * fT1d_ev_ev
Definition: TEcnaRun.h:443
Int_t fPedCalc
Definition: TEcnaHeader.h:81
Int_t fNbSampForCalc
Definition: TEcnaRun.h:406
Int_t fFlagPrint
Definition: TEcnaRun.h:507
void SampleMeans()
Definition: TEcnaRun.cc:1470
Int_t fCnew
Definition: TEcnaRun.h:371
Int_t * fTagMSp
Definition: TEcnaRun.h:426
Int_t MaxCrysEcnaInStex()
tuple cout
Definition: gather_cfg.py:144
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::PrintAllComments ( )

Definition at line 4850 of file TEcnaRun.cc.

References gather_cfg::cout, fCodePrintAllComments, and fFlagPrint.

4850  {
4851  // Set flags to authorize printing of the comments of all the methods
4852 
4854  std::cout << "*TEcnaRun::PrintAllComments()> All the comments will be printed" << std::endl;
4855 }
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
Int_t fFlagPrint
Definition: TEcnaRun.h:507
tuple cout
Definition: gather_cfg.py:144
void TEcnaRun::PrintComments ( )

Definition at line 4836 of file TEcnaRun.cc.

References gather_cfg::cout, fCodePrintComments, and fFlagPrint.

4836  {
4837  // Set flags to authorize printing of some comments concerning initialisations (default)
4838 
4840  std::cout << "*TEcnaRun::PrintComments()> Warnings and some comments on init will be printed" << std::endl;
4841 }
Int_t fCodePrintComments
Definition: TEcnaRun.h:508
Int_t fFlagPrint
Definition: TEcnaRun.h:507
tuple cout
Definition: gather_cfg.py:144
void TEcnaRun::PrintNoComment ( )

Definition at line 4857 of file TEcnaRun.cc.

References fCodePrintNoComment, and fFlagPrint.

4857  {
4858  // Set flags to forbid the printing of all the comments
4859 
4861 }
Int_t fCodePrintNoComment
Definition: TEcnaRun.h:508
Int_t fFlagPrint
Definition: TEcnaRun.h:507
void TEcnaRun::PrintWarnings ( )

Definition at line 4843 of file TEcnaRun.cc.

References gather_cfg::cout, fCodePrintWarnings, and fFlagPrint.

4843  {
4844  // Set flags to authorize printing of warnings
4845 
4847  std::cout << "*TEcnaRun::PrintWarnings()> Warnings will be printed" << std::endl;
4848 }
Int_t fFlagPrint
Definition: TEcnaRun.h:507
Int_t fCodePrintWarnings
Definition: TEcnaRun.h:508
tuple cout
Definition: gather_cfg.py:144
Bool_t TEcnaRun::ReadSampleAdcValues ( )

Definition at line 1211 of file TEcnaRun.cc.

References fEcal, and TEcnaParEcal::MaxSampADC().

Referenced by TEcnaGui::Calculations().

1211 { return ReadSampleAdcValues(fEcal->MaxSampADC()); }
Bool_t ReadSampleAdcValues()
Definition: TEcnaRun.cc:1211
Int_t MaxSampADC()
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
Bool_t TEcnaRun::ReadSampleAdcValues ( const Int_t &  nb_samp_for_calc)

Definition at line 1213 of file TEcnaRun.cc.

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().

1213  {
1214  // read the Sample ADC values from "ADC" result root files (ReadSampleAdcValues)
1215 
1216  // put the number of sample for calculations in attribute fNbSampForCalc
1217  // and call the method without arguments
1218  // We must have: nb_samp_for_calc <= fFileHeader->fNbOfSamples (= nb of samples in ROOT file)
1219 
1220  fNbSampForCalc = nb_samp_for_calc;
1221 
1222  // TEcnaRead* MyRootFile = new TEcnaRead(fFlagSubDet.Data(), fCnaParPaths, fCnaParCout,
1223  // fFileHeader, fEcalNumbering, fCnaWrite); // fCnew++;
1224 
1225  TEcnaRead* MyRootFile = new TEcnaRead(fObjectManager, fFlagSubDet.Data()); // fCnew++;
1226 
1227  MyRootFile->PrintNoComment();
1228 
1229  MyRootFile->FileParameters(fFileHeader->fTypAna,
1235  fFileHeader->fStex,
1236  fCnaParPaths->ResultsRootFilePath().Data());
1237 
1238  Bool_t ok_read = MyRootFile->LookAtRootFile();
1239 
1240  fFileHeader->fStartTime = MyRootFile->GetStartTime();
1241  fFileHeader->fStopTime = MyRootFile->GetStopTime();
1242  fFileHeader->fStartDate = MyRootFile->GetStartDate();
1243  fFileHeader->fStopDate = MyRootFile->GetStopDate();
1244 
1245  if (ok_read == kTRUE) {
1246  fRootFileName = MyRootFile->GetRootFileName();
1247  fRootFileNameShort = MyRootFile->GetRootFileNameShort();
1248  std::cout << "*TEcnaRun::ReadSampleAdcValues> Reading sample ADC values from file: " << std::endl
1249  << " " << fRootFileName << std::endl;
1250 
1251  size_t i_no_data = 0;
1252 
1253  //.......... Read the StinNumbers in the old file (ReadSampleAdcValues)
1254  TVectorD vec(fEcal->MaxStinEcnaInStex());
1255  for (Int_t i = 0; i < fEcal->MaxStinEcnaInStex(); i++) {
1256  vec(i) = (Double_t)0.;
1257  }
1258  vec = MyRootFile->ReadStinNumbers(fEcal->MaxStinEcnaInStex());
1259  if (MyRootFile->DataExist() == kTRUE) {
1260  fTagStinNumbers[0] = 1;
1262  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
1263  fT1d_StexStinFromIndex[i0StexStinEcna] = (Int_t)vec(i0StexStinEcna);
1264  }
1265  } else {
1266  i_no_data++;
1267  }
1268  //.......... Read the Numbers of Events in the old file (ReadSampleAdcValues)
1269  TMatrixD partial_matrix(fEcal->MaxCrysInStin(), fFileHeader->fNbOfSamples);
1270  for (Int_t i = 0; i < fEcal->MaxCrysInStin(); i++) {
1271  for (Int_t j = 0; j < fFileHeader->fNbOfSamples; j++) {
1272  partial_matrix(i, j) = (Double_t)0.;
1273  }
1274  }
1275 
1276  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
1277  Int_t n1StexStin = MyRootFile->GetStexStinFromIndex(i0StexStinEcna);
1278  if (n1StexStin != -1) {
1279  partial_matrix =
1281 
1282  if (MyRootFile->DataExist() == kTRUE) {
1283  fTagNbOfEvts[0] = 1;
1285  for (Int_t i0StinCrys = 0; i0StinCrys < fEcal->MaxCrysInStin(); i0StinCrys++) {
1286  Int_t i0StexEcha = (n1StexStin - 1) * fEcal->MaxCrysInStin() + i0StinCrys;
1287  for (Int_t i0Sample = 0; i0Sample < fFileHeader->fNbOfSamples; i0Sample++) {
1288  fT2d_NbOfEvts[i0StexEcha][i0Sample] = (Int_t)partial_matrix(i0StinCrys, i0Sample);
1289  }
1290  }
1291  } else {
1292  i_no_data++;
1293  }
1294  }
1295  }
1296 
1297  //.......... Read the Sample ADC values in the old file (ReadSampleAdcValues)
1298  Double_t*** fT3d_read_AdcValues = MyRootFile->ReadSampleAdcValuesSameFile(
1300 
1301  if (MyRootFile->DataExist() == kTRUE) {
1302  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1303  for (Int_t i0Sample = 0; i0Sample < fFileHeader->fNbOfSamples; i0Sample++) {
1304  for (Int_t i_event = 0; i_event < fFileHeader->fReqNbOfEvts; i_event++) {
1305  fT3d_AdcValues[i0StexEcha][i0Sample][i_event] = fT3d_read_AdcValues[i0StexEcha][i0Sample][i_event];
1306  }
1307  }
1308  }
1309  } else {
1310  i_no_data++;
1311  }
1312  if (i_no_data) {
1313  std::cout << "!TEcnaRun::ReadSampleAdcValues(...)> *ERROR* =====> "
1314  << " Read failure. i_no_data = " << i_no_data << fTTBELL << std::endl;
1315  }
1316  } else {
1317  std::cout << "!TEcnaRun::ReadSampleAdcValues(...)> *ERROR* =====> "
1318  << " ROOT file not found" << fTTBELL << std::endl;
1319  }
1320  delete MyRootFile; // fCdelete++;
1321  return ok_read;
1322 }
Int_t fStex
Definition: TEcnaHeader.h:53
Int_t * fTagStinNumbers
Definition: TEcnaRun.h:422
TEcnaObject * fObjectManager
Definition: TEcnaRun.h:380
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
TString GetStartDate()
Definition: TEcnaRead.cc:835
TString GetRootFileNameShort()
Definition: TEcnaRead.cc:4247
time_t GetStopTime()
Definition: TEcnaRead.cc:834
Int_t fReqNbOfEvts
Definition: TEcnaHeader.h:52
Int_t fNbOfEvtsCalc
Definition: TEcnaHeader.h:64
Int_t fNbOfSamples
Definition: TEcnaHeader.h:48
TString fStopDate
Definition: TEcnaHeader.h:58
TString fFlagSubDet
Definition: TEcnaRun.h:390
TVectorD ReadStinNumbers(const Int_t &)
Definition: TEcnaRead.cc:1243
Double_t *** fT3d_AdcValues
Definition: TEcnaRun.h:412
Int_t GetStexStinFromIndex(const Int_t &)
Definition: TEcnaRead.cc:4255
TEcnaParPaths * fCnaParPaths
Definition: TEcnaRun.h:385
Int_t * fTagNbOfEvts
Definition: TEcnaRun.h:419
TString GetStopDate()
Definition: TEcnaRead.cc:836
Int_t fNbSampForCalc
Definition: TEcnaRun.h:406
void PrintNoComment()
Definition: TEcnaRead.cc:4353
Int_t MaxCrysInStin()
TString GetRootFileName()
Definition: TEcnaRead.cc:4246
TString fStartDate
Definition: TEcnaHeader.h:57
Bool_t DataExist()
Definition: TEcnaRead.cc:1100
TString fTypAna
Definition: TEcnaHeader.h:47
TMatrixD ReadNumberOfEventsForSamples(const Int_t &, const Int_t &, const Int_t &)
Definition: TEcnaRead.cc:1765
Double_t *** ReadSampleAdcValuesSameFile(const Int_t &, const Int_t &, const Int_t &)
Definition: TEcnaRead.cc:4009
Int_t fFirstReqEvtNumber
Definition: TEcnaHeader.h:50
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
TString ResultsRootFilePath()
Int_t MaxCrysEcnaInStex()
time_t fStartTime
Definition: TEcnaHeader.h:55
time_t fStopTime
Definition: TEcnaHeader.h:56
Int_t fLastReqEvtNumber
Definition: TEcnaHeader.h:51
Bool_t LookAtRootFile()
Definition: TEcnaRead.cc:1043
tuple cout
Definition: gather_cfg.py:144
Int_t MaxStinEcnaInStex()
Int_t fRunNumber
Definition: TEcnaHeader.h:49
TString fRootFileName
Definition: TEcnaRun.h:396
Int_t ** fT2d_NbOfEvts
Definition: TEcnaRun.h:417
Int_t fStinNumbersCalc
Definition: TEcnaHeader.h:63
Int_t * fT1d_StexStinFromIndex
Definition: TEcnaRun.h:421
TString fTTBELL
Definition: TEcnaRun.h:374
time_t GetStartTime()
Definition: TEcnaRead.cc:833
TString fRootFileNameShort
Definition: TEcnaRun.h:397
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::SampleMeans ( )

Definition at line 1470 of file TEcnaRun.cc.

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().

1470  {
1471  // Calculation of the expectation values over events
1472  // for the samples 0 to fNbSampForCalc and for all the StexEchas
1473 
1475  std::cout << "*TEcnaRun::SampleMeans() " << std::endl;
1476  }
1478  std::cout << " Calculation: sample expectation values over the events"
1479  << " for each channel." << std::endl;
1480  }
1481 
1482  //................... Allocation fT2d_ev
1483  if (fT2d_ev == nullptr) {
1484  Int_t n_samp = fNbSampForCalc;
1485  Int_t n_StexEcha = fEcal->MaxCrysEcnaInStex();
1486  fT2d_ev = new Double_t*[n_StexEcha];
1487  fCnew++;
1488  fT1d_ev = new Double_t[n_StexEcha * n_samp];
1489  fCnew++;
1490  for (Int_t i = 0; i < n_StexEcha; i++) {
1491  fT2d_ev[i] = &fT1d_ev[0] + i * n_samp;
1492  }
1493  }
1494  //................... init fT2d_ev to zero
1495  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1496  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
1497  if (fT2d_ev[i0StexEcha][i0Sample] != (Double_t)0) {
1498  fMiscDiag[1]++;
1499  fT2d_ev[i0StexEcha][i0Sample] = (Double_t)0;
1500  }
1501  }
1502  }
1503 
1504  //................... Calculation
1505  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1506  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
1507  for (Int_t i_event = 0; i_event < fNumberOfEvents; i_event++) {
1508  fT2d_ev[i0StexEcha][i0Sample] += fT3d_AdcValues[i0StexEcha][i0Sample][i_event];
1509  }
1510  fT2d_ev[i0StexEcha][i0Sample] /= fNumberOfEvents;
1511  }
1512  }
1513  fTagMSp[0] = 1;
1514  fFileHeader->fMSpCalc++;
1515 }
Int_t fCodePrintNoComment
Definition: TEcnaRun.h:508
Int_t * fMiscDiag
Definition: TEcnaRun.h:376
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
Int_t fMSpCalc
Definition: TEcnaHeader.h:67
Double_t ** fT2d_ev
Definition: TEcnaRun.h:424
Double_t *** fT3d_AdcValues
Definition: TEcnaRun.h:412
Int_t fNbSampForCalc
Definition: TEcnaRun.h:406
Int_t fFlagPrint
Definition: TEcnaRun.h:507
Int_t fNumberOfEvents
Definition: TEcnaRun.h:408
Int_t fCnew
Definition: TEcnaRun.h:371
Int_t * fTagMSp
Definition: TEcnaRun.h:426
Int_t MaxCrysEcnaInStex()
Double_t * fT1d_ev
Definition: TEcnaRun.h:425
tuple cout
Definition: gather_cfg.py:144
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::SampleSigmas ( )

Definition at line 1525 of file TEcnaRun.cc.

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().

1525  {
1526  //Calculation of the sigmas of the samples for all the StexEchas
1527 
1529  std::cout << "*TEcnaRun::SampleSigmas()" << std::endl;
1530  }
1532  std::cout << " Calculation: sample ADC sigmas over the events "
1533  << " for each channel." << std::endl;
1534  }
1535 
1536  //... preliminary calculation of the expectation values if not done yet.
1537  // The tag is set to 1 after call to the method. It is reset to 0
1538  // because the expectation values must not be written in the result ROOT file
1539  // (since the tag was equal to 0)
1540  if (fTagMSp[0] != 1) {
1541  SampleMeans();
1542  fTagMSp[0] = 0;
1543  }
1544 
1545  //................... Allocation fT2d_sig
1546  if (fT2d_sig == nullptr) {
1547  Int_t n_StexEcha = fEcal->MaxCrysEcnaInStex();
1548  Int_t n_samp = fNbSampForCalc;
1549  fT2d_sig = new Double_t*[n_StexEcha];
1550  fCnew++;
1551  fT1d_sig = new Double_t[n_StexEcha * n_samp];
1552  fCnew++;
1553  for (Int_t i0StexEcha = 0; i0StexEcha < n_StexEcha; i0StexEcha++) {
1554  fT2d_sig[i0StexEcha] = &fT1d_sig[0] + i0StexEcha * n_samp;
1555  }
1556  }
1557  // ................... init fT2d_sig to zero
1558  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1559  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
1560  if (fT2d_sig[i0StexEcha][i0Sample] != (Double_t)0) {
1561  fMiscDiag[2]++;
1562  fT2d_sig[i0StexEcha][i0Sample] = (Double_t)0;
1563  }
1564  }
1565  }
1566 
1567  //................... Calculation
1568  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1569  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
1570  Double_t variance = (Double_t)0.;
1571  for (Int_t i_event = 0; i_event < fNumberOfEvents; i_event++) {
1572  Double_t ecart = fT3d_AdcValues[i0StexEcha][i0Sample][i_event] - fT2d_ev[i0StexEcha][i0Sample];
1573  variance += ecart * ecart;
1574  }
1575  variance /= fNumberOfEvents;
1576  fT2d_sig[i0StexEcha][i0Sample] = sqrt(variance);
1577  }
1578  }
1579  fTagSSp[0] = 1;
1580  fFileHeader->fSSpCalc++;
1581 }
Int_t fCodePrintNoComment
Definition: TEcnaRun.h:508
Int_t fSSpCalc
Definition: TEcnaHeader.h:68
Int_t * fMiscDiag
Definition: TEcnaRun.h:376
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
Double_t ** fT2d_sig
Definition: TEcnaRun.h:428
Int_t * fTagSSp
Definition: TEcnaRun.h:430
Double_t ** fT2d_ev
Definition: TEcnaRun.h:424
Double_t *** fT3d_AdcValues
Definition: TEcnaRun.h:412
T sqrt(T t)
Definition: SSEVec.h:19
Int_t fNbSampForCalc
Definition: TEcnaRun.h:406
Int_t fFlagPrint
Definition: TEcnaRun.h:507
Int_t fNumberOfEvents
Definition: TEcnaRun.h:408
void SampleMeans()
Definition: TEcnaRun.cc:1470
Int_t fCnew
Definition: TEcnaRun.h:371
Int_t * fTagMSp
Definition: TEcnaRun.h:426
Int_t MaxCrysEcnaInStex()
tuple cout
Definition: gather_cfg.py:144
Double_t * fT1d_sig
Definition: TEcnaRun.h:429
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::SampleValues ( )

Definition at line 1398 of file TEcnaRun.cc.

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

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

1398  {
1399  //3D histo of the sample ADC values for all the triples (StexEcha, sample, event)
1400 
1401  // The histo is already in fT3d_AdcValues[][][]
1402  // this method sets the "Tag", increment the "f...Calc" (and must be kept for that)
1403  // f...Calc > 0 => allow writing on file.
1404 
1405  if (fFileHeader->fAdcEvtCalc > 0) {
1406  fFileHeader->fAdcEvtCalc = 0;
1407  }
1408  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1409  fTagAdcEvt[i0StexEcha] = 1;
1411  }
1412 }
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
Int_t fAdcEvtCalc
Definition: TEcnaHeader.h:66
Int_t MaxCrysEcnaInStex()
Int_t * fTagAdcEvt
Definition: TEcnaRun.h:415
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::SetEcalSubDetector ( const TString &  SubDet)

Definition at line 246 of file TEcnaRun.cc.

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

Referenced by TEcnaRun().

246  {
247  // Set Subdetector (EB or EE)
248 
249  Int_t MaxCar = fgMaxCar;
250  fFlagSubDet.Resize(MaxCar);
251  fFlagSubDet = SubDet.Data();
252 
253  fEcal = nullptr;
254  fEcal = new TEcnaParEcal(fFlagSubDet.Data()); //fCnew++;
255  fEcalNumbering = nullptr;
256  fEcalNumbering = new TEcnaNumbering(fFlagSubDet.Data(), fEcal); //fCnew++;
257  fCnaWrite = nullptr;
258 
259  fCnaWrite = new TEcnaWrite(fFlagSubDet.Data(), fCnaParPaths, fCnaParCout, fEcal, fEcalNumbering); //fCnew++;
260 
261  if (fFlagSubDet == "EB") {
262  fStexName = "SM ";
263  fStinName = "tower";
264  }
265  if (fFlagSubDet == "EE") {
266  fStexName = "Dee";
267  fStinName = " SC ";
268  }
269 }
tuple SubDet
Definition: ntupleEnum.py:14
TEcnaParCout * fCnaParCout
Definition: TEcnaRun.h:384
TString fStexName
Definition: TEcnaRun.h:391
TString fFlagSubDet
Definition: TEcnaRun.h:390
TEcnaParPaths * fCnaParPaths
Definition: TEcnaRun.h:385
Int_t fgMaxCar
Definition: TEcnaRun.h:367
TString fStinName
Definition: TEcnaRun.h:391
TEcnaWrite * fCnaWrite
Definition: TEcnaRun.h:386
TEcnaNumbering * fEcalNumbering
Definition: TEcnaRun.h:383
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::SigmaOfCorrelationsBetweenSamples ( )

Definition at line 2087 of file TEcnaRun.cc.

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 ALCARECOEcalPhiSym_cff::var.

Referenced by AverageSigmaOfCorrelationsBetweenSamples(), and StandardCalculations().

2087  {
2088  //Calculation of the sigmas of the (sample,sample) correlations for all the StexEchas
2089 
2090  //... preliminary calculation of the mean cor(s,s') if not done yet
2091  // (test only the first element since the cor are computed globaly)
2092  // Results available in array fT1d_ev_cor_ss[i0StexEcha]
2093  if (fTagMeanCorss[0] != 1) {
2095  fTagMeanCorss[0] = 0;
2096  }
2097 
2098  //................... Allocations sig_cor_ss + init to zero
2099  if (fT1d_sig_cor_ss == nullptr) {
2100  Int_t n_StexEcha = fEcal->MaxCrysEcnaInStex();
2101  fT1d_sig_cor_ss = new Double_t[n_StexEcha];
2102  fCnew++;
2103  }
2104  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2105  if (fT1d_sig_cor_ss[i0StexEcha] != (Double_t)0) {
2106  fMiscDiag[16]++;
2107  fT1d_sig_cor_ss[i0StexEcha] = (Double_t)0;
2108  }
2109  }
2110 
2112  std::cout << "*TEcnaRun::SigmasOfCorrelationsBetweenSamples()" << std::endl;
2113  }
2115  std::cout << " Calculation of the sigmas of the (sample,sample)" << std::endl
2116  << " correlations for all the channels." << std::endl;
2117  }
2118 
2119  //.......... 1D array half_cor_ss[N(N-1)/2] to put the N (sample,sample) correlations
2120  // (half of them minus the diagonal)
2121  Int_t ndim = (Int_t)(fNbSampForCalc * (fNbSampForCalc - 1) / 2);
2122 
2123  TVectorD half_cor_ss(ndim);
2124  for (Int_t i = 0; i < ndim; i++) {
2125  half_cor_ss(i) = (Double_t)0.;
2126  }
2127 
2128  //.................. Calculation
2129  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
2130  //..................... half_cor_ss() array filling
2131  Int_t i_count = 0;
2132  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
2133  for (Int_t j0Sample = 0; j0Sample < i0Sample; j0Sample++) {
2134  half_cor_ss(i_count) = fT3d_cor_ss[i0StexEcha][i0Sample][j0Sample];
2135  i_count++;
2136  }
2137  }
2138 
2139  //...................... sigma of cor(s,s') calculation
2140  Double_t var = (Double_t)0;
2141  for (Int_t i_rcor = 0; i_rcor < ndim; i_rcor++) {
2142  Double_t ecart = half_cor_ss(i_rcor) - fT1d_ev_cor_ss[i0StexEcha];
2143  var += ecart * ecart;
2144  }
2145  var /= (Double_t)ndim;
2146  fT1d_sig_cor_ss[i0StexEcha] = sqrt(var);
2147  }
2148  fTagSigCorss[0] = 1;
2150 }
Int_t fCodePrintNoComment
Definition: TEcnaRun.h:508
Int_t * fMiscDiag
Definition: TEcnaRun.h:376
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
Double_t * fT1d_sig_cor_ss
Definition: TEcnaRun.h:468
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
Double_t *** fT3d_cor_ss
Definition: TEcnaRun.h:437
T sqrt(T t)
Definition: SSEVec.h:19
Int_t fNbSampForCalc
Definition: TEcnaRun.h:406
Int_t fFlagPrint
Definition: TEcnaRun.h:507
Int_t fCnew
Definition: TEcnaRun.h:371
Int_t * fTagSigCorss
Definition: TEcnaRun.h:469
void MeanCorrelationsBetweenSamples()
Definition: TEcnaRun.cc:2014
Int_t MaxCrysEcnaInStex()
tuple cout
Definition: gather_cfg.py:144
Int_t fSigCorssCalc
Definition: TEcnaHeader.h:86
Int_t * fTagMeanCorss
Definition: TEcnaRun.h:454
Double_t * fT1d_ev_cor_ss
Definition: TEcnaRun.h:453
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::StandardCalculations ( )

Definition at line 1422 of file TEcnaRun.cc.

References AverageHighFrequencyNoise(), AverageLowFrequencyNoise(), AverageMeanCorrelationsBetweenSamples(), AveragePedestals(), AverageSigmaOfCorrelationsBetweenSamples(), AverageTotalNoise(), CorrelationsBetweenSamples(), HighFrequencyNoise(), LowFrequencyNoise(), MeanCorrelationsBetweenSamples(), Pedestals(), SampleMeans(), SampleSigmas(), SigmaOfCorrelationsBetweenSamples(), and TotalNoise().

Referenced by TEcnaGui::Calculations().

1422  {
1423  SampleMeans();
1424  SampleSigmas();
1426 
1427  Pedestals(); // => mean over Xtal's
1428  TotalNoise();
1433 
1434  AveragePedestals(); // Average => mean over Stin's (Tower if EB, SC if EE)
1440 }
void AverageTotalNoise()
Definition: TEcnaRun.cc:2235
void TotalNoise()
Definition: TEcnaRun.cc:1799
void SigmaOfCorrelationsBetweenSamples()
Definition: TEcnaRun.cc:2087
void AverageMeanCorrelationsBetweenSamples()
Definition: TEcnaRun.cc:2460
void AverageLowFrequencyNoise()
Definition: TEcnaRun.cc:2310
void SampleMeans()
Definition: TEcnaRun.cc:1470
void LowFrequencyNoise()
Definition: TEcnaRun.cc:1858
void AverageSigmaOfCorrelationsBetweenSamples()
Definition: TEcnaRun.cc:2535
void MeanCorrelationsBetweenSamples()
Definition: TEcnaRun.cc:2014
void SampleSigmas()
Definition: TEcnaRun.cc:1525
void AveragePedestals()
Definition: TEcnaRun.cc:2159
void HighFrequencyNoise()
Definition: TEcnaRun.cc:1931
void AverageHighFrequencyNoise()
Definition: TEcnaRun.cc:2385
void Pedestals()
Definition: TEcnaRun.cc:1744
void CorrelationsBetweenSamples()
Definition: TEcnaRun.cc:1665
void TEcnaRun::StartStopDate ( const TString &  c_startdate,
const TString &  c_stopdate 
)

Definition at line 1349 of file TEcnaRun.cc.

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

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

1349  {
1350  // Put the start an stop date (if they exist) in fFileHeader class attributes.
1351 
1352  fFileHeader->fStartDate = c_startdate;
1353  fFileHeader->fStopDate = c_stopdate;
1354 }
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
TString fStopDate
Definition: TEcnaHeader.h:58
TString fStartDate
Definition: TEcnaHeader.h:57
void TEcnaRun::StartStopTime ( time_t  t_startime,
time_t  t_stoptime 
)

Definition at line 1342 of file TEcnaRun.cc.

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

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

1342  {
1343  // Put the start an stop time (if they exist) in fFileHeader class attributes.
1344 
1345  fFileHeader->fStartTime = t_startime;
1346  fFileHeader->fStopTime = t_stoptime;
1347 }
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
time_t fStartTime
Definition: TEcnaHeader.h:55
time_t fStopTime
Definition: TEcnaHeader.h:56
void TEcnaRun::TotalNoise ( )

Definition at line 1799 of file TEcnaRun.cc.

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().

1799  {
1800  // Calculation, for each channel, of the expectation values
1801  // (over the samples 0 to fNbSampForCalc-1) of the sigmas
1802  // (over the events)
1803 
1804  //... preliminary calculation of the sigmas if not done yet
1805  if (fTagSSp[0] != 1) {
1806  SampleSigmas();
1807  fTagSSp[0] = 0;
1808  }
1809 
1810  //................... Allocation ev_ev + init to zero (mandatory)
1811  if (fT1d_evsamp_of_sigevt == nullptr) {
1812  fT1d_evsamp_of_sigevt = new Double_t[fEcal->MaxCrysEcnaInStex()];
1813  fCnew++;
1814  }
1815  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1816  if (fT1d_evsamp_of_sigevt[i0StexEcha] != (Double_t)0) {
1817  fMiscDiag[12]++;
1818  fT1d_evsamp_of_sigevt[i0StexEcha] = (Double_t)0;
1819  }
1820  }
1821 
1822  //..................... Calculation
1824  std::cout << "*TEcnaRun::TotalNoise()" << std::endl;
1825  }
1827  std::cout << " Calculation, for all the channels, of the expectation values (over the samples 1 to "
1828  << fNbSampForCalc << ")" << std::endl
1829  << " of the ADC expectation values (over the events)." << std::endl;
1830  }
1831 
1832  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
1833  for (Int_t i0Sample = 0; i0Sample < fNbSampForCalc; i0Sample++) {
1834  if (fT2d_sig[i0StexEcha][i0Sample] < 0) {
1835  std::cout << "!TEcnaRun::TotalNoise() *** ERROR ***> Negative sigma!" << fTTBELL << std::endl;
1836  } else {
1837  fT1d_evsamp_of_sigevt[i0StexEcha] += fT2d_sig[i0StexEcha][i0Sample];
1838  }
1839  }
1840  fT1d_evsamp_of_sigevt[i0StexEcha] /= fNbSampForCalc;
1841  }
1842  fTagTno[0] = 1;
1843  fFileHeader->fTnoCalc++;
1844 }
Int_t fCodePrintNoComment
Definition: TEcnaRun.h:508
Int_t * fMiscDiag
Definition: TEcnaRun.h:376
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
Double_t ** fT2d_sig
Definition: TEcnaRun.h:428
Int_t * fTagSSp
Definition: TEcnaRun.h:430
Int_t * fTagTno
Definition: TEcnaRun.h:449
Int_t fNbSampForCalc
Definition: TEcnaRun.h:406
Int_t fFlagPrint
Definition: TEcnaRun.h:507
Int_t fCnew
Definition: TEcnaRun.h:371
Double_t * fT1d_evsamp_of_sigevt
Definition: TEcnaRun.h:448
void SampleSigmas()
Definition: TEcnaRun.cc:1525
Int_t fTnoCalc
Definition: TEcnaHeader.h:82
Int_t MaxCrysEcnaInStex()
tuple cout
Definition: gather_cfg.py:144
TString fTTBELL
Definition: TEcnaRun.h:374
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::TRootAdcEvt ( const Int_t &  user_StexEcha,
const Int_t &  argNbSampWrite 
)

Definition at line 4474 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

4474  {
4475  if (fTagAdcEvt[user_StexEcha] == 1) {
4476  for (Int_t i0Sample = 0; i0Sample < argNbSampWrite; i0Sample++) {
4477  //...................... all the bins set to zero
4478  for (Int_t j_bin = 0; j_bin < fFileHeader->fReqNbOfEvts; j_bin++) {
4479  gCnaRootFile->fCnaIndivResult->fMatHis(i0Sample, j_bin) = (Double_t)0.;
4480  }
4481  //...................... fill the non-zero bins
4482  for (Int_t j_bin = 0; j_bin < fFileHeader->fReqNbOfEvts; j_bin++) {
4483  gCnaRootFile->fCnaIndivResult->fMatHis(i0Sample, j_bin) = fT3d_AdcValues[user_StexEcha][i0Sample][j_bin];
4484  }
4485  }
4486  }
4487 }
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
Int_t fReqNbOfEvts
Definition: TEcnaHeader.h:52
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
TEcnaNArrayD fMatHis
Double_t *** fT3d_AdcValues
Definition: TEcnaRun.h:412
Int_t * fTagAdcEvt
Definition: TEcnaRun.h:415
void TEcnaRun::TRootAvEvCorss ( )

Definition at line 4805 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

4805  {
4806  if (fTagAvMeanCorss[0] == 1) // test 1st elt only since global calc
4807  {
4808  for (Int_t j0StexStinEcna = 0; j0StexStinEcna < fEcal->MaxStinEcnaInStex(); j0StexStinEcna++) {
4809  gCnaRootFile->fCnaIndivResult->fMatHis(0, j0StexStinEcna) = fT1d_av_ev_corss[j0StexStinEcna];
4810  }
4811  }
4812 }
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
Double_t * fT1d_av_ev_corss
Definition: TEcnaRun.h:455
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
TEcnaNArrayD fMatHis
Int_t * fTagAvMeanCorss
Definition: TEcnaRun.h:456
Int_t MaxStinEcnaInStex()
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::TRootAvHfn ( )

Definition at line 4590 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

4590  {
4591  if (fTagAvHfn[0] == 1) {
4592  for (Int_t j0StexStinEcna = 0; j0StexStinEcna < fEcal->MaxStinEcnaInStex(); j0StexStinEcna++) {
4593  gCnaRootFile->fCnaIndivResult->fMatHis(0, j0StexStinEcna) = fT1d_av_hifn[j0StexStinEcna];
4594  }
4595  }
4596 }
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
Double_t * fT1d_av_hifn
Definition: TEcnaRun.h:465
TEcnaNArrayD fMatHis
Int_t * fTagAvHfn
Definition: TEcnaRun.h:466
Int_t MaxStinEcnaInStex()
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::TRootAvLfn ( )

Definition at line 4576 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

4576  {
4577  if (fTagAvLfn[0] == 1) {
4578  for (Int_t j0StexStinEcna = 0; j0StexStinEcna < fEcal->MaxStinEcnaInStex(); j0StexStinEcna++) {
4579  gCnaRootFile->fCnaIndivResult->fMatHis(0, j0StexStinEcna) = fT1d_av_lofn[j0StexStinEcna];
4580  }
4581  }
4582 }
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
Int_t * fTagAvLfn
Definition: TEcnaRun.h:461
TEcnaNArrayD fMatHis
Int_t MaxStinEcnaInStex()
Double_t * fT1d_av_lofn
Definition: TEcnaRun.h:460
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::TRootAvPed ( )

Definition at line 4790 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

4790  {
4791  if (fTagAvPed[0] == 1) {
4792  for (Int_t j0StexStinEcna = 0; j0StexStinEcna < fEcal->MaxStinEcnaInStex(); j0StexStinEcna++) {
4793  gCnaRootFile->fCnaIndivResult->fMatHis(0, j0StexStinEcna) = fT1d_av_mped[j0StexStinEcna];
4794  }
4795  }
4796 }
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
Double_t * fT1d_av_mped
Definition: TEcnaRun.h:445
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
TEcnaNArrayD fMatHis
Int_t * fTagAvPed
Definition: TEcnaRun.h:446
Int_t MaxStinEcnaInStex()
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::TRootAvSigCorss ( )

Definition at line 4821 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

4821  {
4822  if (fTagAvSigCorss[0] == 1) // test 1st elt only since global calc
4823  {
4824  for (Int_t j0StexStinEcna = 0; j0StexStinEcna < fEcal->MaxStinEcnaInStex(); j0StexStinEcna++) {
4825  gCnaRootFile->fCnaIndivResult->fMatHis(0, j0StexStinEcna) = fT1d_av_sig_corss[j0StexStinEcna];
4826  }
4827  }
4828 }
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
Double_t * fT1d_av_sig_corss
Definition: TEcnaRun.h:470
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
TEcnaNArrayD fMatHis
Int_t * fTagAvSigCorss
Definition: TEcnaRun.h:471
Int_t MaxStinEcnaInStex()
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::TRootAvTno ( )

Definition at line 4563 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

4563  {
4564  if (fTagAvTno[0] == 1) {
4565  for (Int_t j0StexStinEcna = 0; j0StexStinEcna < fEcal->MaxStinEcnaInStex(); j0StexStinEcna++) {
4566  gCnaRootFile->fCnaIndivResult->fMatHis(0, j0StexStinEcna) = fT1d_av_totn[j0StexStinEcna];
4567  }
4568  }
4569 }
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
Int_t * fTagAvTno
Definition: TEcnaRun.h:451
Double_t * fT1d_av_totn
Definition: TEcnaRun.h:450
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
TEcnaNArrayD fMatHis
Int_t MaxStinEcnaInStex()
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::TRootCorCss ( const Int_t &  user_StexEcha,
const Int_t &  argNbSampWrite 
)

Definition at line 4684 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

4684  {
4685  if (fTagCorCss[user_StexEcha] == 1) {
4686  for (Int_t i0Sample = 0; i0Sample < argNbSampWrite; i0Sample++) {
4687  for (Int_t j0Sample = 0; j0Sample < argNbSampWrite; j0Sample++) {
4688  gCnaRootFile->fCnaIndivResult->fMatMat(i0Sample, j0Sample) = fT3d_cor_ss[user_StexEcha][i0Sample][j0Sample];
4689  }
4690  }
4691  }
4692 }
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
TEcnaNArrayD fMatMat
Int_t * fTagCorCss
Definition: TEcnaRun.h:440
Double_t *** fT3d_cor_ss
Definition: TEcnaRun.h:437
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
void TEcnaRun::TRootCovCss ( const Int_t &  user_StexEcha,
const Int_t &  argNbSampWrite 
)

Definition at line 4668 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

4668  {
4669  if (fTagCovCss[user_StexEcha] == 1) {
4670  for (Int_t i0Sample = 0; i0Sample < argNbSampWrite; i0Sample++) {
4671  for (Int_t j0Sample = 0; j0Sample < argNbSampWrite; j0Sample++) {
4672  gCnaRootFile->fCnaIndivResult->fMatMat(i0Sample, j0Sample) = fT3d_cov_ss[user_StexEcha][i0Sample][j0Sample];
4673  }
4674  }
4675  }
4676 }
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
TEcnaNArrayD fMatMat
Int_t * fTagCovCss
Definition: TEcnaRun.h:435
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
Double_t *** fT3d_cov_ss
Definition: TEcnaRun.h:432
void TEcnaRun::TRootHFccMoStins ( )

Definition at line 4546 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

4546  {
4547  if (fTagHFccMoStins[0] == 1) {
4548  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
4549  for (Int_t j0StexStinEcna = 0; j0StexStinEcna < fEcal->MaxStinEcnaInStex(); j0StexStinEcna++) {
4550  gCnaRootFile->fCnaIndivResult->fMatMat(i0StexStinEcna, j0StexStinEcna) =
4551  fT2d_hfcc_mostins[i0StexStinEcna][j0StexStinEcna];
4552  }
4553  }
4554  }
4555 }
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
TEcnaNArrayD fMatMat
Double_t ** fT2d_hfcc_mostins
Definition: TEcnaRun.h:496
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
Int_t * fTagHFccMoStins
Definition: TEcnaRun.h:498
Int_t MaxStinEcnaInStex()
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::TRootHfCor ( )

Definition at line 4652 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

4652  {
4653  if (fTagHfCor[0] == 1) {
4654  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
4655  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
4656  gCnaRootFile->fCnaIndivResult->fMatMat(i0StexEcha, j0StexEcha) = fT2d_hf_cor[i0StexEcha][j0StexEcha];
4657  }
4658  }
4659  }
4660 }
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
TEcnaNArrayD fMatMat
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
Double_t ** fT2d_hf_cor
Definition: TEcnaRun.h:487
Int_t * fTagHfCor
Definition: TEcnaRun.h:489
Int_t MaxCrysEcnaInStex()
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::TRootHfCov ( )

Definition at line 4636 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

4636  {
4637  if (fTagHfCov[0] == 1) {
4638  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
4639  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
4640  gCnaRootFile->fCnaIndivResult->fMatMat(i0StexEcha, j0StexEcha) = fT2d_hf_cov[i0StexEcha][j0StexEcha];
4641  }
4642  }
4643  }
4644 }
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
TEcnaNArrayD fMatMat
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
Double_t ** fT2d_hf_cov
Definition: TEcnaRun.h:483
Int_t * fTagHfCov
Definition: TEcnaRun.h:485
Int_t MaxCrysEcnaInStex()
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::TRootHfn ( )

Definition at line 4760 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

4760  {
4761  if (fTagHfn[0] == 1) {
4762  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
4763  gCnaRootFile->fCnaIndivResult->fMatHis(0, j0StexEcha) = fT1d_evevt_of_sigsamp[j0StexEcha];
4764  }
4765  }
4766 }
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
Int_t * fTagHfn
Definition: TEcnaRun.h:464
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
TEcnaNArrayD fMatHis
Int_t MaxCrysEcnaInStex()
Double_t * fT1d_evevt_of_sigsamp
Definition: TEcnaRun.h:463
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::TRootLFccMoStins ( )

Definition at line 4528 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

4528  {
4529  if (fTagLFccMoStins[0] == 1) {
4530  for (Int_t i0StexStinEcna = 0; i0StexStinEcna < fEcal->MaxStinEcnaInStex(); i0StexStinEcna++) {
4531  for (Int_t j0StexStinEcna = 0; j0StexStinEcna < fEcal->MaxStinEcnaInStex(); j0StexStinEcna++) {
4532  gCnaRootFile->fCnaIndivResult->fMatMat(i0StexStinEcna, j0StexStinEcna) =
4533  fT2d_lfcc_mostins[i0StexStinEcna][j0StexStinEcna];
4534  }
4535  }
4536  }
4537 }
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
TEcnaNArrayD fMatMat
Int_t * fTagLFccMoStins
Definition: TEcnaRun.h:494
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
Int_t MaxStinEcnaInStex()
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
Double_t ** fT2d_lfcc_mostins
Definition: TEcnaRun.h:492
void TEcnaRun::TRootLfCor ( )

Definition at line 4620 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

4620  {
4621  if (fTagLfCor[0] == 1) {
4622  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
4623  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
4624  gCnaRootFile->fCnaIndivResult->fMatMat(i0StexEcha, j0StexEcha) = fT2d_lf_cor[i0StexEcha][j0StexEcha];
4625  }
4626  }
4627  }
4628 }
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
TEcnaNArrayD fMatMat
Int_t * fTagLfCor
Definition: TEcnaRun.h:480
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
Double_t ** fT2d_lf_cor
Definition: TEcnaRun.h:478
Int_t MaxCrysEcnaInStex()
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::TRootLfCov ( )

Definition at line 4604 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

4604  {
4605  if (fTagLfCov[0] == 1) {
4606  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
4607  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
4608  gCnaRootFile->fCnaIndivResult->fMatMat(i0StexEcha, j0StexEcha) = fT2d_lf_cov[i0StexEcha][j0StexEcha];
4609  }
4610  }
4611  }
4612 }
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
TEcnaNArrayD fMatMat
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
Int_t * fTagLfCov
Definition: TEcnaRun.h:476
Int_t MaxCrysEcnaInStex()
Double_t ** fT2d_lf_cov
Definition: TEcnaRun.h:474
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::TRootLfn ( )

Definition at line 4745 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

4745  {
4746  if (fTagLfn[0] == 1) {
4747  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
4748  gCnaRootFile->fCnaIndivResult->fMatHis(0, j0StexEcha) = fT1d_sigevt_of_evsamp[j0StexEcha];
4749  }
4750  }
4751 }
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
Double_t * fT1d_sigevt_of_evsamp
Definition: TEcnaRun.h:458
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
TEcnaNArrayD fMatHis
Int_t * fTagLfn
Definition: TEcnaRun.h:459
Int_t MaxCrysEcnaInStex()
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::TRootMeanCorss ( )

Definition at line 4730 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

4730  {
4731  if (fTagMeanCorss[0] == 1) {
4732  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
4733  gCnaRootFile->fCnaIndivResult->fMatHis(0, j0StexEcha) = fT1d_ev_cor_ss[j0StexEcha];
4734  }
4735  }
4736 }
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
TEcnaNArrayD fMatHis
Int_t MaxCrysEcnaInStex()
Int_t * fTagMeanCorss
Definition: TEcnaRun.h:454
Double_t * fT1d_ev_cor_ss
Definition: TEcnaRun.h:453
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::TRootMSp ( const Int_t &  argNbSampWrite)

Definition at line 4495 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

4495  {
4496  if (fTagMSp[0] == 1) {
4497  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
4498  for (Int_t i0Sample = 0; i0Sample < argNbSampWrite; i0Sample++) {
4499  gCnaRootFile->fCnaIndivResult->fMatHis(j0StexEcha, i0Sample) = fT2d_ev[j0StexEcha][i0Sample];
4500  }
4501  }
4502  }
4503 }
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
Double_t ** fT2d_ev
Definition: TEcnaRun.h:424
TEcnaNArrayD fMatHis
Int_t * fTagMSp
Definition: TEcnaRun.h:426
Int_t MaxCrysEcnaInStex()
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::TRootNbOfEvts ( const Int_t &  argNbSampWrite)

Definition at line 4458 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

4458  {
4459  if (fTagNbOfEvts[0] == 1) {
4460  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
4461  for (Int_t i0Sample = 0; i0Sample < argNbSampWrite; i0Sample++) {
4462  gCnaRootFile->fCnaIndivResult->fMatHis(j0StexEcha, i0Sample) = fT2d_NbOfEvts[j0StexEcha][i0Sample];
4463  }
4464  }
4465  }
4466 }
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
TEcnaNArrayD fMatHis
Int_t * fTagNbOfEvts
Definition: TEcnaRun.h:419
Int_t MaxCrysEcnaInStex()
Int_t ** fT2d_NbOfEvts
Definition: TEcnaRun.h:417
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::TRootPed ( )

Definition at line 4701 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

4701  {
4702  if (fTagPed[0] == 1) {
4703  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
4704  gCnaRootFile->fCnaIndivResult->fMatHis(0, j0StexEcha) = fT1d_ev_ev[j0StexEcha];
4705  }
4706  }
4707 }
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
Int_t * fTagPed
Definition: TEcnaRun.h:444
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
Double_t * fT1d_ev_ev
Definition: TEcnaRun.h:443
TEcnaNArrayD fMatHis
Int_t MaxCrysEcnaInStex()
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::TRootSigCorss ( )

Definition at line 4775 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

4775  {
4776  if (fTagSigCorss[0] == 1) {
4777  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
4778  gCnaRootFile->fCnaIndivResult->fMatHis(0, j0StexEcha) = fT1d_sig_cor_ss[j0StexEcha];
4779  }
4780  }
4781 }
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
Double_t * fT1d_sig_cor_ss
Definition: TEcnaRun.h:468
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
TEcnaNArrayD fMatHis
Int_t * fTagSigCorss
Definition: TEcnaRun.h:469
Int_t MaxCrysEcnaInStex()
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::TRootSSp ( const Int_t &  argNbSampWrite)

Definition at line 4511 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

4511  {
4512  if (fTagSSp[0] == 1) {
4513  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
4514  for (Int_t i0Sample = 0; i0Sample < argNbSampWrite; i0Sample++) {
4515  gCnaRootFile->fCnaIndivResult->fMatHis(j0StexEcha, i0Sample) = fT2d_sig[j0StexEcha][i0Sample];
4516  }
4517  }
4518  }
4519 }
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
Double_t ** fT2d_sig
Definition: TEcnaRun.h:428
Int_t * fTagSSp
Definition: TEcnaRun.h:430
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
TEcnaNArrayD fMatHis
Int_t MaxCrysEcnaInStex()
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::TRootStinNumbers ( )

Definition at line 4444 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

4444  {
4445  if (fTagStinNumbers[0] == 1) {
4446  for (Int_t j0StexStinEcna = 0; j0StexStinEcna < fEcal->MaxStinEcnaInStex(); j0StexStinEcna++) {
4447  gCnaRootFile->fCnaIndivResult->fMatHis(0, j0StexStinEcna) = fT1d_StexStinFromIndex[j0StexStinEcna];
4448  }
4449  }
4450 }
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
Int_t * fTagStinNumbers
Definition: TEcnaRun.h:422
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
TEcnaNArrayD fMatHis
Int_t MaxStinEcnaInStex()
Int_t * fT1d_StexStinFromIndex
Definition: TEcnaRun.h:421
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TEcnaRun::TRootTno ( )

Definition at line 4715 of file TEcnaRun.cc.

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

Referenced by WriteRootFile().

4715  {
4716  if (fTagTno[0] == 1) {
4717  for (Int_t j0StexEcha = 0; j0StexEcha < fEcal->MaxCrysEcnaInStex(); j0StexEcha++) {
4718  gCnaRootFile->fCnaIndivResult->fMatHis(0, j0StexEcha) = fT1d_evsamp_of_sigevt[j0StexEcha];
4719  }
4720  }
4721 }
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
Int_t * fTagTno
Definition: TEcnaRun.h:449
TEcnaNArrayD fMatHis
Double_t * fT1d_evsamp_of_sigevt
Definition: TEcnaRun.h:448
Int_t MaxCrysEcnaInStex()
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
Bool_t TEcnaRun::WriteNewRootFile ( const TString &  TypAna)

Definition at line 3389 of file TEcnaRun.cc.

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().

3389  {
3390  //Write a new Root file. File name automatically generated by fCnaWrite->fMakeResultsFileName()
3391  //called here.
3392 
3393  Bool_t ok_write = kFALSE;
3394 
3395  fCnaWrite->RegisterFileParameters(TypAna.Data(),
3401  fFileHeader->fStex,
3406 
3407  fCnaWrite->fMakeResultsFileName(); // set fRootFileName, fRootFileNameShort
3410 
3411  const Text_t* FileShortName = (const Text_t*)fNewRootFileNameShort.Data();
3412 
3414  std::cout << "*TEcnaRun::WriteNewRootFile()> Results are going to be written in the ROOT file: " << std::endl
3415  << " " << fNewRootFileNameShort.Data() << std::endl;
3416  }
3417 
3418  ok_write = WriteRootFile(FileShortName, fNbSampForCalc);
3419 
3420  return ok_write;
3421 }
Int_t fStex
Definition: TEcnaHeader.h:53
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
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
Int_t fReqNbOfEvts
Definition: TEcnaHeader.h:52
TString fStopDate
Definition: TEcnaHeader.h:58
Bool_t WriteRootFile()
Definition: TEcnaRun.cc:3339
Int_t fNbSampForCalc
Definition: TEcnaRun.h:406
Int_t fFlagPrint
Definition: TEcnaRun.h:507
TString fStartDate
Definition: TEcnaHeader.h:57
Int_t fFirstReqEvtNumber
Definition: TEcnaHeader.h:50
TString fNewRootFileNameShort
Definition: TEcnaRun.h:399
time_t fStartTime
Definition: TEcnaHeader.h:55
time_t fStopTime
Definition: TEcnaHeader.h:56
Int_t fLastReqEvtNumber
Definition: TEcnaHeader.h:51
tuple cout
Definition: gather_cfg.py:144
Int_t fRunNumber
Definition: TEcnaHeader.h:49
TString GetRootFileNameShort()
Definition: TEcnaWrite.cc:389
TString fNewRootFileName
Definition: TEcnaRun.h:398
void fMakeResultsFileName()
Definition: TEcnaWrite.cc:631
TString GetRootFileName()
Definition: TEcnaWrite.cc:388
TEcnaWrite * fCnaWrite
Definition: TEcnaRun.h:386
Bool_t TEcnaRun::WriteRootFile ( )

Definition at line 3339 of file TEcnaRun.cc.

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().

3339  {
3340  //Write the Root file.
3341  //File name automatically generated by fCnaWrite->fMakeResultsFileName()
3342  //previously called in GetReadyToCompute().
3343 
3344  Bool_t ok_write = kFALSE;
3345 
3346  //============================= check number of found events
3347  Int_t nCountEvts = 0;
3348 
3349  for (Int_t i0StexEcha = 0; i0StexEcha < fEcal->MaxCrysEcnaInStex(); i0StexEcha++) {
3350  for (Int_t i0Sample = 0; i0Sample < fFileHeader->fNbOfSamples; i0Sample++) {
3351  nCountEvts += fT2d_NbOfEvts[i0StexEcha][i0Sample];
3352  }
3353  }
3354 
3355  if (nCountEvts <= 0) {
3356  //============== no write if no event found
3357  std::cout << "!TEcnaRun::WriteRootFile()> No event found for file " << fCnaWrite->GetRootFileNameShort().Data()
3358  << ". File will not be written." << std::endl;
3359  ok_write = kTRUE;
3360  } else {
3362  std::cout << "*TEcnaRun::WriteRootFile()> Results are going to be written in the ROOT file: " << std::endl
3363  << " " << fCnaWrite->GetRootFileName().Data() << std::endl;
3364  }
3365 
3366  const Text_t* FileShortName = (const Text_t*)fCnaWrite->GetRootFileNameShort().Data();
3367  ok_write = WriteRootFile(FileShortName, fFileHeader->fNbOfSamples);
3368 
3369  if (ok_write == kTRUE) {
3371  std::cout << "*TEcnaRun::WriteRootFile()> Writing OK for file " << fCnaWrite->GetRootFileName().Data()
3372  << std::endl;
3373  }
3374  } else {
3375  std::cout << "!TEcnaRun::WriteRootFile()> Writing FAILLED for file " << fCnaWrite->GetRootFileName().Data()
3376  << fTTBELL << std::endl;
3377  }
3378  }
3379  return ok_write;
3380 } // end of WriteRootFile()
Int_t fCodePrintNoComment
Definition: TEcnaRun.h:508
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
Int_t fNbOfSamples
Definition: TEcnaHeader.h:48
Bool_t WriteRootFile()
Definition: TEcnaRun.cc:3339
Int_t fFlagPrint
Definition: TEcnaRun.h:507
Int_t MaxCrysEcnaInStex()
tuple cout
Definition: gather_cfg.py:144
TString GetRootFileNameShort()
Definition: TEcnaWrite.cc:389
Int_t ** fT2d_NbOfEvts
Definition: TEcnaRun.h:417
TString GetRootFileName()
Definition: TEcnaWrite.cc:388
TEcnaWrite * fCnaWrite
Definition: TEcnaRun.h:386
TString fTTBELL
Definition: TEcnaRun.h:374
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
Bool_t TEcnaRun::WriteRootFile ( const Text_t *  name,
Int_t &  argNbSampWrite 
)

Definition at line 3437 of file TEcnaRun.cc.

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, cmsHarvester::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(), mergeVDriftHistosByStation::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().

3437  {
3438  //Write the Root file
3439 
3440  const Text_t* file_name = name;
3441 
3442  Bool_t ok_write = kFALSE;
3443 
3444  if (fOpenRootFile) {
3445  std::cout << "!TEcnaRun::WriteRootFile(...) *** ERROR ***> Writing on file already open." << fTTBELL << std::endl;
3446  } else {
3447  // List of the different element types and associated parameters as ordered in the ROOT file (smaller -> larger)
3448  // ==========
3449  //
3450  // WARNING *** HERE SIZES ARE THESE FOR THE BARREL (1700 Xtals) and for 10 samples ***
3451  //
3452  // Nb of Type of element Type Type Size Comment
3453  // elements Number Name
3454  //
3455  // 1 fMatHis(1,StexStin) ( 0) cTypNumbers 1*( 1, 68) = 68
3456 
3457  // 1 fMatHis(1,StexStin) (12) cTypAvPed 1*( 1, 68) = 68
3458  // 1 fMatHis(1,StexStin) ( 3) cTypAvTno 1*( 1, 68) = 68
3459  // 1 fMatHis(1,StexStin) ( 4) cTypAvLfn 1*( 1, 68) = 68
3460  // 1 fMatHis(1,StexStin) ( 5) cTypAvHfn 1*( 1, 68) = 68
3461  // 1 fMatHis(1,StexStin) (13) cTypAvMeanCorss 1*( 1, 68) = 68
3462  // 1 fMatHis(1,StexStin) (14) cTypAvSigCorss 1*( 1, 68) = 68
3463 
3464  // 1 fMatHis(1,StexEcha) (16) cTypPed 1*( 1,1700) = 1 700
3465  // 1 fMatHis(1,StexEcha) (17) cTypTno 1*( 1,1700) = 1 700
3466  // 1 fMatHis(1,StexEcha) (10) cTypMeanCorss 1*( 1,1700) = 1 700
3467  // 1 fMatHis(1,StexEcha) (18) cTypLfn 1*( 1,1700) = 1 700
3468  // 1 fMatHis(1,StexEcha) (19) cTypHfn 1*( 1,1700) = 1 700
3469  // 1 fMatHis(1,StexEcha) (11) cTypSigCorss 1*( 1,1700) = 1 700
3470 
3471  // 1 fMatMat(Stin,Stin) (23) cTypLFccMoStins 1*( 68, 68) = 4 624
3472  // 1 fMatMat(Stin,Stin) (24) cTypHFccMoStins 1*( 68, 68) = 4 624
3473 
3474  // 1 fMatHis(StexEcha, sample) (15) cTypNbOfEvts 1*(1700, 10) = 17 000
3475  // 1 fMatHis(StexEcha, sample) ( 1) cTypMSp 1*(1700, 10) = 17 000
3476  // 1 fMatHis(StexEcha, sample) ( 2) cTypSSp 1*(1700, 10) = 17 000
3477 
3478  // StexEcha fMatMat(sample, sample) ( 8) cTypCovCss 1700*( 10, 10) = 170 000
3479  // StexEcha fMatMat(sample, sample ( 9) cTypCorCss 1700*( 10, 10) = 170 000
3480 
3481  // StexEcha fMatHis(sample, bin_evt) (20) cTypAdcEvt, 1700*( 10, 150) = 2 550 000
3482 
3483  // 1 fMatMat(StexEcha, StexEcha) (21) cTypLfCov 1*(1700,1700) = 2 890 000
3484  // 1 fMatMat(StexEcha, StexEcha) (22) cTypLfCor 1*(1700,1700) = 2 890 000
3485 
3486  // 1 fMatMat(StexEcha, StexEcha) ( 6) cTypHfCov 1*(1700,1700) = 2 890 000 // (06/05/08)
3487  // 1 fMatMat(StexEcha, StexEcha) ( 7) cTypHfCor 1*(1700,1700) = 2 890 000 // (06/05/08)
3488 
3489  //......................................................................................................
3490 
3491  OpenRootFile(file_name, "RECREATE");
3492 
3493  TString typ_name = "?";
3494  Int_t v_nb_times = 0;
3495  Int_t v_dim_one = 0;
3496  Int_t v_dim_two = 0;
3497  Int_t v_size = 0;
3498  Int_t v_tot = 0;
3499  Int_t v_tot_writ = 0;
3500 
3501  //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3502  //
3503  // ===> no general method and no translation to TEcnaWrite
3504  // because the fT1d.. and fT2d... arrays
3505  // are attributes of TEcnaRun (calls to the "TRootXXXX" methods)
3506  //
3507  //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3508 
3509  //-------------------------- Stin numbers
3510  // 1 fMatHis(1,Stin) ( 0) cTypNumbers 1*( 1, 68) = 68
3511 
3512  Int_t MaxCar = fgMaxCar;
3513  typ_name.Resize(MaxCar);
3514  typ_name = "StinNumbers";
3515  v_nb_times = fFileHeader->fStinNumbersCalc;
3516  v_dim_one = 1;
3517  v_dim_two = fEcal->MaxStinEcnaInStex();
3518  v_size = v_nb_times * v_dim_one * v_dim_two;
3519  v_tot += v_size;
3520 
3522  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3523  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3524  << v_size;
3525  }
3526 
3527  for (Int_t i = 0; i < v_nb_times; i++) {
3528  if (fTagStinNumbers[0] == 1) {
3531  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
3533  TRootStinNumbers();
3534  gCnaRootFile->fCnaResultsTree->Fill();
3535  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
3536  std::cout << " => WRITTEN ON FILE ";
3537  v_tot_writ += v_size;
3538  }
3539  }
3540  }
3542  std::cout << std::endl;
3543  }
3544 
3545  //-------------------------- Average Pedestals (1 value per Stin)
3546  // 1 fMatHis(1, StexStin) (12) cTypAvPed 1*(1, 68) = 68
3547 
3548  MaxCar = fgMaxCar;
3549  typ_name.Resize(MaxCar);
3550  typ_name = "AvPed";
3551  v_nb_times = fFileHeader->fAvPedCalc;
3552  v_dim_one = 1;
3553  v_dim_two = fEcal->MaxStinEcnaInStex();
3554  v_size = v_nb_times * v_dim_one * v_dim_two;
3555  v_tot += v_size;
3556 
3558  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3559  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3560  << v_size;
3561  }
3562 
3563  for (Int_t i = 0; i < v_nb_times; i++) {
3564  if (fTagAvPed[0] == 1) {
3567  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
3569  TRootAvPed();
3570  gCnaRootFile->fCnaResultsTree->Fill();
3571  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
3572  std::cout << " => WRITTEN ON FILE ";
3573  v_tot_writ += v_size;
3574  }
3575  }
3576  }
3578  std::cout << std::endl;
3579  }
3580 
3581  //-------------------------- Average Total noise
3582  // StexEcha fMatHis(1, StexStin) ( 3) cTypAvTno 1*(1, 68) = 68
3583 
3584  MaxCar = fgMaxCar;
3585  typ_name.Resize(MaxCar);
3586  typ_name = "AvTno";
3587  v_nb_times = fFileHeader->fAvTnoCalc;
3588  v_dim_one = 1;
3589  v_dim_two = fEcal->MaxStinEcnaInStex();
3590  v_size = v_nb_times * v_dim_one * v_dim_two;
3591  v_tot += v_size;
3592 
3594  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3595  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3596  << v_size;
3597  }
3598 
3599  for (Int_t i = 0; i < v_nb_times; i++) {
3600  if (fTagAvTno[0] == 1) {
3603  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
3605  TRootAvTno();
3606  gCnaRootFile->fCnaResultsTree->Fill();
3607  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
3608  std::cout << " => WRITTEN ON FILE ";
3609  v_tot_writ += v_size;
3610  }
3611  }
3612  }
3614  std::cout << std::endl;
3615  }
3616 
3617  //-------------------------- Average Low frequency noise
3618  // 1 fMatHis(1, StexStin) ( 4) cTypAvLfn 1*(1, 68) = 68
3619 
3620  MaxCar = fgMaxCar;
3621  typ_name.Resize(MaxCar);
3622  typ_name = "AvLfn";
3623  v_nb_times = fFileHeader->fAvLfnCalc;
3624  v_dim_one = 1;
3625  v_dim_two = fEcal->MaxStinEcnaInStex();
3626  v_size = v_nb_times * v_dim_one * v_dim_two;
3627  v_tot += v_size;
3628 
3630  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3631  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3632  << v_size;
3633  }
3634 
3635  for (Int_t i = 0; i < v_nb_times; i++) {
3636  if (fTagAvLfn[0] == 1) {
3639  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
3641  TRootAvLfn();
3642  gCnaRootFile->fCnaResultsTree->Fill();
3643  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
3644  std::cout << " => WRITTEN ON FILE ";
3645  v_tot_writ += v_size;
3646  }
3647  }
3648  }
3650  std::cout << std::endl;
3651  }
3652 
3653  //-------------------------- Average High frequency noise
3654  // 1 fMatHis(1, StexStin) ( 5) cTypAvHfn 1*(1, 68) = 68
3655 
3656  MaxCar = fgMaxCar;
3657  typ_name.Resize(MaxCar);
3658  typ_name = "AvHfn";
3659  v_nb_times = fFileHeader->fAvHfnCalc;
3660  v_dim_one = 1;
3661  v_dim_two = fEcal->MaxStinEcnaInStex();
3662  v_size = v_nb_times * v_dim_one * v_dim_two;
3663  v_tot += v_size;
3664 
3666  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3667  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3668  << v_size;
3669  }
3670 
3671  for (Int_t i = 0; i < v_nb_times; i++) {
3672  if (fTagAvHfn[0] == 1) {
3675  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
3677  TRootAvHfn();
3678  gCnaRootFile->fCnaResultsTree->Fill();
3679  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
3680  std::cout << " => WRITTEN ON FILE ";
3681  v_tot_writ += v_size;
3682  }
3683  }
3684  }
3686  std::cout << std::endl;
3687  }
3688 
3689  //-------------------------- Average mean cor(s,s)
3690  // 1 fMatHis(1, StexStin) (13) cTypAvMeanCorss 1*(1, 68) = 68
3691 
3692  MaxCar = fgMaxCar;
3693  typ_name.Resize(MaxCar);
3694  typ_name = "AvMeanCorss";
3695  v_nb_times = fFileHeader->fAvMeanCorssCalc;
3696  v_dim_one = 1;
3697  v_dim_two = fEcal->MaxStinEcnaInStex();
3698  v_size = v_nb_times * v_dim_one * v_dim_two;
3699  v_tot += v_size;
3700 
3702  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3703  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3704  << v_size;
3705  }
3706 
3707  for (Int_t i = 0; i < v_nb_times; i++) {
3708  if (fTagAvMeanCorss[0] == 1) {
3711  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
3713  TRootAvEvCorss();
3714  gCnaRootFile->fCnaResultsTree->Fill();
3715  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
3716  std::cout << " => WRITTEN ON FILE ";
3717  v_tot_writ += v_size;
3718  }
3719  }
3720  }
3722  std::cout << std::endl;
3723  }
3724 
3725  //-------------------------- Average sigma of cor(s,s)
3726  // 1 fMatHis(1, StexStin) (14) cTypAvSigCorss 1*(1, 68) = 68
3727 
3728  MaxCar = fgMaxCar;
3729  typ_name.Resize(MaxCar);
3730  typ_name = "AvSigCorss";
3731  v_nb_times = fFileHeader->fAvSigCorssCalc;
3732  v_dim_one = 1;
3733  v_dim_two = fEcal->MaxStinEcnaInStex();
3734  v_size = v_nb_times * v_dim_one * v_dim_two;
3735  v_tot += v_size;
3736 
3738  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3739  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3740  << v_size;
3741  }
3742 
3743  for (Int_t i = 0; i < v_nb_times; i++) {
3744  if (fTagAvSigCorss[0] == 1) {
3747  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
3749  TRootAvSigCorss();
3750  gCnaRootFile->fCnaResultsTree->Fill();
3751  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
3752  std::cout << " => WRITTEN ON FILE ";
3753  v_tot_writ += v_size;
3754  }
3755  }
3756  }
3758  std::cout << std::endl;
3759  }
3760 
3761  //-------------------------- Expectation values of the expectation values of the samples (pedestals)
3762  // 1 fMatHis(1,StexEcha) (16) cTypPed 1*( 1,1700) = 1 700
3763 
3764  MaxCar = fgMaxCar;
3765  typ_name.Resize(MaxCar);
3766  typ_name = "Ped";
3767  v_nb_times = fFileHeader->fPedCalc;
3768  v_dim_one = 1;
3769  v_dim_two = fEcal->MaxCrysEcnaInStex();
3770  v_size = v_nb_times * v_dim_one * v_dim_two;
3771  v_tot += v_size;
3772 
3774  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3775  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3776  << v_size;
3777  }
3778 
3779  for (Int_t i = 0; i < v_nb_times; i++) {
3780  if (fTagPed[0] == 1) {
3783  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
3785  TRootPed();
3786  gCnaRootFile->fCnaResultsTree->Fill();
3787  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
3788  std::cout << " => WRITTEN ON FILE ";
3789  v_tot_writ += v_size;
3790  }
3791  }
3792  }
3794  std::cout << std::endl;
3795  }
3796 
3797  //-------------------------- Expectation values of the sigmas the samples
3798  // 1 fMatHis(1,StexEcha) (17) cTypTno 1*( 1,1700) = 1 700
3799 
3800  MaxCar = fgMaxCar;
3801  typ_name.Resize(MaxCar);
3802  typ_name = "Tno";
3803  v_nb_times = fFileHeader->fTnoCalc;
3804  v_dim_one = 1;
3805  v_dim_two = fEcal->MaxCrysEcnaInStex();
3806  v_size = v_nb_times * v_dim_one * v_dim_two;
3807  v_tot += v_size;
3808 
3810  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3811  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3812  << v_size;
3813  }
3814 
3815  for (Int_t i = 0; i < v_nb_times; i++) {
3816  if (fTagTno[0] == 1) {
3819  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
3821  TRootTno();
3822  gCnaRootFile->fCnaResultsTree->Fill();
3823  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
3824  std::cout << " => WRITTEN ON FILE ";
3825  v_tot_writ += v_size;
3826  }
3827  }
3828  }
3830  std::cout << std::endl;
3831  }
3832 
3833  //-------------------------- Expectation values of the correlations between the samples
3834  // 1 fMatHis(1,StexEcha) (10) cTypMeanCorss 1*( 1,1700) = 1 700
3835 
3836  MaxCar = fgMaxCar;
3837  typ_name.Resize(MaxCar);
3838  typ_name = "MeanCorss";
3839  v_nb_times = fFileHeader->fMeanCorssCalc;
3840  v_dim_one = 1;
3841  v_dim_two = fEcal->MaxCrysEcnaInStex();
3842  v_size = v_nb_times * v_dim_one * v_dim_two;
3843  v_tot += v_size;
3844 
3846  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3847  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3848  << v_size;
3849  }
3850 
3851  for (Int_t i = 0; i < v_nb_times; i++) {
3852  if (fTagMeanCorss[0] == 1) {
3855  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
3857  TRootMeanCorss();
3858  gCnaRootFile->fCnaResultsTree->Fill();
3859  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
3860  std::cout << " => WRITTEN ON FILE ";
3861  v_tot_writ += v_size;
3862  }
3863  }
3864  }
3866  std::cout << std::endl;
3867  }
3868 
3869  //-------------------------- Sigmas of the expectation values of the samples
3870  // 1 fMatHis(1,StexEcha) (18) cTypLfn 1*( 1,1700) = 1 700
3871 
3872  MaxCar = fgMaxCar;
3873  typ_name.Resize(MaxCar);
3874  typ_name = "Lfn";
3875  v_nb_times = fFileHeader->fLfnCalc;
3876  v_dim_one = 1;
3877  v_dim_two = fEcal->MaxCrysEcnaInStex();
3878  v_size = v_nb_times * v_dim_one * v_dim_two;
3879  v_tot += v_size;
3880 
3882  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3883  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3884  << v_size;
3885  }
3886 
3887  for (Int_t i = 0; i < v_nb_times; i++) {
3888  if (fTagLfn[0] == 1) {
3891  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
3893  TRootLfn();
3894  gCnaRootFile->fCnaResultsTree->Fill();
3895  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
3896  std::cout << " => WRITTEN ON FILE ";
3897  v_tot_writ += v_size;
3898  }
3899  }
3900  }
3902  std::cout << std::endl;
3903  }
3904 
3905  //-------------------------- Sigmas of the sigmas of the samples
3906  // 1 fMatHis(1,StexEcha) (19) cTypHfn 1*( 1,1700) = 1 700
3907 
3908  MaxCar = fgMaxCar;
3909  typ_name.Resize(MaxCar);
3910  typ_name = "Hfn";
3911  v_nb_times = fFileHeader->fHfnCalc;
3912  v_dim_one = 1;
3913  v_dim_two = fEcal->MaxCrysEcnaInStex();
3914  v_size = v_nb_times * v_dim_one * v_dim_two;
3915  v_tot += v_size;
3916 
3918  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3919  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3920  << v_size;
3921  }
3922 
3923  for (Int_t i = 0; i < v_nb_times; i++) {
3924  if (fTagHfn[0] == 1) {
3927  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
3929  TRootHfn();
3930  gCnaRootFile->fCnaResultsTree->Fill();
3931  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
3932  std::cout << " => WRITTEN ON FILE ";
3933  v_tot_writ += v_size;
3934  }
3935  }
3936  }
3938  std::cout << std::endl;
3939  }
3940 
3941  //-------------------------- Sigmas of the correlations between the samples
3942  // 1 fMatHis(1,StexEcha) (11) cTypSigCorss 1*( 1,1700) = 1 700
3943 
3944  MaxCar = fgMaxCar;
3945  typ_name.Resize(MaxCar);
3946  typ_name = "SigCorss";
3947  v_nb_times = fFileHeader->fSigCorssCalc;
3948  v_dim_one = 1;
3949  v_dim_two = fEcal->MaxCrysEcnaInStex();
3950  v_size = v_nb_times * v_dim_one * v_dim_two;
3951  v_tot += v_size;
3952 
3954  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3955  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3956  << v_size;
3957  }
3958 
3959  for (Int_t i = 0; i < v_nb_times; i++) {
3960  if (fTagSigCorss[0] == 1) {
3963  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
3965  TRootSigCorss();
3966  gCnaRootFile->fCnaResultsTree->Fill();
3967  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
3968  std::cout << " => WRITTEN ON FILE ";
3969  v_tot_writ += v_size;
3970  }
3971  }
3972  }
3974  std::cout << std::endl;
3975  }
3976 
3977  //----- Mean Covariances between StexEchas (averaged over samples) for all (Stin_X,Stin_Y)
3978  // 1 fMatMat(Stin,Stin) (23) cTypLFccMoStins 1*( 68, 68) = 4 624
3979 
3980  MaxCar = fgMaxCar;
3981  typ_name.Resize(MaxCar);
3982  typ_name = "LFccMoStins";
3983  v_nb_times = fFileHeader->fLFccMoStinsCalc;
3984  v_dim_one = fEcal->MaxStinEcnaInStex();
3985  v_dim_two = fEcal->MaxStinEcnaInStex();
3986  v_size = v_nb_times * v_dim_one * v_dim_two;
3987  v_tot += v_size;
3988 
3990  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
3991  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
3992  << v_size;
3993  }
3994 
3995  for (Int_t i = 0; i < v_nb_times; i++) {
3996  if (fTagLFccMoStins[0] == 1) {
3999  gCnaRootFile->fCnaIndivResult->SetSizeMat(v_dim_one, v_dim_two);
4001  TRootLFccMoStins();
4002  gCnaRootFile->fCnaResultsTree->Fill();
4003  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
4004  std::cout << " => WRITTEN ON FILE ";
4005  v_tot_writ += v_size;
4006  }
4007  }
4008  }
4010  std::cout << std::endl;
4011  }
4012 
4013  //----- Mean Correlations between StexEchas (averaged over samples) for all (Stin_X,Stin_Y)
4014  // 1 fMatMat(Stin,Stin) (24) cTypHFccMoStins 1*( 68, 68) = 4 624
4015 
4016  MaxCar = fgMaxCar;
4017  typ_name.Resize(MaxCar);
4018  typ_name = "HFccMoStins";
4019  v_nb_times = fFileHeader->fHFccMoStinsCalc;
4020  v_dim_one = fEcal->MaxStinEcnaInStex();
4021  v_dim_two = fEcal->MaxStinEcnaInStex();
4022  v_size = v_nb_times * v_dim_one * v_dim_two;
4023  v_tot += v_size;
4024 
4026  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
4027  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
4028  << v_size;
4029  }
4030 
4031  for (Int_t i = 0; i < v_nb_times; i++) {
4032  if (fTagHFccMoStins[0] == 1) {
4035  gCnaRootFile->fCnaIndivResult->SetSizeMat(v_dim_one, v_dim_two);
4037  TRootHFccMoStins();
4038  gCnaRootFile->fCnaResultsTree->Fill();
4039  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
4040  std::cout << " => WRITTEN ON FILE ";
4041  v_tot_writ += v_size;
4042  }
4043  }
4044  }
4046  std::cout << std::endl;
4047  }
4048 
4049  //-------------------------- Numbers of found events (NbOfEvts)
4050  // 1 fMatHis(StexEcha, sample) (15) cTypNbOfEvts 1*(1700, 10) = 17 000
4051 
4052  MaxCar = fgMaxCar;
4053  typ_name.Resize(MaxCar);
4054  typ_name = "NbOfEvts";
4055  v_nb_times = fFileHeader->fNbOfEvtsCalc;
4056  v_dim_one = fEcal->MaxCrysEcnaInStex();
4057  v_dim_two = argNbSampWrite;
4058  v_size = v_nb_times * v_dim_one * v_dim_two;
4059  v_tot += v_size;
4060 
4062  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
4063  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
4064  << v_size;
4065  }
4066 
4067  for (Int_t i = 0; i < v_nb_times; i++) {
4068  if (fTagNbOfEvts[0] == 1) {
4071  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
4073  TRootNbOfEvts(argNbSampWrite);
4074  gCnaRootFile->fCnaResultsTree->Fill();
4075  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
4076  std::cout << " => WRITTEN ON FILE ";
4077  v_tot_writ += v_size;
4078  }
4079  }
4080  }
4082  std::cout << std::endl;
4083  }
4084 
4085  //-------------------------- Expectation values of the samples
4086  // 1 fMatHis(StexEcha, sample) ( 1) cTypMSp 1*(1700, 10) = 17 000
4087 
4088  MaxCar = fgMaxCar;
4089  typ_name.Resize(MaxCar);
4090  typ_name = "MSp";
4091  v_nb_times = fFileHeader->fMSpCalc;
4092  v_dim_one = fEcal->MaxCrysEcnaInStex();
4093  v_dim_two = argNbSampWrite;
4094  v_size = v_nb_times * v_dim_one * v_dim_two;
4095  v_tot += v_size;
4096 
4098  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
4099  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
4100  << v_size;
4101  }
4102 
4103  for (Int_t i = 0; i < v_nb_times; i++) {
4104  if (fTagMSp[0] == 1) {
4107  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
4109  TRootMSp(argNbSampWrite);
4110  gCnaRootFile->fCnaResultsTree->Fill();
4111  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
4112  std::cout << " => WRITTEN ON FILE ";
4113  v_tot_writ += v_size;
4114  }
4115  }
4116  }
4118  std::cout << std::endl;
4119  }
4120 
4121  //-------------------------- Sigmas of the samples
4122  // 1 fMatHis(StexEcha, sample) ( 2) cTypSSp 1*(1700, 10) = 17 000
4123 
4124  MaxCar = fgMaxCar;
4125  typ_name.Resize(MaxCar);
4126  typ_name = "SSp";
4127  v_nb_times = fFileHeader->fSSpCalc;
4128  v_dim_one = fEcal->MaxCrysEcnaInStex();
4129  v_dim_two = argNbSampWrite;
4130  v_size = v_nb_times * v_dim_one * v_dim_two;
4131  v_tot += v_size;
4132 
4134  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
4135  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
4136  << v_size;
4137  }
4138 
4139  for (Int_t i = 0; i < v_nb_times; i++) {
4140  if (fTagSSp[0] == 1) {
4143  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
4145  TRootSSp(argNbSampWrite);
4146  gCnaRootFile->fCnaResultsTree->Fill();
4147  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
4148  std::cout << " => WRITTEN ON FILE ";
4149  v_tot_writ += v_size;
4150  }
4151  }
4152  }
4154  std::cout << std::endl;
4155  }
4156 
4157  //-------------------------- Covariances between samples
4158 
4159  // StexEcha fMatMat(sample, sample) ( 8) cTypCovCss 1700*( 10, 10) = 170 000
4160 
4161  MaxCar = fgMaxCar;
4162  typ_name.Resize(MaxCar);
4163  typ_name = "CovCss";
4164  v_nb_times = fFileHeader->fCovCssCalc;
4165  v_dim_one = argNbSampWrite;
4166  v_dim_two = argNbSampWrite;
4167  v_size = v_nb_times * v_dim_one * v_dim_two;
4168  v_tot += v_size;
4169 
4171  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
4172  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
4173  << v_size;
4174  }
4175 
4176  for (Int_t i0StexEcha = 0; i0StexEcha < v_nb_times; i0StexEcha++) {
4177  if (fTagCovCss[i0StexEcha] == 1) {
4179  gCnaRootFile->fCnaIndivResult->fIthElement = i0StexEcha;
4180  gCnaRootFile->fCnaIndivResult->SetSizeMat(v_dim_one, v_dim_two);
4182  TRootCovCss(i0StexEcha, argNbSampWrite);
4183  gCnaRootFile->fCnaResultsTree->Fill();
4184  if (i0StexEcha == 0 && fFlagPrint == fCodePrintAllComments) {
4185  std::cout << " => WRITTEN ON FILE ";
4186  v_tot_writ += v_size;
4187  }
4188  }
4189  }
4191  std::cout << std::endl;
4192  }
4193 
4194  //-------------------------- Correlations between samples
4195  // StexEcha fMatMat(sample, sample) ( 9) cTypCorCss 1700*( 10, 10) = 170 000
4196 
4197  MaxCar = fgMaxCar;
4198  typ_name.Resize(MaxCar);
4199  typ_name = "CorCss";
4200  v_nb_times = fFileHeader->fCorCssCalc;
4201  v_dim_one = argNbSampWrite;
4202  v_dim_two = argNbSampWrite;
4203  v_size = v_nb_times * v_dim_one * v_dim_two;
4204  v_tot += v_size;
4205 
4207  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
4208  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
4209  << v_size;
4210  }
4211 
4212  for (Int_t i0StexEcha = 0; i0StexEcha < v_nb_times; i0StexEcha++) {
4213  if (fTagCorCss[i0StexEcha] == 1) {
4215  gCnaRootFile->fCnaIndivResult->fIthElement = i0StexEcha;
4216  gCnaRootFile->fCnaIndivResult->SetSizeMat(v_dim_one, v_dim_two);
4218  TRootCorCss(i0StexEcha, argNbSampWrite);
4219  gCnaRootFile->fCnaResultsTree->Fill();
4220  if (i0StexEcha == 0 && fFlagPrint == fCodePrintAllComments) {
4221  std::cout << " => WRITTEN ON FILE ";
4222  v_tot_writ += v_size;
4223  }
4224  }
4225  }
4227  std::cout << std::endl;
4228  }
4229 
4230  //-------------------------- Samples as a function of event = events distributions
4231  // StexEcha fMatHis(sample, bins) (20) cTypAdcEvt, 1700*( 10, 150) = 2 550 000
4232 
4233  MaxCar = fgMaxCar;
4234  typ_name.Resize(MaxCar);
4235  typ_name = "AdcEvt";
4236  v_nb_times = fFileHeader->fAdcEvtCalc;
4237  v_dim_one = argNbSampWrite;
4238  v_dim_two = fFileHeader->fReqNbOfEvts;
4239  v_size = v_nb_times * v_dim_one * v_dim_two;
4240  v_tot += v_size;
4241 
4243  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
4244  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
4245  << v_size;
4246  }
4247 
4248  for (Int_t i0StexEcha = 0; i0StexEcha < v_nb_times; i0StexEcha++) {
4249  if (fTagAdcEvt[i0StexEcha] == 1) {
4251  gCnaRootFile->fCnaIndivResult->fIthElement = i0StexEcha;
4252  gCnaRootFile->fCnaIndivResult->SetSizeHis(v_dim_one, v_dim_two);
4254  TRootAdcEvt(i0StexEcha, argNbSampWrite);
4255  gCnaRootFile->fCnaResultsTree->Fill();
4256  if (i0StexEcha == 0 && fFlagPrint == fCodePrintAllComments) {
4257  std::cout << " => WRITTEN ON FILE ";
4258  v_tot_writ += v_size;
4259  }
4260  }
4261  }
4263  std::cout << std::endl;
4264  }
4265 
4266  //-------------------------- Low Frequency Covariances between StexEchas
4267  // sample fMatMat(StexEcha, StexEcha) (21) cTypLfCov 1*(1700,1700) = 2 890 000
4268 
4269  MaxCar = fgMaxCar;
4270  typ_name.Resize(MaxCar);
4271  typ_name = "LfCov";
4272  v_nb_times = fFileHeader->fLfCovCalc;
4273  v_dim_one = fEcal->MaxCrysEcnaInStex();
4274  v_dim_two = fEcal->MaxCrysEcnaInStex();
4275  v_size = v_nb_times * v_dim_one * v_dim_two;
4276  v_tot += v_size;
4277 
4279  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
4280  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
4281  << v_size;
4282  }
4283 
4284  for (Int_t i = 0; i < v_nb_times; i++) { //=================================== Record type EB
4285  if (fTagLfCov[0] == 1) {
4288  gCnaRootFile->fCnaIndivResult->SetSizeMat(v_dim_one, v_dim_two);
4290  TRootLfCov();
4291  gCnaRootFile->fCnaResultsTree->Fill();
4292  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
4293  std::cout << " => WRITTEN ON FILE ";
4294  v_tot_writ += v_size;
4295  }
4296  }
4297  }
4299  std::cout << std::endl;
4300  }
4301 
4302  //-------------------------- Low Frequency Correlations between StexEchas
4303  // sample fMatMat(StexEcha, StexEcha) (22) cTypLfCor 1*(1700,1700) = 2 890 000
4304 
4305  MaxCar = fgMaxCar;
4306  typ_name.Resize(MaxCar);
4307  typ_name = "LfCor";
4308  v_nb_times = fFileHeader->fLfCorCalc;
4309  v_dim_one = fEcal->MaxCrysEcnaInStex();
4310  v_dim_two = fEcal->MaxCrysEcnaInStex();
4311  v_size = v_nb_times * v_dim_one * v_dim_two;
4312  v_tot += v_size;
4313 
4315  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
4316  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
4317  << v_size;
4318  }
4319 
4320  for (Int_t i = 0; i < v_nb_times; i++) {
4321  if (fTagLfCor[0] == 1) {
4324  gCnaRootFile->fCnaIndivResult->SetSizeMat(v_dim_one, v_dim_two);
4326  TRootLfCor();
4327  gCnaRootFile->fCnaResultsTree->Fill();
4328  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
4329  std::cout << " => WRITTEN ON FILE ";
4330  v_tot_writ += v_size;
4331  }
4332  }
4333  }
4335  std::cout << std::endl;
4336  }
4337 
4338  //-------------------------- High Frequency Covariances between StexEchas
4339  // sample fMatMat(StexEcha, StexEcha) (6) cTypHfCov 1*(1700,1700) = 2 890 000
4340 
4341  MaxCar = fgMaxCar;
4342  typ_name.Resize(MaxCar);
4343  typ_name = "HfCov";
4344  v_nb_times = fFileHeader->fHfCovCalc;
4345  v_dim_one = fEcal->MaxCrysEcnaInStex();
4346  v_dim_two = fEcal->MaxCrysEcnaInStex();
4347  v_size = v_nb_times * v_dim_one * v_dim_two;
4348  v_tot += v_size;
4349 
4351  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
4352  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
4353  << v_size;
4354  }
4355 
4356  for (Int_t i = 0; i < v_nb_times; i++) {
4357  if (fTagHfCov[0] == 1) {
4360  gCnaRootFile->fCnaIndivResult->SetSizeMat(v_dim_one, v_dim_two);
4362  TRootHfCov();
4363  gCnaRootFile->fCnaResultsTree->Fill();
4364  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
4365  std::cout << " => WRITTEN ON FILE ";
4366  v_tot_writ += v_size;
4367  }
4368  }
4369  }
4371  std::cout << std::endl;
4372  }
4373 
4374  //-------------------------- High Frequency Correlations between StexEchas
4375  // sample fMatMat(StexEcha, StexEcha) (7) cTypHfCor 1*(1700,1700) = 2 890 000
4376 
4377  MaxCar = fgMaxCar;
4378  typ_name.Resize(MaxCar);
4379  typ_name = "HfCor";
4380  v_nb_times = fFileHeader->fHfCorCalc;
4381  v_dim_one = fEcal->MaxCrysEcnaInStex();
4382  v_dim_two = fEcal->MaxCrysEcnaInStex();
4383  v_size = v_nb_times * v_dim_one * v_dim_two;
4384  v_tot += v_size;
4385 
4387  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(18) << typ_name << ": " << std::setw(4) << v_nb_times
4388  << " * (" << std::setw(4) << v_dim_one << "," << std::setw(4) << v_dim_two << ") = " << std::setw(9)
4389  << v_size;
4390  }
4391 
4392  for (Int_t i = 0; i < v_nb_times; i++) {
4393  if (fTagHfCor[0] == 1) {
4396  gCnaRootFile->fCnaIndivResult->SetSizeMat(v_dim_one, v_dim_two);
4398  TRootHfCor();
4399  gCnaRootFile->fCnaResultsTree->Fill();
4400  if (i == 0 && fFlagPrint == fCodePrintAllComments) {
4401  std::cout << " => WRITTEN ON FILE ";
4402  v_tot_writ += v_size;
4403  }
4404  }
4405  }
4407  std::cout << std::endl;
4408  }
4409 
4410  //---------------------------------------------- WRITING
4411  //...................................... file
4412  gCnaRootFile->fRootFile->Write();
4413  //...................................... header
4414  fFileHeader->Write();
4415 
4416  //...................................... status message
4418  std::cout << "*TEcnaRun::WriteRootFile(...)> " << std::setw(20) << "TOTAL: " << std::setw(21)
4419  << "CALCULATED = " << std::setw(9) << v_tot << " => WRITTEN ON FILE = " << std::setw(9) << v_tot_writ
4420  << std::endl;
4421  }
4422 
4424  std::cout << "*TEcnaRun::WriteRootFile(...)> Write OK in file " << file_name << " in directory:" << std::endl
4425  << " " << fCnaParPaths->ResultsRootFilePath().Data() << std::endl;
4426  }
4427 
4428  ok_write = kTRUE;
4429 
4430  //...................................... close
4431  CloseRootFile(file_name);
4432  }
4433  return ok_write;
4434 } //-------------- End of WriteRootFile(...) -----------------------
TEcnaResultType * fCnaIndivResult
Definition: TEcnaRootFile.h:42
TEcnaNArrayD fMatMat
void TRootAdcEvt(const Int_t &, const Int_t &)
Definition: TEcnaRun.cc:4474
Int_t * fTagCorCss
Definition: TEcnaRun.h:440
Int_t fHFccMoStinsCalc
Definition: TEcnaHeader.h:80
void TRootHfn()
Definition: TEcnaRun.cc:4760
Int_t * fTagLFccMoStins
Definition: TEcnaRun.h:494
Int_t fAvLfnCalc
Definition: TEcnaHeader.h:70
Int_t fSSpCalc
Definition: TEcnaHeader.h:68
Bool_t fOpenRootFile
Definition: TEcnaRun.h:393
Int_t * fTagStinNumbers
Definition: TEcnaRun.h:422
Int_t * fTagLfCor
Definition: TEcnaRun.h:480
void TRootSigCorss()
Definition: TEcnaRun.cc:4775
Int_t fCodePrintAllComments
Definition: TEcnaRun.h:508
void TRootSSp(const Int_t &)
Definition: TEcnaRun.cc:4511
Int_t fHfnCalc
Definition: TEcnaHeader.h:85
void TRootLfCor()
Definition: TEcnaRun.cc:4620
void TRootLFccMoStins()
Definition: TEcnaRun.cc:4528
TEcnaHeader * fFileHeader
Definition: TEcnaRun.h:381
Int_t * fTagCovCss
Definition: TEcnaRun.h:435
Int_t fAvMeanCorssCalc
Definition: TEcnaHeader.h:89
void TRootCovCss(const Int_t &, const Int_t &)
Definition: TEcnaRun.cc:4668
Int_t * fTagPed
Definition: TEcnaRun.h:444
void TRootAvTno()
Definition: TEcnaRun.cc:4563
Int_t fHfCorCalc
Definition: TEcnaHeader.h:76
void SetSizeHis(Int_t, Int_t)
void TRootAvLfn()
Definition: TEcnaRun.cc:4576
Int_t fReqNbOfEvts
Definition: TEcnaHeader.h:52
Int_t * fTagAvTno
Definition: TEcnaRun.h:451
Int_t * fTagHfn
Definition: TEcnaRun.h:464
void TRootHfCor()
Definition: TEcnaRun.cc:4652
Int_t fMSpCalc
Definition: TEcnaHeader.h:67
void TRootAvEvCorss()
Definition: TEcnaRun.cc:4805
Int_t fNbOfEvtsCalc
Definition: TEcnaHeader.h:64
Int_t * fTagSSp
Definition: TEcnaRun.h:430
R__EXTERN TEcnaRootFile * gCnaRootFile
Definition: TEcnaRootFile.h:65
Int_t fMeanCorssCalc
Definition: TEcnaHeader.h:83
Bool_t CloseRootFile(const Text_t *)
Definition: TEcnaRun.cc:3296
void TRootStinNumbers()
Definition: TEcnaRun.cc:4444
void TRootHFccMoStins()
Definition: TEcnaRun.cc:4546
void TRootMSp(const Int_t &)
Definition: TEcnaRun.cc:4495
Int_t fHfCovCalc
Definition: TEcnaHeader.h:75
Int_t * fTagTno
Definition: TEcnaRun.h:449
Int_t * fTagAvLfn
Definition: TEcnaRun.h:461
TEcnaNArrayD fMatHis
CnaResultTyp fTypOfCnaResult
Int_t * fTagLfn
Definition: TEcnaRun.h:459
void TRootAvHfn()
Definition: TEcnaRun.cc:4590
Int_t fCorCssCalc
Definition: TEcnaHeader.h:74
void TRootPed()
Definition: TEcnaRun.cc:4701
void TRootTno()
Definition: TEcnaRun.cc:4715
void TRootCorCss(const Int_t &, const Int_t &)
Definition: TEcnaRun.cc:4684
Int_t fAvTnoCalc
Definition: TEcnaHeader.h:69
TEcnaParPaths * fCnaParPaths
Definition: TEcnaRun.h:385
Int_t * fTagAvSigCorss
Definition: TEcnaRun.h:471
Int_t fPedCalc
Definition: TEcnaHeader.h:81
Int_t * fTagHfCor
Definition: TEcnaRun.h:489
Int_t * fTagNbOfEvts
Definition: TEcnaRun.h:419
Int_t * fTagAvPed
Definition: TEcnaRun.h:446
void TRootLfn()
Definition: TEcnaRun.cc:4745
void TRootLfCov()
Definition: TEcnaRun.cc:4604
Int_t fFlagPrint
Definition: TEcnaRun.h:507
Int_t fAvHfnCalc
Definition: TEcnaHeader.h:71
Int_t * fTagHFccMoStins
Definition: TEcnaRun.h:498
Bool_t OpenRootFile(const Text_t *, const TString &)
Definition: TEcnaRun.cc:3253
Int_t * fTagAvMeanCorss
Definition: TEcnaRun.h:456
Int_t * fTagLfCov
Definition: TEcnaRun.h:476
void SetSizeMat(Int_t, Int_t)
void ReSet(Int_t)
Int_t fAvPedCalc
Definition: TEcnaHeader.h:88
void TRootAvSigCorss()
Definition: TEcnaRun.cc:4821
Int_t * fTagHfCov
Definition: TEcnaRun.h:485
Int_t * fTagAvHfn
Definition: TEcnaRun.h:466
Int_t * fTagSigCorss
Definition: TEcnaRun.h:469
TString ResultsRootFilePath()
Int_t fLfCorCalc
Definition: TEcnaHeader.h:78
Int_t * fTagMSp
Definition: TEcnaRun.h:426
Int_t fAdcEvtCalc
Definition: TEcnaHeader.h:66
Int_t fTnoCalc
Definition: TEcnaHeader.h:82
Int_t MaxCrysEcnaInStex()
void TRootNbOfEvts(const Int_t &)
Definition: TEcnaRun.cc:4458
Int_t fLfCovCalc
Definition: TEcnaHeader.h:77
Int_t fLFccMoStinsCalc
Definition: TEcnaHeader.h:79
Int_t * fTagAdcEvt
Definition: TEcnaRun.h:415
void TRootMeanCorss()
Definition: TEcnaRun.cc:4730
Int_t fgMaxCar
Definition: TEcnaRun.h:367
tuple cout
Definition: gather_cfg.py:144
Int_t MaxStinEcnaInStex()
Int_t fSigCorssCalc
Definition: TEcnaHeader.h:86
Int_t fLfnCalc
Definition: TEcnaHeader.h:84
void TRootHfCov()
Definition: TEcnaRun.cc:4636
Int_t fStinNumbersCalc
Definition: TEcnaHeader.h:63
TString fTTBELL
Definition: TEcnaRun.h:374
TTree * fCnaResultsTree
Definition: TEcnaRootFile.h:37
Int_t * fTagMeanCorss
Definition: TEcnaRun.h:454
Int_t fAvSigCorssCalc
Definition: TEcnaHeader.h:90
Int_t fCovCssCalc
Definition: TEcnaHeader.h:73
TFile * fRootFile
Definition: TEcnaRootFile.h:33
TEcnaParEcal * fEcal
Definition: TEcnaRun.h:382
void TRootAvPed()
Definition: TEcnaRun.cc:4790

Member Data Documentation

Int_t TEcnaRun::fBuildEvtNotSkipped
private

Definition at line 403 of file TEcnaRun.h.

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

Int_t TEcnaRun::fCdelete
private

Definition at line 372 of file TEcnaRun.h.

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

Int_t TEcnaRun::fCnaCommand
private

Definition at line 369 of file TEcnaRun.h.

Referenced by Init().

Int_t TEcnaRun::fCnaError
private

Definition at line 369 of file TEcnaRun.h.

Referenced by Init().

TEcnaParCout* TEcnaRun::fCnaParCout
private

Definition at line 384 of file TEcnaRun.h.

Referenced by Init(), and SetEcalSubDetector().

TEcnaParPaths* TEcnaRun::fCnaParPaths
private
TEcnaWrite* TEcnaRun::fCnaWrite
private

Definition at line 386 of file TEcnaRun.h.

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

Int_t TEcnaRun::fCnew
private
Int_t TEcnaRun::fCodePrintAllComments
private
Int_t TEcnaRun::fCodePrintComments
private

Definition at line 508 of file TEcnaRun.h.

Referenced by Init(), and PrintComments().

Int_t TEcnaRun::fCodePrintNoComment
private
Int_t TEcnaRun::fCodePrintWarnings
private

Definition at line 508 of file TEcnaRun.h.

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

TEcnaParEcal* TEcnaRun::fEcal
private
TEcnaNumbering* TEcnaRun::fEcalNumbering
private
std::ofstream TEcnaRun::fFcout_f
private

Definition at line 505 of file TEcnaRun.h.

TEcnaHeader* TEcnaRun::fFileHeader
private
Int_t TEcnaRun::fFlagPrint
private
TString TEcnaRun::fFlagSubDet
private
Int_t TEcnaRun::fgMaxCar
private

Definition at line 367 of file TEcnaRun.h.

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

Int_t TEcnaRun::fMaxMsgIndexForMiscDiag
private

Definition at line 378 of file TEcnaRun.h.

Referenced by Init().

Int_t TEcnaRun::fMemoReadNumberOfEventsforSamples
private

Definition at line 410 of file TEcnaRun.h.

Referenced by Init().

Int_t* TEcnaRun::fMiscDiag
private
Int_t TEcnaRun::fNbOfMiscDiagCounters
private

Definition at line 377 of file TEcnaRun.h.

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

Int_t TEcnaRun::fNbSampForCalc
private
Int_t TEcnaRun::fNbSampForFic
private

Definition at line 405 of file TEcnaRun.h.

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

TString TEcnaRun::fNewRootFileName
private

Definition at line 398 of file TEcnaRun.h.

Referenced by GetNewRootFileName(), and WriteNewRootFile().

TString TEcnaRun::fNewRootFileNameShort
private

Definition at line 399 of file TEcnaRun.h.

Referenced by GetNewRootFileNameShort(), and WriteNewRootFile().

Int_t TEcnaRun::fNumberOfEvents
private
TEcnaObject* TEcnaRun::fObjectManager
private

Definition at line 380 of file TEcnaRun.h.

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

Bool_t TEcnaRun::fOpenRootFile
private

Definition at line 393 of file TEcnaRun.h.

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

Int_t TEcnaRun::fReadyToReadData
private

Definition at line 394 of file TEcnaRun.h.

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

TString TEcnaRun::fRootFileName
private

Definition at line 396 of file TEcnaRun.h.

Referenced by GetRootFileName(), and ReadSampleAdcValues().

TString TEcnaRun::fRootFileNameShort
private

Definition at line 397 of file TEcnaRun.h.

Referenced by GetRootFileNameShort(), and ReadSampleAdcValues().

Int_t TEcnaRun::fSpecialStexStinNotIndexed
private

Definition at line 401 of file TEcnaRun.h.

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

TString TEcnaRun::fStexName
private
Int_t TEcnaRun::fStinIndexBuilt
private

Definition at line 402 of file TEcnaRun.h.

Referenced by GetSampleAdcValues(), and Init().

TString TEcnaRun::fStinName
private
Double_t* TEcnaRun::fT1d_av_ev_corss
private

Definition at line 455 of file TEcnaRun.h.

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

Double_t* TEcnaRun::fT1d_av_hifn
private

Definition at line 465 of file TEcnaRun.h.

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

Double_t* TEcnaRun::fT1d_av_lofn
private

Definition at line 460 of file TEcnaRun.h.

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

Double_t* TEcnaRun::fT1d_av_mped
private

Definition at line 445 of file TEcnaRun.h.

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

Double_t* TEcnaRun::fT1d_av_sig_corss
private
Double_t* TEcnaRun::fT1d_av_totn
private

Definition at line 450 of file TEcnaRun.h.

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

Double_t* TEcnaRun::fT1d_ev
private

Definition at line 425 of file TEcnaRun.h.

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

Double_t* TEcnaRun::fT1d_ev_cor_ss
private
Double_t* TEcnaRun::fT1d_ev_ev
private

Definition at line 443 of file TEcnaRun.h.

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

Double_t* TEcnaRun::fT1d_evevt_of_sigsamp
private

Definition at line 463 of file TEcnaRun.h.

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

Double_t* TEcnaRun::fT1d_evsamp_of_sigevt
private

Definition at line 448 of file TEcnaRun.h.

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

Int_t* TEcnaRun::fT1d_NbOfEvts
private

Definition at line 418 of file TEcnaRun.h.

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

Double_t* TEcnaRun::fT1d_sig
private

Definition at line 429 of file TEcnaRun.h.

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

Double_t* TEcnaRun::fT1d_sig_cor_ss
private
Double_t* TEcnaRun::fT1d_sigevt_of_evsamp
private

Definition at line 458 of file TEcnaRun.h.

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

Int_t* TEcnaRun::fT1d_StexStinFromIndex
private
Int_t* TEcnaRun::fT1dCrysNumbersTable
private

Definition at line 503 of file TEcnaRun.h.

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

Double_t* TEcnaRun::fT2d1_hf_cor
private

Definition at line 488 of file TEcnaRun.h.

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

Double_t* TEcnaRun::fT2d1_hf_cov
private

Definition at line 484 of file TEcnaRun.h.

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

Double_t* TEcnaRun::fT2d1_hfcc_mostins
private

Definition at line 497 of file TEcnaRun.h.

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

Double_t* TEcnaRun::fT2d1_lf_cor
private

Definition at line 479 of file TEcnaRun.h.

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

Double_t* TEcnaRun::fT2d1_lf_cov
private

Definition at line 475 of file TEcnaRun.h.

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

Double_t* TEcnaRun::fT2d1_lfcc_mostins
private

Definition at line 493 of file TEcnaRun.h.

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

Double_t** TEcnaRun::fT2d_ev
private
Double_t** TEcnaRun::fT2d_hf_cor
private
Double_t** TEcnaRun::fT2d_hf_cov
private
Double_t** TEcnaRun::fT2d_hfcc_mostins
private
Double_t** TEcnaRun::fT2d_lf_cor
private
Double_t** TEcnaRun::fT2d_lf_cov
private
Double_t** TEcnaRun::fT2d_lfcc_mostins
private
Int_t** TEcnaRun::fT2d_NbOfEvts
private
Double_t** TEcnaRun::fT2d_sig
private

Definition at line 428 of file TEcnaRun.h.

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

Int_t** TEcnaRun::fT2dCrysNumbersTable
private

Definition at line 502 of file TEcnaRun.h.

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

Double_t* TEcnaRun::fT3d1_AdcValues
private

Definition at line 414 of file TEcnaRun.h.

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

Double_t* TEcnaRun::fT3d1_cor_ss
private

Definition at line 439 of file TEcnaRun.h.

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

Double_t* TEcnaRun::fT3d1_cov_ss
private

Definition at line 434 of file TEcnaRun.h.

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

Double_t** TEcnaRun::fT3d2_AdcValues
private

Definition at line 413 of file TEcnaRun.h.

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

Double_t** TEcnaRun::fT3d2_cor_ss
private

Definition at line 438 of file TEcnaRun.h.

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

Double_t** TEcnaRun::fT3d2_cov_ss
private

Definition at line 433 of file TEcnaRun.h.

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

Double_t*** TEcnaRun::fT3d_AdcValues
private
Double_t*** TEcnaRun::fT3d_cor_ss
private
Double_t*** TEcnaRun::fT3d_cov_ss
private
Int_t* TEcnaRun::fTagAdcEvt
private
Int_t* TEcnaRun::fTagAvHfn
private
Int_t* TEcnaRun::fTagAvLfn
private
Int_t* TEcnaRun::fTagAvMeanCorss
private
Int_t* TEcnaRun::fTagAvPed
private
Int_t* TEcnaRun::fTagAvSigCorss
private
Int_t* TEcnaRun::fTagAvTno
private
Int_t* TEcnaRun::fTagCorCss
private
Int_t* TEcnaRun::fTagCovCss
private
Int_t* TEcnaRun::fTagHFccMoStins
private
Int_t* TEcnaRun::fTagHfCor
private
Int_t* TEcnaRun::fTagHfCov
private
Int_t* TEcnaRun::fTagHfn
private
Int_t* TEcnaRun::fTagLFccMoStins
private
Int_t* TEcnaRun::fTagLfCor
private
Int_t* TEcnaRun::fTagLfCov
private
Int_t* TEcnaRun::fTagLfn
private
Int_t* TEcnaRun::fTagMeanCorss
private
Int_t* TEcnaRun::fTagMSp
private
Int_t* TEcnaRun::fTagNbOfEvts
private
Int_t* TEcnaRun::fTagPed
private
Int_t* TEcnaRun::fTagSigCorss
private
Int_t* TEcnaRun::fTagSSp
private
Int_t* TEcnaRun::fTagStinNumbers
private
Int_t* TEcnaRun::fTagTno
private
TString TEcnaRun::fTTBELL
private