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

Hodoscope Data Reconstruction Tasks #448

Closed
JeremyMcCormick opened this issue Apr 17, 2019 · 5 comments
Closed

Hodoscope Data Reconstruction Tasks #448

JeremyMcCormick opened this issue Apr 17, 2019 · 5 comments
Assignees
Labels
Milestone

Comments

@JeremyMcCormick
Copy link
Member

Conversion of Hodoscope raw data to CalorimeterHit objects suitable for reconstruction.

TODO: Create detailed task list here.

@mccaky
Copy link
Contributor

mccaky commented May 1, 2019

The classes 'org.hps.readout.hodoscope.HodoscopeReadoutRawConverter' and 'org.hps.readout.hodoscope.HodoscopeRawConverterReadoutDriver' have been written to provide a working raw converter for readout in the iss420 branch. These can likely be modified with relatively little effort to support the conversion of readout ADC hodoscope hits into energy hits in recon as well.

Presently, the driver is very highly reduced from the original recon variant, but it will probably only need the Mode-1 handling code re-added. If recon-level energy and time calibrations are needed, it would be easy to extend the driver and add that functionality there.

The important thing will be to determine what functionality we will want for the hodoscope raw converter at the recon level. The options from the 2016 calorimeter raw converter include:

  • Running pedestal
  • Constant gain
  • Able to extract parameters from EvIO DAQ configuration
  • Fit pulses
  • Integrate multiple peaks
  • Support for Mode-7
  • Time walk correction
  • Global fixed pulse width

If few or none of these are needed, this may be quite simple. If most are needed, it will require more work.

@JeremyMcCormick
Copy link
Member Author

JeremyMcCormick commented May 1, 2019 via email

@mccaky
Copy link
Contributor

mccaky commented May 1, 2019

So, I just ended up updating the raw converters even more. There is a new package called org.hps.readout.rawconverter that contains a lot of stuff. I have first create three abstract classes that handle most of the low-level raw converter stuff. These are:

  • AbstractBaseRawConverter: This handles the most basic functionality shared by all raw converters. It does not do anything subdetector-specific nor does it actually convert anything.
  • AbstractMode1RawConverter: This handles Mode-1 hits, though again without anything subdetector-specific. It also excludes the fancier recon stuff like pulse-fitting and running pedestals.
  • AbstractMode3RawConverter: This is the same as above, but for Mode-3.
    I haven't made anything for Mode-7 because our Mode-7 handling is presently identical to our treatment of Mode-3. We don't actually use any of the extra data. As such, I felt it a waste to make a new driver. We can just use the Mode-3 driver until we actually implement Mode-7 properly.

I have made several implementations of these drivers as well. For readout, I have created EcalReadoutMode3RawConverter and HodoscopeReadoutMode3RawConverter. These implement AbstractMode3RawConverter for the calorimeter and hodoscope respectively, but only include the readout-level stuff.

I have also created EcalMode1RawConverter which implements AbstractMode1RawConverter for the calorimeter, and also includes pulse-fitting and the running pedestal. It is missing a control driver at the moment, though. It is also untested. Similarly, I created HodoscopeMode1RawConverter. This likewise is missing and a control driver and is untested, but it hypothetically can handle recon for the hodoscope. It does not support either pulse-fitting or a running pedestal. If we need one or both of these, they can be added in the same manner as in EcalMode1RawConverter.

I still need to check exactly what is different between Mode-3 in readout and recon before implementing any recon Mode-3 drivers. They may be the same thing.

I also took the opportunity to purge the 2014 legacy support. No one actually uses this. I additionally removed the constant gain option, as it is only used in a single monitoring driver and probably really should be deprecated out. This can be added back in if really needed without much difficulty, though.

Other things that are missing include some support Mode-1 to Mode-7 conversion. Most of the code is there, but it looks like no one ever finished it. We also need to complete the controller drivers and perform some serious testing. If it all works out, though, I think that we can use this much cleaner implementation of the raw converters to replace the rather over-bloated and ambiguous EcalRawConverter, EcalRawConverter2, and EcalRawConverter3.

Note: This is all on iss420 still, since I'm using the changes to support the hodoscope readout chain as well.

@rafopar
Copy link
Contributor

rafopar commented May 9, 2019

I am planning to work on the reconstruction, and on the list that Kyle wrote.

For this I am planning to create a new branch iss448

@mholtrop
Copy link
Collaborator

See issue #490 where this task is continuing.

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

No branches or pull requests

5 participants