{ //------------------------------------------ // 2014.9.4 change to meanMOchTm0(and1)_B3.txt // 2014.9.7 for endcap // 2014.11.23 updated for dcsDB data //------------------------------------------ #include gROOT->LoadMacro("AtlasUtils.C"); ATLAS->SetPadTickX(1); ATLAS->SetPadRightMargin(0.12); ATLAS->SetPadLeftMargin(0.12); gStyle->SetOptStat(0); c1 = new TCanvas("c1","A Simple Graph",200,100,2100,1500); char cid[99]; char line[200]; int barrel[10]={0,0,0,32,40,48,56,0,0,0}; char stringMonth[13][10]={"test","Jan","Feb","Mar","Apr","May","Jun", "Jul","Aug","Sep","Oct","Nov","Dec"}; // //-----------------setup--------------------------------- double ymin, ymax; double Temp[2][3][10][13][56]; //Temp{Tm][bec][layer][eta][phi] for (int i=0;i<3;i++) { for (int j=0;j<10;j++){ for (int k=0;k<13;k++){ for (int l=0;l<56;l++){ Temp[0][i][j][k][l] = -99.; Temp[1][i][j][k][l] = -99.; } } } } double plot_min[4][3][10], plot_max[4][3][10]; //[type][1][disk/layer] for (int j=0; j<10; j++) { plot_min[1][1][j] = 0.; plot_max[1][1][j] = 200.; //HVchVolt plot_min[2][1][j] = 0.; plot_max[2][1][j] = 50.; //HVchCurr plot_min[3][1][j] = -5; plot_max[3][1][j] = +20.; // Temperature min max for EC } //--------------------- int MONTH=11, DAY=19, YEAR=2014; int TYPE = 3; // TYPE=1=HVchVolt, 2=HVchCurr, 3=MOch_TmX double RUNintL =999.; //----------------read in HV or HCCurr or TM0-------------------------- int bec, disk, phi, eta, ndata, NN=0; double data, sigma,delta; sprintf(cid,"meanMOch_Tm0_E_%02d-%02d-%d.txt",DAY,MONTH,YEAR); if(TYPE==1) sprintf(cid,"meanHVchVolt_E_%02d-%02d-%d.txt",DAY,MONTH,YEAR); if(TYPE==2) sprintf(cid,"meanHVchCurr_E_%02d-%02d-%d.txt",DAY,MONTH,YEAR); ifstream fin(cid); fin.getline(line,sizeof(line)); // skip 1st line while(fin>>bec>>eta>>disk>>phi>>ndata>>data>>sigma>>delta) { if(TYPE==3 && delta > 10.) { cout<<"abnormal delta; bec-disk-eta-phi="<>chip_idDB>>becDB>>diskDB>>phiDB>>etaDB>>dummy>>dummy>>dummy>>dummy>>dummy >>is100>>isCiS){ iDB++; if(is100==1) { bec100[n100] = (becDB+2)/2; // change BEC from -2,0,2 to 0,1,2 layer100[n100] = diskDB+3; // change Layer number 0-3->3-6 phi100[n100] = phiDB; // phi 0-55 eta100[n100] = etaDB; // eta numbering -6 50 +6. n100++; } if(isCiS==1) { becCiS[nCiS] = (becDB+2)/2; // change BEC from -2,0,2 to 0,1,2 if(becDB!=0) layerCiS[nCiS] = diskDB+1; // change Disk numbering 0-8->1-9 else layerCiS[nCiS] = diskDB+3; // change Layer number 0-3->3-6 phiCiS[nCiS] = phiDB; // phi 0-55 etaCiS[nCiS] = etaDB; // eta numbering 0-2. nCiS++; } } fin.close(); cout<<"module data base: iDB, n100, nCiS="<FindObject(cid); y2 = 1.- topM - i*deltaH/Nplot ; y1 = y2 - deltaH * height; canv[i]->SetPad(x1,y1,x2,y2); canv[i]->SetFillColor(0); canv[i]->SetFrameFillColor(0); canv[i]->SetTopMargin(0.); canv[i]->SetBottomMargin(0.03); canv[i]->SetLeftMargin(0.); canv[i]->SetRightMargin(0.0); } int BEC = 0; double HVcis[3][500], Tempcis[3][500]; for (int Eta=0; Eta<3; Eta++) { int nphi = 52; if(Eta !=0) nphi=40; int ndisk = 9; //------------------------------------------------------- double X0[700], Y0[700], X1[700], Y1[700]; for (int Eta=0; Eta<3; Eta++) { int nphi = 52; if(Eta !=0) nphi=40; //------------plot EC Temperature----------------------- canv[Eta] -> cd(); int indexcis[3] ={-1,0,-1}; int index = 0, index0 = -1, index1 = -1; for(int idisk=1; idisk<10; idisk++) { for (int iphi=0; iphi-100.) { index0++; X0[index0] = index-0.5; Y0[index0] = Temp[0][0][idisk][Eta][iphi] ; // sida C } if( Temp[0][2][idisk][Eta][iphi] >-100.) { index1++; X1[index1] = index-0.5; Y1[index1] = Temp[0][2][idisk][Eta][iphi] ; // sida A } //------ check if CiS modules are contained---------------- if(Eta==0) continue; for (int bec=0; bec<3; bec+=2) { for (int iCiS=0; iCiSSetMarkerSize(1.0); h1->SetMarkerColor(2); h1->SetMaximum(ymax); h1->SetMinimum(ymin); h1->GetXaxis()->SetTitleSize(0.0); h1->GetXaxis()->SetLabelSize(0.0); h1->GetXaxis()->SetTickLength(0.0); h1->GetYaxis()->SetTitle("T_{hybrid} [^{o}C]"); if(TYPE==1) h1->GetYaxis()->SetTitle("HV [Volt]"); if(TYPE==2) h1->GetYaxis()->SetTitle("HV Current [mA]"); h1->GetYaxis()->SetTitleOffset(0.33); h1->GetYaxis()->SetTitleSize(0.10); h1->GetYaxis()->SetLabelSize(0.10); h1->GetXaxis()->SetLimits(0.,index); h1->GetYaxis()->SetNdivisions(505); h1->GetYaxis()->SetTickLength(0.02); h1->Draw("ALP"); h2 = new TGraph(index1+1,X1,Y1); h2->SetMarkerSize(1.0); h2->SetMarkerColor(4); h2->Draw("SAME LP"); //----------------overwrite cis modules------------------------ if(Eta!=0) { h1cis = new TGraph(indexcis[0], Ncis[0], Tempcis[0]); h2cis = new TGraph(indexcis[2], Ncis[2], Tempcis[2]); h1cis->SetMarkerSize(1.0); h1cis->SetMarkerColor(3); h2cis->SetMarkerSize(1.0); h2cis->SetMarkerColor(6); h1cis->Draw("SAME P"); h2cis->Draw("SAME P"); } //---------------------draw eta borders--------------- for (int i=0; iSetLineStyle(1); if(i!=0)z1->Draw(); for (int j=1; j<4; j++) { double zz = i*nphi + nphi*0.25*j ; z1 = new TLine(zz,ymin,zz,ymin+ (ymax-ymin)*0.03); z1->Draw(); z1 = new TLine(zz,ymin+(ymax-ymin)*0.97,zz,ymax); z1->Draw(); //---quad boundaries-------- z1 = new TLine(zz,ymin,zz,ymax); z1->SetLineStyle(3); z1->Draw(); } } //-----------------------Eta (Layer) names-------------------- double yleg = 0.85; if( Eta ! =0 ) yleg=0.9; sprintf(cid,"Outer"); if( Eta ==1) sprintf(cid,"Middle"); if( Eta ==2) sprintf(cid,"Inner"); leg = new TLegend(0.03 ,yleg ,0.10,yleg,cid); leg -> SetFillColor(10); leg->SetBorderSize(0); leg->SetTextSize(0.12); leg->Draw(); //-----------------------short middle------------------------- if( Eta==1 ) { double x1 = 7*nphi, x2=8*nphi, yy=(ymax-ymin)*0.8+ymin; z1 = new TArrow(x1,yy,x2,yy,0.015,"<>"); z1->Draw(); yy=(ymax-ymin)*0.85+ymin; t=new TText(x1+1, yy ,"middle short"); t-> SetTextSize(0.09) ;t->Draw(); } //--------------------Hamamatsu, CiS, sides---------------------- double xleg=0.70; if(Eta==0) xleg+=0.1; yleg=0.10; if(Eta==2) yleg=0.80; leg = new TLegend(xleg ,yleg ,xleg+0.20,yleg+0.18); if(Eta==0) { leg -> AddEntry(h1,"HPK, C-side","lp"); leg -> AddEntry(h2,"HPK, A-side","lp"); } else { leg -> AddEntry(h1,"HPK","lp"); leg -> AddEntry(h2,"HPK","lp"); } leg -> SetFillColor(10); leg -> SetBorderSize(0); leg->SetTextSize(0.09); leg->Draw(); if(Eta!=0) { leg = new TLegend(xleg+0.09 ,yleg ,xleg+0.29,yleg+0.18); leg -> AddEntry(h1cis,"CiS, C-side","lp"); leg -> AddEntry(h2cis,"CiS, A-side","lp"); leg -> SetFillColor(10); leg -> SetBorderSize(0); leg->SetTextSize(0.09); leg->Draw(); } //---------------------draw disk numbers at the top--------------- for (i=0; iSetTextSize(0.08); t->Draw(); } //---------------disk, int/ lum, date-------------------- if( Eta==0 ) { double yy1= (ymax-ymin)*1.04+ ymin; double xx1= index*0.01, xx2; sprintf(cid,"SCT Barrel, %s %d, %d", stringMonth[MONTH],DAY,YEAR); t = new TLatex(xx1, yy1,cid); t->SetTextSize(0.12); t->Draw(); //---------------------ATLAS preliminary--------------------- xx1 = index*0.82, xx2=index*0.91; t=new TLatex(xx1, yy1,"ATLAS"); t->SetTextFont(72); t->SetTextSize(0.12); t->Draw(); t=new TLatex(xx2, yy1,"internal"); t->SetTextSize(0.12); t->Draw(); } //---------------------draw eta edge and z position--------------- double zcenter[12] = {85.4, 93.4, 109.2, 130.0, 140.0, 177.1, 211.5, 250.5, 272.0, 43.0, 55.0, 67.9}; if(Eta==2) { for (int i=0; iDraw(); z1 = new TLine(zz, ymin+(ymax-ymin)*0.97, zz , ymax); z1->Draw(); sprintf(cid,"%d#circ",90*j); tt =new TLatex( zz+nphi*0.060, ymin+(ymax-ymin)*0.05 ,cid ); tt->SetTextAngle(90); tt-> SetTextSize(0.08) ;tt->Draw(); } sprintf(cid,"#pm%5.1f",zcenter[i]); t=new TLatex(nphi*(i+0.22), ymin- (ymax-ymin) * 0.10 ,cid); t-> SetTextSize(0.10) ;t->Draw(); } t=new TText((ndisk/2.-0.5)*nphi, ymin-(ymax-ymin)* 0.23 , "Module center in z [cm]"); t-> SetTextSize(0.12) ;t->Draw(); } } // end of Eta loop //--------------------------print out -------------------------- if(TYPE==1) sprintf(cid,"Endcap_HVchVolt_%02d-%02d-%d.png",DAY,MONTH,YEAR); if(TYPE==2) sprintf(cid,"Endcap_HVchCurr_%02d-%02d-%d.png",DAY,MONTH,YEAR); if(TYPE==3) sprintf(cid,"Endcap_Tm0and1_%02d-%02d-%d.png",DAY,MONTH,YEAR); cout<Print(cid); //------------------------------------------ } }