15 #include "TPolyLine.h"
36 jsfilename=
"CommonTools/TrackerMap/data/trackermap.txt";
37 infilename=
"CommonTools/TrackerMap/data/tracker.dat";
39 if(tkmapPset.
exists(
"trackermaptxtPath")){
56 }
else std::cout <<
"no parameters found" << std::endl;
61 const std::vector<unsigned short> feds = tkFed->feds();
62 std::cout<<
"SiStripFedCabling has "<< feds.size()<<
" active FEDS"<<std::endl;
65 for(std::vector<unsigned short>::const_iterator ifed = feds.begin();ifed<feds.end();ifed++){
66 const std::vector<FedChannelConnection> theconn = tkFed->connections( *ifed );
68 for(std::vector<FedChannelConnection>::const_iterator iconn = theconn.begin();iconn<theconn.end();iconn++){
79 int key = iconn->fedId()*1000+iconn->fedCh();
81 if(apvpair!=0)
std::cout <<
"Fed "<< iconn->fedId() <<
" channel " << iconn->fedCh() <<
" seem to be already loaded!"<<std::endl;
86 if(
fedMap[iconn->fedId()]==0){num_crate=num_board/18+1;
fedMap[iconn->fedId()]=num_crate;num_board++;}
90 apvpair->
mpos=iconn->apvPairNumber();
92 apvModuleMap.insert(std::make_pair(iconn->detId(),apvpair));
95 apvpair->
text=s.str();
100 std::cout << num_crate <<
" crates used "<< std::endl;
102 std::map<int , TmModule *>::iterator i_mod;
106 std::ostringstream outs,outs1;
107 outs <<
" connected to ";
112 std::multimap<const int, TmApvPair*>::iterator
pos;
118 outs1 << apvpair->
idex+apvpair->
crate*1000000<<
",";
123 outs<<
"("<<nchan<<
")";
125 std::string
s = outs1.str(); s.erase(s.end()-1,s.end());
132 int nfec=0;
int nccu;
int nmod;
136 std::string Ccufilename=tkmapPset.
getUntrackedParameter<std::string>(
"trackerdatPath",
"")+
"cculist.txt";
139 while(!Ccufile.eof()) {
140 Ccufile >> crate >> slot >> ring >> addr >>
pos;
141 getline(Ccufile,dummys);
142 int key =crate*10000000+slot*100000+ring*1000+addr;
145 ccu =
new TmCcu(crate,slot,ring,addr);
151 for ( std::vector<SiStripFecCrate>::const_iterator icrate = fecCabling_->
crates().begin(); icrate != fecCabling_->
crates().end(); icrate++ ) {
152 for ( std::vector<SiStripFec>::const_iterator ifec = icrate->fecs().begin(); ifec != icrate->fecs().end(); ifec++ ) {
153 for ( std::vector<SiStripRing>::const_iterator iring = ifec->rings().begin(); iring != ifec->rings().end(); iring++ ) {
155 for ( std::vector<SiStripCcu>::const_iterator iccu = iring->ccus().begin(); iccu != iring->ccus().end(); iccu++ ) {
157 int key = icrate->fecCrate()*10000000+ifec->fecSlot()*100000+iring->fecRing()*1000+iccu->ccuAddr();
160 for ( std::vector<SiStripModule>::const_iterator imod = iccu->modules().begin(); imod != iccu->modules().end(); imod++ ) {
167 if(ccu==0)
std::cout <<key<<
" This ccu seems to have not been stored! " << std::endl;
else{ ccu->
nmod=nmod;ccu->
layer=layer;}
175 std::map<int , TmCcu *>::iterator i_ccu;
176 std::multimap<TmCcu*, TmModule*>::iterator it;
177 std::pair<std::multimap<TmCcu*, TmModule*>::iterator,std::multimap<TmCcu*, TmModule*>::iterator>
ret;
179 for( i_ccu=
ccuMap.begin();i_ccu !=
ccuMap.end(); i_ccu++){
180 TmCcu * ccu= i_ccu->second;
183 std::ostringstream outs;
184 std::ostringstream outs1;
188 for (it = ret.first; it != ret.second; ++it)
190 outs << (*it).second->idex <<
" ";
191 outs1 << (*it).second->getKey() <<
",";
194 ccu->
text=outs.str();
209 int npsu=0;
int nmod,nmodHV2,nmodHV3;
210 int modId1,modId2, dcuId;
211 int dcs,branch,crate,board;
213 std::string channelstr1;
221 std::string LVfilename=tkmapPset.
getUntrackedParameter<std::string>(
"trackerdatPath",
"")+
"psdcumap.dat";
222 std::string HVfilename=tkmapPset.
getUntrackedParameter<std::string>(
"trackerdatPath",
"")+
"hvmap.dat";
226 std::cout<<LVfilename<<
" "<<HVfilename<<std::endl;
232 while(!HVfile.eof()) {
233 HVfile >> modId2 >> channelstr1;
234 std::string channelstr2 = channelstr1.substr(9,1);
235 channel= atoi(channelstr2.c_str());
238 imod->HVchannel=channel;
245 while(!LVfile.eof()) {
246 LVfile >> modId1 >> dcuId >> psinfo;
248 int length=psinfo.length();
249 std::string dcsinfo = psinfo.substr(39,1);
251 std::string crateinfo= psinfo.substr(69,1);
252 std::string boardinfo = psinfo.substr(80,2);
253 std::string psIdinfo = psinfo.substr(83,length-83);
255 dcs= atoi(dcsinfo.c_str());
256 branch= atoi(branchinfo.c_str());
257 crate= atoi(crateinfo.c_str())+1;
258 board= atoi(boardinfo.c_str())+1;
260 if(dcs==1)rack=(branch+1)/2;
261 if(dcs==2)rack=(branch+1)/2 + 7;
262 if(dcs==3)rack=(branch+1)/2 + 15;
263 if(dcs==4)rack=(branch+1)/2 + 22;
265 int key = rack*1000+crate*100+board;
270 psu =
new TmPsu(dcs,branch,rack,crate,board);
282 std::map<int , TmPsu *>::iterator ipsu;
283 std::multimap<TmPsu*, TmModule*>::iterator it;
284 std::pair<std::multimap<TmPsu*, TmModule*>::iterator,std::multimap<TmPsu*, TmModule*>::iterator>
ret;
288 TmPsu * psu= ipsu->second;
293 std::ostringstream outs;
294 std::ostringstream outs1;
296 std::ostringstream outs3;
297 std::ostringstream outs4;
299 std::ostringstream outs5;
300 std::ostringstream outs6;
317 for (it = ret.first; it != ret.second; ++it)
320 outs << (*it).second->idex <<
", ";
321 outs1 << (*it).second->getKey() <<
",";
324 if((*it).second->HVchannel==2){
326 outs3 << (*it).second->idex <<
", ";
327 outs4 << (*it).second->getKey() <<
",";}
328 else if((*it).second->HVchannel==3){
330 outs5 << (*it).second->idex <<
", ";
331 outs6 << (*it).second->getKey() <<
",";}
338 outs <<
"(" << psu->
nmod <<
")";
339 psu->
text=outs.str();
346 outs3 <<
"(" << psu->
nmodHV2 <<
")";
347 outs5 <<
"(" << psu->
nmodHV3 <<
")";
366 jsfilename=
"CommonTools/TrackerMap/data/trackermap.txt";
367 infilename=
"CommonTools/TrackerMap/data/tracker.dat";
370 if(tkmapPset.
exists(
"trackermaptxtPath")){
375 }
else std::cout <<
"no parameters found" << std::endl;
383 jsfilename=
"CommonTools/TrackerMap/data/trackermap.txt";
384 infilename=
"CommonTools/TrackerMap/data/tracker.dat";
391 std::map<int , TmModule *>::iterator i_mod;
415 for (
int subdet=1; subdet <
ndet+1; subdet++){
416 for (
int detpart=1; detpart <
npart+1; detpart++){
418 for(
int layer=1; layer < nlayers+1; layer++){
421 int layer_g =
nlayer(subdet,detpart,layer);
424 if(subdet==3 && detpart!=2)
firstRing[layer_g-1]= 8-nrings;
450 for (
int layer=1; layer < 44; layer++){
455 if(mod !=0 )
delete mod;
465 std::map<int , TmApvPair *>::iterator i_apv;
466 for( i_apv=
apvMap.begin();i_apv !=
apvMap.end(); i_apv++){
472 std::map<int , TmCcu *>::iterator i_ccu;
473 for( i_ccu=
ccuMap.begin();i_ccu !=
ccuMap.end(); i_ccu++){
474 TmCcu * ccu= i_ccu->second;
478 std::map<int , TmPsu *>::iterator ipsu;
480 TmPsu * psu= ipsu->second;
497 double phi,
r,dx,dy, dy1;
498 double xp[4],yp[4],xp1,yp1;
499 double vhbot,vhtop,vhapo;
500 double rmedio[]={0.041,0.0701,0.0988,0.255,0.340,0.430,0.520,0.610,0.696,0.782,0.868,0.965,1.080};
501 double xt1,yt1,xs1=0.,ys1=0.,xt2,yt2,xs2,ys2,pv1,pv2;
518 if(nlay >12 && nlay <19){
520 xp[0]=r-vhtop;yp[0]=-vhapo;
521 xp[1]=r+vhtop;yp[1]=-vhapo;
522 xp[2]=r+vhtop;yp[2]=vhapo;
523 xp[3]=r-vhtop;yp[3]=vhapo;
526 xp[0]=r-vhapo;yp[0]=-vhbot;
527 xp[1]=r+vhapo;yp[1]=-vhtop;
528 xp[2]=r+vhapo;yp[2]=vhtop;
529 xp[3]=r-vhapo;yp[3]=vhbot;
531 for(
int j=0;
j<4;
j++){
532 xp1 = xp[
j]*
cos(phi)-yp[
j]*
sin(phi);
533 yp1 = xp[
j]*
sin(phi)+yp[
j]*
cos(phi);
534 xp[
j] = xp1;yp[
j]=yp1;
537 numod=mod->
idModule;
if(numod>100)numod=numod-100;
538 int vane = mod->
ring;
542 xt1=rmedio[nlay-31]; yt1=-vhtop/2.;
543 xs1 = xt1*
cos(phi)-yt1*
sin(phi);
544 ys1 = xt1*
sin(phi)+yt1*
cos(phi);
545 xt2=rmedio[nlay-31]; yt2=vhtop/2.;
546 xs2 = xt2*
cos(phi)-yt2*
sin(phi);
547 ys2 = xt2*
sin(phi)+yt2*
cos(phi);
550 if(nlay==31)dy1=0.39;
551 if(nlay==32)dy1=0.23;
552 if(nlay==33)dy1=0.16;
553 xp[0]=vane*(dx+dx/8.);yp[0]=numod*(dy1);
554 xp[1]=vane*(dx+dx/8.)+dx;yp[1]=numod*(dy1);
555 xp[2]=vane*(dx+dx/8.)+dx;yp[2]=numod*(dy1)+dy;
556 xp[3]=vane*(dx+dx/8.);yp[3]=numod*(dy1)+dy;
558 xt1=
r; yt1=-vhtop/2.;
559 xs1 = xt1*
cos(phi)-yt1*
sin(phi);
560 ys1 = xt1*
sin(phi)+yt1*
cos(phi);
562 xs2 = xt2*
cos(phi)-yt2*
sin(phi);
563 ys2 = xt2*
sin(phi)+yt2*
cos(phi);
566 if(fabs(pv1-pv2)>
M_PI && numod==1)pv1=pv1-2.*
M_PI;
567 if(fabs(pv1-pv2)>
M_PI && numod!=1)pv2=pv2+2.*
M_PI;
568 xp[0]=mod->
posz-vhapo/2.;yp[0]=4.2*pv1;
569 xp[1]=mod->
posz+vhapo/2.;yp[1]=4.2*pv1;
570 xp[2]=mod->
posz+vhapo/2. ;yp[2]=4.2*pv2;
571 xp[3]=mod->
posz-vhapo/2.;yp[3]=4.2*pv2;
586 for(
int j=0;
j<4;
j++){
591 sprintf(buffer,
"%X",mod->
idex);
595 red=(color>>16)&0xFF;
596 green=(color>>8)&0xFF;
602 if(
temporary_file) *svgfile << red <<
" " << green <<
" " << blue <<
" ";
else
603 *svgfile <<
"<svg:polygon detid=\""<<mod->
idex<<
"\" count=\""<<mod->
count <<
"\" value=\""<<mod->
value<<
"\" id=\""<<key<<
"\" capvids=\""<<mod->
capvids<<
"\" lv=\""<<mod->
psuIdex<<
"\" hv=\""<<mod->
psuIdex*10 + mod->
HVchannel<<
"\" fec=\""<<mod->
CcuId<<
"\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\""<<mod->
text<<
"\" POS=\""<<mod->
name<<
" \" fill=\"rgb("<<red<<
","<<green<<
","<<blue<<
")\" points=\"";
605 if(
temporary_file) *svgfile << 255 <<
" " << 255 <<
" " << 255 <<
" ";
else
606 *svgfile <<
"<svg:polygon detid=\""<<mod->
idex<<
"\" count=\""<<mod->
count <<
"\" value=\""<<mod->
value<<
"\" id=\""<<key<<
"\" capvids=\""<<mod->
capvids<<
"\" lv=\""<<mod->
psuIdex<<
"\" hv=\""<<mod->
psuIdex*10 + mod->
HVchannel<<
"\" fec=\""<<mod->
CcuId<<
"\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\""<<mod->
text<<
"\" POS=\""<<mod->
name<<
" \" fill=\"white\" points=\"";
608 for(
int k=0;
k<
np;
k++){
610 *svgfile << xd[
k] <<
"," << yd[
k] <<
" " ;
612 if(
temporary_file)*svgfile << std::endl;
else *svgfile <<
"\" />" <<std::endl;
614 if(mod->
red>255)mod->
red=255;
618 *svgfile <<
"<svg:polygon detid=\""<<mod->
idex<<
"\" count=\""<<mod->
count <<
"\" value=\""<<mod->
value<<
"\" id=\""<<key<<
"\" capvids=\""<<mod->
capvids<<
"\" lv=\""<<mod->
psuIdex<<
"\" hv=\""<<mod->
psuIdex*10 + mod->
HVchannel<<
"\" fec=\""<<mod->
CcuId<<
"\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\""<<mod->
text<<
"\" POS=\""<<mod->
name<<
" \" fill=\"rgb("<<mod->
red<<
","<<mod->
green<<
","<<mod->
blue<<
")\" points=\"";
620 for(
int k=0;
k<
np;
k++){
622 *svgfile << xd[
k] <<
"," << yd[
k] <<
" " ;
624 if(
temporary_file)*svgfile << std::endl;
else *svgfile <<
"\" />" <<std::endl;
635 std::vector<TPolyLine*> vp;
637 size_t found=filetype.find_last_of(
".");
638 filetype=filetype.substr(found+1);
639 found=outputfilename.find_last_of(
".");
640 outputfilename=outputfilename.substr(0,found);
644 std::ostringstream outs;
646 outs << outputfilename <<
".coor";
649 for (
int layer=1; layer < 44; layer++){
665 for (
int layer=1; layer < 44; layer++){
680 *
savefile <<
"<?xml version=\"1.0\" standalone=\"no\" ?>"<<std::endl;
681 *
savefile <<
"<svg xmlns=\"http://www.w3.org/2000/svg\""<<std::endl;
682 *
savefile <<
"xmlns:svg=\"http://www.w3.org/2000/svg\" "<<std::endl;
683 *
savefile <<
"xmlns:xlink=\"http://www.w3.org/1999/xlink\">"<<std::endl;
684 *
savefile <<
"<svg:svg id=\"mainMap\" x=\"0\" y=\"0\" viewBox=\"0 0 3100 1600"<<
"\" width=\""<<width<<
"\" height=\""<<height<<
"\">"<<std::endl;
685 *
savefile <<
"<svg:rect fill=\"lightblue\" stroke=\"none\" x=\"0\" y=\"0\" width=\"3100\" height=\"1600\" /> "<<std::endl;
686 *
savefile <<
"<svg:g id=\"tracker\" transform=\"translate(10,1500) rotate(270)\" style=\"fill:none;stroke:black;stroke-width:0;\"> "<<std::endl;
688 for (
int layer=1; layer < 44; layer++){
704 *
savefile <<
" <svg:text id=\"Title\" class=\"normalText\" x=\"300\" y=\"0\">"<<
title<<
"</svg:text>"<<std::endl;
709 *
savefile <<
"</svg:svg>"<<std::endl;
714 const char * command1;
715 std::string tempfilename = outputfilename +
".coor";
717 std::string
command =
"mv "+tempfilename +
" " +outputfilename +
".svg";
718 command1=command.c_str();
719 std::cout <<
"Executing " << command1 << std::endl;
724 int red,
green,blue,npoints,colindex,ncolor;
727 TCanvas *MyC =
new TCanvas(
"MyC",
"TrackerMap",width,height);
728 gPad->SetFillColor(38);
730 if(
addPixelFlag)gPad->Range(0,0,3800,1600);
else gPad->Range(800,0,3800,1600);
734 typedef std::map<int,int> ColorList;
736 ColorList::iterator
pos;
738 std::cout<<
"tempfilename "<<tempfilename<<std::endl;
739 while(!tempfile.eof()) {
740 tempfile >> red >> green >> blue >> npoints;
741 colindex=red+green*1000+blue*1000000;
742 pos=colorList.find(colindex);
743 if(pos == colorList.end()){ colorList[colindex]=ncolor+100; col =gROOT->GetColor(ncolor+100);
744 if(col) col->SetRGB((Double_t)(red/255.),(Double_t)(green/255.),(Double_t)(blue/255.));
else c =
new TColor(ncolor+100,(Double_t)(red/255.),(Double_t)(green/255.),(Double_t)(blue/255.));
vc.push_back(c); ncolor++;}
745 for (
int i=0;
i<npoints;
i++){
746 tempfile >> x[
i] >> y[
i];
750 if(ncolor>0 && ncolor<10000){
752 for(
int i=0;
i<ncolor;
i++){colors[
i]=
i+100;}
753 gStyle->SetPalette(ncolor,colors);
757 tempfile.seekg(0,std::ios::beg);
758 std::cout <<
"created palette with " << ncolor <<
" colors" << std::endl;
760 while(!tempfile.eof()) {
761 tempfile >> red >> green >> blue >> npoints;
762 for (
int i=0;
i<npoints;
i++){
763 tempfile >> x[
i] >> y[
i];
765 colindex=red+green*1000+blue*1000000;
766 pos=colorList.find(colindex);
767 if(pos != colorList.end()){
768 TPolyLine* pline =
new TPolyLine(npoints,y,x);
770 pline->SetFillColor(colorList[colindex]);
771 pline->SetLineWidth(0);
777 axis->SetLabelSize(0.02);
782 l.DrawLatex(950,1330,
"TID");
783 l.DrawLatex(2300,1330,
"TEC");
784 l.DrawLatex(300,1330,
"FPIX");
785 l.DrawLatex(20,560,
"BPIX L1");
786 l.DrawLatex(500,385,
"BPIX L2");
787 l.DrawLatex(500,945,
"BPIX L3");
789 l.DrawLatex(850,1500,
title.c_str());
790 l.DrawLatex(1730,40,
"-z");
791 l.DrawLatex(1730,1360,
"+z");
792 l.DrawLatex(1085,330,
"TIB L1");
793 l.DrawLatex(1085,1000,
"TIB L2");
794 l.DrawLatex(1585,330,
"TIB L3");
795 l.DrawLatex(1585,1000,
"TIB L4");
796 l.DrawLatex(2085,330,
"TOB L1");
797 l.DrawLatex(2085,1000,
"TOB L2");
798 l.DrawLatex(2585,330,
"TOB L3");
799 l.DrawLatex(2585,1000,
"TOB L4");
800 l.DrawLatex(3085,330,
"TOB L5");
801 l.DrawLatex(3085,1000,
"TOB L6");
802 TArrow arx(3448,1190,3448,1350,0.01,
"|>");
803 l.DrawLatex(3460,1350,
"x");
804 TArrow ary(3448,1190,3312,1190,0.01,
"|>");
805 l.DrawLatex(3312,1210,
"y");
806 TArrow arz(3485,373,3485,676,0.01,
"|>");
807 l.DrawLatex(3510,667,
"z");
808 TArrow arphi(3485,511,3037,511,0.01,
"|>");
809 l.DrawLatex(3023,520,
"#Phi");
813 arphi.SetLineWidth(3);
821 std::string
filename = outputfilename +
".png";
822 std::cout <<
"printing " <<filename<< std::endl;
823 MyC->Print(filename.c_str());
826 std::string
filename = outputfilename +
".jpg";
827 MyC->Print(filename.c_str());
830 std::string
filename = outputfilename +
".pdf";
831 MyC->Print(filename.c_str());
833 std::string
command =
"rm "+tempfilename ;
834 command1=command.c_str();
835 std::cout <<
"Executing " << command1 << std::endl;
840 for(std::vector<TPolyLine*>::iterator pos1=vp.begin();pos1!=vp.end();pos1++){
856 double boxinitx=0., boxinity=0.;
858 int numfedch_incolumn = 12;
859 int numfedch_inrow = 8;
860 int numfed_incolumn = 5;
861 int numfed_inrow = 4;
862 boxinitx=boxinitx+(numfed_incolumn-(numfed_incrate-1)/numfed_inrow)*14.;
863 boxinity=boxinity+(numfed_inrow-(numfed_incrate-1)%numfed_inrow)*9.;
864 boxinity=boxinity+numfedch_inrow-(apvPair->
getFedCh()/numfedch_incolumn);
865 boxinitx = boxinitx+numfedch_incolumn-(int)(apvPair->
getFedCh()%numfedch_incolumn);
867 xp[0]=boxinitx;yp[0]=boxinity;
868 xp[1]=boxinitx+dx;yp[1]=boxinity;
869 xp[2]=boxinitx+dx;yp[2]=boxinity + dy;
870 xp[3]=boxinitx;yp[3]=boxinity + dy;
871 for(
int j=0;
j<4;
j++){
877 sprintf(buffer,
"%X",apvPair->
mod->
idex);
879 s.erase(s.begin()+s.find(
"connected"),s.end());
882 if(apvPair->
red < 0){
883 if(apvPair->
count > 0) {
885 red=(color>>16)&0xFF;
886 green=(color>>8)&0xFF;
889 if(
temporary_file)*svgfile << red <<
" " << green <<
" " << blue <<
" ";
890 else *svgfile <<
"<svg:polygon detid=\""<<apvPair->
idex<<
"\" count=\""<<apvPair->
count <<
"\" value=\""<<apvPair->
value<<
"\" id=\""<<apvPair->
idex+crate*1000000<<
"\" cmodid=\""<<apvPair->
mod->
getKey()<<
"\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\"""\" POS=\"Fed/Ch "<<apvPair->
getFedId()<<
"/"<<apvPair->
getFedCh()<<
" connected to "<<s<<
" Id "<<buffer<<
" \" fill=\"rgb("<<red<<
","<<green<<
","<<blue<<
")\" points=\"";
892 if(
temporary_file)*svgfile << 255 <<
" " << 255 <<
" " << 255 <<
" ";
893 else *svgfile <<
"<svg:polygon detid=\""<<apvPair->
idex<<
"\" count=\""<<apvPair->
count <<
"\" value=\""<<apvPair->
value<<
"\" id=\""<<apvPair->
idex+crate*1000000<<
"\" cmodid=\""<<apvPair->
mod->
getKey()<<
"\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\"""\" POS=\"Fed/Ch "<<apvPair->
getFedId()<<
"/"<<apvPair->
getFedCh()<<
" connected to "<<s<<
" Id "<<buffer<<
" \" fill=\"white\" points=\"";
896 if(apvPair->
red>255)apvPair->
red=255;
898 if(apvPair->
blue>255)apvPair->
blue=255;
900 else *svgfile <<
"<svg:polygon detid=\""<<apvPair->
idex<<
"\" count=\""<<apvPair->
count <<
"\" value=\""<<apvPair->
value<<
"\" id=\""<<apvPair->
idex+crate*1000000<<
"\" cmodid=\""<<apvPair->
mod->
getKey()<<
"\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\"""\" POS=\"Fed/Ch "<<apvPair->
getFedId()<<
"/"<<apvPair->
getFedCh()<<
" connected to "<<s<<
" Id "<<buffer<<
" \" fill=\"rgb("<<apvPair->
red<<
","<<apvPair->
green<<
","<<apvPair->
blue<<
")\" points=\"";
903 if(apvPair->
mod->
red < 0){
906 red=(color>>16)&0xFF;
907 green=(color>>8)&0xFF;
909 if(
temporary_file)*svgfile << red <<
" " << green <<
" " << blue <<
" ";
910 else *svgfile <<
"<svg:polygon detid=\""<<apvPair->
idex<<
"\" count=\""<<apvPair->
count <<
"\" value=\""<<apvPair->
value<<
"\" id=\""<<apvPair->
idex+crate*1000000<<
"\" cmodid=\""<<apvPair->
mod->
getKey()<<
"\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\"""\" POS=\"Fed/Ch "<<apvPair->
getFedId()<<
"/"<<apvPair->
getFedCh()<<
" connected to "<<s<<
" Id "<<buffer<<
" \" fill=\"rgb("<<red<<
","<<green<<
","<<blue<<
")\" points=\"";
912 if(
temporary_file)*svgfile << 255 <<
" " << 255 <<
" " << 255 <<
" ";
913 else *svgfile <<
"<svg:polygon detid=\""<<apvPair->
idex<<
"\" count=\""<<apvPair->
count <<
"\" value=\""<<apvPair->
value<<
"\" id=\""<<apvPair->
idex+crate*1000000<<
"\" cmodid=\""<<apvPair->
mod->
getKey()<<
"\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\"""\" POS=\"Fed/Ch "<<apvPair->
getFedId()<<
"/"<<apvPair->
getFedCh()<<
" connected to "<<s<<
" Id "<<buffer<<
" \" fill=\"white\" points=\"";
920 else *svgfile <<
"<svg:polygon detid=\""<<apvPair->
idex<<
"\" count=\""<<apvPair->
count <<
"\" value=\""<<apvPair->
value<<
"\" id=\""<<apvPair->
idex+crate*1000000<<
"\" cmodid=\""<<apvPair->
mod->
getKey()<<
"\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\"""\" POS=\"Fed/Ch "<<apvPair->
getFedId()<<
"/"<<apvPair->
getFedCh()<<
" connected to "<<s<<
" Id "<<buffer<<
" \" fill=\"rgb("<<apvPair->
mod->
red<<
","<<apvPair->
mod->
green<<
","<<apvPair->
mod->
blue<<
")\" points=\"";
924 for(
int k=0;
k<
np;
k++){
926 else *svgfile << xd[
k] <<
"," << yd[
k] <<
" " ;
929 else *svgfile <<
"\" />" <<std::endl;
940 double boxinitx=0., boxinity=0.;
942 int numccu_incolumn = 8;
943 int numccu_inrow = 15;
944 int numfed_incolumn = 5;
945 int numfed_inrow = 4;
946 boxinitx=boxinitx+(numfed_incolumn-(numfec_incrate-1)/numfed_inrow)*14.;
947 boxinity=boxinity+(numfed_inrow-(numfec_incrate-1)%numfed_inrow)*16.;
948 boxinity=boxinity+numccu_inrow-ccu->
mpos;
949 boxinitx = boxinitx+numccu_incolumn-(int)(ccu->
getCcuRing()%numccu_incolumn);
951 xp[0]=boxinitx;yp[0]=boxinity;
952 xp[1]=boxinitx+dx;yp[1]=boxinity;
953 xp[2]=boxinitx+dx;yp[2]=boxinity + dy;
954 xp[3]=boxinitx;yp[3]=boxinity + dy;
955 for(
int j=0;
j<4;
j++){
961 sprintf(buffer,
"%X",ccu->
idex);
964 std::string
s = ccu->
text;
965 s.erase(s.begin()+s.find(
"connected"),s.end());
970 red=(color>>16)&0xFF;
971 green=(color>>8)&0xFF;
974 if(
temporary_file)*svgfile << red <<
" " << green <<
" " << blue <<
" ";
975 else *svgfile <<
"<svg:polygon detid=\""<<ccu->
idex<<
"\" count=\""<<ccu->
count <<
"\" value=\""<<ccu->
value<<
"\" id=\""<<ccu->
idex+crate*1000000<<
"\" cmodid=\""<<ccu->
cmodid<<
"\" layer=\""<<ccu->
layer<<
"\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\"""\" POS=\"Slot/Ring"<<ccu->
getCcuSlot()<<
"/"<<ccu->
getCcuRing()<<
" connected to "<<s<<
" Id "<<buffer<<
" \" fill=\"rgb("<<red<<
","<<green<<
","<<blue<<
")\" points=\"";
977 if(
temporary_file)*svgfile << 255 <<
" " << 255 <<
" " << 255 <<
" ";
978 else *svgfile <<
"<svg:polygon detid=\""<<ccu->
idex<<
"\" count=\""<<ccu->
count <<
"\" value=\""<<ccu->
value<<
"\" id=\""<<ccu->
idex+crate*1000000<<
"\" cmodid=\""<<ccu->
cmodid<<
"\" layer=\""<<ccu->
layer<<
"\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\"""\" POS=\"Slot/Ring "<<ccu->
getCcuSlot()<<
"/"<<ccu->
getCcuRing()<<
" connected to "<<s<<
" Id "<<buffer<<
" \" fill=\"white\" points=\"";
981 if(ccu->
red>255)ccu->
red=255;
985 else *svgfile <<
"<svg:polygon detid=\""<<ccu->
idex<<
"\" count=\""<<ccu->
count <<
"\" value=\""<<ccu->
value<<
"\" id=\""<<ccu->
idex+crate*1000000<<
"\" cmodid=\""<<ccu->
cmodid<<
"\" layer=\""<<ccu->
layer<<
"\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\"""\" POS=\"Slot/Ring "<<ccu->
getCcuSlot()<<
"/"<<ccu->
getCcuRing()<<
" connected to "<<s<<
" Id "<<buffer<<
" \" fill=\"rgb("<<ccu->
red<<
","<<ccu->
green<<
","<<ccu->
blue<<
")\" points=\"";
988 for(
int k=0;
k<
np;
k++){
990 else *svgfile << xd[
k] <<
"," << yd[
k] <<
" " ;
993 else *svgfile <<
"\" />" <<std::endl;
1005 double boxinitx=35, boxinity=12;
1008 boxinitx= boxinitx+(5 - numcrate_inrack)*5;
1009 boxinity= boxinity+(18 - psu->
getPsuBoard())*1.75;
1011 xp[0]=boxinitx;yp[0]=boxinity;
1012 xp[1]=boxinitx+dx;yp[1]=boxinity;
1013 xp[2]=boxinitx+dx;yp[2]=boxinity + dy;
1014 xp[3]=boxinitx;yp[3]=boxinity + dy;
1017 for(
int j=0;
j<4;
j++){
1023 sprintf(buffer,
"%X",psu->
idex);
1024 std::string
s = psu->
text;
1025 s.erase(s.begin()+s.find(
"connected"),s.end());
1030 red=(color>>16)&0xFF;
1031 green=(color>>8)&0xFF;
1034 if(
temporary_file)*svgfile << red <<
" " << green <<
" " << blue <<
" ";
1035 else *svgfile <<
"<svg:polygon detid=\""<<psu->
idex<<
"\" count=\""<<psu->
count <<
"\" value=\""<<psu->
value<<
"\" id=\""<< psu->
idex <<
"\" cmodid=\""<<psu->
cmodid_LV<<
"\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\"""\" POS=\"easyCrate/easyBoard "<<psu->
getPsuCrate()<<
"/"<<psu->
getPsuBoard()<<
" connected to "<<s<<
" \" fill=\"rgb("<<red<<
","<<green<<
","<<blue<<
")\" points=\"";
1039 if(
temporary_file)*svgfile << 255 <<
" " << 255 <<
" " << 255 <<
" ";
1040 else *svgfile <<
"<svg:polygon detid=\""<<psu->
idex<<
"\" count=\""<<psu->
count <<
"\" value=\""<<psu->
value<<
"\" id=\""<< psu->
idex <<
"\" cmodid=\""<<psu->
cmodid_LV<<
"\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\"""\" POS=\"easyCrate/easyBoard "<<psu->
getPsuCrate()<<
"/"<<psu->
getPsuBoard()<<
" connected to "<<s<<
" \" fill=\"white\" points=\"";
1045 if(psu->
red>255)psu->
red=255;
1049 else *svgfile <<
"<svg:polygon detid=\""<<psu->
idex<<
"\" count=\""<<psu->
count <<
"\" value=\""<<psu->
value<<
"\" id=\""<< psu->
idex <<
"\" cmodid=\""<<psu->
cmodid_LV<<
"\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\"""\" POS=\"easyCrate/easyBoard "<<psu->
getPsuCrate()<<
"/"<<psu->
getPsuBoard()<<
" connected to "<<s<<
" \" fill=\"rgb("<<psu->
red<<
","<<psu->
green<<
","<<psu->
blue<<
")\" points=\"";
1053 for(
int k=0;
k<
np;
k++){
1055 else *svgfile << xd[
k] <<
"," << yd[
k] <<
" " ;
1058 else *svgfile <<
"\" />" <<std::endl;
1071 double boxinitx=35, boxinity=12;
1072 double dx=1.1,dy=1.3;
1074 boxinitx= boxinitx+(5 - numcrate_inrack)*5;
1075 boxinity= boxinity+(18 - psu->
getPsuBoard())*1.75;
1077 xp[0]=boxinitx;yp[0]=boxinity;
1078 xp[1]=boxinitx+dx;yp[1]=boxinity;
1079 xp[2]=boxinitx+dx;yp[2]=boxinity + dy;
1080 xp[3]=boxinitx;yp[3]=boxinity + dy;
1083 for(
int j=0;
j<4;
j++){
1089 sprintf(buffer,
"%X",psu->
idex);
1091 s.erase(s.begin()+s.find(
"connected"),s.end());
1097 redHV2=(color>>16)&0xFF;
1098 greenHV2=(color>>8)&0xFF;
1099 blueHV2=(
color)&0xFF;
1101 if(
temporary_file)*svgfile << redHV2 <<
" " << greenHV2 <<
" " << blueHV2 <<
" ";
1102 else *svgfile <<
"<svg:polygon detid=\""<<psu->
idex<<
"\" count=\""<<psu->
countHV2 <<
"\" value=\""<<psu->
valueHV2<<
"\" id=\""<< psu->
idex*10+2 <<
"\" cmodid=\""<<psu->
cmodid_HV2<<
"\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\"""\" POS=\"easyCrate/easyBoard "<<psu->
getPsuCrate()<<
"/"<<psu->
getPsuBoard()<<
" connected to "<<s<<
" \" fill=\"rgb("<<redHV2<<
","<<greenHV2<<
","<<blueHV2<<
")\" points=\"";
1105 if(
temporary_file)*svgfile << 255 <<
" " << 255 <<
" " << 255 <<
" ";
1106 else *svgfile <<
"<svg:polygon detid=\""<<psu->
idex<<
"\" count=\""<<psu->
countHV2 <<
"\" value=\""<<psu->
valueHV2<<
"\" id=\""<< psu->
idex*10+2 <<
"\" cmodid=\""<<psu->
cmodid_HV2<<
"\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\"""\" POS=\"easyCrate/easyBoard "<<psu->
getPsuCrate()<<
"/"<<psu->
getPsuBoard()<<
" connected to "<<s<<
" \" fill=\"white\" points=\"";
1115 else *svgfile <<
"<svg:polygon detid=\""<<psu->
idex<<
"\" count=\""<<psu->
countHV2 <<
"\" value=\""<<psu->
valueHV2<<
"\" id=\""<< psu->
idex*10+2 <<
"\" cmodid=\""<<psu->
cmodid_HV2<<
"\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\"""\" POS=\"easyCrate/easyBoard "<<psu->
getPsuCrate()<<
"/"<<psu->
getPsuBoard()<<
" connected to "<<s<<
" \" fill=\"rgb("<<psu->
redHV2<<
","<<psu->
greenHV2<<
","<<psu->
blueHV2<<
")\" points=\"";
1119 for(
int k=0;
k<
np;
k++){
1121 else *svgfile << xd[
k] <<
"," << yd[
k] <<
" " ;
1124 else *svgfile <<
"\" />" <<std::endl;
1138 double boxinitx=36.5, boxinity=12;
1139 double dx=1.1,dy=1.3;
1141 boxinitx= boxinitx+(5 - numcrate_inrack)*5;
1142 boxinity= boxinity+(18 - psu->
getPsuBoard())*1.75;
1144 xp[0]=boxinitx;yp[0]=boxinity;
1145 xp[1]=boxinitx+dx;yp[1]=boxinity;
1146 xp[2]=boxinitx+dx;yp[2]=boxinity + dy;
1147 xp[3]=boxinitx;yp[3]=boxinity + dy;
1150 for(
int j=0;
j<4;
j++){
1156 sprintf(buffer,
"%X",psu->
idex);
1158 s.erase(s.begin()+s.find(
"connected"),s.end());
1163 redHV3=(color>>16)&0xFF;
1164 greenHV3=(color>>8)&0xFF;
1165 blueHV3=(
color)&0xFF;
1167 if(
temporary_file)*svgfile << redHV3 <<
" " << greenHV3 <<
" " << blueHV3 <<
" ";
1168 else *svgfile <<
"<svg:polygon detid=\""<<psu->
idex<<
"\" count=\""<<psu->
countHV3 <<
"\" value=\""<<psu->
valueHV3<<
"\" id=\""<< psu->
idex*10+3 <<
"\" cmodid=\""<<psu->
cmodid_HV3<<
"\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\"""\" POS=\"easyCrate/easyBoard"<<psu->
getPsuCrate()<<
"/"<<psu->
getPsuBoard()<<
" connected to "<<s<<
" \" fill=\"rgb("<<redHV3<<
","<<greenHV3<<
","<<blueHV3<<
")\" points=\"";
1171 if(
temporary_file)*svgfile << 255 <<
" " << 255 <<
" " << 255 <<
" ";
1172 else *svgfile <<
"<svg:polygon detid=\""<<psu->
idex<<
"\" count=\""<<psu->
countHV3 <<
"\" value=\""<<psu->
valueHV3<<
"\" id=\""<< psu->
idex*10+3 <<
"\" cmodid=\""<<psu->
cmodid_HV3<<
"\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\"""\" POS=\"easyCrate/easyBoard "<<psu->
getPsuCrate()<<
"/"<<psu->
getPsuBoard()<<
" connected to "<<s<<
" \" fill=\"white\" points=\"";
1181 else *svgfile <<
"<svg:polygon detid=\""<<psu->
idex<<
"\" count=\""<<psu->
countHV3 <<
"\" value=\""<<psu->
valueHV3<<
"\" id=\""<< psu->
idex*10+3 <<
"\" cmodid=\""<<psu->
cmodid_HV3<<
"\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\"""\" POS=\"easyCrate/easyBoard "<<psu->
getPsuCrate()<<
"/"<<psu->
getPsuBoard()<<
" connected to "<<s<<
" \" fill=\"rgb("<<psu->
redHV3<<
","<<psu->
greenHV3<<
","<<psu->
blueHV3<<
")\" points=\"";
1185 for(
int k=0;
k<
np;
k++){
1187 else *svgfile << xd[
k] <<
"," << yd[
k] <<
" " ;
1190 else *svgfile <<
"\" />" <<std::endl;
1197 std::vector<TPolyLine*> vp;
1198 size_t found=filetype.find_last_of(
".");
1199 filetype=filetype.substr(found+1);
1200 found=outputfilename.find_last_of(
".");
1201 outputfilename=outputfilename.substr(0,found);
1204 std::ostringstream outs;
1206 outs << outputfilename <<
".coor";
1208 std::map<int , TmCcu *>::iterator i_ccu;
1209 std::multimap<TmCcu*, TmModule*>::iterator it;
1210 std::pair<std::multimap<TmCcu*, TmModule*>::iterator,std::multimap<TmCcu*, TmModule*>::iterator>
ret;
1212 bool useCcuValue=
false;
1215 for( i_ccu=
ccuMap.begin();i_ccu !=
ccuMap.end(); i_ccu++){
1216 TmCcu * ccu= i_ccu->second;
1218 if(ccu->
count > 0 || ccu->
red!=-1) { useCcuValue=
true;
break;}
1224 for( i_ccu=
ccuMap.begin();i_ccu !=
ccuMap.end(); i_ccu++){
1225 TmCcu * ccu= i_ccu->second;
1228 for (it = ret.first; it != ret.second; ++it)
1230 if( (*it).second->count>0){ccu->
value=ccu->
value+(*it).second->value;ccu->
count++;}
1238 if(
title==
" Tracker Map from QTestAlarm"){
1239 for( i_ccu=
ccuMap.begin();i_ccu !=
ccuMap.end(); i_ccu++){
1240 TmCcu * ccu= i_ccu->second;
1244 for (it = ret.first; it != ret.second; ++it) {
1245 if( !( (*it).second->red==0 && (*it).second->green==255 && (*it).second->blue==0 ) && !( (*it).second->red==255 && (*it).second->green==255 && (*it).second->blue==255 ) ){
1256 for( i_ccu=
ccuMap.begin();i_ccu !=
ccuMap.end(); i_ccu++){
1257 TmCcu * ccu= i_ccu->second;
1269 for( i_ccu=
ccuMap.begin();i_ccu !=
ccuMap.end(); i_ccu++){
1270 TmCcu * ccu= i_ccu->second;
1280 if(filetype==
"svg"){
1282 std::ostringstream outs;
1283 outs << outputfilename<<
".svg";
1285 *
savefile <<
"<?xml version=\"1.0\" standalone=\"no\" ?>"<<std::endl;
1286 *
savefile <<
"<svg xmlns=\"http://www.w3.org/2000/svg\""<<std::endl;
1287 *
savefile <<
"xmlns:svg=\"http://www.w3.org/2000/svg\" "<<std::endl;
1288 *
savefile <<
"xmlns:xlink=\"http://www.w3.org/1999/xlink\">"<<std::endl;
1289 *
savefile <<
"<svg:svg id=\"mainMap\" x=\"0\" y=\"0\" viewBox=\"0 0 3000 1600"<<
"\" width=\""<<width<<
"\" height=\""<<height<<
"\">"<<std::endl;
1290 *
savefile <<
"<svg:rect fill=\"lightblue\" stroke=\"none\" x=\"0\" y=\"0\" width=\"3000\" height=\"1600\" /> "<<std::endl;
1291 *
savefile <<
"<svg:g id=\"fedtrackermap\" transform=\"translate(10,1500) rotate(270)\" style=\"fill:none;stroke:black;stroke-width:0;\"> "<<std::endl;
1293 for (
int crate=1; crate < (
nfeccrates+1); crate++){
1294 if(filetype==
"xml"){
1296 std::ostringstream outs;
1297 outs << outputfilename<<
"feccrate" <<crate<<
".xml";
1299 *
savefile <<
"<?xml version=\"1.0\" standalone=\"no\"?>"<<std::endl;
1300 *
savefile <<
"<svg xmlns=\"http://www.w3.org/2000/svg\""<<std::endl;
1301 *
savefile <<
"xmlns:svg=\"http://www.w3.org/2000/svg\""<<std::endl;
1302 *
savefile <<
"xmlns:xlink=\"http://www.w3.org/1999/xlink\" >"<<std::endl;
1303 *
savefile <<
"<script type=\"text/ecmascript\" xlink:href=\"feccrate.js\" />"<<std::endl;
1304 *
savefile <<
"<svg id=\"mainMap\" x=\"0\" y=\"0\" viewBox=\"0 0 500 500\" width=\"700\" height=\"700\" onload=\"TrackerCrate.init()\">"<<std::endl;
1305 *
savefile <<
"<rect fill=\"lightblue\" stroke=\"none\" x=\"0\" y=\"0\" width=\"700\" height=\"700\" />"<<std::endl;
1306 *
savefile <<
"<g id=\"crate\" transform=\" translate(280,580) rotate(270) scale(.7,.8)\" > "<<std::endl;
1311 for ( i_ccu=
ccuMap.begin();i_ccu !=
ccuMap.end(); i_ccu++){
1312 TmCcu * ccu= i_ccu->second;
1322 if(filetype==
"xml"){
1323 *
savefile <<
"</g> </svg> <text id=\"currentElementText\" x=\"40\" y=\"30\"> " << std::endl;
1324 *
savefile <<
"<tspan id=\"line1\" x=\"40\" y=\"30\"> </tspan> " << std::endl;
1325 *
savefile <<
"<tspan id=\"line2\" x=\"40\" y=\"60\"> </tspan> " << std::endl;
1326 *
savefile <<
" </text> </svg>" << std::endl;
1332 if(filetype==
"svg"){
1333 *
savefile <<
"</g> </svg> </svg> " << std::endl;
1336 if(!print_total && !useCcuValue){
1338 for( i_ccu=
ccuMap.begin();i_ccu !=
ccuMap.end(); i_ccu++){
1339 TmCcu * ccu= i_ccu->second;
1349 const char * command1;
1350 std::string tempfilename = outputfilename +
".coor";
1351 int red,
green,blue,npoints,colindex,ncolor;
1354 TCanvas *MyC =
new TCanvas(
"MyC",
"TrackerMap",width,height);
1355 gPad->SetFillColor(38);
1357 gPad->Range(0,0,3700,1600);
1361 typedef std::map<int,int> ColorList;
1362 ColorList colorList;
1363 ColorList::iterator
pos;
1365 while(!tempfile.eof()) {
1366 tempfile >> red >> green >> blue >> npoints;
1367 colindex=red+green*1000+blue*1000000;
1368 pos=colorList.find(colindex);
1369 if(pos == colorList.end()){
1370 colorList[colindex]=ncolor+100;
1371 col =gROOT->GetColor(ncolor+100);
1373 col->SetRGB((Double_t)(red/255.),(Double_t)(green/255.),(Double_t)(blue/255.));
1375 c =
new TColor(ncolor+100,(Double_t)(red/255.),(Double_t)(green/255.),(Double_t)(blue/255.));
1379 for (
int i=0;
i<npoints;
i++){
1380 tempfile >> x[
i] >> y[
i];
1383 if(ncolor>0 && ncolor<10000){
1385 for(
int i=0;
i<ncolor;
i++){colors[
i]=
i+100;}
1386 gStyle->SetPalette(ncolor,colors);
1389 tempfile.seekg(0,std::ios::beg);
1390 std::cout <<
"created palette with " << ncolor <<
" colors" << std::endl;
1391 while(!tempfile.eof()) {
1392 tempfile >> red >> green >> blue >> npoints;
1393 for (
int i=0;
i<npoints;
i++){
1394 tempfile >> x[
i] >> y[
i];
1396 colindex=red+green*1000+blue*1000000;
1397 pos=colorList.find(colindex);
1398 if(pos != colorList.end()){
1399 TPolyLine* pline =
new TPolyLine(npoints,y,x);
1400 vp.push_back(pline);
1401 pline->SetFillColor(colorList[colindex]);
1402 pline->SetLineWidth(0);
1407 std::cout <<
"Filetype " << filetype << std::endl;
1408 if(filetype==
"png"){
1409 std::string
filename = outputfilename +
".png";
1410 MyC->Print(filename.c_str());
1412 if(filetype==
"jpg"){
1413 std::string
filename = outputfilename +
".jpg";
1414 MyC->Print(filename.c_str());
1416 if(filetype==
"pdf"){
1417 std::string
filename = outputfilename +
".pdf";
1418 MyC->Print(filename.c_str());
1420 std::string
command =
"rm "+tempfilename ;
1421 command1=command.c_str();
1422 std::cout <<
"Executing " << command1 << std::endl;
1426 for(std::vector<TPolyLine*>::iterator pos1=vp.begin();pos1!=vp.end();pos1++){
1439 std::vector<TPolyLine*> vp;
1441 size_t found=filetype.find_last_of(
".");
1442 filetype=filetype.substr(found+1);
1443 found=outputfilename.find_last_of(
".");
1444 outputfilename=outputfilename.substr(0,found);
1451 std::ostringstream outs;
1453 outs << outputfilename <<
".coor";
1456 std::map<int , TmPsu *>::iterator ipsu;
1457 std::multimap<TmPsu*, TmModule*>::iterator it;
1458 std::pair<std::multimap<TmPsu*, TmModule*>::iterator,std::multimap<TmPsu*, TmModule*>::iterator>
ret;
1461 bool usePsuValue=
false;
1464 TmPsu* psu= ipsu->second;
1473 TmPsu * psu= ipsu->second;
1476 for(it = ret.first; it != ret.second; ++it){
1477 if((*it).second->HVchannel==2){ psu->
valueHV2=psu->
valueHV2+(*it).second->value;}
1478 if((*it).second->HVchannel==3){ psu->
valueHV3=psu->
valueHV3+(*it).second->value;}
1490 if(
title==
" Tracker Map from QTestAlarm"){
1492 TmPsu * psu= ipsu->second;
1497 for (it = ret.first; it != ret.second; ++it) {
1498 if((*it).second->HVchannel==2){
1499 if( !( (*it).second->red==0 && (*it).second->green==255 && (*it).second->blue==0 ) && !( (*it).second->red==255 && (*it).second->green==255 && (*it).second->blue==255 ) ){
1503 if((*it).second->HVchannel==3){
1504 if( !( (*it).second->red==0 && (*it).second->green==255 && (*it).second->blue==0 ) && !( (*it).second->red==255 && (*it).second->green==255 && (*it).second->blue==255 ) ){
1515 TmPsu * psu= ipsu->second;
1531 TmPsu * psu= ipsu->second;
1541 if(filetype==
"svg"){
1543 std::ostringstream outs;
1544 outs << outputfilename<<
".svg";
1546 *
savefile <<
"<?xml version=\"1.0\" standalone=\"no\" ?>"<<std::endl;
1547 *
savefile <<
"<svg xmlns=\"http://www.w3.org/2000/svg\""<<std::endl;
1548 *
savefile <<
"xmlns:svg=\"http://www.w3.org/2000/svg\" "<<std::endl;
1549 *
savefile <<
"xmlns:xlink=\"http://www.w3.org/1999/xlink\">"<<std::endl;
1550 *
savefile <<
"<svg:svg id=\"mainMap\" x=\"0\" y=\"0\" viewBox=\"0 0 3000 1600"<<
"\" width=\""<<width<<
"\" height=\""<<height<<
"\">"<<std::endl;
1551 *
savefile <<
"<svg:rect fill=\"lightblue\" stroke=\"none\" x=\"0\" y=\"0\" width=\"3000\" height=\"1600\" /> "<<std::endl;
1552 *
savefile <<
"<svg:g id=\"HVtrackermap\" transform=\"translate(10,1500) rotate(270)\" style=\"fill:none;stroke:black;stroke-width:0;\"> "<<std::endl;
1555 for (
int irack=1; irack < (
npsuracks+1); irack++){
1556 if(filetype==
"xml"){
1558 std::ostringstream outs;
1559 outs << outputfilename<<
"HVrack" <<irack<<
".xml";
1561 *
savefile <<
"<?xml version=\"1.0\" standalone=\"no\"?>"<<std::endl;
1562 *
savefile <<
"<svg xmlns=\"http://www.w3.org/2000/svg\""<<std::endl;
1563 *
savefile <<
"xmlns:svg=\"http://www.w3.org/2000/svg\""<<std::endl;
1564 *
savefile <<
"xmlns:xlink=\"http://www.w3.org/1999/xlink\" >"<<std::endl;
1565 *
savefile <<
"<script type=\"text/ecmascript\" xlink:href=\"rackhv.js\" />"<<std::endl;
1566 *
savefile <<
"<svg id=\"mainMap\" x=\"0\" y=\"0\" viewBox=\"0 0 500 500\" width=\"700\" height=\"700\" onload=\"TrackerRackhv.init()\">"<<std::endl;
1567 *
savefile <<
"<rect fill=\"lightblue\" stroke=\"none\" x=\"0\" y=\"0\" width=\"700\" height=\"700\" />"<<std::endl;
1568 *
savefile <<
"<g id=\"rackhv\" transform=\" translate(150,500) rotate(270) scale(1.,1.)\" > "<<std::endl;
1573 for ( ipsu=
psuMap.begin();ipsu !=
psuMap.end(); ipsu++){
1574 TmPsu * psu= ipsu->second;
1577 drawHV3(irack,psu->getPsuCrate(),print_total,psu,
savefile,usePsuValue);
1583 if(filetype==
"xml"){
1584 *
savefile <<
"</g> </svg> <text id=\"currentElementText\" x=\"40\" y=\"30\"> " << std::endl;
1585 *
savefile <<
"<tspan id=\"line1\" x=\"40\" y=\"30\"> </tspan> " << std::endl;
1586 *
savefile <<
"<tspan id=\"line2\" x=\"40\" y=\"60\"> </tspan> " << std::endl;
1587 *
savefile <<
" </text> </svg>" << std::endl;
1593 if(filetype==
"svg"){
1594 *
savefile <<
"</g> </svg> </svg> " << std::endl;
1599 if(!print_total && !usePsuValue){
1601 TmPsu *psu = ipsu->second;
1614 const char * command1;
1615 std::string tempfilename = outputfilename +
".coor";
1616 int red,
green,blue,npoints,colindex,ncolor;
1619 TCanvas *MyC =
new TCanvas(
"MyC",
"TrackerMap",width,height);
1620 gPad->SetFillColor(38);
1622 gPad->Range(0,0,3700,1600);
1626 typedef std::map<int,int> ColorList;
1627 ColorList colorList;
1628 ColorList::iterator
pos;
1630 while(!tempfile.eof()) {
1631 tempfile >> red >> green >> blue >> npoints;
1632 colindex=red+green*1000+blue*1000000;
1633 pos=colorList.find(colindex);
1634 if(pos == colorList.end()){
1635 colorList[colindex]=ncolor+100;
1636 col =gROOT->GetColor(ncolor+100);
1638 col->SetRGB((Double_t)(red/255.),(Double_t)(green/255.),(Double_t)(blue/255.));
1640 c =
new TColor(ncolor+100,(Double_t)(red/255.),(Double_t)(green/255.),(Double_t)(blue/255.));
1644 for (
int i=0;
i<npoints;
i++){
1645 tempfile >> x[
i] >> y[
i];
1648 if(ncolor>0 && ncolor<10000){
1650 for(
int i=0;
i<ncolor;
i++){colors[
i]=
i+100;}
1651 gStyle->SetPalette(ncolor,colors);
1654 tempfile.seekg(0,std::ios::beg);
1655 std::cout <<
"created palette with " << ncolor <<
" colors" << std::endl;
1656 while(!tempfile.eof()) {
1657 tempfile >> red >> green >> blue >> npoints;
1658 for (
int i=0;
i<npoints;
i++){
1659 tempfile >> x[
i] >> y[
i];
1661 colindex=red+green*1000+blue*1000000;
1662 pos=colorList.find(colindex);
1663 if(pos != colorList.end()){
1664 TPolyLine* pline =
new TPolyLine(npoints,y,x);
1665 vp.push_back(pline);
1666 pline->SetFillColor(colorList[colindex]);
1667 pline->SetLineWidth(0);
1672 std::cout <<
"Filetype " << filetype << std::endl;
1673 if(filetype==
"png"){
1674 std::string
filename = outputfilename +
".png";
1675 MyC->Print(filename.c_str());
1677 if(filetype==
"jpg"){
1678 std::string
filename = outputfilename +
".jpg";
1679 MyC->Print(filename.c_str());
1681 if(filetype==
"pdf"){
1682 std::string
filename = outputfilename +
".pdf";
1683 MyC->Print(filename.c_str());
1685 std::string
command =
"rm "+tempfilename ;
1686 command1=command.c_str();
1687 std::cout <<
"Executing " << command1 << std::endl;
1691 for(std::vector<TPolyLine*>::iterator pos1=vp.begin();pos1!=vp.end();pos1++){
1705 std::vector<TPolyLine*> vp;
1707 size_t found=filetype.find_last_of(
".");
1708 filetype=filetype.substr(found+1);
1709 found=outputfilename.find_last_of(
".");
1710 outputfilename=outputfilename.substr(0,found);
1718 std::ostringstream outs;
1720 outs << outputfilename <<
".coor";
1723 std::map<int , TmPsu *>::iterator ipsu;
1724 std::multimap<TmPsu*, TmModule*>::iterator it;
1725 std::pair<std::multimap<TmPsu*, TmModule*>::iterator,std::multimap<TmPsu*, TmModule*>::iterator>
ret;
1728 bool usePsuValue=
false;
1731 TmPsu* psu= ipsu->second;
1733 if(psu->
count > 0 || psu->
red!=-1) { usePsuValue=
true;
break;}
1739 TmPsu * psu= ipsu->second;
1742 for(it = ret.first; it != ret.second; ++it){
1753 if(
title==
" Tracker Map from QTestAlarm"){
1755 TmPsu * psu= ipsu->second;
1759 for (it = ret.first; it != ret.second; ++it) {
1760 if( !( (*it).second->red==0 && (*it).second->green==255 && (*it).second->blue==0 ) && !( (*it).second->red==255 && (*it).second->green==255 && (*it).second->blue==255 ) ){
1772 TmPsu * psu= ipsu->second;
1785 TmPsu * psu= ipsu->second;
1793 if(filetype==
"svg"){
1795 std::ostringstream outs;
1796 outs << outputfilename<<
".svg";
1798 *
savefile <<
"<?xml version=\"1.0\" standalone=\"no\" ?>"<<std::endl;
1799 *
savefile <<
"<svg xmlns=\"http://www.w3.org/2000/svg\""<<std::endl;
1800 *
savefile <<
"xmlns:svg=\"http://www.w3.org/2000/svg\" "<<std::endl;
1801 *
savefile <<
"xmlns:xlink=\"http://www.w3.org/1999/xlink\">"<<std::endl;
1802 *
savefile <<
"<svg:svg id=\"mainMap\" x=\"0\" y=\"0\" viewBox=\"0 0 3000 1600"<<
"\" width=\""<<width<<
"\" height=\""<<height<<
"\">"<<std::endl;
1803 *
savefile <<
"<svg:rect fill=\"lightblue\" stroke=\"none\" x=\"0\" y=\"0\" width=\"3000\" height=\"1600\" /> "<<std::endl;
1804 *
savefile <<
"<svg:g id=\"psutrackermap\" transform=\"translate(10,1500) rotate(270)\" style=\"fill:none;stroke:black;stroke-width:0;\"> "<<std::endl;
1807 for (
int irack=1; irack < (
npsuracks+1); irack++){
1808 if(filetype==
"xml"){
1810 std::ostringstream outs;
1811 outs << outputfilename<<
"psurack" <<irack<<
".xml";
1813 *
savefile <<
"<?xml version=\"1.0\" standalone=\"no\"?>"<<std::endl;
1814 *
savefile <<
"<svg xmlns=\"http://www.w3.org/2000/svg\""<<std::endl;
1815 *
savefile <<
"xmlns:svg=\"http://www.w3.org/2000/svg\""<<std::endl;
1816 *
savefile <<
"xmlns:xlink=\"http://www.w3.org/1999/xlink\" >"<<std::endl;
1817 *
savefile <<
"<script type=\"text/ecmascript\" xlink:href=\"rack.js\" />"<<std::endl;
1818 *
savefile <<
"<svg id=\"mainMap\" x=\"0\" y=\"0\" viewBox=\"0 0 500 500\" width=\"700\" height=\"700\" onload=\"TrackerCrate.init()\">"<<std::endl;
1819 *
savefile <<
"<rect fill=\"lightblue\" stroke=\"none\" x=\"0\" y=\"0\" width=\"700\" height=\"700\" />"<<std::endl;
1820 *
savefile <<
"<g id=\"rack\" transform=\" translate(150,500) rotate(270) scale(1.,1.)\" > "<<std::endl;
1826 for ( ipsu=
psuMap.begin();ipsu !=
psuMap.end(); ipsu++){
1827 TmPsu * psu= ipsu->second;
1836 if(filetype==
"xml"){
1837 *
savefile <<
"</g> </svg> <text id=\"currentElementText\" x=\"40\" y=\"30\"> " << std::endl;
1838 *
savefile <<
"<tspan id=\"line1\" x=\"40\" y=\"30\"> </tspan> " << std::endl;
1839 *
savefile <<
"<tspan id=\"line2\" x=\"40\" y=\"60\"> </tspan> " << std::endl;
1840 *
savefile <<
" </text> </svg>" << std::endl;
1846 if(filetype==
"svg"){
1847 *
savefile <<
"</g> </svg> </svg> " << std::endl;
1852 if(!print_total && !usePsuValue){
1854 TmPsu *psu = ipsu->second;
1866 const char * command1;
1867 std::string tempfilename = outputfilename +
".coor";
1868 int red,
green,blue,npoints,colindex,ncolor;
1871 TCanvas *MyC =
new TCanvas(
"MyC",
"TrackerMap",width,height);
1872 gPad->SetFillColor(38);
1874 gPad->Range(0,0,3700,1600);
1878 typedef std::map<int,int> ColorList;
1879 ColorList colorList;
1880 ColorList::iterator
pos;
1882 while(!tempfile.eof()) {
1883 tempfile >> red >> green >> blue >> npoints;
1884 colindex=red+green*1000+blue*1000000;
1885 pos=colorList.find(colindex);
1886 if(pos == colorList.end()){
1887 colorList[colindex]=ncolor+100;
1888 col =gROOT->GetColor(ncolor+100);
1890 col->SetRGB((Double_t)(red/255.),(Double_t)(green/255.),(Double_t)(blue/255.));
1892 c =
new TColor(ncolor+100,(Double_t)(red/255.),(Double_t)(green/255.),(Double_t)(blue/255.));
1896 for (
int i=0;
i<npoints;
i++){
1897 tempfile >> x[
i] >> y[
i];
1900 if(ncolor>0 && ncolor<10000){
1902 for(
int i=0;
i<ncolor;
i++){colors[
i]=
i+100;}
1903 gStyle->SetPalette(ncolor,colors);
1906 tempfile.seekg(0,std::ios::beg);
1907 std::cout <<
"created palette with " << ncolor <<
" colors" << std::endl;
1908 while(!tempfile.eof()) {
1909 tempfile >> red >> green >> blue >> npoints;
1910 for (
int i=0;
i<npoints;
i++){
1911 tempfile >> x[
i] >> y[
i];
1913 colindex=red+green*1000+blue*1000000;
1914 pos=colorList.find(colindex);
1915 if(pos != colorList.end()){
1916 TPolyLine* pline =
new TPolyLine(npoints,y,x);
1917 vp.push_back(pline);
1918 pline->SetFillColor(colorList[colindex]);
1919 pline->SetLineWidth(0);
1924 std::cout <<
"Filetype " << filetype << std::endl;
1925 if(filetype==
"png"){
1926 std::string
filename = outputfilename +
".png";
1927 MyC->Print(filename.c_str());
1929 if(filetype==
"jpg"){
1930 std::string
filename = outputfilename +
".jpg";
1931 MyC->Print(filename.c_str());
1933 if(filetype==
"pdf"){
1934 std::string
filename = outputfilename +
".pdf";
1935 MyC->Print(filename.c_str());
1937 std::string
command =
"rm "+tempfilename ;
1938 command1=command.c_str();
1939 std::cout <<
"Executing " << command1 << std::endl;
1943 for(std::vector<TPolyLine*>::iterator pos1=vp.begin();pos1!=vp.end();pos1++){
1953 std::vector<TPolyLine*> vp;
1955 size_t found=filetype.find_last_of(
".");
1956 filetype=filetype.substr(found+1);
1957 found=outputfilename.find_last_of(
".");
1958 outputfilename=outputfilename.substr(0,found);
1962 std::ostringstream outs;
1964 outs << outputfilename <<
".coor";
1966 std::map<int , TmApvPair *>::iterator i_apv;
1967 std::map<int , int>::iterator i_fed;
1969 bool useApvPairValue=
false;
1970 for( i_apv=
apvMap.begin();i_apv !=
apvMap.end(); i_apv++){
1974 if(apv_mod !=0 && !apv_mod->
notInUse()){
1975 if(apvPair->
count > 0 || apvPair->
red!=-1) { useApvPairValue=
true;
break;}
1980 for( i_apv=
apvMap.begin();i_apv !=
apvMap.end(); i_apv++){
1984 if(apv_mod !=0 && !apv_mod->
notInUse()){
1995 for(i_apv=
apvMap.begin();i_apv !=
apvMap.end(); i_apv++){
1999 if( apv_mod !=0 && !apv_mod->
notInUse()){
2000 if(useApvPairValue){
2011 if(filetype==
"svg"){
2013 std::ostringstream outs;
2014 outs << outputfilename<<
".svg";
2016 *
savefile <<
"<?xml version=\"1.0\" standalone=\"no\" ?>"<<std::endl;
2017 *
savefile <<
"<svg xmlns=\"http://www.w3.org/2000/svg\""<<std::endl;
2018 *
savefile <<
"xmlns:svg=\"http://www.w3.org/2000/svg\" "<<std::endl;
2019 *
savefile <<
"xmlns:xlink=\"http://www.w3.org/1999/xlink\">"<<std::endl;
2020 *
savefile <<
"<svg:svg id=\"mainMap\" x=\"0\" y=\"0\" viewBox=\"0 0 3000 1600"<<
"\" width=\""<<width<<
"\" height=\""<<height<<
"\">"<<std::endl;
2021 *
savefile <<
"<svg:rect fill=\"lightblue\" stroke=\"none\" x=\"0\" y=\"0\" width=\"3000\" height=\"1600\" /> "<<std::endl;
2022 *
savefile <<
"<svg:g id=\"fedtrackermap\" transform=\"translate(10,1500) rotate(270)\" style=\"fill:none;stroke:black;stroke-width:0;\"> "<<std::endl;
2024 for (
int crate=1; crate < (
ncrates+1); crate++){
2025 if(filetype==
"xml"){
2027 std::ostringstream outs;
2028 outs << outputfilename<<
"crate" <<crate<<
".xml";
2030 *
savefile <<
"<?xml version=\"1.0\" standalone=\"no\"?>"<<std::endl;
2031 *
savefile <<
"<svg xmlns=\"http://www.w3.org/2000/svg\""<<std::endl;
2032 *
savefile <<
"xmlns:svg=\"http://www.w3.org/2000/svg\""<<std::endl;
2033 *
savefile <<
"xmlns:xlink=\"http://www.w3.org/1999/xlink\" >"<<std::endl;
2034 *
savefile <<
"<script type=\"text/ecmascript\" xlink:href=\"crate.js\" />"<<std::endl;
2035 *
savefile <<
"<svg id=\"mainMap\" x=\"0\" y=\"0\" viewBox=\"0 0 500 500\" width=\"700\" height=\"700\" onload=\"TrackerCrate.init()\">"<<std::endl;
2036 *
savefile <<
"<rect fill=\"lightblue\" stroke=\"none\" x=\"0\" y=\"0\" width=\"700\" height=\"700\" />"<<std::endl;
2037 *
savefile <<
"<g id=\"crate\" transform=\" translate(150,500) rotate(270) scale(1.,1.)\" > "<<std::endl;
2041 int numfed_incrate=0;
2042 for (i_fed=
fedMap.begin();i_fed !=
fedMap.end(); i_fed++){
2043 if(i_fed->second == crate){
2044 int fedId = i_fed->first;
2046 for (
int nconn=0;nconn<96;nconn++){
2047 int key = fedId*1000+nconn;
2051 if(apv_mod !=0 && !apv_mod->
notInUse()){
2059 if(filetype==
"xml"){
2060 *
savefile <<
"</g> </svg> <text id=\"currentElementText\" x=\"40\" y=\"30\"> " << std::endl;
2061 *
savefile <<
"<tspan id=\"line1\" x=\"40\" y=\"30\"> </tspan> " << std::endl;
2062 *
savefile <<
"<tspan id=\"line2\" x=\"40\" y=\"60\"> </tspan> " << std::endl;
2063 *
savefile <<
" </text> </svg>" << std::endl;
2069 if(filetype==
"svg"){
2070 *
savefile <<
"</g> </svg> </svg> " << std::endl;
2073 if(!print_total && !useApvPairValue){
2075 for( i_apv=
apvMap.begin();i_apv !=
apvMap.end(); i_apv++){
2079 if(apv_mod !=0 && apvPair->
mpos==0 && !apv_mod->
notInUse()){
2090 const char * command1;
2091 std::string tempfilename = outputfilename +
".coor";
2092 int red,
green,blue,npoints,colindex,ncolor;
2095 TCanvas *MyC =
new TCanvas(
"MyC",
"TrackerMap",width,height);
2096 gPad->SetFillColor(38);
2098 gPad->Range(0,0,3750,1600);
2102 typedef std::map<int,int> ColorList;
2103 ColorList colorList;
2104 ColorList::iterator
pos;
2106 while(!tempfile.eof()) {
2107 tempfile >> red >> green >> blue >> npoints;
2108 colindex=red+green*1000+blue*1000000;
2109 pos=colorList.find(colindex);
2110 if(pos == colorList.end()){
2111 colorList[colindex]=ncolor+100;
2112 col =gROOT->GetColor(ncolor+100);
2114 col->SetRGB((Double_t)(red/255.),(Double_t)(green/255.),(Double_t)(blue/255.));
2116 c =
new TColor(ncolor+100,(Double_t)(red/255.),(Double_t)(green/255.),(Double_t)(blue/255.));
2120 for (
int i=0;
i<npoints;
i++){
2121 tempfile >> x[
i] >> y[
i];
2124 if(ncolor>0 && ncolor<10000){
2126 for(
int i=0;
i<ncolor;
i++){colors[
i]=
i+100;}
2127 gStyle->SetPalette(ncolor,colors);
2130 tempfile.seekg(0,std::ios::beg);
2131 std::cout <<
"created palette with " << ncolor <<
" colors" << std::endl;
2132 while(!tempfile.eof()) {
2133 tempfile >> red >> green >> blue >> npoints;
2134 for (
int i=0;
i<npoints;
i++){
2135 tempfile >> x[
i] >> y[
i];
2137 colindex=red+green*1000+blue*1000000;
2138 pos=colorList.find(colindex);
2139 if(pos != colorList.end()){
2140 TPolyLine* pline =
new TPolyLine(npoints,y,x);
2141 vp.push_back(pline);
2142 pline->SetFillColor(colorList[colindex]);
2143 pline->SetLineWidth(0);
2148 std::cout <<
"Filetype " << filetype << std::endl;
2149 if(filetype==
"png"){
2150 std::string
filename = outputfilename +
".png";
2151 MyC->Print(filename.c_str());
2153 if(filetype==
"jpg"){
2154 std::string
filename = outputfilename +
".jpg";
2155 MyC->Print(filename.c_str());
2157 if(filetype==
"pdf"){
2158 std::string
filename = outputfilename +
".pdf";
2159 MyC->Print(filename.c_str());
2161 std::string
command =
"rm "+tempfilename ;
2162 command1=command.c_str();
2163 std::cout <<
"Executing " << command1 << std::endl;
2167 for(std::vector<TPolyLine*>::iterator pos1=vp.begin();pos1!=vp.end();pos1++){
2178 int ipos,ipos1,ipos2,
id=0,val=0;
2182 ipos1 = line.find(
"value=\"");
2184 value = line.substr(ipos1+7,10);
2185 ipos = value.find(
"\"");
2186 value = value.substr(0,ipos);
2187 val=atoi(value.c_str());
2189 ipos2 = line.find(
"detid=\"");
2191 value = line.substr(ipos2+7,10);
2192 ipos = value.find(
"\"");
2193 value = value.substr(0,ipos);
2194 id = atoi(value.c_str());
2196 if(ipos1>0 && ipos2>0 && val>0)this->
fill(
id,val);
2197 if(ipos1>0 && ipos2>0)nline++;
2201 std::cout << nline <<
" modules found in this svg file " << std::endl;
2212 std::ostringstream outs;
2214 outs << outputfilename <<
".xml";
2220 while (getline( *jsfile, line ))
2222 *
svgfile << line << std::endl;
2224 jsfile->close();
delete jsfile;
2227 for (
int layer=1; layer < 44; layer++){
2242 for (
int layer=1; layer < 44; layer++){
2255 for (
int layer=1; layer < 44; layer++){
2268 *
svgfile <<
"</svg:g></svg:svg>"<<std::endl;
2269 *
svgfile <<
" <svg:text id=\"Title\" class=\"normalText\" x=\"300\" y=\"0\">"<<
title<<
"</svg:text>"<<std::endl;
2271 *
svgfile <<
"</svg:svg>"<<std::endl;
2272 *
svgfile <<
"</body></html>"<<std::endl;
2280 int paletteLength = 250;
2282 for(
int i=0;
i<paletteLength;
i++){
2284 red=(color>>16)&0xFF;
2285 green=(color>>8)&0xFF;
2297 if(!
temporary_file)*svgfile <<
"<svg:rect x=\"3610\" y=\""<<(1550-6*
i)<<
"\" width=\"50\" height=\"6\" fill=\"rgb("<<red<<
","<<green<<
","<<blue<<
")\" />\n";
2298 else *svgfile << red <<
" " << green <<
" " << blue <<
" 4 " << (6*
i)+40 <<
" 3610. " <<
2299 (6*
i)+40 <<
" 3660. " <<
2300 (6*(
i-1))+40 <<
" 3660. " <<
2301 (6*(
i-1))+40 <<
" 3610. " << std::endl;
2304 if(!
temporary_file)*svgfile <<
"<svg:rect x=\"3610\" y=\""<<(1550-6*
i)<<
"\" width=\"50\" height=\"1\" fill=\"black\" />\n";
2305 if(
i%50==0&&!
temporary_file)*svgfile <<
" <svg:text class=\"normalText\" x=\"3660\" y=\""<<(1560-6*
i)<<
"\">" <<val<<
"</svg:text>"<<std::endl;
2312 int key = fedId*1000+fedCh;
2319 std::cout <<
"*** error in FedTrackerMap fillc method ***";
2324 std::multimap<const int, TmApvPair*>::iterator
pos;
2334 std::cout <<
"*** error in FedTrackerMap fill by module method ***";
2339 int key = fedId*1000+fedCh;
2342 if(apvpair!=0) {apvpair->
value=current_val; apvpair->
count=1; apvpair->
red=-1;}
2344 std::cout <<
"*** error in FedTrackerMap fill_current_val method ***";
2350 int key =crate*10000000+slot*100000+ring*1000+addr;
2358 std::cout <<
"*** error in FecTrackerMap fillc method ***";
2363 int key =crate*10000000+slot*100000+ring*1000+addr;
2371 std::cout <<
"*** error in FecTrackerMap fill by module method ***";
2379 int key = rack*1000+crate*100+board;
2387 std::cout <<
"*** error in LVTrackerMap fillc method ***";
2392 int key = rack*1000+crate*100+board;
2400 std::cout <<
"*** error in LVTrackerMap fill by module method ***";
2406 int key = rack*1000+crate*100+board;
2414 std::cout <<
"*** error in HVTrackerMap (channel 2) fillc method ***";
2419 int key = rack*1000+crate*100+board;
2427 std::cout <<
"*** error in HVTrackerMap (channel 3) fillc method ***";
2433 int key = rack*1000+crate*100+board;
2441 std::cout <<
"*** error in HVTrackerMap fill by module method ***";
2445 int key = rack*1000+crate*100+board;
2453 std::cout <<
"*** error in HVTrackerMap fill by module method ***";
2462 int key = fedId*1000+fedCh;
2468 std::cout <<
"*** error in FedTrackerMap module method ***";
2472 int key = fedId*1000+fedCh;
2479 std::cout <<
"*** error inFedTrackerMap fill method ***";
2490 std::cout <<
"**************************error in fill method **************module "<<idmod<<std::endl;
2494 int key = layer*10000+ring*1000+nmod;
2501 std::cout <<
"**************************error in fill method **************"<< std::endl;
2506 std::map<const int , TmModule *>::iterator imod;
2508 fillc(imod->first,255,255,255);
2514 std::map<const int , TmModule *>::iterator imod;
2525 if(mod!=0) {mod->
value=current_val; mod->
count=1; mod->
red=-1;}
2526 else std::cout <<
"**error in fill_current_val method ***module "<<idmod<<std::endl;
2539 if(mod1!=0 && mod2!=0){
2546 std::cout <<
"**************************error in fill method **************module "<<idmod<<std::endl;
2551 int key = layer*100000+ring*1000+nmod;
2557 else std::cout <<
"**************************error in SvgModuleMap **************";
2566 else std::cout <<
"**************************error in IdModuleMap **************";
2572 int key = layer*100000+ring*1000+nmod;
2577 else std::cout <<
"**************************error in SvgModuleMap **************";
2583 int nmods, pix_sil, fow_bar,
ring, nmod, layer;
2585 float posx, posy, posz, length,
width, thickness, widthAtHalfLength;
2586 int iModule=0,old_layer=0, ntotMod =0;
2587 std::string
name,dummys;
2589 while(!infile.eof()) {
2590 infile >> nmods >> pix_sil >> fow_bar >> layer >> ring >> nmod >> posx >> posy
2591 >> posz>> length >> width >> thickness
2592 >> widthAtHalfLength >> idex ;
2593 getline(infile,dummys);
2594 getline(infile,name);
2595 if(old_layer!=layer){old_layer=layer;iModule=0;}
2598 int key=layer*100000+ring*1000+nmod;
2603 if(mod==0)
std::cout <<
"error in module "<<key <<std::endl;
2625 red=0;green=0;blue=0;
2629 if(value<
minvalue){red=0;green=0;blue=255;}
2630 if(value>
maxvalue){red=255;green=0;blue=0;}
2632 red = (int) ( x<(delta/2) ? 0 : ( x > ((3./4.)*
delta) ? 255 : 255/(delta/4) * (x-(2./4.)*
delta) ) );
2633 green= (int) ( x<delta/4 ? (x*255/(delta/4)) : ( x > ((3./4.)*
delta) ? 255-255/(delta/4) *(x-(3./4.)*
delta) : 255 ) );
2634 blue = (int) ( x<delta/4 ? 255 : ( x > ((1./2.)*
delta) ? 0 : 255-255/(delta/4) * (x-(1./4.)*
delta) ) );
2639 if (green > 255) green=255;
2640 red = 255; blue=0;green=255-
green;
2642 return(blue|(green<<8)|(red<<16));
2646 std::ofstream * ofilename;
2647 std::ifstream * ifilename;
2648 std::ostringstream ofname;
2652 std::string outputfilename=
"dqmtmap";
2653 ifilename=
findfile(
"viewerHeader.xhtml");
2654 ofname << outputfilename <<
"viewer.html";
2655 ofilename =
new std::ofstream(ofname.str().c_str(),
std::ios::out);
2656 while (getline( *ifilename, line )) { *ofilename << line << std::endl; }
2657 *ofilename <<
" var tmapname=\"" <<outputfilename <<
"\""<<std::endl;
2658 *ofilename <<
" var tmaptitle=\"" <<
title <<
"\""<<std::endl;
2659 *ofilename <<
" var ncrates=" <<
ncrates <<
";"<<std::endl;
2660 *ofilename <<
" var nfeccrates=" <<
nfeccrates <<
";"<<std::endl;
2661 *ofilename <<
" var npsuracks=" <<
npsuracks <<
";"<<std::endl;
2663 ifilename->close();
delete ifilename;
2665 ifilename=
findfile(
"viewerTrailer.xhtml");
2666 while (getline( *ifilename, line )) { *ofilename << line << std::endl; }
2667 ofilename->close();
delete ofilename;
2668 command =
"sed -i \"s/XtmapnameX/"+outputfilename+
"/g\" "+ ofname.str();
2669 std::cout <<
"Executing " << command << std::endl;
2670 system(command.c_str());
2671 command =
"sed -i \"s/XtmaptitleX/"+
title+
"/g\" "+ ofname.str();
2672 std::cout <<
"Executing " << command << std::endl;
2673 system(command.c_str());
2675 ifilename->close();
delete ifilename;
2678 ofname <<
"jqviewer.js";
2679 ofilename =
new std::ofstream(ofname.str().c_str(),
std::ios::out);
2680 while (getline( *ifilename, line )) { *ofilename << line << std::endl; }
2682 ofilename->close();
delete ofilename;
2683 ifilename->close();
delete ifilename;
2686 ofname <<
"crate.js";
2687 ofilename =
new std::ofstream(ofname.str().c_str(),
std::ios::out);
2688 while (getline( *ifilename, line )) { *ofilename << line << std::endl; }
2690 ofilename->close();
delete ofilename;
2691 ifilename->close();
delete ifilename;
2694 ofname <<
"feccrate.js";
2695 ofilename =
new std::ofstream(ofname.str().c_str(),
std::ios::out);
2696 while (getline( *ifilename, line )) { *ofilename << line << std::endl; }
2698 ofilename->close();
delete ofilename;
2699 ifilename->close();
delete ifilename;
2702 ofname <<
"layer.js";
2703 ofilename =
new std::ofstream(ofname.str().c_str(),
std::ios::out);
2704 while (getline( *ifilename, line )) { *ofilename << line << std::endl; }
2706 ofilename->close();
delete ofilename;
2707 ifilename->close();
delete ifilename;
2710 ofname <<
"rack.js";
2711 ofilename =
new std::ofstream(ofname.str().c_str(),
std::ios::out);
2712 while (getline( *ifilename, line )) { *ofilename << line << std::endl; }
2714 ofilename->close();
delete ofilename;
2715 ifilename->close();
delete ifilename;
2719 ofname <<
"rackhv.js";
2720 ofilename =
new std::ofstream(ofname.str().c_str(),
std::ios::out);
2721 while (getline( *ifilename, line )) { *ofilename << line << std::endl; }
2723 ofilename->close();
delete ofilename;
2724 ifilename->close();
delete ifilename;
2729 std::ostringstream outs,outs1,outs2;
2730 outs << outputfilename<<
".png";
2737 for (
int layer=1; layer < 44; layer++){
2738 std::ostringstream outs;
2739 outs << outputfilename <<
"layer"<<layer<<
".html";
2740 txtfile =
new std::ofstream(outs.str().c_str(),
std::ios::out);
2741 *txtfile <<
"<html><head></head> <body>" << std::endl;
2747 int idmod=mod->
idex;
2749 *txtfile <<
"<a name="<<idmod<<
"><pre>"<<std::endl;
2750 std::multimap<const int, TmApvPair*>::iterator
pos;
2756 *txtfile << apvpair->
text << std::endl;
2760 *txtfile <<
"</pre><h3>"<< mod->
name<<
"</h3>"<<std::endl;
2764 *txtfile <<
"</body></html>" << std::endl;
2765 txtfile->close();
delete txtfile;
2768 outs1 << outputfilename<<
"fed.png";
2770 outs2 << outputfilename<<
".xml";
2773 std::map<int , int>::iterator i_fed;
2775 for (
int crate=1; crate < (
ncrates+1); crate++){
2776 std::ostringstream outs;
2777 outs << outputfilename <<
"crate"<<crate<<
".html";
2778 txtfile =
new std::ofstream(outs.str().c_str(),
std::ios::out);
2779 *txtfile <<
"<html><head></head> <body>" << std::endl;
2780 for (i_fed=
fedMap.begin();i_fed !=
fedMap.end(); i_fed++){
2781 if(i_fed->second == crate){
2782 int fedId = i_fed->first;
2783 for (
int nconn=0;nconn<96;nconn++){
2784 int key = fedId*1000+nconn;
2787 int idmod=apvPair->
idex;
2788 *txtfile <<
"<a name="<<idmod<<
"><pre>"<<std::endl;
2789 *txtfile << apvPair->
text << std::endl;
2790 std::ostringstream outs;
2791 outs <<
"fedchannel " <<apvPair->
getFedId() <<
"/"<<apvPair->
getFedCh()<<
" connects to module " << apvPair->
mod->
idex ;
2792 *txtfile <<
"</pre><h3>"<< outs.str()<<
"</h3>"<<std::endl;
2797 *txtfile <<
"</body></html>" << std::endl;
2798 txtfile->close();
delete txtfile;
2802 std::ostringstream outs1,outs2;
2803 outs1 << outputfilename<<
"fec.png";
2805 outs2 << outputfilename<<
".xml";
2809 std::map<int , TmCcu *>::iterator i_ccu;
2810 std::multimap<TmCcu*, TmModule*>::iterator it;
2811 std::pair<std::multimap<TmCcu*, TmModule*>::iterator,std::multimap<TmCcu*, TmModule*>::iterator>
ret;
2812 for (
int crate=1; crate < (
nfeccrates+1); crate++){
2813 std::ostringstream outs;
2814 outs << outputfilename <<
"feccrate"<<crate<<
".html";
2815 txtfile =
new std::ofstream(outs.str().c_str(),
std::ios::out);
2816 *txtfile <<
"<html><head></head> <body>" << std::endl;
2817 for( i_ccu=
ccuMap.begin();i_ccu !=
ccuMap.end(); i_ccu++){
2818 TmCcu * ccu= i_ccu->second;
2820 int idmod=ccu->
idex;
2821 *txtfile <<
"<a name="<<idmod<<
"><pre>"<<std::endl;
2822 *txtfile << ccu->
text << std::endl;
2823 std::ostringstream outs;
2824 if(ccu->
nmod==0)outs <<
"ccu is in position" << ccu->
mpos<<
"in ring but doesn't seem to have any module connected";
else
2826 outs <<
"ccu is in position " << ccu->
mpos<<
" in ring and connects " <<ccu->
nmod<<
" modules" << std::endl;
2828 for (it = ret.first; it != ret.second; ++it)
2830 outs << (*it).second->idex<<
" " << (*it).second->name <<
" value= "<< (*it).second->value<<
"\n\n";
2833 *txtfile <<
"</pre><h4>"<< outs.str()<<
"</h4>"<<std::endl;
2837 *txtfile <<
"</body></html>" << std::endl;
2838 txtfile->close();
delete txtfile;
2842 std::ostringstream outs3,outs4;
2843 outs3 << outputfilename<<
"psu.png";
2846 outs4 << outputfilename<<
".xml";
2851 std::map<int , TmPsu *>::iterator ipsu;
2852 std::multimap<TmPsu*, TmModule*>::iterator it;
2853 std::pair<std::multimap<TmPsu*, TmModule*>::iterator,std::multimap<TmPsu*, TmModule*>::iterator>
ret;
2854 for (
int rack=1; rack < (
npsuracks+1); rack++){
2855 std::ostringstream outs;
2857 outs << outputfilename <<
"psurack"<<rack<<
".html";
2858 txtfile =
new std::ofstream(outs.str().c_str(),
std::ios::out);
2859 *txtfile <<
"<html><head></head> <body>" << std::endl;
2860 for ( ipsu=
psuMap.begin();ipsu !=
psuMap.end(); ipsu++){
2861 TmPsu * psu= ipsu->second;
2863 *txtfile <<
"<a name="<<psu->
idex<<
"><pre>"<<std::endl;
2864 *txtfile << psu->
text << std::endl;
2865 std::ostringstream outs;
2866 if(psu->
nmod==0)outs <<
"Ps is in position" << psu->
getPsuBoard()<<
"in crate but doesn't seem to have any module connected";
else
2868 outs<<
"PS is in position " <<psu->
getPsuBoard()<<
" in crate and connects to "<<psu->
nmod<<
" modules. "<<std::endl;
2871 for (it = ret.first; it != ret.second; ++it)
2873 outs <<(*it).second->idex <<
" "<< (*it).second->name<<
" value= "<<(*it).second->value<<
" <br>"<<std::endl;
2876 *txtfile <<
"</pre><h4>"<< outs.str()<<
"</h4>"<<std::endl;
2880 *txtfile <<
"</body></html>" << std::endl;
2881 txtfile->close();
delete txtfile;
2887 std::ostringstream outs5,outs6;
2888 outs5 << outputfilename<<
"hv.png";
2891 outs6 << outputfilename<<
".xml";
2896 std::map<int , TmPsu *>::iterator ipsu;
2897 std::multimap<TmPsu*, TmModule*>::iterator it;
2898 std::pair<std::multimap<TmPsu*, TmModule*>::iterator,std::multimap<TmPsu*, TmModule*>::iterator>
ret;
2899 for (
int rack=1; rack < (
npsuracks+1); rack++){
2900 std::ostringstream outs;
2902 outs << outputfilename <<
"HVrack"<<rack<<
".html";
2903 txtfile =
new std::ofstream(outs.str().c_str(),
std::ios::out);
2904 *txtfile <<
"<html><head></head> <body>" << std::endl;
2905 for ( ipsu=
psuMap.begin();ipsu !=
psuMap.end(); ipsu++){
2906 TmPsu * psu= ipsu->second;
2908 *txtfile <<
"<a name="<<psu->
idex<<
"><pre>"<<std::endl;
2909 *txtfile << psu->
textHV2 << std::endl;
2910 std::ostringstream outsHV2;
2911 if(psu->
nmodHV2==0)outsHV2 <<
"HV Channel002 is in position" << psu->
getPsuBoard()<<
"in crate but doesn't seem to have any module connected";
else
2913 outsHV2<<
"HV Channel002 is in position " <<psu->
getPsuBoard()<<
" in crate and connects to "<<psu->
nmodHV2<<
" modules. "<<
" <br>"<<std::endl;
2916 for (it = ret.first; it != ret.second; ++it)
2918 if((*it).second->HVchannel==2){outsHV2 <<(*it).second->idex <<
" "<< (*it).second->name<<
" value= "<<(*it).second->value<<
" <br>"<<std::endl;}
2920 *txtfile <<
"</pre><h4>"<< outsHV2.str()<<
"</h4>"<<std::endl;
2923 *txtfile << psu->
textHV3 << std::endl;
2924 std::ostringstream outsHV3;
2925 if(psu->
nmodHV3==0)outsHV3 <<
"HV Channel003 is in position" << psu->
getPsuBoard()<<
"in crate but doesn't seem to have any module connected";
else
2927 outsHV3<<
"HV Channel003 is in position " <<psu->
getPsuBoard()<<
" in crate and connects to "<<psu->
nmodHV3<<
" modules. "<<
" <br>"<<std::endl;
2930 for (it = ret.first; it != ret.second; ++it)
2932 if((*it).second->HVchannel==3){outsHV3 <<(*it).second->idex <<
" "<< (*it).second->name<<
" value= "<<(*it).second->value<<
" <br>"<<std::endl;}
2934 *txtfile <<
"</pre><h4>"<< outsHV3.str()<<
"</h4>"<<std::endl;
2939 *txtfile <<
"</body></html>" << std::endl;
2940 txtfile->close();
delete txtfile;
2947 std::ofstream * ofilename;
2948 std::ifstream * ifilename;
2949 std::ostringstream ofname;
2954 ifilename=
findfile(
"viewerHeader.xhtml");
2955 ofname << outputfilename <<
"viewer.html";
2956 ofilename =
new std::ofstream(ofname.str().c_str(),
std::ios::out);
2957 while (getline( *ifilename, line )) { *ofilename << line << std::endl; }
2958 *ofilename <<
" var tmapname=\"" <<outputfilename <<
"\""<<std::endl;
2959 *ofilename <<
" var tmaptitle=\"" <<
title <<
"\""<<std::endl;
2960 *ofilename <<
" var ncrates=" <<
ncrates <<
";"<<std::endl;
2961 *ofilename <<
" var nfeccrates=" <<
nfeccrates <<
";"<<std::endl;
2962 *ofilename <<
" var npsuracks=" <<
npsuracks <<
";"<<std::endl;
2963 ifilename->close();
delete ifilename;
2964 ifilename=
findfile(
"viewerTrailer.xhtml");
2965 while (getline( *ifilename, line )) { *ofilename << line << std::endl; }
2966 ofilename->close();
delete ofilename;
2967 ifilename->close();
delete ifilename;
2968 command =
"sed -i \"s/XtmapnameX/"+outputfilename+
"/g\" "+ ofname.str();
2969 std::cout <<
"Executing " << command << std::endl;
2970 system(command.c_str());
2971 command =
"sed -i \"s/XtmaptitleX/"+
title+
"/g\" "+ ofname.str();
2972 std::cout <<
"Executing " << command << std::endl;
2973 system(command.c_str());
2977 ofname <<
"jqviewer.js";
2978 ofilename =
new std::ofstream(ofname.str().c_str(),
std::ios::out);
2979 while (getline( *ifilename, line )) { *ofilename << line << std::endl; }
2980 ofilename->close();
delete ofilename;
2981 ifilename->close();
delete ifilename;
2985 ofname <<
"crate.js";
2986 ofilename =
new std::ofstream(ofname.str().c_str(),
std::ios::out);
2987 while (getline( *ifilename, line )) { *ofilename << line << std::endl; }
2988 ofilename->close();
delete ofilename;
2989 ifilename->close();
delete ifilename;
2993 ofname <<
"feccrate.js";
2994 ofilename =
new std::ofstream(ofname.str().c_str(),
std::ios::out);
2995 while (getline( *ifilename, line )) { *ofilename << line << std::endl; }
2996 ofilename->close();
delete ofilename;
2997 ifilename->close();
delete ifilename;
3001 ofname <<
"rack.js";
3002 ofilename =
new std::ofstream(ofname.str().c_str(),
std::ios::out);
3003 while (getline( *ifilename, line )) { *ofilename << line << std::endl; }
3004 ofilename->close();
delete ofilename;
3005 ifilename->close();
delete ifilename;
3009 ofname <<
"rackhv.js";
3010 ofilename =
new std::ofstream(ofname.str().c_str(),
std::ios::out);
3011 while (getline( *ifilename, line )) { *ofilename << line << std::endl; }
3012 ofilename->close();
delete ofilename;
3013 ifilename->close();
delete ifilename;
3017 ofname <<
"layer.js";
3018 ofilename =
new std::ofstream(ofname.str().c_str(),
std::ios::out);
3019 while (getline( *ifilename, line )) { *ofilename << line << std::endl; }
3020 ofilename->close();
delete ofilename;
3021 ifilename->close();
delete ifilename;
3023 command =
"scp -r ../../DQM/TrackerCommon/test/jquery/ .";
3024 std::cout <<
"Executing " << command << std::endl;
3025 system(command.c_str());
3026 command =
"scp -r ../../CommonTools/TrackerMap/data/images/ .";
3027 std::cout <<
"Executing " << command << std::endl;
3028 system(command.c_str());
3031 std::ostringstream outs;
3032 outs << outputfilename<<
".png";
3033 save(
true,minval,maxval,outs.str(),3000,1600);
3039 for (
int layer=1; layer < 44; layer++){
3040 std::ostringstream outs;
3041 outs << outputfilename <<
"layer"<<layer<<
".html";
3042 txtfile =
new std::ofstream(outs.str().c_str(),
std::ios::out);
3043 *txtfile <<
"<html><head></head> <body>" << std::endl;
3049 int idmod=mod->
idex;
3051 *txtfile <<
"<a name="<<idmod<<
"><pre>"<<std::endl;
3052 std::multimap<const int, TmApvPair*>::iterator
pos;
3058 *txtfile << apvpair->
text << std::endl;
3062 *txtfile <<
"</pre><h3>"<< mod->
name<<
"</h3>"<<std::endl;
3066 *txtfile <<
"</body></html>" << std::endl;
3067 txtfile->close();
delete txtfile;
3070 std::ostringstream outs1,outs2;
3071 outs1 << outputfilename<<
"fed.png";
3073 outs2 << outputfilename<<
".xml";
3076 std::map<int , int>::iterator i_fed;
3078 for (
int crate=1; crate < (
ncrates+1); crate++){
3079 std::ostringstream outs;
3080 outs << outputfilename <<
"crate"<<crate<<
".html";
3081 txtfile =
new std::ofstream(outs.str().c_str(),
std::ios::out);
3082 *txtfile <<
"<html><head></head> <body>" << std::endl;
3083 for (i_fed=
fedMap.begin();i_fed !=
fedMap.end(); i_fed++){
3084 if(i_fed->second == crate){
3085 int fedId = i_fed->first;
3086 for (
int nconn=0;nconn<96;nconn++){
3087 int key = fedId*1000+nconn;
3090 int idmod=apvPair->
idex;
3091 *txtfile <<
"<a name="<<idmod<<
"><pre>"<<std::endl;
3092 *txtfile << apvPair->
text << std::endl;
3093 std::ostringstream outs;
3094 outs <<
"fedchannel " <<apvPair->
getFedId() <<
"/"<<apvPair->
getFedCh()<<
" connects to module " << apvPair->
mod->
idex ;
3095 *txtfile <<
"</pre><h3>"<< outs.str()<<
"</h3>"<<std::endl;
3100 *txtfile <<
"</body></html>" << std::endl;
3101 txtfile->close();
delete txtfile;
3105 std::ostringstream outs1,outs2;
3106 outs1 << outputfilename<<
"fec.png";
3108 outs2 << outputfilename<<
".xml";
3112 std::map<int , TmCcu *>::iterator i_ccu;
3113 std::multimap<TmCcu*, TmModule*>::iterator it;
3114 std::pair<std::multimap<TmCcu*, TmModule*>::iterator,std::multimap<TmCcu*, TmModule*>::iterator>
ret;
3115 for (
int crate=1; crate < (
nfeccrates+1); crate++){
3116 std::ostringstream outs;
3117 outs << outputfilename <<
"feccrate"<<crate<<
".html";
3118 txtfile =
new std::ofstream(outs.str().c_str(),
std::ios::out);
3119 *txtfile <<
"<html><head></head> <body>" << std::endl;
3120 for( i_ccu=
ccuMap.begin();i_ccu !=
ccuMap.end(); i_ccu++){
3121 TmCcu * ccu= i_ccu->second;
3123 int idmod=ccu->
idex;
3124 *txtfile <<
"<a name="<<idmod<<
"><pre>"<<std::endl;
3125 *txtfile << ccu->
text << std::endl;
3126 std::ostringstream outs;
3127 if(ccu->
nmod==0)outs <<
"ccu is in position" << ccu->
mpos<<
"in ring but doesn't seem to have any module connected";
else
3129 outs <<
"ccu is in position " << ccu->
mpos<<
" in ring and connects " <<ccu->
nmod<<
" modules" << std::endl;
3131 for (it = ret.first; it != ret.second; ++it)
3133 outs << (*it).second->idex<<
" " << (*it).second->name <<
" value= "<< (*it).second->value<<
"\n\n";
3136 *txtfile <<
"</pre><h4>"<< outs.str()<<
"</h4>"<<std::endl;
3140 *txtfile <<
"</body></html>" << std::endl;
3145 std::ostringstream outs3,outs4;
3146 outs3 << outputfilename<<
"psu.png";
3149 outs4 << outputfilename<<
".xml";
3154 std::map<int , TmPsu *>::iterator ipsu;
3155 std::multimap<TmPsu*, TmModule*>::iterator it;
3156 std::pair<std::multimap<TmPsu*, TmModule*>::iterator,std::multimap<TmPsu*, TmModule*>::iterator>
ret;
3157 for (
int rack=1; rack < (
npsuracks+1); rack++){
3158 std::ostringstream outs;
3160 outs << outputfilename <<
"psurack"<<rack<<
".html";
3161 txtfile =
new std::ofstream(outs.str().c_str(),
std::ios::out);
3162 *txtfile <<
"<html><head></head> <body>" << std::endl;
3163 for ( ipsu=
psuMap.begin();ipsu !=
psuMap.end(); ipsu++){
3164 TmPsu * psu= ipsu->second;
3166 *txtfile <<
"<a name="<<psu->
idex<<
"><pre>"<<std::endl;
3167 *txtfile << psu->
text << std::endl;
3168 std::ostringstream outs;
3169 if(psu->
nmod==0)outs <<
"Ps is in position" << psu->
getPsuBoard()<<
"in crate but doesn't seem to have any module connected";
else
3171 outs<<
"PS is in position " <<psu->
getPsuBoard()<<
" in crate and connects to "<<psu->
nmod<<
" modules. "<<std::endl;
3174 for (it = ret.first; it != ret.second; ++it)
3176 outs <<(*it).second->idex <<
" "<< (*it).second->name<<
" value= "<<(*it).second->value<<
" <br>"<<std::endl;
3179 *txtfile <<
"</pre><h4>"<< outs.str()<<
"</h4>"<<std::endl;
3183 *txtfile <<
"</body></html>" << std::endl;
3190 std::ostringstream outs5,outs6;
3191 outs5 << outputfilename<<
"hv.png";
3194 outs6 << outputfilename<<
".xml";
3199 std::map<int , TmPsu *>::iterator ipsu;
3200 std::multimap<TmPsu*, TmModule*>::iterator it;
3201 std::pair<std::multimap<TmPsu*, TmModule*>::iterator,std::multimap<TmPsu*, TmModule*>::iterator>
ret;
3202 for (
int rack=1; rack < (
npsuracks+1); rack++){
3203 std::ostringstream outs;
3205 outs << outputfilename <<
"HVrack"<<rack<<
".html";
3206 txtfile =
new std::ofstream(outs.str().c_str(),
std::ios::out);
3207 *txtfile <<
"<html><head></head> <body>" << std::endl;
3208 for ( ipsu=
psuMap.begin();ipsu !=
psuMap.end(); ipsu++){
3209 TmPsu * psu= ipsu->second;
3211 *txtfile <<
"<a name="<<psu->
idex<<
"><pre>"<<std::endl;
3212 *txtfile << psu->
textHV2 << std::endl;
3213 std::ostringstream outsHV2;
3214 if(psu->
nmodHV2==0)outsHV2 <<
"HV Channel002 is in position" << psu->
getPsuBoard()<<
"in crate but doesn't seem to have any module connected";
else
3216 outsHV2<<
"HV Channel002 is in position " <<psu->
getPsuBoard()<<
" in crate and connects to "<<psu->
nmodHV2<<
" modules. "<<
" <br>"<<std::endl;
3219 for (it = ret.first; it != ret.second; ++it)
3221 if((*it).second->HVchannel==2){outsHV2 <<(*it).second->idex <<
" "<< (*it).second->name<<
" value= "<<(*it).second->value<<
" <br>"<<std::endl;}
3223 *txtfile <<
"</pre><h4>"<< outsHV2.str()<<
"</h4>"<<std::endl;
3226 *txtfile << psu->
textHV3 << std::endl;
3227 std::ostringstream outsHV3;
3228 if(psu->
nmodHV3==0)outsHV3 <<
"HV Channel003 is in position" << psu->
getPsuBoard()<<
"in crate but doesn't seem to have any module connected";
else
3230 outsHV3<<
"HV Channel003 is in position " <<psu->
getPsuBoard()<<
" in crate and connects to "<<psu->
nmodHV3<<
" modules. "<<
" <br>"<<std::endl;
3233 for (it = ret.first; it != ret.second; ++it)
3235 if((*it).second->HVchannel==3){outsHV3 <<(*it).second->idex <<
" "<< (*it).second->name<<
" value= "<<(*it).second->value<<
" <br>"<<std::endl;}
3237 *txtfile <<
"</pre><h4>"<< outsHV3.str()<<
"</h4>"<<std::endl;
3242 *txtfile <<
"</body></html>" << std::endl;
3252 std::ifstream * ifilename;
3258 ifname=
"CommonTools/TrackerMap/data/"+
filename;
3262 ifname=
"CommonTools/TrackerMap/data/"+
filename;
3265 if(!ifilename)
std::cout <<
"File " << filename <<
" missing" << std::endl;
3272 for (
int layer=1; layer < 44; layer++){
3287 for (
int layer=1; layer < 44; layer++){
3300 for (
int layer=1; layer < 44; layer++){
3301 std::ostringstream outs;
3302 outs << outputfilename <<
"layer"<<layer<<
".xml";
3303 xmlfile =
new std::ofstream(outs.str().c_str(),
std::ios::out);
3304 *xmlfile <<
"<?xml version=\"1.0\" standalone=\"no\"?>"<<std::endl;
3305 *xmlfile <<
"<svg xmlns=\"http://www.w3.org/2000/svg\""<<std::endl;
3306 *xmlfile <<
"xmlns:svg=\"http://www.w3.org/2000/svg\""<<std::endl;
3307 *xmlfile <<
"xmlns:xlink=\"http://www.w3.org/1999/xlink\" >"<<std::endl;
3308 *xmlfile <<
"<script type=\"text/ecmascript\" xlink:href=\"layer.js\" />"<<std::endl;
3309 *xmlfile <<
"<svg id=\"mainMap\" x=\"0\" y=\"0\" viewBox=\"0 0 500 500\" width=\"700\" height=\"700\" onload=\"TrackerLayer.init()\">"<<std::endl;
3310 if(layer<31)*xmlfile <<
"<g id=\"layer\" transform=\" translate(0,400) rotate(270) scale(1.,1.)\" > "<<std::endl;
3311 else *xmlfile <<
"<g id=\"layer\" transform=\" translate(0,400) rotate(270) scale(1.,0.8)\" > "<<std::endl;
3312 *xmlfile <<
"<rect fill=\"lightblue\" stroke=\"none\" x=\"0\" y=\"0\" width=\"700\" height=\"700\" />"<<std::endl;
3313 *xmlfile <<
"<svg:polygon id=\"fed\" mapAttribute=\"fed\" points=\"250,40 250,10 230,10 230,40\" onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" onmouseout=\"chooseMap(evt);\" fill=\"rgb(0,127,255)\"/>"<<std::endl;
3314 *xmlfile <<
"<svg:polygon id=\"fec\" mapAttribute=\"fec\" points=\"228,40 228,10 208,10 208,40\" onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" onmouseout=\"chooseMap(evt);\" fill=\"rgb(0,127,255)\"/>"<<std::endl;
3315 *xmlfile <<
"<svg:polygon id=\"lv\" mapAttribute=\"lv\" points=\"206,40 206,10 186,10 186,40\" onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" onmouseout=\"chooseMap(evt);\" fill=\"rgb(0,127,255)\"/>"<<std::endl;
3316 *xmlfile <<
"<svg:polygon id=\"hv\" mapAttribute=\"hv\" points=\"184,40 184,10 164,10 164,40\" onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" onmouseout=\"chooseMap(evt);\" fill=\"rgb(0,127,255)\"/>"<<std::endl;
3317 *xmlfile <<
"<svg:polygon id=\"plot\" mapAttribute=\"plot\" points=\"155,45 155,5 135,5 135,45\" onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" onmouseout=\"chooseMap(evt);\" fill=\"rgb(200,0,0)\"/>"<<std::endl;
3326 drawModule(mod,key,layer,print_total,xmlfile);
3330 *xmlfile <<
"</g> </svg> <text id=\"currentElementText\" x=\"40\" y=\"30\">" << std::endl;
3331 *xmlfile <<
"<tspan id=\"line1\" x=\"40\" y=\"30\"> </tspan> " << std::endl;
3332 *xmlfile <<
"<tspan id=\"line2\" x=\"40\" y=\"60\"> </tspan> " << std::endl;
3333 *xmlfile <<
"<tspan id=\"line3\" x=\"40\" y=\"90\"> </tspan> " << std::endl;
3334 *xmlfile <<
"<tspan id=\"line4\" x=\"40\" y=\"120\"> </tspan> " << std::endl;
3336 *xmlfile <<
"<tspan mapAttribute=\"fed\" onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" onmouseout=\"chooseMap(evt);\" x=\"15\" y=\"228\" font-size=\"12\" font-family=\"arial\" fill=\"white\">FED</tspan> " <<std::endl;
3337 *xmlfile <<
"<tspan mapAttribute=\"fec\" onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" onmouseout=\"chooseMap(evt);\" x=\"15\" y=\"258\" font-size=\"12\" font-family=\"arial\" fill=\"white\">FEC</tspan> " <<std::endl;
3338 *xmlfile <<
"<tspan mapAttribute=\"lv\" onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" onmouseout=\"chooseMap(evt);\" x=\"18\" y=\"289\" font-size=\"12\" font-family=\"arial\" fill=\"white\">LV</tspan> " <<std::endl;
3339 *xmlfile <<
"<tspan mapAttribute=\"hv\" onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" onmouseout=\"chooseMap(evt);\" x=\"18\" y=\"319\" font-size=\"12\" font-family=\"arial\" fill=\"white\">HV</tspan> " <<std::endl;
3340 *xmlfile <<
"<tspan mapAttribute=\"plot\" onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" onmouseout=\"chooseMap(evt);\" x=\"12\" y=\"360\" font-size=\"12\" font-family=\"arial\" fill=\"white\">PLOT</tspan> " <<std::endl;
3343 *xmlfile <<
"<tspan mapAttribute=\"fed\" onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" onmouseout=\"chooseMap(evt);\" x=\"21\" y=\"228\" font-size=\"12\" font-family=\"arial\" fill=\"white\">FED</tspan> " <<std::endl;
3344 *xmlfile <<
"<tspan mapAttribute=\"fec\" onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" onmouseout=\"chooseMap(evt);\" x=\"21\" y=\"258\" font-size=\"12\" font-family=\"arial\" fill=\"white\">FEC</tspan> " <<std::endl;
3345 *xmlfile <<
"<tspan mapAttribute=\"lv\" onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" onmouseout=\"chooseMap(evt);\" x=\"24\" y=\"289\" font-size=\"12\" font-family=\"arial\" fill=\"white\">LV</tspan> " <<std::endl;
3346 *xmlfile <<
"<tspan mapAttribute=\"hv\" onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" onmouseout=\"chooseMap(evt);\" x=\"24\" y=\"319\" font-size=\"12\" font-family=\"arial\" fill=\"white\">HV</tspan> " <<std::endl;
3347 *xmlfile <<
"<tspan mapAttribute=\"plot\" onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" onmouseout=\"chooseMap(evt);\" x=\"17\" y=\"360\" font-size=\"12\" font-family=\"arial\" fill=\"white\">PLOT</tspan> " <<std::endl;
3349 *xmlfile <<
" </text> </svg>" << std::endl;
3350 xmlfile->close();
delete xmlfile;
void drawHV3(int rack, int numcrate_inrack, bool print_total, TmPsu *psu, ofstream *svgfile, bool usePsuValue)
void fill_hv_channel2(int rack, int crate, int board, float qty)
T getUntrackedParameter(std::string const &, T const &) const
TrackerMap(std::string s=" ", int xsize1=340, int ysize1=200)
double ydpixelc(double y)
std::ifstream * findfile(std::string filename)
double ydpixelfec(double y)
int getmoduleCount(int subdet, int partdet, int layer, int ring)
void save_as_psutrackermap(bool print_total=true, float minval=0., float maxval=0., std::string s="psu_svgmap.svg", int width=1500, int height=800)
void fillc_hv_channel2(int rack, int crate, int board, int red, int green, int blue)
std::ifstream * inputfile
~TrackerMap()
default destructor
static const uint32_t invalid32_
void drawPsu(int rack, int numcrate_inrack, bool print_total, TmPsu *psu, ofstream *svgfile, bool usePsuValue)
int module(int fedId, int fedCh)
void defwindow(int num_lay)
Sin< T >::type sin(const T &t)
void save_as_HVtrackermap(bool print_total=true, float minval=0., float maxval=0., std::string s="psu_svgmap.svg", int width=1500, int height=800)
double xdpixelc(double x)
void defpsuwindow(int num_rack)
int getlayerCount(int subdet, int partdet)
bool exists(std::string const ¶meterName) const
checks if a parameter exists
void fill_current_val_fed_channel(int fedId, int fedCh, float current_val)
const std::vector< SiStripFecCrate > & crates() const
tuple txtfile
Delete all three files at once to make sure the user never sees stale data (e.g.
void fillc_fec_channel(int crate, int slot, int ring, int addr, int red, int green, int blue)
tuple xmlfile
Make an XML representation of the misalignment.
double xdpixelfec(double x)
double phival(double x, double y)
void fillc_lv_channel(int rack, int crate, int board, int red, int green, int blue)
int getringCount(int subdet, int partdet, int layer)
double xdpixelpsu(double x)
const T & max(const T &a, const T &b)
void save(bool print_total=true, float minval=0., float maxval=0., std::string s="svgmap.svg", int width=1500, int height=800)
void drawHV2(int rack, int numcrate_inrack, bool print_total, TmPsu *psu, ofstream *svgfile, bool usePsuValue)
Cos< T >::type cos(const T &t)
void deffecwindow(int num_crate)
void drawPalette(std::ofstream *file)
void load(std::string s="tmap.svg")
list mod
Load physics model.
void drawModule(TmModule *mod, int key, int layer, bool total, std::ofstream *file)
void drawApvPair(int crate, int numfed_incrate, bool total, TmApvPair *apvPair, std::ofstream *file, bool useApvPairValue)
void fillc_fed_channel(int fedId, int fedCh, int red, int green, int blue)
int getcolor(float value, int palette)
void fillc(int idmod, int RGBcode)
void printlayers(bool print_total=true, float minval=0., float maxval=0., std::string s="layer")
void drawCcu(int crate, int numfed_incrate, bool total, TmCcu *ccu, std::ofstream *file, bool useCcuValue)
void fill_hv_channel3(int rack, int crate, int board, float qty)
static const uint16_t invalid_
int nlayer(int det, int part, int lay)
void print(bool print_total=true, float minval=0., float maxval=0., std::string s="svgmap")
void save_as_fedtrackermap(bool print_total=true, float minval=0., float maxval=0., std::string s="fed_svgmap.svg", int width=1500, int height=800)
void fill_fec_channel(int crate, int slot, int ring, int addr, float qty)
void fill_current_val(int idmod, float current_val)
void setText(int idmod, std::string s)
static bool isRingStereo(int key)
void defcwindow(int num_crate)
void fill_lv_channel(int rack, int crate, int board, float qty)
std::vector< TColor * > vc
void fill(int layer, int ring, int nmod, float x)
double ydpixelpsu(double y)
void save_as_fectrackermap(bool print_total=true, float minval=0., float maxval=0., std::string s="fec_svgmap.svg", int width=1500, int height=800)
void printall(bool print_total=true, float minval=0., float maxval=0., std::string s="svgmap")
void fill_fed_channel(int fedId, int fedCh, float qty)
void fillc_hv_channel3(int rack, int crate, int board, int red, int green, int blue)