lcsim/src/org/lcsim/event/base
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
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;