Subversion Repositories f9daq

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. int pedestals(char *fname=NULL){
  2.  char fpede[255]="pedestals.dat";
  3.  
  4.  
  5.  if (fname!=NULL){
  6.     cout << "Rootname:" << fname << endl;
  7.     delete gROOT->GetListOfFiles()->FindObject(fname); // clear memory of file name
  8.     if( gSystem->AccessPathName(fname) ) {
  9.       cout << endl << "File: " << fname << " not there!!!" << endl << endl;
  10.       return 0;
  11.     }
  12.     TFile *rootfile = new TFile(fname);
  13.   }
  14.  
  15.  TH1I *gICh = (TH1I * ) gDirectory->Get("mapping");
  16.  char hname[50];
  17.  char hn[50];
  18.  TCanvas *c;
  19.  
  20.  
  21.  
  22.  fp=fopen(fpede,"w");
  23.  for (int i=0;i<4;i++) {
  24.     sprintf(hname,"cy%d",i);
  25.     sprintf(hn,"Single Pmt %d",i);
  26.     c =new TCanvas(hname,hn, 1000,1000);
  27.     c->Divide(4,4);
  28.     for (int j=0;j<16;j++){
  29.         c->cd(gICh->GetBinContent(j+1)+1)->SetLogy(1);
  30.      
  31.         sprintf(hn,"ach%d",i*16+j);
  32.         TH1F*h=   (TH1F * ) gDirectory->Get(hn);
  33.         float mean=h->GetMean();
  34.         h->Fit("gaus","","",mean-200,mean+100);
  35.  
  36.         TF1 *res = h->GetFunction("gaus");
  37.  
  38.         fprintf(fp, "%d %g\n",i*16+j,res->GetParameter(1));
  39.        
  40.     }
  41.     c->Modified();
  42.     c->Update();
  43.   }
  44.   fclose(fp);
  45.  
  46.   printf("pedestals are stored in file %s\n", fpede);
  47.  
  48.  
  49.   /*
  50.  char fsumpede[255]="sumpedestals.dat";
  51.  FILE *fp=fopen(fsumpede,"w");
  52.  c =new TCanvas("c","c", 600,600);
  53.  c->Divide(2,2);
  54.  for (int i=0;i<4;i++){
  55.     sprintf(hn,"pmt%d",i);
  56.     c->cd(i+1);
  57.     TH1F *h= ((TH1F * )gDirectory->Get(hn));
  58.     if (h) {
  59.       h->Fit("gaus", "","",3000, 6000);
  60.       TF1 *res = h->GetFunction("gaus");
  61.       fprintf(fp, "%d %g\n",i,res->GetParameter(1));
  62.     }  
  63.  }
  64.  c->Modified();
  65.  c->Update();
  66.  fclose(fp);
  67.  printf("pedestals are stored in file %s\n", fsumpede);
  68.  */
  69.  
  70. return 0;
  71. }
  72.