LISTSERV mailing list manager LISTSERV 16.5

Help for HPS-SVN Archives


HPS-SVN Archives

HPS-SVN Archives


HPS-SVN@LISTSERV.SLAC.STANFORD.EDU


View:

Message:

[

First

|

Previous

|

Next

|

Last

]

By Topic:

[

First

|

Previous

|

Next

|

Last

]

By Author:

[

First

|

Previous

|

Next

|

Last

]

Font:

Proportional Font

LISTSERV Archives

LISTSERV Archives

HPS-SVN Home

HPS-SVN Home

HPS-SVN  November 2014

HPS-SVN November 2014

Subject:

r1431 - in /java/trunk/evio/src/main/java/org/hps/evio: ECalEvioReader.java LCSimEngRunEventBuilder.java LCSimTestRunEventBuilder.java

From:

[log in to unmask]

Reply-To:

Notification of commits to the hps svn repository <[log in to unmask]>

Date:

Wed, 5 Nov 2014 04:49:24 -0000

Content-Type:

text/plain

Parts/Attachments:

Parts/Attachments

text/plain (445 lines)

Author: [log in to unmask]
Date: Tue Nov  4 20:49:21 2014
New Revision: 1431

Log:
make various bank numbers configurable; implement engineering run event builder that uses the new bank numbers and SSP data object

Added:
    java/trunk/evio/src/main/java/org/hps/evio/LCSimEngRunEventBuilder.java
      - copied, changed from r1425, java/trunk/evio/src/main/java/org/hps/evio/LCSimTestRunEventBuilder.java
Modified:
    java/trunk/evio/src/main/java/org/hps/evio/ECalEvioReader.java
    java/trunk/evio/src/main/java/org/hps/evio/LCSimTestRunEventBuilder.java

Modified: java/trunk/evio/src/main/java/org/hps/evio/ECalEvioReader.java
 =============================================================================
--- java/trunk/evio/src/main/java/org/hps/evio/ECalEvioReader.java	(original)
+++ java/trunk/evio/src/main/java/org/hps/evio/ECalEvioReader.java	Tue Nov  4 20:49:21 2014
@@ -46,10 +46,14 @@
     private static EcalConditions ecalConditions = null;
     private static IIdentifierHelper helper = null;
 
-    public ECalEvioReader() {
+    private int topBankTag, botBankTag;
+
+    public ECalEvioReader(int topBankTag, int botBankTag) {
+        this.topBankTag = topBankTag;
+        this.botBankTag = botBankTag;
         hitCollectionName = "EcalReadoutHits";
 
-        subDetector =  DatabaseConditionsManager.getInstance().getDetectorObject().getSubdetector(subdetectorName);
+        subDetector = DatabaseConditionsManager.getInstance().getDetectorObject().getSubdetector(subdetectorName);
 
         // ECAL combined conditions object.
         ecalConditions = ConditionsManager.defaultInstance()
@@ -60,6 +64,15 @@
         System.out.println("You are now using the database conditions for ECalEvioReader.java");
         // ID helper.
 //        helper = detector.getSubdetector("Ecal").getDetectorElement().getIdentifierHelper();
+    }
+
+    public void setTopBankTag(int topBankTag) {
+        this.topBankTag = topBankTag;
+
+    }
+
+    public void setBotBankTag(int botBankTag) {
+        this.botBankTag = botBankTag;
     }
 
     @Override
@@ -71,7 +84,13 @@
         for (BaseStructure bank : event.getChildren()) {
             BaseStructureHeader header = bank.getHeader();
             int crateBankTag = header.getTag();
-            if (crateBankTag == EventConstants.ECAL_TOP_BANK_TAG || crateBankTag == EventConstants.ECAL_BOTTOM_BANK_TAG) {
+            int crate = 0;
+            if (crateBankTag == topBankTag) {
+                crate = 1;
+            } else if (crateBankTag == botBankTag) {
+                crate = 2;
+            }
+            if (crateBankTag == topBankTag||crateBankTag == botBankTag) {
                 foundHits = true;
                 if (bank.getChildCount() > 0) {
                     if (debug) {
@@ -79,39 +98,41 @@
                     }
                     try {
                         for (BaseStructure slotBank : bank.getChildren()) {
-                            if (slotBank.getHeader().getTag() == EventConstants.TRIGGER_BANK_TAG) {
-                                if (debug) {
-                                    int[] data = slotBank.getIntData();
-                                    for (int i = 0; i < data.length; i++) {
-                                        System.out.format("0x%x\n", data[i]);
+//                            if (isTriggerBank(slotBank.getHeader().getTag(), lcsimEvent.getRunNumber()) != 0) {
+//                                if (debug) {
+//                                    int[] data = slotBank.getIntData();
+//                                    for (int i = 0; i < data.length; i++) {
+//                                        System.out.format("0x%x\n", data[i]);
+//                                    }
+//                                }
+//                                continue;
+//                            }
+                            if (slotBank.getCompositeData() != null) { //skip SSP and TI banks, if any
+                                for (CompositeData cdata : slotBank.getCompositeData()) {
+//                            CompositeData cdata = slotBank.getCompositeData();
+                                    if (slotBank.getHeader().getTag() != bankTag) {
+                                        bankTag = slotBank.getHeader().getTag();
+                                        System.out.printf("ECal format tag: 0x%x\n", bankTag);
                                     }
-                                }
-                                continue;
-                            }
-                            for (CompositeData cdata : slotBank.getCompositeData()) {
-//                            CompositeData cdata = slotBank.getCompositeData();
-                                if (slotBank.getHeader().getTag() != bankTag) {
-                                    bankTag = slotBank.getHeader().getTag();
-                                    System.out.printf("ECal format tag: 0x%x\n", bankTag);
-                                }
-                                switch (slotBank.getHeader().getTag()) {
-                                    case EventConstants.ECAL_WINDOW_BANK_TAG:
-                                        hits.addAll(makeWindowHits(cdata, crateBankTag));
-                                        hitClass = RawTrackerHit.class;
-                                        flags = 0;
-                                        break;
-                                    case EventConstants.ECAL_PULSE_BANK_TAG:
-                                        hits.addAll(makePulseHits(cdata, crateBankTag));
-                                        hitClass = RawTrackerHit.class;
-                                        flags = 0;
-                                        break;
-                                    case EventConstants.ECAL_PULSE_INTEGRAL_BANK_TAG:
-                                        hits.addAll(makeIntegralHits(cdata, crateBankTag));
-                                        hitClass = BaseRawCalorimeterHit.class;
-                                        flags = (1 << LCIOConstants.RCHBIT_TIME); //store timestamp
-                                        break;
-                                    default:
-                                        throw new RuntimeException("Unsupported ECal format - bank tag " + slotBank.getHeader().getTag());
+                                    switch (slotBank.getHeader().getTag()) {
+                                        case EventConstants.ECAL_WINDOW_BANK_TAG:
+                                            hits.addAll(makeWindowHits(cdata, crate));
+                                            hitClass = RawTrackerHit.class;
+                                            flags = 0;
+                                            break;
+                                        case EventConstants.ECAL_PULSE_BANK_TAG:
+                                            hits.addAll(makePulseHits(cdata, crate));
+                                            hitClass = RawTrackerHit.class;
+                                            flags = 0;
+                                            break;
+                                        case EventConstants.ECAL_PULSE_INTEGRAL_BANK_TAG:
+                                            hits.addAll(makeIntegralHits(cdata, crate));
+                                            hitClass = BaseRawCalorimeterHit.class;
+                                            flags = (1 << LCIOConstants.RCHBIT_TIME); //store timestamp
+                                            break;
+                                        default:
+                                            throw new RuntimeException("Unsupported ECal format - bank tag " + slotBank.getHeader().getTag());
+                                    }
                                 }
                             }
                         }
@@ -160,7 +181,9 @@
                 Long id = daqToGeometryId(crate, slot, channel);
 //                Long id = EcalConditions.daqToPhysicalID(crate, slot, channel);
 
-                System.out.println("The long id is: " + id);
+                if (debug) {
+                    System.out.println("The long id is: " + id);
+                }
 
                 short[] adcValues = new short[nSamples];
                 for (int i = 0; i < nSamples; i++) {

Copied: java/trunk/evio/src/main/java/org/hps/evio/LCSimEngRunEventBuilder.java (from r1425, java/trunk/evio/src/main/java/org/hps/evio/LCSimTestRunEventBuilder.java)
 =============================================================================
--- java/trunk/evio/src/main/java/org/hps/evio/LCSimTestRunEventBuilder.java	(original)
+++ java/trunk/evio/src/main/java/org/hps/evio/LCSimEngRunEventBuilder.java	Tue Nov  4 20:49:21 2014
@@ -1,18 +1,7 @@
 package org.hps.evio;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-//import org.hps.conditions.deprecated.EcalConditions;
+import org.hps.readout.ecal.SSPData;
 import org.hps.readout.ecal.TriggerData;
-import org.jlab.coda.jevio.BaseStructure;
-import org.jlab.coda.jevio.EvioEvent;
-import org.lcsim.event.EventHeader;
-import org.lcsim.event.base.BaseLCSimEvent;
-import org.lcsim.geometry.Detector;
 
 /**
  * Build LCSim events from EVIO data.
@@ -22,154 +11,22 @@
  * @version $Id: LCSimTestRunEventBuilder.java,v 1.24 2013/03/01 01:30:25 meeg
  * Exp $
  */
-public class LCSimTestRunEventBuilder implements LCSimEventBuilder {
+public class LCSimEngRunEventBuilder extends LCSimTestRunEventBuilder {
 
-    // Names of subdetectors.
-//    private String trackerName;
-    // Detector conditions object.
-    private Detector detector;
-    // Debug flag.
-    private boolean debug = false;
-    ECalEvioReader ecalReader = null;
-    SVTEvioReader svtReader = null;
-    private int run = 0; //current run number, taken from prestart and end events
-    private long time = 0; //most recent event time (ns), taken from prestart and end events, and trigger banks (if any)
-
-    public LCSimTestRunEventBuilder() {
-        ecalReader = new ECalEvioReader();
-        svtReader = new SVTEvioReader();
+    public LCSimEngRunEventBuilder() {
+        ecalReader.setTopBankTag(0x25);
+        ecalReader.setBotBankTag(0x27);
+        sspCrateBankTag = 0x25;
+        sspBankTag = 0xe10c;
+//        ecalReader = new ECalEvioReader(0x25, 0x27);
+//        svtReader = new SVTEvioReader();
     }
 
-    @Override
-    public void setDetectorName(String detectorName) {
-        // Make a dummy event to setup the conditions system.
-        EventHeader dummyEvent = new BaseLCSimEvent(0, 0, detectorName);
-        detector = dummyEvent.getDetector();
-//        EcalConditions.loadDaqMap(detector, "Ecal");
+    protected TriggerData makeTriggerData(int[] data) {
+        TriggerData triggerData = new SSPData(data);
+        time = ((long) triggerData.getTime()) * 4;
+        return triggerData;
     }
 
-    @Override
-    public void setDebug(boolean debug) {
-        this.debug = debug;
-        ecalReader.setDebug(debug);
-    }
 
-    public void setEcalHitCollectionName(String ecalHitCollectionName) {
-        ecalReader.setHitCollectionName(ecalHitCollectionName);
-    }
-
-    @Override
-    public void readEvioEvent(EvioEvent evioEvent) {
-        if (EventConstants.isSyncEvent(evioEvent)) {
-            int[] data = evioEvent.getIntData();
-            int seconds = data[0];
-            System.out.println("Sync event: time " + seconds + " - " + new Date(((long) seconds) * 1000) + ", event count since last sync " + data[1] + ", event count so far " + data[2] + ", status " + data[3]);
-        } else if (EventConstants.isPreStartEvent(evioEvent)) {
-            int[] data = evioEvent.getIntData();
-            int seconds = data[0];
-            time = ((long) seconds) * 1000000000;
-            run = data[1];
-            System.out.println("Prestart event: time " + seconds + " - " + new Date(((long) seconds) * 1000) + ", run " + run + ", run type " + data[2]);
-        } else if (EventConstants.isGoEvent(evioEvent)) {
-            int[] data = evioEvent.getIntData();
-            int seconds = data[0];
-            time = ((long) seconds) * 1000000000;
-            System.out.println("Go event: time " + seconds + " - " + new Date(((long) seconds) * 1000) + ", event count so far " + data[2]);
-        } else if (EventConstants.isPauseEvent(evioEvent)) {
-            int[] data = evioEvent.getIntData();
-            int seconds = data[0];
-            time = ((long) seconds) * 1000000000;
-            System.out.println("Pause event: time " + seconds + " - " + new Date(((long) seconds) * 1000) + ", event count so far " + data[2]);
-        } else if (EventConstants.isEndEvent(evioEvent)) {
-            int[] data = evioEvent.getIntData();
-            int seconds = data[0];
-            time = ((long) seconds) * 1000000000;
-            run = 0;
-            System.out.println("End event: time " + seconds + " - " + new Date(((long) seconds) * 1000) + ", event count " + data[2]);
-        }
-    }
-
-    @Override
-    public EventHeader makeLCSimEvent(EvioEvent evioEvent) {
-        if (!isPhysicsEvent(evioEvent)) {
-            throw new RuntimeException("Not a physics event: event tag " + evioEvent.getHeader().getTag());
-        }
-
-        // Create a new LCSimEvent.
-        EventHeader lcsimEvent = getEventData(evioEvent);
-
-        // Make RawCalorimeterHit collection, combining top and bottom section of ECal into one list.
-        try {
-            ecalReader.makeHits(evioEvent, lcsimEvent);
-        } catch (Exception e) {
-            Logger.getLogger(this.getClass().getName()).log(Level.SEVERE, "Error making ECal hits", e);
-        }
-
-        // Make SVT RawTrackerHits
-        try {
-            svtReader.makeHits(evioEvent, lcsimEvent);
-        } catch (Exception e) {
-            Logger.getLogger(this.getClass().getName()).log(Level.SEVERE, "Error making SVT hits", e);
-        }
-
-        return lcsimEvent;
-    }
-
-    @Override
-    public boolean isPhysicsEvent(EvioEvent evioEvent) {
-        return (evioEvent.getHeader().getTag() == EventConstants.PHYSICS_EVENT_TAG);
-    }
-
-    private EventHeader getEventData(EvioEvent evioEvent) {
-        int[] eventID = null;
-        //array of length 3: {event number, trigger code, readout status}
-
-        List<TriggerData> triggerList = new ArrayList<TriggerData>();
-
-        if (evioEvent.getChildCount() > 0) {
-            for (BaseStructure bank : evioEvent.getChildren()) {
-                if (bank.getHeader().getTag() == EventConstants.EVENTID_BANK_TAG) {
-                    eventID = bank.getIntData();
-                }
-                if (bank.getHeader().getTag() == EventConstants.ECAL_TOP_BANK_TAG || bank.getHeader().getTag() == EventConstants.ECAL_BOTTOM_BANK_TAG) {
-                    if (bank.getChildCount() > 0) {
-                        for (BaseStructure slotBank : bank.getChildren()) {
-                            if (slotBank.getHeader().getTag() == EventConstants.TRIGGER_BANK_TAG) {
-                                TriggerData triggerData = new TriggerData(slotBank.getIntData());
-                                time = ((long) triggerData.getTime()) * 1000000000;
-                                triggerList.add(triggerData);
-                            }
-                        }
-                    }
-                }
-            }
-        }
-
-        if (eventID == null) {
-            System.out.println("No event ID bank found");
-            eventID = new int[3];
-        } else {
-            if (debug) {
-                System.out.println("Read EVIO event number " + eventID[0]);
-            }
-            if (eventID[1] != 1) {
-                System.out.println("Trigger code is usually 1; got " + eventID[1]);
-            }
-            if (eventID[2] != 0) {
-                System.out.println("Readout status is usually 0; got " + eventID[2]);
-            }
-        }
-
-        if (triggerList.isEmpty()) {
-            System.out.println("No trigger bank found");
-        } else if (triggerList.size() > 1) {
-            System.out.println("Found multiple trigger banks");
-        }
-
-        // Create a new LCSimEvent.
-        EventHeader lcsimEvent = new BaseLCSimEvent(run, eventID[0], detector.getDetectorName(), time);
-
-        lcsimEvent.put("TriggerBank", triggerList, TriggerData.class, 0);
-        return lcsimEvent;
-    }
-}
+}

Modified: java/trunk/evio/src/main/java/org/hps/evio/LCSimTestRunEventBuilder.java
 =============================================================================
--- java/trunk/evio/src/main/java/org/hps/evio/LCSimTestRunEventBuilder.java	(original)
+++ java/trunk/evio/src/main/java/org/hps/evio/LCSimTestRunEventBuilder.java	Tue Nov  4 20:49:21 2014
@@ -5,8 +5,6 @@
 import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.Logger;
-
-//import org.hps.conditions.deprecated.EcalConditions;
 import org.hps.readout.ecal.TriggerData;
 import org.jlab.coda.jevio.BaseStructure;
 import org.jlab.coda.jevio.EvioEvent;
@@ -27,16 +25,18 @@
     // Names of subdetectors.
 //    private String trackerName;
     // Detector conditions object.
-    private Detector detector;
+    protected Detector detector;
     // Debug flag.
-    private boolean debug = false;
+    protected boolean debug = false;
     ECalEvioReader ecalReader = null;
     SVTEvioReader svtReader = null;
-    private int run = 0; //current run number, taken from prestart and end events
-    private long time = 0; //most recent event time (ns), taken from prestart and end events, and trigger banks (if any)
+    protected int run = 0; //current run number, taken from prestart and end events
+    protected long time = 0; //most recent event time (ns), taken from prestart and end events, and trigger banks (if any)
+    protected int sspCrateBankTag = 0x1; //bank ID of the crate containing the SSP
+    protected int sspBankTag = 0xe106; //SSP bank's tag
 
     public LCSimTestRunEventBuilder() {
-        ecalReader = new ECalEvioReader();
+        ecalReader = new ECalEvioReader(0x1, 0x2);
         svtReader = new SVTEvioReader();
     }
 
@@ -120,27 +120,16 @@
         return (evioEvent.getHeader().getTag() == EventConstants.PHYSICS_EVENT_TAG);
     }
 
-    private EventHeader getEventData(EvioEvent evioEvent) {
+    protected EventHeader getEventData(EvioEvent evioEvent) {
         int[] eventID = null;
         //array of length 3: {event number, trigger code, readout status}
 
-        List<TriggerData> triggerList = new ArrayList<TriggerData>();
+        List<TriggerData> triggerList = getTriggerData(evioEvent);
 
         if (evioEvent.getChildCount() > 0) {
             for (BaseStructure bank : evioEvent.getChildren()) {
                 if (bank.getHeader().getTag() == EventConstants.EVENTID_BANK_TAG) {
                     eventID = bank.getIntData();
-                }
-                if (bank.getHeader().getTag() == EventConstants.ECAL_TOP_BANK_TAG || bank.getHeader().getTag() == EventConstants.ECAL_BOTTOM_BANK_TAG) {
-                    if (bank.getChildCount() > 0) {
-                        for (BaseStructure slotBank : bank.getChildren()) {
-                            if (slotBank.getHeader().getTag() == EventConstants.TRIGGER_BANK_TAG) {
-                                TriggerData triggerData = new TriggerData(slotBank.getIntData());
-                                time = ((long) triggerData.getTime()) * 1000000000;
-                                triggerList.add(triggerData);
-                            }
-                        }
-                    }
                 }
             }
         }
@@ -172,4 +161,30 @@
         lcsimEvent.put("TriggerBank", triggerList, TriggerData.class, 0);
         return lcsimEvent;
     }
-}
+
+    protected List<TriggerData> getTriggerData(EvioEvent evioEvent) {
+        List<TriggerData> triggerList = new ArrayList<TriggerData>();
+        if (evioEvent.getChildCount() > 0) {
+            for (BaseStructure bank : evioEvent.getChildren()) {
+                if (bank.getHeader().getTag() == sspCrateBankTag) {
+                    if (bank.getChildCount() > 0) {
+                        for (BaseStructure slotBank : bank.getChildren()) {
+                            if (slotBank.getHeader().getTag() == sspBankTag) {
+//                                TriggerData triggerData = new TriggerData(slotBank.getIntData());
+//                                time = ((long) triggerData.getTime()) * 1000000000;
+                                triggerList.add(makeTriggerData(slotBank.getIntData()));
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        return triggerList;
+    }
+
+    protected TriggerData makeTriggerData(int[] data) {
+        TriggerData triggerData = new TriggerData(data);
+        time = ((long) triggerData.getTime()) * 1000000000;
+        return triggerData;
+    }
+}

Top of Message | Previous Page | Permalink

Advanced Options


Options

Log In

Log In

Get Password

Get Password


Search Archives

Search Archives


Subscribe or Unsubscribe

Subscribe or Unsubscribe


Archives

November 2017
August 2017
July 2017
January 2017
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
December 2013
November 2013

ATOM RSS1 RSS2



LISTSERV.SLAC.STANFORD.EDU

Secured by F-Secure Anti-Virus CataList Email List Search Powered by the LISTSERV Email List Manager

Privacy Notice, Security Notice and Terms of Use