Commit d063ccd141601b3d2af918ffceff2c002c00d817

Authored by Michael Mayer
1 parent e634e79a

adjust interface of ctools to properly load binned response. Modified ctbkgcube accordingly

pyext/ctbkgcube.i
... ... @@ -47,6 +47,7 @@ public:
47 47 void clear(void);
48 48 void run(void);
49 49 void save(void);
  50 + const GCTACubeBackground& bgcube(void) const;
50 51 const GCTAEventCube& cube(void) const;
51 52 const GModels& models(void) const;
52 53 };
... ...
scripts/cspull.py
... ... @@ -107,8 +107,8 @@ class cspull(ctools.cscript):
107 107 pars.append(gammalib.GApplicationPar("tmin","r","h","0.0","","","Start time (MET in s)"))
108 108 pars.append(gammalib.GApplicationPar("tmax","r","a","1800.0","","","Duration (in s)"))
109 109 pars.append(gammalib.GApplicationPar("enumbins","i","a","0","","","Number of energy bins (0=unbinned)"))
110   - pars.append(gammalib.GApplicationPar("npix","i","h","200","","","Number of pixels for binned"))
111   - pars.append(gammalib.GApplicationPar("binsz","r","h","0.05","","","Pixel size for binned (deg/pixel)"))
  110 + pars.append(gammalib.GApplicationPar("npix","i","a","200","","","Number of pixels for binned"))
  111 + pars.append(gammalib.GApplicationPar("binsz","r","a","0.05","","","Pixel size for binned (deg/pixel)"))
112 112 pars.append(gammalib.GApplicationPar("deadc","r","h","0.95","0","1","Deadtime correction factor"))
113 113 pars.append(gammalib.GApplicationPar("rad","r","h","5.0","0","180","Radius of ROI (deg)"))
114 114 pars.append(gammalib.GApplicationPar("pattern","s","h","single","","","Observation pattern (single/four)"))
... ... @@ -140,7 +140,7 @@ class cspull(ctools.cscript):
140 140  
141 141 # Get number of energy bins
142 142 self.m_enumbins = self["enumbins"].integer()
143   -
  143 +
144 144 # Read parameters for binned if requested
145 145 if not self.m_enumbins == 0:
146 146 self.m_npix = self["npix"].integer()
... ...
src/ctbkgcube/ctbkgcube.cpp
... ... @@ -360,18 +360,28 @@ void ctbkgcube::run(void)
360 360 log << n_observations << std::endl;
361 361 }
362 362  
363   - // Create a background model for output background cube and append
  363 + // Set cube background response
  364 + m_background.set(m_bkgcube.map(), m_bkgcube.ebounds());
  365 +
  366 + // Create a background model for the output background cube and append
364 367 // that model to the input model in place of the original
365   - // background model
366   - GEnergies energies;
367   - for (int i = 0; i < m_bkgcube.ebins(); ++i) {
368   - energies.append(m_bkgcube.energy(i));
369   - }
370   - GModelSpatialDiffuseCube spatial(m_bkgcube.map(), energies, 1.0);
371   - GModelSpectralPlaw spectral(1.0, 0.0, GEnergy(1.0, "TeV"));
372   - GCTAModelCubeBackground model(spatial, spectral);
373   - model.name("ctbkgcube default background model");
374   - m_cube_model = m_outmdl.size(); // Store the slot number for save()
  368 + // background models
  369 + // Todo: We might think of creating the spectral model via user parameter
  370 + GCTAModelCubeBackground model(GModelSpectralConst(1.0));
  371 +
  372 + // Set model name
  373 + model.name("BackgroundModel");
  374 +
  375 + // Set model instrument
  376 + // Todo: Account for possibility to have observations from different
  377 + // IACTs in the same container
  378 + model.instruments("CTA,HESS,MAGIC,VERITAS");
  379 +
  380 + // Set model identifier to "0". This is coupled to ctbin, where the binned output
  381 + // observation id is set to 0.
  382 + model.ids("0");
  383 +
  384 + // Append model to output container
375 385 m_outmdl.append(model);
376 386  
377 387 // Log output model
... ... @@ -399,47 +409,19 @@ void ctbkgcube::save(void)
399 409 log.header1("Save background cube");
400 410 }
401 411  
402   - // Create energies container from energy boundaries
403   - GEnergies energies;
404   - for (int i = 0; i < m_ebounds.size(); ++i) {
405   - energies.append(m_ebounds.elogmean(i));
406   - }
407 412  
408 413 // Get output filenames
409 414 std::string outfile = (*this)["outcube"].filename();
410 415 std::string outmodel = (*this)["outmodel"].filename();
411 416  
412   - // Create empty FITS file
413   - GFits fits;
414   -
415   - // Write background cube
416   - m_bkgcube.map().write(fits);
417   -
418   - // Write energies
419   - energies.write(fits);
420   -
421   - // Save FITS file
422   - fits.saveto(outfile, clobber());
  417 + // Save background cube
  418 + m_background.save(outfile, clobber());
423 419  
424 420 // Write output models if filename is valid
425 421 if ((outmodel.length() > 0) && (gammalib::tolower(outmodel) != "none")) {
426 422  
427   - // Set filename of map cube.
428   - if (m_cube_model >= 0) {
429   - GCTAModelCubeBackground* model =
430   - dynamic_cast<GCTAModelCubeBackground*>(m_outmdl[m_cube_model]);
431   - if (model != NULL) {
432   - GModelSpatialDiffuseCube* spatial =
433   - dynamic_cast<GModelSpatialDiffuseCube*>(model->spatial());
434   - if (spatial != NULL) {
435   - spatial->filename(outfile);
436   - }
437   - }
438   - }
439   -
440   - // Save output model container
  423 + // Save output model for binned analyses
441 424 m_outmdl.save(outmodel);
442   -
443 425 }
444 426  
445 427 // Return
... ... @@ -463,6 +445,7 @@ void ctbkgcube::init_members(void)
463 445 m_outmodel.clear();
464 446 m_obs.clear();
465 447 m_bkgcube.clear();
  448 + m_background.clear();
466 449 m_bkgmdl.clear();
467 450 m_outmdl.clear();
468 451 m_ebounds.clear();
... ... @@ -486,6 +469,7 @@ void ctbkgcube::copy_members(const ctbkgcube&amp; app)
486 469 m_outcube = app.m_outcube;
487 470 m_obs = app.m_obs;
488 471 m_bkgcube = app.m_bkgcube;
  472 + m_background = app.m_background;
489 473 m_bkgmdl = app.m_bkgmdl;
490 474 m_outmdl = app.m_outmdl;
491 475 m_ebounds = app.m_ebounds;
... ... @@ -530,22 +514,6 @@ void ctbkgcube::get_parameters(void)
530 514  
531 515 } // endif: there was no observation in the container
532 516  
533   -
534   - // If there are no models associated with the observations then load now
535   - // the model definition from the XML file
536   - if (m_obs.models().size() == 0) {
537   - if ((*this)["inmodel"].is_undefined()) {
538   - std::string msg = "No model definition XML file specified. "
539   - "Please set the \"inmodel\" parameter to the "
540   - "XML file that contains the background model "
541   - "definition.";
542   - throw GException::invalid_value(G_GET_PARAMETERS, msg);
543   - }
544   - std::string inmodel = (*this)["inmodel"].filename();
545   - GModels models(inmodel);
546   - m_obs.models(models);
547   - }
548   -
549 517 // Get the incube filename
550 518 std::string incube = (*this)["incube"].filename();
551 519  
... ... @@ -574,6 +542,21 @@ void ctbkgcube::get_parameters(void)
574 542  
575 543 } // endelse: cube was loaded from file
576 544  
  545 + // If there are no models associated with the observations then load now
  546 + // the model definition from the XML file
  547 + if (m_obs.models().size() == 0) {
  548 + if ((*this)["inmodel"].is_undefined()) {
  549 + std::string msg = "No model definition XML file specified. "
  550 + "Please set the \"inmodel\" parameter to the "
  551 + "XML file that contains the background model "
  552 + "definition.";
  553 + throw GException::invalid_value(G_GET_PARAMETERS, msg);
  554 + }
  555 + std::string inmodel = (*this)["inmodel"].filename();
  556 + GModels models(inmodel);
  557 + m_obs.models(models);
  558 + }
  559 +
577 560 // Get energy definition
578 561 m_ebounds = m_bkgcube.ebounds();
579 562  
... ...
src/ctbkgcube/ctbkgcube.hpp
... ... @@ -59,6 +59,7 @@ public:
59 59 void clear(void);
60 60 void run(void);
61 61 void save(void);
  62 + const GCTACubeBackground& bgcube(void) const;
62 63 const GCTAEventCube& cube(void) const;
63 64 const GModels& models(void) const;
64 65  
... ... @@ -74,7 +75,8 @@ protected:
74 75 std::string m_outcube; //!< Filename of output cube
75 76 std::string m_outmodel; //!< Filename of output XML model
76 77 GObservations m_obs; //!< Observation container
77   - GCTAEventCube m_bkgcube; //!< Background cube
  78 + GCTAEventCube m_bkgcube; //!< Background event cube
  79 + GCTACubeBackground m_background; //!< Background cube response
78 80 GModels m_bkgmdl; //!< CTA background models
79 81 GModels m_outmdl; //!< Output models
80 82 GEbounds m_ebounds; //!< Energy boundaries
... ... @@ -95,6 +97,19 @@ const GCTAEventCube&amp; ctbkgcube::cube(void) const
95 97 return (m_bkgcube);
96 98 }
97 99  
  100 +/***********************************************************************//**
  101 + * @brief Return background response cube containing background rate
  102 + *
  103 + * @return Background response cube.
  104 + ***************************************************************************/
  105 +inline
  106 +const GCTACubeBackground& ctbkgcube::bgcube(void) const
  107 +{
  108 + // Return background cube
  109 + return (m_background);
  110 +}
  111 +
  112 +
98 113  
99 114 /***********************************************************************//**
100 115 * @brief Return background model container
... ...
src/ctbkgcube/ctbkgcube.par
... ... @@ -18,10 +18,10 @@
18 18 # Observational parameters
19 19 #===================
20 20 inobs, f, a, "NONE",,, "Input event list or observation definition file"
21   -inmodel, f, a, "NONE",,, "Input (background) model XML file"
  21 +inmodel, f, a, "NONE",,, "Input model XML file"
22 22 incube, f, a, "NONE",,, "Counts cube for background cube definition"
23 23 outcube, f, a, "bkgcube.fits",,, "Output background cube file"
24   -outmodel, f, a, "NONE",,, "Output (background) model XML file"
  24 +outmodel, f, a, "NONE",,, "Output model XML file"
25 25 caldb, s, a, "dummy",,, "Calibration database"
26 26 irf, s, a, "cta_dummy_irf",,, "Instrument response function"
27 27 #
... ...
src/ctbutterfly/ctbutterfly.par
... ... @@ -22,6 +22,7 @@ inmodel, f, a, &quot;$CTOOLS/share/models/crab.xml&quot;,,, &quot;Source model&quot;
22 22 srcname, s, a, "Crab",,,"Source of interest"
23 23 expcube, f, a, "NONE",,, "Exposure cube file (only needed for stacked analysis)"
24 24 psfcube, f, a, "NONE",,, "PSF cube file (only needed for stacked analysis)"
  25 +bgcube, f, a, "NONE",,, "Background cube file (only needed for stacked analysis)"
25 26 caldb, s, a, "dummy",,, "Calibration database"
26 27 irf, s, a, "cta_dummy_irf",,, "Instrument response function"
27 28 outfile, f, a, "butterfly.txt",,, "Output ascii file"
... ...
src/ctlike/ctlike.par
... ... @@ -21,6 +21,7 @@ inobs, f, a, &quot;events.fits&quot;,,, &quot;Event list, counts cube or observation definit
21 21 inmodel, f, a, "$CTOOLS/share/models/crab.xml",,, "Source model"
22 22 expcube, f, a, "NONE",,, "Exposure cube file (only needed for stacked analysis)"
23 23 psfcube, f, a, "NONE",,, "PSF cube file (only needed for stacked analysis)"
  24 +bgcube, f, a, "NONE",,, "Background cube file (only needed for stacked analysis)"
24 25 caldb, s, a, "dummy",,, "Calibration database"
25 26 irf, s, a, "cta_dummy_irf",,, "Instrument response function"
26 27 outmodel, f, a, "crab_results.xml",,, "Source model output file"
... ...
src/ctmodel/ctmodel.par
... ... @@ -27,6 +27,7 @@ edisp, b, h, no,,, &quot;Apply energy dispersion?&quot;
27 27 inobs, f, a, "NONE",,, "Event list, counts cube or observation definition file"
28 28 expcube, f, a, "NONE",,, "Exposure cube file (only needed for stacked analysis)"
29 29 psfcube, f, a, "NONE",,, "PSF cube file (only needed for stacked analysis)"
  30 +bgcube, f, a, "NONE",,, "Background cube file (only needed for stacked analysis)"
30 31 caldb, s, a, "dummy",,, "Calibration database"
31 32 irf, s, a, "cta_dummy_irf",,, "Instrument response function"
32 33 ra, r, a, 83.63,0,360, "RA of pointing (degrees)"
... ...
src/cttsmap/cttsmap.par
... ... @@ -22,6 +22,7 @@ inmodel, f, a, &quot;$CTOOLS/share/models/crab.xml&quot;,,, &quot;Source model&quot;
22 22 srcname, s, a, "Crab",,, "Test source"
23 23 expcube, f, a, "NONE",,, "Exposure cube file (only needed for stacked analysis)"
24 24 psfcube, f, a, "NONE",,, "PSF cube file (only needed for stacked analysis)"
  25 +bgcube, f, a, "NONE",,, "Background cube file (only needed for stacked analysis)"
25 26 caldb, s, a, "dummy",,, "Calibration database"
26 27 irf, s, a, "cta_dummy_irf",,, "Instrument response function"
27 28 outmap, f, a, "tsmap.fits",,, "Output Test Statistic map"
... ...
src/ctulimit/ctulimit.par
... ... @@ -22,6 +22,7 @@ inmodel, f, a, &quot;$CTOOLS/share/models/crab.xml&quot;,,, &quot;Source model&quot;
22 22 srcname, s, a, "Crab",,, "Source of interest"
23 23 expcube, f, a, "NONE",,, "Exposure cube file (only needed for stacked analysis)"
24 24 psfcube, f, a, "NONE",,, "PSF cube file (only needed for stacked analysis)"
  25 +bgcube, f, a, "NONE",,, "Background cube file (only needed for stacked analysis)"
25 26 caldb, s, a, "dummy",,, "Calibration database"
26 27 irf, s, a, "cta_dummy_irf",,, "Instrument response function"
27 28  
... ...
src/support/ctool.cpp
... ... @@ -731,23 +731,26 @@ void ctool::set_obs_response(GCTAObservation* obs)
731 731 // If the observation contains a counts cube, then first check whether
732 732 // the expcube and psfcube parameters exist and are not NONE
733 733 if (dynamic_cast<const GCTAEventCube*>(obs->events()) != NULL) {
734   - if (has_par("expcube") && has_par("psfcube")) {
  734 + if (has_par("expcube") && has_par("psfcube") && has_par("bgcube")) {
735 735  
736 736 // Get filenames
737 737 std::string expcube = (*this)["expcube"].filename();
738 738 std::string psfcube = (*this)["psfcube"].filename();
  739 + std::string bgcube = (*this)["bgcube"].filename();
739 740  
740 741 // Extract response information if available
741   - if ((expcube != "NONE") && (psfcube != "NONE") &&
  742 + if ((expcube != "NONE") && (psfcube != "NONE") && (bgcube != "NONE") &&
742 743 (gammalib::strip_whitespace(expcube) != "") &&
743   - (gammalib::strip_whitespace(psfcube) != "")) {
  744 + (gammalib::strip_whitespace(psfcube) != "") &&
  745 + (gammalib::strip_whitespace(bgcube) != "")) {
744 746  
745 747 // Get exposure and PSF cubes
746 748 GCTACubeExposure exposure(expcube);
747 749 GCTACubePsf psf(psfcube);
  750 + GCTACubeBackground background(bgcube);
748 751  
749 752 // Set reponse
750   - obs->response(exposure, psf);
  753 + obs->response(exposure, psf, background);
751 754  
752 755 // Signal response availability
753 756 has_response = true;
... ...
test/data/model_background_cube_const.xml deleted
1   -<?xml version="1.0" standalone="no"?>
2   -<source_library title="source library">
3   - <source name="CTABackgroundModel" type="CTACubeBackground" instrument="CTA">
4   - <spectrum type="ConstantValue">
5   - <parameter name="Value" scale="1.0" min="0.01" max="1000.0" value="1.0" free="1"/>
6   - </spectrum>
7   - <spatialModel type="MapCubeFunction" file="data/test_cube.fits">
8   - <parameter name="Normalization" scale="1" value="1" min="0.1" max="10" free="0"/>
9   - </spatialModel>
10   - </source>
11   -</source_library>
test/data/model_background_cube.xml renamed to test/data/model_cube_background.xml
... ... @@ -6,8 +6,5 @@
6 6 <parameter name="Index" scale="1.0" value="0.0" min="-5.0" max="+5.0" free="1"/>
7 7 <parameter name="Scale" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/>
8 8 </spectrum>
9   - <spatialModel type="MapCubeFunction" file="data/test_cube.fits">
10   - <parameter name="Normalization" scale="1" value="1" min="0.1" max="10" free="0"/>
11   - </spatialModel>
12 9 </source>
13 10 </source_library>
... ...
test/data/test_cube.fits deleted
No preview for this file type
test/test_ctools.sh
... ... @@ -91,27 +91,6 @@ else
91 91 echo " events.fits file is not found"
92 92 exit 1
93 93 fi
94   -#
95   -# Run 2
96   -$ctobssim inmodel="data/model_background_cube.xml" \
97   - outevents="events2.fits" \
98   - caldb="irf" \
99   - irf="cta_dummy_irf" \
100   - ra=84.17263 \
101   - dec=22.01444 \
102   - rad=1.0 \
103   - tmin=0.0 \
104   - tmax=1.0 \
105   - emin=0.3 \
106   - emax=8.0 chatter=4
107   -$ECHO -n "."
108   -if [ -s "events2.fits" ]
109   -then
110   - $ECHO -n "."
111   -else
112   - echo " events2.fits file is not found"
113   - exit 1
114   -fi
115 94 $ECHO " ok"
116 95  
117 96  
... ... @@ -148,7 +127,7 @@ $ECHO -n &quot;Test ctbin: &quot;
148 127 #
149 128 # Run 1
150 129 $ctbin inobs="events.fits" \
151   - outcube="cntmap.fits" \
  130 + outcube="cntmap1.fits" \
152 131 emin=0.1 \
153 132 emax=100.0 \
154 133 enumbins=20 \
... ... @@ -161,27 +140,27 @@ $ctbin inobs=&quot;events.fits&quot; \
161 140 yref=22.01 \
162 141 proj="CAR"
163 142 $ECHO -n "."
164   -if [ -s "cntmap.fits" ]
  143 +if [ -s "cntmap1.fits" ]
165 144 then
166 145 $ECHO -n "."
167 146 else
168   - $ECHO " cntmap.fits file is not found"
  147 + $ECHO " cntmap1.fits file is not found"
169 148 exit 1
170 149 fi
171 150 #
172 151 # Run 2
173   -$ctbin inobs="events2.fits" \
  152 +$ctbin inobs="events.fits" \
174 153 outcube="cntmap2.fits" \
175 154 emin=0.3 \
176 155 emax=8.0 \
177   - enumbins=10 \
  156 + enumbins=7 \
178 157 ebinalg="LOG" \
179   - nxpix=50 \
180   - nypix=50 \
181   - binsz=0.02 \
  158 + nxpix=30 \
  159 + nypix=30 \
  160 + binsz=0.05 \
182 161 coordsys="CEL" \
183   - xref=84.17263 \
184   - yref=22.01444 \
  162 + xref=86.63 \
  163 + yref=22.01 \
185 164 proj="CAR"
186 165 $ECHO -n "."
187 166 if [ -s "cntmap2.fits" ]
... ... @@ -193,6 +172,168 @@ else
193 172 fi
194 173 $ECHO " ok"
195 174  
  175 +#
  176 +# Test ctexpcube
  177 +# ==============
  178 +$ECHO -n "Test ctexpcube: "
  179 +#
  180 +# Run 1
  181 +$ctexpcube inobs="data/crab_events.fits" \
  182 +incube="NONE" \
  183 +outcube="expcube1.fits" \
  184 +caldb="irf" \
  185 +irf="cta_dummy_irf" \
  186 +emin=0.1 \
  187 +emax=100.0 \
  188 +enumbins=20 \
  189 +nxpix=200 \
  190 +nypix=200 \
  191 +binsz=0.02 \
  192 +coordsys="CEL" \
  193 +xref=83.63 \
  194 +yref=22.01 \
  195 +proj="CAR"
  196 +$ECHO -n "."
  197 +if [ -s "expcube1.fits" ]
  198 +then
  199 +$ECHO -n "."
  200 +else
  201 +$ECHO " expcube1.fits file is not found"
  202 +exit 1
  203 +fi
  204 +#
  205 +# Run 2
  206 +$ctexpcube inobs="events.fits" \
  207 +incube="cntmap2.fits" \
  208 +outcube="expcube2.fits" \
  209 +caldb="irf" \
  210 +irf="cta_dummy_irf"
  211 +$ECHO -n "."
  212 +if [ -s "expcube2.fits" ]
  213 +then
  214 +$ECHO -n "."
  215 +else
  216 +$ECHO " expcube2.fits file is not found"
  217 +exit 1
  218 +fi
  219 +$ECHO " ok"
  220 +
  221 +
  222 +#
  223 +# Test ctpsfcube
  224 +# ==============
  225 +$ECHO -n "Test ctpsfcube: "
  226 +#
  227 +# Run 1
  228 +$ctpsfcube inobs="data/crab_events.fits" \
  229 +incube="NONE" \
  230 +outcube="psfcube1.fits" \
  231 +caldb="irf" \
  232 +irf="cta_dummy_irf" \
  233 +emin=0.1 \
  234 +emax=100.0 \
  235 +enumbins=20 \
  236 +nxpix=10 \
  237 +nypix=10 \
  238 +binsz=0.4 \
  239 +coordsys="CEL" \
  240 +xref=83.63 \
  241 +yref=22.01 \
  242 +proj="CAR" \
  243 +amax=0.3 \
  244 +anumbins=10
  245 +$ECHO -n "."
  246 +if [ -s "psfcube1.fits" ]
  247 +then
  248 +$ECHO -n "."
  249 +else
  250 +$ECHO " psfcube1.fits file is not found"
  251 +exit 1
  252 +fi
  253 +#
  254 +# Run 2
  255 +$ctpsfcube inobs="events.fits" \
  256 +incube="cntmap2.fits" \
  257 +outcube="psfcube2.fits" \
  258 +caldb="irf" \
  259 +irf="cta_dummy_irf" \
  260 +amax=0.3 \
  261 +anumbins=2
  262 +$ECHO -n "."
  263 +if [ -s "psfcube2.fits" ]
  264 +then
  265 +$ECHO -n "."
  266 +else
  267 +$ECHO " psfcube2.fits file is not found"
  268 +exit 1
  269 +fi
  270 +$ECHO " ok"
  271 +
  272 +
  273 +#
  274 +# Test ctbkgcube
  275 +# ==============
  276 +$ECHO -n "Test ctbkgcube: "
  277 +#
  278 +# Run 1
  279 +$ctbkgcube inobs="data/crab_events.fits" \
  280 +inmodel="data/crab.xml" \
  281 +incube="NONE" \
  282 +outcube="bkgcube1.fits" \
  283 +outmodel="bkgcube1.xml" \
  284 +caldb="irf" \
  285 +irf="cta_dummy_irf" \
  286 +emin=0.1 \
  287 +emax=100.0 \
  288 +enumbins=20 \
  289 +nxpix=10 \
  290 +nypix=10 \
  291 +binsz=0.4 \
  292 +coordsys="CEL" \
  293 +xref=83.63 \
  294 +yref=22.01 \
  295 +proj="CAR"
  296 +$ECHO -n "."
  297 +if [ -s "bkgcube1.fits" ]
  298 +then
  299 +$ECHO -n "."
  300 +else
  301 +$ECHO " bkgcube1.fits file is not found"
  302 +exit 1
  303 +fi
  304 +if [ -s "bkgcube1.xml" ]
  305 +then
  306 +$ECHO -n "."
  307 +else
  308 +$ECHO " bkgcube1.xml file is not found"
  309 +exit 1
  310 +fi
  311 +#
  312 +# Run 2
  313 +$ctbkgcube inobs="events.fits" \
  314 +inmodel="data/crab.xml" \
  315 +incube="cntmap2.fits" \
  316 +caldb="irf" \
  317 +irf="cta_dummy_irf" \
  318 +outcube="bkgcube2.fits" \
  319 +outmodel="bkgcube2.xml"
  320 +$ECHO -n "."
  321 +if [ -s "bkgcube2.fits" ]
  322 +then
  323 +$ECHO -n "."
  324 +else
  325 +$ECHO " bkgcube2.fits file is not found"
  326 +exit 1
  327 +fi
  328 +if [ -s "bkgcube2.fits" ]
  329 +then
  330 +$ECHO -n "."
  331 +else
  332 +$ECHO " bkgcube2.xml file is not found"
  333 +exit 1
  334 +fi
  335 +$ECHO " ok"
  336 +
196 337  
197 338  
198 339 #
... ... @@ -201,11 +342,12 @@ $ECHO &quot; ok&quot;
201 342 $ECHO -n "Test ctmodel: "
202 343 #
203 344 # Run 1
204   -$ctmodel inobs="cntmap.fits" \
205   - incube="cntmap.fits" \
  345 +$ctmodel inobs="cntmap1.fits" \
  346 + incube="cntmap1.fits" \
206 347 outcube="modmap1.fits" \
207 348 expcube="NONE" \
208 349 psfcube="NONE" \
  350 + bgcube="NONE" \
209 351 caldb="irf" \
210 352 irf="cta_dummy_irf" \
211 353 inmodel="data/crab.xml"
... ... @@ -218,6 +360,26 @@ else
218 360 exit 1
219 361 fi
220 362 #
  363 +# Run 2
  364 +$ctmodel inobs="cntmap2.fits" \
  365 +incube="cntmap2.fits" \
  366 +outcube="modmap2.fits" \
  367 +expcube="expcube2.fits" \
  368 +psfcube="psfcube2.fits" \
  369 +bgcube="bkgcube2.fits" \
  370 +caldb="irf" \
  371 +irf="cta_dummy_irf" \
  372 +inmodel="bkgcube2.xml"
  373 +$ECHO -n "."
  374 +if [ -s "modmap2.fits" ]
  375 +then
  376 +$ECHO -n "."
  377 +else
  378 +$ECHO " modmap2.fits file is not found"
  379 +exit 1
  380 +fi
  381 +
  382 +#
221 383 # Run 3
222 384 $ctmodel inobs="NONE" \
223 385 incube="NONE" \
... ... @@ -248,24 +410,6 @@ else
248 410 $ECHO " modmap3.fits file is not found"
249 411 exit 1
250 412 fi
251   -#
252   -# Run 2
253   -$ctmodel inobs="cntmap2.fits" \
254   - incube="cntmap2.fits" \
255   - outcube="modmap2.fits" \
256   - expcube="NONE" \
257   - psfcube="NONE" \
258   - caldb="irf" \
259   - irf="cta_dummy_irf" \
260   - inmodel="data/model_background_cube.xml"
261   -$ECHO -n "."
262   -if [ -s "modmap2.fits" ]
263   -then
264   - $ECHO -n "."
265   -else
266   - $ECHO " modmap2.fits file is not found"
267   - exit 1
268   -fi
269 413 $ECHO " ok"
270 414  
271 415  
... ... @@ -299,11 +443,12 @@ $ECHO &quot; ok&quot;
299 443 $ECHO -n "Test ctlike: "
300 444 #
301 445 # Run 1
302   -$ctlike inobs="cntmap.fits" \
  446 +$ctlike inobs="cntmap1.fits" \
303 447 inmodel="data/crab.xml" \
304 448 outmodel="results_binned.xml" \
305 449 expcube="NONE" \
306 450 psfcube="NONE" \
  451 + bgcube="NONE" \
307 452 caldb="irf" \
308 453 irf="cta_dummy_irf"
309 454 $ECHO -n "."
... ... @@ -329,36 +474,23 @@ else
329 474 $ECHO " results_unbinned.xml file is not found"
330 475 exit 1
331 476 fi
  477 +
332 478 #
333 479 # Run 3
334   -$ctlike inobs="events2.fits" \
335   - inmodel="data/model_background_cube.xml" \
336   - outmodel="results_unbinned_background_cube.xml" \
337   - caldb="irf" \
338   - irf="cta_dummy_irf"
339   -$ECHO -n "."
340   -if [ -s "results_unbinned_background_cube.xml" ]
341   -then
342   - $ECHO -n "."
343   -else
344   - $ECHO " results_unbinned_background_cube.xml file is not found"
345   - exit 1
346   -fi
347   -#
348   -# Run 4
349 480 $ctlike inobs="cntmap2.fits" \
350   - inmodel="data/model_background_cube.xml" \
351   - outmodel="results_binned_background_cube.xml" \
352   - expcube="NONE" \
353   - psfcube="NONE" \
  481 + inmodel="bkgcube2.xml" \
  482 + outmodel="results_binned_cube_background.xml" \
  483 + expcube="expcube2.fits" \
  484 + psfcube="psfcube2.fits" \
  485 + bgcube="bkgcube2.fits" \
354 486 caldb="irf" \
355 487 irf="cta_dummy_irf"
356 488 $ECHO -n "."
357   -if [ -s "results_binned_background_cube.xml" ]
  489 +if [ -s "results_binned_cube_background.xml" ]
358 490 then
359 491 $ECHO -n "."
360 492 else
361   - $ECHO " results_binned_background_cube.xml file is not found"
  493 + $ECHO " results_binned_cube_background.xml file is not found"
362 494 exit 1
363 495 fi
364 496 $ECHO " ok"
... ... @@ -392,167 +524,6 @@ fi
392 524 $ECHO " ok"
393 525  
394 526  
395   -#
396   -# Test ctexpcube
397   -# ==============
398   -$ECHO -n "Test ctexpcube: "
399   -#
400   -# Run 1
401   -$ctexpcube inobs="data/crab_events.fits" \
402   - incube="NONE" \
403   - outcube="expcube1.fits" \
404   - caldb="irf" \
405   - irf="cta_dummy_irf" \
406   - emin=0.1 \
407   - emax=100.0 \
408   - enumbins=20 \
409   - nxpix=200 \
410   - nypix=200 \
411   - binsz=0.02 \
412   - coordsys="CEL" \
413   - xref=83.63 \
414   - yref=22.01 \
415   - proj="CAR"
416   -$ECHO -n "."
417   -if [ -s "expcube1.fits" ]
418   -then
419   - $ECHO -n "."
420   -else
421   - $ECHO " expcube1.fits file is not found"
422   - exit 1
423   -fi
424   -#
425   -# Run 2
426   -$ctexpcube inobs="data/crab_events.fits" \
427   - incube="data/crab_cntmap.fits" \
428   - outcube="expcube2.fits" \
429   - caldb="irf" \
430   - irf="cta_dummy_irf"
431   -$ECHO -n "."
432   -if [ -s "expcube2.fits" ]
433   -then
434   - $ECHO -n "."
435   -else
436   - $ECHO " expcube2.fits file is not found"
437   - exit 1
438   -fi
439   -$ECHO " ok"
440   -
441   -
442   -#
443   -# Test ctpsfcube
444   -# ==============
445   -$ECHO -n "Test ctpsfcube: "
446   -#
447   -# Run 1
448   -$ctpsfcube inobs="data/crab_events.fits" \
449   - incube="NONE" \
450   - outcube="psfcube1.fits" \
451   - caldb="irf" \
452   - irf="cta_dummy_irf" \
453   - emin=0.1 \
454   - emax=100.0 \
455   - enumbins=20 \
456   - nxpix=10 \
457   - nypix=10 \
458   - binsz=0.4 \
459   - coordsys="CEL" \
460   - xref=83.63 \
461   - yref=22.01 \
462   - proj="CAR" \
463   - amax=0.3 \
464   - anumbins=10
465   -$ECHO -n "."
466   -if [ -s "psfcube1.fits" ]
467   -then
468   - $ECHO -n "."
469   -else
470   - $ECHO " psfcube1.fits file is not found"
471   - exit 1
472   -fi
473   -#
474   -# Run 2
475   -$ctpsfcube inobs="data/crab_events.fits" \
476   - incube="data/crab_cntmap.fits" \
477   - outcube="psfcube2.fits" \
478   - caldb="irf" \
479   - irf="cta_dummy_irf" \
480   - amax=0.3 \
481   - anumbins=2
482   -$ECHO -n "."
483   -if [ -s "psfcube2.fits" ]
484   -then
485   - $ECHO -n "."
486   -else
487   - $ECHO " psfcube2.fits file is not found"
488   - exit 1
489   -fi
490   -$ECHO " ok"
491   -
492   -
493   -#
494   -# Test ctbkgcube
495   -# ==============
496   -$ECHO -n "Test ctbkgcube: "
497   -#
498   -# Run 1
499   -$ctbkgcube inobs="data/crab_events.fits" \
500   - inmodel="data/crab.xml" \
501   - incube="NONE" \
502   - outcube="bkgcube1.fits" \
503   - outmodel="bkgcube1.xml" \
504   - caldb="irf" \
505   - irf="cta_dummy_irf" \
506   - emin=0.1 \
507   - emax=100.0 \
508   - enumbins=20 \
509   - nxpix=10 \
510   - nypix=10 \
511   - binsz=0.4 \
512   - coordsys="CEL" \
513   - xref=83.63 \
514   - yref=22.01 \
515   - proj="CAR"
516   -$ECHO -n "."
517   -if [ -s "bkgcube1.fits" ]
518   -then
519   - $ECHO -n "."
520   -else
521   - $ECHO " bkgcube1.fits file is not found"
522   - exit 1
523   -fi
524   -if [ -s "bkgcube1.xml" ]
525   -then
526   - $ECHO -n "."
527   -else
528   - $ECHO " bkgcube1.xml file is not found"
529   - exit 1
530   -fi
531   -#
532   -# Run 2
533   -$ctbkgcube inobs="data/crab_events.fits" \
534   - inmodel="data/crab.xml" \
535   - incube="data/crab_cntmap.fits" \
536   - caldb="irf" \
537   - irf="cta_dummy_irf" \
538   - outcube="bkgcube2.fits" \
539   - outmodel="bkgcube2.xml"
540   -$ECHO -n "."
541   -if [ -s "bkgcube2.fits" ]
542   -then
543   - $ECHO -n "."
544   -else
545   - $ECHO " bkgcube2.fits file is not found"
546   - exit 1
547   -fi
548   -if [ -s "bkgcube2.fits" ]
549   -then
550   - $ECHO -n "."
551   -else
552   - $ECHO " bkgcube2.xml file is not found"
553   - exit 1
554   -fi
555   -$ECHO " ok"
556 527  
557 528  
558 529 #
... ...