Commit in lcsim-contrib/src/main/java/org/lcsim/contrib/SteveMagill on MAIN
TrBMCorr.java+87added 1.1

lcsim-contrib/src/main/java/org/lcsim/contrib/SteveMagill
TrBMCorr.java added at 1.1
diff -N TrBMCorr.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ TrBMCorr.java	14 Feb 2012 19:30:21 -0000	1.1
@@ -0,0 +1,87 @@
+package org.lcsim.contrib.SteveMagill;
+
+import java.util.*;
+import java.util.ArrayList;
+import org.lcsim.event.EventHeader;
+import org.lcsim.util.Driver;
+import org.lcsim.event.Track;
+import org.lcsim.spacegeom.*;
+import hep.physics.vec.Hep3Vector;
+import org.lcsim.util.aida.AIDA;
+
+/*
+ * Calculates effect of B-field by determining delta M from tracks
+ */
+
+public class TrBMCorr extends Driver
+{
+    private String _trname;  // list of tracks to use
+    private String _delmname;  //  name of object containing deltaM value
+    private String _trspname;  // name of track-spacepoint map to use
+    private AIDA aida = AIDA.defaultInstance();
+
+    public TrBMCorr()
+    {
+        
+    }
+    
+    protected void process(EventHeader event)
+    {
+        super.process(event);
+
+        //  get tracks from event and track-spacepoint map to use
+        List<Track> tracks = event.get(Track.class, _trname);
+        Map<Track, SpacePoint> trep = (Map<Track, SpacePoint>) event.get(_trspname);
+        //  make Nayeli's mass correction and store as event object
+        List<Double> Ddelm = new ArrayList<Double>();
+        double trpx = 0.;
+        double trpy = 0.;
+        double trpz = 0.;
+        double Etot = 0.;
+        double trpxprime = 0.;
+        double trpyprime = 0.;
+        double trpzprime = 0.;
+        for(Track tr : tracks)
+        {
+            trpx += tr.getPX();
+            trpy += tr.getPY();
+            trpz += tr.getPZ();
+            double etr = Math.sqrt(tr.getPX()*tr.getPX()+tr.getPY()*tr.getPY()+tr.getPZ()*tr.getPZ()+.0195);  // use pion mass squared
+            Etot += etr;
+            SpacePoint endpSP = trep.get(tr);
+            Hep3Vector endp = new SpacePoint(endpSP);
+            double rmag = endp.magnitude();
+            trpxprime += etr*endp.x()/rmag;
+            trpyprime += etr*endp.y()/rmag;
+            trpzprime += etr*endp.z()/rmag;
+        }
+        double pptot = Math.sqrt(trpxprime*trpxprime+trpyprime*trpyprime+trpzprime*trpzprime);
+        double mprime = Math.sqrt(Etot*Etot-pptot*pptot);
+        double ptot = Math.sqrt(trpx*trpx+trpy*trpy+trpz*trpz);
+        double minv = Math.sqrt(Etot*Etot-ptot*ptot);
+        double delm = mprime-minv;
+        Ddelm.add(delm);
+        aida.cloud1D("All Track Invariant Mass").fill(minv);
+        aida.cloud1D("All Track Prime Invariant Mass").fill(mprime);
+        aida.cloud1D("Delta M All Track Mp M").fill(delm);
+//        System.out.println("MC FS Invariant Mass " + minv);
+        event.put(_delmname, Ddelm);
+
+    }
+
+  public void setInputTrackList(String trname)
+  {
+      _trname = trname;
+  }
+
+  public void setTrackSpacepointMap(String trspname)
+  {
+      _trspname = trspname;
+  }
+
+  public void setDeltaMObjectName(String delmname)
+  {
+      _delmname = delmname;
+  }
+
+}
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