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;
+ }
}
|