int pedestals(char *fname=NULL){
char fpede[255]="pedestals.dat";
if (fname!=NULL){
cout << "Rootname:" << fname << endl;
delete gROOT->GetListOfFiles()->FindObject(fname); // clear memory of file name
if( gSystem->AccessPathName(fname) ) {
cout << endl << "File: " << fname << " not there!!!" << endl << endl;
return 0;
}
TFile *rootfile = new TFile(fname);
}
TH1I *gICh = (TH1I * ) gDirectory->Get("mapping");
char hname[50];
char hn[50];
TCanvas *c;
fp=fopen(fpede,"w");
for (int i=0;i<4;i++) {
sprintf(hname,"cy%d",i);
sprintf(hn,"Single Pmt %d",i);
c =new TCanvas(hname,hn, 1000,1000);
c->Divide(4,4);
for (int j=0;j<16;j++){
c->cd(gICh->GetBinContent(j+1)+1)->SetLogy(1);
sprintf(hn,"ach%d",i*16+j);
TH1F*h= (TH1F * ) gDirectory->Get(hn);
float mean=h->GetMean();
h->Fit("gaus","","",mean-200,mean+100);
TF1 *res = h->GetFunction("gaus");
fprintf(fp, "%d %g\n",i*16+j,res->GetParameter(1));
}
c->Modified();
c->Update();
}
fclose(fp);
printf("pedestals are stored in file %s\n", fpede);
/*
char fsumpede[255]="sumpedestals.dat";
FILE *fp=fopen(fsumpede,"w");
c =new TCanvas("c","c", 600,600);
c->Divide(2,2);
for (int i=0;i<4;i++){
sprintf(hn,"pmt%d",i);
c->cd(i+1);
TH1F *h= ((TH1F * )gDirectory->Get(hn));
if (h) {
h->Fit("gaus", "","",3000, 6000);
TF1 *res = h->GetFunction("gaus");
fprintf(fp, "%d %g\n",i,res->GetParameter(1));
}
}
c->Modified();
c->Update();
fclose(fp);
printf("pedestals are stored in file %s\n", fsumpede);
*/
return 0;
}