Print

Print


Actually, I was wrong about this (again).  It is actually a problem with writing clusters made from the  EcalClusterIC clusterer.  The error comes from this bit of code in SIOCluster:

   if ((flag & (1 << LCIOConstants.CLBIT_HITS)) != 0)
        {
            List<CalorimeterHit> calorimeterHits = cluster.getCalorimeterHits();
            double[] hitContributions = cluster.getHitContributions();
            out.writeInt(calorimeterHits.size());
            int ii = 0;
            for (CalorimeterHit hit : calorimeterHits)
            {
                out.writePntr(hit);
                out.writeFloat((float) hitContributions[ii++]);      <——— this is where it breaks
            }
        }


The problem seems to be that the cluster.getHitContributions() has fewer entries than the  cluster.getCalorimeterHits() for IC clusters; this works for “EcalClusters: the GTP clusterer.  Not sure why this would be, but we can’t write out these clusters until we fix it.  Any ideas?

Thanks, Matt

On Dec 15, 2014, at 6:50 AM, Graham, Mathew Thomas <[log in to unmask]<mailto:[log in to unmask]>> wrote:

If I could learn how to read, I would see that this error is from LCIOWriter, not with reading in the event…I think the problem is related to what I was trying to do.  I was trying to make clusters from both “EcalClusterer” and “EcalClusterIC” and save them to the event (with different names, of course).  This should work, I think, but maybe I screwed up something subtle.

Anyway, not a big deal.

On Dec 15, 2014, at 8:59 AM, Graham, Mathew Thomas <[log in to unmask]<mailto:[log in to unmask]>> wrote:



I’m running over the run 3288 (at JLAB /volatile/hallb/hps/data/tgt/hps_003288.evio.0; at SLAC ~mgraham/hps/hps_003288.evio.0) and I get this error which kills the job.

>> Event 18
Mon Dec 15 08:56:31 EST 2014 :: EvioToLcio :: SEVERE :: Error in LCIO event processing.
Exception in thread "main" java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException: 4
        at org.hps.evio.EvioToLcio.run(EvioToLcio.java:398)
        at org.hps.evio.EvioToLcio.main(EvioToLcio.java:99)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 4
        at org.lcsim.lcio.SIOCluster.write(SIOCluster.java:282)
        at org.lcsim.lcio.SIOClusterBlockHandler.writeCollectionElement(SIOClusterBlockHandler.java:26)
        at org.lcsim.lcio.AbstractBlockHandler.writeBlock(AbstractBlockHandler.java:55)
        at org.lcsim.lcio.LCIOWriter.writeData(LCIOWriter.java:220)
        at org.lcsim.lcio.LCIOWriter.write(LCIOWriter.java:254)
        at org.lcsim.util.loop.LCIODriver.process(LCIODriver.java:146)
        at org.lcsim.util.Driver.doProcess(Driver.java:273)
        at org.lcsim.util.Driver.processChildren(Driver.java:284)
        at org.lcsim.util.Driver.process(Driver.java:198)
        at org.lcsim.util.DriverAdapter.recordSupplied(DriverAdapter.java:74)
        at org.lcsim.job.JobControlManager.processEvent(JobControlManager.java:1357)
        at org.hps.evio.EvioToLcio.run(EvioToLcio.java:385)
        ... 1 more



mg

________________________________

Use REPLY-ALL to reply to list

To unsubscribe from the HPS-SOFTWARE list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=HPS-SOFTWARE&A=1


________________________________

Use REPLY-ALL to reply to list

To unsubscribe from the HPS-SOFTWARE list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=HPS-SOFTWARE&A=1


########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the HPS-SOFTWARE list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=HPS-SOFTWARE&A=1