percentXsec = xsec;
}
+void AliCentralityBy1D::SetMultLowBound(Float_t mult) {
+ multLowBound = mult;
+}
+
void AliCentralityBy1D::MakePercentiles(TString infilename) {
TH1D *thist;
vector<TString>::const_iterator hni;
for(hni=histnames.begin(); hni!=histnames.end(); hni++) {
thist = MakePercentHisto(*hni);
- SaveHisto(thist,outrootfile);
+ TH1D *htemp = (TH1D*) (inrootfile->Get(*hni));
+ SaveHisto(htemp,thist,outrootfile);
delete thist; //??
}
// close inrootfile, outrootfile
TH1D * AliCentralityBy1D::MakePercentHisto(TString hdistributionName) {
TH1D *htemp = (TH1D*) (inrootfile->Get(hdistributionName));
+ // TList *list = (TList*) (inrootfile->Get("chist"));
+ // TH1D *htemp = (TH1D*) (list->FindObject(hdistributionName));
TH1D *hpercent = (TH1D*) htemp->Clone("hpercent");
hpercent->SetName(hdistributionName.Append("_percentile"));
hpercent->Reset();
+ int start_bin=htemp->FindBin(multLowBound);
for (int ibin=1; ibin<=htemp->GetNbinsX(); ibin++) {
- hpercent->SetBinContent(ibin, percentXsec *
- htemp->Integral(ibin,htemp->GetNbinsX()) /
- htemp->Integral(1,htemp->GetNbinsX()));
-
+ if (ibin>=start_bin)
+ hpercent->SetBinContent(ibin, percentXsec *
+ htemp->Integral(ibin,htemp->GetNbinsX()) /
+ htemp->Integral(start_bin,htemp->GetNbinsX()));
+ else
+ hpercent->SetBinContent(ibin, 100);
}
delete htemp;
}
-void AliCentralityBy1D::SaveHisto(TH1D *hist, TFile *outrootfile) {
+void AliCentralityBy1D::SaveHisto(TH1D *hist1, TH1D *hist2, TFile *outrootfile) {
outrootfile->cd();
- hist->Write();
+ hist1->Write();
+ hist2->Write();
+
+ // int n=12;
+ // Float_t x1[n];
+ // Float_t centrality[]= {0.,5.,10.,20.,30.,40.,50.,60.,70.,80.,90.,100.};
+ // for (int i=n-1; i>=0; i--) {
+ // x1[i] = hist2->GetBinCenter(hist2->FindLastBinAbove(centrality[i]));
+ // cout << x1[i] << ",";
+ // }
+ // cout << endl;
+
}
TH1F *thistGlau;
TFile *inrootfile;
TFile *outrootfile;
- FILE* fTxt = fopen ("parameters.txt","w");
+ //FILE* fTxt = fopen ("parameters.txt","w");
// open inrootfile, outrootfile
- std::cout << "input file " << fInrootfilename << std::endl;
+ std::cout << "input file " << fInrootfilename << std::endl;
+ std::cout << "output file " << fOutrootfilename << std::endl;
inrootfile = new TFile(fInrootfilename,"OPEN");
outrootfile = new TFile(fOutrootfilename,"RECREATE");
hDATA = (TH1F*) (list->FindObject(*hni));
}
hDATA->Rebin(fRebinFactor);
- TH1F *hGLAU = new TH1F("hGLAU","hGLAU",hDATA->GetNbinsX(),0,hDATA->GetNbinsX()*hDATA->GetBinWidth(1));
+ //TH1F *hGLAU = new TH1F("hGLAU","hGLAU",hDATA->GetNbinsX(),0,hDATA->GetNbinsX()*hDATA->GetBinWidth(1));
Double_t chi2min = 9999999.0;
Double_t alpha_min=-1;
Double_t mu_min=-1;
thistGlau = GlauberHisto(mu,k,alpha,hDATA,kFALSE);
chi2 = CalculateChi2(hDATA,thistGlau);
- fprintf(fTxt, "%3.3f %3.3f %3.3f %3.3f\n", (float) mu, (float) k, (float) alpha, chi2);
+ //fprintf(fTxt, "%3.3f %3.3f %3.3f %3.3f\n", (float) mu, (float) k, (float) alpha, chi2);
if ( chi2 < chi2min ) {
chi2min = chi2;
alpha_min=alpha;
thistGlau = GlauberHisto(mu_min,k_min,alpha_min,hDATA,kTRUE);
+ TH1F * hGLAU = 0x0;
hGLAU = (TH1F *) thistGlau->Clone("hGLAU");
hGLAU->SetName( ((TString)hDATA->GetName()).Append(Form("_GLAU")));
hGLAU->SetTitle( ((TString)hDATA->GetName()).Append(Form("_GLAU_%.3f_%.3f_%.3f",
fhEffi = GetTriggerEfficiencyFunction(hDATA, hGLAU);
SaveHisto(hDATA,hGLAU,fhEffi,outrootfile);
- fclose (fTxt);
+ //fclose (fTxt);
std::cout << "chi2 min is " << chi2min << std::endl;
std::cout << "fitted " << hGLAU->Integral(hGLAU->FindBin(fMultmin),
TFile *outrootfile;
// open inrootfile, outrootfile
+ std::cout << "input file " << fInrootfilename << std::endl;
+ std::cout << "output file " << fOutrootfilename << std::endl;
inrootfile = new TFile(fInrootfilename,"OPEN");
outrootfile = new TFile(fOutrootfilename,"RECREATE");
-
+
// loop over all distribution names
std::vector<TString>::const_iterator hni;
for(hni=fHistnames.begin(); hni!=fHistnames.end(); hni++) {