From 76ead4482b759d5e6aa55abb66d03eb62932ff5e Mon Sep 17 00:00:00 2001
From: Dag Gillberg <dag.gillberg@cern.ch>
Date: Sun, 5 Mar 2017 02:33:20 +0000
Subject: [PATCH] Adding a few more histograms

---
 Root/HiggsWeightTool.cxx |  4 ++--
 util/HiggsWeightTest.cxx | 19 ++++++++++++++++++-
 2 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/Root/HiggsWeightTool.cxx b/Root/HiggsWeightTool.cxx
index da5bb9b5e969..9a441eb57472 100644
--- a/Root/HiggsWeightTool.cxx
+++ b/Root/HiggsWeightTool.cxx
@@ -235,7 +235,7 @@ namespace xAOD {
 
     // NNLOPS QCD uncertainties
     double nnlo=getWeight(weights,m_nnlopsNom);
-    if (!m_nnlopsNom) nnlo=w_nom; // fix of rare NNLOPS
+    if (!m_nnlopsNom) nnlo=w_nom; // fix for rare NNLOPS samples
 
     for (auto idx:m_qcd_nnlops) hw.qcd_nnlops.push_back(getWeight(weights,idx)*w_nom/nnlo);
 
@@ -264,7 +264,7 @@ namespace xAOD {
     // special catch
     if (m_bminlo||m_qcd_nnlops.size()) {// NNLOPS!!
       hw.nnpdf30_nnlo = hw.weight0*k;
-      hw.pdf4lhc_nnlo = w_nom; // usually close, but can be 4% different...
+      //      hw.pdf4lhc_nnlo = w_nom; // usually close, but can be 4% different...
       // printf("  %.4f = %.4f\n",hw.nnpdf30_nnlo,nnlo); // should be the same! // works!
       // printf("PDF4LHC NLO * k_NNLO / NNLO: %.4f\n",getWeight(weights,m_pdf4lhc_nnlo)*k/w_nom);
     }
diff --git a/util/HiggsWeightTest.cxx b/util/HiggsWeightTest.cxx
index 915dc1499cc5..bf503afc4b5b 100644
--- a/util/HiggsWeightTest.cxx
+++ b/util/HiggsWeightTest.cxx
@@ -95,7 +95,7 @@ int main( int argc, char* argv[] ) {
    HistV h_STXS_nnlops_qcd2 = makeHistos(2,"STXS_nnlo_qcd",Nbins,min,max,tit); // NNLO and Powheg vars for NNLOPS
    HistV h_STXS_wg1qcd      = makeHistos(6,"STXS_wg1qcd",Nbins,min,max,tit); // WG1 propsed scheme for ggF
 
-   Nbins=60; min=-3; max=3; tit=";#it{y_{H}}";
+   Nbins=80; min=-4; max=4; tit=";#it{y_{H}}";
    TH1F *h_yH = new TH1F("yH",tit,Nbins,min,max);
    HistV h_yH_pdf4lhc = makeHistos(30,"yH_pdf4lhc",Nbins,min,max,tit);
    HistV h_yH_nnpdf30 = makeHistos(100,"yH_nnpdf30",Nbins,min,max,tit);
@@ -105,6 +105,7 @@ int main( int argc, char* argv[] ) {
    HistV h_yH_nnlops_qcd  = makeHistos(26,"yH_nnlops_qcd",Nbins,min,max,tit); // NNLOPS internal QCD vars
    HistV h_yH_nnlops_qcd2 = makeHistos(2,"yH_nnlo_qcd",Nbins,min,max,tit); // NNLO and Powheg vars for NNLOPS
    HistV h_yH_wg1qcd      = makeHistos(6,"yH_wg1qcd",Nbins,min,max,tit); // WG1 propsed scheme for ggF
+   HistV h_yH_other       = makeHistos(8,"yH_other",Nbins,min,max,tit); // WG1 propsed scheme for ggF
    
    // Initialise the application:
    RETURN_CHECK( APP_NAME, xAOD::Init( APP_NAME ) );
@@ -209,6 +210,9 @@ int main( int argc, char* argv[] ) {
        //           without considering the NNLO correction. I.e. don't use for NNLOPS.
        //           Don't treat all these as NPs!! Take envelope. Or perhaps carefully chose 1 or 2 of them as NPs.
        fillHistos(h_pTH_qcd,h.Pt(),hw.qcd);
+       fillHistos(h_yH_qcd,h.Rapidity(),hw.qcd);
+       fillHistos(h_Njets_qcd,HTXS_Njets30,hw.qcd);
+       fillHistos(h_STXS_qcd,HTXS_index,hw.qcd);
 
        // QCD variations for (NNLOPS) ggF
        //
@@ -216,17 +220,30 @@ int main( int argc, char* argv[] ) {
        // This should give an NNLO accurate normalization uncertainty (8-11%)
        //     Note: The NNLOPS paper takes the envelope of all these variations 
        fillHistos(h_pTH_nnlops_qcd,h.Pt(),hw.qcd_nnlops);
+       fillHistos(h_yH_nnlops_qcd,h.Rapidity(),hw.qcd_nnlops);
+       fillHistos(h_Njets_nnlops_qcd,HTXS_Njets30,hw.qcd_nnlops);
+       fillHistos(h_STXS_nnlops_qcd,HTXS_index,hw.qcd_nnlops);
 
        // 3.c Selecting two of the 26 as NPs (i.e. uncertainty sources to be treated as uncorrelated)
        //     Taking the NNLO uncertainty (nnloDn-PowNomNom) as one source and the extreme Powheg varation 
        //     (nnloNom-PowDnDn) as an uncorrelation source (similar to >=1 in ST: affects high pT)
        NumV nnlops_2np_qcd={hw.qcd_nnlops_nnlo,hw.qcd_nnlops_pow};
        fillHistos(h_pTH_nnlops_qcd2,h.Pt(),nnlops_2np_qcd);
+       fillHistos(h_yH_nnlops_qcd2,h.Rapidity(),nnlops_2np_qcd);
+       fillHistos(h_Njets_nnlops_qcd2,HTXS_Njets30,nnlops_2np_qcd);
+       fillHistos(h_STXS_nnlops_qcd2,HTXS_index,nnlops_2np_qcd);
 
        // 3.d WG1 propsed uncertainty scheme. Recommended.
        NumV wg1_qcd={hw.qcd_wg1_mu,hw.qcd_wg1_res,hw.qcd_wg1_mig01,hw.qcd_wg1_mig12,hw.qcd_wg1_pTH,hw.qcd_wg1_qm};
        fillHistos(h_pTH_wg1qcd,h.Pt(),wg1_qcd);
+       fillHistos(h_yH_wg1qcd,h.Rapidity(),wg1_qcd);
+       fillHistos(h_Njets_wg1qcd,HTXS_Njets30,wg1_qcd);
+       fillHistos(h_STXS_wg1qcd,HTXS_index,wg1_qcd);
 
+       // 4. Other weights
+       fillHistos(h_yH_other,h.Rapidity(),
+		  {hw.weight0,hw.nnpdf30_nnlo,hw.pdf4lhc_nnlo,hw.nnpdf30_nlo,hw.pdf4lhc_nlo,
+		      hw.mmht2014nlo,hw.ct14nlo,hw.ct10nlo});
 
        // Print stuff to the screen for the first event in each file
        if ( entry == 0 ) {
-- 
GitLab