StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StTrsDigitalSignalGenerator.hh
1 /***************************************************************************
2  *
3  * $Id: StTrsDigitalSignalGenerator.hh,v 1.8 2005/09/09 22:12:48 perev Exp $
4  *
5  * Author: brian, October 1998
6  ***************************************************************************
7  *
8  * Description: Abstract class to define functionality of digital response
9  *
10  ***************************************************************************
11  *
12  * $Log: StTrsDigitalSignalGenerator.hh,v $
13  * Revision 1.8 2005/09/09 22:12:48 perev
14  * Bug fix + IdTruth added
15  *
16  * Revision 1.7 2003/12/24 13:44:51 fisyak
17  * Add (GEANT) track Id information in Trs; propagate it via St_tpcdaq_Maker; account interface change in StTrsZeroSuppressedReaded in StMixerMaker
18  *
19  * Revision 1.6 2000/01/10 23:11:32 lasiuk
20  * Include MACROS for compatibility with SUN CC5.0
21  *
22  * Revision 1.5 1999/12/08 02:10:25 calderon
23  * Modified to eliminate warnings on Linux.
24  *
25  * Revision 1.4 1999/02/28 20:19:44 lasiuk
26  * take number of time bins from db
27  * not compatible with data compression from the analogSignalGenerator
28  *
29  * Revision 1.3 1999/02/04 18:33:48 lasiuk
30  * remove digSector from constructor;
31  * add fillSector for designation
32  *
33  * Revision 1.2 1999/01/18 10:23:00 lasiuk
34  * add StTrsDigitalSector
35  *
36  * Revision 1.1 1998/11/10 17:12:10 fisyak
37  * Put Brian trs versin into StRoot
38  *
39  * Revision 1.2 1998/11/04 18:51:16 lasiuk
40  * initialization in base class
41  * incorporate electronics db
42  * sector by reference
43  *
44  * Revision 1.1 1998/06/30 22:54:10 lasiuk
45  * Initial Revision
46  *
47  **************************************************************************/
48 #ifndef ST_TRS_DIGITAL_SIGNAL_GENERATOR_HH
49 #define ST_TRS_DIGITAL_SIGNAL_GENERATOR_HH
50 #include <vector>
51 #if defined (__SUNPRO_CC) && __SUNPRO_CC >= 0x500
52 using std::vector;
53 #endif
54 
55 #include "StTrsAnalogSignal.hh"
56 #include "StTpcElectronics.hh"
57 #include "StTrsSector.hh"
58 #include "StTrsDigitalSector.hh"
59 
60 #ifndef ST_NO_EXCEPTIONS
61 # include <stdexcept>
62 # if !defined(ST_NO_NAMESPACES)
63  using std::invalid_argument;
64  using std::range_error;
65  using std::domain_error;
66 # endif
67 #endif
69 public:
70  virtual ~StTrsDigitalSignalGenerator();
71 
72  virtual void digitizeSignal() = 0;
73  virtual void addWhiteNoise() = 0;
74  virtual void addCorrelatedNoise() = 0;
75  void SetSectorNo(int sect) {mSectorNo = sect;}
76  int GetSectorNo() {return mSectorNo;}
77 
78  void fillSector(StTrsDigitalSector*);
79 
80 protected:
81  //StTrsDigitalSignalGenerator();
83 
84 protected:
85  unsigned int mNumberOfTimeBins;
86 
87  StTpcElectronics* mElectronicsDb;
88  StTrsSector* mSector;
89  StTrsDigitalSector* mDigitalSector;
90  int mSectorNo;
91 
92 vector<StTrsAnalogSignal, allocator<StTrsAnalogSignal> >::iterator mTimeSequenceIterator;
93 };
94 
95 #endif