00001
00002
00003 residu(TString baseName, double min=-1.5, double max=1.5)
00004 {
00005 double xMin, xMax;
00006 TString name;
00007 name = baseName;
00008 name += "_a"; TH1D * amp = new TH1D(name,name,55,0,54.);
00009 name = baseName;
00010 name += "_mean"; TH1D * mean = new TH1D(name,name,55,0,54.);
00011 name = baseName;
00012 name += "_rms"; TH1D * rms = new TH1D(name,name,55,0,54.);
00013 TString thisL;
00014 TH1D *h=0;
00015 TF1 * f;
00016 int ii;
00017 for(int i=0; i<51;i++)
00018 {
00019 thisL=baseName+i;
00020 if (i<6)
00021 {
00022 xMin = -0.2;
00023 xMax = 0.2;
00024 }
00025 else
00026 {
00027 xMin = min;
00028 xMax = max;
00029 }
00030 h=(TH1D*)gDirectory->Get(thisL);
00031 h->Fit("gaus","","",xMin,xMax);
00032 double entries = h->GetEntries();
00033 if (entries>0)
00034 {
00035 ii = i+1;
00036 f = h->GetFunction("gaus");
00037 double a = f->GetParameter("Constant"); double ea = f->GetParError(0);
00038 double m = f->GetParameter("Mean");double em = f->GetParError(1);
00039 double r = f->GetParameter("Sigma");double er = f->GetParError(2);
00040 amp->SetBinContent(ii,a);amp->SetBinError(ii,ea);
00041 mean->SetBinContent(ii,m);mean->SetBinError(ii,em);
00042 rms->SetBinContent(ii,r);rms->SetBinError(ii,er);
00043 }
00044 }
00045 cout << "Fitting completed" << endl;
00046
00047 c1->Clear();
00048 c1->Divide(1,3);
00049 c1->cd(1); amp->Draw();
00050 c1->cd(2); mean->Draw();
00051 c1->cd(3); rms->Draw();
00052
00053 }