#ifndef MCTRACK_HPP #define MCTRACK_HPP // // $Id: ToyParticle.hpp,v 1.1 1998/12/20 14:56:29 hobbs Exp $ // // File: McTrack.hpp // Purpose: // Created: 11-MAY-1998 John Hobbs // // $Revision: 1.1 $ // // // Include files // Global definitions class McTrack { public: McTrack(): _serial_number(-1) {} McTrack(std::istream& instr); int type() const {return _id; } // The PDG id int serial() const { return _serial_number; } double b() const; // The usual track parameters double kappa() const; double phi0() const; double z0() const; double lambda() const; double xc() const; // The circle form of the parameters double yc() const; double R() const; double pT() const { return _pt; } // Duh... double p() const; double theta() const; double eta() const { return _eta; } double phi() const { return _phi; } static McTrack& bad_track() { return _bad; } private: int _id; int _serial_number; double _pt; double _phi; double _eta; double _xvert,_yvert,_zvert; static McTrack _bad; // Keep this for testing against double sign(const double) const; }; // Constructors/Destructors McTrack::McTrack(std::istream& instr) // // Purpose: Create an MC track by reading the next record from the input // stream // { // Check that this really is an MC track std::string tag; instr >> tag; if( tag != "GTK" ) { } // Now just read the parameter values int idummy; instr >> idummy >> _serial_number >> _id >> _pt >> _phi >> _eta >> _xvert >> _yvert >> _zvert; } // Accessors #include "McTrack.icc" #endif //MCTRACK_HPP