// 2 bugs. 1. entries; 2. Sub->Draw(); UInt_t width,height,NP,N; Int_t j,i,n,m; Int_t Entriesx,Entriesy,NumPoints; Double_t RMSx[100],RMSy[100], B[100]; NP=20; NumPoints=NP; ofstream outdata_RMSX;ofstream outdata_RMSY; void DataIn() { outdata_RMSX.open("RMS_X.txt"); outdata_RMSY.open("RMS_Y.txt"); for(n=0;n<=2*NP;n++) //for(n=0;n<=0;n++) { m=-20+n; //B[n]=0.00355145 + 0.019446*n; B[n]=1.0*m; if(n==NP-20){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_Second_20Amp.jpg");} if(n==NP-19){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_Second_19Amp.jpg");} if(n==NP-18){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_Second_18Amp.jpg");} if(n==NP-17){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_Second_17Amp.jpg");} if(n==NP-16){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_Second_16Amp.jpg");} if(n==NP-15){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_Second_15Amp.jpg");} if(n==NP-14){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_Second_14Amp.jpg");} if(n==NP-13){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_Second_13Amp.jpg");} if(n==NP-12){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_Second_12Amp.jpg");} if(n==NP-11){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_Second_11Amp.jpg");} if(n==NP-10){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_Second_10Amp.jpg");} if(n==NP-9){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_Second_9Amp.jpg");} if(n==NP-8){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_Second_8Amp.jpg");} if(n==NP-7){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_Second_7Amp.jpg");} if(n==NP-6){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_Second_6Amp.jpg");} if(n==NP-5){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_Second_5Amp.jpg");} if(n==NP-4){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_Second_4Amp.jpg");} if(n==NP-3){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_Second_3Amp.jpg");} if(n==NP-2){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_Second_2Amp.jpg");} if(n==NP-1){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_Second_1Amp.jpg");} if(n==NP){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_First_0Amp.jpg");} if(n==NP+1){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_First_1Amp.jpg");} if(n==NP+2){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_First_2Amp.jpg");} if(n==NP+3){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_First_3Amp.jpg");} if(n==NP+4){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_First_4Amp.jpg");} if(n==NP+5){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_First_5Amp.jpg");} if(n==NP+6){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_First_6Amp.jpg");} if(n==NP+7){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_First_7Amp.jpg");} if(n==NP+8){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_First_8Amp.jpg");} if(n==NP+9){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_First_9Amp.jpg");} if(n==NP+10){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_First_10Amp.jpg");} if(n==NP+11){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_First_11Amp.jpg");} if(n==NP+12){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_First_12Amp.jpg");} if(n==NP+13){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_First_13Amp.jpg");} if(n==NP+14){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_First_14Amp.jpg");} if(n==NP+15){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_First_15Amp.jpg");} if(n==NP+16){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_First_16Amp.jpg");} if(n==NP+17){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_First_17Amp.jpg");} if(n==NP+18){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_First_18Amp.jpg");} if(n==NP+19){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_First_19Amp.jpg");} if(n==NP+20){TImage *signal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_First_20Amp.jpg");} UInt_t *pixaray=signal->GetRgbaArray(); width=signal->GetWidth(); height=signal->GetHeight(); TH2F *PictPixl=new TH2F("PictPixl","PictPixl",200,260,460,250,150,400); //picture around spot TImage *bgsignal=TImage::Open("Rotated_HRRL_Emit_test_Quad_Scan_First_No_Rf_Background.jpg"); UInt_t *bgpixaray=bgsignal->GetRgbaArray(); TH2F *bgPictPixl=new TH2F("bgPictPixl","bgPictPixl",width,0,width,height,0,height); //whole picture TH2F *Sub=new TH2F("Sub","Sub",width,0,width,height,0,height); //whole picture Int_t index; //printf("Height=%d\tWidth=%d\n",height,width); Double_t R1, F1x, F1y, R2, F2x, F2y, a2; // for ellepse F1x=F2x=350; F1y=215;F2y=345; for( j=0;j<=height;j++) { for( i=0;i<=width;i++) { index=720*480-j*width+i; R1=sqrt((i-F1x)*(i-F1x) + (j-F1y)*(j-F1y)); R2=sqrt((i-F2x)*(i-F2x) + (j-F2y)*(j-F2y)); a2=R1+R2; PictPixl->Fill(i,j,pixaray[index]&0xffffff); bgPictPixl->Fill(i,j,bgpixaray[index]&0xffffff); if(a2<160) {Sub->Fill(i,j,(pixaray[index]&0xffffff)-0.55*(bgpixaray[index]&0xffffff));} } } TH1D *px = Sub->ProjectionX(); TH1D *py = Sub->ProjectionY(); //000000000000000000000000000000 Plot the Cut 00000000000000000000000000000000 /* TCanvas *sp= new TCanvas("sp","sp", 10,10, 770,750);//picture around spot sp->Divide(2,2); sp->cd(1); signal->Draw(); sp->cd(2); Sub->Draw("colz"); sp->cd(3); px->Draw(); px->Fit("gaus"); sp->cd(4); py->Draw(); py->Fit("gaus"); */ //000000000000000000000000000000000000000000000000000000000000000000000000000 Entriesx=px->GetEntries(); RMSx[n]=px->GetRMS(1); Entriesy=py->GetEntries(); RMSy[n]=py->GetRMS(1); printf("%g\t%g\t%g\t%g\t\t%g\t%g\n",n,m,Entriesx,RMSx[n],Entriesy,RMSy[n]); outdata_RMSX << n << " " << m << " " << Entriesx << " " << RMSx[n] <Delete(); bgPictPixl->Delete(); Sub->Delete(); } outdata_RMSX.close(); outdata_RMSY.close(); } //00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 void Plot( Int_t n, Double_t *B, Double_t *RMSx, Double_t *RMSy) { Double_t yfit[1000]; TCanvas *sp= new TCanvas("sp","sp", 100,100, 770,750);//picture around spot sp->Divide(2,1); sp->cd(1); TGraph *Hpx = new TGraph ( n, B, RMSx); Hpx ->SetTitle("X Projection RMS vs. Magnet Current"); Hpx ->GetXaxis()->SetTitle("Current From Shunt Resistance (Amps)"); Hpx ->GetYaxis()->SetTitle("RMS (Pixels)"); Hpx ->GetYaxis()->CenterTitle(); Hpx ->SetMarkerColor(4); Hpx ->SetMarkerStyle(21); Hpx ->SetMarkerSize(0.5); Hpx ->Draw("AP"); sp->cd(2); TGraph *Hpy = new TGraph ( n, B, RMSy); Hpy ->SetTitle("Y Projection RMS vs. Magnet Current"); Hpy ->GetXaxis()->SetTitle("Current From Shunt Resistance (Amps)"); Hpy ->GetYaxis()->SetTitle("RMS (Pixels)"); Hpy ->GetYaxis()->CenterTitle(); Hpy ->SetMarkerColor(4); Hpy ->SetMarkerStyle(21); Hpy ->SetMarkerSize(0.5); Hpy ->Draw("AP"); } void AutoRMS() { DataIn(); Plot( n, B, RMSx, RMSy); }