00001 00005 /*************************************************************************** 00006 * 00007 * $Id: StDedxPidTraits.h,v 2.15 2012/04/29 22:51:18 fisyak Exp $ 00008 * 00009 * Author: Thomas Ullrich, Sep 1999 00010 *************************************************************************** 00011 * 00012 * Description: 00013 * 00014 *************************************************************************** 00015 * 00016 * $Log: StDedxPidTraits.h,v $ 00017 * Revision 2.15 2012/04/29 22:51:18 fisyak 00018 * Add field for Log2(<dX>) 00019 * 00020 * Revision 2.14 2010/08/31 19:51:56 fisyak 00021 * Clean up 00022 * 00023 * Revision 2.13 2004/09/16 02:24:18 perev 00024 * Small optimization of alignement 00025 * 00026 * Revision 2.12 2004/07/15 16:36:23 ullrich 00027 * Removed all clone() declerations and definitions. Use StObject::clone() only. 00028 * 00029 * Revision 2.11 2004/03/01 17:44:38 fisyak 00030 * Add Print method 00031 * 00032 * Revision 2.10 2002/11/15 20:38:36 fisyak 00033 * Set class version 2 for new calibration scheme 00034 * 00035 * Revision 2.9 2002/02/22 22:56:47 jeromel 00036 * Doxygen basic documentation in all header files. None of this is required 00037 * for QM production. 00038 * 00039 * Revision 2.8 2001/04/05 04:00:34 ullrich 00040 * Replaced all (U)Long_t by (U)Int_t and all redundant ROOT typedefs. 00041 * 00042 * Revision 2.7 2001/03/24 03:34:43 perev 00043 * clone() -> clone() const 00044 * 00045 * Revision 2.6 2000/12/18 17:25:14 fisyak 00046 * Add track length used in dE/dx calculations 00047 * 00048 * Revision 2.5 2000/01/05 16:04:14 ullrich 00049 * Changed method name sigma() to errorOnMean(). 00050 * 00051 * Revision 2.4 1999/11/29 17:07:27 ullrich 00052 * Moved method() from StTrackPidTraits to StDedxPidTraits.cxx 00053 * 00054 * Revision 2.3 1999/11/23 15:56:25 ullrich 00055 * Added clone() const method. Was pure virtual. 00056 * 00057 * Revision 2.2 1999/11/16 14:11:41 ullrich 00058 * Changed variance to sigma. 00059 * 00060 * Revision 2.1 1999/10/13 19:42:58 ullrich 00061 * Initial Revision 00062 * 00063 **************************************************************************/ 00064 #ifndef StDedxPidTraits_hh 00065 #define StDedxPidTraits_hh 00066 #include "StTrackPidTraits.h" 00067 00068 class StDedxPidTraits : public StTrackPidTraits { 00069 public: 00070 StDedxPidTraits(StDetectorId det=kUnknownId, Short_t meth=kUndefinedMethodId, 00071 UShort_t n=0, Float_t dedx=0, Float_t sig=0, Float_t log2dx=1) : 00072 StTrackPidTraits(det), 00073 mNumberOfPoints(n), mMethod(meth), mDedx(dedx), mSigma(sig), mLog2dX(log2dx) { /* noop */ } 00074 00075 StDedxPidTraits(const dst_dedx_st& t) : 00076 StTrackPidTraits(t), 00077 mNumberOfPoints(t.ndedx), mMethod(t.method), mDedx(t.dedx[0]), 00078 mSigma(t.dedx[1]), mLog2dX(t.dedx[2]) { /* noop */ } 00079 00080 ~StDedxPidTraits() { /* noop */ } 00081 00082 UShort_t numberOfPoints() const { return mNumberOfPoints%100; } 00083 Float_t length() const { return (mNumberOfPoints/100); } 00084 StDedxMethod method() const; 00085 Short_t encodedMethod() const; 00086 Float_t mean() const; 00087 Float_t errorOnMean() const; 00088 void Print(Option_t *opt = "") const; 00089 Float_t log2dX() const {return mLog2dX;} 00090 protected: 00091 UShort_t mNumberOfPoints; 00092 Short_t mMethod; 00093 Float_t mDedx; 00094 Float_t mSigma; 00095 Float_t mLog2dX; // Log2 from average dX 00096 ClassDef(StDedxPidTraits,4) 00097 }; 00098 #endif
1.5.9