ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Calorimeter
CaloCellCorrection
src
CaloCellTimeCorrTool.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
CaloCellTimeCorrTool.h
"
6
#include "
CaloEvent/CaloCellContainer.h
"
7
#include "
CaloCondBlobObjs/CaloCondBlobFlt.h
"
8
9
10
CaloCellTimeCorrTool::CaloCellTimeCorrTool
(
const
std::string&
type
,
11
const
std::string& name,
12
const
IInterface* parent) :
13
base_class (
type
, name, parent) {}
14
15
CaloCellTimeCorrTool::~CaloCellTimeCorrTool
() =
default
;
16
17
18
StatusCode
CaloCellTimeCorrTool::initialize
() {
19
ATH_CHECK
(
m_timeShiftFldr
.initialize());
20
return
StatusCode::SUCCESS;
21
}
22
23
24
25
StatusCode
CaloCellTimeCorrTool::process
(
CaloCellContainer
* theCaloCellContainer,
26
const
EventContext& ctx)
const
{
27
28
SG::ReadCondHandle<AthenaAttributeList>
timeShiftHdl(
m_timeShiftFldr
,ctx);
29
30
31
//Possible optimization: If the following lines turn out to be slow to be executed on every event,
32
//put them into a conditions algo
33
const
coral::Blob& blob = (**timeShiftHdl)[
"CaloCondBlob16M"
].data<coral::Blob>();
34
if
(blob.size()<3) {
35
ATH_MSG_DEBUG
(
"Found empty blob, no corretion needed"
);
36
return
StatusCode::SUCCESS;
37
}
38
39
std::unique_ptr<const CaloCondBlobFlt> corrValues(
CaloCondBlobFlt::getInstance
(blob));
40
ATH_MSG_DEBUG
(
"Database folder has values for "
<< corrValues->getNChans() <<
" channels and "
<< corrValues->getNGains() <<
" gains."
);
41
42
CaloCellContainer::iterator
it=theCaloCellContainer->
begin
();
43
CaloCellContainer::iterator
it_e=theCaloCellContainer->
end
();
44
for
(;it!=it_e;++it) {
45
CaloCell
* theCell=(*it);
46
const
IdentifierHash
& hash_id=theCell->
caloDDE
()->
calo_hash
();
47
if
(hash_id<corrValues->getNChans()) {
48
const
float
& shift= corrValues->getData(hash_id);
49
theCell->
addTime
(shift);
50
}
//end if hash_id<NChans
51
}
//end loop over cells
52
return
StatusCode::SUCCESS;
53
}
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
CaloCellContainer.h
CaloCellTimeCorrTool.h
CaloCondBlobFlt.h
CaloCellContainer
Container class for CaloCell.
Definition
CaloCellContainer.h:55
CaloCellTimeCorrTool::process
virtual StatusCode process(CaloCellContainer *theCellContainer, const EventContext &ctx) const override
Definition
CaloCellTimeCorrTool.cxx:25
CaloCellTimeCorrTool::CaloCellTimeCorrTool
CaloCellTimeCorrTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition
CaloCellTimeCorrTool.cxx:10
CaloCellTimeCorrTool::initialize
virtual StatusCode initialize() override
Definition
CaloCellTimeCorrTool.cxx:18
CaloCellTimeCorrTool::~CaloCellTimeCorrTool
~CaloCellTimeCorrTool()
CaloCellTimeCorrTool::m_timeShiftFldr
SG::ReadCondHandleKey< AthenaAttributeList > m_timeShiftFldr
Definition
CaloCellTimeCorrTool.h:35
CaloCell
Data object for each calorimeter readout cell.
Definition
CaloCell.h:57
CaloCell::addTime
void addTime(float delta)
add time
Definition
CaloCell.h:454
CaloCell::caloDDE
const CaloDetDescrElement * caloDDE() const
get pointer to CaloDetDescrElement (data member)
Definition
CaloCell.h:321
CaloCondBlobFlt::getInstance
static CaloCondBlobFlt * getInstance(coral::Blob &blob)
Returns a pointer to a non-const CaloCondBlobFlt.
Definition
CaloCondBlobFlt.cxx:12
CaloDetDescrElement::calo_hash
IdentifierHash calo_hash() const
cell calo hash
Definition
Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:412
DataVector< CaloCell >::iterator
DataModel_detail::iterator< DataVector > iterator
Definition
DataVector.h:842
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
IdentifierHash
This is a "hash" representation of an Identifier.
Definition
IdentifierHash.h:25
SG::ReadCondHandle
Definition
ReadCondHandle.h:40
type
Generated on
for ATLAS Offline Software by
1.17.0