Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
fit_ADC_4ns.C
Go to the documentation of this file.
1 
2 #include "TFile.h"
3 #include "TCanvas.h"
4 #include "TH2F.h"
5 #include "TString.h"
6 #include "TF1.h"
7 
8 void fit_ADC_4ns(TString filename, int runnumber) {
9 
10  bool writeout=0;
11 
12  TFile *infile = TFile::Open(filename.Data());
13  if (!infile) {
14  printf("Could not find %s\n",filename.Data());
15  return;
16  }
17 
18  char name[255];
19  TH2F* ZvsDeltat = NULL;
20 
21  TF1* pol1f1 = new TF1("pol1f1","212 + [0]*(x - [1])",-30,30);
22 
23  char outfilename[255];
24  sprintf(outfilename,"BCAL_ADC_4ns_correction_%i.txt",runnumber);
25  FILE *outfile = fopen(outfilename, "w");
26 
27  for(int module = 0; module < 48; ++module){
28  for(int layer = 0; layer < 4 ; ++layer){
29  for(int sector = 0; sector < 4; ++sector){
30 
31  // load 2D histogram
32  sprintf(name,"BCAL_ADC_Deltat/ZvsDeltat/M%02dL%dS%d", module+1, layer+1, sector+1);
33  ZvsDeltat = (TH2F*)infile->Get(name);
34  int correction = 0;
35  if (!ZvsDeltat) {
36  printf("M%02dL%dS%d missing\n",module+1, layer+1, sector+1);
37  } else {
38  ZvsDeltat->Fit(pol1f1,"Q");
39 
40  float p0 = pol1f1->GetParameter(0);
41  float dp0 = pol1f1->GetParError(0);
42  float p1 = pol1f1->GetParameter(1);
43  float dp1 = pol1f1->GetParError(1);
44  printf("M%02dL%dS%d %6.2f +-%6.2f %6.2f +-%6.2f\n",
45  module+1, layer+1, sector+1, p0, dp0, p1, dp1);
46  if (p1>2) correction = 4;
47  }
48  fprintf(outfile,"0\n%i\n",correction);
49  }
50  }
51  }
52  fclose(outfile);
53 }
Int_t layer
sprintf(text,"Post KinFit Cut")
TString filename
TFile * infile
Definition: tw_corr.C:45
TFile * outfile
Definition: tw_corr.C:46
void fit_ADC_4ns(TString filename, int runnumber)
Definition: fit_ADC_4ns.C:8
printf("string=%s", string)