15 modified files
lcsim/src/org/lcsim/contrib/onoprien/tracking
diff -u -r1.6 -r1.7
--- ExampleDriver.java 21 May 2007 04:08:09 -0000 1.6
+++ ExampleDriver.java 31 May 2007 09:38:54 -0000 1.7
@@ -3,9 +3,11 @@
import java.util.ArrayList;
import java.util.HashMap;
+import hep.aida.*;
import org.lcsim.event.EventHeader;
import org.lcsim.recon.cat.util.Const;
import org.lcsim.util.Driver;
+import org.lcsim.util.aida.AIDA;
import org.lcsim.contrib.onoprien.tracking.clustering.ClusteringDriver;
import org.lcsim.contrib.onoprien.tracking.digitization.DigitizationDriver;
@@ -21,10 +23,12 @@
/**
*
* @author D.Onoprienko
- * @version $Id: ExampleDriver.java,v 1.6 2007/05/21 04:08:09 onoprien Exp $
+ * @version $Id: ExampleDriver.java,v 1.7 2007/05/31 09:38:54 onoprien Exp $
*/
public class ExampleDriver extends Driver {
+ private AIDA aida = AIDA.defaultInstance();
+
public ExampleDriver() {
// Segmentation description :
@@ -67,7 +71,7 @@
digitizationDriver.setOutputCollection("DigiHits");
add(digitizationDriver);
-// digitizationDriver.setHistogramLevel(HLEVEL_FULL);
+ digitizationDriver.setHistogramLevel(HLEVEL_FULL);
ClusteringDriver clusteringDriver = new ClusteringDriver();
clusteringDriver.set("INPUT_MAP_NAME","DigiHits");
@@ -78,12 +82,23 @@
public void process(EventHeader event) {
super.process(event);
+ aida.clearAll();
+
+ System.out.println(" ");
+ System.out.println("Event "+event.getEventNumber());
+
+ // Print statistics on digi hits :
+
HashMap<Sensor, ArrayList<DigiTrackerHit>> dhMap
= (HashMap<Sensor, ArrayList<DigiTrackerHit>>) event.get("DigiHits");
- System.out.println("Number of Sensors " + dhMap.size());
for (Sensor sensor : dhMap.keySet()) {
- System.out.println("Sensor "+sensor.getID()+" Number of hits : "+dhMap.get(sensor).size());
+ ArrayList<DigiTrackerHit> dList = dhMap.get(sensor);
+ System.out.println(" ");
+ System.out.println("Sensor "+sensor.getID()+" Number of hits : " + dList.size());
+ for (DigiTrackerHit hit : dList) {
+ System.out.println("Channel "+hit.getChannel()+" comp = "+hit.isComposite()+" size: "+hit.getElementalHits().size());
+ }
}
}
lcsim/src/org/lcsim/contrib/onoprien/tracking/digitization
diff -u -r1.4 -r1.5
--- DigitizationDriver.java 21 May 2007 04:08:09 -0000 1.4
+++ DigitizationDriver.java 31 May 2007 09:38:54 -0000 1.5
@@ -35,7 +35,7 @@
* in the constructor.
*
* @author D.Onoprienko
- * @version $Id: DigitizationDriver.java,v 1.4 2007/05/21 04:08:09 onoprien Exp $
+ * @version $Id: DigitizationDriver.java,v 1.5 2007/05/31 09:38:54 onoprien Exp $
*/
public class DigitizationDriver extends Driver {
@@ -154,7 +154,7 @@
for (LinkedList<SimTrackerHit> group : groupList) {
List<DigiTrackerHit> digiGroup = _digitizer.digitize(group);
-// if (getHistogramLevel() >= HLEVEL_FULL) DigitizerTest.plotGroup(group, digiGroup);
+ //if (getHistogramLevel() >= HLEVEL_FULL) DigitizerTest.plotGroup(group, digiGroup);
Sensor prevSensor = null;
ArrayList<DigiTrackerHit> digiList = null;
lcsim/src/org/lcsim/contrib/onoprien/tracking/geom
diff -u -r1.2 -r1.3
--- SegmentationManager.java 10 May 2007 07:11:12 -0000 1.2
+++ SegmentationManager.java 31 May 2007 09:38:54 -0000 1.3
@@ -28,7 +28,7 @@
* {@link #getSegmenters()} methods.
*
* @author D.Onoprienko
- * @version $Id: SegmentationManager.java,v 1.2 2007/05/10 07:11:12 onoprien Exp $
+ * @version $Id: SegmentationManager.java,v 1.3 2007/05/31 09:38:54 onoprien Exp $
*/
abstract public class SegmentationManager implements ConditionsListener {
@@ -54,6 +54,7 @@
_idPostfixLength = 0;
detectorChanged(detector);
Collection<Segmenter> segmenterList = getSegmenters();
+ System.out.println("size "+segmenterList.size());
for (Segmenter segmenter : segmenterList) {
segmenter.detectorChanged(detector);
if (segmenter.getNativePostfixLength() > _idPostfixLength) {
@@ -62,6 +63,7 @@
}
int nSeg = segmenterList.size();
int prefixLength = Segmenter.getIdSize(nSeg);
+ System.out.println("Pref length "+prefixLength+" Post length "+_idPostfixLength);
_segmenters = new ArrayList<Segmenter>(nSeg);
int prefix = 0;
for (Segmenter segmenter : segmenterList) {
lcsim/src/org/lcsim/contrib/onoprien/tracking/geom
diff -u -r1.1 -r1.2
--- Segmenter.java 7 May 2007 19:02:42 -0000 1.1
+++ Segmenter.java 31 May 2007 09:38:54 -0000 1.2
@@ -7,7 +7,7 @@
* Base class for defining segmentation of a particular part of the detector.
*
* @author D.Onoprienko
- * @version $Id: Segmenter.java,v 1.1 2007/05/07 19:02:42 onoprien Exp $
+ * @version $Id: Segmenter.java,v 1.2 2007/05/31 09:38:54 onoprien Exp $
*/
abstract public class Segmenter {
@@ -38,11 +38,11 @@
/**
* Creates a new {@link Sensor} object.
- * If <tt>rotation</tt> is not <tt>null</tt>, is is assigned to the newly created
- * sensor; otherwise, new {@link Hep3Rotation} object is created.
*/
public Sensor getSensor(int sensorID) {
- return makeSensor(sensorID & _mask);
+ Sensor sensor = makeSensor(sensorID & _mask);
+ sensor.setID(sensorID);
+ return sensor;
}
/**
lcsim/src/org/lcsim/contrib/onoprien/tracking/geom
diff -u -r1.1 -r1.2
--- Sensor.java 7 May 2007 19:02:42 -0000 1.1
+++ Sensor.java 31 May 2007 09:38:54 -0000 1.2
@@ -12,19 +12,23 @@
* and knows how to transform coordinates between local and global frames.
*
* @author D.Onoprienko
- * @version $Id: Sensor.java,v 1.1 2007/05/07 19:02:42 onoprien Exp $
+ * @version $Id: Sensor.java,v 1.2 2007/05/31 09:38:54 onoprien Exp $
*/
public class Sensor {
// -- Constructors : ----------------------------------------------------------
- public Sensor(SensorType type, int sensorID, Hep3Vector translation, Transformation3D rotation) {
+ public Sensor(SensorType type, Hep3Vector translation, Transformation3D rotation) {
_type = type;
- _id = sensorID;
_translation = translation;
_rotation = rotation;
}
+// -- Setters : ---------------------------------------------------------------
+
+ /** Set Sensor ID */
+ void setID(int id) {_id = id;}
+
// -- Getters : ---------------------------------------------------------------
/**
lcsim/src/org/lcsim/contrib/onoprien/tracking/geom/segmentation
diff -u -r1.3 -r1.4
--- CylindricalBarrelSegmenter.java 10 May 2007 07:11:12 -0000 1.3
+++ CylindricalBarrelSegmenter.java 31 May 2007 09:38:54 -0000 1.4
@@ -23,7 +23,7 @@
/**
*
* @author D.Onoprienko
- * @version $Id: CylindricalBarrelSegmenter.java,v 1.3 2007/05/10 07:11:12 onoprien Exp $
+ * @version $Id: CylindricalBarrelSegmenter.java,v 1.4 2007/05/31 09:38:54 onoprien Exp $
*/
public class CylindricalBarrelSegmenter extends Segmenter {
@@ -99,7 +99,7 @@
public Sensor makeSensor(int postfix) {
int id = postfix - 1;
SensorType type = new Cylinder(_length[id], _radius[id], _thickness[id], _stripLength, _stripWidth);
- return new Sensor(type, postfix, _trans, _rot);
+ return new Sensor(type, _trans, _rot);
}
// -- Private parts : ---------------------------------------------------------
lcsim/src/org/lcsim/contrib/onoprien/tracking/geom/segmentation
diff -u -r1.3 -r1.4
--- RingSegmenter.java 10 May 2007 07:11:12 -0000 1.3
+++ RingSegmenter.java 31 May 2007 09:38:54 -0000 1.4
@@ -27,7 +27,7 @@
* Fix relation between layer returned by hits and copy number.
*
* @author D.Onoprienko
- * @version $Id: RingSegmenter.java,v 1.3 2007/05/10 07:11:12 onoprien Exp $
+ * @version $Id: RingSegmenter.java,v 1.4 2007/05/31 09:38:54 onoprien Exp $
*/
public class RingSegmenter extends Segmenter {
@@ -113,7 +113,7 @@
SensorType type = new Ring(_radiusInner[id], _radiusOuter[id], _thickness[id], _stripLength, _stripWidth);
Hep3Vector trans = new BasicHep3Vector(0.,0.,_z[id]);
Rotation3D rot = ((postfix % _nDisks) % 2 == 1) ? _rot0 : _rot1 ;
- return new Sensor(type, postfix, trans, rot);
+ return new Sensor(type, trans, rot);
}
// -- Private parts : ---------------------------------------------------------
lcsim/src/org/lcsim/contrib/onoprien/tracking/hit
diff -u -r1.1 -r1.2
--- TrackerCluster.java 7 May 2007 19:02:43 -0000 1.1
+++ TrackerCluster.java 31 May 2007 09:38:54 -0000 1.2
@@ -2,7 +2,7 @@
import java.util.List;
-import org.lcsim.contrib.onoprien.tracking.swimmer.Helix;
+import org.lcsim.contrib.onoprien.tracking.track.OldTrackPoint;
import org.lcsim.contrib.onoprien.tracking.geom.Sensor;
/**
@@ -12,7 +12,7 @@
* contribute to one cluster.
*
* @author D. Onoprienko
- * @version $Id: TrackerCluster.java,v 1.1 2007/05/07 19:02:43 onoprien Exp $
+ * @version $Id: TrackerCluster.java,v 1.2 2007/05/31 09:38:54 onoprien Exp $
*/
public interface TrackerCluster extends TrackerClusterData {
@@ -25,13 +25,32 @@
public List<TrackerHit> getTrackerHits();
/**
- * Makes a new or updates an existing <tt>TrackerHit</tt>.
+ * Creates <tt>TrackerHit</tt> from this cluster without using any trajectory information.
+ */
+ public TrackerHit makeTrackerHit();
+
+ /**
+ * Creates <tt>TrackerHit</tt> from this cluster.
+ *
+ * @param trackPoint Trajectory to be used in producing the hit. Can be <tt>null</tt>.
+ */
+ public TrackerHit makeTrackerHit(OldTrackPoint trackPoint);
+
+ /**
+ * Updates an existing <tt>TrackerHit</tt> without using any trajectory information.
+ *
+ * @param hit TrackerHit previously produced from this cluster that needs to
+ * be updated using the trajectory information. Can be <tt>null</tt>.
+ */
+ public TrackerHit makeTrackerHit(TrackerHit hit);
+
+ /**
+ * Updates an existing <tt>TrackerHit</tt>.
*
- * @param cluster TrackerCluster from which the hit is to be produced.
- * @param helix Trajectory to be used in producing the hit. Can be <tt>null</tt>.
- * @param hit TrackerHit previously produced from this cluster that needs to
- * be updated using the trajectory information. Can be <tt>null</tt>.
+ * @param trackPoint Trajectory to be used in producing the hit. Can be <tt>null</tt>.
+ * @param hit TrackerHit previously produced from this cluster that needs to
+ * be updated using the trajectory information. Can be <tt>null</tt>.
*/
- public TrackerHit makeTrackerHit(Helix helix, TrackerHit hit);
+ public TrackerHit makeTrackerHit(OldTrackPoint trackPoint, TrackerHit hit);
}
lcsim/src/org/lcsim/contrib/onoprien/tracking/hit
diff -u -r1.1 -r1.2
--- TrackerHit.java 7 May 2007 19:02:43 -0000 1.1
+++ TrackerHit.java 31 May 2007 09:38:54 -0000 1.2
@@ -15,7 +15,7 @@
* <nobr>W = U x V.</nobr>
*
* @author D.Onoprienko
- * @version $Id: TrackerHit.java,v 1.1 2007/05/07 19:02:43 onoprien Exp $
+ * @version $Id: TrackerHit.java,v 1.2 2007/05/31 09:38:54 onoprien Exp $
*/
public interface TrackerHit {
@@ -42,9 +42,15 @@
/**
* Returns <tt>SpacePointVector</tt> pointing from start to end of the segment
+ * defining the hit in the local reference frame.
+ */
+ public SpacePointVector getLocalSegment();
+
+ /**
+ * Returns <tt>SpacePointVector</tt> pointing from start to end of the segment
* defining the hit in the global reference frame.
*/
- public SpacePointVector getPointVector();
+ public SpacePointVector getSegment();
/** Returns {@link Sensor} object for this hit. */
public Sensor getSensor();
lcsim/src/org/lcsim/contrib/onoprien/tracking/hit
diff -u -r1.1 -r1.2
--- TrackerHitMaker.java 7 May 2007 19:02:43 -0000 1.1
+++ TrackerHitMaker.java 31 May 2007 09:38:55 -0000 1.2
@@ -1,11 +1,11 @@
package org.lcsim.contrib.onoprien.tracking.hit;
-import org.lcsim.contrib.onoprien.tracking.swimmer.Helix;
+import org.lcsim.contrib.onoprien.tracking.track.OldTrackPoint;
/**
*
* @author D.Onoprienko
- * @version $Id: TrackerHitMaker.java,v 1.1 2007/05/07 19:02:43 onoprien Exp $
+ * @version $Id: TrackerHitMaker.java,v 1.2 2007/05/31 09:38:55 onoprien Exp $
*/
public interface TrackerHitMaker {
@@ -17,6 +17,6 @@
* @param hit TrackerHit previously produced from this cluster that needs to
* be updated using the trajectory information. Can be <tt>null</tt>.
*/
- public TrackerHit makeTrackerHit(TrackerClusterData cluster, Helix helix, TrackerHit hit);
+ public TrackerHit makeTrackerHit(TrackerClusterData cluster, OldTrackPoint trackPoint, TrackerHit hit);
}
lcsim/src/org/lcsim/contrib/onoprien/tracking/hit/base
diff -u -r1.1 -r1.2
--- TrackerClusterBasic.java 7 May 2007 19:02:43 -0000 1.1
+++ TrackerClusterBasic.java 31 May 2007 09:38:55 -0000 1.2
@@ -9,12 +9,12 @@
import org.lcsim.contrib.onoprien.tracking.hit.DigiTrackerHit;
import org.lcsim.contrib.onoprien.tracking.hit.TrackerHitMaker;
import org.lcsim.contrib.onoprien.tracking.geom.Sensor;
-import org.lcsim.contrib.onoprien.tracking.swimmer.Helix;
+import org.lcsim.contrib.onoprien.tracking.track.OldTrackPoint;
/**
*
* @author D.Onoprienko
- * @version $Id: TrackerClusterBasic.java,v 1.1 2007/05/07 19:02:43 onoprien Exp $
+ * @version $Id: TrackerClusterBasic.java,v 1.2 2007/05/31 09:38:55 onoprien Exp $
*/
public class TrackerClusterBasic implements TrackerCluster {
@@ -51,15 +51,34 @@
// -- Making TrackerHits out of clusters : ------------------------------------
/**
- * Makes a new or updates an existing <tt>TrackerHit</tt>.
+ * Creates <tt>TrackerHit</tt> from this cluster without using any trajectory information.
+ */
+ public TrackerHit makeTrackerHit() {return makeTrackerHit(null, null);}
+
+ /**
+ * Creates <tt>TrackerHit</tt> from this cluster.
+ *
+ * @param trackPoint Trajectory to be used in producing the hit. Can be <tt>null</tt>.
+ */
+ public TrackerHit makeTrackerHit(OldTrackPoint trackPoint) {return makeTrackerHit(trackPoint, null);}
+
+ /**
+ * Updates an existing <tt>TrackerHit</tt> without using any trajectory information.
+ *
+ * @param hit TrackerHit previously produced from this cluster that needs to
+ * be updated using the trajectory information. Can be <tt>null</tt>.
+ */
+ public TrackerHit makeTrackerHit(TrackerHit hit) {return makeTrackerHit(null, hit);}
+
+ /**
+ * Updates an existing <tt>TrackerHit</tt>.
*
- * @param cluster TrackerCluster from which the hit is to be produced.
- * @param helix Trajectory to be used in producing the hit. Can be <tt>null</tt>.
- * @param hit TrackerHit previously produced from this cluster that needs to
- * be updated using the trajectory information. Can be <tt>null</tt>.
+ * @param trackPoint Trajectory to be used in producing the hit. Can be <tt>null</tt>.
+ * @param hit TrackerHit previously produced from this cluster that needs to
+ * be updated using the trajectory information. Can be <tt>null</tt>.
*/
- public TrackerHit makeTrackerHit(Helix helix, TrackerHit hit) {
- TrackerHit newHit = _hitMaker.makeTrackerHit(this, helix, hit);
+ public TrackerHit makeTrackerHit(OldTrackPoint trackPoint, TrackerHit hit) {
+ TrackerHit newHit = _hitMaker.makeTrackerHit(this, trackPoint, hit);
if (hit == null) {
_hitList.add(newHit);
} else if (newHit != hit) {
lcsim/src/org/lcsim/contrib/onoprien/tracking/hit/base
diff -u -r1.1 -r1.2
--- TrackerHitAdapter.java 7 May 2007 19:02:43 -0000 1.1
+++ TrackerHitAdapter.java 31 May 2007 09:38:55 -0000 1.2
@@ -17,7 +17,7 @@
* An adapter class to be extended by classes that represent a segment-like hits.
*
* @author D.Onoprienko
- * @version $Id: TrackerHitAdapter.java,v 1.1 2007/05/07 19:02:43 onoprien Exp $
+ * @version $Id: TrackerHitAdapter.java,v 1.2 2007/05/31 09:38:55 onoprien Exp $
*/
abstract public class TrackerHitAdapter implements TrackerHit {
@@ -45,13 +45,14 @@
return getSensor().getRotation().transformFrom(getLocalCovMatrix());
}
- /**
+ /**
+ *
* Returns position of the hit in global reference frame.
* For a segment-like hit, this is the center of the segment.
- * Default implementation relies on {@link #getPointVector()} method.
+ * Default implementation relies on {@link #getSegment()} method.
*/
public Hep3Vector getPosition() {
- SpacePointVector pointVector = getPointVector();
+ SpacePointVector pointVector = getSegment();
return pointVector.getPointAtLength(pointVector.magnitude()/2.);
}
@@ -64,12 +65,23 @@
return getSensor().getRotation();
}
- /**
+ /**
+ *
* Returns length of the segment defining the hit.
- * Default implementation relies on {@link #getPointVector()} method.
+ * Default implementation relies on {@link #getSegment()} method.
*/
public double getLength() {
- return getPointVector().magnitude();
+ return getSegment().magnitude();
+ }
+
+ /**
+ * Returns <tt>SpacePointVector</tt> pointing from start to end of the segment
+ * defining the hit in the local reference frame.
+ */
+ public SpacePointVector getLocalSegment() {
+ double halfLength = getLength()/2.;
+ return new SpacePointVector(new SpacePoint(new BasicHep3Vector(0., 0., -halfLength)),
+ new SpacePoint(new BasicHep3Vector(0., 0., halfLength)));
}
/**
@@ -77,7 +89,7 @@
* defining the hit. Default implementation relies on {@link #localToGlobal()}
* and {@link #getLength()} methods.
*/
- public SpacePointVector getPointVector() {
+ public SpacePointVector getSegment() {
double halfLength = getLength()/2.;
Hep3Vector start = getSensor().localToGlobal(new BasicHep3Vector(0., 0., -halfLength));
Hep3Vector end = getSensor().localToGlobal(new BasicHep3Vector(0., 0., halfLength));
lcsim/src/org/lcsim/contrib/onoprien/tracking/track
diff -u -r1.1 -r1.2
--- Track.java 7 May 2007 19:02:44 -0000 1.1
+++ Track.java 31 May 2007 09:38:55 -0000 1.2
@@ -4,9 +4,10 @@
import org.lcsim.contrib.onoprien.tracking.*;
/**
+ * Just a stub to prevent build from failing - the real thing is not in CVS yet.
*
* @author D.Onoprienko
- * @version $Id: Track.java,v 1.1 2007/05/07 19:02:44 onoprien Exp $
+ * @version $Id: Track.java,v 1.2 2007/05/31 09:38:55 onoprien Exp $
*/
public interface Track {
lcsim/src/org/lcsim/contrib/onoprien/tracking/track
diff -u -r1.1 -r1.2
--- TrackNode.java 7 May 2007 19:02:44 -0000 1.1
+++ TrackNode.java 31 May 2007 09:38:55 -0000 1.2
@@ -4,9 +4,10 @@
import org.lcsim.contrib.onoprien.tracking.swimmer.Helix;
/**
+ * Just a stub to prevent build from failing - the real thing is not in CVS yet.
*
* @author D.Onoprienko
- * @version $Id: TrackNode.java,v 1.1 2007/05/07 19:02:44 onoprien Exp $
+ * @version $Id: TrackNode.java,v 1.2 2007/05/31 09:38:55 onoprien Exp $
*/
public interface TrackNode {
lcsim/src/org/lcsim/contrib/onoprien/tracking/track
diff -u -r1.1 -r1.2
--- TrackPoint.java 7 May 2007 19:02:44 -0000 1.1
+++ TrackPoint.java 31 May 2007 09:38:55 -0000 1.2
@@ -1,40 +1,12 @@
-package org.lcsim.contrib.onoprien.tracking.track;
-import javax.crypto.NullCipher;
-import org.lcsim.contrib.onoprien.tracking.geom.Sensor;
-import org.lcsim.contrib.onoprien.tracking.hit.TrackerCluster;
-import org.lcsim.contrib.onoprien.tracking.swimmer.Helix;
+package org.lcsim.contrib.onoprien.tracking.track;
/**
- * Track node associated with with a hit.
+ * Just a stub to prevent build from failing - the real thing is not in CVS yet.
*
* @author D.Onoprienko
- * @version $Id: TrackPoint.java,v 1.1 2007/05/07 19:02:44 onoprien Exp $
+ * @version $Id: TrackPoint.java,v 1.2 2007/05/31 09:38:55 onoprien Exp $
*/
-public class TrackPoint implements TrackNode {
-
-// -- Implementing TrackNode : ------------------------------------------------
-
- public Helix getHelix() {
- return _helix;
- }
-
- public Sensor getSensor() {
- return _cluster.getSensor();
- }
+public interface TrackPoint {
- public double chi2(Helix helix) {
- return 0.; // FIXME
- }
-
-// -- Setters : ---------------------------------------------------------------
-
- public void setHelix(Helix helix) {
- _helix = helix;
- }
-
-// -- Private parts : ---------------------------------------------------------
-
- private Helix _helix;
- private TrackerCluster _cluster;
}
CVSspam 0.2.8