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::jFEXForwardJetsAlgo Class Reference

#include <jFEXForwardJetsAlgo.h>

Inheritance diagram for LVL1::jFEXForwardJetsAlgo:
Collaboration diagram for LVL1::jFEXForwardJetsAlgo:

Public Member Functions

 jFEXForwardJetsAlgo (const std::string &type, const std::string &name, const IInterface *parent)
 Constructors. More...
 
virtual StatusCode initialize () override
 standard Athena-Algorithm method More...
 
virtual ~jFEXForwardJetsAlgo ()
 Destructor. More...
 
virtual StatusCode safetyTest () override
 
virtual StatusCode reset () override
 
virtual void setup (int inputTable[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width], int jfex) override
 
virtual std::unordered_map< int, jFEXForwardJetsInfoFcalJetsTowerIDLists (int seedThreshold) override
 
virtual std::unordered_map< int, jFEXForwardJetsInfocalculateJetETs (int seedThreshold) override
 
virtual void setFPGAEnergy (std::unordered_map< int, std::vector< int > > et_map) override
 
virtual int SumEtSeed (unsigned int TTID) const override
 
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, V, H > &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 ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

StatusCode ReadfromFile (const std::string &, std::unordered_map< unsigned int, std::vector< unsigned int > > &) const
 
int getEt (unsigned int TTID) const
 
bool isLM (unsigned int TTID) const
 
bool isLMabove (unsigned int TTID) const
 
bool getTTowerSat (unsigned int TTID)
 
unsigned int elementsCorr (unsigned int TTID) const
 
bool condCorr (unsigned int TTID) const
 
unsigned int elementsCorr2 (unsigned int TTID) const
 
bool condCorr2 (unsigned int TTID) const
 
std::array< float, 2 > globalEtaPhi (int TTID)
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

SG::ReadHandleKey< LVL1::jTowerContainerm_jFEXForwardJetsAlgo_jTowerContainerKey {this, "MyjTowers", "jTowerContainer", "Input container for jTowers"}
 
SG::ReadHandle< jTowerContainerm_jTowerContainer
 
int m_jFEXalgoTowerID [FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width]
 
std::unordered_map< int, std::vector< int > > m_map_Etvalues
 
int m_lowerEM_eta
 
int m_upperEM_eta
 
int m_jfex
 
bool m_storeEnergyRingTTIDs = true
 
Gaudi::Property< std::string > m_SeedRingStr {this, "SeedRingMap", "Run3L1CaloSimulation/JetMaps/2024_04_09/jFEX_FWD_seed.dat" , "Contains Trigger tower in seed"}
 
Gaudi::Property< std::string > m_1stRingStr {this, "Energy1stRingMap" , "Run3L1CaloSimulation/JetMaps/2024_04_09/jFEX_FWD_1stRing.dat" , "Contains Trigger tower in 1st Energy ring"}
 
Gaudi::Property< std::string > m_2ndRingStr {this, "Energy2ndRingMap" , "Run3L1CaloSimulation/JetMaps/2024_04_09/jFEX_FWD_2ndRing.dat" , "Contains Trigger tower in 2nd energy ring"}
 
Gaudi::Property< std::string > m_CorrStr {this, "CorrMap" , "Run3L1CaloSimulation/JetMaps/2024_04_09/jFEX_FWD_corr.dat" , "Contains Trigger tower to correct displacement (greater than)"}
 
Gaudi::Property< std::string > m_Corr2Str {this, "Corr2Map" , "Run3L1CaloSimulation/JetMaps/2024_04_09/jFEX_FWD_corr2.dat" , "Contains Trigger tower to correct displacement (greater or equal than)"}
 
Gaudi::Property< std::string > m_SearchGStr {this, "SearchGMap" , "Run3L1CaloSimulation/JetMaps/2024_04_09/jFEX_FWD_searchG.dat" , "Contains Trigger tower to find local max (greater than)"}
 
Gaudi::Property< std::string > m_SearchGeStr {this, "SearchGeMap", "Run3L1CaloSimulation/JetMaps/2024_04_09/jFEX_FWD_searchGe.dat", "Contains Trigger tower to find local max (greater or equal than)"}
 
std::unordered_map< unsigned int, std::vector< unsigned int > > m_SeedRingMap
 
std::unordered_map< unsigned int, std::vector< unsigned int > > m_1stRingMap
 
std::unordered_map< unsigned int, std::vector< unsigned int > > m_2ndRingMap
 
std::unordered_map< unsigned int, std::vector< unsigned int > > m_CorrMap
 
std::unordered_map< unsigned int, std::vector< unsigned int > > m_Corr2Map
 
std::unordered_map< unsigned int, std::vector< unsigned int > > m_SearchGMap
 
std::unordered_map< unsigned int, std::vector< unsigned int > > m_SearchGeMap
 
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 23 of file jFEXForwardJetsAlgo.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

◆ jFEXForwardJetsAlgo()

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

Constructors.

Definition at line 26 of file jFEXForwardJetsAlgo.cxx.

26  :
28  {
29  declareInterface<IjFEXForwardJetsAlgo>(this);
30  }

◆ ~jFEXForwardJetsAlgo()

LVL1::jFEXForwardJetsAlgo::~jFEXForwardJetsAlgo ( )
virtual

Destructor.

Definition at line 33 of file jFEXForwardJetsAlgo.cxx.

34 {
35 }

Member Function Documentation

◆ calculateJetETs()

std::unordered_map< int, jFEXForwardJetsInfo > LVL1::jFEXForwardJetsAlgo::calculateJetETs ( int  seedThreshold)
overridevirtual

Implements LVL1::IjFEXForwardJetsAlgo.

Definition at line 415 of file jFEXForwardJetsAlgo.cxx.

415  {
416 
417  std::unordered_map<int, jFEXForwardJetsInfo> localMaximas = FcalJetsTowerIDLists(seedThreshold);
418  return localMaximas;
419 }

◆ condCorr()

bool LVL1::jFEXForwardJetsAlgo::condCorr ( unsigned int  TTID) const
private

Definition at line 349 of file jFEXForwardJetsAlgo.cxx.

349  {
350 
351  // Exists the jTower in the correction tower map?
352  auto it_seed_map = m_CorrMap.find(TTID);
353  if(it_seed_map == m_CorrMap.end()) {
354  ATH_MSG_ERROR("Could not find TT" << TTID << " in the condition (greater than) for jets file.");
355  return false;
356  }
357 
358  // If there is no TT to check then the Et of central is always bigger :D
359  if( (it_seed_map->second).size() == 0){
360  ATH_MSG_ERROR("Elements=0 in condCorr function for element"<< TTID <<". This should never happend. REPORT IT!");
361  return true;
362  }
363 
364  int centralEt = getEt(TTID);
365  int centralSeed = SumEtSeed(TTID);
366  for (const auto& Gtt : it_seed_map->second ){
367  //Checking if central Et is always strictly greater than the previous TT Et
368  int tmpEt = getEt(Gtt);
369  int tmpSeedEt = SumEtSeed(Gtt);
370  if( !(centralEt > tmpEt && centralSeed >= tmpSeedEt ) ){
371  return false;
372  }
373  }
374 
375  return true;
376 
377 }

◆ condCorr2()

bool LVL1::jFEXForwardJetsAlgo::condCorr2 ( unsigned int  TTID) const
private

Definition at line 389 of file jFEXForwardJetsAlgo.cxx.

389  {
390 
391  // Exists the jTower in the correction tower map?
392  auto it_seed_map = m_Corr2Map.find(TTID);
393  if(it_seed_map == m_Corr2Map.end()) {
394  ATH_MSG_ERROR("Could not find TT" << TTID << " in the correction (greater or equal) file.");
395  return false;
396  }
397 
398  int centralEt = getEt(TTID);
399  int centralSeed = SumEtSeed(TTID);
400 
401  for (const auto& Gtt : it_seed_map->second ){
402  //Checking if central Et is always greater or equal than the previous TT Et
403  int tmpEt = getEt(Gtt);
404 
405  //(central >= 1stElem or seedcentral > seed1stElem) and ( central >= 2stElem or seedcentral > seed2stElem)
406  if( !( centralEt >= tmpEt || centralSeed > SumEtSeed(Gtt) ) ){
407  return false;
408  }
409  }
410 
411  return true;
412 
413 }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T, V, H > &  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, V, H > &  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, V, H > &  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, V, H > &  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, V, H > &  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; }

◆ elementsCorr()

unsigned int LVL1::jFEXForwardJetsAlgo::elementsCorr ( unsigned int  TTID) const
private

Definition at line 339 of file jFEXForwardJetsAlgo.cxx.

339  {
340  auto it_seed_map = m_CorrMap.find(TTID);
341  if(it_seed_map == m_CorrMap.end()) {
342  ATH_MSG_ERROR("Could not find TT" << TTID << " in the condition (greater than) for jets file.");
343  return 0;
344  }
345 
346  return (it_seed_map->second).size();
347 }

◆ elementsCorr2()

unsigned int LVL1::jFEXForwardJetsAlgo::elementsCorr2 ( unsigned int  TTID) const
private

Definition at line 379 of file jFEXForwardJetsAlgo.cxx.

379  {
380  auto it_seed_map = m_Corr2Map.find(TTID);
381  if(it_seed_map == m_Corr2Map.end()) {
382  ATH_MSG_ERROR("Could not find TT" << TTID << " in the condition (greater than) for jets file.");
383  return 0;
384  }
385 
386  return (it_seed_map->second).size();
387 }

◆ 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

◆ FcalJetsTowerIDLists()

std::unordered_map< int, jFEXForwardJetsInfo > LVL1::jFEXForwardJetsAlgo::FcalJetsTowerIDLists ( int  seedThreshold)
overridevirtual

Implements LVL1::IjFEXForwardJetsAlgo.

Definition at line 98 of file jFEXForwardJetsAlgo.cxx.

98  {
99 
100  std::unordered_map<int, jFEXForwardJetsInfo> FCALJetTowerIDLists;
101 
102  std::vector<int> lower_centre_neta;
103  std::vector<int> upper_centre_neta;
104  m_lowerEM_eta = 0;
105  m_upperEM_eta = 0;
106 
107  //STEP 1: check if we are in module 0 or 5 and assign corrrect eta FEXAlgoSpace parameters
108  if(m_jfex == 0) {
109  //Module 0
114  }
115  else {
116  //Module 5
119 
122 
123  }
124 
125 
126 
127  //STEP 2: define phi FEXAlgoSpace parameters
130 
131  //STEP 3: loop over different EM/FCAL0 eta phi core fpga regions. These are potential central trigger towers for jets
132  for(int myCounter = 0; myCounter<3; myCounter++) {
133  for(int centre_nphi = lower_centre_nphi[myCounter]; centre_nphi < upper_centre_nphi[myCounter]; centre_nphi++) {
134  for(int centre_neta = lower_centre_neta[myCounter]; centre_neta < upper_centre_neta[myCounter]; centre_neta++) {
135 
136  //STEP 4: define TTID which will be the key for class in map
137  int myTTIDKey = m_jFEXalgoTowerID[centre_nphi][centre_neta];
138 
139  //STEP 5: ignore when tower ID is zero. Should not happend though
140  if(myTTIDKey == 0) {
141  continue;
142  }
143  bool iAmJet = false;
144  bool bool_isLM = false;
145  bool bool_condCorr2 = false;
146  bool bool_isLMabove = false;
147  bool bool_condCorr = false;
148 
149  //Know which condition should satisfy
150  unsigned int elemCorr = elementsCorr(myTTIDKey);
151  unsigned int elemCorr2 = elementsCorr2(myTTIDKey);
152 
153  if(elemCorr == 0 and elemCorr2 == 0){
154  bool_isLM = isLM(myTTIDKey);
155  iAmJet = bool_isLM;
156  }
157  else if(elemCorr == 0 and elemCorr2 > 0){
158  bool_isLM = isLM(myTTIDKey);
159  bool_condCorr2 = condCorr2(myTTIDKey);
160  iAmJet = bool_isLM and bool_condCorr2;
161  }
162  else if(elemCorr > 0 and elemCorr2 == 0){
163  bool_isLM = isLM(myTTIDKey);
164  bool_isLMabove = isLMabove(myTTIDKey);
165  bool_condCorr = condCorr(myTTIDKey);
166  iAmJet = bool_isLM or (bool_isLMabove and bool_condCorr);
167  }
168  else if(elemCorr > 0 and elemCorr2 > 0){
169  bool_isLM = isLM(myTTIDKey);
170  bool_condCorr2 = condCorr2(myTTIDKey);
171  bool_isLMabove = isLMabove(myTTIDKey);
172  bool_condCorr = condCorr(myTTIDKey);
173  iAmJet = (bool_isLM and bool_condCorr2) or (bool_isLMabove and bool_condCorr);
174  }
175 
176  //veto seeds below seed threshold
177  if (SumEtSeed(myTTIDKey) <= seedThreshold){
178  iAmJet = false;
179  }
180 
181  if(iAmJet){
182 
183  //STEP 6: define class
184  jFEXForwardJetsInfo TriggerTowerInformation;
185 
186  TriggerTowerInformation.setCentreLocalTTPhi(centre_nphi);
187  TriggerTowerInformation.setCentreLocalTTEta(centre_neta);
188 
189  const auto [centreTT_eta,centreTT_phi] = globalEtaPhi(myTTIDKey);
190  TriggerTowerInformation.setCentreTTPhi(centreTT_phi);
191  TriggerTowerInformation.setCentreTTEta(centreTT_eta);
192 
193 
194  //STEP 7: Filling energies
195  int saturation = 0;
196  // Seed
197  auto it_seed_map = m_SeedRingMap.find(myTTIDKey);
198  if(it_seed_map == m_SeedRingMap.end()) {
199  ATH_MSG_ERROR("Could not find TT" << myTTIDKey << " in Jet seed file.");
200  }
201 
202  for(const auto& seedTT : it_seed_map->second){
203  TriggerTowerInformation.includeTTinSeed(seedTT);
204  saturation = saturation || getTTowerSat(seedTT);
205  TriggerTowerInformation.addToSeedET(getEt(seedTT));
206  }
207 
208  // 1st Energy Ring!
209  it_seed_map = m_1stRingMap.find(myTTIDKey);
210  if(it_seed_map == m_1stRingMap.end()) {
211  ATH_MSG_ERROR("Could not find TT" << myTTIDKey << " in 1st Energy ring file.");
212  }
213 
214  for(const auto& firstER_TT : it_seed_map->second){
215  TriggerTowerInformation.addToFirstEnergyRingET(getEt(firstER_TT));
216  saturation = saturation || getTTowerSat(firstER_TT);
218  TriggerTowerInformation.includeTTIDinFirstER(firstER_TT);
219  }
220  }
221 
222  //setting saturation for jJ
223  if(saturation) TriggerTowerInformation.setSRjetSat();
224 
225 
226  // 2nd Energy Ring!
227  it_seed_map = m_2ndRingMap.find(myTTIDKey);
228  if(it_seed_map == m_2ndRingMap.end()) {
229  ATH_MSG_ERROR("Could not find TT" << myTTIDKey << " in 2nd Energy ring file.");
230  }
231 
232  for(const auto& secondER_TT : it_seed_map->second){
233  TriggerTowerInformation.addToSecondEnergyRingET(getEt(secondER_TT));
234  saturation = saturation || getTTowerSat(secondER_TT);
236  TriggerTowerInformation.includeTTIDinSecondER(secondER_TT);
237  }
238  }
239 
240  //setting saturation for jLJ
241  if(saturation) TriggerTowerInformation.setLRjetSat();
242 
243  // Storing all jets in the same map!
244  FCALJetTowerIDLists[myTTIDKey] = std::move(TriggerTowerInformation);
245  }
246 
247  }//end of centre_neta loop
248  }//end of centre_nphi loop
249  }//end of myCounter loop
250 
251  return FCALJetTowerIDLists;
252 }

◆ getEt()

int LVL1::jFEXForwardJetsAlgo::getEt ( unsigned int  TTID) const
private

Definition at line 84 of file jFEXForwardJetsAlgo.cxx.

84  {
85  if(TTID == 0) {
86  return -999;
87  }
88 
89  auto itr = m_map_Etvalues.find(TTID);
90 
91  if( itr == m_map_Etvalues.end()) {
92  return -999;
93  }
94 
95  return itr->second[0];
96 }

◆ getTTowerSat()

bool LVL1::jFEXForwardJetsAlgo::getTTowerSat ( unsigned int  TTID)
private

Definition at line 427 of file jFEXForwardJetsAlgo.cxx.

427  {
428  if(TTID == 0) {
429  return false;
430  }
431 
432  const LVL1::jTower * tmpTower = m_jTowerContainer->findTower(TTID);
433  return tmpTower->getTowerSat();
434 }

◆ globalEtaPhi()

std::array< float, 2 > LVL1::jFEXForwardJetsAlgo::globalEtaPhi ( int  TTID)
private

Definition at line 75 of file jFEXForwardJetsAlgo.cxx.

75  {
76  if(TTID == 0) {
77  return {999,999};
78  }
79 
80  const LVL1::jTower *tmpTower = m_jTowerContainer->findTower(TTID);
81  return {tmpTower->centreEta(),tmpTower->centrephi_toPI()};
82 }

◆ initialize()

StatusCode LVL1::jFEXForwardJetsAlgo::initialize ( )
overridevirtual

◆ 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::IjFEXForwardJetsAlgo::interfaceID ( )
inlinestaticinherited

Definition at line 42 of file IjFEXForwardJetsAlgo.h.

43  {
44  return IID_IjFEXForwardJetsAlgo;
45  }

◆ isLM()

bool LVL1::jFEXForwardJetsAlgo::isLM ( unsigned int  TTID) const
private

Definition at line 274 of file jFEXForwardJetsAlgo.cxx.

274  {
275 
276  int CentralSeedEt = SumEtSeed(TTID);
277 
278  // Exists the jTower in the seach (greater than) tower map?
279  auto it_seed_map = m_SearchGMap.find(TTID);
280  if(it_seed_map == m_SearchGMap.end()) {
281  ATH_MSG_ERROR("Could not find TT" << TTID << " in the search (>) local maxima for jets file.");
282  return false;
283  }
284 
285  bool greater = true;
286  for (const auto& Gtt : it_seed_map->second ){
287  //checking if the Central seed has strictly more energy than its neighbours
288  int tmpEt = SumEtSeed(Gtt);
289  if( !(CentralSeedEt > tmpEt) ){
290  greater = false;
291  break;
292  }
293  }
294 
295  //No need to continue.. Not a LM
296  if(!greater){
297  return false;
298  }
299 
300  // Exists the jTower in the seach (greater or equal than) tower map?
301  it_seed_map = m_SearchGeMap.find(TTID);
302  if(it_seed_map == m_SearchGeMap.end()) {
303  ATH_MSG_ERROR("Could not find TT" << TTID << " in the seach (>=) local maxima for jets file.");
304  return false;
305  }
306 
307  bool greaterEqual = true;
308  for (const auto& Gtt : it_seed_map->second ){
309  //checking if the Central seed has more energy or equal than its neighbours
310  int tmpEt = SumEtSeed(Gtt);
311  if( !(CentralSeedEt >= tmpEt) ){
312  greaterEqual = false;
313  break;
314  }
315  }
316 
317  //Not a LM
318  if(!greaterEqual){
319  return false;
320  }
321  return true;
322 }

◆ isLMabove()

bool LVL1::jFEXForwardJetsAlgo::isLMabove ( unsigned int  TTID) const
private

Definition at line 324 of file jFEXForwardJetsAlgo.cxx.

324  {
325 
326  // Exists the jTower in the correction tower map?
327  auto it_seed_map = m_CorrMap.find(TTID);
328  if(it_seed_map == m_CorrMap.end()) {
329  ATH_MSG_ERROR("Could not find TT" << TTID << " in the correction (LM above) for jets file.");
330  return false;
331  }
332 
333  // If there is not Trigger tower to correct with, then return false
334  const auto & GttVec = it_seed_map->second;
335  if (! GttVec.empty()) return isLM(GttVec.front());
336  return false;
337 }

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

◆ ReadfromFile()

StatusCode LVL1::jFEXForwardJetsAlgo::ReadfromFile ( const std::string &  fileName,
std::unordered_map< unsigned int, std::vector< unsigned int > > &  fillingMap 
) const
private

Definition at line 436 of file jFEXForwardJetsAlgo.cxx.

436  {
437 
438  std::string myline;
439 
440  //opening file with ifstream
441  std::ifstream myfile(fileName);
442 
443  if ( !myfile.is_open() ){
444  ATH_MSG_ERROR("Could not open file:" << fileName);
445  return StatusCode::FAILURE;
446  }
447 
448  //loading the mapping information
449  while ( std::getline (myfile, myline) ) {
450 
451  //removing the header of the file (it is just information!)
452  if(myline[0] == '#') continue;
453 
454  //Splitting myline in different substrings
455  std::stringstream oneLine(myline);
456 
457  //reading elements
458  std::vector<unsigned int> elements;
459  std::string element;
460  while(std::getline(oneLine, element, ' '))
461  {
462  elements.push_back(std::stoi(element));
463  }
464 
465  // We should have at least two elements! Central TT and (at least) itself
466  if(elements.size() < 1){
467  ATH_MSG_ERROR("Unexpected number of elemennts (<1 expected) in file: "<< fileName);
468  return StatusCode::FAILURE;
469  }
470 
471  //Central TiggerTower
472  unsigned int TTID = elements.at(0);
473 
474  // rest of TTs that need to be checked
475  elements.erase(elements.begin());
476 
477  fillingMap[TTID] = std::move(elements);
478 
479  }
480  myfile.close();
481 
482  return StatusCode::SUCCESS;
483 }

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

StatusCode LVL1::jFEXForwardJetsAlgo::reset ( )
overridevirtual

Implements LVL1::IjFEXForwardJetsAlgo.

Definition at line 64 of file jFEXForwardJetsAlgo.cxx.

64  {
65  return StatusCode::SUCCESS;
66 }

◆ safetyTest()

StatusCode LVL1::jFEXForwardJetsAlgo::safetyTest ( )
overridevirtual

Implements LVL1::IjFEXForwardJetsAlgo.

Definition at line 53 of file jFEXForwardJetsAlgo.cxx.

53  {
55  if(! m_jTowerContainer.isValid()) {
56  ATH_MSG_ERROR("Could not retrieve jTowerContainer " << m_jFEXForwardJetsAlgo_jTowerContainerKey.key());
57 
58  return StatusCode::FAILURE;
59  }
60 
61  return StatusCode::SUCCESS;
62 }

◆ setFPGAEnergy()

void LVL1::jFEXForwardJetsAlgo::setFPGAEnergy ( std::unordered_map< int, std::vector< int > >  et_map)
overridevirtual

Implements LVL1::IjFEXForwardJetsAlgo.

Definition at line 422 of file jFEXForwardJetsAlgo.cxx.

422  {
423  m_map_Etvalues=std::move(et_map);
424 }

◆ setup()

void LVL1::jFEXForwardJetsAlgo::setup ( int  inputTable[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width],
int  jfex 
)
overridevirtual

Implements LVL1::IjFEXForwardJetsAlgo.

Definition at line 68 of file jFEXForwardJetsAlgo.cxx.

68  {
70  m_jfex=jfex;
71 }

◆ SumEtSeed()

int LVL1::jFEXForwardJetsAlgo::SumEtSeed ( unsigned int  TTID) const
overridevirtual

Implements LVL1::IjFEXForwardJetsAlgo.

Definition at line 254 of file jFEXForwardJetsAlgo.cxx.

254  {
255 
256  // Exists the jTower in the mapping?
257  auto it_seed_map = m_SeedRingMap.find(TTID);
258  if(it_seed_map == m_SeedRingMap.end()) {
259  ATH_MSG_ERROR("Could not find TT" << TTID << " in Jet seed file.");
260  return 0;
261  }
262  int summedEt = 0;
263  for(const auto& seedTT : it_seed_map->second){
264  //getEt can return -999 as an error value
265  const int thisEt = getEt(seedTT);
266  if (thisEt != -999){
267  summedEt += getEt(seedTT);
268  }
269  }
270 
271  return summedEt;
272 }

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

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

std::unordered_map<unsigned int, std::vector<unsigned int> > LVL1::jFEXForwardJetsAlgo::m_1stRingMap
private

Definition at line 70 of file jFEXForwardJetsAlgo.h.

◆ m_1stRingStr

Gaudi::Property<std::string> LVL1::jFEXForwardJetsAlgo::m_1stRingStr {this, "Energy1stRingMap" , "Run3L1CaloSimulation/JetMaps/2024_04_09/jFEX_FWD_1stRing.dat" , "Contains Trigger tower in 1st Energy ring"}
private

Definition at line 62 of file jFEXForwardJetsAlgo.h.

◆ m_2ndRingMap

std::unordered_map<unsigned int, std::vector<unsigned int> > LVL1::jFEXForwardJetsAlgo::m_2ndRingMap
private

Definition at line 71 of file jFEXForwardJetsAlgo.h.

◆ m_2ndRingStr

Gaudi::Property<std::string> LVL1::jFEXForwardJetsAlgo::m_2ndRingStr {this, "Energy2ndRingMap" , "Run3L1CaloSimulation/JetMaps/2024_04_09/jFEX_FWD_2ndRing.dat" , "Contains Trigger tower in 2nd energy ring"}
private

Definition at line 63 of file jFEXForwardJetsAlgo.h.

◆ m_Corr2Map

std::unordered_map<unsigned int, std::vector<unsigned int> > LVL1::jFEXForwardJetsAlgo::m_Corr2Map
private

Definition at line 73 of file jFEXForwardJetsAlgo.h.

◆ m_Corr2Str

Gaudi::Property<std::string> LVL1::jFEXForwardJetsAlgo::m_Corr2Str {this, "Corr2Map" , "Run3L1CaloSimulation/JetMaps/2024_04_09/jFEX_FWD_corr2.dat" , "Contains Trigger tower to correct displacement (greater or equal than)"}
private

Definition at line 65 of file jFEXForwardJetsAlgo.h.

◆ m_CorrMap

std::unordered_map<unsigned int, std::vector<unsigned int> > LVL1::jFEXForwardJetsAlgo::m_CorrMap
private

Definition at line 72 of file jFEXForwardJetsAlgo.h.

◆ m_CorrStr

Gaudi::Property<std::string> LVL1::jFEXForwardJetsAlgo::m_CorrStr {this, "CorrMap" , "Run3L1CaloSimulation/JetMaps/2024_04_09/jFEX_FWD_corr.dat" , "Contains Trigger tower to correct displacement (greater than)"}
private

Definition at line 64 of file jFEXForwardJetsAlgo.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_jfex

int LVL1::jFEXForwardJetsAlgo::m_jfex
private

Definition at line 54 of file jFEXForwardJetsAlgo.h.

◆ m_jFEXalgoTowerID

int LVL1::jFEXForwardJetsAlgo::m_jFEXalgoTowerID[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width]
private

Definition at line 50 of file jFEXForwardJetsAlgo.h.

◆ m_jFEXForwardJetsAlgo_jTowerContainerKey

SG::ReadHandleKey<LVL1::jTowerContainer> LVL1::jFEXForwardJetsAlgo::m_jFEXForwardJetsAlgo_jTowerContainerKey {this, "MyjTowers", "jTowerContainer", "Input container for jTowers"}
private

Definition at line 48 of file jFEXForwardJetsAlgo.h.

◆ m_jTowerContainer

SG::ReadHandle<jTowerContainer> LVL1::jFEXForwardJetsAlgo::m_jTowerContainer
private

Definition at line 49 of file jFEXForwardJetsAlgo.h.

◆ m_lowerEM_eta

int LVL1::jFEXForwardJetsAlgo::m_lowerEM_eta
private

Definition at line 52 of file jFEXForwardJetsAlgo.h.

◆ m_map_Etvalues

std::unordered_map<int,std::vector<int> > LVL1::jFEXForwardJetsAlgo::m_map_Etvalues
private

Definition at line 51 of file jFEXForwardJetsAlgo.h.

◆ m_SearchGeMap

std::unordered_map<unsigned int, std::vector<unsigned int> > LVL1::jFEXForwardJetsAlgo::m_SearchGeMap
private

Definition at line 75 of file jFEXForwardJetsAlgo.h.

◆ m_SearchGeStr

Gaudi::Property<std::string> LVL1::jFEXForwardJetsAlgo::m_SearchGeStr {this, "SearchGeMap", "Run3L1CaloSimulation/JetMaps/2024_04_09/jFEX_FWD_searchGe.dat", "Contains Trigger tower to find local max (greater or equal than)"}
private

Definition at line 67 of file jFEXForwardJetsAlgo.h.

◆ m_SearchGMap

std::unordered_map<unsigned int, std::vector<unsigned int> > LVL1::jFEXForwardJetsAlgo::m_SearchGMap
private

Definition at line 74 of file jFEXForwardJetsAlgo.h.

◆ m_SearchGStr

Gaudi::Property<std::string> LVL1::jFEXForwardJetsAlgo::m_SearchGStr {this, "SearchGMap" , "Run3L1CaloSimulation/JetMaps/2024_04_09/jFEX_FWD_searchG.dat" , "Contains Trigger tower to find local max (greater than)"}
private

Definition at line 66 of file jFEXForwardJetsAlgo.h.

◆ m_SeedRingMap

std::unordered_map<unsigned int, std::vector<unsigned int> > LVL1::jFEXForwardJetsAlgo::m_SeedRingMap
private

Definition at line 69 of file jFEXForwardJetsAlgo.h.

◆ m_SeedRingStr

Gaudi::Property<std::string> LVL1::jFEXForwardJetsAlgo::m_SeedRingStr {this, "SeedRingMap", "Run3L1CaloSimulation/JetMaps/2024_04_09/jFEX_FWD_seed.dat" , "Contains Trigger tower in seed"}
private

Definition at line 61 of file jFEXForwardJetsAlgo.h.

◆ m_storeEnergyRingTTIDs

bool LVL1::jFEXForwardJetsAlgo::m_storeEnergyRingTTIDs = true
private

Definition at line 58 of file jFEXForwardJetsAlgo.h.

◆ m_upperEM_eta

int LVL1::jFEXForwardJetsAlgo::m_upperEM_eta
private

Definition at line 53 of file jFEXForwardJetsAlgo.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:
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_EMB_start_phi
constexpr static int jFEX_algoSpace_EMB_start_phi
Definition: FEXAlgoSpaceDefs.h:91
LVL1::jFEXForwardJetsAlgo::getTTowerSat
bool getTTowerSat(unsigned int TTID)
Definition: jFEXForwardJetsAlgo.cxx:427
PathResolver::find_calib_file
static std::string find_calib_file(const std::string &logical_file_name)
Definition: PathResolver.cxx:235
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_EMIE_start_phi
constexpr static int jFEX_algoSpace_EMIE_start_phi
Definition: FEXAlgoSpaceDefs.h:93
LVL1::jFEXForwardJetsAlgo::m_SearchGMap
std::unordered_map< unsigned int, std::vector< unsigned int > > m_SearchGMap
Definition: jFEXForwardJetsAlgo.h:74
LVL1::jFEXForwardJetsAlgo::m_1stRingStr
Gaudi::Property< std::string > m_1stRingStr
Definition: jFEXForwardJetsAlgo.h:62
LVL1::jFEXForwardJetsAlgo::m_SearchGStr
Gaudi::Property< std::string > m_SearchGStr
Definition: jFEXForwardJetsAlgo.h:66
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_C_EMIE_end_eta
constexpr static int jFEX_algoSpace_C_EMIE_end_eta
Definition: FEXAlgoSpaceDefs.h:68
LVL1::jTower::centrephi_toPI
float centrephi_toPI() const
Definition: jTower.h:81
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_C_FCAL_end_eta
constexpr static int jFEX_algoSpace_C_FCAL_end_eta
Definition: FEXAlgoSpaceDefs.h:70
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_A_FCAL_end_eta
constexpr static int jFEX_algoSpace_A_FCAL_end_eta
Definition: FEXAlgoSpaceDefs.h:50
LVL1::jFEXForwardJetsAlgo::m_CorrStr
Gaudi::Property< std::string > m_CorrStr
Definition: jFEXForwardJetsAlgo.h:64
LVL1::jFEXForwardJetsAlgo::m_jFEXalgoTowerID
int m_jFEXalgoTowerID[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width]
Definition: jFEXForwardJetsAlgo.h:50
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::jFEXForwardJetsAlgo::m_SearchGeStr
Gaudi::Property< std::string > m_SearchGeStr
Definition: jFEXForwardJetsAlgo.h:67
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_C_EMB_start_eta
constexpr static int jFEX_algoSpace_C_EMB_start_eta
Definition: FEXAlgoSpaceDefs.h:65
LVL1::jFEXForwardJetsAlgo::m_jfex
int m_jfex
Definition: jFEXForwardJetsAlgo.h:54
LVL1::jFEXForwardJetsAlgo::m_2ndRingStr
Gaudi::Property< std::string > m_2ndRingStr
Definition: jFEXForwardJetsAlgo.h:63
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_height
constexpr static int jFEX_algoSpace_height
Definition: FEXAlgoSpaceDefs.h:29
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_EMB_end_phi
constexpr static int jFEX_algoSpace_EMB_end_phi
Definition: FEXAlgoSpaceDefs.h:92
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_A_lowerEM_eta
constexpr static int jFEX_algoSpace_A_lowerEM_eta
Definition: FEXAlgoSpaceDefs.h:53
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
LVL1::jTower::centreEta
float centreEta() const
Definition: jTower.h:79
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_C_FCAL_start_eta
constexpr static int jFEX_algoSpace_C_FCAL_start_eta
Definition: FEXAlgoSpaceDefs.h:69
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_A_EMB_eta
constexpr static int jFEX_algoSpace_A_EMB_eta
Definition: FEXAlgoSpaceDefs.h:47
LVL1::jFEXForwardJetsAlgo::m_lowerEM_eta
int m_lowerEM_eta
Definition: jFEXForwardJetsAlgo.h:52
CxxUtils::fpcompare::greater
bool greater(double a, double b)
Compare two FP numbers, working around x87 precision issues.
Definition: fpcompare.h:140
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
LVL1::jFEXForwardJetsAlgo::m_SearchGeMap
std::unordered_map< unsigned int, std::vector< unsigned int > > m_SearchGeMap
Definition: jFEXForwardJetsAlgo.h:75
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_C_lowerEM_eta
constexpr static int jFEX_algoSpace_C_lowerEM_eta
Definition: FEXAlgoSpaceDefs.h:73
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_EMIE_end_phi
constexpr static int jFEX_algoSpace_EMIE_end_phi
Definition: FEXAlgoSpaceDefs.h:94
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
LVL1::jFEXForwardJetsAlgo::m_upperEM_eta
int m_upperEM_eta
Definition: jFEXForwardJetsAlgo.h:53
LVL1::jTower::getTowerSat
bool getTowerSat() const
Definition: jTower.h:61
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_C_upperEM_eta
constexpr static int jFEX_algoSpace_C_upperEM_eta
Definition: FEXAlgoSpaceDefs.h:74
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_C_EMIE_start_eta
constexpr static int jFEX_algoSpace_C_EMIE_start_eta
Definition: FEXAlgoSpaceDefs.h:67
LVL1::jFEXForwardJetsAlgo::globalEtaPhi
std::array< float, 2 > globalEtaPhi(int TTID)
Definition: jFEXForwardJetsAlgo.cxx:75
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
LVL1::jFEXForwardJetsAlgo::FcalJetsTowerIDLists
virtual std::unordered_map< int, jFEXForwardJetsInfo > FcalJetsTowerIDLists(int seedThreshold) override
Definition: jFEXForwardJetsAlgo.cxx:98
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
Definition: AthCommonDataStore.h:145
LVL1::FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width
constexpr static int jFEX_wide_algoSpace_width
Definition: FEXAlgoSpaceDefs.h:27
LVL1::jFEXForwardJetsAlgo::m_2ndRingMap
std::unordered_map< unsigned int, std::vector< unsigned int > > m_2ndRingMap
Definition: jFEXForwardJetsAlgo.h:71
LVL1::jFEXForwardJetsAlgo::SumEtSeed
virtual int SumEtSeed(unsigned int TTID) const override
Definition: jFEXForwardJetsAlgo.cxx:254
LVL1::jFEXForwardJetsAlgo::m_SeedRingStr
Gaudi::Property< std::string > m_SeedRingStr
Definition: jFEXForwardJetsAlgo.h:61
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_C_EMB_end_eta
constexpr static int jFEX_algoSpace_C_EMB_end_eta
Definition: FEXAlgoSpaceDefs.h:66
test_pyathena.parent
parent
Definition: test_pyathena.py:15
LVL1::jFEXForwardJetsAlgo::m_Corr2Str
Gaudi::Property< std::string > m_Corr2Str
Definition: jFEXForwardJetsAlgo.h:65
LVL1::jFEXForwardJetsAlgo::m_1stRingMap
std::unordered_map< unsigned int, std::vector< unsigned int > > m_1stRingMap
Definition: jFEXForwardJetsAlgo.h:70
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
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
LVL1::jFEXForwardJetsAlgo::elementsCorr
unsigned int elementsCorr(unsigned int TTID) const
Definition: jFEXForwardJetsAlgo.cxx:339
LVL1::jFEXForwardJetsAlgo::m_map_Etvalues
std::unordered_map< int, std::vector< int > > m_map_Etvalues
Definition: jFEXForwardJetsAlgo.h:51
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
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::FEXAlgoSpaceDefs::jFEX_algoSpace_FCAL_end_phi
constexpr static int jFEX_algoSpace_FCAL_end_phi
Definition: FEXAlgoSpaceDefs.h:96
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
LVL1::jFEXForwardJetsAlgo::ReadfromFile
StatusCode ReadfromFile(const std::string &, std::unordered_map< unsigned int, std::vector< unsigned int > > &) const
Definition: jFEXForwardJetsAlgo.cxx:436
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
LVL1::jFEXForwardJetsAlgo::condCorr2
bool condCorr2(unsigned int TTID) const
Definition: jFEXForwardJetsAlgo.cxx:389
LVL1::jFEXForwardJetsAlgo::elementsCorr2
unsigned int elementsCorr2(unsigned int TTID) const
Definition: jFEXForwardJetsAlgo.cxx:379
LVL1::jFEXForwardJetsAlgo::getEt
int getEt(unsigned int TTID) const
Definition: jFEXForwardJetsAlgo.cxx:84
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_A_FCAL_start_eta
constexpr static int jFEX_algoSpace_A_FCAL_start_eta
Definition: FEXAlgoSpaceDefs.h:49
LVL1::jFEXForwardJetsAlgo::m_SeedRingMap
std::unordered_map< unsigned int, std::vector< unsigned int > > m_SeedRingMap
Definition: jFEXForwardJetsAlgo.h:69
LVL1::jFEXForwardJetsAlgo::m_storeEnergyRingTTIDs
bool m_storeEnergyRingTTIDs
Definition: jFEXForwardJetsAlgo.h:58
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_A_EMIE_eta
constexpr static int jFEX_algoSpace_A_EMIE_eta
Definition: FEXAlgoSpaceDefs.h:48
LVL1::jFEXForwardJetsAlgo::condCorr
bool condCorr(unsigned int TTID) const
Definition: jFEXForwardJetsAlgo.cxx:349
a
TList * a
Definition: liststreamerinfos.cxx:10
h
LVL1::jFEXForwardJetsAlgo::m_jFEXForwardJetsAlgo_jTowerContainerKey
SG::ReadHandleKey< LVL1::jTowerContainer > m_jFEXForwardJetsAlgo_jTowerContainerKey
Definition: jFEXForwardJetsAlgo.h:48
LVL1::jFEXForwardJetsAlgo::isLMabove
bool isLMabove(unsigned int TTID) const
Definition: jFEXForwardJetsAlgo.cxx:324
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:629
LVL1::jFEXForwardJetsAlgo::isLM
bool isLM(unsigned int TTID) const
Definition: jFEXForwardJetsAlgo.cxx:274
LVL1::jTower
The jTower class is an interface object for jFEX trigger algorithms The purposes are twofold:
Definition: jTower.h:36
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_A_upperEM_eta
constexpr static int jFEX_algoSpace_A_upperEM_eta
Definition: FEXAlgoSpaceDefs.h:54
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:801
calibdata.copy
bool copy
Definition: calibdata.py:26
jobOptions.fileName
fileName
Definition: jobOptions.SuperChic_ALP2.py:39
LVL1::jFEXForwardJetsAlgo::m_jTowerContainer
SG::ReadHandle< jTowerContainer > m_jTowerContainer
Definition: jFEXForwardJetsAlgo.h:49
LVL1::jFEXForwardJetsAlgo::m_Corr2Map
std::unordered_map< unsigned int, std::vector< unsigned int > > m_Corr2Map
Definition: jFEXForwardJetsAlgo.h:73
LVL1::jFEXForwardJetsAlgo::m_CorrMap
std::unordered_map< unsigned int, std::vector< unsigned int > > m_CorrMap
Definition: jFEXForwardJetsAlgo.h:72
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_FCAL_start_phi
constexpr static int jFEX_algoSpace_FCAL_start_phi
Definition: FEXAlgoSpaceDefs.h:95
fitman.k
k
Definition: fitman.py:528