diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/banks/HitReader.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/banks/HitReader.java index eaa35990c4..a2029046df 100644 --- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/banks/HitReader.java +++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/banks/HitReader.java @@ -331,10 +331,11 @@ private void read_HBHits(TimeToDistanceEstimator tde) { DataBank pbank = event.getBank(pointName); for (int i = 0; i < pbank.rows(); i++) { - id2tid.put((int)pbank.getShort("id", i), (int)pbank.getShort("tid", i)); - id2tidB.put((int)pbank.getShort("id", i), (double)pbank.getFloat("B", i)); - id2tidtFlight.put((int)pbank.getShort("id", i), (double)pbank.getFloat("TFlight", i)); - id2tidtProp.put((int)pbank.getShort("id", i), (double)pbank.getFloat("TProp", i)); + int id = pbank.getShort("id",i); + id2tid.put(id, (int)pbank.getShort("tid", i)); + id2tidB.put(id, (double)pbank.getFloat("B", i)); + id2tidtFlight.put(id, (double)pbank.getFloat("TFlight", i)); + id2tidtProp.put(id, (double)pbank.getFloat("TProp", i)); } DataBank bank = event.getBank(bankName); @@ -356,6 +357,10 @@ private void read_HBHits(TimeToDistanceEstimator tde) { double[] tFlight = new double[rows]; double[] trkDoca = new double[rows]; + final boolean ismc = event.hasBank("MC::Particle") ? true : event.getBank("RUN::config").getInt("run",0)<=100; + + final double T_Start = ismc || !event.hasBank(recBankName) ? 0 : event.getBank(recBankName).getFloat("startTime", 0); + for (int i = 0; i < rows; i++) { id[i] = bank.getShort("id", i); status[i] = bank.getShort("status", i); @@ -378,8 +383,7 @@ private void read_HBHits(TimeToDistanceEstimator tde) { tFlight[i] = this.id2tidtFlight.get(id[i]); } - if (event.hasBank("MC::Particle") || - event.getBank("RUN::config").getInt("run", 0) < 100) { + if (ismc) { tProp[i] = 0; tFlight[i] = 0; } @@ -393,25 +397,15 @@ private void read_HBHits(TimeToDistanceEstimator tde) { continue; } - double T_0 = 0; - double T_Start = 0; - if (!event.hasBank(recBankName)) { continue; } - if (event.hasBank(recBankName) && - event.getBank(recBankName).getFloat("startTime", 0)==-1000) { + double T_0 = 0; + if (T_Start == -1000) { continue; } - if (!event.hasBank("MC::Particle") && - event.getBank("RUN::config").getInt("run", 0) > 100) { - //T_0 = this.getT0(sector[i], slayer[i], layer[i], wire[i], T0, T0ERR)[0]; - if (event.hasBank(recBankName)) - T_Start = event.getBank(recBankName).getFloat("startTime", 0); - } - T_0 = this.getT0(sector[i], slayer[i], layer[i], wire[i], t0s)[0]; FittedHit hit = new FittedHit(sector[i], slayer[i], layer[i], wire[i], tdc[i], jitter[i], id[i]); hit.set_Id(id[i]); @@ -615,18 +609,17 @@ private void setToPionHypothesis(DataEvent event, int trkId, FittedHit hit) { double pz=0; if (!event.hasBank(partBankName) || !event.hasBank(trackBankName)) return ; - DataBank bank = event.getBank(trackBankName); + DataBank tbank = event.getBank(trackBankName); + DataBank pbank = event.getBank(partBankName); - int rows = bank.rows(); + int rows = tbank.rows(); for (int i = 0; i < rows; i++) { - if (bank.getByte("detector", i) == 6 && - bank.getShort("index", i) == trkId - 1) { - px = event.getBank(partBankName).getFloat("px", - bank.getShort("pindex", i)); - py = event.getBank(partBankName).getFloat("py", - bank.getShort("pindex", i)); - pz = event.getBank(partBankName).getFloat("pz", - bank.getShort("pindex", i)); + if (tbank.getByte("detector", i) == 6 && + tbank.getShort("index", i) == trkId - 1) { + short pindex = tbank.getShort("pindex",i); + px = pbank.getFloat("px",pindex); + py = pbank.getFloat("py",pindex); + pz = pbank.getFloat("pz",pindex); } }