diff --git a/reconstruction/alert/src/main/java/org/jlab/rec/constants/CalibrationConstantsLoader.java b/reconstruction/alert/src/main/java/org/jlab/rec/alert/constants/CalibrationConstantsLoader.java similarity index 100% rename from reconstruction/alert/src/main/java/org/jlab/rec/constants/CalibrationConstantsLoader.java rename to reconstruction/alert/src/main/java/org/jlab/rec/alert/constants/CalibrationConstantsLoader.java diff --git a/reconstruction/alert/src/main/java/org/jlab/rec/atof/hit/HitFinder.java b/reconstruction/alert/src/main/java/org/jlab/rec/atof/hit/HitFinder.java index 012bb0df75..20e1864234 100644 --- a/reconstruction/alert/src/main/java/org/jlab/rec/atof/hit/HitFinder.java +++ b/reconstruction/alert/src/main/java/org/jlab/rec/atof/hit/HitFinder.java @@ -63,7 +63,7 @@ public void setWedgeHits(ArrayList wedge_hits) { * @param atof the {@link Detector} representing the atof geometry to match * the sector/layer/component to x/y/z. */ - public void findHits(DataEvent event, Detector atof) { + public void findHits(DataEvent event, Detector atof, float startTime) { //For each event a list of bar hits and a list of wedge hits are filled this.barHits.clear(); this.wedgeHits.clear(); @@ -72,7 +72,6 @@ public void findHits(DataEvent event, Detector atof) { //Check that the event start time is defined are done in the engine //if (event.hasBank("REC::Event") && // event.getBank("REC::Event").getFloat("startTime", 0)!=-1000) - float startTime = event.getBank("REC::Event").getFloat("startTime", 0); int nt = bank.rows(); // number of hits //Hits in the bar downstream and upstream will be matched diff --git a/reconstruction/alert/src/main/java/org/jlab/service/atof/ATOFEngine.java b/reconstruction/alert/src/main/java/org/jlab/service/atof/ATOFEngine.java index 81f5fc265f..13175a4d3d 100644 --- a/reconstruction/alert/src/main/java/org/jlab/service/atof/ATOFEngine.java +++ b/reconstruction/alert/src/main/java/org/jlab/service/atof/ATOFEngine.java @@ -1,9 +1,9 @@ package org.jlab.service.atof; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; import java.util.Map; +import java.util.logging.Logger; import org.jlab.clas.reco.ReconstructionEngine; import org.jlab.io.base.DataBank; @@ -38,6 +38,8 @@ public ATOFEngine() { private Detector ATOF; private double b; //Magnetic field + private boolean useStartTime = true; + static final Logger LOGGER = Logger.getLogger(ATOFEngine.class.getName()); public void setB(double B) { this.b = B; @@ -56,15 +58,20 @@ public Detector getATOF() { @Override public boolean processDataEvent(DataEvent event) { - if (!event.hasBank("RUN::config")) { return true; } - - //This assumes the FD reconstruction produced an event with good startTime - //All start time handling could be moved as an EB-type step later - if (!event.hasBank("REC::Event") || event.getBank("REC::Event").getFloat("startTime", 0)==-1000) { - return true; + float startTime = 0; + if(useStartTime) + { + //This assumes the FD reconstruction produced an event with good startTime + //All start time handling could be moved as an EB-type step later + if (!event.hasBank("REC::Event")) { + LOGGER.severe("REC::Event bank could not be read in ATOF engine while requestign starttime"); + return true; + } + //Deal with FT TODO : if(event.getBank("REC::Event").getFloat("startTime", 0)==-1000) + else startTime = event.getBank("REC::Event").getFloat("startTime", 0); } DataBank bank = event.getBank("RUN::config"); @@ -98,7 +105,7 @@ public boolean processDataEvent(DataEvent event) { // Why do we have to "find" hits? //Hit finder init HitFinder hitfinder = new HitFinder(); - hitfinder.findHits(event, ATOF); + hitfinder.findHits(event, ATOF, startTime); ArrayList WedgeHits = hitfinder.getWedgeHits(); ArrayList BarHits = hitfinder.getBarHits(); @@ -149,15 +156,19 @@ public boolean init() { } requireConstants(tableMap); - this.getConstantsManager().setVariation("default"); - this.registerOutputBank("ATOF::hits", "ATOF::clusters"); - + String useStartTimeString = "UseStartTime"; + if(this.getEngineConfigString(useStartTimeString)!=null) { + if ("true".equals(this.getEngineConfigString(useStartTimeString))) + this.useStartTime = true; + else if ("false".equals(this.getEngineConfigString(useStartTimeString))) + this.useStartTime = false; + else {LOGGER.severe("Invalid option parsed for ATOF UseStartTime"); return false;} + } return true; } public static void main(String arg[]) { - } }