#include <DQM/SiPixelMonitorClient/interface/SiPixelTrackerMap.h>
Public Member Functions | |
void | drawModule (TmModule *mod, int key, int nlay, bool print_total) |
void | print (bool print_total=true, std::string TKType="Averages", float minval=0., float maxval=0.) |
SiPixelTrackerMap (std::string s=" ", int xsize1=340, int ysize1=200) | |
~SiPixelTrackerMap (void) | |
Private Attributes | |
int | dummy |
std::string | title |
Definition at line 24 of file SiPixelTrackerMap.h.
SiPixelTrackerMap::~SiPixelTrackerMap | ( | void | ) | [inline] |
Definition at line 43 of file SiPixelTrackerMap.cc.
References funct::cos(), lat::endl(), false, TmModule::idex, TmModule::idModule, TrackerMap::isRingStereo(), j, k, TmModule::length, TmModule::name, np, phi, TrackerMap::phival(), TrackerMap::posrel, TmModule::posx, TmModule::posy, TmModule::posz, pv1, r, TmModule::ring, funct::sin(), funct::sqrt(), TrackerMap::svgfile, TmModule::text, TmModule::width, TmModule::widthAtHalfLength, TrackerMap::xdpixel(), and TrackerMap::ydpixel().
00044 { 00045 //int x,y; 00046 double phi,r,dx,dy, dy1; 00047 double xp[4],yp[4],xp1,yp1; 00048 double vhbot,vhtop,vhapo; 00049 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}; 00050 double xt1,yt1,xs1=0.,ys1=0.,xt2,yt2,xs2,ys2,pv1,pv2; 00051 // int green = 0; 00052 double xd[4],yd[4]; 00053 int np = 4; 00054 //int numrec=0; 00055 int numod=0; 00056 phi = phival(mod->posx,mod->posy); 00057 r = sqrt(mod->posx*mod->posx+mod->posy*mod->posy); 00058 vhbot = mod->width; 00059 vhtop=mod->width; 00060 vhapo=mod->length; 00061 if(nlay < 31){ //endcap 00062 vhbot = mod->widthAtHalfLength/2.-(mod->width/2.-mod->widthAtHalfLength/2.); 00063 vhtop=mod->width/2.; 00064 vhapo=mod->length/2.; 00065 if(nlay >12 && nlay <19){ 00066 if(posrel)r = r+r; 00067 xp[0]=r-vhtop;yp[0]=-vhapo; 00068 xp[1]=r+vhtop;yp[1]=-vhapo; 00069 xp[2]=r+vhtop;yp[2]=vhapo; 00070 xp[3]=r-vhtop;yp[3]=vhapo; 00071 }else{ 00072 if(posrel)r = r + r/3.; 00073 xp[0]=r-vhapo;yp[0]=-vhbot; 00074 xp[1]=r+vhapo;yp[1]=-vhtop; 00075 xp[2]=r+vhapo;yp[2]=vhtop; 00076 xp[3]=r-vhapo;yp[3]=vhbot; 00077 } 00078 for(int j=0;j<4;j++){ 00079 xp1 = xp[j]*cos(phi)-yp[j]*sin(phi); 00080 yp1 = xp[j]*sin(phi)+yp[j]*cos(phi); 00081 xp[j] = xp1;yp[j]=yp1; 00082 } 00083 } else { //barrel 00084 numod=mod->idModule;if(numod>100)numod=numod-100; 00085 int vane = mod->ring; 00086 if(posrel){ 00087 dx = vhapo; 00088 phi=M_PI; 00089 xt1=rmedio[nlay-31]; yt1=-vhtop/2.; 00090 xs1 = xt1*cos(phi)-yt1*sin(phi); 00091 ys1 = xt1*sin(phi)+yt1*cos(phi); 00092 xt2=rmedio[nlay-31]; yt2=vhtop/2.; 00093 xs2 = xt2*cos(phi)-yt2*sin(phi); 00094 ys2 = xt2*sin(phi)+yt2*cos(phi); 00095 dy=phival(xs2,ys2)-phival(xs1,ys1); 00096 dy1 = dy; 00097 if(nlay==31)dy1=0.39; 00098 if(nlay==32)dy1=0.23; 00099 if(nlay==33)dy1=0.16; 00100 xp[0]=vane*(dx+dx/8.);yp[0]=numod*(dy1); 00101 xp[1]=vane*(dx+dx/8.)+dx;yp[1]=numod*(dy1); 00102 xp[2]=vane*(dx+dx/8.)+dx;yp[2]=numod*(dy1)+dy; 00103 xp[3]=vane*(dx+dx/8.);yp[3]=numod*(dy1)+dy; 00104 }else{ 00105 xt1=r; yt1=-vhtop/2.; 00106 xs1 = xt1*cos(phi)-yt1*sin(phi); 00107 ys1 = xt1*sin(phi)+yt1*cos(phi); 00108 xt2=r; yt2=vhtop/2.; 00109 xs2 = xt2*cos(phi)-yt2*sin(phi); 00110 ys2 = xt2*sin(phi)+yt2*cos(phi); 00111 pv1=phival(xs1,ys1); 00112 pv2=phival(xs2,ys2); 00113 if(fabs(pv1-pv2)>M_PI && numod==1)pv1=pv1-2.*M_PI; 00114 if(fabs(pv1-pv2)>M_PI && numod!=1)pv2=pv2+2.*M_PI; 00115 xp[0]=mod->posz-vhapo/2.;yp[0]=4.2*pv1; 00116 xp[1]=mod->posz+vhapo/2.;yp[1]=4.2*pv1; 00117 xp[2]=mod->posz+vhapo/2. ;yp[2]=4.2*pv2; 00118 xp[3]=mod->posz-vhapo/2.;yp[3]=4.2*pv2; 00119 } 00120 } 00121 if(isRingStereo(key)) 00122 { 00123 np = 3; 00124 if(mod->idModule>100 ){for(int j=0;j<3;j++){ 00125 xd[j]=xdpixel(xp[j]);yd[j]=ydpixel(yp[j]); 00126 } 00127 }else { 00128 xd[0]=xdpixel(xp[2]);yd[0]=ydpixel(yp[2]); 00129 xd[1]=xdpixel(xp[3]);yd[1]=ydpixel(yp[3]); 00130 xd[2]=xdpixel(xp[0]);yd[2]=ydpixel(yp[0]); 00131 } 00132 } else { 00133 for(int j=0;j<4;j++){ 00134 xd[j]=xdpixel(xp[j]);yd[j]=ydpixel(yp[j]); 00135 } 00136 } 00137 char buffer [20]; 00138 sprintf(buffer,"%X",mod->idex); 00139 00140 bool FPIX_M_1 = false ; 00141 bool FPIX_M_2 = false ; 00142 bool FPIX_P_1 = false ; 00143 bool FPIX_P_2 = false ; 00144 bool BPIX_L_1 = false ; 00145 bool BPIX_L_2 = false ; 00146 bool BPIX_L_3 = false ; 00147 QRegExp rx("(BPIX|FPIX)") ; 00148 QRegExp 00149 00150 ry("(FPIX\\s+-z\\s+disc\\s+1|FPIX\\s+-z\\s+disc\\s+2|FPIX\\s+\\+z\\s+disc\\s+2|FPIX\\s+\\+z\\s+disc\\s+1|Shell_mI/Layer_1|Shell_mO/Layer_1|Shell_pI/Layer_1|Shell_pO/Layer_1)") ; 00151 QString modName = mod->name ; 00152 if( rx.search(modName) != -1 ) 00153 { 00154 if( ry.search(modName) != -1 ) 00155 { 00156 FPIX_M_1 = false ; 00157 FPIX_M_2 = false ; 00158 FPIX_P_1 = false ; 00159 FPIX_P_2 = false ; 00160 BPIX_L_1 = false ; 00161 BPIX_L_2 = false ; 00162 BPIX_L_3 = false ; 00163 if( ry.cap(1) == "FPIX -z disc 1" ) {FPIX_M_1 = true;} 00164 if( ry.cap(1) == "FPIX -z disc 2" ) {FPIX_M_2 = true;} 00165 if( ry.cap(1) == "FPIX +z disc 1" ) {FPIX_P_1 = true;} 00166 if( ry.cap(1) == "FPIX +z disc 2" ) {FPIX_P_2 = true;} 00167 if( ry.cap(1) == "Shell_mI/Layer_1") {BPIX_L_1 = true;} 00168 if( ry.cap(1) == "Shell_mO/Layer_1") {BPIX_L_1 = true;} 00169 if( ry.cap(1) == "Shell_pI/Layer_1") {BPIX_L_1 = true;} 00170 if( ry.cap(1) == "Shell_pO/Layer_1") {BPIX_L_1 = true;} 00171 if( ry.cap(1) == "layer 2" ) {BPIX_L_2 = true;} 00172 if( ry.cap(1) == "layer 3" ) {BPIX_L_3 = true;} 00173 } 00174 *svgfile << " <svg:polygon detid=\"" 00175 << mod->idex 00176 << "\" id=\"" 00177 << mod->idex 00178 << "\" onclick=\"SvgMap.showData(evt);\" onmouseover=\"SvgMap.showData(evt);\" onmouseout=\"SvgMap.showData(evt);\" entries=\"" 00179 << mod->text 00180 << "\" POS=\"" 00181 << mod->name 00182 << " Id " 00183 << mod->idex 00184 << " \" fill=\"rgb(" 00185 << 146 00186 << "," 00187 << 0 00188 << "," 00189 << 255 00190 << ")\" points=\""; 00191 for(int k=0;k<np;k++) 00192 { 00193 if( FPIX_M_1 ) 00194 { 00195 xd[k] = xd[k] * 1.8 - 60 ; 00196 yd[k] = yd[k] * 2.0 - 30 ; 00197 } 00198 if( FPIX_M_2 ) 00199 { 00200 xd[k] = xd[k] * 1.8 - 60 ; 00201 yd[k] = yd[k] * 2.0 - 60 ; 00202 } 00203 if( FPIX_P_1 ) 00204 { 00205 xd[k] = xd[k] * 1.8 - 1020 ; 00206 yd[k] = yd[k] * 2.0 - 30 ; 00207 } 00208 if( FPIX_P_2 ) 00209 { 00210 xd[k] = xd[k] * 1.8 - 1020 ; 00211 yd[k] = yd[k] * 2.0 - 60 ; 00212 } 00213 if( BPIX_L_1 ) 00214 { 00215 xd[k] = xd[k] * 1.2 - 130 ; 00216 } 00217 if( BPIX_L_2 ) 00218 { 00219 xd[k] = xd[k] * 1.2 - 30 ; 00220 } 00221 if( BPIX_L_3 ) 00222 { 00223 xd[k] = xd[k] * 1.2 - 240 ; 00224 yd[k] = yd[k] - 5 ; 00225 } 00226 *svgfile << xd[k] << "," << yd[k] << " " ; 00227 } 00228 *svgfile <<"\" />" <<endl; 00229 return ; 00230 } 00231 00232 }
void SiPixelTrackerMap::print | ( | bool | print_total = true , |
|
std::string | TKType = "Averages" , |
|||
float | minval = 0. , |
|||
float | maxval = 0. | |||
) |
Referenced by SiPixelTrackerMapCreator::create().
int SiPixelTrackerMap::dummy [private] |
Definition at line 44 of file SiPixelTrackerMap.h.
std::string SiPixelTrackerMap::title [private] |