LISTSERV mailing list manager LISTSERV 16.5

Help for LCDET-SVN Archives


LCDET-SVN Archives

LCDET-SVN Archives


LCDET-SVN@LISTSERV.SLAC.STANFORD.EDU


View:

Message:

[

First

|

Previous

|

Next

|

Last

]

By Topic:

[

First

|

Previous

|

Next

|

Last

]

By Author:

[

First

|

Previous

|

Next

|

Last

]

Font:

Proportional Font

LISTSERV Archives

LISTSERV Archives

LCDET-SVN Home

LCDET-SVN Home

LCDET-SVN  January 2015

LCDET-SVN January 2015

Subject:

r3482 - /projects/lcsim/trunk/event-model/src/main/java/org/lcsim/lcio/SIOCluster.java

From:

[log in to unmask]

Reply-To:

Notification of commits to the lcdet svn repository <[log in to unmask]>

Date:

Thu, 8 Jan 2015 01:05:54 -0000

Content-Type:

text/plain

Parts/Attachments:

Parts/Attachments

text/plain (356 lines)

Author: [log in to unmask]
Date: Wed Jan  7 17:05:49 2015
New Revision: 3482

Log:
Add support for particle ID to Cluster persistency.

Modified:
    projects/lcsim/trunk/event-model/src/main/java/org/lcsim/lcio/SIOCluster.java

Modified: projects/lcsim/trunk/event-model/src/main/java/org/lcsim/lcio/SIOCluster.java
 =============================================================================
--- projects/lcsim/trunk/event-model/src/main/java/org/lcsim/lcio/SIOCluster.java	(original)
+++ projects/lcsim/trunk/event-model/src/main/java/org/lcsim/lcio/SIOCluster.java	Wed Jan  7 17:05:49 2015
@@ -15,9 +15,10 @@
 /**
  * 
  * @author tonyj
+ * @author Jeremy McCormick <[log in to unmask]>
  */
-public class SIOCluster implements Cluster
-{
+public class SIOCluster implements Cluster {
+    
     private final static double[] dummy = new double[6];
     private int type;
     private float energy;
@@ -35,13 +36,12 @@
     private double[] subdetectorEnergies;
     private List<SIORef> tempHits;
     private List<SIORef> tempClusters;
-
-    SIOCluster(SIOInputStream in, int flag, int version) throws IOException
-    {
+    private int pid;
+
+    SIOCluster(SIOInputStream in, int flag, int version) throws IOException {
         type = in.readInt();
         energy = in.readFloat();
-        if (version > 1051)
-        {
+        if (version > 1051) {
             energyError = in.readFloat();
         }
         position = new double[3];
@@ -58,32 +58,25 @@
             directionError[i] = in.readFloat();
 
         int nShape;
-        if (version > 1002)
-        {
+        if (version > 1002) {
             nShape = in.readInt();
-        }
-        else
-        {
+        } else {
             nShape = 6;
         }
         shape = new double[nShape];
-        for (int i = 0; i < nShape; i++)
-        {
+        for (int i = 0; i < nShape; i++) {
             shape[i] = in.readFloat();
         }
 
-        if (version > 1002)
-        {
-            int nPid = in.readInt();
+        if (version > 1002) {
+            pid = in.readInt();
             // this.particleIDs = new ArrayList(nPid);
             // for (int i=0; i<nPid; i++)
             // {
             // ParticleID id = new SIOParticleID(in,owner,flag,major,minor);
             // particleIDs.add(id);
             // }
-        }
-        else
-        {
+        } else {
             // read 3 dummy floats
             float[] particleType = new float[3];
             particleType[0] = in.readFloat();
@@ -94,38 +87,31 @@
         int nClust = in.readInt();
         tempClusters = new ArrayList<SIORef>(nClust);
         clusters = null;
-        for (int i = 0; i < nClust; i++)
-        {
+        for (int i = 0; i < nClust; i++) {
             tempClusters.add(in.readPntr());
         }
-        if ((flag & (1 << LCIOConstants.CLBIT_HITS)) != 0)
-        {
+        if ((flag & (1 << LCIOConstants.CLBIT_HITS)) != 0) {
             int n = in.readInt();
             tempHits = new ArrayList<SIORef>(n);
             calorimeterHits = null;
             this.hitContributions = new double[n];
-            for (int i = 0; i < n; i++)
-            {
+            for (int i = 0; i < n; i++) {
                 tempHits.add(in.readPntr());
                 hitContributions[i] = in.readFloat();
             }
         }
         int nEnergies = in.readInt();
         subdetectorEnergies = new double[nEnergies];
-        for (int i = 0; i < nEnergies; i++)
-        {
+        for (int i = 0; i < nEnergies; i++) {
             subdetectorEnergies[i] = in.readFloat();
         }
         in.readPTag(this);
     }
 
-    public List<CalorimeterHit> getCalorimeterHits()
-    {
-        if (calorimeterHits == null && tempHits != null)
-        {
+    public List<CalorimeterHit> getCalorimeterHits() {
+        if (calorimeterHits == null && tempHits != null) {
             calorimeterHits = new ArrayList(tempHits.size());
-            for (SIORef ref : tempHits)
-            {
+            for (SIORef ref : tempHits) {
                 calorimeterHits.add((CalorimeterHit) ref.getObject());
             }
             tempHits.clear();
@@ -137,13 +123,10 @@
             return calorimeterHits;
     }
 
-    public List<Cluster> getClusters()
-    {
-        if (clusters == null && tempClusters != null)
-        {
+    public List<Cluster> getClusters() {
+        if (clusters == null && tempClusters != null) {
             clusters = new ArrayList(tempClusters.size());
-            for (SIORef ref : tempClusters)
-            {
+            for (SIORef ref : tempClusters) {
                 clusters.add((Cluster) ref.getObject());
             }
             tempClusters.clear();
@@ -152,54 +135,44 @@
         return clusters;
     }
 
-    public double[] getDirectionError()
-    {
+    public double[] getDirectionError() {
         return directionError;
     }
 
     /** Return corrected cluster energy */
-    public double getEnergy()
-    {
+    public double getEnergy() {
         return energy;
     }
 
-    public double getEnergyError()
-    {
+    public double getEnergyError() {
         return energyError;
     }
 
-    public double[] getHitContributions()
-    {
+    public double[] getHitContributions() {
         return hitContributions;
     }
 
-    public double getIPhi()
-    {
+    public double getIPhi() {
         return phi;
     }
 
-    public double getITheta()
-    {
+    public double getITheta() {
         return theta;
     }
 
-    public double[] getPosition()
-    {
+    public double[] getPosition() {
         return position;
     }
 
-    public double[] getPositionError()
-    {
+    public double[] getPositionError() {
         return positionError;
     }
 
-    public double[] getShape()
-    {
+    public double[] getShape() {
         return shape;
     }
 
-    public double[] getSubdetectorEnergies()
-    {
+    public double[] getSubdetectorEnergies() {
         return subdetectorEnergies;
     }
 
@@ -207,18 +180,15 @@
      * Set the subdetector energy contributions
      * @param energies
      */
-    public void setSubdetectorEnergies(double[] energies)
-    {
-    	subdetectorEnergies = energies;
-    }
-
-    public int getType()
-    {
+    public void setSubdetectorEnergies(double[] energies) {
+        subdetectorEnergies = energies;
+    }
+
+    public int getType() {
         return type;
     }
 
-    static void write(Cluster cluster, SIOOutputStream out, int flag) throws IOException
-    {
+    static void write(Cluster cluster, SIOOutputStream out, int flag) throws IOException {
         out.writeInt(cluster.getType());
         out.writeFloat((float) cluster.getEnergy());
         out.writeFloat((float) cluster.getEnergyError());
@@ -241,20 +211,16 @@
             out.writeFloat((float) p[i]);
 
         p = cluster.getShape();
-        if (p == null)
-        {
+        if (p == null) {
             out.writeInt(0);
-        }
-        else
-        {
+        } else {
             out.writeInt(p.length);
-            for (int i = 0; i < p.length; i++)
-            {
+            for (int i = 0; i < p.length; i++) {
                 out.writeFloat((float) p[i]);
             }
         }
 
-        out.writeInt(0);
+        out.writeInt(cluster.getParticleId());
         // List pids = cluster.getParticleIDs() ;
         // out.writeInt( pids.size());
         // for (Iterator iter = pids.iterator(); iter.hasNext();)
@@ -265,33 +231,26 @@
 
         List<Cluster> clusters = cluster.getClusters();
         out.writeInt(clusters.size());
-        for (Cluster c : clusters)
-        {
+        for (Cluster c : clusters) {
             out.writePntr(c);
         }
 
-        if ((flag & (1 << LCIOConstants.CLBIT_HITS)) != 0)
-        {
+        if ((flag & (1 << LCIOConstants.CLBIT_HITS)) != 0) {
             List<CalorimeterHit> calorimeterHits = cluster.getCalorimeterHits();
             double[] hitContributions = cluster.getHitContributions();
             out.writeInt(calorimeterHits.size());
             int ii = 0;
-            for (CalorimeterHit hit : calorimeterHits)
-            {
+            for (CalorimeterHit hit : calorimeterHits) {
                 out.writePntr(hit);
                 out.writeFloat((float) hitContributions[ii++]);
             }
         }
         p = cluster.getSubdetectorEnergies();
-        if (p == null)
-        {
+        if (p == null) {
             out.writeInt(0);
-        }
-        else
-        {
+        } else {
             out.writeInt(p.length);
-            for (int i = 0; i < p.length; i++)
-            {
+            for (int i = 0; i < p.length; i++) {
                 out.writeFloat((float) p[i]);
             }
         }
@@ -299,14 +258,11 @@
     }
 
     /**
-     * Return the number of hits comprising the cluster, including hits in subclusters, as per
-     * interface. Hits belonging to more than one cluster/subcluster should be counted only once.
+     * Return the number of hits comprising the cluster, including hits in subclusters, as per interface. Hits belonging to more than one cluster/subcluster should be counted only once.
      */
-    public int getSize()
-    {
+    public int getSize() {
         Set<CalorimeterHit> hitSet = new HashSet<CalorimeterHit>(this.getCalorimeterHits());
-        for (Cluster clus : this.getClusters())
-        {
+        for (Cluster clus : this.getClusters()) {
             hitSet.addAll(clus.getCalorimeterHits());
         }
 
@@ -319,21 +275,22 @@
     /**
      * Return the sum of the raw energies from the hits in the cluster
      */
-    public double getRawEnergy()
-    {
+    public double getRawEnergy() {
         if (raw_energy > 0)
             return raw_energy;
 
         Set<CalorimeterHit> hitSet = new HashSet<CalorimeterHit>(this.getCalorimeterHits());
-        for (Cluster clus : this.getClusters())
-        {
+        for (Cluster clus : this.getClusters()) {
             hitSet.addAll(clus.getCalorimeterHits());
         }
 
-        for (CalorimeterHit hit : hitSet)
-        {
+        for (CalorimeterHit hit : hitSet) {
             raw_energy += hit.getRawEnergy();
         }
         return raw_energy;
     }
+
+    public int getParticleId() {
+        return pid;
+    }
 }

########################################################################
Use REPLY-ALL to reply to list

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

Top of Message | Previous Page | Permalink

Advanced Options


Options

Log In

Log In

Get Password

Get Password


Search Archives

Search Archives


Subscribe or Unsubscribe

Subscribe or Unsubscribe


Archives

January 2016
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
December 2013
November 2013

ATOM RSS1 RSS2



LISTSERV.SLAC.STANFORD.EDU

Secured by F-Secure Anti-Virus CataList Email List Search Powered by the LISTSERV Email List Manager

Privacy Notice, Security Notice and Terms of Use