111 std::vector<EcalDQMStatusDictionary::codeDef> dictionary;
117 for (
int ic=1; ic<=1700; ic++ ) {
124 for (
int ix=1; ix<=100; ix++ ) {
125 for (
int iy=1; iy<=100; iy++ ) {
145 while ( fgets(line, 255, ifile) ) {
147 std::stringstream stream;
155 if ( key.size() == 0 || strcmp(key.c_str(),
" ") == 0 || strncmp(key.c_str(),
"#", 1) == 0 ) {
159 }
else if ( strcmp(key.c_str(),
"EB") == 0 ) {
163 stream >> index >> code;
169 if ( it != status->
end() ) code |= it->getStatusCode();
172 }
else if ( strcmp(key.c_str(),
"EE") == 0 ) {
176 stream >> ix >> iy >> iz >> code;
182 if ( it != status->
end() ) code |= it->getStatusCode();
185 }
else if ( strcmp(key.c_str(),
"Crystal") == 0 ) {
190 if ( strncmp(module.c_str(),
"EB+", 3) == 0 || strncmp(module.c_str(),
"EB-", 3) == 0 ) {
195 stream >> ie >> ip >> token;
197 int sm = atoi( module.substr(2, module.size()-2).c_str() );
199 int ism = (sm>=1&&sm<=18) ? sm+18 : -sm;
201 int ic = 20*(ie-1)+(ip-1)+1;
205 stream >> ic >> token;
207 int sm = atoi( module.substr(2, module.size()-2).c_str() );
209 int ism = (sm>=1&&sm<=18) ? sm+18 : -sm;
215 for (
unsigned int i=0;
i<dictionary.size();
i++ ) {
216 if ( strcmp(token.c_str(), dictionary[
i].desc) == 0 ) {
217 code = dictionary[
i].code;
221 std::cout <<
" --> not found in the dictionary: " << token << std::endl;
226 if ( it != status->
end() ) code |= it->getStatusCode();
229 }
else if ( strncmp(module.c_str(),
"EE+", 3) == 0 || strncmp(module.c_str(),
"EE-", 3) == 0 ) {
234 stream >> jx >> jy >> token;
238 stream >> index >> token;
243 int sm = atoi( module.substr(2, module.size()-2).c_str() );
246 if( sm == -99 ) sm = -1;
247 if( sm == +99 ) sm = +1;
249 case -7: ism = 1;
break;
250 case -8: ism = 2;
break;
251 case -9: ism = 3;
break;
252 case -1: ism = 4;
break;
253 case -2: ism = 5;
break;
254 case -3: ism = 6;
break;
255 case -4: ism = 7;
break;
256 case -5: ism = 8;
break;
257 case -6: ism = 9;
break;
258 case +7: ism = 10;
break;
259 case +8: ism = 11;
break;
260 case +9: ism = 12;
break;
261 case +1: ism = 13;
break;
262 case +2: ism = 14;
break;
263 case +3: ism = 15;
break;
264 case +4: ism = 16;
break;
265 case +5: ism = 17;
break;
266 case +6: ism = 18;
break;
269 EEDetId id(jx, jy, (ism>=1&&ism<=9)?-1:+1);
271 for (
unsigned int i=0;
i<dictionary.size();
i++ ) {
272 if ( strcmp(token.c_str(), dictionary[
i].desc) == 0 ) {
273 code = dictionary[
i].code;
277 std::cout <<
" --> not found in the dictionary: " << token << std::endl;
282 if ( it != status->
end() ) code |= it->getStatusCode();
287 std:: cout <<
"--> unknown token at line #" << ii <<
" : " <<
line;
291 }
else if ( strcmp(key.c_str(),
"TT") == 0 ) {
295 }
else if ( strcmp(key.c_str(),
"PN") == 0 || strcmp(key.c_str(),
"MemCh") == 0 || strcmp(key.c_str(),
"MemTT") == 0 ) {
297 std::cout <<
"--> unsupported key at line #" << ii <<
" : " <<
line;
void setValue(const uint32_t id, const Item &item)
EcalDQMChannelStatusMap EcalDQMChannelStatus
static void getDictionary(std::vector< codeDef > &dict)
uint32_t convert(uint32_t c)
static bool validDetId(int crystal_ix, int crystal_iy, int iz)
std::vector< Item >::const_iterator const_iterator
static EBDetId unhashIndex(int hi)
get a DetId from a compact index for arrays
static unsigned iSM(const unsigned ism, const EcalSubdetector subdet)
const_iterator find(uint32_t rawId) const
const_iterator end() const
static const int SMCRYSTALMODE
int ism(int ieta, int iphi)