00001 {
00002 const Double_t rt2pi = TMath::Sqrt(2.*TMath::Pi());
00003 const unsigned int nfiles = 30;
00004 const char* files[nfiles] = { "add1.root", "add2.root", "add3.root", "add4.root", "add5.root",
00005 "add6.root", "add7.root", "add8.root", "add9.root", "add10.root",
00006 "add11.root", "add12.root", "add13.root", "add14.root", "add15.root",
00007 "add16.root", "add17.root", "add18.root", "add19.root", "add20.root",
00008 "add21.root", "add22.root", "add23.root", "add24.root", "add25.root",
00009 "add26.root", "add27.root", "add28.root", "add29.root", "add30.root" };
00010 Double_t nmuons[nfiles];
00011 TSpectrum* pkfind = new TSpectrum(10);
00012
00013 TF1* fit = new TF1("pkfunc", "[0]*exp(-0.5*((x-[1])/[2])**2)+[3]*exp(-0.5*((x-([1]+5.104))/[4])**2)+[5]*x+[6]");
00014 for (unsigned int i = 0; i < nfiles; ++i) {
00015 char loc[256];
00016 sprintf(loc, "out/v37/%s", files[i]);
00017 TFile* f = new TFile(loc);
00018 TH1* h = (TH1*)f->Get("GeSpectrum/hEnergy");
00019 h->GetXaxis()->SetRangeUser(50.,1800.);
00020 TH1* b = pkfind->Background(h);
00021
00022 h->GetXaxis()->SetRangeUser(340., 355.);
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 Float_t mean = 345.;
00033 Float_t amp[2] = { 30., 40.};
00034 Float_t sigma[2] = { 1., 1.};
00035 fit->SetParameters(amp[0], mean, sigma[0], amp[1], sigma[1], 0., 0.);
00036 fit->SetParLimits(1, 343., 348.);
00037 fit->SetParLimits(2, 0., 3.);
00038 fit->SetParLimits(4, 0., 3.);
00039 fit->SetParLimits(5, -10., 0.);
00040 h->Fit(fit,"B");
00041 nmuons[i] = fit->GetParameter(0)*fit->GetParameter(2)*rt2pi;
00042 new TCanvas();
00043 h->DrawClone();
00044 }
00045 Double_t total_muons = 0.;
00046 for (unsigned int i = 0; i < nfiles; ++i) {
00047 printf("Number muons: %g\n", nmuons[i]);
00048 total_muons += nmuons[i];
00049 }
00050 printf("Total muons: %g\n", total_muons);
00051 }