21 declareInterface<IjFEXtauAlgo>(
this);
29 ATH_CHECK(m_jTowerContainerKey.initialize());
35 return StatusCode::SUCCESS;
42 if(! m_jTowerContainer.isValid()) {
43 ATH_MSG_ERROR(
"Could not retrieve jTowerContainer " << m_jTowerContainerKey.key());
44 return StatusCode::FAILURE;
47 return StatusCode::SUCCESS;
52 ATH_MSG_DEBUG(m_color.BLUE<<
"---------------- jFEXtauAlgo::setup ----------------"<<m_color.END);
54 m_TauSaturation =
false;
55 for(
int phi=0; phi<3; phi++) {
56 for (
int eta=0; eta<3; eta++) {
57 m_TTwindow[phi][eta] = seed[2-phi][eta];
58 m_TauSaturation = m_TauSaturation || getTTowerSat(seed[2-phi][eta]);
68 int central_seed = getTTowerET(m_TTwindow[1][1]);
70 for (
int iphi = 0; iphi < 3; iphi++) {
71 for (
int ieta = 0; ieta < 3; ieta++) {
73 int ttEt = getTTowerET(m_TTwindow[iphi][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) {
92 ATH_MSG_DEBUG(
"Tau Local Maxima found. with ClusterET = "<<m_ClusterEt);
98 m_TauSaturation =
false;
100 int centreEt = getTTowerET(TTID);
101 m_ClusterEt = centreEt;
102 m_TauSaturation = m_TauSaturation || getTTowerSat(TTID);
104 auto it_map = m_SearchGMap.find(TTID);
105 if(it_map == m_SearchGMap.end()) {
106 ATH_MSG_ERROR(
"Could not find TT" << TTID <<
" in the (greater than) file for Taus.");
109 for(
const auto& lTT : it_map->second){
110 int seachTTET = getTTowerET(lTT);
111 if(centreEt <= seachTTET ){
114 m_ClusterEt += seachTTET;
115 m_TauSaturation = m_TauSaturation || getTTowerSat(lTT);
119 it_map = m_SearchGeMap.find(TTID);
120 if(it_map == m_SearchGeMap.end()) {
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){
125 int seachTTET = getTTowerET(lTT);
126 if(centreEt < seachTTET ){
129 m_ClusterEt += seachTTET;
130 m_TauSaturation = m_TauSaturation || getTTowerSat(lTT);
137 it_map = m_IsoRingMap.find(TTID);
138 if(it_map == m_IsoRingMap.end()) {
139 ATH_MSG_ERROR(
"Could not find TT" << TTID <<
" in the isolation file for Taus.");
142 for(
const auto& lTT : it_map->second){
143 m_TauIsolation += getTTowerET(lTT);
144 m_TauSaturation = m_TauSaturation || getTTowerSat(lTT);
156 const LVL1::jTower * tmpTower = m_jTowerContainer->findTower(TTID);
166 auto itr = m_map_Etvalues.find(TTID);
167 if( itr == m_map_Etvalues.end()) {
170 return (itr->second).at(0);
185 for(
int i=0;
i<36;
i++) {
186 m_TauIsolation += getTTowerET(First_ETring[
i]);
187 m_TauSaturation = m_TauSaturation || getTTowerSat(First_ETring[
i]);
192 return m_TauIsolation;
196 return m_TauSaturation;
200 m_map_Etvalues=et_map;
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){
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;