ATLAS Offline Software
Loading...
Searching...
No Matches
CaloCellTimeCorrTool Class Reference

Tool to shift cell time values. More...

#include <CaloCellTimeCorrTool.h>

Inheritance diagram for CaloCellTimeCorrTool:
Collaboration diagram for CaloCellTimeCorrTool:

Public Member Functions

 CaloCellTimeCorrTool (const std::string &type, const std::string &name, const IInterface *parent)
 ~CaloCellTimeCorrTool ()
virtual StatusCode initialize () override
virtual StatusCode process (CaloCellContainer *theCellContainer, const EventContext &ctx) const override

Private Attributes

SG::ReadCondHandleKey< AthenaAttributeListm_timeShiftFldr {this,"Folder","/CALO/Ofl/CellTimeCorr","Key (=foldername) of AttrListCollection"}

Detailed Description

Tool to shift cell time values.

Definition at line 20 of file CaloCellTimeCorrTool.h.

Constructor & Destructor Documentation

◆ CaloCellTimeCorrTool()

CaloCellTimeCorrTool::CaloCellTimeCorrTool ( const std::string & type,
const std::string & name,
const IInterface * parent )

Definition at line 10 of file CaloCellTimeCorrTool.cxx.

12 :
13 base_class (type, name, parent) {}

◆ ~CaloCellTimeCorrTool()

CaloCellTimeCorrTool::~CaloCellTimeCorrTool ( )
default

Member Function Documentation

◆ initialize()

StatusCode CaloCellTimeCorrTool::initialize ( )
overridevirtual

Definition at line 18 of file CaloCellTimeCorrTool.cxx.

18 {
19 ATH_CHECK(m_timeShiftFldr.initialize());
20 return StatusCode::SUCCESS;
21}
#define ATH_CHECK
Evaluate an expression and check for errors.
SG::ReadCondHandleKey< AthenaAttributeList > m_timeShiftFldr

◆ process()

StatusCode CaloCellTimeCorrTool::process ( CaloCellContainer * theCellContainer,
const EventContext & ctx ) const
overridevirtual

Definition at line 25 of file CaloCellTimeCorrTool.cxx.

26 {
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}
#define ATH_MSG_DEBUG(x)
void addTime(float delta)
add time
Definition CaloCell.h:454
const CaloDetDescrElement * caloDDE() const
get pointer to CaloDetDescrElement (data member)
Definition CaloCell.h:321
static CaloCondBlobFlt * getInstance(coral::Blob &blob)
Returns a pointer to a non-const CaloCondBlobFlt.
DataModel_detail::iterator< DataVector > iterator
Definition DataVector.h:842

Member Data Documentation

◆ m_timeShiftFldr

SG::ReadCondHandleKey<AthenaAttributeList> CaloCellTimeCorrTool::m_timeShiftFldr {this,"Folder","/CALO/Ofl/CellTimeCorr","Key (=foldername) of AttrListCollection"}
private

Definition at line 35 of file CaloCellTimeCorrTool.h.

35{this,"Folder","/CALO/Ofl/CellTimeCorr","Key (=foldername) of AttrListCollection"};

The documentation for this class was generated from the following files: