# 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); ''')
# 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')
# 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!