diff --git a/pyext/ctools/obsutils.py b/pyext/ctools/obsutils.py index 054a68f..2b8bdfb 100755 --- a/pyext/ctools/obsutils.py +++ b/pyext/ctools/obsutils.py @@ -172,12 +172,13 @@ def fit(obs, log=False, debug=False, chatter=2, edisp=False): # ============================================================== # # Fit observations and determine errors using likelihood profile # # ============================================================== # -def cterror(obs, log=False, debug=False, chatter=2): +def cterror(obs, srcname, log=False, debug=False, chatter=2): """ Perform maximum likelihood fitting of observations in the container. Parameters: - obs - Observation container + obs - Observation container + srcname - Source name Keywords: log - Create log file(s) debug - Create screen dump @@ -186,6 +187,9 @@ def cterror(obs, log=False, debug=False, chatter=2): """ # Allocate cterror application error = ctools.cterror(obs) + + # Set cterror parameters + error["srcname"].string(srcname) # Optionally open the log file if log: diff --git a/scripts/cspull.py b/scripts/cspull.py index 34c29b2..e52f704 100755 --- a/scripts/cspull.py +++ b/scripts/cspull.py @@ -276,7 +276,7 @@ class cspull(ctools.cscript): seed - Random number generator seed """ # Write header - if self.logExplicit(): + if self.logNormal(): self.log.header2("Trial "+str(seed+1)) # Simulate events @@ -294,7 +294,7 @@ class cspull(ctools.cscript): nevents += run.events().number() # Write simulation results - if self.logExplicit(): + if self.logNormal(): self.log.header3("Simulation") self.log.parformat("Number of simulated events") self.log(nevents) @@ -302,8 +302,12 @@ class cspull(ctools.cscript): # Fit model if self.m_profile: - like = obsutils.cterror(obs, \ - log=self.m_log, debug=self.m_debug) + models = obs.models() + for i in range(models.size()): + model_name = models[i].name() + like = obsutils.cterror(obs, model_name, \ + log=self.m_log, \ + debug=self.m_debug) else: like = obsutils.fit(obs, edisp=self.m_edisp, \ log=self.m_log, debug=self.m_debug) @@ -314,7 +318,7 @@ class cspull(ctools.cscript): models = like.obs().models() # Write result header - if self.logExplicit(): + if self.logNormal(): self.log.header3("Pulls") # Gather results @@ -356,7 +360,7 @@ class cspull(ctools.cscript): values["Unc_"+name] = error # Write result - if self.logExplicit(): + if self.logNormal(): self.log.parformat(name) self.log(pull) self.log(" (")