// compile with: // g++ -o plotlvcard.exe plotlvcard.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; /* acttion 1 lvcard init 2 readadc 3 lvcard switch on 4 lvcard switch off 5 saltro is switched on 6 saltro is switched off */ int plotlvcard(const char *filename = "") { TH1F* hLvcardA15[6]; TH1F* hLvcardA25[6]; TH1F* hLvcardChipsA15[6]; TH1F* hLvcardChipsA25[6]; FILE *fcsv; char actiontext[6][120]; strcpy(actiontext[0],"1 lvcard init"); strcpy(actiontext[1],"2 readadc"); strcpy(actiontext[2],"3 lvcard switch on"); strcpy(actiontext[3],"4 lvcard switch off"); strcpy(actiontext[4],"5 saltro is switched on"); strcpy(actiontext[5],"6 saltro is switched off"); fcsv = fopen(filename,"r"); if (fcsv == NULL) { printf("File %s not found\n",filename); return 1; } TCanvas *c1 = new TCanvas("c1","Single cluster",600,600); char name[128]; string title[128]; for (int i = 0; i < 6; i++) { sprintf(name, "hLvcardA15_%d",i+1); hLvcardA15[i] = ((TH1F *)(gROOT->FindObject(name))); if (hLvcardA15[i]) delete hLvcardA15[i]; hLvcardA15[i] = new TH1F(name, "",200,0.0,600); hLvcardA15[i]->SetMinimum(0); sprintf(name, "Current 1.5V action %s",actiontext[i]); hLvcardA15[i]->SetTitle(name); hLvcardA15[i]->GetYaxis()->SetTitle("Entries"); hLvcardA15[i]->GetXaxis()->SetTitle("mA"); sprintf(name, "hLvcardA25_%d",i+1); hLvcardA25[i] = ((TH1F *)(gROOT->FindObject(name))); if (hLvcardA25[i]) delete hLvcardA25[i]; hLvcardA25[i] = new TH1F(name, "",100,0.0,100); hLvcardA25[i]->SetMinimum(0); sprintf(name, "Current 2.5V action %s",actiontext[i]); hLvcardA25[i]->SetTitle(name); hLvcardA25[i]->GetYaxis()->SetTitle("Entries"); hLvcardA25[i]->GetXaxis()->SetTitle("mA"); sprintf(name, "hLvcardChipA15_%d",i+1); hLvcardChipsA15[i] = ((TH1F *)(gROOT->FindObject(name))); if (hLvcardChipsA15[i]) delete hLvcardChipsA15[i]; hLvcardChipsA15[i] = new TH1F(name, "",100,0.0,100); hLvcardChipsA15[i]->SetMinimum(0); sprintf(name, "Current Chips 1.5V action %s",actiontext[i]); hLvcardChipsA15[i]->SetTitle(name); hLvcardChipsA15[i]->GetYaxis()->SetTitle("mA"); sprintf(name, "hLvcardChipA25_%d",i+1); hLvcardChipsA25[i] = ((TH1F *)(gROOT->FindObject(name))); if (hLvcardChipsA25[i]) delete hLvcardChipsA25[i]; hLvcardChipsA25[i] = new TH1F(name, "",100,0.0,100); hLvcardChipsA25[i]->SetMinimum(0); sprintf(name, "Current Chips 2.5V action %s",actiontext[i]); hLvcardChipsA25[i]->SetTitle(name); hLvcardChipsA25[i]->GetYaxis()->SetTitle("mA"); } int item = 0; char buffer[1024]; int saltronb; int prevsaltronb = 0; int mysaltronb = 0; unsigned int date,time; unsigned int errorcode; int action; int vin15,vin25; int vout15,vout25; int a15,a25; while (fgets(buffer,sizeof(buffer),fcsv) != NULL) { if (item != 0) { // printf("%s",buffer); sscanf(buffer,"%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%X", &saltronb,&date,&time,&action, &vin15,&vin25,&vout15,&vout25,&a15,&a25,&errorcode); // printf("%d %d %s",item,action,buffer); if (saltronb != prevsaltronb) { mysaltronb++; prevsaltronb = saltronb; } hLvcardA15[action-1]->Fill(a15); hLvcardA25[action-1]->Fill(a25); hLvcardChipsA15[action-1]->SetBinContent(mysaltronb,a15); hLvcardChipsA25[action-1]->SetBinContent(mysaltronb,a25); } item++; } fclose(fcsv); gStyle->SetOptStat(111111); sprintf(name,"%s.pdf(",filename); hLvcardA15[2]->Draw(); c1->SaveAs(name,"pdf"); sprintf(name,"%s.pdf",filename); hLvcardA15[4]->Draw(); c1->SaveAs(name,"pdf"); hLvcardA15[1]->Draw(); c1->SaveAs(name,"pdf"); hLvcardA25[2]->Draw(); c1->SaveAs(name,"pdf"); hLvcardA25[4]->Draw(); c1->SaveAs(name,"pdf"); hLvcardA25[1]->Draw(); c1->SaveAs(name,"pdf"); gStyle->SetOptStat(0); hLvcardChipsA15[2]->Draw(); c1->SaveAs(name,"pdf"); hLvcardChipsA15[4]->Draw(); c1->SaveAs(name,"pdf"); hLvcardChipsA15[1]->Draw(); c1->SaveAs(name,"pdf"); hLvcardChipsA25[2]->Draw(); c1->SaveAs(name,"pdf"); hLvcardChipsA25[4]->Draw(); c1->SaveAs(name,"pdf"); sprintf(name,"%s.pdf)",filename); hLvcardChipsA25[1]->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./plotlvcard.exe filename \n",argc); return 1; } iret = plotlvcard(argv[1]); return iret; }