Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Class Members | File Members

MJVWaveform.hh

Go to the documentation of this file.
00001 //---------------------------------------------------------------------------//
00002 //bb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nu//
00003 //                                                                           //
00004 //                         MAJORANA Simulation                               //
00005 //                                                                           //
00006 //      This code implementation is the intellectual property of the         //
00007 //      MAJORANA Collaboration. It is based on Geant4, an intellectual       //
00008 //      property of the RD44 GEANT4 collaboration.                           //
00009 //                                                                           //
00010 //                        *********************                              //
00011 //                                                                           //
00012 //    Neither the authors of this software system, nor their employing       //
00013 //    institutes, nor the agencies providing financial support for this      //
00014 //    work  make  any representation or  warranty, express or implied,       //
00015 //    regarding this software system or assume any liability for its use.    //
00016 //    By copying, distributing or modifying the Program (or any work based   //
00017 //    on on the Program) you indicate your acceptance of this statement,     //
00018 //    and all its terms.                                                     //
00019 //                                                                           //
00020 //bb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nu//
00021 //---------------------------------------------------------------------------//
00032 // Begin description of class here
00038 // End class description
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   //default constructor
00072   MJVWaveform();
00073 
00074   //copy constructor
00075   MJVWaveform(const MJVWaveform &);
00076 
00077   //destructor
00078   ~MJVWaveform();
00079 
00080   //public interface
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   //protected members
00116 protected:
00122   HepInt      *fDigitizedSignal;
00123 
00124   //private  members
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

Generated on Mon Nov 29 16:58:53 2004 for Majorana Simulation by  doxygen 1.3.9.1