JeffersonLab / hps-java

HPS reconstruction and analysis framework in Java
2 stars 10 forks source link

Hodoscope Data Reconstruction Tasks #448

Closed JeremyMcCormick closed 5 years ago

JeremyMcCormick commented 5 years ago

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

TODO: Create detailed task list here.

mccaky commented 5 years ago

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:

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

JeremyMcCormick commented 5 years ago

Thanks, Kyle. We can pull some files from iss421 onto the recon branch if needed. I don't think we're quite there yet though...

On Wed, May 1, 2019 at 10:58 AM Kyle McCarty notifications@github.com wrote:

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.

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/JeffersonLab/hps-java/issues/448#issuecomment-488188270, or mute the thread https://github.com/notifications/unsubscribe-auth/AAQXV4YDZWT3UVLZYJ4OABTPTEBNTANCNFSM4HGQXHKQ .

mccaky commented 5 years ago

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:

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 commented 5 years ago

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 commented 5 years ago

See issue #490 where this task is continuing.