ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
CaloCellEnergyRescaler Class Reference

CaloCellMakerTool to re-scale cell energies. More...

#include <CaloCellEnergyRescaler.h>

Inheritance diagram for CaloCellEnergyRescaler:
Collaboration diagram for CaloCellEnergyRescaler:

Public Member Functions

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

Private Attributes

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

Detailed Description

CaloCellMakerTool to re-scale cell energies.

Definition at line 21 of file CaloCellEnergyRescaler.h.

Constructor & Destructor Documentation

◆ CaloCellEnergyRescaler()

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

Definition at line 10 of file CaloCellEnergyRescaler.cxx.

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

◆ ~CaloCellEnergyRescaler()

CaloCellEnergyRescaler::~CaloCellEnergyRescaler ( )
default

Member Function Documentation

◆ initialize()

StatusCode CaloCellEnergyRescaler::initialize ( )
overridevirtual

Definition at line 18 of file CaloCellEnergyRescaler.cxx.

18  {
20  return StatusCode::SUCCESS;
21 }

◆ process()

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

Definition at line 25 of file CaloCellEnergyRescaler.cxx.

26  {
27 
29 
30  //Possible optimization: If the following lines turn out to be slow to be executed on every event,
31  //put them into a conditions algo
32  const coral::Blob& blob = (**eneShiftHdl)["CaloCondBlob16M"].data<coral::Blob>();
33  if (blob.size()<3) {
34  ATH_MSG_DEBUG("Found empty blob, no corretion needed");
35  return StatusCode::SUCCESS;
36  }
37 
38  std::unique_ptr<const CaloCondBlobFlt> corrValues(CaloCondBlobFlt::getInstance(blob));
39  ATH_MSG_DEBUG("Database folder has values for " << corrValues->getNChans() << " channels and " << corrValues->getNGains() << " gains.");
40 
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& scale= corrValues->getData(hash_id);
49  theCell->setEnergy(theCell->energy()*scale);
50  }//end if hash_id<NChans
51  }//end loop over cells
52  return StatusCode::SUCCESS;
53 }

Member Data Documentation

◆ m_eneShiftFldr

SG::ReadCondHandleKey<AthenaAttributeList> CaloCellEnergyRescaler::m_eneShiftFldr {this,"Folder","/CALO/Ofl/CellEnergyCorr","Key (=foldername) of AttrListCollection"}
private

Definition at line 36 of file CaloCellEnergyRescaler.h.


The documentation for this class was generated from the following files:
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
CaloCellEnergyRescaler::m_eneShiftFldr
SG::ReadCondHandleKey< AthenaAttributeList > m_eneShiftFldr
Definition: CaloCellEnergyRescaler.h:36
skel.it
it
Definition: skel.GENtoEVGEN.py:423
python.subdetectors.tile.Blob
Blob
Definition: tile.py:17
CaloCell::setEnergy
virtual void setEnergy(float energy)
set energy
Definition: CaloCell.cxx:136
yodamerge_tmp.scale
scale
Definition: yodamerge_tmp.py:138
CaloCell::energy
double energy() const
get energy (data member)
Definition: CaloCell.h:311
CaloDetDescrElement::calo_hash
IdentifierHash calo_hash() const
cell calo hash
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:412
DataModel_detail::iterator
(Non-const) Iterator class for DataVector/DataList.
Definition: DVLIterator.h:184
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
CaloCell::caloDDE
const CaloDetDescrElement * caloDDE() const
get pointer to CaloDetDescrElement (data member)
Definition: CaloCell.h:305
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
CaloCell
Data object for each calorimeter readout cell.
Definition: CaloCell.h:57
CaloCondBlobFlt::getInstance
static CaloCondBlobFlt * getInstance(coral::Blob &blob)
Returns a pointer to a non-const CaloCondBlobFlt.
Definition: CaloCondBlobFlt.cxx:12
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
IdentifierHash
Definition: IdentifierHash.h:38
CaloCondBlobAlgs_fillNoiseFromASCII.blob
blob
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:96