// compile with: // g++ -o plotpedgains.exe plotpedgains.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 plotpedgains(const char *filename = "") { TH1F* hPedgains01; TH1F* hPedgains02; TH1F* hPedgains03; TH1F* hPedgains12; TH1F* hPedgains13; TH1F* hPedgains23; FILE *fcsv; int item = 0; int entry; char buffer[1024]; int saltronb; int channel; int prevsaltronb = 0; int mysaltronb = 0; int chipnumbers[1000]; unsigned int errorcode,warning; int mcm,chipnb; int nbChannels,nbErrors; float Mean,RMS; memset(chipnumbers,0,sizeof(chipnumbers)); sscanf(filename,"saltro-mcm%d-c%d-pedgains-s0-p1.csv",&mcm,&chipnb); 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]; sprintf(name, "hPedgains_01"); hPedgains01 = new TH1F(name, "",200,-100.0,100.0); hPedgains01->SetTitle("gain0-gain1"); hPedgains01->SetMinimum(0); sprintf(name, "hPedgains_02"); hPedgains02 = new TH1F(name, "",200,-100.0,100.0); hPedgains02->SetTitle("gain0-gain2"); hPedgains02->SetMinimum(0); sprintf(name, "hPedgains_03"); hPedgains03 = new TH1F(name, "",200,-100.0,100.0); hPedgains03->SetTitle("gain0-gain3"); hPedgains03->SetMinimum(0); sprintf(name, "hPedgains_12"); hPedgains12 = new TH1F(name, "",200,-100.0,100.0); hPedgains12->SetTitle("gain1-gain2"); hPedgains12->SetMinimum(0); sprintf(name, "hPedgains_13"); hPedgains13 = new TH1F(name, "",200,-100.0,100.0); hPedgains13->SetTitle("gain1-gain3"); hPedgains13->SetMinimum(0); sprintf(name, "hPedgains_23"); hPedgains23 = new TH1F(name, "",200,-100.0,100.0); hPedgains23->SetTitle("gain2-gain3"); hPedgains23->SetMinimum(0); item = 0; float gain0,gain1,gain2,gain3; float diff01,diff02,diff03,diff12,diff13,diff23; int itemnb = 0; while (fgets(buffer,sizeof(buffer),fcsv) != NULL) { if (itemnb != 0) { sscanf(buffer,"%d,%d,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%X,%X", &saltronb,&channel,&gain0,&gain1,&gain1,&gain3,&diff01,&diff02,&diff03,&diff12,&diff13,&diff23,&errorcode,&warning); if (errorcode == 0) { hPedgains01->Fill(diff01); hPedgains02->Fill(diff02); hPedgains03->Fill(diff03); hPedgains12->Fill(diff12); hPedgains13->Fill(diff13); hPedgains23->Fill(diff23); } } itemnb++; } fclose(fcsv); gStyle->SetOptStat(1110); char number[16]; sprintf(name,"%s.pdf(",filename); hPedgains01->Draw(); c1->SaveAs(name,"pdf"); hPedgains02->Draw(); c1->SaveAs(name,"pdf"); hPedgains03->Draw(); c1->SaveAs(name,"pdf"); hPedgains12->Draw(); c1->SaveAs(name,"pdf"); hPedgains13->Draw(); c1->SaveAs(name,"pdf"); sprintf(name,"%s.pdf)",filename); hPedgains23->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./plotpedgains.exe filename \n",argc); return 1; } iret = plotpedgains(argv[1]); return iret; }