hps-java/src/main/java/org/lcsim/hps/users/phansson
diff -u -r1.5 -r1.6
--- ParticleHelixProducer.java 17 Oct 2012 22:52:29 -0000 1.5
+++ ParticleHelixProducer.java 20 Oct 2012 10:07:04 -0000 1.6
@@ -2,20 +2,25 @@
import hep.aida.ICloud1D;
import hep.aida.IPlotter;
+import hep.physics.matrix.SymmetricMatrix;
import hep.physics.vec.BasicHep3Vector;
import hep.physics.vec.Hep3Matrix;
import hep.physics.vec.Hep3Vector;
import hep.physics.vec.VecOp;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import org.lcsim.constants.Constants;
import org.lcsim.event.EventHeader;
import org.lcsim.event.MCParticle;
import org.lcsim.event.util.ParticleTypeClassifier;
import org.lcsim.fit.helicaltrack.HelicalTrackFit;
+import org.lcsim.fit.helicaltrack.HelicalTrackHit;
import org.lcsim.fit.helicaltrack.HelixParamCalculator;
+import org.lcsim.fit.helicaltrack.MultipleScatter;
import org.lcsim.geometry.Detector;
import org.lcsim.hps.analysis.ecal.HPSMCParticlePlotsDriver;
+import org.lcsim.hps.recon.tracking.HpsHelicalTrackFit;
import org.lcsim.hps.recon.tracking.SvtTrackExtrapolator;
import org.lcsim.hps.recon.tracking.TrackUtils;
import org.lcsim.hps.recon.tracking.TrackerHitUtils;
@@ -133,7 +138,9 @@
//Make new tracks based on the MC particles
- List<HelicalTrackFit> tracks = new ArrayList<HelicalTrackFit>();
+ //List<HelicalTrackFit> tracks = new ArrayList<HelicalTrackFit>();
+ List<HpsHelicalTrackFit> tracks = new ArrayList<HpsHelicalTrackFit>();
+
if(event.hasCollection(MCParticle.class)) {
List<MCParticle> mcparticles = event.get(MCParticle.class).get(0);
if(debug) System.out.println(this.getClass().getSimpleName() + ": Number of MC particles = " + mcparticles.size());
@@ -211,7 +218,8 @@
pars[2] = 1/hpc.getRadius();
pars[3] = hpc.getZ0();
pars[4] = hpc.getSlopeSZPlane();
- HelicalTrackFit htf = this.trackUtils.makeHelicalTrackFit(pars);
+ //HelicalTrackFit htf = this.trackUtils.makeHelicalTrackFit(pars);
+ HpsHelicalTrackFit htf = this.makeHpsHelicalTrackFit(pars, part);
tracks.add(htf);
if(debug) {
System.out.println(this.getClass().getSimpleName() + ": MC particle created HelicalTrackFit " + htf.toString());
@@ -237,15 +245,25 @@
if(debug) System.out.println(this.getClass().getSimpleName() + ": created " + tracks.size() + " MC particle helix tracks");
- event.put(this.trackOutputCollectionName, tracks, HelicalTrackFit.class, 0);
+ // event.put(this.trackOutputCollectionName, tracks, HelicalTrackFit.class, 0);
+ event.put(this.trackOutputCollectionName, tracks, HpsHelicalTrackFit.class, 0);
_totalTracks += tracks.size();
}
-
-
+ /**
+ * Create an HpsHelicalTrackFit
+ *
+ * @param helixParameters : an array of helix parameters
+ * @param mcParticle : MC particle associated to this HelicalTrackFit
+ * @return HpsHelicalTrackFit :
+ */
+ public HpsHelicalTrackFit makeHpsHelicalTrackFit(double[] helixParameters, MCParticle mcParticle){
+ return new HpsHelicalTrackFit(helixParameters, new SymmetricMatrix(5), new double[2], new int[2],
+ new HashMap<HelicalTrackHit, Double>(), new HashMap<HelicalTrackHit, MultipleScatter>(), mcParticle);
+ }
@Override