67 #include "TObjString.h"
79 #include "TGraphAsymmErrors.h"
100 virtual void algoBeginJob();
101 virtual void algoEndJob();
105 void makeHotColdMaps();
107 void totalStatistics();
109 float calcPhi(
float x,
float y);
125 vector<hit> hits[23];
127 map< unsigned int, pair< unsigned int, unsigned int> > modCounter[23];
132 int goodlayertotal[35];
133 int goodlayerfound[35];
134 int alllayertotal[35];
135 int alllayerfound[35];
141 FileInPath_(
"CalibTracker/SiStripCommon/data/SiStripDetInfo.dat")
170 CalibTree = (TTree*)(gDirectory->Get(
"traj")) ;
171 TLeaf* BadLf =
CalibTree->GetLeaf(
"ModIsBad");
172 TLeaf* sistripLf =
CalibTree->GetLeaf(
"SiStripQualBad");
174 TLeaf* acceptLf =
CalibTree->GetLeaf(
"withinAcceptance");
175 TLeaf* layerLf =
CalibTree->GetLeaf(
"layer");
176 TLeaf* nHitsLf =
CalibTree->GetLeaf(
"nHits");
177 TLeaf* xLf =
CalibTree->GetLeaf(
"TrajGlbX");
178 TLeaf* yLf =
CalibTree->GetLeaf(
"TrajGlbY");
179 TLeaf* zLf =
CalibTree->GetLeaf(
"TrajGlbZ");
180 TLeaf* ResXSigLf =
CalibTree->GetLeaf(
"ResXSig");
182 for(
int l=0;
l < 35;
l++) {
192 cout <<
"Successfully loaded analyze function with " << nevents <<
" events!\n";
193 cout <<
"A module is bad if efficiency < " <<
threshold <<
" and has at least " <<
nModsMin <<
" nModsMin." << endl;
198 unsigned int isBad = (
unsigned int)BadLf->GetValue();
199 unsigned int quality = (
unsigned int)sistripLf->GetValue();
200 unsigned int id = (
unsigned int)idLf->GetValue();
201 unsigned int accept = (
unsigned int)acceptLf->GetValue();
202 unsigned int layer = (
unsigned int)layerLf->GetValue();
203 unsigned int nHits = (
unsigned int)nHitsLf->GetValue();
204 double x = xLf->GetValue();
205 double y = yLf->GetValue();
206 double z = zLf->GetValue();
207 double resxsig = ResXSigLf->GetValue();
208 bool badquality =
false;
210 if(
_bunchx != BunchLf->GetValue())
continue;
216 if(accept != 1 || nHits < 8)
continue;
217 if(quality == 1) badquality =
true;
222 bool badflag =
false;
224 if(isBad == 1) badflag =
true;
227 if(isBad == 1 || resxsig >
_ResXSig) badflag =
true;
229 if(badflag && !badquality) {
235 hits[layer].push_back(temphit);
237 pair<unsigned int, unsigned int> newgoodpair (1,1);
238 pair<unsigned int, unsigned int> newbadpair (1,0);
240 map< unsigned int, pair< unsigned int, unsigned int> >::iterator it =
modCounter[layer].find(
id);
247 ((*it).second.first)++;
248 if(!badflag) ((*it).second.second)++;
255 else if(layer > 10 && layer < 14) {
256 if( ((
id>>13)&0x3) == 1) {
260 else if( ((
id>>13)&0x3) == 2) {
265 else if(layer > 13 && layer <= 22) {
266 if( ((
id>>18)&0x3) == 1) {
270 else if( ((
id>>18)&0x3) == 2) {
281 else if(layer > 10 && layer < 14) {
282 if( ((
id>>13)&0x3) == 1) {
286 else if( ((
id>>13)&0x3) == 2) {
291 else if(layer > 13 && layer <= 22) {
292 if( ((
id>>18)&0x3) == 1) {
296 else if( ((
id>>18)&0x3) == 2) {
313 int NTkBadComponent[4];
314 int NBadComponent[4][19][4];
318 std::stringstream ssV[4][19];
320 for(
int i=0;
i<4;++
i){
321 NTkBadComponent[
i]=0;
322 for(
int j=0;
j<19;++
j){
325 NBadComponent[
i][
j][
k]=0;
332 for (
size_t i=0;
i<BC.size();++
i){
339 NTkBadComponent[0]++;
341 NTkBadComponent[1]+= ( (BC[
i].BadFibers>>2)&0x1 )+ ( (BC[
i].BadFibers>>1)&0x1 ) + ( (BC[
i].BadFibers)&0x1 );
343 NTkBadComponent[2]+= ( (BC[
i].BadApvs>>5)&0x1 )+ ( (BC[
i].BadApvs>>4)&0x1 ) + ( (BC[
i].BadApvs>>3)&0x1 ) +
344 ( (BC[
i].BadApvs>>2)&0x1 )+ ( (BC[
i].BadApvs>>1)&0x1 ) + ( (BC[
i].BadApvs)&0x1 );
396 unsigned int detid=rp->detid;
417 for(
int it=0;it<sqrange.second-sqrange.first;it++){
419 NTkBadComponent[3]+=range;
420 NBadComponent[subdet][0][3]+=range;
421 NBadComponent[subdet][component][3]+=range;
427 edm::LogError(
"SiStripQualityStatistics") <<
"PROBLEM detid " << detid <<
" value " << percentage<< std::endl;
433 cout <<
"\n-----------------\nNew IOV starting from run " << e.
id().
run() <<
" event " << e.
id().
event() <<
" lumiBlock " << e.
luminosityBlock() <<
" time " << e.
time().
value() <<
"\n-----------------\n";
434 cout <<
"\n-----------------\nGlobal Info\n-----------------";
435 cout <<
"\nBadComponent \t Modules \tFibers \tApvs\tStrips\n----------------------------------------------------------------";
436 cout <<
"\nTracker:\t\t"<<NTkBadComponent[0]<<
"\t"<<NTkBadComponent[1]<<
"\t"<<NTkBadComponent[2]<<
"\t"<<NTkBadComponent[3];
438 cout <<
"\nTIB:\t\t\t"<<NBadComponent[0][0][0]<<
"\t"<<NBadComponent[0][0][1]<<
"\t"<<NBadComponent[0][0][2]<<
"\t"<<NBadComponent[0][0][3];
439 cout <<
"\nTID:\t\t\t"<<NBadComponent[1][0][0]<<
"\t"<<NBadComponent[1][0][1]<<
"\t"<<NBadComponent[1][0][2]<<
"\t"<<NBadComponent[1][0][3];
440 cout <<
"\nTOB:\t\t\t"<<NBadComponent[2][0][0]<<
"\t"<<NBadComponent[2][0][1]<<
"\t"<<NBadComponent[2][0][2]<<
"\t"<<NBadComponent[2][0][3];
441 cout <<
"\nTEC:\t\t\t"<<NBadComponent[3][0][0]<<
"\t"<<NBadComponent[3][0][1]<<
"\t"<<NBadComponent[3][0][2]<<
"\t"<<NBadComponent[3][0][3];
444 for (
int i=1;
i<5;++
i)
445 cout <<
"\nTIB Layer " <<
i <<
" :\t\t"<<NBadComponent[0][
i][0]<<
"\t"<<NBadComponent[0][
i][1]<<
"\t"<<NBadComponent[0][
i][2]<<
"\t"<<NBadComponent[0][
i][3];
447 for (
int i=1;
i<4;++
i)
448 cout <<
"\nTID+ Disk " <<
i <<
" :\t\t"<<NBadComponent[1][
i][0]<<
"\t"<<NBadComponent[1][
i][1]<<
"\t"<<NBadComponent[1][
i][2]<<
"\t"<<NBadComponent[1][
i][3];
449 for (
int i=4;
i<7;++
i)
450 cout <<
"\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];
452 for (
int i=1;
i<7;++
i)
453 cout <<
"\nTOB Layer " <<
i <<
" :\t\t"<<NBadComponent[2][
i][0]<<
"\t"<<NBadComponent[2][
i][1]<<
"\t"<<NBadComponent[2][
i][2]<<
"\t"<<NBadComponent[2][
i][3];
455 for (
int i=1;
i<10;++
i)
456 cout <<
"\nTEC+ Disk " <<
i <<
" :\t\t"<<NBadComponent[3][
i][0]<<
"\t"<<NBadComponent[3][
i][1]<<
"\t"<<NBadComponent[3][
i][2]<<
"\t"<<NBadComponent[3][
i][3];
457 for (
int i=10;
i<19;++
i)
458 cout <<
"\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];
461 cout <<
"\n----------------------------------------------------------------\n\t\t Detid \tModules Fibers Apvs\n----------------------------------------------------------------";
462 for (
int i=1;
i<5;++
i)
463 cout <<
"\nTIB Layer " <<
i <<
" :" << ssV[0][
i].str();
465 for (
int i=1;
i<4;++
i)
466 cout <<
"\nTID+ Disk " <<
i <<
" :" << ssV[1][
i].str();
467 for (
int i=4;
i<7;++
i)
468 cout <<
"\nTID- Disk " <<
i-3 <<
" :" << ssV[1][
i].str();
470 for (
int i=1;
i<7;++
i)
471 cout <<
"\nTOB Layer " <<
i <<
" :" << ssV[2][
i].str();
473 for (
int i=1;
i<10;++
i)
474 cout <<
"\nTEC+ Disk " <<
i <<
" :" << ssV[3][
i].str();
475 for (
int i=10;
i<19;++
i)
476 cout <<
"\nTEC- Disk " <<
i-9 <<
" :" << ssV[3][
i].str();
481 cout <<
"Entering hot cold map generation!\n";
482 TStyle* gStyle =
new TStyle(
"gStyle",
"myStyle");
484 gStyle->SetPalette(1);
485 gStyle->SetCanvasColor(kWhite);
486 gStyle->SetOptStat(0);
491 for(Long_t maplayer = 1; maplayer <=22; maplayer++) {
493 if(maplayer > 0 && maplayer <= 4) {
495 temph2 =
fs->
make<TH2F>(Form(
"%s%i",
"TIB",(
int)(maplayer)),
"TIB",100,-1,361,100,-100,100);
496 temph2->GetXaxis()->SetTitle(
"Phi");
497 temph2->GetXaxis()->SetBinLabel(1,TString(
"360"));
498 temph2->GetXaxis()->SetBinLabel(50,TString(
"180"));
499 temph2->GetXaxis()->SetBinLabel(100,TString(
"0"));
500 temph2->GetYaxis()->SetTitle(
"Global Z");
501 temph2->SetOption(
"colz");
504 else if(maplayer > 4 && maplayer <= 10) {
506 temph2 =
fs->
make<TH2F>(Form(
"%s%i",
"TOB",(
int)(maplayer-4)),
"TOB",100,-1,361,100,-120,120);
507 temph2->GetXaxis()->SetTitle(
"Phi");
508 temph2->GetXaxis()->SetBinLabel(1,TString(
"360"));
509 temph2->GetXaxis()->SetBinLabel(50,TString(
"180"));
510 temph2->GetXaxis()->SetBinLabel(100,TString(
"0"));
511 temph2->GetYaxis()->SetTitle(
"Global Z");
512 temph2->SetOption(
"colz");
515 else if(maplayer > 10 && maplayer <= 13) {
518 temph2 =
fs->
make<TH2F>(Form(
"%s%i",
"TID-",(
int)(maplayer-10)),
"TID-",100,-100,100,100,-100,100);
519 temph2->GetXaxis()->SetTitle(
"Global Y");
520 temph2->GetXaxis()->SetBinLabel(1,TString(
"+Y"));
521 temph2->GetXaxis()->SetBinLabel(50,TString(
"0"));
522 temph2->GetXaxis()->SetBinLabel(100,TString(
"-Y"));
523 temph2->GetYaxis()->SetTitle(
"Global X");
524 temph2->GetYaxis()->SetBinLabel(1,TString(
"-X"));
525 temph2->GetYaxis()->SetBinLabel(50,TString(
"0"));
526 temph2->GetYaxis()->SetBinLabel(100,TString(
"+X"));
527 temph2->SetOption(
"colz");
529 temph2 =
fs->
make<TH2F>(Form(
"%s%i",
"TID+",(
int)(maplayer-10)),
"TID+",100,-100,100,100,-100,100);
530 temph2->GetXaxis()->SetTitle(
"Global Y");
531 temph2->GetXaxis()->SetBinLabel(1,TString(
"+Y"));
532 temph2->GetXaxis()->SetBinLabel(50,TString(
"0"));
533 temph2->GetXaxis()->SetBinLabel(100,TString(
"-Y"));
534 temph2->GetYaxis()->SetTitle(
"Global X");
535 temph2->GetYaxis()->SetBinLabel(1,TString(
"-X"));
536 temph2->GetYaxis()->SetBinLabel(50,TString(
"0"));
537 temph2->GetYaxis()->SetBinLabel(100,TString(
"+X"));
538 temph2->SetOption(
"colz");
541 else if(maplayer > 13) {
544 temph2 =
fs->
make<TH2F>(Form(
"%s%i",
"TEC-",(
int)(maplayer-13)),
"TEC-",100,-120,120,100,-120,120);
545 temph2->GetXaxis()->SetTitle(
"Global Y");
546 temph2->GetXaxis()->SetBinLabel(1,TString(
"+Y"));
547 temph2->GetXaxis()->SetBinLabel(50,TString(
"0"));
548 temph2->GetXaxis()->SetBinLabel(100,TString(
"-Y"));
549 temph2->GetYaxis()->SetTitle(
"Global X");
550 temph2->GetYaxis()->SetBinLabel(1,TString(
"-X"));
551 temph2->GetYaxis()->SetBinLabel(50,TString(
"0"));
552 temph2->GetYaxis()->SetBinLabel(100,TString(
"+X"));
553 temph2->SetOption(
"colz");
555 temph2 =
fs->
make<TH2F>(Form(
"%s%i",
"TEC+",(
int)(maplayer-13)),
"TEC+",100,-120,120,100,-120,120);
556 temph2->GetXaxis()->SetTitle(
"Global Y");
557 temph2->GetXaxis()->SetBinLabel(1,TString(
"+Y"));
558 temph2->GetXaxis()->SetBinLabel(50,TString(
"0"));
559 temph2->GetXaxis()->SetBinLabel(100,TString(
"-Y"));
560 temph2->GetYaxis()->SetTitle(
"Global X");
561 temph2->GetYaxis()->SetBinLabel(1,TString(
"-X"));
562 temph2->GetYaxis()->SetBinLabel(50,TString(
"0"));
563 temph2->GetYaxis()->SetBinLabel(100,TString(
"+X"));
564 temph2->SetOption(
"colz");
568 for(Long_t mylayer = 1; mylayer <= 22; mylayer++) {
572 vector<hit>::const_iterator iter;
573 for(iter =
hits[mylayer].
begin(); iter !=
hits[mylayer].end(); iter++) {
577 if(mylayer > 0 && mylayer <= 4) {
580 HotColdMaps[mylayer - 1]->Fill(360.-phi,iter->z,1.);
582 else if(mylayer > 4 && mylayer <= 10) {
585 HotColdMaps[mylayer - 1]->Fill(360.-phi,iter->z,1.);
587 else if(mylayer > 10 && mylayer <= 13) {
590 int side = (((iter->id)>>13) & 0x3);
591 if(side == 1)
HotColdMaps[(mylayer - 1) + (mylayer - 11)]->Fill(-iter->y,iter->x,1.);
592 else if(side == 2)
HotColdMaps[(mylayer - 1) + (mylayer - 10)]->Fill(-iter->y,iter->x,1.);
596 else if(mylayer > 13) {
599 int side = (((iter->id)>>18) & 0x3);
600 if(side == 1)
HotColdMaps[(mylayer + 2) + (mylayer - 14)]->Fill(-iter->y,iter->x,1.);
601 else if(side == 2)
HotColdMaps[(mylayer + 2) + (mylayer - 13)]->Fill(-iter->y,iter->x,1.);
607 cout <<
"Finished HotCold Map Generation\n";
611 cout <<
"Entering TKMap generation!\n";
614 for(Long_t
i = 1;
i <= 22;
i++) {
619 map<unsigned int, pair<unsigned int, unsigned int> >::const_iterator ih;
623 double myeff = (double)(((*ih).second).second)/(((*ih).second).first);
628 cout <<
"Layer " <<
i <<
" module " << (*ih).first <<
" efficiency " << myeff <<
" " << (((*ih).second).
second) <<
"/" << (((*ih).second).
first) << endl;
634 if((((*ih).second).first) < 100 ) {
635 cout <<
"Module " << (*ih).first <<
" layer " <<
i <<
" is under occupancy at " << (((*ih).second).
first) << endl;
649 tkmap->
save(
true, 0, 0,
"SiStripHitEffTKMap.png");
650 tkmapbad->
save(
true, 0, 0,
"SiStripHitEffTKMapBad.png");
651 cout <<
"Finished TKMap Generation\n";
656 cout <<
"Entering SQLite file generation!\n";
657 std::vector<unsigned int> BadStripList;
658 unsigned short NStrips;
664 map< unsigned int, double >::const_iterator it;
669 cout <<
"Number of strips module " << (*it).first <<
" is " << NStrips << endl;
670 BadStripList.push_back(pQuality->
encode(0,NStrips,0));
672 id1=(
unsigned int)(*it).first;
673 cout <<
"ID1 shoudl match list of modules above " << id1 << endl;
677 BadStripList.clear();
688 for(Long_t
i=1;
i<=22;
i++) {
694 cout <<
"The total efficiency is " << double(totalfound)/double(totaltotal) << endl;
702 TH1F *
found =
fs->
make<TH1F>(
"found",
"found",nLayers+1,0,nLayers+1);
703 TH1F *
all =
fs->
make<TH1F>(
"all",
"all",nLayers+1,0,nLayers+1);
704 TH1F *found2 =
fs->
make<TH1F>(
"found2",
"found2",nLayers+1,0,nLayers+1);
705 TH1F *all2 =
fs->
make<TH1F>(
"all2",
"all2",nLayers+1,0,nLayers+1);
707 found->SetBinContent(0,-1);
708 all->SetBinContent(0,1);
710 TCanvas *c7 =
new TCanvas(
"c7",
" test ",10,10,800,600);
714 for (Long_t
i=1;
i< nLayers+1; ++
i) {
724 found->SetBinContent(
i,0);
725 all->SetBinContent(
i,10);
733 found2->SetBinContent(
i,0);
734 all2->SetBinContent(
i,10);
745 TGraphAsymmErrors *gr =
new TGraphAsymmErrors(nLayers+1);
746 gr->BayesDivide(found,all);
748 TGraphAsymmErrors *gr2 =
new TGraphAsymmErrors(nLayers+1);
749 gr2->BayesDivide(found2,all2);
751 for(
int j = 0;
j<nLayers+1;
j++){
752 gr->SetPointError(
j, 0., 0., gr->GetErrorYlow(
j),gr->GetErrorYhigh(
j) );
753 gr2->SetPointError(
j, 0., 0., gr2->GetErrorYlow(
j),gr2->GetErrorYhigh(
j) );
756 gr->GetXaxis()->SetLimits(0,nLayers);
757 gr->SetMarkerColor(2);
758 gr->SetMarkerSize(1.2);
761 gr->SetMarkerStyle(20);
762 gr->SetMinimum(0.90);
763 gr->SetMaximum(1.001);
764 gr->GetYaxis()->SetTitle(
"Efficiency");
766 gr2->GetXaxis()->SetLimits(0,nLayers);
767 gr2->SetMarkerColor(1);
768 gr2->SetMarkerSize(1.2);
769 gr2->SetLineColor(1);
770 gr2->SetLineWidth(4);
771 gr2->SetMarkerStyle(21);
772 gr2->SetMinimum(0.90);
773 gr2->SetMaximum(1.001);
774 gr2->GetYaxis()->SetTitle(
"Efficiency");
777 for ( Long_t
k=1;
k<nLayers+1;
k++) {
783 label = TString(
"TIB ") +
k;
784 }
else if (
k>4&&
k<11) {
785 label = TString(
"TOB ")+(
k-4);
786 }
else if (
k>10&&
k<14) {
787 label = TString(
"TID- ")+(
k-10);
788 }
else if (
k>13&&
k<17) {
789 label = TString(
"TID+ ")+(
k-13);
790 }
else if (
k>16&&
k<26) {
791 label = TString(
"TEC- ")+(
k-16);
793 label = TString(
"TEC+ ")+(
k-25);
795 gr->GetXaxis()->SetBinLabel(((
k+1)*100)/(nLayers)-2,label);
796 gr2->GetXaxis()->SetBinLabel(((
k+1)*100)/(nLayers)-2,label);
800 gr->GetXaxis()->SetNdivisions(36);
803 TPad *overlay =
new TPad(
"overlay",
"",0,0,1,1);
804 overlay->SetFillStyle(4000);
805 overlay->SetFillColor(0);
806 overlay->SetFrameFillStyle(4000);
807 overlay->Draw(
"same");
811 TLegend *
leg =
new TLegend(0.70,0.20,0.92,0.39);
812 leg->AddEntry(gr,
"Good Modules",
"p");
813 leg->AddEntry(gr2,
"All Modules",
"p");
814 leg->SetTextSize(0.020);
815 leg->SetFillColor(0);
818 c7->SaveAs(
"Summary.png");
829 for(;rIter!=rIterEnd;++rIter){
831 if ( ! obj->
put(rIter->detid,range) )
832 edm::LogError(
"SiStripHitEffFromCalibTree")<<
"[SiStripHitEffFromCalibTree::getNewObject] detid already exists"<<std::endl;
841 if((x>=0)&&(y>=0)) phi = atan(y/x);
842 else if((x>=0)&&(y<=0)) phi = atan(y/x) + 2*
Pi;
843 else if((x<=0)&&(y>=0)) phi = atan(y/x) +
Pi;
844 else phi = atan(y/x) +
Pi;
854 ssV[
i][component] <<
"\n\t\t "
859 ssV[
i][component] <<
"x " <<( (BC.
BadFibers>>1)&0x1 );
862 ssV[
i][component] << ( (BC.
BadFibers>>1)&0x1 ) <<
" "
864 ssV[
i][component] <<
" \t "
866 << ( (BC.
BadApvs>>1)&0x1 ) <<
" ";
868 ssV[
i][component] <<
"x x " << ( (BC.
BadApvs>>2)&0x1 ) <<
" "
871 ssV[
i][component] << ( (BC.
BadApvs>>2)&0x1 ) <<
" "
872 << ( (BC.
BadApvs>>3)&0x1 ) <<
" "
873 << ( (BC.
BadApvs>>4)&0x1 ) <<
" "
874 << ( (BC.
BadApvs>>5)&0x1 ) <<
" ";
879 NBadComponent[
i][component][2]+= ( (BC.
BadApvs>>5)&0x1 )+ ( (BC.
BadApvs>>4)&0x1 ) + ( (BC.
BadApvs>>3)&0x1 ) +
887 NBadComponent[
i][0][0]++;
888 NBadComponent[
i][component][0]++;
vector< TH2F * > HotColdMaps
TString CalibTreeFilename
T getParameter(std::string const &) const
EventNumber_t event() const
T getUntrackedParameter(std::string const &, T const &) const
const std::vector< BadComponent > & getBadComponentList() const
unsigned int layer() const
layer id
virtual void algoAnalyze(const edm::Event &e, const edm::EventSetup &c)
const std::pair< unsigned short, double > getNumberOfApvsAndStripLength(uint32_t detId) const
#define DEFINE_FWK_MODULE(type)
edm::LuminosityBlockNumber_t luminosityBlock() const
~SiStripHitEffFromCalibTree()
void SetBadComponents(int i, int component, SiStripQuality::BadComponent &BC, std::stringstream ssV[4][19], int NBadComponent[4][19][4])
Registry::const_iterator RegistryIterator
SiStripDetInfoFileReader * reader
SiStripQuality * quality_
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
unsigned int side() const
positive or negative id
U second(std::pair< T, U > const &p)
float calcPhi(float x, float y)
RegistryIterator getRegistryVectorEnd() const
edm::Service< TFileService > fs
virtual void algoBeginJob()
void save(bool print_total=true, float minval=0., float maxval=0., std::string s="svgmap.svg", int width=1500, int height=800)
void compact(unsigned int &, std::vector< unsigned int > &)
edm::FileInPath FileInPath_
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
map< unsigned int, pair< unsigned int, unsigned int > > modCounter[23]
void fillc(int idmod, int RGBcode)
ContainerIterator getDataVectorBegin() const
tuple SiStripDetInfoFileReader
Detector identifier class for the strip tracker.
TimeValue_t value() const
unsigned int side() const
positive or negative id
unsigned int wheel() const
wheel id
virtual void algoEndJob()
unsigned int layer() const
layer id
RegistryIterator getRegistryVectorBegin() const
std::pair< ContainerIterator, ContainerIterator > Range
T * make() const
make new ROOT object
SiStripBadStrip * getNewObject()
map< unsigned int, double > BadModules
std::string fullPath() const
bool put(const uint32_t &detID, const InputVector &vect)
unsigned int encode(const unsigned short &first, const unsigned short &NconsecutiveBadStrips, const unsigned short &flag=0)
SiStripHitEffFromCalibTree(const edm::ParameterSet &)
edm::Timestamp time() const
void fill(int layer, int ring, int nmod, float x)
data decode(const unsigned int &value) const
unsigned int wheel() const
wheel id