lcsim/src/org/lcsim/util/decision
diff -u -r1.1 -r1.2
--- UnphysicalTrackDecision.java 22 Oct 2008 21:08:28 -0000 1.1
+++ UnphysicalTrackDecision.java 18 Dec 2008 23:19:12 -0000 1.2
@@ -7,29 +7,49 @@
public class UnphysicalTrackDecision extends Driver implements DecisionMakerSingle<Track> {
+ private boolean _useDefault;
+ private double _defaultvalue;
+
/** Simple constructor. */
public UnphysicalTrackDecision() {
- // Empty
+ _useDefault = true;
+ _defaultvalue = 250;
}
+ public UnphysicalTrackDecision(boolean useDefault) {
+ _useDefault = useDefault;
+ _defaultvalue = 250;
+ }
+
+ public UnphysicalTrackDecision(double defaultvalue) {
+ _useDefault = true;
+ _defaultvalue = defaultvalue;
+ }
+
+
protected double m_eventEnergy = Double.NaN;
/** Check if track has unphysical energy (greater than sqrt(s)/2). */
public boolean valid(Track tr) {
double mom = (new BasicHep3Vector(tr.getMomentum())).magnitude();
- if (Double.isNaN(m_eventEnergy)) {
- // We don't know the event energy so we can't test tracks.
- // Assume they're all OK.
- return true;
- } else if (mom < m_eventEnergy * 0.52) {
- // Track has half of event energy or less -- OK.
- // (Using 0.52 instead of 0.5 to allow a little tolerance for measurement
- // uncertainties, numerical precision, etc.)
- return true;
- } else {
- // Unphysical energy
- return false;
- }
+ if (_useDefault){
+ if(mom > _defaultvalue) return false; //250 GeV is default value, need to be fixed
+ else return true;
+ }else{
+ if (Double.isNaN(m_eventEnergy)) {
+ // We don't know the event energy so we can't test tracks.
+ // Assume they're all OK.
+ return true;
+ } else if (mom < m_eventEnergy * 0.52) {
+ // Track has half of event energy or less -- OK.
+ // (Using 0.52 instead of 0.5 to allow a little tolerance for measurement
+ // uncertainties, numerical precision, etc.)
+ return true;
+ } else {
+ // Unphysical energy
+ return false;
+ }
+ }
}
/** Process: Used to cache event energy. */