Print

Print


Author: [log in to unmask]
Date: Thu May  7 10:48:25 2015
New Revision: 2923

Log: (empty)

Modified:
    java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/GblTrackingReconstructionPlots.java
    java/trunk/steering-files/src/main/resources/org/hps/steering/users/phansson/HPSTrackingDefaults.lcsim
    java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/MakeGblTracks.java

Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/GblTrackingReconstructionPlots.java
 =============================================================================
--- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/GblTrackingReconstructionPlots.java	(original)
+++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/GblTrackingReconstructionPlots.java	Thu May  7 10:48:25 2015
@@ -34,7 +34,7 @@
 
 public class GblTrackingReconstructionPlots extends Driver {
     private double _bfield;
-    private static Logger logger = LogUtil.create(HpsGblRefitter.class, new BasicLogFormatter());
+    private static Logger logger = LogUtil.create(GblTrackingReconstructionPlots.class, new BasicLogFormatter());
     private AIDA aida = AIDA.defaultInstance();
     private String outputPlots = null;
     private final String trackCollectionName = "MatchedTracks";
@@ -47,16 +47,19 @@
     IHistogram1D phiDiff;
     IHistogram1D slopeDiff;
     IHistogram1D rDiff;
+    IHistogram1D pDiff;
     IHistogram1D d0Diff2;
     IHistogram1D z0Diff2;
     IHistogram1D phiDiff2;
     IHistogram1D slopeDiff2;
     IHistogram1D rDiff2;
+    IHistogram1D pDiff2;
     IHistogram1D d0DiffGbl;
     IHistogram1D z0DiffGbl;
     IHistogram1D phiDiffGbl;
     IHistogram1D slopeDiffGbl;
     IHistogram1D rDiffGbl;
+    IHistogram1D pDiffGbl;
     IPlotter plotter1;
     IPlotter plotter2;
     IPlotter plotter3;
@@ -102,6 +105,7 @@
         slopeDiff = aida.histogram1D("slopeDiff", 25, -0.01, 0.01);
         phiDiff = aida.histogram1D("phiDiff", 25, -0.01, 0.01);
         rDiff = aida.histogram1D("rDiff", 25, -0.0001, 0.0001);
+        pDiff = aida.histogram1D("pDiff", 25, -0.1, 0.1);
 
         plotter2 = fac.createPlotterFactory().create("Truth comparison");
         plotter2.setStyle(style1);
@@ -111,6 +115,7 @@
         plotter2.region(2).plot(phiDiff);
         plotter2.region(3).plot(slopeDiff);
         plotter2.region(4).plot(rDiff);
+        plotter2.region(5).plot(pDiff);
         plotter2.show();
         
         
@@ -119,6 +124,7 @@
         slopeDiffGbl = aida.histogram1D("slopeDiffGbl", 25, -0.01, 0.01);
         phiDiffGbl = aida.histogram1D("phiDiffGbl", 25, -0.01, 0.01);
         rDiffGbl = aida.histogram1D("rDiffGbl", 25, -0.0001, 0.0001);
+        pDiffGbl = aida.histogram1D("pDiffGbl", 25, -0.1, 0.1);
 
         
         plotter3 = fac.createPlotterFactory().create("Truth comparison GBL");
@@ -129,6 +135,7 @@
         plotter3.region(2).plot(phiDiffGbl);
         plotter3.region(3).plot(slopeDiffGbl);
         plotter3.region(4).plot(rDiffGbl);
+        plotter3.region(5).plot(pDiffGbl);
         plotter3.show();
         
         
@@ -137,6 +144,7 @@
         slopeDiff2 = aida.histogram1D("slopeDiff2", 25, -0.01, 0.01);
         phiDiff2 = aida.histogram1D("phiDiff2", 25, -0.01, 0.01);
         rDiff2 = aida.histogram1D("rDiff2", 25, -0.0001, 0.0001);
+        pDiff2 = aida.histogram1D("pDiff2", 25, -0.1, 0.1);
 
         
         plotter4 = fac.createPlotterFactory().create("Seed vs GBL");
@@ -147,6 +155,7 @@
         plotter4.region(2).plot(phiDiff2);
         plotter4.region(3).plot(slopeDiff2);
         plotter4.region(4).plot(rDiff2);
+        plotter4.region(5).plot(pDiff2);
         plotter4.show();
         
         
@@ -209,27 +218,21 @@
             SeedTrack st = (SeedTrack)track;
             SeedCandidate seed = st.getSeedCandidate();
             HelicalTrackFit htf = seed.getHelix(); 
-//            Track seedTrack = null;
-//            for(Track trk : tracks) {
-//                SeedTrack st2 = (SeedTrack)trk;
-//                SeedCandidate s2 = st2.getSeedCandidate();
-//                logger.info("");
-//                if(seed.equals(s2)) {
-//                    seedTrack = trk;
-//                }
-//            }
-//            if(seedTrack!=null) {
-//                throw new RuntimeException("could;t find the seed track from GBL track");
-//            }
             logger.info(htf.toString());
             HelicalTrackFit pHTF = null;
+            double pTruth = -1.;
+            double pTrackTruth = -1.;
             if(trackTruthMatch.get(track)==null) {
                 logger.info("no truth mc particle for this track");
             } else {
-                pHTF = TrackUtils.getHTF(trackTruthMatch.get(track),-1*_bfield);
+                MCParticle part = trackTruthMatch.get(track);
+                pTruth = part.getMomentum().magnitude();
+                pHTF = TrackUtils.getHTF(part,Math.abs(_bfield));
+                pTrackTruth = pHTF.p(Math.abs(_bfield));
                 logger.info("part: " + trackTruthMatch.get(track).getPDGID());
                 logger.info("pHTF:");
                 logger.info(pHTF.toString());
+                logger.info("pTruth="+pTruth+" pTrackTruth="+pTrackTruth);
             }
             
             
@@ -240,12 +243,14 @@
             double C = htf.curvature();
             double phi = htf.phi0();
             double slope = htf.slope();
-
+            double p = htf.p(Math.abs(_bfield));
             double d0Gbl = track.getTrackStates().get(0).getD0();
             double z0Gbl = track.getTrackStates().get(0).getZ0();
             double CGbl = track.getTrackStates().get(0).getOmega();
             double phiGbl = track.getTrackStates().get(0).getPhi();
             double slopeGbl = track.getTrackStates().get(0).getTanLambda();
+            double pGbl = getMag(track.getTrackStates().get(0).getMomentum());
+            logger.info("pGbl="+pGbl);
 
             if(pHTF!=null) {
                 double d0Truth = pHTF.dca();
@@ -259,12 +264,14 @@
                 phiDiff.fill(phi-phiTruth);
                 rDiff.fill(C-CTruth);
                 slopeDiff.fill(slope-slopeTruth);
+                pDiff.fill(p-pTruth);
 
                 d0DiffGbl.fill(d0Gbl-d0Truth);
                 z0DiffGbl.fill(z0Gbl-z0Truth);
                 phiDiffGbl.fill(phiGbl-phiTruth);
                 rDiffGbl.fill(CGbl-CTruth);
                 slopeDiffGbl.fill(slopeGbl-slopeTruth);
+                pDiffGbl.fill(pGbl-pTruth);
             }
 
 
@@ -273,6 +280,7 @@
             phiDiff2.fill(phi-phiGbl);
             rDiff2.fill(C-CGbl);
             slopeDiff2.fill(slope-slopeGbl);
+            pDiff2.fill(p-pGbl);
             
 
         }
@@ -290,6 +298,10 @@
         
     }
     
+    
+    private double getMag(double p[]) {
+        return Math.sqrt(p[0]*p[0] + p[1]*p[1] + p[2]*p[2]);
+    }
     
     public void endOfData() {
         if (outputPlots != null) {

Modified: java/trunk/steering-files/src/main/resources/org/hps/steering/users/phansson/HPSTrackingDefaults.lcsim
 =============================================================================
--- java/trunk/steering-files/src/main/resources/org/hps/steering/users/phansson/HPSTrackingDefaults.lcsim	(original)
+++ java/trunk/steering-files/src/main/resources/org/hps/steering/users/phansson/HPSTrackingDefaults.lcsim	Thu May  7 10:48:25 2015
@@ -4,10 +4,10 @@
     <control>
         <printInputFiles>false</printInputFiles>
         <printDriversDetailed>false</printDriversDetailed>
-        <numberOfEvents>1000</numberOfEvents>
+        <!--<numberOfEvents>1000</numberOfEvents>-->
     </control>
     <execute>
-        <driver name="ConditionsDriver"/>
+<!--        <driver name="ConditionsDriver"/> -->
         <driver name="EventMarkerDriver"/>   
         <driver name="TrackerDigiDriver"/>
         <driver name="HelicalTrackHitDriver"/>
@@ -16,7 +16,7 @@
         <driver name="GBLDriver"/>
         <driver name="GblTrackingReconstructionPlots"/>
         <driver name="LCIOWriter"/>
-<!--        <driver name="AidaSaveDriverRoot" /> -->
+        <driver name="AidaSaveDriverRoot" /> 
     </execute>
     <drivers>
 

Modified: java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/MakeGblTracks.java
 =============================================================================
--- java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/MakeGblTracks.java	(original)
+++ java/trunk/tracking/src/main/java/org/hps/recon/tracking/gbl/MakeGblTracks.java	Thu May  7 10:48:25 2015
@@ -13,6 +13,7 @@
 
 import org.hps.recon.tracking.gbl.matrix.SymMatrix;
 import org.hps.recon.tracking.gbl.matrix.Vector;
+import org.hps.util.BasicLogFormatter;
 import org.lcsim.constants.Constants;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.Track;
@@ -22,6 +23,7 @@
 import org.lcsim.lcio.LCIOConstants;
 import org.lcsim.recon.tracking.seedtracker.SeedCandidate;
 import org.lcsim.recon.tracking.seedtracker.SeedTrack;
+import org.lcsim.util.log.LogUtil;
 
 
 /**
@@ -34,7 +36,7 @@
 
 
     private String _TrkCollectionName = "GblTracks";
-    private static final Logger logger = Logger.getLogger(MakeGblTracks.class.getName());
+    private static Logger logger = LogUtil.create(MakeGblTracks.class, new BasicLogFormatter());
     
     /**
      * Creates a new instance of MakeTracks.
@@ -44,7 +46,7 @@
          //logger.setUseParentHandlers(false);
         //Handler handler = new StreamHandler(System.out, new SimpleFormatter());
         //logger.addHandler(handler);
-        logger.setLevel(Level.WARNING);
+        logger.setLevel(Level.INFO);
 //        try {
 //            logger.addHandler(new FileHandler(MakeGblTracks.class.getSimpleName()+".log"));
 //        } catch (SecurityException | IOException e) {
@@ -152,7 +154,8 @@
         double phi0 = helix.phi0();
         double slope = helix.slope();
         double p = helix.p(bfield);
-        double qOverP = traj.get_seed().getCharge()/p;
+        double q = traj.get_seed().getCharge();
+        double qOverP = q/p;
         
         // get corrections from GBL fit
         Vector locPar = new Vector(5);
@@ -177,19 +180,23 @@
         double z0_corr = corrPer.z();
         double z0_gbl = z0 + z0_corr;
         
+        //calculate new phi0
+        double phi0_gbl = phi0 + xTPrimeCorr;
+        
+        //calculate new slope
+        double lambda_gbl = Math.atan(slope) + yTPrimeCorr;
+        double slope_gbl = Math.tan( lambda_gbl );
+
         // calculate new curvature
-        //      return self.track.qOverP(bfac) + self.curvCorr()
+        
         double qOverP_gbl = qOverP + qOverPCorr;
-        double pt_gbl = 1.0/qOverP_gbl * helix.sth();
+        double pt_gbl = Math.abs(1.0/qOverP_gbl) * Math.sin((Math.PI/2.0-lambda_gbl));
         double C_gbl = Constants.fieldConversion * bfield / pt_gbl;
         //make sure sign is not changed
         C_gbl = Math.signum(helix.curvature())*Math.abs(C_gbl); 
         
-        //calculate new phi0
-        double phi0_gbl = phi0 + xTPrimeCorr;
-        
-        //calculate new slope
-        double slope_gbl = Math.tan( Math.atan(slope) + yTPrimeCorr);
+        logger.info("qOverP="+qOverP+" qOverPCorr="+qOverPCorr+" qOverP_gbl="+qOverP_gbl+" ==> pGbl="+1.0/qOverP_gbl);
+        
         
         double parameters_gbl[] = new double[5];
         parameters_gbl[HelicalTrackFit.dcaIndex] = d0_gbl;