00001 00005 /*************************************************************************** 00006 * 00007 * $Id: StTrackFitTraits.h,v 2.16 2012/04/27 01:45:12 perev Exp $ 00008 * 00009 * Author: Thomas Ullrich, Sep 1999 00010 *************************************************************************** 00011 * 00012 * Description: 00013 * 00014 * With the arrival of new detectors when even not known will be this 00015 * detector installed or not the following modification was made: 00016 1) mNumberOfFitPoints == 0xA000 + total number of fit points 00017 2) numberOfFitPoints() returns total amount of fitted points 00018 3) number of hits for XXXX detector is 00019 numberOfFitPoints()-numberOfFitPoints(kTpcId) 00020 4) If detector XXXX will be installed, according member could be added 00021 00022 (VP) 00023 00024 * Note the following: with the arrival of ITTF it is now possible to 00025 * store the numberOfFitPoints for every detector individually. Before 00026 * that and because of the way the tables were defined TPC and FTPC were 00027 * one and the same. This caused confusion. However, since we have to 00028 * stay backwards compatible the "old way" is still working. 00029 * If 00030 * a) mNumberOfFitPoints == 0 the new encoding is the one to use, i.e., 00031 * mNumberOfFitPointsTpc 00032 * mNumberOfFitPointsFtpcWest 00033 * mNumberOfFitPointsFtpcEast 00034 * mNumberOfFitPointsSvt 00035 * mNumberOfFitPointsSsd 00036 * are the ones that count 00037 * b) mNumberOfFitPoints != 0 then we still loaded the info from 00038 * the tables and all is as it was before, i.e., we do not distinguish 00039 * between FTPC and TPC. 00040 * 00041 *************************************************************************** 00042 * 00043 * $Log: StTrackFitTraits.h,v $ 00044 * Revision 2.16 2012/04/27 01:45:12 perev 00045 * Logic for total numbers of fit points changed 00046 * 00047 * Revision 2.15 2009/11/23 16:34:07 fisyak 00048 * Cleanup, remove dependence on dst tables, clean up software monitors 00049 * 00050 * Revision 2.14 2008/03/19 14:40:56 fisyak 00051 * Add access to covariance matrix array 00052 * 00053 * Revision 2.13 2007/10/11 21:52:32 ullrich 00054 * Added member to handle number of fit points for PXL and IST. 00055 * 00056 * Revision 2.12 2004/12/02 23:35:13 ullrich 00057 * Added misisng setXXX functions. 00058 * 00059 * Revision 2.11 2004/08/13 18:15:42 ullrich 00060 * Added +1 to the number of fit points when bool flag is set. 00061 * 00062 * Revision 2.10 2004/08/12 17:22:31 fisyak 00063 * Switch to automatic streamer for version >4 to account new no. of fit points definition 00064 * 00065 * Revision 2.9 2004/08/05 22:24:32 ullrich 00066 * Changes to the handling of numberOfPoints() to allow ITTF more flexibility. 00067 * 00068 * Revision 2.8 2002/02/22 22:56:52 jeromel 00069 * Doxygen basic documentation in all header files. None of this is required 00070 * for QM production. 00071 * 00072 * Revision 2.7 2001/05/04 19:50:52 perev 00073 * Streamer to account old ROOT2 00074 * 00075 * Revision 2.6 2001/04/05 04:00:45 ullrich 00076 * Replaced all (U)Long_t by (U)Int_t and all redundant ROOT typedefs. 00077 * 00078 * Revision 2.5 2001/03/24 03:35:00 perev 00079 * clone() -> clone() const 00080 * 00081 * Revision 2.4 2001/03/16 21:31:42 ullrich 00082 * Changed version number from 1 to 2. 00083 * 00084 * Revision 2.3 2001/03/16 20:57:45 ullrich 00085 * Covariant matrix now stored in TArrayF. 00086 * 00087 * Revision 2.2 1999/11/01 12:45:17 ullrich 00088 * Modified unpacking of point counter 00089 * 00090 * Revision 2.1 1999/10/28 22:27:35 ullrich 00091 * Adapted new StArray version. First version to compile on Linux and Sun. 00092 * 00093 * Revision 2.0 1999/10/12 18:43:02 ullrich 00094 * Completely Revised for New Version 00095 * 00096 **************************************************************************/ 00097 #ifndef StTrackFitTraits_hh 00098 #define StTrackFitTraits_hh 00099 #include "StObject.h" 00100 #include "StEnumerations.h" 00101 #include "StMatrixF.hh" 00102 #include "TArrayF.h" 00103 00104 class StParticleDefinition; 00105 00106 class StTrackFitTraits : public StObject { 00107 public: 00108 StTrackFitTraits(); 00109 StTrackFitTraits(unsigned short, unsigned short, float[2], float[15]); 00110 // StTrackFitTraits(const StTrackFitTraits&); use default 00111 // StTrackFitTraits& operator=(const StTrackFitTraits&); use default 00112 virtual ~StTrackFitTraits(); 00113 00114 unsigned short numberOfFitPoints() const; 00115 unsigned short numberOfFitPoints(StDetectorId) const; 00116 StParticleDefinition* pidHypothesis() const; 00117 StMatrixF covariantMatrix() const; 00118 const Float_t* covariance() const {return mCovariantMatrix.GetArray();} 00119 double chi2(unsigned int = 0) const; 00120 bool primaryVertexUsedInFit() const; 00121 00122 void clearCovariantMatrix(); 00123 void setNumberOfFitPoints(unsigned char n, StDetectorId id=kUnknownId); 00124 void setPrimaryVertexUsedInFit(bool); 00125 00126 void setPidHypothesis(unsigned short); 00127 void setChi2(float, unsigned int = 0); 00128 void setCovariantMatrix(float[15]); 00129 00130 protected: 00131 UShort_t mPidHypothesis; // GeantId 00132 UShort_t mNumberOfFitPoints; // obsolete since ITTF 00133 UChar_t mNumberOfFitPointsTpc; 00134 UChar_t mNumberOfFitPointsFtpcWest; 00135 UChar_t mNumberOfFitPointsFtpcEast; 00136 UChar_t mNumberOfFitPointsSvt; 00137 UChar_t mNumberOfFitPointsSsd; 00138 UChar_t mNumberOfFitPointsPxl; 00139 UChar_t mNumberOfFitPointsIst; 00140 Bool_t mPrimaryVertexUsedInFit; 00141 Float_t mChi2[2]; 00142 TArrayF mCovariantMatrix; 00143 00144 ClassDef(StTrackFitTraits,7) 00145 }; 00146 #endif
1.5.9