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)); } } }