Closed JeremyMcCormick closed 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.
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 .
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.
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
See issue #490 where this task is continuing.
Conversion of Hodoscope raw data to CalorimeterHit objects suitable for reconstruction.
TODO: Create detailed task list here.