9 removed files
lcsim/src/org/lcsim/contrib/HansWenzel/Tracking
diff -N DigiTrackerHitsAccessDriver.java
--- DigiTrackerHitsAccessDriver.java 6 Dec 2008 21:53:20 -0000 1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,191 +0,0 @@
-package org.lcsim.contrib.HansWenzel.Tracking;
-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.recon.tracking.vsegment.geom.Sensor;
-import org.lcsim.recon.tracking.vsegment.geom.SensorType;
-import org.lcsim.recon.tracking.vsegment.hit.DigiTrackerHit;
-import org.lcsim.recon.tracking.vsegment.hit.TrackerCluster;
-import org.lcsim.recon.tracking.vsegment.hit.TrackerHit;
-import org.lcsim.recon.tracking.vsegment.mctruth.MCTruth;
-import org.lcsim.recon.tracking.vsegment.mctruth.MCTruthDriver;
-import org.lcsim.recon.tracking.vsegment.mctruth.SimGroup;
-
-/**
- * Driver for accessing the DigiTrackerHits in the Event
- *
- * @author Hans Wenzel
- * @version $Id: DigiTrackerHitsAccessDriver.java,v 1.4 2008/12/06 21:53:20 onoprien Exp $
- */
-public class DigiTrackerHitsAccessDriver extends Driver {
-
-// -- Constructor : -----------------------------------------------------------
-
- public DigiTrackerHitsAccessDriver() {
-
- _aida = AIDA.defaultInstance();
- _hFactory = _aida.histogramFactory();
-
- }
-
-// -- Processing event : ------------------------------------------------------
-
- public void process(EventHeader event) {
-
- System.out.println(" ");
- System.out.println("Event "+event.getEventNumber());
- super.process(event);
- _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");
-
- /* 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();
-
- // 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/HansWenzel/Tracking
diff -N ParticlewithHits.java
--- ParticlewithHits.java 6 Sep 2007 20:49:35 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,19 +0,0 @@
-package org.lcsim.contrib.HansWenzel.Tracking;
-import hep.physics.particle.BasicParticle;
-import org.lcsim.event.MCParticle;
-import java.util.Collections;
-import java.util.List;
-public class ParticlewithHits {
- private MCParticle particle;
- private List<SiMeasurement> ListofMeasurements;
-
- public ParticlewithHits(MCParticle inParticle,
- List<SiMeasurement> inList)
- {
- particle = inParticle;
- ListofMeasurements = inList;
- }
- public MCParticle GetMCParticle() {return particle;}
- public List<SiMeasurement> GetList() {return ListofMeasurements;}
-
-}
lcsim/src/org/lcsim/contrib/HansWenzel/Tracking
diff -N ParticlewithHitsAccessDriver.java
--- ParticlewithHitsAccessDriver.java 6 Sep 2007 20:49:35 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,85 +0,0 @@
-package org.lcsim.contrib.HansWenzel.Tracking;
-import hep.physics.particle.properties.ParticleType;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import org.lcsim.event.EventHeader;
-import org.lcsim.event.EventHeader.LCMetaData;
-import org.lcsim.event.SimTrackerHit;
-import org.lcsim.util.Driver;
-import org.lcsim.util.aida.AIDA;
-import hep.aida.ITree;
-
-
-import java.io.File;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.LinkedList;
-import java.util.Map;
-import java.util.HashMap;
-
-import hep.physics.particle.BasicParticle;
-import org.lcsim.event.MCParticle;
-import org.lcsim.geometry.Subdetector;
-import org.lcsim.geometry.subdetector.SiTrackerBarrel;
-import org.lcsim.detector.IDetectorElement;
-import org.lcsim.detector.IDetectorElementContainer;
-import org.lcsim.detector.IGeometryInfo;
-import org.lcsim.detector.ILogicalVolume;
-import org.lcsim.detector.IPhysicalVolume;
-import org.lcsim.detector.material.IMaterial;
-import org.lcsim.detector.solids.ISolid;
-import org.lcsim.detector.solids.Box;
-import org.lcsim.detector.solids.Tube;
-import hep.physics.vec.Hep3Vector;
-import hep.physics.vec.BasicHep3Vector;
-import org.lcsim.detector.identifier.Identifier;
-import org.lcsim.detector.driver.CollectionHandler;
-import org.lcsim.event.EventHeader;
-import org.lcsim.event.SimTrackerHit;
-import org.lcsim.util.Driver;
-import org.lcsim.util.cache.FileCache;
-import org.lcsim.util.loop.LCSimLoop;
-import java.util.Random;
-import java.lang.Math;
-//import SiMeasurement;
-/*
- * ParticlewithHitsAccessDriver.java
- *
- * Created on July 31, 2005, 3:03 PM
- *
- */
-
-/**
- *
- * @author Hans Wenzel
- */
-public class ParticlewithHitsAccessDriver extends Driver {
-
- public ParticlewithHitsAccessDriver() {
- }
- protected void process(EventHeader event) {
-
- List<List<ParticlewithHits>> SiMeasurementLists = event.get(ParticlewithHits.class);
- System.out.println("List size "+SiMeasurementLists.size());
- // now loop over the List and print it out:
- for (List<ParticlewithHits> SiMeasurementList: SiMeasurementLists) {
- for (ParticlewithHits phits : SiMeasurementList) {
- MCParticle part = phits.GetMCParticle();
- System.out.println("Particle PDGID: "+part.getPDGID());
- List<SiMeasurement> MList = phits.GetList();
- Collections.sort(MList, new TimeComparator());
-
- System.out.println("Number of Hits: "+MList.size());
- for ( SiMeasurement point : MList) {
- point.Print();
- }
- }
- }
- }
-}
-
-
-
-
lcsim/src/org/lcsim/contrib/HansWenzel/Tracking
diff -N ReverseTimeComparator.java
--- ReverseTimeComparator.java 6 Sep 2007 20:49:35 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,13 +0,0 @@
-package org.lcsim.contrib.HansWenzel.Tracking;
-import org.lcsim.event.SimTrackerHit;
-import java.util.Comparator;
-
-class ReverseTimeComparator implements Comparator<SiMeasurement>
-{
- public int compare(SiMeasurement h1, SiMeasurement h2)
- {
- SimTrackerHit hit1 = h1.GetHit();
- SimTrackerHit hit2 = h2.GetHit();
- return (hit1.getTime() > hit2.getTime() ? -1 : (hit1.getTime() == hit2.getTime() ? 0 : 1));
- }
-}
lcsim/src/org/lcsim/contrib/HansWenzel/Tracking
diff -N SiMeasurement.java
--- SiMeasurement.java 6 Sep 2007 20:49:35 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,49 +0,0 @@
-package org.lcsim.contrib.HansWenzel.Tracking;
-import org.lcsim.event.SimTrackerHit;
-import java.util.Comparator;
-import org.lcsim.event.SimTrackerHit;
-import hep.physics.particle.BasicParticle;
-import org.lcsim.event.MCParticle;
-import org.lcsim.detector.IDetectorElement;
-
-public class SiMeasurement {
- private SimTrackerHit Hit;
- private double LocalX;
- private double LocalY;
- private double SigX;
- private double SigY;
- private IDetectorElement IDet;
- private String DetectorType;
- public SiMeasurement(SimTrackerHit inHit,
- double inLocalX,
- double inLocalY,
- double inSigX,
- double inSigY,
- IDetectorElement inIDet,
- String inDetectorType) {
- Hit = inHit;
- LocalX = inLocalX;
- LocalY = inLocalY;
- SigX = inSigX;
- SigY = inSigY;
- IDet = inIDet;
- DetectorType = inDetectorType;
- }
- public SimTrackerHit GetHit() {return Hit;}
- public double GetLocalX() {return LocalX;}
- public double GetLocalY() {return LocalY;}
- public double GetSigX() {return SigX;}
- public double GetSigY() {return SigY;}
- public IDetectorElement GetIDet() {return IDet;}
- public String GetDetectorType(){return DetectorType;}
- public void Print() {
- System.out.println( "Local x: "+LocalX+
- " Local Y: "+LocalY+
- " Sigma X: "+SigX+
- " Sigma Y: "+SigY+
- " Detector name: "+IDet.getName()+
- " Detector Type: "+DetectorType);
- return;
- }
-
-}
lcsim/src/org/lcsim/contrib/HansWenzel/Tracking
diff -N TimeComparator.java
--- TimeComparator.java 6 Sep 2007 20:49:35 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-package org.lcsim.contrib.HansWenzel.Tracking;
-import org.lcsim.event.SimTrackerHit;
-import java.util.Comparator;
-
-class TimeComparator implements Comparator<SiMeasurement>
-{
-
- public int compare(SiMeasurement h1, SiMeasurement h2)
- {
- SimTrackerHit hit1 = h1.GetHit();
- SimTrackerHit hit2 = h2.GetHit();
- return (hit1.getTime() < hit2.getTime() ? -1 : (hit1.getTime() == hit2.getTime() ? 0 : 1));
- }
-}
lcsim/src/org/lcsim/contrib/HansWenzel/Tracking
diff -N TrackerHitAccessDriver.java
--- TrackerHitAccessDriver.java 14 Sep 2007 15:46:29 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,169 +0,0 @@
-package org.lcsim.contrib.HansWenzel.Tracking;
-import hep.physics.particle.properties.ParticleType;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import org.lcsim.event.EventHeader;
-import org.lcsim.event.EventHeader.LCMetaData;
-import org.lcsim.event.SimTrackerHit;
-import org.lcsim.util.Driver;
-import org.lcsim.util.aida.AIDA;
-import hep.aida.ITree;
-
-
-import java.io.File;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.LinkedList;
-import java.util.Map;
-import java.util.HashMap;
-
-import hep.physics.particle.BasicParticle;
-import org.lcsim.event.MCParticle;
-import org.lcsim.geometry.Subdetector;
-import org.lcsim.geometry.subdetector.SiTrackerBarrel;
-import org.lcsim.detector.IDetectorElement;
-import org.lcsim.detector.IDetectorElementContainer;
-import org.lcsim.detector.IGeometryInfo;
-import org.lcsim.detector.ILogicalVolume;
-import org.lcsim.detector.IPhysicalVolume;
-import org.lcsim.detector.material.IMaterial;
-import org.lcsim.detector.solids.ISolid;
-import org.lcsim.detector.solids.Box;
-import org.lcsim.detector.solids.Tube;
-import hep.physics.vec.Hep3Vector;
-import hep.physics.vec.BasicHep3Vector;
-import org.lcsim.detector.identifier.Identifier;
-import org.lcsim.detector.driver.CollectionHandler;
-import org.lcsim.event.EventHeader;
-import org.lcsim.event.SimTrackerHit;
-import org.lcsim.util.Driver;
-import org.lcsim.util.cache.FileCache;
-import org.lcsim.util.loop.LCSimLoop;
-import java.util.Random;
-import java.lang.Math;
-//import SiMeasurement;
-/*
- * TrackerHitAccessDriver.java
- *
- * Created on July 31, 2005, 3:03 PM
- *
- */
-
-/**
- *
- * @author Hans Wenzel
- */
-public class TrackerHitAccessDriver extends Driver {
-
- final double strippitch = 0.05; // 50 micron strips
- final double sigstripy = strippitch/Math.sqrt(12.); // pitch/sqrt(12)
- double sigstripx = 0.0;
- double MeasureX = 0.0;
- double MeasureY = 0.0;
- double sigMeasureX = 0.0;
- double sigMeasureY = 0.0;
- final double pixelx = 0.01; // 10 x 10 microns Pixels
- final double pixely = 0.01;
- final double sigpixelx = pixelx/Math.sqrt(12.);
- final double sigpixely = pixely/Math.sqrt(12.);
-// private SiMeasurement measurement;
- Random rndm;
- public TrackerHitAccessDriver() {
- rndm = new Random();
- }
- protected void process(EventHeader event) {
- SiMeasurement measurement=null;
- List<MCParticle> particles = event.get(MCParticle.class,event.MC_PARTICLES);
- System.out.println("Nr of MC particles: "+particles.size());
- List<List<SimTrackerHit>> collections = event.get(SimTrackerHit.class);
- Map<MCParticle,Integer> IndexMap = new HashMap<MCParticle,Integer>();
- Integer index = 0;
- List<ParticlewithHits> SiMeasurementList = new ArrayList<ParticlewithHits>();
-
-// Map<MCParticle,List<SiMeasurement>> SiMeasurementMap = new HashMap<MCParticle,List<SiMeasurement>>();
- // Loop over all SimTrackerHit collections:
- for (List<SimTrackerHit> collection : collections) {
- LCMetaData meta = event.getMetaData(collection);
- System.out.println("meta: "+meta.getName());
- if ((meta.getName().substring(0,13).equals("TrackerBarrel"))||(meta.getName().substring(0,9).equals("VtxBarrel"))) {
- // System.out.println("meta: "+meta.getName());
- for (SimTrackerHit hit : collection) {
- MCParticle particle = hit.getMCParticle();
- if (particle !=null){
-
- IDetectorElement DEofHit = hit.getDetectorElement();
- IGeometryInfo gi = DEofHit.getGeometry();
- double[] pos = hit.getPoint();
- Hep3Vector heppoint = new BasicHep3Vector(pos);
- Hep3Vector locpoint = gi.transformGlobalToLocal(heppoint);
- IPhysicalVolume pv = gi.getPhysicalVolume();
- ILogicalVolume lv = pv.getLogicalVolume();
- IMaterial gimat = lv.getMaterial();
- ISolid gisolid = lv.getSolid();
- if(gisolid instanceof Box) {
- Box gbox = (Box)gisolid; //casting
- sigstripx = (2.*gbox.getXHalfLength())/Math.sqrt(12.); // pit/sqrt(12)
- } else if(gisolid instanceof Tube) {
- Tube tube =(Tube)gisolid; //casting
- } else {
- System.out.println("ISolid not known!!!!");
- }
- if (DEofHit.getName().substring(0,13).equals("TrackerBarrel")) {
- MeasureX = 0.0;
- MeasureY = locpoint.y()+sigstripy*rndm.nextGaussian();
- sigMeasureX = sigstripx;
- sigMeasureY = sigstripy;
- measurement = new SiMeasurement(hit,MeasureX,MeasureY,sigMeasureX,sigMeasureY,DEofHit,"TrackerBarrel");
- } else if (DEofHit.getName().substring(0,9).equals("VtxBarrel")) {
- MeasureX = locpoint.x()+sigpixelx*rndm.nextGaussian();;
- MeasureY = locpoint.y()+sigpixely*rndm.nextGaussian();
- sigMeasureX = sigpixelx;
- sigMeasureY = sigpixely;
- measurement = new SiMeasurement(hit,MeasureX,MeasureY,sigMeasureX,sigMeasureY,DEofHit,"VtxBarrel");
- } else {
- System.out.println("Currently endcaps not implemented");
- }
-
- Boolean found = IndexMap.containsKey(particle);
- if (found) {
- ParticlewithHits pwh = SiMeasurementList.get(IndexMap.get(particle));
- List<SiMeasurement> MeasurementList = pwh.GetList();
- MeasurementList.add(measurement);
- } else {
- List<SiMeasurement> MeasurementList =new ArrayList();
- MeasurementList.add(measurement);
- ParticlewithHits particlewh = new ParticlewithHits(particle,MeasurementList);
- SiMeasurementList.add(particlewh);
- IndexMap.put(particle,index);
- index = index+1;
- }
- } // end if MCparticle found
- } // end loop over hits
- } // end barrel selection
- }// end loop over hit collections
- System.out.println("List size "+SiMeasurementList.size());
- /*
- // now loop over the List and print it out:
- for (ParticlewithHits phits: SiMeasurementList) {
- MCParticle part = phits.GetMCParticle();
- System.out.println("Particle PDGID: "+part.getPDGID());
- List<SiMeasurement> MList = phits.GetList();
- Collections.sort(MList, new TimeComparator());
-
- System.out.println("Number of Hits: "+MList.size());
- for ( SiMeasurement point : MList) {
- point.Print();
- }
- }
- */
- // Put the collection into the event.
- System.out.println("Adding object to event: " );
- event.put("_ParticlewithHits",SiMeasurementList , ParticlewithHits.class, 0);
- }
-}
-
-
-
-
lcsim/src/org/lcsim/contrib/HansWenzel/Tracking
diff -N TrackerHitCheaterAccessDriver.java
--- TrackerHitCheaterAccessDriver.java 6 Dec 2008 21:53:20 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,73 +0,0 @@
-package org.lcsim.contrib.HansWenzel.Tracking;
-import hep.physics.particle.properties.ParticleType;
-import java.util.Collections;
-import org.lcsim.event.EventHeader;
-import org.lcsim.event.EventHeader.LCMetaData;
-import org.lcsim.util.Driver;
-import hep.aida.ITree;
-import java.io.File;
-import java.net.URL;
-import java.util.List;
-import java.util.Map;
-import java.util.HashMap;
-import hep.physics.particle.BasicParticle;
-import org.lcsim.event.MCParticle;
-import org.lcsim.event.SimTrackerHit;
-import org.lcsim.recon.tracking.vsegment.hit.DigiTrackerHit;
-import org.lcsim.recon.tracking.vsegment.hit.TrackerCluster;
-import org.lcsim.recon.tracking.vsegment.hit.base.TrackerClusterBasic;
-import org.lcsim.recon.tracking.vsegment.hit.TrackerHit;
-
-/*
- */
-
-/**
- *
- * @author Hans Wenzel
- */
-public class TrackerHitCheaterAccessDriver extends Driver {
-
- public TrackerHitCheaterAccessDriver() {
-
- }
- protected void process(EventHeader event) {
- //
- // First get all the stuff we are interested in out of the event:
- //
- HashMap<MCParticle,List<SimTrackerHit>> SimTrackerHitMap =
- (HashMap<MCParticle,List<SimTrackerHit>>) event.get("SimTrackerHitMap");
- HashMap<MCParticle,List<DigiTrackerHit>> DigiTrackerHitMap =
- (HashMap<MCParticle,List<DigiTrackerHit>>)event.get("DigiTrackerHitMap");
- HashMap<MCParticle,List<TrackerCluster>> TrackerClusterMap =
- (HashMap<MCParticle,List<TrackerCluster>>)event.get("TrackerClusterMap");
- HashMap<MCParticle,List<TrackerHit>> TrackerHitMap =
- (HashMap<MCParticle,List<TrackerHit>>)event.get("TrackerHitMap");
- System.out.println("TrackerHitCheaterAccessDriver:");
- System.out.println("Size of SimTrackerHitMap: "+SimTrackerHitMap.size());
- for (MCParticle particle : SimTrackerHitMap.keySet()) {
- List<SimTrackerHit> simtrackerlist= SimTrackerHitMap.get(particle);
- System.out.println("Nr of SimTrackerHits associated: "+simtrackerlist.size());
- }
-
-
- System.out.println("Size of DigiTrackerHitMap "+DigiTrackerHitMap.size());
- for (MCParticle particle : DigiTrackerHitMap.keySet()) {
- List<DigiTrackerHit> digitrackerlist= DigiTrackerHitMap.get(particle);
- System.out.println("Nr of DigiTrackerHits associated: "+digitrackerlist.size());
- }
- System.out.println("Size of TrackerClusterMap "+TrackerClusterMap.size());
- for (MCParticle particle : TrackerClusterMap.keySet()) {
- List<TrackerCluster> trackerclusterlist= TrackerClusterMap.get(particle);
- System.out.println("Nr of TrackerClusters associated: "+trackerclusterlist.size());
- }
- System.out.println("Size of TrackerHitMap " +TrackerHitMap.size());
- for (MCParticle particle : TrackerHitMap.keySet()) {
- List<TrackerHit> trackerhitlist= TrackerHitMap.get(particle);
- System.out.println("Nr of TrackerClusters associated: "+trackerhitlist.size());
- }
- }
-}
-
-
-
-
lcsim/src/org/lcsim/contrib/HansWenzel/Tracking
diff -N TrackerHitCheaterDriver.java
--- TrackerHitCheaterDriver.java 6 Dec 2008 21:53:20 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,156 +0,0 @@
-package org.lcsim.contrib.HansWenzel.Tracking;
-import hep.physics.particle.properties.ParticleType;
-import java.util.Collections;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.List;
-import java.util.ArrayList;
-import org.lcsim.event.EventHeader;
-import org.lcsim.util.Driver;
-import hep.physics.particle.BasicParticle;
-import org.lcsim.event.MCParticle;
-import hep.physics.vec.Hep3Vector;
-import hep.physics.vec.BasicHep3Vector;
-import org.lcsim.event.SimTrackerHit;
-import org.lcsim.util.Driver;
-import org.lcsim.recon.tracking.vsegment.geom.Sensor;
-import org.lcsim.recon.tracking.vsegment.geom.SensorType;
-import org.lcsim.recon.tracking.vsegment.hit.DigiTrackerHit;
-import org.lcsim.recon.tracking.vsegment.hit.TrackerCluster;
-import org.lcsim.recon.tracking.vsegment.hit.base.TrackerClusterBasic;
-import org.lcsim.recon.tracking.vsegment.hit.TrackerHit;
-
-/*
- * TrackerHitCheaterDriver.java
- * This programs is to be used as "perfect" pattern recognition:
- * meaning we use the Monte Carlo information to create maps
- * linking an MCParticle to the list of SimTrackerHits,DigiTrackerHits,TrackerClusters and TrackerHits.
- * This list can then be used in a track fitter.
- */
-
-/**
- *
- * @author Hans Wenzel
- */
-public class TrackerHitCheaterDriver extends Driver {
-
- public TrackerHitCheaterDriver() {
-
- }
- protected void process(EventHeader event) {
- //
- // First get all the stuff we are interested in out of the event:
- //
- List<MCParticle> particles = event.get(MCParticle.class,event.MC_PARTICLES);
- System.out.println("=========================================================");
- System.out.println("Nr of MC particles: "+particles.size());
- HashMap<Sensor, ArrayList<DigiTrackerHit>> digisMap =
- (HashMap<Sensor, ArrayList<DigiTrackerHit>>) event.get("DigiTrackerHits");
- HashMap<Sensor, ArrayList<TrackerCluster>> clustersMap =
- (HashMap<Sensor, ArrayList<TrackerCluster>>) event.get("TrackerClusters");
- HashMap<Sensor, ArrayList<TrackerHit>> hitsMap =
- (HashMap<Sensor, ArrayList<TrackerHit>>) event.get("NewTrackerHits");
- List<List<SimTrackerHit>> collections = event.get(SimTrackerHit.class);
- //
- // Now create the Maps with the relation between Hits/clusters and MCParticle
- //
- Map<MCParticle,List<SimTrackerHit>> SimTrackerHitMap =
- new HashMap<MCParticle,List<SimTrackerHit>>();
- Map<MCParticle,List<DigiTrackerHit>> DigiTrackerHitMap =
- new HashMap<MCParticle,List<DigiTrackerHit>>();
- Map<MCParticle,List<TrackerCluster>> TrackerClusterMap =
- new HashMap<MCParticle,List<TrackerCluster>>();
- Map<MCParticle,List<TrackerHit>> TrackerHitMap =
- new HashMap<MCParticle,List<TrackerHit>>();
- //
- // Loop over all SimTrackerHit collections:
- //
- for (List<SimTrackerHit> collection : collections) {
- for (SimTrackerHit hit : collection) {
- MCParticle particle = hit.getMCParticle();
- if (particle !=null){
- if (SimTrackerHitMap.containsKey(particle)) {
- SimTrackerHitMap.get(particle).add(hit);
- } else {
- List<SimTrackerHit> SimTrackerHitList =new ArrayList();
- SimTrackerHitList.add(hit);
- SimTrackerHitMap.put(particle,SimTrackerHitList);
- }
- } // end if MCparticle found
- } // end loop over hits
- }// end loop over hit collections
- System.out.println("Size of SimTrackerHitMap "+SimTrackerHitMap.size());
- //
- // Now loop over all the DigitrackerHits:
- //
- for (Sensor sensor : digisMap.keySet()) {
- for ( DigiTrackerHit digi : digisMap.get(sensor)){
- MCParticle particle = digi.getMCParticle();
- if (particle !=null){
- if (DigiTrackerHitMap.containsKey(particle)) {
- DigiTrackerHitMap.get(particle).add(digi);
- } else {
- List<DigiTrackerHit> DigiTrackerHitList =new ArrayList();
- DigiTrackerHitList.add(digi);
- DigiTrackerHitMap.put(particle,DigiTrackerHitList);
- }
- } // end if MCparticle found
- }// end loop over sensors
- } // loop over digi tracker hits
- System.out.println("Size of DigiTrackerHitMap "+DigiTrackerHitMap.size());
- //
- // Now loop over all the Tracker Clusters:
- //
- for (Sensor sensor : clustersMap.keySet()) {
- for ( TrackerCluster cluster : clustersMap.get(sensor)){
- List< DigiTrackerHit > hitlist = cluster.getDigiHits();
- for ( DigiTrackerHit digi : hitlist){
- MCParticle particle = digi.getMCParticle();
- if (particle !=null){
- if (TrackerClusterMap.containsKey(particle)) {
- TrackerClusterMap.get(particle).add(cluster);
- } else {
- List<TrackerCluster> TrackerClusterList =new ArrayList();
- TrackerClusterList.add(cluster);
- TrackerClusterMap.put(particle,TrackerClusterList);
- }
- } // end if MCparticle found
- }
- }// end loop over sensors
- } // loop over digi tracker hits
- System.out.println("Size of TrackerClusterMap "+TrackerClusterMap.size());
- //
- // Now loop over all the Tracker Hits:
- //
- for (Sensor sensor : hitsMap.keySet()) {
- for ( TrackerHit thit : hitsMap.get(sensor)){
- List< DigiTrackerHit > hitlist = thit.getCluster().getDigiHits();
- for ( DigiTrackerHit digi : hitlist){
- MCParticle particle = digi.getMCParticle();
- if (particle !=null){
- if (TrackerHitMap.containsKey(particle)) {
- TrackerHitMap.get(particle).add(thit);
- } else {
- List<TrackerHit> TrackerHitList =new ArrayList();
- TrackerHitList.add(thit);
- TrackerHitMap.put(particle,TrackerHitList);
- }
- } // end if MCparticle found
- }
- }// end loop over sensors
- } // loop over digi tracker hits
- System.out.println("Size of TrackerHitMap "+TrackerHitMap.size());
- //
- // Put the Maps into the event:
- //
- System.out.println("Now adding the maps to the event: " );
- event.put("SimTrackerHitMap" , SimTrackerHitMap);
- event.put("DigiTrackerHitMap", DigiTrackerHitMap);
- event.put("TrackerClusterMap", TrackerClusterMap);
- event.put("TrackerHitMap" , TrackerHitMap);
- }
-}
-
-
-
-
CVSspam 0.2.8