ATLAS Offline Software
Loading...
Searching...
No Matches
TileCellSelector.h
Go to the documentation of this file.
1// -*- C++ -*-
2
3/*
4 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
5*/
6
7#ifndef TILERECALGS_TILESELECTOR_H
8#define TILERECALGS_TILESELECTOR_H
9
10// Tile includes
16
17// Calo includes
19
20// Atlas includes
24
25// Gaudi incldues
26#include "GaudiKernel/ToolHandle.h"
27
28#include <string>
29#include <vector>
30
31class TileID;
32class TileHWID;
33class TileCell;
35class TileInfo;
36
37
39
41 public:
42 TileCellSelector(const std::string& name, ISvcLocator* pSvcLocator);
43 virtual ~TileCellSelector();
44
45 virtual StatusCode initialize() override;
46 virtual StatusCode execute() override;
47 virtual StatusCode finalize() override;
48
49 private:
50
51 int Are3FF(std::vector<float> & OptFilterDigits, int OptFilterGain, int ch_type);
52 void printCell(const TileCell * cell);
53
54 unsigned int m_counter;
55 unsigned int m_accept;
56 unsigned int m_minCell;
57 unsigned int m_maxCell;
58 unsigned int m_minChan;
59 unsigned int m_maxChan;
60 unsigned int m_jump;
61 unsigned int m_const;
62 unsigned int m_overLG;
63 unsigned int m_overHG;
64 unsigned int m_underLG;
65 unsigned int m_underHG;
66 unsigned int m_dqerr;
67 unsigned int m_dmuerr;
68 unsigned int m_warnerr;
69
73 ToolHandle<ITileBadChanTool> m_tileBadChanTool{this, "TileBadChanTool", "TileBadChanTool", "Tile bad channel tool"};
74 SG::ReadHandleKey<TileDQstatus> m_dqStatusKey{this, "TileDQstatus", "TileDQstatus", "TileDQstatus key"};
75 ToolHandle<ITileDCSTool> m_tileDCS{this, "TileDCSTool", "TileDCSTool", "Tile DCS tool"};
76
77 unsigned int m_runNum;
78 unsigned int m_lumiBlock;
79 unsigned int m_evtNum;
80 unsigned int m_evtBCID;
81 // flag will contain status of a given event
82 // every 4 bits - status of partitions LBA,LBC,EBA,EBC
83 // bits 0-3 - there is a signal above threshold in partitions
84 // bits 4-7 - there are channels with underflow (sample=0) in partition (since rel 17.2.6.4)
85 // bits 8-11 - there are channels with overflow (sample=1023) in partition (since rel 17.2.6.4)
86 // bits 12-15 - there are at least 16 drawers with bad quality in partition
87 // bits 16-19 - maximal length of consecutive bad area (since rel 17.2.6.5)
88 // bits 20-23 - there are at least 16 drawers which are completely masked in partition
89 // bits 24-27 - there are at least 16 drawers which do not send data in partition
90 // bits 28-31 - reserved for global good/warning/bad status
91 // bits 20-27 are also used for module number which gives warning status (since release 17.2.6.5)
92 // in case of warning we are sure that bits which indicates error are not filled
93 unsigned int m_tileFlag;
94 // global status: 0=OK, 1=warning, 2=error
95 unsigned int m_tileError;
96
97 std::vector<bool> m_chanBad;
98 std::vector<float> m_chanEne;
99 std::vector<float> m_chanTime;
100 std::vector<float> m_chanDsp;
101 std::vector<float> m_chanTDsp;
102 std::vector<float> m_chanQua;
103 std::vector<bool> m_chanSel;
104 std::vector<bool> m_chanToSkip;
105 std::vector<bool> m_drawerToSkip;
106
110
112 "AllCalo", "Input Calo cell container key"};
113
115 "TileDigitsFlt", "Input Tile digits container key"};
116
118 "TileRawChannelCnt",
119 "Input Tile raw channel container key"};
120
122 "EventInfo", "Input event info key"};
123
126 float m_minEneChan[3]{};
127 float m_maxEneChan[3]{};
130 float m_minTimeChan[3]{};
131 float m_maxTimeChan[3]{};
133 int m_ptnEneChan[3]{};
137 bool m_skipGain[2]{};
138#define ptnlength 5
169
170 std::vector<int> m_drawer;
171 std::vector<int> m_drawerToCheck;
172 std::vector<int> m_chanToCheck;
173
175 std::vector<int> m_nDrawerOff;
176
177 std::string m_infoName;
179 float m_ADCmaxMinusEps = 0.0F;
181};
182
183#endif // TILERECALGS_TILESELECTOR_H
Property holding a SG store/key/clid from which a ReadHandle is made.
#define ptnlength
Information produced by TileDQstatusAlg (used to be done by TileBeamInfoProvider).
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
Property holding a SG store/key/clid from which a ReadHandle is made.
std::vector< float > m_chanEne
bool m_bitTimeCell[ptnlength]
const TileCablingService * m_cabling
std::vector< int > m_chanToCheck
unsigned int m_minCell
int Are3FF(std::vector< float > &OptFilterDigits, int OptFilterGain, int ch_type)
std::vector< float > m_chanDsp
bool m_bitEneChan[3][ptnlength]
ToolHandle< ITileBadChanTool > m_tileBadChanTool
unsigned int m_jump
unsigned int m_runNum
unsigned int m_lumiBlock
SG::ReadHandleKey< TileDQstatus > m_dqStatusKey
std::vector< bool > m_chanSel
unsigned int m_evtBCID
unsigned int m_evtNum
TileCellSelector(const std::string &name, ISvcLocator *pSvcLocator)
std::vector< bool > m_chanToSkip
unsigned int m_warnerr
ToolHandle< ITileDCSTool > m_tileDCS
unsigned int m_const
void printCell(const TileCell *cell)
unsigned int m_underLG
virtual StatusCode initialize() override
SG::ReadHandleKey< TileRawChannelContainer > m_rawChannelContainerKey
unsigned int m_dmuerr
std::vector< int > m_drawerToCheck
std::vector< bool > m_chanBad
bool m_bitTimeChan[3][ptnlength]
unsigned int m_underHG
SG::ReadHandleKey< TileDigitsContainer > m_digitsContainerKey
SG::ReadHandleKey< CaloCellContainer > m_cellContainerKey
unsigned int m_counter
virtual StatusCode execute() override
unsigned int m_maxCell
std::vector< int > m_drawer
unsigned int m_tileFlag
unsigned int m_accept
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
unsigned int m_overLG
virtual StatusCode finalize() override
const TileHWID * m_tileHWID
std::vector< int > m_nDrawerOff
std::vector< float > m_chanTime
unsigned int m_maxChan
unsigned int m_minChan
std::vector< bool > m_drawerToSkip
const TileInfo * m_tileInfo
unsigned int m_overHG
const TileID * m_tileID
std::vector< float > m_chanTDsp
std::vector< float > m_chanQua
unsigned int m_tileError
unsigned int m_dqerr
bool m_bitEneCell[ptnlength]
Helper class for TileCal online (hardware) identifiers.
Definition TileHWID.h:49
Helper class for TileCal offline identifiers.
Definition TileID.h:67