{ #include gROOT->LoadMacro("AtlasUtils.C"); ATLAS->SetPadTickX(1); ATLAS->SetPadTickY(0); ATLAS->SetPadRightMargin(0.12); ATLAS->SetPadLeftMargin(0.12); c1 = new TCanvas("c1","A Simple Graph",500,30,700,500); //c1->SetGrid(); //TDatime db(2010,06,01,00,00,00); TDatime db(2010,07,02,00,00,00); int t1 = db.Convert(); //TDatime db(2011,04,01,00,00,00); TDatime db(2011,08,14,23,00,00); int t2 = db.Convert(); gStyle->SetOptStat(0); gPad->SetLogy(); //c1->SetGrid(); // create the arrays for the points Double_t ymax= 100.0; Double_t ymin= 0.001; double Tscale=ymax*0.1/10., Toffset = ymax*0.2; //double Tscale=0.01/10., Toffset = 0.02; Int_t n = 3000; double intL[n],Temp[4][n],Temp_plot[4][n], Tbias=3.6; double time[n], Ttime[n]; double weekL[n], energy[n]; double leak[4][n],dleak[4][n],leakop[4][n],dleakop[4][n], leak3[5][n],dleak3[5][n]; double leakP[4][n]; int week,year1,month1,day1,year2,month2,day2; //--------readin luminosity data------------------- int iweek=1, iT=0; ifstream fin("lhcall_7_temperature_plan0.txt"); while(fin>>year1>>month1>>day1>>year2>>month2>>day2>>energy[iweek]>> weekL[iweek]>>intL[iweek]>>Temp[0][iweek]>>Temp[1][iweek]>>Temp[2][iweek]>>Temp[3][iweek] ) { cout<=10.) Tsensor += 2.0; double Arrhenius = exp(EI/kB*(1/TR-1/(Tsensor+T0))); isum[ierror] = 0.; //------calculate each component of leak current----------------- for (int k=0; k<5; k++) { double leak_week = alpha*Vsensor*A[k]*tau[k]/Arrhenius/days *(1-exp(-Arrhenius*days/tau[k]))*fluence; ileak[layer][iw][k][ierror] = ileak[layer][iw-1][k][ierror] * exp(-Arrhenius*days/tau[k]) + leak_week; isum[ierror] += ileak[layer][iw][k][ierror]; // cout<<"iw,layer,k,ierror="<>bec>>layer>>year2>>month2>>day2>>tempdata>>error) { //cout<3) continue; int m = idata[L]; TDatime da(year2,month2,day2,12, 0,0); dtime[L][m]=da.Convert(); data[L][m]=tempdata; cout<SetMaximum(ymax); hu->SetMinimum(ymin); hu->GetYaxis()->SetTitle("I _{leak} [#muA] @-10#circC"); //hu->GetXaxis()->SetTitle("DATE"); for (int j=0; jGetXaxis()->SetTitleOffset(1.4); hu->GetXaxis()->SetLabelOffset(0.05); hu->GetXaxis()->SetLabelSize(0.04); hu->GetYaxis()->SetTitleSize(0.05); hu->GetYaxis()->SetTitleOffset(1.0); hu->GetYaxis()->SetLabelOffset(0.01); // hu->GetXaxis()->SetRangeUser(13,45); hu->GetXaxis()->SetTimeDisplay(1); hu->GetXaxis()->SetTimeFormat("#splitline{ %Y}{%b %d}"); hu->GetXaxis()->SetLimits(t1,t2); // hu->GetXaxis()->SetNdivisions(206); hu->GetXaxis()->SetNdivisions(206); if(layer==0){ hc->SetLineColor(kRed+2);hu->SetFillColor(kRed-9); g2->SetMarkerColor(kRed+2);hd->SetLineColor(kRed+2);} if(layer==1){ hc->SetLineColor(kGreen+2);hu->SetFillColor(kGreen-9); g2->SetMarkerColor(kGreen+2);hd->SetLineColor(kGreen+2);} if(layer==2){ hc->SetLineColor(kBlue+2);hu->SetFillColor(kBlue-9); g2->SetMarkerColor(kBlue+2);hd->SetLineColor(kBlue+2);} if(layer==3){ hc->SetLineColor(kMagenta+2);hu->SetFillColor(kMagenta-9); g2->SetMarkerColor(kMagenta+2);hd->SetLineColor(kMagenta+2);} hu->SetFillStyle(3001); if(layer==0)hu->Draw("ALF"); if(layer!=0)hu->Draw("SAME LF"); hc->Draw("SAME L"); hd->SetFillColor(0); hd->Draw("SAME LF"); g2->SetMarkerSize(1.0); g2->Draw("SAME P"); leg1->AddEntry(hd," #pm1#sigma","L"); leg4->AddEntry(hu," ","f"); if(layer==0)leg0->AddEntry(hu,"B3",""); if(layer==1)leg0->AddEntry(hu,"B4",""); if(layer==2)leg0->AddEntry(hu,"B5",""); if(layer==3)leg0->AddEntry(hu,"B6",""); leg2->AddEntry(g2," ","P"); } //----------draw centerlines and points again------------------------- for (int layer=0; layer<4; layer++){ for (int iw=0; iwSetLineColor(kRed+2);hu->SetFillColor(kRed-9); g2->SetMarkerColor(kRed+2);hd->SetLineColor(kRed+2);} if(layer==1){ hc->SetLineColor(kGreen+2);hu->SetFillColor(kGreen-9); g2->SetMarkerColor(kGreen+2);hd->SetLineColor(kGreen+2);} if(layer==2){ hc->SetLineColor(kBlue+2);hu->SetFillColor(kBlue-9); g2->SetMarkerColor(kBlue+2);hd->SetLineColor(kBlue+2);} if(layer==3){ hc->SetLineColor(kMagenta+2);hu->SetFillColor(kMagenta-9); g2->SetMarkerColor(kMagenta+2);hd->SetLineColor(kMagenta+2);} hc->Draw("SAME L"); g2->SetMarkerSize(1.0); g2->Draw("SAME P"); } //-------------------------plot temperature-------------------------- gT3 = new TGraph(iT,Ttime,Temp_plot[0]); gT4 = new TGraph(iT,Ttime,Temp_plot[1]); gT5 = new TGraph(iT,Ttime,Temp_plot[2]); gT6 = new TGraph(iT,Ttime,Temp_plot[3]); leg3->AddEntry(gT3," ","L"); leg3->AddEntry(gT4," ","L"); leg3->AddEntry(gT5," ","L"); leg3->AddEntry(gT6," ","L"); gT3->SetLineStyle(2); gT3->SetLineColor(kRed+2);gT3->Draw("SAME L"); gT4->SetLineStyle(2); gT4->SetLineColor(kGreen+2);gT4->Draw("SAME L"); gT5->SetLineStyle(2); gT5->SetLineColor(kBlue+2);gT5->Draw("SAME L"); gT6->SetLineStyle(2); gT6->SetLineColor(kMagenta+2);gT6->Draw("SAME L"); // p = new TPave(0.2,225,7.2,345); // //--- write tick mark on bottom X axis TDatime db(2010,10,01,00,00,00); int t4 = db.Convert(); tick = new TLine(t4, 0, t4, ymax); tick->SetLineStyle(2);tick->Draw(); TDatime db(2011,01,01,00,00,00); int t4 = db.Convert(); tick = new TLine(t4, 0, t4, ymax); tick->SetLineStyle(2);tick->Draw(); TDatime db(2011,04,02,00,00,00); int t4 = db.Convert(); tick = new TLine(t4, 0, t4, ymax); tick->SetLineStyle(2);tick->Draw(); TDatime db(2011,07,02,00,00,00); int t4 = db.Convert(); tick = new TLine(t4, 0, t4, ymax); tick->SetLineStyle(2);tick->Draw(); TDatime db(2010,8,01,00,00,00); int t4 = db.Convert(); tick = new TLine(t4, ymin, t4, ymin*1.2); tick->SetLineStyle(1);tick->Draw(); TDatime db(2010,9,01,00,00,00); int t4 = db.Convert(); tick = new TLine(t4, ymin, t4, ymin*1.2); tick->SetLineStyle(1);tick->Draw(); TDatime db(2010,11,01,00,00,00); int t4 = db.Convert(); tick = new TLine(t4, ymin, t4, ymin*1.2); tick->SetLineStyle(1);tick->Draw(); TDatime db(2010,12,01,00,00,00); int t4 = db.Convert(); tick = new TLine(t4, ymin, t4, ymin*1.2); tick->SetLineStyle(1);tick->Draw(); TDatime db(2011,2,01,00,00,00); int t4 = db.Convert(); tick = new TLine(t4, ymin, t4, ymin*1.2); tick->SetLineStyle(1);tick->Draw(); TDatime db(2011,3,02,00,00,00); int t4 = db.Convert(); tick = new TLine(t4, ymin, t4, ymin*1.2); tick->SetLineStyle(1);tick->Draw(); TDatime db(2011,5,01,00,00,00); int t4 = db.Convert(); tick = new TLine(t4, ymin, t4, ymin*1.2); tick->SetLineStyle(1);tick->Draw(); TDatime db(2011,6,02,00,00,00); int t4 = db.Convert(); tick = new TLine(t4, ymin, t4, ymin*1.2); tick->SetLineStyle(1);tick->Draw(); //-----------x bottom axis, draw once morer------------------------ tick = new TLine(t1, 0.001, t2, 0.001); tick->SetLineStyle(1);tick->Draw(); //-----------horizontal bar------------------------ tick = new TLine(t1, 0.01, t2, 0.01); tick->SetLineStyle(2);tick->Draw(); tick = new TLine(t1, 0.1, t2, 0.1); tick->SetLineStyle(2);tick->Draw(); tick = new TLine(t1, 1., t2, 1.); tick->SetLineStyle(2);tick->Draw(); tick = new TLine(t1, 10., t2, 10.); tick->SetLineStyle(2);tick->Draw(); // legd->SetFillColor(10); legd->SetBorderSize(1); leg0->SetFillColor(10); leg0->SetBorderSize(0); leg0->SetTextSize(0.035); leg1->SetFillColor(10); leg1->SetBorderSize(0); leg1->SetTextSize(0.035); leg2->SetFillColor(10); leg2->SetBorderSize(0); leg2->SetTextSize(0.035); leg3->SetFillColor(10); leg3->SetBorderSize(0); leg3->SetTextSize(0.035); leg4->SetFillColor(10); leg4->SetBorderSize(0); leg4->SetTextSize(0.01); legd->Draw(); leg0->Draw(); leg2->Draw(); //leg3->Draw(); leg1->Draw(); leg4->Draw(); //---------------draw an axis on the right side TGaxis *axis = new TGaxis(t2,10.,t2, ymax,-10.,30.,404,"+L"); axis->SetTitle("T_{sensor} [#circC]"); axis->SetLabelOffset(0.01); axis->SetTitleOffset(1.0); axis->SetTitleSize(0.05); axis->SetLabelSize(0.05); axis->SetLabelFont(42); axis->SetTitleFont(42); axis->Draw(); //draw an axis on the right side TGaxis *axis = new TGaxis(t2,ymin,t2, 10.,ymin,10.,505,"+LG"); axis->SetLabelOffset(0.01); axis->SetTitleOffset(1.0); axis->SetTitleSize(0.040); axis->SetLabelSize(0.0); axis->SetLabelFont(42); axis->SetTitleFont(42); axis->Draw(); //draw the tick marks again on X axis //TGaxis ax: //ax = hu.Xaxis(); //axis->SetLabelSize(0); //axis->Draw(); // //-- write last day------------------------------------------ TDatime db(2011,08,05,00,00,00); int t4 = db.Convert(); legA = new TText(t4 ,0.00041 ,"2011"); legA->SetTextSize(0.040); legA->Draw(); TDatime db(2011,08,03,00,00,00); int t4 = db.Convert(); legB = new TText(t4 ,0.00023 ,"Aug 14"); legB->SetTextSize(0.040); legB->Draw(); //-------------------plot integrated luminosity--------------- for (int i=0; iDraw(); TDatime db(2010,11,05,00,00,00); int t4 = db.Convert(); lum = new TLatex(t4 ,0.30 ,"integ. luminosity deliv.(fb^{-1})#times10"); lum->SetTextSize(0.035); lum->Draw(); //-----------------ATLAS preliminary-------------------------- TDatime db(2010,07,15,00,00,00); int t5 = db.Convert(); t=new TLatex(t5,5.,"ATLAS preliminary"); t->SetTextSize(0.05); t->Draw(); //-----------------------print ------------------------- c1->Print("leak_current_20110814_log.png"); c1->Print("leak_current_20110814_log.eps"); c1->Print("leak_current_20110814_log.pdf"); } :