HOPS
HOPS class reference
Calibration/include/MHO_FringeFitter.hh
Go to the documentation of this file.
1 #ifndef MHO_FringeFitter_HH__
2 #define MHO_FringeFitter_HH__
3 
4 //global messaging util
5 #include "MHO_Message.hh"
6 
7 //data/config passing classes
8 #include "MHO_ContainerStore.hh"
9 #include "MHO_FringeData.hh"
10 #include "MHO_JSONHeaderWrapper.hh"
11 #include "MHO_OperatorToolbox.hh"
12 #include "MHO_ParameterStore.hh"
13 
14 //needed to read hops files and extract objects from scan dir
15 #include "MHO_ScanDataStore.hh"
16 
17 //initialization
18 // #include "MHO_OperatorBuilderManager.hh"
19 // #include "MHO_ParameterConfigurator.hh"
20 // #include "MHO_ParameterManager.hh"
21 
22 namespace hops
23 {
24 
33 //forward declare visitor
37 class MHO_FringeFitterVisitor;
38 
39 //forware declare these initialization related classes
40 class MHO_OperatorBuilderManager;
41 class MHO_ParameterConfigurator;
42 class MHO_ParameterManager;
43 
48 {
49  public:
51  {
52  fParameterStore = data->GetParameterStore();
53  fScanStore = data->GetScanDataStore();
54  fContainerStore = data->GetContainerStore();
55  fOperatorBuildManager = nullptr;
56  };
57 
59 
66 
73 
80 
87 
88  //should we expose these?
95 
102 
109 
110  //basic run scheme: configure, init, then while(!IsFinished() ){ pre-run, run, post-run }, then finalize
115  virtual void Configure() = 0;
116 
117  //TODO add a 'configure extension' function using visitor pattern to add things like pybind11/opencl etc.
122  virtual void Initialize() = 0;
123 
128  virtual void PreRun() = 0;
129 
136  virtual void Run() = 0;
137 
142  virtual void PostRun() = 0;
143 
150  virtual bool IsFinished() = 0;
151 
156  virtual void Finalize() = 0;
157 
164  virtual void Accept(MHO_FringeFitterVisitor* visitor) = 0;
165 
166  protected:
167  //optional caching mechanism (stash the configured visibilities/weights)
168  //before they are modified by flagging/calibration/prefit operators
169  virtual void Cache(){};
170  virtual void Refresh(){};
171 
172  //data objects
174 
175  MHO_ParameterStore* fParameterStore; //stores various parameters using string keys
176  MHO_ScanDataStore* fScanStore; //provides access to data associated with this scan
177  MHO_ContainerStore* fContainerStore; //stores data containers for in-use data
178 
179  MHO_OperatorToolbox fOperatorToolbox; //stores the data operator objects
180 
181  //configuration/initialization managers
183 };
184 
189 {
190  public:
192 
194 
195  //pure virtual
202  virtual void Visit(MHO_FringeFitter* fitter) = 0;
203 };
204 
205 } // namespace hops
206 
207 #endif
nlohmann::json mho_json
Definition: MHO_JSONHeaderWrapper.hh:5
Class MHO_ContainerStore.
Definition: MHO_ContainerStore.hh:32
Class MHO_FringeData.
Definition: MHO_FringeData.hh:30
Class MHO_FringeFitterVisitor.
Definition: Calibration/include/MHO_FringeFitter.hh:189
MHO_FringeFitterVisitor()
Definition: Calibration/include/MHO_FringeFitter.hh:191
virtual void Visit(MHO_FringeFitter *fitter)=0
Function Visit.
virtual ~MHO_FringeFitterVisitor()
Definition: Calibration/include/MHO_FringeFitter.hh:193
Class MHO_FringeFitter.
Definition: Calibration/include/MHO_FringeFitter.hh:48
MHO_ScanDataStore * GetScanDataStore()
Getter for scan data store.
Definition: Calibration/include/MHO_FringeFitter.hh:101
virtual void Run()=0
Function Run.
virtual void PostRun()=0
Function PostRun.
virtual void Accept(MHO_FringeFitterVisitor *visitor)=0
Function Accept: accept a visitor...pure virtual, must be implemented in derived class.
virtual void Finalize()=0
Function Finalize.
virtual void Configure()=0
Function Configure.
virtual bool IsFinished()=0
Function IsFinished.
virtual void Initialize()=0
Function Initialize.
MHO_OperatorToolbox * GetOperatorToolbox()
Getter for operator toolbox.
Definition: Calibration/include/MHO_FringeFitter.hh:86
MHO_ScanDataStore * fScanStore
Definition: Calibration/include/MHO_FringeFitter.hh:176
MHO_ParameterStore * GetParameterStore()
Getter for parameter store.
Definition: Calibration/include/MHO_FringeFitter.hh:72
mho_json GetVex()
Getter for vex (ovex) data as JSON object.
Definition: Calibration/include/MHO_FringeFitter.hh:94
MHO_OperatorBuilderManager * GetOperatorBuildManager()
Getter for ther operator build manager - only valid after 'Configure' is called.
Definition: Calibration/include/MHO_FringeFitter.hh:108
MHO_FringeFitter(MHO_FringeData *data)
Definition: Calibration/include/MHO_FringeFitter.hh:50
MHO_OperatorBuilderManager * fOperatorBuildManager
Definition: Calibration/include/MHO_FringeFitter.hh:182
MHO_FringeData * fFringeData
Definition: Calibration/include/MHO_FringeFitter.hh:170
MHO_OperatorToolbox fOperatorToolbox
Definition: Calibration/include/MHO_FringeFitter.hh:179
virtual void Cache()
Definition: Calibration/include/MHO_FringeFitter.hh:169
MHO_FringeData * GetFringeData()
Getter for fringe data.
Definition: Calibration/include/MHO_FringeFitter.hh:65
virtual ~MHO_FringeFitter()
Definition: Calibration/include/MHO_FringeFitter.hh:58
MHO_ParameterStore * fParameterStore
Definition: Calibration/include/MHO_FringeFitter.hh:175
MHO_ContainerStore * GetContainerStore()
Getter for container store.
Definition: Calibration/include/MHO_FringeFitter.hh:79
virtual void Refresh()
Definition: Calibration/include/MHO_FringeFitter.hh:170
virtual void PreRun()=0
Function PreRun.
MHO_ContainerStore * fContainerStore
Definition: Calibration/include/MHO_FringeFitter.hh:177
Manages all the various operator builders.
Definition: MHO_OperatorBuilderManager.hh:26
Class MHO_OperatorToolbox.
Definition: MHO_OperatorToolbox.hh:28
Class MHO_ParameterStore.
Definition: MHO_ParameterStore.hh:52
Class to catalog and organize data files that are associated with a single scan, and handle retrieval...
Definition: MHO_ScanDataStore.hh:28
mho_json GetRootFileData() const
Getter for root file data (as json)
Definition: MHO_ScanDataStore.cc:181
Definition: fit_gsl.h:54
Definition: MHO_AdhocFlagging.hh:18