11 base_class(
type, name, parent)
20 return StatusCode::SUCCESS;
25 ATH_MSG_DEBUG(
"in the finalize of ToFLocParamDBTool, bye bye");
26 return StatusCode::SUCCESS;
32 ATH_MSG_DEBUG(
"will get local ToF parameters for run "<<ctx.eventID().run_number()<<
", lb "<<ctx.eventID().lumi_block()<<
", event "<<ctx.eventID().event_number());
36 if ( attrLocList ==
nullptr )
38 ATH_MSG_WARNING(
"local ToF parameters data for key " <<
m_rch_loc.fullKey() <<
" not found, returning empty string");
39 return nlohmann::json::parse(
"");
42 if(attrLocList->
size()>1)
ATH_MSG_INFO(
"there should be only one real channel in "<<
m_rch_loc.fullKey() <<
", there are "<<attrLocList->
size()<<
" real channels, only the first one will be used ");
45 const coral::AttributeList &atr = itr->second;
46 std::string
data = *(
static_cast<const std::string *
>((atr[
"data"]).addressOfData()));
48 return nlohmann::json::parse(
data);
54 ATH_MSG_DEBUG(
"will get local ToF parameters for station "<<stationID<<
", trainID "<<trainID<<
", barID "<<barID);
55 nlohmann::json channeldata=jsondata[
"data"];
58 int guess_ch=(stationID/3)*16+trainID*4+barID;
60 nlohmann::json paramdata=channeldata.at(std::to_string(guess_ch));
61 int st=paramdata[
"stationID"];
62 int tr=paramdata[
"trainID"];
63 int ba=paramdata[
"barID"];
64 if(stationID==st && trainID==tr && barID==ba)
66 ATH_MSG_DEBUG(
"channel guessed correctly, stationID "<<st<<
", trainID "<<trainID<<
", barID "<<barID<<
", channel guess "<<guess_ch);
67 return ToFLocParamData(st, tr, ba, paramdata[
"barWeight"], paramdata[
"barTimeOffset"]);
71 ATH_MSG_DEBUG(
"channel was not guessed correctly, stationID "<<st<<
", trainID "<<trainID<<
", barID "<<barID<<
", channel guess "<<guess_ch);
75 for(
auto& chan : channeldata.items())
78 nlohmann::json paramdata=chan.value();
80 int st=paramdata[
"stationID"];
81 int tr=paramdata[
"trainID"];
82 int ba=paramdata[
"barID"];
84 if(stationID==st && trainID==tr && barID==ba)
86 ATH_MSG_DEBUG(
"channel found for stationID "<<st<<
", trainID "<<trainID<<
", barID "<<barID<<
", channel nr. "<<chan.key());
87 return ToFLocParamData(st, tr, ba, paramdata[
"barWeight"], paramdata[
"barTimeOffset"]);
91 ATH_MSG_WARNING(
"local ToF parameters data stationID "<<stationID<<
", trainID "<<trainID<<
", barID "<<barID<<
" not found in any channels, returning zeros");
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
char data[hepevt_bytes_allocation_ATLAS]
Class storing information about alignment.
This class is a collection of AttributeLists where each one is associated with a channel number.
const_iterator begin() const
Access to Chan/AttributeList pairs via iterators.
size_type size() const
number of Chan/AttributeList pairs
ChanAttrListMap::const_iterator const_iterator
Header file for interface of SiGlobAlignDBTool used to read global alignment for database.