Commit in hps-java/src/main on MAIN
resources/org/lcsim/hps/steering/MPAlignment.lcsim+104-261.1 -> 1.2
java/org/lcsim/hps/users/phansson/RunMPAlignment.java+3-31.12 -> 1.13
                                 /MPAlignmentParameters.java+13-871.17 -> 1.18
java/org/lcsim/hps/recon/tracking/TrackUtils.java+2-21.9 -> 1.10
+122-118
4 modified files
Updates to alignment code.

hps-java/src/main/resources/org/lcsim/hps/steering
MPAlignment.lcsim 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- MPAlignment.lcsim	7 Sep 2012 22:42:53 -0000	1.1
+++ MPAlignment.lcsim	14 Nov 2012 22:08:23 -0000	1.2
@@ -1,65 +1,70 @@
 <lcsim xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" 
        xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcsim/1.0/lcsim.xsd">
+    <inputFiles>
+        <!--<fileRegExp baseDir="./../data/mc/v3" >egs.*filt.*recon.*</fileRegExp>-->
+        <!--<fileRegExp baseDir="./../data/mc/SVT-CF" >.*</fileRegExp>-->
+        <!--<fileRegExp baseDir="./../data/mc/SVT-CF-THINSI" >.*</fileRegExp>-->
+    </inputFiles>
     <control>
-        <numberOfEvents>-1</numberOfEvents>
-        <printInputFiles>false</printInputFiles>
+        <numberOfEvents>10000</numberOfEvents>
+        <printInputFiles>true</printInputFiles>
         <printDriversDetailed>true</printDriversDetailed>
     </control>    
     <execute>
-
-     
         <driver name="EventMarkerDriver"/>
         <driver name="HPSCalibrationDriver"/>
-        <driver name="RawTrackerHitSensorSetup"/>
+        <driver name="RawTrackerHitSensorSetup"/> 
         <driver name="RawTrackerHitFitterDriver" />
         <driver name="TrackerHitDriver"/>
         <driver name="TrackerReconDriver"/>
         <driver name="EcalRawConverter" />
         <driver name="EcalClusterer" />
-   <!-- <driver name="TrackingReconstructionPlots"/> -->
+<!--    <driver name="TrackingReconstructionPlots"/> -->
+<!--    <driver name="MCParticlePlots"/> -->
+<!--    <driver name="TruthMomentumAnalysis"/> -->
+        <driver name="HelicalTrackHitResidualsDriver"/>
         <driver name="MPAlignment"/> 
-        <driver name="ExtrapolatorAnalysis"/> 
-
-<!--
-        <driver name="LCIOWriter"/>
+<!--    <driver name="LCIOWriter"/> -->
         <driver name="CleanupDriver"/>
--->
 
 
     </execute>    
 
     <drivers>
-
-          <driver name="MPAlignment" 
+        <driver name="MPAlignment" 
                 type="org.lcsim.hps.users.phansson.RunMPAlignment">
                 <residualLimitFileName>/Users/phansson/work/HPS/software/reco/hps-java/src/main/java/org/lcsim/hps/users/phansson/residualLimits.txt</residualLimitFileName>
                 <debug>false</debug>
-                <hideFrame>true</hideFrame>
-                <outputPlotFileName>mpalignment.aida</outputPlotFileName>
-                <resLayer1MinY>-1.0</resLayer1MinY>
+                <hideFrame>false</hideFrame>
+                <milleFile>${milleFile}</milleFile>
+                <outputPlotFileName></outputPlotFileName>
 	</driver>
+        <driver name="TruthMomentumAnalysis" 
+                type="org.lcsim.hps.users.phansson.TruthMomentumResolutionDriver">
+                <hideFrame>false</hideFrame>
+                <debug>false</debug>
+         </driver>
+         <driver name="MCParticlePlots" type="org.lcsim.hps.analysis.ecal.HPSMCParticlePlotsDriver" />
      	<driver name="TrackingReconstructionPlots" type="org.lcsim.hps.monitoring.svt.TrackingReconstructionPlots">
                 <outputPlots>trackingPlots.aida</outputPlots>
         </driver>
-        <driver name="ExtrapolatorAnalysis" type="org.lcsim.hps.users.mgraham.TrackExtrapolationAnalysis">
-                <hideFrame>true</hideFrame>
-                <outputPlotFileName>extrapolatoranalysis.aida</outputPlotFileName>
-        </driver>
         <driver name="CleanupDriver" 
                 type="org.lcsim.recon.tracking.digitization.sisim.config.ReadoutCleanupDriver">
                 <collectionNames>TrackerHits SVTRawTrackerHits  SVTFittedRawTrackerHits</collectionNames>
         </driver>
-        <driver name="EcalMonitoringPlots" type="org.lcsim.hps.monitoring.ecal.EcalMonitoringPlots"/>
-        <driver name="SVTOccupancyPlots" type="org.lcsim.hps.monitoring.svt.SensorOccupancyPlotsDriver">
-            <rawTrackerHitCollectionName>SVTRawTrackerHits</rawTrackerHitCollectionName>
-            <eventRefreshRate>1</eventRefreshRate>
+        <driver name="HelicalTrackHitResidualsDriver" type="org.lcsim.hps.users.phansson.HelicalTrackHitResidualsDriver">
+            <debug>false</debug>
+            <hideFrame>false</hideFrame>
         </driver>
-        
 
+        
 
 
 
-        <driver name="HPSCalibrationDriver" type="org.lcsim.hps.monitoring.HPSCalibrationDriver"/>   
+        
+        <driver name="HPSCalibrationDriver" type="org.lcsim.hps.monitoring.HPSCalibrationDriver">
+                <runNumber>1351</runNumber>
+        </driver>
         <driver name="EventMarkerDriver"
                 type="org.lcsim.job.EventMarkerDriver">
             <eventInterval>1000</eventInterval>
@@ -95,5 +100,78 @@
 
 
 
+
+
+
+
+
+
+
+
+
+
+        <driver name="EcalReadout"
+                        type="org.lcsim.hps.recon.ecal.HPSEcalFADCReadoutDriver">
+            <readoutPeriod>4.0</readoutPeriod>
+            <coincidenceWindow>2</coincidenceWindow>
+            <ecalName>Ecal</ecalName>
+            <ecalCollectionName>EcalHits</ecalCollectionName>
+            <ecalRawCollectionName>EcalRawHits</ecalRawCollectionName>
+            <triggerThreshold>80</triggerThreshold>
+            <readoutThreshold>50</readoutThreshold>
+        </driver>
+
+        <driver name="EcalConverter"
+                        type="org.lcsim.hps.recon.ecal.HPSEcalConverterDriver">
+            <rawCollectionName>EcalRawHits</rawCollectionName>
+            <ecalCollectionName>EcalCorrectedHits</ecalCollectionName>
+            <scale>1</scale>
+        </driver>	
+        
+        <driver name="EcalTriggerFilter" type="org.lcsim.hps.recon.ecal.HPSEcalTriggerFilterDriver">
+            <inputCollection>EcalCorrectedHits</inputCollection>
+            <outputCollection>EcalFilteredHits</outputCollection>
+        </driver>
+
+        <driver name="EcalCTPClusterer"
+                        type="org.lcsim.hps.recon.ecal.HPSEcalCTPClusterer">
+            <ecalName>Ecal</ecalName>
+            <clusterWindow>32.0</clusterWindow>
+            <ecalCollectionName>EcalFilteredHits</ecalCollectionName>
+        </driver>
+
+        <driver name="EcalTrigger"
+                        type="org.lcsim.hps.recon.ecal.TestRunTriggerDriver">
+            <clusterCollectionName>EcalClusters</clusterCollectionName>
+            <deadTime>10</deadTime>
+        </driver>	
+        <driver name="SimpleSVTReadout" type="org.lcsim.hps.recon.tracking.SimpleSvtReadout">
+        </driver>
+
+        <driver name="SVTReadout" type="org.lcsim.hps.recon.tracking.apv25.SvtReadout">
+            <debug>false</debug>
+            <pedestalRun>false</pedestalRun>
+            <triggerLatencyTime>288</triggerLatencyTime>
+        </driver>
+        
+        <driver name="Digitization" type="org.lcsim.hps.recon.tracking.RearTransitionModule" />
+
+        <driver name="DataProcessing" type="org.lcsim.hps.recon.tracking.TestRunDataProcessingModule" >
+            <enablePileUpCut>true</enablePileUpCut>
+            <enableThresholdCut>true</enableThresholdCut>
+            <noiseThreshold>2</noiseThreshold>
+            <numberOfSamplesAboveTreshold>3</numberOfSamplesAboveTreshold>
+            <numberOfSamplesToReadOut>6</numberOfSamplesToReadOut>
+        </driver>
+
+        <driver name="ClockDriver"
+                        type="org.lcsim.hps.util.ClockDriver">
+        </driver>
+
+        <driver name="TestRunReconToLcio" type="org.lcsim.hps.evio.TestRunTriggeredReconToLcio">
+            <!--<outputFile>${outputFile}</outputFile>-->
+        </driver>
+
+
     </drivers>   
 </lcsim>
\ No newline at end of file

hps-java/src/main/java/org/lcsim/hps/users/phansson
RunMPAlignment.java 1.12 -> 1.13
diff -u -r1.12 -r1.13
--- RunMPAlignment.java	7 Nov 2012 20:55:50 -0000	1.12
+++ RunMPAlignment.java	14 Nov 2012 22:08:23 -0000	1.13
@@ -44,13 +44,13 @@
     private String _type = "LOCAL"; //GLOBAL OR LOCAL RESIDUALS
      
     private String simTrackerHitCollectionName = "TrackerHits";
-    private String outputMilleFile = "alignMP.txt";
+    private String milleFile = "alignMP.txt";
     
     public void setDebug(boolean v) {
         this._debug = v;
     }
     public void setMilleFile(String filename) {
-        outputMilleFile = filename;
+        milleFile = filename;
     }
     public void setOutputPlotFileName(String filename) {
         outputPlotFileName = filename;
@@ -72,7 +72,7 @@
     @Override
     public void detectorChanged(Detector detector) {
         
-        ap = new MPAlignmentParameters(this.outputMilleFile);
+        ap = new MPAlignmentParameters(milleFile);
         ap.setDebug(_debug);
         ap.setType(this._type);
         ap.setHideFrame(hideFrame);

hps-java/src/main/java/org/lcsim/hps/users/phansson
MPAlignmentParameters.java 1.17 -> 1.18
diff -u -r1.17 -r1.18
--- MPAlignmentParameters.java	7 Nov 2012 20:55:23 -0000	1.17
+++ MPAlignmentParameters.java	14 Nov 2012 22:08:23 -0000	1.18
@@ -151,7 +151,8 @@
         String half = hitsOnTrack.get(0).getPosition()[2]>0 ? "top" : "bottom";
         pWriter.printf("TRACK %s (%d)\n",half,itrack);
         aida.cloud1D("Track Chi2 "+ half).fill(track.getChi2());
-        if(_DEBUG) System.out.printf("%s: track %d has %d hits\n",this.getClass().getSimpleName(),itrack,hitsOnTrack.size());
+        aida.cloud1D("Track Chi2ndf "+ half).fill(track.getChi2()/track.getNDF());
+        if(_DEBUG) System.out.printf("%s: track %d (chi2=%.2f ndf=%d) has %d hits\n",this.getClass().getSimpleName(),itrack,track.getChi2(),track.getNDF(),hitsOnTrack.size());
         for (TrackerHit hit : hitsOnTrack) {
             
             HelicalTrackHit htc = (HelicalTrackHit) hit;
@@ -730,82 +731,6 @@
         
         
         
-        /*
-        
-        
-        //****************************************************************************
-        //Derivatives of the predicted hit position qp for a rotation alpha around the x-axis
-        
-        dqp_da_TRACK.setElement(0, 0, _alignUtils.dx_dalpha());
-        dqp_da_TRACK.setElement(1, 0, _alignUtils.dy_dalpha());
-        dqp_da_TRACK.setElement(2, 0, _alignUtils.dz_dalpha());
-
-        
-        //Put it into a matrix to be able to transform easily
-        //BasicMatrix _dqp_da_TRACK = FillMatrix(dqp_da_TRACK, 3, 1);
-        //Transform derivatives to sensor frame!
-        dfdp = (BasicMatrix) MatrixOp.mult(trkToStrip, dqp_da_TRACK);
-        //Add it to the global parameter object
-        GlobalParameter gp_ra = new GlobalParameter("Rotation alpha",side,layer,2000,100,true);
-        gp_ra.setDfDp(dfdp);
-        _glp.add(gp_ra);
-        if (_DEBUG) {
-            gp_ra.print();
-            System.out.println("Track frame dfdp: " + dqp_da_TRACK);
-            //System.out.printf("dfdp = %5.5f     %5.5f   %5.5f   GL%d  name: %s\n", gp.dfdp(0), gp.dfdp(1), gp.dfdp(2), gp.getLabel(),gp.getName());
-        }
-
-        
-        //****************************************************************************
-        //Calculate derivatives for a residual in x,y,z-direction for rotation beta (rotation around beamline direction y )
-        
-        dqp_da_TRACK.setElement(0, 0, _alignUtils.dx_dbeta());
-        dqp_da_TRACK.setElement(1, 0, _alignUtils.dy_dbeta());
-        dqp_da_TRACK.setElement(2, 0, _alignUtils.dz_dbeta());
-
-        
-        //Put it into a matrix to be able to transform easily
-        //BasicMatrix _dqp_da_TRACK = FillMatrix(dqp_da_TRACK, 3, 1);
-        //Transform derivatives to sensor frame!
-        dfdp = (BasicMatrix) MatrixOp.mult(trkToStrip, dqp_da_TRACK);
-        //Add it to the global parameter object
-        GlobalParameter gp_rb = new GlobalParameter("Rotation beta",side,layer,2000,200,true);
-        gp_rb.setDfDp(dfdp);
-        _glp.add(gp_rb);
-        if (_DEBUG) {
-            gp_rb.print();
-            System.out.println("Track frame dfdp: " + dqp_da_TRACK);
-            //System.out.printf("dfdp = %5.5f     %5.5f   %5.5f   GL%d  name: %s\n", gp.dfdp(0), gp.dfdp(1), gp.dfdp(2), gp.getLabel(),gp.getName());
-        }
-        
-        
-        //****************************************************************************
-        //Calculate derivatives for a residual in x,y,z-direction for rotation gamma (rotation around beamline direction z )
-        
-        dqp_da_TRACK.setElement(0, 0, _alignUtils.dx_dgamma());
-        dqp_da_TRACK.setElement(1, 0, _alignUtils.dy_dgamma());
-        dqp_da_TRACK.setElement(2, 0, _alignUtils.dz_dgamma());
-
-        
-        //Put it into a matrix to be able to transform easily
-        //BasicMatrix _dqp_da_TRACK = FillMatrix(dqp_da_TRACK, 3, 1);
-        //Transform derivatives to sensor frame!
-        dfdp = (BasicMatrix) MatrixOp.mult(trkToStrip, dqp_da_TRACK);
-        //Add it to the global parameter object
-        GlobalParameter gp_rg = new GlobalParameter("Rotation gamma",side,layer,2000,300,true);
-        gp_rg.setDfDp(dfdp);
-        _glp.add(gp_rg);
-        if (_DEBUG) {
-            gp_rg.print();
-            System.out.println("Track frame dfdp: " + dqp_da_TRACK);
-            //System.out.printf("dfdp = %5.5f     %5.5f   %5.5f   GL%d  name: %s\n", gp.dfdp(0), gp.dfdp(1), gp.dfdp(2), gp.getLabel(),gp.getName());
-        }
-        
-        */
-        
-        
-        
-        
 
     }
 
@@ -947,10 +872,13 @@
     
 
     private void PrintStripResiduals(HelicalTrackStrip strip) {
+        String side = SvtUtils.getInstance().isTopLayer((SiSensor) ((RawTrackerHit)strip.rawhits().get(0)).getDetectorElement()) ? "top" : "bottom";        
         if (_DEBUG) {
             System.out.printf("%s: --- Alignment Results for this Strip ---\n",this.getClass().getSimpleName());
-            String side = SvtUtils.getInstance().isTopLayer((SiSensor) ((RawTrackerHit)strip.rawhits().get(0)).getDetectorElement()) ? "top" : "bottom";
-            System.out.printf("%s: Strip layer %4d in %s  at origin %s\n",this.getClass().getSimpleName(), strip.layer(), side, strip.origin().toString());
+            
+            String sensor_type = SvtUtils.getInstance().isAxial((SiSensor) ((RawTrackerHit)strip.rawhits().get(0)).getDetectorElement()) ? "axial" : "stereo";
+            System.out.printf("%s: Strip layer %4d is %s in %s  at origin %s\n",this.getClass().getSimpleName(), strip.layer(),sensor_type, side, strip.origin().toString());
+            System.out.printf("%s: u=%s v=%s w=%s\n",this.getClass().getSimpleName(), strip.u().toString(),strip.v().toString(),strip.w().toString());
             System.out.printf("%s: Residuals (u,v,w) : %5.5e %5.5e %5.5e\n",this.getClass().getSimpleName(), _resid[0], _resid[1], _resid[2]);
             System.out.printf("%s: Errors (u,v,w)    : %5.5e %5.5e %5.5e\n",this.getClass().getSimpleName(), _error[0], _error[1], _error[2]);
             String[] q = {"d0", "z0", "slope", "phi0", "R"};
@@ -970,7 +898,7 @@
         // Loop over the three directions u,v,w and print residuals and derivatives
         //String[] d = {"u","v","w"};
         String[] d = {"u"}; //phansson use only u direction!
-        String side;
+        
         int s;
         for(int j=0;j<1;++j){
             side = "bottom";
@@ -1014,12 +942,6 @@
                 aida.histogram1D("reserr_"+d[j]+"_layer" + strip.layer() + "_" + side).fill(_error[j]);    
                 aida.histogram1D("respull_"+d[j]+"_layer" + strip.layer() + "_" + side).fill(_resid[j]/_error[j]);    
             
-//                double phi0 = _trk.phi0();
-//                double R = _trk.R();
-//                double xint = trackUtil.calculateHelixInterceptXPlane(_trk, strip);
-//                //double xint = strip.origin().x();
-//                double pathLength = HelixUtils.PathToXPlane(_trk, xint, 0, 0).get(0);
-//                double phi = -s/R + phi0;
             
                 aida.histogram2D("respull_slope_"+d[j]+"_layer" + strip.layer() + "_" + side).fill(_trk.slope(),_resid[j]/_error[j]);    
             }
@@ -1069,13 +991,17 @@
         String[] side = {"top","bottom"};
 
         IPlotter plotter_chi2 = af.createPlotterFactory().create();
-        plotter_chi2.createRegions(2,1,0);
+        plotter_chi2.createRegions(2,2);
         plotter_chi2.setTitle("Track Chi2");
         plotterFrame.addPlotter(plotter_chi2);
         ICloud1D hchi2_top = aida.cloud1D("Track Chi2 top");
         ICloud1D hchi2_bot = aida.cloud1D("Track Chi2 bottom");
+        ICloud1D hchi2ndf_top = aida.cloud1D("Track Chi2ndf top");
+        ICloud1D hchi2ndf_bot = aida.cloud1D("Track Chi2ndf bottom");
         plotter_chi2.region(0).plot(hchi2_top);
         plotter_chi2.region(1).plot(hchi2_bot);
+        plotter_chi2.region(2).plot(hchi2ndf_top);
+        plotter_chi2.region(3).plot(hchi2ndf_bot);
         
         
         String[] direction = {"u"};

hps-java/src/main/java/org/lcsim/hps/recon/tracking
TrackUtils.java 1.9 -> 1.10
diff -u -r1.9 -r1.10
--- TrackUtils.java	7 Nov 2012 20:57:12 -0000	1.9
+++ TrackUtils.java	14 Nov 2012 22:08:23 -0000	1.10
@@ -24,7 +24,7 @@
 /**
  * 
  * @author Omar Moreno <[log in to unmask]>
- * @version $Id: TrackUtils.java,v 1.9 2012/11/07 20:57:12 phansson Exp $
+ * @version $Id: TrackUtils.java,v 1.10 2012/11/14 22:08:23 phansson Exp $
  * TODO: Switch to JLab coordinates
  */
 
@@ -474,7 +474,7 @@
             double s_wrong = track.PathMap().get(hth);
             //This is how I do it with HelicalTrackFits
             double s = HelixUtils.PathToXPlane(track, hth.x(), 0, 0).get(0);
-            System.out.printf("x %f s %f smap %f\n",hth.x(),s,s_wrong);
+            //System.out.printf("x %f s %f smap %f\n",hth.x(),s,s_wrong);
             Hep3Vector posOnHelix = HelixUtils.PointOnHelix(track, s);
             double resy = hth.y() - posOnHelix.y();
             double erry = includeMS ? wrphi : drphi_res;
CVSspam 0.2.12


Use REPLY-ALL to reply to list

To unsubscribe from the LCD-CVS list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCD-CVS&A=1