Author: [log in to unmask] Date: Fri Dec 12 19:41:17 2014 New Revision: 1711 Log: commit the new class Added: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/HitExtraData.java Added: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/HitExtraData.java ============================================================================= --- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/HitExtraData.java (added) +++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/HitExtraData.java Fri Dec 12 19:41:17 2014 @@ -0,0 +1,91 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.hps.recon.ecal; + +import org.lcsim.event.GenericObject; + +/** + * + * @author Sho Uemura <[log in to unmask]> + * @version $Id: $ + */ +public class HitExtraData implements GenericObject { + + protected final int mode; + protected int[] data; + + public HitExtraData(int mode, int[] data) { + this.mode = mode; + this.data = data; + } + + @Override + public int getNInt() { + return 1 + data.length; + } + + @Override + public int getNFloat() { + return 0; + } + + @Override + public int getNDouble() { + return 0; + } + + @Override + public int getIntVal(int i) { + switch (i) { + case 0: + return mode; + default: + return data[i - 1]; + } + } + + @Override + public float getFloatVal(int i) { + throw new ArrayIndexOutOfBoundsException(); + } + + @Override + public double getDoubleVal(int i) { + throw new ArrayIndexOutOfBoundsException(); + } + + @Override + public boolean isFixedSize() { + return true; + } + + public static class Mode7Data extends HitExtraData { + + private static final int ECAL_PULSE_INTEGRAL_HIGHRESTDC_MODE = 4; //FADC mode 7 + + public Mode7Data(int amplLow, int amplHigh) { + super(ECAL_PULSE_INTEGRAL_HIGHRESTDC_MODE, null); + int[] newData = {amplLow, amplHigh}; + this.data = newData; + } + + public int getAmplLow() { + return data[0]; + } + + public int getAmplHigh() { + return data[1]; + } + + public static int getAmplLow(GenericObject object) { + return object.getIntVal(1); + } + + public static int getAmplHigh(GenericObject object) { + return object.getIntVal(2); + } + } +}