GeomConverter/sandbox
diff -N DetectorId.java
--- DetectorId.java 24 Aug 2007 23:35:23 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,481 +0,0 @@
-package org.lcsim.detector;
-
-import org.lcsim.detector.identifier.ExpandedIdentifier;
-import org.lcsim.detector.identifier.IExpandedIdentifier;
-import org.lcsim.detector.identifier.IIdentifier;
-import org.lcsim.detector.identifier.IIdentifierDictionary;
-import org.lcsim.detector.identifier.IdentifierHelper;
-import org.lcsim.detector.identifier.IIdentifierDictionary.FieldNotFoundException;
-import org.lcsim.detector.identifier.IIdentifierDictionary.InvalidIndexException;
-
-public class DetectorId
-extends IdentifierHelper
-{
- // Index of system field in the dictionary.
- int systemIndex=-1;
-
- // Index of barrel field in the dictionary.
- int barrelIndex=-1;
-
- // Barrel or endcap flag.
- public final static int BARREL=0;
- public final static int ENDCAP_POSITIVE=1;
- public final static int ENDCAP_NEGATIVE=-1;
-
- // Subsystem id values.
- // FIXME: These need to be settable if reading from a compact description.
- public final static int UNKNOWN=0;
- public final static int VTX=1;
- public final static int SIT=2;
- public final static int TPC=3;
- public final static int ECAL=4;
- public final static int HCAL=5;
- public final static int MUON=6;
- public final static int FORWARD=7;
- public final static int LUMI=8;
-
- IIdentifier barrelId;
- IIdentifier endcapPositiveId;
- IIdentifier endcapNegativeId;
-
- IIdentifier vtxId;
- IIdentifier vtxBarrelId;
- IIdentifier vtxEndcapPositiveId;
- IIdentifier vtxEndcapNegativeId;
-
- IIdentifier sitId;
- IIdentifier sitBarrelId;
- IIdentifier sitEndcapPositiveId;
- IIdentifier sitEndcapNegativeId;
-
- IIdentifier tpcId;
-
- IIdentifier ecalId;
- IIdentifier ecalBarrelId;
- IIdentifier ecalEndcapPositiveId;
- IIdentifier ecalEndcapNegativeId;
-
- IIdentifier hcalId;
- IIdentifier hcalBarrelId;
- IIdentifier hcalEndcapPositiveId;
- IIdentifier hcalEndcapNegativeId;
-
- IIdentifier muonId;
- IIdentifier muonBarrelId;
- IIdentifier muonEndcapPositiveId;
- IIdentifier muonEndcapNegativeId;
-
- IIdentifier forwardId;
-
- IIdentifier lumiId;
-
- DetectorId(IIdentifierDictionary dict) throws FieldNotFoundException, InvalidIndexException
- {
- super(dict);
-
- systemIndex = dict.getFieldIndex("system");
- barrelIndex = dict.getFieldIndex("barrel");
-
- barrelId = makeBarrelId(BARREL);
- endcapPositiveId = makeBarrelId(ENDCAP_POSITIVE);
- endcapNegativeId = makeBarrelId(ENDCAP_NEGATIVE);
-
- vtxId = makeSubsysId(VTX);
- sitId = makeSubsysId(SIT);
- tpcId = makeSubsysId(TPC);
- ecalId = makeSubsysId(ECAL);
- hcalId = makeSubsysId(HCAL);
- muonId = makeSubsysId(MUON);
- forwardId = makeSubsysId(FORWARD);
- lumiId = makeSubsysId(LUMI);
- }
-
- private IIdentifier makeSubsysId(int system) throws InvalidIndexException
- {
- IExpandedIdentifier expid =
- new ExpandedIdentifier(getIdentifierDictionary().getNumberOfFields());
- expid.setValue(systemIndex, system);
- IIdentifier id = pack(expid);
- return id;
- }
-
- private IIdentifier makeSubsysId(int system, int barrel) throws InvalidIndexException
- {
- IExpandedIdentifier expid =
- new ExpandedIdentifier(getIdentifierDictionary().getNumberOfFields());
- expid.setValue(systemIndex, system);
- expid.setValue(barrelIndex, barrel);
- IIdentifier id = pack(expid);
- return id;
- }
-
-
- private IIdentifier makeBarrelId(int barrel) throws InvalidIndexException
- {
- IExpandedIdentifier expid =
- new ExpandedIdentifier(getIdentifierDictionary().getNumberOfFields());
- expid.setValue(barrelIndex, barrel);
- IIdentifier id = pack(expid);
- return id;
- }
-
-
- private boolean compareSystem(IIdentifier id, int system)
- {
- try {
- return unpack(id).getValue(systemIndex) == system;
- }
- catch (InvalidIndexException x)
- {
- throw new RuntimeException(x);
- }
- }
-
- public IIdentifier getBarrelId()
- {
- return barrelId;
- }
-
- public IIdentifier getEndcapPositiveId()
- {
- return endcapPositiveId;
- }
-
- public IIdentifier getEndcapNegativeId()
- {
- return endcapNegativeId;
- }
-
- public IIdentifier getVtxId()
- {
- return vtxId;
- }
-
- public IIdentifier getVtxBarrelId()
- {
- return vtxBarrelId;
- }
-
- public IIdentifier getVtxEndcapPositiveId()
- {
- return vtxEndcapPositiveId;
- }
-
- public IIdentifier getVtxEndcapNegativeId()
- {
- return vtxEndcapNegativeId;
- }
-
- public IIdentifier getSitId()
- {
- return sitId;
- }
-
- public IIdentifier getSitBarrelId()
- {
- return sitBarrelId;
- }
-
- public IIdentifier getSitEndcapPositiveId()
- {
- return sitEndcapPositiveId;
- }
-
- public IIdentifier getSitEndcapNegativeId()
- {
- return sitEndcapNegativeId;
- }
-
- public IIdentifier getTpcId()
- {
- return tpcId;
- }
-
- public IIdentifier getEcalId()
- {
- return ecalId;
- }
-
- public IIdentifier getEcalBarrelId()
- {
- return ecalBarrelId;
- }
-
- public IIdentifier getEcalEndcapNegativeId()
- {
- return ecalEndcapNegativeId;
- }
-
- public IIdentifier getEcalEndcapPositiveId()
- {
- return ecalEndcapPositiveId;
- }
-
- public IIdentifier getHcalId()
- {
- return hcalId;
- }
-
- public IIdentifier getHcalBarrelId()
- {
- return hcalBarrelId;
- }
-
- public IIdentifier getHcalEndcapNegativeId()
- {
- return hcalEndcapNegativeId;
- }
-
- public IIdentifier getHcalEndcapPositiveId()
- {
- return hcalEndcapPositiveId;
- }
-
- public IIdentifier getMuonId()
- {
- return muonId;
- }
-
- public IIdentifier getMuonBarrelId()
- {
- return muonBarrelId;
- }
-
- public IIdentifier getMuonEndcapNegativeId()
- {
- return muonEndcapNegativeId;
- }
-
- public IIdentifier getMuonEndcapPositiveId()
- {
- return muonEndcapPositiveId;
- }
-
- public IIdentifier getFowardId()
- {
- return forwardId;
- }
-
- public IIdentifier getLumiId()
- {
- return lumiId;
- }
-
- public boolean isBarrel(IIdentifier i)
- {
- try {
- return unpack(i).getValue(barrelIndex) == BARREL;
- }
- catch (InvalidIndexException x)
- {
- throw new RuntimeException(x);
- }
- }
-
- public boolean isEndcap(IIdentifier i)
- {
- return isEndcapPositive(i) || isEndcapNegative(i);
- }
-
- public boolean isEndcapPositive(IIdentifier i)
- {
- try {
- return unpack(i).getValue(barrelIndex) == ENDCAP_POSITIVE;
- }
- catch (InvalidIndexException x)
- {
- throw new RuntimeException(x);
- }
- }
-
- public boolean isEndcapNegative(IIdentifier i)
- {
- try {
- return unpack(i).getValue(barrelIndex) == ENDCAP_NEGATIVE;
- }
- catch (InvalidIndexException x)
- {
- throw new RuntimeException(x);
- }
- }
-
- public boolean isTracker(IIdentifier i)
- {
- return isVtx(i) || isTpc(i) || isSit(i);
- }
-
- public boolean isTrackerBarrel(IIdentifier i)
- {
- return isTracker(i) && isBarrel(i);
- }
-
- public boolean isTrackerEndcapPositive(IIdentifier i)
- {
- return isTracker(i) && isEndcapPositive(i);
- }
-
- public boolean isTrackerEndcapNegative(IIdentifier i)
- {
- return isTracker(i) && isEndcapNegative(i);
- }
-
- public boolean isCalorimeter(IIdentifier i)
- {
- return isEcal(i) || isHcal(i) || isMuon(i) || isForward(i) || isLumi(i);
- }
-
- public boolean isCalorimeterBarrel(IIdentifier i)
- {
- return isCalorimeter(i) && isBarrel(i);
- }
-
- public boolean isCalorimeterEndcapPositive(IIdentifier i)
- {
- return isCalorimeter(i) && isEndcapPositive(i);
- }
-
- public boolean isCalorimeterEndcapNegative(IIdentifier i)
- {
- return isCalorimeter(i) && isEndcapNegative(i);
- }
-
- public boolean isVtx(IIdentifier i)
- {
- return compareSystem(i,VTX);
- }
-
- public boolean isVtxBarrel(IIdentifier i)
- {
- return isVtx(i) && isBarrel(i);
- }
-
- public boolean isVtxEndcap(IIdentifier i)
- {
- return compareSystem(i,VTX) && isEndcap(i);
- }
-
- public boolean isVtxEndcapPositive(IIdentifier i)
- {
- return isVtx(i) && isEndcapPositive(i);
- }
-
- public boolean isVtxEndcapNegative(IIdentifier i)
- {
- return isVtx(i) && isEndcapNegative(i);
- }
-
- public boolean isSit(IIdentifier i)
- {
- return compareSystem(i,SIT);
- }
-
- public boolean isSitBarrel(IIdentifier i)
- {
- return isSit(i) && isBarrel(i);
- }
-
- public boolean isSitEndcap(IIdentifier i)
- {
- return isSit(i) && isEndcap(i);
- }
-
- public boolean isSitEndcapPositive(IIdentifier i)
- {
- return isSit(i) && isEndcapPositive(i);
- }
-
- public boolean isSitEndcapNegative(IIdentifier i)
- {
- return isSit(i) && isEndcapNegative(i);
- }
-
- public boolean isTpc(IIdentifier i)
- {
- return compareSystem(i,TPC);
- }
-
- public boolean isEcal(IIdentifier i)
- {
- return compareSystem(i,ECAL);
- }
-
- public boolean isEcalBarrel(IIdentifier i)
- {
- return isEcal(i) && isBarrel(i);
- }
-
- public boolean isEcalEndcap(IIdentifier i)
- {
- return compareSystem(i,ECAL) && isEndcap(i);
- }
-
- public boolean isEcalEndcapPositive(IIdentifier i)
- {
- return isEcal(i) && isEndcapPositive(i);
- }
-
- public boolean isEcalEndcapNegative(IIdentifier i)
- {
- return isEcal(i) && isEndcapNegative(i);
- }
-
- public boolean isHcal(IIdentifier i)
- {
- return compareSystem(i,HCAL);
- }
-
- public boolean isHcalBarrel(IIdentifier i)
- {
- return isHcal(i) && isBarrel(i);
- }
-
- public boolean isHcalEndcap(IIdentifier i)
- {
- return isHcal(i) && isEndcap(i);
- }
-
- public boolean isHcalEndcapPositive(IIdentifier i)
- {
- return isHcal(i) && isEndcapPositive(i);
- }
-
- public boolean isHcalEndcapNegative(IIdentifier i)
- {
- return isHcal(i) && isEndcapNegative(i);
- }
-
- public boolean isMuon(IIdentifier i)
- {
- return compareSystem(i,MUON);
- }
-
- public boolean isMuonBarrel(IIdentifier i)
- {
- return isMuon(i) && isBarrel(i);
- }
-
- public boolean isMuonEndcap(IIdentifier i)
- {
- return isMuon(i) && isEndcap(i);
- }
-
- public boolean isMuonEndcapPositive(IIdentifier i)
- {
- return isMuon(i) && isEndcapPositive(i);
- }
-
- public boolean isMuonEndcapNegative(IIdentifier i)
- {
- return isMuon(i) && isMuonEndcapNegative(i);
- }
-
- public boolean isForward(IIdentifier i)
- {
- return compareSystem(i,FORWARD);
- }
-
- public boolean isLumi(IIdentifier i)
- {
- return compareSystem(i,LUMI);
- }
-}
\ No newline at end of file