Author: [log in to unmask] Date: Tue Mar 3 17:58:35 2015 New Revision: 2236 Log: Add method that returns the SVT channel ID given a FEB/Hybrid ID and physical channel number. Modified: java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtChannel.java Modified: java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtChannel.java ============================================================================= --- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtChannel.java (original) +++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtChannel.java Tue Mar 3 17:58:35 2015 @@ -3,6 +3,8 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; + +import org.lcsim.conditions.ConditionsManager.ConditionsNotFoundException; import org.hps.conditions.database.Converter; import org.hps.conditions.database.Field; @@ -25,8 +27,9 @@ /** * Find channels that match a DAQ pair (FEB ID, FEB Hybrid ID). - * @param pair The DAQ pair. - * @return The channels matching the DAQ pair or null if not found. + * + * @param pair : The DAQ pair consiting of a FEB ID and FEB Hybrid ID. + * @return The channels matching the DAQ pair or null if not found. */ @Override public Collection<SvtChannel> find(Pair<Integer, Integer> pair) { @@ -40,10 +43,33 @@ } return channels; } + + /** + * Get the SVT channel ID associated with a given + * FEB ID/Hybrid ID/physical channel. + * + * @param febID : The FEB ID + * @param febHybridID : The FEB hybrid ID + * @param channel : The physical channel number + * @return The SVT channel ID + * @throws {@link RuntimeException} if the channel ID can't be found + */ + public int findChannelID(int febID, int febHybridID, int channel) { + for (SvtChannel svtChannel : this) { + if (svtChannel.getFebID() == febID + && svtChannel.getFebHybridID() == febHybridID + && svtChannel.getChannel() == channel) { + return svtChannel.getChannelID(); + } + } + //throw new RuntimeException("Channel ID couldn't be found"); + return -1; + } } /** - * Get the FEB ID. + * Get the FEB ID associated with this SVT channel ID. + * * @return The FEB ID. */ @Field(names = {"feb_id"}) @@ -52,7 +78,8 @@ } /** - * Get the FEB hybrid ID. + * Get the FEB hybrid ID associated with this SVT channel ID. + * * @return The FEB hybrid ID. */ @Field(names = {"feb_hybrid_id"}) @@ -74,4 +101,4 @@ SvtChannel channel = (SvtChannel) o; return getChannelID() == channel.getChannelID() && getFebID() == channel.getFebID() && getFebHybridID() == channel.getFebHybridID() && getChannel() == channel.getChannel(); } -} +}