// Base class for processing modules in, e.g., FastMC and FullRecon.
// RXD   written on ????
//  31 Mar 1999 jrb   Moved to Util (library libRootAppsUtil.so)

#ifndef RECMODULE_H
#define RECMODULE_H

#include "TObject.h"
#include "Event.h"
#include <stdio.h>

class RecModule : public TObject {
	
public:
  RecModule() {};
  virtual ~RecModule(){}
  // destructor
  
  virtual void doit(Event* event) = 0;
  // The default action of a module it just to set the status to SUCCEEDED
  
  virtual void cleanup() = 0;
  
  virtual void spew(FILE* ofile) const = 0;

private:
  // Add a single data member for no particular reason
  Int_t myData;   // So far nothing useful to put here
public:
  ClassDef(RecModule,0)     // Base class for recon modules
};

#endif

