import os
import sys
import glob
import logging

from DevTools.Plotter.FlattenTree import FlattenTree

logger = logging.getLogger("SingleElectronFlatten")
logging.basicConfig(level=logging.INFO, stream=sys.stderr, format='%(asctime)s.%(msecs)03d %(levelname)s %(name)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S')

myCut = 'l1_genMatch==1'
sourceDirectory = '/hdfs/store/user/dntaylor/2016-03-02_SingleElectronAnalysis_v1/'

eFlatten = FlattenTree(
    ntupleDirectory=sourceDirectory,
    treeName='ETree',
)

histParams = {
    'pt_v_dz' : {'xVariable': 'l1_pt', 'yVariable': 'fabs(l1_dz)',  'xBinning': [50,0,500], 'yBinning': [50,0,0.5]},
    'pt_v_dxy': {'xVariable': 'l1_pt', 'yVariable': 'fabs(l1_dxy)', 'xBinning': [50,0,500], 'yBinning': [50,0,0.3]},
}

for histName, params in histParams.iteritems():
    eFlatten.add2DHistogram(histName,**params)

for sDir in glob.glob('{0}/*'.format(sourceDirectory)):
    sample = sDir.split('/')[-1]
    eFlatten.flatten2D(sample,'flat/SingleElectron/{0}.root'.format(sample),myCut)