////////////////////////////////////////////////////////////////////////
// $Id: CandContext.h,v 1.5 2006/06/21 00:47:01 rhatcher Exp $
//
// CandContext.h
//
// CandContext has "context" (caller) info for concrete Candidate ctor.
//
// Author:  G. Irwin 4/2000
////////////////////////////////////////////////////////////////////////

#ifndef CANDCONTEXT_H
#define CANDCONTEXT_H

#include "TNamed.h"

class MomNavigator;
class CandRecord;
class AlgBase;
class CandBase;

class CandContext : public TNamed
{

friend class AlgBase;
friend class CandBase;

public:
   CandContext();
   CandContext(TObject *caller, const MomNavigator *mom = 0);
   virtual ~CandContext();
   const TObject *GetCaller() const {return fCaller;}
   CandRecord *GetCandRecord() const {return fCandRecord;}
   const TObject *GetDataIn() const {return fDataIn;}
   const MomNavigator *GetMom() const {return fMom;}
   void SetCandRecord(CandRecord *candrec) {fCandRecord = candrec;}
   void SetDataIn(TObject *datain) {fDataIn = datain;}

private:
   TObject *fCaller;
   CandRecord *fCandRecord;
   TObject *fDataIn;
   const MomNavigator *fMom;

ClassDef(CandContext,0)        // Candidate context (caller) information

};

#endif                                                  // CANDCONTEXT_H
