CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HcalDigitizer.h
Go to the documentation of this file.
1 #ifndef HcalSimProducers_HcalDigitizer_h
2 #define HcalSimProducers_HcalDigitizer_h
3 
20 
21 #include <vector>
22 
23 class CaloHitResponse;
25 class HcalAmplifier;
26 class HPDIonFeedbackSim;
27 class HcalCoderFactory;
28 class HcalElectronicsSim;
29 class HcalHitCorrection;
30 class HcalTimeSlewSim;
32 class HcalShapes;
33 class PCaloHit;
35 class HcalTopology;
36 
37 namespace edm {
38  class ConsumesCollector;
39 }
40 
41 namespace CLHEP {
42  class HepRandomEngine;
43 }
44 
46 {
47 public:
48 
50  virtual ~HcalDigitizer();
51 
53  void initializeEvent(edm::Event const& e, edm::EventSetup const& c);
54  void accumulate(edm::Event const& e, edm::EventSetup const& c, CLHEP::HepRandomEngine*);
55  void accumulate(PileUpEventPrincipal const& e, edm::EventSetup const& c, CLHEP::HepRandomEngine*);
56  void finalizeEvent(edm::Event& e, edm::EventSetup const& c, CLHEP::HepRandomEngine*);
57  void beginRun(const edm::EventSetup & es);
58  void endRun();
59 
64 
65 private:
66  void accumulateCaloHits(edm::Handle<std::vector<PCaloHit> > const& hcalHits, edm::Handle<std::vector<PCaloHit> > const& zdcHits, int bunchCrossing, CLHEP::HepRandomEngine*, const HcalTopology *h);
67 
69  void fillFakeHits();
72  void checkGeometry(const edm::EventSetup& eventSetup);
75  void updateGeometry(const edm::EventSetup& eventSetup);
76 
77  void buildHOSiPMCells(const std::vector<DetId>& allCells, const edm::EventSetup& eventSetup);
78  void buildHFQIECells(const std::vector<DetId>& allCells, const edm::EventSetup& eventSetup);
79 
80  //function to evaluate aging at the digi level
81  void darkening(std::vector<PCaloHit>& hcalHits);
82 
90 
93 
101 
102  // we need separate amplifiers (and electronicssims)
103  // because they might have separate noise generators
108 
112 
120 
126 
131 
142 
143  // need to cache some DetIds for the digitizers,
144  // if they don't come straight from the geometry
145  std::vector<DetId> theHBHEDetIds;
146  std::vector<DetId> theHOHPDDetIds;
147  std::vector<DetId> theHOSiPMDetIds;
148  std::vector<DetId> theHFQIE8DetIds, theHFQIE10DetIds;
149 
151  bool relabel_;
152 
154 
156 
160 };
161 
162 #endif
163 
164 
165 
std::vector< DetId > theHFQIE10DetIds
QIE10Digitizer * theHFQIE10Digitizer
HBHEHitFilter theHBHEHitFilter
CaloHitResponse * theHFQIE10Response
Definition: HcalDigitizer.h:99
const HcalDDDRecConstants * theRecNumber
Definition: HcalDigitizer.h:74
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
virtual ~HcalDigitizer()
HcalElectronicsSim * theHFElectronicsSim
void buildHFQIECells(const std::vector< DetId > &allCells, const edm::EventSetup &eventSetup)
HBHEDigitizer * theHBHEDigitizer
HOHitFilter theHOHitFilter
CaloTDigitizer< HcalUpgradeDigitizerTraits > UpgradeDigitizer
Definition: HcalDigitizer.h:88
void darkening(std::vector< PCaloHit > &hcalHits)
HFDigitizer * theHFDigitizer
HFHitFilter theHFHitFilter
void checkGeometry(const edm::EventSetup &eventSetup)
HcalSimParameterMap * theParameterMap
Definition: HcalDigitizer.h:91
void fillFakeHits()
some hits in each subdetector, just for testing purposes
HcalTimeSlewSim * theTimeSlewSim
HcalAmplifier * theHFAmplifier
HcalElectronicsSim * theUpgradeHFElectronicsSim
HcalCoderFactory * theCoderFactory
HcalHitRelabeller * theRelabeller
HcalCoderFactory * theUpgradeCoderFactory
void initializeEvent(edm::Event const &e, edm::EventSetup const &c)
UpgradeDigitizer * theHFUpgradeDigitizer
void accumulate(edm::Event const &e, edm::EventSetup const &c, CLHEP::HepRandomEngine *)
CaloTDigitizer< HFDigitizerTraits > HFDigitizer
Definition: HcalDigitizer.h:86
HcalAmplifier * theHBHEAmplifier
CaloTDigitizer< ZDCDigitizerTraits > ZDCDigitizer
Definition: HcalDigitizer.h:87
std::string hitsProducer_
HcalElectronicsSim * theHOElectronicsSim
double deliveredLumi
HcalShapes * theShapes
Definition: HcalDigitizer.h:92
Creates electronics signals from hits.
void setHFNoiseSignalGenerator(HcalBaseSignalGenerator *noiseGenerator)
std::vector< DetId > theHBHEDetIds
void buildHOSiPMCells(const std::vector< DetId > &allCells, const edm::EventSetup &eventSetup)
ZDCHitFilter theZDCHitFilter
HPDIonFeedbackSim * theIonFeedback
CaloHitResponse * theHOResponse
Definition: HcalDigitizer.h:96
HcalHitFilter theHOSiPMHitFilter
CaloHitResponse * theHOSiPMResponse
Definition: HcalDigitizer.h:97
ZDCDigitizer * theZDCDigitizer
std::vector< DetId > theHOHPDDetIds
HcalHitCorrection * theHitCorrection
CaloHitResponse * theZDCResponse
HcalElectronicsSim * theZDCElectronicsSim
HcalElectronicsSim * theUpgradeHBHEElectronicsSim
void beginRun(const edm::EventSetup &es)
CaloTDigitizer< HcalQIE10DigitizerTraits, CaloTDigitizerQIE10Run > QIE10Digitizer
Definition: HcalDigitizer.h:89
CaloTDigitizer< HODigitizerTraits > HODigitizer
Definition: HcalDigitizer.h:85
void accumulateCaloHits(edm::Handle< std::vector< PCaloHit > > const &hcalHits, edm::Handle< std::vector< PCaloHit > > const &zdcHits, int bunchCrossing, CLHEP::HepRandomEngine *, const HcalTopology *h)
HcalAmplifier * theHOAmplifier
std::vector< DetId > theHFQIE8DetIds
HFRecalibration * m_HFRecalibration
HcalElectronicsSim * theHBHEElectronicsSim
CaloHitResponse * theHBHEResponse
Definition: HcalDigitizer.h:94
HODigitizer * theHODigitizer
std::vector< DetId > theHOSiPMDetIds
const CaloGeometry * theGeometry
Definition: HcalDigitizer.h:73
CaloHitResponse * theHFResponse
Definition: HcalDigitizer.h:98
HcalElectronicsSim * theHFQIE10ElectronicsSim
HODigitizer * theHOSiPMDigitizer
void setZDCNoiseSignalGenerator(HcalBaseSignalGenerator *noiseGenerator)
HBHEDigitizer * theHBHESiPMDigitizer
HEDarkening * m_HEDarkening
CaloHitResponse * theHBHESiPMResponse
Definition: HcalDigitizer.h:95
void updateGeometry(const edm::EventSetup &eventSetup)
void setHBHENoiseSignalGenerator(HcalBaseSignalGenerator *noiseGenerator)
CaloVNoiseHitGenerator * theNoiseHitGenerator
HcalAmplifier * theZDCAmplifier
void finalizeEvent(edm::Event &e, edm::EventSetup const &c, CLHEP::HepRandomEngine *)
UpgradeDigitizer * theHBHEUpgradeDigitizer
void setHONoiseSignalGenerator(HcalBaseSignalGenerator *noiseGenerator)
CaloTDigitizer< HBHEDigitizerTraits > HBHEDigitizer
Definition: HcalDigitizer.h:84
HcalDigitizer(const edm::ParameterSet &ps, edm::ConsumesCollector &iC)
CaloVNoiseSignalGenerator * theNoiseGenerator