コード例 #1
0
 def ChiAndCharm ( self ) :
     """
     Get charm & chi:
     Select events with at leats one charm particle and
     at least one chi  
     """
     sel = self._selection ( 'ChiAndCharm_Selection' )
     if sel : return sel 
     
     cmb = CombineParticles (
         ##
         DecayDescriptors = [
         "[ Upsilon(1S) -> J/psi(1S) D0        gamma ]cc" ,
         "[ Upsilon(1S) -> J/psi(1S) D*(2010)+ gamma ]cc" ,
         "[ Upsilon(1S) -> J/psi(1S) D+        gamma ]cc" ,
         "[ Upsilon(1S) -> J/psi(1S) D_s+      gamma ]cc" ,
         "[ Upsilon(1S) -> J/psi(1S) Lambda_c+ gamma ]cc" 
         ] ,
         ##
         DaughtersCuts = {
         #                    J/psi                              Upsilon(1S) 
         "J/psi(1S)" : " ( M  < 3.21 * GeV ) | in_range ( 9.3 * GeV , M , 9.6 * GeV ) " ,  
         "gamma"     : " ( PT > 500  * MeV ) & ( CL > 0.05 ) " 
         },
         ## require chi_(c,b) 
         CombinationCut = """
         AM13 - AM1 < 1.01 * GeV 
         """,
         ## 
         MotherCut      = "  ALL " 
         )
     ##
     sel_ = Selection (
         "ChiAndCharmPreFor" +   self.name()            , 
         Algorithm           =   cmb                    ,
         RequiredSelections  = [ self.DiMuonAndCharm () , ## fake one!
                                 self.DiMuon         () ,
                                 self.PromptCharm    () ,
                                 StdLooseAllPhotons     ] 
         )
     ## apply pi0-veto-tagger ! 
     from GaudiConfUtils.ConfigurableGenerators import Pi0Veto__Tagger 
     tag = Pi0Veto__Tagger (
         MassWindow     = 25 * MeV  ,
         MassChi2       = -1        ,
         ExtraInfoIndex = 25010     ## unique ! 
         )
     ## the final selection 
     sel = Selection  (
         "SelChiAndCharmFor" +   self.name()  ,
         Algorithm           =   tag          ,
         RequiredSelections  = [ sel_         ]
         )
     
     return self._add_selection( 'ChiAndCharm_Selection' , sel ) 
コード例 #2
0
def makeDsg_vetoed(name,
                   DsgSel
                   ):
    
    from GaudiConfUtils.ConfigurableGenerators import Pi0Veto__Tagger
    
    _g = Pi0Veto__Tagger(
        MassWindow     = 25,
        MassChi2       = -1           ,
        ExtraInfoIndex = 25040     ## unique !
        )
    
    return Selection(name, Algorithm=_g, RequiredSelections=[DsgSel])
コード例 #3
0
 def etap2rhog ( self ) :
     """
     Preselection for Eta' -> rho gamma
     
     """
     sel = self._selection ( 'Etap2rhog_Selection')
     if sel : return sel
     
     ## 
     _alg     = CombineParticles (
         ##
         DecayDescriptor = " eta_prime -> pi+ pi- gamma" ,
         ##
         DaughtersCuts   = {
         'gamma' :  self['GammaCut']
         } ,
         ## 
         CombinationCut  = """
         ( APT > %s ) & 
         in_range  ( 500 * MeV , AM12 , 950 * MeV ) & 
         ( ADAMASS ( 'eta_prime' ) <    100 * MeV ) 
         """ % ( 0.9 * self['X0PT'] ) ,
         ##
         MotherCut       = """
         ( PT  > %s ) & ( chi2vx < 16 )
         """ %         self['X0PT'] ,
         ##   
         ParticleCombiners = { '' : "LoKi::VertexFitter" }
         )
     ## 
     _sel  = Selection (
         "SelPreEtap2rhogFor" + self.name()  ,
         Algorithm          =   _alg ,
         RequiredSelections = [ self.pions () ,
                                self.gamma () ] 
         )
     ##
     _tag = Pi0Veto__Tagger (
         MassWindow     = 25 * MeV  ,
         MassChi2       = -1        ,
         ExtraInfoIndex = 25017     ## unique ! 
         )
     ## 
     sel  = Selection (
         "SelEtap2rhogFor" + self.name()  ,
         Algorithm          =   _tag   ,
         RequiredSelections = [ _sel   ] 
         )
     
     return self._add_selection( 'Etap2rhog_Selection' , sel ) 
コード例 #4
0
    def ChiAndW(self):
        """
        select dimuon + W+
        """
        sel = self._selection('ChiW_Selection')
        if sel: return sel

        _alg = CombineParticles(
            ##
            DecayDescriptor="[chi_b2(2P)  -> J/psi(1S) gamma mu+]cc",
            ##
            DaughtersCuts={
                "J/psi(1S)":
                " ( M  < 3.21 * GeV ) | in_range ( 8.5 * GeV , M , 12.0 * GeV ) ",
                'gamma': self['GammaChi']
            },
            ## mimic chi_(c,b):
            CombinationCut="""
            ( AM12 - AM1 < 1.05 * GeV ) | 
            ( AM12 - AM1 < 1.05 * GeV )  
            """,
            MotherCut="  ALL ")

        _sel = Selection(
            "SelPreChiAndWFor" + self._name,
            Algorithm=_alg,
            RequiredSelections=[
                self.DiMuonAndW(),  ## fake!
                self.W(),
                self.DiMuon(),
                StdLooseAllPhotons
            ])

        ## apply pi0-veto-tagger !
        from GaudiConfUtils.ConfigurableGenerators import Pi0Veto__Tagger
        _tag = Pi0Veto__Tagger(
            MassWindow=25 * MeV,
            MassChi2=-1,
            ExtraInfoIndex=25013  ## unique ! 
        )

        sel = Selection("SelChiAndWFor" + self._name,
                        Algorithm=_tag,
                        RequiredSelections=[_sel])

        return self._add_selection('ChiW_Selection', sel)
コード例 #5
0
 def ChiAndDiMuon ( self ) : 
     """
     Construct Chi_(c,b) + dumuon line 
     """
     sel = self._selection ( 'ChiAndDiMuon_Selection' )
     if sel : return sel 
     
     _alg = CombineParticles (
         ##
         DecayDescriptor =  "chi_b2(1P)  -> J/psi(1S) J/psi(1S) gamma " ,
         ##
         DaughtersCuts = {
         'gamma'     : '( PT > 500 * MeV ) & ( CL > 0.05 )'
         } ,
         ## mimic chi_(c,b):
         CombinationCut   = """
         ( AM13 - AM1 < 1.05 * GeV ) |
         ( AM23 - AM2 < 1.05 * GeV ) 
         """ ,
         MotherCut        = "  ALL " 
         )
     
     _sel = Selection  (
         "SelPreChiAndDiMuonFor" + self._name  ,
         Algorithm          = _alg ,
         RequiredSelections = [ self.DoubleDiMuon () , ##fake! 
                                self.DiMuon       () ,
                                StdLooseAllPhotons   ] 
         )
     
     ## apply pi0-veto-tagger ! 
     from GaudiConfUtils.ConfigurableGenerators import Pi0Veto__Tagger 
     _tag = Pi0Veto__Tagger (
         MassWindow     = 25 * MeV  ,
         MassChi2       = -1        ,
         ExtraInfoIndex = 25011     ## unique ! 
         )
     
     ## the final selection 
     sel = Selection  (
         "SelChiAndDiMuonFor" + self._name  ,
         Algorithm          =   _tag  ,
         RequiredSelections = [ _sel ]
         )
     
     return self._add_selection ( 'ChiAndDiMuon_Selection' , sel )    
コード例 #6
0
    def DiChi(self):
        """
        Construct 2xChi_(c,b) line 
        """
        sel = self._selection('DiChi_Selection')
        if sel: return sel

        _alg = CombineParticles(
            ##
            DecayDescriptor="chi_b2(1P)  -> J/psi(1S) J/psi(1S) gamma gamma",
            ##
            DaughtersCuts={'gamma': self['GammaChi']},
            ## mimic 2xchi_(c,b):
            CombinationCut="""
            ( ( AM13 - AM1 < 1.05 * GeV ) & ( AM24 - AM2 < 1.05 * GeV ) ) | 
            ( ( AM14 - AM1 < 1.05 * GeV ) & ( AM23 - AM2 < 1.05 * GeV ) ) 
            """,
            MotherCut="  ALL ")

        _sel = Selection(
            "SelPreDiChiFor" + self._name,
            Algorithm=_alg,
            RequiredSelections=[
                self.ChiAndDiMuon(),  ##fake! 
                self.DiMuon(),
                StdLooseAllPhotons
            ])

        ## apply pi0-veto-tagger !
        from GaudiConfUtils.ConfigurableGenerators import Pi0Veto__Tagger
        _tag = Pi0Veto__Tagger(
            MassWindow=25 * MeV,
            MassChi2=-1,
            ExtraInfoIndex=25012  ## unique ! 
        )

        sel = Selection("SelDiChiFor" + self._name,
                        Algorithm=_tag,
                        RequiredSelections=[_sel])

        return self._add_selection('DiChi_Selection', sel)