from gammapy.data import DataStore
from gammapy.spectrum import SpectrumDatasetMaker
ds = DataStore(...)
obs_list = ds.get_observations(...)
# Create datasets
datasets = SpectrumDatasetMaker(obs_list, target, on_radius, ...) # possibly add e.g. time filtering here
# internally:
datasets = Datasets()
for obs in obs_list:
dataset = SpectrumDatasetMakerObs(obs) # filter ON events and extract IRFs
datasets.append(dataset)
return datasets
# could write datasets to disk here and read them again for the next step
# Estimate the background
datasets = ReflectedRegionsBackgroundMaker(datasets, obs_list)
# internally:
for dataset, obs in zip(datasets, obs_list):
dataset = ReflectedRegionsBackgroundMakerObs(dataset, obs) # create OFF regions, filter OFF events
# dataset is now a SpectrumDatasetOnOff!
return datasets
# Alternatively:
datasets = OffBackgroundMaker(datasets, off_obs_list)
# internally:
for dataset, off_obs in zip(datasets, off_obs_list):
dataset = OffBackgroundMakerObs(dataset, off_obs) # extract OFF counts from off_obs
# dataset is now a SpectrumDatasetOnOff!
return datasets
# Alternatively:
datasets = TemplateSpectrumBackgroundMaker(datasets)
# internally:
for dataset in datasets:
dataset = TemplateSpectrumBackgroundMakerObs(dataset) # could e.g. fit norm of IRF background
# dataset still is a SpectrumDataset
return datasets
datasets.stack() # if desired
datasets.write() # if needed
# modeling/fitting to follow
datasets = MapDatasetMaker(obs_list, geom, geom_true=..., ...)
# internally:
datasets = Datasets()
for obs in obs_list:
dataset = MapDatasetMakerObs(obs, geom) # creates MapDatasets, extracts IRFs for each obs
datasets.append(dataset)
return datasets
# could write datasets to disk here and read them again for the next step
# Estimate the background
datasets = RingBackgroundMaker(datasets)
# internally:
for dataset in datasets:
dataset = RingBackgroundMaker(dataset) # create OFF map, OFF exposure map
# dataset is now a MapDatasetOnOff!
return datasets
# Alternatively:
datasets = TemplateMapBackgroundMaker(datasets)
# internally:
for dataset in datasets:
dataset = TemplateMapBackgroundMakerObs(dataset) # could e.g. fit norm, tilt of IRF background
# dataset still is a MapDataset
return datasets
datasets.stack() # if desired
datasets.write() # if needed
# modeling/fitting to follow