package hep.aida.ref.plotter.adapter;

import hep.aida.IProfile;
import hep.aida.IProfile1D;
import hep.aida.IProfile2D;
import hep.aida.ref.event.ObserverAdapter;
import jas.hist.DataSource;
import jas.hist.HistogramUpdate;

/**
 *
 * @author  The AIDA team @ SLAC
 *
 */
public abstract class AIDAProfileAdapter  extends ObserverAdapter implements DataSource
{
    private final static jas.hist.HistogramUpdate hu = new jas.hist.HistogramUpdate(HistogramUpdate.TITLE_UPDATE+HistogramUpdate.DATA_UPDATE+HistogramUpdate.RANGE_UPDATE,false);
   static
   {
      hu.setAxis(hu.HORIZONTAL_AXIS);
      hu.setAxis(hu.VERTICAL_AXIS);
   } 

    public static int USE_SPREAD = 0;
    public static int USE_ERROR_ON_MEAN = 1;
    private int errorMode = USE_SPREAD;
    
    protected int xAxisType = DOUBLE;
    protected int yAxisType = DOUBLE;
    
   /**
    * Create a DataSource from a Profile
    */
    public static DataSource create(IProfile c) {
        AIDAProfileAdapter result;
        if      (c instanceof IProfile1D) {
            if (((IProfile1D) c).axis().isFixedBinning())
                result = new AIDAProfileAdapter1D((IProfile1D) c);
            else
                result = new AIDAProfileVariableAdapter1D((IProfile1D) c);
        } else if (c instanceof IProfile2D) {
            if ( ((IProfile2D) c).xAxis().isFixedBinning() &&
                    ((IProfile2D) c).yAxis().isFixedBinning() )
                result = new AIDAProfileAdapter2D((IProfile2D) c);
            else
                result = new AIDAProfileVariableAdapter2D((IProfile2D) c);
        } else throw new IllegalArgumentException("Argument is an unknown subtype of IProfile");
        return result;
    }
    
   protected AIDAProfileAdapter(IProfile p)
   {
       super(p);
       update = hu;
   }

   int errorMode() {
       return errorMode;
   }

   public void setErrorMode( int errorMode ) {
       if ( this.errorMode != errorMode ) {
           this.errorMode = errorMode;
           stateChanged(new java.util.EventObject(this));
       }
       
   }
}

 

Ads help maintain this website.