test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HcalSiPMHitResponse.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 #ifndef HcalSimAlgos_HcalSiPMHitResponse_h
3 #define HcalSimAlgos_HcalSiPMHitResponse_h
4 
7 
8 #include <map>
9 #include <set>
10 #include <vector>
11 
12 class HcalSiPM;
13 
14 namespace CLHEP {
15  class HepRandomEngine;
16 }
17 
19 public:
20  bool operator()(const PCaloHit * a,
21  const PCaloHit * b) const {
22  return a->time()<b->time();
23  }
24 };
25 
27 
28 public:
29  HcalSiPMHitResponse(const CaloVSimParameterMap * parameterMap,
30  const CaloShapes * shapes, bool PreMix1 = false);
31 
32  virtual ~HcalSiPMHitResponse();
33 
34  typedef std::vector<unsigned int> photonTimeHist;
35  typedef std::map< DetId, photonTimeHist > photonTimeMap;
36 
37  virtual void initializeHits() override;
38 
39  virtual void finalizeHits(CLHEP::HepRandomEngine*) override;
40 
41  virtual void add(const PCaloHit& hit, CLHEP::HepRandomEngine*) override;
42 
43  virtual void add(const CaloSamples& signal);
44 
45  virtual void addPEnoise(CLHEP::HepRandomEngine* engine);
46 
47  virtual CaloSamples makeBlankSignal(const DetId & detId) const;
48 
49  virtual void setDetIds(const std::vector<DetId> & detIds);
50 
51  static double Y11TimePDF( double t );
52 
53  double generatePhotonTime(CLHEP::HepRandomEngine*) const;
54 
55 protected:
56  virtual CaloSamples makeSiPMSignal(DetId const& id, photonTimeHist const& photons, CLHEP::HepRandomEngine*) const;
57 
58 private:
61  int const TIMEMULT;
62  float const Y11RANGE;
63  float const Y11MAX;
64  float const Y11TIMETORISE;
66 
69 
70  const std::vector<DetId>* theDetIds;
71 };
72 
73 #endif //HcalSimAlgos_HcalSiPMHitResponse_h
A general implementation for the response of a SiPM.
Definition: HcalSiPM.h:22
double time() const
Definition: PCaloHit.h:36
const std::vector< DetId > * theDetIds
virtual void finalizeHits(CLHEP::HepRandomEngine *) override
Finalize hits.
std::map< DetId, photonTimeHist > photonTimeMap
double generatePhotonTime(CLHEP::HepRandomEngine *) const
bool operator()(const PCaloHit *a, const PCaloHit *b) const
static double Y11TimePDF(double t)
virtual void addPEnoise(CLHEP::HepRandomEngine *engine)
virtual CaloSamples makeSiPMSignal(DetId const &id, photonTimeHist const &photons, CLHEP::HepRandomEngine *) const
Creates electronics signals from hits.
virtual void add(const PCaloHit &hit, CLHEP::HepRandomEngine *) override
process a single SimHit
virtual void setDetIds(const std::vector< DetId > &detIds)
HcalTDCParameters theTDCParams
Definition: DetId.h:18
std::vector< unsigned int > photonTimeHist
virtual CaloSamples makeBlankSignal(const DetId &detId) const
double b
Definition: hdecay.h:120
virtual void initializeHits() override
Initialize hits.
double a
Definition: hdecay.h:121
photonTimeMap precisionTimedPhotons
HcalSiPMHitResponse(const CaloVSimParameterMap *parameterMap, const CaloShapes *shapes, bool PreMix1=false)