ATLAS Offline Software
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
LVL1::L1CaloxAODOfflineTriggerTowerTools Class Referencefinalabstract

#include <L1CaloxAODOfflineTriggerTowerTools.h>

Inheritance diagram for LVL1::L1CaloxAODOfflineTriggerTowerTools:
Collaboration diagram for LVL1::L1CaloxAODOfflineTriggerTowerTools:

Public Member Functions

 L1CaloxAODOfflineTriggerTowerTools (const std::string &name)
 Create a proper constructor for Athena. More...
 
virtual ~L1CaloxAODOfflineTriggerTowerTools ()
 destructor More...
 
 L1CaloxAODOfflineTriggerTowerTools ()=delete
 delete the big 4 More...
 
 L1CaloxAODOfflineTriggerTowerTools (const L1CaloxAODOfflineTriggerTowerTools &rhs)=delete
 
 L1CaloxAODOfflineTriggerTowerTools (L1CaloxAODOfflineTriggerTowerTools &&rhs)=delete
 
L1CaloxAODOfflineTriggerTowerToolsoperator= (const L1CaloxAODOfflineTriggerTowerTools &rhs)=delete
 
StatusCode initialize ()
 Dummy implementation of the initialisation function. More...
 
StatusCode finalize ()
 
StatusCode initCaloCells ()
 Calo Cells into maps for L1Calo use. More...
 
std::vector< L1CaloRxCoolChannelIdreceivers (const xAOD::TriggerTower &tt) const
 
std::vector< unsigned int > receiversId (const xAOD::TriggerTower &tt) const
 
unsigned int isTile (const xAOD::TriggerTower &tt) const
 
std::vector< const CaloCell * > getCaloCells (const xAOD::TriggerTower &tt) const
 
unsigned int nCaloCells (const xAOD::TriggerTower &tt) const
 
std::vector< unsigned int > nCaloCellsByLayer (const xAOD::TriggerTower &tt) const
 
std::vector< std::vector< const CaloCell * > > caloCellsByReceiver (const xAOD::TriggerTower &tt) const
 
std::vector< std::vector< std::vector< const CaloCell * > > > caloCellsByLayerByReceiver (const xAOD::TriggerTower &tt) const
 
float caloCellsEnergy (const xAOD::TriggerTower &tt) const
 
float caloCellsET (const xAOD::TriggerTower &tt) const
 
std::vector< float > caloCellsEnergyByLayer (const xAOD::TriggerTower &tt) const
 
std::vector< float > caloCellsETByLayer (const xAOD::TriggerTower &tt) const
 
std::vector< float > caloCellsEnergyByReceiver (const xAOD::TriggerTower &tt) const
 
std::vector< float > caloCellsETByReceiver (const xAOD::TriggerTower &tt) const
 
std::vector< std::vector< float > > caloCellsEnergyByLayerByReceiver (const xAOD::TriggerTower &tt) const
 
std::vector< std::vector< float > > caloCellsETByLayerByReceiver (const xAOD::TriggerTower &tt) const
 
float caloCellsQuality (const xAOD::TriggerTower &tt) const
 
unsigned int ModuleId (const xAOD::TriggerTower &tt) const
 
unsigned int ErrorCode (const xAOD::TriggerTower &tt) const
 
unsigned long long PprDacScanResultsTimeStamp (const xAOD::TriggerTower &tt) const
 
unsigned long long PprPedestalRunResultsTimeStamp (const xAOD::TriggerTower &tt) const
 
unsigned long long PprNoiseRunResultsTimeStamp (const xAOD::TriggerTower &tt) const
 
unsigned long long PprTimingResultsTimeStamp (const xAOD::TriggerTower &tt) const
 
unsigned long long PprSatBcidResultsTimeStamp (const xAOD::TriggerTower &tt) const
 
unsigned long long PprFirFilterResultsTimeStamp (const xAOD::TriggerTower &tt) const
 
unsigned long long PprLutValuesResultsTimeStamp (const xAOD::TriggerTower &tt) const
 
double DacOffset (const xAOD::TriggerTower &tt) const
 
double DacSlope (const xAOD::TriggerTower &tt) const
 
double PedMean (const xAOD::TriggerTower &tt) const
 
unsigned int PedValue (const xAOD::TriggerTower &tt) const
 
unsigned int FullDelayData (const xAOD::TriggerTower &tt) const
 
unsigned short int SyncDelayBcid (const xAOD::TriggerTower &tt) const
 
unsigned short int InBcidNegedge (const xAOD::TriggerTower &tt) const
 
unsigned short int ExtBcidThreshold (const xAOD::TriggerTower &tt) const
 
unsigned short int SatBcidThreshLow (const xAOD::TriggerTower &tt) const
 
unsigned short int SatBcidThreshHigh (const xAOD::TriggerTower &tt) const
 
unsigned short int SatBcidLevel (const xAOD::TriggerTower &tt) const
 
unsigned short int BcidEnergyRangeLow (const xAOD::TriggerTower &tt) const
 
unsigned short int BcidEnergyRangeHigh (const xAOD::TriggerTower &tt) const
 
unsigned short int FirStartBit (const xAOD::TriggerTower &tt) const
 
short FirCoeff1 (const xAOD::TriggerTower &tt) const
 
short FirCoeff2 (const xAOD::TriggerTower &tt) const
 
short FirCoeff3 (const xAOD::TriggerTower &tt) const
 
short FirCoeff4 (const xAOD::TriggerTower &tt) const
 
short FirCoeff5 (const xAOD::TriggerTower &tt) const
 
unsigned short LutStrategy (const xAOD::TriggerTower &tt) const
 
unsigned short LutOffset (const xAOD::TriggerTower &tt) const
 
unsigned short LutNoiseCut (const xAOD::TriggerTower &tt) const
 
unsigned short LutSlope (const xAOD::TriggerTower &tt) const
 
unsigned int DeadChannel (const xAOD::TriggerTower &tt) const
 
unsigned int DisabledTower (const xAOD::TriggerTower &tt) const
 
float RxGain (const xAOD::TriggerTower &tt) const
 
unsigned int RxStatus (const xAOD::TriggerTower &tt) const
 
virtual void print () const =0
 Print the state of the tool. More...
 
virtual void print () const
 Print the state of the tool. 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 sysInitialize () override
 Perform system initialization for an algorithm. 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 ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

Identifier towerID (const xAOD::TriggerTower &tt) const
 
int pos_neg_z (const xAOD::TriggerTower &tt) const
 
int region (const xAOD::TriggerTower &tt) const
 
int ieta (const xAOD::TriggerTower &tt) const
 
int iphi (const xAOD::TriggerTower &tt) const
 
const coral::AttributeList * DbAttributes (const xAOD::TriggerTower &tt, const CondAttrListCollection *dbAttrList) const
 
std::vector< const coral::AttributeList * > DbRxGainsAttributes (const xAOD::TriggerTower &tt, const CondAttrListCollection *dbAttrList) const
 
std::vector< std::vector< const CaloCell * > > sortEMCrackCells (const std::vector< const CaloCell * > &cells) const
 
std::vector< std::vector< const CaloCell * > > sortFCAL23Cells (const std::vector< const CaloCell * > &cells, const std::vector< L1CaloRxCoolChannelId > &rx) const
 
float LArCaloQuality (const std::vector< const CaloCell * > &cells) const
 
float TileCaloQuality (const std::vector< const CaloCell * > &cells) const
 
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

ToolHandle< LVL1::IL1CaloCells2TriggerTowersm_cells2tt {this, "L1CaloCells2TriggerTowers", "LVL1::L1CaloCells2TriggerTowers/L1CaloCells2TriggerTowers"}
 Tool to do the Calo cell summing. More...
 
ToolHandle< LVL1::IL1CaloTTIdToolsm_l1CaloTTIdTools
 Tool to get the Identifier of a TriggerTower. More...
 
ToolHandle< LVL1::IL1CaloFcal23Cells2RxMappingToolm_rxMapTool
 
const CaloIdManagerm_caloMgr
 Helper class for offline TT identifiers. More...
 
const CaloLVL1_IDm_lvl1Helper
 
ToolHandle< CaloTriggerTowerServicem_ttSvc
 
SG::ReadHandleKey< CaloCellContainerm_caloCellContainerKey { this, "CaloCellContainerKey", "AllCalo" }
 StoreGate keys for the Calo Cells. More...
 
const CondAttrListCollectionm_dbPpmChanCalib
 Database. More...
 
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

Definition at line 55 of file L1CaloxAODOfflineTriggerTowerTools.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ L1CaloxAODOfflineTriggerTowerTools() [1/4]

LVL1::L1CaloxAODOfflineTriggerTowerTools::L1CaloxAODOfflineTriggerTowerTools ( const std::string &  name)

Create a proper constructor for Athena.

constructor

Definition at line 20 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

20  :
21  asg::AsgTool( name ),
22  m_l1CaloTTIdTools("LVL1::L1CaloTTIdTools/L1CaloTTIdTools"),
23  m_rxMapTool("LVL1::L1CaloFcal23Cells2RxMappingTool/L1CaloFcal23Cells2RxMappingTool"),
24  m_caloMgr(nullptr),
25  m_lvl1Helper(nullptr),
26  m_ttSvc("CaloTriggerTowerService"),
27  m_dbPpmChanCalib(nullptr)
28  {
29  }

◆ ~L1CaloxAODOfflineTriggerTowerTools()

virtual LVL1::L1CaloxAODOfflineTriggerTowerTools::~L1CaloxAODOfflineTriggerTowerTools ( )
inlinevirtual

destructor

Definition at line 65 of file L1CaloxAODOfflineTriggerTowerTools.h.

65 {}

◆ L1CaloxAODOfflineTriggerTowerTools() [2/4]

LVL1::L1CaloxAODOfflineTriggerTowerTools::L1CaloxAODOfflineTriggerTowerTools ( )
delete

delete the big 4

◆ L1CaloxAODOfflineTriggerTowerTools() [3/4]

LVL1::L1CaloxAODOfflineTriggerTowerTools::L1CaloxAODOfflineTriggerTowerTools ( const L1CaloxAODOfflineTriggerTowerTools rhs)
delete

◆ L1CaloxAODOfflineTriggerTowerTools() [4/4]

LVL1::L1CaloxAODOfflineTriggerTowerTools::L1CaloxAODOfflineTriggerTowerTools ( L1CaloxAODOfflineTriggerTowerTools &&  rhs)
delete

Member Function Documentation

◆ BcidEnergyRangeHigh()

unsigned short int LVL1::L1CaloxAODOfflineTriggerTowerTools::BcidEnergyRangeHigh ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 876 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

877  {
878  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
879  unsigned short int value = 0;
880  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
881  if((*attrList)[attrNum].specification().name() == "BcidEnergyRangeHigh"){
882  value = (unsigned short int) (*attrList)[attrNum].data<unsigned short int>();
883  break;
884  }
885  }
886  return value;
887  }

◆ BcidEnergyRangeLow()

unsigned short int LVL1::L1CaloxAODOfflineTriggerTowerTools::BcidEnergyRangeLow ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 862 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

863  {
864  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
865  unsigned short int value = 0;
866  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
867  if((*attrList)[attrNum].specification().name() == "BcidEnergyRangeLow"){
868  value = (unsigned short int) (*attrList)[attrNum].data<unsigned short int>();
869  break;
870  }
871  }
872  return value;
873  }

◆ caloCellsByLayerByReceiver()

std::vector< std::vector< std::vector< const CaloCell * > > > LVL1::L1CaloxAODOfflineTriggerTowerTools::caloCellsByLayerByReceiver ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 310 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

311  {
312  using std::begin;
313  using std::end;
314  using std::back_inserter;
315  using std::vector;
316 
318  const auto& rx = receivers(tt);
319  if(rx.size() == 1) {
320  const auto& cellsByLayer = m_cells2tt->caloCellsByLayer(towerID(tt));
321  std::transform(begin(cellsByLayer), end(cellsByLayer),
322  back_inserter(output),
324  return {std::move(C)};
325  });
326  } else if(rx.size() == 2) {
327  Identifier id = towerID( tt );
328  const auto& cellsByLayer = m_cells2tt->caloCellsByLayer( id );
329  for(const auto& cells : cellsByLayer) {
330  const auto& cellsByReceiver = ((tt.layer() == 0) ? sortEMCrackCells(cells) : sortFCAL23Cells(cells, rx));
331  output.push_back(cellsByReceiver);
332  }
333  } else {
334  ATH_MSG_WARNING("Found TT with " << rx.size() << " receivers!");
335  }
336 
337  return output;
338  }

◆ caloCellsByReceiver()

std::vector< std::vector< const CaloCell * > > LVL1::L1CaloxAODOfflineTriggerTowerTools::caloCellsByReceiver ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 258 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

259  {
260  std::vector<std::vector<const CaloCell*>> output;
261  const auto& rx = receivers(tt);
262  if (rx.size() == 1) {
263  output = { getCaloCells(tt) };
264  } else if(rx.size() == 2) {
265  output = ((tt.layer() == 0) ? sortEMCrackCells(getCaloCells(tt)) : sortFCAL23Cells(getCaloCells(tt), rx));
266  } else {
267  // shouldn't happen ... non-critical code, warning is sufficient
268  ATH_MSG_WARNING("Found TT with " << rx.size() << " receivers!");
269  }
270  return output;
271  }

◆ caloCellsEnergy()

float LVL1::L1CaloxAODOfflineTriggerTowerTools::caloCellsEnergy ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 218 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

219  {
220  Identifier id = towerID( tt );
221  return m_cells2tt->energy( id );
222  }

◆ caloCellsEnergyByLayer()

std::vector< float > LVL1::L1CaloxAODOfflineTriggerTowerTools::caloCellsEnergyByLayer ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 232 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

233  {
234  std::vector<float> output;
235  Identifier id = towerID( tt );
236  std::vector<std::vector<const CaloCell*>> cells = m_cells2tt->caloCellsByLayer( id );
237  output.reserve(cells.size());
238  for (const auto& i : cells) {
239  output.push_back( m_cells2tt->energy( i ) );
240  }
241  return output;
242  }

◆ caloCellsEnergyByLayerByReceiver()

std::vector< std::vector< float > > LVL1::L1CaloxAODOfflineTriggerTowerTools::caloCellsEnergyByLayerByReceiver ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 341 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

342  {
343  using std::begin;
344  using std::end;
345  using std::back_inserter;
346 
347  std::vector<std::vector<float>> output;
348  for(const auto& cellsByReceiver : caloCellsByLayerByReceiver(tt)) {
349  std::vector<float> cellsEnergyByReceiver;
350  cellsEnergyByReceiver.reserve(cellsByReceiver.size());
351  for(const auto& cells : cellsByReceiver) {
352  cellsEnergyByReceiver.push_back(m_cells2tt->energy(cells));
353  }
354  output.push_back(std::move(cellsEnergyByReceiver));
355  }
356 
357  return output;
358  }

◆ caloCellsEnergyByReceiver()

std::vector< float > LVL1::L1CaloxAODOfflineTriggerTowerTools::caloCellsEnergyByReceiver ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 274 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

275  {
276  using std::begin;
277  using std::end;
278  using std::back_inserter;
279 
280  std::vector<float> energyByReceiver;
281  const auto& cellsByReceiver = caloCellsByReceiver(tt);
282  std::transform(begin(cellsByReceiver), end(cellsByReceiver),
283  back_inserter(energyByReceiver),
284  [this](const std::vector<const CaloCell*>& c) -> float {
285  return m_cells2tt->energy( c );
286  });
287 
288  return energyByReceiver;
289  }

◆ caloCellsET()

float LVL1::L1CaloxAODOfflineTriggerTowerTools::caloCellsET ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 225 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

226  {
227  Identifier id = towerID( tt );
228  return m_cells2tt->et( id );
229  }

◆ caloCellsETByLayer()

std::vector< float > LVL1::L1CaloxAODOfflineTriggerTowerTools::caloCellsETByLayer ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 245 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

246  {
247  std::vector<float> output;
248  Identifier id = towerID( tt );
249  std::vector<std::vector<const CaloCell*>> cells = m_cells2tt->caloCellsByLayer( id );
250  output.reserve(cells.size());
251  for (const auto& i : cells) {
252  output.push_back( m_cells2tt->et( i ) );
253  }
254  return output;
255  }

◆ caloCellsETByLayerByReceiver()

std::vector< std::vector< float > > LVL1::L1CaloxAODOfflineTriggerTowerTools::caloCellsETByLayerByReceiver ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 362 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

363  {
364  using std::begin;
365  using std::end;
366  using std::back_inserter;
367 
368  std::vector<std::vector<float>> output;
369  for(const auto& cellsByReceiver : caloCellsByLayerByReceiver(tt)) {
370  std::vector<float> cellsEnergyByReceiver;
371  cellsEnergyByReceiver.reserve(cellsByReceiver.size());
372  for(const std::vector<const CaloCell*>& cells : cellsByReceiver) {
373  cellsEnergyByReceiver.push_back(m_cells2tt->et(cells));
374  }
375  output.push_back(std::move(cellsEnergyByReceiver));
376  }
377 
378  return output;
379  }

◆ caloCellsETByReceiver()

std::vector< float > LVL1::L1CaloxAODOfflineTriggerTowerTools::caloCellsETByReceiver ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 292 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

293  {
294  using std::begin;
295  using std::end;
296  using std::back_inserter;
297 
298  std::vector<float> etByReceiver;
299  const auto& cellsByReceiver = caloCellsByReceiver(tt);
300  std::transform(begin(cellsByReceiver), end(cellsByReceiver),
301  back_inserter(etByReceiver),
302  [this](const std::vector<const CaloCell*>& c) -> float {
303  return m_cells2tt->et( c );
304  });
305 
306  return etByReceiver;
307  }

◆ caloCellsQuality()

float LVL1::L1CaloxAODOfflineTriggerTowerTools::caloCellsQuality ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 392 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

393  {
394  float output(-999.9);
395  std::vector<const CaloCell*> cells = getCaloCells( tt );
396  if (isTile( tt )) {
398  }
399  else {
401  }
402  return output;
403  }

◆ DacOffset()

double LVL1::L1CaloxAODOfflineTriggerTowerTools::DacOffset ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 708 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

709  {
710  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
711  double value = 0;
712  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
713  if((*attrList)[attrNum].specification().name() == "DacOffset"){
714  value = (double) (*attrList)[attrNum].data<double>();
715  break;
716  }
717  }
718  return value;
719  }

◆ DacSlope()

double LVL1::L1CaloxAODOfflineTriggerTowerTools::DacSlope ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 722 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

723  {
724  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
725  double value = 0;
726  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
727  if((*attrList)[attrNum].specification().name() == "DacSlope"){
728  value = (double) (*attrList)[attrNum].data<double>();
729  break;
730  }
731  }
732  return value;
733  }

◆ DbAttributes()

const coral::AttributeList * LVL1::L1CaloxAODOfflineTriggerTowerTools::DbAttributes ( const xAOD::TriggerTower tt,
const CondAttrListCollection dbAttrList 
) const
private

Definition at line 549 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

550  {
552  const coral::AttributeList* attrList(nullptr);
553  for(Itr_db i=dbAttrList->begin();i!=dbAttrList->end();++i){
554  if( i->first == tt.coolId() ){
555  attrList = &(i->second);
556  break;
557  }
558  }
559  return attrList;
560  }

◆ DbRxGainsAttributes()

std::vector< const coral::AttributeList * > LVL1::L1CaloxAODOfflineTriggerTowerTools::DbRxGainsAttributes ( const xAOD::TriggerTower tt,
const CondAttrListCollection dbAttrList 
) const
private

Definition at line 563 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

564  {
566  std::vector<const coral::AttributeList*> v_attr;
567  std::vector<unsigned int> rxID = receiversId( tt );
568  for( auto r : rxID ){
569  for(Itr_db i=dbAttrList->begin();i!=dbAttrList->end();++i){
570  if( i->first == r ){
571  v_attr.push_back( &(i->second) );
572  break;
573  }
574  }
575  }
576  return v_attr;
577  }

◆ DeadChannel()

unsigned int LVL1::L1CaloxAODOfflineTriggerTowerTools::DeadChannel ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 1031 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

1032  {
1033  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
1034  unsigned int value = 0;
1035  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
1036  if((*attrList)[attrNum].specification().name() == "disabledBits"){
1037  value = (unsigned int) (*attrList)[attrNum].data<unsigned int>();
1038  break;
1039  }
1040  }
1041  return value;
1042  }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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; }

◆ DisabledTower()

unsigned int LVL1::L1CaloxAODOfflineTriggerTowerTools::DisabledTower ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 1045 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

1046  {
1047  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
1048  unsigned int value = 0;
1049  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
1050  if((*attrList)[attrNum].specification().name() == "ErrorCode"){
1051  value = (unsigned int) (*attrList)[attrNum].data<unsigned int>();
1052  break;
1053  }
1054  }
1055  return value;
1056  }

◆ ErrorCode()

unsigned int LVL1::L1CaloxAODOfflineTriggerTowerTools::ErrorCode ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 596 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

597  {
598  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
599  unsigned int value = 0;
600  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
601  if((*attrList)[attrNum].specification().name() == "ErrorCode"){
602  value = (unsigned int) (*attrList)[attrNum].data<unsigned int>();
603  break;
604  }
605  }
606  return value;
607  }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::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< AlgTool > >::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; }

◆ ExtBcidThreshold()

unsigned short int LVL1::L1CaloxAODOfflineTriggerTowerTools::ExtBcidThreshold ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 806 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

807  {
808  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
809  unsigned short int value = 0;
810  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
811  if((*attrList)[attrNum].specification().name() == "ExtBcidThreshold"){
812  value = (unsigned short int) (*attrList)[attrNum].data<unsigned short int>();
813  break;
814  }
815  }
816  return value;
817  }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::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

◆ finalize()

StatusCode LVL1::L1CaloxAODOfflineTriggerTowerTools::finalize ( )

Definition at line 58 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

59  {
60  ATH_MSG_INFO("finalize LVL1::L1CaloxAODOfflineTriggerTowerTools");
61  // Return gracefully:
62  return StatusCode::SUCCESS;
63  }

◆ FirCoeff1()

short LVL1::L1CaloxAODOfflineTriggerTowerTools::FirCoeff1 ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 904 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

905  {
906  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
907  short value = 0;
908  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
909  if((*attrList)[attrNum].specification().name() == "FirCoeff1"){
910  value = (short) (*attrList)[attrNum].data<short>();
911  break;
912  }
913  }
914  return value;
915  }

◆ FirCoeff2()

short LVL1::L1CaloxAODOfflineTriggerTowerTools::FirCoeff2 ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 918 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

919  {
920  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
921  short value = 0;
922  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
923  if((*attrList)[attrNum].specification().name() == "FirCoeff2"){
924  value = (short) (*attrList)[attrNum].data<short>();
925  break;
926  }
927  }
928  return value;
929  }

◆ FirCoeff3()

short LVL1::L1CaloxAODOfflineTriggerTowerTools::FirCoeff3 ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 932 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

933  {
934  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
935  short value = 0;
936  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
937  if((*attrList)[attrNum].specification().name() == "FirCoeff3"){
938  value = (short) (*attrList)[attrNum].data<short>();
939  break;
940  }
941  }
942  return value;
943  }

◆ FirCoeff4()

short LVL1::L1CaloxAODOfflineTriggerTowerTools::FirCoeff4 ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 946 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

947  {
948  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
949  short value = 0;
950  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
951  if((*attrList)[attrNum].specification().name() == "FirCoeff4"){
952  value = (short) (*attrList)[attrNum].data<short>();
953  break;
954  }
955  }
956  return value;
957  }

◆ FirCoeff5()

short LVL1::L1CaloxAODOfflineTriggerTowerTools::FirCoeff5 ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 960 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

961  {
962  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
963  short value = 0;
964  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
965  if((*attrList)[attrNum].specification().name() == "FirCoeff5"){
966  value = (short) (*attrList)[attrNum].data<short>();
967  break;
968  }
969  }
970  return value;
971  }

◆ FirStartBit()

unsigned short int LVL1::L1CaloxAODOfflineTriggerTowerTools::FirStartBit ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 890 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

891  {
892  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
893  unsigned short int value = 0;
894  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
895  if((*attrList)[attrNum].specification().name() == "FirStartBit"){
896  value = (unsigned short int) (*attrList)[attrNum].data<unsigned short int>();
897  break;
898  }
899  }
900  return value;
901  }

◆ FullDelayData()

unsigned int LVL1::L1CaloxAODOfflineTriggerTowerTools::FullDelayData ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 764 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

765  {
766  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
767  unsigned int value = 0;
768  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
769  if((*attrList)[attrNum].specification().name() == "FullDelayData"){
770  value = (unsigned int) (*attrList)[attrNum].data<unsigned int>();
771  break;
772  }
773  }
774  return value;
775  }

◆ getCaloCells()

std::vector< const CaloCell * > LVL1::L1CaloxAODOfflineTriggerTowerTools::getCaloCells ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 177 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

178  {
179  Identifier id = towerID( tt );
180  return m_cells2tt->caloCells( id );
181  }

◆ getKey()

SG::sgkey_t asg::AsgTool::getKey ( const void *  ptr) const
inherited

Get the (hashed) key of an object that is in the event store.

This is a bit of a special one. StoreGateSvc and xAOD::TEvent both provide ways for getting the SG::sgkey_t key for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.

In order to allow tools to efficiently perform this operation, they can use this helper function.

See also
asg::AsgTool::getName
Parameters
ptrThe bare pointer to the object that the event store should know about
Returns
The hashed key of the object in the store. If not found, an invalid (zero) key.

Definition at line 119 of file AsgTool.cxx.

119  {
120 
121 #ifdef XAOD_STANDALONE
122  // In case we use @c xAOD::TEvent, we have a direct function call
123  // for this.
124  return evtStore()->event()->getKey( ptr );
125 #else
126  const SG::DataProxy* proxy = evtStore()->proxy( ptr );
127  return ( proxy == nullptr ? 0 : proxy->sgkey() );
128 #endif // XAOD_STANDALONE
129  }

◆ getName()

const std::string & asg::AsgTool::getName ( const void *  ptr) const
inherited

Get the name of an object that is / should be in the event store.

This is a bit of a special one. StoreGateSvc and xAOD::TEvent both provide ways for getting the std::string name for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.

In order to allow tools to efficiently perform this operation, they can use this helper function.

See also
asg::AsgTool::getKey
Parameters
ptrThe bare pointer to the object that the event store should know about
Returns
The string name of the object in the store. If not found, an empty string.

Definition at line 106 of file AsgTool.cxx.

106  {
107 
108 #ifdef XAOD_STANDALONE
109  // In case we use @c xAOD::TEvent, we have a direct function call
110  // for this.
111  return evtStore()->event()->getName( ptr );
112 #else
113  const SG::DataProxy* proxy = evtStore()->proxy( ptr );
114  static const std::string dummy = "";
115  return ( proxy == nullptr ? dummy : proxy->name() );
116 #endif // XAOD_STANDALONE
117  }

◆ getProperty()

template<class T >
const T* asg::AsgTool::getProperty ( const std::string &  name) const
inherited

Get one of the tool's properties.

◆ ieta()

int LVL1::L1CaloxAODOfflineTriggerTowerTools::ieta ( const xAOD::TriggerTower tt) const
private

Definition at line 1104 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

1105  {
1106  return m_l1CaloTTIdTools->etaIndex( tt.eta() );
1107  }

◆ InBcidNegedge()

unsigned short int LVL1::L1CaloxAODOfflineTriggerTowerTools::InBcidNegedge ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 792 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

793  {
794  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
795  unsigned short int value = 0;
796  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
797  if((*attrList)[attrNum].specification().name() == "InBcidNegedge"){
798  value = (unsigned short int) (*attrList)[attrNum].data<unsigned short int>();
799  break;
800  }
801  }
802  return value;
803  }

◆ initCaloCells()

StatusCode LVL1::L1CaloxAODOfflineTriggerTowerTools::initCaloCells ( )
virtual

Calo Cells into maps for L1Calo use.

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 67 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

68  {
70  m_cells2tt->initCaloCellsTriggerTowers( *cells );
71 
72  // Return gracefully:
73  return StatusCode::SUCCESS;
74  }

◆ initialize()

StatusCode LVL1::L1CaloxAODOfflineTriggerTowerTools::initialize ( )
virtual

Dummy implementation of the initialisation function.

It's here to allow the dual-use tools to skip defining an initialisation function. Since many are doing so...

Reimplemented from asg::AsgTool.

Definition at line 32 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

33  {
34  ATH_MSG_INFO("initialize LVL1::L1CaloxAODOfflineTriggerTowerTools");
35 
36  // Get the L1CaloCells2TriggerTowers Tool
37  CHECK( m_cells2tt.retrieve() );
38 
39  // Get the L1CaloTTIdTools Tool
40  CHECK( m_l1CaloTTIdTools.retrieve() );
41 
42  // Get the Fcal23 mapping tool
43  CHECK( m_rxMapTool.retrieve() );
44 
45  CHECK( detStore()->retrieve ( m_caloMgr, "CaloIdManager") );
47 
48  //Retrieve cabling & tt services
49  CHECK( m_ttSvc.retrieve() );
50 
52 
53  // Return gracefully:
54  return StatusCode::SUCCESS;
55  }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::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.

◆ iphi()

int LVL1::L1CaloxAODOfflineTriggerTowerTools::iphi ( const xAOD::TriggerTower tt) const
private

Definition at line 1110 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

1111  {
1112  return m_l1CaloTTIdTools->phiIndex( tt.eta() , tt.phi() );
1113  }

◆ isTile()

unsigned int LVL1::L1CaloxAODOfflineTriggerTowerTools::isTile ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 166 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

167  {
168  Identifier id = towerID( tt );
169  if (m_lvl1Helper->is_tile( id )) {
170  return 1;
171  }
172  return 0;
173  }

◆ LArCaloQuality()

float LVL1::L1CaloxAODOfflineTriggerTowerTools::LArCaloQuality ( const std::vector< const CaloCell * > &  cells) const
private

Definition at line 406 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

407  {
408  float nom(0.), denom(0.);
409  for (auto i : cells) {
410  if ((i)->provenance() & 0x2000) {
411  nom += ((i)->e() * (i)->quality());
412  denom += (i)->e();
413  }
414  }
415 
416  if (denom != 0.) {
417  nom /= denom;
418  }
419  else {
420  nom = -1e6; // error value
421  }
422  return nom;
423  }

◆ LutNoiseCut()

unsigned short LVL1::L1CaloxAODOfflineTriggerTowerTools::LutNoiseCut ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 1002 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

1003  {
1004  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
1005  unsigned short value = 0;
1006  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
1007  if((*attrList)[attrNum].specification().name() == "LutNoiseCut"){
1008  value = (unsigned short) (*attrList)[attrNum].data<unsigned short>();
1009  break;
1010  }
1011  }
1012  return value;
1013  }

◆ LutOffset()

unsigned short LVL1::L1CaloxAODOfflineTriggerTowerTools::LutOffset ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 988 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

989  {
990  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
991  unsigned short value = 0;
992  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
993  if((*attrList)[attrNum].specification().name() == "LutOffset"){
994  value = (unsigned short) (*attrList)[attrNum].data<unsigned short>();
995  break;
996  }
997  }
998  return value;
999  }

◆ LutSlope()

unsigned short LVL1::L1CaloxAODOfflineTriggerTowerTools::LutSlope ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 1016 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

1017  {
1018  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
1019  unsigned short value = 0;
1020  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
1021  if((*attrList)[attrNum].specification().name() == "LutSlope"){
1022  value = (unsigned short) (*attrList)[attrNum].data<unsigned short >();
1023  break;
1024  }
1025  }
1026  return value;
1027  }

◆ LutStrategy()

unsigned short LVL1::L1CaloxAODOfflineTriggerTowerTools::LutStrategy ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 974 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

975  {
976  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
977  unsigned short value = 0;
978  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
979  if((*attrList)[attrNum].specification().name() == "LutStrategy"){
980  value = (unsigned short) (*attrList)[attrNum].data<unsigned short>();
981  break;
982  }
983  }
984  return value;
985  }

◆ ModuleId()

unsigned int LVL1::L1CaloxAODOfflineTriggerTowerTools::ModuleId ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 582 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

583  {
584  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
585  unsigned int value = 0;
586  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
587  if((*attrList)[attrNum].specification().name() == "ModuleId"){
588  value = (unsigned int) (*attrList)[attrNum].data<unsigned int>();
589  break;
590  }
591  }
592  return value;
593  }

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

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

Definition at line 27 of file AthCommonMsg.h.

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

◆ msg_level_name()

const std::string & asg::AsgTool::msg_level_name ( ) const
inherited

A deprecated function for getting the message level's name.

Instead of using this, weirdly named function, user code should get the string name of the current minimum message level (in case they really need it...), with:

MSG::name( msg().level() )

This function's name doesn't follow the ATLAS coding rules, and as such will be removed in the not too distant future.

Returns
The string name of the current minimum message level that's printed

Definition at line 101 of file AsgTool.cxx.

101  {
102 
103  return MSG::name( msg().level() );
104  }

◆ msgLvl()

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

Definition at line 30 of file AthCommonMsg.h.

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

◆ nCaloCells()

unsigned int LVL1::L1CaloxAODOfflineTriggerTowerTools::nCaloCells ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 184 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

185  {
186  return getCaloCells( tt ).size();
187  }

◆ nCaloCellsByLayer()

std::vector< unsigned int > LVL1::L1CaloxAODOfflineTriggerTowerTools::nCaloCellsByLayer ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 190 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

191  {
192  std::vector<unsigned int> output;
193  Identifier id = towerID( tt );
194  std::vector<std::vector<const CaloCell*>> cells = m_cells2tt->caloCellsByLayer( id );
195  output.reserve(cells.size());
196  for (const auto& i : cells) {
197  output.push_back( i.size() );
198  }
199  return output;
200  }

◆ operator=()

L1CaloxAODOfflineTriggerTowerTools& LVL1::L1CaloxAODOfflineTriggerTowerTools::operator= ( const L1CaloxAODOfflineTriggerTowerTools rhs)
delete

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::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.

◆ PedMean()

double LVL1::L1CaloxAODOfflineTriggerTowerTools::PedMean ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 736 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

737  {
738  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
739  double value = 0;
740  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
741  if((*attrList)[attrNum].specification().name() == "PedMean"){
742  value = (double) (*attrList)[attrNum].data<double>();
743  break;
744  }
745  }
746  return value;
747  }

◆ PedValue()

unsigned int LVL1::L1CaloxAODOfflineTriggerTowerTools::PedValue ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 750 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

751  {
752  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
753  unsigned int value = 0;
754  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
755  if((*attrList)[attrNum].specification().name() == "PedValue"){
756  value = (unsigned int) (*attrList)[attrNum].data<unsigned int>();
757  break;
758  }
759  }
760  return value;
761  }

◆ pos_neg_z()

int LVL1::L1CaloxAODOfflineTriggerTowerTools::pos_neg_z ( const xAOD::TriggerTower tt) const
private

Definition at line 1092 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

1093  {
1094  return m_l1CaloTTIdTools->pos_neg_z( tt.eta() );
1095  }

◆ PprDacScanResultsTimeStamp()

unsigned long long LVL1::L1CaloxAODOfflineTriggerTowerTools::PprDacScanResultsTimeStamp ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 610 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

611  {
612  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
613  unsigned long long value = 0;
614  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
615  if((*attrList)[attrNum].specification().name() == "PprDacScanResultsTimeStamp"){
616  value = (unsigned long long) (*attrList)[attrNum].data<unsigned long long>();
617  break;
618  }
619  }
620  return value;
621  }

◆ PprFirFilterResultsTimeStamp()

unsigned long long LVL1::L1CaloxAODOfflineTriggerTowerTools::PprFirFilterResultsTimeStamp ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 680 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

681  {
682  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
683  unsigned long long value = 0;
684  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
685  if((*attrList)[attrNum].specification().name() == "PprFirFilterResultsTimeStamp"){
686  value = (unsigned long long) (*attrList)[attrNum].data<unsigned long long>();
687  break;
688  }
689  }
690  return value;
691  }

◆ PprLutValuesResultsTimeStamp()

unsigned long long LVL1::L1CaloxAODOfflineTriggerTowerTools::PprLutValuesResultsTimeStamp ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 694 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

695  {
696  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
697  unsigned long long value = 0;
698  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
699  if((*attrList)[attrNum].specification().name() == "PprLutValuesResultsTimeStamp"){
700  value = (unsigned long long) (*attrList)[attrNum].data<unsigned long long>();
701  break;
702  }
703  }
704  return value;
705  }

◆ PprNoiseRunResultsTimeStamp()

unsigned long long LVL1::L1CaloxAODOfflineTriggerTowerTools::PprNoiseRunResultsTimeStamp ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 638 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

639  {
640  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
641  unsigned long long value = 0;
642  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
643  if((*attrList)[attrNum].specification().name() == "PprNoiseRunResultsTimeStamp"){
644  value = (unsigned long long) (*attrList)[attrNum].data<unsigned long long>();
645  break;
646  }
647  }
648  return value;
649  }

◆ PprPedestalRunResultsTimeStamp()

unsigned long long LVL1::L1CaloxAODOfflineTriggerTowerTools::PprPedestalRunResultsTimeStamp ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 624 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

625  {
626  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
627  unsigned long long value = 0;
628  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
629  if((*attrList)[attrNum].specification().name() == "PprPedestalRunResultsTimeStamp"){
630  value = (unsigned long long) (*attrList)[attrNum].data<unsigned long long>();
631  break;
632  }
633  }
634  return value;
635  }

◆ PprSatBcidResultsTimeStamp()

unsigned long long LVL1::L1CaloxAODOfflineTriggerTowerTools::PprSatBcidResultsTimeStamp ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 666 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

667  {
668  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
669  unsigned long long value = 0;
670  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
671  if((*attrList)[attrNum].specification().name() == "PprSatBcidResultsTimeStamp"){
672  value = (unsigned long long) (*attrList)[attrNum].data<unsigned long long>();
673  break;
674  }
675  }
676  return value;
677  }

◆ PprTimingResultsTimeStamp()

unsigned long long LVL1::L1CaloxAODOfflineTriggerTowerTools::PprTimingResultsTimeStamp ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 652 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

653  {
654  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
655  unsigned long long value = 0;
656  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
657  if((*attrList)[attrNum].specification().name() == "PprTimingResultsTimeStamp"){
658  value = (unsigned long long) (*attrList)[attrNum].data<unsigned long long>();
659  break;
660  }
661  }
662  return value;
663  }

◆ print() [1/2]

void asg::AsgTool::print ( ) const
virtualinherited

◆ print() [2/2]

virtual void asg::IAsgTool::print ( ) const
pure virtualinherited

◆ receivers()

std::vector< L1CaloRxCoolChannelId > LVL1::L1CaloxAODOfflineTriggerTowerTools::receivers ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 77 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

78  {
79  std::vector<L1CaloRxCoolChannelId> rx = m_ttSvc->cnvCoolChannelIdToRxId( tt.coolId() );
80  std::vector<L1CaloRxCoolChannelId> output;
81 
82  // EM
83  if (tt.sampling() == 0) {
84  // Sort EM Crack recievers. End cap first, barrel second
85  if (rx.size() == 3) {
86 
87  // For the EM crack region, there are 3 recievers.
88  // 1 Rx have Crate 0 or 1 - correspond to the barrel before the Octopus cable magic - ignore
89  // 2 Rx have Crate 2 or 3 - correspond to the Rx we want:
90  // 1 Rx has inputConn() == 0 - EMEC receiver
91  // 1 Rx has inputConn() == 2 - Barrel receiver
92 
93  std::vector<L1CaloRxCoolChannelId> rx2;
94  for (const auto& i : rx) {
95  if (i.crate() == 2 || i.crate() == 3) {
96  rx2.push_back( i );
97  }
98  }
99 
100  if (rx2.size() == 2) {
101 
102  unsigned int inputA = rx2.at(0).inputConn();
103  unsigned int inputB = rx2.at(1).inputConn();
104 
105  // End cap first, barrel second
106  if (inputA == 2 && inputB == 0) {
107  output.push_back(rx2.at(1));
108  output.push_back(rx2.at(0));
109  }
110  if (inputA == 0 && inputB == 2) {
111  output.push_back(rx2.at(0));
112  output.push_back(rx2.at(1));
113  }
114  }
115  }
116 
117  if (rx.size() == 1) {
118  output.push_back( rx.at(0) );
119  }
120 
121  } // end EM
122 
123  // Had
124  if (tt.sampling() == 1) {
125  // Sort FCAL 23 recievers. Always have -ve eta first and +ve eta second
126  if (rx.size() == 2) {
127  // Odd receiver is lowest |eta|
128  unsigned int inputPairA = rx.at(0).inputPair();
129  unsigned int inputPairB = rx.at(1).inputPair();
130 
131  bool oddA(false),oddB(false);
132  if(inputPairA % 2 != 0){oddA = true;}
133  if(inputPairB % 2 != 0){oddB = true;}
134 
135  if (oddA && !oddB) {
136  output.push_back(rx.at(0));
137  output.push_back(rx.at(1));
138  }
139  if (!oddA && oddB) {
140  output.push_back(rx.at(1));
141  output.push_back(rx.at(0));
142  }
143  }
144  if (rx.size() == 1) {
145  output.push_back( rx.at(0) );
146  }
147  } // end Had
148 
149  return output;
150  }

◆ receiversId()

std::vector< unsigned int > LVL1::L1CaloxAODOfflineTriggerTowerTools::receiversId ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 153 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

154  {
155  std::vector<L1CaloRxCoolChannelId> rx = receivers( tt );
156  std::vector<unsigned int> output;
157  output.reserve(rx.size());
158  for (const auto& i : rx) {
159  output.push_back( i.id() );
160  }
161  return output;
162  }

◆ region()

int LVL1::L1CaloxAODOfflineTriggerTowerTools::region ( const xAOD::TriggerTower tt) const
private

Definition at line 1098 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

1099  {
1100  return m_l1CaloTTIdTools->regionIndex( tt.eta() );
1101  }

◆ 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< AlgTool > >::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< AlgTool > >::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  }

◆ RxGain()

float LVL1::L1CaloxAODOfflineTriggerTowerTools::RxGain ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 1060 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

1061  {
1062  float value = 0;
1063 // for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
1064 // if((*attrList)[attrNum].specification().name() == "gain"){
1065 // value = (float) (*attrList)[attrNum].data<float>();
1066 // break;
1067 // }
1068 // }
1069  return value;
1070  }

◆ RxStatus()

unsigned int LVL1::L1CaloxAODOfflineTriggerTowerTools::RxStatus ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 1073 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

1074  {
1075  unsigned int value = 0;
1076 // for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
1077 // if((*attrList)[attrNum].specification().name() == "status"){
1078 // value = (unsigned int) (*attrList)[attrNum].data<unsigned int>();
1079 // break;
1080 // }
1081 // }
1082  return value;
1083  }

◆ SatBcidLevel()

unsigned short int LVL1::L1CaloxAODOfflineTriggerTowerTools::SatBcidLevel ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 848 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

849  {
850  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
851  unsigned short int value = 0;
852  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
853  if((*attrList)[attrNum].specification().name() == "SatBcidLevel"){
854  value = (unsigned short int) (*attrList)[attrNum].data<unsigned short int>();
855  break;
856  }
857  }
858  return value;
859  }

◆ SatBcidThreshHigh()

unsigned short int LVL1::L1CaloxAODOfflineTriggerTowerTools::SatBcidThreshHigh ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 834 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

835  {
836  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
837  unsigned short int value = 0;
838  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
839  if((*attrList)[attrNum].specification().name() == "SatBcidThreshHigh"){
840  value = (unsigned short int) (*attrList)[attrNum].data<unsigned short int>();
841  break;
842  }
843  }
844  return value;
845  }

◆ SatBcidThreshLow()

unsigned short int LVL1::L1CaloxAODOfflineTriggerTowerTools::SatBcidThreshLow ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 820 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

821  {
822  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
823  unsigned short int value = 0;
824  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
825  if((*attrList)[attrNum].specification().name() == "SatBcidThreshLow"){
826  value = (unsigned short int) (*attrList)[attrNum].data<unsigned short int>();
827  break;
828  }
829  }
830  return value;
831  }

◆ sortEMCrackCells()

std::vector< std::vector< const CaloCell * > > LVL1::L1CaloxAODOfflineTriggerTowerTools::sortEMCrackCells ( const std::vector< const CaloCell * > &  cells) const
private

Definition at line 498 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

499  {
500  std::vector<std::vector<const CaloCell*>> output;
501  std::vector<const CaloCell*> emb;
502  std::vector<const CaloCell*> emec;
503 
504  // End Cap first, Barrel second
505 
506  for( auto i : cells ){
507  int layer = m_cells2tt->layerNames(i);
508 
509  if( layer <= 3){
510  emb.push_back( (i) );
511  }
512  if( layer >= 4){
513  emec.push_back( (i) );
514  }
515  }
516 
517  output.push_back(emec);
518  output.push_back(emb);
519  return output;
520  }

◆ sortFCAL23Cells()

std::vector< std::vector< const CaloCell * > > LVL1::L1CaloxAODOfflineTriggerTowerTools::sortFCAL23Cells ( const std::vector< const CaloCell * > &  cells,
const std::vector< L1CaloRxCoolChannelId > &  rx 
) const
private

Definition at line 523 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

524  {
525  // vectors of calo cells for the different receivers
526  std::vector<const CaloCell*> cellsA;
527  std::vector<const CaloCell*> cellsB;
528  // output
529  std::vector<std::vector<const CaloCell*>> output;
530 
531  // RxID of the different receivers
532  unsigned int rxidA = rx.at(0).id();
533  unsigned int rxidB = rx.at(1).id();
534 
535  // Loop over calo cells and use mapping tool to assign cells to different receivers
536  for( auto i : cells ){
537  unsigned int someRxId = m_rxMapTool->offlineCell2RxId( (i)->ID().get_identifier32().get_compact() );
538  if(someRxId == rxidA){cellsA.push_back(i);}
539  if(someRxId == rxidB){cellsB.push_back(i);}
540  }
541  output.push_back(cellsA);
542  output.push_back(cellsB);
543  return output;
544  }

◆ SyncDelayBcid()

unsigned short int LVL1::L1CaloxAODOfflineTriggerTowerTools::SyncDelayBcid ( const xAOD::TriggerTower tt) const
virtual

Implements LVL1::IL1CaloxAODOfflineTriggerTowerTools.

Definition at line 778 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

779  {
780  const coral::AttributeList* attrList = DbAttributes( tt , m_dbPpmChanCalib );
781  unsigned short int value = 0;
782  for(unsigned int attrNum=0;attrNum<attrList->size();++attrNum){
783  if((*attrList)[attrNum].specification().name() == "SyncDelayBcid"){
784  value = (unsigned short int) (*attrList)[attrNum].data<unsigned short int>();
785  break;
786  }
787  }
788  return value;
789  }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::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.

◆ TileCaloQuality()

float LVL1::L1CaloxAODOfflineTriggerTowerTools::TileCaloQuality ( const std::vector< const CaloCell * > &  cells) const
private

Definition at line 426 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

427  {
428  float nom(0.), denom(0.);
429  for (auto i : cells) {
430  const TileCell *tileCell = dynamic_cast<const TileCell*>( (i) );
431 
432  if (tileCell && tileCell->provenance() & 0x8080) {
433  nom += tileCell->e() * std::max(tileCell->qual1(), tileCell->qual2());
434  denom += tileCell->e();
435  }
436  }
437 
438  if (denom != 0.) {
439  nom /= denom;
440  }
441  else {
442  nom = -1e6; // error value
443  }
444  return nom;
445  }

◆ towerID()

Identifier LVL1::L1CaloxAODOfflineTriggerTowerTools::towerID ( const xAOD::TriggerTower tt) const
private

Definition at line 1086 of file L1CaloxAODOfflineTriggerTowerTools.cxx.

1087  {
1088  return m_lvl1Helper->tower_id( pos_neg_z(tt) , tt.sampling() , region(tt) , ieta(tt) , iphi(tt) );
1089  }

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::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_caloCellContainerKey

SG::ReadHandleKey<CaloCellContainer> LVL1::L1CaloxAODOfflineTriggerTowerTools::m_caloCellContainerKey { this, "CaloCellContainerKey", "AllCalo" }
private

StoreGate keys for the Calo Cells.

Definition at line 181 of file L1CaloxAODOfflineTriggerTowerTools.h.

◆ m_caloMgr

const CaloIdManager* LVL1::L1CaloxAODOfflineTriggerTowerTools::m_caloMgr
private

Helper class for offline TT identifiers.

Definition at line 176 of file L1CaloxAODOfflineTriggerTowerTools.h.

◆ m_cells2tt

ToolHandle<LVL1::IL1CaloCells2TriggerTowers> LVL1::L1CaloxAODOfflineTriggerTowerTools::m_cells2tt {this, "L1CaloCells2TriggerTowers", "LVL1::L1CaloCells2TriggerTowers/L1CaloCells2TriggerTowers"}
private

Tool to do the Calo cell summing.

Definition at line 170 of file L1CaloxAODOfflineTriggerTowerTools.h.

◆ m_dbPpmChanCalib

const CondAttrListCollection* LVL1::L1CaloxAODOfflineTriggerTowerTools::m_dbPpmChanCalib
private

Database.

Definition at line 185 of file L1CaloxAODOfflineTriggerTowerTools.h.

◆ m_detStore

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

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_evtStore

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

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_l1CaloTTIdTools

ToolHandle<LVL1::IL1CaloTTIdTools> LVL1::L1CaloxAODOfflineTriggerTowerTools::m_l1CaloTTIdTools
private

Tool to get the Identifier of a TriggerTower.

Definition at line 172 of file L1CaloxAODOfflineTriggerTowerTools.h.

◆ m_lvl1Helper

const CaloLVL1_ID* LVL1::L1CaloxAODOfflineTriggerTowerTools::m_lvl1Helper
private

Definition at line 177 of file L1CaloxAODOfflineTriggerTowerTools.h.

◆ m_rxMapTool

ToolHandle<LVL1::IL1CaloFcal23Cells2RxMappingTool> LVL1::L1CaloxAODOfflineTriggerTowerTools::m_rxMapTool
private

Definition at line 174 of file L1CaloxAODOfflineTriggerTowerTools.h.

◆ m_ttSvc

ToolHandle<CaloTriggerTowerService> LVL1::L1CaloxAODOfflineTriggerTowerTools::m_ttSvc
private

Definition at line 178 of file L1CaloxAODOfflineTriggerTowerTools.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
TileCell
Definition: TileCell.h:57
LVL1::L1CaloxAODOfflineTriggerTowerTools::receivers
std::vector< L1CaloRxCoolChannelId > receivers(const xAOD::TriggerTower &tt) const
Definition: L1CaloxAODOfflineTriggerTowerTools.cxx:77
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
beamspotman.r
def r
Definition: beamspotman.py:676
RunTileCalibRec.cells
cells
Definition: RunTileCalibRec.py:271
CondAttrListCollection::end
const_iterator end() const
Definition: CondAttrListCollection.h:315
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
LVL1::L1CaloxAODOfflineTriggerTowerTools::m_rxMapTool
ToolHandle< LVL1::IL1CaloFcal23Cells2RxMappingTool > m_rxMapTool
Definition: L1CaloxAODOfflineTriggerTowerTools.h:174
xAOD::short
short
Definition: Vertex_v1.cxx:165
StateLessPT_NewConfig.proxy
proxy
Definition: StateLessPT_NewConfig.py:392
max
#define max(a, b)
Definition: cfImp.cxx:41
LVL1::L1CaloxAODOfflineTriggerTowerTools::sortFCAL23Cells
std::vector< std::vector< const CaloCell * > > sortFCAL23Cells(const std::vector< const CaloCell * > &cells, const std::vector< L1CaloRxCoolChannelId > &rx) const
Definition: L1CaloxAODOfflineTriggerTowerTools.cxx:523
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
ID
std::vector< Identifier > ID
Definition: CalibHitIDCheck.h:24
LVL1::L1CaloxAODOfflineTriggerTowerTools::caloCellsByReceiver
std::vector< std::vector< const CaloCell * > > caloCellsByReceiver(const xAOD::TriggerTower &tt) const
Definition: L1CaloxAODOfflineTriggerTowerTools.cxx:258
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
LVL1::L1CaloxAODOfflineTriggerTowerTools::m_ttSvc
ToolHandle< CaloTriggerTowerService > m_ttSvc
Definition: L1CaloxAODOfflineTriggerTowerTools.h:178
PlotCalibFromCool.begin
begin
Definition: PlotCalibFromCool.py:94
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
CaloCell::e
virtual double e() const override final
get energy (data member) (synonym to method energy()
Definition: CaloCell.h:317
CondAttrListCollection::begin
const_iterator begin() const
Access to Chan/AttributeList pairs via iterators.
Definition: CondAttrListCollection.h:309
athena.value
value
Definition: athena.py:124
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
python.PyKernel.AttributeList
AttributeList
Definition: PyKernel.py:36
CaloCell::provenance
uint16_t provenance() const
get provenance (data member)
Definition: CaloCell.h:338
dbg::ptr
void * ptr(T *p)
Definition: SGImplSvc.cxx:74
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:27
LVL1::L1CaloxAODOfflineTriggerTowerTools::getCaloCells
std::vector< const CaloCell * > getCaloCells(const xAOD::TriggerTower &tt) const
Definition: L1CaloxAODOfflineTriggerTowerTools.cxx:177
LVL1::L1CaloxAODOfflineTriggerTowerTools::m_dbPpmChanCalib
const CondAttrListCollection * m_dbPpmChanCalib
Database.
Definition: L1CaloxAODOfflineTriggerTowerTools.h:185
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
TileCell::qual2
uint8_t qual2(void) const
get quality of second PMT (data member)
Definition: TileCell.h:206
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
LVL1::L1CaloxAODOfflineTriggerTowerTools::iphi
int iphi(const xAOD::TriggerTower &tt) const
Definition: L1CaloxAODOfflineTriggerTowerTools.cxx:1110
lumiFormat.i
int i
Definition: lumiFormat.py:85
LVL1::L1CaloxAODOfflineTriggerTowerTools::m_caloMgr
const CaloIdManager * m_caloMgr
Helper class for offline TT identifiers.
Definition: L1CaloxAODOfflineTriggerTowerTools.h:176
vector
Definition: MultiHisto.h:13
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
Amg::transform
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Definition: GeoPrimitivesHelpers.h:156
LVL1::L1CaloxAODOfflineTriggerTowerTools::sortEMCrackCells
std::vector< std::vector< const CaloCell * > > sortEMCrackCells(const std::vector< const CaloCell * > &cells) const
Definition: L1CaloxAODOfflineTriggerTowerTools.cxx:498
CaloIdManager::getLVL1_ID
const CaloLVL1_ID * getLVL1_ID(void) const
Definition: CaloIdManager.cxx:75
python.xAODType.dummy
dummy
Definition: xAODType.py:4
MSG::name
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
Definition: MsgLevel.cxx:19
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
LVL1::L1CaloxAODOfflineTriggerTowerTools::towerID
Identifier towerID(const xAOD::TriggerTower &tt) const
Definition: L1CaloxAODOfflineTriggerTowerTools.cxx:1086
AthCommonDataStore< AthCommonMsg< AlgTool > >::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
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
LVL1::L1CaloxAODOfflineTriggerTowerTools::pos_neg_z
int pos_neg_z(const xAOD::TriggerTower &tt) const
Definition: L1CaloxAODOfflineTriggerTowerTools.cxx:1092
LVL1::L1CaloxAODOfflineTriggerTowerTools::m_cells2tt
ToolHandle< LVL1::IL1CaloCells2TriggerTowers > m_cells2tt
Tool to do the Calo cell summing.
Definition: L1CaloxAODOfflineTriggerTowerTools.h:170
compute_lumi.denom
denom
Definition: compute_lumi.py:76
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
merge.output
output
Definition: merge.py:17
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
PlotSFuncertainty.nom
nom
Definition: PlotSFuncertainty.py:141
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
LVL1::L1CaloxAODOfflineTriggerTowerTools::receiversId
std::vector< unsigned int > receiversId(const xAOD::TriggerTower &tt) const
Definition: L1CaloxAODOfflineTriggerTowerTools.cxx:153
LVL1::L1CaloxAODOfflineTriggerTowerTools::m_lvl1Helper
const CaloLVL1_ID * m_lvl1Helper
Definition: L1CaloxAODOfflineTriggerTowerTools.h:177
LVL1::L1CaloxAODOfflineTriggerTowerTools::region
int region(const xAOD::TriggerTower &tt) const
Definition: L1CaloxAODOfflineTriggerTowerTools.cxx:1098
a
TList * a
Definition: liststreamerinfos.cxx:10
h
LVL1::L1CaloxAODOfflineTriggerTowerTools::isTile
unsigned int isTile(const xAOD::TriggerTower &tt) const
Definition: L1CaloxAODOfflineTriggerTowerTools.cxx:166
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
CondAttrListCollection::const_iterator
ChanAttrListMap::const_iterator const_iterator
Definition: CondAttrListCollection.h:63
LVL1::L1CaloxAODOfflineTriggerTowerTools::ieta
int ieta(const xAOD::TriggerTower &tt) const
Definition: L1CaloxAODOfflineTriggerTowerTools.cxx:1104
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
TileCell::qual1
uint8_t qual1(void) const
get quality of first PMT (data member)
Definition: TileCell.h:203
LVL1::L1CaloxAODOfflineTriggerTowerTools::caloCellsByLayerByReceiver
std::vector< std::vector< std::vector< const CaloCell * > > > caloCellsByLayerByReceiver(const xAOD::TriggerTower &tt) const
Definition: L1CaloxAODOfflineTriggerTowerTools.cxx:310
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
LVL1::L1CaloxAODOfflineTriggerTowerTools::m_caloCellContainerKey
SG::ReadHandleKey< CaloCellContainer > m_caloCellContainerKey
StoreGate keys for the Calo Cells.
Definition: L1CaloxAODOfflineTriggerTowerTools.h:182
LVL1::L1CaloxAODOfflineTriggerTowerTools::TileCaloQuality
float TileCaloQuality(const std::vector< const CaloCell * > &cells) const
Definition: L1CaloxAODOfflineTriggerTowerTools.cxx:426
LVL1::L1CaloxAODOfflineTriggerTowerTools::LArCaloQuality
float LArCaloQuality(const std::vector< const CaloCell * > &cells) const
Definition: L1CaloxAODOfflineTriggerTowerTools.cxx:406
LVL1::L1CaloxAODOfflineTriggerTowerTools::m_l1CaloTTIdTools
ToolHandle< LVL1::IL1CaloTTIdTools > m_l1CaloTTIdTools
Tool to get the Identifier of a TriggerTower.
Definition: L1CaloxAODOfflineTriggerTowerTools.h:172
SG::DataProxy
Definition: DataProxy.h:44
CaloLVL1_ID::tower_id
Identifier tower_id(int pos_neg_z, int sampling, int region, int eta, int phi) const
build a tower identifier
Definition: CaloLVL1_ID.h:429
CaloLVL1_ID::is_tile
bool is_tile(const Identifier id) const
Test wether given tower or layer is part of the Tile Calorimeter.
Definition: CaloLVL1_ID.h:672
TileDCSDataPlotter.tt
tt
Definition: TileDCSDataPlotter.py:874
python.compressB64.c
def c
Definition: compressB64.py:93
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
LVL1::L1CaloxAODOfflineTriggerTowerTools::DbAttributes
const coral::AttributeList * DbAttributes(const xAOD::TriggerTower &tt, const CondAttrListCollection *dbAttrList) const
Definition: L1CaloxAODOfflineTriggerTowerTools.cxx:549
fitman.k
k
Definition: fitman.py:528
Identifier
Definition: IdentifierFieldParser.cxx:14