const char *efffilename="Efficiencies.root",
const char *recofilename="Reconstructed.root",
const char *outfilename="HFPtSpectrum.root",
- int option=1, double lumi=1.0, double eff_trig=1.0){
+ int option=1, double lumi=1.0, double effTrig=1.0){
// Set if calculation considers asymmetric uncertainties or not
bool asym = true;
//
TH1D *hDirectMCpt; // Input MC c-->D spectra
TH1D *hFeedDownMCpt; // Input MC b-->D spectra
- TH1D *hDirectMCpt_max; // Input MC maximum c-->D spectra
- TH1D *hDirectMCpt_min; // Input MC minimum c-->D spectra
- TH1D *hFeedDownMCpt_max; // Input MC maximum b-->D spectra
- TH1D *hFeedDownMCpt_min; // Input MC minimum b-->D spectra
+ TH1D *hDirectMCptMax; // Input MC maximum c-->D spectra
+ TH1D *hDirectMCptMin; // Input MC minimum c-->D spectra
+ TH1D *hFeedDownMCptMax; // Input MC maximum b-->D spectra
+ TH1D *hFeedDownMCptMin; // Input MC minimum b-->D spectra
TH1D *hDirectEffpt; // c-->D Acceptance and efficiency correction
TH1D *hFeedDownEffpt; // b-->D Acceptance and efficiency correction
TH1D *hRECpt; // all reconstructed D
if (isD0Kpi){
hDirectMCpt = (TH1D*)mcfile->Get("hD0Kpipred_central");
hFeedDownMCpt = (TH1D*)mcfile->Get("hD0KpifromBpred_central");
- hDirectMCpt_max = (TH1D*)mcfile->Get("hD0Kpipred_max");
- hDirectMCpt_min = (TH1D*)mcfile->Get("hD0Kpipred_min");
- hFeedDownMCpt_max = (TH1D*)mcfile->Get("hD0KpifromBpred_max");
- hFeedDownMCpt_min = (TH1D*)mcfile->Get("hD0KpifromBpred_min");
+ hDirectMCptMax = (TH1D*)mcfile->Get("hD0Kpipred_max");
+ hDirectMCptMin = (TH1D*)mcfile->Get("hD0Kpipred_min");
+ hFeedDownMCptMax = (TH1D*)mcfile->Get("hD0KpifromBpred_max");
+ hFeedDownMCptMin = (TH1D*)mcfile->Get("hD0KpifromBpred_min");
}
else if (isDplusKpipi){
hDirectMCpt = (TH1D*)mcfile->Get("hDpluskpipipred_central");
hFeedDownMCpt = (TH1D*)mcfile->Get("hDpluskpipifromBpred_central");
- hDirectMCpt_max = (TH1D*)mcfile->Get("hDpluskpipipred_max");
- hDirectMCpt_min = (TH1D*)mcfile->Get("hDpluskpipipred_min");
- hFeedDownMCpt_max = (TH1D*)mcfile->Get("hDpluskpipifromBpred_max");
- hFeedDownMCpt_min = (TH1D*)mcfile->Get("hDpluskpipifromBpred_min");
+ hDirectMCptMax = (TH1D*)mcfile->Get("hDpluskpipipred_max");
+ hDirectMCptMin = (TH1D*)mcfile->Get("hDpluskpipipred_min");
+ hFeedDownMCptMax = (TH1D*)mcfile->Get("hDpluskpipifromBpred_max");
+ hFeedDownMCptMin = (TH1D*)mcfile->Get("hDpluskpipifromBpred_min");
}
//
hDirectMCpt->SetNameTitle("hDirectMCpt","direct MC spectra");
hFeedDownMCpt->SetNameTitle("hFeedDownMCpt","feed-down MC spectra");
- hDirectMCpt_max->SetNameTitle("hDirectMCpt_max","max direct MC spectra");
- hDirectMCpt_min->SetNameTitle("hDirectMCpt_min","min direct MC spectra");
- hFeedDownMCpt_max->SetNameTitle("hFeedDownMCpt_max","max feed-down MC spectra");
- hFeedDownMCpt_min->SetNameTitle("hFeedDownMCpt_min","min feed-down MC spectra");
+ hDirectMCptMax->SetNameTitle("hDirectMCptMax","max direct MC spectra");
+ hDirectMCptMin->SetNameTitle("hDirectMCptMin","min direct MC spectra");
+ hFeedDownMCptMax->SetNameTitle("hFeedDownMCptMax","max feed-down MC spectra");
+ hFeedDownMCptMin->SetNameTitle("hFeedDownMCptMin","min feed-down MC spectra");
//
TFile * efffile = new TFile(efffilename,"read");
hDirectEffpt = (TH1D*)efffile->Get("hDirectEffpt");
TH1D *histofc = (TH1D*)hRECpt->Clone();
histofc->SetNameTitle("histofc","fc correction factor");
histofc->Reset();
- TH1D *histofc_max = (TH1D*)histofc->Clone();
- TH1D *histofc_min = (TH1D*)histofc->Clone();
+ TH1D *histofcMax = (TH1D*)histofc->Clone();
+ TH1D *histofcMin = (TH1D*)histofc->Clone();
TH1D *histoYieldCorr = (TH1D*)hRECpt->Clone();
histoYieldCorr->SetNameTitle("histoYieldCorrFc","corrected yield");
histoYieldCorr->Reset();
- TH1D *histoYieldCorr_max = (TH1D*)histoYieldCorr->Clone();
- histoYieldCorr_max->SetNameTitle("histoYieldCorr_max","max corrected yield");
- TH1D *histoYieldCorr_min = (TH1D*)histoYieldCorr->Clone();
- histoYieldCorr_min->SetNameTitle("histoYieldCorr_min","min corrected yield");
+ TH1D *histoYieldCorrMax = (TH1D*)histoYieldCorr->Clone();
+ histoYieldCorrMax->SetNameTitle("histoYieldCorrMax","max corrected yield");
+ TH1D *histoYieldCorrMin = (TH1D*)histoYieldCorr->Clone();
+ histoYieldCorrMin->SetNameTitle("histoYieldCorrMin","min corrected yield");
TH1D *histoSigmaCorr = (TH1D*)hRECpt->Clone();
histoSigmaCorr->SetNameTitle("histoSigmaCorr","corrected invariant cross-section");
histoSigmaCorr->Reset();
// option specific histos
if(option==1){
spectra->SetMCptSpectra(hDirectMCpt,hFeedDownMCpt);
- if(asym) spectra->SetMCptDistributionsBounds(hDirectMCpt_max,hDirectMCpt_min,hFeedDownMCpt_max,hFeedDownMCpt_min);
+ if(asym) spectra->SetMCptDistributionsBounds(hDirectMCptMax,hDirectMCptMin,hFeedDownMCptMax,hFeedDownMCptMin);
}
else if(option==2){
spectra->SetFeedDownMCptSpectra(hFeedDownMCpt);
- if(asym) spectra->SetFeedDownMCptDistributionsBounds(hFeedDownMCpt_max,hFeedDownMCpt_min);
+ if(asym) spectra->SetFeedDownMCptDistributionsBounds(hFeedDownMCptMax,hFeedDownMCptMin);
}
// Set normalization factors (uncertainties set to 0. as example)
spectra->SetLuminosity(lumi,0.);
- spectra->SetTriggerEfficiency(eff_trig,0.);
+ spectra->SetTriggerEfficiency(effTrig,0.);
// Do the calculations
cout << " Doing the calculation... "<< endl;
- double delta_y = 1.0;
- double BR_c=1.0, BR_b_decay=1.0;
- spectra->ComputeHFPtSpectrum(delta_y,BR_c,BR_b_decay);
+ double deltaY = 1.0;
+ double branchingRatioC = 1.0;
+ double branchingRatioBintoFinalDecay = 1.0; // this is relative to the input theoretical prediction
+ spectra->ComputeHFPtSpectrum(deltaY,branchingRatioC,branchingRatioBintoFinalDecay);
cout << " ended the calculation, getting the histograms back " << endl;
//
// the corrected yield and cross-section
histoYieldCorr = (TH1D*)spectra->GetHistoFeedDownCorrectedSpectrum();
histoSigmaCorr = (TH1D*)spectra->GetHistoCrossSectionFromYieldSpectrum();
- histoYieldCorr_max = (TH1D*)spectra->GetHistoUpperLimitFeedDownCorrectedSpectrum();
- histoYieldCorr_min = (TH1D*)spectra->GetHistoLowerLimitFeedDownCorrectedSpectrum();
+ histoYieldCorrMax = (TH1D*)spectra->GetHistoUpperLimitFeedDownCorrectedSpectrum();
+ histoYieldCorrMin = (TH1D*)spectra->GetHistoLowerLimitFeedDownCorrectedSpectrum();
if (asym) {
gSigmaCorr = spectra->GetCrossSectionFromYieldSpectrum();
gYieldCorr = spectra->GetFeedDownCorrectedSpectrum();
}
if (option==1){
// fc histos
- histofc = (TH1D*)spectra->GetHistoFeedDownCorrection_fc();
- histofc_max = (TH1D*)spectra->GetHistoUpperLimitFeedDownCorrection_fc();
- histofc_min = (TH1D*)spectra->GetHistoLowerLimitFeedDownCorrection_fc();
- histofc_max->SetNameTitle("hfc_max","max fc correction factor");
- histofc_min->SetNameTitle("histofc_min","min fc correction factor");
+ histofc = (TH1D*)spectra->GetHistoFeedDownCorrectionFc();
+ histofcMax = (TH1D*)spectra->GetHistoUpperLimitFeedDownCorrectionFc();
+ histofcMin = (TH1D*)spectra->GetHistoLowerLimitFeedDownCorrectionFc();
+ histofcMax->SetNameTitle("hfcMax","max fc correction factor");
+ histofcMin->SetNameTitle("histofcMin","min fc correction factor");
if (asym) {
- gFc = spectra->GetFeedDownCorrection_fc();
+ gFc = spectra->GetFeedDownCorrectionFc();
gFc->SetNameTitle("gFc","gFc");
gYieldCorr->SetNameTitle("gYieldCorr","gYieldCorr (by fc)");
gSigmaCorr->SetNameTitle("gSigmaCorr","gSigmaCorr (by fc)");
if (option==1) {
TCanvas * cfc = new TCanvas("cfc","Fc");
- histofc_max->Draw("c");
+ histofcMax->Draw("c");
histofc->Draw("csame");
- histofc_min->Draw("csame");
+ histofcMin->Draw("csame");
cfc->Update();
if (asym) {
- TH2F *histofc_draw= new TH2F("histofc_draw","histofc (for drawing)",100,0,33.25,100,0.01,1.25);
- histofc_draw->SetStats(0);
- histofc_draw->GetXaxis()->SetTitle("p_{T} [GeV]");
- histofc_draw ->GetXaxis()->SetTitleSize(0.05);
- histofc_draw->GetXaxis()->SetTitleOffset(0.95);
- histofc_draw->GetYaxis()->SetTitle(" fc ");
- histofc_draw->GetYaxis()->SetTitleSize(0.05);
- TCanvas *cfc_asym = new TCanvas("cfc_asym","Asymmetric fc (TGraphAsymmErr)");
+ TH2F *histofcDraw= new TH2F("histofcDraw","histofc (for drawing)",100,0,33.25,100,0.01,1.25);
+ histofcDraw->SetStats(0);
+ histofcDraw->GetXaxis()->SetTitle("p_{T} [GeV]");
+ histofcDraw ->GetXaxis()->SetTitleSize(0.05);
+ histofcDraw->GetXaxis()->SetTitleOffset(0.95);
+ histofcDraw->GetYaxis()->SetTitle(" fc ");
+ histofcDraw->GetYaxis()->SetTitleSize(0.05);
+ TCanvas *cfcAsym = new TCanvas("cfcAsym","Asymmetric fc (TGraphAsymmErr)");
gFc->SetFillStyle(3001);
gFc->SetLineWidth(3);
gFc->SetMarkerStyle(20);
gFc->SetFillColor(3);
- histofc_draw->Draw();
+ histofcDraw->Draw();
gFc->Draw("3Csame");
gFc->Draw("Xsame");
- cfc_asym->Update();
+ cfcAsym->Update();
}
}
if (asym) {
- TH2F *histo_draw = new TH2F("histo_draw","histo (for drawing)",100,0,33.25,100,50.,1e7);
+ TH2F *histoDraw = new TH2F("histoDraw","histo (for drawing)",100,0,33.25,100,50.,1e7);
float max = 1.1*gYieldCorr->GetMaximum();
- histo_draw->SetAxisRange(0.1,max,"Y");
- histo_draw->SetStats(0);
- histo_draw->GetXaxis()->SetTitle("p_{T} [GeV]");
- histo_draw->GetXaxis()->SetTitleSize(0.05);
- histo_draw->GetXaxis()->SetTitleOffset(0.95);
- histo_draw->GetYaxis()->SetTitle("#frac{d#N}{dp_{T}} |_{|y|<1} [L & trigger uncorr]");
- histo_draw->GetYaxis()->SetTitleSize(0.05);
- TCanvas * cyield_asym = new TCanvas("cyield_asym","Asymmetric corrected yield (TGraphAsymmErr)");
+ histoDraw->SetAxisRange(0.1,max,"Y");
+ histoDraw->SetStats(0);
+ histoDraw->GetXaxis()->SetTitle("p_{T} [GeV]");
+ histoDraw->GetXaxis()->SetTitleSize(0.05);
+ histoDraw->GetXaxis()->SetTitleOffset(0.95);
+ histoDraw->GetYaxis()->SetTitle("#frac{d#N}{dp_{T}} |_{|y|<1} [L & trigger uncorr]");
+ histoDraw->GetYaxis()->SetTitleSize(0.05);
+ TCanvas * cyieldAsym = new TCanvas("cyieldAsym","Asymmetric corrected yield (TGraphAsymmErr)");
gYieldCorr->SetFillStyle(3001);
gYieldCorr->SetLineWidth(3);
gYieldCorr->SetMarkerStyle(20);
gYieldCorr->SetFillColor(3);
- histo_draw->Draw();
+ histoDraw->Draw();
gYieldCorr->Draw("3Csame");
gYieldCorr->Draw("Xsame");
- cyield_asym->SetLogy();
- cyield_asym->Update();
+ cyieldAsym->SetLogy();
+ cyieldAsym->Update();
- TH2F *histo2_draw = new TH2F("histo2_draw","histo2 (for drawing)",100,0,33.25,100,50.,1e9);
+ TH2F *histo2Draw = new TH2F("histo2Draw","histo2 (for drawing)",100,0,33.25,100,50.,1e9);
max = 1.1*gSigmaCorr->GetMaximum();
- histo2_draw->SetAxisRange(0.1,max,"Y");
- histo2_draw->SetStats(0);
- histo2_draw->GetXaxis()->SetTitle("p_{T} [GeV]");
- histo2_draw->GetXaxis()->SetTitleSize(0.05);
- histo2_draw->GetXaxis()->SetTitleOffset(0.95);
- histo2_draw->GetYaxis()->SetTitle("#frac{1}{BR} #times #frac{d#sigma}{dp_{T}} |_{|y|<1}");
- histo2_draw->GetYaxis()->SetTitleSize(0.05);
- TCanvas * csigma_asym = new TCanvas("csigma_asym","Asymmetric corrected sigma (TGraphAsymmErr)");
+ histo2Draw->SetAxisRange(0.1,max,"Y");
+ histo2Draw->SetStats(0);
+ histo2Draw->GetXaxis()->SetTitle("p_{T} [GeV]");
+ histo2Draw->GetXaxis()->SetTitleSize(0.05);
+ histo2Draw->GetXaxis()->SetTitleOffset(0.95);
+ histo2Draw->GetYaxis()->SetTitle("#frac{1}{BR} #times #frac{d#sigma}{dp_{T}} |_{|y|<1}");
+ histo2Draw->GetYaxis()->SetTitleSize(0.05);
+ TCanvas * csigmaAsym = new TCanvas("csigmaAsym","Asymmetric corrected sigma (TGraphAsymmErr)");
gSigmaCorr->SetFillStyle(3001);
gSigmaCorr->SetLineWidth(3);
gSigmaCorr->SetMarkerStyle(21);
gSigmaCorr->SetFillColor(4);
- histo2_draw->Draw();
+ histo2Draw->Draw();
gSigmaCorr->Draw("3Csame");
gSigmaCorr->Draw("Xsame");
- csigma_asym->SetLogy();
- csigma_asym->Update();
+ csigmaAsym->SetLogy();
+ csigmaAsym->Update();
}
out->cd();
//
hDirectMCpt->Write(); hFeedDownMCpt->Write();
- hDirectMCpt_max->Write(); hDirectMCpt_min->Write();
- hFeedDownMCpt_max->Write(); hFeedDownMCpt_min->Write();
+ hDirectMCptMax->Write(); hDirectMCptMin->Write();
+ hFeedDownMCptMax->Write(); hFeedDownMCptMin->Write();
hDirectEffpt->Write(); hFeedDownEffpt->Write();
hRECpt->Write();
//
histoYieldCorr->Write();
- histoYieldCorr_max->Write(); histoYieldCorr_min->Write();
+ histoYieldCorrMax->Write(); histoYieldCorrMin->Write();
histoSigmaCorr->Write();
if(asym){
if(option==1){
histofc->Write();
- histofc_max->Write(); histofc_min->Write();
+ histofcMax->Write(); histofcMin->Write();
if(asym) gFc->Write();
}