Author: [log in to unmask]
Date: Thu Sep 10 05:50:38 2015
New Revision: 3574
Log:
improved energy timing cuts in clustering
Modified:
java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ReconClusterer.java
Modified: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ReconClusterer.java
=============================================================================
--- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ReconClusterer.java (original)
+++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ReconClusterer.java Thu Sep 10 05:50:38 2015
@@ -64,7 +64,7 @@
double minTime = 0.0;
// Maximum time cut window range. Units in ns.
- double timeWindow = 8.0;
+ double timeWindow = 6.0;
// Make a map for quick calculation of the x-y position of crystal face
Map<Point, double[]> correctedPositionMap = new HashMap<Point, double[]>();
@@ -73,7 +73,7 @@
ReconClusterer() {
super(new String[] { "hitEnergyThreshold", "seedEnergyThreshold", "clusterEnergyThreshold", "minTime", "timeWindow" },
- new double[] { 0.0075, 0.05, 0.1, 0.0, 8.0 });
+ new double[] { 0.0075, 0.05, 0.1, 0.0, 6.0 });
}
void setUseTimeCut(boolean useTimeCut) {
@@ -383,10 +383,16 @@
// Consider time cut-is this hit in same time window as seed?
if (useTimeCut){
- if(Math.abs(ihit.getTime() - iseed.getTime()) < timeWindow)
+ if(ihit.getCorrectedEnergy() < 0.1 && (Math.abs(ihit.getTime() - iseed.getTime()) < timeWindow))
{
icluster.addHit(ihit);
}
+
+ else if (ihit.getCorrectedEnergy() > 0.1 && (Math.abs(ihit.getTime() - iseed.getTime()) < 2.0))
+ {
+ icluster.addHit(ihit);
+ }
+
} // end of using time cut
else {icluster.addHit(ihit);}
}
@@ -400,15 +406,29 @@
boolean inTimeWithA = false;
boolean inTimeWithB = false;
// In time window with seedA?
- if (Math.abs(commHit.getKey().getTime() - seedA.getTime()) < timeWindow){
- inTimeWithA = true;
- }
-
- // In time window with seedB?
- if (Math.abs(commHit.getKey().getTime() - seedB.getTime()) < timeWindow){
- inTimeWithB = true;
- }
-
+ if (commHit.getKey().getCorrectedEnergy() < 0.1){
+ if (Math.abs(commHit.getKey().getTime() - seedA.getTime()) < timeWindow){
+ inTimeWithA = true;
+ }
+
+ // In time window with seedB?
+ if (Math.abs(commHit.getKey().getTime() - seedB.getTime()) < timeWindow){
+ inTimeWithB = true;
+ }
+ }
+
+ else if (commHit.getKey().getCorrectedEnergy() > 0.1)
+ {
+ if (Math.abs(commHit.getKey().getTime() - seedA.getTime()) < 2.0){
+ inTimeWithA = true;
+ }
+
+ // In time window with seedB?
+ if (Math.abs(commHit.getKey().getTime() - seedB.getTime()) < 2.0){
+ inTimeWithB = true;
+ }
+ }
+
double eclusterA = seedToCluster.get(seedA).getEnergy();
double eclusterB = seedToCluster.get(seedB).getEnergy();
double fractionA = eclusterA / (eclusterA + eclusterB);
|