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
|