CMS 3D CMS Logo

ESDigitizer.h
Go to the documentation of this file.
1 #ifndef EcalSimAlgos_ESDigitizer_h
2 #define EcalSimAlgos_ESDigitizer_h
3 
6 
7 namespace CLHEP {
8  class RandGeneral;
9  class HepRandomEngine;
10 }
11 
12 #include <vector>
13 
14 class ESDigitizer : public EcalTDigitizer< ESDigitizerTraits >
15 {
16  public:
17 
19 
20  ESDigitizer( EcalHitResponse* hitResponse ,
21  ElectronicsSim* electronicsSim ,
22  bool addNoise ) ;
23 
24  virtual ~ESDigitizer() ;
25 
26  virtual void run( ESDigiCollection& output, CLHEP::HepRandomEngine* ) override;
27 
28  void setDetIds( const std::vector<DetId>& detIds ) ;
29 
30  void setGain( const int gain ) ;
31 
32  private:
33 
34  void createNoisyList( std::vector<DetId>& abThreshCh, CLHEP::HepRandomEngine* ) ;
35 
36  const std::vector<DetId>* m_detIds ;
37  CLHEP::RandGeneral* m_ranGeneral ;
38  int m_ESGain ;
39  double m_histoBin ;
40  double m_histoInf ;
41  double m_histoWid ;
42  double m_meanNoisy ;
43 
44  class Triplet
45  {
46  public:
47  Triplet() : first ( 0 ), second ( 0 ), third ( 0 ) {}
48  Triplet( uint32_t a0 ,
49  uint32_t a1 ,
50  uint32_t a2 ) :
51  first ( a0 ), second ( a1 ), third ( a2 ) {}
52  ~Triplet() {} ;
53  uint32_t first ;
54  uint32_t second ;
55  uint32_t third ;
56  };
57 
58 
59 
60 
61  std::vector<Triplet> m_trip ;
62 };
63 
64 #endif
std::vector< Triplet > m_trip
Definition: ESDigitizer.h:61
U second(std::pair< T, U > const &p)
CLHEP::RandGeneral * m_ranGeneral
Definition: ESDigitizer.h:37
double m_meanNoisy
Definition: ESDigitizer.h:42
double m_histoBin
Definition: ESDigitizer.h:39
double m_histoInf
Definition: ESDigitizer.h:40
ESDigitizerTraits::ElectronicsSim ElectronicsSim
Definition: ESDigitizer.h:18
const std::vector< DetId > * m_detIds
Definition: ESDigitizer.h:36
double m_histoWid
Definition: ESDigitizer.h:41
Triplet(uint32_t a0, uint32_t a1, uint32_t a2)
Definition: ESDigitizer.h:48