01: package JSci.physics;
02:
03: import JSci.GlobalSettings;
04: import JSci.physics.relativity.*;
05:
06: /**
07: * The RelativisticParticle class provides an object for
08: * encapsulating relativistic particles.
09: * @version 1.0
10: * @author Mark Hale
11: */
12: public abstract class RelativisticParticle extends Particle {
13: /**
14: * Constructs a relativistic particle.
15: */
16: public RelativisticParticle() {
17: }
18:
19: /**
20: * Rest mass.
21: */
22: public abstract double restMass();
23:
24: /**
25: * Position 4-vector.
26: */
27: public Rank1Tensor position = new Rank1Tensor(0.0, 0.0, 0.0, 0.0);
28: /**
29: * Momentum 4-vector.
30: */
31: public Rank1Tensor momentum = new Rank1Tensor(0.0, 0.0, 0.0, 0.0);
32:
33: /**
34: * Compares two particles for equality.
35: * @param p a relativistic particle
36: */
37: public boolean equals(Object p) {
38: return (p != null)
39: && (p instanceof RelativisticParticle)
40: && (position
41: .equals(((RelativisticParticle) p).position))
42: && (momentum
43: .equals(((RelativisticParticle) p).momentum))
44: && (Math.abs(restMass()
45: - ((RelativisticParticle) p).restMass()) <= GlobalSettings.ZERO_TOL);
46: }
47:
48: public int hashCode() {
49: return (int) restMass();
50: }
51: }
|