#ifndef ROOT_THaPhysicsModule
#define ROOT_THaPhysicsModule

//////////////////////////////////////////////////////////////////////////
//
// THaPhysicsModule
//
//////////////////////////////////////////////////////////////////////////

#include "THaAnalysisObject.h"

class THaPhysicsModule : public THaAnalysisObject {
  
public:
  virtual ~THaPhysicsModule();
  
  virtual void  Clear( Option_t* opt="" ) { 
    THaAnalysisObject::Clear(opt); 
    fDataValid = false;
  }

  bool  IsSingleTrack() const { return !IsMultiTrack(); }
  bool  IsMultiTrack()  const { return fMultiTrk; }
  bool  DataValid()     const { return fDataValid; }

  virtual Int_t Process( const THaEvData& ) = 0;

  // Special return codes for Process()
  enum ESpecialRetval { kFatal     = -16768,
			kTerminate = -16767 };
protected:

  THaPhysicsModule( const char* name, const char* description );
  virtual void MakePrefix();

  void PrintInitError( const char* here );

  bool  fMultiTrk;               // Flag for multi-track mode
  bool  fDataValid;              // Data valid

  ClassDef(THaPhysicsModule,1)   //ABC for a physics/kinematics module
};

#endif

Last change: Sat Nov 7 21:26:49 2009
Last generated: 2009-11-07 21:26

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.