ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
LArCalorimeter
LArCalibTools
src
LArRinj2Ntuple.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
LArCalibTools/LArRinj2Ntuple.h
"
6
#include "
LArIdentifier/LArOnlineID.h
"
7
8
9
LArRinj2Ntuple::LArRinj2Ntuple
(
const
std::string& name, ISvcLocator* pSvcLocator):
10
LArCond2NtupleBase
(name, pSvcLocator) {
11
m_ntTitle
=
"Rinj"
;
12
m_ntpath
=
"/NTUPLES/FILE1/RINJ"
;
13
14
}
15
16
StatusCode
LArRinj2Ntuple::initialize
() {
17
ATH_CHECK
(
m_contKey
.initialize() );
18
return
LArCond2NtupleBase::initialize
();
19
}
20
21
StatusCode
LArRinj2Ntuple::stop
() {
22
const
ILArRinj
* LArRinj =
nullptr
;
23
StatusCode
sc
;
24
sc
=
m_detStore
->retrieve(LArRinj,
m_contKey
.key());
25
if
(
sc
!=StatusCode::SUCCESS) {
26
ATH_MSG_ERROR
(
"Unable to retrieve ILArRinj with key "
27
<<
m_contKey
<<
" from DetectorStore try ConditionsStore"
);
28
const
EventContext& ctx = Gaudi::Hive::currentContext();
29
SG::ReadCondHandle<LArRinjComplete>
rinjHdl{
m_contKey
, ctx};
30
LArRinj = *rinjHdl;
31
if
(!LArRinj) {
32
ATH_MSG_ERROR
(
"Unable to retrieve ILArRinj with key "
33
<<
m_contKey
<<
" from ConditionsStore as well"
);
34
return
StatusCode::FAILURE;
35
}
36
}
37
38
NTuple::Item<long> cellIndex;
39
NTuple::Item<float> rinj;
40
41
sc
=
m_nt
->addItem(
"icell"
,cellIndex,0,2000);
42
if
(
sc
!=StatusCode::SUCCESS)
43
{
ATH_MSG_ERROR
(
"addItem 'Cell Index' failed"
);
44
return
StatusCode::FAILURE;
45
}
46
47
48
sc
=
m_nt
->addItem(
"rinj"
,rinj,-1000.,2.);
49
if
(
sc
!=StatusCode::SUCCESS) {
50
ATH_MSG_ERROR
(
"addItem 'rinj' failed"
);
51
return
StatusCode::FAILURE;
52
}
53
54
55
ATH_MSG_DEBUG
(
"LArRinj2Ntuple: using LAr cell cabling"
);
56
SG::ReadCondHandle<LArOnOffIdMapping>
cablingHdl{
m_cablingKey
};
57
const
LArOnOffIdMapping
*cabling=*cablingHdl;
58
if
(!cabling) {
59
ATH_MSG_WARNING
(
"Do not have cabling object LArOnOffIdMapping"
);
60
return
StatusCode::FAILURE;
61
}
62
63
//=================
64
65
const
LArOnlineID
* ll;
66
sc
=
detStore
()->retrieve(ll,
"LArOnlineID"
);
67
if
(
sc
.isFailure()) {
68
msg
(MSG::ERROR) <<
"Could not get LArOnlineID helper !"
<<
endmsg
;
69
return
StatusCode::FAILURE;
70
}
71
else
{
72
m_onlineId
=
static_cast<
const
LArOnlineID_Base
*
>
(ll);
73
ATH_MSG_DEBUG
(
" Found the LAr cell LArOnlineID helper. "
);
74
}
75
76
// ==============
77
78
unsigned
cellCounter=0;
79
for
(
const
HWIdentifier
hwid:
m_onlineId
->channel_range()) {
80
if
( cabling->isOnlineConnected(hwid)) {
81
fillFromIdentifier
(hwid);
82
cellIndex = cellCounter;
83
rinj = LArRinj->
Rinj
(hwid);
84
sc
=
ntupleSvc
()->writeRecord(
m_nt
);
85
if
(
sc
!=StatusCode::SUCCESS) {
86
ATH_MSG_ERROR
(
"writeRecord failed"
);
87
return
StatusCode::FAILURE;
88
}
89
cellCounter++;
90
}
//end if isConnected
91
}
//end loop over online ID
92
ATH_MSG_INFO
(
"LArRinj2Ntuple: filled "
<<cellCounter);
93
ATH_MSG_INFO
(
"LArRinj2Ntuple has finished."
);
94
return
StatusCode::SUCCESS;
95
}
// end finalize-method.
96
endmsg
#define endmsg
Definition
AnalysisConfig_Ntuple.cxx:54
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition
AthMsgStreamMacros.h:33
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition
AthMsgStreamMacros.h:31
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition
AthMsgStreamMacros.h:32
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
LArOnlineID.h
sc
static Double_t sc
Definition
LArPhysWaveHECTool.cxx:37
LArRinj2Ntuple.h
ntupleSvc
INTupleSvc * ntupleSvc()
Definition
ServiceAccessor.h:14
AthCommonAlgorithm< Gaudi::Algorithm >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
Definition
AthCommonDataStore.h:95
AthCommonAlgorithm< Gaudi::Algorithm >::msg
MsgStream & msg() const
Definition
AthCommonMsg.h:24
HWIdentifier
Definition
HWIdentifier.h:13
ILArRinj
Definition
ILArRinj.h:12
ILArRinj::Rinj
virtual const float & Rinj(const HWIdentifier &id) const =0
LArCond2NtupleBase::initialize
StatusCode initialize()
Definition
LArCond2NtupleBase.cxx:33
LArCond2NtupleBase::m_detStore
StoreGateSvc * m_detStore
Definition
LArCond2NtupleBase.h:84
LArCond2NtupleBase::m_ntTitle
std::string m_ntTitle
Definition
LArCond2NtupleBase.h:68
LArCond2NtupleBase::m_nt
NTuple::Tuple * m_nt
Definition
LArCond2NtupleBase.h:71
LArCond2NtupleBase::m_cablingKey
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
Definition
LArCond2NtupleBase.h:92
LArCond2NtupleBase::m_onlineId
const LArOnlineID_Base * m_onlineId
Definition
LArCond2NtupleBase.h:88
LArCond2NtupleBase::m_ntpath
std::string m_ntpath
Definition
LArCond2NtupleBase.h:68
LArCond2NtupleBase::fillFromIdentifier
bool fillFromIdentifier(const HWIdentifier &id)
Definition
LArCond2NtupleBase.cxx:290
LArCond2NtupleBase::LArCond2NtupleBase
LArCond2NtupleBase(const std::string &name, ISvcLocator *pSvcLocator)
Definition
LArCond2NtupleBase.cxx:15
LArOnOffIdMapping
Definition
LArOnOffIdMapping.h:20
LArOnlineID_Base
Helper for the Liquid Argon Calorimeter cell identifiers.
Definition
LArOnlineID_Base.h:97
LArOnlineID
Definition
LArOnlineID.h:21
LArRinj2Ntuple::LArRinj2Ntuple
LArRinj2Ntuple(const std::string &name, ISvcLocator *pSvcLocator)
Definition
LArRinj2Ntuple.cxx:9
LArRinj2Ntuple::stop
virtual StatusCode stop()
Definition
LArRinj2Ntuple.cxx:21
LArRinj2Ntuple::initialize
virtual StatusCode initialize()
Definition
LArRinj2Ntuple.cxx:16
LArRinj2Ntuple::m_contKey
SG::ReadCondHandleKey< LArRinjComplete > m_contKey
Definition
LArRinj2Ntuple.h:24
SG::ReadCondHandle
Definition
ReadCondHandle.h:40
Generated on
for ATLAS Offline Software by
1.17.0