ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
ByteStreamEmonInputSvc Class Reference

implements the interface ByteStreamInputSvc for reading events from emon. More...

#include <ByteStreamEmonInputSvc.h>

Inheritance diagram for ByteStreamEmonInputSvc:
Collaboration diagram for ByteStreamEmonInputSvc:

Public Member Functions

 ByteStreamEmonInputSvc (const std::string &name, ISvcLocator *svcloc)
 Constructors: More...
 
virtual StatusCode initialize () override
 
virtual StatusCode start () override
 
virtual StatusCode finalize () override
 
virtual const RawEventpreviousEvent () override
 Implementation of the ByteStreamInputSvc interface methods. More...
 
virtual const RawEventnextEvent () override
 virtual method for advance to the next event More...
 
virtual const RawEventcurrentEvent () const override
 Implementation of the ByteStreamInputSvc interface methods. More...
 
virtual void setEvent (void *, unsigned int)
 
virtual unsigned int currentEventStatus () const
 virtual method for accessing the current event status More...
 
virtual std::pair< long, std::string > getBlockIterator (const std::string &)
 
virtual void closeBlockIterator (bool)
 
virtual bool ready ()
 
virtual StatusCode generateDataHeader ()
 
virtual long positionInBlock ()
 
virtual void validateEvent ()
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 Retrieve interface ID. More...
 

Private Member Functions

bool getIterator ()
 
void check_publish ()
 
void get_runparams ()
 
void updateHandler (Gaudi::Details::PropertyBase &p)
 

Private Attributes

int m_totalEventCounter {0}
 event Counter More...
 
std::unique_ptr< RawEventm_re {nullptr}
 current event More...
 
Gaudi::Property< std::string > m_partition {this, "Partition", {}, "Partition name, default taken from $TDAQ_PARTITION if not set"}
 
Gaudi::Property< std::string > m_key {this, "Key", {}, &ByteStreamEmonInputSvc::updateHandler, "EMON Selection key, e.g. SFI"}
 
Gaudi::Property< std::vector< std::string > > m_value {this, "KeyValue", {}, &ByteStreamEmonInputSvc::updateHandler, "EMON key values, e.g. [SFI-1, SFI-2]; if empty all SFIs"}
 
Gaudi::Property< unsigned int > m_key_count {this, "KeyCount", 0, &ByteStreamEmonInputSvc::updateHandler, "EMON key count, e.g. 5 to get five random SFIs"}
 
Gaudi::Property< std::string > m_publish {this, "PublishName", "Athena", &ByteStreamEmonInputSvc::updateHandler, "Name under which to publish histograms"}
 
Gaudi::Property< bool > m_exit {this, "ExitOnPartitionShutdown", false, &ByteStreamEmonInputSvc::updateHandler, "If true, exit if partition shuts down"}
 
Gaudi::Property< std::string > m_is_server {this, "ISServer", "", &ByteStreamEmonInputSvc::updateHandler, "IS Server to publish histograms to"}
 
Gaudi::Property< std::string > m_include {this, "Include", {}, &ByteStreamEmonInputSvc::updateHandler, "Regular expression to select histograms to publish"}
 
Gaudi::Property< std::string > m_exclude {this, "Exclude", {}, &ByteStreamEmonInputSvc::updateHandler, "Regular expression to select histograms not to publish"}
 
Gaudi::Property< int > m_frequency {this, "Frequency", 60, &ByteStreamEmonInputSvc::updateHandler, "Frequency (in number of events) of publishing histograms"}
 
Gaudi::Property< int > m_updatePeriod {this, "UpdatePeriod", 0, &ByteStreamEmonInputSvc::updateHandler, "Frequency (in seconds) of publishing histograms"}
 
Gaudi::Property< float > m_updatePeriodRange {this, "UpdatePeriodRange", 0.2, "A percentage number to determine how close we have to be to the next update time to publish now"}
 
Gaudi::Property< bool > m_clearHistograms {this, "ClearHistograms", true, &ByteStreamEmonInputSvc::updateHandler, "If true, clear histograms when new run starts (default: True)"}
 
Gaudi::Property< std::vector< std::string > > m_l1names {this, "LVL1Names", {}, &ByteStreamEmonInputSvc::updateHandler, "A list of L1 bit names"}
 
Gaudi::Property< std::vector< unsigned int > > m_l1items {this, "LVL1Items", {}, &ByteStreamEmonInputSvc::updateHandler, "A list of L1 bit numbers"}
 
Gaudi::Property< std::string > m_l1logic {this, "LVL1Logic", "Ignore", &ByteStreamEmonInputSvc::updateHandler, "'And', 'Or' or 'Ignore' (default: Ignore)"}
 
Gaudi::Property< std::string > m_l1origin {this, "LVL1Origin", "TAV", &ByteStreamEmonInputSvc::updateHandler, "TBP, TAP, TAV (default: TAV"}
 
Gaudi::Property< std::string > m_stream_type {this, "StreamType", "physics", &ByteStreamEmonInputSvc::updateHandler, "HLT stream type (e.g. physics or calibration)"}
 
Gaudi::Property< std::vector< std::string > > m_stream_names {this, "StreamNames", {}, &ByteStreamEmonInputSvc::updateHandler, "List of HLT stream names"}
 
Gaudi::Property< std::string > m_stream_logic {this, "StreamLogic", "Ignore", &ByteStreamEmonInputSvc::updateHandler, "'And', 'Or' or 'Ignore' (default: Ignore)"}
 
Gaudi::Property< unsigned int > m_trigger_type {this, "TriggerType", 256, &ByteStreamEmonInputSvc::updateHandler, "LVL1 8 bit trigger type"}
 
Gaudi::Property< std::string > m_groupName {this, "GroupName", {}, &ByteStreamEmonInputSvc::updateHandler, "Name of the monitoring group"}
 
Gaudi::Property< unsigned int > m_buffer_size {this, "BufferSize", 2, "Number of buffers"}
 
Gaudi::Property< bool > m_readDetectorMask {this, "ReadDetectorMaskFromIS", true, "Read detector mask from IS"}
 
Gaudi::Property< int > m_timeout {this, "Timeout", 3600000, &ByteStreamEmonInputSvc::updateHandler, "Timeout in seconds, -1 == infinity"}
 
Gaudi::Property< bool > m_corrupted_events {this, "ProcessCorruptedEvents", false, &ByteStreamEmonInputSvc::updateHandler, "Process corrupted events not passing check_tree()"}
 
Gaudi::Property< std::string > m_state {this, "State", "None", "Read-only property showing the state"}
 
Gaudi::Property< bool > m_convertEfficiency {this, "ConvertEfficiency", true, "Convert TEfficiency to TProfile before publishing"}
 
SG::ReadHandleKey< TrigConf::L1Menum_l1MenuKey {this, "L1TriggerMenu", "DetectorStore+L1TriggerMenu", "Name of the L1Menu object to read configuration from"}
 
bool m_connect {false}
 
std::auto_ptr< emon::EventIterator > m_eventIt
 Event iterator. More...
 
ITHistSvc * m_histSvc {nullptr}
 
OHRootProvider * m_provider {nullptr}
 
boost::regex m_include_rex
 
boost::regex m_exclude_rex
 
int m_frequency_counter {60}
 
int m_publish_target {0}
 
ServiceHandle< StoreGateSvcm_inputMetaDataStore
 
ServiceHandle< StoreGateSvcm_sgSvc
 
ServiceHandle< IROBDataProviderSvcm_robProvider
 

Detailed Description

implements the interface ByteStreamInputSvc for reading events from emon.

Definition at line 36 of file ByteStreamEmonInputSvc.h.

Constructor & Destructor Documentation

◆ ByteStreamEmonInputSvc()

ByteStreamEmonInputSvc::ByteStreamEmonInputSvc ( const std::string &  name,
ISvcLocator *  svcloc 
)

Constructors:

Definition at line 154 of file ByteStreamEmonInputSvc.cxx.

154  :
155  ByteStreamInputSvc(name,svcloc),
156  m_inputMetaDataStore("StoreGateSvc/InputMetaDataStore", name ),
157  m_sgSvc("StoreGateSvc", name),
158  m_robProvider("ROBDataProviderSvc", name)
159 {
160 }

Member Function Documentation

◆ check_publish()

void ByteStreamEmonInputSvc::check_publish ( )
private

Definition at line 486 of file ByteStreamEmonInputSvc.cxx.

487 {
488  // is a server specified ?
489  if(m_is_server.empty()) return;
490 
491  // a time based update ?
492  if(m_updatePeriod) {
493  time_t now = time(0);
494 
496  // it's too early to publish
497  return;
498  }
499 
501  // it's too late
502  unsigned int missed_publications = 0;
503  while(m_publish_target < now) {
504  missed_publications++;
506  }
507 
508  // do NOT publish, but print a warning
509  ATH_MSG_WARNING(" check_publish: missed " << missed_publications << " publications to OH");
510 
511  return;
512  }
513  }
514 
515  // an event based update ?
516  if(m_frequency && --m_frequency_counter > 0) return;
517 
519 
520  try {
521 
522  if(m_provider == nullptr) {
523  IPCPartition part(m_partition);
524  if(!part.isValid()) return;
525  // might throw...
526  m_provider = new OHRootProvider(part, m_is_server, m_publish);
527  }
528 
529  for(const std::string& name : m_histSvc->getHists()) {
530 
531  if(!m_include.empty() && !regex_match(name, m_include_rex)) {
532  continue;
533  }
534 
535  if(!m_exclude.empty() && regex_match(name, m_exclude_rex)) {
536  continue;
537  }
538 
539  TH1 *h = nullptr;
540  if(m_histSvc->getHist(name, h)) {
541  // might throw...
542  auto name_tag = detail::extract_histogram_tag(name);
543  m_provider->publish(*h, name_tag.first, name_tag.second);
544  };
545  }
546  for(const std::string& name : m_histSvc->getEfficiencies()) {
547 
548  if(!m_include.empty() && !regex_match(name, m_include_rex)) {
549  continue;
550  }
551 
552  if(!m_exclude.empty() && regex_match(name, m_exclude_rex)) {
553  continue;
554  }
555 
556  TEfficiency *h = nullptr;
557  if(m_histSvc->getEfficiency(name, h)) {
558  if (m_convertEfficiency) {
559  std::unique_ptr<const TH1> p;
560  if (h->GetDimension() == 1) {
561  p = create1DProfile(h);
562  } else if (h->GetDimension() == 2) {
563  p = create2DProfile(h);
564  }
565  // might throw...
566  auto name_tag = detail::extract_histogram_tag(name);
567  m_provider->publish(*p, name_tag.first, name_tag.second);
568  //m_provider->publish(*h, name_tag.first, name_tag.second);
569  } // tdaq doesn't currently support publishing efficiencies, will change in the future
570  };
571  }
572  } catch (daq::oh::Exception& ex) {
573  ATH_MSG_ERROR(ex.what());
574  }
575 
577 }

◆ closeBlockIterator()

void ByteStreamInputSvc::closeBlockIterator ( bool  )
inlinevirtualinherited

Reimplemented in ByteStreamEventStorageInputSvc.

Definition at line 61 of file ByteStreamInputSvc.h.

61 {}

◆ currentEvent()

const RawEvent * ByteStreamEmonInputSvc::currentEvent ( ) const
overridevirtual

Implementation of the ByteStreamInputSvc interface methods.

Implements ByteStreamInputSvc.

Definition at line 481 of file ByteStreamEmonInputSvc.cxx.

482 {
483  return m_re.get();
484 }

◆ currentEventStatus()

unsigned int ByteStreamInputSvc::currentEventStatus ( ) const
inlinevirtualinherited

virtual method for accessing the current event status

Reimplemented in ByteStreamEventStorageInputSvc.

Definition at line 55 of file ByteStreamInputSvc.h.

55  {
56  return(0);
57 }

◆ finalize()

StatusCode ByteStreamEmonInputSvc::finalize ( )
overridevirtual

Definition at line 655 of file ByteStreamEmonInputSvc.cxx.

656 {
657  setProperty("State","Shutdown").ignore();
658  m_inputMetaDataStore.release().ignore();
659  m_robProvider.release().ignore();
660  m_sgSvc.release().ignore();
661  return StatusCode::SUCCESS;
662 }

◆ generateDataHeader()

StatusCode ByteStreamInputSvc::generateDataHeader ( )
inlinevirtualinherited

Reimplemented in ByteStreamEventStorageInputSvc.

Definition at line 63 of file ByteStreamInputSvc.h.

63 {return StatusCode::SUCCESS;}

◆ get_runparams()

void ByteStreamEmonInputSvc::get_runparams ( )
private

Definition at line 579 of file ByteStreamEmonInputSvc.cxx.

580 {
581  IPCPartition p(m_partition);
582 
583  RunParamsNamed runParams(p, "RunParams.RunParams");
584  try {
585  runParams.checkout();
586 
587  eformat::helper::DetectorMask mask(runParams.det_mask);
588 
589  auto metadatacont = std::make_unique<ByteStreamMetadataContainer>();
590  metadatacont->push_back(std::make_unique<ByteStreamMetadata>(
591  runParams.run_number,
592  0,
593  0,
594  runParams.recording_enabled,
595  runParams.trigger_type,
596  mask.serialize().second,
597  runParams.beam_type,
598  runParams.beam_energy,
599  "",
600  "",
601  runParams.T0_project_tag,
602  0,
603  std::vector<std::string>()
604  ));
605  // Record ByteStreamMetadataContainer in MetaData Store
606  if(m_inputMetaDataStore->record(std::move(metadatacont),"ByteStreamMetadata").isFailure()) {
607  ATH_MSG_WARNING("Unable to record MetaData in InputMetaDataStore");
608  }
609  else {
610  ATH_MSG_DEBUG("Recorded MetaData in InputMetaDataStore");
611  }
612 
613  } catch(ers::Issue& ex) {
614  ATH_MSG_ERROR("Cannot get run parameters:" << ex.what());
615  }
616 }

◆ getBlockIterator()

std::pair< long, std::string > ByteStreamInputSvc::getBlockIterator ( const std::string &  )
inlinevirtualinherited

Reimplemented in ByteStreamEventStorageInputSvc.

Definition at line 60 of file ByteStreamInputSvc.h.

60 {return std::make_pair(-1,"GUID");}

◆ getIterator()

bool ByteStreamEmonInputSvc::getIterator ( )
private

Definition at line 225 of file ByteStreamEmonInputSvc.cxx.

226 {
227  setProperty("State", "Init").ignore();
228 
229  if(!IPCCore::isInitialised()) {
230  char* argv[2] = { 0 };
231  int argc = 0;
233  }
234 
235  IPCPartition partition(m_partition);
236  while(!partition.isValid()) {
237  if(m_exit) {
238  ATH_MSG_ERROR("No such partition: " << m_partition);
239  return false;
240  }
241  ATH_MSG_INFO("No such partition (yet?): " << m_partition);
242  sleep(20);
243  }
244 
245  delete m_provider;
246  m_provider = nullptr;
247 
248  std::unique_ptr<emon::SamplingAddress> address;
249 
250  if(m_key_count > 0) {
251  address.reset(new emon::SamplingAddress(m_key, m_key_count));
252  } else {
253  address.reset(new emon::SamplingAddress(m_key, m_value));
254  }
255 
256  emon::Logic l1_logic = emon::logic::IGNORE;
257  emon::Logic stream_logic = emon::logic::IGNORE;
258  emon::Origin l1_origin = emon::origin::AFTER_VETO;
259 
260  if(m_l1logic == "Or") {
261  l1_logic = emon::logic::OR;
262  } else if (m_l1logic == "And") {
263  l1_logic = emon::logic::AND;
264  } else if (m_l1logic == "Ignore") {
265  l1_logic = emon::logic::IGNORE;
266  }
267 
268  if(m_l1origin == "TBP") {
269  l1_origin = emon::origin::BEFORE_PRESCALE;
270  } else if (m_l1origin == "TAP") {
271  l1_origin = emon::origin::AFTER_PRESCALE;
272  } else if(m_l1origin == "TAV") {
273  l1_origin = emon::origin::AFTER_VETO;
274  } else {
275  ATH_MSG_FATAL("Invalid L1 origin");
276  }
277 
278  if(m_stream_logic == "Or") {
279  stream_logic = emon::logic::OR;
280  } else if (m_stream_logic == "And") {
281  stream_logic = emon::logic::AND;
282  } else if (m_stream_logic == "Ignore") {
283  stream_logic = emon::logic::IGNORE;
284  }
285 
286  // now put together the bit mask from all
287  // three sources: l1 bit mask, l1 names, l1 items
288 
289  std::vector<unsigned short> l1bits(m_l1items.begin(), m_l1items.end());
290 
291  // if names are given, read the mapping information from L1Menu
292  if (not m_l1names.value().empty()) {
293  ATH_MSG_DEBUG("Reading L1Menu to map " << m_l1names.name() << " to CTP IDs");
295  if (not l1Menu.isValid()) {
296  ATH_MSG_ERROR("Cannot read L1Menu to map L1 item names to IDs. The property " << m_l1names.name() << " will be ignored!");
297  } else {
298  for (const std::string& l1name : m_l1names) {
299  try {
300  const unsigned int id = l1Menu->item(l1name).ctpId();
301  ATH_MSG_DEBUG("Item " << l1name << " mapped to CTP ID " << id);
302  l1bits.push_back(static_cast<unsigned short>(id));
303  } catch (const std::exception& ex) {
304  ATH_MSG_ERROR(ex.what());
305  continue;
306  }
307  }
308  }
309  }
310 
311  typedef emon::MaskedValue<unsigned char> L1TriggerType;
312 
313  emon::SmartBitValue l1pattern(l1bits, l1_logic, l1_origin);
314  emon::SmartStreamValue streamTags(m_stream_type, m_stream_names, stream_logic);
315 
316  emon::L1TriggerType l1triggerType(static_cast<unsigned char>(m_trigger_type), m_trigger_type > 255);
317 
318  emon::SelectionCriteria criteria(l1triggerType,
319  l1pattern,
320  streamTags,
321  emon::StatusWord());
322 
323  while (true) {
324 
325  if (partition.name() != m_partition) {
326  ATH_MSG_INFO("Partition name changed - reconnecting to " << m_partition);
327  return getIterator();
328  }
329 
330  try {
331  m_eventIt.reset(0);
332  m_eventIt.reset(new emon::EventIterator(partition, *address, criteria, m_buffer_size, m_groupName));
333  if(m_readDetectorMask) {
334  get_runparams();
335  }
336  setProperty("State", "Connected").ignore();
337  return true;
338  } catch(ers::Issue& ex) {
339  ATH_MSG_INFO("Cannot connect to sampler (will wait 20s): " << m_key << "/" << m_value
340  << " Reason: " << ex.what());
341  sleep(20);
342  }
343  }
344 }

◆ initialize()

StatusCode ByteStreamEmonInputSvc::initialize ( )
overridevirtual

Definition at line 163 of file ByteStreamEmonInputSvc.cxx.

164 {
165  setProperty("State", "Init").ignore();
166 
168 
169  // check properties
170  if(m_partition.empty() && getenv("TDAQ_PARTITION") != 0) {
171  m_partition = getenv("TDAQ_PARTITION");
172  }
173 
174  if(m_partition.empty()){
175  ATH_MSG_ERROR("initialize: No partition name specified");
176  return StatusCode::FAILURE;
177  }
178 
179  if(m_key.empty()) {
180  ATH_MSG_ERROR("initialize: No emon key ");
181  return StatusCode::FAILURE;
182  }
183 
184  m_connect = true;
185 
186  if (service("THistSvc", m_histSvc, true).isFailure()) {
187  ATH_MSG_ERROR("Unable to locate THistSvc");
188  m_is_server.clear();
189  } else {
190  if(!m_include.empty()) m_include_rex = m_include.value();
191  if(!m_exclude.empty()) m_exclude_rex = m_exclude.value();
192  if(m_frequency < 0) m_frequency = 100000;
194 
195  // if time based update, disable frequency based update
196  if(m_updatePeriod) {
197  m_frequency = 0;
198  // calculate our next target for publishing
199  time_t now = time(0);
201  }
202  }
203 
204  //-------------------------------------------------------------------------
205  // Setup the InputMetaDataStore
206  //-------------------------------------------------------------------------
207  ATH_CHECK( m_inputMetaDataStore.retrieve() );
208  ATH_CHECK( m_robProvider.retrieve() );
209 
210  // Initialise the L1Menu read handle if we need to map L1 item names to IDs
211  ATH_CHECK(m_l1MenuKey.initialize(not m_l1names.value().empty()));
212 
213  signal(SIGTERM, handle_terminate);
214 
215  // Read run parameters from the partition
216  if (m_readDetectorMask) {
217  get_runparams();
218  }
219 
220  ATH_MSG_INFO("initialized for: " << m_partition << " " << m_key << "/" << m_value);
221 
222  return StatusCode::SUCCESS;
223 }

◆ interfaceID()

const InterfaceID & ByteStreamInputSvc::interfaceID ( )
inlinestaticinherited

Retrieve interface ID.

Declaration of the interface ID ( interface id, major version, minor version)

Definition at line 49 of file ByteStreamInputSvc.h.

49  {
51  static const InterfaceID IID_ByteStreamInputSvc("ByteStreamInputSvc", 1, 0);
52  return(IID_ByteStreamInputSvc);
53 }

◆ msg() [1/2]

MsgStream& AthCommonMsg< Service >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< Service >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< Service >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ nextEvent()

const RawEvent * ByteStreamEmonInputSvc::nextEvent ( )
overridevirtual

virtual method for advance to the next event

Implements ByteStreamInputSvc.

Definition at line 355 of file ByteStreamEmonInputSvc.cxx.

356 {
357  if (m_re) {
359  m_re->start(st);
360  if (st) delete [] st;
361  m_re.reset();
362  }
363 
364  while(m_re == nullptr) {
365 
366  if(m_connect) {
367 
368  if(!getIterator()) {
369  return nullptr;
370  } else {
371  ATH_MSG_INFO("Got sampler...");
372  m_connect = false;
373  }
374  }
375 
377  try {
378  int timeout = m_timeout;
379  if(m_updatePeriod) {
380  // try to hit lower end of update period
382  if(timeout <= 0) timeout = 1000;
383  }
384  event = m_eventIt->nextEvent(timeout);
385  } catch(emon::NoMoreEvents& ex) {
386  if(m_exit) {
387  return nullptr;
388  }
389  check_publish();
390  continue;
391  } catch (ers::Issue& ex) {
392  m_connect = true;
393  continue;
394  }
395 
396  setProperty("State", "Processing").ignore();
397 
399  memcpy(buf, event.data(), event.size() * sizeof(OFFLINE_FRAGMENTS_NAMESPACE::DataType));
400 
401 
402  if (buf[0] == eformat::FULL_EVENT) {
403 
404  // We got a full event
405  m_re = std::make_unique<RawEvent>(buf);
406  try {
407  m_re->check_tree();
408  ATH_MSG_INFO("nextEvent: Got valid fragment of size:" << event.size());
409  } catch (ers::Issue& ex) {
410 
411  // log in any case
412  std::stringstream ss;
413  ss << ex;
414  ATH_MSG_ERROR("nextEvent: Invalid event fragment: " << ss.str());
415 
416  if(!m_corrupted_events) {
417 
418  delete [] buf;
419  m_re.reset();
420  continue;
421  } // else fall through
422  }
423  m_robProvider->setNextEvent(m_re.get());
424  m_robProvider->setEventStatus(0);
425 
426  } else {
427  // We got something we didn't expect.
428  ATH_MSG_ERROR("nextEvent: Got invalid fragment of unknown type: 0x"
429  << std::hex << buf[0] << std::dec);
430  delete [] buf;
431  continue;
432  }
434  }
435 
436  // generate DataHeader
437  DataHeader* Dh = new DataHeader();
438 
439  // Declare header primary
441 
442  // Now add ref to xAOD::EventInfo objects
443  IOpaqueAddress* iop = new ByteStreamAddress(ClassID_traits<xAOD::EventInfo>::ID(), "EventInfo", "");
444  StatusCode ioc = m_sgSvc->recordAddress("EventInfo",iop);
445  if (ioc.isSuccess()) {
446  const SG::DataProxy* ptmp = m_sgSvc->transientProxy(ClassID_traits<xAOD::EventInfo>::ID(), "EventInfo");
447  if (ptmp !=0) {
448  DataHeaderElement DheEI(ptmp, nullptr, "EventInfo");
449  Dh->insert(DheEI);
450  }
451  //else ATH_MSG_ERROR("Failed to create xAOD::EventInfo proxy " << ptmp);
452  }
453 
454  // Now add ref to xAOD::EventAuxInfo objects
455  IOpaqueAddress* iopaux = new ByteStreamAddress(ClassID_traits<xAOD::EventAuxInfo>::ID(), "EventInfoAux.", "");
456  StatusCode iocaux = m_sgSvc->recordAddress("EventInfoAux.",iopaux);
457  if (iocaux.isSuccess()) {
458  const SG::DataProxy* ptmpaux = m_sgSvc->transientProxy(ClassID_traits<xAOD::EventAuxInfo>::ID(), "EventInfoAux.");
459  if (ptmpaux !=0) {
460  DataHeaderElement DheEIAux(ptmpaux, nullptr, "EventInfoAux.");
461  Dh->insert(DheEIAux);
462  }
463  //else ATH_MSG_ERROR("Failed to create xAOD::EventAuxInfo proxy " << ptmpaux);
464  }
465 
466  // Record new data header.Boolean flags will allow it's deletion in case
467  // of skipped events.
468  StatusCode rec_sg = m_sgSvc->record<DataHeader>(Dh, "ByteStreamDataHeader", true, false, true);
469  if (rec_sg != StatusCode::SUCCESS) {
470  ATH_MSG_ERROR("Fail to record BS DataHeader in StoreGate. Skipping events?! " << rec_sg);
471  }
472 
473  // we got an event, check if we have to publish
474  check_publish();
475 
476  return m_re.get();
477 
478 }

◆ positionInBlock()

long ByteStreamInputSvc::positionInBlock ( )
inlinevirtualinherited

Reimplemented in ByteStreamEventStorageInputSvc.

Definition at line 64 of file ByteStreamInputSvc.h.

64 {return -1;}

◆ previousEvent()

const RawEvent * ByteStreamEmonInputSvc::previousEvent ( )
overridevirtual

Implementation of the ByteStreamInputSvc interface methods.

Implements ByteStreamInputSvc.

Definition at line 347 of file ByteStreamEmonInputSvc.cxx.

348 {
349  ATH_MSG_WARNING("previousEvent not implemented for ByteStreamEmonInputSvc");
350 
351  return nullptr;
352 }

◆ ready()

bool ByteStreamInputSvc::ready ( )
inlinevirtualinherited

Reimplemented in ByteStreamEventStorageInputSvc.

Definition at line 62 of file ByteStreamInputSvc.h.

62 {return false;}

◆ setEvent()

virtual void ByteStreamInputSvc::setEvent ( void *  ,
unsigned int   
)
inlinevirtualinherited

Reimplemented in ByteStreamEventStorageInputSvc.

Definition at line 36 of file ByteStreamInputSvc.h.

36 {}

◆ start()

StatusCode ByteStreamEmonInputSvc::start ( )
overridevirtual

Definition at line 619 of file ByteStreamEmonInputSvc.cxx.

620 {
621  if(m_clearHistograms) {
622  ATH_MSG_INFO("Resetting histograms...");
623  for(const std::string& name : m_histSvc->getHists()) {
624  TH1 *h = nullptr;
625  if(m_histSvc->getHist(name, h)) {
626  h->Reset();
627  };
628  }
629  for(const std::string& name : m_histSvc->getEfficiencies()) {
630  TEfficiency *h = nullptr;
631  if(m_histSvc->getEfficiency(name, h)) {
632  std::unique_ptr<TH1> pass{h->GetCopyPassedHisto()};
633  pass->Reset();
634  h->SetPassedHistogram(*pass.get(), "");
635  std::unique_ptr<TH1> tot{h->GetCopyTotalHisto()};
636  tot->Reset();
637  h->SetTotalHistogram(*tot.get(), "");
638  h->SetWeight(1);
639  };
640  }
641  }
642  return StatusCode::SUCCESS;
643 }

◆ updateHandler()

void ByteStreamEmonInputSvc::updateHandler ( Gaudi::Details::PropertyBase &  p)
private

Definition at line 645 of file ByteStreamEmonInputSvc.cxx.

646 {
647  if(! m_connect) {
648  m_connect = true;
649  sleep(2);
650  setProperty("State","Reconnect").ignore();
651  }
652 }

◆ validateEvent()

void ByteStreamInputSvc::validateEvent ( )
inlinevirtualinherited

Reimplemented in ByteStreamEventStorageInputSvc.

Definition at line 65 of file ByteStreamInputSvc.h.

65 {}

Member Data Documentation

◆ m_buffer_size

Gaudi::Property<unsigned int> ByteStreamEmonInputSvc::m_buffer_size {this, "BufferSize", 2, "Number of buffers"}
private

Definition at line 89 of file ByteStreamEmonInputSvc.h.

◆ m_clearHistograms

Gaudi::Property<bool> ByteStreamEmonInputSvc::m_clearHistograms {this, "ClearHistograms", true, &ByteStreamEmonInputSvc::updateHandler, "If true, clear histograms when new run starts (default: True)"}
private

Definition at line 78 of file ByteStreamEmonInputSvc.h.

◆ m_connect

bool ByteStreamEmonInputSvc::m_connect {false}
private

Definition at line 100 of file ByteStreamEmonInputSvc.h.

◆ m_convertEfficiency

Gaudi::Property<bool> ByteStreamEmonInputSvc::m_convertEfficiency {this, "ConvertEfficiency", true, "Convert TEfficiency to TProfile before publishing"}
private

Definition at line 94 of file ByteStreamEmonInputSvc.h.

◆ m_corrupted_events

Gaudi::Property<bool> ByteStreamEmonInputSvc::m_corrupted_events {this, "ProcessCorruptedEvents", false, &ByteStreamEmonInputSvc::updateHandler, "Process corrupted events not passing check_tree()"}
private

Definition at line 92 of file ByteStreamEmonInputSvc.h.

◆ m_eventIt

std::auto_ptr<emon::EventIterator> ByteStreamEmonInputSvc::m_eventIt
private

Event iterator.

Definition at line 101 of file ByteStreamEmonInputSvc.h.

◆ m_exclude

Gaudi::Property<std::string> ByteStreamEmonInputSvc::m_exclude {this, "Exclude", {}, &ByteStreamEmonInputSvc::updateHandler, "Regular expression to select histograms not to publish"}
private

Definition at line 74 of file ByteStreamEmonInputSvc.h.

◆ m_exclude_rex

boost::regex ByteStreamEmonInputSvc::m_exclude_rex
private

Definition at line 107 of file ByteStreamEmonInputSvc.h.

◆ m_exit

Gaudi::Property<bool> ByteStreamEmonInputSvc::m_exit {this, "ExitOnPartitionShutdown", false, &ByteStreamEmonInputSvc::updateHandler, "If true, exit if partition shuts down"}
private

Definition at line 71 of file ByteStreamEmonInputSvc.h.

◆ m_frequency

Gaudi::Property<int> ByteStreamEmonInputSvc::m_frequency {this, "Frequency", 60, &ByteStreamEmonInputSvc::updateHandler, "Frequency (in number of events) of publishing histograms"}
private

Definition at line 75 of file ByteStreamEmonInputSvc.h.

◆ m_frequency_counter

int ByteStreamEmonInputSvc::m_frequency_counter {60}
private

Definition at line 109 of file ByteStreamEmonInputSvc.h.

◆ m_groupName

Gaudi::Property<std::string> ByteStreamEmonInputSvc::m_groupName {this, "GroupName", {}, &ByteStreamEmonInputSvc::updateHandler, "Name of the monitoring group"}
private

Definition at line 88 of file ByteStreamEmonInputSvc.h.

◆ m_histSvc

ITHistSvc* ByteStreamEmonInputSvc::m_histSvc {nullptr}
private

Definition at line 103 of file ByteStreamEmonInputSvc.h.

◆ m_include

Gaudi::Property<std::string> ByteStreamEmonInputSvc::m_include {this, "Include", {}, &ByteStreamEmonInputSvc::updateHandler, "Regular expression to select histograms to publish"}
private

Definition at line 73 of file ByteStreamEmonInputSvc.h.

◆ m_include_rex

boost::regex ByteStreamEmonInputSvc::m_include_rex
private

Definition at line 106 of file ByteStreamEmonInputSvc.h.

◆ m_inputMetaDataStore

ServiceHandle<StoreGateSvc> ByteStreamEmonInputSvc::m_inputMetaDataStore
private

Definition at line 112 of file ByteStreamEmonInputSvc.h.

◆ m_is_server

Gaudi::Property<std::string> ByteStreamEmonInputSvc::m_is_server {this, "ISServer", "", &ByteStreamEmonInputSvc::updateHandler, "IS Server to publish histograms to"}
private

Definition at line 72 of file ByteStreamEmonInputSvc.h.

◆ m_key

Gaudi::Property<std::string> ByteStreamEmonInputSvc::m_key {this, "Key", {}, &ByteStreamEmonInputSvc::updateHandler, "EMON Selection key, e.g. SFI"}
private

Definition at line 67 of file ByteStreamEmonInputSvc.h.

◆ m_key_count

Gaudi::Property<unsigned int> ByteStreamEmonInputSvc::m_key_count {this, "KeyCount", 0, &ByteStreamEmonInputSvc::updateHandler, "EMON key count, e.g. 5 to get five random SFIs"}
private

Definition at line 69 of file ByteStreamEmonInputSvc.h.

◆ m_l1items

Gaudi::Property<std::vector<unsigned int> > ByteStreamEmonInputSvc::m_l1items {this, "LVL1Items", {}, &ByteStreamEmonInputSvc::updateHandler, "A list of L1 bit numbers"}
private

Definition at line 80 of file ByteStreamEmonInputSvc.h.

◆ m_l1logic

Gaudi::Property<std::string> ByteStreamEmonInputSvc::m_l1logic {this, "LVL1Logic", "Ignore", &ByteStreamEmonInputSvc::updateHandler, "'And', 'Or' or 'Ignore' (default: Ignore)"}
private

Definition at line 81 of file ByteStreamEmonInputSvc.h.

◆ m_l1MenuKey

SG::ReadHandleKey<TrigConf::L1Menu> ByteStreamEmonInputSvc::m_l1MenuKey {this, "L1TriggerMenu", "DetectorStore+L1TriggerMenu", "Name of the L1Menu object to read configuration from"}
private

Definition at line 97 of file ByteStreamEmonInputSvc.h.

◆ m_l1names

Gaudi::Property<std::vector<std::string> > ByteStreamEmonInputSvc::m_l1names {this, "LVL1Names", {}, &ByteStreamEmonInputSvc::updateHandler, "A list of L1 bit names"}
private

Definition at line 79 of file ByteStreamEmonInputSvc.h.

◆ m_l1origin

Gaudi::Property<std::string> ByteStreamEmonInputSvc::m_l1origin {this, "LVL1Origin", "TAV", &ByteStreamEmonInputSvc::updateHandler, "TBP, TAP, TAV (default: TAV"}
private

Definition at line 82 of file ByteStreamEmonInputSvc.h.

◆ m_partition

Gaudi::Property<std::string> ByteStreamEmonInputSvc::m_partition {this, "Partition", {}, "Partition name, default taken from $TDAQ_PARTITION if not set"}
private

Definition at line 66 of file ByteStreamEmonInputSvc.h.

◆ m_provider

OHRootProvider* ByteStreamEmonInputSvc::m_provider {nullptr}
private

Definition at line 104 of file ByteStreamEmonInputSvc.h.

◆ m_publish

Gaudi::Property<std::string> ByteStreamEmonInputSvc::m_publish {this, "PublishName", "Athena", &ByteStreamEmonInputSvc::updateHandler, "Name under which to publish histograms"}
private

Definition at line 70 of file ByteStreamEmonInputSvc.h.

◆ m_publish_target

int ByteStreamEmonInputSvc::m_publish_target {0}
private

Definition at line 110 of file ByteStreamEmonInputSvc.h.

◆ m_re

std::unique_ptr<RawEvent> ByteStreamEmonInputSvc::m_re {nullptr}
private

current event

Definition at line 63 of file ByteStreamEmonInputSvc.h.

◆ m_readDetectorMask

Gaudi::Property<bool> ByteStreamEmonInputSvc::m_readDetectorMask {this, "ReadDetectorMaskFromIS", true, "Read detector mask from IS"}
private

Definition at line 90 of file ByteStreamEmonInputSvc.h.

◆ m_robProvider

ServiceHandle<IROBDataProviderSvc> ByteStreamEmonInputSvc::m_robProvider
private

Definition at line 114 of file ByteStreamEmonInputSvc.h.

◆ m_sgSvc

ServiceHandle<StoreGateSvc> ByteStreamEmonInputSvc::m_sgSvc
private

Definition at line 113 of file ByteStreamEmonInputSvc.h.

◆ m_state

Gaudi::Property<std::string> ByteStreamEmonInputSvc::m_state {this, "State", "None", "Read-only property showing the state"}
private

Definition at line 93 of file ByteStreamEmonInputSvc.h.

◆ m_stream_logic

Gaudi::Property<std::string> ByteStreamEmonInputSvc::m_stream_logic {this, "StreamLogic", "Ignore", &ByteStreamEmonInputSvc::updateHandler, "'And', 'Or' or 'Ignore' (default: Ignore)"}
private

Definition at line 85 of file ByteStreamEmonInputSvc.h.

◆ m_stream_names

Gaudi::Property<std::vector<std::string> > ByteStreamEmonInputSvc::m_stream_names {this, "StreamNames", {}, &ByteStreamEmonInputSvc::updateHandler, "List of HLT stream names"}
private

Definition at line 84 of file ByteStreamEmonInputSvc.h.

◆ m_stream_type

Gaudi::Property<std::string> ByteStreamEmonInputSvc::m_stream_type {this, "StreamType", "physics", &ByteStreamEmonInputSvc::updateHandler, "HLT stream type (e.g. physics or calibration)"}
private

Definition at line 83 of file ByteStreamEmonInputSvc.h.

◆ m_timeout

Gaudi::Property<int> ByteStreamEmonInputSvc::m_timeout {this, "Timeout", 3600000, &ByteStreamEmonInputSvc::updateHandler, "Timeout in seconds, -1 == infinity"}
private

Definition at line 91 of file ByteStreamEmonInputSvc.h.

◆ m_totalEventCounter

int ByteStreamEmonInputSvc::m_totalEventCounter {0}
private

event Counter

Definition at line 61 of file ByteStreamEmonInputSvc.h.

◆ m_trigger_type

Gaudi::Property<unsigned int> ByteStreamEmonInputSvc::m_trigger_type {this, "TriggerType", 256, &ByteStreamEmonInputSvc::updateHandler, "LVL1 8 bit trigger type"}
private

Definition at line 87 of file ByteStreamEmonInputSvc.h.

◆ m_updatePeriod

Gaudi::Property<int> ByteStreamEmonInputSvc::m_updatePeriod {this, "UpdatePeriod", 0, &ByteStreamEmonInputSvc::updateHandler, "Frequency (in seconds) of publishing histograms"}
private

Definition at line 76 of file ByteStreamEmonInputSvc.h.

◆ m_updatePeriodRange

Gaudi::Property<float> ByteStreamEmonInputSvc::m_updatePeriodRange {this, "UpdatePeriodRange", 0.2, "A percentage number to determine how close we have to be to the next update time to publish now"}
private

Definition at line 77 of file ByteStreamEmonInputSvc.h.

◆ m_value

Gaudi::Property<std::vector<std::string> > ByteStreamEmonInputSvc::m_value {this, "KeyValue", {}, &ByteStreamEmonInputSvc::updateHandler, "EMON key values, e.g. [SFI-1, SFI-2]; if empty all SFIs"}
private

Definition at line 68 of file ByteStreamEmonInputSvc.h.


The documentation for this class was generated from the following files:
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
ByteStreamEmonInputSvc::m_re
std::unique_ptr< RawEvent > m_re
current event
Definition: ByteStreamEmonInputSvc.h:63
ByteStreamEmonInputSvc::m_exit
Gaudi::Property< bool > m_exit
Definition: ByteStreamEmonInputSvc.h:71
ByteStreamEmonInputSvc::m_sgSvc
ServiceHandle< StoreGateSvc > m_sgSvc
Definition: ByteStreamEmonInputSvc.h:113
ByteStreamEmonInputSvc::m_connect
bool m_connect
Definition: ByteStreamEmonInputSvc.h:100
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
detail::extract_histogram_tag
std::pair< std::string, int > extract_histogram_tag(const std::string &histo_name)
Extract tag/LB number from per-LBN histogram name.
Definition: extract_histogram_tag.cxx:16
ByteStreamEmonInputSvc::m_stream_type
Gaudi::Property< std::string > m_stream_type
Definition: ByteStreamEmonInputSvc.h:83
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
PowhegControl_ttHplus_NLO.ss
ss
Definition: PowhegControl_ttHplus_NLO.py:83
ByteStreamEmonInputSvc::m_totalEventCounter
int m_totalEventCounter
event Counter
Definition: ByteStreamEmonInputSvc.h:61
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
OFFLINE_FRAGMENTS_NAMESPACE::DataType
uint32_t DataType
Definition: RawEvent.h:24
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
ByteStreamEmonInputSvc::m_publish_target
int m_publish_target
Definition: ByteStreamEmonInputSvc.h:110
ByteStreamEmonInputSvc::m_l1logic
Gaudi::Property< std::string > m_l1logic
Definition: ByteStreamEmonInputSvc.h:81
ByteStreamEmonInputSvc::m_histSvc
ITHistSvc * m_histSvc
Definition: ByteStreamEmonInputSvc.h:103
TrigConf::L1Item::ctpId
unsigned int ctpId() const
Accessor to the CTP ID.
Definition: L1Item.cxx:34
DataHeader::Input
@ Input
Definition: DataHeader.h:126
ByteStreamEmonInputSvc::check_publish
void check_publish()
Definition: ByteStreamEmonInputSvc.cxx:486
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
ByteStreamEmonInputSvc::m_groupName
Gaudi::Property< std::string > m_groupName
Definition: ByteStreamEmonInputSvc.h:88
Issue
Configuration Issue
Definition: PscIssues.h:31
ByteStreamEmonInputSvc::m_robProvider
ServiceHandle< IROBDataProviderSvc > m_robProvider
Definition: ByteStreamEmonInputSvc.h:114
initialize
void initialize()
Definition: run_EoverP.cxx:894
JiveXML::Event
struct Event_t Event
Definition: ONCRPCServer.h:65
ByteStreamEmonInputSvc::m_exclude
Gaudi::Property< std::string > m_exclude
Definition: ByteStreamEmonInputSvc.h:74
ByteStreamEmonInputSvc::m_trigger_type
Gaudi::Property< unsigned int > m_trigger_type
Definition: ByteStreamEmonInputSvc.h:87
Root::AND
@ AND
Definition: TGRLCollection.h:32
ByteStreamEmonInputSvc::m_partition
Gaudi::Property< std::string > m_partition
Definition: ByteStreamEmonInputSvc.h:66
ByteStreamInputSvc::ByteStreamInputSvc
ByteStreamInputSvc(const std::string &name, ISvcLocator *svcloc)
constructor
Definition: ByteStreamInputSvc.cxx:8
LArCellConditions.argv
argv
Definition: LArCellConditions.py:112
ByteStreamEmonInputSvc::m_l1origin
Gaudi::Property< std::string > m_l1origin
Definition: ByteStreamEmonInputSvc.h:82
Logic
@ Logic
Definition: BaseObject.h:11
python.utils.AtlRunQueryLookup.mask
string mask
Definition: AtlRunQueryLookup.py:460
ByteStreamEmonInputSvc::m_l1MenuKey
SG::ReadHandleKey< TrigConf::L1Menu > m_l1MenuKey
Definition: ByteStreamEmonInputSvc.h:97
ByteStreamEmonInputSvc::getIterator
bool getIterator()
Definition: ByteStreamEmonInputSvc.cxx:225
ByteStreamEmonInputSvc::m_frequency_counter
int m_frequency_counter
Definition: ByteStreamEmonInputSvc.h:109
ByteStreamEmonInputSvc::m_l1items
Gaudi::Property< std::vector< unsigned int > > m_l1items
Definition: ByteStreamEmonInputSvc.h:80
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition: ReadCondHandle.h:269
ByteStreamEmonInputSvc::m_convertEfficiency
Gaudi::Property< bool > m_convertEfficiency
Definition: ByteStreamEmonInputSvc.h:94
ByteStreamEmonInputSvc::m_include_rex
boost::regex m_include_rex
Definition: ByteStreamEmonInputSvc.h:106
OFFLINE_FRAGMENTS_NAMESPACE::PointerType
const DataType * PointerType
Definition: RawEvent.h:25
DataHeaderElement
This class provides a persistent form for the TransientAddress.
Definition: DataHeader.h:36
python.handimod.now
now
Definition: handimod.py:675
ByteStreamEmonInputSvc::m_timeout
Gaudi::Property< int > m_timeout
Definition: ByteStreamEmonInputSvc.h:91
ByteStreamEmonInputSvc::m_eventIt
std::auto_ptr< emon::EventIterator > m_eventIt
Event iterator.
Definition: ByteStreamEmonInputSvc.h:101
ByteStreamEmonInputSvc::m_buffer_size
Gaudi::Property< unsigned int > m_buffer_size
Definition: ByteStreamEmonInputSvc.h:89
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
event
POOL::TEvent event(POOL::TEvent::kClassAccess)
ByteStreamEmonInputSvc::m_frequency
Gaudi::Property< int > m_frequency
Definition: ByteStreamEmonInputSvc.h:75
DataHeader
This class provides the layout for summary information stored for data written to POOL.
Definition: DataHeader.h:124
python.DecayParser.buf
buf
print ("=> [%s]"cmd)
Definition: DecayParser.py:27
ByteStreamEmonInputSvc::m_stream_names
Gaudi::Property< std::vector< std::string > > m_stream_names
Definition: ByteStreamEmonInputSvc.h:84
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
ByteStreamEmonInputSvc::get_runparams
void get_runparams()
Definition: ByteStreamEmonInputSvc.cxx:579
ByteStreamAddress
IOpaqueAddress for ByteStreamCnvSvc, with ROB ids.
Definition: ByteStreamAddress.h:28
ClassID_traits
Default, invalid implementation of ClassID_traits.
Definition: Control/AthenaKernel/AthenaKernel/ClassID_traits.h:40
TrigConf::L1Menu::item
L1Item item(const std::string &itemName) const
Get item by name.
Definition: L1Menu.cxx:201
calibdata.exception
exception
Definition: calibdata.py:496
ByteStreamEmonInputSvc::m_inputMetaDataStore
ServiceHandle< StoreGateSvc > m_inputMetaDataStore
Definition: ByteStreamEmonInputSvc.h:112
ByteStreamEmonInputSvc::m_corrupted_events
Gaudi::Property< bool > m_corrupted_events
Definition: ByteStreamEmonInputSvc.h:92
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
DQHistogramMergeRegExp.argc
argc
Definition: DQHistogramMergeRegExp.py:20
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
ByteStreamEmonInputSvc::m_exclude_rex
boost::regex m_exclude_rex
Definition: ByteStreamEmonInputSvc.h:107
LB_AnalMapSplitter.tot
tot
Definition: LB_AnalMapSplitter.py:46
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
ByteStreamEmonInputSvc::m_provider
OHRootProvider * m_provider
Definition: ByteStreamEmonInputSvc.h:104
ByteStreamEmonInputSvc::m_publish
Gaudi::Property< std::string > m_publish
Definition: ByteStreamEmonInputSvc.h:70
DataHeader::insert
void insert(const SG::TransientAddress *sgAddress, IOpaqueAddress *tokAddress=0, const std::string &pTag="")
Insert a new element into the "DataObject" vector.
Definition: DataHeader.cxx:267
ByteStreamEmonInputSvc::m_readDetectorMask
Gaudi::Property< bool > m_readDetectorMask
Definition: ByteStreamEmonInputSvc.h:90
DataHeader::setStatus
void setStatus(statusFlag status)
Set StatusFlag enum for DataHeader.
Definition: DataHeader.cxx:235
Cut::signal
@ signal
Definition: SUSYToolsAlg.cxx:64
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
ByteStreamEmonInputSvc::m_key_count
Gaudi::Property< unsigned int > m_key_count
Definition: ByteStreamEmonInputSvc.h:69
ByteStreamEmonInputSvc::m_is_server
Gaudi::Property< std::string > m_is_server
Definition: ByteStreamEmonInputSvc.h:72
RTTAlgmain.address
address
Definition: RTTAlgmain.py:55
python.PyKernel.init
def init(v_theApp, v_rootStream=None)
Definition: PyKernel.py:45
ByteStreamEmonInputSvc::m_include
Gaudi::Property< std::string > m_include
Definition: ByteStreamEmonInputSvc.h:73
ByteStreamEmonInputSvc::m_clearHistograms
Gaudi::Property< bool > m_clearHistograms
Definition: ByteStreamEmonInputSvc.h:78
ByteStreamEmonInputSvc::m_updatePeriod
Gaudi::Property< int > m_updatePeriod
Definition: ByteStreamEmonInputSvc.h:76
ByteStreamEmonInputSvc::m_value
Gaudi::Property< std::vector< std::string > > m_value
Definition: ByteStreamEmonInputSvc.h:68
SCT_ConditionsAlgorithms::CoveritySafe::getenv
std::string getenv(const std::string &variableName)
get an environment variable
Definition: SCT_ConditionsUtilities.cxx:17
h
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
TH1
Definition: rootspy.cxx:268
StateLessPT_NewConfig.partition
partition
Definition: StateLessPT_NewConfig.py:49
Root::OR
@ OR
Definition: TGRLCollection.h:32
ByteStreamEmonInputSvc::m_l1names
Gaudi::Property< std::vector< std::string > > m_l1names
Definition: ByteStreamEmonInputSvc.h:79
ByteStreamEmonInputSvc::m_stream_logic
Gaudi::Property< std::string > m_stream_logic
Definition: ByteStreamEmonInputSvc.h:85
SG::DataProxy
Definition: DataProxy.h:44
python.TrigInDetArtSteps.timeout
timeout
Definition: TrigInDetArtSteps.py:35
ByteStreamEmonInputSvc::m_updatePeriodRange
Gaudi::Property< float > m_updatePeriodRange
Definition: ByteStreamEmonInputSvc.h:77
ByteStreamEmonInputSvc::m_key
Gaudi::Property< std::string > m_key
Definition: ByteStreamEmonInputSvc.h:67