Hi,
I was looking at cleaning up the ECAL clustering code with some changes to packages etc. Right now it is a bit of a mess, because there is quite a lot of code duplication between algorithms, as well as Drivers that are all doing the same thing (setting basic collection arguments, setting common cuts, etc.)
For more details, see this JIRA item where I have outlined a proposal to clean this up and do a heavy restructuring of the existing code.
https://jira.slac.stanford.edu/browse/HPSJAVA-363
I see in ecal.recon these clustering Drivers...
CTPEcalClusterer
EcalClusterIC
EcalClusterICBasic
GTPEcalClusterer
GTPOnlineClusterer
HPSEcalCluster
Could we get a brief description of each clustering Driver for some basic documentation that I can work from to try and do this? This can go on the JIRA page.
I would also like some information about what are the different types of cuts these are using, a brief description of how the algorithm works, etc.
It is also not clear to me that we need or want so many different clustering engines in our recon. Holly suggests discussing this in detail so we can identify common algorithms, and I agree with this.
Then there are now two types of clusters implemented...
HPSEcalCluster
HPSEcalClusterIC
I think we should be working from one cluster class, not two. So I would propose merging them unless there is some technical reason not to do this.
Long term, I'd like to move everything to the new ecal.cluster sub-package and abandon/deprecate/remove the existing Drivers. (I also have a few cosmic clustering Drivers that I will move to ecal.cluster too.)
If you need to make immediate changes (this week) to clustering code for the reconstruction to work, please just modify/fix the classes in ecal.recon for now. I am very aware we need not break anything with the current data taking and recon steering files, so I am not modifying any of the existing Drivers in place. Meanwhile, I'm working on making a sub-package where things can be reimplemented in a more structured way, including pulling out the core algorithms from the actual Driver classes. As we verify each of the clustering algorithms with tests, we can move to the re-implementation class in the sub-package and then abandon the old Driver.
Any concerns/comments then please send to hps-software or write comments on the JIRA item.
Thanks.
--Jeremy
########################################################################
Use REPLY-ALL to reply to list
To unsubscribe from the HPS-SOFTWARE list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=HPS-SOFTWARE&A=1
|