Print

Print


Author: [log in to unmask]
Date: Wed Dec 17 11:56:32 2014
New Revision: 3466

Log:
Fix up SimCalorimeterHit so corrected energy gets set in the constructor and when hits are read in from LCIO.

Modified:
    projects/lcsim/trunk/event-model/src/main/java/org/lcsim/event/base/BaseCalorimeterHit.java
    projects/lcsim/trunk/event-model/src/main/java/org/lcsim/event/base/BaseHit.java
    projects/lcsim/trunk/event-model/src/main/java/org/lcsim/event/base/BaseSimCalorimeterHit.java
    projects/lcsim/trunk/event-model/src/main/java/org/lcsim/event/base/SamplingFractionManager.java
    projects/lcsim/trunk/event-model/src/main/java/org/lcsim/lcio/SIOSimCalorimeterHit.java

Modified: projects/lcsim/trunk/event-model/src/main/java/org/lcsim/event/base/BaseCalorimeterHit.java
 =============================================================================
--- projects/lcsim/trunk/event-model/src/main/java/org/lcsim/event/base/BaseCalorimeterHit.java	(original)
+++ projects/lcsim/trunk/event-model/src/main/java/org/lcsim/event/base/BaseCalorimeterHit.java	Wed Dec 17 11:56:32 2014
@@ -17,9 +17,8 @@
  */
 public class BaseCalorimeterHit extends BaseHit implements CalorimeterHit {
 
-    public static final double UNSET_ENERGY = Double.MIN_VALUE;
-    protected double rawEnergy = UNSET_ENERGY;
-    protected double correctedEnergy = UNSET_ENERGY;
+    protected double rawEnergy;
+    protected double correctedEnergy;
     protected double energyError;
     protected double time;
     protected long id;
@@ -28,7 +27,8 @@
     protected BaseCalorimeterHit() {
     }
       
-    public BaseCalorimeterHit(double rawEnergy, 
+    public BaseCalorimeterHit(
+            double rawEnergy, 
             double correctedEnergy, 
             double energyError, 
             double time, 
@@ -44,10 +44,7 @@
         this.id = id;
         this.positionVec = positionVec;
         this.type = type;
-        
-        calculateCorrectedEnergy();
-        calculateRawEnergy();
-        
+                
         setMetaData(metaData);        
     }
 
@@ -88,31 +85,15 @@
         return energyError;
     }
 
-    // FIXME: Remove?
-    public void setType(int type) {
-        this.type = type;
-    }
-
     public IDetectorElement getDetectorElement() {
         return detectorElement;
     }
              
-    private void calculateCorrectedEnergy() {
-        // Is the corrected energy unset?
-        if (correctedEnergy == UNSET_ENERGY) {
-            getIDDecoder().setID(id);
-            correctedEnergy = SamplingFractionManager.defaultInstance().getCorrectedEnergy(rawEnergy, getIDDecoder().getLayer(), getSubdetector());
-        }
+    protected void calculateCorrectedEnergy() {
+        getIDDecoder().setID(id);
+        correctedEnergy = SamplingFractionManager.defaultInstance().getCorrectedEnergy(rawEnergy, getIDDecoder().getLayer(), getSubdetector());
     }
-    
-    private void calculateRawEnergy() {
-        // Is the raw energy unset?
-        if (rawEnergy == UNSET_ENERGY) {
-            getIDDecoder().setID(id);
-            correctedEnergy = SamplingFractionManager.defaultInstance().getRawEnergy(rawEnergy, getIDDecoder().getLayer(), getSubdetector());
-        }
-    }
-                          
+                             
     /**
      * Conversion to String for printout.
      * @return String output.

Modified: projects/lcsim/trunk/event-model/src/main/java/org/lcsim/event/base/BaseHit.java
 =============================================================================
--- projects/lcsim/trunk/event-model/src/main/java/org/lcsim/event/base/BaseHit.java	(original)
+++ projects/lcsim/trunk/event-model/src/main/java/org/lcsim/event/base/BaseHit.java	Wed Dec 17 11:56:32 2014
@@ -19,7 +19,7 @@
 import org.lcsim.geometry.subdetector.BarrelEndcapFlag;
 
 /**
- * this is a base class for hit-like objects in a detector.
+ * This is a base class for hit-like objects in a detector.
  * 
  * @author Jeremy McCormick <[log in to unmask]>
  */

Modified: projects/lcsim/trunk/event-model/src/main/java/org/lcsim/event/base/BaseSimCalorimeterHit.java
 =============================================================================
--- projects/lcsim/trunk/event-model/src/main/java/org/lcsim/event/base/BaseSimCalorimeterHit.java	(original)
+++ projects/lcsim/trunk/event-model/src/main/java/org/lcsim/event/base/BaseSimCalorimeterHit.java	Wed Dec 17 11:56:32 2014
@@ -43,6 +43,9 @@
         this.steps = new ArrayList(nContributions);
         
         setMetaData(meta);
+        
+        // Calculate corrected energy from raw energy.
+        calculateCorrectedEnergy();
     }
 
     /**

Modified: projects/lcsim/trunk/event-model/src/main/java/org/lcsim/event/base/SamplingFractionManager.java
 =============================================================================
--- projects/lcsim/trunk/event-model/src/main/java/org/lcsim/event/base/SamplingFractionManager.java	(original)
+++ projects/lcsim/trunk/event-model/src/main/java/org/lcsim/event/base/SamplingFractionManager.java	Wed Dec 17 11:56:32 2014
@@ -10,10 +10,11 @@
 import org.lcsim.geometry.Subdetector;
 
 /**
- * Currently assumes that each subdetector has a single sampling fraction. This is obviously not true if the subdetector has more than one layering scheme, or if a single "subdetector" represents more
- * than one physical detector (e.g. barrel and endcap).
+ * Currently assumes that each subdetector has a single sampling fraction. 
+ * This is obviously not true if the subdetector has more than one layering scheme, 
+ * or if a single "subdetector" represents more than one physical detector (e.g. barrel and endcap).
  *
- * @author tonyj
+ * @author Tony Johnson <[log in to unmask]>
  */
 public class SamplingFractionManager {
     
@@ -34,11 +35,6 @@
         return sf.getCorrectedEnergy(rawEnergy, layer);
     }
     
-    public double getRawEnergy(double correctedEnergy, int layer, Subdetector detector) {
-        SamplingFraction sf = manager.getCachedConditions(SamplingFraction.class, "SamplingFractions/" + detector.getName()).getCachedData();
-        return sf.getRawEnergy(correctedEnergy, layer);
-    }
-
     private static class SamplingFraction {
         private final double defaultSamplingFraction;
         private final boolean digital;
@@ -79,12 +75,6 @@
             double samplingFraction = layerSF == null ? defaultSamplingFraction : layerSF;
             return (digital ? 1 : rawEnergy) / samplingFraction;
         }
-
-        double getRawEnergy(double correctedEnergy, int layer) {
-            Double layerSF = layerMap.get(layer);
-            double samplingFraction = layerSF == null ? defaultSamplingFraction : layerSF;
-            return (digital ? 1 : correctedEnergy) * samplingFraction;
-        }
     }
 
     private static class SamplingFractionConverter implements ConditionsConverter<SamplingFraction> {

Modified: projects/lcsim/trunk/event-model/src/main/java/org/lcsim/lcio/SIOSimCalorimeterHit.java
 =============================================================================
--- projects/lcsim/trunk/event-model/src/main/java/org/lcsim/lcio/SIOSimCalorimeterHit.java	(original)
+++ projects/lcsim/trunk/event-model/src/main/java/org/lcsim/lcio/SIOSimCalorimeterHit.java	Wed Dec 17 11:56:32 2014
@@ -63,6 +63,9 @@
         }
         if ( version > 1000 ) in.readPTag(this);
         setMetaData(meta);
+        
+        // Calculate the corrected energy from raw energy.
+        calculateCorrectedEnergy();
     }
     
     static private float emptyPos[] = new float[3]; 

########################################################################
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