Пример #1
0
     if cfg.getboolean('list','listmode')==False:    
         #parameter/prior scan settings set here:
         uselog = cfg.getboolean('prioroptions','uselog')            #whether to use linear or log priors for mass parameters
         massprior = priors.logprior if uselog else priors.linear    #choose the mass parameter prior
         
         #get ranges for scan (must be tuples of length 2, i.e. (min,max))
         M0range = cfg.get2tuple('prioroptions','M0range')
         M12range = cfg.get2tuple('prioroptions','M12range')
         TanBrange = cfg.get2tuple('prioroptions','TanBrange')
         A0range = cfg.get2tuple('prioroptions','A0range')
         #nuis par tuple values interpreted as mean and std of gaussian prior
         Mtopmeanstd = cfg.get2tuple('prioroptions','Mtopmeanstd') 
          
         priorslist = [  ('M0',   massprior(*M0range)),
                         ('M12',  massprior(*M12range)),
                         ('TanB', priors.linear(*TanBrange)),
                         ('A0',   priors.linear(*A0range)),
                         # NOTE: Was using MZ too, but currently ISAJET will ignore everything except Mtop.
                         #('ialphaem', priors.gaussian(127.918,0.018)),  #Jun 2009 hep-ph/0906.0957v2, they reference PDG 2008, but I can't find the value myself.
                         #('alphas', priors.gaussian(0.1184,0.0007)),    #PDG 2011 - Physical Constants
                         #('MZ', priors.gaussian(91.1876,0.0021)),   #PDG 2011 - Physical Constants
                         #('Mbot', priors.gaussian(4.19,0.18)),      #PDG 2011 quark summary - http://pdg.lbl.gov/2010/tables/rpp2010-sum-quarks.pdf (NOTE - lower uncertainty is 0.06 not 0.18, altered distribution to make it symmetric for simplicity)
                         ('Mtop', priors.gaussian(*Mtopmeanstd)),    #PDG 2011 quark summary - http://pdg.lbl.gov/2010/tables/rpp2010-sum-quarks.pdf
                     ]
         #=================SET PRIOR=================================
         #----------(to be used by PyScanner)---------------------------
         self.scanargs['prior'] = priors.genindepprior(priorslist)     
         self.scanargs['parorder'] = ['M0','M12','TanB','A0','Mtop']      
     
     #==========LIKELIHOOD FUNCTION SETUP============================
 
Пример #2
0
            def setupCNMSSMAk():
                """Same as CNMSSM, but with Akappa GUT unification broken, i.e.
                Akappa is scanned independently"""
                # 'whichcode' is used to initialise the nmspec wrapper. 
                # Determines whether nmspec or nmhdecay is used to generate 
                # spectrum.
                self.whichcode = 'mSUGRA' #->nmspec
                
                print "Setting up prior for CNMSSMAk..."
                #parameter/prior scan settings set here:
                uselog = cfg.getboolean('prioroptions','uselog')
                massprior = priors.logprior if uselog else priors.linear
                
                #get ranges for scan (must be tuples of length 2, i.e. (min,max))
                M0range = cfg.get2tuple('prioroptions','M0range')
                M12range = cfg.get2tuple('prioroptions','M12range')
                TanBrange = cfg.get2tuple('prioroptions','TanBrange')
                A0range = cfg.get2tuple('prioroptions','A0range')
                Akapparange = cfg.get2tuple('prioroptions','Akapparange')
                lambdarange = cfg.get2tuple('prioroptions','lambdarange')
                #nuis par tuple values interpreted as mean and std of gaussian prior
                Mtopmeanstd = cfg.get2tuple('prioroptions','Mtopmeanstd') 
                 
                priorslist = [  ('M0',   massprior(*M0range)),
                                ('M12',  massprior(*M12range)),
                                ('TanB', priors.linear(*TanBrange)),
                                ('A0',   priors.linear(*A0range)),
                                ('Akappa', priors.linear(*Akapparange)),
                                ('lambda', priors.linear(*lambdarange)),
                                ('Mtop', priors.gaussian(*Mtopmeanstd)),   
                            ]
                            
                def CNMSSMAkparlinks(paramvector):
                    # No extra parameter links to add, just copies paramvector
                    # into inputvector. See NMSSM10 for example of what this
                    # feature can be used for.
                    # paramvector - dictionary of scan parameter values,
                    # transformed by self.prior (from pyscanner, sent via
                    # likelihood function defined below)
                    
                    p = paramvector
                    try:
                        i = self.inputvector
                    except AttributeError:
                        # if we haven't yet, need to create the inputvector dict
                        self.inputvector = p.copy()
                        i = self.inputvector
                        
                    # copy all the new values from p to i, except for 's'
                    # because it doesn't exist in i.
                    for key, val in p.items():
                        i[key] = val
                    
                    return i
                    
                self.addlinks = CNMSSMAkparlinks # called by likelihood function
                
                #=================SET PRIOR=================================
                #----------(to be used by PyScanner)---------------------------
                self.scanargs['prior'] = priors.genindepprior(priorslist)     

                # Parse parameters to cluster from config file
                allpars = ['M0','M12','TanB','A0','Akappa','lambda','Mtop']
                self.scanargs['parorder'] = orderpars(clusterpars,allpars)
Пример #3
0
           def setupNMSSM11():
               """Same as NMSSM9, but also varying Alambda and Akappa"""
               # 'whichcode' is used to initialise the nmspec wrapper. 
               # Determines whether nmspec or nmhdecay is used to generate 
               # spectrum.
               self.whichcode = 'generalNMSSM' #->nmhdecay
               
               print "Setting up prior for NMSSM11..."
               #parameter/prior scan settings set here:
               uselog = cfg.getboolean('prioroptions','uselog')
               massprior = priors.logprior if uselog else priors.linear
               #mass2prior = priors.logprior if uselog else None
               #parameters: MTOP TANB M2 ML3=ME3=MD3 MQ3 MU3
               #LAMBDA KAPPA MHD^2 MHD^2 
               #get ranges for scan (must be tuples of length 2, i.e. (min,max))
               M2range = cfg.get2tuple('prioroptions','M2range')
               MD3range = cfg.get2tuple('prioroptions','MD3range')
               MQ3range = cfg.get2tuple('prioroptions','MQ3range')
               MU3range = cfg.get2tuple('prioroptions','MU3range')
               TanBrange = cfg.get2tuple('prioroptions','TanBrange')
               AU3range = cfg.get2tuple('prioroptions','AU3range')
               Alambdarange = cfg.get2tuple('prioroptions','Alambdarange')
               Akapparange = cfg.get2tuple('prioroptions','Akapparange')
               lambdarange = cfg.get2tuple('prioroptions','lambdarange')
               kapparange = cfg.get2tuple('prioroptions','kapparange')
               srange = cfg.get2tuple('prioroptions','srange')
               #nuis par tuple values interpreted as mean and std of gaussian prior
               Mtopmeanstd = cfg.get2tuple('prioroptions','Mtopmeanstd') 
               
               
               
               priorslist = [  ('M2',   massprior(*M2range)),
                               ('MD3',  massprior(*MD3range)),                              
                               ('MQ3',  massprior(*MQ3range)),
                               ('MU3',  massprior(*MU3range)),
                               ('TanB', priors.linear(*TanBrange)),
                               ('AU3',  priors.linear(*AU3range)),
                               ('lambda', priors.linear(*lambdarange)),
                               ('kappa', priors.linear(*kapparange)),
                               ('Alambda', priors.linear(*Alambdarange)),
                               ('Akappa', priors.linear(*Akapparange)),
                               ('s', priors.linear(*srange)),
                               ('Mtop', priors.gaussian(*Mtopmeanstd)),   
                           ]
               # First and second generation sfermions all set to high masses 
               # in template file.
               # Trilinears (except AU3=AU2=AU1, Alambda, Akappa) all set to zero
               # We set ML3=ME3=MD3 manually below
               
               # nmhdecay then sets 
               #  MD3=MD2=MD1,
               #  ME3=ME2=ME1 and
               #  ML3=ML2=ML1.
               # also
               #  MQ3=MQ2=MQ1
               #  MU3=MU2=MU1
               #  AU3=AU2=AU1
                                                               
               # Extra links between SLHA input parameters
               def NMSSM11parlinks(paramvector):
                   # Need to link the scanned parameters to the ones actually
                   # written to the nmspec input template file. In this case we
                   # actually only need to add a couple of extra ones and set
                   # them equal to MD3.
                   # paramvector - dictionary of scan parameter values,
                   # transformed by self.prior (from pyscanner, sent via
                   # likelihood function defined below)
                   
                   p = paramvector
                   try:
                       i = self.inputvector
                   except AttributeError:
                       # if we haven't yet, need to create the inputvector dict
                       self.inputvector = p.copy()
                       i = self.inputvector
                       del i['s']  #this parameter is scanned only, doesn't
                                   #exist in nmspec SLHA input file. Is
                                   #transformed to mueff.
                   # copy all the new values from p to i, except for 's'
                   # because it doesn't exist in i.
                   for key, val in p.items():
                       if key!='s': i[key] = val
                   # MD3 links
                   i['ML3'] = p['MD3'] # nmspec then sets ML3=ML2=ML1 by default
                   i['ME3'] = p['MD3'] # nmspec then sets ME3=ME2=ME1 by default
                   
                   # scanning s (singlet vev) but nmhdecay wants mu_eff as input
                   i['mueff'] = p['lambda']*p['s']
 
                   return i
                   
               self.addlinks = NMSSM11parlinks # called by likelihood function
               
               # New feature: specify a valid set of parameters to use which
               # will generate the full set of observables to be recorded. Will
               # speed up the 'testing' loop of pyscanner.
               #self.testvals = {'M2':,'MD3':,'MQ3':,'MU3':,'MHU^2':,
               #  'MHD^2':,'TanB':,'AU3':,'lambda':,'Mtop':]
               #=================SET PRIOR=================================
               #----------(to be used by PyScanner)---------------------------
               self.scanargs['prior'] = priors.genindepprior(priorslist)     
               
               # Parse parameters to cluster from config file
               allpars = ['M2','s','MD3','MQ3','MU3','TanB',\
               'AU3','lambda','kappa','Alambda','Akappa','Mtop']
               self.scanargs['parorder'] = orderpars(clusterpars,allpars)
Пример #4
0
         uselog = cfg.getboolean('prioroptions','uselog')            #whether to use linear or log priors for mass parameters
         massprior = priors.logprior if uselog else priors.linear    #choose the mass parameter prior
         
         #get ranges for scan (must be tuples of length 2, i.e. (min,max))
         M0range = cfg.get2tuple('prioroptions','M0range')
         M12range = cfg.get2tuple('prioroptions','M12range')
         TanBrange = cfg.get2tuple('prioroptions','TanBrange')
         A0range = cfg.get2tuple('prioroptions','A0range')
         lambdarange = cfg.get2tuple('prioroptions','lambdarange')
         Akapparange = cfg.get2tuple('prioroptions','Akapparange')
         #nuis par tuple values interpreted as mean and std of gaussian prior
         Mtopmeanstd = cfg.get2tuple('prioroptions','Mtopmeanstd') 
          
         priorslist = [  ('M0',   massprior(*M0range)),
                         ('M12',  massprior(*M12range)),
                         ('TanB', priors.linear(*TanBrange)),
                         ('A0',   priors.linear(*A0range)),
                         ('lambda', priors.linear(*lambdarange)),
                         ('Akappa', priors.linear(*Akapparange)),
                         ('Mtop', priors.gaussian(*Mtopmeanstd)),   
                     ]
         #=================SET PRIOR=================================
         #----------(to be used by PyScanner)---------------------------
         self.scanargs['prior'] = priors.genindepprior(priorslist)     
         self.scanargs['parorder'] = ['M0','M12','TanB','A0',
                                      'lambda','Akappa','Mtop']      
     
     #==========LIKELIHOOD FUNCTION SETUP============================
 
     #----------Initialise likelihood calculator---------------------
     LFCalc = LFmod.LikeFuncCalculator(configfile)                   #Initialise likelihood calculator object, according to options set in configfile