#ifndef ABSBEAM_HH #define ABSBEAM_HH (1) // // This is the abstract interface for CotBeam and SvxBeam, the // primary user interface for retrieving the beamline from // the database. The meaning of the methods is explained more in // those headers. // // 12/2001 - creation, Ray Culbertson // #include #include "VertexObjects/Beamline.hh" class HepPoint3D; class HepVector; class Hep3Vector; class HepSymMatrix; class AbsBeam { public: virtual int loadRun() =0; virtual bool isValid() =0; virtual HepPoint3D position(double z) =0; virtual HepVector positionVector(double z) =0; virtual Hep3Vector slope() =0; virtual HepSymMatrix cov3(double z) =0; virtual void printSummary() =0; virtual void printAll() =0; virtual Beamline getBeamline(int eventFlag = -1) { return Beamline(); } virtual int writeToOutput() { return 1;} virtual void setReadFromFile(bool x) {} virtual void setDbFallback(bool b) {} virtual void setUseTimeDep(bool b) {} virtual void setStatus(std::string status) =0; virtual void setHistoryCode(int history) =0; virtual void setAlgorithm(int algorithm) =0; virtual void setSource(int source) =0; virtual void printLevel(int level) =0; virtual int loadRun(int run, int version = -1) =0; virtual int loadCid(int cid) = 0; virtual std::string getStatus() =0; virtual int getVersion() =0; virtual int getCid() = 0; }; #endif