-
Notifications
You must be signed in to change notification settings - Fork 11
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
Iss1053 -- add "no spacing" capability to MC readout #1057
base: master
Are you sure you want to change the base?
Conversation
…er.java which I use to make comparison plots and should be in master at some point
…parameters to the test steering file
…readout; remove standalone no-spacing drivers
Took a couple different turns here but settled on just:
|
To test this, I ran over an unspaced tritrig file: ...and the corresponding spaced file (both provided by SarahG): I ran 3 versions of readout, with noise turned off so I could compare on equal footing, and found this many triggers: We find ~5% more triggers with the unspaced readout. Digging through lots of print statements in the spaced/unspaced readout, these are mostly (all? all that I checked) have the ecal gtp cluster that would trigger a 4ns tick earlier than the trigger gets the hodoscope patterns. If there is not both a gtp cluster and a hodoscope pattern in the same 4ns tick, the code returns without triggering. The hodo patterns are actually available to the trigger for an extended period (many 4ns ticks) but the gtp clusters only a single one. I think it's weird that the trigger requires both the hodo pattern and gtp cluster collections exist at the same time period, since I'm pretty sure one of singles2 or singles3 doesn't require the hodoscope. Is this really reproducing what the real trigger does? |
|
For each clock cycle, all hodoscope hits in a range of time (before and after the clock cycle) are collected to build hodoscope patterns. Slides 8&9 in the attached file explain how the hodoscope pattern driver works. |
Yeah, I understand this. All I am saying is that, for those ~5% of inserted MC signal events, the time of the gtp cluster that would make a good trigger is before that hodoscope pattern time window and thus doesn't actually make a trigger. And the unspaced readout, with simpler time structure counts there as good triggers so unspaced may overestimate overall efficiency (and thus rates) by this ~5%. However, I want to make sure that this is in line with what we expect for real triggers?
|
One question: for those extra 5% triggers, could you check if GTP cluster and hodoscope pattern with 4ns shift come from the same signal, or by accident, one is from signal, while the other is from background, or even both of them are from background. |
You claimed that "the ecal gtp cluster that would trigger a 4ns tick earlier than the trigger gets the hodoscope patterns." |
I am running both singles2 and singles3 triggers. I'm running this steering file (which I think is standard): It seems like the code on line 151 of the singles readout driver requires both pattern and gtp clusters be present for the trigger decision to be made: So, even if it's looking for a singles2 trigger (no hodo in decision) the code does require that a pattern is present. As I mentioned in an above comment, this seems incorrect.
|
Ah... I got where the issue took place: |
…match spaced MC for both ecal and svt; change recon raw hit fitter driver to useTimestamps for mc; add some plots to KFOutputDriver
I think this is ready for others to test. I've added a steering file here: |
I've also added a recon file with the correct SVT hit timing offset here: |
We want to be able to read out the MC+pulser overlay event without putting a lot empty bunches between the events so that the readout system can handle it without piling up all the hits in time.
The hack I did was:
-- in ReadoutDataManager, which carries the global time, each event gets incremented by 250 bunches (500ns) instead of the single bunch-per-event in the spaced MC
-- for the sim readout, digitization, GTP cluster making and triggering, I created a bunch of "NoSpacing" classes mostly copied from/named similarly to their corresponding classes used for the spaced MC. I changed the timing of where the digitized pulses were placed to make them all be around the time given in readoutTime, removing some latencies.
-------------- I may revisit this now that I understand the procedure better. We may just be able to adjust the numbers (and maybe a little code) to get this to work with existing code.
This is not ready for primetime yet.