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 
16 
17 #include <vector>
18 
19 class CaloHitResponse;
21 class HcalAmplifier;
22 class HPDIonFeedbackSim;
23 class HcalCoderFactory;
24 class HcalElectronicsSim;
25 class HcalHitCorrection;
26 class HcalTimeSlewSim;
28 class HcalShapes;
29 class PCaloHit;
31 
33 {
34 public:
35 
36  explicit HcalDigitizer(const edm::ParameterSet& ps);
37  virtual ~HcalDigitizer();
38 
40  void initializeEvent(edm::Event const& e, edm::EventSetup const& c);
41  void accumulate(edm::Event const& e, edm::EventSetup const& c);
42  void accumulate(PileUpEventPrincipal const& e, edm::EventSetup const& c);
43  void finalizeEvent(edm::Event& e, edm::EventSetup const& c);
44  void beginRun(const edm::EventSetup & es);
45  void endRun();
46 
51 
52 private:
53  void accumulateCaloHits(edm::Handle<std::vector<PCaloHit> > const& hcalHits, edm::Handle<std::vector<PCaloHit> > const& zdcHits, int bunchCrossing);
54 
56  void fillFakeHits();
59  void checkGeometry(const edm::EventSetup& eventSetup);
61  void updateGeometry(const edm::EventSetup& eventSetup);
62 
63  void buildHOSiPMCells(const std::vector<DetId>& allCells, const edm::EventSetup& eventSetup);
64 
71 
74 
81 
82  // we need separate amplifiers (and electronicssims)
83  // because they might have separate noise generators
88 
92 
99 
105 
110 
120 
121  // need to cache some DetIds for the digitizers,
122  // if they don't come straight from the geometry
123  std::vector<DetId> theHBHEDetIds;
124  std::vector<DetId> theHOHPDDetIds;
125  std::vector<DetId> theHOSiPMDetIds;
126 
128  bool relabel_;
129 
131 
133 };
134 
135 #endif
136 
137 
138 
HBHEHitFilter theHBHEHitFilter
virtual ~HcalDigitizer()
HcalElectronicsSim * theHFElectronicsSim
Definition: HcalDigitizer.h:94
HBHEDigitizer * theHBHEDigitizer
HOHitFilter theHOHitFilter
CaloTDigitizer< HcalUpgradeDigitizerTraits > UpgradeDigitizer
Definition: HcalDigitizer.h:70
HFDigitizer * theHFDigitizer
HFHitFilter theHFHitFilter
void checkGeometry(const edm::EventSetup &eventSetup)
HcalSimParameterMap * theParameterMap
Definition: HcalDigitizer.h:72
void fillFakeHits()
some hits in each subdetector, just for testing purposes
HcalTimeSlewSim * theTimeSlewSim
HcalAmplifier * theHFAmplifier
Definition: HcalDigitizer.h:85
HcalDigitizer(const edm::ParameterSet &ps)
HcalElectronicsSim * theUpgradeHFElectronicsSim
Definition: HcalDigitizer.h:98
HcalCoderFactory * theCoderFactory
Definition: HcalDigitizer.h:90
HcalHitRelabeller * theRelabeller
HcalCoderFactory * theUpgradeCoderFactory
Definition: HcalDigitizer.h:91
void initializeEvent(edm::Event const &e, edm::EventSetup const &c)
UpgradeDigitizer * theHFUpgradeDigitizer
CaloTDigitizer< HFDigitizerTraits > HFDigitizer
Definition: HcalDigitizer.h:68
HcalAmplifier * theHBHEAmplifier
Definition: HcalDigitizer.h:84
CaloTDigitizer< ZDCDigitizerTraits > ZDCDigitizer
Definition: HcalDigitizer.h:69
std::string hitsProducer_
HcalElectronicsSim * theHOElectronicsSim
Definition: HcalDigitizer.h:95
HcalShapes * theShapes
Definition: HcalDigitizer.h:73
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
Definition: HcalDigitizer.h:89
CaloHitResponse * theHOResponse
Definition: HcalDigitizer.h:77
HcalHitFilter theHOSiPMHitFilter
CaloHitResponse * theHOSiPMResponse
Definition: HcalDigitizer.h:78
ZDCDigitizer * theZDCDigitizer
std::vector< DetId > theHOHPDDetIds
HcalHitCorrection * theHitCorrection
CaloHitResponse * theZDCResponse
Definition: HcalDigitizer.h:80
void accumulateCaloHits(edm::Handle< std::vector< PCaloHit > > const &hcalHits, edm::Handle< std::vector< PCaloHit > > const &zdcHits, int bunchCrossing)
HcalElectronicsSim * theZDCElectronicsSim
Definition: HcalDigitizer.h:96
HcalElectronicsSim * theUpgradeHBHEElectronicsSim
Definition: HcalDigitizer.h:97
void beginRun(const edm::EventSetup &es)
CaloTDigitizer< HODigitizerTraits > HODigitizer
Definition: HcalDigitizer.h:67
void accumulate(edm::Event const &e, edm::EventSetup const &c)
HcalAmplifier * theHOAmplifier
Definition: HcalDigitizer.h:86
HcalElectronicsSim * theHBHEElectronicsSim
Definition: HcalDigitizer.h:93
CaloHitResponse * theHBHEResponse
Definition: HcalDigitizer.h:75
HODigitizer * theHODigitizer
std::vector< DetId > theHOSiPMDetIds
const CaloGeometry * theGeometry
Definition: HcalDigitizer.h:60
CaloHitResponse * theHFResponse
Definition: HcalDigitizer.h:79
HODigitizer * theHOSiPMDigitizer
void setZDCNoiseSignalGenerator(HcalBaseSignalGenerator *noiseGenerator)
HBHEDigitizer * theHBHESiPMDigitizer
CaloHitResponse * theHBHESiPMResponse
Definition: HcalDigitizer.h:76
void updateGeometry(const edm::EventSetup &eventSetup)
void setHBHENoiseSignalGenerator(HcalBaseSignalGenerator *noiseGenerator)
CaloVNoiseHitGenerator * theNoiseHitGenerator
HcalAmplifier * theZDCAmplifier
Definition: HcalDigitizer.h:87
void finalizeEvent(edm::Event &e, edm::EventSetup const &c)
UpgradeDigitizer * theHBHEUpgradeDigitizer
void setHONoiseSignalGenerator(HcalBaseSignalGenerator *noiseGenerator)
CaloTDigitizer< HBHEDigitizerTraits > HBHEDigitizer
Definition: HcalDigitizer.h:66
CaloVNoiseSignalGenerator * theNoiseGenerator