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 
17 
18 #include <vector>
19 
20 class CaloHitResponse;
22 class HcalAmplifier;
23 class HPDIonFeedbackSim;
24 class HcalCoderFactory;
25 class HcalElectronicsSim;
26 class HcalTimeSlewSim;
28 class HcalShapes;
30 class HcalTopology;
31 
32 namespace edm {
33  class ConsumesCollector;
34 }
35 
36 namespace CLHEP {
37  class HepRandomEngine;
38 }
39 
41 {
42 public:
43 
45  virtual ~HcalDigitizer();
46 
48  void initializeEvent(edm::Event const& e, edm::EventSetup const& c);
49  void accumulate(edm::Event const& e, edm::EventSetup const& c, CLHEP::HepRandomEngine*);
50  void accumulate(PileUpEventPrincipal const& e, edm::EventSetup const& c, CLHEP::HepRandomEngine*);
51  void finalizeEvent(edm::Event& e, edm::EventSetup const& c, CLHEP::HepRandomEngine*);
52  void beginRun(const edm::EventSetup & es);
53  void endRun();
54 
61 
62 private:
63  void accumulateCaloHits(edm::Handle<std::vector<PCaloHit> > const& hcalHits, edm::Handle<std::vector<PCaloHit> > const& zdcHits, int bunchCrossing, CLHEP::HepRandomEngine*, const HcalTopology *h);
64 
66  void fillFakeHits();
69  void checkGeometry(const edm::EventSetup& eventSetup);
72  void updateGeometry(const edm::EventSetup& eventSetup);
73 
74  void buildHOSiPMCells(const std::vector<DetId>& allCells, const edm::EventSetup& eventSetup);
75  void buildHFQIECells(const std::vector<DetId>& allCells, const edm::EventSetup& eventSetup);
76  void buildHBHEQIECells(const std::vector<DetId>& allCells, const edm::EventSetup& eventSetup);
77 
78  //function to evaluate aging at the digi level
79  void darkening(std::vector<PCaloHit>& hcalHits);
80 
88 
91 
99 
100  // we need separate amplifiers (and electronicssims)
101  // because they might have separate noise generators
108 
111 
118 
126 
128 
137 
138  // need to cache some DetIds for the digitizers,
139  // if they don't come straight from the geometry
140  std::vector<DetId> hbheCells;
142  std::vector<DetId> theHOHPDDetIds;
143  std::vector<DetId> theHOSiPMDetIds;
144  std::vector<DetId> theHFQIE8DetIds, theHFQIE10DetIds;
145 
149  bool killHE_;
150  bool debugCS_;
154 
156 
158 
162 
163  std::vector<double> injectedHitsEnergy_;
164  std::vector<double> injectedHitsTime_;
165  std::vector<int> injectedHitsCells_;
166  std::vector<PCaloHit> injectedHits_;
167 };
168 
169 #endif
170 
171 
172 
HFHitFilter theHFQIE10HitFilter
std::vector< DetId > theHFQIE10DetIds
QIE10Digitizer * theHFQIE10Digitizer
std::vector< int > injectedHitsCells_
HBHEHitFilter theHBHEHitFilter
CaloHitResponse * theHFQIE10Response
Definition: HcalDigitizer.h:97
void setQIE10NoiseSignalGenerator(HcalBaseSignalGenerator *noiseGenerator)
const HcalDDDRecConstants * theRecNumber
Definition: HcalDigitizer.h:71
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
HcalElectronicsSim * theHBHEQIE11ElectronicsSim
HOHitFilter theHOHitFilter
void darkening(std::vector< PCaloHit > &hcalHits)
HFDigitizer * theHFDigitizer
HFHitFilter theHFHitFilter
CaloTDigitizer< HODigitizerTraits, CaloTDigitizerQIE8Run > HODigitizer
Definition: HcalDigitizer.h:83
void checkGeometry(const edm::EventSetup &eventSetup)
HcalSimParameterMap * theParameterMap
Definition: HcalDigitizer.h:89
void fillFakeHits()
some hits in each subdetector, just for testing purposes
CaloTDigitizer< HBHEDigitizerTraits, CaloTDigitizerQIE8Run > HBHEDigitizer
Definition: HcalDigitizer.h:82
HcalTimeSlewSim * theTimeSlewSim
void buildHBHEQIECells(const std::vector< DetId > &allCells, const edm::EventSetup &eventSetup)
HcalAmplifier * theHFAmplifier
HcalCoderFactory * theCoderFactory
HcalHitRelabeller * theRelabeller
void initializeEvent(edm::Event const &e, edm::EventSetup const &c)
HcalAmplifier * theHBHEQIE11Amplifier
void accumulate(edm::Event const &e, edm::EventSetup const &c, CLHEP::HepRandomEngine *)
std::vector< double > injectedHitsEnergy_
void setQIE11NoiseSignalGenerator(HcalBaseSignalGenerator *noiseGenerator)
HcalAmplifier * theHBHEAmplifier
std::string hitsProducer_
HcalElectronicsSim * theHOElectronicsSim
double deliveredLumi
HcalShapes * theShapes
Definition: HcalDigitizer.h:90
Creates electronics signals from hits.
void setHFNoiseSignalGenerator(HcalBaseSignalGenerator *noiseGenerator)
void buildHOSiPMCells(const std::vector< DetId > &allCells, const edm::EventSetup &eventSetup)
ZDCHitFilter theZDCHitFilter
HPDIonFeedbackSim * theIonFeedback
CaloTDigitizer< ZDCDigitizerTraits, CaloTDigitizerQIE8Run > ZDCDigitizer
Definition: HcalDigitizer.h:85
CaloHitResponse * theHOResponse
Definition: HcalDigitizer.h:94
CaloHitResponse * theHOSiPMResponse
Definition: HcalDigitizer.h:95
std::vector< double > injectedHitsTime_
ZDCDigitizer * theZDCDigitizer
std::vector< DetId > theHOHPDDetIds
CaloHitResponse * theZDCResponse
Definition: HcalDigitizer.h:98
CaloTDigitizer< HFDigitizerTraits, CaloTDigitizerQIE8Run > HFDigitizer
Definition: HcalDigitizer.h:84
HcalElectronicsSim * theZDCElectronicsSim
void beginRun(const edm::EventSetup &es)
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:92
HODigitizer * theHODigitizer
std::vector< DetId > theHOSiPMDetIds
HOHitFilter theHOSiPMHitFilter
const CaloGeometry * theGeometry
Definition: HcalDigitizer.h:70
std::vector< DetId > hbheCells
CaloHitResponse * theHFResponse
Definition: HcalDigitizer.h:96
CaloTDigitizer< HcalQIE11DigitizerTraits, CaloTDigitizerQIE1011Run > QIE11Digitizer
Definition: HcalDigitizer.h:87
HcalElectronicsSim * theHFQIE10ElectronicsSim
HODigitizer * theHOSiPMDigitizer
QIE11Digitizer * theHBHEQIE11Digitizer
HBHEHitFilter theHBHEQIE11HitFilter
void setZDCNoiseSignalGenerator(HcalBaseSignalGenerator *noiseGenerator)
std::vector< DetId > theHBHEQIE8DetIds
HEDarkening * m_HEDarkening
CaloHitResponse * theHBHESiPMResponse
Definition: HcalDigitizer.h:93
CaloTDigitizer< HcalQIE10DigitizerTraits, CaloTDigitizerQIE1011Run > QIE10Digitizer
Definition: HcalDigitizer.h:86
void updateGeometry(const edm::EventSetup &eventSetup)
void setHBHENoiseSignalGenerator(HcalBaseSignalGenerator *noiseGenerator)
HcalAmplifier * theZDCAmplifier
std::vector< DetId > theHBHEQIE11DetIds
std::vector< PCaloHit > injectedHits_
void finalizeEvent(edm::Event &e, edm::EventSetup const &c, CLHEP::HepRandomEngine *)
HcalAmplifier * theHFQIE10Amplifier
void setHONoiseSignalGenerator(HcalBaseSignalGenerator *noiseGenerator)
HcalDigitizer(const edm::ParameterSet &ps, edm::ConsumesCollector &iC)