lcsim/src/org/lcsim/contrib/uiowa/MuonFinder
diff -u -r1.2 -r1.3
--- SimpleMipQualityDecision.java 3 Oct 2008 19:06:36 -0000 1.2
+++ SimpleMipQualityDecision.java 4 Oct 2008 01:03:18 -0000 1.3
@@ -31,7 +31,7 @@
Set<Integer> layersSeen = new HashSet<Integer>();
Set<Integer> isolayer = new HashSet<Integer>();
CalorimeterHit outhit = null;
- Map<Integer, CalorimeterHit> exam = new HashMap<Integer, CalorimeterHit>();
+ Map<Integer, Set<CalorimeterHit>> exam = new HashMap<Integer, Set<CalorimeterHit>>();
int max = 0;
for (CalorimeterHit hit : mip.getCalorimeterHits()) {
int layer = getLayer(hit);
@@ -39,18 +39,29 @@
if (!layersSeen.contains(layerInt)) {
layersSeen.add(layerInt);
isolayer.add(layerInt);
- exam.put(layerInt,hit);
+ Set<CalorimeterHit> hits = exam.get(layerInt);
+ if(hits == null){
+ hits = new HashSet<CalorimeterHit>();
+ exam.put(layerInt,hits);
+ }
+ hits.add(hit);
} else {
- exam.put(layerInt,hit);
- if(exam.values().size() > 2){ isolayer.remove(layerInt); }
+ Set<CalorimeterHit> hits = exam.get(layerInt);
+ if(hits == null){
+ hits = new HashSet<CalorimeterHit>();
+ exam.put(layerInt,hits);
+ }
+ hits.add(hit);
+
+ if(exam.get(layerInt).size() > 2){ isolayer.remove(layerInt); }
}
if(layer > max){
max = layer;
}
}
-
- if( max < 5) { count = 3;}
- else count = 0;
+
+ System.out.println("isolated layer= " + isolayer.size());
+ int count = 3;
boolean pass = (isolayer.size() >= count);
return pass;