// ThinCylMS.h #ifndef ThinCylMS_H #define ThinCylMS_H // Class for modifying the covariance matrix of a track which // has been propagated to an InteractingLayer containing // a LayerCylinder. // // ObjStream example: // // [ myint ThinCylMS rad_length=0.00123 ] // #include "trfbase/Interactor.h" namespace trf { class ETrack; class ThinCylMS : public Interactor { public: // static methods // Return the type name. static TypeName get_type_name() { return "ThinCylMS"; } // Return the creator. static ObjCreator get_creator(); // Return the type. static Type get_static_type() { return get_creator(); } private: double _rad_length; public: // constructor. The Interactor is constructed with the // ppropriate number of radiation lengths. ThinCylMS(double rad_length); // destructor ~ThinCylMS(); // make a clone of this object Interactor* new_copy() const{ return new ThinCylMS(*this); } // Return the type. Type get_type() const { return get_static_type(); } // Write the object data. ObjData write_data() const; // method for adding the interaction void interact(ETrack& tre) const; // return the number of radiation lengths: double get_rad_length() const { return _rad_length; } }; } // end namespace trf #endif