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