33 dataLabel_(iConfig.getUntrackedParameter<std::
string>(
"dataLabel",
"")),
34 TkMapFileName_(iConfig.getUntrackedParameter<std::
string>(
"TkMapFileName",
"")),
35 fp_(iConfig.getUntrackedParameter<edm::
FileInPath>(
"file",edm::
FileInPath(
"CalibTracker/SiStripCommon/data/SiStripDetInfo.dat"))),
36 saveTkHistoMap_(iConfig.getUntrackedParameter<bool>(
"SaveTkHistoMap",
true)),
37 runNumberA_(iConfig.getUntrackedParameter<unsigned long long>(
"RunNumber",0)),
38 tkMap(0),tkMapFullIOVs(0)
42 std::stringstream ssRunNumA_;
57 filename.erase(filename.begin()+filename.find(
"."),filename.end());
87 for(
int j=0;
j<19;++
j){
97 std::stringstream ssRunNumA_;
100 tkMap=
new TrackerMap(
"Run: "+sRunNumberA+
", Type of Bad Components per module" );
104 std::vector<uint32_t>::const_iterator idet=detids.begin();
105 for(;idet!=detids.end();++idet){
106 ss <<
"detid " << (*idet) <<
" IsModuleUsable " << SiStripQuality_->IsModuleUsable((*idet)) <<
"\n";
107 if (SiStripQuality_->IsModuleUsable((*idet)))
110 LogDebug(
"SiStripQualityStatistics") << ss.str() << std::endl;
113 std::vector<SiStripQuality::BadComponent> BC = SiStripQuality_->getBadComponentList();
115 for (
size_t i=0;
i<BC.size();++
i){
124 NTkBadComponent[1]+= ( (BC[
i].BadFibers>>2)&0x1 )+ ( (BC[
i].BadFibers>>1)&0x1 ) + ( (BC[
i].BadFibers)&0x1 );
126 NTkBadComponent[2]+= ( (BC[
i].BadApvs>>5)&0x1 )+ ( (BC[
i].BadApvs>>4)&0x1 ) + ( (BC[
i].BadApvs>>3)&0x1 ) +
127 ( (BC[
i].BadApvs>>2)&0x1 )+ ( (BC[
i].BadApvs>>1)&0x1 ) + ( (BC[
i].BadApvs)&0x1 );
179 uint32_t
detid=rp->detid;
181 int subdet=-999;
int component=-999;
201 for(
int it=0;it<sqrange.second-sqrange.first;it++){
202 unsigned int range=SiStripQuality_->decode( *(sqrange.first+it) ).range;
211 edm::LogError(
"SiStripQualityStatistics") <<
"PROBLEM detid " << detid <<
" value " << percentage<< std::endl;
225 ss <<
"\n-----------------\nNew IOV starting from run " << e.
id().
run() <<
" event " << e.
id().
event() <<
" lumiBlock " << e.
luminosityBlock() <<
" time " << e.
time().
value() <<
" chacheID " <<
m_cacheID_ <<
"\n-----------------\n";
226 ss <<
"\n-----------------\nGlobal Info\n-----------------";
227 ss <<
"\nBadComponent \t Modules \tFibers \tApvs\tStrips\n----------------------------------------------------------------";
231 ss <<
"\nTID:\t\t\t"<<NBadComponent[1][0][0]<<
"\t"<<NBadComponent[1][0][1]<<
"\t"<<NBadComponent[1][0][2]<<
"\t"<<NBadComponent[1][0][3];
232 ss <<
"\nTOB:\t\t\t"<<NBadComponent[2][0][0]<<
"\t"<<NBadComponent[2][0][1]<<
"\t"<<NBadComponent[2][0][2]<<
"\t"<<NBadComponent[2][0][3];
233 ss <<
"\nTEC:\t\t\t"<<NBadComponent[3][0][0]<<
"\t"<<NBadComponent[3][0][1]<<
"\t"<<NBadComponent[3][0][2]<<
"\t"<<NBadComponent[3][0][3];
236 for (
int i=1;
i<5;++
i)
237 ss <<
"\nTIB Layer " <<
i <<
" :\t\t"<<NBadComponent[0][
i][0]<<
"\t"<<NBadComponent[0][
i][1]<<
"\t"<<NBadComponent[0][
i][2]<<
"\t"<<NBadComponent[0][
i][3];
239 for (
int i=1;
i<4;++
i)
240 ss <<
"\nTID+ Disk " <<
i <<
" :\t\t"<<NBadComponent[1][
i][0]<<
"\t"<<NBadComponent[1][
i][1]<<
"\t"<<NBadComponent[1][
i][2]<<
"\t"<<NBadComponent[1][
i][3];
241 for (
int i=4;
i<7;++
i)
242 ss <<
"\nTID- Disk " <<
i-3 <<
" :\t\t"<<NBadComponent[1][
i][0]<<
"\t"<<NBadComponent[1][
i][1]<<
"\t"<<NBadComponent[1][
i][2]<<
"\t"<<NBadComponent[1][
i][3];
244 for (
int i=1;
i<7;++
i)
245 ss <<
"\nTOB Layer " <<
i <<
" :\t\t"<<NBadComponent[2][
i][0]<<
"\t"<<NBadComponent[2][
i][1]<<
"\t"<<NBadComponent[2][
i][2]<<
"\t"<<NBadComponent[2][
i][3];
247 for (
int i=1;
i<10;++
i)
248 ss <<
"\nTEC+ Disk " <<
i <<
" :\t\t"<<NBadComponent[3][
i][0]<<
"\t"<<NBadComponent[3][
i][1]<<
"\t"<<NBadComponent[3][
i][2]<<
"\t"<<NBadComponent[3][
i][3];
249 for (
int i=10;
i<19;++
i)
250 ss <<
"\nTEC- Disk " <<
i-9 <<
" :\t\t"<<NBadComponent[3][
i][0]<<
"\t"<<NBadComponent[3][
i][1]<<
"\t"<<NBadComponent[3][
i][2]<<
"\t"<<NBadComponent[3][
i][3];
253 ss <<
"\n----------------------------------------------------------------\n\t\t Detid \tModules Fibers Apvs\n----------------------------------------------------------------";
254 for (
int i=1;
i<5;++
i)
255 ss <<
"\nTIB Layer " <<
i <<
" :" <<
ssV[0][
i].str();
257 for (
int i=1;
i<4;++
i)
258 ss <<
"\nTID+ Disk " <<
i <<
" :" <<
ssV[1][
i].str();
259 for (
int i=4;
i<7;++
i)
260 ss <<
"\nTID- Disk " <<
i-3 <<
" :" <<
ssV[1][
i].str();
262 for (
int i=1;
i<7;++
i)
263 ss <<
"\nTOB Layer " <<
i <<
" :" <<
ssV[2][
i].str();
265 for (
int i=1;
i<10;++
i)
266 ss <<
"\nTEC+ Disk " <<
i <<
" :" <<
ssV[3][
i].str();
267 for (
int i=10;
i<19;++
i)
268 ss <<
"\nTEC- Disk " <<
i-9 <<
" :" <<
ssV[3][
i].str();
271 edm::LogInfo(
"SiStripQualityStatistics") << ss.str() << std::endl;
274 std::stringstream sRun; sRun.str(
"");
275 sRun <<
"_Run_" << std::setw(6) << std::setfill(
'0')<< e.
id().
run() << std::setw(0) ;
278 filename.insert(filename.find(
"."),sRun.str());
280 filename.erase(filename.begin()+filename.find(
"."),filename.end());
290 ssV[
i][component] <<
"\n\t\t "
300 ssV[
i][component] <<
" \t "
302 << ( (BC.
BadApvs>>1)&0x1 ) <<
" ";
304 ssV[
i][component] <<
"x x " << ( (BC.
BadApvs>>2)&0x1 ) <<
" "
307 ssV[
i][component] << ( (BC.
BadApvs>>2)&0x1 ) <<
" "
308 << ( (BC.
BadApvs>>3)&0x1 ) <<
" "
309 << ( (BC.
BadApvs>>4)&0x1 ) <<
" "
310 << ( (BC.
BadApvs>>5)&0x1 ) <<
" ";
std::string TkMapFileName_
EventNumber_t event() const
unsigned int tibLayer(const DetId &id) const
void SetBadComponents(int, int, SiStripQuality::BadComponent &)
TrackerMap * tkMapFullIOVs
const std::pair< unsigned short, double > getNumberOfApvsAndStripLength(uint32_t detId) const
edm::LuminosityBlockNumber_t luminosityBlock() const
int NBadComponent[4][19][4]
unsigned int tidWheel(const DetId &id) const
Registry::const_iterator RegistryIterator
void saveAsCanvas(std::string filename, std::string options="", std::string mode="RECREATE")
void analyze(const edm::Event &, const edm::EventSetup &)
void save(std::string filename)
unsigned int tidSide(const DetId &id) const
const std::vector< uint32_t > & getAllDetIds() const
void fill(uint32_t &detid, float value)
void save(bool print_total=true, float minval=0., float maxval=0., std::string s="svgmap.svg", int width=1500, int height=800)
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
void fillc(int idmod, int RGBcode)
std::stringstream ssV[4][19]
tuple SiStripDetInfoFileReader
unsigned long long m_cacheID_
T const * product() const
unsigned long long runNumberA_
std::pair< ContainerIterator, ContainerIterator > Range
void print(bool print_total=true, float minval=0., float maxval=0., std::string s="svgmap")
SiStripDetInfoFileReader * reader
SiStripQualityStatistics(const edm::ParameterSet &)
std::string fullPath() const
unsigned int tecWheel(const DetId &id) const
TimeValue_t value() const
edm::Timestamp time() const
void fill(int layer, int ring, int nmod, float x)
unsigned int tobLayer(const DetId &id) const
unsigned int tecSide(const DetId &id) const