lcsim/src/org/lcsim/fit/helicaltrack
diff -u -r1.32 -r1.33
--- HelicalTrackHitDriver.java 24 Feb 2009 21:24:53 -0000 1.32
+++ HelicalTrackHitDriver.java 21 Apr 2009 23:11:29 -0000 1.33
@@ -82,7 +82,7 @@
Digitized
}
private StereoHitMaker _crosser = new StereoHitMaker(2., 10.);
- private HitIdentifier ID = new HitIdentifier();
+ private HitIdentifier _ID = new HitIdentifier();
private SegmentationManager _segman;
private List<String> _vscol = new ArrayList<String>();
private List<String> _bscol = new ArrayList<String>();
@@ -122,7 +122,7 @@
SymmetricMatrix cov = new SymmetricMatrix(3, hit.getCovMatrix(), true);
TrackerHit ohit = hit;
- try {
+// try {
//create a BaseTrackerHitMC from a BaseTrackerHit if necessary
if (!(hit instanceof BaseTrackerHitMC)){
List<SimTrackerHit> thesehits = new ArrayList<SimTrackerHit>();
@@ -137,26 +137,26 @@
}
SimTrackerHit simhit = ((BaseTrackerHitMC)hit).getSimHits().get(0);
- IDetectorElementContainer cont = DetectorElementStore.getInstance().find(simhit.getIdentifier());
- if (cont.isEmpty()) {
- throw new RuntimeException("Detector Container is empty!");
- } else {
- IDetectorElement de = cont.get(0);
- HelicalTrackHit hthit = new HelicalTrack3DHit(pos, cov, hit.getdEdx(), hit.getTime(), hit.getRawHits(),
- ID.getName(de), ID.getLayer(de), ID.getBarrelEndcapFlag(de));
+ HelicalTrackHit hthit = new HelicalTrack3DHit(pos, cov, hit.getdEdx(), hit.getTime(), hit.getRawHits(),
+ _ID.getName(simhit), _ID.getLayer(simhit), _ID.getBarrelEndcapFlag(simhit));
+// IDetectorElementContainer cont = DetectorElementStore.getInstance().find(simhit.getIdentifier());
+// if (cont.isEmpty()) {
+// throw new RuntimeException("Detector Container is empty!");
+// } else {
+// IDetectorElement de = cont.get(0);
- for (MCParticle p : ((BaseTrackerHitMC)hit).mcParticles()) hthit.addMCParticle(p);
- hitrelations.add(new MyLCRelation(hthit, ohit));
- helhits.add(hthit);
- }
-
- } catch(Exception e) {
- System.out.println("Warning, could not complete Identification for smeared hits. Reason: "+e.getMessage());
- HelicalTrackHit hthit = new HelicalTrack3DHit(pos, cov, hit.getdEdx(), hit.getTime(),
- hit.getRawHits(), "Unknown", 0, BarrelEndcapFlag.BARREL);
+ for (MCParticle p : ((BaseTrackerHitMC)hit).mcParticles()) hthit.addMCParticle(p);
hitrelations.add(new MyLCRelation(hthit, ohit));
helhits.add(hthit);
- }
+// }
+//
+// } catch(Exception e) {
+// System.out.println("Warning, could not complete Identification for smeared hits. Reason: "+e.getMessage());
+// HelicalTrackHit hthit = new HelicalTrack3DHit(pos, cov, hit.getdEdx(), hit.getTime(),
+// hit.getRawHits(), "Unknown", 0, BarrelEndcapFlag.BARREL);
+// hitrelations.add(new MyLCRelation(hthit, ohit));
+// helhits.add(hthit);
+// }
}
}
@@ -361,10 +361,10 @@
double dEdx = hit.getSignal();
double time = hit.getTime();
IDetectorElement de = s.getDetectorElement();
- String det = ID.getName(de);
- int lyr = ID.getLayer(de);
+ String det = _ID.getName(de);
+ int lyr = _ID.getLayer(de);
if (_segman.getStereoPartners(s) != null) lyr = lyr / 2;
- BarrelEndcapFlag beflag = ID.getBarrelEndcapFlag(de);
+ BarrelEndcapFlag beflag = _ID.getBarrelEndcapFlag(de);
HelicalTrackStrip strip = new HelicalTrackStrip(org, u, v, umeas, du, vmin, vmax, dEdx, time, null,
det, lyr, beflag);
@@ -378,7 +378,7 @@
private HelicalTrackHit MakePixelHit(org.lcsim.recon.tracking.vsegment.hit.TrackerHit hit) {
IDetectorElement de = hit.getSensor().getDetectorElement();
HelicalTrackHit pixel = new HelicalTrack3DHit(hit.getPosition(), hit.getCovMatrix(), hit.getSignal(),
- hit.getTime(), null, ID.getName(de), ID.getLayer(de), ID.getBarrelEndcapFlag(de));
+ hit.getTime(), null, _ID.getName(de), _ID.getLayer(de), _ID.getBarrelEndcapFlag(de));
List<MCParticle> mcplist = getMCParticles(hit.getCluster());
for (MCParticle mcp : mcplist) {
pixel.addMCParticle(mcp);
@@ -403,12 +403,12 @@
private HelicalTrackHit makeDigi3DHit(SiTrackerHit h) {
IDetectorElement de = h.getSensor();
- int lyr = ID.getLayer(de);
- BarrelEndcapFlag be = ID.getBarrelEndcapFlag(de);
+ int lyr = _ID.getLayer(de);
+ BarrelEndcapFlag be = _ID.getBarrelEndcapFlag(de);
HelicalTrackHit hit = new HelicalTrack3DHit(h.getPositionAsVector(),
h.getCovarianceAsMatrix(), h.getdEdx(), h.getTime(),
- h.getRawHits(), ID.getName(de), lyr, be);
+ h.getRawHits(), _ID.getName(de), lyr, be);
for (MCParticle p : h.getMCParticles()) hit.addMCParticle(p);
@@ -426,8 +426,8 @@
HelicalTrackHit hit = new HelicalTrack2DHit(h.getPositionAsVector(),
h.getCovarianceAsMatrix(), h.getdEdx(), h.getTime(),
- h.getRawHits(), ID.getName(de), ID.getLayer(de),
- ID.getBarrelEndcapFlag(de), zmin, zmax);
+ h.getRawHits(), _ID.getName(de), _ID.getLayer(de),
+ _ID.getBarrelEndcapFlag(de), zmin, zmax);
for (MCParticle p : h.getMCParticles()) hit.addMCParticle(p);
return hit;
@@ -454,9 +454,9 @@
// System.out.println("umeas: "+umeas+" vmin: "+vmin+" vmax: "+vmax+" du: "+du);
IDetectorElement de = h.getSensor();
- String det = ID.getName(de);
- int lyr = ID.getLayer(de);
- BarrelEndcapFlag be = ID.getBarrelEndcapFlag(de);
+ String det = _ID.getName(de);
+ int lyr = _ID.getLayer(de);
+ BarrelEndcapFlag be = _ID.getBarrelEndcapFlag(de);
// System.out.println("Identifier: "+det+lyr+be);
double dEdx = h.getdEdx();
lcsim/src/org/lcsim/fit/helicaltrack
diff -u -r1.4 -r1.5
--- HitIdentifier.java 20 Jan 2009 19:18:26 -0000 1.4
+++ HitIdentifier.java 21 Apr 2009 23:11:29 -0000 1.5
@@ -14,6 +14,7 @@
import org.lcsim.detector.IDetectorElement;
import org.lcsim.detector.identifier.IIdentifier;
import org.lcsim.detector.identifier.IIdentifierHelper;
+import org.lcsim.event.SimTrackerHit;
import org.lcsim.geometry.subdetector.BarrelEndcapFlag;
/**
@@ -40,7 +41,14 @@
int layer = getLayer(de);
return Identifier(detname, layer, beflag);
}
-
+
+ public String Identifier(SimTrackerHit hit) {
+ String detname = getName(hit);
+ BarrelEndcapFlag beflag = getBarrelEndcapFlag(hit);
+ int layer = getLayer(hit);
+ return Identifier(detname, layer, beflag);
+ }
+
public static String Identifier(String detname, int layer, BarrelEndcapFlag beflag) {
String identifier = detname + layer + beflag;
return identifier;
@@ -53,7 +61,11 @@
String detname = de.getName();
return detname;
}
-
+
+ public String getName(SimTrackerHit hit) {
+ return hit.getSubdetector().getName();
+ }
+
public int getLayer(IDetectorElement de) {
int layer = -1;
IIdentifierHelper hlp = de.getIdentifierHelper();
@@ -76,7 +88,11 @@
}
return layer;
}
-
+
+ public int getLayer(SimTrackerHit hit) {
+ return hit.getLayer();
+ }
+
public BarrelEndcapFlag getBarrelEndcapFlag(IDetectorElement de) {
BarrelEndcapFlag beflag = BarrelEndcapFlag.UNKNOWN;
// Find the second level down from the top of the de tree
@@ -94,7 +110,11 @@
}
return beflag;
}
-
+
+ public BarrelEndcapFlag getBarrelEndcapFlag(SimTrackerHit hit) {
+ return hit.getBarrelEndcapFlag();
+ }
+
public void setNonStandardLayering(String name) {
_special.add(name);
return;