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