diff --git a/Phys/B2KShh/job/selection.py b/Phys/B2KShh/job/selection.py index 5097133..a8e927b 100644 --- a/Phys/B2KShh/job/selection.py +++ b/Phys/B2KShh/job/selection.py @@ -13,6 +13,46 @@ end2011 = 106014 # fill 2354 endjune = 119892 # fill 2772 +truth_match = { + 'pi' : 211, + 'pi0' : 111, + 'K' : 321, + 'K0' : 311, + 'KS' : 310, + 'p' : 2212, + 'Lc' : 4122, + 'Sigma_c0' : 4112, + 'Xib0' : 5232, + 'Lb' : 5122, +} + +hypos = { + 'B2KpKS' : {'h1': 'K', 'h2': 'p', 'KS': 'KS'}, + 'B2pKKS' : {'h1': 'p', 'h2': 'K', 'KS': 'KS'}, + 'B2KpiKS' : {'h1': 'K', 'h2': 'pi', 'KS': 'KS'}, + 'B2piKKS' : {'h1': 'pi', 'h2': 'K', 'KS': 'KS'}, + 'B2ppiKS' : {'h1': 'p', 'h2': 'pi', 'KS': 'KS'}, + 'B2pipKS' : {'h1': 'pi', 'h2': 'p', 'KS': 'KS'}, + 'B2pipiKS' : {'h1': 'pi', 'h2': 'pi', 'KS': 'KS'}, + 'B2ppKS' : {'h1': 'p', 'h2': 'p', 'KS': 'KS'}, + 'B2KKKS' : {'h1': 'K', 'h2': 'K', 'KS': 'KS'}, +} + + +def truth_match_string(source, hypo): + string = '' + mother = 'MOTHER' + b_id = truth_match['Lb'] + if 'Lc' in source: + mother = 'GDMOTHER' + if 'Xib0' in source: + b_id = truth_match['Xib0'] + for h in ['h1', 'h2', 'KS']: + string += ' && %s_TRUEID == %s' % (h, truth_match[hypos[hypo][h]]) + string += ' && %s_%s_TRUEID == %s' % (h, mother, b_id) + return string + + sel_strings = { 'L0' : '(L0HadronDecision_TOS || L0Global_TIS)', 'HLT1' : 'Hlt1TrackAllL0Decision_TOS', @@ -47,21 +87,12 @@ yield basepath+kname, d.Get(kname) -infile = r.TFile(source_path + source, 'read') -trees = [] - - class treeWithDirectory(object): def __init__(self, key, obj): self.tree = obj self.location = key.split('/')[1] -for k, o in getall(infile): - if 'TTree' in o.ClassName(): - trees.append(treeWithDirectory(k, o)) - -recotrees = [t for t in trees if 'MCTruth' not in t.tree.GetName()] #truthtrees = [t for t in trees if 'MCTruth' in t.tree.GetName()] #if len(truthtrees) == 1: # truth_tree = truthtrees[0] @@ -73,6 +104,15 @@ print "\tSource file not in target directory, I'll bring it along..." os.system('cp %s %s' % (source_path + source, target_path + source)) +infile = r.TFile(target_path + source, 'read') +trees = [] + +for k, o in getall(infile): + if 'TTree' in o.ClassName(): + trees.append(treeWithDirectory(k, o)) + +recotrees = [t for t in trees if 'MCTruth' not in t.tree.GetName()] + outfilename = source.split('.')[0] + '_' + '_'.join(sel_names) + '.root' print '\tCreating file %s ...' % outfilename outfile = r.TFile(target_path + outfilename, 'recreate')