00001 #ifndef ANP_BASIC_H
00002 #define ANP_BASIC_H
00003
00004
00005
00006
00007
00008
00009
00010 #include <iostream>
00011
00012
00013 #include "Rtypes.h"
00014
00015 namespace Anp
00016 {
00017 class Basic
00018 {
00019 public:
00020
00021 Basic();
00022 ~Basic();
00023
00024 short NPlaneSteel() const;
00025 short NPlaneScint() const;
00026
00027 short NStrip() const;
00028 short NUStrip() const;
00029 short NVStrip() const;
00030
00031 short NPlane() const;
00032 short NUPlane() const;
00033 short NVPlane() const;
00034
00035 short BegPlane() const;
00036 short BegUPlane() const;
00037 short BegVPlane() const;
00038
00039 short EndPlane() const;
00040 short EndUPlane() const;
00041 short EndVPlane() const;
00042
00043 float ADC() const;
00044 float ADCU() const;
00045 float ADCV() const;
00046 float PE() const;
00047 float SigCor() const;
00048 float SigCorU() const;
00049 float SigCorV() const;
00050 float SigLin() const;
00051 float SigMap() const;
00052 float MIP() const;
00053
00054 double MinTime() const;
00055 double MaxTime() const;
00056
00057 float ActiveFrac() const;
00058
00059 void Clear();
00060
00061 void Print(std::ostream& o = std::cout) const;
00062
00063 private:
00064
00065 friend class FillBasic;
00066
00067 Short_t nustrip;
00068 Short_t nvstrip;
00069
00070 Short_t nuplane;
00071 Short_t nvplane;
00072
00073 Short_t beg_uplane;
00074 Short_t beg_vplane;
00075 Short_t end_uplane;
00076 Short_t end_vplane;
00077
00078 Float_t adcu;
00079 Float_t adcv;
00080 Float_t pe;
00081 Float_t sigcoru;
00082 Float_t sigcorv;
00083 Float_t siglin;
00084 Float_t sigmap;
00085 Float_t mip;
00086
00087 Float_t active_frac;
00088
00089 Double_t max_time;
00090 Double_t min_time;
00091 };
00092
00093
00094
00095
00096 inline short Basic::NPlaneSteel() const { return 1 + EndPlane() - BegPlane(); }
00097 inline short Basic::NPlaneScint() const { return nuplane + nvplane; }
00098
00099 inline short Basic::NStrip() const { return nustrip + nvstrip; }
00100 inline short Basic::NUStrip() const { return nustrip; }
00101 inline short Basic::NVStrip() const { return nvstrip; }
00102
00103 inline short Basic::NPlane() const { return nuplane + nvplane; }
00104 inline short Basic::NUPlane() const { return nuplane; }
00105 inline short Basic::NVPlane() const { return nvplane; }
00106
00107 inline short Basic::BegUPlane() const { return beg_uplane; }
00108 inline short Basic::BegVPlane() const { return beg_vplane; }
00109 inline short Basic::EndUPlane() const { return end_uplane; }
00110 inline short Basic::EndVPlane() const { return end_vplane; }
00111
00112 inline float Basic::ADC() const { return adcu + adcv; }
00113 inline float Basic::ADCU() const { return adcu; }
00114 inline float Basic::ADCV() const { return adcv; }
00115 inline float Basic::PE() const { return pe; }
00116 inline float Basic::SigCor() const { return sigcoru + sigcorv; }
00117 inline float Basic::SigCorU() const { return sigcoru; }
00118 inline float Basic::SigCorV() const { return sigcorv; }
00119 inline float Basic::SigLin() const { return siglin; }
00120 inline float Basic::SigMap() const { return sigmap; }
00121 inline float Basic::MIP() const { return mip; }
00122
00123 inline double Basic::MinTime() const { return min_time; }
00124 inline double Basic::MaxTime() const { return max_time; }
00125
00126 inline float Basic::ActiveFrac() const { return active_frac; }
00127 }
00128
00129 #endif