|
ATLAS Offline Software
|
Go to the documentation of this file.
29 return StatusCode::SUCCESS;
37 ATH_MSG_DEBUG(
"CondHandle " << writeHandle.
fullKey() <<
" is already valid." <<
" In theory this should not be called, but may happen" <<
" if multiple concurrent events are being processed out of order.");
38 return StatusCode::SUCCESS;
47 if (readCdoTemp==
nullptr) {
49 return StatusCode::FAILURE;
57 if (readCdoHV==
nullptr) {
59 return StatusCode::FAILURE;
67 if (not pixelDetEleHandle.
isValid() or elements==
nullptr) {
69 return StatusCode::FAILURE;
73 std::unique_ptr<InDet::SiliconPropertiesVector> writeCdo(std::make_unique<InDet::SiliconPropertiesVector>());
75 writeCdo->
resize(wafer_hash_max);
79 double temperature = readCdoTemp->
getTemperature(elementHash)+273.15;
84 double depletionDepth = element->
thickness();
85 if (std::abs(biasVoltage) < std::abs(deplVoltage)) {
86 depletionDepth *= sqrt(std::abs(biasVoltage/deplVoltage));
89 double meanElectricField = 0;
90 if (depletionDepth) { meanElectricField = biasVoltage/depletionDepth; }
96 if (writeHandle.
record(std::move(writeCdo)).isFailure()) {
97 ATH_MSG_FATAL(
"Could not record PixelSiliconPropertiesVector " << writeHandle.
key() <<
" with EventRange " << writeHandle.
getRange() <<
" into Conditions Store");
98 return StatusCode::FAILURE;
100 ATH_MSG_INFO(
"recorded new CDO " << writeHandle.
key() <<
" with range " << writeHandle.
getRange() <<
" into Conditions Store");
102 return StatusCode::SUCCESS;
107 return StatusCode::SUCCESS;
def retrieve(aClass, aKey=None)
SG::WriteCondHandleKey< InDet::SiliconPropertiesVector > m_writeKey
const EventIDRange & getRange()
const DataObjID & fullKey() const
PixelSiPropertiesCondAlg(const std::string &name, ISvcLocator *pSvcLocator)
const EventIDRange & getRange() const
static EventIDRange infiniteMixed()
Produces an mixed EventIDRange that is infinite in Time and RunLumi.
StatusCode record(const EventIDRange &range, T *t)
record handle, with explicit range DEPRECATED
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
An algorithm that can be simultaneously executed in multiple threads.
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_pixelDetEleCollKey
const DataObjID & fullKey() const
void resize(IdentifierHash::value_type size)
void setConditions(const IdentifierHash &elementHash, const double temperature, const double electricField)
::StatusCode StatusCode
StatusCode definition for legacy code.
SG::ReadCondHandleKey< PixelDCSTempData > m_readKeyTemp
virtual StatusCode finalize() override
SG::ReadCondHandleKey< PixelDCSHVData > m_readKeyHV
const std::string & key() const
StatusCode initialize(bool used=true)
size_type wafer_hash_max(void) const
Gaudi::Property< std::string > m_pixelIDName
float getBiasVoltage(const int chanNum) const
virtual StatusCode initialize() override
Identifier::size_type size_type
virtual StatusCode execute(const EventContext &ctx) const override
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
const SiDetectorElement * getDetectorElement(const IdentifierHash &hash) const
float getTemperature(const int chanNum) const
void addDependency(const EventIDRange &range)