|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef LARMONITORING_LArRODMONALG_H
6 #define LARMONITORING_LArRODMONALG_H
14 #include "GaudiKernel/ToolHandle.h"
53 static constexpr
auto m_PARTNAMES=std::to_array<const char*>({
"EMBC",
"EMBA",
"EMECC",
"EMECA",
"HECC",
"HECA",
"FCalC",
"FCalA",
"UNKNOWN"});
84 const EventContext& ctx)
const;
90 const EventContext& ctx,
112 Gaudi::Property<std::vector<std::string> >
m_problemsToMask{
this,
"ProblemsToMask",{},
"Bad-Channel categories to mask"};
123 Gaudi::Property<std::vector<std::string> >
m_SubDetNames {
this,
"LArRODSubDetNames", {} };
124 Gaudi::Property<std::vector<std::string> >
m_partitions {
this,
"LArRODPartitionNames", {} };
125 Gaudi::Property<std::vector<int> >
m_Nslots {
this,
"LArRODNslots", {} };
128 Gaudi::Property<std::string>
m_DigitsFileName{
this,
"DigitsFileName",
"digits.txt",
"Digits dump output filename"};
129 Gaudi::Property<std::string>
m_EnergyFileName{
this,
"EnergyFileName",
"energy.txt",
" Energies dump output filename"};
130 Gaudi::Property<std::string>
m_AiFileName{
this,
"AiFileName",
"Calib_ai.dat",
"dump output filename"};
131 Gaudi::Property<std::string>
m_DumpCellsFileName{
this,
"DumpCellsFileName",
"dumpCells.txt",
"Cells dump output filename"};
133 Gaudi::Property<bool>
m_doDspTestDump{
this,
"DoDspTestDump",
false,
"dsp dump switch"};
134 Gaudi::Property<bool>
m_doCellsDump{
this,
"DoCellsDump",
false,
"cell dump switch"};
135 Gaudi::Property<bool>
m_doCheckSum{
this,
"DoCheckSum",
true,
"checksum test switch"};
136 Gaudi::Property<bool>
m_doRodStatus{
this,
"DoRodStatus",
true,
"ROD status test switch"};
138 Gaudi::Property<bool>
m_removeNoiseBursts{
this,
"RemoveNoiseBursts",
true,
"removing events with noise bursts"};
142 Gaudi::Property<bool>
m_skipNullPed{
this,
"SkipNullPed",
false,
"skipping no pedestal channels ?"};
143 Gaudi::Property<bool>
m_skipNullQT{
this,
"SkipNullQT",
false,
"skipping no quality channe4ls ?"};
146 Gaudi::Property<short>
m_adc_th{
this,
"ADCthreshold", 50,
"Minimal number of ADC amplitude among samples required to compare online/offline"};
147 Gaudi::Property<float>
m_peakTime_cut{
this,
"peakTimeCut", 5.,
"Cut on abs(peak time) to compare online/offline (all quantities)"};
157 Gaudi::Property<std::vector<std::pair<int, int>>>
m_E_precision{
this,
"EnergyPrecisionRanges",
158 {{8192,2},{65536,9},{524288,65},{4194304,513},{
std::numeric_limits<int>::max(),8193}},
159 "Energy precision ranges vector<pair<upperLimit,ExpectedPrecision>"};
160 Gaudi::Property<std::vector<std::pair<int, int>>>
m_T_precision{
this,
"TimePrecisionRanges",
161 {{1000,340},{5000,340},{25000,340},{50000,340},{
std::numeric_limits<int>::max(),340}},
162 "Time precision ranges as vector<pair<upperLImit,ExpectedPrecision"};
163 Gaudi::Property<std::vector<std::pair<int, int>>>
m_Q_precision{
this,
"QualityPrecisionRanges",
165 "Quality precision ranges as vector<pair<upperLImit,ExpectedPrecision"};
171 Gaudi::Property<std::vector<std::string> >
m_streams{
this,
"Streams", {} };
173 Gaudi::Property<unsigned>
m_max_dump{
this,
"MaxEvDump", 0,
"max number of channels for detailed log-output"};
Property holding a SG store/key/clid from which a ReadHandle is made.
SG::ReadCondHandleKey< LArADC2MeV > m_adc2mevKey
Gaudi::Property< std::vector< std::pair< int, int > > > m_E_precision
Gaudi::Property< std::vector< std::pair< int, int > > > m_Q_precision
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
virtual StatusCode finalize() override final
LArBadChannelMask m_bcMask
Gaudi::Property< bool > m_doCellsDump
Gaudi::Property< std::vector< std::string > > m_SubDetNames
std::ofstream m_fai ATLAS_THREAD_SAFE
SG::ReadCondHandleKey< ILArPedestal > m_keyPedestal
Gaudi::Property< std::string > m_EnergyFileName
Gaudi::Property< std::string > m_AiFileName
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
SG::ReadCondHandleKey< LArBadChannelCont > m_bcContKey
Identifier32 get_identifier32() const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
Gaudi::Property< bool > m_printEnergyErrors
std::ofstream m_fen ATLAS_THREAD_SAFE
Gaudi::Property< bool > m_removeNoiseBursts
Gaudi::Property< bool > m_skipNullPed
value_type get_compact() const
Get the compact id.
virtual ~LArRODMonAlg()
Default destructor.
Gaudi::Property< bool > m_doCheckSum
static constexpr auto m_PARTNAMES
Base class for Athena Monitoring Algorithms.
Gaudi::Property< std::string > m_DumpCellsFileName
Gaudi::Property< bool > m_doDspTestDump
bool isFCALchannel(const HWIdentifier id) const
std::array< unsigned, 3 > errors_E
SG::ReadHandleKey< LArFebHeaderContainer > m_headerContainerKey
bool isEMECchannel(const HWIdentifier id) const override final
Gaudi::Property< bool > m_skipKnownProblematicChannels
Gaudi::Property< std::vector< std::pair< int, int > > > m_T_precision
Liquid Argon digit base class.
std::atomic< unsigned > m_ndump
Liquid Argon ROD output object base class.
::StatusCode StatusCode
StatusCode definition for legacy code.
PARTITION getPartition(const HWIdentifier chid) const
Gaudi::Property< std::string > m_MonGroupName
int pos_neg(const HWIdentifier id) const
Return the side of a hardware cell identifier pos_neg = [0,1] positive-side or negative-side Barrel...
Gaudi::Property< std::vector< int > > m_Nslots
Gaudi::Property< float > m_timeOffset
Gaudi::Property< bool > m_skipNullQT
Gaudi::Property< std::vector< std::string > > m_partitions
virtual StatusCode fillHistograms(const EventContext &ctx) const override final
adds event to the monitoring histograms
std::ofstream m_fdump ATLAS_THREAD_SAFE
const char * getPartitionName(const HWIdentifier chid) const
void dumpCellInfo(const HWIdentifier chid, const int gain, const EventContext &ctx, const diff_t &comp) const
Dump a cell's information and calculated energies into a txt file.
std::ofstream m_fdig ATLAS_THREAD_SAFE
Gaudi::Property< short > m_adc_th
Gaudi::Property< unsigned > m_max_dump
Gaudi::Property< bool > m_doRodStatus
bool isEMBchannel(const HWIdentifier id) const
void detailedOutput(const LArRODMonAlg::diff_t &, const LArDigit &dig, const EventContext &ctx) const
SG::ReadCondHandleKey< ILArOFC > m_keyOFC
diff_t compareChannel(const LArRawChannel &rcDig, const LArRawChannel &rcBS) const
Gaudi::Property< float > m_peakTime_cut
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
SG::ReadHandleKey< LArRawChannelContainer > m_channelKey_fromBytestream
const LArOnlineID * m_LArOnlineIDHelper
Gaudi::Property< std::vector< std::string > > m_problemsToMask
SG::ReadCondHandleKey< CaloNoise > m_noiseCDOKey
std::array< unsigned, 3 > errors_Q
Gaudi::Property< std::string > m_DigitsFileName
bool isHECchannel(const HWIdentifier id) const override final
SG::ReadCondHandleKey< ILArShape > m_keyShape
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
std::map< std::string, int > m_histoGroups
SG::ReadDecorHandleKey< xAOD::EventInfo > m_eventInfoKey
Gaudi::Property< std::vector< std::string > > m_streams
virtual StatusCode initialize() override final
initialize
SG::ReadCondHandleKey< ILArHVScaleCorr > m_keyHVScaleCorr
SG::ReadHandleKey< LArDigitContainer > m_digitContainerKey
SG::ReadHandleKey< LArRawChannelContainer > m_channelKey_fromDigits
std::array< unsigned, 3 > errors_T