ATLAS Offline Software
ForwardDetectors
AFP
AFP_ByteStream2RawCnv
src
AFP_LinkNumTranslator.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
AFP_ByteStream2RawCnv/AFP_LinkNumTranslator.h
"
6
7
AFP_LinkNumTranslator::AFP_LinkNumTranslator
(
const
std::string&
type
,
const
std::string&
name
,
const
IInterface*
parent
) :
8
base_class(
type
,
name
,
parent
)
9
{
10
}
11
12
AFP_LinkNumTranslator::~AFP_LinkNumTranslator
()
13
{
14
}
15
16
StatusCode
AFP_LinkNumTranslator::initialize
()
17
{
18
if
(
m_useDB
)
19
{
20
ATH_MSG_ERROR
(
"Using DB is not implemented yet"
);
21
return
StatusCode::FAILURE;
22
/*
23
ATH_CHECK( m_readDBKey_AF.initialize() );
24
ATH_MSG_INFO( "Using DB with key " << m_readDBKey_AF.fullKey() );
25
ATH_CHECK( m_readDBKey_AN.initialize() );
26
ATH_MSG_INFO( "Using DB with key " << m_readDBKey_AN.fullKey() );
27
ATH_CHECK( m_readDBKey_CF.initialize() );
28
ATH_MSG_INFO( "Using DB with key " << m_readDBKey_CF.fullKey() );
29
ATH_CHECK( m_readDBKey_CN.initialize() );
30
ATH_MSG_INFO( "Using DB with key " << m_readDBKey_CN.fullKey() );
31
*/
32
}
33
else
34
{
35
ATH_MSG_INFO
(
"Using hard-coded values"
);
36
}
37
return
StatusCode::SUCCESS;
38
}
39
40
StatusCode
AFP_LinkNumTranslator::finalize
()
41
{
42
return
StatusCode::SUCCESS;
43
}
44
45
unsigned
int
AFP_LinkNumTranslator::translate
(
unsigned
int
origlink)
const
46
{
47
48
const
EventContext& ctx = Gaudi::Hive::currentContext();
49
// EventIDBase t( ctx.eventID() );
50
51
if
(
m_useDB
)
52
{
53
ATH_MSG_ERROR
(
"Using DB is not implemented yet, will return kUnknown = "
<<
kUnknown
);
54
return
kUnknown
;
55
56
// TODO: distinguish between A and C?
57
// TODO: change based on reality
58
/*
59
SG::ReadCondHandle<CondAttrListCollection> readHandle_AF( m_readDBKey_AF, ctx );
60
const CondAttrListCollection* attrLocList_AF { *readHandle_AF };
61
if ( attrLocList_AF == nullptr )
62
{
63
ATH_MSG_ERROR("data for key " << m_readDBKey_AF.fullKey() << " not found");
64
return 0;
65
}
66
CondAttrListCollection::const_iterator chanIt=attrLocList_AF->begin();
67
CondAttrListCollection::const_iterator chanIt_e=attrLocList_AF->end();
68
for(;chanIt!=chanIt_e;++chanIt) {
69
const unsigned channel=chanIt->first;
70
const coral::AttributeList& attr=chanIt->second;
71
int linkNr = (attr)["linkNr"].data<int>(); // TODO: get link number from the blob
72
ATH_MSG_INFO("execute: run "<<ctx.eventID().run_number()<<", lb "<<ctx.eventID().lumi_block()<<", evnt "<<ctx.eventID().event_number()<<", channel "<<channel<<", linkNr "<<linkNr);
73
74
if((unsigned int)linkNr==origlink)
75
{
76
switch(channel)
77
{
78
case 0: return kNS0;
79
case 1: return kNS1;
80
case 2: return kNS2;
81
case 3: return kNS3;
82
}
83
}
84
}
85
86
// not found in far, try near
87
SG::ReadCondHandle<CondAttrListCollection> readHandle_AN( m_readDBKey_AN, ctx );
88
const CondAttrListCollection* attrLocList_AN { *readHandle_AN };
89
if ( attrLocList_AN == nullptr )
90
{
91
ATH_MSG_ERROR("data for key " << m_readDBKey_AN.fullKey() << " not found");
92
return 0;
93
}
94
chanIt=attrLocList_AN->begin();
95
chanIt_e=attrLocList_AN->end();
96
for(;chanIt!=chanIt_e;++chanIt) {
97
const unsigned channel=chanIt->first;
98
const coral::AttributeList& attr=chanIt->second;
99
int linkNr = (attr)["linkNr"].data<int>(); // TODO: get link number from the blob
100
ATH_MSG_INFO("execute: run "<<ctx.eventID().run_number()<<", lb "<<ctx.eventID().lumi_block()<<", evnt "<<ctx.eventID().event_number()<<", channel "<<channel<<", linkNr "<<linkNr);
101
102
if((unsigned int)linkNr==origlink)
103
{
104
switch(channel)
105
{
106
case 0: return kFS0;
107
case 1: return kFS1;
108
case 2: return kFS2;
109
case 3: return kFS3;
110
case 4: return kFS4;
111
case 5: return kFS5;
112
}
113
}
114
}
115
116
ATH_MSG_ERROR("did not find the corresponding entry in DB; requested translation of link number " << origlink << " for run " << ctx.eventID().run_number());
117
return 0;
118
*/
119
}
120
else
121
{
122
// don't use DB
123
124
int
run_nr = ctx.eventID().run_number();
125
int
Run
= (run_nr > 370000 ? 3 : 2);
126
if
(
m_forceRunConfig
)
Run
=
m_forceRunConfig
;
127
128
if
(
Run
==2)
129
{
130
ATH_MSG_DEBUG
(
"asked for link "
<<origlink<<
", from run "
<<run_nr<<
", Run "
<<
Run
);
131
return
origlink;
132
}
133
else
if
(
Run
==3)
134
{
135
unsigned
int
kReturn=999;
136
switch
(origlink)
137
{
138
case
0: kReturn=
kNS0
;
break
;
139
case
2: kReturn=
kNS1
;
break
;
140
case
4: kReturn=
kNS2
;
break
;
141
case
6: kReturn=
kNS3
;
break
;
142
case
8: kReturn=
kFS0
;
break
;
143
case
10: kReturn=
kFS1
;
break
;
144
case
12: kReturn=
kFS2
;
break
;
145
case
14: kReturn=
kFS3
;
break
;
146
case
9: kReturn=
kFS4
;
break
;
147
case
11: kReturn=
kFS5
;
break
;
148
default
:
149
ATH_MSG_ERROR
(
"requested translation of unknown link number "
<< origlink <<
" for run "
<< run_nr);
150
kReturn=
kUnknown
;
151
}
152
ATH_MSG_DEBUG
(
"asked for link "
<<origlink<<
", from run "
<<run_nr<<
", Run "
<<
Run
<<
", will return "
<<kReturn);
153
154
return
kReturn;
155
}
156
else
157
{
158
ATH_MSG_ERROR
(
"requested link "
<< origlink <<
" for unknown Run "
<<
Run
);
159
return
kUnknown
;
160
}
161
}
162
163
}
164
165
AFP_LinkNumTranslator::kNS0
@ kNS0
Definition:
AFP_LinkNumTranslator.h:32
AFP_LinkNumTranslator::kNS3
@ kNS3
Definition:
AFP_LinkNumTranslator.h:32
AFP_LinkNumTranslator::m_forceRunConfig
Gaudi::Property< int > m_forceRunConfig
Definition:
AFP_LinkNumTranslator.h:38
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition:
AthMsgStreamMacros.h:31
AFP_LinkNumTranslator::kNS2
@ kNS2
Definition:
AFP_LinkNumTranslator.h:32
AFP_LinkNumTranslator::AFP_LinkNumTranslator
AFP_LinkNumTranslator(const std::string &type, const std::string &name, const IInterface *parent)
Definition:
AFP_LinkNumTranslator.cxx:7
AFP_LinkNumTranslator::finalize
virtual StatusCode finalize() override
Definition:
AFP_LinkNumTranslator.cxx:40
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition:
AthMsgStreamMacros.h:33
AFP_LinkNumTranslator::kFS2
@ kFS2
Definition:
AFP_LinkNumTranslator.h:32
AFP_LinkNumTranslator::kFS5
@ kFS5
Definition:
AFP_LinkNumTranslator.h:32
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition:
PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition:
AthMsgStreamMacros.h:29
AFP_LinkNumTranslator::kFS3
@ kFS3
Definition:
AFP_LinkNumTranslator.h:32
AFP_LinkNumTranslator::m_useDB
Gaudi::Property< bool > m_useDB
Definition:
AFP_LinkNumTranslator.h:37
AFP_LinkNumTranslator::kFS1
@ kFS1
Definition:
AFP_LinkNumTranslator.h:32
test_pyathena.parent
parent
Definition:
test_pyathena.py:15
AFP_LinkNumTranslator::kFS4
@ kFS4
Definition:
AFP_LinkNumTranslator.h:32
AFP_LinkNumTranslator::kNS1
@ kNS1
Definition:
AFP_LinkNumTranslator.h:32
AFP_LinkNumTranslator::~AFP_LinkNumTranslator
virtual ~AFP_LinkNumTranslator() override
Definition:
AFP_LinkNumTranslator.cxx:12
AFP_LinkNumTranslator::kFS0
@ kFS0
Definition:
AFP_LinkNumTranslator.h:32
name
std::string name
Definition:
Control/AthContainers/Root/debug.cxx:221
AFP_LinkNumTranslator::initialize
virtual StatusCode initialize() override
Definition:
AFP_LinkNumTranslator.cxx:16
AFP_LinkNumTranslator::kUnknown
@ kUnknown
Definition:
AFP_LinkNumTranslator.h:32
python.CaloScaleNoiseConfig.type
type
Definition:
CaloScaleNoiseConfig.py:78
AFP_LinkNumTranslator.h
AFP_LinkNumTranslator::translate
unsigned int translate(unsigned int origlink) const override
Definition:
AFP_LinkNumTranslator.cxx:45
CaloLCWConfig.Run
Run
Definition:
CaloLCWConfig.py:39
Generated on Thu Nov 7 2024 21:09:36 for ATLAS Offline Software by
1.8.18