13L1CaloCondAlg :: L1CaloCondAlg (
const std::string &name,ISvcLocator *pSvcLocator):
AthCondAlgorithm( name, pSvcLocator )
85 return StatusCode::SUCCESS;
90 if(wkey.
empty())
return StatusCode::SUCCESS;
92 if(wh.isValid())
return StatusCode::SUCCESS;
93 std::map<std::string, const CondAttrListCollection *> listMap;
94 for(
auto rkey : rkeys) {
95 if(rkey.get().empty())
continue;
96 SG::ReadCondHandle <CondAttrListCollection> rh(rkey.get(), ctx);
100 listMap[rkey.get().key()] = *rh;
102 if (listMap.empty())
return StatusCode::SUCCESS;
103 if(!obj) obj = std::make_unique<T>();
104 obj->makeTransient(listMap);
105 CHECK(wh.record(std::move(obj)));
106 ATH_MSG_DEBUG(
"recorded new " << wkey.
key() <<
" with range " << wh.getRange() <<
" into Conditions Store");
107 return StatusCode::SUCCESS;
121 if(!writeHandleDerRunPars.
isValid()) {
122 SG::ReadCondHandle <CondAttrListCollection> readHandleDerRunPars(
m_derivedRunPars, ctx);
124 ATH_MSG_DEBUG(
"Size of CondAttrListCollection " << readHandleDerRunPars.
fullKey() <<
" = " << readHandleDerRunPars->size());
126 auto writeCdoDerRunPars = std::make_unique<L1CaloDerivedRunParsContainer>();
127 std::map<std::string, const CondAttrListCollection *> listMap;
129 writeCdoDerRunPars->makeTransient(listMap);
130 if (timingRegime.empty()) {
131 timingRegime = std::cbegin(*writeCdoDerRunPars)->timingRegime();
133 CHECK(writeHandleDerRunPars.
record(std::move(writeCdoDerRunPars)));
144 if(!writeHandlePprChanStrategy.
isValid()) {
147 ATH_MSG_DEBUG(
"Size of CondAttrListCollection " << readHandlePprChanStrategy.
fullKey() <<
" = " << readHandlePprChanStrategy->size());
148 writeHandlePprChanStrategy.
addDependency(readHandlePprChanStrategy);
149 auto writeCdoPprChanStrategy = std::make_unique<L1CaloPprChanStrategyContainer>();
150 std::map<std::string, const CondAttrListCollection *> listMap;
152 writeCdoPprChanStrategy->makeTransient(listMap);
153 if (strategy.empty()) {
154 for(
const auto& it: *writeCdoPprChanStrategy){
155 if (it.timingRegime() == timingRegime){
156 strategy = it.strategy();
160 CHECK(writeHandlePprChanStrategy.
record(std::move(writeCdoPprChanStrategy)));
179 if (timingRegime ==
"") timingRegime=
"Physics";
182 if (timingRegime ==
"Physics") {
184 }
else if (timingRegime ==
"Calib1") {
186 }
else if (timingRegime ==
"Calib2") {
189 ATH_MSG_ERROR(
"Bad timing regime " << timingRegime <<
"; must be one of Physics, Calib1, Calib2" );
190 return StatusCode::FAILURE;
198 std::map <L1CaloPprConditionsContainerRun2::eCoolFolders, std::string> folderKeyMap;
200 if (strategy.empty()) {
202 auto obj = std::make_unique<L1CaloPprConditionsContainerRun2>(folderKeyMap);
205 if (strategy !=
"HighMu" && strategy !=
"LowMu") {
206 ATH_MSG_ERROR(
"Invalid strategy: " << strategy <<
" (must be HighMu or LowMu)");
207 return StatusCode::FAILURE;
213 auto obj = std::make_unique<L1CaloPprConditionsContainerRun2>(folderKeyMap);
220 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
This file defines the class for a collection of AttributeLists where each one is associated with a ch...
#define CHECK(...)
Evaluate an expression and check for errors.
Base class for conditions algorithms.
SG::ReadCondHandleKeyArray< CondAttrListCollection > m_calib2Keys
SG::WriteCondHandleKey< L1CaloPprChanStrategyContainer > m_pprChanStrategyContainer
SG::ReadCondHandleKey< CondAttrListCollection > m_ppmDeadChannels
Gaudi::Property< bool > m_useCalib2Regime
SG::ReadCondHandleKeyArray< CondAttrListCollection > m_physicsKeys
SG::WriteCondHandleKey< L1CaloDisabledTowersContainer > m_disabledTowersContainer
virtual StatusCode execute(const EventContext &ctx) const override
SG::ReadCondHandleKey< CondAttrListCollection > m_pprChanStrategy
SG::WriteCondHandleKey< L1CaloDerivedRunParsContainer > m_derivedRunParsContainer
SG::ReadCondHandleKey< CondAttrListCollection > m_ppmFineTimeRefs
SG::WriteCondHandleKey< L1CaloPprChanCalibContainer > m_pprChanCalibContainer
Gaudi::Property< std::string > m_strategy
SG::WriteCondHandleKey< L1CaloPpmFineTimeRefsContainer > m_ppmFineTimeRefsContainer
SG::WriteCondHandleKey< L1CaloPpmDeadChannelsContainer > m_ppmDeadChannelsContainer
SG::ReadCondHandleKey< CondAttrListCollection > m_derivedRunPars
SG::WriteCondHandleKey< L1CaloReadoutConfigContainerJSON > m_readoutConfigContainerJSON
SG::ReadCondHandleKey< CondAttrListCollection > m_runParameters
SG::WriteCondHandleKey< L1CaloPprDisabledChannelContainerRun2 > m_pprDisabledChannelContainer
virtual StatusCode initialize() override
StatusCode updateCond(const EventContext &ctx, const SG::WriteCondHandleKey< T > &wkey, const std::vector< std::reference_wrapper< const SG::ReadCondHandleKey< CondAttrListCollection > > > &rkeys, std::unique_ptr< T > obj=nullptr) const
SG::WriteCondHandleKey< L1CaloReadoutConfigContainer > m_readoutConfigContainer
SG::ReadCondHandleKey< CondAttrListCollection > m_disabledTowers
SG::ReadCondHandleKey< CondAttrListCollection > m_pprChanDefaults
Gaudi::Property< bool > m_useCalib1Regime
SG::ReadCondHandleKeyArray< CondAttrListCollection > m_calib1Keys
SG::WriteCondHandleKey< L1CaloRunParametersContainer > m_runParametersContainer
SG::WriteCondHandleKey< L1CaloPprConditionsContainerRun2 > m_pprConditionsContainer
SG::WriteCondHandleKey< L1CaloPprChanDefaultsContainer > m_pprChanDefaultsContainer
SG::ReadCondHandleKey< CondAttrListCollection > m_readoutConfig
Gaudi::Property< bool > m_usePhysicsRegime
Gaudi::Property< std::string > m_timingRegime
SG::ReadCondHandleKey< CondAttrListCollection > m_readoutConfigJSON
const DataObjID & fullKey() const
const std::string & key() const
Return the StoreGate ID for the referenced object.
bool empty() const
Test if the key is blank.
void addDependency(const EventIDRange &range)
const EventIDRange & getRange() const
StatusCode record(const EventIDRange &range, T *t)
record handle, with explicit range DEPRECATED
HandleKeyArray< ReadCondHandle< T >, CondHandleDefault::Key< ReadCondHandleKey< T > >, Gaudi::DataHandle::Reader > ReadCondHandleKeyArray