|
| SiRegSelCondAlg (const std::string &name, ISvcLocator *pSvcLocator) |
|
virtual StatusCode | initialize () override |
|
virtual StatusCode | execute (const EventContext &ctx) const override |
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual bool | isClonable () const override |
| Specify if the algorithm is clonable. More...
|
|
virtual unsigned int | cardinality () const override |
| Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. More...
|
|
virtual StatusCode | sysExecute (const EventContext &ctx) override |
| Execute an algorithm. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
virtual bool | filterPassed (const EventContext &ctx) const |
|
virtual void | setFilterPassed (bool state, const EventContext &ctx) const |
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
std::string | m_managerName |
|
bool | m_printTable {false} |
|
bool | m_useCabling {true} |
|
SG::ReadCondHandleKey< SCT_CablingData > | m_sctCablingKey {this, "SCT_CablingData", "", "SCT cabling key"} |
| Sadly the PIxel and SCT cabling are different classes so need both, even if only one is to be used. More...
|
|
SG::ReadCondHandleKey< PixelCablingCondData > | m_pixCablingKey {this, "PixelCablingCondData", "", "Pixel cabling key"} |
|
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > | m_detEleCollKey {this, "DetEleCollKey", "PixelDetectorElementCollection", "Key of SiDetectorElementCollection for Pixel/SCT"} |
|
SG::WriteCondHandleKey< IRegSelLUTCondData > | m_tableKey { this, "RegSelLUT", "RegSelLUTCondData", "Region Selector lookup table" } |
| Output conditions object. More...
|
|
DataObjIDColl | m_extendedExtraObjects |
| Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks. More...
|
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
Definition at line 32 of file SiRegSelCondAlg.h.
StatusCode SiRegSelCondAlg::execute |
( |
const EventContext & |
ctx | ) |
const |
|
overridevirtual |
do stuff here ...
inpractice, this should never be called, although i serial athena, because the implementation of the conditions behaviour is flawed in the framework, this routine will be called every event (!) regardless of whether it should be called or not so we need this check to prevent unecessary code execution on out our side
Need to get the SCT cabling conditions for the EventIDRange, but still need to use the SCT_CablingTool to get the rob ids
Definition at line 59 of file SiRegSelCondAlg.cxx.
68 if (lutCondData.isValid()) {
74 ATH_MSG_DEBUG(
"CondHandle " << lutCondData.fullKey() <<
" is already valid." );
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;
124 if (detEle.isValid()) {
125 elements = detEle.retrieve();
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;
StatusCode AthReentrantAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
Override sysInitialize.
Override sysInitialize from the base class.
Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc
Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc
Reimplemented from AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >.
Reimplemented in InputMakerBase, and HypoBase.
Definition at line 96 of file AthReentrantAlgorithm.cxx.
107 if ( cs.retrieve().isFailure() ) {
109 return StatusCode::SUCCESS;
111 if (cs->regHandle(
this,*
h).isFailure()) {
112 sc = StatusCode::FAILURE;
113 ATH_MSG_ERROR(
"unable to register WriteCondHandle " <<
h->fullKey()