From 53f63c7512fdb6864fdb6d02c6ce4f5fd29f51e4 Mon Sep 17 00:00:00 2001 From: dainese Date: Sun, 19 Sep 2010 20:28:38 +0000 Subject: [PATCH] Update (Zaida) --- PWG3/vertexingHF/macros/HFPtSpectrum.C | 155 +++++++++++++------------ 1 file changed, 78 insertions(+), 77 deletions(-) diff --git a/PWG3/vertexingHF/macros/HFPtSpectrum.C b/PWG3/vertexingHF/macros/HFPtSpectrum.C index b8f309f7869..660a4a4ac7d 100644 --- a/PWG3/vertexingHF/macros/HFPtSpectrum.C +++ b/PWG3/vertexingHF/macros/HFPtSpectrum.C @@ -29,7 +29,7 @@ void HFPtSpectrum(const char *mcfilename="FeedDownCorrectionMC.root", 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; @@ -54,10 +54,10 @@ void HFPtSpectrum(const char *mcfilename="FeedDownCorrectionMC.root", // 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 @@ -69,26 +69,26 @@ void HFPtSpectrum(const char *mcfilename="FeedDownCorrectionMC.root", 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"); @@ -109,15 +109,15 @@ void HFPtSpectrum(const char *mcfilename="FeedDownCorrectionMC.root", 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(); @@ -143,22 +143,23 @@ void HFPtSpectrum(const char *mcfilename="FeedDownCorrectionMC.root", // 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; // @@ -167,8 +168,8 @@ void HFPtSpectrum(const char *mcfilename="FeedDownCorrectionMC.root", // 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(); @@ -180,13 +181,13 @@ void HFPtSpectrum(const char *mcfilename="FeedDownCorrectionMC.root", } 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)"); @@ -206,28 +207,28 @@ void HFPtSpectrum(const char *mcfilename="FeedDownCorrectionMC.root", 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(); } } @@ -253,45 +254,45 @@ void HFPtSpectrum(const char *mcfilename="FeedDownCorrectionMC.root", 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(); } @@ -302,13 +303,13 @@ void HFPtSpectrum(const char *mcfilename="FeedDownCorrectionMC.root", 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){ @@ -318,7 +319,7 @@ void HFPtSpectrum(const char *mcfilename="FeedDownCorrectionMC.root", if(option==1){ histofc->Write(); - histofc_max->Write(); histofc_min->Write(); + histofcMax->Write(); histofcMin->Write(); if(asym) gFc->Write(); } -- 2.43.0