Print

Print


Author: [log in to unmask]
Date: Thu Sep  1 04:21:24 2016
New Revision: 4475

Log:
modified skim filters so that they use beam energy from conditions database for kinematic cuts

Modified:
    java/trunk/recon/src/main/java/org/hps/recon/filtering/EventReconFilter.java
    java/trunk/recon/src/main/java/org/hps/recon/filtering/FEEFilterDriver.java
    java/trunk/recon/src/main/java/org/hps/recon/filtering/MollerCandidateFilter.java
    java/trunk/recon/src/main/java/org/hps/recon/filtering/V0CandidateFilter.java

Modified: java/trunk/recon/src/main/java/org/hps/recon/filtering/EventReconFilter.java
 =============================================================================
--- java/trunk/recon/src/main/java/org/hps/recon/filtering/EventReconFilter.java	(original)
+++ java/trunk/recon/src/main/java/org/hps/recon/filtering/EventReconFilter.java	Thu Sep  1 04:21:24 2016
@@ -1,6 +1,12 @@
 package org.hps.recon.filtering;
 
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.hps.conditions.beam.BeamEnergy.BeamEnergyCollection;
 import org.lcsim.util.Driver;
+
+import org.lcsim.geometry.Detector;
 
 /**
 
@@ -8,6 +14,7 @@
  @version $Id:
  */
 public class EventReconFilter extends Driver{
+    private static final Logger LOGGER = Logger.getLogger(EventReconFilter.class.getPackage().getName());
 
     private int nprocessed=0;
     private int npassed=0;
@@ -34,4 +41,24 @@
     public void skipEvent(){
         throw new Driver.NextEventException();
     }
+    
+    protected Double beamEnergy;
+    public void setBeamEnergy(double e){
+    this.beamEnergy = e;
+    }
+    public double getBeamEnergy(){
+    return this.beamEnergy;
+    }
+    @Override
+    protected void detectorChanged(Detector detector){
+        BeamEnergyCollection beamEnergyCollection = 
+            this.getConditionsManager().getCachedConditions(BeamEnergyCollection.class, "beam_energies").getCachedData();        
+        if(beamEnergy== null && beamEnergyCollection != null && beamEnergyCollection.size() != 0)
+            beamEnergy = beamEnergyCollection.get(0).getBeamEnergy();
+        else{
+            LOGGER.log(Level.WARNING, "warning:  beam energy not found.  Using a 6.6 GeV as the default energy");
+            beamEnergy = 6.6;
+        }
+       
+    }
 }

Modified: java/trunk/recon/src/main/java/org/hps/recon/filtering/FEEFilterDriver.java
 =============================================================================
--- java/trunk/recon/src/main/java/org/hps/recon/filtering/FEEFilterDriver.java	(original)
+++ java/trunk/recon/src/main/java/org/hps/recon/filtering/FEEFilterDriver.java	Thu Sep  1 04:21:24 2016
@@ -7,8 +7,9 @@
 import org.hps.record.triggerbank.TIData;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.GenericObject;
-import org.lcsim.util.Driver;
-public class FEEFilterDriver extends Driver
+import org.lcsim.geometry.Detector;
+
+public class FEEFilterDriver extends EventReconFilter
 {
     //Set min seed energy value, default to 2015 run
     private double seedCut = 0.4;
@@ -42,7 +43,7 @@
 
     // only keep singles triggers:
     if (!event.hasCollection(GenericObject.class,"TriggerBank"))
-      throw new Driver.NextEventException();
+        skipEvent();
     boolean isSingles=false;
     for (GenericObject gob : event.get(GenericObject.class,"TriggerBank"))
     {
@@ -54,10 +55,10 @@
         break;
       }
     }
-    if (!isSingles) throw new Driver.NextEventException();
+    if (!isSingles) skipEvent();
 
     if (!event.hasCollection(Cluster.class, "EcalClusters"))
-      throw new Driver.NextEventException();
+        skipEvent();
     
     for (Cluster cc : event.get(Cluster.class,"EcalClusters"))
     {
@@ -73,6 +74,14 @@
         return;
     }
 
-    throw new Driver.NextEventException();
+    skipEvent();
   }
+  
+  protected void detectorChanged(Detector detector){
+      super.detectorChanged(detector);
+      //seedCut = .38*beamEnergy;
+      seedCut = 0;
+      clusterCut = .57*beamEnergy;
+  }
+  
 }

Modified: java/trunk/recon/src/main/java/org/hps/recon/filtering/MollerCandidateFilter.java
 =============================================================================
--- java/trunk/recon/src/main/java/org/hps/recon/filtering/MollerCandidateFilter.java	(original)
+++ java/trunk/recon/src/main/java/org/hps/recon/filtering/MollerCandidateFilter.java	Thu Sep  1 04:21:24 2016
@@ -62,12 +62,7 @@
 
     private double _clusterDeltaTimeCut = 2.5;
 
-    @Override
-    protected void detectorChanged(Detector detector)
-    {
-        ecal = (HPSEcal3) DatabaseConditionsManager.getInstance().getDetectorObject().getSubdetector("Ecal");
-        neighborMap = ecal.getNeighborMap();
-    }
+    
 
     @Override
     protected void process(EventHeader event)
@@ -407,4 +402,25 @@
         _clusterEDiffHi = d;
     }
 
+    protected void detectorChanged(Detector detector){
+    /*tab*/
+        super.detectorChanged(detector);
+        ecal = (HPSEcal3) DatabaseConditionsManager.getInstance().getDetectorObject().getSubdetector("Ecal");
+        neighborMap = ecal.getNeighborMap();
+        _mollerMomentumSumMin = 0.80*beamEnergy;
+        _mollerMomentumSumMax = 1.25*beamEnergy;
+        _fullEnergyCut = 0.80*beamEnergy;
+        
+        _clusterESumLo = 0.80*beamEnergy;
+        _clusterESumHi = 1.05*beamEnergy;
+        _clusterEDiffLo = -0.3*beamEnergy;
+        _clusterEDiffHi = 0.3*beamEnergy;
+        
+        //this is a temporary fix.  TODO get Jeremy to put cluster time offset
+        //in the run database
+        if(beamEnergy > 1.5){
+            _clusterTimeHi = 62;
+            _clusterTimeLo = 54;
+        }
+    }
 }

Modified: java/trunk/recon/src/main/java/org/hps/recon/filtering/V0CandidateFilter.java
 =============================================================================
--- java/trunk/recon/src/main/java/org/hps/recon/filtering/V0CandidateFilter.java	(original)
+++ java/trunk/recon/src/main/java/org/hps/recon/filtering/V0CandidateFilter.java	Thu Sep  1 04:21:24 2016
@@ -10,6 +10,7 @@
 import org.hps.record.scalers.ScalerData;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.ReconstructedParticle;
+import org.lcsim.geometry.Detector;
 
 /**
  * Class to strip off trident candidates. Currently defined as: e+ e- events
@@ -187,4 +188,10 @@
     public void setKeepEpicsDataEvents(boolean b) {
         _keepEpicsDataEvents = b;
     }
+    
+    protected void detectorChanged(Detector detector){
+          super.detectorChanged(detector);
+          trackPMax = 0.85*beamEnergy;
+          v0PMax = 1.35*beamEnergy;
+      }
 }