10 const std::string& mybit)
24 <<
"HcalSeverityLevelComputer: Error: ChannelStatusFlag >>" << mybit
25 <<
"<< unknown. Ignoring.";
32 const std::string& mybit)
79 <<
"HcalSeverityLevelComputer: Error: RecHitFlag >>" << mybit
80 <<
"<< unknown. Ignoring.";
89 typedef std::vector< edm::ParameterSet > myParameters;
90 myParameters myLevels = iConfig.
getParameter<myParameters>((std::string)
"SeverityLevels");
93 for ( myParameters::iterator itLevels = myLevels.begin(); itLevels != myLevels.end(); ++itLevels)
99 mydef.
sevLevel = itLevels->getParameter<
int>(
"Level");
102 std::vector<std::string> myRecHitFlags =
103 itLevels->getParameter<std::vector <std::string> > (
"RecHitFlags");
106 std::vector<std::string> myChStatuses =
107 itLevels->getParameter<std::vector <std::string> > (
"ChannelStatus");
111 unsigned int bvalid = 0;
112 unsigned int bnonempty = 0;
114 for (
unsigned k=0;
k < myChStatuses.size();
k++)
116 if (myChStatuses[
k].
empty())
break;
122 for (
unsigned k=0;
k < myRecHitFlags.size();
k++)
124 if (myRecHitFlags[
k].
empty())
break;
133 if ((!bvalid) && (bnonempty))
136 <<
"Warning: level " << mydef.
sevLevel
137 <<
" consists of invalid definitions only: "
139 <<
" Ignoring definition.";
144 std::vector<HcalSeverityDefinition>::iterator it =
SevDef.begin();
148 if (it ==
SevDef.end()) {
SevDef.push_back(mydef);
break; }
153 <<
"HcalSeverityLevelComputer: Warning: level " << mydef.
sevLevel
154 <<
" already defined. Ignoring new definition.";
159 if (( (it+1) ==
SevDef.end()) || ( (it+1)->sevLevel > mydef.
sevLevel ))
161 SevDef.insert(it+1, mydef);
167 while(it !=
SevDef.end());
172 <<
"HcalSeverityLevelComputer - Summary of Severity Levels:" << std::endl;
173 for (std::vector<HcalSeverityDefinition>::iterator it =
SevDef.begin(); it !=
SevDef.end(); it++)
177 << (*it) << std::endl;
183 std::vector<std::string> myRecovered =
184 iConfig.
getParameter<std::vector <std::string> > (
"RecoveredRecHitBits");
186 for (
unsigned k=0;
k < myRecovered.size();
k++)
188 if (myRecovered[
k].
empty())
break;
195 std::vector<std::string> myDrop =
196 iConfig.
getParameter<std::vector <std::string> > (
"DropChannelStatusBits");
198 for (
unsigned k=0;
k < myDrop.size();
k++)
200 if (myDrop[
k].
empty())
break;
205 <<
"HcalSeverityLevelComputer - Summary for Recovered RecHit bits: \n"
206 << (*RecoveredRecHit_) << std::endl
207 <<
"HcalSeverityLevelComputer - Summary for Drop the Channel bits: \n"
208 << (*DropChannel_) << std::endl;
218 const uint32_t& mystatus)
const
220 uint32_t myRecHitMask;
228 for (
size_t j=(
SevDef.size());
j > 0;
j--)
234 myRecHitMask =
SevDef[
i].HBHEFlagMask;
break;
239 default: myRecHitMask = 0;
257 if ( ( ( ( !
SevDef[i].HBHEFlagMask
261 && !
SevDef[i].CalibFlagMask )
262 || (myRecHitMask & myflag) )
263 && ( (!
SevDef[
i].chStatusMask) || (
SevDef[i].chStatusMask & mystatus) ) )
264 || ( (myRecHitMask & myflag) || (
SevDef[i].chStatusMask & mystatus) ) )
274 uint32_t myRecHitMask;
286 default: myRecHitMask = 0;
289 if (myRecHitMask & myflag)
305 uint32_t statadd = 0x1<<(bitnumber);
306 where = where|statadd;
320 s <<
"Hcal Severity Level Definition, Level = " << def.
sevLevel << std::endl;
321 s << std::hex << std::showbase;
322 s <<
" channel status mask = " << def.
chStatusMask << std::endl;
323 s <<
" HBHEFlagMask = " << def.
HBHEFlagMask << std::endl;
324 s <<
" HOFlagMask = " << def.
HOFlagMask << std::endl;
325 s <<
" HFFlagMask = " << def.
HFFlagMask << std::endl;
326 s <<
" ZDCFlagMask = " << def.
ZDCFlagMask << std::endl;
327 s <<
" CalibFlagMask = " << def.
CalibFlagMask << std::dec << std::noshowbase << std::endl;
T getParameter(std::string const &) const
HcalSeverityLevelComputer(const edm::ParameterSet &)
std::ostream & operator<<(std::ostream &out, const ALILine &li)
~HcalSeverityLevelComputer()
std::vector< HcalSeverityDefinition > SevDef
bool recoveredRecHit(const DetId &myid, const uint32_t &myflag) const
bool dropChannel(const uint32_t &mystatus) const
HcalSeverityDefinition * RecoveredRecHit_
bool getRecHitFlag(HcalSeverityDefinition &mydef, const std::string &mybit)
int getSeverityLevel(const DetId &myid, const uint32_t &myflag, const uint32_t &mystatus) const
void setBit(const unsigned bitnumber, uint32_t &where)
HcalSeverityDefinition * DropChannel_
HcalGenericSubdetector genericSubdet() const
void setAllRHMasks(const unsigned bitnumber, HcalSeverityDefinition &mydef)
bool getChStBit(HcalSeverityDefinition &mydef, const std::string &mybit)