lcsim/src/org/lcsim/contrib/seedtracker
diff -N HitIdentifier.java
--- HitIdentifier.java 26 May 2008 04:17:19 -0000 1.6
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,120 +0,0 @@
-/*
- * HitIdentifier.java
- *
- * Created on December 5, 2007, 3:04 PM
- *
- */
-
-package org.lcsim.contrib.seedtracker;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.lcsim.contrib.SiStripSim.SiTrackerHit;
-import org.lcsim.detector.IDetectorElement;
-import org.lcsim.detector.DetectorIdentifierHelper;
-import org.lcsim.detector.identifier.IIdentifier;
-import org.lcsim.detector.identifier.IIdentifierHelper;
-import org.lcsim.event.TrackerHit;
-import org.lcsim.contrib.onoprien.tracking.hit.TrackerCluster;
-import org.lcsim.contrib.onoprien.tracking.hitmaking.OldTrackerHit;
-import org.lcsim.detector.DetectorElementStore;
-import org.lcsim.detector.IDetectorElementContainer;
-import org.lcsim.detector.identifier.Identifier;
-import org.lcsim.event.base.BaseTrackerHitMC;
-import org.lcsim.fit.helicaltrack.HelicalTrackHit;
-import org.lcsim.geometry.subdetector.BarrelEndcapFlag;
-
-/**
- *
- * @author R. Partridge
- * @version 1.0
- */
-public class HitIdentifier {
-
- /** Creates a new instance of HitIdentifier */
- public HitIdentifier() {
- }
-
- public String Identifier(HelicalTrackHit hit) {
- List<IDetectorElement> delist = getBaseDetElemList(hit);
- IDetectorElement de = delist.get(0);
- String detname = getName(de);
- BarrelEndcapFlag beflag = getBarrelEndcapFlag(de);
- int layer = getLayer(de);
- if (delist.size() == 2) layer = layer / 2;
- return detname+layer+beflag;
- }
-
- public String Identifier(String detname, int layer, BarrelEndcapFlag beflag) {
- String identifier = detname + layer + beflag;
- return identifier;
- }
-
- private List<IDetectorElement> getBaseDetElemList(HelicalTrackHit hit) {
- List<IDetectorElement> delist = new ArrayList<IDetectorElement>();
- TrackerHit thit = hit.getTrackerHit();
- if (thit instanceof OldTrackerHit) {
- OldTrackerHit othit = (OldTrackerHit) thit;
- List<TrackerCluster> cluster_list = othit.getClusters();
- for (TrackerCluster cluster : cluster_list) {
- // Get detector element for this cluster
- delist.add(cluster.getSensor().getDetectorElement());
- }
- }
-
- if (thit instanceof SiTrackerHit){
- SiTrackerHit sihit =(SiTrackerHit) thit;
- delist.add(sihit.getSensor());
- }
-
- else if (thit instanceof BaseTrackerHitMC) {
- BaseTrackerHitMC bhit = (BaseTrackerHitMC) thit;
- IIdentifier id = new Identifier(bhit.getSimHits().get(0).getCellID());
- IDetectorElementContainer de = DetectorElementStore.getInstance().find(id);
- if (!de.isEmpty()) delist.add(de.get(0));
- }
-
- return delist;
- }
-
- private String getName(IDetectorElement de) {
- // Find the first level down from the top of the de tree
- while (de.getParent().getParent() != null) de = de.getParent();
- // Find the name of this detector
- String detname = de.getName();
- //System.out.println(detname);
- return detname;
- }
-
- private int getLayer(IDetectorElement de) {
- int layer = -1;
- IIdentifierHelper hlp = de.getIdentifierHelper();
- if (hlp instanceof DetectorIdentifierHelper) {
- DetectorIdentifierHelper dehlp = (DetectorIdentifierHelper) hlp;
- // Get the identifier
- IIdentifier id = de.getIdentifier();
- // Get the layer number
- layer = dehlp.getLayerValue(id);
- }
- return layer;
- }
-
- private BarrelEndcapFlag getBarrelEndcapFlag(IDetectorElement de) {
- BarrelEndcapFlag beflag = BarrelEndcapFlag.UNKNOWN;
- // Find the second level down from the top of the de tree
- while (de.getParent().getParent().getParent() != null) de = de.getParent();
- // Get the DetectorIdentifierHelper
- IIdentifierHelper hlp = de.getIdentifierHelper();
- if (hlp instanceof DetectorIdentifierHelper) {
- DetectorIdentifierHelper dehlp = (DetectorIdentifierHelper) hlp;
- // Get the identifier
- IIdentifier id = de.getIdentifier();
- // Get the BarrelEndcapFlag
- if (dehlp.isBarrel(id)) beflag = BarrelEndcapFlag.BARREL;
- else if (dehlp.isEndcapPositive(id)) beflag = BarrelEndcapFlag.ENDCAP_NORTH;
- else if (dehlp.isEndcapNegative(id)) beflag = BarrelEndcapFlag.ENDCAP_SOUTH;
- }
- return beflag;
- }
-}
\ No newline at end of file