aboutsummaryrefslogtreecommitdiffstats
path: root/utils/gf.py
diff options
context:
space:
mode:
Diffstat (limited to 'utils/gf.py')
-rw-r--r--utils/gf.py156
1 files changed, 0 insertions, 156 deletions
diff --git a/utils/gf.py b/utils/gf.py
deleted file mode 100644
index de21cc5..0000000
--- a/utils/gf.py
+++ /dev/null
@@ -1,156 +0,0 @@
-# author : S. Mandalia
-# s.p.mandalia@qmul.ac.uk
-#
-# date : March 17, 2018
-
-"""
-Useful GolemFit wrappers for the BSM flavour ratio analysis
-"""
-
-from __future__ import absolute_import, division
-
-from functools import partial
-
-import numpy as np
-
-try:
- import GolemFitPy as gf
-except:
- print 'Running without GolemFit'
- pass
-
-from utils.enums import DataType, Likelihood, SteeringCateg
-from utils.misc import enum_parse, parse_bool, thread_factors
-from utils.param import ParamSet
-
-
-FITTER = None
-
-
-def fit_flags(llh_paramset):
- default_flags = {
- # False means it's not fixed in minimization
- 'astroFlavorAngle1' : True,
- 'astroFlavorAngle2' : True,
- 'convNorm' : True,
- 'promptNorm' : True,
- 'muonNorm' : True,
- 'astroNorm' : True,
- 'astroParticleBalance' : True,
- # 'astroDeltaGamma' : True,
- 'cutoffEnergy' : True,
- 'CRDeltaGamma' : True,
- 'piKRatio' : True,
- 'NeutrinoAntineutrinoRatio' : True,
- 'darkNorm' : True,
- 'domEfficiency' : True,
- 'holeiceForward' : True,
- 'anisotropyScale' : True,
- 'astroNormSec' : True,
- 'astroDeltaGammaSec' : True
- }
- flags = gf.FitParametersFlag()
- gf_nuisance = []
- for param in llh_paramset:
- if param.name in default_flags:
- print 'Setting param {0:<15} to float in the ' \
- 'minimisation'.format(param.name)
- flags.__setattr__(param.name, False)
- gf_nuisance.append(param)
- return flags, ParamSet(gf_nuisance)
-
-
-def steering_params(args):
- steering_categ = args.ast
- params = gf.SteeringParams(gf.sampleTag.MagicTau)
- params.quiet = False
- if args.debug:
- params.fastmode = False
- else:
- params.fastmode = True
- params.simToLoad= steering_categ.name.lower()
- params.evalThreads = args.threads
-
- if hasattr(args, 'binning'):
- params.minFitEnergy = args.binning[0] # GeV
- params.maxFitEnergy = args.binning[-1] # GeV
- else:
- params.minFitEnergy = 6E4 # GeV
- params.maxFitEnergy = 1E7 # GeV
- params.load_data_from_text_file = False
- params.do_HESE_reshuffle=False
- params.use_legacy_selfveto_calculation = False
-
- return params
-
-
-def setup_asimov(params):
- print 'Injecting the model', params
- asimov_params = gf.FitParameters(gf.sampleTag.MagicTau)
- for parm in params:
- asimov_params.__setattr__(parm.name, float(parm.value))
- FITTER.SetupAsimov(asimov_params)
-
-
-def setup_realisation(params, seed):
- print 'Injecting the model', params
- asimov_params = gf.FitParameters(gf.sampleTag.MagicTau)
- for parm in params:
- asimov_params.__setattr__(parm.name, float(parm.value))
- FITTER.Swallow(FITTER.SpitRealization(asimov_params, seed))
-
-
-def setup_fitter(args, asimov_paramset):
- global FITTER
- datapaths = gf.DataPaths()
- sparams = steering_params(args)
- npp = gf.NewPhysicsParams()
- FITTER = gf.GolemFit(datapaths, sparams, npp)
- if args.data is DataType.ASIMOV:
- setup_asimov(FITTER, asimov_paramset)
- elif args.data is DataType.REALISATION:
- seed = args.seed if args.seed is not None else 1
- setup_realisation(FITTER, asimov_paramset, seed)
- elif args.data is DataType.REAL:
- print 'Using MagicTau DATA'
-
-
-def get_llh(params):
- fitparams = gf.FitParameters(gf.sampleTag.MagicTau)
- for parm in params:
- fitparams.__setattr__(parm.name, float(parm.value))
- llh = -FITTER.EvalLLH(fitparams)
- return llh
-
-
-def get_llh_freq(params):
- print 'setting to {0}'.format(params)
- fitparams = gf.FitParameters(gf.sampleTag.MagicTau)
- for parm in params:
- fitparams.__setattr__(parm.name, float(parm.value))
- FITTER.SetFitParametersSeed(fitparams)
- llh = -FITTER.MinLLH().likelihood
- return llh
-
-
-def data_distributions():
- hdat = FITTER.GetDataDistribution()
- binedges = np.asarray(
- [FITTER.GetZenithBinsData(), FITTER.GetEnergyBinsData()]
- )
- return hdat, binedges
-
-
-def gf_argparse(parser):
- parser.add_argument(
- '--debug', default='False', type=parse_bool, help='Run without fastmode'
- )
- parser.add_argument(
- '--data', default='asimov', type=partial(enum_parse, c=DataType),
- choices=DataType, help='select datatype'
- )
- parser.add_argument(
- '--ast', default='p2_0', type=partial(enum_parse, c=SteeringCateg),
- choices=SteeringCateg,
- help='use asimov/fake dataset with specific steering'
- )