Exemple #1
0
def main():

    if len(sys.argv) < 2:
        msg = '\n'
        msg += "Usage: %s $INPUT_ROOT_FILE\n" % sys.argv[0]
        msg += '\n'
        sys.stderr.write(msg)
        sys.exit(1)

    ertool.Manager()
    print "manager"
    #viewer
    plt.ion()
    display_reco = ERViewer()
    print "display"
    display_mc = ERViewer()
    print "display"
    display_reco.show()
    print "show"
    display_mc.show()
    print "show"

    # Create ana_processor instance
    my_proc = fmwk.ana_processor()
    # Create algorithm
    my_algo = ertool.AlgoPi0()
    my_algo.setVerbose(True)
    my_algo.setMinShrEnergy(10)
    my_algo.setMaxShrEnergy(1000)
    my_algo.setIPMax(10)
    my_algo.setMinFitMass(50)
    my_algo.setMaxFitMass(200)
    my_algo.setAngleMax(3.14)

    # Create analysis unit
    my_ana = fmwk.Pi0Reco()

    # ************Set Producers**************
    # First Argument: True = MC, False = Reco
    #my_ana.SetShowerProducer(True,"mcreco");
    #my_ana.SetTrackProducer(True,"mcreco");
    my_ana.SetVtxProducer(False, "")
    #my_ana.SetShowerProducer(False,"pandoraNuShower")
    #my_ana.SetTrackProducer(False,"");
    #my_ana.SetVtxProducer(False,"");
    my_ana.SetShowerProducer(True, "showerreco")
    #my_ana.SetTrackProducer(True,"mcreco");
    #my_ana.SetVtxProducer(False,"");
    # ************Set Producers**************

    #help(my_ana._mgr)
    my_ana._mgr.SetAlgo(my_algo)
    my_ana._mgr._training_mode = True

    # Obtain input root files
    files = []
    for x in xrange(len(sys.argv) - 1):
        fname = sys.argv[x + 1]
        if fname.endswith('.root'):
            files.append(fname)

    print
    print '  Running AlgoPi0 training script...'
    print
    print '  Identified %2d input files' % len(files)
    if not ask_binary('  Proceed? [y/n]:'): return False
    print
    if ask_binary('  Load previously extracted fit parameters? [y/n]:'):
        my_algo.LoadParams()

    my_proc.set_io_mode(fmwk.storage_manager.kREAD)
    my_proc.add_process(my_ana)
    for f in files:
        my_proc.add_input_file(f)

    my_ana._mgr.Reset()
    my_proc.set_ana_output_file("pi0_viewing.root")
    print '    Start running pi0 training...'

    # Start event-by-event loop
    counter = 0
    while (counter < 1000):
        try:
            counter = input(
                'Hit Enter to continue to next evt, or type in an event number to jump to that event:'
            )
        except SyntaxError:
            counter = counter + 1
        my_proc.process_event(counter)
        # get objets and display
        display_reco.clear()
        display_mc.clear()

        data_reco = my_ana.GetData()
        part_reco = my_ana.GetParticles()
        data_mc = my_ana.GetData(True)
        part_mc = my_ana.GetParticles(True)

        #display_reco.add(part_reco, data_reco, False)
        display_mc.add(part_mc, data_mc, False)
        display_reco.add(part_reco, data_reco, False)

        for x in xrange(part_mc.size()):
            print part_mc[x].Diagram()
        #for x in xrange(part_reco.size()):
        #    print part_reco[x].Diagram()
        #Last argument decides if un-taggeg showers/tracks should have random color (True) or grey (False)

        display_reco.show()
        display_mc.show()

    #my_proc.run()

    print
    print '    Finished running pi0 training...'
    print

    #
    # Store trained parameters
    #
    if ask_binary('  Store train result parameters? [y/n]:'):
        my_algo.StoreParams()
        print '  Parameter stored...'
        print

    return True
Exemple #2
0
algo_pi0.setMinShrEnergy(30.)
#algo_pi0.setFidXmin(27)
#algo_pi0.setFidXmax(27)
#algo_pi0.setFidYmin(27)
#algo_pi0.setFidYmax(27)
#algo_pi0.setFidZmin(27)
#algo_pi0.setFidZmax(27)
algo_pi0.setMinOpeningAngle(0.3)
#algo_pi0.setMinShrEnergySum(100)
#algo_pi0.setPi0DirYMin(-0.8)
#algo_pi0.setMaxEnergyAsy(0.8)
#algo_pi0.setMaxIP(10)
#algo_pi0.setMaxIP(7.5)

# Create MC filter
my_anaunit = fmwk.Pi0Reco()  #ExampleERSelection()
#my_anaunit.SetMinEDep(50)# Sets min shower to be seen in an event
my_proc = fmwk.ana_processor()
my_proc.enable_filter(True)
my_proc.enable_event_alignment(False)

#Set up the configure params for the type of reco/mc
#my_anaunit._mgr.ClearCfgFile()
#my_anaunit._mgr.AddCfgFile('/home/ryan/LARLITE/../ertool_default.cfg')

# Set up ana for 1pi0 selection
my_ana = ertool.ERAnapi0ana()

#Here is a filter

# add on the algos
Exemple #3
0
def main():

    if len(sys.argv) < 2:
        msg = '\n'
        msg += "Usage: %s $INPUT_ROOT_FILE\n" % sys.argv[0]
        msg += '\n'
        sys.stderr.write(msg)
        sys.exit(1)

    # Create Pi0 Filter
    pi0_filter = fmwk.Pi0ContainmentFilter()

    # Create ana_processor instance
    my_proc = fmwk.ana_processor()
    my_proc.enable_filter(True)
    # Create algorithm
    my_algo = ertool.AlgoPi0()
    my_algo.setVerbose(True)
    my_algo.setMinShrEnergy(10)
    my_algo.setMaxShrEnergy(1000)
    my_algo.setIPMax(10)
    my_algo.setMinFitMass(50)
    my_algo.setMaxFitMass(200)
    my_algo.setAngleMax(3.14)
    # Create filter
    my_filter = ertool.FilterECut()
    my_filter.SetECut(10)  #cut on 10 MeV
    # Create analysis unit
    my_ana = fmwk.Pi0Reco()  #ExampleERSelection()

    # Set Producers
    # First Argument: True = MC, False = Reco
    #my_ana.SetShowerProducer(True,"mcreco");
    #my_ana.SetTrackProducer(True,"mcreco");
    #my_ana.SetVtxProducer(True,"generator");

    my_ana.SetShowerProducer(False, "showerreco")
    my_ana.SetTrackProducer(False, "")
    my_ana.SetVtxProducer(False, "")

    my_ana._mgr.SetFilter(my_filter)
    my_ana._mgr.SetAlgo(my_algo)
    my_ana._mgr._training_mode = True

    # Obtain input root files
    files = []
    for x in xrange(len(sys.argv) - 1):
        fname = sys.argv[x + 1]
        if fname.endswith('.root'):
            files.append(fname)

    print
    print '  Running AlgoPi0 training script...'
    print
    print '  Identified %2d input files' % len(files)
    if not ask_binary('  Proceed? [y/n]:'): return False
    print
    if ask_binary('  Load previously extracted fit parameters? [y/n]:'):
        my_algo.LoadParams()

    my_proc.set_io_mode(fmwk.storage_manager.kREAD)
    #my_proc.add_process(pi0_filter);
    my_proc.add_process(my_ana)
    for f in files:
        my_proc.add_input_file(f)

    my_ana._mgr.Reset()
    my_proc.set_ana_output_file("pi0_training.root")
    print '    Start running pi0 training...'

    my_proc.run()

    print
    print '    Finished running pi0 training...'
    print

    #
    # Store trained parameters
    #
    if ask_binary('  Store train result parameters? [y/n]:'):
        my_algo.StoreParams()
        print '  Parameter stored...'
        print

    return True