ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
LArCalorimeter
LArRecConditions
LArRecConditions
LArBadChanBitPackingBase.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 LArBadChanBitPackingBase_H
6
#define LArBadChanBitPackingBase_H
7
8
#include "
LArRecConditions/LArBadChannel.h
"
9
#include <string>
10
#include <vector>
11
#include <map>
12
13
template
<
class
T>
14
class
TLArBadChanBitPackingBase
{
15
public
:
16
17
typedef
std::vector<LArBadChannel::PosType>
PosContainer
;
18
19
TLArBadChanBitPackingBase
():
m_bitPos
( 8*sizeof(
LArBadChannel
::BitWord),0),
20
m_index
( 8*sizeof(
LArBadChannel
::BitWord),-1),
21
m_highGainMask
(0),
22
m_mediumGainMask
(0),
23
m_lowGainMask
(0) {};
24
25
const
std::string&
stringName
(
typename
T::ProblemType pb)
const
;
26
27
std::pair<bool, typename T::ProblemType>
enumName
(
const
std::string&
str
)
const
;
28
29
LArBadChannel::PosType
bitPosition
(
typename
T::ProblemType pb)
const
{
return
m_bitPos
[
static_cast<
LArBadChannel::PosType
>
(pb)];}
30
31
LArBadChannel::PosType
wordSize
()
const
{
return
sizeof
(
LArBadChannel::BitWord
);}
32
33
void
setBit
(
typename
T::ProblemType pb,
LArBadChannel::BitWord
& word,
bool
value=
true
)
const
;
34
void
setBit
(
typename
T::ProblemType pb,
LArBadChannel
& word,
bool
value=
true
)
const
;
35
36
bool
setBit
(
const
std::string& name,
LArBadChannel::BitWord
& word,
bool
value=
true
)
const
;
37
bool
setBit
(
const
std::string& name,
LArBadChannel
& word,
bool
value=
true
)
const
;
38
39
std::string
stringStatus
(
const
LArBadChannel
& bc)
const
;
40
41
// These LArBadChannel::BitWord masks are used to do gain-dependent masking in LArBadChannelMasker.
42
LArBadChannel::BitWord
highGainMask
()
const
{
return
m_highGainMask
;}
43
LArBadChannel::BitWord
mediumGainMask
()
const
{
return
m_mediumGainMask
;}
44
LArBadChannel::BitWord
lowGainMask
()
const
{
return
m_lowGainMask
;}
45
46
int
numberOfProblemTypes
()
const
{
return
m_nameVec
.size();}
47
48
protected
:
49
50
// This is used to describe the dependence of each T::ProblemType on LAr gain.
51
enum
GainDependence
{
independent
,
low
,
medium
,
high
};
52
53
PosContainer
m_bitPos
;
54
std::vector<int>
m_index
;
55
std::vector< std::pair<typename T::ProblemType, GainDependence> >
m_enumVec
;
56
57
std::vector<std::string>
m_nameVec
;
58
std::map<std::string, typename T::ProblemType>
m_nameMap
;
59
60
// These are non-static so that different TLArBadChanBitPackingBase versions can be used simultaneously.
61
LArBadChannel::BitWord
m_highGainMask
;
62
LArBadChannel::BitWord
m_mediumGainMask
;
63
LArBadChannel::BitWord
m_lowGainMask
;
64
65
void
addBit
(
typename
T::ProblemType pb,
const
std::string& name,
GainDependence
gaindep);
66
int
index
(
typename
T::ProblemType pb)
const
{
return
m_index
[pb];}
67
void
initMasks
();
68
};
69
70
#include "
LArBadChanBitPackingBase.icc
"
71
72
73
#endif
74
LArBadChanBitPackingBase.icc
LArBadChannel.h
LArBadChannel
Definition
LArBadChannel.h:10
LArBadChannel::BitWord
unsigned int BitWord
Definition
LArBadChannel.h:13
LArBadChannel::PosType
unsigned int PosType
Definition
LArBadChannel.h:12
TLArBadChanBitPackingBase< LArBadChannel::LArBadChannelSCEnum >::m_nameVec
std::vector< std::string > m_nameVec
Definition
LArBadChanBitPackingBase.h:57
TLArBadChanBitPackingBase::setBit
void setBit(typename T::ProblemType pb, LArBadChannel::BitWord &word, bool value=true) const
TLArBadChanBitPackingBase::stringName
const std::string & stringName(typename T::ProblemType pb) const
TLArBadChanBitPackingBase::index
int index(typename T::ProblemType pb) const
Definition
LArBadChanBitPackingBase.h:66
TLArBadChanBitPackingBase< LArBadChannel::LArBadChannelSCEnum >::m_lowGainMask
LArBadChannel::BitWord m_lowGainMask
Definition
LArBadChanBitPackingBase.h:63
TLArBadChanBitPackingBase< LArBadChannel::LArBadChannelSCEnum >::m_enumVec
std::vector< std::pair< typename LArBadChannel::LArBadChannelSCEnum::ProblemType, GainDependence > > m_enumVec
Definition
LArBadChanBitPackingBase.h:55
TLArBadChanBitPackingBase< LArBadChannel::LArBadChannelSCEnum >::m_bitPos
PosContainer m_bitPos
Definition
LArBadChanBitPackingBase.h:53
TLArBadChanBitPackingBase::lowGainMask
LArBadChannel::BitWord lowGainMask() const
Definition
LArBadChanBitPackingBase.h:44
TLArBadChanBitPackingBase::highGainMask
LArBadChannel::BitWord highGainMask() const
Definition
LArBadChanBitPackingBase.h:42
TLArBadChanBitPackingBase< LArBadChannel::LArBadChannelSCEnum >::m_index
std::vector< int > m_index
Definition
LArBadChanBitPackingBase.h:54
TLArBadChanBitPackingBase::wordSize
LArBadChannel::PosType wordSize() const
Definition
LArBadChanBitPackingBase.h:31
TLArBadChanBitPackingBase::bitPosition
LArBadChannel::PosType bitPosition(typename T::ProblemType pb) const
Definition
LArBadChanBitPackingBase.h:29
TLArBadChanBitPackingBase::TLArBadChanBitPackingBase
TLArBadChanBitPackingBase()
Definition
LArBadChanBitPackingBase.h:19
TLArBadChanBitPackingBase< LArBadChannel::LArBadChannelSCEnum >::m_mediumGainMask
LArBadChannel::BitWord m_mediumGainMask
Definition
LArBadChanBitPackingBase.h:62
TLArBadChanBitPackingBase::numberOfProblemTypes
int numberOfProblemTypes() const
Definition
LArBadChanBitPackingBase.h:46
TLArBadChanBitPackingBase::GainDependence
GainDependence
Definition
LArBadChanBitPackingBase.h:51
TLArBadChanBitPackingBase::independent
@ independent
Definition
LArBadChanBitPackingBase.h:51
TLArBadChanBitPackingBase::high
@ high
Definition
LArBadChanBitPackingBase.h:51
TLArBadChanBitPackingBase::low
@ low
Definition
LArBadChanBitPackingBase.h:51
TLArBadChanBitPackingBase::medium
@ medium
Definition
LArBadChanBitPackingBase.h:51
TLArBadChanBitPackingBase::setBit
bool setBit(const std::string &name, LArBadChannel &word, bool value=true) const
TLArBadChanBitPackingBase< LArBadChannel::LArBadChannelSCEnum >::m_highGainMask
LArBadChannel::BitWord m_highGainMask
Definition
LArBadChanBitPackingBase.h:61
TLArBadChanBitPackingBase< LArBadChannel::LArBadChannelSCEnum >::PosContainer
std::vector< LArBadChannel::PosType > PosContainer
Definition
LArBadChanBitPackingBase.h:17
TLArBadChanBitPackingBase::setBit
void setBit(typename T::ProblemType pb, LArBadChannel &word, bool value=true) const
TLArBadChanBitPackingBase::setBit
bool setBit(const std::string &name, LArBadChannel::BitWord &word, bool value=true) const
TLArBadChanBitPackingBase::initMasks
void initMasks()
TLArBadChanBitPackingBase::mediumGainMask
LArBadChannel::BitWord mediumGainMask() const
Definition
LArBadChanBitPackingBase.h:43
TLArBadChanBitPackingBase::addBit
void addBit(typename T::ProblemType pb, const std::string &name, GainDependence gaindep)
TLArBadChanBitPackingBase::stringStatus
std::string stringStatus(const LArBadChannel &bc) const
TLArBadChanBitPackingBase::enumName
std::pair< bool, typename T::ProblemType > enumName(const std::string &str) const
TLArBadChanBitPackingBase< LArBadChannel::LArBadChannelSCEnum >::m_nameMap
std::map< std::string, typename LArBadChannel::LArBadChannelSCEnum::ProblemType > m_nameMap
Definition
LArBadChanBitPackingBase.h:58
str
Definition
BTagTrackIpAccessor.cxx:11
Generated on
for ATLAS Offline Software by
1.17.0