Skip to content

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 & $FLOWERDIR using TSystem. Native C++ ways to do this exist
  • Getting number & positions of PMTs from WCSimRootGeom. My suggestion here is to make a FLOWER class, that has new data members (e.g. vectors) to store PMT positions (that should be passed at initialisation). We can then have WCSimRootFLOWER inherit from this class, allowing you to use WCSimRootGeom at 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