lcsim/src/org/lcsim/fit/helicaltrack
diff -u -r1.26 -r1.27
--- HelicalTrackHitDriver.java 16 Oct 2008 21:44:13 -0000 1.26
+++ HelicalTrackHitDriver.java 10 Nov 2008 19:46:01 -0000 1.27
@@ -142,16 +142,16 @@
throw new RuntimeException("Detector Container is empty!");
} else {
IDetectorElement de = cont.get(0);
- String detname = ID.getName(de);
- int lyr = ID.getLayer(de);
- BarrelEndcapFlag be = ID.getBarrelEndcapFlag(de);
+// String detname = ID.getName(de);
+// int lyr = ID.getLayer(de);
+// BarrelEndcapFlag be = ID.getBarrelEndcapFlag(de);
//Kludgy fix for layer numbering in sid01
- if (!(detname.indexOf("Vertex") ==-1 && detname.indexOf("Vtx") == -1) && be.isEndcap()) {
- if (event.getDetectorName().indexOf("planar")==-1) lyr/=2;
- }
+// if (!(detname.indexOf("Vertex") ==-1 && detname.indexOf("Vtx") == -1) && be.isEndcap()) {
+// if (event.getDetectorName().indexOf("planar")==-1) lyr/=2;
+// }
HelicalTrackHit hthit = new HelicalTrack3DHit(pos, cov, hit.getdEdx(), hit.getTime(), hit.getRawHits(),
- detname, lyr, ID.getBarrelEndcapFlag(de));
+ ID.getName(de), ID.getLayer(de), ID.getBarrelEndcapFlag(de));
for (MCParticle p : ((BaseTrackerHitMC)hit).mcParticles()) hthit.addMCParticle(p);
hitrelations.add(new MyLCRelation(hthit, ohit));
lcsim/src/org/lcsim/fit/helicaltrack
diff -u -r1.1 -r1.2
--- HitIdentifier.java 2 Jul 2008 23:54:24 -0000 1.1
+++ HitIdentifier.java 10 Nov 2008 19:46:01 -0000 1.2
@@ -7,6 +7,9 @@
package org.lcsim.fit.helicaltrack;
+import java.util.ArrayList;
+import java.util.List;
+
import org.lcsim.detector.DetectorIdentifierHelper;
import org.lcsim.detector.IDetectorElement;
import org.lcsim.detector.identifier.IIdentifier;
@@ -19,9 +22,16 @@
* @version 1.0
*/
public class HitIdentifier {
+ private List<String> _special;
/** Creates a new instance of HitIdentifier */
public HitIdentifier() {
+ _special = new ArrayList<String>();
+ }
+
+ public HitIdentifier(List<String> special) {
+ super();
+ _special.addAll(special);
}
public String Identifier(IDetectorElement de) {
@@ -54,6 +64,16 @@
IIdentifier id = de.getIdentifier();
// Get the layer number
layer = dehlp.getLayerValue(id);
+ // See if it needs "special" treatment
+ for (String name : _special) {
+ if (getName(de).equals(name)) {
+ // Special layers have stereo layers with distinct layer numbers
+ // on the two stereo sensor planes, whereas the seedtracker
+ // convention is that both planes have the same layer number
+ layer /= 2;
+ break;
+ }
+ }
}
return layer;
}
@@ -74,5 +94,10 @@
else if (dehlp.isEndcapNegative(id)) beflag = BarrelEndcapFlag.ENDCAP_SOUTH;
}
return beflag;
- }
+ }
+
+ public void setNonStandardLayering(String name) {
+ _special.add(name);
+ return;
+ }
}
\ No newline at end of file