Commit in lcsim/src/org/lcsim/recon/muon on MAIN
MuonReco.java+60-151.14 -> 1.15
C.Milstene and J. Odili-Oct09-2006- extension for the endcap

lcsim/src/org/lcsim/recon/muon
MuonReco.java 1.14 -> 1.15
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;
 }
 
CVSspam 0.2.8