test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HcalSimParameters.h
Go to the documentation of this file.
1 #ifndef HcalSimAlgos_HcalSimParameters_h
2 #define HcalSimAlgos_HcalSimParameters_h
3 
7 
8 typedef std::vector<std::pair<double,double> > HcalTimeSmearSettings;
9 
11 {
12 public:
14  const std::vector<double> & photoelectronsToAnalog,
15  double samplingFactor, double timePhase,
17  bool doPhotostatistics, bool syncPhase,
18  int firstRing, const std::vector<double> & samplingFactors,
19  double sipmTau
20  );
22 
23  virtual ~HcalSimParameters() {}
24 
25  void setDbService(const HcalDbService * service);
26 
27  virtual double simHitToPhotoelectrons(const DetId & detId) const;
28  virtual double photoelectronsToAnalog(const DetId & detId) const;
29 
30  double fCtoGeV(const DetId & detId) const;
31 
34  virtual double samplingFactor(const DetId & detId) const;
35 
36  bool doTimeSmear() const { return doTimeSmear_; }
37 
38  double timeSmearRMS(double ampl) const;
39 
40  int pixels(const DetId & detId) const;
41  bool doSiPMSmearing() const { return theSiPMSmearing; }
42 
43  double sipmTau() const { return theSiPMTau; }
44  double sipmDarkCurrentuA(const DetId & detId) const;
45  double sipmCrossTalk(const DetId & detId) const;
46  std::vector<float> sipmNonlinearity(const DetId & detId) const;
47  unsigned int signalShape(const DetId & detId) const;
48 
49  friend class HcalSimParameterMap;
50 
51 private:
52  void defaultTimeSmearing();
56  std::vector<double> theSamplingFactors;
57  std::vector<double> thePE2fCByRing;
61  double theSiPMTau;
62 };
63 
64 #endif
65 
std::vector< float > sipmNonlinearity(const DetId &detId) const
const HcalSiPMCharacteristics * theSiPMcharacteristics
double sipmTau() const
HcalSimParameters(double simHitToPhotoelectrons, const std::vector< double > &photoelectronsToAnalog, double samplingFactor, double timePhase, int readoutFrameSize, int binOfMaximum, bool doPhotostatistics, bool syncPhase, int firstRing, const std::vector< double > &samplingFactors, double sipmTau)
double fCtoGeV(const DetId &detId) const
bool doPhotostatistics() const
whether or not to apply Poisson statistics to photoelectrons
int pixels(const DetId &detId) const
Main class for Parameters in different subdetectors.
double timePhase() const
the adjustment you need to apply to get the signal where you want it
HcalTimeSmearSettings theSmearSettings
bool doTimeSmear() const
std::vector< double > thePE2fCByRing
unsigned int signalShape(const DetId &detId) const
double timeSmearRMS(double ampl) const
bool doSiPMSmearing() const
double simHitToPhotoelectrons() const
std::vector< double > theSamplingFactors
virtual double samplingFactor(const DetId &detId) const
int readoutFrameSize() const
for now, the LinearFrames and trhe digis will be one-to-one.
virtual ~HcalSimParameters()
Definition: DetId.h:18
double sipmDarkCurrentuA(const DetId &detId) const
void setDbService(const HcalDbService *service)
double sipmCrossTalk(const DetId &detId) const
std::vector< std::pair< double, double > > HcalTimeSmearSettings
const HcalDbService * theDbService
int binOfMaximum() const
double photoelectronsToAnalog() const
the factor which goes from photoelectrons to whatever gets read by ADCs
bool syncPhase() const
choice of the ADC time alignment (synchronous for LHC, asynchronous for test beams) ...