diff --git a/Trigger/TrigMonitoring/TrigMETMonitoring/python/TrigMETMonitorAlgorithm.py b/Trigger/TrigMonitoring/TrigMETMonitoring/python/TrigMETMonitorAlgorithm.py
index 3090bec3e6ced6ee492c8c8e50db22739ac4286f..b6b12f34db129d05445d1bc91df301ddb2cc5365 100644
--- a/Trigger/TrigMonitoring/TrigMETMonitoring/python/TrigMETMonitorAlgorithm.py
+++ b/Trigger/TrigMonitoring/TrigMETMonitoring/python/TrigMETMonitorAlgorithm.py
@@ -50,24 +50,79 @@ def TrigMETMonConfig(inputFlags):
     # without filters, all events are processed.
     TrigMETMonChain1Alg.TriggerChain = 'HLT_xe65_cell_L1XE50'
     
+    ### check Run2 or Run3 MT
+    mt_chains = True
+    if ( inputFlags.Trigger.EDMDecodingVersion < 3 ) :
+      mt_chains = False
 
-    ### use the follwoing if you run on Run2 AOD
-    #TrigMETMonAlg.hlt_cell_key = 'HLT_xAOD__TrigMissingETContainer_TrigEFMissingET'
-    #TrigMETMonAlg.hlt_mt_key = 'HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_mht'
-    #TrigMETMonAlg.hlt_tc_key = 'HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl'
-    #TrigMETMonAlg.hlt_tcpufit_key = 'HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl_PUC'
+    ### container name selection
+    if mt_chains:
+      TrigMETMonAlg.hlt_pfsum_key = 'HLT_MET_pfsum'
+    else:
+      TrigMETMonAlg.l1_jnc_key = 'LVL1EnergySumRoI'
+      TrigMETMonAlg.l1_jrho_key = 'LVL1EnergySumRoI'
+      TrigMETMonAlg.l1_gnc_key = 'LVL1EnergySumRoI'
+      TrigMETMonAlg.l1_grho_key = 'LVL1EnergySumRoI'
+      TrigMETMonAlg.l1_gjwoj_key = 'LVL1EnergySumRoI'
+      TrigMETMonAlg.l1_gpufit_key = 'LVL1EnergySumRoI'
+      TrigMETMonAlg.hlt_cell_key = 'HLT_xAOD__TrigMissingETContainer_TrigEFMissingET'
+      TrigMETMonAlg.hlt_mt_key = 'HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_mht'
+      TrigMETMonAlg.hlt_tc_key = 'HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl'
+      TrigMETMonAlg.hlt_tc_em_key = 'HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl'
+      TrigMETMonAlg.hlt_tcpufit_key = 'HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl_PUC'
+      TrigMETMonAlg.hlt_trkmht_key = 'HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl'
+      TrigMETMonAlg.hlt_pfsum_key = 'HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl'
+      TrigMETMonAlg.hlt_pfsum_vssk_key = 'HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl'
+      TrigMETMonAlg.hlt_pfsum_cssk_key = 'HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl'
+      TrigMETMonAlg.hlt_pfopufit_key = 'HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl'
+      TrigMETMonAlg.hlt_cvfpufit_key = 'HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl'
+      TrigMETMonAlg.hlt_mhtpufit_pf_key = 'HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl'
+      TrigMETMonAlg.hlt_mhtpufit_em_key = 'HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl'
 
-    ### use the follwoing if you run on older Run3 AOD
-    #TrigMETMonAlg.hlt_tcpufit_key = 'HLT_MET_tcPufit'
-    #TrigMETMonAlg.hlt_trkmht_key = 'HLT_MET_mht'
-       
-    ### set chain names
-    ### These are the active chains as of 01 April 2020 for testing 
-    #TrigMETMonAlg.L1Chain1 = 'L1_XE10'
-    #TrigMETMonAlg.HLTChain1 = 'HLT_xe65_cell_L1XE50'
-    #TrigMETMonAlg.HLTChain2 = 'HLT_xe100_tcpufit_L1XE50'
-    TrigMETMonAlg.HLTChain2 = 'HLT_xe100_trkmht_L1XE50'
-    #TrigMETMonAlg.HLTChain2 = 'HLT_xe100_pfsum_L1XE50'
+    ### chain name selection
+    ### these are default chains ######
+      #TrigMETMonAlg.L1Chain02 = 'L1_XE50'
+      #TrigMETMonAlg.L1Chain02 = 'L1_jXENC50'
+      #TrigMETMonAlg.L1Chain03 = 'L1_jXERHO50'
+      #TrigMETMonAlg.L1Chain04 = 'L1_gXENC50'
+      #TrigMETMonAlg.L1Chain05 = 'L1_gXERHO50'
+      #TrigMETMonAlg.L1Chain06 = 'L1_gXEJWOJ50'
+      #TrigMETMonAlg.L1Chain07 = 'L1_gXEPUFIT50'
+      #TrigMETMonAlg.HLTChain01 = 'HLT_xe65_cell_L1XE50'
+      #TrigMETMonAlg.HLTChain02 = 'HLT_xe100_mht_L1XE50'
+      #TrigMETMonAlg.HLTChain03 = 'HLT_xe100_tcpufit_L1XE50'
+      #TrigMETMonAlg.HLTChain04 = 'HLT_xe100_trkmht_L1XE50'
+      #TrigMETMonAlg.HLTChain05 = 'HLT_xe100_pfsum_L1XE50'
+      #TrigMETMonAlg.HLTChain06 = 'HLT_xe100_pfopufit_L1XE50'
+      #TrigMETMonAlg.HLTChain07 = 'HLT_xe100_cvfpufit_L1XE50'
+      #TrigMETMonAlg.HLTChain08 = 'HLT_xe100_mhtpufit_em_subjesgscIS_L1XE50'
+      #TrigMETMonAlg.HLTChain09 = 'HLT_xe100_mhtpufit_pf_subjesgscIS_L1XE50'
+      #TrigMETMonAlg.HLTChain10 = 'HLT_xe100_pfsum_cssk_L1XE50'
+      #TrigMETMonAlg.HLTChain11 = 'HLT_xe100_pfsum_vssk_L1XE50'
+      #TrigMETMonAlg.HLTChain12 = 'HLT_xe65_cell_xe110_tcpuft_L1XE50'
+      #TrigMETMonAlg.HLTChain13 = 'HLT_xe100_trkmht_xe85_tcpufit_xe65_cell_L1XE50'
+      #TrigMETMonAlg.HLTChain14 = 'HLT_xe95_trkmht_xe90_tcpufit_xe75_cell_L1XE50'
+    if mt_chains:
+      TrigMETMonAlg.HLTChain02 = 'HLT_xe110_mht_L1XE50'
+      TrigMETMonAlg.HLTChain03 = 'HLT_xe110_tcpufit_L1XE50'
+      TrigMETMonAlg.HLTChain05 = 'HLT_xe110_pfsum_L1XE50'
+      TrigMETMonAlg.HLTChain10 = 'HLT_xe110_pfsum_cssk_L1XE50'
+      TrigMETMonAlg.HLTChain11 = 'HLT_xe110_pfsum_vssk_L1XE50'
+    else: 
+      TrigMETMonAlg.L1Chain02 = 'L1_XE10'
+      TrigMETMonAlg.L1Chain03 = 'L1_XE30'
+      TrigMETMonAlg.L1Chain04 = 'L1_XE55'
+      TrigMETMonAlg.L1Chain05 = 'L1_XE60'
+      TrigMETMonAlg.L1Chain06 = 'L1_XE70'
+      TrigMETMonAlg.L1Chain07 = 'L1_XE75'
+      TrigMETMonAlg.HLTChain01 = 'HLT_xe70_mht_L1XE50'
+      TrigMETMonAlg.HLTChain02 = 'HLT_xe90_mht_L1XE50'
+      TrigMETMonAlg.HLTChain03 = 'HLT_xe110_mht_L1XE50'
+      TrigMETMonAlg.HLTChain04 = 'HLT_xe90_pufit_L1XE50'
+      TrigMETMonAlg.HLTChain05 = 'HLT_xe100_pufit_L1XE50'
+      TrigMETMonAlg.HLTChain06 = 'HLT_xe110_pufit_L1XE50'
+      TrigMETMonAlg.HLTChain07 = 'HLT_xe110_pufit_xe65_L1XE50'
+      TrigMETMonAlg.HLTChain08 = 'HLT_xe110_pufit_xe70_L1XE50'
 
 
     ### STEP 4 ###
@@ -113,17 +168,19 @@ def TrigMETMonConfig(inputFlags):
     sumet_bins_log=20 #sumEt_log
     sumet_min_log=-1.875
     sumet_max_log=4.125
-    sume_bins=153 #sumE
-    sume_min=-27.0
-    sume_max=24003.0
-    sume_bins_log=40 #sumE_log
-    sume_min_log=-1.875
-    sume_max_log=6.125
+    ## These bin settings are for future use.
+    ## commented to avoid compiler warning.
+    #sume_bins=153 #sumE
+    #sume_min=-27.0
+    #sume_max=24003.0
+    #sume_bins_log=40 #sumE_log
+    #sume_min_log=-1.875
+    #sume_max_log=6.125
     phi_bins=100 # phi
     phi_bins_2d=24 # phi
     phi_min=-3.1416
     phi_max=3.1416
-    eta_bins=100 # eta
+    #eta_bins=100 # eta
     eta_bins_2d=24# eta
     eta_min=-4.8
     eta_max=4.8
@@ -141,286 +198,67 @@ def TrigMETMonConfig(inputFlags):
     metGroup.defineHistogram('offline_sumEt',title='Offline sumE_{T};sumE_{T} [GeV];Events',
                              path='Expert/Offline',xbins=sumet_bins,xmin=sumet_min,xmax=sumet_max)
     ## L1
-    metGroup.defineHistogram('L1_Ex',title='L1 Missing E_{x};E_{x} [GeV];Events',
-                             path='Shifter/L1',xbins=ec_bins,xmin=ec_min,xmax=ec_max)
-    metGroup.defineHistogram('L1_Ey',title='L1 Missing E_{y};E_{y} [GeV];Events',
-                             path='Shifter/L1',xbins=ec_bins,xmin=ec_min,xmax=ec_max)
-    metGroup.defineHistogram('L1_Et',title='L1 Missing E_{T};E_{T} [GeV];Events',
-                             path='Shifter/L1',xbins=et_bins,xmin=et_min,xmax=et_max)
-    ## HLT cell
-    metGroup.defineHistogram('cell_Ex',title='cell Missing E_{x};E_{x} [GeV];Events',
-                             path='Shifter/cell',xbins=ec_bins,xmin=ec_min,xmax=ec_max)
-    metGroup.defineHistogram('cell_Ex_log',title='cell Missing E_{x} log;sgn(E_{x}) log_{10}(E_{x}/GeV);Events',
-                             path='Shifter/cell',xbins=ec_bins_log,xmin=ec_min_log,xmax=ec_max_log)
-    metGroup.defineHistogram('cell_Ey',title='cell Missing E_{y};E_{y} [GeV];Events',
-                             path='Shifter/cell',xbins=ec_bins,xmin=ec_min,xmax=ec_max)
-    metGroup.defineHistogram('cell_Ey_log',title='cell Missing E_{y} log;sgn(E_{y}) log_{10}(E_{y}/GeV);Events',
-                             path='Shifter/cell',xbins=ec_bins_log,xmin=ec_min_log,xmax=ec_max_log)
-    metGroup.defineHistogram('cell_Et',title='cell Missing E_{T};E_{T} [GeV];Events',
-                             path='Shifter/cell',xbins=et_bins,xmin=et_min,xmax=et_max)
-    metGroup.defineHistogram('cell_Et_log',title='cell Missing E_{T} log;log_{10}(E_{T}/GeV);Events',
-                             path='Shifter/cell',xbins=et_bins_log,xmin=et_min_log,xmax=et_max_log)
-    metGroup.defineHistogram('cell_sumEt',title='cell sumEt;sumEt [GeV];Events',
-                             path='Shifter/cell',xbins=sumet_bins,xmin=sumet_min,xmax=sumet_max)
-    metGroup.defineHistogram('cell_sumEt_log',title='cell sumEt log;log_{10}(sumEt/GeV);Events',
-                             path='Shifter/cell',xbins=sumet_bins_log,xmin=sumet_min_log,xmax=sumet_max_log)
-    metGroup.defineHistogram('cell_phi',title='cell #phi;#phi;Events',
-                             path='Shifter/cell',xbins=phi_bins,xmin=phi_min,xmax=phi_max)
-    metGroup.defineHistogram('cell_phi;cell_phi_etweight', title='cell #phi (etweighted);#phi;E_{T} weighted events',
-                             weight='cell_Et',
-                             path='Shifter/cell',xbins=phi_bins,xmin=phi_min,xmax=phi_max)
-    metGroup.defineHistogram('cell_eta,cell_phi;cell_eta_phi', type='TH2F', title='cell #eta - #phi;#eta;#phi',
-                             path='Shifter/cell',
-                             xbins=eta_bins_2d,xmin=eta_min,xmax=eta_max,ybins=phi_bins_2d,ymin=phi_min,ymax=phi_max)
-    metGroup.defineHistogram('cell_eta,cell_phi;cell_eta_phi_etweight', type='TH2F', title='cell #eta - #phi (etweighted);#eta;#phi',
-                             weight='cell_Et',
-                             path='Shifter/cell',
-                             xbins=eta_bins_2d,xmin=eta_min,xmax=eta_max,ybins=phi_bins_2d,ymin=phi_min,ymax=phi_max)
-    ## HLT trkmht
-    metGroup.defineHistogram('trkmht_Ex',title='trkmht Missing E_{x};E_{x} [GeV];Events',
-                             path='Shifter/trkmht',xbins=ec_bins,xmin=ec_min,xmax=ec_max)
-    metGroup.defineHistogram('trkmht_Ex_log',title='trkmht Missing E_{x} log;sgn(E_{x}) log_{10}(E_{x}/GeV);Events',
-                             path='Shifter/trkmht',xbins=ec_bins_log,xmin=ec_min_log,xmax=ec_max_log)
-    metGroup.defineHistogram('trkmht_Ey',title='trkmht Missing E_{y};E_{y} [GeV];Events',
-                             path='Shifter/trkmht',xbins=ec_bins,xmin=ec_min,xmax=ec_max)
-    metGroup.defineHistogram('trkmht_Ey_log',title='trkmht Missing E_{y} log;sgn(E_{y}) log_{10}(E_{y}/GeV);Events',
-                             path='Shifter/trkmht',xbins=ec_bins_log,xmin=ec_min_log,xmax=ec_max_log)
-    metGroup.defineHistogram('trkmht_Et',title='trkmht Missing E_{T};E_{T} [GeV];Events',
-                             path='Shifter/trkmht',xbins=et_bins,xmin=et_min,xmax=et_max)
-    metGroup.defineHistogram('trkmht_Et_log',title='trkmht Missing E_{T} log;log_{10}(E_{T}/GeV);Events',
-                             path='Shifter/trkmht',xbins=et_bins_log,xmin=et_min_log,xmax=et_max_log)
-    metGroup.defineHistogram('trkmht_sumEt',title='trkmht sumEt;sumEt [GeV];Events',
-                             path='Shifter/trkmht',xbins=sumet_bins,xmin=sumet_min,xmax=sumet_max)
-    metGroup.defineHistogram('trkmht_sumEt_log',title='trkmht sumEt log;log_{10}(sumEt/GeV);Events',
-                             path='Shifter/trkmht',xbins=sumet_bins_log,xmin=sumet_min_log,xmax=sumet_max_log)
-    metGroup.defineHistogram('trkmht_phi',title='trkmht #phi;#phi;Events',
-                             path='Shifter/trkmht',xbins=phi_bins,xmin=phi_min,xmax=phi_max)
-    metGroup.defineHistogram('trkmht_phi;trkmht_phi_etweight', title='trkmht #phi (etweighted);#phi;E_{T} weighted events',
-                             weight='trkmht_Et',
-                             path='Shifter/trkmht',xbins=phi_bins,xmin=phi_min,xmax=phi_max)
-    ## HLT tcpufit
-    metGroup.defineHistogram('tcpufit_Ex',title='tcpufit Missing E_{x};E_{x} [GeV];Events',
-                             path='Shifter/tcpufit',xbins=ec_bins,xmin=ec_min,xmax=ec_max)
-    metGroup.defineHistogram('tcpufit_Ex_log',title='tcpufit Missing E_{x} log;sgn(E_{x}) log_{10}(E_{x}/GeV);Events',
-                             path='Shifter/tcpufit',xbins=ec_bins_log,xmin=ec_min_log,xmax=ec_max_log)
-    metGroup.defineHistogram('tcpufit_Ey',title='tcpufit Missing E_{y};E_{y} [GeV];Events',
-                             path='Shifter/tcpufit',xbins=ec_bins,xmin=ec_min,xmax=ec_max)
-    metGroup.defineHistogram('tcpufit_Ey_log',title='tcpufit Missing E_{y} log;sgn(E_{y}) log_{10}(E_{y}/GeV);Events',
-                             path='Shifter/tcpufit',xbins=ec_bins_log,xmin=ec_min_log,xmax=ec_max_log)
-    metGroup.defineHistogram('tcpufit_Ez',title='tcpufit Missing E_{z};E_{z} [GeV];Events',
-                             path='Shifter/tcpufit',xbins=ec_bins,xmin=ec_min,xmax=ec_max)
-    metGroup.defineHistogram('tcpufit_Ez_log',title='tcpufit Missing E_{z} log;sgn(E_{z}) log_{10}(E_{x}/GeV);Events',
-                             path='Shifter/tcpufit',xbins=ec_bins_log,xmin=ec_min_log,xmax=ec_max_log)
-    metGroup.defineHistogram('tcpufit_Et',title='tcpufit Missing E_{T};E_{T} [GeV];Events',
-                             path='Shifter/tcpufit',xbins=et_bins,xmin=et_min,xmax=et_max)
-    metGroup.defineHistogram('tcpufit_Et_log',title='tcpufit Missing E_{T} log;log_{10}(E_{T}/GeV);Events',
-                             path='Shifter/tcpufit',xbins=et_bins_log,xmin=et_min_log,xmax=et_max_log)
-    metGroup.defineHistogram('tcpufit_sumEt',title='tcpufit sumEt;sumEt [GeV];Events',
-                             path='Shifter/tcpufit',xbins=sumet_bins,xmin=sumet_min,xmax=sumet_max)
-    metGroup.defineHistogram('tcpufit_sumEt_log',title='tcpufit sumEt log;log_{10}(sumEt/GeV);Events',
-                             path='Shifter/tcpufit',xbins=sumet_bins_log,xmin=sumet_min_log,xmax=sumet_max_log)
-    metGroup.defineHistogram('tcpufit_sumEt;tcpufit_sumEt_etweight',title='tcpufit sumEt (etweighted);sumEt [GeV];E_{T} weighted events',
-                             weight='tcpufit_Et',
-                             path='Shifter/tcpufit',xbins=sumet_bins,xmin=sumet_min,xmax=sumet_max)
-    metGroup.defineHistogram('tcpufit_sumE',title='tcpufit sumE;sumE [GeV];Events',
-                             path='Shifter/tcpufit',xbins=sume_bins,xmin=sume_min,xmax=sume_max)
-    metGroup.defineHistogram('tcpufit_sumE_log',title='tcpufit sumE log;log_{10}(sumE/GeV);Events',
-                             path='Shifter/tcpufit',xbins=sume_bins_log,xmin=sume_min_log,xmax=sume_max_log)
-    metGroup.defineHistogram('tcpufit_eta',title='tcpufit #eta;#eta;Events',
-                             path='Shifter/tcpufit',xbins=eta_bins,xmin=eta_min,xmax=eta_max)
-    metGroup.defineHistogram('tcpufit_phi',title='tcpufit #phi;#phi;Events',
-                             path='Shifter/tcpufit',xbins=phi_bins,xmin=phi_min,xmax=phi_max)
-    metGroup.defineHistogram('tcpufit_phi;tcpufit_phi_etweight', title='tcpufit #phi (etweighted);#phi;E_{T} weighted events', 
-                             weight='tcpufit_Et',
-                             path='Shifter/tcpufit',xbins=phi_bins,xmin=phi_min,xmax=phi_max)
-    metGroup.defineHistogram('tcpufit_eta,tcpufit_phi;tcpufit_eta_phi', type='TH2F', title='tcpufit #eta - #phi;#eta;#phi',
-                             path='Shifter/tcpufit',
+    algsL1 = ["roi", "jnc", "jrho", "gnc", "grho", "gjwoj", "gpufit"]
+    for alg in algsL1:
+      metGroup.defineHistogram('L1_{}_Ex'.format(alg),title='L1_{} Missing Ex;Ex [GeV];Events'.format(alg),
+                             path='Shifter/L1_{}'.format(alg),xbins=ec_bins,xmin=ec_min,xmax=ec_max)
+      metGroup.defineHistogram('L1_{}_Ey'.format(alg),title='L1_{} Missing Ey;Ey [GeV];Events'.format(alg),
+                             path='Shifter/L1_{}'.format(alg),xbins=ec_bins,xmin=ec_min,xmax=ec_max)
+      metGroup.defineHistogram('L1_{}_Et'.format(alg),title='L1_{} Missing Et;Et [GeV];Events'.format(alg),
+                             path='Shifter/L1_{}'.format(alg),xbins=et_bins,xmin=et_min,xmax=et_max)
+      metGroup.defineHistogram('L1_{}_sumEt'.format(alg),title='L1_{} sumEt;sumEt [GeV];Events'.format(alg),
+                             path='Shifter/L1_{}'.format(alg),xbins=et_bins,xmin=et_min,xmax=et_max)
+    ## HLT
+    algsHLT = ["cell", "tcpufit", "trkmht", "mht", "tc_em", "pfsum", "pfsum_cssk", "pfsum_vssk", "pfopufit", "cvfpufit", "mhtpufit_pf", "mhtpufit_em"]
+    for alg in algsHLT:
+      metGroup.defineHistogram('{}_Ex'.format(alg),title='{} Missing Ex;Ex [GeV];Events'.format(alg),
+                             path='Shifter/{}'.format(alg),xbins=ec_bins,xmin=ec_min,xmax=ec_max)
+      metGroup.defineHistogram('{}_Ex_log'.format(alg),title='{} Missing Ex log;sgn(Ex) log(Ex/GeV);Events'.format(alg),
+                             path='Shifter/{}'.format(alg),xbins=ec_bins_log,xmin=ec_min_log,xmax=ec_max_log)
+      metGroup.defineHistogram('{}_Ey'.format(alg),title='{} Missing Ey;Ey [GeV];Events'.format(alg),
+                             path='Shifter/{}'.format(alg),xbins=ec_bins,xmin=ec_min,xmax=ec_max)
+      metGroup.defineHistogram('{}_Ey_log',title='{} Missing Ey log;sgn(Ey) log(Ey/GeV);Events'.format(alg),
+                             path='Shifter/{}'.format(alg),xbins=ec_bins_log,xmin=ec_min_log,xmax=ec_max_log)
+      metGroup.defineHistogram('{}_Et'.format(alg),title='{} Missing Et;Et [GeV];Events'.format(alg),
+                             path='Shifter/{}'.format(alg),xbins=et_bins,xmin=et_min,xmax=et_max)
+      metGroup.defineHistogram('{}_Et_log'.format(alg),title='{} Missing Et log;log(Et/GeV);Events'.format(alg),
+                             path='Shifter/{}'.format(alg),xbins=et_bins_log,xmin=et_min_log,xmax=et_max_log)
+      metGroup.defineHistogram('{}_sumEt'.format(alg),title='{} sumEt;sumEt [GeV];Events'.format(alg),
+                             path='Shifter/{}'.format(alg),xbins=sumet_bins,xmin=sumet_min,xmax=sumet_max)
+      metGroup.defineHistogram('{}_sumEt_log'.format(alg),title='{} sumEt log;log(sumEt/GeV);Events'.format(alg),
+                             path='Shifter/{}'.format(alg),xbins=sumet_bins_log,xmin=sumet_min_log,xmax=sumet_max_log)
+      metGroup.defineHistogram('{}_phi'.format(alg),title='{} #phi;#phi;Events'.format(alg),
+                             path='Shifter/{}'.format(alg),xbins=phi_bins,xmin=phi_min,xmax=phi_max)
+      metGroup.defineHistogram('{}_phi;{}_phi_etweight'.format(alg,alg), title='{} #phi (etweighted);#phi;Et weighted events'.format(alg),
+                             weight='{}_Et'.format(alg),
+                             path='Shifter/{}'.format(alg),xbins=phi_bins,xmin=phi_min,xmax=phi_max)
+
+    ## HLT 2d eta-phi histos
+    algsHLT2d = ["cell", "tcpufit"]
+    for alg in algsHLT2d:
+      metGroup.defineHistogram('{}_eta,{}_phi;{}_eta_phi'.format(alg,alg,alg), type='TH2F', title='{} #eta - #phi;#eta;#phi'.format(alg),
+                             path='Shifter/{}'.format(alg),
                              xbins=eta_bins_2d,xmin=eta_min,xmax=eta_max,ybins=phi_bins_2d,ymin=phi_min,ymax=phi_max)
-    metGroup.defineHistogram('tcpufit_eta,tcpufit_phi;tcpufit_eta_phi_etweight', type='TH2F', title='tcpufit #eta - #phi (etweighted);#eta;#phi',
-                             weight='tcpufit_Et',
-                             path='Shifter/tcpufit',
+      metGroup.defineHistogram('{}_eta,{}_phi;{}_eta_phi_etweight'.format(alg,alg,alg), type='TH2F', title='{} #eta - #phi (etweighted);#eta;#phi'.format(alg),
+                             weight='{}_Et'.format(alg),
+                             path='Shifter/{}'.format(alg),
                              xbins=eta_bins_2d,xmin=eta_min,xmax=eta_max,ybins=phi_bins_2d,ymin=phi_min,ymax=phi_max)
-    ## Efficiency
-    metGroup.defineHistogram('offline_Et,pass_L11;L11_eff', type='TProfile',title='L1 efficiency;offline E_{T} [GeV];Efficiency',
+    ## L1 efficiency
+    effL1 = ["01", "02", "03", "04", "05", "06", "07"]
+    for eff in effL1:
+      metGroup.defineHistogram('offline_Et,pass_L1{};L1{}_eff'.format(eff,eff), type='TProfile',title='L1{} efficiency;offline Et [GeV];Efficiency'.format(eff),
                              path='Shifter/eff',xbins=eff_bins,xmin=eff_min,xmax=eff_max)
-    metGroup.defineHistogram('offline_Et,pass_HLT1;HLT1_eff', type='TProfile',title='HLT1 efficiency;offline E_{T} [GeV];Efficiency',
+    ## HLT efficiency
+    effHLT = ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14"]
+    for eff in effHLT:
+      metGroup.defineHistogram('offline_Et,pass_HLT{};HLT{}_eff'.format(eff,eff), type='TProfile',title='HLT{} efficiency;offline Et [GeV];Efficiency'.format(eff),
                              path='Shifter/eff',xbins=eff_bins,xmin=eff_min,xmax=eff_max)
-    metGroup.defineHistogram('offline_Et,pass_HLT2;HLT2_eff', type='TProfile',title='HLT2 efficiency;offline E_{T} [GeV];Efficiency',
-                             path='Shifter/eff',xbins=eff_bins,xmin=eff_min,xmax=eff_max)
-    ## HLT mht
-    metGroup.defineHistogram('mht_Ex',title='mht Missing E_{x};E_{x} [GeV];Events',
-                             path='Shifter/mht',xbins=ec_bins,xmin=ec_min,xmax=ec_max)
-    metGroup.defineHistogram('mht_Ex_log',title='mht Missing E_{x} log;sgn(E_{x}) log_{10}(E_{x}/GeV);Events',
-                             path='Shifter/mht',xbins=ec_bins_log,xmin=ec_min_log,xmax=ec_max_log)
-    metGroup.defineHistogram('mht_Ey',title='mht Missing E_{y};E_{y} [GeV];Events',
-                             path='Shifter/mht',xbins=ec_bins,xmin=ec_min,xmax=ec_max)
-    metGroup.defineHistogram('mht_Ey_log',title='mht Missing E_{y} log;sgn(E_{y}) log_{10}(E_{y}/GeV);Events',
-                             path='Shifter/mht',xbins=ec_bins_log,xmin=ec_min_log,xmax=ec_max_log)
-    metGroup.defineHistogram('mht_Et', title='mht Missing E_{T};E_{T} [GeV];Events',
-                             path='Shifter/mht',xbins=et_bins,xmin=et_min,xmax=et_max)
-    metGroup.defineHistogram('mht_Et_log',title='mht Missing E_{T} log;log_{10}(E_{T}/GeV);Events',
-                             path='Shifter/mht',xbins=et_bins_log,xmin=et_min_log,xmax=et_max_log)
-    metGroup.defineHistogram('mht_sumEt',title='mht sumEt;sumEt [GeV];Events',
-                             path='Shifter/mht',xbins=sumet_bins,xmin=sumet_min,xmax=sumet_max)
-    metGroup.defineHistogram('mht_sumEt_log',title='mht sumEt log;log_{10}(sumEt/GeV);Events',
-                             path='Shifter/mht',xbins=sumet_bins_log,xmin=sumet_min_log,xmax=sumet_max_log)
-    metGroup.defineHistogram('mht_phi',title='mht #phi;#phi;Events',
-                             path='Shifter/mht',xbins=phi_bins,xmin=phi_min,xmax=phi_max)
-    metGroup.defineHistogram('mht_phi;mht_phi_etweight', title='mht #phi (etweighted);#phi;E_{T} weighted events',
-                             weight='mht_Et',
-                             path='Shifter/mht',xbins=phi_bins,xmin=phi_min,xmax=phi_max)
-    metGroup.defineHistogram('mht_eta,cell_phi;mht_eta_phi', type='TH2F', title='mht #eta - #phi;#eta;#phi',
-                             path='Shifter/mht',
-                             xbins=eta_bins_2d,xmin=eta_min,xmax=eta_max,ybins=phi_bins_2d,ymin=phi_min,ymax=phi_max)
-    metGroup.defineHistogram('mht_eta,mht_phi;mht_eta_phi_etweight', type='TH2F', title='mht #eta - #phi (etweighted);#eta;#phi',
-                             weight='mht_Et',
-                             path='Shifter/mht',
-                             xbins=eta_bins_2d,xmin=eta_min,xmax=eta_max,ybins=phi_bins_2d,ymin=phi_min,ymax=phi_max)
-    ## HLT tc_em
-    metGroup.defineHistogram('tc_em_Ex',title='tc_em Missing E_{x};E_{x} [GeV];Events',
-                             path='Shifter/tc_em',xbins=ec_bins,xmin=ec_min,xmax=ec_max)
-    metGroup.defineHistogram('tc_em_Ex_log',title='tc_em Missing E_{x} log;sgn(E_{x}) log_{10}(E_{x}/GeV);Events',
-                             path='Shifter/tc_em',xbins=ec_bins_log,xmin=ec_min_log,xmax=ec_max_log)
-    metGroup.defineHistogram('tc_em_Ey',title='tc_em Missing E_{y};E_{y} [GeV];Events',
-                             path='Shifter/tc_em',xbins=ec_bins,xmin=ec_min,xmax=ec_max)
-    metGroup.defineHistogram('tc_em_Ey_log',title='tc_em Missing E_{y} log;sgn(E_{y}) log_{10}(E_{y}/GeV);Events',
-                             path='Shifter/tc_em',xbins=ec_bins_log,xmin=ec_min_log,xmax=ec_max_log)
-    metGroup.defineHistogram('tc_em_Et', title='tc_em Missing E_{T};E_{T} [GeV];Events',
-                             path='Shifter/tc_em',xbins=et_bins,xmin=et_min,xmax=et_max)
-    metGroup.defineHistogram('tc_em_Et_log',title='tc_em Missing E_{T} log;log_{10}(E_{T}/GeV);Events',
-                             path='Shifter/tc_em',xbins=et_bins_log,xmin=et_min_log,xmax=et_max_log)
-    metGroup.defineHistogram('tc_em_sumEt',title='tc_em sumEt;sumEt [GeV];Events',
-                             path='Shifter/tc_em',xbins=sumet_bins,xmin=sumet_min,xmax=sumet_max)
-    metGroup.defineHistogram('tc_em_sumEt_log',title='tc_em sumEt log;log_{10}(sumEt/GeV);Events',
-                             path='Shifter/tc_em',xbins=sumet_bins_log,xmin=sumet_min_log,xmax=sumet_max_log)
-    metGroup.defineHistogram('tc_em_phi',title='tc_em #phi;#phi;Events',
-                             path='Shifter/tc_em',xbins=phi_bins,xmin=phi_min,xmax=phi_max)
-    metGroup.defineHistogram('tc_em_phi;tc_em_phi_etweight', title='tc_em #phi (etweighted);#phi;E_{T} weighted events',
-                             weight='tc_em_Et',
-                             path='Shifter/tc_em',xbins=phi_bins,xmin=phi_min,xmax=phi_max)
-    metGroup.defineHistogram('tc_em_eta,cell_phi;tc_em_eta_phi', type='TH2F', title='tc_em #eta - #phi;#eta;#phi',
-                             path='Shifter/tc_em',
-                             xbins=eta_bins_2d,xmin=eta_min,xmax=eta_max,ybins=phi_bins_2d,ymin=phi_min,ymax=phi_max)
-    metGroup.defineHistogram('tc_em_eta,tc_em_phi;tc_em_eta_phi_etweight', type='TH2F', title='tc_em #eta - #phi (etweighted);#eta;#phi',
-                             weight='tc_em_Et',
-                             path='Shifter/tc_em',
-                             xbins=eta_bins_2d,xmin=eta_min,xmax=eta_max,ybins=phi_bins_2d,ymin=phi_min,ymax=phi_max)
-    ## HLT pfsum
-    metGroup.defineHistogram('pfsum_Ex',title='pfsum Missing E_{x};E_{x} [GeV];Events',
-                             path='Shifter/pfsum',xbins=ec_bins,xmin=ec_min,xmax=ec_max)
-    metGroup.defineHistogram('pfsum_Ex_log',title='pfsum Missing E_{x} log;sgn(E_{x}) log_{10}(E_{x}/GeV);Events',
-                             path='Shifter/pfsum',xbins=ec_bins_log,xmin=ec_min_log,xmax=ec_max_log)
-    metGroup.defineHistogram('pfsum_Ey',title='pfsum Missing E_{y};E_{y} [GeV];Events',
-                             path='Shifter/pfsum',xbins=ec_bins,xmin=ec_min,xmax=ec_max)
-    metGroup.defineHistogram('pfsum_Ey_log',title='pfsum Missing E_{y} log;sgn(E_{y}) log_{10}(E_{y}/GeV);Events',
-                             path='Shifter/pfsum',xbins=ec_bins_log,xmin=ec_min_log,xmax=ec_max_log)
-    metGroup.defineHistogram('pfsum_Et', title='pfsum Missing E_{T};E_{T} [GeV];Events',
-                             path='Shifter/pfsum',xbins=et_bins,xmin=et_min,xmax=et_max)
-    metGroup.defineHistogram('pfsum_Et_log',title='pfsum Missing E_{T} log;log_{10}(E_{T}/GeV);Events',
-                             path='Shifter/pfsum',xbins=et_bins_log,xmin=et_min_log,xmax=et_max_log)
-    metGroup.defineHistogram('pfsum_sumEt',title='pfsum sumEt;sumEt [GeV];Events',
-                             path='Shifter/pfsum',xbins=sumet_bins,xmin=sumet_min,xmax=sumet_max)
-    metGroup.defineHistogram('pfsum_sumEt_log',title='pfsum sumEt log;log_{10}(sumEt/GeV);Events',
-                             path='Shifter/pfsum',xbins=sumet_bins_log,xmin=sumet_min_log,xmax=sumet_max_log)
-    metGroup.defineHistogram('pfsum_phi',title='pfsum #phi;#phi;Events',
-                             path='Shifter/pfsum',xbins=phi_bins,xmin=phi_min,xmax=phi_max)
-    metGroup.defineHistogram('pfsum_phi;pfsum_phi_etweight', title='pfsum #phi (etweighted);#phi;E_{T} weighted events',
-                             weight='pfsum_Et',
-                             path='Shifter/pfsum',xbins=phi_bins,xmin=phi_min,xmax=phi_max)
-    ## HLT pfopufit
-    metGroup.defineHistogram('pfopufit_Ex',title='pfopufit Missing E_{x};E_{x} [GeV];Events',
-                             path='Shifter/pfopufit',xbins=ec_bins,xmin=ec_min,xmax=ec_max)
-    metGroup.defineHistogram('pfopufit_Ex_log',title='pfopufit Missing E_{x} log;sgn(E_{x}) log_{10}(E_{x}/GeV);Events',
-                             path='Shifter/pfopufit',xbins=ec_bins_log,xmin=ec_min_log,xmax=ec_max_log)
-    metGroup.defineHistogram('pfopufit_Ey',title='pfopufit Missing E_{y};E_{y} [GeV];Events',
-                             path='Shifter/pfopufit',xbins=ec_bins,xmin=ec_min,xmax=ec_max)
-    metGroup.defineHistogram('pfopufit_Ey_log',title='pfopufit Missing E_{y} log;sgn(E_{y}) log_{10}(E_{y}/GeV);Events',
-                             path='Shifter/pfopufit',xbins=ec_bins_log,xmin=ec_min_log,xmax=ec_max_log)
-    metGroup.defineHistogram('pfopufit_Et', title='pfopufit Missing E_{T};E_{T} [GeV];Events',
-                             path='Shifter/pfopufit',xbins=et_bins,xmin=et_min,xmax=et_max)
-    metGroup.defineHistogram('pfopufit_Et_log',title='pfopufit Missing E_{T} log;log_{10}(E_{T}/GeV);Events',
-                             path='Shifter/pfopufit',xbins=et_bins_log,xmin=et_min_log,xmax=et_max_log)
-    metGroup.defineHistogram('pfopufit_sumEt',title='pfopufit sumEt;sumEt [GeV];Events',
-                             path='Shifter/pfopufit',xbins=sumet_bins,xmin=sumet_min,xmax=sumet_max)
-    metGroup.defineHistogram('pfopufit_sumEt_log',title='pfopufit sumEt log;log_{10}(sumEt/GeV);Events',
-                             path='Shifter/pfopufit',xbins=sumet_bins_log,xmin=sumet_min_log,xmax=sumet_max_log)
-    metGroup.defineHistogram('pfopufit_phi',title='pfopufit #phi;#phi;Events',
-                             path='Shifter/pfopufit',xbins=phi_bins,xmin=phi_min,xmax=phi_max)
-    metGroup.defineHistogram('pfopufit_phi;pfopufit_phi_etweight', title='pfopufit #phi (etweighted);#phi;E_{T} weighted events',
-                             weight='pfopufit_Et',
-                             path='Shifter/pfopufit',xbins=phi_bins,xmin=phi_min,xmax=phi_max)
-    ## cvfpufit
-    metGroup.defineHistogram('cvfpufit_Ex',title='cvfpufit Missing E_{x};E_{x} [GeV];Events',
-                             path='Shifter/cvfpufit',xbins=ec_bins,xmin=ec_min,xmax=ec_max)
-    metGroup.defineHistogram('cvfpufit_Ex_log',title='cvfpufit Missing E_{x} log;sgn(E_{x}) log_{10}(E_{x}/GeV);Events',
-                             path='Shifter/cvfpufit',xbins=ec_bins_log,xmin=ec_min_log,xmax=ec_max_log)
-    metGroup.defineHistogram('cvfpufit_Ey',title='cvfpufit Missing E_{y};E_{y} [GeV];Events',
-                             path='Shifter/cvfpufit',xbins=ec_bins,xmin=ec_min,xmax=ec_max)
-    metGroup.defineHistogram('cvfpufit_Ey_log',title='cvfpufit Missing E_{y} log;sgn(E_{y}) log_{10}(E_{y}/GeV);Events',
-                             path='Shifter/cvfpufit',xbins=ec_bins_log,xmin=ec_min_log,xmax=ec_max_log)
-    metGroup.defineHistogram('cvfpufit_Et', title='cvfpufit Missing E_{T};E_{T} [GeV];Events',
-                             path='Shifter/cvfpufit',xbins=et_bins,xmin=et_min,xmax=et_max)
-    metGroup.defineHistogram('cvfpufit_Et_log',title='cvfpufit Missing E_{T} log;log_{10}(E_{T}/GeV);Events',
-                             path='Shifter/cvfpufit',xbins=et_bins_log,xmin=et_min_log,xmax=et_max_log)
-    metGroup.defineHistogram('cvfpufit_sumEt',title='cvfpufit sumEt;sumEt [GeV];Events',
-                             path='Shifter/cvfpufit',xbins=sumet_bins,xmin=sumet_min,xmax=sumet_max)
-    metGroup.defineHistogram('cvfpufit_sumEt_log',title='cvfpufit sumEt log;log_{10}(sumEt/GeV);Events',
-                             path='Shifter/cvfpufit',xbins=sumet_bins_log,xmin=sumet_min_log,xmax=sumet_max_log)
-    metGroup.defineHistogram('cvfpufit_phi',title='cvfpufit #phi;#phi;Events',
-                             path='Shifter/cvfpufit',xbins=phi_bins,xmin=phi_min,xmax=phi_max)
-    metGroup.defineHistogram('cvfpufit_phi;cvfpufit_phi_etweight', title='cvfpufit #phi (etweighted);#phi;E_{T} weighted events',
-                             weight='cvfpufit_Et',
-                             path='Shifter/cvfpufit',xbins=phi_bins,xmin=phi_min,xmax=phi_max)
-    ## mhtpufit_pf
-    metGroup.defineHistogram('mhtpufit_pf_Ex',title='mhtpufit_pf Missing E_{x};E_{x} [GeV];Events',
-                             path='Shifter/mhtpufit_pf',xbins=ec_bins,xmin=ec_min,xmax=ec_max)
-    metGroup.defineHistogram('mhtpufit_pf_Ex_log',title='mhtpufit_pf Missing E_{x} log;sgn(E_{x}) log_{10}(E_{x}/GeV);Events',
-                             path='Shifter/mhtpufit_pf',xbins=ec_bins_log,xmin=ec_min_log,xmax=ec_max_log)
-    metGroup.defineHistogram('mhtpufit_pf_Ey',title='mhtpufit_pf Missing E_{y};E_{y} [GeV];Events',
-                             path='Shifter/mhtpufit_pf',xbins=ec_bins,xmin=ec_min,xmax=ec_max)
-    metGroup.defineHistogram('mhtpufit_pf_Ey_log',title='mhtpufit_pf Missing E_{y} log;sgn(E_{y}) log_{10}(E_{y}/GeV);Events',
-                             path='Shifter/mhtpufit_pf',xbins=ec_bins_log,xmin=ec_min_log,xmax=ec_max_log)
-    metGroup.defineHistogram('mhtpufit_pf_Et', title='mhtpufit_pf Missing E_{T};E_{T} [GeV];Events',
-                             path='Shifter/mhtpufit_pf',xbins=et_bins,xmin=et_min,xmax=et_max)
-    metGroup.defineHistogram('mhtpufit_pf_Et_log',title='mhtpufit_pf Missing E_{T} log;log_{10}(E_{T}/GeV);Events',
-                             path='Shifter/mhtpufit_pf',xbins=et_bins_log,xmin=et_min_log,xmax=et_max_log)
-    metGroup.defineHistogram('mhtpufit_pf_sumEt',title='mhtpufit_pf sumEt;sumEt [GeV];Events',
-                             path='Shifter/mhtpufit_pf',xbins=sumet_bins,xmin=sumet_min,xmax=sumet_max)
-    metGroup.defineHistogram('mhtpufit_pf_sumEt_log',title='mhtpufit_pf sumEt log;log_{10}(sumEt/GeV);Events',
-                             path='Shifter/mhtpufit_pf',xbins=sumet_bins_log,xmin=sumet_min_log,xmax=sumet_max_log)
-    metGroup.defineHistogram('mhtpufit_pf_phi',title='mhtpufit_pf #phi;#phi;Events',
-                             path='Shifter/mhtpufit_pf',xbins=phi_bins,xmin=phi_min,xmax=phi_max)
-    metGroup.defineHistogram('mhtpufit_pf_phi;mhtpufit_pf_phi_etweight', title='mhtpufit_pf #phi (etweighted);#phi;E_{T} weighted events',
-                             weight='mhtpufit_pf_Et',
-                             path='Shifter/mhtpufit_pf',xbins=phi_bins,xmin=phi_min,xmax=phi_max)
-    ## mhtpufit_em
-    metGroup.defineHistogram('mhtpufit_em_Ex',title='mhtpufit_em Missing E_{x};E_{x} [GeV];Events',
-                             path='Shifter/mhtpufit_em',xbins=ec_bins,xmin=ec_min,xmax=ec_max)
-    metGroup.defineHistogram('mhtpufit_em_Ex_log',title='mhtpufit_em Missing E_{x} log;sgn(E_{x}) log_{10}(E_{x}/GeV);Events',
-                             path='Shifter/mhtpufit_em',xbins=ec_bins_log,xmin=ec_min_log,xmax=ec_max_log)
-    metGroup.defineHistogram('mhtpufit_em_Ey',title='mhtpufit_em Missing E_{y};E_{y} [GeV];Events',
-                             path='Shifter/mhtpufit_em',xbins=ec_bins,xmin=ec_min,xmax=ec_max)
-    metGroup.defineHistogram('mhtpufit_em_Ey_log',title='mhtpufit_em Missing E_{y} log;sgn(E_{y}) log_{10}(E_{y}/GeV);Events',
-                             path='Shifter/mhtpufit_em',xbins=ec_bins_log,xmin=ec_min_log,xmax=ec_max_log)
-    metGroup.defineHistogram('mhtpufit_em_Et', title='mhtpufit_em Missing E_{T};E_{T} [GeV];Events',
-                             path='Shifter/mhtpufit_em',xbins=et_bins,xmin=et_min,xmax=et_max)
-    metGroup.defineHistogram('mhtpufit_em_Et_log',title='mhtpufit_em Missing E_{T} log;log_{10}(E_{T}/GeV);Events',
-                             path='Shifter/mhtpufit_em',xbins=et_bins_log,xmin=et_min_log,xmax=et_max_log)
-    metGroup.defineHistogram('mhtpufit_em_sumEt',title='mhtpufit_em sumEt;sumEt [GeV];Events',
-                             path='Shifter/mhtpufit_em',xbins=sumet_bins,xmin=sumet_min,xmax=sumet_max)
-    metGroup.defineHistogram('mhtpufit_em_sumEt_log',title='mhtpufit_em sumEt log;log_{10}(sumEt/GeV);Events',
-                             path='Shifter/mhtpufit_em',xbins=sumet_bins_log,xmin=sumet_min_log,xmax=sumet_max_log)
-    metGroup.defineHistogram('mhtpufit_em_phi',title='mhtpufit_em #phi;#phi;Events',
-                             path='Shifter/mhtpufit_em',xbins=phi_bins,xmin=phi_min,xmax=phi_max)
-    metGroup.defineHistogram('mhtpufit_em_phi;mhtpufit_em_phi_etweight', title='mhtpufit_em #phi (etweighted);#phi;E_{T} weighted events',
-                             weight='mhtpufit_em_Et',
-                             path='Shifter/mhtpufit_em',xbins=phi_bins,xmin=phi_min,xmax=phi_max)
-    ## HLT tc
-    metGroup.defineHistogram('tc_Ex',title='tc Missing E_{x};E_{x} [GeV];Events',
+    ## HLT tc (Expert)
+    metGroup.defineHistogram('tc_Ex',title='tc Missing Ex;Ex [GeV];Events',
                              path='Expert/tc',xbins=ec_bins,xmin=ec_min,xmax=ec_max)
-    metGroup.defineHistogram('tc_Ey',title='tc Missing E_{y};E_{y} [GeV];Events',
+    metGroup.defineHistogram('tc_Ey',title='tc Missing Ey;Ey [GeV];Events',
                              path='Expert/tc',xbins=ec_bins,xmin=ec_min,xmax=ec_max)
-    metGroup.defineHistogram('tc_Et', title='tc Missing E_{T};E_{T} [GeV];Events',
+    metGroup.defineHistogram('tc_Et', title='tc Missing Et;Et [GeV];Events',
                              path='Expert/tc',xbins=et_bins,xmin=et_min,xmax=et_max)
     ## Chain specific
     metChain1Group.defineHistogram('cell_Ex',title='cell Missing E_{x};E_{x} [GeV];Events',
@@ -466,8 +304,7 @@ if __name__=='__main__':
     from AthenaConfiguration.AllConfigFlags import ConfigFlags
     nightly = '/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/CommonInputs/'
     file = 'data16_13TeV.00311321.physics_Main.recon.AOD.r9264/AOD.11038520._000001.pool.root.1'
-    #ConfigFlags.Input.Files = [nightly+file]
-    ConfigFlags.Input.Files = ['/hep300/data/khamano/data18_athenaMT/fromElin/AOD_old.pool.root']
+    ConfigFlags.Input.Files = [nightly+file]
     ConfigFlags.Input.isMC = True
     ConfigFlags.Output.HISTFileName = 'TrigMETMonitorOutput.root'
     
diff --git a/Trigger/TrigMonitoring/TrigMETMonitoring/src/TrigMETMonitorAlgorithm.cxx b/Trigger/TrigMonitoring/TrigMETMonitoring/src/TrigMETMonitorAlgorithm.cxx
index 8794ce5dcf0941801706118095df97554609d037..2969f23957a6935584c0e3ccd307ad121e7e488b 100644
--- a/Trigger/TrigMonitoring/TrigMETMonitoring/src/TrigMETMonitorAlgorithm.cxx
+++ b/Trigger/TrigMonitoring/TrigMETMonitoring/src/TrigMETMonitorAlgorithm.cxx
@@ -9,6 +9,12 @@ TrigMETMonitorAlgorithm::TrigMETMonitorAlgorithm( const std::string& name, ISvcL
   : AthMonitorAlgorithm(name,pSvcLocator)
   , m_offline_met_key("MET_EMTopo")
   , m_lvl1_roi_key("LVL1EnergySumRoI")
+  , m_lvl1_jnc_key("jNOISECUT_MET")
+  , m_lvl1_jrho_key("jXERHO_MET")
+  , m_lvl1_gnc_key("gXENOISECUT_MET")
+  , m_lvl1_grho_key("gXERHO_MET")
+  , m_lvl1_gjwoj_key("gXEJWOJ_MET")
+  , m_lvl1_gpufit_key("gXEPUFIT_MET")
   , m_hlt_cell_met_key("HLT_MET_cell")
   , m_hlt_mht_met_key("HLT_MET_mht")
   , m_hlt_tc_met_key("HLT_MET_tc")
@@ -16,6 +22,8 @@ TrigMETMonitorAlgorithm::TrigMETMonitorAlgorithm( const std::string& name, ISvcL
   , m_hlt_tcpufit_met_key("HLT_MET_tcpufit")
   , m_hlt_trkmht_met_key("HLT_MET_trkmht")
   , m_hlt_pfsum_met_key("HLT_MET_pfsum")
+  , m_hlt_pfsum_cssk_met_key("HLT_MET_pfsum_cssk")
+  , m_hlt_pfsum_vssk_met_key("HLT_MET_pfsum_vssk")
   , m_hlt_pfopufit_met_key("HLT_MET_pfopufit")
   , m_hlt_cvfpufit_met_key("HLT_MET_cvfpufit")
   , m_hlt_mhtpufit_pf_met_key("HLT_MET_mhtpufit_pf_subjesgscIS")
@@ -24,6 +32,12 @@ TrigMETMonitorAlgorithm::TrigMETMonitorAlgorithm( const std::string& name, ISvcL
 {
   declareProperty("offline_met_key", m_offline_met_key);
   declareProperty("l1_roi_key", m_lvl1_roi_key);
+  declareProperty("l1_jnc_key", m_lvl1_jnc_key);
+  declareProperty("l1_jrho_key", m_lvl1_jrho_key);
+  declareProperty("l1_gnc_key", m_lvl1_gnc_key);
+  declareProperty("l1_grho_key", m_lvl1_grho_key);
+  declareProperty("l1_gjwoj_key", m_lvl1_gjwoj_key);
+  declareProperty("l1_gpufit_key", m_lvl1_gpufit_key);
   declareProperty("hlt_cell_key", m_hlt_cell_met_key);
   declareProperty("hlt_mht_key", m_hlt_mht_met_key);
   declareProperty("hlt_tc_key", m_hlt_tc_met_key);
@@ -31,14 +45,34 @@ TrigMETMonitorAlgorithm::TrigMETMonitorAlgorithm( const std::string& name, ISvcL
   declareProperty("hlt_tcpufit_key", m_hlt_tcpufit_met_key);
   declareProperty("hlt_trkmht_key", m_hlt_trkmht_met_key);
   declareProperty("hlt_pfsum_key", m_hlt_pfsum_met_key);
+  declareProperty("hlt_pfsum_cssk_key", m_hlt_pfsum_cssk_met_key);
+  declareProperty("hlt_pfsum_vssk_key", m_hlt_pfsum_vssk_met_key);
   declareProperty("hlt_pfopufit_key", m_hlt_pfopufit_met_key);
   declareProperty("hlt_cvfpufit_key", m_hlt_cvfpufit_met_key);
   declareProperty("hlt_mhtpufit_pf_key", m_hlt_mhtpufit_pf_met_key);
   declareProperty("hlt_mhtpufit_em_key", m_hlt_mhtpufit_em_met_key);
 
-  declareProperty("L1Chain1", m_L1Chain1="L1_XE50");
-  declareProperty("HLTChain1", m_HLTChain1="HLT_xe65_cell_L1XE50");
-  declareProperty("HLTChain2", m_HLTChain2="HLT_xe100_tcpuft_L1XE50");
+  declareProperty("L1Chain01", m_L1Chain01="L1_XE50");
+  declareProperty("L1Chain02", m_L1Chain02="L1_jXENC50");
+  declareProperty("L1Chain03", m_L1Chain03="L1_jXERHO50");
+  declareProperty("L1Chain04", m_L1Chain04="L1_gXENC50");
+  declareProperty("L1Chain05", m_L1Chain05="L1_gXERHO50");
+  declareProperty("L1Chain06", m_L1Chain06="L1_gXEJWOJ50");
+  declareProperty("L1Chain01", m_L1Chain07="L1_gXEPUFIT50");
+  declareProperty("HLTChain01", m_HLTChain01="HLT_xe65_cell_L1XE50");
+  declareProperty("HLTChain02", m_HLTChain02="HLT_xe100_mht_L1XE50");
+  declareProperty("HLTChain03", m_HLTChain03="HLT_xe100_tcpufit_L1XE50");
+  declareProperty("HLTChain04", m_HLTChain04="HLT_xe100_trkmht_L1XE50");
+  declareProperty("HLTChain05", m_HLTChain05="HLT_xe100_pfsum_L1XE50");
+  declareProperty("HLTChain06", m_HLTChain06="HLT_xe100_pfopuft_L1XE50");
+  declareProperty("HLTChain07", m_HLTChain07="HLT_xe100_cvfpufit_L1XE50");
+  declareProperty("HLTChain08", m_HLTChain08="HLT_xe100_mhtpufit_em_subjesgscIS_L1XE50");
+  declareProperty("HLTChain09", m_HLTChain09="HLT_xe100_mhtpufit_pf_subjesgscIS_L1XE50");
+  declareProperty("HLTChain10", m_HLTChain10="HLT_xe100_pfsum_cssk_L1XE50");
+  declareProperty("HLTChain11", m_HLTChain11="HLT_xe100_pfsum_vssk_L1XE50");
+  declareProperty("HLTChain12", m_HLTChain12="HLT_xe65_cell_xe110_tcpuft_L1XE50");
+  declareProperty("HLTChain13", m_HLTChain13="HLT_xe100_trkmht_xe85_tcpufit_xe65_cell_L1XE50");
+  declareProperty("HLTChain14", m_HLTChain14="HLT_xe95_trkmht_xe90_tcpufit_xe75_cell_L1XE50");
 }
 
 
@@ -48,6 +82,12 @@ TrigMETMonitorAlgorithm::~TrigMETMonitorAlgorithm() {}
 StatusCode TrigMETMonitorAlgorithm::initialize() {
     ATH_CHECK( m_offline_met_key.initialize() );
     ATH_CHECK( m_lvl1_roi_key.initialize() );
+    ATH_CHECK( m_lvl1_jnc_key.initialize() );
+    ATH_CHECK( m_lvl1_jrho_key.initialize() );
+    ATH_CHECK( m_lvl1_gnc_key.initialize() );
+    ATH_CHECK( m_lvl1_grho_key.initialize() );
+    ATH_CHECK( m_lvl1_gjwoj_key.initialize() );
+    ATH_CHECK( m_lvl1_gpufit_key.initialize() );
     ATH_CHECK( m_hlt_cell_met_key.initialize() );
     ATH_CHECK( m_hlt_mht_met_key.initialize() );
     ATH_CHECK( m_hlt_tc_met_key.initialize() );
@@ -59,6 +99,8 @@ StatusCode TrigMETMonitorAlgorithm::initialize() {
     ATH_CHECK( m_hlt_cvfpufit_met_key.initialize() );
     ATH_CHECK( m_hlt_mhtpufit_pf_met_key.initialize() );
     ATH_CHECK( m_hlt_mhtpufit_em_met_key.initialize() );
+    ATH_CHECK( m_hlt_pfsum_cssk_met_key.initialize() );
+    ATH_CHECK( m_hlt_pfsum_vssk_met_key.initialize() );
 
     ATH_CHECK( m_trigDecTool.retrieve() );
 
@@ -79,12 +121,42 @@ StatusCode TrigMETMonitorAlgorithm::fillHistograms( const EventContext& ctx ) co
     if (! l1_roi_cont.isValid() ) {     
       ATH_MSG_DEBUG("Container "<< m_lvl1_roi_key << " does not exist or is empty");
     }
-    
+
+    SG::ReadHandle<xAOD::EnergySumRoI> l1_jnc_cont(m_lvl1_jnc_key, ctx);
+    if (! l1_jnc_cont.isValid() ) {
+      ATH_MSG_DEBUG("Container "<< m_lvl1_jnc_key << " does not exist or is empty");
+    }
+
+    SG::ReadHandle<xAOD::EnergySumRoI> l1_jrho_cont(m_lvl1_jrho_key, ctx);
+    if (! l1_jrho_cont.isValid() ) {
+      ATH_MSG_DEBUG("Container "<< m_lvl1_jrho_key << " does not exist or is empty");
+    }
+
+    SG::ReadHandle<xAOD::EnergySumRoI> l1_gnc_cont(m_lvl1_gnc_key, ctx);
+    if (! l1_gnc_cont.isValid() ) {
+      ATH_MSG_DEBUG("Container "<< m_lvl1_gnc_key << " does not exist or is empty");
+    }
+
+    SG::ReadHandle<xAOD::EnergySumRoI> l1_grho_cont(m_lvl1_grho_key, ctx);
+    if (! l1_grho_cont.isValid() ) {
+      ATH_MSG_DEBUG("Container "<< m_lvl1_grho_key << " does not exist or is empty");
+    }
+
+    SG::ReadHandle<xAOD::EnergySumRoI> l1_gjwoj_cont(m_lvl1_gjwoj_key, ctx);
+    if (! l1_gjwoj_cont.isValid() ) {
+      ATH_MSG_DEBUG("Container "<< m_lvl1_gjwoj_key << " does not exist or is empty");
+    }
+
+    SG::ReadHandle<xAOD::EnergySumRoI> l1_gpufit_cont(m_lvl1_gpufit_key, ctx);
+    if (! l1_gpufit_cont.isValid() ) {
+      ATH_MSG_DEBUG("Container "<< m_lvl1_gpufit_key << " does not exist or is empty");
+    }
+
     SG::ReadHandle<xAOD::TrigMissingETContainer> hlt_cell_met_cont(m_hlt_cell_met_key, ctx);
     if (! hlt_cell_met_cont.isValid() || hlt_cell_met_cont->size()==0 ) {
       ATH_MSG_DEBUG("Container "<< m_hlt_cell_met_key << " does not exist or is empty");
     }
-    
+
     SG::ReadHandle<xAOD::TrigMissingETContainer> hlt_mht_met_cont(m_hlt_mht_met_key, ctx);
     if (! hlt_mht_met_cont.isValid() || hlt_mht_met_cont->size()==0 ) {
 	ATH_MSG_DEBUG("Container "<< m_hlt_mht_met_key << " does not exist or is empty");
@@ -115,6 +187,16 @@ StatusCode TrigMETMonitorAlgorithm::fillHistograms( const EventContext& ctx ) co
         ATH_MSG_DEBUG("Container "<< m_hlt_pfsum_met_key << " does not exist or is empty");
     }
 
+    SG::ReadHandle<xAOD::TrigMissingETContainer> hlt_pfsum_cssk_met_cont(m_hlt_pfsum_cssk_met_key, ctx);
+    if (! hlt_pfsum_cssk_met_cont.isValid() || hlt_pfsum_cssk_met_cont->size()==0 ) {
+        ATH_MSG_DEBUG("Container "<< m_hlt_pfsum_cssk_met_key << " does not exist or is empty");
+    }
+
+    SG::ReadHandle<xAOD::TrigMissingETContainer> hlt_pfsum_vssk_met_cont(m_hlt_pfsum_vssk_met_key, ctx);
+    if (! hlt_pfsum_vssk_met_cont.isValid() || hlt_pfsum_vssk_met_cont->size()==0 ) {
+        ATH_MSG_DEBUG("Container "<< m_hlt_pfsum_vssk_met_key << " does not exist or is empty");
+    }
+
     SG::ReadHandle<xAOD::TrigMissingETContainer> hlt_pfopufit_met_cont(m_hlt_pfopufit_met_key, ctx);
     if (! hlt_pfopufit_met_cont.isValid() || hlt_pfopufit_met_cont->size()==0 ) {
         ATH_MSG_DEBUG("Container "<< m_hlt_pfopufit_met_key << " does not exist or is empty");
@@ -147,9 +229,34 @@ StatusCode TrigMETMonitorAlgorithm::fillHistograms( const EventContext& ctx ) co
     auto offline_Ey = Monitored::Scalar<float>("offline_Ey",0.0);
     auto offline_Et = Monitored::Scalar<float>("offline_Et",0.0);
     auto offline_sumEt = Monitored::Scalar<float>("offline_sumEt",0.0);
-    auto L1_Ex = Monitored::Scalar<float>("L1_Ex",0.0);
-    auto L1_Ey = Monitored::Scalar<float>("L1_Ey",0.0);
-    auto L1_Et = Monitored::Scalar<float>("L1_Et",0.0);
+    auto L1_roi_Ex = Monitored::Scalar<float>("L1_roi_Ex",0.0);
+    auto L1_roi_Ey = Monitored::Scalar<float>("L1_roi_Ey",0.0);
+    auto L1_roi_Et = Monitored::Scalar<float>("L1_roi_Et",0.0);
+    auto L1_roi_sumEt = Monitored::Scalar<float>("L1_roi_sumEt",0.0);
+    auto L1_jnc_Ex = Monitored::Scalar<float>("L1_jnc_Ex",0.0);
+    auto L1_jnc_Ey = Monitored::Scalar<float>("L1_jnc_Ey",0.0);
+    auto L1_jnc_Et = Monitored::Scalar<float>("L1_jnc_Et",0.0);
+    auto L1_jnc_sumEt = Monitored::Scalar<float>("L1_jnc_sumEt",0.0);
+    auto L1_jrho_Ex = Monitored::Scalar<float>("L1_jrho_Ex",0.0);
+    auto L1_jrho_Ey = Monitored::Scalar<float>("L1_jrho_Ey",0.0);
+    auto L1_jrho_Et = Monitored::Scalar<float>("L1_jrho_Et",0.0);
+    auto L1_jrho_sumEt = Monitored::Scalar<float>("L1_jrho_sumEt",0.0);
+    auto L1_gnc_Ex = Monitored::Scalar<float>("L1_gnc_Ex",0.0);
+    auto L1_gnc_Ey = Monitored::Scalar<float>("L1_gnc_Ey",0.0);
+    auto L1_gnc_Et = Monitored::Scalar<float>("L1_gnc_Et",0.0);
+    auto L1_gnc_sumEt = Monitored::Scalar<float>("L1_gnc_sumEt",0.0);
+    auto L1_grho_Ex = Monitored::Scalar<float>("L1_grho_Ex",0.0);
+    auto L1_grho_Ey = Monitored::Scalar<float>("L1_grho_Ey",0.0);
+    auto L1_grho_Et = Monitored::Scalar<float>("L1_grho_Et",0.0);
+    auto L1_grho_sumEt = Monitored::Scalar<float>("L1_grho_sumEt",0.0);
+    auto L1_gjwoj_Ex = Monitored::Scalar<float>("L1_gjwoj_Ex",0.0);
+    auto L1_gjwoj_Ey = Monitored::Scalar<float>("L1_gjwoj_Ey",0.0);
+    auto L1_gjwoj_Et = Monitored::Scalar<float>("L1_gjwoj_Et",0.0);
+    auto L1_gjwoj_sumEt = Monitored::Scalar<float>("L1_gjwoj_sumEt",0.0);
+    auto L1_gpufit_Ex = Monitored::Scalar<float>("L1_gpufit_Ex",0.0);
+    auto L1_gpufit_Ey = Monitored::Scalar<float>("L1_gpufit_Ey",0.0);
+    auto L1_gpufit_Et = Monitored::Scalar<float>("L1_gpufit_Et",0.0);
+    auto L1_gpufit_sumEt = Monitored::Scalar<float>("L1_gpufit_sumEt",0.0);
     auto cell_Ex = Monitored::Scalar<float>("cell_Ex",0.0);
     auto cell_Ey = Monitored::Scalar<float>("cell_Ey",0.0);
     auto cell_Et = Monitored::Scalar<float>("cell_Et",0.0);
@@ -215,6 +322,24 @@ StatusCode TrigMETMonitorAlgorithm::fillHistograms( const EventContext& ctx ) co
     auto pfsum_Et_log = Monitored::Scalar<float>("pfsum_Et_log",0.0);
     auto pfsum_sumEt_log = Monitored::Scalar<float>("pfsum_sumEt_log",0.0);
     auto pfsum_phi = Monitored::Scalar<float>("pfsum_phi",0.0);
+    auto pfsum_cssk_Ex = Monitored::Scalar<float>("pfsum_cssk_Ex",0.0);
+    auto pfsum_cssk_Ey = Monitored::Scalar<float>("pfsum_cssk_Ey",0.0);
+    auto pfsum_cssk_Et = Monitored::Scalar<float>("pfsum_cssk_Et",0.0);
+    auto pfsum_cssk_sumEt = Monitored::Scalar<float>("pfsum_cssk_sumEt",0.0);
+    auto pfsum_cssk_Ex_log = Monitored::Scalar<float>("pfsum_cssk_Ex_log",0.0);
+    auto pfsum_cssk_Ey_log = Monitored::Scalar<float>("pfsum_cssk_Ey_log",0.0);
+    auto pfsum_cssk_Et_log = Monitored::Scalar<float>("pfsum_cssk_Et_log",0.0);
+    auto pfsum_cssk_sumEt_log = Monitored::Scalar<float>("pfsum_cssk_sumEt_log",0.0);
+    auto pfsum_cssk_phi = Monitored::Scalar<float>("pfsum_cssk_phi",0.0);
+    auto pfsum_vssk_Ex = Monitored::Scalar<float>("pfsum_vssk_Ex",0.0);
+    auto pfsum_vssk_Ey = Monitored::Scalar<float>("pfsum_vssk_Ey",0.0);
+    auto pfsum_vssk_Et = Monitored::Scalar<float>("pfsum_vssk_Et",0.0);
+    auto pfsum_vssk_sumEt = Monitored::Scalar<float>("pfsum_vssk_sumEt",0.0);
+    auto pfsum_vssk_Ex_log = Monitored::Scalar<float>("pfsum_vssk_Ex_log",0.0);
+    auto pfsum_vssk_Ey_log = Monitored::Scalar<float>("pfsum_vssk_Ey_log",0.0);
+    auto pfsum_vssk_Et_log = Monitored::Scalar<float>("pfsum_vssk_Et_log",0.0);
+    auto pfsum_vssk_sumEt_log = Monitored::Scalar<float>("pfsum_vssk_sumEt_log",0.0);
+    auto pfsum_vssk_phi = Monitored::Scalar<float>("pfsum_vssk_phi",0.0);
     auto pfopufit_Ex = Monitored::Scalar<float>("pfopufit_Ex",0.0);
     auto pfopufit_Ey = Monitored::Scalar<float>("pfopufit_Ey",0.0);
     auto pfopufit_Et = Monitored::Scalar<float>("pfopufit_Et",0.0);
@@ -251,9 +376,27 @@ StatusCode TrigMETMonitorAlgorithm::fillHistograms( const EventContext& ctx ) co
     auto mhtpufit_em_Et_log = Monitored::Scalar<float>("mhtpufit_em_Et_log",0.0);
     auto mhtpufit_em_sumEt_log = Monitored::Scalar<float>("mhtpufit_em_sumEt_log",0.0);
     auto mhtpufit_em_phi = Monitored::Scalar<float>("mhtpufit_em_phi",0.0);
-    auto pass_L11 = Monitored::Scalar<float>("pass_L11",0.0);
-    auto pass_HLT1 = Monitored::Scalar<float>("pass_HLT1",0.0);
-    auto pass_HLT2 = Monitored::Scalar<float>("pass_HLT2",0.0);
+    auto pass_L101 = Monitored::Scalar<float>("pass_L101",0.0);
+    auto pass_L102 = Monitored::Scalar<float>("pass_L102",0.0);
+    auto pass_L103 = Monitored::Scalar<float>("pass_L103",0.0);
+    auto pass_L104 = Monitored::Scalar<float>("pass_L104",0.0);
+    auto pass_L105 = Monitored::Scalar<float>("pass_L105",0.0);
+    auto pass_L106 = Monitored::Scalar<float>("pass_L106",0.0);
+    auto pass_L107 = Monitored::Scalar<float>("pass_L107",0.0);
+    auto pass_HLT01 = Monitored::Scalar<float>("pass_HLT01",0.0);
+    auto pass_HLT02 = Monitored::Scalar<float>("pass_HLT02",0.0);
+    auto pass_HLT03 = Monitored::Scalar<float>("pass_HLT03",0.0);
+    auto pass_HLT04 = Monitored::Scalar<float>("pass_HLT04",0.0);
+    auto pass_HLT05 = Monitored::Scalar<float>("pass_HLT05",0.0);
+    auto pass_HLT06 = Monitored::Scalar<float>("pass_HLT06",0.0);
+    auto pass_HLT07 = Monitored::Scalar<float>("pass_HLT07",0.0);
+    auto pass_HLT08 = Monitored::Scalar<float>("pass_HLT08",0.0);
+    auto pass_HLT09 = Monitored::Scalar<float>("pass_HLT09",0.0);
+    auto pass_HLT10 = Monitored::Scalar<float>("pass_HLT10",0.0);
+    auto pass_HLT11 = Monitored::Scalar<float>("pass_HLT11",0.0);
+    auto pass_HLT12 = Monitored::Scalar<float>("pass_HLT12",0.0);
+    auto pass_HLT13 = Monitored::Scalar<float>("pass_HLT13",0.0);
+    auto pass_HLT14 = Monitored::Scalar<float>("pass_HLT14",0.0);
 
 
     // constant floor for log plots
@@ -268,15 +411,77 @@ StatusCode TrigMETMonitorAlgorithm::fillHistograms( const EventContext& ctx ) co
       offline_Et = std::sqrt(offline_Ex*offline_Ex + offline_Ey*offline_Ey);
     }
 
-    // access L1 MET values
+    // access L1 roi MET values
     if ( l1_roi_cont.isValid() ) {
       if ((l1_roi_cont->energyX())>-9e12 && (l1_roi_cont->energyX())<9e12 && (l1_roi_cont->energyY())>-9e12 && (l1_roi_cont->energyY())<9e12) { 
-	L1_Ex = - (l1_roi_cont->energyX())/1000.;
-	L1_Ey = - (l1_roi_cont->energyY())/1000.;
-	L1_Et = (l1_roi_cont->energyT())/1000.;
+	L1_roi_Ex = - (l1_roi_cont->energyX())/1000.;
+	L1_roi_Ey = - (l1_roi_cont->energyY())/1000.;
+        L1_roi_Et = std::sqrt(L1_roi_Ex*L1_roi_Ex + L1_roi_Ey*L1_roi_Ey);
+        L1_roi_sumEt = (l1_roi_cont->energyT())/1000.;
+      }
+    }
+
+    // access L1 jnc MET values
+    if ( l1_jnc_cont.isValid() ) {
+      if ((l1_jnc_cont->energyX())>-9e12 && (l1_jnc_cont->energyX())<9e12 && (l1_jnc_cont->energyY())>-9e12 && (l1_jnc_cont->energyY())<9e12) {
+        L1_jnc_Ex = - (l1_jnc_cont->energyX())/1000.;
+        L1_jnc_Ey = - (l1_jnc_cont->energyY())/1000.;
+        L1_jnc_Et = std::sqrt(L1_jnc_Ex*L1_jnc_Ex + L1_jnc_Ey*L1_jnc_Ey);
+        L1_jnc_sumEt = (l1_jnc_cont->energyT())/1000.;
+      }
+    }
+
+    // access L1 jrho MET values
+    if ( l1_jrho_cont.isValid() ) {
+      if ((l1_jrho_cont->energyX())>-9e12 && (l1_jrho_cont->energyX())<9e12 && (l1_jrho_cont->energyY())>-9e12 && (l1_jrho_cont->energyY())<9e12) {
+        L1_jrho_Ex = - (l1_jrho_cont->energyX())/1000.;
+        L1_jrho_Ey = - (l1_jrho_cont->energyY())/1000.;
+        L1_jrho_Et = std::sqrt(L1_jrho_Ex*L1_jrho_Ex + L1_jrho_Ey*L1_jrho_Ey);
+        L1_jrho_sumEt = (l1_jrho_cont->energyT())/1000.;
+      }
+    }
+
+    // access L1 gnc MET values
+    if ( l1_gnc_cont.isValid() ) {
+      if ((l1_gnc_cont->energyX())>-9e12 && (l1_gnc_cont->energyX())<9e12 && (l1_gnc_cont->energyY())>-9e12 && (l1_gnc_cont->energyY())<9e12) {
+        L1_gnc_Ex = - (l1_gnc_cont->energyX())/1000.;
+        L1_gnc_Ey = - (l1_gnc_cont->energyY())/1000.;
+        L1_gnc_Et = std::sqrt(L1_gnc_Ex*L1_gnc_Ex + L1_gnc_Ey*L1_gnc_Ey);
+        L1_gnc_sumEt = (l1_gnc_cont->energyT())/1000.;
+      }
+    }
+
+    // access L1 grho MET values
+    if ( l1_grho_cont.isValid() ) {
+      if ((l1_grho_cont->energyX())>-9e12 && (l1_grho_cont->energyX())<9e12 && (l1_grho_cont->energyY())>-9e12 && (l1_grho_cont->energyY())<9e12) {
+        L1_grho_Ex = - (l1_grho_cont->energyX())/1000.;
+        L1_grho_Ey = - (l1_grho_cont->energyY())/1000.;
+        L1_grho_Et = std::sqrt(L1_grho_Ex*L1_grho_Ex + L1_grho_Ey*L1_grho_Ey);
+        L1_grho_sumEt = (l1_grho_cont->energyT())/1000.;
       }
     }
 
+    // access L1 gjwoj MET values
+    if ( l1_gjwoj_cont.isValid() ) {
+      if ((l1_gjwoj_cont->energyX())>-9e12 && (l1_gjwoj_cont->energyX())<9e12 && (l1_gjwoj_cont->energyY())>-9e12 && (l1_gjwoj_cont->energyY())<9e12) {
+        L1_gjwoj_Ex = - (l1_gjwoj_cont->energyX())/1000.;
+        L1_gjwoj_Ey = - (l1_gjwoj_cont->energyY())/1000.;
+        L1_gjwoj_Et = std::sqrt(L1_gjwoj_Ex*L1_gjwoj_Ex + L1_gjwoj_Ey*L1_gjwoj_Ey);
+        L1_gjwoj_sumEt = (l1_gjwoj_cont->energyT())/1000.;
+      }
+    }
+
+    // access L1 gpufit MET values
+    if ( l1_gpufit_cont.isValid() ) {
+      if ((l1_gpufit_cont->energyX())>-9e12 && (l1_gpufit_cont->energyX())<9e12 && (l1_gpufit_cont->energyY())>-9e12 && (l1_gpufit_cont->energyY())<9e12) {
+        L1_gpufit_Ex = - (l1_gpufit_cont->energyX())/1000.;
+        L1_gpufit_Ey = - (l1_gpufit_cont->energyY())/1000.;
+        L1_gpufit_Et = std::sqrt(L1_gpufit_Ex*L1_gpufit_Ex + L1_gpufit_Ey*L1_gpufit_Ey);
+        L1_gpufit_sumEt = (l1_gpufit_cont->energyT())/1000.;
+      }
+    }
+
+
     // access HLT cell MET values
     if ( hlt_cell_met_cont.isValid() && hlt_cell_met_cont->size() > 0 ) {
       hlt_met = hlt_cell_met_cont->at(0);
@@ -401,6 +606,42 @@ StatusCode TrigMETMonitorAlgorithm::fillHistograms( const EventContext& ctx ) co
     }
     ATH_MSG_DEBUG("pfsum_Et = " <<pfsum_Et);
 
+    // access HLT pfsum_cssk MET values
+    if ( hlt_pfsum_cssk_met_cont.isValid() && hlt_pfsum_cssk_met_cont->size() > 0 ) {
+      hlt_met = hlt_pfsum_cssk_met_cont->at(0);
+      pfsum_cssk_Ex = (hlt_met->ex())/1000.;
+      pfsum_cssk_Ey = (hlt_met->ey())/1000.;
+      float pfsum_cssk_Ez = (hlt_met->ez())/1000.;
+      pfsum_cssk_Et = std::sqrt(pfsum_cssk_Ex*pfsum_cssk_Ex + pfsum_cssk_Ey*pfsum_cssk_Ey);
+      pfsum_cssk_sumEt = (hlt_met->sumEt())/1000.;
+      pfsum_cssk_Ex_log = signed_log(pfsum_cssk_Ex, epsilon);
+      pfsum_cssk_Ey_log = signed_log(pfsum_cssk_Ey, epsilon);
+      pfsum_cssk_Et_log = signed_log(pfsum_cssk_Et, epsilon);
+      pfsum_cssk_sumEt_log = signed_log(pfsum_cssk_sumEt, epsilon);
+
+      TVector3 v(pfsum_cssk_Ex, pfsum_cssk_Ey, pfsum_cssk_Ez);
+      pfsum_cssk_phi = v.Phi();
+    }
+    ATH_MSG_DEBUG("pfsum_cssk_Et = " <<pfsum_cssk_Et);
+
+    // access HLT pfsum_vssk MET values
+    if ( hlt_pfsum_vssk_met_cont.isValid() && hlt_pfsum_vssk_met_cont->size() > 0 ) {
+      hlt_met = hlt_pfsum_vssk_met_cont->at(0);
+      pfsum_vssk_Ex = (hlt_met->ex())/1000.;
+      pfsum_vssk_Ey = (hlt_met->ey())/1000.;
+      float pfsum_vssk_Ez = (hlt_met->ez())/1000.;
+      pfsum_vssk_Et = std::sqrt(pfsum_vssk_Ex*pfsum_vssk_Ex + pfsum_vssk_Ey*pfsum_vssk_Ey);
+      pfsum_vssk_sumEt = (hlt_met->sumEt())/1000.;
+      pfsum_vssk_Ex_log = signed_log(pfsum_vssk_Ex, epsilon);
+      pfsum_vssk_Ey_log = signed_log(pfsum_vssk_Ey, epsilon);
+      pfsum_vssk_Et_log = signed_log(pfsum_vssk_Et, epsilon);
+      pfsum_vssk_sumEt_log = signed_log(pfsum_vssk_sumEt, epsilon);
+
+      TVector3 v(pfsum_vssk_Ex, pfsum_vssk_Ey, pfsum_vssk_Ez);
+      pfsum_vssk_phi = v.Phi();
+    }
+    ATH_MSG_DEBUG("pfsum_vssk_Et = " <<pfsum_vssk_Et);
+
     // acccess HLT pfopufit MET values
     if ( hlt_pfopufit_met_cont.isValid() && hlt_pfopufit_met_cont->size() > 0 ) {
       hlt_met = hlt_pfopufit_met_cont->at(0);
@@ -474,12 +715,30 @@ StatusCode TrigMETMonitorAlgorithm::fillHistograms( const EventContext& ctx ) co
     ATH_MSG_DEBUG("mhtpufit_em_Et = " << mhtpufit_em_Et);
 
     // efficiency plots
-    if (m_trigDecTool->isPassed(m_L1Chain1)) pass_L11 = 1.0;
-    if (m_trigDecTool->isPassed(m_HLTChain1)) pass_HLT1 = 1.0;
-    if (m_trigDecTool->isPassed(m_HLTChain2)) pass_HLT2 = 1.0;
-    ATH_MSG_DEBUG("pass " << m_L1Chain1 << " = " << pass_L11);
-    ATH_MSG_DEBUG("pass " << m_HLTChain1 << " = " << pass_HLT1);
-    ATH_MSG_DEBUG("pass " << m_HLTChain2 << " = " << pass_HLT2);
+    if (m_trigDecTool->isPassed(m_L1Chain01)) pass_L101 = 1.0;
+    if (m_trigDecTool->isPassed(m_L1Chain02)) pass_L102 = 1.0;
+    if (m_trigDecTool->isPassed(m_L1Chain03)) pass_L103 = 1.0;
+    if (m_trigDecTool->isPassed(m_L1Chain04)) pass_L104 = 1.0;
+    if (m_trigDecTool->isPassed(m_L1Chain05)) pass_L105 = 1.0;
+    if (m_trigDecTool->isPassed(m_L1Chain06)) pass_L106 = 1.0;
+    if (m_trigDecTool->isPassed(m_L1Chain07)) pass_L107 = 1.0;
+    if (m_trigDecTool->isPassed(m_HLTChain01)) pass_HLT01 = 1.0;
+    if (m_trigDecTool->isPassed(m_HLTChain02)) pass_HLT02 = 1.0;
+    if (m_trigDecTool->isPassed(m_HLTChain03)) pass_HLT03 = 1.0;
+    if (m_trigDecTool->isPassed(m_HLTChain04)) pass_HLT04 = 1.0;
+    if (m_trigDecTool->isPassed(m_HLTChain05)) pass_HLT05 = 1.0;
+    if (m_trigDecTool->isPassed(m_HLTChain06)) pass_HLT06 = 1.0;
+    if (m_trigDecTool->isPassed(m_HLTChain07)) pass_HLT07 = 1.0;
+    if (m_trigDecTool->isPassed(m_HLTChain08)) pass_HLT08 = 1.0;
+    if (m_trigDecTool->isPassed(m_HLTChain09)) pass_HLT09 = 1.0;
+    if (m_trigDecTool->isPassed(m_HLTChain10)) pass_HLT10 = 1.0;
+    if (m_trigDecTool->isPassed(m_HLTChain11)) pass_HLT11 = 1.0;
+    if (m_trigDecTool->isPassed(m_HLTChain12)) pass_HLT12 = 1.0;
+    if (m_trigDecTool->isPassed(m_HLTChain13)) pass_HLT13 = 1.0;
+    if (m_trigDecTool->isPassed(m_HLTChain14)) pass_HLT14 = 1.0;
+    ATH_MSG_DEBUG("pass " << m_L1Chain01 << " = " << pass_L101);
+    ATH_MSG_DEBUG("pass " << m_HLTChain01 << " = " << pass_HLT01);
+    ATH_MSG_DEBUG("pass " << m_HLTChain02 << " = " << pass_HLT02);
 
 
     // Fill. First argument is the tool (GMT) name as defined in the py file, 
@@ -488,8 +747,18 @@ StatusCode TrigMETMonitorAlgorithm::fillHistograms( const EventContext& ctx ) co
     // Alternative fill method. Get the group yourself, and pass it to the fill function.
     auto tool = getGroup("TrigMETMonitor");
     fill(tool,offline_Ex,offline_Ey,offline_Et,offline_sumEt,
-         L1_Ex,L1_Ey,L1_Et,
-         pass_L11,pass_HLT1,pass_HLT2);
+         L1_roi_Ex,L1_roi_Ey,L1_roi_Et,L1_roi_sumEt,
+         L1_jnc_Ex,L1_jnc_Ey,L1_jnc_Et,L1_jnc_sumEt,
+         L1_jrho_Ex,L1_jrho_Ey,L1_jrho_Et,L1_jrho_sumEt,
+         L1_gnc_Ex,L1_gnc_Ey,L1_gnc_Et,L1_gnc_sumEt,
+         L1_grho_Ex,L1_grho_Ey,L1_grho_Et,L1_grho_sumEt,
+         L1_gjwoj_Ex,L1_gjwoj_Ey,L1_gjwoj_Et,L1_gjwoj_sumEt,
+         L1_gpufit_Ex,L1_gpufit_Ey,L1_gpufit_Et,L1_gpufit_sumEt,
+         pass_L101,pass_L102,pass_L103,pass_L104,pass_L105,
+         pass_L106,pass_L107,
+         pass_HLT01,pass_HLT02,pass_HLT03,pass_HLT04,pass_HLT05,
+         pass_HLT05,pass_HLT06,pass_HLT07,pass_HLT08,pass_HLT09,
+         pass_HLT11,pass_HLT12,pass_HLT13,pass_HLT14);
     if (hlt_cell_met_cont->size() > 0) {
       fill(tool,cell_Ex,cell_Ey,cell_Et,cell_sumEt,
          cell_Ex_log,cell_Ey_log,cell_Et_log,cell_sumEt_log,
@@ -507,6 +776,12 @@ StatusCode TrigMETMonitorAlgorithm::fillHistograms( const EventContext& ctx ) co
          pfsum_Ex,pfsum_Ey,pfsum_Et,pfsum_sumEt,
          pfsum_Ex_log,pfsum_Ey_log,pfsum_Et_log,pfsum_sumEt_log,
          pfsum_phi,
+         pfsum_cssk_Ex,pfsum_cssk_Ey,pfsum_cssk_Et,pfsum_cssk_sumEt,
+         pfsum_cssk_Ex_log,pfsum_cssk_Ey_log,pfsum_cssk_Et_log,pfsum_cssk_sumEt_log,
+         pfsum_cssk_phi,
+         pfsum_vssk_Ex,pfsum_vssk_Ey,pfsum_vssk_Et,pfsum_vssk_sumEt,
+         pfsum_vssk_Ex_log,pfsum_vssk_Ey_log,pfsum_vssk_Et_log,pfsum_vssk_sumEt_log,
+         pfsum_vssk_phi,
          pfopufit_Ex,pfopufit_Ey,pfopufit_Et,pfopufit_sumEt,
          pfopufit_Ex_log,pfopufit_Ey_log,pfopufit_Et_log,pfopufit_sumEt_log,
          pfopufit_phi,
diff --git a/Trigger/TrigMonitoring/TrigMETMonitoring/src/TrigMETMonitorAlgorithm.h b/Trigger/TrigMonitoring/TrigMETMonitoring/src/TrigMETMonitorAlgorithm.h
index de40caf14e901ec0fd71b2f43d7225ebc94bf646..090cce9b8fc0afff8207e412ff23a03ef60c96d6 100644
--- a/Trigger/TrigMonitoring/TrigMETMonitoring/src/TrigMETMonitorAlgorithm.h
+++ b/Trigger/TrigMonitoring/TrigMETMonitoring/src/TrigMETMonitorAlgorithm.h
@@ -29,6 +29,12 @@ class TrigMETMonitorAlgorithm : public AthMonitorAlgorithm {
   SG::ReadHandleKey<xAOD::MissingETContainer> m_offline_met_key;
 
   SG::ReadHandleKey<xAOD::EnergySumRoI> m_lvl1_roi_key;
+  SG::ReadHandleKey<xAOD::EnergySumRoI> m_lvl1_jnc_key;
+  SG::ReadHandleKey<xAOD::EnergySumRoI> m_lvl1_jrho_key;
+  SG::ReadHandleKey<xAOD::EnergySumRoI> m_lvl1_gnc_key;
+  SG::ReadHandleKey<xAOD::EnergySumRoI> m_lvl1_grho_key;
+  SG::ReadHandleKey<xAOD::EnergySumRoI> m_lvl1_gjwoj_key;
+  SG::ReadHandleKey<xAOD::EnergySumRoI> m_lvl1_gpufit_key;
 
   SG::ReadHandleKey<xAOD::TrigMissingETContainer> m_hlt_cell_met_key;
   SG::ReadHandleKey<xAOD::TrigMissingETContainer> m_hlt_mht_met_key;
@@ -37,14 +43,34 @@ class TrigMETMonitorAlgorithm : public AthMonitorAlgorithm {
   SG::ReadHandleKey<xAOD::TrigMissingETContainer> m_hlt_tcpufit_met_key;
   SG::ReadHandleKey<xAOD::TrigMissingETContainer> m_hlt_trkmht_met_key;
   SG::ReadHandleKey<xAOD::TrigMissingETContainer> m_hlt_pfsum_met_key;
+  SG::ReadHandleKey<xAOD::TrigMissingETContainer> m_hlt_pfsum_cssk_met_key;
+  SG::ReadHandleKey<xAOD::TrigMissingETContainer> m_hlt_pfsum_vssk_met_key;
   SG::ReadHandleKey<xAOD::TrigMissingETContainer> m_hlt_pfopufit_met_key;
   SG::ReadHandleKey<xAOD::TrigMissingETContainer> m_hlt_cvfpufit_met_key;
   SG::ReadHandleKey<xAOD::TrigMissingETContainer> m_hlt_mhtpufit_pf_met_key;
   SG::ReadHandleKey<xAOD::TrigMissingETContainer> m_hlt_mhtpufit_em_met_key;
 
-  std::string m_L1Chain1;
-  std::string m_HLTChain1;
-  std::string m_HLTChain2;
+  std::string m_L1Chain01;
+  std::string m_L1Chain02;
+  std::string m_L1Chain03;
+  std::string m_L1Chain04;
+  std::string m_L1Chain05;
+  std::string m_L1Chain06;
+  std::string m_L1Chain07;
+  std::string m_HLTChain01;
+  std::string m_HLTChain02;
+  std::string m_HLTChain03;
+  std::string m_HLTChain04;
+  std::string m_HLTChain05;
+  std::string m_HLTChain06;
+  std::string m_HLTChain07;
+  std::string m_HLTChain08;
+  std::string m_HLTChain09;
+  std::string m_HLTChain10;
+  std::string m_HLTChain11;
+  std::string m_HLTChain12;
+  std::string m_HLTChain13;
+  std::string m_HLTChain14;
 
   ToolHandle<Trig::ITrigDecisionTool> m_trigDecTool;