Uncertainty Class Reference

An error value with positive and negative extent, a source type and a normalisation. More...

Inheritance diagram for Uncertainty:

Inheritance graph
[legend]

Collaboration diagram for Uncertainty:

Collaboration graph
[legend]

List of all members.


Public Member Functions

 Uncertainty ()
 Default constructor.
 Uncertainty (Double plus, Double minus, ErrorSource sourcetype, ErrorNorm normtype)
 Constructor for asymmetric errors.
 Uncertainty (Double plusminus, ErrorSource sourcetype, ErrorNorm normtype)
 Constructor for symmetric error.
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 error value with positive and negative extent, a source type and a normalisation.

Todo:
The indicated error magnitude may be an equality or a limit.
Author:
Andy Buckley
Version:
Date
2007-09-25 15:44:34 +0100 (Tue, 25 Sep 2007)
Revision
1077

Definition at line 15 of file Uncertainty.java.


Constructor & Destructor Documentation

Uncertainty (  ) 

Default constructor.

Definition at line 46 of file Uncertainty.java.

Referenced by Uncertainty.getAbsoluteError().

00046 {}

Uncertainty ( 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 56 of file Uncertainty.java.

References Uncertainty.setMinus(), Uncertainty.setNormType(), Uncertainty.setPlus(), and Uncertainty.setSourceType().

00056                                                                                               {
00057         setPlus( (plus != null)  ? plus  : 0.0 );
00058         setMinus( (minus != null) ? minus : 0.0 );
00059         setSourceType(sourcetype);
00060         setNormType(normtype);
00061     }

Uncertainty ( 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 70 of file Uncertainty.java.

00070                                                                                      {
00071         this(plusminus, plusminus, sourcetype, normtype);
00072     }


Member Function Documentation

boolean isSymmetric (  ) 

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 (  ) 

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

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 (  ) 

Uncertainty setPlus ( Double  plus  ) 

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 (  ) 

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  ) 

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 (  ) 

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  ) 

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 (  ) 

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  ) 

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 (  ) 

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  ) 

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  ) 

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 (  ) 

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  ) 

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:50 2009 for HepData object model by  doxygen 1.5.5