Print

Print


Author: holly
Date: Sun Dec 21 07:15:56 2014
New Revision: 1800

Log:
ensure shared hits in calorimeter hit list

Modified:
    java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalClusterIC.java

Modified: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalClusterIC.java
 =============================================================================
--- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalClusterIC.java	(original)
+++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalClusterIC.java	Sun Dec 21 07:15:56 2014
@@ -10,12 +10,10 @@
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.hps.recon.ecal.HPSEcalClusterIC;
 import org.lcsim.detector.IGeometryInfo;
 import org.lcsim.detector.solids.Trd;
 import org.lcsim.event.CalorimeterHit;
@@ -84,24 +82,6 @@
     double minTime = 0.0;
     // Maximum time cut window range. Units in ns.
     double timeWindow = 20.0;
-    // Variables for electron position corrections
-    static final double ELECTRON_POS_A = 0.0066;
-    static final double ELECTRON_POS_B = -0.03;
-    static final double ELECTRON_POS_C = 0.028;
-    static final double ELECTRON_POS_D = -0.45;
-    static final double ELECTRON_POS_E = 0.465;
-    // Variables for positron position corrections
-    static final double POSITRON_POS_A = 0.0072;
-    static final double POSITRON_POS_B = -0.031;
-    static final double POSITRON_POS_C = 0.007;
-    static final double POSITRON_POS_D = 0.342;
-    static final double POSITRON_POS_E = 0.108;
-    // Variables for photon position corrections
-    static final double PHOTON_POS_A = 0.005;
-    static final double PHOTON_POS_B = -0.032;
-    static final double PHOTON_POS_C = 0.011;
-    static final double PHOTON_POS_D = -0.037;
-    static final double PHOTON_POS_E = 0.294;
     
        
     public void setClusterCollectionName(String clusterCollectionName) {
@@ -573,19 +553,6 @@
 			Point hitIndex = new Point(ix, iy);
             rawPosition[2] = correctedPositionMap.get(hitIndex)[2];
             
-            
-            
-            // Apply position correction factors:
-            // Position correction for electron:
-            int pdg = 11;
-            double xCorr = posCorrection(pdg, xCl*10.0, seedEnergyTot.get(seedP));
-           
-            double[] corrPosition = new double[3];
-            corrPosition[0] = xCorr*10.0;//mm
-            corrPosition[1] = yCl*10.0;//mm
-            corrPosition[2] = correctedPositionMap.get(hitIndex)[2];
-                        
-            corrSeedPosition.put(seedP, corrPosition);
             rawSeedPosition.put(seedP, rawPosition);
 
         	
@@ -623,12 +590,14 @@
                 			}
                 		}
                 		
-                    for (Map.Entry<CalorimeterHit, List<CalorimeterHit>> entry4 : commonHits.entrySet()) {
-                        if (entry4.getValue().contains(entry2.getKey())) {                       	
-                        	// Add shared hits for energy distribution between clusters
-                            cluster.addSharedHit(entry4.getKey()); 
-                        }
-                    }
+                		for (Map.Entry<CalorimeterHit, List<CalorimeterHit>> entry4 : commonHits.entrySet()) {
+                			if (entry4.getValue().contains(entry2.getKey())) {                       	
+                				// Add shared hits for energy distribution between clusters
+                				cluster.addSharedHit(entry4.getKey()); 
+                				//fixes bug for SIO Writer?
+                            	cluster.addHit(entry4.getKey()); 
+                			}
+                		}
                                         
                     //Input uncorrected cluster energies
             		if (seedEnergyTot.values().size() > 0){
@@ -636,8 +605,7 @@
             			cluster.setUncorrectedEnergy(seedEnergyTot.get(entry2.getKey()));
             			}
 
-            		//Input both uncorrected and corrected cluster positions. 
-            		cluster.setCorrPosition(corrSeedPosition.get(entry2.getKey()));
+            		//Input uncorrected cluster positions. 
             		cluster.setRawPosition(rawSeedPosition.get(entry2.getKey()));
                   
                     
@@ -756,62 +724,8 @@
     	}
     	return isSeed;	
     }
-    /**
-     * Calculates energy correction based on cluster raw energy and particle type as per 
-     *<a href="https://misportal.jlab.org/mis/physics/hps_notes/index.cfm?note_year=2014">HPS Note 2014-001</a>
-     * @param pdg Particle id as per PDG
-     * @param rawEnergy Raw Energy of the cluster (sum of hits with shared hit distribution)
-     * @return Corrected Energy
-     */    
-
-    
-    /**
-     * Calculates position correction based on cluster raw energy, x calculated position, 
-     * and particle type as per 
-     * <a href="https://misportal.jlab.org/mis/physics/hps_notes/index.cfm?note_year=2014">HPS Note 2014-001</a>
-     * @param pdg Particle id as per PDG
-     * @param xCl Calculated x centroid position of the cluster, uncorrected, at face
-     * @param rawEnergy Raw energy of the cluster (sum of hits with shared hit distribution)
-     * @return Corrected x position
-     */
-    public double posCorrection(int pdg, double xPos, double rawEnergy){
-    	double xCl = xPos/10.0;//convert to mm
-    	if (pdg == 11) { //Particle is electron    	
-    		double xCorr = positionCorrection(xCl, rawEnergy, ELECTRON_POS_A, ELECTRON_POS_B, ELECTRON_POS_C, ELECTRON_POS_D, ELECTRON_POS_E);
-    		return xCorr*10.0;
-    	}
-    	else if (pdg == -11) {// Particle is positron   	
-    		double xCorr = positionCorrection(xCl, rawEnergy, POSITRON_POS_A, POSITRON_POS_B, POSITRON_POS_C, POSITRON_POS_D, POSITRON_POS_E);
-    		return xCorr*10.0;
-    	}
-    	else if (pdg == 22) {// Particle is photon  	
-    		double xCorr = positionCorrection(xCl, rawEnergy, PHOTON_POS_A, PHOTON_POS_B, PHOTON_POS_C, PHOTON_POS_D, PHOTON_POS_E);
-    		return xCorr*10.0;
-    	}
-    	else { //Unknown 
-    		double xCorr = xCl;
-    		return xCorr*10.0;}
-    	}
-    
-    
-   /**
-    * Calculates the position correction in cm using the raw energy and variables associated with the fit
-    * of the particle as described in  
-    * <a href="https://misportal.jlab.org/mis/physics/hps_notes/index.cfm?note_year=2014">HPS Note 2014-001</a>
-    * @param xCl
-    * @param rawEnergy
-    * @param varA
-    * @param varB
-    * @param varC
-    * @param varD
-    * @param varE
-    * @return
-    */    
-    public double positionCorrection(double xCl, double rawEnergy, double varA, double varB, double varC, double varD, double varE){
-    	double xCorr = xCl-(varA/Math.sqrt(rawEnergy) + varB )*xCl-
-				(varC*rawEnergy + varD/Math.sqrt(rawEnergy) + varE);
-    	return xCorr;
-    }
    
+    
+
     	
  }