Blazar emission modeling¶
MMDC supports three blazar broadband emission models:
| Model | Description |
|---|---|
SSC |
Synchrotron Self-Compton |
EIC |
External Inverse Compton |
HADRONIC |
Hadronic emission model |
Input Data Format¶
All modeling endpoints expect a CSV file with three columns (case-sensitive, lowercase):
Validate CSV Before Submitting¶
validation = client.modeling.validate_csv("observations.csv")
print(validation.success) # True/False
print(validation.data_points) # Number of valid rows
print(validation.columns) # ["frequency", "flux", "flux_err"]
print(validation.frequency_range) # [min, max]
print(validation.flux_range) # [min, max]
SSC Model Fitting¶
result = client.modeling.batch_infer(
"observations.csv",
z=0.158, # Redshift (0 < z <= 10)
ebl=True, # EBL absorption correction
model_type="SSC",
)
print(result.pdf_link) # URL to PDF report
print(result.csv_best_parameters_link) # URL to best-fit parameters CSV
print(result.csv_best_model_link) # URL to best-fit model CSV
print(result.best_parameters) # Dict of parameter name -> {value, error}
Fixed Parameters¶
Fix specific model parameters instead of fitting them:
result = client.modeling.batch_infer(
"observations.csv",
z=0.158,
ebl=True,
model_type="SSC",
fixed_parameters={
"log_B": -1.5,
"lorentz_factor": 20.0,
},
)
SSC parameters: log_B, log_electron_luminosity, log_gamma_cut, log_gamma_min, log_radius, lorentz_factor, spectral_index
EIC parameters: log_B, log_Ld, log_MBH, log_electron_luminosity, log_gamma_cut, log_gamma_min, log_radius, lorentz_factor, spectral_index, log_nu_BLR, log_nu_DT
HADRONIC parameters: log_B, log_Le, log_gamma_e_cut, log_gamma_e_min, log_gamma_p_cut, log_Lp, log_R, lorentz_factor, pe, pp
EIC Model Fitting¶
result = client.modeling.batch_infer(
"observations.csv",
z=0.5,
ebl=True,
model_type="EIC",
fixed_parameters={"log_nu_BLR": 15.0, "log_nu_DT": 13.5},
)
HADRONIC Model with Neutrino Parameters¶
Hadronic models require additional neutrino likelihood parameters. Choose either Poisson or chi-square likelihood:
Poisson likelihood:
result = client.modeling.batch_infer(
"observations.csv",
z=1.0,
ebl=True,
model_type="HADRONIC",
likelihood_type="poisson",
n_icecube=3, # Number of IceCube neutrino events
dt=12.0, # Observation period in months
)
Chi-square likelihood: