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 )
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])
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 )
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)
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 )
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)