示例#1
0
def allowedChannels(mDarkPhoton):
    print "Allowed channels for dark photon mass = %3.3f" % mDarkPhoton
    allowedDecays = {'A -> hadrons': 'yes'}
    if mDarkPhoton > 2. * mass('e'):
        allowedDecays.update({'A -> e- e+': 'yes'})
        print "allowing decay to e"
    if mDarkPhoton > 2. * mass('mu'):
        allowedDecays.update({'A -> mu- mu+': 'yes'})
        print "allowing decay to mu"
    if mDarkPhoton > 2. * mass('tau'):
        allowedDecays.update({'A -> tau- tau+': 'yes'})
        print "allowing decay to tau"

    return allowedDecays
示例#2
0
 def allowedChannels(self):
     print "Allowed channels for dark photon mass = %3.3f"%self.mDarkPhoton
     allowedDecays = {'A -> hadrons':'yes'}
     if self.mDarkPhoton > 2.*mass('e-'):
         allowedDecays.update({'A -> e- e+':'yes'})
         print "allowing decay to e"
     if self.mDarkPhoton > 2.*mass('mu-'):
         allowedDecays.update({'A -> mu- mu+':'yes'})
         print "allowing decay to mu"
     if self.mDarkPhoton > 2.*mass('tau-'):
         allowedDecays.update({'A -> tau- tau+':'yes'})
         print "allowing decay to tau"
                     
     return allowedDecays
示例#3
0
    def allowedChannels(self):
        print("Allowed channels for dark photon mass = %3.3f" %
              self.mDarkPhoton)
        allowedDecays = {'A -> hadrons': 'yes'}
        if self.mDarkPhoton > 2. * mass('e-'):
            allowedDecays.update({'A -> e- e+': 'yes'})
            print("allowing decay to e")
        if self.mDarkPhoton > 2. * mass('mu-'):
            allowedDecays.update({'A -> mu- mu+': 'yes'})
            print("allowing decay to mu")
        if self.mDarkPhoton > 2. * mass('tau-'):
            allowedDecays.update({'A -> tau- tau+': 'yes'})
            print("allowing decay to tau")

        return allowedDecays
示例#4
0
    def scaleNEventsIncludingHadrons(self, n):
        """ Very simple patch to take into account A' -> hadrons """
        brh = self.hadronicBranchingRatio()
        #print brh
        # if M > m(c cbar):
        if self.mDarkPhoton > 2. * mass('c'):
            visible_frac = 1.
        else:
            visible_frac = 2. / 3.

        increase = brh * visible_frac
        #print increase
        return n * (1. + increase)
示例#5
0
 def scaleNEventsIncludingHadrons(self,n):
     """ Very simple patch to take into account A' -> hadrons """
     brh = self.hadronicBranchingRatio()
     #print brh
     # if M > m(c cbar):
     if self.mDarkPhoton > 2.*mass('c'):
         visible_frac = 1.
     else:
         visible_frac = 2./3.
 
     increase = brh*visible_frac
     #print increase
     return n*(1. + increase)
示例#6
0
 def leptonicDecayWidth(self,lepton): # mDarkPhoton in GeV
     """ Dark photon decay width into leptons, in GeV (input short name of lepton family) """
     ml = mass(lepton)
     #print 'lepton %s mass %.3e'%(lepton,ml)
     
     constant = (1./3.) * alphaQED * self.mDarkPhoton * pow(self.epsilon, 2.)
     if 2.*ml < self.mDarkPhoton:
         rad = math.sqrt( 1. - (4.*ml*ml)/(self.mDarkPhoton*self.mDarkPhoton) )
     else:
         rad = 0.
         
     par = 1. + (2.*ml*ml)/(self.mDarkPhoton*self.mDarkPhoton)
     tdw=math.fabs(constant*rad*par)
     #print 'Leptonic decay width to %s is %.3e'%(lepton,tdw)
     return tdw