Print

Print


Commit in lcsim/src/org/lcsim/event/base on MAIN
BaseReconstructedParticle.java+62-151.6 -> 1.7
BaseTrack.java+3-31.8 -> 1.9
+65-18
2 modified files
Initialize enough to be able to write and read back

lcsim/src/org/lcsim/event/base
BaseReconstructedParticle.java 1.6 -> 1.7
diff -u -r1.6 -r1.7
--- BaseReconstructedParticle.java	28 Jun 2006 07:06:54 -0000	1.6
+++ BaseReconstructedParticle.java	9 Feb 2007 17:34:10 -0000	1.7
@@ -3,7 +3,7 @@
  *
  * Created on March 24, 2006, 9:30 AM
  *
- * $Id: BaseReconstructedParticle.java,v 1.6 2006/06/28 07:06:54 jstrube Exp $
+ * $Id: BaseReconstructedParticle.java,v 1.7 2007/02/09 17:34:10 cassell Exp $
  */
 
 package org.lcsim.event.base;
@@ -20,7 +20,7 @@
 import org.lcsim.event.ParticleID;
 import org.lcsim.event.ReconstructedParticle;
 import org.lcsim.event.Track;
-import org.lcsim.recon.vertexing.zvtop4.VectorArithmetic;
+import org.lcsim.event.util.UnknownParticleID;
 /**
  *
  * @author Norman Graf
@@ -28,29 +28,84 @@
 public class BaseReconstructedParticle implements ReconstructedParticle
 {
     protected int _type;
-    protected BasicHepLorentzVector _fourVec = new BasicHepLorentzVector();
+    protected HepLorentzVector _fourVec = new BasicHepLorentzVector(0.,0.,0.,0.);
     protected double[] _covMatrix = new double[10];
     protected double _mass;
     protected double _charge;
-    protected BasicHep3Vector _referencePoint = new BasicHep3Vector();
+    protected Hep3Vector _referencePoint = new BasicHep3Vector(0.,0.,0.);
     protected List<ParticleID> _particleIds = new ArrayList<ParticleID>();
-    protected ParticleID _particleIdUsed;
+    protected ParticleID _particleIdUsed = new UnknownParticleID();
     protected double _goodnessOfPid;
     protected List<ReconstructedParticle> _particles = new ArrayList<ReconstructedParticle>();
     protected List<Cluster> _clusters = new ArrayList<Cluster>();
     protected List<Track> _tracks = new ArrayList<Track>();
     
     /** Creates a new instance of BaseReconstructedParticle */
-    // TODO currently adding tracks and clusters does not update four vector. Need to fix.
     public BaseReconstructedParticle()
     {
-    	this(0);
     }
     
     public BaseReconstructedParticle(double mass) {
     	_mass = mass;
     }
     
+    public BaseReconstructedParticle(HepLorentzVector v) {
+        _fourVec = v;
+    }
+    
+    public BaseReconstructedParticle(double mass, HepLorentzVector v) {
+        _fourVec = v;
+    	_mass = mass;
+    }
+    
+    public BaseReconstructedParticle(double E, Hep3Vector v) {
+        _fourVec = new BasicHepLorentzVector(E,v);
+    }
+    
+    public BaseReconstructedParticle(double E, double px, double py, double pz) {
+        _fourVec = new BasicHepLorentzVector(E, px, py, pz);
+    }
+    
+    public void set4Vector(HepLorentzVector v)
+    {
+        _fourVec = v;
+    }
+    
+    public void setMass(double m)
+    {
+        _mass = m;
+    }
+    
+    public void setCharge(double c)
+    {
+        _charge = c;
+    }
+    
+    public void setType(int t)
+    {
+        _type = t;
+    }
+    
+    public void setReferencePoint(Hep3Vector v)
+    {
+        _referencePoint = v;
+    }
+    
+    public void setReferencePoint(double x, double y, double z)
+    {
+        _referencePoint = new BasicHep3Vector(x, y, z);
+    }
+    
+    public void setParticleIdUsed(ParticleID id)
+    {
+        _particleIdUsed = id;
+    }
+    
+    public void setGoodnessOfPid(double g)
+    {
+        _goodnessOfPid = g;
+    }
+    
 // ReconstructedParticle interface
     
     /**
@@ -184,7 +239,6 @@
     public void addParticleID(ParticleID pid)
     {
         _particleIds.add(pid);
-        _particleIdUsed = pid;
     }
     
     /**
@@ -215,13 +269,6 @@
     public void addTrack(Track track)
     {
         _tracks.add(track);
-        // FIXME there is something wrong if adding information from a track to a HeplorentzVector is _this_ complicated.
-        double p = VectorArithmetic.magnitude(track.getMomentum());
-        double energy = Math.sqrt(p*p + _mass*_mass) + _fourVec.t();
-        Hep3Vector momentum = VectorArithmetic.add(_fourVec.v3(), track.getMomentum());
-        // FIXME HeplorentzVector.setV3 sets all four components ? That is not intuitive.
-        _fourVec.setV3(energy, momentum);
-        _charge += track.getCharge();
     }
     
     /**

lcsim/src/org/lcsim/event/base
BaseTrack.java 1.8 -> 1.9
diff -u -r1.8 -r1.9
--- BaseTrack.java	23 Oct 2006 19:42:37 -0000	1.8
+++ BaseTrack.java	9 Feb 2007 17:34:10 -0000	1.9
@@ -3,7 +3,7 @@
  *
  * Created on March 24, 2006, 9:18 PM
  *
- * $Id: BaseTrack.java,v 1.8 2006/10/23 19:42:37 tonyj Exp $
+ * $Id: BaseTrack.java,v 1.9 2007/02/09 17:34:10 cassell Exp $
  */
 
 package org.lcsim.event.base;
@@ -29,13 +29,13 @@
     protected SymmetricMatrix _covMatrix = new SymmetricMatrix(5);
     protected double[] _momentum = new double[3];
     protected int _charge;
-    protected boolean _fitSuccess;
+    protected boolean _fitSuccess = true;
     protected double _chi2;
     protected int _ndf;
     protected double _dEdx;
     protected double _dEdxErr;
     protected double _innermostHitRadius = 9999.;
-    protected int[] _subdetId;
+    protected int[] _subdetId = new int[1];
     protected List<Track> _tracks;
     protected List<TrackerHit> _hits;
     protected int _type;
CVSspam 0.2.8