ATLAS Offline Software
Classes | Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
TileTBStat Class Reference

Class to produce run statistics. Used to fill commissioning database. More...

#include <TileTBStat.h>

Inheritance diagram for TileTBStat:
Collaboration diagram for TileTBStat:

Classes

struct  T_RobRodFragMap
 
struct  T_RodDataFrag
 

Public Member Functions

 TileTBStat (const std::string &name, ISvcLocator *pSvcLocator)
 
virtual ~TileTBStat ()
 
virtual StatusCode initialize () override
 
virtual StatusCode execute () override
 
virtual StatusCode finalize () override
 
virtual StatusCode sysInitialize () override
 Override sysInitialize. More...
 
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies. More...
 
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
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Private Types

typedef struct TileTBStat::T_RobRodFragMap T_RobRodFragMap
 
typedef struct TileTBStat::T_RodDataFrag T_RodDataFrag
 
typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

void find_frag (const uint32_t *data, unsigned int size, T_RobRodFragMap &ROBfrag)
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

Gaudi::Property< bool > m_printAllEvents
 
Gaudi::Property< bool > m_detectDummyFragments
 
SG::ReadCondHandleKey< TileHid2RESrcIDm_hid2RESrcIDKey
 
SG::ReadHandleKey< TileDQstatusm_dqStatusKey
 
SG::ReadHandleKey< TileLaserObjectm_laserObjectKey
 
ServiceHandle< IROBDataProviderSvcm_robSvc
 Name of ROB data provider service. More...
 
int m_evtNr
 
StatDouble m_laserBoxTemp
 
StatDouble m_laserDiodeTemp
 
StatDouble m_laserBoxHum
 
StatDouble m_gasFlow
 
StatInt m_cisMode
 
StatInt m_cisSamples
 
StatInt m_cisPipeline
 
StatInt m_cisI3Delay
 
StatInt m_cisDAC
 
StatInt m_cisCap
 
StatInt m_cisEvent
 
StatInt m_cisPhase
 
StatInt m_cisCard
 
StatInt m_lasFiltNum
 
StatInt m_lasAmp
 
StatInt m_lasAlphaPos
 
int m_lasStatus
 
int m_checkOn
 
int m_checkOff
 
int m_check0
 
int m_check1
 
int m_check2
 
int m_Alarm
 
int m_Error
 
int m_ShOpen
 
int m_ShClose
 
uint32_t m_runNo
 
uint32_t m_evTime
 
uint32_t m_evtNo
 
int m_trigType
 
uint32_t m_prevTrig
 
uint32_t m_evtBegin
 
uint32_t m_timeBegin
 
uint32_t m_timeStart
 
uint32_t m_timeLast
 
uint32_t m_evtMin
 
uint32_t m_evtMax
 
uint32_t m_calibMode
 
uint32_t m_spillPattern
 
uint32_t m_nSpill
 
uint32_t m_nEvt [5]
 
uint32_t m_cisPar [16]
 
uint32_t m_cis1st [16]
 
uint32_t m_cisBeg [19]
 
uint32_t m_cisEnd [19]
 
std::vector< T_RobRodFragMapm_fragMap
 
std::vector< T_RobRodFragMapm_beamFragMap
 
uint32_t m_nEventsPerTrigger [257]
 
DataObjIDColl m_extendedExtraObjects
 
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
 

Detailed Description

Class to produce run statistics. Used to fill commissioning database.

Definition at line 76 of file TileTBStat.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

◆ T_RobRodFragMap

◆ T_RodDataFrag

Constructor & Destructor Documentation

◆ TileTBStat()

TileTBStat::TileTBStat ( const std::string &  name,
ISvcLocator *  pSvcLocator 
)

Definition at line 125 of file TileTBStat.cxx.

126  : AthAlgorithm(name, pSvcLocator)
127  , m_evtNr(0)
128  , m_lasStatus(0)
129  , m_checkOn(0)
130  , m_checkOff(0)
131  , m_check0(0)
132  , m_check1(0)
133  , m_check2(0)
134  , m_Alarm(0)
135  , m_Error(0)
136  , m_ShOpen(0)
137  , m_ShClose(0)
138  , m_evTime(0)
139  , m_trigType(0)
140  , m_prevTrig(0)
141  , m_timeBegin(0)
142  , m_timeStart(0)
143  , m_timeLast(0)
144  , m_calibMode(0)
145  , m_spillPattern(0)
146  , m_nSpill(0)
147  , m_nEvt()
148  , m_cisPar()
149  , m_cis1st()
150  , m_cisBeg()
151  , m_cisEnd()
153 {
155 }

◆ ~TileTBStat()

TileTBStat::~TileTBStat ( )
virtual

Definition at line 158 of file TileTBStat.cxx.

158  {
159 }

Member Function Documentation

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ execute()

StatusCode TileTBStat::execute ( )
overridevirtual

Definition at line 196 of file TileTBStat.cxx.

196  {
197 
198  const EventContext& ctx = Gaudi::Hive::currentContext();
199  const TileDQstatus* dqStatus = SG::makeHandle (m_dqStatusKey, ctx).get();
200 
201  static std::atomic<bool> first=true;
202  static std::atomic<bool> firstORsecond=true;
203 
204  if ( firstORsecond ) {
205  const eformat::FullEventFragment<const uint32_t*> * event = m_robSvc->getEvent(ctx);
206  if( true /* event->check_tree() */) { // valid event
207  if ( ! first ) firstORsecond = m_printAllEvents;
208  first=false;
209  m_fragMap.clear();
210 
211  uint32_t nrob = event->nchildren();
212  uint32_t L1type = event->lvl1_trigger_type();
213 
214  for (size_t irob=0; irob<nrob; ++irob) {
215  const uint32_t* fprob;
216  event->child(fprob, irob);
217  const eformat::ROBFragment<const uint32_t*> robf(fprob);
218 
219  T_RobRodFragMap ROBfrag;
220  ROBfrag.L1type = L1type;
221  ROBfrag.ROBid = robf.source_id();
222  ROBfrag.RODid = robf.rod_source_id();
223 
224  //unsigned int version = robf.rod_version();
225  unsigned int source_id = robf.rod_source_id();
226  eformat::helper::SourceIdentifier id = eformat::helper::SourceIdentifier(source_id);
227  unsigned int subdet_id = id.subdetector_id();
228  //unsigned int module_id = id.module_id();
229 
230  unsigned int max_allowed_size = robf.rod_fragment_size_word();
231  unsigned int delta = robf.rod_header_size_word() + robf.rod_trailer_size_word();
232  if (max_allowed_size > delta) {
233  max_allowed_size -= delta;
234  } else {
235  max_allowed_size = 0;
236  }
237 
238  unsigned int size = robf.rod_ndata();
239  if (size > max_allowed_size) {
240 
241  if (size - robf.rod_trailer_size_word() < max_allowed_size) {
242  ATH_MSG_ERROR( "Problem with data size - assuming that trailer size is " << robf.rod_trailer_size_word()-(size-max_allowed_size)
243  <<" words instead of " << robf.rod_trailer_size_word() << " and data size is " << size << " words " );
244  max_allowed_size = size;
245  } else if (size - robf.rod_trailer_size_word() == max_allowed_size) {
246  ATH_MSG_ERROR( "Problem with data size - assuming that trailer is absent "
247  << " ROD size " << robf.rod_fragment_size_word()
248  << " header size " << robf.rod_header_size_word()
249  << " data size " << size );
250  max_allowed_size = size;
251  } else {
252  max_allowed_size += robf.rod_trailer_size_word();
253  size = max_allowed_size;
254  ATH_MSG_ERROR( "Problem with data size - assuming " << size << " words and no trailer at all" );
255  }
256  }
257 
258  if ( size > 0 ) {
259 
260  const uint32_t * data;
261  robf.rod_data(data);
262 
263  switch ( subdet_id ) {
264  case TILE_BEAM_ID: // TILE BEAM ROD
265  case COMMON_BEAM_ID: // COMMON BEAM ROD
266  case 0x63: // wrong id in first test runs
267  case TILE_POS_ID: // POSITIVE ROD
268  case TILE_NEG_ID: // NEGATIVE ROD
269  case TILE_EBPOS_ID: // POSITIVE EB ROD
270  case TILE_EBNEG_ID: // NEGATIVE EB ROD
271  find_frag(data, size, ROBfrag);
272  break;
273  default:
274  break;
275  }
276  }
277  m_fragMap.push_back(ROBfrag);
278  if ((ROBfrag.RODid & 0xFF0000) == 0x500000) {
279  size_t i=0;
280  for ( ; i<m_beamFragMap.size(); ++i) {
281  if (m_beamFragMap[i].ROBid == ROBfrag.ROBid && m_beamFragMap[i].L1type == ROBfrag.L1type) break;
282  }
283  if (i==m_beamFragMap.size()) {
284  m_beamFragMap.push_back(ROBfrag);
285  }
286  }
287  }
288 
289  if (m_printAllEvents)
290  std::cout << "Fragments found in event " << event->global_id();
291  else if (firstORsecond)
292  std::cout << "Fragments found in first event";
293  else
294  std::cout << "Fragments found in second event";
295  std::cout << " L1 trigger type " << L1type << " (0x"<< std::hex << L1type << std::dec << ")"
296  << " calib mode=" << dqStatus->calibMode() << std::endl
297  << " ROB ID ROD ID Frag IDs" << std::endl;
298  for (unsigned int i = 0; i < nrob; ++i) {
299  std::cout << std::hex << " 0x" << m_fragMap[i].ROBid << " 0x" << m_fragMap[i].RODid;
300  for (unsigned int j = 0; j < m_fragMap[i].fragID.size(); ++j)
301  std::cout << std::hex << " 0x" << m_fragMap[i].fragID[j];
302  std::cout << std::dec << std::endl;
303  }
304  }
305  }
306 
307  // take values from event header
308 
309  memcpy(m_cisPar,dqStatus->cispar(), sizeof (m_cisPar));
310 
311  unsigned int testsum=0;
312  for (int k = 4; k < 16; ++k) testsum += m_cisPar[k];
313  if ( testsum == 0 && m_cisPar[3] == 8 ) { // broken CIS par
316  } else {
326  }
327 
328  const eformat::FullEventFragment<const uint32_t*> * event = m_robSvc->getEvent(ctx);
329 
330  if (testsum!=0) {
331  memcpy(m_cisEnd,m_cisPar,sizeof(m_cisPar));
332  m_cisEnd[16] = event->global_id();
333  m_cisEnd[17] = m_evtNr;
334  m_cisEnd[18] = 1;
335  if (m_cisBeg[18] == 0) {
336  memcpy(m_cisBeg,m_cisEnd,sizeof(m_cisEnd));
337  }
338  }
339 
340  m_evTime = event->bc_time_seconds();
341  if (m_evTime >= m_timeStart || m_evTime < 1054321000 ) {
342  if (m_evtNr == 0)
343  ATH_MSG_WARNING( "bad time in event header (" << m_evTime << "), taking time from cispar (" << m_cisPar[10] << ")" );
344 
345  m_evTime = m_cisPar[10];
346  }
347 
348  m_trigType = dqStatus->trigType();
349  if (m_trigType < 1 || m_trigType > 0x80 ) {
350  if (m_evtNr == 0)
351  ATH_MSG_WARNING( "no event trig type available (" << m_trigType << ") , taking trig from cispar (" << m_cisPar[12] << ")" );
352 
353  m_trigType = m_cisPar[12];
354  }
355 
356  m_evtNo = event->global_id();
357  if (m_evtNo < m_evtMin) m_evtMin = m_evtNo;
358  if (m_evtNo > m_evtMax) m_evtMax = m_evtNo;
359 
360  if (m_evtNr == 0) {
362  ATH_CHECK(hid2re.isValid());
363  std::vector<uint32_t> robid;
364  robid.push_back( hid2re->getRobFromFragID(DIGI_PAR_FRAG) );
365  robid.push_back( hid2re->getRobFromFragID(LASER_OBJ_FRAG) );
366  std::vector<const ROBDataProviderSvc::ROBF*> robf;
367  m_robSvc->getROBData(ctx, robid, robf);
368  const ROBDataProviderSvc::ROBF* robFrag = (robf.size() > 0 ) ? robf[0] : 0;
369  if (robFrag) {
370  m_runNo = robFrag->rod_run_no(); // take it from beam ROD header
371  } else {
372  m_runNo = event->run_no(); // run_no sometimes is not filled here
373  }
376  m_calibMode = dqStatus->calibMode();
377  memcpy(m_cis1st,m_cisPar,sizeof(m_cisPar));
378  } else if (m_evtNr == 1) {
379  // once again, first event can be junk
380  m_calibMode = dqStatus->calibMode();
381  }
382 
383  if (! m_printAllEvents) {
384  // check if new Laser or CIS fragments appear in events with different L1 trigger types
385  bool first_header=true;
386  for (size_t irob=0; irob<event->nchildren(); ++irob) {
387  const uint32_t* fprob;
388  event->child(fprob, irob);
389  const eformat::ROBFragment<const uint32_t*> robf(fprob);
390 
391  T_RobRodFragMap ROBfrag;
392  ROBfrag.L1type = event->lvl1_trigger_type();
393  ROBfrag.ROBid = robf.source_id();
394  ROBfrag.RODid = robf.rod_source_id();
395 
396  if ((ROBfrag.RODid & 0xFF0000) == 0x500000) {
397  size_t i=0;
398  for ( ; i<m_beamFragMap.size(); ++i) {
399  if (m_beamFragMap[i].ROBid == ROBfrag.ROBid && m_beamFragMap[i].L1type == ROBfrag.L1type) break;
400  }
401  if (i==m_beamFragMap.size()) {
402  unsigned int size = robf.rod_ndata();
403  if ( size > 0 ) {
404  const uint32_t * data;
405  robf.rod_data(data);
406  find_frag(data, size, ROBfrag);
407  m_beamFragMap.push_back(ROBfrag);
408  if (first_header) {
409  first_header=false;
410  std::cout << "Beam Fragments found in event " << m_evtNo << " ( " << m_evtNr << " ) L1 trigger type "
411  << ROBfrag.L1type << " (0x"<< std::hex << ROBfrag.L1type << std::dec << ")" << std::endl
412  << " ROB ID ROD ID Frag IDs" << std::endl;
413  }
414  std::cout << std::hex << " 0x" << ROBfrag.ROBid << " 0x" << ROBfrag.RODid;
415  for (unsigned int j = 0; j < ROBfrag.fragID.size(); ++j)
416  std::cout << std::hex << " 0x" << ROBfrag.fragID[j];
417  std::cout << std::dec << std::endl;
418  }
419  }
420  }
421  }
422  }
423 
424  if ( ( m_evTime < m_timeBegin && (m_timeBegin - m_evTime) < 10*24*3600 ) || // less then 10 days shift in neg direction
425  ( m_evTime > m_timeBegin && (m_evTime - m_timeBegin) > 10*24*3600 ) ) { // more than 10 days shift in pos direction
426 
427  ATH_MSG_WARNING( " in evt " << m_evtNo << " ( " << m_evtNr << " ) "
428  << " event header time " << event->bc_time_seconds()
429  << " CISpar time " << m_cisPar[10]
430  << " old begin time " << m_timeBegin );
431 
432  if ( m_cisPar[10] > 0 && m_cisPar[10] - m_evTime > 600 ) { // more than 10 min difference !
433  ATH_MSG_WARNING( "Strange time in event header, ignore it! " );
434 
435  m_evTime = m_cisPar[10];
436  } else {
437  ATH_MSG_WARNING( "Strange begin time, change it from " << m_timeBegin << " to " << m_evTime );
438 
440  }
441  }
442 
443  if ((m_evTime >= m_timeBegin) && ((m_evTime - m_timeBegin) < 10 * 24 * 3600)
444  && (m_evTime > m_timeLast)) {
446  }
447 
448  int ind = 4;
449  switch ( m_trigType ) {
450  case 1: ind = 0; break;
451  case 2: ind = 1; break;
452  case 4: ind = 2; break;
453  case 8: ind = 3; break;
454  case 16: ind = 3; break;
455  default: ind = 4; break;
456  }
457  ++(m_nEvt[ind]);
458 
459  unsigned int lvl1_trigger_type = event->lvl1_trigger_type();
460  if (lvl1_trigger_type < 256U) ++m_nEventsPerTrigger[lvl1_trigger_type];
461  else ++m_nEventsPerTrigger[256];
462 
463  m_spillPattern <<= 4;
464  m_spillPattern |= (m_trigType & 0xF);
465 
466  if (m_spillPattern != m_prevTrig && m_spillPattern == 0x11111111)
467  ++m_nSpill;
468 
470 
471  ++m_evtNr;
472 
474  if(!pTileLasObj.isValid()) {
475  ATH_MSG_ERROR( "There is a problem opening the LASER object" );
476 
477  //return sc;
478  } else {
479  m_lasFiltNum.addValue(pTileLasObj->getFiltNumber());
480  m_lasAmp.addValue((int)pTileLasObj->getDiodeCurrOrd());
481  m_laserBoxTemp.addValue(pTileLasObj->getDiodeBoxTemp());
482  m_laserDiodeTemp.addValue(pTileLasObj->getPumpDiodeTemp());
483  m_laserBoxHum.addValue(pTileLasObj->getHumidity());
484  m_gasFlow.addValue(pTileLasObj->getGasFlux());
485  m_lasStatus = (pTileLasObj->getAlarm() << 0x9) + (pTileLasObj->getInterlock() << 0x8) + (pTileLasObj->getShutter() << 0x6)
486  + ((int)pTileLasObj->getHVpmts() << 0x4) + ((int)pTileLasObj->getLVdiodes() << 0x3) + (pTileLasObj->getAlphaPos());
487  int lasAlpha = (int)pTileLasObj->getAlphaPos() & 0x7;
488  m_lasAlphaPos.addValue(lasAlpha);
491 // std::cout << std::endl << "Status: " << std::hex << m_lasStatus << std::dec
492 // << std::endl << "Alpha: " << lasAlpha << std::endl << std::endl;
493  }
494 
495  //log<<MSG::DEBUG<<"execute() completed successfully"<<endmsg;
496  return StatusCode::SUCCESS;
497 }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ extraOutputDeps()

const DataObjIDColl & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 50 of file AthAlgorithm.cxx.

51 {
52  // If we didn't find any symlinks to add, just return the collection
53  // from the base class. Otherwise, return the extended collection.
54  if (!m_extendedExtraObjects.empty()) {
56  }
57  return Algorithm::extraOutputDeps();
58 }

◆ finalize()

StatusCode TileTBStat::finalize ( )
overridevirtual

Definition at line 499 of file TileTBStat.cxx.

499  {
500 
501  ATH_MSG_INFO( "Finalization" );
502 
503  std::cout << std::endl << "Run number " << m_runNo << std::endl;
504  std::cout << "Min event number " << m_evtMin << std::endl;
505  std::cout << "Max event number " << m_evtMax << std::endl;
506  std::cout << "First event " << m_evtBegin << std::endl;
507  std::cout << "Last event " << m_evtNo << std::endl;
508 
509  // time stored in event header is time since 1-jan-1970 00:00:00 Geneva time
510  // has to make one hour correction to convert to UNIX (UTC) time
511 
512  time_t tim;
513  struct tm buf;
514  char ctim[50];
515  char format[30] = "%a, %d %b %Y %H:%M:%S %Z (%z)";
516 
517  if (m_evTime >= m_timeStart || m_evTime == 0 ) {
518  if (m_evtNr == 0)
519  ATH_MSG_WARNING( "no event header available, taking time from cispar" );
520 
521  m_evTime = m_cisPar[10];
522  }
523 
524  if (m_timeBegin != 0 && m_timeBegin < 1104537600 ) { // CTB 2004 time
525  std::cout << "Begin time " << m_timeBegin;
526  tim = m_timeBegin - 3600;
527  std::cout << "-3600=" << tim;
528  strftime(ctim, 50, format, localtime_r(&tim, &buf) );
529  std::cout << " " << ctim;
530  strftime(ctim, 50, format, gmtime_r(&tim, &buf) );
531  std::cout << " " << ctim;
532  std::cout << std::endl;
533 
534  std::cout << "End time " << m_evTime;
535  tim = m_evTime - 3600;
536  std::cout << "-3600=" << tim;
537  strftime(ctim, 50, format, localtime_r(&tim, &buf) );
538  std::cout << " " << ctim;
539  strftime(ctim, 50, format, gmtime_r(&tim, &buf) );
540  std::cout << " " << ctim;
541  std::cout << std::endl;
542 
543  } else {
544 
545  std::cout << "Begin time " << m_timeBegin;
546  tim = m_timeBegin;
547  strftime(ctim, 50, format, localtime_r(&tim, &buf) );
548  std::cout << " " << ctim;
549  strftime(ctim, 50, format, gmtime_r(&tim, &buf) );
550  std::cout << " " << ctim;
551  std::cout << std::endl;
552  std::cout << "End time " << m_timeLast;
553  tim = m_timeLast;
554  strftime(ctim, 50, format, localtime_r(&tim, &buf) );
555  std::cout << " " << ctim;
556  strftime(ctim, 50, format, gmtime_r(&tim, &buf) );
557  std::cout << " " << ctim;
558  std::cout << std::endl;
559  }
560 
561  std::cout << std::endl << "Ngains " << ( (m_calibMode == 1) ? 2 : 1 ) << std::endl;
562 
563  bool cisdiff = false;
564  for (int i = 0; i < 16; ++i) {
565  cisdiff |= (m_cis1st[i] != m_cisBeg[i]);
566  cisdiff |= (m_cisEnd[i] != m_cisPar[i]);
567  }
568 
569  if (cisdiff) {
570  std::cout << "CISpar first ";
571  for (int i = 0; i < 16; ++i)
572  std::cout << m_cis1st[i] << " ";
573  std::cout << std::endl << "CISpar last ";
574  for (int i = 0; i < 16; ++i)
575  std::cout << m_cisPar[i] << " ";
576  std::cout << std::endl;
577  }
578  std::cout << "CISpar begin ";
579  for (int i = 0; i < 16; ++i)
580  std::cout << m_cisBeg[i] << " ";
581  if (cisdiff) {
582  std::cout << " \tevent " << m_cisBeg[16] << " \teventNr " << m_cisBeg[17];
583  }
584  std::cout << std::endl << "CISpar end ";
585  for (int i = 0; i < 16; ++i)
586  std::cout << m_cisEnd[i] << " ";
587  if (cisdiff) {
588  std::cout << " \tevent " << m_cisEnd[16] << " \teventNr " << m_cisEnd[17];
589  }
590  std::cout << std::endl << std::endl;
591 
592  uint32_t nphy=0;
593  uint32_t nlas=m_nEventsPerTrigger[52];
594  uint32_t nped=m_nEventsPerTrigger[49];
595  uint32_t ncis=m_nEventsPerTrigger[50];
596  uint32_t nbad=0;
597  for (int i = 0; i < 128; ++i) {
598  nbad += m_nEventsPerTrigger[i];
599  }
600  for (int i = 128; i < 256; ++i) {
601  nphy += m_nEventsPerTrigger[i];
602  }
603  nbad -= nlas+nped+ncis;
604  nbad += m_nEventsPerTrigger[256];
605 
606  if (m_nEvt[1]+m_nEvt[2]+m_nEvt[3]==0 && nlas+nped+ncis>0) {
607  std::cout << "Spills " << m_nSpill << std::endl;
608  std::cout << "Events " << m_evtNr << std::endl;
609  std::cout << "Phy " << nphy << std::endl;
610  std::cout << "Las " << nlas << std::endl;
611  std::cout << "Ped " << nped << std::endl;
612  std::cout << "CIS " << ncis << std::endl;
613  std::cout << "Bad " << nbad << std::endl;
614  std::cout << std::endl << std::endl;
615  } else {
616  std::cout << "Spills " << m_nSpill << std::endl;
617  std::cout << "Events " << m_evtNr << std::endl;
618  std::cout << "Phy " << m_nEvt[0] << std::endl;
619  std::cout << "Las " << m_nEvt[1] << std::endl;
620  std::cout << "Ped " << m_nEvt[2] << std::endl;
621  std::cout << "CIS " << m_nEvt[3] << std::endl;
622  std::cout << "Bad " << m_nEvt[4] << std::endl;
623  std::cout << std::endl << std::endl;
624  }
625 
626  std::cout << "Number of events per trigger:" << std::endl;
627  for (int i = 0; i < 256; ++i) {
628  if (m_nEventsPerTrigger[i] != 0) {
629  std::cout << " Level1 trigger type: " << i << " (0x"<< std::hex << i << std::dec << ") => " << m_nEventsPerTrigger[i] << std::endl;
630  }
631  }
632 
633  if (m_nEventsPerTrigger[256] != 0) {
634  std::cout << " Level1 trigger type: > 255(0xFF) => " << m_nEventsPerTrigger[256] << std::endl;
635  }
636 
637  std::cout << std::endl << std::endl;
638 
639  std::cout << "LasFrag begin" << std::endl;
640  m_lasFiltNum.print("FilterWheel");
641  m_lasAmp.print("ReqAmp");
642  std::cout << "Counter " << m_laserDiodeTemp.Counter << std::endl;
643  m_laserDiodeTemp.print("LaserDiodeTemp");
644  m_laserBoxTemp.print ("LaserBoxTemp ");
645  m_laserBoxHum.print ("LaserBoxHum ");
646  m_gasFlow.print ("GasFlow ");
647  m_check0 = ~m_checkOn;
648  m_check1 = ~m_checkOff;
649  m_check2 = ~(m_check0 ^ m_check1);
650  m_lasAlphaPos.print("LasAlpha");
651  int bit = 0x800;
652 // std::cout << "StatusHEX: " << std::hex << m_lasStatus << std::endl;
653  std::cout << "GlobalStatus ";
654  for (int i = 0; i < 9; i++) {
655  if (m_check0 & bit) std::cout << " 0";
656  else if (m_check1 & bit) std::cout << " 1";
657  else std::cout << " 2";
658  bit = bit >> 1;
659  }
660  m_Alarm = 0;
661  m_Error = 0;
662  m_ShOpen = 0;
663  m_ShClose = 0;
664  bit = 0x200;
665  if (m_check0 & bit) m_Error = 0; else
666  if (m_check1 & bit) m_Error = 1; else
667  m_Error = 2;
668  std::cout << std::endl << "LasError " << m_Error;
669  bit = 0x800;
670  if (m_check0 & bit) m_Alarm = 0; else
671  if (m_check1 & bit) m_Alarm = 1; else
672  m_Alarm = 2;
673  std::cout << std::endl << "LasAlarm " << m_Alarm;
674  bit = bit >> 4;
675  if (m_check0 & bit) m_ShOpen = 0; else
676  if (m_check1 & bit) m_ShOpen = 1; else
677  m_ShOpen = 2;
678  std::cout << std::endl << "LasShOpen " << m_ShOpen;
679  bit = bit >> 1;
680  if (m_check0 & bit) m_ShClose = 0; else
681  if (m_check1 & bit) m_ShClose = 1; else
682  m_ShClose = 2;
683  std::cout << std::endl << "LasShClosed " << m_ShClose;
684  std::cout << std::endl << "LasFrag end" << std::endl << std::endl;
685 
686  std::cout << "CISparFrag begin" << std::endl;
687  m_cisMode.print("CISparMode");
688  m_cisSamples.print("CISparSamples");
689  m_cisPipeline.print("CISparPipeline");
690  m_cisI3Delay.print("CISparI3Delay");
691  m_cisDAC.print("CISparDAC");
692  m_cisCap.print("CISparCap");
693  m_cisEvent.print("CISparEvent");
694  m_cisPhase.print("CISparPhase");
695  m_cisCard.print("CISparCard");
696  std::cout << "CISparFrag end" << std::endl << std::endl;
697 
698  ATH_MSG_INFO( "finalize() successfully" );
699 
700  return StatusCode::SUCCESS;
701 }

◆ find_frag()

void TileTBStat::find_frag ( const uint32_t *  data,
unsigned int  size,
T_RobRodFragMap ROBfrag 
)
private

Definition at line 703 of file TileTBStat.cxx.

703  {
704 
705  unsigned int offset = 0, sizeOverhead = 2;
706  bool v3Format = ( *(data) == 0xff1234ff ); // additional frag marker since Sep 2005
707  v3Format |= ( *(data) == 0x00123400 ); // another possible frag marker (can appear in buggy ROD frags)
708  if ( v3Format ) {
709  ++sizeOverhead;
710  ++offset; // skip frag marker
711  }
712 
713  while (offset < size ) {
714  const T_RodDataFrag* frag = (const T_RodDataFrag *)(data + offset);
715  if ( frag->size < sizeOverhead ) { // too small size, frag contains garbage
716  break;
717  }
718  const uint32_t * fdata = frag->data;
719  int n = frag->size - sizeOverhead - 1;
720  for (; n > -1; --n) {
721  if ( fdata[n]!=0 && fdata[n]!=0xffffffff) break;
722  }
723  if (n == -1 && m_detectDummyFragments) { // nothing reasonable found
724  ROBfrag.fragID.push_back(frag->id + 0xff000000);
725  } else {
726  ROBfrag.fragID.push_back(frag->id);
727  }
728  offset += frag->size;
729  }
730 
731  if ( v3Format ) --offset; // set offset back to correct value
732  if ( offset > size && ROBfrag.fragID.size() > 0 ) { // wrong length in last frag, drop it
733  ROBfrag.fragID.resize(ROBfrag.fragID.size()-1);
734  }
735 }

◆ initialize()

StatusCode TileTBStat::initialize ( )
overridevirtual

Definition at line 162 of file TileTBStat.cxx.

162  {
163 
164  ATH_MSG_INFO( "Initialization" );
165 
166  m_checkOn = 0;
167  m_checkOff = 0;
168  m_check0 = 0;
169  m_check1 = 0;
170  m_check2 = 0;
171 
172  m_lasStatus = 0;
173 
174  // start with event 0
175  m_evtNr = 0;
177  m_calibMode = m_prevTrig = m_spillPattern = m_evtMin = 0xFFFFFFFF;
178  memset(m_nEvt, 0, sizeof(m_nEvt));
179  memset(m_cisPar, 0, sizeof(m_cisPar));
180  memset(m_cis1st, 0, sizeof(m_cis1st));
181  memset(m_cisBeg, 0, sizeof(m_cisBeg));
182  memset(m_cisEnd, 0, sizeof(m_cisEnd));
183  memset(m_nEventsPerTrigger, 0, sizeof(m_nEventsPerTrigger));
184 
185  m_timeStart = time(0);
186  ATH_MSG_INFO( "initialization completed" );
187 
190  ATH_CHECK( m_robSvc.retrieve() );
192 
193  return StatusCode::SUCCESS;
194 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< Algorithm > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

MsgStream& AthCommonMsg< Algorithm >::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< Algorithm >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

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

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< Algorithm > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ sysInitialize()

StatusCode AthAlgorithm::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< Algorithm > >.

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, PyAthena::Alg, and AthHistogramAlgorithm.

Definition at line 66 of file AthAlgorithm.cxx.

66  {
68 
69  if (sc.isFailure()) {
70  return sc;
71  }
72  ServiceHandle<ICondSvc> cs("CondSvc",name());
73  for (auto h : outputHandles()) {
74  if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
75  // do this inside the loop so we don't create the CondSvc until needed
76  if ( cs.retrieve().isFailure() ) {
77  ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
78  return StatusCode::SUCCESS;
79  }
80  if (cs->regHandle(this,*h).isFailure()) {
81  sc = StatusCode::FAILURE;
82  ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
83  << " with CondSvc");
84  }
85  }
86  }
87  return sc;
88 }

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Algorithm > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_Alarm

int TileTBStat::m_Alarm
private

Definition at line 126 of file TileTBStat.h.

◆ m_beamFragMap

std::vector<T_RobRodFragMap> TileTBStat::m_beamFragMap
private

Definition at line 164 of file TileTBStat.h.

◆ m_calibMode

uint32_t TileTBStat::m_calibMode
private

Definition at line 139 of file TileTBStat.h.

◆ m_check0

int TileTBStat::m_check0
private

Definition at line 125 of file TileTBStat.h.

◆ m_check1

int TileTBStat::m_check1
private

Definition at line 125 of file TileTBStat.h.

◆ m_check2

int TileTBStat::m_check2
private

Definition at line 125 of file TileTBStat.h.

◆ m_checkOff

int TileTBStat::m_checkOff
private

Definition at line 125 of file TileTBStat.h.

◆ m_checkOn

int TileTBStat::m_checkOn
private

Definition at line 125 of file TileTBStat.h.

◆ m_cis1st

uint32_t TileTBStat::m_cis1st[16]
private

Definition at line 144 of file TileTBStat.h.

◆ m_cisBeg

uint32_t TileTBStat::m_cisBeg[19]
private

Definition at line 145 of file TileTBStat.h.

◆ m_cisCap

StatInt TileTBStat::m_cisCap
private

Definition at line 118 of file TileTBStat.h.

◆ m_cisCard

StatInt TileTBStat::m_cisCard
private

Definition at line 121 of file TileTBStat.h.

◆ m_cisDAC

StatInt TileTBStat::m_cisDAC
private

Definition at line 117 of file TileTBStat.h.

◆ m_cisEnd

uint32_t TileTBStat::m_cisEnd[19]
private

Definition at line 146 of file TileTBStat.h.

◆ m_cisEvent

StatInt TileTBStat::m_cisEvent
private

Definition at line 119 of file TileTBStat.h.

◆ m_cisI3Delay

StatInt TileTBStat::m_cisI3Delay
private

Definition at line 116 of file TileTBStat.h.

◆ m_cisMode

StatInt TileTBStat::m_cisMode
private

Definition at line 113 of file TileTBStat.h.

◆ m_cisPar

uint32_t TileTBStat::m_cisPar[16]
private

Definition at line 143 of file TileTBStat.h.

◆ m_cisPhase

StatInt TileTBStat::m_cisPhase
private

Definition at line 120 of file TileTBStat.h.

◆ m_cisPipeline

StatInt TileTBStat::m_cisPipeline
private

Definition at line 115 of file TileTBStat.h.

◆ m_cisSamples

StatInt TileTBStat::m_cisSamples
private

Definition at line 114 of file TileTBStat.h.

◆ m_detectDummyFragments

Gaudi::Property<bool> TileTBStat::m_detectDummyFragments
private
Initial value:
{this,
"DetectDummyFragments", false, "Detect dummy fragments"}

Definition at line 93 of file TileTBStat.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_dqStatusKey

SG::ReadHandleKey<TileDQstatus> TileTBStat::m_dqStatusKey
private
Initial value:
{this,
"TileDQstatus", "TileDQstatus", "Tile DQ status key"}

Definition at line 97 of file TileTBStat.h.

◆ m_Error

int TileTBStat::m_Error
private

Definition at line 126 of file TileTBStat.h.

◆ m_evtBegin

uint32_t TileTBStat::m_evtBegin
private

Definition at line 133 of file TileTBStat.h.

◆ m_evTime

uint32_t TileTBStat::m_evTime
private

Definition at line 129 of file TileTBStat.h.

◆ m_evtMax

uint32_t TileTBStat::m_evtMax
private

Definition at line 138 of file TileTBStat.h.

◆ m_evtMin

uint32_t TileTBStat::m_evtMin
private

Definition at line 137 of file TileTBStat.h.

◆ m_evtNo

uint32_t TileTBStat::m_evtNo
private

Definition at line 130 of file TileTBStat.h.

◆ m_evtNr

int TileTBStat::m_evtNr
private

Definition at line 108 of file TileTBStat.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_fragMap

std::vector<T_RobRodFragMap> TileTBStat::m_fragMap
private

Definition at line 163 of file TileTBStat.h.

◆ m_gasFlow

StatDouble TileTBStat::m_gasFlow
private

Definition at line 112 of file TileTBStat.h.

◆ m_hid2RESrcIDKey

SG::ReadCondHandleKey<TileHid2RESrcID> TileTBStat::m_hid2RESrcIDKey
private
Initial value:
{this,
"TileHid2RESrcID", "TileHid2RESrcID", "TileHid2RESrcID key"}

Definition at line 95 of file TileTBStat.h.

◆ m_lasAlphaPos

StatInt TileTBStat::m_lasAlphaPos
private

Definition at line 124 of file TileTBStat.h.

◆ m_lasAmp

StatInt TileTBStat::m_lasAmp
private

Definition at line 123 of file TileTBStat.h.

◆ m_laserBoxHum

StatDouble TileTBStat::m_laserBoxHum
private

Definition at line 111 of file TileTBStat.h.

◆ m_laserBoxTemp

StatDouble TileTBStat::m_laserBoxTemp
private

Definition at line 109 of file TileTBStat.h.

◆ m_laserDiodeTemp

StatDouble TileTBStat::m_laserDiodeTemp
private

Definition at line 110 of file TileTBStat.h.

◆ m_laserObjectKey

SG::ReadHandleKey<TileLaserObject> TileTBStat::m_laserObjectKey
private
Initial value:
{this,
"TileLaserObject", "TileLaserObj", "Tile laser object key"}

Definition at line 99 of file TileTBStat.h.

◆ m_lasFiltNum

StatInt TileTBStat::m_lasFiltNum
private

Definition at line 122 of file TileTBStat.h.

◆ m_lasStatus

int TileTBStat::m_lasStatus
private

Definition at line 125 of file TileTBStat.h.

◆ m_nEventsPerTrigger

uint32_t TileTBStat::m_nEventsPerTrigger[257]
private

Definition at line 168 of file TileTBStat.h.

◆ m_nEvt

uint32_t TileTBStat::m_nEvt[5]
private

Definition at line 142 of file TileTBStat.h.

◆ m_nSpill

uint32_t TileTBStat::m_nSpill
private

Definition at line 141 of file TileTBStat.h.

◆ m_prevTrig

uint32_t TileTBStat::m_prevTrig
private

Definition at line 132 of file TileTBStat.h.

◆ m_printAllEvents

Gaudi::Property<bool> TileTBStat::m_printAllEvents
private
Initial value:
{this,
"PrintAllEvents", false, "Print all events"}

Definition at line 91 of file TileTBStat.h.

◆ m_robSvc

ServiceHandle<IROBDataProviderSvc> TileTBStat::m_robSvc
private
Initial value:
{this,
"ROBDataProviderSvc", "ROBDataProviderSvc", "The ROB data provider service"}

Name of ROB data provider service.

Definition at line 105 of file TileTBStat.h.

◆ m_runNo

uint32_t TileTBStat::m_runNo
private

Definition at line 128 of file TileTBStat.h.

◆ m_ShClose

int TileTBStat::m_ShClose
private

Definition at line 126 of file TileTBStat.h.

◆ m_ShOpen

int TileTBStat::m_ShOpen
private

Definition at line 126 of file TileTBStat.h.

◆ m_spillPattern

uint32_t TileTBStat::m_spillPattern
private

Definition at line 140 of file TileTBStat.h.

◆ m_timeBegin

uint32_t TileTBStat::m_timeBegin
private

Definition at line 134 of file TileTBStat.h.

◆ m_timeLast

uint32_t TileTBStat::m_timeLast
private

Definition at line 136 of file TileTBStat.h.

◆ m_timeStart

uint32_t TileTBStat::m_timeStart
private

Definition at line 135 of file TileTBStat.h.

◆ m_trigType

int TileTBStat::m_trigType
private

Definition at line 131 of file TileTBStat.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
TileTBStat::m_timeLast
uint32_t m_timeLast
Definition: TileTBStat.h:136
RunTileTBMonitoring.fragID
fragID
Definition: RunTileTBMonitoring.py:212
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
TileTBStat::m_evtMin
uint32_t m_evtMin
Definition: TileTBStat.h:137
TILE_NEG_ID
#define TILE_NEG_ID
Definition: TileTBFrag.h:16
vtune_athena.format
format
Definition: vtune_athena.py:14
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
StatDouble::addValue
void addValue(double Value)
Definition: TileTBStat.cxx:57
TileDQstatus::calibMode
uint32_t calibMode() const
Calibration mode.
Definition: TileDQstatus.h:148
TileTBStat::m_cisPipeline
StatInt m_cisPipeline
Definition: TileTBStat.h:115
TileTBStat::m_cisPhase
StatInt m_cisPhase
Definition: TileTBStat.h:120
TileTBStat::m_Alarm
int m_Alarm
Definition: TileTBStat.h:126
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
TileTBStat::m_ShClose
int m_ShClose
Definition: TileTBStat.h:126
TileTBStat::find_frag
void find_frag(const uint32_t *data, unsigned int size, T_RobRodFragMap &ROBfrag)
Definition: TileTBStat.cxx:703
TileTBStat::m_calibMode
uint32_t m_calibMode
Definition: TileTBStat.h:139
TileTBStat::m_cisI3Delay
StatInt m_cisI3Delay
Definition: TileTBStat.h:116
DIGI_PAR_FRAG
#define DIGI_PAR_FRAG
Definition: TileTBFrag.h:41
StatInt::print
void print(const char *s, bool minMaxOnly=false)
Definition: TileTBStat.cxx:103
TileTBStat::m_nSpill
uint32_t m_nSpill
Definition: TileTBStat.h:141
TileTBStat::m_lasFiltNum
StatInt m_lasFiltNum
Definition: TileTBStat.h:122
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
StatDouble::print
void print(const char *s, bool minMaxOnly=false)
Definition: TileTBStat.cxx:75
TileTBStat::m_spillPattern
uint32_t m_spillPattern
Definition: TileTBStat.h:140
TileTBStat::m_checkOn
int m_checkOn
Definition: TileTBStat.h:125
TileTBStat::m_cisMode
StatInt m_cisMode
Definition: TileTBStat.h:113
TileTBStat::m_detectDummyFragments
Gaudi::Property< bool > m_detectDummyFragments
Definition: TileTBStat.h:93
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
StatDouble::Counter
int Counter
Definition: TileTBStat.h:64
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
TileTBStat::m_beamFragMap
std::vector< T_RobRodFragMap > m_beamFragMap
Definition: TileTBStat.h:164
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition: ReadCondHandle.h:270
TILE_EBPOS_ID
#define TILE_EBPOS_ID
Definition: TileTBFrag.h:17
TileTBStat::m_check1
int m_check1
Definition: TileTBStat.h:125
TileDQstatus::trigType
int trigType() const
Trigger type.
Definition: TileDQstatus.h:156
TileTBStat::m_check0
int m_check0
Definition: TileTBStat.h:125
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
TileTBStat::m_cisCap
StatInt m_cisCap
Definition: TileTBStat.h:118
TileTBStat::m_cisCard
StatInt m_cisCard
Definition: TileTBStat.h:121
TileDQstatus
Class that holds Data Quality fragment information and provides functions to extract the data quality...
Definition: TileDQstatus.h:49
TileTBStat::T_RobRodFragMap
struct TileTBStat::T_RobRodFragMap T_RobRodFragMap
TileTBStat::m_prevTrig
uint32_t m_prevTrig
Definition: TileTBStat.h:132
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
AthCommonDataStore
Definition: AthCommonDataStore.h:52
AthAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthAlgorithm.cxx:66
TileTBStat::m_Error
int m_Error
Definition: TileTBStat.h:126
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
event
POOL::TEvent event(POOL::TEvent::kClassAccess)
AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
eformat::ROBFragment< const uint32_t * >
lumiFormat.i
int i
Definition: lumiFormat.py:85
python.DecayParser.buf
buf
print ("=> [%s]"cmd)
Definition: DecayParser.py:27
TILE_EBNEG_ID
#define TILE_EBNEG_ID
Definition: TileTBFrag.h:18
beamspotman.n
n
Definition: beamspotman.py:731
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TileTBStat::m_evtMax
uint32_t m_evtMax
Definition: TileTBStat.h:138
TileTBStat::m_cisEvent
StatInt m_cisEvent
Definition: TileTBStat.h:119
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
TileTBStat::T_RodDataFrag
struct TileTBStat::T_RodDataFrag T_RodDataFrag
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
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
TileTBStat::m_nEvt
uint32_t m_nEvt[5]
Definition: TileTBStat.h:142
TileTBStat::m_cisPar
uint32_t m_cisPar[16]
Definition: TileTBStat.h:143
TileTBStat::m_timeBegin
uint32_t m_timeBegin
Definition: TileTBStat.h:134
TILE_BEAM_ID
#define TILE_BEAM_ID
definition of various fragments expected in BS files from testbeam
Definition: TileTBFrag.h:14
TileTBStat::m_check2
int m_check2
Definition: TileTBStat.h:125
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
TileTBStat::m_cisSamples
StatInt m_cisSamples
Definition: TileTBStat.h:114
TileTBStat::T_RobRodFragMap::L1type
uint32_t L1type
Definition: TileTBStat.h:150
TileTBStat::m_gasFlow
StatDouble m_gasFlow
Definition: TileTBStat.h:112
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
TileTBStat::m_robSvc
ServiceHandle< IROBDataProviderSvc > m_robSvc
Name of ROB data provider service.
Definition: TileTBStat.h:105
TileTBStat::m_lasAmp
StatInt m_lasAmp
Definition: TileTBStat.h:123
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
LASER_OBJ_FRAG
#define LASER_OBJ_FRAG
Definition: TileTBFrag.h:49
TileTBStat::m_fragMap
std::vector< T_RobRodFragMap > m_fragMap
Definition: TileTBStat.h:163
TileTBStat::m_cisDAC
StatInt m_cisDAC
Definition: TileTBStat.h:117
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
TileDQstatus::cispar
const uint32_t * cispar() const
CIS parameters.
Definition: TileDQstatus.h:152
TILE_POS_ID
#define TILE_POS_ID
Definition: TileTBFrag.h:15
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
a
TList * a
Definition: liststreamerinfos.cxx:10
TileTBStat::m_laserBoxTemp
StatDouble m_laserBoxTemp
Definition: TileTBStat.h:109
h
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
TileTBStat::m_laserDiodeTemp
StatDouble m_laserDiodeTemp
Definition: TileTBStat.h:110
TileTBStat::m_laserObjectKey
SG::ReadHandleKey< TileLaserObject > m_laserObjectKey
Definition: TileTBStat.h:99
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
TileTBStat::m_ShOpen
int m_ShOpen
Definition: TileTBStat.h:126
DeMoScan.first
bool first
Definition: DeMoScan.py:536
TileTBStat::m_trigType
int m_trigType
Definition: TileTBStat.h:131
TileTBStat::m_cisBeg
uint32_t m_cisBeg[19]
Definition: TileTBStat.h:145
TileTBStat::m_laserBoxHum
StatDouble m_laserBoxHum
Definition: TileTBStat.h:111
TileTBStat::m_lasAlphaPos
StatInt m_lasAlphaPos
Definition: TileTBStat.h:124
convertTimingResiduals.offset
offset
Definition: convertTimingResiduals.py:71
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
StatInt::addValue
void addValue(int Value)
Definition: TileTBStat.cxx:99
TileTBStat::m_printAllEvents
Gaudi::Property< bool > m_printAllEvents
Definition: TileTBStat.h:91
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
TileTBStat::m_hid2RESrcIDKey
SG::ReadCondHandleKey< TileHid2RESrcID > m_hid2RESrcIDKey
Definition: TileTBStat.h:95
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
TileTBStat::m_runNo
uint32_t m_runNo
Definition: TileTBStat.h:128
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
TileTBStat::m_evtNr
int m_evtNr
Definition: TileTBStat.h:108
TileTBStat::m_dqStatusKey
SG::ReadHandleKey< TileDQstatus > m_dqStatusKey
Definition: TileTBStat.h:97
TileTBStat::m_cis1st
uint32_t m_cis1st[16]
Definition: TileTBStat.h:144
TileTBStat::m_timeStart
uint32_t m_timeStart
Definition: TileTBStat.h:135
TileTBStat::m_lasStatus
int m_lasStatus
Definition: TileTBStat.h:125
TileTBStat::m_cisEnd
uint32_t m_cisEnd[19]
Definition: TileTBStat.h:146
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
TileTBStat::m_evtNo
uint32_t m_evtNo
Definition: TileTBStat.h:130
COMMON_BEAM_ID
#define COMMON_BEAM_ID
Definition: TileTBFrag.h:19
TileTBStat::m_evTime
uint32_t m_evTime
Definition: TileTBStat.h:129
checkFileSG.ind
list ind
Definition: checkFileSG.py:118
fitman.k
k
Definition: fitman.py:528
TileTBStat::m_checkOff
int m_checkOff
Definition: TileTBStat.h:125
TileTBStat::m_evtBegin
uint32_t m_evtBegin
Definition: TileTBStat.h:133
ServiceHandle< ICondSvc >
TileTBStat::m_nEventsPerTrigger
uint32_t m_nEventsPerTrigger[257]
Definition: TileTBStat.h:168