Back to index

CRing.h

 
//----------------------------------------------------------------------------- 
//  $Header: /tmp_mnt/asis/offline/ceres/cool/project/RCS/CRing.h,v 3.1 1996/12/13 16:13:30 messer Exp $ 
// 
//  COOL Program Library   
//  Copyright (C) CERES collaboration, 1996 
// 
//  Declaration of base class CRing 
// 
//----------------------------------------------------------------------------- 
#ifndef CRING_H 
#define CRING_H 
 
#include "cool.h" 
#include <float.h> 
#include "CCoordinate.h" 
 
class CRing { 
public: 
   enum CRingType { Unknown, Electron, Pion, Fake }; 
    
public: 
   CRing(); 
   CRing(const CRichPadCoord, const double, const CRingType = Unknown); 
   virtual ~CRing(); 
         
   CRichPadCoord    getCenter()     const { return center;     } 
   double           getRadius()     const { return radius;     } 
   CRingType 	    getType()       const { return type;       } 
   int              getHitDensity() const { return hitDensity; } 
         
   virtual void	    setCenter(CRichPadCoord cen) { center     = cen; } 
   void		    setType(CRingType typ)       { type       = typ; } 
   void		    setRadius(double rad)        { radius     = rad; } 
   void             setHitDensity(int val)       { hitDensity = val; } 
    
   CBoolean operator== (const CRing& cand) const; 
    
protected: 
   CRichPadCoord    center; 
   double           radius; 
   CRingType	    type; 
   int              hitDensity; 
}; 
 
 
inline CRing::CRing() 
{ 
   center.setX(0); 
   center.setY(0); 
   radius = 0; 
   type   = Unknown; 
} 
 
inline CRing::CRing(const CRichPadCoord coord, const double rad, const CRingType typ) 
{ 
   center = coord; 
   radius = rad; 
   type   = typ; 
} 
 
inline CRing::~CRing() { /* nop */ } 
 
inline CBoolean CRing::operator== (const CRing& ring) const 
{ 
   return ( ring.type == type     && 
	    ring.center == center && 
	    fabs(ring.radius-radius) < FLT_EPSILON ); 
} 
 
#endif /* CRING_H */ 

Back to index