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()
152 {
154 }

◆ ~TileTBStat()

TileTBStat::~TileTBStat ( )
virtual

Definition at line 157 of file TileTBStat.cxx.

157  {
158 }

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 195 of file TileTBStat.cxx.

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

◆ 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 498 of file TileTBStat.cxx.

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

◆ find_frag()

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

Definition at line 702 of file TileTBStat.cxx.

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

◆ initialize()

StatusCode TileTBStat::initialize ( )
overridevirtual

Definition at line 161 of file TileTBStat.cxx.

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

◆ 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:702
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:27
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:221
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