Author: [log in to unmask]
Date: Tue Feb 24 08:15:31 2015
New Revision: 2181
Log:
cleaning up
Modified:
java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/HpsGblRefitter.java
Modified: java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/HpsGblRefitter.java
=============================================================================
--- java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/HpsGblRefitter.java (original)
+++ java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/HpsGblRefitter.java Tue Feb 24 08:15:31 2015
@@ -18,6 +18,7 @@
import org.hps.recon.tracking.gbl.matrix.Matrix;
import org.hps.recon.tracking.gbl.matrix.SymMatrix;
import org.hps.recon.tracking.gbl.matrix.Vector;
+import org.lcsim.constants.Constants;
import org.lcsim.event.EventHeader;
import org.lcsim.event.GenericObject;
import org.lcsim.event.LCRelation;
@@ -92,26 +93,19 @@
protected void process(EventHeader event)
{
Hep3Vector bfieldvec = event.getDetector().getFieldMap().getField(new BasicHep3Vector(0., 0., 1.));
+
double bfield = bfieldvec.y();
- double bfac = 0.0002998 * bfield;
+ //double bfac = 0.0002998 * bfield;
+ double bfac = Constants.fieldConversion * bfield;
+
// get the tracks
-// List<Track> tracks = null;
- if (event.hasCollection(Track.class, trackCollectionName)) {
-// tracks = event.get(Track.class, trackCollectionName);
- if (_debug) {
-// System.out.printf("%s: Event %d has %d tracks\n", this.getClass().getSimpleName(), event.getEventNumber(), tracks.size());
- }
- } else {
+ if (!event.hasCollection(Track.class, trackCollectionName)) {
if (_debug) {
System.out.printf("%s: No tracks in Event %d \n", this.getClass().getSimpleName(), event.getEventNumber());
}
return;
}
-// System.out.println("Tracks from event " + event.getRunNumber());
-// for (Track t : tracks) {
-// System.out.println(t);
-// System.out.println(t.getTrackStates().get(0));
-// }
+
//get the relations to the GBLtracks
if (!event.hasItem(track2GblTrackRelationName)) {
System.out.println("Need Relations " + track2GblTrackRelationName);
@@ -123,6 +117,7 @@
return;
}
+
List<LCRelation> track2GblTrackRelations = event.get(LCRelation.class, track2GblTrackRelationName);
//need a map of GBLTrackData keyed on the Generic object from which it created
Map<GenericObject, GBLTrackData> gblObjMap = new HashMap<GenericObject, GBLTrackData>();
@@ -156,22 +151,12 @@
stripsGblMap.get(gblT).add(sd);
}
}
-
+
+ // loop over the tracks and do the GBL fit
List<FittedGblTrajectory> trackFits = new ArrayList<FittedGblTrajectory>();
int trackNum = 0;
+ logger.info("Trying to fit " + stripsGblMap.size() + " tracks");
for (GBLTrackData t : stripsGblMap.keySet()) {
-
- if(Math.cos(t.getDoubleVal(GBLDOUBLE.PERTHETA))>0) {
- //if(_debug)
- logger.info(" top track");
- continue;
-
- } else {
- logger.info(" bot track");
-
- }
-
-
FittedGblTrajectory traj = fit(stripsGblMap.get(t), bfac);
++trackNum;
if(traj!=null) {
@@ -185,7 +170,15 @@
if(_debug) System.out.printf("%s: GBL fit failed.\n",getClass().getSimpleName());
}
}
- if(_debug) System.out.printf("%s: Save %d/%d GBL fitted tracks in this event.\n",getClass().getSimpleName(),trackFits.size(), trackNum);
+
+ logger.info(event.get(Track.class, trackCollectionName).size() + " tracks in collection \"" + trackCollectionName + "\"");
+ logger.info(gblObjMap.size() + " tracks in gblObjMap");
+ logger.info(gblToSeedMap.size() + " tracks in gblToSeedMap");
+ logger.info(stripsGblMap.size() + " tracks in stripsGblMap");
+ logger.info(trackFits.size() + " fitted GBL tracks before adding to event");
+
+
+
_makeTracks.Process(event, trackFits, bfield);
@@ -428,42 +421,9 @@
for(int i=0; i < milleParameters.size(); ++i) {
logders += labGlobal.get(i) + "\t" + addDer.get(0, i) + "\n";
}
- logger.info("\n"+ logders);
-
+ logger.fine("\n"+ logders);
- /*
- #####
- ## Calculate global derivatives for this point
- # track direction in tracking/global frame
- tDirGlobal = np.array( [ [cosPhi * cosLambda, sinPhi * cosLambda, sinLambda] ] )
- # Cross-check that the input is consistent
- if( np.linalg.norm( tDirGlobal - strip.tDir) > 0.00001):
- print 'ERROR: tDirs are not consistent!'
- sys.exit(1)
- # rotate track direction to measurement frame
- tDirMeas = np.dot( tDirGlobal, np.array([strip.u, strip.v, strip.w]) )
- #tDirMeas = utils.rotateGlToMeas(strip,tDirGlobal)
- normalMeas = np.dot( strip.w , np.array([strip.u, strip.v, strip.w]) )
- #normalMeas = utils.rotateGlToMeas(strip,strip.w)
- # non-measured directions
- vmeas = 0.
- wmeas = 0.
- # calculate and add derivatives to point
- glDers = utils.globalDers(strip.layer,strip.meas,vmeas,wmeas,tDirMeas,normalMeas)
- ders = glDers.getDers(track.isTop())
- labGlobal = ders['labels']
- addDer = ders['ders']
- if debug:
- print 'global derivatives:'
- print labGlobal
- print addDer
- point.addGlobals(labGlobal, addDer)
- #####
-
- */
-
-
- logger.info("uRes " + strip.getId() + " uRes " + uRes + " pred (" + strip.getTrackPos().x() + "," + strip.getTrackPos().y() + "," + strip.getTrackPos().z() + ") s(3D) " + strip.getPath3D());
+ logger.fine("uRes " + strip.getId() + " uRes " + uRes + " pred (" + strip.getTrackPos().x() + "," + strip.getTrackPos().y() + "," + strip.getTrackPos().z() + ") s(3D) " + strip.getPath3D());
//go to next point
s += step;
@@ -500,7 +460,7 @@
aCovariance.print(6, 4);
}
- logger.info("locPar " + aCorrection.toString());
+ logger.fine("locPar " + aCorrection.toString());
// // write to MP binary file
if (writeMilleBinary) {
|