ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
AFP::ToFVtxParamDBTool Class Reference

Tool providing vertex parameters of ToF detectors from the conditions database. More...

#include <ToFVtxParamDBTool.h>

Inheritance diagram for AFP::ToFVtxParamDBTool:
Collaboration diagram for AFP::ToFVtxParamDBTool:

Public Member Functions

 ToFVtxParamDBTool (const std::string &type, const std::string &name, const IInterface *parent)
 
virtual ~ToFVtxParamDBTool () override
 Does nothing. More...
 
virtual StatusCode initialize () override
 Does nothing. More...
 
virtual StatusCode finalize () override
 Does nothing. More...
 
nlohmann::json parametersData (const EventContext &ctx) const override
 Provide ToF parameters for a given station. Returns zeros if no data available. More...
 
const ToFVtxParamData parameters (const nlohmann::json &jsondata, const int stationID) const override
 

Private Attributes

SG::ReadCondHandleKey< CondAttrListCollectionm_rch_vtx {this, "vtx_param_key", "/FWD/Onl/AFP/ToFParameters/Vertex", "read condition handle for vertex ToF parameters"}
 

Detailed Description

Tool providing vertex parameters of ToF detectors from the conditions database.

Definition at line 33 of file ToFVtxParamDBTool.h.

Constructor & Destructor Documentation

◆ ToFVtxParamDBTool()

AFP::ToFVtxParamDBTool::ToFVtxParamDBTool ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Definition at line 10 of file ToFVtxParamDBTool.cxx.

10  :
11  base_class(type, name, parent)
12  {
13  }

◆ ~ToFVtxParamDBTool()

virtual AFP::ToFVtxParamDBTool::~ToFVtxParamDBTool ( )
inlineoverridevirtual

Does nothing.

Definition at line 39 of file ToFVtxParamDBTool.h.

39 {}

Member Function Documentation

◆ finalize()

StatusCode AFP::ToFVtxParamDBTool::finalize ( )
overridevirtual

Does nothing.

Definition at line 23 of file ToFVtxParamDBTool.cxx.

24  {
25  ATH_MSG_DEBUG("in the finalize of ToFVtxParamDBTool, bye bye");
26  return StatusCode::SUCCESS;
27  }

◆ initialize()

StatusCode AFP::ToFVtxParamDBTool::initialize ( )
overridevirtual

Does nothing.

Definition at line 16 of file ToFVtxParamDBTool.cxx.

17  {
19  ATH_MSG_DEBUG( "using DB with key " << m_rch_vtx.fullKey() );
20  return StatusCode::SUCCESS;
21  }

◆ parameters()

const ToFVtxParamData AFP::ToFVtxParamDBTool::parameters ( const nlohmann::json jsondata,
const int  stationID 
) const
override

Definition at line 52 of file ToFVtxParamDBTool.cxx.

53  {
54  ATH_MSG_DEBUG("will get vertex ToF parameters for station "<<stationID);
55  nlohmann::json channeldata=jsondata["data"];
56 
57  // first, try to guess the channel nr.
58  int guess_ch=(stationID/3);
59 
60  nlohmann::json paramdata=channeldata.at(std::to_string(guess_ch)); // because using int would be too simple
61  int st=paramdata["stationID"];
62  if(stationID==st)
63  {
64  ATH_MSG_DEBUG("channel guessed correctly, stationID "<<st<<", channel guess "<<guess_ch);
65  return ToFVtxParamData(st, paramdata["timeGlobalOffset"], paramdata["timeOffset"], paramdata["timeSlope"], paramdata["trainEdge"]);
66  }
67  else
68  {
69  ATH_MSG_DEBUG("channel was not guessed correctly, stationID "<<st<<", channel guess "<<guess_ch);
70  }
71 
72  // if guess is not correct, loop over all channels
73  for(auto& chan : channeldata.items())
74  {
75  // channels are ordered alphabetically: 0,1
76  nlohmann::json paramdata=chan.value();
77 
78  int st=paramdata["stationID"];
79  if(stationID==st)
80  {
81  ATH_MSG_DEBUG("channel found for stationID "<<st<<", channel nr. "<<chan.key());
82  return ToFVtxParamData(st, paramdata["timeGlobalOffset"], paramdata["timeOffset"], paramdata["timeSlope"], paramdata["trainEdge"]);
83  }
84  }
85 
86  ATH_MSG_WARNING("vertex ToF parameters data stationID "<<stationID<<" not found in any channels, returning zeros");
87  return ToFVtxParamData(stationID);
88  }

◆ parametersData()

nlohmann::json AFP::ToFVtxParamDBTool::parametersData ( const EventContext &  ctx) const
override

Provide ToF parameters for a given station. Returns zeros if no data available.

Definition at line 30 of file ToFVtxParamDBTool.cxx.

31  {
32  ATH_MSG_DEBUG("will get vertex ToF parameters for run "<<ctx.eventID().run_number()<<", lb "<<ctx.eventID().lumi_block()<<", event "<<ctx.eventID().event_number());
33 
35  const CondAttrListCollection* attrLocList { *ch_loc};
36  if ( attrLocList == nullptr )
37  {
38  ATH_MSG_WARNING("vertex ToF parameters data for key " << m_rch_vtx.fullKey() << " not found, returning empty string");
39  return nlohmann::json::parse("");
40  }
41 
42  if(attrLocList->size()>1) ATH_MSG_INFO("there should be only one real channel in "<< m_rch_vtx.fullKey() <<", there are "<<attrLocList->size()<<" real channels, only the first one will be used ");
43 
44  CondAttrListCollection::const_iterator itr = attrLocList->begin();
45  const coral::AttributeList &atr = itr->second;
46  std::string data = *(static_cast<const std::string *>((atr["data"]).addressOfData()));
47 
49  }

Member Data Documentation

◆ m_rch_vtx

SG::ReadCondHandleKey<CondAttrListCollection> AFP::ToFVtxParamDBTool::m_rch_vtx {this, "vtx_param_key", "/FWD/Onl/AFP/ToFParameters/Vertex", "read condition handle for vertex ToF parameters"}
private

Definition at line 52 of file ToFVtxParamDBTool.h.


The documentation for this class was generated from the following files:
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
json
nlohmann::json json
Definition: HistogramDef.cxx:9
parse
std::map< std::string, std::string > parse(const std::string &list)
Definition: egammaLayerRecalibTool.cxx:1054
python.PyKernel.AttributeList
AttributeList
Definition: PyKernel.py:36
CondAttrListCollection
This class is a collection of AttributeLists where each one is associated with a channel number....
Definition: CondAttrListCollection.h:52
ReadCellNoiseFromCool.chan
chan
Definition: ReadCellNoiseFromCool.py:52
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
AFP::ToFVtxParamDBTool::m_rch_vtx
SG::ReadCondHandleKey< CondAttrListCollection > m_rch_vtx
Definition: ToFVtxParamDBTool.h:52
test_pyathena.parent
parent
Definition: test_pyathena.py:15
Muon::nsw::STGTPSegments::moduleIDBits::stationID
constexpr uint8_t stationID
Large or Small wedge.
Definition: NSWSTGTPDecodeBitmaps.h:152
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition: GeometryDefs.h:34
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
CondAttrListCollection::const_iterator
ChanAttrListMap::const_iterator const_iterator
Definition: CondAttrListCollection.h:63
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78