00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00032
00038
00039
00044
00045
00055
00056
00057 #ifndef _MJVWAVEFORM_HH
00058 #define _MJVWAVEFORM_HH
00059
00060
00061
00062 #include <CLHEP/Units/SystemOfUnits.h>
00063 #include <CLHEP/Vector/ThreeVector.h>
00064
00065
00066
00067 class MJVWaveform
00068 {
00069 public:
00070
00071
00072 MJVWaveform();
00073
00074
00075 MJVWaveform(const MJVWaveform &);
00076
00077
00078 ~MJVWaveform();
00079
00080
00081
00082 void AddChargePoint(HepDouble charge);
00083 void AddCurrentPoint(HepDouble current);
00084 void AddDigitizedPoint(HepInt signal);
00085
00086 void AllocateCurrentSignal();
00087 void AllocateChargeSignal();
00088 void AllocateDigitizedSignal();
00089 void AllocateCurrentSignal(HepInt numberofpoints);
00090 void AllocateChargeSignal(HepInt numberofpoints);
00091 void AllocateDigitizedSignal(HepInt numberofpoints);
00092
00093 HepDouble *GetChargeSignal() { return fChargeSignal; }
00094 HepInt GetChargeStep() { return fChargeStep; }
00095 HepDouble *GetCurrentSignal() { return fCurrentSignal; }
00096 HepInt GetCurrentStep() { return fCurrentStep; }
00097 HepInt *GetDigitizedSignal() { return fDigitizedSignal; }
00098 HepInt GetDigitizedStep() { return fDigitizedStep; }
00099
00100 HepInt GetNumberOfChargePoints() { return fNumberOfChargePoints; }
00101 HepInt GetNumberOfCurrentPoints() { return fNumberOfCurrentPoints; }
00102 HepInt GetNumberOfDigitizedPoints() { return fNumberOfDigitizedPoints; }
00103
00104 void IntegrateChargePoint(HepDouble charge);
00105
00106 void ResetCounters(void) {
00107 fChargeStep = fCurrentStep = fDigitizedStep = 0;
00108 fChargeTime = fCurrentTime = fDigitizedTime = 0; }
00109
00110 void SetAllZero();
00111 void SetNumberOfChargePoints(HepInt num) { fNumberOfChargePoints = num; }
00112 void SetNumberOfCurrentPoints(HepInt num) { fNumberOfCurrentPoints = num; }
00113 void SetNumberOfDigitizedPoints(HepInt num) { fNumberOfDigitizedPoints=num; }
00114
00115
00116 protected:
00122 HepInt *fDigitizedSignal;
00123
00124
00125 private:
00126
00127 HepInt fNumberOfChargePoints;
00128 HepInt fNumberOfCurrentPoints;
00129 HepInt fNumberOfDigitizedPoints;
00130
00131 HepDouble *fChargeSignal;
00132 HepDouble *fCurrentSignal;
00133
00134 HepBoolean fChargeAllocated;
00135 HepBoolean fCurrentAllocated;
00136 HepBoolean fDigitizedAllocated;
00137
00138 HepBoolean fChargeArrayFull;
00139 HepBoolean fCurrentArrayFull;
00140 HepBoolean fDigitizedArrayFull;
00141
00142 HepDouble fChargeTimeStep;
00143 HepDouble fCurrentTimeStep;
00144 HepDouble fDigitizedTimeStep;
00145
00146 HepInt fChargeStep;
00147 HepInt fCurrentStep;
00148 HepInt fDigitizedStep;
00149
00150 HepDouble fChargeTime;
00151 HepDouble fCurrentTime;
00152 HepDouble fDigitizedTime;
00153
00154 };
00155 #endif