from PhysSelPython.Wrappers import AutomaticData, Selection, SelectionSequence

# Need to know the address, since this is an old-style selection.
# Treat particles already on the DST as data-on-demand
JpsiSel = AutomaticData(
    Location="/Event/Dimuon/Phys/StrippingJpsiInclusiveCombine")

# Filter the J/Psi
from Configurables import FilterDesktop
_jpsiFilter = FilterDesktop('jpsiFilter', Code='ALL')

# Add some histograms. See DaVinci tutorial 4.
from Configurables import LoKi__Hybrid__PlotTool as PlotTool

_jpsiFilter.HistoProduce = True
_jpsiFilter.addTool(PlotTool("InputPlots"))
_jpsiFilter.InputPlots.Histos = {
    "P/1000": ('momentum', 0, 150),
    "PT/1000": ('pt_%1%', 0, 5, 750),
    "M": ('mass in MeV_%1%_%2%_%3%', 2.8 * Units.GeV, 3.2 * Units.GeV)
}
_jpsiFilter.addTool(PlotTool("OutputPlots"))
_jpsiFilter.OutputPlots.Histos = {
    "P/1000": ('momentum', 0, 150),
    "PT/1000": ('pt_%1%', 0, 5, 750),
    "M": ('mass in MeV_%1%_%2%_%3%', 2.8 * Units.GeV, 3.2 * Units.GeV)
}
#

JpsiFilterSel = Selection(name='JpsiFilterSel',
                          Algorithm=_jpsiFilter,
from PhysSelPython.Wrappers import DataOnDemand, Selection, SelectionSequence

particleLocation = selSequence.outputLocation()

BsSel = DataOnDemand('DOD_Bs',
                     Location = particleLocation)

from Configurables import FilterDesktop
_bsFilter = FilterDesktop('_bsFilter',
                          Code = 'ALL')

from Configurables import LoKi__Hybrid__PlotTool as PlotTool

_bsFilter.HistoProduce = True
_bsFilter.addTool( PlotTool("InputPlots") )
# Note that it's using the same functors as above. Hence the same syntax.
_bsFilter.InputPlots.Histos = { "P/1000"  : ('momentum',0,500) ,
                                "PT/1000" : ('pt_%1%',0,5,1000) ,
                                "M"       : ('mass in MeV_%1%_%2%_%3%',5.2*Units.GeV,5.6*Units.GeV) }
_bsFilter.addTool( PlotTool("OutputPlots") )
_bsFilter.OutputPlots.Histos = { "P/1000"  : ('momentum',0,500) ,
                                   "PT/1000" : ('pt_%1%',0,5,1000) ,
                                   "M"       : ('mass in MeV_%1%_%2%_%3%',5.2*Units.GeV,5.6*Units.GeV) }
_bsFilter.OutputLevel = 1

BsFilterSel = Selection('HelloWorld',
                        Algorithm = _bsFilter,
                        RequiredSelections = [BsSel] )

from Configurables import CheckPV