11 removed files
lcsim/src/org/lcsim/contrib/onoprien/tracking/swimmer
diff -N Helix.java
--- Helix.java 7 May 2007 19:02:43 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,75 +0,0 @@
-package org.lcsim.contrib.onoprien.tracking.swimmer;
-
-import org.lcsim.spacegeom.*;
-import hep.physics.vec.Hep3Vector;
-
-/**
- * Just a stub to avoid compilation errors.
- *
- * @author D.Onoprienko
- * @version $Id: Helix.java,v 1.1 2007/05/07 19:02:43 onoprien Exp $
- */
-public class Helix {
-
-// -- Constructors : ----------------------------------------------------------
-
- /** Constructs <tt>Helix</tt> from a reference point and parameters at PCA. */
- public Helix(Hep3Vector refPoint, double d0, double phi0, double omega, double z0, double tanLambda) {
- _refPoint = new SpacePoint(refPoint);
- _d0 = d0;
- _phi0 = phi0;
- _omega = omega;
- _z0 = z0;
- _tanLambda = tanLambda;
- }
-
- /** Constructs <tt>Helix</tt> from parameters at PCA to the reference system origin. */
- public Helix(double d0, double phi0, double omega, double z0, double tanLambda) {
- _refPoint = new SpacePoint();
- _d0 = d0;
- _phi0 = phi0;
- _omega = omega;
- _z0 = z0;
- _tanLambda = tanLambda;
- }
-
- /** Copy constructor. */
- public Helix(Helix helix) {
- _refPoint = new SpacePoint(helix._refPoint);
- _d0 = helix._d0;
- _phi0 = helix._phi0;
- _omega = helix._omega;
- _z0 = helix._z0;
- _tanLambda = helix._tanLambda;
- }
-
-// -- Setters : ---------------------------------------------------------------
-
- public void setRefPoint(SpacePoint point) {}
-
-// -- Getters : ---------------------------------------------------------------
-
- public double lengthToPoint(SpacePoint point) {
- return 0.; //FIXME
- }
-
- public SpacePoint pointAtLength(double alpha) {
- return new SpacePoint(); //FIXME
- }
-
- public SpaceVector directionAtLength(double alpha) {
- return new CartesianVector(1.,0.,0.); //FIXME
- }
-
-
-// -- Private parts : ---------------------------------------------------------
-
- private SpacePoint _refPoint;
-
- private double _d0;
- private double _phi0;
- private double _omega;
- private double _z0;
- private double _tanLambda;
-
-}
lcsim/src/org/lcsim/contrib/onoprien/tracking/swimmer
diff -N HelixSwimmer.java
--- HelixSwimmer.java 7 May 2007 19:02:43 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,73 +0,0 @@
-package org.lcsim.contrib.onoprien.tracking.swimmer;
-
-import org.lcsim.conditions.ConditionsListener;
-import org.lcsim.conditions.ConditionsEvent;
-import org.lcsim.conditions.ConditionsManager;
-import org.lcsim.conditions.ConditionsManager.ConditionsSetNotFoundException;
-import org.lcsim.constants.Constants;
-import org.lcsim.geometry.Detector;
-import org.lcsim.spacegeom.*;
-import hep.physics.vec.BasicHep3Vector;
-import hep.physics.vec.Hep3Vector;
-
-/**
- * Just a stub to avoid compilation errors.
- *
- * @author D.Onoprienko
- * @version $Id: HelixSwimmer.java,v 1.1 2007/05/07 19:02:43 onoprien Exp $
- */
-public class HelixSwimmer implements ConditionsListener {
-
-// -- Constructors : ----------------------------------------------------------
-
- /**
- * Create a swimmer that will be listening to detector changes and update its
- * magnetic field value automatically.
- */
- public HelixSwimmer() {
- ConditionsManager.defaultInstance().addConditionsListener(this);
- conditionsChanged(null);
- }
-
- /** Create a swimmer that will use a fixed magnetic field value. */
- public HelixSwimmer(double bField) {
- _fieldFactor = Constants.fieldConversion * bField;
- }
-
- /** Delete the swimmer, making it garbage collectable. */
- public void delete() {
- ConditionsManager.defaultInstance().removeConditionsListener(this);
- }
-
-// -- Initialization : --------------------------------------------------------
-
- /** This method will be called by the framework to update magnetic field value. */
- public void conditionsChanged(ConditionsEvent event) {
- ConditionsManager conMan = (event == null) ? ConditionsManager.defaultInstance() : event.getConditionsManager();
- try {
- Detector det = conMan.getCachedConditions(Detector.class,"compact.xml").getCachedData();
- _fieldFactor = Constants.fieldConversion * det.getFieldMap().getField(new BasicHep3Vector(0.,0.,0.)).z();
- } catch (ConditionsSetNotFoundException x) {}
- }
-
-// -- Converting between helix and spatial parameters : -----------------------
-
- public Helix getHelix(Hep3Vector position, Hep3Vector memontum, int charge, Hep3Vector refPoint) {
- return null; // FIXME
- }
-
- /** Get momentum at PCA. */
- public SpaceVector getMomentum(Helix helix) {
- return null; // FIXME
- }
-
- /** Get charge. */
- public int getCharge(Helix helix) {
- return 0; // FIXME
- }
-
-// -- Private parts : ---------------------------------------------------------
-
- private double _fieldFactor;
-
-}
lcsim/src/org/lcsim/contrib/onoprien/tracking/tests
diff -N ClusteringTest.java
--- ClusteringTest.java 12 Oct 2007 21:52:07 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,173 +0,0 @@
-package org.lcsim.contrib.onoprien.tracking.tests;
-
-import java.util.*;
-
-import hep.aida.*;
-import org.lcsim.event.EventHeader;
-import org.lcsim.event.SimTrackerHit;
-import org.lcsim.recon.cat.util.NoSuchParameterException;
-import org.lcsim.units.clhep.SystemOfUnits;
-import org.lcsim.util.Driver;
-import org.lcsim.util.aida.AIDA;
-import hep.physics.vec.BasicHep3Vector;
-import hep.physics.vec.Hep3Vector;
-import hep.physics.vec.VecOp;
-
-import org.lcsim.contrib.onoprien.tracking.ExampleSegmenter1;
-import org.lcsim.contrib.onoprien.tracking.clustering.ClusteringDriver;
-import org.lcsim.contrib.onoprien.tracking.clustering.clusterers.NearestNeighborClusterer;
-import org.lcsim.contrib.onoprien.tracking.digitization.SimToDigiDriver;
-import org.lcsim.contrib.onoprien.tracking.digitization.SimToDigiConverter;
-import org.lcsim.contrib.onoprien.tracking.digitization.algorithms.ConverterSimple;
-import org.lcsim.contrib.onoprien.tracking.geom.SegmentationManager;
-import org.lcsim.contrib.onoprien.tracking.geom.Segmenter;
-import org.lcsim.contrib.onoprien.tracking.geom.Sensor;
-import org.lcsim.contrib.onoprien.tracking.geom.SensorType;
-import org.lcsim.contrib.onoprien.tracking.hit.DigiTrackerHit;
-import org.lcsim.contrib.onoprien.tracking.hit.TrackerCluster;
-import org.lcsim.contrib.onoprien.tracking.mctruth.MCTruth;
-import org.lcsim.contrib.onoprien.tracking.mctruth.MCTruthDriver;
-import org.lcsim.contrib.onoprien.tracking.mctruth.SimGroup;
-
-/**
- *
- *
- * @author D. Onoprienko
- * @version $Id: ClusteringTest.java,v 1.2 2007/10/12 21:52:07 onoprien Exp $
- */
-public class ClusteringTest extends Driver {
-
-// -- Constructors : ----------------------------------------------------------
-
- public ClusteringTest() {
-
- _aida = AIDA.defaultInstance();
- _hFactory = _aida.histogramFactory();
- _eventHistList = new LinkedList<IBaseHistogram>();
-
- add(new MCTruthDriver());
-
- // Segmentation description :
-
- Segmenter segmenter = new ExampleSegmenter1();
- SegmentationManager segMan = new SegmentationManager(segmenter);
- SegmentationManager.setDefaultInstance(segMan);
- add(segMan);
-
- // Digitization :
-
- SimToDigiConverter converter = new ConverterSimple();
- SimToDigiDriver conversionDriver = new SimToDigiDriver(converter);
- conversionDriver.set("OUTPUT_MAP_NAME", "DigiTrackerHits");
- add(conversionDriver);
-
- // Clustering :
-
- ClusteringDriver clusteringDriver = new ClusteringDriver(new NearestNeighborClusterer());
- clusteringDriver.set("INPUT_MAP_NAME","DigiTrackerHits");
- clusteringDriver.set("OUTPUT_MAP_NAME","TrackerClusters");
- add(clusteringDriver);
- }
-
-// -- Event processing : ------------------------------------------------------
-
- public void process(EventHeader event) {
-
- System.out.println(" ");
- System.out.println("Event "+event.getEventNumber());
-
- super.process(event);
-
- while (! _eventHistList.isEmpty()) {
- _hFactory.destroy(_eventHistList.poll());
- }
-
- MCTruth mcTruth = (MCTruth) event.get("MCTruth");
-
- int n = 0;
- HashMap<Sensor, List<DigiTrackerHit>> digiMap =
- (HashMap<Sensor, List<DigiTrackerHit>>) event.get("DigiTrackerHits");
- for (List<DigiTrackerHit> digiList : digiMap.values()) n += digiList.size();
- System.out.println("Created " + n + " DigiTrackerHits on " + digiMap.keySet().size() + " sensors");
-
- n = 0;
- HashMap<Sensor, List<TrackerCluster>> clusterMap =
- (HashMap<Sensor, List<TrackerCluster>>) event.get("TrackerClusters");
- for (List<TrackerCluster> clusterList : clusterMap.values()) n += clusterList.size();
- System.out.println("Created " + n + " TrackerClusters on " + clusterMap.keySet().size() + " sensors");
-
- // -- Histograms :
-
- for (Sensor sensor : clusterMap.keySet()) {
- boolean isPixels = (sensor.getType().getHitDimension() == 2);
- int sensorID = sensor.getID();
- SensorType sensorType = sensor.getType();
-
- System.out.println("Sensor "+sensorID+" Type "+sensorType.getClass().getName());
-
- ICloud1D uCloud = _hFactory.createCloud1D("Sensor "+sensorID+" DigiTrackerHits - U");
- ICloud1D vCloud = null;
- ICloud2D uvCloud = _hFactory.createCloud2D("Sensor "+sensorID+" DigiTrackerHits - UV");
- if (isPixels) {
- vCloud = _hFactory.createCloud1D("Sensor "+sensorID+" DigiTrackerHits - V");
- _eventHistList.add(vCloud);
- }
- _eventHistList.add(uCloud);
- _eventHistList.add(uvCloud);
- for (DigiTrackerHit dHit : digiMap.get(sensor)) {
- Hep3Vector dPos = sensorType.getChannelPosition(dHit.getChannel());
- uCloud.fill(dPos.x(), dHit.getSignal());
- if (isPixels) vCloud.fill(dPos.y(), dHit.getSignal());
- uvCloud.fill(dPos.x(), dPos.y(), dHit.getSignal());
- }
-
- ICloud1D uCloudC = _hFactory.createCloud1D("Sensor "+sensorID+" Clusters - U");
- ICloud1D vCloudC = null;
- ICloud2D uvCloudC = _hFactory.createCloud2D("Sensor "+sensorID+" Clusters - UV");
- if (isPixels) {
- vCloudC = _hFactory.createCloud1D("Sensor "+sensorID+" Clusters - V");
- _eventHistList.add(vCloudC);
- }
- _eventHistList.add(uCloudC);
- _eventHistList.add(uvCloudC);
- for (TrackerCluster cluster : clusterMap.get(sensor)) {
- for (DigiTrackerHit dHit : cluster.getDigiHits()) {
- Hep3Vector dPos = sensorType.getChannelPosition(dHit.getChannel());
- uCloudC.fill(dPos.x(), dHit.getSignal());
- if (isPixels) vCloudC.fill(dPos.y(), dHit.getSignal());
- uvCloudC.fill(dPos.x(), dPos.y(), dHit.getSignal());
- }
- }
-
- ICloud1D uCloudS = _hFactory.createCloud1D("Sensor "+sensorID+" SimTrackerHits - U");
- ICloud1D vCloudS = null;
- ICloud2D uvCloudS = _hFactory.createCloud2D("Sensor "+sensorID+" SimTrackerHits - UV");
- if (isPixels) {
- vCloudS = _hFactory.createCloud1D("Sensor "+sensorID+" SimTrackerHits - V");
- _eventHistList.add(vCloudS);
- }
- _eventHistList.add(uCloudS);
- _eventHistList.add(uvCloudS);
- for (TrackerCluster cluster : clusterMap.get(sensor)) {
- for (SimGroup simGroup : mcTruth.getSimGroups(cluster)) {
- for (SimTrackerHit sHit : simGroup.getSimTrackerHits()) {
- Hep3Vector globPos = new BasicHep3Vector(sHit.getPoint());
- Hep3Vector locPos = sensor.globalToLocal(globPos);
- uCloudS.fill(locPos.x(), sHit.getdEdx());
- if (isPixels) vCloudS.fill(locPos.y(), sHit.getdEdx());
- uvCloudS.fill(locPos.x(), locPos.y(), sHit.getdEdx());
- }
- }
- }
-
- }
-
- }
-
-// -- Private parts : ---------------------------------------------------------
-
- protected AIDA _aida;
- protected IHistogramFactory _hFactory;
- protected LinkedList<IBaseHistogram> _eventHistList;
-
-}
lcsim/src/org/lcsim/contrib/onoprien/tracking/tests
diff -N CoordinateConversionTest.java
--- CoordinateConversionTest.java 12 Oct 2007 21:52:07 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,82 +0,0 @@
-package org.lcsim.contrib.onoprien.tracking.tests;
-
-import java.util.*;
-
-import hep.aida.*;
-import hep.physics.vec.BasicHep3Vector;
-import hep.physics.vec.Hep3Vector;
-import hep.physics.vec.VecOp;
-import org.lcsim.event.EventHeader;
-import org.lcsim.units.clhep.SystemOfUnits;
-import org.lcsim.util.Driver;
-import org.lcsim.util.aida.AIDA;
-
-import org.lcsim.contrib.onoprien.tracking.ExampleSegmenter1;
-import org.lcsim.contrib.onoprien.tracking.geom.SegmentationManager;
-import org.lcsim.contrib.onoprien.tracking.geom.Segmenter;
-import org.lcsim.contrib.onoprien.tracking.geom.Sensor;
-
-/**
- *
- *
- * @author D. Onoprienko
- * @version $Id: CoordinateConversionTest.java,v 1.2 2007/10/12 21:52:07 onoprien Exp $
- */
-public class CoordinateConversionTest extends Driver {
-
- private AIDA aida = AIDA.defaultInstance();
-
-// -- Constructors : ----------------------------------------------------------
-
- public CoordinateConversionTest() {
-
- // Segmentation description :
-
- Segmenter segmenter = new ExampleSegmenter1();
- SegmentationManager segMan = new SegmentationManager(segmenter);
- SegmentationManager.setDefaultInstance(segMan);
- add(segMan);
-
- }
-
- public void process(EventHeader event) {
-
- System.out.println(" ");
- System.out.println("Event "+event.getEventNumber());
-
- super.process(event);
-
- SegmentationManager segMan = (SegmentationManager) event.get("SegmentationManager");
-
- System.out.println(" ");
- Collection<Sensor> sensors = segMan.getSensors() ;
- System.out.println("There are " + sensors.size() + " sensors");
-
- Hep3Vector v1 = new BasicHep3Vector(0.,0.,0.);
- Hep3Vector v2 = new BasicHep3Vector(2.,3.,4.);
-
- for (Sensor sensor : sensors) {
- Hep3Vector c = sensor.globalToLocal(sensor.localToGlobal(v1));
- if (VecOp.sub(v1,c).magnitude() > _tolerance) {
- System.out.println("loc2glob2loc, v1 --> " + c);
- }
- c = sensor.localToGlobal(sensor.globalToLocal(v1));
- if (VecOp.sub(v1,c).magnitude() > _tolerance) {
- System.out.println("glob2loc2glob, v1 --> " + c);
- }
- c = sensor.globalToLocal(sensor.localToGlobal(v2));
- if (VecOp.sub(v2,c).magnitude() > _tolerance) {
- System.out.println("loc2glob2loc, v2 --> " + c);
- }
- c = sensor.localToGlobal(sensor.globalToLocal(v2));
- if (VecOp.sub(v2,c).magnitude() > _tolerance) {
- System.out.println("glob2loc2glob, v2 --> " + c);
- }
- }
-
- }
-
-// -- Private parts : ---------------------------------------------------------
-
- private double _tolerance = 0.001;
-}
lcsim/src/org/lcsim/contrib/onoprien/tracking/tests
diff -N DigitizerTest.java
--- DigitizerTest.java 12 Oct 2007 21:52:07 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,251 +0,0 @@
-package org.lcsim.contrib.onoprien.tracking.tests;
-
-import java.util.*;
-
-import hep.aida.*;
-import org.lcsim.event.EventHeader;
-import org.lcsim.event.SimTrackerHit;
-import org.lcsim.recon.cat.util.NoSuchParameterException;
-import org.lcsim.units.clhep.SystemOfUnits;
-import org.lcsim.util.Driver;
-import org.lcsim.util.aida.AIDA;
-import hep.physics.vec.BasicHep3Vector;
-import hep.physics.vec.Hep3Vector;
-import hep.physics.vec.VecOp;
-
-import org.lcsim.contrib.onoprien.tracking.ExampleSegmenter1;
-import org.lcsim.contrib.onoprien.tracking.clustering.ClusteringDriver;
-import org.lcsim.contrib.onoprien.tracking.clustering.clusterers.NearestNeighborClusterer;
-import org.lcsim.contrib.onoprien.tracking.digitization.SimToDigiDriver;
-import org.lcsim.contrib.onoprien.tracking.digitization.SimToDigiConverter;
-import org.lcsim.contrib.onoprien.tracking.digitization.algorithms.ConverterSimple;
-import org.lcsim.contrib.onoprien.tracking.geom.SegmentationManager;
-import org.lcsim.contrib.onoprien.tracking.geom.Segmenter;
-import org.lcsim.contrib.onoprien.tracking.geom.Sensor;
-import org.lcsim.contrib.onoprien.tracking.geom.SensorType;
-import org.lcsim.contrib.onoprien.tracking.hit.DigiTrackerHit;
-import org.lcsim.contrib.onoprien.tracking.hit.TrackerCluster;
-import org.lcsim.contrib.onoprien.tracking.hit.TrackerHit;
-import org.lcsim.contrib.onoprien.tracking.mctruth.MCTruth;
-import org.lcsim.contrib.onoprien.tracking.mctruth.MCTruthDriver;
-import org.lcsim.contrib.onoprien.tracking.mctruth.SimGroup;
-
-/**
- * Tester driver for running SimTrackerHit to DigiTrackerHit conversion diagnostics.
- *
- * @author D.Onoprienko
- * @version $Id: DigitizerTest.java,v 1.2 2007/10/12 21:52:07 onoprien Exp $
- */
-public class DigitizerTest extends Driver {
-
-// -- Constructor : -----------------------------------------------------------
-
- public DigitizerTest() {
-
- _aida = AIDA.defaultInstance();
- _hFactory = _aida.histogramFactory();
- _eventHistList = new LinkedList<IBaseHistogram>();
-
- add(new MCTruthDriver());
-
- // Segmentation description :
-
- Segmenter segmenter = new ExampleSegmenter1();
- SegmentationManager segMan = new SegmentationManager(segmenter);
- SegmentationManager.setDefaultInstance(segMan);
- add(segMan);
-
- // Digitization :
-
- SimToDigiConverter converter = new ConverterSimple();
- SimToDigiDriver conversionDriver = new SimToDigiDriver(converter);
- conversionDriver.set("OUTPUT_MAP_NAME", "DigiTrackerHits");
- add(conversionDriver);
-
- // Clustering :
-
- ClusteringDriver clusteringDriver = new ClusteringDriver(new NearestNeighborClusterer());
- clusteringDriver.set("INPUT_MAP_NAME","DigiTrackerHits");
- clusteringDriver.set("OUTPUT_MAP_NAME","TrackerClusters");
- add(clusteringDriver);
- }
-
-// -- Processing event : ------------------------------------------------------
-
- public void process(EventHeader event) {
-
- System.out.println(" ");
- System.out.println("Event "+event.getEventNumber());
-
- super.process(event);
-
- while (! _eventHistList.isEmpty()) {
- _hFactory.destroy(_eventHistList.poll());
- }
- _iGroup = 0;
-
- MCTruth mcTruth = (MCTruth) event.get("MCTruth");
-
- Collection<SimGroup> simGroups = mcTruth.getSimGroups();
- List<SimGroup> missedGroups = mcTruth.getMissedSimGroups();
-
- System.out.println("Testing digitization, found "+simGroups.size()+" converted and "
- +missedGroups.size()+" missed SimTrackerHit groups");
-
- IHistogram1D vbMissed = _hFactory.createHistogram1D("Missed VertexBarrel", 10, 0., 10.);
- IHistogram1D veMissed = _hFactory.createHistogram1D("Missed VertexEndcap", 10, 0., 10.);
- IHistogram1D tfMissed = _hFactory.createHistogram1D("Missed TrackerForward", 10, 0., 10.);
- IHistogram1D tbMissed = _hFactory.createHistogram1D("Missed TrackerBarrel", 10, 0., 10.);
- IHistogram1D teMissed = _hFactory.createHistogram1D("Missed TrackerEndcap", 10, 0., 10.);
- _eventHistList.add(vbMissed);
- _eventHistList.add(veMissed);
- _eventHistList.add(tfMissed);
- _eventHistList.add(tbMissed);
- _eventHistList.add(teMissed);
-
- int nEmpty = 0;
- for (SimGroup miss : missedGroups) {
- List<SimTrackerHit> simList = miss.getSimTrackerHits();
- if (simList.isEmpty()) {
- nEmpty++;
- } else {
- String subd = simList.get(0).getSubdetector().getName();
- _aida.histogram1D("Missed "+subd).fill(simList.size());
- }
- }
- System.out.println("Empty SimTrackerHit lists among missed groups: " + nEmpty);
-
- for (SimGroup group : simGroups) {
- List<SimTrackerHit> simList = group.getSimTrackerHits();
- List<DigiTrackerHit> digiList = group.getDigiTrackerHits();
- plotGroup(simList, digiList);
- }
-
- }
-
-// -----------------------------------------------------------------------------
-
- public void plotGroup(List<SimTrackerHit> simList, List<DigiTrackerHit> digiList) {
-
- Sensor sensor = digiList.get(0).getSensor();
- SensorType sensorType = sensor.getType();
- boolean isStrip = (sensorType.getHitDimension() == 1);
- String title = "Sensor" + sensor.getID() + "_" + _iGroup++ + "_";
- String subDetName = simList.get(0).getSubdetector().getName();
-
-// System.out.println("SimToDigiConverter: simulated hits in "+simList.size()+" digitized hits out "+ digiList.size()+
-// " subd: " + subDetName + " sensor " + sensor.getID());
-
- // Calculate bin values and create histograms
-
- double[] lowU = new double[digiList.size()];
- double[] lowV = new double[digiList.size()];
- double highU = - Double.MAX_VALUE;
- double highV = - Double.MAX_VALUE;
- int i=0;
- for (DigiTrackerHit dHit : digiList) {
- int channel = dHit.getChannel();
- Hep3Vector channelSize = sensorType.getChannelDimensions(channel);
- Hep3Vector locPos = sensorType.getChannelPosition(channel);
- lowU[i] = locPos.x() - channelSize.x()/2.;
- double uHigh = locPos.x() + channelSize.x()/2.;
- if (uHigh > highU) highU = uHigh;
- lowV[i] = locPos.y() - channelSize.y()/2.;
- double vHigh = locPos.y() + channelSize.y()/2.;
- if (vHigh > highV) highV = vHigh;
- i++;
- }
- Arrays.sort(lowU);
- double lastU = - Double.MAX_VALUE;
- ArrayList<Double> binsU = new ArrayList<Double>();
- for (i=0; i<lowU.length; i++) {
- if (lowU[i] > lastU) {
- lastU = lowU[i];
- binsU.add(lastU);
- }
- }
- binsU.add(highU);
- int nU = binsU.size();
- lowU = new double[nU];
- for (i=0; i<nU; i++) {
- lowU[i] = binsU.get(i);
- }
- IHistogram digiHist;
- IHistogram simHist;
- if (isStrip) {
- digiHist = _hFactory.createHistogram1D(title+"digi", title+"digi", lowU);
- simHist = _hFactory.createHistogram1D(title+"sim", title+"sim", lowU);
- } else {
- Arrays.sort(lowV);
- double lastV = - Double.MAX_VALUE;
- ArrayList<Double> binsV = new ArrayList<Double>();
- for (i=0; i<lowV.length; i++) {
- if (lowV[i] > lastV) {
- lastV = lowV[i];
- binsV.add(lastV);
- }
- }
- binsV.add(highV);
- int nV = binsV.size();
- lowV = new double[nV];
- for (i=0; i<nV; i++) {
- lowV[i] = binsV.get(i);
- }
- digiHist = _hFactory.createHistogram2D(title+"digi", title+"digi", lowU, lowV);
- simHist = _hFactory.createHistogram2D(title+"sim", title+"sim", lowU, lowV);
- }
- _eventHistList.add(digiHist);
- _eventHistList.add(simHist);
-
- // Fill histograms
-
- Hep3Vector meanSimPos = new BasicHep3Vector();
- double totCharge = 0.;
- for (SimTrackerHit simHit : simList) {
- double[] gPos = simHit.getPoint();
- Hep3Vector globPos = new BasicHep3Vector(gPos);
- Hep3Vector locPos = sensor.globalToLocal(globPos);
- double charge = (simHit.getPathLength() > 0.) ? simHit.getPathLength()*simHit.getdEdx() : simHit.getdEdx();
- meanSimPos = VecOp.add(meanSimPos, VecOp.mult(charge, sensor.localToGlobal(locPos)));
- totCharge += charge;
- if (isStrip) {
- ((IHistogram1D)simHist).fill(locPos.x(), charge);
- } else {
- ((IHistogram2D)simHist).fill(locPos.x(), locPos.y(), charge);
- }
- }
- meanSimPos = VecOp.mult(1./totCharge, meanSimPos);
-
- Hep3Vector meanDigiPos = new BasicHep3Vector();
- totCharge = 0.;
- for (DigiTrackerHit digiHit : digiList) {
- Hep3Vector locPos = sensorType.getChannelPosition(digiHit.getChannel());
- Hep3Vector globPos = sensor.localToGlobal(locPos);
- double charge = digiHit.getSignal();
- meanDigiPos = VecOp.add(meanDigiPos, VecOp.mult(charge, globPos));
- totCharge += charge;
- if (isStrip) {
- ((IHistogram1D)digiHist).fill(locPos.x(), charge);
- } else {
- ((IHistogram2D)digiHist).fill(locPos.x(), locPos.y(), charge);
- }
- }
- meanDigiPos = VecOp.mult(1./totCharge, meanDigiPos);
-
- double diffSimDigi = VecOp.sub(meanSimPos, meanDigiPos).magnitude();
- _aida.cloud1D("Digi to Sim distance - " + subDetName).fill(diffSimDigi);
- double stripLength = sensorType.getChannelDimensions(digiList.get(0).getChannel()).y();
- if ((diffSimDigi > stripLength/2.) && (sensorType.getHitDimension() == 1)) {
- System.out.println("Sensor "+digiList.get(0).getSensor().getID()+" "+_iGroup+" Dif: "+diffSimDigi+" Strip half length: "+(stripLength/2.));
- }
-
- }
-// -- Private parts : ---------------------------------------------------------
-
- protected AIDA _aida;
- protected IHistogramFactory _hFactory;
- protected LinkedList<IBaseHistogram> _eventHistList;
-
- protected int _iGroup;
-
-}
lcsim/src/org/lcsim/contrib/onoprien/tracking/tests
diff -N HitConverterTest.java
--- HitConverterTest.java 8 Dec 2007 02:39:10 -0000 1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,267 +0,0 @@
-package org.lcsim.contrib.onoprien.tracking.tests;
-
-import java.util.*;
-
-import hep.aida.*;
-import org.lcsim.detector.IDetectorElement;
-import org.lcsim.detector.converter.compact.SubdetectorDetectorElement;
-import org.lcsim.event.EventHeader;
-import org.lcsim.event.SimTrackerHit;
-import org.lcsim.recon.cat.util.NoSuchParameterException;
-import org.lcsim.units.clhep.SystemOfUnits;
-import org.lcsim.util.Driver;
-import org.lcsim.util.aida.AIDA;
-import hep.physics.vec.BasicHep3Vector;
-import hep.physics.vec.Hep3Vector;
-import hep.physics.vec.VecOp;
-
-import org.lcsim.contrib.onoprien.tracking.ExampleSegmenter1;
-import org.lcsim.contrib.onoprien.tracking.clustering.ClusteringDriver;
-import org.lcsim.contrib.onoprien.tracking.clustering.clusterers.NearestNeighborClusterer;
-import org.lcsim.contrib.onoprien.tracking.digitization.SimToDigiDriver;
-import org.lcsim.contrib.onoprien.tracking.digitization.SimToDigiConverter;
-import org.lcsim.contrib.onoprien.tracking.digitization.algorithms.ConverterSimple;
-import org.lcsim.contrib.onoprien.tracking.geom.Navigator;
-import org.lcsim.contrib.onoprien.tracking.geom.SegmentationManager;
-import org.lcsim.contrib.onoprien.tracking.geom.Segmenter;
-import org.lcsim.contrib.onoprien.tracking.geom.Sensor;
-import org.lcsim.contrib.onoprien.tracking.geom.SensorType;
-import org.lcsim.contrib.onoprien.tracking.geom.sensortypes.Cylinder;
-import org.lcsim.contrib.onoprien.tracking.geom.sensortypes.WedgeSideParallel;
-import org.lcsim.contrib.onoprien.tracking.hit.DigiTrackerHit;
-import org.lcsim.contrib.onoprien.tracking.hit.TrackerCluster;
-import org.lcsim.contrib.onoprien.tracking.hit.TrackerHit;
-import org.lcsim.contrib.onoprien.tracking.hitmaking.HitMakingDriver;
-import org.lcsim.contrib.onoprien.tracking.hitmaking.OldTrackerHit;
-import org.lcsim.contrib.onoprien.tracking.hitmaking.TrackerHitConverter;
-import org.lcsim.contrib.onoprien.tracking.hitmaking.TrackerHitMaker;
-import org.lcsim.contrib.onoprien.tracking.hitmaking.hitmakers.TrackerHitMakerBasic;
-import org.lcsim.contrib.onoprien.tracking.mctruth.MCTruth;
-import org.lcsim.contrib.onoprien.tracking.mctruth.MCTruthDriver;
-import org.lcsim.contrib.onoprien.tracking.mctruth.SimGroup;
-
-/**
- *
- *
- * @author D. Onoprienko
- * @version $Id: HitConverterTest.java,v 1.4 2007/12/08 02:39:10 jeremy Exp $
- */
-public class HitConverterTest extends Driver {
-
-// -- Constructors : ----------------------------------------------------------
-
- public HitConverterTest() {
-
- _aida = AIDA.defaultInstance();
- _hFactory = _aida.histogramFactory();
- _dFactory = _aida.analysisFactory().createDataPointSetFactory(_aida.tree());
- _eventDPSMap = new HashMap<String, IDataPointSet>();
-
- add(new MCTruthDriver());
-
- // Segmentation description :
-
- Segmenter segmenter = new ExampleSegmenter1();
- SegmentationManager segMan = new SegmentationManager(segmenter);
- SegmentationManager.setDefaultInstance(segMan);
- add(segMan);
-
- // Digitization :
-
- SimToDigiConverter converter = new ConverterSimple();
- SimToDigiDriver conversionDriver = new SimToDigiDriver(converter);
- conversionDriver.set("OUTPUT_MAP_NAME", "DigiTrackerHits");
- add(conversionDriver);
-
- // Clustering :
-
- ClusteringDriver clusteringDriver = new ClusteringDriver(new NearestNeighborClusterer());
- clusteringDriver.set("INPUT_MAP_NAME","DigiTrackerHits");
- clusteringDriver.set("OUTPUT_MAP_NAME","TrackerClusters");
- add(clusteringDriver);
-
- // Conversion to "standard" org.lcsim.event.TrackerHit : ------------------
-
- TrackerHitConverter hitConverter = new TrackerHitConverter();
- hitConverter.set("INPUT_CLUSTER_MAP_NAME", "TrackerClusters");
- hitConverter.set("INPUT_HIT_MAP_NAME", "TrackerHits");
- hitConverter.set("OUTPUT_HIT_LIST_NAME", "StandardTrackerHits");
- add(hitConverter);
- }
-
-// -- Event processing : ------------------------------------------------------
-
- public void process(EventHeader event) {
-
- System.out.println(" ");
- System.out.println("Event "+event.getEventNumber());
-
- super.process(event);
-
- // Clear "per event" AIDA objects
- for (IDataPointSet dps : _eventDPSMap.values()) {
- dps.clear();
- }
-
- MCTruth mcTruth = (MCTruth) event.get("MCTruth");
-
- System.out.println(" ");
-
- int n = 0;
- HashMap<Sensor, List<DigiTrackerHit>> digiMap =
- (HashMap<Sensor, List<DigiTrackerHit>>) event.get("DigiTrackerHits");
- for (List<DigiTrackerHit> digiList : digiMap.values()) n += digiList.size();
- System.out.println("Created " + n + " DigiTrackerHits on " + digiMap.keySet().size() + " sensors");
-
- n = 0;
- HashMap<Sensor, List<TrackerCluster>> clusterMap =
- (HashMap<Sensor, List<TrackerCluster>>) event.get("TrackerClusters");
- for (List<TrackerCluster> clusterList : clusterMap.values()) n += clusterList.size();
- System.out.println("Created " + n + " TrackerClusters on " + clusterMap.keySet().size() + " sensors");
-
- n = 0;
- HashMap<Sensor, List<TrackerHit>> hitMap =
- (HashMap<Sensor, List<TrackerHit>>) event.get("TrackerHits");
- for (List<TrackerHit> hitList : hitMap.values()) n += hitList.size();
- System.out.println("Created " + n + " TrackerHits on " + hitMap.keySet().size() + " sensors");
-
- List<OldTrackerHit> oldHitList = (List<OldTrackerHit>) event.get("StandardTrackerHits");
- System.out.println("Created "+ oldHitList.size() + " old style TrackerHits");
-
- // -- Draw Sensors for disks divided into wedges :
-
- SegmentationManager segMan = (SegmentationManager) event.get("SegmentationManager");
- Navigator gNav = segMan.getNavigator();
- for (Sensor sensor : segMan.getSensors()) {
- if (sensor.getType() instanceof WedgeSideParallel) {
-
- String title = "Sensors " + gNav.getSubdetector(sensor).getName() +
- " SuperLayer " + gNav.getSuperLayer(sensor) +
- " Z " + ((gNav.getSignZ(sensor) > 0) ? "Plus" : "Minus");
- IDataPointSet dpGeom = getDataPointSet(title,2);
-
- WedgeSideParallel sType = (WedgeSideParallel) sensor.getType();
- double[][] corners = sType.getCorners();
-
- for (double[] corner : corners) {
- Hep3Vector p = sensor.localToGlobal(new BasicHep3Vector(corner[0], corner[1], 0.));
- IDataPoint dp = dpGeom.addPoint();
- dp.coordinate(0).setValue(p.x());
- dp.coordinate(1).setValue(p.y());
- }
- IDataPoint dp = dpGeom.addPoint();
- Hep3Vector p = sensor.localToGlobal(new BasicHep3Vector(corners[0][0], corners[0][1], 0.));
- dp.coordinate(0).setValue(p.x());
- dp.coordinate(1).setValue(p.y());
- dp = dpGeom.addPoint();
- dp.coordinate(0).setValue(Double.NaN);
- dp.coordinate(1).setValue(Double.NaN);
-
- }
- }
-
- // -- Loop over all Sensors with hits :
-
- for (Sensor sensor : hitMap.keySet()) {
-
- boolean isPixels = (sensor.getType().getHitDimension() == 2);
- int sensorID = sensor.getID();
- SensorType sensorType = sensor.getType();
-
- String title = gNav.getSubdetector(sensor).getName()+" SuperLayer "+gNav.getSuperLayer(sensor);
- if (gNav.getSignZ(sensor) != 0) {
- title += " Z " + ((gNav.getSignZ(sensor) > 0) ? "Plus" : "Minus");
- }
-
- // Draw TrackerHits and SimTrackerHits :
-
- IDataPointSet dpHits = getDataPointSet("Hits "+title, 2);
- IDataPointSet dpSimHits = getDataPointSet("SimHits "+title, 2);
-
- for (TrackerHit tHit : hitMap.get(sensor)) {
- for (SimGroup simGroup : mcTruth.getSimGroups(tHit)) {
- for (SimTrackerHit sHit : simGroup.getSimTrackerHits()) {
- Hep3Vector p = new BasicHep3Vector(sHit.getPoint());
- IDataPoint dp = dpSimHits.addPoint();
- if (sensorType instanceof Cylinder) p = sensor.globalToLocal(p);
- dp.coordinate(0).setValue(p.x());
- dp.coordinate(1).setValue(p.y());
- dp = dpSimHits.addPoint();
- dp.coordinate(0).setValue(Double.NaN);
- dp.coordinate(1).setValue(Double.NaN);
- }
- }
- Hep3Vector p = tHit.getSegment().getStartPoint();
- if (sensorType instanceof Cylinder) p = sensor.globalToLocal(p);
- IDataPoint dp = dpHits.addPoint();
- dp.coordinate(0).setValue(p.x());
- dp.coordinate(1).setValue(p.y());
- p = tHit.getSegment().getEndPoint();
- if (sensorType instanceof Cylinder) p = sensor.globalToLocal(p);
- dp = dpHits.addPoint();
- dp.coordinate(0).setValue(p.x());
- dp.coordinate(1).setValue(p.y());
- dp = dpHits.addPoint();
- dp.coordinate(0).setValue(Double.NaN);
- dp.coordinate(1).setValue(Double.NaN);
- }
-
- // Draw old style TrackerHits :
-
- IDataPointSet dpStereoHits = getDataPointSet("True 3D hits "+title, 2);
- IDataPointSet dpGhostHits = getDataPointSet("Ghost 3D hits "+title, 2);
- for (OldTrackerHit oHit : oldHitList) {
- if (sensor == oHit.getClusters().get(0).getSensor()) {
- IDataPoint dp = mcTruth.isGhost(oHit) ? dpGhostHits.addPoint() : dpStereoHits.addPoint();
- Hep3Vector p = new BasicHep3Vector(oHit.getPosition());
- if (sensorType instanceof Cylinder) p = sensor.globalToLocal(p);
- dp.coordinate(0).setValue(p.x());
- dp.coordinate(1).setValue(p.y());
- dp = mcTruth.isGhost(oHit) ? dpGhostHits.addPoint() : dpStereoHits.addPoint();
- dp.coordinate(0).setValue(Double.NaN);
- dp.coordinate(1).setValue(Double.NaN);
- }
- }
-
- } // end of loop over all Sensors with TrackerHits
-
- // Fill histograms for distance from SimTrackerHit to non-ghost OldTrackerHit
-
- for (OldTrackerHit oHit : oldHitList) {
- if (!mcTruth.isGhost(oHit)) {
- List<SimGroup> simGroupList = mcTruth.getSimGroups(oHit);
- String subDetName = simGroupList.get(0).getSimTrackerHits().get(0).getSubdetector().getName();
- Hep3Vector simPos = new BasicHep3Vector();
- double signal = 0.;
- for (SimGroup simGroup : simGroupList) {
- double s = simGroup.getSignal();
- signal += s;
- simPos = VecOp.add(simPos, VecOp.mult(s, simGroup.getPosition()));
- double[] point = simGroup.getSimTrackerHits().get(0).getPoint();
- }
- simPos = VecOp.mult(1./signal, simPos);
- _aida.cloud1D("SimTrackerHit to TrackerHit Distance, " + subDetName)
- .fill(VecOp.sub(simPos, (new BasicHep3Vector(oHit.getPosition()))).magnitude());
- }
- }
-
- }
-
-// -- Helpers : ---------------------------------------------------------------
-
- private IDataPointSet getDataPointSet(String title, int dimension) {
- IDataPointSet set = _eventDPSMap.get(title);
- if (set == null) {
- set = _dFactory.create(title, title, dimension);
- _eventDPSMap.put(title, set);
- }
- return set;
- }
-
-// -- Private parts : ---------------------------------------------------------
-
- protected AIDA _aida;
- protected IHistogramFactory _hFactory;
- protected IDataPointSetFactory _dFactory;
- protected HashMap<String, IDataPointSet> _eventDPSMap;
-}
lcsim/src/org/lcsim/contrib/onoprien/tracking/tests
diff -N HitMakingTest.java
--- HitMakingTest.java 18 Feb 2008 22:34:40 -0000 1.5
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,250 +0,0 @@
-package org.lcsim.contrib.onoprien.tracking.tests;
-
-import java.util.*;
-
-import hep.aida.*;
-import org.lcsim.event.EventHeader;
-import org.lcsim.event.SimTrackerHit;
-import org.lcsim.recon.cat.util.NoSuchParameterException;
-import org.lcsim.units.clhep.SystemOfUnits;
-import org.lcsim.util.Driver;
-import org.lcsim.util.aida.AIDA;
-import hep.physics.matrix.SymmetricMatrix;
-import hep.physics.vec.BasicHep3Vector;
-import hep.physics.vec.Hep3Vector;
-import hep.physics.vec.VecOp;
-
-import org.lcsim.contrib.onoprien.tracking.ExampleSegmenter1;
-import org.lcsim.contrib.onoprien.tracking.clustering.ClusteringDriver;
-import org.lcsim.contrib.onoprien.tracking.clustering.clusterers.NearestNeighborClusterer;
-import org.lcsim.contrib.onoprien.tracking.digitization.SimToDigiDriver;
-import org.lcsim.contrib.onoprien.tracking.digitization.SimToDigiConverter;
-import org.lcsim.contrib.onoprien.tracking.digitization.algorithms.ConverterSimple;
-import org.lcsim.contrib.onoprien.tracking.geom.Navigator;
-import org.lcsim.contrib.onoprien.tracking.geom.SegmentationManager;
-import org.lcsim.contrib.onoprien.tracking.geom.Segmenter;
-import org.lcsim.contrib.onoprien.tracking.geom.Sensor;
-import org.lcsim.contrib.onoprien.tracking.geom.SensorType;
-import org.lcsim.contrib.onoprien.tracking.hit.DigiTrackerHit;
-import org.lcsim.contrib.onoprien.tracking.hit.TrackerCluster;
-import org.lcsim.contrib.onoprien.tracking.hit.TrackerHit;
-import org.lcsim.contrib.onoprien.tracking.hitmaking.HitMakingDriver;
-import org.lcsim.contrib.onoprien.tracking.hitmaking.TrackerHitMaker;
-import org.lcsim.contrib.onoprien.tracking.hitmaking.hitmakers.TrackerHitMakerBasic;
-import org.lcsim.contrib.onoprien.tracking.mctruth.MCTruth;
-import org.lcsim.contrib.onoprien.tracking.mctruth.MCTruthDriver;
-import org.lcsim.contrib.onoprien.tracking.mctruth.SimGroup;
-
-/**
- *
- *
- * @author D. Onoprienko
- * @version $Id: HitMakingTest.java,v 1.5 2008/02/18 22:34:40 onoprien Exp $
- */
-public class HitMakingTest extends Driver {
-
-// -- Constructors : ----------------------------------------------------------
-
- public HitMakingTest() {
-
- _aida = AIDA.defaultInstance();
- _hFactory = _aida.histogramFactory();
- _eventHistList = new LinkedList<IBaseHistogram>();
-
- add(new MCTruthDriver());
-
- // Segmentation description :
-
- Segmenter segmenter = new ExampleSegmenter1();
- SegmentationManager segMan = new SegmentationManager(segmenter);
- SegmentationManager.setDefaultInstance(segMan);
- add(segMan);
-
- // Digitization :
-
- ConverterSimple converter = new ConverterSimple();
- converter.set("SIGNAL", "UNIT");
- SimToDigiDriver conversionDriver = new SimToDigiDriver(converter);
- conversionDriver.set("OUTPUT_MAP_NAME", "DigiTrackerHits");
- add(conversionDriver);
-
- // Clustering :
-
- ClusteringDriver clusteringDriver = new ClusteringDriver(new NearestNeighborClusterer());
- clusteringDriver.set("INPUT_MAP_NAME","DigiTrackerHits");
- clusteringDriver.set("OUTPUT_MAP_NAME","TrackerClusters");
- add(clusteringDriver);
-
- // Hit making :
-
- TrackerHitMaker hitMaker = new TrackerHitMakerBasic();
- HitMakingDriver hitMakingDriver = new HitMakingDriver(hitMaker);
- hitMakingDriver.set("INPUT_MAP_NAME","TrackerClusters");
- hitMakingDriver.set("OUTPUT_MAP_NAME","NewTrackerHits");
- add(hitMakingDriver);
- }
-
-// -- Event processing : ------------------------------------------------------
-
- public void process(EventHeader event) {
-
- System.out.println(" ");
- System.out.println("Event "+event.getEventNumber());
-
- super.process(event);
-
- Navigator nav = ((SegmentationManager)event.get("SegmentationManager")).getNavigator();
-
- while (! _eventHistList.isEmpty()) {
- _hFactory.destroy(_eventHistList.poll());
- }
-
- MCTruth mcTruth = (MCTruth) event.get("MCTruth");
-
- System.out.println(" ");
-
- int n = 0;
- HashMap<Sensor, List<DigiTrackerHit>> digiMap =
- (HashMap<Sensor, List<DigiTrackerHit>>) event.get("DigiTrackerHits");
- for (List<DigiTrackerHit> digiList : digiMap.values()) n += digiList.size();
- System.out.println("Created " + n + " DigiTrackerHits on " + digiMap.keySet().size() + " sensors");
-
- n = 0;
- HashMap<Sensor, List<TrackerCluster>> clusterMap =
- (HashMap<Sensor, List<TrackerCluster>>) event.get("TrackerClusters");
- for (List<TrackerCluster> clusterList : clusterMap.values()) n += clusterList.size();
- System.out.println("Created " + n + " TrackerClusters on " + clusterMap.keySet().size() + " sensors");
-
- n = 0;
- HashMap<Sensor, List<TrackerHit>> hitMap =
- (HashMap<Sensor, List<TrackerHit>>) event.get("NewTrackerHits");
- for (List<TrackerHit> hitList : hitMap.values()) n += hitList.size();
- System.out.println("Created " + n + " TrackerHits on " + hitMap.keySet().size() + " sensors");
-
- // -- Histograms :
-
- for (Sensor sensor : clusterMap.keySet()) {
- boolean isPixels = (sensor.getType().getHitDimension() == 2);
- int sensorID = sensor.getID();
- SensorType sensorType = sensor.getType();
-
- ICloud1D uCloud = _hFactory.createCloud1D("Sensor "+sensorID+" DigiTrackerHits - U");
- ICloud1D vCloud = null;
- ICloud2D uvCloud = _hFactory.createCloud2D("Sensor "+sensorID+" DigiTrackerHits - UV");
- if (isPixels) {
- vCloud = _hFactory.createCloud1D("Sensor "+sensorID+" DigiTrackerHits - V");
- _eventHistList.add(vCloud);
- }
- _eventHistList.add(uCloud);
- _eventHistList.add(uvCloud);
- for (DigiTrackerHit dHit : digiMap.get(sensor)) {
- Hep3Vector dPos = sensorType.getChannelPosition(dHit.getChannel());
- uCloud.fill(dPos.x(), dHit.getSignal());
- if (isPixels) vCloud.fill(dPos.y(), dHit.getSignal());
- uvCloud.fill(dPos.x(), dPos.y(), dHit.getSignal());
- }
-
- ICloud1D uCloudC = _hFactory.createCloud1D("Sensor "+sensorID+" Clusters - U");
- ICloud1D vCloudC = null;
- ICloud2D uvCloudC = _hFactory.createCloud2D("Sensor "+sensorID+" Clusters - UV");
- if (isPixels) {
- vCloudC = _hFactory.createCloud1D("Sensor "+sensorID+" Clusters - V");
- _eventHistList.add(vCloudC);
- }
- _eventHistList.add(uCloudC);
- _eventHistList.add(uvCloudC);
- for (TrackerCluster cluster : clusterMap.get(sensor)) {
- for (DigiTrackerHit dHit : cluster.getDigiHits()) {
- Hep3Vector dPos = sensorType.getChannelPosition(dHit.getChannel());
- uCloudC.fill(dPos.x(), dHit.getSignal());
- if (isPixels) vCloudC.fill(dPos.y(), dHit.getSignal());
- uvCloudC.fill(dPos.x(), dPos.y(), dHit.getSignal());
- }
- }
-
- ICloud1D uCloudS = _hFactory.createCloud1D("Sensor "+sensorID+" SimTrackerHits - U");
- ICloud1D vCloudS = null;
- ICloud2D uvCloudS = _hFactory.createCloud2D("Sensor "+sensorID+" SimTrackerHits - UV");
- if (isPixels) {
- vCloudS = _hFactory.createCloud1D("Sensor "+sensorID+" SimTrackerHits - V");
- _eventHistList.add(vCloudS);
- }
- _eventHistList.add(uCloudS);
- _eventHistList.add(uvCloudS);
- for (TrackerCluster cluster : clusterMap.get(sensor)) {
- for (SimGroup simGroup : mcTruth.getSimGroups(cluster)) {
- for (SimTrackerHit sHit : simGroup.getSimTrackerHits()) {
- Hep3Vector globPos = new BasicHep3Vector(sHit.getPoint());
- Hep3Vector locPos = sensor.globalToLocal(globPos);
- uCloudS.fill(locPos.x(), sHit.getdEdx());
- if (isPixels) vCloudS.fill(locPos.y(), sHit.getdEdx());
- uvCloudS.fill(locPos.x(), locPos.y(), sHit.getdEdx());
- }
- }
- }
-
- ICloud1D uCloudH = _hFactory.createCloud1D("Sensor "+sensorID+" TrackerHits - U");
- ICloud1D vCloudH = null;
- ICloud2D uvCloudH = _hFactory.createCloud2D("Sensor "+sensorID+" TrackerHits - UV");
- if (isPixels) {
- vCloudH = _hFactory.createCloud1D("Sensor "+sensorID+" TrackerHits - V");
- _eventHistList.add(vCloudH);
- }
- _eventHistList.add(uCloudH);
- _eventHistList.add(uvCloudH);
-
- for (TrackerHit tHit : hitMap.get(sensor)) {
-
- Hep3Vector tPos = tHit.getLocalPosition();
- uCloudH.fill(tPos.x(), tHit.getSignal());
- if (isPixels) vCloudH.fill(tPos.y(), tHit.getSignal());
- uvCloudH.fill(tPos.x(), tPos.y(), tHit.getSignal());
-
- List<SimGroup> simGroupList = mcTruth.getSimGroups(tHit);
- String subDetName = simGroupList.get(0).getSimTrackerHits().get(0).getSubdetector().getName();
- Hep3Vector position = new BasicHep3Vector();
- double signal = 0.;
- for (SimGroup simGroup : simGroupList) {
- double s = simGroup.getSignal();
- s = (s > Float.MIN_VALUE) ? s : 1.;
- signal += s;
- position = VecOp.add(position, VecOp.mult(s, simGroup.getPosition()));
- double[] point = simGroup.getSimTrackerHits().get(0).getPoint();
- }
- position = VecOp.mult(1./signal, position);
- _aida.cloud1D("SimTrackerHit to TrackerHit Distance, " + subDetName)
- .fill(VecOp.sub(position, sensor.localToGlobal(tPos)).magnitude());
- _aida.cloud1D("SimTrackerHit, TrackerHit signal difference, " + subDetName).fill(tHit.getSignal()-signal);
-
- }
-
- }
-
- for (Sensor sensor : hitMap.keySet()) {
-
- System.out.println("");
- System.out.println("Sensor "+sensor.getID()+" in "+nav.getSubdetector(sensor).getName());
-
- List<TrackerHit> hitList = hitMap.get(sensor);
- for (TrackerHit hit : hitList) {
- System.out.println(" ");
- Hep3Vector pos = hit.getPosition();
- System.out.println("Pos: "+ pos.x() +" "+pos.y()+" "+pos.z()+" Length: "+hit.getLength());
- SymmetricMatrix cov = hit.getCovMatrix();
- System.out.println(cov.e(0,0)+" "+cov.e(0,1)+" "+cov.e(0,2));
- System.out.println(cov.e(1,0)+" "+cov.e(1,1)+" "+cov.e(1,2));
- System.out.println(cov.e(2,0)+" "+cov.e(2,1)+" "+cov.e(2,2));
- }
-
- }
-
-
- }
-
-// -- Private parts : ---------------------------------------------------------
-
- protected AIDA _aida;
- protected IHistogramFactory _hFactory;
- protected LinkedList<IBaseHistogram> _eventHistList;
-
-}
lcsim/src/org/lcsim/contrib/onoprien/tracking/track
diff -N Track.java
--- Track.java 25 Sep 2007 03:16:33 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,38 +0,0 @@
-package org.lcsim.contrib.onoprien.tracking.track;
-
-import java.util.List;
-import org.lcsim.contrib.onoprien.tracking.geom.Direction;
-
-/**
- * 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.3 2007/09/25 03:16:33 onoprien Exp $
- */
-public interface Track extends List<TrackNode> {
-
- public enum Status {seed, extrapolated, good}
-
-// -- Access to nodes : -------------------------------------------------------
-
- public TrackNode getFirst();
-
- public TrackNode getLast();
-
-// -- Removing/Adding nodes : -------------------------------------------------
-
- public void addNode(TrackNode node);
-
-// -- Set/Get nodes ordering : ------------------------------------------------
-
- public void setNodeOrdering(Direction direction);
-
- public Direction getNodeOrdering();
-
-// -- Set/Get track status : --------------------------------------------------
-
- public void setStatus(Status status);
-
- public Status getStatus();
-
-}
lcsim/src/org/lcsim/contrib/onoprien/tracking/track
diff -N TrackAnchor.java
--- TrackAnchor.java 25 Sep 2007 03:25:40 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,26 +0,0 @@
-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.geom.SensorGroup;
-import org.lcsim.contrib.onoprien.tracking.hit.TrackerCluster;
-import org.lcsim.contrib.onoprien.tracking.swimmer.Helix;
-
-/**
- * Track node associated with with a hit.
- *
- *
- *
- * @author D.Onoprienko
- * @version $Id: TrackAnchor.java,v 1.1 2007/09/25 03:25:40 onoprien Exp $
- */
-public interface TrackAnchor {
-
- /**
- * Calculates Chi**2 to the trajectory given as an argument.
- */
- public double chi2(TrackPoint trackPoint);
-
- //public SensorGroup getGroup();
-
-}
lcsim/src/org/lcsim/contrib/onoprien/tracking/track
diff -N TrackNode.java
--- TrackNode.java 25 Sep 2007 03:16:33 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,25 +0,0 @@
-package org.lcsim.contrib.onoprien.tracking.track;
-
-import org.lcsim.contrib.onoprien.tracking.geom.Sensor;
-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.3 2007/09/25 03:16:33 onoprien Exp $
- */
-public interface TrackNode {
-
- /**
- * Returns a trajectory representing track fit at this node.
- * Helix's reference point represents a point on a track associated with this node.
- */
- public TrackPoint getTrackPoint();
-
- /**
- * Returns track anchor associated with the node.
- */
- public TrackAnchor getAnchor();
-
-}
lcsim/src/org/lcsim/contrib/onoprien/tracking/track
diff -N TrackPoint.java
--- TrackPoint.java 31 May 2007 09:38:55 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-
-package org.lcsim.contrib.onoprien.tracking.track;
-
-/**
- * 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.2 2007/05/31 09:38:55 onoprien Exp $
- */
-public interface TrackPoint {
-
-}
CVSspam 0.2.8