00001 00005 /*************************************************************************** 00006 * 00007 * $Id: StTrackDetectorInfo.h,v 2.13 2009/11/23 16:34:07 fisyak Exp $ 00008 * 00009 * Author: Thomas Ullrich, Sep 1999 00010 *************************************************************************** 00011 * 00012 * Description: 00013 * 00014 * Note the following: with the arrival of ITTF it is now possible to 00015 * store the numberOfPoints for every detector individually. Before 00016 * that and because of the way the tables were defined TPC and FTPC were 00017 * one and the same. This caused confusion. However, since we have to 00018 * stay backwards compatible the "old way" is still working. 00019 * If 00020 * a) mNumberOfPoints == 0 the new encoding is the one to use, i.e., 00021 * mNumberOfPointsTpc 00022 * mNumberOfPointsFtpcWest 00023 * mNumberOfPointsFtpcEast 00024 * mNumberOfPointsSvt 00025 * mNumberOfPointsSsd 00026 * are the ones that count 00027 * b) mNumberOfPoints != 0 then we still loaded the info from 00028 * the tables and all is as it was before, i.e., we do not distinguish 00029 * between FTPC and TPC. 00030 * 00031 *************************************************************************** 00032 * 00033 * $Log: StTrackDetectorInfo.h,v $ 00034 * Revision 2.13 2009/11/23 16:34:07 fisyak 00035 * Cleanup, remove dependence on dst tables, clean up software monitors 00036 * 00037 * Revision 2.12 2004/10/13 16:11:59 ullrich 00038 * Added optional arg to addHit() to allow NOT to increase ref counter. 00039 * 00040 * Revision 2.11 2004/08/05 22:23:32 ullrich 00041 * Fixed bug in first argument type of setNumberOfPoints(). 00042 * 00043 * Revision 2.10 2004/08/05 19:25:03 ullrich 00044 * Changes to the handling of numberOfPoints() to allow ITTF more flexibility. 00045 * 00046 * Revision 2.9 2004/07/15 16:36:26 ullrich 00047 * Removed all clone() declerations and definitions. Use StObject::clone() only. 00048 * 00049 * Revision 2.8 2003/10/30 20:07:32 perev 00050 * Check of quality added 00051 * 00052 * Revision 2.7 2002/02/22 22:56:52 jeromel 00053 * Doxygen basic documentation in all header files. None of this is required 00054 * for QM production. 00055 * 00056 * Revision 2.6 2001/04/05 04:00:45 ullrich 00057 * Replaced all (U)Long_t by (U)Int_t and all redundant ROOT typedefs. 00058 * 00059 * Revision 2.5 2001/03/24 03:35:00 perev 00060 * clone() -> clone() const 00061 * 00062 * Revision 2.4 2000/04/20 13:30:02 ullrich 00063 * Added new methods and removed inconsistencies in numberOfPoints(). 00064 * 00065 * Revision 2.3 1999/11/01 12:45:12 ullrich 00066 * Modified unpacking of point counter 00067 * 00068 * Revision 2.2 1999/10/28 22:27:30 ullrich 00069 * Adapted new StArray version. First version to compile on Linux and Sun. 00070 * 00071 * Revision 2.1 1999/10/13 19:44:11 ullrich 00072 * Initial Revision 00073 * 00074 **************************************************************************/ 00075 #ifndef StTrackDetectorInfo_hh 00076 #define StTrackDetectorInfo_hh 00077 #include "StContainers.h" 00078 #include "StObject.h" 00079 #include "StThreeVectorF.hh" 00080 #include "StEnumerations.h" 00081 00082 class StHitFilter; 00083 class StHit; 00084 00085 class StTrackDetectorInfo : public StObject { 00086 public: 00087 StTrackDetectorInfo(); 00088 // StTrackDetectorInfo(const StTrackDetectorInfo&); use default 00089 // StTrackDetectorInfo & operator=(const StTrackDetectorInfo&); use default 00090 virtual ~StTrackDetectorInfo(); 00091 00092 const StThreeVectorF& firstPoint() const; 00093 const StThreeVectorF& lastPoint() const; 00094 00095 unsigned short numberOfPoints() const; 00096 unsigned short numberOfPoints(StDetectorId) const; 00097 00098 unsigned short numberOfReferencedPoints() const; 00099 unsigned short numberOfReferencedPoints(StDetectorId) const; 00100 00101 StPtrVecHit hits(StDetectorId) const; 00102 StPtrVecHit hits(StHitFilter&) const; 00103 StPtrVecHit& hits(); 00104 const StPtrVecHit& hits() const; 00105 00106 void setFirstPoint(const StThreeVectorF&); 00107 void setLastPoint(const StThreeVectorF&); 00108 void setNumberOfPoints(unsigned char, StDetectorId); 00109 void addHit(StHit*, bool = true); 00110 void removeHit(StHit*&); 00111 int bad() const; 00112 00113 protected: 00114 void setNumberOfPoints(unsigned short); // obsolete since ITTF 00115 00116 private: 00117 StThreeVectorF mFirstPoint; 00118 StThreeVectorF mLastPoint; 00119 UShort_t mNumberOfPoints; // obsolete since ITTF 00120 UChar_t mNumberOfPointsTpc; 00121 UChar_t mNumberOfPointsFtpcWest; 00122 UChar_t mNumberOfPointsFtpcEast; 00123 UChar_t mNumberOfPointsSvt; 00124 UChar_t mNumberOfPointsSsd; 00125 StPtrVecHit mHits; 00126 00127 ClassDef(StTrackDetectorInfo,2) 00128 }; 00129 00130 #endif
1.5.9