Author: [log in to unmask] Date: Wed Jan 27 07:00:05 2016 New Revision: 4149 Log: fix crate#, adjust cuts, add histo Modified: java/trunk/recon/src/main/java/org/hps/recon/filtering/CosmicPMTFilter.java Modified: java/trunk/recon/src/main/java/org/hps/recon/filtering/CosmicPMTFilter.java ============================================================================= --- java/trunk/recon/src/main/java/org/hps/recon/filtering/CosmicPMTFilter.java (original) +++ java/trunk/recon/src/main/java/org/hps/recon/filtering/CosmicPMTFilter.java Wed Jan 27 07:00:05 2016 @@ -3,7 +3,9 @@ import org.hps.recon.ecal.FADCGenericHit; import org.lcsim.event.EventHeader; import org.lcsim.event.GenericObject; +import org.lcsim.geometry.Detector; import org.lcsim.util.Driver; +import org.lcsim.util.aida.AIDA; public class CosmicPMTFilter extends Driver { @@ -11,18 +13,25 @@ static final String CLASSNAME="FADCGenericHits"; // hardware location of PMTs: - static final int CRATE=39; + static final int CRATE=2; // this is hps2, crate #37 in EVIO static final int SLOT=20; static final int CHANNELS[]={13,14}; // cuts on pulse integrals for cosmic signals (units ADC): - static final float CUTS[]={1534,3242}; + static final float CUTS[]={2000,4000}; // number of samples to use at beginning of window for pedestal: static final int NPEDSAMP=20; + + AIDA aida = AIDA.defaultInstance(); + + public void detectorChanged(Detector detector) { + aida.tree().cd("/"); + aida.histogram2D("CosmicPMTs",400,0,10000,400,0,10000); + } + + public void process(EventHeader event) { - public void process(EventHeader event) { - // find PMT data: FADCGenericHit pmt1=null,pmt2=null; if (!event.hasCollection(GenericObject.class,CLASSNAME)) @@ -35,10 +44,13 @@ } } if (pmt1==null || pmt2==null) throw new Driver.NextEventException(); - - // put cuts on pulse integrals: + + // calculate and histogram pulse integrals: float pulse1=getPulseIntegral(pmt1); float pulse2=getPulseIntegral(pmt2); + aida.histogram2D("CosmicPMTs").fill(pulse1,pulse2); + + // cut on pulse integrals: if (pulse1<CUTS[0] || pulse2<CUTS[1]) throw new Driver.NextEventException(); }