Commit in lcsim/src/org/lcsim/particle on MAIN
Electron.java+42added 1.1
Muon.java+42added 1.1
Neutron.java+31added 1.1
ParticleType.java+46added 1.1
Photon.java+31added 1.1
Pion.java+46added 1.1
+238
6 added files
ParticleType to handle basic particle properties.

lcsim/src/org/lcsim/particle
Electron.java added at 1.1
diff -N Electron.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ Electron.java	2 Jul 2005 06:37:33 -0000	1.1
@@ -0,0 +1,42 @@
+package org.lcsim.particle;
+/**
+ * An electron particle class.
+ *
+ * @suthor Norman A. Graf
+ * @version 1.0
+ */
+public class Electron implements ParticleType
+{
+    private int _charge;
+    
+    /**
+     * Fully qualified constructor.
+     *
+     * @param   charge The charge of this Electron.
+     */
+    public Electron(int charge)
+    {
+        if((charge<-1 || charge>1) || charge==0) throw (new IllegalArgumentException("The charge of an electron can only be -1 or 1!"));
+        _charge = charge;
+    }
+    public String name()
+    {
+        return ParticleType.ELECTRON+(_charge>0?"+":"-");
+    }
+    public double mass()
+    {
+        return 0.000511;
+    }
+    public int charge()
+    {
+        return _charge;
+    }
+    public int pdgId()
+    {
+        return -11*_charge; // e- is particle
+    }
+    public String toString()
+    {
+        return name()+" "+mass()+" "+charge()+" "+pdgId();
+    }
+}
\ No newline at end of file

lcsim/src/org/lcsim/particle
Muon.java added at 1.1
diff -N Muon.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ Muon.java	2 Jul 2005 06:37:33 -0000	1.1
@@ -0,0 +1,42 @@
+package org.lcsim.particle;
+/**
+ * A muon particle class.
+ *
+ * @suthor Norman A. Graf
+ * @version 1.0
+ */
+public class Muon implements ParticleType
+{
+    private int _charge;
+    
+    /**
+     * Fully qualified constructor.
+     *
+     * @param   charge The charge of this Muon.
+     */
+    public Muon(int charge)
+    {
+        if((charge<-1 || charge>1) || charge==0) throw (new IllegalArgumentException("The charge of a muon can only be -1 or 1!"));
+        _charge = charge;
+    }
+    public String name()
+    {
+        return ParticleType.MUON+(_charge>0?"+":"-");
+    }
+    public double mass()
+    {
+        return 0.113;
+    }
+    public int charge()
+    {
+        return _charge;
+    }
+    public int pdgId()
+    {
+        return -13*_charge; // mu- is particle
+    }
+    public String toString()
+    {
+        return name()+" "+mass()+" "+charge()+" "+pdgId();
+    }
+}

lcsim/src/org/lcsim/particle
Neutron.java added at 1.1
diff -N Neutron.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ Neutron.java	2 Jul 2005 06:37:33 -0000	1.1
@@ -0,0 +1,31 @@
+package org.lcsim.particle;
+/**
+* A neutron particle class.
+*
+* @suthor Norman A. Graf
+* @version 1.0
+*/
+public class Neutron implements ParticleType
+{
+
+	public String name()
+	{
+		return ParticleType.NEUTRON;
+	}
+	public double mass()
+	{
+		return 0.939;
+	}
+	public int charge()
+	{
+		return 0;
+	}
+	public int pdgId()
+	{
+		return 2112;
+	}
+	public String toString()
+	{
+		return name()+" "+mass()+" "+charge()+" "+pdgId();
+	}
+}
\ No newline at end of file

lcsim/src/org/lcsim/particle
ParticleType.java added at 1.1
diff -N ParticleType.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ParticleType.java	2 Jul 2005 06:37:33 -0000	1.1
@@ -0,0 +1,46 @@
+package org.lcsim.particle;
+/**
+ * A class to encapsulate a particle type.
+ *
+ *
+ *
+ *@author Norman A. Graf
+ *@version 1.0
+ */
+public interface ParticleType
+{
+    
+    /**
+     * The commonly used name for this particle.
+     *
+     * @return  String name
+     */
+    public String name();
+    
+    /**
+     * The mass of this particle.
+     *
+     * @return double particle mass
+     */
+    public double mass();
+    
+    /**
+     * The charge of this particle.
+     *
+     * @return int charge
+     */
+    public int charge();
+    
+    /**
+     * The Particle Data Group  code for this particle
+     *
+     * @return int PDG Id
+     */
+    public int pdgId();
+    
+    public static final String PHOTON = "Photon";
+    public static final String ELECTRON = "Electron";
+    public static final String PION = "Pi";
+    public static final String MUON = "Muon";
+    public static final String NEUTRON = "Neutron";
+}

lcsim/src/org/lcsim/particle
Photon.java added at 1.1
diff -N Photon.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ Photon.java	2 Jul 2005 06:37:33 -0000	1.1
@@ -0,0 +1,31 @@
+package org.lcsim.particle;
+/**
+ * A photon particle class.
+ *
+ * @suthor Norman A. Graf
+ * @version 1.0
+ */
+public class Photon implements ParticleType
+{
+    
+    public String name()
+    {
+        return ParticleType.PHOTON;
+    }
+    public double mass()
+    {
+        return 0.;
+    }
+    public int charge()
+    {
+        return 0;
+    }
+    public int pdgId()
+    {
+        return 22;
+    }
+    public String toString()
+    {
+        return name()+" "+mass()+" "+charge()+" "+pdgId();
+    }
+}

lcsim/src/org/lcsim/particle
Pion.java added at 1.1
diff -N Pion.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ Pion.java	2 Jul 2005 06:37:33 -0000	1.1
@@ -0,0 +1,46 @@
+package org.lcsim.particle;
+/**
+ * A pion particle class.
+ *
+ * @suthor Norman A. Graf
+ * @version 1.0
+ */
+public class Pion implements ParticleType
+{
+    private int _charge;
+    
+    /**
+     * Fully qualified constructor.
+     *
+     * @param   charge The charge of this Pion.
+     */
+    public Pion(int charge)
+    {
+        if(charge<-1 || charge>1) throw (new IllegalArgumentException("The charge of a pion can only be -1, 0, or 1!"));
+        _charge = charge;
+    }
+    public String name()
+    {
+        return ParticleType.PION+(_charge==0?"0":(_charge>0?"+":"-"));
+    }
+    public double mass()
+    {
+        double mass = 0.135;
+        if(_charge!=0) mass = 0.1396;
+        return mass;
+    }
+    public int charge()
+    {
+        return _charge;
+    }
+    public int pdgId()
+    {
+        int id = 111; // pi0
+        if(_charge!=0) id=211*_charge; // pi+ is particle
+        return id;
+    }
+    public String toString()
+    {
+        return name()+" "+mass()+" "+charge()+" "+pdgId();
+    }
+}
\ No newline at end of file
CVSspam 0.2.8