lcsim/src/org/lcsim/recon/muon
diff -u -r1.14 -r1.15
--- MuonReco.java 9 Aug 2006 21:01:53 -0000 1.14
+++ MuonReco.java 10 Oct 2006 02:05:06 -0000 1.15
@@ -58,6 +58,12 @@
event.getDetector(), "HADBarrel");
MuonCalSegmentFinder muSegmentFinder = new MuonCalSegmentFinder(
event.getDetector(), "MuonBarrel");
+ EndcapCalSegmentFinder emEndcapSegmentFinder = new EndcapCalSegmentFinder( // new
+ event.getDetector(), "EMEndcap");
+ EndcapCalSegmentFinder hadEndcapSegmentFinder = new EndcapCalSegmentFinder( // new
+ event.getDetector(), "HADEndcap");
+ EndcapCalSegmentFinder muEndcapSegmentFinder = new EndcapCalSegmentFinder( // new
+ event.getDetector(), "MuonEndcap");
// Loop through all tracks in this event
@@ -88,15 +94,34 @@
double thetMR=Math.atan2(stpr.partR(rpVMR),rpVMR[2]);
System.out.println("MR:Before MUDET");
// Find muon hits
- if(!stpr.getStopTkELow())
- muSegmentFinder.findSegment(event,stpr);
+ if(!stpr.getStopTkELow())
+ muSegmentFinder.findSegment(event,stpr);
rpVMR = stpr.getNewRp();
+
+ //================= For the Endcap
+ if(!stpr.getStopTkELow())
+ emEndcapSegmentFinder.findSegment(event,stpr);
+ // Find had calorimeter hits
+ System.out.println("MR:Before HadEncap");
+ if(!stpr.getStopTkELow())
+ hadEndcapSegmentFinder.findSegment(event,stpr);
+ rpVMR=stpr.getNewRp();
+ thetMR=Math.atan2(stpr.partR(rpVMR),rpVMR[2]);
+ System.out.println("MR:Before MuEndcap");
+ // Find muon hits
+ if(!stpr.getStopTkELow())
+ muEndcapSegmentFinder.findSegment(event,stpr);
+ rpVMR = stpr.getNewRp();
+
+ //---------------------End of the EndCap
+
+
// If segments pass cuts, then create a MuonCandidate object
// and add it to the list
System.out.println("MR:MuonCandidate");
- if (ecalSegmentFinder.getNHits() >= minECalHits &&
- hcalSegmentFinder.getNHits() >= minHCalHits &&
- muSegmentFinder.getNHits() >= minMuHits)
+ if ((ecalSegmentFinder.getNHits()+ emEndcapSegmentFinder.getNHits()) >= minECalHits &&
+ (hcalSegmentFinder.getNHits() + hadEndcapSegmentFinder.getNHits()) >= minHCalHits &&
+ (muSegmentFinder.getNHits() + muEndcapSegmentFinder.getNHits()) >= minMuHits)
{
MuonCandidate muon = new MuonCandidate(trk,
ecalSegmentFinder.getNHits(), ecalSegmentFinder.getNLayersHit(), // C.M. Include ECal
@@ -104,10 +129,18 @@
hcalSegmentFinder.getNHits(), hcalSegmentFinder.getNLayersHit(),
hcalSegmentFinder.getHits(),
muSegmentFinder.getNHits(), muSegmentFinder.getNLayersHit(),
- muSegmentFinder.getHits());
+ muSegmentFinder.getHits(),
+ emEndcapSegmentFinder.getNHits(), emEndcapSegmentFinder.getNLayersHit(), // C.M. Include ECal
+ emEndcapSegmentFinder.getHits(),
+ hadEndcapSegmentFinder.getNHits(), hadEndcapSegmentFinder.getNLayersHit(), // C.M. Include ECal
+ hadEndcapSegmentFinder.getHits(),
+ muEndcapSegmentFinder.getNHits(), muEndcapSegmentFinder.getNLayersHit(), // C.M. Include ECal
+ muEndcapSegmentFinder.getHits());
+
muonList.add(muon);
+
double rho = Math.sqrt(rpVMR[0]*rpVMR[0]+rpVMR[1]*rpVMR[1]);
- double theta = Math.atan2(rho,rpVMR[2])*180/Math.PI;
+ double theta = Math.atan2(rho,rpVMR[2])*180/Math.PI;
System.out.println("MuonReco: #muons="+muonList.getNMuons()
+", #hits: Ecal="+ecalSegmentFinder.getNHits()
+", Hcal="+hcalSegmentFinder.getNHits()
@@ -116,13 +149,21 @@
+", z="+rpVMR[2]
+", rho="+rho
+", theta="+theta );
-
+
}
Vector vtrack = ecalSegmentFinder.getHitPos();
if (debug) System.out.println("ECAL-vtrack="+vtrack+" "+ (vtrack == null ? 0 : vtrack.size()));
vtrack = hcalSegmentFinder.getHitPos();
if (debug) System.out.println("HCAL-vtrack="+vtrack+" "+ (vtrack == null ? 0 : vtrack.size()));
- // Reset for the next track
+ vtrack = muSegmentFinder.getHitPos();
+ if (debug) System.out.println("Mudet-vtrack="+vtrack+" "+ (vtrack == null ? 0 : vtrack.size()));
+ vtrack = emEndcapSegmentFinder.getHitPos();
+ if (debug) System.out.println("EMEndcap-vtrack="+vtrack+" "+ (vtrack == null ? 0 : vtrack.size()));
+ vtrack =hadEndcapSegmentFinder.getHitPos();
+ if (debug) System.out.println("HadEndcap-vtrack="+vtrack+" "+ (vtrack == null ? 0 : vtrack.size()));
+ vtrack =muEndcapSegmentFinder.getHitPos();
+ if (debug) System.out.println("MuEndcap-vtrack="+vtrack+" "+ (vtrack == null ? 0 : vtrack.size()));
+ // Reset for the next track
ecalSegmentFinder.reset(); // C.M.- Include the Ecal inthe code
hcalSegmentFinder.reset();
muSegmentFinder.reset();
@@ -140,18 +181,22 @@
MuonCandidate muon = muonList.getMuonAt(i);
muons.add(muon);
}
-
+
event.put("MuonList", muons, MuonCandidate.class, 0);
Vector v = ecalSegmentFinder.getHitPos();
-
event.put("BarrelEcalPoints",ecalSegmentFinder.getHitPos());
v = hcalSegmentFinder.getHitPos();
-
event.put("BarrelHcalPoints",hcalSegmentFinder.getHitPos());
v =muSegmentFinder.getHitPos();
-
event.put("BarrelMudetPoints",muSegmentFinder.getHitPos());
+
+ v = emEndcapSegmentFinder.getHitPos();
+ event.put("BarrelEMEndcapPoints",ecalSegmentFinder.getHitPos());
+ v = hadEndcapSegmentFinder.getHitPos();
+ event.put("BarrelHadEndcapPoints",hcalSegmentFinder.getHitPos());
+ v =muEndcapSegmentFinder.getHitPos();
+ event.put("BarrelMudetEndcapPoints",muSegmentFinder.getHitPos());
}
public int getMinECalHits() // C.M.- Include Ecal in the code
@@ -231,8 +276,8 @@
private String emCalName;
private String hadCalName;
private String muSysName;
- private BarrelCalSegmentFinder ecalSegmentFinder; // C.M.-Include Ecal in thecode
- private BarrelCalSegmentFinder hcalSegmentFinder;
+ //private BarrelCalSegmentFinder ecalSegmentFinder; // C.M.-Include Ecal in thecode
+ // private BarrelCalSegmentFinder hcalSegmentFinder;
public boolean debug = false;
}