예제 #1
0
# Environment variables and wildcards work. Most commonly you want a SAM
# dataset. Pass -ss --limit 1 on the cafe command line to make this take a
# reasonable amount of time for demo purposes.

for i in range(1, 11):
    fname = "/unix/nova/sam_datasets/prod_sumdecaf_R17-11-14-prod4reco.d_nd_genie_nonswap_fhc_nova_v08_full_v1_numu2018/prod_sumdecaf_R17-11-14-prod4reco.d_nd_genie_nonswap_fhc_nova_v08_period1_v1_numu2018_{}_of_10.root".format(
        i)

    loader = cafana.SpectrumLoader(fname)

    bins = cafana.Binning.Simple(100, 0, 2)

    # Arbitrary code to extract value from StandardRecord. Must be in C++ like this
    kTrackLen = cafana.CVar('''
if(sr.trk.kalman.ntracks == 0) return 0.0f;
return float(sr.trk.kalman.tracks[0].len);
''')

    MC_Truth = cafana.CVar('''
return float(sr.mc.nu[0].x);
''')

    MC_mode = cafana.CVar('''
return float(sr.mc.nu[0].mode);
''')

    kCrudeMuonSel = cafana.CCut('''
if(sr.trk.kalman.ntracks == 0) return false;
return bool(sr.trk.kalman.tracks[0].len > 200);
''')
예제 #2
0
# Make a simple spectrum plot

import cafana

# Environment variables and wildcards work. Most commonly you want a SAM
# dataset. Pass -ss --limit 1 on the cafe command line to make this take a
# reasonable amount of time for demo purposes.
fname = 'prod_sumdecaf_R17-03-01-prod3reco.k_fd_genie_nonswap_fhc_nova_v08_full_nue_or_numu_or_nus_contain_v1'

loader = cafana.SpectrumLoader(fname)

bins = cafana.Binning.Simple(100, 0, 1000)

# Arbitrary code to extract value from StandardRecord. Must be in C++ like this
kTrackLen = cafana.CVar('''
if(sr.trk.kalman.ntracks == 0) return 0.0f;
return float(sr.trk.kalman.tracks[0].len);
''')

# Spectrum to be filled from the loader
length = cafana.Spectrum("Track length (cm)", bins, loader, kTrackLen,
                         cafana.kIsNumuCC)

# Do it!
loader.Go()

# How to scale histograms
pot = 18e20

# We have histograms
length.ToTH1(pot).Draw('hist')
예제 #3
0
# Environment variables and wildcards work. Most commonly you want a SAM
# dataset. Pass -ss --limit 1 on the cafe command line to make this take a
# reasonable amount of time for demo purposes.

for i in range(1, 1):
    fname = '/unix/nova/sam_datasets/prod_flatsumdecaf_R17-11-14-prod4reco.d_nd_genie_nonswap_fhc_nova_v08_full_v1_numu2018/prod_flatsumdecaf_R17-11-14-prod4reco.d_nd_genie_nonswap_fhc_nova_v08_period1_v1_numu2018_1_of_10.root'

    loader = cafana.SpectrumLoader(fname)

    bins = cafana.Binning.Simple(100, 0, 2)

    # Arbitrary code to extract value from StandardRecord. Must be in C++ like this

    MC_Truth = cafana.CVar('''
return float(sr.mc.nu[0].x);
''')

    kNumuCutND2018 = cafana.CCut('''
return (sr->energy.numu.trkccE > 0 && // nothing is terribly wrong
sr->sel.remid.pid > 0   &&    // ensures at least 1 3D Kalman track with a remid value
sr->slc.nhit > 20       &&    // low hits stuff is junk
sr->slc.ncontplanes > 4 &&    // remove really vertical stuff
sr->trk.cosmic.ntracks > 0 ); // need a cosmic track
''')

    # Spectrum to be filled from the loader
    length = cafana.Spectrum("{}".format(MC_mode), bins, loader, MC_Truth,
                             kNumuCutND2018)

    # Do it!