/* $Id: CbmRichRing.h,v 1.8 2006/09/13 14:51:43 hoehne Exp $*/ /* History of CVS commits: * * $Log: CbmRichRing.h,v $ * Revision 1.8 2006/09/13 14:51:43 hoehne * two variables (Selection2D, SelectionNN) added in which values between 0 and 1 are stored for fake rejection * ReconstructedFlag removed * * Revision 1.7 2006/08/11 14:03:57 hoehne * move SetUncertainty and GetUncertainty to SetChi2 and GetChi2 * * Revision 1.6 2006/07/12 06:27:54 hoehne * new functions: SetDistance and GetDistance added which set/ give the distance between ring center and track attached to this * ring * * Revision 1.5 2006/02/23 11:24:10 hoehne * RecFlag added (Simeon Lebedev) * * Revision 1.4 2006/01/23 11:40:13 hoehne * MCMotherID added * * Revision 1.3 2006/01/19 10:36:37 hoehne * restructured according to new RingFinder Class * array added which contains hits attached to a ring * * */ // ------------------------------------------------------------------------- // ----- CbmRichRing header file ----- // ----- Created 05/07/04 by A. Soloviev ----- // ------------------------------------------------------------------------- /** CbmRichRing.h *@author A. Soloviev ** ** Rings in Rich Photodetector **/ #ifndef CBM_RICH_RING_H #define CBM_RICH_RING_H #include "TObject.h" #include "CbmRichHit.h" #include "vector.h" class CbmRichRing : public TObject { public: /** Default constructor **/ CbmRichRing(); /** Constructor with arguments *@param x x Position of ring center [cm] *@param y y Position of ring center [cm] *@param r radius of ring [cm] **/ CbmRichRing ( const Double_t & x, const Double_t & y, const Double_t & r ); /** Destructor **/ virtual ~CbmRichRing(); void AddHit(CbmRichHit*); /** to attach the rich hit to the ring */ Int_t GetNoOfHits(); /** to obtain the number of hits associated to the ring */ CbmRichHit* GetHit(Int_t); /** to obtain the rich hit at a particular index */ /** Modifiers**/ virtual void SetCenterX ( const Double_t & x ); virtual void SetCenterY ( const Double_t & y ); virtual void SetRadius ( const Double_t & r ); virtual void SetTrackID ( Int_t track ); virtual void SetMCMotherID ( Int_t track ); virtual void SetDistance (Double_t d); virtual void SetChi2 ( const Double_t & chi2 ); virtual void SetSelection2D (Double_t selection2D ); /** either 0 and 1: 0 = good ring, 1 = bad ring (selection by 2-dimensional cuts)*/ virtual void SetSelectionNN (Double_t selectionNN ); /** number between 0 and 1: 0 = good ring, 1 = bad ring (selection by neural net)*/ /** Accessors **/ virtual const Double_t & GetCenterX() const; virtual const Double_t & GetCenterY() const; virtual const Double_t & GetRadius() const; virtual const Int_t GetTrackID() const; virtual const Int_t GetMCMotherID() const; virtual const Double_t GetDistance() const; static const Double_t & GetRadiusMax(); virtual const Double_t & GetChi2() const; virtual const Double_t GetSelection2D() const; virtual const Double_t GetSelectionNN() const; void SetRecFlag ( Int_t iflag ); const Int_t GetRecFlag()const; private: vector fHitCollection; /** STL container to hold the hits */ protected: Double_t fCenterX; Double_t fCenterY; Double_t fRadius; Int_t fTrackID; /** ID of the matched track, set after track matching */ Int_t fMCMotherID; /** ID of the MC track */ Double_t fDistance; /** Distance to track matched to this ring */ Double_t fChi2; Double_t fSelection2D; /** value for selection high quality rings */ Double_t fSelectionNN; /** value for selection high quality rings */ static const Double_t fgkRadiusMax; Int_t fIflag; ClassDef(CbmRichRing,1) }; #endif // CBM_RICH_RING_H