Refactor the code to make WCSim & ROOT dependencies optional
In order to be able to run FLOWER online in the DAQ, we cannot
Looking in WCSimRootFlower, the dependencies are for
- reading/writing a TTree in a TFile for the PMT nearest neighbours. We can use alternatives to ROOT for this (online, we expect to use a DB)
- getting environment variables
$FLOWERDATADIR&$FLOWERDIRusing TSystem. Native C++ ways to do this exist - Getting number & positions of PMTs from WCSimRootGeom. My suggestion here is to make a
FLOWERclass, that has new data members (e.g. vectors) to store PMT positions (that should be passed at initialisation). We can then haveWCSimRootFLOWERinherit from this class, allowing you to useWCSimRootGeomat initalisation to populate these vectors
As part of this, it may make sense to make FLOWER a native ToolFramework tool. However, this may mean that the code will become unusable publicly, due to the dependence on hk-DataModel. We should therefore discuss how best to do this.
It may be that we do the ROOT/WCSim refactor first, and make a new issue for ToolFramework discussion