// HitXYPlane1Generator.h #ifndef HitXYPlane1Generator_H #define HitXYPlane1Generator_H // Generator for ClusXYPlane1 objects. #include "trfbase/HitGenerator.h" #include "SurfXYPlane.h" namespace trf { class HitXYPlane1Generator : public HitGenerator { private: // attributes // the surface SurfXYPlane _sxyp; // the v axis weight double _wv; // the z axis weight double _wz; // the error (standard deviation) for the measurement avz = wv*v + wz*z double _davz; private: // methods // hide assignment operator HitXYPlane1Generator& operator=(const HitXYPlane1Generator& rhs); // output stream void ostr(std::ostream& stream) const; public: // Constructor from plane position, mixing and measurement sigma. HitXYPlane1Generator(double dist, double phi, double wv, double wz, double davz); // Constructor from above plus random number seed. HitXYPlane1Generator(double dist, double phi, double wv, double wz, double davz, long iseed); // Copy constructor. HitXYPlane1Generator(const HitXYPlane1Generator& rhs); // Destructor. ~HitXYPlane1Generator(); // Return the surface. const Surface& get_surface() const { return _sxyp; }; // Generate a new cluster. // Caller must delete. // Return 0 for failure. Cluster* new_cluster(const VTrack& trv); }; } // end namespace trf #endif