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
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

StatusCode ReadfromFile (const std::string &, std::unordered_map< unsigned int, std::vector< unsigned int > > &)
 
int SumEtSeed (unsigned int TTID)
 
int getEt (unsigned int TTID)
 
bool isLM (unsigned int TTID)
 
bool isLMabove (unsigned int TTID)
 
bool getTTowerSat (unsigned int TTID)
 
unsigned int elementsCorr (unsigned int TTID)
 
bool condCorr (unsigned int TTID)
 
unsigned int elementsCorr2 (unsigned int TTID)
 
bool condCorr2 (unsigned int TTID)
 
std::array< float, 2 > globalEtaPhi (int TTID)
 
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

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 30 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 30 of file jFEXForwardJetsAlgo.cxx.

30  :
32  {
33  declareInterface<IjFEXForwardJetsAlgo>(this);
34  }

◆ ~jFEXForwardJetsAlgo()

LVL1::jFEXForwardJetsAlgo::~jFEXForwardJetsAlgo ( )
virtual

Destructor.

Definition at line 37 of file jFEXForwardJetsAlgo.cxx.

38 {
39 }

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)
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)
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 > &  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; }

◆ elementsCorr()

unsigned int LVL1::jFEXForwardJetsAlgo::elementsCorr ( unsigned int  TTID)
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)
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 102 of file jFEXForwardJetsAlgo.cxx.

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

◆ getEt()

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

Definition at line 88 of file jFEXForwardJetsAlgo.cxx.

88  {
89  if(TTID == 0) {
90  return -999;
91  }
92 
93  auto itr = m_map_Etvalues.find(TTID);
94 
95  if( itr == m_map_Etvalues.end()) {
96  return -999;
97  }
98 
99  return itr->second[0];
100 }

◆ 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 79 of file jFEXForwardJetsAlgo.cxx.

79  {
80  if(TTID == 0) {
81  return {999,999};
82  }
83 
84  const LVL1::jTower *tmpTower = m_jTowerContainer->findTower(TTID);
85  return {tmpTower->centreEta(),tmpTower->centrephi_toPI()};
86 }

◆ 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 40 of file IjFEXForwardJetsAlgo.h.

41  {
42  return IID_IjFEXForwardJetsAlgo;
43  }

◆ isLM()

bool LVL1::jFEXForwardJetsAlgo::isLM ( unsigned int  TTID)
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 seach (>) 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)
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 
)
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 68 of file jFEXForwardJetsAlgo.cxx.

68  {
69  return StatusCode::SUCCESS;
70 }

◆ safetyTest()

StatusCode LVL1::jFEXForwardJetsAlgo::safetyTest ( )
overridevirtual

Implements LVL1::IjFEXForwardJetsAlgo.

Definition at line 57 of file jFEXForwardJetsAlgo.cxx.

57  {
59  if(! m_jTowerContainer.isValid()) {
60  ATH_MSG_ERROR("Could not retrieve jTowerContainer " << m_jFEXForwardJetsAlgo_jTowerContainerKey.key());
61 
62  return StatusCode::FAILURE;
63  }
64 
65  return StatusCode::SUCCESS;
66 }

◆ 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 72 of file jFEXForwardJetsAlgo.cxx.

72  {
74  m_jfex=jfex;
75 }

◆ SumEtSeed()

int LVL1::jFEXForwardJetsAlgo::SumEtSeed ( unsigned int  TTID)
private

Definition at line 258 of file jFEXForwardJetsAlgo.cxx.

258  {
259 
260  // Exists the jTower in the mapping?
261  auto it_seed_map = m_SeedRingMap.find(TTID);
262  if(it_seed_map == m_SeedRingMap.end()) {
263  ATH_MSG_ERROR("Could not find TT" << TTID << " in Jet seed file.");
264  return 0;
265  }
266  int summedEt = 0;
267  for(const auto& seedTT : it_seed_map->second){
268  summedEt += getEt(seedTT);
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 75 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 67 of file jFEXForwardJetsAlgo.h.

◆ m_2ndRingMap

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

Definition at line 76 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 68 of file jFEXForwardJetsAlgo.h.

◆ m_Corr2Map

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

Definition at line 78 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 70 of file jFEXForwardJetsAlgo.h.

◆ m_CorrMap

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

Definition at line 77 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 69 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 59 of file jFEXForwardJetsAlgo.h.

◆ m_jFEXalgoTowerID

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

Definition at line 55 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 53 of file jFEXForwardJetsAlgo.h.

◆ m_jTowerContainer

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

Definition at line 54 of file jFEXForwardJetsAlgo.h.

◆ m_lowerEM_eta

int LVL1::jFEXForwardJetsAlgo::m_lowerEM_eta
private

Definition at line 57 of file jFEXForwardJetsAlgo.h.

◆ m_map_Etvalues

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

Definition at line 56 of file jFEXForwardJetsAlgo.h.

◆ m_SearchGeMap

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

Definition at line 80 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 72 of file jFEXForwardJetsAlgo.h.

◆ m_SearchGMap

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

Definition at line 79 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 71 of file jFEXForwardJetsAlgo.h.

◆ m_SeedRingMap

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

Definition at line 74 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 66 of file jFEXForwardJetsAlgo.h.

◆ m_storeEnergyRingTTIDs

bool LVL1::jFEXForwardJetsAlgo::m_storeEnergyRingTTIDs = true
private

Definition at line 63 of file jFEXForwardJetsAlgo.h.

◆ m_upperEM_eta

int LVL1::jFEXForwardJetsAlgo::m_upperEM_eta
private

Definition at line 58 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:89
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:384
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_EMIE_start_phi
constexpr static int jFEX_algoSpace_EMIE_start_phi
Definition: FEXAlgoSpaceDefs.h:91
LVL1::jFEXForwardJetsAlgo::isLM
bool isLM(unsigned int TTID)
Definition: jFEXForwardJetsAlgo.cxx:274
LVL1::jFEXForwardJetsAlgo::m_SearchGMap
std::unordered_map< unsigned int, std::vector< unsigned int > > m_SearchGMap
Definition: jFEXForwardJetsAlgo.h:79
LVL1::jFEXForwardJetsAlgo::m_1stRingStr
Gaudi::Property< std::string > m_1stRingStr
Definition: jFEXForwardJetsAlgo.h:67
LVL1::jFEXForwardJetsAlgo::m_SearchGStr
Gaudi::Property< std::string > m_SearchGStr
Definition: jFEXForwardJetsAlgo.h:71
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_C_EMIE_end_eta
constexpr static int jFEX_algoSpace_C_EMIE_end_eta
Definition: FEXAlgoSpaceDefs.h:66
LVL1::jFEXForwardJetsAlgo::getEt
int getEt(unsigned int TTID)
Definition: jFEXForwardJetsAlgo.cxx:88
LVL1::jTower::centrephi_toPI
float centrephi_toPI() const
Definition: jTower.h:85
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_C_FCAL_end_eta
constexpr static int jFEX_algoSpace_C_FCAL_end_eta
Definition: FEXAlgoSpaceDefs.h:68
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_A_FCAL_end_eta
constexpr static int jFEX_algoSpace_A_FCAL_end_eta
Definition: FEXAlgoSpaceDefs.h:48
LVL1::jFEXForwardJetsAlgo::m_CorrStr
Gaudi::Property< std::string > m_CorrStr
Definition: jFEXForwardJetsAlgo.h:69
LVL1::jFEXForwardJetsAlgo::m_jFEXalgoTowerID
int m_jFEXalgoTowerID[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width]
Definition: jFEXForwardJetsAlgo.h:55
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:72
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_C_EMB_start_eta
constexpr static int jFEX_algoSpace_C_EMB_start_eta
Definition: FEXAlgoSpaceDefs.h:63
LVL1::jFEXForwardJetsAlgo::m_jfex
int m_jfex
Definition: jFEXForwardJetsAlgo.h:59
LVL1::jFEXForwardJetsAlgo::m_2ndRingStr
Gaudi::Property< std::string > m_2ndRingStr
Definition: jFEXForwardJetsAlgo.h:68
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_height
constexpr static int jFEX_algoSpace_height
Definition: FEXAlgoSpaceDefs.h:27
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:90
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_A_lowerEM_eta
constexpr static int jFEX_algoSpace_A_lowerEM_eta
Definition: FEXAlgoSpaceDefs.h:51
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
LVL1::jFEXForwardJetsAlgo::ReadfromFile
StatusCode ReadfromFile(const std::string &, std::unordered_map< unsigned int, std::vector< unsigned int > > &)
Definition: jFEXForwardJetsAlgo.cxx:436
LVL1::jTower::centreEta
float centreEta() const
Definition: jTower.h:83
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_C_FCAL_start_eta
constexpr static int jFEX_algoSpace_C_FCAL_start_eta
Definition: FEXAlgoSpaceDefs.h:67
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_A_EMB_eta
constexpr static int jFEX_algoSpace_A_EMB_eta
Definition: FEXAlgoSpaceDefs.h:45
LVL1::jFEXForwardJetsAlgo::m_lowerEM_eta
int m_lowerEM_eta
Definition: jFEXForwardJetsAlgo.h:57
CxxUtils::fpcompare::greater
bool greater(double a, double b)
Compare two FP numbers, working around x87 precision issues.
Definition: fpcompare.h:140
LVL1::jFEXForwardJetsAlgo::isLMabove
bool isLMabove(unsigned int TTID)
Definition: jFEXForwardJetsAlgo.cxx:324
LVL1::jFEXForwardJetsAlgo::m_SearchGeMap
std::unordered_map< unsigned int, std::vector< unsigned int > > m_SearchGeMap
Definition: jFEXForwardJetsAlgo.h:80
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:71
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_EMIE_end_phi
constexpr static int jFEX_algoSpace_EMIE_end_phi
Definition: FEXAlgoSpaceDefs.h:92
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:27
LVL1::jFEXForwardJetsAlgo::m_upperEM_eta
int m_upperEM_eta
Definition: jFEXForwardJetsAlgo.h:58
LVL1::jTower::getTowerSat
bool getTowerSat() const
Definition: jTower.h:65
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_C_upperEM_eta
constexpr static int jFEX_algoSpace_C_upperEM_eta
Definition: FEXAlgoSpaceDefs.h:72
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_C_EMIE_start_eta
constexpr static int jFEX_algoSpace_C_EMIE_start_eta
Definition: FEXAlgoSpaceDefs.h:65
LVL1::jFEXForwardJetsAlgo::globalEtaPhi
std::array< float, 2 > globalEtaPhi(int TTID)
Definition: jFEXForwardJetsAlgo.cxx:79
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
FortranAlgorithmOptions.fileName
fileName
Definition: FortranAlgorithmOptions.py:13
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
LVL1::jFEXForwardJetsAlgo::elementsCorr2
unsigned int elementsCorr2(unsigned int TTID)
Definition: jFEXForwardJetsAlgo.cxx:379
LVL1::jFEXForwardJetsAlgo::FcalJetsTowerIDLists
virtual std::unordered_map< int, jFEXForwardJetsInfo > FcalJetsTowerIDLists(int seedThreshold) override
Definition: jFEXForwardJetsAlgo.cxx:102
LVL1::FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width
constexpr static int jFEX_wide_algoSpace_width
Definition: FEXAlgoSpaceDefs.h:25
LVL1::jFEXForwardJetsAlgo::m_2ndRingMap
std::unordered_map< unsigned int, std::vector< unsigned int > > m_2ndRingMap
Definition: jFEXForwardJetsAlgo.h:76
LVL1::jFEXForwardJetsAlgo::m_SeedRingStr
Gaudi::Property< std::string > m_SeedRingStr
Definition: jFEXForwardJetsAlgo.h:66
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_C_EMB_end_eta
constexpr static int jFEX_algoSpace_C_EMB_end_eta
Definition: FEXAlgoSpaceDefs.h:64
test_pyathena.parent
parent
Definition: test_pyathena.py:15
LVL1::jFEXForwardJetsAlgo::m_Corr2Str
Gaudi::Property< std::string > m_Corr2Str
Definition: jFEXForwardJetsAlgo.h:70
LVL1::jFEXForwardJetsAlgo::m_1stRingMap
std::unordered_map< unsigned int, std::vector< unsigned int > > m_1stRingMap
Definition: jFEXForwardJetsAlgo.h:75
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::m_map_Etvalues
std::unordered_map< int, std::vector< int > > m_map_Etvalues
Definition: jFEXForwardJetsAlgo.h:56
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:94
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
LVL1::jFEXForwardJetsAlgo::condCorr
bool condCorr(unsigned int TTID)
Definition: jFEXForwardJetsAlgo.cxx:349
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_A_FCAL_start_eta
constexpr static int jFEX_algoSpace_A_FCAL_start_eta
Definition: FEXAlgoSpaceDefs.h:47
LVL1::jFEXForwardJetsAlgo::m_SeedRingMap
std::unordered_map< unsigned int, std::vector< unsigned int > > m_SeedRingMap
Definition: jFEXForwardJetsAlgo.h:74
LVL1::jFEXForwardJetsAlgo::m_storeEnergyRingTTIDs
bool m_storeEnergyRingTTIDs
Definition: jFEXForwardJetsAlgo.h:63
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_A_EMIE_eta
constexpr static int jFEX_algoSpace_A_EMIE_eta
Definition: FEXAlgoSpaceDefs.h:46
a
TList * a
Definition: liststreamerinfos.cxx:10
h
LVL1::jFEXForwardJetsAlgo::m_jFEXForwardJetsAlgo_jTowerContainerKey
SG::ReadHandleKey< LVL1::jTowerContainer > m_jFEXForwardJetsAlgo_jTowerContainerKey
Definition: jFEXForwardJetsAlgo.h:53
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
LVL1::jFEXForwardJetsAlgo::SumEtSeed
int SumEtSeed(unsigned int TTID)
Definition: jFEXForwardJetsAlgo.cxx:258
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
LVL1::jTower
The jTower class is an interface object for jFEX trigger algorithms The purposes are twofold:
Definition: jTower.h:40
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_A_upperEM_eta
constexpr static int jFEX_algoSpace_A_upperEM_eta
Definition: FEXAlgoSpaceDefs.h:52
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
LVL1::jFEXForwardJetsAlgo::elementsCorr
unsigned int elementsCorr(unsigned int TTID)
Definition: jFEXForwardJetsAlgo.cxx:339
calibdata.copy
bool copy
Definition: calibdata.py:27
LVL1::jFEXForwardJetsAlgo::m_jTowerContainer
SG::ReadHandle< jTowerContainer > m_jTowerContainer
Definition: jFEXForwardJetsAlgo.h:54
LVL1::jFEXForwardJetsAlgo::m_Corr2Map
std::unordered_map< unsigned int, std::vector< unsigned int > > m_Corr2Map
Definition: jFEXForwardJetsAlgo.h:78
LVL1::jFEXForwardJetsAlgo::condCorr2
bool condCorr2(unsigned int TTID)
Definition: jFEXForwardJetsAlgo.cxx:389
LVL1::jFEXForwardJetsAlgo::m_CorrMap
std::unordered_map< unsigned int, std::vector< unsigned int > > m_CorrMap
Definition: jFEXForwardJetsAlgo.h:77
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::FEXAlgoSpaceDefs::jFEX_algoSpace_FCAL_start_phi
constexpr static int jFEX_algoSpace_FCAL_start_phi
Definition: FEXAlgoSpaceDefs.h:93
fitman.k
k
Definition: fitman.py:528