001: package JSci.physics.particles;
002:
003: import JSci.physics.quantum.QuantumParticle;
004:
005: /**
006: * A class representing antitaus.
007: * @version 1.5
008: * @author Mark Hale
009: */
010: public final class AntiTau extends AntiLepton {
011: /**
012: * Constructs an antitau.
013: */
014: public AntiTau() {
015: }
016:
017: /**
018: * Returns the rest mass (MeV).
019: * @return 1777.03
020: */
021: public double restMass() {
022: return 1777.03;
023: }
024:
025: /**
026: * Returns the electric charge.
027: * @return 1
028: */
029: public int charge() {
030: return 1;
031: }
032:
033: /**
034: * Returns the electron lepton number.
035: * @return 0
036: */
037: public int eLeptonQN() {
038: return 0;
039: }
040:
041: /**
042: * Returns the muon lepton number.
043: * @return 0
044: */
045: public int muLeptonQN() {
046: return 0;
047: }
048:
049: /**
050: * Returns the tau lepton number.
051: * @return -1
052: */
053: public int tauLeptonQN() {
054: return -1;
055: }
056:
057: /**
058: * Returns the antiparticle of this particle.
059: */
060: public QuantumParticle anti() {
061: return new Tau();
062: }
063:
064: /**
065: * Returns true if qp is the antiparticle.
066: */
067: public boolean isAnti(QuantumParticle qp) {
068: return (qp != null) && (qp instanceof Tau);
069: }
070:
071: /**
072: * Returns a string representing this class.
073: */
074: public String toString() {
075: return new String("Antitau");
076: }
077:
078: /**
079: * Emits a photon.
080: */
081: public AntiTau emit(Photon y) {
082: momentum = momentum.subtract(y.momentum);
083: return this ;
084: }
085:
086: /**
087: * Absorbs a photon.
088: */
089: public AntiTau absorb(Photon y) {
090: momentum = momentum.add(y.momentum);
091: return this ;
092: }
093:
094: /**
095: * Emits a W+.
096: */
097: public AntiTauNeutrino emit(WPlus w) {
098: AntiTauNeutrino n = new AntiTauNeutrino();
099: n.momentum = momentum.subtract(w.momentum);
100: return n;
101: }
102:
103: /**
104: * Absorbs a W-.
105: */
106: public AntiTauNeutrino absorb(WMinus w) {
107: AntiTauNeutrino n = new AntiTauNeutrino();
108: n.momentum = momentum.add(w.momentum);
109: return n;
110: }
111:
112: /**
113: * Emits a Z0.
114: */
115: public AntiTau emit(ZZero z) {
116: momentum = momentum.subtract(z.momentum);
117: return this ;
118: }
119:
120: /**
121: * Absorbs a Z0.
122: */
123: public AntiTau absorb(ZZero z) {
124: momentum = momentum.add(z.momentum);
125: return this;
126: }
127: }
|