java/trunk/hps-java/src/main/java/org/lcsim/hps/recon/tracking/gbl
--- java/trunk/hps-java/src/main/java/org/lcsim/hps/recon/tracking/gbl/GBLEventData.java (rev 0)
+++ java/trunk/hps-java/src/main/java/org/lcsim/hps/recon/tracking/gbl/GBLEventData.java 2014-01-29 00:07:25 UTC (rev 125)
@@ -0,0 +1,77 @@
+package org.lcsim.hps.recon.tracking.gbl;
+
+import org.lcsim.event.GenericObject;
+
+public class GBLEventData implements GenericObject {
+
+ /*
+ *
+ * Interface enumerator to access the correct data
+ *
+ */
+ private static class GBLINT {
+ public static final int RUNNR = 0;
+ public static final int BANK_INT_SIZE = 1;
+ }
+ // array holding the integer data
+ private int bank_int[] = new int[GBLINT.BANK_INT_SIZE];
+
+
+ /**
+ * Constructor with event number as parameter
+ * @param eventNumber the event number
+ *
+ */
+ public GBLEventData(int eventNumber) {
+ setRunNr(eventNumber);
+ }
+
+ public void setRunNr(int val) {
+ bank_int[GBLINT.RUNNR] = val;
+ }
+
+ public int getRunNr() {
+ return this.getIntVal(GBLINT.RUNNR);
+ }
+
+
+ @Override
+ public int getNInt() {
+ return GBLINT.BANK_INT_SIZE;
+ }
+
+ @Override
+ public int getNFloat() {
+ return 0;
+ }
+
+ @Override
+ public int getNDouble() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public int getIntVal(int index) {
+ return bank_int[index];
+ }
+
+ @Override
+ public float getFloatVal(int index) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public double getDoubleVal(int index) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public boolean isFixedSize() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+}
java/trunk/hps-java/src/main/java/org/lcsim/hps/recon/tracking/gbl
--- java/trunk/hps-java/src/main/java/org/lcsim/hps/recon/tracking/gbl/GBLOutput.java 2014-01-28 23:48:24 UTC (rev 124)
+++ java/trunk/hps-java/src/main/java/org/lcsim/hps/recon/tracking/gbl/GBLOutput.java 2014-01-29 00:07:25 UTC (rev 125)
@@ -108,7 +108,7 @@
- void printGBL(Track trk, List<MCParticle> mcParticles, List<SimTrackerHit> simTrackerHits, boolean isMC) {
+ void printGBL(Track trk, GBLTrackData gtd, List<MCParticle> mcParticles, List<SimTrackerHit> simTrackerHits, boolean isMC) {
SeedTrack st = (SeedTrack)trk;
SeedCandidate seed = st.getSeedCandidate();
@@ -140,6 +140,9 @@
}
}
+ //GBLDATA
+ // TODO add LCRelation to MC particle
+
// Get track parameters from MC particle
HelicalTrackFit htfTruth = isMC ? TrackUtils.getHTF(mcp,-1.0*this._B.z()) : null;
@@ -152,6 +155,9 @@
PerigeeParams perParTruth = new PerigeeParams(htfTruth);
file.printPerTrackParam(perPar);
file.printPerTrackParamTruth(perParTruth);
+
+ //GBLDATA
+ gtd.setPerigeeTrackParameters(perPar);
// Get curvilinear parameters
ClParams clPar = new ClParams(htf);
java/trunk/hps-java/src/main/java/org/lcsim/hps/recon/tracking/gbl
--- java/trunk/hps-java/src/main/java/org/lcsim/hps/recon/tracking/gbl/GBLOutputDriver.java 2014-01-28 23:48:24 UTC (rev 124)
+++ java/trunk/hps-java/src/main/java/org/lcsim/hps/recon/tracking/gbl/GBLOutputDriver.java 2014-01-29 00:07:25 UTC (rev 125)
@@ -80,7 +80,7 @@
truthRes = new TruthResiduals(bfield);
truthRes.setDebug(_debug);
truthRes.setHideFrame(hideFrame);
- FieldMap.printFieldMap();
+ //FieldMap.printFieldMap();
}
@@ -123,19 +123,31 @@
}
}
-
+ //GBLData
+ List<GBLEventData> gds = new ArrayList<GBLEventData>();
+ gds.add(new GBLEventData(event.getEventNumber()));
+
//gbl.printNewEvent(event.getEventNumber());
gbl.printNewEvent(iEvent,gbl.get_B().z());
-
+
+ List<GBLTrackData> gtds = new ArrayList<GBLTrackData>();
+
iTrack = 0;
for (Track trk : selected_tracks) {
if(_debug>0) System.out.printf("%s: Print GBL output for this track\n", this.getClass().getSimpleName());
+ GBLTrackData gtd = new GBLTrackData();
+ gtd.setTrackId(iTrack);
gbl.printTrackID(iTrack);
- gbl.printGBL(trk,mcParticles,simTrackerHits,this.isMC);
+ gbl.printGBL(trk,gtd,mcParticles,simTrackerHits,this.isMC);
totalTracksProcessed++;
+ gtds.add(gtd);
+
++iTrack;
}
+ event.put("GBLEventData", gds, GBLEventData.class, 0);
+ event.put("GBLTrackData", gtds, GBLTrackData.class, 0);
+
++iEvent;
}
java/trunk/hps-java/src/main/java/org/lcsim/hps/recon/tracking/gbl
--- java/trunk/hps-java/src/main/java/org/lcsim/hps/recon/tracking/gbl/GBLTrackData.java (rev 0)
+++ java/trunk/hps-java/src/main/java/org/lcsim/hps/recon/tracking/gbl/GBLTrackData.java 2014-01-29 00:07:25 UTC (rev 125)
@@ -0,0 +1,96 @@
+package org.lcsim.hps.recon.tracking.gbl;
+
+import org.lcsim.event.GenericObject;
+import org.lcsim.hps.recon.tracking.gbl.GBLOutput.PerigeeParams;
+
+public class GBLTrackData implements GenericObject {
+
+ /*
+ *
+ * Interface enumerator to access the correct data
+ *
+ */
+ private static class GBLINT {
+ public static final int TRACKID = 0;
+ public static final int BANK_INT_SIZE = 1;
+ }
+ private static class GBLDOUBLE {
+ public static final int PERKAPPA =0;
+ public static final int PERTHETA = 1;
+ public static final int PERPHI = 2;
+ public static final int PERD0 = 3;
+ public static final int PERZ0 = 4;
+ public static final int BANK_DOUBLE_SIZE = 5;
+ }
+ // array holding the integer data
+ private int bank_int[] = new int[GBLINT.BANK_INT_SIZE];
+ // array holding the double data
+ private double bank_double[] = new double[GBLDOUBLE.BANK_DOUBLE_SIZE];
+
+ /**
+ * Default constructor
+ */
+ public GBLTrackData() {
+ }
+
+ /**
+ * @param set track id to val
+ */
+ public void setTrackId(int val) {
+ bank_int[GBLINT.TRACKID] = val;
+ }
+
+ /**
+ * @return track id for this object
+ */
+ public int getTrackId() {
+ return this.getIntVal(GBLINT.TRACKID);
+ }
+
+ /**
+ * @param perPar is the perigee parameters that is added to object
+ */
+ public void setPerigeeTrackParameters(PerigeeParams perPar) {
+ this.bank_double[GBLDOUBLE.PERKAPPA] = perPar.getKappa();
+ this.bank_double[GBLDOUBLE.PERTHETA] = perPar.getTheta();
+ this.bank_double[GBLDOUBLE.PERPHI] = perPar.getPhi();
+ this.bank_double[GBLDOUBLE.PERD0] = perPar.getD0();
+ this.bank_double[GBLDOUBLE.PERZ0] = perPar.getZ0();
+ }
+
+
+ /*
+ * The functions below are all overide from
+ * @see org.lcsim.event.GenericObject#getNInt()
+ */
+
+ public int getNInt() {
+ return GBLINT.BANK_INT_SIZE;
+ }
+
+ public int getNFloat() {
+ return 0;
+ }
+
+ public int getNDouble() {
+ return GBLDOUBLE.BANK_DOUBLE_SIZE;
+ }
+
+ public int getIntVal(int index) {
+ return bank_int[index];
+ }
+
+ public float getFloatVal(int index) {
+ return 0;
+ }
+
+ public double getDoubleVal(int index) {
+ return bank_double[index];
+ }
+
+ public boolean isFixedSize() {
+ return false;
+ }
+
+
+}