Ejemplo n.º 1
0
    def __init__(self, name):

        JpsiCuts = ( "%(JpsiCuts)s" )
        DauCuts  = ( "%(DauCuts)s" )
        ComCuts  = ( "%(ComCuts)s" )
        MomCuts  = ( "%(MomCuts)s" ) 
        
        from Inputs import BiKalmanFittedPions
        inputs = [ DiMuonFilter("JpsiForBc2JpsiH", JpsiCuts, nickname=name),
                   BiKalmanFittedPions ]
        Hlt2Combiner.__init__(self, name, "[ B_c+ -> J/psi(1S) pi+ ]cc", inputs,                             
                              DaughtersCuts  = { 'pi+' : DauCuts },
                              CombinationCut = ComCuts,
                              MotherCut      = MomCuts,
                              Preambulo = [])
Ejemplo n.º 2
0
    def __init__(self, name):

        DauCuts = ("%(DauCuts)s")
        ComCuts = ("%(ComCuts)s")
        MomCuts = ("%(MomCuts)s")

        from Inputs import Hlt2WidePhi
        inputs = [Hlt2WidePhi]
        Hlt2Combiner.__init__(self,
                              name,
                              "J/psi(1S) -> phi(1020) phi(1020)",
                              inputs,
                              DaughtersCuts={'phi(1020)': DauCuts},
                              CombinationCut=ComCuts,
                              MotherCut=MomCuts,
                              Preambulo=[])
Ejemplo n.º 3
0
    def __init__(self, name,inputs):
        ## opening angle between slow pion and D0 flight
        dot_prod = "(ACHILD( VFASPF( VX ),1)*ACHILD(PX,2) + ACHILD( VFASPF( VY ),1)*ACHILD(PY,2) + ACHILD( VFASPF( VZ ),1)*ACHILD(PZ,2))"
        mag = "math.sqrt(ACHILD( VFASPF( VX ),1)**2+ACHILD( VFASPF( VY ),1)**2+ACHILD( VFASPF( VZ ),1)**2)"
        formula = "(180./3.1415)*acos( %(dot_prod)s / (ACHILD(P,2)*%(mag)s) )" %{"dot_prod":dot_prod,
                                                                                 "mag":mag}

        DstCombinationCut = "("+formula+" < %(Dst_MaxAOA)s) & (APT > %(Dst_MinAPT)s ) & (AALLSAMEBPV)"
        DstMotherCut      = "(Dst_M - D0_M < %(Dst_MaxSimpleFitDeltaMass)s)"
        DaughtersCuts     = {'pi+' : "(PT > %(Slowpi_MinPt)s)"}
        from HltTracking.HltPVs import PV3D
        from Preambulo import DstPreambulo
        Hlt2Combiner.__init__(self, name, "[D*(2010)+ -> D0 pi+]cc", inputs,
                              dependencies = [TrackGEC('TrackGEC'), PV3D('Hlt2')],
                              CombinationCut = DstCombinationCut, MotherCut = DstMotherCut,
                              DaughtersCuts = DaughtersCuts, Preambulo = DstPreambulo())
Ejemplo n.º 4
0
 def __init__(self, tag, n, inputs):
     if n == 3:
         decays = [
             "D*(2010)+ -> K*(892)0 K+", "D*(2010)+ -> K*(892)0 K-",
             "D*(2010)+ -> K*(892)0 KS0", "D*(2010)+ -> K*(892)0 KS0",
             "D*(2010)+ -> K*(892)0 Lambda0",
             "D*(2010)+ -> K*(892)0 Lambda~0"
         ]
     elif n == 4:
         decays = [
             "B0 -> D*(2010)+ K-", "B0 -> D*(2010)+ K+",
             "B0 -> D*(2010)+ KS0", "B0 -> D*(2010)+ Lambda0",
             "B0 -> D*(2010)+ Lambda~0"
         ]
     else:
         decays = [
             "K*(892)0 -> K+ K+", "K*(892)0 -> K+ K-", "K*(892)0 -> K- K-",
             "K*(892)0 -> K+ KS0", "K*(892)0 -> K- KS0",
             "K*(892)0 -> K+ Lambda0", "K*(892)0 -> K- Lambda0",
             "K*(892)0 -> K+ Lambda~0", "K*(892)0 -> K- Lambda~0",
             "K*(892)0 -> KS0 KS0"
         ]
     cc = (
         "(AM < 7000*MeV) & ((ANUM((ID=='KS0') | (ABSID=='Lambda0')) > 0) "
         "| ((AALLSAMEBPV | (AMINCHILD(MIPCHI2DV(PRIMARY)) > 16)) "
         "& (AMAXDOCA('LoKi::DistanceCalculator') <"
         " %(RUN1_AMAXDOCA_MAX)s)))")
     mc = "(BPVDIRA > 0) & (BPVVDCHI2 > %(RUN1_BPVVDCHI2_MIN)s)"
     if tag == 'RAD':
         decays = ['B+ -> K*(892)0  gamma']
         cc = "AM > 0"
     from HltTracking.HltPVs import PV3D
     dep = [PV3D('Hlt2')]
     if tag == 'RAD':
         from HltLine.HltDecodeRaw import DecodeL0CALO
         dep.append(DecodeL0CALO)
     from Hlt2Lines.Utilities.Hlt2MergedStage import Hlt2MergedStage
     merged = Hlt2MergedStage('Run1Topo%s%iBody' % (tag, n),
                              inputs,
                              shared=True)
     Hlt2Combiner.__init__(self,
                           'Run1Topo%s%iBody' % (tag, n),
                           decays, [merged],
                           shared=True,
                           dependencies=dep,
                           CombinationCut=cc,
                           MotherCut=mc)
Ejemplo n.º 5
0
    def __init__(self, inputs):

        dc = {}
        dc['mu+'] = "(PT > %(TRK_PT_MIN)s) & (P > %(TRK_P_MIN)s) & (TRGHOSTPROB < %(MUMUDD_GHOSTPROB)s)"
        cc = "(ACUTDOCACHI2(20, ''))"
        mc = "(VFASPF(VCHI2PDOF) < 20) "
        from HltTracking.HltPVs import PV3D
        Hlt2Combiner.__init__(self,
                              'TopoCombineDiMuonDD',
                              "KS0 -> mu+ mu-",
                              inputs,
                              dependencies=[PV3D('Hlt2')],
                              DaughtersCuts=dc,
                              CombinationCut=cc,
                              MotherCut=mc,
                              Preambulo=[],
                              shared=True)
Ejemplo n.º 6
0
    def __init__(self, name, nickname, decayDesc, inputSeq):
        from HltTracking.HltPVs import PV3D
        masscut = "(M < 10500)"

        combcuts = "(AM<11000)"  \
                   "& (AMAXDOCA('LoKi::TrgDistanceCalculator') < %(XcMu_DOCA_MAX)s)" 
        mothercuts = masscut + \
                     "& (VFASPF(VCHI2PDOF) < %(XcMu_VTXCHI2)s) " \
                     "& (BPVDIRA                 > %(XcMu_DIRA)s         ) " \
                     "& (BPVVDCHI2> %(XcMu_FDCHI2)s )" 
        Hlt2Combiner.__init__(self, name, decayDesc, inputSeq,
                              dependencies = [PV3D('Hlt2')],
                              nickname = nickname,
                              CombinationCut = combcuts,
                              MotherCut = mothercuts,
                              Preambulo = [],
                              shared=True)
Ejemplo n.º 7
0
 def __init__(self, name):
     tightMu = ("(PT > %(MuonPT)g)" + "& ( BPVIPCHI2() > %(Chi2IP_Tight)g)")
     dc = {'mu+': tightMu}
     cc = "AALL"
     mc = "ALL"
     from HltTracking.HltPVs import PV3D
     inputs = [goodMuons]
     Hlt2Combiner.__init__(self,
                           name,
                           "[B_c+ -> mu+ mu+ mu-]cc",
                           inputs,
                           dependencies=[
                               MultiMuonFilter('TriMuonMultiMuonFilter'),
                               PV3D('Hlt2')
                           ],
                           DaughtersCuts=dc,
                           CombinationCut=cc,
                           MotherCut=mc)
Ejemplo n.º 8
0
    def __init__(self, name, decay, inputs, nickname=None):  # {
        cc = ("(in_range( %(AM_MIN)s, AM, %(AM_MAX)s ))" +
              " & ((APT1+APT2) > %(ASUMPT_MIN)s )")
        mc = ("(VFASPF(VCHI2PDOF) < %(VCHI2PDOF_MAX)s)")

        nickname = name if nickname == None else nickname

        Hlt2Combiner.__init__(self,
                              "SMOG" + name,
                              decay,
                              inputs,
                              nickname=nickname,
                              dependencies=[TrackGEC('TrackGEC')],
                              shared=True,
                              tistos='TisTosSpec',
                              CombinationCut=cc,
                              MotherCut=mc,
                              Preambulo=[])
Ejemplo n.º 9
0
    def __init__(self, name):

        DauCuts = ("%(DauCuts)s")
        ComCuts = ("%(ComCuts)s")
        MomCuts = ("%(MomCuts)s")

        from Inputs import Hlt2TightKstar
        inputs = [Hlt2TightKstar]
        Hlt2Combiner.__init__(self,
                              name,
                              "J/psi(1S) -> K*(892)0 K*(892)~0",
                              inputs,
                              DaughtersCuts={
                                  'K*(892)0': DauCuts,
                                  'K*(892)~0': DauCuts
                              },
                              CombinationCut=ComCuts,
                              MotherCut=MomCuts,
                              Preambulo=[])
Ejemplo n.º 10
0
  def __init__(self, name):

    inputs = [Hlt2Muons]
    
    dc = {}
    dc['mu+'] = ("(PT > %(MuPT)s) " 
                 "& (P > %(MuP)s) " 
                 "& (TRGHOSTPROB < %(GhostProb)s) " 
                 "& (PROBNNmu > %(MuProbNNmu)s) ") 
    cc = "(AMAXDOCA('') < %(DOCA)s)" 
    mc = "(VFASPF(VCHI2PDOF) < %(VChi2)s) " 

    Hlt2Combiner.__init__(self, name, "KS0 -> mu+ mu-", inputs,
                          dependencies = [PV3D('Hlt2')],
                          DaughtersCuts  = dc,
                          CombinationCut = cc,
                          MotherCut      = mc,
                          Preambulo = [],
                          shared = True)
Ejemplo n.º 11
0
 def __init__(self, mode, nickname, stat):
     cc = ("(AMAXDOCA('') < %(JPsiDOCA)s)")
     mc = ("(VFASPF(VCHI2PDOF) < %(JPsiVtxChi2)s)" +
           " & (PT > %(JPsiPt)s)" + " & (MIPDV(PRIMARY) < %(JPsiMaxIP)s)" +
           " & (MIPCHI2DV(PRIMARY) < %(JPsiMaxIPchi2)s)" +
           " & (ADMASS('J/psi(1S)') < %(JPsiMassWin)s)")
     inputs = [TagFilter(mode, nickname), ProbeFilter(mode, nickname, stat)]
     Hlt2Combiner.__init__(self,
                           'TrackEff' + nickname + str(mode) + stat +
                           'JPsi',
                           "J/psi(1S) -> mu+ mu-",
                           inputs,
                           dependencies=[PV3D('Hlt2')],
                           nickname=nickname,
                           tistos=[],
                           CombinationCut=cc,
                           MotherCut=mc,
                           Preambulo=[],
                           shared=True)
Ejemplo n.º 12
0
 def __init__(self, name, decay, inputs, shared=False, nickname=None):
     dc = {}
     for child in ['pi+', 'K+', 'p+']:
         dc[child] = "(PT > %(Trk_ALL_PT_MIN)s) & (MIPCHI2DV(PRIMARY) > %(Trk_ALL_MIPCHI2DV_MIN)s)"
     c12 = (" ( AM < (%(AM_MAX)s - %(AM_34)s) ) " +
            "&( ACHI2DOCA(1,2) < %(ACHI2DOCA_MAX)s ) " +
            "&( ADOCA(1,2) < %(ADOCA_MAX)s ) ")
     c123 = (" ( AM < (%(AM_MAX)s - %(AM_4)s) ) " +
             "&( ACHI2DOCA(1,3) < %(ACHI2DOCA_MAX)s ) " +
             "&( ACHI2DOCA(2,3) < %(ACHI2DOCA_MAX)s ) " +
             "&( ADOCA(1,3) < %(ADOCA_MAX)s ) " +
             "&( ADOCA(2,3) < %(ADOCA_MAX)s ) ")
     cc = (" (in_range( %(AM_MIN)s, AM, %(AM_MAX)s )) " +
           "&( (APT1+APT2+APT3+APT4) > %(ASUMPT_MIN)s )" +
           "&( ACHI2DOCA(1,4) < %(ACHI2DOCA_MAX)s ) " +
           "&( ACHI2DOCA(2,4) < %(ACHI2DOCA_MAX)s ) " +
           "&( ACHI2DOCA(3,4) < %(ACHI2DOCA_MAX)s ) " +
           "&( ADOCA(1,4) < %(ADOCA_MAX)s ) " +
           "&( ADOCA(2,4) < %(ADOCA_MAX)s ) " +
           "&( ADOCA(3,4) < %(ADOCA_MAX)s ) " + "&( AP > %(AMOM_MIN)s )")
     mc = ("(VFASPF(VCHI2PDOF) < %(VCHI2PDOF_MAX)s)" +
           " & (BPVDIRA > %(BPVDIRA_MIN)s )" +
           " & (BPVLTIME() > %(BPVLTIME_MIN)s )" +
           " & (BPVVDCHI2 > %(BPVVDCHI2_MIN)s )" +
           " & (PT > %(BPT_MIN)s )" + " & (P  > %(BMOM_MIN)s )")
     from HltTracking.HltPVs import PV3D
     Hlt2Combiner.__init__(
         self,
         name,
         decay,
         inputs,
         shared=shared,
         dependencies=[TrackGEC('TrackGEC'),
                       PV3D('Hlt2')],
         tistos='TisTosSpec',
         combiner=DaVinci__N4BodyDecays,
         DaughtersCuts=dc,
         Combination12Cut=c12,
         Combination123Cut=c123,
         CombinationCut=cc,
         MotherCut=mc,
         Preambulo=[],
         nickname=nickname)
Ejemplo n.º 13
0
 def __init__(self, name):
     dc = {'mu+': "ALL"}
     cc = ("(ADAMASS('tau+') < %(MassWin)g)" +
           "& (AM12 > 2 * PDGM('mu+') + %(DiMuMass)g)")
     mc = ("(VFASPF(VCHI2) < %(VertexChi2)g)" +
           "& (BPVLTIME() * c_light > %(ctau)g)")
     from HltTracking.HltPVs import PV3D
     inputs = [goodMuons]
     Hlt2Combiner.__init__(self,
                           name,
                           "[tau+ -> mu+ mu+ mu-]cc",
                           inputs,
                           dependencies=[
                               MultiMuonFilter('TriMuonMultiMuonFilter'),
                               PV3D('Hlt2')
                           ],
                           DaughtersCuts=dc,
                           CombinationCut=cc,
                           MotherCut=mc)
Ejemplo n.º 14
0
    def __init__(self, name, inputs):
        combination_cuts = "(AM>%(LambdaMuMassLowTight)s*MeV) & (AM<%(XMuMassUpperHigh)s*MeV)"

        mother_cuts = (
            "(VFASPF(VCHI2/VDOF)< %(BVCHI2DOF)s) & (BPVDIRA> %(BDIRA)s)" +
            "& ( MINTREE((ABSID=='Lambda0'),VFASPF(VZ)) - VFASPF(VZ) > %(LambdaZ)s *mm )"
        )

        decay = "[B- -> Lambda0 mu-]cc"
        Hlt2Combiner.__init__(
            self,
            name,
            decay,
            inputs,
            nickname='BLambdaMu',
            dependencies=[PV3D('Hlt2')],
            # DaughtersCuts = daughters_cuts,
            CombinationCut=combination_cuts,
            MotherCut=mother_cuts,
            Preambulo=[])
Ejemplo n.º 15
0
    def __init__(self, inputs):

        decays = ['K*(892)0 -> K+ KS0', 'K*(892)0 -> K- KS0']
        cc = ("(APT > %(CMB_PRT_PT_MIN)s) "
              "& (ACUTDOCACHI2(%(CMB_VRT_CHI2_MAX)s, '')) "
              "& (AM < %(CMB_VRT_MCOR_MAX)s) ")
        mc = ("(HASVERTEX)" "& (VFASPF(VCHI2) < %(CMB_VRT_CHI2_MAX)s) ")
        #"& (BPVVDCHI2 > %(CMB_VRT_VDCHI2_MIN)s) "
        #"& (in_range(%(CMB_VRT_ETA_MIN)s, BPVETA,"
        #" %(CMB_VRT_ETA_MAX)s)) ")
        from Hlt2Lines.Utilities.Hlt2MergedStage import Hlt2MergedStage
        merged = [Hlt2MergedStage('TopoTrackDiMuonDDTos', inputs, shared=True)]
        from HltTracking.HltPVs import PV3D
        Hlt2Combiner.__init__(self,
                              'TopoTrackDiMuonDDTos',
                              decays,
                              merged,
                              shared=True,
                              tistos='MUMUDDTOS',
                              dependencies=[PV3D('Hlt2')],
                              CombinationCut=cc,
                              MotherCut=mc)
Ejemplo n.º 16
0
    def __init__(self, name, decayDesc, inputSeq):
        from HltTracking.HltPVs import PV3D
        combcuts = "(ADAMASS('D+') < %(DMassWin_HLL)s *MeV)"\
                   "& (AMAXDOCA('') < %(DMAXDOCA_HLL)s)"\
                   "& (AM > %(DMassLow_HLL)s *MeV)"\
                   "& (AM23 > %(DimuonMass_HLL)s *MeV)"\
                   "& (AALLSAMEBPV)"

        mothercuts = "(VFASPF(VCHI2/VDOF) < %(DVCHI2DOF_HLL)s)"\
                     "& (BPVIPCHI2() < %(DIPCHI2_HLL)s)"\
                    "& (BPVVDCHI2 > %(BPVVD_HLL)s)"\
                     "& (BPVDIRA > %(DDIRA_HLL)s)"

        Hlt2Combiner.__init__(self,
                              name,
                              decayDesc,
                              inputSeq,
                              dependencies=[PV3D('Hlt2')],
                              CombinationCut=combcuts,
                              MotherCut=mothercuts,
                              Preambulo=[],
                              shared=True)
Ejemplo n.º 17
0
  def __init__(self, name):

    inputs = [Hlt2Muons]
    
    dc = {}
    dc['mu+'] = ("(PT > %(MuPT)s) " 
                 "& (P > %(MuP)s) " 
                 "& (BPVIPCHI2() < %(MuIPChi2)s) " 
                 "& (TRGHOSTPROB < %(GhostProb)s) " 
                 "& (PROBNNmu > %(MuProbNNmu)s) ") 
    cc = "(APT > %(PT)s) &  (AMAXDOCA('') < %(DOCA)s)" 
    mc = ("(VFASPF(VCHI2PDOF) < %(VChi2)s) " 
          "& (PT > %(PT)s)" 
          "& (HASVERTEX)" 
          "& (BPVVDCHI2 < %(FDChi2)s)")

    Hlt2Combiner.__init__(self, name, "[KS0 -> mu+ mu+]cc", inputs,
                          dependencies = [PV3D('Hlt2')],
                          DaughtersCuts  = dc,
                          CombinationCut = cc,
                          MotherCut      = mc,
                          Preambulo = [])
Ejemplo n.º 18
0
 def __init__(self, name, inputs):
     dc = {
         'K+' : "(MIPCHI2DV(PRIMARY) > %(Trk_ALL_MIPCHI2DV_MIN)s) & "
              + "(PT > %(Trk_ALL_PT_MIN)s)"
         }
     cc = ("(ADAMASS('phi(1020)') < %(AMWindow)s) & "
         + "(ACHI2DOCA(1,2) < %(MaxDocaChi2)s) & "
         + "((APT1+APT2) > %(ASUMPT_MIN)s) & "
         + "(AHASCHILD(MIPCHI2DV(PRIMARY) > %(Trk_1OF2_MIPCHI2DV_MIN)s)) & "
         + "(AHASCHILD(PT > %(Trk_1OF2_PT_MIN)s))")
     mc = ("(ADMASS('phi(1020)') < %(MWindow)s)")
     
     from HltTracking.HltPVs import PV3D
     Hlt2Combiner.__init__(self, 'PID' + name,
                           "phi(1020) -> K+ K-",
                           inputs,
                           shared = True,
                           nickname = name,
                           dependencies = [ PV3D('Hlt2') ],
                           DaughtersCuts = dc,
                           CombinationCut = cc,
                           MotherCut = mc,
                           Preambulo = [ ])
Ejemplo n.º 19
0
    def __init__(self,
                 name,
                 decay,
                 inputs,
                 nickname=None,
                 shared=False,
                 **kwargs):  # {
        '''**kwargs can be anything accepted by the Hlt2Combiner constructor, eg, to enable PV refitting use
        ReFitPVs = True.'''
        dc = {}
        for child in ['pi+', 'K+', 'p+']:
            dc[child] = "(PT > %(Trk_ALL_PT_MIN)s)" \
                        "& (P > %(Trk_ALL_P_MIN)s)"

        ## Assume that the wide mass range is wider than the narrow range.
        combcuts = "in_range(%(Comb_AM_MIN)s,  AM, %(Comb_AM_MAX)s)" \
                   "& ((APT1 > %(Trk_Max_APT_MIN)s) " \
                       "| (APT2 > %(Trk_Max_APT_MIN)s))" \
                   "& (AMINDOCA('') " \
                       "< %(Pair_AMINDOCA_MAX)s )"

        parentcuts = "(VFASPF(VCHI2PDOF) < %(D0_VCHI2PDOF_MAX)s)"

        name = name if not shared else 'SMOG' + name
        Hlt2Combiner.__init__(self,
                              name,
                              decay,
                              inputs,
                              dependencies=[TrackGEC('TrackGEC')],
                              tistos='TisTosSpec',
                              nickname=nickname,
                              shared=shared,
                              DaughtersCuts=dc,
                              CombinationCut=combcuts,
                              MotherCut=parentcuts,
                              Preambulo=[],
                              **kwargs)
Ejemplo n.º 20
0
    def __init__(self, name):

        picut = ("(TRCHI2DOF < %(TrChi2)s )" + " & (PT > %(PionPT)s)" +
                 " & (MIPCHI2DV(PRIMARY) > %(PionIPCHI2)s)")
        dc = {'pi+': picut}
        cc = ("( (APT1 + APT2) > %(SumPT)s )" + " & ( AM > %(BMassWinLow)s )" +
              " & ( AM < %(BMassWinHigh)s )" +
              " & ( ACUTDOCACHI2( %(DOCACHI2)s, '' ) )")
        mc = ("( PT > %(BPT)s )" + " & ( BPVDIRA > %(BDIRA)s )" +
              " & ( BPVIPCHI2() < %(BIPCHI2)s )" +
              " & ( BPVVDCHI2 > %(BFDCHI2)s )")

        from HltTracking.HltPVs import PV3D
        from Inputs import Hlt2NoPIDsPions
        inputs = [Hlt2NoPIDsPions]
        Hlt2Combiner.__init__(self,
                              'B2HH',
                              "B0 -> pi+ pi-",
                              inputs,
                              dependencies=[PV3D('Hlt2')],
                              DaughtersCuts=dc,
                              CombinationCut=cc,
                              MotherCut=mc,
                              Preambulo=[])
Ejemplo n.º 21
0
    def __init__(self, name, decay, inputs, nickname=None):  # {
        dc = {}
        for child in ['pi+', 'K+', 'p+']:
            dc[child] = "(PT > %(Trk_ALL_PT_MIN)s)"
        cc = ("(in_range( %(AM_MIN)s, AM, %(AM_MAX)s ))" +
              " & ((APT1+APT2+APT3) > %(ASUMPT_MIN)s )" +
              " & (AHASCHILD(PT > %(Trk_1OF3_PT_MIN)s))" +
              " & (ANUM(PT > %(Trk_2OF3_PT_MIN)s) >= 2)")
        mc = ("(VFASPF(VCHI2PDOF) < %(VCHI2PDOF_MAX)s)")

        nickname = name if nickname == None else nickname

        Hlt2Combiner.__init__(self,
                              "SMOG" + name,
                              decay,
                              inputs,
                              nickname=nickname,
                              dependencies=[TrackGEC('TrackGEC')],
                              shared=True,
                              tistos='TisTosSpec',
                              DaughtersCuts=dc,
                              CombinationCut=cc,
                              MotherCut=mc,
                              Preambulo=[])
Ejemplo n.º 22
0
  def __init__(self, name):

    inputs = [UnbiasedPhi2KK]

    dc = {}
    dc['phi(1020)'] =  ("(PT > %(PhiPT)s) " 
                        "& (MINTREE('K+'==ABSID,PT) > %(KPT)s) " 
                        "& (MINTREE('K+'==ABSID,BPVIPCHI2()) > %(KIPChi2)s) " 
                        "& (MAXTREE('K+'==ABSID,TRGHOSTPROB) < %(GhostProb)s) " 
                        "& (MINTREE('K+'==ABSID,PROBNNK) > %(KProbNNk)s) " 
                        "& (VFASPF(VCHI2PDOF) < %(VChi2)s) " 
                        "& (in_range( PDGM('phi(1020)') - %(PhiMassWindow)s , M , PDGM('phi(1020)') + %(PhiMassWindow)s ) )") 

    mc =  ("(HASVERTEX)"
           "& (VFASPF(VCHI2) < %(VChi2)s) "
           "& (BPVVDCHI2 > %(FDChi2)s)") 

    Hlt2Combiner.__init__(self, name, "B0 -> phi(1020) phi(1020)", inputs,
                          dependencies = [PV3D('Hlt2')],
                          tistos = 'TisTosSpec',
                          DaughtersCuts  = dc,
                          #CombinationCut = cc,
                          MotherCut      = mc,
                          Preambulo = [])