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

#include <L1CaloCells2TriggerTowers.h>

Inheritance diagram for LVL1::L1CaloCells2TriggerTowers:
Collaboration diagram for LVL1::L1CaloCells2TriggerTowers:

Public Member Functions

 L1CaloCells2TriggerTowers (const std::string &name)
 Create a proper constructor for Athena. More...
 
virtual ~L1CaloCells2TriggerTowers ()
 destructor More...
 
 L1CaloCells2TriggerTowers ()=delete
 delete the big 4 More...
 
 L1CaloCells2TriggerTowers (const L1CaloCells2TriggerTowers &rhs)=delete
 
 L1CaloCells2TriggerTowers (L1CaloCells2TriggerTowers &&rhs)=delete
 
L1CaloCells2TriggerTowersoperator= (const L1CaloCells2TriggerTowers &rhs)=delete
 
virtual StatusCode initialize () override
 Dummy implementation of the initialisation function. More...
 
virtual StatusCode finalize () override
 
virtual bool initCaloCellsTriggerTowers (const CaloCellContainer &cellContainer) override
 Declare the interface that the class provides. More...
 
virtual bool initLArDigitsTriggerTowers (const LArDigitContainer &larDigitContainer) override
 
virtual bool initTileDigitsTriggerTowers (const TileDigitsContainer &tileDigitsContainer) override
 
virtual std::vector< const CaloCell * > caloCells (const Identifier &ttId) const override
 
virtual std::vector< std::vector< const CaloCell * > > caloCellsByLayer (const Identifier &ttId) const override
 
virtual std::vector< int > layerNames (const Identifier &ttID) const override
 
virtual int layerNames (const CaloCell *cell) const override
 
virtual float energy (const std::vector< const CaloCell * > &cells) const override
 
virtual float et (const std::vector< const CaloCell * > &cells) const override
 
virtual float energy (const Identifier &ttId) const override
 
virtual float et (const Identifier &ttId) const override
 
virtual std::vector< double > samples (const Identifier &ttId) const override
 
virtual std::vector< const LArDigit * > larDigits (const Identifier &ttId) const override
 
virtual std::vector< const TileDigits * > tileDigits (const Identifier &ttId) const override
 
virtual void dumpCaloCells () const override
 
virtual void dumpCaloCells (const Identifier &ttId) const override
 
virtual void dumpDigits (const Identifier &ttId) const override
 
virtual void dumpLArDigits (const Identifier &ttId) const override
 
virtual void dumpLArDigits () const override
 
virtual void dumpTileDigits (const Identifier &ttId) const override
 
virtual void dumpTileDigits () const override
 
virtual void print () const =0
 Print the state of the tool. More...
 
virtual void print () const
 Print the state of the tool. More...
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Protected Member Functions

virtual float calcEnergyOrEt (const std::vector< const CaloCell * > &cells, const unsigned int mode) const override
 
virtual void reset () override
 
virtual void resetCaloCells () override
 
virtual void resetLArDigits () override
 
virtual void resetTileDigits () override
 
virtual void dump (const std::vector< const CaloCell * > &vCells) const override
 
virtual void dump (const std::vector< const LArDigit * > &vCells) const override
 
virtual void dump (const std::vector< const TileDigits * > &vCells) const override
 
void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

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

const CaloLVL1_IDm_lvl1Helper
 
const TileIDm_tileID
 
const CaloCell_IDm_caloCellHelper
 
SG::ReadCondHandleKey< LArOnOffIdMappingm_cablingKey {this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"}
 
ToolHandle< LVL1::IL1CaloMatchCell2Towerm_cellMatch { this, "L1CaloMatchCell2Tower", "LVL1::L1CaloMatchCell2Tower", "L1CaloMatchCell2Tower" }
 
const TileCablingServicem_tileCablingService
 
CaloTriggerTowerServicem_ttSvc
 
bool m_bInitialized
 
bool m_bLArDigitsInitialized
 
bool m_bTileDigitsInitialized
 
std::map< unsigned int, std::vector< const CaloCell * > > m_mTTCaloCells
 
std::map< unsigned int, std::vector< const LArDigit * > > m_mTTLArDigits
 
std::map< unsigned int, std::vector< const TileDigits * > > m_mTTTileDigits
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Definition at line 52 of file L1CaloCells2TriggerTowers.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

◆ L1CaloCells2TriggerTowers() [1/4]

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

Create a proper constructor for Athena.

constructor

Definition at line 9 of file L1CaloCells2TriggerTowers.cxx.

9  :
10  asg::AsgTool( name ),
11  m_lvl1Helper(nullptr),
12  m_tileID(nullptr),
13  m_caloCellHelper(nullptr),
14  m_tileCablingService(nullptr),
15  m_ttSvc(nullptr),
16  m_bInitialized(false),
19  {
20  }

◆ ~L1CaloCells2TriggerTowers()

virtual LVL1::L1CaloCells2TriggerTowers::~L1CaloCells2TriggerTowers ( )
inlinevirtual

destructor

Definition at line 61 of file L1CaloCells2TriggerTowers.h.

61 {}

◆ L1CaloCells2TriggerTowers() [2/4]

LVL1::L1CaloCells2TriggerTowers::L1CaloCells2TriggerTowers ( )
delete

delete the big 4

◆ L1CaloCells2TriggerTowers() [3/4]

LVL1::L1CaloCells2TriggerTowers::L1CaloCells2TriggerTowers ( const L1CaloCells2TriggerTowers rhs)
delete

◆ L1CaloCells2TriggerTowers() [4/4]

LVL1::L1CaloCells2TriggerTowers::L1CaloCells2TriggerTowers ( L1CaloCells2TriggerTowers &&  rhs)
delete

Member Function Documentation

◆ calcEnergyOrEt()

float LVL1::L1CaloCells2TriggerTowers::calcEnergyOrEt ( const std::vector< const CaloCell * > &  cells,
const unsigned int  mode 
) const
overrideprotectedvirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 108 of file L1CaloCells2TriggerTowers.cxx.

108  {
109  float energy(0.),et(0.),GeV(1000.0);
110  if(cells.size()!=0) {
111  typedef std::vector<const CaloCell*>::const_iterator Itr;
112 
113  for(Itr i=cells.begin();i!=cells.end();++i) {
114  Identifier Id((*i)->ID());
115  float cellEnergy(0.0);
116  // Tile cells
117  if(m_caloCellHelper->is_tile(Id)) {
118  int section = m_caloCellHelper->section(Id);
119  int sample = m_caloCellHelper->sample(Id);
120 
121  if( (section==1 || section==2) && sample==2) { //D-cells, except D4
122  cellEnergy+=(*i)->energy()*0.5;
123 
124  } else {
125  cellEnergy+=(*i)->energy();
126  }
127 
128  // LArg cells
129  } else {
130  cellEnergy+=(*i)->energy(); // sampling weights between layers in TBB ?
131  }
132  if(mode == 0){energy += cellEnergy;}
133  if(mode == 1){et += cellEnergy/cosh((*i)->eta());}
134  }
135  }
136  if(mode == 0){return energy / GeV;}
137  if(mode == 1){return et / GeV;}
138  return energy / GeV;
139  }

◆ caloCells()

std::vector< const CaloCell * > LVL1::L1CaloCells2TriggerTowers::caloCells ( const Identifier ttId) const
overridevirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 23 of file L1CaloCells2TriggerTowers.cxx.

23  {
24 
25  std::map<unsigned int, std::vector<const CaloCell*> >::const_iterator it = m_mTTCaloCells.find(ttId.get_identifier32().get_compact());
26  if(it!=m_mTTCaloCells.end()) {
27  return it->second;
28 
29  } else {
30  return std::vector<const CaloCell*>();
31  }
32  }

◆ caloCellsByLayer()

std::vector< std::vector< const CaloCell * > > LVL1::L1CaloCells2TriggerTowers::caloCellsByLayer ( const Identifier ttId) const
overridevirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 35 of file L1CaloCells2TriggerTowers.cxx.

35  {
36  const std::vector<const CaloCell*> vCells(this->caloCells(ttId));
37  std::vector<std::vector<const CaloCell*> > ccByLayer;
38  std::vector<const CaloCell*> cc;
39  int caloSampleInUse(-10); // start this varibale with unrealistic value
40  bool firstCell(true);
41  if(vCells.size()!=0) {
42  std::vector<const CaloCell*>::const_iterator itCells = vCells.begin();
43  for(;itCells!=vCells.end();++itCells) {
44  Identifier Id((*itCells)->ID());
45 
46  if(firstCell == true){caloSampleInUse = m_caloCellHelper->calo_sample(Id);firstCell = false;}
47  int currentCaloSample = m_caloCellHelper->calo_sample(Id);
48  if( caloSampleInUse != currentCaloSample ){
49  ccByLayer.push_back(cc);
50  cc.clear();
51  caloSampleInUse = currentCaloSample;
52  }
53  cc.push_back(*itCells);
54  }
55  ccByLayer.push_back(cc);
56  }
57 
58  return ccByLayer;
59  }

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

◆ dump() [1/3]

void LVL1::L1CaloCells2TriggerTowers::dump ( const std::vector< const CaloCell * > &  vCells) const
overrideprotectedvirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 503 of file L1CaloCells2TriggerTowers.cxx.

503  {
504 
505 
506  ATH_MSG_INFO("ncells: "<< vCells.size());
507  std::vector<const CaloCell*>::const_iterator itCells = vCells.begin();
508  for(;itCells!=vCells.end();++itCells) {
509  Identifier Id = (*itCells)->ID();
510 
511  if(m_caloCellHelper->is_tile(Id)) {
512  int section = m_caloCellHelper->section(Id);
513  int side = m_caloCellHelper->side(Id);
514  int module = m_caloCellHelper->module(Id);
515  int tower = m_caloCellHelper->tower(Id);
516  int sample = m_caloCellHelper->sample(Id);
517  ATH_MSG_INFO(" * tile - section: "<<section << ", side: "<<side<< ", module: "<<module<< ", tower: "<<tower<< ", sample: "<<sample<<" - eta: "<< (*itCells)->eta()<<", phi: "<< (*itCells)->phi()<< ", E:" << (*itCells)->energy() );
518 
519  } else if (m_caloCellHelper->is_fcal(Id)) {
520  //needd fcal case
521  int pos_neg = m_caloCellHelper->pos_neg(Id);
522  int module = m_caloCellHelper->sampling(Id);
523  int eta = m_caloCellHelper->eta(Id);
524  int phi = m_caloCellHelper->phi(Id);
525  ATH_MSG_INFO(" * fcal - pos_neg_z: "<<pos_neg<< ", module: "<<module<<", ieta: "<<eta<< ", iphi: "<<phi<<" - eta: "<< (*itCells)->eta()<<", phi: "<< (*itCells)->phi()<< ", E:" << (*itCells)->energy() );
526 
527  } else {
528  int pos_neg = m_caloCellHelper->pos_neg(Id);
529  int sampling = m_caloCellHelper->sampling(Id);
530  int region = m_caloCellHelper->region(Id);
531  int eta = m_caloCellHelper->eta(Id);
532  int phi = m_caloCellHelper->phi(Id);
533  ATH_MSG_INFO(" * larg - pos_neg_z: "<<pos_neg<< ", sampling: "<<sampling<< ", region: "<<region<< ", ieta: "<<eta<< ", iphi: "<<phi<<" - eta: "<< (*itCells)->eta()<<", phi: "<< (*itCells)->phi()<< ", E:" << (*itCells)->energy() );
534  }
535  }
536  }

◆ dump() [2/3]

void LVL1::L1CaloCells2TriggerTowers::dump ( const std::vector< const LArDigit * > &  vCells) const
overrideprotectedvirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 538 of file L1CaloCells2TriggerTowers.cxx.

538  {
539 
541 
542  ATH_MSG_INFO( "ncells: "<< vLArDigits.size() );
543  std::vector<const LArDigit*>::const_iterator itLArDigits = vLArDigits.begin();
544  for(;itLArDigits!=vLArDigits.end();++itLArDigits) {
545 
546  const LArDigit* larDigit= *itLArDigits;
547  HWIdentifier hwId = larDigit->channelID();
548  Identifier larDigitID = cabling->cnvToIdentifier(hwId);
549 
550  ATH_MSG_INFO( "pos_neg: " << m_caloCellHelper->pos_neg(larDigitID)<<", sampling: "<< m_caloCellHelper->sampling(larDigitID)<<", region: "<< m_caloCellHelper->region(larDigitID)<<", eta: "<< m_caloCellHelper->eta(larDigitID)<<", phi: "<< m_caloCellHelper->phi(larDigitID) );
551  std::vector<short> vADC= larDigit->samples();
552  std::vector<short>::const_iterator it_sample = vADC.begin();
553  for(;it_sample!=vADC.end();++it_sample) std::cout<< *it_sample<<" ";
554  std::cout<<std::endl;
555  }
556  }

◆ dump() [3/3]

void LVL1::L1CaloCells2TriggerTowers::dump ( const std::vector< const TileDigits * > &  vCells) const
overrideprotectedvirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 598 of file L1CaloCells2TriggerTowers.cxx.

598  {
599 
600  ATH_MSG_INFO( "ncells: "<< vTileDigits.size() );
601  std::vector<const TileDigits*>::const_iterator itTileDigits = vTileDigits.begin();
602  for(;itTileDigits!=vTileDigits.end();++itTileDigits) {
603 
604  const TileDigits* tileDigit= *itTileDigits;
605  Identifier tileDigitID = tileDigit->identify();
606 
607  int section = m_caloCellHelper->section(tileDigitID);
608  int side = m_caloCellHelper->side(tileDigitID);
609  int module = m_caloCellHelper->module(tileDigitID);
610  int tower = m_caloCellHelper->tower(tileDigitID);
611  int sample = m_caloCellHelper->sample(tileDigitID);
612  ATH_MSG_INFO( "section: "<<section << ", side: "<<side<< ", module: "<<module<< ", tower: "<<tower<< ", sample: "<<sample );
613  std::vector<double> vADC = tileDigit->get_digits();
614  std::vector<double>::const_iterator it_sample = vADC.begin();
615  for(;it_sample!=vADC.end();++it_sample){
616  ATH_MSG_INFO(" --> "<< *it_sample);
617  ATH_MSG_INFO(" ");
618  }
619  }
620  }

◆ dumpCaloCells() [1/2]

void LVL1::L1CaloCells2TriggerTowers::dumpCaloCells ( ) const
overridevirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 488 of file L1CaloCells2TriggerTowers.cxx.

488  {
489 
490 
491  ATH_MSG_INFO("dumping TT->CaloCells: "<< m_mTTCaloCells.size());
492  std::map<unsigned int, std::vector<const CaloCell*> >::const_iterator it = m_mTTCaloCells.begin();
493  for(;it!=m_mTTCaloCells.end();++it) {
494  Identifier ttId(it->first);
495 
496  ATH_MSG_INFO("Trigger Tower: " << ttId.get_compact() <<" - "<< m_lvl1Helper->pos_neg_z(ttId)<<" "<<m_lvl1Helper->sampling(ttId)<<" "<<m_lvl1Helper->region(ttId)<<" "<<m_lvl1Helper->eta(ttId)<<" "<<m_lvl1Helper->phi(ttId)<<" "<<m_lvl1Helper->layer(ttId)<<" - E: "<< this->energy(ttId) );
497 
498  std::vector<const CaloCell*> vCells = it->second;
499  this->dump(vCells);
500  }
501  }

◆ dumpCaloCells() [2/2]

void LVL1::L1CaloCells2TriggerTowers::dumpCaloCells ( const Identifier ttId) const
overridevirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 473 of file L1CaloCells2TriggerTowers.cxx.

473  {
474 
475  std::map<unsigned int, std::vector<const CaloCell*> >::const_iterator it = m_mTTCaloCells.find(ttId.get_identifier32().get_compact());
476  if(it!=m_mTTCaloCells.end()) {
477 
478  ATH_MSG_INFO("Trigger Tower: " << ttId.get_compact() <<" - "<< m_lvl1Helper->pos_neg_z(ttId)<<" "<<m_lvl1Helper->sampling(ttId)<<" "<<m_lvl1Helper->region(ttId)<<" "<<m_lvl1Helper->eta(ttId)<<" "<<m_lvl1Helper->phi(ttId)<<" "<<m_lvl1Helper->layer(ttId)<<" - E: "<< this->energy(ttId) );
479 
480  std::vector<const CaloCell*> vCells = it->second;
481  this->dump(vCells);
482 
483  } else {
484  ATH_MSG_INFO("No trigger tower with Id="<< ttId.get_compact() <<" found.");
485  }
486  }

◆ dumpDigits()

void LVL1::L1CaloCells2TriggerTowers::dumpDigits ( const Identifier ttId) const
overridevirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 558 of file L1CaloCells2TriggerTowers.cxx.

558  {
559 
560  // if Tile
561  if (m_lvl1Helper->is_tile(ttId)) {
562  this->dumpTileDigits(ttId);
563 
564  //LArg cells
565  } else {
566  this->dumpLArDigits(ttId);
567  }
568  }

◆ dumpLArDigits() [1/2]

void LVL1::L1CaloCells2TriggerTowers::dumpLArDigits ( ) const
overridevirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 584 of file L1CaloCells2TriggerTowers.cxx.

584  {
585 
586  ATH_MSG_INFO( "dumping TT->LArDigits: "<< m_mTTLArDigits.size() );
587  std::map<unsigned int, std::vector<const LArDigit*> >::const_iterator it = m_mTTLArDigits.begin();
588  for(;it!=m_mTTLArDigits.end();++it) {
589  Identifier ttId(it->first);
590 
591  ATH_MSG_INFO( "Trigger Tower: " << ttId.get_compact() <<" - "<< m_lvl1Helper->pos_neg_z(ttId)<<" "<<m_lvl1Helper->sampling(ttId)<<" "<<m_lvl1Helper->region(ttId)<<" "<<m_lvl1Helper->eta(ttId)<<" "<<m_lvl1Helper->phi(ttId)<<" "<<m_lvl1Helper->layer(ttId)<<" - E: "<< this->energy(ttId) );
592  std::vector<const LArDigit*> vLArDigits = it->second;
593  this->dump(vLArDigits);
594  }
595  }

◆ dumpLArDigits() [2/2]

void LVL1::L1CaloCells2TriggerTowers::dumpLArDigits ( const Identifier ttId) const
overridevirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 571 of file L1CaloCells2TriggerTowers.cxx.

571  {
572 
573  std::map<unsigned int, std::vector<const LArDigit*> >::const_iterator it = m_mTTLArDigits.find(ttId.get_identifier32().get_compact());
574  if(it!=m_mTTLArDigits.end()) {
575 
576  ATH_MSG_INFO( "Trigger Tower: " << ttId.get_compact() <<" - "<< m_lvl1Helper->pos_neg_z(ttId)<<" "<<m_lvl1Helper->sampling(ttId)<<" "<<m_lvl1Helper->region(ttId)<<" "<<m_lvl1Helper->eta(ttId)<<" "<<m_lvl1Helper->phi(ttId)<<" "<<m_lvl1Helper->layer(ttId)<<" - E: "<< this->energy(ttId) );
577  std::vector<const LArDigit*> vLArDigits = it->second;
578  this->dump(vLArDigits);
579  } else {
580  ATH_MSG_INFO( "No trigger tower with Id="<< ttId.get_compact() <<" found." );
581  }
582  }

◆ dumpTileDigits() [1/2]

void LVL1::L1CaloCells2TriggerTowers::dumpTileDigits ( ) const
overridevirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 635 of file L1CaloCells2TriggerTowers.cxx.

635  {
636  ATH_MSG_INFO( "dumping TT->TileDigits: "<< m_mTTTileDigits.size() );
637  std::map<unsigned int, std::vector<const TileDigits*> >::const_iterator it = m_mTTTileDigits.begin();
638  for(;it!=m_mTTTileDigits.end();++it) {
639  Identifier ttId(it->first);
640 
641  ATH_MSG_INFO( "Trigger Tower: " << ttId.get_compact() <<" - "<< m_lvl1Helper->pos_neg_z(ttId)<<" "<<m_lvl1Helper->sampling(ttId)<<" "<<m_lvl1Helper->region(ttId)<<" "<<m_lvl1Helper->eta(ttId)<<" "<<m_lvl1Helper->phi(ttId)<<" "<<m_lvl1Helper->layer(ttId)<<" - E: "<< this->energy(ttId) );
642  std::vector<const TileDigits*> vTileDigits = it->second;
643  this->dump(vTileDigits);
644  }
645  }

◆ dumpTileDigits() [2/2]

void LVL1::L1CaloCells2TriggerTowers::dumpTileDigits ( const Identifier ttId) const
overridevirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 622 of file L1CaloCells2TriggerTowers.cxx.

622  {
623 
624  std::map<unsigned int, std::vector<const TileDigits*> >::const_iterator it = m_mTTTileDigits.find(ttId.get_identifier32().get_compact());
625  if(it!=m_mTTTileDigits.end()) {
626 
627  ATH_MSG_INFO( "Trigger Tower: " << ttId.get_compact() <<" - "<< m_lvl1Helper->pos_neg_z(ttId)<<" "<<m_lvl1Helper->sampling(ttId)<<" "<<m_lvl1Helper->region(ttId)<<" "<<m_lvl1Helper->eta(ttId)<<" "<<m_lvl1Helper->phi(ttId)<<" "<<m_lvl1Helper->layer(ttId)<<" - E: "<< this->energy(ttId) );
628  std::vector<const TileDigits*> vTileDigits = it->second;
629  this->dump(vTileDigits);
630  } else {
631  ATH_MSG_INFO( "No trigger tower with Id="<< ttId.get_compact() <<" found." );
632  }
633  }

◆ energy() [1/2]

float LVL1::L1CaloCells2TriggerTowers::energy ( const Identifier ttId) const
overridevirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 99 of file L1CaloCells2TriggerTowers.cxx.

99  {
100  return this->energy( this->caloCells(ttId) );
101  }

◆ energy() [2/2]

float LVL1::L1CaloCells2TriggerTowers::energy ( const std::vector< const CaloCell * > &  cells) const
overridevirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 86 of file L1CaloCells2TriggerTowers.cxx.

86  {
87  // mode : 0 == Energy, 1 == Et
88  unsigned int mode(0);
89  return this->calcEnergyOrEt(cells,mode);
90  }

◆ et() [1/2]

float LVL1::L1CaloCells2TriggerTowers::et ( const Identifier ttId) const
overridevirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 103 of file L1CaloCells2TriggerTowers.cxx.

103  {
104  return this->et( this->caloCells(ttId) );
105  }

◆ et() [2/2]

float LVL1::L1CaloCells2TriggerTowers::et ( const std::vector< const CaloCell * > &  cells) const
overridevirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 93 of file L1CaloCells2TriggerTowers.cxx.

93  {
94  // mode : 0 == Energy, 1 == Et
95  unsigned int mode(1);
96  return this->calcEnergyOrEt(cells,mode);
97  }

◆ 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

◆ finalize()

StatusCode LVL1::L1CaloCells2TriggerTowers::finalize ( )
overridevirtual

Definition at line 189 of file L1CaloCells2TriggerTowers.cxx.

189  {
190  return StatusCode::SUCCESS;
191  }

◆ getKey()

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

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

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

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

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

Definition at line 119 of file AsgTool.cxx.

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

◆ getName()

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

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

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

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

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

Definition at line 106 of file AsgTool.cxx.

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

◆ getProperty()

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

Get one of the tool's properties.

◆ initCaloCellsTriggerTowers()

bool LVL1::L1CaloCells2TriggerTowers::initCaloCellsTriggerTowers ( const CaloCellContainer cellContainer)
overridevirtual

Declare the interface that the class provides.

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 193 of file L1CaloCells2TriggerTowers.cxx.

193  {
194 
196 
197  this->resetCaloCells();
198 
199  std::vector<Identifier>::const_iterator it_towerId = m_lvl1Helper->tower_begin();
200  std::vector<Identifier>::const_iterator it_towerEnd = m_lvl1Helper->tower_end();
201 
202  // loop on online channels
203  for(; it_towerId!=it_towerEnd;++it_towerId){
204  m_mTTCaloCells[(*it_towerId).get_identifier32().get_compact()].reserve(60);
205  }
206 
207  CaloCellContainer::const_iterator itCell = cellContainer.begin();
208  for (;itCell!=cellContainer.end();++itCell){
209 
210  const CaloCell * caloCell= *itCell;
211  const Identifier invalidId(0);
212  Identifier ttId1;
213  Identifier ttId2;
214 
215  m_cellMatch->matchCell2Tower(**cabling, caloCell, ttId1, ttId2);
216 
217  if (ttId1 != invalidId) {
218  m_mTTCaloCells[ttId1.get_identifier32().get_compact()].push_back(caloCell);
219  }
220  if (ttId2 != invalidId) { // Tile D cells match to two towers
221  m_mTTCaloCells[ttId2.get_identifier32().get_compact()].push_back(caloCell);
222  }
223 
224  } // end loop on calo cells
225 
226  m_bInitialized = true;
227  return m_bInitialized;
228  }

◆ initialize()

StatusCode LVL1::L1CaloCells2TriggerTowers::initialize ( )
overridevirtual

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 144 of file L1CaloCells2TriggerTowers.cxx.

144  {
145  ATH_MSG_INFO("Initialize LVL1::L1CaloCells2TriggerTowers");
146 
147  ATH_CHECK( m_cellMatch.retrieve() );
148 
149  StatusCode sc;
150 
151  const CaloIdManager* caloMgr = nullptr;
152  sc = detStore()->retrieve(caloMgr);
153  if(sc.isFailure()){ATH_MSG_ERROR("Failed to load CaloMgr");return sc;}
154 
155  m_caloCellHelper = caloMgr->getCaloCell_ID();
156  if (!m_caloCellHelper) {
157  ATH_MSG_ERROR("Could not access CaloCell_ID helper");
158  return StatusCode::FAILURE;
159  }
160 
161  // Get LVL1 idhelper from detector store and add to mgr
162  const CaloLVL1_ID* lvl1_id = 0;
163  sc = detStore()->retrieve(lvl1_id, "CaloLVL1_ID");
164  if(sc.isFailure()){ATH_MSG_ERROR("Failed to get CaloLVL1_ID");return sc;}
165  m_lvl1Helper = (CaloLVL1_ID*) lvl1_id;
166 
167  sc = detStore()->retrieve(m_tileID, "TileID") ;
168  if(sc.isFailure()){ATH_MSG_ERROR("Failed to get Tile_ID");return sc;}
169 
170  //Retrieve cabling & tt services
171  ISvcLocator* svcLoc = Gaudi::svcLocator( );
172  IToolSvc* toolSvc;
173 
174  sc = svcLoc->service( "ToolSvc",toolSvc );
175  if(sc.isSuccess()) {
176  sc = toolSvc->retrieveTool("CaloTriggerTowerService",m_ttSvc);
177  if(sc.isFailure()){ATH_MSG_ERROR("Could not retrieve CaloTriggerTowerService Tool");return sc;}
178 
179  }
180  else{ATH_MSG_ERROR("Could not retrieve ToolSvc");return sc;}
181 
183 
185 
186  return sc;
187  }

◆ initLArDigitsTriggerTowers()

bool LVL1::L1CaloCells2TriggerTowers::initLArDigitsTriggerTowers ( const LArDigitContainer larDigitContainer)
overridevirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 230 of file L1CaloCells2TriggerTowers.cxx.

230  {
231 
232  this->resetLArDigits();
233 
235 
236  std::vector<Identifier>::const_iterator it_towerId = m_lvl1Helper->tower_begin();
237  std::vector<Identifier>::const_iterator it_towerEnd = m_lvl1Helper->tower_end();
238 
239  // loop on online channels
240  for(; it_towerId!=it_towerEnd;++it_towerId){
241  m_mTTLArDigits[(*it_towerId).get_identifier32().get_compact()].reserve(60);
242  }
243 
244  LArDigitContainer::const_iterator itLArDigit = larDigitContainer.begin();
245  for (;itLArDigit!=larDigitContainer.end();++itLArDigit){
246 
247  const LArDigit * larDigit= *itLArDigit;
248  const HWIdentifier larDigitChannelID = larDigit->channelID();
249 
250  if(cabling->isOnlineConnected(larDigitChannelID)) {
251  // convert HWID to ID
252  Identifier larDigitID = cabling->cnvToIdentifier(larDigitChannelID);
253 
254  //whichTTID ttId returns a layer_id, not a tower_id !
255  const Identifier layerId(m_ttSvc->whichTTID(larDigitID));
256 
257  // We are not calling here m_ttSvc->is_in_lvl1(cellId) but use directly its code for a performance reason
258  // By doing so we save a redundant and costly call to m_ttSvc->whichTTID()
259  bool lvl1(true);
260  if(m_caloCellHelper->is_em_barrel(larDigitID)) {
261  int samp=m_caloCellHelper->sampling(larDigitID);
262  if(samp==0) {
263  int eta=m_caloCellHelper->eta(larDigitID);
264  if(eta==60) {
265  lvl1 = false ;
266  }
267  }
268  } else {
269  if(m_lvl1Helper->is_hec(layerId)) {
270  int layer(m_lvl1Helper->layer(layerId));
271  if(layer == 3){
272  lvl1 = false ;
273  }
274  }
275  }
276 
277  if(lvl1) { //there are 1216 LArg Cells that are not part of lvl1
278  //whichTTID ttId returns a layer_id, not a tower_id !
279  // As we don't want the layer information embedded in the identifier, we recreate a tower Id
280  const Identifier ttId = m_lvl1Helper->tower_id( m_lvl1Helper->pos_neg_z(layerId), m_lvl1Helper->sampling(layerId), m_lvl1Helper->region(layerId), m_lvl1Helper->eta(layerId), m_lvl1Helper->phi(layerId));
281  m_mTTLArDigits[ttId.get_identifier32().get_compact()].push_back(larDigit);
282  }
283  }
284  } // end loop on calo cells
285 
288  }

◆ initTileDigitsTriggerTowers()

bool LVL1::L1CaloCells2TriggerTowers::initTileDigitsTriggerTowers ( const TileDigitsContainer tileDigitsContainer)
overridevirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 290 of file L1CaloCells2TriggerTowers.cxx.

290  {
291 
292  this->resetTileDigits();
293 
294 
295  std::vector<Identifier>::const_iterator it_towerId = m_lvl1Helper->tower_begin();
296  std::vector<Identifier>::const_iterator it_towerEnd = m_lvl1Helper->tower_end();
297 
298  // loop on online channels
299  for(; it_towerId!=it_towerEnd;++it_towerId){
300  m_mTTTileDigits[(*it_towerId).get_identifier32().get_compact()].reserve(8);
301  }
302 
305 
306  for(; collItr!=lastColl; ++collItr) {
307 
308  TileDigitsCollection::const_iterator digitsItr=(*collItr)->begin();
309  TileDigitsCollection::const_iterator lastDigits=(*collItr)->end();
310 
311  if (digitsItr!=lastDigits) {
312  for(; digitsItr!=lastDigits; ++digitsItr) {
313 
314  const TileDigits* tileDigit = *digitsItr;
315  const Identifier tileDigitID = tileDigit->cell_ID(); // return a cell_id (up to sampling info; pmt & adc set to 0)
316 
317  if (m_caloCellHelper->is_tile(tileDigitID)) {
318 
319  int section = m_tileID->section(tileDigitID);
320  int sample = m_tileID->sample(tileDigitID);
321 
322  // gap detector - D4 & C10 cells
323  // both pmt of D4 belong to the same TT
324  if(section==3 && (sample==1 || sample==2) ) {
325  Identifier ttId = m_tileCablingService->cell2tt_id(tileDigitID);
326  m_mTTTileDigits[ttId.get_identifier32().get_compact()].push_back(tileDigit);
327 
328  // barrel & ext. barrel - D cells
329  } else if( (section==1 || section==2) && sample==2) {
330 
331  // special treatment of D-cells
332  // each pmt is affected to a different trigger tower
333  // each D-CaloCell is then added to 2 TT. This must ne taken into account when computing the TT energy
334  // from the CaloCells by dividing the D-cell energy by 2.
335  Identifier lTTId = m_tileCablingService->pmt2tt_id(m_tileID->pmt_id(tileDigitID, 0));
336  m_mTTTileDigits[lTTId.get_identifier32().get_compact()].push_back(tileDigit);
337 
338  Identifier rTTId = m_tileCablingService->pmt2tt_id(m_tileID->pmt_id(tileDigitID, 1));
339  m_mTTTileDigits[rTTId.get_identifier32().get_compact()].push_back(tileDigit);
340 
341  // barrel & ext. barrel - A & BC cells
342  } else if( (section==1 || section==2) && (sample==0 || sample==1) ) {
343  Identifier ttId = m_tileCablingService->cell2tt_id(tileDigitID);
344  m_mTTTileDigits[ttId.get_identifier32().get_compact()].push_back(tileDigit);
345  }
346  }
347  }
348  }
349  }
350 
353 
354  return true;
355  }

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

◆ larDigits()

std::vector< const LArDigit * > LVL1::L1CaloCells2TriggerTowers::larDigits ( const Identifier ttId) const
overridevirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 381 of file L1CaloCells2TriggerTowers.cxx.

381  {
382 
383  std::map<unsigned int, std::vector<const LArDigit*> >::const_iterator it = m_mTTLArDigits.find(ttId.get_identifier32().get_compact());
384  if(it!=m_mTTLArDigits.end()) {
385  return it->second;
386 
387  } else {
388  return std::vector<const LArDigit*>();
389  }
390  }

◆ layerNames() [1/2]

int LVL1::L1CaloCells2TriggerTowers::layerNames ( const CaloCell cell) const
overridevirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 81 of file L1CaloCells2TriggerTowers.cxx.

81  {
82  return m_caloCellHelper->calo_sample( cell->ID() );
83  }

◆ layerNames() [2/2]

std::vector< int > LVL1::L1CaloCells2TriggerTowers::layerNames ( const Identifier ttID) const
overridevirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 62 of file L1CaloCells2TriggerTowers.cxx.

62  {
63  const std::vector<const CaloCell*> vCells(this->caloCells(ttId));
64  std::vector<int> layers;
65  int caloSampleInUse(-10); // start this varibale with unrealistic value
66  if(vCells.size()!=0) {
67  std::vector<const CaloCell*>::const_iterator itCells = vCells.begin();
68  for(;itCells!=vCells.end();++itCells) {
69  Identifier Id((*itCells)->ID());
70 
71  int currentCaloSample = m_caloCellHelper->calo_sample(Id);
72  if( caloSampleInUse != currentCaloSample ){
73  layers.push_back(currentCaloSample);
74  caloSampleInUse = currentCaloSample;
75  }
76  }
77  }
78  return layers;
79  }

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

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

Definition at line 27 of file AthCommonMsg.h.

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

◆ msg_level_name()

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

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

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

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

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

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

Definition at line 101 of file AsgTool.cxx.

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

◆ msgLvl()

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

Definition at line 30 of file AthCommonMsg.h.

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

◆ operator=()

L1CaloCells2TriggerTowers& LVL1::L1CaloCells2TriggerTowers::operator= ( const L1CaloCells2TriggerTowers 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.

◆ print() [1/2]

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

◆ print() [2/2]

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

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

◆ reset()

void LVL1::L1CaloCells2TriggerTowers::reset ( )
overrideprotectedvirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 359 of file L1CaloCells2TriggerTowers.cxx.

359  {
360  this->resetCaloCells();
361  this->resetLArDigits();
362  this->resetTileDigits();
363  }

◆ resetCaloCells()

void LVL1::L1CaloCells2TriggerTowers::resetCaloCells ( )
overrideprotectedvirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 365 of file L1CaloCells2TriggerTowers.cxx.

365  {
366  m_bInitialized = false;
367  m_mTTCaloCells.clear();
368  }

◆ resetLArDigits()

void LVL1::L1CaloCells2TriggerTowers::resetLArDigits ( )
overrideprotectedvirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 370 of file L1CaloCells2TriggerTowers.cxx.

370  {
371  m_bLArDigitsInitialized = false;
372  m_mTTLArDigits.clear();
373  }

◆ resetTileDigits()

void LVL1::L1CaloCells2TriggerTowers::resetTileDigits ( )
overrideprotectedvirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 375 of file L1CaloCells2TriggerTowers.cxx.

375  {
376  m_bTileDigitsInitialized = false;
377  m_mTTTileDigits.clear();
378  }

◆ samples()

std::vector< double > LVL1::L1CaloCells2TriggerTowers::samples ( const Identifier ttId) const
overridevirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 405 of file L1CaloCells2TriggerTowers.cxx.

405  {
406 
407  if (m_lvl1Helper->is_tile(ttId)) {
408 
409  std::vector<const TileDigits*> vTileDigits(this->tileDigits(ttId));
410 
411  std::vector<double> vADCSum;
412  int nSum=0;
413 
414  std::vector<const TileDigits*>::const_iterator it_digit = vTileDigits.begin();
415  for(;it_digit!=vTileDigits.end();++it_digit) {
416 
417  std::vector<double> vADC((*it_digit)->get_digits());
418 
419  int adcSize(vADC.size());
420  if(vADCSum.size()==0) vADCSum.resize(adcSize);
421 
422  for(int i=0;i<adcSize;++i) {
423  vADCSum[i]+=vADC[i];
424  }
425  ++nSum;
426  }
427 
428  std::vector<double>::iterator it_adc = vADCSum.begin();
429  if(nSum > 0){
430  const double inv_nSum = 1. / static_cast<double> (nSum);
431  for(;it_adc!=vADCSum.end();++it_adc){
432  (*it_adc) *= inv_nSum;
433  }
434  }
435 
436  return vADCSum;
437 
438  //LArg cells
439  } else {
440  //log<<MSG::INFO<<"is_lar"<<endmsg;
441  std::vector<const LArDigit*> vLArDigits(this->larDigits(ttId));
442 
443  std::vector<double> vADCSum;
444  int nSum=0;
445 
446  std::vector<const LArDigit*>::const_iterator it_digit = vLArDigits.begin();
447  for(;it_digit!=vLArDigits.end();++it_digit) {
448 
449  std::vector<short> vADC((*it_digit)->samples());
450 
451  int adcSize(vADC.size());
452  if(vADCSum.size()==0) vADCSum.resize(adcSize);
453 
454  for(int i=0;i<adcSize;++i) {
455  vADCSum[i]+=vADC[i];
456  }
457  ++nSum;
458  }
459 
460  std::vector<double>::iterator it_adc = vADCSum.begin();
461  if(nSum > 0){
462  const double inv_nSum = 1. / static_cast<double> (nSum);
463  for(;it_adc!=vADCSum.end();++it_adc){
464  (*it_adc) *= inv_nSum;
465  }
466  }
467 
468  return vADCSum;
469  }
470  }

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

◆ tileDigits()

std::vector< const TileDigits * > LVL1::L1CaloCells2TriggerTowers::tileDigits ( const Identifier ttId) const
overridevirtual

Implements LVL1::IL1CaloCells2TriggerTowers.

Definition at line 392 of file L1CaloCells2TriggerTowers.cxx.

392  {
393 
394  std::map<unsigned int, std::vector<const TileDigits*> >::const_iterator it = m_mTTTileDigits.find(ttId.get_identifier32().get_compact());
395  if(it!=m_mTTTileDigits.end()) {
396  return it->second;
397 
398  } else {
399  return std::vector<const TileDigits*>();
400  }
401  }

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

bool LVL1::L1CaloCells2TriggerTowers::m_bInitialized
private

Definition at line 132 of file L1CaloCells2TriggerTowers.h.

◆ m_bLArDigitsInitialized

bool LVL1::L1CaloCells2TriggerTowers::m_bLArDigitsInitialized
private

Definition at line 133 of file L1CaloCells2TriggerTowers.h.

◆ m_bTileDigitsInitialized

bool LVL1::L1CaloCells2TriggerTowers::m_bTileDigitsInitialized
private

Definition at line 134 of file L1CaloCells2TriggerTowers.h.

◆ m_cablingKey

SG::ReadCondHandleKey<LArOnOffIdMapping> LVL1::L1CaloCells2TriggerTowers::m_cablingKey {this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"}
private

Definition at line 125 of file L1CaloCells2TriggerTowers.h.

◆ m_caloCellHelper

const CaloCell_ID* LVL1::L1CaloCells2TriggerTowers::m_caloCellHelper
private

Definition at line 122 of file L1CaloCells2TriggerTowers.h.

◆ m_cellMatch

ToolHandle<LVL1::IL1CaloMatchCell2Tower> LVL1::L1CaloCells2TriggerTowers::m_cellMatch { this, "L1CaloMatchCell2Tower", "LVL1::L1CaloMatchCell2Tower", "L1CaloMatchCell2Tower" }
private

Definition at line 127 of file L1CaloCells2TriggerTowers.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_lvl1Helper

const CaloLVL1_ID* LVL1::L1CaloCells2TriggerTowers::m_lvl1Helper
private

Definition at line 120 of file L1CaloCells2TriggerTowers.h.

◆ m_mTTCaloCells

std::map<unsigned int, std::vector<const CaloCell*> > LVL1::L1CaloCells2TriggerTowers::m_mTTCaloCells
private

Definition at line 137 of file L1CaloCells2TriggerTowers.h.

◆ m_mTTLArDigits

std::map<unsigned int, std::vector<const LArDigit*> > LVL1::L1CaloCells2TriggerTowers::m_mTTLArDigits
private

Definition at line 138 of file L1CaloCells2TriggerTowers.h.

◆ m_mTTTileDigits

std::map<unsigned int, std::vector<const TileDigits*> > LVL1::L1CaloCells2TriggerTowers::m_mTTTileDigits
private

Definition at line 139 of file L1CaloCells2TriggerTowers.h.

◆ m_tileCablingService

const TileCablingService* LVL1::L1CaloCells2TriggerTowers::m_tileCablingService
private

Definition at line 129 of file L1CaloCells2TriggerTowers.h.

◆ m_tileID

const TileID* LVL1::L1CaloCells2TriggerTowers::m_tileID
private

Definition at line 121 of file L1CaloCells2TriggerTowers.h.

◆ m_ttSvc

CaloTriggerTowerService* LVL1::L1CaloCells2TriggerTowers::m_ttSvc
private

Definition at line 130 of file L1CaloCells2TriggerTowers.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
RunTileCalibRec.cells
cells
Definition: RunTileCalibRec.py:271
LVL1::L1CaloCells2TriggerTowers::m_tileID
const TileID * m_tileID
Definition: L1CaloCells2TriggerTowers.h:121
LVL1::L1CaloCells2TriggerTowers::m_mTTCaloCells
std::map< unsigned int, std::vector< const CaloCell * > > m_mTTCaloCells
Definition: L1CaloCells2TriggerTowers.h:137
et
Extra patterns decribing particle interation process.
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
CaloCell_Base_ID::region
int region(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
StateLessPT_NewConfig.proxy
proxy
Definition: StateLessPT_NewConfig.py:392
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
CaloCell_Base_ID::tower
int tower(const Identifier id) const
Tile field values (NOT_VALID == invalid request)
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
LVL1::L1CaloCells2TriggerTowers::m_lvl1Helper
const CaloLVL1_ID * m_lvl1Helper
Definition: L1CaloCells2TriggerTowers.h:120
TileCablingService::pmt2tt_id
Identifier pmt2tt_id(const Identifier &id) const
Definition: TileCablingService.cxx:375
TileCablingService::getInstance
static const TileCablingService * getInstance()
get pointer to service instance
Definition: TileCablingService.cxx:24
LVL1::L1CaloCells2TriggerTowers::tileDigits
virtual std::vector< const TileDigits * > tileDigits(const Identifier &ttId) const override
Definition: L1CaloCells2TriggerTowers.cxx:392
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
CaloCell_Base_ID::pos_neg
int pos_neg(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
LVL1::L1CaloCells2TriggerTowers::dumpTileDigits
virtual void dumpTileDigits() const override
Definition: L1CaloCells2TriggerTowers.cxx:635
LVL1::L1CaloCells2TriggerTowers::resetCaloCells
virtual void resetCaloCells() override
Definition: L1CaloCells2TriggerTowers.cxx:365
ReadCellNoiseFromCool.cabling
cabling
Definition: ReadCellNoiseFromCool.py:154
module_driven_slicing.layers
layers
Definition: module_driven_slicing.py:114
LArDigit::samples
const std::vector< short > & samples() const
Definition: LArDigit.h:78
LVL1::L1CaloCells2TriggerTowers::resetLArDigits
virtual void resetLArDigits() override
Definition: L1CaloCells2TriggerTowers.cxx:370
skel.it
it
Definition: skel.GENtoEVGEN.py:423
Tile_Base_ID::sample
int sample(const Identifier &id) const
Definition: Tile_Base_ID.cxx:171
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
CaloLVL1_ID::region
int region(const Identifier id) const
return region according to :
Definition: CaloLVL1_ID.h:647
LVL1::L1CaloCells2TriggerTowers::m_mTTLArDigits
std::map< unsigned int, std::vector< const LArDigit * > > m_mTTLArDigits
Definition: L1CaloCells2TriggerTowers.h:138
LVL1::L1CaloCells2TriggerTowers::m_bLArDigitsInitialized
bool m_bLArDigitsInitialized
Definition: L1CaloCells2TriggerTowers.h:133
CaloCell_Base_ID::calo_sample
int calo_sample(const Identifier id) const
returns an int taken from Sampling enum and describing the subCalo to which the Id belongs.
Definition: CaloCell_Base_ID.cxx:141
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
CaloCell_Base_ID::is_tile
bool is_tile(const Identifier id) const
test if the id belongs to the Tiles
CaloCell_Base_ID::module
int module(const Identifier id) const
Tile field values (NOT_VALID == invalid request)
HWIdentifier
Definition: HWIdentifier.h:13
LVL1::L1CaloCells2TriggerTowers::m_caloCellHelper
const CaloCell_ID * m_caloCellHelper
Definition: L1CaloCells2TriggerTowers.h:122
CaloLVL1_ID::tower_end
id_iterator tower_end() const
end iterator over towers
Definition: CaloLVL1_ID.h:603
CaloLVL1_ID::layer
int layer(const Identifier id) const
return layer according to :
Definition: CaloLVL1_ID.h:665
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
CaloLVL1_ID::is_hec
bool is_hec(const Identifier id) const
Test wether given tower or layer is part of the HEC.
Definition: CaloLVL1_ID.h:703
CaloTriggerTowerService::whichTTID
Identifier whichTTID(const Identifier &id) const
return the offline id (CaloLVL1_ID) of the TT to which a cell id (CaloCell_ID) belongs The call is ...
Definition: CaloTriggerTowerService.cxx:389
TRT::Hit::side
@ side
Definition: HitInfo.h:83
CaloLVL1_ID::phi
int phi(const Identifier id) const
return phi according to :
Definition: CaloLVL1_ID.h:659
python.PyAthena.module
module
Definition: PyAthena.py:134
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
TileDigits::get_digits
std::vector< double > get_digits(void) const
Definition: TileDigits.h:65
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
CaloIdManager
This class initializes the Calo (LAr and Tile) offline identifiers.
Definition: CaloIdManager.h:45
Identifier32::get_compact
value_type get_compact(void) const
Get the compact id.
Definition: Identifier32.h:171
FullCPAlgorithmsTest_eljob.sample
sample
Definition: FullCPAlgorithmsTest_eljob.py:100
CaloCell_Base_ID::sample
int sample(const Identifier id) const
Tile field values (NOT_VALID == invalid request)
LArDigit
Liquid Argon digit base class.
Definition: LArDigit.h:25
lumiFormat.i
int i
Definition: lumiFormat.py:92
LVL1::L1CaloCells2TriggerTowers::energy
virtual float energy(const std::vector< const CaloCell * > &cells) const override
Definition: L1CaloCells2TriggerTowers.cxx:86
CaloCell_Base_ID::is_fcal
bool is_fcal(const Identifier id) const
test if the id belongs to the FCAL - true also for MiniFCAL
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
CaloCell_Base_ID::sampling
int sampling(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
LVL1::L1CaloCells2TriggerTowers::resetTileDigits
virtual void resetTileDigits() override
Definition: L1CaloCells2TriggerTowers.cxx:375
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
LVL1::L1CaloCells2TriggerTowers::dump
virtual void dump(const std::vector< const CaloCell * > &vCells) const override
Definition: L1CaloCells2TriggerTowers.cxx:503
LVL1::L1CaloCells2TriggerTowers::dumpLArDigits
virtual void dumpLArDigits() const override
Definition: L1CaloCells2TriggerTowers.cxx:584
CaloCell_Base_ID::eta
int eta(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
TileRawData::cell_ID
Identifier cell_ID(void) const
Definition: TileRawData.cxx:61
python.xAODType.dummy
dummy
Definition: xAODType.py:4
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
Preparation.mode
mode
Definition: Preparation.py:95
MSG::name
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
Definition: MsgLevel.cxx:19
CaloJiveXML_DataTypes.tileDigitsContainer
string tileDigitsContainer
Definition: CaloJiveXML_DataTypes.py:11
IdentifiableContainerMT::const_iterator
Definition: IdentifiableContainerMT.h:82
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
LVL1::L1CaloCells2TriggerTowers::m_mTTTileDigits
std::map< unsigned int, std::vector< const TileDigits * > > m_mTTTileDigits
Definition: L1CaloCells2TriggerTowers.h:139
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
LVL1::L1CaloCells2TriggerTowers::caloCells
virtual std::vector< const CaloCell * > caloCells(const Identifier &ttId) const override
Definition: L1CaloCells2TriggerTowers.cxx:23
CaloCell_Base_ID::is_em_barrel
bool is_em_barrel(const Identifier id) const
test if the id belongs to the EM barrel
CaloLVL1_ID
Helper class for offline TT identifiers.
Definition: CaloLVL1_ID.h:66
LVL1::L1CaloCells2TriggerTowers::m_cellMatch
ToolHandle< LVL1::IL1CaloMatchCell2Tower > m_cellMatch
Definition: L1CaloCells2TriggerTowers.h:128
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
TileDigits
Definition: TileDigits.h:30
CaloIdManager::getCaloCell_ID
const CaloCell_ID * getCaloCell_ID(void) const
Access to IdHelper.
Definition: CaloIdManager.cxx:63
CaloLVL1_ID::eta
int eta(const Identifier id) const
return eta according to :
Definition: CaloLVL1_ID.h:653
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
CaloCell_Base_ID::phi
int phi(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
TileRawData::identify
Identifier identify(void) const
Definition: TileRawData.h:52
CaloLVL1_ID::pos_neg_z
int pos_neg_z(const Identifier id) const
return pos_neg_z according to :
Definition: CaloLVL1_ID.h:635
LVL1::L1CaloCells2TriggerTowers::m_cablingKey
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
Definition: L1CaloCells2TriggerTowers.h:126
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
LVL1::L1CaloCells2TriggerTowers::m_bInitialized
bool m_bInitialized
Definition: L1CaloCells2TriggerTowers.h:132
a
TList * a
Definition: liststreamerinfos.cxx:10
CaloCell_Base_ID::side
int side(const Identifier id) const
Tile field values (NOT_VALID == invalid request)
h
Identifier::get_compact
value_type get_compact(void) const
Get the compact id.
CaloCell
Data object for each calorimeter readout cell.
Definition: CaloCell.h:57
LVL1::L1CaloCells2TriggerTowers::m_tileCablingService
const TileCablingService * m_tileCablingService
Definition: L1CaloCells2TriggerTowers.h:129
Tile_Base_ID::pmt_id
Identifier pmt_id(const Identifier &any_id) const
Definition: Tile_Base_ID.cxx:640
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
LVL1::L1CaloCells2TriggerTowers::et
virtual float et(const std::vector< const CaloCell * > &cells) const override
Definition: L1CaloCells2TriggerTowers.cxx:93
LVL1::L1CaloCells2TriggerTowers::m_ttSvc
CaloTriggerTowerService * m_ttSvc
Definition: L1CaloCells2TriggerTowers.h:130
CaloLVL1_ID::tower_begin
id_iterator tower_begin() const
begin iterator over towers
Definition: CaloLVL1_ID.h:597
CaloLVL1_ID::sampling
int sampling(const Identifier id) const
return sampling according to :
Definition: CaloLVL1_ID.h:641
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
LArDigit::channelID
const HWIdentifier & channelID() const
Definition: LArDigit.h:69
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
Tile_Base_ID::section
int section(const Identifier &id) const
Definition: Tile_Base_ID.cxx:147
Identifier::get_identifier32
Identifier32 get_identifier32(void) const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
section
void section(const std::string &sec)
Definition: TestTriggerMenuAccess.cxx:22
SG::DataProxy
Definition: DataProxy.h:44
CaloLVL1_ID::tower_id
Identifier tower_id(int pos_neg_z, int sampling, int region, int eta, int phi) const
build a tower identifier
Definition: CaloLVL1_ID.h:429
CaloLVL1_ID::is_tile
bool is_tile(const Identifier id) const
Test wether given tower or layer is part of the Tile Calorimeter.
Definition: CaloLVL1_ID.h:672
LVL1::L1CaloCells2TriggerTowers::larDigits
virtual std::vector< const LArDigit * > larDigits(const Identifier &ttId) const override
Definition: L1CaloCells2TriggerTowers.cxx:381
GeV
#define GeV
Definition: CaloTransverseBalanceVecMon.cxx:30
TileCablingService::cell2tt_id
Identifier cell2tt_id(const Identifier &id) const
Definition: TileCablingService.cxx:368
LVL1::L1CaloCells2TriggerTowers::calcEnergyOrEt
virtual float calcEnergyOrEt(const std::vector< const CaloCell * > &cells, const unsigned int mode) const override
Definition: L1CaloCells2TriggerTowers.cxx:108
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
LVL1::L1CaloCells2TriggerTowers::m_bTileDigitsInitialized
bool m_bTileDigitsInitialized
Definition: L1CaloCells2TriggerTowers.h:134
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
fitman.k
k
Definition: fitman.py:528
python.handimod.cc
int cc
Definition: handimod.py:523
CaloCell_Base_ID::section
int section(const Identifier id) const
Tile field values (NOT_VALID == invalid request)