ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
LVL1::L1JEPEtSumsTools Class Reference

#include <L1JEPEtSumsTools.h>

Inheritance diagram for LVL1::L1JEPEtSumsTools:
Collaboration diagram for LVL1::L1JEPEtSumsTools:

Public Member Functions

 L1JEPEtSumsTools (const std::string &type, const std::string &name, const IInterface *parent)
 Constructor. More...
 
virtual ~L1JEPEtSumsTools ()
 default destructor More...
 
virtual StatusCode initialize ()
 standard Athena-Algorithm method More...
 
virtual void formJEMEtSums (const DataVector< xAOD::JetElement > *jetElementVec, DataVector< JEMEtSums > *jemEtSumsVec) const
 form JEMEtSums from JetElements More...
 
virtual void formCMMEtSums (const DataVector< JEMEtSums > *jemEtSumsVec, DataVector< CMMEtSums > *cmmEtSumsVec) const
 form complete CMMEtSums from JEMEtSums More...
 
virtual void formCMMEtSumsModule (const DataVector< JEMEtSums > *jemEtSumsVec, DataVector< CMMEtSums > *cmmEtSumsMod) const
 form partial CMMEtSums (module) from JEMEtSums More...
 
virtual void formCMMEtSumsCrate (const DataVector< CMMEtSums > *cmmEtSumsMod, DataVector< CMMEtSums > *cmmEtSumsCrate) const
 form partial CMMEtSums (crate) from module CMMEtSums More...
 
virtual void formCMMEtSumsSystem (const DataVector< CMMEtSums > *cmmEtSumsCrate, DataVector< CMMEtSums > *cmmEtSumsSys) const
 form partial CMMEtSums (system) from crate CMMEtSums More...
 
virtual void formCMMEtSumsEtMaps (const DataVector< CMMEtSums > *cmmEtSumsSys, DataVector< CMMEtSums > *cmmEtSumsMap) const
 form partial CMMEtSums (sumEt/missingEt maps) from system CMMEtSums 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
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 

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 std::vector< unsigned int > EnergyVector
 
typedef std::vector< int > ErrorVector
 
typedef std::vector< DataVector< ModuleEnergy > * > MultiSliceModuleEnergy
 
typedef std::vector< DataVector< CrateEnergy > * > MultiSliceCrateEnergy
 
typedef std::vector< SystemEnergy * > MultiSliceSystemEnergy
 
typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

void etSumsToModuleEnergy (const DataVector< CMMEtSums > *etSums, MultiSliceModuleEnergy &modulesVec, int &peak) const
 Convert CMMEtSums container to internal ModuleEnergy containers. More...
 
void etSumsToCrateEnergy (const DataVector< CMMEtSums > *etSums, MultiSliceCrateEnergy &crateVec, int &peak) const
 Convert CMMEtSums container to internal CrateEnergy containers. More...
 
void etSumsToSystemEnergy (const DataVector< CMMEtSums > *etSums, MultiSliceSystemEnergy &systemVec, int &peak) const
 Convert CMMEtSums container to internal SystemEnergy objects. More...
 
void moduleEnergyToEtSums (const MultiSliceModuleEnergy &modulesVec, DataVector< JEMEtSums > *jemEtSumsVec, int peak) const
 Convert internal ModuleEnergy containers to JEMEtSums container. More...
 
void crateEnergyToEtSums (const MultiSliceCrateEnergy &cratesVec, DataVector< CMMEtSums > *cmmEtSumsVec, int peak) const
 Convert internal CrateEnergy containers to CMMEtSums container. More...
 
void systemEnergyToEtSums (const MultiSliceSystemEnergy &systemVec, DataVector< CMMEtSums > *cmmEtSumsVec, int peak) const
 Convert internal SystemEnergy objects to CMMEtSums object. More...
 
void etMapsToEtSums (const MultiSliceSystemEnergy &systemVec, DataVector< CMMEtSums > *cmmEtSumsVec, int peak) const
 Convert maps from internal SystemEnergy objects to CMMEtSums objects. More...
 
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::IL1JetElementToolsm_jeTool
 Tool for JetElement map. More...
 
ToolHandle< LVL1::IL1EtToolsm_etTool
 Tool for energy sums. More...
 
SG::ReadHandleKey< TrigConf::L1Menum_L1MenuKey { this, "L1TriggerMenu", "DetectorStore+L1TriggerMenu", "L1 Menu" }
 
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

This is a tool to reconstruct the L1 JEM and CMM-Energy Et sums from Jet Elements. Used for offline monitoring and trigger reconstruction.

Useage: L1JEPEtSumsTools->formJEMEtSums() // Form JEMEtSums from JetElements L1JEPEtSumsTools->formCMMEtSums() // Form CMMEtSums from JEMEtSums

  @author  Peter Faulkner

Definition at line 55 of file L1JEPEtSumsTools.h.

Member Typedef Documentation

◆ EnergyVector

typedef std::vector<unsigned int> LVL1::L1JEPEtSumsTools::EnergyVector
private

Definition at line 90 of file L1JEPEtSumsTools.h.

◆ ErrorVector

typedef std::vector<int> LVL1::L1JEPEtSumsTools::ErrorVector
private

Definition at line 91 of file L1JEPEtSumsTools.h.

◆ MultiSliceCrateEnergy

Definition at line 93 of file L1JEPEtSumsTools.h.

◆ MultiSliceModuleEnergy

Definition at line 92 of file L1JEPEtSumsTools.h.

◆ MultiSliceSystemEnergy

Definition at line 94 of file L1JEPEtSumsTools.h.

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ L1JEPEtSumsTools()

LVL1::L1JEPEtSumsTools::L1JEPEtSumsTools ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Constructor.

Definition at line 24 of file L1JEPEtSumsTools.cxx.

27  :
29  m_jeTool("LVL1::L1JetElementTools/L1JetElementTools"),
30  m_etTool("LVL1::L1EtTools/L1EtTools")
31 {
32  declareInterface<IL1JEPEtSumsTools>(this);
33  declareProperty( "JetElementTool", m_jeTool);
34  declareProperty( "EtTool", m_etTool);
35 }

◆ ~L1JEPEtSumsTools()

LVL1::L1JEPEtSumsTools::~L1JEPEtSumsTools ( )
virtual

default destructor

Destructor.

Definition at line 39 of file L1JEPEtSumsTools.cxx.

40 {
41 }

Member Function Documentation

◆ crateEnergyToEtSums()

void LVL1::L1JEPEtSumsTools::crateEnergyToEtSums ( const MultiSliceCrateEnergy cratesVec,
DataVector< CMMEtSums > *  cmmEtSumsVec,
int  peak 
) const
private

Convert internal CrateEnergy containers to CMMEtSums container.

Definition at line 383 of file L1JEPEtSumsTools.cxx.

386 {
387  std::map<int, CMMEtSums*> etMap;
388  unsigned int nslices = cratesVec.size();
389  std::vector<unsigned int> dummy(nslices);
390  std::vector<int> error(nslices);
391  for (unsigned int slice = 0; slice < nslices; ++slice) {
392  const DataVector<CrateEnergy>* crates = cratesVec[slice];
395  for (; pos != pose; ++pos) {
396  const CrateEnergy* energy = *pos;
397  unsigned int ex = energy->exTC();
398  unsigned int ey = energy->eyTC();
399  unsigned int et = energy->et();
400  int exOverflow = energy->exOverflow();
401  int eyOverflow = energy->eyOverflow();
402  int etOverflow = energy->etOverflow();
403  if (ex == 0 && ey == 0 && et == 0 &&
404  exOverflow == 0 && eyOverflow == 0 && etOverflow == 0) continue;
405  int crate = energy->crate();
406  CMMEtSums* sums = 0;
407  int dataId = CMMEtSums::LOCAL;
408  for (int i = 0; i < 2; ++i) {
409  int key = crate*100 + dataId;
410  std::map<int, CMMEtSums*>::iterator iter = etMap.find(key);
411  if (iter == etMap.end()) {
412  sums = new CMMEtSums(crate, dataId, dummy, dummy, dummy,
413  error, error, error, peak);
414  etMap.insert(std::make_pair(key, sums));
415  cmmEtSumsVec->push_back(sums);
416  } else sums = iter->second;
417  std::vector<unsigned int> exVec(sums->ExVec());
418  std::vector<unsigned int> eyVec(sums->EyVec());
419  std::vector<unsigned int> etVec(sums->EtVec());
420  std::vector<int> exErr(sums->ExErrorVec());
421  std::vector<int> eyErr(sums->EyErrorVec());
422  std::vector<int> etErr(sums->EtErrorVec());
423  exVec[slice] = ex;
424  eyVec[slice] = ey;
425  etVec[slice] = et;
426  if (exOverflow) {
427  DataError dEx(exErr[slice]);
428  dEx.set(DataError::Overflow);
429  exErr[slice] = dEx.error();
430  }
431  if (eyOverflow) {
432  DataError dEy(eyErr[slice]);
433  dEy.set(DataError::Overflow);
434  eyErr[slice] = dEy.error();
435  }
436  if (etOverflow) {
437  DataError dEt(etErr[slice]);
438  dEt.set(DataError::Overflow);
439  etErr[slice] = dEt.error();
440  }
441  sums->addEx(exVec, exErr);
442  sums->addEy(eyVec, eyErr);
443  sums->addEt(etVec, etErr);
444  if (crate == 1) break;
445  crate = 1;
446  dataId = CMMEtSums::REMOTE;
447  }
448  }
449  }
450 }

◆ 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; }

◆ etMapsToEtSums()

void LVL1::L1JEPEtSumsTools::etMapsToEtSums ( const MultiSliceSystemEnergy systemVec,
DataVector< CMMEtSums > *  cmmEtSumsVec,
int  peak 
) const
private

Convert maps from internal SystemEnergy objects to CMMEtSums objects.

Definition at line 509 of file L1JEPEtSumsTools.cxx.

512 {
513  CMMEtSums* missEt = 0;
514  CMMEtSums* sumEt = 0;
515  CMMEtSums* missEtSig = 0;
516  unsigned int nslices = systemVec.size();
517  std::vector<unsigned int> data(nslices);
518  std::vector<int> error(nslices);
519  for (unsigned int slice = 0; slice < nslices; ++slice) {
520  SystemEnergy* energy = systemVec[slice];
521  unsigned int etMissHits = energy->etMissHits();
522  if (etMissHits) {
523  if ( !missEt ) {
524  missEt = new CMMEtSums(1, CMMEtSums::MISSING_ET_MAP, data, data, data,
525  error, error, error, peak);
526  cmmEtSumsVec->push_back(missEt);
527  }
528  std::vector<unsigned int> etVec(missEt->EtVec());
529  etVec[slice] = etMissHits;
530  missEt->addEx(etVec, error);
531  missEt->addEy(etVec, error);
532  missEt->addEt(etVec, error);
533  }
534  unsigned int etSumHits = energy->etSumHits();
535  if (etSumHits) {
536  if ( !sumEt ) {
537  sumEt = new CMMEtSums(1, CMMEtSums::SUM_ET_MAP, data, data, data,
538  error, error, error, peak);
539  cmmEtSumsVec->push_back(sumEt);
540  }
541  std::vector<unsigned int> etVec(sumEt->EtVec());
542  etVec[slice] = etSumHits;
543  sumEt->addEx(etVec, error);
544  sumEt->addEy(etVec, error);
545  sumEt->addEt(etVec, error);
546  }
547  //unsigned int etMissSigHits = energy->etMissSigHits();
548  unsigned int etMissSigHits = ((energy->roiWord0())>>16)&0xff;
549  if (etMissSigHits) {
550  if ( !missEtSig ) {
551  missEtSig = new CMMEtSums(1, CMMEtSums::MISSING_ET_SIG_MAP,
552  data, data, data, error, error, error, peak);
553  cmmEtSumsVec->push_back(missEtSig);
554  }
555  std::vector<unsigned int> etVec(missEtSig->EtVec());
556  etVec[slice] = etMissSigHits;
557  missEtSig->addEx(etVec, error);
558  missEtSig->addEy(etVec, error);
559  missEtSig->addEt(etVec, error);
560  }
561  }
562 }

◆ etSumsToCrateEnergy()

void LVL1::L1JEPEtSumsTools::etSumsToCrateEnergy ( const DataVector< CMMEtSums > *  etSums,
MultiSliceCrateEnergy crateVec,
int &  peak 
) const
private

Convert CMMEtSums container to internal CrateEnergy containers.

Definition at line 260 of file L1JEPEtSumsTools.cxx.

262 {
263  peak = 0;
264  unsigned int nslices = 0;
267  for (; pos != pose; ++pos) {
268  const CMMEtSums* sums = *pos;
269  int crate = sums->crate();
270  if (crate != 1) continue;
271  int dataId = sums->dataID();
272  if (dataId != CMMEtSums::LOCAL &&
273  dataId != CMMEtSums::REMOTE) continue;
274  if (dataId == CMMEtSums::REMOTE) crate = 0;
275  if (sums->peak() > peak) peak = sums->peak();
276  const EnergyVector& ex(sums->ExVec());
277  const EnergyVector& ey(sums->EyVec());
278  const EnergyVector& et(sums->EtVec());
279  const ErrorVector& exErrVec(sums->ExErrorVec());
280  const ErrorVector& eyErrVec(sums->EyErrorVec());
281  const ErrorVector& etErrVec(sums->EtErrorVec());
282  unsigned int slices = et.size();
283  if (slices > nslices) {
284  for (unsigned int i = nslices; i < slices; ++i) {
285  crateVec.push_back(new DataVector<CrateEnergy>);
286  }
287  nslices = slices;
288  }
289  for (unsigned int sl = 0; sl < slices; ++sl) {
290  DataVector<CrateEnergy>* crates = crateVec[sl];
291  DataError exErr(exErrVec[sl]);
292  DataError eyErr(eyErrVec[sl]);
293  DataError etErr(etErrVec[sl]);
294  crates->push_back(new CrateEnergy(crate, et[sl], ex[sl], ey[sl],
295  etErr.get(DataError::Overflow),
296  exErr.get(DataError::Overflow),
297  eyErr.get(DataError::Overflow)));
298  }
299  }
300 }

◆ etSumsToModuleEnergy()

void LVL1::L1JEPEtSumsTools::etSumsToModuleEnergy ( const DataVector< CMMEtSums > *  etSums,
MultiSliceModuleEnergy modulesVec,
int &  peak 
) const
private

Convert CMMEtSums container to internal ModuleEnergy containers.

Definition at line 226 of file L1JEPEtSumsTools.cxx.

229 {
230  peak = 0;
231  unsigned int nslices = 0;
234  for (; pos != pose; ++pos) {
235  const CMMEtSums* sums = *pos;
236  int dataId = sums->dataID();
237  if (dataId > 15) continue;
238  int crate = sums->crate();
239  if (sums->peak() > peak) peak = sums->peak();
240  const EnergyVector& ex(sums->ExVec());
241  const EnergyVector& ey(sums->EyVec());
242  const EnergyVector& et(sums->EtVec());
243  unsigned int slices = et.size();
244  if (slices > nslices) {
245  for (unsigned int i = nslices; i < slices; ++i) {
246  modulesVec.push_back(new DataVector<ModuleEnergy>);
247  }
248  nslices = slices;
249  }
250  for (unsigned int sl = 0; sl < slices; ++sl) {
251  DataVector<ModuleEnergy>* modules = modulesVec[sl];
252  modules->push_back(new ModuleEnergy(crate, dataId,
253  et[sl], ex[sl], ey[sl]));
254  }
255  }
256 }

◆ etSumsToSystemEnergy()

void LVL1::L1JEPEtSumsTools::etSumsToSystemEnergy ( const DataVector< CMMEtSums > *  etSums,
MultiSliceSystemEnergy systemVec,
int &  peak 
) const
private

Convert CMMEtSums container to internal SystemEnergy objects.

Definition at line 304 of file L1JEPEtSumsTools.cxx.

307 {
308  peak = 0;
309  int restricted = 0;
312  for (; pos != pose; ++pos) {
313  const CMMEtSums* sums = *pos;
314  int dataId = sums->dataID();
315  if (dataId != CMMEtSums::TOTAL) continue;
316  if (sums->peak() > peak) peak = sums->peak();
317  const EnergyVector& ex(sums->ExVec());
318  const EnergyVector& ey(sums->EyVec());
319  const EnergyVector& et(sums->EtVec());
320  const ErrorVector& exErrVec(sums->ExErrorVec());
321  const ErrorVector& eyErrVec(sums->EyErrorVec());
322  const ErrorVector& etErrVec(sums->EtErrorVec());
323  unsigned int slices = et.size();
324  auto l1Menu = SG::makeHandle( m_L1MenuKey );
325  for (unsigned int sl = 0; sl < slices; ++sl) {
326  DataError exErr(exErrVec[sl]);
327  DataError eyErr(eyErrVec[sl]);
328  DataError etErr(etErrVec[sl]);
329  systemVec.push_back(new SystemEnergy(et[sl], ex[sl], ey[sl],
330  etErr.get(DataError::Overflow),
331  exErr.get(DataError::Overflow),
332  eyErr.get(DataError::Overflow),
333  restricted,
334  &(*l1Menu)));
335  }
336  }
337 }

◆ 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; }

◆ 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

◆ formCMMEtSums()

void LVL1::L1JEPEtSumsTools::formCMMEtSums ( const DataVector< JEMEtSums > *  jemEtSumsVec,
DataVector< CMMEtSums > *  cmmEtSumsVec 
) const
virtual

form complete CMMEtSums from JEMEtSums

Implements LVL1::IL1JEPEtSumsTools.

Definition at line 102 of file L1JEPEtSumsTools.cxx.

104 {
105  formCMMEtSumsModule(jemEtSumsVec, cmmEtSumsVec);
106  // Convert to internal containers
107  int peak = 0;
108  MultiSliceModuleEnergy modulesVec;
109  MultiSliceCrateEnergy cratesVec;
110  MultiSliceSystemEnergy systemVec;
111  etSumsToModuleEnergy(cmmEtSumsVec, modulesVec, peak);
112  // Process each slice
113  MultiSliceModuleEnergy::iterator iter = modulesVec.begin();
114  MultiSliceModuleEnergy::iterator iterE = modulesVec.end();
115  for (; iter != iterE; ++iter) {
116  DataVector<ModuleEnergy>* modules = *iter;
118  cratesVec.push_back(crates);
119  m_etTool->crateSums(modules, crates);
120  systemVec.push_back(new SystemEnergy(m_etTool->systemSums(crates)));
121  delete modules;
122  }
123  // Convert back to CMMEtSums
124  crateEnergyToEtSums(cratesVec, cmmEtSumsVec, peak);
125  MultiSliceCrateEnergy::iterator citer = cratesVec.begin();
126  MultiSliceCrateEnergy::iterator citerE = cratesVec.end();
127  for (; citer != citerE; ++citer) delete *citer;
128  systemEnergyToEtSums(systemVec, cmmEtSumsVec, peak);
129  etMapsToEtSums(systemVec, cmmEtSumsVec, peak);
130  MultiSliceSystemEnergy::iterator siter = systemVec.begin();
131  MultiSliceSystemEnergy::iterator siterE = systemVec.end();
132  for (; siter != siterE; ++siter) delete *siter;
133 }

◆ formCMMEtSumsCrate()

void LVL1::L1JEPEtSumsTools::formCMMEtSumsCrate ( const DataVector< CMMEtSums > *  cmmEtSumsMod,
DataVector< CMMEtSums > *  cmmEtSumsCrate 
) const
virtual

form partial CMMEtSums (crate) from module CMMEtSums

Implements LVL1::IL1JEPEtSumsTools.

Definition at line 154 of file L1JEPEtSumsTools.cxx.

157 {
158  // Convert to internal containers
159  int peak = 0;
160  MultiSliceModuleEnergy modulesVec;
161  MultiSliceCrateEnergy cratesVec;
162  etSumsToModuleEnergy(cmmEtSumsMod, modulesVec, peak);
163  // Process each slice
164  MultiSliceModuleEnergy::iterator iter = modulesVec.begin();
165  MultiSliceModuleEnergy::iterator iterE = modulesVec.end();
166  for (; iter != iterE; ++iter) {
167  DataVector<ModuleEnergy>* modules = *iter;
169  cratesVec.push_back(crates);
170  m_etTool->crateSums(modules, crates);
171  delete modules;
172  }
173  // Convert back to CMMEtSums
174  crateEnergyToEtSums(cratesVec, cmmEtSumsCrate, peak);
175  MultiSliceCrateEnergy::iterator miter = cratesVec.begin();
176  MultiSliceCrateEnergy::iterator miterE = cratesVec.end();
177  for (; miter != miterE; ++miter) delete *miter;
178 }

◆ formCMMEtSumsEtMaps()

void LVL1::L1JEPEtSumsTools::formCMMEtSumsEtMaps ( const DataVector< CMMEtSums > *  cmmEtSumsSys,
DataVector< CMMEtSums > *  cmmEtSumsMap 
) const
virtual

form partial CMMEtSums (sumEt/missingEt maps) from system CMMEtSums

form partial CMMEtSums (sumEt/missingEt/missingEtSig maps) from system CMMEtSums

Implements LVL1::IL1JEPEtSumsTools.

Definition at line 209 of file L1JEPEtSumsTools.cxx.

212 {
213  // Convert to internal objects
214  int peak = 0;
215  MultiSliceSystemEnergy systemVec;
216  etSumsToSystemEnergy(cmmEtSumsSys, systemVec, peak);
217  // Convert back to CMMEtSums
218  etMapsToEtSums(systemVec, cmmEtSumsMap, peak);
219  MultiSliceSystemEnergy::iterator iter = systemVec.begin();
220  MultiSliceSystemEnergy::iterator iterE = systemVec.end();
221  for (; iter != iterE; ++iter) delete *iter;
222 }

◆ formCMMEtSumsModule()

void LVL1::L1JEPEtSumsTools::formCMMEtSumsModule ( const DataVector< JEMEtSums > *  jemEtSumsVec,
DataVector< CMMEtSums > *  cmmEtSumsMod 
) const
virtual

form partial CMMEtSums (module) from JEMEtSums

Implements LVL1::IL1JEPEtSumsTools.

Definition at line 137 of file L1JEPEtSumsTools.cxx.

140 {
142  DataVector<JEMEtSums>::const_iterator pose = jemEtSumsVec->end();
143  for (; pos != pose; ++pos) {
144  const JEMEtSums* sums = *pos;
145  ErrorVector err(sums->EtVec().size());
146  cmmEtSumsMod->push_back(new CMMEtSums(sums->crate(), sums->module(),
147  sums->EtVec(), sums->ExVec(), sums->EyVec(),
148  err, err, err, sums->peak()));
149  }
150 }

◆ formCMMEtSumsSystem()

void LVL1::L1JEPEtSumsTools::formCMMEtSumsSystem ( const DataVector< CMMEtSums > *  cmmEtSumsCrate,
DataVector< CMMEtSums > *  cmmEtSumsSys 
) const
virtual

form partial CMMEtSums (system) from crate CMMEtSums

Implements LVL1::IL1JEPEtSumsTools.

Definition at line 182 of file L1JEPEtSumsTools.cxx.

185 {
186  // Convert to internal containers
187  int peak = 0;
188  MultiSliceCrateEnergy cratesVec;
189  MultiSliceSystemEnergy systemVec;
190  etSumsToCrateEnergy(cmmEtSumsCrate, cratesVec, peak);
191  // Process each slice
192  MultiSliceCrateEnergy::iterator iter = cratesVec.begin();
193  MultiSliceCrateEnergy::iterator iterE = cratesVec.end();
194  for (; iter != iterE; ++iter) {
195  DataVector<CrateEnergy>* crates = *iter;
196  systemVec.push_back(new SystemEnergy(m_etTool->systemSums(crates)));
197  delete crates;
198  }
199  // Convert back to CMMEtSums
200  systemEnergyToEtSums(systemVec, cmmEtSumsSys, peak);
201  MultiSliceSystemEnergy::iterator siter = systemVec.begin();
202  MultiSliceSystemEnergy::iterator siterE = systemVec.end();
203  for (; siter != siterE; ++siter) delete *siter;
204 }

◆ formJEMEtSums()

void LVL1::L1JEPEtSumsTools::formJEMEtSums ( const DataVector< xAOD::JetElement > *  jetElementVec,
DataVector< JEMEtSums > *  jemEtSumsVec 
) const
virtual

form JEMEtSums from JetElements

Implements LVL1::IL1JEPEtSumsTools.

Definition at line 63 of file L1JEPEtSumsTools.cxx.

66 {
67  // Find number of slices
68  int peak = 0;
69  unsigned int nslices = 1;
71  DataVector<xAOD::JetElement>::const_iterator iterE = jetElementVec->end();
72  for (; iter != iterE; ++iter) {
73  if ((*iter)->emJetElementETVec().size() > nslices) {
74  nslices = (*iter)->emJetElementETVec().size();
75  peak = (*iter)->peak();
76  break;
77  }
78  if ((*iter)->hadJetElementETVec().size() > nslices) {
79  nslices = (*iter)->emJetElementETVec().size();
80  peak = (*iter)->peak();
81  break;
82  }
83  }
84  // Process each slice
86  m_jeTool->mapJetElements(jetElementVec, &jeMap);
87  MultiSliceModuleEnergy modulesVec;
88  for (unsigned int slice = 0; slice < nslices; ++slice) {
90  modulesVec.push_back(modules);
91  m_etTool->moduleSums(&jeMap, modules, slice);
92  }
93  // Convert to JEMEtSums
94  moduleEnergyToEtSums(modulesVec, jemEtSumsVec, peak);
95  MultiSliceModuleEnergy::iterator miter = modulesVec.begin();
96  MultiSliceModuleEnergy::iterator miterE = modulesVec.end();
97  for (; miter != miterE; ++miter) delete *miter;
98 }

◆ initialize()

StatusCode LVL1::L1JEPEtSumsTools::initialize ( )
virtual

standard Athena-Algorithm method

Initialisation.

Definition at line 46 of file L1JEPEtSumsTools.cxx.

47 {
48 
50  // Retrieve jet element tool
51 
52  ATH_CHECK(m_jeTool.retrieve());
53 
54  // Retrieve energy sums tool
55 
56  ATH_CHECK(m_etTool.retrieve());
57 
58  return StatusCode::SUCCESS;
59 }

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

◆ interfaceID()

const InterfaceID & LVL1::IL1JEPEtSumsTools::interfaceID ( )
inlinestaticinherited

Definition at line 48 of file IL1JEPEtSumsTools.h.

49  {
50  return IID_IL1JEPEtSumsTools;
51  }

◆ moduleEnergyToEtSums()

void LVL1::L1JEPEtSumsTools::moduleEnergyToEtSums ( const MultiSliceModuleEnergy modulesVec,
DataVector< JEMEtSums > *  jemEtSumsVec,
int  peak 
) const
private

Convert internal ModuleEnergy containers to JEMEtSums container.

Definition at line 341 of file L1JEPEtSumsTools.cxx.

344 {
345  std::map<int, JEMEtSums*> etMap;
346  unsigned int nslices = modulesVec.size();
347  std::vector<unsigned int> dummy(nslices);
348  for (unsigned int slice = 0; slice < nslices; ++slice) {
349  const DataVector<ModuleEnergy>* modules = modulesVec[slice];
352  for (; pos != pose; ++pos) {
353  const ModuleEnergy* energy = *pos;
354  unsigned int ex = energy->ex();
355  unsigned int ey = energy->ey();
356  unsigned int et = energy->et();
357  if (ex == 0 && ey == 0 && et == 0) continue;
358  int crate = energy->crate();
359  int module = energy->module();
360  JEMEtSums* sums = 0;
361  int key = crate*100 + module;
362  std::map<int, JEMEtSums*>::iterator iter = etMap.find(key);
363  if (iter == etMap.end()) {
364  sums = new JEMEtSums(crate, module, dummy, dummy, dummy, peak);
365  etMap.insert(std::make_pair(key, sums));
366  jemEtSumsVec->push_back(sums);
367  } else sums = iter->second;
368  std::vector<unsigned int> exVec(sums->ExVec());
369  std::vector<unsigned int> eyVec(sums->EyVec());
370  std::vector<unsigned int> etVec(sums->EtVec());
371  exVec[slice] = ex;
372  eyVec[slice] = ey;
373  etVec[slice] = et;
374  sums->addEx(exVec);
375  sums->addEy(eyVec);
376  sums->addEt(etVec);
377  }
378  }
379 }

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

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

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

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

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

◆ systemEnergyToEtSums()

void LVL1::L1JEPEtSumsTools::systemEnergyToEtSums ( const MultiSliceSystemEnergy systemVec,
DataVector< CMMEtSums > *  cmmEtSumsVec,
int  peak 
) const
private

Convert internal SystemEnergy objects to CMMEtSums object.

Definition at line 454 of file L1JEPEtSumsTools.cxx.

457 {
458  CMMEtSums* sums = 0;
459  unsigned int nslices = systemVec.size();
460  std::vector<unsigned int> data(nslices);
461  std::vector<int> error(nslices);
462  for (unsigned int slice = 0; slice < nslices; ++slice) {
463  SystemEnergy* energy = systemVec[slice];
464  unsigned int ex = energy->exTC();
465  unsigned int ey = energy->eyTC();
466  unsigned int et = energy->et();
467  int exOverflow = energy->exOverflow();
468  int eyOverflow = energy->eyOverflow();
469  int etOverflow = energy->etOverflow();
470  if (ex == 0 && ey == 0 && et == 0 &&
471  exOverflow == 0 && eyOverflow == 0 && etOverflow == 0) continue;
472  if ( !sums ) {
473  sums = new CMMEtSums(1, CMMEtSums::TOTAL, data, data, data,
474  error, error, error, peak);
475  cmmEtSumsVec->push_back(sums);
476  }
477  std::vector<unsigned int> exVec(sums->ExVec());
478  std::vector<unsigned int> eyVec(sums->EyVec());
479  std::vector<unsigned int> etVec(sums->EtVec());
480  std::vector<int> exErr(sums->ExErrorVec());
481  std::vector<int> eyErr(sums->EyErrorVec());
482  std::vector<int> etErr(sums->EtErrorVec());
483  exVec[slice] = ex;
484  eyVec[slice] = ey;
485  etVec[slice] = et;
486  if (exOverflow) {
487  DataError dEx(exErr[slice]);
488  dEx.set(DataError::Overflow);
489  exErr[slice] = dEx.error();
490  }
491  if (eyOverflow) {
492  DataError dEy(eyErr[slice]);
493  dEy.set(DataError::Overflow);
494  eyErr[slice] = dEy.error();
495  }
496  if (etOverflow) {
497  DataError dEt(etErr[slice]);
498  dEt.set(DataError::Overflow);
499  etErr[slice] = dEt.error();
500  }
501  sums->addEx(exVec, exErr);
502  sums->addEy(eyVec, eyErr);
503  sums->addEt(etVec, etErr);
504  }
505 }

◆ 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_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_etTool

ToolHandle<LVL1::IL1EtTools> LVL1::L1JEPEtSumsTools::m_etTool
private

Tool for energy sums.

Definition at line 121 of file L1JEPEtSumsTools.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_jeTool

ToolHandle<LVL1::IL1JetElementTools> LVL1::L1JEPEtSumsTools::m_jeTool
private

Tool for JetElement map.

Definition at line 119 of file L1JEPEtSumsTools.h.

◆ m_L1MenuKey

SG::ReadHandleKey<TrigConf::L1Menu> LVL1::L1JEPEtSumsTools::m_L1MenuKey { this, "L1TriggerMenu", "DetectorStore+L1TriggerMenu", "L1 Menu" }
private

Definition at line 122 of file L1JEPEtSumsTools.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:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
LVL1::L1JEPEtSumsTools::moduleEnergyToEtSums
void moduleEnergyToEtSums(const MultiSliceModuleEnergy &modulesVec, DataVector< JEMEtSums > *jemEtSumsVec, int peak) const
Convert internal ModuleEnergy containers to JEMEtSums container.
Definition: L1JEPEtSumsTools.cxx:341
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
et
Extra patterns decribing particle interation process.
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
module_driven_slicing.nslices
nslices
Definition: module_driven_slicing.py:575
xAOD::JEMEtSums
JEMEtSums_v2 JEMEtSums
Define the latest version of the JEMEtSums class.
Definition: Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/JEMEtSums.h:15
LVL1::CMMEtSums::SUM_ET_MAP
@ SUM_ET_MAP
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMMEtSums.h:37
LVL1::L1JEPEtSumsTools::m_jeTool
ToolHandle< LVL1::IL1JetElementTools > m_jeTool
Tool for JetElement map.
Definition: L1JEPEtSumsTools.h:119
LVL1::L1JEPEtSumsTools::m_L1MenuKey
SG::ReadHandleKey< TrigConf::L1Menu > m_L1MenuKey
Definition: L1JEPEtSumsTools.h:122
xAOD::et
et
Definition: TrigEMCluster_v1.cxx:25
LVL1::L1JEPEtSumsTools::crateEnergyToEtSums
void crateEnergyToEtSums(const MultiSliceCrateEnergy &cratesVec, DataVector< CMMEtSums > *cmmEtSumsVec, int peak) const
Convert internal CrateEnergy containers to CMMEtSums container.
Definition: L1JEPEtSumsTools.cxx:383
LVL1::L1JEPEtSumsTools::systemEnergyToEtSums
void systemEnergyToEtSums(const MultiSliceSystemEnergy &systemVec, DataVector< CMMEtSums > *cmmEtSumsVec, int peak) const
Convert internal SystemEnergy objects to CMMEtSums object.
Definition: L1JEPEtSumsTools.cxx:454
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
LVL1::CMMEtSums::LOCAL
@ LOCAL
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMMEtSums.h:36
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
LVL1::L1JEPEtSumsTools::ErrorVector
std::vector< int > ErrorVector
Definition: L1JEPEtSumsTools.h:91
LVL1::L1JEPEtSumsTools::etMapsToEtSums
void etMapsToEtSums(const MultiSliceSystemEnergy &systemVec, DataVector< CMMEtSums > *cmmEtSumsVec, int peak) const
Convert maps from internal SystemEnergy objects to CMMEtSums objects.
Definition: L1JEPEtSumsTools.cxx:509
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
LVL1::CMMEtSums::REMOTE
@ REMOTE
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMMEtSums.h:36
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:27
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition: ReadCondHandle.h:270
python.PyAthena.module
module
Definition: PyAthena.py:131
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
AthCommonDataStore
Definition: AthCommonDataStore.h:52
xAOD::JetElementMap_t
std::map< int, const JetElement * > JetElementMap_t
Definition: Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/JetElement.h:18
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
LVL1::L1JEPEtSumsTools::etSumsToModuleEnergy
void etSumsToModuleEnergy(const DataVector< CMMEtSums > *etSums, MultiSliceModuleEnergy &modulesVec, int &peak) const
Convert CMMEtSums container to internal ModuleEnergy containers.
Definition: L1JEPEtSumsTools.cxx:226
ParticleGun_FastCalo_ChargeFlip_Config.energy
energy
Definition: ParticleGun_FastCalo_ChargeFlip_Config.py:78
LVL1::DataError::Overflow
@ Overflow
Definition: DataError.h:31
dqt_zlumi_pandas.err
err
Definition: dqt_zlumi_pandas.py:182
perfmonmt-refit.slice
slice
Definition: perfmonmt-refit.py:52
lumiFormat.i
int i
Definition: lumiFormat.py:85
test_pyathena.parent
parent
Definition: test_pyathena.py:15
python.xAODType.dummy
dummy
Definition: xAODType.py:4
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
LVL1::L1JEPEtSumsTools::etSumsToCrateEnergy
void etSumsToCrateEnergy(const DataVector< CMMEtSums > *etSums, MultiSliceCrateEnergy &crateVec, int &peak) const
Convert CMMEtSums container to internal CrateEnergy containers.
Definition: L1JEPEtSumsTools.cxx:260
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
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
LVL1::L1JEPEtSumsTools::MultiSliceSystemEnergy
std::vector< SystemEnergy * > MultiSliceSystemEnergy
Definition: L1JEPEtSumsTools.h:94
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_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
LVL1::L1JEPEtSumsTools::EnergyVector
std::vector< unsigned int > EnergyVector
Definition: L1JEPEtSumsTools.h:90
xAOD::CMMEtSums
CMMEtSums_v1 CMMEtSums
Define the latest version of the CMMEtSums class.
Definition: Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/CMMEtSums.h:14
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
a
TList * a
Definition: liststreamerinfos.cxx:10
h
LVL1::L1JEPEtSumsTools::formCMMEtSumsModule
virtual void formCMMEtSumsModule(const DataVector< JEMEtSums > *jemEtSumsVec, DataVector< CMMEtSums > *cmmEtSumsMod) const
form partial CMMEtSums (module) from JEMEtSums
Definition: L1JEPEtSumsTools.cxx:137
LVL1::CMMEtSums::MISSING_ET_SIG_MAP
@ MISSING_ET_SIG_MAP
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMMEtSums.h:37
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
LVL1::L1JEPEtSumsTools::MultiSliceCrateEnergy
std::vector< DataVector< CrateEnergy > * > MultiSliceCrateEnergy
Definition: L1JEPEtSumsTools.h:93
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
LVL1::CMMEtSums::MISSING_ET_MAP
@ MISSING_ET_MAP
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMMEtSums.h:37
LVL1::L1JEPEtSumsTools::m_etTool
ToolHandle< LVL1::IL1EtTools > m_etTool
Tool for energy sums.
Definition: L1JEPEtSumsTools.h:121
LVL1::L1JEPEtSumsTools::MultiSliceModuleEnergy
std::vector< DataVector< ModuleEnergy > * > MultiSliceModuleEnergy
Definition: L1JEPEtSumsTools.h:92
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
get_generator_info.error
error
Definition: get_generator_info.py:40
LVL1::CMMEtSums::TOTAL
@ TOTAL
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/CMMEtSums.h:36
error
Definition: IImpactPoint3dEstimator.h:70
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
keylayer_zslicemap.slices
slices
Definition: keylayer_zslicemap.py:112
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
LVL1::L1JEPEtSumsTools::etSumsToSystemEnergy
void etSumsToSystemEnergy(const DataVector< CMMEtSums > *etSums, MultiSliceSystemEnergy &systemVec, int &peak) const
Convert CMMEtSums container to internal SystemEnergy objects.
Definition: L1JEPEtSumsTools.cxx:304
fitman.k
k
Definition: fitman.py:528
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37