44import java .util .ArrayList ;
55import java .util .Arrays ;
66import java .util .List ;
7+ import java .util .TreeMap ;
78import java .util .logging .Level ;
89import java .util .logging .Logger ;
910import org .jlab .coda .jevio .ByteDataTransformer ;
@@ -40,6 +41,7 @@ public class CodaEventDecoder {
4041 private final List <Integer > triggerWords = new ArrayList <>();
4142 JsonObject epicsData = new JsonObject ();
4243 List <EvioTreeBranch > branchList = null ;
44+ TreeMap <Integer ,EvioTreeBranch > branchMap = null ;
4345
4446 private int tiMaster = -1 ;
4547
@@ -55,11 +57,11 @@ public CodaEventDecoder(){}
5557 */
5658 void cacheBranches (EvioDataEvent event ) {
5759 branchList = getEventBranches (event );
58- // branchMap = new TreeMap<>();
59- // for (EvioTreeBranch branch : branchList) {
60- // if (!branchMap.containsKey(branch.getTag()))
61- // branchMap.put(branch.getTag(), branch);
62- // }
60+ branchMap = new TreeMap <>();
61+ for (EvioTreeBranch branch : branchList ) {
62+ if (!branchMap .containsKey (branch .getTag ()))
63+ branchMap .put (branch .getTag (), branch );
64+ }
6365 }
6466
6567 /**
@@ -340,10 +342,7 @@ public List<EvioTreeBranch> getEventBranches(EvioDataEvent event){
340342 * @return
341343 */
342344 public EvioTreeBranch getEventBranch (List <EvioTreeBranch > branches , int tag ){
343- for (EvioTreeBranch branch : branches ){
344- if (branch .getTag ()==tag ) return branch ;
345- }
346- return null ;
345+ return branchMap .getOrDefault (tag , null );
347346 }
348347
349348 public void readHeaderBank (Integer crate , EvioNode node , EvioDataEvent event ){
0 commit comments