In [1]:
import ROOT
import re
import numpy as np
#ROOT.enableJSVis()


Welcome to JupyROOT 6.12/06

In [2]:
file = ROOT.TFile.Open('../../McCorrections/data/2017/pu_mc_distr_per_sample.root', 'READ')

In [3]:
histograms = []

for key in file.GetListOfKeys():
    h = key.ReadObj()
    if h.ClassName() == 'TH1D'and not re.match('.*_norm_.*', h.GetName()):
        histograms.append(file.Get(h.GetName()))
hist_names = [h.GetName() for h in histograms]

In [4]:
ROOT.gErrorIgnoreLevel = ROOT.kWarning

In [5]:
# Creates the matrix with all the values of the Chi2Test for all samples combination

# h = len(histograms)
# Chi2_Matrix = np.zeros((h, h))
# for m in range(h):
#     for n in range(m, h):
#         Chi2_Matrix[m, n] = histograms[m].Chi2Test(histograms[n], "UU")
#         Chi2_Matrix[n, m] = Chi2_Matrix[m, n]
# print(Chi2_Matrix)

In [6]:
# Creates a list in which for each couple of samples states the value of their Chi2Test

# for m in range(h):
#     counted = False
#     for n in range(m+1, h):
#         if Chi2_Matrix[m][n] > 0.05:     
#             print (m,histograms[m].GetName(), '->',histograms[n].GetName(), '=' ,Chi2_Matrix[m][n])
#             if not counted:
#                 matched += 1
#                 counted = True

In [7]:
histograms = sorted(histograms, key=lambda h: h.GetEntries(), reverse=True)

In [8]:
group_id = 0
while len(histograms) > 0:
    ref_hist = histograms[0]
    group_str = '{}'.format(ref_hist.GetName())
    hist_to_rm = [ ref_hist ]
    for hist in histograms[1:]:
        if ref_hist.Chi2Test(hist, 'UU') > 0.05:
            group_str += ' {}'.format(hist.GetName())
            hist_to_rm.append(hist)    
    for hist in hist_to_rm:
        histograms.remove(hist)
    group_id += 1
    print(group_str)


n_pu_mc_DYJetsToLL_M-50_ext1_nlo
n_pu_mc_TTJets
n_pu_mc_ZZTo4L_ext1
n_pu_mc_TTToHadronic_TuneCP5_PSweights
n_pu_mc_TTToSemiLeptonic_TuneCP5_PSweights
n_pu_mc_TTTo2L2Nu_TuneCP5_PSweights
n_pu_mc_QCD_Pt_600to800_TuneCP5_13TeV_pythia8
n_pu_mc_QCD_Pt_300to470_TuneCP5_13TeV_pythia8
n_pu_mc_DYJetsToLL_M-50_ext1
n_pu_mc_DYJetsToLL_M-50
n_pu_mc_QCD_Pt-170to300_MuEnrichedPt5_TuneCP5_13TeV_pythia8
n_pu_mc_WJetsToLNu_ext1 n_pu_mc_QCD_Pt_800to1000_TuneCP5_13TeV_pythia8 n_pu_mc_QCD_Pt_800to1000_TuneCP5_13TeV_pythia8_ext1 n_pu_mc_ZZTo2L2Q n_pu_mc_QCD_Pt_120to170_TuneCP5_13TeV_pythia8 n_pu_mc_QCD_Pt_80to120_TuneCP5_13TeV_pythia8_ext1 n_pu_mc_QCD_Pt_470to600_TuneCP5_13TeV_pythia8 n_pu_mc_WZTo2L2Q n_pu_mc_WJetsToLNu_HT-2500ToInf n_pu_mc_WJetsToLNu_HT-600To800 n_pu_mc_WJetsToLNu_HT-200To400 n_pu_mc_WJetsToLNu_HT-800To1200 n_pu_mc_WJetsToLNu_HT-1200To2500 n_pu_mc_QCD_Pt_50to80_TuneCP5_13TeV_pythia8_ext1 n_pu_mc_QCD_Pt_15to30_TuneCP5_13TeV_pythia8_ext1 n_pu_mc_WZTo1L1Nu2Q n_pu_mc_QCD_Pt_1000to1400_TuneCP5_13TeV_pythia8_ext1 n_pu_mc_WJetsToLNu_HT-400To600 n_pu_mc_WJetsToLNu_HT-100To200 n_pu_mc_TTZToLLNuNu_M-10_TuneCP5_PSweights n_pu_mc_W2JetsToLNu n_pu_mc_ZHToTauTau_M125 n_pu_mc_ttHToNonbb_M125_ext1 n_pu_mc_WWTo2L2Nu_ext1 n_pu_mc_WWTo4Q_ext1 n_pu_mc_WZTo3LNu_3Jets_MLL-50 n_pu_mc_WZTo3LNu_2Jets_MLL-50 n_pu_mc_WZTo3LNu_1Jets_MLL-50 n_pu_mc_WZTo3LNu_0Jets_MLL-50 n_pu_mc_VBFHHTo2B2Tau_CV_1_C2V_2_C3_1 n_pu_mc_VBFToRadionToHHTo2B2Tau_M-280_narrow n_pu_mc_VBFHHTo2B2Tau_CV_1_C2V_1_C3_2 n_pu_mc_VBFToBulkGravitonToHHTo2B2Tau_M-260_narrow n_pu_mc_GluGluToHHTo2B2Tau_node_12_correctedcfg n_pu_mc_GluGluToHHTo2B2Tau_node_3_correctedcfg n_pu_mc_GluGluToHHTo2B2Tau_node_2_correctedcfg n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-270_narrow_correctedcfg n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-250_narrow_correctedcfg n_pu_mc_GluGluToBulkGravitonToHHTo2B2Tau_M-270_narrow_correctedcfg n_pu_mc_GluGluToBulkGravitonToHHTo2B2Tau_M-260_narrow_correctedcfg n_pu_mc_VBFToBulkGravitonToHHTo2B2Tau_M-250_narrow n_pu_mc_VBFToRadionToHHTo2B2Tau_M-270_narrow n_pu_mc_GluGluToBulkGravitonToHHTo2B2Tau_M-280_narrow_correctedcfg n_pu_mc_GluGluToHHTo2B2Tau_node_7_correctedcfg n_pu_mc_VBFHHTo2B2Tau_CV_1_C2V_1_C3_0 n_pu_mc_VBFToBulkGravitonToHHTo2B2Tau_M-280_narrow n_pu_mc_GluGluToHHTo2B2Tau_node_9_correctedcfg n_pu_mc_VBFToBulkGravitonToHHTo2B2Tau_M-270_narrow n_pu_mc_GluGluToBulkGravitonToHHTo2B2Tau_M-250_narrow_correctedcfg n_pu_mc_GluGluToHHTo2B2Tau_node_SM_correctedcfg n_pu_mc_VBFHHTo2B2Tau_CV_1_5_C2V_1_C3_1 n_pu_mc_VBFToRadionToHHTo2B2Tau_M-250_narrow n_pu_mc_VBFHHTo2B2Tau_CV_1_C2V_1_C3_1 n_pu_mc_GluGluToBulkGravitonToHHTo2B2Tau_M-350_narrow_correctedcfg n_pu_mc_GluGluToBulkGravitonToHHTo2B2Tau_M-400_narrow_correctedcfg n_pu_mc_GluGluToBulkGravitonToHHTo2B2Tau_M-450_narrow_correctedcfg n_pu_mc_VBFToRadionToHHTo2B2Tau_M-550_narrow n_pu_mc_VBFToRadionToHHTo2B2Tau_M-350_narrow n_pu_mc_VBFToBulkGravitonToHHTo2B2Tau_M-500_narrow n_pu_mc_VBFToRadionToHHTo2B2Tau_M-450_narrow n_pu_mc_VBFToBulkGravitonToHHTo2B2Tau_M-400_narrow n_pu_mc_VBFToBulkGravitonToHHTo2B2Tau_M-300_narrow n_pu_mc_VBFToRadionToHHTo2B2Tau_M-500_narrow n_pu_mc_VBFToBulkGravitonToHHTo2B2Tau_M-450_narrow n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-300_narrow_correctedcfg n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-450_narrow_correctedcfg n_pu_mc_VBFToBulkGravitonToHHTo2B2Tau_M-320_narrow n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-350_narrow_correctedcfg n_pu_mc_VBFToRadionToHHTo2B2Tau_M-300_narrow n_pu_mc_VBFToRadionToHHTo2B2Tau_M-600_narrow n_pu_mc_VBFToRadionToHHTo2B2Tau_M-650_narrow n_pu_mc_GluGluToBulkGravitonToHHTo2B2Tau_M-550_narrow_correctedcfg n_pu_mc_VBFToRadionToHHTo2B2Tau_M-700_narrow n_pu_mc_VBFToRadionToHHTo2B2Tau_M-850_narrow n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-700_narrow_correctedcfg n_pu_mc_VBFToBulkGravitonToHHTo2B2Tau_M-600_narrow n_pu_mc_VBFToBulkGravitonToHHTo2B2Tau_M-700_narrow n_pu_mc_VBFToBulkGravitonToHHTo2B2Tau_M-750_narrow n_pu_mc_VBFToRadionToHHTo2B2Tau_M-800_narrow n_pu_mc_VBFToBulkGravitonToHHTo2B2Tau_M-650_narrow n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-750_narrow_correctedcfg n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-850_narrow_correctedcfg n_pu_mc_GluGluToBulkGravitonToHHTo2B2Tau_M-800_narrow_correctedcfg n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-650_narrow_correctedcfg n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-800_narrow_correctedcfg n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-500_narrow_correctedcfg n_pu_mc_GluGluToBulkGravitonToHHTo2B2Tau_M-650_narrow_correctedcfg n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-600_narrow_correctedcfg n_pu_mc_GluGluToBulkGravitonToHHTo2B2Tau_M-750_narrow_correctedcfg n_pu_mc_GluGluToBulkGravitonToHHTo2B2Tau_M-600_narrow_correctedcfg n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-3000_narrow_correctedcfg n_pu_mc_VBFToRadionToHHTo2B2Tau_M-400_narrow n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-600_narrow n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-550_narrow n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-650_narrow n_pu_mc_VBFToRadionToHHTo2B2Tau_M-1250_narrow n_pu_mc_VBFToRadionToHHTo2B2Tau_M-1000_narrow n_pu_mc_VBFToRadionToHHTo2B2Tau_M-1500_narrow n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-1500_narrow_correctedcfg n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-1250_narrow_correctedcfg n_pu_mc_VBFToRadionToHHTo2B2Tau_M-900_narrow n_pu_mc_VBFToRadionToHHTo2B2Tau_M-3000_narrow n_pu_mc_VBFToBulkGravitonToHHTo2B2Tau_M-1750_narrow n_pu_mc_VBFToBulkGravitonToHHTo2B2Tau_M-900_narrow n_pu_mc_VBFToRadionToHHTo2B2Tau_M-2000_narrow n_pu_mc_VBFToRadionToHHTo2B2Tau_M-750_narrow n_pu_mc_VBFToRadionToHHTo2B2Tau_M-1750_narrow n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-500_narrow n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-1750_narrow_correctedcfg n_pu_mc_VBFToBulkGravitonToHHTo2B2Tau_M-2000_narrow n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-2000_narrow_correctedcfg
n_pu_mc_TTToHadronic
n_pu_mc_TTToSemiLeptonic
n_pu_mc_DY1JetsToLL_M-50_ext1
n_pu_mc_QCD_Pt-30to50_MuEnrichedPt5_TuneCP5_13TeV_pythia8
n_pu_mc_QCD_Pt_170to300_TuneCP5_13TeV_pythia8
n_pu_mc_QCD_Pt_80to120_TuneCP5_13TeV_pythia8
n_pu_mc_QCD_Pt-20to30_MuEnrichedPt5_TuneCP5_13TeV_pythia8
n_pu_mc_DYJetsToLL_M-50_nlo
n_pu_mc_QCD_Pt-470to600_MuEnrichedPt5_TuneCP5_13TeV_pythia8
n_pu_mc_QCD_Pt-80to120_MuEnrichedPt5_TuneCP5_13TeV_pythia8
n_pu_mc_ttHToTauTau_M125
n_pu_mc_QCD_Pt-120to170_MuEnrichedPt5_TuneCP5_13TeV_pythia8
n_pu_mc_QCD_Pt-50to80_MuEnrichedPt5_TuneCP5_13TeV_pythia8
n_pu_mc_QCD_Pt_15to30_TuneCP5_13TeV_pythia8
n_pu_mc_QCD_Pt_30to50_TuneCP5_13TeV_pythia8
n_pu_mc_W3JetsToLNu
n_pu_mc_QCD_Pt_1000to1400_TuneCP5_13TeV_pythia8
n_pu_mc_QCD_Pt_50to80_TuneCP5_13TeV_pythia8
n_pu_mc_W4JetsToLNu
n_pu_mc_WZTo3LNu
n_pu_mc_DYJetsToLL_M-50_HT-200to400
n_pu_mc_DYJetsToLL_M-50_HT-100to200
n_pu_mc_WWToLNuQQ_NNPDF31_ext1
n_pu_mc_ttHJetTobb_M125_TuneCP5
n_pu_mc_ttH_M125
n_pu_mc_DY2JetsToLL_M-50_ext1
n_pu_mc_ttHJetToNonbb_M125_TuneCP5
n_pu_mc_DYJetsToLL_M-50_HT-400to600
n_pu_mc_TTTo2L2Nu
n_pu_mc_WWToLNuQQ_NNPDF31
n_pu_mc_DYJetsToLL_M-50_HT-600to800
n_pu_mc_ttHTobb_M125
n_pu_mc_ST_tW_antitop_5f_inclusiveDecays_TuneCP5_PSweights
n_pu_mc_WW_TuneCP5
n_pu_mc_ST_tW_antitop_5f_inclusiveDecays
n_pu_mc_ttHToNonbb_M125
n_pu_mc_ST_tW_top_5f_inclusiveDecays_TuneCP5_PSweights
n_pu_mc_ST_tW_top_5f_inclusiveDecays
n_pu_mc_TTZToLLNuNu_M-10_TuneCP5
n_pu_mc_ZZTo4L
n_pu_mc_ST_t-channel_top_4f_inclusiveDecays_TuneCP5V2-madspin-pythia8
n_pu_mc_QCD_Pt-15to20_MuEnrichedPt5_TuneCP5_13TeV_pythia8
n_pu_mc_QCD_Pt_1400to1800_TuneCP5_13TeV_pythia8
n_pu_mc_WWTo1L1Nu2Q
n_pu_mc_TTWJetsToLNu_TuneCP5_PSweights
n_pu_mc_TTWJetsToLNu_TuneCP5
n_pu_mc_ZH_HToBB_ZToLL_M125
n_pu_mc_EWKWMinus2Jets_WToLNu_M-50_TuneCP5
n_pu_mc_EWKWPlus2Jets_WToLNu_M-50_TuneCP5
n_pu_mc_DY4JetsToLL_M-50
n_pu_mc_WplusHToTauTau_M125
n_pu_mc_DYJetsToLL_M-50_HT-100to200_ext1
n_pu_mc_ST_t-channel_antitop_4f_inclusiveDecays_TuneCP5V2-madspin-pythia8
n_pu_mc_WZ_TuneCP5
n_pu_mc_WminusHToTauTau_M125
n_pu_mc_DYJetsToLL_M-50_HT-800to1200
n_pu_mc_ggZH_HToBB_ZToNuNu_M125
n_pu_mc_VBFHToTauTau_M125
n_pu_mc_EWKZ2Jets_ZToNuNu_TuneCP5
n_pu_mc_QCD_Pt_1800to2400_TuneCP5_13TeV_pythia8
n_pu_mc_GluGluHToTauTau_M125
n_pu_mc_ggZH_HToBB_ZToLL_M125
n_pu_mc_DYBBJetsToLL_M-50
n_pu_mc_WWTo4Q_NNPDF31
n_pu_mc_ZZ_TuneCP5
n_pu_mc_QCD_Pt_2400to3200_TuneCP5_13TeV_pythia8
n_pu_mc_DYJetsToLL_M-50_HT-200to400_ext1
n_pu_mc_DY3JetsToLL_M-50_ext1
n_pu_mc_DYJetsToLL_M-50_HT-400to600_ext1
n_pu_mc_WZG_TuneCP5_amcatnloFXFX n_pu_mc_WZG_TuneCP5
n_pu_mc_EWKZ2Jets_ZToLL_M-50_TuneCP5
n_pu_mc_TTWJetsToQQ_TuneCP5
n_pu_mc_QCD_Pt_3200toInf_TuneCP5_13TeV_pythia8
n_pu_mc_TTZToQQ_TuneCP5
n_pu_mc_DYJetsToLL_M-50_HT-1200to2500
n_pu_mc_SUSYGluGluToHToTauTau_M-120_TuneCP5
n_pu_mc_SUSYGluGluToHToTauTau_M-130_TuneCP5
n_pu_mc_SUSYGluGluToHToTauTau_M-100_TuneCP5
n_pu_mc_SUSYGluGluToHToTauTau_M-110_TuneCP5
n_pu_mc_SUSYGluGluToHToTauTau_M-140_TuneCP5
n_pu_mc_SUSYGluGluToHToTauTau_M-180_TuneCP5
n_pu_mc_SUSYGluGluToHToTauTau_M-90_TuneCP5
n_pu_mc_ZH_HToBB_ZToQQ_M125
n_pu_mc_SUSYGluGluToHToTauTau_M-80_TuneCP5
n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-280_narrow_correctedcfg n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-320_narrow_correctedcfg n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-2500_narrow_correctedcfg
n_pu_mc_DYJetsToLL_M-50_HT-2500toInf
n_pu_mc_GluGluToHHTo2B2Tau_node_4_correctedcfg n_pu_mc_VBFToBulkGravitonToHHTo2B2Tau_M-350_narrow
n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-400_narrow_correctedcfg n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-1000_narrow_correctedcfg
n_pu_mc_WZZ_TuneCP5
n_pu_mc_WWZ_4F_TuneCP5
n_pu_mc_ZZZ_TuneCP5
n_pu_mc_TTZToLL_M-1to10_TuneCP5
n_pu_mc_ZH_HToBB_ZToLL_M130
n_pu_mc_ZH_HToBB_ZToLL_M120
n_pu_mc_WWW_4F_TuneCP5
n_pu_mc_SUSYGluGluToHToTauTau_M-350_TuneCP5
n_pu_mc_TTWW_TuneCP5_ext1
n_pu_mc_TTWZ_TuneCP5
n_pu_mc_SUSYGluGluToHToTauTau_M-1500_TuneCP5
n_pu_mc_SUSYGluGluToHToTauTau_M-200_TuneCP5
n_pu_mc_SUSYGluGluToHToTauTau_M-1200_TuneCP5
n_pu_mc_SUSYGluGluToHToTauTau_M-1600_TuneCP5
n_pu_mc_SUSYGluGluToHToTauTau_M-1800_TuneCP5
n_pu_mc_SUSYGluGluToHToTauTau_M-250_TuneCP5
n_pu_mc_SUSYGluGluToHToTauTau_M-3200_TuneCP5
n_pu_mc_SUSYGluGluToHToTauTau_M-800_TuneCP5
n_pu_mc_SUSYGluGluToHToTauTau_M-400_TuneCP5
n_pu_mc_TTZZ_TuneCP5
n_pu_mc_SUSYGluGluToHToTauTau_M-2600_TuneCP5
n_pu_mc_SUSYGluGluToHToTauTau_M-450_TuneCP5
n_pu_mc_SUSYGluGluToHToTauTau_M-1400_TuneCP5
n_pu_mc_SUSYGluGluToHToTauTau_M-900_TuneCP5
n_pu_mc_ZH_HToBB_ZToLL_M125_13TeV_powheg_herwigpp
n_pu_mc_SUSYGluGluToHToTauTau_M-2000_TuneCP5
n_pu_mc_SUSYGluGluToHToTauTau_M-600_TuneCP5
n_pu_mc_SUSYGluGluToHToTauTau_M-300_TuneCP5
n_pu_mc_SUSYGluGluToHToTauTau_M-2300_TuneCP5
n_pu_mc_SUSYGluGluToHToTauTau_M-700_TuneCP5
n_pu_mc_SUSYGluGluToHToTauTau_M-2900_TuneCP5
n_pu_mc_VBFToBulkGravitonToHHTo2B2Tau_M-850_narrow
n_pu_mc_VBFToBulkGravitonToHHTo2B2Tau_M-1000_narrow
n_pu_mc_GluGluToRadionToHHTo2B2Tau_M-900_narrow_correctedcfg