ATLAS Offline Software
TileLaserLinearityCalibTool.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 #ifndef TILECALIBALG_TILELASERLINEARITYCALIBTOOL_H
6 #define TILECALIBALG_TILELASERLINEARITYCALIBTOOL_H
7 
9 
12 
13 #include <string>
14 #include <map>
15 
18 #include "TileEvent/TileDQstatus.h"
22 
23 #define NFILTERS 10
24 #define NDIODES 10
25 #define NDIODES_LASER1 4
26 #define NMONITORS 4
27 #define NPMTS 2
28 
29 #define NGAINS 2
30 #define NPARTITIONS 4
31 #define NDRAWERS 64
32 #define NCOUPLES 22
33 #define NCHANNELS 48
34 #define NSLICES 100
35 #define NFIBERS 2
36 
38 class TileLaserObject;
39 class TileHWID;
40 class TFile;
41 
43 {
44 
45  public:
46  TileLaserLinearityCalibTool(const std::string& type, const std::string& name,const IInterface* pParent);
48 
49  virtual StatusCode initialize() override;
50  virtual StatusCode initNtuple(int runNumber, int runType, TFile * rootfile) override;
51  virtual StatusCode execute() override;
52  virtual StatusCode finalizeCalculations() override;
53  virtual StatusCode writeNtuple(int runNumber, int runType, TFile * rootfile) override;
54  virtual StatusCode finalize() override;
55 
56  private:
57 
58  // Name of ntuple of the Tool
59  std::string m_toolNtuple;
60 
62  std::string m_laserContainerName;
64 
66  "TileRawChannelContainer", "TileRawChannelOpt2", "Input Tile raw channel container"};
68  "TileLaserObject", "TileLaserObject", "Input Tile laser object"};
69 
72  ToolHandle<TileCondToolEmscale> m_tileToolEmscale{this,
73  "TileCondToolEmscale", "TileCondToolEmscale", "Tile em scale tool"};
74 
75  // Parameter which will end up in the ROOTuple
76  //
77  // Details concerning this parameters could be found on the LASER webpage :
78  //
79  // http://atlas-tile-laser.web.cern.ch/
80  //
81  // Here we are working on linearity runs, it explains the [8] in the arrays
82  // we store one value per filter position
83 
84  int m_toolRunNo; // The run number
85  int m_ADC_problem; // Expert tag for LastROD problem noticfication
86  int m_las_filter; // Filter wheel position
87  double m_las_requ_amp; // Requested amplitude
88  double m_hrate; // Humidity rate (in %)
89  double m_flow; // Gas flow in diodes box (in L/h)
90  double m_head_temp; // Temperature of the LASER head
91  double m_las_time; // Event time
92  double (*m_LG_PMT)[NPMTS]; // Mean value for box PMTs
93  double (*m_LG_PMT_S)[NPMTS]; // Corresponding RMS
94  double (*m_LG_diode)[NDIODES]; // Mean value for box Photodiodes
95  double (*m_LG_diode_S)[NDIODES]; // Corresponding RMS
96  double (*m_HG_PMT)[NPMTS]; // Mean value for box PMTs
97  double (*m_HG_PMT_S)[NPMTS]; // Corresponding RMS
98  double (*m_HG_diode)[NDIODES]; // Mean value for box Photodiodes
99  double (*m_HG_diode_S)[NDIODES]; // Corresponding RMS
100  double (*m_mean)[NPARTITIONS][NDRAWERS][NCHANNELS][NGAINS]; // Mean signal computed for this run
101  double (*m_mean_S)[NPARTITIONS][NDRAWERS][NCHANNELS][NGAINS]; // Corresponding RMS
102  double (*m_LG_ratio)[NPARTITIONS][NDRAWERS][NCHANNELS][NGAINS]; // Calib coefficients computed for this run (for all diodes)
104  double (*m_LG_ratio2)[NPARTITIONS][NDRAWERS][NCHANNELS][NGAINS]; // Calib coefficients computed for this run (for all diodes)
106  double (*m_HG_ratio)[NPARTITIONS][NDRAWERS][NCHANNELS][NGAINS]; // Calib coefficients computed for this run (for all diodes)
108  double (*m_HG_ratio2)[NPARTITIONS][NDRAWERS][NCHANNELS][NGAINS]; // Calib coefficients computed for this run (for all diodes)
110  int (*m_entries)[NPARTITIONS][NDRAWERS][NCHANNELS][NGAINS]; // Number of LASER events collected for one channel (and a particular gain)
111 
112 
113  // Local results - not sent to ROOTuple
114 
117 
118  int m_first_filter; // Value of the first filter position
119 
120  int m_last_evt_filter; // Filter position of the previous event
121  int m_n_same_filt_evts; // How many events in a row with the same filter setting
122 
124 
125  RunningStat* (*m_HG_diode_signal)[NDIODES];
126  RunningStat* (*m_HG_PMT_signal)[NPMTS];
127  RunningStat* (*m_LG_diode_signal)[NDIODES];
128  RunningStat* (*m_LG_PMT_signal)[NPMTS];
131  RunningStat* (*m_LG_ratio2_stat)[NPARTITIONS][NDRAWERS][NCHANNELS][NGAINS];
133  RunningStat* (*m_HG_ratio2_stat)[NPARTITIONS][NDRAWERS][NCHANNELS][NGAINS];
134 
135  // Functions
136  inline int chanIsConnected(int ros, int chan) {
137  if(m_cabling->channel2hole(ros,chan)<0) return 0; //negative means not connected
138  return 1;
139  }
140 };
141 
142 
143 
144 #endif // #ifndef TILECALIBALG_TILELASERLINEARITYCALIBTOOL_H
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
TileRawChannelContainer
Definition: TileRawChannelContainer.h:13
TileLaserLinearityCalibTool::execute
virtual StatusCode execute() override
Definition: TileLaserLinearityCalibTool.cxx:229
TileLaserLinearityCalibTool
Definition: TileLaserLinearityCalibTool.h:43
TileLaserLinearityCalibTool::m_LG_diode
double(* m_LG_diode)[NDIODES]
Definition: TileLaserLinearityCalibTool.h:94
TileLaserLinearityCalibTool::m_laserContainerName
std::string m_laserContainerName
Definition: TileLaserLinearityCalibTool.h:62
TileLaserLinearityCalibTool::m_HG_ratio2_S
double(* m_HG_ratio2_S)[NPARTITIONS][NDRAWERS][NCHANNELS][NGAINS]
Definition: TileLaserLinearityCalibTool.h:109
TileLaserLinearityCalibTool::m_HG_diode
double(* m_HG_diode)[NDIODES]
Definition: TileLaserLinearityCalibTool.h:98
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
NDIODES
#define NDIODES
Definition: TileLaserLinearityCalibTool.h:24
TileLaserLinearityCalibTool::m_first_filter
int m_first_filter
Definition: TileLaserLinearityCalibTool.h:118
TileLaserLinearityCalibTool::initNtuple
virtual StatusCode initNtuple(int runNumber, int runType, TFile *rootfile) override
Definition: TileLaserLinearityCalibTool.cxx:211
TileLaserLinearityCalibTool::m_flow
double m_flow
Definition: TileLaserLinearityCalibTool.h:89
TileLaserLinearityCalibTool::m_last_evt_filter
int m_last_evt_filter
Definition: TileLaserLinearityCalibTool.h:120
TileLaserLinearityCalibTool::m_LG_diode_S
double(* m_LG_diode_S)[NDIODES]
Definition: TileLaserLinearityCalibTool.h:95
TileLaserLinearityCalibTool::m_hrate
double m_hrate
Definition: TileLaserLinearityCalibTool.h:88
ITileCalibTool
Definition: ITileCalibTool.h:19
NGAINS
#define NGAINS
Definition: TileLaserLinearityCalibTool.h:29
TileLaserLinearityCalibTool::m_entries
int(* m_entries)[NPARTITIONS][NDRAWERS][NCHANNELS][NGAINS]
Definition: TileLaserLinearityCalibTool.h:110
TileLaserObject.h
SG::ReadHandleKey< TileDQstatus >
LArCalib_HVScale2NtupleConfig.rootfile
string rootfile
Definition: LArCalib_HVScale2NtupleConfig.py:74
TileLaserLinearityCalibTool::m_n_same_filt_evts
int m_n_same_filt_evts
Definition: TileLaserLinearityCalibTool.h:121
TileLaserLinearityCalibTool::m_LG_ratio2
double(* m_LG_ratio2)[NPARTITIONS][NDRAWERS][NCHANNELS][NGAINS]
Definition: TileLaserLinearityCalibTool.h:104
TileLaserLinearityCalibTool::~TileLaserLinearityCalibTool
virtual ~TileLaserLinearityCalibTool()
Definition: TileLaserLinearityCalibTool.cxx:88
TileLaserLinearityCalibTool::m_PMT1_ADC_prev
int m_PMT1_ADC_prev[2]
Definition: TileLaserLinearityCalibTool.h:115
TileLaserLinearityCalibTool::m_rawChannelContainerName
std::string m_rawChannelContainerName
Definition: TileLaserLinearityCalibTool.h:61
NCHANNELS
#define NCHANNELS
Definition: TileLaserLinearityCalibTool.h:33
TileRawChannelContainer.h
ITileCalibTool.h
TileHWID
Helper class for TileCal online (hardware) identifiers.
Definition: TileHWID.h:49
RunningStat
Definition: TileLaserDefaultCalibTool.h:232
TileLaserLinearityCalibTool::m_las_requ_amp
double m_las_requ_amp
Definition: TileLaserLinearityCalibTool.h:87
TileCablingService.h
TileLaserLinearityCalibTool::m_mean
double(* m_mean)[NPARTITIONS][NDRAWERS][NCHANNELS][NGAINS]
Definition: TileLaserLinearityCalibTool.h:100
TileCondToolEmscale.h
ReadCellNoiseFromCool.chan
chan
Definition: ReadCellNoiseFromCool.py:52
TileLaserLinearityCalibTool::m_head_temp
double m_head_temp
Definition: TileLaserLinearityCalibTool.h:90
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TileLaserLinearityCalibTool::m_tileHWID
const TileHWID * m_tileHWID
Definition: TileLaserLinearityCalibTool.h:70
TileLaserLinearityCalibTool::m_tileToolEmscale
ToolHandle< TileCondToolEmscale > m_tileToolEmscale
Definition: TileLaserLinearityCalibTool.h:72
TileLaserLinearityCalibTool::m_dqStatusKey
SG::ReadHandleKey< TileDQstatus > m_dqStatusKey
Definition: TileLaserLinearityCalibTool.h:63
TileLaserLinearityCalibTool::m_HG_diode_S
double(* m_HG_diode_S)[NDIODES]
Definition: TileLaserLinearityCalibTool.h:99
TileLaserLinearityCalibTool::m_HG_ratio_S
double(* m_HG_ratio_S)[NPARTITIONS][NDRAWERS][NCHANNELS][NGAINS]
Definition: TileLaserLinearityCalibTool.h:107
AthAlgTool.h
TileLaserDefaultCalibTool.h
NPMTS
#define NPMTS
Definition: TileLaserLinearityCalibTool.h:27
TileLaserLinearityCalibTool::m_LG_ratio2_S
double(* m_LG_ratio2_S)[NPARTITIONS][NDRAWERS][NCHANNELS][NGAINS]
Definition: TileLaserLinearityCalibTool.h:105
TileLaserLinearityCalibTool::m_HG_ratio2
double(* m_HG_ratio2)[NPARTITIONS][NDRAWERS][NCHANNELS][NGAINS]
Definition: TileLaserLinearityCalibTool.h:108
TileLaserLinearityCalibTool::finalizeCalculations
virtual StatusCode finalizeCalculations() override
Definition: TileLaserLinearityCalibTool.cxx:484
NDRAWERS
#define NDRAWERS
Definition: TileLaserLinearityCalibTool.h:31
TileLaserLinearityCalibTool::m_HG_PMT
double(* m_HG_PMT)[NPMTS]
Definition: TileLaserLinearityCalibTool.h:96
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
maskDeadModules.ros
ros
Definition: maskDeadModules.py:35
TileCablingService
Definition: TileCablingService.h:23
TileLaserLinearityCalibTool::m_PMT2_ADC_prev
int m_PMT2_ADC_prev[2]
Definition: TileLaserLinearityCalibTool.h:116
TileDQstatus.h
Information produced by TileDQstatusAlg (used to be done by TileBeamInfoProvider).
python.OnlineISConfiguration.runType
def runType
Definition: OnlineISConfiguration.py:112
TileLaserLinearityCalibTool::m_toolNtuple
std::string m_toolNtuple
Definition: TileLaserLinearityCalibTool.h:59
TileLaserLinearityCalibTool::m_cabling
const TileCablingService * m_cabling
Definition: TileLaserLinearityCalibTool.h:71
TileLaserLinearityCalibTool::m_LG_ratio
double(* m_LG_ratio)[NPARTITIONS][NDRAWERS][NCHANNELS][NGAINS]
Definition: TileLaserLinearityCalibTool.h:102
TileLaserLinearityCalibTool::m_toolRunNo
int m_toolRunNo
Definition: TileLaserLinearityCalibTool.h:84
TileLaserLinearityCalibTool::m_laserContainerKey
SG::ReadHandleKey< TileLaserObject > m_laserContainerKey
Definition: TileLaserLinearityCalibTool.h:67
TileLaserLinearityCalibTool::writeNtuple
virtual StatusCode writeNtuple(int runNumber, int runType, TFile *rootfile) override
Definition: TileLaserLinearityCalibTool.cxx:593
TileLaserLinearityCalibTool::initialize
virtual StatusCode initialize() override
Definition: TileLaserLinearityCalibTool.cxx:131
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
TileLaserLinearityCalibTool::chanIsConnected
int chanIsConnected(int ros, int chan)
Definition: TileLaserLinearityCalibTool.h:136
TileLaserLinearityCalibTool::m_LG_PMT_S
double(* m_LG_PMT_S)[NPMTS]
Definition: TileLaserLinearityCalibTool.h:93
TileLaserLinearityCalibTool::TileLaserLinearityCalibTool
TileLaserLinearityCalibTool(const std::string &type, const std::string &name, const IInterface *pParent)
Definition: TileLaserLinearityCalibTool.cxx:34
TileLaserLinearityCalibTool::m_HG_PMT_S
double(* m_HG_PMT_S)[NPMTS]
Definition: TileLaserLinearityCalibTool.h:97
TileLaserLinearityCalibTool::m_complete_turn
bool m_complete_turn
Definition: TileLaserLinearityCalibTool.h:123
TileLaserLinearityCalibTool::m_las_time
double m_las_time
Definition: TileLaserLinearityCalibTool.h:91
DeMoAtlasDataLoss.runNumber
string runNumber
Definition: DeMoAtlasDataLoss.py:64
TileLaserLinearityCalibTool::m_mean_S
double(* m_mean_S)[NPARTITIONS][NDRAWERS][NCHANNELS][NGAINS]
Definition: TileLaserLinearityCalibTool.h:101
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
TileCablingService::channel2hole
static int channel2hole(int ros, int channel)
Definition: TileCablingService.cxx:1946
TileLaserLinearityCalibTool::m_ADC_problem
int m_ADC_problem
Definition: TileLaserLinearityCalibTool.h:85
TileLaserLinearityCalibTool::m_rawChannelContainerKey
SG::ReadHandleKey< TileRawChannelContainer > m_rawChannelContainerKey
Definition: TileLaserLinearityCalibTool.h:65
TileLaserLinearityCalibTool::m_HG_ratio
double(* m_HG_ratio)[NPARTITIONS][NDRAWERS][NCHANNELS][NGAINS]
Definition: TileLaserLinearityCalibTool.h:106
AthAlgTool
Definition: AthAlgTool.h:26
TileLaserLinearityCalibTool::finalize
virtual StatusCode finalize() override
Definition: TileLaserLinearityCalibTool.cxx:639
NPARTITIONS
#define NPARTITIONS
Definition: TileLaserLinearityCalibTool.h:30
TileLaserObject
Definition: TileLaserObject.h:33
TileLaserLinearityCalibTool::m_las_filter
int m_las_filter
Definition: TileLaserLinearityCalibTool.h:86
TileLaserLinearityCalibTool::m_LG_ratio_S
double(* m_LG_ratio_S)[NPARTITIONS][NDRAWERS][NCHANNELS][NGAINS]
Definition: TileLaserLinearityCalibTool.h:103
TileLaserLinearityCalibTool::m_LG_PMT
double(* m_LG_PMT)[NPMTS]
Definition: TileLaserLinearityCalibTool.h:92