Author: [log in to unmask]
Date: Fri Feb 13 16:24:23 2015
New Revision: 2142
Log:
Add basic check of hit positions in clustering test to make sure they are not zero.
Modified:
java/trunk/ecal-recon/src/test/java/org/hps/recon/ecal/cluster/ClustererTest.java
Modified: java/trunk/ecal-recon/src/test/java/org/hps/recon/ecal/cluster/ClustererTest.java
=============================================================================
--- java/trunk/ecal-recon/src/test/java/org/hps/recon/ecal/cluster/ClustererTest.java (original)
+++ java/trunk/ecal-recon/src/test/java/org/hps/recon/ecal/cluster/ClustererTest.java Fri Feb 13 16:24:23 2015
@@ -17,6 +17,8 @@
import junit.framework.TestCase;
import org.hps.conditions.database.DatabaseConditionsManager;
+import org.hps.recon.ecal.CalorimeterHitUtilities;
+import org.lcsim.detector.converter.compact.EcalCrystal;
import org.lcsim.event.CalorimeterHit;
import org.lcsim.event.Cluster;
import org.lcsim.event.EventHeader;
@@ -39,7 +41,7 @@
*/
public class ClustererTest extends TestCase {
- static int nEvents = 50;
+ static int nEvents = -1;
static final String fileLocation = "http://www.lcsim.org/test/hps-java/MockDataReconTest.slcio";
File inputFile;
File testOutputDir;
@@ -51,7 +53,8 @@
boolean applyCorrections;
boolean checkHitEnergy;
boolean checkPropCalc;
- boolean checkPosition;
+ boolean checkClusterPosition;
+ boolean checkHitPositions;
boolean calculateProperties;
boolean sortHits;
double[] cuts = null;
@@ -95,7 +98,12 @@
}
ClustererTestSetup checkPosition() {
- this.checkPosition = true;
+ this.checkClusterPosition = true;
+ return this;
+ }
+
+ ClustererTestSetup checkHitPositions() {
+ this.checkHitPositions = true;
return this;
}
}
@@ -127,7 +135,8 @@
.checkSeedHit()
.checkClusterType(ClusterType.RECON)
.checkHitEnergy()
- .checkPosition());
+ .checkPosition()
+ .checkHitPositions());
}
/**
@@ -412,11 +421,21 @@
assertTrue("Hit energy " + hit.getCorrectedEnergy() + " is <= 0.", hit.getCorrectedEnergy() > 0.);
}
}
- if (setup.checkPosition) {
+ if (setup.checkClusterPosition) {
double[] position = cluster.getPosition();
assertTrue("Position X is invalid.", Math.abs(position[0]) < 400. && position[0] != 0.);
assertTrue("Position Y is invalid.", Math.abs(position[1]) > 25. && Math.abs(position[1]) < 90.);
assertTrue("Position Z is invalid.", position[2] > 1385. && position[2] < 1480.);
+ }
+ if (setup.checkHitPositions) {
+ for (CalorimeterHit hit : cluster.getCalorimeterHits()) {
+ double[] hitPosition = hit.getPosition();
+ assertTrue("Hit Position X is invalid.", hitPosition[0] != 0.);
+ assertTrue("Hit Position Y is invalid.", hitPosition[1] != 0.);
+ assertTrue("Hit Position Z is invalid.", hitPosition[2] != 0.);
+ EcalCrystal crystal = CalorimeterHitUtilities.findCrystal(hit);
+ assertTrue("Hit does not link correctly to geometry.", crystal != null);
+ }
}
}
}
|