21 declareInterface<IjFEXtauAlgo>(
this);
35 return StatusCode::SUCCESS;
44 return StatusCode::FAILURE;
47 return StatusCode::SUCCESS;
70 for (
int iphi = 0; iphi < 3; iphi++) {
71 for (
int ieta = 0; ieta < 3; ieta++) {
76 if ((iphi == 1) && (ieta == 1)) {
79 else if( (iphi > ieta) || (iphi==0 && ieta==0) ) {
80 if(central_seed<ttEt) {
84 else if( (iphi < ieta) || (iphi == 2 && ieta == 2)) {
85 if(central_seed<=ttEt) {
106 ATH_MSG_ERROR(
"Could not find TT" << TTID <<
" in the (greater than) file for Taus.");
109 for(
const auto& lTT : it_map->second){
111 if(centreEt <= seachTTET ){
121 ATH_MSG_ERROR(
"Could not find TT" << TTID <<
" in the (greater or equal than) file for Taus.");
124 for(
const auto& lTT : it_map->second){
126 if(centreEt < seachTTET ){
139 ATH_MSG_ERROR(
"Could not find TT" << TTID <<
" in the isolation file for Taus.");
142 for(
const auto& lTT : it_map->second){
170 return (itr->second).at(0);
185 for(
int i=0; i<36; i++) {
209 std::ifstream myfile(fileName);
211 if ( !myfile.is_open() ){
213 return StatusCode::FAILURE;
217 while ( std::getline (myfile, myline) ) {
220 if(myline[0] ==
'#')
continue;
223 std::stringstream oneLine(myline);
226 std::vector<unsigned int> elements;
228 while(std::getline(oneLine, element,
' '))
230 elements.push_back(std::stoi(element));
234 if(elements.size() < 1){
235 ATH_MSG_ERROR(
"Unexpected number of elemennts (<1 expected) in file: "<< fileName);
236 return StatusCode::FAILURE;
239 unsigned int TTID = elements.at(0);
241 elements.erase(elements.begin());
242 fillingMap[TTID] = std::move(elements);
246 return StatusCode::SUCCESS;
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
#define ATH_CHECK
Evaluate an expression and check for errors.
jFEXtauAlgo(const std::string &type, const std::string &name, const IInterface *parent)
Constructors.
bool getTTowerSat(unsigned int TTID)
SG::ReadHandle< jTowerContainer > m_jTowerContainer
virtual int getFirstEtRing() const override
virtual void setFirstEtRing(int First_ETring[36]) override
virtual bool getTauSat() const override
virtual StatusCode initialize() override
standard Athena-Algorithm method
int getTTowerET(unsigned int TTID) const
SG::ReadHandleKey< LVL1::jTowerContainer > m_jTowerContainerKey
std::unordered_map< unsigned int, std::vector< unsigned int > > m_IsoRingMap
virtual ~jFEXtauAlgo()
Destructor.
std::unordered_map< unsigned int, std::vector< unsigned int > > m_SearchGMap
virtual int getClusterEt() const override
Gaudi::Property< std::string > m_IsoRingStr
std::unordered_map< int, std::vector< int > > m_map_Etvalues
std::unordered_map< unsigned int, std::vector< unsigned int > > m_SearchGeMap
virtual bool isSeedLocalMaxima() override
Gaudi::Property< std::string > m_SearchGeStr
virtual bool isSeedLocalMaxima_fwd(unsigned int TTID) override
virtual void setFPGAEnergy(const std::unordered_map< int, std::vector< int > > &et_map) override
virtual void setup(int seed[3][3]) override
struct LVL1::jFEXtauAlgo::color m_color
StatusCode ReadfromFile(const std::string &, std::unordered_map< unsigned int, std::vector< unsigned int > > &) const
virtual StatusCode safetyTest() override
Gaudi::Property< std::string > m_SearchGStr
The jTower class is an interface object for jFEX trigger algorithms The purposes are twofold:
static std::string find_calib_file(const std::string &logical_file_name)
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...