#include "myHist.C" #include #include inline TH1D* ScaleSecondToFirst( TH1D* hDt, TH1D* hMC, char* hname ) { int b2 = hDt->GetNbinsX() ; int b1 = hDt->GetNbinsX()/2 + 1 ; float scalf = hDt->Integral(b1,b2) / hMC->Integral(b1,b2) ; cout << scalf << endl ; hMC->SetNormFactor( hMC->Integral(0,b2) * scalf ) ; hDt->SetLineColor(36) ; hDt->SetMarkerSize(0.6) ; hDt->SetMarkerColor(36) ; hMC->SetLineColor(46) ; // zone(1,2); hDt->DrawCopy() ; hMC->DrawCopy("samehist") ; TH1D* Rat = hDt->Clone( hname ) ; Rat->Divide(hDt,hMC,1.,scalf) ; NewC->cd(2) ; Rat->SetMaximum( Rat->GetMaximum()*1.05 ) ; Rat->SetMinimum( Rat->GetMinimum()*0.95) ; // Rat->Draw() ; return Rat ; } void PlotQH() { gStyle->SetOptStat(0) ; gStyle->SetOptFit(1) ; TH1D* qmDt = (TH1D*) GetFromFile("qmm","OutputChainData.root","qmDt") ; TH1D* qpDt = (TH1D*) GetFromFile("qpp","OutputChainData.root","qpDt"); TH1D* qpmDt = (TH1D*) GetFromFile("qmix","OutputChainData.root","qpmDt") ; TH1D* qpinvDt = (TH1D*) GetFromFile("qinvpp","OutputChainData.root","qpinvDt") ; TH1D* qminvDt = (TH1D*) GetFromFile("qinvmm","OutputChainData.root","qminvDt") ; TH1D* qpMC = (TH1D*) GetFromFile("qpp","OutputChainMC.root","qmMC") ; TH1D* qmMC = (TH1D*) GetFromFile("qmm","OutputChainMC.root","qmMC") ; TH1D* qpmMC =(TH1D*) GetFromFile("qmix","OutputChainMC.root","qpmMC") ; TH1D* qpinvMC = (TH1D*) GetFromFile("qinvpp","OutputChainMC.root","qpinvMC") ; TH1D* qminvMC = (TH1D*) GetFromFile("qinvmm","OutputChainMC.root","qminvMC") ; // normalize MC to Data zone(2,2) ; TH1D* rp = ScaleSecondToFirst( qpDt, qpMC , "rp" ) ; NewC->cd(2) ; TH1D* rm = ScaleSecondToFirst( qmDt, qmMC , "rm" ) ; NewC->cd(3) ; //TH1D* rmix = ScaleSecondToFirst( qpmDt, qpmMC ) ; NewC->Print("q_pm.gif") ; TH1D* rminv = ScaleSecondToFirst( qminvDt, qminvMC , "rminv" ) ; NewC->cd(4) ; TH1D* rpinv = ScaleSecondToFirst( qpinvDt, qpinvMC , "rpinv" ) ; NewC->Print("QDataVsMC.gif") ; zone(1,2) ; rp->Fit( "pol0", "", "", 0.75 , 4. ) ; rm->Fit( "pol0", "", "", 0.75 , 4. ) ; zone(1,2) ; rp->DrawCopy() ; rpinv->SetLineColor(46) ; rpinv->SetMarkerColor(46) ; rpinv->DrawCopy("same" ) ; NewC->cd(2) ; rm->DrawCopy() ; rminv->SetLineColor(46) ; rminv->SetMarkerColor(46) ; rminv->DrawCopy("same" ) ; NewC->Print("QDataOverMC.gif") ; zone(1,1) ; rp->DrawCopy() ; rm->SetLineColor(46) ; rm->SetMarkerColor(46) ; rm->DrawCopy("same" ) ; NewC->Print("QDataOverMCPlusOverMinus.gif") ; }