Author: [log in to unmask] Date: Thu Sep 17 11:27:29 2015 New Revision: 3627 Log: Compact svt header data container Added: java/trunk/tracking/src/main/java/org/hps/readout/svt/SvtHeaderDataInfo.java Added: java/trunk/tracking/src/main/java/org/hps/readout/svt/SvtHeaderDataInfo.java ============================================================================= --- java/trunk/tracking/src/main/java/org/hps/readout/svt/SvtHeaderDataInfo.java (added) +++ java/trunk/tracking/src/main/java/org/hps/readout/svt/SvtHeaderDataInfo.java Thu Sep 17 11:27:29 2015 @@ -0,0 +1,119 @@ +/** + * + */ +package org.hps.readout.svt; + +import org.freehep.graphicsio.swf.SWFAction.GetMember; +import org.lcsim.event.GenericObject; + +/** + * @author Per Hansson Adrian <[log in to unmask]> + * + */ +public class SvtHeaderDataInfo implements GenericObject { + + private final int num; + private final int header; + private final int tail; + private int[] multisampleheader; + + + + public SvtHeaderDataInfo(int num, int header, int tail) { + this.num = num; + this.header = header; + this.tail = tail; + } + + public SvtHeaderDataInfo(int num, int header, int tail, int[] multisampleheaders) { + this.num = num; + this.header = header; + this.tail = tail; + this.multisampleheader = multisampleheaders; + } + + public void setMultisampleHeaders(int[] multisampleheaders) { + this.multisampleheader = multisampleheaders; + } + + public int[] getMultisampleHeaders() { + return this.multisampleheader; + } + + public int getMultisampleHeader(int index) { + if( index >= getMultisampleHeaders().length || index < 0) + throw new ArrayIndexOutOfBoundsException(index); + return this.multisampleheader[index]; + } + + public int getNum() { + return this.num; + } + + public int getTail() { + return this.tail; + } + + public int getHeader() { + return this.header; + } + + @Override + public int getNInt() { + return 3 + multisampleheader.length; + } + + @Override + public int getNFloat() { + return 0; + } + + @Override + public int getNDouble() { + return 0; + } + + @Override + public int getIntVal(int index) { + int value; + switch (index) { + case 0: + value = getNum(); + break; + case 1: + value = getHeader(); + break; + case 2: + value = getTail(); + break; + default: + if( (index-3) >= getMultisampleHeaders().length ) + throw new RuntimeException("Invalid index " + Integer.toString(index)); + else + value = getMultisampleHeader(index -3); + break; + } + return value; + } + + + @Override + public float getFloatVal(int index) { + throw new ArrayIndexOutOfBoundsException(); + } + + + @Override + public double getDoubleVal(int index) { + throw new ArrayIndexOutOfBoundsException(); + } + + + @Override + public boolean isFixedSize() { + return true; + } + + + +}