CMS 3D CMS Logo

HcalAmplifier.h
Go to the documentation of this file.
1 #ifndef HcalSimAlgos_HcalAmplifier_h
2 #define HcalSimAlgos_HcalAmplifier_h
3 
10 
11 class HcalDbService;
12 class HPDIonFeedbackSim;
13 class HcalTimeSlewSim;
14 class HcalTimeSlew;
15 
16 namespace CLHEP {
17  class HepRandomEngine;
18 }
19 
21 public:
22  HcalAmplifier(const CaloVSimParameterMap * parameters, bool addNoise, bool PreMix1, bool PreMix2);
23 
24  virtual ~HcalAmplifier() {}
25 
27  void setDbService(const HcalDbService * service);
28  void setIonFeedbackSim(HPDIonFeedbackSim * feedbackSim) {theIonFeedbackSim = feedbackSim;}
29 
32  void setNoiseSignalGenerator(const CaloVNoiseSignalGenerator * noiseSignalGenerator) {
33  theNoiseSignalGenerator = noiseSignalGenerator;
34  }
35  void setTimeSlewSim(HcalTimeSlewSim * timeSlewSim) {
36  theTimeSlewSim = timeSlewSim;
37  }
38 
39  const HcalTimeSlew* theTimeSlew = nullptr;
40  void setTimeSlew(const HcalTimeSlew* timeSlew) {
41  theTimeSlew = timeSlew;
42  }
43 
44  virtual void amplify(CaloSamples & linearFrame, CLHEP::HepRandomEngine*) const;
45 
46  void setStartingCapId(int capId) {theStartingCapId = capId;}
47 
48 private:
49 
50  void pe2fC(CaloSamples & frame) const;
51  void addPedestals(CaloSamples & frame, CLHEP::HepRandomEngine*) const;
52  void makeNoise (HcalGenericDetId::HcalGenericSubdetector hcalSubDet, const HcalCalibrationWidths& width, int fFrames, double* fGauss, double* fNoise) const;
53 
59  unsigned theStartingCapId;
60  bool addNoise_;
62  bool preMixAdd_;
63 };
64 
65 #endif
const CaloVNoiseSignalGenerator * theNoiseSignalGenerator
Definition: HcalAmplifier.h:56
const CaloVSimParameterMap * theParameterMap
Definition: HcalAmplifier.h:55
void setStartingCapId(int capId)
Definition: HcalAmplifier.h:46
void setIonFeedbackSim(HPDIonFeedbackSim *feedbackSim)
Definition: HcalAmplifier.h:28
const HcalDbService * theDbService
Definition: HcalAmplifier.h:54
void setTimeSlew(const HcalTimeSlew *timeSlew)
Definition: HcalAmplifier.h:40
HcalTimeSlewSim * theTimeSlewSim
Definition: HcalAmplifier.h:58
void setNoiseSignalGenerator(const CaloVNoiseSignalGenerator *noiseSignalGenerator)
Definition: HcalAmplifier.h:32
void setTimeSlewSim(HcalTimeSlewSim *timeSlewSim)
Definition: HcalAmplifier.h:35
unsigned theStartingCapId
Definition: HcalAmplifier.h:59
virtual ~HcalAmplifier()
Definition: HcalAmplifier.h:24
HPDIonFeedbackSim * theIonFeedbackSim
Definition: HcalAmplifier.h:57