예제 #1
0
    def __init__(self, moduleName, config):
        LineBuilder.__init__(self, moduleName, config)

        from Configurables import LoKi__VoidFilter as VoidFilter
        from Configurables import LoKi__Hybrid__CoreFactory as CoreFactory
        modules = CoreFactory('CoreFactory').Modules
        for i in ['LoKiTracks.decorators']:
            if i not in modules: modules.append(i)

        selD02K3Pi = makeD02K3Pi(moduleName, config['D0Cuts'])
        selDstar2D0pi = makeDstar2D0pi(moduleName, selD02K3Pi,
                                       config['DstarCuts'])

        _lines = {"Untagged": selD02K3Pi, "Tagged": selDstar2D0pi}

        self.line_untagged = None
        self.line_tagged = None

        for name, sel in _lines.iteritems():
            _filter = None
            if config['ApplyGECs'][name]:

                _filter = ""

                nLong = config["MaxLongTracks"][name]
                if nLong is not None:
                    if _filter != "":
                        _filter += " & "
                    _filter += "(TrSOURCE('Rec/Track/Best') >> TrLONG >> (TrSIZE < %s))" % nLong

                nDigits = config["MaxSpdDigits"][name]
                if nDigits is not None:
                    if _filter != "":
                        _filter += " & "
                    _filter += "(CONTAINS('Raw/Spd/Digits') < %s)" % nDigits

                nClusters = config["MaxITClusters"][name]
                if nClusters is not None:
                    if _filter != "":
                        _filter += " & "
                    _filter += "(CONTAINS('Raw/IT/Clusters') < %s)" % nClusters

                nVELO = config["MaxVeloTracks"][name]
                if nVELO is not None:
                    if _filter != "":
                        _filter += " & "
                    _filter += "(TrSOURCE('Rec/Track/Best') >> TrVELO >> (TrSIZE < %s))" % nVELO

            _line = StrippingLine(sel.name() + "Line",
                                  prescale=config['Prescale'][name],
                                  postscale=config['Postscale'][name],
                                  selection=sel,
                                  checkPV=config['CheckPV'][name],
                                  FILTER=_filter,
                                  HLT=config['HltFilter'][name])
            if name == 'Untagged': self.line_untagged = _line
            else: self.line_tagged = _line

        self.registerLine(self.line_untagged)
        self.registerLine(self.line_tagged)
    def __init__(self, name, config):  # {

        LineBuilder.__init__(self, name, config)

        from Configurables import LoKi__VoidFilter as VoidFilter
        from Configurables import LoKi__Hybrid__CoreFactory as CoreFactory
        modules = CoreFactory('CoreFactory').Modules
        for i in ['LoKiTracks.decorators']:
            if i not in modules: modules.append(i)

        d02KKmumu_name = 'D0For' + name
        dstar_name = name

        self.inPions = DataOnDemand(Location="Phys/StdLoosePions/Particles")
        self.inMuons = DataOnDemand(Location="Phys/StdLooseMuons/Particles")
        self.inKaons = DataOnDemand(Location="Phys/StdLooseKaons/Particles")

        self.selD02KKmumu = makeD02KKmumu(
            d02KKmumu_name,
            inputSel=[self.inMuons, self.inKaons],
            TrackChi2max=config['TrackChi2max'],
            DDauKPTmin=config['DDauKPTmin'],
            DDauKPmin=config['DDauKPmin'],
            DDauMuPTmin=config['DDauMuPTmin'],
            DDauMuPmin=config['DDauMuPmin'],
            DDauKDelPIDmin=config['DDauKDelPIDmin'],
            DDauMuDelPIDmin=config['DDauMuDelPIDmin'],
            DCombMassWind=config['DCombMassWind'],
            DCombAMAXDOCAmax=config['DCombAMAXDOCAmax'],
            DMothPTmin=config['DMothPTmin'],
            DMothBPVDIRAmin=config['DMothBPVDIRAmin'],
            DMothMIPDVmax=config['DMothMIPDVmax'],
            DMothMIPCHI2DVmax=config['DMothMIPCHI2DVmax'],
            DMothBPVVDmin=config['DMothBPVVDmin'],
            DMothBPVDCHI2min=config['DMothBPVDCHI2min'],
            DMothBPVVDZmin=config['DMothBPVVDZmin'],
            DMothVFASPFmax=config['DMothVFASPFmax'])

        self.selDstar2D0Pi_D02KKmumu = makeDstar2D0Pi(
            dstar_name,
            inputSel=[self.inPions, self.selD02KKmumu],
            DstarCombMassWind=config['DstarCombMassWind'],
            DstarCombAMAXDOCAmax=config['DstarCombAMAXDOCAmax'],
            DstarMothVFASPFmax=config['DstarMothVFASPFmax'],
            DstarMothPTmin=config['DstarMothPTmin'],
            DstarMothDMmin=config['DstarMothDMmin'],
            DstarMothDMmax=config['DstarMothDMmax'],
            DstarMothSlpiMIPDVmax=config['DstarMothSlpiMIPDVmax'],
            DstarMothSlpiMIPCHI2DVmax=config['DstarMothSlpiMIPCHI2DVmax'],
            DstarMothSlpiPTmin=config['DstarMothSlpiPTmin'])

        self.line_Dstar2D0Pi_D02KKmumu = StrippingLine(
            dstar_name + "Line",
            prescale=config['LinePrescale'],
            postscale=config['LinePostscale'],
            FILTER="TrSOURCE('Rec/Track/Best') >> TrLONG >> (TrSIZE < %s )" %
            config['NTracksLim'],
            algos=[self.selDstar2D0Pi_D02KKmumu])
        self.registerLine(self.line_Dstar2D0Pi_D02KKmumu)
예제 #3
0
 def __init__(self):
     from Configurables import LoKi__Hybrid__CoreFactory as Factory
     modules = Factory().Modules
     for module in ['LoKiTrigger.decorators']:
         if module not in modules: modules.append(module)
     from Inputs import Hlt2BiKalmanFittedForwardTracking
     inputs = Hlt2BiKalmanFittedForwardTracking().hlt2PrepareTracks()
     ec = "CONTAINS('%s') < %%(GEC_MAX)s" % inputs.outputSelection()
     Hlt2VoidFilter.__init__(self, 'TopoEvent', ec, [inputs], shared=True)
예제 #4
0
 def __init__(self, name):
     from Configurables import LoKi__Hybrid__CoreFactory as Factory
     modules =  Factory().Modules
     for i in [ 'LoKiTrigger.decorators' ] :
         if i not in modules : modules.append(i)
     from HltTracking.Hlt2TrackingConfigurations import Hlt2BiKalmanFittedForwardTracking as Hlt2LongTracking
     tracks = Hlt2LongTracking().hlt2PrepareTracks()
     code = ("CONTAINS('%s')" % tracks.outputSelection()) + " < %(NTRACK_MAX)s"
     Hlt2VoidFilter.__init__(self, "TrackEff" + name, code, [tracks], shared = True, nickname = 'TrackGEC')
예제 #5
0
def globalEventCutFilter(name, MaxTrSIZE=None):
    #
    if MaxTrSIZE == None: return None

    from Configurables import LoKi__VoidFilter as VoidFilter
    from Configurables import LoKi__Hybrid__CoreFactory as CoreFactory
    modules = CoreFactory('CoreFactory').Modules
    for i in ['LoKiTracks.decorators']:
        if i not in modules: modules.append(i)

    _code = "(recSummary(LHCb.RecSummary.nTracks, 'Rec/Track/Best') < %(MaxTrSIZE)s )" % locals(
    )

    return _code
예제 #6
0
def globalEventCutFilter(name, 
	                 MaxTrSIZE = None 
	                 ) :
  
  if MaxTrSIZE == None : return None
  
  _code = ""
  from Configurables import LoKi__VoidFilter as VoidFilter
  from Configurables import LoKi__Hybrid__CoreFactory as CoreFactory
  modules = CoreFactory('CoreFactory').Modules
  for i in ['LoKiTracks.decorators']:
     if i not in modules : modules.append(i)
  if MaxTrSIZE != None : _code += "TrSOURCE('Rec/Track/Best') >> (TrSIZE < %(MaxTrSIZE)s )" % locals()
  globalFilter= VoidFilter(name)
  globalFilter.Code = _code
  
  return globalFilter
예제 #7
0
def globalEventCutFilter(name, MaxTrSIZE=None):

    if MaxTrSIZE == None: return None

    _code = ""
    from Configurables import LoKi__VoidFilter as VoidFilter
    from Configurables import LoKi__Hybrid__CoreFactory as CoreFactory
    modules = CoreFactory('CoreFactory').Modules
    for i in ['LoKiTracks.decorators']:
        if i not in modules: modules.append(i)
    if MaxTrSIZE != None:
        _code += "(recSummaryTrack(LHCb.RecSummary.nLongTracks, TrLONG) < %(MaxTrSIZE)s )" % locals(
        )

    globalFilter = VoidFilter(name)
    globalFilter.Code = _code

    return globalFilter
예제 #8
0
    def __init__(self, moduleName, config):
        from Configurables import LoKi__VoidFilter as VoidFilter
        from Configurables import LoKi__Hybrid__CoreFactory as CoreFactory

        LineBuilder.__init__(self, moduleName, config)
        modules = CoreFactory('CoreFactory').Modules
        for i in ['LoKiTracks.decorators']:
            if i not in modules: modules.append(i)

        dcuts = config['DCuts']
        bcuts = config['BCuts']
        bchcuts = config['BachCuts']
        dcuts['DauTrkChi2Max'] = config['TrkChi2Max']
        bchcuts['TrkChi2Max'] = config['TrkChi2Max']
        prescales = config['Prescales']

        d0RSSels = {'D2hh': makeD2hhRS(moduleName, dcuts)}
        #d0WSSels = {'D2hhWS' : makeD2hhWS(moduleName,dcuts)}
        dchRSSels = {'D2hhh': makeD2hhhRS(moduleName, dcuts)}
        dchWSSels = {'D2hhhWS': makeD2hhhWS(moduleName, dcuts)}

        # right-sign lines
        for name, sel in d0RSSels.iteritems():
            tos, tis = makeB2D0hRS(moduleName, name, sel, bcuts, bchcuts)
            self.makeLine(tos, name, config)
            self.makeLine(tis, name + 'TIS', config)

        for name, sel in dchRSSels.iteritems():
            tos, tis = makeB02DhRS(moduleName, name, sel, bcuts, bchcuts)
            self.makeLine(tos, name, config)
            self.makeLine(tis, name + 'TIS', config)

        # wrong-sign lines
        for name, sel in dchRSSels.iteritems():  # using RS here is correct!
            wssel = dchWSSels[name + 'WS']
            tos, tis = makeB02DhWS(moduleName, name, sel, wssel, bcuts,
                                   bchcuts)
            self.makeLine(tos, name + 'WS', config)
예제 #9
0
    def __init__(self, moduleName, config):
        LineBuilder.__init__(self, moduleName, config)

        from Configurables import LoKi__VoidFilter as VoidFilter
        from Configurables import LoKi__Hybrid__CoreFactory as CoreFactory
        modules = CoreFactory('CoreFactory').Modules
        for i in ['LoKiTracks.decorators', 'LoKiNumbers.decorators']:
            if i not in modules: modules.append(i)

        selD02K3Pi = makeD02K3Pi(moduleName, config['D0Cuts'])
        selDstar2D0pi = makeDstar2D0pi(moduleName, selD02K3Pi,
                                       config['DstarCuts'])

        _lines = {"Untagged": selD02K3Pi, "Tagged": selDstar2D0pi}

        self.line_untagged = None
        self.line_tagged = None

        for name, sel in _lines.iteritems():
            _filter = None
            if config['ApplyGECs'][name]:

                _filter = ""

                nLong = config["MaxLongTracks"][name]
                if nLong is not None:
                    if _filter != "":
                        _filter += " & "
                    _filter += "(recSummaryTrack(LHCb.RecSummary.nLongTracks, TrLONG) < %s)" % nLong

                nDigits = config["MaxSpdDigits"][name]
                if nDigits is not None:
                    if _filter != "":
                        _filter += " & "
                    _filter += "( recSummary(LHCb.RecSummary.nSPDhits, 'Raw/Spd/Digits') < %s ) " % nDigits

                nClusters = config["MaxITClusters"][name]
                if nClusters is not None:
                    if _filter != "":
                        _filter += " & "
                    _filter += " ( recSummary(LHCb.RecSummary.nITClusters, 'Raw/IT/Clusters') < %s ) )" % nClusters

                nVELO = config["MaxVeloTracks"][name]
                if nVELO is not None:
                    if _filter != "":
                        _filter += " & "
                    _filter += "(recSummaryTrack(LHCb.RecSummary.nVeloTracks, TrVELO) < %s)" % nVELO

            if _filter is not None and _filter != "" and config['ApplyGECs'][
                    name]:
                _filter = {
                    "Code":
                    _filter,
                    "Preambulo": [
                        "from LoKiTracks.decorators import *",
                        "from LoKiNumbers.decorators import *"
                    ]
                }

            _line = StrippingLine(sel.name() + "Line",
                                  prescale=config['Prescale'][name],
                                  postscale=config['Postscale'][name],
                                  selection=sel,
                                  checkPV=config['CheckPV'][name],
                                  FILTER=_filter,
                                  HLT=config['HltFilter'][name])
            if name == 'Untagged': self.line_untagged = _line
            else: self.line_tagged = _line

        self.registerLine(self.line_untagged)
        self.registerLine(self.line_tagged)
예제 #10
0
'''

__author__ = ['Andrew Powell', 'Sebastian Schleich']
__date__ = '2011/02/28'
__version__ = '$Revision: 1.8 $'
__all__ = ('InclPhiConf')

from Gaudi.Configuration import *
from GaudiConfUtils.ConfigurableGenerators import FilterDesktop, CombineParticles
from PhysSelPython.Wrappers import Selection, DataOnDemand
from StrippingConf.StrippingLine import StrippingLine
from StrippingUtils.Utils import LineBuilder
from StandardParticles import StdNoPIDsKaons

from Configurables import LoKi__Hybrid__CoreFactory as CoreFactory
modules = CoreFactory('CoreFactory').Modules
for i in ['LoKiTracks.decorators']:
    if i not in modules: modules.append(i)


class InclPhiConf(LineBuilder):
    __configuration_keys__ = (
        'KaonPT'  # MeV
        ,
        'KaonDLL'  # adimensional
        ,
        'PhiMassWindow'  # MeV
        ,
        'HighPtPrescale'  # adimensional
        ,
        'LowPtPrescale'  # adimensional
예제 #11
0
    def __init__(self, name, config) : # {

        LineBuilder.__init__(self, name, config)


        from Configurables import LoKi__VoidFilter as VoidFilter
        from Configurables import LoKi__Hybrid__CoreFactory as CoreFactory
        modules = CoreFactory('CoreFactory').Modules
        for i in ['LoKiTracks.decorators']:
            if i not in modules : modules.append(i)


        d02KKpipi_name = 'D0For'+name
        dstar_name  = name

        self.inPions = DataOnDemand(Location = "Phys/StdLoosePions/Particles")
        self.inKaons = DataOnDemand(Location = "Phys/StdLooseKaons/Particles")

        self.selD02KKpipi = makeD02KKpipi( d02KKpipi_name,
                                   inputSel = [ self.inPions, self.inKaons ],
                                   TrackChi2max = config['TrackChi2max'],
                                   DDauKPTmin = config['DDauKPTmin'],
                                   DDauKPmin = config['DDauKPmin'],
                                   DDauPiPTmin = config['DDauPiPTmin'],
                                   DDauPiPmin = config['DDauPiPmin'],
                                   DDauKDelPIDmin = config['DDauKDelPIDmin'],
                                   DDauPiDelPIDmin = config['DDauPiDelPIDmin'],
                                   DCombMassWind = config['DCombMassWind'],
                                   DCombAMAXDOCAmax = config['DCombAMAXDOCAmax'],
                                   DMothPTmin = config['DMothPTmin'],
                                   DMothBPVDIRAmin = config['DMothBPVDIRAmin'],
                                   DMothMIPDVmax = config['DMothMIPDVmax'],
                                   DMothMIPCHI2DVmax = config['DMothMIPCHI2DVmax'],
                                   DMothBPVVDmin = config['DMothBPVVDmin'],
                                   DMothBPVDCHI2min = config['DMothBPVDCHI2min'],
                                   DMothBPVVDZmin = config['DMothBPVVDZmin'],
                                   DMothVFASPFmax = config['DMothVFASPFmax']
                                   )

        self.selDstar2D0Pi_D02KKpipi = makeDstar2D0Pi( dstar_name,
                   inputSel = [ self.inPions, self.selD02KKpipi ],
                   DstarCombMassWind = config['DstarCombMassWind'],
                   DstarCombAMAXDOCAmax = config['DstarCombAMAXDOCAmax'],
                   DstarMothVFASPFmax = config['DstarMothVFASPFmax'],
                   DstarMothPTmin = config['DstarMothPTmin'],
                   DstarMothDMmin = config['DstarMothDMmin'],
                   DstarMothDMmax = config['DstarMothDMmax'],
                   DstarMothSlpiMIPDVmax = config['DstarMothSlpiMIPDVmax'],
                   DstarMothSlpiMIPCHI2DVmax = config['DstarMothSlpiMIPCHI2DVmax'],
                   DstarMothSlpiPTmin = config['DstarMothSlpiPTmin']
                                                   )


        self.line_Dstar2D0Pi_D02KKpipi = StrippingLine( dstar_name + 'Line',
                                         prescale   = config['LinePrescale'],
                                         postscale = config['LinePostscale'],
                                         FILTER = { "Code":"(recSummaryTrack(LHCb.RecSummary.nLongTracks, TrLONG) < %s )"% config['NTracksLim'],
                                                   "Preambulo":["from LoKiTracks.decorators import *"]},
                                         algos = [ self.selDstar2D0Pi_D02KKpipi ]
                                        )
        self.registerLine(self.line_Dstar2D0Pi_D02KKpipi)