Commit 715c28b11c565bd3bb18cfc9b224babe6bcb055f

Authored by knodlseder
1 parent 9fb10f84

adapt to new model class structure

Showing 1 changed file with 27 additions and 2 deletions
src/ctobssim/ctobssim.cpp
... ... @@ -201,8 +201,33 @@ GPhotons ctobssim::simulate_photons(void)
201 201 // Load models
202 202 GModels models(m_infile);
203 203  
204   - // Simulate photons
205   - GPhotons photons = models.mc(m_area, dir, m_rad, emin, emax, tmin, tmax, m_ran);
  204 + // Allocate photons
  205 + GPhotons photons;
  206 +
  207 + // Simulate photons for all sky models
  208 + for (int i = 0; i < models.size(); ++i) {
  209 +
  210 + // Get sky model (NULL if not a sky model)
  211 + GModelSky* model = dynamic_cast<GModelSky*>(models(i));
  212 +
  213 + // If we have a sky model then simulate photons
  214 + if (model != NULL) {
  215 +
  216 + // Get photons
  217 + GPhotons p = model->mc(m_area, dir, m_rad, emin, emax, tmin, tmax, m_ran);
  218 +
  219 + // Reserve new space for photons
  220 + photons.reserve(photons.size() + p.size());
  221 +
  222 + // Add photons to list
  223 + for (int k = 0; k < p.size(); ++k) {
  224 + p[k].mcid(i);
  225 + photons.push_back(p[k]);
  226 + }
  227 +
  228 + } // endif: model was a sky model
  229 +
  230 + } // endfor: looped over models
206 231  
207 232 // Dump simulation results
208 233 if (logNormal()) {
... ...