AxisError Class Reference

An Uncertainty which applies to a whole y-axis of points, i.e. More...

Inheritance diagram for AxisError:

Inheritance graph
[legend]

Collaboration diagram for AxisError:

Collaboration graph
[legend]

List of all members.


Public Member Functions

 AxisError ()
 Default constructor.
 AxisError (Double plusminus, ErrorSource sourcetype, ErrorNorm normtype)
 Constructor for symmetric error.
 AxisError (Double plus, Double minus, ErrorSource sourcetype, ErrorNorm normtype)
 Constructor for asymmetric errors.
 AxisError (YAxis parent, Double plusminus, ErrorSource sourcetype, ErrorNorm normtype)
 Constructor for symmetric error, with parent axis.
 AxisError (YAxis parent, Double plus, Double minus, ErrorSource sourcetype, ErrorNorm normtype)
 Constructor for asymmetric errors, with parent axis.
Integer getId ()
 Get the axis error ID.
AxisError setId (Integer axisErrorId)
 Set the axis error ID.
.hibernate.annotations.Parent YAxis getAxis ()
 Get the parent axis.
AxisError setAxis (YAxis parentAxis)
 Set the parent point.
int compareTo (AxisError other)
boolean equals (Object other)
 Override equals method with business key equality.
int hashCode ()
 Override hashcode method.
boolean isSymmetric ()
 Are the plus and minus errors symmetric?
boolean hasZeroSize ()
 Are the plus and minus errors both zero?
Uncertainty getAbsoluteError (Point p) throws HDException
 Calculate the absolute error object for this error and the given Point.
Double getPlus ()
 Get the upward error.
Uncertainty setPlus (Double plus)
 Set the upward error.
Double getMinus ()
 Get the downward error.
Uncertainty setMinus (Double minus)
 Set the downward error.
ErrorSource getSourceType ()
 Get the error source type (stat, sys, etc.
Uncertainty setSourceType (ErrorSource sourcetype)
 Set the error source type (stat, sys, etc.
ErrorNorm getNormType ()
 Get the error normalization type (abs, frac, pct, etc.
Uncertainty setNormType (ErrorNorm normtype)
 Set the error normalization type (abs, frac, pct, etc.
String getComment ()
 Get the modification comment string.
Uncertainty setComment (String comment)
 Set the modification comment string.
int compareTo (Uncertainty other)
String toString ()
 String representation.
String toString (Integer indentBy)
 Indented string representation.

Package Functions

Logger log ()
 Neat method to allow every class to get hold of a custom-named Logger.

Detailed Description

An Uncertainty which applies to a whole y-axis of points, i.e.

as stored by a YAxis. These errors tend to be systematic and have relative normalisation, but this isn't necessarily the case.

Author:
Andy Buckley
Version:
Date
2006-04-05 17:16:08 +0100 (Wed, 05 Apr 2006)
Revision
554

Definition at line 15 of file AxisError.java.


Constructor & Destructor Documentation

AxisError (  ) 

Default constructor.

Definition at line 31 of file AxisError.java.

00031 { super(); }

AxisError ( Double  plusminus,
ErrorSource  sourcetype,
ErrorNorm  normtype 
)

Constructor for symmetric error.

Parameters:
plusminus : size of symmetric error
sourcetype : origin of error, i.e. systematic, statistical, etc.
normtype : normalisation of error, i.e. absolute, fractional, percentage, etc.

Definition at line 39 of file AxisError.java.

00039                                                                                    {
00040         super(plusminus, sourcetype, normtype);
00041     }

AxisError ( Double  plus,
Double  minus,
ErrorSource  sourcetype,
ErrorNorm  normtype 
)

Constructor for asymmetric errors.

Parameters:
plus input <0 gives -err1
minus input <0 gives +err2
sourcetype : origin of error, i.e. systematic, statistical, etc.
normtype : normalisation of error, i.e. absolute, fractional, percentage, etc.

Definition at line 50 of file AxisError.java.

00050                                                                                             {
00051         super(plus, minus, sourcetype, normtype);
00052     }

AxisError ( YAxis  parent,
Double  plusminus,
ErrorSource  sourcetype,
ErrorNorm  normtype 
)

Constructor for symmetric error, with parent axis.

Definition at line 58 of file AxisError.java.

References AxisError.setAxis().

00058                                                                                                  {
00059         super(plusminus, sourcetype, normtype);
00060         setAxis(parent);
00061     }

AxisError ( YAxis  parent,
Double  plus,
Double  minus,
ErrorSource  sourcetype,
ErrorNorm  normtype 
)

Constructor for asymmetric errors, with parent axis.

Definition at line 66 of file AxisError.java.

References AxisError.setAxis().

00066                                                                                                           {
00067         super(plus, minus, sourcetype, normtype);
00068         setAxis(parent);
00069     }


Member Function Documentation

Integer getId (  ) 

Get the axis error ID.

Definition at line 76 of file AxisError.java.

Referenced by AxisError.compareTo(), AxisError.hashCode(), and AxisError.setAxis().

00076                            {
00077         return _localId;
00078     }

AxisError setId ( Integer  axisErrorId  ) 

Set the axis error ID.

Definition at line 80 of file AxisError.java.

Referenced by AxisError.setAxis().

00080                                                 {
00081         _localId = axisErrorId;
00082         return this;
00083     }

.hibernate.annotations.Parent YAxis getAxis (  ) 

Get the parent axis.

Definition at line 91 of file AxisError.java.

Referenced by AxisError.hashCode().

00091                            {
00092         return _axis;
00093     }

AxisError setAxis ( YAxis  parentAxis  ) 

Set the parent point.

Definition at line 96 of file AxisError.java.

References YAxis.getErrors(), AxisError.getId(), Storeable.log(), and AxisError.setId().

Referenced by YAxis.addError(), and AxisError.AxisError().

00096                                                {
00097         log().debug("Calling setAxis()");
00098         _axis = parentAxis;
00099         if (parentAxis != null) {
00100             if (getId() == null) {
00101                 int highestId = 0;
00102                 if (parentAxis.getErrors().size() > 0) {
00103                     highestId = parentAxis.getErrors().last().getId();
00104                 }
00105                 log().debug("Incrementing axis error ID: " + (highestId + 1));
00106                 setId(highestId + 1);
00107             }
00108             parentAxis.getErrors().add(this);
00109         }
00110         return this;
00111     }

int compareTo ( AxisError  other  ) 

Definition at line 117 of file AxisError.java.

References AxisError.getId(), and Storeable.log().

Referenced by Uncertainty.compareTo().

00117                                           {
00118         log().debug("Comparing axis errors...");
00119         if (getId() == null) {
00120             log().warn("Null axis error ID");
00121             return 1; // Sort null errors at the end
00122         } else if (getId() > other.getId()) {
00123             log().debug("Greater than");
00124             return 1;
00125         } else if (getId() < other.getId()) {
00126             log().debug("Less than");
00127             return -1;
00128         } else {
00129             log().debug("Equal to");
00130             return 0;
00131         }
00132     }

boolean equals ( Object  other  ) 

Override equals method with business key equality.

Definition at line 139 of file AxisError.java.

References AxisError.hashCode().

00139                                         {
00140         if (this == other) return true;
00141         if (! (other instanceof AxisError)) return false;
00142         return hashCode() == other.hashCode();
00143     }

int hashCode (  ) 

Override hashcode method.

Definition at line 147 of file AxisError.java.

References AxisError.getAxis(), AxisError.getId(), Uncertainty.getMinus(), Uncertainty.getNormType(), Uncertainty.getPlus(), Uncertainty.getSourceType(), and YAxis.hashCode().

Referenced by AxisError.equals().

00147                           {
00148         int code = 117;
00149         if (getId() != null)         code ^= getId().hashCode();
00150         if (getAxis() != null)       code ^= getAxis().hashCode();
00151         if (getSourceType() != null) code ^= getSourceType().hashCode();
00152         if (getNormType() != null)   code ^= getNormType().hashCode();
00153         if (getPlus() != null)       code ^= 2 * getPlus().hashCode(); // ensure this is even
00154         if (getMinus() != null)      code ^= 2 * getMinus().hashCode() + 1; // ensure this is odd
00155         return code;
00156     }

boolean isSymmetric (  )  [inherited]

Are the plus and minus errors symmetric?

Definition at line 81 of file Uncertainty.java.

References Uncertainty.getMinus(), and Uncertainty.getPlus().

Referenced by Uncertainty.toString().

00081                                  {
00082         return (getPlus().equals(getMinus()));
00083     }

boolean hasZeroSize (  )  [inherited]

Are the plus and minus errors both zero?

Definition at line 87 of file Uncertainty.java.

References Uncertainty.getMinus(), and Uncertainty.getPlus().

00087                                  {
00088         return (getPlus().equals(0.0) && getMinus().equals(0.0));
00089     }

Uncertainty getAbsoluteError ( Point  p  )  throws HDException [inherited]

Calculate the absolute error object for this error and the given Point.

Reimplemented in PointError.

Definition at line 98 of file Uncertainty.java.

References Uncertainty.getMinus(), Uncertainty.getNormType(), Uncertainty.getPlus(), Uncertainty.getSourceType(), and Uncertainty.Uncertainty().

Referenced by PointError.getAbsoluteError().

00098                                                                     {
00099         if (getNormType() == ErrorNorm.UNKNOWN) {
00100             throw new HDException("Attempted to get the absolute error from an unknown error type.");
00101         }
00102 
00103         Double absplus = getPlus();
00104         Double absminus = getMinus();
00105         if (getNormType() != ErrorNorm.ABS) {
00106             if (getNormType() == ErrorNorm.FRAC) {
00107                 absplus *= p.getValue();
00108                 absminus *= p.getValue();
00109             } else if (getNormType() == ErrorNorm.PCT) {
00110                 absplus *= (p.getValue() / 100.0);
00111                 absminus *= (p.getValue() / 100.0);
00112             }
00113         }
00114         Uncertainty err = new Uncertainty(absplus, absminus, getSourceType(), ErrorNorm.ABS);
00115         return err;
00116     }

Double getPlus (  )  [inherited]

Uncertainty setPlus ( Double  plus  )  [inherited]

Set the upward error.

Definition at line 130 of file Uncertainty.java.

Referenced by Uncertainty.Uncertainty().

00130                                             {
00131         _plus = plus;
00132         return this;
00133     }

Double getMinus (  )  [inherited]

Get the downward error.

Definition at line 138 of file Uncertainty.java.

Referenced by Uncertainty.getAbsoluteError(), PointError.hashCode(), DatasetError.hashCode(), AxisError.hashCode(), Uncertainty.hasZeroSize(), Uncertainty.isSymmetric(), and Uncertainty.toString().

00138                              {
00139         return _minus;
00140     }

Uncertainty setMinus ( Double  minus  )  [inherited]

Set the downward error.

Definition at line 143 of file Uncertainty.java.

Referenced by Uncertainty.Uncertainty().

00143                                               {
00144         _minus = minus;
00145         return this;
00146     }

ErrorSource getSourceType (  )  [inherited]

Get the error source type (stat, sys, etc.

) as an enum.

Definition at line 151 of file Uncertainty.java.

Referenced by Uncertainty.getAbsoluteError(), PointError.hashCode(), DatasetError.hashCode(), AxisError.hashCode(), and Uncertainty.toString().

00151                                        {
00152         return _sourcetype;
00153     }

Uncertainty setSourceType ( ErrorSource  sourcetype  )  [inherited]

Set the error source type (stat, sys, etc.

) from the enum.

Definition at line 156 of file Uncertainty.java.

Referenced by Uncertainty.Uncertainty().

00156                                                              {
00157         _sourcetype = sourcetype;
00158         return this;
00159     }

ErrorNorm getNormType (  )  [inherited]

Get the error normalization type (abs, frac, pct, etc.

) as an enum.

Definition at line 163 of file Uncertainty.java.

Referenced by Uncertainty.getAbsoluteError(), PointError.hashCode(), DatasetError.hashCode(), AxisError.hashCode(), and Uncertainty.toString().

00163                                    {
00164         return _normtype;
00165     }

Uncertainty setNormType ( ErrorNorm  normtype  )  [inherited]

Set the error normalization type (abs, frac, pct, etc.

) from the enum.

Reimplemented in DatasetError.

Definition at line 167 of file Uncertainty.java.

Referenced by Uncertainty.Uncertainty().

00167                                                        {
00168         _normtype = normtype;
00169         return this;
00170     }

String getComment (  )  [inherited]

Get the modification comment string.

Definition at line 174 of file Uncertainty.java.

Referenced by Uncertainty.toString().

00174                                {
00175         return _comment;
00176     }

Uncertainty setComment ( String  comment  )  [inherited]

Set the modification comment string.

Definition at line 178 of file Uncertainty.java.

00178                                                   {
00179         _comment = comment;
00180         return this;
00181     }

int compareTo ( Uncertainty  other  )  [inherited]

Todo:
Compare otherwise-equals based on stat vs sys

Definition at line 187 of file Uncertainty.java.

References DatasetError.compareTo(), AxisError.compareTo(), PointError.compareTo(), and Storeable.log().

00187                                             {
00188         log().debug("Comparing errors...");
00189 
00190         // For point errors
00191         if (this instanceof PointError) {
00192             if (other instanceof PointError) {
00193                 PointError test = (PointError) this;
00194                 int result = test.compareTo((PointError) other);
00195                 if (result != 0) return result;
00196             } else return 1;
00197         }
00198 
00199         // For axis errors
00200         if (this instanceof AxisError) {
00201             if (other instanceof AxisError) {
00202                 AxisError test = (AxisError) this;
00203                 int result = test.compareTo((AxisError) other);
00204                 if (result != 0) return result;
00205             } else return (other instanceof PointError) ? -1 : 1;
00206         }
00207 
00208         // For dataset errors
00209         if (this instanceof DatasetError) {
00210             if (other instanceof DatasetError) {
00211                 DatasetError test = (DatasetError) this;
00212                 int result = test.compareTo((DatasetError) other);
00213                 if (result != 0) return result;
00214             } else return 1;
00215         }
00216 
00218         return 0;
00219     }

String toString (  )  [inherited]

String representation.

Reimplemented from Storeable.

Definition at line 227 of file Uncertainty.java.

Referenced by Uncertainty.toString().

00227                              {
00228         return toString(0);
00229     }

String toString ( Integer  indentBy  )  [inherited]

Indented string representation.

Definition at line 233 of file Uncertainty.java.

References Uncertainty.getComment(), Uncertainty.getMinus(), Uncertainty.getNormType(), Uncertainty.getPlus(), Uncertainty.getSourceType(), Uncertainty.isSymmetric(), Storeable.log(), and Uncertainty.toString().

00233                                              {
00234         log().debug("Writing out error as a string");
00235         StringBuffer s = new StringBuffer();
00236         String indent = "";
00237         for (int i  = 0; i < indentBy; ++i) indent += " ";
00238 
00239         //if (! hasZeroSize()) {
00240         s.append(indent);
00241         Double plusval = getPlus();
00242         Double minusval = getMinus();
00243 
00244         String numFormat = "###.##";
00245         // Use the number formatter to recalculate and display everything as a percentage
00246         if (getNormType() == ErrorNorm.PCT) {
00247             plusval /= 100;
00248             minusval /= 100;
00249         }
00250         if (getNormType() == ErrorNorm.FRAC || getNormType() == ErrorNorm.PCT) {
00251             numFormat += "%"; // multiplies by 100 and sticks "%" on the end
00252         }
00253         DecimalFormat numFormatter = new DecimalFormat(numFormat);
00254         if (isSymmetric()) {
00255             s.append("+- " + numFormatter.format(plusval));
00256         } else {
00257             s.append("+ " + numFormatter.format(plusval));
00258             s.append(" - " + numFormatter.format(minusval));
00259         }
00260         s.append(" (");
00261         //s.append(getNormType().toString());
00262         //s.append(", ");
00263         s.append(getSourceType().toString());
00264         s.append(")");
00265         if (getComment() != null && getComment().length() != 0) {
00266             s.append(" [" + getComment() + "]");
00267         }
00268         //}
00269         return s.toString();
00270     }

Logger log (  )  [package, inherited]


The documentation for this class was generated from the following file:


Generated on Tue Apr 21 15:54:42 2009 for HepData object model by  doxygen 1.5.5