34 return StatusCode::FAILURE;
44 ATH_MSG_ERROR(
" Could not read TRT StrawStatus permanent objects ");
45 return StatusCode::FAILURE;
56 return StatusCode::FAILURE;
61 return StatusCode::SUCCESS;
66 return StatusCode::SUCCESS;
71 return StatusCode::SUCCESS;
80 m_trtid->straw(offlineID), level);
82 unsigned int org_stat = int((*strawstatuscontainer).get(
id).getstatus());
83 const unsigned int statusbitmask = 1 << 8;
87 (*strawstatuscontainer).set(
id, (org_stat | statusbitmask));
91 (*strawstatuscontainer).set(
id, (org_stat & (~statusbitmask)));
102 m_trtid->straw(offlineID), level);
103 unsigned int org_stat = int((*strawstatuspermanentcontainer).get(
id).getstatus());
104 const unsigned int statusbitmask = 1 << 8;
108 (*strawstatuspermanentcontainer).set(
id, (org_stat | statusbitmask));
112 (*strawstatuspermanentcontainer).set(
id, (org_stat & (~statusbitmask)));
122 strawstatus->
clear();
123 ATH_MSG_INFO(
" ***************** TRTStrawStatusWrite ************************ ");
124 ATH_MSG_INFO(
" readStatFromTextFile called with file name " << filename);
134 for (
int i = 0; i < 32; i++)
143 for (
int i = 0; i < 14; i++)
149 for (
int l = 0; l < 3; l++)
156 for (
int l = 0; l < 14; l++)
164 if (filename.empty())
167 return StatusCode::FAILURE;
169 std::ifstream ifs(filename.c_str());
170 int bec, layer, sector, strawlayer, straw, status;
174 while (ifs >> bec >> sector >> straw >> strawlayer >> layer >> status)
176 if ((status == 3) || (status == 4) || (status == 5))
180 ATH_MSG_FATAL(
" The Status Temp : " << status <<
" IS NOT ACCEPTED, Use 1 for dead ");
181 return StatusCode::FAILURE;
214 if (bec == -1 && sector >= 0 && sector < 32)
223 if (bec == 1 && sector >= 0 && sector < 32)
232 if (bec == -2 && layer >= 0 && layer < 14)
234 if (bec == 2 && layer >= 0 && layer < 14)
239 ATH_MSG_INFO(
"Entire Module dead: bec: " << bec <<
" layer: " << layer <<
" phi: " << sector <<
" stl: " << strawlayer <<
" stw: " << straw <<
" level " << level);
247 strawstatus->
set(
id, 1);
253 ATH_MSG_INFO(
"deadba0[] = { " << deadba0[0] <<
", " << deadba0[1] <<
", " << deadba0[2] <<
", " << deadba0[3] <<
", " << deadba0[4] <<
", " << deadba0[5] <<
", " << deadba0[6] <<
", " << deadba0[7] <<
", " << deadba0[8] <<
", " << deadba0[9] <<
", " << deadba0[10] <<
", " << deadba0[11] <<
", " << deadba0[12] <<
", " << deadba0[13] <<
", " << deadba0[14] <<
", " << deadba0[15] <<
", " << deadba0[16] <<
", " << deadba0[17] <<
", " << deadba0[18] <<
", " << deadba0[19] <<
", " << deadba0[20] <<
", " << deadba0[21] <<
", " << deadba0[22] <<
", " << deadba0[23] <<
", " << deadba0[24] <<
", " << deadba0[25] <<
", " << deadba0[26] <<
", " << deadba0[27] <<
", " << deadba0[28] <<
", " << deadba0[29] <<
", " << deadba0[30] <<
", " << deadba0[31] <<
"}; ");
255 ATH_MSG_INFO(
"deadba1[] = { " << deadba1[0] <<
", " << deadba1[1] <<
", " << deadba1[2] <<
", " << deadba1[3] <<
", " << deadba1[4] <<
", " << deadba1[5] <<
", " << deadba1[6] <<
", " << deadba1[7] <<
", " << deadba1[8] <<
", " << deadba1[9] <<
", " << deadba1[10] <<
", " << deadba1[11] <<
", " << deadba1[12] <<
", " << deadba1[13] <<
", " << deadba1[14] <<
", " << deadba1[15] <<
", " << deadba1[16] <<
", " << deadba1[17] <<
", " << deadba1[18] <<
", " << deadba1[19] <<
", " << deadba1[20] <<
", " << deadba1[21] <<
", " << deadba1[22] <<
", " << deadba1[23] <<
", " << deadba1[24] <<
", " << deadba1[25] <<
", " << deadba1[26] <<
", " << deadba1[27] <<
", " << deadba1[28] <<
", " << deadba1[29] <<
", " << deadba1[30] <<
", " << deadba1[31] <<
"};");
257 ATH_MSG_INFO(
"deadba2[]= { " << deadba2[0] <<
", " << deadba2[1] <<
", " << deadba2[2] <<
", " << deadba2[3] <<
", " << deadba2[4] <<
", " << deadba2[5] <<
", " << deadba2[6] <<
", " << deadba2[7] <<
", " << deadba2[8] <<
", " << deadba2[9] <<
", " << deadba2[10] <<
", " << deadba2[11] <<
", " << deadba2[12] <<
", " << deadba2[13] <<
", " << deadba2[14] <<
", " << deadba2[15] <<
", " << deadba2[16] <<
", " << deadba2[17] <<
", " << deadba2[18] <<
", " << deadba2[19] <<
", " << deadba2[20] <<
", " << deadba2[21] <<
", " << deadba2[22] <<
", " << deadba2[23] <<
", " << deadba2[24] <<
", " << deadba2[25] <<
", " << deadba2[26] <<
", " << deadba2[27] <<
", " << deadba2[28] <<
", " << deadba2[29] <<
", " << deadba2[30] <<
", " << deadba2[31] <<
"}; ");
260 ATH_MSG_INFO(
"deadbc0[] = { " << deadbc0[0] <<
", " << deadbc0[1] <<
", " << deadbc0[2] <<
", " << deadbc0[3] <<
", " << deadbc0[4] <<
", " << deadbc0[5] <<
", " << deadbc0[6] <<
", " << deadbc0[7] <<
", " << deadbc0[8] <<
", " << deadbc0[9] <<
", " << deadbc0[10] <<
", " << deadbc0[11] <<
", " << deadbc0[12] <<
", " << deadbc0[13] <<
", " << deadbc0[14] <<
", " << deadbc0[15] <<
", " << deadbc0[16] <<
", " << deadbc0[17] <<
", " << deadbc0[18] <<
", " << deadbc0[19] <<
", " << deadbc0[20] <<
", " << deadbc0[21] <<
", " << deadbc0[22] <<
", " << deadbc0[23] <<
", " << deadbc0[24] <<
", " << deadbc0[25] <<
", " << deadbc0[26] <<
", " << deadbc0[27] <<
", " << deadbc0[28] <<
", " << deadbc0[29] <<
", " << deadbc0[30] <<
", " << deadbc0[31] <<
"}; ");
262 ATH_MSG_INFO(
"deadbc1[] = { " << deadbc1[0] <<
", " << deadbc1[1] <<
", " << deadbc1[2] <<
", " << deadbc1[3] <<
", " << deadbc1[4] <<
", " << deadbc1[5] <<
", " << deadbc1[6] <<
", " << deadbc1[7] <<
", " << deadbc1[8] <<
", " << deadbc1[9] <<
", " << deadbc1[10] <<
", " << deadbc1[11] <<
", " << deadbc1[12] <<
", " << deadbc1[13] <<
", " << deadbc1[14] <<
", " << deadbc1[15] <<
", " << deadbc1[16] <<
", " << deadbc1[17] <<
", " << deadbc1[18] <<
", " << deadbc1[19] <<
", " << deadbc1[20] <<
", " << deadbc1[21] <<
", " << deadbc1[22] <<
", " << deadbc1[23] <<
", " << deadbc1[24] <<
", " << deadbc1[25] <<
", " << deadbc1[26] <<
", " << deadbc1[27] <<
", " << deadbc1[28] <<
", " << deadbc1[29] <<
", " << deadbc1[30] <<
", " << deadbc1[31] <<
"};");
264 ATH_MSG_INFO(
"deadbc2[]= { " << deadbc2[0] <<
", " << deadbc2[1] <<
", " << deadbc2[2] <<
", " << deadbc2[3] <<
", " << deadbc2[4] <<
", " << deadbc2[5] <<
", " << deadbc2[6] <<
", " << deadbc2[7] <<
", " << deadbc2[8] <<
", " << deadbc2[9] <<
", " << deadbc2[10] <<
", " << deadbc2[11] <<
", " << deadbc2[12] <<
", " << deadbc2[13] <<
", " << deadbc2[14] <<
", " << deadbc2[15] <<
", " << deadbc2[16] <<
", " << deadbc2[17] <<
", " << deadbc2[18] <<
", " << deadbc2[19] <<
", " << deadbc2[20] <<
", " << deadbc2[21] <<
", " << deadbc2[22] <<
", " << deadbc2[23] <<
", " << deadbc2[24] <<
", " << deadbc2[25] <<
", " << deadbc2[26] <<
", " << deadbc2[27] <<
", " << deadbc2[28] <<
", " << deadbc2[29] <<
", " << deadbc2[30] <<
", " << deadbc2[31] <<
"}; ");
267 ATH_MSG_INFO(
"deadea[] = { " << deadea[0] <<
", " << deadea[1] <<
", " << deadea[2] <<
", " << deadea[3] <<
", " << deadea[4] <<
", " << deadea[5] <<
", " << deadea[6] <<
", " << deadea[7] <<
", " << deadea[8] <<
", " << deadea[9] <<
", " << deadea[10] <<
", " << deadea[11] <<
", " << deadea[12] <<
", " << deadea[13] <<
"}; ");
269 ATH_MSG_INFO(
"deadec[] = { " << deadec[0] <<
", " << deadec[1] <<
", " << deadec[2] <<
", " << deadec[3] <<
", " << deadec[4] <<
", " << deadec[5] <<
", " << deadec[6] <<
", " << deadec[7] <<
", " << deadec[8] <<
", " << deadec[9] <<
", " << deadec[10] <<
", " << deadec[11] <<
", " << deadec[12] <<
", " << deadec[13] <<
"}; ");
271 ATH_MSG_INFO(
"Recording StrawStatus Container. Number of dead straws " << line <<
" straws");
275 return StatusCode::FAILURE;
282 return StatusCode::SUCCESS;
290 strawstatusHT->
clear();
292 ATH_MSG_INFO(
" ***************** TRTStrawStatusWrite ************************ ");
293 ATH_MSG_INFO(
" readStatHTFromTextFile called with file name " << filename);
295 std::ifstream ifsHT(filename.c_str());
304 for (
int l = 0; l < 3; l++)
313 for (
int l = 0; l < 14; l++)
322 int bec, layer, sector, strawlayer, straw, status;
330 while (ifsHT >> bec >> sector >> strawlayer >> straw >> layer >> status)
369 else if (status == 5)
375 else if (status == 6)
380 else if (status == 7)
388 ATH_MSG_FATAL(
" The HT Status: " << status <<
" IS NOT ACCEPTED, 4 for Argon, 5 for Krypton!! "
389 <<
" Or 6 or 7 for emulated types!");
390 return StatusCode::FAILURE;
394 ATH_MSG_INFO(
"HT Status. Read " << line <<
" layers. " <<
" Xenon: " << lineXe <<
" Argon: " << lineAr <<
" Krypton: " << lineKr <<
" EmulateArgon: " << lineEAr <<
" EmulateKrypton: " << lineEKr);
399 return StatusCode::FAILURE;
410 return StatusCode::SUCCESS;
417 strawstatuspermanent->
clear();
419 ATH_MSG_INFO(
" readStatPermFromTextFile called with file name " << filename);
421 std::ifstream ifspermanent(filename.c_str());
427 for (std::vector<Identifier>::const_iterator it =
m_trtid->straw_layer_begin(); it !=
m_trtid->straw_layer_end(); ++it)
430 int m =
m_trtid->phi_module(
id);
431 int n =
m_trtid->barrel_ec(
id);
432 int l =
m_trtid->layer_or_wheel(
id);
433 int nStrawsInLayer =
m_trtid->straw_max(*it);
434 int sl =
m_trtid->straw_layer(
id);
435 for (
int i = 0; i <= nStrawsInLayer; i++)
437 id =
m_trtid->straw_id(*it, i);
442 int bec, layer, sector, strawlayer, straw, status;
446 while (ifspermanent >> bec >> sector >> straw >> strawlayer >> layer >> status)
448 if ((status == 3) || (status == 4) || (status == 5))
452 ATH_MSG_FATAL(
" The Status Permanent: " << status <<
" IS NOT ACCEPTED, Use 1 for dead ");
453 return StatusCode::FAILURE;
461 std::cout <<
" Read permanent dead module from txt: " << bec <<
" ,sector " << sector <<
" ,straw " << straw <<
" ,strawlayer " << strawlayer <<
" ,layer " << layer <<
" ,status " << status << std::endl;
462 for (std::vector<Identifier>::const_iterator it =
m_trtid->straw_layer_begin(); it !=
m_trtid->straw_layer_end(); ++it)
465 int m =
m_trtid->phi_module(
id);
466 int n =
m_trtid->barrel_ec(
id);
467 int l =
m_trtid->layer_or_wheel(
id);
468 if (n != bec || m != sector || l != layer)
471 int nStrawsInLayer =
m_trtid->straw_max(*it);
472 int sl =
m_trtid->straw_layer(
id);
473 for (
int i = 0; i <= nStrawsInLayer; i++)
475 id =
m_trtid->straw_id(*it, i);
488 ATH_MSG_DEBUG(
"Permanent dead ids: bec: " << bec <<
" layer: " << layer <<
" phi: " << sector <<
" stl: " << strawlayer <<
" stw: " << straw);
491 ATH_MSG_INFO(
" Record Permanent Straw Status. Dead modules : " << nmodu <<
" Number of lines: " << line <<
" of dead identifiers ");
495 return StatusCode::FAILURE;
502 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
std::vector< Identifier > ID
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
const ServiceHandle< StoreGateSvc > & detStore() const
Identifier for TRT detector elements in the conditions code.
void set(const ExpandedIdentifier &id, const typename DaughterContainer::value_type &t)
set a value
void clear()
clear all layercontainers
A COOL multichannel container for StrawStatus.
void setStatus(const ExpandedIdentifier &id, unsigned int status)
set t0
Gaudi::Property< std::string > m_par_strawstatuspermanentcontainerkey
virtual void set_status_permanent(StrawStatusContainer *ssc, Identifier offlineID, bool set)
Gaudi::Property< std::string > m_par_stattextfilepermanent
virtual StatusCode execute() override
virtual StatusCode readStatHTFromTextFile(const std::string &filename)
virtual StatusCode finalize() override
virtual void set_status_temp(StrawStatusContainer *ssc, Identifier offlineID, bool set)
Gaudi::Property< std::string > m_par_stattextfileHT
TRTStrawStatusWrite(const std::string &name, ISvcLocator *pSvcLocator)
Gaudi::Property< std::string > m_par_strawstatuscontainerkey
Gaudi::Property< std::string > m_par_strawstatusHTcontainerkey
virtual StatusCode readStatPermFromTextFile(const std::string &filename)
TRTCond::StrawStatusMultChanContainer StrawStatusContainer
Gaudi::Property< std::string > m_par_stattextfile
virtual StatusCode readStatFromTextFile(const std::string &filename)
virtual StatusCode initialize() override