Beispiel #1
0
def create_roc_counter(tree,
                       netcuts,
                       min_value,
                       max_value,
                       reco_true=0,
                       et_function=et_identity):
    '''
    Create and fill ROC counter array holding number of events left after performing cuts on Et-derived value

    :param tree: Tree holding events to be loaded
    :param netcuts: Number of cuts to be performed on events
    :param min_value: Minimum of Et-derived values
    :param max_value: Maximum of Et-derived values
    :param reco_true: Bit value, 0 for using the reconstructed Et and 1 for using the true Pt
    :param et_function: Arbitrary to be applied to the Et of event
    :return: Numpy array holding number events left after cuts
    '''
    entries = tree.entries

    # Scale factor to be used in increment_roc_counter
    scaler = float(max_value - min_value) / float(netcuts)

    # This array will hold the number of signal events with Et-derived value greater than a given index
    #   (assuming scaler = 1)
    roc_counter = np.zeros(netcuts)

    for i in range(entries):
        event = prepare_event(tree, i, 1, 1, 0)

        # Use the reconstructed Et if reco_true set to 0, true Pt if set to 1
        if reco_true == 0:
            event_et = event.reco_et
        else:
            event_et = event.true_tau_pt

        event_et = et_function(event_et)

        increment_roc_counter(event_et, roc_counter, scaler, min_value)

    if roc_counter[0] < entries:
        print('Values exist below defined minimum')
    if roc_counter[-1] > 0:
        print('Values exist above defined maximum')

    return roc_counter
Beispiel #2
0
def reco_et_tree_histogram(tree, bins, min_value, max_value):
    '''
    Create a histogram of the reconstructed Et values of the events in tree

    :param tree: A tree containing events whose reconstructed Et will be loaded into the returned histogram
    :param bins: Number of bins in the histogram
    :param min_value: Minimum of values loaded into histogram
    :param max_value: Maximum of values loaded into histogram

    :return: A histogram populated with the reconstructed Et values of the events in tree
    '''
    tree_entries = tree.entries

    histo = TH1F("histo", "Reconstructed Et", bins, min_value, max_value)

    for i in range(tree_entries):
        event = prepare_event(tree, i, 0, 1, 0)

        histo.Fill(event.reco_et)

    histo.GetXaxis().SetTitle("Reconstructed Et")
    histo.GetYaxis().SetTitle("Entries")

    return histo
Beispiel #3
0
set_po_tree_parameters(sig_t)

print 'New entries'
print new_t.entries
print 'Old entries'
print old_t.entries

new_had_histo = TH1F('histo', 'New Hadronic Energy', 100, 0, 20)
new_05_had_histo = TH1F('histo', 'New 0.5 GeV Hadronic Energy', 100, 0, 20)
old_had_histo = TH1F('histo', 'Old Hadronic Energy', 100, 0, 20)

zero_new = 0
zero_05_new = 0
zero_old = 0
for i in range(new_t.entries):
  event = prepare_event(new_t, i)
  new_had_histo.Fill(event.had_layer.reco_et)
  if event.had_layer.reco_et == 0:
    zero_new += 1

for i in range(new_05_t.entries):
  event = prepare_event(new_05_t, i)
  new_05_had_histo.Fill(event.had_layer.reco_et)
  if event.had_layer.reco_et == 0:
    zero_05_new += 1

for i in range(old_t.entries):
  event = prepare_event(old_t, i)
  old_had_histo.Fill(event.had_layer.reco_et)
  if event.had_layer.reco_et == 0:
    zero_old += 1
Beispiel #4
0
                      'New Background L2 Supercell Energy (Constant eta/phi)',
                      bins, min_bin, max_bin)
sig_cell_histo = TH1F('hist', 'Signal L2 Supercell Energy (Constant eta/phi)',
                      bins, min_bin, max_bin)

old_off_histo = TH1F('hist',
                     'Old Background L2 Supercell Energy (Seed eta - 2)', bins,
                     min_bin, max_bin)
new_off_histo = TH1F('hist',
                     'New Background L2 Supercell Energy (Seed eta - 2)', bins,
                     min_bin, max_bin)
sig_off_histo = TH1F('hist', 'Signal L2 Supercell Energy (Seed eta - 2)', bins,
                     min_bin, max_bin)

for i in range(t_old.entries):
    event = prepare_event(t_old, i)
    old_seed_histo.Fill(event.seed_et)
    old_cell_histo.Fill(event.l2_layer.cell_et[3][1])
    old_off_histo.Fill(event.l2_layer.cell_et[event.seed_eta -
                                              2][event.seed_phi])

for i in range(t_new.entries):
    event = prepare_event(t_new, i)
    new_seed_histo.Fill(event.seed_et)
    new_cell_histo.Fill(event.l2_layer.cell_et[3][1])
    new_off_histo.Fill(event.l2_layer.cell_et[event.seed_eta -
                                              2][event.seed_phi])

for i in range(t_sig.entries):
    event = prepare_event(t_sig, i)
    sig_seed_histo.Fill(event.seed_et)
Beispiel #5
0
file_path = '~/NewTauSamples/dataFiles/sig_ntuple.root'
f = ROOT.TFile(file_path)
t = Tree(f.Get('mytree'))
set_po_tree_parameters(t)

afs_name = '~/NewTauSamples/plots/sanityCheck.pdf'
eos_name = '/eos/user/n/nicholas/NewTauSamples/plots/sanityCheck.pdf'

plot_names = [afs_name, eos_name]

h0 = ROOT.TH1F('hist', 'New Signal True Tau Pt', 100, 0, 100)
h1 = ROOT.TH1F('hist', 'New Signal Seed Et', 100, 0, 20)
h2 = ROOT.TH1F('hist', 'New Signal Eta', 50, -5, 5)

for i in range(t.root_ttree.GetEntries()):
    t.root_ttree.GetEntry(i)
    event = prepare_event(t, i)
    h0.Fill(t.root_ttree.TrueTauPt)
    h1.Fill(event.l2_layer.cell_et[t.root_ttree.SeedEta][t.root_ttree.SeedPhi])
    h2.Fill(t.root_ttree.TOBEta)

h0.Draw('hist')
multi_print(plot_names, c1, '(')

h1.Draw('hist')
multi_print(plot_names, c1)

h2.Draw('hist')
multi_print(plot_names, c1, ')')
Beispiel #6
0
tsig, fsig, tback, fback = get_signal_and_background_files(
    '/eos/user/n/nicholas/SWAN_projects/NewTauSamples/dataFiles/ztt_Output_formatted.root',
    '/eos/user/n/nicholas/SWAN_projects/NewTauSamples/dataFiles/output_MB80_formatted.root'
)
set_et_tree_parameters(tback)

audit_event = 0

sig_or_back = 0

if sig_or_back == 1:
    tree = tsig
else:
    tree = tback

event = prepare_event(tree, audit_event, 0, 0, 1)

print('L2 Layer Cells')
print(event.l2_layer.cell_et)
print('FCore Definition')
print(event.fcore_def)
print('FCore Core Et')
print(
    layer_reco_et(event.l2_layer, event.fcore_def[0][0], event.fcore_def[0][1],
                  event.seed_eta, event.seed_phi))
print('FCore Isolation Et')
print(
    layer_reco_et(event.l2_layer, event.fcore_def[1][0], event.fcore_def[1][1],
                  event.seed_eta, event.seed_phi))
print('FCore')
print(event.fcore)