1 added + 3 modified, total 4 files
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-31 02:07:09 UTC (rev 144)
+++ java/trunk/hps-java/src/main/java/org/lcsim/hps/recon/tracking/gbl/GBLOutput.java 2014-02-03 02:19:47 UTC (rev 145)
@@ -297,6 +297,12 @@
file.printNonMeasDir(strip.v());
file.printNormalDir(strip.w());
+ //GBLDATA
+ stripData.setU(strip.u());
+ stripData.setV(strip.v());
+ stripData.setW(strip.w());
+
+
//Print track direction at intercept
Hep3Vector tDir = HelixUtils.Direction(htf, s);
double phi = htf.phi0() - s/htf.R();
@@ -304,6 +310,13 @@
file.printStripTrackDir(Math.sin(phi),Math.sin(lambda));
file.printStripTrackDirFull(tDir);
+ //GBLDATA
+ stripData.setTrackDir(tDir);
+ stripData.setTrackPhi(phi);
+
+
+
+
//Print residual in measurement system
// start by find the distance vector between the center and the track position
@@ -323,6 +336,10 @@
Hep3Vector res_err_meas = new BasicHep3Vector(strip.du(),(strip.vmax() - strip.vmin()) / Math.sqrt(12),10.0/Math.sqrt(12));
file.printStripMeas(m_meas.x());
+
+ //GBLDATA
+ stripData.setMeas(strip.umeas());
+ stripData.setTrackPos(trkpos_meas);
// residual in measurement frame
Hep3Vector res_meas = VecOp.sub(m_meas, trkpos_meas);
@@ -330,6 +347,11 @@
file.printStripMeasRes(res_meas.x(),res_err_meas.x());
file.printStripMeasResTruth(resTruth_meas.x(),res_err_meas.x());
+ //GBLDATA
+ stripData.setMeasErr(res_err_meas.x());
+
+
+
if(_debug>0) System.out.printf("layer %d uRes %.10f\n",strip.layer(),res_meas.x());
// sim hit residual
@@ -385,6 +407,8 @@
//print scatterer to file
file.printStripScat(scatAngle);
+ //GBLDATA
+ stripData.setScatterAngle(scatAngle);
++istrip;
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-31 02:07:09 UTC (rev 144)
+++ java/trunk/hps-java/src/main/java/org/lcsim/hps/recon/tracking/gbl/GBLOutputDriver.java 2014-02-03 02:19:47 UTC (rev 145)
@@ -84,8 +84,6 @@
truthRes = new TruthResiduals(bfield);
truthRes.setDebug(_debug);
truthRes.setHideFrame(hideFrame);
- //FieldMap.printFieldMap();
-
}
@@ -134,6 +132,7 @@
List<GBLStripClusterData> gblStripDataListAll = new ArrayList<GBLStripClusterData>();
List<GBLStripClusterData> gblStripDataList = new ArrayList<GBLStripClusterData>();
List<LCRelation> gblTrackToStripClusterRelationListAll = new ArrayList<LCRelation>();
+ List<LCRelation> trackToGBLTrackRelationListAll = new ArrayList<LCRelation>();
gbl.printNewEvent(iEvent,gbl.get_B().z());
@@ -144,10 +143,14 @@
//GBLDATA
GBLTrackData gblTrackData = new GBLTrackData(iTrack);
gblTrackDataList.add(gblTrackData);
+
+ //print to text file
gbl.printTrackID(iTrack);
gbl.printGBL(trk,gblTrackData,gblStripDataList,mcParticles,simTrackerHits,this.isMC);
//GBLDATA
+ //add relation to normal track object
+ trackToGBLTrackRelationListAll.add(new MyLCRelation(trk,gblTrackData));
// add strip clusters to lists
for(GBLStripClusterData gblStripClusterData : gblStripDataList) {
// add all strip clusters from this track to output list
@@ -167,7 +170,10 @@
event.put("GBLTrackData", gblTrackDataList, GBLTrackData.class, 0);
event.put("GBLStripClusterData", gblStripDataListAll, GBLStripClusterData.class, 0);
event.put("GBLTrackToStripData", gblTrackToStripClusterRelationListAll, LCRelation.class, 0);
+ event.put("TrackToGBLTrack", trackToGBLTrackRelationListAll, LCRelation.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/GBLStripClusterData.java 2014-01-31 02:07:09 UTC (rev 144)
+++ java/trunk/hps-java/src/main/java/org/lcsim/hps/recon/tracking/gbl/GBLStripClusterData.java 2014-02-03 02:19:47 UTC (rev 145)
@@ -1,5 +1,8 @@
package org.lcsim.hps.recon.tracking.gbl;
+import hep.physics.vec.BasicHep3Vector;
+import hep.physics.vec.Hep3Vector;
+
import org.lcsim.event.GenericObject;
import org.lcsim.hps.recon.tracking.gbl.GBLOutput.PerigeeParams;
@@ -17,7 +20,28 @@
private static class GBLDOUBLE {
public static final int PATH3D = 0;
public static final int PATH = 1;
- public static final int BANK_DOUBLE_SIZE = 2;
+ public static final int UX = 2;
+ public static final int UY = 3;
+ public static final int UZ = 4;
+ public static final int VX = 5;
+ public static final int VY = 6;
+ public static final int VZ = 7;
+ public static final int WX = 8;
+ public static final int WY = 9;
+ public static final int WZ = 10;
+ public static final int TDIRX = 11;
+ public static final int TDIRY = 12;
+ public static final int TDIRZ = 13;
+ public static final int TPHI = 14;
+ public static final int UMEAS = 15;
+ public static final int TPOSU = 16;
+ public static final int TPOSV = 17;
+ public static final int TPOSW = 18;
+ public static final int UMEASERR = 19;
+ public static final int MSANGLE = 20;
+
+ public static final int BANK_DOUBLE_SIZE = 21;
+
}
// array holding the integer data
private int bank_int[] = new int[GBLINT.BANK_INT_SIZE];
@@ -75,11 +99,159 @@
return getDoubleVal(GBLDOUBLE.PATH3D);
}
+
+ /**
+ * Set and get u vector for this strip sensor
+ */
+ public void setU(Hep3Vector u) {
+ bank_double[GBLDOUBLE.UX] = u.x();
+ bank_double[GBLDOUBLE.UY] = u.y();
+ bank_double[GBLDOUBLE.UZ] = u.z();
+ }
+ public Hep3Vector getU() {
+ return new BasicHep3Vector(getUx(),getUy(),getUz());
+ }
+ public double getUx() {
+ return getDoubleVal(GBLDOUBLE.UX);
+ }
+ public double getUy() {
+ return getDoubleVal(GBLDOUBLE.UY);
+ }
+ public double getUz() {
+ return getDoubleVal(GBLDOUBLE.UZ);
+ }
+ /**
+ * Set and get v vector for this strip sensor
+ */
+
+ public void setV(Hep3Vector v) {
+ bank_double[GBLDOUBLE.VX] = v.x();
+ bank_double[GBLDOUBLE.VY] = v.y();
+ bank_double[GBLDOUBLE.VZ] = v.z();
+ }
+ public Hep3Vector getV() {
+ return new BasicHep3Vector(getVx(),getVy(),getVz());
+ }
+ public double getVx() {
+ return getDoubleVal(GBLDOUBLE.VX);
+ }
+ public double getVy() {
+ return getDoubleVal(GBLDOUBLE.VY);
+ }
+ public double getVz() {
+ return getDoubleVal(GBLDOUBLE.VZ);
+ }
+
+ /**
+ * Set and get w vector for this strip sensor
+ */
+
+ public void setW(Hep3Vector v) {
+ bank_double[GBLDOUBLE.WX] = v.x();
+ bank_double[GBLDOUBLE.WY] = v.y();
+ bank_double[GBLDOUBLE.WZ] = v.z();
+ }
+ public Hep3Vector getW() {
+ return new BasicHep3Vector(getWx(),getWy(),getWz());
+ }
+ public double getWx() {
+ return getDoubleVal(GBLDOUBLE.WX);
+ }
+ public double getWy() {
+ return getDoubleVal(GBLDOUBLE.WY);
+ }
+ public double getWz() {
+ return getDoubleVal(GBLDOUBLE.WZ);
+ }
+
+ /**
+ * Set track direction at this cluster
+ *
+ * @param tDir
+ */
+ public void setTrackDir(Hep3Vector v) {
+ bank_double[GBLDOUBLE.TDIRX] = v.x();
+ bank_double[GBLDOUBLE.TDIRY] = v.y();
+ bank_double[GBLDOUBLE.TDIRZ] = v.z();
+ }
+ public Hep3Vector getTrackDirection() {
+ return new BasicHep3Vector(getTx(),getTy(),getTz());
+ }
+ public double getTx() {
+ return getDoubleVal(GBLDOUBLE.TDIRX);
+ }
+ public double getTy() {
+ return getDoubleVal(GBLDOUBLE.TDIRY);
+ }
+ public double getTz() {
+ return getDoubleVal(GBLDOUBLE.TDIRY);
+ }
+
+ public void setTrackPhi(double phi) {
+ bank_double[GBLDOUBLE.TPHI] = phi;
+ }
+ public double getTrackPhi() {
+ return getDoubleVal(GBLDOUBLE.TPHI);
+ }
+
+ public void setMeas(double umeas) {
+ bank_double[GBLDOUBLE.UMEAS] = umeas;
+ }
+ public double getMeas() {
+ return getDoubleVal(GBLDOUBLE.UMEAS);
+ }
+ public void setMeasErr(double x) {
+ bank_double[GBLDOUBLE.UMEASERR] = x;
+ }
+ public double getMeasErr() {
+ return getDoubleVal(GBLDOUBLE.UMEASERR);
+ }
+
+
+ /**
+ * Set track position in local frame
+ * @param trkpos_meas
+ */
+ public void setTrackPos(Hep3Vector trkpos_meas) {
+ bank_double[GBLDOUBLE.TPOSU] = trkpos_meas.x();
+ bank_double[GBLDOUBLE.TPOSV] = trkpos_meas.y();
+ bank_double[GBLDOUBLE.TPOSW] = trkpos_meas.z();
+ }
+
+ public Hep3Vector getTrackPos() {
+ return new BasicHep3Vector(getTrackPosU(),getTrackPosV(),getTrackPosW());
+ }
+
+ public double getTrackPosU() {
+ return getDoubleVal(GBLDOUBLE.TPOSU);
+ }
+
+ public double getTrackPosV() {
+ return getDoubleVal(GBLDOUBLE.TPOSV);
+ }
+
+ public double getTrackPosW() {
+ return getDoubleVal(GBLDOUBLE.TPOSW);
+ }
+
+ public void setScatterAngle(double scatAngle) {
+ bank_double[GBLDOUBLE.MSANGLE] = scatAngle;
+ }
+
+ public double getScatterAngle() {
+ return getDoubleVal(GBLDOUBLE.MSANGLE);
+ }
+
+
+
+
+
+
/*
* The functions below are all overide from
* @see org.lcsim.event.GenericObject#getNInt()
@@ -113,5 +285,7 @@
return false;
}
+
+
}
java/trunk/hps-java/src/main/resources/org/lcsim/hps/steering/recon
--- java/trunk/hps-java/src/main/resources/org/lcsim/hps/steering/recon/GBLReco.lcsim (rev 0)
+++ java/trunk/hps-java/src/main/resources/org/lcsim/hps/steering/recon/GBLReco.lcsim 2014-02-03 02:19:47 UTC (rev 145)
@@ -0,0 +1,85 @@
+<lcsim xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
+ xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcsim/1.0/lcsim.xsd">
+ <inputFiles>
+ </inputFiles>
+ <control>
+ <numberOfEvents>10000</numberOfEvents>
+ <printInputFiles>true</printInputFiles>
+ <printDriversDetailed>true</printDriversDetailed>
+ </control>
+ <execute>
+ <driver name="EventMarkerDriver"/>
+ <driver name="CalibrationDriver"/>
+ <driver name="RawTrackerHitSensorSetup"/>
+ <driver name="BadChannelFilter" />
+ <driver name="RawTrackerHitFitterDriver" />
+ <driver name="TrackerHitDriver"/>
+ <driver name="HelicalTrackHitDriver"/>
+ <driver name="TrackerReconDriver"/>
+ <driver name="EcalRawConverter" />
+ <driver name="EcalClusterer" />
+ <driver name="GBLDriver"/>
+ <!--<driver name="LCIOWriter"/>-->
+ </execute>
+
+ <drivers>
+ <driver name="GBLDriver"
+ type="org.lcsim.hps.recon.tracking.gbl.GBLOutputDriver">
+ <debug>0</debug>
+ <hideFrame>true</hideFrame>
+ <isMC>${isMC}</isMC>
+ <gblFileName>gblinput.txt</gblFileName>
+ </driver>
+
+
+<!-- Reconstruction drivers below -->
+
+
+
+ <driver name="CalibrationDriver" type="org.lcsim.hps.conditions.CalibrationDriver">
+ <runNumber>1351</runNumber>
+ </driver>
+ <driver name="EventMarkerDriver"
+ type="org.lcsim.job.EventMarkerDriver">
+ <eventInterval>100</eventInterval>
+ </driver>
+ <driver name="RawTrackerHitSensorSetup" type="org.lcsim.recon.tracking.digitization.sisim.config.RawTrackerHitSensorSetup"/>
+ <driver name="BadChannelFilter" type="org.lcsim.hps.recon.tracking.SVTBadChannelFilterDriver" />
+ <driver name="RawTrackerHitFitterDriver" type="org.lcsim.hps.recon.tracking.HPSRawTrackerHitFitterDriver">
+ <fitAlgorithm>Analytic</fitAlgorithm>
+ <correctT0Shift>false</correctT0Shift>
+ </driver>
+ <driver name="TrackerHitDriver" type="org.lcsim.hps.recon.tracking.DataTrackerHitDriver" />
+ <driver name="HelicalTrackHitDriver"
+ type="org.lcsim.hps.recon.tracking.HelicalTrackHitDriver">
+ <debug>false</debug>
+ <maxSeperation>20.0</maxSeperation>
+ <tolerance>1.0</tolerance>
+ </driver>
+ <driver name="TrackerReconDriver"
+ type="org.lcsim.hps.recon.tracking.TrackerReconDriver">
+ <debug>false</debug>
+ <strategyResource>/org/lcsim/hps/recon/tracking/strategies/HPS-TestRun-357.xml</strategyResource>
+ <!-- <strategyResource>/org/lcsim/hps/recon/tracking/strategies/${strategy}.xml</strategyResource>-->
+ </driver>
+ <driver name="EcalRawConverter" type="org.lcsim.hps.recon.ecal.EcalRawConverterDriver">
+ <ecalCollectionName>EcalCalHits</ecalCollectionName>
+ </driver>
+ <driver name="EcalClusterer" type="org.lcsim.hps.recon.ecal.EcalClusterer">
+ <ecalName>Ecal</ecalName>
+ <ecalCollectionName>EcalCalHits</ecalCollectionName>
+ </driver>
+<!--
+ <driver name="LCIOWriter"
+ type="org.lcsim.util.loop.LCIODriver">
+ <outputFilePath>${outputFile}.slcio</outputFilePath>
+ </driver>
+-->
+
+
+
+
+
+
+ </drivers>
+</lcsim>
\ No newline at end of file
SVNspam 0.1