ATLAS Offline Software
Loading...
Searching...
No Matches
LArBadChannelDecoder.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 LArBadChannelDecoder_H
6#define LArBadChannelDecoder_H
7
14
15#include <vector>
16#include <string>
17
19class MsgStream;
20
22public:
23
24 LArBadChannelDecoder( const LArOnlineID_Base* onlineID, bool isSC=false) :
25 m_onlineID( onlineID), m_isSC(isSC) {}
26
29 typedef std::pair< HWIdentifier, LArBadFeb> BadFebEntry;
30
31 std::vector<BadChanEntry> readASCII( const std::string& name,
33 MsgStream& log) const;
34
35 std::vector<BadFebEntry> readFebASCII( const std::string& fname,
36 MsgStream& log) const;
37
38private:
39
40 enum {barrel_ec, pos_neg, feedthrough, slot, channel}; // for local use only
41
46
47 bool m_isSC;
48
49 HWIdentifier constructChannelId( const std::vector<int>& intVec,
51 MsgStream& log) const;
52 std::pair<bool,LArBadChannel> constructStatus( const std::vector<std::string>& vec,
53 MsgStream& log) const;
54 std::pair<bool,LArBadFeb> constructFebStatus( const std::vector<std::string>& vec,
55 MsgStream& log) const;
56 bool checkId( const HWIdentifier&, int be, int pn, State::CoolChannelEnum) const;
57
58 std::vector<HWIdentifier> constructFebId( const std::vector<int>& intVec,
59 MsgStream& log) const;
60
61 HWIdentifier constructSingleFebId( const std::vector<int>& v, MsgStream& log) const;
62
63 static MsgStream& insertExpandedID( const std::vector<int>& intVec, MsgStream& log) ;
64
65};
66
67#endif
std::vector< size_t > vec
LArBadFebBitPacking m_febPacking
LArBadChanBitPacking m_packing
HWIdentifier constructSingleFebId(const std::vector< int > &v, MsgStream &log) const
std::vector< BadFebEntry > readFebASCII(const std::string &fname, MsgStream &log) const
std::pair< bool, LArBadFeb > constructFebStatus(const std::vector< std::string > &vec, MsgStream &log) const
LArBadChannelDecoder(const LArOnlineID_Base *onlineID, bool isSC=false)
std::vector< BadChanEntry > readASCII(const std::string &name, State::CoolChannelEnum coolChan, MsgStream &log) const
LArBadChanSCBitPacking m_SCpacking
HWIdentifier constructChannelId(const std::vector< int > &intVec, State::CoolChannelEnum coolChan, MsgStream &log) const
std::pair< bool, LArBadChannel > constructStatus(const std::vector< std::string > &vec, MsgStream &log) const
const LArOnlineID_Base * m_onlineID
LArBadChannelState::BadChanEntry BadChanEntry
std::pair< HWIdentifier, LArBadFeb > BadFebEntry
static MsgStream & insertExpandedID(const std::vector< int > &intVec, MsgStream &log)
LArBadChannelState State
std::vector< HWIdentifier > constructFebId(const std::vector< int > &intVec, MsgStream &log) const
bool checkId(const HWIdentifier &, int be, int pn, State::CoolChannelEnum) const
std::pair< HWIdentifier, LArBadChannel > BadChanEntry
Helper for the Liquid Argon Calorimeter cell identifiers.