ATLAS Offline Software
TileOFCorrelation.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 //*************************************************************************************
6 // Filename : TileOFCorrelation.h
7 // Author : Valencia TileCal group, cristobal.cuenca@cern.ch,
8 // Mantained by Ximo Poveda, jpoveda@cern.ch
9 //
10 // Created : May, 2004
11 // Moved to TileCalibAlgs on Dec'06
12 //
13 // DESCRIPTION
14 // Implementation of a class for correlation among digits calculation.
15 
16 // ************************************************************************************
17 #ifndef TILECALIBALGS_TILELOFCORRELATION_H
18 #define TILECALIBALGS_TILELOFCORRELATION_H
19 
20 #include "GaudiKernel/MsgStream.h"
22 
23 #include <vector>
24 #include <string>
25 
26 #define NPARTITIONS 4
27 #define NDIG 9
28 
29 class TileHWID;
30 
32 {
33  public:
34 
37 
40 
41  void SetCorrelationZero(MsgStream & log, int dignum);
42  void SetCorrelationDelta(MsgStream & log, int dignum);
43 
44  void Sum(std::vector<float> &digits, int ros, int drawer, int channel, int gain,
45  MsgStream & log, bool debug, int &dignum, bool doRobustCov);
46 
47  void RunningCorrelation(std::vector<float> &digits, int ros, int drawer, int channel, int gain,
48  MsgStream & log, bool debug, int &dignum, int chthres);
49 
50  void CalcCorrelation(MsgStream & log, int dignum, bool flag_7to9, bool doRobustCov);
51 
52  void CalcRunningCorrelation(MsgStream & log, int dignum, int chthres, bool flag_7to9);
53 
54  void GetCorrelation(int dignum, float tmpCorr[][9], int ros, int drawer, int chan, int gain);
55 
56  void PrintCorrelation(int dignum);
57 
58  void SaveCorrelationSumm(bool deltaCorrelation, const std::string& OptFilterFile_CorrelationSumm,
59  const TileHWID *tileHWID, MsgStream & log, int dignum);
60 
61  void SaveCorrelationMatrix(bool deltaCorrelation, const std::string& OptFilterFile_CorrelationMatrix,
62  const TileHWID *tileHWID, MsgStream & log, int dignum);
63 
64  void CalcWeights(bool of2,
65  bool deltaCorrelation,
66  const std::vector<double>& LshapeForm,
67  const std::vector<double>& HshapeForm,
68  const std::vector<double>& LdshapeForm,
69  const std::vector<double>& HdshapeForm,
70  MsgStream & log, int ros, int drawer, int channel, int gain, int dignum);
71 
72  static void BuildPulseShape(std::vector<double> &pulseShape, std::vector<double> &pulseShapeX,
73  std::vector<double> &pulseShapeT, int dignum, MsgStream &log);
74 
75  void WriteWeightsToFile(bool deltaCorrelation, int dignum, const std::string& m_OptFilterFile_ai_lo,
76  const std::string& m_OptFilterFile_bi_lo, const std::string& m_OptFilterFile_ai_hi,
77  const std::string& m_OptFilterFile_bi_hi, int ros, int drawer, int channel, int gain,
78  const TileHWID *tileHWID, MsgStream & log);
79 
80  void CloseWeightsFile(std::string OptFilterFile_ai_lo, std::string OptFilterFile_bi_lo,
81  std::string OptFilterFile_ai_hi, std::string OptFilterFile_bi_hi,
82  MsgStream & log);
83 
84  static void OpenWeightsFile(const std::string& OptFilterFile_ai_lo, const std::string& OptFilterFile_bi_lo,
85  const std::string& OptFilterFile_ai_hi, const std::string& OptFilterFile_bi_hi,
86  MsgStream & log);
87 
88  float* getCorrelationSumm(bool deltaCorrelation, int ros, int drawer, int channel, int gain, int dignum);
89 
90  double w_a[201][9]={};
91  double w_b[201][9]={};
92  double w_c[201][9]={};
93  double g[201][9]={};
94 
95 
96  private:
97 
99  //double SS(9,9);
103  //int N_events[4][64][48][2];
104  std::vector< std::vector <float> > m_DataVector[NPARTITIONS][Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN];
105 
106  double m_corr2[NDIG];
109  double m_ncorr;
110  float m_corr[8];
114  double m_N_d;
120 
121 };
122 
123 #endif
TileOFCorrelation::m_corr2
double m_corr2[NDIG]
Definition: TileOFCorrelation.h:106
TileOFCorrelation::BuildPulseShape
static void BuildPulseShape(std::vector< double > &pulseShape, std::vector< double > &pulseShapeX, std::vector< double > &pulseShapeT, int dignum, MsgStream &log)
Definition: TileOFCorrelation.cxx:889
TileOFCorrelation::m_S1
double(* m_S1)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN][NDIG]
Definition: TileOFCorrelation.h:115
TileOFCorrelation::w_c
double w_c[201][9]
Definition: TileOFCorrelation.h:92
TileOFCorrelation::SetCorrelationZero
void SetCorrelationZero(MsgStream &log, int dignum)
Definition: TileOFCorrelation.cxx:78
TileOFCorrelation::CalcRunningCorrelation
void CalcRunningCorrelation(MsgStream &log, int dignum, int chthres, bool flag_7to9)
Definition: TileOFCorrelation.cxx:334
TileOFCorrelation::m_jentry
int m_jentry
Definition: TileOFCorrelation.h:112
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
TileOFCorrelation::TileOFCorrelation
TileOFCorrelation(const TileOFCorrelation &)=delete
TileOFCorrelation::m_S2
double(* m_S2)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN][NDIG]
Definition: TileOFCorrelation.h:116
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
TileOFCorrelation::TileOFCorrelation
TileOFCorrelation()
Definition: TileOFCorrelation.cxx:34
TileOFCorrelation::m_S
double(* m_S)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN][NDIG]
Definition: TileOFCorrelation.h:101
TileOFCorrelation::m_S22
double(* m_S22)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN][NDIG]
Definition: TileOFCorrelation.h:119
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:110
TileOFCorrelation::GetCorrelation
void GetCorrelation(int dignum, float tmpCorr[][9], int ros, int drawer, int chan, int gain)
Definition: TileOFCorrelation.cxx:385
TileOFCorrelation::CalcCorrelation
void CalcCorrelation(MsgStream &log, int dignum, bool flag_7to9, bool doRobustCov)
Definition: TileOFCorrelation.cxx:176
TileOFCorrelation::m_corr_sum
double(* m_corr_sum)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN][NDIG]
Definition: TileOFCorrelation.h:107
TileOFCorrelation::PrintCorrelation
void PrintCorrelation(int dignum)
Definition: TileOFCorrelation.cxx:398
TileOFCorrelation::RunningCorrelation
void RunningCorrelation(std::vector< float > &digits, int ros, int drawer, int channel, int gain, MsgStream &log, bool debug, int &dignum, int chthres)
Definition: TileOFCorrelation.cxx:262
TileOFCorrelation::getCorrelationSumm
float * getCorrelationSumm(bool deltaCorrelation, int ros, int drawer, int channel, int gain, int dignum)
Definition: TileOFCorrelation.cxx:497
TileCalibUtils.h
TileOFCorrelation::m_R
double(* m_R)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN][NDIG][NDIG]
Definition: TileOFCorrelation.h:102
TileOFCorrelation::m_SS
double(* m_SS)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN][NDIG][NDIG]
Definition: TileOFCorrelation.h:100
TileOFCorrelation
Definition: TileOFCorrelation.h:32
TileOFCorrelation::m_S11
double(* m_S11)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN][NDIG]
Definition: TileOFCorrelation.h:117
Example_ReadSampleNoise.drawer
drawer
Definition: Example_ReadSampleNoise.py:39
TileOFCorrelation::g
double g[201][9]
Definition: TileOFCorrelation.h:93
TileCalibUtils::MAX_DRAWER
static const unsigned int MAX_DRAWER
Number of drawers in ROS 1-4.
Definition: TileCalibUtils.h:139
TileHWID
Helper class for TileCal online (hardware) identifiers.
Definition: TileHWID.h:49
Tile
Definition: TileVolumeBuilder.h:43
TileOFCorrelation::m_N_d
double m_N_d
Definition: TileOFCorrelation.h:114
TileOFCorrelation::m_corr
float m_corr[8]
Definition: TileOFCorrelation.h:110
NDIG
#define NDIG
Definition: TileOFCorrelation.h:27
TileOFCorrelation::OpenWeightsFile
static void OpenWeightsFile(const std::string &OptFilterFile_ai_lo, const std::string &OptFilterFile_bi_lo, const std::string &OptFilterFile_ai_hi, const std::string &OptFilterFile_bi_hi, MsgStream &log)
Definition: TileOFCorrelation.cxx:1105
TileOFCorrelation::w_a
double w_a[201][9]
Definition: TileOFCorrelation.h:90
ReadCellNoiseFromCool.chan
chan
Definition: ReadCellNoiseFromCool.py:52
TileOFCorrelation::m_N
int(* m_N)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
Definition: TileOFCorrelation.h:111
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
maskDeadModules.ros
ros
Definition: maskDeadModules.py:35
TileOFCorrelation::operator=
TileOFCorrelation & operator=(const TileOFCorrelation &)=delete
TileOFCorrelation::~TileOFCorrelation
~TileOFCorrelation()
Definition: TileOFCorrelation.cxx:60
TileOFCorrelation::CloseWeightsFile
void CloseWeightsFile(std::string OptFilterFile_ai_lo, std::string OptFilterFile_bi_lo, std::string OptFilterFile_ai_hi, std::string OptFilterFile_bi_hi, MsgStream &log)
TileOFCorrelation::WriteWeightsToFile
void WriteWeightsToFile(bool deltaCorrelation, int dignum, const std::string &m_OptFilterFile_ai_lo, const std::string &m_OptFilterFile_bi_lo, const std::string &m_OptFilterFile_ai_hi, const std::string &m_OptFilterFile_bi_hi, int ros, int drawer, int channel, int gain, const TileHWID *tileHWID, MsgStream &log)
Definition: TileOFCorrelation.cxx:1009
TileOFCorrelation::m_ncorr
double m_ncorr
Definition: TileOFCorrelation.h:109
TileOFCorrelation::SetCorrelationDelta
void SetCorrelationDelta(MsgStream &log, int dignum)
Definition: TileOFCorrelation.cxx:118
debug
const bool debug
Definition: MakeUncertaintyPlots.cxx:53
TileOFCorrelation::m_S12
double(* m_S12)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN][NDIG]
Definition: TileOFCorrelation.h:118
TileOFCorrelation::CalcWeights
void CalcWeights(bool of2, bool deltaCorrelation, const std::vector< double > &LshapeForm, const std::vector< double > &HshapeForm, const std::vector< double > &LdshapeForm, const std::vector< double > &HdshapeForm, MsgStream &log, int ros, int drawer, int channel, int gain, int dignum)
Definition: TileOFCorrelation.cxx:592
TileOFCorrelation::SaveCorrelationSumm
void SaveCorrelationSumm(bool deltaCorrelation, const std::string &OptFilterFile_CorrelationSumm, const TileHWID *tileHWID, MsgStream &log, int dignum)
Definition: TileOFCorrelation.cxx:428
TileOFCorrelation::SaveCorrelationMatrix
void SaveCorrelationMatrix(bool deltaCorrelation, const std::string &OptFilterFile_CorrelationMatrix, const TileHWID *tileHWID, MsgStream &log, int dignum)
Definition: TileOFCorrelation.cxx:524
python.Classes.TileCalibUtils
TileCalibUtils
Definition: TileCalib/TileCalibBlobObjs/python/Classes.py:5
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
TileOFCorrelation::m_N_pairs
int(* m_N_pairs)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN][NDIG]
Definition: TileOFCorrelation.h:113
TileOFCorrelation::w_b
double w_b[201][9]
Definition: TileOFCorrelation.h:91
LB_AnalMapSplitter.of2
of2
Definition: LB_AnalMapSplitter.py:50
TileCalibUtils::MAX_CHAN
static const unsigned int MAX_CHAN
Number of channels in drawer.
Definition: TileCalibUtils.h:141
TileOFCorrelation::m_corr_sum_sq
double(* m_corr_sum_sq)[Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN][NDIG]
Definition: TileOFCorrelation.h:108
TileOFCorrelation::Sum
void Sum(std::vector< float > &digits, int ros, int drawer, int channel, int gain, MsgStream &log, bool debug, int &dignum, bool doRobustCov)
Definition: TileOFCorrelation.cxx:137
TileOFCorrelation::m_DataVector
std::vector< std::vector< float > > m_DataVector[NPARTITIONS][Tile::MAX_DRAWER][Tile::MAX_CHAN][Tile::MAX_GAIN]
Definition: TileOFCorrelation.h:104
TileOFCorrelation::m_lag
int m_lag
Definition: TileOFCorrelation.h:112
NPARTITIONS
#define NPARTITIONS
Definition: TileOFCorrelation.h:26
TileCalibUtils::MAX_GAIN
static const unsigned int MAX_GAIN
Number of gains per channel
Definition: TileCalibUtils.h:142