ATLAS Offline Software
Loading...
Searching...
No Matches
LVL1::L1CaloxAODOfflineTriggerTowerTools Class Referencefinal

#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.
virtual ~L1CaloxAODOfflineTriggerTowerTools ()
 destructor
 L1CaloxAODOfflineTriggerTowerTools ()=delete
 delete the big 4
 L1CaloxAODOfflineTriggerTowerTools (const L1CaloxAODOfflineTriggerTowerTools &rhs)=delete
 L1CaloxAODOfflineTriggerTowerTools (L1CaloxAODOfflineTriggerTowerTools &&rhs)=delete
L1CaloxAODOfflineTriggerTowerToolsoperator= (const L1CaloxAODOfflineTriggerTowerTools &rhs)=delete
StatusCode initialize ()
 Dummy implementation of the initialisation function.
StatusCode finalize ()
StatusCode initCaloCells ()
 Calo Cells into maps for L1Calo use.
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
 Print the state of the tool.
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const
Additional helper functions, not directly mimicking Athena
template<class T>
const T * getProperty (const std::string &name) const
 Get one of the tool's properties.
const std::string & msg_level_name () const __attribute__((deprecated))
 A deprecated function for getting the message level's name.
const std::string & getName (const void *ptr) const
 Get the name of an object that is / should be in the event store.
SG::sgkey_t getKey (const void *ptr) const
 Get the (hashed) key of an object that is in the event store.

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
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.

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, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

ToolHandle< LVL1::IL1CaloCells2TriggerTowersm_cells2tt {this, "L1CaloCells2TriggerTowers", "LVL1::L1CaloCells2TriggerTowers/L1CaloCells2TriggerTowers"}
 Tool to do the Calo cell summing.
ToolHandle< LVL1::IL1CaloTTIdToolsm_l1CaloTTIdTools
 Tool to get the Identifier of a TriggerTower.
ToolHandle< LVL1::IL1CaloFcal23Cells2RxMappingToolm_rxMapTool
const CaloIdManagerm_caloMgr
 Helper class for offline TT identifiers.
const CaloLVL1_IDm_lvl1Helper
ToolHandle< CaloTriggerTowerServicem_ttSvc
SG::ReadHandleKey< CaloCellContainerm_caloCellContainerKey { this, "CaloCellContainerKey", "AllCalo" }
 StoreGate keys for the Calo Cells.
const CondAttrListCollectionm_dbPpmChanCalib
 Database.
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
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 }
const CaloIdManager * m_caloMgr
Helper class for offline TT identifiers.
ToolHandle< LVL1::IL1CaloFcal23Cells2RxMappingTool > m_rxMapTool
const CondAttrListCollection * m_dbPpmChanCalib
Database.
ToolHandle< LVL1::IL1CaloTTIdTools > m_l1CaloTTIdTools
Tool to get the Identifier of a TriggerTower.

◆ ~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 }
const coral::AttributeList * DbAttributes(const xAOD::TriggerTower &tt, const CondAttrListCollection *dbAttrList) const

◆ 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
317 vector<vector<vector<const CaloCell*>>> output;
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),
323 [](vector<const CaloCell*> C)->vector<vector<const CaloCell*>> {
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 }
#define ATH_MSG_WARNING(x)
Identifier towerID(const xAOD::TriggerTower &tt) const
std::vector< L1CaloRxCoolChannelId > receivers(const xAOD::TriggerTower &tt) const
ToolHandle< LVL1::IL1CaloCells2TriggerTowers > m_cells2tt
Tool to do the Calo cell summing.
std::vector< std::vector< const CaloCell * > > sortFCAL23Cells(const std::vector< const CaloCell * > &cells, const std::vector< L1CaloRxCoolChannelId > &rx) const
std::vector< std::vector< const CaloCell * > > sortEMCrackCells(const std::vector< const CaloCell * > &cells) const
struct color C
output
Definition merge.py:16

◆ 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 }
std::vector< const CaloCell * > getCaloCells(const xAOD::TriggerTower &tt) const

◆ 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 }
std::vector< std::vector< std::vector< const CaloCell * > > > caloCellsByLayerByReceiver(const xAOD::TriggerTower &tt) const

◆ 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 }
std::vector< std::vector< const CaloCell * > > caloCellsByReceiver(const xAOD::TriggerTower &tt) const

◆ 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 )) {
397 output = TileCaloQuality( cells );
398 }
399 else {
400 output = LArCaloQuality( cells );
401 }
402 return output;
403 }
float TileCaloQuality(const std::vector< const CaloCell * > &cells) const
float LArCaloQuality(const std::vector< const CaloCell * > &cells) const
unsigned int isTile(const xAOD::TriggerTower &tt) const

◆ 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 }
const_iterator end() const
const_iterator begin() const
Access to Chan/AttributeList pairs via iterators.
ChanAttrListMap::const_iterator const_iterator

◆ 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 }
std::vector< unsigned int > receiversId(const xAOD::TriggerTower &tt) const
int r
Definition globals.cxx:22

◆ 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()

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

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

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ 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.

◆ 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()

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.

◆ 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 }
#define ATH_MSG_INFO(x)

◆ 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 }
ServiceHandle< StoreGateSvc > & evtStore()

◆ 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 {
69 SG::ReadHandle<CaloCellContainer> cells (m_caloCellContainerKey);
70 m_cells2tt->initCaloCellsTriggerTowers( *cells );
71
72 // Return gracefully:
73 return StatusCode::SUCCESS;
74 }
SG::ReadHandleKey< CaloCellContainer > m_caloCellContainerKey
StoreGate keys for the Calo Cells.

◆ initialize()

StatusCode LVL1::L1CaloxAODOfflineTriggerTowerTools::initialize ( void )
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") );
46 m_lvl1Helper = m_caloMgr->getLVL1_ID();
47
48 //Retrieve cabling & tt services
49 CHECK( m_ttSvc.retrieve() );
50
51 CHECK( m_caloCellContainerKey.initialize() );
52
53 // Return gracefully:
54 return StatusCode::SUCCESS;
55 }
#define CHECK(...)
Evaluate an expression and check for errors.
const ServiceHandle< StoreGateSvc > & detStore() const

◆ 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()

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ 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 }
MsgStream & msg() const
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
Definition MsgLevel.cxx:19

◆ 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()

◆ 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();
384 }
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)

◆ 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 {
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(std::move(emec));
518 output.push_back(std::move(emb));
519 return output;
520 }
@ layer
Definition HitInfo.h:79

◆ 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(std::move(cellsA));
542 output.push_back(std::move(cellsB));
543 return output;
544 }
std::vector< Identifier > ID

◆ 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 asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ 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 }
virtual double e() const override final
get energy (data member) (synonym to method energy()
Definition CaloCell.h:333
uint16_t provenance() const
get provenance (data member)
Definition CaloCell.h:354
uint8_t qual1(void) const
get quality of first PMT (data member)
Definition TileCell.h:197
uint8_t qual2(void) const
get quality of second PMT (data member)
Definition TileCell.h:200

◆ 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) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

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.

182{ this, "CaloCellContainerKey", "AllCalo" };

◆ 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.

170{this, "L1CaloCells2TriggerTowers", "LVL1::L1CaloCells2TriggerTowers/L1CaloCells2TriggerTowers"};

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