ATLAS Offline Software
Calorimeter
CaloCondBlobObjs
src
CaloCondUtils.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
AthenaKernel/getMessageSvc.h
"
6
#include "GaudiKernel/MsgStream.h"
7
#include "
CaloCondBlobObjs/CaloCondUtils.h
"
8
#include "
CaloCondBlobObjs/Exception.h
"
9
#include <iomanip>
10
11
//
12
//___________________________________________________________
13
//std::map<CaloCondUtils::SYSTEM,unsigned int> CaloCondUtils::m_nCells;
14
15
//
16
//___________________________________________________________
17
unsigned
int
18
CaloCondUtils::getCoolChannelId
(
const
SYSTEM
sys
)
19
{
20
return
static_cast<
unsigned
int
>
(
sys
);
21
}
22
23
//
24
//___________________________________________________________
25
unsigned
int
26
CaloCondUtils::getNCells
(
const
SYSTEM
sys
)
27
{
28
/*
29
//=== initialize on first usage
30
if(!m_nCells.size()){
31
m_nCells[EMECZNEG] = 31872;
32
m_nCells[EMBZNEG ] = 54784;
33
m_nCells[EMBZPOS ] = 54784;
34
m_nCells[EMECZPOS] = 31872;
35
m_nCells[HEC ] = 5632;
36
m_nCells[FCAL ] = 3524;
37
m_nCells[TILE ] = 5184;
38
}
39
*/
40
41
switch
(
sys
) {
42
case
EMBZNEG
:
43
return
54784;
44
break
;
45
case
EMBZPOS
:
46
return
54784;
47
break
;
48
case
EMECZNEG
:
49
return
31872;
50
break
;
51
case
EMECZPOS
:
52
return
31872;
53
break
;
54
case
HEC
:
55
return
5632;
56
break
;
57
case
TILE
:
58
return
5184;
59
break
;
60
case
FCAL
:
61
return
3524;
62
break
;
63
}
64
65
return
0;
66
}
67
68
//
69
//_____________________________________________________________________________
70
std::string
71
CaloCondUtils::getFullTag
(
const
std::string&
folder
,
const
std::string&
tag
)
72
{
73
std::string
folderTag
(
""
);
74
//Copy folder name, ommiting slashes
75
for
(
const
char
i
:
folder
) {
76
if
(
i
!=
'/'
) {
77
folderTag
+=
i
;
78
}
79
}
80
return
(
folderTag
+
"-"
+
tag
);
81
}
82
83
//
84
//_____________________________________________________________________________
85
unsigned
int
86
CaloCondUtils::getDbCaloGain
(
int
caloGain)
87
// enum CaloGain {
88
// TILELOWLOW =-16 ,
89
// TILELOWHIGH =-15 ,
90
// TILEHIGHLOW = -12,
91
// TILEHIGHHIGH = -11,
92
// TILEONELOW =-4,
93
// TILEONEHIGH =-3,
94
// INVALIDGAIN = -1, LARHIGHGAIN = 0, LARMEDIUMGAIN = 1, LARLOWGAIN = 2,
95
// LARNGAIN =3,
96
// UNKNOWNGAIN=4};
97
{
98
99
//=== do nothing for LAr gains
100
if
(caloGain>=0 && caloGain<=2)
return
static_cast<
unsigned
int
>
(caloGain);
101
102
//=== translate tile gains
103
if
(caloGain==-16)
return
0;
//LOWLOW
104
if
(caloGain==-15)
return
1;
//LOWHIGH
105
if
(caloGain==-12)
return
2;
//HIGHLOW
106
if
(caloGain==-11)
return
3;
//HIGHHIGH
107
if
(caloGain== -4)
return
0;
//ONELOW
108
if
(caloGain== -3)
return
3;
//ONEHIGH
109
110
//=== invalid gain
111
{
112
MsgStream
log
(
Athena::getMessageSvc
(),
"CaloCondUtils::getDbCaloGain"
);
113
log
<< MSG::WARNING <<
"invalid gain found... probably corrupted data /badly decoded ? returns DbCaloGain 0"
<<
endmsg
;
114
return
0;
115
}
116
//throw CaloCond::InvalidCaloGain("CaloCondUtils::getDbCaloGain()", caloGain);
117
}
118
119
120
CaloCondUtils::EMECZPOS
@ EMECZPOS
Definition:
CaloCondUtils.h:22
CaloCondUtils::FCAL
@ FCAL
Definition:
CaloCondUtils.h:24
getMessageSvc.h
singleton-like access to IMessageSvc via open function and helper
CaloCondUtils::HEC
@ HEC
Definition:
CaloCondUtils.h:23
CaloCondUtils::TILE
@ TILE
Definition:
CaloCondUtils.h:25
CaloCondUtils::SYSTEM
SYSTEM
Definition:
CaloCondUtils.h:19
CaloCondUtils.h
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition:
getMessageSvc.cxx:20
mapkey::sys
@ sys
Definition:
TElectronEfficiencyCorrectionTool.cxx:42
Exception.h
CaloCondUtils::getFullTag
static std::string getFullTag(const std::string &folder, const std::string &tag)
Returns the full tag string, composed of camelized folder name and tag part.
Definition:
CaloCondUtils.cxx:71
CaloCondUtils::EMECZNEG
@ EMECZNEG
Definition:
CaloCondUtils.h:19
lumiFormat.i
int i
Definition:
lumiFormat.py:85
endmsg
#define endmsg
Definition:
AnalysisConfig_Ntuple.cxx:63
CaloCondUtils::EMBZNEG
@ EMBZNEG
Definition:
CaloCondUtils.h:20
CaloCondUtils::getNCells
static unsigned int getNCells(const SYSTEM sys)
Returns the number of cells for a given system.
Definition:
CaloCondUtils.cxx:26
CaloCondUtils::getDbCaloGain
static unsigned int getDbCaloGain(int caloGain)
Returns the non-negative gainId to be used with the COOL DB.
Definition:
CaloCondUtils.cxx:86
CaloCondBlobAlgs_fillNoiseFromASCII.folderTag
folderTag
Definition:
CaloCondBlobAlgs_fillNoiseFromASCII.py:52
CaloCondUtils::getCoolChannelId
static unsigned int getCoolChannelId(const SYSTEM sys)
Returns the cool channel id associated with a given system.
Definition:
CaloCondUtils.cxx:18
python.CaloCondTools.log
log
Definition:
CaloCondTools.py:20
CaloCondBlobAlgs_fillNoiseFromASCII.folder
folder
Definition:
CaloCondBlobAlgs_fillNoiseFromASCII.py:56
CaloCondBlobAlgs_fillNoiseFromASCII.tag
string tag
Definition:
CaloCondBlobAlgs_fillNoiseFromASCII.py:24
CaloCondUtils::EMBZPOS
@ EMBZPOS
Definition:
CaloCondUtils.h:21
Generated on Sun Dec 22 2024 21:07:53 for ATLAS Offline Software by
1.8.18