std::shared_ptr<casacore::ImageInterface<casacore::Float> > itsParentPsf, itsParentModel, itsParentResidual, itsParentWeight, itsParentImage, itsParentSumWt, itsParentGridWt, itsParentPB, itsParentImagePBcor;
#ifndef SYNTHESIS_SIIMAGESTORE_H
#define SYNTHESIS_SIIMAGESTORE_H
#include <casa/OS/Timer.h>
#include <casa/Containers/Record.h>
#include <ms/MeasurementSets/MeasurementSet.h>
#include <casa/Arrays/IPosition.h>
#include <casa/Quanta/Quantum.h>
#include <measures/Measures/MDirection.h>
#include <coordinates/Coordinates/CoordinateSystem.h>
#include <images/Images/PagedImage.h>
#include <images/Images/TempImage.h>
#include <images/Images/SubImage.h>
#include <images/Regions/ImageRegion.h>
#include <casa/BasicSL/Constants.h>
#include <synthesis/TransformMachines/StokesImageUtil.h>
#include <synthesis/ImagerObjects/SynthesisUtilMethods.h>
void openImage(const casacore::String& imagenamefull,std::shared_ptr<casacore::ImageInterface<T> >* img);
enum IMAGE_IDS {MASK=0,PSF,MODEL,RESIDUAL,WEIGHT,IMAGE,SUMWT,GRIDWT,PB,FORWARDGRID,BACKWARDGRID, IMAGEPBCOR, MAX_IMAGE_IDS};
SIImageStore(const casacore::String &imagename,
const casacore::Bool ignorefacets=casacore::False);
SIImageStore(const casacore::String &imagename,
const casacore::CoordinateSystem &imcoordsys,
const casacore::IPosition &imshape,
const casacore::String &objectname,
const casacore::Record &miscinfo,
const casacore::Bool overwrite=casacore::False,
const casacore::Bool useweightimage=casacore::False);
SIImageStore(const std::shared_ptr<casacore::ImageInterface<casacore::Float> > &modelim,
const std::shared_ptr<casacore::ImageInterface<casacore::Float> > &residim,
const std::shared_ptr<casacore::ImageInterface<casacore::Float> > &psfim,
const std::shared_ptr<casacore::ImageInterface<casacore::Float> > &weightim,
const std::shared_ptr<casacore::ImageInterface<casacore::Float> > &restoredim,
const std::shared_ptr<casacore::ImageInterface<casacore::Float> > &maskim,
const std::shared_ptr<casacore::ImageInterface<casacore::Float> > &sumwtim,
const std::shared_ptr<casacore::ImageInterface<casacore::Float> > &gridwtim,
const std::shared_ptr<casacore::ImageInterface<casacore::Float> > &pbim,
const std::shared_ptr<casacore::ImageInterface<casacore::Float> > &restoredpbcorim,
const casacore::CoordinateSystem &csys,
const casacore::IPosition &imshape,
const casacore::String &imagename,
const casacore::String &objectname,
const casacore::Record &miscinfo,
const casacore::Int facet=0, const casacore::Int nfacets=1,
const casacore::Int chan=0, const casacore::Int nchanchunks=1,
const casacore::Int pol=0, const casacore::Int npolchunks=1,
const casacore::Bool useweightimage=casacore::False);