27 declareInterface<IjFEXSmallRJetAlgo>(
this);
36 ATH_CHECK(m_jTowerContainerKey.initialize());
38 return StatusCode::SUCCESS;
46 if(! m_jTowerContainer.isValid()) {
47 ATH_MSG_ERROR(
"Could not retrieve jTowerContainer " << m_jTowerContainerKey.key());
48 return StatusCode::FAILURE;
51 return StatusCode::SUCCESS;
56 for(
int phi=0; phi<7; phi++) {
57 for (
int eta=0; eta<7; eta++) {
58 m_jFEXalgoTowerID[phi][eta] = inputTable[6-phi][eta];
62 for(
int phi=0; phi<7; phi++) {
63 for (
int eta=0; eta<7; eta++) {
64 m_jFEXalgoTowerID_displaced[phi][eta] = inputTableDisplaced[6-phi][eta];
75 if(m_map_Etvalues.find(TTID) != m_map_Etvalues.end()) {
76 return m_map_Etvalues.at(TTID).at(0);
87 for(
int mphi = 1; mphi < 6; mphi++) {
88 for(
int meta = 1; meta< 6; meta++) {
91 int seedTotalET_displaced = 0;
92 for(
int iphi = -1; iphi < 2; iphi++) {
93 for(
int ieta = -1; ieta < 2; ieta++) {
96 seedTotalET += getTTowerET(m_jFEXalgoTowerID [mphi + iphi][meta + ieta]);
97 seedTotalET_displaced += getTTowerET(m_jFEXalgoTowerID_displaced[mphi + iphi][meta + ieta]);
100 m_jFEXalgoSearchWindowSeedET[mphi -1][meta -1] = seedTotalET;
101 m_jFEXalgoSearchWindowSeedET_displaced[mphi -1][meta -1] = seedTotalET_displaced;
110 int central_seed = mymatrix[2][2];
111 for (
int iphi = 0; iphi < 5; iphi++) {
112 for (
int ieta = 0; ieta < 5; ieta++) {
114 if ((ieta == 2) && (iphi == 2)) {
118 if( (iphi > ieta) || (iphi == 0 && ieta == 0) || (iphi == 1 && ieta == 1) ) {
119 if(central_seed < mymatrix[iphi][ieta]) {
124 if((iphi < ieta) || (iphi == 3 && ieta == 3) || (iphi == 4 && ieta == 4)) {
125 if(central_seed <= mymatrix[iphi][ieta]) {
138 bool isCentralLM = CalculateLM(m_jFEXalgoSearchWindowSeedET) &&
139 ( getTTowerET(m_jFEXalgoTowerID[3][3]) >= getTTowerET(m_jFEXalgoTowerID[4][2]) || m_jFEXalgoSearchWindowSeedET[2][2] > m_jFEXalgoSearchWindowSeedET[3][1]);
141 bool isDisplacedLM = CalculateLM(m_jFEXalgoSearchWindowSeedET_displaced) &&
142 ( getTTowerET(m_jFEXalgoTowerID[3][3]) > getTTowerET(m_jFEXalgoTowerID[2][4]) && m_jFEXalgoSearchWindowSeedET[2][2] == m_jFEXalgoSearchWindowSeedET[1][3]);
144 if(isCentralLM || isDisplacedLM ){
146 return m_jFEXalgoSearchWindowSeedET[2][2] > seedThreshold;
153 return m_jFEXalgoSearchWindowSeedET[2][2];
160 int SRJetClusterET = 0;
161 for(
int nphi = -3; nphi< 4; nphi++) {
162 for(
int neta = -3; neta< 4; neta++) {
164 if(DeltaRSquared < 16) {
165 SRJetClusterET += getTTowerET(m_jFEXalgoTowerID[3+nphi][3+neta]);
169 return SRJetClusterET;
174 m_JetSaturation =
false;
175 for(
int nphi = -3; nphi< 4; nphi++) {
176 for(
int neta = -3; neta< 4; neta++) {
178 if(DeltaRSquared < 16) {
179 m_JetSaturation = m_JetSaturation || getTTowerSat(m_jFEXalgoTowerID[3+nphi][3+neta]);
186 return m_JetSaturation;
190 int SmallETRing = getSmallClusterET() - m_jFEXalgoSearchWindowSeedET[3][3];
195 return m_jFEXalgoTowerID[3][3];
200 m_map_Etvalues=et_map;
209 const LVL1::jTower * tmpTower = m_jTowerContainer->findTower(TTID);