#include <Fitter.h>
Collaboration diagram for SctFitter::Fitter:

Public Member Functions | |
| void | go (unsigned nWorker) throw (IsException) | 
| The command to start the workers.   | |
| const char * | status () const throw () | 
| Get the status information.   | |
| virtual char * | status (FitterIStatus *status) throw () | 
| As for getStatus, but available over IPC.   | |
| void | setFitOptions (const string opt) throw (LogicError) | 
| set the fit option over IPC.   | |
| virtual void | setFitOptions (FitterIStatus *status, char *opt) throw () | 
| as for setFitOptions, but over IPC.   | |
| virtual void | setFitStrategy (FitterIStatus *status, char *strategy) throw () | 
| set the fit option over IPC.   | |
| virtual char * | getFitStrategy (FitterIStatus *status) throw () | 
| Finds the FitStrategy name.   | |
| void | fitAll (FitterIStatus *status) throw () | 
| void | fit (FitterIStatus *status, char *name) throw () | 
| Fit a named RawScanResult from IS.   | |
| virtual char * | getFitOptions (FitterIStatus *status) throw () | 
| Finds the FitStrategy options.   | |
| long | busy (FitterIStatus *status) | 
| number of busy workers   | |
| long | queueLength (FitterIStatus *status) | 
| number of jobs in the queue   | |
| long | nFitsDone () const throw () | 
| returns the number of fits done so far;   | |
| long | nFitsDone (FitterIStatus *status) throw () | 
| returns the number of fits done so far over ipc;   | |
| long | nFitErrors () const throw () | 
| returns the number of fit errors so far;   | |
| long | nFitErrors (FitterIStatus *status) throw () | 
| returns the number of fit errors so far over ipc;   | |
| const char * | lastScan () const throw () | 
| Get the name of the last scan which was fitted;.   | |
| char * | lastScan (FitterIStatus *status) throw () | 
| Get the name of the last scan which was fitted over ipc;.   | |
| void | useAnalyticAlgorithm (FitterIStatus *_status, ilu_Boolean use) | 
| Determine whether to use the analytic fit algorithm.   | |
| bool | isUsingAnalyticAlgorithm () const | 
| Return true if we're using analytic fit algorithms.   | |
| ilu_Boolean | isUsingAnalyticAlgorithm (FitterIStatus *_status) | 
| Return true if we're using analytic fit algorithms.   | |
| void | setFitStrategy (string name) throw (LogicError) | 
| Set the stragegy from a name the the FitStrategy map.   | |
| FitStrategy & | getFitStrategy () const throw (LogicError) | 
| get the strategy. Throws an error if none is defined.   | |
| void | incrementFitErrors () throw () | 
| Increments the number of fit errors by 1.   | |
| void | incrementFitsDone () throw () | 
| Increments the number of fits done by 1.   | |
| void | scanDone (double time) throw () | 
| Called by the workers to add to the total amount of scan time.   | |
| void | addIOTime (double time) throw () | 
| Called to add to IO time.   | |
| double | getAverageTimePerScan () const throw () | 
| Algorithm may be complex! Check actual code.   | |
Static Public Member Functions | |
| Fitter & | instance () | 
| Gets a reference to the instance of the Fitter.   | |
| Fitter & | initialize (const string &fitStrategyName="RootFitStrategy") throw (ConfigurationException) | 
| Initialize the Fitter instance.   | |
| void | doFits (ISCallbackInfo *isc) throw (IsException, LogicError) | 
| The infoReceiver callback function must take a static function as an argument.   | |
| IPCServer & | getFitterServer () throw () | 
| Get the Fitter IPC server.   | |
Data Fields | |
| FitterWorkerGroup * | workergroup | 
| Group of workers which do the actual fitting.   | |
Private Member Functions | |
| Fitter (const string &fitStrategyName) throw (ConfigurationException) | |
| singleton   | |
| ~Fitter () throw () | |
| private destructor   | |
| void | setLastScanName (const char *name) | 
| update record of last scan attempted.   | |
Private Attributes | |
| long | m_nFitsDone | 
| long | m_nFitErrors | 
| long | m_nScans | 
| double | m_scanTimeTaken | 
| double | m_ioTimeTaken | 
| boost::recursive_mutex | counterMutex | 
| Used to lock access to all the counters.   | |
| string | m_scan | 
| string | m_status | 
| pointer to char containing the status: cached so that we don't have to make lots of char*'s.   | |
| FitStrategy * | m_fitStrategy | 
| Pointer to the fit strategy.   | |
| std::auto_ptr< ISInfoReceiver > | m_infoReceiver | 
| An InfoReveiver for RawRODData objects.   | |
Static Private Attributes | |
| Fitter * | fitter | 
Friends | |
| class | FitterWorkerGroup | 
| FitterWorker is allowed to update stuff.   | |
This service subscribes to an input IS server, receiving new RawScanResult objects. It then fits a function (dependant on the ScanType) to chips, strips, etc. and outputs a FitScanResult object to the output IS server.
 Some status information about the Fitter is available via IPC request. 
Definition at line 40 of file Fitter.h.
      
  | 
  
| 
 singleton 
 Definition at line 42 of file Fitter.cpp.  | 
  
      
  | 
  
| 
 private destructor 
 Definition at line 54 of file Fitter.cpp.  | 
  
      
  | 
  
| 
 Called to add to IO time. Assumes that main thread does IO and is running concurrently with workers. Definition at line 227 of file Fitter.cpp.  | 
  
      
  | 
  
| 
 number of busy workers 
 Definition at line 268 of file Fitter.cpp. References SctService::WorkerGroup< string >::busy(), counterMutex, and workergroup.  | 
  
Here is the call graph for this function:

      
  | 
  
| 
 The infoReceiver callback function must take a static function as an argument. 
This function simply calls doFits on the parameter or `rock', which is set to be `this' (Fitter).  Definition at line 78 of file Fitter.cpp. References SctService::WorkerGroup< string >::push(), and workergroup.  | 
  
Here is the call graph for this function:

      
  | 
  ||||||||||||
| 
 Fit a named RawScanResult from IS. 
 Definition at line 87 of file Fitter.cpp.  | 
  
      
  | 
  
| 
 Algorithm may be complex! Check actual code. 
 Definition at line 233 of file Fitter.cpp.  | 
  
      
  | 
  
| 
 Finds the FitStrategy options. Makes a new char[] which ipc then deletes. Definition at line 103 of file Fitter.cpp.  | 
  
      
  | 
  
| 
 get the strategy. Throws an error if none is defined. 
 Definition at line 287 of file Fitter.cpp.  | 
  
      
  | 
  
| 
 Finds the FitStrategy name. Makes a new char[] which ipc then deletes. Definition at line 163 of file Fitter.cpp. Referenced by SctFitter::FitAlgorithm::doFit().  | 
  
      
  | 
  
| 
 Get the Fitter IPC server. 
 Definition at line 56 of file Fitter.cpp.  | 
  
      
  | 
  
| 
 The command to start the workers. 
 
 
 
 Definition at line 63 of file Fitter.cpp.  | 
  
      
  | 
  
| 
 Increments the number of fit errors by 1. 
 Definition at line 211 of file Fitter.cpp. Referenced by SctFitter::FitAlgorithm::doFit().  | 
  
      
  | 
  
| 
 Increments the number of fits done by 1. 
 Definition at line 216 of file Fitter.cpp. Referenced by SctFitter::FitAlgorithm::doFit().  | 
  
      
  | 
  
| 
 Initialize the Fitter instance. 
 
 
 Definition at line 33 of file Fitter.cpp. References setFitStrategy(). Referenced by instance().  | 
  
Here is the call graph for this function:

      
  | 
  
| 
 Gets a reference to the instance of the Fitter. If it hasn't been initialized, it calls initialize() first Definition at line 27 of file Fitter.cpp. References initialize().  | 
  
Here is the call graph for this function:

      
  | 
  
| 
 Return true if we're using analytic fit algorithms. 
 Definition at line 157 of file Fitter.cpp. References counterMutex, and isUsingAnalyticAlgorithm().  | 
  
Here is the call graph for this function:

      
  | 
  
| 
 Return true if we're using analytic fit algorithms. 
 Definition at line 152 of file Fitter.cpp. References counterMutex. Referenced by isUsingAnalyticAlgorithm().  | 
  
      
  | 
  
| 
 Get the name of the last scan which was fitted over ipc;. 
 Definition at line 279 of file Fitter.cpp.  | 
  
      
  | 
  
| 
 Get the name of the last scan which was fitted;. 
 Definition at line 274 of file Fitter.cpp.  | 
  
      
  | 
  
| 
 returns the number of fit errors so far over ipc; 
 Definition at line 256 of file Fitter.cpp.  | 
  
      
  | 
  
| 
 returns the number of fit errors so far; 
 Definition at line 245 of file Fitter.cpp.  | 
  
      
  | 
  
| 
 returns the number of fits done so far over ipc; 
 Definition at line 250 of file Fitter.cpp.  | 
  
      
  | 
  
| 
 returns the number of fits done so far; 
 Definition at line 240 of file Fitter.cpp.  | 
  
      
  | 
  
| 
 number of jobs in the queue 
 Definition at line 262 of file Fitter.cpp. References counterMutex, SctService::WorkerGroup< string >::queueSize(), and workergroup.  | 
  
Here is the call graph for this function:

      
  | 
  
| 
 Called by the workers to add to the total amount of scan time. 
 Definition at line 221 of file Fitter.cpp.  | 
  
      
  | 
  ||||||||||||
| 
 as for setFitOptions, but over IPC. 
 Definition at line 132 of file Fitter.cpp.  | 
  
      
  | 
  
| 
 set the fit option over IPC. (asynchronous). Passes string on to FitStrategy; 
 Definition at line 127 of file Fitter.cpp.  | 
  
      
  | 
  
| 
 Set the stragegy from a name the the FitStrategy map. 
 
 Definition at line 294 of file Fitter.cpp.  | 
  
      
  | 
  ||||||||||||
| 
 set the fit option over IPC. (asynchronous). 
 Definition at line 177 of file Fitter.cpp. Referenced by initialize().  | 
  
      
  | 
  
| 
 update record of last scan attempted. 
  | 
  
      
  | 
  
| 
 As for getStatus, but available over IPC. Makes a new char[] which ipc then deletes. 
 Definition at line 117 of file Fitter.cpp.  | 
  
      
  | 
  
| 
 Get the status information. 
 Definition at line 191 of file Fitter.cpp.  | 
  
      
  | 
  ||||||||||||
| 
 Determine whether to use the analytic fit algorithm. Default is false Definition at line 143 of file Fitter.cpp. References counterMutex.  | 
  
      
  | 
  
| 
 FitterWorker is allowed to update stuff. 
  | 
  
      
  | 
  
| 
 Used to lock access to all the counters. 
 Definition at line 215 of file Fitter.h. Referenced by busy(), isUsingAnalyticAlgorithm(), queueLength(), and useAnalyticAlgorithm().  | 
  
      
  | 
  
| 
 Pointer to the fit strategy. 
  | 
  
      
  | 
  
| 
 An InfoReveiver for RawRODData objects. 
  | 
  
      
  | 
  
| 
 pointer to char containing the status: cached so that we don't have to make lots of char*'s. 
  | 
  
      
  | 
  
| 
 Group of workers which do the actual fitting. 
 Definition at line 171 of file Fitter.h. Referenced by busy(), doFits(), and queueLength().  | 
  
 
1.3.5