CMS 3D CMS Logo

HcalElectronicsSim.h
Go to the documentation of this file.
1 #ifndef HcalSimAlgos_HcalElectronicsSim_h
2 #define HcalSimAlgos_HcalElectronicsSim_h
3 
13 
14 class HBHEDataFrame;
15 class HODataFrame;
16 class HFDataFrame;
17 class ZDCDataFrame;
18 class QIE10DataFrame;
19 class QIE11DataFrame;
20 
21 namespace CLHEP {
22  class HepRandomEngine;
23 }
24 
26 public:
27  HcalElectronicsSim(const HcalSimParameterMap* parameterMap,
28  HcalAmplifier* amplifier,
29  const HcalCoderFactory* coderFactory,
30  bool PreMix);
32 
33  void setDbService(const HcalDbService* service);
34 
35  //these need to be overloads instead of templates to avoid linking issues when calling private member function templates
36  void analogToDigital(CLHEP::HepRandomEngine*,
37  CaloSamples& linearFrame,
39  double preMixFactor = 10.0,
40  unsigned preMixBits = 126);
41  void analogToDigital(CLHEP::HepRandomEngine*,
42  CaloSamples& linearFrame,
43  HODataFrame& result,
44  double preMixFactor = 10.0,
45  unsigned preMixBits = 126);
46  void analogToDigital(CLHEP::HepRandomEngine*,
47  CaloSamples& linearFrame,
48  HFDataFrame& result,
49  double preMixFactor = 10.0,
50  unsigned preMixBits = 126);
51  void analogToDigital(CLHEP::HepRandomEngine*,
52  CaloSamples& linearFrame,
53  ZDCDataFrame& result,
54  double preMixFactor = 10.0,
55  unsigned preMixBits = 126);
56  void analogToDigital(CLHEP::HepRandomEngine*,
57  CaloSamples& linearFrame,
58  QIE10DataFrame& result,
59  double preMixFactor = 10.0,
60  unsigned preMixBits = 126);
61  void analogToDigital(CLHEP::HepRandomEngine*,
62  CaloSamples& linearFrame,
63  QIE11DataFrame& result,
64  double preMixFactor = 10.0,
65  unsigned preMixBits = 126);
68  void newEvent(CLHEP::HepRandomEngine*);
69  void setStartingCapId(int startingCapId);
70 
71 private:
72  template <class Digi>
73  void analogToDigitalImpl(
74  CLHEP::HepRandomEngine*, CaloSamples& linearFrame, Digi& result, double preMixFactor, unsigned preMixBits);
75  template <class Digi>
76  void convert(CaloSamples& frame, Digi& result, CLHEP::HepRandomEngine*);
77  template <class Digi>
78  void premix(CaloSamples& frame, Digi& result, double preMixFactor, unsigned preMixBits);
79 
84 
88 };
89 
90 #endif
HcalAmplifier * theAmplifier
std::tuple< unsigned int, int, int, DigiType, int, int, int, float > Digi
Definition: GenericDigi.h:40
const HcalSimParameterMap * theParameterMap
const HcalCoderFactory * theCoderFactory
def convert(infile, ofile)