4 modified files
lcsim/src/org/lcsim/recon/cluster/muonfinder
diff -u -r1.4 -r1.5
--- MipTrackMap.java 4 Feb 2010 17:45:32 -0000 1.4
+++ MipTrackMap.java 8 Mar 2010 19:36:39 -0000 1.5
@@ -20,7 +20,7 @@
* later need to make it as one cluster if it is assocated with the same track.
*
* @author [log in to unmask]
- * @version $Id: MipTrackMap.java,v 1.4 2010/02/04 17:45:32 cassell Exp $
+ * @version $Id: MipTrackMap.java,v 1.5 2010/03/08 19:36:39 cassell Exp $
*/
@@ -88,7 +88,11 @@
int lastIterationWithFoundHit = -1;
int maxSkippedLayers = 3;
- for( int iIteration = 0 ; iIteration < 71 ; iIteration++){ // for sid02 calorimeter. 31 for Ecal 40 for Hacl.
+ int maxlB = ci.getNLayers(CalorimeterType.EM_BARREL)+
+ ci.getNLayers(CalorimeterType.HAD_BARREL);
+ int maxlE = ci.getNLayers(CalorimeterType.EM_ENDCAP)+
+ ci.getNLayers(CalorimeterType.HAD_ENDCAP);
+ for( int iIteration = 0 ; iIteration < Math.max(maxlB,maxlE) ; iIteration++){ // for sid02 calorimeter. 31 for Ecal 40 for Hacl.
//To get the information from last hit
CalorimeterHit hit = mipclus.getCalorimeterHits().get( mipclus.getCalorimeterHits().size()-1);
IDDecoder id = hit.getIDDecoder();
@@ -98,7 +102,7 @@
double z = id.getPosition()[2];
double p = Math.sqrt(x*x+y*y+z*z);
double r = Math.sqrt(x*x+y*y);
- double lastlayer = id.getLayer();
+ double lastlayer = id.getVLayer();
String lastsubdetName = hit.getSubdetector().getName();
// Check for neighbouring hits in a 5x5x(2n+1) grid
// where n is the number of iterations since we last saw a hit.
@@ -129,15 +133,15 @@
double curp = Math.sqrt(curx*curx+cury*cury+curz*curz);
double curr = Math.sqrt(curx*curx+cury*cury);
Hep3Vector curpos = new BasicHep3Vector(curx,cury,curz);
- int curlayer = curid.getLayer();
+ int curlayer = curid.getVLayer();
String cursubdetName = curhit.getSubdetector().getName();
//use geometric information and layer number to find cur hit
boolean InSide = (curlayer > lastlayer) && cursubdetName.contains(lastsubdetName) && nearIDs.contains(curhit.getCellID());
- boolean EcalToHcalBarrel= (curid.getLayer()==0 && cursubdetName.contains(ci.getName(CalorimeterType.HAD_BARREL))) && lastsubdetName.contains(ci.getName(CalorimeterType.EM_BARREL)); // 1) ECal Barrel -> HCal Barrel
- boolean BarrelEcalToEndHcal = (curid.getLayer()==0 && cursubdetName.contains(ci.getName(CalorimeterType.HAD_ENDCAP))) && lastsubdetName.contains(ci.getName(CalorimeterType.EM_BARREL)); //2) ECal Barrel -> HCal Endcap (There is no way to HCal Barrel directly from ECal Endcap
- boolean EcalToHcalEndcap= (curid.getLayer()==0 && cursubdetName.contains(ci.getName(CalorimeterType.HAD_ENDCAP))) && lastsubdetName.contains(ci.getName(CalorimeterType.EM_ENDCAP)); // 3) ECal Endcap -> HCal Endcap
- boolean EndToBarrelEcal = (curid.getLayer()==0 && cursubdetName.contains(ci.getName(CalorimeterType.EM_BARREL))) && lastsubdetName.contains(ci.getName(CalorimeterType.EM_ENDCAP)); // 4) ECal Endcap -> ECal Barrel
- boolean EndToBarrelHcal = (curid.getLayer()==0 && cursubdetName.contains(ci.getName(CalorimeterType.HAD_BARREL))) && lastsubdetName.contains(ci.getName(CalorimeterType.HAD_ENDCAP)); // 5) HCal Endcap -> HCal Barrel
+ boolean EcalToHcalBarrel= (curid.getVLayer()==0 && cursubdetName.contains(ci.getName(CalorimeterType.HAD_BARREL))) && lastsubdetName.contains(ci.getName(CalorimeterType.EM_BARREL)); // 1) ECal Barrel -> HCal Barrel
+ boolean BarrelEcalToEndHcal = (curid.getVLayer()==0 && cursubdetName.contains(ci.getName(CalorimeterType.HAD_ENDCAP))) && lastsubdetName.contains(ci.getName(CalorimeterType.EM_BARREL)); //2) ECal Barrel -> HCal Endcap (There is no way to HCal Barrel directly from ECal Endcap
+ boolean EcalToHcalEndcap= (curid.getVLayer()==0 && cursubdetName.contains(ci.getName(CalorimeterType.HAD_ENDCAP))) && lastsubdetName.contains(ci.getName(CalorimeterType.EM_ENDCAP)); // 3) ECal Endcap -> HCal Endcap
+ boolean EndToBarrelEcal = (curid.getVLayer()==0 && cursubdetName.contains(ci.getName(CalorimeterType.EM_BARREL))) && lastsubdetName.contains(ci.getName(CalorimeterType.EM_ENDCAP)); // 4) ECal Endcap -> ECal Barrel
+ boolean EndToBarrelHcal = (curid.getVLayer()==0 && cursubdetName.contains(ci.getName(CalorimeterType.HAD_BARREL))) && lastsubdetName.contains(ci.getName(CalorimeterType.HAD_ENDCAP)); // 5) HCal Endcap -> HCal Barrel
if(EcalToHcalBarrel || EcalToHcalEndcap || InSide || EndToBarrelEcal || EndToBarrelHcal || BarrelEcalToEndHcal){
Hep3Vector curFromTangent = result.getTangent(curpos);
Hep3Vector curFromLastTwo = VecOp.sub(curpos, last0);
@@ -245,7 +249,6 @@
if(removedhits.contains(hit)) continue;
SortedMap<Double, Set<CalorimeterHit>> sortedHitbyPos= new TreeMap();
IDDecoder id = hit.getIDDecoder();
- double layer = id.getLayer();
Hep3Vector hitPos = new BasicHep3Vector(hit.getPosition());
Hep3Vector hitPosUnit = VecOp.unit(hitPos);
@@ -261,7 +264,6 @@
for(CalorimeterHit subhit : muhits){
if(removedhits.contains(subhit)) continue;
IDDecoder subid = subhit.getIDDecoder();
- double sublayer = subid.getLayer();
Hep3Vector subhitPos = new BasicHep3Vector(subhit.getPosition());
Hep3Vector subhitPosUnit = VecOp.unit(subhitPos);
double cos = VecOp.dot(hitPosUnit, subhitPosUnit);
@@ -463,7 +465,7 @@
int cellp = (int) (cellv.magnitude());
int cellr = (int) Math.sqrt(cellv.x()*cellv.x() + cellv.y()*cellv.y());
int cellz = (int) cellv.z();
- System.out.println(" hit : p= " + p +" r=" + r + " , z " + z + " " + count[0] + " hits in 3x3, " + count[1] + " at " + id.getLayer() + " layer of " + hit.getSubdetector().getName());
+ System.out.println(" hit : p= " + p +" r=" + r + " , z " + z + " " + count[0] + " hits in 3x3, " + count[1] + " at " + id.getVLayer() + " layer of " + hit.getSubdetector().getName());
System.out.println(" cell: p= " + cellp +" r=" + cellr + " , z " + cellz);
}
@@ -500,10 +502,10 @@
return v;
}
- protected int getLayer(CalorimeterHit hit) {
+ protected int getVLayer(CalorimeterHit hit) {
org.lcsim.geometry.IDDecoder id = hit.getIDDecoder();
id.setID(hit.getCellID());
- int layer = id.getLayer();
+ int layer = id.getVLayer();
return layer;
}
lcsim/src/org/lcsim/recon/cluster/muonfinder
diff -u -r1.8 -r1.9
--- MuonFinder.java 4 Feb 2010 17:45:32 -0000 1.8
+++ MuonFinder.java 8 Mar 2010 19:36:39 -0000 1.9
@@ -40,7 +40,7 @@
* it is required to find good quality mip cluster in muon detector.
*
* @author [log in to unmask]
- * @version $Id: MuonFinder.java,v 1.8 2010/02/04 17:45:32 cassell Exp $
+ * @version $Id: MuonFinder.java,v 1.9 2010/03/08 19:36:39 cassell Exp $
*/
public class MuonFinder extends Driver{
@@ -146,7 +146,7 @@
for(CalorimeterHit h : mumip.getCalorimeterHits()){
IDDecoder id = h.getIDDecoder();
id.setID(h.getCellID());
- int layer = id.getLayer();
+ int layer = id.getVLayer();
if(prelayer != layer || prelayer == -1){
predetName = h.getSubdetector().getName();
i++;
@@ -203,26 +203,28 @@
//Using extrapolated track
int lastLayerBarrel = ci.getNLayers(CalorimeterType.HAD_BARREL);
int lastLayerEndcap = ci.getNLayers(CalorimeterType.HAD_ENDCAP);
- if(lastLayerBarrel != lastLayerEndcap) {System.out.println("ERROR : number of layer different");}
+// if(lastLayerBarrel != lastLayerEndcap) {System.out.println("ERROR : number of layer different");}
int endingLayer = lastLayerBarrel;
boolean isBarrel = true;
boolean hasLastPoint = true;
for(int i=0 ; i < 20 ;i++){
- endingLayer = endingLayer - 1;
IDDecoder tid = null;
Hep3Vector tpoint = new BasicHep3Vector();
Hep3Vector tBarrel = null;
if(isBarrel) {
- tBarrel = result.extendToHCALBarrelLayer(endingLayer);
+ tBarrel = result.extendToHCALBarrelLayer(lastLayerBarrel - i -1);
}
- Hep3Vector tEndcap = result.extendToHCALEndcapLayer(endingLayer);
+ Hep3Vector tEndcap = result.extendToHCALEndcapLayer(lastLayerEndcap - i -1);
if(tBarrel != null && tEndcap == null){
tpoint = tBarrel;
+ endingLayer = lastLayerBarrel - i -1;
}else if(tBarrel == null && tEndcap != null){
tpoint = tEndcap;
isBarrel = false;
+ endingLayer = lastLayerEndcap - i -1;
}else if(tBarrel != null && tEndcap != null){
tpoint = tBarrel;
+ endingLayer = lastLayerBarrel - i -1;
}else{
for(int l=0; l<endingLayer+1 ; l++){
int nextlayer = endingLayer-l;
lcsim/src/org/lcsim/recon/cluster/muonfinder
diff -u -r1.3 -r1.4
--- MuonDriver.java 4 Feb 2010 17:45:32 -0000 1.3
+++ MuonDriver.java 8 Mar 2010 19:36:39 -0000 1.4
@@ -110,7 +110,7 @@
for(CalorimeterHit h : mumip.getCalorimeterHits()){
IDDecoder id = h.getIDDecoder();
id.setID(h.getCellID());
- int layer = id.getLayer();
+ int layer = id.getVLayer();
if(prelayer != layer || prelayer == -1){
predetName = h.getSubdetector().getName();
i++;
lcsim/src/org/lcsim/recon/cluster/muonfinder
diff -u -r1.3 -r1.4
--- SimpleMipQualityDecision.java 26 Jan 2010 16:09:25 -0000 1.3
+++ SimpleMipQualityDecision.java 8 Mar 2010 19:36:39 -0000 1.4
@@ -12,14 +12,13 @@
* modified from the code written by Mat.
*
* @author [log in to unmask]
- * @version $Id: SimpleMipQualityDecision.java,v 1.3 2010/01/26 16:09:25 cassell Exp $
+ * @version $Id: SimpleMipQualityDecision.java,v 1.4 2010/03/08 19:36:39 cassell Exp $
*/
public class SimpleMipQualityDecision implements DecisionMakerSingle<Cluster>
{
- private int count;
- boolean removeUpperHit = true;
+ boolean removeUpperHit = false;
public SimpleMipQualityDecision() {
// No user-settable options for now
}
@@ -31,7 +30,7 @@
Set<Integer> isolayer = new HashSet<Integer>();
Map<Integer, Set<CalorimeterHit>> exam = new HashMap<Integer, Set<CalorimeterHit>>();
for (CalorimeterHit hit : mip.getCalorimeterHits()) {
- int layer = getLayer(hit);
+ int layer = getVLayer(hit);
//To avoid overlap with the other detector's layer
if(hit.getSubdetector().isEndcap()) layer = layer+100;
Integer layerInt = new Integer(layer);
@@ -65,10 +64,10 @@
return pass;
}
- protected int getLayer(CalorimeterHit hit) {
+ protected int getVLayer(CalorimeterHit hit) {
org.lcsim.geometry.IDDecoder id = hit.getIDDecoder();
id.setID(hit.getCellID());
- int layer = id.getLayer();
+ int layer = id.getVLayer();
return layer;
}
}
CVSspam 0.2.8