Print

Print


Commit in lcsim/src/org/lcsim/recon/muon on MAIN
MuonReco.java+68-921.11 -> 1.12
C. Milstene & T. Johnson-01-2006- To include the reconstructed tracks into Wired-

lcsim/src/org/lcsim/recon/muon
MuonReco.java 1.11 -> 1.12
diff -u -r1.11 -r1.12
--- MuonReco.java	30 Jan 2006 21:58:51 -0000	1.11
+++ MuonReco.java	16 Jun 2006 20:41:28 -0000	1.12
@@ -16,22 +16,23 @@
 //  Use the stepper instead of the swimmer in BarrelCalsegmentFinder
 // and in MuonCalSegmentFinder to include dE/dx and the magnetic field
 //  C. Milstene
-public class MuonReco extends Driver
+
+   public class MuonReco extends Driver
 {
     public MuonReco()
     {
-        this(0,1, 1);	// renew
+        this(0,1, 0);	// renew
     }
-    
+
     public MuonReco(int ecalHitsCut, int hcalHitsCut, int muHitsCut)
     {
         this("EcalBarrHits","HcalBarrHits", "MuonBarrHits", ecalHitsCut,hcalHitsCut, muHitsCut);
     }
-    
+
     public MuonReco(String ecalName,String hcalName, String muName,
     int ecalHitsCut,int hcalHitsCut,int muHitsCut)
     {
-        
+
         // Initialize data
         emCalName  = ecalName;      // new
         hadCalName = hcalName;
@@ -40,78 +41,52 @@
         minHCalHits = hcalHitsCut;
         minMuHits = muHitsCut;
     }
-    
+
     protected void process(EventHeader event)
     {
 
         // Instantiate MuonList object to hold list of muon candidates
         MuonList muonList = new MuonList();
-        
+
         // Create segment finders - one for the hadron calorimeter,
         // and one for the muon calorimeter
         BarrelCalSegmentFinder ecalSegmentFinder = new BarrelCalSegmentFinder(		// new
         event.getDetector(), "EMBarrel");
-        
+
         BarrelCalSegmentFinder hcalSegmentFinder = new BarrelCalSegmentFinder(
         event.getDetector(), "HADBarrel");
         MuonCalSegmentFinder muSegmentFinder = new MuonCalSegmentFinder(
         event.getDetector(), "MuonBarrel");
-        
+
         // Loop through all tracks in this event
-//         for (Enumeration e = event.getTrackList().getTracks();
-//         e.hasMoreElements();)
 
         for( Track trk : event.getTracks() )
-        // Dec-25-05
-      // List<Track> recoTracks = event.get(Track.class, "CombinedTracks");
-      //	System.out.println("TrackingCheater: # parts="+recoTracks.size());
-    // 	for( Track trk : recoTracks)
-        { 
-	    //double[] vtx = trk.getReferencePoint() ;
-            //double[] pvec =  trk.getMomentum()  ;
+        {
 	    int icharge =trk.getCharge();
-	   // double massM = ((CheatTrack)trk).getMCParticle().getMass()  ;
-             	     
 	   // Instantiate TrkParams object for this track
               double [] params = trk.getTrackParameters();
-	      System.out.println("MR new trkParms: "+params[0]+" "+params[1]+" "+params[2]+" "+params[3]);
+
               TrkParams trkParams = new TrkParams(
                params[0], params[1], params[2], params[3], params[4]);
-           // Dec 25-05 -C.M.  
+           // Dec 25-05 -C.M.
             TrackStepper stpr     = new TrackStepper(); //C.M.- Stepper for dE/dx Calculation
             double []rpVMR = new double[8];
-            double massM = 0.105658369; 
-	    	      	       
-	   // for(int i=0; i<3;i++)
-	   // {
-	   //     rpVMR [i]=vtx[i] ; rpVMR[i+3]=pvec[i];
-	   // }
-	     
-	    // rpVMR[7]=icharge; rpVMR[6]= massM;
-            
-	    // stpr.setNewRp(rpVMR); // update phase space point -Dec-25-05-C.M.
-	   //End -Dec 25-05
-	    
+            double massM = 0.105658369;
             rpVMR          = stpr.rpFromTrkParams(trkParams,massM);
-            System.out.println("MR: Before EMCal");
-	    System.out.println("MR: from Tkparams xyz="+ rpVMR[0]+" "+rpVMR[1]+" "+rpVMR[2]);
-	    System.out.println("MR: from Tkparams Pxyz="+rpVMR[3]+" "+rpVMR[4]+" "+rpVMR[5]);
+
             // Find em calorimeter hits
             boolean stoppedTk= stpr.getStopTkELow();
+            System.out.println("a");
             if(!stpr.getStopTkELow())
                 ecalSegmentFinder.findSegment(event,stpr);
-            
             // Find had calorimeter hits
             System.out.println("MR:Before HCAL");
             if(!stpr.getStopTkELow())
                 hcalSegmentFinder.findSegment(event,stpr);
             rpVMR=stpr.getNewRp();
-            double thetMR=Math.atan2(stpr.partR(),rpVMR[2]);
-            System.out.println("swimOnly: Pabs="+stpr.partPabs()+", theta="+(thetMR*180/Math.PI)+", trk="+trk);
-
+            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);
             rpVMR = stpr.getNewRp();
@@ -129,123 +104,124 @@
                 hcalSegmentFinder.getHits(),
                 muSegmentFinder.getNHits(), muSegmentFinder.getNLayersHit(),
                 muSegmentFinder.getHits());
-		double x = rpVMR[0];
-		double y = rpVMR[1];
-		double rho = Math.sqrt(x*x+y*y);
-		double theta = Math.atan2(rho,rpVMR[2])*180/Math.PI;
-		System.out.println("MuonReco: #muons="+muonList.getNMuons()
- 	          +", #hits: Ecal="+ecalSegmentFinder.getNHits()
-		  +", Hcal="+hcalSegmentFinder.getNHits()
-		   +", muon="+muSegmentFinder.getNHits()
-				   +", E="+stpr.partPabs()
+                double rho = Math.sqrt(rpVMR[0]*rpVMR[0]+rpVMR[1]*rpVMR[1]);
+		        double theta = Math.atan2(rho,rpVMR[2])*180/Math.PI;
+		        System.out.println("MuonReco: #muons="+muonList.getNMuons()
+ 	               +", #hits: Ecal="+ecalSegmentFinder.getNHits()
+		           +", Hcal="+hcalSegmentFinder.getNHits()
+		           +", muon="+muSegmentFinder.getNHits()
+				   +", E="+stpr.partPabs(rpVMR)
 				   +", z="+rpVMR[2]
 				   +", rho="+rho
 				   +", theta="+theta  );
             }
             Vector vtrack = ecalSegmentFinder.getHitPos();
-         System.out.println("ECAL-vtrack="+vtrack+" "+ (vtrack == null ? 0 : vtrack.size()));
-            // Reset for the next track
-         vtrack = hcalSegmentFinder.getHitPos();
-         System.out.println("HCAL-vtrack="+vtrack+" "+ (vtrack == null ? 0 : vtrack.size())); 
+            System.out.println("ECAL-vtrack="+vtrack+" "+ (vtrack == null ? 0 : vtrack.size()));
+            vtrack = hcalSegmentFinder.getHitPos();
+            System.out.println("HCAL-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();
-	    stpr.clear();                      // reset track in stepper/phasspace
+	        stpr.clear();                      // reset track in stepper/phasspace
         }
-        
+
         // Close the muon list (this will sort muon candidates by Pt)
-        
+
         muonList.close();
-	System.out.println("MuonReco: Final # muons="+muonList.getNMuons());
+	    //System.out.println("MuonReco: Final # muons="+muonList.getNMuons());
 
         // Add the muon list to the event
         List<MuonCandidate> muons = new Vector<MuonCandidate>();
-	for( int i=0; i<muonList.getNMuons(); ++i ) {
+	    for( int i=0; i<muonList.getNMuons(); ++i ) {
 	    MuonCandidate muon = muonList.getMuonAt(i);
 	    muons.add(muon);
-	}        
-	System.out.println("Writing muons to event: # muons = "+muons.size());
+	}
+	    //System.out.println("Writing muons to event: # muons = "+muons.size());
         event.put("MuonList", muons, MuonCandidate.class, 0);
-        
+
         Vector v = ecalSegmentFinder.getHitPos();
         System.out.println("v="+v+" "+ (v == null ? 0 : v.size()));
-        event.put("ecalBarrelPoints",ecalSegmentFinder.getHitPos());
+        event.put("BarrelEcalPoints",ecalSegmentFinder.getHitPos());
         v = hcalSegmentFinder.getHitPos();
         System.out.println("v hcal"+v+" " +(v==null ? 0:v.size()));
-        event.put("hcalBarrelPoints",hcalSegmentFinder.getHitPos());
+        event.put("BarrelHcalPoints",hcalSegmentFinder.getHitPos());
+        v =muSegmentFinder.getHitPos();
+        System.out.println("v mudet"+v+" " +(v==null ? 0:v.size()));
+        event.put("BarrelMudetPoints",muSegmentFinder.getHitPos());
     }
-    
+
     public int getMinECalHits()			// C.M.- Include Ecal in the code
     {
-        
+
         // Get the electromagnetic calorimeter hits cut
-        
+
         return(minECalHits);
     }
-    
+
     public int getMinHCalHits()
     {
-        
+
         // Get the hadron calorimeter hits cut
-        
+
         return(minHCalHits);
     }
-    
+
     public int getMinMuHits()
     {
-        
+
         // Get the muon hits cut
-        
+
         return(minMuHits);
     }
-    
+
     public void setMinECalHits(int cut)		// new
     {
-        
+
         // Set the hadron calorimeter hits cut
-        
+
         minECalHits = cut;
     }
-    
+
     public void setMinHCalHits(int cut)
     {
-        
+
         // Set the hadron calorimeter hits cut
-        
+
         minHCalHits = cut;
     }
-    
+
     public void setMinMuHits(int cut)
     {
-        
+
         // Set the muon hits cut
-        
+
         minMuHits = cut;
     }
     public String getEmCalName()	// new
     {
-        
+
         // Get the name of the electromagnetic calorimeter
-        
+
         return(emCalName);
     }
-    
+
     public String getHadCalName()
     {
-        
+
         // Get the name of the hadron calorimeter
-        
+
         return(hadCalName);
     }
-    
+
     public String getMuSysName()
     {
-        
+
         // Get the name of the muon system
-        
+
         return(muSysName);
     }
-    
+
     private int minECalHits;	// C.M- Include EM in the code
     private int minHCalHits;
     private int minMuHits;
CVSspam 0.2.8