|
ATLAS Offline Software
|
Go to the documentation of this file.
15 #include "GaudiKernel/EventIDRange.h"
53 return StatusCode::SUCCESS;
75 return StatusCode::SUCCESS;
81 std::unique_ptr<SG::ReadCondHandle<PixelCablingCondData> > pixCabling;
82 std::unique_ptr<SG::ReadCondHandle<SCT_CablingData> > sctCabling;
84 EventIDRange id_range;
91 sctCabling = std::make_unique<SG::ReadCondHandle<SCT_CablingData> >(
m_sctCablingKey, ctx );
92 if( !sctCabling->range( id_range ) ) {
93 ATH_MSG_ERROR(
"Failed to retrieve validity range for " << sctCabling->key());
94 return StatusCode::FAILURE;
101 ATH_MSG_DEBUG(
"RegSelCondAlg: " << id_range <<
"( initial range )" );
103 pixCabling = std::make_unique<SG::ReadCondHandle<PixelCablingCondData> >(
m_pixCablingKey, ctx );
104 if( !pixCabling->range( id_range ) ) {
105 ATH_MSG_ERROR(
"Failed to retrieve validity range for " << pixCabling->key() <<
" : " << id_range );
106 return StatusCode::FAILURE;
108 ATH_MSG_DEBUG(
"RegSelCondAlg: " << id_range <<
"( final range )" );
116 std::unique_ptr<RegSelSiLUT> rd;
127 if (elements==
nullptr) {
129 return StatusCode::FAILURE;
136 if( !detEle.
range( id_range ) ) {
137 ATH_MSG_ERROR(
"Failed to retrieve validity range for " << detEle.
key() <<
" : " << id_range );
138 return StatusCode::FAILURE;
140 ATH_MSG_DEBUG(
"RegSelCondAlg: " << id_range <<
"( final range )" );
153 double rMin, rMax, zMin, zMax, phiMin, phiMax;
155 rMin = element->rMin();
156 rMax = element->rMax();
157 zMin = element->zMin();
158 zMax = element->zMax();
159 phiMin = element->phiMin();
160 phiMax = element->phiMax();
167 if (element->isPixel()) {
169 const PixelID* pixelId =
dynamic_cast<const PixelID*
>(element->getIdHelper());
170 if ( pixelId!=
nullptr ) {
171 barrelEC = pixelId->
barrel_ec(element->identify());
172 if ( std::fabs(barrelEC)>3 )
continue;
173 layerDisk = pixelId->
layer_disk(element->identify());
174 if(
m_useCabling) robId=(*pixCabling)->find_entry_offrob(element->identify());
178 ATH_MSG_ERROR(
"Could not get PIXEL_ID for " << element->getIdHelper() );
183 const SCT_ID* sctId =
dynamic_cast<const SCT_ID*
>(element->getIdHelper());
184 if ( sctId!=
nullptr ) {
185 barrelEC = sctId->
barrel_ec(element->identify());
186 layerDisk = sctId->
layer_disk(element->identify());
189 if(
m_useCabling) robId = ((*sctCabling)->getOnlineIdFromHash(element->identifyHash())).rod();
193 ATH_MSG_ERROR(
"Could not get SCT_ID for " << element->getIdHelper() );
201 RegSelModule smod( zMin, zMax, rMin, rMax, phiMin, phiMax, layerDisk, barrelEC, robId, hashId );
208 <<
" barrelEC = " << barrelEC
209 <<
", layerDisk = " << layerDisk
227 if( lutCondData.
record( id_range, rcd ).isFailure() ) {
229 <<
" " << lutCondData.
key()
230 <<
" with range " << id_range );
231 return StatusCode::FAILURE;
237 return StatusCode::FAILURE;
243 return StatusCode::SUCCESS;
This is an Identifier helper class for the Pixel subdetector. This class is a factory for creating co...
emacs: this is -*- c++ -*-
This is an Identifier helper class for the SCT subdetector. This class is a factory for creating comp...
virtual StatusCode execute(const EventContext &ctx) const override
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
SiRegSelCondAlg(const std::string &name, ISvcLocator *pSvcLocator)
virtual StatusCode initialize() override
std::string m_managerName
emacs: this is -*- c++ -*-
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
bool range(EventIDRange &r)
#define ATH_MSG_VERBOSE(x)
bool empty() const
Test if the key is blank.
StatusCode record(const EventIDRange &range, T *t)
record handle, with explicit range DEPRECATED
SG::ReadCondHandleKey< PixelCablingCondData > m_pixCablingKey
SG::ReadCondHandleKey< SCT_CablingData > m_sctCablingKey
Sadly the PIxel and SCT cabling are different classes so need both, even if only one is to be used.
An algorithm that can be simultaneously executed in multiple threads.
void write(std::ostream &s=std::cout) const
const DataObjID & fullKey() const
const_pointer_type retrieve()
::StatusCode StatusCode
StatusCode definition for legacy code.
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_detEleCollKey
int layer_disk(const Identifier &id) const
const std::string & key() const
int layer_disk(const Identifier &id) const
StatusCode initialize(bool used=true)
void addModule(RegSelModule &module)
SG::WriteCondHandleKey< IRegSelLUTCondData > m_tableKey
Output conditions object.
const std::string & key() const
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
RegSelCondData< IRegSelLUT > IRegSelLUTCondData