Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Channel offsets causes SVT readout simulation to crash #806

Closed
omar-moreno opened this issue Feb 25, 2021 · 0 comments · Fixed by #807
Closed

Channel offsets causes SVT readout simulation to crash #806

omar-moreno opened this issue Feb 25, 2021 · 0 comments · Fixed by #807
Assignees
Labels
Milestone

Comments

@omar-moreno
Copy link
Collaborator

omar-moreno commented Feb 25, 2021

Issues

  • When retrieving the hit queues (see SVTReadoutDriver::process), the index used maps directly to the channel ID of a hit. For the thin sensors, this is no longer valid because of the channel offset and leads to the following error
java.lang.ArrayIndexOutOfBoundsException: Index 510 out of bounds for length 510
	at org.hps.readout.svt.SVTReadoutDriver.process(SVTReadoutDriver.java:274)
	at org.lcsim.util.Driver.doProcess(Driver.java:261)
	at org.lcsim.util.Driver.processChildren(Driver.java:271)
	at org.lcsim.util.Driver.process(Driver.java:187)
	at org.lcsim.util.DriverAdapter.recordSupplied(DriverAdapter.java:74)
	at org.freehep.record.loop.DefaultRecordLoop.consumeRecord(DefaultRecordLoop.java:832)
	at org.freehep.record.loop.DefaultRecordLoop.loop(DefaultRecordLoop.java:668)
	at org.freehep.record.loop.DefaultRecordLoop.execute(DefaultRecordLoop.java:566)
	at org.lcsim.util.loop.LCSimLoop.loop(LCSimLoop.java:152)
	at org.lcsim.job.JobControlManager.run(JobControlManager.java:949)
	at org.hps.job.JobManager.main(JobManager.java:33)
org.lcsim.job:SEVERE A fatal error occurred when running the job.
java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException: Index 510 out of bounds for length 510
	at org.lcsim.util.loop.LCSimLoop.handleClientError(LCSimLoop.java:194)
	at org.freehep.record.loop.DefaultRecordLoop.consumeRecord(DefaultRecordLoop.java:834)
	at org.freehep.record.loop.DefaultRecordLoop.loop(DefaultRecordLoop.java:668)
	at org.freehep.record.loop.DefaultRecordLoop.execute(DefaultRecordLoop.java:566)
	at org.lcsim.util.loop.LCSimLoop.loop(LCSimLoop.java:152)
	at org.lcsim.job.JobControlManager.run(JobControlManager.java:949)
	at org.hps.job.JobManager.main(JobManager.java:33)
Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 510 out of bounds for length 510
	at org.hps.readout.svt.SVTReadoutDriver.process(SVTReadoutDriver.java:274)
	at org.lcsim.util.Driver.doProcess(Driver.java:261)
	at org.lcsim.util.Driver.processChildren(Driver.java:271)
	at org.lcsim.util.Driver.process(Driver.java:187)
	at org.lcsim.util.DriverAdapter.recordSupplied(DriverAdapter.java:74)
	at org.freehep.record.loop.DefaultRecordLoop.consumeRecord(DefaultRecordLoop.java:832)
	... 5 more
  • Another issue related to this occurs when processing the hit queues after a trigger signal is received (see SVTReadoutDriver::getOnTriggerData). Currently, the hit queues are retrieved by index where the max is equal to the total number of channels in a sensor. The same index is used to retrieve the pedestals and noise from the conditions database and also used to create the channel ID. For thin sensors, using the index will lead to the retrieval of the wrong condition because of the channel offset. The channel ID will also be wrong because of this.

Solution

Apply a channel offset when hits from a L0/L1 sensor are being processed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
1 participant