Print

Print


Commit in hps-java/src/main on MAIN
java/org/lcsim/HPSDedicatedv3/MultiTrackReco.java+5-41.5 -> 1.6
                             /FastTrackAnalysisDriver.java+3-31.2 -> 1.3
                             /TestVertexing.java+83-391.5 -> 1.6
                             /DarkPhotonLLDriver.java+6-51.2 -> 1.3
resources/DarkPhoton-HPS3pt2-LongLived.xml+26added 1.1
         /DarkPhoton-Axial-HPS3pt2.xml+261.1 -> 1.2
java/org/lcsim/HPSVertexing/BilliorVertex.java+3-21.2 -> 1.3
+152-53
1 added + 6 modified, total 7 files
sync changes

hps-java/src/main/java/org/lcsim/HPSDedicatedv3
MultiTrackReco.java 1.5 -> 1.6
diff -u -r1.5 -r1.6
--- MultiTrackReco.java	10 Nov 2010 17:31:20 -0000	1.5
+++ MultiTrackReco.java	10 Nov 2010 20:08:08 -0000	1.6
@@ -25,7 +25,8 @@
     private AIDA aida = AIDA.defaultInstance();
 
     public MultiTrackReco(double referenceX, double referenceY, double BField, String sAxialfile, String sFinalfile, String sLongLived, List<int[]> stereoPairs, List<Integer> passLayers) {
-        String strategyPrefix = "/nfs/sulky21/g.ec.u12/users/mgraham/AtlasUpgrade/hps-java/src/main/resources/";
+//        String strategyPrefix = "/nfs/sulky21/g.ec.u12/users/mgraham/AtlasUpgrade/hps-java/src/main/resources/";
+        String strategyPrefix = "/Users/mgraham/NetBeansProjects/hps-java/src/main/resources/";
 
 //  Digitization and hit making driver for planar sensors
         TrackerHitDriver_DarkPhoton thd = new TrackerHitDriver_DarkPhoton();
@@ -104,7 +105,7 @@
         stFinal.setTimingPlots(true);
 
         add(stFinal);
-    /*
+
     StripHitsOnTrack shot = new StripHitsOnTrack();
     add(shot);
 
@@ -113,12 +114,12 @@
 
     SeedTracker stLL = new SeedTracker(sLLlist);
     stLL.setInputCollectionName("RemainingHits");
-    stLL.setTrackCollectionName("LLTracks");
+    stLL.setTrkCollectionName("LLTracks");
     stLL.setBField(BField);
     stLL.setTimingPlots(true);
 
 
     add(stLL);
-     */
+     
     }
 }

hps-java/src/main/java/org/lcsim/HPSDedicatedv3
FastTrackAnalysisDriver.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- FastTrackAnalysisDriver.java	10 Nov 2010 17:31:20 -0000	1.2
+++ FastTrackAnalysisDriver.java	10 Nov 2010 20:08:08 -0000	1.3
@@ -91,9 +91,9 @@
         List<RawTrackerHit> rawHits = event.get(RawTrackerHit.class, "RawTrackerHitMaker_RawTrackerHits");
         List<SiTrackerHitStrip1D> stripHits = event.get(SiTrackerHitStrip1D.class, "StripClusterer_SiTrackerHitStrip1D");
 
-        String strategyPrefix = "/nfs/sulky21/g.ec.u12/users/mgraham/AtlasUpgrade/hps-java/src/main/resources/";
-        String sfile = "DarkPhoton-Final.xml";
-        List<SeedStrategy> slist = StrategyXMLUtils.getStrategyListFromFile(new File(strategyPrefix + sfile));
+//        String strategyPrefix = "/nfs/sulky21/g.ec.u12/users/mgraham/AtlasUpgrade/hps-java/src/main/resources/";
+//        String sfile = "DarkPhoton-Final.xml";
+//        List<SeedStrategy> slist = StrategyXMLUtils.getStrategyListFromFile(new File(strategyPrefix + sfile));
         List<HelicalTrackHit> toththits = event.get(HelicalTrackHit.class, "HelicalTrackHits");
         List<HelicalTrackHit> axialhits = event.get(HelicalTrackHit.class, "AxialTrackHits");
 

hps-java/src/main/java/org/lcsim/HPSDedicatedv3
TestVertexing.java 1.5 -> 1.6
diff -u -r1.5 -r1.6
--- TestVertexing.java	10 Nov 2010 17:31:20 -0000	1.5
+++ TestVertexing.java	10 Nov 2010 20:08:08 -0000	1.6
@@ -167,10 +167,10 @@
 
 //        List<HelicalTrackHit> hthits = event.get(HelicalTrackHit.class, "MatchedHTHits");
 //        String sfile = StrategyXMLUtils.getDefaultStrategiesPrefix() + "DarkPhoton-Final.xml";
-        String strategyPrefix = "/nfs/sulky21/g.ec.u12/users/mgraham/AtlasUpgrade/hps-java/src/main/resources/";
-        String sfile = "DarkPhoton-Final.xml";
+//        String strategyPrefix = "/nfs/sulky21/g.ec.u12/users/mgraham/AtlasUpgrade/hps-java/src/main/resources/";
+//        String sfile = "DarkPhoton-Final.xml";
 //        List<SeedStrategy> slist = StrategyXMLUtils.getStrategyListFromResource(sfile);
-        List<SeedStrategy> slist = StrategyXMLUtils.getStrategyListFromFile(new File(strategyPrefix + sfile));
+//        List<SeedStrategy> slist = StrategyXMLUtils.getStrategyListFromFile(new File(strategyPrefix + sfile));
         List<HelicalTrackHit> toththits = event.get(HelicalTrackHit.class, "HelicalTrackHits");
 //        List<HelicalTrackHit> remaininghits = event.get(HelicalTrackHit.class, "RemainingHits");
 
@@ -178,9 +178,11 @@
         RelationalTable hittomc = new BaseRelationalTable(RelationalTable.Mode.MANY_TO_MANY, RelationalTable.Weighting.UNWEIGHTED);
         List<LCRelation> mcrelations = event.get(LCRelation.class, "HelicalTrackMCRelations");
 
-        for (LCRelation relation : mcrelations)
-            if (relation != null && relation.getFrom() != null && relation.getTo() != null)
+        for (LCRelation relation : mcrelations) {
+            if (relation != null && relation.getFrom() != null && relation.getTo() != null) {
                 hittomc.add(relation.getFrom(), relation.getTo());
+            }
+        }
 
 //        RelationalTable hittomcRemaining = new BaseRelationalTable(RelationalTable.Mode.MANY_TO_MANY, RelationalTable.Weighting.UNWEIGHTED);
 //        List<LCRelation> mcrelations = event.get(LCRelation.class, "HelicalTrackMCRelations");
@@ -195,17 +197,17 @@
         //  Create a map between tracks and the associated MCParticle
 //        List<Track> tracklist = event.getTracks();
         List<Track> tracklist = event.get(Track.class, "MatchedTracks");
-//        List<Track> lltracklist = event.get(Track.class, "LLTracks");
+        List<Track> lltracklist = event.get(Track.class, "LLTracks");
 
         RelationalTable trktomcAxial = new BaseRelationalTable(RelationalTable.Mode.MANY_TO_MANY, RelationalTable.Weighting.UNWEIGHTED);
 
         aida.cloud1D("Matched Tracks per Event").fill(tracklist.size());
-//        aida.cloud1D("Long Lived Tracks per Event").fill(lltracklist.size());
+        aida.cloud1D("Long Lived Tracks per Event").fill(lltracklist.size());
         aida.cloud1D("HelicalTrackHits per Event").fill(toththits.size());
         RelationalTable trktomc = new BaseRelationalTable(RelationalTable.Mode.MANY_TO_MANY, RelationalTable.Weighting.UNWEIGHTED);
 //        RelationalTable trktomcLL = new BaseRelationalTable(RelationalTable.Mode.MANY_TO_MANY, RelationalTable.Weighting.UNWEIGHTED);
 
-//        tracklist.addAll(lltracklist);
+        tracklist.addAll(lltracklist);
 
         RelationalTable mcHittomcP = new BaseRelationalTable(RelationalTable.Mode.MANY_TO_MANY, RelationalTable.Weighting.UNWEIGHTED);
 
@@ -213,10 +215,13 @@
         List<List<SimTrackerHit>> simcols = event.get(SimTrackerHit.class);
 
         //  Loop over the SimTrackerHits and fill in the relational table
-        for (List<SimTrackerHit> simlist : simcols)
-            for (SimTrackerHit simhit : simlist)
-                if (simhit.getMCParticle() != null)
+        for (List<SimTrackerHit> simlist : simcols) {
+            for (SimTrackerHit simhit : simlist) {
+                if (simhit.getMCParticle() != null) {
                     mcHittomcP.add(simhit, simhit.getMCParticle());
+                }
+            }
+        }
 
         Map<Track, TrackAnalysis> tkanalMap = new HashMap<Track, TrackAnalysis>();
         Map<Track, StraightLineTrack> sltMap = new HashMap<Track, StraightLineTrack>();
@@ -237,14 +242,14 @@
             double phi0Err = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.phi0Index, HelicalTrackFit.phi0Index));
             double slopeErr = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.slopeIndex, HelicalTrackFit.slopeIndex));
             double curveErr = Math.sqrt(track.getErrorMatrix().e(HelicalTrackFit.curvatureIndex, HelicalTrackFit.curvatureIndex));
-            double chisq=track.getChi2();
+            double chisq = track.getChi2();
             //plot the helix parameters
             aida.cloud1D("d0").fill(d0);
             aida.cloud1D("z0").fill(z0);
             aida.cloud1D("phi0").fill(phi0);
             aida.cloud1D("slope").fill(slope);
             aida.cloud1D("curve").fill(curve);
-             aida.cloud1D("chi2").fill(chisq);
+            aida.cloud1D("chi2").fill(chisq);
 
             double mom[] = track.getMomentum();
 
@@ -292,8 +297,9 @@
             aida.cloud1D(trackdir + "Number of Axial hits for all tracks").fill(nAxial);
             aida.cloud1D(trackdir + "Number of Z hits for all tracks").fill(nZ);
 
-            for (Integer bhit : badLayers)
+            for (Integer bhit : badLayers) {
                 aida.histogram1D(trackdir + "Layer of Bad Hit", nlayers[0], 1, nlayers[0] + 1).fill(bhit);
+            }
 
             //  Generate a normalized histogram after 1000 events
             trk_count++;
@@ -360,7 +366,9 @@
                 String tkresid = "TrackResiduals/";
 
                 int ndaug = 0;
-                if (bestmcp != null) ndaug = bestmcp.getDaughters().size();
+                if (bestmcp != null) {
+                    ndaug = bestmcp.getDaughters().size();
+                }
                 int imain = 0;
             }
         }
@@ -374,8 +382,8 @@
         SpacePoint SP = new SpacePoint(IP);
         List<Track> vlist = new ArrayList<Track>();
         List<BilliorTrack> btlist = new ArrayList<BilliorTrack>();
-        for (Track track1 : tracklist)
-            for (Track track2 : tracklist)
+        for (Track track1 : tracklist) {
+            for (Track track2 : tracklist) {
                 if (track1 != track2 && track1.getCharge() > 0 && track2.getCharge() < 0) {
                     /*
                     vlist.clear();
@@ -485,12 +493,32 @@
                     aida.histogram1D("BilliorVertex Y Pull-- Constrained", 100, -4, 4).fill(bvtxPos.e(1, 0) / Math.sqrt(bvtxCov.e(1, 1)));
                     aida.histogram1D("BilliorVertex Z Pull-- Constrained", 100, -4, 4).fill(bvtxPos.e(2, 0) / Math.sqrt(bvtxCov.e(2, 2)));
 
-                     aida.histogram1D("BilliorVertex Mass  -- Constrained", 100, 0, 0.2).fill(bvertex.getInvMass());
-                     aida.histogram1D("BilliorVertex Mass  -- UnConstrained", 100, 0, 0.2).fill(bvertexUC.getInvMass());
-                     aida.histogram1D("BilliorVertex Mass  -- 2nd Pass", 100, 0, 0.2).fill(bvertex2ndPass.getInvMass());
+                    aida.histogram1D("BilliorVertex Mass  -- Constrained", 100, 0.08, 0.12).fill(bvertex.getInvMass());
+                    aida.histogram1D("BilliorVertex Mass  -- UnConstrained", 100, 0.08, 0.12).fill(bvertexUC.getInvMass());
+                    aida.histogram1D("BilliorVertex Mass  -- 2nd Pass", 100, 0.08, 0.12).fill(bvertex2ndPass.getInvMass());
+
+                    double[] beamsize = {0.001, 0.01, 0.01};
+                    BilliorVertex bsconfit = new BilliorVertex(1.0);
+                    bsconfit.setBeamSize(beamsize);
+                    bsconfit.doBeamSpotConstraint(false);
+                    bsconfit.constrainV0toBeamSpot(true);
+                    bsconfit.tryNewFormalism(btlist);
+                    BasicMatrix bsconvtxPos = (BasicMatrix) bsconfit.getVertexPosition();
+                    BasicMatrix bsconvtxCov = (BasicMatrix) bsconfit.getVertexCovariance();
+
+                    aida.histogram1D("BilliorVertex X  -- BS Constrained", 100, -10, 20).fill(bsconvtxPos.e(0, 0));
+                    aida.histogram1D("BilliorVertex Y -- BS Constrained", 100, -0.4, 0.4).fill(bsconvtxPos.e(1, 0));
+                    aida.histogram1D("BilliorVertex Z -- BS Constrained", 100, -0.4, 0.4).fill(bsconvtxPos.e(2, 0));
+                    aida.histogram1D("BilliorVertex ChiSq -- BS Constrained", 100, -10, 50).fill(bsconfit.getChiSq());
+                    aida.histogram1D("BilliorVertex X Pull -- BS Constrained", 100, -4, 4).fill(bsconvtxPos.e(0, 0) / Math.sqrt(bvtxCov.e(0, 0)));
+                    aida.histogram1D("BilliorVertex Y Pull-- BS Constrained", 100, -4, 4).fill(bsconvtxPos.e(1, 0) / Math.sqrt(bvtxCov.e(1, 1)));
+                    aida.histogram1D("BilliorVertex Z Pull-- BS Constrained", 100, -4, 4).fill(bsconvtxPos.e(2, 0) / Math.sqrt(bvtxCov.e(2, 2)));
 
+                    aida.histogram1D("BilliorVertex Mass  -- BS Constrained", 100, 0.08, 0.12).fill(bsconfit.getInvMass());
                 }
-    
+            }
+        }
+
 
         //  Now loop over all MC Particles
         List<MCParticle> mclist = event.getMCParticles();
@@ -512,7 +540,7 @@
 //            System.out.println("MC pt=" + pt);
             int nhits = findable.LayersHit(mcp);
             Set<SimTrackerHit> mchitlist = mcHittomcP.allTo(mcp);
-            boolean isFindable=findable.InnerTrackerIsFindable(mcp, nlayers[0]-2);
+            boolean isFindable = findable.InnerTrackerIsFindable(mcp, nlayers[0] - 2);
 
             Set<HelicalTrackCross> hitlist = hittomc.allTo(mcp);
 
@@ -536,12 +564,17 @@
                 //it's the A'...let's see if we found both tracks.
                 List<MCParticle> daughters = mcp.getDaughters();
                 for (MCParticle d : daughters) {
-                    if (trktomc.allTo(d).size() == 0) bothreco = false;
-                      if (!findable.InnerTrackerIsFindable(d, nlayers[0]-2))
+                    if (trktomc.allTo(d).size() == 0) {
+                        bothreco = false;
+                    }
+                    if (!findable.InnerTrackerIsFindable(d, nlayers[0] - 2)) {
                         bothfindable = false;
+                    }
                 }
                 double vtxWgt = 0;
-                if (bothreco) vtxWgt = 1.0;
+                if (bothreco) {
+                    vtxWgt = 1.0;
+                }
                 VxEff.fill(mcp.getOriginX(), vtxWgt);
                 VyEff.fill(mcp.getOriginY(), vtxWgt);
                 VzEff.fill(mcp.getOriginZ(), vtxWgt);
@@ -557,20 +590,23 @@
                 int nmulthits = 0;
                 for (Track trk : trklist) {
                     TrackAnalysis tkanal = tkanalMap.get(trk);
-                    if (tkanal.getNBadHits() < tkanal.getNHits() - 1)
+                    if (tkanal.getNBadHits() < tkanal.getNHits() - 1) {
                         nmulthits++;
+                    }
                 }
                 //  Flag any anomalous cases that we find
-                if (nmulthits > 1)
+                if (nmulthits > 1) {
                     System.out.println("2 tracks associated with a single MC Particle");
+                }
             }
 
             if (isFindable) {
                 _nchMCP++;
                 findableTracks++;
                 double wgt = 0.;
-                if (ntrk > 0)
+                if (ntrk > 0) {
                     wgt = 1.;
+                }
                 foundTracks += wgt;
                 peffFindable.fill(p, wgt);
                 phieffFindable.fill(phi, wgt);
@@ -582,8 +618,9 @@
 //                    System.out.println("Missed a findable track!");
 
                 double wgtAxial = 0.;
-                if (ntrkAxial > 0)
+                if (ntrkAxial > 0) {
                     wgtAxial = 1.;
+                }
                 peffAxial.fill(p, wgtAxial);
                 phieffAxial.fill(phi, wgtAxial);
                 thetaeffAxial.fill(theta, wgtAxial);
@@ -600,8 +637,9 @@
                 if (isFindable) {
                     findableelectrons++;
                     double wgt = 0.;
-                    if (ntrk > 0)
+                    if (ntrk > 0) {
                         wgt = 1.;
+                    }
                     foundelectrons += wgt;
                     peffElectrons.fill(p, wgt);
                     phieffElectrons.fill(phi, wgt);
@@ -609,13 +647,15 @@
                     ctheffElectrons.fill(cth, wgt);
                     d0effElectrons.fill(d0, wgt);
                     z0effElectrons.fill(z0, wgt);
-                    if (wgt == 0)
+                    if (wgt == 0) {
                         System.out.println("Missed a findable ELECTRON!!!!!");
+                    }
 
 
                     double wgtAxial = 0.;
-                    if (ntrkAxial > 0)
+                    if (ntrkAxial > 0) {
                         wgtAxial = 1.;
+                    }
                     peffAxial.fill(p, wgtAxial);
                     phieffAxial.fill(phi, wgtAxial);
                     thetaeffAxial.fill(theta, wgtAxial);
@@ -676,8 +716,9 @@
 
     private double getphi(double x, double y) {
         double phi = Math.atan2(y, x);
-        if (phi < 0.)
+        if (phi < 0.) {
             phi += 2. * Math.PI;
+        }
         return phi;
     }
 
@@ -794,7 +835,9 @@
         double dzdx1 = slt1.dzdx();
         double s1sq = 1 + 1 / (dydx1 * dydx1) + (dzdx1 * dzdx1) / (dydx1 * dydx1);
         double truep1y = Math.sqrt(p1mag2 / s1sq);
-        if (dydx1 < 0) truep1y = -truep1y;
+        if (dydx1 < 0) {
+            truep1y = -truep1y;
+        }
         double truep1x = truep1y / dydx1;
         double truep1z = dzdx1 * truep1x;
 
@@ -808,7 +851,9 @@
         double dzdx2 = slt2.dzdx();
         double s2sq = 1 + 1 / (dydx2 * dydx2) + (dzdx2 * dzdx2) / (dydx2 * dydx2);
         double truep2y = Math.sqrt(p2mag2 / s2sq);
-        if (dydx2 < 0) truep2y = -truep2y;
+        if (dydx2 < 0) {
+            truep2y = -truep2y;
+        }
         double truep2x = truep2y / dydx2;
         double truep2z = dzdx2 * truep2x;
 
@@ -843,7 +888,6 @@
         return doca;
     }
 
-
 //find the XOCA to the beamline extrpolating linearly from the reference point
     private double findXoca(double y, double z, double px, double py, double pz) {
         double xoca = 0;
@@ -896,7 +940,9 @@
         double dzdx1 = slt1.dzdx();
         double s1sq = 1 + 1 / (dydx1 * dydx1) + (dzdx1 * dzdx1) / (dydx1 * dydx1);
         truep[1] = Math.sqrt(p1mag2 / s1sq);
-        if (dydx1 < 0) truep[1] = -truep[1];
+        if (dydx1 < 0) {
+            truep[1] = -truep[1];
+        }
         truep[0] = truep[1] / dydx1;
         truep[2] = dzdx1 * truep[0];
 
@@ -911,5 +957,3 @@
         return Math.sqrt(vec[0] * vec[0] + vec[1] * vec[1] + vec[2] * vec[2]);
     }
 }
-
-

hps-java/src/main/java/org/lcsim/HPSDedicatedv3
DarkPhotonLLDriver.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- DarkPhotonLLDriver.java	28 Oct 2010 17:26:33 -0000	1.2
+++ DarkPhotonLLDriver.java	10 Nov 2010 20:08:08 -0000	1.3
@@ -13,13 +13,13 @@
  *
  * @author M. Graham and R. Partridge
  */
-public class DarkPhotonLLDriver extends Driver {
+public final class DarkPhotonLLDriver extends Driver {
 
     public String outputFile = "foobar.slcio";
     public String plotsFile = "myplots.aida";
     public String outputTextName = "myevents.txt";
-//    TestVertexing tad;
-    FastTrackAnalysisDriver tad;
+    TestVertexing tad;
+//    FastTrackAnalysisDriver tad;
     List<int[]> pairs = new ArrayList();
     List<Integer> passLayers = new ArrayList();
     double referenceX = 0.0;
@@ -41,8 +41,8 @@
         add(trd);
 
 //        tad = new LongLivedAnalysis(nlayers);
-//        tad = new TestVertexing(nlayers);
-        tad = new FastTrackAnalysisDriver(nlayers);
+        tad = new TestVertexing(nlayers);
+//        tad = new FastTrackAnalysisDriver(nlayers);
 //        atd=new AnalysisTupleDriver(nlayers);
 //        add(new OccupancyDriver());
         add(tad);
@@ -75,6 +75,7 @@
             nlayers = 12;
             axialStrategy = "DarkPhoton-Axial-HPS3pt2.xml";
             finalStrategy = "DarkPhoton-HPS3pt2.xml";
+            llStrategy = "DarkPhoton-HPS3pt2-LongLived.xml";
 
             int[] p1 = {1, 2};
             int[] p2 = {3, 4};

hps-java/src/main/resources
DarkPhoton-HPS3pt2-LongLived.xml added at 1.1
diff -N DarkPhoton-HPS3pt2-LongLived.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ DarkPhoton-HPS3pt2-LongLived.xml	10 Nov 2010 20:08:08 -0000	1.1
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<StrategyList xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="http://lcsim.org/recon/tracking/seedtracker/strategybuilder/strategies.xsd">
+    <TargetDetector>HPS-Dedicated-v3.2</TargetDetector>
+    <Strategy name="LongLived Strategy">
+    <!--Cutoffs-->
+        <MinPT>0.1</MinPT>
+        <MinHits>5</MinHits>
+        <MinConfirm>1</MinConfirm>
+        
+        <MaxDCA>100.0</MaxDCA>
+        <MaxZ0>100.0</MaxZ0>
+        <MaxChisq>25.0</MaxChisq>
+        <BadHitChisq>10.0</BadHitChisq>
+    <!--Layers-->
+
+     <Layers>         
+          <Layer type="Extend" layer_number="11" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="3" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="5" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="7" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="9" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
+
+</StrategyList>
+

hps-java/src/main/resources
DarkPhoton-Axial-HPS3pt2.xml 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- DarkPhoton-Axial-HPS3pt2.xml	28 Oct 2010 17:26:33 -0000	1.1
+++ DarkPhoton-Axial-HPS3pt2.xml	10 Nov 2010 20:08:08 -0000	1.2
@@ -27,6 +27,32 @@
             <Layer type="Confirm" layer_number="8" detector_name="Tracker" be_flag="BARREL" />
         </Layers>
     </Strategy>
+
+       <Strategy name="Long Lived Barrel inside out">
+    <!--Cutoffs-->
+        <MinPT>0.5</MinPT>
+        <MinHits>5</MinHits>
+        <MinConfirm>1</MinConfirm>
+<!--
+        <MaxDCA>100.0</MaxDCA>
+        <MaxZ0>1000.0</MaxZ0>
+        <MaxChisq>2500.0</MaxChisq>
+        <BadHitChisq>1000.0</BadHitChisq>
+-->
+        <MaxDCA>100.0</MaxDCA>
+        <MaxZ0>100.0</MaxZ0>
+        <MaxChisq>100.0</MaxChisq>
+        <BadHitChisq>100.0</BadHitChisq>
+    <!--Layers-->
+
+        <Layers>
+            <Layer type="Extend" layer_number="12" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="4" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="6" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Seed" layer_number="8" detector_name="Tracker" be_flag="BARREL" />
+            <Layer type="Confirm" layer_number="10" detector_name="Tracker" be_flag="BARREL" />
+        </Layers>
+    </Strategy>
  
 </StrategyList>
 

hps-java/src/main/java/org/lcsim/HPSVertexing
BilliorVertex.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- BilliorVertex.java	10 Nov 2010 17:31:20 -0000	1.2
+++ BilliorVertex.java	10 Nov 2010 20:08:08 -0000	1.3
@@ -11,7 +11,7 @@
 import static java.lang.Math.tan;
 
 /**
- * @version $Id: BilliorVertex.java,v 1.2 2010/11/10 17:31:20 mgraham Exp $
+ * @version $Id: BilliorVertex.java,v 1.3 2010/11/10 20:08:08 mgraham Exp $
  * @version Vertex tracks using least-squares method laid out by billior etal used in the HPS Java package.
  */
 public class BilliorVertex {
@@ -23,6 +23,7 @@
     private boolean _beamspotConstraint = true;
     private boolean _constrainToBS = false;
     private double[] _beamSize = {0.001, 0.01, 0.01}; //10um in y and z
+
     private int _ntracks;
     private List<Matrix> paramList = new ArrayList<Matrix>();
     private List<Matrix> WList = new ArrayList<Matrix>();
@@ -549,7 +550,6 @@
             for (int j = 0; j < _ntracks; j++)
                 MatrixOp.setSubMatrix(Ckm1, covMomList[i][j], 3 * (i + 1), 3 * (j + 1));
         }
-
         //  now calculate the derivative matrix for the beam constraint.
         //  the beamspot is assumed to be at bvec=(0,0,0)
         //  the V0 production position is Vbvec=(0,0,0)
@@ -951,6 +951,7 @@
         _vertexPosition = xtilde;
         _pFit = pfit;
         covMomList = Cij;
+        covVtxMomList=C0j;
 
     }
 }
CVSspam 0.2.8