// compile with: // g++ -o plotcsv.exe plotcsv.cpp `root-config --cflags --glibs` // #include "TH1F.h" #include "TProfile.h" #include "TMath.h" #include "TF1.h" #include "TLegend.h" #include "TCanvas.h" // #include "TROOT.h" //#include "TStyle.h" #include "TTree.h" #include "TFile.h" #include "TGraphErrors.h" #include "TStyle.h" #include "TLine.h" #include #include #include #include #include #include // #include #include #include using namespace std; int plotcsv(const char *filename = "") { TH1F* hPeak0MeanAll; TH1F* hPeak0RmsAll; TH1F* hPeak0Mean; TH1F* hPeak0Rms; TH1F* hPeak1MeanAll; TH1F* hPeak1RmsAll; TH1F* hPeak1Mean; TH1F* hPeak1Rms; TH1F* hPeak2MeanAll; TH1F* hPeak2RmsAll; TH1F* hPeak2Mean; TH1F* hPeak2Rms; TH1F* hPed0MeanAll; TH1F* hPed0RmsAll; TH1F* hPed0Mean; TH1F* hPed0Rms; TH1F* hPed1MeanAll; TH1F* hPed1RmsAll; TH1F* hPed1Mean; TH1F* hPed1Rms; TH1F* hPed2MeanAll; TH1F* hPed2RmsAll; TH1F* hPed2Mean; TH1F* hPed2Rms; FILE *fcsv; int filetype = 0; if (strstr(filename,"pedsub") != NULL ) filetype = 1; else if (strstr(filename,"zerosup") != NULL ) filetype = 2; else if (strstr(filename,"pedestal") != NULL ) filetype = 3; else { printf("%s not legal\n",filename); return 1; } printf("FILETYPE %d\n",filetype); fcsv = fopen(filename,"r"); TCanvas *c1 = new TCanvas("c1","Single cluster",600,600); char name[128]; // PEDSUB & ZEROSUP PEAKS if ((filetype == 1) || (filetype == 2)) { sprintf(name, "hPeak0MeanAll"); hPeak0MeanAll = ((TH1F *)(gROOT->FindObject(name))); if (hPeak0MeanAll) delete hPeak0MeanAll; hPeak0MeanAll = new TH1F(name, "",1024,-0.5,1023.5); hPeak0MeanAll->SetMinimum(0); sprintf(name, "hPeak0RmsAll"); hPeak0RmsAll = ((TH1F *)(gROOT->FindObject(name))); if (hPeak0RmsAll) delete hPeak0RmsAll; hPeak0RmsAll = new TH1F(name, "",100,-0.5,99.5); hPeak0RmsAll->SetMinimum(0); sprintf(name, "hPeak1MeanAll"); hPeak1MeanAll = ((TH1F *)(gROOT->FindObject(name))); if (hPeak1MeanAll) delete hPeak1MeanAll; hPeak1MeanAll = new TH1F(name, "",1024,-0.5,1023.5); hPeak1MeanAll->SetMinimum(0); sprintf(name, "hPeak1RmsAll"); hPeak1RmsAll = ((TH1F *)(gROOT->FindObject(name))); if (hPeak1RmsAll) delete hPeak1RmsAll; hPeak1RmsAll = new TH1F(name, "",100,-0.5,99.5); hPeak1RmsAll->SetMinimum(0); sprintf(name, "hPeak2MeanAll"); hPeak2MeanAll = ((TH1F *)(gROOT->FindObject(name))); if (hPeak2MeanAll) delete hPeak2MeanAll; hPeak2MeanAll = new TH1F(name, "",1024,-0.5,1023.5); hPeak2MeanAll->SetMinimum(0); sprintf(name, "hPeak2RmsAll"); hPeak2RmsAll = ((TH1F *)(gROOT->FindObject(name))); if (hPeak2RmsAll) delete hPeak2RmsAll; hPeak2RmsAll = new TH1F(name, "",100,-0.5,99.5); hPeak2RmsAll->SetMinimum(0); sprintf(name, "hPeak0Mean"); hPeak0Mean = ((TH1F *)(gROOT->FindObject(name))); if (hPeak0Mean) delete hPeak0Mean; hPeak0Mean = new TH1F(name, "",3200,0.0,3200.0); hPeak0Mean->SetMinimum(0); sprintf(name, "hPeak0Rms"); hPeak0Rms = ((TH1F *)(gROOT->FindObject(name))); if (hPeak0Rms) delete hPeak0Rms; hPeak0Rms = new TH1F(name, "",3200,0.0,3200.0); hPeak0Rms->SetMinimum(0); sprintf(name, "hPeak1Mean"); hPeak1Mean = ((TH1F *)(gROOT->FindObject(name))); if (hPeak1Mean) delete hPeak1Mean; hPeak1Mean = new TH1F(name, "",3200,0.0,3200.0); hPeak1Mean->SetMinimum(0); sprintf(name, "hPeak1Rms"); hPeak1Rms = ((TH1F *)(gROOT->FindObject(name))); if (hPeak1Rms) delete hPeak1Rms; hPeak1Rms = new TH1F(name, "",3200,0.0,3200.0); hPeak1Rms->SetMinimum(0); sprintf(name, "hPeak2Mean"); hPeak2Mean = ((TH1F *)(gROOT->FindObject(name))); if (hPeak2Mean) delete hPeak2Mean; hPeak2Mean = new TH1F(name, "",3200,0.0,3200.0); hPeak2Mean->SetMinimum(0); sprintf(name, "hPeak2Rms"); hPeak2Rms = ((TH1F *)(gROOT->FindObject(name))); if (hPeak2Rms) delete hPeak2Rms; hPeak2Rms = new TH1F(name, "",3200,0.0,3200.0); hPeak2Rms->SetMinimum(0); } // PEDSUB PEDESTALS if (filetype == 1) { sprintf(name, "hPed0MeanAll"); hPed0MeanAll = ((TH1F *)(gROOT->FindObject(name))); if (hPed0MeanAll) delete hPed0MeanAll; hPed0MeanAll = new TH1F(name, "",200,-0.5,199.5); hPed0MeanAll->SetMinimum(0); sprintf(name, "hPed0RmsAll"); hPed0RmsAll = ((TH1F *)(gROOT->FindObject(name))); if (hPed0RmsAll) delete hPed0RmsAll; hPed0RmsAll = new TH1F(name, "",100,-0.5,99.5); hPed0RmsAll->SetMinimum(0); sprintf(name, "hPed1MeanAll"); hPed1MeanAll = ((TH1F *)(gROOT->FindObject(name))); if (hPed1MeanAll) delete hPed1MeanAll; hPed1MeanAll = new TH1F(name, "",200,-0.5,199.5); hPed1MeanAll->SetMinimum(0); sprintf(name, "hPed1RmsAll"); hPed1RmsAll = ((TH1F *)(gROOT->FindObject(name))); if (hPed1RmsAll) delete hPed1RmsAll; hPed1RmsAll = new TH1F(name, "",100,-0.5,99.5); hPed1RmsAll->SetMinimum(0); sprintf(name, "hPed2MeanAll"); hPed2MeanAll = ((TH1F *)(gROOT->FindObject(name))); if (hPed2MeanAll) delete hPed2MeanAll; hPed2MeanAll = new TH1F(name, "",200,-0.5,199.5); hPed2MeanAll->SetMinimum(0); sprintf(name, "hPed2RmsAll"); hPed2RmsAll = ((TH1F *)(gROOT->FindObject(name))); if (hPed2RmsAll) delete hPed2RmsAll; hPed2RmsAll = new TH1F(name, "",100,-0.5,99.5); hPed2RmsAll->SetMinimum(0); sprintf(name, "hPed0Mean"); hPed0Mean = ((TH1F *)(gROOT->FindObject(name))); if (hPed0Mean) delete hPed0Mean; hPed0Mean = new TH1F(name, "",3200,0.0,3200); hPed0Mean->SetMinimum(0); sprintf(name, "hPed0Rms"); hPed0Rms = ((TH1F *)(gROOT->FindObject(name))); if (hPed0Rms) delete hPed0Rms; hPed0Rms = new TH1F(name, "",3200,0.0,3200); hPed0Rms->SetMinimum(0); sprintf(name, "hPed1Mean"); hPed1Mean = ((TH1F *)(gROOT->FindObject(name))); if (hPed1Mean) delete hPed1Mean; hPed1Mean = new TH1F(name, "",3200,0.0,3200.0); hPed1Mean->SetMinimum(0); sprintf(name, "hPed1Rms"); hPed1Rms = ((TH1F *)(gROOT->FindObject(name))); if (hPed1Rms) delete hPed1Rms; hPed1Rms = new TH1F(name, "",3200,0.0,3200.0); hPed1Rms->SetMinimum(0); sprintf(name, "hPed2Mean"); hPed2Mean = ((TH1F *)(gROOT->FindObject(name))); if (hPed2Mean) delete hPed2Mean; hPed2Mean = new TH1F(name, "",3200,0.0,3200.0); hPed2Mean->SetMinimum(0); sprintf(name, "hPed2Rms"); hPed2Rms = ((TH1F *)(gROOT->FindObject(name))); if (hPed2Rms) delete hPed2Rms; hPed2Rms = new TH1F(name, "",3200,0.0,3200.0); hPed2Rms->SetMinimum(0); } // PEDESTALS if (filetype == 3) { sprintf(name, "hPed0MeanAll"); hPed0MeanAll = ((TH1F *)(gROOT->FindObject(name))); if (hPed0MeanAll) delete hPed0MeanAll; hPed0MeanAll = new TH1F(name, "",200,-0.5,199.5); hPed0MeanAll->SetMinimum(0); sprintf(name, "hPed0RmsAll"); hPed0RmsAll = ((TH1F *)(gROOT->FindObject(name))); if (hPed0RmsAll) delete hPed0RmsAll; hPed0RmsAll = new TH1F(name, "",50,-0.5,49.5); hPed0RmsAll->SetMinimum(0); sprintf(name, "hPed0Mean"); hPed0Mean = ((TH1F *)(gROOT->FindObject(name))); if (hPed0Mean) delete hPed0Mean; hPed0Mean = new TH1F(name, "",3200,0.0,3200.0); hPed0Mean->SetMinimum(0); sprintf(name, "hPed0Rms"); hPed0Rms = ((TH1F *)(gROOT->FindObject(name))); if (hPed0Rms) delete hPed0Rms; hPed0Rms = new TH1F(name, "",3200,0.5,3200.0); hPed0Rms->SetMinimum(0); } if (fcsv == NULL) { printf("File %s not found\n",filename); } int item = 0; char buffer[1024]; int saltronb; int channel; float peak0mean; float peak0rms; float peak0entries; float peak1mean; float peak1rms; float peak1entries; float peak2mean; float peak2rms; float peak2entries; float ped0mean; float ped0rms; float ped0entries; float ped1mean; float ped1rms; float ped1entries; float ped2mean; float ped2rms; float ped2entries; char therest[512]; while (fgets(buffer,sizeof(buffer),fcsv) != NULL) { if (item != 0) { // printf("%s",buffer); if (filetype == 1) { sscanf(buffer,"%d,%d,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%s", &saltronb,&channel, &peak0mean,&peak0rms,&peak0entries, &peak1mean,&peak1rms,&peak1entries, &peak2mean,&peak2rms,&peak2entries, &ped0mean,&ped0rms,&ped0entries, &ped1mean,&ped1rms,&ped1entries, &ped2mean,&ped2rms,&ped2entries, therest); } else if (filetype == 2) { sscanf(buffer,"%d,%d,%f,%f,%f,%f,%f,%f,%f,%f,%f,%s", &saltronb,&channel, &peak0mean,&peak0rms,&peak0entries, &peak1mean,&peak1rms,&peak1entries, &peak2mean,&peak2rms,&peak2entries, therest); } else if (filetype == 3) { sscanf(buffer,"%d,%d,%f,%f,%f,%s", &saltronb,&channel, &ped0mean,&ped0rms,&ped0entries, therest); } if ((filetype == 1) || (filetype == 2)) { if (peak0entries > 0) { hPeak0MeanAll->Fill(peak0mean); hPeak0RmsAll->Fill(peak0rms); } if (peak1entries > 0) { hPeak1MeanAll->Fill(peak1mean); hPeak1RmsAll->Fill(peak1rms); } if (peak2entries > 0) { hPeak2MeanAll->Fill(peak2mean); hPeak2RmsAll->Fill(peak2rms); } hPeak0Mean->SetBinContent(item,peak0mean); hPeak0Rms->SetBinContent(item,peak0rms); hPeak1Mean->SetBinContent(item,peak1mean); hPeak1Rms->SetBinContent(item,peak1rms); hPeak2Mean->SetBinContent(item,peak2mean); hPeak2Rms->SetBinContent(item,peak2rms); printf("PEAK %d %d %f %f %f %f %f %f\n",item,channel,peak0mean,peak0rms,peak1mean,peak1rms,peak2mean,peak2rms); } if (filetype == 1) { if (ped0entries > 0) { hPed0MeanAll->Fill(ped0mean); hPed0RmsAll->Fill(ped0rms); } if (ped1entries > 0) { hPed1MeanAll->Fill(ped1mean); hPed1RmsAll->Fill(ped1rms); } if (ped2entries > 0) { hPed2MeanAll->Fill(ped2mean); hPed2RmsAll->Fill(ped2rms); } hPed0Mean->SetBinContent(item,ped0mean); hPed0Rms->SetBinContent(item,ped0rms); hPed1Mean->SetBinContent(item,ped1mean); hPed1Rms->SetBinContent(item,ped1rms); hPed2Mean->SetBinContent(item,ped2mean); hPed2Rms->SetBinContent(item,ped2rms); } if (filetype == 3) { hPed0MeanAll->Fill(ped0mean); hPed0RmsAll->Fill(ped0rms); hPed0Mean->SetBinContent(item,ped0mean); hPed0Rms->SetBinContent(item,ped0rms); } } item++; } fclose(fcsv); gStyle->SetOptStat(0); int step=400; if ((filetype == 1) || (filetype == 2)) { // PEAKTYPE 0 sprintf(name, "Peaktype 0 mean"); hPeak0Mean->SetTitle(name); for (int j1 = 0; j1 < item; j1+=400) { hPeak0Mean->SetAxisRange(j1, j1+step, "X"); hPeak0Mean->Draw(); if (j1 == 0) sprintf(name,"%s.pdf(",filename); else sprintf(name,"%s.pdf",filename); c1->SaveAs(name,"pdf"); } sprintf(name, "Peaktype 0 rms"); hPeak0Rms->SetTitle(name); sprintf(name,"%s.pdf",filename); for (int j1 = 0; j1 < item; j1+=400) { hPeak0Rms->SetAxisRange(j1, j1+step, "X"); hPeak0Rms->Draw(); c1->SaveAs(name,"pdf"); } // PEAKTYPE1 sprintf(name, "Peaktype 1 mean"); hPeak1Mean->SetTitle(name); sprintf(name,"%s.pdf",filename); for (int j1 = 0; j1 < item; j1+=400) { hPeak1Mean->SetAxisRange(j1, j1+step, "X"); hPeak1Mean->Draw(); c1->SaveAs(name,"pdf"); } sprintf(name, "Peaktype 1 rms"); hPeak1Rms->SetTitle(name); sprintf(name,"%s.pdf",filename); for (int j1 = 0; j1 < item; j1+=400) { hPeak1Rms->SetAxisRange(j1, j1+step, "X"); hPeak1Rms->Draw(); c1->SaveAs(name,"pdf"); } } if (filetype == 1) { gStyle->SetOptStat(0); // PEAKTYPE2 sprintf(name, "Peaktype 2 mean"); hPeak2Mean->SetTitle(name); sprintf(name,"%s.pdf",filename); for (int j1 = 0; j1 < item; j1+=400) { hPeak2Mean->SetAxisRange(j1, j1+step, "X"); hPeak2Mean->Draw(); c1->SaveAs(name,"pdf"); } sprintf(name, "Peaktype 2 rms"); hPeak2Rms->SetTitle(name); sprintf(name,"%s.pdf",filename); for (int j1 = 0; j1 < item; j1+=400) { hPeak2Rms->SetAxisRange(j1, j1+step, "X"); hPeak2Rms->Draw(); c1->SaveAs(name,"pdf"); } // PEDTYPE 0 sprintf(name, "Pedtype 0 mean"); hPed0Mean->SetTitle(name); sprintf(name,"%s.pdf",filename); for (int j1 = 0; j1 < item; j1+=400) { hPed0Mean->SetAxisRange(j1,j1+step, "X"); hPed0Mean->Draw(); c1->SaveAs(name,"pdf"); } sprintf(name, "Pedtype 0 rms"); hPed0Rms->SetTitle(name); sprintf(name,"%s.pdf",filename); for (int j1 = 0; j1 < item; j1+=400) { sprintf(name,"%s.pdf",filename); hPed0Rms->SetAxisRange(j1,j1+step, "X"); hPed0Rms->Draw(); c1->SaveAs(name,"pdf"); } // PEDTYPE 1 sprintf(name, "Pedtype 1 mean"); hPed1Mean->SetTitle(name); sprintf(name,"%s.pdf",filename); for (int j1 = 0; j1 < item; j1+=400) { hPed1Mean->SetAxisRange(j1,j1+step, "X"); hPed1Mean->Draw(); c1->SaveAs(name,"pdf"); } sprintf(name, "Pedtype 1 rms"); hPed1Rms->SetTitle(name); sprintf(name,"%s.pdf",filename); for (int j1 = 0; j1 < item; j1+=400) { sprintf(name,"%s.pdf",filename); hPed1Rms->SetAxisRange(j1,j1+step, "X"); hPed1Rms->Draw(); c1->SaveAs(name,"pdf"); } // PEDTYPE 2 sprintf(name, "Pedtype 2 mean"); hPed2Mean->SetTitle(name); sprintf(name,"%s.pdf",filename); for (int j1 = 0; j1 < item; j1+=400) { hPed2Mean->SetAxisRange(j1,j1+step, "X"); hPed2Mean->Draw(); c1->SaveAs(name,"pdf"); } sprintf(name, "Pedtype 2 rms"); hPed2Rms->SetTitle(name); sprintf(name,"%s.pdf",filename); for (int j1 = 0; j1 < item; j1+=400) { sprintf(name,"%s.pdf",filename); hPed2Rms->SetAxisRange(j1,j1+step, "X"); hPed2Rms->Draw(); c1->SaveAs(name,"pdf"); } // SUMMARY PEAKTYPES gStyle->SetOptStat(111111); sprintf(name, "Peaktype 0 mean"); hPeak0MeanAll->SetTitle(name); sprintf(name,"%s.pdf",filename); hPeak0MeanAll->Draw(); c1->SaveAs(name,"pdf"); sprintf(name, "Peaktype 0 rms"); hPeak0RmsAll->SetTitle(name); sprintf(name,"%s.pdf",filename); hPeak0RmsAll->Draw(); c1->SaveAs(name,"pdf"); sprintf(name, "Peaktype 1 mean"); hPeak1MeanAll->SetTitle(name); sprintf(name,"%s.pdf",filename); hPeak1MeanAll->Draw(); c1->SaveAs(name,"pdf"); sprintf(name, "Peaktype 1 rms"); hPeak1RmsAll->SetTitle(name); sprintf(name,"%s.pdf",filename); hPeak1RmsAll->Draw(); c1->SaveAs(name,"pdf"); sprintf(name, "Peaktype 2 mean"); hPeak2MeanAll->SetTitle(name); sprintf(name,"%s.pdf",filename); hPeak2MeanAll->Draw(); c1->SaveAs(name,"pdf"); sprintf(name, "Peaktype 2 rms"); hPeak2RmsAll->SetTitle(name); sprintf(name,"%s.pdf",filename); hPeak2RmsAll->Draw(); c1->SaveAs(name,"pdf"); // SUMMARY PEDTYPES gStyle->SetOptStat(111111); sprintf(name, "Pedtype 0 mean"); hPed0MeanAll->SetTitle(name); sprintf(name,"%s.pdf",filename); hPed0MeanAll->Draw(); c1->SaveAs(name,"pdf"); sprintf(name, "Pedtype 0 rms"); hPed0RmsAll->SetTitle(name); sprintf(name,"%s.pdf",filename); hPed0RmsAll->Draw(); c1->SaveAs(name,"pdf"); sprintf(name, "Pedtype 1 mean"); hPed1MeanAll->SetTitle(name); sprintf(name,"%s.pdf",filename); hPed1MeanAll->Draw(); c1->SaveAs(name,"pdf"); sprintf(name, "Pedtype 1 rms"); hPed1RmsAll->SetTitle(name); sprintf(name,"%s.pdf",filename); hPed1RmsAll->Draw(); c1->SaveAs(name,"pdf"); sprintf(name, "Pedtype 2 mean"); hPed2MeanAll->SetTitle(name); sprintf(name,"%s.pdf",filename); hPed2MeanAll->Draw(); c1->SaveAs(name,"pdf"); sprintf(name, "Pedtype 2 rms"); hPed2RmsAll->SetTitle(name); sprintf(name,"%s.pdf)",filename); hPed2RmsAll->Draw(); c1->SaveAs(name,"pdf"); } else if (filetype == 2) { gStyle->SetOptStat(0); // PEAKTYPE2 sprintf(name, "Peaktype 2 mean"); hPeak2Mean->SetTitle(name); sprintf(name,"%s.pdf",filename); for (int j1 = 0; j1 < item; j1+=400) { hPeak2Mean->SetAxisRange(j1, j1+step, "X"); hPeak2Mean->Draw(); c1->SaveAs(name,"pdf"); } sprintf(name, "Peaktype 2 rms"); hPeak2Rms->SetTitle(name); sprintf(name,"%s.pdf",filename); for (int j1 = 0; j1 < item; j1+=400) { hPeak2Rms->SetAxisRange(j1, j1+step, "X"); hPeak2Rms->Draw(); c1->SaveAs(name,"pdf"); } // SUMMARY PEAKTYPES gStyle->SetOptStat(111111); sprintf(name, "Peaktype 0 mean"); hPeak0MeanAll->SetTitle(name); sprintf(name,"%s.pdf",filename); hPeak0MeanAll->Draw(); c1->SaveAs(name,"pdf"); sprintf(name, "Peaktype 0 rms"); hPeak0RmsAll->SetTitle(name); sprintf(name,"%s.pdf",filename); hPeak0RmsAll->Draw(); c1->SaveAs(name,"pdf"); sprintf(name, "Peaktype 1 mean"); hPeak1MeanAll->SetTitle(name); sprintf(name,"%s.pdf",filename); hPeak1MeanAll->Draw(); c1->SaveAs(name,"pdf"); sprintf(name, "Peaktype 1 rms"); hPeak1RmsAll->SetTitle(name); sprintf(name,"%s.pdf",filename); hPeak1RmsAll->Draw(); c1->SaveAs(name,"pdf"); sprintf(name, "Peaktype 2 mean"); hPeak2MeanAll->SetTitle(name); sprintf(name,"%s.pdf",filename); hPeak2MeanAll->Draw(); c1->SaveAs(name,"pdf"); sprintf(name, "Peaktype 2 rms"); hPeak2RmsAll->SetTitle(name); sprintf(name,"%s.pdf)",filename); hPeak2RmsAll->Draw(); c1->SaveAs(name,"pdf"); } else if (filetype == 3) { // INIDVIDUAL CHANNELS gStyle->SetOptStat(0); sprintf(name, "Pedestals mean"); hPed0Mean->SetTitle(name); for (int j1 = 0; j1 < item; j1+=400) { hPed0Mean->SetAxisRange(j1,j1+step, "X"); hPed0Mean->Draw(); if (j1 == 0) sprintf(name,"%s.pdf(",filename); else sprintf(name,"%s.pdf",filename); c1->SaveAs(name,"pdf"); } sprintf(name, "Pedestals rms"); hPed0Rms->SetTitle(name); for (int j1 = 0; j1 < item; j1+=400) { sprintf(name,"%s.pdf",filename); hPed0Rms->SetAxisRange(j1,j1+step, "X"); hPed0Rms->Draw(); c1->SaveAs(name,"pdf"); } // SUMMARY gStyle->SetOptStat(111111); sprintf(name, "Pedestals mean"); hPed0MeanAll->SetTitle(name); sprintf(name,"%s.pdf",filename); hPed0MeanAll->Draw(); c1->SaveAs(name,"pdf"); sprintf(name, "Pedestals 0 rms"); hPed0RmsAll->SetTitle(name); sprintf(name,"%s.pdf)",filename); hPed0RmsAll->Draw(); c1->SaveAs(name,"pdf"); } return 0; } int main (int argc, char *argv[]) { int iret = 0; if (argc != 2) { printf("Wrong number of arguments: argc = %d\nSyntax should be:\n./plotcsv.exe filename \n",argc); return 1; } iret = plotcsv(argv[1]); return iret; }