de.unihalle.informatik.MiToBo.tracking.multitarget.datatypes.impl
Class RBMCDASampleInfo<T extends TargetID>

java.lang.Object
  extended by de.unihalle.informatik.MiToBo.tracking.multitarget.datatypes.impl.RBMCDASampleInfo<T>
Type Parameters:
T - type of discrete state variables
All Implemented Interfaces:
Copyable<RBMCDASampleInfo<T>>

public class RBMCDASampleInfo<T extends TargetID>
extends java.lang.Object
implements Copyable<RBMCDASampleInfo<T>>

RBMCDA-sample info object. Holds various information about an RBMCDA-sample.

Author:
Oliver Gress

Field Summary
private  java.util.SortedSet<java.lang.Short> entireTargetIDs
          The targetIDs of all targets that have ever existed up to current time
private  java.util.Vector<java.util.SortedSet<java.lang.Short>> existingTargetIDs
          The targetIDs of the existing target at the specific time
private  java.util.Vector<java.lang.Double> logP_Ccond
          The probability of the association set of any time step represented by this sample conditional on all previous associations in this sample and all observations up to the specific time step: P(C^t | C^{1:t-1}, Z^{1,t}) for all t
private  double logP_Cjoint
          The joint probability of the association sets of all time steps represented by this sample conditional on all observations: P(C^{1-t} | Z^{1,t})
private  java.util.Vector<AbstractMultiState<T>> observations
           
private  java.util.HashMap<java.lang.Short,java.util.SortedSet<PartitGraphNodeID>> tracks
          HashMap of the tracks represented by the sample.
 
Constructor Summary
RBMCDASampleInfo()
           
RBMCDASampleInfo(int capacity)
           
RBMCDASampleInfo(RBMCDASampleInfo<T> sampleinfo)
           
 
Method Summary
 int addCurrentInfo(double logP_C, DataAssociation C, AbstractMultiState<T> observations, java.util.Set<java.lang.Short> existingTargetIDs)
          Add sample info of the current time step
 RBMCDASampleInfo<T> copy()
           
 double getCConditionalProb(int t)
          Get the probability of the associations at time t conditional on the previous associations and all observations up to time t.
 double getCJointProb()
          Get the joint probability of all associations up to 'current time' (see getCurrentTime) conditional on all observations up to that time.
 double getCLogConditionalProb(int t)
          Get the log of probability of the associations at time t conditional on the previous associations and all observations up to time t.
 double getCLogJointProb()
          Get the natural log of joint probability of all associations up to 'current time' (see getCurrentTime) conditional on all observations up to that time.
 int getCurrentTime()
          Get the current time index, i.e. the time index that was assigned to the latest added information
 java.util.SortedSet<java.lang.Short> getEntireTargetIDs()
          Get the targetIDs of all targets that ever existed up to current time.
 java.util.SortedSet<java.lang.Short> getExistingTargetIDs(int t)
          Get the targetIDs of all targets existing at time t.
 AbstractMultiState<T> getObservations(int t)
          Get the observations of time t.
 java.util.SortedSet<PartitGraphNodeID> getTrack(short targetID)
          Get track of target given by targetID up to current time, where targetID may be 0 to obtain the clutter observations (which do not form a track).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

entireTargetIDs

private java.util.SortedSet<java.lang.Short> entireTargetIDs
The targetIDs of all targets that have ever existed up to current time


existingTargetIDs

private java.util.Vector<java.util.SortedSet<java.lang.Short>> existingTargetIDs
The targetIDs of the existing target at the specific time


logP_Ccond

private java.util.Vector<java.lang.Double> logP_Ccond
The probability of the association set of any time step represented by this sample conditional on all previous associations in this sample and all observations up to the specific time step: P(C^t | C^{1:t-1}, Z^{1,t}) for all t


logP_Cjoint

private double logP_Cjoint
The joint probability of the association sets of all time steps represented by this sample conditional on all observations: P(C^{1-t} | Z^{1,t})


observations

private java.util.Vector<AbstractMultiState<T extends TargetID>> observations

tracks

private java.util.HashMap<java.lang.Short,java.util.SortedSet<PartitGraphNodeID>> tracks
HashMap of the tracks represented by the sample. Keys correspond to targetIDs while the key 0 corresponds to observations to clutter. The values are sets of PartitGraphNodeIDs which identify the the associated observations. The partition of a PartitGraphNodeID is the time index, the nodeID is the index of the observation in that time step. The subgraphID is set to the targetID or 0 in case of clutter.

Constructor Detail

RBMCDASampleInfo

public RBMCDASampleInfo()

RBMCDASampleInfo

public RBMCDASampleInfo(int capacity)

RBMCDASampleInfo

public RBMCDASampleInfo(RBMCDASampleInfo<T> sampleinfo)
Method Detail

addCurrentInfo

public int addCurrentInfo(double logP_C,
                          DataAssociation C,
                          AbstractMultiState<T> observations,
                          java.util.Set<java.lang.Short> existingTargetIDs)
Add sample info of the current time step

Parameters:
logP_C - probability of the data association at current time step conditional on the previous associations as well as current and previous observations
C - associations of the current time step
numObservations - number of observations at the current time step
existingTargetIDs - targetIDs of currently existing targets
Returns:
the time index that was assigned for the added information (starting from 0)

copy

public RBMCDASampleInfo<T> copy()
Specified by:
copy in interface Copyable<RBMCDASampleInfo<T extends TargetID>>

getCConditionalProb

public double getCConditionalProb(int t)
Get the probability of the associations at time t conditional on the previous associations and all observations up to time t. This method might throw an ArrayIndexOutOfBounds-Exception if t is larger than 'current time' (see getCurrentTime).


getCJointProb

public double getCJointProb()
Get the joint probability of all associations up to 'current time' (see getCurrentTime) conditional on all observations up to that time.


getCLogConditionalProb

public double getCLogConditionalProb(int t)
Get the log of probability of the associations at time t conditional on the previous associations and all observations up to time t. This method might throw an ArrayIndexOutOfBounds-Exception if t is larger than 'current time' (see getCurrentTime).


getCLogJointProb

public double getCLogJointProb()
Get the natural log of joint probability of all associations up to 'current time' (see getCurrentTime) conditional on all observations up to that time.


getCurrentTime

public int getCurrentTime()
Get the current time index, i.e. the time index that was assigned to the latest added information


getEntireTargetIDs

public java.util.SortedSet<java.lang.Short> getEntireTargetIDs()
Get the targetIDs of all targets that ever existed up to current time. This method might throw an ArrayIndexOutOfBounds-Exception if t is larger than 'current time' (see getCurrentTime).


getExistingTargetIDs

public java.util.SortedSet<java.lang.Short> getExistingTargetIDs(int t)
Get the targetIDs of all targets existing at time t. This method might throw an ArrayIndexOutOfBounds-Exception if t is larger than 'current time' (see getCurrentTime).


getObservations

public AbstractMultiState<T> getObservations(int t)
Get the observations of time t. This method might throw an ArrayIndexOutOfBounds-Exception if t is larger than 'current time' (see getCurrentTime).


getTrack

public java.util.SortedSet<PartitGraphNodeID> getTrack(short targetID)
Get track of target given by targetID up to current time, where targetID may be 0 to obtain the clutter observations (which do not form a track). A track is comprised of all observations associated to the specified target. The PartitGraphNodeID reflects only the time (partition) and index (nodeID) the observation.