![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
15 #include "GaudiKernel/ToolHandle.h"
34 #include "CoolKernel/types.h"
35 #include "CoolKernel/Record.h"
36 #include "CoralBase/AttributeListSpecification.h"
38 #include "GaudiKernel/ThreadLocalContext.h"
45 const std::vector<const CondAttrListCollection*>& attrvec);
58 const std::vector<const CondAttrListCollection*>& attrvec)
59 : m_hvdata_EMB (
manager.getEMBHVManager().
getData (hvCabling, attrvec)),
60 m_hvdata_EMBPS (
manager.getEMBPresamplerHVManager().
getData (hvCabling, attrvec)),
63 m_hvdata_EMECPS (
manager.getEMECPresamplerHVManager().
getData (hvCabling, attrvec)),
64 m_hvdata_HEC (
manager.getHECHVManager().
getData (hvCabling, attrvec)),
65 m_hvdata_FCAL (
manager.getFCALHVManager().
getData (hvCabling, attrvec))
71 ISvcLocator* pSvcLocator ) :
78 std::vector<int>
ivec;
ivec.push_back(-1);
80 std::vector<float> fvec; fvec.push_back(1.0);
82 std::vector<int> iivec; iivec.push_back(-1);
84 std::vector<float> ffvec; ffvec.push_back(1.0);
96 ATH_MSG_ERROR(
"CaloSamples and SampleValues vectors not equal length !!! " );
97 return StatusCode::FAILURE;
100 ATH_MSG_ERROR(
"HVLines and HVvalues vectors not equal length !!! " );
101 return StatusCode::FAILURE;
117 return StatusCode::SUCCESS;
122 return StatusCode::SUCCESS;
127 return StatusCode::SUCCESS;
154 if(maxsubcalo < 0 ) {
156 return StatusCode::FAILURE;
162 ATH_MSG_INFO(
"Working on hash range 0 to " << hashMax );
164 coral::AttributeListSpecification*
spec =
new coral::AttributeListSpecification();
165 spec->extend(
"CaloCondBlob16M",
"blob");
174 std::vector<std::vector<float> >
defVec;
183 const EventContext& ctx = Gaudi::Hive::currentContext();
185 std::vector<const CondAttrListCollection*> attrvec;
188 attrvec.push_back (*dcsHdl);
197 std::vector<float> setVec(1,1);
200 for(
unsigned h=0;
h<hashMax;++
h) {
202 std::vector<int>::const_iterator
pos;
211 std::vector<int> hvlineId =
GetHVLines(hvdata, offId, caloMgr);
214 std::vector<int>::const_iterator poshv;
215 for(
unsigned i=0;
i<hvlineId.size(); ++
i) {
221 if(nfound == (
int)hvlineId.size()) {
228 flt->setData(
h,0,setVec);
231 ATH_MSG_INFO(
"Found " << nSet <<
" channels which have a sample correction. " );
232 ATH_MSG_INFO(
"Found " << nSetHV <<
" channels which have a HV correction. " );
234 return StatusCode::SUCCESS;
247 if (!embElement) std::abort();
249 unsigned int nelec =
cell->getNumElectrodes();
250 for (
unsigned int i=0;
i<nelec;
i++) {
252 for (
unsigned int igap=0;igap<2;igap++) hv.insert(hvdata.
m_hvdata_EMB.
hvLineNo (electrode, igap));
256 if (!emecElement) std::abort();
258 unsigned int nelec =
cell->getNumElectrodes();
259 for (
unsigned int i=0;
i<nelec;
i++) {
265 for (
unsigned int igap=0;igap<2;igap++) {
266 hv.insert(hvdata_EMEC.
hvLineNo (electrode, igap));
272 if (!hecElement) std::abort();
274 unsigned int nsubgaps =
cell->getNumSubgaps();
275 for (
unsigned int igap=0;igap<nsubgaps;igap++) {
281 if (!fcalElement) std::abort();
283 unsigned int nlines =
tile->getNumHVLines();
284 for (
unsigned int i=0;
i<nlines;
i++) {
291 if (!embElement) std::abort();
297 if (!emecElement) std::abort();
304 std::vector<int> hvlines;
int hvLineNo(const FCALHVLine &line) const
def retrieve(aClass, aKey=None)
JetConstituentVector::iterator iterator
virtual StatusCode execute() override
const InDetSimData * getData(const InDetSimDataCollection &coll, const Identifier &id)
EMECHVModule::IOType getWheelIndex() const
EMBPresamplerHVManager::EMBPresamplerHVData m_hvdata_EMBPS
GeoIntrusivePtr< const HECCell > HECCellConstLink
@Class: HECCellConstLink
LAr EMEC Detector Element.
Smart Pointer to EMEC Cells. This reference counted link allocates on demand. It audits the total poi...
std::string find(const std::string &s)
return a remapped string
Class for storing a number of floats (Flt) and functions on those.
bool is_lar_fcal(Identifier id) const
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
const CaloDetDescrElement * get_element(const Identifier &cellId) const
get element by its identifier
EMBHVManager::EMBHVData m_hvdata_EMB
virtual StatusCode initialize() override
int sampling(const Identifier id) const
return sampling according to :
std::vector< int > m_hvlines
HECHVManager::HECHVData m_hvdata_HEC
int hvLineNo(const HECHVSubgap &subgap) const
int calo_sample(const Identifier id) const
returns an int taken from Sampling enum and describing the subCalo to which the Id belongs.
const FCALTile * getFCALTile() const
FCAL Tile description from LArReadoutGeometry.
EMECCellConstLink getEMECCell() const
EMEC Cell description from LArReadoutGeometry.
LAr EMB Detector Element.
int hvLineNo(const EMBHVElectrode &electrode, const int &iGap) const
std::vector< float > m_hvvalue
GeoIntrusivePtr< const EMBCell > EMBCellConstLink
EMECPresamplerHVManager::EMECPresamplerHVData m_hvdata_EMECPS
EMECHVManager::EMECHVData m_hvdata_EMEC_OUT
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
SG::ReadCondHandleKey< LArHVIdMapping > m_hvCablingKey
LAr HEC Detector Element.
std::vector< float > m_value
const LArFCAL_ID * m_larfcal_id
A tile of the forward calorimeter readout geometry.
int hvLineNo(const EMECHVElectrode &electrode, const int &iGap) const
This class initializes the Calo (LAr and Tile) offline identifiers.
virtual StatusCode stop() override
void calo_cell_hash_range(const Identifier id, IdentifierHash &caloCellMin, IdentifierHash &caloCellMax) const
to loop on 'global' cell hashes of one sub-calorimeter alone
virtual ~CaloCellCalcEnergyCorr()
Destructor:
::StatusCode StatusCode
StatusCode definition for legacy code.
LAr FCAL Detector Element.
An AttributeList represents a logical row of attributes in a metadata table. The name and type of eac...
#define CHECK(...)
Evaluate an expression and check for errors.
bool is_lar_hec(Identifier id) const
Helper class for offline cell identifiers.
Helpers for checking error return status codes and reporting errors.
int barrel_ec(const Identifier id) const
return barrel_ec according to :
SG::ReadCondHandleKeyArray< CondAttrListCollection > m_DCSFolderKeys
StatusCode initialize(bool used=true)
int hvLineNo(const EMECPresamplerHVModule &module, const int &iGap) const
const EMECHVModule & getModule() const
EMBCellConstLink getEMBCell() const
EMB Cell description from LArReadoutGeometry.
int hvLineNo(const EMBPresamplerHVModule &module, const int &iGap) const
Identifier cell_id(const int subCalo, const int barec_or_posneg, const int sampling_or_fcalmodule, const int region_or_dummy, const int eta, const int phi) const
Make a cell (== channel) ID from constituting fields and subCalo index; for (Mini)FCAL,...
FCALHVManager::FCALHVData m_hvdata_FCAL
std::vector< int > m_calosample
This class provides access to the High Voltage throughout the LAr. High voltage conditions can also b...
This class provides the client interface for accessing the detector description information common to...
static CaloCondBlobFlt * getInstance(coral::Blob &blob)
Returns a pointer to a non-const CaloCondBlobFlt.
HVData(const LArHVManager &manager, const LArHVIdMapping &hvCabling, const std::vector< const CondAttrListCollection * > &attrvec)
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
Describes one HV Module within the EMEc Presampler.
virtual StatusCode finalize() override
EMECHVManager::EMECHVData m_hvdata_EMEC_IN
std::vector< int > GetHVLines(const HVData &hvdata, const Identifier &id, const CaloDetDescrManager *caloMgr)
HECCellConstLink getHECCell() const
HEC Cell description from LArReadoutGeometry.
vec_fb< typename boost::int_t< sizeof(T) *8 >::exact, N > ivec
CaloCellCalcEnergyCorr(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
bool is_lar_em(Identifier id) const
Describes one HV Module within the EMB Presampler.
Calo Subsystem specific Detector Elements + Dummy element for testing.
const LArHEC_ID * m_larhec_id
const LArEM_ID * m_larem_id